From bbeb39243b8b443dd654e39e2610ff3c9285015f Mon Sep 17 00:00:00 2001 From: Tarry Singh Date: Mon, 15 Jul 2024 13:48:59 +0200 Subject: [PATCH] comments --- deep-learning/Transformer-Tutorials/README.md | 277 + ...etection_on_custom_dataset_(balloon).ipynb | 27576 ++++++++++++++++ .../Transformer-Tutorials/YOLOS/README.md | 7 + .../YOLOS_minimal_inference_example.ipynb | 1787 + 4 files changed, 29647 insertions(+) create mode 100644 deep-learning/Transformer-Tutorials/README.md create mode 100644 deep-learning/Transformer-Tutorials/YOLOS/Fine_tuning_YOLOS_for_object_detection_on_custom_dataset_(balloon).ipynb create mode 100644 deep-learning/Transformer-Tutorials/YOLOS/README.md create mode 100644 deep-learning/Transformer-Tutorials/YOLOS/YOLOS_minimal_inference_example.ipynb diff --git a/deep-learning/Transformer-Tutorials/README.md b/deep-learning/Transformer-Tutorials/README.md new file mode 100644 index 00000000..d0a8b955 --- /dev/null +++ b/deep-learning/Transformer-Tutorials/README.md @@ -0,0 +1,277 @@ +# Transformers-Tutorials + +Hi there! + +This repository contains demos I made with the [Transformers library](https://github.com/huggingface/transformers) by πŸ€— HuggingFace. Currently, all of them are implemented in PyTorch. + +NOTE: if you are not familiar with HuggingFace and/or Transformers, I highly recommend to check out our [free course](https://huggingface.co/course/chapter1), which introduces you to several Transformer architectures (such as BERT, GPT-2, T5, BART, etc.), as well as an overview of the HuggingFace libraries, including [Transformers](https://github.com/huggingface/transformers), [Tokenizers](https://github.com/huggingface/tokenizers), [Datasets](https://github.com/huggingface/datasets), [Accelerate](https://github.com/huggingface/accelerate) and the [hub](https://huggingface.co/). + +For an overview of the ecosystem of HuggingFace for computer vision (June 2022), refer to [this notebook](https://github.com/NielsRogge/Transformers-Tutorials/blob/master/HuggingFace_vision_ecosystem_overview_(June_2022).ipynb) with corresponding [video](https://www.youtube.com/watch?v=oL-xmufhZM8&t=2884s). + +Currently, it contains the following demos: +* BERT ([paper](https://arxiv.org/abs/1810.04805)): + - fine-tuning `BertForTokenClassification` on a named entity recognition (NER) dataset. [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/BERT/Custom_Named_Entity_Recognition_with_BERT_only_first_wordpiece.ipynb) + - fine-tuning `BertForSequenceClassification` for multi-label text classification. [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/BERT/Fine_tuning_BERT_(and_friends)_for_multi_label_text_classification.ipynb) +* BEiT ([paper]([https://arxiv.org/abs/2103.06874](https://arxiv.org/abs/2106.08254))): + - understanding `BeitForMaskedImageModeling` [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/BEiT/Understanding_BeitForMaskedImageModeling.ipynb) +* CANINE ([paper](https://arxiv.org/abs/2103.06874)): + - fine-tuning `CanineForSequenceClassification` on IMDb [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/CANINE/Fine_tune_CANINE_on_IMDb_(movie_review_binary_classification).ipynb) +* Conditional DETR ([paper](https://arxiv.org/abs/2108.06152)): + - performing inference with `ConditionalDetrForObjectDetection` [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/Conditional%20DETR/Run_inference_with_Conditional_DETR.ipynb) + - fine-tuning `ConditionalDetrForObjectDetection` on a custom dataset (balloon) [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/Conditional%20DETR/Fine_tuning_Conditional_DETR_on_custom_dataset_(balloon).ipynb) +* ConvNeXT ([paper](https://arxiv.org/abs/2201.03545)): + - fine-tuning (and performing inference with) `ConvNextForImageClassification` [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/ConvNeXT/Fine_tune_ConvNeXT_for_image_classification.ipynb) +* DINO ([paper](https://arxiv.org/abs/2104.14294)): + - visualize self-attention of Vision Transformers trained using the DINO method [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/DINO/Visualize_self_attention_of_DINO.ipynb) +* DETR ([paper](https://arxiv.org/abs/2005.12872)): + - performing inference with `DetrForObjectDetection` [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/DETR/DETR_minimal_example_(with_DetrFeatureExtractor).ipynb) + - fine-tuning `DetrForObjectDetection` on a custom object detection dataset [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/DETR/Fine_tuning_DetrForObjectDetection_on_custom_dataset_(balloon).ipynb) + - evaluating `DetrForObjectDetection` on the COCO detection 2017 validation set [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/DETR/Evaluating_DETR_on_COCO_validation_2017.ipynb) + - performing inference with `DetrForSegmentation` [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/DETR/DETR_panoptic_segmentation_minimal_example_(with_DetrFeatureExtractor).ipynb) + - fine-tuning `DetrForSegmentation` on COCO panoptic 2017 [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/DETR/Fine_tuning_DetrForSegmentation_on_custom_dataset_end_to_end_approach.ipynb) +* DPT ([paper](https://arxiv.org/abs/2103.13413)): + - performing inference with DPT for monocular depth estimation [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/DPT/DPT_inference_notebook_(depth_estimation).ipynb) + - performing inference with DPT for semantic segmentation [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/DPT/DPT_inference_notebook_(semantic_segmentation).ipynb) +* DiT ([paper](https://arxiv.org/abs/2203.02378)): + - performing inference with DiT for document image classification [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/DiT/Inference_with_DiT_(Document_Image_Transformer)_for_document_image_classification.ipynb) +* Donut ([paper](https://arxiv.org/abs/2111.15664)): + - performing inference with Donut for document image classification [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/Donut/RVL-CDIP/Quick_inference_with_DONUT_for_Document_Image_Classification.ipynb) + - fine-tuning Donut for document image classification [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/Donut/RVL-CDIP/Fine_tune_Donut_on_toy_RVL_CDIP_(document_image_classification).ipynb) + - performing inference with Donut for document visual question answering (DocVQA) [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/Donut/DocVQA/Quick_inference_with_DONUT_for_DocVQA.ipynb) + - performing inference with Donut for document parsing [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/Donut/CORD/Quick_inference_with_DONUT_for_Document_Parsing.ipynb) + - fine-tuning Donut for document parsing with PyTorch Lightning [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/Donut/CORD/Fine_tune_Donut_on_a_custom_dataset_(CORD)_with_PyTorch_Lightning.ipynb) +* GLPN ([paper](https://arxiv.org/abs/2201.07436)): + - performing inference with `GLPNForDepthEstimation` to illustrate monocular depth estimation [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/GLPN/GLPN_inference_(depth_estimation).ipynb) +* GPT-J-6B ([repository](https://github.com/kingoflolz/mesh-transformer-jax)): + - performing inference with `GPTJForCausalLM` to illustrate few-shot learning and code generation [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/GPT-J-6B/Inference_with_GPT_J_6B.ipynb) +* GroupViT ([repository](https://github.com/NVlabs/GroupViT)): + - performing inference with `GroupViTModel` to illustrate zero-shot semantic segmentation [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/GroupViT/Inference_with_GroupViT_for_zero_shot_semantic_segmentation.ipynb) +* ImageGPT ([blog post](https://openai.com/blog/image-gpt/)): + - (un)conditional image generation with `ImageGPTForCausalLM` [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/ImageGPT/(Un)conditional_image_generation_with_ImageGPT.ipynb) + - linear probing with ImageGPT [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/ImageGPT/Linear_probing_with_ImageGPT.ipynb) +* LUKE ([paper](https://arxiv.org/abs/2010.01057)): + - fine-tuning `LukeForEntityPairClassification` on a custom relation extraction dataset using PyTorch Lightning [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/LUKE/Supervised_relation_extraction_with_LukeForEntityPairClassification.ipynb) +* LayoutLM ([paper](https://arxiv.org/abs/1912.13318)): + - fine-tuning `LayoutLMForTokenClassification` on the [FUNSD](https://guillaumejaume.github.io/FUNSD/) dataset [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/LayoutLM/Fine_tuning_LayoutLMForTokenClassification_on_FUNSD.ipynb) + - fine-tuning `LayoutLMForSequenceClassification` on the [RVL-CDIP](https://www.cs.cmu.edu/~aharley/rvl-cdip/) dataset [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/LayoutLM/Fine_tuning_LayoutLMForSequenceClassification_on_RVL_CDIP.ipynb) + - adding image embeddings to LayoutLM during fine-tuning on the [FUNSD](https://guillaumejaume.github.io/FUNSD/) dataset [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/LayoutLM/Add_image_embeddings_to_LayoutLM.ipynb) +* LayoutLMv2 ([paper](https://arxiv.org/abs/2012.14740)): + - fine-tuning `LayoutLMv2ForSequenceClassification` on RVL-CDIP [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/LayoutLMv2/RVL-CDIP/Fine_tuning_LayoutLMv2ForSequenceClassification_on_RVL_CDIP.ipynb) + - fine-tuning `LayoutLMv2ForTokenClassification` on FUNSD [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/LayoutLMv2/FUNSD/Fine_tuning_LayoutLMv2ForTokenClassification_on_FUNSD.ipynb) + - fine-tuning `LayoutLMv2ForTokenClassification` on FUNSD using the πŸ€— Trainer [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/LayoutLMv2/FUNSD/Fine_tuning_LayoutLMv2ForTokenClassification_on_FUNSD_using_HuggingFace_Trainer.ipynb) + - performing inference with `LayoutLMv2ForTokenClassification` on FUNSD [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/LayoutLMv2/FUNSD/Inference_with_LayoutLMv2ForTokenClassification.ipynb) + - true inference with `LayoutLMv2ForTokenClassification` (when no labels are available) + Gradio demo [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/LayoutLMv2/FUNSD/True_inference_with_LayoutLMv2ForTokenClassification_%2B_Gradio_demo.ipynb) + - fine-tuning `LayoutLMv2ForTokenClassification` on CORD [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/LayoutLMv2/CORD/Fine_tuning_LayoutLMv2ForTokenClassification_on_CORD.ipynb) + - fine-tuning `LayoutLMv2ForQuestionAnswering` on DOCVQA [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/LayoutLMv2/DocVQA/Fine_tuning_LayoutLMv2ForQuestionAnswering_on_DocVQA.ipynb) +* LayoutLMv3 ([paper](https://arxiv.org/abs/2204.08387)): + - fine-tuning `LayoutLMv3ForTokenClassification` on the [FUNSD](https://guillaumejaume.github.io/FUNSD/) dataset [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/LayoutLMv3/Fine_tune_LayoutLMv3_on_FUNSD_(HuggingFace_Trainer).ipynb) +* MarkupLM ([paper](https://arxiv.org/abs/2110.08518)): + - inference with MarkupLM to perform question answering on web pages [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/MarkupLM/Inference_with_MarkupLM_for_question_answering_on_web_pages.ipynb) + - fine-tuning `MarkupLMForTokenClassification` on a toy dataset for NER on web pages [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/MarkupLM/Fine_tune_MarkupLMForTokenClassification_on_a_custom_dataset.ipynb) +* MaskFormer ([paper](https://arxiv.org/abs/2107.06278)): + - performing inference with `MaskFormer` (both semantic and panoptic segmentation): [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/MaskFormer/maskformer_minimal_example(with_MaskFormerFeatureExtractor).ipynb) + - fine-tuning `MaskFormer` on a custom dataset for semantic segmentation [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/MaskFormer/Fine_tune_MaskFormer_on_custom_dataset.ipynb) +* Perceiver IO ([paper](https://arxiv.org/abs/2107.14795)): + - showcasing masked language modeling and image classification with the Perceiver [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/Perceiver/Perceiver_for_masked_language_modeling_and_image_classification.ipynb) + - fine-tuning the Perceiver for image classification [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/Perceiver/Fine_tune_the_Perceiver_for_image_classification.ipynb) + - fine-tuning the Perceiver for text classification [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/Perceiver/Fine_tune_Perceiver_for_text_classification.ipynb) + - predicting optical flow between a pair of images with `PerceiverForOpticalFlow`[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/Perceiver/Perceiver_for_Optical_Flow.ipynb) + - auto-encoding a video (images, audio, labels) with `PerceiverForMultimodalAutoencoding` [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/Perceiver/Perceiver_for_Multimodal_Autoencoding.ipynb) +* SegFormer ([paper](https://arxiv.org/abs/2105.15203)): + - performing inference with `SegformerForSemanticSegmentation` [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/SegFormer/Segformer_inference_notebook.ipynb) + - fine-tuning `SegformerForSemanticSegmentation` on custom data using native PyTorch [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/SegFormer/Fine_tune_SegFormer_on_custom_dataset.ipynb) +* T5 ([paper](https://arxiv.org/abs/1910.10683)): + - fine-tuning `T5ForConditionalGeneration` on a Dutch summarization dataset on TPU using HuggingFace Accelerate [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/tree/master/T5) + - fine-tuning `T5ForConditionalGeneration` (CodeT5) for Ruby code summarization using PyTorch Lightning [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/T5/Fine_tune_CodeT5_for_generating_docstrings_from_Ruby_code.ipynb) +* TAPAS ([paper](https://arxiv.org/abs/2004.02349)): + - fine-tuning `TapasForQuestionAnswering` on the Microsoft [Sequential Question Answering (SQA)](https://www.microsoft.com/en-us/download/details.aspx?id=54253) dataset [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/TAPAS/Fine_tuning_TapasForQuestionAnswering_on_SQA.ipynb) + - evaluating `TapasForSequenceClassification` on the [Table Fact Checking (TabFact)](https://tabfact.github.io/) dataset [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/TAPAS/Evaluating_TAPAS_on_the_Tabfact_test_set.ipynb) +* TrOCR ([paper](https://arxiv.org/abs/2109.10282)): + - performing inference with `TrOCR` to illustrate optical character recognition with Transformers, as well as making a Gradio demo [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/TrOCR/Inference_with_TrOCR_%2B_Gradio_demo.ipynb) + - fine-tuning `TrOCR` on the IAM dataset using the Seq2SeqTrainer [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/TrOCR/Fine_tune_TrOCR_on_IAM_Handwriting_Database_using_Seq2SeqTrainer.ipynb) + - fine-tuning `TrOCR` on the IAM dataset using native PyTorch [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/TrOCR/Fine_tune_TrOCR_on_IAM_Handwriting_Database_using_native_PyTorch.ipynb) + - evaluating `TrOCR` on the IAM test set [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/TrOCR/Evaluating_TrOCR_base_handwritten_on_the_IAM_test_set.ipynb) +* VideoMAE ([paper](https://arxiv.org/abs/2203.12602)): + - performing inference with `VideoMAEForVideoClassification` [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/VideoMAE/Quick_inference_with_VideoMAE.ipynb) +* ViLT ([paper](https://arxiv.org/abs/2102.03334)): + - fine-tuning `ViLT` for visual question answering (VQA) [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/ViLT/Fine_tuning_ViLT_for_VQA.ipynb) + - performing inference with `ViLT` to illustrate visual question answering (VQA) [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/ViLT/Inference_with_ViLT_(visual_question_answering).ipynb) + - masked language modeling (MLM) with a pre-trained `ViLT` model [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/ViLT/Masked_language_modeling_with_ViLT.ipynb) + - performing inference with `ViLT` for image-text retrieval [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/ViLT/Using_ViLT_for_image_text_retrieval.ipynb) + - performing inference with `ViLT` to illustrate natural language for visual reasoning (NLVR) [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/ViLT/ViLT_for_natural_language_visual_reasoning.ipynb) +* ViTMAE ([paper](https://arxiv.org/abs/2111.06377)): + - reconstructing pixel values with `ViTMAEForPreTraining` [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/ViTMAE/ViT_MAE_visualization_demo.ipynb) +* Vision Transformer ([paper](https://arxiv.org/abs/2010.11929)): + - performing inference with `ViTForImageClassification` [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/VisionTransformer/Quick_demo_of_HuggingFace_version_of_Vision_Transformer_inference.ipynb) + - fine-tuning `ViTForImageClassification` on [CIFAR-10](https://www.cs.toronto.edu/~kriz/cifar.html) using PyTorch Lightning [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/VisionTransformer/Fine_tuning_the_Vision_Transformer_on_CIFAR_10_with_PyTorch_Lightning.ipynb) + - fine-tuning `ViTForImageClassification` on [CIFAR-10](https://www.cs.toronto.edu/~kriz/cifar.html) using the πŸ€— Trainer [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/VisionTransformer/Fine_tuning_the_Vision_Transformer_on_CIFAR_10_with_the_%F0%9F%A4%97_Trainer.ipynb) +* YOLOS ([paper](https://arxiv.org/abs/2106.00666)): + - fine-tuning `YolosForObjectDetection` on a custom dataset [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/YOLOS/Fine_tuning_YOLOS_for_object_detection_on_custom_dataset_(balloon).ipynb) + - inference with `YolosForObjectDetection` [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/YOLOS/YOLOS_minimal_inference_example.ipynb) +* X-CLIP ([paper](https://arxiv.org/abs/2208.02816)): + - performing zero-shot video classification with X-CLIP [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/X-CLIP/Video_text_matching_with_X_CLIP.ipynb) + - zero-shot classifying a YouTube video with X-CLIP [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/X-CLIP/Zero_shot_classify_a_YouTube_video_with_X_CLIP.ipynb) + +... more to come! πŸ€— + +If you have any questions regarding these demos, feel free to open an issue on this repository. + +Btw, I was also the main contributor to add the following algorithms to the library: +- TAbular PArSing (TAPAS) by Google AI +- Vision Transformer (ViT) by Google AI +- DINO by Facebook AI +- Data-efficient Image Transformers (DeiT) by Facebook AI +- LUKE by Studio Ousia +- DEtection TRansformers (DETR) by Facebook AI +- CANINE by Google AI +- BEiT by Microsoft Research +- LayoutLMv2 (and LayoutXLM) by Microsoft Research +- TrOCR by Microsoft Research +- SegFormer by NVIDIA +- ImageGPT by OpenAI +- Perceiver by Deepmind +- MAE by Facebook AI +- ViLT by NAVER AI Lab +- ConvNeXT by Facebook AI +- DiT By Microsoft Research +- GLPN by KAIST +- DPT by Intel Labs +- YOLOS by School of EIC, Huazhong University of Science & Technology +- TAPEX by Microsoft Research +- LayoutLMv3 by Microsoft Research +- VideoMAE by Multimedia Computing Group, Nanjing University +- X-CLIP by Microsoft Research +- MarkupLM by Microsoft Research + +All of them were an incredible learning experience. I can recommend anyone to contribute an AI algorithm to the library! + +## Data preprocessing +Regarding preparing your data for a PyTorch model, there are a few options: +- a native PyTorch dataset + dataloader. This is the standard way to prepare data for a PyTorch model, namely by subclassing `torch.utils.data.Dataset`, and then creating a corresponding `DataLoader` (which is a Python generator that allows to loop over the items of a dataset). When subclassing the `Dataset` class, one needs to implement 3 methods: `__init__`, `__len__` (which returns the number of examples of the dataset) and `__getitem__` (which returns an example of the dataset, given an integer index). Here's an example of creating a basic text classification dataset (assuming one has a CSV that contains 2 columns, namely "text" and "label"): + +```python +from torch.utils.data import Dataset + +class CustomTrainDataset(Dataset): + def __init__(self, df, tokenizer): + self.df = df + self.tokenizer = tokenizer + + def __len__(self): + return len(self.df) + + def __getitem__(self, idx): + # get item + item = df.iloc[idx] + text = item['text'] + label = item['label'] + # encode text + encoding = self.tokenizer(text, padding="max_length", max_length=128, truncation=True, return_tensors="pt") + # remove batch dimension which the tokenizer automatically adds + encoding = {k:v.squeeze() for k,v in encoding.items()} + # add label + encoding["label"] = torch.tensor(label) + + return encoding +``` + +Instantiating the dataset then happens as follows: + +```python +from transformers import BertTokenizer +import pandas as pd + +tokenizer = BertTokenizer.from_pretrained("bert-base-uncased") +df = pd.read_csv("path_to_your_csv") + +train_dataset = CustomTrainDataset(df=df, tokenizer=tokenizer) +``` + +Accessing the first example of the dataset can then be done as follows: + +```python +encoding = train_dataset[0] +``` + +In practice, one creates a corresponding `DataLoader`, that allows to get batches from the dataset: + +```python +from torch.utils.data import DataLoader + +train_dataloader = DataLoader(train_dataset, batch_size=4, shuffle=True) +``` +I often check whether the data is created correctly by fetching the first batch from the data loader, and then printing out the shapes of the tensors, decoding the input_ids back to text, etc. + +```python +batch = next(iter(train_dataloader)) +for k,v in batch.items(): + print(k, v.shape) +# decode the input_ids of the first example of the batch +print(tokenizer.decode(batch['input_ids'][0].tolist()) +``` +- [HuggingFace Datasets](https://huggingface.co/docs/datasets/). Datasets is a library by HuggingFace that allows to easily load and process data in a very fast and memory-efficient way. It is backed by [Apache Arrow](https://arrow.apache.org/), and has cool features such as memory-mapping, which allow you to only load data into RAM when it is required. It only has deep interoperability with the [HuggingFace hub](https://huggingface.co/datasets), allowing to easily load well-known datasets as well as share your own with the community. + +Loading a custom dataset as a Dataset object can be done as follows (you can install datasets using `pip install datasets`): +```python +from datasets import load_dataset + +dataset = load_dataset('csv', data_files={'train': ['my_train_file_1.csv', 'my_train_file_2.csv'] 'test': 'my_test_file.csv'}) +``` +Here I'm loading local CSV files, but there are other formats supported (including JSON, Parquet, txt) as well as loading data from a local Pandas dataframe or dictionary for instance. You can check out the [docs](https://huggingface.co/docs/datasets/loading.html#local-and-remote-files) for all details. + +## Training frameworks +Regarding fine-tuning Transformer models (or more generally, PyTorch models), there are a few options: +- using native PyTorch. This is the most basic way to train a model, and requires the user to manually write the training loop. The advantage is that this is very easy to debug. The disadvantage is that one needs to implement training him/herself, such as setting the model in the appropriate mode (`model.train()`/`model.eval()`), handle device placement (`model.to(device)`), etc. A typical training loop in PyTorch looks as follows (inspired by [this great PyTorch intro tutorial]()): + +```python +import torch +from transformers import BertForSequenceClassification + +# Instantiate pre-trained BERT model with randomly initialized classification head +model = BertForSequenceClassification.from_pretrained("bert-base-uncased") + +# I almost always use a learning rate of 5e-5 when fine-tuning Transformer based models +optimizer = torch.optim.Adam(model.parameters(), lr=5e-5) + +# put model on GPU, if available +device = torch.device("cuda" if torch.cuda.is_available() else "cpu") +model.to(device) + +for epoch in range(epochs): + model.train() + train_loss = 0.0 + for batch in train_dataloader: + # put batch on device + batch = {k:v.to(device) for k,v in batch.items()} + + # forward pass + outputs = model(**batch) + loss = outputs.loss + + train_loss += loss.item() + + loss.backward() + optimizer.step() + optimizer.zero_grad() + + print("Loss after epoch {epoch}:", train_loss/len(train_dataloader)) + + model.eval() + val_loss = 0.0 + with torch.no_grad(): + for batch in eval_dataloader: + # put batch on device + batch = {k:v.to(device) for k,v in batch.items()} + + # forward pass + outputs = model(**batch) + loss = outputs.logits + + val_loss += loss.item() + + print("Validation loss after epoch {epoch}:", val_loss/len(eval_dataloader)) +``` + +- [PyTorch Lightning (PL)](https://www.pytorchlightning.ai/). PyTorch Lightning is a framework that automates the training loop written above, by abstracting it away in a Trainer object. Users don't need to write the training loop themselves anymore, instead they can just do `trainer = Trainer()` and then `trainer.fit(model)`. The advantage is that you can start training models very quickly (hence the name lightning), as all training-related code is handled by the `Trainer` object. The disadvantage is that it may be more difficult to debug your model, as the training and evaluation is now abstracted away. +- [HuggingFace Trainer](https://huggingface.co/transformers/main_classes/trainer.html). The HuggingFace Trainer API can be seen as a framework similar to PyTorch Lightning in the sense that it also abstracts the training away using a Trainer object. However, contrary to PyTorch Lightning, it is not meant not be a general framework. Rather, it is made especially for fine-tuning Transformer-based models available in the HuggingFace Transformers library. The Trainer also has an extension called `Seq2SeqTrainer` for encoder-decoder models, such as BART, T5 and the `EncoderDecoderModel` classes. Note that all [PyTorch example scripts](https://github.com/huggingface/transformers/tree/master/examples/pytorch) of the Transformers library make use of the Trainer. +- [HuggingFace Accelerate](https://github.com/huggingface/accelerate): Accelerate is a new project, that is made for people who still want to write their own training loop (as shown above), but would like to make it work automatically irregardless of the hardware (i.e. multiple GPUs, TPU pods, mixed precision, etc.). diff --git a/deep-learning/Transformer-Tutorials/YOLOS/Fine_tuning_YOLOS_for_object_detection_on_custom_dataset_(balloon).ipynb b/deep-learning/Transformer-Tutorials/YOLOS/Fine_tuning_YOLOS_for_object_detection_on_custom_dataset_(balloon).ipynb new file mode 100644 index 00000000..839cfee9 --- /dev/null +++ b/deep-learning/Transformer-Tutorials/YOLOS/Fine_tuning_YOLOS_for_object_detection_on_custom_dataset_(balloon).ipynb @@ -0,0 +1,27576 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ILw7uqDlQ6GC" + }, + "source": [ + "## Fine-tuning YOLOS on a custom dataset for object detection\n", + "\n", + "In this notebook, we are going to fine-tune YOLOS on a custom object detection dataset. The goal for the model is to recognize balloons in pictures.\n", + "\n", + "* Original YOLOS paper: https://arxiv.org/abs/2106.00666\n", + "* Original DETR repo: https://github.com/hustvl/YOLOS\n", + "\n", + "Important note regarding **GPU memory**: `YolosFeatureExtractor` by default resizes each image to have a `min_size` of 800 pixels and a `max_size` of 1333 pixels (as these are the default values that DETR and YOLOS use at *inference* time). Note that this can stress-test the memory of your GPU when *training* the model (the bigger the images, the more patches are used which are sent through the Transformer encoder). It's advised to use a batch size of 2 on a single GPU. You can of course also initialize `YolosFeatureExtractor` with a smaller `size` and/or `max_size` to use bigger batches. \n", + "\n", + "Note regarding **augmentation**: DETR/YOLOS actually use several image augmentations during training. One of them is **scale augmentation**: they set the `min_size` randomly to be one of [480, 512, 544, 576, 608, 640, 672, 704, 736, 768, 800] as can be seen [here](https://github.com/facebookresearch/detr/blob/a54b77800eb8e64e3ad0d8237789fcbf2f8350c5/datasets/coco.py#L122). However, we are not going to add any of the augmentations that are used in the original implementation during training. It works fine without them.\n", + "\n", + "Also big thanks to the creator of [this notebook](https://github.com/woctezuma/finetune-detr/blob/master/finetune_detr.ipynb), which helped me a lot in understanding how to fine-tune DETR on a custom dataset.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kiZe9EjLRL-r" + }, + "source": [ + "## Set up environment" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "u2P6C0ezo6gC", + "outputId": "ffc1156e-63e2-4aa7-d5f7-70b890039ad4" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + " Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n", + " Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n", + " Preparing wheel metadata ... \u001b[?25l\u001b[?25hdone\n", + "\u001b[K |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 596 kB 5.0 MB/s \n", + "\u001b[K |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 6.6 MB 60.1 MB/s \n", + "\u001b[K |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 77 kB 5.0 MB/s \n", + "\u001b[?25h Building wheel for transformers (PEP 517) ... \u001b[?25l\u001b[?25hdone\n" + ] + } + ], + "source": [ + "!pip install -q git+https://github.com/huggingface/transformers.git" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "id": "zohBiOcjGnzB", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "8acd7582-39d0-41b1-fba7-936743c35be1" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\u001b[K |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 582 kB 4.8 MB/s \n", + "\u001b[K |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 408 kB 11.0 MB/s \n", + "\u001b[K |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 136 kB 18.8 MB/s \n", + "\u001b[K |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 1.1 MB 20.1 MB/s \n", + "\u001b[K |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 144 kB 29.9 MB/s \n", + "\u001b[K |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 271 kB 32.8 MB/s \n", + "\u001b[K |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 94 kB 1.7 MB/s \n", + "\u001b[?25h" + ] + } + ], + "source": [ + "!pip install -q pytorch-lightning" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vCOmWIMezyFS" + }, + "source": [ + "## Download + preprocess data\n", + "\n", + "Here we download the balloon dataset, hosted on Github." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "9PuLQDyVzzrU", + "outputId": "9f034ae4-b8e8-4cd7-c12e-5174be23cc7a" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "--2022-05-03 15:31:16-- https://github.com/matterport/Mask_RCNN/releases/download/v2.1/balloon_dataset.zip\n", + "Resolving github.com (github.com)... 140.82.114.4\n", + "Connecting to github.com (github.com)|140.82.114.4|:443... connected.\n", + "HTTP request sent, awaiting response... 302 Found\n", + "Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/107595270/737339e2-2b83-11e8-856a-188034eb3468?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20220503%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220503T153116Z&X-Amz-Expires=300&X-Amz-Signature=a2c35ba4193010827a4f3b9584396e1b121cd7f2a4f3c6f0b830b2ac178897d4&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=107595270&response-content-disposition=attachment%3B%20filename%3Dballoon_dataset.zip&response-content-type=application%2Foctet-stream [following]\n", + "--2022-05-03 15:31:16-- https://objects.githubusercontent.com/github-production-release-asset-2e65be/107595270/737339e2-2b83-11e8-856a-188034eb3468?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20220503%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220503T153116Z&X-Amz-Expires=300&X-Amz-Signature=a2c35ba4193010827a4f3b9584396e1b121cd7f2a4f3c6f0b830b2ac178897d4&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=107595270&response-content-disposition=attachment%3B%20filename%3Dballoon_dataset.zip&response-content-type=application%2Foctet-stream\n", + "Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.110.133, ...\n", + "Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.108.133|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 38741381 (37M) [application/octet-stream]\n", + "Saving to: β€˜balloon_dataset.zip’\n", + "\n", + "balloon_dataset.zip 100%[===================>] 36.95M 96.3MB/s in 0.4s \n", + "\n", + "2022-05-03 15:31:17 (96.3 MB/s) - β€˜balloon_dataset.zip’ saved [38741381/38741381]\n", + "\n" + ] + } + ], + "source": [ + "# download, decompress the data\n", + "!wget https://github.com/matterport/Mask_RCNN/releases/download/v2.1/balloon_dataset.zip\n", + "!unzip balloon_dataset.zip > /dev/null" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "e_3H5PwPz-Ov" + }, + "source": [ + "The balloon dataset comes in the VIA annotation format. However, to prepare the annotations for the model, `YolosFeatureExtractor` expects them to be in COCO format. The following cell clones a Github repo that includes a function to convert them into COCO format." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "VkAzYMYb0ED7", + "outputId": "3b96218c-1ad6-4908-da1a-678b2bbd851a" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Cloning into 'VIA2COCO'...\n", + "remote: Enumerating objects: 67, done.\u001b[K\n", + "remote: Counting objects: 2% (1/47)\u001b[K\rremote: Counting objects: 4% (2/47)\u001b[K\rremote: Counting objects: 6% (3/47)\u001b[K\rremote: Counting objects: 8% (4/47)\u001b[K\rremote: Counting objects: 10% (5/47)\u001b[K\rremote: Counting objects: 12% (6/47)\u001b[K\rremote: Counting objects: 14% (7/47)\u001b[K\rremote: Counting objects: 17% (8/47)\u001b[K\rremote: Counting objects: 19% (9/47)\u001b[K\rremote: Counting objects: 21% (10/47)\u001b[K\rremote: Counting objects: 23% (11/47)\u001b[K\rremote: Counting objects: 25% (12/47)\u001b[K\rremote: Counting objects: 27% (13/47)\u001b[K\rremote: Counting objects: 29% (14/47)\u001b[K\rremote: Counting objects: 31% (15/47)\u001b[K\rremote: Counting objects: 34% (16/47)\u001b[K\rremote: Counting objects: 36% (17/47)\u001b[K\rremote: Counting objects: 38% (18/47)\u001b[K\rremote: Counting objects: 40% (19/47)\u001b[K\rremote: Counting objects: 42% (20/47)\u001b[K\rremote: Counting objects: 44% (21/47)\u001b[K\rremote: Counting objects: 46% (22/47)\u001b[K\rremote: Counting objects: 48% (23/47)\u001b[K\rremote: Counting objects: 51% (24/47)\u001b[K\rremote: Counting objects: 53% (25/47)\u001b[K\rremote: Counting objects: 55% (26/47)\u001b[K\rremote: Counting objects: 57% (27/47)\u001b[K\rremote: Counting objects: 59% (28/47)\u001b[K\rremote: Counting objects: 61% (29/47)\u001b[K\rremote: Counting objects: 63% (30/47)\u001b[K\rremote: Counting objects: 65% (31/47)\u001b[K\rremote: Counting objects: 68% (32/47)\u001b[K\rremote: Counting objects: 70% (33/47)\u001b[K\rremote: Counting objects: 72% (34/47)\u001b[K\rremote: Counting objects: 74% (35/47)\u001b[K\rremote: Counting objects: 76% (36/47)\u001b[K\rremote: Counting objects: 78% (37/47)\u001b[K\rremote: Counting objects: 80% (38/47)\u001b[K\rremote: Counting objects: 82% (39/47)\u001b[K\rremote: Counting objects: 85% (40/47)\u001b[K\rremote: Counting objects: 87% (41/47)\u001b[K\rremote: Counting objects: 89% (42/47)\u001b[K\rremote: Counting objects: 91% (43/47)\u001b[K\rremote: Counting objects: 93% (44/47)\u001b[K\rremote: Counting objects: 95% (45/47)\u001b[K\rremote: Counting objects: 97% (46/47)\u001b[K\rremote: Counting objects: 100% (47/47)\u001b[K\rremote: Counting objects: 100% (47/47), done.\u001b[K\n", + "remote: Compressing objects: 100% (27/27), done.\u001b[K\n", + "remote: Total 67 (delta 27), reused 38 (delta 20), pack-reused 20\u001b[K\n", + "Unpacking objects: 100% (67/67), done.\n", + "/content/VIA2COCO\n", + "Branch 'fixes' set up to track remote branch 'fixes' from 'origin'.\n", + "Switched to a new branch 'fixes'\n" + ] + } + ], + "source": [ + "!git clone https://github.com/woctezuma/VIA2COCO\n", + "%cd VIA2COCO/\n", + "!git checkout fixes" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "sMBOAVTNz9qi", + "outputId": "dbe7b0e8-3c7d-4f22-ac9c-091d56018f4c" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Converting /content/balloon/train/via_region_data.json from VIA format to COCO format\n", + "Saving to /content/balloon/train/custom_train.json\n", + "Converting /content/balloon/val/via_region_data.json from VIA format to COCO format\n", + "Saving to /content/balloon/val/custom_val.json\n" + ] + } + ], + "source": [ + "import convert as via2coco\n", + "\n", + "data_path = '/content/balloon/'\n", + "\n", + "first_class_index = 0\n", + "\n", + "for keyword in ['train', 'val']:\n", + "\n", + " input_dir = data_path + keyword + '/'\n", + " input_json = input_dir + 'via_region_data.json'\n", + " categories = ['balloon']\n", + " super_categories = ['N/A']\n", + " output_json = input_dir + 'custom_' + keyword + '.json'\n", + "\n", + " print('Converting {} from VIA format to COCO format'.format(input_json))\n", + "\n", + " coco_dict = via2coco.convert(\n", + " imgdir=input_dir,\n", + " annpath=input_json,\n", + " categories=categories,\n", + " super_categories=super_categories,\n", + " output_file_name=output_json,\n", + " first_class_index=first_class_index,\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "2VGgZ8-92yZ8", + "outputId": "969b6172-a1d4-4e9b-d8e4-899b80ff63b5" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "/content\n" + ] + } + ], + "source": [ + "%cd .." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_ogilXTIoz1M" + }, + "source": [ + "## Create PyTorch dataset + dataloaders\n", + "\n", + "Here we define a regular PyTorch dataset. Each item of the dataset is an image and corresponding annotations. Torchvision already provides a `CocoDetection` dataset, which we can use. We only add a feature extractor (`YolosFeatureExtractor`) to resize + normalize the images, and to turn the annotations (which are in COCO format) in the format that DETR expects. It will also resize the annotations accordingly." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "id": "CSySlkLfUH1R" + }, + "outputs": [], + "source": [ + "import torchvision\n", + "import os\n", + "\n", + "class CocoDetection(torchvision.datasets.CocoDetection):\n", + " def __init__(self, img_folder, feature_extractor, train=True):\n", + " ann_file = os.path.join(img_folder, \"custom_train.json\" if train else \"custom_val.json\")\n", + " super(CocoDetection, self).__init__(img_folder, ann_file)\n", + " self.feature_extractor = feature_extractor\n", + "\n", + " def __getitem__(self, idx):\n", + " # read in PIL image and target in COCO format\n", + " img, target = super(CocoDetection, self).__getitem__(idx)\n", + " \n", + " # preprocess image and target (converting target to DETR format, resizing + normalization of both image and target)\n", + " image_id = self.ids[idx]\n", + " target = {'image_id': image_id, 'annotations': target}\n", + " encoding = self.feature_extractor(images=img, annotations=target, return_tensors=\"pt\")\n", + " pixel_values = encoding[\"pixel_values\"].squeeze() # remove batch dimension\n", + " target = encoding[\"labels\"][0] # remove batch dimension\n", + "\n", + " return pixel_values, target" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "AKgSk1URI8sL" + }, + "source": [ + "Based on the class defined above, we create training and validation datasets." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 192, + "referenced_widgets": [ + "b07a8e01ef734b53ad776089727077bc", + "b5efb5ff421c4acb9a825e1b3d449f76", + "b51a7d36a7c84b01bacbe5c2cd974e30", + "7a25bda50d29490fbe0bd0323533a256", + "70960d4d927a449f9f5b6cd041101abb", + "87617b6508064f29825a5e7cbc094599", + "3560bb2ec5aa45489553ba0d4dffa65f", + "8fc7e9e4b53e42ecbca56d38269b8d5d", + "890dfffc870c4c68b24c187f40474793", + "8053263de29f4516a5f17a1e4af0eeb1", + "e1dcb585e4e241d098b41962d835c97d" + ] + }, + "id": "QXr3YjLlUH1T", + "outputId": "eb6fe9fb-6aeb-4326-addb-6381565f347b" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Downloading: 0%| | 0.00/275 [00:00" + ], + "image/png": "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SZc9tcYnyQjiUz22pxo822sx2hbWB1Dx4bVvDFT5HsQxtV236JhRTe4+vi86rlbr84uzi9XKAnFsNCgSI1JVZYWASOY6N9CSVXLhhlNKgZDESymnp6c//v73dhOvTh7Y5gId2ralWCMXeRiGYbVE5rjYC8QhRVAh48scxsncitsmlU1XR3j65YTIYD4R66CaOwJERgd3raJZoADEwAHKiNuqZatc3HqPJqQdRA7YNG07i6lVdaqhwmrT0LP2k+RSzeawzYgwMyRmCuYEBsisDn3RddEFS01v1Jp4gFirkX69NG/nNA+JQ0iRI2NAhxACVv2BmdmEU2ek1Th0adEEePX5F95+eLQ5O1vsHCwO9sZaYLnXva72wKrdcvuo1PbKtBinABVualk2YSONimRTcLfabKs+SgdgVxETkyymhkAkBJmUVscHLb54/dpzz1zf39tJKTETOCFNh0J9c1VViplqaiM83YDcKpqnj/hSE71NcA8pmEpLfuPK/msvP7csdx5s+lm703Tdpu+/9Gtf/sjHXifCz3z20+wgxf/X/5v/w//5//qff+VLXzw5P2kibZZnb/387d/44ped0moz6rD2rAEDIgaoBmr3msZbVaqqBkghKEXhRihmQG0iBBNGisShq9NcATakojiI5WzH6/VgNpiNSBRRkhW1YhowPtG3PzW97fO5QubQKmAp5cHD8/XyzQfvH927+/Cll1557ubzz1y98bt/52/+ymc/+ZMff1/y+MrLz87n893d3ZBSXQuIFeToWgbLpaxWc4fPfeGXnr165b/5F//86z97b/fqobg7xXbGYMYxRix93zdNN5/PxVwrexpIxNp26DeFeN62V0CNOAcccn70N3/v977w+c/funkj9w9OHj2wnO998OiH33/7Z/fPlqth1YtiqB7EUQVcKSV3RWcABXiiJDMgJg6BwRyo7vEcGAMBtilLOb/Y9EtR+E672PnkL3xSwhy+9GnVY/0nq+boPZhDKbo7tEqn4c//BNIi/cKXxoP905LFxzSbUQ8cQ6BgVphhb2fnmRvX9nYWjkUDwbyhnTkwEWGIDEZqGD564/E1GZqcYgNiC+9AGXhZveyI7M4mCBbJW1VCbgiTQQyRNZSmyTefibt3AjOqERDs89756ujBo9OXX71ZylmITYyxxmMEAg/BHdFqtOM0xJgmVvDU4+GMaHDZ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\n" + }, + "metadata": {}, + "execution_count": 10 + } + ], + "source": [ + "import numpy as np\n", + "import os\n", + "from PIL import Image, ImageDraw\n", + "\n", + "# based on https://github.com/woctezuma/finetune-detr/blob/master/finetune_detr.ipynb\n", + "image_ids = train_dataset.coco.getImgIds()\n", + "# let's pick a random image\n", + "image_id = image_ids[np.random.randint(0, len(image_ids))]\n", + "print('Image nΒ°{}'.format(image_id))\n", + "image = train_dataset.coco.loadImgs(image_id)[0]\n", + "image = Image.open(os.path.join('/content/balloon/train', image['file_name']))\n", + "\n", + "annotations = train_dataset.coco.imgToAnns[image_id]\n", + "draw = ImageDraw.Draw(image, \"RGBA\")\n", + "\n", + "cats = train_dataset.coco.cats\n", + "id2label = {k: v['name'] for k,v in cats.items()}\n", + "\n", + "for annotation in annotations:\n", + " box = annotation['bbox']\n", + " class_idx = annotation['category_id']\n", + " x,y,w,h = tuple(box)\n", + " draw.rectangle((x,y,x+w,y+h), outline='red', width=1)\n", + " draw.text((x, y), id2label[class_idx], fill='white')\n", + "\n", + "image" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "XfI6pHmd2K7t" + }, + "source": [ + "Next, let's create corresponding dataloaders. We define a custom `collate_fn` to batch images together. As DETR resizes images to have a min size of 800 and a max size of 1333, images can have different sizes. We pad images (`pixel_values`) to the largest image in a batch. " + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "id": "jJjrd5vp2PWe" + }, + "outputs": [], + "source": [ + "from torch.utils.data import DataLoader\n", + "\n", + "def collate_fn(batch):\n", + " pixel_values = [item[0] for item in batch]\n", + " encoding = feature_extractor.pad(pixel_values, return_tensors=\"pt\")\n", + " labels = [item[1] for item in batch]\n", + " batch = {}\n", + " batch['pixel_values'] = encoding['pixel_values']\n", + " batch['labels'] = labels\n", + " return batch\n", + "\n", + "train_dataloader = DataLoader(train_dataset, collate_fn=collate_fn, batch_size=1, shuffle=True)\n", + "val_dataloader = DataLoader(val_dataset, collate_fn=collate_fn, batch_size=1)\n", + "batch = next(iter(train_dataloader))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Tbb-kc1AJ6oE" + }, + "source": [ + "Let's verify the keys of a single batch:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ZzPdxImA2Eqj", + "outputId": "c5562932-f4db-48bb-fda4-9734e7f13a38" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "dict_keys(['pixel_values', 'labels'])" + ] + }, + "metadata": {}, + "execution_count": 12 + } + ], + "source": [ + "batch.keys()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "02b2SKPJJ9IO" + }, + "source": [ + "Let's verify the shape of the `pixel_values`, and check the `target`::" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "id": "GKCKGviRyT95" + }, + "outputs": [], + "source": [ + "pixel_values, target = train_dataset[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "id": "WoRvpJUX1C4T", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "60473a10-d7af-4f42-d2b6-9fc1ea68f8ca" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "torch.Size([3, 512, 682])" + ] + }, + "metadata": {}, + "execution_count": 14 + } + ], + "source": [ + "pixel_values.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "l4htsjWp1Obh", + "outputId": "ca3bcab8-6210-485b-8984-c80345281e46" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "{'boxes': tensor([[0.5955, 0.5811, 0.2202, 0.3561]]), 'class_labels': tensor([0]), 'image_id': tensor([0]), 'area': tensor([1507.4153]), 'iscrowd': tensor([0]), 'orig_size': tensor([1536, 2048]), 'size': tensor([512, 682])}\n" + ] + } + ], + "source": [ + "print(target)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7DKgQU2pbJrJ" + }, + "source": [ + "## Train the model using PyTorch Lightning\n", + "\n", + "Here we define a `LightningModule`, which is an `nn.Module` with some extra functionality.\n", + "\n", + "For more information regarding PyTorch Lightning, I recommend the [docs](https://pytorch-lightning.readthedocs.io/en/latest/?_ga=2.35105442.2002381006.1623231889-1738348008.1615553774) as well as the [tutorial notebooks](https://github.com/PyTorchLightning/lightning-tutorials/tree/aeae8085b48339e9bd9ab61d81cc0dc8b0d48f9c/.notebooks/starters). \n", + "\n", + "You can of course just train the model in native PyTorch as an alternative." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "id": "9r-lMAWKWoLY" + }, + "outputs": [], + "source": [ + "import pytorch_lightning as pl\n", + "from transformers import DetrConfig, AutoModelForObjectDetection\n", + "import torch\n", + "\n", + "class Detr(pl.LightningModule):\n", + "\n", + " def __init__(self, lr, weight_decay):\n", + " super().__init__()\n", + " # replace COCO classification head with custom head\n", + " self.model = AutoModelForObjectDetection.from_pretrained(\"hustvl/yolos-small\", \n", + " num_labels=len(id2label),\n", + " ignore_mismatched_sizes=True)\n", + " # see https://github.com/PyTorchLightning/pytorch-lightning/pull/1896\n", + " self.lr = lr\n", + " self.weight_decay = weight_decay\n", + "\n", + " def forward(self, pixel_values):\n", + " outputs = self.model(pixel_values=pixel_values)\n", + "\n", + " return outputs\n", + " \n", + " def common_step(self, batch, batch_idx):\n", + " pixel_values = batch[\"pixel_values\"]\n", + " labels = [{k: v.to(self.device) for k, v in t.items()} for t in batch[\"labels\"]]\n", + "\n", + " outputs = self.model(pixel_values=pixel_values, labels=labels)\n", + "\n", + " loss = outputs.loss\n", + " loss_dict = outputs.loss_dict\n", + "\n", + " return loss, loss_dict\n", + "\n", + " def training_step(self, batch, batch_idx):\n", + " loss, loss_dict = self.common_step(batch, batch_idx) \n", + " # logs metrics for each training_step,\n", + " # and the average across the epoch\n", + " self.log(\"training_loss\", loss)\n", + " for k,v in loss_dict.items():\n", + " self.log(\"train_\" + k, v.item())\n", + "\n", + " return loss\n", + "\n", + " def validation_step(self, batch, batch_idx):\n", + " loss, loss_dict = self.common_step(batch, batch_idx) \n", + " self.log(\"validation_loss\", loss)\n", + " for k,v in loss_dict.items():\n", + " self.log(\"validation_\" + k, v.item())\n", + "\n", + " return loss\n", + "\n", + " def configure_optimizers(self):\n", + " optimizer = torch.optim.AdamW(self.parameters(), lr=self.lr,\n", + " weight_decay=self.weight_decay)\n", + " \n", + " return optimizer\n", + "\n", + " def train_dataloader(self):\n", + " return train_dataloader\n", + "\n", + " def val_dataloader(self):\n", + " return val_dataloader" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "8fVp0-LpKsUj" + }, + "source": [ + "As PyTorch Lightning by default logs to Tensorboard, let's start it:" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 821, + "resources": { + "https://localhost:6006/?tensorboardColab=true": { + "data": "PCFkb2N0eXBlIGh0bWw+PG1ldGEgbmFtZT0idGItcmVsYXRpdmUtcm9vdCIgY29udGVudD0iLi8iPjwhZG9jdHlwZSBodG1sPjwhLS0KQGxpY2Vuc2UKQ29weXJpZ2h0IDIwMTkgVGhlIFRlbnNvckZsb3cgQXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KCkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwp5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQpkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLApXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZApsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLS0+PGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD0idXRmLTgiPgo8dGl0bGU+VGVuc29yQm9hcmQ8L3RpdGxlPgo8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBTVFBQUFERUNBWUFBQURBcG81ckFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFBQUFBbHdTRmx6QUFCYWJnQUFXbTRCeFdzak9BQUFBQmwwUlZoMFUyOW1kSGRoY21VQWQzZDNMbWx1YTNOallYQmxMbTl5WjV2dVBCb0FBQmwwU1VSQlZIaWM3WjE1ZUZUVjNjYy92NXNGQ1ZSeHFWdHB0VlcyVmx4ZjYxcXRpcTBMOUdsOU5YVUJGRXBGUlRJaGhCQURDVGRBTUFFa0NZc0s3cUI5K2tENzJxZkJXaXZxVzdWYTY3NGlyZTlyYXhYMWJaVldaVEhML040LzVnNEdTR0R1ekwxejc1MDVuMzg0ek13NTU4dk0vWEsyM3prSERJR2ppemhQRjNGZTBEb01JRUVMeUdkMFBvT3dhQUF1Y1Y1YWgwVzVWUEI2a0xyeUdXT0lBRkNiL3ZTakVxZ0crdXp3S3dnZHdDMTBVQ2ZWL0RzWWhmbUxNVVFXVVJ1TEVrWUQ4eEVPMnY3R2pvWndQc3hIV014aElFdWxsSzVzNnN4bmpDR3loQzdnSkpSVzRDU2daeFAwbkg0Smk1aVU4N2pmR2czR0VMNmpUUXdFNWdHamtXN2ZkK3FHU0xLV0lzcGtNbS83SU5QZ1lBemhFMnBUUWgrcXNLZ0MrZ0x1VGJCcmVpdXdtSFlhWkRxZmVpcllBQmhEZUk0cVFpTVhBd3NRRHZQQUJEMmxOeUxVczRuYnhTYWV1V3BERW1NSUQ5RWJPUUZvUlRodCs0ditHQ0w1NTdOQXVjUjRLaTNCaGwwd2h2QUFiZUFRTEd4Z0FtRDVhb0x1NmNTZml2QUxsRXFKOFk1TDZZYWRNSWJJQUxVcHBvaHJFV1lqN0wzOWpld2FJcG5lakxLUXZXbVVjV3hMNlI5ZzJBVmppRFRSdVl6Q29nWDRCcEE5RTNSUDkveiszNEdaVXNiS1hxUWJkb014aEV1MGdhTVJtbEhPOXZBQi82T1RPdGtEUXlUU3lpTW81UkxqdFo3K0hZYWVzWUlXRUJYVVpqK2RTeXZ3UE1yWkhoVzdFV0VpbjNFYVV6a1ZvUlQ0bXljbEMrZGc4Ykl1WmFYZXdvR2VsSmtIbUJaaUQ2aE5JVVdNUjJrQUR2Q29WZGlLc0pqNHJ1c0p1cHdTUHFNS3FFS2M5WXZleWttOXprMUFFd2ZTTEtXMFkrZ1ZZNGpkb1BXY2cwVUx3bEhiWDh6Y0VHc1J5bVRhN2xlY3RZbUJGRGtyM095d3hwMk9JWkxwRFFoVDVUb2UyRjNkK1l3eFJBL29IQVpCdDdCc2IxcUZGeW1nWENyZHhTVHBJczRFV2hDTzNhWE05TFdzbzRDWVhNTWJiclRrQThZUTNWQ2IvZ2lWeUU1aDJaa1o0aU9FT1J5ZWZ0U3EybGdNWURUS2ZPQWdqM1Ixb054Q0lYVXkwWVNaSnpHR3dIbmdMT2VCNnlrc083MEhML0hBaVhmN0duUVovV252d2JEcGF3U2NNUFA5VEpnNUdFT2dzMU1JeTNiL3NLMGpUa3hxL09tU2FDdURVQnFRN1R2dHZPald2WWhRTHRma2Q1aDUzaHBDYlJkaDJhay9WQnRRS3FTRzMzZ3F0aGUwbFhPQUZ1QW9EOWRFMWxKQW1mdzBQOFBNODg0UWFsTUN6clJtcW1IWmUzNlFOaUUwOFRuTlltZDNXbE50Q3RtWDhZZ3pMZHk3UmpmcFJKaDVFUTN5ay93S004OGJReWdJZFZ5TXhRTFVaVmgyNys5M290eUpNRk5xK0lmWG10MmdpOWlQUW1ZQjF5RVVibjhqTTNPOGgxTERSRmFKb0o0S0RpbDVZUWl0NVFRa2c3RHNubDk3Rkl0eXFlWlZUOFZtaUM1aEtFb3o0aHhyNDAxWDZsbVVtRnpEMHg1S0RTVTViUWl0NFJDS3NORU13N0ozZk8wdGxCcVp5UnFQNVhxS0xtWVVRZ3ZpQkI5Q3B1WlE0RjQ2cUpKSmZPQ3AyQkNSazRaUW0ySTZQUXpMVHZ5WkNLL2VoeHVsak04OWx1d0xhbFBNL3M3M0FIdDcxRnBzUmxoSVlXNkdtZWVjSVhTRzUySFpjWVQ3RUtiSkRENzBWbTEyME9VY1FnYzI0clNVNE1YMzhoWkNqVXdJZDB2cGxwd3hoTjdBVUFwb0JzN3pjQXJ5R1pTWTFQR01oMUlEUTI5MnRyZ3FwM24ySFZrOFNwd3A4bE5lOFZCcVlFVGVFR3F6SHgzTVFyZ09uTm1Wekgvc2Q0RVoxT2JlN0lvcXdpM09JUWh3R09ERjk5V0pPTE50NDRPZGJjdVV5QnBDYlFycFlEeDRHcGE5QlZqQWwyaVNDclo2S0RkMDZISks2S1FLU1NITVBOVzB4U2JpTkxGM2RNUE1JMmtJclhGV2FMMEx5MWJnRnhRd1RXWjZ0RUVuSXVqaUZNTE0zYVlUWWVZVk1pNDdLL1plRWlsRDZFd0dFZmM4TFBzNUxNcWxqajk0cHpSNjZNMmM2VXhHN0JwbTdqYjl4V3ZyS0tSTXhyTGVPNlgrRWdsRHFPMUVlU3JWQ0gyMnY1R1pJVFlDOVdBTyswcWlOaFlITzRjeGR3OHpoMHpXYlJKUnZ4M1JDRE1QdFNIVXhtSXJvN0djSHdpOGFCWGFnVnNwWWFZNURySm5kQm45c2FqRWNzTE1JUk5ESkVtRW1mY05kNWg1YUEyaE4zUUx5L1p1R25VdFFreHMvdGREcVRtTDNzb2d4T21pWm02SVpQb0ZsSElaeHhOZWF2V0swQmxDcXhpSTFXMlFCMTYwQ2kraGxNc2NmdStwMkR4QlZ6RENpWTlLVEdKa1pvaGtlaTF4SnNzNC91cWwxa3dKalNIVXBvUXR6alFnOVBXb1ZVaHMzMXpQVWxrVDNtWTZDcWhOSVY5eFRoOFJKOHdjTWpFRUpLYTVsOUNYdVZMS1o5NHFUby9BRGFFZ1RPTml4RmtvY3YrbDlwUk9YRXZWVHAwMGhYOGdGeVgwZHZaRG1RVk1BZ295TkVReS9SNUNEYU9EWHdnTjFCQTZsUk93ZWduTFR0OFE2eERLWlk2NXVOQlA5RGFHQVl1UWJyZW5adjdiL1FtTG1JemVmcEpoMWduRUVGcnVoR1h2N3JSczkxL3FCdUpNbFhubXpLRnNvcmN6Q3B4Z1NtOWFkMFdjTVBOeDJROHp6Nm9obk83Uk5KUmFoUDQ5cW5EL3BYNE0xRlBFeldMVDZhMWlReXJvWGV4Rm5BcmdCcUMvUitPL1Q3Q1lReEdMc3hrR2t2VVdRaXM0emprTjc0d2VWYVJ1aUVSWWRoR1ZZdk4vZm1nMXVFT1hjd2lGUG9XWlg1R2RNUFBBeGhCYXlTaUVWdURycmcyaFBJb3dSZWJsUnNoeHJxRjNjd0pkenRqUXV6V2tSMUhLWmJTL1czYURIVlRiRkxPWmF4SG1BRi9hUVZIUFg4eGJXTlJJUTI1dFNzbEZWQkh1OWlITUhPNmtpSmxTNmsrWWVlRFRyZ0JheGFIQUxHQUMwbU5UbTlpMldFeWoyTG0zYlRHWDBlV1VVSnppYWVhcHB6ZWgxSE1veStRc2I4ZU5vVEJFRXEzaVA1eHUxS21Pc3NURzlpNnFaRUh1Ym16UEIvUTJCbExNUE5URE1ITjRFNHNLdVpRSHZkSVpLa09BTXhNMW5URUlGMk5oeXp4ZUNGcVR3VHYwTHI3cmhKa2ZzLzNGek0xeFAzRXE1WXJNWTlSQ1p3aEQ3cU0yRm9jN1llYVNRWmo1anVrT0xHNmhnMW9aelNmcGFqT0dNQVNHcnFZL1c3dWRaZzZadHhiQyt5ZzJGbmVrRTJadURHRUlITDJQUVhTbEVXYSt1elE4ajBXNWxQS2tHeTNHRUliUW9QZHdQc0lpaEtGQXBvYUF4S1gyRStUSDNKbXFCdGUza0dvNUU3U2NIN3JOWnpEc0NibVNCOW5LMGNCRTRKOWVGQWtjNmlhRCsydDVsU05SN3RjWTYvUjZ4OGtHZzBmSVJEcGtEQ3Zvd3hCZ01XUjNIMHM2aGloeVV1ZFF3Q3NhbzFXdjZ4YW9aekI0Z0pUeXNZd21ScHpod0crelZhOTdRMWpiRFFGUUJKUlJ4SHFOTWRZelZRYURnNHhsdll6bWZJUWZnUDk3NFROcElib3pFTGhIeTNqWWRLTU1maUNYMDBZUnc0QnlTSCtkWVUrNE53UTlHaUtCTUlJQ1h0WXBOS3JOWHVuTE1oaDJSVXBwbHl0b1JSZ0cvcHlsNWEwaEVoU2pUT2Rmdks0eFJxWWp5bURZSFhJWkc4R2Z2ZGQrR0NMSk54RGFkQXB0V3NuWDA2akhZTWc2WG8waGRzZEl1bmhkSzdCTk44b1FkaktkWlVxVnZpaXorSVRYdEpJTDA4aHZNR1NGYkxRUTNUbUNPR3UxZ2pZdDUvQU15akVZZk1IUE1jVHVHRWtCYjJpbDZVWVp3a1ZRaG9Ca04rcFRYdFZwWE9CUm1RWkRSZ1JwaUNSSG9qeWdVMm5UYXRPTk1nUkx0c2NRdlNPTXBKUFh0UXBiSjNlN0ZNVmd5Q0x1RFNFK0dTSkJDY29zK3ZDYVR1dDJacWpCa0NYQzBHWGFGZUZJNEVHdG9rMm5PbWY2R0F4WklKeUcrSUxFYkpUcFJobXlSTmdOQVZBQ3pLS0VWM1U2Mzg5eTNZWThJd3FHU0RJSStLMVcwNmJUK1ZwQUdndzVUcFFNa1VBWmliQmVxN0hWcGpoUUxZYWNJM3FHU0pEb1JtM2pWYTNtZTBHTE1lUU9VVFZFa3NFSUQra050T2tNdmhxMEdFUDBpYm9oa293a3pucXRNZDBvUTJia2lpRUErZ0d6YU9jVnJlSGNvTVVZb29rclEyamk0S2RDbjdSNHhSRGdkenJEZEtNTTduSFhRbHdkZWpOMFp5U3dYbWVhYmxSZUUzZDNHSUhiTGxOWXUwdTkwUTlsRmwyOHJETVpFYlFZUTFiWmpGTFBOaGE1eWVUT0VQdEd6aEFKbEtIQTczUW1LN1dHZzRLV1kvQVZCVmJSd1NDNURGdkd1YnVDelowaE9pTnFpQVFDaktHQURUcVRtTnFSNnY0WlVrSDVFeGFueWFXTWxURzhuMDRSN2d6UkZXbERKTmtIb1lVdW50TmFUZ3Rhak1FVDNrVzRra3M1V1VwNU9wT0MzQm5DcjgxQndYQU13aE5hWjdwUmtVWFpBdFJUd0dDNWxKVWltUjllNXM0UThad3lCQ1M3VVlXOHFYWEU5QklLZ2haa1NCRmhGVVVNbHN1d3BaU3QzaFhyQXIyZW9SU3czbFdwMFVxL2hEQkpiSjdDa0plNGF5R0tjcTZGMkpsamdTZlZacVhhSEJpMEdFUDJ5ZWN4Uk0rbzA0MkNEVnBQVEZlYmJsUStZUXpST3dOUVdsalBzenFiVTRJV1k4Z091YjVTN1FYSG9meEI2MW1wOC9oeTBHSU0vbUphaU5SSWRLTTYyYUJ6VERjcWwzRm5DTW43SUxsOVVWcll3SjkwTGljSExjYmdQYWJMbEE3SzhTaFA2UnpUamNvMVRKY3BmUkxkcUM3VGpjb2xUQXVST2ZzaXRQQVhudEhabkJTMEdFTm11RE5FZXJjSDVRZktDVmc4cFhOWnFUWUhCQzNIa0I2bWhmQVdDMkVNUld6UUJtSnFwN1ZuUFZSb013T0MxcEFKdXBxRDNYemU3USsyNXowRXJxS2pjcGI5Z0JhS2VWSWJPU1pvTWVtZ1N6aFVsN0tjWXVZRXJTVWRkQlZEOUdjOFFBZFQzZVJ6TzZoMk4rMXF6SEVLU2xuUUl0eWdOc1c2aEJnV2J5SmNUWG9uc3dTRzNzZStlaCtOV0x3QzdtK21jcmRyVENsSyt5SGZNZDltNERHZ2pTNmVvSWpIMEJ6ZGt4Q25QV2dKcWFMTEdJWFNDdEc3VjF4dExJNWdOTEFBMGcvTWRMdU5NcE14eE5zb0R3TnIyWWVIeFA3aVFkRktLb0Q3TWlnN3ZBZ2RRVXZZRTdxTVk0blRnbkptMEZyU1FlL2pMT0swSUJ5ZGFWbnVER0ZSNUdKUFVoZUovUVZyRWRya0pwN3Y3WU95a0o5cEpaZEREdDVoTGVGdElYUXArd04xeEprRTBWdEgwWlY4RFl1NUtHTzg2cDY3N3pMdG5zMkkweFVxNU5leWdBOWNLTG1lTHI1TDRnUyszRUhEMTBMb2NvcG81enJpMUNQc0U3UWV0K2hLK2lGTUE2YWo3T1hsV05XTEx0UGJDQThqdTNhRjNDQ04vRldyYUVDWmwzZ2huVkpDU01nTW9Zc1p3ZWUwQU44S1dvdGJWQkh1WlF4S0U3aWJUazJWZEF6eFJWY29UcHNzN3IwcjVKb1NGckNaVWhJNzEzSURLeHlHMEtVTXBvdEZLQmRHOFQ4YnZZc1RXVVVyK0xzM3haMGh1cmliSXVaTE14LzdJVVpzT3JXUzZ4Q2VwUHQwWDIvN29LTkJvR01JYldZQVFqVmRUSUhvUlN2clBYd0Z1QkVZVFJaK2ZWZUdrS1c4NlplUTdYVXM1R21keG5MZ1dyL3J5Z29CZFpuVXhtSkE1dE9RUWFHcjZjdFd5b0Fad0pleVZXODRGMTIyVVkzdzNoNC9GNFhXSW9CWkpyMkpzOWlIRjRCN2lLSVo3bUlVVzNnRHBaRXNtZ0ZDYWdoWndpZEFoYnRNL21qSm1DeTJFSG9UWDlWbVZtTHhLRVF2WkVUdjVIaTlpOGNSZmcwY0hvU0cwSjV2S2syczFtbU1SaGpsUHJNUGd0SWxDNGJRQmZURFlockNkR0F2dit2ekdyMkgvZW1pRGdsK1BTUzBoZ0RBNG5xVXM0RCthWmNSdkRsODZ6S3BJaXppWW9TRkVMMnJpblU1UlJSekhWM2hXUThKWlpjcGlUVHhEa0s5ZHdWNlZsTHErRFR0cWdzNWtVVThDYXdtaW1hNGt4RVU4UkpLQzRURERKQmxRNmhOb2JwOUxQdlNBcnpvdVpqc21HTVR5cXRlRnFoTkhLb0xXWTd3UitCVUw4dk9Cbm9IUS9SMkhuRGkycjRadEo2ZDhkMFFPcGsrT29VUldrRXJuL0F1VTdqS1RYNng2VVM1bXNTQ29ELzRZUTdsQXl6T2tocmU4S3pJaFZ4RUFYK0c2SVZsQStqdGpBZGVROXlIWldjTFg3NVVuVUpmbmNJb25jSktDdmtRZUJnb0F3NUNhTllxQnJvcFQrYnpISEN6SDFwM3JjeVRVdDZtZ085SU5TOTdVdG9YSEVPMFk3MkdFZkp4cTJmaXRKd0JLT2NpakVMNUVkQy9sNGRySDdxNEJWek9IaWt6RUg0RTdzeVVFZW1aNHpVSytiNU1aNlBIYWd4WklLTVdRaWV4djhZWXF6SGFVRDRrTWNBYnc1NW5oVVpxQlQ5MlU1Zk01MU1rOUx2UEhxZUEwNDBab290clEraGtCbW9aVjJ1TU5ncDVuOFJxNkVqY3hza0lTN1hTM1NxcU5ISS95cTljMWVNVmUyNHQxbExDZVZMTnY3T2d4dUFUN2k1dUwrY2lMTjVCV0U3Q0JKbnNvRHVBT00ydWN5bVRJT0NIYm1kektQZnlaUzZTQ3U5dXNqRUVnOXNydGZyaDVaeU1jTGxPNVlldXNzeG5JOG9zenpSa2lzVVN1cmhTSm9ZanpOdVFHY0ZQM1FrM2F6WDd1c3JUbHlYQUgvMFJsRElLMU1zTXlzUW1IckFXZzBjRWJ3ZzRoRTZhM0dRUW16Z1dFeUd3LzVXN1VLNlJXdXlBNmpmNFJCZ01BVEJCcC9FOU54bGtIcThBUzN6U3N6dmFFUzZUT2xZRVVMZkJaOEppQ0NIT2NyVmRCdkgxb1JaNDJ4OUpQYklaWVpUTVpFMFc2elJra2JBWUFvVEQyY3hjVjFsc3RqZ2h3OW5nWXl4R1NDMi95MUo5aGdBSWp5RVNUTmJwbk80bWc4empRZUFYUHVsSjhnN0NxVEl6OElHOHdXZkNaZ2lMT0xlcjdYS1RTeWVUZ1gvNUk0bjFGSEM2MUxMQnAvSU5JU0pzaGdBWXdtWnEzV1J3RGtTYjZZT1c1eWppVEpuSjM5TXRRQnM0eWt0QkJuOEpveUVBcXJTYUUxemxLT1lXNENrUE5UekdYcHd0TmZ3ajNRTDBScVlqVkhxb3llQXpZVFZFSVhIdTBLdFREdzBSbXpnRlhJTTNheE8vQWk2UTZYeWFiZ0hhd0d6bjFBaERoQWlySVFDT1lRQlZiakxJSEY1RjBvaVAycEc3Z1V2RVpsczZtVlVSYmFBRmNkZnRNNFNETUJzQ29GYW51enlEZEFzMjhEOXAxU1kwaWMwNHNlbE1KN3V1cG9CNTNBN0UwcXJmRURoaE4wUWY0QTY5SlBXalNhU1pyVTVFYk9vSWlsSXBOdFZ1QlNiUjFSVHdaKzRDeHFkYmhpRjR3bTRJVUU3aTYweDJrMFhtOFJEQ3oxUDhlQmN3UVdaemszdHhDZFNtbUQrekJtRk11bVVZd2tINERRRWdOR2cxUjdyS0U2Y2MyTFNIVDMxT1lyeHdaN3JTMUthRVF0cUFINlZiaGlFOFJNTVFVSUp5bTVzamJHUWVIOEp1dTBEL3dtS0V6T2IrZEVYcEF2bzVabkFWbUdnSUwxRXhCTUIzcWVhbnJuSTBjQnZ3WkEvdkpJNklzWHQ4THlYVVpnRGJXQWVjblc0Wmh2QVJKVU9Bc2tCbjhOVlVQeTZKVFR3VFNIU05raVNPaUxGNUtXMFpOZ2RTd0g4REo2ZGJoaUdjUk1zUXNEZGQzT29tZzh4bEE3RFErZXZyeFBtTzJMeVZyZ0MxT1pnQ0hpR0NwMnNiOWt6VURBRndnVlp6aGFzY2hjeEZ1WnNDVHBlR0ZPNmQ2QVdkeTJGWVBBRW1QaWxYQ2ZVcGFydWhWV3RZNXd5Yzk0aXo2and1a3dyVlpqQngxa0hxWFRaRDlJaGlDd0d3UDhyaWJGV21jeGlHeFdNWU0rUThVVFVFS0tWNkF4ZjVYbzNOOGNSNUhEalU3N29Nd1JOZFF5UllwamI3K1ZXNHp1WkVoSWVCQS95cXd4QXVvbTZJZzltV2ZzakY3dERabklueUNQaG5PRVA0aUxvaFFMaEtxem5QeXlLMW52T0o4eUJadmdIVEVEelJOd1NBc0Z5cnZIbDQxZVlIS1BjRGZiMG96eEF0Y3NNUThEVUt1VEhUUXJTT3k0QmZrZ2c3TitRaHVXSUlnR3QxQm1la20xbHRya2E0bCtpdXpSZzhJSmNNWWFIY3BsUGNkM1cwamtuQXJlVFc5MkZJZzF4N0FBWlQ0dTRBWXExak9zSlNOQVEzV2hzQ0o5Y01BY3BVcmVYRWxENDZpM293SjJQa01HK2cvTkpOQm5lRzZPSnhKUFJubXhZUTV3NjFlNy9pUzBGMEZxMG9kZGtVWnNnYW00QnFDamxPUnJzN2Z0VFZBRktXOFRmZyt6cUZFY1JwQVpjblltU1A0YlJ6QTFDLzh4dHFZOUhKQ3BTZkJLREw0Qzl4NEQ2S21DcWw2UjB3bDFhWFNacFp4MWFPUXlrbjZQdmVla09vMFZxR2QzOUpMNkdBVHU1RWpCbHlEdUZSTEk2VEt4aWJyaGtnZ3pHRXJLQkRGdE5LSjBjQWkwbWNYaEVtaW9semo5cUpWbEJ0aWhuS2FvUXJneFptOEpTM0VFcmxDczZSeTNrbDA4SXlIbFRMTWo2U1ZtSUl3NEdITWkzUFk0NmpnM0tkVEI4NldRUCtSOGNhc3NabW9KNU9oc3NWM2wxZzQ5a2lsTFN3SGpoUFkxeUNNQjg0M0t1eU0wS1l6VDVjQkp3U3RCU0RKeWh3TDUxVXlUZys4THB3ejZkZHBaVTFER0FJUWpud2lkZmxwMEZmakJseWhXZFJUcE94alBYRERPRFRPb1RZdEVzenJSUXhERmdCNXRwYVEwYThoM0lsWXpoSnJ1UnBQeXZ5ZFdGTzVyTlJtcGtJbkFUOHdjKzZERG5KVnFDSnZneVZxMWdwZ3ZwZFlWWUMyYVNaNXhTK1F3VVhBd3VBdzdKUnJ5SFNyRVdaTEZmeDEyeFdtclhRRFFHVlJhemhNNzZKVUUvQy9RYkR6cnlBY29aY3hTZ1psMTB6UUFDeFRMS0NMYklRbXdJR0E2dkEvMmJRRUFrK0FzcnB4N2RsSEU4RUpTS3c0RDZaejd0eUUyT0JVeEJ6M1cwZTB3RXNwcDBqWkJ5dFVocnNBbS9nMGE2eWtHZm94Mm5PQ25KS0I0OFpjb1oxd0xFeW5waE1ERWNJVU9DR2dNU0ZpYktBbFNoSE9PT0x6L2VZeVJCbE5tQnhvWXpuWEJuUEcwR0w2VTRvREpGRUZySlo1bU5Ud0ZHSWQ4dnhodER3TWNway9zNVJNbzdmQkMybUowSzVmMWdhZVFzbzFXck9kc0xNaCs4cGp5SDh5SVRNRDRMd20xQzFFRHNqalR4S0NjY2pUSVQwUTNvTmhsUUp0U0VBeEtaVEdsbUJNQVNsQ1dnUFdwTWhkd205SVpKSUk1dGtQdFhFT1JyQzJmODBSSi9JR0NLSnpHZUROSEloY0M2RWE0YkNFSDBpWjRnazBzZzZQdUpZSjh3OEZIUFlodWdUV1VPQXM0MTFIcTNBRWM0RkttSGJ4bXFJR0pFMlJCSzVrWS9rUm1MRU9SRjRQR2c5aHVpU0U0WklJbzI4S1BNNEUvZ0I4SGJRZWd6Ukk2Y01rVVFhYUdNTDMwS3BCajROV284aE91U2tJUUNrbWEweWp5WUtHWXFhYmF5RzFNaFpReVFSbTQzU3dFU1VreENlQ2xwUHhQZ3Y0dHN2dmM4TGN0NFFTYVNCNTVqTjZRaWx3RHRCNndrNWJ3TG55eVQrVXlibjExZ3Nid3dCempiVzJheWhnR0Vrem4zZEZyU21rUEV4U2puL1pMaE00cmRCaXdtQ3ZESkVFckhaSXJPeHNSZ0VyQ0lMcHptRW5FNWdCVVVNa2NtMGlrMW4wSUtDSWk4TmtVUnMzcFhaaktXTHM0Q1hndFlUQ01vanhEbE9Kak5SSnZMUG9PVUVUVjRiSW9uTTRmY0lKK1RaTnRhL0lKUktHU01reG10Qml3a0x4aEFPWWhNWG01WEFrWkRUMjFnL1E2a0hoc3Rrc3l0eFo0d2hka0pzUGhNYm13S0dRMDQ5TUhGZ0ZjcVJFc09Xc3B3MWZFYUVjZ3RwR0pCYS9nS1VhajNuQU0xRWV4dnJNeWd4S2VlWm9JV0VIZE5DN0FHWnhTTW94ME1rdDdHK0MxeEpqRk9NR1ZMREdDSUZ4S1pUNmxoQm5LRWtia3NLKzdUa0ZxQ2VPSU9sUER1SEJPY0t4aEF1RUp1UHBZNFlCUXhIZVRCb1BUMmd3QnE2K0taTXdaWUtjMzZ1Vzh3WUlnMmtoamVCQzNRT0kwaTBHTU1DbGdUQzgwQk1wcGhyQnpMQnRCQVpJTFdzNDhzY0UvQnRyTzhqVE9UZmZOdVlJWE9NSVRKRUp0SWh0YlJpY1FTUzFXMnM3Y0JpaWhncVUxZ2h0Z2x2OXdKakNJK1FHajZTR21MQXQ4SDM0OXpYWWpGTXBoS1RzbERjNDVjem1ER0V4OGdNWGdETzBMbU13cUxWNCtMZlJEaGJwdktZeCtVYURQNmpOaVhheUJsQjZ6Q2t6djhEUWQ3UXJNYkxSMUFBQUFBQVNVVk9SSzVDWUlJPSI+CjxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgaHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFNUUFBQURFQ0FZQUFBREFwbzVyQUFBQUJITkNTVlFJQ0FnSWZBaGtpQUFBQUFsd1NGbHpBQUJhYmdBQVdtNEJ4V3NqT0FBQUFCbDBSVmgwVTI5bWRIZGhjbVVBZDNkM0xtbHVhM05qWVhCbExtOXlaNXZ1UEJvQUFCbDBTVVJCVkhpYzdaMTVlRlRWM2NjL3Y1c0ZDVlJ4cVZ0cHRWVzJWbHhmNjFxdGlxMEw5R2w5TlhVQkZFcEZSVEloaEJBRENUZEFNQUVrQ1lzSzdxQjkra0Q3MnFmQldpdnFXN1ZhNjc0aXJlOXJheFgxYlpWV1pUSEwvTjQvNWc0R1NHRHV6TDF6NzUwNW4zODR6TXc1NTh2TS9YSzIzemtIRElHaml6aFBGM0ZlMERvTUlFRUx5R2QwUG9Pd2FBQXVjVjVhaDBXNVZQQjZrTHJ5R1dPSUFGQ2IvdlNqRXFnRyt1endLd2dkd0MxMFVDZlYvRHNZaGZtTE1VUVdVUnVMRWtZRDh4RU8ydjdHam9ad1BzeEhXTXhoSUV1bGxLNXM2c3huakNHeWhDN2dKSlJXNENTZ1p4UDBuSDRKaTVpVTg3amZHZzNHRUw2alRRd0U1Z0dqa1c3ZmQrcUdTTEtXSXNwa01tLzdJTlBnWUF6aEUycFRRaCtxc0tnQytnTHVUYkJyZWl1d21IWWFaRHFmZWlyWUFCaERlSTRxUWlNWEF3c1FEdlBBQkQybE55TFVzNG5ieFNhZXVXcERFbU1JRDlFYk9RRm9SVGh0KzR2K0dDTDU1N05BdWNSNEtpM0JobDB3aHZBQWJlQVFMR3hnQW1ENWFvTHU2Y1NmaXZBTGxFcUo4WTVMNllhZE1JYklBTFVwcG9ockVXWWo3TDM5amV3YUlwbmVqTEtRdldtVWNXeEw2UjlnMkFWamlEVFJ1WXpDb2dYNEJwQTlFM1JQOS96KzM0R1pVc2JLWHFRYmRvTXhoRXUwZ2FNUm1sSE85dkFCLzZPVE90a0RReVRTeWlNbzVSTGp0WjcrSFlhZXNZSVdFQlhVWmorZFN5dndQTXJaSGhXN0VXRWluM0VhVXprVm9SVDRteWNsQytkZzhiSXVaYVhld29HZWxKa0htQlppRDZoTklVV01SMmtBRHZDb1ZkaUtzSmo0cnVzSnVwd1NQcU1LcUVLYzlZdmV5a205emsxQUV3ZlNMS1cwWStnVlk0amRvUFdjZzBVTHdsSGJYOHpjRUdzUnltVGE3bGVjdFltQkZEa3IzT3l3eHAyT0laTHBEUWhUNVRvZTJGM2QrWXd4UkEvb0hBWkJ0N0JzYjFxRkZ5bWdYQ3JkeFNUcElzNEVXaENPM2FYTTlMV3NvNENZWE1NYmJyVGtBOFlRM1ZDYi9naVZ5RTVoMlprWjRpT0VPUnllZnRTcTJsZ01ZRFRLZk9BZ2ozUjFvTnhDSVhVeTBZU1pKekdHd0huZ0xPZUI2eWtzTzcwSEwvSEFpWGY3R25RWi9XbnZ3YkRwYXdTY01QUDlUSmc1R0VPZ3MxTUl5M2Ivc0swalRreHEvT21TYUN1RFVCcVE3VHZ0dk9qV3ZZaFFMdGZrZDVoNTNocENiUmRoMmFrL1ZCdFFLcVNHMzNncXRoZTBsWE9BRnVBb0Q5ZEUxbEpBbWZ3MFA4UE04ODRRYWxNQ3pyUm1xbUhaZTM2UU5pRTA4VG5OWW1kM1dsTnRDdG1YOFlnekxkeTdSamZwUkpoNUVRM3lrL3dLTTg4YlF5Z0lkVnlNeFFMVVpWaDI3Kzkzb3R5Sk1GTnErSWZYbXQyZ2k5aVBRbVlCMXlFVWJuOGpNM084aDFMRFJGYUpvSjRLRGlsNVlRaXQ1UVFrZzdEc25sOTdGSXR5cWVaVlQ4Vm1pQzVoS0VvejRoeHI0MDFYNmxtVW1GekQweDVLRFNVNWJRaXQ0UkNLc05FTXc3SjNmTzB0bEJxWnlScVA1WHFLTG1ZVVFndmlCQjlDcHVaUTRGNDZxSkpKZk9DcDJCQ1JrNFpRbTJJNlBRekxUdnlaQ0svZWh4dWxqTTg5bHV3TGFsUE0vczczQUh0NzFGcHNSbGhJWVc2R21lZWNJWFNHNTJIWmNZVDdFS2JKREQ3MFZtMTIwT1VjUWdjMjRyU1U0TVgzOGhaQ2pVd0lkMHZwbHB3eGhON0FVQXBvQnM3emNBcnlHWlNZMVBHTWgxSURRMjkydHJncXAzbjJIVms4U3B3cDhsTmU4VkJxWUVUZUVHcXpIeDNNUXJnT25ObVZ6SC9zZDRFWjFPYmU3SW9xd2kzT0lRaHdHT0RGOTlXSk9MTnQ0NE9kYmN1VXlCcENiUXJwWUR4NEdwYTlCVmpBbDJpU0NyWjZLRGQwNkhKSzZLUUtTU0hNUE5XMHhTYmlOTEYzZE1QTUkya0lyWEZXYUwwTHkxYmdGeFF3VFdaNnRFRW5JdWppRk1MTTNhWVRZZVlWTWk0N0svWmVFaWxENkV3R0VmYzhMUHM1TE1xbGpqOTRwelI2Nk0yYzZVeEc3QnBtN2piOXhXdnJLS1JNeHJMZU82WCtFZ2xEcU8xRWVTclZDSDIydjVHWklUWUM5V0FPKzBxaU5oWUhPNGN4ZHc4emgweldiUkpSdngzUkNETVB0U0hVeG1Jcm83R2NId2k4YUJYYWdWc3BZYVk1RHJKbmRCbjlzYWpFY3NMTUlSTkRKRW1FbWZjTmQ1aDVhQTJoTjNRTHkvWnVHblV0UWt4cy90ZERxVG1MM3NvZ3hPbWlabTZJWlBvRmxISVp4eE5lYXZXSzBCbENxeGlJMVcyUUIxNjBDaStobE1zY2Z1K3AyRHhCVnpEQ2lZOUtUR0prWm9oa2VpMXhKc3M0L3VxbDFrd0pqU0hVcG9RdHpqUWc5UFdvVlVoczMxelBVbGtUM21ZNkNxaE5JVjl4VGg4Uko4d2NNakVFSkthNWw5Q1h1VkxLWjk0cVRvL0FEYUVnVE9OaXhGa29jditsOXBST1hFdlZUcDAwaFg4Z0Z5WDBkdlpEbVFWTUFnb3lORVF5L1I1Q0RhT0RYd2dOMUJBNmxST3dlZ25MVHQ4UTZ4REtaWTY1dU5CUDlEYUdBWXVRYnJlblp2N2IvUW1MbUl6ZWZwSmgxZ25FRUZydWhHWHY3clJzOTEvcUJ1Sk1sWG5tektGc29yY3pDcHhnU205YWQwV2NNUE54MlE4eno2b2huTzdSTkpSYWhQNDlxbkQvcFg0TTFGUEV6V0xUNmExaVF5cm9YZXhGbkFyZ0JxQy9SK08vVDdDWVF4R0xzeGtHa3ZVV1FpczR6amtONzR3ZVZhUnVpRVJZZGhHVll2Ti9mbWcxdUVPWGN3aUZQb1daWDVHZE1QUEF4aEJheVNpRVZ1RHJyZzJoUElvd1JlYmxSc2h4cnFGM2N3SmR6dGpRdXpXa1IxSEtaYlMvVzNhREhWVGJGTE9aYXhIbUFGL2FRVkhQWDh4YldOUklRMjV0U3NsRlZCSHU5aUhNSE82a2lKbFM2aytZZWVEVHJnQmF4YUhBTEdBQzBtTlRtOWkyV0V5ajJMbTNiVEdYMGVXVVVKemlhZWFwcHplaDFITW95K1FzYjhlTm9UQkVFcTNpUDV4dTFLbU9zc1RHOWk2cVpFSHVibXpQQi9RMkJsTE1QTlRETUhONEU0c0t1WlFIdmRJWktrT0FNeE0xblRFSUYyTmh5enhlQ0ZxVHdUdjBMcjdyaEprZnMvM0Z6TTF4UDNFcTVZck1ZOVJDWndoRDdxTTJGb2M3WWVhU1FaajVqdWtPTEc2aGcxb1p6U2ZwYWpPR01BU0dycVkvVzd1ZFpnNlp0eGJDK3lnMkZuZWtFMlp1REdFSUhMMlBRWFNsRVdhK3V6UThqMFc1bFBLa0d5M0dFSWJRb1Bkd1BzSWloS0ZBcG9hQXhLWDJFK1RIM0ptcUJ0ZTNrR281RTdTY0g3ck5aekRzQ2JtU0I5bkswY0JFNEo5ZUZBa2M2aWFEKzJ0NWxTTlI3dGNZNi9SNng4a0dnMGZJUkRwa0RDdm93eEJnTVdSM0gwczZoaWh5VXVkUXdDc2FvMVd2Nnhhb1p6QjRnSlR5c1l3bVJwemh3Ryt6VmE5N1ExamJEUUZRQkpSUnhIcU5NZFl6VlFhRGc0eGx2WXptZklRZmdQOTc0VE5wSWJvekVMaEh5M2pZZEtNTWZpQ1gwMFlSdzRCeVNIK2RZVSs0TndROUdpS0JNSUlDWHRZcE5Lck5YdW5MTWhoMlJVcHBseXRvUlJnRy9weWw1YTBoRWhTalRPZGZ2SzR4UnFZanltRFlIWElaRzhHZnZkZCtHQ0xKTnhEYWRBcHRXc25YMDZqSFlNZzZYbzBoZHNkSXVuaGRLN0JOTjhvUWRqS2RaVXFWdmlpeitJVFh0SklMMDhodk1HU0ZiTFFRM1RtQ09HdTFnall0NS9BTXlqRVlmTUhQTWNUdUdFa0JiMmlsNlVZWndrVlFob0JrTitwVFh0VnBYT0JSbVFaRFJnUnBpQ1JIb2p5Z1UyblRhdE9OTWdSTHRzY1F2U09NcEpQWHRRcGJKM2U3Rk1WZ3lDTHVEU0UrR1NKQkNjb3MrdkNhVHV0MlpxakJrQ1hDMEdYYUZlRkk0RUd0b2sybk9tZjZHQXhaSUp5RytJTEViSlRwUmhteVJOZ05BVkFDektLRVYzVTYzODl5M1lZOEl3cUdTRElJK0sxVzA2YlQrVnBBR2d3NVRwUU1rVUFaaWJCZXE3SFZwamhRTFlhY0kzcUdTSkRvUm0zalZhM21lMEdMTWVRT1VUVkVrc0VJRCtrTnRPa012aHEwR0VQMGlib2hrb3drem5xdE1kMG9RMmJraWlFQStnR3phT2NWcmVIY29NVVlvb2tyUTJqaTRLZENuN1I0eFJEZ2R6ckRkS01NN25IWFFsd2Rlak4wWnlTd1htZWFibFJlRTNkM0dJSGJMbE5ZdTB1OTBROWxGbDI4ckRNWkViUVlRMWJaakZMUE5oYTV5ZVRPRVB0R3poQUpsS0hBNzNRbUs3V0dnNEtXWS9BVkJWYlJ3U0M1REZ2R3VidUN6WjBoT2lOcWlBUUNqS0dBRFRxVG1OcVI2djRaVWtINUV4YW55YVdNbFRHOG4wNFI3Z3pSRldsREpOa0hvWVV1bnROYVRndGFqTUVUM2tXNGtrczVXVXA1T3BPQzNCbkNyODFCd1hBTXdoTmFaN3BSa1VYWkF0UlR3R0M1bEpVaW1SOWU1czRROFp3eUJDUzdVWVc4cVhYRTlCSUtnaFprU0JGaEZVVU1sc3V3cFpTdDNoWHJBcjJlb1JTdzNsV3AwVXEvaERCSmJKN0NrSmU0YXlHS2NxNkYySmxqZ1NmVlpxWGFIQmkwR0VQMnllY3hSTStvMDQyQ0RWcFBURmViYmxRK1lRelJPd05RV2xqUHN6cWJVNElXWThnT3ViNVM3UVhIb2Z4QjYxbXA4L2h5MEdJTS9tSmFpTlJJZEtNNjJhQnpURGNxbDNGbkNNbjdJTGw5VVZyWXdKOTBMaWNITGNiZ1BhYkxsQTdLOFNoUDZSelRqY28xVEpjcGZSTGRxQzdUamNvbFRBdVJPZnNpdFBBWG50SFpuQlMwR0VObXVETkVlcmNINVFmS0NWZzhwWE5acVRZSEJDM0hrQjZtaGZBV0MyRU1SV3pRQm1KcXA3Vm5QVlJvTXdPQzFwQUp1cHFEM1h6ZTdRKzI1ejBFcnFLamNwYjlnQmFLZVZJYk9TWm9NZW1nU3poVWw3S2NZdVlFclNVZGRCVkQ5R2M4UUFkVDNlUnpPNmgyTisxcXpIRUtTbG5RSXR5Z05zVzZoQmdXYnlKY1RYb25zd1NHM3NlK2VoK05XTHdDN20rbWNyZHJUQ2xLK3lIZk1kOW00REdnalM2ZW9JakgwQnpka3hDblBXZ0pxYUxMR0lYU0N0RzdWMXh0TEk1Z05MQUEwZy9NZEx1Tk1wTXh4TnNvRHdOcjJZZUh4UDdpUWRGS0tvRDdNaWc3dkFnZFFVdllFN3FNWTRuVGduSm0wRnJTUWUvakxPSzBJQnlkYVZudURHRlI1R0pQVWhlSi9RVnJFZHJrSnA3djdZT3lrSjlwSlpkRER0NWhMZUZ0SVhRcCt3TjF4SmtFMFZ0SDBaVjhEWXU1S0dPODZwNjc3ekx0bnMySTB4VXE1TmV5Z0E5Y0tMbWVMcjVMNGdTKzNFSEQxMExvY29wbzV6cmkxQ1BzRTdRZXQraEsraUZNQTZhajdPWGxXTldMTHRQYkNBOGp1M2FGM0NDTi9GV3JhRUNabDNnaG5WSkNTTWdNb1lzWndlZTBBTjhLV290YlZCSHVaUXhLRTdpYlRrMlZkQXp4UlZjb1Rwc3M3cjByNUpvU0ZyQ1pVaEk3MTNJREt4eUcwS1VNcG90RktCZEc4VDhidllzVFdVVXIrTHMzeFowaHVyaWJJdVpMTXgvN0lVWnNPcldTNnhDZXBQdDBYMi83b0tOQm9HTUliV1lBUWpWZFRJSG9SU3ZyUFh3RnVCRVlUUlorZlZlR2tLVzg2WmVRN1hVczVHbWR4bkxnV3Ivcnlnb0JkWm5VeG1KQTV0T1FRYUdyNmN0V3lvQVp3SmV5Vlc4NEYxMjJVWTN3M2g0L0Y0WFdJb0JaSnIySnM5aUhGNEI3aUtJWjdtSVVXM2dEcFpFc21nRkNhZ2had2lkQWhidE0vbWpKbUN5MkVIb1RYOVZtVm1MeEtFUXZaRVR2NUhpOWk4Y1JmZzBjSG9TRzBKNXZLazJzMW1tTVJoamxQck1QZ3RJbEM0YlFCZlREWWhyQ2RHQXZ2K3Z6R3IySC9lbWlEZ2wrUFNTMGhnREE0bnFVczREK2FaY1J2RGw4NnpLcElpemlZb1NGRUwycmluVTVSUlJ6SFYzaFdROEpaWmNwaVRUeERrSzlkd1Y2VmxMcStEVHRxZ3M1a1VVOENhd21pbWE0a3hFVThSSktDNFREREpCbFE2aE5vYnA5TFB2U0Fyem91WmpzbUdNVHlxdGVGcWhOSEtvTFdZN3dSK0JVTDh2T0Jub0hRL1IySG5EaTJyNFp0SjZkOGQwUU9waytPb1VSV2tFcm4vQXVVN2pLVFg2eDZVUzVtc1NDb0QvNFlRN2xBeXpPa2hyZThLekloVnhFQVgrRzZJVmxBK2p0akFkZVE5eUhaV2NMWDc1VW5VSmZuY0lvbmNKS0N2a1FlQmdvQXc1Q2FOWXFCcm9wVCtiekhIQ3pIMXAzcmN5VFV0Nm1nTzlJTlM5N1V0b1hIRU8wWTcyR0VmSnhxMmZpdEp3QktPY2lqRUw1RWRDL2w0ZHJIN3E0QlZ6T0hpa3pFSDRFN3N5VUVlbVo0elVLK2I1TVo2UEhhZ3haSUtNV1FpZXh2OFlZcXpIYVVENGtNY0FidzU1bmhVWnFCVDkyVTVmTTUxTWs5THZQSHFlQTA0MFpvb3RyUStoa0Jtb1pWMnVNTmdwNW44UnE2RWpjeHNrSVM3WFMzU3FxTkhJL3lxOWMxZU1WZTI0dDFsTENlVkxOdjdPZ3h1QVQ3aTV1TCtjaUxONUJXRTdDQkpuc29EdUFPTTJ1Y3ltVElPQ0hibWR6S1BmeVpTNlNDdTl1c2pFRWc5c3J0ZnJoNVp5TWNMbE81WWV1c3N4bkk4b3N6elJraXNVU3VyaFNKb1lqek51UUdjRlAzUWszYXpYN3VzclRseVhBSC8wUmxESUsxTXNNeXNRbUhyQVdnMGNFYndnNGhFNmEzR1FRbXpnV0V5R3cvNVc3VUs2Uld1eUE2amY0UkJnTUFUQkJwL0U5Tnhsa0hxOEFTM3pTc3p2YUVTNlRPbFlFVUxmQlo4SmlDQ0hPY3JWZEJ2SDFvUlo0Mng5SlBiSVpZWlRNWkUwVzZ6UmtrYkFZQW9URDJjeGNWMWxzdGpnaHc5bmdZeXhHU0MyL3kxSjloZ0FJanlFU1ROYnBuTzRtZzh6alFlQVhQdWxKOGc3Q3FUSXo4SUc4d1dmQ1pnaUxPTGVyN1hLVFN5ZVRnWC81STRuMUZIQzYxTExCcC9JTklTSnNoZ0FZd21acTNXUndEa1NiNllPVzV5amlUSm5KMzlNdFFCczR5a3RCQm44Sm95RUFxclNhRTF6bEtPWVc0Q2tQTlR6R1hwd3ROZndqM1FMMFJxWWpWSHFveWVBellUVkVJWEh1MEt0VER3MFJtemdGWElNM2F4Ty9BaTZRNlh5YWJnSGF3R3puMUFoRGhBaXJJUUNPWVFCVmJqTElIRjVGMG9pUDJwRzdnVXZFWmxzNm1WVVJiYUFGY2RmdE00U0RNQnNDb0ZhbnV6eURkQXMyOEQ5cDFTWTBpYzA0c2VsTUo3dXVwb0I1M0E3RTBxcmZFRGhoTjBRZjRBNjlKUFdqU2FTWnJVNUViT29JaWxJcE50VnVCU2JSMVJUd1orNEN4cWRiaGlGNHdtNElVRTdpNjB4MmswWG04UkRDejFQOGVCY3dRV1p6azN0eENkU21tRCt6Qm1GTXVtVVl3a0g0RFFFZ05HZzFSN3JLRTZjYzJMU0hUMzFPWXJ4d1o3clMxS2FFUXRxQUg2VmJoaUU4Uk1NUVVJSnltNXNqYkdRZUg4SnV1MEQvd21LRXpPYitkRVhwQXZvNVpuQVZtR2dJTDFFeEJNQjNxZWFucm5JMGNCdndaQS92Skk2SXNYdDhMeVhVWmdEYldBZWNuVzRaaHZBUkpVT0Fza0JuOE5WVVB5NkpUVHdUU0hTTmtpU09pTEY1S1cwWk5nZFN3SDhESjZkYmhpR2NSTXNRc0RkZDNPb21nOHhsQTdEUStldnJ4UG1PMkx5VnJnQzFPWmdDSGlHQ3Ayc2I5a3pVREFGd2dWWnpoYXNjaGN4RnVac0NUcGVHRk82ZDZBV2R5MkZZUEFFbVBpbFhDZlVwYXJ1aFZXdFk1d3ljOTRpejZqd3Vrd3JWWmpCeDFrSHFYVFpEOUloaUN3R3dQOHJpYkZXbWN4aUd4V01ZTStROFVUVUVLS1Y2QXhmNVhvM044Y1I1SERqVTc3b013Uk5kUXlSWXBqYjcrVlc0enVaRWhJZUJBL3lxd3hBdW9tNklnOW1XZnNqRjd0RFpuSW55Q1Bobk9FUDRpTG9oUUxoS3F6blB5eUsxbnZPSjh5Qlp2Z0hURUR6Uk53U0FzRnlydkhsNDFlWUhLUGNEZmIwb3p4QXRjc01ROERVS3VUSFRRclNPeTRCZmtnZzdOK1FodVdJSWdHdDFCbWVrbTFsdHJrYTRsK2l1elJnOElKY01ZYUhjcGxQY2QzVzBqa25BcmVUVzkyRklnMXg3QUFaVDR1NEFZcTFqT3NKU05BUTNXaHNDSjljTUFjcFVyZVhFbEQ0Nmkzb3dKMlBrTUcrZy9OSk5CbmVHNk9KeEpQUm5teFlRNXc2MWU3L2lTMEYwRnEwb2Rka1Vac2dhbTRCcUNqbE9ScnM3ZnRUVkFGS1c4VGZnK3pxRkVjUnBBWmNuWW1TUDRiUnpBMUMvOHh0cVk5SEpDcFNmQktETDRDOXg0RDZLbUNxbDZSMHdsMWFYU1pwWngxYU9ReWtuNlB2ZWVrT28wVnFHZDM5Skw2R0FUdTVFakJseUR1RlJMSTZUS3hpYnJoa2dnekdFcktCREZ0TktKMGNBaTBtY1hoRW1pb2x6ajlxSlZsQnRpaG5LYW9Rcmd4Wm04SlMzRUVybENzNlJ5M2tsMDhJeUhsVExNajZTVm1JSXc0R0hNaTNQWTQ2amczS2RUQjg2V1FQK1I4Y2Fzc1ptb0o1T2hzc1YzbDFnNDlraWxMU3dIamhQWTF5Q01CODQzS3V5TTBLWXpUNWNCSndTdEJTREp5aHdMNTFVeVRnKzhMcHd6NmRkcFpVMURHQUlRam53aWRmbHAwRmZqQmx5aFdkUlRwT3hqUFhERE9EVE9vVFl0RXN6clJReERGZ0I1dHBhUTBhOGgzSWxZemhKcnVScFB5dnlkV0ZPNXJOUm1wa0luQVQ4d2MrNkREbkpWcUNKdmd5VnExZ3BndnBkWVZZQzJhU1o1eFMrUXdVWEF3dUF3N0pScnlIU3JFV1pMRmZ4MTJ4V21yWFFEUUdWUmF6aE03NkpVRS9DL1FiRHpyeUFjb1pjeFNnWmwxMHpRQUN4VExLQ0xiSVFtd0lHQTZ2QS8yYlFFQWsrQXNycHg3ZGxIRThFSlNLdzRENlp6N3R5RTJPQlV4QnozVzBlMHdFc3BwMGpaQnl0VWhyc0FtL2cwYTZ5a0dmb3gybk9DbkpLQjQ4WmNvWjF3TEV5bnBoTURFY0lVT0NHZ01TRmliS0FsU2hIT09PTHovZVl5UkJsTm1CeG9Zem5YQm5QRzBHTDZVNG9ESkZFRnJKWjVtTlR3RkdJZDh2eGh0RHdNY3BrL3M1Uk1vN2ZCQzJtSjBLNWYxZ2FlUXNvMVdyT2RzTE1oKzhwanlIOHlJVE1ENEx3bTFDMUVEc2pqVHhLQ2NjalRJVDBRM29OaGxRSnRTRUF4S1pUR2xtQk1BU2xDV2dQV3BNaGR3bTlJWkpJSTV0a1B0WEVPUnJDMmY4MFJKL0lHQ0tKekdlRE5ISWhjQzZFYTRiQ0VIMGlaNGdrMHNnNlB1SllKOHc4RkhQWWh1Z1RXVU9BczQxMUhxM0FFYzRGS21IYnhtcUlHSkUyUkJLNWtZL2tSbUxFT1JGNFBHZzlodWlTRTRaSUlvMjhLUE00RS9nQjhIYlFlZ3pSSTZjTWtVUWFhR01MMzBLcEJqNE5XbzhoT3VTa0lRQ2ttYTB5anlZS0dZcWFiYXlHMU1oWlF5UVJtNDNTd0VTVWt4Q2VDbHBQeFBndjR0c3Z2YzhMY3Q0UVNhU0I1NWpONlFpbHdEdEI2d2s1YndMbnl5VCtVeWJuMTFnc2J3d0J6amJXMmF5aGdHRWt6bjNkRnJTbWtQRXhTam4vWkxoTTRyZEJpd21DdkRKRUVySFpJck94c1JnRXJDSUxwem1FbkU1Z0JVVU1rY20waWsxbjBJS0NJaThOa1VSczNwWFpqS1dMczRDWGd0WVRDTW9qeERsT0pqTlJKdkxQb09VRVRWNGJJb25NNGZjSUorVFpOdGEvSUpSS0dTTWt4bXRCaXdrTHhoQU9ZaE1YbTVYQWtaRFQyMWcvUTZrSGhzdGtzeXR4WjR3aGRrSnNQaE1ibXdLR1EwNDlNSEZnRmNxUkVzT1dzcHcxZkVhRWNndHBHSkJhL2dLVWFqM25BTTFFZXh2ck15Z3hLZWVab0lXRUhkTkM3QUdaeFNNb3gwTWt0N0crQzF4SmpGT01HVkxER0NJRnhLWlQ2bGhCbktFa2Jrc0srN1RrRnFDZU9JT2xQRHVIQk9jS3hoQXVFSnVQcFk0WUJReEhlVEJvUFQyZ3dCcTYrS1pNd1pZS2MzNnVXOHdZSWcya2hqZUJDM1FPSTBpMEdNTUNsZ1RDODBCTXBwaHJCekxCdEJBWklMV3M0OHNjRS9CdHJPOGpUT1RmZk51WUlYT01JVEpFSnRJaHRiUmljUVNTMVcyczdjQmlpaGdxVTFnaHRnbHY5d0pqQ0krUUdqNlNHbUxBdDhIMzQ5elhZakZNcGhLVHNsRGM0NWN6bURHRXg4Z01YZ0RPMExtTXdxTFY0K0xmUkRoYnB2S1l4K1VhRFA2ak5pWGF5QmxCNnpDa3p2OERRZDdRck1iTFIxQUFBQUFBU1VWT1JLNUNZSUk9Ij4KCjxzdHlsZT4KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIHNyYzogbG9jYWwoJ1JvYm90bycpLCBsb2NhbCgnUm9ib3RvLVJlZ3VsYXInKSwgdXJsKC9mb250LXJvYm90by91WUVDTUtvSGNPOXgxd2RtYnlISW0zLV9rZjZCeVlPNkNMWWRCNEhRRS1ZLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8nKSwgbG9jYWwoJ1JvYm90by1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vc1RkYUE2ajBQc2I5MjBWanYtbXJ6SC1fa2Y2QnlZTzZDTFlkQjRIUUUtWS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5RjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvJyksIGxvY2FsKCdSb2JvdG8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL19WWUZ4LXM4MjRrWHFfVWwyQkhxWUgtX2tmNkJ5WU82Q0xZZEI0SFFFLVkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvJyksIGxvY2FsKCdSb2JvdG8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL3RuajRTQjZETmJkYVFuc004Q0ZxQlgtX2tmNkJ5WU82Q0xZZEI0SFFFLVkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvJyksIGxvY2FsKCdSb2JvdG8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL29NTWdmWk1RdGhPcnlRbzluMjJkY3V2dkRpbjFwSzhhS3RlTHBlWjVjMEEud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIyMTIsIFUrMjIxNTsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvJyksIGxvY2FsKCdSb2JvdG8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL0tzX2NWeGlDaXdVV1ZzRldGQTNCam4tX2tmNkJ5WU82Q0xZZEI0SFFFLVkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8nKSwgbG9jYWwoJ1JvYm90by1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vTko0dnhsZ1d3V2JFc3YxOGRBaHFubi1fa2Y2QnlZTzZDTFlkQjRIUUUtWS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzFFQTAtMUVGOSwgVSsyMEFCOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by9pc1otd2JDWE5LQWJuam82X1R3SFRvWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by83N0ZYRmpSYkd6TjRhQ3JTRmhsaDNvWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by9qU04yQ0dWRGJjVnlDbmZKZmpTZGZJWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMzcwLTAzRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBCb2xkJyksIGxvY2FsKCdSb2JvdG8tQm9sZCcpLCB1cmwoL2ZvbnQtcm9ib3RvL1VYNmk0SnhRRG0zZlZUYzFDUHV3cW9YMGhWZ3paUVVmUkR1WnJQdkgzRDgud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIEJvbGQnKSwgbG9jYWwoJ1JvYm90by1Cb2xkJyksIHVybCgvZm9udC1yb2JvdG8vZC02SVlwbE9Gb2NDYWNLenh3WFNPSkJ3MXhVMXJLcHRKal8wamFuczkyMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by85N3VhaHhpcVpSb25jQmFDRUkzYVc0WDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyNEYsIFUrMUUwMC0xRUZGLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQ0YsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIEJvbGQnKSwgbG9jYWwoJ1JvYm90by1Cb2xkJyksIHVybCgvZm9udC1yb2JvdG8vUHdaYy1ZYklMNDE0d0I5ckIxSUFQWVgwaFZnelpRVWZSRHVaclB2SDNEOC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzFFQTAtMUVGOSwgVSsyMEFCOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gQm9sZCBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1Cb2xkSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vdDZOZDRjZlBSaFpQNDRRNVFBamNDMTRzWVlkSmc1ZFUycXpKRVZTdXRhMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIEJvbGQgSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tQm9sZEl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL3Q2TmQ0Y2ZQUmhaUDQ0UTVRQWpjQ19acmFSMlRnOHcybHptN2tMTkwwLXcud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBCb2xkIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUJvbGRJdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by90Nk5kNGNmUFJoWlA0NFE1UUFqY0N3dF9SbTY5MUxUZWJLZlkyWmtLU21JLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMzcwLTAzRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBCb2xkIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUJvbGRJdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by90Nk5kNGNmUFJoWlA0NFE1UUFqY0MxQlcyNlF4cFNqLV9aS21feFQ0aFd3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBCb2xkIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUJvbGRJdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by90Nk5kNGNmUFJoWlA0NFE1UUFqY0M0Z3A5UThnYllyaHFHbFJhdl9JWGZrLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMjAwMC0yMDZGLCBVKzIwNzQsIFUrMjBBQywgVSsyMjEyLCBVKzIyMTU7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBCb2xkIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUJvbGRJdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by90Nk5kNGNmUFJoWlA0NFE1UUFqY0M2RThrTTR4V1IxXzFiWVVSUm9qUkdjLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyNEYsIFUrMUUwMC0xRUZGLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQ0YsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIEJvbGQgSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tQm9sZEl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL3Q2TmQ0Y2ZQUmhaUDQ0UTVRQWpjQzlEaU5zUjVhLTlPZV9JdnB1OFhXbFkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL09wWFVxVG8wVWdRUWhHal9TRmRMV0JrQXo0clluNDdaeTJydmlnV1FmNncud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNDAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1JdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by9XeHJYSmEwQzNLZHRDN2xNYWZHNGRSa0F6NHJZbjQ3WnkycnZpZ1dRZjZ3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vY0RLaFJhWG5RVE9WYmFveHdkT3I5eGtBejRyWW40N1p5MnJ2aWdXUWY2dy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vMWhaZjAyUE9BTmgzMmsyVmtnRW9VQmtBejRyWW40N1p5MnJ2aWdXUWY2dy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMUYwMC0xRkZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vdlBjeW5TTDBxSHFfNmRYN2xLVkJ5WFloamJTcHZjNDdlZTZ4Ul84MEhudy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vdlN6dWxmS1NLMExMampmZWF4Y1JFaGtBejRyWW40N1p5MnJ2aWdXUWY2dy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNDAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1JdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by9LMjNjeFdWVHJJRkQ2REpzRVZpMDdSa0F6NHJZbjQ3WnkycnZpZ1dRZjZ3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAyLTAxMDMsIFUrMUVBMC0xRUY5LCBVKzIwQUI7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogMzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBMaWdodCcpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0JyksIHVybCgvZm9udC1yb2JvdG8vRmw0eTBRZE94eXlUSEVHTVhYOGtjWVgwaFZnelpRVWZSRHVaclB2SDNEOC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0JyksIGxvY2FsKCdSb2JvdG8tTGlnaHQnKSwgdXJsKC9mb250LXJvYm90by8wZUM2ZmwwNmx1WEVZV3BCU0p2WENJWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTGlnaHQnKSwgbG9jYWwoJ1JvYm90by1MaWdodCcpLCB1cmwoL2ZvbnQtcm9ib3RvL0kzUzF3c2dTZzlZQ3VyVjZQVWtUT1lYMGhWZ3paUVVmUkR1WnJQdkgzRDgud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0JyksIGxvY2FsKCdSb2JvdG8tTGlnaHQnKSwgdXJsKC9mb250LXJvYm90by8tTDE0SmswNm02cFVIQi01bVhRUW5ZWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogMzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBMaWdodCcpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0JyksIHVybCgvZm9udC1yb2JvdG8vSGdvMTNrLXRmU3BuMHFpMVNGZFVmWkJ3MXhVMXJLcHRKal8wamFuczkyMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTGlnaHQnKSwgbG9jYWwoJ1JvYm90by1MaWdodCcpLCB1cmwoL2ZvbnQtcm9ib3RvL1BydTMzcWpTaHBaU21HM3o2Vll3bllYMGhWZ3paUVVmUkR1WnJQdkgzRDgud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTGlnaHQnKSwgbG9jYWwoJ1JvYm90by1MaWdodCcpLCB1cmwoL2ZvbnQtcm9ib3RvL05ZRFdCZEQ0Z0lxMjZHNVhZYkhzRklYMGhWZ3paUVVmUkR1WnJQdkgzRDgud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0IEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0SXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vN204bDdUbEZPLVMzVmtoSHVSMGF0MTRzWVlkSmc1ZFUycXpKRVZTdXRhMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0IEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0SXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vN204bDdUbEZPLVMzVmtoSHVSMGF0X1pyYVIyVGc4dzJsem03a0xOTDAtdy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5RjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0IEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0SXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vN204bDdUbEZPLVMzVmtoSHVSMGF0d3RfUm02OTFMVGViS2ZZMlprS1NtSS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTGlnaHQgSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tTGlnaHRJdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by83bThsN1RsRk8tUzNWa2hIdVIwYXQxQlcyNlF4cFNqLV9aS21feFQ0aFd3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogMzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBMaWdodCBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1MaWdodEl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvLzdtOGw3VGxGTy1TM1ZraEh1UjBhdDRncDlROGdiWXJocUdsUmF2X0lYZmsud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIyMTIsIFUrMjIxNTsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIExpZ2h0IEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLUxpZ2h0SXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vN204bDdUbEZPLVMzVmtoSHVSMGF0NkU4a000eFdSMV8xYllVUlJvalJHYy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogMzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBMaWdodCBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1MaWdodEl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvLzdtOGw3VGxGTy1TM1ZraEh1UjBhdDlEaU5zUjVhLTlPZV9JdnB1OFhXbFkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1lZGl1bScpLCBsb2NhbCgnUm9ib3RvLU1lZGl1bScpLCB1cmwoL2ZvbnQtcm9ib3RvL29IaTMwa3dRV3ZwQ1dxQWh6SGNDU0lYMGhWZ3paUVVmUkR1WnJQdkgzRDgud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNZWRpdW0nKSwgbG9jYWwoJ1JvYm90by1NZWRpdW0nKSwgdXJsKC9mb250LXJvYm90by9aTHFLZWVsWWJBVEc2MEVwWkJTRHk0WDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtJyksIHVybCgvZm9udC1yb2JvdG8vbXg5VWNrNnVCNjNWSUtGWW5FTVhyWVgwaFZnelpRVWZSRHVaclB2SDNEOC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtJyksIHVybCgvZm9udC1yb2JvdG8vckd2SGRKbnIybDc1cWIwWU5EOU55SVgwaFZnelpRVWZSRHVaclB2SDNEOC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMUYwMC0xRkZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtJyksIHVybCgvZm9udC1yb2JvdG8vUnhaSmRuemVvM1I1elNleGdlOFVVWkJ3MXhVMXJLcHRKal8wamFuczkyMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtJyksIHVybCgvZm9udC1yb2JvdG8vb09lRndaTmxyVGVmekxZbWxWVjFVSVgwaFZnelpRVWZSRHVaclB2SDNEOC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNZWRpdW0nKSwgbG9jYWwoJ1JvYm90by1NZWRpdW0nKSwgdXJsKC9mb250LXJvYm90by9tYm1ocHJNSDY5Wmk2ZUVQQllWRmhZWDBoVmd6WlFVZlJEdVpyUHZIM0Q4LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAyLTAxMDMsIFUrMUVBMC0xRUY5LCBVKzIwQUI7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNZWRpdW0gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vT0xmZkdCVGFGMFhGT1cxZ251SEYwVjRzWVlkSmc1ZFUycXpKRVZTdXRhMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1lZGl1bSBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1NZWRpdW1JdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by9PTGZmR0JUYUYwWEZPVzFnbnVIRjBmWnJhUjJUZzh3Mmx6bTdrTE5MMC13LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLU1lZGl1bUl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL09MZmZHQlRhRjBYRk9XMWdudUhGMFF0X1JtNjkxTFRlYktmWTJaa0tTbUkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1lZGl1bSBJdGFsaWMnKSwgbG9jYWwoJ1JvYm90by1NZWRpdW1JdGFsaWMnKSwgdXJsKC9mb250LXJvYm90by9PTGZmR0JUYUYwWEZPVzFnbnVIRjBWQlcyNlF4cFNqLV9aS21feFQ0aFd3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNZWRpdW0gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tTWVkaXVtSXRhbGljJyksIHVybCgvZm9udC1yb2JvdG8vT0xmZkdCVGFGMFhGT1cxZ251SEYwWWdwOVE4Z2JZcmhxR2xSYXZfSVhmay53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLU1lZGl1bUl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL09MZmZHQlRhRjBYRk9XMWdudUhGMGFFOGtNNHhXUjFfMWJZVVJSb2pSR2Mud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvJzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTWVkaXVtIEl0YWxpYycpLCBsb2NhbCgnUm9ib3RvLU1lZGl1bUl0YWxpYycpLCB1cmwoL2ZvbnQtcm9ib3RvL09MZmZHQlRhRjBYRk9XMWdudUhGMGREaU5zUjVhLTlPZV9JdnB1OFhXbFkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubycpLCBsb2NhbCgnUm9ib3RvTW9uby1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vaE1xUE5Mc3VfZHl3TWE0Q19ERXBZMTRzWVlkSmc1ZFUycXpKRVZTdXRhMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubycpLCBsb2NhbCgnUm9ib3RvTW9uby1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vaE1xUE5Mc3VfZHl3TWE0Q19ERXBZX1pyYVIyVGc4dzJsem03a0xOTDAtdy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5RjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubycpLCBsb2NhbCgnUm9ib3RvTW9uby1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vaE1xUE5Mc3VfZHl3TWE0Q19ERXBZd3RfUm02OTFMVGViS2ZZMlprS1NtSS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNb25vJyksIGxvY2FsKCdSb2JvdG9Nb25vLVJlZ3VsYXInKSwgdXJsKC9mb250LXJvYm90by9oTXFQTkxzdV9keXdNYTRDX0RFcFkxQlcyNlF4cFNqLV9aS21feFQ0aFd3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1vbm8nKSwgbG9jYWwoJ1JvYm90b01vbm8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL2hNcVBOTHN1X2R5d01hNENfREVwWTRncDlROGdiWXJocUdsUmF2X0lYZmsud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIyMTIsIFUrMjIxNTsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubycpLCBsb2NhbCgnUm9ib3RvTW9uby1SZWd1bGFyJyksIHVybCgvZm9udC1yb2JvdG8vaE1xUE5Mc3VfZHl3TWE0Q19ERXBZNkU4a000eFdSMV8xYllVUlJvalJHYy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1vbm8nKSwgbG9jYWwoJ1JvYm90b01vbm8tUmVndWxhcicpLCB1cmwoL2ZvbnQtcm9ib3RvL2hNcVBOTHN1X2R5d01hNENfREVwWTlEaU5zUjVhLTlPZV9JdnB1OFhXbFkud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubyBCb2xkJyksIGxvY2FsKCdSb2JvdG9Nb25vLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by9ONGR1VmM5QzU4dXdQaVk4XzU5RnoxeC1NMUkxdzVPTWlxblZGOHhCTGhVLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2Owp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNb25vIEJvbGQnKSwgbG9jYWwoJ1JvYm90b01vbm8tQm9sZCcpLCB1cmwoL2ZvbnQtcm9ib3RvL040ZHVWYzlDNTh1d1BpWThfNTlGendYYUFYdXA1bVpsZks2eFJMcmhzY28ud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1vbm8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvTW9uby1Cb2xkJyksIHVybCgvZm9udC1yb2JvdG8vTjRkdVZjOUM1OHV3UGlZOF81OUZ6d242V3F4by14d3hpbERYUFU4Y2hWVS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOwp9CkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogbG9jYWwoJ1JvYm90byBNb25vIEJvbGQnKSwgbG9jYWwoJ1JvYm90b01vbm8tQm9sZCcpLCB1cmwoL2ZvbnQtcm9ib3RvL040ZHVWYzlDNTh1d1BpWThfNTlGejFUN2FKTEs2bktwbjM2SU13VGNNTWMud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjsKfQpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IGxvY2FsKCdSb2JvdG8gTW9ubyBCb2xkJyksIGxvY2FsKCdSb2JvdG9Nb25vLUJvbGQnKSwgdXJsKC9mb250LXJvYm90by9ONGR1VmM5QzU4dXdQaVk4XzU5RnpfNzlfWnVVeENpZ00yRGVzcFRuRmF3LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMjAwMC0yMDZGLCBVKzIwNzQsIFUrMjBBQywgVSsyMjEyLCBVKzIyMTU7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1vbm8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvTW9uby1Cb2xkJyksIHVybCgvZm9udC1yb2JvdG8vTjRkdVZjOUM1OHV3UGlZOF81OUZ6NGdkOU9FUFVDTjNBZFlXMGU4dGF0NC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiBsb2NhbCgnUm9ib3RvIE1vbm8gQm9sZCcpLCBsb2NhbCgnUm9ib3RvTW9uby1Cb2xkJyksIHVybCgvZm9udC1yb2JvdG8vTjRkdVZjOUM1OHV3UGlZOF81OUZ6OGJJUVNZWm5XTGFXQzlRTkNwVEtfVS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzFFQTAtMUVGOSwgVSsyMEFCOwp9Cjwvc3R5bGU+CgoKCjxzdHlsZT4ubWF0LWJhZGdlLWNvbnRlbnR7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudHtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2UgLm1hdC1iYWRnZS1jb250ZW50e2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDEsLm1hdC1oZWFkbGluZSwubWF0LXR5cG9ncmFwaHkgaDF7Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDIsLm1hdC10aXRsZSwubWF0LXR5cG9ncmFwaHkgaDJ7Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDMsLm1hdC1zdWJoZWFkaW5nLTIsLm1hdC10eXBvZ3JhcGh5IGgze2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0LC5tYXQtc3ViaGVhZGluZy0xLC5tYXQtdHlwb2dyYXBoeSBoNHtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNSwubWF0LXR5cG9ncmFwaHkgaDV7Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDYsLm1hdC10eXBvZ3JhcGh5IGg2e2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nLC5tYXQtYm9keS0ye2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keSwubWF0LWJvZHktMSwubWF0LXR5cG9ncmFwaHl7Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5IHAsLm1hdC1ib2R5LTEgcCwubWF0LXR5cG9ncmFwaHkgcHttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbCwubWF0LWNhcHRpb257Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTQsLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS00e2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktMywubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTN7Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMiwubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTJ7Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTEsLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0xe2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJ7Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b24sLm1hdC1yYWlzZWQtYnV0dG9uLC5tYXQtaWNvbi1idXR0b24sLm1hdC1zdHJva2VkLWJ1dHRvbiwubWF0LWZsYXQtYnV0dG9uLC5tYXQtZmFiLC5tYXQtbWluaS1mYWJ7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGV7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZHtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxle2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyIC5tYXQtY2FyZC10aXRsZXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGUsLm1hdC1jYXJkLWNvbnRlbnR7Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveHtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXQgLm1hdC1jaGVja2JveC1sYWJlbHtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcHtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uLC5tYXQtY2hpcCAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29ue2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGV7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGx7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbCwubWF0LWZvb3Rlci1jZWxse2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJ7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwsLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9ue2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlciB0aHtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGV7Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVye2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudHtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGR7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJ7cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29ue2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiwubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbi1idXR0b257aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb24sLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24tYnV0dG9uIC5tYXQtaWNvbntoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXh7cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cysubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJ7dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVse3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcntmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtd3JhcHBlcntwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1pbmZpeHtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cysubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtbGFiZWx7dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJ7bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1pbmZpeHtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1pbmZpeHtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXIsLm1hdC1ncmlkLXRpbGUtZm9vdGVye2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlciAubWF0LWxpbmUsLm1hdC1ncmlkLXRpbGUtZm9vdGVyIC5tYXQtbGluZXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSwubWF0LWdyaWQtdGlsZS1mb290ZXIgLm1hdC1saW5lOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50e21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVte2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3IsLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXJ7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9ue2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdHtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcntoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50e2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsLC5tYXQtc3RlcHBlci1ob3Jpem9udGFse2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWx7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3J7Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcntmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWR7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3Vwe2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbCwubWF0LXRhYi1saW5re2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyLC5tYXQtdG9vbGJhciBoMSwubWF0LXRvb2xiYXIgaDIsLm1hdC10b29sYmFyIGgzLC5tYXQtdG9vbGJhciBoNCwubWF0LXRvb2xiYXIgaDUsLm1hdC10b29sYmFyIGg2e2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcHtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldHtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVte2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9ue2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmV7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9ue2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5le3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlcntmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3QtaXRlbXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5le3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9ue2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LXN1YmhlYWRlcntmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9ue2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVse2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFye2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb257bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWV7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlLC5tYXQtbmVzdGVkLXRyZWUtbm9kZXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGV7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVke292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudHtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtcmlwcGxlLWVsZW1lbnR7ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVue2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lciwuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJ7cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVye3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJ7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3B7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmd7b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmd7b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcHtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AsLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmd7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94e3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2t7cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemV7cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ3twYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94e3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0ey8qISovfUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5key8qISovfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcntwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3J7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEpfS5tYXQtb3B0aW9ue2NvbG9yOiMyMTIxMjF9Lm1hdC1vcHRpb246aG92ZXI6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSwubWF0LW9wdGlvbjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMDQpfS5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCl7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4wNCl9Lm1hdC1vcHRpb24ubWF0LWFjdGl2ZXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjA0KTtjb2xvcjojMjEyMTIxfS5tYXQtb3B0aW9uLm1hdC1vcHRpb24tZGlzYWJsZWR7Y29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKXtjb2xvcjojZjU3YzAwfS5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2NvbG9yOiNmZjk4MDB9Lm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2NvbG9yOiNmNDQzMzZ9Lm1hdC1vcHRncm91cC1sYWJlbHtjb2xvcjojNjE2MTYxfS5tYXQtb3B0Z3JvdXAtZGlzYWJsZWQgLm1hdC1vcHRncm91cC1sYWJlbHtjb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1wc2V1ZG8tY2hlY2tib3h7Y29sb3I6IzYxNjE2MX0ubWF0LXBzZXVkby1jaGVja2JveDo6YWZ0ZXJ7Y29sb3I6I2ZmZn0ubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZHtjb2xvcjojYjBiMGIwfS5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRle2JhY2tncm91bmQ6I2Y1N2MwMH0ubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUsLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCwubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRle2JhY2tncm91bmQ6I2ZmOTgwMH0ubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCwubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZXtiYWNrZ3JvdW5kOiNmNDQzMzZ9Lm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZHtiYWNrZ3JvdW5kOiNiMGIwYjB9Lm1hdC1hcHAtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzIxMjEyMX0ubWF0LWVsZXZhdGlvbi16MHtib3gtc2hhZG93OjBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejF7Ym94LXNoYWRvdzowcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16Mntib3gtc2hhZG93OjBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoze2JveC1zaGFkb3c6MHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejR7Ym94LXNoYWRvdzowcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejV7Ym94LXNoYWRvdzowcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggNXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDE0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejZ7Ym94LXNoYWRvdzowcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXo3e2JveC1zaGFkb3c6MHB4IDRweCA1cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDdweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16OHtib3gtc2hhZG93OjBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejl7Ym94LXNoYWRvdzowcHggNXB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggOXB4IDEycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDNweCAxNnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxMHtib3gtc2hhZG93OjBweCA2cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxMHB4IDE0cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDRweCAxOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxMXtib3gtc2hhZG93OjBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxMXB4IDE1cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDRweCAyMHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxMntib3gtc2hhZG93OjBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxM3tib3gtc2hhZG93OjBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxM3B4IDE5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDVweCAyNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxNHtib3gtc2hhZG93OjBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxNHB4IDIxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDVweCAyNnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxNXtib3gtc2hhZG93OjBweCA4cHggOXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxNXB4IDIycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDZweCAyOHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxNntib3gtc2hhZG93OjBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MTd7Ym94LXNoYWRvdzowcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDE3cHggMjZweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNnB4IDMycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejE4e2JveC1zaGFkb3c6MHB4IDlweCAxMXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxOHB4IDI4cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDdweCAzNHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoxOXtib3gtc2hhZG93OjBweCA5cHggMTJweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMTlweCAyOXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA3cHggMzZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MjB7Ym94LXNoYWRvdzowcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAyMHB4IDMxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDhweCAzOHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoyMXtib3gtc2hhZG93OjBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDIxcHggMzNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggOHB4IDQwcHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1lbGV2YXRpb24tejIye2JveC1zaGFkb3c6MHB4IDEwcHggMTRweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMjJweCAzNXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA4cHggNDJweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWVsZXZhdGlvbi16MjN7Ym94LXNoYWRvdzowcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAyM3B4IDM2cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDlweCA0NHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZWxldmF0aW9uLXoyNHtib3gtc2hhZG93OjBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC10aGVtZS1sb2FkZWQtbWFya2Vye2Rpc3BsYXk6bm9uZX0ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbHtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzIxMjEyMX0ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKXtiYWNrZ3JvdW5kOiNmZmZ9Lm1hdC1hdXRvY29tcGxldGUtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcik6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKXtjb2xvcjojMjEyMTIxfS5tYXQtYmFkZ2V7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1iYWRnZS1oaWRkZW4gLm1hdC1iYWRnZS1jb250ZW50e2Rpc3BsYXk6bm9uZX0ubWF0LWJhZGdlLWNvbnRlbnR7cG9zaXRpb246YWJzb2x1dGU7dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym9yZGVyLXJhZGl1czo1MCU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gMjAwbXMgZWFzZS1pbi1vdXQ7dHJhbnNmb3JtOnNjYWxlKDAuNik7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3BvaW50ZXItZXZlbnRzOm5vbmV9Lm5nLWFuaW1hdGUtZGlzYWJsZWQgLm1hdC1iYWRnZS1jb250ZW50LC5tYXQtYmFkZ2UtY29udGVudC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZXt0cmFuc2l0aW9uOm5vbmV9Lm1hdC1iYWRnZS1jb250ZW50Lm1hdC1iYWRnZS1hY3RpdmV7dHJhbnNmb3JtOm5vbmV9Lm1hdC1iYWRnZS1zbWFsbCAubWF0LWJhZGdlLWNvbnRlbnR7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtsaW5lLWhlaWdodDoxNnB4fS5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudHt0b3A6LThweH0ubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnR7Ym90dG9tOi04cHh9Lm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudHtsZWZ0Oi0xNnB4fVtkaXI9cnRsXSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50e2xlZnQ6YXV0bztyaWdodDotMTZweH0ubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnR7cmlnaHQ6LTE2cHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudHtyaWdodDphdXRvO2xlZnQ6LTE2cHh9Lm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudHtsZWZ0Oi04cHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnR7bGVmdDphdXRvO3JpZ2h0Oi04cHh9Lm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0Oi04cHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudHtyaWdodDphdXRvO2xlZnQ6LThweH0ubWF0LWJhZGdlLW1lZGl1bSAubWF0LWJhZGdlLWNvbnRlbnR7d2lkdGg6MjJweDtoZWlnaHQ6MjJweDtsaW5lLWhlaWdodDoyMnB4fS5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnR7dG9wOi0xMXB4fS5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnR7Ym90dG9tOi0xMXB4fS5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50e2xlZnQ6LTIycHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50e2xlZnQ6YXV0bztyaWdodDotMjJweH0ubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0Oi0yMnB4fVtkaXI9cnRsXSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0OmF1dG87bGVmdDotMjJweH0ubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudHtsZWZ0Oi0xMXB4fVtkaXI9cnRsXSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudHtsZWZ0OmF1dG87cmlnaHQ6LTExcHh9Lm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudHtyaWdodDotMTFweH1bZGlyPXJ0bF0gLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudHtyaWdodDphdXRvO2xlZnQ6LTExcHh9Lm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnR7d2lkdGg6MjhweDtoZWlnaHQ6MjhweDtsaW5lLWhlaWdodDoyOHB4fS5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudHt0b3A6LTE0cHh9Lm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50e2JvdHRvbTotMTRweH0ubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50e2xlZnQ6LTI4cHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnR7bGVmdDphdXRvO3JpZ2h0Oi0yOHB4fS5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudHtyaWdodDotMjhweH1bZGlyPXJ0bF0gLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0OmF1dG87bGVmdDotMjhweH0ubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50e2xlZnQ6LTE0cHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnR7bGVmdDphdXRvO3JpZ2h0Oi0xNHB4fS5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudHtyaWdodDotMTRweH1bZGlyPXJ0bF0gLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0OmF1dG87bGVmdDotMTRweH0ubWF0LWJhZGdlLWNvbnRlbnR7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiNmNTdjMDB9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJhZGdlLWNvbnRlbnR7b3V0bGluZTpzb2xpZCAxcHg7Ym9yZGVyLXJhZGl1czowfS5tYXQtYmFkZ2UtYWNjZW50IC5tYXQtYmFkZ2UtY29udGVudHtiYWNrZ3JvdW5kOiNmZjk4MDA7Y29sb3I6I2ZmZn0ubWF0LWJhZGdlLXdhcm4gLm1hdC1iYWRnZS1jb250ZW50e2NvbG9yOiNmZmY7YmFja2dyb3VuZDojZjQ0MzM2fS5tYXQtYmFkZ2UtZGlzYWJsZWQgLm1hdC1iYWRnZS1jb250ZW50e2JhY2tncm91bmQ6I2JkYmRiZDtjb2xvcjojNzU3NTc1fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcntib3gtc2hhZG93OjBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzIxMjEyMX0ubWF0LWJ1dHRvbiwubWF0LWljb24tYnV0dG9uLC5tYXQtc3Ryb2tlZC1idXR0b257Y29sb3I6aW5oZXJpdDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5tYXQtYnV0dG9uLm1hdC1wcmltYXJ5LC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnksLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeXtjb2xvcjojZjU3YzAwfS5tYXQtYnV0dG9uLm1hdC1hY2NlbnQsLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50LC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudHtjb2xvcjojZmY5ODAwfS5tYXQtYnV0dG9uLm1hdC13YXJuLC5tYXQtaWNvbi1idXR0b24ubWF0LXdhcm4sLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2Fybntjb2xvcjojZjQ0MzM2fS5tYXQtYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1idXR0b24ubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtYnV0dG9uLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWljb24tYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWljb24tYnV0dG9uLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1pY29uLWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZHtjb2xvcjpyZ2JhKDAsMCwwLC4yNil9Lm1hdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMH0ubWF0LWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwfS5tYXQtYnV0dG9uLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtaWNvbi1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm1hdC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LWljb24tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1zdHJva2VkLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50e29wYWNpdHk6LjE7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3J9Lm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kOiMwMDB9Lm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpe2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1mbGF0LWJ1dHRvbiwubWF0LXJhaXNlZC1idXR0b24sLm1hdC1mYWIsLm1hdC1taW5pLWZhYntjb2xvcjojMjEyMTIxO2JhY2tncm91bmQtY29sb3I6I2ZmZn0ubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5LC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSwubWF0LWZhYi5tYXQtcHJpbWFyeSwubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5e2NvbG9yOiNmZmZ9Lm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LC5tYXQtZmFiLm1hdC1hY2NlbnQsLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50e2NvbG9yOiNmZmZ9Lm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiwubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4sLm1hdC1mYWIubWF0LXdhcm4sLm1hdC1taW5pLWZhYi5tYXQtd2Fybntjb2xvcjojZmZmfS5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXJhaXNlZC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtZmFiLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mYWIubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtZmFiLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mYWIubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LW1pbmktZmFiLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1taW5pLWZhYi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWR7Y29sb3I6cmdiYSgwLDAsMCwuMjYpfS5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5LC5tYXQtZmFiLm1hdC1wcmltYXJ5LC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnl7YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwfS5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCwubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCwubWF0LWZhYi5tYXQtYWNjZW50LC5tYXQtbWluaS1mYWIubWF0LWFjY2VudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDB9Lm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiwubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4sLm1hdC1mYWIubWF0LXdhcm4sLm1hdC1taW5pLWZhYi5tYXQtd2FybntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWZsYXQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mYWIubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWZhYi5tYXQtYWNjZW50Lm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mYWIubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWZhYi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtbWluaS1mYWIubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtbWluaS1mYWIubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LW1pbmktZmFiLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX0ubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfS5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LWZhYi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtbWluaS1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfS5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksLm1hdC1mbGF0LWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1yYWlzZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1yYWlzZWQtYnV0dG9uOm5vdCgubWF0LWJ1dHRvbi1kaXNhYmxlZCk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LXJhaXNlZC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1mYWI6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksLm1hdC1taW5pLWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1mYWI6bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksLm1hdC1taW5pLWZhYjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtZmFiLm1hdC1idXR0b24tZGlzYWJsZWQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksLm1hdC1taW5pLWZhYi5tYXQtYnV0dG9uLWRpc2FibGVkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZSwubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXB7Ym94LXNoYWRvdzowcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJke2JveC1zaGFkb3c6bm9uZX0ubWF0LWJ1dHRvbi10b2dnbGV7Y29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtYnV0dG9uLXRvZ2dsZSAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZHtjb2xvcjojMjEyMTIxO2JhY2tncm91bmQ6I2ZmZn0ubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDB9Lm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlKy5tYXQtYnV0dG9uLXRvZ2dsZXtib3JkZXItbGVmdDpzb2xpZCAxcHggcmdiYSgwLDAsMCwuMTIpfVtkaXI9cnRsXSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUrLm1hdC1idXR0b24tdG9nZ2xle2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLXJpZ2h0OnNvbGlkIDFweCByZ2JhKDAsMCwwLC4xMil9Lm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlKy5tYXQtYnV0dG9uLXRvZ2dsZXtib3JkZXItbGVmdDpub25lO2JvcmRlci1yaWdodDpub25lO2JvcmRlci10b3A6c29saWQgMXB4IHJnYmEoMCwwLDAsLjEyKX0ubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZHtiYWNrZ3JvdW5kLWNvbG9yOiNlMGUwZTA7Y29sb3I6IzYxNjE2MX0ubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJke2NvbG9yOiMyMTIxMjF9Lm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVke2NvbG9yOnJnYmEoMCwwLDAsLjI2KTtiYWNrZ3JvdW5kLWNvbG9yOiNlZWV9Lm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmR7YmFja2dyb3VuZDojZmZmfS5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2Vke2JhY2tncm91bmQtY29sb3I6I2JkYmRiZH0ubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJke2JvcmRlcjpzb2xpZCAxcHggcmdiYSgwLDAsMCwuMTIpfS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50e2xpbmUtaGVpZ2h0OjQ4cHh9Lm1hdC1jYXJke2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojMjEyMTIxfS5tYXQtY2FyZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtY2FyZC5tYXQtY2FyZC1mbGF0Om5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWNhcmQtc3VidGl0bGV7Y29sb3I6IzYxNjE2MX0ubWF0LWNoZWNrYm94LWZyYW1le2JvcmRlci1jb2xvcjojNjE2MTYxfS5tYXQtY2hlY2tib3gtY2hlY2ttYXJre2ZpbGw6I2ZmZn0ubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoe3N0cm9rZTojZmZmICFpbXBvcnRhbnR9Lm1hdC1jaGVja2JveC1taXhlZG1hcmt7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsLm1hdC1jaGVja2JveC1jaGVja2VkLm1hdC1wcmltYXJ5IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDB9Lm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1hY2NlbnQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLC5tYXQtY2hlY2tib3gtY2hlY2tlZC5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDB9Lm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC13YXJuIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn0ubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiNiMGIwYjB9Lm1hdC1jaGVja2JveC1kaXNhYmxlZDpub3QoLm1hdC1jaGVja2JveC1jaGVja2VkKSAubWF0LWNoZWNrYm94LWZyYW1le2JvcmRlci1jb2xvcjojYjBiMGIwfS5tYXQtY2hlY2tib3gtZGlzYWJsZWQgLm1hdC1jaGVja2JveC1sYWJlbHtjb2xvcjojNjE2MTYxfS5tYXQtY2hlY2tib3ggLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDB9Lm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQ6I2Y1N2MwMH0ubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQ6I2ZmOTgwMH0ubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZDojZjQ0MzM2fS5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcHtiYWNrZ3JvdW5kLWNvbG9yOiNlMGUwZTA7Y29sb3I6IzIxMjEyMX0ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLXJlbW92ZXtjb2xvcjojMjEyMTIxO29wYWNpdHk6LjR9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpOmFjdGl2ZXtib3gtc2hhZG93OjBweCAzcHggM3B4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAzcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSAubWF0LWNoaXAtcmVtb3ZlOmhvdmVye29wYWNpdHk6LjU0fS5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1kaXNhYmxlZHtvcGFjaXR5Oi40fS5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDo6YWZ0ZXJ7YmFja2dyb3VuZDojMDAwfS5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDA7Y29sb3I6I2ZmZn0ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1jaGlwLXJlbW92ZXtjb2xvcjojZmZmO29wYWNpdHk6LjR9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX0ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm57YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2O2NvbG9yOiNmZmZ9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtY2hpcC1yZW1vdmV7Y29sb3I6I2ZmZjtvcGFjaXR5Oi40fS5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnR7YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwO2NvbG9yOiNmZmZ9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1jaGlwLXJlbW92ZXtjb2xvcjojZmZmO29wYWNpdHk6LjR9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfS5tYXQtdGFibGV7YmFja2dyb3VuZDojZmZmfS5tYXQtdGFibGUgdGhlYWQsLm1hdC10YWJsZSB0Ym9keSwubWF0LXRhYmxlIHRmb290LG1hdC1oZWFkZXItcm93LG1hdC1yb3csbWF0LWZvb3Rlci1yb3csW21hdC1oZWFkZXItcm93XSxbbWF0LXJvd10sW21hdC1mb290ZXItcm93XSwubWF0LXRhYmxlLXN0aWNreXtiYWNrZ3JvdW5kOmluaGVyaXR9bWF0LXJvdyxtYXQtaGVhZGVyLXJvdyxtYXQtZm9vdGVyLXJvdyx0aC5tYXQtaGVhZGVyLWNlbGwsdGQubWF0LWNlbGwsdGQubWF0LWZvb3Rlci1jZWxse2JvcmRlci1ib3R0b20tY29sb3I6cmdiYSgwLDAsMCwuMTIpfS5tYXQtaGVhZGVyLWNlbGx7Y29sb3I6IzYxNjE2MX0ubWF0LWNlbGwsLm1hdC1mb290ZXItY2VsbHtjb2xvcjojMjEyMTIxfS5tYXQtY2FsZW5kYXItYXJyb3d7ZmlsbDpyZ2JhKDAsMCwwLC41NCl9Lm1hdC1kYXRlcGlja2VyLXRvZ2dsZSwubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLW5leHQtYnV0dG9uLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItcHJldmlvdXMtYnV0dG9ue2NvbG9yOnJnYmEoMCwwLDAsLjU0KX0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcntjb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVse2NvbG9yOiM2MTYxNjF9Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudCwubWF0LWRhdGUtcmFuZ2UtaW5wdXQtc2VwYXJhdG9ye2NvbG9yOiMyMTIxMjE7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZD4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2NvbG9yOiM3NTc1NzV9Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZGF0ZS1yYW5nZS1pbnB1dC1zZXBhcmF0b3J7Y29sb3I6Izc1NzU3NX0ubWF0LWNhbGVuZGFyLWJvZHktaW4tcHJldmlld3tjb2xvcjpyZ2JhKDAsMCwwLC4yNCl9Lm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkPi5tYXQtY2FsZW5kYXItYm9keS10b2RheTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuMTgpfS5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyNDUsMTI0LDAsLjIpfS5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCwubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyNDksMTcxLDAsLjIpfS5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3JlLFtkaXI9cnRsXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2UtZW5kOjpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjQ1LCAxMjQsIDAsIDAuMikgNTAlLCByZ2JhKDI0OSwgMTcxLCAwLCAwLjIpIDUwJSl9Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3JlLFtkaXI9cnRsXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCByZ2JhKDI0NSwgMTI0LCAwLCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfS5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZT4ubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2UubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmFmdGVye2JhY2tncm91bmQ6I2E4ZGFiNX0ubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQsLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQ6IzQ2YTM1ZX0ubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwO2NvbG9yOiNmZmZ9Lm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ1LDEyNCwwLC40KX0ubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2ZmZn0ubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3Zlcj4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpLC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCksLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDUsMTI0LDAsLjMpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50e2JveC1zaGFkb3c6MHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojMjEyMTIxfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjpiZWZvcmV7YmFja2dyb3VuZDpyZ2JhKDI1NSwxNTIsMCwuMil9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyNDksMTcxLDAsLjIpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmUsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3JlLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgW2Rpcj1ydGxdIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMikgNTAlLCByZ2JhKDI0OSwgMTcxLCAwLCAwLjIpIDUwJSl9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2UubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmFmdGVye2JhY2tncm91bmQ6I2E4ZGFiNX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kOiM0NmEzNWV9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwO2NvbG9yOiNmZmZ9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQ+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTUyLDAsLjQpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmZ9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3Zlcj4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKSwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDE1MiwwLC4zKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMjQ0LDY3LDU0LC4yKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2U6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMjQ5LDE3MSwwLC4yKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZSwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI0NCwgNjcsIDU0LCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1lbmQ6OmJlZm9yZSwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgyNDQsIDY3LCA1NCwgMC4yKSA1MCUsIHJnYmEoMjQ5LCAxNzEsIDAsIDAuMikgNTAlKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjphZnRlcntiYWNrZ3JvdW5kOiNhOGRhYjV9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kOiM0NmEzNWV9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNjtjb2xvcjojZmZmfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZD4ubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuNCl9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmZ9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXI+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKSwubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpLC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDY3LDU0LC4zKX0ubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaHtib3gtc2hhZG93OjBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmV7Y29sb3I6I2Y1N2MwMH0ubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtYWNjZW50e2NvbG9yOiNmZjk4MDB9Lm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUubWF0LXdhcm57Y29sb3I6I2Y0NDMzNn0ubWF0LWRhdGUtcmFuZ2UtaW5wdXQtaW5uZXJbZGlzYWJsZWRde2NvbG9yOiM3NTc1NzV9Lm1hdC1kaWFsb2ctY29udGFpbmVye2JveC1zaGFkb3c6MHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzIxMjEyMX0ubWF0LWRpdmlkZXJ7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1kaXZpZGVyLXZlcnRpY2Fse2JvcmRlci1yaWdodC1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1leHBhbnNpb24tcGFuZWx7YmFja2dyb3VuZDojZmZmO2NvbG9yOiMyMTIxMjF9Lm1hdC1leHBhbnNpb24tcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LWFjdGlvbi1yb3d7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSksLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSwubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSl7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4wNCl9QG1lZGlhKGhvdmVyOiBub25lKXsubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXJ7YmFja2dyb3VuZDojZmZmfX0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGV7Y29sb3I6IzIxMjEyMX0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24sLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlcntjb2xvcjojNjE2MTYxfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVde2NvbG9yOnJnYmEoMCwwLDAsLjI2KX0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9ue2NvbG9yOmluaGVyaXR9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVye2hlaWdodDo0OHB4fS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5tYXQtZXhwYW5kZWR7aGVpZ2h0OjY0cHh9Lm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOnJnYmEoOTcsOTcsOTcsLjYpfS5tYXQtaGludHtjb2xvcjpyZ2JhKDk3LDk3LDk3LC42KX0ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOiNmNTdjMDB9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtYWNjZW50e2NvbG9yOiNmZjk4MDB9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtd2Fybntjb2xvcjojZjQ0MzM2fS5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2Vye2NvbG9yOiNmZjk4MDB9Lm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjg3KX0ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDB9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDB9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LXdhcm57YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjojZjU3YzAwfS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOiNmZjk4MDB9Lm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKS5tYXQtd2FybiAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOiNmNDQzMzZ9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOiNmNDQzMzZ9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC1hY2NlbnQsLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXJ7Y29sb3I6I2Y0NDMzNn0ubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC1lcnJvcntjb2xvcjojZjQ0MzM2fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtbGFiZWx7Y29sb3I6IzYxNjE2MX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1oaW50e2NvbG9yOiM2MTYxNjF9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC40Mil9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC40MikgMCUsIHJnYmEoMCwgMCwgMCwgMC40MikgMzMlLCB0cmFuc3BhcmVudCAwJSk7YmFja2dyb3VuZC1zaXplOjRweCAxMDAlO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC40Mil9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjQyKSAwJSwgcmdiYSgwLCAwLCAwLCAwLjQyKSAzMyUsIHRyYW5zcGFyZW50IDAlKTtiYWNrZ3JvdW5kLXNpemU6NHB4IDEwMCU7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjA0KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1mbGV4e2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMDIpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNDIpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOiM3NTc1NzV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5le2NvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNre2NvbG9yOnJnYmEoMCwwLDAsLjg3KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNre2NvbG9yOiNmNTdjMDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZC5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNre2NvbG9yOiNmZjk4MDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZC5tYXQtd2FybiAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tjb2xvcjojZjQ0MzM2fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtaW52YWxpZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNre2NvbG9yOiNmNDQzMzZ9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtbGFiZWx7Y29sb3I6Izc1NzU3NX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5le2NvbG9yOnJnYmEoMCwwLDAsLjA2KX0ubWF0LWljb24ubWF0LXByaW1hcnl7Y29sb3I6I2Y1N2MwMH0ubWF0LWljb24ubWF0LWFjY2VudHtjb2xvcjojZmY5ODAwfS5tYXQtaWNvbi5tYXQtd2Fybntjb2xvcjojZjQ0MzM2fS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7Y29sb3I6IzYxNjE2MX0ubWF0LWlucHV0LWVsZW1lbnQ6ZGlzYWJsZWQsLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjojNzU3NTc1fS5tYXQtaW5wdXQtZWxlbWVudHtjYXJldC1jb2xvcjojZjU3YzAwfS5tYXQtaW5wdXQtZWxlbWVudDo6cGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSg5Nyw5Nyw5NywuNDIpfS5tYXQtaW5wdXQtZWxlbWVudDo6LW1vei1wbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDk3LDk3LDk3LC40Mil9Lm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnJnYmEoOTcsOTcsOTcsLjQyKX0ubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnJnYmEoOTcsOTcsOTcsLjQyKX0ubWF0LWZvcm0tZmllbGQubWF0LWFjY2VudCAubWF0LWlucHV0LWVsZW1lbnR7Y2FyZXQtY29sb3I6I2ZmOTgwMH0ubWF0LWZvcm0tZmllbGQubWF0LXdhcm4gLm1hdC1pbnB1dC1lbGVtZW50LC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtaW5wdXQtZWxlbWVudHtjYXJldC1jb2xvcjojZjQ0MzM2fS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjojZjQ0MzM2fS5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVte2NvbG9yOiMyMTIxMjF9Lm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbntjb2xvcjojMjEyMTIxfS5tYXQtbGlzdC1iYXNlIC5tYXQtc3ViaGVhZGVye2NvbG9yOiM2MTYxNjF9Lm1hdC1saXN0LWl0ZW0tZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjojZWVlfS5tYXQtbGlzdC1vcHRpb246aG92ZXIsLm1hdC1saXN0LW9wdGlvbjpmb2N1cywubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXMsLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpob3ZlciwubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3Vze2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMDQpfS5tYXQtbGlzdC1zaW5nbGUtc2VsZWN0ZWQtb3B0aW9uLC5tYXQtbGlzdC1zaW5nbGUtc2VsZWN0ZWQtb3B0aW9uOmhvdmVyLC5tYXQtbGlzdC1zaW5nbGUtc2VsZWN0ZWQtb3B0aW9uOmZvY3Vze2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMTIpfS5tYXQtbWVudS1wYW5lbHtiYWNrZ3JvdW5kOiNmZmZ9Lm1hdC1tZW51LXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtbWVudS1pdGVte2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6IzIxMjEyMX0ubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0sLm1hdC1tZW51LWl0ZW1bZGlzYWJsZWRdIC5tYXQtbWVudS1zdWJtZW51LWljb24sLm1hdC1tZW51LWl0ZW1bZGlzYWJsZWRdIC5tYXQtaWNvbi1uby1jb2xvcntjb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLC5tYXQtbWVudS1zdWJtZW51LWljb257Y29sb3I6cmdiYSgwLDAsMCwuNTQpfS5tYXQtbWVudS1pdGVtOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwubWF0LW1lbnUtaXRlbS5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdChbZGlzYWJsZWRdKSwubWF0LW1lbnUtaXRlbS5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksLm1hdC1tZW51LWl0ZW0taGlnaGxpZ2h0ZWQ6bm90KFtkaXNhYmxlZF0pe2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMDQpfS5tYXQtcGFnaW5hdG9ye2JhY2tncm91bmQ6I2ZmZn0ubWF0LXBhZ2luYXRvciwubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlcntjb2xvcjojNjE2MTYxfS5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCwubWF0LXBhZ2luYXRvci1pbmNyZW1lbnR7Ym9yZGVyLXRvcDoycHggc29saWQgcmdiYSgwLDAsMCwuNTQpO2JvcmRlci1yaWdodDoycHggc29saWQgcmdiYSgwLDAsMCwuNTQpfS5tYXQtcGFnaW5hdG9yLWZpcnN0LC5tYXQtcGFnaW5hdG9yLWxhc3R7Ym9yZGVyLXRvcDoycHggc29saWQgcmdiYSgwLDAsMCwuNTQpfS5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCwubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQsLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZmlyc3QsLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItbGFzdHtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtcGFnaW5hdG9yLWNvbnRhaW5lcnttaW4taGVpZ2h0OjU2cHh9Lm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZHtmaWxsOiNmZGRlYmZ9Lm1hdC1wcm9ncmVzcy1iYXItYnVmZmVye2JhY2tncm91bmQtY29sb3I6I2ZkZGViZn0ubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDB9Lm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5ke2ZpbGw6I2ZmZTViZn0ubWF0LXByb2dyZXNzLWJhci5tYXQtYWNjZW50IC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmU1YmZ9Lm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDB9Lm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZHtmaWxsOiNmY2QwY2R9Lm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVye2JhY2tncm91bmQtY29sb3I6I2ZjZDBjZH0ubWF0LXByb2dyZXNzLWJhci5tYXQtd2FybiAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC1wcm9ncmVzcy1zcGlubmVyIGNpcmNsZSwubWF0LXNwaW5uZXIgY2lyY2xle3N0cm9rZTojZjU3YzAwfS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSwubWF0LXNwaW5uZXIubWF0LWFjY2VudCBjaXJjbGV7c3Ryb2tlOiNmZjk4MDB9Lm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSwubWF0LXNwaW5uZXIubWF0LXdhcm4gY2lyY2xle3N0cm9rZTojZjQ0MzM2fS5tYXQtcmFkaW8tb3V0ZXItY2lyY2xle2JvcmRlci1jb2xvcjojNjE2MTYxfS5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xle2JvcmRlci1jb2xvcjojZjU3YzAwfS5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnk6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwfS5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGV7Ym9yZGVyLWNvbG9yOiNmZjk4MDB9Lm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSwubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxle2JhY2tncm91bmQtY29sb3I6I2ZmOTgwMH0ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2Fybi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZXtib3JkZXItY29sb3I6I2Y0NDMzNn0ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSwubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2Fybi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxle2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn0ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUsLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xle2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8taW5uZXItY2lyY2xle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnR7Y29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjojMDAwfS5tYXQtc2VsZWN0LXZhbHVle2NvbG9yOiMyMTIxMjF9Lm1hdC1zZWxlY3QtcGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSg5Nyw5Nyw5NywuNDIpfS5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LXZhbHVle2NvbG9yOiM3NTc1NzV9Lm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6IzYxNjE2MX0ubWF0LXNlbGVjdC1wYW5lbHtiYWNrZ3JvdW5kOiNmZmZ9Lm1hdC1zZWxlY3QtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1zZWxlY3QtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSl7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93e2NvbG9yOiNmNTdjMDB9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6I2ZmOTgwMH0ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6I2Y0NDMzNn0ubWF0LWZvcm0tZmllbGQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1pbnZhbGlkIC5tYXQtc2VsZWN0LWFycm93e2NvbG9yOiNmNDQzMzZ9Lm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6Izc1NzU3NX0ubWF0LWRyYXdlci1jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMyMTIxMjF9Lm1hdC1kcmF3ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMyMTIxMjF9Lm1hdC1kcmF3ZXIubWF0LWRyYXdlci1wdXNoe2JhY2tncm91bmQtY29sb3I6I2ZmZn0ubWF0LWRyYXdlcjpub3QoLm1hdC1kcmF3ZXItc2lkZSl7Ym94LXNoYWRvdzowcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Lm1hdC1kcmF3ZXItc2lkZXtib3JkZXItcmlnaHQ6c29saWQgMXB4IHJnYmEoMCwwLDAsLjEyKX0ubWF0LWRyYXdlci1zaWRlLm1hdC1kcmF3ZXItZW5ke2JvcmRlci1sZWZ0OnNvbGlkIDFweCByZ2JhKDAsMCwwLC4xMik7Ym9yZGVyLXJpZ2h0Om5vbmV9W2Rpcj1ydGxdIC5tYXQtZHJhd2VyLXNpZGV7Ym9yZGVyLWxlZnQ6c29saWQgMXB4IHJnYmEoMCwwLDAsLjEyKTtib3JkZXItcmlnaHQ6bm9uZX1bZGlyPXJ0bF0gLm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZHtib3JkZXItbGVmdDpub25lO2JvcmRlci1yaWdodDpzb2xpZCAxcHggcmdiYSgwLDAsMCwuMTIpfS5tYXQtZHJhd2VyLWJhY2tkcm9wLm1hdC1kcmF3ZXItc2hvd257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC42KX0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDB9Lm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTUyLDAsLjU0KX0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2ZmOTgwMH0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDB9Lm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDUsMTI0LDAsLjU0KX0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMH0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDQsNjcsNTQsLjU0KX0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn0ubWF0LXNsaWRlLXRvZ2dsZTpub3QoLm1hdC1jaGVja2VkKSAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6IzAwMH0ubWF0LXNsaWRlLXRvZ2dsZS10aHVtYntib3gtc2hhZG93OjBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYX0ubWF0LXNsaWRlLXRvZ2dsZS1iYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjI2KX0ubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdHJhY2stZmlsbCwubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWIsLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMH0ubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dHtjb2xvcjojZmZmfS5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci1mb2N1cy1yaW5ne2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDUsMTI0LDAsLjIpfS5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWIsLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwfS5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHR7Y29sb3I6I2ZmZn0ubWF0LWFjY2VudCAubWF0LXNsaWRlci1mb2N1cy1yaW5ne2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTUyLDAsLjIpfS5tYXQtd2FybiAubWF0LXNsaWRlci10cmFjay1maWxsLC5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYiwubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fS5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e2NvbG9yOiNmZmZ9Lm1hdC13YXJuIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuMil9Lm1hdC1zbGlkZXI6aG92ZXIgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCwubWF0LXNsaWRlci5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stZmlsbCwubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjI2KX0ubWF0LXNsaWRlci1kaXNhYmxlZDpob3ZlciAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMjYpfS5tYXQtc2xpZGVyLW1pbi12YWx1ZSAubWF0LXNsaWRlci1mb2N1cy1yaW5ne2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMTIpfS5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWIsLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYi1sYWJlbHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjg3KX0ubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4yNil9Lm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKSAubWF0LXNsaWRlci10aHVtYntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuMjYpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3ZlciAubWF0LXNsaWRlci10aHVtYiwubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1ie2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3Zlci5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iLC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykuY2RrLWZvY3VzZWQubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuMjYpfS5tYXQtc2xpZGVyLWhhcy10aWNrcyAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNyl9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrc3tiYWNrZ3JvdW5kLWltYWdlOnJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC43KSwgcmdiYSgwLCAwLCAwLCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtaW1hZ2U6LW1vei1yZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDAuMDAwMWRlZywgcmdiYSgwLCAwLCAwLCAwLjcpLCByZ2JhKDAsIDAsIDAsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCl9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdGlja3N7YmFja2dyb3VuZC1pbWFnZTpyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwLjcpLCByZ2JhKDAsIDAsIDAsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCl9Lm1hdC1zdGVwLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZCwubWF0LXN0ZXAtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQsLm1hdC1zdGVwLWhlYWRlcjpob3Zlcjpub3QoW2FyaWEtZGlzYWJsZWRdKSwubWF0LXN0ZXAtaGVhZGVyOmhvdmVyW2FyaWEtZGlzYWJsZWQ9ZmFsc2Vde2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMDQpfS5tYXQtc3RlcC1oZWFkZXI6aG92ZXJbYXJpYS1kaXNhYmxlZD10cnVlXXtjdXJzb3I6ZGVmYXVsdH1AbWVkaWEoaG92ZXI6IG5vbmUpey5tYXQtc3RlcC1oZWFkZXI6aG92ZXJ7YmFja2dyb3VuZDpub25lfX0ubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbCwubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1vcHRpb25hbHtjb2xvcjojNjE2MTYxfS5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb257YmFja2dyb3VuZC1jb2xvcjojNjE2MTYxO2NvbG9yOiNmZmZ9Lm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCwubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0e2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMDtjb2xvcjojZmZmfS5tYXQtc3RlcC1oZWFkZXIubWF0LWFjY2VudCAubWF0LXN0ZXAtaWNvbntjb2xvcjojZmZmfS5tYXQtc3RlcC1oZWFkZXIubWF0LWFjY2VudCAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCwubWF0LXN0ZXAtaGVhZGVyLm1hdC1hY2NlbnQgLm1hdC1zdGVwLWljb24tc3RhdGUtZG9uZSwubWF0LXN0ZXAtaGVhZGVyLm1hdC1hY2NlbnQgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDA7Y29sb3I6I2ZmZn0ubWF0LXN0ZXAtaGVhZGVyLm1hdC13YXJuIC5tYXQtc3RlcC1pY29ue2NvbG9yOiNmZmZ9Lm1hdC1zdGVwLWhlYWRlci5tYXQtd2FybiAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCwubWF0LXN0ZXAtaGVhZGVyLm1hdC13YXJuIC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsLm1hdC1zdGVwLWhlYWRlci5tYXQtd2FybiAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0e2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNjtjb2xvcjojZmZmfS5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZXJyb3J7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtjb2xvcjojZjQ0MzM2fS5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZXtjb2xvcjojMjEyMTIxfS5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWVycm9ye2NvbG9yOiNmNDQzMzZ9Lm1hdC1zdGVwcGVyLWhvcml6b250YWwsLm1hdC1zdGVwcGVyLXZlcnRpY2Fse2JhY2tncm91bmQtY29sb3I6I2ZmZn0ubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZTo6YmVmb3Jle2JvcmRlci1sZWZ0LWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmJlZm9yZSwubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmFmdGVyLC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmV7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVye2hlaWdodDo3MnB4fS5tYXQtc3RlcHBlci1sYWJlbC1wb3NpdGlvbi1ib3R0b20gLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyLC5tYXQtdmVydGljYWwtc3RlcHBlci1oZWFkZXJ7cGFkZGluZzoyNHB4IDI0cHh9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsLWxpbmU6OmJlZm9yZXt0b3A6LTE2cHg7Ym90dG9tOi0xNnB4fS5tYXQtc3RlcHBlci1sYWJlbC1wb3NpdGlvbi1ib3R0b20gLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjphZnRlciwubWF0LXN0ZXBwZXItbGFiZWwtcG9zaXRpb24tYm90dG9tIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YmVmb3Jle3RvcDozNnB4fS5tYXQtc3RlcHBlci1sYWJlbC1wb3NpdGlvbi1ib3R0b20gLm1hdC1zdGVwcGVyLWhvcml6b250YWwtbGluZXt0b3A6MzZweH0ubWF0LXNvcnQtaGVhZGVyLWFycm93e2NvbG9yOiM2MTYxNjF9Lm1hdC10YWItbmF2LWJhciwubWF0LXRhYi1oZWFkZXJ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwuMTIpfS5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1uYXYtYmFyLC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1oZWFkZXJ7Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgwLDAsMCwuMTIpO2JvcmRlci1ib3R0b206bm9uZX0ubWF0LXRhYi1sYWJlbCwubWF0LXRhYi1saW5re2NvbG9yOiMyMTIxMjF9Lm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWR7Y29sb3I6Izc1NzU3NX0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue2JvcmRlci1jb2xvcjojMjEyMTIxfS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLWNvbG9yOiM3NTc1NzV9Lm1hdC10YWItZ3JvdXBbY2xhc3MqPW1hdC1iYWNrZ3JvdW5kLV0gLm1hdC10YWItaGVhZGVyLC5tYXQtdGFiLW5hdi1iYXJbY2xhc3MqPW1hdC1iYWNrZ3JvdW5kLV17Ym9yZGVyLWJvdHRvbTpub25lO2JvcmRlci10b3A6bm9uZX0ubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwxNjcsMzgsLjMpfS5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhciwubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDB9Lm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWluay1iYXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyMjQsMTc4LC4zKX0ubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciwubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC1pbmstYmFye2JhY2tncm91bmQtY29sb3I6I2ZmOTgwMH0ubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtaW5rLWJhciwubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LWluay1iYXIsLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWluay1iYXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDIwNSwyMTAsLjMpfS5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtaW5rLWJhciwubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtaW5rLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC10YWItZ3JvdXAubWF0LXdhcm4ubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4ubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC1pbmstYmFyLC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4ubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWluay1iYXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwxNjcsMzgsLjMpfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb257YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluaywubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5re2NvbG9yOiNmZmZ9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KX0ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3Jle2JvcmRlci1jb2xvcjojZmZmfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEyKX0ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDIyNCwxNzgsLjMpfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb257YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmssLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmt7Y29sb3I6I2ZmZn0ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmV7Ym9yZGVyLWNvbG9yOiNmZmZ9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQpfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDIwNSwyMTAsLjMpfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb257YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluaywubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5re2NvbG9yOiNmZmZ9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KX0ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3Jle2JvcmRlci1jb2xvcjojZmZmfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEyKX0ubWF0LXRvb2xiYXJ7YmFja2dyb3VuZDojZjU3YzAwO2NvbG9yOiMyMTIxMjF9Lm1hdC10b29sYmFyLm1hdC1wcmltYXJ5e2JhY2tncm91bmQ6I2Y1N2MwMDtjb2xvcjojZmZmfS5tYXQtdG9vbGJhci5tYXQtYWNjZW50e2JhY2tncm91bmQ6I2ZmOTgwMDtjb2xvcjojZmZmfS5tYXQtdG9vbGJhci5tYXQtd2FybntiYWNrZ3JvdW5kOiNmNDQzMzY7Y29sb3I6I2ZmZn0ubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSwubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSwubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3J9Lm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtdmFsdWUsLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LWFycm93LC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6aW5oZXJpdH0ubWF0LXRvb2xiYXIgLm1hdC1pbnB1dC1lbGVtZW50e2NhcmV0LWNvbG9yOmN1cnJlbnRDb2xvcn0ubWF0LXRvb2xiYXItbXVsdGlwbGUtcm93c3ttaW4taGVpZ2h0OjY0cHh9Lm1hdC10b29sYmFyLXJvdywubWF0LXRvb2xiYXItc2luZ2xlLXJvd3toZWlnaHQ6NjRweH1AbWVkaWEobWF4LXdpZHRoOiA1OTlweCl7Lm1hdC10b29sYmFyLW11bHRpcGxlLXJvd3N7bWluLWhlaWdodDo1NnB4fS5tYXQtdG9vbGJhci1yb3csLm1hdC10b29sYmFyLXNpbmdsZS1yb3d7aGVpZ2h0OjU2cHh9fS5tYXQtdG9vbHRpcHtiYWNrZ3JvdW5kOnJnYmEoOTcsOTcsOTcsLjkpfS5tYXQtdHJlZXtiYWNrZ3JvdW5kOiNmZmZ9Lm1hdC10cmVlLW5vZGUsLm1hdC1uZXN0ZWQtdHJlZS1ub2Rle2NvbG9yOiMyMTIxMjF9Lm1hdC10cmVlLW5vZGV7bWluLWhlaWdodDo0OHB4fS5tYXQtc25hY2stYmFyLWNvbnRhaW5lcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KTtiYWNrZ3JvdW5kOiMzMjMyMzI7Ym94LXNoYWRvdzowcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbntjb2xvcjojZmY5ODAwfWJvZHl7b3ZlcmZsb3c6aGlkZGVufS5jZGstb3ZlcmxheS1jb250YWluZXJ7Y29udGFpbjpzdHJpY3R9YTpub3QoLm1hdC1idXR0b24sLm1hdC1pY29uLWJ1dHRvbil7Y29sb3I6IzE5NzZkMn1hOm5vdCgubWF0LWJ1dHRvbiwubWF0LWljb24tYnV0dG9uKTp2aXNpdGVke2NvbG9yOiM3YjFmYTJ9Ym9keS5kYXJrLW1vZGV7YmFja2dyb3VuZC1jb2xvcjojMzAzMDMwfWJvZHkuZGFyay1tb2RlIGE6bm90KC5tYXQtYnV0dG9uLC5tYXQtaWNvbi1idXR0b24pe2NvbG9yOiM0MmE1ZjV9Ym9keS5kYXJrLW1vZGUgYTpub3QoLm1hdC1idXR0b24sLm1hdC1pY29uLWJ1dHRvbik6dmlzaXRlZHtjb2xvcjojYmE2OGM4fWJvZHkuZGFyay1tb2RlIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LW9wdGlvbntjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtb3B0aW9uOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC1vcHRpb246Zm9jdXM6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA0KX1ib2R5LmRhcmstbW9kZSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMDQpfWJvZHkuZGFyay1tb2RlIC5tYXQtb3B0aW9uLm1hdC1hY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNCk7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LW9wdGlvbi5tYXQtb3B0aW9uLWRpc2FibGVke2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKXtjb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2NvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1vcHRncm91cC1sYWJlbHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LW9wdGdyb3VwLWRpc2FibGVkIC5tYXQtb3B0Z3JvdXAtbGFiZWx7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1wc2V1ZG8tY2hlY2tib3h7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVye2NvbG9yOiMzMDMwMzB9Ym9keS5kYXJrLW1vZGUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWR7Y29sb3I6IzY4Njg2OH1ib2R5LmRhcmstbW9kZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxib2R5LmRhcmstbW9kZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZXtiYWNrZ3JvdW5kOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxib2R5LmRhcmstbW9kZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLGJvZHkuZGFyay1tb2RlIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZXtiYWNrZ3JvdW5kOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsYm9keS5kYXJrLW1vZGUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGV7YmFja2dyb3VuZDojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWR7YmFja2dyb3VuZDojNjg2ODY4fWJvZHkuZGFyay1tb2RlIC5tYXQtYXBwLWJhY2tncm91bmQsYm9keS5kYXJrLW1vZGUubWF0LWFwcC1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6IzMwMzAzMDtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXowe2JveC1zaGFkb3c6MHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16MXtib3gtc2hhZG93OjBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoye2JveC1zaGFkb3c6MHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejN7Ym94LXNoYWRvdzowcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggM3B4IDRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16NHtib3gtc2hhZG93OjBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16NXtib3gtc2hhZG93OjBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCA1cHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggMTRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16Nntib3gtc2hhZG93OjBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejd7Ym94LXNoYWRvdzowcHggNHB4IDVweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggN3B4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDJweCAxNnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXo4e2JveC1zaGFkb3c6MHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16OXtib3gtc2hhZG93OjBweCA1cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCA5cHggMTJweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggM3B4IDE2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejEwe2JveC1zaGFkb3c6MHB4IDZweCA2cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDEwcHggMTRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNHB4IDE4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejExe2JveC1zaGFkb3c6MHB4IDZweCA3cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDExcHggMTVweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejEye2JveC1zaGFkb3c6MHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejEze2JveC1zaGFkb3c6MHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDEzcHggMTlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNXB4IDI0cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejE0e2JveC1zaGFkb3c6MHB4IDdweCA5cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDE0cHggMjFweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejE1e2JveC1zaGFkb3c6MHB4IDhweCA5cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDE1cHggMjJweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNnB4IDI4cHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejE2e2JveC1zaGFkb3c6MHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoxN3tib3gtc2hhZG93OjBweCA4cHggMTFweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMTdweCAyNnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16MTh7Ym94LXNoYWRvdzowcHggOXB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDE4cHggMjhweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggN3B4IDM0cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejE5e2JveC1zaGFkb3c6MHB4IDlweCAxMnB4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxOXB4IDI5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDdweCAzNnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoyMHtib3gtc2hhZG93OjBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDIwcHggMzFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejIxe2JveC1zaGFkb3c6MHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMjFweCAzM3B4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA4cHggNDBweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWVsZXZhdGlvbi16MjJ7Ym94LXNoYWRvdzowcHggMTBweCAxNHB4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAyMnB4IDM1cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDhweCA0MnB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZWxldmF0aW9uLXoyM3tib3gtc2hhZG93OjBweCAxMXB4IDE0cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDIzcHggMzZweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1lbGV2YXRpb24tejI0e2JveC1zaGFkb3c6MHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKX0ubWF0LXRoZW1lLWxvYWRlZC1tYXJrZXJ7ZGlzcGxheTpub25lfWJvZHkuZGFyay1tb2RlIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVse2JhY2tncm91bmQ6IzQyNDI0Mjtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpe2JhY2tncm91bmQ6IzQyNDI0Mn1ib2R5LmRhcmstbW9kZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1iYWRnZS1jb250ZW50e2NvbG9yOiNmZmY7YmFja2dyb3VuZDojZWY2YzAwfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgYm9keS5kYXJrLW1vZGUgLm1hdC1iYWRnZS1jb250ZW50e291dGxpbmU6c29saWQgMXB4O2JvcmRlci1yYWRpdXM6MH1ib2R5LmRhcmstbW9kZSAubWF0LWJhZGdlLWFjY2VudCAubWF0LWJhZGdlLWNvbnRlbnR7YmFja2dyb3VuZDojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1iYWRnZS13YXJuIC5tYXQtYmFkZ2UtY29udGVudHtjb2xvcjojZmZmO2JhY2tncm91bmQ6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWJhZGdlLWRpc2FibGVkIC5tYXQtYmFkZ2UtY29udGVudHtiYWNrZ3JvdW5kOiM2ZTZlNmU7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZSAubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJ7Ym94LXNoYWRvdzowcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7YmFja2dyb3VuZDojNDI0MjQyO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24sYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbixib2R5LmRhcmstbW9kZSAubWF0LXN0cm9rZWQtYnV0dG9ue2NvbG9yOmluaGVyaXQ7YmFja2dyb3VuZDp0cmFuc3BhcmVudH1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSxib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5LGJvZHkuZGFyay1tb2RlIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnl7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCxib2R5LmRhcmstbW9kZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnR7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtd2Fybixib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuLGJvZHkuZGFyay1tb2RlIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm57Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtaWNvbi1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSxib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksYm9keS5kYXJrLW1vZGUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksYm9keS5kYXJrLW1vZGUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LGJvZHkuZGFyay1tb2RlIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LGJvZHkuZGFyay1tb2RlIC5tYXQtaWNvbi1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LGJvZHkuZGFyay1tb2RlIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1zdHJva2VkLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50e29wYWNpdHk6LjE7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3J9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpe2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbixib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b24sYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzQyNDI0Mn1ib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5LGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSxib2R5LmRhcmstbW9kZSAubWF0LWZhYi5tYXQtcHJpbWFyeSxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5e2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC1hY2NlbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50e2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2Fybixib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4sYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LXdhcm4sYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtd2Fybntjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4ubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LWFjY2VudC5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtYnV0dG9uLWRpc2FibGVkLm1hdC1idXR0b24tZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSxib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LXByaW1hcnksYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC1hY2NlbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50e2JhY2tncm91bmQtY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2Fybixib2R5LmRhcmstbW9kZSAubWF0LWZhYi5tYXQtd2Fybixib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC13YXJue2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtZmxhdC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWZhYi5tYXQtcHJpbWFyeS5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC1hY2NlbnQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWZhYi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC1idXR0b24tZGlzYWJsZWQubWF0LWJ1dHRvbi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50Lm1hdC1idXR0b24tZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtd2Fybi5tYXQtYnV0dG9uLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtbWluaS1mYWIubWF0LWJ1dHRvbi1kaXNhYmxlZC5tYXQtYnV0dG9uLWRpc2FibGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfWJvZHkuZGFyay1tb2RlIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1taW5pLWZhYi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSxib2R5LmRhcmstbW9kZSAubWF0LWZsYXQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LXJhaXNlZC1idXR0b246bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWZhYjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiOm5vdCgubWF0LWJ1dHRvbi1kaXNhYmxlZCk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1mYWIubWF0LWJ1dHRvbi1kaXNhYmxlZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSxib2R5LmRhcmstbW9kZSAubWF0LW1pbmktZmFiLm1hdC1idXR0b24tZGlzYWJsZWQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLGJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cHtib3gtc2hhZG93OjBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsYm9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmR7Ym94LXNoYWRvdzpub25lfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmR7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSsubWF0LWJ1dHRvbi10b2dnbGV7Ym9yZGVyLWxlZnQ6c29saWQgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjEyKX1ib2R5LmRhcmstbW9kZSBbZGlyPXJ0bF0gLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlKy5tYXQtYnV0dG9uLXRvZ2dsZXtib3JkZXItbGVmdDpub25lO2JvcmRlci1yaWdodDpzb2xpZCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1idXR0b24tdG9nZ2xlLXZlcnRpY2FsIC5tYXQtYnV0dG9uLXRvZ2dsZSsubWF0LWJ1dHRvbi10b2dnbGV7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItcmlnaHQ6bm9uZTtib3JkZXItdG9wOnNvbGlkIDFweCByZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWR7YmFja2dyb3VuZC1jb2xvcjojMjEyMTIxO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmR7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMyk7YmFja2dyb3VuZC1jb2xvcjojMDAwfWJvZHkuZGFyay1tb2RlIC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJke2JhY2tncm91bmQ6IzQyNDI0Mn1ib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZHtiYWNrZ3JvdW5kLWNvbG9yOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxib2R5LmRhcmstbW9kZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZHtib3JkZXI6c29saWQgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWNhcmR7YmFja2dyb3VuZDojNDI0MjQyO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYXJkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYXJkLm1hdC1jYXJkLWZsYXQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FyZC1zdWJ0aXRsZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94LWZyYW1le2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94LWNoZWNrbWFya3tmaWxsOiMzMDMwMzB9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aHtzdHJva2U6IzMwMzAzMCAhaW1wb3J0YW50fWJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtbWl4ZWRtYXJre2JhY2tncm91bmQtY29sb3I6IzMwMzAzMH1ib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLGJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtY2hlY2tlZC5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCxib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsYm9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveC1jaGVja2VkLm1hdC13YXJuIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveC1kaXNhYmxlZC5tYXQtY2hlY2tib3gtY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsYm9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveC1kaXNhYmxlZC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjojNjg2ODY4fWJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQ6bm90KC5tYXQtY2hlY2tib3gtY2hlY2tlZCkgLm1hdC1jaGVja2JveC1mcmFtZXtib3JkZXItY29sb3I6IzY4Njg2OH1ib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94LWRpc2FibGVkIC5tYXQtY2hlY2tib3gtbGFiZWx7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZDojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZDojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwe2JhY2tncm91bmQtY29sb3I6IzYxNjE2MTtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcCAubWF0LWNoaXAtcmVtb3Zle2NvbG9yOiNmZmY7b3BhY2l0eTouNH1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCk6YWN0aXZle2JveC1zaGFkb3c6MHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpIC5tYXQtY2hpcC1yZW1vdmU6aG92ZXJ7b3BhY2l0eTouNTR9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLWRpc2FibGVke29wYWNpdHk6LjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOjphZnRlcntiYWNrZ3JvdW5kOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5e2JhY2tncm91bmQtY29sb3I6I2VmNmMwMDtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSAubWF0LWNoaXAtcmVtb3Zle2NvbG9yOiNmZmY7b3BhY2l0eTouNH1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzY7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm4gLm1hdC1jaGlwLXJlbW92ZXtjb2xvcjojZmZmO29wYWNpdHk6LjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDA7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LWNoaXAtcmVtb3Zle2NvbG9yOiNmZmY7b3BhY2l0eTouNH1ib2R5LmRhcmstbW9kZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWJsZXtiYWNrZ3JvdW5kOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWJsZSB0aGVhZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYmxlIHRib2R5LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFibGUgdGZvb3QsYm9keS5kYXJrLW1vZGUgbWF0LWhlYWRlci1yb3csYm9keS5kYXJrLW1vZGUgbWF0LXJvdyxib2R5LmRhcmstbW9kZSBtYXQtZm9vdGVyLXJvdyxib2R5LmRhcmstbW9kZSBbbWF0LWhlYWRlci1yb3ddLGJvZHkuZGFyay1tb2RlIFttYXQtcm93XSxib2R5LmRhcmstbW9kZSBbbWF0LWZvb3Rlci1yb3ddLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFibGUtc3RpY2t5e2JhY2tncm91bmQ6aW5oZXJpdH1ib2R5LmRhcmstbW9kZSBtYXQtcm93LGJvZHkuZGFyay1tb2RlIG1hdC1oZWFkZXItcm93LGJvZHkuZGFyay1tb2RlIG1hdC1mb290ZXItcm93LGJvZHkuZGFyay1tb2RlIHRoLm1hdC1oZWFkZXItY2VsbCxib2R5LmRhcmstbW9kZSB0ZC5tYXQtY2VsbCxib2R5LmRhcmstbW9kZSB0ZC5tYXQtZm9vdGVyLWNlbGx7Ym9yZGVyLWJvdHRvbS1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1oZWFkZXItY2VsbHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWNlbGwsYm9keS5kYXJrLW1vZGUgLm1hdC1mb290ZXItY2VsbHtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYXJyb3d7ZmlsbDojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1uZXh0LWJ1dHRvbixib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLXByZXZpb3VzLWJ1dHRvbntjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyLWRpdmlkZXI6OmFmdGVye2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZS1yYW5nZS1pbnB1dC1zZXBhcmF0b3J7Y29sb3I6I2ZmZjtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1kYXRlLXJhbmdlLWlucHV0LXNlcGFyYXRvcntjb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1pbi1wcmV2aWV3e2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjI0KX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZD4ubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCl7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjMpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyMzksMTA4LDAsLjIpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCxib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyNDksMTcxLDAsLjIpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIFtkaXI9cnRsXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2UtZW5kOjpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjM5LCAxMDgsIDAsIDAuMikgNTAlLCByZ2JhKDI0OSwgMTcxLCAwLCAwLjIpIDUwJSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIFtkaXI9cnRsXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCByZ2JhKDIzOSwgMTA4LCAwLCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfWJvZHkuZGFyay1tb2RlIC5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZT4ubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsYm9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2UubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmFmdGVye2JhY2tncm91bmQ6I2E4ZGFiNX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQ6IzQ2YTM1ZX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LDEwOCwwLC40KX1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3Zlcj4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpLGJvZHkuZGFyay1tb2RlIC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCksYm9keS5kYXJrLW1vZGUgLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyMzksMTA4LDAsLjMpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50e2JveC1zaGFkb3c6MHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO2JhY2tncm91bmQtY29sb3I6IzQyNDI0Mjtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjpiZWZvcmV7YmFja2dyb3VuZDpyZ2JhKDIzOSwxMDgsMCwuMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZTo6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyNDksMTcxLDAsLjIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDIzOSwgMTA4LCAwLCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgW2Rpcj1ydGxdIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHJnYmEoMjM5LCAxMDgsIDAsIDAuMikgNTAlLCByZ2JhKDI0OSwgMTcxLCAwLCAwLjIpIDUwJSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2UubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmFmdGVye2JhY2tncm91bmQ6I2E4ZGFiNX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kOiM0NmEzNWV9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQ+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgyMzksMTA4LDAsLjQpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3Zlcj4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKSxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LDEwOCwwLC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMjQ0LDY3LDU0LC4yKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwsYm9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWluLWNvbXBhcmlzb24tcmFuZ2U6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMjQ5LDE3MSwwLC4yKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2Utc3RhcnQ6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLWVuZDo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI0NCwgNjcsIDU0LCAwLjIpIDUwJSwgcmdiYSgyNDksIDE3MSwgMCwgMC4yKSA1MCUpfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1lbmQ6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiBbZGlyPXJ0bF0gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgyNDQsIDY3LCA1NCwgMC4yKSA1MCUsIHJnYmEoMjQ5LCAxNzEsIDAsIDAuMikgNTAlKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U+Lm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlOjphZnRlcntiYWNrZ3JvdW5kOiNhOGRhYjV9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1pbi1jb21wYXJpc29uLXJhbmdlPi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kOiM0NmEzNWV9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNjtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZD4ubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuNCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXI+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKSxib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1pZGVudGljYWwpLGJvZHkuZGFyay1tb2RlIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmU+Lm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDY3LDU0LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaHtib3gtc2hhZG93OjBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmV7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtYWNjZW50e2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUubWF0LXdhcm57Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWRhdGUtcmFuZ2UtaW5wdXQtaW5uZXJbZGlzYWJsZWRde2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGUgLm1hdC1kaWFsb2ctY29udGFpbmVye2JveC1zaGFkb3c6MHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtiYWNrZ3JvdW5kOiM0MjQyNDI7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWRpdmlkZXJ7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1kaXZpZGVyLXZlcnRpY2Fse2JvcmRlci1yaWdodC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24tcGFuZWx7YmFja2dyb3VuZDojNDI0MjQyO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWFjdGlvbi1yb3d7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSksYm9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSxib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSl7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNCl9QG1lZGlhKGhvdmVyOiBub25lKXtib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXJ7YmFja2dyb3VuZDojNDI0MjQyfX1ib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGV7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24sYm9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsYm9keS5kYXJrLW1vZGUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9ue2NvbG9yOmluaGVyaXR9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtaGludHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtYWNjZW50e2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtd2Fybntjb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2Vye2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnR7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC13YXJue2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbHtjb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtYWNjZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2Vye2NvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnR7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZXJyb3J7Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWhpbnR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMzMlLCB0cmFuc3BhcmVudCAwJSk7YmFja2dyb3VuZC1zaXplOjRweCAxMDAlO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14fWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAzMyUsIHRyYW5zcGFyZW50IDAlKTtiYWNrZ3JvdW5kLXNpemU6NHB4IDEwMCU7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXh9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWZsZXh7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4wNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbHtjb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNre2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tjb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tjb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWludmFsaWQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja3tjb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1pY29uLm1hdC1wcmltYXJ5e2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1pY29uLm1hdC1hY2NlbnR7Y29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LWljb24ubWF0LXdhcm57Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtaW5wdXQtZWxlbWVudDpkaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGUgLm1hdC1pbnB1dC1lbGVtZW50e2NhcmV0LWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1pbnB1dC1lbGVtZW50OjpwbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX1ib2R5LmRhcmstbW9kZSAubWF0LWlucHV0LWVsZW1lbnQ6Oi1tb3otcGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtaW5wdXQtZWxlbWVudDotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1pbnB1dC1lbGVtZW50IG9wdGlvbntjb2xvcjpyZ2JhKDAsMCwwLC44Nyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1pbnB1dC1lbGVtZW50IG9wdGlvbjpkaXNhYmxlZHtjb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50e2NhcmV0LWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWlucHV0LWVsZW1lbnR7Y2FyZXQtY29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbXtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb257Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LWxpc3QtaXRlbS1kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1saXN0LW9wdGlvbjpob3Zlcixib2R5LmRhcmstbW9kZSAubWF0LWxpc3Qtb3B0aW9uOmZvY3VzLGJvZHkuZGFyay1tb2RlIC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06aG92ZXIsYm9keS5kYXJrLW1vZGUgLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbTpmb2N1cyxib2R5LmRhcmstbW9kZSAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLGJvZHkuZGFyay1tb2RlIC5tYXQtYWN0aW9uLWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXN7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1saXN0LXNpbmdsZS1zZWxlY3RlZC1vcHRpb24sYm9keS5kYXJrLW1vZGUgLm1hdC1saXN0LXNpbmdsZS1zZWxlY3RlZC1vcHRpb246aG92ZXIsYm9keS5kYXJrLW1vZGUgLm1hdC1saXN0LXNpbmdsZS1zZWxlY3RlZC1vcHRpb246Zm9jdXN7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZW51LXBhbmVse2JhY2tncm91bmQ6IzQyNDI0Mn1ib2R5LmRhcmstbW9kZSAubWF0LW1lbnUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZW51LWl0ZW17YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtbWVudS1pdGVtW2Rpc2FibGVkXSxib2R5LmRhcmstbW9kZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0gLm1hdC1tZW51LXN1Ym1lbnUtaWNvbixib2R5LmRhcmstbW9kZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0gLm1hdC1pY29uLW5vLWNvbG9ye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtbWVudS1pdGVtIC5tYXQtaWNvbi1uby1jb2xvcixib2R5LmRhcmstbW9kZSAubWF0LW1lbnUtc3VibWVudS1pY29ue2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1tZW51LWl0ZW06aG92ZXI6bm90KFtkaXNhYmxlZF0pLGJvZHkuZGFyay1tb2RlIC5tYXQtbWVudS1pdGVtLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLGJvZHkuZGFyay1tb2RlIC5tYXQtbWVudS1pdGVtLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdChbZGlzYWJsZWRdKSxib2R5LmRhcmstbW9kZSAubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZDpub3QoW2Rpc2FibGVkXSl7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1wYWdpbmF0b3J7YmFja2dyb3VuZDojNDI0MjQyfWJvZHkuZGFyay1tb2RlIC5tYXQtcGFnaW5hdG9yLGJvZHkuZGFyay1tb2RlIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2Vye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnR7Ym9yZGVyLXRvcDoycHggc29saWQgI2ZmZjtib3JkZXItcmlnaHQ6MnB4IHNvbGlkICNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1wYWdpbmF0b3ItZmlyc3QsYm9keS5kYXJrLW1vZGUgLm1hdC1wYWdpbmF0b3ItbGFzdHtib3JkZXItdG9wOjJweCBzb2xpZCAjZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZmlyc3QsYm9keS5kYXJrLW1vZGUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItbGFzdHtib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZHtmaWxsOiM2MDNmMjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVye2JhY2tncm91bmQtY29sb3I6IzYwM2YyNH1ib2R5LmRhcmstbW9kZSAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5ke2ZpbGw6IzYwM2YyNH1ib2R5LmRhcmstbW9kZSAubWF0LXByb2dyZXNzLWJhci5tYXQtYWNjZW50IC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlcntiYWNrZ3JvdW5kLWNvbG9yOiM2MDNmMjR9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZHtmaWxsOiM2MTM1MzJ9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVye2JhY2tncm91bmQtY29sb3I6IzYxMzUzMn1ib2R5LmRhcmstbW9kZSAubWF0LXByb2dyZXNzLWJhci5tYXQtd2FybiAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1zcGlubmVyIGNpcmNsZSxib2R5LmRhcmstbW9kZSAubWF0LXNwaW5uZXIgY2lyY2xle3N0cm9rZTojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSxib2R5LmRhcmstbW9kZSAubWF0LXNwaW5uZXIubWF0LWFjY2VudCBjaXJjbGV7c3Ryb2tlOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSxib2R5LmRhcmstbW9kZSAubWF0LXNwaW5uZXIubWF0LXdhcm4gY2lyY2xle3N0cm9rZTojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xle2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZXtib3JkZXItY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSxib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLGJvZHkuZGFyay1tb2RlIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxle2JhY2tncm91bmQtY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xle2JvcmRlci1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudCAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSxib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudDphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4ubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGV7Ym9yZGVyLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4gLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4gLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksYm9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4ubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSxib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybjphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLGJvZHkuZGFyay1tb2RlIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZXtib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8taW5uZXItY2lyY2xle2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX1ib2R5LmRhcmstbW9kZSAubWF0LXJhZGlvLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXNlbGVjdC12YWx1ZXtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpfWJvZHkuZGFyay1tb2RlIC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LXZhbHVle2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGUgLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zZWxlY3QtcGFuZWx7YmFja2dyb3VuZDojNDI0MjQyfWJvZHkuZGFyay1tb2RlIC5tYXQtc2VsZWN0LXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtc2VsZWN0LXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpe2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtcHJpbWFyeSAubWF0LXNlbGVjdC1hcnJvd3tjb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtYWNjZW50IC5tYXQtc2VsZWN0LWFycm93e2NvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtc2VsZWN0LWFycm93e2NvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtaW52YWxpZCAubWF0LXNlbGVjdC1hcnJvd3tjb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtZm9ybS1maWVsZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LWFycm93e2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGUgLm1hdC1kcmF3ZXItY29udGFpbmVye2JhY2tncm91bmQtY29sb3I6IzMwMzAzMDtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZHJhd2Vye2JhY2tncm91bmQtY29sb3I6IzQyNDI0Mjtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtZHJhd2VyLm1hdC1kcmF3ZXItcHVzaHtiYWNrZ3JvdW5kLWNvbG9yOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC1kcmF3ZXI6bm90KC5tYXQtZHJhd2VyLXNpZGUpe2JveC1zaGFkb3c6MHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtZHJhd2VyLXNpZGV7Ym9yZGVyLXJpZ2h0OnNvbGlkIDFweCByZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZHtib3JkZXItbGVmdDpzb2xpZCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuMTIpO2JvcmRlci1yaWdodDpub25lfWJvZHkuZGFyay1tb2RlIFtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRle2JvcmRlci1sZWZ0OnNvbGlkIDFweCByZ2JhKDI1NSwyNTUsMjU1LC4xMik7Ym9yZGVyLXJpZ2h0Om5vbmV9Ym9keS5kYXJrLW1vZGUgW2Rpcj1ydGxdIC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmR7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItcmlnaHQ6c29saWQgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LWRyYXdlci1iYWNrZHJvcC5tYXQtZHJhd2VyLXNob3due2JhY2tncm91bmQtY29sb3I6cmdiYSgxODksMTg5LDE4OSwuNil9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LDEwOCwwLC41NCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LDEwOCwwLC41NCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC13YXJuLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDY3LDU0LC41NCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGU6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7Ym94LXNoYWRvdzowcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtiYWNrZ3JvdW5kLWNvbG9yOiNiZGJkYmR9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZS10b2dnbGUtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjMpfWJvZHkuZGFyay1tb2RlIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10cmFjay1maWxsLGJvZHkuZGFyay1tb2RlIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYixib2R5LmRhcmstbW9kZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzOSwxMDgsMCwuMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxib2R5LmRhcmstbW9kZSAubWF0LWFjY2VudCAubWF0LXNsaWRlci10aHVtYixib2R5LmRhcmstbW9kZSAubWF0LWFjY2VudCAubWF0LXNsaWRlci10aHVtYi1sYWJlbHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dHtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzOSwxMDgsMCwuMil9Ym9keS5kYXJrLW1vZGUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsYm9keS5kYXJrLW1vZGUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLGJvZHkuZGFyay1tb2RlIC5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHR7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItZm9jdXMtcmluZ3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDY3LDU0LC4yKX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlcjpob3ZlciAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLGJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLGJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsYm9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci1kaXNhYmxlZDpob3ZlciAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXItbWluLXZhbHVlIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYixib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse2JhY2tncm91bmQtY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLGJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpIC5tYXQtc2xpZGVyLXRodW1ie2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fWJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyk6aG92ZXIgLm1hdC1zbGlkZXItdGh1bWIsYm9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKS5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYntib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3Zlci5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iLGJvZHkuZGFyay1tb2RlIC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykuY2RrLWZvY3VzZWQubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYntib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRpY2tze2JhY2tncm91bmQtaW1hZ2U6cmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7YmFja2dyb3VuZC1pbWFnZTotbW96LXJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMC4wMDAxZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KX1ib2R5LmRhcmstbW9kZSAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrc3tiYWNrZ3JvdW5kLWltYWdlOnJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KX1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLGJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIuY2RrLXByb2dyYW0tZm9jdXNlZCxib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZF0pLGJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXI6aG92ZXJbYXJpYS1kaXNhYmxlZD1mYWxzZV17YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4wNCl9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlclthcmlhLWRpc2FibGVkPXRydWVde2N1cnNvcjpkZWZhdWx0fUBtZWRpYShob3Zlcjogbm9uZSl7Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlcntiYWNrZ3JvdW5kOm5vbmV9fWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLGJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLW9wdGlvbmFse2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KTtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLGJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDA7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyLm1hdC1hY2NlbnQgLm1hdC1zdGVwLWljb257Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyLm1hdC1hY2NlbnQgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlci5tYXQtYWNjZW50IC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlci5tYXQtYWNjZW50IC5tYXQtc3RlcC1pY29uLXN0YXRlLWVkaXR7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlci5tYXQtd2FybiAubWF0LXN0ZXAtaWNvbntjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIubWF0LXdhcm4gLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsYm9keS5kYXJrLW1vZGUgLm1hdC1zdGVwLWhlYWRlci5tYXQtd2FybiAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLGJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcC1oZWFkZXIubWF0LXdhcm4gLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzY7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVycm9ye2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Y29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbC5tYXQtc3RlcC1sYWJlbC1hY3RpdmV7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbC5tYXQtc3RlcC1sYWJlbC1lcnJvcntjb2xvcjojZjQ0MzM2fWJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLGJvZHkuZGFyay1tb2RlIC5tYXQtc3RlcHBlci12ZXJ0aWNhbHtiYWNrZ3JvdW5kLWNvbG9yOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zdGVwcGVyLXZlcnRpY2FsLWxpbmU6OmJlZm9yZXtib3JkZXItbGVmdC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjphZnRlcixib2R5LmRhcmstbW9kZSAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbC1saW5le2JvcmRlci10b3AtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtc29ydC1oZWFkZXItYXJyb3d7Y29sb3I6I2M2YzZjNn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWhlYWRlcntib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtdGFiLW5hdi1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtdGFiLWhlYWRlcntib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4xMik7Ym9yZGVyLWJvdHRvbTpub25lfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWxhYmVsLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWxpbmt7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZHtjb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItY29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cFtjbGFzcyo9bWF0LWJhY2tncm91bmQtXSAubWF0LXRhYi1oZWFkZXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhcltjbGFzcyo9bWF0LWJhY2tncm91bmQtXXtib3JkZXItYm90dG9tOm5vbmU7Ym9yZGVyLXRvcDpub25lfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjUxLDE0MCwwLC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LWluay1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LWluay1iYXJ7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtaW5rLWJhcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtaW5rLWJhcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtaW5rLWJhcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1pbmstYmFye2JhY2tncm91bmQtY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTEsMTQwLDAsLjMpfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC1pbmstYmFyLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LWluay1iYXJ7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LWluay1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1pbmstYmFyLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtaW5rLWJhcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtaW5rLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjA1LDIxMCwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1pbmstYmFyLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC1pbmstYmFye2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LWluay1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4ubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWluay1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LWluay1iYXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtaW5rLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjUxLDE0MCwwLC4zKX1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9ue2JhY2tncm91bmQtY29sb3I6I2VmNmMwMH1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmssYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGlua3tjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1oZWFkZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZXtib3JkZXItY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQpfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnk+Lm1hdC10YWItaGVhZGVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xMil9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1MSwxNDAsMCwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbntiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluayxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGlua3tjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KX1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZXtib3JkZXItY29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudD4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWhlYWRlciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50Pi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQ+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEyKX1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjA1LDIxMCwuMyl9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lcixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5rLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmt7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVke2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQpfWJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItaGVhZGVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmV7Ym9yZGVyLWNvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbixib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KX1ib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1yaXBwbGUtZWxlbWVudCxib2R5LmRhcmstbW9kZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsYm9keS5kYXJrLW1vZGUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuPi5tYXQtdGFiLWhlYWRlciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXJpcHBsZS1lbGVtZW50LGJvZHkuZGFyay1tb2RlIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2Fybj4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhcntiYWNrZ3JvdW5kOiNlZjZjMDA7Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXIubWF0LXByaW1hcnl7YmFja2dyb3VuZDojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10b29sYmFyLm1hdC1hY2NlbnR7YmFja2dyb3VuZDojZWY2YzAwO2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC10b29sYmFyLm1hdC13YXJue2JhY2tncm91bmQ6I2Y0NDMzNjtjb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lLGJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQtcmlwcGxlLGJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhciAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvcn1ib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLGJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhciAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLGJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhciAubWF0LXNlbGVjdC12YWx1ZSxib2R5LmRhcmstbW9kZSAubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtYXJyb3csYm9keS5kYXJrLW1vZGUgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LXNlbGVjdC1hcnJvd3tjb2xvcjppbmhlcml0fWJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbGJhciAubWF0LWlucHV0LWVsZW1lbnR7Y2FyZXQtY29sb3I6Y3VycmVudENvbG9yfWJvZHkuZGFyay1tb2RlIC5tYXQtdG9vbHRpcHtiYWNrZ3JvdW5kOnJnYmEoOTcsOTcsOTcsLjkpfWJvZHkuZGFyay1tb2RlIC5tYXQtdHJlZXtiYWNrZ3JvdW5kOiM0MjQyNDJ9Ym9keS5kYXJrLW1vZGUgLm1hdC10cmVlLW5vZGUsYm9keS5kYXJrLW1vZGUgLm1hdC1uZXN0ZWQtdHJlZS1ub2Rle2NvbG9yOiNmZmZ9Ym9keS5kYXJrLW1vZGUgLm1hdC1zbmFjay1iYXItY29udGFpbmVye2NvbG9yOnJnYmEoMCwwLDAsLjg3KTtiYWNrZ3JvdW5kOiNmYWZhZmE7Ym94LXNoYWRvdzowcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpfWJvZHkuZGFyay1tb2RlIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbntjb2xvcjppbmhlcml0fQo8L3N0eWxlPgoKPHN0eWxlPgogIGh0bWwsCiAgYm9keSB7CiAgICBtYXJnaW46IDA7CiAgICBwYWRkaW5nOiAwOwogICAgaGVpZ2h0OiAxMDAlOwogICAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjsKICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpOwoKICAgIC8qIExlZ2FjeSBtZWNoYW5pc20gdG8gYXZvaWQgaXNzdWVzIHdpdGggc3VicGl4ZWwgYW50aS1hbGlhc2luZyBvbiBtYWNPUy4KICAgICAqCiAgICAgKiBJbiB0aGUgcGFzdCBbMV0sIG1hY09TIHN1YnBpeGVsIEFBIGNhdXNlZCBleGNlc3NpdmUgYm9sZGluZyBmb3IgbGlnaHQtb24tZGFyayB0ZXh0OyB0aGlzIHJ1bGUKICAgICAqIGF2b2lkcyB0aGF0IGJ5IHJlcXVlc3Rpbmcgbm9uLXN1YnBpeGVsIEFBIGFsd2F5cywgcmF0aGVyIHRoYW4gdGhlIGRlZmF1bHQgYmVoYXZpb3IsIHdoaWNoIGlzCiAgICAgKiB0byB1c2Ugc3VicGl4ZWwgQUEgd2hlbiBhdmFpbGFibGUuIFRoZSBvcmlnaW5hbCBpc3N1ZSB3YXMgImZpeGVkIiBieSByZW1vdmluZyBzdWJwaXhlbCBBQSBpbgogICAgICogbWFjT1MgMTQgKE1vamF2ZSksIGJ1dCBmb3IgbGVnYWN5IHJlYXNvbnMgdGhleSBwcmVzZXJ2ZWQgdGhlIGJvbGRpbmcgZWZmZWN0IGFzIGFuIG9wdGlvbi4KICAgICAqIENocm9tZSB0aGVuIGluIHR1cm4gdXBkYXRlZCBpdHMgZm9udCByZW5kZXJpbmcgdG8gYXBwbHkgdGhhdCBib2xkaW5nIGVmZmVjdCBbMl0sIHdoaWNoIG1lYW5zCiAgICAgKiB0aGF0IGV2ZW4gdGhvdWdoIHRoZSBgLXdlYmtpdC1mb250LXNtb290aGluZ2AgZG9jcyBbM10gc3VnZ2VzdCB0aGF0IHNldHRpbmcgYGFudGlhbGlhc2VkYAogICAgICogd291bGQgaGF2ZSBubyBlZmZlY3QgZm9yIHJlY2VudCB2ZXJzaW9ucyBvZiBtYWNPUywgaXQgc3RpbGwgaXMgbmVlZGVkIHRvIGF2b2lkIHRoZSBib2xkaW5nLgogICAgICoKICAgICAqIFsxXTogaHR0cDovL3d3dy5saWdodGVycmEuY29tL2FydGljbGVzL21hY29zeHRleHRhYWJ1Zy8KICAgICAqIFsyXTogaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9ODU4ODYxCiAgICAgKiBbM106IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9mb250LXNtb290aAogICAgICoKICAgICAqLwoKICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogIH0KICBub3NjcmlwdCB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIG1hcmdpbjogMCBhdXRvOwogICAgbWF4LXdpZHRoOiA2MDBweDsKICAgIHBhZGRpbmc6IDEwcHg7CiAgfQo8L3N0eWxlPgoKPC9oZWFkPjxib2R5Pjxub3NjcmlwdD4KICAgIDxoMT5UZW5zb3JCb2FyZCByZXF1aXJlcyBKYXZhU2NyaXB0PC9oMT4KICAgIDxwPlBsZWFzZSBlbmFibGUgSmF2YVNjcmlwdCBhbmQgcmVsb2FkIHRoaXMgcGFnZS48L3A+CiAgPC9ub3NjcmlwdD48dGItd2ViYXBwPjwvdGItd2ViYXBwPjxzY3JpcHQgc3JjPSJpbmRleC5qcz9fZmlsZV9oYXNoPTRhMzY2Y2JlIj48L3NjcmlwdD48L2JvZHk+PC9odG1sPg==", + "headers": [ + [ + "content-type", + "text/html; charset=utf-8" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/environment": { + "data": "eyJ2ZXJzaW9uIjogIjIuOC4wIiwgImRhdGFfbG9jYXRpb24iOiAibGlnaHRuaW5nX2xvZ3MvIiwgIndpbmRvd190aXRsZSI6ICIiLCAiZXhwZXJpbWVudF9uYW1lIjogIiIsICJleHBlcmltZW50X2Rlc2NyaXB0aW9uIjogIiIsICJjcmVhdGlvbl90aW1lIjogMC4wLCAiZGVidWciOiB7ImRhdGFfcHJvdmlkZXIiOiAiR3JwY0RhdGFQcm92aWRlcihhZGRyPSdsb2NhbGhvc3Q6MzgwNzEnKSIsICJmbGFncyI6IHsibG9nZGlyIjogImxpZ2h0bmluZ19sb2dzLyIsICJsb2dkaXJfc3BlYyI6ICIiLCAiaG9zdCI6IG51bGwsICJiaW5kX2FsbCI6IGZhbHNlLCAicG9ydCI6IG51bGwsICJyZXVzZV9wb3J0IjogZmFsc2UsICJsb2FkX2Zhc3QiOiAiYXV0byIsICJleHRyYV9kYXRhX3NlcnZlcl9mbGFncyI6ICIiLCAiZ3JwY19jcmVkc190eXBlIjogImxvY2FsIiwgImdycGNfZGF0YV9wcm92aWRlciI6ICIiLCAicHVyZ2Vfb3JwaGFuZWRfZGF0YSI6IHRydWUsICJkYiI6ICIiLCAiZGJfaW1wb3J0IjogZmFsc2UsICJpbnNwZWN0IjogZmFsc2UsICJ2ZXJzaW9uX3RiIjogZmFsc2UsICJ0YWciOiAiIiwgImV2ZW50X2ZpbGUiOiAiIiwgInBhdGhfcHJlZml4IjogIiIsICJ3aW5kb3dfdGl0bGUiOiAiIiwgIm1heF9yZWxvYWRfdGhyZWFkcyI6IDEsICJyZWxvYWRfaW50ZXJ2YWwiOiA1LjAsICJyZWxvYWRfdGFzayI6ICJhdXRvIiwgInJlbG9hZF9tdWx0aWZpbGUiOiBudWxsLCAicmVsb2FkX211bHRpZmlsZV9pbmFjdGl2ZV9zZWNzIjogODY0MDAsICJnZW5lcmljX2RhdGEiOiAiYXV0byIsICJzYW1wbGVzX3Blcl9wbHVnaW4iOiB7fSwgImN1c3RvbV9wcmVkaWN0X2ZuIjogIiIsICJ3aXRfZGF0YV9kaXIiOiAiIiwgIl9fdGVuc29yYm9hcmRfc3ViY29tbWFuZCI6ICJzZXJ2ZSJ9fX0=", + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/plugins_listing": { + "data": "eyJzY2FsYXJzIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IHRydWUsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJzY2FsYXJzIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIkNVU1RPTV9FTEVNRU5UIiwgImVsZW1lbnRfbmFtZSI6ICJ0Zi1zY2FsYXItZGFzaGJvYXJkIn19LCAiY3VzdG9tX3NjYWxhcnMiOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJDdXN0b20gU2NhbGFycyIsICJsb2FkaW5nX21lY2hhbmlzbSI6IHsidHlwZSI6ICJDVVNUT01fRUxFTUVOVCIsICJlbGVtZW50X25hbWUiOiAidGYtY3VzdG9tLXNjYWxhci1kYXNoYm9hcmQifX0sICJpbWFnZXMiOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJpbWFnZXMiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogInRmLWltYWdlLWRhc2hib2FyZCJ9fSwgImF1ZGlvIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAiYXVkaW8iLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogInRmLWF1ZGlvLWRhc2hib2FyZCJ9fSwgImRlYnVnZ2VyLXYyIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAiRGVidWdnZXIgVjIiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiTkdfQ09NUE9ORU5UIn19LCAiZ3JhcGhzIjogeyJkaXNhYmxlX3JlbG9hZCI6IHRydWUsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJncmFwaHMiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogInRmLWdyYXBoLWRhc2hib2FyZCJ9fSwgImRpc3RyaWJ1dGlvbnMiOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJkaXN0cmlidXRpb25zIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIkNVU1RPTV9FTEVNRU5UIiwgImVsZW1lbnRfbmFtZSI6ICJ0Zi1kaXN0cmlidXRpb24tZGFzaGJvYXJkIn19LCAiaGlzdG9ncmFtcyI6IHsiZGlzYWJsZV9yZWxvYWQiOiBmYWxzZSwgImVuYWJsZWQiOiBmYWxzZSwgInJlbW92ZV9kb20iOiBmYWxzZSwgInRhYl9uYW1lIjogImhpc3RvZ3JhbXMiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogInRmLWhpc3RvZ3JhbS1kYXNoYm9hcmQifX0sICJ0ZXh0IjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAidGV4dCIsICJsb2FkaW5nX21lY2hhbmlzbSI6IHsidHlwZSI6ICJDVVNUT01fRUxFTUVOVCIsICJlbGVtZW50X25hbWUiOiAidGYtdGV4dC1kYXNoYm9hcmQifX0sICJwcl9jdXJ2ZXMiOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJQUiBDdXJ2ZXMiLCAibG9hZGluZ19tZWNoYW5pc20iOiB7InR5cGUiOiAiQ1VTVE9NX0VMRU1FTlQiLCAiZWxlbWVudF9uYW1lIjogInRmLXByLWN1cnZlLWRhc2hib2FyZCJ9fSwgInByb2ZpbGVfcmVkaXJlY3QiOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJQcm9maWxlIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIkNVU1RPTV9FTEVNRU5UIiwgImVsZW1lbnRfbmFtZSI6ICJ0Zi1wcm9maWxlLXJlZGlyZWN0LWRhc2hib2FyZCJ9fSwgImhwYXJhbXMiOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJocGFyYW1zIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIkNVU1RPTV9FTEVNRU5UIiwgImVsZW1lbnRfbmFtZSI6ICJ0Zi1ocGFyYW1zLWRhc2hib2FyZCJ9fSwgIm1lc2giOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogZmFsc2UsICJyZW1vdmVfZG9tIjogZmFsc2UsICJ0YWJfbmFtZSI6ICJtZXNoIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIkNVU1RPTV9FTEVNRU5UIiwgImVsZW1lbnRfbmFtZSI6ICJtZXNoLWRhc2hib2FyZCJ9fSwgInRpbWVzZXJpZXMiOiB7ImRpc2FibGVfcmVsb2FkIjogZmFsc2UsICJlbmFibGVkIjogdHJ1ZSwgInJlbW92ZV9kb20iOiBmYWxzZSwgInRhYl9uYW1lIjogIlRpbWUgU2VyaWVzIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIk5HX0NPTVBPTkVOVCJ9fSwgInByb2plY3RvciI6IHsiZGlzYWJsZV9yZWxvYWQiOiB0cnVlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAicHJvamVjdG9yIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIklGUkFNRSIsICJtb2R1bGVfcGF0aCI6ICIvZGF0YS9wbHVnaW4vcHJvamVjdG9yL2luZGV4LmpzIn19LCAid2hhdGlmIjogeyJkaXNhYmxlX3JlbG9hZCI6IGZhbHNlLCAiZW5hYmxlZCI6IGZhbHNlLCAicmVtb3ZlX2RvbSI6IGZhbHNlLCAidGFiX25hbWUiOiAiV2hhdC1JZiBUb29sIiwgImxvYWRpbmdfbWVjaGFuaXNtIjogeyJ0eXBlIjogIklGUkFNRSIsICJtb2R1bGVfcGF0aCI6ICIvZGF0YS9wbHVnaW4vd2hhdGlmL2luZGV4LmpzIn19fQ==", + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/runs": { + "data": "WyJ2ZXJzaW9uXzAiXQ==", + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/font-roboto/RxZJdnzeo3R5zSexge8UUZBw1xU1rKptJj_0jans920.woff2": { + "data": "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", + "headers": [ + [ + "content-type", + "font/woff2" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/font-roboto/oMMgfZMQthOryQo9n22dcuvvDin1pK8aKteLpeZ5c0A.woff2": { + "data": "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", + "headers": [ + [ + "content-type", + "font/woff2" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/icon_bundle.svg": { + "data": "PD94bWwgdmVyc2lvbj0iMS4wIiA/Pjxzdmc+PGRlZnM+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iYXJyb3dfZG93bndhcmRfMjRweCI+PHBhdGggZmlsbD0iIzAxMDEwMSIgZD0iTTIwIDEybC0xLjQxLTEuNDFMMTMgMTYuMTdWNGgtMnYxMi4xN2wtNS41OC01LjU5TDQgMTJsOCA4IDgtOHoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJhcnJvd191cHdhcmRfMjRweCI+PHBhdGggZD0iTTQgMTJsMS40MSAxLjQxTDExIDcuODNWMjBoMlY3LjgzbDUuNTggNS41OUwyMCAxMmwtOC04LTggOHoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJicmlnaHRuZXNzXzZfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0yMCAxNS4zMUwyMy4zMSAxMiAyMCA4LjY5VjRoLTQuNjlMMTIgLjY5IDguNjkgNEg0djQuNjlMLjY5IDEyIDQgMTUuMzFWMjBoNC42OUwxMiAyMy4zMSAxNS4zMSAyMEgyMHYtNC42OXpNMTIgMThWNmMzLjMxIDAgNiAyLjY5IDYgNnMtMi42OSA2LTYgNnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJidWdfcmVwb3J0XzI0cHgiPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNMjAgOGgtMi44MWMtLjQ1LS43OC0xLjA3LTEuNDUtMS44Mi0xLjk2TDE3IDQuNDEgMTUuNTkgM2wtMi4xNyAyLjE3QzEyLjk2IDUuMDYgMTIuNDkgNSAxMiA1Yy0uNDkgMC0uOTYuMDYtMS40MS4xN0w4LjQxIDMgNyA0LjQxbDEuNjIgMS42M0M3Ljg4IDYuNTUgNy4yNiA3LjIyIDYuODEgOEg0djJoMi4wOWMtLjA1LjMzLS4wOS42Ni0uMDkgMXYxSDR2MmgydjFjMCAuMzQuMDQuNjcuMDkgMUg0djJoMi44MWMxLjA0IDEuNzkgMi45NyAzIDUuMTkgM3M0LjE1LTEuMjEgNS4xOS0zSDIwdi0yaC0yLjA5Yy4wNS0uMzMuMDktLjY2LjA5LTF2LTFoMnYtMmgtMnYtMWMwLS4zNC0uMDQtLjY3LS4wOS0xSDIwVjh6bS02IDhoLTR2LTJoNHYyem0wLTRoLTR2LTJoNHYyeiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9ImNhbmNlbF8yNHB4Ij48cGF0aCBkPSJNMTIgMkM2LjQ3IDIgMiA2LjQ3IDIgMTJzNC40NyAxMCAxMCAxMCAxMC00LjQ3IDEwLTEwUzE3LjUzIDIgMTIgMnptNSAxMy41OUwxNS41OSAxNyAxMiAxMy40MSA4LjQxIDE3IDcgMTUuNTkgMTAuNTkgMTIgNyA4LjQxIDguNDEgNyAxMiAxMC41OSAxNS41OSA3IDE3IDguNDEgMTMuNDEgMTIgMTcgMTUuNTl6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iY2hldnJvbl9sZWZ0XzI0cHgiPjxwYXRoIGQ9Ik0xNS40MSA3LjQxTDE0IDZsLTYgNiA2IDYgMS40MS0xLjQxTDEwLjgzIDEyeiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9ImNoZXZyb25fcmlnaHRfMjRweCI+PHBhdGggZD0iTTEwIDZMOC41OSA3LjQxIDEzLjE3IDEybC00LjU4IDQuNTlMMTAgMThsNi02eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9ImNsZWFyXzI0cHgiPjxwYXRoIGQ9Ik0xOSA2LjQxTDE3LjU5IDUgMTIgMTAuNTkgNi40MSA1IDUgNi40MSAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTIgMTMuNDEgMTcuNTkgMTkgMTkgMTcuNTkgMTMuNDEgMTJ6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0iY2xvc2VfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xOSA2LjQxTDE3LjU5IDUgMTIgMTAuNTkgNi40MSA1IDUgNi40MSAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTIgMTMuNDEgMTcuNTkgMTkgMTkgMTcuNTkgMTMuNDEgMTJ6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iY29udGVudF9jb3B5XzI0cHgiPjxwYXRoIGQ9Ik0xNiAxSDRjLTEuMSAwLTIgLjktMiAydjE0aDJWM2gxMlYxem0zIDRIOGMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxMWMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0wIDE2SDhWN2gxMXYxNHoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0iZGFya19tb2RlXzI0cHgiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik0xMiwzYy00Ljk3LDAtOSw0LjAzLTksOXM0LjAzLDksOSw5czktNC4wMyw5LTljMC0wLjQ2LTAuMDQtMC45Mi0wLjEtMS4zNmMtMC45OCwxLjM3LTIuNTgsMi4yNi00LjQsMi4yNiBjLTIuOTgsMC01LjQtMi40Mi01LjQtNS40YzAtMS44MSwwLjg5LTMuNDIsMi4yNi00LjRDMTIuOTIsMy4wNCwxMi40NiwzLDEyLDNMMTIsM3oiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJkb25lXzI0cHgiPjxwYXRoIGQ9Ik05IDE2LjJMNC44IDEybC0xLjQgMS40TDkgMTkgMjEgN2wtMS40LTEuNEw5IDE2LjJ6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0iZHJhZ19pbmRpY2F0b3JfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTExIDE4YzAgMS4xLS45IDItMiAycy0yLS45LTItMiAuOS0yIDItMiAyIC45IDIgMnptLTItOGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTAtNmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTYgNGMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTAgMmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTAgNmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0iZWRpdF8yNHB4Ij48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTMgMTcuMjVWMjFoMy43NUwxNy44MSA5Ljk0bC0zLjc1LTMuNzVMMyAxNy4yNXpNMjAuNzEgNy4wNGMuMzktLjM5LjM5LTEuMDIgMC0xLjQxbC0yLjM0LTIuMzRjLS4zOS0uMzktMS4wMi0uMzktMS40MSAwbC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M3oiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJlcnJvcl8yNHB4Ij48cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMSAxNWgtMnYtMmgydjJ6bTAtNGgtMlY3aDJ2NnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJleHBhbmRfbGVzc18yNHB4Ij48cGF0aCBkPSJNMTIgOGwtNiA2IDEuNDEgMS40MUwxMiAxMC44M2w0LjU5IDQuNThMMTggMTR6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iZXhwYW5kX21vcmVfMjRweCI+PHBhdGggZD0iTTE2LjU5IDguNTlMMTIgMTMuMTcgNy40MSA4LjU5IDYgMTBsNiA2IDYtNnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0iZmlsdGVyX2FsdF8yNHB4Ij48Zz48cGF0aCBkPSJNMCwwaDI0IE0yNCwyNEgwIiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTQuMjUsNS42MUM2LjI3LDguMiwxMCwxMywxMCwxM3Y2YzAsMC41NSwwLjQ1LDEsMSwxaDJjMC41NSwwLDEtMC40NSwxLTF2LTZjMCwwLDMuNzItNC44LDUuNzQtNy4zOSBDMjAuMjUsNC45NSwxOS43OCw0LDE4Ljk1LDRINS4wNEM0LjIxLDQsMy43NCw0Ljk1LDQuMjUsNS42MXoiLz48cGF0aCBkPSJNMCwwaDI0djI0SDBWMHoiIGZpbGw9Im5vbmUiLz48L2c+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iZmxhZ18yNHB4Ij48cGF0aCBkPSJNMTQuNCA2TDE0IDRINXYxN2gydi03aDUuNmwuNCAyaDdWNnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJmdWxsc2NyZWVuXzI0cHgiPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNNyAxNEg1djVoNXYtMkg3di0zem0tMi00aDJWN2gzVjVINXY1em0xMiA3aC0zdjJoNXYtNWgtMnYzek0xNCA1djJoM3YzaDJWNWgtNXoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJmdWxsc2NyZWVuX2V4aXRfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik01IDE2aDN2M2gydi01SDV2MnptMy04SDV2Mmg1VjVIOHYzem02IDExaDJ2LTNoM3YtMmgtNXY1em0yLTExVjVoLTJ2NWg1VjhoLTN6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iZ2V0X2FwcF8yNHB4Ij48cGF0aCBkPSJNMTkgOWgtNFYzSDl2Nkg1bDcgNyA3LTd6TTUgMTh2MmgxNHYtMkg1eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9Imdyb3VwX3dvcmtfMjRweCI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTggMTcuNWMtMS4zOCAwLTIuNS0xLjEyLTIuNS0yLjVzMS4xMi0yLjUgMi41LTIuNSAyLjUgMS4xMiAyLjUgMi41LTEuMTIgMi41LTIuNSAyLjV6TTkuNSA4YzAtMS4zOCAxLjEyLTIuNSAyLjUtMi41czIuNSAxLjEyIDIuNSAyLjUtMS4xMiAyLjUtMi41IDIuNVM5LjUgOS4zOCA5LjUgOHptNi41IDkuNWMtMS4zOCAwLTIuNS0xLjEyLTIuNS0yLjVzMS4xMi0yLjUgMi41LTIuNSAyLjUgMS4xMiAyLjUgMi41LTEuMTIgMi41LTIuNSAyLjV6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0iaGVscF9vdXRsaW5lXzI0cHgiPjxwYXRoIGQ9Ik0xMSAxOGgydi0yaC0ydjJ6bTEtMTZDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4em0wLTE0Yy0yLjIxIDAtNCAxLjc5LTQgNGgyYzAtMS4xLjktMiAyLTJzMiAuOSAyIDJjMCAyLTMgMS43NS0zIDVoMmMwLTIuMjUgMy0yLjUgMy01IDAtMi4yMS0xLjc5LTQtNC00eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgaWQ9ImltYWdlX3NlYXJjaF8yNHB4Ij48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE4IDEzdjdINFY2aDUuMDJjLjA1LS43MS4yMi0xLjM4LjQ4LTJINGMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtNWwtMi0yem0tMS41IDVoLTExbDIuNzUtMy41MyAxLjk2IDIuMzYgMi43NS0zLjU0em0yLjgtOS4xMWMuNDQtLjcuNy0xLjUxLjctMi4zOUMyMCA0LjAxIDE3Ljk5IDIgMTUuNSAyUzExIDQuMDEgMTEgNi41czIuMDEgNC41IDQuNDkgNC41Yy44OCAwIDEuNy0uMjYgMi4zOS0uN0wyMSAxMy40MiAyMi40MiAxMiAxOS4zIDguODl6TTE1LjUgOUMxNC4xMiA5IDEzIDcuODggMTMgNi41UzE0LjEyIDQgMTUuNSA0IDE4IDUuMTIgMTggNi41IDE2Ljg4IDkgMTUuNSA5eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9ImluZm9fb3V0bGluZV8yNHB4Ij48cGF0aCBkPSJNMTEgMTdoMnYtNmgtMnY2em0xLTE1QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHpNMTEgOWgyVjdoLTJ2MnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0ia2VlcF8yNHB4Ij48Zz48cmVjdCBmaWxsPSJub25lIiBoZWlnaHQ9IjI0IiB3aWR0aD0iMjQiLz48L2c+PGc+PHBhdGggZD0iTTE2LDlWNGwxLDBjMC41NSwwLDEtMC40NSwxLTF2MGMwLTAuNTUtMC40NS0xLTEtMUg3QzYuNDUsMiw2LDIuNDUsNiwzdjAgYzAsMC41NSwwLjQ1LDEsMSwxbDEsMHY1YzAsMS42Ni0xLjM0LDMtMywzaDB2Mmg1Ljk3djdsMSwxbDEtMXYtN0gxOXYtMmgwQzE3LjM0LDEyLDE2LDEwLjY2LDE2LDl6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L2c+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgaWQ9ImtlZXBfb3V0bGluZV8yNHB4Ij48Zz48cmVjdCBmaWxsPSJub25lIiBoZWlnaHQ9IjI0IiB3aWR0aD0iMjQiLz48L2c+PGc+PHBhdGggZD0iTTE0LDR2NWMwLDEuMTIsMC4zNywyLjE2LDEsM0g5YzAuNjUtMC44NiwxLTEuOSwxLTNWNEgxNCBNMTcsMkg3QzYuNDUsMiw2LDIuNDUsNiwzYzAsMC41NSwwLjQ1LDEsMSwxYzAsMCwwLDAsMCwwbDEsMHY1IGMwLDEuNjYtMS4zNCwzLTMsM3YyaDUuOTd2N2wxLDFsMS0xdi03SDE5di0yYzAsMCwwLDAsMCwwYy0xLjY2LDAtMy0xLjM0LTMtM1Y0bDEsMGMwLDAsMCwwLDAsMGMwLjU1LDAsMS0wLjQ1LDEtMSBDMTgsMi40NSwxNy41NSwyLDE3LDJMMTcsMnoiLz48L2c+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgaWQ9ImxpZ2h0X21vZGVfMjRweCI+PHJlY3QgZmlsbD0ibm9uZSIgaGVpZ2h0PSIyNCIgd2lkdGg9IjI0Ii8+PHBhdGggZD0iTTEyLDdjLTIuNzYsMC01LDIuMjQtNSw1czIuMjQsNSw1LDVzNS0yLjI0LDUtNVMxNC43Niw3LDEyLDdMMTIsN3ogTTIsMTNsMiwwYzAuNTUsMCwxLTAuNDUsMS0xcy0wLjQ1LTEtMS0xbC0yLDAgYy0wLjU1LDAtMSwwLjQ1LTEsMVMxLjQ1LDEzLDIsMTN6IE0yMCwxM2wyLDBjMC41NSwwLDEtMC40NSwxLTFzLTAuNDUtMS0xLTFsLTIsMGMtMC41NSwwLTEsMC40NS0xLDFTMTkuNDUsMTMsMjAsMTN6IE0xMSwydjIgYzAsMC41NSwwLjQ1LDEsMSwxczEtMC40NSwxLTFWMmMwLTAuNTUtMC40NS0xLTEtMVMxMSwxLjQ1LDExLDJ6IE0xMSwyMHYyYzAsMC41NSwwLjQ1LDEsMSwxczEtMC40NSwxLTF2LTJjMC0wLjU1LTAuNDUtMS0xLTEgQzExLjQ1LDE5LDExLDE5LjQ1LDExLDIweiBNNS45OSw0LjU4Yy0wLjM5LTAuMzktMS4wMy0wLjM5LTEuNDEsMGMtMC4zOSwwLjM5LTAuMzksMS4wMywwLDEuNDFsMS4wNiwxLjA2IGMwLjM5LDAuMzksMS4wMywwLjM5LDEuNDEsMHMwLjM5LTEuMDMsMC0xLjQxTDUuOTksNC41OHogTTE4LjM2LDE2Ljk1Yy0wLjM5LTAuMzktMS4wMy0wLjM5LTEuNDEsMGMtMC4zOSwwLjM5LTAuMzksMS4wMywwLDEuNDEgbDEuMDYsMS4wNmMwLjM5LDAuMzksMS4wMywwLjM5LDEuNDEsMGMwLjM5LTAuMzksMC4zOS0xLjAzLDAtMS40MUwxOC4zNiwxNi45NXogTTE5LjQyLDUuOTljMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDEgYy0wLjM5LTAuMzktMS4wMy0wLjM5LTEuNDEsMGwtMS4wNiwxLjA2Yy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MXMxLjAzLDAuMzksMS40MSwwTDE5LjQyLDUuOTl6IE03LjA1LDE4LjM2IGMwLjM5LTAuMzksMC4zOS0xLjAzLDAtMS40MWMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDBsLTEuMDYsMS4wNmMtMC4zOSwwLjM5LTAuMzksMS4wMywwLDEuNDFzMS4wMywwLjM5LDEuNDEsMEw3LjA1LDE4LjM2eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNCAyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJsaW5lX3dlaWdodF8yNHB4Ij48Zz48cmVjdCBmaWxsPSJub25lIiBoZWlnaHQ9IjI0IiB3aWR0aD0iMjQiIHg9IjAiLz48L2c+PGc+PGc+PGc+PHBhdGggZD0iTTMsMTdoMTh2LTJIM1YxN3ogTTMsMjBoMTh2LTFIM1YyMHogTTMsMTNoMTh2LTNIM1YxM3ogTTMsNHY0aDE4VjRIM3oiLz48L2c+PC9nPjwvZz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJtb3JlX3ZlcnRfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xMiA4YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptMCAyYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMCA2Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGlkPSJub3RpZmljYXRpb25zX25vbmVfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xMiAyMmMxLjEgMCAyLS45IDItMmgtNGMwIDEuMS45IDIgMiAyem02LTZ2LTVjMC0zLjA3LTEuNjMtNS42NC00LjUtNi4zMlY0YzAtLjgzLS42Ny0xLjUtMS41LTEuNXMtMS41LjY3LTEuNSAxLjV2LjY4QzcuNjQgNS4zNiA2IDcuOTIgNiAxMXY1bC0yIDJ2MWgxNnYtMWwtMi0yem0tMiAxSDh2LTZjMC0yLjQ4IDEuNTEtNC41IDQtNC41czQgMi4wMiA0IDQuNXY2eiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9InBhbGV0dGVfMjRweCI+PHBhdGggZD0iTTEyIDNjLTQuOTcgMC05IDQuMDMtOSA5czQuMDMgOSA5IDljLjgzIDAgMS41LS42NyAxLjUtMS41IDAtLjM5LS4xNS0uNzQtLjM5LTEuMDEtLjIzLS4yNi0uMzgtLjYxLS4zOC0uOTkgMC0uODMuNjctMS41IDEuNS0xLjVIMTZjMi43NiAwIDUtMi4yNCA1LTUgMC00LjQyLTQuMDMtOC05LTh6bS01LjUgOWMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzUuNjcgOSA2LjUgOSA4IDkuNjcgOCAxMC41IDcuMzMgMTIgNi41IDEyem0zLTRDOC42NyA4IDggNy4zMyA4IDYuNVM4LjY3IDUgOS41IDVzMS41LjY3IDEuNSAxLjVTMTAuMzMgOCA5LjUgOHptNSAwYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTMuNjcgNSAxNC41IDVzMS41LjY3IDEuNSAxLjVTMTUuMzMgOCAxNC41IDh6bTMgNGMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzE2LjY3IDkgMTcuNSA5czEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJyZWZyZXNoXzI0cHgiPjxwYXRoIGQ9Ik0xNy42NSA2LjM1QzE2LjIgNC45IDE0LjIxIDQgMTIgNGMtNC40MiAwLTcuOTkgMy41OC03Ljk5IDhzMy41NyA4IDcuOTkgOGMzLjczIDAgNi44NC0yLjU1IDcuNzMtNmgtMi4wOGMtLjgyIDIuMzMtMy4wNCA0LTUuNjUgNC0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02YzEuNjYgMCAzLjE0LjY5IDQuMjIgMS43OEwxMyAxMWg3VjRsLTIuMzUgMi4zNXoiLz48L3N2Zz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJzZWFyY2hfMjRweCI+PHBhdGggZD0iTTE1LjUgMTRoLS43OWwtLjI4LS4yN0MxNS40MSAxMi41OSAxNiAxMS4xMSAxNiA5LjUgMTYgNS45MSAxMy4wOSAzIDkuNSAzUzMgNS45MSAzIDkuNSA1LjkxIDE2IDkuNSAxNmMxLjYxIDAgMy4wOS0uNTkgNC4yMy0xLjU3bC4yNy4yOHYuNzlsNSA0Ljk5TDIwLjQ5IDE5bC00Ljk5LTV6bS02IDBDNy4wMSAxNCA1IDExLjk5IDUgOS41UzcuMDEgNSA5LjUgNSAxNCA3LjAxIDE0IDkuNSAxMS45OSAxNCA5LjUgMTR6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0ic2V0dGluZ3NfMjRweCI+PHBhdGggZD0iTTE5LjQzIDEyLjk4Yy4wNC0uMzIuMDctLjY0LjA3LS45OHMtLjAzLS42Ni0uMDctLjk4bDIuMTEtMS42NWMuMTktLjE1LjI0LS40Mi4xMi0uNjRsLTItMy40NmMtLjEyLS4yMi0uMzktLjMtLjYxLS4yMmwtMi40OSAxYy0uNTItLjQtMS4wOC0uNzMtMS42OS0uOThsLS4zOC0yLjY1QzE0LjQ2IDIuMTggMTQuMjUgMiAxNCAyaC00Yy0uMjUgMC0uNDYuMTgtLjQ5LjQybC0uMzggMi42NWMtLjYxLjI1LTEuMTcuNTktMS42OS45OGwtMi40OS0xYy0uMjMtLjA5LS40OSAwLS42MS4yMmwtMiAzLjQ2Yy0uMTMuMjItLjA3LjQ5LjEyLjY0bDIuMTEgMS42NWMtLjA0LjMyLS4wNy42NS0uMDcuOThzLjAzLjY2LjA3Ljk4bC0yLjExIDEuNjVjLS4xOS4xNS0uMjQuNDItLjEyLjY0bDIgMy40NmMuMTIuMjIuMzkuMy42MS4yMmwyLjQ5LTFjLjUyLjQgMS4wOC43MyAxLjY5Ljk4bC4zOCAyLjY1Yy4wMy4yNC4yNC40Mi40OS40Mmg0Yy4yNSAwIC40Ni0uMTguNDktLjQybC4zOC0yLjY1Yy42MS0uMjUgMS4xNy0uNTkgMS42OS0uOThsMi40OSAxYy4yMy4wOS40OSAwIC42MS0uMjJsMi0zLjQ2Yy4xMi0uMjIuMDctLjQ5LS4xMi0uNjRsLTIuMTEtMS42NXpNMTIgMTUuNWMtMS45MyAwLTMuNS0xLjU3LTMuNS0zLjVzMS41Ny0zLjUgMy41LTMuNSAzLjUgMS41NyAzLjUgMy41LTEuNTcgMy41LTMuNSAzLjV6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0ic2V0dGluZ3NfYmFja3VwX3Jlc3RvcmVfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xNCAxMmMwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDIgLjkgMiAyIDIgMi0uOSAyLTJ6bS0yLTljLTQuOTcgMC05IDQuMDMtOSA5SDBsNCA0IDQtNEg1YzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDctMy4xMyA3LTcgN2MtMS41MSAwLTIuOTEtLjQ5LTQuMDYtMS4zbC0xLjQyIDEuNDRDOC4wNCAyMC4zIDkuOTQgMjEgMTIgMjFjNC45NyAwIDktNC4wMyA5LTlzLTQuMDMtOS05LTl6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBpZD0ic2V0dGluZ3Nfb3ZlcnNjYW5fMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xMi4wMSA1LjVMMTAgOGg0bC0xLjk5LTIuNXpNMTggMTB2NGwyLjUtMS45OUwxOCAxMHpNNiAxMGwtMi41IDIuMDFMNiAxNHYtNHptOCA2aC00bDIuMDEgMi41TDE0IDE2em03LTEzSDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNi4wMUgzVjQuOTloMTh2MTQuMDJ6Ii8+PC9zdmc+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBpZD0idmlzaWJpbGl0eV9vZmZfMjRweCI+PHBhdGggZD0iTTEyIDdjMi43NiAwIDUgMi4yNCA1IDUgMCAuNjUtLjEzIDEuMjYtLjM2IDEuODNsMi45MiAyLjkyYzEuNTEtMS4yNiAyLjctMi44OSAzLjQzLTQuNzUtMS43My00LjM5LTYtNy41LTExLTcuNS0xLjQgMC0yLjc0LjI1LTMuOTguN2wyLjE2IDIuMTZDMTAuNzQgNy4xMyAxMS4zNSA3IDEyIDd6TTIgNC4yN2wyLjI4IDIuMjguNDYuNDZDMy4wOCA4LjMgMS43OCAxMC4wMiAxIDEyYzEuNzMgNC4zOSA2IDcuNSAxMSA3LjUgMS41NSAwIDMuMDMtLjMgNC4zOC0uODRsLjQyLjQyTDE5LjczIDIyIDIxIDIwLjczIDMuMjcgMyAyIDQuMjd6TTcuNTMgOS44bDEuNTUgMS41NWMtLjA1LjIxLS4wOC40My0uMDguNjUgMCAxLjY2IDEuMzQgMyAzIDMgLjIyIDAgLjQ0LS4wMy42NS0uMDhsMS41NSAxLjU1Yy0uNjcuMzMtMS40MS41My0yLjIuNTMtMi43NiAwLTUtMi4yNC01LTUgMC0uNzkuMi0xLjUzLjUzLTIuMnptNC4zMS0uNzhsMy4xNSAzLjE1LjAyLS4xNmMwLTEuNjYtMS4zNC0zLTMtM2wtLjE3LjAxeiIvPjwvc3ZnPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgaWQ9Indhcm5pbmdfMjRweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xIDIxaDIyTDEyIDIgMSAyMXptMTItM2gtMnYtMmgydjJ6bTAtNGgtMnYtNGgydjR6Ii8+PC9zdmc+PC9kZWZzPjwvc3ZnPgo=", + "headers": [ + [ + "content-type", + "image/svg+xml; charset=utf-8" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/index.js?_file_hash=4a366cbe": { + "data": "dmFyIENMT1NVUkVfTk9fREVQUyA9IHRydWU7CndpbmRvdy5wb2x5bWVyU2tpcExvYWRpbmdGb250Um9ib3RvID0gdHJ1ZTsKLyoqIHZpbTogZXQ6dHM9NDpzdz00OnN0cz00CiAqIEBsaWNlbnNlIFJlcXVpcmVKUyAyLjMuNiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycy4KICogUmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UsIGh0dHBzOi8vZ2l0aHViLmNvbS9yZXF1aXJlanMvcmVxdWlyZWpzL2Jsb2IvbWFzdGVyL0xJQ0VOU0UKICovCi8vTm90IHVzaW5nIHN0cmljdDogdW5ldmVuIHN0cmljdCBzdXBwb3J0IGluIGJyb3dzZXJzLCAjMzkyLCBhbmQgY2F1c2VzCi8vcHJvYmxlbXMgd2l0aCByZXF1aXJlanMuZXhlYygpL3RyYW5zcGlsZXIgcGx1Z2lucyB0aGF0IG1heSBub3QgYmUgc3RyaWN0LgovKmpzbGludCByZWdleHA6IHRydWUsIG5vbWVuOiB0cnVlLCBzbG9wcHk6IHRydWUgKi8KLypnbG9iYWwgd2luZG93LCBuYXZpZ2F0b3IsIGRvY3VtZW50LCBpbXBvcnRTY3JpcHRzLCBzZXRUaW1lb3V0LCBvcGVyYSAqLwoKdmFyIHJlcXVpcmVqcywgcmVxdWlyZSwgZGVmaW5lOwooZnVuY3Rpb24gKGdsb2JhbCwgc2V0VGltZW91dCkgewogICAgdmFyIHJlcSwgcywgaGVhZCwgYmFzZUVsZW1lbnQsIGRhdGFNYWluLCBzcmMsCiAgICAgICAgaW50ZXJhY3RpdmVTY3JpcHQsIGN1cnJlbnRseUFkZGluZ1NjcmlwdCwgbWFpblNjcmlwdCwgc3ViUGF0aCwKICAgICAgICB2ZXJzaW9uID0gJzIuMy42JywKICAgICAgICBjb21tZW50UmVnRXhwID0gL1wvXCpbXHNcU10qP1wqXC98KFteOiInPV18XilcL1wvLiokL21nLAogICAgICAgIGNqc1JlcXVpcmVSZWdFeHAgPSAvW14uXVxzKnJlcXVpcmVccypcKFxzKlsiJ10oW14nIlxzXSspWyInXVxzKlwpL2csCiAgICAgICAganNTdWZmaXhSZWdFeHAgPSAvXC5qcyQvLAogICAgICAgIGN1cnJEaXJSZWdFeHAgPSAvXlwuXC8vLAogICAgICAgIG9wID0gT2JqZWN0LnByb3RvdHlwZSwKICAgICAgICBvc3RyaW5nID0gb3AudG9TdHJpbmcsCiAgICAgICAgaGFzT3duID0gb3AuaGFzT3duUHJvcGVydHksCiAgICAgICAgaXNCcm93c2VyID0gISEodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmRvY3VtZW50KSwKICAgICAgICBpc1dlYldvcmtlciA9ICFpc0Jyb3dzZXIgJiYgdHlwZW9mIGltcG9ydFNjcmlwdHMgIT09ICd1bmRlZmluZWQnLAogICAgICAgIC8vUFMzIGluZGljYXRlcyBsb2FkZWQgYW5kIGNvbXBsZXRlLCBidXQgbmVlZCB0byB3YWl0IGZvciBjb21wbGV0ZQogICAgICAgIC8vc3BlY2lmaWNhbGx5LiBTZXF1ZW5jZSBpcyAnbG9hZGluZycsICdsb2FkZWQnLCBleGVjdXRpb24sCiAgICAgICAgLy8gdGhlbiAnY29tcGxldGUnLiBUaGUgVUEgY2hlY2sgaXMgdW5mb3J0dW5hdGUsIGJ1dCBub3Qgc3VyZSBob3cKICAgICAgICAvL3RvIGZlYXR1cmUgdGVzdCB3L28gY2F1c2luZyBwZXJmIGlzc3Vlcy4KICAgICAgICByZWFkeVJlZ0V4cCA9IGlzQnJvd3NlciAmJiBuYXZpZ2F0b3IucGxhdGZvcm0gPT09ICdQTEFZU1RBVElPTiAzJyA/CiAgICAgICAgICAgICAgICAgICAgICAvXmNvbXBsZXRlJC8gOiAvXihjb21wbGV0ZXxsb2FkZWQpJC8sCiAgICAgICAgZGVmQ29udGV4dE5hbWUgPSAnXycsCiAgICAgICAgLy9PaCB0aGUgdHJhZ2VkeSwgZGV0ZWN0aW5nIG9wZXJhLiBTZWUgdGhlIHVzYWdlIG9mIGlzT3BlcmEgZm9yIHJlYXNvbi4KICAgICAgICBpc09wZXJhID0gdHlwZW9mIG9wZXJhICE9PSAndW5kZWZpbmVkJyAmJiBvcGVyYS50b1N0cmluZygpID09PSAnW29iamVjdCBPcGVyYV0nLAogICAgICAgIGNvbnRleHRzID0ge30sCiAgICAgICAgY2ZnID0ge30sCiAgICAgICAgZ2xvYmFsRGVmUXVldWUgPSBbXSwKICAgICAgICB1c2VJbnRlcmFjdGl2ZSA9IGZhbHNlOwoKICAgIC8vQ291bGQgbWF0Y2ggc29tZXRoaW5nIGxpa2UgJykvL2NvbW1lbnQnLCBkbyBub3QgbG9zZSB0aGUgcHJlZml4IHRvIGNvbW1lbnQuCiAgICBmdW5jdGlvbiBjb21tZW50UmVwbGFjZShtYXRjaCwgc2luZ2xlUHJlZml4KSB7CiAgICAgICAgcmV0dXJuIHNpbmdsZVByZWZpeCB8fCAnJzsKICAgIH0KCiAgICBmdW5jdGlvbiBpc0Z1bmN0aW9uKGl0KSB7CiAgICAgICAgcmV0dXJuIG9zdHJpbmcuY2FsbChpdCkgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSc7CiAgICB9CgogICAgZnVuY3Rpb24gaXNBcnJheShpdCkgewogICAgICAgIHJldHVybiBvc3RyaW5nLmNhbGwoaXQpID09PSAnW29iamVjdCBBcnJheV0nOwogICAgfQoKICAgIC8qKgogICAgICogSGVscGVyIGZ1bmN0aW9uIGZvciBpdGVyYXRpbmcgb3ZlciBhbiBhcnJheS4gSWYgdGhlIGZ1bmMgcmV0dXJucwogICAgICogYSB0cnVlIHZhbHVlLCBpdCB3aWxsIGJyZWFrIG91dCBvZiB0aGUgbG9vcC4KICAgICAqLwogICAgZnVuY3Rpb24gZWFjaChhcnksIGZ1bmMpIHsKICAgICAgICBpZiAoYXJ5KSB7CiAgICAgICAgICAgIHZhciBpOwogICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXJ5Lmxlbmd0aDsgaSArPSAxKSB7CiAgICAgICAgICAgICAgICBpZiAoYXJ5W2ldICYmIGZ1bmMoYXJ5W2ldLCBpLCBhcnkpKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBIZWxwZXIgZnVuY3Rpb24gZm9yIGl0ZXJhdGluZyBvdmVyIGFuIGFycmF5IGJhY2t3YXJkcy4gSWYgdGhlIGZ1bmMKICAgICAqIHJldHVybnMgYSB0cnVlIHZhbHVlLCBpdCB3aWxsIGJyZWFrIG91dCBvZiB0aGUgbG9vcC4KICAgICAqLwogICAgZnVuY3Rpb24gZWFjaFJldmVyc2UoYXJ5LCBmdW5jKSB7CiAgICAgICAgaWYgKGFyeSkgewogICAgICAgICAgICB2YXIgaTsKICAgICAgICAgICAgZm9yIChpID0gYXJ5Lmxlbmd0aCAtIDE7IGkgPiAtMTsgaSAtPSAxKSB7CiAgICAgICAgICAgICAgICBpZiAoYXJ5W2ldICYmIGZ1bmMoYXJ5W2ldLCBpLCBhcnkpKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaGFzUHJvcChvYmosIHByb3ApIHsKICAgICAgICByZXR1cm4gaGFzT3duLmNhbGwob2JqLCBwcm9wKTsKICAgIH0KCiAgICBmdW5jdGlvbiBnZXRPd24ob2JqLCBwcm9wKSB7CiAgICAgICAgcmV0dXJuIGhhc1Byb3Aob2JqLCBwcm9wKSAmJiBvYmpbcHJvcF07CiAgICB9CgogICAgLyoqCiAgICAgKiBDeWNsZXMgb3ZlciBwcm9wZXJ0aWVzIGluIGFuIG9iamVjdCBhbmQgY2FsbHMgYSBmdW5jdGlvbiBmb3IgZWFjaAogICAgICogcHJvcGVydHkgdmFsdWUuIElmIHRoZSBmdW5jdGlvbiByZXR1cm5zIGEgdHJ1dGh5IHZhbHVlLCB0aGVuIHRoZQogICAgICogaXRlcmF0aW9uIGlzIHN0b3BwZWQuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGVhY2hQcm9wKG9iaiwgZnVuYykgewogICAgICAgIHZhciBwcm9wOwogICAgICAgIGZvciAocHJvcCBpbiBvYmopIHsKICAgICAgICAgICAgaWYgKGhhc1Byb3Aob2JqLCBwcm9wKSkgewogICAgICAgICAgICAgICAgaWYgKGZ1bmMob2JqW3Byb3BdLCBwcm9wKSkgewogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogU2ltcGxlIGZ1bmN0aW9uIHRvIG1peCBpbiBwcm9wZXJ0aWVzIGZyb20gc291cmNlIGludG8gdGFyZ2V0LAogICAgICogYnV0IG9ubHkgaWYgdGFyZ2V0IGRvZXMgbm90IGFscmVhZHkgaGF2ZSBhIHByb3BlcnR5IG9mIHRoZSBzYW1lIG5hbWUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIG1peGluKHRhcmdldCwgc291cmNlLCBmb3JjZSwgZGVlcFN0cmluZ01peGluKSB7CiAgICAgICAgaWYgKHNvdXJjZSkgewogICAgICAgICAgICBlYWNoUHJvcChzb3VyY2UsIGZ1bmN0aW9uICh2YWx1ZSwgcHJvcCkgewogICAgICAgICAgICAgICAgaWYgKGZvcmNlIHx8ICFoYXNQcm9wKHRhcmdldCwgcHJvcCkpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoZGVlcFN0cmluZ01peGluICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgIWlzQXJyYXkodmFsdWUpICYmICFpc0Z1bmN0aW9uKHZhbHVlKSAmJgogICAgICAgICAgICAgICAgICAgICAgICAhKHZhbHVlIGluc3RhbmNlb2YgUmVnRXhwKSkgewoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0YXJnZXRbcHJvcF0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFtwcm9wXSA9IHt9OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIG1peGluKHRhcmdldFtwcm9wXSwgdmFsdWUsIGZvcmNlLCBkZWVwU3RyaW5nTWl4aW4pOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFtwcm9wXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0YXJnZXQ7CiAgICB9CgogICAgLy9TaW1pbGFyIHRvIEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLCBidXQgdGhlICd0aGlzJyBvYmplY3QgaXMgc3BlY2lmaWVkCiAgICAvL2ZpcnN0LCBzaW5jZSBpdCBpcyBlYXNpZXIgdG8gcmVhZC9maWd1cmUgb3V0IHdoYXQgJ3RoaXMnIHdpbGwgYmUuCiAgICBmdW5jdGlvbiBiaW5kKG9iaiwgZm4pIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkob2JqLCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICB9CgogICAgZnVuY3Rpb24gc2NyaXB0cygpIHsKICAgICAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpOwogICAgfQoKICAgIGZ1bmN0aW9uIGRlZmF1bHRPbkVycm9yKGVycikgewogICAgICAgIHRocm93IGVycjsKICAgIH0KCiAgICAvL0FsbG93IGdldHRpbmcgYSBnbG9iYWwgdGhhdCBpcyBleHByZXNzZWQgaW4KICAgIC8vZG90IG5vdGF0aW9uLCBsaWtlICdhLmIuYycuCiAgICBmdW5jdGlvbiBnZXRHbG9iYWwodmFsdWUpIHsKICAgICAgICBpZiAoIXZhbHVlKSB7CiAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICB9CiAgICAgICAgdmFyIGcgPSBnbG9iYWw7CiAgICAgICAgZWFjaCh2YWx1ZS5zcGxpdCgnLicpLCBmdW5jdGlvbiAocGFydCkgewogICAgICAgICAgICBnID0gZ1twYXJ0XTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gZzsKICAgIH0KCiAgICAvKioKICAgICAqIENvbnN0cnVjdHMgYW4gZXJyb3Igd2l0aCBhIHBvaW50ZXIgdG8gYW4gVVJMIHdpdGggbW9yZSBpbmZvcm1hdGlvbi4KICAgICAqIEBwYXJhbSB7U3RyaW5nfSBpZCB0aGUgZXJyb3IgSUQgdGhhdCBtYXBzIHRvIGFuIElEIG9uIGEgd2ViIHBhZ2UuCiAgICAgKiBAcGFyYW0ge1N0cmluZ30gbWVzc2FnZSBodW1hbiByZWFkYWJsZSBlcnJvci4KICAgICAqIEBwYXJhbSB7RXJyb3J9IFtlcnJdIHRoZSBvcmlnaW5hbCBlcnJvciwgaWYgdGhlcmUgaXMgb25lLgogICAgICoKICAgICAqIEByZXR1cm5zIHtFcnJvcn0KICAgICAqLwogICAgZnVuY3Rpb24gbWFrZUVycm9yKGlkLCBtc2csIGVyciwgcmVxdWlyZU1vZHVsZXMpIHsKICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtc2cgKyAnXG5odHRwczovL3JlcXVpcmVqcy5vcmcvZG9jcy9lcnJvcnMuaHRtbCMnICsgaWQpOwogICAgICAgIGUucmVxdWlyZVR5cGUgPSBpZDsKICAgICAgICBlLnJlcXVpcmVNb2R1bGVzID0gcmVxdWlyZU1vZHVsZXM7CiAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICBlLm9yaWdpbmFsRXJyb3IgPSBlcnI7CiAgICAgICAgfQogICAgICAgIHJldHVybiBlOwogICAgfQoKICAgIGlmICh0eXBlb2YgZGVmaW5lICE9PSAndW5kZWZpbmVkJykgewogICAgICAgIC8vSWYgYSBkZWZpbmUgaXMgYWxyZWFkeSBpbiBwbGF5IHZpYSBhbm90aGVyIEFNRCBsb2FkZXIsCiAgICAgICAgLy9kbyBub3Qgb3ZlcndyaXRlLgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpZiAodHlwZW9mIHJlcXVpcmVqcyAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICBpZiAoaXNGdW5jdGlvbihyZXF1aXJlanMpKSB7CiAgICAgICAgICAgIC8vRG8gbm90IG92ZXJ3cml0ZSBhbiBleGlzdGluZyByZXF1aXJlanMgaW5zdGFuY2UuCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgY2ZnID0gcmVxdWlyZWpzOwogICAgICAgIHJlcXVpcmVqcyA9IHVuZGVmaW5lZDsKICAgIH0KCiAgICAvL0FsbG93IGZvciBhIHJlcXVpcmUgY29uZmlnIG9iamVjdAogICAgaWYgKHR5cGVvZiByZXF1aXJlICE9PSAndW5kZWZpbmVkJyAmJiAhaXNGdW5jdGlvbihyZXF1aXJlKSkgewogICAgICAgIC8vYXNzdW1lIGl0IGlzIGEgY29uZmlnIG9iamVjdC4KICAgICAgICBjZmcgPSByZXF1aXJlOwogICAgICAgIHJlcXVpcmUgPSB1bmRlZmluZWQ7CiAgICB9CgogICAgZnVuY3Rpb24gbmV3Q29udGV4dChjb250ZXh0TmFtZSkgewogICAgICAgIHZhciBpbkNoZWNrTG9hZGVkLCBNb2R1bGUsIGNvbnRleHQsIGhhbmRsZXJzLAogICAgICAgICAgICBjaGVja0xvYWRlZFRpbWVvdXRJZCwKICAgICAgICAgICAgY29uZmlnID0gewogICAgICAgICAgICAgICAgLy9EZWZhdWx0cy4gRG8gbm90IHNldCBhIGRlZmF1bHQgZm9yIG1hcAogICAgICAgICAgICAgICAgLy9jb25maWcgdG8gc3BlZWQgdXAgbm9ybWFsaXplKCksIHdoaWNoCiAgICAgICAgICAgICAgICAvL3dpbGwgcnVuIGZhc3RlciBpZiB0aGVyZSBpcyBubyBkZWZhdWx0LgogICAgICAgICAgICAgICAgd2FpdFNlY29uZHM6IDcsCiAgICAgICAgICAgICAgICBiYXNlVXJsOiAnLi8nLAogICAgICAgICAgICAgICAgcGF0aHM6IHt9LAogICAgICAgICAgICAgICAgYnVuZGxlczoge30sCiAgICAgICAgICAgICAgICBwa2dzOiB7fSwKICAgICAgICAgICAgICAgIHNoaW06IHt9LAogICAgICAgICAgICAgICAgY29uZmlnOiB7fQogICAgICAgICAgICB9LAogICAgICAgICAgICByZWdpc3RyeSA9IHt9LAogICAgICAgICAgICAvL3JlZ2lzdHJ5IG9mIGp1c3QgZW5hYmxlZCBtb2R1bGVzLCB0byBzcGVlZAogICAgICAgICAgICAvL2N5Y2xlIGJyZWFraW5nIGNvZGUgd2hlbiBsb3RzIG9mIG1vZHVsZXMKICAgICAgICAgICAgLy9hcmUgcmVnaXN0ZXJlZCwgYnV0IG5vdCBhY3RpdmF0ZWQuCiAgICAgICAgICAgIGVuYWJsZWRSZWdpc3RyeSA9IHt9LAogICAgICAgICAgICB1bmRlZkV2ZW50cyA9IHt9LAogICAgICAgICAgICBkZWZRdWV1ZSA9IFtdLAogICAgICAgICAgICBkZWZpbmVkID0ge30sCiAgICAgICAgICAgIHVybEZldGNoZWQgPSB7fSwKICAgICAgICAgICAgYnVuZGxlc01hcCA9IHt9LAogICAgICAgICAgICByZXF1aXJlQ291bnRlciA9IDEsCiAgICAgICAgICAgIHVubm9ybWFsaXplZENvdW50ZXIgPSAxOwoKICAgICAgICAvKioKICAgICAgICAgKiBUcmltcyB0aGUgLiBhbmQgLi4gZnJvbSBhbiBhcnJheSBvZiBwYXRoIHNlZ21lbnRzLgogICAgICAgICAqIEl0IHdpbGwga2VlcCBhIGxlYWRpbmcgcGF0aCBzZWdtZW50IGlmIGEgLi4gd2lsbCBiZWNvbWUKICAgICAgICAgKiB0aGUgZmlyc3QgcGF0aCBzZWdtZW50LCB0byBoZWxwIHdpdGggbW9kdWxlIG5hbWUgbG9va3VwcywKICAgICAgICAgKiB3aGljaCBhY3QgbGlrZSBwYXRocywgYnV0IGNhbiBiZSByZW1hcHBlZC4gQnV0IHRoZSBlbmQgcmVzdWx0LAogICAgICAgICAqIGFsbCBwYXRocyB0aGF0IHVzZSB0aGlzIGZ1bmN0aW9uIHNob3VsZCBsb29rIG5vcm1hbGl6ZWQuCiAgICAgICAgICogTk9URTogdGhpcyBtZXRob2QgTU9ESUZJRVMgdGhlIGlucHV0IGFycmF5LgogICAgICAgICAqIEBwYXJhbSB7QXJyYXl9IGFyeSB0aGUgYXJyYXkgb2YgcGF0aCBzZWdtZW50cy4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiB0cmltRG90cyhhcnkpIHsKICAgICAgICAgICAgdmFyIGksIHBhcnQ7CiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBhcnkubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIHBhcnQgPSBhcnlbaV07CiAgICAgICAgICAgICAgICBpZiAocGFydCA9PT0gJy4nKSB7CiAgICAgICAgICAgICAgICAgICAgYXJ5LnNwbGljZShpLCAxKTsKICAgICAgICAgICAgICAgICAgICBpIC09IDE7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhcnQgPT09ICcuLicpIHsKICAgICAgICAgICAgICAgICAgICAvLyBJZiBhdCB0aGUgc3RhcnQsIG9yIHByZXZpb3VzIHZhbHVlIGlzIHN0aWxsIC4uLAogICAgICAgICAgICAgICAgICAgIC8vIGtlZXAgdGhlbSBzbyB0aGF0IHdoZW4gY29udmVydGVkIHRvIGEgcGF0aCBpdCBtYXkKICAgICAgICAgICAgICAgICAgICAvLyBzdGlsbCB3b3JrIHdoZW4gY29udmVydGVkIHRvIGEgcGF0aCwgZXZlbiB0aG91Z2gKICAgICAgICAgICAgICAgICAgICAvLyBhcyBhbiBJRCBpdCBpcyBsZXNzIHRoYW4gaWRlYWwuIEluIGxhcmdlciBwb2ludAogICAgICAgICAgICAgICAgICAgIC8vIHJlbGVhc2VzLCBtYXkgYmUgYmV0dGVyIHRvIGp1c3Qga2ljayBvdXQgYW4gZXJyb3IuCiAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT09IDAgfHwgKGkgPT09IDEgJiYgYXJ5WzJdID09PSAnLi4nKSB8fCBhcnlbaSAtIDFdID09PSAnLi4nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgYXJ5LnNwbGljZShpIC0gMSwgMik7CiAgICAgICAgICAgICAgICAgICAgICAgIGkgLT0gMjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8qKgogICAgICAgICAqIEdpdmVuIGEgcmVsYXRpdmUgbW9kdWxlIG5hbWUsIGxpa2UgLi9zb21ldGhpbmcsIG5vcm1hbGl6ZSBpdCB0bwogICAgICAgICAqIGEgcmVhbCBuYW1lIHRoYXQgY2FuIGJlIG1hcHBlZCB0byBhIHBhdGguCiAgICAgICAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgdGhlIHJlbGF0aXZlIG5hbWUKICAgICAgICAgKiBAcGFyYW0ge1N0cmluZ30gYmFzZU5hbWUgYSByZWFsIG5hbWUgdGhhdCB0aGUgbmFtZSBhcmcgaXMgcmVsYXRpdmUKICAgICAgICAgKiB0by4KICAgICAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IGFwcGx5TWFwIGFwcGx5IHRoZSBtYXAgY29uZmlnIHRvIHRoZSB2YWx1ZS4gU2hvdWxkCiAgICAgICAgICogb25seSBiZSBkb25lIGlmIHRoaXMgbm9ybWFsaXphdGlvbiBpcyBmb3IgYSBkZXBlbmRlbmN5IElELgogICAgICAgICAqIEByZXR1cm5zIHtTdHJpbmd9IG5vcm1hbGl6ZWQgbmFtZQogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZShuYW1lLCBiYXNlTmFtZSwgYXBwbHlNYXApIHsKICAgICAgICAgICAgdmFyIHBrZ01haW4sIG1hcFZhbHVlLCBuYW1lUGFydHMsIGksIGosIG5hbWVTZWdtZW50LCBsYXN0SW5kZXgsCiAgICAgICAgICAgICAgICBmb3VuZE1hcCwgZm91bmRJLCBmb3VuZFN0YXJNYXAsIHN0YXJJLCBub3JtYWxpemVkQmFzZVBhcnRzLAogICAgICAgICAgICAgICAgYmFzZVBhcnRzID0gKGJhc2VOYW1lICYmIGJhc2VOYW1lLnNwbGl0KCcvJykpLAogICAgICAgICAgICAgICAgbWFwID0gY29uZmlnLm1hcCwKICAgICAgICAgICAgICAgIHN0YXJNYXAgPSBtYXAgJiYgbWFwWycqJ107CgogICAgICAgICAgICAvL0FkanVzdCBhbnkgcmVsYXRpdmUgcGF0aHMuCiAgICAgICAgICAgIGlmIChuYW1lKSB7CiAgICAgICAgICAgICAgICBuYW1lID0gbmFtZS5zcGxpdCgnLycpOwogICAgICAgICAgICAgICAgbGFzdEluZGV4ID0gbmFtZS5sZW5ndGggLSAxOwoKICAgICAgICAgICAgICAgIC8vIElmIHdhbnRpbmcgbm9kZSBJRCBjb21wYXRpYmlsaXR5LCBzdHJpcCAuanMgZnJvbSBlbmQKICAgICAgICAgICAgICAgIC8vIG9mIElEcy4gSGF2ZSB0byBkbyB0aGlzIGhlcmUsIGFuZCBub3QgaW4gbmFtZVRvVXJsCiAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIG5vZGUgYWxsb3dzIGVpdGhlciAuanMgb3Igbm9uIC5qcyB0byBtYXAKICAgICAgICAgICAgICAgIC8vIHRvIHNhbWUgZmlsZS4KICAgICAgICAgICAgICAgIGlmIChjb25maWcubm9kZUlkQ29tcGF0ICYmIGpzU3VmZml4UmVnRXhwLnRlc3QobmFtZVtsYXN0SW5kZXhdKSkgewogICAgICAgICAgICAgICAgICAgIG5hbWVbbGFzdEluZGV4XSA9IG5hbWVbbGFzdEluZGV4XS5yZXBsYWNlKGpzU3VmZml4UmVnRXhwLCAnJyk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gU3RhcnRzIHdpdGggYSAnLicgc28gbmVlZCB0aGUgYmFzZU5hbWUKICAgICAgICAgICAgICAgIGlmIChuYW1lWzBdLmNoYXJBdCgwKSA9PT0gJy4nICYmIGJhc2VQYXJ0cykgewogICAgICAgICAgICAgICAgICAgIC8vQ29udmVydCBiYXNlTmFtZSB0byBhcnJheSwgYW5kIGxvcCBvZmYgdGhlIGxhc3QgcGFydCwKICAgICAgICAgICAgICAgICAgICAvL3NvIHRoYXQgLiBtYXRjaGVzIHRoYXQgJ2RpcmVjdG9yeScgYW5kIG5vdCBuYW1lIG9mIHRoZSBiYXNlTmFtZSdzCiAgICAgICAgICAgICAgICAgICAgLy9tb2R1bGUuIEZvciBpbnN0YW5jZSwgYmFzZU5hbWUgb2YgJ29uZS90d28vdGhyZWUnLCBtYXBzIHRvCiAgICAgICAgICAgICAgICAgICAgLy8nb25lL3R3by90aHJlZS5qcycsIGJ1dCB3ZSB3YW50IHRoZSBkaXJlY3RvcnksICdvbmUvdHdvJyBmb3IKICAgICAgICAgICAgICAgICAgICAvL3RoaXMgbm9ybWFsaXphdGlvbi4KICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkQmFzZVBhcnRzID0gYmFzZVBhcnRzLnNsaWNlKDAsIGJhc2VQYXJ0cy5sZW5ndGggLSAxKTsKICAgICAgICAgICAgICAgICAgICBuYW1lID0gbm9ybWFsaXplZEJhc2VQYXJ0cy5jb25jYXQobmFtZSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgdHJpbURvdHMobmFtZSk7CiAgICAgICAgICAgICAgICBuYW1lID0gbmFtZS5qb2luKCcvJyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vQXBwbHkgbWFwIGNvbmZpZyBpZiBhdmFpbGFibGUuCiAgICAgICAgICAgIGlmIChhcHBseU1hcCAmJiBtYXAgJiYgKGJhc2VQYXJ0cyB8fCBzdGFyTWFwKSkgewogICAgICAgICAgICAgICAgbmFtZVBhcnRzID0gbmFtZS5zcGxpdCgnLycpOwoKICAgICAgICAgICAgICAgIG91dGVyTG9vcDogZm9yIChpID0gbmFtZVBhcnRzLmxlbmd0aDsgaSA+IDA7IGkgLT0gMSkgewogICAgICAgICAgICAgICAgICAgIG5hbWVTZWdtZW50ID0gbmFtZVBhcnRzLnNsaWNlKDAsIGkpLmpvaW4oJy8nKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKGJhc2VQYXJ0cykgewogICAgICAgICAgICAgICAgICAgICAgICAvL0ZpbmQgdGhlIGxvbmdlc3QgYmFzZU5hbWUgc2VnbWVudCBtYXRjaCBpbiB0aGUgY29uZmlnLgogICAgICAgICAgICAgICAgICAgICAgICAvL1NvLCBkbyBqb2lucyBvbiB0aGUgYmlnZ2VzdCB0byBzbWFsbGVzdCBsZW5ndGhzIG9mIGJhc2VQYXJ0cy4KICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChqID0gYmFzZVBhcnRzLmxlbmd0aDsgaiA+IDA7IGogLT0gMSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwVmFsdWUgPSBnZXRPd24obWFwLCBiYXNlUGFydHMuc2xpY2UoMCwgaikuam9pbignLycpKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2Jhc2VOYW1lIHNlZ21lbnQgaGFzIGNvbmZpZywgZmluZCBpZiBpdCBoYXMgb25lIGZvcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy90aGlzIG5hbWUuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWFwVmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBWYWx1ZSA9IGdldE93bihtYXBWYWx1ZSwgbmFtZVNlZ21lbnQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXBWYWx1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL01hdGNoLCB1cGRhdGUgbmFtZSB0byB0aGUgbmV3IHZhbHVlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZE1hcCA9IG1hcFZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZEkgPSBpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBvdXRlckxvb3A7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAvL0NoZWNrIGZvciBhIHN0YXIgbWFwIG1hdGNoLCBidXQganVzdCBob2xkIG9uIHRvIGl0LAogICAgICAgICAgICAgICAgICAgIC8vaWYgdGhlcmUgaXMgYSBzaG9ydGVyIHNlZ21lbnQgbWF0Y2ggbGF0ZXIgaW4gYSBtYXRjaGluZwogICAgICAgICAgICAgICAgICAgIC8vY29uZmlnLCB0aGVuIGZhdm9yIG92ZXIgdGhpcyBzdGFyIG1hcC4KICAgICAgICAgICAgICAgICAgICBpZiAoIWZvdW5kU3Rhck1hcCAmJiBzdGFyTWFwICYmIGdldE93bihzdGFyTWFwLCBuYW1lU2VnbWVudCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRTdGFyTWFwID0gZ2V0T3duKHN0YXJNYXAsIG5hbWVTZWdtZW50KTsKICAgICAgICAgICAgICAgICAgICAgICAgc3RhckkgPSBpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoIWZvdW5kTWFwICYmIGZvdW5kU3Rhck1hcCkgewogICAgICAgICAgICAgICAgICAgIGZvdW5kTWFwID0gZm91bmRTdGFyTWFwOwogICAgICAgICAgICAgICAgICAgIGZvdW5kSSA9IHN0YXJJOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChmb3VuZE1hcCkgewogICAgICAgICAgICAgICAgICAgIG5hbWVQYXJ0cy5zcGxpY2UoMCwgZm91bmRJLCBmb3VuZE1hcCk7CiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG5hbWVQYXJ0cy5qb2luKCcvJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIElmIHRoZSBuYW1lIHBvaW50cyB0byBhIHBhY2thZ2UncyBuYW1lLCB1c2UKICAgICAgICAgICAgLy8gdGhlIHBhY2thZ2UgbWFpbiBpbnN0ZWFkLgogICAgICAgICAgICBwa2dNYWluID0gZ2V0T3duKGNvbmZpZy5wa2dzLCBuYW1lKTsKCiAgICAgICAgICAgIHJldHVybiBwa2dNYWluID8gcGtnTWFpbiA6IG5hbWU7CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiByZW1vdmVTY3JpcHQobmFtZSkgewogICAgICAgICAgICBpZiAoaXNCcm93c2VyKSB7CiAgICAgICAgICAgICAgICBlYWNoKHNjcmlwdHMoKSwgZnVuY3Rpb24gKHNjcmlwdE5vZGUpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoc2NyaXB0Tm9kZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtcmVxdWlyZW1vZHVsZScpID09PSBuYW1lICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHROb2RlLmdldEF0dHJpYnV0ZSgnZGF0YS1yZXF1aXJlY29udGV4dCcpID09PSBjb250ZXh0LmNvbnRleHROYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdE5vZGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzY3JpcHROb2RlKTsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIGhhc1BhdGhGYWxsYmFjayhpZCkgewogICAgICAgICAgICB2YXIgcGF0aENvbmZpZyA9IGdldE93bihjb25maWcucGF0aHMsIGlkKTsKICAgICAgICAgICAgaWYgKHBhdGhDb25maWcgJiYgaXNBcnJheShwYXRoQ29uZmlnKSAmJiBwYXRoQ29uZmlnLmxlbmd0aCA+IDEpIHsKICAgICAgICAgICAgICAgIC8vUG9wIG9mZiB0aGUgZmlyc3QgYXJyYXkgdmFsdWUsIHNpbmNlIGl0IGZhaWxlZCwgYW5kCiAgICAgICAgICAgICAgICAvL3JldHJ5CiAgICAgICAgICAgICAgICBwYXRoQ29uZmlnLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICBjb250ZXh0LnJlcXVpcmUudW5kZWYoaWQpOwoKICAgICAgICAgICAgICAgIC8vQ3VzdG9tIHJlcXVpcmUgdGhhdCBkb2VzIG5vdCBkbyBtYXAgdHJhbnNsYXRpb24sIHNpbmNlCiAgICAgICAgICAgICAgICAvL0lEIGlzICJhYnNvbHV0ZSIsIGFscmVhZHkgbWFwcGVkL3Jlc29sdmVkLgogICAgICAgICAgICAgICAgY29udGV4dC5tYWtlUmVxdWlyZShudWxsLCB7CiAgICAgICAgICAgICAgICAgICAgc2tpcE1hcDogdHJ1ZQogICAgICAgICAgICAgICAgfSkoW2lkXSk7CgogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vVHVybnMgYSBwbHVnaW4hcmVzb3VyY2UgdG8gW3BsdWdpbiwgcmVzb3VyY2VdCiAgICAgICAgLy93aXRoIHRoZSBwbHVnaW4gYmVpbmcgdW5kZWZpbmVkIGlmIHRoZSBuYW1lCiAgICAgICAgLy9kaWQgbm90IGhhdmUgYSBwbHVnaW4gcHJlZml4LgogICAgICAgIGZ1bmN0aW9uIHNwbGl0UHJlZml4KG5hbWUpIHsKICAgICAgICAgICAgdmFyIHByZWZpeCwKICAgICAgICAgICAgICAgIGluZGV4ID0gbmFtZSA/IG5hbWUuaW5kZXhPZignIScpIDogLTE7CiAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7CiAgICAgICAgICAgICAgICBwcmVmaXggPSBuYW1lLnN1YnN0cmluZygwLCBpbmRleCk7CiAgICAgICAgICAgICAgICBuYW1lID0gbmFtZS5zdWJzdHJpbmcoaW5kZXggKyAxLCBuYW1lLmxlbmd0aCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIFtwcmVmaXgsIG5hbWVdOwogICAgICAgIH0KCiAgICAgICAgLyoqCiAgICAgICAgICogQ3JlYXRlcyBhIG1vZHVsZSBtYXBwaW5nIHRoYXQgaW5jbHVkZXMgcGx1Z2luIHByZWZpeCwgbW9kdWxlCiAgICAgICAgICogbmFtZSwgYW5kIHBhdGguIElmIHBhcmVudE1vZHVsZU1hcCBpcyBwcm92aWRlZCBpdCB3aWxsCiAgICAgICAgICogYWxzbyBub3JtYWxpemUgdGhlIG5hbWUgdmlhIHJlcXVpcmUubm9ybWFsaXplKCkKICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIHRoZSBtb2R1bGUgbmFtZQogICAgICAgICAqIEBwYXJhbSB7U3RyaW5nfSBbcGFyZW50TW9kdWxlTWFwXSBwYXJlbnQgbW9kdWxlIG1hcAogICAgICAgICAqIGZvciB0aGUgbW9kdWxlIG5hbWUsIHVzZWQgdG8gcmVzb2x2ZSByZWxhdGl2ZSBuYW1lcy4KICAgICAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IGlzTm9ybWFsaXplZDogaXMgdGhlIElEIGFscmVhZHkgbm9ybWFsaXplZC4KICAgICAgICAgKiBUaGlzIGlzIHRydWUgaWYgdGhpcyBjYWxsIGlzIGRvbmUgZm9yIGEgZGVmaW5lKCkgbW9kdWxlIElELgogICAgICAgICAqIEBwYXJhbSB7Qm9vbGVhbn0gYXBwbHlNYXA6IGFwcGx5IHRoZSBtYXAgY29uZmlnIHRvIHRoZSBJRC4KICAgICAgICAgKiBTaG91bGQgb25seSBiZSB0cnVlIGlmIHRoaXMgbWFwIGlzIGZvciBhIGRlcGVuZGVuY3kuCiAgICAgICAgICoKICAgICAgICAgKiBAcmV0dXJucyB7T2JqZWN0fQogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIG1ha2VNb2R1bGVNYXAobmFtZSwgcGFyZW50TW9kdWxlTWFwLCBpc05vcm1hbGl6ZWQsIGFwcGx5TWFwKSB7CiAgICAgICAgICAgIHZhciB1cmwsIHBsdWdpbk1vZHVsZSwgc3VmZml4LCBuYW1lUGFydHMsCiAgICAgICAgICAgICAgICBwcmVmaXggPSBudWxsLAogICAgICAgICAgICAgICAgcGFyZW50TmFtZSA9IHBhcmVudE1vZHVsZU1hcCA/IHBhcmVudE1vZHVsZU1hcC5uYW1lIDogbnVsbCwKICAgICAgICAgICAgICAgIG9yaWdpbmFsTmFtZSA9IG5hbWUsCiAgICAgICAgICAgICAgICBpc0RlZmluZSA9IHRydWUsCiAgICAgICAgICAgICAgICBub3JtYWxpemVkTmFtZSA9ICcnOwoKICAgICAgICAgICAgLy9JZiBubyBuYW1lLCB0aGVuIGl0IG1lYW5zIGl0IGlzIGEgcmVxdWlyZSBjYWxsLCBnZW5lcmF0ZSBhbgogICAgICAgICAgICAvL2ludGVybmFsIG5hbWUuCiAgICAgICAgICAgIGlmICghbmFtZSkgewogICAgICAgICAgICAgICAgaXNEZWZpbmUgPSBmYWxzZTsKICAgICAgICAgICAgICAgIG5hbWUgPSAnX0ByJyArIChyZXF1aXJlQ291bnRlciArPSAxKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbmFtZVBhcnRzID0gc3BsaXRQcmVmaXgobmFtZSk7CiAgICAgICAgICAgIHByZWZpeCA9IG5hbWVQYXJ0c1swXTsKICAgICAgICAgICAgbmFtZSA9IG5hbWVQYXJ0c1sxXTsKCiAgICAgICAgICAgIGlmIChwcmVmaXgpIHsKICAgICAgICAgICAgICAgIHByZWZpeCA9IG5vcm1hbGl6ZShwcmVmaXgsIHBhcmVudE5hbWUsIGFwcGx5TWFwKTsKICAgICAgICAgICAgICAgIHBsdWdpbk1vZHVsZSA9IGdldE93bihkZWZpbmVkLCBwcmVmaXgpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvL0FjY291bnQgZm9yIHJlbGF0aXZlIHBhdGhzIGlmIHRoZXJlIGlzIGEgYmFzZSBuYW1lLgogICAgICAgICAgICBpZiAobmFtZSkgewogICAgICAgICAgICAgICAgaWYgKHByZWZpeCkgewogICAgICAgICAgICAgICAgICAgIGlmIChpc05vcm1hbGl6ZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZE5hbWUgPSBuYW1lOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGx1Z2luTW9kdWxlICYmIHBsdWdpbk1vZHVsZS5ub3JtYWxpemUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy9QbHVnaW4gaXMgbG9hZGVkLCB1c2UgaXRzIG5vcm1hbGl6ZSBtZXRob2QuCiAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWROYW1lID0gcGx1Z2luTW9kdWxlLm5vcm1hbGl6ZShuYW1lLCBmdW5jdGlvbiAobmFtZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShuYW1lLCBwYXJlbnROYW1lLCBhcHBseU1hcCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIG5lc3RlZCBwbHVnaW4gcmVmZXJlbmNlcywgdGhlbiBkbyBub3QgdHJ5IHRvCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vcm1hbGl6ZSwgYXMgaXQgd2lsbCBub3Qgbm9ybWFsaXplIGNvcnJlY3RseS4gVGhpcwogICAgICAgICAgICAgICAgICAgICAgICAvLyBwbGFjZXMgYSByZXN0cmljdGlvbiBvbiByZXNvdXJjZUlkcywgYW5kIHRoZSBsb25nZXIKICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGVybSBzb2x1dGlvbiBpcyBub3QgdG8gbm9ybWFsaXplIHVudGlsIHBsdWdpbnMgYXJlCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvYWRlZCBhbmQgYWxsIG5vcm1hbGl6YXRpb25zIHRvIGFsbG93IGZvciBhc3luYwogICAgICAgICAgICAgICAgICAgICAgICAvLyBsb2FkaW5nIG9mIGEgbG9hZGVyIHBsdWdpbi4gQnV0IGZvciBub3csIGZpeGVzIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAvLyBjb21tb24gdXNlcy4gRGV0YWlscyBpbiAjMTEzMQogICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkTmFtZSA9IG5hbWUuaW5kZXhPZignIScpID09PSAtMSA/CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplKG5hbWUsIHBhcmVudE5hbWUsIGFwcGx5TWFwKSA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIC8vQSByZWd1bGFyIG1vZHVsZS4KICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkTmFtZSA9IG5vcm1hbGl6ZShuYW1lLCBwYXJlbnROYW1lLCBhcHBseU1hcCk7CgogICAgICAgICAgICAgICAgICAgIC8vTm9ybWFsaXplZCBuYW1lIG1heSBiZSBhIHBsdWdpbiBJRCBkdWUgdG8gbWFwIGNvbmZpZwogICAgICAgICAgICAgICAgICAgIC8vYXBwbGljYXRpb24gaW4gbm9ybWFsaXplLiBUaGUgbWFwIGNvbmZpZyB2YWx1ZXMgbXVzdAogICAgICAgICAgICAgICAgICAgIC8vYWxyZWFkeSBiZSBub3JtYWxpemVkLCBzbyBkbyBub3QgbmVlZCB0byByZWRvIHRoYXQgcGFydC4KICAgICAgICAgICAgICAgICAgICBuYW1lUGFydHMgPSBzcGxpdFByZWZpeChub3JtYWxpemVkTmFtZSk7CiAgICAgICAgICAgICAgICAgICAgcHJlZml4ID0gbmFtZVBhcnRzWzBdOwogICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWROYW1lID0gbmFtZVBhcnRzWzFdOwogICAgICAgICAgICAgICAgICAgIGlzTm9ybWFsaXplZCA9IHRydWU7CgogICAgICAgICAgICAgICAgICAgIHVybCA9IGNvbnRleHQubmFtZVRvVXJsKG5vcm1hbGl6ZWROYW1lKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy9JZiB0aGUgaWQgaXMgYSBwbHVnaW4gaWQgdGhhdCBjYW5ub3QgYmUgZGV0ZXJtaW5lZCBpZiBpdCBuZWVkcwogICAgICAgICAgICAvL25vcm1hbGl6YXRpb24sIHN0YW1wIGl0IHdpdGggYSB1bmlxdWUgSUQgc28gdHdvIG1hdGNoaW5nIHJlbGF0aXZlCiAgICAgICAgICAgIC8vaWRzIHRoYXQgbWF5IGNvbmZsaWN0IGNhbiBiZSBzZXBhcmF0ZS4KICAgICAgICAgICAgc3VmZml4ID0gcHJlZml4ICYmICFwbHVnaW5Nb2R1bGUgJiYgIWlzTm9ybWFsaXplZCA/CiAgICAgICAgICAgICAgICAgICAgICdfdW5ub3JtYWxpemVkJyArICh1bm5vcm1hbGl6ZWRDb3VudGVyICs9IDEpIDoKICAgICAgICAgICAgICAgICAgICAgJyc7CgogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgcHJlZml4OiBwcmVmaXgsCiAgICAgICAgICAgICAgICBuYW1lOiBub3JtYWxpemVkTmFtZSwKICAgICAgICAgICAgICAgIHBhcmVudE1hcDogcGFyZW50TW9kdWxlTWFwLAogICAgICAgICAgICAgICAgdW5ub3JtYWxpemVkOiAhIXN1ZmZpeCwKICAgICAgICAgICAgICAgIHVybDogdXJsLAogICAgICAgICAgICAgICAgb3JpZ2luYWxOYW1lOiBvcmlnaW5hbE5hbWUsCiAgICAgICAgICAgICAgICBpc0RlZmluZTogaXNEZWZpbmUsCiAgICAgICAgICAgICAgICBpZDogKHByZWZpeCA/CiAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeCArICchJyArIG5vcm1hbGl6ZWROYW1lIDoKICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZE5hbWUpICsgc3VmZml4CiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBnZXRNb2R1bGUoZGVwTWFwKSB7CiAgICAgICAgICAgIHZhciBpZCA9IGRlcE1hcC5pZCwKICAgICAgICAgICAgICAgIG1vZCA9IGdldE93bihyZWdpc3RyeSwgaWQpOwoKICAgICAgICAgICAgaWYgKCFtb2QpIHsKICAgICAgICAgICAgICAgIG1vZCA9IHJlZ2lzdHJ5W2lkXSA9IG5ldyBjb250ZXh0Lk1vZHVsZShkZXBNYXApOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gbW9kOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gb24oZGVwTWFwLCBuYW1lLCBmbikgewogICAgICAgICAgICB2YXIgaWQgPSBkZXBNYXAuaWQsCiAgICAgICAgICAgICAgICBtb2QgPSBnZXRPd24ocmVnaXN0cnksIGlkKTsKCiAgICAgICAgICAgIGlmIChoYXNQcm9wKGRlZmluZWQsIGlkKSAmJgogICAgICAgICAgICAgICAgICAgICghbW9kIHx8IG1vZC5kZWZpbmVFbWl0Q29tcGxldGUpKSB7CiAgICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gJ2RlZmluZWQnKSB7CiAgICAgICAgICAgICAgICAgICAgZm4oZGVmaW5lZFtpZF0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbW9kID0gZ2V0TW9kdWxlKGRlcE1hcCk7CiAgICAgICAgICAgICAgICBpZiAobW9kLmVycm9yICYmIG5hbWUgPT09ICdlcnJvcicpIHsKICAgICAgICAgICAgICAgICAgICBmbihtb2QuZXJyb3IpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBtb2Qub24obmFtZSwgZm4pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBvbkVycm9yKGVyciwgZXJyYmFjaykgewogICAgICAgICAgICB2YXIgaWRzID0gZXJyLnJlcXVpcmVNb2R1bGVzLAogICAgICAgICAgICAgICAgbm90aWZpZWQgPSBmYWxzZTsKCiAgICAgICAgICAgIGlmIChlcnJiYWNrKSB7CiAgICAgICAgICAgICAgICBlcnJiYWNrKGVycik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBlYWNoKGlkcywgZnVuY3Rpb24gKGlkKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIG1vZCA9IGdldE93bihyZWdpc3RyeSwgaWQpOwogICAgICAgICAgICAgICAgICAgIGlmIChtb2QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy9TZXQgZXJyb3Igb24gbW9kdWxlLCBzbyBpdCBza2lwcyB0aW1lb3V0IGNoZWNrcy4KICAgICAgICAgICAgICAgICAgICAgICAgbW9kLmVycm9yID0gZXJyOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAobW9kLmV2ZW50cy5lcnJvcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZpZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kLmVtaXQoJ2Vycm9yJywgZXJyKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgIGlmICghbm90aWZpZWQpIHsKICAgICAgICAgICAgICAgICAgICByZXEub25FcnJvcihlcnIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvKioKICAgICAgICAgKiBJbnRlcm5hbCBtZXRob2QgdG8gdHJhbnNmZXIgZ2xvYmFsUXVldWUgaXRlbXMgdG8gdGhpcyBjb250ZXh0J3MKICAgICAgICAgKiBkZWZRdWV1ZS4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiB0YWtlR2xvYmFsUXVldWUoKSB7CiAgICAgICAgICAgIC8vUHVzaCBhbGwgdGhlIGdsb2JhbERlZlF1ZXVlIGl0ZW1zIGludG8gdGhlIGNvbnRleHQncyBkZWZRdWV1ZQogICAgICAgICAgICBpZiAoZ2xvYmFsRGVmUXVldWUubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICBlYWNoKGdsb2JhbERlZlF1ZXVlLCBmdW5jdGlvbihxdWV1ZUl0ZW0pIHsKICAgICAgICAgICAgICAgICAgICB2YXIgaWQgPSBxdWV1ZUl0ZW1bMF07CiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBpZCA9PT0gJ3N0cmluZycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5kZWZRdWV1ZU1hcFtpZF0gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBkZWZRdWV1ZS5wdXNoKHF1ZXVlSXRlbSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGdsb2JhbERlZlF1ZXVlID0gW107CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGhhbmRsZXJzID0gewogICAgICAgICAgICAncmVxdWlyZSc6IGZ1bmN0aW9uIChtb2QpIHsKICAgICAgICAgICAgICAgIGlmIChtb2QucmVxdWlyZSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBtb2QucmVxdWlyZTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChtb2QucmVxdWlyZSA9IGNvbnRleHQubWFrZVJlcXVpcmUobW9kLm1hcCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICAnZXhwb3J0cyc6IGZ1bmN0aW9uIChtb2QpIHsKICAgICAgICAgICAgICAgIG1vZC51c2luZ0V4cG9ydHMgPSB0cnVlOwogICAgICAgICAgICAgICAgaWYgKG1vZC5tYXAuaXNEZWZpbmUpIHsKICAgICAgICAgICAgICAgICAgICBpZiAobW9kLmV4cG9ydHMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChkZWZpbmVkW21vZC5tYXAuaWRdID0gbW9kLmV4cG9ydHMpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAobW9kLmV4cG9ydHMgPSBkZWZpbmVkW21vZC5tYXAuaWRdID0ge30pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ21vZHVsZSc6IGZ1bmN0aW9uIChtb2QpIHsKICAgICAgICAgICAgICAgIGlmIChtb2QubW9kdWxlKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vZC5tb2R1bGU7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAobW9kLm1vZHVsZSA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IG1vZC5tYXAuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgIHVyaTogbW9kLm1hcC51cmwsCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZzogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdldE93bihjb25maWcuY29uZmlnLCBtb2QubWFwLmlkKSB8fCB7fTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3J0czogbW9kLmV4cG9ydHMgfHwgKG1vZC5leHBvcnRzID0ge30pCiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBmdW5jdGlvbiBjbGVhblJlZ2lzdHJ5KGlkKSB7CiAgICAgICAgICAgIC8vQ2xlYW4gdXAgbWFjaGluZXJ5IHVzZWQgZm9yIHdhaXRpbmcgbW9kdWxlcy4KICAgICAgICAgICAgZGVsZXRlIHJlZ2lzdHJ5W2lkXTsKICAgICAgICAgICAgZGVsZXRlIGVuYWJsZWRSZWdpc3RyeVtpZF07CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBicmVha0N5Y2xlKG1vZCwgdHJhY2VkLCBwcm9jZXNzZWQpIHsKICAgICAgICAgICAgdmFyIGlkID0gbW9kLm1hcC5pZDsKCiAgICAgICAgICAgIGlmIChtb2QuZXJyb3IpIHsKICAgICAgICAgICAgICAgIG1vZC5lbWl0KCdlcnJvcicsIG1vZC5lcnJvcik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0cmFjZWRbaWRdID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGVhY2gobW9kLmRlcE1hcHMsIGZ1bmN0aW9uIChkZXBNYXAsIGkpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGVwSWQgPSBkZXBNYXAuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgIGRlcCA9IGdldE93bihyZWdpc3RyeSwgZGVwSWQpOwoKICAgICAgICAgICAgICAgICAgICAvL09ubHkgZm9yY2UgdGhpbmdzIHRoYXQgaGF2ZSBub3QgY29tcGxldGVkCiAgICAgICAgICAgICAgICAgICAgLy9iZWluZyBkZWZpbmVkLCBzbyBzdGlsbCBpbiB0aGUgcmVnaXN0cnksCiAgICAgICAgICAgICAgICAgICAgLy9hbmQgb25seSBpZiBpdCBoYXMgbm90IGJlZW4gbWF0Y2hlZCB1cAogICAgICAgICAgICAgICAgICAgIC8vaW4gdGhlIG1vZHVsZSBhbHJlYWR5LgogICAgICAgICAgICAgICAgICAgIGlmIChkZXAgJiYgIW1vZC5kZXBNYXRjaGVkW2ldICYmICFwcm9jZXNzZWRbZGVwSWRdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChnZXRPd24odHJhY2VkLCBkZXBJZCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZC5kZWZpbmVEZXAoaSwgZGVmaW5lZFtkZXBJZF0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kLmNoZWNrKCk7IC8vcGFzcyBmYWxzZT8KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrQ3ljbGUoZGVwLCB0cmFjZWQsIHByb2Nlc3NlZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIHByb2Nlc3NlZFtpZF0gPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBjaGVja0xvYWRlZCgpIHsKICAgICAgICAgICAgdmFyIGVyciwgdXNpbmdQYXRoRmFsbGJhY2ssCiAgICAgICAgICAgICAgICB3YWl0SW50ZXJ2YWwgPSBjb25maWcud2FpdFNlY29uZHMgKiAxMDAwLAogICAgICAgICAgICAgICAgLy9JdCBpcyBwb3NzaWJsZSB0byBkaXNhYmxlIHRoZSB3YWl0IGludGVydmFsIGJ5IHVzaW5nIHdhaXRTZWNvbmRzIG9mIDAuCiAgICAgICAgICAgICAgICBleHBpcmVkID0gd2FpdEludGVydmFsICYmIChjb250ZXh0LnN0YXJ0VGltZSArIHdhaXRJbnRlcnZhbCkgPCBuZXcgRGF0ZSgpLmdldFRpbWUoKSwKICAgICAgICAgICAgICAgIG5vTG9hZHMgPSBbXSwKICAgICAgICAgICAgICAgIHJlcUNhbGxzID0gW10sCiAgICAgICAgICAgICAgICBzdGlsbExvYWRpbmcgPSBmYWxzZSwKICAgICAgICAgICAgICAgIG5lZWRDeWNsZUNoZWNrID0gdHJ1ZTsKCiAgICAgICAgICAgIC8vRG8gbm90IGJvdGhlciBpZiB0aGlzIGNhbGwgd2FzIGEgcmVzdWx0IG9mIGEgY3ljbGUgYnJlYWsuCiAgICAgICAgICAgIGlmIChpbkNoZWNrTG9hZGVkKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGluQ2hlY2tMb2FkZWQgPSB0cnVlOwoKICAgICAgICAgICAgLy9GaWd1cmUgb3V0IHRoZSBzdGF0ZSBvZiBhbGwgdGhlIG1vZHVsZXMuCiAgICAgICAgICAgIGVhY2hQcm9wKGVuYWJsZWRSZWdpc3RyeSwgZnVuY3Rpb24gKG1vZCkgewogICAgICAgICAgICAgICAgdmFyIG1hcCA9IG1vZC5tYXAsCiAgICAgICAgICAgICAgICAgICAgbW9kSWQgPSBtYXAuaWQ7CgogICAgICAgICAgICAgICAgLy9Ta2lwIHRoaW5ncyB0aGF0IGFyZSBub3QgZW5hYmxlZCBvciBpbiBlcnJvciBzdGF0ZS4KICAgICAgICAgICAgICAgIGlmICghbW9kLmVuYWJsZWQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCFtYXAuaXNEZWZpbmUpIHsKICAgICAgICAgICAgICAgICAgICByZXFDYWxscy5wdXNoKG1vZCk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCFtb2QuZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICAvL0lmIHRoZSBtb2R1bGUgc2hvdWxkIGJlIGV4ZWN1dGVkLCBhbmQgaXQgaGFzIG5vdAogICAgICAgICAgICAgICAgICAgIC8vYmVlbiBpbml0ZWQgYW5kIHRpbWUgaXMgdXAsIHJlbWVtYmVyIGl0LgogICAgICAgICAgICAgICAgICAgIGlmICghbW9kLmluaXRlZCAmJiBleHBpcmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNQYXRoRmFsbGJhY2sobW9kSWQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2luZ1BhdGhGYWxsYmFjayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlsbExvYWRpbmcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9Mb2Fkcy5wdXNoKG1vZElkKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZVNjcmlwdChtb2RJZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFtb2QuaW5pdGVkICYmIG1vZC5mZXRjaGVkICYmIG1hcC5pc0RlZmluZSkgewogICAgICAgICAgICAgICAgICAgICAgICBzdGlsbExvYWRpbmcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW1hcC5wcmVmaXgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vTm8gcmVhc29uIHRvIGtlZXAgbG9va2luZyBmb3IgdW5maW5pc2hlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9sb2FkaW5nLiBJZiB0aGUgb25seSBzdGlsbExvYWRpbmcgaXMgYQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9wbHVnaW4gcmVzb3VyY2UgdGhvdWdoLCBrZWVwIGdvaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9iZWNhdXNlIGl0IG1heSBiZSB0aGF0IGEgcGx1Z2luIHJlc291cmNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2lzIHdhaXRpbmcgb24gYSBub24tcGx1Z2luIGN5Y2xlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChuZWVkQ3ljbGVDaGVjayA9IGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CgogICAgICAgICAgICBpZiAoZXhwaXJlZCAmJiBub0xvYWRzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgLy9JZiB3YWl0IHRpbWUgZXhwaXJlZCwgdGhyb3cgZXJyb3Igb2YgdW5sb2FkZWQgbW9kdWxlcy4KICAgICAgICAgICAgICAgIGVyciA9IG1ha2VFcnJvcigndGltZW91dCcsICdMb2FkIHRpbWVvdXQgZm9yIG1vZHVsZXM6ICcgKyBub0xvYWRzLCBudWxsLCBub0xvYWRzKTsKICAgICAgICAgICAgICAgIGVyci5jb250ZXh0TmFtZSA9IGNvbnRleHQuY29udGV4dE5hbWU7CiAgICAgICAgICAgICAgICByZXR1cm4gb25FcnJvcihlcnIpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvL05vdCBleHBpcmVkLCBjaGVjayBmb3IgYSBjeWNsZS4KICAgICAgICAgICAgaWYgKG5lZWRDeWNsZUNoZWNrKSB7CiAgICAgICAgICAgICAgICBlYWNoKHJlcUNhbGxzLCBmdW5jdGlvbiAobW9kKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWtDeWNsZShtb2QsIHt9LCB7fSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy9JZiBzdGlsbCB3YWl0aW5nIG9uIGxvYWRzLCBhbmQgdGhlIHdhaXRpbmcgbG9hZCBpcyBzb21ldGhpbmcKICAgICAgICAgICAgLy9vdGhlciB0aGFuIGEgcGx1Z2luIHJlc291cmNlLCBvciB0aGVyZSBhcmUgc3RpbGwgb3V0c3RhbmRpbmcKICAgICAgICAgICAgLy9zY3JpcHRzLCB0aGVuIGp1c3QgdHJ5IGJhY2sgbGF0ZXIuCiAgICAgICAgICAgIGlmICgoIWV4cGlyZWQgfHwgdXNpbmdQYXRoRmFsbGJhY2spICYmIHN0aWxsTG9hZGluZykgewogICAgICAgICAgICAgICAgLy9Tb21ldGhpbmcgaXMgc3RpbGwgd2FpdGluZyB0byBsb2FkLiBXYWl0IGZvciBpdCwgYnV0IG9ubHkKICAgICAgICAgICAgICAgIC8vaWYgYSB0aW1lb3V0IGlzIG5vdCBhbHJlYWR5IGluIGVmZmVjdC4KICAgICAgICAgICAgICAgIGlmICgoaXNCcm93c2VyIHx8IGlzV2ViV29ya2VyKSAmJiAhY2hlY2tMb2FkZWRUaW1lb3V0SWQpIHsKICAgICAgICAgICAgICAgICAgICBjaGVja0xvYWRlZFRpbWVvdXRJZCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICBjaGVja0xvYWRlZFRpbWVvdXRJZCA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrTG9hZGVkKCk7CiAgICAgICAgICAgICAgICAgICAgfSwgNTApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpbkNoZWNrTG9hZGVkID0gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICBNb2R1bGUgPSBmdW5jdGlvbiAobWFwKSB7CiAgICAgICAgICAgIHRoaXMuZXZlbnRzID0gZ2V0T3duKHVuZGVmRXZlbnRzLCBtYXAuaWQpIHx8IHt9OwogICAgICAgICAgICB0aGlzLm1hcCA9IG1hcDsKICAgICAgICAgICAgdGhpcy5zaGltID0gZ2V0T3duKGNvbmZpZy5zaGltLCBtYXAuaWQpOwogICAgICAgICAgICB0aGlzLmRlcEV4cG9ydHMgPSBbXTsKICAgICAgICAgICAgdGhpcy5kZXBNYXBzID0gW107CiAgICAgICAgICAgIHRoaXMuZGVwTWF0Y2hlZCA9IFtdOwogICAgICAgICAgICB0aGlzLnBsdWdpbk1hcHMgPSB7fTsKICAgICAgICAgICAgdGhpcy5kZXBDb3VudCA9IDA7CgogICAgICAgICAgICAvKiB0aGlzLmV4cG9ydHMgdGhpcy5mYWN0b3J5CiAgICAgICAgICAgICAgIHRoaXMuZGVwTWFwcyA9IFtdLAogICAgICAgICAgICAgICB0aGlzLmVuYWJsZWQsIHRoaXMuZmV0Y2hlZAogICAgICAgICAgICAqLwogICAgICAgIH07CgogICAgICAgIE1vZHVsZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgIGluaXQ6IGZ1bmN0aW9uIChkZXBNYXBzLCBmYWN0b3J5LCBlcnJiYWNrLCBvcHRpb25zKSB7CiAgICAgICAgICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKCiAgICAgICAgICAgICAgICAvL0RvIG5vdCBkbyBtb3JlIGluaXRzIGlmIGFscmVhZHkgZG9uZS4gQ2FuIGhhcHBlbiBpZiB0aGVyZQogICAgICAgICAgICAgICAgLy9hcmUgbXVsdGlwbGUgZGVmaW5lIGNhbGxzIGZvciB0aGUgc2FtZSBtb2R1bGUuIFRoYXQgaXMgbm90CiAgICAgICAgICAgICAgICAvL2Egbm9ybWFsLCBjb21tb24gY2FzZSwgYnV0IGl0IGlzIGFsc28gbm90IHVuZXhwZWN0ZWQuCiAgICAgICAgICAgICAgICBpZiAodGhpcy5pbml0ZWQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgdGhpcy5mYWN0b3J5ID0gZmFjdG9yeTsKCiAgICAgICAgICAgICAgICBpZiAoZXJyYmFjaykgewogICAgICAgICAgICAgICAgICAgIC8vUmVnaXN0ZXIgZm9yIGVycm9ycyBvbiB0aGlzIG1vZHVsZS4KICAgICAgICAgICAgICAgICAgICB0aGlzLm9uKCdlcnJvcicsIGVycmJhY2spOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmV2ZW50cy5lcnJvcikgewogICAgICAgICAgICAgICAgICAgIC8vSWYgbm8gZXJyYmFjayBhbHJlYWR5LCBidXQgdGhlcmUgYXJlIGVycm9yIGxpc3RlbmVycwogICAgICAgICAgICAgICAgICAgIC8vb24gdGhpcyBtb2R1bGUsIHNldCB1cCBhbiBlcnJiYWNrIHRvIHBhc3MgdG8gdGhlIGRlcHMuCiAgICAgICAgICAgICAgICAgICAgZXJyYmFjayA9IGJpbmQodGhpcywgZnVuY3Rpb24gKGVycikgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXQoJ2Vycm9yJywgZXJyKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvL0RvIGEgY29weSBvZiB0aGUgZGVwZW5kZW5jeSBhcnJheSwgc28gdGhhdAogICAgICAgICAgICAgICAgLy9zb3VyY2UgaW5wdXRzIGFyZSBub3QgbW9kaWZpZWQuIEZvciBleGFtcGxlCiAgICAgICAgICAgICAgICAvLyJzaGltIiBkZXBzIGFyZSBwYXNzZWQgaW4gaGVyZSBkaXJlY3RseSwgYW5kCiAgICAgICAgICAgICAgICAvL2RvaW5nIGEgZGlyZWN0IG1vZGlmaWNhdGlvbiBvZiB0aGUgZGVwTWFwcyBhcnJheQogICAgICAgICAgICAgICAgLy93b3VsZCBhZmZlY3QgdGhhdCBjb25maWcuCiAgICAgICAgICAgICAgICB0aGlzLmRlcE1hcHMgPSBkZXBNYXBzICYmIGRlcE1hcHMuc2xpY2UoMCk7CgogICAgICAgICAgICAgICAgdGhpcy5lcnJiYWNrID0gZXJyYmFjazsKCiAgICAgICAgICAgICAgICAvL0luZGljYXRlIHRoaXMgbW9kdWxlIGhhcyBiZSBpbml0aWFsaXplZAogICAgICAgICAgICAgICAgdGhpcy5pbml0ZWQgPSB0cnVlOwoKICAgICAgICAgICAgICAgIHRoaXMuaWdub3JlID0gb3B0aW9ucy5pZ25vcmU7CgogICAgICAgICAgICAgICAgLy9Db3VsZCBoYXZlIG9wdGlvbiB0byBpbml0IHRoaXMgbW9kdWxlIGluIGVuYWJsZWQgbW9kZSwKICAgICAgICAgICAgICAgIC8vb3IgY291bGQgaGF2ZSBiZWVuIHByZXZpb3VzbHkgbWFya2VkIGFzIGVuYWJsZWQuIEhvd2V2ZXIsCiAgICAgICAgICAgICAgICAvL3RoZSBkZXBlbmRlbmNpZXMgYXJlIG5vdCBrbm93biB1bnRpbCBpbml0IGlzIGNhbGxlZC4gU28KICAgICAgICAgICAgICAgIC8vaWYgZW5hYmxlZCBwcmV2aW91c2x5LCBub3cgdHJpZ2dlciBkZXBlbmRlbmNpZXMgYXMgZW5hYmxlZC4KICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmVuYWJsZWQgfHwgdGhpcy5lbmFibGVkKSB7CiAgICAgICAgICAgICAgICAgICAgLy9FbmFibGUgdGhpcyBtb2R1bGUgYW5kIGRlcGVuZGVuY2llcy4KICAgICAgICAgICAgICAgICAgICAvL1dpbGwgY2FsbCB0aGlzLmNoZWNrKCkKICAgICAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZSgpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICBkZWZpbmVEZXA6IGZ1bmN0aW9uIChpLCBkZXBFeHBvcnRzKSB7CiAgICAgICAgICAgICAgICAvL0JlY2F1c2Ugb2YgY3ljbGVzLCBkZWZpbmVkIGNhbGxiYWNrIGZvciBhIGdpdmVuCiAgICAgICAgICAgICAgICAvL2V4cG9ydCBjYW4gYmUgY2FsbGVkIG1vcmUgdGhhbiBvbmNlLgogICAgICAgICAgICAgICAgaWYgKCF0aGlzLmRlcE1hdGNoZWRbaV0pIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmRlcE1hdGNoZWRbaV0gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIHRoaXMuZGVwQ291bnQgLT0gMTsKICAgICAgICAgICAgICAgICAgICB0aGlzLmRlcEV4cG9ydHNbaV0gPSBkZXBFeHBvcnRzOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAoKICAgICAgICAgICAgZmV0Y2g6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGlmICh0aGlzLmZldGNoZWQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLmZldGNoZWQgPSB0cnVlOwoKICAgICAgICAgICAgICAgIGNvbnRleHQuc3RhcnRUaW1lID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKCiAgICAgICAgICAgICAgICB2YXIgbWFwID0gdGhpcy5tYXA7CgogICAgICAgICAgICAgICAgLy9JZiB0aGUgbWFuYWdlciBpcyBmb3IgYSBwbHVnaW4gbWFuYWdlZCByZXNvdXJjZSwKICAgICAgICAgICAgICAgIC8vYXNrIHRoZSBwbHVnaW4gdG8gbG9hZCBpdCBub3cuCiAgICAgICAgICAgICAgICBpZiAodGhpcy5zaGltKSB7CiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5tYWtlUmVxdWlyZSh0aGlzLm1hcCwgewogICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVCdWlsZENhbGxiYWNrOiB0cnVlCiAgICAgICAgICAgICAgICAgICAgfSkodGhpcy5zaGltLmRlcHMgfHwgW10sIGJpbmQodGhpcywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFwLnByZWZpeCA/IHRoaXMuY2FsbFBsdWdpbigpIDogdGhpcy5sb2FkKCk7CiAgICAgICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvL1JlZ3VsYXIgZGVwZW5kZW5jeS4KICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFwLnByZWZpeCA/IHRoaXMuY2FsbFBsdWdpbigpIDogdGhpcy5sb2FkKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICBsb2FkOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgdXJsID0gdGhpcy5tYXAudXJsOwoKICAgICAgICAgICAgICAgIC8vUmVndWxhciBkZXBlbmRlbmN5LgogICAgICAgICAgICAgICAgaWYgKCF1cmxGZXRjaGVkW3VybF0pIHsKICAgICAgICAgICAgICAgICAgICB1cmxGZXRjaGVkW3VybF0gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNvbnRleHQubG9hZCh0aGlzLm1hcC5pZCwgdXJsKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBDaGVja3MgaWYgdGhlIG1vZHVsZSBpcyByZWFkeSB0byBkZWZpbmUgaXRzZWxmLCBhbmQgaWYgc28sCiAgICAgICAgICAgICAqIGRlZmluZSBpdC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIGNoZWNrOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZW5hYmxlZCB8fCB0aGlzLmVuYWJsaW5nKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHZhciBlcnIsIGNqc01vZHVsZSwKICAgICAgICAgICAgICAgICAgICBpZCA9IHRoaXMubWFwLmlkLAogICAgICAgICAgICAgICAgICAgIGRlcEV4cG9ydHMgPSB0aGlzLmRlcEV4cG9ydHMsCiAgICAgICAgICAgICAgICAgICAgZXhwb3J0cyA9IHRoaXMuZXhwb3J0cywKICAgICAgICAgICAgICAgICAgICBmYWN0b3J5ID0gdGhpcy5mYWN0b3J5OwoKICAgICAgICAgICAgICAgIGlmICghdGhpcy5pbml0ZWQpIHsKICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IGZldGNoIGlmIG5vdCBhbHJlYWR5IGluIHRoZSBkZWZRdWV1ZS4KICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc1Byb3AoY29udGV4dC5kZWZRdWV1ZU1hcCwgaWQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2goKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXQoJ2Vycm9yJywgdGhpcy5lcnJvcik7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmRlZmluaW5nKSB7CiAgICAgICAgICAgICAgICAgICAgLy9UaGUgZmFjdG9yeSBjb3VsZCB0cmlnZ2VyIGFub3RoZXIgcmVxdWlyZSBjYWxsCiAgICAgICAgICAgICAgICAgICAgLy90aGF0IHdvdWxkIHJlc3VsdCBpbiBjaGVja2luZyB0aGlzIG1vZHVsZSB0bwogICAgICAgICAgICAgICAgICAgIC8vZGVmaW5lIGl0c2VsZiBhZ2Fpbi4gSWYgYWxyZWFkeSBpbiB0aGUgcHJvY2VzcwogICAgICAgICAgICAgICAgICAgIC8vb2YgZG9pbmcgdGhhdCwgc2tpcCB0aGlzIHdvcmsuCiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZpbmluZyA9IHRydWU7CgogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmRlcENvdW50IDwgMSAmJiAhdGhpcy5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0Z1bmN0aW9uKGZhY3RvcnkpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0lmIHRoZXJlIGlzIGFuIGVycm9yIGxpc3RlbmVyLCBmYXZvciBwYXNzaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3RvIHRoYXQgaW5zdGVhZCBvZiB0aHJvd2luZyBhbiBlcnJvci4gSG93ZXZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vb25seSBkbyBpdCBmb3IgZGVmaW5lKCknZCAgbW9kdWxlcy4gcmVxdWlyZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9lcnJiYWNrcyBzaG91bGQgbm90IGJlIGNhbGxlZCBmb3IgZmFpbHVyZXMgaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdGhlaXIgY2FsbGJhY2tzICgjNjk5KS4gSG93ZXZlciBpZiBhIGdsb2JhbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9vbkVycm9yIGlzIHNldCwgdXNlIHRoYXQuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHRoaXMuZXZlbnRzLmVycm9yICYmIHRoaXMubWFwLmlzRGVmaW5lKSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcS5vbkVycm9yICE9PSBkZWZhdWx0T25FcnJvcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9ydHMgPSBjb250ZXh0LmV4ZWNDYihpZCwgZmFjdG9yeSwgZGVwRXhwb3J0cywgZXhwb3J0cyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIgPSBlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3J0cyA9IGNvbnRleHQuZXhlY0NiKGlkLCBmYWN0b3J5LCBkZXBFeHBvcnRzLCBleHBvcnRzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGYXZvciByZXR1cm4gdmFsdWUgb3ZlciBleHBvcnRzLiBJZiBub2RlL2NqcyBpbiBwbGF5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlbiB3aWxsIG5vdCBoYXZlIGEgcmV0dXJuIHZhbHVlIGFueXdheS4gRmF2b3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1vZHVsZS5leHBvcnRzIGFzc2lnbm1lbnQgb3ZlciBleHBvcnRzIG9iamVjdC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcC5pc0RlZmluZSAmJiBleHBvcnRzID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjanNNb2R1bGUgPSB0aGlzLm1vZHVsZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2pzTW9kdWxlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9ydHMgPSBjanNNb2R1bGUuZXhwb3J0czsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudXNpbmdFeHBvcnRzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZXhwb3J0cyBhbHJlYWR5IHNldCB0aGUgZGVmaW5lZCB2YWx1ZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3J0cyA9IHRoaXMuZXhwb3J0czsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVyci5yZXF1aXJlTWFwID0gdGhpcy5tYXA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyLnJlcXVpcmVNb2R1bGVzID0gdGhpcy5tYXAuaXNEZWZpbmUgPyBbdGhpcy5tYXAuaWRdIDogbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIucmVxdWlyZVR5cGUgPSB0aGlzLm1hcC5pc0RlZmluZSA/ICdkZWZpbmUnIDogJ3JlcXVpcmUnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvbkVycm9yKCh0aGlzLmVycm9yID0gZXJyKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9KdXN0IGEgbGl0ZXJhbCB2YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3J0cyA9IGZhY3Rvcnk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXhwb3J0cyA9IGV4cG9ydHM7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXAuaXNEZWZpbmUgJiYgIXRoaXMuaWdub3JlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVkW2lkXSA9IGV4cG9ydHM7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcS5vblJlc291cmNlTG9hZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXNMb2FkTWFwcyA9IFtdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVhY2godGhpcy5kZXBNYXBzLCBmdW5jdGlvbiAoZGVwTWFwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc0xvYWRNYXBzLnB1c2goZGVwTWFwLm5vcm1hbGl6ZWRNYXAgfHwgZGVwTWFwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXEub25SZXNvdXJjZUxvYWQoY29udGV4dCwgdGhpcy5tYXAsIHJlc0xvYWRNYXBzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgLy9DbGVhbiB1cAogICAgICAgICAgICAgICAgICAgICAgICBjbGVhblJlZ2lzdHJ5KGlkKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmaW5lZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAvL0ZpbmlzaGVkIHRoZSBkZWZpbmUgc3RhZ2UuIEFsbG93IGNhbGxpbmcgY2hlY2sgYWdhaW4KICAgICAgICAgICAgICAgICAgICAvL3RvIGFsbG93IGRlZmluZSBub3RpZmljYXRpb25zIGJlbG93IGluIHRoZSBjYXNlIG9mIGEKICAgICAgICAgICAgICAgICAgICAvL2N5Y2xlLgogICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmaW5pbmcgPSBmYWxzZTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZGVmaW5lZCAmJiAhdGhpcy5kZWZpbmVFbWl0dGVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmaW5lRW1pdHRlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdCgnZGVmaW5lZCcsIHRoaXMuZXhwb3J0cyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmaW5lRW1pdENvbXBsZXRlID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAoKICAgICAgICAgICAgY2FsbFBsdWdpbjogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIG1hcCA9IHRoaXMubWFwLAogICAgICAgICAgICAgICAgICAgIGlkID0gbWFwLmlkLAogICAgICAgICAgICAgICAgICAgIC8vTWFwIGFscmVhZHkgbm9ybWFsaXplZCB0aGUgcHJlZml4LgogICAgICAgICAgICAgICAgICAgIHBsdWdpbk1hcCA9IG1ha2VNb2R1bGVNYXAobWFwLnByZWZpeCk7CgogICAgICAgICAgICAgICAgLy9NYXJrIHRoaXMgYXMgYSBkZXBlbmRlbmN5IGZvciB0aGlzIHBsdWdpbiwgc28gaXQKICAgICAgICAgICAgICAgIC8vY2FuIGJlIHRyYWNlZCBmb3IgY3ljbGVzLgogICAgICAgICAgICAgICAgdGhpcy5kZXBNYXBzLnB1c2gocGx1Z2luTWFwKTsKCiAgICAgICAgICAgICAgICBvbihwbHVnaW5NYXAsICdkZWZpbmVkJywgYmluZCh0aGlzLCBmdW5jdGlvbiAocGx1Z2luKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGxvYWQsIG5vcm1hbGl6ZWRNYXAsIG5vcm1hbGl6ZWRNb2QsCiAgICAgICAgICAgICAgICAgICAgICAgIGJ1bmRsZUlkID0gZ2V0T3duKGJ1bmRsZXNNYXAsIHRoaXMubWFwLmlkKSwKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHRoaXMubWFwLm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE5hbWUgPSB0aGlzLm1hcC5wYXJlbnRNYXAgPyB0aGlzLm1hcC5wYXJlbnRNYXAubmFtZSA6IG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsUmVxdWlyZSA9IGNvbnRleHQubWFrZVJlcXVpcmUobWFwLnBhcmVudE1hcCwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlQnVpbGRDYWxsYmFjazogdHJ1ZQogICAgICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgLy9JZiBjdXJyZW50IG1hcCBpcyBub3Qgbm9ybWFsaXplZCwgd2FpdCBmb3IgdGhhdAogICAgICAgICAgICAgICAgICAgIC8vbm9ybWFsaXplZCBuYW1lIHRvIGxvYWQgaW5zdGVhZCBvZiBjb250aW51aW5nLgogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hcC51bm5vcm1hbGl6ZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy9Ob3JtYWxpemUgdGhlIElEIGlmIHRoZSBwbHVnaW4gYWxsb3dzIGl0LgogICAgICAgICAgICAgICAgICAgICAgICBpZiAocGx1Z2luLm5vcm1hbGl6ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHBsdWdpbi5ub3JtYWxpemUobmFtZSwgZnVuY3Rpb24gKG5hbWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplKG5hbWUsIHBhcmVudE5hbWUsIHRydWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgfHwgJyc7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vcHJlZml4IGFuZCBuYW1lIHNob3VsZCBhbHJlYWR5IGJlIG5vcm1hbGl6ZWQsIG5vIG5lZWQKICAgICAgICAgICAgICAgICAgICAgICAgLy9mb3IgYXBwbHlpbmcgbWFwIGNvbmZpZyBhZ2FpbiBlaXRoZXIuCiAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRNYXAgPSBtYWtlTW9kdWxlTWFwKG1hcC5wcmVmaXggKyAnIScgKyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcC5wYXJlbnRNYXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpOwogICAgICAgICAgICAgICAgICAgICAgICBvbihub3JtYWxpemVkTWFwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlZmluZWQnLCBiaW5kKHRoaXMsIGZ1bmN0aW9uICh2YWx1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWFwLm5vcm1hbGl6ZWRNYXAgPSBub3JtYWxpemVkTWFwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdChbXSwgZnVuY3Rpb24gKCkgeyByZXR1cm4gdmFsdWU7IH0sIG51bGwsIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlOiB0cnVlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7CgogICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkTW9kID0gZ2V0T3duKHJlZ2lzdHJ5LCBub3JtYWxpemVkTWFwLmlkKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWRNb2QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vTWFyayB0aGlzIGFzIGEgZGVwZW5kZW5jeSBmb3IgdGhpcyBwbHVnaW4sIHNvIGl0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2NhbiBiZSB0cmFjZWQgZm9yIGN5Y2xlcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVwTWFwcy5wdXNoKG5vcm1hbGl6ZWRNYXApOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmV2ZW50cy5lcnJvcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRNb2Qub24oJ2Vycm9yJywgYmluZCh0aGlzLCBmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdCgnZXJyb3InLCBlcnIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRNb2QuZW5hYmxlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIC8vSWYgYSBwYXRocyBjb25maWcsIHRoZW4ganVzdCBsb2FkIHRoYXQgZmlsZSBpbnN0ZWFkIHRvCiAgICAgICAgICAgICAgICAgICAgLy9yZXNvbHZlIHRoZSBwbHVnaW4sIGFzIGl0IGlzIGJ1aWx0IGludG8gdGhhdCBwYXRocyBsYXllci4KICAgICAgICAgICAgICAgICAgICBpZiAoYnVuZGxlSWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXAudXJsID0gY29udGV4dC5uYW1lVG9VcmwoYnVuZGxlSWQpOwogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgbG9hZCA9IGJpbmQodGhpcywgZnVuY3Rpb24gKHZhbHVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdChbXSwgZnVuY3Rpb24gKCkgeyByZXR1cm4gdmFsdWU7IH0sIG51bGwsIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICAgIGxvYWQuZXJyb3IgPSBiaW5kKHRoaXMsIGZ1bmN0aW9uIChlcnIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yID0gZXJyOwogICAgICAgICAgICAgICAgICAgICAgICBlcnIucmVxdWlyZU1vZHVsZXMgPSBbaWRdOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy9SZW1vdmUgdGVtcCB1bm5vcm1hbGl6ZWQgbW9kdWxlcyBmb3IgdGhpcyBtb2R1bGUsCiAgICAgICAgICAgICAgICAgICAgICAgIC8vc2luY2UgdGhleSB3aWxsIG5ldmVyIGJlIHJlc29sdmVkIG90aGVyd2lzZSBub3cuCiAgICAgICAgICAgICAgICAgICAgICAgIGVhY2hQcm9wKHJlZ2lzdHJ5LCBmdW5jdGlvbiAobW9kKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobW9kLm1hcC5pZC5pbmRleE9mKGlkICsgJ191bm5vcm1hbGl6ZWQnKSA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFuUmVnaXN0cnkobW9kLm1hcC5pZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAgICAgb25FcnJvcihlcnIpOwogICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAvL0FsbG93IHBsdWdpbnMgdG8gbG9hZCBvdGhlciBjb2RlIHdpdGhvdXQgaGF2aW5nIHRvIGtub3cgdGhlCiAgICAgICAgICAgICAgICAgICAgLy9jb250ZXh0IG9yIGhvdyB0byAnY29tcGxldGUnIHRoZSBsb2FkLgogICAgICAgICAgICAgICAgICAgIGxvYWQuZnJvbVRleHQgPSBiaW5kKHRoaXMsIGZ1bmN0aW9uICh0ZXh0LCB0ZXh0QWx0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8qanNsaW50IGV2aWw6IHRydWUgKi8KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1vZHVsZU5hbWUgPSBtYXAubmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZU1hcCA9IG1ha2VNb2R1bGVNYXAobW9kdWxlTmFtZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNJbnRlcmFjdGl2ZSA9IHVzZUludGVyYWN0aXZlOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy9BcyBvZiAyLjEuMCwgc3VwcG9ydCBqdXN0IHBhc3NpbmcgdGhlIHRleHQsIHRvIHJlaW5mb3JjZQogICAgICAgICAgICAgICAgICAgICAgICAvL2Zyb21UZXh0IG9ubHkgYmVpbmcgY2FsbGVkIG9uY2UgcGVyIHJlc291cmNlLiBTdGlsbAogICAgICAgICAgICAgICAgICAgICAgICAvL3N1cHBvcnQgb2xkIHN0eWxlIG9mIHBhc3NpbmcgbW9kdWxlTmFtZSBidXQgZGlzY2FyZAogICAgICAgICAgICAgICAgICAgICAgICAvL3RoYXQgbW9kdWxlTmFtZSBpbiBmYXZvciBvZiB0aGUgaW50ZXJuYWwgcmVmLgogICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4dEFsdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCA9IHRleHRBbHQ7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vVHVybiBvZmYgaW50ZXJhY3RpdmUgc2NyaXB0IG1hdGNoaW5nIGZvciBJRSBmb3IgYW55IGRlZmluZQogICAgICAgICAgICAgICAgICAgICAgICAvL2NhbGxzIGluIHRoZSB0ZXh0LCB0aGVuIHR1cm4gaXQgYmFjayBvbiBhdCB0aGUgZW5kLgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzSW50ZXJhY3RpdmUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZUludGVyYWN0aXZlID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vUHJpbWUgdGhlIHN5c3RlbSBieSBjcmVhdGluZyBhIG1vZHVsZSBpbnN0YW5jZSBmb3IKICAgICAgICAgICAgICAgICAgICAgICAgLy9pdC4KICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TW9kdWxlKG1vZHVsZU1hcCk7CgogICAgICAgICAgICAgICAgICAgICAgICAvL1RyYW5zZmVyIGFueSBjb25maWcgdG8gdGhpcyBvdGhlciBtb2R1bGUuCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNQcm9wKGNvbmZpZy5jb25maWcsIGlkKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLmNvbmZpZ1ttb2R1bGVOYW1lXSA9IGNvbmZpZy5jb25maWdbaWRdOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxLmV4ZWModGV4dCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvbkVycm9yKG1ha2VFcnJvcignZnJvbXRleHRldmFsJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zyb21UZXh0IGV2YWwgZm9yICcgKyBpZCArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyBmYWlsZWQ6ICcgKyBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNJbnRlcmFjdGl2ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlSW50ZXJhY3RpdmUgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAvL01hcmsgdGhpcyBhcyBhIGRlcGVuZGVuY3kgZm9yIHRoZSBwbHVnaW4KICAgICAgICAgICAgICAgICAgICAgICAgLy9yZXNvdXJjZQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlcE1hcHMucHVzaChtb2R1bGVNYXApOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy9TdXBwb3J0IGFub255bW91cyBtb2R1bGVzLgogICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmNvbXBsZXRlTG9hZChtb2R1bGVOYW1lKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vQmluZCB0aGUgdmFsdWUgb2YgdGhhdCBtb2R1bGUgdG8gdGhlIHZhbHVlIGZvciB0aGlzCiAgICAgICAgICAgICAgICAgICAgICAgIC8vcmVzb3VyY2UgSUQuCiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsUmVxdWlyZShbbW9kdWxlTmFtZV0sIGxvYWQpOwogICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAvL1VzZSBwYXJlbnROYW1lIGhlcmUgc2luY2UgdGhlIHBsdWdpbidzIG5hbWUgaXMgbm90IHJlbGlhYmxlLAogICAgICAgICAgICAgICAgICAgIC8vY291bGQgYmUgc29tZSB3ZWlyZCBzdHJpbmcgd2l0aCBubyBwYXRoIHRoYXQgYWN0dWFsbHkgd2FudHMgdG8KICAgICAgICAgICAgICAgICAgICAvL3JlZmVyZW5jZSB0aGUgcGFyZW50TmFtZSdzIHBhdGguCiAgICAgICAgICAgICAgICAgICAgcGx1Z2luLmxvYWQobWFwLm5hbWUsIGxvY2FsUmVxdWlyZSwgbG9hZCwgY29uZmlnKTsKICAgICAgICAgICAgICAgIH0pKTsKCiAgICAgICAgICAgICAgICBjb250ZXh0LmVuYWJsZShwbHVnaW5NYXAsIHRoaXMpOwogICAgICAgICAgICAgICAgdGhpcy5wbHVnaW5NYXBzW3BsdWdpbk1hcC5pZF0gPSBwbHVnaW5NYXA7CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICBlbmFibGU6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGVuYWJsZWRSZWdpc3RyeVt0aGlzLm1hcC5pZF0gPSB0aGlzOwogICAgICAgICAgICAgICAgdGhpcy5lbmFibGVkID0gdHJ1ZTsKCiAgICAgICAgICAgICAgICAvL1NldCBmbGFnIG1lbnRpb25pbmcgdGhhdCB0aGUgbW9kdWxlIGlzIGVuYWJsaW5nLAogICAgICAgICAgICAgICAgLy9zbyB0aGF0IGltbWVkaWF0ZSBjYWxscyB0byB0aGUgZGVmaW5lZCBjYWxsYmFja3MKICAgICAgICAgICAgICAgIC8vZm9yIGRlcGVuZGVuY2llcyBkbyBub3QgdHJpZ2dlciBpbmFkdmVydGVudCBsb2FkCiAgICAgICAgICAgICAgICAvL3dpdGggdGhlIGRlcENvdW50IHN0aWxsIGJlaW5nIHplcm8uCiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsaW5nID0gdHJ1ZTsKCiAgICAgICAgICAgICAgICAvL0VuYWJsZSBlYWNoIGRlcGVuZGVuY3kKICAgICAgICAgICAgICAgIGVhY2godGhpcy5kZXBNYXBzLCBiaW5kKHRoaXMsIGZ1bmN0aW9uIChkZXBNYXAsIGkpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgaWQsIG1vZCwgaGFuZGxlcjsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBkZXBNYXAgPT09ICdzdHJpbmcnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vRGVwZW5kZW5jeSBuZWVkcyB0byBiZSBjb252ZXJ0ZWQgdG8gYSBkZXBNYXAKICAgICAgICAgICAgICAgICAgICAgICAgLy9hbmQgd2lyZWQgdXAgdG8gdGhpcyBtb2R1bGUuCiAgICAgICAgICAgICAgICAgICAgICAgIGRlcE1hcCA9IG1ha2VNb2R1bGVNYXAoZGVwTWFwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLm1hcC5pc0RlZmluZSA/IHRoaXMubWFwIDogdGhpcy5tYXAucGFyZW50TWFwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5za2lwTWFwKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXBNYXBzW2ldID0gZGVwTWFwOwoKICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlciA9IGdldE93bihoYW5kbGVycywgZGVwTWFwLmlkKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYW5kbGVyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlcEV4cG9ydHNbaV0gPSBoYW5kbGVyKHRoaXMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlcENvdW50ICs9IDE7CgogICAgICAgICAgICAgICAgICAgICAgICBvbihkZXBNYXAsICdkZWZpbmVkJywgYmluZCh0aGlzLCBmdW5jdGlvbiAoZGVwRXhwb3J0cykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudW5kZWZlZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmaW5lRGVwKGksIGRlcEV4cG9ydHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVjaygpOwogICAgICAgICAgICAgICAgICAgICAgICB9KSk7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5lcnJiYWNrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbihkZXBNYXAsICdlcnJvcicsIGJpbmQodGhpcywgdGhpcy5lcnJiYWNrKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5ldmVudHMuZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vIGRpcmVjdCBlcnJiYWNrIG9uIHRoaXMgbW9kdWxlLCBidXQgc29tZXRoaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlbHNlIGlzIGxpc3RlbmluZyBmb3IgZXJyb3JzLCBzbyBiZSBzdXJlIHRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwcm9wYWdhdGUgdGhlIGVycm9yIGNvcnJlY3RseS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uKGRlcE1hcCwgJ2Vycm9yJywgYmluZCh0aGlzLCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXQoJ2Vycm9yJywgZXJyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWQgPSBkZXBNYXAuaWQ7CiAgICAgICAgICAgICAgICAgICAgbW9kID0gcmVnaXN0cnlbaWRdOwoKICAgICAgICAgICAgICAgICAgICAvL1NraXAgc3BlY2lhbCBtb2R1bGVzIGxpa2UgJ3JlcXVpcmUnLCAnZXhwb3J0cycsICdtb2R1bGUnCiAgICAgICAgICAgICAgICAgICAgLy9BbHNvLCBkb24ndCBjYWxsIGVuYWJsZSBpZiBpdCBpcyBhbHJlYWR5IGVuYWJsZWQsCiAgICAgICAgICAgICAgICAgICAgLy9pbXBvcnRhbnQgaW4gY2lyY3VsYXIgZGVwZW5kZW5jeSBjYXNlcy4KICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc1Byb3AoaGFuZGxlcnMsIGlkKSAmJiBtb2QgJiYgIW1vZC5lbmFibGVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZW5hYmxlKGRlcE1hcCwgdGhpcyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkpOwoKICAgICAgICAgICAgICAgIC8vRW5hYmxlIGVhY2ggcGx1Z2luIHRoYXQgaXMgdXNlZCBpbgogICAgICAgICAgICAgICAgLy9hIGRlcGVuZGVuY3kKICAgICAgICAgICAgICAgIGVhY2hQcm9wKHRoaXMucGx1Z2luTWFwcywgYmluZCh0aGlzLCBmdW5jdGlvbiAocGx1Z2luTWFwKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIG1vZCA9IGdldE93bihyZWdpc3RyeSwgcGx1Z2luTWFwLmlkKTsKICAgICAgICAgICAgICAgICAgICBpZiAobW9kICYmICFtb2QuZW5hYmxlZCkgewogICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmVuYWJsZShwbHVnaW5NYXAsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pKTsKCiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsaW5nID0gZmFsc2U7CgogICAgICAgICAgICAgICAgdGhpcy5jaGVjaygpOwogICAgICAgICAgICB9LAoKICAgICAgICAgICAgb246IGZ1bmN0aW9uIChuYW1lLCBjYikgewogICAgICAgICAgICAgICAgdmFyIGNicyA9IHRoaXMuZXZlbnRzW25hbWVdOwogICAgICAgICAgICAgICAgaWYgKCFjYnMpIHsKICAgICAgICAgICAgICAgICAgICBjYnMgPSB0aGlzLmV2ZW50c1tuYW1lXSA9IFtdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY2JzLnB1c2goY2IpOwogICAgICAgICAgICB9LAoKICAgICAgICAgICAgZW1pdDogZnVuY3Rpb24gKG5hbWUsIGV2dCkgewogICAgICAgICAgICAgICAgZWFjaCh0aGlzLmV2ZW50c1tuYW1lXSwgZnVuY3Rpb24gKGNiKSB7CiAgICAgICAgICAgICAgICAgICAgY2IoZXZ0KTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgaWYgKG5hbWUgPT09ICdlcnJvcicpIHsKICAgICAgICAgICAgICAgICAgICAvL05vdyB0aGF0IHRoZSBlcnJvciBoYW5kbGVyIHdhcyB0cmlnZ2VyZWQsIHJlbW92ZQogICAgICAgICAgICAgICAgICAgIC8vdGhlIGxpc3RlbmVycywgc2luY2UgdGhpcyBicm9rZW4gTW9kdWxlIGluc3RhbmNlCiAgICAgICAgICAgICAgICAgICAgLy9jYW4gc3RheSBhcm91bmQgZm9yIGEgd2hpbGUgaW4gdGhlIHJlZ2lzdHJ5LgogICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmV2ZW50c1tuYW1lXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH07CgogICAgICAgIGZ1bmN0aW9uIGNhbGxHZXRNb2R1bGUoYXJncykgewogICAgICAgICAgICAvL1NraXAgbW9kdWxlcyBhbHJlYWR5IGRlZmluZWQuCiAgICAgICAgICAgIGlmICghaGFzUHJvcChkZWZpbmVkLCBhcmdzWzBdKSkgewogICAgICAgICAgICAgICAgZ2V0TW9kdWxlKG1ha2VNb2R1bGVNYXAoYXJnc1swXSwgbnVsbCwgdHJ1ZSkpLmluaXQoYXJnc1sxXSwgYXJnc1syXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIHJlbW92ZUxpc3RlbmVyKG5vZGUsIGZ1bmMsIG5hbWUsIGllTmFtZSkgewogICAgICAgICAgICAvL0Zhdm9yIGRldGFjaEV2ZW50IGJlY2F1c2Ugb2YgSUU5CiAgICAgICAgICAgIC8vaXNzdWUsIHNlZSBhdHRhY2hFdmVudC9hZGRFdmVudExpc3RlbmVyIGNvbW1lbnQgZWxzZXdoZXJlCiAgICAgICAgICAgIC8vaW4gdGhpcyBmaWxlLgogICAgICAgICAgICBpZiAobm9kZS5kZXRhY2hFdmVudCAmJiAhaXNPcGVyYSkgewogICAgICAgICAgICAgICAgLy9Qcm9iYWJseSBJRS4gSWYgbm90IGl0IHdpbGwgdGhyb3cgYW4gZXJyb3IsIHdoaWNoIHdpbGwgYmUKICAgICAgICAgICAgICAgIC8vdXNlZnVsIHRvIGtub3cuCiAgICAgICAgICAgICAgICBpZiAoaWVOYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgbm9kZS5kZXRhY2hFdmVudChpZU5hbWUsIGZ1bmMpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIGZ1bmMsIGZhbHNlKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLyoqCiAgICAgICAgICogR2l2ZW4gYW4gZXZlbnQgZnJvbSBhIHNjcmlwdCBub2RlLCBnZXQgdGhlIHJlcXVpcmVqcyBpbmZvIGZyb20gaXQsCiAgICAgICAgICogYW5kIHRoZW4gcmVtb3ZlcyB0aGUgZXZlbnQgbGlzdGVuZXJzIG9uIHRoZSBub2RlLgogICAgICAgICAqIEBwYXJhbSB7RXZlbnR9IGV2dAogICAgICAgICAqIEByZXR1cm5zIHtPYmplY3R9CiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gZ2V0U2NyaXB0RGF0YShldnQpIHsKICAgICAgICAgICAgLy9Vc2luZyBjdXJyZW50VGFyZ2V0IGluc3RlYWQgb2YgdGFyZ2V0IGZvciBGaXJlZm94IDIuMCdzIHNha2UuIE5vdAogICAgICAgICAgICAvL2FsbCBvbGQgYnJvd3NlcnMgd2lsbCBiZSBzdXBwb3J0ZWQsIGJ1dCB0aGlzIG9uZSB3YXMgZWFzeSBlbm91Z2gKICAgICAgICAgICAgLy90byBzdXBwb3J0IGFuZCBzdGlsbCBtYWtlcyBzZW5zZS4KICAgICAgICAgICAgdmFyIG5vZGUgPSBldnQuY3VycmVudFRhcmdldCB8fCBldnQuc3JjRWxlbWVudDsKCiAgICAgICAgICAgIC8vUmVtb3ZlIHRoZSBsaXN0ZW5lcnMgb25jZSBoZXJlLgogICAgICAgICAgICByZW1vdmVMaXN0ZW5lcihub2RlLCBjb250ZXh0Lm9uU2NyaXB0TG9hZCwgJ2xvYWQnLCAnb25yZWFkeXN0YXRlY2hhbmdlJyk7CiAgICAgICAgICAgIHJlbW92ZUxpc3RlbmVyKG5vZGUsIGNvbnRleHQub25TY3JpcHRFcnJvciwgJ2Vycm9yJyk7CgogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgbm9kZTogbm9kZSwKICAgICAgICAgICAgICAgIGlkOiBub2RlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCdkYXRhLXJlcXVpcmVtb2R1bGUnKQogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gaW50YWtlRGVmaW5lcygpIHsKICAgICAgICAgICAgdmFyIGFyZ3M7CgogICAgICAgICAgICAvL0FueSBkZWZpbmVkIG1vZHVsZXMgaW4gdGhlIGdsb2JhbCBxdWV1ZSwgaW50YWtlIHRoZW0gbm93LgogICAgICAgICAgICB0YWtlR2xvYmFsUXVldWUoKTsKCiAgICAgICAgICAgIC8vTWFrZSBzdXJlIGFueSByZW1haW5pbmcgZGVmUXVldWUgaXRlbXMgZ2V0IHByb3Blcmx5IHByb2Nlc3NlZC4KICAgICAgICAgICAgd2hpbGUgKGRlZlF1ZXVlLmxlbmd0aCkgewogICAgICAgICAgICAgICAgYXJncyA9IGRlZlF1ZXVlLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICBpZiAoYXJnc1swXSA9PT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBvbkVycm9yKG1ha2VFcnJvcignbWlzbWF0Y2gnLCAnTWlzbWF0Y2hlZCBhbm9ueW1vdXMgZGVmaW5lKCkgbW9kdWxlOiAnICsKICAgICAgICAgICAgICAgICAgICAgICAgYXJnc1thcmdzLmxlbmd0aCAtIDFdKSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIC8vYXJncyBhcmUgaWQsIGRlcHMsIGZhY3RvcnkuIFNob3VsZCBiZSBub3JtYWxpemVkIGJ5IHRoZQogICAgICAgICAgICAgICAgICAgIC8vZGVmaW5lKCkgZnVuY3Rpb24uCiAgICAgICAgICAgICAgICAgICAgY2FsbEdldE1vZHVsZShhcmdzKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBjb250ZXh0LmRlZlF1ZXVlTWFwID0ge307CiAgICAgICAgfQoKICAgICAgICBjb250ZXh0ID0gewogICAgICAgICAgICBjb25maWc6IGNvbmZpZywKICAgICAgICAgICAgY29udGV4dE5hbWU6IGNvbnRleHROYW1lLAogICAgICAgICAgICByZWdpc3RyeTogcmVnaXN0cnksCiAgICAgICAgICAgIGRlZmluZWQ6IGRlZmluZWQsCiAgICAgICAgICAgIHVybEZldGNoZWQ6IHVybEZldGNoZWQsCiAgICAgICAgICAgIGRlZlF1ZXVlOiBkZWZRdWV1ZSwKICAgICAgICAgICAgZGVmUXVldWVNYXA6IHt9LAogICAgICAgICAgICBNb2R1bGU6IE1vZHVsZSwKICAgICAgICAgICAgbWFrZU1vZHVsZU1hcDogbWFrZU1vZHVsZU1hcCwKICAgICAgICAgICAgbmV4dFRpY2s6IHJlcS5uZXh0VGljaywKICAgICAgICAgICAgb25FcnJvcjogb25FcnJvciwKCiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBTZXQgYSBjb25maWd1cmF0aW9uIGZvciB0aGUgY29udGV4dC4KICAgICAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IGNmZyBjb25maWcgb2JqZWN0IHRvIGludGVncmF0ZS4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIGNvbmZpZ3VyZTogZnVuY3Rpb24gKGNmZykgewogICAgICAgICAgICAgICAgLy9NYWtlIHN1cmUgdGhlIGJhc2VVcmwgZW5kcyBpbiBhIHNsYXNoLgogICAgICAgICAgICAgICAgaWYgKGNmZy5iYXNlVXJsKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGNmZy5iYXNlVXJsLmNoYXJBdChjZmcuYmFzZVVybC5sZW5ndGggLSAxKSAhPT0gJy8nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNmZy5iYXNlVXJsICs9ICcvJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gQ29udmVydCBvbGQgc3R5bGUgdXJsQXJncyBzdHJpbmcgdG8gYSBmdW5jdGlvbi4KICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2ZnLnVybEFyZ3MgPT09ICdzdHJpbmcnKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHVybEFyZ3MgPSBjZmcudXJsQXJnczsKICAgICAgICAgICAgICAgICAgICBjZmcudXJsQXJncyA9IGZ1bmN0aW9uKGlkLCB1cmwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICh1cmwuaW5kZXhPZignPycpID09PSAtMSA/ICc/JyA6ICcmJykgKyB1cmxBcmdzOwogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy9TYXZlIG9mZiB0aGUgcGF0aHMgc2luY2UgdGhleSByZXF1aXJlIHNwZWNpYWwgcHJvY2Vzc2luZywKICAgICAgICAgICAgICAgIC8vdGhleSBhcmUgYWRkaXRpdmUuCiAgICAgICAgICAgICAgICB2YXIgc2hpbSA9IGNvbmZpZy5zaGltLAogICAgICAgICAgICAgICAgICAgIG9ianMgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhzOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICBidW5kbGVzOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICBjb25maWc6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgIG1hcDogdHJ1ZQogICAgICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgZWFjaFByb3AoY2ZnLCBmdW5jdGlvbiAodmFsdWUsIHByb3ApIHsKICAgICAgICAgICAgICAgICAgICBpZiAob2Jqc1twcm9wXSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbmZpZ1twcm9wXSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnW3Byb3BdID0ge307CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgbWl4aW4oY29uZmlnW3Byb3BdLCB2YWx1ZSwgdHJ1ZSwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnW3Byb3BdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgLy9SZXZlcnNlIG1hcCB0aGUgYnVuZGxlcwogICAgICAgICAgICAgICAgaWYgKGNmZy5idW5kbGVzKSB7CiAgICAgICAgICAgICAgICAgICAgZWFjaFByb3AoY2ZnLmJ1bmRsZXMsIGZ1bmN0aW9uICh2YWx1ZSwgcHJvcCkgewogICAgICAgICAgICAgICAgICAgICAgICBlYWNoKHZhbHVlLCBmdW5jdGlvbiAodikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYgIT09IHByb3ApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidW5kbGVzTWFwW3ZdID0gcHJvcDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy9NZXJnZSBzaGltCiAgICAgICAgICAgICAgICBpZiAoY2ZnLnNoaW0pIHsKICAgICAgICAgICAgICAgICAgICBlYWNoUHJvcChjZmcuc2hpbSwgZnVuY3Rpb24gKHZhbHVlLCBpZCkgewogICAgICAgICAgICAgICAgICAgICAgICAvL05vcm1hbGl6ZSB0aGUgc3RydWN0dXJlCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwczogdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCh2YWx1ZS5leHBvcnRzIHx8IHZhbHVlLmluaXQpICYmICF2YWx1ZS5leHBvcnRzRm4pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLmV4cG9ydHNGbiA9IGNvbnRleHQubWFrZVNoaW1FeHBvcnRzKHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBzaGltW2lkXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIGNvbmZpZy5zaGltID0gc2hpbTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvL0FkanVzdCBwYWNrYWdlcyBpZiBuZWNlc3NhcnkuCiAgICAgICAgICAgICAgICBpZiAoY2ZnLnBhY2thZ2VzKSB7CiAgICAgICAgICAgICAgICAgICAgZWFjaChjZmcucGFja2FnZXMsIGZ1bmN0aW9uIChwa2dPYmopIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9uLCBuYW1lOwoKICAgICAgICAgICAgICAgICAgICAgICAgcGtnT2JqID0gdHlwZW9mIHBrZ09iaiA9PT0gJ3N0cmluZycgPyB7bmFtZTogcGtnT2JqfSA6IHBrZ09iajsKCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBwa2dPYmoubmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24gPSBwa2dPYmoubG9jYXRpb247CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsb2NhdGlvbikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLnBhdGhzW25hbWVdID0gcGtnT2JqLmxvY2F0aW9uOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAvL1NhdmUgcG9pbnRlciB0byBtYWluIG1vZHVsZSBJRCBmb3IgcGtnIG5hbWUuCiAgICAgICAgICAgICAgICAgICAgICAgIC8vUmVtb3ZlIGxlYWRpbmcgZG90IGluIG1haW4sIHNvIG1haW4gcGF0aHMgYXJlIG5vcm1hbGl6ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgIC8vYW5kIHJlbW92ZSBhbnkgdHJhaWxpbmcgLmpzLCBzaW5jZSBkaWZmZXJlbnQgcGFja2FnZQogICAgICAgICAgICAgICAgICAgICAgICAvL2VudnMgaGF2ZSBkaWZmZXJlbnQgY29udmVudGlvbnM6IHNvbWUgdXNlIGEgbW9kdWxlIG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIC8vc29tZSB1c2UgYSBmaWxlIG5hbWUuCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5wa2dzW25hbWVdID0gcGtnT2JqLm5hbWUgKyAnLycgKyAocGtnT2JqLm1haW4gfHwgJ21haW4nKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoY3VyckRpclJlZ0V4cCwgJycpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZShqc1N1ZmZpeFJlZ0V4cCwgJycpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vSWYgdGhlcmUgYXJlIGFueSAid2FpdGluZyB0byBleGVjdXRlIiBtb2R1bGVzIGluIHRoZSByZWdpc3RyeSwKICAgICAgICAgICAgICAgIC8vdXBkYXRlIHRoZSBtYXBzIGZvciB0aGVtLCBzaW5jZSB0aGVpciBpbmZvLCBsaWtlIFVSTHMgdG8gbG9hZCwKICAgICAgICAgICAgICAgIC8vbWF5IGhhdmUgY2hhbmdlZC4KICAgICAgICAgICAgICAgIGVhY2hQcm9wKHJlZ2lzdHJ5LCBmdW5jdGlvbiAobW9kLCBpZCkgewogICAgICAgICAgICAgICAgICAgIC8vSWYgbW9kdWxlIGFscmVhZHkgaGFzIGluaXQgY2FsbGVkLCBzaW5jZSBpdCBpcyB0b28KICAgICAgICAgICAgICAgICAgICAvL2xhdGUgdG8gbW9kaWZ5IHRoZW0sIGFuZCBpZ25vcmUgdW5ub3JtYWxpemVkIG9uZXMKICAgICAgICAgICAgICAgICAgICAvL3NpbmNlIHRoZXkgYXJlIHRyYW5zaWVudC4KICAgICAgICAgICAgICAgICAgICBpZiAoIW1vZC5pbml0ZWQgJiYgIW1vZC5tYXAudW5ub3JtYWxpemVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG1vZC5tYXAgPSBtYWtlTW9kdWxlTWFwKGlkLCBudWxsLCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAvL0lmIGEgZGVwcyBhcnJheSBvciBhIGNvbmZpZyBjYWxsYmFjayBpcyBzcGVjaWZpZWQsIHRoZW4gY2FsbAogICAgICAgICAgICAgICAgLy9yZXF1aXJlIHdpdGggdGhvc2UgYXJncy4gVGhpcyBpcyB1c2VmdWwgd2hlbiByZXF1aXJlIGlzIGRlZmluZWQgYXMgYQogICAgICAgICAgICAgICAgLy9jb25maWcgb2JqZWN0IGJlZm9yZSByZXF1aXJlLmpzIGlzIGxvYWRlZC4KICAgICAgICAgICAgICAgIGlmIChjZmcuZGVwcyB8fCBjZmcuY2FsbGJhY2spIHsKICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnJlcXVpcmUoY2ZnLmRlcHMgfHwgW10sIGNmZy5jYWxsYmFjayk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICBtYWtlU2hpbUV4cG9ydHM6IGZ1bmN0aW9uICh2YWx1ZSkgewogICAgICAgICAgICAgICAgZnVuY3Rpb24gZm4oKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHJldDsKICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUuaW5pdCkgewogICAgICAgICAgICAgICAgICAgICAgICByZXQgPSB2YWx1ZS5pbml0LmFwcGx5KGdsb2JhbCwgYXJndW1lbnRzKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldCB8fCAodmFsdWUuZXhwb3J0cyAmJiBnZXRHbG9iYWwodmFsdWUuZXhwb3J0cykpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIGZuOwogICAgICAgICAgICB9LAoKICAgICAgICAgICAgbWFrZVJlcXVpcmU6IGZ1bmN0aW9uIChyZWxNYXAsIG9wdGlvbnMpIHsKICAgICAgICAgICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwoKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGxvY2FsUmVxdWlyZShkZXBzLCBjYWxsYmFjaywgZXJyYmFjaykgewogICAgICAgICAgICAgICAgICAgIHZhciBpZCwgbWFwLCByZXF1aXJlTW9kOwoKICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5lbmFibGVCdWlsZENhbGxiYWNrICYmIGNhbGxiYWNrICYmIGlzRnVuY3Rpb24oY2FsbGJhY2spKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLl9fcmVxdWlyZUpzQnVpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBkZXBzID09PSAnc3RyaW5nJykgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNGdW5jdGlvbihjYWxsYmFjaykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vSW52YWxpZCBjYWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb25FcnJvcihtYWtlRXJyb3IoJ3JlcXVpcmVhcmdzJywgJ0ludmFsaWQgcmVxdWlyZSBjYWxsJyksIGVycmJhY2spOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAvL0lmIHJlcXVpcmV8ZXhwb3J0c3xtb2R1bGUgYXJlIHJlcXVlc3RlZCwgZ2V0IHRoZQogICAgICAgICAgICAgICAgICAgICAgICAvL3ZhbHVlIGZvciB0aGVtIGZyb20gdGhlIHNwZWNpYWwgaGFuZGxlcnMuIENhdmVhdDoKICAgICAgICAgICAgICAgICAgICAgICAgLy90aGlzIG9ubHkgd29ya3Mgd2hpbGUgbW9kdWxlIGlzIGJlaW5nIGRlZmluZWQuCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWxNYXAgJiYgaGFzUHJvcChoYW5kbGVycywgZGVwcykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBoYW5kbGVyc1tkZXBzXShyZWdpc3RyeVtyZWxNYXAuaWRdKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgLy9TeW5jaHJvbm91cyBhY2Nlc3MgdG8gb25lIG1vZHVsZS4gSWYgcmVxdWlyZS5nZXQgaXMKICAgICAgICAgICAgICAgICAgICAgICAgLy9hdmFpbGFibGUgKGFzIGluIHRoZSBOb2RlIGFkYXB0ZXIpLCBwcmVmZXIgdGhhdC4KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcS5nZXQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXEuZ2V0KGNvbnRleHQsIGRlcHMsIHJlbE1hcCwgbG9jYWxSZXF1aXJlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgLy9Ob3JtYWxpemUgbW9kdWxlIG5hbWUsIGlmIGl0IGNvbnRhaW5zIC4gb3IgLi4KICAgICAgICAgICAgICAgICAgICAgICAgbWFwID0gbWFrZU1vZHVsZU1hcChkZXBzLCByZWxNYXAsIGZhbHNlLCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSBtYXAuaWQ7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc1Byb3AoZGVmaW5lZCwgaWQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb25FcnJvcihtYWtlRXJyb3IoJ25vdGxvYWRlZCcsICdNb2R1bGUgbmFtZSAiJyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIiBoYXMgbm90IGJlZW4gbG9hZGVkIHlldCBmb3IgY29udGV4dDogJyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0TmFtZSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVsTWFwID8gJycgOiAnLiBVc2UgcmVxdWlyZShbXSknKSkpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkZWZpbmVkW2lkXTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIC8vR3JhYiBkZWZpbmVzIHdhaXRpbmcgaW4gdGhlIGdsb2JhbCBxdWV1ZS4KICAgICAgICAgICAgICAgICAgICBpbnRha2VEZWZpbmVzKCk7CgogICAgICAgICAgICAgICAgICAgIC8vTWFyayBhbGwgdGhlIGRlcGVuZGVuY2llcyBhcyBuZWVkaW5nIHRvIGJlIGxvYWRlZC4KICAgICAgICAgICAgICAgICAgICBjb250ZXh0Lm5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy9Tb21lIGRlZmluZXMgY291bGQgaGF2ZSBiZWVuIGFkZGVkIHNpbmNlIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAvL3JlcXVpcmUgY2FsbCwgY29sbGVjdCB0aGVtLgogICAgICAgICAgICAgICAgICAgICAgICBpbnRha2VEZWZpbmVzKCk7CgogICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlTW9kID0gZ2V0TW9kdWxlKG1ha2VNb2R1bGVNYXAobnVsbCwgcmVsTWFwKSk7CgogICAgICAgICAgICAgICAgICAgICAgICAvL1N0b3JlIGlmIG1hcCBjb25maWcgc2hvdWxkIGJlIGFwcGxpZWQgdG8gdGhpcyByZXF1aXJlCiAgICAgICAgICAgICAgICAgICAgICAgIC8vY2FsbCBmb3IgZGVwZW5kZW5jaWVzLgogICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlTW9kLnNraXBNYXAgPSBvcHRpb25zLnNraXBNYXA7CgogICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlTW9kLmluaXQoZGVwcywgY2FsbGJhY2ssIGVycmJhY2ssIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICAgICAgICBjaGVja0xvYWRlZCgpOwogICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxSZXF1aXJlOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIG1peGluKGxvY2FsUmVxdWlyZSwgewogICAgICAgICAgICAgICAgICAgIGlzQnJvd3NlcjogaXNCcm93c2VyLAoKICAgICAgICAgICAgICAgICAgICAvKioKICAgICAgICAgICAgICAgICAgICAgKiBDb252ZXJ0cyBhIG1vZHVsZSBuYW1lICsgLmV4dGVuc2lvbiBpbnRvIGFuIFVSTCBwYXRoLgogICAgICAgICAgICAgICAgICAgICAqICpSZXF1aXJlcyogdGhlIHVzZSBvZiBhIG1vZHVsZSBuYW1lLiBJdCBkb2VzIG5vdCBzdXBwb3J0IHVzaW5nCiAgICAgICAgICAgICAgICAgICAgICogcGxhaW4gVVJMcyBsaWtlIG5hbWVUb1VybC4KICAgICAgICAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgICAgICAgICB0b1VybDogZnVuY3Rpb24gKG1vZHVsZU5hbWVQbHVzRXh0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IG1vZHVsZU5hbWVQbHVzRXh0Lmxhc3RJbmRleE9mKCcuJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWdtZW50ID0gbW9kdWxlTmFtZVBsdXNFeHQuc3BsaXQoJy8nKVswXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmVsYXRpdmUgPSBzZWdtZW50ID09PSAnLicgfHwgc2VnbWVudCA9PT0gJy4uJzsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vSGF2ZSBhIGZpbGUgZXh0ZW5zaW9uIGFsaWFzLCBhbmQgaXQgaXMgbm90IHRoZQogICAgICAgICAgICAgICAgICAgICAgICAvL2RvdHMgZnJvbSBhIHJlbGF0aXZlIHBhdGguCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEgJiYgKCFpc1JlbGF0aXZlIHx8IGluZGV4ID4gMSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dCA9IG1vZHVsZU5hbWVQbHVzRXh0LnN1YnN0cmluZyhpbmRleCwgbW9kdWxlTmFtZVBsdXNFeHQubGVuZ3RoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZU5hbWVQbHVzRXh0ID0gbW9kdWxlTmFtZVBsdXNFeHQuc3Vic3RyaW5nKDAsIGluZGV4KTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQubmFtZVRvVXJsKG5vcm1hbGl6ZShtb2R1bGVOYW1lUGx1c0V4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsTWFwICYmIHJlbE1hcC5pZCwgdHJ1ZSksIGV4dCwgIHRydWUpOwogICAgICAgICAgICAgICAgICAgIH0sCgogICAgICAgICAgICAgICAgICAgIGRlZmluZWQ6IGZ1bmN0aW9uIChpZCkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGFzUHJvcChkZWZpbmVkLCBtYWtlTW9kdWxlTWFwKGlkLCByZWxNYXAsIGZhbHNlLCB0cnVlKS5pZCk7CiAgICAgICAgICAgICAgICAgICAgfSwKCiAgICAgICAgICAgICAgICAgICAgc3BlY2lmaWVkOiBmdW5jdGlvbiAoaWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSBtYWtlTW9kdWxlTWFwKGlkLCByZWxNYXAsIGZhbHNlLCB0cnVlKS5pZDsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGhhc1Byb3AoZGVmaW5lZCwgaWQpIHx8IGhhc1Byb3AocmVnaXN0cnksIGlkKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAvL09ubHkgYWxsb3cgdW5kZWYgb24gdG9wIGxldmVsIHJlcXVpcmUgY2FsbHMKICAgICAgICAgICAgICAgIGlmICghcmVsTWFwKSB7CiAgICAgICAgICAgICAgICAgICAgbG9jYWxSZXF1aXJlLnVuZGVmID0gZnVuY3Rpb24gKGlkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vQmluZCBhbnkgd2FpdGluZyBkZWZpbmUoKSBjYWxscyB0byB0aGlzIGNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgIC8vZml4IGZvciAjNDA4CiAgICAgICAgICAgICAgICAgICAgICAgIHRha2VHbG9iYWxRdWV1ZSgpOwoKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1hcCA9IG1ha2VNb2R1bGVNYXAoaWQsIHJlbE1hcCwgdHJ1ZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2QgPSBnZXRPd24ocmVnaXN0cnksIGlkKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIG1vZC51bmRlZmVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlU2NyaXB0KGlkKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBkZWZpbmVkW2lkXTsKICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHVybEZldGNoZWRbbWFwLnVybF07CiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB1bmRlZkV2ZW50c1tpZF07CgogICAgICAgICAgICAgICAgICAgICAgICAvL0NsZWFuIHF1ZXVlZCBkZWZpbmVzIHRvby4gR28gYmFja3dhcmRzCiAgICAgICAgICAgICAgICAgICAgICAgIC8vaW4gYXJyYXkgc28gdGhhdCB0aGUgc3BsaWNlcyBkbyBub3QKICAgICAgICAgICAgICAgICAgICAgICAgLy9tZXNzIHVwIHRoZSBpdGVyYXRpb24uCiAgICAgICAgICAgICAgICAgICAgICAgIGVhY2hSZXZlcnNlKGRlZlF1ZXVlLCBmdW5jdGlvbihhcmdzLCBpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXJnc1swXSA9PT0gaWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZRdWV1ZS5zcGxpY2UoaSwgMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgY29udGV4dC5kZWZRdWV1ZU1hcFtpZF07CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAobW9kKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0hvbGQgb24gdG8gbGlzdGVuZXJzIGluIGNhc2UgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL21vZHVsZSB3aWxsIGJlIGF0dGVtcHRlZCB0byBiZSByZWxvYWRlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy91c2luZyBhIGRpZmZlcmVudCBjb25maWcuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobW9kLmV2ZW50cy5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZFdmVudHNbaWRdID0gbW9kLmV2ZW50czsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhblJlZ2lzdHJ5KGlkKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgcmV0dXJuIGxvY2FsUmVxdWlyZTsKICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBDYWxsZWQgdG8gZW5hYmxlIGEgbW9kdWxlIGlmIGl0IGlzIHN0aWxsIGluIHRoZSByZWdpc3RyeQogICAgICAgICAgICAgKiBhd2FpdGluZyBlbmFibGVtZW50LiBBIHNlY29uZCBhcmcsIHBhcmVudCwgdGhlIHBhcmVudCBtb2R1bGUsCiAgICAgICAgICAgICAqIGlzIHBhc3NlZCBpbiBmb3IgY29udGV4dCwgd2hlbiB0aGlzIG1ldGhvZCBpcyBvdmVycmlkZGVuIGJ5CiAgICAgICAgICAgICAqIHRoZSBvcHRpbWl6ZXIuIE5vdCBzaG93biBoZXJlIHRvIGtlZXAgY29kZSBjb21wYWN0LgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgZW5hYmxlOiBmdW5jdGlvbiAoZGVwTWFwKSB7CiAgICAgICAgICAgICAgICB2YXIgbW9kID0gZ2V0T3duKHJlZ2lzdHJ5LCBkZXBNYXAuaWQpOwogICAgICAgICAgICAgICAgaWYgKG1vZCkgewogICAgICAgICAgICAgICAgICAgIGdldE1vZHVsZShkZXBNYXApLmVuYWJsZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAoKICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAqIEludGVybmFsIG1ldGhvZCB1c2VkIGJ5IGVudmlyb25tZW50IGFkYXB0ZXJzIHRvIGNvbXBsZXRlIGEgbG9hZCBldmVudC4KICAgICAgICAgICAgICogQSBsb2FkIGV2ZW50IGNvdWxkIGJlIGEgc2NyaXB0IGxvYWQgb3IganVzdCBhIGxvYWQgcGFzcyBmcm9tIGEgc3luY2hyb25vdXMKICAgICAgICAgICAgICogbG9hZCBjYWxsLgogICAgICAgICAgICAgKiBAcGFyYW0ge1N0cmluZ30gbW9kdWxlTmFtZSB0aGUgbmFtZSBvZiB0aGUgbW9kdWxlIHRvIHBvdGVudGlhbGx5IGNvbXBsZXRlLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgY29tcGxldGVMb2FkOiBmdW5jdGlvbiAobW9kdWxlTmFtZSkgewogICAgICAgICAgICAgICAgdmFyIGZvdW5kLCBhcmdzLCBtb2QsCiAgICAgICAgICAgICAgICAgICAgc2hpbSA9IGdldE93bihjb25maWcuc2hpbSwgbW9kdWxlTmFtZSkgfHwge30sCiAgICAgICAgICAgICAgICAgICAgc2hFeHBvcnRzID0gc2hpbS5leHBvcnRzOwoKICAgICAgICAgICAgICAgIHRha2VHbG9iYWxRdWV1ZSgpOwoKICAgICAgICAgICAgICAgIHdoaWxlIChkZWZRdWV1ZS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICBhcmdzID0gZGVmUXVldWUuc2hpZnQoKTsKICAgICAgICAgICAgICAgICAgICBpZiAoYXJnc1swXSA9PT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgICAgICBhcmdzWzBdID0gbW9kdWxlTmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgLy9JZiBhbHJlYWR5IGZvdW5kIGFuIGFub255bW91cyBtb2R1bGUgYW5kIGJvdW5kIGl0CiAgICAgICAgICAgICAgICAgICAgICAgIC8vdG8gdGhpcyBuYW1lLCB0aGVuIHRoaXMgaXMgc29tZSBvdGhlciBhbm9uIG1vZHVsZQogICAgICAgICAgICAgICAgICAgICAgICAvL3dhaXRpbmcgZm9yIGl0cyBjb21wbGV0ZUxvYWQgdG8gZmlyZS4KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvdW5kKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmdzWzBdID09PSBtb2R1bGVOYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vRm91bmQgbWF0Y2hpbmcgZGVmaW5lIGNhbGwgZm9yIHRoaXMgc2NyaXB0IQogICAgICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBjYWxsR2V0TW9kdWxlKGFyZ3MpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY29udGV4dC5kZWZRdWV1ZU1hcCA9IHt9OwoKICAgICAgICAgICAgICAgIC8vRG8gdGhpcyBhZnRlciB0aGUgY3ljbGUgb2YgY2FsbEdldE1vZHVsZSBpbiBjYXNlIHRoZSByZXN1bHQKICAgICAgICAgICAgICAgIC8vb2YgdGhvc2UgY2FsbHMvaW5pdCBjYWxscyBjaGFuZ2VzIHRoZSByZWdpc3RyeS4KICAgICAgICAgICAgICAgIG1vZCA9IGdldE93bihyZWdpc3RyeSwgbW9kdWxlTmFtZSk7CgogICAgICAgICAgICAgICAgaWYgKCFmb3VuZCAmJiAhaGFzUHJvcChkZWZpbmVkLCBtb2R1bGVOYW1lKSAmJiBtb2QgJiYgIW1vZC5pbml0ZWQpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlnLmVuZm9yY2VEZWZpbmUgJiYgKCFzaEV4cG9ydHMgfHwgIWdldEdsb2JhbChzaEV4cG9ydHMpKSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzUGF0aEZhbGxiYWNrKG1vZHVsZU5hbWUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb25FcnJvcihtYWtlRXJyb3IoJ25vZGVmaW5lJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ05vIGRlZmluZSBjYWxsIGZvciAnICsgbW9kdWxlTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZHVsZU5hbWVdKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAvL0Egc2NyaXB0IHRoYXQgZG9lcyBub3QgY2FsbCBkZWZpbmUoKSwgc28ganVzdCBzaW11bGF0ZQogICAgICAgICAgICAgICAgICAgICAgICAvL3RoZSBjYWxsIGZvciBpdC4KICAgICAgICAgICAgICAgICAgICAgICAgY2FsbEdldE1vZHVsZShbbW9kdWxlTmFtZSwgKHNoaW0uZGVwcyB8fCBbXSksIHNoaW0uZXhwb3J0c0ZuXSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGNoZWNrTG9hZGVkKCk7CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogQ29udmVydHMgYSBtb2R1bGUgbmFtZSB0byBhIGZpbGUgcGF0aC4gU3VwcG9ydHMgY2FzZXMgd2hlcmUKICAgICAgICAgICAgICogbW9kdWxlTmFtZSBtYXkgYWN0dWFsbHkgYmUganVzdCBhbiBVUkwuCiAgICAgICAgICAgICAqIE5vdGUgdGhhdCBpdCAqKmRvZXMgbm90KiogY2FsbCBub3JtYWxpemUgb24gdGhlIG1vZHVsZU5hbWUsCiAgICAgICAgICAgICAqIGl0IGlzIGFzc3VtZWQgdG8gaGF2ZSBhbHJlYWR5IGJlZW4gbm9ybWFsaXplZC4gVGhpcyBpcyBhbgogICAgICAgICAgICAgKiBpbnRlcm5hbCBBUEksIG5vdCBhIHB1YmxpYyBvbmUuIFVzZSB0b1VybCBmb3IgdGhlIHB1YmxpYyBBUEkuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBuYW1lVG9Vcmw6IGZ1bmN0aW9uIChtb2R1bGVOYW1lLCBleHQsIHNraXBFeHQpIHsKICAgICAgICAgICAgICAgIHZhciBwYXRocywgc3ltcywgaSwgcGFyZW50TW9kdWxlLCB1cmwsCiAgICAgICAgICAgICAgICAgICAgcGFyZW50UGF0aCwgYnVuZGxlSWQsCiAgICAgICAgICAgICAgICAgICAgcGtnTWFpbiA9IGdldE93bihjb25maWcucGtncywgbW9kdWxlTmFtZSk7CgogICAgICAgICAgICAgICAgaWYgKHBrZ01haW4pIHsKICAgICAgICAgICAgICAgICAgICBtb2R1bGVOYW1lID0gcGtnTWFpbjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBidW5kbGVJZCA9IGdldE93bihidW5kbGVzTWFwLCBtb2R1bGVOYW1lKTsKCiAgICAgICAgICAgICAgICBpZiAoYnVuZGxlSWQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udGV4dC5uYW1lVG9VcmwoYnVuZGxlSWQsIGV4dCwgc2tpcEV4dCk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy9JZiBhIGNvbG9uIGlzIGluIHRoZSBVUkwsIGl0IGluZGljYXRlcyBhIHByb3RvY29sIGlzIHVzZWQgYW5kIGl0IGlzIGp1c3QKICAgICAgICAgICAgICAgIC8vYW4gVVJMIHRvIGEgZmlsZSwgb3IgaWYgaXQgc3RhcnRzIHdpdGggYSBzbGFzaCwgY29udGFpbnMgYSBxdWVyeSBhcmcgKGkuZS4gPykKICAgICAgICAgICAgICAgIC8vb3IgZW5kcyB3aXRoIC5qcywgdGhlbiBhc3N1bWUgdGhlIHVzZXIgbWVhbnQgdG8gdXNlIGFuIHVybCBhbmQgbm90IGEgbW9kdWxlIGlkLgogICAgICAgICAgICAgICAgLy9UaGUgc2xhc2ggaXMgaW1wb3J0YW50IGZvciBwcm90b2NvbC1sZXNzIFVSTHMgYXMgd2VsbCBhcyBmdWxsIHBhdGhzLgogICAgICAgICAgICAgICAgaWYgKHJlcS5qc0V4dFJlZ0V4cC50ZXN0KG1vZHVsZU5hbWUpKSB7CiAgICAgICAgICAgICAgICAgICAgLy9KdXN0IGEgcGxhaW4gcGF0aCwgbm90IG1vZHVsZSBuYW1lIGxvb2t1cCwgc28ganVzdCByZXR1cm4gaXQuCiAgICAgICAgICAgICAgICAgICAgLy9BZGQgZXh0ZW5zaW9uIGlmIGl0IGlzIGluY2x1ZGVkLiBUaGlzIGlzIGEgYml0IHdvbmt5LCBvbmx5IG5vbi0uanMgdGhpbmdzIHBhc3MKICAgICAgICAgICAgICAgICAgICAvL2FuIGV4dGVuc2lvbiwgdGhpcyBtZXRob2QgcHJvYmFibHkgbmVlZHMgdG8gYmUgcmV3b3JrZWQuCiAgICAgICAgICAgICAgICAgICAgdXJsID0gbW9kdWxlTmFtZSArIChleHQgfHwgJycpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvL0EgbW9kdWxlIHRoYXQgbmVlZHMgdG8gYmUgY29udmVydGVkIHRvIGEgcGF0aC4KICAgICAgICAgICAgICAgICAgICBwYXRocyA9IGNvbmZpZy5wYXRoczsKCiAgICAgICAgICAgICAgICAgICAgc3ltcyA9IG1vZHVsZU5hbWUuc3BsaXQoJy8nKTsKICAgICAgICAgICAgICAgICAgICAvL0ZvciBlYWNoIG1vZHVsZSBuYW1lIHNlZ21lbnQsIHNlZSBpZiB0aGVyZSBpcyBhIHBhdGgKICAgICAgICAgICAgICAgICAgICAvL3JlZ2lzdGVyZWQgZm9yIGl0LiBTdGFydCB3aXRoIG1vc3Qgc3BlY2lmaWMgbmFtZQogICAgICAgICAgICAgICAgICAgIC8vYW5kIHdvcmsgdXAgZnJvbSBpdC4KICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSBzeW1zLmxlbmd0aDsgaSA+IDA7IGkgLT0gMSkgewogICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRNb2R1bGUgPSBzeW1zLnNsaWNlKDAsIGkpLmpvaW4oJy8nKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudFBhdGggPSBnZXRPd24ocGF0aHMsIHBhcmVudE1vZHVsZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnRQYXRoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0lmIGFuIGFycmF5LCBpdCBtZWFucyB0aGVyZSBhcmUgYSBmZXcgY2hvaWNlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vQ2hvb3NlIHRoZSBvbmUgdGhhdCBpcyBkZXNpcmVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNBcnJheShwYXJlbnRQYXRoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudFBhdGggPSBwYXJlbnRQYXRoWzBdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltcy5zcGxpY2UoMCwgaSwgcGFyZW50UGF0aCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgLy9Kb2luIHRoZSBwYXRoIHBhcnRzIHRvZ2V0aGVyLCB0aGVuIGZpZ3VyZSBvdXQgaWYgYmFzZVVybCBpcyBuZWVkZWQuCiAgICAgICAgICAgICAgICAgICAgdXJsID0gc3ltcy5qb2luKCcvJyk7CiAgICAgICAgICAgICAgICAgICAgdXJsICs9IChleHQgfHwgKC9eZGF0YVw6fF5ibG9iXDp8XD8vLnRlc3QodXJsKSB8fCBza2lwRXh0ID8gJycgOiAnLmpzJykpOwogICAgICAgICAgICAgICAgICAgIHVybCA9ICh1cmwuY2hhckF0KDApID09PSAnLycgfHwgdXJsLm1hdGNoKC9eW1x3XCtcLlwtXSs6LykgPyAnJyA6IGNvbmZpZy5iYXNlVXJsKSArIHVybDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlnLnVybEFyZ3MgJiYgIS9eYmxvYlw6Ly50ZXN0KHVybCkgPwogICAgICAgICAgICAgICAgICAgICAgIHVybCArIGNvbmZpZy51cmxBcmdzKG1vZHVsZU5hbWUsIHVybCkgOiB1cmw7CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICAvL0RlbGVnYXRlcyB0byByZXEubG9hZC4gQnJva2VuIG91dCBhcyBhIHNlcGFyYXRlIGZ1bmN0aW9uIHRvCiAgICAgICAgICAgIC8vYWxsb3cgb3ZlcnJpZGluZyBpbiB0aGUgb3B0aW1pemVyLgogICAgICAgICAgICBsb2FkOiBmdW5jdGlvbiAoaWQsIHVybCkgewogICAgICAgICAgICAgICAgcmVxLmxvYWQoY29udGV4dCwgaWQsIHVybCk7CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogRXhlY3V0ZXMgYSBtb2R1bGUgY2FsbGJhY2sgZnVuY3Rpb24uIEJyb2tlbiBvdXQgYXMgYSBzZXBhcmF0ZSBmdW5jdGlvbgogICAgICAgICAgICAgKiBzb2xlbHkgdG8gYWxsb3cgdGhlIGJ1aWxkIHN5c3RlbSB0byBzZXF1ZW5jZSB0aGUgZmlsZXMgaW4gdGhlIGJ1aWx0CiAgICAgICAgICAgICAqIGxheWVyIGluIHRoZSByaWdodCBzZXF1ZW5jZS4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogQHByaXZhdGUKICAgICAgICAgICAgICovCiAgICAgICAgICAgIGV4ZWNDYjogZnVuY3Rpb24gKG5hbWUsIGNhbGxiYWNrLCBhcmdzLCBleHBvcnRzKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2suYXBwbHkoZXhwb3J0cywgYXJncyk7CiAgICAgICAgICAgIH0sCgogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogY2FsbGJhY2sgZm9yIHNjcmlwdCBsb2FkcywgdXNlZCB0byBjaGVjayBzdGF0dXMgb2YgbG9hZGluZy4KICAgICAgICAgICAgICoKICAgICAgICAgICAgICogQHBhcmFtIHtFdmVudH0gZXZ0IHRoZSBldmVudCBmcm9tIHRoZSBicm93c2VyIGZvciB0aGUgc2NyaXB0CiAgICAgICAgICAgICAqIHRoYXQgd2FzIGxvYWRlZC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIG9uU2NyaXB0TG9hZDogZnVuY3Rpb24gKGV2dCkgewogICAgICAgICAgICAgICAgLy9Vc2luZyBjdXJyZW50VGFyZ2V0IGluc3RlYWQgb2YgdGFyZ2V0IGZvciBGaXJlZm94IDIuMCdzIHNha2UuIE5vdAogICAgICAgICAgICAgICAgLy9hbGwgb2xkIGJyb3dzZXJzIHdpbGwgYmUgc3VwcG9ydGVkLCBidXQgdGhpcyBvbmUgd2FzIGVhc3kgZW5vdWdoCiAgICAgICAgICAgICAgICAvL3RvIHN1cHBvcnQgYW5kIHN0aWxsIG1ha2VzIHNlbnNlLgogICAgICAgICAgICAgICAgaWYgKGV2dC50eXBlID09PSAnbG9hZCcgfHwKICAgICAgICAgICAgICAgICAgICAgICAgKHJlYWR5UmVnRXhwLnRlc3QoKGV2dC5jdXJyZW50VGFyZ2V0IHx8IGV2dC5zcmNFbGVtZW50KS5yZWFkeVN0YXRlKSkpIHsKICAgICAgICAgICAgICAgICAgICAvL1Jlc2V0IGludGVyYWN0aXZlIHNjcmlwdCBzbyBhIHNjcmlwdCBub2RlIGlzIG5vdCBoZWxkIG9udG8gZm9yCiAgICAgICAgICAgICAgICAgICAgLy90byBsb25nLgogICAgICAgICAgICAgICAgICAgIGludGVyYWN0aXZlU2NyaXB0ID0gbnVsbDsKCiAgICAgICAgICAgICAgICAgICAgLy9QdWxsIG91dCB0aGUgbmFtZSBvZiB0aGUgbW9kdWxlIGFuZCB0aGUgY29udGV4dC4KICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IGdldFNjcmlwdERhdGEoZXZ0KTsKICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmNvbXBsZXRlTG9hZChkYXRhLmlkKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBDYWxsYmFjayBmb3Igc2NyaXB0IGVycm9ycy4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIG9uU2NyaXB0RXJyb3I6IGZ1bmN0aW9uIChldnQpIHsKICAgICAgICAgICAgICAgIHZhciBkYXRhID0gZ2V0U2NyaXB0RGF0YShldnQpOwogICAgICAgICAgICAgICAgaWYgKCFoYXNQYXRoRmFsbGJhY2soZGF0YS5pZCkpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgcGFyZW50cyA9IFtdOwogICAgICAgICAgICAgICAgICAgIGVhY2hQcm9wKHJlZ2lzdHJ5LCBmdW5jdGlvbih2YWx1ZSwga2V5KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXkuaW5kZXhPZignX0ByJykgIT09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVhY2godmFsdWUuZGVwTWFwcywgZnVuY3Rpb24oZGVwTWFwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRlcE1hcC5pZCA9PT0gZGF0YS5pZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRzLnB1c2goa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gb25FcnJvcihtYWtlRXJyb3IoJ3NjcmlwdGVycm9yJywgJ1NjcmlwdCBlcnJvciBmb3IgIicgKyBkYXRhLmlkICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhcmVudHMubGVuZ3RoID8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyIsIG5lZWRlZCBieTogJyArIHBhcmVudHMuam9pbignLCAnKSA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICciJyksIGV2dCwgW2RhdGEuaWRdKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBjb250ZXh0LnJlcXVpcmUgPSBjb250ZXh0Lm1ha2VSZXF1aXJlKCk7CiAgICAgICAgcmV0dXJuIGNvbnRleHQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBNYWluIGVudHJ5IHBvaW50LgogICAgICoKICAgICAqIElmIHRoZSBvbmx5IGFyZ3VtZW50IHRvIHJlcXVpcmUgaXMgYSBzdHJpbmcsIHRoZW4gdGhlIG1vZHVsZSB0aGF0CiAgICAgKiBpcyByZXByZXNlbnRlZCBieSB0aGF0IHN0cmluZyBpcyBmZXRjaGVkIGZvciB0aGUgYXBwcm9wcmlhdGUgY29udGV4dC4KICAgICAqCiAgICAgKiBJZiB0aGUgZmlyc3QgYXJndW1lbnQgaXMgYW4gYXJyYXksIHRoZW4gaXQgd2lsbCBiZSB0cmVhdGVkIGFzIGFuIGFycmF5CiAgICAgKiBvZiBkZXBlbmRlbmN5IHN0cmluZyBuYW1lcyB0byBmZXRjaC4gQW4gb3B0aW9uYWwgZnVuY3Rpb24gY2FsbGJhY2sgY2FuCiAgICAgKiBiZSBzcGVjaWZpZWQgdG8gZXhlY3V0ZSB3aGVuIGFsbCBvZiB0aG9zZSBkZXBlbmRlbmNpZXMgYXJlIGF2YWlsYWJsZS4KICAgICAqCiAgICAgKiBNYWtlIGEgbG9jYWwgcmVxIHZhcmlhYmxlIHRvIGhlbHAgQ2FqYSBjb21wbGlhbmNlIChpdCBhc3N1bWVzIHRoaW5ncwogICAgICogb24gYSByZXF1aXJlIHRoYXQgYXJlIG5vdCBzdGFuZGFyZGl6ZWQpLCBhbmQgdG8gZ2l2ZSBhIHNob3J0CiAgICAgKiBuYW1lIGZvciBtaW5pZmljYXRpb24vbG9jYWwgc2NvcGUgdXNlLgogICAgICovCiAgICByZXEgPSByZXF1aXJlanMgPSBmdW5jdGlvbiAoZGVwcywgY2FsbGJhY2ssIGVycmJhY2ssIG9wdGlvbmFsKSB7CgogICAgICAgIC8vRmluZCB0aGUgcmlnaHQgY29udGV4dCwgdXNlIGRlZmF1bHQKICAgICAgICB2YXIgY29udGV4dCwgY29uZmlnLAogICAgICAgICAgICBjb250ZXh0TmFtZSA9IGRlZkNvbnRleHROYW1lOwoKICAgICAgICAvLyBEZXRlcm1pbmUgaWYgaGF2ZSBjb25maWcgb2JqZWN0IGluIHRoZSBjYWxsLgogICAgICAgIGlmICghaXNBcnJheShkZXBzKSAmJiB0eXBlb2YgZGVwcyAhPT0gJ3N0cmluZycpIHsKICAgICAgICAgICAgLy8gZGVwcyBpcyBhIGNvbmZpZyBvYmplY3QKICAgICAgICAgICAgY29uZmlnID0gZGVwczsKICAgICAgICAgICAgaWYgKGlzQXJyYXkoY2FsbGJhY2spKSB7CiAgICAgICAgICAgICAgICAvLyBBZGp1c3QgYXJncyBpZiB0aGVyZSBhcmUgZGVwZW5kZW5jaWVzCiAgICAgICAgICAgICAgICBkZXBzID0gY2FsbGJhY2s7CiAgICAgICAgICAgICAgICBjYWxsYmFjayA9IGVycmJhY2s7CiAgICAgICAgICAgICAgICBlcnJiYWNrID0gb3B0aW9uYWw7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBkZXBzID0gW107CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmIChjb25maWcgJiYgY29uZmlnLmNvbnRleHQpIHsKICAgICAgICAgICAgY29udGV4dE5hbWUgPSBjb25maWcuY29udGV4dDsKICAgICAgICB9CgogICAgICAgIGNvbnRleHQgPSBnZXRPd24oY29udGV4dHMsIGNvbnRleHROYW1lKTsKICAgICAgICBpZiAoIWNvbnRleHQpIHsKICAgICAgICAgICAgY29udGV4dCA9IGNvbnRleHRzW2NvbnRleHROYW1lXSA9IHJlcS5zLm5ld0NvbnRleHQoY29udGV4dE5hbWUpOwogICAgICAgIH0KCiAgICAgICAgaWYgKGNvbmZpZykgewogICAgICAgICAgICBjb250ZXh0LmNvbmZpZ3VyZShjb25maWcpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGNvbnRleHQucmVxdWlyZShkZXBzLCBjYWxsYmFjaywgZXJyYmFjayk7CiAgICB9OwoKICAgIC8qKgogICAgICogU3VwcG9ydCByZXF1aXJlLmNvbmZpZygpIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGNvb3BlcmF0ZSB3aXRoIG90aGVyCiAgICAgKiBBTUQgbG9hZGVycyBvbiBnbG9iYWxseSBhZ3JlZWQgbmFtZXMuCiAgICAgKi8KICAgIHJlcS5jb25maWcgPSBmdW5jdGlvbiAoY29uZmlnKSB7CiAgICAgICAgcmV0dXJuIHJlcShjb25maWcpOwogICAgfTsKCiAgICAvKioKICAgICAqIEV4ZWN1dGUgc29tZXRoaW5nIGFmdGVyIHRoZSBjdXJyZW50IHRpY2sKICAgICAqIG9mIHRoZSBldmVudCBsb29wLiBPdmVycmlkZSBmb3Igb3RoZXIgZW52cwogICAgICogdGhhdCBoYXZlIGEgYmV0dGVyIHNvbHV0aW9uIHRoYW4gc2V0VGltZW91dC4KICAgICAqIEBwYXJhbSAge0Z1bmN0aW9ufSBmbiBmdW5jdGlvbiB0byBleGVjdXRlIGxhdGVyLgogICAgICovCiAgICByZXEubmV4dFRpY2sgPSB0eXBlb2Ygc2V0VGltZW91dCAhPT0gJ3VuZGVmaW5lZCcgPyBmdW5jdGlvbiAoZm4pIHsKICAgICAgICBzZXRUaW1lb3V0KGZuLCA0KTsKICAgIH0gOiBmdW5jdGlvbiAoZm4pIHsgZm4oKTsgfTsKCiAgICAvKioKICAgICAqIEV4cG9ydCByZXF1aXJlIGFzIGEgZ2xvYmFsLCBidXQgb25seSBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0LgogICAgICovCiAgICBpZiAoIXJlcXVpcmUpIHsKICAgICAgICByZXF1aXJlID0gcmVxOwogICAgfQoKICAgIHJlcS52ZXJzaW9uID0gdmVyc2lvbjsKCiAgICAvL1VzZWQgdG8gZmlsdGVyIG91dCBkZXBlbmRlbmNpZXMgdGhhdCBhcmUgYWxyZWFkeSBwYXRocy4KICAgIHJlcS5qc0V4dFJlZ0V4cCA9IC9eXC98OnxcP3xcLmpzJC87CiAgICByZXEuaXNCcm93c2VyID0gaXNCcm93c2VyOwogICAgcyA9IHJlcS5zID0gewogICAgICAgIGNvbnRleHRzOiBjb250ZXh0cywKICAgICAgICBuZXdDb250ZXh0OiBuZXdDb250ZXh0CiAgICB9OwoKICAgIC8vQ3JlYXRlIGRlZmF1bHQgY29udGV4dC4KICAgIHJlcSh7fSk7CgogICAgLy9FeHBvcnRzIHNvbWUgY29udGV4dC1zZW5zaXRpdmUgbWV0aG9kcyBvbiBnbG9iYWwgcmVxdWlyZS4KICAgIGVhY2goWwogICAgICAgICd0b1VybCcsCiAgICAgICAgJ3VuZGVmJywKICAgICAgICAnZGVmaW5lZCcsCiAgICAgICAgJ3NwZWNpZmllZCcKICAgIF0sIGZ1bmN0aW9uIChwcm9wKSB7CiAgICAgICAgLy9SZWZlcmVuY2UgZnJvbSBjb250ZXh0cyBpbnN0ZWFkIG9mIGVhcmx5IGJpbmRpbmcgdG8gZGVmYXVsdCBjb250ZXh0LAogICAgICAgIC8vc28gdGhhdCBkdXJpbmcgYnVpbGRzLCB0aGUgbGF0ZXN0IGluc3RhbmNlIG9mIHRoZSBkZWZhdWx0IGNvbnRleHQKICAgICAgICAvL3dpdGggaXRzIGNvbmZpZyBnZXRzIHVzZWQuCiAgICAgICAgcmVxW3Byb3BdID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgY3R4ID0gY29udGV4dHNbZGVmQ29udGV4dE5hbWVdOwogICAgICAgICAgICByZXR1cm4gY3R4LnJlcXVpcmVbcHJvcF0uYXBwbHkoY3R4LCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICB9KTsKCiAgICBpZiAoaXNCcm93c2VyKSB7CiAgICAgICAgaGVhZCA9IHMuaGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07CiAgICAgICAgLy9JZiBCQVNFIHRhZyBpcyBpbiBwbGF5LCB1c2luZyBhcHBlbmRDaGlsZCBpcyBhIHByb2JsZW0gZm9yIElFNi4KICAgICAgICAvL1doZW4gdGhhdCBicm93c2VyIGRpZXMsIHRoaXMgY2FuIGJlIHJlbW92ZWQuIERldGFpbHMgaW4gdGhpcyBqUXVlcnkgYnVnOgogICAgICAgIC8vaHR0cDovL2Rldi5qcXVlcnkuY29tL3RpY2tldC8yNzA5CiAgICAgICAgYmFzZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYmFzZScpWzBdOwogICAgICAgIGlmIChiYXNlRWxlbWVudCkgewogICAgICAgICAgICBoZWFkID0gcy5oZWFkID0gYmFzZUVsZW1lbnQucGFyZW50Tm9kZTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBBbnkgZXJyb3JzIHRoYXQgcmVxdWlyZSBleHBsaWNpdGx5IGdlbmVyYXRlcyB3aWxsIGJlIHBhc3NlZCB0byB0aGlzCiAgICAgKiBmdW5jdGlvbi4gSW50ZXJjZXB0L292ZXJyaWRlIGl0IGlmIHlvdSB3YW50IGN1c3RvbSBlcnJvciBoYW5kbGluZy4KICAgICAqIEBwYXJhbSB7RXJyb3J9IGVyciB0aGUgZXJyb3Igb2JqZWN0LgogICAgICovCiAgICByZXEub25FcnJvciA9IGRlZmF1bHRPbkVycm9yOwoKICAgIC8qKgogICAgICogQ3JlYXRlcyB0aGUgbm9kZSBmb3IgdGhlIGxvYWQgY29tbWFuZC4gT25seSB1c2VkIGluIGJyb3dzZXIgZW52cy4KICAgICAqLwogICAgcmVxLmNyZWF0ZU5vZGUgPSBmdW5jdGlvbiAoY29uZmlnLCBtb2R1bGVOYW1lLCB1cmwpIHsKICAgICAgICB2YXIgbm9kZSA9IGNvbmZpZy54aHRtbCA/CiAgICAgICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAnaHRtbDpzY3JpcHQnKSA6CiAgICAgICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICBub2RlLnR5cGUgPSBjb25maWcuc2NyaXB0VHlwZSB8fCAndGV4dC9qYXZhc2NyaXB0JzsKICAgICAgICBub2RlLmNoYXJzZXQgPSAndXRmLTgnOwogICAgICAgIG5vZGUuYXN5bmMgPSB0cnVlOwogICAgICAgIHJldHVybiBub2RlOwogICAgfTsKCiAgICAvKioKICAgICAqIERvZXMgdGhlIHJlcXVlc3QgdG8gbG9hZCBhIG1vZHVsZSBmb3IgdGhlIGJyb3dzZXIgY2FzZS4KICAgICAqIE1ha2UgdGhpcyBhIHNlcGFyYXRlIGZ1bmN0aW9uIHRvIGFsbG93IG90aGVyIGVudmlyb25tZW50cwogICAgICogdG8gb3ZlcnJpZGUgaXQuCiAgICAgKgogICAgICogQHBhcmFtIHtPYmplY3R9IGNvbnRleHQgdGhlIHJlcXVpcmUgY29udGV4dCB0byBmaW5kIHN0YXRlLgogICAgICogQHBhcmFtIHtTdHJpbmd9IG1vZHVsZU5hbWUgdGhlIG5hbWUgb2YgdGhlIG1vZHVsZS4KICAgICAqIEBwYXJhbSB7T2JqZWN0fSB1cmwgdGhlIFVSTCB0byB0aGUgbW9kdWxlLgogICAgICovCiAgICByZXEubG9hZCA9IGZ1bmN0aW9uIChjb250ZXh0LCBtb2R1bGVOYW1lLCB1cmwpIHsKICAgICAgICB2YXIgY29uZmlnID0gKGNvbnRleHQgJiYgY29udGV4dC5jb25maWcpIHx8IHt9LAogICAgICAgICAgICBub2RlOwogICAgICAgIGlmIChpc0Jyb3dzZXIpIHsKICAgICAgICAgICAgLy9JbiB0aGUgYnJvd3NlciBzbyB1c2UgYSBzY3JpcHQgdGFnCiAgICAgICAgICAgIG5vZGUgPSByZXEuY3JlYXRlTm9kZShjb25maWcsIG1vZHVsZU5hbWUsIHVybCk7CgogICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZSgnZGF0YS1yZXF1aXJlY29udGV4dCcsIGNvbnRleHQuY29udGV4dE5hbWUpOwogICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZSgnZGF0YS1yZXF1aXJlbW9kdWxlJywgbW9kdWxlTmFtZSk7CgogICAgICAgICAgICAvL1NldCB1cCBsb2FkIGxpc3RlbmVyLiBUZXN0IGF0dGFjaEV2ZW50IGZpcnN0IGJlY2F1c2UgSUU5IGhhcwogICAgICAgICAgICAvL2Egc3VidGxlIGlzc3VlIGluIGl0cyBhZGRFdmVudExpc3RlbmVyIGFuZCBzY3JpcHQgb25sb2FkIGZpcmluZ3MKICAgICAgICAgICAgLy90aGF0IGRvIG5vdCBtYXRjaCB0aGUgYmVoYXZpb3Igb2YgYWxsIG90aGVyIGJyb3dzZXJzIHdpdGgKICAgICAgICAgICAgLy9hZGRFdmVudExpc3RlbmVyIHN1cHBvcnQsIHdoaWNoIGZpcmUgdGhlIG9ubG9hZCBldmVudCBmb3IgYQogICAgICAgICAgICAvL3NjcmlwdCByaWdodCBhZnRlciB0aGUgc2NyaXB0IGV4ZWN1dGlvbi4gU2VlOgogICAgICAgICAgICAvL2h0dHBzOi8vY29ubmVjdC5taWNyb3NvZnQuY29tL0lFL2ZlZWRiYWNrL2RldGFpbHMvNjQ4MDU3L3NjcmlwdC1vbmxvYWQtZXZlbnQtaXMtbm90LWZpcmVkLWltbWVkaWF0ZWx5LWFmdGVyLXNjcmlwdC1leGVjdXRpb24KICAgICAgICAgICAgLy9VTkZPUlRVTkFURUxZIE9wZXJhIGltcGxlbWVudHMgYXR0YWNoRXZlbnQgYnV0IGRvZXMgbm90IGZvbGxvdyB0aGUgc2NyaXB0CiAgICAgICAgICAgIC8vc2NyaXB0IGV4ZWN1dGlvbiBtb2RlLgogICAgICAgICAgICBpZiAobm9kZS5hdHRhY2hFdmVudCAmJgogICAgICAgICAgICAgICAgICAgIC8vQ2hlY2sgaWYgbm9kZS5hdHRhY2hFdmVudCBpcyBhcnRpZmljaWFsbHkgYWRkZWQgYnkgY3VzdG9tIHNjcmlwdCBvcgogICAgICAgICAgICAgICAgICAgIC8vbmF0aXZlbHkgc3VwcG9ydGVkIGJ5IGJyb3dzZXIKICAgICAgICAgICAgICAgICAgICAvL3JlYWQgaHR0cHM6Ly9naXRodWIuY29tL3JlcXVpcmVqcy9yZXF1aXJlanMvaXNzdWVzLzE4NwogICAgICAgICAgICAgICAgICAgIC8vaWYgd2UgY2FuIE5PVCBmaW5kIFtuYXRpdmUgY29kZV0gdGhlbiBpdCBtdXN0IE5PVCBuYXRpdmVseSBzdXBwb3J0ZWQuCiAgICAgICAgICAgICAgICAgICAgLy9pbiBJRTgsIG5vZGUuYXR0YWNoRXZlbnQgZG9lcyBub3QgaGF2ZSB0b1N0cmluZygpCiAgICAgICAgICAgICAgICAgICAgLy9Ob3RlIHRoZSB0ZXN0IGZvciAiW25hdGl2ZSBjb2RlIiB3aXRoIG5vIGNsb3NpbmcgYnJhY2UsIHNlZToKICAgICAgICAgICAgICAgICAgICAvL2h0dHBzOi8vZ2l0aHViLmNvbS9yZXF1aXJlanMvcmVxdWlyZWpzL2lzc3Vlcy8yNzMKICAgICAgICAgICAgICAgICAgICAhKG5vZGUuYXR0YWNoRXZlbnQudG9TdHJpbmcgJiYgbm9kZS5hdHRhY2hFdmVudC50b1N0cmluZygpLmluZGV4T2YoJ1tuYXRpdmUgY29kZScpIDwgMCkgJiYKICAgICAgICAgICAgICAgICAgICAhaXNPcGVyYSkgewogICAgICAgICAgICAgICAgLy9Qcm9iYWJseSBJRS4gSUUgKGF0IGxlYXN0IDYtOCkgZG8gbm90IGZpcmUKICAgICAgICAgICAgICAgIC8vc2NyaXB0IG9ubG9hZCByaWdodCBhZnRlciBleGVjdXRpbmcgdGhlIHNjcmlwdCwgc28KICAgICAgICAgICAgICAgIC8vd2UgY2Fubm90IHRpZSB0aGUgYW5vbnltb3VzIGRlZmluZSBjYWxsIHRvIGEgbmFtZS4KICAgICAgICAgICAgICAgIC8vSG93ZXZlciwgSUUgcmVwb3J0cyB0aGUgc2NyaXB0IGFzIGJlaW5nIGluICdpbnRlcmFjdGl2ZScKICAgICAgICAgICAgICAgIC8vcmVhZHlTdGF0ZSBhdCB0aGUgdGltZSBvZiB0aGUgZGVmaW5lIGNhbGwuCiAgICAgICAgICAgICAgICB1c2VJbnRlcmFjdGl2ZSA9IHRydWU7CgogICAgICAgICAgICAgICAgbm9kZS5hdHRhY2hFdmVudCgnb25yZWFkeXN0YXRlY2hhbmdlJywgY29udGV4dC5vblNjcmlwdExvYWQpOwogICAgICAgICAgICAgICAgLy9JdCB3b3VsZCBiZSBncmVhdCB0byBhZGQgYW4gZXJyb3IgaGFuZGxlciBoZXJlIHRvIGNhdGNoCiAgICAgICAgICAgICAgICAvLzQwNHMgaW4gSUU5Ky4gSG93ZXZlciwgb25yZWFkeXN0YXRlY2hhbmdlIHdpbGwgZmlyZSBiZWZvcmUKICAgICAgICAgICAgICAgIC8vdGhlIGVycm9yIGhhbmRsZXIsIHNvIHRoYXQgZG9lcyBub3QgaGVscC4gSWYgYWRkRXZlbnRMaXN0ZW5lcgogICAgICAgICAgICAgICAgLy9pcyB1c2VkLCB0aGVuIElFIHdpbGwgZmlyZSBlcnJvciBiZWZvcmUgbG9hZCwgYnV0IHdlIGNhbm5vdAogICAgICAgICAgICAgICAgLy91c2UgdGhhdCBwYXRod2F5IGdpdmVuIHRoZSBjb25uZWN0Lm1pY3Jvc29mdC5jb20gaXNzdWUKICAgICAgICAgICAgICAgIC8vbWVudGlvbmVkIGFib3ZlIGFib3V0IG5vdCBkb2luZyB0aGUgJ3NjcmlwdCBleGVjdXRlLAogICAgICAgICAgICAgICAgLy90aGVuIGZpcmUgdGhlIHNjcmlwdCBsb2FkIGV2ZW50IGxpc3RlbmVyIGJlZm9yZSBleGVjdXRlCiAgICAgICAgICAgICAgICAvL25leHQgc2NyaXB0JyB0aGF0IG90aGVyIGJyb3dzZXJzIGRvLgogICAgICAgICAgICAgICAgLy9CZXN0IGhvcGU6IElFMTAgZml4ZXMgdGhlIGlzc3VlcywKICAgICAgICAgICAgICAgIC8vYW5kIHRoZW4gZGVzdHJveXMgYWxsIGluc3RhbGxzIG9mIElFIDYtOS4KICAgICAgICAgICAgICAgIC8vbm9kZS5hdHRhY2hFdmVudCgnb25lcnJvcicsIGNvbnRleHQub25TY3JpcHRFcnJvcik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBjb250ZXh0Lm9uU2NyaXB0TG9hZCwgZmFsc2UpOwogICAgICAgICAgICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGNvbnRleHQub25TY3JpcHRFcnJvciwgZmFsc2UpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG5vZGUuc3JjID0gdXJsOwoKICAgICAgICAgICAgLy9DYWxsaW5nIG9uTm9kZUNyZWF0ZWQgYWZ0ZXIgYWxsIHByb3BlcnRpZXMgb24gdGhlIG5vZGUgaGF2ZSBiZWVuCiAgICAgICAgICAgIC8vc2V0LCBidXQgYmVmb3JlIGl0IGlzIHBsYWNlZCBpbiB0aGUgRE9NLgogICAgICAgICAgICBpZiAoY29uZmlnLm9uTm9kZUNyZWF0ZWQpIHsKICAgICAgICAgICAgICAgIGNvbmZpZy5vbk5vZGVDcmVhdGVkKG5vZGUsIGNvbmZpZywgbW9kdWxlTmFtZSwgdXJsKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy9Gb3Igc29tZSBjYWNoZSBjYXNlcyBpbiBJRSA2LTgsIHRoZSBzY3JpcHQgZXhlY3V0ZXMgYmVmb3JlIHRoZSBlbmQKICAgICAgICAgICAgLy9vZiB0aGUgYXBwZW5kQ2hpbGQgZXhlY3V0aW9uLCBzbyB0byB0aWUgYW4gYW5vbnltb3VzIGRlZmluZQogICAgICAgICAgICAvL2NhbGwgdG8gdGhlIG1vZHVsZSBuYW1lICh3aGljaCBpcyBzdG9yZWQgb24gdGhlIG5vZGUpLCBob2xkIG9uCiAgICAgICAgICAgIC8vdG8gYSByZWZlcmVuY2UgdG8gdGhpcyBub2RlLCBidXQgY2xlYXIgYWZ0ZXIgdGhlIERPTSBpbnNlcnRpb24uCiAgICAgICAgICAgIGN1cnJlbnRseUFkZGluZ1NjcmlwdCA9IG5vZGU7CiAgICAgICAgICAgIGlmIChiYXNlRWxlbWVudCkgewogICAgICAgICAgICAgICAgaGVhZC5pbnNlcnRCZWZvcmUobm9kZSwgYmFzZUVsZW1lbnQpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaGVhZC5hcHBlbmRDaGlsZChub2RlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjdXJyZW50bHlBZGRpbmdTY3JpcHQgPSBudWxsOwoKICAgICAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgICAgfSBlbHNlIGlmIChpc1dlYldvcmtlcikgewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgLy9JbiBhIHdlYiB3b3JrZXIsIHVzZSBpbXBvcnRTY3JpcHRzLiBUaGlzIGlzIG5vdCBhIHZlcnkKICAgICAgICAgICAgICAgIC8vZWZmaWNpZW50IHVzZSBvZiBpbXBvcnRTY3JpcHRzLCBpbXBvcnRTY3JpcHRzIHdpbGwgYmxvY2sgdW50aWwKICAgICAgICAgICAgICAgIC8vaXRzIHNjcmlwdCBpcyBkb3dubG9hZGVkIGFuZCBldmFsdWF0ZWQuIEhvd2V2ZXIsIGlmIHdlYiB3b3JrZXJzCiAgICAgICAgICAgICAgICAvL2FyZSBpbiBwbGF5LCB0aGUgZXhwZWN0YXRpb24gaXMgdGhhdCBhIGJ1aWxkIGhhcyBiZWVuIGRvbmUgc28KICAgICAgICAgICAgICAgIC8vdGhhdCBvbmx5IG9uZSBzY3JpcHQgbmVlZHMgdG8gYmUgbG9hZGVkIGFueXdheS4gVGhpcyBtYXkgbmVlZAogICAgICAgICAgICAgICAgLy90byBiZSByZWV2YWx1YXRlZCBpZiBvdGhlciB1c2UgY2FzZXMgYmVjb21lIGNvbW1vbi4KCiAgICAgICAgICAgICAgICAvLyBQb3N0IGEgdGFzayB0byB0aGUgZXZlbnQgbG9vcCB0byB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBXZWJLaXQKICAgICAgICAgICAgICAgIC8vIHdoZXJlIHRoZSB3b3JrZXIgZ2V0cyBnYXJiYWdlLWNvbGxlY3RlZCBhZnRlciBjYWxsaW5nCiAgICAgICAgICAgICAgICAvLyBpbXBvcnRTY3JpcHRzKCk6IGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE1MzMxNwogICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHt9LCAwKTsKICAgICAgICAgICAgICAgIGltcG9ydFNjcmlwdHModXJsKTsKCiAgICAgICAgICAgICAgICAvL0FjY291bnQgZm9yIGFub255bW91cyBtb2R1bGVzCiAgICAgICAgICAgICAgICBjb250ZXh0LmNvbXBsZXRlTG9hZChtb2R1bGVOYW1lKTsKICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgY29udGV4dC5vbkVycm9yKG1ha2VFcnJvcignaW1wb3J0c2NyaXB0cycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ltcG9ydFNjcmlwdHMgZmFpbGVkIGZvciAnICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlTmFtZSArICcgYXQgJyArIHVybCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2R1bGVOYW1lXSkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfTsKCiAgICBmdW5jdGlvbiBnZXRJbnRlcmFjdGl2ZVNjcmlwdCgpIHsKICAgICAgICBpZiAoaW50ZXJhY3RpdmVTY3JpcHQgJiYgaW50ZXJhY3RpdmVTY3JpcHQucmVhZHlTdGF0ZSA9PT0gJ2ludGVyYWN0aXZlJykgewogICAgICAgICAgICByZXR1cm4gaW50ZXJhY3RpdmVTY3JpcHQ7CiAgICAgICAgfQoKICAgICAgICBlYWNoUmV2ZXJzZShzY3JpcHRzKCksIGZ1bmN0aW9uIChzY3JpcHQpIHsKICAgICAgICAgICAgaWYgKHNjcmlwdC5yZWFkeVN0YXRlID09PSAnaW50ZXJhY3RpdmUnKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKGludGVyYWN0aXZlU2NyaXB0ID0gc2NyaXB0KTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIHJldHVybiBpbnRlcmFjdGl2ZVNjcmlwdDsKICAgIH0KCiAgICAvL0xvb2sgZm9yIGEgZGF0YS1tYWluIHNjcmlwdCBhdHRyaWJ1dGUsIHdoaWNoIGNvdWxkIGFsc28gYWRqdXN0IHRoZSBiYXNlVXJsLgogICAgaWYgKGlzQnJvd3NlciAmJiAhY2ZnLnNraXBEYXRhTWFpbikgewogICAgICAgIC8vRmlndXJlIG91dCBiYXNlVXJsLiBHZXQgaXQgZnJvbSB0aGUgc2NyaXB0IHRhZyB3aXRoIHJlcXVpcmUuanMgaW4gaXQuCiAgICAgICAgZWFjaFJldmVyc2Uoc2NyaXB0cygpLCBmdW5jdGlvbiAoc2NyaXB0KSB7CiAgICAgICAgICAgIC8vU2V0IHRoZSAnaGVhZCcgd2hlcmUgd2UgY2FuIGFwcGVuZCBjaGlsZHJlbiBieQogICAgICAgICAgICAvL3VzaW5nIHRoZSBzY3JpcHQncyBwYXJlbnQuCiAgICAgICAgICAgIGlmICghaGVhZCkgewogICAgICAgICAgICAgICAgaGVhZCA9IHNjcmlwdC5wYXJlbnROb2RlOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvL0xvb2sgZm9yIGEgZGF0YS1tYWluIGF0dHJpYnV0ZSB0byBzZXQgbWFpbiBzY3JpcHQgZm9yIHRoZSBwYWdlCiAgICAgICAgICAgIC8vdG8gbG9hZC4gSWYgaXQgaXMgdGhlcmUsIHRoZSBwYXRoIHRvIGRhdGEgbWFpbiBiZWNvbWVzIHRoZQogICAgICAgICAgICAvL2Jhc2VVcmwsIGlmIGl0IGlzIG5vdCBhbHJlYWR5IHNldC4KICAgICAgICAgICAgZGF0YU1haW4gPSBzY3JpcHQuZ2V0QXR0cmlidXRlKCdkYXRhLW1haW4nKTsKICAgICAgICAgICAgaWYgKGRhdGFNYWluKSB7CiAgICAgICAgICAgICAgICAvL1ByZXNlcnZlIGRhdGFNYWluIGluIGNhc2UgaXQgaXMgYSBwYXRoIChpLmUuIGNvbnRhaW5zICc/JykKICAgICAgICAgICAgICAgIG1haW5TY3JpcHQgPSBkYXRhTWFpbjsKCiAgICAgICAgICAgICAgICAvL1NldCBmaW5hbCBiYXNlVXJsIGlmIHRoZXJlIGlzIG5vdCBhbHJlYWR5IGFuIGV4cGxpY2l0IG9uZSwKICAgICAgICAgICAgICAgIC8vYnV0IG9ubHkgZG8gc28gaWYgdGhlIGRhdGEtbWFpbiB2YWx1ZSBpcyBub3QgYSBsb2FkZXIgcGx1Z2luCiAgICAgICAgICAgICAgICAvL21vZHVsZSBJRC4KICAgICAgICAgICAgICAgIGlmICghY2ZnLmJhc2VVcmwgJiYgbWFpblNjcmlwdC5pbmRleE9mKCchJykgPT09IC0xKSB7CiAgICAgICAgICAgICAgICAgICAgLy9QdWxsIG9mZiB0aGUgZGlyZWN0b3J5IG9mIGRhdGEtbWFpbiBmb3IgdXNlIGFzIHRoZQogICAgICAgICAgICAgICAgICAgIC8vYmFzZVVybC4KICAgICAgICAgICAgICAgICAgICBzcmMgPSBtYWluU2NyaXB0LnNwbGl0KCcvJyk7CiAgICAgICAgICAgICAgICAgICAgbWFpblNjcmlwdCA9IHNyYy5wb3AoKTsKICAgICAgICAgICAgICAgICAgICBzdWJQYXRoID0gc3JjLmxlbmd0aCA/IHNyYy5qb2luKCcvJykgICsgJy8nIDogJy4vJzsKCiAgICAgICAgICAgICAgICAgICAgY2ZnLmJhc2VVcmwgPSBzdWJQYXRoOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vU3RyaXAgb2ZmIGFueSB0cmFpbGluZyAuanMgc2luY2UgbWFpblNjcmlwdCBpcyBub3cKICAgICAgICAgICAgICAgIC8vbGlrZSBhIG1vZHVsZSBuYW1lLgogICAgICAgICAgICAgICAgbWFpblNjcmlwdCA9IG1haW5TY3JpcHQucmVwbGFjZShqc1N1ZmZpeFJlZ0V4cCwgJycpOwoKICAgICAgICAgICAgICAgIC8vSWYgbWFpblNjcmlwdCBpcyBzdGlsbCBhIHBhdGgsIGZhbGwgYmFjayB0byBkYXRhTWFpbgogICAgICAgICAgICAgICAgaWYgKHJlcS5qc0V4dFJlZ0V4cC50ZXN0KG1haW5TY3JpcHQpKSB7CiAgICAgICAgICAgICAgICAgICAgbWFpblNjcmlwdCA9IGRhdGFNYWluOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vUHV0IHRoZSBkYXRhLW1haW4gc2NyaXB0IGluIHRoZSBmaWxlcyB0byBsb2FkLgogICAgICAgICAgICAgICAgY2ZnLmRlcHMgPSBjZmcuZGVwcyA/IGNmZy5kZXBzLmNvbmNhdChtYWluU2NyaXB0KSA6IFttYWluU2NyaXB0XTsKCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfQoKICAgIC8qKgogICAgICogVGhlIGZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBkZWZpbml0aW9ucyBvZiBtb2R1bGVzLiBEaWZmZXJzIGZyb20KICAgICAqIHJlcXVpcmUoKSBpbiB0aGF0IGEgc3RyaW5nIGZvciB0aGUgbW9kdWxlIHNob3VsZCBiZSB0aGUgZmlyc3QgYXJndW1lbnQsCiAgICAgKiBhbmQgdGhlIGZ1bmN0aW9uIHRvIGV4ZWN1dGUgYWZ0ZXIgZGVwZW5kZW5jaWVzIGFyZSBsb2FkZWQgc2hvdWxkCiAgICAgKiByZXR1cm4gYSB2YWx1ZSB0byBkZWZpbmUgdGhlIG1vZHVsZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBmaXJzdCBhcmd1bWVudCdzCiAgICAgKiBuYW1lLgogICAgICovCiAgICBkZWZpbmUgPSBmdW5jdGlvbiAobmFtZSwgZGVwcywgY2FsbGJhY2spIHsKICAgICAgICB2YXIgbm9kZSwgY29udGV4dDsKCiAgICAgICAgLy9BbGxvdyBmb3IgYW5vbnltb3VzIG1vZHVsZXMKICAgICAgICBpZiAodHlwZW9mIG5hbWUgIT09ICdzdHJpbmcnKSB7CiAgICAgICAgICAgIC8vQWRqdXN0IGFyZ3MgYXBwcm9wcmlhdGVseQogICAgICAgICAgICBjYWxsYmFjayA9IGRlcHM7CiAgICAgICAgICAgIGRlcHMgPSBuYW1lOwogICAgICAgICAgICBuYW1lID0gbnVsbDsKICAgICAgICB9CgogICAgICAgIC8vVGhpcyBtb2R1bGUgbWF5IG5vdCBoYXZlIGRlcGVuZGVuY2llcwogICAgICAgIGlmICghaXNBcnJheShkZXBzKSkgewogICAgICAgICAgICBjYWxsYmFjayA9IGRlcHM7CiAgICAgICAgICAgIGRlcHMgPSBudWxsOwogICAgICAgIH0KCiAgICAgICAgLy9JZiBubyBuYW1lLCBhbmQgY2FsbGJhY2sgaXMgYSBmdW5jdGlvbiwgdGhlbiBmaWd1cmUgb3V0IGlmIGl0IGEKICAgICAgICAvL0NvbW1vbkpTIHRoaW5nIHdpdGggZGVwZW5kZW5jaWVzLgogICAgICAgIGlmICghZGVwcyAmJiBpc0Z1bmN0aW9uKGNhbGxiYWNrKSkgewogICAgICAgICAgICBkZXBzID0gW107CiAgICAgICAgICAgIC8vUmVtb3ZlIGNvbW1lbnRzIGZyb20gdGhlIGNhbGxiYWNrIHN0cmluZywKICAgICAgICAgICAgLy9sb29rIGZvciByZXF1aXJlIGNhbGxzLCBhbmQgcHVsbCB0aGVtIGludG8gdGhlIGRlcGVuZGVuY2llcywKICAgICAgICAgICAgLy9idXQgb25seSBpZiB0aGVyZSBhcmUgZnVuY3Rpb24gYXJncy4KICAgICAgICAgICAgaWYgKGNhbGxiYWNrLmxlbmd0aCkgewogICAgICAgICAgICAgICAgY2FsbGJhY2sKICAgICAgICAgICAgICAgICAgICAudG9TdHJpbmcoKQogICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKGNvbW1lbnRSZWdFeHAsIGNvbW1lbnRSZXBsYWNlKQogICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKGNqc1JlcXVpcmVSZWdFeHAsIGZ1bmN0aW9uIChtYXRjaCwgZGVwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlcHMucHVzaChkZXApOwogICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgIC8vTWF5IGJlIGEgQ29tbW9uSlMgdGhpbmcgZXZlbiB3aXRob3V0IHJlcXVpcmUgY2FsbHMsIGJ1dCBzdGlsbAogICAgICAgICAgICAgICAgLy9jb3VsZCB1c2UgZXhwb3J0cywgYW5kIG1vZHVsZS4gQXZvaWQgZG9pbmcgZXhwb3J0cyBhbmQgbW9kdWxlCiAgICAgICAgICAgICAgICAvL3dvcmsgdGhvdWdoIGlmIGl0IGp1c3QgbmVlZHMgcmVxdWlyZS4KICAgICAgICAgICAgICAgIC8vUkVRVUlSRVMgdGhlIGZ1bmN0aW9uIHRvIGV4cGVjdCB0aGUgQ29tbW9uSlMgdmFyaWFibGVzIGluIHRoZQogICAgICAgICAgICAgICAgLy9vcmRlciBsaXN0ZWQgYmVsb3cuCiAgICAgICAgICAgICAgICBkZXBzID0gKGNhbGxiYWNrLmxlbmd0aCA9PT0gMSA/IFsncmVxdWlyZSddIDogWydyZXF1aXJlJywgJ2V4cG9ydHMnLCAnbW9kdWxlJ10pLmNvbmNhdChkZXBzKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy9JZiBpbiBJRSA2LTggYW5kIGhpdCBhbiBhbm9ueW1vdXMgZGVmaW5lKCkgY2FsbCwgZG8gdGhlIGludGVyYWN0aXZlCiAgICAgICAgLy93b3JrLgogICAgICAgIGlmICh1c2VJbnRlcmFjdGl2ZSkgewogICAgICAgICAgICBub2RlID0gY3VycmVudGx5QWRkaW5nU2NyaXB0IHx8IGdldEludGVyYWN0aXZlU2NyaXB0KCk7CiAgICAgICAgICAgIGlmIChub2RlKSB7CiAgICAgICAgICAgICAgICBpZiAoIW5hbWUpIHsKICAgICAgICAgICAgICAgICAgICBuYW1lID0gbm9kZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtcmVxdWlyZW1vZHVsZScpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY29udGV4dCA9IGNvbnRleHRzW25vZGUuZ2V0QXR0cmlidXRlKCdkYXRhLXJlcXVpcmVjb250ZXh0JyldOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvL0Fsd2F5cyBzYXZlIG9mZiBldmFsdWF0aW5nIHRoZSBkZWYgY2FsbCB1bnRpbCB0aGUgc2NyaXB0IG9ubG9hZCBoYW5kbGVyLgogICAgICAgIC8vVGhpcyBhbGxvd3MgbXVsdGlwbGUgbW9kdWxlcyB0byBiZSBpbiBhIGZpbGUgd2l0aG91dCBwcmVtYXR1cmVseQogICAgICAgIC8vdHJhY2luZyBkZXBlbmRlbmNpZXMsIGFuZCBhbGxvd3MgZm9yIGFub255bW91cyBtb2R1bGUgc3VwcG9ydCwKICAgICAgICAvL3doZXJlIHRoZSBtb2R1bGUgbmFtZSBpcyBub3Qga25vd24gdW50aWwgdGhlIHNjcmlwdCBvbmxvYWQgZXZlbnQKICAgICAgICAvL29jY3Vycy4gSWYgbm8gY29udGV4dCwgdXNlIHRoZSBnbG9iYWwgcXVldWUsIGFuZCBnZXQgaXQgcHJvY2Vzc2VkCiAgICAgICAgLy9pbiB0aGUgb25zY3JpcHQgbG9hZCBjYWxsYmFjay4KICAgICAgICBpZiAoY29udGV4dCkgewogICAgICAgICAgICBjb250ZXh0LmRlZlF1ZXVlLnB1c2goW25hbWUsIGRlcHMsIGNhbGxiYWNrXSk7CiAgICAgICAgICAgIGNvbnRleHQuZGVmUXVldWVNYXBbbmFtZV0gPSB0cnVlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGdsb2JhbERlZlF1ZXVlLnB1c2goW25hbWUsIGRlcHMsIGNhbGxiYWNrXSk7CiAgICAgICAgfQogICAgfTsKCiAgICBkZWZpbmUuYW1kID0gewogICAgICAgIGpRdWVyeTogdHJ1ZQogICAgfTsKCiAgICAvKioKICAgICAqIEV4ZWN1dGVzIHRoZSB0ZXh0LiBOb3JtYWxseSBqdXN0IHVzZXMgZXZhbCwgYnV0IGNhbiBiZSBtb2RpZmllZAogICAgICogdG8gdXNlIGEgYmV0dGVyLCBlbnZpcm9ubWVudC1zcGVjaWZpYyBjYWxsLiBPbmx5IHVzZWQgZm9yIHRyYW5zcGlsaW5nCiAgICAgKiBsb2FkZXIgcGx1Z2lucywgbm90IGZvciBwbGFpbiBKUyBtb2R1bGVzLgogICAgICogQHBhcmFtIHtTdHJpbmd9IHRleHQgdGhlIHRleHQgdG8gZXhlY3V0ZS9ldmFsdWF0ZS4KICAgICAqLwogICAgcmVxLmV4ZWMgPSBmdW5jdGlvbiAodGV4dCkgewogICAgICAgIC8qanNsaW50IGV2aWw6IHRydWUgKi8KICAgICAgICByZXR1cm4gZXZhbCh0ZXh0KTsKICAgIH07CgogICAgLy9TZXQgdXAgd2l0aCBjb25maWcgaW5mby4KICAgIHJlcShjZmcpOwp9KHRoaXMsICh0eXBlb2Ygc2V0VGltZW91dCA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBzZXRUaW1lb3V0KSkpOwoKLy8gQ29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLy8KLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLy8gICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAovLwovLyBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLy8KLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQovLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLy8gICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgohZnVuY3Rpb24oKXt2YXIgYT17fSxiPXt9LGM9e307IWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhhKXtpZigibnVtYmVyIj09dHlwZW9mIGEpcmV0dXJuIGE7dmFyIGI9e307Zm9yKHZhciBjIGluIGEpYltjXT1hW2NdO3JldHVybiBifWZ1bmN0aW9uIGQoKXt0aGlzLl9kZWxheT0wLHRoaXMuX2VuZERlbGF5PTAsdGhpcy5fZmlsbD0ibm9uZSIsdGhpcy5faXRlcmF0aW9uU3RhcnQ9MCx0aGlzLl9pdGVyYXRpb25zPTEsdGhpcy5fZHVyYXRpb249MCx0aGlzLl9wbGF5YmFja1JhdGU9MSx0aGlzLl9kaXJlY3Rpb249Im5vcm1hbCIsdGhpcy5fZWFzaW5nPSJsaW5lYXIiLHRoaXMuX2Vhc2luZ0Z1bmN0aW9uPXh9ZnVuY3Rpb24gZSgpe3JldHVybiBhLmlzRGVwcmVjYXRlZCgiSW52YWxpZCB0aW1pbmcgaW5wdXRzIiwiMjAxNi0wMy0wMiIsIlR5cGVFcnJvciBleGNlcHRpb25zIHdpbGwgYmUgdGhyb3duIGluc3RlYWQuIiwhMCl9ZnVuY3Rpb24gZihiLGMsZSl7dmFyIGY9bmV3IGQ7cmV0dXJuIGMmJihmLmZpbGw9ImJvdGgiLGYuZHVyYXRpb249ImF1dG8iKSwibnVtYmVyIiE9dHlwZW9mIGJ8fGlzTmFOKGIpP3ZvaWQgMCE9PWImJk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGIpLmZvckVhY2goZnVuY3Rpb24oYyl7aWYoImF1dG8iIT1iW2NdKXtpZigoIm51bWJlciI9PXR5cGVvZiBmW2NdfHwiZHVyYXRpb24iPT1jKSYmKCJudW1iZXIiIT10eXBlb2YgYltjXXx8aXNOYU4oYltjXSkpKXJldHVybjtpZigiZmlsbCI9PWMmJi0xPT12LmluZGV4T2YoYltjXSkpcmV0dXJuO2lmKCJkaXJlY3Rpb24iPT1jJiYtMT09dy5pbmRleE9mKGJbY10pKXJldHVybjtpZigicGxheWJhY2tSYXRlIj09YyYmMSE9PWJbY10mJmEuaXNEZXByZWNhdGVkKCJBbmltYXRpb25FZmZlY3RUaW1pbmcucGxheWJhY2tSYXRlIiwiMjAxNC0xMS0yOCIsIlVzZSBBbmltYXRpb24ucGxheWJhY2tSYXRlIGluc3RlYWQuIikpcmV0dXJuO2ZbY109YltjXX19KTpmLmR1cmF0aW9uPWIsZn1mdW5jdGlvbiBnKGEpe3JldHVybiJudW1iZXIiPT10eXBlb2YgYSYmKGE9aXNOYU4oYSk/e2R1cmF0aW9uOjB9OntkdXJhdGlvbjphfSksYX1mdW5jdGlvbiBoKGIsYyl7cmV0dXJuIGI9YS5udW1lcmljVGltaW5nVG9PYmplY3QoYiksZihiLGMpfWZ1bmN0aW9uIGkoYSxiLGMsZCl7cmV0dXJuIGE8MHx8YT4xfHxjPDB8fGM+MT94OmZ1bmN0aW9uKGUpe2Z1bmN0aW9uIGYoYSxiLGMpe3JldHVybiAzKmEqKDEtYykqKDEtYykqYyszKmIqKDEtYykqYypjK2MqYypjfWlmKGU8PTApe3ZhciBnPTA7cmV0dXJuIGE+MD9nPWIvYTohYiYmYz4wJiYoZz1kL2MpLGcqZX1pZihlPj0xKXt2YXIgaD0wO3JldHVybiBjPDE/aD0oZC0xKS8oYy0xKToxPT1jJiZhPDEmJihoPShiLTEpLyhhLTEpKSwxK2gqKGUtMSl9Zm9yKHZhciBpPTAsaj0xO2k8ajspe3ZhciBrPShpK2opLzIsbD1mKGEsYyxrKTtpZihNYXRoLmFicyhlLWwpPDFlLTUpcmV0dXJuIGYoYixkLGspO2w8ZT9pPWs6aj1rfXJldHVybiBmKGIsZCxrKX19ZnVuY3Rpb24gaihhLGIpe3JldHVybiBmdW5jdGlvbihjKXtpZihjPj0xKXJldHVybiAxO3ZhciBkPTEvYTtyZXR1cm4oYys9YipkKS1jJWR9fWZ1bmN0aW9uIGsoYSl7Q3x8KEM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUpLEMuYW5pbWF0aW9uVGltaW5nRnVuY3Rpb249IiIsQy5hbmltYXRpb25UaW1pbmdGdW5jdGlvbj1hO3ZhciBiPUMuYW5pbWF0aW9uVGltaW5nRnVuY3Rpb247aWYoIiI9PWImJmUoKSl0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgZWFzaW5nIik7cmV0dXJuIGJ9ZnVuY3Rpb24gbChhKXtpZigibGluZWFyIj09YSlyZXR1cm4geDt2YXIgYj1FLmV4ZWMoYSk7aWYoYilyZXR1cm4gaS5hcHBseSh0aGlzLGIuc2xpY2UoMSkubWFwKE51bWJlcikpO3ZhciBjPUYuZXhlYyhhKTtpZihjKXJldHVybiBqKE51bWJlcihjWzFdKSxBKTt2YXIgZD1HLmV4ZWMoYSk7cmV0dXJuIGQ/aihOdW1iZXIoZFsxXSkse3N0YXJ0OnksbWlkZGxlOnosZW5kOkF9W2RbMl1dKTpCW2FdfHx4fWZ1bmN0aW9uIG0oYSl7cmV0dXJuIE1hdGguYWJzKG4oYSkvYS5wbGF5YmFja1JhdGUpfWZ1bmN0aW9uIG4oYSl7cmV0dXJuIDA9PT1hLmR1cmF0aW9ufHwwPT09YS5pdGVyYXRpb25zPzA6YS5kdXJhdGlvbiphLml0ZXJhdGlvbnN9ZnVuY3Rpb24gbyhhLGIsYyl7aWYobnVsbD09YilyZXR1cm4gSDt2YXIgZD1jLmRlbGF5K2ErYy5lbmREZWxheTtyZXR1cm4gYjxNYXRoLm1pbihjLmRlbGF5LGQpP0k6Yj49TWF0aC5taW4oYy5kZWxheSthLGQpP0o6S31mdW5jdGlvbiBwKGEsYixjLGQsZSl7c3dpdGNoKGQpe2Nhc2UgSTpyZXR1cm4iYmFja3dhcmRzIj09Ynx8ImJvdGgiPT1iPzA6bnVsbDtjYXNlIEs6cmV0dXJuIGMtZTtjYXNlIEo6cmV0dXJuImZvcndhcmRzIj09Ynx8ImJvdGgiPT1iP2E6bnVsbDtjYXNlIEg6cmV0dXJuIG51bGx9fWZ1bmN0aW9uIHEoYSxiLGMsZCxlKXt2YXIgZj1lO3JldHVybiAwPT09YT9iIT09SSYmKGYrPWMpOmYrPWQvYSxmfWZ1bmN0aW9uIHIoYSxiLGMsZCxlLGYpe3ZhciBnPWE9PT0xLzA/YiUxOmElMTtyZXR1cm4gMCE9PWd8fGMhPT1KfHwwPT09ZHx8MD09PWUmJjAhPT1mfHwoZz0xKSxnfWZ1bmN0aW9uIHMoYSxiLGMsZCl7cmV0dXJuIGE9PT1KJiZiPT09MS8wPzEvMDoxPT09Yz9NYXRoLmZsb29yKGQpLTE6TWF0aC5mbG9vcihkKX1mdW5jdGlvbiB0KGEsYixjKXt2YXIgZD1hO2lmKCJub3JtYWwiIT09YSYmInJldmVyc2UiIT09YSl7dmFyIGU9YjsiYWx0ZXJuYXRlLXJldmVyc2UiPT09YSYmKGUrPTEpLGQ9Im5vcm1hbCIsZSE9PTEvMCYmZSUyIT0wJiYoZD0icmV2ZXJzZSIpfXJldHVybiJub3JtYWwiPT09ZD9jOjEtY31mdW5jdGlvbiB1KGEsYixjKXt2YXIgZD1vKGEsYixjKSxlPXAoYSxjLmZpbGwsYixkLGMuZGVsYXkpO2lmKG51bGw9PT1lKXJldHVybiBudWxsO3ZhciBmPXEoYy5kdXJhdGlvbixkLGMuaXRlcmF0aW9ucyxlLGMuaXRlcmF0aW9uU3RhcnQpLGc9cihmLGMuaXRlcmF0aW9uU3RhcnQsZCxjLml0ZXJhdGlvbnMsZSxjLmR1cmF0aW9uKSxoPXMoZCxjLml0ZXJhdGlvbnMsZyxmKSxpPXQoYy5kaXJlY3Rpb24saCxnKTtyZXR1cm4gYy5fZWFzaW5nRnVuY3Rpb24oaSl9dmFyIHY9ImJhY2t3YXJkc3xmb3J3YXJkc3xib3RofG5vbmUiLnNwbGl0KCJ8Iiksdz0icmV2ZXJzZXxhbHRlcm5hdGV8YWx0ZXJuYXRlLXJldmVyc2UiLnNwbGl0KCJ8IikseD1mdW5jdGlvbihhKXtyZXR1cm4gYX07ZC5wcm90b3R5cGU9e19zZXRNZW1iZXI6ZnVuY3Rpb24oYixjKXt0aGlzWyJfIitiXT1jLHRoaXMuX2VmZmVjdCYmKHRoaXMuX2VmZmVjdC5fdGltaW5nSW5wdXRbYl09Yyx0aGlzLl9lZmZlY3QuX3RpbWluZz1hLm5vcm1hbGl6ZVRpbWluZ0lucHV0KHRoaXMuX2VmZmVjdC5fdGltaW5nSW5wdXQpLHRoaXMuX2VmZmVjdC5hY3RpdmVEdXJhdGlvbj1hLmNhbGN1bGF0ZUFjdGl2ZUR1cmF0aW9uKHRoaXMuX2VmZmVjdC5fdGltaW5nKSx0aGlzLl9lZmZlY3QuX2FuaW1hdGlvbiYmdGhpcy5fZWZmZWN0Ll9hbmltYXRpb24uX3JlYnVpbGRVbmRlcmx5aW5nQW5pbWF0aW9uKCkpfSxnZXQgcGxheWJhY2tSYXRlKCl7cmV0dXJuIHRoaXMuX3BsYXliYWNrUmF0ZX0sc2V0IGRlbGF5KGEpe3RoaXMuX3NldE1lbWJlcigiZGVsYXkiLGEpfSxnZXQgZGVsYXkoKXtyZXR1cm4gdGhpcy5fZGVsYXl9LHNldCBlbmREZWxheShhKXt0aGlzLl9zZXRNZW1iZXIoImVuZERlbGF5IixhKX0sZ2V0IGVuZERlbGF5KCl7cmV0dXJuIHRoaXMuX2VuZERlbGF5fSxzZXQgZmlsbChhKXt0aGlzLl9zZXRNZW1iZXIoImZpbGwiLGEpfSxnZXQgZmlsbCgpe3JldHVybiB0aGlzLl9maWxsfSxzZXQgaXRlcmF0aW9uU3RhcnQoYSl7aWYoKGlzTmFOKGEpfHxhPDApJiZlKCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiaXRlcmF0aW9uU3RhcnQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIsIHJlY2VpdmVkOiAiK2EpO3RoaXMuX3NldE1lbWJlcigiaXRlcmF0aW9uU3RhcnQiLGEpfSxnZXQgaXRlcmF0aW9uU3RhcnQoKXtyZXR1cm4gdGhpcy5faXRlcmF0aW9uU3RhcnR9LHNldCBkdXJhdGlvbihhKXtpZigiYXV0byIhPWEmJihpc05hTihhKXx8YTwwKSYmZSgpKXRocm93IG5ldyBUeXBlRXJyb3IoImR1cmF0aW9uIG11c3QgYmUgbm9uLW5lZ2F0aXZlIG9yIGF1dG8sIHJlY2VpdmVkOiAiK2EpO3RoaXMuX3NldE1lbWJlcigiZHVyYXRpb24iLGEpfSxnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy5fZHVyYXRpb259LHNldCBkaXJlY3Rpb24oYSl7dGhpcy5fc2V0TWVtYmVyKCJkaXJlY3Rpb24iLGEpfSxnZXQgZGlyZWN0aW9uKCl7cmV0dXJuIHRoaXMuX2RpcmVjdGlvbn0sc2V0IGVhc2luZyhhKXt0aGlzLl9lYXNpbmdGdW5jdGlvbj1sKGsoYSkpLHRoaXMuX3NldE1lbWJlcigiZWFzaW5nIixhKX0sZ2V0IGVhc2luZygpe3JldHVybiB0aGlzLl9lYXNpbmd9LHNldCBpdGVyYXRpb25zKGEpe2lmKChpc05hTihhKXx8YTwwKSYmZSgpKXRocm93IG5ldyBUeXBlRXJyb3IoIml0ZXJhdGlvbnMgbXVzdCBiZSBub24tbmVnYXRpdmUsIHJlY2VpdmVkOiAiK2EpO3RoaXMuX3NldE1lbWJlcigiaXRlcmF0aW9ucyIsYSl9LGdldCBpdGVyYXRpb25zKCl7cmV0dXJuIHRoaXMuX2l0ZXJhdGlvbnN9fTt2YXIgeT0xLHo9LjUsQT0wLEI9e2Vhc2U6aSguMjUsLjEsLjI1LDEpLCJlYXNlLWluIjppKC40MiwwLDEsMSksImVhc2Utb3V0IjppKDAsMCwuNTgsMSksImVhc2UtaW4tb3V0IjppKC40MiwwLC41OCwxKSwic3RlcC1zdGFydCI6aigxLHkpLCJzdGVwLW1pZGRsZSI6aigxLHopLCJzdGVwLWVuZCI6aigxLEEpfSxDPW51bGwsRD0iXFxzKigtP1xcZCtcXC4/XFxkKnwtP1xcLlxcZCspXFxzKiIsRT1uZXcgUmVnRXhwKCJjdWJpYy1iZXppZXJcXCgiK0QrIiwiK0QrIiwiK0QrIiwiK0QrIlxcKSIpLEY9L3N0ZXBzXChccyooXGQrKVxzKlwpLyxHPS9zdGVwc1woXHMqKFxkKylccyosXHMqKHN0YXJ0fG1pZGRsZXxlbmQpXHMqXCkvLEg9MCxJPTEsSj0yLEs9MzthLmNsb25lVGltaW5nSW5wdXQ9YyxhLm1ha2VUaW1pbmc9ZixhLm51bWVyaWNUaW1pbmdUb09iamVjdD1nLGEubm9ybWFsaXplVGltaW5nSW5wdXQ9aCxhLmNhbGN1bGF0ZUFjdGl2ZUR1cmF0aW9uPW0sYS5jYWxjdWxhdGVJdGVyYXRpb25Qcm9ncmVzcz11LGEuY2FsY3VsYXRlUGhhc2U9byxhLm5vcm1hbGl6ZUVhc2luZz1rLGEucGFyc2VFYXNpbmdGdW5jdGlvbj1sfShhKSxmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoYSxiKXtyZXR1cm4gYSBpbiBrP2tbYV1bYl18fGI6Yn1mdW5jdGlvbiBkKGEpe3JldHVybiJkaXNwbGF5Ij09PWF8fDA9PT1hLmxhc3RJbmRleE9mKCJhbmltYXRpb24iLDApfHwwPT09YS5sYXN0SW5kZXhPZigidHJhbnNpdGlvbiIsMCl9ZnVuY3Rpb24gZShhLGIsZSl7aWYoIWQoYSkpe3ZhciBmPWhbYV07aWYoZil7aS5zdHlsZVthXT1iO2Zvcih2YXIgZyBpbiBmKXt2YXIgaj1mW2ddLGs9aS5zdHlsZVtqXTtlW2pdPWMoaixrKX19ZWxzZSBlW2FdPWMoYSxiKX19ZnVuY3Rpb24gZihhKXt2YXIgYj1bXTtmb3IodmFyIGMgaW4gYSlpZighKGMgaW5bImVhc2luZyIsIm9mZnNldCIsImNvbXBvc2l0ZSJdKSl7dmFyIGQ9YVtjXTtBcnJheS5pc0FycmF5KGQpfHwoZD1bZF0pO2Zvcih2YXIgZSxmPWQubGVuZ3RoLGc9MDtnPGY7ZysrKWU9e30sZS5vZmZzZXQ9Im9mZnNldCJpbiBhP2Eub2Zmc2V0OjE9PWY/MTpnLyhmLTEpLCJlYXNpbmciaW4gYSYmKGUuZWFzaW5nPWEuZWFzaW5nKSwiY29tcG9zaXRlImluIGEmJihlLmNvbXBvc2l0ZT1hLmNvbXBvc2l0ZSksZVtjXT1kW2ddLGIucHVzaChlKX1yZXR1cm4gYi5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEub2Zmc2V0LWIub2Zmc2V0fSksYn1mdW5jdGlvbiBnKGIpe2Z1bmN0aW9uIGMoKXt2YXIgYT1kLmxlbmd0aDtudWxsPT1kW2EtMV0ub2Zmc2V0JiYoZFthLTFdLm9mZnNldD0xKSxhPjEmJm51bGw9PWRbMF0ub2Zmc2V0JiYoZFswXS5vZmZzZXQ9MCk7Zm9yKHZhciBiPTAsYz1kWzBdLm9mZnNldCxlPTE7ZTxhO2UrKyl7dmFyIGY9ZFtlXS5vZmZzZXQ7aWYobnVsbCE9Zil7Zm9yKHZhciBnPTE7ZzxlLWI7ZysrKWRbYitnXS5vZmZzZXQ9YysoZi1jKSpnLyhlLWIpO2I9ZSxjPWZ9fX1pZihudWxsPT1iKXJldHVybltdO3dpbmRvdy5TeW1ib2wmJlN5bWJvbC5pdGVyYXRvciYmQXJyYXkucHJvdG90eXBlLmZyb20mJmJbU3ltYm9sLml0ZXJhdG9yXSYmKGI9QXJyYXkuZnJvbShiKSksQXJyYXkuaXNBcnJheShiKXx8KGI9ZihiKSk7Zm9yKHZhciBkPWIubWFwKGZ1bmN0aW9uKGIpe3ZhciBjPXt9O2Zvcih2YXIgZCBpbiBiKXt2YXIgZj1iW2RdO2lmKCJvZmZzZXQiPT1kKXtpZihudWxsIT1mKXtpZihmPU51bWJlcihmKSwhaXNGaW5pdGUoZikpdGhyb3cgbmV3IFR5cGVFcnJvcigiS2V5ZnJhbWUgb2Zmc2V0cyBtdXN0IGJlIG51bWJlcnMuIik7aWYoZjwwfHxmPjEpdGhyb3cgbmV3IFR5cGVFcnJvcigiS2V5ZnJhbWUgb2Zmc2V0cyBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMS4iKX19ZWxzZSBpZigiY29tcG9zaXRlIj09ZCl7aWYoImFkZCI9PWZ8fCJhY2N1bXVsYXRlIj09Zil0aHJvd3t0eXBlOkRPTUV4Y2VwdGlvbi5OT1RfU1VQUE9SVEVEX0VSUixuYW1lOiJOb3RTdXBwb3J0ZWRFcnJvciIsbWVzc2FnZToiYWRkIGNvbXBvc2l0aW5nIGlzIG5vdCBzdXBwb3J0ZWQifTtpZigicmVwbGFjZSIhPWYpdGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBjb21wb3NpdGUgbW9kZSAiK2YrIi4iKX1lbHNlIGY9ImVhc2luZyI9PWQ/YS5ub3JtYWxpemVFYXNpbmcoZik6IiIrZjtlKGQsZixjKX1yZXR1cm4gdm9pZCAwPT1jLm9mZnNldCYmKGMub2Zmc2V0PW51bGwpLHZvaWQgMD09Yy5lYXNpbmcmJihjLmVhc2luZz0ibGluZWFyIiksY30pLGc9ITAsaD0tMS8wLGk9MDtpPGQubGVuZ3RoO2krKyl7dmFyIGo9ZFtpXS5vZmZzZXQ7aWYobnVsbCE9ail7aWYoajxoKXRocm93IG5ldyBUeXBlRXJyb3IoIktleWZyYW1lcyBhcmUgbm90IGxvb3NlbHkgc29ydGVkIGJ5IG9mZnNldC4gU29ydCBvciBzcGVjaWZ5IG9mZnNldHMuIik7aD1qfWVsc2UgZz0hMX1yZXR1cm4gZD1kLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5vZmZzZXQ+PTAmJmEub2Zmc2V0PD0xfSksZ3x8YygpLGR9dmFyIGg9e2JhY2tncm91bmQ6WyJiYWNrZ3JvdW5kSW1hZ2UiLCJiYWNrZ3JvdW5kUG9zaXRpb24iLCJiYWNrZ3JvdW5kU2l6ZSIsImJhY2tncm91bmRSZXBlYXQiLCJiYWNrZ3JvdW5kQXR0YWNobWVudCIsImJhY2tncm91bmRPcmlnaW4iLCJiYWNrZ3JvdW5kQ2xpcCIsImJhY2tncm91bmRDb2xvciJdLGJvcmRlcjpbImJvcmRlclRvcENvbG9yIiwiYm9yZGVyVG9wU3R5bGUiLCJib3JkZXJUb3BXaWR0aCIsImJvcmRlclJpZ2h0Q29sb3IiLCJib3JkZXJSaWdodFN0eWxlIiwiYm9yZGVyUmlnaHRXaWR0aCIsImJvcmRlckJvdHRvbUNvbG9yIiwiYm9yZGVyQm90dG9tU3R5bGUiLCJib3JkZXJCb3R0b21XaWR0aCIsImJvcmRlckxlZnRDb2xvciIsImJvcmRlckxlZnRTdHlsZSIsImJvcmRlckxlZnRXaWR0aCJdLGJvcmRlckJvdHRvbTpbImJvcmRlckJvdHRvbVdpZHRoIiwiYm9yZGVyQm90dG9tU3R5bGUiLCJib3JkZXJCb3R0b21Db2xvciJdLGJvcmRlckNvbG9yOlsiYm9yZGVyVG9wQ29sb3IiLCJib3JkZXJSaWdodENvbG9yIiwiYm9yZGVyQm90dG9tQ29sb3IiLCJib3JkZXJMZWZ0Q29sb3IiXSxib3JkZXJMZWZ0OlsiYm9yZGVyTGVmdFdpZHRoIiwiYm9yZGVyTGVmdFN0eWxlIiwiYm9yZGVyTGVmdENvbG9yIl0sYm9yZGVyUmFkaXVzOlsiYm9yZGVyVG9wTGVmdFJhZGl1cyIsImJvcmRlclRvcFJpZ2h0UmFkaXVzIiwiYm9yZGVyQm90dG9tUmlnaHRSYWRpdXMiLCJib3JkZXJCb3R0b21MZWZ0UmFkaXVzIl0sYm9yZGVyUmlnaHQ6WyJib3JkZXJSaWdodFdpZHRoIiwiYm9yZGVyUmlnaHRTdHlsZSIsImJvcmRlclJpZ2h0Q29sb3IiXSxib3JkZXJUb3A6WyJib3JkZXJUb3BXaWR0aCIsImJvcmRlclRvcFN0eWxlIiwiYm9yZGVyVG9wQ29sb3IiXSxib3JkZXJXaWR0aDpbImJvcmRlclRvcFdpZHRoIiwiYm9yZGVyUmlnaHRXaWR0aCIsImJvcmRlckJvdHRvbVdpZHRoIiwiYm9yZGVyTGVmdFdpZHRoIl0sZmxleDpbImZsZXhHcm93IiwiZmxleFNocmluayIsImZsZXhCYXNpcyJdLGZvbnQ6WyJmb250RmFtaWx5IiwiZm9udFNpemUiLCJmb250U3R5bGUiLCJmb250VmFyaWFudCIsImZvbnRXZWlnaHQiLCJsaW5lSGVpZ2h0Il0sbWFyZ2luOlsibWFyZ2luVG9wIiwibWFyZ2luUmlnaHQiLCJtYXJnaW5Cb3R0b20iLCJtYXJnaW5MZWZ0Il0sb3V0bGluZTpbIm91dGxpbmVDb2xvciIsIm91dGxpbmVTdHlsZSIsIm91dGxpbmVXaWR0aCJdLHBhZGRpbmc6WyJwYWRkaW5nVG9wIiwicGFkZGluZ1JpZ2h0IiwicGFkZGluZ0JvdHRvbSIsInBhZGRpbmdMZWZ0Il19LGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiZGl2Iiksaj17dGhpbjoiMXB4IixtZWRpdW06IjNweCIsdGhpY2s6IjVweCJ9LGs9e2JvcmRlckJvdHRvbVdpZHRoOmosYm9yZGVyTGVmdFdpZHRoOmosYm9yZGVyUmlnaHRXaWR0aDpqLGJvcmRlclRvcFdpZHRoOmosZm9udFNpemU6eyJ4eC1zbWFsbCI6IjYwJSIsIngtc21hbGwiOiI3NSUiLHNtYWxsOiI4OSUiLG1lZGl1bToiMTAwJSIsbGFyZ2U6IjEyMCUiLCJ4LWxhcmdlIjoiMTUwJSIsInh4LWxhcmdlIjoiMjAwJSJ9LGZvbnRXZWlnaHQ6e25vcm1hbDoiNDAwIixib2xkOiI3MDAifSxvdXRsaW5lV2lkdGg6aix0ZXh0U2hhZG93Ontub25lOiIwcHggMHB4IDBweCB0cmFuc3BhcmVudCJ9LGJveFNoYWRvdzp7bm9uZToiMHB4IDBweCAwcHggMHB4IHRyYW5zcGFyZW50In19O2EuY29udmVydFRvQXJyYXlGb3JtPWYsYS5ub3JtYWxpemVLZXlmcmFtZXM9Z30oYSksZnVuY3Rpb24oYSl7dmFyIGI9e307YS5pc0RlcHJlY2F0ZWQ9ZnVuY3Rpb24oYSxjLGQsZSl7dmFyIGY9ZT8iYXJlIjoiaXMiLGc9bmV3IERhdGUsaD1uZXcgRGF0ZShjKTtyZXR1cm4gaC5zZXRNb250aChoLmdldE1vbnRoKCkrMyksIShnPGgmJihhIGluIGJ8fGNvbnNvbGUud2FybigiV2ViIEFuaW1hdGlvbnM6ICIrYSsiICIrZisiIGRlcHJlY2F0ZWQgYW5kIHdpbGwgc3RvcCB3b3JraW5nIG9uICIraC50b0RhdGVTdHJpbmcoKSsiLiAiK2QpLGJbYV09ITAsMSkpfSxhLmRlcHJlY2F0ZWQ9ZnVuY3Rpb24oYixjLGQsZSl7dmFyIGY9ZT8iYXJlIjoiaXMiO2lmKGEuaXNEZXByZWNhdGVkKGIsYyxkLGUpKXRocm93IG5ldyBFcnJvcihiKyIgIitmKyIgbm8gbG9uZ2VyIHN1cHBvcnRlZC4gIitkKX19KGEpLGZ1bmN0aW9uKCl7aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFuaW1hdGUpe3ZhciBjPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hbmltYXRlKFtdLDApLGQ9ITA7aWYoYyYmKGQ9ITEsInBsYXl8Y3VycmVudFRpbWV8cGF1c2V8cmV2ZXJzZXxwbGF5YmFja1JhdGV8Y2FuY2VsfGZpbmlzaHxzdGFydFRpbWV8cGxheVN0YXRlIi5zcGxpdCgifCIpLmZvckVhY2goZnVuY3Rpb24oYSl7dm9pZCAwPT09Y1thXSYmKGQ9ITApfSkpLCFkKXJldHVybn0hZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoYSl7Zm9yKHZhciBiPXt9LGM9MDtjPGEubGVuZ3RoO2MrKylmb3IodmFyIGQgaW4gYVtjXSlpZigib2Zmc2V0IiE9ZCYmImVhc2luZyIhPWQmJiJjb21wb3NpdGUiIT1kKXt2YXIgZT17b2Zmc2V0OmFbY10ub2Zmc2V0LGVhc2luZzphW2NdLmVhc2luZyx2YWx1ZTphW2NdW2RdfTtiW2RdPWJbZF18fFtdLGJbZF0ucHVzaChlKX1mb3IodmFyIGYgaW4gYil7dmFyIGc9YltmXTtpZigwIT1nWzBdLm9mZnNldHx8MSE9Z1tnLmxlbmd0aC0xXS5vZmZzZXQpdGhyb3d7dHlwZTpET01FeGNlcHRpb24uTk9UX1NVUFBPUlRFRF9FUlIsbmFtZToiTm90U3VwcG9ydGVkRXJyb3IiLG1lc3NhZ2U6IlBhcnRpYWwga2V5ZnJhbWVzIGFyZSBub3Qgc3VwcG9ydGVkIn19cmV0dXJuIGJ9ZnVuY3Rpb24gZShjKXt2YXIgZD1bXTtmb3IodmFyIGUgaW4gYylmb3IodmFyIGY9Y1tlXSxnPTA7ZzxmLmxlbmd0aC0xO2crKyl7dmFyIGg9ZyxpPWcrMSxqPWZbaF0ub2Zmc2V0LGs9ZltpXS5vZmZzZXQsbD1qLG09azswPT1nJiYobD0tMS8wLDA9PWsmJihpPWgpKSxnPT1mLmxlbmd0aC0yJiYobT0xLzAsMT09aiYmKGg9aSkpLGQucHVzaCh7YXBwbHlGcm9tOmwsYXBwbHlUbzptLHN0YXJ0T2Zmc2V0OmZbaF0ub2Zmc2V0LGVuZE9mZnNldDpmW2ldLm9mZnNldCxlYXNpbmdGdW5jdGlvbjphLnBhcnNlRWFzaW5nRnVuY3Rpb24oZltoXS5lYXNpbmcpLHByb3BlcnR5OmUsaW50ZXJwb2xhdGlvbjpiLnByb3BlcnR5SW50ZXJwb2xhdGlvbihlLGZbaF0udmFsdWUsZltpXS52YWx1ZSl9KX1yZXR1cm4gZC5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuc3RhcnRPZmZzZXQtYi5zdGFydE9mZnNldH0pLGR9Yi5jb252ZXJ0RWZmZWN0SW5wdXQ9ZnVuY3Rpb24oYyl7dmFyIGY9YS5ub3JtYWxpemVLZXlmcmFtZXMoYyksZz1kKGYpLGg9ZShnKTtyZXR1cm4gZnVuY3Rpb24oYSxjKXtpZihudWxsIT1jKWguZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBjPj1hLmFwcGx5RnJvbSYmYzxhLmFwcGx5VG99KS5mb3JFYWNoKGZ1bmN0aW9uKGQpe3ZhciBlPWMtZC5zdGFydE9mZnNldCxmPWQuZW5kT2Zmc2V0LWQuc3RhcnRPZmZzZXQsZz0wPT1mPzA6ZC5lYXNpbmdGdW5jdGlvbihlL2YpO2IuYXBwbHkoYSxkLnByb3BlcnR5LGQuaW50ZXJwb2xhdGlvbihnKSl9KTtlbHNlIGZvcih2YXIgZCBpbiBnKSJvZmZzZXQiIT1kJiYiZWFzaW5nIiE9ZCYmImNvbXBvc2l0ZSIhPWQmJmIuY2xlYXIoYSxkKX19fShhLGIpLGZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBkKGEpe3JldHVybiBhLnJlcGxhY2UoLy0oLikvZyxmdW5jdGlvbihhLGIpe3JldHVybiBiLnRvVXBwZXJDYXNlKCl9KX1mdW5jdGlvbiBlKGEsYixjKXtoW2NdPWhbY118fFtdLGhbY10ucHVzaChbYSxiXSl9ZnVuY3Rpb24gZihhLGIsYyl7Zm9yKHZhciBmPTA7ZjxjLmxlbmd0aDtmKyspe2UoYSxiLGQoY1tmXSkpfX1mdW5jdGlvbiBnKGMsZSxmKXt2YXIgZz1jOy8tLy50ZXN0KGMpJiYhYS5pc0RlcHJlY2F0ZWQoIkh5cGhlbmF0ZWQgcHJvcGVydHkgbmFtZXMiLCIyMDE2LTAzLTIyIiwiVXNlIGNhbWVsQ2FzZSBpbnN0ZWFkLiIsITApJiYoZz1kKGMpKSwiaW5pdGlhbCIhPWUmJiJpbml0aWFsIiE9Znx8KCJpbml0aWFsIj09ZSYmKGU9aVtnXSksImluaXRpYWwiPT1mJiYoZj1pW2ddKSk7Zm9yKHZhciBqPWU9PWY/W106aFtnXSxrPTA7aiYmazxqLmxlbmd0aDtrKyspe3ZhciBsPWpba11bMF0oZSksbT1qW2tdWzBdKGYpO2lmKHZvaWQgMCE9PWwmJnZvaWQgMCE9PW0pe3ZhciBuPWpba11bMV0obCxtKTtpZihuKXt2YXIgbz1iLkludGVycG9sYXRpb24uYXBwbHkobnVsbCxuKTtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIDA9PWE/ZToxPT1hP2Y6byhhKX19fX1yZXR1cm4gYi5JbnRlcnBvbGF0aW9uKCExLCEwLGZ1bmN0aW9uKGEpe3JldHVybiBhP2Y6ZX0pfXZhciBoPXt9O2IuYWRkUHJvcGVydGllc0hhbmRsZXI9Zjt2YXIgaT17YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsYmFja2dyb3VuZFBvc2l0aW9uOiIwJSAwJSIsYm9yZGVyQm90dG9tQ29sb3I6ImN1cnJlbnRDb2xvciIsYm9yZGVyQm90dG9tTGVmdFJhZGl1czoiMHB4Iixib3JkZXJCb3R0b21SaWdodFJhZGl1czoiMHB4Iixib3JkZXJCb3R0b21XaWR0aDoiM3B4Iixib3JkZXJMZWZ0Q29sb3I6ImN1cnJlbnRDb2xvciIsYm9yZGVyTGVmdFdpZHRoOiIzcHgiLGJvcmRlclJpZ2h0Q29sb3I6ImN1cnJlbnRDb2xvciIsYm9yZGVyUmlnaHRXaWR0aDoiM3B4Iixib3JkZXJTcGFjaW5nOiIycHgiLGJvcmRlclRvcENvbG9yOiJjdXJyZW50Q29sb3IiLGJvcmRlclRvcExlZnRSYWRpdXM6IjBweCIsYm9yZGVyVG9wUmlnaHRSYWRpdXM6IjBweCIsYm9yZGVyVG9wV2lkdGg6IjNweCIsYm90dG9tOiJhdXRvIixjbGlwOiJyZWN0KDBweCwgMHB4LCAwcHgsIDBweCkiLGNvbG9yOiJibGFjayIsZm9udFNpemU6IjEwMCUiLGZvbnRXZWlnaHQ6IjQwMCIsaGVpZ2h0OiJhdXRvIixsZWZ0OiJhdXRvIixsZXR0ZXJTcGFjaW5nOiJub3JtYWwiLGxpbmVIZWlnaHQ6IjEyMCUiLG1hcmdpbkJvdHRvbToiMHB4IixtYXJnaW5MZWZ0OiIwcHgiLG1hcmdpblJpZ2h0OiIwcHgiLG1hcmdpblRvcDoiMHB4IixtYXhIZWlnaHQ6Im5vbmUiLG1heFdpZHRoOiJub25lIixtaW5IZWlnaHQ6IjBweCIsbWluV2lkdGg6IjBweCIsb3BhY2l0eToiMS4wIixvdXRsaW5lQ29sb3I6ImludmVydCIsb3V0bGluZU9mZnNldDoiMHB4IixvdXRsaW5lV2lkdGg6IjNweCIscGFkZGluZ0JvdHRvbToiMHB4IixwYWRkaW5nTGVmdDoiMHB4IixwYWRkaW5nUmlnaHQ6IjBweCIscGFkZGluZ1RvcDoiMHB4IixyaWdodDoiYXV0byIsc3Ryb2tlRGFzaGFycmF5OiJub25lIixzdHJva2VEYXNob2Zmc2V0OiIwcHgiLHRleHRJbmRlbnQ6IjBweCIsdGV4dFNoYWRvdzoiMHB4IDBweCAwcHggdHJhbnNwYXJlbnQiLHRvcDoiYXV0byIsdHJhbnNmb3JtOiIiLHZlcnRpY2FsQWxpZ246IjBweCIsdmlzaWJpbGl0eToidmlzaWJsZSIsd2lkdGg6ImF1dG8iLHdvcmRTcGFjaW5nOiJub3JtYWwiLHpJbmRleDoiYXV0byJ9O2IucHJvcGVydHlJbnRlcnBvbGF0aW9uPWd9KGEsYiksZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoYil7dmFyIGM9YS5jYWxjdWxhdGVBY3RpdmVEdXJhdGlvbihiKSxkPWZ1bmN0aW9uKGQpe3JldHVybiBhLmNhbGN1bGF0ZUl0ZXJhdGlvblByb2dyZXNzKGMsZCxiKX07cmV0dXJuIGQuX3RvdGFsRHVyYXRpb249Yi5kZWxheStjK2IuZW5kRGVsYXksZH1iLktleWZyYW1lRWZmZWN0PWZ1bmN0aW9uKGMsZSxmLGcpe3ZhciBoLGk9ZChhLm5vcm1hbGl6ZVRpbWluZ0lucHV0KGYpKSxqPWIuY29udmVydEVmZmVjdElucHV0KGUpLGs9ZnVuY3Rpb24oKXtqKGMsaCl9O3JldHVybiBrLl91cGRhdGU9ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPT0oaD1pKGEpKX0say5fY2xlYXI9ZnVuY3Rpb24oKXtqKGMsbnVsbCl9LGsuX2hhc1NhbWVUYXJnZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGM9PT1hfSxrLl90YXJnZXQ9YyxrLl90b3RhbER1cmF0aW9uPWkuX3RvdGFsRHVyYXRpb24say5faWQ9ZyxrfX0oYSxiKSxmdW5jdGlvbihhLGIpe2EuYXBwbHk9ZnVuY3Rpb24oYixjLGQpe2Iuc3R5bGVbYS5wcm9wZXJ0eU5hbWUoYyldPWR9LGEuY2xlYXI9ZnVuY3Rpb24oYixjKXtiLnN0eWxlW2EucHJvcGVydHlOYW1lKGMpXT0iIn19KGIpLGZ1bmN0aW9uKGEpe3dpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5hbmltYXRlPWZ1bmN0aW9uKGIsYyl7dmFyIGQ9IiI7cmV0dXJuIGMmJmMuaWQmJihkPWMuaWQpLGEudGltZWxpbmUuX3BsYXkoYS5LZXlmcmFtZUVmZmVjdCh0aGlzLGIsYyxkKSl9fShiKSxmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoYSxiLGQpe2lmKCJudW1iZXIiPT10eXBlb2YgYSYmIm51bWJlciI9PXR5cGVvZiBiKXJldHVybiBhKigxLWQpK2IqZDtpZigiYm9vbGVhbiI9PXR5cGVvZiBhJiYiYm9vbGVhbiI9PXR5cGVvZiBiKXJldHVybiBkPC41P2E6YjtpZihhLmxlbmd0aD09Yi5sZW5ndGgpe2Zvcih2YXIgZT1bXSxmPTA7ZjxhLmxlbmd0aDtmKyspZS5wdXNoKGMoYVtmXSxiW2ZdLGQpKTtyZXR1cm4gZX10aHJvdyJNaXNtYXRjaGVkIGludGVycG9sYXRpb24gYXJndW1lbnRzICIrYSsiOiIrYn1hLkludGVycG9sYXRpb249ZnVuY3Rpb24oYSxiLGQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZChjKGEsYixlKSl9fX0oYiksZnVuY3Rpb24oYSxiLGMpe2Euc2VxdWVuY2VOdW1iZXI9MDt2YXIgZD1mdW5jdGlvbihhLGIsYyl7dGhpcy50YXJnZXQ9YSx0aGlzLmN1cnJlbnRUaW1lPWIsdGhpcy50aW1lbGluZVRpbWU9Yyx0aGlzLnR5cGU9ImZpbmlzaCIsdGhpcy5idWJibGVzPSExLHRoaXMuY2FuY2VsYWJsZT0hMSx0aGlzLmN1cnJlbnRUYXJnZXQ9YSx0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITEsdGhpcy5ldmVudFBoYXNlPUV2ZW50LkFUX1RBUkdFVCx0aGlzLnRpbWVTdGFtcD1EYXRlLm5vdygpfTtiLkFuaW1hdGlvbj1mdW5jdGlvbihiKXt0aGlzLmlkPSIiLGImJmIuX2lkJiYodGhpcy5pZD1iLl9pZCksdGhpcy5fc2VxdWVuY2VOdW1iZXI9YS5zZXF1ZW5jZU51bWJlcisrLHRoaXMuX2N1cnJlbnRUaW1lPTAsdGhpcy5fc3RhcnRUaW1lPW51bGwsdGhpcy5fcGF1c2VkPSExLHRoaXMuX3BsYXliYWNrUmF0ZT0xLHRoaXMuX2luVGltZWxpbmU9ITAsdGhpcy5fZmluaXNoZWRGbGFnPSEwLHRoaXMub25maW5pc2g9bnVsbCx0aGlzLl9maW5pc2hIYW5kbGVycz1bXSx0aGlzLl9lZmZlY3Q9Yix0aGlzLl9pbkVmZmVjdD10aGlzLl9lZmZlY3QuX3VwZGF0ZSgwKSx0aGlzLl9pZGxlPSEwLHRoaXMuX2N1cnJlbnRUaW1lUGVuZGluZz0hMX0sYi5BbmltYXRpb24ucHJvdG90eXBlPXtfZW5zdXJlQWxpdmU6ZnVuY3Rpb24oKXt0aGlzLnBsYXliYWNrUmF0ZTwwJiYwPT09dGhpcy5jdXJyZW50VGltZT90aGlzLl9pbkVmZmVjdD10aGlzLl9lZmZlY3QuX3VwZGF0ZSgtMSk6dGhpcy5faW5FZmZlY3Q9dGhpcy5fZWZmZWN0Ll91cGRhdGUodGhpcy5jdXJyZW50VGltZSksdGhpcy5faW5UaW1lbGluZXx8IXRoaXMuX2luRWZmZWN0JiZ0aGlzLl9maW5pc2hlZEZsYWd8fCh0aGlzLl9pblRpbWVsaW5lPSEwLGIudGltZWxpbmUuX2FuaW1hdGlvbnMucHVzaCh0aGlzKSl9LF90aWNrQ3VycmVudFRpbWU6ZnVuY3Rpb24oYSxiKXthIT10aGlzLl9jdXJyZW50VGltZSYmKHRoaXMuX2N1cnJlbnRUaW1lPWEsdGhpcy5faXNGaW5pc2hlZCYmIWImJih0aGlzLl9jdXJyZW50VGltZT10aGlzLl9wbGF5YmFja1JhdGU+MD90aGlzLl90b3RhbER1cmF0aW9uOjApLHRoaXMuX2Vuc3VyZUFsaXZlKCkpfSxnZXQgY3VycmVudFRpbWUoKXtyZXR1cm4gdGhpcy5faWRsZXx8dGhpcy5fY3VycmVudFRpbWVQZW5kaW5nP251bGw6dGhpcy5fY3VycmVudFRpbWV9LHNldCBjdXJyZW50VGltZShhKXthPSthLGlzTmFOKGEpfHwoYi5yZXN0YXJ0KCksdGhpcy5fcGF1c2VkfHxudWxsPT10aGlzLl9zdGFydFRpbWV8fCh0aGlzLl9zdGFydFRpbWU9dGhpcy5fdGltZWxpbmUuY3VycmVudFRpbWUtYS90aGlzLl9wbGF5YmFja1JhdGUpLHRoaXMuX2N1cnJlbnRUaW1lUGVuZGluZz0hMSx0aGlzLl9jdXJyZW50VGltZSE9YSYmKHRoaXMuX2lkbGUmJih0aGlzLl9pZGxlPSExLHRoaXMuX3BhdXNlZD0hMCksdGhpcy5fdGlja0N1cnJlbnRUaW1lKGEsITApLGIuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uKHRoaXMpKSl9LGdldCBzdGFydFRpbWUoKXtyZXR1cm4gdGhpcy5fc3RhcnRUaW1lfSxzZXQgc3RhcnRUaW1lKGEpe2E9K2EsaXNOYU4oYSl8fHRoaXMuX3BhdXNlZHx8dGhpcy5faWRsZXx8KHRoaXMuX3N0YXJ0VGltZT1hLHRoaXMuX3RpY2tDdXJyZW50VGltZSgodGhpcy5fdGltZWxpbmUuY3VycmVudFRpbWUtdGhpcy5fc3RhcnRUaW1lKSp0aGlzLnBsYXliYWNrUmF0ZSksYi5hcHBseURpcnRpZWRBbmltYXRpb24odGhpcykpfSxnZXQgcGxheWJhY2tSYXRlKCl7cmV0dXJuIHRoaXMuX3BsYXliYWNrUmF0ZX0sc2V0IHBsYXliYWNrUmF0ZShhKXtpZihhIT10aGlzLl9wbGF5YmFja1JhdGUpe3ZhciBjPXRoaXMuY3VycmVudFRpbWU7dGhpcy5fcGxheWJhY2tSYXRlPWEsdGhpcy5fc3RhcnRUaW1lPW51bGwsInBhdXNlZCIhPXRoaXMucGxheVN0YXRlJiYiaWRsZSIhPXRoaXMucGxheVN0YXRlJiYodGhpcy5fZmluaXNoZWRGbGFnPSExLHRoaXMuX2lkbGU9ITEsdGhpcy5fZW5zdXJlQWxpdmUoKSxiLmFwcGx5RGlydGllZEFuaW1hdGlvbih0aGlzKSksbnVsbCE9YyYmKHRoaXMuY3VycmVudFRpbWU9Yyl9fSxnZXQgX2lzRmluaXNoZWQoKXtyZXR1cm4hdGhpcy5faWRsZSYmKHRoaXMuX3BsYXliYWNrUmF0ZT4wJiZ0aGlzLl9jdXJyZW50VGltZT49dGhpcy5fdG90YWxEdXJhdGlvbnx8dGhpcy5fcGxheWJhY2tSYXRlPDAmJnRoaXMuX2N1cnJlbnRUaW1lPD0wKX0sZ2V0IF90b3RhbER1cmF0aW9uKCl7cmV0dXJuIHRoaXMuX2VmZmVjdC5fdG90YWxEdXJhdGlvbn0sZ2V0IHBsYXlTdGF0ZSgpe3JldHVybiB0aGlzLl9pZGxlPyJpZGxlIjpudWxsPT10aGlzLl9zdGFydFRpbWUmJiF0aGlzLl9wYXVzZWQmJjAhPXRoaXMucGxheWJhY2tSYXRlfHx0aGlzLl9jdXJyZW50VGltZVBlbmRpbmc/InBlbmRpbmciOnRoaXMuX3BhdXNlZD8icGF1c2VkIjp0aGlzLl9pc0ZpbmlzaGVkPyJmaW5pc2hlZCI6InJ1bm5pbmcifSxfcmV3aW5kOmZ1bmN0aW9uKCl7aWYodGhpcy5fcGxheWJhY2tSYXRlPj0wKXRoaXMuX2N1cnJlbnRUaW1lPTA7ZWxzZXtpZighKHRoaXMuX3RvdGFsRHVyYXRpb248MS8wKSl0aHJvdyBuZXcgRE9NRXhjZXB0aW9uKCJVbmFibGUgdG8gcmV3aW5kIG5lZ2F0aXZlIHBsYXliYWNrIHJhdGUgYW5pbWF0aW9uIHdpdGggaW5maW5pdGUgZHVyYXRpb24iLCJJbnZhbGlkU3RhdGVFcnJvciIpO3RoaXMuX2N1cnJlbnRUaW1lPXRoaXMuX3RvdGFsRHVyYXRpb259fSxwbGF5OmZ1bmN0aW9uKCl7dGhpcy5fcGF1c2VkPSExLCh0aGlzLl9pc0ZpbmlzaGVkfHx0aGlzLl9pZGxlKSYmKHRoaXMuX3Jld2luZCgpLHRoaXMuX3N0YXJ0VGltZT1udWxsKSx0aGlzLl9maW5pc2hlZEZsYWc9ITEsdGhpcy5faWRsZT0hMSx0aGlzLl9lbnN1cmVBbGl2ZSgpLGIuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uKHRoaXMpfSxwYXVzZTpmdW5jdGlvbigpe3RoaXMuX2lzRmluaXNoZWR8fHRoaXMuX3BhdXNlZHx8dGhpcy5faWRsZT90aGlzLl9pZGxlJiYodGhpcy5fcmV3aW5kKCksdGhpcy5faWRsZT0hMSk6dGhpcy5fY3VycmVudFRpbWVQZW5kaW5nPSEwLHRoaXMuX3N0YXJ0VGltZT1udWxsLHRoaXMuX3BhdXNlZD0hMH0sZmluaXNoOmZ1bmN0aW9uKCl7dGhpcy5faWRsZXx8KHRoaXMuY3VycmVudFRpbWU9dGhpcy5fcGxheWJhY2tSYXRlPjA/dGhpcy5fdG90YWxEdXJhdGlvbjowLHRoaXMuX3N0YXJ0VGltZT10aGlzLl90b3RhbER1cmF0aW9uLXRoaXMuY3VycmVudFRpbWUsdGhpcy5fY3VycmVudFRpbWVQZW5kaW5nPSExLGIuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uKHRoaXMpKX0sY2FuY2VsOmZ1bmN0aW9uKCl7dGhpcy5faW5FZmZlY3QmJih0aGlzLl9pbkVmZmVjdD0hMSx0aGlzLl9pZGxlPSEwLHRoaXMuX3BhdXNlZD0hMSx0aGlzLl9maW5pc2hlZEZsYWc9ITAsdGhpcy5fY3VycmVudFRpbWU9MCx0aGlzLl9zdGFydFRpbWU9bnVsbCx0aGlzLl9lZmZlY3QuX3VwZGF0ZShudWxsKSxiLmFwcGx5RGlydGllZEFuaW1hdGlvbih0aGlzKSl9LHJldmVyc2U6ZnVuY3Rpb24oKXt0aGlzLnBsYXliYWNrUmF0ZSo9LTEsdGhpcy5wbGF5KCl9LGFkZEV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24oYSxiKXsiZnVuY3Rpb24iPT10eXBlb2YgYiYmImZpbmlzaCI9PWEmJnRoaXMuX2ZpbmlzaEhhbmRsZXJzLnB1c2goYil9LHJlbW92ZUV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24oYSxiKXtpZigiZmluaXNoIj09YSl7dmFyIGM9dGhpcy5fZmluaXNoSGFuZGxlcnMuaW5kZXhPZihiKTtjPj0wJiZ0aGlzLl9maW5pc2hIYW5kbGVycy5zcGxpY2UoYywxKX19LF9maXJlRXZlbnRzOmZ1bmN0aW9uKGEpe2lmKHRoaXMuX2lzRmluaXNoZWQpe2lmKCF0aGlzLl9maW5pc2hlZEZsYWcpe3ZhciBiPW5ldyBkKHRoaXMsdGhpcy5fY3VycmVudFRpbWUsYSksYz10aGlzLl9maW5pc2hIYW5kbGVycy5jb25jYXQodGhpcy5vbmZpbmlzaD9bdGhpcy5vbmZpbmlzaF06W10pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtjLmZvckVhY2goZnVuY3Rpb24oYSl7YS5jYWxsKGIudGFyZ2V0LGIpfSl9LDApLHRoaXMuX2ZpbmlzaGVkRmxhZz0hMH19ZWxzZSB0aGlzLl9maW5pc2hlZEZsYWc9ITF9LF90aWNrOmZ1bmN0aW9uKGEsYil7dGhpcy5faWRsZXx8dGhpcy5fcGF1c2VkfHwobnVsbD09dGhpcy5fc3RhcnRUaW1lP2ImJih0aGlzLnN0YXJ0VGltZT1hLXRoaXMuX2N1cnJlbnRUaW1lL3RoaXMucGxheWJhY2tSYXRlKTp0aGlzLl9pc0ZpbmlzaGVkfHx0aGlzLl90aWNrQ3VycmVudFRpbWUoKGEtdGhpcy5fc3RhcnRUaW1lKSp0aGlzLnBsYXliYWNrUmF0ZSkpLGImJih0aGlzLl9jdXJyZW50VGltZVBlbmRpbmc9ITEsdGhpcy5fZmlyZUV2ZW50cyhhKSl9LGdldCBfbmVlZHNUaWNrKCl7cmV0dXJuIHRoaXMucGxheVN0YXRlIGlue3BlbmRpbmc6MSxydW5uaW5nOjF9fHwhdGhpcy5fZmluaXNoZWRGbGFnfSxfdGFyZ2V0QW5pbWF0aW9uczpmdW5jdGlvbigpe3ZhciBhPXRoaXMuX2VmZmVjdC5fdGFyZ2V0O3JldHVybiBhLl9hY3RpdmVBbmltYXRpb25zfHwoYS5fYWN0aXZlQW5pbWF0aW9ucz1bXSksYS5fYWN0aXZlQW5pbWF0aW9uc30sX21hcmtUYXJnZXQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl90YXJnZXRBbmltYXRpb25zKCk7LTE9PT1hLmluZGV4T2YodGhpcykmJmEucHVzaCh0aGlzKX0sX3VubWFya1RhcmdldDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuX3RhcmdldEFuaW1hdGlvbnMoKSxiPWEuaW5kZXhPZih0aGlzKTstMSE9PWImJmEuc3BsaWNlKGIsMSl9fX0oYSxiKSxmdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gZChhKXt2YXIgYj1qO2o9W10sYTxxLmN1cnJlbnRUaW1lJiYoYT1xLmN1cnJlbnRUaW1lKSxxLl9hbmltYXRpb25zLnNvcnQoZSkscS5fYW5pbWF0aW9ucz1oKGEsITAscS5fYW5pbWF0aW9ucylbMF0sYi5mb3JFYWNoKGZ1bmN0aW9uKGIpe2JbMV0oYSl9KSxnKCksbD12b2lkIDB9ZnVuY3Rpb24gZShhLGIpe3JldHVybiBhLl9zZXF1ZW5jZU51bWJlci1iLl9zZXF1ZW5jZU51bWJlcn1mdW5jdGlvbiBmKCl7dGhpcy5fYW5pbWF0aW9ucz1bXSx0aGlzLmN1cnJlbnRUaW1lPXdpbmRvdy5wZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlLm5vdygpOjB9ZnVuY3Rpb24gZygpe28uZm9yRWFjaChmdW5jdGlvbihhKXthKCl9KSxvLmxlbmd0aD0wfWZ1bmN0aW9uIGgoYSxjLGQpe3A9ITAsbj0hMSxiLnRpbWVsaW5lLmN1cnJlbnRUaW1lPWEsbT0hMTt2YXIgZT1bXSxmPVtdLGc9W10saD1bXTtyZXR1cm4gZC5mb3JFYWNoKGZ1bmN0aW9uKGIpe2IuX3RpY2soYSxjKSxiLl9pbkVmZmVjdD8oZi5wdXNoKGIuX2VmZmVjdCksYi5fbWFya1RhcmdldCgpKTooZS5wdXNoKGIuX2VmZmVjdCksYi5fdW5tYXJrVGFyZ2V0KCkpLGIuX25lZWRzVGljayYmKG09ITApO3ZhciBkPWIuX2luRWZmZWN0fHxiLl9uZWVkc1RpY2s7Yi5faW5UaW1lbGluZT1kLGQ/Zy5wdXNoKGIpOmgucHVzaChiKX0pLG8ucHVzaC5hcHBseShvLGUpLG8ucHVzaC5hcHBseShvLGYpLG0mJnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe30pLHA9ITEsW2csaF19dmFyIGk9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSxqPVtdLGs9MDt3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lPWZ1bmN0aW9uKGEpe3ZhciBiPWsrKztyZXR1cm4gMD09ai5sZW5ndGgmJmkoZCksai5wdXNoKFtiLGFdKSxifSx3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWU9ZnVuY3Rpb24oYSl7ai5mb3JFYWNoKGZ1bmN0aW9uKGIpe2JbMF09PWEmJihiWzFdPWZ1bmN0aW9uKCl7fSl9KX0sZi5wcm90b3R5cGU9e19wbGF5OmZ1bmN0aW9uKGMpe2MuX3RpbWluZz1hLm5vcm1hbGl6ZVRpbWluZ0lucHV0KGMudGltaW5nKTt2YXIgZD1uZXcgYi5BbmltYXRpb24oYyk7cmV0dXJuIGQuX2lkbGU9ITEsZC5fdGltZWxpbmU9dGhpcyx0aGlzLl9hbmltYXRpb25zLnB1c2goZCksYi5yZXN0YXJ0KCksYi5hcHBseURpcnRpZWRBbmltYXRpb24oZCksZH19O3ZhciBsPXZvaWQgMCxtPSExLG49ITE7Yi5yZXN0YXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIG18fChtPSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe30pLG49ITApLG59LGIuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uPWZ1bmN0aW9uKGEpe2lmKCFwKXthLl9tYXJrVGFyZ2V0KCk7dmFyIGM9YS5fdGFyZ2V0QW5pbWF0aW9ucygpO2Muc29ydChlKSxoKGIudGltZWxpbmUuY3VycmVudFRpbWUsITEsYy5zbGljZSgpKVsxXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPXEuX2FuaW1hdGlvbnMuaW5kZXhPZihhKTstMSE9PWImJnEuX2FuaW1hdGlvbnMuc3BsaWNlKGIsMSl9KSxnKCl9fTt2YXIgbz1bXSxwPSExLHE9bmV3IGY7Yi50aW1lbGluZT1xfShhLGIpLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYSxiKXt2YXIgYz1hLmV4ZWMoYik7aWYoYylyZXR1cm4gYz1hLmlnbm9yZUNhc2U/Y1swXS50b0xvd2VyQ2FzZSgpOmNbMF0sW2MsYi5zdWJzdHIoYy5sZW5ndGgpXX1mdW5jdGlvbiBjKGEsYil7Yj1iLnJlcGxhY2UoL15ccyovLCIiKTt2YXIgYz1hKGIpO2lmKGMpcmV0dXJuW2NbMF0sY1sxXS5yZXBsYWNlKC9eXHMqLywiIildfWZ1bmN0aW9uIGQoYSxkLGUpe2E9Yy5iaW5kKG51bGwsYSk7Zm9yKHZhciBmPVtdOzspe3ZhciBnPWEoZSk7aWYoIWcpcmV0dXJuW2YsZV07aWYoZi5wdXNoKGdbMF0pLGU9Z1sxXSwhKGc9YihkLGUpKXx8IiI9PWdbMV0pcmV0dXJuW2YsZV07ZT1nWzFdfX1mdW5jdGlvbiBlKGEsYil7Zm9yKHZhciBjPTAsZD0wO2Q8Yi5sZW5ndGgmJighL1xzfCwvLnRlc3QoYltkXSl8fDAhPWMpO2QrKylpZigiKCI9PWJbZF0pYysrO2Vsc2UgaWYoIikiPT1iW2RdJiYoYy0tLDA9PWMmJmQrKyxjPD0wKSlicmVhazt2YXIgZT1hKGIuc3Vic3RyKDAsZCkpO3JldHVybiB2b2lkIDA9PWU/dm9pZCAwOltlLGIuc3Vic3RyKGQpXX1mdW5jdGlvbiBmKGEsYil7Zm9yKHZhciBjPWEsZD1iO2MmJmQ7KWM+ZD9jJT1kOmQlPWM7cmV0dXJuIGM9YSpiLyhjK2QpfWZ1bmN0aW9uIGcoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPWEoYik7cmV0dXJuIGMmJihjWzBdPXZvaWQgMCksY319ZnVuY3Rpb24gaChhLGIpe3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gYShjKXx8W2IsY119fWZ1bmN0aW9uIGkoYixjKXtmb3IodmFyIGQ9W10sZT0wO2U8Yi5sZW5ndGg7ZSsrKXt2YXIgZj1hLmNvbnN1bWVUcmltbWVkKGJbZV0sYyk7aWYoIWZ8fCIiPT1mWzBdKXJldHVybjt2b2lkIDAhPT1mWzBdJiZkLnB1c2goZlswXSksYz1mWzFdfWlmKCIiPT1jKXJldHVybiBkfWZ1bmN0aW9uIGooYSxiLGMsZCxlKXtmb3IodmFyIGc9W10saD1bXSxpPVtdLGo9ZihkLmxlbmd0aCxlLmxlbmd0aCksaz0wO2s8ajtrKyspe3ZhciBsPWIoZFtrJWQubGVuZ3RoXSxlW2slZS5sZW5ndGhdKTtpZighbClyZXR1cm47Zy5wdXNoKGxbMF0pLGgucHVzaChsWzFdKSxpLnB1c2gobFsyXSl9cmV0dXJuW2csaCxmdW5jdGlvbihiKXt2YXIgZD1iLm1hcChmdW5jdGlvbihhLGIpe3JldHVybiBpW2JdKGEpfSkuam9pbihjKTtyZXR1cm4gYT9hKGQpOmR9XX1mdW5jdGlvbiBrKGEsYixjKXtmb3IodmFyIGQ9W10sZT1bXSxmPVtdLGc9MCxoPTA7aDxjLmxlbmd0aDtoKyspaWYoImZ1bmN0aW9uIj09dHlwZW9mIGNbaF0pe3ZhciBpPWNbaF0oYVtnXSxiW2crK10pO2QucHVzaChpWzBdKSxlLnB1c2goaVsxXSksZi5wdXNoKGlbMl0pfWVsc2UhZnVuY3Rpb24oYSl7ZC5wdXNoKCExKSxlLnB1c2goITEpLGYucHVzaChmdW5jdGlvbigpe3JldHVybiBjW2FdfSl9KGgpO3JldHVybltkLGUsZnVuY3Rpb24oYSl7Zm9yKHZhciBiPSIiLGM9MDtjPGEubGVuZ3RoO2MrKyliKz1mW2NdKGFbY10pO3JldHVybiBifV19YS5jb25zdW1lVG9rZW49YixhLmNvbnN1bWVUcmltbWVkPWMsYS5jb25zdW1lUmVwZWF0ZWQ9ZCxhLmNvbnN1bWVQYXJlbnRoZXNpc2VkPWUsYS5pZ25vcmU9ZyxhLm9wdGlvbmFsPWgsYS5jb25zdW1lTGlzdD1pLGEubWVyZ2VOZXN0ZWRSZXBlYXRlZD1qLmJpbmQobnVsbCxudWxsKSxhLm1lcmdlV3JhcHBlZE5lc3RlZFJlcGVhdGVkPWosYS5tZXJnZUxpc3Q9a30oYiksZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihiKXtmdW5jdGlvbiBjKGIpe3ZhciBjPWEuY29uc3VtZVRva2VuKC9eaW5zZXQvaSxiKTtyZXR1cm4gYz8oZC5pbnNldD0hMCxjKTooYz1hLmNvbnN1bWVMZW5ndGhPclBlcmNlbnQoYikpPyhkLmxlbmd0aHMucHVzaChjWzBdKSxjKTooYz1hLmNvbnN1bWVDb2xvcihiKSxjPyhkLmNvbG9yPWNbMF0sYyk6dm9pZCAwKX12YXIgZD17aW5zZXQ6ITEsbGVuZ3RoczpbXSxjb2xvcjpudWxsfSxlPWEuY29uc3VtZVJlcGVhdGVkKGMsL14vLGIpO2lmKGUmJmVbMF0ubGVuZ3RoKXJldHVybltkLGVbMV1dfWZ1bmN0aW9uIGMoYyl7dmFyIGQ9YS5jb25zdW1lUmVwZWF0ZWQoYiwvXiwvLGMpO2lmKGQmJiIiPT1kWzFdKXJldHVybiBkWzBdfWZ1bmN0aW9uIGQoYixjKXtmb3IoO2IubGVuZ3Rocy5sZW5ndGg8TWF0aC5tYXgoYi5sZW5ndGhzLmxlbmd0aCxjLmxlbmd0aHMubGVuZ3RoKTspYi5sZW5ndGhzLnB1c2goe3B4OjB9KTtmb3IoO2MubGVuZ3Rocy5sZW5ndGg8TWF0aC5tYXgoYi5sZW5ndGhzLmxlbmd0aCxjLmxlbmd0aHMubGVuZ3RoKTspYy5sZW5ndGhzLnB1c2goe3B4OjB9KTtpZihiLmluc2V0PT1jLmluc2V0JiYhIWIuY29sb3I9PSEhYy5jb2xvcil7Zm9yKHZhciBkLGU9W10sZj1bW10sMF0sZz1bW10sMF0saD0wO2g8Yi5sZW5ndGhzLmxlbmd0aDtoKyspe3ZhciBpPWEubWVyZ2VEaW1lbnNpb25zKGIubGVuZ3Roc1toXSxjLmxlbmd0aHNbaF0sMj09aCk7ZlswXS5wdXNoKGlbMF0pLGdbMF0ucHVzaChpWzFdKSxlLnB1c2goaVsyXSl9aWYoYi5jb2xvciYmYy5jb2xvcil7dmFyIGo9YS5tZXJnZUNvbG9ycyhiLmNvbG9yLGMuY29sb3IpO2ZbMV09alswXSxnWzFdPWpbMV0sZD1qWzJdfXJldHVybltmLGcsZnVuY3Rpb24oYSl7Zm9yKHZhciBjPWIuaW5zZXQ/Imluc2V0ICI6IiAiLGY9MDtmPGUubGVuZ3RoO2YrKyljKz1lW2ZdKGFbMF1bZl0pKyIgIjtyZXR1cm4gZCYmKGMrPWQoYVsxXSkpLGN9XX19ZnVuY3Rpb24gZShiLGMsZCxlKXtmdW5jdGlvbiBmKGEpe3JldHVybntpbnNldDphLGNvbG9yOlswLDAsMCwwXSxsZW5ndGhzOlt7cHg6MH0se3B4OjB9LHtweDowfSx7cHg6MH1dfX1mb3IodmFyIGc9W10saD1bXSxpPTA7aTxkLmxlbmd0aHx8aTxlLmxlbmd0aDtpKyspe3ZhciBqPWRbaV18fGYoZVtpXS5pbnNldCksaz1lW2ldfHxmKGRbaV0uaW5zZXQpO2cucHVzaChqKSxoLnB1c2goayl9cmV0dXJuIGEubWVyZ2VOZXN0ZWRSZXBlYXRlZChiLGMsZyxoKX12YXIgZj1lLmJpbmQobnVsbCxkLCIsICIpO2EuYWRkUHJvcGVydGllc0hhbmRsZXIoYyxmLFsiYm94LXNoYWRvdyIsInRleHQtc2hhZG93Il0pfShiKSxmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoYSl7cmV0dXJuIGEudG9GaXhlZCgzKS5yZXBsYWNlKC8wKyQvLCIiKS5yZXBsYWNlKC9cLiQvLCIiKX1mdW5jdGlvbiBkKGEsYixjKXtyZXR1cm4gTWF0aC5taW4oYixNYXRoLm1heChhLGMpKX1mdW5jdGlvbiBlKGEpe2lmKC9eXHMqWy0rXT8oXGQqXC4pP1xkK1xzKiQvLnRlc3QoYSkpcmV0dXJuIE51bWJlcihhKX1mdW5jdGlvbiBmKGEsYil7cmV0dXJuW2EsYixjXX1mdW5jdGlvbiBnKGEsYil7aWYoMCE9YSlyZXR1cm4gaSgwLDEvMCkoYSxiKX1mdW5jdGlvbiBoKGEsYil7cmV0dXJuW2EsYixmdW5jdGlvbihhKXtyZXR1cm4gTWF0aC5yb3VuZChkKDEsMS8wLGEpKX1dfWZ1bmN0aW9uIGkoYSxiKXtyZXR1cm4gZnVuY3Rpb24oZSxmKXtyZXR1cm5bZSxmLGZ1bmN0aW9uKGUpe3JldHVybiBjKGQoYSxiLGUpKX1dfX1mdW5jdGlvbiBqKGEpe3ZhciBiPWEudHJpbSgpLnNwbGl0KC9ccypbXHMsXVxzKi8pO2lmKDAhPT1iLmxlbmd0aCl7Zm9yKHZhciBjPVtdLGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGY9ZShiW2RdKTtpZih2b2lkIDA9PT1mKXJldHVybjtjLnB1c2goZil9cmV0dXJuIGN9fWZ1bmN0aW9uIGsoYSxiKXtpZihhLmxlbmd0aD09Yi5sZW5ndGgpcmV0dXJuW2EsYixmdW5jdGlvbihhKXtyZXR1cm4gYS5tYXAoYykuam9pbigiICIpfV19ZnVuY3Rpb24gbChhLGIpe3JldHVyblthLGIsTWF0aC5yb3VuZF19YS5jbGFtcD1kLGEuYWRkUHJvcGVydGllc0hhbmRsZXIoaixrLFsic3Ryb2tlLWRhc2hhcnJheSJdKSxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKGUsaSgwLDEvMCksWyJib3JkZXItaW1hZ2Utd2lkdGgiLCJsaW5lLWhlaWdodCJdKSxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKGUsaSgwLDEpLFsib3BhY2l0eSIsInNoYXBlLWltYWdlLXRocmVzaG9sZCJdKSxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKGUsZyxbImZsZXgtZ3JvdyIsImZsZXgtc2hyaW5rIl0pLGEuYWRkUHJvcGVydGllc0hhbmRsZXIoZSxoLFsib3JwaGFucyIsIndpZG93cyJdKSxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKGUsbCxbInotaW5kZXgiXSksYS5wYXJzZU51bWJlcj1lLGEucGFyc2VOdW1iZXJMaXN0PWosYS5tZXJnZU51bWJlcnM9ZixhLm51bWJlclRvU3RyaW5nPWN9KGIpLGZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhhLGIpe2lmKCJ2aXNpYmxlIj09YXx8InZpc2libGUiPT1iKXJldHVyblswLDEsZnVuY3Rpb24oYyl7cmV0dXJuIGM8PTA/YTpjPj0xP2I6InZpc2libGUifV19YS5hZGRQcm9wZXJ0aWVzSGFuZGxlcihTdHJpbmcsYyxbInZpc2liaWxpdHkiXSl9KGIpLGZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhhKXthPWEudHJpbSgpLGYuZmlsbFN0eWxlPSIjMDAwIixmLmZpbGxTdHlsZT1hO3ZhciBiPWYuZmlsbFN0eWxlO2lmKGYuZmlsbFN0eWxlPSIjZmZmIixmLmZpbGxTdHlsZT1hLGI9PWYuZmlsbFN0eWxlKXtmLmZpbGxSZWN0KDAsMCwxLDEpO3ZhciBjPWYuZ2V0SW1hZ2VEYXRhKDAsMCwxLDEpLmRhdGE7Zi5jbGVhclJlY3QoMCwwLDEsMSk7dmFyIGQ9Y1szXS8yNTU7cmV0dXJuW2NbMF0qZCxjWzFdKmQsY1syXSpkLGRdfX1mdW5jdGlvbiBkKGIsYyl7cmV0dXJuW2IsYyxmdW5jdGlvbihiKXtmdW5jdGlvbiBjKGEpe3JldHVybiBNYXRoLm1heCgwLE1hdGgubWluKDI1NSxhKSl9aWYoYlszXSlmb3IodmFyIGQ9MDtkPDM7ZCsrKWJbZF09TWF0aC5yb3VuZChjKGJbZF0vYlszXSkpO3JldHVybiBiWzNdPWEubnVtYmVyVG9TdHJpbmcoYS5jbGFtcCgwLDEsYlszXSkpLCJyZ2JhKCIrYi5qb2luKCIsIikrIikifV19dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiY2FudmFzIik7ZS53aWR0aD1lLmhlaWdodD0xO3ZhciBmPWUuZ2V0Q29udGV4dCgiMmQiKTthLmFkZFByb3BlcnRpZXNIYW5kbGVyKGMsZCxbImJhY2tncm91bmQtY29sb3IiLCJib3JkZXItYm90dG9tLWNvbG9yIiwiYm9yZGVyLWxlZnQtY29sb3IiLCJib3JkZXItcmlnaHQtY29sb3IiLCJib3JkZXItdG9wLWNvbG9yIiwiY29sb3IiLCJmaWxsIiwiZmxvb2QtY29sb3IiLCJsaWdodGluZy1jb2xvciIsIm91dGxpbmUtY29sb3IiLCJzdG9wLWNvbG9yIiwic3Ryb2tlIiwidGV4dC1kZWNvcmF0aW9uLWNvbG9yIl0pLGEuY29uc3VtZUNvbG9yPWEuY29uc3VtZVBhcmVudGhlc2lzZWQuYmluZChudWxsLGMpLGEubWVyZ2VDb2xvcnM9ZH0oYiksZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGEpe2Z1bmN0aW9uIGIoKXt2YXIgYj1oLmV4ZWMoYSk7Zz1iP2JbMF06dm9pZCAwfWZ1bmN0aW9uIGMoKXt2YXIgYT1OdW1iZXIoZyk7cmV0dXJuIGIoKSxhfWZ1bmN0aW9uIGQoKXtpZigiKCIhPT1nKXJldHVybiBjKCk7YigpO3ZhciBhPWYoKTtyZXR1cm4iKSIhPT1nP05hTjooYigpLGEpfWZ1bmN0aW9uIGUoKXtmb3IodmFyIGE9ZCgpOyIqIj09PWd8fCIvIj09PWc7KXt2YXIgYz1nO2IoKTt2YXIgZT1kKCk7IioiPT09Yz9hKj1lOmEvPWV9cmV0dXJuIGF9ZnVuY3Rpb24gZigpe2Zvcih2YXIgYT1lKCk7IisiPT09Z3x8Ii0iPT09Zzspe3ZhciBjPWc7YigpO3ZhciBkPWUoKTsiKyI9PT1jP2ErPWQ6YS09ZH1yZXR1cm4gYX12YXIgZyxoPS8oW1wrXC1cd1wuXSt8W1woXClcKlwvXSkvZztyZXR1cm4gYigpLGYoKX1mdW5jdGlvbiBkKGEsYil7aWYoIjAiPT0oYj1iLnRyaW0oKS50b0xvd2VyQ2FzZSgpKSYmInB4Ii5zZWFyY2goYSk+PTApcmV0dXJue3B4OjB9O2lmKC9eW14oXSokfF5jYWxjLy50ZXN0KGIpKXtiPWIucmVwbGFjZSgvY2FsY1woL2csIigiKTt2YXIgZD17fTtiPWIucmVwbGFjZShhLGZ1bmN0aW9uKGEpe3JldHVybiBkW2FdPW51bGwsIlUiK2F9KTtmb3IodmFyIGU9IlUoIithLnNvdXJjZSsiKSIsZj1iLnJlcGxhY2UoL1stK10/KFxkKlwuKT9cZCsoW0VlXVstK10/XGQrKT8vZywiTiIpLnJlcGxhY2UobmV3IFJlZ0V4cCgiTiIrZSwiZyIpLCJEIikucmVwbGFjZSgvXHNbKy1dXHMvZywiTyIpLnJlcGxhY2UoL1xzL2csIiIpLGc9Wy9OXCooRCkvZywvKE58RClbKlwvXU4vZywvKE58RClPXDEvZywvXCgoTnxEKVwpL2ddLGg9MDtoPGcubGVuZ3RoOylnW2hdLnRlc3QoZik/KGY9Zi5yZXBsYWNlKGdbaF0sIiQxIiksaD0wKTpoKys7aWYoIkQiPT1mKXtmb3IodmFyIGkgaW4gZCl7dmFyIGo9YyhiLnJlcGxhY2UobmV3IFJlZ0V4cCgiVSIraSwiZyIpLCIiKS5yZXBsYWNlKG5ldyBSZWdFeHAoZSwiZyIpLCIqMCIpKTtpZighaXNGaW5pdGUoaikpcmV0dXJuO2RbaV09an1yZXR1cm4gZH19fWZ1bmN0aW9uIGUoYSxiKXtyZXR1cm4gZihhLGIsITApfWZ1bmN0aW9uIGYoYixjLGQpe3ZhciBlLGY9W107Zm9yKGUgaW4gYilmLnB1c2goZSk7Zm9yKGUgaW4gYylmLmluZGV4T2YoZSk8MCYmZi5wdXNoKGUpO3JldHVybiBiPWYubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBiW2FdfHwwfSksYz1mLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gY1thXXx8MH0pLFtiLGMsZnVuY3Rpb24oYil7dmFyIGM9Yi5tYXAoZnVuY3Rpb24oYyxlKXtyZXR1cm4gMT09Yi5sZW5ndGgmJmQmJihjPU1hdGgubWF4KGMsMCkpLGEubnVtYmVyVG9TdHJpbmcoYykrZltlXX0pLmpvaW4oIiArICIpO3JldHVybiBiLmxlbmd0aD4xPyJjYWxjKCIrYysiKSI6Y31dfXZhciBnPSJweHxlbXxleHxjaHxyZW18dnd8dmh8dm1pbnx2bWF4fGNtfG1tfGlufHB0fHBjIixoPWQuYmluZChudWxsLG5ldyBSZWdFeHAoZywiZyIpKSxpPWQuYmluZChudWxsLG5ldyBSZWdFeHAoZysifCUiLCJnIikpLGo9ZC5iaW5kKG51bGwsL2RlZ3xyYWR8Z3JhZHx0dXJuL2cpO2EucGFyc2VMZW5ndGg9aCxhLnBhcnNlTGVuZ3RoT3JQZXJjZW50PWksYS5jb25zdW1lTGVuZ3RoT3JQZXJjZW50PWEuY29uc3VtZVBhcmVudGhlc2lzZWQuYmluZChudWxsLGkpLGEucGFyc2VBbmdsZT1qLGEubWVyZ2VEaW1lbnNpb25zPWY7dmFyIGs9YS5jb25zdW1lUGFyZW50aGVzaXNlZC5iaW5kKG51bGwsaCksbD1hLmNvbnN1bWVSZXBlYXRlZC5iaW5kKHZvaWQgMCxrLC9eLyksbT1hLmNvbnN1bWVSZXBlYXRlZC5iaW5kKHZvaWQgMCxsLC9eLC8pO2EuY29uc3VtZVNpemVQYWlyTGlzdD1tO3ZhciBuPWZ1bmN0aW9uKGEpe3ZhciBiPW0oYSk7aWYoYiYmIiI9PWJbMV0pcmV0dXJuIGJbMF19LG89YS5tZXJnZU5lc3RlZFJlcGVhdGVkLmJpbmQodm9pZCAwLGUsIiAiKSxwPWEubWVyZ2VOZXN0ZWRSZXBlYXRlZC5iaW5kKHZvaWQgMCxvLCIsIik7YS5tZXJnZU5vbk5lZ2F0aXZlU2l6ZVBhaXI9byxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKG4scCxbImJhY2tncm91bmQtc2l6ZSJdKSxhLmFkZFByb3BlcnRpZXNIYW5kbGVyKGksZSxbImJvcmRlci1ib3R0b20td2lkdGgiLCJib3JkZXItaW1hZ2Utd2lkdGgiLCJib3JkZXItbGVmdC13aWR0aCIsImJvcmRlci1yaWdodC13aWR0aCIsImJvcmRlci10b3Atd2lkdGgiLCJmbGV4LWJhc2lzIiwiZm9udC1zaXplIiwiaGVpZ2h0IiwibGluZS1oZWlnaHQiLCJtYXgtaGVpZ2h0IiwibWF4LXdpZHRoIiwib3V0bGluZS13aWR0aCIsIndpZHRoIl0pLGEuYWRkUHJvcGVydGllc0hhbmRsZXIoaSxmLFsiYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cyIsImJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzIiwiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cyIsImJvcmRlci10b3AtcmlnaHQtcmFkaXVzIiwiYm90dG9tIiwibGVmdCIsImxldHRlci1zcGFjaW5nIiwibWFyZ2luLWJvdHRvbSIsIm1hcmdpbi1sZWZ0IiwibWFyZ2luLXJpZ2h0IiwibWFyZ2luLXRvcCIsIm1pbi1oZWlnaHQiLCJtaW4td2lkdGgiLCJvdXRsaW5lLW9mZnNldCIsInBhZGRpbmctYm90dG9tIiwicGFkZGluZy1sZWZ0IiwicGFkZGluZy1yaWdodCIsInBhZGRpbmctdG9wIiwicGVyc3BlY3RpdmUiLCJyaWdodCIsInNoYXBlLW1hcmdpbiIsInN0cm9rZS1kYXNob2Zmc2V0IiwidGV4dC1pbmRlbnQiLCJ0b3AiLCJ2ZXJ0aWNhbC1hbGlnbiIsIndvcmQtc3BhY2luZyJdKX0oYiksZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGIpe3JldHVybiBhLmNvbnN1bWVMZW5ndGhPclBlcmNlbnQoYil8fGEuY29uc3VtZVRva2VuKC9eYXV0by8sYil9ZnVuY3Rpb24gZChiKXt2YXIgZD1hLmNvbnN1bWVMaXN0KFthLmlnbm9yZShhLmNvbnN1bWVUb2tlbi5iaW5kKG51bGwsL15yZWN0LykpLGEuaWdub3JlKGEuY29uc3VtZVRva2VuLmJpbmQobnVsbCwvXlwoLykpLGEuY29uc3VtZVJlcGVhdGVkLmJpbmQobnVsbCxjLC9eLC8pLGEuaWdub3JlKGEuY29uc3VtZVRva2VuLmJpbmQobnVsbCwvXlwpLykpXSxiKTtpZihkJiY0PT1kWzBdLmxlbmd0aClyZXR1cm4gZFswXX1mdW5jdGlvbiBlKGIsYyl7cmV0dXJuImF1dG8iPT1ifHwiYXV0byI9PWM/WyEwLCExLGZ1bmN0aW9uKGQpe3ZhciBlPWQ/YjpjO2lmKCJhdXRvIj09ZSlyZXR1cm4iYXV0byI7dmFyIGY9YS5tZXJnZURpbWVuc2lvbnMoZSxlKTtyZXR1cm4gZlsyXShmWzBdKX1dOmEubWVyZ2VEaW1lbnNpb25zKGIsYyl9ZnVuY3Rpb24gZihhKXtyZXR1cm4icmVjdCgiK2ErIikifXZhciBnPWEubWVyZ2VXcmFwcGVkTmVzdGVkUmVwZWF0ZWQuYmluZChudWxsLGYsZSwiLCAiKTthLnBhcnNlQm94PWQsYS5tZXJnZUJveGVzPWcsYS5hZGRQcm9wZXJ0aWVzSGFuZGxlcihkLGcsWyJjbGlwIl0pfShiKSxmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPTA7cmV0dXJuIGEubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhPT09az9iW2MrK106YX0pfX1mdW5jdGlvbiBkKGEpe3JldHVybiBhfWZ1bmN0aW9uIGUoYil7aWYoIm5vbmUiPT0oYj1iLnRvTG93ZXJDYXNlKCkudHJpbSgpKSlyZXR1cm5bXTtmb3IodmFyIGMsZD0vXHMqKFx3KylcKChbXildKilcKS9nLGU9W10sZj0wO2M9ZC5leGVjKGIpOyl7aWYoYy5pbmRleCE9ZilyZXR1cm47Zj1jLmluZGV4K2NbMF0ubGVuZ3RoO3ZhciBnPWNbMV0saD1uW2ddO2lmKCFoKXJldHVybjt2YXIgaT1jWzJdLnNwbGl0KCIsIiksaj1oWzBdO2lmKGoubGVuZ3RoPGkubGVuZ3RoKXJldHVybjtmb3IodmFyIGs9W10sbz0wO288ai5sZW5ndGg7bysrKXt2YXIgcCxxPWlbb10scj1qW29dO2lmKHZvaWQgMD09PShwPXE/e0E6ZnVuY3Rpb24oYil7cmV0dXJuIjAiPT1iLnRyaW0oKT9tOmEucGFyc2VBbmdsZShiKX0sTjphLnBhcnNlTnVtYmVyLFQ6YS5wYXJzZUxlbmd0aE9yUGVyY2VudCxMOmEucGFyc2VMZW5ndGh9W3IudG9VcHBlckNhc2UoKV0ocSk6e2E6bSxuOmtbMF0sdDpsfVtyXSkpcmV0dXJuO2sucHVzaChwKX1pZihlLnB1c2goe3Q6ZyxkOmt9KSxkLmxhc3RJbmRleD09Yi5sZW5ndGgpcmV0dXJuIGV9fWZ1bmN0aW9uIGYoYSl7cmV0dXJuIGEudG9GaXhlZCg2KS5yZXBsYWNlKCIuMDAwMDAwIiwiIil9ZnVuY3Rpb24gZyhiLGMpe2lmKGIuZGVjb21wb3NpdGlvblBhaXIhPT1jKXtiLmRlY29tcG9zaXRpb25QYWlyPWM7dmFyIGQ9YS5tYWtlTWF0cml4RGVjb21wb3NpdGlvbihiKX1pZihjLmRlY29tcG9zaXRpb25QYWlyIT09Yil7Yy5kZWNvbXBvc2l0aW9uUGFpcj1iO3ZhciBlPWEubWFrZU1hdHJpeERlY29tcG9zaXRpb24oYyl9cmV0dXJuIG51bGw9PWRbMF18fG51bGw9PWVbMF0/W1shMV0sWyEwXSxmdW5jdGlvbihhKXtyZXR1cm4gYT9jWzBdLmQ6YlswXS5kfV06KGRbMF0ucHVzaCgwKSxlWzBdLnB1c2goMSksW2QsZSxmdW5jdGlvbihiKXt2YXIgYz1hLnF1YXQoZFswXVszXSxlWzBdWzNdLGJbNV0pO3JldHVybiBhLmNvbXBvc2VNYXRyaXgoYlswXSxiWzFdLGJbMl0sYyxiWzRdKS5tYXAoZikuam9pbigiLCIpfV0pfWZ1bmN0aW9uIGgoYSl7cmV0dXJuIGEucmVwbGFjZSgvW3h5XS8sIiIpfWZ1bmN0aW9uIGkoYSl7cmV0dXJuIGEucmVwbGFjZSgvKHh8eXx6fDNkKT8kLywiM2QiKX1mdW5jdGlvbiBqKGIsYyl7dmFyIGQ9YS5tYWtlTWF0cml4RGVjb21wb3NpdGlvbiYmITAsZT0hMTtpZighYi5sZW5ndGh8fCFjLmxlbmd0aCl7Yi5sZW5ndGh8fChlPSEwLGI9YyxjPVtdKTtmb3IodmFyIGY9MDtmPGIubGVuZ3RoO2YrKyl7dmFyIGo9YltmXS50LGs9YltmXS5kLGw9InNjYWxlIj09ai5zdWJzdHIoMCw1KT8xOjA7Yy5wdXNoKHt0OmosZDprLm1hcChmdW5jdGlvbihhKXtpZigibnVtYmVyIj09dHlwZW9mIGEpcmV0dXJuIGw7dmFyIGI9e307Zm9yKHZhciBjIGluIGEpYltjXT1sO3JldHVybiBifSl9KX19dmFyIG09ZnVuY3Rpb24oYSxiKXtyZXR1cm4icGVyc3BlY3RpdmUiPT1hJiYicGVyc3BlY3RpdmUiPT1ifHwoIm1hdHJpeCI9PWF8fCJtYXRyaXgzZCI9PWEpJiYoIm1hdHJpeCI9PWJ8fCJtYXRyaXgzZCI9PWIpfSxvPVtdLHA9W10scT1bXTtpZihiLmxlbmd0aCE9Yy5sZW5ndGgpe2lmKCFkKXJldHVybjt2YXIgcj1nKGIsYyk7bz1bclswXV0scD1bclsxXV0scT1bWyJtYXRyaXgiLFtyWzJdXV1dfWVsc2UgZm9yKHZhciBmPTA7ZjxiLmxlbmd0aDtmKyspe3ZhciBqLHM9YltmXS50LHQ9Y1tmXS50LHU9YltmXS5kLHY9Y1tmXS5kLHc9bltzXSx4PW5bdF07aWYobShzLHQpKXtpZighZClyZXR1cm47dmFyIHI9ZyhbYltmXV0sW2NbZl1dKTtvLnB1c2goclswXSkscC5wdXNoKHJbMV0pLHEucHVzaChbIm1hdHJpeCIsW3JbMl1dXSl9ZWxzZXtpZihzPT10KWo9cztlbHNlIGlmKHdbMl0mJnhbMl0mJmgocyk9PWgodCkpaj1oKHMpLHU9d1syXSh1KSx2PXhbMl0odik7ZWxzZXtpZighd1sxXXx8IXhbMV18fGkocykhPWkodCkpe2lmKCFkKXJldHVybjt2YXIgcj1nKGIsYyk7bz1bclswXV0scD1bclsxXV0scT1bWyJtYXRyaXgiLFtyWzJdXV1dO2JyZWFrfWo9aShzKSx1PXdbMV0odSksdj14WzFdKHYpfWZvcih2YXIgeT1bXSx6PVtdLEE9W10sQj0wO0I8dS5sZW5ndGg7QisrKXt2YXIgQz0ibnVtYmVyIj09dHlwZW9mIHVbQl0/YS5tZXJnZU51bWJlcnM6YS5tZXJnZURpbWVuc2lvbnMscj1DKHVbQl0sdltCXSk7eVtCXT1yWzBdLHpbQl09clsxXSxBLnB1c2goclsyXSl9by5wdXNoKHkpLHAucHVzaCh6KSxxLnB1c2goW2osQV0pfX1pZihlKXt2YXIgRD1vO289cCxwPUR9cmV0dXJuW28scCxmdW5jdGlvbihhKXtyZXR1cm4gYS5tYXAoZnVuY3Rpb24oYSxiKXt2YXIgYz1hLm1hcChmdW5jdGlvbihhLGMpe3JldHVybiBxW2JdWzFdW2NdKGEpfSkuam9pbigiLCIpO3JldHVybiJtYXRyaXgiPT1xW2JdWzBdJiYxNj09Yy5zcGxpdCgiLCIpLmxlbmd0aCYmKHFbYl1bMF09Im1hdHJpeDNkIikscVtiXVswXSsiKCIrYysiKSJ9KS5qb2luKCIgIil9XX12YXIgaz1udWxsLGw9e3B4OjB9LG09e2RlZzowfSxuPXttYXRyaXg6WyJOTk5OTk4iLFtrLGssMCwwLGssaywwLDAsMCwwLDEsMCxrLGssMCwxXSxkXSxtYXRyaXgzZDpbIk5OTk5OTk5OTk5OTk5OTk4iLGRdLHJvdGF0ZTpbIkEiXSxyb3RhdGV4OlsiQSJdLHJvdGF0ZXk6WyJBIl0scm90YXRlejpbIkEiXSxyb3RhdGUzZDpbIk5OTkEiXSxwZXJzcGVjdGl2ZTpbIkwiXSxzY2FsZTpbIk5uIixjKFtrLGssMV0pLGRdLHNjYWxleDpbIk4iLGMoW2ssMSwxXSksYyhbaywxXSldLHNjYWxleTpbIk4iLGMoWzEsaywxXSksYyhbMSxrXSldLHNjYWxlejpbIk4iLGMoWzEsMSxrXSldLHNjYWxlM2Q6WyJOTk4iLGRdLHNrZXc6WyJBYSIsbnVsbCxkXSxza2V3eDpbIkEiLG51bGwsYyhbayxtXSldLHNrZXd5OlsiQSIsbnVsbCxjKFttLGtdKV0sdHJhbnNsYXRlOlsiVHQiLGMoW2ssayxsXSksZF0sdHJhbnNsYXRleDpbIlQiLGMoW2ssbCxsXSksYyhbayxsXSldLHRyYW5zbGF0ZXk6WyJUIixjKFtsLGssbF0pLGMoW2wsa10pXSx0cmFuc2xhdGV6OlsiTCIsYyhbbCxsLGtdKV0sdHJhbnNsYXRlM2Q6WyJUVEwiLGRdfTthLmFkZFByb3BlcnRpZXNIYW5kbGVyKGUsaixbInRyYW5zZm9ybSJdKSxhLnRyYW5zZm9ybVRvU3ZnTWF0cml4PWZ1bmN0aW9uKGIpe3ZhciBjPWEudHJhbnNmb3JtTGlzdFRvTWF0cml4KGUoYikpO3JldHVybiJtYXRyaXgoIitmKGNbMF0pKyIgIitmKGNbMV0pKyIgIitmKGNbNF0pKyIgIitmKGNbNV0pKyIgIitmKGNbMTJdKSsiICIrZihjWzEzXSkrIikifX0oYiksZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGEsYil7Yi5jb25jYXQoW2FdKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe2IgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlJiYoZFthXT1iKSxlW2JdPWF9KX12YXIgZD17fSxlPXt9O2MoInRyYW5zZm9ybSIsWyJ3ZWJraXRUcmFuc2Zvcm0iLCJtc1RyYW5zZm9ybSJdKSxjKCJ0cmFuc2Zvcm1PcmlnaW4iLFsid2Via2l0VHJhbnNmb3JtT3JpZ2luIl0pLGMoInBlcnNwZWN0aXZlIixbIndlYmtpdFBlcnNwZWN0aXZlIl0pLGMoInBlcnNwZWN0aXZlT3JpZ2luIixbIndlYmtpdFBlcnNwZWN0aXZlT3JpZ2luIl0pLGEucHJvcGVydHlOYW1lPWZ1bmN0aW9uKGEpe3JldHVybiBkW2FdfHxhfSxhLnVucHJlZml4ZWRQcm9wZXJ0eU5hbWU9ZnVuY3Rpb24oYSl7cmV0dXJuIGVbYV18fGF9fShiKX0oKSxmdW5jdGlvbigpe2lmKHZvaWQgMD09PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLmFuaW1hdGUoW10pLm9uY2FuY2VsKXt2YXIgYTtpZih3aW5kb3cucGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdyl2YXIgYT1mdW5jdGlvbigpe3JldHVybiBwZXJmb3JtYW5jZS5ub3coKX07ZWxzZSB2YXIgYT1mdW5jdGlvbigpe3JldHVybiBEYXRlLm5vdygpfTt2YXIgYj1mdW5jdGlvbihhLGIsYyl7dGhpcy50YXJnZXQ9YSx0aGlzLmN1cnJlbnRUaW1lPWIsdGhpcy50aW1lbGluZVRpbWU9Yyx0aGlzLnR5cGU9ImNhbmNlbCIsdGhpcy5idWJibGVzPSExLHRoaXMuY2FuY2VsYWJsZT0hMSx0aGlzLmN1cnJlbnRUYXJnZXQ9YSx0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITEsdGhpcy5ldmVudFBoYXNlPUV2ZW50LkFUX1RBUkdFVCx0aGlzLnRpbWVTdGFtcD1EYXRlLm5vdygpfSxjPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5hbmltYXRlO3dpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5hbmltYXRlPWZ1bmN0aW9uKGQsZSl7dmFyIGY9Yy5jYWxsKHRoaXMsZCxlKTtmLl9jYW5jZWxIYW5kbGVycz1bXSxmLm9uY2FuY2VsPW51bGw7dmFyIGc9Zi5jYW5jZWw7Zi5jYW5jZWw9ZnVuY3Rpb24oKXtnLmNhbGwodGhpcyk7dmFyIGM9bmV3IGIodGhpcyxudWxsLGEoKSksZD10aGlzLl9jYW5jZWxIYW5kbGVycy5jb25jYXQodGhpcy5vbmNhbmNlbD9bdGhpcy5vbmNhbmNlbF06W10pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtkLmZvckVhY2goZnVuY3Rpb24oYSl7YS5jYWxsKGMudGFyZ2V0LGMpfSl9LDApfTt2YXIgaD1mLmFkZEV2ZW50TGlzdGVuZXI7Zi5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEsYil7ImZ1bmN0aW9uIj09dHlwZW9mIGImJiJjYW5jZWwiPT1hP3RoaXMuX2NhbmNlbEhhbmRsZXJzLnB1c2goYik6aC5jYWxsKHRoaXMsYSxiKX07dmFyIGk9Zi5yZW1vdmVFdmVudExpc3RlbmVyO3JldHVybiBmLnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSxiKXtpZigiY2FuY2VsIj09YSl7dmFyIGM9dGhpcy5fY2FuY2VsSGFuZGxlcnMuaW5kZXhPZihiKTtjPj0wJiZ0aGlzLl9jYW5jZWxIYW5kbGVycy5zcGxpY2UoYywxKX1lbHNlIGkuY2FsbCh0aGlzLGEsYil9LGZ9fX0oKSxmdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsYz1udWxsLGQ9ITE7dHJ5e3ZhciBlPWdldENvbXB1dGVkU3R5bGUoYikuZ2V0UHJvcGVydHlWYWx1ZSgib3BhY2l0eSIpLGY9IjAiPT1lPyIxIjoiMCI7Yz1iLmFuaW1hdGUoe29wYWNpdHk6W2YsZl19LHtkdXJhdGlvbjoxfSksYy5jdXJyZW50VGltZT0wLGQ9Z2V0Q29tcHV0ZWRTdHlsZShiKS5nZXRQcm9wZXJ0eVZhbHVlKCJvcGFjaXR5Iik9PWZ9Y2F0Y2goYSl7fWZpbmFsbHl7YyYmYy5jYW5jZWwoKX1pZighZCl7dmFyIGc9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLmFuaW1hdGU7d2luZG93LkVsZW1lbnQucHJvdG90eXBlLmFuaW1hdGU9ZnVuY3Rpb24oYixjKXtyZXR1cm4gd2luZG93LlN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZBcnJheS5wcm90b3R5cGUuZnJvbSYmYltTeW1ib2wuaXRlcmF0b3JdJiYoYj1BcnJheS5mcm9tKGIpKSxBcnJheS5pc0FycmF5KGIpfHxudWxsPT09Ynx8KGI9YS5jb252ZXJ0VG9BcnJheUZvcm0oYikpLGcuY2FsbCh0aGlzLGIsYyl9fX0oYSksZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoYSl7dmFyIGM9Yi50aW1lbGluZTtjLmN1cnJlbnRUaW1lPWEsYy5fZGlzY2FyZEFuaW1hdGlvbnMoKSwwPT1jLl9hbmltYXRpb25zLmxlbmd0aD9mPSExOnJlcXVlc3RBbmltYXRpb25GcmFtZShkKX12YXIgZT13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lO3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU9ZnVuY3Rpb24oYSl7cmV0dXJuIGUoZnVuY3Rpb24oYyl7Yi50aW1lbGluZS5fdXBkYXRlQW5pbWF0aW9uc1Byb21pc2VzKCksYShjKSxiLnRpbWVsaW5lLl91cGRhdGVBbmltYXRpb25zUHJvbWlzZXMoKX0pfSxiLkFuaW1hdGlvblRpbWVsaW5lPWZ1bmN0aW9uKCl7dGhpcy5fYW5pbWF0aW9ucz1bXSx0aGlzLmN1cnJlbnRUaW1lPXZvaWQgMH0sYi5BbmltYXRpb25UaW1lbGluZS5wcm90b3R5cGU9e2dldEFuaW1hdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGlzY2FyZEFuaW1hdGlvbnMoKSx0aGlzLl9hbmltYXRpb25zLnNsaWNlKCl9LF91cGRhdGVBbmltYXRpb25zUHJvbWlzZXM6ZnVuY3Rpb24oKXtiLmFuaW1hdGlvbnNXaXRoUHJvbWlzZXM9Yi5hbmltYXRpb25zV2l0aFByb21pc2VzLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5fdXBkYXRlUHJvbWlzZXMoKX0pfSxfZGlzY2FyZEFuaW1hdGlvbnM6ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVBbmltYXRpb25zUHJvbWlzZXMoKSx0aGlzLl9hbmltYXRpb25zPXRoaXMuX2FuaW1hdGlvbnMuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiJmaW5pc2hlZCIhPWEucGxheVN0YXRlJiYiaWRsZSIhPWEucGxheVN0YXRlfSl9LF9wbGF5OmZ1bmN0aW9uKGEpe3ZhciBjPW5ldyBiLkFuaW1hdGlvbihhLHRoaXMpO3JldHVybiB0aGlzLl9hbmltYXRpb25zLnB1c2goYyksYi5yZXN0YXJ0V2ViQW5pbWF0aW9uc05leHRUaWNrKCksYy5fdXBkYXRlUHJvbWlzZXMoKSxjLl9hbmltYXRpb24ucGxheSgpLGMuX3VwZGF0ZVByb21pc2VzKCksY30scGxheTpmdW5jdGlvbihhKXtyZXR1cm4gYSYmYS5yZW1vdmUoKSx0aGlzLl9wbGF5KGEpfX07dmFyIGY9ITE7Yi5yZXN0YXJ0V2ViQW5pbWF0aW9uc05leHRUaWNrPWZ1bmN0aW9uKCl7Znx8KGY9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGQpKX07dmFyIGc9bmV3IGIuQW5pbWF0aW9uVGltZWxpbmU7Yi50aW1lbGluZT1nO3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LmRvY3VtZW50LCJ0aW1lbGluZSIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZ319KX1jYXRjaChhKXt9dHJ5e3dpbmRvdy5kb2N1bWVudC50aW1lbGluZT1nfWNhdGNoKGEpe319KDAsYyksZnVuY3Rpb24oYSxiLGMpe2IuYW5pbWF0aW9uc1dpdGhQcm9taXNlcz1bXSxiLkFuaW1hdGlvbj1mdW5jdGlvbihiLGMpe2lmKHRoaXMuaWQ9IiIsYiYmYi5faWQmJih0aGlzLmlkPWIuX2lkKSx0aGlzLmVmZmVjdD1iLGImJihiLl9hbmltYXRpb249dGhpcyksIWMpdGhyb3cgbmV3IEVycm9yKCJBbmltYXRpb24gd2l0aCBudWxsIHRpbWVsaW5lIGlzIG5vdCBzdXBwb3J0ZWQiKTt0aGlzLl90aW1lbGluZT1jLHRoaXMuX3NlcXVlbmNlTnVtYmVyPWEuc2VxdWVuY2VOdW1iZXIrKyx0aGlzLl9ob2xkVGltZT0wLHRoaXMuX3BhdXNlZD0hMSx0aGlzLl9pc0dyb3VwPSExLHRoaXMuX2FuaW1hdGlvbj1udWxsLHRoaXMuX2NoaWxkQW5pbWF0aW9ucz1bXSx0aGlzLl9jYWxsYmFjaz1udWxsLHRoaXMuX29sZFBsYXlTdGF0ZT0iaWRsZSIsdGhpcy5fcmVidWlsZFVuZGVybHlpbmdBbmltYXRpb24oKSx0aGlzLl9hbmltYXRpb24uY2FuY2VsKCksdGhpcy5fdXBkYXRlUHJvbWlzZXMoKX0sYi5BbmltYXRpb24ucHJvdG90eXBlPXtfdXBkYXRlUHJvbWlzZXM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl9vbGRQbGF5U3RhdGUsYj10aGlzLnBsYXlTdGF0ZTtyZXR1cm4gdGhpcy5fcmVhZHlQcm9taXNlJiZiIT09YSYmKCJpZGxlIj09Yj8odGhpcy5fcmVqZWN0UmVhZHlQcm9taXNlKCksdGhpcy5fcmVhZHlQcm9taXNlPXZvaWQgMCk6InBlbmRpbmciPT1hP3RoaXMuX3Jlc29sdmVSZWFkeVByb21pc2UoKToicGVuZGluZyI9PWImJih0aGlzLl9yZWFkeVByb21pc2U9dm9pZCAwKSksdGhpcy5fZmluaXNoZWRQcm9taXNlJiZiIT09YSYmKCJpZGxlIj09Yj8odGhpcy5fcmVqZWN0RmluaXNoZWRQcm9taXNlKCksdGhpcy5fZmluaXNoZWRQcm9taXNlPXZvaWQgMCk6ImZpbmlzaGVkIj09Yj90aGlzLl9yZXNvbHZlRmluaXNoZWRQcm9taXNlKCk6ImZpbmlzaGVkIj09YSYmKHRoaXMuX2ZpbmlzaGVkUHJvbWlzZT12b2lkIDApKSx0aGlzLl9vbGRQbGF5U3RhdGU9dGhpcy5wbGF5U3RhdGUsdGhpcy5fcmVhZHlQcm9taXNlfHx0aGlzLl9maW5pc2hlZFByb21pc2V9LF9yZWJ1aWxkVW5kZXJseWluZ0FuaW1hdGlvbjpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZVByb21pc2VzKCk7dmFyIGEsYyxkLGUsZj0hIXRoaXMuX2FuaW1hdGlvbjtmJiYoYT10aGlzLnBsYXliYWNrUmF0ZSxjPXRoaXMuX3BhdXNlZCxkPXRoaXMuc3RhcnRUaW1lLGU9dGhpcy5jdXJyZW50VGltZSx0aGlzLl9hbmltYXRpb24uY2FuY2VsKCksdGhpcy5fYW5pbWF0aW9uLl93cmFwcGVyPW51bGwsdGhpcy5fYW5pbWF0aW9uPW51bGwpLCghdGhpcy5lZmZlY3R8fHRoaXMuZWZmZWN0IGluc3RhbmNlb2Ygd2luZG93LktleWZyYW1lRWZmZWN0KSYmKHRoaXMuX2FuaW1hdGlvbj1iLm5ld1VuZGVybHlpbmdBbmltYXRpb25Gb3JLZXlmcmFtZUVmZmVjdCh0aGlzLmVmZmVjdCksYi5iaW5kQW5pbWF0aW9uRm9yS2V5ZnJhbWVFZmZlY3QodGhpcykpLCh0aGlzLmVmZmVjdCBpbnN0YW5jZW9mIHdpbmRvdy5TZXF1ZW5jZUVmZmVjdHx8dGhpcy5lZmZlY3QgaW5zdGFuY2VvZiB3aW5kb3cuR3JvdXBFZmZlY3QpJiYodGhpcy5fYW5pbWF0aW9uPWIubmV3VW5kZXJseWluZ0FuaW1hdGlvbkZvckdyb3VwKHRoaXMuZWZmZWN0KSxiLmJpbmRBbmltYXRpb25Gb3JHcm91cCh0aGlzKSksdGhpcy5lZmZlY3QmJnRoaXMuZWZmZWN0Ll9vbnNhbXBsZSYmYi5iaW5kQW5pbWF0aW9uRm9yQ3VzdG9tRWZmZWN0KHRoaXMpLGYmJigxIT1hJiYodGhpcy5wbGF5YmFja1JhdGU9YSksbnVsbCE9PWQ/dGhpcy5zdGFydFRpbWU9ZDpudWxsIT09ZT90aGlzLmN1cnJlbnRUaW1lPWU6bnVsbCE9PXRoaXMuX2hvbGRUaW1lJiYodGhpcy5jdXJyZW50VGltZT10aGlzLl9ob2xkVGltZSksYyYmdGhpcy5wYXVzZSgpKSx0aGlzLl91cGRhdGVQcm9taXNlcygpfSxfdXBkYXRlQ2hpbGRyZW46ZnVuY3Rpb24oKXtpZih0aGlzLmVmZmVjdCYmImlkbGUiIT10aGlzLnBsYXlTdGF0ZSl7dmFyIGE9dGhpcy5lZmZlY3QuX3RpbWluZy5kZWxheTt0aGlzLl9jaGlsZEFuaW1hdGlvbnMuZm9yRWFjaChmdW5jdGlvbihjKXt0aGlzLl9hcnJhbmdlQ2hpbGRyZW4oYyxhKSx0aGlzLmVmZmVjdCBpbnN0YW5jZW9mIHdpbmRvdy5TZXF1ZW5jZUVmZmVjdCYmKGErPWIuZ3JvdXBDaGlsZER1cmF0aW9uKGMuZWZmZWN0KSl9LmJpbmQodGhpcykpfX0sX3NldEV4dGVybmFsQW5pbWF0aW9uOmZ1bmN0aW9uKGEpe2lmKHRoaXMuZWZmZWN0JiZ0aGlzLl9pc0dyb3VwKWZvcih2YXIgYj0wO2I8dGhpcy5lZmZlY3QuY2hpbGRyZW4ubGVuZ3RoO2IrKyl0aGlzLmVmZmVjdC5jaGlsZHJlbltiXS5fYW5pbWF0aW9uPWEsdGhpcy5fY2hpbGRBbmltYXRpb25zW2JdLl9zZXRFeHRlcm5hbEFuaW1hdGlvbihhKX0sX2NvbnN0cnVjdENoaWxkQW5pbWF0aW9uczpmdW5jdGlvbigpe2lmKHRoaXMuZWZmZWN0JiZ0aGlzLl9pc0dyb3VwKXt2YXIgYT10aGlzLmVmZmVjdC5fdGltaW5nLmRlbGF5O3RoaXMuX3JlbW92ZUNoaWxkQW5pbWF0aW9ucygpLHRoaXMuZWZmZWN0LmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oYyl7dmFyIGQ9Yi50aW1lbGluZS5fcGxheShjKTt0aGlzLl9jaGlsZEFuaW1hdGlvbnMucHVzaChkKSxkLnBsYXliYWNrUmF0ZT10aGlzLnBsYXliYWNrUmF0ZSx0aGlzLl9wYXVzZWQmJmQucGF1c2UoKSxjLl9hbmltYXRpb249dGhpcy5lZmZlY3QuX2FuaW1hdGlvbix0aGlzLl9hcnJhbmdlQ2hpbGRyZW4oZCxhKSx0aGlzLmVmZmVjdCBpbnN0YW5jZW9mIHdpbmRvdy5TZXF1ZW5jZUVmZmVjdCYmKGErPWIuZ3JvdXBDaGlsZER1cmF0aW9uKGMpKX0uYmluZCh0aGlzKSl9fSxfYXJyYW5nZUNoaWxkcmVuOmZ1bmN0aW9uKGEsYil7bnVsbD09PXRoaXMuc3RhcnRUaW1lP2EuY3VycmVudFRpbWU9dGhpcy5jdXJyZW50VGltZS1iL3RoaXMucGxheWJhY2tSYXRlOmEuc3RhcnRUaW1lIT09dGhpcy5zdGFydFRpbWUrYi90aGlzLnBsYXliYWNrUmF0ZSYmKGEuc3RhcnRUaW1lPXRoaXMuc3RhcnRUaW1lK2IvdGhpcy5wbGF5YmFja1JhdGUpfSxnZXQgdGltZWxpbmUoKXtyZXR1cm4gdGhpcy5fdGltZWxpbmV9LGdldCBwbGF5U3RhdGUoKXtyZXR1cm4gdGhpcy5fYW5pbWF0aW9uP3RoaXMuX2FuaW1hdGlvbi5wbGF5U3RhdGU6ImlkbGUifSxnZXQgZmluaXNoZWQoKXtyZXR1cm4gd2luZG93LlByb21pc2U/KHRoaXMuX2ZpbmlzaGVkUHJvbWlzZXx8KC0xPT1iLmFuaW1hdGlvbnNXaXRoUHJvbWlzZXMuaW5kZXhPZih0aGlzKSYmYi5hbmltYXRpb25zV2l0aFByb21pc2VzLnB1c2godGhpcyksdGhpcy5fZmluaXNoZWRQcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGEsYil7dGhpcy5fcmVzb2x2ZUZpbmlzaGVkUHJvbWlzZT1mdW5jdGlvbigpe2EodGhpcyl9LHRoaXMuX3JlamVjdEZpbmlzaGVkUHJvbWlzZT1mdW5jdGlvbigpe2Ioe3R5cGU6RE9NRXhjZXB0aW9uLkFCT1JUX0VSUixuYW1lOiJBYm9ydEVycm9yIn0pfX0uYmluZCh0aGlzKSksImZpbmlzaGVkIj09dGhpcy5wbGF5U3RhdGUmJnRoaXMuX3Jlc29sdmVGaW5pc2hlZFByb21pc2UoKSksdGhpcy5fZmluaXNoZWRQcm9taXNlKTooY29uc29sZS53YXJuKCJBbmltYXRpb24gUHJvbWlzZXMgcmVxdWlyZSBKYXZhU2NyaXB0IFByb21pc2UgY29uc3RydWN0b3IiKSxudWxsKX0sZ2V0IHJlYWR5KCl7cmV0dXJuIHdpbmRvdy5Qcm9taXNlPyh0aGlzLl9yZWFkeVByb21pc2V8fCgtMT09Yi5hbmltYXRpb25zV2l0aFByb21pc2VzLmluZGV4T2YodGhpcykmJmIuYW5pbWF0aW9uc1dpdGhQcm9taXNlcy5wdXNoKHRoaXMpLHRoaXMuX3JlYWR5UHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihhLGIpe3RoaXMuX3Jlc29sdmVSZWFkeVByb21pc2U9ZnVuY3Rpb24oKXthKHRoaXMpfSx0aGlzLl9yZWplY3RSZWFkeVByb21pc2U9ZnVuY3Rpb24oKXtiKHt0eXBlOkRPTUV4Y2VwdGlvbi5BQk9SVF9FUlIsbmFtZToiQWJvcnRFcnJvciJ9KX19LmJpbmQodGhpcykpLCJwZW5kaW5nIiE9PXRoaXMucGxheVN0YXRlJiZ0aGlzLl9yZXNvbHZlUmVhZHlQcm9taXNlKCkpLHRoaXMuX3JlYWR5UHJvbWlzZSk6KGNvbnNvbGUud2FybigiQW5pbWF0aW9uIFByb21pc2VzIHJlcXVpcmUgSmF2YVNjcmlwdCBQcm9taXNlIGNvbnN0cnVjdG9yIiksbnVsbCl9LGdldCBvbmZpbmlzaCgpe3JldHVybiB0aGlzLl9hbmltYXRpb24ub25maW5pc2h9LHNldCBvbmZpbmlzaChhKXt0aGlzLl9hbmltYXRpb24ub25maW5pc2g9ImZ1bmN0aW9uIj09dHlwZW9mIGE/ZnVuY3Rpb24oYil7Yi50YXJnZXQ9dGhpcyxhLmNhbGwodGhpcyxiKX0uYmluZCh0aGlzKTphfSxnZXQgb25jYW5jZWwoKXtyZXR1cm4gdGhpcy5fYW5pbWF0aW9uLm9uY2FuY2VsfSxzZXQgb25jYW5jZWwoYSl7dGhpcy5fYW5pbWF0aW9uLm9uY2FuY2VsPSJmdW5jdGlvbiI9PXR5cGVvZiBhP2Z1bmN0aW9uKGIpe2IudGFyZ2V0PXRoaXMsYS5jYWxsKHRoaXMsYil9LmJpbmQodGhpcyk6YX0sZ2V0IGN1cnJlbnRUaW1lKCl7dGhpcy5fdXBkYXRlUHJvbWlzZXMoKTt2YXIgYT10aGlzLl9hbmltYXRpb24uY3VycmVudFRpbWU7cmV0dXJuIHRoaXMuX3VwZGF0ZVByb21pc2VzKCksYX0sc2V0IGN1cnJlbnRUaW1lKGEpe3RoaXMuX3VwZGF0ZVByb21pc2VzKCksdGhpcy5fYW5pbWF0aW9uLmN1cnJlbnRUaW1lPWlzRmluaXRlKGEpP2E6TWF0aC5zaWduKGEpKk51bWJlci5NQVhfVkFMVUUsdGhpcy5fcmVnaXN0ZXIoKSx0aGlzLl9mb3JFYWNoQ2hpbGQoZnVuY3Rpb24oYixjKXtiLmN1cnJlbnRUaW1lPWEtY30pLHRoaXMuX3VwZGF0ZVByb21pc2VzKCl9LGdldCBzdGFydFRpbWUoKXtyZXR1cm4gdGhpcy5fYW5pbWF0aW9uLnN0YXJ0VGltZX0sc2V0IHN0YXJ0VGltZShhKXt0aGlzLl91cGRhdGVQcm9taXNlcygpLHRoaXMuX2FuaW1hdGlvbi5zdGFydFRpbWU9aXNGaW5pdGUoYSk/YTpNYXRoLnNpZ24oYSkqTnVtYmVyLk1BWF9WQUxVRSx0aGlzLl9yZWdpc3RlcigpLHRoaXMuX2ZvckVhY2hDaGlsZChmdW5jdGlvbihiLGMpe2Iuc3RhcnRUaW1lPWErY30pLHRoaXMuX3VwZGF0ZVByb21pc2VzKCl9LGdldCBwbGF5YmFja1JhdGUoKXtyZXR1cm4gdGhpcy5fYW5pbWF0aW9uLnBsYXliYWNrUmF0ZX0sc2V0IHBsYXliYWNrUmF0ZShhKXt0aGlzLl91cGRhdGVQcm9taXNlcygpO3ZhciBiPXRoaXMuY3VycmVudFRpbWU7dGhpcy5fYW5pbWF0aW9uLnBsYXliYWNrUmF0ZT1hLHRoaXMuX2ZvckVhY2hDaGlsZChmdW5jdGlvbihiKXtiLnBsYXliYWNrUmF0ZT1hfSksbnVsbCE9PWImJih0aGlzLmN1cnJlbnRUaW1lPWIpLHRoaXMuX3VwZGF0ZVByb21pc2VzKCl9LHBsYXk6ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVQcm9taXNlcygpLHRoaXMuX3BhdXNlZD0hMSx0aGlzLl9hbmltYXRpb24ucGxheSgpLC0xPT10aGlzLl90aW1lbGluZS5fYW5pbWF0aW9ucy5pbmRleE9mKHRoaXMpJiZ0aGlzLl90aW1lbGluZS5fYW5pbWF0aW9ucy5wdXNoKHRoaXMpLHRoaXMuX3JlZ2lzdGVyKCksYi5hd2FpdFN0YXJ0VGltZSh0aGlzKSx0aGlzLl9mb3JFYWNoQ2hpbGQoZnVuY3Rpb24oYSl7dmFyIGI9YS5jdXJyZW50VGltZTthLnBsYXkoKSxhLmN1cnJlbnRUaW1lPWJ9KSx0aGlzLl91cGRhdGVQcm9taXNlcygpfSxwYXVzZTpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZVByb21pc2VzKCksdGhpcy5jdXJyZW50VGltZSYmKHRoaXMuX2hvbGRUaW1lPXRoaXMuY3VycmVudFRpbWUpLHRoaXMuX2FuaW1hdGlvbi5wYXVzZSgpLHRoaXMuX3JlZ2lzdGVyKCksdGhpcy5fZm9yRWFjaENoaWxkKGZ1bmN0aW9uKGEpe2EucGF1c2UoKX0pLHRoaXMuX3BhdXNlZD0hMCx0aGlzLl91cGRhdGVQcm9taXNlcygpfSxmaW5pc2g6ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVQcm9taXNlcygpLHRoaXMuX2FuaW1hdGlvbi5maW5pc2goKSx0aGlzLl9yZWdpc3RlcigpLHRoaXMuX3VwZGF0ZVByb21pc2VzKCl9LGNhbmNlbDpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZVByb21pc2VzKCksdGhpcy5fYW5pbWF0aW9uLmNhbmNlbCgpLHRoaXMuX3JlZ2lzdGVyKCksdGhpcy5fcmVtb3ZlQ2hpbGRBbmltYXRpb25zKCksdGhpcy5fdXBkYXRlUHJvbWlzZXMoKX0scmV2ZXJzZTpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZVByb21pc2VzKCk7dmFyIGE9dGhpcy5jdXJyZW50VGltZTt0aGlzLl9hbmltYXRpb24ucmV2ZXJzZSgpLHRoaXMuX2ZvckVhY2hDaGlsZChmdW5jdGlvbihhKXthLnJldmVyc2UoKX0pLG51bGwhPT1hJiYodGhpcy5jdXJyZW50VGltZT1hKSx0aGlzLl91cGRhdGVQcm9taXNlcygpfSxhZGRFdmVudExpc3RlbmVyOmZ1bmN0aW9uKGEsYil7dmFyIGM9YjsiZnVuY3Rpb24iPT10eXBlb2YgYiYmKGM9ZnVuY3Rpb24oYSl7YS50YXJnZXQ9dGhpcyxiLmNhbGwodGhpcyxhKX0uYmluZCh0aGlzKSxiLl93cmFwcGVyPWMpLHRoaXMuX2FuaW1hdGlvbi5hZGRFdmVudExpc3RlbmVyKGEsYyl9LHJlbW92ZUV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24oYSxiKXt0aGlzLl9hbmltYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGImJmIuX3dyYXBwZXJ8fGIpfSxfcmVtb3ZlQ2hpbGRBbmltYXRpb25zOmZ1bmN0aW9uKCl7Zm9yKDt0aGlzLl9jaGlsZEFuaW1hdGlvbnMubGVuZ3RoOyl0aGlzLl9jaGlsZEFuaW1hdGlvbnMucG9wKCkuY2FuY2VsKCl9LF9mb3JFYWNoQ2hpbGQ6ZnVuY3Rpb24oYil7dmFyIGM9MDtpZih0aGlzLmVmZmVjdC5jaGlsZHJlbiYmdGhpcy5fY2hpbGRBbmltYXRpb25zLmxlbmd0aDx0aGlzLmVmZmVjdC5jaGlsZHJlbi5sZW5ndGgmJnRoaXMuX2NvbnN0cnVjdENoaWxkQW5pbWF0aW9ucygpLHRoaXMuX2NoaWxkQW5pbWF0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGEpe2IuY2FsbCh0aGlzLGEsYyksdGhpcy5lZmZlY3QgaW5zdGFuY2VvZiB3aW5kb3cuU2VxdWVuY2VFZmZlY3QmJihjKz1hLmVmZmVjdC5hY3RpdmVEdXJhdGlvbil9LmJpbmQodGhpcykpLCJwZW5kaW5nIiE9dGhpcy5wbGF5U3RhdGUpe3ZhciBkPXRoaXMuZWZmZWN0Ll90aW1pbmcsZT10aGlzLmN1cnJlbnRUaW1lO251bGwhPT1lJiYoZT1hLmNhbGN1bGF0ZUl0ZXJhdGlvblByb2dyZXNzKGEuY2FsY3VsYXRlQWN0aXZlRHVyYXRpb24oZCksZSxkKSksKG51bGw9PWV8fGlzTmFOKGUpKSYmdGhpcy5fcmVtb3ZlQ2hpbGRBbmltYXRpb25zKCl9fX0sd2luZG93LkFuaW1hdGlvbj1iLkFuaW1hdGlvbn0oYSxjKSxmdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gZChiKXt0aGlzLl9mcmFtZXM9YS5ub3JtYWxpemVLZXlmcmFtZXMoYil9ZnVuY3Rpb24gZSgpe2Zvcih2YXIgYT0hMTtpLmxlbmd0aDspaS5zaGlmdCgpLl91cGRhdGVDaGlsZHJlbigpLGE9ITA7cmV0dXJuIGF9dmFyIGY9ZnVuY3Rpb24oYSl7aWYoYS5fYW5pbWF0aW9uPXZvaWQgMCxhIGluc3RhbmNlb2Ygd2luZG93LlNlcXVlbmNlRWZmZWN0fHxhIGluc3RhbmNlb2Ygd2luZG93Lkdyb3VwRWZmZWN0KWZvcih2YXIgYj0wO2I8YS5jaGlsZHJlbi5sZW5ndGg7YisrKWYoYS5jaGlsZHJlbltiXSl9O2IucmVtb3ZlTXVsdGk9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9YVtjXTtkLl9wYXJlbnQ/KC0xPT1iLmluZGV4T2YoZC5fcGFyZW50KSYmYi5wdXNoKGQuX3BhcmVudCksZC5fcGFyZW50LmNoaWxkcmVuLnNwbGljZShkLl9wYXJlbnQuY2hpbGRyZW4uaW5kZXhPZihkKSwxKSxkLl9wYXJlbnQ9bnVsbCxmKGQpKTpkLl9hbmltYXRpb24mJmQuX2FuaW1hdGlvbi5lZmZlY3Q9PWQmJihkLl9hbmltYXRpb24uY2FuY2VsKCksZC5fYW5pbWF0aW9uLmVmZmVjdD1uZXcgS2V5ZnJhbWVFZmZlY3QobnVsbCxbXSksZC5fYW5pbWF0aW9uLl9jYWxsYmFjayYmKGQuX2FuaW1hdGlvbi5fY2FsbGJhY2suX2FuaW1hdGlvbj1udWxsKSxkLl9hbmltYXRpb24uX3JlYnVpbGRVbmRlcmx5aW5nQW5pbWF0aW9uKCksZihkKSl9Zm9yKGM9MDtjPGIubGVuZ3RoO2MrKyliW2NdLl9yZWJ1aWxkKCl9LGIuS2V5ZnJhbWVFZmZlY3Q9ZnVuY3Rpb24oYixjLGUsZil7cmV0dXJuIHRoaXMudGFyZ2V0PWIsdGhpcy5fcGFyZW50PW51bGwsZT1hLm51bWVyaWNUaW1pbmdUb09iamVjdChlKSx0aGlzLl90aW1pbmdJbnB1dD1hLmNsb25lVGltaW5nSW5wdXQoZSksdGhpcy5fdGltaW5nPWEubm9ybWFsaXplVGltaW5nSW5wdXQoZSksdGhpcy50aW1pbmc9YS5tYWtlVGltaW5nKGUsITEsdGhpcyksdGhpcy50aW1pbmcuX2VmZmVjdD10aGlzLCJmdW5jdGlvbiI9PXR5cGVvZiBjPyhhLmRlcHJlY2F0ZWQoIkN1c3RvbSBLZXlmcmFtZUVmZmVjdCIsIjIwMTUtMDYtMjIiLCJVc2UgS2V5ZnJhbWVFZmZlY3Qub25zYW1wbGUgaW5zdGVhZC4iKSx0aGlzLl9ub3JtYWxpemVkS2V5ZnJhbWVzPWMpOnRoaXMuX25vcm1hbGl6ZWRLZXlmcmFtZXM9bmV3IGQoYyksdGhpcy5fa2V5ZnJhbWVzPWMsdGhpcy5hY3RpdmVEdXJhdGlvbj1hLmNhbGN1bGF0ZUFjdGl2ZUR1cmF0aW9uKHRoaXMuX3RpbWluZyksdGhpcy5faWQ9Zix0aGlzfSxiLktleWZyYW1lRWZmZWN0LnByb3RvdHlwZT17Z2V0RnJhbWVzOmZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuX25vcm1hbGl6ZWRLZXlmcmFtZXM/dGhpcy5fbm9ybWFsaXplZEtleWZyYW1lczp0aGlzLl9ub3JtYWxpemVkS2V5ZnJhbWVzLl9mcmFtZXN9LHNldCBvbnNhbXBsZShhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5nZXRGcmFtZXMoKSl0aHJvdyBuZXcgRXJyb3IoIlNldHRpbmcgb25zYW1wbGUgb24gY3VzdG9tIGVmZmVjdCBLZXlmcmFtZUVmZmVjdCBpcyBub3Qgc3VwcG9ydGVkLiIpO3RoaXMuX29uc2FtcGxlPWEsdGhpcy5fYW5pbWF0aW9uJiZ0aGlzLl9hbmltYXRpb24uX3JlYnVpbGRVbmRlcmx5aW5nQW5pbWF0aW9uKCl9LGdldCBwYXJlbnQoKXtyZXR1cm4gdGhpcy5fcGFyZW50fSxjbG9uZTpmdW5jdGlvbigpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLmdldEZyYW1lcygpKXRocm93IG5ldyBFcnJvcigiQ2xvbmluZyBjdXN0b20gZWZmZWN0cyBpcyBub3Qgc3VwcG9ydGVkLiIpO3ZhciBiPW5ldyBLZXlmcmFtZUVmZmVjdCh0aGlzLnRhcmdldCxbXSxhLmNsb25lVGltaW5nSW5wdXQodGhpcy5fdGltaW5nSW5wdXQpLHRoaXMuX2lkKTtyZXR1cm4gYi5fbm9ybWFsaXplZEtleWZyYW1lcz10aGlzLl9ub3JtYWxpemVkS2V5ZnJhbWVzLGIuX2tleWZyYW1lcz10aGlzLl9rZXlmcmFtZXMsYn0scmVtb3ZlOmZ1bmN0aW9uKCl7Yi5yZW1vdmVNdWx0aShbdGhpc10pfX07dmFyIGc9RWxlbWVudC5wcm90b3R5cGUuYW5pbWF0ZTtFbGVtZW50LnByb3RvdHlwZS5hbmltYXRlPWZ1bmN0aW9uKGEsYyl7dmFyIGQ9IiI7cmV0dXJuIGMmJmMuaWQmJihkPWMuaWQpLGIudGltZWxpbmUuX3BsYXkobmV3IGIuS2V5ZnJhbWVFZmZlY3QodGhpcyxhLGMsZCkpfTt2YXIgaD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJkaXYiKTtiLm5ld1VuZGVybHlpbmdBbmltYXRpb25Gb3JLZXlmcmFtZUVmZmVjdD1mdW5jdGlvbihhKXtpZihhKXt2YXIgYj1hLnRhcmdldHx8aCxjPWEuX2tleWZyYW1lczsiZnVuY3Rpb24iPT10eXBlb2YgYyYmKGM9W10pO3ZhciBkPWEuX3RpbWluZ0lucHV0O2QuaWQ9YS5faWR9ZWxzZSB2YXIgYj1oLGM9W10sZD0wO3JldHVybiBnLmFwcGx5KGIsW2MsZF0pfSxiLmJpbmRBbmltYXRpb25Gb3JLZXlmcmFtZUVmZmVjdD1mdW5jdGlvbihhKXthLmVmZmVjdCYmImZ1bmN0aW9uIj09dHlwZW9mIGEuZWZmZWN0Ll9ub3JtYWxpemVkS2V5ZnJhbWVzJiZiLmJpbmRBbmltYXRpb25Gb3JDdXN0b21FZmZlY3QoYSl9O3ZhciBpPVtdO2IuYXdhaXRTdGFydFRpbWU9ZnVuY3Rpb24oYSl7bnVsbD09PWEuc3RhcnRUaW1lJiZhLl9pc0dyb3VwJiYoMD09aS5sZW5ndGgmJnJlcXVlc3RBbmltYXRpb25GcmFtZShlKSxpLnB1c2goYSkpfTt2YXIgaj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZTtPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCJnZXRDb21wdXRlZFN0eWxlIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6ZnVuY3Rpb24oKXtiLnRpbWVsaW5lLl91cGRhdGVBbmltYXRpb25zUHJvbWlzZXMoKTt2YXIgYT1qLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZSgpJiYoYT1qLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksYi50aW1lbGluZS5fdXBkYXRlQW5pbWF0aW9uc1Byb21pc2VzKCksYX19KSx3aW5kb3cuS2V5ZnJhbWVFZmZlY3Q9Yi5LZXlmcmFtZUVmZmVjdCx3aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuZ2V0QW5pbWF0aW9ucz1mdW5jdGlvbigpe3JldHVybiBkb2N1bWVudC50aW1lbGluZS5nZXRBbmltYXRpb25zKCkuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT09YS5lZmZlY3QmJmEuZWZmZWN0LnRhcmdldD09dGhpc30uYmluZCh0aGlzKSl9fShhLGMpLGZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBkKGEpe2EuX3JlZ2lzdGVyZWR8fChhLl9yZWdpc3RlcmVkPSEwLGcucHVzaChhKSxofHwoaD0hMCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZSkpKX1mdW5jdGlvbiBlKGEpe3ZhciBiPWc7Zz1bXSxiLnNvcnQoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5fc2VxdWVuY2VOdW1iZXItYi5fc2VxdWVuY2VOdW1iZXJ9KSxiPWIuZmlsdGVyKGZ1bmN0aW9uKGEpe2EoKTt2YXIgYj1hLl9hbmltYXRpb24/YS5fYW5pbWF0aW9uLnBsYXlTdGF0ZToiaWRsZSI7cmV0dXJuInJ1bm5pbmciIT1iJiYicGVuZGluZyIhPWImJihhLl9yZWdpc3RlcmVkPSExKSxhLl9yZWdpc3RlcmVkfSksZy5wdXNoLmFwcGx5KGcsYiksZy5sZW5ndGg/KGg9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpKTpoPSExfXZhciBmPShkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJkaXYiKSwwKTtiLmJpbmRBbmltYXRpb25Gb3JDdXN0b21FZmZlY3Q9ZnVuY3Rpb24oYil7dmFyIGMsZT1iLmVmZmVjdC50YXJnZXQsZz0iZnVuY3Rpb24iPT10eXBlb2YgYi5lZmZlY3QuZ2V0RnJhbWVzKCk7Yz1nP2IuZWZmZWN0LmdldEZyYW1lcygpOmIuZWZmZWN0Ll9vbnNhbXBsZTt2YXIgaD1iLmVmZmVjdC50aW1pbmcsaT1udWxsO2g9YS5ub3JtYWxpemVUaW1pbmdJbnB1dChoKTt2YXIgaj1mdW5jdGlvbigpe3ZhciBkPWouX2FuaW1hdGlvbj9qLl9hbmltYXRpb24uY3VycmVudFRpbWU6bnVsbDtudWxsIT09ZCYmKGQ9YS5jYWxjdWxhdGVJdGVyYXRpb25Qcm9ncmVzcyhhLmNhbGN1bGF0ZUFjdGl2ZUR1cmF0aW9uKGgpLGQsaCksaXNOYU4oZCkmJihkPW51bGwpKSxkIT09aSYmKGc/YyhkLGUsYi5lZmZlY3QpOmMoZCxiLmVmZmVjdCxiLmVmZmVjdC5fYW5pbWF0aW9uKSksaT1kfTtqLl9hbmltYXRpb249YixqLl9yZWdpc3RlcmVkPSExLGouX3NlcXVlbmNlTnVtYmVyPWYrKyxiLl9jYWxsYmFjaz1qLGQoail9O3ZhciBnPVtdLGg9ITE7Yi5BbmltYXRpb24ucHJvdG90eXBlLl9yZWdpc3Rlcj1mdW5jdGlvbigpe3RoaXMuX2NhbGxiYWNrJiZkKHRoaXMuX2NhbGxiYWNrKX19KGEsYyksZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoYSl7cmV0dXJuIGEuX3RpbWluZy5kZWxheSthLmFjdGl2ZUR1cmF0aW9uK2EuX3RpbWluZy5lbmREZWxheX1mdW5jdGlvbiBlKGIsYyxkKXt0aGlzLl9pZD1kLHRoaXMuX3BhcmVudD1udWxsLHRoaXMuY2hpbGRyZW49Ynx8W10sdGhpcy5fcmVwYXJlbnQodGhpcy5jaGlsZHJlbiksYz1hLm51bWVyaWNUaW1pbmdUb09iamVjdChjKSx0aGlzLl90aW1pbmdJbnB1dD1hLmNsb25lVGltaW5nSW5wdXQoYyksdGhpcy5fdGltaW5nPWEubm9ybWFsaXplVGltaW5nSW5wdXQoYywhMCksdGhpcy50aW1pbmc9YS5tYWtlVGltaW5nKGMsITAsdGhpcyksdGhpcy50aW1pbmcuX2VmZmVjdD10aGlzLCJhdXRvIj09PXRoaXMuX3RpbWluZy5kdXJhdGlvbiYmKHRoaXMuX3RpbWluZy5kdXJhdGlvbj10aGlzLmFjdGl2ZUR1cmF0aW9uKX13aW5kb3cuU2VxdWVuY2VFZmZlY3Q9ZnVuY3Rpb24oKXtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sd2luZG93Lkdyb3VwRWZmZWN0PWZ1bmN0aW9uKCl7ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGUucHJvdG90eXBlPXtfaXNBbmNlc3RvcjpmdW5jdGlvbihhKXtmb3IodmFyIGI9dGhpcztudWxsIT09Yjspe2lmKGI9PWEpcmV0dXJuITA7Yj1iLl9wYXJlbnR9cmV0dXJuITF9LF9yZWJ1aWxkOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXM7YTspImF1dG8iPT09YS50aW1pbmcuZHVyYXRpb24mJihhLl90aW1pbmcuZHVyYXRpb249YS5hY3RpdmVEdXJhdGlvbiksYT1hLl9wYXJlbnQ7dGhpcy5fYW5pbWF0aW9uJiZ0aGlzLl9hbmltYXRpb24uX3JlYnVpbGRVbmRlcmx5aW5nQW5pbWF0aW9uKCl9LF9yZXBhcmVudDpmdW5jdGlvbihhKXtiLnJlbW92ZU11bHRpKGEpO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWFbY10uX3BhcmVudD10aGlzfSxfcHV0Q2hpbGQ6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9Yj8iQ2Fubm90IGFwcGVuZCBhbiBhbmNlc3RvciBvciBzZWxmIjoiQ2Fubm90IHByZXBlbmQgYW4gYW5jZXN0b3Igb3Igc2VsZiIsZD0wO2Q8YS5sZW5ndGg7ZCsrKWlmKHRoaXMuX2lzQW5jZXN0b3IoYVtkXSkpdGhyb3d7dHlwZTpET01FeGNlcHRpb24uSElFUkFSQ0hZX1JFUVVFU1RfRVJSLG5hbWU6IkhpZXJhcmNoeVJlcXVlc3RFcnJvciIsbWVzc2FnZTpjfTtmb3IodmFyIGQ9MDtkPGEubGVuZ3RoO2QrKyliP3RoaXMuY2hpbGRyZW4ucHVzaChhW2RdKTp0aGlzLmNoaWxkcmVuLnVuc2hpZnQoYVtkXSk7dGhpcy5fcmVwYXJlbnQoYSksdGhpcy5fcmVidWlsZCgpfSxhcHBlbmQ6ZnVuY3Rpb24oKXt0aGlzLl9wdXRDaGlsZChhcmd1bWVudHMsITApfSxwcmVwZW5kOmZ1bmN0aW9uKCl7dGhpcy5fcHV0Q2hpbGQoYXJndW1lbnRzLCExKX0sZ2V0IHBhcmVudCgpe3JldHVybiB0aGlzLl9wYXJlbnR9LGdldCBmaXJzdENoaWxkKCl7cmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoP3RoaXMuY2hpbGRyZW5bMF06bnVsbH0sZ2V0IGxhc3RDaGlsZCgpe3JldHVybiB0aGlzLmNoaWxkcmVuLmxlbmd0aD90aGlzLmNoaWxkcmVuW3RoaXMuY2hpbGRyZW4ubGVuZ3RoLTFdOm51bGx9LGNsb25lOmZ1bmN0aW9uKCl7Zm9yKHZhciBiPWEuY2xvbmVUaW1pbmdJbnB1dCh0aGlzLl90aW1pbmdJbnB1dCksYz1bXSxkPTA7ZDx0aGlzLmNoaWxkcmVuLmxlbmd0aDtkKyspYy5wdXNoKHRoaXMuY2hpbGRyZW5bZF0uY2xvbmUoKSk7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBHcm91cEVmZmVjdD9uZXcgR3JvdXBFZmZlY3QoYyxiKTpuZXcgU2VxdWVuY2VFZmZlY3QoYyxiKX0scmVtb3ZlOmZ1bmN0aW9uKCl7Yi5yZW1vdmVNdWx0aShbdGhpc10pfX0sd2luZG93LlNlcXVlbmNlRWZmZWN0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSxPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LlNlcXVlbmNlRWZmZWN0LnByb3RvdHlwZSwiYWN0aXZlRHVyYXRpb24iLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgYT0wO3JldHVybiB0aGlzLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oYil7YSs9ZChiKX0pLE1hdGgubWF4KGEsMCl9fSksd2luZG93Lkdyb3VwRWZmZWN0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSxPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93Lkdyb3VwRWZmZWN0LnByb3RvdHlwZSwiYWN0aXZlRHVyYXRpb24iLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgYT0wO3JldHVybiB0aGlzLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oYil7YT1NYXRoLm1heChhLGQoYikpfSksYX19KSxiLm5ld1VuZGVybHlpbmdBbmltYXRpb25Gb3JHcm91cD1mdW5jdGlvbihjKXt2YXIgZCxlPW51bGwsZj1mdW5jdGlvbihiKXt2YXIgYz1kLl93cmFwcGVyO2lmKGMmJiJwZW5kaW5nIiE9Yy5wbGF5U3RhdGUmJmMuZWZmZWN0KXJldHVybiBudWxsPT1iP3ZvaWQgYy5fcmVtb3ZlQ2hpbGRBbmltYXRpb25zKCk6MD09YiYmYy5wbGF5YmFja1JhdGU8MCYmKGV8fChlPWEubm9ybWFsaXplVGltaW5nSW5wdXQoYy5lZmZlY3QudGltaW5nKSksYj1hLmNhbGN1bGF0ZUl0ZXJhdGlvblByb2dyZXNzKGEuY2FsY3VsYXRlQWN0aXZlRHVyYXRpb24oZSksLTEsZSksaXNOYU4oYil8fG51bGw9PWIpPyhjLl9mb3JFYWNoQ2hpbGQoZnVuY3Rpb24oYSl7YS5jdXJyZW50VGltZT0tMX0pLHZvaWQgYy5fcmVtb3ZlQ2hpbGRBbmltYXRpb25zKCkpOnZvaWQgMH0sZz1uZXcgS2V5ZnJhbWVFZmZlY3QobnVsbCxbXSxjLl90aW1pbmcsYy5faWQpO3JldHVybiBnLm9uc2FtcGxlPWYsZD1iLnRpbWVsaW5lLl9wbGF5KGcpfSxiLmJpbmRBbmltYXRpb25Gb3JHcm91cD1mdW5jdGlvbihhKXthLl9hbmltYXRpb24uX3dyYXBwZXI9YSxhLl9pc0dyb3VwPSEwLGIuYXdhaXRTdGFydFRpbWUoYSksYS5fY29uc3RydWN0Q2hpbGRBbmltYXRpb25zKCksYS5fc2V0RXh0ZXJuYWxBbmltYXRpb24oYSl9LGIuZ3JvdXBDaGlsZER1cmF0aW9uPWR9KGEsYyl9KCk7CgohKGZ1bmN0aW9uKCl7Ci8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uCgogICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuCgogICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEgKICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWQogICAgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULAogICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NCiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUgogICAgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUgogICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4KICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCmZ1bmN0aW9uIHQodCxlLG4saSl7dmFyIHIsbz1hcmd1bWVudHMubGVuZ3RoLGE9bzwzP2U6bnVsbD09PWk/aT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsbik6aTtpZigib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3QmJiJmdW5jdGlvbiI9PXR5cGVvZiBSZWZsZWN0LmRlY29yYXRlKWE9UmVmbGVjdC5kZWNvcmF0ZSh0LGUsbixpKTtlbHNlIGZvcih2YXIgcz10Lmxlbmd0aC0xO3M+PTA7cy0tKShyPXRbc10pJiYoYT0obzwzP3IoYSk6bz4zP3IoZSxuLGEpOnIoZSxuKSl8fGEpO3JldHVybiBvPjMmJmEmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4sYSksYX1mdW5jdGlvbiBlKHQsZSl7aWYoIm9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiYiZnVuY3Rpb24iPT10eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSlyZXR1cm4gUmVmbGVjdC5tZXRhZGF0YSh0LGUpfWZ1bmN0aW9uIG4odCxlLG4saSl7cmV0dXJuIG5ldyhufHwobj1Qcm9taXNlKSkoKGZ1bmN0aW9uKHIsbyl7ZnVuY3Rpb24gYSh0KXt0cnl7bChpLm5leHQodCkpfWNhdGNoKHQpe28odCl9fWZ1bmN0aW9uIHModCl7dHJ5e2woaS50aHJvdyh0KSl9Y2F0Y2godCl7byh0KX19ZnVuY3Rpb24gbCh0KXt0LmRvbmU/cih0LnZhbHVlKTooZnVuY3Rpb24gZSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIG4/dDpuZXcgbigoZnVuY3Rpb24oZSl7ZSh0KX0pKX0pKHQudmFsdWUpLnRoZW4oYSxzKX1sKChpPWkuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAxNiBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICAgKiBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kCiAgICAgKiBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5CiAgICAgKiBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5CiAgICAgKiBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQCiAgICAgKiByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAgKi9mdW5jdGlvbiBpKHQpe3JldHVybiBlPT57aWYodClpZihlLmhhc093blByb3BlcnR5KCJpcyIpKXtpZih0IT09ZS5pcyl0aHJvdyBuZXcgRXJyb3IoYGN1c3RvbSBlbGVtZW50IHRhZyBuYW1lcyBkbyBub3QgbWF0Y2g6ICgke3R9ICE9PSAke2UuaXN9KWApfWVsc2UgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImlzIix7dmFsdWU6dH0pO3dpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoZS5pcyxlKX19ZnVuY3Rpb24gcih0LGUsbil7dC5jb25zdHJ1Y3Rvci5oYXNPd25Qcm9wZXJ0eSgicHJvcGVydGllcyIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5jb25zdHJ1Y3RvciwicHJvcGVydGllcyIse3ZhbHVlOnt9fSksdC5jb25zdHJ1Y3Rvci5wcm9wZXJ0aWVzW2VdPU9iamVjdC5hc3NpZ24oe30sdC5jb25zdHJ1Y3Rvci5wcm9wZXJ0aWVzW2VdLG4pfWZ1bmN0aW9uIG8odCl7cmV0dXJuKGUsbik9PntyKGUsbix0KX19ZnVuY3Rpb24gYSguLi50KXtyZXR1cm4oZSxuKT0+e2UuY29uc3RydWN0b3IuaGFzT3duUHJvcGVydHkoIm9ic2VydmVycyIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5jb25zdHJ1Y3Rvciwib2JzZXJ2ZXJzIix7dmFsdWU6W119KSxlLmNvbnN0cnVjdG9yLm9ic2VydmVycy5wdXNoKGAke259KCR7dC5qb2luKCIsIil9KWApfX1mdW5jdGlvbiBzKHQsLi4uZSl7cmV0dXJuKG4saSxvKT0+e2NvbnN0IGE9YF9fY29tcHV0ZSR7aX1gO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGEse3ZhbHVlOm8uZ2V0fSksby5nZXQ9dm9pZCAwO3IobixpLHtjb21wdXRlZDpgJHthfSgke1t0LC4uLmVdLmpvaW4oIiwiKX0pYH0pfX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi93aW5kb3cuSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eT1mdW5jdGlvbih0LGUpe3JldHVybiB0fTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KbGV0IGwsYyx1PS8odXJsXCgpKFteKV0qKShcKSkvZyxoPS8oXlwvW15cL10pfCheIyl8KF5bXHctXGRdKjopLztmdW5jdGlvbiBkKHQsZSl7aWYodCYmaC50ZXN0KHQpKXJldHVybiB0O2lmKCIvLyI9PT10KXJldHVybiB0O2lmKHZvaWQgMD09PWwpe2w9ITE7dHJ5e2NvbnN0IHQ9bmV3IFVSTCgiYiIsImh0dHA6Ly9hIik7dC5wYXRobmFtZT0iYyUyMGQiLGw9Imh0dHA6Ly9hL2MlMjBkIj09PXQuaHJlZn1jYXRjaCh0KXt9fWlmKGV8fChlPWRvY3VtZW50LmJhc2VVUkl8fHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxsKXRyeXtyZXR1cm4gbmV3IFVSTCh0LGUpLmhyZWZ9Y2F0Y2goZSl7cmV0dXJuIHR9cmV0dXJuIGN8fChjPWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgidGVtcCIpLGMuYmFzZT1jLmNyZWF0ZUVsZW1lbnQoImJhc2UiKSxjLmhlYWQuYXBwZW5kQ2hpbGQoYy5iYXNlKSxjLmFuY2hvcj1jLmNyZWF0ZUVsZW1lbnQoImEiKSxjLmJvZHkuYXBwZW5kQ2hpbGQoYy5hbmNob3IpKSxjLmJhc2UuaHJlZj1lLGMuYW5jaG9yLmhyZWY9dCxjLmFuY2hvci5ocmVmfHx0fWZ1bmN0aW9uIHAodCxlKXtyZXR1cm4gdC5yZXBsYWNlKHUsKGZ1bmN0aW9uKHQsbixpLHIpe3JldHVybiBuKyInIitkKGkucmVwbGFjZSgvWyInXS9nLCIiKSxlKSsiJyIrcn0pKX1mdW5jdGlvbiBmKHQpe3JldHVybiB0LnN1YnN0cmluZygwLHQubGFzdEluZGV4T2YoIi8iKSsxKX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9jb25zdCBtPSF3aW5kb3cuU2hhZHlET018fCF3aW5kb3cuU2hhZHlET00uaW5Vc2U7Qm9vbGVhbighd2luZG93LlNoYWR5Q1NTfHx3aW5kb3cuU2hhZHlDU1MubmF0aXZlQ3NzKTtjb25zdCBnPW0mJiJhZG9wdGVkU3R5bGVTaGVldHMiaW4gRG9jdW1lbnQucHJvdG90eXBlJiYicmVwbGFjZVN5bmMiaW4gQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUmJigoKT0+e3RyeXtjb25zdCB0PW5ldyBDU1NTdHlsZVNoZWV0O3QucmVwbGFjZVN5bmMoIiIpO2NvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIGUuYXR0YWNoU2hhZG93KHttb2RlOiJvcGVuIn0pLGUuc2hhZG93Um9vdC5hZG9wdGVkU3R5bGVTaGVldHM9W3RdLGUuc2hhZG93Um9vdC5hZG9wdGVkU3R5bGVTaGVldHNbMF09PT10fWNhdGNoKHQpe3JldHVybiExfX0pKCk7bGV0IF89d2luZG93LlBvbHltZXImJndpbmRvdy5Qb2x5bWVyLnJvb3RQYXRofHxmKGRvY3VtZW50LmJhc2VVUkl8fHdpbmRvdy5sb2NhdGlvbi5ocmVmKSx5PXdpbmRvdy5Qb2x5bWVyJiZ3aW5kb3cuUG9seW1lci5zYW5pdGl6ZURPTVZhbHVlfHx2b2lkIDAsdj13aW5kb3cuUG9seW1lciYmd2luZG93LlBvbHltZXIuc2V0UGFzc2l2ZVRvdWNoR2VzdHVyZXN8fCExLGI9d2luZG93LlBvbHltZXImJndpbmRvdy5Qb2x5bWVyLnN0cmljdFRlbXBsYXRlUG9saWN5fHwhMSx4PXdpbmRvdy5Qb2x5bWVyJiZ3aW5kb3cuUG9seW1lci5hbGxvd1RlbXBsYXRlRnJvbURvbU1vZHVsZXx8ITEsdz13aW5kb3cuUG9seW1lciYmd2luZG93LlBvbHltZXIubGVnYWN5T3B0aW1pemF0aW9uc3x8ITEsUz13aW5kb3cuUG9seW1lciYmd2luZG93LlBvbHltZXIubGVnYWN5V2FybmluZ3N8fCExLE09d2luZG93LlBvbHltZXImJndpbmRvdy5Qb2x5bWVyLnN5bmNJbml0aWFsUmVuZGVyfHwhMSxFPXdpbmRvdy5Qb2x5bWVyJiZ3aW5kb3cuUG9seW1lci5sZWdhY3lVbmRlZmluZWR8fCExLFQ9d2luZG93LlBvbHltZXImJndpbmRvdy5Qb2x5bWVyLm9yZGVyZWRDb21wdXRlZHx8ITEsQz13aW5kb3cuUG9seW1lciYmd2luZG93LlBvbHltZXIucmVtb3ZlTmVzdGVkVGVtcGxhdGVzfHwhMSxBPXdpbmRvdy5Qb2x5bWVyJiZ3aW5kb3cuUG9seW1lci5mYXN0RG9tSWZ8fCExLGs9d2luZG93LlBvbHltZXImJndpbmRvdy5Qb2x5bWVyLnN1cHByZXNzVGVtcGxhdGVOb3RpZmljYXRpb25zfHwhMSxMPXdpbmRvdy5Qb2x5bWVyJiZ3aW5kb3cuUG9seW1lci5sZWdhY3lOb09ic2VydmVkQXR0cmlidXRlc3x8ITEsUD13aW5kb3cuUG9seW1lciYmd2luZG93LlBvbHltZXIudXNlQWRvcHRlZFN0eWxlU2hlZXRzV2l0aEJ1aWx0Q1NTfHwhMSxOPTA7Y29uc3QgST1mdW5jdGlvbih0KXtsZXQgZT10Ll9fbWl4aW5BcHBsaWNhdGlvbnM7ZXx8KGU9bmV3IFdlYWtNYXAsdC5fX21peGluQXBwbGljYXRpb25zPWUpO2xldCBuPU4rKztyZXR1cm4gZnVuY3Rpb24gaShyKXtsZXQgbz1yLl9fbWl4aW5TZXQ7aWYobyYmb1tuXSlyZXR1cm4gcjtsZXQgYT1lLHM9YS5nZXQocik7aWYoIXMpe3M9dChyKSxhLnNldChyLHMpO2xldCBlPU9iamVjdC5jcmVhdGUocy5fX21peGluU2V0fHxvfHxudWxsKTtlW25dPSEwLHMuX19taXhpblNldD1lfXJldHVybiBzfX07Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovbGV0IFI9e30sTz17fTtmdW5jdGlvbiB6KHQsZSl7Ult0XT1PW3QudG9Mb3dlckNhc2UoKV09ZX1mdW5jdGlvbiBEKHQpe3JldHVybiBSW3RdfHxPW3QudG9Mb3dlckNhc2UoKV19Y2xhc3MgQiBleHRlbmRzIEhUTUxFbGVtZW50e3N0YXRpYyBnZXQgb2JzZXJ2ZWRBdHRyaWJ1dGVzKCl7cmV0dXJuWyJpZCJdfXN0YXRpYyBpbXBvcnQodCxlKXtpZih0KXtsZXQgbj1EKHQpO3JldHVybiBuJiZlP24ucXVlcnlTZWxlY3RvcihlKTpufXJldHVybiBudWxsfWF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0LGUsbixpKXtlIT09biYmdGhpcy5yZWdpc3RlcigpfWdldCBhc3NldHBhdGgoKXtpZighdGhpcy5fX2Fzc2V0cGF0aCl7Y29uc3QgdD13aW5kb3cuSFRNTEltcG9ydHMmJkhUTUxJbXBvcnRzLmltcG9ydEZvckVsZW1lbnQ/SFRNTEltcG9ydHMuaW1wb3J0Rm9yRWxlbWVudCh0aGlzKXx8ZG9jdW1lbnQ6dGhpcy5vd25lckRvY3VtZW50LGU9ZCh0aGlzLmdldEF0dHJpYnV0ZSgiYXNzZXRwYXRoIil8fCIiLHQuYmFzZVVSSSk7dGhpcy5fX2Fzc2V0cGF0aD1mKGUpfXJldHVybiB0aGlzLl9fYXNzZXRwYXRofXJlZ2lzdGVyKHQpe2lmKHQ9dHx8dGhpcy5pZCl7aWYoYiYmdm9pZCAwIT09RCh0KSl0aHJvdyB6KHQsbnVsbCksbmV3IEVycm9yKGBzdHJpY3RUZW1wbGF0ZVBvbGljeTogZG9tLW1vZHVsZSAke3R9IHJlLXJlZ2lzdGVyZWRgKTt0aGlzLmlkPXQseih0LHRoaXMpLChmdW5jdGlvbiBlKHQpe3QucXVlcnlTZWxlY3Rvcigic3R5bGUiKSYmY29uc29sZS53YXJuKCJkb20tbW9kdWxlICVzIGhhcyBzdHlsZSBvdXRzaWRlIHRlbXBsYXRlIix0LmlkKX0pKHRoaXMpfX19Qi5wcm90b3R5cGUubW9kdWxlcz1SLGN1c3RvbUVsZW1lbnRzLmRlZmluZSgiZG9tLW1vZHVsZSIsQik7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IEg9InNoYWR5LXVuc2NvcGVkIjtmdW5jdGlvbiBGKHQpe3JldHVybiBCLmltcG9ydCh0KX1mdW5jdGlvbiBWKHQpe2NvbnN0IGU9cCgodC5ib2R5P3QuYm9keTp0KS50ZXh0Q29udGVudCx0LmJhc2VVUkkpLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtyZXR1cm4gbi50ZXh0Q29udGVudD1lLG59ZnVuY3Rpb24gVSh0KXtjb25zdCBlPXQudHJpbSgpLnNwbGl0KC9ccysvKSxuPVtdO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKW4ucHVzaCguLi5qKGVbdF0pKTtyZXR1cm4gbn1mdW5jdGlvbiBqKHQpe2NvbnN0IGU9Rih0KTtpZighZSlyZXR1cm4gY29uc29sZS53YXJuKCJDb3VsZCBub3QgZmluZCBzdHlsZSBkYXRhIGluIG1vZHVsZSBuYW1lZCIsdCksW107aWYodm9pZCAwPT09ZS5fc3R5bGVzKXtjb25zdCB0PVtdO3QucHVzaCguLi5XKGUpKTtjb25zdCBuPWUucXVlcnlTZWxlY3RvcigidGVtcGxhdGUiKTtuJiZ0LnB1c2goLi4uRyhuLGUuYXNzZXRwYXRoKSksZS5fc3R5bGVzPXR9cmV0dXJuIGUuX3N0eWxlc31mdW5jdGlvbiBHKHQsZSl7aWYoIXQuX3N0eWxlcyl7Y29uc3Qgbj1bXSxpPXQuY29udGVudC5xdWVyeVNlbGVjdG9yQWxsKCJzdHlsZSIpO2ZvcihsZXQgdD0wO3Q8aS5sZW5ndGg7dCsrKXtsZXQgcj1pW3RdLG89ci5nZXRBdHRyaWJ1dGUoImluY2x1ZGUiKTtvJiZuLnB1c2goLi4uVShvKS5maWx0ZXIoKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbi5pbmRleE9mKHQpPT09ZX0pKSksZSYmKHIudGV4dENvbnRlbnQ9cChyLnRleHRDb250ZW50LGUpKSxuLnB1c2gocil9dC5fc3R5bGVzPW59cmV0dXJuIHQuX3N0eWxlc31mdW5jdGlvbiBXKHQpe2NvbnN0IGU9W10sbj10LnF1ZXJ5U2VsZWN0b3JBbGwoImxpbmtbcmVsPWltcG9ydF1bdHlwZX49Y3NzXSIpO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKXtsZXQgaT1uW3RdO2lmKGkuaW1wb3J0KXtjb25zdCB0PWkuaW1wb3J0LG49aS5oYXNBdHRyaWJ1dGUoSCk7aWYobiYmIXQuX3Vuc2NvcGVkU3R5bGUpe2NvbnN0IGU9Vih0KTtlLnNldEF0dHJpYnV0ZShILCIiKSx0Ll91bnNjb3BlZFN0eWxlPWV9ZWxzZSB0Ll9zdHlsZXx8KHQuX3N0eWxlPVYodCkpO2UucHVzaChuP3QuX3Vuc2NvcGVkU3R5bGU6dC5fc3R5bGUpfX1yZXR1cm4gZX1mdW5jdGlvbiBxKHQpe2xldCBlPUYodCk7aWYoZSYmdm9pZCAwPT09ZS5fY3NzVGV4dCl7bGV0IHQ9KGZ1bmN0aW9uIG4odCl7bGV0IGU9IiIsbj1XKHQpO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKWUrPW5bdF0udGV4dENvbnRlbnQ7cmV0dXJuIGV9Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovKShlKSxuPWUucXVlcnlTZWxlY3RvcigidGVtcGxhdGUiKTtuJiYodCs9KGZ1bmN0aW9uIGkodCxlKXtsZXQgbj0iIjtjb25zdCBpPUcodCxlKTtmb3IobGV0IHQ9MDt0PGkubGVuZ3RoO3QrKyl7bGV0IGU9aVt0XTtlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKSxuKz1lLnRleHRDb250ZW50fXJldHVybiBufSkobixlLmFzc2V0cGF0aCkpLGUuX2Nzc1RleHQ9dHx8bnVsbH1yZXR1cm4gZXx8Y29uc29sZS53YXJuKCJDb3VsZCBub3QgZmluZCBzdHlsZSBkYXRhIGluIG1vZHVsZSBuYW1lZCIsdCksZSYmZS5fY3NzVGV4dHx8IiJ9Y29uc3QgWT13aW5kb3cuU2hhZHlET00mJndpbmRvdy5TaGFkeURPTS5ub1BhdGNoJiZ3aW5kb3cuU2hhZHlET00ud3JhcD93aW5kb3cuU2hhZHlET00ud3JhcDp3aW5kb3cuU2hhZHlET00/dD0+U2hhZHlET00ucGF0Y2godCk6dD0+dDsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9mdW5jdGlvbiBYKHQpe3JldHVybiB0LmluZGV4T2YoIi4iKT49MH1mdW5jdGlvbiAkKHQpe2xldCBlPXQuaW5kZXhPZigiLiIpO3JldHVybi0xPT09ZT90OnQuc2xpY2UoMCxlKX1mdW5jdGlvbiBLKHQsZSl7cmV0dXJuIDA9PT10LmluZGV4T2YoZSsiLiIpfWZ1bmN0aW9uIFoodCxlKXtyZXR1cm4gMD09PWUuaW5kZXhPZih0KyIuIil9ZnVuY3Rpb24gSih0LGUsbil7cmV0dXJuIGUrbi5zbGljZSh0Lmxlbmd0aCl9ZnVuY3Rpb24gUSh0LGUpe3JldHVybiB0PT09ZXx8Syh0LGUpfHxaKHQsZSl9ZnVuY3Rpb24gdHQodCl7aWYoQXJyYXkuaXNBcnJheSh0KSl7bGV0IGU9W107Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2xldCBpPXRbbl0udG9TdHJpbmcoKS5zcGxpdCgiLiIpO2ZvcihsZXQgdD0wO3Q8aS5sZW5ndGg7dCsrKWUucHVzaChpW3RdKX1yZXR1cm4gZS5qb2luKCIuIil9cmV0dXJuIHR9ZnVuY3Rpb24gZXQodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dHQodCkuc3BsaXQoIi4iKTp0LnRvU3RyaW5nKCkuc3BsaXQoIi4iKX1mdW5jdGlvbiBudCh0LGUsbil7bGV0IGk9dCxyPWV0KGUpO2ZvcihsZXQgdD0wO3Q8ci5sZW5ndGg7dCsrKXtpZighaSlyZXR1cm47aT1pW3JbdF1dfXJldHVybiBuJiYobi5wYXRoPXIuam9pbigiLiIpKSxpfWZ1bmN0aW9uIGl0KHQsZSxuKXtsZXQgaT10LHI9ZXQoZSksbz1yW3IubGVuZ3RoLTFdO2lmKHIubGVuZ3RoPjEpe2ZvcihsZXQgdD0wO3Q8ci5sZW5ndGgtMTt0Kyspe2lmKGk9aVtyW3RdXSwhaSlyZXR1cm59aVtvXT1ufWVsc2UgaVtlXT1uO3JldHVybiByLmpvaW4oIi4iKX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9jb25zdCBydD17fSxvdD0vLVthLXpdL2csYXQ9LyhbQS1aXSkvZztmdW5jdGlvbiBzdCh0KXtyZXR1cm4gcnRbdF18fChydFt0XT10LmluZGV4T2YoIi0iKTwwP3Q6dC5yZXBsYWNlKG90LCh0PT50WzFdLnRvVXBwZXJDYXNlKCkpKSl9ZnVuY3Rpb24gbHQodCl7cmV0dXJuIHJ0W3RdfHwocnRbdF09dC5yZXBsYWNlKGF0LCItJDEiKS50b0xvd2VyQ2FzZSgpKX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9sZXQgY3Q9MCx1dD0wLGh0PVtdLGR0PTAscHQ9ITEsZnQ9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpO25ldyB3aW5kb3cuTXV0YXRpb25PYnNlcnZlcigoZnVuY3Rpb24gbXQoKXtwdD0hMTtjb25zdCB0PWh0Lmxlbmd0aDtmb3IobGV0IGU9MDtlPHQ7ZSsrKXtsZXQgdD1odFtlXTtpZih0KXRyeXt0KCl9Y2F0Y2godCl7c2V0VGltZW91dCgoKCk9Pnt0aHJvdyB0fSkpfX1odC5zcGxpY2UoMCx0KSx1dCs9dH0pKS5vYnNlcnZlKGZ0LHtjaGFyYWN0ZXJEYXRhOiEwfSk7Y29uc3QgZ3Q9e2FmdGVyOnQ9Pih7cnVuOmU9PndpbmRvdy5zZXRUaW1lb3V0KGUsdCksY2FuY2VsKHQpe3dpbmRvdy5jbGVhclRpbWVvdXQodCl9fSkscnVuOih0LGUpPT53aW5kb3cuc2V0VGltZW91dCh0LGUpLGNhbmNlbCh0KXt3aW5kb3cuY2xlYXJUaW1lb3V0KHQpfX0sX3Q9e3J1bjp0PT53aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHQpLGNhbmNlbCh0KXt3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUodCl9fSx5dD17cnVuOnQ9PndpbmRvdy5yZXF1ZXN0SWRsZUNhbGxiYWNrP3dpbmRvdy5yZXF1ZXN0SWRsZUNhbGxiYWNrKHQpOndpbmRvdy5zZXRUaW1lb3V0KHQsMTYpLGNhbmNlbCh0KXt3aW5kb3cuY2FuY2VsSWRsZUNhbGxiYWNrP3dpbmRvdy5jYW5jZWxJZGxlQ2FsbGJhY2sodCk6d2luZG93LmNsZWFyVGltZW91dCh0KX19LHZ0PXtydW46dD0+KHB0fHwocHQ9ITAsZnQudGV4dENvbnRlbnQ9ZHQrKyksaHQucHVzaCh0KSxjdCsrKSxjYW5jZWwodCl7Y29uc3QgZT10LXV0O2lmKGU+PTApe2lmKCFodFtlXSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgYXN5bmMgaGFuZGxlOiAiK3QpO2h0W2VdPW51bGx9fX0sYnQ9dnQseHQ9SSgodD0+Y2xhc3MgZXh0ZW5kcyB0e3N0YXRpYyBjcmVhdGVQcm9wZXJ0aWVzKHQpe2NvbnN0IGU9dGhpcy5wcm90b3R5cGU7Zm9yKGxldCBuIGluIHQpbiBpbiBlfHxlLl9jcmVhdGVQcm9wZXJ0eUFjY2Vzc29yKG4pfXN0YXRpYyBhdHRyaWJ1dGVOYW1lRm9yUHJvcGVydHkodCl7cmV0dXJuIHQudG9Mb3dlckNhc2UoKX1zdGF0aWMgdHlwZUZvclByb3BlcnR5KHQpe31fY3JlYXRlUHJvcGVydHlBY2Nlc3Nvcih0LGUpe3RoaXMuX2FkZFByb3BlcnR5VG9BdHRyaWJ1dGVNYXAodCksdGhpcy5oYXNPd25Qcm9wZXJ0eShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJfX2RhdGFIYXNBY2Nlc3NvciIsdGhpcykpfHwodGhpcy5fX2RhdGFIYXNBY2Nlc3Nvcj1PYmplY3QuYXNzaWduKHt9LHRoaXMuX19kYXRhSGFzQWNjZXNzb3IpKSx0aGlzLl9fZGF0YUhhc0FjY2Vzc29yW3RdfHwodGhpcy5fX2RhdGFIYXNBY2Nlc3Nvclt0XT0hMCx0aGlzLl9kZWZpbmVQcm9wZXJ0eUFjY2Vzc29yKHQsZSkpfV9hZGRQcm9wZXJ0eVRvQXR0cmlidXRlTWFwKHQpe3RoaXMuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiX19kYXRhQXR0cmlidXRlcyIsdGhpcykpfHwodGhpcy5fX2RhdGFBdHRyaWJ1dGVzPU9iamVjdC5hc3NpZ24oe30sdGhpcy5fX2RhdGFBdHRyaWJ1dGVzKSk7bGV0IGU9dGhpcy5fX2RhdGFBdHRyaWJ1dGVzW3RdO3JldHVybiBlfHwoZT10aGlzLmNvbnN0cnVjdG9yLmF0dHJpYnV0ZU5hbWVGb3JQcm9wZXJ0eSh0KSx0aGlzLl9fZGF0YUF0dHJpYnV0ZXNbZV09dCksZX1fZGVmaW5lUHJvcGVydHlBY2Nlc3Nvcih0LGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLHQse2dldCgpe3JldHVybiB0aGlzLl9fZGF0YVt0XX0sc2V0OmU/ZnVuY3Rpb24oKXt9OmZ1bmN0aW9uKGUpe3RoaXMuX3NldFBlbmRpbmdQcm9wZXJ0eSh0LGUsITApJiZ0aGlzLl9pbnZhbGlkYXRlUHJvcGVydGllcygpfX0pfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9fZGF0YUVuYWJsZWQ9ITEsdGhpcy5fX2RhdGFSZWFkeT0hMSx0aGlzLl9fZGF0YUludmFsaWQ9ITEsdGhpcy5fX2RhdGE9e30sdGhpcy5fX2RhdGFQZW5kaW5nPW51bGwsdGhpcy5fX2RhdGFPbGQ9bnVsbCx0aGlzLl9fZGF0YUluc3RhbmNlUHJvcHM9bnVsbCx0aGlzLl9fZGF0YUNvdW50ZXI9MCx0aGlzLl9fc2VyaWFsaXppbmc9ITEsdGhpcy5faW5pdGlhbGl6ZVByb3BlcnRpZXMoKX1yZWFkeSgpe3RoaXMuX19kYXRhUmVhZHk9ITAsdGhpcy5fZmx1c2hQcm9wZXJ0aWVzKCl9X2luaXRpYWxpemVQcm9wZXJ0aWVzKCl7Zm9yKGxldCB0IGluIHRoaXMuX19kYXRhSGFzQWNjZXNzb3IpdGhpcy5oYXNPd25Qcm9wZXJ0eSh0KSYmKHRoaXMuX19kYXRhSW5zdGFuY2VQcm9wcz10aGlzLl9fZGF0YUluc3RhbmNlUHJvcHN8fHt9LHRoaXMuX19kYXRhSW5zdGFuY2VQcm9wc1t0XT10aGlzW3RdLGRlbGV0ZSB0aGlzW3RdKX1faW5pdGlhbGl6ZUluc3RhbmNlUHJvcGVydGllcyh0KXtPYmplY3QuYXNzaWduKHRoaXMsdCl9X3NldFByb3BlcnR5KHQsZSl7dGhpcy5fc2V0UGVuZGluZ1Byb3BlcnR5KHQsZSkmJnRoaXMuX2ludmFsaWRhdGVQcm9wZXJ0aWVzKCl9X2dldFByb3BlcnR5KHQpe3JldHVybiB0aGlzLl9fZGF0YVt0XX1fc2V0UGVuZGluZ1Byb3BlcnR5KHQsZSxuKXtsZXQgaT10aGlzLl9fZGF0YVt0XSxyPXRoaXMuX3Nob3VsZFByb3BlcnR5Q2hhbmdlKHQsZSxpKTtyZXR1cm4gciYmKHRoaXMuX19kYXRhUGVuZGluZ3x8KHRoaXMuX19kYXRhUGVuZGluZz17fSx0aGlzLl9fZGF0YU9sZD17fSksdGhpcy5fX2RhdGFPbGQmJiEodCBpbiB0aGlzLl9fZGF0YU9sZCkmJih0aGlzLl9fZGF0YU9sZFt0XT1pKSx0aGlzLl9fZGF0YVt0XT1lLHRoaXMuX19kYXRhUGVuZGluZ1t0XT1lKSxyfV9pc1Byb3BlcnR5UGVuZGluZyh0KXtyZXR1cm4hKCF0aGlzLl9fZGF0YVBlbmRpbmd8fCF0aGlzLl9fZGF0YVBlbmRpbmcuaGFzT3duUHJvcGVydHkodCkpfV9pbnZhbGlkYXRlUHJvcGVydGllcygpeyF0aGlzLl9fZGF0YUludmFsaWQmJnRoaXMuX19kYXRhUmVhZHkmJih0aGlzLl9fZGF0YUludmFsaWQ9ITAsYnQucnVuKCgoKT0+e3RoaXMuX19kYXRhSW52YWxpZCYmKHRoaXMuX19kYXRhSW52YWxpZD0hMSx0aGlzLl9mbHVzaFByb3BlcnRpZXMoKSl9KSkpfV9lbmFibGVQcm9wZXJ0aWVzKCl7dGhpcy5fX2RhdGFFbmFibGVkfHwodGhpcy5fX2RhdGFFbmFibGVkPSEwLHRoaXMuX19kYXRhSW5zdGFuY2VQcm9wcyYmKHRoaXMuX2luaXRpYWxpemVJbnN0YW5jZVByb3BlcnRpZXModGhpcy5fX2RhdGFJbnN0YW5jZVByb3BzKSx0aGlzLl9fZGF0YUluc3RhbmNlUHJvcHM9bnVsbCksdGhpcy5yZWFkeSgpKX1fZmx1c2hQcm9wZXJ0aWVzKCl7dGhpcy5fX2RhdGFDb3VudGVyKys7Y29uc3QgdD10aGlzLl9fZGF0YSxlPXRoaXMuX19kYXRhUGVuZGluZyxuPXRoaXMuX19kYXRhT2xkO3RoaXMuX3Nob3VsZFByb3BlcnRpZXNDaGFuZ2UodCxlLG4pJiYodGhpcy5fX2RhdGFQZW5kaW5nPW51bGwsdGhpcy5fX2RhdGFPbGQ9bnVsbCx0aGlzLl9wcm9wZXJ0aWVzQ2hhbmdlZCh0LGUsbikpLHRoaXMuX19kYXRhQ291bnRlci0tfV9zaG91bGRQcm9wZXJ0aWVzQ2hhbmdlKHQsZSxuKXtyZXR1cm4gQm9vbGVhbihlKX1fcHJvcGVydGllc0NoYW5nZWQodCxlLG4pe31fc2hvdWxkUHJvcGVydHlDaGFuZ2UodCxlLG4pe3JldHVybiBuIT09ZSYmKG49PW58fGU9PWUpfWF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0LGUsbixpKXtlIT09biYmdGhpcy5fYXR0cmlidXRlVG9Qcm9wZXJ0eSh0LG4pLHN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayYmc3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHQsZSxuLGkpfV9hdHRyaWJ1dGVUb1Byb3BlcnR5KHQsZSxuKXtpZighdGhpcy5fX3NlcmlhbGl6aW5nKXtjb25zdCBpPXRoaXMuX19kYXRhQXR0cmlidXRlcyxyPWkmJmlbdF18fHQ7dGhpc1tyXT10aGlzLl9kZXNlcmlhbGl6ZVZhbHVlKGUsbnx8dGhpcy5jb25zdHJ1Y3Rvci50eXBlRm9yUHJvcGVydHkocikpfX1fcHJvcGVydHlUb0F0dHJpYnV0ZSh0LGUsbil7dGhpcy5fX3NlcmlhbGl6aW5nPSEwLHRoaXMuX3ZhbHVlVG9Ob2RlQXR0cmlidXRlKHRoaXMsbj1hcmd1bWVudHMubGVuZ3RoPDM/dGhpc1t0XTpuLGV8fHRoaXMuY29uc3RydWN0b3IuYXR0cmlidXRlTmFtZUZvclByb3BlcnR5KHQpKSx0aGlzLl9fc2VyaWFsaXppbmc9ITF9X3ZhbHVlVG9Ob2RlQXR0cmlidXRlKHQsZSxuKXtjb25zdCBpPXRoaXMuX3NlcmlhbGl6ZVZhbHVlKGUpOyJjbGFzcyIhPT1uJiYibmFtZSIhPT1uJiYic2xvdCIhPT1ufHwodD1ZKHQpKSx2b2lkIDA9PT1pP3QucmVtb3ZlQXR0cmlidXRlKG4pOnQuc2V0QXR0cmlidXRlKG4saSl9X3NlcmlhbGl6ZVZhbHVlKHQpe3N3aXRjaCh0eXBlb2YgdCl7Y2FzZSJib29sZWFuIjpyZXR1cm4gdD8iIjp2b2lkIDA7ZGVmYXVsdDpyZXR1cm4gbnVsbCE9dD90LnRvU3RyaW5nKCk6dm9pZCAwfX1fZGVzZXJpYWxpemVWYWx1ZSh0LGUpe3N3aXRjaChlKXtjYXNlIEJvb2xlYW46cmV0dXJuIG51bGwhPT10O2Nhc2UgTnVtYmVyOnJldHVybiBOdW1iZXIodCk7ZGVmYXVsdDpyZXR1cm4gdH19fSkpLHd0PXt9O2xldCBTdD1IVE1MRWxlbWVudC5wcm90b3R5cGU7Zm9yKDtTdDspe2xldCB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKFN0KTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl3dFt0W2VdXT0hMDtTdD1PYmplY3QuZ2V0UHJvdG90eXBlT2YoU3QpfWNvbnN0IE10PUkoKHQ9Pntjb25zdCBlPXh0KHQpO3JldHVybiBjbGFzcyBleHRlbmRzIGV7c3RhdGljIGNyZWF0ZVByb3BlcnRpZXNGb3JBdHRyaWJ1dGVzKCl7bGV0IHQ9dGhpcy5vYnNlcnZlZEF0dHJpYnV0ZXM7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspdGhpcy5wcm90b3R5cGUuX2NyZWF0ZVByb3BlcnR5QWNjZXNzb3Ioc3QodFtlXSkpfXN0YXRpYyBhdHRyaWJ1dGVOYW1lRm9yUHJvcGVydHkodCl7cmV0dXJuIGx0KHQpfV9pbml0aWFsaXplUHJvcGVydGllcygpe3RoaXMuX19kYXRhUHJvdG8mJih0aGlzLl9pbml0aWFsaXplUHJvdG9Qcm9wZXJ0aWVzKHRoaXMuX19kYXRhUHJvdG8pLHRoaXMuX19kYXRhUHJvdG89bnVsbCksc3VwZXIuX2luaXRpYWxpemVQcm9wZXJ0aWVzKCl9X2luaXRpYWxpemVQcm90b1Byb3BlcnRpZXModCl7Zm9yKGxldCBlIGluIHQpdGhpcy5fc2V0UHJvcGVydHkoZSx0W2VdKX1fZW5zdXJlQXR0cmlidXRlKHQsZSl7Y29uc3Qgbj10aGlzO24uaGFzQXR0cmlidXRlKHQpfHx0aGlzLl92YWx1ZVRvTm9kZUF0dHJpYnV0ZShuLGUsdCl9X3NlcmlhbGl6ZVZhbHVlKHQpe3N3aXRjaCh0eXBlb2YgdCl7Y2FzZSJvYmplY3QiOmlmKHQgaW5zdGFuY2VvZiBEYXRlKXJldHVybiB0LnRvU3RyaW5nKCk7aWYodCl0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpfWNhdGNoKHQpe3JldHVybiIifWRlZmF1bHQ6cmV0dXJuIHN1cGVyLl9zZXJpYWxpemVWYWx1ZSh0KX19X2Rlc2VyaWFsaXplVmFsdWUodCxlKXtsZXQgbjtzd2l0Y2goZSl7Y2FzZSBPYmplY3Q6dHJ5e249SlNPTi5wYXJzZSh0KX1jYXRjaChlKXtuPXR9YnJlYWs7Y2FzZSBBcnJheTp0cnl7bj1KU09OLnBhcnNlKHQpfWNhdGNoKGUpe249bnVsbCxjb25zb2xlLndhcm4oYFBvbHltZXI6OkF0dHJpYnV0ZXM6IGNvdWxkbid0IGRlY29kZSBBcnJheSBhcyBKU09OOiAke3R9YCl9YnJlYWs7Y2FzZSBEYXRlOm49aXNOYU4odCk/U3RyaW5nKHQpOk51bWJlcih0KSxuPW5ldyBEYXRlKG4pO2JyZWFrO2RlZmF1bHQ6bj1zdXBlci5fZGVzZXJpYWxpemVWYWx1ZSh0LGUpfXJldHVybiBufV9kZWZpbmVQcm9wZXJ0eUFjY2Vzc29yKHQsZSl7IShmdW5jdGlvbiBuKHQsZSl7aWYoIXd0W2VdKXtsZXQgbj10W2VdO3ZvaWQgMCE9PW4mJih0Ll9fZGF0YT90Ll9zZXRQZW5kaW5nUHJvcGVydHkoZSxuKToodC5fX2RhdGFQcm90bz90Lmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9fZGF0YVByb3RvIix0KSl8fCh0Ll9fZGF0YVByb3RvPU9iamVjdC5jcmVhdGUodC5fX2RhdGFQcm90bykpOnQuX19kYXRhUHJvdG89e30sdC5fX2RhdGFQcm90b1tlXT1uKSl9fSkodGhpcyx0KSxzdXBlci5fZGVmaW5lUHJvcGVydHlBY2Nlc3Nvcih0LGUpfV9oYXNBY2Nlc3Nvcih0KXtyZXR1cm4gdGhpcy5fX2RhdGFIYXNBY2Nlc3NvciYmdGhpcy5fX2RhdGFIYXNBY2Nlc3Nvclt0XX1faXNQcm9wZXJ0eVBlbmRpbmcodCl7cmV0dXJuIEJvb2xlYW4odGhpcy5fX2RhdGFQZW5kaW5nJiZ0IGluIHRoaXMuX19kYXRhUGVuZGluZyl9fX0pKSxFdD17ImRvbS1pZiI6ITAsImRvbS1yZXBlYXQiOiEwfTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9sZXQgVHQ9ITEsQ3Q9ITE7ZnVuY3Rpb24gQXQodCl7KGZ1bmN0aW9uIGUoKXtpZighVHQpe1R0PSEwO2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTt0LnBsYWNlaG9sZGVyPSJhIixDdD10LnBsYWNlaG9sZGVyPT09dC50ZXh0Q29udGVudH1yZXR1cm4gQ3R9KSgpJiYidGV4dGFyZWEiPT09dC5sb2NhbE5hbWUmJnQucGxhY2Vob2xkZXImJnQucGxhY2Vob2xkZXI9PT10LnRleHRDb250ZW50JiYodC50ZXh0Q29udGVudD1udWxsKX1mdW5jdGlvbiBrdCh0KXtsZXQgZT10LmdldEF0dHJpYnV0ZSgiaXMiKTtpZihlJiZFdFtlXSl7bGV0IG49dDtmb3Iobi5yZW1vdmVBdHRyaWJ1dGUoImlzIiksdD1uLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudChlKSxuLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKHQsbiksdC5hcHBlbmRDaGlsZChuKTtuLmF0dHJpYnV0ZXMubGVuZ3RoOyl0LnNldEF0dHJpYnV0ZShuLmF0dHJpYnV0ZXNbMF0ubmFtZSxuLmF0dHJpYnV0ZXNbMF0udmFsdWUpLG4ucmVtb3ZlQXR0cmlidXRlKG4uYXR0cmlidXRlc1swXS5uYW1lKX1yZXR1cm4gdH1mdW5jdGlvbiBMdCh0LGUpe2xldCBuPWUucGFyZW50SW5mbyYmTHQodCxlLnBhcmVudEluZm8pO2lmKCFuKXJldHVybiB0O2ZvcihsZXQgdD1uLmZpcnN0Q2hpbGQsaT0wO3Q7dD10Lm5leHRTaWJsaW5nKWlmKGUucGFyZW50SW5kZXg9PT1pKyspcmV0dXJuIHR9ZnVuY3Rpb24gUHQodCxlLG4saSl7aS5pZCYmKGVbaS5pZF09bil9ZnVuY3Rpb24gTnQodCxlLG4pe2lmKG4uZXZlbnRzJiZuLmV2ZW50cy5sZW5ndGgpZm9yKGxldCBpLHI9MCxvPW4uZXZlbnRzO3I8by5sZW5ndGgmJihpPW9bcl0pO3IrKyl0Ll9hZGRNZXRob2RFdmVudExpc3RlbmVyVG9Ob2RlKGUsaS5uYW1lLGkudmFsdWUsdCl9ZnVuY3Rpb24gSXQodCxlLG4saSl7bi50ZW1wbGF0ZUluZm8mJihlLl90ZW1wbGF0ZUluZm89bi50ZW1wbGF0ZUluZm8sZS5fcGFyZW50VGVtcGxhdGVJbmZvPWkpfWNvbnN0IFJ0PUkoKHQ9PmNsYXNzIGV4dGVuZHMgdHtzdGF0aWMgX3BhcnNlVGVtcGxhdGUodCxlKXtpZighdC5fdGVtcGxhdGVJbmZvKXtsZXQgbj10Ll90ZW1wbGF0ZUluZm89e307bi5ub2RlSW5mb0xpc3Q9W10sbi5uZXN0ZWRUZW1wbGF0ZT1Cb29sZWFuKGUpLG4uc3RyaXBXaGl0ZVNwYWNlPWUmJmUuc3RyaXBXaGl0ZVNwYWNlfHx0Lmhhc0F0dHJpYnV0ZSgic3RyaXAtd2hpdGVzcGFjZSIpLHRoaXMuX3BhcnNlVGVtcGxhdGVDb250ZW50KHQsbix7cGFyZW50Om51bGx9KX1yZXR1cm4gdC5fdGVtcGxhdGVJbmZvfXN0YXRpYyBfcGFyc2VUZW1wbGF0ZUNvbnRlbnQodCxlLG4pe3JldHVybiB0aGlzLl9wYXJzZVRlbXBsYXRlTm9kZSh0LmNvbnRlbnQsZSxuKX1zdGF0aWMgX3BhcnNlVGVtcGxhdGVOb2RlKHQsZSxuKXtsZXQgaT0hMSxyPXQ7cmV0dXJuInRlbXBsYXRlIiE9ci5sb2NhbE5hbWV8fHIuaGFzQXR0cmlidXRlKCJwcmVzZXJ2ZS1jb250ZW50Iik/InNsb3QiPT09ci5sb2NhbE5hbWUmJihlLmhhc0luc2VydGlvblBvaW50PSEwKTppPXRoaXMuX3BhcnNlVGVtcGxhdGVOZXN0ZWRUZW1wbGF0ZShyLGUsbil8fGksQXQociksci5maXJzdENoaWxkJiZ0aGlzLl9wYXJzZVRlbXBsYXRlQ2hpbGROb2RlcyhyLGUsbiksci5oYXNBdHRyaWJ1dGVzJiZyLmhhc0F0dHJpYnV0ZXMoKSYmKGk9dGhpcy5fcGFyc2VUZW1wbGF0ZU5vZGVBdHRyaWJ1dGVzKHIsZSxuKXx8aSksaXx8bi5ub3RlZH1zdGF0aWMgX3BhcnNlVGVtcGxhdGVDaGlsZE5vZGVzKHQsZSxuKXtpZigic2NyaXB0IiE9PXQubG9jYWxOYW1lJiYic3R5bGUiIT09dC5sb2NhbE5hbWUpZm9yKGxldCBpLHI9dC5maXJzdENoaWxkLG89MDtyO3I9aSl7aWYoInRlbXBsYXRlIj09ci5sb2NhbE5hbWUmJihyPWt0KHIpKSxpPXIubmV4dFNpYmxpbmcsci5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXtsZXQgbj1pO2Zvcig7biYmbi5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFOylyLnRleHRDb250ZW50Kz1uLnRleHRDb250ZW50LGk9bi5uZXh0U2libGluZyx0LnJlbW92ZUNoaWxkKG4pLG49aTtpZihlLnN0cmlwV2hpdGVTcGFjZSYmIXIudGV4dENvbnRlbnQudHJpbSgpKXt0LnJlbW92ZUNoaWxkKHIpO2NvbnRpbnVlfX1sZXQgYT17cGFyZW50SW5kZXg6byxwYXJlbnRJbmZvOm59O3RoaXMuX3BhcnNlVGVtcGxhdGVOb2RlKHIsZSxhKSYmKGEuaW5mb0luZGV4PWUubm9kZUluZm9MaXN0LnB1c2goYSktMSksci5wYXJlbnROb2RlJiZvKyt9fXN0YXRpYyBfcGFyc2VUZW1wbGF0ZU5lc3RlZFRlbXBsYXRlKHQsZSxuKXtsZXQgaT10LHI9dGhpcy5fcGFyc2VUZW1wbGF0ZShpLGUpO3JldHVybihyLmNvbnRlbnQ9aS5jb250ZW50Lm93bmVyRG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpKS5hcHBlbmRDaGlsZChpLmNvbnRlbnQpLG4udGVtcGxhdGVJbmZvPXIsITB9c3RhdGljIF9wYXJzZVRlbXBsYXRlTm9kZUF0dHJpYnV0ZXModCxlLG4pe2xldCBpPSExLHI9QXJyYXkuZnJvbSh0LmF0dHJpYnV0ZXMpO2ZvcihsZXQgbyxhPXIubGVuZ3RoLTE7bz1yW2FdO2EtLSlpPXRoaXMuX3BhcnNlVGVtcGxhdGVOb2RlQXR0cmlidXRlKHQsZSxuLG8ubmFtZSxvLnZhbHVlKXx8aTtyZXR1cm4gaX1zdGF0aWMgX3BhcnNlVGVtcGxhdGVOb2RlQXR0cmlidXRlKHQsZSxuLGkscil7cmV0dXJuIm9uLSI9PT1pLnNsaWNlKDAsMyk/KHQucmVtb3ZlQXR0cmlidXRlKGkpLG4uZXZlbnRzPW4uZXZlbnRzfHxbXSxuLmV2ZW50cy5wdXNoKHtuYW1lOmkuc2xpY2UoMyksdmFsdWU6cn0pLCEwKToiaWQiPT09aSYmKG4uaWQ9ciwhMCl9c3RhdGljIF9jb250ZW50Rm9yVGVtcGxhdGUodCl7bGV0IGU9dC5fdGVtcGxhdGVJbmZvO3JldHVybiBlJiZlLmNvbnRlbnR8fHQuY29udGVudH1fc3RhbXBUZW1wbGF0ZSh0LGUpe3QmJiF0LmNvbnRlbnQmJndpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50JiZIVE1MVGVtcGxhdGVFbGVtZW50LmRlY29yYXRlJiZIVE1MVGVtcGxhdGVFbGVtZW50LmRlY29yYXRlKHQpO2xldCBuPShlPWV8fHRoaXMuY29uc3RydWN0b3IuX3BhcnNlVGVtcGxhdGUodCkpLm5vZGVJbmZvTGlzdCxpPWRvY3VtZW50LmltcG9ydE5vZGUoZS5jb250ZW50fHx0LmNvbnRlbnQsITApO2kuX19ub0luc2VydGlvblBvaW50PSFlLmhhc0luc2VydGlvblBvaW50O2xldCByPWkubm9kZUxpc3Q9bmV3IEFycmF5KG4ubGVuZ3RoKTtpLiQ9e307Zm9yKGxldCB0LG89MCxhPW4ubGVuZ3RoO288YSYmKHQ9bltvXSk7bysrKXtsZXQgbj1yW29dPUx0KGksdCk7UHQoMCxpLiQsbix0KSxJdCgwLG4sdCxlKSxOdCh0aGlzLG4sdCl9cmV0dXJuIGk9aSxpfV9hZGRNZXRob2RFdmVudExpc3RlbmVyVG9Ob2RlKHQsZSxuLGkpe2xldCByPShmdW5jdGlvbiBvKHQsZSxuKXtyZXR1cm4gdD10Ll9tZXRob2RIb3N0fHx0LGZ1bmN0aW9uKGUpe3Rbbl0/dFtuXShlLGUuZGV0YWlsKTpjb25zb2xlLndhcm4oImxpc3RlbmVyIG1ldGhvZCBgIituKyJgIG5vdCBkZWZpbmVkIil9fSkoaT1pfHx0LDAsbik7cmV0dXJuIHRoaXMuX2FkZEV2ZW50TGlzdGVuZXJUb05vZGUodCxlLHIpLHJ9X2FkZEV2ZW50TGlzdGVuZXJUb05vZGUodCxlLG4pe3QuYWRkRXZlbnRMaXN0ZW5lcihlLG4pfV9yZW1vdmVFdmVudExpc3RlbmVyRnJvbU5vZGUodCxlLG4pe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLG4pfX0pKTsKLyoqCiAgICAgKiBAZmlsZW92ZXJ2aWV3CiAgICAgKiBAc3VwcHJlc3Mge2NoZWNrUHJvdG90eXBhbFR5cGVzfQogICAgICogQGxpY2Vuc2UgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgICAqIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQKICAgICAqIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkKICAgICAqIGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkKICAgICAqIEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAKICAgICAqIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICAqL2xldCBPdD0wO2NvbnN0IHp0PVtdLER0PXtDT01QVVRFOiJfX2NvbXB1dGVFZmZlY3RzIixSRUZMRUNUOiJfX3JlZmxlY3RFZmZlY3RzIixOT1RJRlk6Il9fbm90aWZ5RWZmZWN0cyIsUFJPUEFHQVRFOiJfX3Byb3BhZ2F0ZUVmZmVjdHMiLE9CU0VSVkU6Il9fb2JzZXJ2ZUVmZmVjdHMiLFJFQURfT05MWToiX19yZWFkT25seSJ9LEJ0PSJfX2NvbXB1dGVJbmZvIixIdD0vW0EtWl0vO2Z1bmN0aW9uIEZ0KHQsZSxuKXtsZXQgaT10W2VdO2lmKGkpe2lmKCF0Lmhhc093blByb3BlcnR5KGUpJiYoaT10W2VdPU9iamVjdC5jcmVhdGUodFtlXSksbikpZm9yKGxldCB0IGluIGkpe2xldCBlPWlbdF0sbj1pW3RdPUFycmF5KGUubGVuZ3RoKTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyluW3RdPWVbdF19fWVsc2UgaT10W2VdPXt9O3JldHVybiBpfWZ1bmN0aW9uIFZ0KHQsZSxuLGkscixvKXtpZihlKXtsZXQgYT0hMTtjb25zdCBzPU90Kys7Zm9yKGxldCBsIGluIG4pe2xldCBjPWVbcj8kKGwpOmxdO2lmKGMpZm9yKGxldCBlLHU9MCxoPWMubGVuZ3RoO3U8aCYmKGU9Y1t1XSk7dSsrKWUuaW5mbyYmZS5pbmZvLmxhc3RSdW49PT1zfHxyJiYhanQobCxlLnRyaWdnZXIpfHwoZS5pbmZvJiYoZS5pbmZvLmxhc3RSdW49cyksZS5mbih0LGwsbixpLGUuaW5mbyxyLG8pLGE9ITApfXJldHVybiBhfXJldHVybiExfWZ1bmN0aW9uIFV0KHQsZSxuLGkscixvLGEscyl7bGV0IGw9ITEsYz1lW2E/JChpKTppXTtpZihjKWZvcihsZXQgZSx1PTAsaD1jLmxlbmd0aDt1PGgmJihlPWNbdV0pO3UrKyllLmluZm8mJmUuaW5mby5sYXN0UnVuPT09bnx8YSYmIWp0KGksZS50cmlnZ2VyKXx8KGUuaW5mbyYmKGUuaW5mby5sYXN0UnVuPW4pLGUuZm4odCxpLHIsbyxlLmluZm8sYSxzKSxsPSEwKTtyZXR1cm4gbH1mdW5jdGlvbiBqdCh0LGUpe2lmKGUpe2xldCBuPWUubmFtZTtyZXR1cm4gbj09dHx8ISghZS5zdHJ1Y3R1cmVkfHwhSyhuLHQpKXx8ISghZS53aWxkY2FyZHx8IVoobix0KSl9cmV0dXJuITB9ZnVuY3Rpb24gR3QodCxlLG4saSxyKXtsZXQgbz0ic3RyaW5nIj09dHlwZW9mIHIubWV0aG9kP3Rbci5tZXRob2RdOnIubWV0aG9kLGE9ci5wcm9wZXJ0eTtvP28uY2FsbCh0LHQuX19kYXRhW2FdLGlbYV0pOnIuZHluYW1pY0ZufHxjb25zb2xlLndhcm4oIm9ic2VydmVyIG1ldGhvZCBgIityLm1ldGhvZCsiYCBub3QgZGVmaW5lZCIpfWZ1bmN0aW9uIFd0KHQsZSxuKXtsZXQgaT0kKGUpO2lmKGkhPT1lKXtyZXR1cm4gcXQodCxsdChpKSsiLWNoYW5nZWQiLG5bZV0sZSksITB9cmV0dXJuITF9ZnVuY3Rpb24gcXQodCxlLG4saSl7bGV0IHI9e3ZhbHVlOm4scXVldWVQcm9wZXJ0eTohMH07aSYmKHIucGF0aD1pKSxZKHQpLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KGUse2RldGFpbDpyfSkpfWZ1bmN0aW9uIFl0KHQsZSxuLGkscixvKXtsZXQgYT0obz8kKGUpOmUpIT1lP2U6bnVsbCxzPWE/bnQodCxhKTp0Ll9fZGF0YVtlXTthJiZ2b2lkIDA9PT1zJiYocz1uW2VdKSxxdCh0LHIuZXZlbnROYW1lLHMsYSl9ZnVuY3Rpb24gWHQodCxlLG4saSxyKXtsZXQgbz10Ll9fZGF0YVtlXTt5JiYobz15KG8sci5hdHRyTmFtZSwiYXR0cmlidXRlIix0KSksdC5fcHJvcGVydHlUb0F0dHJpYnV0ZShlLHIuYXR0ck5hbWUsbyl9ZnVuY3Rpb24gJHQodCxlLG4saSl7bGV0IHI9dFtEdC5DT01QVVRFXTtpZihyKWlmKFQpe090Kys7Y29uc3Qgbz0oZnVuY3Rpb24gbyh0KXtsZXQgZT10LmNvbnN0cnVjdG9yLl9fb3JkZXJlZENvbXB1dGVkRGVwcztpZighZSl7ZT1uZXcgTWFwO2NvbnN0IG49dFtEdC5DT01QVVRFXTtsZXQgaSx7Y291bnRzOnIscmVhZHk6byx0b3RhbDphfT0oZnVuY3Rpb24gbih0KXtjb25zdCBlPXQuX19jb21wdXRlSW5mbyxuPXt9LGk9dFtEdC5DT01QVVRFXSxyPVtdO2xldCBvPTA7Zm9yKGxldCB0IGluIGUpe2NvbnN0IGk9ZVt0XTtvKz1uW3RdPWkuYXJncy5maWx0ZXIoKHQ9PiF0LmxpdGVyYWwpKS5sZW5ndGgrKGkuZHluYW1pY0ZuPzE6MCl9Zm9yKGxldCB0IGluIGkpZVt0XXx8ci5wdXNoKHQpO3JldHVybntjb3VudHM6bixyZWFkeTpyLHRvdGFsOm99fSkodCk7Zm9yKDtpPW8uc2hpZnQoKTspe2Uuc2V0KGksZS5zaXplKTtjb25zdCB0PW5baV07dCYmdC5mb3JFYWNoKCh0PT57Y29uc3QgZT10LmluZm8ubWV0aG9kSW5mbzstLWEsMD09LS1yW2VdJiZvLnB1c2goZSl9KSl9aWYoMCE9PWEpe2NvbnNvbGUud2FybihgQ29tcHV0ZWQgZ3JhcGggZm9yICR7dC5sb2NhbE5hbWV9IGluY29tcGxldGU7IGNpcmN1bGFyP2ApfXQuY29uc3RydWN0b3IuX19vcmRlcmVkQ29tcHV0ZWREZXBzPWV9cmV0dXJuIGV9KSh0KSxhPVtdO2ZvcihsZXQgdCBpbiBlKVp0KHQscixhLG8saSk7bGV0IHM7Zm9yKDtzPWEuc2hpZnQoKTspSnQodCwiIixlLG4scykmJlp0KHMubWV0aG9kSW5mbyxyLGEsbyxpKTtPYmplY3QuYXNzaWduKG4sdC5fX2RhdGFPbGQpLE9iamVjdC5hc3NpZ24oZSx0Ll9fZGF0YVBlbmRpbmcpLHQuX19kYXRhUGVuZGluZz1udWxsfWVsc2V7bGV0IG89ZTtmb3IoO1Z0KHQscixvLG4saSk7KU9iamVjdC5hc3NpZ24obix0Ll9fZGF0YU9sZCksT2JqZWN0LmFzc2lnbihlLHQuX19kYXRhUGVuZGluZyksbz10Ll9fZGF0YVBlbmRpbmcsdC5fX2RhdGFQZW5kaW5nPW51bGx9fWNvbnN0IEt0PSh0LGUsbik9PntsZXQgaT0wLHI9ZS5sZW5ndGgtMSxvPS0xO2Zvcig7aTw9cjspe2NvbnN0IGE9aStyPj4xLHM9bi5nZXQoZVthXS5tZXRob2RJbmZvKS1uLmdldCh0Lm1ldGhvZEluZm8pO2lmKHM8MClpPWErMTtlbHNle2lmKCEocz4wKSl7bz1hO2JyZWFrfXI9YS0xfX1vPDAmJihvPXIrMSksZS5zcGxpY2UobywwLHQpfSxadD0odCxlLG4saSxyKT0+e2NvbnN0IG89ZVtyPyQodCk6dF07aWYobylmb3IobGV0IGU9MDtlPG8ubGVuZ3RoO2UrKyl7Y29uc3QgYT1vW2VdO2EuaW5mby5sYXN0UnVuPT09T3R8fHImJiFqdCh0LGEudHJpZ2dlcil8fChhLmluZm8ubGFzdFJ1bj1PdCxLdChhLmluZm8sbixpKSl9fTtmdW5jdGlvbiBKdCh0LGUsbixpLHIpe2xldCBvPW9lKHQsZSxuLGkscik7aWYobz09PXp0KXJldHVybiExO2xldCBhPXIubWV0aG9kSW5mbztyZXR1cm4gdC5fX2RhdGFIYXNBY2Nlc3NvciYmdC5fX2RhdGFIYXNBY2Nlc3NvclthXT90Ll9zZXRQZW5kaW5nUHJvcGVydHkoYSxvLCEwKToodFthXT1vLCExKX1mdW5jdGlvbiBRdCh0LGUsbixpLHIsbyxhKXtuLmJpbmRpbmdzPW4uYmluZGluZ3N8fFtdO2xldCBzPXtraW5kOmksdGFyZ2V0OnIscGFydHM6byxsaXRlcmFsOmEsaXNDb21wb3VuZDoxIT09by5sZW5ndGh9O2lmKG4uYmluZGluZ3MucHVzaChzKSwoZnVuY3Rpb24gbCh0KXtyZXR1cm4gQm9vbGVhbih0LnRhcmdldCkmJiJhdHRyaWJ1dGUiIT10LmtpbmQmJiJ0ZXh0IiE9dC5raW5kJiYhdC5pc0NvbXBvdW5kJiYieyI9PT10LnBhcnRzWzBdLm1vZGV9KShzKSl7bGV0e2V2ZW50OnQsbmVnYXRlOmV9PXMucGFydHNbMF07cy5saXN0ZW5lckV2ZW50PXR8fGx0KHIpKyItY2hhbmdlZCIscy5saXN0ZW5lck5lZ2F0ZT1lfWxldCBjPWUubm9kZUluZm9MaXN0Lmxlbmd0aDtmb3IobGV0IG49MDtuPHMucGFydHMubGVuZ3RoO24rKyl7bGV0IGk9cy5wYXJ0c1tuXTtpLmNvbXBvdW5kSW5kZXg9bix0ZSh0LGUscyxpLGMpfX1mdW5jdGlvbiB0ZSh0LGUsbixpLHIpe2lmKCFpLmxpdGVyYWwpaWYoImF0dHJpYnV0ZSI9PT1uLmtpbmQmJiItIj09PW4udGFyZ2V0WzBdKWNvbnNvbGUud2FybigiQ2Fubm90IHNldCBhdHRyaWJ1dGUgIituLnRhcmdldCsnIGJlY2F1c2UgIi0iIGlzIG5vdCBhIHZhbGlkIGF0dHJpYnV0ZSBzdGFydGluZyBjaGFyYWN0ZXInKTtlbHNle2xldCBvPWkuZGVwZW5kZW5jaWVzLGE9e2luZGV4OnIsYmluZGluZzpuLHBhcnQ6aSxldmFsdWF0b3I6dH07Zm9yKGxldCBuPTA7bjxvLmxlbmd0aDtuKyspe2xldCBpPW9bbl07InN0cmluZyI9PXR5cGVvZiBpJiYoaT11ZShpKSxpLndpbGRjYXJkPSEwKSx0Ll9hZGRUZW1wbGF0ZVByb3BlcnR5RWZmZWN0KGUsaS5yb290UHJvcGVydHkse2ZuOmVlLGluZm86YSx0cmlnZ2VyOml9KX19fWZ1bmN0aW9uIGVlKHQsZSxuLGkscixvLGEpe2xldCBzPWFbci5pbmRleF0sbD1yLmJpbmRpbmcsYz1yLnBhcnQ7aWYobyYmYy5zb3VyY2UmJmUubGVuZ3RoPmMuc291cmNlLmxlbmd0aCYmInByb3BlcnR5Ij09bC5raW5kJiYhbC5pc0NvbXBvdW5kJiZzLl9faXNQcm9wZXJ0eUVmZmVjdHNDbGllbnQmJnMuX19kYXRhSGFzQWNjZXNzb3ImJnMuX19kYXRhSGFzQWNjZXNzb3JbbC50YXJnZXRdKXtsZXQgaT1uW2VdO2U9SihjLnNvdXJjZSxsLnRhcmdldCxlKSxzLl9zZXRQZW5kaW5nUHJvcGVydHlPclBhdGgoZSxpLCExLCEwKSYmdC5fZW5xdWV1ZUNsaWVudChzKX1lbHNle2xldCBhPXIuZXZhbHVhdG9yLl9ldmFsdWF0ZUJpbmRpbmcodCxjLGUsbixpLG8pO2EhPT16dCYmKGZ1bmN0aW9uIHUodCxlLG4saSxyKXtyPShmdW5jdGlvbiBvKHQsZSxuLGkpe2lmKG4uaXNDb21wb3VuZCl7bGV0IHI9dC5fX2RhdGFDb21wb3VuZFN0b3JhZ2Vbbi50YXJnZXRdO3JbaS5jb21wb3VuZEluZGV4XT1lLGU9ci5qb2luKCIiKX0iYXR0cmlidXRlIiE9PW4ua2luZCYmKCJ0ZXh0Q29udGVudCIhPT1uLnRhcmdldCYmKCJ2YWx1ZSIhPT1uLnRhcmdldHx8ImlucHV0IiE9PXQubG9jYWxOYW1lJiYidGV4dGFyZWEiIT09dC5sb2NhbE5hbWUpfHwoZT1udWxsPT1lPyIiOmUpKTtyZXR1cm4gZX0pKGUscixuLGkpLHkmJihyPXkocixuLnRhcmdldCxuLmtpbmQsZSkpO2lmKCJhdHRyaWJ1dGUiPT1uLmtpbmQpdC5fdmFsdWVUb05vZGVBdHRyaWJ1dGUoZSxyLG4udGFyZ2V0KTtlbHNle2xldCBpPW4udGFyZ2V0O2UuX19pc1Byb3BlcnR5RWZmZWN0c0NsaWVudCYmZS5fX2RhdGFIYXNBY2Nlc3NvciYmZS5fX2RhdGFIYXNBY2Nlc3NvcltpXT9lW0R0LlJFQURfT05MWV0mJmVbRHQuUkVBRF9PTkxZXVtpXXx8ZS5fc2V0UGVuZGluZ1Byb3BlcnR5KGkscikmJnQuX2VucXVldWVDbGllbnQoZSk6dC5fc2V0VW5tYW5hZ2VkUHJvcGVydHlUb05vZGUoZSxpLHIpfX0pKHQscyxsLGMsYSl9fWZ1bmN0aW9uIG5lKHQsZSl7aWYoZS5pc0NvbXBvdW5kKXtsZXQgbj10Ll9fZGF0YUNvbXBvdW5kU3RvcmFnZXx8KHQuX19kYXRhQ29tcG91bmRTdG9yYWdlPXt9KSxpPWUucGFydHMscj1uZXcgQXJyYXkoaS5sZW5ndGgpO2ZvcihsZXQgdD0wO3Q8aS5sZW5ndGg7dCsrKXJbdF09aVt0XS5saXRlcmFsO2xldCBvPWUudGFyZ2V0O25bb109cixlLmxpdGVyYWwmJiJwcm9wZXJ0eSI9PWUua2luZCYmKCJjbGFzc05hbWUiPT09byYmKHQ9WSh0KSksdFtvXT1lLmxpdGVyYWwpfX1mdW5jdGlvbiBpZSh0LGUsbil7aWYobi5saXN0ZW5lckV2ZW50KXtsZXQgaT1uLnBhcnRzWzBdO3QuYWRkRXZlbnRMaXN0ZW5lcihuLmxpc3RlbmVyRXZlbnQsKGZ1bmN0aW9uKHQpeyEoZnVuY3Rpb24gcih0LGUsbixpLG8pe2xldCBhLHM9dC5kZXRhaWwsbD1zJiZzLnBhdGg7bD8oaT1KKG4saSxsKSxhPXMmJnMudmFsdWUpOmE9dC5jdXJyZW50VGFyZ2V0W25dLGE9bz8hYTphLGVbRHQuUkVBRF9PTkxZXSYmZVtEdC5SRUFEX09OTFldW2ldfHwhZS5fc2V0UGVuZGluZ1Byb3BlcnR5T3JQYXRoKGksYSwhMCxCb29sZWFuKGwpKXx8cyYmcy5xdWV1ZVByb3BlcnR5fHxlLl9pbnZhbGlkYXRlUHJvcGVydGllcygpfSkodCxlLG4udGFyZ2V0LGkuc291cmNlLGkubmVnYXRlKX0pKX19ZnVuY3Rpb24gcmUodCxlLG4saSxyLG8pe2xldCBhPXttZXRob2ROYW1lOmUubWV0aG9kTmFtZSxhcmdzOmUuYXJncyxtZXRob2RJbmZvOnIsZHluYW1pY0ZuOm89ZS5zdGF0aWN8fG8mJigib2JqZWN0IiE9dHlwZW9mIG98fG9bZS5tZXRob2ROYW1lXSl9O2ZvcihsZXQgcixvPTA7bzxlLmFyZ3MubGVuZ3RoJiYocj1lLmFyZ3Nbb10pO28rKylyLmxpdGVyYWx8fHQuX2FkZFByb3BlcnR5RWZmZWN0KHIucm9vdFByb3BlcnR5LG4se2ZuOmksaW5mbzphLHRyaWdnZXI6cn0pO3JldHVybiBvJiZ0Ll9hZGRQcm9wZXJ0eUVmZmVjdChlLm1ldGhvZE5hbWUsbix7Zm46aSxpbmZvOmF9KSxhfWZ1bmN0aW9uIG9lKHQsZSxuLGkscil7bGV0IG89dC5fbWV0aG9kSG9zdHx8dCxhPW9bci5tZXRob2ROYW1lXTtpZihhKXtsZXQgaT10Ll9tYXJzaGFsQXJncyhyLmFyZ3MsZSxuKTtyZXR1cm4gaT09PXp0P3p0OmEuYXBwbHkobyxpKX1yLmR5bmFtaWNGbnx8Y29uc29sZS53YXJuKCJtZXRob2QgYCIrci5tZXRob2ROYW1lKyJgIG5vdCBkZWZpbmVkIil9Y29uc3QgYWU9W10sc2U9bmV3IFJlZ0V4cCgiKFxcW1xcW3x7eylcXHMqKD86KCEpXFxzKik/KCg/OlthLXpBLVpfJF1bXFx3LjokXFwtKl0qKVxccyooPzpcXChcXHMqKD86KD86KD86KCg/OlthLXpBLVpfJF1bXFx3LjokXFwtKl0qKXwoPzpbLStdP1swLTldKlxcLj9bMC05XSsoPzpbZUVdWy0rXT9bMC05XSspPyl8KD86KD86Jyg/OlteJ1xcXFxdfFxcXFwuKSonKXwoPzpcIig/OlteXCJcXFxcXXxcXFxcLikqXCIpKSlcXHMqKSg/OixcXHMqKD86KCg/OlthLXpBLVpfJF1bXFx3LjokXFwtKl0qKXwoPzpbLStdP1swLTldKlxcLj9bMC05XSsoPzpbZUVdWy0rXT9bMC05XSspPyl8KD86KD86Jyg/OlteJ1xcXFxdfFxcXFwuKSonKXwoPzpcIig/OlteXCJcXFxcXXxcXFxcLikqXCIpKSlcXHMqKSkqKT8pXFwpXFxzKik/KSg/Ol1dfH19KSIsImciKTtmdW5jdGlvbiBsZSh0KXtsZXQgZT0iIjtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7ZSs9dFtuXS5saXRlcmFsfHwiIn1yZXR1cm4gZX1mdW5jdGlvbiBjZSh0KXtsZXQgZT10Lm1hdGNoKC8oW15cc10rPylcKChbXHNcU10qKVwpLyk7aWYoZSl7bGV0IHQ9e21ldGhvZE5hbWU6ZVsxXSxzdGF0aWM6ITAsYXJnczphZX07aWYoZVsyXS50cmltKCkpe3JldHVybihmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIGUuYXJncz10Lm1hcCgoZnVuY3Rpb24odCl7bGV0IG49dWUodCk7cmV0dXJuIG4ubGl0ZXJhbHx8KGUuc3RhdGljPSExKSxufSksdGhpcyksZX0pKGVbMl0ucmVwbGFjZSgvXFwsL2csIiZjb21tYTsiKS5zcGxpdCgiLCIpLHQpfXJldHVybiB0fXJldHVybiBudWxsfWZ1bmN0aW9uIHVlKHQpe2xldCBlPXQudHJpbSgpLnJlcGxhY2UoLyZjb21tYTsvZywiLCIpLnJlcGxhY2UoL1xcKC4pL2csIiQxIiksbj17bmFtZTplLHZhbHVlOiIiLGxpdGVyYWw6ITF9LGk9ZVswXTtzd2l0Y2goIi0iPT09aSYmKGk9ZVsxXSksaT49IjAiJiZpPD0iOSImJihpPSIjIiksaSl7Y2FzZSInIjpjYXNlJyInOm4udmFsdWU9ZS5zbGljZSgxLC0xKSxuLmxpdGVyYWw9ITA7YnJlYWs7Y2FzZSIjIjpuLnZhbHVlPU51bWJlcihlKSxuLmxpdGVyYWw9ITB9cmV0dXJuIG4ubGl0ZXJhbHx8KG4ucm9vdFByb3BlcnR5PSQoZSksbi5zdHJ1Y3R1cmVkPVgoZSksbi5zdHJ1Y3R1cmVkJiYobi53aWxkY2FyZD0iLioiPT1lLnNsaWNlKC0yKSxuLndpbGRjYXJkJiYobi5uYW1lPWUuc2xpY2UoMCwtMikpKSksbn1mdW5jdGlvbiBoZSh0LGUsbil7bGV0IGk9bnQodCxuKTtyZXR1cm4gdm9pZCAwPT09aSYmKGk9ZVtuXSksaX1mdW5jdGlvbiBkZSh0LGUsbixpKXtjb25zdCByPXtpbmRleFNwbGljZXM6aX07RSYmIXQuX292ZXJyaWRlTGVnYWN5VW5kZWZpbmVkJiYoZS5zcGxpY2VzPXIpLHQubm90aWZ5UGF0aChuKyIuc3BsaWNlcyIsciksdC5ub3RpZnlQYXRoKG4rIi5sZW5ndGgiLGUubGVuZ3RoKSxFJiYhdC5fb3ZlcnJpZGVMZWdhY3lVbmRlZmluZWQmJihyLmluZGV4U3BsaWNlcz1bXSl9ZnVuY3Rpb24gcGUodCxlLG4saSxyLG8pe2RlKHQsZSxuLFt7aW5kZXg6aSxhZGRlZENvdW50OnIscmVtb3ZlZDpvLG9iamVjdDplLHR5cGU6InNwbGljZSJ9XSl9Y29uc3QgZmU9SSgodD0+e2NvbnN0IGU9UnQoTXQodCkpO3JldHVybiBjbGFzcyBleHRlbmRzIGV7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX19pc1Byb3BlcnR5RWZmZWN0c0NsaWVudD0hMH1nZXQgUFJPUEVSVFlfRUZGRUNUX1RZUEVTKCl7cmV0dXJuIER0fV9pbml0aWFsaXplUHJvcGVydGllcygpe3N1cGVyLl9pbml0aWFsaXplUHJvcGVydGllcygpLHRoaXMuX3JlZ2lzdGVySG9zdCgpLHRoaXMuX19kYXRhQ2xpZW50c1JlYWR5PSExLHRoaXMuX19kYXRhUGVuZGluZ0NsaWVudHM9bnVsbCx0aGlzLl9fZGF0YVRvTm90aWZ5PW51bGwsdGhpcy5fX2RhdGFMaW5rZWRQYXRocz1udWxsLHRoaXMuX19kYXRhSGFzUGF0aHM9ITEsdGhpcy5fX2RhdGFDb21wb3VuZFN0b3JhZ2U9dGhpcy5fX2RhdGFDb21wb3VuZFN0b3JhZ2V8fG51bGwsdGhpcy5fX2RhdGFIb3N0PXRoaXMuX19kYXRhSG9zdHx8bnVsbCx0aGlzLl9fZGF0YVRlbXA9e30sdGhpcy5fX2RhdGFDbGllbnRzSW5pdGlhbGl6ZWQ9ITF9X3JlZ2lzdGVySG9zdCgpe2lmKG1lLmxlbmd0aCl7bGV0IHQ9bWVbbWUubGVuZ3RoLTFdO3QuX2VucXVldWVDbGllbnQodGhpcyksdGhpcy5fX2RhdGFIb3N0PXR9fV9pbml0aWFsaXplUHJvdG9Qcm9wZXJ0aWVzKHQpe3RoaXMuX19kYXRhPU9iamVjdC5jcmVhdGUodCksdGhpcy5fX2RhdGFQZW5kaW5nPU9iamVjdC5jcmVhdGUodCksdGhpcy5fX2RhdGFPbGQ9e319X2luaXRpYWxpemVJbnN0YW5jZVByb3BlcnRpZXModCl7bGV0IGU9dGhpc1tEdC5SRUFEX09OTFldO2ZvcihsZXQgbiBpbiB0KWUmJmVbbl18fCh0aGlzLl9fZGF0YVBlbmRpbmc9dGhpcy5fX2RhdGFQZW5kaW5nfHx7fSx0aGlzLl9fZGF0YU9sZD10aGlzLl9fZGF0YU9sZHx8e30sdGhpcy5fX2RhdGFbbl09dGhpcy5fX2RhdGFQZW5kaW5nW25dPXRbbl0pfV9hZGRQcm9wZXJ0eUVmZmVjdCh0LGUsbil7dGhpcy5fY3JlYXRlUHJvcGVydHlBY2Nlc3Nvcih0LGU9PUR0LlJFQURfT05MWSk7bGV0IGk9RnQodGhpcyxlLCEwKVt0XTtpfHwoaT10aGlzW2VdW3RdPVtdKSxpLnB1c2gobil9X3JlbW92ZVByb3BlcnR5RWZmZWN0KHQsZSxuKXtsZXQgaT1GdCh0aGlzLGUsITApW3RdLHI9aS5pbmRleE9mKG4pO3I+PTAmJmkuc3BsaWNlKHIsMSl9X2hhc1Byb3BlcnR5RWZmZWN0KHQsZSl7bGV0IG49dGhpc1tlXTtyZXR1cm4gQm9vbGVhbihuJiZuW3RdKX1faGFzUmVhZE9ubHlFZmZlY3QodCl7cmV0dXJuIHRoaXMuX2hhc1Byb3BlcnR5RWZmZWN0KHQsRHQuUkVBRF9PTkxZKX1faGFzTm90aWZ5RWZmZWN0KHQpe3JldHVybiB0aGlzLl9oYXNQcm9wZXJ0eUVmZmVjdCh0LER0Lk5PVElGWSl9X2hhc1JlZmxlY3RFZmZlY3QodCl7cmV0dXJuIHRoaXMuX2hhc1Byb3BlcnR5RWZmZWN0KHQsRHQuUkVGTEVDVCl9X2hhc0NvbXB1dGVkRWZmZWN0KHQpe3JldHVybiB0aGlzLl9oYXNQcm9wZXJ0eUVmZmVjdCh0LER0LkNPTVBVVEUpfV9zZXRQZW5kaW5nUHJvcGVydHlPclBhdGgodCxlLG4saSl7aWYoaXx8JChBcnJheS5pc0FycmF5KHQpP3RbMF06dCkhPT10KXtpZighaSl7bGV0IG49bnQodGhpcyx0KTtpZighKHQ9aXQodGhpcyx0LGUpKXx8IXN1cGVyLl9zaG91bGRQcm9wZXJ0eUNoYW5nZSh0LGUsbikpcmV0dXJuITF9aWYodGhpcy5fX2RhdGFIYXNQYXRocz0hMCx0aGlzLl9zZXRQZW5kaW5nUHJvcGVydHkodCxlLG4pKXJldHVybihmdW5jdGlvbiByKHQsZSxuKXtsZXQgaT10Ll9fZGF0YUxpbmtlZFBhdGhzO2lmKGkpe2xldCByO2ZvcihsZXQgbyBpbiBpKXtsZXQgYT1pW29dO1oobyxlKT8ocj1KKG8sYSxlKSx0Ll9zZXRQZW5kaW5nUHJvcGVydHlPclBhdGgocixuLCEwLCEwKSk6WihhLGUpJiYocj1KKGEsbyxlKSx0Ll9zZXRQZW5kaW5nUHJvcGVydHlPclBhdGgocixuLCEwLCEwKSl9fX0pKHRoaXMsdCxlKSwhMH1lbHNle2lmKHRoaXMuX19kYXRhSGFzQWNjZXNzb3ImJnRoaXMuX19kYXRhSGFzQWNjZXNzb3JbdF0pcmV0dXJuIHRoaXMuX3NldFBlbmRpbmdQcm9wZXJ0eSh0LGUsbik7dGhpc1t0XT1lfXJldHVybiExfV9zZXRVbm1hbmFnZWRQcm9wZXJ0eVRvTm9kZSh0LGUsbil7bj09PXRbZV0mJiJvYmplY3QiIT10eXBlb2Ygbnx8KCJjbGFzc05hbWUiPT09ZSYmKHQ9WSh0KSksdFtlXT1uKX1fc2V0UGVuZGluZ1Byb3BlcnR5KHQsZSxuKXtsZXQgaT10aGlzLl9fZGF0YUhhc1BhdGhzJiZYKHQpO3JldHVybiEhdGhpcy5fc2hvdWxkUHJvcGVydHlDaGFuZ2UodCxlLChpP3RoaXMuX19kYXRhVGVtcDp0aGlzLl9fZGF0YSlbdF0pJiYodGhpcy5fX2RhdGFQZW5kaW5nfHwodGhpcy5fX2RhdGFQZW5kaW5nPXt9LHRoaXMuX19kYXRhT2xkPXt9KSx0IGluIHRoaXMuX19kYXRhT2xkfHwodGhpcy5fX2RhdGFPbGRbdF09dGhpcy5fX2RhdGFbdF0pLGk/dGhpcy5fX2RhdGFUZW1wW3RdPWU6dGhpcy5fX2RhdGFbdF09ZSx0aGlzLl9fZGF0YVBlbmRpbmdbdF09ZSwoaXx8dGhpc1tEdC5OT1RJRlldJiZ0aGlzW0R0Lk5PVElGWV1bdF0pJiYodGhpcy5fX2RhdGFUb05vdGlmeT10aGlzLl9fZGF0YVRvTm90aWZ5fHx7fSx0aGlzLl9fZGF0YVRvTm90aWZ5W3RdPW4pLCEwKX1fc2V0UHJvcGVydHkodCxlKXt0aGlzLl9zZXRQZW5kaW5nUHJvcGVydHkodCxlLCEwKSYmdGhpcy5faW52YWxpZGF0ZVByb3BlcnRpZXMoKX1faW52YWxpZGF0ZVByb3BlcnRpZXMoKXt0aGlzLl9fZGF0YVJlYWR5JiZ0aGlzLl9mbHVzaFByb3BlcnRpZXMoKX1fZW5xdWV1ZUNsaWVudCh0KXt0aGlzLl9fZGF0YVBlbmRpbmdDbGllbnRzPXRoaXMuX19kYXRhUGVuZGluZ0NsaWVudHN8fFtdLHQhPT10aGlzJiZ0aGlzLl9fZGF0YVBlbmRpbmdDbGllbnRzLnB1c2godCl9X2ZsdXNoQ2xpZW50cygpe3RoaXMuX19kYXRhQ2xpZW50c1JlYWR5P3RoaXMuX19lbmFibGVPckZsdXNoQ2xpZW50cygpOih0aGlzLl9fZGF0YUNsaWVudHNSZWFkeT0hMCx0aGlzLl9yZWFkeUNsaWVudHMoKSx0aGlzLl9fZGF0YVJlYWR5PSEwKX1fX2VuYWJsZU9yRmx1c2hDbGllbnRzKCl7bGV0IHQ9dGhpcy5fX2RhdGFQZW5kaW5nQ2xpZW50cztpZih0KXt0aGlzLl9fZGF0YVBlbmRpbmdDbGllbnRzPW51bGw7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspe2xldCBuPXRbZV07bi5fX2RhdGFFbmFibGVkP24uX19kYXRhUGVuZGluZyYmbi5fZmx1c2hQcm9wZXJ0aWVzKCk6bi5fZW5hYmxlUHJvcGVydGllcygpfX19X3JlYWR5Q2xpZW50cygpe3RoaXMuX19lbmFibGVPckZsdXNoQ2xpZW50cygpfXNldFByb3BlcnRpZXModCxlKXtmb3IobGV0IG4gaW4gdCkhZSYmdGhpc1tEdC5SRUFEX09OTFldJiZ0aGlzW0R0LlJFQURfT05MWV1bbl18fHRoaXMuX3NldFBlbmRpbmdQcm9wZXJ0eU9yUGF0aChuLHRbbl0sITApO3RoaXMuX2ludmFsaWRhdGVQcm9wZXJ0aWVzKCl9cmVhZHkoKXt0aGlzLl9mbHVzaFByb3BlcnRpZXMoKSx0aGlzLl9fZGF0YUNsaWVudHNSZWFkeXx8dGhpcy5fZmx1c2hDbGllbnRzKCksdGhpcy5fX2RhdGFQZW5kaW5nJiZ0aGlzLl9mbHVzaFByb3BlcnRpZXMoKX1fcHJvcGVydGllc0NoYW5nZWQodCxlLG4pe2xldCBpLHI9dGhpcy5fX2RhdGFIYXNQYXRoczt0aGlzLl9fZGF0YUhhc1BhdGhzPSExLCR0KHRoaXMsZSxuLHIpLGk9dGhpcy5fX2RhdGFUb05vdGlmeSx0aGlzLl9fZGF0YVRvTm90aWZ5PW51bGwsdGhpcy5fcHJvcGFnYXRlUHJvcGVydHlDaGFuZ2VzKGUsbixyKSx0aGlzLl9mbHVzaENsaWVudHMoKSxWdCh0aGlzLHRoaXNbRHQuUkVGTEVDVF0sZSxuLHIpLFZ0KHRoaXMsdGhpc1tEdC5PQlNFUlZFXSxlLG4sciksaSYmKGZ1bmN0aW9uIG8odCxlLG4saSxyKXtsZXQgbyxhLHM9dFtEdC5OT1RJRlldLGw9T3QrKztmb3IobGV0IGEgaW4gZSllW2FdJiYocyYmVXQodCxzLGwsYSxuLGkscil8fHImJld0KHQsYSxuKSkmJihvPSEwKTtvJiYoYT10Ll9fZGF0YUhvc3QpJiZhLl9pbnZhbGlkYXRlUHJvcGVydGllcyYmYS5faW52YWxpZGF0ZVByb3BlcnRpZXMoKX0pKHRoaXMsaSxlLG4sciksMT09dGhpcy5fX2RhdGFDb3VudGVyJiYodGhpcy5fX2RhdGFUZW1wPXt9KX1fcHJvcGFnYXRlUHJvcGVydHlDaGFuZ2VzKHQsZSxuKXt0aGlzW0R0LlBST1BBR0FURV0mJlZ0KHRoaXMsdGhpc1tEdC5QUk9QQUdBVEVdLHQsZSxuKSx0aGlzLl9fdGVtcGxhdGVJbmZvJiZ0aGlzLl9ydW5FZmZlY3RzRm9yVGVtcGxhdGUodGhpcy5fX3RlbXBsYXRlSW5mbyx0LGUsbil9X3J1bkVmZmVjdHNGb3JUZW1wbGF0ZSh0LGUsbixpKXtjb25zdCByPShlLGkpPT57VnQodGhpcyx0LnByb3BlcnR5RWZmZWN0cyxlLG4saSx0Lm5vZGVMaXN0KTtmb3IobGV0IHI9dC5maXJzdENoaWxkO3I7cj1yLm5leHRTaWJsaW5nKXRoaXMuX3J1bkVmZmVjdHNGb3JUZW1wbGF0ZShyLGUsbixpKX07dC5ydW5FZmZlY3RzP3QucnVuRWZmZWN0cyhyLGUsaSk6cihlLGkpfWxpbmtQYXRocyh0LGUpe3Q9dHQodCksZT10dChlKSx0aGlzLl9fZGF0YUxpbmtlZFBhdGhzPXRoaXMuX19kYXRhTGlua2VkUGF0aHN8fHt9LHRoaXMuX19kYXRhTGlua2VkUGF0aHNbdF09ZX11bmxpbmtQYXRocyh0KXt0PXR0KHQpLHRoaXMuX19kYXRhTGlua2VkUGF0aHMmJmRlbGV0ZSB0aGlzLl9fZGF0YUxpbmtlZFBhdGhzW3RdfW5vdGlmeVNwbGljZXModCxlKXtsZXQgbj17cGF0aDoiIn07ZGUodGhpcyxudCh0aGlzLHQsbiksbi5wYXRoLGUpfWdldCh0LGUpe3JldHVybiBudChlfHx0aGlzLHQpfXNldCh0LGUsbil7bj9pdChuLHQsZSk6dGhpc1tEdC5SRUFEX09OTFldJiZ0aGlzW0R0LlJFQURfT05MWV1bdF18fHRoaXMuX3NldFBlbmRpbmdQcm9wZXJ0eU9yUGF0aCh0LGUsITApJiZ0aGlzLl9pbnZhbGlkYXRlUHJvcGVydGllcygpfXB1c2godCwuLi5lKXtsZXQgbj17cGF0aDoiIn0saT1udCh0aGlzLHQsbikscj1pLmxlbmd0aCxvPWkucHVzaCguLi5lKTtyZXR1cm4gZS5sZW5ndGgmJnBlKHRoaXMsaSxuLnBhdGgscixlLmxlbmd0aCxbXSksb31wb3AodCl7bGV0IGU9e3BhdGg6IiJ9LG49bnQodGhpcyx0LGUpLGk9Qm9vbGVhbihuLmxlbmd0aCkscj1uLnBvcCgpO3JldHVybiBpJiZwZSh0aGlzLG4sZS5wYXRoLG4ubGVuZ3RoLDAsW3JdKSxyfXNwbGljZSh0LGUsbiwuLi5pKXtsZXQgcixvPXtwYXRoOiIifSxhPW50KHRoaXMsdCxvKTtyZXR1cm4gZTwwP2U9YS5sZW5ndGgtTWF0aC5mbG9vcigtZSk6ZSYmKGU9TWF0aC5mbG9vcihlKSkscj0yPT09YXJndW1lbnRzLmxlbmd0aD9hLnNwbGljZShlKTphLnNwbGljZShlLG4sLi4uaSksKGkubGVuZ3RofHxyLmxlbmd0aCkmJnBlKHRoaXMsYSxvLnBhdGgsZSxpLmxlbmd0aCxyKSxyfXNoaWZ0KHQpe2xldCBlPXtwYXRoOiIifSxuPW50KHRoaXMsdCxlKSxpPUJvb2xlYW4obi5sZW5ndGgpLHI9bi5zaGlmdCgpO3JldHVybiBpJiZwZSh0aGlzLG4sZS5wYXRoLDAsMCxbcl0pLHJ9dW5zaGlmdCh0LC4uLmUpe2xldCBuPXtwYXRoOiIifSxpPW50KHRoaXMsdCxuKSxyPWkudW5zaGlmdCguLi5lKTtyZXR1cm4gZS5sZW5ndGgmJnBlKHRoaXMsaSxuLnBhdGgsMCxlLmxlbmd0aCxbXSkscn1ub3RpZnlQYXRoKHQsZSl7bGV0IG47aWYoMT09YXJndW1lbnRzLmxlbmd0aCl7bGV0IGk9e3BhdGg6IiJ9O2U9bnQodGhpcyx0LGkpLG49aS5wYXRofWVsc2Ugbj1BcnJheS5pc0FycmF5KHQpP3R0KHQpOnQ7dGhpcy5fc2V0UGVuZGluZ1Byb3BlcnR5T3JQYXRoKG4sZSwhMCwhMCkmJnRoaXMuX2ludmFsaWRhdGVQcm9wZXJ0aWVzKCl9X2NyZWF0ZVJlYWRPbmx5UHJvcGVydHkodCxlKXt0aGlzLl9hZGRQcm9wZXJ0eUVmZmVjdCh0LER0LlJFQURfT05MWSksZSYmKHRoaXNbIl9zZXQiKyhmdW5jdGlvbiBuKHQpe3JldHVybiB0WzBdLnRvVXBwZXJDYXNlKCkrdC5zdWJzdHJpbmcoMSl9KSh0KV09ZnVuY3Rpb24oZSl7dGhpcy5fc2V0UHJvcGVydHkodCxlKX0pfV9jcmVhdGVQcm9wZXJ0eU9ic2VydmVyKHQsZSxuKXtsZXQgaT17cHJvcGVydHk6dCxtZXRob2Q6ZSxkeW5hbWljRm46Qm9vbGVhbihuKX07dGhpcy5fYWRkUHJvcGVydHlFZmZlY3QodCxEdC5PQlNFUlZFLHtmbjpHdCxpbmZvOmksdHJpZ2dlcjp7bmFtZTp0fX0pLG4mJnRoaXMuX2FkZFByb3BlcnR5RWZmZWN0KGUsRHQuT0JTRVJWRSx7Zm46R3QsaW5mbzppLHRyaWdnZXI6e25hbWU6ZX19KX1fY3JlYXRlTWV0aG9kT2JzZXJ2ZXIodCxlKXtsZXQgbj1jZSh0KTtpZighbil0aHJvdyBuZXcgRXJyb3IoIk1hbGZvcm1lZCBvYnNlcnZlciBleHByZXNzaW9uICciK3QrIiciKTtyZSh0aGlzLG4sRHQuT0JTRVJWRSxvZSxudWxsLGUpfV9jcmVhdGVOb3RpZnlpbmdQcm9wZXJ0eSh0KXt0aGlzLl9hZGRQcm9wZXJ0eUVmZmVjdCh0LER0Lk5PVElGWSx7Zm46WXQsaW5mbzp7ZXZlbnROYW1lOmx0KHQpKyItY2hhbmdlZCIscHJvcGVydHk6dH19KX1fY3JlYXRlUmVmbGVjdGVkUHJvcGVydHkodCl7bGV0IGU9dGhpcy5jb25zdHJ1Y3Rvci5hdHRyaWJ1dGVOYW1lRm9yUHJvcGVydHkodCk7Ii0iPT09ZVswXT9jb25zb2xlLndhcm4oIlByb3BlcnR5ICIrdCsiIGNhbm5vdCBiZSByZWZsZWN0ZWQgdG8gYXR0cmlidXRlICIrZSsnIGJlY2F1c2UgIi0iIGlzIG5vdCBhIHZhbGlkIHN0YXJ0aW5nIGF0dHJpYnV0ZSBuYW1lLiBVc2UgYSBsb3dlcmNhc2UgZmlyc3QgbGV0dGVyIGZvciB0aGUgcHJvcGVydHkgaW5zdGVhZC4nKTp0aGlzLl9hZGRQcm9wZXJ0eUVmZmVjdCh0LER0LlJFRkxFQ1Qse2ZuOlh0LGluZm86e2F0dHJOYW1lOmV9fSl9X2NyZWF0ZUNvbXB1dGVkUHJvcGVydHkodCxlLG4pe2xldCBpPWNlKGUpO2lmKCFpKXRocm93IG5ldyBFcnJvcigiTWFsZm9ybWVkIGNvbXB1dGVkIGV4cHJlc3Npb24gJyIrZSsiJyIpO2NvbnN0IHI9cmUodGhpcyxpLER0LkNPTVBVVEUsSnQsdCxuKTtGdCh0aGlzLEJ0KVt0XT1yfV9tYXJzaGFsQXJncyh0LGUsbil7Y29uc3QgaT10aGlzLl9fZGF0YSxyPVtdO2ZvcihsZXQgbz0wLGE9dC5sZW5ndGg7bzxhO28rKyl7bGV0e25hbWU6YSxzdHJ1Y3R1cmVkOnMsd2lsZGNhcmQ6bCx2YWx1ZTpjLGxpdGVyYWw6dX09dFtvXTtpZighdSlpZihsKXtjb25zdCB0PVooYSxlKSxyPWhlKGksbix0P2U6YSk7Yz17cGF0aDp0P2U6YSx2YWx1ZTpyLGJhc2U6dD9udChpLGEpOnJ9fWVsc2UgYz1zP2hlKGksbixhKTppW2FdO2lmKEUmJiF0aGlzLl9vdmVycmlkZUxlZ2FjeVVuZGVmaW5lZCYmdm9pZCAwPT09YyYmdC5sZW5ndGg+MSlyZXR1cm4genQ7cltvXT1jfXJldHVybiByfXN0YXRpYyBhZGRQcm9wZXJ0eUVmZmVjdCh0LGUsbil7dGhpcy5wcm90b3R5cGUuX2FkZFByb3BlcnR5RWZmZWN0KHQsZSxuKX1zdGF0aWMgY3JlYXRlUHJvcGVydHlPYnNlcnZlcih0LGUsbil7dGhpcy5wcm90b3R5cGUuX2NyZWF0ZVByb3BlcnR5T2JzZXJ2ZXIodCxlLG4pfXN0YXRpYyBjcmVhdGVNZXRob2RPYnNlcnZlcih0LGUpe3RoaXMucHJvdG90eXBlLl9jcmVhdGVNZXRob2RPYnNlcnZlcih0LGUpfXN0YXRpYyBjcmVhdGVOb3RpZnlpbmdQcm9wZXJ0eSh0KXt0aGlzLnByb3RvdHlwZS5fY3JlYXRlTm90aWZ5aW5nUHJvcGVydHkodCl9c3RhdGljIGNyZWF0ZVJlYWRPbmx5UHJvcGVydHkodCxlKXt0aGlzLnByb3RvdHlwZS5fY3JlYXRlUmVhZE9ubHlQcm9wZXJ0eSh0LGUpfXN0YXRpYyBjcmVhdGVSZWZsZWN0ZWRQcm9wZXJ0eSh0KXt0aGlzLnByb3RvdHlwZS5fY3JlYXRlUmVmbGVjdGVkUHJvcGVydHkodCl9c3RhdGljIGNyZWF0ZUNvbXB1dGVkUHJvcGVydHkodCxlLG4pe3RoaXMucHJvdG90eXBlLl9jcmVhdGVDb21wdXRlZFByb3BlcnR5KHQsZSxuKX1zdGF0aWMgYmluZFRlbXBsYXRlKHQpe3JldHVybiB0aGlzLnByb3RvdHlwZS5fYmluZFRlbXBsYXRlKHQpfV9iaW5kVGVtcGxhdGUodCxlKXtsZXQgbj10aGlzLmNvbnN0cnVjdG9yLl9wYXJzZVRlbXBsYXRlKHQpLGk9dGhpcy5fX3ByZUJvdW5kVGVtcGxhdGVJbmZvPT1uO2lmKCFpKWZvcihsZXQgdCBpbiBuLnByb3BlcnR5RWZmZWN0cyl0aGlzLl9jcmVhdGVQcm9wZXJ0eUFjY2Vzc29yKHQpO2lmKGUpaWYobj1PYmplY3QuY3JlYXRlKG4pLG4ud2FzUHJlQm91bmQ9aSx0aGlzLl9fdGVtcGxhdGVJbmZvKXtjb25zdCBlPXQuX3BhcmVudFRlbXBsYXRlSW5mb3x8dGhpcy5fX3RlbXBsYXRlSW5mbyxpPWUubGFzdENoaWxkO24ucGFyZW50PWUsZS5sYXN0Q2hpbGQ9bixuLnByZXZpb3VzU2libGluZz1pLGk/aS5uZXh0U2libGluZz1uOmUuZmlyc3RDaGlsZD1ufWVsc2UgdGhpcy5fX3RlbXBsYXRlSW5mbz1uO2Vsc2UgdGhpcy5fX3ByZUJvdW5kVGVtcGxhdGVJbmZvPW47cmV0dXJuIG59c3RhdGljIF9hZGRUZW1wbGF0ZVByb3BlcnR5RWZmZWN0KHQsZSxuKXsodC5ob3N0UHJvcHM9dC5ob3N0UHJvcHN8fHt9KVtlXT0hMDtsZXQgaT10LnByb3BlcnR5RWZmZWN0cz10LnByb3BlcnR5RWZmZWN0c3x8e307KGlbZV09aVtlXXx8W10pLnB1c2gobil9X3N0YW1wVGVtcGxhdGUodCxlKXtlPWV8fHRoaXMuX2JpbmRUZW1wbGF0ZSh0LCEwKSxtZS5wdXNoKHRoaXMpO2xldCBuPXN1cGVyLl9zdGFtcFRlbXBsYXRlKHQsZSk7aWYobWUucG9wKCksZS5ub2RlTGlzdD1uLm5vZGVMaXN0LCFlLndhc1ByZUJvdW5kKXtsZXQgdD1lLmNoaWxkTm9kZXM9W107Zm9yKGxldCBlPW4uZmlyc3RDaGlsZDtlO2U9ZS5uZXh0U2libGluZyl0LnB1c2goZSl9cmV0dXJuIG4udGVtcGxhdGVJbmZvPWUsKGZ1bmN0aW9uIGkodCxlKXtsZXR7bm9kZUxpc3Q6bixub2RlSW5mb0xpc3Q6aX09ZTtpZihpLmxlbmd0aClmb3IobGV0IGU9MDtlPGkubGVuZ3RoO2UrKyl7bGV0IHI9bltlXSxvPWlbZV0uYmluZGluZ3M7aWYobylmb3IobGV0IGU9MDtlPG8ubGVuZ3RoO2UrKyl7bGV0IG49b1tlXTtuZShyLG4pLGllKHIsdCxuKX1yLl9fZGF0YUhvc3Q9dH19KSh0aGlzLGUpLHRoaXMuX19kYXRhQ2xpZW50c1JlYWR5JiYodGhpcy5fcnVuRWZmZWN0c0ZvclRlbXBsYXRlKGUsdGhpcy5fX2RhdGEsbnVsbCwhMSksdGhpcy5fZmx1c2hDbGllbnRzKCkpLG59X3JlbW92ZUJvdW5kRG9tKHQpe2NvbnN0IGU9dC50ZW1wbGF0ZUluZm8se3ByZXZpb3VzU2libGluZzpuLG5leHRTaWJsaW5nOmkscGFyZW50OnJ9PWU7bj9uLm5leHRTaWJsaW5nPWk6ciYmKHIuZmlyc3RDaGlsZD1pKSxpP2kucHJldmlvdXNTaWJsaW5nPW46ciYmKHIubGFzdENoaWxkPW4pLGUubmV4dFNpYmxpbmc9ZS5wcmV2aW91c1NpYmxpbmc9bnVsbDtsZXQgbz1lLmNoaWxkTm9kZXM7Zm9yKGxldCB0PTA7dDxvLmxlbmd0aDt0Kyspe2xldCBlPW9bdF07WShZKGUpLnBhcmVudE5vZGUpLnJlbW92ZUNoaWxkKGUpfX1zdGF0aWMgX3BhcnNlVGVtcGxhdGVOb2RlKHQsbixpKXtsZXQgcj1lLl9wYXJzZVRlbXBsYXRlTm9kZS5jYWxsKHRoaXMsdCxuLGkpO2lmKHQubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSl7bGV0IGU9dGhpcy5fcGFyc2VCaW5kaW5ncyh0LnRleHRDb250ZW50LG4pO2UmJih0LnRleHRDb250ZW50PWxlKGUpfHwiICIsUXQodGhpcyxuLGksInRleHQiLCJ0ZXh0Q29udGVudCIsZSkscj0hMCl9cmV0dXJuIHJ9c3RhdGljIF9wYXJzZVRlbXBsYXRlTm9kZUF0dHJpYnV0ZSh0LG4saSxyLG8pe2xldCBhPXRoaXMuX3BhcnNlQmluZGluZ3MobyxuKTtpZihhKXtsZXQgZT1yLG89InByb3BlcnR5IjtIdC50ZXN0KHIpP289ImF0dHJpYnV0ZSI6IiQiPT1yW3IubGVuZ3RoLTFdJiYocj1yLnNsaWNlKDAsLTEpLG89ImF0dHJpYnV0ZSIpO2xldCBzPWxlKGEpO3JldHVybiBzJiYiYXR0cmlidXRlIj09byYmKCJjbGFzcyI9PXImJnQuaGFzQXR0cmlidXRlKCJjbGFzcyIpJiYocys9IiAiK3QuZ2V0QXR0cmlidXRlKHIpKSx0LnNldEF0dHJpYnV0ZShyLHMpKSwiYXR0cmlidXRlIj09byYmImRpc2FibGUtdXBncmFkZSQiPT1lJiZ0LnNldEF0dHJpYnV0ZShyLCIiKSwiaW5wdXQiPT09dC5sb2NhbE5hbWUmJiJ2YWx1ZSI9PT1lJiZ0LnNldEF0dHJpYnV0ZShlLCIiKSx0LnJlbW92ZUF0dHJpYnV0ZShlKSwicHJvcGVydHkiPT09byYmKHI9c3QocikpLFF0KHRoaXMsbixpLG8scixhLHMpLCEwfXJldHVybiBlLl9wYXJzZVRlbXBsYXRlTm9kZUF0dHJpYnV0ZS5jYWxsKHRoaXMsdCxuLGkscixvKX1zdGF0aWMgX3BhcnNlVGVtcGxhdGVOZXN0ZWRUZW1wbGF0ZSh0LG4saSl7bGV0IHI9ZS5fcGFyc2VUZW1wbGF0ZU5lc3RlZFRlbXBsYXRlLmNhbGwodGhpcyx0LG4saSk7Y29uc3Qgbz10LnBhcmVudE5vZGUsYT1pLnRlbXBsYXRlSW5mbyxzPSJkb20taWYiPT09by5sb2NhbE5hbWU7QyYmKHN8fCJkb20tcmVwZWF0Ij09PW8ubG9jYWxOYW1lKSYmKG8ucmVtb3ZlQ2hpbGQodCksKGk9aS5wYXJlbnRJbmZvKS50ZW1wbGF0ZUluZm89YSxpLm5vdGVkPSEwLHI9ITEpO2xldCBsPWEuaG9zdFByb3BzO2lmKEEmJnMpbCYmKG4uaG9zdFByb3BzPU9iamVjdC5hc3NpZ24obi5ob3N0UHJvcHN8fHt9LGwpLEN8fChpLnBhcmVudEluZm8ubm90ZWQ9ITApKTtlbHNle2xldCB0PSJ7Ijtmb3IobGV0IGUgaW4gbCl7UXQodGhpcyxuLGksInByb3BlcnR5IiwiX2hvc3RfIitlLFt7bW9kZTp0LHNvdXJjZTplLGRlcGVuZGVuY2llczpbZV0saG9zdFByb3A6ITB9XSl9fXJldHVybiByfXN0YXRpYyBfcGFyc2VCaW5kaW5ncyh0LGUpe2xldCBuLGk9W10scj0wO2Zvcig7bnVsbCE9PShuPXNlLmV4ZWModCkpOyl7bi5pbmRleD5yJiZpLnB1c2goe2xpdGVyYWw6dC5zbGljZShyLG4uaW5kZXgpfSk7bGV0IG89blsxXVswXSxhPUJvb2xlYW4oblsyXSkscz1uWzNdLnRyaW0oKSxsPSExLGM9IiIsdT0tMTsieyI9PW8mJih1PXMuaW5kZXhPZigiOjoiKSk+MCYmKGM9cy5zdWJzdHJpbmcodSsyKSxzPXMuc3Vic3RyaW5nKDAsdSksbD0hMCk7bGV0IGg9Y2UocyksZD1bXTtpZihoKXtsZXR7YXJnczp0LG1ldGhvZE5hbWU6bn09aDtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl7bGV0IG49dFtlXTtuLmxpdGVyYWx8fGQucHVzaChuKX1sZXQgaT1lLmR5bmFtaWNGbnM7KGkmJmlbbl18fGguc3RhdGljKSYmKGQucHVzaChuKSxoLmR5bmFtaWNGbj0hMCl9ZWxzZSBkLnB1c2gocyk7aS5wdXNoKHtzb3VyY2U6cyxtb2RlOm8sbmVnYXRlOmEsY3VzdG9tRXZlbnQ6bCxzaWduYXR1cmU6aCxkZXBlbmRlbmNpZXM6ZCxldmVudDpjfSkscj1zZS5sYXN0SW5kZXh9aWYociYmcjx0Lmxlbmd0aCl7bGV0IGU9dC5zdWJzdHJpbmcocik7ZSYmaS5wdXNoKHtsaXRlcmFsOmV9KX1yZXR1cm4gaS5sZW5ndGg/aTpudWxsfXN0YXRpYyBfZXZhbHVhdGVCaW5kaW5nKHQsZSxuLGkscixvKXtsZXQgYTtyZXR1cm4gYT1lLnNpZ25hdHVyZT9vZSh0LG4saSwwLGUuc2lnbmF0dXJlKTpuIT1lLnNvdXJjZT9udCh0LGUuc291cmNlKTpvJiZYKG4pP250KHQsbik6dC5fX2RhdGFbbl0sZS5uZWdhdGUmJihhPSFhKSxhfX19KSksbWU9W107Y29uc3QgZ2U9SSgodD0+e2NvbnN0IGU9eHQodCk7ZnVuY3Rpb24gbih0KXtjb25zdCBlPU9iamVjdC5nZXRQcm90b3R5cGVPZih0KTtyZXR1cm4gZS5wcm90b3R5cGUgaW5zdGFuY2VvZiByP2U6bnVsbH1mdW5jdGlvbiBpKHQpe2lmKCF0Lmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9fb3duUHJvcGVydGllcyIsdCkpKXtsZXQgZT1udWxsO2lmKHQuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgicHJvcGVydGllcyIsdCkpKXtjb25zdCBuPXQucHJvcGVydGllcztuJiYoZT0oCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmZ1bmN0aW9uIGUodCl7Y29uc3QgZT17fTtmb3IobGV0IG4gaW4gdCl7Y29uc3QgaT10W25dO2Vbbl09ImZ1bmN0aW9uIj09dHlwZW9mIGk/e3R5cGU6aX06aX1yZXR1cm4gZX0pKG4pKX10Ll9fb3duUHJvcGVydGllcz1lfXJldHVybiB0Ll9fb3duUHJvcGVydGllc31jbGFzcyByIGV4dGVuZHMgZXtzdGF0aWMgZ2V0IG9ic2VydmVkQXR0cmlidXRlcygpe2lmKCF0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9fb2JzZXJ2ZWRBdHRyaWJ1dGVzIix0aGlzKSkpe2NvbnN0IHQ9dGhpcy5fcHJvcGVydGllczt0aGlzLl9fb2JzZXJ2ZWRBdHRyaWJ1dGVzPXQ/T2JqZWN0LmtleXModCkubWFwKCh0PT50aGlzLnByb3RvdHlwZS5fYWRkUHJvcGVydHlUb0F0dHJpYnV0ZU1hcCh0KSkpOltdfXJldHVybiB0aGlzLl9fb2JzZXJ2ZWRBdHRyaWJ1dGVzfXN0YXRpYyBmaW5hbGl6ZSgpe2lmKCF0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9fZmluYWxpemVkIix0aGlzKSkpe2NvbnN0IHQ9bih0aGlzKTt0JiZ0LmZpbmFsaXplKCksdGhpcy5fX2ZpbmFsaXplZD0hMCx0aGlzLl9maW5hbGl6ZUNsYXNzKCl9fXN0YXRpYyBfZmluYWxpemVDbGFzcygpe2NvbnN0IHQ9aSh0aGlzKTt0JiZ0aGlzLmNyZWF0ZVByb3BlcnRpZXModCl9c3RhdGljIGdldCBfcHJvcGVydGllcygpe2lmKCF0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9fcHJvcGVydGllcyIsdGhpcykpKXtjb25zdCB0PW4odGhpcyk7dGhpcy5fX3Byb3BlcnRpZXM9T2JqZWN0LmFzc2lnbih7fSx0JiZ0Ll9wcm9wZXJ0aWVzLGkodGhpcykpfXJldHVybiB0aGlzLl9fcHJvcGVydGllc31zdGF0aWMgdHlwZUZvclByb3BlcnR5KHQpe2NvbnN0IGU9dGhpcy5fcHJvcGVydGllc1t0XTtyZXR1cm4gZSYmZS50eXBlfV9pbml0aWFsaXplUHJvcGVydGllcygpe3RoaXMuY29uc3RydWN0b3IuZmluYWxpemUoKSxzdXBlci5faW5pdGlhbGl6ZVByb3BlcnRpZXMoKX1jb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrJiZzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuX2VuYWJsZVByb3BlcnRpZXMoKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrJiZzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfX1yZXR1cm4gcn0pKSxfZT13aW5kb3cuU2hhZHlDU1MmJndpbmRvdy5TaGFkeUNTUy5jc3NCdWlsZCx5ZT1JKCh0PT57Y29uc3QgZT1nZShmZSh0KSk7ZnVuY3Rpb24gbih0LGUsbixpKXtuLmNvbXB1dGVkJiYobi5yZWFkT25seT0hMCksbi5jb21wdXRlZCYmKHQuX2hhc1JlYWRPbmx5RWZmZWN0KGUpP2NvbnNvbGUud2FybihgQ2Fubm90IHJlZGVmaW5lIGNvbXB1dGVkIHByb3BlcnR5ICcke2V9Jy5gKTp0Ll9jcmVhdGVDb21wdXRlZFByb3BlcnR5KGUsbi5jb21wdXRlZCxpKSksbi5yZWFkT25seSYmIXQuX2hhc1JlYWRPbmx5RWZmZWN0KGUpP3QuX2NyZWF0ZVJlYWRPbmx5UHJvcGVydHkoZSwhbi5jb21wdXRlZCk6ITE9PT1uLnJlYWRPbmx5JiZ0Ll9oYXNSZWFkT25seUVmZmVjdChlKSYmY29uc29sZS53YXJuKGBDYW5ub3QgbWFrZSByZWFkT25seSBwcm9wZXJ0eSAnJHtlfScgbm9uLXJlYWRPbmx5LmApLG4ucmVmbGVjdFRvQXR0cmlidXRlJiYhdC5faGFzUmVmbGVjdEVmZmVjdChlKT90Ll9jcmVhdGVSZWZsZWN0ZWRQcm9wZXJ0eShlKTohMT09PW4ucmVmbGVjdFRvQXR0cmlidXRlJiZ0Ll9oYXNSZWZsZWN0RWZmZWN0KGUpJiZjb25zb2xlLndhcm4oYENhbm5vdCBtYWtlIHJlZmxlY3RlZCBwcm9wZXJ0eSAnJHtlfScgbm9uLXJlZmxlY3RlZC5gKSxuLm5vdGlmeSYmIXQuX2hhc05vdGlmeUVmZmVjdChlKT90Ll9jcmVhdGVOb3RpZnlpbmdQcm9wZXJ0eShlKTohMT09PW4ubm90aWZ5JiZ0Ll9oYXNOb3RpZnlFZmZlY3QoZSkmJmNvbnNvbGUud2FybihgQ2Fubm90IG1ha2Ugbm90aWZ5IHByb3BlcnR5ICcke2V9JyBub24tbm90aWZ5LmApLG4ub2JzZXJ2ZXImJnQuX2NyZWF0ZVByb3BlcnR5T2JzZXJ2ZXIoZSxuLm9ic2VydmVyLGlbbi5vYnNlcnZlcl0pLHQuX2FkZFByb3BlcnR5VG9BdHRyaWJ1dGVNYXAoZSl9ZnVuY3Rpb24gaSh0LGUsbixpKXtpZighX2Upe2NvbnN0IHI9ZS5jb250ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInN0eWxlIiksbz1HKGUpLGE9KGZ1bmN0aW9uIHIodCl7bGV0IGU9Rih0KTtyZXR1cm4gZT9XKGUpOltdfSkobikscz1lLmNvbnRlbnQuZmlyc3RFbGVtZW50Q2hpbGQ7Zm9yKGxldCBuPTA7bjxhLmxlbmd0aDtuKyspe2xldCByPWFbbl07ci50ZXh0Q29udGVudD10Ll9wcm9jZXNzU3R5bGVUZXh0KHIudGV4dENvbnRlbnQsaSksZS5jb250ZW50Lmluc2VydEJlZm9yZShyLHMpfWxldCBsPTA7Zm9yKGxldCBlPTA7ZTxvLmxlbmd0aDtlKyspe2xldCBuPW9bZV0sYT1yW2xdO2EhPT1uPyhuPW4uY2xvbmVOb2RlKCEwKSxhLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG4sYSkpOmwrKyxuLnRleHRDb250ZW50PXQuX3Byb2Nlc3NTdHlsZVRleHQobi50ZXh0Q29udGVudCxpKX19aWYod2luZG93LlNoYWR5Q1NTJiZ3aW5kb3cuU2hhZHlDU1MucHJlcGFyZVRlbXBsYXRlKGUsbiksUCYmX2UmJmcpe2NvbnN0IG49ZS5jb250ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInN0eWxlIik7aWYobil7bGV0IGU9IiI7QXJyYXkuZnJvbShuKS5mb3JFYWNoKCh0PT57ZSs9dC50ZXh0Q29udGVudCx0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCl9KSksdC5fc3R5bGVTaGVldD1uZXcgQ1NTU3R5bGVTaGVldCx0Ll9zdHlsZVNoZWV0LnJlcGxhY2VTeW5jKGUpfX19cmV0dXJuIGNsYXNzIGV4dGVuZHMgZXtzdGF0aWMgZ2V0IHBvbHltZXJFbGVtZW50VmVyc2lvbigpe3JldHVybiIzLjQuMSJ9c3RhdGljIF9maW5hbGl6ZUNsYXNzKCl7ZS5fZmluYWxpemVDbGFzcy5jYWxsKHRoaXMpO2NvbnN0IHQ9KGZ1bmN0aW9uIG4odCl7cmV0dXJuIHQuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiX19vd25PYnNlcnZlcnMiLHQpKXx8KHQuX19vd25PYnNlcnZlcnM9dC5oYXNPd25Qcm9wZXJ0eShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJvYnNlcnZlcnMiLHQpKT90Lm9ic2VydmVyczpudWxsKSx0Ll9fb3duT2JzZXJ2ZXJzfSkodGhpcyk7dCYmdGhpcy5jcmVhdGVPYnNlcnZlcnModCx0aGlzLl9wcm9wZXJ0aWVzKSx0aGlzLl9wcmVwYXJlVGVtcGxhdGUoKX1zdGF0aWMgX3ByZXBhcmVUZW1wbGF0ZSgpe2xldCB0PXRoaXMudGVtcGxhdGU7dCYmKCJzdHJpbmciPT10eXBlb2YgdD8oY29uc29sZS5lcnJvcigidGVtcGxhdGUgZ2V0dGVyIG11c3QgcmV0dXJuIEhUTUxUZW1wbGF0ZUVsZW1lbnQiKSx0PW51bGwpOnd8fCh0PXQuY2xvbmVOb2RlKCEwKSkpLHRoaXMucHJvdG90eXBlLl90ZW1wbGF0ZT10fXN0YXRpYyBjcmVhdGVQcm9wZXJ0aWVzKHQpe2ZvcihsZXQgZSBpbiB0KW4odGhpcy5wcm90b3R5cGUsZSx0W2VdLHQpfXN0YXRpYyBjcmVhdGVPYnNlcnZlcnModCxlKXtjb25zdCBuPXRoaXMucHJvdG90eXBlO2ZvcihsZXQgaT0wO2k8dC5sZW5ndGg7aSsrKW4uX2NyZWF0ZU1ldGhvZE9ic2VydmVyKHRbaV0sZSl9c3RhdGljIGdldCB0ZW1wbGF0ZSgpe2lmKCF0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl90ZW1wbGF0ZSIsdGhpcykpKXtjb25zdCB0PXRoaXMucHJvdG90eXBlLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl90ZW1wbGF0ZSIsdGhpcy5wcm90b3R5cGUpKT90aGlzLnByb3RvdHlwZS5fdGVtcGxhdGU6dm9pZCAwO3RoaXMuX3RlbXBsYXRlPXZvaWQgMCE9PXQ/dDp0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoImlzIix0aGlzKSkmJihmdW5jdGlvbiBlKHQpe2xldCBlPW51bGw7aWYodCYmKCFifHx4KSYmKGU9Qi5pbXBvcnQodCwidGVtcGxhdGUiKSxiJiYhZSkpdGhyb3cgbmV3IEVycm9yKGBzdHJpY3RUZW1wbGF0ZVBvbGljeTogZXhwZWN0aW5nIGRvbS1tb2R1bGUgb3IgbnVsbCB0ZW1wbGF0ZSBmb3IgJHt0fWApO3JldHVybiBlfSkodGhpcy5pcyl8fE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzLnByb3RvdHlwZSkuY29uc3RydWN0b3IudGVtcGxhdGV9cmV0dXJuIHRoaXMuX3RlbXBsYXRlfXN0YXRpYyBzZXQgdGVtcGxhdGUodCl7dGhpcy5fdGVtcGxhdGU9dH1zdGF0aWMgZ2V0IGltcG9ydFBhdGgoKXtpZighdGhpcy5oYXNPd25Qcm9wZXJ0eShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJfaW1wb3J0UGF0aCIsdGhpcykpKXtjb25zdCB0PXRoaXMuaW1wb3J0TWV0YTtpZih0KXRoaXMuX2ltcG9ydFBhdGg9Zih0LnVybCk7ZWxzZXtjb25zdCB0PUIuaW1wb3J0KHRoaXMuaXMpO3RoaXMuX2ltcG9ydFBhdGg9dCYmdC5hc3NldHBhdGh8fE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzLnByb3RvdHlwZSkuY29uc3RydWN0b3IuaW1wb3J0UGF0aH19cmV0dXJuIHRoaXMuX2ltcG9ydFBhdGh9Y29uc3RydWN0b3IoKXtzdXBlcigpfV9pbml0aWFsaXplUHJvcGVydGllcygpe3RoaXMuY29uc3RydWN0b3IuZmluYWxpemUoKSx0aGlzLmNvbnN0cnVjdG9yLl9maW5hbGl6ZVRlbXBsYXRlKHRoaXMubG9jYWxOYW1lKSxzdXBlci5faW5pdGlhbGl6ZVByb3BlcnRpZXMoKSx0aGlzLnJvb3RQYXRoPV8sdGhpcy5pbXBvcnRQYXRoPXRoaXMuY29uc3RydWN0b3IuaW1wb3J0UGF0aDtsZXQgdD0oZnVuY3Rpb24gZSh0KXtpZighdC5oYXNPd25Qcm9wZXJ0eShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJfX3Byb3BlcnR5RGVmYXVsdHMiLHQpKSl7dC5fX3Byb3BlcnR5RGVmYXVsdHM9bnVsbDtsZXQgZT10Ll9wcm9wZXJ0aWVzO2ZvcihsZXQgbiBpbiBlKXtsZXQgaT1lW25dOyJ2YWx1ZSJpbiBpJiYodC5fX3Byb3BlcnR5RGVmYXVsdHM9dC5fX3Byb3BlcnR5RGVmYXVsdHN8fHt9LHQuX19wcm9wZXJ0eURlZmF1bHRzW25dPWkpfX1yZXR1cm4gdC5fX3Byb3BlcnR5RGVmYXVsdHN9KSh0aGlzLmNvbnN0cnVjdG9yKTtpZih0KWZvcihsZXQgZSBpbiB0KXtsZXQgbj10W2VdO2lmKHRoaXMuX2NhbkFwcGx5UHJvcGVydHlEZWZhdWx0KGUpKXtsZXQgdD0iZnVuY3Rpb24iPT10eXBlb2Ygbi52YWx1ZT9uLnZhbHVlLmNhbGwodGhpcyk6bi52YWx1ZTt0aGlzLl9oYXNBY2Nlc3NvcihlKT90aGlzLl9zZXRQZW5kaW5nUHJvcGVydHkoZSx0LCEwKTp0aGlzW2VdPXR9fX1fY2FuQXBwbHlQcm9wZXJ0eURlZmF1bHQodCl7cmV0dXJuIXRoaXMuaGFzT3duUHJvcGVydHkodCl9c3RhdGljIF9wcm9jZXNzU3R5bGVUZXh0KHQsZSl7cmV0dXJuIHAodCxlKX1zdGF0aWMgX2ZpbmFsaXplVGVtcGxhdGUodCl7Y29uc3QgZT10aGlzLnByb3RvdHlwZS5fdGVtcGxhdGU7aWYoZSYmIWUuX19wb2x5bWVyRmluYWxpemVkKXtlLl9fcG9seW1lckZpbmFsaXplZD0hMDtjb25zdCBuPXRoaXMuaW1wb3J0UGF0aDtpKHRoaXMsZSx0LG4/ZChuKToiIiksdGhpcy5wcm90b3R5cGUuX2JpbmRUZW1wbGF0ZShlKX19Y29ubmVjdGVkQ2FsbGJhY2soKXt3aW5kb3cuU2hhZHlDU1MmJnRoaXMuX3RlbXBsYXRlJiZ3aW5kb3cuU2hhZHlDU1Muc3R5bGVFbGVtZW50KHRoaXMpLHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCl9cmVhZHkoKXt0aGlzLl90ZW1wbGF0ZSYmKHRoaXMucm9vdD10aGlzLl9zdGFtcFRlbXBsYXRlKHRoaXMuX3RlbXBsYXRlKSx0aGlzLiQ9dGhpcy5yb290LiQpLHN1cGVyLnJlYWR5KCl9X3JlYWR5Q2xpZW50cygpe3RoaXMuX3RlbXBsYXRlJiYodGhpcy5yb290PXRoaXMuX2F0dGFjaERvbSh0aGlzLnJvb3QpKSxzdXBlci5fcmVhZHlDbGllbnRzKCl9X2F0dGFjaERvbSh0KXtjb25zdCBlPVkodGhpcyk7aWYoZS5hdHRhY2hTaGFkb3cpcmV0dXJuIHQ/KGUuc2hhZG93Um9vdHx8KGUuYXR0YWNoU2hhZG93KHttb2RlOiJvcGVuIixzaGFkeVVwZ3JhZGVGcmFnbWVudDp0fSksZS5zaGFkb3dSb290LmFwcGVuZENoaWxkKHQpLHRoaXMuY29uc3RydWN0b3IuX3N0eWxlU2hlZXQmJihlLnNoYWRvd1Jvb3QuYWRvcHRlZFN0eWxlU2hlZXRzPVt0aGlzLmNvbnN0cnVjdG9yLl9zdHlsZVNoZWV0XSkpLE0mJndpbmRvdy5TaGFkeURPTSYmd2luZG93LlNoYWR5RE9NLmZsdXNoSW5pdGlhbChlLnNoYWRvd1Jvb3QpLGUuc2hhZG93Um9vdCk6bnVsbDt0aHJvdyBuZXcgRXJyb3IoIlNoYWRvd0RPTSBub3QgYXZhaWxhYmxlLiBQb2x5bWVyRWxlbWVudCBjYW4gY3JlYXRlIGRvbSBhcyBjaGlsZHJlbiBpbnN0ZWFkIG9mIGluIFNoYWRvd0RPTSBieSBzZXR0aW5nIGB0aGlzLnJvb3QgPSB0aGlzO2AgYmVmb3JlIGByZWFkeWAuIil9dXBkYXRlU3R5bGVzKHQpe3dpbmRvdy5TaGFkeUNTUyYmd2luZG93LlNoYWR5Q1NTLnN0eWxlU3VidHJlZSh0aGlzLHQpfXJlc29sdmVVcmwodCxlKXtyZXR1cm4hZSYmdGhpcy5pbXBvcnRQYXRoJiYoZT1kKHRoaXMuaW1wb3J0UGF0aCkpLGQodCxlKX1zdGF0aWMgX3BhcnNlVGVtcGxhdGVDb250ZW50KHQsbixpKXtyZXR1cm4gbi5keW5hbWljRm5zPW4uZHluYW1pY0Zuc3x8dGhpcy5fcHJvcGVydGllcyxlLl9wYXJzZVRlbXBsYXRlQ29udGVudC5jYWxsKHRoaXMsdCxuLGkpfXN0YXRpYyBfYWRkVGVtcGxhdGVQcm9wZXJ0eUVmZmVjdCh0LG4saSl7cmV0dXJuIVN8fG4gaW4gdGhpcy5fcHJvcGVydGllc3x8aS5pbmZvLnBhcnQuc2lnbmF0dXJlJiZpLmluZm8ucGFydC5zaWduYXR1cmUuc3RhdGljfHxpLmluZm8ucGFydC5ob3N0UHJvcHx8dC5uZXN0ZWRUZW1wbGF0ZXx8Y29uc29sZS53YXJuKGBQcm9wZXJ0eSAnJHtufScgdXNlZCBpbiB0ZW1wbGF0ZSBidXQgbm90IGRlY2xhcmVkIGluICdwcm9wZXJ0aWVzJzsgYXR0cmlidXRlIHdpbGwgbm90IGJlIG9ic2VydmVkLmApLGUuX2FkZFRlbXBsYXRlUHJvcGVydHlFZmZlY3QuY2FsbCh0aGlzLHQsbixpKX19fSkpOwovKioKICAgICAqIEBmaWxlb3ZlcnZpZXcKICAgICAqIEBzdXBwcmVzcyB7Y2hlY2tQcm90b3R5cGFsVHlwZXN9CiAgICAgKiBAbGljZW5zZSBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgICogVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZAogICAgICogYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heQogICAgICogYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieQogICAgICogR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUAogICAgICogcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgICovCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNsYXNzIHZle2NvbnN0cnVjdG9yKHQpe3RoaXMudmFsdWU9dC50b1N0cmluZygpfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMudmFsdWV9fWZ1bmN0aW9uIGJlKHQpe2lmKHQgaW5zdGFuY2VvZiBIVE1MVGVtcGxhdGVFbGVtZW50KXJldHVybiB0LmlubmVySFRNTDtpZih0IGluc3RhbmNlb2YgdmUpcmV0dXJuKGZ1bmN0aW9uIGUodCl7aWYodCBpbnN0YW5jZW9mIHZlKXJldHVybiB0LnZhbHVlO3Rocm93IG5ldyBFcnJvcihgbm9uLWxpdGVyYWwgdmFsdWUgcGFzc2VkIHRvIFBvbHltZXIncyBodG1sTGl0ZXJhbCBmdW5jdGlvbjogJHt0fWApfSkodCk7dGhyb3cgbmV3IEVycm9yKGBub24tdGVtcGxhdGUgdmFsdWUgcGFzc2VkIHRvIFBvbHltZXIncyBodG1sIGZ1bmN0aW9uOiAke3R9YCl9Y29uc3QgeGU9ZnVuY3Rpb24gdChlLC4uLm4pe2NvbnN0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtyZXR1cm4gaS5pbm5lckhUTUw9bi5yZWR1Y2UoKCh0LG4saSk9PnQrYmUobikrZVtpKzFdKSxlWzBdKSxpfSx3ZT15ZShIVE1MRWxlbWVudCk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovdmFyIFNlPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e307ZnVuY3Rpb24gTWUodCl7aWYodC5fX2VzTW9kdWxlKXJldHVybiB0O3ZhciBlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKG4pe3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLGkuZ2V0P2k6e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbbl19fSl9KSksZX12YXIgRWUsVGUsQ2U9e2V4cG9ydHM6e319OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBMb2Rhc2ggPGh0dHBzOi8vbG9kYXNoLmNvbS8+CiAgICAgKiBDb3B5cmlnaHQgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycyA8aHR0cHM6Ly9vcGVuanNmLm9yZy8+CiAgICAgKiBSZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZSA8aHR0cHM6Ly9sb2Rhc2guY29tL2xpY2Vuc2U+CiAgICAgKiBCYXNlZCBvbiBVbmRlcnNjb3JlLmpzIDEuOC4zIDxodHRwOi8vdW5kZXJzY29yZWpzLm9yZy9MSUNFTlNFPgogICAgICogQ29weXJpZ2h0IEplcmVteSBBc2hrZW5hcywgRG9jdW1lbnRDbG91ZCBhbmQgSW52ZXN0aWdhdGl2ZSBSZXBvcnRlcnMgJiBFZGl0b3JzCiAgICAgKi9FZT1DZSxUZT1DZS5leHBvcnRzLGZ1bmN0aW9uKCl7dmFyIHQsZT0iRXhwZWN0ZWQgYSBmdW5jdGlvbiIsbj0iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyIsaT0iX19sb2Rhc2hfcGxhY2Vob2xkZXJfXyIscj0xNixvPTMyLGE9NjQscz0xMjgsbD0yNTYsYz0xLzAsdT05MDA3MTk5MjU0NzQwOTkxLGg9TmFOLGQ9NDI5NDk2NzI5NSxwPVtbImFyeSIsc10sWyJiaW5kIiwxXSxbImJpbmRLZXkiLDJdLFsiY3VycnkiLDhdLFsiY3VycnlSaWdodCIscl0sWyJmbGlwIiw1MTJdLFsicGFydGlhbCIsb10sWyJwYXJ0aWFsUmlnaHQiLGFdLFsicmVhcmciLGxdXSxmPSJbb2JqZWN0IEFyZ3VtZW50c10iLG09IltvYmplY3QgQXJyYXldIixnPSJbb2JqZWN0IEJvb2xlYW5dIixfPSJbb2JqZWN0IERhdGVdIix5PSJbb2JqZWN0IEVycm9yXSIsdj0iW29iamVjdCBGdW5jdGlvbl0iLGI9IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIix4PSJbb2JqZWN0IE1hcF0iLHc9IltvYmplY3QgTnVtYmVyXSIsUz0iW29iamVjdCBPYmplY3RdIixNPSJbb2JqZWN0IFByb21pc2VdIixFPSJbb2JqZWN0IFJlZ0V4cF0iLFQ9IltvYmplY3QgU2V0XSIsQz0iW29iamVjdCBTdHJpbmddIixBPSJbb2JqZWN0IFN5bWJvbF0iLGs9IltvYmplY3QgV2Vha01hcF0iLEw9IltvYmplY3QgQXJyYXlCdWZmZXJdIixQPSJbb2JqZWN0IERhdGFWaWV3XSIsTj0iW29iamVjdCBGbG9hdDMyQXJyYXldIixJPSJbb2JqZWN0IEZsb2F0NjRBcnJheV0iLFI9IltvYmplY3QgSW50OEFycmF5XSIsTz0iW29iamVjdCBJbnQxNkFycmF5XSIsej0iW29iamVjdCBJbnQzMkFycmF5XSIsRD0iW29iamVjdCBVaW50OEFycmF5XSIsQj0iW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iLEg9IltvYmplY3QgVWludDE2QXJyYXldIixGPSJbb2JqZWN0IFVpbnQzMkFycmF5XSIsVj0vXGJfX3AgXCs9ICcnOy9nLFU9L1xiKF9fcCBcKz0pICcnIFwrL2csaj0vKF9fZVwoLio/XCl8XGJfX3RcKSkgXCtcbicnOy9nLEc9LyYoPzphbXB8bHR8Z3R8cXVvdHwjMzkpOy9nLFc9L1smPD4iJ10vZyxxPVJlZ0V4cChHLnNvdXJjZSksWT1SZWdFeHAoVy5zb3VyY2UpLFg9LzwlLShbXHNcU10rPyklPi9nLCQ9LzwlKFtcc1xTXSs/KSU+L2csSz0vPCU9KFtcc1xTXSs/KSU+L2csWj0vXC58XFsoPzpbXltcXV0qfChbIiddKSg/Oig/IVwxKVteXFxdfFxcLikqP1wxKVxdLyxKPS9eXHcqJC8sUT0vW14uW1xdXSt8XFsoPzooLT9cZCsoPzpcLlxkKyk/KXwoWyInXSkoKD86KD8hXDIpW15cXF18XFwuKSo/KVwyKVxdfCg/PSg/OlwufFxbXF0pKD86XC58XFtcXXwkKSkvZyx0dD0vW1xcXiQuKis/KClbXF17fXxdL2csZXQ9UmVnRXhwKHR0LnNvdXJjZSksbnQ9L15ccysvLGl0PS9ccy8scnQ9L1x7KD86XG5cL1wqIFxbd3JhcHBlZCB3aXRoIC4rXF0gXCpcLyk/XG4/LyxvdD0vXHtcblwvXCogXFt3cmFwcGVkIHdpdGggKC4rKVxdIFwqLyxhdD0vLD8gJiAvLHN0PS9bXlx4MDAtXHgyZlx4M2EtXHg0MFx4NWItXHg2MFx4N2ItXHg3Zl0rL2csbHQ9L1soKT0se31cW1xdXC9cc10vLGN0PS9cXChcXCk/L2csdXQ9L1wkXHsoW15cXH1dKig/OlxcLlteXFx9XSopKilcfS9nLGh0PS9cdyokLyxkdD0vXlstK10weFswLTlhLWZdKyQvaSxwdD0vXjBiWzAxXSskL2ksZnQ9L15cW29iamVjdCAuKz9Db25zdHJ1Y3RvclxdJC8sbXQ9L14wb1swLTddKyQvaSxndD0vXig/OjB8WzEtOV1cZCopJC8sX3Q9L1tceGMwLVx4ZDZceGQ4LVx4ZjZceGY4LVx4ZmZcdTAxMDAtXHUwMTdmXS9nLHl0PS8oJF4pLyx2dD0vWydcblxyXHUyMDI4XHUyMDI5XFxdL2csYnQ9IlxcdTAzMDAtXFx1MDM2ZlxcdWZlMjAtXFx1ZmUyZlxcdTIwZDAtXFx1MjBmZiIseHQ9IlxcdTI3MDAtXFx1MjdiZiIsd3Q9ImEtelxceGRmLVxceGY2XFx4ZjgtXFx4ZmYiLFN0PSJBLVpcXHhjMC1cXHhkNlxceGQ4LVxceGRlIixNdD0iXFx1ZmUwZVxcdWZlMGYiLEV0PSJcXHhhY1xceGIxXFx4ZDdcXHhmN1xceDAwLVxceDJmXFx4M2EtXFx4NDBcXHg1Yi1cXHg2MFxceDdiLVxceGJmXFx1MjAwMC1cXHUyMDZmIFxcdFxceDBiXFxmXFx4YTBcXHVmZWZmXFxuXFxyXFx1MjAyOFxcdTIwMjlcXHUxNjgwXFx1MTgwZVxcdTIwMDBcXHUyMDAxXFx1MjAwMlxcdTIwMDNcXHUyMDA0XFx1MjAwNVxcdTIwMDZcXHUyMDA3XFx1MjAwOFxcdTIwMDlcXHUyMDBhXFx1MjAyZlxcdTIwNWZcXHUzMDAwIixUdD0iWyfigJldIixDdD0iW1xcdWQ4MDAtXFx1ZGZmZl0iLEF0PSJbIitFdCsiXSIsa3Q9IlsiK2J0KyJdIixMdD0iXFxkKyIsUHQ9IltcXHUyNzAwLVxcdTI3YmZdIixOdD0iWyIrd3QrIl0iLEl0PSJbXlxcdWQ4MDAtXFx1ZGZmZiIrRXQrTHQreHQrd3QrU3QrIl0iLFJ0PSJcXHVkODNjW1xcdWRmZmItXFx1ZGZmZl0iLE90PSJbXlxcdWQ4MDAtXFx1ZGZmZl0iLHp0PSIoPzpcXHVkODNjW1xcdWRkZTYtXFx1ZGRmZl0pezJ9IixEdD0iW1xcdWQ4MDAtXFx1ZGJmZl1bXFx1ZGMwMC1cXHVkZmZmXSIsQnQ9IlsiK1N0KyJdIixIdD0iKD86IitOdCsifCIrSXQrIikiLEZ0PSIoPzoiK0J0KyJ8IitJdCsiKSIsVnQ9Iig/Olsn4oCZXSg/OmR8bGx8bXxyZXxzfHR8dmUpKT8iLFV0PSIoPzpbJ+KAmV0oPzpEfExMfE18UkV8U3xUfFZFKSk/IixqdD0iKD86IitrdCsifCIrUnQrIik/IixHdD0iW1xcdWZlMGVcXHVmZTBmXT8iLFd0PUd0K2p0KyIoPzpcXHUyMDBkKD86IitbT3QsenQsRHRdLmpvaW4oInwiKSsiKSIrR3QranQrIikqIixxdD0iKD86IitbUHQsenQsRHRdLmpvaW4oInwiKSsiKSIrV3QsWXQ9Iig/OiIrW090K2t0KyI/IixrdCx6dCxEdCxDdF0uam9pbigifCIpKyIpIixYdD1SZWdFeHAoVHQsImciKSwkdD1SZWdFeHAoa3QsImciKSxLdD1SZWdFeHAoUnQrIig/PSIrUnQrIil8IitZdCtXdCwiZyIpLFp0PVJlZ0V4cChbQnQrIj8iK050KyIrIitWdCsiKD89IitbQXQsQnQsIiQiXS5qb2luKCJ8IikrIikiLEZ0KyIrIitVdCsiKD89IitbQXQsQnQrSHQsIiQiXS5qb2luKCJ8IikrIikiLEJ0KyI/IitIdCsiKyIrVnQsQnQrIisiK1V0LCJcXGQqKD86MVNUfDJORHwzUkR8KD8hWzEyM10pXFxkVEgpKD89XFxifFthLXpfXSkiLCJcXGQqKD86MXN0fDJuZHwzcmR8KD8hWzEyM10pXFxkdGgpKD89XFxifFtBLVpfXSkiLEx0LHF0XS5qb2luKCJ8IiksImciKSxKdD1SZWdFeHAoIltcXHUyMDBkXFx1ZDgwMC1cXHVkZmZmIitidCtNdCsiXSIpLFF0PS9bYS16XVtBLVpdfFtBLVpdezJ9W2Etel18WzAtOV1bYS16QS1aXXxbYS16QS1aXVswLTldfFteYS16QS1aMC05IF0vLHRlPVsiQXJyYXkiLCJCdWZmZXIiLCJEYXRhVmlldyIsIkRhdGUiLCJFcnJvciIsIkZsb2F0MzJBcnJheSIsIkZsb2F0NjRBcnJheSIsIkZ1bmN0aW9uIiwiSW50OEFycmF5IiwiSW50MTZBcnJheSIsIkludDMyQXJyYXkiLCJNYXAiLCJNYXRoIiwiT2JqZWN0IiwiUHJvbWlzZSIsIlJlZ0V4cCIsIlNldCIsIlN0cmluZyIsIlN5bWJvbCIsIlR5cGVFcnJvciIsIlVpbnQ4QXJyYXkiLCJVaW50OENsYW1wZWRBcnJheSIsIlVpbnQxNkFycmF5IiwiVWludDMyQXJyYXkiLCJXZWFrTWFwIiwiXyIsImNsZWFyVGltZW91dCIsImlzRmluaXRlIiwicGFyc2VJbnQiLCJzZXRUaW1lb3V0Il0sZWU9LTEsbmU9e307bmVbTl09bmVbSV09bmVbUl09bmVbT109bmVbel09bmVbRF09bmVbQl09bmVbSF09bmVbRl09ITAsbmVbZl09bmVbbV09bmVbTF09bmVbZ109bmVbUF09bmVbX109bmVbeV09bmVbdl09bmVbeF09bmVbd109bmVbU109bmVbRV09bmVbVF09bmVbQ109bmVba109ITE7dmFyIGllPXt9O2llW2ZdPWllW21dPWllW0xdPWllW1BdPWllW2ddPWllW19dPWllW05dPWllW0ldPWllW1JdPWllW09dPWllW3pdPWllW3hdPWllW3ddPWllW1NdPWllW0VdPWllW1RdPWllW0NdPWllW0FdPWllW0RdPWllW0JdPWllW0hdPWllW0ZdPSEwLGllW3ldPWllW3ZdPWllW2tdPSExO3ZhciByZT17IlxcIjoiXFwiLCInIjoiJyIsIlxuIjoibiIsIlxyIjoiciIsIlx1MjAyOCI6InUyMDI4IiwiXHUyMDI5IjoidTIwMjkifSxvZT1wYXJzZUZsb2F0LGFlPXBhcnNlSW50LHNlPSJvYmplY3QiPT10eXBlb2YgU2UmJlNlJiZTZS5PYmplY3Q9PT1PYmplY3QmJlNlLGxlPSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsY2U9c2V8fGxlfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLHVlPVRlJiYhVGUubm9kZVR5cGUmJlRlLGhlPXVlJiZFZSYmIUVlLm5vZGVUeXBlJiZFZSxkZT1oZSYmaGUuZXhwb3J0cz09PXVlLHBlPWRlJiZzZS5wcm9jZXNzLGZlPShmdW5jdGlvbigpe3RyeXt2YXIgdD1oZSYmaGUucmVxdWlyZSYmaGUucmVxdWlyZSgidXRpbCIpLnR5cGVzO3JldHVybiB0fHxwZSYmcGUuYmluZGluZyYmcGUuYmluZGluZygidXRpbCIpfWNhdGNoKHQpe319KSgpLG1lPWZlJiZmZS5pc0FycmF5QnVmZmVyLGdlPWZlJiZmZS5pc0RhdGUsX2U9ZmUmJmZlLmlzTWFwLHllPWZlJiZmZS5pc1JlZ0V4cCx2ZT1mZSYmZmUuaXNTZXQsYmU9ZmUmJmZlLmlzVHlwZWRBcnJheTtmdW5jdGlvbiB4ZSh0LGUsbil7c3dpdGNoKG4ubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIHQuY2FsbChlKTtjYXNlIDE6cmV0dXJuIHQuY2FsbChlLG5bMF0pO2Nhc2UgMjpyZXR1cm4gdC5jYWxsKGUsblswXSxuWzFdKTtjYXNlIDM6cmV0dXJuIHQuY2FsbChlLG5bMF0sblsxXSxuWzJdKX1yZXR1cm4gdC5hcHBseShlLG4pfWZ1bmN0aW9uIHdlKHQsZSxuLGkpe2Zvcih2YXIgcj0tMSxvPW51bGw9PXQ/MDp0Lmxlbmd0aDsrK3I8bzspe3ZhciBhPXRbcl07ZShpLGEsbihhKSx0KX1yZXR1cm4gaX1mdW5jdGlvbiBNZSh0LGUpe2Zvcih2YXIgbj0tMSxpPW51bGw9PXQ/MDp0Lmxlbmd0aDsrK248aSYmITEhPT1lKHRbbl0sbix0KTspO3JldHVybiB0fWZ1bmN0aW9uIENlKHQsZSl7Zm9yKHZhciBuPW51bGw9PXQ/MDp0Lmxlbmd0aDtuLS0mJiExIT09ZSh0W25dLG4sdCk7KTtyZXR1cm4gdH1mdW5jdGlvbiBBZSh0LGUpe2Zvcih2YXIgbj0tMSxpPW51bGw9PXQ/MDp0Lmxlbmd0aDsrK248aTspaWYoIWUodFtuXSxuLHQpKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGtlKHQsZSl7Zm9yKHZhciBuPS0xLGk9bnVsbD09dD8wOnQubGVuZ3RoLHI9MCxvPVtdOysrbjxpOyl7dmFyIGE9dFtuXTtlKGEsbix0KSYmKG9bcisrXT1hKX1yZXR1cm4gb31mdW5jdGlvbiBMZSh0LGUpe3JldHVybiEobnVsbD09dHx8IXQubGVuZ3RoKSYmRmUodCxlLDApPi0xfWZ1bmN0aW9uIFBlKHQsZSxuKXtmb3IodmFyIGk9LTEscj1udWxsPT10PzA6dC5sZW5ndGg7KytpPHI7KWlmKG4oZSx0W2ldKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBOZSh0LGUpe2Zvcih2YXIgbj0tMSxpPW51bGw9PXQ/MDp0Lmxlbmd0aCxyPUFycmF5KGkpOysrbjxpOylyW25dPWUodFtuXSxuLHQpO3JldHVybiByfWZ1bmN0aW9uIEllKHQsZSl7Zm9yKHZhciBuPS0xLGk9ZS5sZW5ndGgscj10Lmxlbmd0aDsrK248aTspdFtyK25dPWVbbl07cmV0dXJuIHR9ZnVuY3Rpb24gUmUodCxlLG4saSl7dmFyIHI9LTEsbz1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKGkmJm8mJihuPXRbKytyXSk7KytyPG87KW49ZShuLHRbcl0scix0KTtyZXR1cm4gbn1mdW5jdGlvbiBPZSh0LGUsbixpKXt2YXIgcj1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKGkmJnImJihuPXRbLS1yXSk7ci0tOyluPWUobix0W3JdLHIsdCk7cmV0dXJuIG59ZnVuY3Rpb24gemUodCxlKXtmb3IodmFyIG49LTEsaT1udWxsPT10PzA6dC5sZW5ndGg7KytuPGk7KWlmKGUodFtuXSxuLHQpKXJldHVybiEwO3JldHVybiExfXZhciBEZT1HZSgibGVuZ3RoIik7ZnVuY3Rpb24gQmUodCxlLG4pe3ZhciBpO3JldHVybiBuKHQsKGZ1bmN0aW9uKHQsbixyKXtpZihlKHQsbixyKSlyZXR1cm4gaT1uLCExfSkpLGl9ZnVuY3Rpb24gSGUodCxlLG4saSl7Zm9yKHZhciByPXQubGVuZ3RoLG89bisoaT8xOi0xKTtpP28tLTorK288cjspaWYoZSh0W29dLG8sdCkpcmV0dXJuIG87cmV0dXJuLTF9ZnVuY3Rpb24gRmUodCxlLG4pe3JldHVybiBlPT1lPyhmdW5jdGlvbiBpKHQsZSxuKXtmb3IodmFyIGk9bi0xLHI9dC5sZW5ndGg7KytpPHI7KWlmKHRbaV09PT1lKXJldHVybiBpO3JldHVybi0xfSkodCxlLG4pOkhlKHQsVWUsbil9ZnVuY3Rpb24gVmUodCxlLG4saSl7Zm9yKHZhciByPW4tMSxvPXQubGVuZ3RoOysrcjxvOylpZihpKHRbcl0sZSkpcmV0dXJuIHI7cmV0dXJuLTF9ZnVuY3Rpb24gVWUodCl7cmV0dXJuIHQhPXR9ZnVuY3Rpb24gamUodCxlKXt2YXIgbj1udWxsPT10PzA6dC5sZW5ndGg7cmV0dXJuIG4/WWUodCxlKS9uOmh9ZnVuY3Rpb24gR2UoZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBudWxsPT1uP3Q6bltlXX19ZnVuY3Rpb24gV2UoZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBudWxsPT1lP3Q6ZVtuXX19ZnVuY3Rpb24gcWUodCxlLG4saSxyKXtyZXR1cm4gcih0LChmdW5jdGlvbih0LHIsbyl7bj1pPyhpPSExLHQpOmUobix0LHIsbyl9KSksbn1mdW5jdGlvbiBZZShlLG4pe2Zvcih2YXIgaSxyPS0xLG89ZS5sZW5ndGg7KytyPG87KXt2YXIgYT1uKGVbcl0pO2EhPT10JiYoaT1pPT09dD9hOmkrYSl9cmV0dXJuIGl9ZnVuY3Rpb24gWGUodCxlKXtmb3IodmFyIG49LTEsaT1BcnJheSh0KTsrK248dDspaVtuXT1lKG4pO3JldHVybiBpfWZ1bmN0aW9uICRlKHQpe3JldHVybiB0P3Quc2xpY2UoMCxmbih0KSsxKS5yZXBsYWNlKG50LCIiKTp0fWZ1bmN0aW9uIEtlKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdChlKX19ZnVuY3Rpb24gWmUodCxlKXtyZXR1cm4gTmUoZSwoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KSl9ZnVuY3Rpb24gSmUodCxlKXtyZXR1cm4gdC5oYXMoZSl9ZnVuY3Rpb24gUWUodCxlKXtmb3IodmFyIG49LTEsaT10Lmxlbmd0aDsrK248aSYmRmUoZSx0W25dLDApPi0xOyk7cmV0dXJuIG59ZnVuY3Rpb24gdG4odCxlKXtmb3IodmFyIG49dC5sZW5ndGg7bi0tJiZGZShlLHRbbl0sMCk+LTE7KTtyZXR1cm4gbn1mdW5jdGlvbiBlbih0LGUpe2Zvcih2YXIgbj10Lmxlbmd0aCxpPTA7bi0tOyl0W25dPT09ZSYmKytpO3JldHVybiBpfXZhciBubj1XZSh7IsOAIjoiQSIsIsOBIjoiQSIsIsOCIjoiQSIsIsODIjoiQSIsIsOEIjoiQSIsIsOFIjoiQSIsIsOgIjoiYSIsIsOhIjoiYSIsIsOiIjoiYSIsIsOjIjoiYSIsIsOkIjoiYSIsIsOlIjoiYSIsIsOHIjoiQyIsIsOnIjoiYyIsIsOQIjoiRCIsIsOwIjoiZCIsIsOIIjoiRSIsIsOJIjoiRSIsIsOKIjoiRSIsIsOLIjoiRSIsIsOoIjoiZSIsIsOpIjoiZSIsIsOqIjoiZSIsIsOrIjoiZSIsIsOMIjoiSSIsIsONIjoiSSIsIsOOIjoiSSIsIsOPIjoiSSIsIsOsIjoiaSIsIsOtIjoiaSIsIsOuIjoiaSIsIsOvIjoiaSIsIsORIjoiTiIsIsOxIjoibiIsIsOSIjoiTyIsIsOTIjoiTyIsIsOUIjoiTyIsIsOVIjoiTyIsIsOWIjoiTyIsIsOYIjoiTyIsIsOyIjoibyIsIsOzIjoibyIsIsO0IjoibyIsIsO1IjoibyIsIsO2IjoibyIsIsO4IjoibyIsIsOZIjoiVSIsIsOaIjoiVSIsIsObIjoiVSIsIsOcIjoiVSIsIsO5IjoidSIsIsO6IjoidSIsIsO7IjoidSIsIsO8IjoidSIsIsOdIjoiWSIsIsO9IjoieSIsIsO/IjoieSIsIsOGIjoiQWUiLCLDpiI6ImFlIiwiw54iOiJUaCIsIsO+IjoidGgiLCLDnyI6InNzIiwixIAiOiJBIiwixIIiOiJBIiwixIQiOiJBIiwixIEiOiJhIiwixIMiOiJhIiwixIUiOiJhIiwixIYiOiJDIiwixIgiOiJDIiwixIoiOiJDIiwixIwiOiJDIiwixIciOiJjIiwixIkiOiJjIiwixIsiOiJjIiwixI0iOiJjIiwixI4iOiJEIiwixJAiOiJEIiwixI8iOiJkIiwixJEiOiJkIiwixJIiOiJFIiwixJQiOiJFIiwixJYiOiJFIiwixJgiOiJFIiwixJoiOiJFIiwixJMiOiJlIiwixJUiOiJlIiwixJciOiJlIiwixJkiOiJlIiwixJsiOiJlIiwixJwiOiJHIiwixJ4iOiJHIiwixKAiOiJHIiwixKIiOiJHIiwixJ0iOiJnIiwixJ8iOiJnIiwixKEiOiJnIiwixKMiOiJnIiwixKQiOiJIIiwixKYiOiJIIiwixKUiOiJoIiwixKciOiJoIiwixKgiOiJJIiwixKoiOiJJIiwixKwiOiJJIiwixK4iOiJJIiwixLAiOiJJIiwixKkiOiJpIiwixKsiOiJpIiwixK0iOiJpIiwixK8iOiJpIiwixLEiOiJpIiwixLQiOiJKIiwixLUiOiJqIiwixLYiOiJLIiwixLciOiJrIiwixLgiOiJrIiwixLkiOiJMIiwixLsiOiJMIiwixL0iOiJMIiwixL8iOiJMIiwixYEiOiJMIiwixLoiOiJsIiwixLwiOiJsIiwixL4iOiJsIiwixYAiOiJsIiwixYIiOiJsIiwixYMiOiJOIiwixYUiOiJOIiwixYciOiJOIiwixYoiOiJOIiwixYQiOiJuIiwixYYiOiJuIiwixYgiOiJuIiwixYsiOiJuIiwixYwiOiJPIiwixY4iOiJPIiwixZAiOiJPIiwixY0iOiJvIiwixY8iOiJvIiwixZEiOiJvIiwixZQiOiJSIiwixZYiOiJSIiwixZgiOiJSIiwixZUiOiJyIiwixZciOiJyIiwixZkiOiJyIiwixZoiOiJTIiwixZwiOiJTIiwixZ4iOiJTIiwixaAiOiJTIiwixZsiOiJzIiwixZ0iOiJzIiwixZ8iOiJzIiwixaEiOiJzIiwixaIiOiJUIiwixaQiOiJUIiwixaYiOiJUIiwixaMiOiJ0IiwixaUiOiJ0IiwixaciOiJ0IiwixagiOiJVIiwixaoiOiJVIiwixawiOiJVIiwixa4iOiJVIiwixbAiOiJVIiwixbIiOiJVIiwixakiOiJ1IiwixasiOiJ1Iiwixa0iOiJ1Iiwixa8iOiJ1IiwixbEiOiJ1IiwixbMiOiJ1IiwixbQiOiJXIiwixbUiOiJ3IiwixbYiOiJZIiwixbciOiJ5IiwixbgiOiJZIiwixbkiOiJaIiwixbsiOiJaIiwixb0iOiJaIiwixboiOiJ6IiwixbwiOiJ6Iiwixb4iOiJ6IiwixLIiOiJJSiIsIsSzIjoiaWoiLCLFkiI6Ik9lIiwixZMiOiJvZSIsIsWJIjoiJ24iLCLFvyI6InMifSkscm49V2UoeyImIjoiJmFtcDsiLCI8IjoiJmx0OyIsIj4iOiImZ3Q7IiwnIic6IiZxdW90OyIsIiciOiImIzM5OyJ9KTtmdW5jdGlvbiBvbih0KXtyZXR1cm4iXFwiK3JlW3RdfWZ1bmN0aW9uIGFuKHQpe3JldHVybiBKdC50ZXN0KHQpfWZ1bmN0aW9uIHNuKHQpe3ZhciBlPS0xLG49QXJyYXkodC5zaXplKTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0LGkpe25bKytlXT1baSx0XX0pKSxufWZ1bmN0aW9uIGxuKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0KGUobikpfX1mdW5jdGlvbiBjbih0LGUpe2Zvcih2YXIgbj0tMSxyPXQubGVuZ3RoLG89MCxhPVtdOysrbjxyOyl7dmFyIHM9dFtuXTtzIT09ZSYmcyE9PWl8fCh0W25dPWksYVtvKytdPW4pfXJldHVybiBhfWZ1bmN0aW9uIHVuKHQpe3ZhciBlPS0xLG49QXJyYXkodC5zaXplKTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXtuWysrZV09dH0pKSxufWZ1bmN0aW9uIGhuKHQpe3ZhciBlPS0xLG49QXJyYXkodC5zaXplKTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXtuWysrZV09W3QsdF19KSksbn1mdW5jdGlvbiBkbih0KXtyZXR1cm4gYW4odCk/KGZ1bmN0aW9uIGUodCl7Zm9yKHZhciBlPUt0Lmxhc3RJbmRleD0wO0t0LnRlc3QodCk7KSsrZTtyZXR1cm4gZX0pKHQpOkRlKHQpfWZ1bmN0aW9uIHBuKHQpe3JldHVybiBhbih0KT8oZnVuY3Rpb24gZSh0KXtyZXR1cm4gdC5tYXRjaChLdCl8fFtdfSkodCk6KGZ1bmN0aW9uIG4odCl7cmV0dXJuIHQuc3BsaXQoIiIpfSkodCl9ZnVuY3Rpb24gZm4odCl7Zm9yKHZhciBlPXQubGVuZ3RoO2UtLSYmaXQudGVzdCh0LmNoYXJBdChlKSk7KTtyZXR1cm4gZX12YXIgbW49V2UoeyImYW1wOyI6IiYiLCImbHQ7IjoiPCIsIiZndDsiOiI+IiwiJnF1b3Q7IjonIicsIiYjMzk7IjoiJyJ9KSxnbj0oZnVuY3Rpb24gaXQoYnQpe3ZhciB4dCx3dD0oYnQ9bnVsbD09YnQ/Y2U6Z24uZGVmYXVsdHMoY2UuT2JqZWN0KCksYnQsZ24ucGljayhjZSx0ZSkpKS5BcnJheSxTdD1idC5EYXRlLE10PWJ0LkVycm9yLEV0PWJ0LkZ1bmN0aW9uLFR0PWJ0Lk1hdGgsQ3Q9YnQuT2JqZWN0LEF0PWJ0LlJlZ0V4cCxrdD1idC5TdHJpbmcsTHQ9YnQuVHlwZUVycm9yLFB0PXd0LnByb3RvdHlwZSxOdD1DdC5wcm90b3R5cGUsSXQ9YnRbIl9fY29yZS1qc19zaGFyZWRfXyJdLFJ0PUV0LnByb3RvdHlwZS50b1N0cmluZyxPdD1OdC5oYXNPd25Qcm9wZXJ0eSx6dD0wLER0PSh4dD0vW14uXSskLy5leGVjKEl0JiZJdC5rZXlzJiZJdC5rZXlzLklFX1BST1RPfHwiIikpPyJTeW1ib2woc3JjKV8xLiIreHQ6IiIsQnQ9TnQudG9TdHJpbmcsSHQ9UnQuY2FsbChDdCksRnQ9Y2UuXyxWdD1BdCgiXiIrUnQuY2FsbChPdCkucmVwbGFjZSh0dCwiXFwkJiIpLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFwoKXwgZm9yIC4rPyg/PVxcXF0pL2csIiQxLio/IikrIiQiKSxVdD1kZT9idC5CdWZmZXI6dCxqdD1idC5TeW1ib2wsR3Q9YnQuVWludDhBcnJheSxXdD1VdD9VdC5hbGxvY1Vuc2FmZTp0LHF0PWxuKEN0LmdldFByb3RvdHlwZU9mLEN0KSxZdD1DdC5jcmVhdGUsS3Q9TnQucHJvcGVydHlJc0VudW1lcmFibGUsSnQ9UHQuc3BsaWNlLHJlPWp0P2p0LmlzQ29uY2F0U3ByZWFkYWJsZTp0LHNlPWp0P2p0Lml0ZXJhdG9yOnQsbGU9anQ/anQudG9TdHJpbmdUYWc6dCx1ZT0oZnVuY3Rpb24oKXt0cnl7dmFyIHQ9T28oQ3QsImRlZmluZVByb3BlcnR5Iik7cmV0dXJuIHQoe30sIiIse30pLHR9Y2F0Y2godCl7fX0pKCksaGU9YnQuY2xlYXJUaW1lb3V0IT09Y2UuY2xlYXJUaW1lb3V0JiZidC5jbGVhclRpbWVvdXQscGU9U3QmJlN0Lm5vdyE9PWNlLkRhdGUubm93JiZTdC5ub3csZmU9YnQuc2V0VGltZW91dCE9PWNlLnNldFRpbWVvdXQmJmJ0LnNldFRpbWVvdXQsU2U9VHQuY2VpbCxFZT1UdC5mbG9vcixUZT1DdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMsRGU9VXQ/VXQuaXNCdWZmZXI6dCxXZT1idC5pc0Zpbml0ZSxfbj1QdC5qb2luLHluPWxuKEN0LmtleXMsQ3QpLHZuPVR0Lm1heCxibj1UdC5taW4seG49U3Qubm93LHduPWJ0LnBhcnNlSW50LFNuPVR0LnJhbmRvbSxNbj1QdC5yZXZlcnNlLEVuPU9vKGJ0LCJEYXRhVmlldyIpLFRuPU9vKGJ0LCJNYXAiKSxDbj1PbyhidCwiUHJvbWlzZSIpLEFuPU9vKGJ0LCJTZXQiKSxrbj1PbyhidCwiV2Vha01hcCIpLExuPU9vKEN0LCJjcmVhdGUiKSxQbj1rbiYmbmV3IGtuLE5uPXt9LEluPWNhKEVuKSxSbj1jYShUbiksT249Y2EoQ24pLHpuPWNhKEFuKSxEbj1jYShrbiksQm49anQ/anQucHJvdG90eXBlOnQsSG49Qm4/Qm4udmFsdWVPZjp0LEZuPUJuP0JuLnRvU3RyaW5nOnQ7ZnVuY3Rpb24gVm4odCl7aWYoQXModCkmJiFtcyh0KSYmISh0IGluc3RhbmNlb2YgV24pKXtpZih0IGluc3RhbmNlb2YgR24pcmV0dXJuIHQ7aWYoT3QuY2FsbCh0LCJfX3dyYXBwZWRfXyIpKXJldHVybiB1YSh0KX1yZXR1cm4gbmV3IEduKHQpfXZhciBVbj0oZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7fXJldHVybiBmdW5jdGlvbihuKXtpZighQ3MobikpcmV0dXJue307aWYoWXQpcmV0dXJuIFl0KG4pO2UucHJvdG90eXBlPW47dmFyIGk9bmV3IGU7cmV0dXJuIGUucHJvdG90eXBlPXQsaX19KSgpO2Z1bmN0aW9uIGpuKCl7fWZ1bmN0aW9uIEduKGUsbil7dGhpcy5fX3dyYXBwZWRfXz1lLHRoaXMuX19hY3Rpb25zX189W10sdGhpcy5fX2NoYWluX189ISFuLHRoaXMuX19pbmRleF9fPTAsdGhpcy5fX3ZhbHVlc19fPXR9ZnVuY3Rpb24gV24odCl7dGhpcy5fX3dyYXBwZWRfXz10LHRoaXMuX19hY3Rpb25zX189W10sdGhpcy5fX2Rpcl9fPTEsdGhpcy5fX2ZpbHRlcmVkX189ITEsdGhpcy5fX2l0ZXJhdGVlc19fPVtdLHRoaXMuX190YWtlQ291bnRfXz1kLHRoaXMuX192aWV3c19fPVtdfWZ1bmN0aW9uIHFuKHQpe3ZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytlPG47KXt2YXIgaT10W2VdO3RoaXMuc2V0KGlbMF0saVsxXSl9fWZ1bmN0aW9uIFluKHQpe3ZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytlPG47KXt2YXIgaT10W2VdO3RoaXMuc2V0KGlbMF0saVsxXSl9fWZ1bmN0aW9uIFhuKHQpe3ZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytlPG47KXt2YXIgaT10W2VdO3RoaXMuc2V0KGlbMF0saVsxXSl9fWZ1bmN0aW9uICRuKHQpe3ZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLl9fZGF0YV9fPW5ldyBYbjsrK2U8bjspdGhpcy5hZGQodFtlXSl9ZnVuY3Rpb24gS24odCl7dmFyIGU9dGhpcy5fX2RhdGFfXz1uZXcgWW4odCk7dGhpcy5zaXplPWUuc2l6ZX1mdW5jdGlvbiBabih0LGUpe3ZhciBuPW1zKHQpLGk9IW4mJmZzKHQpLHI9IW4mJiFpJiZicyh0KSxvPSFuJiYhaSYmIXImJkhzKHQpLGE9bnx8aXx8cnx8byxzPWE/WGUodC5sZW5ndGgsa3QpOltdLGw9cy5sZW5ndGg7Zm9yKHZhciBjIGluIHQpIWUmJiFPdC5jYWxsKHQsYyl8fGEmJigibGVuZ3RoIj09Y3x8ciYmKCJvZmZzZXQiPT1jfHwicGFyZW50Ij09Yyl8fG8mJigiYnVmZmVyIj09Y3x8ImJ5dGVMZW5ndGgiPT1jfHwiYnl0ZU9mZnNldCI9PWMpfHxVbyhjLGwpKXx8cy5wdXNoKGMpO3JldHVybiBzfWZ1bmN0aW9uIEpuKGUpe3ZhciBuPWUubGVuZ3RoO3JldHVybiBuP2VbX3IoMCxuLTEpXTp0fWZ1bmN0aW9uIFFuKHQsZSl7cmV0dXJuIG9hKEpyKHQpLGxpKGUsMCx0Lmxlbmd0aCkpfWZ1bmN0aW9uIHRpKHQpe3JldHVybiBvYShKcih0KSl9ZnVuY3Rpb24gZWkoZSxuLGkpeyhpIT09dCYmIWhzKGVbbl0saSl8fGk9PT10JiYhKG4gaW4gZSkpJiZhaShlLG4saSl9ZnVuY3Rpb24gbmkoZSxuLGkpe3ZhciByPWVbbl07T3QuY2FsbChlLG4pJiZocyhyLGkpJiYoaSE9PXR8fG4gaW4gZSl8fGFpKGUsbixpKX1mdW5jdGlvbiBpaSh0LGUpe2Zvcih2YXIgbj10Lmxlbmd0aDtuLS07KWlmKGhzKHRbbl1bMF0sZSkpcmV0dXJuIG47cmV0dXJuLTF9ZnVuY3Rpb24gcmkodCxlLG4saSl7cmV0dXJuIE9pKHQsKGZ1bmN0aW9uKHQscixvKXtlKGksdCxuKHQpLG8pfSkpLGl9ZnVuY3Rpb24gb2kodCxlKXtyZXR1cm4gdCYmUXIoZSxsbChlKSx0KX1mdW5jdGlvbiBhaSh0LGUsbil7Il9fcHJvdG9fXyI9PWUmJnVlP3VlKHQsZSx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6bix3cml0YWJsZTohMH0pOnRbZV09bn1mdW5jdGlvbiBzaShlLG4pe2Zvcih2YXIgaT0tMSxyPW4ubGVuZ3RoLG89d3QociksYT1udWxsPT1lOysraTxyOylvW2ldPWE/dDppbChlLG5baV0pO3JldHVybiBvfWZ1bmN0aW9uIGxpKGUsbixpKXtyZXR1cm4gZT09ZSYmKGkhPT10JiYoZT1lPD1pP2U6aSksbiE9PXQmJihlPWU+PW4/ZTpuKSksZX1mdW5jdGlvbiBjaShlLG4saSxyLG8sYSl7dmFyIHMsbD0xJm4sYz0yJm4sdT00Jm47aWYoaSYmKHM9bz9pKGUscixvLGEpOmkoZSkpLHMhPT10KXJldHVybiBzO2lmKCFDcyhlKSlyZXR1cm4gZTt2YXIgaD1tcyhlKTtpZihoKXtpZihzPShmdW5jdGlvbiBkKHQpe3ZhciBlPXQubGVuZ3RoLG49bmV3IHQuY29uc3RydWN0b3IoZSk7cmV0dXJuIGUmJiJzdHJpbmciPT10eXBlb2YgdFswXSYmT3QuY2FsbCh0LCJpbmRleCIpJiYobi5pbmRleD10LmluZGV4LG4uaW5wdXQ9dC5pbnB1dCksbn0pKGUpLCFsKXJldHVybiBKcihlLHMpfWVsc2V7dmFyIHA9Qm8oZSksbT1wPT12fHxwPT1iO2lmKGJzKGUpKXJldHVybiBxcihlLGwpO2lmKHA9PVN8fHA9PWZ8fG0mJiFvKXtpZihzPWN8fG0/e306Rm8oZSksIWwpcmV0dXJuIGM/KGZ1bmN0aW9uIE0odCxlKXtyZXR1cm4gUXIodCxEbyh0KSxlKX0pKGUsKGZ1bmN0aW9uIHkodCxlKXtyZXR1cm4gdCYmUXIoZSxjbChlKSx0KX0pKHMsZSkpOihmdW5jdGlvbiBrKHQsZSl7cmV0dXJuIFFyKHQsem8odCksZSl9KShlLG9pKHMsZSkpfWVsc2V7aWYoIWllW3BdKXJldHVybiBvP2U6e307cz0oZnVuY3Rpb24gVih0LGUsbil7dmFyIGk9dC5jb25zdHJ1Y3Rvcjtzd2l0Y2goZSl7Y2FzZSBMOnJldHVybiBZcih0KTtjYXNlIGc6Y2FzZSBfOnJldHVybiBuZXcgaSgrdCk7Y2FzZSBQOnJldHVybihmdW5jdGlvbiByKHQsZSl7dmFyIG49ZT9Zcih0LmJ1ZmZlcik6dC5idWZmZXI7cmV0dXJuIG5ldyB0LmNvbnN0cnVjdG9yKG4sdC5ieXRlT2Zmc2V0LHQuYnl0ZUxlbmd0aCl9KSh0LG4pO2Nhc2UgTjpjYXNlIEk6Y2FzZSBSOmNhc2UgTzpjYXNlIHo6Y2FzZSBEOmNhc2UgQjpjYXNlIEg6Y2FzZSBGOnJldHVybiBYcih0LG4pO2Nhc2UgeDpyZXR1cm4gbmV3IGk7Y2FzZSB3OmNhc2UgQzpyZXR1cm4gbmV3IGkodCk7Y2FzZSBFOnJldHVybihmdW5jdGlvbiBvKHQpe3ZhciBlPW5ldyB0LmNvbnN0cnVjdG9yKHQuc291cmNlLGh0LmV4ZWModCkpO3JldHVybiBlLmxhc3RJbmRleD10Lmxhc3RJbmRleCxlfSkodCk7Y2FzZSBUOnJldHVybiBuZXcgaTtjYXNlIEE6cmV0dXJuKGZ1bmN0aW9uIGEodCl7cmV0dXJuIEhuP0N0KEhuLmNhbGwodCkpOnt9fSkodCl9fSkoZSxwLGwpfX1hfHwoYT1uZXcgS24pO3ZhciBVPWEuZ2V0KGUpO2lmKFUpcmV0dXJuIFU7YS5zZXQoZSxzKSxPcyhlKT9lLmZvckVhY2goKGZ1bmN0aW9uKHQpe3MuYWRkKGNpKHQsbixpLHQsZSxhKSl9KSk6a3MoZSkmJmUuZm9yRWFjaCgoZnVuY3Rpb24odCxyKXtzLnNldChyLGNpKHQsbixpLHIsZSxhKSl9KSk7dmFyIGo9aD90Oih1P2M/QW86Q286Yz9jbDpsbCkoZSk7cmV0dXJuIE1lKGp8fGUsKGZ1bmN0aW9uKHQscil7aiYmKHQ9ZVtyPXRdKSxuaShzLHIsY2kodCxuLGkscixlLGEpKX0pKSxzfWZ1bmN0aW9uIHVpKGUsbixpKXt2YXIgcj1pLmxlbmd0aDtpZihudWxsPT1lKXJldHVybiFyO2ZvcihlPUN0KGUpO3ItLTspe3ZhciBvPWlbcl0sYT1lW29dO2lmKGE9PT10JiYhKG8gaW4gZSl8fCEoMCxuW29dKShhKSlyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBoaShuLGkscil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEx0KGUpO3JldHVybiBlYSgoZnVuY3Rpb24oKXtuLmFwcGx5KHQscil9KSxpKX1mdW5jdGlvbiBkaSh0LGUsbixpKXt2YXIgcj0tMSxvPUxlLGE9ITAscz10Lmxlbmd0aCxsPVtdLGM9ZS5sZW5ndGg7aWYoIXMpcmV0dXJuIGw7biYmKGU9TmUoZSxLZShuKSkpLGk/KG89UGUsYT0hMSk6ZS5sZW5ndGg+PTIwMCYmKG89SmUsYT0hMSxlPW5ldyAkbihlKSk7dDpmb3IoOysrcjxzOyl7dmFyIHU9dFtyXSxoPW51bGw9PW4/dTpuKHUpO2lmKHU9aXx8MCE9PXU/dTowLGEmJmg9PWgpe2Zvcih2YXIgZD1jO2QtLTspaWYoZVtkXT09PWgpY29udGludWUgdDtsLnB1c2godSl9ZWxzZSBvKGUsaCxpKXx8bC5wdXNoKHUpfXJldHVybiBsfVZuLnRlbXBsYXRlU2V0dGluZ3M9e2VzY2FwZTpYLGV2YWx1YXRlOiQsaW50ZXJwb2xhdGU6Syx2YXJpYWJsZToiIixpbXBvcnRzOntfOlZufX0sKFZuLnByb3RvdHlwZT1qbi5wcm90b3R5cGUpLmNvbnN0cnVjdG9yPVZuLChHbi5wcm90b3R5cGU9VW4oam4ucHJvdG90eXBlKSkuY29uc3RydWN0b3I9R24sKFduLnByb3RvdHlwZT1Vbihqbi5wcm90b3R5cGUpKS5jb25zdHJ1Y3Rvcj1Xbixxbi5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24gcGkoKXt0aGlzLl9fZGF0YV9fPUxuP0xuKG51bGwpOnt9LHRoaXMuc2l6ZT0wfSxxbi5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uIGZpKHQpe3ZhciBlPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1lPzE6MCxlfSxxbi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uIG1pKGUpe3ZhciBpPXRoaXMuX19kYXRhX187aWYoTG4pe3ZhciByPWlbZV07cmV0dXJuIHI9PT1uP3Q6cn1yZXR1cm4gT3QuY2FsbChpLGUpP2lbZV06dH0scW4ucHJvdG90eXBlLmhhcz1mdW5jdGlvbiBnaShlKXt2YXIgbj10aGlzLl9fZGF0YV9fO3JldHVybiBMbj9uW2VdIT09dDpPdC5jYWxsKG4sZSl9LHFuLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24gX2koZSxpKXt2YXIgcj10aGlzLl9fZGF0YV9fO3JldHVybiB0aGlzLnNpemUrPXRoaXMuaGFzKGUpPzA6MSxyW2VdPUxuJiZpPT09dD9uOmksdGhpc30sWW4ucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uIHlpKCl7dGhpcy5fX2RhdGFfXz1bXSx0aGlzLnNpemU9MH0sWW4ucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbiB2aSh0KXt2YXIgZT10aGlzLl9fZGF0YV9fLG49aWkoZSx0KTtyZXR1cm4hKG48MHx8KG49PWUubGVuZ3RoLTE/ZS5wb3AoKTpKdC5jYWxsKGUsbiwxKSwtLXRoaXMuc2l6ZSwwKSl9LFluLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24gYmkoZSl7dmFyIG49dGhpcy5fX2RhdGFfXyxpPWlpKG4sZSk7cmV0dXJuIGk8MD90Om5baV1bMV19LFluLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24geGkodCl7cmV0dXJuIGlpKHRoaXMuX19kYXRhX18sdCk+LTF9LFluLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24gd2kodCxlKXt2YXIgbj10aGlzLl9fZGF0YV9fLGk9aWkobix0KTtyZXR1cm4gaTwwPygrK3RoaXMuc2l6ZSxuLnB1c2goW3QsZV0pKTpuW2ldWzFdPWUsdGhpc30sWG4ucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uIFNpKCl7dGhpcy5zaXplPTAsdGhpcy5fX2RhdGFfXz17aGFzaDpuZXcgcW4sbWFwOm5ldyhUbnx8WW4pLHN0cmluZzpuZXcgcW59fSxYbi5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uIE1pKHQpe3ZhciBlPUlvKHRoaXMsdCkuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemUtPWU/MTowLGV9LFhuLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24gRWkodCl7cmV0dXJuIElvKHRoaXMsdCkuZ2V0KHQpfSxYbi5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uIFRpKHQpe3JldHVybiBJbyh0aGlzLHQpLmhhcyh0KX0sWG4ucHJvdG90eXBlLnNldD1mdW5jdGlvbiBDaSh0LGUpe3ZhciBuPUlvKHRoaXMsdCksaT1uLnNpemU7cmV0dXJuIG4uc2V0KHQsZSksdGhpcy5zaXplKz1uLnNpemU9PWk/MDoxLHRoaXN9LCRuLnByb3RvdHlwZS5hZGQ9JG4ucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24gQWkodCl7cmV0dXJuIHRoaXMuX19kYXRhX18uc2V0KHQsbiksdGhpc30sJG4ucHJvdG90eXBlLmhhcz1mdW5jdGlvbiBraSh0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXModCl9LEtuLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbiBMaSgpe3RoaXMuX19kYXRhX189bmV3IFluLHRoaXMuc2l6ZT0wfSxLbi5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uIFBpKHQpe3ZhciBlPXRoaXMuX19kYXRhX18sbj1lLmRlbGV0ZSh0KTtyZXR1cm4gdGhpcy5zaXplPWUuc2l6ZSxufSxLbi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uIE5pKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmdldCh0KX0sS24ucHJvdG90eXBlLmhhcz1mdW5jdGlvbiBJaSh0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXModCl9LEtuLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24gUmkodCxlKXt2YXIgbj10aGlzLl9fZGF0YV9fO2lmKG4gaW5zdGFuY2VvZiBZbil7dmFyIGk9bi5fX2RhdGFfXztpZighVG58fGkubGVuZ3RoPDE5OSlyZXR1cm4gaS5wdXNoKFt0LGVdKSx0aGlzLnNpemU9KytuLnNpemUsdGhpcztuPXRoaXMuX19kYXRhX189bmV3IFhuKGkpfXJldHVybiBuLnNldCh0LGUpLHRoaXMuc2l6ZT1uLnNpemUsdGhpc307dmFyIE9pPW5vKGppKSx6aT1ubyhHaSwhMCk7ZnVuY3Rpb24gRGkodCxlKXt2YXIgbj0hMDtyZXR1cm4gT2kodCwoZnVuY3Rpb24odCxpLHIpe3JldHVybiBuPSEhZSh0LGkscil9KSksbn1mdW5jdGlvbiBCaShlLG4saSl7Zm9yKHZhciByPS0xLG89ZS5sZW5ndGg7KytyPG87KXt2YXIgYT1lW3JdLHM9bihhKTtpZihudWxsIT1zJiYobD09PXQ/cz09cyYmIUJzKHMpOmkocyxsKSkpdmFyIGw9cyxjPWF9cmV0dXJuIGN9ZnVuY3Rpb24gSGkodCxlKXt2YXIgbj1bXTtyZXR1cm4gT2kodCwoZnVuY3Rpb24odCxpLHIpe2UodCxpLHIpJiZuLnB1c2godCl9KSksbn1mdW5jdGlvbiBGaSh0LGUsbixpLHIpe3ZhciBvPS0xLGE9dC5sZW5ndGg7Zm9yKG58fChuPVZvKSxyfHwocj1bXSk7KytvPGE7KXt2YXIgcz10W29dO2U+MCYmbihzKT9lPjE/RmkocyxlLTEsbixpLHIpOkllKHIscyk6aXx8KHJbci5sZW5ndGhdPXMpfXJldHVybiByfXZhciBWaT1pbygpLFVpPWlvKCEwKTtmdW5jdGlvbiBqaSh0LGUpe3JldHVybiB0JiZWaSh0LGUsbGwpfWZ1bmN0aW9uIEdpKHQsZSl7cmV0dXJuIHQmJlVpKHQsZSxsbCl9ZnVuY3Rpb24gV2kodCxlKXtyZXR1cm4ga2UoZSwoZnVuY3Rpb24oZSl7cmV0dXJuIE1zKHRbZV0pfSkpfWZ1bmN0aW9uIHFpKGUsbil7Zm9yKHZhciBpPTAscj0obj1VcihuLGUpKS5sZW5ndGg7bnVsbCE9ZSYmaTxyOyllPWVbbGEobltpKytdKV07cmV0dXJuIGkmJmk9PXI/ZTp0fWZ1bmN0aW9uIFlpKHQsZSxuKXt2YXIgaT1lKHQpO3JldHVybiBtcyh0KT9pOkllKGksbih0KSl9ZnVuY3Rpb24gWGkoZSl7cmV0dXJuIG51bGw9PWU/ZT09PXQ/IltvYmplY3QgVW5kZWZpbmVkXSI6IltvYmplY3QgTnVsbF0iOmxlJiZsZSBpbiBDdChlKT8oZnVuY3Rpb24gbihlKXt2YXIgbj1PdC5jYWxsKGUsbGUpLGk9ZVtsZV07dHJ5e2VbbGVdPXQ7dmFyIHI9ITB9Y2F0Y2godCl7fXZhciBvPUJ0LmNhbGwoZSk7cmV0dXJuIHImJihuP2VbbGVdPWk6ZGVsZXRlIGVbbGVdKSxvfSkoZSk6KGZ1bmN0aW9uIGkodCl7cmV0dXJuIEJ0LmNhbGwodCl9KShlKX1mdW5jdGlvbiAkaSh0LGUpe3JldHVybiB0PmV9ZnVuY3Rpb24gS2kodCxlKXtyZXR1cm4gbnVsbCE9dCYmT3QuY2FsbCh0LGUpfWZ1bmN0aW9uIFppKHQsZSl7cmV0dXJuIG51bGwhPXQmJmUgaW4gQ3QodCl9ZnVuY3Rpb24gSmkoZSxuLGkpe2Zvcih2YXIgcj1pP1BlOkxlLG89ZVswXS5sZW5ndGgsYT1lLmxlbmd0aCxzPWEsbD13dChhKSxjPTEvMCx1PVtdO3MtLTspe3ZhciBoPWVbc107cyYmbiYmKGg9TmUoaCxLZShuKSkpLGM9Ym4oaC5sZW5ndGgsYyksbFtzXT0haSYmKG58fG8+PTEyMCYmaC5sZW5ndGg+PTEyMCk/bmV3ICRuKHMmJmgpOnR9aD1lWzBdO3ZhciBkPS0xLHA9bFswXTt0OmZvcig7KytkPG8mJnUubGVuZ3RoPGM7KXt2YXIgZj1oW2RdLG09bj9uKGYpOmY7aWYoZj1pfHwwIT09Zj9mOjAsIShwP0plKHAsbSk6cih1LG0saSkpKXtmb3Iocz1hOy0tczspe3ZhciBnPWxbc107aWYoIShnP0plKGcsbSk6cihlW3NdLG0saSkpKWNvbnRpbnVlIHR9cCYmcC5wdXNoKG0pLHUucHVzaChmKX19cmV0dXJuIHV9ZnVuY3Rpb24gUWkoZSxuLGkpe3ZhciByPW51bGw9PShlPVpvKGUsbj1VcihuLGUpKSk/ZTplW2xhKHhhKG4pKV07cmV0dXJuIG51bGw9PXI/dDp4ZShyLGUsaSl9ZnVuY3Rpb24gdHIodCl7cmV0dXJuIEFzKHQpJiZYaSh0KT09Zn1mdW5jdGlvbiBlcihlLG4saSxyLG8pe3JldHVybiBlPT09bnx8KG51bGw9PWV8fG51bGw9PW58fCFBcyhlKSYmIUFzKG4pP2UhPWUmJm4hPW46KGZ1bmN0aW9uIGEoZSxuLGkscixvLHMpe3ZhciBsPW1zKGUpLGM9bXMobiksdT1sP206Qm8oZSksaD1jP206Qm8obiksZD0odT11PT1mP1M6dSk9PVMscD0oaD1oPT1mP1M6aCk9PVMsdj11PT1oO2lmKHYmJmJzKGUpKXtpZighYnMobikpcmV0dXJuITE7bD0hMCxkPSExfWlmKHYmJiFkKXJldHVybiBzfHwocz1uZXcgS24pLGx8fEhzKGUpP0VvKGUsbixpLHIsbyxzKTooZnVuY3Rpb24gYih0LGUsbixpLHIsbyxhKXtzd2l0Y2gobil7Y2FzZSBQOmlmKHQuYnl0ZUxlbmd0aCE9ZS5ieXRlTGVuZ3RofHx0LmJ5dGVPZmZzZXQhPWUuYnl0ZU9mZnNldClyZXR1cm4hMTt0PXQuYnVmZmVyLGU9ZS5idWZmZXI7Y2FzZSBMOnJldHVybiEodC5ieXRlTGVuZ3RoIT1lLmJ5dGVMZW5ndGh8fCFvKG5ldyBHdCh0KSxuZXcgR3QoZSkpKTtjYXNlIGc6Y2FzZSBfOmNhc2UgdzpyZXR1cm4gaHMoK3QsK2UpO2Nhc2UgeTpyZXR1cm4gdC5uYW1lPT1lLm5hbWUmJnQubWVzc2FnZT09ZS5tZXNzYWdlO2Nhc2UgRTpjYXNlIEM6cmV0dXJuIHQ9PWUrIiI7Y2FzZSB4OnZhciBzPXNuO2Nhc2UgVDppZihzfHwocz11biksdC5zaXplIT1lLnNpemUmJiEoMSZpKSlyZXR1cm4hMTt2YXIgbD1hLmdldCh0KTtpZihsKXJldHVybiBsPT1lO2l8PTIsYS5zZXQodCxlKTt2YXIgYz1FbyhzKHQpLHMoZSksaSxyLG8sYSk7cmV0dXJuIGEuZGVsZXRlKHQpLGM7Y2FzZSBBOmlmKEhuKXJldHVybiBIbi5jYWxsKHQpPT1Ibi5jYWxsKGUpfXJldHVybiExfSkoZSxuLHUsaSxyLG8scyk7aWYoISgxJmkpKXt2YXIgTT1kJiZPdC5jYWxsKGUsIl9fd3JhcHBlZF9fIiksaz1wJiZPdC5jYWxsKG4sIl9fd3JhcHBlZF9fIik7aWYoTXx8ayl7dmFyIE49TT9lLnZhbHVlKCk6ZSxJPWs/bi52YWx1ZSgpOm47cmV0dXJuIHN8fChzPW5ldyBLbiksbyhOLEksaSxyLHMpfX1yZXR1cm4hIXYmJihzfHwocz1uZXcgS24pLChmdW5jdGlvbiBSKGUsbixpLHIsbyxhKXt2YXIgcz0xJmksbD1DbyhlKSxjPWwubGVuZ3RoLHU9Q28obik7aWYoYyE9dS5sZW5ndGgmJiFzKXJldHVybiExO2Zvcih2YXIgaD1jO2gtLTspe3ZhciBkPWxbaF07aWYoIShzP2QgaW4gbjpPdC5jYWxsKG4sZCkpKXJldHVybiExfXZhciBwPWEuZ2V0KGUpLGY9YS5nZXQobik7aWYocCYmZilyZXR1cm4gcD09biYmZj09ZTt2YXIgbT0hMDthLnNldChlLG4pLGEuc2V0KG4sZSk7Zm9yKHZhciBnPXM7KytoPGM7KXt2YXIgXz1lW2Q9bFtoXV0seT1uW2RdO2lmKHIpdmFyIHY9cz9yKHksXyxkLG4sZSxhKTpyKF8seSxkLGUsbixhKTtpZighKHY9PT10P189PT15fHxvKF8seSxpLHIsYSk6dikpe209ITE7YnJlYWt9Z3x8KGc9ImNvbnN0cnVjdG9yIj09ZCl9aWYobSYmIWcpe3ZhciBiPWUuY29uc3RydWN0b3IseD1uLmNvbnN0cnVjdG9yO2I9PXh8fCEoImNvbnN0cnVjdG9yImluIGUpfHwhKCJjb25zdHJ1Y3RvciJpbiBuKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGImJmIgaW5zdGFuY2VvZiBiJiYiZnVuY3Rpb24iPT10eXBlb2YgeCYmeCBpbnN0YW5jZW9mIHh8fChtPSExKX1yZXR1cm4gYS5kZWxldGUoZSksYS5kZWxldGUobiksbX0pKGUsbixpLHIsbyxzKSl9KShlLG4saSxyLGVyLG8pKX1mdW5jdGlvbiBucihlLG4saSxyKXt2YXIgbz1pLmxlbmd0aCxhPW8scz0hcjtpZihudWxsPT1lKXJldHVybiFhO2ZvcihlPUN0KGUpO28tLTspe3ZhciBsPWlbb107aWYocyYmbFsyXT9sWzFdIT09ZVtsWzBdXTohKGxbMF1pbiBlKSlyZXR1cm4hMX1mb3IoOysrbzxhOyl7dmFyIGM9KGw9aVtvXSlbMF0sdT1lW2NdLGg9bFsxXTtpZihzJiZsWzJdKXtpZih1PT09dCYmIShjIGluIGUpKXJldHVybiExfWVsc2V7dmFyIGQ9bmV3IEtuO2lmKHIpdmFyIHA9cih1LGgsYyxlLG4sZCk7aWYoIShwPT09dD9lcihoLHUsMyxyLGQpOnApKXJldHVybiExfX1yZXR1cm4hMH1mdW5jdGlvbiBpcih0KXtyZXR1cm4hKCFDcyh0KXx8KGZ1bmN0aW9uIGUodCl7cmV0dXJuISFEdCYmRHQgaW4gdH0pKHQpKSYmKE1zKHQpP1Z0OmZ0KS50ZXN0KGNhKHQpKX1mdW5jdGlvbiBycih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90Om51bGw9PXQ/Umw6Im9iamVjdCI9PXR5cGVvZiB0P21zKHQpP3VyKHRbMF0sdFsxXSk6Y3IodCk6amwodCl9ZnVuY3Rpb24gb3IodCl7aWYoIVlvKHQpKXJldHVybiB5bih0KTt2YXIgZT1bXTtmb3IodmFyIG4gaW4gQ3QodCkpT3QuY2FsbCh0LG4pJiYiY29uc3RydWN0b3IiIT1uJiZlLnB1c2gobik7cmV0dXJuIGV9ZnVuY3Rpb24gYXIodCl7aWYoIUNzKHQpKXJldHVybihmdW5jdGlvbiBlKHQpe3ZhciBlPVtdO2lmKG51bGwhPXQpZm9yKHZhciBuIGluIEN0KHQpKWUucHVzaChuKTtyZXR1cm4gZX0pKHQpO3ZhciBuPVlvKHQpLGk9W107Zm9yKHZhciByIGluIHQpKCJjb25zdHJ1Y3RvciIhPXJ8fCFuJiZPdC5jYWxsKHQscikpJiZpLnB1c2gocik7cmV0dXJuIGl9ZnVuY3Rpb24gc3IodCxlKXtyZXR1cm4gdDxlfWZ1bmN0aW9uIGxyKHQsZSl7dmFyIG49LTEsaT15cyh0KT93dCh0Lmxlbmd0aCk6W107cmV0dXJuIE9pKHQsKGZ1bmN0aW9uKHQscixvKXtpWysrbl09ZSh0LHIsbyl9KSksaX1mdW5jdGlvbiBjcih0KXt2YXIgZT1Sbyh0KTtyZXR1cm4gMT09ZS5sZW5ndGgmJmVbMF1bMl0/JG8oZVswXVswXSxlWzBdWzFdKTpmdW5jdGlvbihuKXtyZXR1cm4gbj09PXR8fG5yKG4sdCxlKX19ZnVuY3Rpb24gdXIoZSxuKXtyZXR1cm4gR28oZSkmJlhvKG4pPyRvKGxhKGUpLG4pOmZ1bmN0aW9uKGkpe3ZhciByPWlsKGksZSk7cmV0dXJuIHI9PT10JiZyPT09bj9ybChpLGUpOmVyKG4sciwzKX19ZnVuY3Rpb24gaHIoZSxuLGkscixvKXtlIT09biYmVmkobiwoZnVuY3Rpb24oYSxzKXtpZihvfHwobz1uZXcgS24pLENzKGEpKSEoZnVuY3Rpb24gbChlLG4saSxyLG8sYSxzKXt2YXIgbD1RbyhlLGkpLGM9UW8obixpKSx1PXMuZ2V0KGMpO2lmKHUpZWkoZSxpLHUpO2Vsc2V7dmFyIGg9YT9hKGwsYyxpKyIiLGUsbixzKTp0LGQ9aD09PXQ7aWYoZCl7dmFyIHA9bXMoYyksZj0hcCYmYnMoYyksbT0hcCYmIWYmJkhzKGMpO2g9YyxwfHxmfHxtP21zKGwpP2g9bDp2cyhsKT9oPUpyKGwpOmY/KGQ9ITEsaD1xcihjLCEwKSk6bT8oZD0hMSxoPVhyKGMsITApKTpoPVtdOk5zKGMpfHxmcyhjKT8oaD1sLGZzKGwpP2g9WHMobCk6Q3MobCkmJiFNcyhsKXx8KGg9Rm8oYykpKTpkPSExfWQmJihzLnNldChjLGgpLG8oaCxjLHIsYSxzKSxzLmRlbGV0ZShjKSksZWkoZSxpLGgpfX0pKGUsbixzLGksaHIscixvKTtlbHNle3ZhciBjPXI/cihRbyhlLHMpLGEscysiIixlLG4sbyk6dDtjPT09dCYmKGM9YSksZWkoZSxzLGMpfX0pLGNsKX1mdW5jdGlvbiBkcihlLG4pe3ZhciBpPWUubGVuZ3RoO2lmKGkpcmV0dXJuIFVvKG4rPW48MD9pOjAsaSk/ZVtuXTp0fWZ1bmN0aW9uIHByKHQsZSxuKXtlPWUubGVuZ3RoP05lKGUsKGZ1bmN0aW9uKHQpe3JldHVybiBtcyh0KT9mdW5jdGlvbihlKXtyZXR1cm4gcWkoZSwxPT09dC5sZW5ndGg/dFswXTp0KX06dH0pKTpbUmxdO3ZhciBpPS0xO3JldHVybiBlPU5lKGUsS2UoTm8oKSkpLChmdW5jdGlvbiByKHQsZSl7dmFyIG49dC5sZW5ndGg7Zm9yKHQuc29ydChlKTtuLS07KXRbbl09dFtuXS52YWx1ZTtyZXR1cm4gdH0pKGxyKHQsKGZ1bmN0aW9uKHQsbixyKXtyZXR1cm57Y3JpdGVyaWE6TmUoZSwoZnVuY3Rpb24oZSl7cmV0dXJuIGUodCl9KSksaW5kZXg6KytpLHZhbHVlOnR9fSkpLChmdW5jdGlvbih0LGUpe3JldHVybihmdW5jdGlvbiBpKHQsZSxuKXtmb3IodmFyIGk9LTEscj10LmNyaXRlcmlhLG89ZS5jcml0ZXJpYSxhPXIubGVuZ3RoLHM9bi5sZW5ndGg7KytpPGE7KXt2YXIgbD0kcihyW2ldLG9baV0pO2lmKGwpcmV0dXJuIGk+PXM/bDpsKigiZGVzYyI9PW5baV0/LTE6MSl9cmV0dXJuIHQuaW5kZXgtZS5pbmRleH0pKHQsZSxuKX0pKX1mdW5jdGlvbiBmcih0LGUsbil7Zm9yKHZhciBpPS0xLHI9ZS5sZW5ndGgsbz17fTsrK2k8cjspe3ZhciBhPWVbaV0scz1xaSh0LGEpO24ocyxhKSYmd3IobyxVcihhLHQpLHMpfXJldHVybiBvfWZ1bmN0aW9uIG1yKHQsZSxuLGkpe3ZhciByPWk/VmU6RmUsbz0tMSxhPWUubGVuZ3RoLHM9dDtmb3IodD09PWUmJihlPUpyKGUpKSxuJiYocz1OZSh0LEtlKG4pKSk7KytvPGE7KWZvcih2YXIgbD0wLGM9ZVtvXSx1PW4/bihjKTpjOyhsPXIocyx1LGwsaSkpPi0xOylzIT09dCYmSnQuY2FsbChzLGwsMSksSnQuY2FsbCh0LGwsMSk7cmV0dXJuIHR9ZnVuY3Rpb24gZ3IodCxlKXtmb3IodmFyIG49dD9lLmxlbmd0aDowLGk9bi0xO24tLTspe3ZhciByPWVbbl07aWYobj09aXx8ciE9PW8pe3ZhciBvPXI7VW8ocik/SnQuY2FsbCh0LHIsMSk6UnIodCxyKX19cmV0dXJuIHR9ZnVuY3Rpb24gX3IodCxlKXtyZXR1cm4gdCtFZShTbigpKihlLXQrMSkpfWZ1bmN0aW9uIHlyKHQsZSl7dmFyIG49IiI7aWYoIXR8fGU8MXx8ZT51KXJldHVybiBuO2Rve2UlMiYmKG4rPXQpLChlPUVlKGUvMikpJiYodCs9dCl9d2hpbGUoZSk7cmV0dXJuIG59ZnVuY3Rpb24gdnIodCxlKXtyZXR1cm4gbmEoS28odCxlLFJsKSx0KyIiKX1mdW5jdGlvbiBicih0KXtyZXR1cm4gSm4oX2wodCkpfWZ1bmN0aW9uIHhyKHQsZSl7dmFyIG49X2wodCk7cmV0dXJuIG9hKG4sbGkoZSwwLG4ubGVuZ3RoKSl9ZnVuY3Rpb24gd3IoZSxuLGkscil7aWYoIUNzKGUpKXJldHVybiBlO2Zvcih2YXIgbz0tMSxhPShuPVVyKG4sZSkpLmxlbmd0aCxzPWEtMSxsPWU7bnVsbCE9bCYmKytvPGE7KXt2YXIgYz1sYShuW29dKSx1PWk7aWYoIl9fcHJvdG9fXyI9PT1jfHwiY29uc3RydWN0b3IiPT09Y3x8InByb3RvdHlwZSI9PT1jKXJldHVybiBlO2lmKG8hPXMpe3ZhciBoPWxbY107KHU9cj9yKGgsYyxsKTp0KT09PXQmJih1PUNzKGgpP2g6VW8obltvKzFdKT9bXTp7fSl9bmkobCxjLHUpLGw9bFtjXX1yZXR1cm4gZX12YXIgU3I9UG4/ZnVuY3Rpb24odCxlKXtyZXR1cm4gUG4uc2V0KHQsZSksdH06UmwsTXI9dWU/ZnVuY3Rpb24odCxlKXtyZXR1cm4gdWUodCwidG9TdHJpbmciLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMSx2YWx1ZTpQbChlKSx3cml0YWJsZTohMH0pfTpSbDtmdW5jdGlvbiBFcih0KXtyZXR1cm4gb2EoX2wodCkpfWZ1bmN0aW9uIFRyKHQsZSxuKXt2YXIgaT0tMSxyPXQubGVuZ3RoO2U8MCYmKGU9LWU+cj8wOnIrZSksKG49bj5yP3I6bik8MCYmKG4rPXIpLHI9ZT5uPzA6bi1lPj4+MCxlPj4+PTA7Zm9yKHZhciBvPXd0KHIpOysraTxyOylvW2ldPXRbaStlXTtyZXR1cm4gb31mdW5jdGlvbiBDcih0LGUpe3ZhciBuO3JldHVybiBPaSh0LChmdW5jdGlvbih0LGkscil7cmV0dXJuIShuPWUodCxpLHIpKX0pKSwhIW59ZnVuY3Rpb24gQXIodCxlLG4pe3ZhciBpPTAscj1udWxsPT10P2k6dC5sZW5ndGg7aWYoIm51bWJlciI9PXR5cGVvZiBlJiZlPT1lJiZyPD0yMTQ3NDgzNjQ3KXtmb3IoO2k8cjspe3ZhciBvPWkrcj4+PjEsYT10W29dO251bGwhPT1hJiYhQnMoYSkmJihuP2E8PWU6YTxlKT9pPW8rMTpyPW99cmV0dXJuIHJ9cmV0dXJuIGtyKHQsZSxSbCxuKX1mdW5jdGlvbiBrcihlLG4saSxyKXt2YXIgbz0wLGE9bnVsbD09ZT8wOmUubGVuZ3RoO2lmKDA9PT1hKXJldHVybiAwO2Zvcih2YXIgcz0obj1pKG4pKSE9bixsPW51bGw9PT1uLGM9QnMobiksdT1uPT09dDtvPGE7KXt2YXIgaD1FZSgobythKS8yKSxkPWkoZVtoXSkscD1kIT09dCxmPW51bGw9PT1kLG09ZD09ZCxnPUJzKGQpO2lmKHMpdmFyIF89cnx8bTtlbHNlIF89dT9tJiYocnx8cCk6bD9tJiZwJiYocnx8IWYpOmM/bSYmcCYmIWYmJihyfHwhZyk6IWYmJiFnJiYocj9kPD1uOmQ8bik7Xz9vPWgrMTphPWh9cmV0dXJuIGJuKGEsNDI5NDk2NzI5NCl9ZnVuY3Rpb24gTHIodCxlKXtmb3IodmFyIG49LTEsaT10Lmxlbmd0aCxyPTAsbz1bXTsrK248aTspe3ZhciBhPXRbbl0scz1lP2UoYSk6YTtpZighbnx8IWhzKHMsbCkpe3ZhciBsPXM7b1tyKytdPTA9PT1hPzA6YX19cmV0dXJuIG99ZnVuY3Rpb24gUHIodCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0P3Q6QnModCk/aDordH1mdW5jdGlvbiBOcih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYobXModCkpcmV0dXJuIE5lKHQsTnIpKyIiO2lmKEJzKHQpKXJldHVybiBGbj9Gbi5jYWxsKHQpOiIiO3ZhciBlPXQrIiI7cmV0dXJuIjAiPT1lJiYxL3Q9PS0xLzA/Ii0wIjplfWZ1bmN0aW9uIElyKHQsZSxuKXt2YXIgaT0tMSxyPUxlLG89dC5sZW5ndGgsYT0hMCxzPVtdLGw9cztpZihuKWE9ITEscj1QZTtlbHNlIGlmKG8+PTIwMCl7dmFyIGM9ZT9udWxsOnZvKHQpO2lmKGMpcmV0dXJuIHVuKGMpO2E9ITEscj1KZSxsPW5ldyAkbn1lbHNlIGw9ZT9bXTpzO3Q6Zm9yKDsrK2k8bzspe3ZhciB1PXRbaV0saD1lP2UodSk6dTtpZih1PW58fDAhPT11P3U6MCxhJiZoPT1oKXtmb3IodmFyIGQ9bC5sZW5ndGg7ZC0tOylpZihsW2RdPT09aCljb250aW51ZSB0O2UmJmwucHVzaChoKSxzLnB1c2godSl9ZWxzZSByKGwsaCxuKXx8KGwhPT1zJiZsLnB1c2goaCkscy5wdXNoKHUpKX1yZXR1cm4gc31mdW5jdGlvbiBScih0LGUpe3JldHVybiBudWxsPT0odD1abyh0LGU9VXIoZSx0KSkpfHxkZWxldGUgdFtsYSh4YShlKSldfWZ1bmN0aW9uIE9yKHQsZSxuLGkpe3JldHVybiB3cih0LGUsbihxaSh0LGUpKSxpKX1mdW5jdGlvbiB6cih0LGUsbixpKXtmb3IodmFyIHI9dC5sZW5ndGgsbz1pP3I6LTE7KGk/by0tOisrbzxyKSYmZSh0W29dLG8sdCk7KTtyZXR1cm4gbj9Ucih0LGk/MDpvLGk/bysxOnIpOlRyKHQsaT9vKzE6MCxpP3I6byl9ZnVuY3Rpb24gRHIodCxlKXt2YXIgbj10O3JldHVybiBuIGluc3RhbmNlb2YgV24mJihuPW4udmFsdWUoKSksUmUoZSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5mdW5jLmFwcGx5KGUudGhpc0FyZyxJZShbdF0sZS5hcmdzKSl9KSxuKX1mdW5jdGlvbiBCcih0LGUsbil7dmFyIGk9dC5sZW5ndGg7aWYoaTwyKXJldHVybiBpP0lyKHRbMF0pOltdO2Zvcih2YXIgcj0tMSxvPXd0KGkpOysrcjxpOylmb3IodmFyIGE9dFtyXSxzPS0xOysrczxpOylzIT1yJiYob1tyXT1kaShvW3JdfHxhLHRbc10sZSxuKSk7cmV0dXJuIElyKEZpKG8sMSksZSxuKX1mdW5jdGlvbiBIcihlLG4saSl7Zm9yKHZhciByPS0xLG89ZS5sZW5ndGgsYT1uLmxlbmd0aCxzPXt9OysrcjxvOylpKHMsZVtyXSxyPGE/bltyXTp0KTtyZXR1cm4gc31mdW5jdGlvbiBGcih0KXtyZXR1cm4gdnModCk/dDpbXX1mdW5jdGlvbiBWcih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90OlJsfWZ1bmN0aW9uIFVyKHQsZSl7cmV0dXJuIG1zKHQpP3Q6R28odCxlKT9bdF06YWEoJHModCkpfXZhciBqcj12cjtmdW5jdGlvbiBHcihlLG4saSl7dmFyIHI9ZS5sZW5ndGg7cmV0dXJuIGk9aT09PXQ/cjppLCFuJiZpPj1yP2U6VHIoZSxuLGkpfXZhciBXcj1oZXx8ZnVuY3Rpb24odCl7cmV0dXJuIGNlLmNsZWFyVGltZW91dCh0KX07ZnVuY3Rpb24gcXIodCxlKXtpZihlKXJldHVybiB0LnNsaWNlKCk7dmFyIG49dC5sZW5ndGgsaT1XdD9XdChuKTpuZXcgdC5jb25zdHJ1Y3RvcihuKTtyZXR1cm4gdC5jb3B5KGkpLGl9ZnVuY3Rpb24gWXIodCl7dmFyIGU9bmV3IHQuY29uc3RydWN0b3IodC5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3IEd0KGUpLnNldChuZXcgR3QodCkpLGV9ZnVuY3Rpb24gWHIodCxlKXt2YXIgbj1lP1lyKHQuYnVmZmVyKTp0LmJ1ZmZlcjtyZXR1cm4gbmV3IHQuY29uc3RydWN0b3Iobix0LmJ5dGVPZmZzZXQsdC5sZW5ndGgpfWZ1bmN0aW9uICRyKGUsbil7aWYoZSE9PW4pe3ZhciBpPWUhPT10LHI9bnVsbD09PWUsbz1lPT1lLGE9QnMoZSkscz1uIT09dCxsPW51bGw9PT1uLGM9bj09bix1PUJzKG4pO2lmKCFsJiYhdSYmIWEmJmU+bnx8YSYmcyYmYyYmIWwmJiF1fHxyJiZzJiZjfHwhaSYmY3x8IW8pcmV0dXJuIDE7aWYoIXImJiFhJiYhdSYmZTxufHx1JiZpJiZvJiYhciYmIWF8fGwmJmkmJm98fCFzJiZvfHwhYylyZXR1cm4tMX1yZXR1cm4gMH1mdW5jdGlvbiBLcih0LGUsbixpKXtmb3IodmFyIHI9LTEsbz10Lmxlbmd0aCxhPW4ubGVuZ3RoLHM9LTEsbD1lLmxlbmd0aCxjPXZuKG8tYSwwKSx1PXd0KGwrYyksaD0haTsrK3M8bDspdVtzXT1lW3NdO2Zvcig7KytyPGE7KShofHxyPG8pJiYodVtuW3JdXT10W3JdKTtmb3IoO2MtLTspdVtzKytdPXRbcisrXTtyZXR1cm4gdX1mdW5jdGlvbiBacih0LGUsbixpKXtmb3IodmFyIHI9LTEsbz10Lmxlbmd0aCxhPS0xLHM9bi5sZW5ndGgsbD0tMSxjPWUubGVuZ3RoLHU9dm4oby1zLDApLGg9d3QodStjKSxkPSFpOysrcjx1OyloW3JdPXRbcl07Zm9yKHZhciBwPXI7KytsPGM7KWhbcCtsXT1lW2xdO2Zvcig7KythPHM7KShkfHxyPG8pJiYoaFtwK25bYV1dPXRbcisrXSk7cmV0dXJuIGh9ZnVuY3Rpb24gSnIodCxlKXt2YXIgbj0tMSxpPXQubGVuZ3RoO2ZvcihlfHwoZT13dChpKSk7KytuPGk7KWVbbl09dFtuXTtyZXR1cm4gZX1mdW5jdGlvbiBRcihlLG4saSxyKXt2YXIgbz0haTtpfHwoaT17fSk7Zm9yKHZhciBhPS0xLHM9bi5sZW5ndGg7KythPHM7KXt2YXIgbD1uW2FdLGM9cj9yKGlbbF0sZVtsXSxsLGksZSk6dDtjPT09dCYmKGM9ZVtsXSksbz9haShpLGwsYyk6bmkoaSxsLGMpfXJldHVybiBpfWZ1bmN0aW9uIHRvKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4saSl7dmFyIHI9bXMobik/d2U6cmksbz1lP2UoKTp7fTtyZXR1cm4gcihuLHQsTm8oaSwyKSxvKX19ZnVuY3Rpb24gZW8oZSl7cmV0dXJuIHZyKChmdW5jdGlvbihuLGkpe3ZhciByPS0xLG89aS5sZW5ndGgsYT1vPjE/aVtvLTFdOnQscz1vPjI/aVsyXTp0O2ZvcihhPWUubGVuZ3RoPjMmJiJmdW5jdGlvbiI9PXR5cGVvZiBhPyhvLS0sYSk6dCxzJiZqbyhpWzBdLGlbMV0scykmJihhPW88Mz90OmEsbz0xKSxuPUN0KG4pOysrcjxvOyl7dmFyIGw9aVtyXTtsJiZlKG4sbCxyLGEpfXJldHVybiBufSkpfWZ1bmN0aW9uIG5vKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4saSl7aWYobnVsbD09bilyZXR1cm4gbjtpZigheXMobikpcmV0dXJuIHQobixpKTtmb3IodmFyIHI9bi5sZW5ndGgsbz1lP3I6LTEsYT1DdChuKTsoZT9vLS06KytvPHIpJiYhMSE9PWkoYVtvXSxvLGEpOyk7cmV0dXJuIG59fWZ1bmN0aW9uIGlvKHQpe3JldHVybiBmdW5jdGlvbihlLG4saSl7Zm9yKHZhciByPS0xLG89Q3QoZSksYT1pKGUpLHM9YS5sZW5ndGg7cy0tOyl7dmFyIGw9YVt0P3M6KytyXTtpZighMT09PW4ob1tsXSxsLG8pKWJyZWFrfXJldHVybiBlfX1mdW5jdGlvbiBybyhlKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGk9YW4obj0kcyhuKSk/cG4obik6dCxyPWk/aVswXTpuLmNoYXJBdCgwKSxvPWk/R3IoaSwxKS5qb2luKCIiKTpuLnNsaWNlKDEpO3JldHVybiByW2VdKCkrb319ZnVuY3Rpb24gb28odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBSZShBbChibChlKS5yZXBsYWNlKFh0LCIiKSksdCwiIil9fWZ1bmN0aW9uIGFvKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cztzd2l0Y2goZS5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gbmV3IHQ7Y2FzZSAxOnJldHVybiBuZXcgdChlWzBdKTtjYXNlIDI6cmV0dXJuIG5ldyB0KGVbMF0sZVsxXSk7Y2FzZSAzOnJldHVybiBuZXcgdChlWzBdLGVbMV0sZVsyXSk7Y2FzZSA0OnJldHVybiBuZXcgdChlWzBdLGVbMV0sZVsyXSxlWzNdKTtjYXNlIDU6cmV0dXJuIG5ldyB0KGVbMF0sZVsxXSxlWzJdLGVbM10sZVs0XSk7Y2FzZSA2OnJldHVybiBuZXcgdChlWzBdLGVbMV0sZVsyXSxlWzNdLGVbNF0sZVs1XSk7Y2FzZSA3OnJldHVybiBuZXcgdChlWzBdLGVbMV0sZVsyXSxlWzNdLGVbNF0sZVs1XSxlWzZdKX12YXIgbj1Vbih0LnByb3RvdHlwZSksaT10LmFwcGx5KG4sZSk7cmV0dXJuIENzKGkpP2k6bn19ZnVuY3Rpb24gc28oZSl7cmV0dXJuIGZ1bmN0aW9uKG4saSxyKXt2YXIgbz1DdChuKTtpZigheXMobikpe3ZhciBhPU5vKGksMyk7bj1sbChuKSxpPWZ1bmN0aW9uKHQpe3JldHVybiBhKG9bdF0sdCxvKX19dmFyIHM9ZShuLGkscik7cmV0dXJuIHM+LTE/b1thP25bc106c106dH19ZnVuY3Rpb24gbG8obil7cmV0dXJuIFRvKChmdW5jdGlvbihpKXt2YXIgcj1pLmxlbmd0aCxvPXIsYT1Hbi5wcm90b3R5cGUudGhydTtmb3IobiYmaS5yZXZlcnNlKCk7by0tOyl7dmFyIHM9aVtvXTtpZigiZnVuY3Rpb24iIT10eXBlb2Ygcyl0aHJvdyBuZXcgTHQoZSk7aWYoYSYmIWwmJiJ3cmFwcGVyIj09TG8ocykpdmFyIGw9bmV3IEduKFtdLCEwKX1mb3Iobz1sP286cjsrK288cjspe3ZhciBjPUxvKHM9aVtvXSksdT0id3JhcHBlciI9PWM/a28ocyk6dDtsPXUmJldvKHVbMF0pJiY0MjQ9PXVbMV0mJiF1WzRdLmxlbmd0aCYmMT09dVs5XT9sW0xvKHVbMF0pXS5hcHBseShsLHVbM10pOjE9PXMubGVuZ3RoJiZXbyhzKT9sW2NdKCk6bC50aHJ1KHMpfXJldHVybiBmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cyxlPXRbMF07aWYobCYmMT09dC5sZW5ndGgmJm1zKGUpKXJldHVybiBsLnBsYW50KGUpLnZhbHVlKCk7Zm9yKHZhciBuPTAsbz1yP2lbbl0uYXBwbHkodGhpcyx0KTplOysrbjxyOylvPWlbbl0uY2FsbCh0aGlzLG8pO3JldHVybiBvfX0pKX1mdW5jdGlvbiBjbyhlLG4saSxyLG8sYSxsLGMsdSxoKXt2YXIgZD1uJnMscD0xJm4sZj0yJm4sbT0yNCZuLGc9NTEyJm4sXz1mP3Q6YW8oZSk7cmV0dXJuIGZ1bmN0aW9uIHQoKXtmb3IodmFyIHM9YXJndW1lbnRzLmxlbmd0aCx5PXd0KHMpLHY9czt2LS07KXlbdl09YXJndW1lbnRzW3ZdO2lmKG0pdmFyIGI9UG8odCkseD1lbih5LGIpO2lmKHImJih5PUtyKHkscixvLG0pKSxhJiYoeT1acih5LGEsbCxtKSkscy09eCxtJiZzPGgpe3ZhciB3PWNuKHksYik7cmV0dXJuIF9vKGUsbixjbyx0LnBsYWNlaG9sZGVyLGkseSx3LGMsdSxoLXMpfXZhciBTPXA/aTp0aGlzLE09Zj9TW2VdOmU7cmV0dXJuIHM9eS5sZW5ndGgsYz95PUpvKHksYyk6ZyYmcz4xJiZ5LnJldmVyc2UoKSxkJiZ1PHMmJih5Lmxlbmd0aD11KSx0aGlzJiZ0aGlzIT09Y2UmJnRoaXMgaW5zdGFuY2VvZiB0JiYoTT1ffHxhbyhNKSksTS5hcHBseShTLHkpfX1mdW5jdGlvbiB1byh0LGUpe3JldHVybiBmdW5jdGlvbihuLGkpe3JldHVybihmdW5jdGlvbiByKHQsZSxuLGkpe3JldHVybiBqaSh0LChmdW5jdGlvbih0LHIsbyl7ZShpLG4odCkscixvKX0pKSxpfSkobix0LGUoaSkse30pfX1mdW5jdGlvbiBobyhlLG4pe3JldHVybiBmdW5jdGlvbihpLHIpe3ZhciBvO2lmKGk9PT10JiZyPT09dClyZXR1cm4gbjtpZihpIT09dCYmKG89aSksciE9PXQpe2lmKG89PT10KXJldHVybiByOyJzdHJpbmciPT10eXBlb2YgaXx8InN0cmluZyI9PXR5cGVvZiByPyhpPU5yKGkpLHI9TnIocikpOihpPVByKGkpLHI9UHIocikpLG89ZShpLHIpfXJldHVybiBvfX1mdW5jdGlvbiBwbyh0KXtyZXR1cm4gVG8oKGZ1bmN0aW9uKGUpe3JldHVybiBlPU5lKGUsS2UoTm8oKSkpLHZyKChmdW5jdGlvbihuKXt2YXIgaT10aGlzO3JldHVybiB0KGUsKGZ1bmN0aW9uKHQpe3JldHVybiB4ZSh0LGksbil9KSl9KSl9KSl9ZnVuY3Rpb24gZm8oZSxuKXt2YXIgaT0obj1uPT09dD8iICI6TnIobikpLmxlbmd0aDtpZihpPDIpcmV0dXJuIGk/eXIobixlKTpuO3ZhciByPXlyKG4sU2UoZS9kbihuKSkpO3JldHVybiBhbihuKT9HcihwbihyKSwwLGUpLmpvaW4oIiIpOnIuc2xpY2UoMCxlKX1mdW5jdGlvbiBtbyhlKXtyZXR1cm4gZnVuY3Rpb24obixpLHIpe3JldHVybiByJiYibnVtYmVyIiE9dHlwZW9mIHImJmpvKG4saSxyKSYmKGk9cj10KSxuPUdzKG4pLGk9PT10PyhpPW4sbj0wKTppPUdzKGkpLChmdW5jdGlvbiBvKHQsZSxuLGkpe2Zvcih2YXIgcj0tMSxvPXZuKFNlKChlLXQpLyhufHwxKSksMCksYT13dChvKTtvLS07KWFbaT9vOisrcl09dCx0Kz1uO3JldHVybiBhfSkobixpLHI9cj09PXQ/bjxpPzE6LTE6R3MociksZSl9fWZ1bmN0aW9uIGdvKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiJzdHJpbmciPT10eXBlb2YgZSYmInN0cmluZyI9PXR5cGVvZiBufHwoZT1ZcyhlKSxuPVlzKG4pKSx0KGUsbil9fWZ1bmN0aW9uIF9vKGUsbixpLHIscyxsLGMsdSxoLGQpe3ZhciBwPTgmbjtufD1wP286YSw0JihuJj1+KHA/YTpvKSl8fChuJj0tNCk7dmFyIGY9W2UsbixzLHA/bDp0LHA/Yzp0LHA/dDpsLHA/dDpjLHUsaCxkXSxtPWkuYXBwbHkodCxmKTtyZXR1cm4gV28oZSkmJnRhKG0sZiksbS5wbGFjZWhvbGRlcj1yLGlhKG0sZSxuKX1mdW5jdGlvbiB5byh0KXt2YXIgZT1UdFt0XTtyZXR1cm4gZnVuY3Rpb24odCxuKXtpZih0PVlzKHQpLChuPW51bGw9PW4/MDpibihXcyhuKSwyOTIpKSYmV2UodCkpe3ZhciBpPSgkcyh0KSsiZSIpLnNwbGl0KCJlIik7cmV0dXJuKygoaT0oJHMoZShpWzBdKyJlIisoK2lbMV0rbikpKSsiZSIpLnNwbGl0KCJlIikpWzBdKyJlIisoK2lbMV0tbikpfXJldHVybiBlKHQpfX12YXIgdm89QW4mJjEvdW4obmV3IEFuKFssLTBdKSlbMV09PWM/ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBBbih0KX06SGw7ZnVuY3Rpb24gYm8odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuPUJvKGUpO3JldHVybiBuPT14P3NuKGUpOm49PVQ/aG4oZSk6KGZ1bmN0aW9uIGkodCxlKXtyZXR1cm4gTmUoZSwoZnVuY3Rpb24oZSl7cmV0dXJuW2UsdFtlXV19KSl9KShlLHQoZSkpfX1mdW5jdGlvbiB4byhuLGMsdSxoLGQscCxmLG0pe3ZhciBnPTImYztpZighZyYmImZ1bmN0aW9uIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEx0KGUpO3ZhciBfPWg/aC5sZW5ndGg6MDtpZihffHwoYyY9LTk3LGg9ZD10KSxmPWY9PT10P2Y6dm4oV3MoZiksMCksbT1tPT09dD9tOldzKG0pLF8tPWQ/ZC5sZW5ndGg6MCxjJmEpe3ZhciB5PWgsdj1kO2g9ZD10fXZhciBiPWc/dDprbyhuKSx4PVtuLGMsdSxoLGQseSx2LHAsZixtXTtpZihiJiYoZnVuY3Rpb24gdyh0LGUpe3ZhciBuPXRbMV0scj1lWzFdLG89bnxyLGE9cj09cyYmOD09bnx8cj09cyYmbj09bCYmdFs3XS5sZW5ndGg8PWVbOF18fDM4ND09ciYmZVs3XS5sZW5ndGg8PWVbOF0mJjg9PW47aWYoIShvPDEzMXx8YSkpcmV0dXJuIHQ7MSZyJiYodFsyXT1lWzJdLG98PTEmbj8wOjQpO3ZhciBjPWVbM107aWYoYyl7dmFyIHU9dFszXTt0WzNdPXU/S3IodSxjLGVbNF0pOmMsdFs0XT11P2NuKHRbM10saSk6ZVs0XX1yZXR1cm4oYz1lWzVdKSYmKHRbNV09KHU9dFs1XSk/WnIodSxjLGVbNl0pOmMsdFs2XT11P2NuKHRbNV0saSk6ZVs2XSksKGM9ZVs3XSkmJih0WzddPWMpLHImcyYmKHRbOF09bnVsbD09dFs4XT9lWzhdOmJuKHRbOF0sZVs4XSkpLG51bGw9PXRbOV0mJih0WzldPWVbOV0pLHRbMF09ZVswXSx0WzFdPW8sdH0pKHgsYiksbj14WzBdLGM9eFsxXSx1PXhbMl0saD14WzNdLGQ9eFs0XSwhKG09eFs5XT14WzldPT09dD9nPzA6bi5sZW5ndGg6dm4oeFs5XS1fLDApKSYmMjQmYyYmKGMmPS0yNSksYyYmMSE9YylFPTg9PWN8fGM9PXI/KGZ1bmN0aW9uIFMoZSxuLGkpe3ZhciByPWFvKGUpO3JldHVybiBmdW5jdGlvbiBvKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgscz13dChhKSxsPWEsYz1QbyhvKTtsLS07KXNbbF09YXJndW1lbnRzW2xdO3ZhciB1PWE8MyYmc1swXSE9PWMmJnNbYS0xXSE9PWM/W106Y24ocyxjKTtyZXR1cm4oYS09dS5sZW5ndGgpPGk/X28oZSxuLGNvLG8ucGxhY2Vob2xkZXIsdCxzLHUsdCx0LGktYSk6eGUodGhpcyYmdGhpcyE9PWNlJiZ0aGlzIGluc3RhbmNlb2Ygbz9yOmUsdGhpcyxzKX19KShuLGMsbSk6YyE9byYmMzMhPWN8fGQubGVuZ3RoP2NvLmFwcGx5KHQseCk6KGZ1bmN0aW9uIE0odCxlLG4saSl7dmFyIHI9MSZlLG89YW8odCk7cmV0dXJuIGZ1bmN0aW9uIGUoKXtmb3IodmFyIGE9LTEscz1hcmd1bWVudHMubGVuZ3RoLGw9LTEsYz1pLmxlbmd0aCx1PXd0KGMrcyksaD10aGlzJiZ0aGlzIT09Y2UmJnRoaXMgaW5zdGFuY2VvZiBlP286dDsrK2w8YzspdVtsXT1pW2xdO2Zvcig7cy0tOyl1W2wrK109YXJndW1lbnRzWysrYV07cmV0dXJuIHhlKGgscj9uOnRoaXMsdSl9fSkobixjLHUsaCk7ZWxzZSB2YXIgRT0oZnVuY3Rpb24gVCh0LGUsbil7dmFyIGk9MSZlLHI9YW8odCk7cmV0dXJuIGZ1bmN0aW9uIGUoKXtyZXR1cm4odGhpcyYmdGhpcyE9PWNlJiZ0aGlzIGluc3RhbmNlb2YgZT9yOnQpLmFwcGx5KGk/bjp0aGlzLGFyZ3VtZW50cyl9fSkobixjLHUpO3JldHVybiBpYSgoYj9Tcjp0YSkoRSx4KSxuLGMpfWZ1bmN0aW9uIHdvKGUsbixpLHIpe3JldHVybiBlPT09dHx8aHMoZSxOdFtpXSkmJiFPdC5jYWxsKHIsaSk/bjplfWZ1bmN0aW9uIFNvKGUsbixpLHIsbyxhKXtyZXR1cm4gQ3MoZSkmJkNzKG4pJiYoYS5zZXQobixlKSxocihlLG4sdCxTbyxhKSxhLmRlbGV0ZShuKSksZX1mdW5jdGlvbiBNbyhlKXtyZXR1cm4gTnMoZSk/dDplfWZ1bmN0aW9uIEVvKGUsbixpLHIsbyxhKXt2YXIgcz0xJmksbD1lLmxlbmd0aCxjPW4ubGVuZ3RoO2lmKGwhPWMmJiEocyYmYz5sKSlyZXR1cm4hMTt2YXIgdT1hLmdldChlKSxoPWEuZ2V0KG4pO2lmKHUmJmgpcmV0dXJuIHU9PW4mJmg9PWU7dmFyIGQ9LTEscD0hMCxmPTImaT9uZXcgJG46dDtmb3IoYS5zZXQoZSxuKSxhLnNldChuLGUpOysrZDxsOyl7dmFyIG09ZVtkXSxnPW5bZF07aWYocil2YXIgXz1zP3IoZyxtLGQsbixlLGEpOnIobSxnLGQsZSxuLGEpO2lmKF8hPT10KXtpZihfKWNvbnRpbnVlO3A9ITE7YnJlYWt9aWYoZil7aWYoIXplKG4sKGZ1bmN0aW9uKHQsZSl7aWYoIUplKGYsZSkmJihtPT09dHx8byhtLHQsaSxyLGEpKSlyZXR1cm4gZi5wdXNoKGUpfSkpKXtwPSExO2JyZWFrfX1lbHNlIGlmKG0hPT1nJiYhbyhtLGcsaSxyLGEpKXtwPSExO2JyZWFrfX1yZXR1cm4gYS5kZWxldGUoZSksYS5kZWxldGUobikscH1mdW5jdGlvbiBUbyhlKXtyZXR1cm4gbmEoS28oZSx0LGdhKSxlKyIiKX1mdW5jdGlvbiBDbyh0KXtyZXR1cm4gWWkodCxsbCx6byl9ZnVuY3Rpb24gQW8odCl7cmV0dXJuIFlpKHQsY2wsRG8pfXZhciBrbz1Qbj9mdW5jdGlvbih0KXtyZXR1cm4gUG4uZ2V0KHQpfTpIbDtmdW5jdGlvbiBMbyh0KXtmb3IodmFyIGU9dC5uYW1lKyIiLG49Tm5bZV0saT1PdC5jYWxsKE5uLGUpP24ubGVuZ3RoOjA7aS0tOyl7dmFyIHI9bltpXSxvPXIuZnVuYztpZihudWxsPT1vfHxvPT10KXJldHVybiByLm5hbWV9cmV0dXJuIGV9ZnVuY3Rpb24gUG8odCl7cmV0dXJuKE90LmNhbGwoVm4sInBsYWNlaG9sZGVyIik/Vm46dCkucGxhY2Vob2xkZXJ9ZnVuY3Rpb24gTm8oKXt2YXIgdD1Wbi5pdGVyYXRlZXx8T2w7cmV0dXJuIHQ9dD09PU9sP3JyOnQsYXJndW1lbnRzLmxlbmd0aD90KGFyZ3VtZW50c1swXSxhcmd1bWVudHNbMV0pOnR9ZnVuY3Rpb24gSW8odCxlKXt2YXIgbj10Ll9fZGF0YV9fO3JldHVybihmdW5jdGlvbiBpKHQpe3ZhciBlPXR5cGVvZiB0O3JldHVybiJzdHJpbmciPT1lfHwibnVtYmVyIj09ZXx8InN5bWJvbCI9PWV8fCJib29sZWFuIj09ZT8iX19wcm90b19fIiE9PXQ6bnVsbD09PXR9KShlKT9uWyJzdHJpbmciPT10eXBlb2YgZT8ic3RyaW5nIjoiaGFzaCJdOm4ubWFwfWZ1bmN0aW9uIFJvKHQpe2Zvcih2YXIgZT1sbCh0KSxuPWUubGVuZ3RoO24tLTspe3ZhciBpPWVbbl0scj10W2ldO2Vbbl09W2kscixYbyhyKV19cmV0dXJuIGV9ZnVuY3Rpb24gT28oZSxuKXt2YXIgaT0oZnVuY3Rpb24gcihlLG4pe3JldHVybiBudWxsPT1lP3Q6ZVtuXX0pKGUsbik7cmV0dXJuIGlyKGkpP2k6dH12YXIgem89VGU/ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/W106KHQ9Q3QodCksa2UoVGUodCksKGZ1bmN0aW9uKGUpe3JldHVybiBLdC5jYWxsKHQsZSl9KSkpfTpxbCxEbz1UZT9mdW5jdGlvbih0KXtmb3IodmFyIGU9W107dDspSWUoZSx6byh0KSksdD1xdCh0KTtyZXR1cm4gZX06cWwsQm89WGk7ZnVuY3Rpb24gSG8odCxlLG4pe2Zvcih2YXIgaT0tMSxyPShlPVVyKGUsdCkpLmxlbmd0aCxvPSExOysraTxyOyl7dmFyIGE9bGEoZVtpXSk7aWYoIShvPW51bGwhPXQmJm4odCxhKSkpYnJlYWs7dD10W2FdfXJldHVybiBvfHwrK2khPXI/bzohIShyPW51bGw9PXQ/MDp0Lmxlbmd0aCkmJlRzKHIpJiZVbyhhLHIpJiYobXModCl8fGZzKHQpKX1mdW5jdGlvbiBGbyh0KXtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgdC5jb25zdHJ1Y3Rvcnx8WW8odCk/e306VW4ocXQodCkpfWZ1bmN0aW9uIFZvKHQpe3JldHVybiBtcyh0KXx8ZnModCl8fCEhKHJlJiZ0JiZ0W3JlXSl9ZnVuY3Rpb24gVW8odCxlKXt2YXIgbj10eXBlb2YgdDtyZXR1cm4hIShlPW51bGw9PWU/dTplKSYmKCJudW1iZXIiPT1ufHwic3ltYm9sIiE9biYmZ3QudGVzdCh0KSkmJnQ+LTEmJnQlMT09MCYmdDxlfWZ1bmN0aW9uIGpvKHQsZSxuKXtpZighQ3MobikpcmV0dXJuITE7dmFyIGk9dHlwZW9mIGU7cmV0dXJuISEoIm51bWJlciI9PWk/eXMobikmJlVvKGUsbi5sZW5ndGgpOiJzdHJpbmciPT1pJiZlIGluIG4pJiZocyhuW2VdLHQpfWZ1bmN0aW9uIEdvKHQsZSl7aWYobXModCkpcmV0dXJuITE7dmFyIG49dHlwZW9mIHQ7cmV0dXJuISgibnVtYmVyIiE9biYmInN5bWJvbCIhPW4mJiJib29sZWFuIiE9biYmbnVsbCE9dCYmIUJzKHQpKXx8Si50ZXN0KHQpfHwhWi50ZXN0KHQpfHxudWxsIT1lJiZ0IGluIEN0KGUpfWZ1bmN0aW9uIFdvKHQpe3ZhciBlPUxvKHQpLG49Vm5bZV07aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG58fCEoZSBpbiBXbi5wcm90b3R5cGUpKXJldHVybiExO2lmKHQ9PT1uKXJldHVybiEwO3ZhciBpPWtvKG4pO3JldHVybiEhaSYmdD09PWlbMF19KEVuJiZCbyhuZXcgRW4obmV3IEFycmF5QnVmZmVyKDEpKSkhPVB8fFRuJiZCbyhuZXcgVG4pIT14fHxDbiYmQm8oQ24ucmVzb2x2ZSgpKSE9TXx8QW4mJkJvKG5ldyBBbikhPVR8fGtuJiZCbyhuZXcga24pIT1rKSYmKEJvPWZ1bmN0aW9uKGUpe3ZhciBuPVhpKGUpLGk9bj09Uz9lLmNvbnN0cnVjdG9yOnQscj1pP2NhKGkpOiIiO2lmKHIpc3dpdGNoKHIpe2Nhc2UgSW46cmV0dXJuIFA7Y2FzZSBSbjpyZXR1cm4geDtjYXNlIE9uOnJldHVybiBNO2Nhc2Ugem46cmV0dXJuIFQ7Y2FzZSBEbjpyZXR1cm4ga31yZXR1cm4gbn0pO3ZhciBxbz1JdD9NczpZbDtmdW5jdGlvbiBZbyh0KXt2YXIgZT10JiZ0LmNvbnN0cnVjdG9yO3JldHVybiB0PT09KCJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlLnByb3RvdHlwZXx8TnQpfWZ1bmN0aW9uIFhvKHQpe3JldHVybiB0PT10JiYhQ3ModCl9ZnVuY3Rpb24gJG8oZSxuKXtyZXR1cm4gZnVuY3Rpb24oaSl7cmV0dXJuIG51bGwhPWkmJmlbZV09PT1uJiYobiE9PXR8fGUgaW4gQ3QoaSkpfX1mdW5jdGlvbiBLbyhlLG4saSl7cmV0dXJuIG49dm4obj09PXQ/ZS5sZW5ndGgtMTpuLDApLGZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cyxyPS0xLG89dm4odC5sZW5ndGgtbiwwKSxhPXd0KG8pOysrcjxvOylhW3JdPXRbbityXTtyPS0xO2Zvcih2YXIgcz13dChuKzEpOysrcjxuOylzW3JdPXRbcl07cmV0dXJuIHNbbl09aShhKSx4ZShlLHRoaXMscyl9fWZ1bmN0aW9uIFpvKHQsZSl7cmV0dXJuIGUubGVuZ3RoPDI/dDpxaSh0LFRyKGUsMCwtMSkpfWZ1bmN0aW9uIEpvKGUsbil7Zm9yKHZhciBpPWUubGVuZ3RoLHI9Ym4obi5sZW5ndGgsaSksbz1KcihlKTtyLS07KXt2YXIgYT1uW3JdO2Vbcl09VW8oYSxpKT9vW2FdOnR9cmV0dXJuIGV9ZnVuY3Rpb24gUW8odCxlKXtpZigoImNvbnN0cnVjdG9yIiE9PWV8fCJmdW5jdGlvbiIhPXR5cGVvZiB0W2VdKSYmIl9fcHJvdG9fXyIhPWUpcmV0dXJuIHRbZV19dmFyIHRhPXJhKFNyKSxlYT1mZXx8ZnVuY3Rpb24odCxlKXtyZXR1cm4gY2Uuc2V0VGltZW91dCh0LGUpfSxuYT1yYShNcik7ZnVuY3Rpb24gaWEodCxlLG4pe3ZhciBpPWUrIiI7cmV0dXJuIG5hKHQsKGZ1bmN0aW9uIGEodCxlKXt2YXIgbj1lLmxlbmd0aDtpZighbilyZXR1cm4gdDt2YXIgaT1uLTE7cmV0dXJuIGVbaV09KG4+MT8iJiAiOiIiKStlW2ldLGU9ZS5qb2luKG4+Mj8iLCAiOiIgIiksdC5yZXBsYWNlKHJ0LCJ7XG4vKiBbd3JhcHBlZCB3aXRoICIrZSsiXSAqL1xuIil9KShpLChmdW5jdGlvbiBvKHQsZSl7cmV0dXJuIE1lKHAsKGZ1bmN0aW9uKG4pe3ZhciBpPSJfLiIrblswXTtlJm5bMV0mJiFMZSh0LGkpJiZ0LnB1c2goaSl9KSksdC5zb3J0KCl9KSgoZnVuY3Rpb24gcih0KXt2YXIgZT10Lm1hdGNoKG90KTtyZXR1cm4gZT9lWzFdLnNwbGl0KGF0KTpbXX0pKGkpLG4pKSl9ZnVuY3Rpb24gcmEoZSl7dmFyIG49MCxpPTA7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9eG4oKSxvPTE2LShyLWkpO2lmKGk9cixvPjApe2lmKCsrbj49ODAwKXJldHVybiBhcmd1bWVudHNbMF19ZWxzZSBuPTA7cmV0dXJuIGUuYXBwbHkodCxhcmd1bWVudHMpfX1mdW5jdGlvbiBvYShlLG4pe3ZhciBpPS0xLHI9ZS5sZW5ndGgsbz1yLTE7Zm9yKG49bj09PXQ/cjpuOysraTxuOyl7dmFyIGE9X3IoaSxvKSxzPWVbYV07ZVthXT1lW2ldLGVbaV09c31yZXR1cm4gZS5sZW5ndGg9bixlfXZhciBhYT0oZnVuY3Rpb24gc2EodCl7dmFyIGU9b3ModCwoZnVuY3Rpb24odCl7cmV0dXJuIDUwMD09PW4uc2l6ZSYmbi5jbGVhcigpLHR9KSksbj1lLmNhY2hlO3JldHVybiBlfSkoKGZ1bmN0aW9uKHQpe3ZhciBlPVtdO3JldHVybiA0Nj09PXQuY2hhckNvZGVBdCgwKSYmZS5wdXNoKCIiKSx0LnJlcGxhY2UoUSwoZnVuY3Rpb24odCxuLGkscil7ZS5wdXNoKGk/ci5yZXBsYWNlKGN0LCIkMSIpOm58fHQpfSkpLGV9KSk7ZnVuY3Rpb24gbGEodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0fHxCcyh0KSlyZXR1cm4gdDt2YXIgZT10KyIiO3JldHVybiIwIj09ZSYmMS90PT0tMS8wPyItMCI6ZX1mdW5jdGlvbiBjYSh0KXtpZihudWxsIT10KXt0cnl7cmV0dXJuIFJ0LmNhbGwodCl9Y2F0Y2godCl7fXRyeXtyZXR1cm4gdCsiIn1jYXRjaCh0KXt9fXJldHVybiIifWZ1bmN0aW9uIHVhKHQpe2lmKHQgaW5zdGFuY2VvZiBXbilyZXR1cm4gdC5jbG9uZSgpO3ZhciBlPW5ldyBHbih0Ll9fd3JhcHBlZF9fLHQuX19jaGFpbl9fKTtyZXR1cm4gZS5fX2FjdGlvbnNfXz1Kcih0Ll9fYWN0aW9uc19fKSxlLl9faW5kZXhfXz10Ll9faW5kZXhfXyxlLl9fdmFsdWVzX189dC5fX3ZhbHVlc19fLGV9dmFyIGhhPXZyKChmdW5jdGlvbih0LGUpe3JldHVybiB2cyh0KT9kaSh0LEZpKGUsMSx2cywhMCkpOltdfSkpLGRhPXZyKChmdW5jdGlvbihlLG4pe3ZhciBpPXhhKG4pO3JldHVybiB2cyhpKSYmKGk9dCksdnMoZSk/ZGkoZSxGaShuLDEsdnMsITApLE5vKGksMikpOltdfSkpLHBhPXZyKChmdW5jdGlvbihlLG4pe3ZhciBpPXhhKG4pO3JldHVybiB2cyhpKSYmKGk9dCksdnMoZSk/ZGkoZSxGaShuLDEsdnMsITApLHQsaSk6W119KSk7ZnVuY3Rpb24gZmEodCxlLG4pe3ZhciBpPW51bGw9PXQ/MDp0Lmxlbmd0aDtpZighaSlyZXR1cm4tMTt2YXIgcj1udWxsPT1uPzA6V3Mobik7cmV0dXJuIHI8MCYmKHI9dm4oaStyLDApKSxIZSh0LE5vKGUsMykscil9ZnVuY3Rpb24gbWEoZSxuLGkpe3ZhciByPW51bGw9PWU/MDplLmxlbmd0aDtpZighcilyZXR1cm4tMTt2YXIgbz1yLTE7cmV0dXJuIGkhPT10JiYobz1XcyhpKSxvPWk8MD92bihyK28sMCk6Ym4obyxyLTEpKSxIZShlLE5vKG4sMyksbywhMCl9ZnVuY3Rpb24gZ2EodCl7cmV0dXJuIG51bGwhPXQmJnQubGVuZ3RoP0ZpKHQsMSk6W119ZnVuY3Rpb24gX2EoZSl7cmV0dXJuIGUmJmUubGVuZ3RoP2VbMF06dH12YXIgeWE9dnIoKGZ1bmN0aW9uKHQpe3ZhciBlPU5lKHQsRnIpO3JldHVybiBlLmxlbmd0aCYmZVswXT09PXRbMF0/SmkoZSk6W119KSksdmE9dnIoKGZ1bmN0aW9uKGUpe3ZhciBuPXhhKGUpLGk9TmUoZSxGcik7cmV0dXJuIG49PT14YShpKT9uPXQ6aS5wb3AoKSxpLmxlbmd0aCYmaVswXT09PWVbMF0/SmkoaSxObyhuLDIpKTpbXX0pKSxiYT12cigoZnVuY3Rpb24oZSl7dmFyIG49eGEoZSksaT1OZShlLEZyKTtyZXR1cm4obj0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uOnQpJiZpLnBvcCgpLGkubGVuZ3RoJiZpWzBdPT09ZVswXT9KaShpLHQsbik6W119KSk7ZnVuY3Rpb24geGEoZSl7dmFyIG49bnVsbD09ZT8wOmUubGVuZ3RoO3JldHVybiBuP2Vbbi0xXTp0fXZhciB3YT12cihTYSk7ZnVuY3Rpb24gU2EodCxlKXtyZXR1cm4gdCYmdC5sZW5ndGgmJmUmJmUubGVuZ3RoP21yKHQsZSk6dH12YXIgTWE9VG8oKGZ1bmN0aW9uKHQsZSl7dmFyIG49bnVsbD09dD8wOnQubGVuZ3RoLGk9c2kodCxlKTtyZXR1cm4gZ3IodCxOZShlLChmdW5jdGlvbih0KXtyZXR1cm4gVW8odCxuKT8rdDp0fSkpLnNvcnQoJHIpKSxpfSkpO2Z1bmN0aW9uIEVhKHQpe3JldHVybiBudWxsPT10P3Q6TW4uY2FsbCh0KX12YXIgVGE9dnIoKGZ1bmN0aW9uKHQpe3JldHVybiBJcihGaSh0LDEsdnMsITApKX0pKSxDYT12cigoZnVuY3Rpb24oZSl7dmFyIG49eGEoZSk7cmV0dXJuIHZzKG4pJiYobj10KSxJcihGaShlLDEsdnMsITApLE5vKG4sMikpfSkpLEFhPXZyKChmdW5jdGlvbihlKXt2YXIgbj14YShlKTtyZXR1cm4gbj0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uOnQsSXIoRmkoZSwxLHZzLCEwKSx0LG4pfSkpO2Z1bmN0aW9uIGthKHQpe2lmKCF0fHwhdC5sZW5ndGgpcmV0dXJuW107dmFyIGU9MDtyZXR1cm4gdD1rZSh0LChmdW5jdGlvbih0KXtpZih2cyh0KSlyZXR1cm4gZT12bih0Lmxlbmd0aCxlKSwhMH0pKSxYZShlLChmdW5jdGlvbihlKXtyZXR1cm4gTmUodCxHZShlKSl9KSl9ZnVuY3Rpb24gTGEoZSxuKXtpZighZXx8IWUubGVuZ3RoKXJldHVybltdO3ZhciBpPWthKGUpO3JldHVybiBudWxsPT1uP2k6TmUoaSwoZnVuY3Rpb24oZSl7cmV0dXJuIHhlKG4sdCxlKX0pKX12YXIgUGE9dnIoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZzKHQpP2RpKHQsZSk6W119KSksTmE9dnIoKGZ1bmN0aW9uKHQpe3JldHVybiBCcihrZSh0LHZzKSl9KSksSWE9dnIoKGZ1bmN0aW9uKGUpe3ZhciBuPXhhKGUpO3JldHVybiB2cyhuKSYmKG49dCksQnIoa2UoZSx2cyksTm8obiwyKSl9KSksUmE9dnIoKGZ1bmN0aW9uKGUpe3ZhciBuPXhhKGUpO3JldHVybiBuPSJmdW5jdGlvbiI9PXR5cGVvZiBuP246dCxCcihrZShlLHZzKSx0LG4pfSkpLE9hPXZyKGthKSx6YT12cigoZnVuY3Rpb24oZSl7dmFyIG49ZS5sZW5ndGgsaT1uPjE/ZVtuLTFdOnQ7cmV0dXJuIGk9ImZ1bmN0aW9uIj09dHlwZW9mIGk/KGUucG9wKCksaSk6dCxMYShlLGkpfSkpO2Z1bmN0aW9uIERhKHQpe3ZhciBlPVZuKHQpO3JldHVybiBlLl9fY2hhaW5fXz0hMCxlfWZ1bmN0aW9uIEJhKHQsZSl7cmV0dXJuIGUodCl9dmFyIEhhPVRvKChmdW5jdGlvbihlKXt2YXIgbj1lLmxlbmd0aCxpPW4/ZVswXTowLHI9dGhpcy5fX3dyYXBwZWRfXyxvPWZ1bmN0aW9uKHQpe3JldHVybiBzaSh0LGUpfTtyZXR1cm4hKG4+MXx8dGhpcy5fX2FjdGlvbnNfXy5sZW5ndGgpJiZyIGluc3RhbmNlb2YgV24mJlVvKGkpPygocj1yLnNsaWNlKGksK2krKG4/MTowKSkpLl9fYWN0aW9uc19fLnB1c2goe2Z1bmM6QmEsYXJnczpbb10sdGhpc0FyZzp0fSksbmV3IEduKHIsdGhpcy5fX2NoYWluX18pLnRocnUoKGZ1bmN0aW9uKGUpe3JldHVybiBuJiYhZS5sZW5ndGgmJmUucHVzaCh0KSxlfSkpKTp0aGlzLnRocnUobyl9KSksRmE9dG8oKGZ1bmN0aW9uKHQsZSxuKXtPdC5jYWxsKHQsbik/Kyt0W25dOmFpKHQsbiwxKX0pKSxWYT1zbyhmYSksVWE9c28obWEpO2Z1bmN0aW9uIGphKHQsZSl7cmV0dXJuKG1zKHQpP01lOk9pKSh0LE5vKGUsMykpfWZ1bmN0aW9uIEdhKHQsZSl7cmV0dXJuKG1zKHQpP0NlOnppKSh0LE5vKGUsMykpfXZhciBXYT10bygoZnVuY3Rpb24odCxlLG4pe090LmNhbGwodCxuKT90W25dLnB1c2goZSk6YWkodCxuLFtlXSl9KSkscWE9dnIoKGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT0tMSxyPSJmdW5jdGlvbiI9PXR5cGVvZiBlLG89eXModCk/d3QodC5sZW5ndGgpOltdO3JldHVybiBPaSh0LChmdW5jdGlvbih0KXtvWysraV09cj94ZShlLHQsbik6UWkodCxlLG4pfSkpLG99KSksWWE9dG8oKGZ1bmN0aW9uKHQsZSxuKXthaSh0LG4sZSl9KSk7ZnVuY3Rpb24gWGEodCxlKXtyZXR1cm4obXModCk/TmU6bHIpKHQsTm8oZSwzKSl9dmFyICRhPXRvKChmdW5jdGlvbih0LGUsbil7dFtuPzA6MV0ucHVzaChlKX0pLChmdW5jdGlvbigpe3JldHVybltbXSxbXV19KSksS2E9dnIoKGZ1bmN0aW9uKHQsZSl7aWYobnVsbD09dClyZXR1cm5bXTt2YXIgbj1lLmxlbmd0aDtyZXR1cm4gbj4xJiZqbyh0LGVbMF0sZVsxXSk/ZT1bXTpuPjImJmpvKGVbMF0sZVsxXSxlWzJdKSYmKGU9W2VbMF1dKSxwcih0LEZpKGUsMSksW10pfSkpLFphPXBlfHxmdW5jdGlvbigpe3JldHVybiBjZS5EYXRlLm5vdygpfTtmdW5jdGlvbiBKYShlLG4saSl7cmV0dXJuIG49aT90Om4seG8oZSxzLHQsdCx0LHQsbj1lJiZudWxsPT1uP2UubGVuZ3RoOm4pfWZ1bmN0aW9uIFFhKG4saSl7dmFyIHI7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGkpdGhyb3cgbmV3IEx0KGUpO3JldHVybiBuPVdzKG4pLGZ1bmN0aW9uKCl7cmV0dXJuLS1uPjAmJihyPWkuYXBwbHkodGhpcyxhcmd1bWVudHMpKSxuPD0xJiYoaT10KSxyfX12YXIgdHM9dnIoKGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT0xO2lmKG4ubGVuZ3RoKXt2YXIgcj1jbihuLFBvKHRzKSk7aXw9b31yZXR1cm4geG8odCxpLGUsbixyKX0pKSxlcz12cigoZnVuY3Rpb24odCxlLG4pe3ZhciBpPTM7aWYobi5sZW5ndGgpe3ZhciByPWNuKG4sUG8oZXMpKTtpfD1vfXJldHVybiB4byhlLGksdCxuLHIpfSkpO2Z1bmN0aW9uIG5zKG4saSxyKXt2YXIgbyxhLHMsbCxjLHUsaD0wLGQ9ITEscD0hMSxmPSEwO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBuKXRocm93IG5ldyBMdChlKTtmdW5jdGlvbiBtKGUpe3ZhciBpPW8scj1hO3JldHVybiBvPWE9dCxoPWUsbD1uLmFwcGx5KHIsaSl9ZnVuY3Rpb24gZyh0KXtyZXR1cm4gaD10LGM9ZWEoeSxpKSxkP20odCk6bH1mdW5jdGlvbiBfKGUpe3ZhciBuPWUtdTtyZXR1cm4gdT09PXR8fG4+PWl8fG48MHx8cCYmZS1oPj1zfWZ1bmN0aW9uIHkoKXt2YXIgdD1aYSgpO2lmKF8odCkpcmV0dXJuIHYodCk7Yz1lYSh5LChmdW5jdGlvbiBlKHQpe3ZhciBlPWktKHQtdSk7cmV0dXJuIHA/Ym4oZSxzLSh0LWgpKTplfSkodCkpfWZ1bmN0aW9uIHYoZSl7cmV0dXJuIGM9dCxmJiZvP20oZSk6KG89YT10LGwpfWZ1bmN0aW9uIGIoKXt2YXIgZT1aYSgpLG49XyhlKTtpZihvPWFyZ3VtZW50cyxhPXRoaXMsdT1lLG4pe2lmKGM9PT10KXJldHVybiBnKHUpO2lmKHApcmV0dXJuIFdyKGMpLGM9ZWEoeSxpKSxtKHUpfXJldHVybiBjPT09dCYmKGM9ZWEoeSxpKSksbH1yZXR1cm4gaT1ZcyhpKXx8MCxDcyhyKSYmKGQ9ISFyLmxlYWRpbmcscz0ocD0ibWF4V2FpdCJpbiByKT92bihZcyhyLm1heFdhaXQpfHwwLGkpOnMsZj0idHJhaWxpbmciaW4gcj8hIXIudHJhaWxpbmc6ZiksYi5jYW5jZWw9ZnVuY3Rpb24geCgpe2MhPT10JiZXcihjKSxoPTAsbz11PWE9Yz10fSxiLmZsdXNoPWZ1bmN0aW9uIHcoKXtyZXR1cm4gYz09PXQ/bDp2KFphKCkpfSxifXZhciBpcz12cigoZnVuY3Rpb24odCxlKXtyZXR1cm4gaGkodCwxLGUpfSkpLHJzPXZyKChmdW5jdGlvbih0LGUsbil7cmV0dXJuIGhpKHQsWXMoZSl8fDAsbil9KSk7ZnVuY3Rpb24gb3ModCxuKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdHx8bnVsbCE9biYmImZ1bmN0aW9uIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEx0KGUpO3ZhciBpPWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLHI9bj9uLmFwcGx5KHRoaXMsZSk6ZVswXSxvPWkuY2FjaGU7aWYoby5oYXMocikpcmV0dXJuIG8uZ2V0KHIpO3ZhciBhPXQuYXBwbHkodGhpcyxlKTtyZXR1cm4gaS5jYWNoZT1vLnNldChyLGEpfHxvLGF9O3JldHVybiBpLmNhY2hlPW5ldyhvcy5DYWNoZXx8WG4pLGl9ZnVuY3Rpb24gYXModCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEx0KGUpO3JldHVybiBmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cztzd2l0Y2goZS5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4hdC5jYWxsKHRoaXMpO2Nhc2UgMTpyZXR1cm4hdC5jYWxsKHRoaXMsZVswXSk7Y2FzZSAyOnJldHVybiF0LmNhbGwodGhpcyxlWzBdLGVbMV0pO2Nhc2UgMzpyZXR1cm4hdC5jYWxsKHRoaXMsZVswXSxlWzFdLGVbMl0pfXJldHVybiF0LmFwcGx5KHRoaXMsZSl9fW9zLkNhY2hlPVhuO3ZhciBzcz1qcigoZnVuY3Rpb24odCxlKXt2YXIgbj0oZT0xPT1lLmxlbmd0aCYmbXMoZVswXSk/TmUoZVswXSxLZShObygpKSk6TmUoRmkoZSwxKSxLZShObygpKSkpLmxlbmd0aDtyZXR1cm4gdnIoKGZ1bmN0aW9uKGkpe2Zvcih2YXIgcj0tMSxvPWJuKGkubGVuZ3RoLG4pOysrcjxvOylpW3JdPWVbcl0uY2FsbCh0aGlzLGlbcl0pO3JldHVybiB4ZSh0LHRoaXMsaSl9KSl9KSksbHM9dnIoKGZ1bmN0aW9uKGUsbil7dmFyIGk9Y24obixQbyhscykpO3JldHVybiB4byhlLG8sdCxuLGkpfSkpLGNzPXZyKChmdW5jdGlvbihlLG4pe3ZhciBpPWNuKG4sUG8oY3MpKTtyZXR1cm4geG8oZSxhLHQsbixpKX0pKSx1cz1UbygoZnVuY3Rpb24oZSxuKXtyZXR1cm4geG8oZSxsLHQsdCx0LG4pfSkpO2Z1bmN0aW9uIGhzKHQsZSl7cmV0dXJuIHQ9PT1lfHx0IT10JiZlIT1lfXZhciBkcz1nbygkaSkscHM9Z28oKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+PWV9KSksZnM9dHIoKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30pKCkpP3RyOmZ1bmN0aW9uKHQpe3JldHVybiBBcyh0KSYmT3QuY2FsbCh0LCJjYWxsZWUiKSYmIUt0LmNhbGwodCwiY2FsbGVlIil9LG1zPXd0LmlzQXJyYXksZ3M9bWU/S2UobWUpOmZ1bmN0aW9uIF9zKHQpe3JldHVybiBBcyh0KSYmWGkodCk9PUx9O2Z1bmN0aW9uIHlzKHQpe3JldHVybiBudWxsIT10JiZUcyh0Lmxlbmd0aCkmJiFNcyh0KX1mdW5jdGlvbiB2cyh0KXtyZXR1cm4gQXModCkmJnlzKHQpfXZhciBicz1EZXx8WWwseHM9Z2U/S2UoZ2UpOmZ1bmN0aW9uIHdzKHQpe3JldHVybiBBcyh0KSYmWGkodCk9PV99O2Z1bmN0aW9uIFNzKHQpe2lmKCFBcyh0KSlyZXR1cm4hMTt2YXIgZT1YaSh0KTtyZXR1cm4gZT09eXx8IltvYmplY3QgRE9NRXhjZXB0aW9uXSI9PWV8fCJzdHJpbmciPT10eXBlb2YgdC5tZXNzYWdlJiYic3RyaW5nIj09dHlwZW9mIHQubmFtZSYmIU5zKHQpfWZ1bmN0aW9uIE1zKHQpe2lmKCFDcyh0KSlyZXR1cm4hMTt2YXIgZT1YaSh0KTtyZXR1cm4gZT09dnx8ZT09Ynx8IltvYmplY3QgQXN5bmNGdW5jdGlvbl0iPT1lfHwiW29iamVjdCBQcm94eV0iPT1lfWZ1bmN0aW9uIEVzKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmdD09V3ModCl9ZnVuY3Rpb24gVHModCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZ0Pi0xJiZ0JTE9PTAmJnQ8PXV9ZnVuY3Rpb24gQ3ModCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIG51bGwhPXQmJigib2JqZWN0Ij09ZXx8ImZ1bmN0aW9uIj09ZSl9ZnVuY3Rpb24gQXModCl7cmV0dXJuIG51bGwhPXQmJiJvYmplY3QiPT10eXBlb2YgdH12YXIga3M9X2U/S2UoX2UpOmZ1bmN0aW9uIExzKHQpe3JldHVybiBBcyh0KSYmQm8odCk9PXh9O2Z1bmN0aW9uIFBzKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdHx8QXModCkmJlhpKHQpPT13fWZ1bmN0aW9uIE5zKHQpe2lmKCFBcyh0KXx8WGkodCkhPVMpcmV0dXJuITE7dmFyIGU9cXQodCk7aWYobnVsbD09PWUpcmV0dXJuITA7dmFyIG49T3QuY2FsbChlLCJjb25zdHJ1Y3RvciIpJiZlLmNvbnN0cnVjdG9yO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBuJiZuIGluc3RhbmNlb2YgbiYmUnQuY2FsbChuKT09SHR9dmFyIElzPXllP0tlKHllKTpmdW5jdGlvbiBScyh0KXtyZXR1cm4gQXModCkmJlhpKHQpPT1FfSxPcz12ZT9LZSh2ZSk6ZnVuY3Rpb24genModCl7cmV0dXJuIEFzKHQpJiZCbyh0KT09VH07ZnVuY3Rpb24gRHModCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fHwhbXModCkmJkFzKHQpJiZYaSh0KT09Q31mdW5jdGlvbiBCcyh0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR8fEFzKHQpJiZYaSh0KT09QX12YXIgSHM9YmU/S2UoYmUpOmZ1bmN0aW9uIEZzKHQpe3JldHVybiBBcyh0KSYmVHModC5sZW5ndGgpJiYhIW5lW1hpKHQpXX0sVnM9Z28oc3IpLFVzPWdvKChmdW5jdGlvbih0LGUpe3JldHVybiB0PD1lfSkpO2Z1bmN0aW9uIGpzKHQpe2lmKCF0KXJldHVybltdO2lmKHlzKHQpKXJldHVybiBEcyh0KT9wbih0KTpKcih0KTtpZihzZSYmdFtzZV0pcmV0dXJuKGZ1bmN0aW9uIGUodCl7Zm9yKHZhciBlLG49W107IShlPXQubmV4dCgpKS5kb25lOyluLnB1c2goZS52YWx1ZSk7cmV0dXJuIG59KSh0W3NlXSgpKTt2YXIgbj1Cbyh0KTtyZXR1cm4obj09eD9zbjpuPT1UP3VuOl9sKSh0KX1mdW5jdGlvbiBHcyh0KXtyZXR1cm4gdD8odD1Zcyh0KSk9PT1jfHx0PT09LTEvMD8xNzk3NjkzMTM0ODYyMzE1N2UyOTIqKHQ8MD8tMToxKTp0PT10P3Q6MDowPT09dD90OjB9ZnVuY3Rpb24gV3ModCl7dmFyIGU9R3ModCksbj1lJTE7cmV0dXJuIGU9PWU/bj9lLW46ZTowfWZ1bmN0aW9uIHFzKHQpe3JldHVybiB0P2xpKFdzKHQpLDAsZCk6MH1mdW5jdGlvbiBZcyh0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoQnModCkpcmV0dXJuIGg7aWYoQ3ModCkpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PUNzKGUpP2UrIiI6ZX1pZigic3RyaW5nIiE9dHlwZW9mIHQpcmV0dXJuIDA9PT10P3Q6K3Q7dD0kZSh0KTt2YXIgbj1wdC50ZXN0KHQpO3JldHVybiBufHxtdC50ZXN0KHQpP2FlKHQuc2xpY2UoMiksbj8yOjgpOmR0LnRlc3QodCk/aDordH1mdW5jdGlvbiBYcyh0KXtyZXR1cm4gUXIodCxjbCh0KSl9ZnVuY3Rpb24gJHModCl7cmV0dXJuIG51bGw9PXQ/IiI6TnIodCl9dmFyIEtzPWVvKChmdW5jdGlvbih0LGUpe2lmKFlvKGUpfHx5cyhlKSlRcihlLGxsKGUpLHQpO2Vsc2UgZm9yKHZhciBuIGluIGUpT3QuY2FsbChlLG4pJiZuaSh0LG4sZVtuXSl9KSksWnM9ZW8oKGZ1bmN0aW9uKHQsZSl7UXIoZSxjbChlKSx0KX0pKSxKcz1lbygoZnVuY3Rpb24odCxlLG4saSl7UXIoZSxjbChlKSx0LGkpfSkpLFFzPWVvKChmdW5jdGlvbih0LGUsbixpKXtRcihlLGxsKGUpLHQsaSl9KSksdGw9VG8oc2kpLGVsPXZyKChmdW5jdGlvbihlLG4pe2U9Q3QoZSk7dmFyIGk9LTEscj1uLmxlbmd0aCxvPXI+Mj9uWzJdOnQ7Zm9yKG8mJmpvKG5bMF0sblsxXSxvKSYmKHI9MSk7KytpPHI7KWZvcih2YXIgYT1uW2ldLHM9Y2woYSksbD0tMSxjPXMubGVuZ3RoOysrbDxjOyl7dmFyIHU9c1tsXSxoPWVbdV07KGg9PT10fHxocyhoLE50W3VdKSYmIU90LmNhbGwoZSx1KSkmJihlW3VdPWFbdV0pfXJldHVybiBlfSkpLG5sPXZyKChmdW5jdGlvbihlKXtyZXR1cm4gZS5wdXNoKHQsU28pLHhlKGhsLHQsZSl9KSk7ZnVuY3Rpb24gaWwoZSxuLGkpe3ZhciByPW51bGw9PWU/dDpxaShlLG4pO3JldHVybiByPT09dD9pOnJ9ZnVuY3Rpb24gcmwodCxlKXtyZXR1cm4gbnVsbCE9dCYmSG8odCxlLFppKX12YXIgb2w9dW8oKGZ1bmN0aW9uKHQsZSxuKXtudWxsIT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZS50b1N0cmluZyYmKGU9QnQuY2FsbChlKSksdFtlXT1ufSksUGwoUmwpKSxhbD11bygoZnVuY3Rpb24odCxlLG4pe251bGwhPWUmJiJmdW5jdGlvbiIhPXR5cGVvZiBlLnRvU3RyaW5nJiYoZT1CdC5jYWxsKGUpKSxPdC5jYWxsKHQsZSk/dFtlXS5wdXNoKG4pOnRbZV09W25dfSksTm8pLHNsPXZyKFFpKTtmdW5jdGlvbiBsbCh0KXtyZXR1cm4geXModCk/Wm4odCk6b3IodCl9ZnVuY3Rpb24gY2wodCl7cmV0dXJuIHlzKHQpP1puKHQsITApOmFyKHQpfXZhciB1bD1lbygoZnVuY3Rpb24odCxlLG4pe2hyKHQsZSxuKX0pKSxobD1lbygoZnVuY3Rpb24odCxlLG4saSl7aHIodCxlLG4saSl9KSksZGw9VG8oKGZ1bmN0aW9uKHQsZSl7dmFyIG49e307aWYobnVsbD09dClyZXR1cm4gbjt2YXIgaT0hMTtlPU5lKGUsKGZ1bmN0aW9uKGUpe3JldHVybiBlPVVyKGUsdCksaXx8KGk9ZS5sZW5ndGg+MSksZX0pKSxRcih0LEFvKHQpLG4pLGkmJihuPWNpKG4sNyxNbykpO2Zvcih2YXIgcj1lLmxlbmd0aDtyLS07KVJyKG4sZVtyXSk7cmV0dXJuIG59KSkscGw9VG8oKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PXQ/e306KGZ1bmN0aW9uIG4odCxlKXtyZXR1cm4gZnIodCxlLChmdW5jdGlvbihlLG4pe3JldHVybiBybCh0LG4pfSkpfSkodCxlKX0pKTtmdW5jdGlvbiBmbCh0LGUpe2lmKG51bGw9PXQpcmV0dXJue307dmFyIG49TmUoQW8odCksKGZ1bmN0aW9uKHQpe3JldHVyblt0XX0pKTtyZXR1cm4gZT1ObyhlKSxmcih0LG4sKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUodCxuWzBdKX0pKX12YXIgbWw9Ym8obGwpLGdsPWJvKGNsKTtmdW5jdGlvbiBfbCh0KXtyZXR1cm4gbnVsbD09dD9bXTpaZSh0LGxsKHQpKX12YXIgeWw9b28oKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZT1lLnRvTG93ZXJDYXNlKCksdCsobj92bChlKTplKX0pKTtmdW5jdGlvbiB2bCh0KXtyZXR1cm4gQ2woJHModCkudG9Mb3dlckNhc2UoKSl9ZnVuY3Rpb24gYmwodCl7cmV0dXJuKHQ9JHModCkpJiZ0LnJlcGxhY2UoX3Qsbm4pLnJlcGxhY2UoJHQsIiIpfXZhciB4bD1vbygoZnVuY3Rpb24odCxlLG4pe3JldHVybiB0KyhuPyItIjoiIikrZS50b0xvd2VyQ2FzZSgpfSkpLHdsPW9vKChmdW5jdGlvbih0LGUsbil7cmV0dXJuIHQrKG4/IiAiOiIiKStlLnRvTG93ZXJDYXNlKCl9KSksU2w9cm8oInRvTG93ZXJDYXNlIiksTWw9b28oKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdCsobj8iXyI6IiIpK2UudG9Mb3dlckNhc2UoKX0pKSxFbD1vbygoZnVuY3Rpb24odCxlLG4pe3JldHVybiB0KyhuPyIgIjoiIikrQ2woZSl9KSksVGw9b28oKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdCsobj8iICI6IiIpK2UudG9VcHBlckNhc2UoKX0pKSxDbD1ybygidG9VcHBlckNhc2UiKTtmdW5jdGlvbiBBbChlLG4saSl7cmV0dXJuIGU9JHMoZSksKG49aT90Om4pPT09dD8oZnVuY3Rpb24gcih0KXtyZXR1cm4gUXQudGVzdCh0KX0pKGUpPyhmdW5jdGlvbiBvKHQpe3JldHVybiB0Lm1hdGNoKFp0KXx8W119KShlKTooZnVuY3Rpb24gYSh0KXtyZXR1cm4gdC5tYXRjaChzdCl8fFtdfSkoZSk6ZS5tYXRjaChuKXx8W119dmFyIGtsPXZyKChmdW5jdGlvbihlLG4pe3RyeXtyZXR1cm4geGUoZSx0LG4pfWNhdGNoKHQpe3JldHVybiBTcyh0KT90Om5ldyBNdCh0KX19KSksTGw9VG8oKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1lKGUsKGZ1bmN0aW9uKGUpe2U9bGEoZSksYWkodCxlLHRzKHRbZV0sdCkpfSkpLHR9KSk7ZnVuY3Rpb24gUGwodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fXZhciBObD1sbygpLElsPWxvKCEwKTtmdW5jdGlvbiBSbCh0KXtyZXR1cm4gdH1mdW5jdGlvbiBPbCh0KXtyZXR1cm4gcnIoImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpjaSh0LDEpKX12YXIgemw9dnIoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBRaShuLHQsZSl9fSkpLERsPXZyKChmdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gUWkodCxuLGUpfX0pKTtmdW5jdGlvbiBCbCh0LGUsbil7dmFyIGk9bGwoZSkscj1XaShlLGkpO251bGwhPW58fENzKGUpJiYoci5sZW5ndGh8fCFpLmxlbmd0aCl8fChuPWUsZT10LHQ9dGhpcyxyPVdpKGUsbGwoZSkpKTt2YXIgbz0hKENzKG4pJiYiY2hhaW4iaW4gbiYmIW4uY2hhaW4pLGE9TXModCk7cmV0dXJuIE1lKHIsKGZ1bmN0aW9uKG4pe3ZhciBpPWVbbl07dFtuXT1pLGEmJih0LnByb3RvdHlwZVtuXT1mdW5jdGlvbigpe3ZhciBlPXRoaXMuX19jaGFpbl9fO2lmKG98fGUpe3ZhciBuPXQodGhpcy5fX3dyYXBwZWRfXykscj1uLl9fYWN0aW9uc19fPUpyKHRoaXMuX19hY3Rpb25zX18pO3JldHVybiByLnB1c2goe2Z1bmM6aSxhcmdzOmFyZ3VtZW50cyx0aGlzQXJnOnR9KSxuLl9fY2hhaW5fXz1lLG59cmV0dXJuIGkuYXBwbHkodCxJZShbdGhpcy52YWx1ZSgpXSxhcmd1bWVudHMpKX0pfSkpLHR9ZnVuY3Rpb24gSGwoKXt9dmFyIEZsPXBvKE5lKSxWbD1wbyhBZSksVWw9cG8oemUpO2Z1bmN0aW9uIGpsKHQpe3JldHVybiBHbyh0KT9HZShsYSh0KSk6KGZ1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBxaShlLHQpfX0pKHQpfXZhciBHbD1tbygpLFdsPW1vKCEwKTtmdW5jdGlvbiBxbCgpe3JldHVybltdfWZ1bmN0aW9uIFlsKCl7cmV0dXJuITF9dmFyIFhsLCRsPWhvKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9KSwwKSxLbD15bygiY2VpbCIpLFpsPWhvKChmdW5jdGlvbih0LGUpe3JldHVybiB0L2V9KSwxKSxKbD15bygiZmxvb3IiKSxRbD1obygoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCplfSksMSksdGM9eW8oInJvdW5kIiksZWM9aG8oKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQtZX0pLDApO3JldHVybiBWbi5hZnRlcj1mdW5jdGlvbiBuYyh0LG4pe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBuKXRocm93IG5ldyBMdChlKTtyZXR1cm4gdD1Xcyh0KSxmdW5jdGlvbigpe2lmKC0tdDwxKXJldHVybiBuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LFZuLmFyeT1KYSxWbi5hc3NpZ249S3MsVm4uYXNzaWduSW49WnMsVm4uYXNzaWduSW5XaXRoPUpzLFZuLmFzc2lnbldpdGg9UXMsVm4uYXQ9dGwsVm4uYmVmb3JlPVFhLFZuLmJpbmQ9dHMsVm4uYmluZEFsbD1MbCxWbi5iaW5kS2V5PWVzLFZuLmNhc3RBcnJheT1mdW5jdGlvbiBpYygpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybltdO3ZhciB0PWFyZ3VtZW50c1swXTtyZXR1cm4gbXModCk/dDpbdF19LFZuLmNoYWluPURhLFZuLmNodW5rPWZ1bmN0aW9uIHJjKGUsbixpKXtuPShpP2pvKGUsbixpKTpuPT09dCk/MTp2bihXcyhuKSwwKTt2YXIgcj1udWxsPT1lPzA6ZS5sZW5ndGg7aWYoIXJ8fG48MSlyZXR1cm5bXTtmb3IodmFyIG89MCxhPTAscz13dChTZShyL24pKTtvPHI7KXNbYSsrXT1UcihlLG8sbys9bik7cmV0dXJuIHN9LFZuLmNvbXBhY3Q9ZnVuY3Rpb24gb2ModCl7Zm9yKHZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoLGk9MCxyPVtdOysrZTxuOyl7dmFyIG89dFtlXTtvJiYocltpKytdPW8pfXJldHVybiByfSxWbi5jb25jYXQ9ZnVuY3Rpb24gYWMoKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoO2lmKCF0KXJldHVybltdO2Zvcih2YXIgZT13dCh0LTEpLG49YXJndW1lbnRzWzBdLGk9dDtpLS07KWVbaS0xXT1hcmd1bWVudHNbaV07cmV0dXJuIEllKG1zKG4pP0pyKG4pOltuXSxGaShlLDEpKX0sVm4uY29uZD1mdW5jdGlvbiBzYyh0KXt2YXIgbj1udWxsPT10PzA6dC5sZW5ndGgsaT1ObygpO3JldHVybiB0PW4/TmUodCwoZnVuY3Rpb24odCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHRbMV0pdGhyb3cgbmV3IEx0KGUpO3JldHVybltpKHRbMF0pLHRbMV1dfSkpOltdLHZyKChmdW5jdGlvbihlKXtmb3IodmFyIGk9LTE7KytpPG47KXt2YXIgcj10W2ldO2lmKHhlKHJbMF0sdGhpcyxlKSlyZXR1cm4geGUoclsxXSx0aGlzLGUpfX0pKX0sVm4uY29uZm9ybXM9ZnVuY3Rpb24gbGModCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7dmFyIGU9bGwodCk7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB1aShuLHQsZSl9fSkoY2kodCwxKSl9LFZuLmNvbnN0YW50PVBsLFZuLmNvdW50Qnk9RmEsVm4uY3JlYXRlPWZ1bmN0aW9uIGNjKHQsZSl7dmFyIG49VW4odCk7cmV0dXJuIG51bGw9PWU/bjpvaShuLGUpfSxWbi5jdXJyeT1mdW5jdGlvbiBlKG4saSxyKXt2YXIgbz14byhuLDgsdCx0LHQsdCx0LGk9cj90OmkpO3JldHVybiBvLnBsYWNlaG9sZGVyPWUucGxhY2Vob2xkZXIsb30sVm4uY3VycnlSaWdodD1mdW5jdGlvbiBlKG4saSxvKXt2YXIgYT14byhuLHIsdCx0LHQsdCx0LGk9bz90OmkpO3JldHVybiBhLnBsYWNlaG9sZGVyPWUucGxhY2Vob2xkZXIsYX0sVm4uZGVib3VuY2U9bnMsVm4uZGVmYXVsdHM9ZWwsVm4uZGVmYXVsdHNEZWVwPW5sLFZuLmRlZmVyPWlzLFZuLmRlbGF5PXJzLFZuLmRpZmZlcmVuY2U9aGEsVm4uZGlmZmVyZW5jZUJ5PWRhLFZuLmRpZmZlcmVuY2VXaXRoPXBhLFZuLmRyb3A9ZnVuY3Rpb24gdWMoZSxuLGkpe3ZhciByPW51bGw9PWU/MDplLmxlbmd0aDtyZXR1cm4gcj9UcihlLChuPWl8fG49PT10PzE6V3MobikpPDA/MDpuLHIpOltdfSxWbi5kcm9wUmlnaHQ9ZnVuY3Rpb24gaGMoZSxuLGkpe3ZhciByPW51bGw9PWU/MDplLmxlbmd0aDtyZXR1cm4gcj9UcihlLDAsKG49ci0obj1pfHxuPT09dD8xOldzKG4pKSk8MD8wOm4pOltdfSxWbi5kcm9wUmlnaHRXaGlsZT1mdW5jdGlvbiBkYyh0LGUpe3JldHVybiB0JiZ0Lmxlbmd0aD96cih0LE5vKGUsMyksITAsITApOltdfSxWbi5kcm9wV2hpbGU9ZnVuY3Rpb24gcGModCxlKXtyZXR1cm4gdCYmdC5sZW5ndGg/enIodCxObyhlLDMpLCEwKTpbXX0sVm4uZmlsbD1mdW5jdGlvbiBmYyhlLG4saSxyKXt2YXIgbz1udWxsPT1lPzA6ZS5sZW5ndGg7cmV0dXJuIG8/KGkmJiJudW1iZXIiIT10eXBlb2YgaSYmam8oZSxuLGkpJiYoaT0wLHI9byksKGZ1bmN0aW9uIGEoZSxuLGkscil7dmFyIG89ZS5sZW5ndGg7Zm9yKChpPVdzKGkpKTwwJiYoaT0taT5vPzA6bytpKSwocj1yPT09dHx8cj5vP286V3MocikpPDAmJihyKz1vKSxyPWk+cj8wOnFzKHIpO2k8cjspZVtpKytdPW47cmV0dXJuIGV9KShlLG4saSxyKSk6W119LFZuLmZpbHRlcj1mdW5jdGlvbiBtYyh0LGUpe3JldHVybihtcyh0KT9rZTpIaSkodCxObyhlLDMpKX0sVm4uZmxhdE1hcD1mdW5jdGlvbiBnYyh0LGUpe3JldHVybiBGaShYYSh0LGUpLDEpfSxWbi5mbGF0TWFwRGVlcD1mdW5jdGlvbiBfYyh0LGUpe3JldHVybiBGaShYYSh0LGUpLGMpfSxWbi5mbGF0TWFwRGVwdGg9ZnVuY3Rpb24geWMoZSxuLGkpe3JldHVybiBpPWk9PT10PzE6V3MoaSksRmkoWGEoZSxuKSxpKX0sVm4uZmxhdHRlbj1nYSxWbi5mbGF0dGVuRGVlcD1mdW5jdGlvbiB2Yyh0KXtyZXR1cm4gbnVsbCE9dCYmdC5sZW5ndGg/RmkodCxjKTpbXX0sVm4uZmxhdHRlbkRlcHRoPWZ1bmN0aW9uIGJjKGUsbil7cmV0dXJuIG51bGwhPWUmJmUubGVuZ3RoP0ZpKGUsbj1uPT09dD8xOldzKG4pKTpbXX0sVm4uZmxpcD1mdW5jdGlvbiB4Yyh0KXtyZXR1cm4geG8odCw1MTIpfSxWbi5mbG93PU5sLFZuLmZsb3dSaWdodD1JbCxWbi5mcm9tUGFpcnM9ZnVuY3Rpb24gd2ModCl7Zm9yKHZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoLGk9e307KytlPG47KXt2YXIgcj10W2VdO2lbclswXV09clsxXX1yZXR1cm4gaX0sVm4uZnVuY3Rpb25zPWZ1bmN0aW9uIFNjKHQpe3JldHVybiBudWxsPT10P1tdOldpKHQsbGwodCkpfSxWbi5mdW5jdGlvbnNJbj1mdW5jdGlvbiBNYyh0KXtyZXR1cm4gbnVsbD09dD9bXTpXaSh0LGNsKHQpKX0sVm4uZ3JvdXBCeT1XYSxWbi5pbml0aWFsPWZ1bmN0aW9uIEVjKHQpe3JldHVybiBudWxsIT10JiZ0Lmxlbmd0aD9Ucih0LDAsLTEpOltdfSxWbi5pbnRlcnNlY3Rpb249eWEsVm4uaW50ZXJzZWN0aW9uQnk9dmEsVm4uaW50ZXJzZWN0aW9uV2l0aD1iYSxWbi5pbnZlcnQ9b2wsVm4uaW52ZXJ0Qnk9YWwsVm4uaW52b2tlTWFwPXFhLFZuLml0ZXJhdGVlPU9sLFZuLmtleUJ5PVlhLFZuLmtleXM9bGwsVm4ua2V5c0luPWNsLFZuLm1hcD1YYSxWbi5tYXBLZXlzPWZ1bmN0aW9uIFRjKHQsZSl7dmFyIG49e307cmV0dXJuIGU9Tm8oZSwzKSxqaSh0LChmdW5jdGlvbih0LGkscil7YWkobixlKHQsaSxyKSx0KX0pKSxufSxWbi5tYXBWYWx1ZXM9ZnVuY3Rpb24gQ2ModCxlKXt2YXIgbj17fTtyZXR1cm4gZT1ObyhlLDMpLGppKHQsKGZ1bmN0aW9uKHQsaSxyKXthaShuLGksZSh0LGkscikpfSkpLG59LFZuLm1hdGNoZXM9ZnVuY3Rpb24gQWModCl7cmV0dXJuIGNyKGNpKHQsMSkpfSxWbi5tYXRjaGVzUHJvcGVydHk9ZnVuY3Rpb24ga2ModCxlKXtyZXR1cm4gdXIodCxjaShlLDEpKX0sVm4ubWVtb2l6ZT1vcyxWbi5tZXJnZT11bCxWbi5tZXJnZVdpdGg9aGwsVm4ubWV0aG9kPXpsLFZuLm1ldGhvZE9mPURsLFZuLm1peGluPUJsLFZuLm5lZ2F0ZT1hcyxWbi5udGhBcmc9ZnVuY3Rpb24gTGModCl7cmV0dXJuIHQ9V3ModCksdnIoKGZ1bmN0aW9uKGUpe3JldHVybiBkcihlLHQpfSkpfSxWbi5vbWl0PWRsLFZuLm9taXRCeT1mdW5jdGlvbiBQYyh0LGUpe3JldHVybiBmbCh0LGFzKE5vKGUpKSl9LFZuLm9uY2U9ZnVuY3Rpb24gTmModCl7cmV0dXJuIFFhKDIsdCl9LFZuLm9yZGVyQnk9ZnVuY3Rpb24gSWMoZSxuLGkscil7cmV0dXJuIG51bGw9PWU/W106KG1zKG4pfHwobj1udWxsPT1uP1tdOltuXSksbXMoaT1yP3Q6aSl8fChpPW51bGw9PWk/W106W2ldKSxwcihlLG4saSkpfSxWbi5vdmVyPUZsLFZuLm92ZXJBcmdzPXNzLFZuLm92ZXJFdmVyeT1WbCxWbi5vdmVyU29tZT1VbCxWbi5wYXJ0aWFsPWxzLFZuLnBhcnRpYWxSaWdodD1jcyxWbi5wYXJ0aXRpb249JGEsVm4ucGljaz1wbCxWbi5waWNrQnk9ZmwsVm4ucHJvcGVydHk9amwsVm4ucHJvcGVydHlPZj1mdW5jdGlvbiBSYyhlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG51bGw9PWU/dDpxaShlLG4pfX0sVm4ucHVsbD13YSxWbi5wdWxsQWxsPVNhLFZuLnB1bGxBbGxCeT1mdW5jdGlvbiBPYyh0LGUsbil7cmV0dXJuIHQmJnQubGVuZ3RoJiZlJiZlLmxlbmd0aD9tcih0LGUsTm8obiwyKSk6dH0sVm4ucHVsbEFsbFdpdGg9ZnVuY3Rpb24gemMoZSxuLGkpe3JldHVybiBlJiZlLmxlbmd0aCYmbiYmbi5sZW5ndGg/bXIoZSxuLHQsaSk6ZX0sVm4ucHVsbEF0PU1hLFZuLnJhbmdlPUdsLFZuLnJhbmdlUmlnaHQ9V2wsVm4ucmVhcmc9dXMsVm4ucmVqZWN0PWZ1bmN0aW9uIERjKHQsZSl7cmV0dXJuKG1zKHQpP2tlOkhpKSh0LGFzKE5vKGUsMykpKX0sVm4ucmVtb3ZlPWZ1bmN0aW9uIEJjKHQsZSl7dmFyIG49W107aWYoIXR8fCF0Lmxlbmd0aClyZXR1cm4gbjt2YXIgaT0tMSxyPVtdLG89dC5sZW5ndGg7Zm9yKGU9Tm8oZSwzKTsrK2k8bzspe3ZhciBhPXRbaV07ZShhLGksdCkmJihuLnB1c2goYSksci5wdXNoKGkpKX1yZXR1cm4gZ3IodCxyKSxufSxWbi5yZXN0PWZ1bmN0aW9uIEhjKG4saSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEx0KGUpO3JldHVybiB2cihuLGk9aT09PXQ/aTpXcyhpKSl9LFZuLnJldmVyc2U9RWEsVm4uc2FtcGxlU2l6ZT1mdW5jdGlvbiBGYyhlLG4saSl7cmV0dXJuIG49KGk/am8oZSxuLGkpOm49PT10KT8xOldzKG4pLChtcyhlKT9Rbjp4cikoZSxuKX0sVm4uc2V0PWZ1bmN0aW9uIFZjKHQsZSxuKXtyZXR1cm4gbnVsbD09dD90OndyKHQsZSxuKX0sVm4uc2V0V2l0aD1mdW5jdGlvbiBVYyhlLG4saSxyKXtyZXR1cm4gcj0iZnVuY3Rpb24iPT10eXBlb2Ygcj9yOnQsbnVsbD09ZT9lOndyKGUsbixpLHIpfSxWbi5zaHVmZmxlPWZ1bmN0aW9uIGpjKHQpe3JldHVybihtcyh0KT90aTpFcikodCl9LFZuLnNsaWNlPWZ1bmN0aW9uIEdjKGUsbixpKXt2YXIgcj1udWxsPT1lPzA6ZS5sZW5ndGg7cmV0dXJuIHI/KGkmJiJudW1iZXIiIT10eXBlb2YgaSYmam8oZSxuLGkpPyhuPTAsaT1yKToobj1udWxsPT1uPzA6V3MobiksaT1pPT09dD9yOldzKGkpKSxUcihlLG4saSkpOltdfSxWbi5zb3J0Qnk9S2EsVm4uc29ydGVkVW5pcT1mdW5jdGlvbiBXYyh0KXtyZXR1cm4gdCYmdC5sZW5ndGg/THIodCk6W119LFZuLnNvcnRlZFVuaXFCeT1mdW5jdGlvbiBxYyh0LGUpe3JldHVybiB0JiZ0Lmxlbmd0aD9Mcih0LE5vKGUsMikpOltdfSxWbi5zcGxpdD1mdW5jdGlvbiBZYyhlLG4saSl7cmV0dXJuIGkmJiJudW1iZXIiIT10eXBlb2YgaSYmam8oZSxuLGkpJiYobj1pPXQpLChpPWk9PT10P2Q6aT4+PjApPyhlPSRzKGUpKSYmKCJzdHJpbmciPT10eXBlb2Ygbnx8bnVsbCE9biYmIUlzKG4pKSYmIShuPU5yKG4pKSYmYW4oZSk/R3IocG4oZSksMCxpKTplLnNwbGl0KG4saSk6W119LFZuLnNwcmVhZD1mdW5jdGlvbiBYYyh0LG4pe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBMdChlKTtyZXR1cm4gbj1udWxsPT1uPzA6dm4oV3MobiksMCksdnIoKGZ1bmN0aW9uKGUpe3ZhciBpPWVbbl0scj1HcihlLDAsbik7cmV0dXJuIGkmJkllKHIsaSkseGUodCx0aGlzLHIpfSkpfSxWbi50YWlsPWZ1bmN0aW9uICRjKHQpe3ZhciBlPW51bGw9PXQ/MDp0Lmxlbmd0aDtyZXR1cm4gZT9Ucih0LDEsZSk6W119LFZuLnRha2U9ZnVuY3Rpb24gS2MoZSxuLGkpe3JldHVybiBlJiZlLmxlbmd0aD9UcihlLDAsKG49aXx8bj09PXQ/MTpXcyhuKSk8MD8wOm4pOltdfSxWbi50YWtlUmlnaHQ9ZnVuY3Rpb24gWmMoZSxuLGkpe3ZhciByPW51bGw9PWU/MDplLmxlbmd0aDtyZXR1cm4gcj9UcihlLChuPXItKG49aXx8bj09PXQ/MTpXcyhuKSkpPDA/MDpuLHIpOltdfSxWbi50YWtlUmlnaHRXaGlsZT1mdW5jdGlvbiBKYyh0LGUpe3JldHVybiB0JiZ0Lmxlbmd0aD96cih0LE5vKGUsMyksITEsITApOltdfSxWbi50YWtlV2hpbGU9ZnVuY3Rpb24gUWModCxlKXtyZXR1cm4gdCYmdC5sZW5ndGg/enIodCxObyhlLDMpKTpbXX0sVm4udGFwPWZ1bmN0aW9uIHR1KHQsZSl7cmV0dXJuIGUodCksdH0sVm4udGhyb3R0bGU9ZnVuY3Rpb24gZXUodCxuLGkpe3ZhciByPSEwLG89ITA7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEx0KGUpO3JldHVybiBDcyhpKSYmKHI9ImxlYWRpbmciaW4gaT8hIWkubGVhZGluZzpyLG89InRyYWlsaW5nImluIGk/ISFpLnRyYWlsaW5nOm8pLG5zKHQsbix7bGVhZGluZzpyLG1heFdhaXQ6bix0cmFpbGluZzpvfSl9LFZuLnRocnU9QmEsVm4udG9BcnJheT1qcyxWbi50b1BhaXJzPW1sLFZuLnRvUGFpcnNJbj1nbCxWbi50b1BhdGg9ZnVuY3Rpb24gbnUodCl7cmV0dXJuIG1zKHQpP05lKHQsbGEpOkJzKHQpP1t0XTpKcihhYSgkcyh0KSkpfSxWbi50b1BsYWluT2JqZWN0PVhzLFZuLnRyYW5zZm9ybT1mdW5jdGlvbiBpdSh0LGUsbil7dmFyIGk9bXModCkscj1pfHxicyh0KXx8SHModCk7aWYoZT1ObyhlLDQpLG51bGw9PW4pe3ZhciBvPXQmJnQuY29uc3RydWN0b3I7bj1yP2k/bmV3IG86W106Q3ModCkmJk1zKG8pP1VuKHF0KHQpKTp7fX1yZXR1cm4ocj9NZTpqaSkodCwoZnVuY3Rpb24odCxpLHIpe3JldHVybiBlKG4sdCxpLHIpfSkpLG59LFZuLnVuYXJ5PWZ1bmN0aW9uIHJ1KHQpe3JldHVybiBKYSh0LDEpfSxWbi51bmlvbj1UYSxWbi51bmlvbkJ5PUNhLFZuLnVuaW9uV2l0aD1BYSxWbi51bmlxPWZ1bmN0aW9uIG91KHQpe3JldHVybiB0JiZ0Lmxlbmd0aD9Jcih0KTpbXX0sVm4udW5pcUJ5PWZ1bmN0aW9uIGF1KHQsZSl7cmV0dXJuIHQmJnQubGVuZ3RoP0lyKHQsTm8oZSwyKSk6W119LFZuLnVuaXFXaXRoPWZ1bmN0aW9uIHN1KGUsbil7cmV0dXJuIG49ImZ1bmN0aW9uIj09dHlwZW9mIG4/bjp0LGUmJmUubGVuZ3RoP0lyKGUsdCxuKTpbXX0sVm4udW5zZXQ9ZnVuY3Rpb24gbHUodCxlKXtyZXR1cm4gbnVsbD09dHx8UnIodCxlKX0sVm4udW56aXA9a2EsVm4udW56aXBXaXRoPUxhLFZuLnVwZGF0ZT1mdW5jdGlvbiBjdSh0LGUsbil7cmV0dXJuIG51bGw9PXQ/dDpPcih0LGUsVnIobikpfSxWbi51cGRhdGVXaXRoPWZ1bmN0aW9uIHV1KGUsbixpLHIpe3JldHVybiByPSJmdW5jdGlvbiI9PXR5cGVvZiByP3I6dCxudWxsPT1lP2U6T3IoZSxuLFZyKGkpLHIpfSxWbi52YWx1ZXM9X2wsVm4udmFsdWVzSW49ZnVuY3Rpb24gaHUodCl7cmV0dXJuIG51bGw9PXQ/W106WmUodCxjbCh0KSl9LFZuLndpdGhvdXQ9UGEsVm4ud29yZHM9QWwsVm4ud3JhcD1mdW5jdGlvbiBkdSh0LGUpe3JldHVybiBscyhWcihlKSx0KX0sVm4ueG9yPU5hLFZuLnhvckJ5PUlhLFZuLnhvcldpdGg9UmEsVm4uemlwPU9hLFZuLnppcE9iamVjdD1mdW5jdGlvbiBwdSh0LGUpe3JldHVybiBIcih0fHxbXSxlfHxbXSxuaSl9LFZuLnppcE9iamVjdERlZXA9ZnVuY3Rpb24gZnUodCxlKXtyZXR1cm4gSHIodHx8W10sZXx8W10sd3IpfSxWbi56aXBXaXRoPXphLFZuLmVudHJpZXM9bWwsVm4uZW50cmllc0luPWdsLFZuLmV4dGVuZD1acyxWbi5leHRlbmRXaXRoPUpzLEJsKFZuLFZuKSxWbi5hZGQ9JGwsVm4uYXR0ZW1wdD1rbCxWbi5jYW1lbENhc2U9eWwsVm4uY2FwaXRhbGl6ZT12bCxWbi5jZWlsPUtsLFZuLmNsYW1wPWZ1bmN0aW9uIG11KGUsbixpKXtyZXR1cm4gaT09PXQmJihpPW4sbj10KSxpIT09dCYmKGk9KGk9WXMoaSkpPT1pP2k6MCksbiE9PXQmJihuPShuPVlzKG4pKT09bj9uOjApLGxpKFlzKGUpLG4saSl9LFZuLmNsb25lPWZ1bmN0aW9uIGd1KHQpe3JldHVybiBjaSh0LDQpfSxWbi5jbG9uZURlZXA9ZnVuY3Rpb24gX3UodCl7cmV0dXJuIGNpKHQsNSl9LFZuLmNsb25lRGVlcFdpdGg9ZnVuY3Rpb24geXUoZSxuKXtyZXR1cm4gY2koZSw1LG49ImZ1bmN0aW9uIj09dHlwZW9mIG4/bjp0KX0sVm4uY2xvbmVXaXRoPWZ1bmN0aW9uIHZ1KGUsbil7cmV0dXJuIGNpKGUsNCxuPSJmdW5jdGlvbiI9PXR5cGVvZiBuP246dCl9LFZuLmNvbmZvcm1zVG89ZnVuY3Rpb24gYnUodCxlKXtyZXR1cm4gbnVsbD09ZXx8dWkodCxlLGxsKGUpKX0sVm4uZGVidXJyPWJsLFZuLmRlZmF1bHRUbz1mdW5jdGlvbiB4dSh0LGUpe3JldHVybiBudWxsPT10fHx0IT10P2U6dH0sVm4uZGl2aWRlPVpsLFZuLmVuZHNXaXRoPWZ1bmN0aW9uIHd1KGUsbixpKXtlPSRzKGUpLG49TnIobik7dmFyIHI9ZS5sZW5ndGgsbz1pPWk9PT10P3I6bGkoV3MoaSksMCxyKTtyZXR1cm4oaS09bi5sZW5ndGgpPj0wJiZlLnNsaWNlKGksbyk9PW59LFZuLmVxPWhzLFZuLmVzY2FwZT1mdW5jdGlvbiBTdSh0KXtyZXR1cm4odD0kcyh0KSkmJlkudGVzdCh0KT90LnJlcGxhY2UoVyxybik6dH0sVm4uZXNjYXBlUmVnRXhwPWZ1bmN0aW9uIE11KHQpe3JldHVybih0PSRzKHQpKSYmZXQudGVzdCh0KT90LnJlcGxhY2UodHQsIlxcJCYiKTp0fSxWbi5ldmVyeT1mdW5jdGlvbiBFdShlLG4saSl7dmFyIHI9bXMoZSk/QWU6RGk7cmV0dXJuIGkmJmpvKGUsbixpKSYmKG49dCkscihlLE5vKG4sMykpfSxWbi5maW5kPVZhLFZuLmZpbmRJbmRleD1mYSxWbi5maW5kS2V5PWZ1bmN0aW9uIFR1KHQsZSl7cmV0dXJuIEJlKHQsTm8oZSwzKSxqaSl9LFZuLmZpbmRMYXN0PVVhLFZuLmZpbmRMYXN0SW5kZXg9bWEsVm4uZmluZExhc3RLZXk9ZnVuY3Rpb24gQ3UodCxlKXtyZXR1cm4gQmUodCxObyhlLDMpLEdpKX0sVm4uZmxvb3I9SmwsVm4uZm9yRWFjaD1qYSxWbi5mb3JFYWNoUmlnaHQ9R2EsVm4uZm9ySW49ZnVuY3Rpb24gQXUodCxlKXtyZXR1cm4gbnVsbD09dD90OlZpKHQsTm8oZSwzKSxjbCl9LFZuLmZvckluUmlnaHQ9ZnVuY3Rpb24ga3UodCxlKXtyZXR1cm4gbnVsbD09dD90OlVpKHQsTm8oZSwzKSxjbCl9LFZuLmZvck93bj1mdW5jdGlvbiBMdSh0LGUpe3JldHVybiB0JiZqaSh0LE5vKGUsMykpfSxWbi5mb3JPd25SaWdodD1mdW5jdGlvbiBQdSh0LGUpe3JldHVybiB0JiZHaSh0LE5vKGUsMykpfSxWbi5nZXQ9aWwsVm4uZ3Q9ZHMsVm4uZ3RlPXBzLFZuLmhhcz1mdW5jdGlvbiBOdSh0LGUpe3JldHVybiBudWxsIT10JiZIbyh0LGUsS2kpfSxWbi5oYXNJbj1ybCxWbi5oZWFkPV9hLFZuLmlkZW50aXR5PVJsLFZuLmluY2x1ZGVzPWZ1bmN0aW9uIEl1KHQsZSxuLGkpe3Q9eXModCk/dDpfbCh0KSxuPW4mJiFpP1dzKG4pOjA7dmFyIHI9dC5sZW5ndGg7cmV0dXJuIG48MCYmKG49dm4ocituLDApKSxEcyh0KT9uPD1yJiZ0LmluZGV4T2YoZSxuKT4tMTohIXImJkZlKHQsZSxuKT4tMX0sVm4uaW5kZXhPZj1mdW5jdGlvbiBSdSh0LGUsbil7dmFyIGk9bnVsbD09dD8wOnQubGVuZ3RoO2lmKCFpKXJldHVybi0xO3ZhciByPW51bGw9PW4/MDpXcyhuKTtyZXR1cm4gcjwwJiYocj12bihpK3IsMCkpLEZlKHQsZSxyKX0sVm4uaW5SYW5nZT1mdW5jdGlvbiBPdShlLG4saSl7cmV0dXJuIG49R3MobiksaT09PXQ/KGk9bixuPTApOmk9R3MoaSksKGZ1bmN0aW9uIHIodCxlLG4pe3JldHVybiB0Pj1ibihlLG4pJiZ0PHZuKGUsbil9KShlPVlzKGUpLG4saSl9LFZuLmludm9rZT1zbCxWbi5pc0FyZ3VtZW50cz1mcyxWbi5pc0FycmF5PW1zLFZuLmlzQXJyYXlCdWZmZXI9Z3MsVm4uaXNBcnJheUxpa2U9eXMsVm4uaXNBcnJheUxpa2VPYmplY3Q9dnMsVm4uaXNCb29sZWFuPWZ1bmN0aW9uIHp1KHQpe3JldHVybiEwPT09dHx8ITE9PT10fHxBcyh0KSYmWGkodCk9PWd9LFZuLmlzQnVmZmVyPWJzLFZuLmlzRGF0ZT14cyxWbi5pc0VsZW1lbnQ9ZnVuY3Rpb24gRHUodCl7cmV0dXJuIEFzKHQpJiYxPT09dC5ub2RlVHlwZSYmIU5zKHQpfSxWbi5pc0VtcHR5PWZ1bmN0aW9uIEJ1KHQpe2lmKG51bGw9PXQpcmV0dXJuITA7aWYoeXModCkmJihtcyh0KXx8InN0cmluZyI9PXR5cGVvZiB0fHwiZnVuY3Rpb24iPT10eXBlb2YgdC5zcGxpY2V8fGJzKHQpfHxIcyh0KXx8ZnModCkpKXJldHVybiF0Lmxlbmd0aDt2YXIgZT1Cbyh0KTtpZihlPT14fHxlPT1UKXJldHVybiF0LnNpemU7aWYoWW8odCkpcmV0dXJuIW9yKHQpLmxlbmd0aDtmb3IodmFyIG4gaW4gdClpZihPdC5jYWxsKHQsbikpcmV0dXJuITE7cmV0dXJuITB9LFZuLmlzRXF1YWw9ZnVuY3Rpb24gSHUodCxlKXtyZXR1cm4gZXIodCxlKX0sVm4uaXNFcXVhbFdpdGg9ZnVuY3Rpb24gRnUoZSxuLGkpe3ZhciByPShpPSJmdW5jdGlvbiI9PXR5cGVvZiBpP2k6dCk/aShlLG4pOnQ7cmV0dXJuIHI9PT10P2VyKGUsbix0LGkpOiEhcn0sVm4uaXNFcnJvcj1TcyxWbi5pc0Zpbml0ZT1mdW5jdGlvbiBWdSh0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJldlKHQpfSxWbi5pc0Z1bmN0aW9uPU1zLFZuLmlzSW50ZWdlcj1FcyxWbi5pc0xlbmd0aD1UcyxWbi5pc01hcD1rcyxWbi5pc01hdGNoPWZ1bmN0aW9uIFV1KHQsZSl7cmV0dXJuIHQ9PT1lfHxucih0LGUsUm8oZSkpfSxWbi5pc01hdGNoV2l0aD1mdW5jdGlvbiBqdShlLG4saSl7cmV0dXJuIGk9ImZ1bmN0aW9uIj09dHlwZW9mIGk/aTp0LG5yKGUsbixSbyhuKSxpKX0sVm4uaXNOYU49ZnVuY3Rpb24gR3UodCl7cmV0dXJuIFBzKHQpJiZ0IT0rdH0sVm4uaXNOYXRpdmU9ZnVuY3Rpb24gV3UodCl7aWYocW8odCkpdGhyb3cgbmV3IE10KCJVbnN1cHBvcnRlZCBjb3JlLWpzIHVzZS4gVHJ5IGh0dHBzOi8vbnBtcy5pby9zZWFyY2g/cT1wb255ZmlsbC4iKTtyZXR1cm4gaXIodCl9LFZuLmlzTmlsPWZ1bmN0aW9uIHF1KHQpe3JldHVybiBudWxsPT10fSxWbi5pc051bGw9ZnVuY3Rpb24gWXUodCl7cmV0dXJuIG51bGw9PT10fSxWbi5pc051bWJlcj1QcyxWbi5pc09iamVjdD1DcyxWbi5pc09iamVjdExpa2U9QXMsVm4uaXNQbGFpbk9iamVjdD1OcyxWbi5pc1JlZ0V4cD1JcyxWbi5pc1NhZmVJbnRlZ2VyPWZ1bmN0aW9uIFh1KHQpe3JldHVybiBFcyh0KSYmdD49LTkwMDcxOTkyNTQ3NDA5OTEmJnQ8PXV9LFZuLmlzU2V0PU9zLFZuLmlzU3RyaW5nPURzLFZuLmlzU3ltYm9sPUJzLFZuLmlzVHlwZWRBcnJheT1IcyxWbi5pc1VuZGVmaW5lZD1mdW5jdGlvbiAkdShlKXtyZXR1cm4gZT09PXR9LFZuLmlzV2Vha01hcD1mdW5jdGlvbiBLdSh0KXtyZXR1cm4gQXModCkmJkJvKHQpPT1rfSxWbi5pc1dlYWtTZXQ9ZnVuY3Rpb24gWnUodCl7cmV0dXJuIEFzKHQpJiYiW29iamVjdCBXZWFrU2V0XSI9PVhpKHQpfSxWbi5qb2luPWZ1bmN0aW9uIEp1KHQsZSl7cmV0dXJuIG51bGw9PXQ/IiI6X24uY2FsbCh0LGUpfSxWbi5rZWJhYkNhc2U9eGwsVm4ubGFzdD14YSxWbi5sYXN0SW5kZXhPZj1mdW5jdGlvbiBRdShlLG4saSl7dmFyIHI9bnVsbD09ZT8wOmUubGVuZ3RoO2lmKCFyKXJldHVybi0xO3ZhciBvPXI7cmV0dXJuIGkhPT10JiYobz0obz1XcyhpKSk8MD92bihyK28sMCk6Ym4obyxyLTEpKSxuPT1uPyhmdW5jdGlvbiBhKHQsZSxuKXtmb3IodmFyIGk9bisxO2ktLTspaWYodFtpXT09PWUpcmV0dXJuIGk7cmV0dXJuIGl9KShlLG4sbyk6SGUoZSxVZSxvLCEwKX0sVm4ubG93ZXJDYXNlPXdsLFZuLmxvd2VyRmlyc3Q9U2wsVm4ubHQ9VnMsVm4ubHRlPVVzLFZuLm1heD1mdW5jdGlvbiB0aChlKXtyZXR1cm4gZSYmZS5sZW5ndGg/QmkoZSxSbCwkaSk6dH0sVm4ubWF4Qnk9ZnVuY3Rpb24gZWgoZSxuKXtyZXR1cm4gZSYmZS5sZW5ndGg/QmkoZSxObyhuLDIpLCRpKTp0fSxWbi5tZWFuPWZ1bmN0aW9uIG5oKHQpe3JldHVybiBqZSh0LFJsKX0sVm4ubWVhbkJ5PWZ1bmN0aW9uIGloKHQsZSl7cmV0dXJuIGplKHQsTm8oZSwyKSl9LFZuLm1pbj1mdW5jdGlvbiByaChlKXtyZXR1cm4gZSYmZS5sZW5ndGg/QmkoZSxSbCxzcik6dH0sVm4ubWluQnk9ZnVuY3Rpb24gb2goZSxuKXtyZXR1cm4gZSYmZS5sZW5ndGg/QmkoZSxObyhuLDIpLHNyKTp0fSxWbi5zdHViQXJyYXk9cWwsVm4uc3R1YkZhbHNlPVlsLFZuLnN0dWJPYmplY3Q9ZnVuY3Rpb24gYWgoKXtyZXR1cm57fX0sVm4uc3R1YlN0cmluZz1mdW5jdGlvbiBzaCgpe3JldHVybiIifSxWbi5zdHViVHJ1ZT1mdW5jdGlvbiBsaCgpe3JldHVybiEwfSxWbi5tdWx0aXBseT1RbCxWbi5udGg9ZnVuY3Rpb24gY2goZSxuKXtyZXR1cm4gZSYmZS5sZW5ndGg/ZHIoZSxXcyhuKSk6dH0sVm4ubm9Db25mbGljdD1mdW5jdGlvbiB1aCgpe3JldHVybiBjZS5fPT09dGhpcyYmKGNlLl89RnQpLHRoaXN9LFZuLm5vb3A9SGwsVm4ubm93PVphLFZuLnBhZD1mdW5jdGlvbiBoaCh0LGUsbil7dD0kcyh0KTt2YXIgaT0oZT1XcyhlKSk/ZG4odCk6MDtpZighZXx8aT49ZSlyZXR1cm4gdDt2YXIgcj0oZS1pKS8yO3JldHVybiBmbyhFZShyKSxuKSt0K2ZvKFNlKHIpLG4pfSxWbi5wYWRFbmQ9ZnVuY3Rpb24gZGgodCxlLG4pe3Q9JHModCk7dmFyIGk9KGU9V3MoZSkpP2RuKHQpOjA7cmV0dXJuIGUmJmk8ZT90K2ZvKGUtaSxuKTp0fSxWbi5wYWRTdGFydD1mdW5jdGlvbiBwaCh0LGUsbil7dD0kcyh0KTt2YXIgaT0oZT1XcyhlKSk/ZG4odCk6MDtyZXR1cm4gZSYmaTxlP2ZvKGUtaSxuKSt0OnR9LFZuLnBhcnNlSW50PWZ1bmN0aW9uIGZoKHQsZSxuKXtyZXR1cm4gbnx8bnVsbD09ZT9lPTA6ZSYmKGU9K2UpLHduKCRzKHQpLnJlcGxhY2UobnQsIiIpLGV8fDApfSxWbi5yYW5kb209ZnVuY3Rpb24gbWgoZSxuLGkpe2lmKGkmJiJib29sZWFuIiE9dHlwZW9mIGkmJmpvKGUsbixpKSYmKG49aT10KSxpPT09dCYmKCJib29sZWFuIj09dHlwZW9mIG4/KGk9bixuPXQpOiJib29sZWFuIj09dHlwZW9mIGUmJihpPWUsZT10KSksZT09PXQmJm49PT10PyhlPTAsbj0xKTooZT1HcyhlKSxuPT09dD8obj1lLGU9MCk6bj1HcyhuKSksZT5uKXt2YXIgcj1lO2U9bixuPXJ9aWYoaXx8ZSUxfHxuJTEpe3ZhciBvPVNuKCk7cmV0dXJuIGJuKGUrbyoobi1lK29lKCIxZS0iKygobysiIikubGVuZ3RoLTEpKSksbil9cmV0dXJuIF9yKGUsbil9LFZuLnJlZHVjZT1mdW5jdGlvbiBnaCh0LGUsbil7dmFyIGk9bXModCk/UmU6cWUscj1hcmd1bWVudHMubGVuZ3RoPDM7cmV0dXJuIGkodCxObyhlLDQpLG4scixPaSl9LFZuLnJlZHVjZVJpZ2h0PWZ1bmN0aW9uIF9oKHQsZSxuKXt2YXIgaT1tcyh0KT9PZTpxZSxyPWFyZ3VtZW50cy5sZW5ndGg8MztyZXR1cm4gaSh0LE5vKGUsNCksbixyLHppKX0sVm4ucmVwZWF0PWZ1bmN0aW9uIHloKGUsbixpKXtyZXR1cm4gbj0oaT9qbyhlLG4saSk6bj09PXQpPzE6V3MobikseXIoJHMoZSksbil9LFZuLnJlcGxhY2U9ZnVuY3Rpb24gdmgoKXt2YXIgdD1hcmd1bWVudHMsZT0kcyh0WzBdKTtyZXR1cm4gdC5sZW5ndGg8Mz9lOmUucmVwbGFjZSh0WzFdLHRbMl0pfSxWbi5yZXN1bHQ9ZnVuY3Rpb24gYmgoZSxuLGkpe3ZhciByPS0xLG89KG49VXIobixlKSkubGVuZ3RoO2ZvcihvfHwobz0xLGU9dCk7KytyPG87KXt2YXIgYT1udWxsPT1lP3Q6ZVtsYShuW3JdKV07YT09PXQmJihyPW8sYT1pKSxlPU1zKGEpP2EuY2FsbChlKTphfXJldHVybiBlfSxWbi5yb3VuZD10YyxWbi5ydW5JbkNvbnRleHQ9aXQsVm4uc2FtcGxlPWZ1bmN0aW9uIHhoKHQpe3JldHVybihtcyh0KT9KbjpicikodCl9LFZuLnNpemU9ZnVuY3Rpb24gd2godCl7aWYobnVsbD09dClyZXR1cm4gMDtpZih5cyh0KSlyZXR1cm4gRHModCk/ZG4odCk6dC5sZW5ndGg7dmFyIGU9Qm8odCk7cmV0dXJuIGU9PXh8fGU9PVQ/dC5zaXplOm9yKHQpLmxlbmd0aH0sVm4uc25ha2VDYXNlPU1sLFZuLnNvbWU9ZnVuY3Rpb24gU2goZSxuLGkpe3ZhciByPW1zKGUpP3plOkNyO3JldHVybiBpJiZqbyhlLG4saSkmJihuPXQpLHIoZSxObyhuLDMpKX0sVm4uc29ydGVkSW5kZXg9ZnVuY3Rpb24gTWgodCxlKXtyZXR1cm4gQXIodCxlKX0sVm4uc29ydGVkSW5kZXhCeT1mdW5jdGlvbiBFaCh0LGUsbil7cmV0dXJuIGtyKHQsZSxObyhuLDIpKX0sVm4uc29ydGVkSW5kZXhPZj1mdW5jdGlvbiBUaCh0LGUpe3ZhciBuPW51bGw9PXQ/MDp0Lmxlbmd0aDtpZihuKXt2YXIgaT1Bcih0LGUpO2lmKGk8biYmaHModFtpXSxlKSlyZXR1cm4gaX1yZXR1cm4tMX0sVm4uc29ydGVkTGFzdEluZGV4PWZ1bmN0aW9uIENoKHQsZSl7cmV0dXJuIEFyKHQsZSwhMCl9LFZuLnNvcnRlZExhc3RJbmRleEJ5PWZ1bmN0aW9uIEFoKHQsZSxuKXtyZXR1cm4ga3IodCxlLE5vKG4sMiksITApfSxWbi5zb3J0ZWRMYXN0SW5kZXhPZj1mdW5jdGlvbiBraCh0LGUpe2lmKG51bGwhPXQmJnQubGVuZ3RoKXt2YXIgbj1Bcih0LGUsITApLTE7aWYoaHModFtuXSxlKSlyZXR1cm4gbn1yZXR1cm4tMX0sVm4uc3RhcnRDYXNlPUVsLFZuLnN0YXJ0c1dpdGg9ZnVuY3Rpb24gTGgodCxlLG4pe3JldHVybiB0PSRzKHQpLG49bnVsbD09bj8wOmxpKFdzKG4pLDAsdC5sZW5ndGgpLGU9TnIoZSksdC5zbGljZShuLG4rZS5sZW5ndGgpPT1lfSxWbi5zdWJ0cmFjdD1lYyxWbi5zdW09ZnVuY3Rpb24gUGgodCl7cmV0dXJuIHQmJnQubGVuZ3RoP1llKHQsUmwpOjB9LFZuLnN1bUJ5PWZ1bmN0aW9uIE5oKHQsZSl7cmV0dXJuIHQmJnQubGVuZ3RoP1llKHQsTm8oZSwyKSk6MH0sVm4udGVtcGxhdGU9ZnVuY3Rpb24gSWgoZSxuLGkpe3ZhciByPVZuLnRlbXBsYXRlU2V0dGluZ3M7aSYmam8oZSxuLGkpJiYobj10KSxlPSRzKGUpLG49SnMoe30sbixyLHdvKTt2YXIgbyxhLHM9SnMoe30sbi5pbXBvcnRzLHIuaW1wb3J0cyx3byksbD1sbChzKSxjPVplKHMsbCksdT0wLGg9bi5pbnRlcnBvbGF0ZXx8eXQsZD0iX19wICs9ICciLHA9QXQoKG4uZXNjYXBlfHx5dCkuc291cmNlKyJ8IitoLnNvdXJjZSsifCIrKGg9PT1LP3V0Onl0KS5zb3VyY2UrInwiKyhuLmV2YWx1YXRlfHx5dCkuc291cmNlKyJ8JCIsImciKSxmPSIvLyMgc291cmNlVVJMPSIrKE90LmNhbGwobiwic291cmNlVVJMIik/KG4uc291cmNlVVJMKyIiKS5yZXBsYWNlKC9ccy9nLCIgIik6ImxvZGFzaC50ZW1wbGF0ZVNvdXJjZXNbIisgKytlZSsiXSIpKyJcbiI7ZS5yZXBsYWNlKHAsKGZ1bmN0aW9uKHQsbixpLHIscyxsKXtyZXR1cm4gaXx8KGk9ciksZCs9ZS5zbGljZSh1LGwpLnJlcGxhY2UodnQsb24pLG4mJihvPSEwLGQrPSInICtcbl9fZSgiK24rIikgK1xuJyIpLHMmJihhPSEwLGQrPSInO1xuIitzKyI7XG5fX3AgKz0gJyIpLGkmJihkKz0iJyArXG4oKF9fdCA9ICgiK2krIikpID09IG51bGwgPyAnJyA6IF9fdCkgK1xuJyIpLHU9bCt0Lmxlbmd0aCx0fSkpLGQrPSInO1xuIjt2YXIgbT1PdC5jYWxsKG4sInZhcmlhYmxlIikmJm4udmFyaWFibGU7aWYobSl7aWYobHQudGVzdChtKSl0aHJvdyBuZXcgTXQoIkludmFsaWQgYHZhcmlhYmxlYCBvcHRpb24gcGFzc2VkIGludG8gYF8udGVtcGxhdGVgIil9ZWxzZSBkPSJ3aXRoIChvYmopIHtcbiIrZCsiXG59XG4iO2Q9KGE/ZC5yZXBsYWNlKFYsIiIpOmQpLnJlcGxhY2UoVSwiJDEiKS5yZXBsYWNlKGosIiQxOyIpLGQ9ImZ1bmN0aW9uKCIrKG18fCJvYmoiKSsiKSB7XG4iKyhtPyIiOiJvYmogfHwgKG9iaiA9IHt9KTtcbiIpKyJ2YXIgX190LCBfX3AgPSAnJyIrKG8/IiwgX19lID0gXy5lc2NhcGUiOiIiKSsoYT8iLCBfX2ogPSBBcnJheS5wcm90b3R5cGUuam9pbjtcbmZ1bmN0aW9uIHByaW50KCkgeyBfX3AgKz0gX19qLmNhbGwoYXJndW1lbnRzLCAnJykgfVxuIjoiO1xuIikrZCsicmV0dXJuIF9fcFxufSI7dmFyIGc9a2woKGZ1bmN0aW9uKCl7cmV0dXJuIEV0KGwsZisicmV0dXJuICIrZCkuYXBwbHkodCxjKX0pKTtpZihnLnNvdXJjZT1kLFNzKGcpKXRocm93IGc7cmV0dXJuIGd9LFZuLnRpbWVzPWZ1bmN0aW9uIFJoKHQsZSl7aWYoKHQ9V3ModCkpPDF8fHQ+dSlyZXR1cm5bXTt2YXIgbj1kLGk9Ym4odCxkKTtlPU5vKGUpLHQtPWQ7Zm9yKHZhciByPVhlKGksZSk7KytuPHQ7KWUobik7cmV0dXJuIHJ9LFZuLnRvRmluaXRlPUdzLFZuLnRvSW50ZWdlcj1XcyxWbi50b0xlbmd0aD1xcyxWbi50b0xvd2VyPWZ1bmN0aW9uIE9oKHQpe3JldHVybiAkcyh0KS50b0xvd2VyQ2FzZSgpfSxWbi50b051bWJlcj1ZcyxWbi50b1NhZmVJbnRlZ2VyPWZ1bmN0aW9uIHpoKHQpe3JldHVybiB0P2xpKFdzKHQpLC05MDA3MTk5MjU0NzQwOTkxLHUpOjA9PT10P3Q6MH0sVm4udG9TdHJpbmc9JHMsVm4udG9VcHBlcj1mdW5jdGlvbiBEaCh0KXtyZXR1cm4gJHModCkudG9VcHBlckNhc2UoKX0sVm4udHJpbT1mdW5jdGlvbiBCaChlLG4saSl7aWYoKGU9JHMoZSkpJiYoaXx8bj09PXQpKXJldHVybiAkZShlKTtpZighZXx8IShuPU5yKG4pKSlyZXR1cm4gZTt2YXIgcj1wbihlKSxvPXBuKG4pO3JldHVybiBHcihyLFFlKHIsbyksdG4ocixvKSsxKS5qb2luKCIiKX0sVm4udHJpbUVuZD1mdW5jdGlvbiBIaChlLG4saSl7aWYoKGU9JHMoZSkpJiYoaXx8bj09PXQpKXJldHVybiBlLnNsaWNlKDAsZm4oZSkrMSk7aWYoIWV8fCEobj1OcihuKSkpcmV0dXJuIGU7dmFyIHI9cG4oZSk7cmV0dXJuIEdyKHIsMCx0bihyLHBuKG4pKSsxKS5qb2luKCIiKX0sVm4udHJpbVN0YXJ0PWZ1bmN0aW9uIEZoKGUsbixpKXtpZigoZT0kcyhlKSkmJihpfHxuPT09dCkpcmV0dXJuIGUucmVwbGFjZShudCwiIik7aWYoIWV8fCEobj1OcihuKSkpcmV0dXJuIGU7dmFyIHI9cG4oZSk7cmV0dXJuIEdyKHIsUWUocixwbihuKSkpLmpvaW4oIiIpfSxWbi50cnVuY2F0ZT1mdW5jdGlvbiBWaChlLG4pe3ZhciBpPTMwLHI9Ii4uLiI7aWYoQ3Mobikpe3ZhciBvPSJzZXBhcmF0b3IiaW4gbj9uLnNlcGFyYXRvcjpvO2k9Imxlbmd0aCJpbiBuP1dzKG4ubGVuZ3RoKTppLHI9Im9taXNzaW9uImluIG4/TnIobi5vbWlzc2lvbik6cn12YXIgYT0oZT0kcyhlKSkubGVuZ3RoO2lmKGFuKGUpKXt2YXIgcz1wbihlKTthPXMubGVuZ3RofWlmKGk+PWEpcmV0dXJuIGU7dmFyIGw9aS1kbihyKTtpZihsPDEpcmV0dXJuIHI7dmFyIGM9cz9HcihzLDAsbCkuam9pbigiIik6ZS5zbGljZSgwLGwpO2lmKG89PT10KXJldHVybiBjK3I7aWYocyYmKGwrPWMubGVuZ3RoLWwpLElzKG8pKXtpZihlLnNsaWNlKGwpLnNlYXJjaChvKSl7dmFyIHUsaD1jO2ZvcihvLmdsb2JhbHx8KG89QXQoby5zb3VyY2UsJHMoaHQuZXhlYyhvKSkrImciKSksby5sYXN0SW5kZXg9MDt1PW8uZXhlYyhoKTspdmFyIGQ9dS5pbmRleDtjPWMuc2xpY2UoMCxkPT09dD9sOmQpfX1lbHNlIGlmKGUuaW5kZXhPZihOcihvKSxsKSE9bCl7dmFyIHA9Yy5sYXN0SW5kZXhPZihvKTtwPi0xJiYoYz1jLnNsaWNlKDAscCkpfXJldHVybiBjK3J9LFZuLnVuZXNjYXBlPWZ1bmN0aW9uIFVoKHQpe3JldHVybih0PSRzKHQpKSYmcS50ZXN0KHQpP3QucmVwbGFjZShHLG1uKTp0fSxWbi51bmlxdWVJZD1mdW5jdGlvbiBqaCh0KXt2YXIgZT0rK3p0O3JldHVybiAkcyh0KStlfSxWbi51cHBlckNhc2U9VGwsVm4udXBwZXJGaXJzdD1DbCxWbi5lYWNoPWphLFZuLmVhY2hSaWdodD1HYSxWbi5maXJzdD1fYSxCbChWbiwoWGw9e30samkoVm4sKGZ1bmN0aW9uKHQsZSl7T3QuY2FsbChWbi5wcm90b3R5cGUsZSl8fChYbFtlXT10KX0pKSxYbCkse2NoYWluOiExfSksVm4uVkVSU0lPTj0iNC4xNy4yMSIsTWUoWyJiaW5kIiwiYmluZEtleSIsImN1cnJ5IiwiY3VycnlSaWdodCIsInBhcnRpYWwiLCJwYXJ0aWFsUmlnaHQiXSwoZnVuY3Rpb24odCl7Vm5bdF0ucGxhY2Vob2xkZXI9Vm59KSksTWUoWyJkcm9wIiwidGFrZSJdLChmdW5jdGlvbihlLG4pe1duLnByb3RvdHlwZVtlXT1mdW5jdGlvbihpKXtpPWk9PT10PzE6dm4oV3MoaSksMCk7dmFyIHI9dGhpcy5fX2ZpbHRlcmVkX18mJiFuP25ldyBXbih0aGlzKTp0aGlzLmNsb25lKCk7cmV0dXJuIHIuX19maWx0ZXJlZF9fP3IuX190YWtlQ291bnRfXz1ibihpLHIuX190YWtlQ291bnRfXyk6ci5fX3ZpZXdzX18ucHVzaCh7c2l6ZTpibihpLGQpLHR5cGU6ZSsoci5fX2Rpcl9fPDA/IlJpZ2h0IjoiIil9KSxyfSxXbi5wcm90b3R5cGVbZSsiUmlnaHQiXT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZXZlcnNlKClbZV0odCkucmV2ZXJzZSgpfX0pKSxNZShbImZpbHRlciIsIm1hcCIsInRha2VXaGlsZSJdLChmdW5jdGlvbih0LGUpe3ZhciBuPWUrMSxpPTE9PW58fDM9PW47V24ucHJvdG90eXBlW3RdPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY2xvbmUoKTtyZXR1cm4gZS5fX2l0ZXJhdGVlc19fLnB1c2goe2l0ZXJhdGVlOk5vKHQsMyksdHlwZTpufSksZS5fX2ZpbHRlcmVkX189ZS5fX2ZpbHRlcmVkX198fGksZX19KSksTWUoWyJoZWFkIiwibGFzdCJdLChmdW5jdGlvbih0LGUpe3ZhciBuPSJ0YWtlIisoZT8iUmlnaHQiOiIiKTtXbi5wcm90b3R5cGVbdF09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tuXSgxKS52YWx1ZSgpWzBdfX0pKSxNZShbImluaXRpYWwiLCJ0YWlsIl0sKGZ1bmN0aW9uKHQsZSl7dmFyIG49ImRyb3AiKyhlPyIiOiJSaWdodCIpO1duLnByb3RvdHlwZVt0XT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9fZmlsdGVyZWRfXz9uZXcgV24odGhpcyk6dGhpc1tuXSgxKX19KSksV24ucHJvdG90eXBlLmNvbXBhY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWx0ZXIoUmwpfSxXbi5wcm90b3R5cGUuZmluZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5maWx0ZXIodCkuaGVhZCgpfSxXbi5wcm90b3R5cGUuZmluZExhc3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmV2ZXJzZSgpLmZpbmQodCl9LFduLnByb3RvdHlwZS5pbnZva2VNYXA9dnIoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/bmV3IFduKHRoaXMpOnRoaXMubWFwKChmdW5jdGlvbihuKXtyZXR1cm4gUWkobix0LGUpfSkpfSkpLFduLnByb3RvdHlwZS5yZWplY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZmlsdGVyKGFzKE5vKHQpKSl9LFduLnByb3RvdHlwZS5zbGljZT1mdW5jdGlvbihlLG4pe2U9V3MoZSk7dmFyIGk9dGhpcztyZXR1cm4gaS5fX2ZpbHRlcmVkX18mJihlPjB8fG48MCk/bmV3IFduKGkpOihlPDA/aT1pLnRha2VSaWdodCgtZSk6ZSYmKGk9aS5kcm9wKGUpKSxuIT09dCYmKGk9KG49V3MobikpPDA/aS5kcm9wUmlnaHQoLW4pOmkudGFrZShuLWUpKSxpKX0sV24ucHJvdG90eXBlLnRha2VSaWdodFdoaWxlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJldmVyc2UoKS50YWtlV2hpbGUodCkucmV2ZXJzZSgpfSxXbi5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRha2UoZCl9LGppKFduLnByb3RvdHlwZSwoZnVuY3Rpb24oZSxuKXt2YXIgaT0vXig/OmZpbHRlcnxmaW5kfG1hcHxyZWplY3QpfFdoaWxlJC8udGVzdChuKSxyPS9eKD86aGVhZHxsYXN0KSQvLnRlc3Qobiksbz1WbltyPyJ0YWtlIisoImxhc3QiPT1uPyJSaWdodCI6IiIpOm5dLGE9cnx8L15maW5kLy50ZXN0KG4pO28mJihWbi5wcm90b3R5cGVbbl09ZnVuY3Rpb24oKXt2YXIgbj10aGlzLl9fd3JhcHBlZF9fLHM9cj9bMV06YXJndW1lbnRzLGw9biBpbnN0YW5jZW9mIFduLGM9c1swXSx1PWx8fG1zKG4pLGg9ZnVuY3Rpb24odCl7dmFyIGU9by5hcHBseShWbixJZShbdF0scykpO3JldHVybiByJiZkP2VbMF06ZX07dSYmaSYmImZ1bmN0aW9uIj09dHlwZW9mIGMmJjEhPWMubGVuZ3RoJiYobD11PSExKTt2YXIgZD10aGlzLl9fY2hhaW5fXyxwPSEhdGhpcy5fX2FjdGlvbnNfXy5sZW5ndGgsZj1hJiYhZCxtPWwmJiFwO2lmKCFhJiZ1KXtuPW0/bjpuZXcgV24odGhpcyk7dmFyIGc9ZS5hcHBseShuLHMpO3JldHVybiBnLl9fYWN0aW9uc19fLnB1c2goe2Z1bmM6QmEsYXJnczpbaF0sdGhpc0FyZzp0fSksbmV3IEduKGcsZCl9cmV0dXJuIGYmJm0/ZS5hcHBseSh0aGlzLHMpOihnPXRoaXMudGhydShoKSxmP3I/Zy52YWx1ZSgpWzBdOmcudmFsdWUoKTpnKX0pfSkpLE1lKFsicG9wIiwicHVzaCIsInNoaWZ0Iiwic29ydCIsInNwbGljZSIsInVuc2hpZnQiXSwoZnVuY3Rpb24odCl7dmFyIGU9UHRbdF0sbj0vXig/OnB1c2h8c29ydHx1bnNoaWZ0KSQvLnRlc3QodCk/InRhcCI6InRocnUiLGk9L14oPzpwb3B8c2hpZnQpJC8udGVzdCh0KTtWbi5wcm90b3R5cGVbdF09ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHM7aWYoaSYmIXRoaXMuX19jaGFpbl9fKXt2YXIgcj10aGlzLnZhbHVlKCk7cmV0dXJuIGUuYXBwbHkobXMocik/cjpbXSx0KX1yZXR1cm4gdGhpc1tuXSgoZnVuY3Rpb24obil7cmV0dXJuIGUuYXBwbHkobXMobik/bjpbXSx0KX0pKX19KSksamkoV24ucHJvdG90eXBlLChmdW5jdGlvbih0LGUpe3ZhciBuPVZuW2VdO2lmKG4pe3ZhciBpPW4ubmFtZSsiIjtPdC5jYWxsKE5uLGkpfHwoTm5baV09W10pLE5uW2ldLnB1c2goe25hbWU6ZSxmdW5jOm59KX19KSksTm5bY28odCwyKS5uYW1lXT1be25hbWU6IndyYXBwZXIiLGZ1bmM6dH1dLFduLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbiBHaCgpe3ZhciB0PW5ldyBXbih0aGlzLl9fd3JhcHBlZF9fKTtyZXR1cm4gdC5fX2FjdGlvbnNfXz1Kcih0aGlzLl9fYWN0aW9uc19fKSx0Ll9fZGlyX189dGhpcy5fX2Rpcl9fLHQuX19maWx0ZXJlZF9fPXRoaXMuX19maWx0ZXJlZF9fLHQuX19pdGVyYXRlZXNfXz1Kcih0aGlzLl9faXRlcmF0ZWVzX18pLHQuX190YWtlQ291bnRfXz10aGlzLl9fdGFrZUNvdW50X18sdC5fX3ZpZXdzX189SnIodGhpcy5fX3ZpZXdzX18pLHR9LFduLnByb3RvdHlwZS5yZXZlcnNlPWZ1bmN0aW9uIFdoKCl7aWYodGhpcy5fX2ZpbHRlcmVkX18pe3ZhciB0PW5ldyBXbih0aGlzKTt0Ll9fZGlyX189LTEsdC5fX2ZpbHRlcmVkX189ITB9ZWxzZSh0PXRoaXMuY2xvbmUoKSkuX19kaXJfXyo9LTE7cmV0dXJuIHR9LFduLnByb3RvdHlwZS52YWx1ZT1mdW5jdGlvbiBxaCgpe3ZhciB0PXRoaXMuX193cmFwcGVkX18udmFsdWUoKSxlPXRoaXMuX19kaXJfXyxuPW1zKHQpLGk9ZTwwLHI9bj90Lmxlbmd0aDowLG89KGZ1bmN0aW9uIGEodCxlLG4pe2Zvcih2YXIgaT0tMSxyPW4ubGVuZ3RoOysraTxyOyl7dmFyIG89bltpXSxhPW8uc2l6ZTtzd2l0Y2goby50eXBlKXtjYXNlImRyb3AiOnQrPWE7YnJlYWs7Y2FzZSJkcm9wUmlnaHQiOmUtPWE7YnJlYWs7Y2FzZSJ0YWtlIjplPWJuKGUsdCthKTticmVhaztjYXNlInRha2VSaWdodCI6dD12bih0LGUtYSl9fXJldHVybntzdGFydDp0LGVuZDplfX0pKDAscix0aGlzLl9fdmlld3NfXykscz1vLnN0YXJ0LGw9by5lbmQsYz1sLXMsdT1pP2w6cy0xLGg9dGhpcy5fX2l0ZXJhdGVlc19fLGQ9aC5sZW5ndGgscD0wLGY9Ym4oYyx0aGlzLl9fdGFrZUNvdW50X18pO2lmKCFufHwhaSYmcj09YyYmZj09YylyZXR1cm4gRHIodCx0aGlzLl9fYWN0aW9uc19fKTt2YXIgbT1bXTt0OmZvcig7Yy0tJiZwPGY7KXtmb3IodmFyIGc9LTEsXz10W3UrPWVdOysrZzxkOyl7dmFyIHk9aFtnXSx2PXkudHlwZSxiPSgwLHkuaXRlcmF0ZWUpKF8pO2lmKDI9PXYpXz1iO2Vsc2UgaWYoIWIpe2lmKDE9PXYpY29udGludWUgdDticmVhayB0fX1tW3ArK109X31yZXR1cm4gbX0sVm4ucHJvdG90eXBlLmF0PUhhLFZuLnByb3RvdHlwZS5jaGFpbj1mdW5jdGlvbiBZaCgpe3JldHVybiBEYSh0aGlzKX0sVm4ucHJvdG90eXBlLmNvbW1pdD1mdW5jdGlvbiBYaCgpe3JldHVybiBuZXcgR24odGhpcy52YWx1ZSgpLHRoaXMuX19jaGFpbl9fKX0sVm4ucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24gJGgoKXt0aGlzLl9fdmFsdWVzX189PT10JiYodGhpcy5fX3ZhbHVlc19fPWpzKHRoaXMudmFsdWUoKSkpO3ZhciBlPXRoaXMuX19pbmRleF9fPj10aGlzLl9fdmFsdWVzX18ubGVuZ3RoO3JldHVybntkb25lOmUsdmFsdWU6ZT90OnRoaXMuX192YWx1ZXNfX1t0aGlzLl9faW5kZXhfXysrXX19LFZuLnByb3RvdHlwZS5wbGFudD1mdW5jdGlvbiBLaChlKXtmb3IodmFyIG4saT10aGlzO2kgaW5zdGFuY2VvZiBqbjspe3ZhciByPXVhKGkpO3IuX19pbmRleF9fPTAsci5fX3ZhbHVlc19fPXQsbj9vLl9fd3JhcHBlZF9fPXI6bj1yO3ZhciBvPXI7aT1pLl9fd3JhcHBlZF9ffXJldHVybiBvLl9fd3JhcHBlZF9fPWUsbn0sVm4ucHJvdG90eXBlLnJldmVyc2U9ZnVuY3Rpb24gWmgoKXt2YXIgZT10aGlzLl9fd3JhcHBlZF9fO2lmKGUgaW5zdGFuY2VvZiBXbil7dmFyIG49ZTtyZXR1cm4gdGhpcy5fX2FjdGlvbnNfXy5sZW5ndGgmJihuPW5ldyBXbih0aGlzKSksKG49bi5yZXZlcnNlKCkpLl9fYWN0aW9uc19fLnB1c2goe2Z1bmM6QmEsYXJnczpbRWFdLHRoaXNBcmc6dH0pLG5ldyBHbihuLHRoaXMuX19jaGFpbl9fKX1yZXR1cm4gdGhpcy50aHJ1KEVhKX0sVm4ucHJvdG90eXBlLnRvSlNPTj1Wbi5wcm90b3R5cGUudmFsdWVPZj1Wbi5wcm90b3R5cGUudmFsdWU9ZnVuY3Rpb24gSmgoKXtyZXR1cm4gRHIodGhpcy5fX3dyYXBwZWRfXyx0aGlzLl9fYWN0aW9uc19fKX0sVm4ucHJvdG90eXBlLmZpcnN0PVZuLnByb3RvdHlwZS5oZWFkLHNlJiYoVm4ucHJvdG90eXBlW3NlXT1mdW5jdGlvbiBRaCgpe3JldHVybiB0aGlzfSksVm59KSgpO2hlPygoaGUuZXhwb3J0cz1nbikuXz1nbix1ZS5fPWduKTpjZS5fPWdufS5jYWxsKFNlKTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgQWU9ISh3aW5kb3cuU2hhZHlET00mJndpbmRvdy5TaGFkeURPTS5pblVzZSk7bGV0IGtlLExlO2Z1bmN0aW9uIFBlKHQpe2tlPSghdHx8IXQuc2hpbWNzc3Byb3BlcnRpZXMpJiYoQWV8fEJvb2xlYW4oIW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0FwcGxlV2ViS2l0XC82MDF8RWRnZVwvMTUvKSYmd2luZG93LkNTUyYmQ1NTLnN1cHBvcnRzJiZDU1Muc3VwcG9ydHMoImJveC1zaGFkb3ciLCIwIDAgMCB2YXIoLS1mb28pIikpKX13aW5kb3cuU2hhZHlDU1MmJnZvaWQgMCE9PXdpbmRvdy5TaGFkeUNTUy5jc3NCdWlsZCYmKExlPXdpbmRvdy5TaGFkeUNTUy5jc3NCdWlsZCk7Y29uc3QgTmU9Qm9vbGVhbih3aW5kb3cuU2hhZHlDU1MmJndpbmRvdy5TaGFkeUNTUy5kaXNhYmxlUnVudGltZSk7d2luZG93LlNoYWR5Q1NTJiZ2b2lkIDAhPT13aW5kb3cuU2hhZHlDU1MubmF0aXZlQ3NzP2tlPXdpbmRvdy5TaGFkeUNTUy5uYXRpdmVDc3M6d2luZG93LlNoYWR5Q1NTPyhQZSh3aW5kb3cuU2hhZHlDU1MpLHdpbmRvdy5TaGFkeUNTUz12b2lkIDApOlBlKHdpbmRvdy5XZWJDb21wb25lbnRzJiZ3aW5kb3cuV2ViQ29tcG9uZW50cy5mbGFncyk7Y29uc3QgSWU9a2U7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovY2xhc3MgUmV7Y29uc3RydWN0b3IoKXt0aGlzLnN0YXJ0PTAsdGhpcy5lbmQ9MCx0aGlzLnByZXZpb3VzPW51bGwsdGhpcy5wYXJlbnQ9bnVsbCx0aGlzLnJ1bGVzPW51bGwsdGhpcy5wYXJzZWRDc3NUZXh0PSIiLHRoaXMuY3NzVGV4dD0iIix0aGlzLmF0UnVsZT0hMSx0aGlzLnR5cGU9MCx0aGlzLmtleWZyYW1lc05hbWU9IiIsdGhpcy5zZWxlY3Rvcj0iIix0aGlzLnBhcnNlZFNlbGVjdG9yPSIifX1mdW5jdGlvbiBPZSh0KXtyZXR1cm4gemUoKGZ1bmN0aW9uIG4odCl7bGV0IGU9bmV3IFJlO2Uuc3RhcnQ9MCxlLmVuZD10Lmxlbmd0aDtsZXQgbj1lO2ZvcihsZXQgaT0wLHI9dC5sZW5ndGg7aTxyO2krKylpZih0W2ldPT09SGUpe24ucnVsZXN8fChuLnJ1bGVzPVtdKTtsZXQgdD1uLGU9dC5ydWxlc1t0LnJ1bGVzLmxlbmd0aC0xXXx8bnVsbDtuPW5ldyBSZSxuLnN0YXJ0PWkrMSxuLnBhcmVudD10LG4ucHJldmlvdXM9ZSx0LnJ1bGVzLnB1c2gobil9ZWxzZSB0W2ldPT09RmUmJihuLmVuZD1pKzEsbj1uLnBhcmVudHx8ZSk7cmV0dXJuIGV9KSh0PShmdW5jdGlvbiBlKHQpe3JldHVybiB0LnJlcGxhY2UoVmUuY29tbWVudHMsIiIpLnJlcGxhY2UoVmUucG9ydCwiIil9KSh0KSksdCl9ZnVuY3Rpb24gemUodCxlKXtsZXQgbj1lLnN1YnN0cmluZyh0LnN0YXJ0LHQuZW5kLTEpO2lmKHQucGFyc2VkQ3NzVGV4dD10LmNzc1RleHQ9bi50cmltKCksdC5wYXJlbnQpe249ZS5zdWJzdHJpbmcodC5wcmV2aW91cz90LnByZXZpb3VzLmVuZDp0LnBhcmVudC5zdGFydCx0LnN0YXJ0LTEpLG49KGZ1bmN0aW9uIGkodCl7cmV0dXJuIHQucmVwbGFjZSgvXFwoWzAtOWEtZl17MSw2fSlccy9naSwoZnVuY3Rpb24oKXtsZXQgdD1hcmd1bWVudHNbMV0sZT02LXQubGVuZ3RoO2Zvcig7ZS0tOyl0PSIwIit0O3JldHVybiJcXCIrdH0pKX0pKG4pLG49bi5yZXBsYWNlKFZlLm11bHRpcGxlU3BhY2VzLCIgIiksbj1uLnN1YnN0cmluZyhuLmxhc3RJbmRleE9mKCI7IikrMSk7bGV0IGk9dC5wYXJzZWRTZWxlY3Rvcj10LnNlbGVjdG9yPW4udHJpbSgpO3QuYXRSdWxlPTA9PT1pLmluZGV4T2YoR2UpLHQuYXRSdWxlPzA9PT1pLmluZGV4T2YoamUpP3QudHlwZT1CZS5NRURJQV9SVUxFOmkubWF0Y2goVmUua2V5ZnJhbWVzUnVsZSkmJih0LnR5cGU9QmUuS0VZRlJBTUVTX1JVTEUsdC5rZXlmcmFtZXNOYW1lPXQuc2VsZWN0b3Iuc3BsaXQoVmUubXVsdGlwbGVTcGFjZXMpLnBvcCgpKTp0LnR5cGU9MD09PWkuaW5kZXhPZihVZSk/QmUuTUlYSU5fUlVMRTpCZS5TVFlMRV9SVUxFfWxldCByPXQucnVsZXM7aWYocilmb3IobGV0IHQsbj0wLGk9ci5sZW5ndGg7bjxpJiYodD1yW25dKTtuKyspemUodCxlKTtyZXR1cm4gdH1mdW5jdGlvbiBEZSh0LGUsbj0iIil7bGV0IGk9IiI7aWYodC5jc3NUZXh0fHx0LnJ1bGVzKXtsZXQgbj10LnJ1bGVzO2lmKG4mJiEoZnVuY3Rpb24gcih0KXtsZXQgZT10WzBdO3JldHVybiBCb29sZWFuKGUpJiZCb29sZWFuKGUuc2VsZWN0b3IpJiYwPT09ZS5zZWxlY3Rvci5pbmRleE9mKFVlKX0pKG4pKWZvcihsZXQgdCxyPTAsbz1uLmxlbmd0aDtyPG8mJih0PW5bcl0pO3IrKylpPURlKHQsZSxpKTtlbHNlIGk9ZT90LmNzc1RleHQ6KGZ1bmN0aW9uIG8odCl7cmV0dXJuKGZ1bmN0aW9uIG4odCl7cmV0dXJuIHQucmVwbGFjZShWZS5taXhpbkFwcGx5LCIiKS5yZXBsYWNlKFZlLnZhckFwcGx5LCIiKX0pKHQ9KGZ1bmN0aW9uIGUodCl7cmV0dXJuIHQucmVwbGFjZShWZS5jdXN0b21Qcm9wLCIiKS5yZXBsYWNlKFZlLm1peGluUHJvcCwiIil9KSh0KSl9KSh0LmNzc1RleHQpLGk9aS50cmltKCksaSYmKGk9IiAgIitpKyJcbiIpfXJldHVybiBpJiYodC5zZWxlY3RvciYmKG4rPXQuc2VsZWN0b3IrIiAiK0hlKyJcbiIpLG4rPWksdC5zZWxlY3RvciYmKG4rPUZlKyJcblxuIikpLG59Y29uc3QgQmU9e1NUWUxFX1JVTEU6MSxLRVlGUkFNRVNfUlVMRTo3LE1FRElBX1JVTEU6NCxNSVhJTl9SVUxFOjFlM30sSGU9InsiLEZlPSJ9IixWZT17Y29tbWVudHM6L1wvXCpbXipdKlwqKyhbXi8qXVteKl0qXCorKSpcLy9naW0scG9ydDovQGltcG9ydFteO10qOy9naW0sY3VzdG9tUHJvcDovKD86XlteO1wtXHN9XSspPy0tW147e31dKj86W157fTtdKj8oPzpbO1xuXXwkKS9naW0sbWl4aW5Qcm9wOi8oPzpeW147XC1cc31dKyk/LS1bXjt7fV0qPzpbXnt9O10qP3tbXn1dKj99KD86Wztcbl18JCk/L2dpbSxtaXhpbkFwcGx5Oi9AYXBwbHlccypcKD9bXik7XSpcKT9ccyooPzpbO1xuXXwkKT8vZ2ltLHZhckFwcGx5Oi9bXjs6XSo/OlteO10qP3ZhclwoW147XSpcKSg/Ols7XG5dfCQpPy9naW0sa2V5ZnJhbWVzUnVsZTovXkBbXlxzXSprZXlmcmFtZXMvLG11bHRpcGxlU3BhY2VzOi9ccysvZ30sVWU9Ii0tIixqZT0iQG1lZGlhIixHZT0iQCIsV2U9Lyg/Ol58Wztcc3tdXHMqKSgtLVtcdy1dKj8pXHMqOlxzKig/OigoPzonKD86XFwnfC4pKj8nfCIoPzpcXCJ8LikqPyJ8XChbXildKj9cKXxbXn07e10pKyl8XHsoW159XSopXH0oPzooPz1bO1xzfV0pfCQpKS9naSxxZT0vKD86XnxcVyspQGFwcGx5XHMqXCg/KFteKTtcbl0qKVwpPy9naSxZZT0vQG1lZGlhXHMoLiopLyxYZT1uZXcgU2V0O2Z1bmN0aW9uICRlKHQpe2NvbnN0IGU9dC50ZXh0Q29udGVudDtpZighWGUuaGFzKGUpKXtYZS5hZGQoZSk7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO3Quc2V0QXR0cmlidXRlKCJzaGFkeS11bnNjb3BlZCIsIiIpLHQudGV4dENvbnRlbnQ9ZSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHQpfX1mdW5jdGlvbiBLZSh0KXtyZXR1cm4gdC5oYXNBdHRyaWJ1dGUoInNoYWR5LXVuc2NvcGVkIil9Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovZnVuY3Rpb24gWmUodCxlKXtyZXR1cm4gdD8oInN0cmluZyI9PXR5cGVvZiB0JiYodD1PZSh0KSksZSYmUWUodCxlKSxEZSh0LEllKSk6IiJ9ZnVuY3Rpb24gSmUodCl7cmV0dXJuIXQuX19jc3NSdWxlcyYmdC50ZXh0Q29udGVudCYmKHQuX19jc3NSdWxlcz1PZSh0LnRleHRDb250ZW50KSksdC5fX2Nzc1J1bGVzfHxudWxsfWZ1bmN0aW9uIFFlKHQsZSxuLGkpe2lmKCF0KXJldHVybjtsZXQgcj0hMSxvPXQudHlwZTtpZihpJiZvPT09QmUuTUVESUFfUlVMRSl7bGV0IGU9dC5zZWxlY3Rvci5tYXRjaChZZSk7ZSYmKHdpbmRvdy5tYXRjaE1lZGlhKGVbMV0pLm1hdGNoZXN8fChyPSEwKSl9bz09PUJlLlNUWUxFX1JVTEU/ZSh0KTpuJiZvPT09QmUuS0VZRlJBTUVTX1JVTEU/bih0KTpvPT09QmUuTUlYSU5fUlVMRSYmKHI9ITApO2xldCBhPXQucnVsZXM7aWYoYSYmIXIpZm9yKGxldCB0LHI9MCxvPWEubGVuZ3RoO3I8byYmKHQ9YVtyXSk7cisrKVFlKHQsZSxuLGkpfWZ1bmN0aW9uIHRuKHQsZSl7bGV0IG49dC5pbmRleE9mKCJ2YXIoIik7aWYoLTE9PT1uKXJldHVybiBlKHQsIiIsIiIsIiIpO2xldCBpPShmdW5jdGlvbiByKHQsZSl7bGV0IG49MDtmb3IobGV0IGk9ZSxyPXQubGVuZ3RoO2k8cjtpKyspaWYoIigiPT09dFtpXSluKys7ZWxzZSBpZigiKSI9PT10W2ldJiYwPT0tLW4pcmV0dXJuIGk7cmV0dXJuLTF9KSh0LG4rMyksbz10LnN1YnN0cmluZyhuKzQsaSksYT10LnN1YnN0cmluZygwLG4pLHM9dG4odC5zdWJzdHJpbmcoaSsxKSxlKSxsPW8uaW5kZXhPZigiLCIpO3JldHVybi0xPT09bD9lKGEsby50cmltKCksIiIscyk6ZShhLG8uc3Vic3RyaW5nKDAsbCkudHJpbSgpLG8uc3Vic3RyaW5nKGwrMSkudHJpbSgpLHMpfXdpbmRvdy5TaGFkeURPTSYmd2luZG93O2NvbnN0IGVuPSJjc3MtYnVpbGQiO2Z1bmN0aW9uIG5uKHQpe2lmKHZvaWQgMCE9PUxlKXJldHVybiBMZTtpZih2b2lkIDA9PT10Ll9fY3NzQnVpbGQpe2NvbnN0IGU9dC5nZXRBdHRyaWJ1dGUoZW4pO2lmKGUpdC5fX2Nzc0J1aWxkPWU7ZWxzZXtjb25zdCBlPShmdW5jdGlvbiBlKHQpe2NvbnN0IGU9InRlbXBsYXRlIj09PXQubG9jYWxOYW1lP3QuY29udGVudC5maXJzdENoaWxkOnQuZmlyc3RDaGlsZDtpZihlIGluc3RhbmNlb2YgQ29tbWVudCl7Y29uc3QgdD1lLnRleHRDb250ZW50LnRyaW0oKS5zcGxpdCgiOiIpO2lmKHRbMF09PT1lbilyZXR1cm4gdFsxXX1yZXR1cm4iIn0pKHQpOyIiIT09ZSYmKGZ1bmN0aW9uIG4odCl7Y29uc3QgZT0idGVtcGxhdGUiPT09dC5sb2NhbE5hbWU/dC5jb250ZW50LmZpcnN0Q2hpbGQ6dC5maXJzdENoaWxkO2UucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8pKHQpLHQuX19jc3NCdWlsZD1lfX1yZXR1cm4gdC5fX2Nzc0J1aWxkfHwiIn1mdW5jdGlvbiBybih0KXtyZXR1cm4iIiE9PW5uKHQpfWZ1bmN0aW9uIG9uKHQsZSl7Zm9yKGxldCBuIGluIGUpbnVsbD09PW4/dC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShuKTp0LnN0eWxlLnNldFByb3BlcnR5KG4sZVtuXSl9ZnVuY3Rpb24gYW4odCxlKXtjb25zdCBuPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLmdldFByb3BlcnR5VmFsdWUoZSk7cmV0dXJuIG4/bi50cmltKCk6IiJ9Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IHNuPS87XHMqL20sbG49L15ccyooaW5pdGlhbCl8KGluaGVyaXQpXHMqJC8sY249L1xzKiFpbXBvcnRhbnQvLHVuPSJfLV8iO2NsYXNzIGhue2NvbnN0cnVjdG9yKCl7dGhpcy5fbWFwPXt9fXNldCh0LGUpe3Q9dC50cmltKCksdGhpcy5fbWFwW3RdPXtwcm9wZXJ0aWVzOmUsZGVwZW5kYW50czp7fX19Z2V0KHQpe3JldHVybiB0PXQudHJpbSgpLHRoaXMuX21hcFt0XXx8bnVsbH19bGV0IGRuPW51bGw7Y2xhc3MgcG57Y29uc3RydWN0b3IoKXt0aGlzLl9jdXJyZW50RWxlbWVudD1udWxsLHRoaXMuX21lYXN1cmVFbGVtZW50PW51bGwsdGhpcy5fbWFwPW5ldyBobn1kZXRlY3RNaXhpbih0KXtyZXR1cm4oZnVuY3Rpb24gZSh0KXtjb25zdCBlPXFlLnRlc3QodCl8fFdlLnRlc3QodCk7cmV0dXJuIHFlLmxhc3RJbmRleD0wLFdlLmxhc3RJbmRleD0wLGV9KSh0KX1nYXRoZXJTdHlsZXModCl7Y29uc3QgZT0oZnVuY3Rpb24gbih0KXtjb25zdCBlPVtdLG49dC5xdWVyeVNlbGVjdG9yQWxsKCJzdHlsZSIpO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKXtjb25zdCBpPW5bdF07S2UoaSk/QWV8fCgkZShpKSxpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaSkpOihlLnB1c2goaS50ZXh0Q29udGVudCksaS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGkpKX1yZXR1cm4gZS5qb2luKCIiKS50cmltKCl9KSh0LmNvbnRlbnQpO2lmKGUpe2NvbnN0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtyZXR1cm4gbi50ZXh0Q29udGVudD1lLHQuY29udGVudC5pbnNlcnRCZWZvcmUobix0LmNvbnRlbnQuZmlyc3RDaGlsZCksbn1yZXR1cm4gbnVsbH10cmFuc2Zvcm1UZW1wbGF0ZSh0LGUpe3ZvaWQgMD09PXQuX2dhdGhlcmVkU3R5bGUmJih0Ll9nYXRoZXJlZFN0eWxlPXRoaXMuZ2F0aGVyU3R5bGVzKHQpKTtjb25zdCBuPXQuX2dhdGhlcmVkU3R5bGU7cmV0dXJuIG4/dGhpcy50cmFuc2Zvcm1TdHlsZShuLGUpOm51bGx9dHJhbnNmb3JtU3R5bGUodCxlPSIiKXtsZXQgbj1KZSh0KTtyZXR1cm4gdGhpcy50cmFuc2Zvcm1SdWxlcyhuLGUpLHQudGV4dENvbnRlbnQ9WmUobiksbn10cmFuc2Zvcm1DdXN0b21TdHlsZSh0KXtsZXQgZT1KZSh0KTtyZXR1cm4gUWUoZSwodD0+eyI6cm9vdCI9PT10LnNlbGVjdG9yJiYodC5zZWxlY3Rvcj0iaHRtbCIpLHRoaXMudHJhbnNmb3JtUnVsZSh0KX0pKSx0LnRleHRDb250ZW50PVplKGUpLGV9dHJhbnNmb3JtUnVsZXModCxlKXt0aGlzLl9jdXJyZW50RWxlbWVudD1lLFFlKHQsKHQ9Pnt0aGlzLnRyYW5zZm9ybVJ1bGUodCl9KSksdGhpcy5fY3VycmVudEVsZW1lbnQ9bnVsbH10cmFuc2Zvcm1SdWxlKHQpe3QuY3NzVGV4dD10aGlzLnRyYW5zZm9ybUNzc1RleHQodC5wYXJzZWRDc3NUZXh0LHQpLCI6cm9vdCI9PT10LnNlbGVjdG9yJiYodC5zZWxlY3Rvcj0iOmhvc3QgPiAqIil9dHJhbnNmb3JtQ3NzVGV4dCh0LGUpe3JldHVybiB0PXQucmVwbGFjZShXZSwoKHQsbixpLHIpPT50aGlzLl9wcm9kdWNlQ3NzUHJvcGVydGllcyh0LG4saSxyLGUpKSksdGhpcy5fY29uc3VtZUNzc1Byb3BlcnRpZXModCxlKX1fZ2V0SW5pdGlhbFZhbHVlRm9yUHJvcGVydHkodCl7cmV0dXJuIHRoaXMuX21lYXN1cmVFbGVtZW50fHwodGhpcy5fbWVhc3VyZUVsZW1lbnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibWV0YSIpLHRoaXMuX21lYXN1cmVFbGVtZW50LnNldEF0dHJpYnV0ZSgiYXBwbHktc2hpbS1tZWFzdXJlIiwiIiksdGhpcy5fbWVhc3VyZUVsZW1lbnQuc3R5bGUuYWxsPSJpbml0aWFsIixkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHRoaXMuX21lYXN1cmVFbGVtZW50KSksd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5fbWVhc3VyZUVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUodCl9X2ZhbGxiYWNrc0Zyb21QcmV2aW91c1J1bGVzKHQpe2xldCBlPXQ7Zm9yKDtlLnBhcmVudDspZT1lLnBhcmVudDtjb25zdCBuPXt9O2xldCBpPSExO3JldHVybiBRZShlLChlPT57aT1pfHxlPT09dCxpfHxlLnNlbGVjdG9yPT09dC5zZWxlY3RvciYmT2JqZWN0LmFzc2lnbihuLHRoaXMuX2Nzc1RleHRUb01hcChlLnBhcnNlZENzc1RleHQpKX0pKSxufV9jb25zdW1lQ3NzUHJvcGVydGllcyh0LGUpe2xldCBuPW51bGw7Zm9yKDtuPXFlLmV4ZWModCk7KXtsZXQgaT1uWzBdLHI9blsxXSxvPW4uaW5kZXgsYT1vK2kuaW5kZXhPZigiQGFwcGx5Iikscz1vK2kubGVuZ3RoLGw9dC5zbGljZSgwLGEpLGM9dC5zbGljZShzKSx1PWU/dGhpcy5fZmFsbGJhY2tzRnJvbVByZXZpb3VzUnVsZXMoZSk6e307T2JqZWN0LmFzc2lnbih1LHRoaXMuX2Nzc1RleHRUb01hcChsKSk7bGV0IGg9dGhpcy5fYXRBcHBseVRvQ3NzUHJvcGVydGllcyhyLHUpO3Q9YCR7bH0ke2h9JHtjfWAscWUubGFzdEluZGV4PW8raC5sZW5ndGh9cmV0dXJuIHR9X2F0QXBwbHlUb0Nzc1Byb3BlcnRpZXModCxlKXt0PXQucmVwbGFjZShzbiwiIik7bGV0IG49W10saT10aGlzLl9tYXAuZ2V0KHQpO2lmKGl8fCh0aGlzLl9tYXAuc2V0KHQse30pLGk9dGhpcy5fbWFwLmdldCh0KSksaSl7bGV0IHIsbyxhO3RoaXMuX2N1cnJlbnRFbGVtZW50JiYoaS5kZXBlbmRhbnRzW3RoaXMuX2N1cnJlbnRFbGVtZW50XT0hMCk7Y29uc3Qgcz1pLnByb3BlcnRpZXM7Zm9yKHIgaW4gcylhPWUmJmVbcl0sbz1bciwiOiB2YXIoIix0LHVuLHJdLGEmJm8ucHVzaCgiLCIsYS5yZXBsYWNlKGNuLCIiKSksby5wdXNoKCIpIiksY24udGVzdChzW3JdKSYmby5wdXNoKCIgIWltcG9ydGFudCIpLG4ucHVzaChvLmpvaW4oIiIpKX1yZXR1cm4gbi5qb2luKCI7ICIpfV9yZXBsYWNlSW5pdGlhbE9ySW5oZXJpdCh0LGUpe2xldCBuPWxuLmV4ZWMoZSk7cmV0dXJuIG4mJihlPW5bMV0/dGhpcy5fZ2V0SW5pdGlhbFZhbHVlRm9yUHJvcGVydHkodCk6ImFwcGx5LXNoaW0taW5oZXJpdCIpLGV9X2Nzc1RleHRUb01hcCh0LGU9ITEpe2xldCBuLGkscj10LnNwbGl0KCI7Iiksbz17fTtmb3IobGV0IHQsYSxzPTA7czxyLmxlbmd0aDtzKyspdD1yW3NdLHQmJihhPXQuc3BsaXQoIjoiKSxhLmxlbmd0aD4xJiYobj1hWzBdLnRyaW0oKSxpPWEuc2xpY2UoMSkuam9pbigiOiIpLGUmJihpPXRoaXMuX3JlcGxhY2VJbml0aWFsT3JJbmhlcml0KG4saSkpLG9bbl09aSkpO3JldHVybiBvfV9pbnZhbGlkYXRlTWl4aW5FbnRyeSh0KXtpZihkbilmb3IobGV0IGUgaW4gdC5kZXBlbmRhbnRzKWUhPT10aGlzLl9jdXJyZW50RWxlbWVudCYmZG4oZSl9X3Byb2R1Y2VDc3NQcm9wZXJ0aWVzKHQsZSxuLGkscil7aWYobiYmdG4obiwoKHQsZSk9PntlJiZ0aGlzLl9tYXAuZ2V0KGUpJiYoaT1gQGFwcGx5ICR7ZX07YCl9KSksIWkpcmV0dXJuIHQ7bGV0IG89dGhpcy5fY29uc3VtZUNzc1Byb3BlcnRpZXMoIiIraSxyKSxhPXQuc2xpY2UoMCx0LmluZGV4T2YoIi0tIikpLHM9dGhpcy5fY3NzVGV4dFRvTWFwKG8sITApLGw9cyxjPXRoaXMuX21hcC5nZXQoZSksdT1jJiZjLnByb3BlcnRpZXM7dT9sPU9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZSh1KSxzKTp0aGlzLl9tYXAuc2V0KGUsbCk7bGV0IGgsZCxwPVtdLGY9ITE7Zm9yKGggaW4gbClkPXNbaF0sdm9pZCAwPT09ZCYmKGQ9ImluaXRpYWwiKSx1JiYhKGggaW4gdSkmJihmPSEwKSxwLnB1c2goYCR7ZX1fLV8ke2h9OiAke2R9YCk7cmV0dXJuIGYmJnRoaXMuX2ludmFsaWRhdGVNaXhpbkVudHJ5KGMpLGMmJihjLnByb3BlcnRpZXM9bCksbiYmKGE9YCR7dH07JHthfWApLGAke2F9JHtwLmpvaW4oIjsgIil9O2B9fXBuLnByb3RvdHlwZS5kZXRlY3RNaXhpbj1wbi5wcm90b3R5cGUuZGV0ZWN0TWl4aW4scG4ucHJvdG90eXBlLnRyYW5zZm9ybVN0eWxlPXBuLnByb3RvdHlwZS50cmFuc2Zvcm1TdHlsZSxwbi5wcm90b3R5cGUudHJhbnNmb3JtQ3VzdG9tU3R5bGU9cG4ucHJvdG90eXBlLnRyYW5zZm9ybUN1c3RvbVN0eWxlLHBuLnByb3RvdHlwZS50cmFuc2Zvcm1SdWxlcz1wbi5wcm90b3R5cGUudHJhbnNmb3JtUnVsZXMscG4ucHJvdG90eXBlLnRyYW5zZm9ybVJ1bGU9cG4ucHJvdG90eXBlLnRyYW5zZm9ybVJ1bGUscG4ucHJvdG90eXBlLnRyYW5zZm9ybVRlbXBsYXRlPXBuLnByb3RvdHlwZS50cmFuc2Zvcm1UZW1wbGF0ZSxwbi5wcm90b3R5cGUuX3NlcGFyYXRvcj11bixPYmplY3QuZGVmaW5lUHJvcGVydHkocG4ucHJvdG90eXBlLCJpbnZhbGlkQ2FsbGJhY2siLHtnZXQ6KCk9PmRuLHNldCh0KXtkbj10fX0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBmbj17fSxtbj0iX2FwcGx5U2hpbUN1cnJlbnRWZXJzaW9uIixnbj0iX2FwcGx5U2hpbU5leHRWZXJzaW9uIixfbj0iX2FwcGx5U2hpbVZhbGlkYXRpbmdWZXJzaW9uIix5bj1Qcm9taXNlLnJlc29sdmUoKTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9mdW5jdGlvbiB2bih0KXtsZXQgZT1mblt0XTtlJiYoZnVuY3Rpb24gbih0KXt0W21uXT10W21uXXx8MCx0W19uXT10W19uXXx8MCx0W2duXT0odFtnbl18fDApKzF9KShlKX1mdW5jdGlvbiBibih0KXtyZXR1cm4gdFttbl09PT10W2duXX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KbGV0IHhuLHduPW51bGwsU249d2luZG93LkhUTUxJbXBvcnRzJiZ3aW5kb3cuSFRNTEltcG9ydHMud2hlblJlYWR5fHxudWxsO2Z1bmN0aW9uIE1uKHQpe3JlcXVlc3RBbmltYXRpb25GcmFtZSgoZnVuY3Rpb24oKXtTbj9Tbih0KTood258fCh3bj1uZXcgUHJvbWlzZSgodD0+e3huPXR9KSksImNvbXBsZXRlIj09PWRvY3VtZW50LnJlYWR5U3RhdGU/eG4oKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIiwoKCk9PnsiY29tcGxldGUiPT09ZG9jdW1lbnQucmVhZHlTdGF0ZSYmeG4oKX0pKSksd24udGhlbigoZnVuY3Rpb24oKXt0JiZ0KCl9KSkpfSkpfQovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL2NvbnN0IEVuPSJfX3NlZW5CeVNoYWR5Q1NTIixUbj0iX19zaGFkeUNTU0NhY2hlZFN0eWxlIjtsZXQgQ249bnVsbCxBbj1udWxsO2NsYXNzIGtue2NvbnN0cnVjdG9yKCl7dGhpcy5jdXN0b21TdHlsZXM9W10sdGhpcy5lbnF1ZXVlZD0hMSxNbigoKCk9Pnt3aW5kb3cuU2hhZHlDU1MuZmx1c2hDdXN0b21TdHlsZXMmJndpbmRvdy5TaGFkeUNTUy5mbHVzaEN1c3RvbVN0eWxlcygpfSkpfWVucXVldWVEb2N1bWVudFZhbGlkYXRpb24oKXshdGhpcy5lbnF1ZXVlZCYmQW4mJih0aGlzLmVucXVldWVkPSEwLE1uKEFuKSl9YWRkQ3VzdG9tU3R5bGUodCl7dFtFbl18fCh0W0VuXT0hMCx0aGlzLmN1c3RvbVN0eWxlcy5wdXNoKHQpLHRoaXMuZW5xdWV1ZURvY3VtZW50VmFsaWRhdGlvbigpKX1nZXRTdHlsZUZvckN1c3RvbVN0eWxlKHQpe2lmKHRbVG5dKXJldHVybiB0W1RuXTtsZXQgZTtyZXR1cm4gZT10LmdldFN0eWxlP3QuZ2V0U3R5bGUoKTp0LGV9cHJvY2Vzc1N0eWxlcygpe2NvbnN0IHQ9dGhpcy5jdXN0b21TdHlsZXM7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspe2NvbnN0IG49dFtlXTtpZihuW1RuXSljb250aW51ZTtjb25zdCBpPXRoaXMuZ2V0U3R5bGVGb3JDdXN0b21TdHlsZShuKTtpZihpKXtjb25zdCB0PWkuX19hcHBsaWVkRWxlbWVudHx8aTtDbiYmQ24odCksbltUbl09dH19cmV0dXJuIHR9fWtuLnByb3RvdHlwZS5hZGRDdXN0b21TdHlsZT1rbi5wcm90b3R5cGUuYWRkQ3VzdG9tU3R5bGUsa24ucHJvdG90eXBlLmdldFN0eWxlRm9yQ3VzdG9tU3R5bGU9a24ucHJvdG90eXBlLmdldFN0eWxlRm9yQ3VzdG9tU3R5bGUsa24ucHJvdG90eXBlLnByb2Nlc3NTdHlsZXM9a24ucHJvdG90eXBlLnByb2Nlc3NTdHlsZXMsT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoa24ucHJvdG90eXBlLHt0cmFuc2Zvcm1DYWxsYmFjazp7Z2V0OigpPT5DbixzZXQodCl7Q249dH19LHZhbGlkYXRlQ2FsbGJhY2s6e2dldDooKT0+QW4sc2V0KHQpe2xldCBlPSExO0FufHwoZT0hMCksQW49dCxlJiZ0aGlzLmVucXVldWVEb2N1bWVudFZhbGlkYXRpb24oKX19fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IExuPW5ldyBwbjtjbGFzcyBQbntjb25zdHJ1Y3Rvcigpe3RoaXMuY3VzdG9tU3R5bGVJbnRlcmZhY2U9bnVsbCxMbi5pbnZhbGlkQ2FsbGJhY2s9dm59ZW5zdXJlKCl7dGhpcy5jdXN0b21TdHlsZUludGVyZmFjZXx8d2luZG93LlNoYWR5Q1NTLkN1c3RvbVN0eWxlSW50ZXJmYWNlJiYodGhpcy5jdXN0b21TdHlsZUludGVyZmFjZT13aW5kb3cuU2hhZHlDU1MuQ3VzdG9tU3R5bGVJbnRlcmZhY2UsdGhpcy5jdXN0b21TdHlsZUludGVyZmFjZS50cmFuc2Zvcm1DYWxsYmFjaz10PT57TG4udHJhbnNmb3JtQ3VzdG9tU3R5bGUodCl9LHRoaXMuY3VzdG9tU3R5bGVJbnRlcmZhY2UudmFsaWRhdGVDYWxsYmFjaz0oKT0+e3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9Pnt0aGlzLmN1c3RvbVN0eWxlSW50ZXJmYWNlLmVucXVldWVkJiZ0aGlzLmZsdXNoQ3VzdG9tU3R5bGVzKCl9KSl9KX1wcmVwYXJlVGVtcGxhdGUodCxlKXtpZih0aGlzLmVuc3VyZSgpLHJuKHQpKXJldHVybjtmbltlXT10O2xldCBuPUxuLnRyYW5zZm9ybVRlbXBsYXRlKHQsZSk7dC5fc3R5bGVBc3Q9bn1mbHVzaEN1c3RvbVN0eWxlcygpe2lmKHRoaXMuZW5zdXJlKCksIXRoaXMuY3VzdG9tU3R5bGVJbnRlcmZhY2UpcmV0dXJuO2xldCB0PXRoaXMuY3VzdG9tU3R5bGVJbnRlcmZhY2UucHJvY2Vzc1N0eWxlcygpO2lmKHRoaXMuY3VzdG9tU3R5bGVJbnRlcmZhY2UuZW5xdWV1ZWQpe2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtsZXQgbj10aGlzLmN1c3RvbVN0eWxlSW50ZXJmYWNlLmdldFN0eWxlRm9yQ3VzdG9tU3R5bGUodFtlXSk7biYmTG4udHJhbnNmb3JtQ3VzdG9tU3R5bGUobil9dGhpcy5jdXN0b21TdHlsZUludGVyZmFjZS5lbnF1ZXVlZD0hMX19c3R5bGVTdWJ0cmVlKHQsZSl7aWYodGhpcy5lbnN1cmUoKSxlJiZvbih0LGUpLHQuc2hhZG93Um9vdCl7dGhpcy5zdHlsZUVsZW1lbnQodCk7bGV0IGU9dC5zaGFkb3dSb290LmNoaWxkcmVufHx0LnNoYWRvd1Jvb3QuY2hpbGROb2Rlcztmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl0aGlzLnN0eWxlU3VidHJlZShlW3RdKX1lbHNle2xldCBlPXQuY2hpbGRyZW58fHQuY2hpbGROb2Rlcztmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl0aGlzLnN0eWxlU3VidHJlZShlW3RdKX19c3R5bGVFbGVtZW50KHQpe3RoaXMuZW5zdXJlKCk7bGV0e2lzOmV9PShmdW5jdGlvbiBuKHQpe2xldCBlPXQubG9jYWxOYW1lLG49IiIsaT0iIjtyZXR1cm4gZT9lLmluZGV4T2YoIi0iKT4tMT9uPWU6KGk9ZSxuPXQuZ2V0QXR0cmlidXRlJiZ0LmdldEF0dHJpYnV0ZSgiaXMiKXx8IiIpOihuPXQuaXMsaT10LmV4dGVuZHMpLHtpczpuLHR5cGVFeHRlbnNpb246aX19KSh0KSxpPWZuW2VdO2lmKCghaXx8IXJuKGkpKSYmaSYmIWJuKGkpKXsoZnVuY3Rpb24gbih0KXtyZXR1cm4hYm4odCkmJnRbX25dPT09dFtnbl19KShpKXx8KHRoaXMucHJlcGFyZVRlbXBsYXRlKGksZSksKGZ1bmN0aW9uIHIodCl7dFtfbl09dFtnbl0sdC5fdmFsaWRhdGluZ3x8KHQuX3ZhbGlkYXRpbmc9ITAseW4udGhlbigoZnVuY3Rpb24oKXt0W21uXT10W2duXSx0Ll92YWxpZGF0aW5nPSExfSkpKX0pKGkpKTtsZXQgbz10LnNoYWRvd1Jvb3Q7aWYobyl7bGV0IHQ9by5xdWVyeVNlbGVjdG9yKCJzdHlsZSIpO3QmJih0Ll9fY3NzUnVsZXM9aS5fc3R5bGVBc3QsdC50ZXh0Q29udGVudD1aZShpLl9zdHlsZUFzdCkpfX19c3R5bGVEb2N1bWVudCh0KXt0aGlzLmVuc3VyZSgpLHRoaXMuc3R5bGVTdWJ0cmVlKGRvY3VtZW50LmJvZHksdCl9fWlmKCF3aW5kb3cuU2hhZHlDU1N8fCF3aW5kb3cuU2hhZHlDU1MuU2NvcGluZ1NoaW0pe2NvbnN0IHQ9bmV3IFBuO2xldCBlPXdpbmRvdy5TaGFkeUNTUyYmd2luZG93LlNoYWR5Q1NTLkN1c3RvbVN0eWxlSW50ZXJmYWNlO3dpbmRvdy5TaGFkeUNTUz17cHJlcGFyZVRlbXBsYXRlKGUsbixpKXt0LmZsdXNoQ3VzdG9tU3R5bGVzKCksdC5wcmVwYXJlVGVtcGxhdGUoZSxuKX0scHJlcGFyZVRlbXBsYXRlU3R5bGVzKHQsZSxuKXt3aW5kb3cuU2hhZHlDU1MucHJlcGFyZVRlbXBsYXRlKHQsZSxuKX0scHJlcGFyZVRlbXBsYXRlRG9tKHQsZSl7fSxzdHlsZVN1YnRyZWUoZSxuKXt0LmZsdXNoQ3VzdG9tU3R5bGVzKCksdC5zdHlsZVN1YnRyZWUoZSxuKX0sc3R5bGVFbGVtZW50KGUpe3QuZmx1c2hDdXN0b21TdHlsZXMoKSx0LnN0eWxlRWxlbWVudChlKX0sc3R5bGVEb2N1bWVudChlKXt0LmZsdXNoQ3VzdG9tU3R5bGVzKCksdC5zdHlsZURvY3VtZW50KGUpfSxnZXRDb21wdXRlZFN0eWxlVmFsdWU6KHQsZSk9PmFuKHQsZSksZmx1c2hDdXN0b21TdHlsZXMoKXt0LmZsdXNoQ3VzdG9tU3R5bGVzKCl9LG5hdGl2ZUNzczpJZSxuYXRpdmVTaGFkb3c6QWUsY3NzQnVpbGQ6TGUsZGlzYWJsZVJ1bnRpbWU6TmV9LGUmJih3aW5kb3cuU2hhZHlDU1MuQ3VzdG9tU3R5bGVJbnRlcmZhY2U9ZSl9d2luZG93LlNoYWR5Q1NTLkFwcGx5U2hpbT1MbjsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY2xhc3MgTm57Y29uc3RydWN0b3IoKXt0aGlzLl9hc3luY01vZHVsZT1udWxsLHRoaXMuX2NhbGxiYWNrPW51bGwsdGhpcy5fdGltZXI9bnVsbH1zZXRDb25maWcodCxlKXt0aGlzLl9hc3luY01vZHVsZT10LHRoaXMuX2NhbGxiYWNrPWUsdGhpcy5fdGltZXI9dGhpcy5fYXN5bmNNb2R1bGUucnVuKCgoKT0+e3RoaXMuX3RpbWVyPW51bGwsSW4uZGVsZXRlKHRoaXMpLHRoaXMuX2NhbGxiYWNrKCl9KSl9Y2FuY2VsKCl7dGhpcy5pc0FjdGl2ZSgpJiYodGhpcy5fY2FuY2VsQXN5bmMoKSxJbi5kZWxldGUodGhpcykpfV9jYW5jZWxBc3luYygpe3RoaXMuaXNBY3RpdmUoKSYmKHRoaXMuX2FzeW5jTW9kdWxlLmNhbmNlbCh0aGlzLl90aW1lciksdGhpcy5fdGltZXI9bnVsbCl9Zmx1c2goKXt0aGlzLmlzQWN0aXZlKCkmJih0aGlzLmNhbmNlbCgpLHRoaXMuX2NhbGxiYWNrKCkpfWlzQWN0aXZlKCl7cmV0dXJuIG51bGwhPXRoaXMuX3RpbWVyfXN0YXRpYyBkZWJvdW5jZSh0LGUsbil7cmV0dXJuIHQgaW5zdGFuY2VvZiBObj90Ll9jYW5jZWxBc3luYygpOnQ9bmV3IE5uLHQuc2V0Q29uZmlnKGUsbiksdH19bGV0IEluPW5ldyBTZXQ7Y29uc3QgUm49ZnVuY3Rpb24odCl7SW4uYWRkKHQpfSxPbj1mdW5jdGlvbigpe2NvbnN0IHQ9Qm9vbGVhbihJbi5zaXplKTtyZXR1cm4gSW4uZm9yRWFjaCgodD0+e3RyeXt0LmZsdXNoKCl9Y2F0Y2godCl7c2V0VGltZW91dCgoKCk9Pnt0aHJvdyB0fSkpfX0pKSx0fTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KbGV0IHpuPSJzdHJpbmciPT10eXBlb2YgZG9jdW1lbnQuaGVhZC5zdHlsZS50b3VjaEFjdGlvbixEbj0iX19wb2x5bWVyR2VzdHVyZXMiLEJuPSJfX3BvbHltZXJHZXN0dXJlc0hhbmRsZWQiLEhuPSJfX3BvbHltZXJHZXN0dXJlc1RvdWNoQWN0aW9uIixGbj1bIm1vdXNlZG93biIsIm1vdXNlbW92ZSIsIm1vdXNldXAiLCJjbGljayJdLFZuPVswLDEsNCwyXSxVbj0oZnVuY3Rpb24oKXt0cnl7cmV0dXJuIDE9PT1uZXcgTW91c2VFdmVudCgidGVzdCIse2J1dHRvbnM6MX0pLmJ1dHRvbnN9Y2F0Y2godCl7cmV0dXJuITF9fSkoKTtmdW5jdGlvbiBqbih0KXtyZXR1cm4gRm4uaW5kZXhPZih0KT4tMX1sZXQgR249ITE7ZnVuY3Rpb24gV24odCl7aWYoIWpuKHQpJiYidG91Y2hlbmQiIT09dClyZXR1cm4gem4mJkduJiZ2P3twYXNzaXZlOiEwfTp2b2lkIDB9IShmdW5jdGlvbigpe3RyeXtsZXQgdD1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQoKXtHbj0hMH19KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsbnVsbCx0KSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdCIsbnVsbCx0KX1jYXRjaCh0KXt9fSkoKTtsZXQgcW49bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvaVAoPzpbb2FdZHxob25lKXxBbmRyb2lkLyk7Y29uc3QgWW49W10sWG49e2J1dHRvbjohMCxpbnB1dDohMCxrZXlnZW46ITAsbWV0ZXI6ITAsb3V0cHV0OiEwLHRleHRhcmVhOiEwLHByb2dyZXNzOiEwLHNlbGVjdDohMH0sJG49e2J1dHRvbjohMCxjb21tYW5kOiEwLGZpZWxkc2V0OiEwLGlucHV0OiEwLGtleWdlbjohMCxvcHRncm91cDohMCxvcHRpb246ITAsc2VsZWN0OiEwLHRleHRhcmVhOiEwfTtmdW5jdGlvbiBLbih0KXtsZXQgZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0LmxhYmVsc3x8W10pO2lmKCFlLmxlbmd0aCl7ZT1bXTtsZXQgbj10LmdldFJvb3ROb2RlKCk7aWYodC5pZCl7bGV0IGk9bi5xdWVyeVNlbGVjdG9yQWxsKGBsYWJlbFtmb3IgPSAke3QuaWR9XWApO2ZvcihsZXQgdD0wO3Q8aS5sZW5ndGg7dCsrKWUucHVzaChpW3RdKX19cmV0dXJuIGV9bGV0IFpuPWZ1bmN0aW9uKHQpe2xldCBlPXQuc291cmNlQ2FwYWJpbGl0aWVzO2lmKCghZXx8ZS5maXJlc1RvdWNoRXZlbnRzKSYmKHRbQm5dPXtza2lwOiEwfSwiY2xpY2siPT09dC50eXBlKSl7bGV0IGU9ITEsbj1yaSh0KTtmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoO3QrKyl7aWYoblt0XS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFKWlmKCJsYWJlbCI9PT1uW3RdLmxvY2FsTmFtZSlZbi5wdXNoKG5bdF0pO2Vsc2UgaWYoWG5bblt0XS5sb2NhbE5hbWVdKXtsZXQgaT1LbihuW3RdKTtmb3IobGV0IHQ9MDt0PGkubGVuZ3RoO3QrKyllPWV8fFluLmluZGV4T2YoaVt0XSk+LTF9aWYoblt0XT09PXRpLm1vdXNlLnRhcmdldClyZXR1cm59aWYoZSlyZXR1cm47dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCl9fTtmdW5jdGlvbiBKbih0KXtsZXQgZT1xbj9bImNsaWNrIl06Rm47Zm9yKGxldCBuLGk9MDtpPGUubGVuZ3RoO2krKyluPWVbaV0sdD8oWW4ubGVuZ3RoPTAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihuLFpuLCEwKSk6ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihuLFpuLCEwKX1mdW5jdGlvbiBRbih0KXtsZXQgZT10LnR5cGU7aWYoIWpuKGUpKXJldHVybiExO2lmKCJtb3VzZW1vdmUiPT09ZSl7bGV0IGU9dm9pZCAwPT09dC5idXR0b25zPzE6dC5idXR0b25zO3JldHVybiB0IGluc3RhbmNlb2Ygd2luZG93Lk1vdXNlRXZlbnQmJiFVbiYmKGU9Vm5bdC53aGljaF18fDApLEJvb2xlYW4oMSZlKX1yZXR1cm4gMD09PSh2b2lkIDA9PT10LmJ1dHRvbj8wOnQuYnV0dG9uKX1sZXQgdGk9e21vdXNlOnt0YXJnZXQ6bnVsbCxtb3VzZUlnbm9yZUpvYjpudWxsfSx0b3VjaDp7eDowLHk6MCxpZDotMSxzY3JvbGxEZWNpZGVkOiExfX07ZnVuY3Rpb24gZWkodCxlLG4pe3QubW92ZWZuPWUsdC51cGZuPW4sZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixuKX1mdW5jdGlvbiBuaSh0KXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHQubW92ZWZuKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0LnVwZm4pLHQubW92ZWZuPW51bGwsdC51cGZuPW51bGx9ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLChmdW5jdGlvbiBpaSh0KXt0aS5tb3VzZS5tb3VzZUlnbm9yZUpvYnx8Sm4oITApLHRpLm1vdXNlLnRhcmdldD1yaSh0KVswXSx0aS5tb3VzZS5tb3VzZUlnbm9yZUpvYj1Obi5kZWJvdW5jZSh0aS5tb3VzZS5tb3VzZUlnbm9yZUpvYixndC5hZnRlcigyNTAwKSwoZnVuY3Rpb24oKXtKbigpLHRpLm1vdXNlLnRhcmdldD1udWxsLHRpLm1vdXNlLm1vdXNlSWdub3JlSm9iPW51bGx9KSl9KSwhIUduJiZ7cGFzc2l2ZTohMH0pO2NvbnN0IHJpPXdpbmRvdy5TaGFkeURPTSYmd2luZG93LlNoYWR5RE9NLm5vUGF0Y2g/d2luZG93LlNoYWR5RE9NLmNvbXBvc2VkUGF0aDp0PT50LmNvbXBvc2VkUGF0aCYmdC5jb21wb3NlZFBhdGgoKXx8W10sb2k9e30sYWk9W107ZnVuY3Rpb24gc2kodCl7Y29uc3QgZT1yaSh0KTtyZXR1cm4gZS5sZW5ndGg+MD9lWzBdOnQudGFyZ2V0fWZ1bmN0aW9uIGxpKHQpe2xldCBlLG49dC50eXBlLGk9dC5jdXJyZW50VGFyZ2V0W0RuXTtpZighaSlyZXR1cm47bGV0IHI9aVtuXTtpZihyKXtpZighdFtCbl0mJih0W0JuXT17fSwidG91Y2giPT09bi5zbGljZSgwLDUpKSl7bGV0IGU9KHQ9dCkuY2hhbmdlZFRvdWNoZXNbMF07aWYoInRvdWNoc3RhcnQiPT09biYmMT09PXQudG91Y2hlcy5sZW5ndGgmJih0aS50b3VjaC5pZD1lLmlkZW50aWZpZXIpLHRpLnRvdWNoLmlkIT09ZS5pZGVudGlmaWVyKXJldHVybjt6bnx8InRvdWNoc3RhcnQiIT09biYmInRvdWNobW92ZSIhPT1ufHwoZnVuY3Rpb24gbyh0KXtsZXQgZT10LmNoYW5nZWRUb3VjaGVzWzBdLG49dC50eXBlO2lmKCJ0b3VjaHN0YXJ0Ij09PW4pdGkudG91Y2gueD1lLmNsaWVudFgsdGkudG91Y2gueT1lLmNsaWVudFksdGkudG91Y2guc2Nyb2xsRGVjaWRlZD0hMTtlbHNlIGlmKCJ0b3VjaG1vdmUiPT09bil7aWYodGkudG91Y2guc2Nyb2xsRGVjaWRlZClyZXR1cm47dGkudG91Y2guc2Nyb2xsRGVjaWRlZD0hMDtsZXQgbj0oZnVuY3Rpb24gaSh0KXtsZXQgZT0iYXV0byIsbj1yaSh0KTtmb3IobGV0IHQsaT0wO2k8bi5sZW5ndGg7aSsrKWlmKHQ9bltpXSx0W0huXSl7ZT10W0huXTticmVha31yZXR1cm4gZX0pKHQpLGk9ITEscj1NYXRoLmFicyh0aS50b3VjaC54LWUuY2xpZW50WCksbz1NYXRoLmFicyh0aS50b3VjaC55LWUuY2xpZW50WSk7dC5jYW5jZWxhYmxlJiYoIm5vbmUiPT09bj9pPSEwOiJwYW4teCI9PT1uP2k9bz5yOiJwYW4teSI9PT1uJiYoaT1yPm8pKSxpP3QucHJldmVudERlZmF1bHQoKTpmaSgidHJhY2siKX19KSh0KX1pZihlPXRbQm5dLCFlLnNraXApe2ZvcihsZXQgbixpPTA7aTxhaS5sZW5ndGg7aSsrKW49YWlbaV0scltuLm5hbWVdJiYhZVtuLm5hbWVdJiZuLmZsb3cmJm4uZmxvdy5zdGFydC5pbmRleE9mKHQudHlwZSk+LTEmJm4ucmVzZXQmJm4ucmVzZXQoKTtmb3IobGV0IGksbz0wO288YWkubGVuZ3RoO28rKylpPWFpW29dLHJbaS5uYW1lXSYmIWVbaS5uYW1lXSYmKGVbaS5uYW1lXT0hMCxpW25dKHQpKX19fWZ1bmN0aW9uIGNpKHQsZSxuKXtyZXR1cm4hIW9pW2VdJiYoKGZ1bmN0aW9uIGkodCxlLG4pe2xldCBpPW9pW2VdLHI9aS5kZXBzLG89aS5uYW1lLGE9dFtEbl07YXx8KHRbRG5dPWE9e30pO2ZvcihsZXQgZSxuLGk9MDtpPHIubGVuZ3RoO2krKyllPXJbaV0scW4mJmpuKGUpJiYiY2xpY2siIT09ZXx8KG49YVtlXSxufHwoYVtlXT1uPXtfY291bnQ6MH0pLDA9PT1uLl9jb3VudCYmdC5hZGRFdmVudExpc3RlbmVyKGUsbGksV24oZSkpLG5bb109KG5bb118fDApKzEsbi5fY291bnQ9KG4uX2NvdW50fHwwKSsxKTt0LmFkZEV2ZW50TGlzdGVuZXIoZSxuKSxpLnRvdWNoQWN0aW9uJiZkaSh0LGkudG91Y2hBY3Rpb24pfSkodCxlLG4pLCEwKX1mdW5jdGlvbiB1aSh0LGUsbil7cmV0dXJuISFvaVtlXSYmKChmdW5jdGlvbiBpKHQsZSxuKXtsZXQgaT1vaVtlXSxyPWkuZGVwcyxvPWkubmFtZSxhPXRbRG5dO2lmKGEpZm9yKGxldCBlLG4saT0wO2k8ci5sZW5ndGg7aSsrKWU9cltpXSxuPWFbZV0sbiYmbltvXSYmKG5bb109KG5bb118fDEpLTEsbi5fY291bnQ9KG4uX2NvdW50fHwxKS0xLDA9PT1uLl9jb3VudCYmdC5yZW1vdmVFdmVudExpc3RlbmVyKGUsbGksV24oZSkpKTt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSxuKX0pKHQsZSxuKSwhMCl9ZnVuY3Rpb24gaGkodCl7YWkucHVzaCh0KTtmb3IobGV0IGU9MDtlPHQuZW1pdHMubGVuZ3RoO2UrKylvaVt0LmVtaXRzW2VdXT10fWZ1bmN0aW9uIGRpKHQsZSl7em4mJnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmdnQucnVuKCgoKT0+e3Quc3R5bGUudG91Y2hBY3Rpb249ZX0pKSx0W0huXT1lfWZ1bmN0aW9uIHBpKHQsZSxuKXtsZXQgaT1uZXcgRXZlbnQoZSx7YnViYmxlczohMCxjYW5jZWxhYmxlOiEwLGNvbXBvc2VkOiEwfSk7aWYoaS5kZXRhaWw9bixZKHQpLmRpc3BhdGNoRXZlbnQoaSksaS5kZWZhdWx0UHJldmVudGVkKXtsZXQgdD1uLnByZXZlbnRlcnx8bi5zb3VyY2VFdmVudDt0JiZ0LnByZXZlbnREZWZhdWx0JiZ0LnByZXZlbnREZWZhdWx0KCl9fWZ1bmN0aW9uIGZpKHQpe2xldCBlPShmdW5jdGlvbiBuKHQpe2ZvcihsZXQgZSxuPTA7bjxhaS5sZW5ndGg7bisrKXtlPWFpW25dO2ZvcihsZXQgbixpPTA7aTxlLmVtaXRzLmxlbmd0aDtpKyspaWYobj1lLmVtaXRzW2ldLG49PT10KXJldHVybiBlfXJldHVybiBudWxsfSkodCk7ZS5pbmZvJiYoZS5pbmZvLnByZXZlbnQ9ITApfWZ1bmN0aW9uIG1pKHQsZSxuLGkpe2UmJnBpKGUsdCx7eDpuLmNsaWVudFgseTpuLmNsaWVudFksc291cmNlRXZlbnQ6bixwcmV2ZW50ZXI6aSxwcmV2ZW50OmZ1bmN0aW9uKHQpe3JldHVybiBmaSh0KX19KX1mdW5jdGlvbiBnaSh0LGUsbil7aWYodC5wcmV2ZW50KXJldHVybiExO2lmKHQuc3RhcnRlZClyZXR1cm4hMDtsZXQgaT1NYXRoLmFicyh0LngtZSkscj1NYXRoLmFicyh0Lnktbik7cmV0dXJuIGk+PTV8fHI+PTV9ZnVuY3Rpb24gX2kodCxlLG4pe2lmKCFlKXJldHVybjtsZXQgaSxyPXQubW92ZXNbdC5tb3Zlcy5sZW5ndGgtMl0sbz10Lm1vdmVzW3QubW92ZXMubGVuZ3RoLTFdLGE9MDtyJiYoaT1vLngtci54LGE9by55LXIueSkscGkoZSwidHJhY2siLHtzdGF0ZTp0LnN0YXRlLHg6bi5jbGllbnRYLHk6bi5jbGllbnRZLGR4Om8ueC10LngsZHk6by55LXQueSxkZHg6aSxkZHk6YSxzb3VyY2VFdmVudDpuLGhvdmVyOmZ1bmN0aW9uKCl7cmV0dXJuKGZ1bmN0aW9uIHQoZSxuKXtsZXQgaT1kb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KGUsbikscj1pO2Zvcig7ciYmci5zaGFkb3dSb290JiYhd2luZG93LlNoYWR5RE9NOyl7bGV0IHQ9cjtpZihyPXIuc2hhZG93Um9vdC5lbGVtZW50RnJvbVBvaW50KGUsbiksdD09PXIpYnJlYWs7ciYmKGk9cil9cmV0dXJuIGl9KShuLmNsaWVudFgsbi5jbGllbnRZKX19KX1mdW5jdGlvbiB5aSh0LGUsbil7bGV0IGk9TWF0aC5hYnMoZS5jbGllbnRYLXQueCkscj1NYXRoLmFicyhlLmNsaWVudFktdC55KSxvPXNpKG58fGUpOyFvfHwkbltvLmxvY2FsTmFtZV0mJm8uaGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpfHwoaXNOYU4oaSl8fGlzTmFOKHIpfHxpPD0yNSYmcjw9MjV8fChmdW5jdGlvbiBhKHQpe2lmKCJjbGljayI9PT10LnR5cGUpe2lmKDA9PT10LmRldGFpbClyZXR1cm4hMDtsZXQgZT1zaSh0KTtpZighZS5ub2RlVHlwZXx8ZS5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFKXJldHVybiEwO2xldCBuPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaT10LnBhZ2VYLHI9dC5wYWdlWTtyZXR1cm4hKGk+PW4ubGVmdCYmaTw9bi5yaWdodCYmcj49bi50b3AmJnI8PW4uYm90dG9tKX1yZXR1cm4hMX0pKGUpKSYmKHQucHJldmVudHx8cGkobywidGFwIix7eDplLmNsaWVudFgseTplLmNsaWVudFksc291cmNlRXZlbnQ6ZSxwcmV2ZW50ZXI6bn0pKX1oaSh7bmFtZToiZG93bnVwIixkZXBzOlsibW91c2Vkb3duIiwidG91Y2hzdGFydCIsInRvdWNoZW5kIl0sZmxvdzp7c3RhcnQ6WyJtb3VzZWRvd24iLCJ0b3VjaHN0YXJ0Il0sZW5kOlsibW91c2V1cCIsInRvdWNoZW5kIl19LGVtaXRzOlsiZG93biIsInVwIl0saW5mbzp7bW92ZWZuOm51bGwsdXBmbjpudWxsfSxyZXNldDpmdW5jdGlvbigpe25pKHRoaXMuaW5mbyl9LG1vdXNlZG93bjpmdW5jdGlvbih0KXtpZighUW4odCkpcmV0dXJuO2xldCBlPXNpKHQpLG49dGhpcztlaSh0aGlzLmluZm8sKGZ1bmN0aW9uIHQoaSl7UW4oaSl8fChtaSgidXAiLGUsaSksbmkobi5pbmZvKSl9KSwoZnVuY3Rpb24gdChpKXtRbihpKSYmbWkoInVwIixlLGkpLG5pKG4uaW5mbyl9KSksbWkoImRvd24iLGUsdCl9LHRvdWNoc3RhcnQ6ZnVuY3Rpb24odCl7bWkoImRvd24iLHNpKHQpLHQuY2hhbmdlZFRvdWNoZXNbMF0sdCl9LHRvdWNoZW5kOmZ1bmN0aW9uKHQpe21pKCJ1cCIsc2kodCksdC5jaGFuZ2VkVG91Y2hlc1swXSx0KX19KSxoaSh7bmFtZToidHJhY2siLHRvdWNoQWN0aW9uOiJub25lIixkZXBzOlsibW91c2Vkb3duIiwidG91Y2hzdGFydCIsInRvdWNobW92ZSIsInRvdWNoZW5kIl0sZmxvdzp7c3RhcnQ6WyJtb3VzZWRvd24iLCJ0b3VjaHN0YXJ0Il0sZW5kOlsibW91c2V1cCIsInRvdWNoZW5kIl19LGVtaXRzOlsidHJhY2siXSxpbmZvOnt4OjAseTowLHN0YXRlOiJzdGFydCIsc3RhcnRlZDohMSxtb3ZlczpbXSxhZGRNb3ZlOmZ1bmN0aW9uKHQpe3RoaXMubW92ZXMubGVuZ3RoPjImJnRoaXMubW92ZXMuc2hpZnQoKSx0aGlzLm1vdmVzLnB1c2godCl9LG1vdmVmbjpudWxsLHVwZm46bnVsbCxwcmV2ZW50OiExfSxyZXNldDpmdW5jdGlvbigpe3RoaXMuaW5mby5zdGF0ZT0ic3RhcnQiLHRoaXMuaW5mby5zdGFydGVkPSExLHRoaXMuaW5mby5tb3Zlcz1bXSx0aGlzLmluZm8ueD0wLHRoaXMuaW5mby55PTAsdGhpcy5pbmZvLnByZXZlbnQ9ITEsbmkodGhpcy5pbmZvKX0sbW91c2Vkb3duOmZ1bmN0aW9uKHQpe2lmKCFRbih0KSlyZXR1cm47bGV0IGU9c2kodCksbj10aGlzLGk9ZnVuY3Rpb24gdChpKXtsZXQgcj1pLmNsaWVudFgsbz1pLmNsaWVudFk7Z2kobi5pbmZvLHIsbykmJihuLmluZm8uc3RhdGU9bi5pbmZvLnN0YXJ0ZWQ/Im1vdXNldXAiPT09aS50eXBlPyJlbmQiOiJ0cmFjayI6InN0YXJ0Iiwic3RhcnQiPT09bi5pbmZvLnN0YXRlJiZmaSgidGFwIiksbi5pbmZvLmFkZE1vdmUoe3g6cix5Om99KSxRbihpKXx8KG4uaW5mby5zdGF0ZT0iZW5kIixuaShuLmluZm8pKSxlJiZfaShuLmluZm8sZSxpKSxuLmluZm8uc3RhcnRlZD0hMCl9O2VpKHRoaXMuaW5mbyxpLChmdW5jdGlvbiB0KGUpe24uaW5mby5zdGFydGVkJiZpKGUpLG5pKG4uaW5mbyl9KSksdGhpcy5pbmZvLng9dC5jbGllbnRYLHRoaXMuaW5mby55PXQuY2xpZW50WX0sdG91Y2hzdGFydDpmdW5jdGlvbih0KXtsZXQgZT10LmNoYW5nZWRUb3VjaGVzWzBdO3RoaXMuaW5mby54PWUuY2xpZW50WCx0aGlzLmluZm8ueT1lLmNsaWVudFl9LHRvdWNobW92ZTpmdW5jdGlvbih0KXtsZXQgZT1zaSh0KSxuPXQuY2hhbmdlZFRvdWNoZXNbMF0saT1uLmNsaWVudFgscj1uLmNsaWVudFk7Z2kodGhpcy5pbmZvLGkscikmJigic3RhcnQiPT09dGhpcy5pbmZvLnN0YXRlJiZmaSgidGFwIiksdGhpcy5pbmZvLmFkZE1vdmUoe3g6aSx5OnJ9KSxfaSh0aGlzLmluZm8sZSxuKSx0aGlzLmluZm8uc3RhdGU9InRyYWNrIix0aGlzLmluZm8uc3RhcnRlZD0hMCl9LHRvdWNoZW5kOmZ1bmN0aW9uKHQpe2xldCBlPXNpKHQpLG49dC5jaGFuZ2VkVG91Y2hlc1swXTt0aGlzLmluZm8uc3RhcnRlZCYmKHRoaXMuaW5mby5zdGF0ZT0iZW5kIix0aGlzLmluZm8uYWRkTW92ZSh7eDpuLmNsaWVudFgseTpuLmNsaWVudFl9KSxfaSh0aGlzLmluZm8sZSxuKSl9fSksaGkoe25hbWU6InRhcCIsZGVwczpbIm1vdXNlZG93biIsImNsaWNrIiwidG91Y2hzdGFydCIsInRvdWNoZW5kIl0sZmxvdzp7c3RhcnQ6WyJtb3VzZWRvd24iLCJ0b3VjaHN0YXJ0Il0sZW5kOlsiY2xpY2siLCJ0b3VjaGVuZCJdfSxlbWl0czpbInRhcCJdLGluZm86e3g6TmFOLHk6TmFOLHByZXZlbnQ6ITF9LHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5pbmZvLng9TmFOLHRoaXMuaW5mby55PU5hTix0aGlzLmluZm8ucHJldmVudD0hMX0sbW91c2Vkb3duOmZ1bmN0aW9uKHQpe1FuKHQpJiYodGhpcy5pbmZvLng9dC5jbGllbnRYLHRoaXMuaW5mby55PXQuY2xpZW50WSl9LGNsaWNrOmZ1bmN0aW9uKHQpe1FuKHQpJiZ5aSh0aGlzLmluZm8sdCl9LHRvdWNoc3RhcnQ6ZnVuY3Rpb24odCl7Y29uc3QgZT10LmNoYW5nZWRUb3VjaGVzWzBdO3RoaXMuaW5mby54PWUuY2xpZW50WCx0aGlzLmluZm8ueT1lLmNsaWVudFl9LHRvdWNoZW5kOmZ1bmN0aW9uKHQpe3lpKHRoaXMuaW5mbyx0LmNoYW5nZWRUb3VjaGVzWzBdLHQpfX0pO2NvbnN0IHZpPXNpLGJpPUkoKHQ9PmNsYXNzIGV4dGVuZHMgdHtfYWRkRXZlbnRMaXN0ZW5lclRvTm9kZSh0LGUsbil7Y2kodCxlLG4pfHxzdXBlci5fYWRkRXZlbnRMaXN0ZW5lclRvTm9kZSh0LGUsbil9X3JlbW92ZUV2ZW50TGlzdGVuZXJGcm9tTm9kZSh0LGUsbil7dWkodCxlLG4pfHxzdXBlci5fcmVtb3ZlRXZlbnRMaXN0ZW5lckZyb21Ob2RlKHQsZSxuKX19KSkseGk9Lzpob3N0XCg6ZGlyXCgobHRyfHJ0bClcKVwpL2csd2k9LyhbXHNcdy0jXC5cW1xdXCpdKik6ZGlyXCgobHRyfHJ0bClcKS9nLFNpPS86ZGlyXCgoPzpsdHJ8cnRsKVwpLyxNaT1Cb29sZWFuKHdpbmRvdy5TaGFkeURPTSYmd2luZG93LlNoYWR5RE9NLmluVXNlKSxFaT1bXTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9sZXQgVGk9bnVsbCxDaT0iIjtmdW5jdGlvbiBBaSgpe0NpPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRpciIpfWZ1bmN0aW9uIGtpKHQpe2lmKCF0Ll9fYXV0b0Rpck9wdE91dCl7dC5zZXRBdHRyaWJ1dGUoImRpciIsQ2kpfX1mdW5jdGlvbiBMaSgpe0FpKCksQ2k9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgiZGlyIik7Zm9yKGxldCB0PTA7dDxFaS5sZW5ndGg7dCsrKWtpKEVpW3RdKX1jb25zdCBQaT1JKCh0PT57TWl8fFRpfHwoQWkoKSxUaT1uZXcgTXV0YXRpb25PYnNlcnZlcihMaSksVGkub2JzZXJ2ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQse2F0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOlsiZGlyIl19KSk7Y29uc3QgZT1NdCh0KTtjbGFzcyBuIGV4dGVuZHMgZXtzdGF0aWMgX3Byb2Nlc3NTdHlsZVRleHQodCxuKXtyZXR1cm4gdD1lLl9wcm9jZXNzU3R5bGVUZXh0LmNhbGwodGhpcyx0LG4pLCFNaSYmU2kudGVzdCh0KSYmKHQ9dGhpcy5fcmVwbGFjZURpckluQ3NzVGV4dCh0KSx0aGlzLl9fYWN0aXZhdGVEaXI9ITApLHR9c3RhdGljIF9yZXBsYWNlRGlySW5Dc3NUZXh0KHQpe2xldCBlPXQ7cmV0dXJuIGU9ZS5yZXBsYWNlKHhpLCc6aG9zdChbZGlyPSIkMSJdKScpLGU9ZS5yZXBsYWNlKHdpLCc6aG9zdChbZGlyPSIkMiJdKSAkMScpLGV9Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX19hdXRvRGlyT3B0T3V0PSExfXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLl9fYXV0b0Rpck9wdE91dD10aGlzLmhhc0F0dHJpYnV0ZSgiZGlyIil9Y29ubmVjdGVkQ2FsbGJhY2soKXtlLnByb3RvdHlwZS5jb25uZWN0ZWRDYWxsYmFjayYmc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmNvbnN0cnVjdG9yLl9fYWN0aXZhdGVEaXImJighKGZ1bmN0aW9uIHQoKXtUaSYmVGkudGFrZVJlY29yZHMoKS5sZW5ndGgmJkxpKCl9KSgpLEVpLnB1c2godGhpcyksa2kodGhpcykpfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7aWYoZS5wcm90b3R5cGUuZGlzY29ubmVjdGVkQ2FsbGJhY2smJnN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jb25zdHJ1Y3Rvci5fX2FjdGl2YXRlRGlyKXtjb25zdCB0PUVpLmluZGV4T2YodGhpcyk7dD4tMSYmRWkuc3BsaWNlKHQsMSl9fX1yZXR1cm4gbi5fX2FjdGl2YXRlRGlyPSExLG59KSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovbGV0IE5pPSExLElpPVtdLFJpPVtdO2Z1bmN0aW9uIE9pKCl7Tmk9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbigpe05pPSExLChmdW5jdGlvbiB0KGUpe2Zvcig7ZS5sZW5ndGg7KXppKGUuc2hpZnQoKSl9KShJaSksc2V0VGltZW91dCgoZnVuY3Rpb24oKXshKGZ1bmN0aW9uIHQoZSl7Zm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0PG47dCsrKXppKGUuc2hpZnQoKSl9KShSaSl9KSl9KSl9ZnVuY3Rpb24gemkodCl7Y29uc3QgZT10WzBdLG49dFsxXSxpPXRbMl07dHJ5e24uYXBwbHkoZSxpKX1jYXRjaCh0KXtzZXRUaW1lb3V0KCgoKT0+e3Rocm93IHR9KSl9fWZ1bmN0aW9uIERpKHQsZSxuKXtOaXx8T2koKSxSaS5wdXNoKFt0LGUsbl0pfQovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL2Z1bmN0aW9uIEJpKCl7ZG9jdW1lbnQuYm9keS5yZW1vdmVBdHRyaWJ1dGUoInVucmVzb2x2ZWQiKX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KZnVuY3Rpb24gSGkodCxlLG4pe3JldHVybntpbmRleDp0LHJlbW92ZWQ6ZSxhZGRlZENvdW50Om59fSJpbnRlcmFjdGl2ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlfHwiY29tcGxldGUiPT09ZG9jdW1lbnQucmVhZHlTdGF0ZT9CaSgpOndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixCaSk7ZnVuY3Rpb24gRmkodCxlLG4saSxyLG8pe2xldCBhLHM9MCxsPTAsYz1NYXRoLm1pbihuLWUsby1yKTtpZigwPT1lJiYwPT1yJiYocz0oZnVuY3Rpb24gdSh0LGUsbil7Zm9yKGxldCBpPTA7aTxuO2krKylpZighVWkodFtpXSxlW2ldKSlyZXR1cm4gaTtyZXR1cm4gbn0pKHQsaSxjKSksbj09dC5sZW5ndGgmJm89PWkubGVuZ3RoJiYobD0oZnVuY3Rpb24gaCh0LGUsbil7bGV0IGk9dC5sZW5ndGgscj1lLmxlbmd0aCxvPTA7Zm9yKDtvPG4mJlVpKHRbLS1pXSxlWy0tcl0pOylvKys7cmV0dXJuIG99KSh0LGksYy1zKSkscis9cyxvLT1sLChuLT1sKS0oZSs9cyk9PTAmJm8tcj09MClyZXR1cm5bXTtpZihlPT1uKXtmb3IoYT1IaShlLFtdLDApO3I8bzspYS5yZW1vdmVkLnB1c2goaVtyKytdKTtyZXR1cm5bYV19aWYocj09bylyZXR1cm5bSGkoZSxbXSxuLWUpXTtsZXQgZD0oZnVuY3Rpb24gZih0KXtsZXQgZT10Lmxlbmd0aC0xLG49dFswXS5sZW5ndGgtMSxpPXRbZV1bbl0scj1bXTtmb3IoO2U+MHx8bj4wOyl7aWYoMD09ZSl7ci5wdXNoKDIpLG4tLTtjb250aW51ZX1pZigwPT1uKXtyLnB1c2goMyksZS0tO2NvbnRpbnVlfWxldCBvLGE9dFtlLTFdW24tMV0scz10W2UtMV1bbl0sbD10W2VdW24tMV07bz1zPGw/czxhP3M6YTpsPGE/bDphLG89PWE/KGE9PWk/ci5wdXNoKDApOihyLnB1c2goMSksaT1hKSxlLS0sbi0tKTpvPT1zPyhyLnB1c2goMyksZS0tLGk9cyk6KHIucHVzaCgyKSxuLS0saT1sKX1yZXR1cm4gci5yZXZlcnNlKCkscn0pKChmdW5jdGlvbiBwKHQsZSxuLGkscixvKXtsZXQgYT1vLXIrMSxzPW4tZSsxLGw9bmV3IEFycmF5KGEpO2ZvcihsZXQgdD0wO3Q8YTt0KyspbFt0XT1uZXcgQXJyYXkocyksbFt0XVswXT10O2ZvcihsZXQgdD0wO3Q8czt0KyspbFswXVt0XT10O2ZvcihsZXQgbj0xO248YTtuKyspZm9yKGxldCBvPTE7bzxzO28rKylpZihVaSh0W2Urby0xXSxpW3Irbi0xXSkpbFtuXVtvXT1sW24tMV1bby0xXTtlbHNle2xldCB0PWxbbi0xXVtvXSsxLGU9bFtuXVtvLTFdKzE7bFtuXVtvXT10PGU/dDplfXJldHVybiBsfSkodCxlLG4saSxyLG8pKTthPXZvaWQgMDtsZXQgbT1bXSxnPWUsXz1yO2ZvcihsZXQgdD0wO3Q8ZC5sZW5ndGg7dCsrKXN3aXRjaChkW3RdKXtjYXNlIDA6YSYmKG0ucHVzaChhKSxhPXZvaWQgMCksZysrLF8rKzticmVhaztjYXNlIDE6YXx8KGE9SGkoZyxbXSwwKSksYS5hZGRlZENvdW50KyssZysrLGEucmVtb3ZlZC5wdXNoKGlbX10pLF8rKzticmVhaztjYXNlIDI6YXx8KGE9SGkoZyxbXSwwKSksYS5hZGRlZENvdW50KyssZysrO2JyZWFrO2Nhc2UgMzphfHwoYT1IaShnLFtdLDApKSxhLnJlbW92ZWQucHVzaChpW19dKSxfKyt9cmV0dXJuIGEmJm0ucHVzaChhKSxtfWZ1bmN0aW9uIFZpKHQsZSl7cmV0dXJuIEZpKHQsMCx0Lmxlbmd0aCxlLDAsZS5sZW5ndGgpfWZ1bmN0aW9uIFVpKHQsZSl7cmV0dXJuIHQ9PT1lfQovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL2Z1bmN0aW9uIGppKHQpe3JldHVybiJzbG90Ij09PXQubG9jYWxOYW1lfWxldCBHaT1jbGFzc3tzdGF0aWMgZ2V0RmxhdHRlbmVkTm9kZXModCl7Y29uc3QgZT1ZKHQpO3JldHVybiBqaSh0KT8odD10LGUuYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjohMH0pKTpBcnJheS5mcm9tKGUuY2hpbGROb2RlcykubWFwKCh0PT5qaSh0KT9ZKHQ9dCkuYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjohMH0pOlt0XSkpLnJlZHVjZSgoKHQsZSk9PnQuY29uY2F0KGUpKSxbXSl9Y29uc3RydWN0b3IodCxlKXt0aGlzLl9zaGFkeUNoaWxkcmVuT2JzZXJ2ZXI9bnVsbCx0aGlzLl9uYXRpdmVDaGlsZHJlbk9ic2VydmVyPW51bGwsdGhpcy5fY29ubmVjdGVkPSExLHRoaXMuX3RhcmdldD10LHRoaXMuY2FsbGJhY2s9ZSx0aGlzLl9lZmZlY3RpdmVOb2Rlcz1bXSx0aGlzLl9vYnNlcnZlcj1udWxsLHRoaXMuX3NjaGVkdWxlZD0hMSx0aGlzLl9ib3VuZFNjaGVkdWxlPSgpPT57dGhpcy5fc2NoZWR1bGUoKX0sdGhpcy5jb25uZWN0KCksdGhpcy5fc2NoZWR1bGUoKX1jb25uZWN0KCl7amkodGhpcy5fdGFyZ2V0KT90aGlzLl9saXN0ZW5TbG90cyhbdGhpcy5fdGFyZ2V0XSk6WSh0aGlzLl90YXJnZXQpLmNoaWxkcmVuJiYodGhpcy5fbGlzdGVuU2xvdHMoWSh0aGlzLl90YXJnZXQpLmNoaWxkcmVuKSx3aW5kb3cuU2hhZHlET00/dGhpcy5fc2hhZHlDaGlsZHJlbk9ic2VydmVyPXdpbmRvdy5TaGFkeURPTS5vYnNlcnZlQ2hpbGRyZW4odGhpcy5fdGFyZ2V0LCh0PT57dGhpcy5fcHJvY2Vzc011dGF0aW9ucyh0KX0pKToodGhpcy5fbmF0aXZlQ2hpbGRyZW5PYnNlcnZlcj1uZXcgTXV0YXRpb25PYnNlcnZlcigodD0+e3RoaXMuX3Byb2Nlc3NNdXRhdGlvbnModCl9KSksdGhpcy5fbmF0aXZlQ2hpbGRyZW5PYnNlcnZlci5vYnNlcnZlKHRoaXMuX3RhcmdldCx7Y2hpbGRMaXN0OiEwfSkpKSx0aGlzLl9jb25uZWN0ZWQ9ITB9ZGlzY29ubmVjdCgpe2ppKHRoaXMuX3RhcmdldCk/dGhpcy5fdW5saXN0ZW5TbG90cyhbdGhpcy5fdGFyZ2V0XSk6WSh0aGlzLl90YXJnZXQpLmNoaWxkcmVuJiYodGhpcy5fdW5saXN0ZW5TbG90cyhZKHRoaXMuX3RhcmdldCkuY2hpbGRyZW4pLHdpbmRvdy5TaGFkeURPTSYmdGhpcy5fc2hhZHlDaGlsZHJlbk9ic2VydmVyPyh3aW5kb3cuU2hhZHlET00udW5vYnNlcnZlQ2hpbGRyZW4odGhpcy5fc2hhZHlDaGlsZHJlbk9ic2VydmVyKSx0aGlzLl9zaGFkeUNoaWxkcmVuT2JzZXJ2ZXI9bnVsbCk6dGhpcy5fbmF0aXZlQ2hpbGRyZW5PYnNlcnZlciYmKHRoaXMuX25hdGl2ZUNoaWxkcmVuT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMuX25hdGl2ZUNoaWxkcmVuT2JzZXJ2ZXI9bnVsbCkpLHRoaXMuX2Nvbm5lY3RlZD0hMX1fc2NoZWR1bGUoKXt0aGlzLl9zY2hlZHVsZWR8fCh0aGlzLl9zY2hlZHVsZWQ9ITAsdnQucnVuKCgoKT0+dGhpcy5mbHVzaCgpKSkpfV9wcm9jZXNzTXV0YXRpb25zKHQpe3RoaXMuX3Byb2Nlc3NTbG90TXV0YXRpb25zKHQpLHRoaXMuZmx1c2goKX1fcHJvY2Vzc1Nsb3RNdXRhdGlvbnModCl7aWYodClmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl7bGV0IG49dFtlXTtuLmFkZGVkTm9kZXMmJnRoaXMuX2xpc3RlblNsb3RzKG4uYWRkZWROb2Rlcyksbi5yZW1vdmVkTm9kZXMmJnRoaXMuX3VubGlzdGVuU2xvdHMobi5yZW1vdmVkTm9kZXMpfX1mbHVzaCgpe2lmKCF0aGlzLl9jb25uZWN0ZWQpcmV0dXJuITE7d2luZG93LlNoYWR5RE9NJiZTaGFkeURPTS5mbHVzaCgpLHRoaXMuX25hdGl2ZUNoaWxkcmVuT2JzZXJ2ZXI/dGhpcy5fcHJvY2Vzc1Nsb3RNdXRhdGlvbnModGhpcy5fbmF0aXZlQ2hpbGRyZW5PYnNlcnZlci50YWtlUmVjb3JkcygpKTp0aGlzLl9zaGFkeUNoaWxkcmVuT2JzZXJ2ZXImJnRoaXMuX3Byb2Nlc3NTbG90TXV0YXRpb25zKHRoaXMuX3NoYWR5Q2hpbGRyZW5PYnNlcnZlci50YWtlUmVjb3JkcygpKSx0aGlzLl9zY2hlZHVsZWQ9ITE7bGV0IHQ9e3RhcmdldDp0aGlzLl90YXJnZXQsYWRkZWROb2RlczpbXSxyZW1vdmVkTm9kZXM6W119LGU9dGhpcy5jb25zdHJ1Y3Rvci5nZXRGbGF0dGVuZWROb2Rlcyh0aGlzLl90YXJnZXQpLG49VmkoZSx0aGlzLl9lZmZlY3RpdmVOb2Rlcyk7Zm9yKGxldCBlLGk9MDtpPG4ubGVuZ3RoJiYoZT1uW2ldKTtpKyspZm9yKGxldCBuLGk9MDtpPGUucmVtb3ZlZC5sZW5ndGgmJihuPWUucmVtb3ZlZFtpXSk7aSsrKXQucmVtb3ZlZE5vZGVzLnB1c2gobik7Zm9yKGxldCBpLHI9MDtyPG4ubGVuZ3RoJiYoaT1uW3JdKTtyKyspZm9yKGxldCBuPWkuaW5kZXg7bjxpLmluZGV4K2kuYWRkZWRDb3VudDtuKyspdC5hZGRlZE5vZGVzLnB1c2goZVtuXSk7dGhpcy5fZWZmZWN0aXZlTm9kZXM9ZTtsZXQgaT0hMTtyZXR1cm4odC5hZGRlZE5vZGVzLmxlbmd0aHx8dC5yZW1vdmVkTm9kZXMubGVuZ3RoKSYmKGk9ITAsdGhpcy5jYWxsYmFjay5jYWxsKHRoaXMuX3RhcmdldCx0KSksaX1fbGlzdGVuU2xvdHModCl7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspe2xldCBuPXRbZV07amkobikmJm4uYWRkRXZlbnRMaXN0ZW5lcigic2xvdGNoYW5nZSIsdGhpcy5fYm91bmRTY2hlZHVsZSl9fV91bmxpc3RlblNsb3RzKHQpe2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtsZXQgbj10W2VdO2ppKG4pJiZuLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNsb3RjaGFuZ2UiLHRoaXMuX2JvdW5kU2NoZWR1bGUpfX19OwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL2NvbnN0IFdpPWZ1bmN0aW9uKCl7bGV0IHQsZTtkb3t0PXdpbmRvdy5TaGFkeURPTSYmU2hhZHlET00uZmx1c2goKSx3aW5kb3cuU2hhZHlDU1MmJndpbmRvdy5TaGFkeUNTUy5TY29waW5nU2hpbSYmd2luZG93LlNoYWR5Q1NTLlNjb3BpbmdTaGltLmZsdXNoKCksZT1PbigpfXdoaWxlKHR8fGUpfSxxaT1FbGVtZW50LnByb3RvdHlwZSxZaT1xaS5tYXRjaGVzfHxxaS5tYXRjaGVzU2VsZWN0b3J8fHFpLm1vek1hdGNoZXNTZWxlY3Rvcnx8cWkubXNNYXRjaGVzU2VsZWN0b3J8fHFpLm9NYXRjaGVzU2VsZWN0b3J8fHFpLndlYmtpdE1hdGNoZXNTZWxlY3RvcixYaT1mdW5jdGlvbih0LGUpe3JldHVybiBZaS5jYWxsKHQsZSl9OwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL2NsYXNzICRpe2NvbnN0cnVjdG9yKHQpe3dpbmRvdy5TaGFkeURPTSYmd2luZG93LlNoYWR5RE9NLmluVXNlJiZ3aW5kb3cuU2hhZHlET00ucGF0Y2godCksdGhpcy5ub2RlPXR9b2JzZXJ2ZU5vZGVzKHQpe3JldHVybiBuZXcgR2kodGhpcy5ub2RlLHQpfXVub2JzZXJ2ZU5vZGVzKHQpe3QuZGlzY29ubmVjdCgpfW5vdGlmeU9ic2VydmVyKCl7fWRlZXBDb250YWlucyh0KXtpZihZKHRoaXMubm9kZSkuY29udGFpbnModCkpcmV0dXJuITA7bGV0IGU9dCxuPXQub3duZXJEb2N1bWVudDtmb3IoO2UmJmUhPT1uJiZlIT09dGhpcy5ub2RlOyllPVkoZSkucGFyZW50Tm9kZXx8WShlKS5ob3N0O3JldHVybiBlPT09dGhpcy5ub2RlfWdldE93bmVyUm9vdCgpe3JldHVybiBZKHRoaXMubm9kZSkuZ2V0Um9vdE5vZGUoKX1nZXREaXN0cmlidXRlZE5vZGVzKCl7cmV0dXJuInNsb3QiPT09dGhpcy5ub2RlLmxvY2FsTmFtZT9ZKHRoaXMubm9kZSkuYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjohMH0pOltdfWdldERlc3RpbmF0aW9uSW5zZXJ0aW9uUG9pbnRzKCl7bGV0IHQ9W10sZT1ZKHRoaXMubm9kZSkuYXNzaWduZWRTbG90O2Zvcig7ZTspdC5wdXNoKGUpLGU9WShlKS5hc3NpZ25lZFNsb3Q7cmV0dXJuIHR9aW1wb3J0Tm9kZSh0LGUpe2xldCBuPXRoaXMubm9kZSBpbnN0YW5jZW9mIERvY3VtZW50P3RoaXMubm9kZTp0aGlzLm5vZGUub3duZXJEb2N1bWVudDtyZXR1cm4gWShuKS5pbXBvcnROb2RlKHQsZSl9Z2V0RWZmZWN0aXZlQ2hpbGROb2Rlcygpe3JldHVybiBHaS5nZXRGbGF0dGVuZWROb2Rlcyh0aGlzLm5vZGUpfXF1ZXJ5RGlzdHJpYnV0ZWRFbGVtZW50cyh0KXtsZXQgZT10aGlzLmdldEVmZmVjdGl2ZUNoaWxkTm9kZXMoKSxuPVtdO2ZvcihsZXQgaSxyPTAsbz1lLmxlbmd0aDtyPG8mJihpPWVbcl0pO3IrKylpLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJlhpKGksdCkmJm4ucHVzaChpKTtyZXR1cm4gbn1nZXQgYWN0aXZlRWxlbWVudCgpe2xldCB0PXRoaXMubm9kZTtyZXR1cm4gdm9pZCAwIT09dC5fYWN0aXZlRWxlbWVudD90Ll9hY3RpdmVFbGVtZW50OnQuYWN0aXZlRWxlbWVudH19ZnVuY3Rpb24gS2kodCxlKXtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyl7bGV0IGk9ZVtuXTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxpLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlW2ldfSxjb25maWd1cmFibGU6ITB9KX19Y2xhc3MgWml7Y29uc3RydWN0b3IodCl7dGhpcy5ldmVudD10fWdldCByb290VGFyZ2V0KCl7cmV0dXJuIHRoaXMucGF0aFswXX1nZXQgbG9jYWxUYXJnZXQoKXtyZXR1cm4gdGhpcy5ldmVudC50YXJnZXR9Z2V0IHBhdGgoKXtyZXR1cm4gdGhpcy5ldmVudC5jb21wb3NlZFBhdGgoKX19bGV0IEppPSRpO2lmKHdpbmRvdy5TaGFkeURPTSYmd2luZG93LlNoYWR5RE9NLmluVXNlJiZ3aW5kb3cuU2hhZHlET00ubm9QYXRjaCYmd2luZG93LlNoYWR5RE9NLldyYXBwZXIpe2NsYXNzIHQgZXh0ZW5kcyB3aW5kb3cuU2hhZHlET00uV3JhcHBlcnt9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoJGkucHJvdG90eXBlKS5mb3JFYWNoKChlPT57ImFjdGl2ZUVsZW1lbnQiIT1lJiYodC5wcm90b3R5cGVbZV09JGkucHJvdG90eXBlW2VdKX0pKSxLaSh0LnByb3RvdHlwZSxbImNsYXNzTGlzdCJdKSxKaT10LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFppLnByb3RvdHlwZSx7bG9jYWxUYXJnZXQ6e2dldCgpe2NvbnN0IHQ9dGhpcy5ldmVudC5jdXJyZW50VGFyZ2V0LGU9dCYmZXIodCkuZ2V0T3duZXJSb290KCksbj10aGlzLnBhdGg7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kyspe2NvbnN0IGk9blt0XTtpZihlcihpKS5nZXRPd25lclJvb3QoKT09PWUpcmV0dXJuIGl9fSxjb25maWd1cmFibGU6ITB9LHBhdGg6e2dldCgpe3JldHVybiB3aW5kb3cuU2hhZHlET00uY29tcG9zZWRQYXRoKHRoaXMuZXZlbnQpfSxjb25maWd1cmFibGU6ITB9fSl9ZWxzZSEoZnVuY3Rpb24gUWkodCxlKXtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyl7bGV0IGk9ZVtuXTt0W2ldPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZVtpXS5hcHBseSh0aGlzLm5vZGUsYXJndW1lbnRzKX19fSkoJGkucHJvdG90eXBlLFsiY2xvbmVOb2RlIiwiYXBwZW5kQ2hpbGQiLCJpbnNlcnRCZWZvcmUiLCJyZW1vdmVDaGlsZCIsInJlcGxhY2VDaGlsZCIsInNldEF0dHJpYnV0ZSIsInJlbW92ZUF0dHJpYnV0ZSIsInF1ZXJ5U2VsZWN0b3IiLCJxdWVyeVNlbGVjdG9yQWxsIl0pLEtpKCRpLnByb3RvdHlwZSxbInBhcmVudE5vZGUiLCJmaXJzdENoaWxkIiwibGFzdENoaWxkIiwibmV4dFNpYmxpbmciLCJwcmV2aW91c1NpYmxpbmciLCJmaXJzdEVsZW1lbnRDaGlsZCIsImxhc3RFbGVtZW50Q2hpbGQiLCJuZXh0RWxlbWVudFNpYmxpbmciLCJwcmV2aW91c0VsZW1lbnRTaWJsaW5nIiwiY2hpbGROb2RlcyIsImNoaWxkcmVuIiwiY2xhc3NMaXN0Il0pLChmdW5jdGlvbiB0cih0LGUpe2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXtsZXQgaT1lW25dO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGkse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGVbaV19LHNldDpmdW5jdGlvbih0KXt0aGlzLm5vZGVbaV09dH0sY29uZmlndXJhYmxlOiEwfSl9fSkoJGkucHJvdG90eXBlLFsidGV4dENvbnRlbnQiLCJpbm5lckhUTUwiLCJjbGFzc05hbWUiXSk7Y29uc3QgZXI9ZnVuY3Rpb24odCl7aWYoKHQ9dHx8ZG9jdW1lbnQpaW5zdGFuY2VvZiBKaSlyZXR1cm4gdDtpZih0IGluc3RhbmNlb2YgWmkpcmV0dXJuIHQ7bGV0IGU9dC5fX2RvbUFwaTtyZXR1cm4gZXx8KGU9dCBpbnN0YW5jZW9mIEV2ZW50P25ldyBaaSh0KTpuZXcgSmkodCksdC5fX2RvbUFwaT1lKSxlfSxucj13aW5kb3cuU2hhZHlET00saXI9d2luZG93LlNoYWR5Q1NTOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTkgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL2Z1bmN0aW9uIHJyKHQsZSl7cmV0dXJuIFkodCkuZ2V0Um9vdE5vZGUoKT09PWV9Ci8qKgogICAgICogQGZpbGVvdmVydmlldwogICAgICogQHN1cHByZXNzIHtjaGVja1Byb3RvdHlwYWxUeXBlc30KICAgICAqIEBsaWNlbnNlIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICAgKiBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kCiAgICAgKiBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5CiAgICAgKiBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5CiAgICAgKiBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQCiAgICAgKiByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAgKi8KY29uc3Qgb3I9ImRpc2FibGUtdXBncmFkZSIsYXI9dD0+e2Zvcig7dDspe2NvbnN0IGU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LCJvYnNlcnZlZEF0dHJpYnV0ZXMiKTtpZihlKXJldHVybiBlLmdldDt0PU9iamVjdC5nZXRQcm90b3R5cGVPZih0LnByb3RvdHlwZSkuY29uc3RydWN0b3J9cmV0dXJuKCk9PltdfTtJKCh0PT57Y29uc3QgZT15ZSh0KTtsZXQgbj1hcihlKTtyZXR1cm4gY2xhc3MgZXh0ZW5kcyBle2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1zdGF0aWMgZ2V0IG9ic2VydmVkQXR0cmlidXRlcygpe3JldHVybiBuLmNhbGwodGhpcykuY29uY2F0KG9yKX1faW5pdGlhbGl6ZVByb3BlcnRpZXMoKXt0aGlzLmhhc0F0dHJpYnV0ZShvcik/dGhpcy5fX2lzVXBncmFkZURpc2FibGVkPSEwOnN1cGVyLl9pbml0aWFsaXplUHJvcGVydGllcygpfV9lbmFibGVQcm9wZXJ0aWVzKCl7dGhpcy5fX2lzVXBncmFkZURpc2FibGVkfHxzdXBlci5fZW5hYmxlUHJvcGVydGllcygpfV9jYW5BcHBseVByb3BlcnR5RGVmYXVsdCh0KXtyZXR1cm4gc3VwZXIuX2NhbkFwcGx5UHJvcGVydHlEZWZhdWx0KHQpJiYhKHRoaXMuX19pc1VwZ3JhZGVEaXNhYmxlZCYmdGhpcy5faXNQcm9wZXJ0eVBlbmRpbmcodCkpfWF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0LGUsbixpKXt0PT1vcj90aGlzLl9faXNVcGdyYWRlRGlzYWJsZWQmJm51bGw9PW4mJihzdXBlci5faW5pdGlhbGl6ZVByb3BlcnRpZXMoKSx0aGlzLl9faXNVcGdyYWRlRGlzYWJsZWQ9ITEsWSh0aGlzKS5pc0Nvbm5lY3RlZCYmc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSk6c3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHQsZSxuLGkpfWNvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5fX2lzVXBncmFkZURpc2FibGVkfHxzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5fX2lzVXBncmFkZURpc2FibGVkfHxzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfX19KSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IHNyPSJkaXNhYmxlLXVwZ3JhZGUiO2xldCBscj13aW5kb3cuU2hhZHlDU1M7Y29uc3QgY3I9SSgodD0+e2NvbnN0IGU9YmkoeWUodCkpLG49X2U/ZTpQaShlKSxpPWFyKG4pLHI9e3g6InBhbi14Iix5OiJwYW4teSIsbm9uZToibm9uZSIsYWxsOiJhdXRvIn07Y2xhc3MgbyBleHRlbmRzIG57Y29uc3RydWN0b3IoKXtzdXBlcigpfXN0YXRpYyBnZXQgaW1wb3J0TWV0YSgpe3JldHVybiB0aGlzLnByb3RvdHlwZS5pbXBvcnRNZXRhfWNyZWF0ZWQoKXt9X19hdHRyaWJ1dGVSZWFjdGlvbih0LGUsbil7KHRoaXMuX19kYXRhQXR0cmlidXRlcyYmdGhpcy5fX2RhdGFBdHRyaWJ1dGVzW3RdfHx0PT09c3IpJiZ0aGlzLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0LGUsbixudWxsKX1zZXRBdHRyaWJ1dGUodCxlKXtpZihMJiYhdGhpcy5fbGVnYWN5Rm9yY2VPYnNlcnZlZEF0dHJpYnV0ZXMpe2NvbnN0IG49dGhpcy5nZXRBdHRyaWJ1dGUodCk7c3VwZXIuc2V0QXR0cmlidXRlKHQsZSksdGhpcy5fX2F0dHJpYnV0ZVJlYWN0aW9uKHQsbixTdHJpbmcoZSkpfWVsc2Ugc3VwZXIuc2V0QXR0cmlidXRlKHQsZSl9cmVtb3ZlQXR0cmlidXRlKHQpe2lmKEwmJiF0aGlzLl9sZWdhY3lGb3JjZU9ic2VydmVkQXR0cmlidXRlcyl7Y29uc3QgZT10aGlzLmdldEF0dHJpYnV0ZSh0KTtzdXBlci5yZW1vdmVBdHRyaWJ1dGUodCksdGhpcy5fX2F0dHJpYnV0ZVJlYWN0aW9uKHQsZSxudWxsKX1lbHNlIHN1cGVyLnJlbW92ZUF0dHJpYnV0ZSh0KX1zdGF0aWMgZ2V0IG9ic2VydmVkQXR0cmlidXRlcygpe3JldHVybiBMJiYhdGhpcy5wcm90b3R5cGUuX2xlZ2FjeUZvcmNlT2JzZXJ2ZWRBdHRyaWJ1dGVzPyh0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9fb2JzZXJ2ZWRBdHRyaWJ1dGVzIix0aGlzKSl8fCh0aGlzLl9fb2JzZXJ2ZWRBdHRyaWJ1dGVzPVtdKSx0aGlzLl9fb2JzZXJ2ZWRBdHRyaWJ1dGVzKTppLmNhbGwodGhpcykuY29uY2F0KHNyKX1fZW5hYmxlUHJvcGVydGllcygpe3RoaXMuX19pc1VwZ3JhZGVEaXNhYmxlZHx8c3VwZXIuX2VuYWJsZVByb3BlcnRpZXMoKX1fY2FuQXBwbHlQcm9wZXJ0eURlZmF1bHQodCl7cmV0dXJuIHN1cGVyLl9jYW5BcHBseVByb3BlcnR5RGVmYXVsdCh0KSYmISh0aGlzLl9faXNVcGdyYWRlRGlzYWJsZWQmJnRoaXMuX2lzUHJvcGVydHlQZW5kaW5nKHQpKX1jb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuX19uZWVkc0F0dHJpYnV0ZXNBdENvbm5lY3RlZCYmdGhpcy5fdGFrZUF0dHJpYnV0ZXMoKSx0aGlzLl9faXNVcGdyYWRlRGlzYWJsZWR8fChzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuaXNBdHRhY2hlZD0hMCx0aGlzLmF0dGFjaGVkKCkpfWF0dGFjaGVkKCl7fWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5fX2lzVXBncmFkZURpc2FibGVkfHwoc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmlzQXR0YWNoZWQ9ITEsdGhpcy5kZXRhY2hlZCgpKX1kZXRhY2hlZCgpe31hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodCxlLG4saSl7ZSE9PW4mJih0PT1zcj90aGlzLl9faXNVcGdyYWRlRGlzYWJsZWQmJm51bGw9PW4mJih0aGlzLl9pbml0aWFsaXplUHJvcGVydGllcygpLHRoaXMuX19pc1VwZ3JhZGVEaXNhYmxlZD0hMSxZKHRoaXMpLmlzQ29ubmVjdGVkJiZ0aGlzLmNvbm5lY3RlZENhbGxiYWNrKCkpOihzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodCxlLG4saSksdGhpcy5hdHRyaWJ1dGVDaGFuZ2VkKHQsZSxuKSkpfWF0dHJpYnV0ZUNoYW5nZWQodCxlLG4pe31faW5pdGlhbGl6ZVByb3BlcnRpZXMoKXtpZih3JiZ0aGlzLmhhc0F0dHJpYnV0ZShzcikpdGhpcy5fX2lzVXBncmFkZURpc2FibGVkPSEwO2Vsc2V7bGV0IHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpO3QuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiX19oYXNSZWdpc3RlckZpbmlzaGVkIix0KSl8fCh0aGlzLl9yZWdpc3RlcmVkKCksdC5fX2hhc1JlZ2lzdGVyRmluaXNoZWQ9ITApLHN1cGVyLl9pbml0aWFsaXplUHJvcGVydGllcygpLHRoaXMucm9vdD10aGlzLHRoaXMuY3JlYXRlZCgpLEwmJiF0aGlzLl9sZWdhY3lGb3JjZU9ic2VydmVkQXR0cmlidXRlcyYmKHRoaXMuaGFzQXR0cmlidXRlcygpP3RoaXMuX3Rha2VBdHRyaWJ1dGVzKCk6dGhpcy5wYXJlbnROb2RlfHwodGhpcy5fX25lZWRzQXR0cmlidXRlc0F0Q29ubmVjdGVkPSEwKSksdGhpcy5fYXBwbHlMaXN0ZW5lcnMoKX19X3Rha2VBdHRyaWJ1dGVzKCl7Y29uc3QgdD10aGlzLmF0dHJpYnV0ZXM7Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXtjb25zdCBuPXRbZV07dGhpcy5fX2F0dHJpYnV0ZVJlYWN0aW9uKG4ubmFtZSxudWxsLG4udmFsdWUpfX1fcmVnaXN0ZXJlZCgpe31yZWFkeSgpe3RoaXMuX2Vuc3VyZUF0dHJpYnV0ZXMoKSxzdXBlci5yZWFkeSgpfV9lbnN1cmVBdHRyaWJ1dGVzKCl7fV9hcHBseUxpc3RlbmVycygpe31zZXJpYWxpemUodCl7cmV0dXJuIHRoaXMuX3NlcmlhbGl6ZVZhbHVlKHQpfWRlc2VyaWFsaXplKHQsZSl7cmV0dXJuIHRoaXMuX2Rlc2VyaWFsaXplVmFsdWUodCxlKX1yZWZsZWN0UHJvcGVydHlUb0F0dHJpYnV0ZSh0LGUsbil7dGhpcy5fcHJvcGVydHlUb0F0dHJpYnV0ZSh0LGUsbil9c2VyaWFsaXplVmFsdWVUb0F0dHJpYnV0ZSh0LGUsbil7dGhpcy5fdmFsdWVUb05vZGVBdHRyaWJ1dGUobnx8dGhpcyx0LGUpfWV4dGVuZCh0LGUpe2lmKCF0fHwhZSlyZXR1cm4gdHx8ZTtsZXQgbj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhlKTtmb3IobGV0IGkscj0wO3I8bi5sZW5ndGgmJihpPW5bcl0pO3IrKyl7bGV0IG49T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLGkpO24mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGksbil9cmV0dXJuIHR9bWl4aW4odCxlKXtmb3IobGV0IG4gaW4gZSl0W25dPWVbbl07cmV0dXJuIHR9Y2hhaW5PYmplY3QodCxlKXtyZXR1cm4gdCYmZSYmdCE9PWUmJih0Ll9fcHJvdG9fXz1lKSx0fWluc3RhbmNlVGVtcGxhdGUodCl7bGV0IGU9dGhpcy5jb25zdHJ1Y3Rvci5fY29udGVudEZvclRlbXBsYXRlKHQpO3JldHVybiBkb2N1bWVudC5pbXBvcnROb2RlKGUsITApfWZpcmUodCxlLG4pe249bnx8e30sZT1udWxsPT1lP3t9OmU7bGV0IGk9bmV3IEV2ZW50KHQse2J1YmJsZXM6dm9pZCAwPT09bi5idWJibGVzfHxuLmJ1YmJsZXMsY2FuY2VsYWJsZTpCb29sZWFuKG4uY2FuY2VsYWJsZSksY29tcG9zZWQ6dm9pZCAwPT09bi5jb21wb3NlZHx8bi5jb21wb3NlZH0pO3JldHVybiBpLmRldGFpbD1lLFkobi5ub2RlfHx0aGlzKS5kaXNwYXRjaEV2ZW50KGkpLGl9bGlzdGVuKHQsZSxuKXt0PXR8fHRoaXM7bGV0IGk9dGhpcy5fX2JvdW5kTGlzdGVuZXJzfHwodGhpcy5fX2JvdW5kTGlzdGVuZXJzPW5ldyBXZWFrTWFwKSxyPWkuZ2V0KHQpO3J8fChyPXt9LGkuc2V0KHQscikpO2xldCBvPWUrbjtyW29dfHwocltvXT10aGlzLl9hZGRNZXRob2RFdmVudExpc3RlbmVyVG9Ob2RlKHQsZSxuLHRoaXMpKX11bmxpc3Rlbih0LGUsbil7dD10fHx0aGlzO2xldCBpPXRoaXMuX19ib3VuZExpc3RlbmVycyYmdGhpcy5fX2JvdW5kTGlzdGVuZXJzLmdldCh0KSxyPWUrbixvPWkmJmlbcl07byYmKHRoaXMuX3JlbW92ZUV2ZW50TGlzdGVuZXJGcm9tTm9kZSh0LGUsbyksaVtyXT1udWxsKX1zZXRTY3JvbGxEaXJlY3Rpb24odCxlKXtkaShlfHx0aGlzLHJbdF18fCJhdXRvIil9JCQodCl7cmV0dXJuIHRoaXMucm9vdC5xdWVyeVNlbGVjdG9yKHQpfWdldCBkb21Ib3N0KCl7bGV0IHQ9WSh0aGlzKS5nZXRSb290Tm9kZSgpO3JldHVybiB0IGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudD90Lmhvc3Q6dH1kaXN0cmlidXRlQ29udGVudCgpe2NvbnN0IHQ9ZXIodGhpcyk7d2luZG93LlNoYWR5RE9NJiZ0LnNoYWRvd1Jvb3QmJlNoYWR5RE9NLmZsdXNoKCl9Z2V0RWZmZWN0aXZlQ2hpbGROb2Rlcygpe3JldHVybiBlcih0aGlzKS5nZXRFZmZlY3RpdmVDaGlsZE5vZGVzKCl9cXVlcnlEaXN0cmlidXRlZEVsZW1lbnRzKHQpe3JldHVybiBlcih0aGlzKS5xdWVyeURpc3RyaWJ1dGVkRWxlbWVudHModCl9Z2V0RWZmZWN0aXZlQ2hpbGRyZW4oKXtyZXR1cm4gdGhpcy5nZXRFZmZlY3RpdmVDaGlsZE5vZGVzKCkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFfSkpfWdldEVmZmVjdGl2ZVRleHRDb250ZW50KCl7bGV0IHQ9dGhpcy5nZXRFZmZlY3RpdmVDaGlsZE5vZGVzKCksZT1bXTtmb3IobGV0IG4saT0wO249dFtpXTtpKyspbi5ub2RlVHlwZSE9PU5vZGUuQ09NTUVOVF9OT0RFJiZlLnB1c2gobi50ZXh0Q29udGVudCk7cmV0dXJuIGUuam9pbigiIil9cXVlcnlFZmZlY3RpdmVDaGlsZHJlbih0KXtsZXQgZT10aGlzLnF1ZXJ5RGlzdHJpYnV0ZWRFbGVtZW50cyh0KTtyZXR1cm4gZSYmZVswXX1xdWVyeUFsbEVmZmVjdGl2ZUNoaWxkcmVuKHQpe3JldHVybiB0aGlzLnF1ZXJ5RGlzdHJpYnV0ZWRFbGVtZW50cyh0KX1nZXRDb250ZW50Q2hpbGROb2Rlcyh0KXtsZXQgZT10aGlzLnJvb3QucXVlcnlTZWxlY3Rvcih0fHwic2xvdCIpO3JldHVybiBlP2VyKGUpLmdldERpc3RyaWJ1dGVkTm9kZXMoKTpbXX1nZXRDb250ZW50Q2hpbGRyZW4odCl7cmV0dXJuIHRoaXMuZ2V0Q29udGVudENoaWxkTm9kZXModCkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFfSkpfWlzTGlnaHREZXNjZW5kYW50KHQpe2NvbnN0IGU9dGhpcztyZXR1cm4gZSE9PXQmJlkoZSkuY29udGFpbnModCkmJlkoZSkuZ2V0Um9vdE5vZGUoKT09PVkodCkuZ2V0Um9vdE5vZGUoKX1pc0xvY2FsRGVzY2VuZGFudCh0KXtyZXR1cm4gdGhpcy5yb290PT09WSh0KS5nZXRSb290Tm9kZSgpfXNjb3BlU3VidHJlZSh0LGU9ITEpe3JldHVybihmdW5jdGlvbiBuKHQsZT0hMSl7aWYoIW5yfHwhaXIpcmV0dXJuIG51bGw7aWYoIW5yLmhhbmRsZXNEeW5hbWljU2NvcGluZylyZXR1cm4gbnVsbDtjb25zdCBuPWlyLlNjb3BpbmdTaGltO2lmKCFuKXJldHVybiBudWxsO2NvbnN0IGk9bi5zY29wZUZvck5vZGUodCkscj1ZKHQpLmdldFJvb3ROb2RlKCksbz10PT57aWYoIXJyKHQscikpcmV0dXJuO2NvbnN0IGU9QXJyYXkuZnJvbShuci5uYXRpdmVNZXRob2RzLnF1ZXJ5U2VsZWN0b3JBbGwuY2FsbCh0LCIqIikpO2UucHVzaCh0KTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7Y29uc3Qgbz1lW3RdO2lmKCFycihvLHIpKWNvbnRpbnVlO2NvbnN0IGE9bi5jdXJyZW50U2NvcGVGb3JOb2RlKG8pO2EhPT1pJiYoIiIhPT1hJiZuLnVuc2NvcGVOb2RlKG8sYSksbi5zY29wZU5vZGUobyxpKSl9fTtpZihvKHQpLGUpe2NvbnN0IGU9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKHQ9Pntmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl7Y29uc3Qgbj10W2VdO2ZvcihsZXQgdD0wO3Q8bi5hZGRlZE5vZGVzLmxlbmd0aDt0Kyspe2NvbnN0IGU9bi5hZGRlZE5vZGVzW3RdO2Uubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmbyhlKX19fSkpO3JldHVybiBlLm9ic2VydmUodCx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KSxlfXJldHVybiBudWxsfSkodCxlKX1nZXRDb21wdXRlZFN0eWxlVmFsdWUodCl7cmV0dXJuIGxyLmdldENvbXB1dGVkU3R5bGVWYWx1ZSh0aGlzLHQpfWRlYm91bmNlKHQsZSxuKXtyZXR1cm4gdGhpcy5fZGVib3VuY2Vycz10aGlzLl9kZWJvdW5jZXJzfHx7fSx0aGlzLl9kZWJvdW5jZXJzW3RdPU5uLmRlYm91bmNlKHRoaXMuX2RlYm91bmNlcnNbdF0sbj4wP2d0LmFmdGVyKG4pOnZ0LGUuYmluZCh0aGlzKSl9aXNEZWJvdW5jZXJBY3RpdmUodCl7dGhpcy5fZGVib3VuY2Vycz10aGlzLl9kZWJvdW5jZXJzfHx7fTtsZXQgZT10aGlzLl9kZWJvdW5jZXJzW3RdO3JldHVybiEoIWV8fCFlLmlzQWN0aXZlKCkpfWZsdXNoRGVib3VuY2VyKHQpe3RoaXMuX2RlYm91bmNlcnM9dGhpcy5fZGVib3VuY2Vyc3x8e307bGV0IGU9dGhpcy5fZGVib3VuY2Vyc1t0XTtlJiZlLmZsdXNoKCl9Y2FuY2VsRGVib3VuY2VyKHQpe3RoaXMuX2RlYm91bmNlcnM9dGhpcy5fZGVib3VuY2Vyc3x8e307bGV0IGU9dGhpcy5fZGVib3VuY2Vyc1t0XTtlJiZlLmNhbmNlbCgpfWFzeW5jKHQsZSl7cmV0dXJuIGU+MD9ndC5ydW4odC5iaW5kKHRoaXMpLGUpOn52dC5ydW4odC5iaW5kKHRoaXMpKX1jYW5jZWxBc3luYyh0KXt0PDA/dnQuY2FuY2VsKH50KTpndC5jYW5jZWwodCl9Y3JlYXRlKHQsZSl7bGV0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0KTtpZihlKWlmKG4uc2V0UHJvcGVydGllcyluLnNldFByb3BlcnRpZXMoZSk7ZWxzZSBmb3IobGV0IHQgaW4gZSluW3RdPWVbdF07cmV0dXJuIG59ZWxlbWVudE1hdGNoZXModCxlKXtyZXR1cm4gWGkoZXx8dGhpcyx0KX10b2dnbGVBdHRyaWJ1dGUodCxlKXtsZXQgbj10aGlzO3JldHVybiAzPT09YXJndW1lbnRzLmxlbmd0aCYmKG49YXJndW1lbnRzWzJdKSwxPT1hcmd1bWVudHMubGVuZ3RoJiYoZT0hbi5oYXNBdHRyaWJ1dGUodCkpLGU/KFkobikuc2V0QXR0cmlidXRlKHQsIiIpLCEwKTooWShuKS5yZW1vdmVBdHRyaWJ1dGUodCksITEpfXRvZ2dsZUNsYXNzKHQsZSxuKXtuPW58fHRoaXMsMT09YXJndW1lbnRzLmxlbmd0aCYmKGU9IW4uY2xhc3NMaXN0LmNvbnRhaW5zKHQpKSxlP24uY2xhc3NMaXN0LmFkZCh0KTpuLmNsYXNzTGlzdC5yZW1vdmUodCl9dHJhbnNmb3JtKHQsZSl7KGU9ZXx8dGhpcykuc3R5bGUud2Via2l0VHJhbnNmb3JtPXQsZS5zdHlsZS50cmFuc2Zvcm09dH10cmFuc2xhdGUzZCh0LGUsbixpKXt0aGlzLnRyYW5zZm9ybSgidHJhbnNsYXRlM2QoIit0KyIsIitlKyIsIituKyIpIixpPWl8fHRoaXMpfWFycmF5RGVsZXRlKHQsZSl7bGV0IG47aWYoQXJyYXkuaXNBcnJheSh0KSl7aWYobj10LmluZGV4T2YoZSksbj49MClyZXR1cm4gdC5zcGxpY2UobiwxKX1lbHNle2lmKG49bnQodGhpcyx0KS5pbmRleE9mKGUpLG4+PTApcmV0dXJuIHRoaXMuc3BsaWNlKHQsbiwxKX1yZXR1cm4gbnVsbH1fbG9nZ2VyKHQsZSl7c3dpdGNoKEFycmF5LmlzQXJyYXkoZSkmJjE9PT1lLmxlbmd0aCYmQXJyYXkuaXNBcnJheShlWzBdKSYmKGU9ZVswXSksdCl7Y2FzZSJsb2ciOmNhc2Uid2FybiI6Y2FzZSJlcnJvciI6Y29uc29sZVt0XSguLi5lKX19X2xvZyguLi50KXt0aGlzLl9sb2dnZXIoImxvZyIsdCl9X3dhcm4oLi4udCl7dGhpcy5fbG9nZ2VyKCJ3YXJuIix0KX1fZXJyb3IoLi4udCl7dGhpcy5fbG9nZ2VyKCJlcnJvciIsdCl9X2xvZ2YodCwuLi5lKXtyZXR1cm5bIlslczo6JXNdIix0aGlzLmlzLHQsLi4uZV19fXJldHVybiBvLnByb3RvdHlwZS5pcz0iIixvfSkpO2Z1bmN0aW9uIHVyKHQsZSl7bGV0IG49MCxpPTA7Zm9yKDs7KXtpZihuPT09dC5sZW5ndGgpcmV0dXJuIGk9PT1lLmxlbmd0aD8wOi0xO2lmKGk9PT1lLmxlbmd0aClyZXR1cm4gMTtpZihkcih0W25dKSYmZHIoZVtpXSkpe2NvbnN0IHI9bixvPWk7bj1ocih0LG4rMSksaT1ocihlLGkrMSk7Y29uc3QgYT1wYXJzZUZsb2F0KHQuc2xpY2UocixuKSkscz1wYXJzZUZsb2F0KGUuc2xpY2UobyxpKSk7aWYoYTxzKXJldHVybi0xO2lmKGE+cylyZXR1cm4gMX1lbHNle2lmKHByKHRbbl0pKXtpZighcHIoZVtpXSkpcmV0dXJuLTF9ZWxzZXtpZihwcihlW2ldKSlyZXR1cm4gMTtpZih0W25dPGVbaV0pcmV0dXJuLTE7aWYodFtuXT5lW2ldKXJldHVybiAxfW4rKyxpKyt9fX1mdW5jdGlvbiBocih0LGUpe2xldCBuOyEoZnVuY3Rpb24odCl7dFt0Lk5BVFVSQUw9MF09Ik5BVFVSQUwiLHRbdC5SRUFMPTFdPSJSRUFMIix0W3QuRVhQT05FTlRfU0lHTj0yXT0iRVhQT05FTlRfU0lHTiIsdFt0LkVYUE9ORU5UPTNdPSJFWFBPTkVOVCJ9KShufHwobj17fSkpO2xldCBpPW4uTkFUVVJBTDtmb3IoO2U8dC5sZW5ndGg7ZSsrKWlmKGk9PT1uLk5BVFVSQUwpe2lmKCIuIj09PXRbZV0paT1uLlJFQUw7ZWxzZSBpZigiZSI9PT10W2VdfHwiRSI9PT10W2VdKWk9bi5FWFBPTkVOVF9TSUdOO2Vsc2UgaWYoIWRyKHRbZV0pKWJyZWFrfWVsc2UgaWYoaT09PW4uUkVBTCl7aWYoImUiPT09dFtlXXx8IkUiPT09dFtlXSlpPW4uRVhQT05FTlRfU0lHTjtlbHNlIGlmKCFkcih0W2VdKSlicmVha31lbHNlIGlmKGk9PT1uLkVYUE9ORU5UX1NJR04pe2lmKCFkcih0W2VdKSYmIisiIT09dFtlXSYmIi0iIT09dFtlXSlicmVhaztpPW4uRVhQT05FTlR9ZWxzZSBpZihpPT09bi5FWFBPTkVOVCYmIWRyKHRbZV0pKWJyZWFrO3JldHVybiBlfWZ1bmN0aW9uIGRyKHQpe3JldHVybiIwIjw9dCYmdDw9IjkifWZ1bmN0aW9uIHByKHQpe3JldHVybiIvIj09PXR8fCJfIj09PXR8fGRyKHQpfWZ1bmN0aW9uIGZyKHQpe3JldHVybiBDZS5leHBvcnRzLnVuaW9uLmFwcGx5KG51bGwsQ2UuZXhwb3J0cy52YWx1ZXModCkpLnNvcnQodXIpfWNsYXNzIG1yIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMubmFtZT0iUmVxdWVzdENhbmNlbGxhdGlvbkVycm9yIn19Y2xhc3MgZ3IgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLm5hbWU9IkludmFsaWRSZXF1ZXN0T3B0aW9uc0Vycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxnci5wcm90b3R5cGUpfX1jbGFzcyBfciBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKSx0aGlzLm1lc3NhZ2U9YFJlcXVlc3ROZXR3b3JrRXJyb3I6ICR7dC5zdGF0dXN9IGF0ICR7ZX1gLHRoaXMubmFtZT0iUmVxdWVzdE5ldHdvcmtFcnJvciIsdGhpcy5yZXE9dCx0aGlzLnVybD1lfX12YXIgeXI7IShmdW5jdGlvbih0KXt0LkdFVD0iR0VUIix0LlBPU1Q9IlBPU1QifSkoeXJ8fCh5cj17fSkpO2NsYXNzIHZye3ZhbGlkYXRlKCl7aWYodGhpcy5tZXRob2RUeXBlPT09eXIuR0VUJiZ0aGlzLmJvZHkpdGhyb3cgbmV3IGdyKCJib2R5IG11c3QgYmUgbWlzc2luZyBmb3IgYSBHRVQgcmVxdWVzdC4iKX19Y2xhc3MgYnJ7Y29uc3RydWN0b3IodD0xZTMsZT0zKXt0aGlzLl9xdWV1ZT1bXSx0aGlzLl9uQWN0aXZlUmVxdWVzdHM9MCx0aGlzLl9uU2ltdWx0YW5lb3VzUmVxdWVzdHM9dCx0aGlzLl9tYXhSZXRyaWVzPWV9cmVxdWVzdCh0LGUpe2NvbnN0IG49KGZ1bmN0aW9uIGkodCl7Y29uc3QgZT1uZXcgdnI7aWYoIXQpcmV0dXJuIGUubWV0aG9kVHlwZT15ci5HRVQsZTtyZXR1cm4gZS5tZXRob2RUeXBlPXlyLlBPU1QsZS5ib2R5PShmdW5jdGlvbiBuKHQpe2NvbnN0IGU9bmV3IEZvcm1EYXRhO2Zvcihjb25zdFtuLGldb2YgT2JqZWN0LmVudHJpZXModCkpe2NvbnN0IHQ9QXJyYXkuaXNBcnJheShpKT9pOltpXTtmb3IoY29uc3QgaSBvZiB0KWUuYXBwZW5kKG4saSl9cmV0dXJuIGV9KSh0KSxlfSkoZSk7cmV0dXJuIHRoaXMucmVxdWVzdFdpdGhPcHRpb25zKHQsbil9cmVxdWVzdFdpdGhPcHRpb25zKHQsZSl7ZS52YWxpZGF0ZSgpO3JldHVybiBuZXcgUHJvbWlzZSgoKHQsZSk9Pnt0aGlzLl9xdWV1ZS5wdXNoKHtyZXNvbHZlOnQscmVqZWN0OmV9KSx0aGlzLmxhdW5jaFJlcXVlc3RzKCl9KSkudGhlbigoKCk9PnRoaXMucHJvbWlzZVdpdGhSZXRyaWVzKHQsdGhpcy5fbWF4UmV0cmllcyxlKSkpLnRoZW4oKHQ9Pih0aGlzLl9uQWN0aXZlUmVxdWVzdHMtLSx0aGlzLmxhdW5jaFJlcXVlc3RzKCksdCkpLCh0PT4oIlJlcXVlc3ROZXR3b3JrRXJyb3IiPT09dC5uYW1lJiYodGhpcy5fbkFjdGl2ZVJlcXVlc3RzLS0sdGhpcy5sYXVuY2hSZXF1ZXN0cygpKSxQcm9taXNlLnJlamVjdCh0KSkpKX1mZXRjaCh0LGUpe3JldHVybiBuZXcgUHJvbWlzZSgoKHQsZSk9Pnt0aGlzLl9xdWV1ZS5wdXNoKHtyZXNvbHZlOnQscmVqZWN0OmV9KSx0aGlzLmxhdW5jaFJlcXVlc3RzKCl9KSkudGhlbigoKCk9PntsZXQgbj0xO3JldHVybiBuZXcgUHJvbWlzZSgoaT0+e2NvbnN0IHI9KCk9PntmZXRjaCh0LGUpLnRoZW4oKHQ9PntpZighdC5vayYmdGhpcy5fbWF4UmV0cmllcz5uKXJldHVybiBuKyssdm9pZCByKCk7aSh0KSx0aGlzLl9uQWN0aXZlUmVxdWVzdHMtLSx0aGlzLmxhdW5jaFJlcXVlc3RzKCl9KSl9O3IoKX0pKX0pKX1jbGVhclF1ZXVlKCl7Zm9yKDt0aGlzLl9xdWV1ZS5sZW5ndGg+MDspdGhpcy5fcXVldWUucG9wKCkucmVqZWN0KG5ldyBtcigiUmVxdWVzdCBjYW5jZWxsZWQgYnkgY2xlYXJRdWV1ZSIpKX1hY3RpdmVSZXF1ZXN0cygpe3JldHVybiB0aGlzLl9uQWN0aXZlUmVxdWVzdHN9b3V0c3RhbmRpbmdSZXF1ZXN0cygpe3JldHVybiB0aGlzLl9uQWN0aXZlUmVxdWVzdHMrdGhpcy5fcXVldWUubGVuZ3RofWxhdW5jaFJlcXVlc3RzKCl7Zm9yKDt0aGlzLl9uQWN0aXZlUmVxdWVzdHM8dGhpcy5fblNpbXVsdGFuZW91c1JlcXVlc3RzJiZ0aGlzLl9xdWV1ZS5sZW5ndGg+MDspdGhpcy5fbkFjdGl2ZVJlcXVlc3RzKyssdGhpcy5fcXVldWUucG9wKCkucmVzb2x2ZSh2b2lkIDApfXByb21pc2VXaXRoUmV0cmllcyh0LGUsbil7cmV0dXJuIHRoaXMuX3Byb21pc2VGcm9tVXJsKHQsbikudGhlbigodD0+dCksKGk9PmU+MD90aGlzLnByb21pc2VXaXRoUmV0cmllcyh0LGUtMSxuKTpQcm9taXNlLnJlamVjdChpKSkpfV9wcm9taXNlRnJvbVVybCh0LGUpe3JldHVybiBuZXcgUHJvbWlzZSgoKG4saSk9Pntjb25zdCByPShmdW5jdGlvbiBvKHQsZSxuLGkpe2NvbnN0IHI9bmV3IFhNTEh0dHBSZXF1ZXN0O3Iub3Blbih0LGUpLG4mJihyLndpdGhDcmVkZW50aWFscz1uKTtpJiZyLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsaSk7cmV0dXJuIHJ9KShlLm1ldGhvZFR5cGUsdCxlLndpdGhDcmVkZW50aWFscyxlLmNvbnRlbnRUeXBlKTtyLm9ubG9hZD1mdW5jdGlvbigpezIwMD09PXIuc3RhdHVzP24oSlNPTi5wYXJzZShyLnJlc3BvbnNlVGV4dCkpOmkobmV3IF9yKHIsdCkpfSxyLm9uZXJyb3I9ZnVuY3Rpb24oKXtpKG5ldyBfcihyLHQpKX0sZS5ib2R5P3Iuc2VuZChlLmJvZHkpOnIuc2VuZCgpfSkpfX1jb25zdCB4cj0iZXhwZXJpbWVudGFsUGx1Z2luIix3cj1uZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO2xldCBTcj1NcigpO2Z1bmN0aW9uIE1yKHQ9ImRhdGEiLGU9d3Ipe3JldHVybiIvIj09PXRbdC5sZW5ndGgtMV0mJih0PXQuc2xpY2UoMCx0Lmxlbmd0aC0xKSkse2Vudmlyb25tZW50OigpPT5Ucih0LCIvZW52aXJvbm1lbnQiKSxleHBlcmltZW50czooKT0+VHIodCwiL2V4cGVyaW1lbnRzIikscGx1Z2luUm91dGU6KGUsbixpKT0+VHIodCsiL3BsdWdpbiIsYC8ke2V9JHtufWAsaSkscGx1Z2luc0xpc3Rpbmc6KCk9PlRyKHQsIi9wbHVnaW5zX2xpc3RpbmciLENyKHtbeHJdOmUuZ2V0QWxsKHhyKX0pKSxydW5zOigpPT5Ucih0LCIvcnVucyIpLHJ1bnNGb3JFeHBlcmltZW50OmU9PlRyKHQsIi9leHBlcmltZW50X3J1bnMiLENyKHtleHBlcmltZW50OlN0cmluZyhlKX0pKX19ZnVuY3Rpb24gRXIoKXtyZXR1cm4gU3J9ZnVuY3Rpb24gVHIodCxlLG49bmV3IFVSTFNlYXJjaFBhcmFtcyl7bGV0IGk9dCtlO2lmKFN0cmluZyhuKSl7aSs9KGUuaW5jbHVkZXMoIj8iKT8iJiI6Ij8iKStTdHJpbmcobil9cmV0dXJuIGl9ZnVuY3Rpb24gQ3IodD17fSl7Y29uc3QgZT1PYmplY3Qua2V5cyh0KS5zb3J0KCkuZmlsdGVyKChlPT50W2VdKSksbj1uZXcgVVJMU2VhcmNoUGFyYW1zO3JldHVybiBlLmZvckVhY2goKGU9Pntjb25zdCBpPXRbZV07KEFycmF5LmlzQXJyYXkoaSk/aTpbaV0pLmZvckVhY2goKHQ9Pm4uYXBwZW5kKGUsdCkpKX0pKSxufXZhciBBcjtmdW5jdGlvbiBrcih0LGUpe2NvbnN0IG49KCgpPT57dHJ5e3JldHVybiBuZXcgUmVnRXhwKGUpfWNhdGNoKHQpe3JldHVybiBudWxsfX0pKCk7cmV0dXJue25hbWU6ZSxtZXRhZGF0YTp7dHlwZTpBci5TRUFSQ0hfUkVTVUxUUyx2YWxpZFJlZ2V4OiEhbix1bml2ZXJzYWxSZWdleDoiLioiPT09ZX0saXRlbXM6bj90LmZpbHRlcigodD0+dC5tYXRjaChuKSkpOltdfX1mdW5jdGlvbiBMcih0LGU9IiIpe2NvbnN0IG49W2tyKHQsZSldLGk9KGZ1bmN0aW9uIHIodCxlPSIvIil7Y29uc3Qgbj1bXSxpPXt9O3JldHVybiB0LmZvckVhY2goKHQ9Pntjb25zdCByPXQuaW5kZXhPZihlKSxvPXI+PTA/dC5zbGljZSgwLHIpOnQ7aWYoIWlbb10pe2NvbnN0IHQ9e25hbWU6byxtZXRhZGF0YTp7dHlwZTpBci5QUkVGSVhfR1JPVVB9LGl0ZW1zOltdfTtpW29dPXQsbi5wdXNoKHQpfWlbb10uaXRlbXMucHVzaCh0KX0pKSxufSkodCk7cmV0dXJuW10uY29uY2F0KG4saSl9ZnVuY3Rpb24gUHIodCxlLG4pe2NvbnN0IGk9THIoZnIodCksbikscj0oZnVuY3Rpb24gbyh0KXtjb25zdCBlPW5ldyBNYXA7cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goKG49Pnt0W25dLmZvckVhY2goKHQ9Pntjb25zdCBpPWUuZ2V0KHQpfHxbXTtpLnB1c2gobiksZS5zZXQodCxpKX0pKX0pKSxlfSkoQ2UuZXhwb3J0cy5waWNrKHQsZSkpO3JldHVybiBpLm1hcCgoKHtuYW1lOnQsbWV0YWRhdGE6ZSxpdGVtczpufSk9Pih7bmFtZTp0LG1ldGFkYXRhOmUsaXRlbXM6bi5tYXAoKHQ9Pih7dGFnOnQscnVuczooci5nZXQodCl8fFtdKS5zbGljZSgpfSkpKX0pKSl9ZnVuY3Rpb24gTnIodCxlKXtjb25zdCBuPXVyKHQudGFnLGUudGFnKTtyZXR1cm4gMCE9bj9uOnVyKHQucnVuLGUucnVuKX1mdW5jdGlvbiBJcih0LGUsbil7cmV0dXJuIFByKHQsZSxuKS5tYXAoKGZ1bmN0aW9uIGkodCl7Y29uc3QgZT1DZS5leHBvcnRzLmZsYXR0ZW4odC5pdGVtcy5tYXAoKCh7dGFnOnQscnVuczplfSk9PmUubWFwKChlPT4oe3RhZzp0LHJ1bjplfSkpKSkpKTtyZXR1cm4gZS5zb3J0KE5yKSx7bmFtZTp0Lm5hbWUsbWV0YWRhdGE6dC5tZXRhZGF0YSxpdGVtczplfX0pKX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8hKGZ1bmN0aW9uKHQpe3RbdC5TRUFSQ0hfUkVTVUxUUz0wXT0iU0VBUkNIX1JFU1VMVFMiLHRbdC5QUkVGSVhfR1JPVVA9MV09IlBSRUZJWF9HUk9VUCJ9KShBcnx8KEFyPXt9KSk7Y29uc3QgUnI9e2F0dGFjaGVkOiEwLGRldGFjaGVkOiEwLHJlYWR5OiEwLGNyZWF0ZWQ6ITAsYmVmb3JlUmVnaXN0ZXI6ITAscmVnaXN0ZXJlZDohMCxhdHRyaWJ1dGVDaGFuZ2VkOiEwLGxpc3RlbmVyczohMCxob3N0QXR0cmlidXRlczohMH0sT3I9e2F0dGFjaGVkOiEwLGRldGFjaGVkOiEwLHJlYWR5OiEwLGNyZWF0ZWQ6ITAsYmVmb3JlUmVnaXN0ZXI6ITAscmVnaXN0ZXJlZDohMCxhdHRyaWJ1dGVDaGFuZ2VkOiEwLGJlaGF2aW9yczohMCxfbm9BY2Nlc3NvcnM6ITB9LHpyPU9iamVjdC5hc3NpZ24oe2xpc3RlbmVyczohMCxob3N0QXR0cmlidXRlczohMCxwcm9wZXJ0aWVzOiEwLG9ic2VydmVyczohMH0sT3IpO2Z1bmN0aW9uIERyKHQsZSxuLGkpeyEoZnVuY3Rpb24gcih0LGUsbil7Y29uc3QgaT10Ll9ub0FjY2Vzc29ycyxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHQpO2ZvcihsZXQgbz0wO288ci5sZW5ndGg7bysrKXtsZXQgYT1yW29dO2lmKCEoYSBpbiBuKSlpZihpKWVbYV09dFthXTtlbHNle2xldCBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxhKTtuJiYobi5jb25maWd1cmFibGU9ITAsT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYSxuKSl9fX0pKGUsdCxpKTtmb3IobGV0IHQgaW4gUnIpZVt0XSYmKG5bdF09blt0XXx8W10sblt0XS5wdXNoKGVbdF0pKX1mdW5jdGlvbiBCcih0LGUsbil7ZT1lfHxbXTtmb3IobGV0IGk9dC5sZW5ndGgtMTtpPj0wO2ktLSl7bGV0IHI9dFtpXTtyP0FycmF5LmlzQXJyYXkocik/QnIocixlKTplLmluZGV4T2Yocik8MCYmKCFufHxuLmluZGV4T2Yocik8MCkmJmUudW5zaGlmdChyKTpjb25zb2xlLndhcm4oImJlaGF2aW9yIGlzIG51bGwsIGNoZWNrIGZvciBtaXNzaW5nIG9yIDQwNCBpbXBvcnQiKX1yZXR1cm4gZX1mdW5jdGlvbiBIcih0LGUpe2Zvcihjb25zdCBuIGluIGUpe2NvbnN0IGk9dFtuXSxyPWVbbl07dFtuXT0hKCJ2YWx1ZSJpbiByKSYmaSYmInZhbHVlImluIGk/T2JqZWN0LmFzc2lnbih7dmFsdWU6aS52YWx1ZX0scik6cn19Y29uc3QgRnI9Y3IoSFRNTEVsZW1lbnQpO2Z1bmN0aW9uIFZyKHQsZSxuKXtsZXQgaTtjb25zdCByPXt9O2NsYXNzIG8gZXh0ZW5kcyBle3N0YXRpYyBfZmluYWxpemVDbGFzcygpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiZ2VuZXJhdGVkRnJvbSIsdGhpcykpKXtpZihpKWZvcihsZXQgdCxlPTA7ZTxpLmxlbmd0aDtlKyspdD1pW2VdLHQucHJvcGVydGllcyYmdGhpcy5jcmVhdGVQcm9wZXJ0aWVzKHQucHJvcGVydGllcyksdC5vYnNlcnZlcnMmJnRoaXMuY3JlYXRlT2JzZXJ2ZXJzKHQub2JzZXJ2ZXJzLHQucHJvcGVydGllcyk7dC5wcm9wZXJ0aWVzJiZ0aGlzLmNyZWF0ZVByb3BlcnRpZXModC5wcm9wZXJ0aWVzKSx0Lm9ic2VydmVycyYmdGhpcy5jcmVhdGVPYnNlcnZlcnModC5vYnNlcnZlcnMsdC5wcm9wZXJ0aWVzKSx0aGlzLl9wcmVwYXJlVGVtcGxhdGUoKX1lbHNlIGUuX2ZpbmFsaXplQ2xhc3MuY2FsbCh0aGlzKX1zdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtjb25zdCBlPXt9O2lmKGkpZm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0KyspSHIoZSxpW3RdLnByb3BlcnRpZXMpO3JldHVybiBIcihlLHQucHJvcGVydGllcyksZX1zdGF0aWMgZ2V0IG9ic2VydmVycygpe2xldCBlPVtdO2lmKGkpZm9yKGxldCB0LG49MDtuPGkubGVuZ3RoO24rKyl0PWlbbl0sdC5vYnNlcnZlcnMmJihlPWUuY29uY2F0KHQub2JzZXJ2ZXJzKSk7cmV0dXJuIHQub2JzZXJ2ZXJzJiYoZT1lLmNvbmNhdCh0Lm9ic2VydmVycykpLGV9Y3JlYXRlZCgpe3N1cGVyLmNyZWF0ZWQoKTtjb25zdCB0PXIuY3JlYXRlZDtpZih0KWZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV0uY2FsbCh0aGlzKX1fcmVnaXN0ZXJlZCgpe2NvbnN0IHQ9by5wcm90b3R5cGU7aWYoIXQuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiX19oYXNSZWdpc3RlckZpbmlzaGVkIix0KSkpe3QuX19oYXNSZWdpc3RlckZpbmlzaGVkPSEwLHN1cGVyLl9yZWdpc3RlcmVkKCksdyYmYSh0KTtjb25zdCBlPU9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKTtsZXQgbj1yLmJlZm9yZVJlZ2lzdGVyO2lmKG4pZm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kyspblt0XS5jYWxsKGUpO2lmKG49ci5yZWdpc3RlcmVkLG4pZm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kyspblt0XS5jYWxsKGUpfX1fYXBwbHlMaXN0ZW5lcnMoKXtzdXBlci5fYXBwbHlMaXN0ZW5lcnMoKTtjb25zdCB0PXIubGlzdGVuZXJzO2lmKHQpZm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspe2NvbnN0IG49dFtlXTtpZihuKWZvcihsZXQgdCBpbiBuKXRoaXMuX2FkZE1ldGhvZEV2ZW50TGlzdGVuZXJUb05vZGUodGhpcyx0LG5bdF0pfX1fZW5zdXJlQXR0cmlidXRlcygpe2NvbnN0IHQ9ci5ob3N0QXR0cmlidXRlcztpZih0KWZvcihsZXQgZT10Lmxlbmd0aC0xO2U+PTA7ZS0tKXtjb25zdCBuPXRbZV07Zm9yKGxldCB0IGluIG4pdGhpcy5fZW5zdXJlQXR0cmlidXRlKHQsblt0XSl9c3VwZXIuX2Vuc3VyZUF0dHJpYnV0ZXMoKX1yZWFkeSgpe3N1cGVyLnJlYWR5KCk7bGV0IHQ9ci5yZWFkeTtpZih0KWZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV0uY2FsbCh0aGlzKX1hdHRhY2hlZCgpe3N1cGVyLmF0dGFjaGVkKCk7bGV0IHQ9ci5hdHRhY2hlZDtpZih0KWZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV0uY2FsbCh0aGlzKX1kZXRhY2hlZCgpe3N1cGVyLmRldGFjaGVkKCk7bGV0IHQ9ci5kZXRhY2hlZDtpZih0KWZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV0uY2FsbCh0aGlzKX1hdHRyaWJ1dGVDaGFuZ2VkKHQsZSxuKXtzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkKCk7bGV0IGk9ci5hdHRyaWJ1dGVDaGFuZ2VkO2lmKGkpZm9yKGxldCByPTA7cjxpLmxlbmd0aDtyKyspaVtyXS5jYWxsKHRoaXMsdCxlLG4pfX1pZihuKXtBcnJheS5pc0FycmF5KG4pfHwobj1bbl0pO2xldCB0PWUucHJvdG90eXBlLmJlaGF2aW9ycztpPUJyKG4sbnVsbCx0KSxvLnByb3RvdHlwZS5iZWhhdmlvcnM9dD90LmNvbmNhdChuKTppfWNvbnN0IGE9ZT0+e2kmJihmdW5jdGlvbiBuKHQsZSxpKXtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKylEcih0LGVbbl0saSx6cil9KShlLGksciksRHIoZSx0LHIsT3IpfTtyZXR1cm4gd3x8YShvLnByb3RvdHlwZSksby5nZW5lcmF0ZWRGcm9tPXQsb31jb25zdCBVcj1mdW5jdGlvbih0LGUpe3R8fGNvbnNvbGUud2FybigiUG9seW1lci5DbGFzcyByZXF1aXJlcyBgaW5mb2AgYXJndW1lbnQiKTtsZXQgbj1lP2UoRnIpOkZyO3JldHVybiBuPVZyKHQsbix0LmJlaGF2aW9ycyksbi5pcz1uLnByb3RvdHlwZS5pcz10LmlzLG59LGpyPWZ1bmN0aW9uKHQpe2xldCBlO3JldHVybiBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6anIuQ2xhc3ModCksdC5fbGVnYWN5Rm9yY2VPYnNlcnZlZEF0dHJpYnV0ZXMmJihlLnByb3RvdHlwZS5fbGVnYWN5Rm9yY2VPYnNlcnZlZEF0dHJpYnV0ZXM9dC5fbGVnYWN5Rm9yY2VPYnNlcnZlZEF0dHJpYnV0ZXMpLGN1c3RvbUVsZW1lbnRzLmRlZmluZShlLmlzLGUpLGV9OwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpmdW5jdGlvbiBHcih0LGUsbixpLHIpe2xldCBvO3ImJihvPSJvYmplY3QiPT10eXBlb2YgbiYmbnVsbCE9PW4sbyYmKGk9dC5fX2RhdGFUZW1wW2VdKSk7bGV0IGE9aSE9PW4mJihpPT1pfHxuPT1uKTtyZXR1cm4gbyYmYSYmKHQuX19kYXRhVGVtcFtlXT1uKSxhfWpyLkNsYXNzPVVyO2NvbnN0IFdyPUkoKHQ9PmNsYXNzIGV4dGVuZHMgdHtfc2hvdWxkUHJvcGVydHlDaGFuZ2UodCxlLG4pe3JldHVybiBHcih0aGlzLHQsZSxuLCEwKX19KSkscXI9SSgodD0+Y2xhc3MgZXh0ZW5kcyB0e3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybnttdXRhYmxlRGF0YTpCb29sZWFufX1fc2hvdWxkUHJvcGVydHlDaGFuZ2UodCxlLG4pe3JldHVybiBHcih0aGlzLHQsZSxuLHRoaXMubXV0YWJsZURhdGEpfX0pKTtXci5fbXV0YWJsZVByb3BlcnR5Q2hhbmdlPUdyOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpsZXQgWXI9bnVsbDtmdW5jdGlvbiBYcigpe3JldHVybiBZcn1Yci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShIVE1MVGVtcGxhdGVFbGVtZW50LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOlhyLHdyaXRhYmxlOiEwfX0pO2NvbnN0ICRyPWZlKFhyKSxLcj1Xcigkcik7Y29uc3QgWnI9ZmUoY2xhc3N7fSk7ZnVuY3Rpb24gSnIodCxlKXtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyl7bGV0IGk9ZVtuXTtpZihCb29sZWFuKHQpIT1Cb29sZWFuKGkuX19oaWRlVGVtcGxhdGVDaGlsZHJlbl9fKSlpZihpLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpdD8oaS5fX3BvbHltZXJUZXh0Q29udGVudF9fPWkudGV4dENvbnRlbnQsaS50ZXh0Q29udGVudD0iIik6aS50ZXh0Q29udGVudD1pLl9fcG9seW1lclRleHRDb250ZW50X187ZWxzZSBpZigic2xvdCI9PT1pLmxvY2FsTmFtZSlpZih0KWkuX19wb2x5bWVyUmVwbGFjZWRfXz1kb2N1bWVudC5jcmVhdGVDb21tZW50KCJoaWRkZW4tc2xvdCIpLFkoWShpKS5wYXJlbnROb2RlKS5yZXBsYWNlQ2hpbGQoaS5fX3BvbHltZXJSZXBsYWNlZF9fLGkpO2Vsc2V7Y29uc3QgdD1pLl9fcG9seW1lclJlcGxhY2VkX187dCYmWShZKHQpLnBhcmVudE5vZGUpLnJlcGxhY2VDaGlsZChpLHQpfWVsc2UgaS5zdHlsZSYmKHQ/KGkuX19wb2x5bWVyRGlzcGxheV9fPWkuc3R5bGUuZGlzcGxheSxpLnN0eWxlLmRpc3BsYXk9Im5vbmUiKTppLnN0eWxlLmRpc3BsYXk9aS5fX3BvbHltZXJEaXNwbGF5X18pO2kuX19oaWRlVGVtcGxhdGVDaGlsZHJlbl9fPXQsaS5fc2hvd0hpZGVDaGlsZHJlbiYmaS5fc2hvd0hpZGVDaGlsZHJlbih0KX19Y2xhc3MgUXIgZXh0ZW5kcyBacntjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuX2NvbmZpZ3VyZVByb3BlcnRpZXModCksdGhpcy5yb290PXRoaXMuX3N0YW1wVGVtcGxhdGUodGhpcy5fX2RhdGFIb3N0KTtsZXQgZT1bXTt0aGlzLmNoaWxkcmVuPWU7Zm9yKGxldCB0PXRoaXMucm9vdC5maXJzdENoaWxkO3Q7dD10Lm5leHRTaWJsaW5nKWUucHVzaCh0KSx0Ll9fdGVtcGxhdGl6ZUluc3RhbmNlPXRoaXM7dGhpcy5fX3RlbXBsYXRpemVPd25lciYmdGhpcy5fX3RlbXBsYXRpemVPd25lci5fX2hpZGVUZW1wbGF0ZUNoaWxkcmVuX18mJnRoaXMuX3Nob3dIaWRlQ2hpbGRyZW4oITApO2xldCBuPXRoaXMuX190ZW1wbGF0aXplT3B0aW9uczsodCYmbi5pbnN0YW5jZVByb3BzfHwhbi5pbnN0YW5jZVByb3BzKSYmdGhpcy5fZW5hYmxlUHJvcGVydGllcygpfV9jb25maWd1cmVQcm9wZXJ0aWVzKHQpe2lmKHRoaXMuX190ZW1wbGF0aXplT3B0aW9ucy5mb3J3YXJkSG9zdFByb3ApZm9yKGxldCB0IGluIHRoaXMuX19ob3N0UHJvcHMpdGhpcy5fc2V0UGVuZGluZ1Byb3BlcnR5KHQsdGhpcy5fX2RhdGFIb3N0WyJfaG9zdF8iK3RdKTtmb3IobGV0IGUgaW4gdCl0aGlzLl9zZXRQZW5kaW5nUHJvcGVydHkoZSx0W2VdKX1mb3J3YXJkSG9zdFByb3AodCxlKXt0aGlzLl9zZXRQZW5kaW5nUHJvcGVydHlPclBhdGgodCxlLCExLCEwKSYmdGhpcy5fX2RhdGFIb3N0Ll9lbnF1ZXVlQ2xpZW50KHRoaXMpfV9hZGRFdmVudExpc3RlbmVyVG9Ob2RlKHQsZSxuKXtpZih0aGlzLl9tZXRob2RIb3N0JiZ0aGlzLl9fdGVtcGxhdGl6ZU9wdGlvbnMucGFyZW50TW9kZWwpdGhpcy5fbWV0aG9kSG9zdC5fYWRkRXZlbnRMaXN0ZW5lclRvTm9kZSh0LGUsKHQ9Pnt0Lm1vZGVsPXRoaXMsbih0KX0pKTtlbHNle2xldCBpPXRoaXMuX19kYXRhSG9zdC5fX2RhdGFIb3N0O2kmJmkuX2FkZEV2ZW50TGlzdGVuZXJUb05vZGUodCxlLG4pfX1fc2hvd0hpZGVDaGlsZHJlbih0KXtKcih0LHRoaXMuY2hpbGRyZW4pfV9zZXRVbm1hbmFnZWRQcm9wZXJ0eVRvTm9kZSh0LGUsbil7dC5fX2hpZGVUZW1wbGF0ZUNoaWxkcmVuX18mJnQubm9kZVR5cGU9PU5vZGUuVEVYVF9OT0RFJiYidGV4dENvbnRlbnQiPT1lP3QuX19wb2x5bWVyVGV4dENvbnRlbnRfXz1uOnN1cGVyLl9zZXRVbm1hbmFnZWRQcm9wZXJ0eVRvTm9kZSh0LGUsbil9Z2V0IHBhcmVudE1vZGVsKCl7bGV0IHQ9dGhpcy5fX3BhcmVudE1vZGVsO2lmKCF0KXtsZXQgZTt0PXRoaXM7ZG97dD10Ll9fZGF0YUhvc3QuX19kYXRhSG9zdH13aGlsZSgoZT10Ll9fdGVtcGxhdGl6ZU9wdGlvbnMpJiYhZS5wYXJlbnRNb2RlbCk7dGhpcy5fX3BhcmVudE1vZGVsPXR9cmV0dXJuIHR9ZGlzcGF0Y2hFdmVudCh0KXtyZXR1cm4hMH19Y29uc3QgdG89V3IoUXIpO2Z1bmN0aW9uIGVvKHQpe2xldCBlPXQuX19kYXRhSG9zdDtyZXR1cm4gZSYmZS5fbWV0aG9kSG9zdHx8ZX1mdW5jdGlvbiBubyh0LGUsbil7bGV0IGk9bi5tdXRhYmxlRGF0YT90bzpRcjthby5taXhpbiYmKGk9YW8ubWl4aW4oaSkpO2xldCByPWNsYXNzIGV4dGVuZHMgaXt9O3JldHVybiByLnByb3RvdHlwZS5fX3RlbXBsYXRpemVPcHRpb25zPW4sci5wcm90b3R5cGUuX2JpbmRUZW1wbGF0ZSh0KSwoZnVuY3Rpb24gbyh0LGUsbixpKXtsZXQgcj1uLmhvc3RQcm9wc3x8e307Zm9yKGxldCBlIGluIGkuaW5zdGFuY2VQcm9wcyl7ZGVsZXRlIHJbZV07bGV0IG49aS5ub3RpZnlJbnN0YW5jZVByb3A7biYmdC5wcm90b3R5cGUuX2FkZFByb3BlcnR5RWZmZWN0KGUsdC5wcm90b3R5cGUuUFJPUEVSVFlfRUZGRUNUX1RZUEVTLk5PVElGWSx7Zm46b28oZSxuKX0pfWlmKGkuZm9yd2FyZEhvc3RQcm9wJiZlLl9fZGF0YUhvc3QpZm9yKGxldCBlIGluIHIpbi5oYXNIb3N0UHJvcHN8fChuLmhhc0hvc3RQcm9wcz0hMCksdC5wcm90b3R5cGUuX2FkZFByb3BlcnR5RWZmZWN0KGUsdC5wcm90b3R5cGUuUFJPUEVSVFlfRUZGRUNUX1RZUEVTLk5PVElGWSx7Zm46ZnVuY3Rpb24gdChlLG4saSl7ZS5fX2RhdGFIb3N0Ll9zZXRQZW5kaW5nUHJvcGVydHlPclBhdGgoIl9ob3N0XyIrbixpW25dLCEwLCEwKX19KX0pKHIsdCxlLG4pLHJ9ZnVuY3Rpb24gaW8odCxlLG4saSl7bGV0IHI9bi5mb3J3YXJkSG9zdFByb3A7aWYociYmZS5oYXNIb3N0UHJvcHMpe2NvbnN0IG89InRlbXBsYXRlIj09dC5sb2NhbE5hbWU7bGV0IGE9ZS50ZW1wbGF0aXplVGVtcGxhdGVDbGFzcztpZighYSl7aWYobyl7bGV0IHQ9bi5tdXRhYmxlRGF0YT9LcjokcjtjbGFzcyBpIGV4dGVuZHMgdHt9YT1lLnRlbXBsYXRpemVUZW1wbGF0ZUNsYXNzPWl9ZWxzZXtjb25zdCBuPXQuY29uc3RydWN0b3I7Y2xhc3MgaSBleHRlbmRzIG57fWE9ZS50ZW1wbGF0aXplVGVtcGxhdGVDbGFzcz1pfWxldCBzPWUuaG9zdFByb3BzO2ZvcihsZXQgdCBpbiBzKWEucHJvdG90eXBlLl9hZGRQcm9wZXJ0eUVmZmVjdCgiX2hvc3RfIit0LGEucHJvdG90eXBlLlBST1BFUlRZX0VGRkVDVF9UWVBFUy5QUk9QQUdBVEUse2ZuOnJvKHQscil9KSxhLnByb3RvdHlwZS5fY3JlYXRlTm90aWZ5aW5nUHJvcGVydHkoIl9ob3N0XyIrdCk7UyYmaSYmKGZ1bmN0aW9uIG8odCxlLG4pe2NvbnN0IGk9bi5jb25zdHJ1Y3Rvci5fcHJvcGVydGllcyx7cHJvcGVydHlFZmZlY3RzOnJ9PXQse2luc3RhbmNlUHJvcHM6b309ZTtmb3IobGV0IHQgaW4gcilpZighKGlbdF18fG8mJm9bdF0pKXtjb25zdCBlPXJbdF07Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspe2NvbnN0e3BhcnQ6aX09ZVtuXS5pbmZvO2lmKCFpLnNpZ25hdHVyZXx8IWkuc2lnbmF0dXJlLnN0YXRpYyl7Y29uc29sZS53YXJuKGBQcm9wZXJ0eSAnJHt0fScgdXNlZCBpbiB0ZW1wbGF0ZSBidXQgbm90IGRlY2xhcmVkIGluICdwcm9wZXJ0aWVzJzsgYXR0cmlidXRlIHdpbGwgbm90IGJlIG9ic2VydmVkLmApO2JyZWFrfX19fSkoZSxuLGkpfWlmKHQuX19kYXRhUHJvdG8mJk9iamVjdC5hc3NpZ24odC5fX2RhdGEsdC5fX2RhdGFQcm90byksbykhKGZ1bmN0aW9uIGEodCxlKXtZcj10LE9iamVjdC5zZXRQcm90b3R5cGVPZih0LGUucHJvdG90eXBlKSxuZXcgZSxZcj1udWxsfSkodCxhKSx0Ll9fZGF0YVRlbXA9e30sdC5fX2RhdGFQZW5kaW5nPW51bGwsdC5fX2RhdGFPbGQ9bnVsbCx0Ll9lbmFibGVQcm9wZXJ0aWVzKCk7ZWxzZXtPYmplY3Quc2V0UHJvdG90eXBlT2YodCxhLnByb3RvdHlwZSk7Y29uc3Qgbj1lLmhvc3RQcm9wcztmb3IobGV0IGUgaW4gbilpZihlPSJfaG9zdF8iK2UsZSBpbiB0KXtjb25zdCBuPXRbZV07ZGVsZXRlIHRbZV0sdC5fX2RhdGFbZV09bn19fX1mdW5jdGlvbiBybyh0LGUpe3JldHVybiBmdW5jdGlvbiB0KG4saSxyKXtlLmNhbGwobi5fX3RlbXBsYXRpemVPd25lcixpLnN1YnN0cmluZygiX2hvc3RfIi5sZW5ndGgpLHJbaV0pfX1mdW5jdGlvbiBvbyh0LGUpe3JldHVybiBmdW5jdGlvbiB0KG4saSxyKXtlLmNhbGwobi5fX3RlbXBsYXRpemVPd25lcixuLGkscltpXSl9fWZ1bmN0aW9uIGFvKHQsZSxuKXtpZihiJiYhZW8odCkpdGhyb3cgbmV3IEVycm9yKCJzdHJpY3RUZW1wbGF0ZVBvbGljeTogdGVtcGxhdGUgb3duZXIgbm90IHRydXN0ZWQiKTtpZihuPW58fHt9LHQuX190ZW1wbGF0aXplT3duZXIpdGhyb3cgbmV3IEVycm9yKCJBIDx0ZW1wbGF0ZT4gY2FuIG9ubHkgYmUgdGVtcGxhdGl6ZWQgb25jZSIpO3QuX190ZW1wbGF0aXplT3duZXI9ZTtsZXQgaT0oZT9lLmNvbnN0cnVjdG9yOlFyKS5fcGFyc2VUZW1wbGF0ZSh0KSxyPWkudGVtcGxhdGl6ZUluc3RhbmNlQ2xhc3M7cnx8KHI9bm8odCxpLG4pLGkudGVtcGxhdGl6ZUluc3RhbmNlQ2xhc3M9cik7Y29uc3Qgbz1lbyh0KTtpbyh0LGksbixvKTtsZXQgYT1jbGFzcyBleHRlbmRzIHJ7fTtyZXR1cm4gYS5wcm90b3R5cGUuX21ldGhvZEhvc3Q9byxhLnByb3RvdHlwZS5fX2RhdGFIb3N0PXQsYS5wcm90b3R5cGUuX190ZW1wbGF0aXplT3duZXI9ZSxhLnByb3RvdHlwZS5fX2hvc3RQcm9wcz1pLmhvc3RQcm9wcyxhPWEsYX1mdW5jdGlvbiBzbyh0LGUpe2xldCBuO2Zvcig7ZTspaWYobj1lLl9fZGF0YUhvc3Q/ZTplLl9fdGVtcGxhdGl6ZUluc3RhbmNlKXtpZihuLl9fZGF0YUhvc3Q9PXQpcmV0dXJuIG47ZT1uLl9fZGF0YUhvc3R9ZWxzZSBlPVkoZSkucGFyZW50Tm9kZTtyZXR1cm4gbnVsbH0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9jb25zdCBsbz17dGVtcGxhdGl6ZSh0LGUpe3RoaXMuX3RlbXBsYXRpemVyVGVtcGxhdGU9dCx0aGlzLmN0b3I9YW8odCx0aGlzLHttdXRhYmxlRGF0YTpCb29sZWFuKGUpLHBhcmVudE1vZGVsOnRoaXMuX3BhcmVudE1vZGVsLGluc3RhbmNlUHJvcHM6dGhpcy5faW5zdGFuY2VQcm9wcyxmb3J3YXJkSG9zdFByb3A6dGhpcy5fZm9yd2FyZEhvc3RQcm9wVjIsbm90aWZ5SW5zdGFuY2VQcm9wOnRoaXMuX25vdGlmeUluc3RhbmNlUHJvcFYyfSl9LHN0YW1wKHQpe3JldHVybiBuZXcgdGhpcy5jdG9yKHQpfSxtb2RlbEZvckVsZW1lbnQodCl7cmV0dXJuIHNvKHRoaXMuX3RlbXBsYXRpemVyVGVtcGxhdGUsdCl9fTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9sZXQgY289ITE7ZnVuY3Rpb24gdW8oKXtpZih3JiYhbSl7aWYoIWNvKXtjbz0hMDtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7dC50ZXh0Q29udGVudD0iZG9tLWJpbmQsZG9tLWlmLGRvbS1yZXBlYXR7ZGlzcGxheTpub25lO30iLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodCl9cmV0dXJuITB9cmV0dXJuITF9Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovY29uc3QgaG89YmkocXIoZmUoSFRNTEVsZW1lbnQpKSk7Y3VzdG9tRWxlbWVudHMuZGVmaW5lKCJkb20tYmluZCIsY2xhc3MgZXh0ZW5kcyBob3tzdGF0aWMgZ2V0IG9ic2VydmVkQXR0cmlidXRlcygpe3JldHVyblsibXV0YWJsZS1kYXRhIl19Y29uc3RydWN0b3IoKXtpZihzdXBlcigpLGIpdGhyb3cgbmV3IEVycm9yKCJzdHJpY3RUZW1wbGF0ZVBvbGljeTogZG9tLWJpbmQgbm90IGFsbG93ZWQiKTt0aGlzLnJvb3Q9bnVsbCx0aGlzLiQ9bnVsbCx0aGlzLl9fY2hpbGRyZW49bnVsbH1hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodCxlLG4saSl7dGhpcy5tdXRhYmxlRGF0YT0hMH1jb25uZWN0ZWRDYWxsYmFjaygpe3VvKCl8fCh0aGlzLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSx0aGlzLnJlbmRlcigpfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5fX3JlbW92ZUNoaWxkcmVuKCl9X19pbnNlcnRDaGlsZHJlbigpe1koWSh0aGlzKS5wYXJlbnROb2RlKS5pbnNlcnRCZWZvcmUodGhpcy5yb290LHRoaXMpfV9fcmVtb3ZlQ2hpbGRyZW4oKXtpZih0aGlzLl9fY2hpbGRyZW4pZm9yKGxldCB0PTA7dDx0aGlzLl9fY2hpbGRyZW4ubGVuZ3RoO3QrKyl0aGlzLnJvb3QuYXBwZW5kQ2hpbGQodGhpcy5fX2NoaWxkcmVuW3RdKX1yZW5kZXIoKXtsZXQgdDtpZighdGhpcy5fX2NoaWxkcmVuKXtpZih0PXR8fHRoaXMucXVlcnlTZWxlY3RvcigidGVtcGxhdGUiKSwhdCl7bGV0IGU9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCgpPT57aWYodD10aGlzLnF1ZXJ5U2VsZWN0b3IoInRlbXBsYXRlIiksIXQpdGhyb3cgbmV3IEVycm9yKCJkb20tYmluZCByZXF1aXJlcyBhIDx0ZW1wbGF0ZT4gY2hpbGQiKTtlLmRpc2Nvbm5lY3QoKSx0aGlzLnJlbmRlcigpfSkpO3JldHVybiB2b2lkIGUub2JzZXJ2ZSh0aGlzLHtjaGlsZExpc3Q6ITB9KX10aGlzLnJvb3Q9dGhpcy5fc3RhbXBUZW1wbGF0ZSh0KSx0aGlzLiQ9dGhpcy5yb290LiQsdGhpcy5fX2NoaWxkcmVuPVtdO2ZvcihsZXQgdD10aGlzLnJvb3QuZmlyc3RDaGlsZDt0O3Q9dC5uZXh0U2libGluZyl0aGlzLl9fY2hpbGRyZW5bdGhpcy5fX2NoaWxkcmVuLmxlbmd0aF09dDt0aGlzLl9lbmFibGVQcm9wZXJ0aWVzKCl9dGhpcy5fX2luc2VydENoaWxkcmVuKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZG9tLWNoYW5nZSIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IHBvPXFyKHdlKTtjbGFzcyBmbyBleHRlbmRzIHBve3N0YXRpYyBnZXQgaXMoKXtyZXR1cm4iZG9tLXJlcGVhdCJ9c3RhdGljIGdldCB0ZW1wbGF0ZSgpe3JldHVybiBudWxsfXN0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntpdGVtczp7dHlwZTpBcnJheX0sYXM6e3R5cGU6U3RyaW5nLHZhbHVlOiJpdGVtIn0saW5kZXhBczp7dHlwZTpTdHJpbmcsdmFsdWU6ImluZGV4In0saXRlbXNJbmRleEFzOnt0eXBlOlN0cmluZyx2YWx1ZToiaXRlbXNJbmRleCJ9LHNvcnQ6e3R5cGU6RnVuY3Rpb24sb2JzZXJ2ZXI6Il9fc29ydENoYW5nZWQifSxmaWx0ZXI6e3R5cGU6RnVuY3Rpb24sb2JzZXJ2ZXI6Il9fZmlsdGVyQ2hhbmdlZCJ9LG9ic2VydmU6e3R5cGU6U3RyaW5nLG9ic2VydmVyOiJfX29ic2VydmVDaGFuZ2VkIn0sZGVsYXk6TnVtYmVyLHJlbmRlcmVkSXRlbUNvdW50Ont0eXBlOk51bWJlcixub3RpZnk6IWsscmVhZE9ubHk6ITB9LGluaXRpYWxDb3VudDp7dHlwZTpOdW1iZXJ9LHRhcmdldEZyYW1lcmF0ZTp7dHlwZTpOdW1iZXIsdmFsdWU6MjB9LF90YXJnZXRGcmFtZVRpbWU6e3R5cGU6TnVtYmVyLGNvbXB1dGVkOiJfX2NvbXB1dGVGcmFtZVRpbWUodGFyZ2V0RnJhbWVyYXRlKSJ9LG5vdGlmeURvbUNoYW5nZTp7dHlwZTpCb29sZWFufSxyZXVzZUNodW5rZWRJbnN0YW5jZXM6e3R5cGU6Qm9vbGVhbn19fXN0YXRpYyBnZXQgb2JzZXJ2ZXJzKCl7cmV0dXJuWyJfX2l0ZW1zQ2hhbmdlZChpdGVtcy4qKSJdfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9faW5zdGFuY2VzPVtdLHRoaXMuX19yZW5kZXJEZWJvdW5jZXI9bnVsbCx0aGlzLl9faXRlbXNJZHhUb0luc3RJZHg9e30sdGhpcy5fX2NodW5rQ291bnQ9bnVsbCx0aGlzLl9fcmVuZGVyU3RhcnRUaW1lPW51bGwsdGhpcy5fX2l0ZW1zQXJyYXlDaGFuZ2VkPSExLHRoaXMuX19zaG91bGRNZWFzdXJlQ2h1bms9ITEsdGhpcy5fX3Nob3VsZENvbnRpbnVlQ2h1bmtpbmc9ITEsdGhpcy5fX2NodW5raW5nSWQ9MCx0aGlzLl9fc29ydEZuPW51bGwsdGhpcy5fX2ZpbHRlckZuPW51bGwsdGhpcy5fX29ic2VydmVQYXRocz1udWxsLHRoaXMuX19jdG9yPW51bGwsdGhpcy5fX2lzRGV0YWNoZWQ9ITAsdGhpcy50ZW1wbGF0ZT1udWxsfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl9faXNEZXRhY2hlZD0hMDtmb3IobGV0IHQ9MDt0PHRoaXMuX19pbnN0YW5jZXMubGVuZ3RoO3QrKyl0aGlzLl9fZGV0YWNoSW5zdGFuY2UodCl9Y29ubmVjdGVkQ2FsbGJhY2soKXtpZihzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHVvKCl8fCh0aGlzLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSx0aGlzLl9faXNEZXRhY2hlZCl7dGhpcy5fX2lzRGV0YWNoZWQ9ITE7bGV0IHQ9WShZKHRoaXMpLnBhcmVudE5vZGUpO2ZvcihsZXQgZT0wO2U8dGhpcy5fX2luc3RhbmNlcy5sZW5ndGg7ZSsrKXRoaXMuX19hdHRhY2hJbnN0YW5jZShlLHQpfX1fX2Vuc3VyZVRlbXBsYXRpemVkKCl7aWYoIXRoaXMuX19jdG9yKXtjb25zdCB0PXRoaXM7bGV0IGU9dGhpcy50ZW1wbGF0ZT10Ll90ZW1wbGF0ZUluZm8/dDp0aGlzLnF1ZXJ5U2VsZWN0b3IoInRlbXBsYXRlIik7aWYoIWUpe2xldCB0PW5ldyBNdXRhdGlvbk9ic2VydmVyKCgoKT0+e2lmKCF0aGlzLnF1ZXJ5U2VsZWN0b3IoInRlbXBsYXRlIikpdGhyb3cgbmV3IEVycm9yKCJkb20tcmVwZWF0IHJlcXVpcmVzIGEgPHRlbXBsYXRlPiBjaGlsZCIpO3QuZGlzY29ubmVjdCgpLHRoaXMuX19yZW5kZXIoKX0pKTtyZXR1cm4gdC5vYnNlcnZlKHRoaXMse2NoaWxkTGlzdDohMH0pLCExfWxldCBuPXt9O25bdGhpcy5hc109ITAsblt0aGlzLmluZGV4QXNdPSEwLG5bdGhpcy5pdGVtc0luZGV4QXNdPSEwLHRoaXMuX19jdG9yPWFvKGUsdGhpcyx7bXV0YWJsZURhdGE6dGhpcy5tdXRhYmxlRGF0YSxwYXJlbnRNb2RlbDohMCxpbnN0YW5jZVByb3BzOm4sZm9yd2FyZEhvc3RQcm9wOmZ1bmN0aW9uKHQsZSl7bGV0IG49dGhpcy5fX2luc3RhbmNlcztmb3IobGV0IGkscj0wO3I8bi5sZW5ndGgmJihpPW5bcl0pO3IrKylpLmZvcndhcmRIb3N0UHJvcCh0LGUpfSxub3RpZnlJbnN0YW5jZVByb3A6ZnVuY3Rpb24odCxlLG4pe2lmKFEodGhpcy5hcyxlKSl7bGV0IGk9dFt0aGlzLml0ZW1zSW5kZXhBc107ZT09dGhpcy5hcyYmKHRoaXMuaXRlbXNbaV09bik7bGV0IHI9Sih0aGlzLmFzLGAke0pTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIml0ZW1zIix0aGlzKX0uJHtpfWAsZSk7dGhpcy5ub3RpZnlQYXRoKHIsbil9fX0pfXJldHVybiEwfV9fZ2V0TWV0aG9kSG9zdCgpe3JldHVybiB0aGlzLl9fZGF0YUhvc3QuX21ldGhvZEhvc3R8fHRoaXMuX19kYXRhSG9zdH1fX2Z1bmN0aW9uRnJvbVByb3BlcnR5VmFsdWUodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtsZXQgZT10LG49dGhpcy5fX2dldE1ldGhvZEhvc3QoKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbltlXS5hcHBseShuLGFyZ3VtZW50cyl9fXJldHVybiB0fV9fc29ydENoYW5nZWQodCl7dGhpcy5fX3NvcnRGbj10aGlzLl9fZnVuY3Rpb25Gcm9tUHJvcGVydHlWYWx1ZSh0KSx0aGlzLml0ZW1zJiZ0aGlzLl9fZGVib3VuY2VSZW5kZXIodGhpcy5fX3JlbmRlcil9X19maWx0ZXJDaGFuZ2VkKHQpe3RoaXMuX19maWx0ZXJGbj10aGlzLl9fZnVuY3Rpb25Gcm9tUHJvcGVydHlWYWx1ZSh0KSx0aGlzLml0ZW1zJiZ0aGlzLl9fZGVib3VuY2VSZW5kZXIodGhpcy5fX3JlbmRlcil9X19jb21wdXRlRnJhbWVUaW1lKHQpe3JldHVybiBNYXRoLmNlaWwoMWUzL3QpfV9fb2JzZXJ2ZUNoYW5nZWQoKXt0aGlzLl9fb2JzZXJ2ZVBhdGhzPXRoaXMub2JzZXJ2ZSYmdGhpcy5vYnNlcnZlLnJlcGxhY2UoIi4qIiwiLiIpLnNwbGl0KCIgIil9X19oYW5kbGVPYnNlcnZlZFBhdGhzKHQpe2lmKHRoaXMuX19zb3J0Rm58fHRoaXMuX19maWx0ZXJGbilpZih0KXtpZih0aGlzLl9fb2JzZXJ2ZVBhdGhzKXtsZXQgZT10aGlzLl9fb2JzZXJ2ZVBhdGhzO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKTA9PT10LmluZGV4T2YoZVtuXSkmJnRoaXMuX19kZWJvdW5jZVJlbmRlcih0aGlzLl9fcmVuZGVyLHRoaXMuZGVsYXkpfX1lbHNlIHRoaXMuX19kZWJvdW5jZVJlbmRlcih0aGlzLl9fcmVuZGVyLHRoaXMuZGVsYXkpfV9faXRlbXNDaGFuZ2VkKHQpe3RoaXMuaXRlbXMmJiFBcnJheS5pc0FycmF5KHRoaXMuaXRlbXMpJiZjb25zb2xlLndhcm4oImRvbS1yZXBlYXQgZXhwZWN0ZWQgYXJyYXkgZm9yIGBpdGVtc2AsIGZvdW5kIix0aGlzLml0ZW1zKSx0aGlzLl9faGFuZGxlSXRlbVBhdGgodC5wYXRoLHQudmFsdWUpfHwoIml0ZW1zIj09PXQucGF0aCYmKHRoaXMuX19pdGVtc0FycmF5Q2hhbmdlZD0hMCksdGhpcy5fX2RlYm91bmNlUmVuZGVyKHRoaXMuX19yZW5kZXIpKX1fX2RlYm91bmNlUmVuZGVyKHQsZT0wKXt0aGlzLl9fcmVuZGVyRGVib3VuY2VyPU5uLmRlYm91bmNlKHRoaXMuX19yZW5kZXJEZWJvdW5jZXIsZT4wP2d0LmFmdGVyKGUpOnZ0LHQuYmluZCh0aGlzKSksUm4odGhpcy5fX3JlbmRlckRlYm91bmNlcil9cmVuZGVyKCl7dGhpcy5fX2RlYm91bmNlUmVuZGVyKHRoaXMuX19yZW5kZXIpLFdpKCl9X19yZW5kZXIoKXtpZighdGhpcy5fX2Vuc3VyZVRlbXBsYXRpemVkKCkpcmV0dXJuO2xldCB0PXRoaXMuaXRlbXN8fFtdO2NvbnN0IGU9dGhpcy5fX3NvcnRBbmRGaWx0ZXJJdGVtcyh0KSxuPXRoaXMuX19jYWxjdWxhdGVMaW1pdChlLmxlbmd0aCk7dGhpcy5fX3VwZGF0ZUluc3RhbmNlcyh0LG4sZSksdGhpcy5pbml0aWFsQ291bnQmJih0aGlzLl9fc2hvdWxkTWVhc3VyZUNodW5rfHx0aGlzLl9fc2hvdWxkQ29udGludWVDaHVua2luZykmJihjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9fY2h1bmtpbmdJZCksdGhpcy5fX2NodW5raW5nSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+dGhpcy5fX2NvbnRpbnVlQ2h1bmtpbmcoKSkpKSx0aGlzLl9zZXRSZW5kZXJlZEl0ZW1Db3VudCh0aGlzLl9faW5zdGFuY2VzLmxlbmd0aCksayYmIXRoaXMubm90aWZ5RG9tQ2hhbmdlfHx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkb20tY2hhbmdlIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1fX3NvcnRBbmRGaWx0ZXJJdGVtcyh0KXtsZXQgZT1uZXcgQXJyYXkodC5sZW5ndGgpO2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKWVbbl09bjtyZXR1cm4gdGhpcy5fX2ZpbHRlckZuJiYoZT1lLmZpbHRlcigoKGUsbixpKT0+dGhpcy5fX2ZpbHRlckZuKHRbZV0sbixpKSkpKSx0aGlzLl9fc29ydEZuJiZlLnNvcnQoKChlLG4pPT50aGlzLl9fc29ydEZuKHRbZV0sdFtuXSkpKSxlfV9fY2FsY3VsYXRlTGltaXQodCl7bGV0IGU9dDtjb25zdCBuPXRoaXMuX19pbnN0YW5jZXMubGVuZ3RoO2lmKHRoaXMuaW5pdGlhbENvdW50KXtsZXQgaTshdGhpcy5fX2NodW5rQ291bnR8fHRoaXMuX19pdGVtc0FycmF5Q2hhbmdlZCYmIXRoaXMucmV1c2VDaHVua2VkSW5zdGFuY2VzPyhlPU1hdGgubWluKHQsdGhpcy5pbml0aWFsQ291bnQpLGk9TWF0aC5tYXgoZS1uLDApLHRoaXMuX19jaHVua0NvdW50PWl8fDEpOihpPU1hdGgubWluKE1hdGgubWF4KHQtbiwwKSx0aGlzLl9fY2h1bmtDb3VudCksZT1NYXRoLm1pbihuK2ksdCkpLHRoaXMuX19zaG91bGRNZWFzdXJlQ2h1bms9aT09PXRoaXMuX19jaHVua0NvdW50LHRoaXMuX19zaG91bGRDb250aW51ZUNodW5raW5nPWU8dCx0aGlzLl9fcmVuZGVyU3RhcnRUaW1lPXBlcmZvcm1hbmNlLm5vdygpfXJldHVybiB0aGlzLl9faXRlbXNBcnJheUNoYW5nZWQ9ITEsZX1fX2NvbnRpbnVlQ2h1bmtpbmcoKXtpZih0aGlzLl9fc2hvdWxkTWVhc3VyZUNodW5rKXtjb25zdCB0PXBlcmZvcm1hbmNlLm5vdygpLXRoaXMuX19yZW5kZXJTdGFydFRpbWU7dGhpcy5fX2NodW5rQ291bnQ9TWF0aC5yb3VuZCh0aGlzLl9fY2h1bmtDb3VudCoodGhpcy5fdGFyZ2V0RnJhbWVUaW1lL3QpKXx8MX10aGlzLl9fc2hvdWxkQ29udGludWVDaHVua2luZyYmdGhpcy5fX2RlYm91bmNlUmVuZGVyKHRoaXMuX19yZW5kZXIpfV9fdXBkYXRlSW5zdGFuY2VzKHQsZSxuKXtjb25zdCBpPXRoaXMuX19pdGVtc0lkeFRvSW5zdElkeD17fTtsZXQgcjtmb3Iocj0wO3I8ZTtyKyspe2xldCBlPXRoaXMuX19pbnN0YW5jZXNbcl0sbz1uW3JdLGE9dFtvXTtpW29dPXIsZT8oZS5fc2V0UGVuZGluZ1Byb3BlcnR5KHRoaXMuYXMsYSksZS5fc2V0UGVuZGluZ1Byb3BlcnR5KHRoaXMuaW5kZXhBcyxyKSxlLl9zZXRQZW5kaW5nUHJvcGVydHkodGhpcy5pdGVtc0luZGV4QXMsbyksZS5fZmx1c2hQcm9wZXJ0aWVzKCkpOnRoaXMuX19pbnNlcnRJbnN0YW5jZShhLHIsbyl9Zm9yKGxldCB0PXRoaXMuX19pbnN0YW5jZXMubGVuZ3RoLTE7dD49cjt0LS0pdGhpcy5fX2RldGFjaEFuZFJlbW92ZUluc3RhbmNlKHQpfV9fZGV0YWNoSW5zdGFuY2UodCl7bGV0IGU9dGhpcy5fX2luc3RhbmNlc1t0XTtjb25zdCBuPVkoZS5yb290KTtmb3IobGV0IHQ9MDt0PGUuY2hpbGRyZW4ubGVuZ3RoO3QrKyl7bi5hcHBlbmRDaGlsZChlLmNoaWxkcmVuW3RdKX1yZXR1cm4gZX1fX2F0dGFjaEluc3RhbmNlKHQsZSl7ZS5pbnNlcnRCZWZvcmUodGhpcy5fX2luc3RhbmNlc1t0XS5yb290LHRoaXMpfV9fZGV0YWNoQW5kUmVtb3ZlSW5zdGFuY2UodCl7dGhpcy5fX2RldGFjaEluc3RhbmNlKHQpLHRoaXMuX19pbnN0YW5jZXMuc3BsaWNlKHQsMSl9X19zdGFtcEluc3RhbmNlKHQsZSxuKXtsZXQgaT17fTtyZXR1cm4gaVt0aGlzLmFzXT10LGlbdGhpcy5pbmRleEFzXT1lLGlbdGhpcy5pdGVtc0luZGV4QXNdPW4sbmV3IHRoaXMuX19jdG9yKGkpfV9faW5zZXJ0SW5zdGFuY2UodCxlLG4pe2NvbnN0IGk9dGhpcy5fX3N0YW1wSW5zdGFuY2UodCxlLG4pO2xldCByPXRoaXMuX19pbnN0YW5jZXNbZSsxXSxvPXI/ci5jaGlsZHJlblswXTp0aGlzO3JldHVybiBZKFkodGhpcykucGFyZW50Tm9kZSkuaW5zZXJ0QmVmb3JlKGkucm9vdCxvKSx0aGlzLl9faW5zdGFuY2VzW2VdPWksaX1fc2hvd0hpZGVDaGlsZHJlbih0KXtmb3IobGV0IGU9MDtlPHRoaXMuX19pbnN0YW5jZXMubGVuZ3RoO2UrKyl0aGlzLl9faW5zdGFuY2VzW2VdLl9zaG93SGlkZUNoaWxkcmVuKHQpfV9faGFuZGxlSXRlbVBhdGgodCxlKXtsZXQgbj10LnNsaWNlKDYpLGk9bi5pbmRleE9mKCIuIikscj1pPDA/bjpuLnN1YnN0cmluZygwLGkpO2lmKHI9PXBhcnNlSW50KHIsMTApKXtsZXQgdD1pPDA/IiI6bi5zdWJzdHJpbmcoaSsxKTt0aGlzLl9faGFuZGxlT2JzZXJ2ZWRQYXRocyh0KTtsZXQgbz10aGlzLl9faW5zdGFuY2VzW3RoaXMuX19pdGVtc0lkeFRvSW5zdElkeFtyXV07aWYobyl7by5fc2V0UGVuZGluZ1Byb3BlcnR5T3JQYXRoKHRoaXMuYXMrKHQ/Ii4iK3Q6IiIpLGUsITEsITApLG8uX2ZsdXNoUHJvcGVydGllcygpfXJldHVybiEwfX1pdGVtRm9yRWxlbWVudCh0KXtsZXQgZT10aGlzLm1vZGVsRm9yRWxlbWVudCh0KTtyZXR1cm4gZSYmZVt0aGlzLmFzXX1pbmRleEZvckVsZW1lbnQodCl7bGV0IGU9dGhpcy5tb2RlbEZvckVsZW1lbnQodCk7cmV0dXJuIGUmJmVbdGhpcy5pbmRleEFzXX1tb2RlbEZvckVsZW1lbnQodCl7cmV0dXJuIHNvKHRoaXMudGVtcGxhdGUsdCl9fWN1c3RvbUVsZW1lbnRzLmRlZmluZShmby5pcyxmbyk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNsYXNzIG1vIGV4dGVuZHMgd2V7c3RhdGljIGdldCBpcygpe3JldHVybiJkb20taWYifXN0YXRpYyBnZXQgdGVtcGxhdGUoKXtyZXR1cm4gbnVsbH1zdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57aWY6e3R5cGU6Qm9vbGVhbixvYnNlcnZlcjoiX19kZWJvdW5jZVJlbmRlciJ9LHJlc3RhbXA6e3R5cGU6Qm9vbGVhbixvYnNlcnZlcjoiX19kZWJvdW5jZVJlbmRlciJ9LG5vdGlmeURvbUNoYW5nZTp7dHlwZTpCb29sZWFufX19Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX19yZW5kZXJEZWJvdW5jZXI9bnVsbCx0aGlzLl9sYXN0SWY9ITEsdGhpcy5fX2hpZGVUZW1wbGF0ZUNoaWxkcmVuX189ITF9X19kZWJvdW5jZVJlbmRlcigpe3RoaXMuX19yZW5kZXJEZWJvdW5jZXI9Tm4uZGVib3VuY2UodGhpcy5fX3JlbmRlckRlYm91bmNlcix2dCwoKCk9PnRoaXMuX19yZW5kZXIoKSkpLFJuKHRoaXMuX19yZW5kZXJEZWJvdW5jZXIpfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtjb25zdCB0PVkodGhpcykucGFyZW50Tm9kZTt0JiYodC5ub2RlVHlwZSE9Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFfHxZKHQpLmhvc3QpfHx0aGlzLl9fdGVhcmRvd25JbnN0YW5jZSgpfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx1bygpfHwodGhpcy5zdHlsZS5kaXNwbGF5PSJub25lIiksdGhpcy5pZiYmdGhpcy5fX2RlYm91bmNlUmVuZGVyKCl9X19lbnN1cmVUZW1wbGF0ZSgpe2lmKCF0aGlzLl9fdGVtcGxhdGUpe2NvbnN0IHQ9dGhpcztsZXQgZT10Ll90ZW1wbGF0ZUluZm8/dDpZKHQpLnF1ZXJ5U2VsZWN0b3IoInRlbXBsYXRlIik7aWYoIWUpe2xldCB0PW5ldyBNdXRhdGlvbk9ic2VydmVyKCgoKT0+e2lmKCFZKHRoaXMpLnF1ZXJ5U2VsZWN0b3IoInRlbXBsYXRlIikpdGhyb3cgbmV3IEVycm9yKCJkb20taWYgcmVxdWlyZXMgYSA8dGVtcGxhdGU+IGNoaWxkIik7dC5kaXNjb25uZWN0KCksdGhpcy5fX3JlbmRlcigpfSkpO3JldHVybiB0Lm9ic2VydmUodGhpcyx7Y2hpbGRMaXN0OiEwfSksITF9dGhpcy5fX3RlbXBsYXRlPWV9cmV0dXJuITB9X19lbnN1cmVJbnN0YW5jZSgpe2xldCB0PVkodGhpcykucGFyZW50Tm9kZTtpZih0aGlzLl9faGFzSW5zdGFuY2UoKSl7bGV0IGU9dGhpcy5fX2dldEluc3RhbmNlTm9kZXMoKTtpZihlJiZlLmxlbmd0aCl7aWYoWSh0aGlzKS5wcmV2aW91c1NpYmxpbmchPT1lW2UubGVuZ3RoLTFdKWZvcihsZXQgbixpPTA7aTxlLmxlbmd0aCYmKG49ZVtpXSk7aSsrKVkodCkuaW5zZXJ0QmVmb3JlKG4sdGhpcyl9fWVsc2V7aWYoIXQpcmV0dXJuITE7aWYoIXRoaXMuX19lbnN1cmVUZW1wbGF0ZSgpKXJldHVybiExO3RoaXMuX19jcmVhdGVBbmRJbnNlcnRJbnN0YW5jZSh0KX1yZXR1cm4hMH1yZW5kZXIoKXtXaSgpfV9fcmVuZGVyKCl7aWYodGhpcy5pZil7aWYoIXRoaXMuX19lbnN1cmVJbnN0YW5jZSgpKXJldHVybn1lbHNlIHRoaXMucmVzdGFtcCYmdGhpcy5fX3RlYXJkb3duSW5zdGFuY2UoKTt0aGlzLl9zaG93SGlkZUNoaWxkcmVuKCksayYmIXRoaXMubm90aWZ5RG9tQ2hhbmdlfHx0aGlzLmlmPT10aGlzLl9sYXN0SWZ8fCh0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkb20tY2hhbmdlIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLl9sYXN0SWY9dGhpcy5pZil9X19oYXNJbnN0YW5jZSgpe31fX2dldEluc3RhbmNlTm9kZXMoKXt9X19jcmVhdGVBbmRJbnNlcnRJbnN0YW5jZSh0KXt9X190ZWFyZG93bkluc3RhbmNlKCl7fV9zaG93SGlkZUNoaWxkcmVuKCl7fX1jb25zdCBnbz1BP2NsYXNzIGV4dGVuZHMgbW97Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX19pbnN0YW5jZT1udWxsLHRoaXMuX19zeW5jSW5mbz1udWxsfV9faGFzSW5zdGFuY2UoKXtyZXR1cm4gQm9vbGVhbih0aGlzLl9faW5zdGFuY2UpfV9fZ2V0SW5zdGFuY2VOb2Rlcygpe3JldHVybiB0aGlzLl9faW5zdGFuY2UudGVtcGxhdGVJbmZvLmNoaWxkTm9kZXN9X19jcmVhdGVBbmRJbnNlcnRJbnN0YW5jZSh0KXtjb25zdCBlPXRoaXMuX19kYXRhSG9zdHx8dGhpcztpZihiJiYhdGhpcy5fX2RhdGFIb3N0KXRocm93IG5ldyBFcnJvcigic3RyaWN0VGVtcGxhdGVQb2xpY3k6IHRlbXBsYXRlIG93bmVyIG5vdCB0cnVzdGVkIik7Y29uc3Qgbj1lLl9iaW5kVGVtcGxhdGUodGhpcy5fX3RlbXBsYXRlLCEwKTtuLnJ1bkVmZmVjdHM9KHQsZSxuKT0+e2xldCBpPXRoaXMuX19zeW5jSW5mbztpZih0aGlzLmlmKWkmJih0aGlzLl9fc3luY0luZm89bnVsbCx0aGlzLl9zaG93SGlkZUNoaWxkcmVuKCksZT1PYmplY3QuYXNzaWduKGkuY2hhbmdlZFByb3BzLGUpKSx0KGUsbik7ZWxzZSBpZih0aGlzLl9faW5zdGFuY2UpaWYoaXx8KGk9dGhpcy5fX3N5bmNJbmZvPXtydW5FZmZlY3RzOnQsY2hhbmdlZFByb3BzOnt9fSksbilmb3IoY29uc3QgdCBpbiBlKXtjb25zdCBlPSQodCk7aS5jaGFuZ2VkUHJvcHNbZV09dGhpcy5fX2RhdGFIb3N0W2VdfWVsc2UgT2JqZWN0LmFzc2lnbihpLmNoYW5nZWRQcm9wcyxlKX0sdGhpcy5fX2luc3RhbmNlPWUuX3N0YW1wVGVtcGxhdGUodGhpcy5fX3RlbXBsYXRlLG4pLFkodCkuaW5zZXJ0QmVmb3JlKHRoaXMuX19pbnN0YW5jZSx0aGlzKX1fX3N5bmNIb3N0UHJvcGVydGllcygpe2NvbnN0IHQ9dGhpcy5fX3N5bmNJbmZvO3QmJih0aGlzLl9fc3luY0luZm89bnVsbCx0LnJ1bkVmZmVjdHModC5jaGFuZ2VkUHJvcHMsITEpKX1fX3RlYXJkb3duSW5zdGFuY2UoKXt0aGlzLl9faW5zdGFuY2UmJigodGhpcy5fX2RhdGFIb3N0fHx0aGlzKS5fcmVtb3ZlQm91bmREb20odGhpcy5fX2luc3RhbmNlKSx0aGlzLl9faW5zdGFuY2U9bnVsbCx0aGlzLl9fc3luY0luZm89bnVsbCl9X3Nob3dIaWRlQ2hpbGRyZW4oKXtjb25zdCB0PXRoaXMuX19oaWRlVGVtcGxhdGVDaGlsZHJlbl9ffHwhdGhpcy5pZjt0aGlzLl9faW5zdGFuY2UmJkJvb2xlYW4odGhpcy5fX2luc3RhbmNlLl9faGlkZGVuKSE9PXQmJih0aGlzLl9faW5zdGFuY2UuX19oaWRkZW49dCxKcih0LHRoaXMuX19pbnN0YW5jZS50ZW1wbGF0ZUluZm8uY2hpbGROb2RlcykpLHR8fHRoaXMuX19zeW5jSG9zdFByb3BlcnRpZXMoKX19OmNsYXNzIGV4dGVuZHMgbW97Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX19jdG9yPW51bGwsdGhpcy5fX2luc3RhbmNlPW51bGwsdGhpcy5fX2ludmFsaWRQcm9wcz1udWxsfV9faGFzSW5zdGFuY2UoKXtyZXR1cm4gQm9vbGVhbih0aGlzLl9faW5zdGFuY2UpfV9fZ2V0SW5zdGFuY2VOb2Rlcygpe3JldHVybiB0aGlzLl9faW5zdGFuY2UuY2hpbGRyZW59X19jcmVhdGVBbmRJbnNlcnRJbnN0YW5jZSh0KXt0aGlzLl9fY3Rvcnx8KHRoaXMuX19jdG9yPWFvKHRoaXMuX190ZW1wbGF0ZSx0aGlzLHttdXRhYmxlRGF0YTohMCxmb3J3YXJkSG9zdFByb3A6ZnVuY3Rpb24odCxlKXt0aGlzLl9faW5zdGFuY2UmJih0aGlzLmlmP3RoaXMuX19pbnN0YW5jZS5mb3J3YXJkSG9zdFByb3AodCxlKToodGhpcy5fX2ludmFsaWRQcm9wcz10aGlzLl9faW52YWxpZFByb3BzfHxPYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX19pbnZhbGlkUHJvcHNbJCh0KV09ITApKX19KSksdGhpcy5fX2luc3RhbmNlPW5ldyB0aGlzLl9fY3RvcixZKHQpLmluc2VydEJlZm9yZSh0aGlzLl9faW5zdGFuY2Uucm9vdCx0aGlzKX1fX3RlYXJkb3duSW5zdGFuY2UoKXtpZih0aGlzLl9faW5zdGFuY2Upe2xldCB0PXRoaXMuX19pbnN0YW5jZS5jaGlsZHJlbjtpZih0JiZ0Lmxlbmd0aCl7bGV0IGU9WSh0WzBdKS5wYXJlbnROb2RlO2lmKGUpe2U9WShlKTtmb3IobGV0IG4saT0wO2k8dC5sZW5ndGgmJihuPXRbaV0pO2krKyllLnJlbW92ZUNoaWxkKG4pfX10aGlzLl9faW52YWxpZFByb3BzPW51bGwsdGhpcy5fX2luc3RhbmNlPW51bGx9fV9fc3luY0hvc3RQcm9wZXJ0aWVzKCl7bGV0IHQ9dGhpcy5fX2ludmFsaWRQcm9wcztpZih0KXt0aGlzLl9faW52YWxpZFByb3BzPW51bGw7Zm9yKGxldCBlIGluIHQpdGhpcy5fX2luc3RhbmNlLl9zZXRQZW5kaW5nUHJvcGVydHkoZSx0aGlzLl9fZGF0YUhvc3RbZV0pO3RoaXMuX19pbnN0YW5jZS5fZmx1c2hQcm9wZXJ0aWVzKCl9fV9zaG93SGlkZUNoaWxkcmVuKCl7Y29uc3QgdD10aGlzLl9faGlkZVRlbXBsYXRlQ2hpbGRyZW5fX3x8IXRoaXMuaWY7dGhpcy5fX2luc3RhbmNlJiZCb29sZWFuKHRoaXMuX19pbnN0YW5jZS5fX2hpZGRlbikhPT10JiYodGhpcy5fX2luc3RhbmNlLl9faGlkZGVuPXQsdGhpcy5fX2luc3RhbmNlLl9zaG93SGlkZUNoaWxkcmVuKHQpKSx0fHx0aGlzLl9fc3luY0hvc3RQcm9wZXJ0aWVzKCl9fTtjdXN0b21FbGVtZW50cy5kZWZpbmUoZ28uaXMsZ28pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpsZXQgX289SSgodD0+e2xldCBlPXllKHQpO3JldHVybiBjbGFzcyBleHRlbmRzIGV7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2l0ZW1zOnt0eXBlOkFycmF5fSxtdWx0aTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxzZWxlY3RlZDp7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSxzZWxlY3RlZEl0ZW06e3R5cGU6T2JqZWN0LG5vdGlmeTohMH0sdG9nZ2xlOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9fX1zdGF0aWMgZ2V0IG9ic2VydmVycygpe3JldHVyblsiX191cGRhdGVTZWxlY3Rpb24obXVsdGksIGl0ZW1zLiopIl19Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX19sYXN0SXRlbXM9bnVsbCx0aGlzLl9fbGFzdE11bHRpPW51bGwsdGhpcy5fX3NlbGVjdGVkTWFwPW51bGx9X191cGRhdGVTZWxlY3Rpb24odCxlKXtsZXQgbj1lLnBhdGg7aWYobj09SlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgiaXRlbXMiLHRoaXMpKXtsZXQgbj1lLmJhc2V8fFtdLGk9dGhpcy5fX2xhc3RJdGVtcztpZih0IT09dGhpcy5fX2xhc3RNdWx0aSYmdGhpcy5jbGVhclNlbGVjdGlvbigpLGkpe2xldCB0PVZpKG4saSk7dGhpcy5fX2FwcGx5U3BsaWNlcyh0KX10aGlzLl9fbGFzdEl0ZW1zPW4sdGhpcy5fX2xhc3RNdWx0aT10fWVsc2UgaWYoZS5wYXRoPT1gJHtKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJpdGVtcyIsdGhpcyl9LnNwbGljZXNgKXRoaXMuX19hcHBseVNwbGljZXMoZS52YWx1ZS5pbmRleFNwbGljZXMpO2Vsc2V7bGV0IHQ9bi5zbGljZShgJHtKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJpdGVtcyIsdGhpcyl9LmAubGVuZ3RoKSxlPXBhcnNlSW50KHQsMTApO3QuaW5kZXhPZigiLiIpPDAmJnQ9PWUmJnRoaXMuX19kZXNlbGVjdENoYW5nZWRJZHgoZSl9fV9fYXBwbHlTcGxpY2VzKHQpe2xldCBlPXRoaXMuX19zZWxlY3RlZE1hcDtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7bGV0IGk9dFtuXTtlLmZvckVhY2goKCh0LG4pPT57dDxpLmluZGV4fHxlLnNldChuLHQ+PWkuaW5kZXgraS5yZW1vdmVkLmxlbmd0aD90K2kuYWRkZWRDb3VudC1pLnJlbW92ZWQubGVuZ3RoOi0xKX0pKTtmb3IobGV0IHQ9MDt0PGkuYWRkZWRDb3VudDt0Kyspe2xldCBuPWkuaW5kZXgrdDtlLmhhcyh0aGlzLml0ZW1zW25dKSYmZS5zZXQodGhpcy5pdGVtc1tuXSxuKX19dGhpcy5fX3VwZGF0ZUxpbmtzKCk7bGV0IG49MDtlLmZvckVhY2goKCh0LGkpPT57dDwwPyh0aGlzLm11bHRpP3RoaXMuc3BsaWNlKEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoInNlbGVjdGVkIix0aGlzKSxuLDEpOnRoaXMuc2VsZWN0ZWQ9dGhpcy5zZWxlY3RlZEl0ZW09bnVsbCxlLmRlbGV0ZShpKSk6bisrfSkpfV9fdXBkYXRlTGlua3MoKXtpZih0aGlzLl9fZGF0YUxpbmtlZFBhdGhzPXt9LHRoaXMubXVsdGkpe2xldCB0PTA7dGhpcy5fX3NlbGVjdGVkTWFwLmZvckVhY2goKGU9PntlPj0wJiZ0aGlzLmxpbmtQYXRocyhgJHtKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJpdGVtcyIsdGhpcyl9LiR7ZX1gLGAke0pTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoInNlbGVjdGVkIix0aGlzKX0uJHt0Kyt9YCl9KSl9ZWxzZSB0aGlzLl9fc2VsZWN0ZWRNYXAuZm9yRWFjaCgodD0+e3RoaXMubGlua1BhdGhzKEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoInNlbGVjdGVkIix0aGlzKSxgJHtKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJpdGVtcyIsdGhpcyl9LiR7dH1gKSx0aGlzLmxpbmtQYXRocyhKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJzZWxlY3RlZEl0ZW0iLHRoaXMpLGAke0pTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIml0ZW1zIix0aGlzKX0uJHt0fWApfSkpfWNsZWFyU2VsZWN0aW9uKCl7dGhpcy5fX2RhdGFMaW5rZWRQYXRocz17fSx0aGlzLl9fc2VsZWN0ZWRNYXA9bmV3IE1hcCx0aGlzLnNlbGVjdGVkPXRoaXMubXVsdGk/W106bnVsbCx0aGlzLnNlbGVjdGVkSXRlbT1udWxsfWlzU2VsZWN0ZWQodCl7cmV0dXJuIHRoaXMuX19zZWxlY3RlZE1hcC5oYXModCl9aXNJbmRleFNlbGVjdGVkKHQpe3JldHVybiB0aGlzLmlzU2VsZWN0ZWQodGhpcy5pdGVtc1t0XSl9X19kZXNlbGVjdENoYW5nZWRJZHgodCl7bGV0IGU9dGhpcy5fX3NlbGVjdGVkSW5kZXhGb3JJdGVtSW5kZXgodCk7aWYoZT49MCl7bGV0IHQ9MDt0aGlzLl9fc2VsZWN0ZWRNYXAuZm9yRWFjaCgoKG4saSk9PntlPT10KysmJnRoaXMuZGVzZWxlY3QoaSl9KSl9fV9fc2VsZWN0ZWRJbmRleEZvckl0ZW1JbmRleCh0KXtsZXQgZT10aGlzLl9fZGF0YUxpbmtlZFBhdGhzW2Ake0pTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIml0ZW1zIix0aGlzKX0uJHt0fWBdO2lmKGUpcmV0dXJuIHBhcnNlSW50KGUuc2xpY2UoYCR7SlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgic2VsZWN0ZWQiLHRoaXMpfS5gLmxlbmd0aCksMTApfWRlc2VsZWN0KHQpe2xldCBlPXRoaXMuX19zZWxlY3RlZE1hcC5nZXQodCk7aWYoZT49MCl7bGV0IG47dGhpcy5fX3NlbGVjdGVkTWFwLmRlbGV0ZSh0KSx0aGlzLm11bHRpJiYobj10aGlzLl9fc2VsZWN0ZWRJbmRleEZvckl0ZW1JbmRleChlKSksdGhpcy5fX3VwZGF0ZUxpbmtzKCksdGhpcy5tdWx0aT90aGlzLnNwbGljZShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJzZWxlY3RlZCIsdGhpcyksbiwxKTp0aGlzLnNlbGVjdGVkPXRoaXMuc2VsZWN0ZWRJdGVtPW51bGx9fWRlc2VsZWN0SW5kZXgodCl7dGhpcy5kZXNlbGVjdCh0aGlzLml0ZW1zW3RdKX1zZWxlY3QodCl7dGhpcy5zZWxlY3RJbmRleCh0aGlzLml0ZW1zLmluZGV4T2YodCkpfXNlbGVjdEluZGV4KHQpe2xldCBlPXRoaXMuaXRlbXNbdF07dGhpcy5pc1NlbGVjdGVkKGUpP3RoaXMudG9nZ2xlJiZ0aGlzLmRlc2VsZWN0SW5kZXgodCk6KHRoaXMubXVsdGl8fHRoaXMuX19zZWxlY3RlZE1hcC5jbGVhcigpLHRoaXMuX19zZWxlY3RlZE1hcC5zZXQoZSx0KSx0aGlzLl9fdXBkYXRlTGlua3MoKSx0aGlzLm11bHRpP3RoaXMucHVzaChKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJzZWxlY3RlZCIsdGhpcyksZSk6dGhpcy5zZWxlY3RlZD10aGlzLnNlbGVjdGVkSXRlbT1lKX19fSkpKHdlKTtjbGFzcyB5byBleHRlbmRzIF9ve3N0YXRpYyBnZXQgaXMoKXtyZXR1cm4iYXJyYXktc2VsZWN0b3IifXN0YXRpYyBnZXQgdGVtcGxhdGUoKXtyZXR1cm4gbnVsbH19Y3VzdG9tRWxlbWVudHMuZGVmaW5lKHlvLmlzLHlvKTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3Qgdm89bmV3IGtuO3dpbmRvdy5TaGFkeUNTU3x8KHdpbmRvdy5TaGFkeUNTUz17cHJlcGFyZVRlbXBsYXRlKHQsZSxuKXt9LHByZXBhcmVUZW1wbGF0ZURvbSh0LGUpe30scHJlcGFyZVRlbXBsYXRlU3R5bGVzKHQsZSxuKXt9LHN0eWxlU3VidHJlZSh0LGUpe3ZvLnByb2Nlc3NTdHlsZXMoKSxvbih0LGUpfSxzdHlsZUVsZW1lbnQodCl7dm8ucHJvY2Vzc1N0eWxlcygpfSxzdHlsZURvY3VtZW50KHQpe3ZvLnByb2Nlc3NTdHlsZXMoKSxvbihkb2N1bWVudC5ib2R5LHQpfSxnZXRDb21wdXRlZFN0eWxlVmFsdWU6KHQsZSk9PmFuKHQsZSksZmx1c2hDdXN0b21TdHlsZXMoKXt9LG5hdGl2ZUNzczpJZSxuYXRpdmVTaGFkb3c6QWUsY3NzQnVpbGQ6TGUsZGlzYWJsZVJ1bnRpbWU6TmV9KSx3aW5kb3cuU2hhZHlDU1MuQ3VzdG9tU3R5bGVJbnRlcmZhY2U9dm87Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IGJvPSJpbmNsdWRlIix4bz13aW5kb3cuU2hhZHlDU1MuQ3VzdG9tU3R5bGVJbnRlcmZhY2U7Y2xhc3Mgd28gZXh0ZW5kcyBIVE1MRWxlbWVudHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fc3R5bGU9bnVsbCx4by5hZGRDdXN0b21TdHlsZSh0aGlzKX1nZXRTdHlsZSgpe2lmKHRoaXMuX3N0eWxlKXJldHVybiB0aGlzLl9zdHlsZTtjb25zdCB0PXRoaXMucXVlcnlTZWxlY3Rvcigic3R5bGUiKTtpZighdClyZXR1cm4gbnVsbDt0aGlzLl9zdHlsZT10O2NvbnN0IGU9dC5nZXRBdHRyaWJ1dGUoYm8pO3JldHVybiBlJiYodC5yZW1vdmVBdHRyaWJ1dGUoYm8pLHQudGV4dENvbnRlbnQ9KGZ1bmN0aW9uIG4odCl7bGV0IGU9dC50cmltKCkuc3BsaXQoL1xzKy8pLG49IiI7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspbis9cShlW3RdKTtyZXR1cm4gbn0pKGUpK3QudGV4dENvbnRlbnQpLHRoaXMub3duZXJEb2N1bWVudCE9PXdpbmRvdy5kb2N1bWVudCYmd2luZG93LmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodGhpcyksdGhpcy5fc3R5bGV9fQovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpsZXQgU287d2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgiY3VzdG9tLXN0eWxlIix3byksU289V3IuX211dGFibGVQcm9wZXJ0eUNoYW5nZTtjb25zdCBNbz17cHJvcGVydGllczp7bXV0YWJsZURhdGE6Qm9vbGVhbn0sX3Nob3VsZFByb3BlcnR5Q2hhbmdlKHQsZSxuKXtyZXR1cm4gU28odGhpcyx0LGUsbix0aGlzLm11dGFibGVEYXRhKX19LEVvPWNyKEhUTUxFbGVtZW50KS5wcm90b3R5cGU7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwp2YXIgVG89bmV3IFNldDtjb25zdCBDbz17cHJvcGVydGllczp7X3BhcmVudFJlc2l6YWJsZTp7dHlwZTpPYmplY3Qsb2JzZXJ2ZXI6Il9wYXJlbnRSZXNpemFibGVDaGFuZ2VkIn0sX25vdGlmeWluZ0Rlc2NlbmRhbnQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX19LGxpc3RlbmVyczp7Imlyb24tcmVxdWVzdC1yZXNpemUtbm90aWZpY2F0aW9ucyI6Il9vbklyb25SZXF1ZXN0UmVzaXplTm90aWZpY2F0aW9ucyJ9LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLl9pbnRlcmVzdGVkUmVzaXphYmxlcz1bXSx0aGlzLl9ib3VuZE5vdGlmeVJlc2l6ZT10aGlzLm5vdGlmeVJlc2l6ZS5iaW5kKHRoaXMpLHRoaXMuX2JvdW5kT25EZXNjZW5kYW50SXJvblJlc2l6ZT10aGlzLl9vbkRlc2NlbmRhbnRJcm9uUmVzaXplLmJpbmQodGhpcyl9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fcmVxdWVzdFJlc2l6ZU5vdGlmaWNhdGlvbnMoKX0sZGV0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLl9wYXJlbnRSZXNpemFibGU/dGhpcy5fcGFyZW50UmVzaXphYmxlLnN0b3BSZXNpemVOb3RpZmljYXRpb25zRm9yKHRoaXMpOihUby5kZWxldGUodGhpcyksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5fYm91bmROb3RpZnlSZXNpemUpKSx0aGlzLl9wYXJlbnRSZXNpemFibGU9bnVsbH0sbm90aWZ5UmVzaXplOmZ1bmN0aW9uKCl7dGhpcy5pc0F0dGFjaGVkJiYodGhpcy5faW50ZXJlc3RlZFJlc2l6YWJsZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dGhpcy5yZXNpemVyU2hvdWxkTm90aWZ5KHQpJiZ0aGlzLl9ub3RpZnlEZXNjZW5kYW50KHQpfSksdGhpcyksdGhpcy5fZmlyZVJlc2l6ZSgpKX0sYXNzaWduUGFyZW50UmVzaXphYmxlOmZ1bmN0aW9uKHQpe3RoaXMuX3BhcmVudFJlc2l6YWJsZSYmdGhpcy5fcGFyZW50UmVzaXphYmxlLnN0b3BSZXNpemVOb3RpZmljYXRpb25zRm9yKHRoaXMpLHRoaXMuX3BhcmVudFJlc2l6YWJsZT10LHQmJi0xPT09dC5faW50ZXJlc3RlZFJlc2l6YWJsZXMuaW5kZXhPZih0aGlzKSYmKHQuX2ludGVyZXN0ZWRSZXNpemFibGVzLnB1c2godGhpcyksdC5fc3Vic2NyaWJlSXJvblJlc2l6ZSh0aGlzKSl9LHN0b3BSZXNpemVOb3RpZmljYXRpb25zRm9yOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2ludGVyZXN0ZWRSZXNpemFibGVzLmluZGV4T2YodCk7ZT4tMSYmKHRoaXMuX2ludGVyZXN0ZWRSZXNpemFibGVzLnNwbGljZShlLDEpLHRoaXMuX3Vuc3Vic2NyaWJlSXJvblJlc2l6ZSh0KSl9LF9zdWJzY3JpYmVJcm9uUmVzaXplOmZ1bmN0aW9uKHQpe3QuYWRkRXZlbnRMaXN0ZW5lcigiaXJvbi1yZXNpemUiLHRoaXMuX2JvdW5kT25EZXNjZW5kYW50SXJvblJlc2l6ZSl9LF91bnN1YnNjcmliZUlyb25SZXNpemU6ZnVuY3Rpb24odCl7dC5yZW1vdmVFdmVudExpc3RlbmVyKCJpcm9uLXJlc2l6ZSIsdGhpcy5fYm91bmRPbkRlc2NlbmRhbnRJcm9uUmVzaXplKX0scmVzaXplclNob3VsZE5vdGlmeTpmdW5jdGlvbih0KXtyZXR1cm4hMH0sX29uRGVzY2VuZGFudElyb25SZXNpemU6ZnVuY3Rpb24odCl7dGhpcy5fbm90aWZ5aW5nRGVzY2VuZGFudD90LnN0b3BQcm9wYWdhdGlvbigpOm18fHRoaXMuX2ZpcmVSZXNpemUoKX0sX2ZpcmVSZXNpemU6ZnVuY3Rpb24oKXt0aGlzLmZpcmUoImlyb24tcmVzaXplIixudWxsLHtub2RlOnRoaXMsYnViYmxlczohMX0pfSxfb25Jcm9uUmVxdWVzdFJlc2l6ZU5vdGlmaWNhdGlvbnM6ZnVuY3Rpb24odCl7dmFyIGU9ZXIodCkucm9vdFRhcmdldDtlIT09dGhpcyYmKGUuYXNzaWduUGFyZW50UmVzaXphYmxlKHRoaXMpLHRoaXMuX25vdGlmeURlc2NlbmRhbnQoZSksdC5zdG9wUHJvcGFnYXRpb24oKSl9LF9wYXJlbnRSZXNpemFibGVDaGFuZ2VkOmZ1bmN0aW9uKHQpe3QmJndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuX2JvdW5kTm90aWZ5UmVzaXplKX0sX25vdGlmeURlc2NlbmRhbnQ6ZnVuY3Rpb24odCl7dGhpcy5pc0F0dGFjaGVkJiYodGhpcy5fbm90aWZ5aW5nRGVzY2VuZGFudD0hMCx0Lm5vdGlmeVJlc2l6ZSgpLHRoaXMuX25vdGlmeWluZ0Rlc2NlbmRhbnQ9ITEpfSxfcmVxdWVzdFJlc2l6ZU5vdGlmaWNhdGlvbnM6ZnVuY3Rpb24oKXtpZih0aGlzLmlzQXR0YWNoZWQpaWYoImxvYWRpbmciPT09ZG9jdW1lbnQucmVhZHlTdGF0ZSl7dmFyIHQ9dGhpcy5fcmVxdWVzdFJlc2l6ZU5vdGlmaWNhdGlvbnMuYmluZCh0aGlzKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIiwoZnVuY3Rpb24gZSgpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlYWR5c3RhdGVjaGFuZ2UiLGUpLHQoKX0pKX1lbHNlIHRoaXMuX2ZpbmRQYXJlbnQoKSx0aGlzLl9wYXJlbnRSZXNpemFibGU/dGhpcy5fcGFyZW50UmVzaXphYmxlLl9pbnRlcmVzdGVkUmVzaXphYmxlcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0IT09dGhpcyYmdC5fZmluZFBhcmVudCgpfSksdGhpcyk6KFRvLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QhPT10aGlzJiZ0Ll9maW5kUGFyZW50KCl9KSx0aGlzKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9ib3VuZE5vdGlmeVJlc2l6ZSksdGhpcy5ub3RpZnlSZXNpemUoKSl9LF9maW5kUGFyZW50OmZ1bmN0aW9uKCl7dGhpcy5hc3NpZ25QYXJlbnRSZXNpemFibGUobnVsbCksdGhpcy5maXJlKCJpcm9uLXJlcXVlc3QtcmVzaXplLW5vdGlmaWNhdGlvbnMiLG51bGwse25vZGU6dGhpcyxidWJibGVzOiEwLGNhbmNlbGFibGU6ITB9KSx0aGlzLl9wYXJlbnRSZXNpemFibGU/VG8uZGVsZXRlKHRoaXMpOlRvLmFkZCh0aGlzKX19O3ZhciBBbz1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxJcm9uUmVzaXphYmxlQmVoYXZpb3I6Q299KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovanIoe190ZW1wbGF0ZTp4ZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLWlyb24tY29sbGFwc2UtdHJhbnNpdGlvbi1kdXJhdGlvbiwgMzAwbXMpOwogICAgICAgIC8qIFNhZmFyaSAxMCBuZWVkcyB0aGlzIHByb3BlcnR5IHByZWZpeGVkIHRvIGNvcnJlY3RseSBhcHBseSB0aGUgY3VzdG9tIHByb3BlcnR5ICovCiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1pcm9uLWNvbGxhcHNlLXRyYW5zaXRpb24tZHVyYXRpb24sIDMwMG1zKTsKICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgICAgfQoKICAgICAgOmhvc3QoLmlyb24tY29sbGFwc2UtY2xvc2VkKSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgOmhvc3QoOm5vdCguaXJvbi1jb2xsYXBzZS1vcGVuZWQpKSB7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8c2xvdD48L3Nsb3Q+CmAsaXM6Imlyb24tY29sbGFwc2UiLGJlaGF2aW9yczpbQ29dLHByb3BlcnRpZXM6e2hvcml6b250YWw6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxvYnNlcnZlcjoiX2hvcml6b250YWxDaGFuZ2VkIn0sb3BlbmVkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEsbm90aWZ5OiEwLG9ic2VydmVyOiJfb3BlbmVkQ2hhbmdlZCJ9LHRyYW5zaXRpb25pbmc6e3R5cGU6Qm9vbGVhbixub3RpZnk6ITAscmVhZE9ubHk6ITB9LG5vQW5pbWF0aW9uOnt0eXBlOkJvb2xlYW59LF9kZXNpcmVkU2l6ZTp7dHlwZTpTdHJpbmcsdmFsdWU6IiJ9fSxnZXQgZGltZW5zaW9uKCl7cmV0dXJuIHRoaXMuaG9yaXpvbnRhbD8id2lkdGgiOiJoZWlnaHQifSxnZXQgX2RpbWVuc2lvbk1heCgpe3JldHVybiB0aGlzLmhvcml6b250YWw/Im1heFdpZHRoIjoibWF4SGVpZ2h0In0sZ2V0IF9kaW1lbnNpb25NYXhDc3MoKXtyZXR1cm4gdGhpcy5ob3Jpem9udGFsPyJtYXgtd2lkdGgiOiJtYXgtaGVpZ2h0In0saG9zdEF0dHJpYnV0ZXM6e3JvbGU6Imdyb3VwIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sbGlzdGVuZXJzOnt0cmFuc2l0aW9uZW5kOiJfb25UcmFuc2l0aW9uRW5kIn0sdG9nZ2xlOmZ1bmN0aW9uKCl7dGhpcy5vcGVuZWQ9IXRoaXMub3BlbmVkfSxzaG93OmZ1bmN0aW9uKCl7dGhpcy5vcGVuZWQ9ITB9LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZD0hMX0sdXBkYXRlU2l6ZTpmdW5jdGlvbih0LGUpe3Q9ImF1dG8iPT09dD8iIjp0O3ZhciBuPWUmJiF0aGlzLm5vQW5pbWF0aW9uJiZ0aGlzLmlzQXR0YWNoZWQmJnRoaXMuX2Rlc2lyZWRTaXplIT09dDtpZih0aGlzLl9kZXNpcmVkU2l6ZT10LHRoaXMuX3VwZGF0ZVRyYW5zaXRpb24oITEpLG4pe3ZhciBpPXRoaXMuX2NhbGNTaXplKCk7IiI9PT10JiYodGhpcy5zdHlsZVt0aGlzLl9kaW1lbnNpb25NYXhdPSIiLHQ9dGhpcy5fY2FsY1NpemUoKSksdGhpcy5zdHlsZVt0aGlzLl9kaW1lbnNpb25NYXhdPWksdGhpcy5zY3JvbGxUb3A9dGhpcy5zY3JvbGxUb3AsdGhpcy5fdXBkYXRlVHJhbnNpdGlvbighMCksbj10IT09aX10aGlzLnN0eWxlW3RoaXMuX2RpbWVuc2lvbk1heF09dCxufHx0aGlzLl90cmFuc2l0aW9uRW5kKCl9LGVuYWJsZVRyYW5zaXRpb246ZnVuY3Rpb24odCl7RW8uX3dhcm4oImBlbmFibGVUcmFuc2l0aW9uKClgIGlzIGRlcHJlY2F0ZWQsIHVzZSBgbm9BbmltYXRpb25gIGluc3RlYWQuIiksdGhpcy5ub0FuaW1hdGlvbj0hdH0sX3VwZGF0ZVRyYW5zaXRpb246ZnVuY3Rpb24odCl7dGhpcy5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb249dCYmIXRoaXMubm9BbmltYXRpb24/IiI6IjBzIn0sX2hvcml6b250YWxDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5zdHlsZS50cmFuc2l0aW9uUHJvcGVydHk9dGhpcy5fZGltZW5zaW9uTWF4Q3NzLHRoaXMuc3R5bGVbIm1heFdpZHRoIj09PXRoaXMuX2RpbWVuc2lvbk1heD8ibWF4SGVpZ2h0IjoibWF4V2lkdGgiXT0iIix0aGlzLnVwZGF0ZVNpemUodGhpcy5vcGVuZWQ/ImF1dG8iOiIwcHgiLCExKX0sX29wZW5lZENoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCF0aGlzLm9wZW5lZCksdGhpcy5fc2V0VHJhbnNpdGlvbmluZyghMCksdGhpcy50b2dnbGVDbGFzcygiaXJvbi1jb2xsYXBzZS1jbG9zZWQiLCExKSx0aGlzLnRvZ2dsZUNsYXNzKCJpcm9uLWNvbGxhcHNlLW9wZW5lZCIsITEpLHRoaXMudXBkYXRlU2l6ZSh0aGlzLm9wZW5lZD8iYXV0byI6IjBweCIsITApLHRoaXMub3BlbmVkJiZ0aGlzLmZvY3VzKCl9LF90cmFuc2l0aW9uRW5kOmZ1bmN0aW9uKCl7dGhpcy5zdHlsZVt0aGlzLl9kaW1lbnNpb25NYXhdPXRoaXMuX2Rlc2lyZWRTaXplLHRoaXMudG9nZ2xlQ2xhc3MoImlyb24tY29sbGFwc2UtY2xvc2VkIiwhdGhpcy5vcGVuZWQpLHRoaXMudG9nZ2xlQ2xhc3MoImlyb24tY29sbGFwc2Utb3BlbmVkIix0aGlzLm9wZW5lZCksdGhpcy5fdXBkYXRlVHJhbnNpdGlvbighMSksdGhpcy5ub3RpZnlSZXNpemUoKSx0aGlzLl9zZXRUcmFuc2l0aW9uaW5nKCExKX0sX29uVHJhbnNpdGlvbkVuZDpmdW5jdGlvbih0KXtlcih0KS5yb290VGFyZ2V0PT09dGhpcyYmdGhpcy5fdHJhbnNpdGlvbkVuZCgpfSxfY2FsY1NpemU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVt0aGlzLmRpbWVuc2lvbl0rInB4In19KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IGtvPXhlYAovKiBNb3N0IGNvbW1vbiB1c2VkIGZsZXggc3R5bGVzKi8KPGRvbS1tb2R1bGUgaWQ9Imlyb24tZmxleCI+CiAgPHRlbXBsYXRlPgogICAgPHN0eWxlPgogICAgICAubGF5b3V0Lmhvcml6b250YWwsCiAgICAgIC5sYXlvdXQudmVydGljYWwgewogICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICB9CgogICAgICAubGF5b3V0LmlubGluZSB7CiAgICAgICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94OwogICAgICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgIH0KCiAgICAgIC5sYXlvdXQuaG9yaXpvbnRhbCB7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgIH0KCiAgICAgIC5sYXlvdXQudmVydGljYWwgewogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB9CgogICAgICAubGF5b3V0LndyYXAgewogICAgICAgIC1tcy1mbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgLXdlYmtpdC1mbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CgogICAgICAubGF5b3V0Lm5vLXdyYXAgewogICAgICAgIC1tcy1mbGV4LXdyYXA6IG5vd3JhcDsKICAgICAgICAtd2Via2l0LWZsZXgtd3JhcDogbm93cmFwOwogICAgICAgIGZsZXgtd3JhcDogbm93cmFwOwogICAgICB9CgogICAgICAubGF5b3V0LmNlbnRlciwKICAgICAgLmxheW91dC5jZW50ZXItY2VudGVyIHsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAubGF5b3V0LmNlbnRlci1qdXN0aWZpZWQsCiAgICAgIC5sYXlvdXQuY2VudGVyLWNlbnRlciB7CiAgICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyOwogICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5mbGV4IHsKICAgICAgICAtbXMtZmxleDogMSAxIDAuMDAwMDAwMDAxcHg7CiAgICAgICAgLXdlYmtpdC1mbGV4OiAxOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAwLjAwMDAwMDAwMXB4OwogICAgICAgIGZsZXgtYmFzaXM6IDAuMDAwMDAwMDAxcHg7CiAgICAgIH0KCiAgICAgIC5mbGV4LWF1dG8gewogICAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bzsKICAgICAgICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvOwogICAgICAgIGZsZXg6IDEgMSBhdXRvOwogICAgICB9CgogICAgICAuZmxleC1ub25lIHsKICAgICAgICAtbXMtZmxleDogbm9uZTsKICAgICAgICAtd2Via2l0LWZsZXg6IG5vbmU7CiAgICAgICAgZmxleDogbm9uZTsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L3RlbXBsYXRlPgo8L2RvbS1tb2R1bGU+Ci8qIEJhc2ljIGZsZXhib3ggcmV2ZXJzZSBzdHlsZXMgKi8KPGRvbS1tb2R1bGUgaWQ9Imlyb24tZmxleC1yZXZlcnNlIj4KICA8dGVtcGxhdGU+CiAgICA8c3R5bGU+CiAgICAgIC5sYXlvdXQuaG9yaXpvbnRhbC1yZXZlcnNlLAogICAgICAubGF5b3V0LnZlcnRpY2FsLXJldmVyc2UgewogICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICB9CgogICAgICAubGF5b3V0Lmhvcml6b250YWwtcmV2ZXJzZSB7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsKICAgICAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7CiAgICAgIH0KCiAgICAgIC5sYXlvdXQudmVydGljYWwtcmV2ZXJzZSB7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsKICAgICAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7CiAgICAgIH0KCiAgICAgIC5sYXlvdXQud3JhcC1yZXZlcnNlIHsKICAgICAgICAtbXMtZmxleC13cmFwOiB3cmFwLXJldmVyc2U7CiAgICAgICAgLXdlYmtpdC1mbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTsKICAgICAgICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L3RlbXBsYXRlPgo8L2RvbS1tb2R1bGU+Ci8qIEZsZXhib3ggYWxpZ25tZW50ICovCjxkb20tbW9kdWxlIGlkPSJpcm9uLWZsZXgtYWxpZ25tZW50Ij4KICA8dGVtcGxhdGU+CiAgICA8c3R5bGU+CiAgICAgIC8qKgogICAgICAgKiBBbGlnbm1lbnQgaW4gY3Jvc3MgYXhpcy4KICAgICAgICovCiAgICAgIC5sYXlvdXQuc3RhcnQgewogICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdGFydDsKICAgICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICB9CgogICAgICAubGF5b3V0LmNlbnRlciwKICAgICAgLmxheW91dC5jZW50ZXItY2VudGVyIHsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAubGF5b3V0LmVuZCB7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGVuZDsKICAgICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7CiAgICAgIH0KCiAgICAgIC5sYXlvdXQuYmFzZWxpbmUgewogICAgICAgIC1tcy1mbGV4LWFsaWduOiBiYXNlbGluZTsKICAgICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgIH0KCiAgICAgIC8qKgogICAgICAgKiBBbGlnbm1lbnQgaW4gbWFpbiBheGlzLgogICAgICAgKi8KICAgICAgLmxheW91dC5zdGFydC1qdXN0aWZpZWQgewogICAgICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0OwogICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsKICAgICAgfQoKICAgICAgLmxheW91dC5jZW50ZXItanVzdGlmaWVkLAogICAgICAubGF5b3V0LmNlbnRlci1jZW50ZXIgewogICAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjsKICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAubGF5b3V0LmVuZC1qdXN0aWZpZWQgewogICAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZDsKICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLmxheW91dC5hcm91bmQtanVzdGlmaWVkIHsKICAgICAgICAtbXMtZmxleC1wYWNrOiBkaXN0cmlidXRlOwogICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7CiAgICAgIH0KCiAgICAgIC5sYXlvdXQuanVzdGlmaWVkIHsKICAgICAgICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5OwogICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgfQoKICAgICAgLyoqCiAgICAgICAqIFNlbGYgYWxpZ25tZW50LgogICAgICAgKi8KICAgICAgLnNlbGYtc3RhcnQgewogICAgICAgIC1tcy1hbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OwogICAgICAgIC13ZWJraXQtYWxpZ24tc2VsZjogZmxleC1zdGFydDsKICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OwogICAgICB9CgogICAgICAuc2VsZi1jZW50ZXIgewogICAgICAgIC1tcy1hbGlnbi1zZWxmOiBjZW50ZXI7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBjZW50ZXI7CiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyOwogICAgICB9CgogICAgICAuc2VsZi1lbmQgewogICAgICAgIC1tcy1hbGlnbi1zZWxmOiBmbGV4LWVuZDsKICAgICAgICAtd2Via2l0LWFsaWduLXNlbGY6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kOwogICAgICB9CgogICAgICAuc2VsZi1zdHJldGNoIHsKICAgICAgICAtbXMtYWxpZ24tc2VsZjogc3RyZXRjaDsKICAgICAgICAtd2Via2l0LWFsaWduLXNlbGY6IHN0cmV0Y2g7CiAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKICAgICAgfQoKICAgICAgLnNlbGYtYmFzZWxpbmUgewogICAgICAgIC1tcy1hbGlnbi1zZWxmOiBiYXNlbGluZTsKICAgICAgICAtd2Via2l0LWFsaWduLXNlbGY6IGJhc2VsaW5lOwogICAgICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lOwogICAgICB9CgogICAgICAvKioKICAgICAgICogbXVsdGktbGluZSBhbGlnbm1lbnQgaW4gbWFpbiBheGlzLgogICAgICAgKi8KICAgICAgLmxheW91dC5zdGFydC1hbGlnbmVkIHsKICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6IHN0YXJ0OyAgLyogSUUxMCAqLwogICAgICAgIC1tcy1hbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0OwogICAgICAgIC13ZWJraXQtYWxpZ24tY29udGVudDogZmxleC1zdGFydDsKICAgICAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0OwogICAgICB9CgogICAgICAubGF5b3V0LmVuZC1hbGlnbmVkIHsKICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6IGVuZDsgIC8qIElFMTAgKi8KICAgICAgICAtbXMtYWxpZ24tY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLmxheW91dC5jZW50ZXItYWxpZ25lZCB7CiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBjZW50ZXI7ICAvKiBJRTEwICovCiAgICAgICAgLW1zLWFsaWduLWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5sYXlvdXQuYmV0d2Vlbi1hbGlnbmVkIHsKICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6IGp1c3RpZnk7ICAvKiBJRTEwICovCiAgICAgICAgLW1zLWFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIH0KCiAgICAgIC5sYXlvdXQuYXJvdW5kLWFsaWduZWQgewogICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazogZGlzdHJpYnV0ZTsgIC8qIElFMTAgKi8KICAgICAgICAtbXMtYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kOwogICAgICAgIC13ZWJraXQtYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kOwogICAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L3RlbXBsYXRlPgo8L2RvbS1tb2R1bGU+Ci8qIE5vbi1mbGV4Ym94IHBvc2l0aW9uaW5nIGhlbHBlciBzdHlsZXMgKi8KPGRvbS1tb2R1bGUgaWQ9Imlyb24tZmxleC1mYWN0b3JzIj4KICA8dGVtcGxhdGU+CiAgICA8c3R5bGU+CiAgICAgIC5mbGV4LAogICAgICAuZmxleC0xIHsKICAgICAgICAtbXMtZmxleDogMSAxIDAuMDAwMDAwMDAxcHg7CiAgICAgICAgLXdlYmtpdC1mbGV4OiAxOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAwLjAwMDAwMDAwMXB4OwogICAgICAgIGZsZXgtYmFzaXM6IDAuMDAwMDAwMDAxcHg7CiAgICAgIH0KCiAgICAgIC5mbGV4LTIgewogICAgICAgIC1tcy1mbGV4OiAyOwogICAgICAgIC13ZWJraXQtZmxleDogMjsKICAgICAgICBmbGV4OiAyOwogICAgICB9CgogICAgICAuZmxleC0zIHsKICAgICAgICAtbXMtZmxleDogMzsKICAgICAgICAtd2Via2l0LWZsZXg6IDM7CiAgICAgICAgZmxleDogMzsKICAgICAgfQoKICAgICAgLmZsZXgtNCB7CiAgICAgICAgLW1zLWZsZXg6IDQ7CiAgICAgICAgLXdlYmtpdC1mbGV4OiA0OwogICAgICAgIGZsZXg6IDQ7CiAgICAgIH0KCiAgICAgIC5mbGV4LTUgewogICAgICAgIC1tcy1mbGV4OiA1OwogICAgICAgIC13ZWJraXQtZmxleDogNTsKICAgICAgICBmbGV4OiA1OwogICAgICB9CgogICAgICAuZmxleC02IHsKICAgICAgICAtbXMtZmxleDogNjsKICAgICAgICAtd2Via2l0LWZsZXg6IDY7CiAgICAgICAgZmxleDogNjsKICAgICAgfQoKICAgICAgLmZsZXgtNyB7CiAgICAgICAgLW1zLWZsZXg6IDc7CiAgICAgICAgLXdlYmtpdC1mbGV4OiA3OwogICAgICAgIGZsZXg6IDc7CiAgICAgIH0KCiAgICAgIC5mbGV4LTggewogICAgICAgIC1tcy1mbGV4OiA4OwogICAgICAgIC13ZWJraXQtZmxleDogODsKICAgICAgICBmbGV4OiA4OwogICAgICB9CgogICAgICAuZmxleC05IHsKICAgICAgICAtbXMtZmxleDogOTsKICAgICAgICAtd2Via2l0LWZsZXg6IDk7CiAgICAgICAgZmxleDogOTsKICAgICAgfQoKICAgICAgLmZsZXgtMTAgewogICAgICAgIC1tcy1mbGV4OiAxMDsKICAgICAgICAtd2Via2l0LWZsZXg6IDEwOwogICAgICAgIGZsZXg6IDEwOwogICAgICB9CgogICAgICAuZmxleC0xMSB7CiAgICAgICAgLW1zLWZsZXg6IDExOwogICAgICAgIC13ZWJraXQtZmxleDogMTE7CiAgICAgICAgZmxleDogMTE7CiAgICAgIH0KCiAgICAgIC5mbGV4LTEyIHsKICAgICAgICAtbXMtZmxleDogMTI7CiAgICAgICAgLXdlYmtpdC1mbGV4OiAxMjsKICAgICAgICBmbGV4OiAxMjsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L3RlbXBsYXRlPgo8L2RvbS1tb2R1bGU+Cjxkb20tbW9kdWxlIGlkPSJpcm9uLXBvc2l0aW9uaW5nIj4KICA8dGVtcGxhdGU+CiAgICA8c3R5bGU+CiAgICAgIC5ibG9jayB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIFtoaWRkZW5dIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5pbnZpc2libGUgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucmVsYXRpdmUgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmZpdCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgfQoKICAgICAgYm9keS5mdWxsYmxlZWQgewogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICB9CgogICAgICAuc2Nyb2xsIHsKICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgIH0KCiAgICAgIC8qIGZpeGVkIHBvc2l0aW9uICovCiAgICAgIC5maXhlZC1ib3R0b20sCiAgICAgIC5maXhlZC1sZWZ0LAogICAgICAuZml4ZWQtcmlnaHQsCiAgICAgIC5maXhlZC10b3AgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgfQoKICAgICAgLmZpeGVkLXRvcCB7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5maXhlZC1yaWdodCB7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLmZpeGVkLWJvdHRvbSB7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgIH0KCiAgICAgIC5maXhlZC1sZWZ0IHsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC90ZW1wbGF0ZT4KPC9kb20tbW9kdWxlPgpgO2tvLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoa28uY29udGVudCk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBMbz14ZWAKPGN1c3RvbS1zdHlsZT4KICA8c3R5bGUgaXM9ImN1c3RvbS1zdHlsZSI+CiAgICBbaGlkZGVuXSB7CiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgIH0KICA8L3N0eWxlPgo8L2N1c3RvbS1zdHlsZT4KPGN1c3RvbS1zdHlsZT4KICA8c3R5bGUgaXM9ImN1c3RvbS1zdHlsZSI+CiAgICBodG1sIHsKCiAgICAgIC0tbGF5b3V0OiB7CiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIH07CgogICAgICAtLWxheW91dC1pbmxpbmU6IHsKICAgICAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7CiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWhvcml6b250YWw6IHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQ7CgogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtaG9yaXpvbnRhbC1yZXZlcnNlOiB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0OwoKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOwogICAgICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LXZlcnRpY2FsOiB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0OwoKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LXZlcnRpY2FsLXJldmVyc2U6IHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQ7CgogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7CiAgICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtd3JhcDogewogICAgICAgIC1tcy1mbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgLXdlYmtpdC1mbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtd3JhcC1yZXZlcnNlOiB7CiAgICAgICAgLW1zLWZsZXgtd3JhcDogd3JhcC1yZXZlcnNlOwogICAgICAgIC13ZWJraXQtZmxleC13cmFwOiB3cmFwLXJldmVyc2U7CiAgICAgICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2U7CiAgICAgIH07CgogICAgICAtLWxheW91dC1mbGV4LWF1dG86IHsKICAgICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgLXdlYmtpdC1mbGV4OiAxIDEgYXV0bzsKICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWZsZXgtbm9uZTogewogICAgICAgIC1tcy1mbGV4OiBub25lOwogICAgICAgIC13ZWJraXQtZmxleDogbm9uZTsKICAgICAgICBmbGV4OiBub25lOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZmxleDogewogICAgICAgIC1tcy1mbGV4OiAxIDEgMC4wMDAwMDAwMDFweDsKICAgICAgICAtd2Via2l0LWZsZXg6IDE7CiAgICAgICAgZmxleDogMTsKICAgICAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDAuMDAwMDAwMDAxcHg7CiAgICAgICAgZmxleC1iYXNpczogMC4wMDAwMDAwMDFweDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWZsZXgtMjogewogICAgICAgIC1tcy1mbGV4OiAyOwogICAgICAgIC13ZWJraXQtZmxleDogMjsKICAgICAgICBmbGV4OiAyOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZmxleC0zOiB7CiAgICAgICAgLW1zLWZsZXg6IDM7CiAgICAgICAgLXdlYmtpdC1mbGV4OiAzOwogICAgICAgIGZsZXg6IDM7CiAgICAgIH07CgogICAgICAtLWxheW91dC1mbGV4LTQ6IHsKICAgICAgICAtbXMtZmxleDogNDsKICAgICAgICAtd2Via2l0LWZsZXg6IDQ7CiAgICAgICAgZmxleDogNDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWZsZXgtNTogewogICAgICAgIC1tcy1mbGV4OiA1OwogICAgICAgIC13ZWJraXQtZmxleDogNTsKICAgICAgICBmbGV4OiA1OwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZmxleC02OiB7CiAgICAgICAgLW1zLWZsZXg6IDY7CiAgICAgICAgLXdlYmtpdC1mbGV4OiA2OwogICAgICAgIGZsZXg6IDY7CiAgICAgIH07CgogICAgICAtLWxheW91dC1mbGV4LTc6IHsKICAgICAgICAtbXMtZmxleDogNzsKICAgICAgICAtd2Via2l0LWZsZXg6IDc7CiAgICAgICAgZmxleDogNzsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWZsZXgtODogewogICAgICAgIC1tcy1mbGV4OiA4OwogICAgICAgIC13ZWJraXQtZmxleDogODsKICAgICAgICBmbGV4OiA4OwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZmxleC05OiB7CiAgICAgICAgLW1zLWZsZXg6IDk7CiAgICAgICAgLXdlYmtpdC1mbGV4OiA5OwogICAgICAgIGZsZXg6IDk7CiAgICAgIH07CgogICAgICAtLWxheW91dC1mbGV4LTEwOiB7CiAgICAgICAgLW1zLWZsZXg6IDEwOwogICAgICAgIC13ZWJraXQtZmxleDogMTA7CiAgICAgICAgZmxleDogMTA7CiAgICAgIH07CgogICAgICAtLWxheW91dC1mbGV4LTExOiB7CiAgICAgICAgLW1zLWZsZXg6IDExOwogICAgICAgIC13ZWJraXQtZmxleDogMTE7CiAgICAgICAgZmxleDogMTE7CiAgICAgIH07CgogICAgICAtLWxheW91dC1mbGV4LTEyOiB7CiAgICAgICAgLW1zLWZsZXg6IDEyOwogICAgICAgIC13ZWJraXQtZmxleDogMTI7CiAgICAgICAgZmxleDogMTI7CiAgICAgIH07CgogICAgICAvKiBhbGlnbm1lbnQgaW4gY3Jvc3MgYXhpcyAqLwoKICAgICAgLS1sYXlvdXQtc3RhcnQ6IHsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWNlbnRlcjogewogICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH07CgogICAgICAtLWxheW91dC1lbmQ6IHsKICAgICAgICAtbXMtZmxleC1hbGlnbjogZW5kOwogICAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWJhc2VsaW5lOiB7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGJhc2VsaW5lOwogICAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgfTsKCiAgICAgIC8qIGFsaWdubWVudCBpbiBtYWluIGF4aXMgKi8KCiAgICAgIC0tbGF5b3V0LXN0YXJ0LWp1c3RpZmllZDogewogICAgICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0OwogICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWNlbnRlci1qdXN0aWZpZWQ6IHsKICAgICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7CiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWVuZC1qdXN0aWZpZWQ6IHsKICAgICAgICAtbXMtZmxleC1wYWNrOiBlbmQ7CiAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgIH07CgogICAgICAtLWxheW91dC1hcm91bmQtanVzdGlmaWVkOiB7CiAgICAgICAgLW1zLWZsZXgtcGFjazogZGlzdHJpYnV0ZTsKICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtanVzdGlmaWVkOiB7CiAgICAgICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTsKICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIH07CgogICAgICAtLWxheW91dC1jZW50ZXItY2VudGVyOiB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlcjsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyLWp1c3RpZmllZDsKICAgICAgfTsKCiAgICAgIC8qIHNlbGYgYWxpZ25tZW50ICovCgogICAgICAtLWxheW91dC1zZWxmLXN0YXJ0OiB7CiAgICAgICAgLW1zLWFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OwogICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7CiAgICAgIH07CgogICAgICAtLWxheW91dC1zZWxmLWNlbnRlcjogewogICAgICAgIC1tcy1hbGlnbi1zZWxmOiBjZW50ZXI7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBjZW50ZXI7CiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtc2VsZi1lbmQ6IHsKICAgICAgICAtbXMtYWxpZ24tc2VsZjogZmxleC1lbmQ7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBmbGV4LWVuZDsKICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LXNlbGYtc3RyZXRjaDogewogICAgICAgIC1tcy1hbGlnbi1zZWxmOiBzdHJldGNoOwogICAgICAgIC13ZWJraXQtYWxpZ24tc2VsZjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtc2VsZi1iYXNlbGluZTogewogICAgICAgIC1tcy1hbGlnbi1zZWxmOiBiYXNlbGluZTsKICAgICAgICAtd2Via2l0LWFsaWduLXNlbGY6IGJhc2VsaW5lOwogICAgICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lOwogICAgICB9OwoKICAgICAgLyogbXVsdGktbGluZSBhbGlnbm1lbnQgaW4gbWFpbiBheGlzICovCgogICAgICAtLWxheW91dC1zdGFydC1hbGlnbmVkOiB7CiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdGFydDsgIC8qIElFMTAgKi8KICAgICAgICAtbXMtYWxpZ24tY29udGVudDogZmxleC1zdGFydDsKICAgICAgICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWVuZC1hbGlnbmVkOiB7CiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBlbmQ7ICAvKiBJRTEwICovCiAgICAgICAgLW1zLWFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIC13ZWJraXQtYWxpZ24tY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1lbmQ7CiAgICAgIH07CgogICAgICAtLWxheW91dC1jZW50ZXItYWxpZ25lZDogewogICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazogY2VudGVyOyAgLyogSUUxMCAqLwogICAgICAgIC1tcy1hbGlnbi1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtYmV0d2Vlbi1hbGlnbmVkOiB7CiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBqdXN0aWZ5OyAgLyogSUUxMCAqLwogICAgICAgIC1tcy1hbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIC13ZWJraXQtYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtYXJvdW5kLWFsaWduZWQ6IHsKICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6IGRpc3RyaWJ1dGU7ICAvKiBJRTEwICovCiAgICAgICAgLW1zLWFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsKICAgICAgICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsKICAgICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQ7CiAgICAgIH07CgogICAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICAgICAgICAgICAgT3RoZXIgTGF5b3V0CiAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgogICAgICAtLWxheW91dC1ibG9jazogewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtaW52aXNpYmxlOiB7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7CiAgICAgIH07CgogICAgICAtLWxheW91dC1yZWxhdGl2ZTogewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfTsKCiAgICAgIC0tbGF5b3V0LWZpdDogewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgIH07CgogICAgICAtLWxheW91dC1zY3JvbGw6IHsKICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgIH07CgogICAgICAtLWxheW91dC1mdWxsYmxlZWQ6IHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgfTsKCiAgICAgIC8qIGZpeGVkIHBvc2l0aW9uICovCgogICAgICAtLWxheW91dC1maXhlZC10b3A6IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgIH07CgogICAgICAtLWxheW91dC1maXhlZC1yaWdodDogewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZml4ZWQtYm90dG9tOiB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICB9OwoKICAgICAgLS1sYXlvdXQtZml4ZWQtbGVmdDogewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgIH07CgogICAgfQogIDwvc3R5bGU+CjwvY3VzdG9tLXN0eWxlPmA7TG8uc2V0QXR0cmlidXRlKCJzdHlsZSIsImRpc3BsYXk6IG5vbmU7IiksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChMby5jb250ZW50KTt2YXIgUG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtQby50ZXh0Q29udGVudD0iW2hpZGRlbl0geyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0iLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoUG8pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY2xhc3MgTm97Y29uc3RydWN0b3IodCl7Tm9bIiAiXSh0KSx0aGlzLnR5cGU9dCYmdC50eXBlfHwiZGVmYXVsdCIsdGhpcy5rZXk9dCYmdC5rZXksdCYmInZhbHVlImluIHQmJih0aGlzLnZhbHVlPXQudmFsdWUpfWdldCB2YWx1ZSgpe3ZhciB0PXRoaXMudHlwZSxlPXRoaXMua2V5O2lmKHQmJmUpcmV0dXJuIE5vLnR5cGVzW3RdJiZOby50eXBlc1t0XVtlXX1zZXQgdmFsdWUodCl7dmFyIGU9dGhpcy50eXBlLG49dGhpcy5rZXk7ZSYmbiYmKGU9Tm8udHlwZXNbZV09Tm8udHlwZXNbZV18fHt9LG51bGw9PXQ/ZGVsZXRlIGVbbl06ZVtuXT10KX1nZXQgbGlzdCgpe2lmKHRoaXMudHlwZSl7dmFyIHQ9Tm8udHlwZXNbdGhpcy50eXBlXTtyZXR1cm4gdD9PYmplY3Qua2V5cyh0KS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBJb1t0aGlzLnR5cGVdW3RdfSksdGhpcyk6W119fWJ5S2V5KHQpe3JldHVybiB0aGlzLmtleT10LHRoaXMudmFsdWV9fU5vWyIgIl09ZnVuY3Rpb24oKXt9LE5vLnR5cGVzPXt9O3ZhciBJbz1Oby50eXBlcztqcih7aXM6Imlyb24tbWV0YSIscHJvcGVydGllczp7dHlwZTp7dHlwZTpTdHJpbmcsdmFsdWU6ImRlZmF1bHQifSxrZXk6e3R5cGU6U3RyaW5nfSx2YWx1ZTp7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSxzZWxmOnt0eXBlOkJvb2xlYW4sb2JzZXJ2ZXI6Il9zZWxmQ2hhbmdlZCJ9LF9fbWV0YTp7dHlwZTpCb29sZWFuLGNvbXB1dGVkOiJfX2NvbXB1dGVNZXRhKHR5cGUsIGtleSwgdmFsdWUpIn19LGhvc3RBdHRyaWJ1dGVzOntoaWRkZW46ITB9LF9fY29tcHV0ZU1ldGE6ZnVuY3Rpb24odCxlLG4pe3ZhciBpPW5ldyBObyh7dHlwZTp0LGtleTplfSk7cmV0dXJuIHZvaWQgMCE9PW4mJm4hPT1pLnZhbHVlP2kudmFsdWU9bjp0aGlzLnZhbHVlIT09aS52YWx1ZSYmKHRoaXMudmFsdWU9aS52YWx1ZSksaX0sZ2V0IGxpc3QoKXtyZXR1cm4gdGhpcy5fX21ldGEmJnRoaXMuX19tZXRhLmxpc3R9LF9zZWxmQ2hhbmdlZDpmdW5jdGlvbih0KXt0JiYodGhpcy52YWx1ZT10aGlzKX0sYnlLZXk6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBObyh7dHlwZTp0aGlzLnR5cGUsa2V5OnR9KS52YWx1ZX19KSwKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmpyKHtfdGVtcGxhdGU6eGVgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtaW5saW5lOwogICAgICAgIEBhcHBseSAtLWxheW91dC1jZW50ZXItY2VudGVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKCiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKCiAgICAgICAgZmlsbDogdmFyKC0taXJvbi1pY29uLWZpbGwtY29sb3IsIGN1cnJlbnRjb2xvcik7CiAgICAgICAgc3Ryb2tlOiB2YXIoLS1pcm9uLWljb24tc3Ryb2tlLWNvbG9yLCBub25lKTsKCiAgICAgICAgd2lkdGg6IHZhcigtLWlyb24taWNvbi13aWR0aCwgMjRweCk7CiAgICAgICAgaGVpZ2h0OiB2YXIoLS1pcm9uLWljb24taGVpZ2h0LCAyNHB4KTsKICAgICAgICBAYXBwbHkgLS1pcm9uLWljb247CiAgICAgIH0KCiAgICAgIDpob3N0KFtoaWRkZW5dKSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgPC9zdHlsZT4KYCxpczoiaXJvbi1pY29uIixwcm9wZXJ0aWVzOntpY29uOnt0eXBlOlN0cmluZ30sdGhlbWU6e3R5cGU6U3RyaW5nfSxzcmM6e3R5cGU6U3RyaW5nfSxfbWV0YTp7dmFsdWU6RW8uY3JlYXRlKCJpcm9uLW1ldGEiLHt0eXBlOiJpY29uc2V0In0pfX0sb2JzZXJ2ZXJzOlsiX3VwZGF0ZUljb24oX21ldGEsIGlzQXR0YWNoZWQpIiwiX3VwZGF0ZUljb24odGhlbWUsIGlzQXR0YWNoZWQpIiwiX3NyY0NoYW5nZWQoc3JjLCBpc0F0dGFjaGVkKSIsIl9pY29uQ2hhbmdlZChpY29uLCBpc0F0dGFjaGVkKSJdLF9ERUZBVUxUX0lDT05TRVQ6Imljb25zIixfaWNvbkNoYW5nZWQ6ZnVuY3Rpb24odCl7dmFyIGU9KHR8fCIiKS5zcGxpdCgiOiIpO3RoaXMuX2ljb25OYW1lPWUucG9wKCksdGhpcy5faWNvbnNldE5hbWU9ZS5wb3AoKXx8dGhpcy5fREVGQVVMVF9JQ09OU0VULHRoaXMuX3VwZGF0ZUljb24oKX0sX3NyY0NoYW5nZWQ6ZnVuY3Rpb24odCl7dGhpcy5fdXBkYXRlSWNvbigpfSxfdXNlc0ljb25zZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pY29ufHwhdGhpcy5zcmN9LF91cGRhdGVJY29uOmZ1bmN0aW9uKCl7dGhpcy5fdXNlc0ljb25zZXQoKT8odGhpcy5faW1nJiZ0aGlzLl9pbWcucGFyZW50Tm9kZSYmZXIodGhpcy5yb290KS5yZW1vdmVDaGlsZCh0aGlzLl9pbWcpLCIiPT09dGhpcy5faWNvbk5hbWU/dGhpcy5faWNvbnNldCYmdGhpcy5faWNvbnNldC5yZW1vdmVJY29uKHRoaXMpOnRoaXMuX2ljb25zZXROYW1lJiZ0aGlzLl9tZXRhJiYodGhpcy5faWNvbnNldD10aGlzLl9tZXRhLmJ5S2V5KHRoaXMuX2ljb25zZXROYW1lKSx0aGlzLl9pY29uc2V0Pyh0aGlzLl9pY29uc2V0LmFwcGx5SWNvbih0aGlzLHRoaXMuX2ljb25OYW1lLHRoaXMudGhlbWUpLHRoaXMudW5saXN0ZW4od2luZG93LCJpcm9uLWljb25zZXQtYWRkZWQiLCJfdXBkYXRlSWNvbiIpKTp0aGlzLmxpc3Rlbih3aW5kb3csImlyb24taWNvbnNldC1hZGRlZCIsIl91cGRhdGVJY29uIikpKToodGhpcy5faWNvbnNldCYmdGhpcy5faWNvbnNldC5yZW1vdmVJY29uKHRoaXMpLHRoaXMuX2ltZ3x8KHRoaXMuX2ltZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSx0aGlzLl9pbWcuc3R5bGUud2lkdGg9IjEwMCUiLHRoaXMuX2ltZy5zdHlsZS5oZWlnaHQ9IjEwMCUiLHRoaXMuX2ltZy5kcmFnZ2FibGU9ITEpLHRoaXMuX2ltZy5zcmM9dGhpcy5zcmMsZXIodGhpcy5yb290KS5hcHBlbmRDaGlsZCh0aGlzLl9pbWcpKX19KSwKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmpyKHtpczoiaXJvbi1pY29uc2V0LXN2ZyIscHJvcGVydGllczp7bmFtZTp7dHlwZTpTdHJpbmcsb2JzZXJ2ZXI6Il9uYW1lQ2hhbmdlZCJ9LHNpemU6e3R5cGU6TnVtYmVyLHZhbHVlOjI0fSxydGxNaXJyb3Jpbmc6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sdXNlR2xvYmFsUnRsQXR0cmlidXRlOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5fbWV0YT1uZXcgTm8oe3R5cGU6Imljb25zZXQiLGtleTpudWxsLHZhbHVlOm51bGx9KX0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLnN0eWxlLmRpc3BsYXk9Im5vbmUifSxnZXRJY29uTmFtZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faWNvbnM9dGhpcy5fY3JlYXRlSWNvbk1hcCgpLE9iamVjdC5rZXlzKHRoaXMuX2ljb25zKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm5hbWUrIjoiK3R9KSx0aGlzKX0sYXBwbHlJY29uOmZ1bmN0aW9uKHQsZSl7dGhpcy5yZW1vdmVJY29uKHQpO3ZhciBuPXRoaXMuX2Nsb25lSWNvbihlLHRoaXMucnRsTWlycm9yaW5nJiZ0aGlzLl90YXJnZXRJc1JUTCh0KSk7aWYobil7dmFyIGk9ZXIodC5yb290fHx0KTtyZXR1cm4gaS5pbnNlcnRCZWZvcmUobixpLmNoaWxkTm9kZXNbMF0pLHQuX3N2Z0ljb249bn1yZXR1cm4gbnVsbH0scmVtb3ZlSWNvbjpmdW5jdGlvbih0KXt0Ll9zdmdJY29uJiYoZXIodC5yb290fHx0KS5yZW1vdmVDaGlsZCh0Ll9zdmdJY29uKSx0Ll9zdmdJY29uPW51bGwpfSxfdGFyZ2V0SXNSVEw6ZnVuY3Rpb24odCl7aWYobnVsbD09dGhpcy5fX3RhcmdldElzUlRMKWlmKHRoaXMudXNlR2xvYmFsUnRsQXR0cmlidXRlKXt2YXIgZT1kb2N1bWVudC5ib2R5JiZkb2N1bWVudC5ib2R5Lmhhc0F0dHJpYnV0ZSgiZGlyIik/ZG9jdW1lbnQuYm9keTpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7dGhpcy5fX3RhcmdldElzUlRMPSJydGwiPT09ZS5nZXRBdHRyaWJ1dGUoImRpciIpfWVsc2UgdCYmdC5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFJiYodD10Lmhvc3QpLHRoaXMuX190YXJnZXRJc1JUTD10JiYicnRsIj09PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLmRpcmVjdGlvbjtyZXR1cm4gdGhpcy5fX3RhcmdldElzUlRMfSxfbmFtZUNoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLl9tZXRhLnZhbHVlPW51bGwsdGhpcy5fbWV0YS5rZXk9dGhpcy5uYW1lLHRoaXMuX21ldGEudmFsdWU9dGhpcyx0aGlzLmFzeW5jKChmdW5jdGlvbigpe3RoaXMuZmlyZSgiaXJvbi1pY29uc2V0LWFkZGVkIix0aGlzLHtub2RlOndpbmRvd30pfSkpfSxfY3JlYXRlSWNvbk1hcDpmdW5jdGlvbigpe3ZhciB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGVyKHRoaXMpLnF1ZXJ5U2VsZWN0b3JBbGwoIltpZF0iKS5mb3JFYWNoKChmdW5jdGlvbihlKXt0W2UuaWRdPWV9KSksdH0sX2Nsb25lSWNvbjpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9pY29ucz10aGlzLl9pY29uc3x8dGhpcy5fY3JlYXRlSWNvbk1hcCgpLHRoaXMuX3ByZXBhcmVTdmdDbG9uZSh0aGlzLl9pY29uc1t0XSx0aGlzLnNpemUsZSl9LF9wcmVwYXJlU3ZnQ2xvbmU6ZnVuY3Rpb24odCxlLG4pe2lmKHQpe3ZhciBpPXQuY2xvbmVOb2RlKCEwKSxyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJzdmciKSxvPWkuZ2V0QXR0cmlidXRlKCJ2aWV3Qm94Iil8fCIwIDAgIitlKyIgIitlLGE9InBvaW50ZXItZXZlbnRzOiBub25lOyBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsiO3JldHVybiBuJiZpLmhhc0F0dHJpYnV0ZSgibWlycm9yLWluLXJ0bCIpJiYoYSs9Ii13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC0xLDEpO3RyYW5zZm9ybTpzY2FsZSgtMSwxKTt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjsiKSxyLnNldEF0dHJpYnV0ZSgidmlld0JveCIsbyksci5zZXRBdHRyaWJ1dGUoInByZXNlcnZlQXNwZWN0UmF0aW8iLCJ4TWlkWU1pZCBtZWV0Iiksci5zZXRBdHRyaWJ1dGUoImZvY3VzYWJsZSIsImZhbHNlIiksci5zdHlsZS5jc3NUZXh0PWEsci5hcHBlbmRDaGlsZChpKS5yZW1vdmVBdHRyaWJ1dGUoImlkIikscn1yZXR1cm4gbnVsbH19KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IFJvPXhlYDxpcm9uLWljb25zZXQtc3ZnIG5hbWU9ImltYWdlIiBzaXplPSIyNCI+Cjxzdmc+PGRlZnM+CjxnIGlkPSJhZGQtYS1waG90byI+PHBhdGggZD0iTTMgNFYxaDJ2M2gzdjJINXYzSDNWNkgwVjRoM3ptMyA2VjdoM1Y0aDdsMS44MyAySDIxYzEuMSAwIDIgLjkgMiAydjEyYzAgMS4xLS45IDItMiAySDVjLTEuMSAwLTItLjktMi0yVjEwaDN6bTcgOWMyLjc2IDAgNS0yLjI0IDUtNXMtMi4yNC01LTUtNS01IDIuMjQtNSA1IDIuMjQgNSA1IDV6bS0zLjItNWMwIDEuNzcgMS40MyAzLjIgMy4yIDMuMnMzLjItMS40MyAzLjItMy4yLTEuNDMtMy4yLTMuMi0zLjItMy4yIDEuNDMtMy4yIDMuMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJhZGQtdG8tcGhvdG9zIj48cGF0aCBkPSJNNCA2SDJ2MTRjMCAxLjEuOSAyIDIgMmgxNHYtMkg0VjZ6bTE2LTRIOGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tMSA5aC00djRoLTJ2LTRIOVY5aDRWNWgydjRoNHYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFkanVzdCI+PHBhdGggZD0iTTEyIDJDNi40OSAyIDIgNi40OSAyIDEyczQuNDkgMTAgMTAgMTAgMTAtNC40OSAxMC0xMFMxNy41MSAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4em0zLThjMCAxLjY2LTEuMzQgMy0zIDNzLTMtMS4zNC0zLTMgMS4zNC0zIDMtMyAzIDEuMzQgMyAzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFzc2lzdGFudCI+PHBhdGggZD0iTTE5IDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmg0bDMgMyAzLTNoNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tNS4xMiAxMC44OEwxMiAxN2wtMS44OC00LjEyTDYgMTFsNC4xMi0xLjg4TDEyIDVsMS44OCA0LjEyTDE4IDExbC00LjEyIDEuODh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXNzaXN0YW50LXBob3RvIj48cGF0aCBkPSJNMTQuNCA2TDE0IDRINXYxN2gydi03aDUuNmwuNCAyaDdWNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJhdWRpb3RyYWNrIj48cGF0aCBkPSJNMTIgM3Y5LjI4Yy0uNDctLjE3LS45Ny0uMjgtMS41LS4yOEM4LjAxIDEyIDYgMTQuMDEgNiAxNi41UzguMDEgMjEgMTAuNSAyMWMyLjMxIDAgNC4yLTEuNzUgNC40NS00SDE1VjZoNFYzaC03eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImJsdXItY2lyY3VsYXIiPjxwYXRoIGQ9Ik0xMCA5Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAgNGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xek03IDkuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bTMgN2MtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bS0zLTNjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em0zLTZjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41ek0xNCA5Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAtMS41Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXptMyA2Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptMC00Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXpNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6bTItMy41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptMC0zLjVjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJibHVyLWxpbmVhciI+PHBhdGggZD0iTTUgMTcuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjVzLS42Ny0xLjUtMS41LTEuNS0xLjUuNjctMS41IDEuNS42NyAxLjUgMS41IDEuNXpNOSAxM2MuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0wLTRjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXpNMyAyMWgxOHYtMkgzdjJ6TTUgOS41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVM1LjgzIDYuNSA1IDYuNSAzLjUgNy4xNyAzLjUgOCA0LjE3IDkuNSA1IDkuNXptMCA0Yy44MyAwIDEuNS0uNjcgMS41LTEuNXMtLjY3LTEuNS0xLjUtMS41LTEuNS42Ny0xLjUgMS41LjY3IDEuNSAxLjUgMS41ek05IDE3Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTgtLjVjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41ek0zIDN2MmgxOFYzSDN6bTE0IDUuNWMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6bTAgNGMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6TTEzIDljLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptMCA0Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTAgNGMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImJsdXItb2ZmIj48cGF0aCBkPSJNMTQgN2MuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0tLjIgNC40OGwuMi4wMmMuODMgMCAxLjUtLjY3IDEuNS0xLjVzLS42Ny0xLjUtMS41LTEuNS0xLjUuNjctMS41IDEuNWwuMDIuMmMuMDkuNjcuNjEgMS4xOSAxLjI4IDEuMjh6TTE0IDMuNWMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6bS00IDBjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41em0xMSA3Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXpNMTAgN2MuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem04IDhjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptMC00Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTAtNGMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0tNCAxMy41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXpNMi41IDUuMjdsMy43OCAzLjc4TDYgOWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTFjMC0uMS0uMDMtLjE5LS4wNi0uMjhsMi44MSAyLjgxYy0uNzEuMTEtMS4yNS43My0xLjI1IDEuNDcgMCAuODMuNjcgMS41IDEuNSAxLjUuNzQgMCAxLjM2LS41NCAxLjQ3LTEuMjVsMi44MSAyLjgxYy0uMDktLjAzLS4xOC0uMDYtLjI4LS4wNi0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMWMwLS4xLS4wMy0uMTktLjA2LS4yOGwzLjc4IDMuNzhMMjAgMjAuMjMgMy43NyA0IDIuNSA1LjI3ek0xMCAxN2MtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0xMS0zLjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41ek02IDEzYy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6TTMgOS41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptNyAxMWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6TTYgMTdjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptLTMtMy41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJibHVyLW9uIj48cGF0aCBkPSJNNiAxM2MtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wIDRjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMC04Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bS0zIC41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXpNNiA1Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTE1IDUuNWMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6TTE0IDdjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptMC0zLjVjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41em0tMTEgMTBjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em03IDdjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em0wLTE3Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXpNMTAgN2MuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0wIDUuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjVzLjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNS0uNjctMS41LTEuNS0xLjV6bTggLjVjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMCA0Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAtOGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wLTRjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMyA4LjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41ek0xNCAxN2MtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wIDMuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bS00LTEyYy0uODMgMC0xLjUuNjctMS41IDEuNXMuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41LS42Ny0xLjUtMS41LTEuNXptMCA4LjVjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptNC00LjVjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41em0wLTRjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImJyaWdodG5lc3MtMSI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiPjwvY2lyY2xlPjwvZz4KPGcgaWQ9ImJyaWdodG5lc3MtMiI+PHBhdGggZD0iTTEwIDJjLTEuODIgMC0zLjUzLjUtNSAxLjM1QzcuOTkgNS4wOCAxMCA4LjMgMTAgMTJzLTIuMDEgNi45Mi01IDguNjVDNi40NyAyMS41IDguMTggMjIgMTAgMjJjNS41MiAwIDEwLTQuNDggMTAtMTBTMTUuNTIgMiAxMCAyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImJyaWdodG5lc3MtMyI+PHBhdGggZD0iTTkgMmMtMS4wNSAwLTIuMDUuMTYtMyAuNDYgNC4wNiAxLjI3IDcgNS4wNiA3IDkuNTQgMCA0LjQ4LTIuOTQgOC4yNy03IDkuNTQuOTUuMyAxLjk1LjQ2IDMgLjQ2IDUuNTIgMCAxMC00LjQ4IDEwLTEwUzE0LjUyIDIgOSAyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImJyaWdodG5lc3MtNCI+PHBhdGggZD0iTTIwIDguNjlWNGgtNC42OUwxMiAuNjkgOC42OSA0SDR2NC42OUwuNjkgMTIgNCAxNS4zMVYyMGg0LjY5TDEyIDIzLjMxIDE1LjMxIDIwSDIwdi00LjY5TDIzLjMxIDEyIDIwIDguNjl6TTEyIDE4Yy0uODkgMC0xLjc0LS4yLTIuNS0uNTVDMTEuNTYgMTYuNSAxMyAxNC40MiAxMyAxMnMtMS40NC00LjUtMy41LTUuNDVDMTAuMjYgNi4yIDExLjExIDYgMTIgNmMzLjMxIDAgNiAyLjY5IDYgNnMtMi42OSA2LTYgNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJicmlnaHRuZXNzLTUiPjxwYXRoIGQ9Ik0yMCAxNS4zMUwyMy4zMSAxMiAyMCA4LjY5VjRoLTQuNjlMMTIgLjY5IDguNjkgNEg0djQuNjlMLjY5IDEyIDQgMTUuMzFWMjBoNC42OUwxMiAyMy4zMSAxNS4zMSAyMEgyMHYtNC42OXpNMTIgMThjLTMuMzEgMC02LTIuNjktNi02czIuNjktNiA2LTYgNiAyLjY5IDYgNi0yLjY5IDYtNiA2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImJyaWdodG5lc3MtNiI+PHBhdGggZD0iTTIwIDE1LjMxTDIzLjMxIDEyIDIwIDguNjlWNGgtNC42OUwxMiAuNjkgOC42OSA0SDR2NC42OUwuNjkgMTIgNCAxNS4zMVYyMGg0LjY5TDEyIDIzLjMxIDE1LjMxIDIwSDIwdi00LjY5ek0xMiAxOFY2YzMuMzEgMCA2IDIuNjkgNiA2cy0yLjY5IDYtNiA2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImJyaWdodG5lc3MtNyI+PHBhdGggZD0iTTIwIDguNjlWNGgtNC42OUwxMiAuNjkgOC42OSA0SDR2NC42OUwuNjkgMTIgNCAxNS4zMVYyMGg0LjY5TDEyIDIzLjMxIDE1LjMxIDIwSDIwdi00LjY5TDIzLjMxIDEyIDIwIDguNjl6TTEyIDE4Yy0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02IDYgMi42OSA2IDYtMi42OSA2LTYgNnptMC0xMGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYnJva2VuLWltYWdlIj48cGF0aCBkPSJNMjEgNXY2LjU5bC0zLTMuMDEtNCA0LjAxLTQtNC00IDQtMy0zLjAxVjVjMC0xLjEuOS0yIDItMmgxNGMxLjEgMCAyIC45IDIgMnptLTMgNi40MmwzIDMuMDFWMTljMCAxLjEtLjkgMi0yIDJINWMtMS4xIDAtMi0uOS0yLTJ2LTYuNThsMyAyLjk5IDQtNCA0IDQgNC0zLjk5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImJydXNoIj48cGF0aCBkPSJNNyAxNGMtMS42NiAwLTMgMS4zNC0zIDMgMCAxLjMxLTEuMTYgMi0yIDIgLjkyIDEuMjIgMi40OSAyIDQgMiAyLjIxIDAgNC0xLjc5IDQtNCAwLTEuNjYtMS4zNC0zLTMtM3ptMTMuNzEtOS4zN2wtMS4zNC0xLjM0Yy0uMzktLjM5LTEuMDItLjM5LTEuNDEgMEw5IDEyLjI1IDExLjc1IDE1bDguOTYtOC45NmMuMzktLjM5LjM5LTEuMDIgMC0xLjQxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImJ1cnN0LW1vZGUiPjxwYXRoIGQ9Ik0xIDVoMnYxNEgxem00IDBoMnYxNEg1em0xNyAwSDEwYy0uNTUgMC0xIC40NS0xIDF2MTJjMCAuNTUuNDUgMSAxIDFoMTJjLjU1IDAgMS0uNDUgMS0xVjZjMC0uNTUtLjQ1LTEtMS0xek0xMSAxN2wyLjUtMy4xNUwxNS4yOSAxNmwyLjUtMy4yMkwyMSAxN0gxMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJjYW1lcmEiPjxwYXRoIGQ9Ik05LjQgMTAuNWw0Ljc3LTguMjZDMTMuNDcgMi4wOSAxMi43NSAyIDEyIDJjLTIuNCAwLTQuNi44NS02LjMyIDIuMjVsMy42NiA2LjM1LjA2LS4xek0yMS41NCA5Yy0uOTItMi45Mi0zLjE1LTUuMjYtNi02LjM0TDExLjg4IDloOS42NnptLjI2IDFoLTcuNDlsLjI5LjUgNC43NiA4LjI1QzIxIDE2Ljk3IDIyIDE0LjYxIDIyIDEyYzAtLjY5LS4wNy0xLjM1LS4yLTJ6TTguNTQgMTJsLTMuOS02Ljc1QzMuMDEgNy4wMyAyIDkuMzkgMiAxMmMwIC42OS4wNyAxLjM1LjIgMmg3LjQ5bC0xLjE1LTJ6bS02LjA4IDNjLjkyIDIuOTIgMy4xNSA1LjI2IDYgNi4zNEwxMi4xMiAxNUgyLjQ2em0xMS4yNyAwbC0zLjkgNi43NmMuNy4xNSAxLjQyLjI0IDIuMTcuMjQgMi40IDAgNC42LS44NSA2LjMyLTIuMjVsLTMuNjYtNi4zNS0uOTMgMS42eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNhbWVyYS1hbHQiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMuMiI+PC9jaXJjbGU+PHBhdGggZD0iTTkgMkw3LjE3IDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yaC0zLjE3TDE1IDJIOXptMyAxNWMtMi43NiAwLTUtMi4yNC01LTVzMi4yNC01IDUtNSA1IDIuMjQgNSA1LTIuMjQgNS01IDV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2FtZXJhLWZyb250Ij48cGF0aCBkPSJNMTAgMjBINXYyaDV2MmwzLTMtMy0zdjJ6bTQgMHYyaDV2LTJoLTV6TTEyIDhjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTEuOTkuOS0xLjk5IDJTMTAuOSA4IDEyIDh6bTUtOEg3QzUuOSAwIDUgLjkgNSAydjE0YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWMmMwLTEuMS0uOS0yLTItMnpNNyAyaDEwdjEwLjVjMC0xLjY3LTMuMzMtMi41LTUtMi41cy01IC44My01IDIuNVYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNhbWVyYS1yZWFyIj48cGF0aCBkPSJNMTAgMjBINXYyaDV2MmwzLTMtMy0zdjJ6bTQgMHYyaDV2LTJoLTV6bTMtMjBIN0M1LjkgMCA1IC45IDUgMnYxNGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjJjMC0xLjEtLjktMi0yLTJ6bS01IDZjLTEuMTEgMC0yLS45LTItMnMuODktMiAxLjk5LTIgMiAuOSAyIDJDMTQgNS4xIDEzLjEgNiAxMiA2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNhbWVyYS1yb2xsIj48cGF0aCBkPSJNMTQgNWMwLTEuMS0uOS0yLTItMmgtMVYyYzAtLjU1LS40NS0xLTEtMUg2Yy0uNTUgMC0xIC40NS0xIDF2MUg0Yy0xLjEgMC0yIC45LTIgMnYxNWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJoOFY1aC04em0tMiAxM2gtMnYtMmgydjJ6bTAtOWgtMlY3aDJ2MnptNCA5aC0ydi0yaDJ2MnptMC05aC0yVjdoMnYyem00IDloLTJ2LTJoMnYyem0wLTloLTJWN2gydjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2VudGVyLWZvY3VzLXN0cm9uZyI+PHBhdGggZD0iTTEyIDhjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0tNyA3SDN2NGMwIDEuMS45IDIgMiAyaDR2LTJINXYtNHpNNSA1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnY0aDJWNXptMTQtMmgtNHYyaDR2NGgyVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2VudGVyLWZvY3VzLXdlYWsiPjxwYXRoIGQ9Ik01IDE1SDN2NGMwIDEuMS45IDIgMiAyaDR2LTJINXYtNHpNNSA1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnY0aDJWNXptMTQtMmgtNHYyaDR2NGgyVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6TTEyIDhjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0wIDZjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNvbGxlY3Rpb25zIj48cGF0aCBkPSJNMjIgMTZWNGMwLTEuMS0uOS0yLTItMkg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yem0tMTEtNGwyLjAzIDIuNzFMMTYgMTFsNCA1SDhsMy00ek0yIDZ2MTRjMCAxLjEuOSAyIDIgMmgxNHYtMkg0VjZIMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjb2xsZWN0aW9ucy1ib29rbWFyayI+PHBhdGggZD0iTTQgNkgydjE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2em0xNi00SDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxMGwtMi41LTEuNUwxNSAxMlY0aDV2OHoiPjwvcGF0aD48L2c+CjxnIGlkPSJjb2xvci1sZW5zIj48cGF0aCBkPSJNMTIgM2MtNC45NyAwLTkgNC4wMy05IDlzNC4wMyA5IDkgOWMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0uMzktLjE1LS43NC0uMzktMS4wMS0uMjMtLjI2LS4zOC0uNjEtLjM4LS45OSAwLS44My42Ny0xLjUgMS41LTEuNUgxNmMyLjc2IDAgNS0yLjI0IDUtNSAwLTQuNDItNC4wMy04LTktOHptLTUuNSA5Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyA5IDYuNSA5IDggOS42NyA4IDEwLjUgNy4zMyAxMiA2LjUgMTJ6bTMtNEM4LjY3IDggOCA3LjMzIDggNi41UzguNjcgNSA5LjUgNXMxLjUuNjcgMS41IDEuNVMxMC4zMyA4IDkuNSA4em01IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxMy42NyA1IDE0LjUgNXMxLjUuNjcgMS41IDEuNVMxNS4zMyA4IDE0LjUgOHptMyA0Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuNjcgOSAxNy41IDlzMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNvbG9yaXplIj48cGF0aCBkPSJNMjAuNzEgNS42M2wtMi4zNC0yLjM0Yy0uMzktLjM5LTEuMDItLjM5LTEuNDEgMGwtMy4xMiAzLjEyLTEuOTMtMS45MS0xLjQxIDEuNDEgMS40MiAxLjQyTDMgMTYuMjVWMjFoNC43NWw4LjkyLTguOTIgMS40MiAxLjQyIDEuNDEtMS40MS0xLjkyLTEuOTIgMy4xMi0zLjEyYy40LS40LjQtMS4wMy4wMS0xLjQyek02LjkyIDE5TDUgMTcuMDhsOC4wNi04LjA2IDEuOTIgMS45Mkw2LjkyIDE5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNvbXBhcmUiPjxwYXRoIGQ9Ik0xMCAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoNXYyaDJWMWgtMnYyem0wIDE1SDVsNS02djZ6bTktMTVoLTV2Mmg1djEzbC01LTZ2OWg1YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY29udHJvbC1wb2ludCI+PHBhdGggZD0iTTEzIDdoLTJ2NEg3djJoNHY0aDJ2LTRoNHYtMmgtNFY3em0tMS01QzYuNDkgMiAyIDYuNDkgMiAxMnM0LjQ5IDEwIDEwIDEwIDEwLTQuNDkgMTAtMTBTMTcuNTEgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJjb250cm9sLXBvaW50LWR1cGxpY2F0ZSI+PHBhdGggZD0iTTE2IDhoLTJ2M2gtM3YyaDN2M2gydi0zaDN2LTJoLTN6TTIgMTJjMC0yLjc5IDEuNjQtNS4yIDQuMDEtNi4zMlYzLjUyQzIuNTIgNC43NiAwIDguMDkgMCAxMnMyLjUyIDcuMjQgNi4wMSA4LjQ4di0yLjE2QzMuNjQgMTcuMiAyIDE0Ljc5IDIgMTJ6bTEzLTljLTQuOTYgMC05IDQuMDQtOSA5czQuMDQgOSA5IDkgOS00LjA0IDktOS00LjA0LTktOS05em0wIDE2Yy0zLjg2IDAtNy0zLjE0LTctN3MzLjE0LTcgNy03IDcgMy4xNCA3IDctMy4xNCA3LTcgN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJjcm9wIj48cGF0aCBkPSJNMTcgMTVoMlY3YzAtMS4xLS45LTItMi0ySDl2Mmg4djh6TTcgMTdWMUg1djRIMXYyaDR2MTBjMCAxLjEuOSAyIDIgMmgxMHY0aDJ2LTRoNHYtMkg3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3AtMTYtOSI+PHBhdGggZD0iTTE5IDZINWMtMS4xIDAtMiAuOS0yIDJ2OGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bTAgMTBINVY4aDE0djh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY3JvcC0zLTIiPjxwYXRoIGQ9Ik0xOSA0SDVjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNEg1VjZoMTR2MTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY3JvcC01LTQiPjxwYXRoIGQ9Ik0xOSA1SDVjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMnptMCAxMkg1VjdoMTR2MTB6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY3JvcC03LTUiPjxwYXRoIGQ9Ik0xOSA3SDVjLTEuMSAwLTIgLjktMiAydjZjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY5YzAtMS4xLS45LTItMi0yem0wIDhINVY5aDE0djZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY3JvcC1kaW4iPjxwYXRoIGQ9Ik0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY3JvcC1mcmVlIj48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3AtbGFuZHNjYXBlIj48cGF0aCBkPSJNMTkgNUg1Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6bTAgMTJINVY3aDE0djEweiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNyb3Atb3JpZ2luYWwiPjxwYXRoIGQ9Ik0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6bS01LjA0LTYuNzFsLTIuNzUgMy41NC0xLjk2LTIuMzZMNi41IDE3aDExbC0zLjU0LTQuNzF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY3JvcC1wb3J0cmFpdCI+PHBhdGggZD0iTTE3IDNIN2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDdWNWgxMHYxNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJjcm9wLXJvdGF0ZSI+PHBhdGggZD0iTTcuNDcgMjEuNDlDNC4yIDE5LjkzIDEuODYgMTYuNzYgMS41IDEzSDBjLjUxIDYuMTYgNS42NiAxMSAxMS45NSAxMSAuMjMgMCAuNDQtLjAyLjY2LS4wM0w4LjggMjAuMTVsLTEuMzMgMS4zNHpNMTIuMDUgMGMtLjIzIDAtLjQ0LjAyLS42Ni4wNGwzLjgxIDMuODEgMS4zMy0xLjMzQzE5LjggNC4wNyAyMi4xNCA3LjI0IDIyLjUgMTFIMjRjLS41MS02LjE2LTUuNjYtMTEtMTEuOTUtMTF6TTE2IDE0aDJWOGMwLTEuMTEtLjktMi0yLTJoLTZ2Mmg2djZ6bS04IDJWNEg2djJINHYyaDJ2OGMwIDEuMS44OSAyIDIgMmg4djJoMnYtMmgydi0ySDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY3JvcC1zcXVhcmUiPjxwYXRoIGQ9Ik0xOCA0SDZjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNEg2VjZoMTJ2MTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZGVoYXplIj48cGF0aCBkPSJNMiAxNS41djJoMjB2LTJIMnptMC01djJoMjB2LTJIMnptMC01djJoMjB2LTJIMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJkZXRhaWxzIj48cGF0aCBkPSJNMyA0bDkgMTYgOS0xNkgzem0zLjM4IDJoMTEuMjVMMTIgMTYgNi4zOCA2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImVkaXQiPjxwYXRoIGQ9Ik0zIDE3LjI1VjIxaDMuNzVMMTcuODEgOS45NGwtMy43NS0zLjc1TDMgMTcuMjV6TTIwLjcxIDcuMDRjLjM5LS4zOS4zOS0xLjAyIDAtMS40MWwtMi4zNC0yLjM0Yy0uMzktLjM5LTEuMDItLjM5LTEuNDEgMGwtMS44MyAxLjgzIDMuNzUgMy43NSAxLjgzLTEuODN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZXhwb3N1cmUiPjxwYXRoIGQ9Ik0xNSAxN3YyaDJ2LTJoMnYtMmgtMnYtMmgtMnYyaC0ydjJoMnptNS0xNUg0Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6TTUgNWg2djJINVY1em0xNSAxNUg0TDIwIDR2MTZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZXhwb3N1cmUtbmVnLTEiPjxwYXRoIGQ9Ik00IDExdjJoOHYtMkg0em0xNSA3aC0yVjcuMzhMMTQgOC40VjYuN0wxOC43IDVoLjN2MTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZXhwb3N1cmUtbmVnLTIiPjxwYXRoIGQ9Ik0xNS4wNSAxNi4yOWwyLjg2LTMuMDdjLjM4LS4zOS43Mi0uNzkgMS4wNC0xLjE4LjMyLS4zOS41OS0uNzguODItMS4xNy4yMy0uMzkuNDEtLjc4LjU0LTEuMTdzLjE5LS43OS4xOS0xLjE4YzAtLjUzLS4wOS0xLjAyLS4yNy0xLjQ2LS4xOC0uNDQtLjQ0LS44MS0uNzgtMS4xMS0uMzQtLjMxLS43Ny0uNTQtMS4yNi0uNzEtLjUxLS4xNi0xLjA4LS4yNC0xLjcyLS4yNC0uNjkgMC0xLjMxLjExLTEuODUuMzItLjU0LjIxLTEgLjUxLTEuMzYuODgtLjM3LjM3LS42NS44LS44NCAxLjMtLjE4LjQ3LS4yNy45Ny0uMjggMS41aDIuMTRjLjAxLS4zMS4wNS0uNi4xMy0uODcuMDktLjI5LjIzLS41NC40LS43NS4xOC0uMjEuNDEtLjM3LjY4LS40OS4yNy0uMTIuNi0uMTguOTYtLjE4LjMxIDAgLjU4LjA1LjgxLjE1LjIzLjEuNDMuMjUuNTkuNDMuMTYuMTguMjguNC4zNy42NS4wOC4yNS4xMy41Mi4xMy44MSAwIC4yMi0uMDMuNDMtLjA4LjY1LS4wNi4yMi0uMTUuNDUtLjI5LjctLjE0LjI1LS4zMi41My0uNTYuODMtLjIzLjMtLjUyLjY1LS44OCAxLjAzbC00LjE3IDQuNTVWMThIMjF2LTEuNzFoLTUuOTV6TTIgMTF2Mmg4di0ySDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZXhwb3N1cmUtcGx1cy0xIj48cGF0aCBkPSJNMTAgN0g4djRINHYyaDR2NGgydi00aDR2LTJoLTRWN3ptMTAgMTFoLTJWNy4zOEwxNSA4LjRWNi43TDE5LjcgNWguM3YxM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJleHBvc3VyZS1wbHVzLTIiPjxwYXRoIGQ9Ik0xNi4wNSAxNi4yOWwyLjg2LTMuMDdjLjM4LS4zOS43Mi0uNzkgMS4wNC0xLjE4LjMyLS4zOS41OS0uNzguODItMS4xNy4yMy0uMzkuNDEtLjc4LjU0LTEuMTcuMTMtLjM5LjE5LS43OS4xOS0xLjE4IDAtLjUzLS4wOS0xLjAyLS4yNy0xLjQ2LS4xOC0uNDQtLjQ0LS44MS0uNzgtMS4xMS0uMzQtLjMxLS43Ny0uNTQtMS4yNi0uNzEtLjUxLS4xNi0xLjA4LS4yNC0xLjcyLS4yNC0uNjkgMC0xLjMxLjExLTEuODUuMzItLjU0LjIxLTEgLjUxLTEuMzYuODgtLjM3LjM3LS42NS44LS44NCAxLjMtLjE4LjQ3LS4yNy45Ny0uMjggMS41aDIuMTRjLjAxLS4zMS4wNS0uNi4xMy0uODcuMDktLjI5LjIzLS41NC40LS43NS4xOC0uMjEuNDEtLjM3LjY4LS40OS4yNy0uMTIuNi0uMTguOTYtLjE4LjMxIDAgLjU4LjA1LjgxLjE1LjIzLjEuNDMuMjUuNTkuNDMuMTYuMTguMjguNC4zNy42NS4wOC4yNS4xMy41Mi4xMy44MSAwIC4yMi0uMDMuNDMtLjA4LjY1LS4wNi4yMi0uMTUuNDUtLjI5LjctLjE0LjI1LS4zMi41My0uNTYuODMtLjIzLjMtLjUyLjY1LS44OCAxLjAzbC00LjE3IDQuNTVWMThIMjJ2LTEuNzFoLTUuOTV6TTggN0g2djRIMnYyaDR2NGgydi00aDR2LTJIOFY3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImV4cG9zdXJlLXplcm8iPjxwYXRoIGQ9Ik0xNi4xNCAxMi41YzAgMS0uMSAxLjg1LS4zIDIuNTUtLjIuNy0uNDggMS4yNy0uODMgMS43LS4zNi40NC0uNzkuNzUtMS4zLjk1LS41MS4yLTEuMDcuMy0xLjcuMy0uNjIgMC0xLjE4LS4xLTEuNjktLjMtLjUxLS4yLS45NS0uNTEtMS4zMS0uOTUtLjM2LS40NC0uNjUtMS4wMS0uODUtMS43LS4yLS43LS4zLTEuNTUtLjMtMi41NXYtMi4wNGMwLTEgLjEtMS44NS4zLTIuNTUuMi0uNy40OC0xLjI2Ljg0LTEuNjkuMzYtLjQzLjgtLjc0IDEuMzEtLjkzQzEwLjgxIDUuMSAxMS4zOCA1IDEyIDVjLjYzIDAgMS4xOS4xIDEuNy4yOS41MS4xOS45NS41IDEuMzEuOTMuMzYuNDMuNjQuOTkuODQgMS42OS4yLjcuMyAxLjU0LjMgMi41NXYyLjA0em0tMi4xMS0yLjM2YzAtLjY0LS4wNS0xLjE4LS4xMy0xLjYyLS4wOS0uNDQtLjIyLS43OS0uNC0xLjA2LS4xNy0uMjctLjM5LS40Ni0uNjQtLjU4LS4yNS0uMTMtLjU0LS4xOS0uODYtLjE5LS4zMiAwLS42MS4wNi0uODYuMThzLS40Ny4zMS0uNjQuNThjLS4xNy4yNy0uMzEuNjItLjQgMS4wNnMtLjEzLjk4LS4xMyAxLjYydjIuNjdjMCAuNjQuMDUgMS4xOC4xNCAxLjYyLjA5LjQ1LjIzLjgxLjQgMS4wOXMuMzkuNDguNjQuNjEuNTQuMTkuODcuMTljLjMzIDAgLjYyLS4wNi44Ny0uMTlzLjQ2LS4zMy42My0uNjFjLjE3LS4yOC4zLS42NC4zOS0xLjA5LjA5LS40NS4xMy0uOTkuMTMtMS42MnYtMi42NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJmaWx0ZXIiPjxwYXRoIGQ9Ik0xNS45NiAxMC4yOWwtMi43NSAzLjU0LTEuOTYtMi4zNkw4LjUgMTVoMTFsLTMuNTQtNC43MXpNMyA1SDF2MTZjMCAxLjEuOSAyIDIgMmgxNnYtMkgzVjV6bTE4LTRIN2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE2SDdWM2gxNHYxNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJmaWx0ZXItMSI+PHBhdGggZD0iTTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xMSAxMGgyVjVoLTR2Mmgydjh6bTctMTRIN2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE2SDdWM2gxNHYxNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJmaWx0ZXItMiI+PHBhdGggZD0iTTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xOC00SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6bS00LTRoLTR2LTJoMmMxLjEgMCAyLS44OSAyLTJWN2MwLTEuMTEtLjktMi0yLTJoLTR2Mmg0djJoLTJjLTEuMSAwLTIgLjg5LTIgMnY0aDZ2LTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLTMiPjxwYXRoIGQ9Ik0yMSAxSDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6TTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xNCA4di0xLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41LjgzIDAgMS41LS42NyAxLjUtMS41VjdjMC0xLjExLS45LTItMi0yaC00djJoNHYyaC0ydjJoMnYyaC00djJoNGMxLjEgMCAyLS44OSAyLTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLTQiPjxwYXRoIGQ9Ik0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTIgMTBoMlY1aC0ydjRoLTJWNWgtMnY2aDR2NHptNi0xNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci01Ij48cGF0aCBkPSJNMjEgMUg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0ek0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTQgOHYtMmMwLTEuMTEtLjktMi0yLTJoLTJWN2g0VjVoLTZ2Nmg0djJoLTR2Mmg0YzEuMSAwIDItLjg5IDItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJmaWx0ZXItNiI+PHBhdGggZD0iTTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xOC00SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6bS04LTJoMmMxLjEgMCAyLS44OSAyLTJ2LTJjMC0xLjExLS45LTItMi0yaC0yVjdoNFY1aC00Yy0xLjEgMC0yIC44OS0yIDJ2NmMwIDEuMTEuOSAyIDIgMnptMC00aDJ2MmgtMnYtMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJmaWx0ZXItNyI+PHBhdGggZD0iTTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xOC00SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6bS04LTJsNC04VjVoLTZ2Mmg0bC00IDhoMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJmaWx0ZXItOCI+PHBhdGggZD0iTTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xOC00SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6bS04LTJoMmMxLjEgMCAyLS44OSAyLTJ2LTEuNWMwLS44My0uNjctMS41LTEuNS0xLjUuODMgMCAxLjUtLjY3IDEuNS0xLjVWN2MwLTEuMTEtLjktMi0yLTJoLTJjLTEuMSAwLTIgLjg5LTIgMnYxLjVjMCAuODMuNjcgMS41IDEuNSAxLjUtLjgzIDAtMS41LjY3LTEuNSAxLjVWMTNjMCAxLjExLjkgMiAyIDJ6bTAtOGgydjJoLTJWN3ptMCA0aDJ2MmgtMnYtMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJmaWx0ZXItOSI+PHBhdGggZD0iTTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xOC00SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6TTE1IDVoLTJjLTEuMSAwLTIgLjg5LTIgMnYyYzAgMS4xMS45IDIgMiAyaDJ2MmgtNHYyaDRjMS4xIDAgMi0uODkgMi0yVjdjMC0xLjExLS45LTItMi0yem0wIDRoLTJWN2gydjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLTktcGx1cyI+PHBhdGggZD0iTTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xMSA3VjhjMC0xLjExLS45LTItMi0yaC0xYy0xLjEgMC0yIC44OS0yIDJ2MWMwIDEuMTEuOSAyIDIgMmgxdjFIOXYyaDNjMS4xIDAgMi0uODkgMi0yem0tMy0zVjhoMXYxaC0xem0xMC04SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCA4aC0yVjdoLTJ2MmgtMnYyaDJ2Mmgydi0yaDJ2Nkg3VjNoMTR2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJmaWx0ZXItYi1hbmQtdyI+PHBhdGggZD0iTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2bC03LTh2OEg1bDctOFY1aDd2MTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLWNlbnRlci1mb2N1cyI+PHBhdGggZD0iTTUgMTVIM3Y0YzAgMS4xLjkgMiAyIDJoNHYtMkg1di00ek01IDVoNFYzSDVjLTEuMSAwLTIgLjktMiAydjRoMlY1em0xNC0yaC00djJoNHY0aDJWNWMwLTEuMS0uOS0yLTItMnptMCAxNmgtNHYyaDRjMS4xIDAgMi0uOSAyLTJ2LTRoLTJ2NHpNMTIgOWMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zLTEuMzQtMy0zLTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLWRyYW1hIj48cGF0aCBkPSJNMTkuMzUgMTAuMDRDMTguNjcgNi41OSAxNS42NCA0IDEyIDQgOS4xMSA0IDYuNjEgNS42NCA1LjM2IDguMDQgMi4zNSA4LjM2IDAgMTAuOSAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2ek0xOSAxOEg2Yy0yLjIxIDAtNC0xLjc5LTQtNHMxLjc5LTQgNC00IDQgMS43OSA0IDRoMmMwLTIuNzYtMS44Ni01LjA4LTQuNC01Ljc4QzguNjEgNi44OCAxMC4yIDYgMTIgNmMzLjAzIDAgNS41IDIuNDcgNS41IDUuNXYuNUgxOWMxLjY1IDAgMyAxLjM1IDMgM3MtMS4zNSAzLTMgM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJmaWx0ZXItZnJhbWVzIj48cGF0aCBkPSJNMjAgNGgtNGwtNC00LTQgNEg0Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTZINFY2aDQuNTJsMy41Mi0zLjVMMTUuNTIgNkgyMHYxNHpNMTggOEg2djEwaDEyIj48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLWhkciI+PHBhdGggZD0iTTE0IDZsLTMuNzUgNSAyLjg1IDMuOC0xLjYgMS4yQzkuODEgMTMuNzUgNyAxMCA3IDEwbC02IDhoMjJMMTQgNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJmaWx0ZXItbm9uZSI+PHBhdGggZD0iTTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xOC00SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLXRpbHQtc2hpZnQiPjxwYXRoIGQ9Ik0xMSA0LjA3VjIuMDVjLTIuMDEuMi0zLjg0IDEtNS4zMiAyLjIxTDcuMSA1LjY5YzEuMTEtLjg2IDIuNDQtMS40NCAzLjktMS42MnptNy4zMi4xOUMxNi44NCAzLjA1IDE1LjAxIDIuMjUgMTMgMi4wNXYyLjAyYzEuNDYuMTggMi43OS43NiAzLjkgMS42MmwxLjQyLTEuNDN6TTE5LjkzIDExaDIuMDJjLS4yLTIuMDEtMS0zLjg0LTIuMjEtNS4zMkwxOC4zMSA3LjFjLjg2IDEuMTEgMS40NCAyLjQ0IDEuNjIgMy45ek01LjY5IDcuMUw0LjI2IDUuNjhDMy4wNSA3LjE2IDIuMjUgOC45OSAyLjA1IDExaDIuMDJjLjE4LTEuNDYuNzYtMi43OSAxLjYyLTMuOXpNNC4wNyAxM0gyLjA1Yy4yIDIuMDEgMSAzLjg0IDIuMjEgNS4zMmwxLjQzLTEuNDNjLS44Ni0xLjEtMS40NC0yLjQzLTEuNjItMy44OXpNMTUgMTJjMC0xLjY2LTEuMzQtMy0zLTNzLTMgMS4zNC0zIDMgMS4zNCAzIDMgMyAzLTEuMzQgMy0zem0zLjMxIDQuOWwxLjQzIDEuNDNjMS4yMS0xLjQ4IDIuMDEtMy4zMiAyLjIxLTUuMzJoLTIuMDJjLS4xOCAxLjQ1LS43NiAyLjc4LTEuNjIgMy44OXpNMTMgMTkuOTN2Mi4wMmMyLjAxLS4yIDMuODQtMSA1LjMyLTIuMjFsLTEuNDMtMS40M2MtMS4xLjg2LTIuNDMgMS40NC0zLjg5IDEuNjJ6bS03LjMyLS4xOUM3LjE2IDIwLjk1IDkgMjEuNzUgMTEgMjEuOTV2LTIuMDJjLTEuNDYtLjE4LTIuNzktLjc2LTMuOS0xLjYybC0xLjQyIDEuNDN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsdGVyLXZpbnRhZ2UiPjxwYXRoIGQ9Ik0xOC43IDEyLjRjLS4yOC0uMTYtLjU3LS4yOS0uODYtLjQuMjktLjExLjU4LS4yNC44Ni0uNCAxLjkyLTEuMTEgMi45OS0zLjEyIDMtNS4xOS0xLjc5LTEuMDMtNC4wNy0xLjExLTYgMC0uMjguMTYtLjU0LjM1LS43OC41NC4wNS0uMzEuMDgtLjYzLjA4LS45NSAwLTIuMjItMS4yMS00LjE1LTMtNS4xOUMxMC4yMSAxLjg1IDkgMy43OCA5IDZjMCAuMzIuMDMuNjQuMDguOTUtLjI0LS4yLS41LS4zOS0uNzgtLjU1LTEuOTItMS4xMS00LjItMS4wMy02IDAgMCAyLjA3IDEuMDcgNC4wOCAzIDUuMTkuMjguMTYuNTcuMjkuODYuNC0uMjkuMTEtLjU4LjI0LS44Ni40LTEuOTIgMS4xMS0yLjk5IDMuMTItMyA1LjE5IDEuNzkgMS4wMyA0LjA3IDEuMTEgNiAwIC4yOC0uMTYuNTQtLjM1Ljc4LS41NC0uMDUuMzItLjA4LjY0LS4wOC45NiAwIDIuMjIgMS4yMSA0LjE1IDMgNS4xOSAxLjc5LTEuMDQgMy0yLjk3IDMtNS4xOSAwLS4zMi0uMDMtLjY0LS4wOC0uOTUuMjQuMi41LjM4Ljc4LjU0IDEuOTIgMS4xMSA0LjIgMS4wMyA2IDAtLjAxLTIuMDctMS4wOC00LjA4LTMtNS4xOXpNMTIgMTZjLTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTQgNCAxLjc5IDQgNC0xLjc5IDQtNCA0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZsYXJlIj48cGF0aCBkPSJNNyAxMUgxdjJoNnYtMnptMi4xNy0zLjI0TDcuMDUgNS42NCA1LjY0IDcuMDVsMi4xMiAyLjEyIDEuNDEtMS40MXpNMTMgMWgtMnY2aDJWMXptNS4zNiA2LjA1bC0xLjQxLTEuNDEtMi4xMiAyLjEyIDEuNDEgMS40MSAyLjEyLTIuMTJ6TTE3IDExdjJoNnYtMmgtNnptLTUtMmMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zLTEuMzQtMy0zLTN6bTIuODMgNy4yNGwyLjEyIDIuMTIgMS40MS0xLjQxLTIuMTItMi4xMi0xLjQxIDEuNDF6bS05LjE5LjcxbDEuNDEgMS40MSAyLjEyLTIuMTItMS40MS0xLjQxLTIuMTIgMi4xMnpNMTEgMjNoMnYtNmgtMnY2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZsYXNoLWF1dG8iPjxwYXRoIGQ9Ik0zIDJ2MTJoM3Y5bDctMTJIOWw0LTlIM3ptMTYgMGgtMmwtMy4yIDloMS45bC43LTJoMy4ybC43IDJoMS45TDE5IDJ6bS0yLjE1IDUuNjVMMTggNGwxLjE1IDMuNjVoLTIuM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJmbGFzaC1vZmYiPjxwYXRoIGQ9Ik0zLjI3IDNMMiA0LjI3bDUgNVYxM2gzdjlsMy41OC02LjE0TDE3LjczIDIwIDE5IDE4LjczIDMuMjcgM3pNMTcgMTBoLTRsNC04SDd2Mi4xOGw4LjQ2IDguNDZMMTcgMTB6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmxhc2gtb24iPjxwYXRoIGQ9Ik03IDJ2MTFoM3Y5bDctMTJoLTRsNC04eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZsaXAiPjxwYXRoIGQ9Ik0xNSAyMWgydi0yaC0ydjJ6bTQtMTJoMlY3aC0ydjJ6TTMgNXYxNGMwIDEuMS45IDIgMiAyaDR2LTJINVY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMTYtMnYyaDJjMC0xLjEtLjktMi0yLTJ6bS04IDIwaDJWMWgtMnYyMnptOC02aDJ2LTJoLTJ2MnpNMTUgNWgyVjNoLTJ2MnptNCA4aDJ2LTJoLTJ2MnptMCA4YzEuMSAwIDItLjkgMi0yaC0ydjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZ3JhZGllbnQiPjxwYXRoIGQ9Ik0xMSA5aDJ2MmgtMnptLTIgMmgydjJIOXptNCAwaDJ2MmgtMnptMi0yaDJ2MmgtMnpNNyA5aDJ2Mkg3em0xMi02SDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNOSAxOEg3di0yaDJ2MnptNCAwaC0ydi0yaDJ2MnptNCAwaC0ydi0yaDJ2MnptMi03aC0ydjJoMnYyaC0ydi0yaC0ydjJoLTJ2LTJoLTJ2Mkg5di0ySDd2Mkg1di0yaDJ2LTJINVY1aDE0djZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZ3JhaW4iPjxwYXRoIGQ9Ik0xMCAxMmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6TTYgOGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTAgOGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTEyLThjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem0tNCA4Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptNC00Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptLTQtNGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bS00LTRjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImdyaWQtb2ZmIj48cGF0aCBkPSJNOCA0djEuNDVsMiAyVjRoNHY0aC0zLjQ1bDIgMkgxNHYxLjQ1bDIgMlYxMGg0djRoLTMuNDVsMiAySDIwdjEuNDVsMiAyVjRjMC0xLjEtLjktMi0yLTJINC41NWwyIDJIOHptOCAwaDR2NGgtNFY0ek0xLjI3IDEuMjdMMCAyLjU1bDIgMlYyMGMwIDEuMS45IDIgMiAyaDE1LjQ2bDIgMiAxLjI3LTEuMjdMMS4yNyAxLjI3ek0xMCAxMi41NUwxMS40NSAxNEgxMHYtMS40NXptLTYtNkw1LjQ1IDhINFY2LjU1ek04IDIwSDR2LTRoNHY0em0wLTZINHYtNGgzLjQ1bC41NS41NVYxNHptNiA2aC00di00aDMuNDVsLjU1LjU0VjIwem0yIDB2LTEuNDZMMTcuNDYgMjBIMTZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZ3JpZC1vbiI+PHBhdGggZD0iTTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek04IDIwSDR2LTRoNHY0em0wLTZINHYtNGg0djR6bTAtNkg0VjRoNHY0em02IDEyaC00di00aDR2NHptMC02aC00di00aDR2NHptMC02aC00VjRoNHY0em02IDEyaC00di00aDR2NHptMC02aC00di00aDR2NHptMC02aC00VjRoNHY0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imhkci1vZmYiPjxwYXRoIGQ9Ik0xNy41IDE1di0yaDEuMWwuOSAySDIxbC0uOS0yLjFjLjUtLjIuOS0uOC45LTEuNHYtMWMwLS44LS43LTEuNS0xLjUtMS41SDE2djQuOWwxLjEgMS4xaC40em0wLTQuNWgydjFoLTJ2LTF6bS00LjUgMHYuNGwxLjUgMS41di0xLjljMC0uOC0uNy0xLjUtMS41LTEuNWgtMS45bDEuNSAxLjVoLjR6bS0zLjUtMWwtNy03LTEuMSAxTDYuOSA5aC0uNHYyaC0yVjlIM3Y2aDEuNXYtMi41aDJWMTVIOHYtNC45bDEuNSAxLjVWMTVoMy40bDcuNiA3LjYgMS4xLTEuMS0xMi4xLTEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imhkci1vbiI+PHBhdGggZD0iTTIxIDExLjV2LTFjMC0uOC0uNy0xLjUtMS41LTEuNUgxNnY2aDEuNXYtMmgxLjFsLjkgMkgyMWwtLjktMi4xYy41LS4zLjktLjguOS0xLjR6bS0xLjUgMGgtMnYtMWgydjF6bS0xMy0uNWgtMlY5SDN2NmgxLjV2LTIuNWgyVjE1SDhWOUg2LjV2MnpNMTMgOUg5LjV2NkgxM2MuOCAwIDEuNS0uNyAxLjUtMS41di0zYzAtLjgtLjctMS41LTEuNS0xLjV6bTAgNC41aC0ydi0zaDJ2M3oiPjwvcGF0aD48L2c+CjxnIGlkPSJoZHItc3Ryb25nIj48cGF0aCBkPSJNMTcgNmMtMy4zMSAwLTYgMi42OS02IDZzMi42OSA2IDYgNiA2LTIuNjkgNi02LTIuNjktNi02LTZ6TTUgOGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bTAgNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaGRyLXdlYWsiPjxwYXRoIGQ9Ik01IDhjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0xMi0yYy0zLjMxIDAtNiAyLjY5LTYgNnMyLjY5IDYgNiA2IDYtMi42OSA2LTYtMi42OS02LTYtNnptMCAxMGMtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNCA0IDEuNzkgNCA0LTEuNzkgNC00IDR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaGVhbGluZyI+PHBhdGggZD0iTTE3LjczIDEyLjAybDMuOTgtMy45OGMuMzktLjM5LjM5LTEuMDIgMC0xLjQxbC00LjM0LTQuMzRjLS4zOS0uMzktMS4wMi0uMzktMS40MSAwbC0zLjk4IDMuOThMOCAyLjI5QzcuOCAyLjEgNy41NSAyIDcuMjkgMmMtLjI1IDAtLjUxLjEtLjcuMjlMMi4yNSA2LjYzYy0uMzkuMzktLjM5IDEuMDIgMCAxLjQxbDMuOTggMy45OEwyLjI1IDE2Yy0uMzkuMzktLjM5IDEuMDIgMCAxLjQxbDQuMzQgNC4zNGMuMzkuMzkgMS4wMi4zOSAxLjQxIDBsMy45OC0zLjk4IDMuOTggMy45OGMuMi4yLjQ1LjI5LjcxLjI5LjI2IDAgLjUxLS4xLjcxLS4yOWw0LjM0LTQuMzRjLjM5LS4zOS4zOS0xLjAyIDAtMS40MWwtMy45OS0zLjk4ek0xMiA5Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bS00LjcxIDEuOTZMMy42NiA3LjM0bDMuNjMtMy42MyAzLjYyIDMuNjItMy42MiAzLjYzek0xMCAxM2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0yIDJjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMi00Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTIuNjYgOS4zNGwtMy42My0zLjYyIDMuNjMtMy42MyAzLjYyIDMuNjItMy42MiAzLjYzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImltYWdlIj48cGF0aCBkPSJNMjEgMTlWNWMwLTEuMS0uOS0yLTItMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yek04LjUgMTMuNWwyLjUgMy4wMUwxNC41IDEybDQuNSA2SDVsMy41LTQuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJpbWFnZS1hc3BlY3QtcmF0aW8iPjxwYXRoIGQ9Ik0xNiAxMGgtMnYyaDJ2LTJ6bTAgNGgtMnYyaDJ2LTJ6bS04LTRINnYyaDJ2LTJ6bTQgMGgtMnYyaDJ2LTJ6bTgtNkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRINFY2aDE2djEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImlzbyI+PHBhdGggZD0iTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek01LjUgNy41aDJ2LTJIOXYyaDJWOUg5djJINy41VjloLTJWNy41ek0xOSAxOUg1TDE5IDV2MTR6bS0yLTJ2LTEuNWgtNVYxN2g1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImxhbmRzY2FwZSI+PHBhdGggZD0iTTE0IDZsLTMuNzUgNSAyLjg1IDMuOC0xLjYgMS4yQzkuODEgMTMuNzUgNyAxMCA3IDEwbC02IDhoMjJMMTQgNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJsZWFrLWFkZCI+PHBhdGggZD0iTTYgM0gzdjNjMS42NiAwIDMtMS4zNCAzLTN6bTggMGgtMmMwIDQuOTctNC4wMyA5LTkgOXYyYzYuMDggMCAxMS00LjkzIDExLTExem0tNCAwSDhjMCAyLjc2LTIuMjQgNS01IDV2MmMzLjg3IDAgNy0zLjEzIDctN3ptMCAxOGgyYzAtNC45NyA0LjAzLTkgOS05di0yYy02LjA3IDAtMTEgNC45My0xMSAxMXptOCAwaDN2LTNjLTEuNjYgMC0zIDEuMzQtMyAzem0tNCAwaDJjMC0yLjc2IDIuMjQtNSA1LTV2LTJjLTMuODcgMC03IDMuMTMtNyA3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImxlYWstcmVtb3ZlIj48cGF0aCBkPSJNMTAgM0g4YzAgLjM3LS4wNC43Mi0uMTIgMS4wNmwxLjU5IDEuNTlDOS44MSA0Ljg0IDEwIDMuOTQgMTAgM3pNMyA0LjI3bDIuODQgMi44NEM1LjAzIDcuNjcgNC4wNiA4IDMgOHYyYzEuNjEgMCAzLjA5LS41NSA0LjI3LTEuNDZMOC43IDkuOTdDNy4xNCAxMS4yNCA1LjE2IDEyIDMgMTJ2MmMyLjcxIDAgNS4xOS0uOTkgNy4xMS0yLjYybDIuNSAyLjVDMTAuOTkgMTUuODEgMTAgMTguMjkgMTAgMjFoMmMwLTIuMTYuNzYtNC4xNCAyLjAzLTUuNjlsMS40MyAxLjQzQzE0LjU1IDE3LjkxIDE0IDE5LjM5IDE0IDIxaDJjMC0xLjA2LjMzLTIuMDMuODktMi44NEwxOS43MyAyMSAyMSAxOS43MyA0LjI3IDMgMyA0LjI3ek0xNCAzaC0yYzAgMS41LS4zNyAyLjkxLTEuMDIgNC4xNmwxLjQ2IDEuNDZDMTMuNDIgNi45OCAxNCA1LjA2IDE0IDN6bTUuOTQgMTMuMTJjLjM0LS4wOC42OS0uMTIgMS4wNi0uMTJ2LTJjLS45NCAwLTEuODQuMTktMi42Ni41MmwxLjYgMS42em0tNC41Ni00LjU2bDEuNDYgMS40NkMxOC4wOSAxMi4zNyAxOS41IDEyIDIxIDEydi0yYy0yLjA2IDAtMy45OC41OC01LjYyIDEuNTZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibGVucyI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibGlua2VkLWNhbWVyYSI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxNCIgcj0iMy4yIj48L2NpcmNsZT48cGF0aCBkPSJNMTYgMy4zM2MyLjU4IDAgNC42NyAyLjA5IDQuNjcgNC42N0gyMmMwLTMuMzEtMi42OS02LTYtNnYxLjMzTTE2IDZjMS4xMSAwIDIgLjg5IDIgMmgxLjMzYzAtMS44NC0xLjQ5LTMuMzMtMy4zMy0zLjMzVjYiPjwvcGF0aD48cGF0aCBkPSJNMTcgOWMwLTEuMTEtLjg5LTItMi0yVjRIOUw3LjE3IDZINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY5aC01em0tNSAxMGMtMi43NiAwLTUtMi4yNC01LTVzMi4yNC01IDUtNSA1IDIuMjQgNSA1LTIuMjQgNS01IDV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibG9va3MiPjxwYXRoIGQ9Ik0xMiAxMGMtMy44NiAwLTcgMy4xNC03IDdoMmMwLTIuNzYgMi4yNC01IDUtNXM1IDIuMjQgNSA1aDJjMC0zLjg2LTMuMTQtNy03LTd6bTAtNEM1LjkzIDYgMSAxMC45MyAxIDE3aDJjMC00Ljk2IDQuMDQtOSA5LTlzOSA0LjA0IDkgOWgyYzAtNi4wNy00LjkzLTExLTExLTExeiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imxvb2tzLTMiPjxwYXRoIGQ9Ik0xOS4wMSAzaC0xNGMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNCA3LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41LjgzIDAgMS41LjY3IDEuNSAxLjVWMTVjMCAxLjExLS45IDItMiAyaC00di0yaDR2LTJoLTJ2LTJoMlY5aC00VjdoNGMxLjEgMCAyIC44OSAyIDJ2MS41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imxvb2tzLTQiPjxwYXRoIGQ9Ik0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTQgMTRoLTJ2LTRIOVY3aDJ2NGgyVjdoMnYxMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJsb29rcy01Ij48cGF0aCBkPSJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS00IDZoLTR2MmgyYzEuMSAwIDIgLjg5IDIgMnYyYzAgMS4xMS0uOSAyLTIgMkg5di0yaDR2LTJIOVY3aDZ2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJsb29rcy02Ij48cGF0aCBkPSJNMTEgMTVoMnYtMmgtMnYyem04LTEySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTQgNmgtNHYyaDJjMS4xIDAgMiAuODkgMiAydjJjMCAxLjExLS45IDItMiAyaC0yYy0xLjEgMC0yLS44OS0yLTJWOWMwLTEuMTEuOS0yIDItMmg0djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibG9va3Mtb25lIj48cGF0aCBkPSJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS01IDE0aC0yVjloLTJWN2g0djEweiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imxvb2tzLXR3byI+PHBhdGggZD0iTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNCA4YzAgMS4xMS0uOSAyLTIgMmgtMnYyaDR2Mkg5di00YzAtMS4xMS45LTIgMi0yaDJWOUg5VjdoNGMxLjEgMCAyIC44OSAyIDJ2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJsb3VwZSI+PHBhdGggZD0iTTEzIDdoLTJ2NEg3djJoNHY0aDJ2LTRoNHYtMmgtNFY3em0tMS01QzYuNDkgMiAyIDYuNDkgMiAxMnM0LjQ5IDEwIDEwIDEwaDhjMS4xIDAgMi0uOSAyLTJ2LThjMC01LjUxLTQuNDktMTAtMTAtMTB6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im1vbm9jaHJvbWUtcGhvdG9zIj48cGF0aCBkPSJNMjAgNWgtMy4yTDE1IDNIOUw3LjIgNUg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6bTAgMTRoLTh2LTFjLTIuOCAwLTUtMi4yLTUtNXMyLjItNSA1LTVWN2g4djEyem0tMy02YzAtMi44LTIuMi01LTUtNXYxLjhjMS44IDAgMy4yIDEuNCAzLjIgMy4ycy0xLjQgMy4yLTMuMiAzLjJWMThjMi44IDAgNS0yLjIgNS01em0tOC4yIDBjMCAxLjggMS40IDMuMiAzLjIgMy4yVjkuOGMtMS44IDAtMy4yIDEuNC0zLjIgMy4yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im1vdmllLWNyZWF0aW9uIj48cGF0aCBkPSJNMTggNGwyIDRoLTNsLTItNGgtMmwyIDRoLTNsLTItNEg4bDIgNEg3TDUgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0aC00eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im1vdmllLWZpbHRlciI+PHBhdGggZD0iTTE4IDRsMiAzaC0zbC0yLTNoLTJsMiAzaC0zbC0yLTNIOGwyIDNIN0w1IDRINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNGgtNHptLTYuNzUgMTEuMjVMMTAgMThsLTEuMjUtMi43NUw2IDE0bDIuNzUtMS4yNUwxMCAxMGwxLjI1IDIuNzVMMTQgMTRsLTIuNzUgMS4yNXptNS42OS0zLjMxTDE2IDE0bC0uOTQtMi4wNkwxMyAxMWwyLjA2LS45NEwxNiA4bC45NCAyLjA2TDE5IDExbC0yLjA2Ljk0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im11c2ljLW5vdGUiPjxwYXRoIGQ9Ik0xMiAzdjEwLjU1Yy0uNTktLjM0LTEuMjctLjU1LTItLjU1LTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNFY3aDRWM2gtNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJuYXR1cmUiPjxwYXRoIGQ9Ik0xMyAxNi4xMmMzLjQ3LS40MSA2LjE3LTMuMzYgNi4xNy02Ljk1IDAtMy44Ny0zLjEzLTctNy03cy03IDMuMTMtNyA3YzAgMy40NyAyLjUyIDYuMzQgNS44MyA2Ljg5VjIwSDV2MmgxNHYtMmgtNnYtMy44OHoiPjwvcGF0aD48L2c+CjxnIGlkPSJuYXR1cmUtcGVvcGxlIj48cGF0aCBkPSJNMjIuMTcgOS4xN2MwLTMuODctMy4xMy03LTctN3MtNyAzLjEzLTcgN2MwIDMuNDcgMi41MiA2LjM0IDUuODMgNi44OVYyMEg2di0zaDF2LTRjMC0uNTUtLjQ1LTEtMS0xSDNjLS41NSAwLTEgLjQ1LTEgMXY0aDF2NWgxNnYtMmgtM3YtMy44OGMzLjQ3LS40MSA2LjE3LTMuMzYgNi4xNy02Ljk1ek00LjUgMTFjLjgzIDAgMS41LS42NyAxLjUtMS41UzUuMzMgOCA0LjUgOCAzIDguNjcgMyA5LjUgMy42NyAxMSA0LjUgMTF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibmF2aWdhdGUtYmVmb3JlIj48cGF0aCBkPSJNMTUuNDEgNy40MUwxNCA2bC02IDYgNiA2IDEuNDEtMS40MUwxMC44MyAxMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJuYXZpZ2F0ZS1uZXh0Ij48cGF0aCBkPSJNMTAgNkw4LjU5IDcuNDEgMTMuMTcgMTJsLTQuNTggNC41OUwxMCAxOGw2LTZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGFsZXR0ZSI+PHBhdGggZD0iTTEyIDNjLTQuOTcgMC05IDQuMDMtOSA5czQuMDMgOSA5IDljLjgzIDAgMS41LS42NyAxLjUtMS41IDAtLjM5LS4xNS0uNzQtLjM5LTEuMDEtLjIzLS4yNi0uMzgtLjYxLS4zOC0uOTkgMC0uODMuNjctMS41IDEuNS0xLjVIMTZjMi43NiAwIDUtMi4yNCA1LTUgMC00LjQyLTQuMDMtOC05LTh6bS01LjUgOWMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzUuNjcgOSA2LjUgOSA4IDkuNjcgOCAxMC41IDcuMzMgMTIgNi41IDEyem0zLTRDOC42NyA4IDggNy4zMyA4IDYuNVM4LjY3IDUgOS41IDVzMS41LjY3IDEuNSAxLjVTMTAuMzMgOCA5LjUgOHptNSAwYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTMuNjcgNSAxNC41IDVzMS41LjY3IDEuNSAxLjVTMTUuMzMgOCAxNC41IDh6bTMgNGMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzE2LjY3IDkgMTcuNSA5czEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJwYW5vcmFtYSI+PHBhdGggZD0iTTIzIDE4VjZjMC0xLjEtLjktMi0yLTJIM2MtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMnpNOC41IDEyLjVsMi41IDMuMDFMMTQuNSAxMWw0LjUgNkg1bDMuNS00LjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGFub3JhbWEtZmlzaC1leWUiPjxwYXRoIGQ9Ik0xMiAyQzYuNDcgMiAyIDYuNDcgMiAxMnM0LjQ3IDEwIDEwIDEwIDEwLTQuNDcgMTAtMTBTMTcuNTMgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJwYW5vcmFtYS1ob3Jpem9udGFsIj48cGF0aCBkPSJNMjAgNi41NHYxMC45MWMtMi42LS43Ny01LjI4LTEuMTYtOC0xLjE2LTIuNzIgMC01LjQuMzktOCAxLjE2VjYuNTRjMi42Ljc3IDUuMjggMS4xNiA4IDEuMTYgMi43Mi4wMSA1LjQtLjM4IDgtMS4xNk0yMS40MyA0Yy0uMSAwLS4yLjAyLS4zMS4wNkMxOC4xOCA1LjE2IDE1LjA5IDUuNyAxMiA1LjdjLTMuMDkgMC02LjE4LS41NS05LjEyLTEuNjQtLjExLS4wNC0uMjItLjA2LS4zMS0uMDYtLjM0IDAtLjU3LjIzLS41Ny42M3YxNC43NWMwIC4zOS4yMy42Mi41Ny42Mi4xIDAgLjItLjAyLjMxLS4wNiAyLjk0LTEuMSA2LjAzLTEuNjQgOS4xMi0xLjY0IDMuMDkgMCA2LjE4LjU1IDkuMTIgMS42NC4xMS4wNC4yMS4wNi4zMS4wNi4zMyAwIC41Ny0uMjMuNTctLjYzVjQuNjNjMC0uNC0uMjQtLjYzLS41Ny0uNjN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGFub3JhbWEtdmVydGljYWwiPjxwYXRoIGQ9Ik0xOS45NCAyMS4xMmMtMS4xLTIuOTQtMS42NC02LjAzLTEuNjQtOS4xMiAwLTMuMDkuNTUtNi4xOCAxLjY0LTkuMTIuMDQtLjExLjA2LS4yMi4wNi0uMzEgMC0uMzQtLjIzLS41Ny0uNjMtLjU3SDQuNjNjLS40IDAtLjYzLjIzLS42My41NyAwIC4xLjAyLjIuMDYuMzFDNS4xNiA1LjgyIDUuNzEgOC45MSA1LjcxIDEyYzAgMy4wOS0uNTUgNi4xOC0xLjY0IDkuMTItLjA1LjExLS4wNy4yMi0uMDcuMzEgMCAuMzMuMjMuNTcuNjMuNTdoMTQuNzVjLjM5IDAgLjYzLS4yNC42My0uNTctLjAxLS4xLS4wMy0uMi0uMDctLjMxek02LjU0IDIwYy43Ny0yLjYgMS4xNi01LjI4IDEuMTYtOCAwLTIuNzItLjM5LTUuNC0xLjE2LThoMTAuOTFjLS43NyAyLjYtMS4xNiA1LjI4LTEuMTYgOCAwIDIuNzIuMzkgNS40IDEuMTYgOEg2LjU0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBhbm9yYW1hLXdpZGUtYW5nbGUiPjxwYXRoIGQ9Ik0xMiA2YzIuNDUgMCA0LjcxLjIgNy4yOS42NC40NyAxLjc4LjcxIDMuNTguNzEgNS4zNiAwIDEuNzgtLjI0IDMuNTgtLjcxIDUuMzYtMi41OC40NC00Ljg0LjY0LTcuMjkuNjRzLTQuNzEtLjItNy4yOS0uNjRDNC4yNCAxNS41OCA0IDEzLjc4IDQgMTJjMC0xLjc4LjI0LTMuNTguNzEtNS4zNkM3LjI5IDYuMiA5LjU1IDYgMTIgNm0wLTJjLTIuNzMgMC01LjIyLjI0LTcuOTUuNzJsLS45My4xNi0uMjUuOUMyLjI5IDcuODUgMiA5LjkzIDIgMTJzLjI5IDQuMTUuODcgNi4yMmwuMjUuODkuOTMuMTZjMi43My40OSA1LjIyLjczIDcuOTUuNzNzNS4yMi0uMjQgNy45NS0uNzJsLjkzLS4xNi4yNS0uODljLjU4LTIuMDguODctNC4xNi44Ny02LjIzcy0uMjktNC4xNS0uODctNi4yMmwtLjI1LS44OS0uOTMtLjE2QzE3LjIyIDQuMjQgMTQuNzMgNCAxMiA0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBob3RvIj48cGF0aCBkPSJNMjEgMTlWNWMwLTEuMS0uOS0yLTItMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yek04LjUgMTMuNWwyLjUgMy4wMUwxNC41IDEybDQuNSA2SDVsMy41LTQuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJwaG90by1hbGJ1bSI+PHBhdGggZD0iTTE4IDJINmMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek02IDRoNXY4bC0yLjUtMS41TDYgMTJWNHptMCAxNWwzLTMuODYgMi4xNCAyLjU4IDMtMy44NkwxOCAxOUg2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBob3RvLWNhbWVyYSI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMy4yIj48L2NpcmNsZT48cGF0aCBkPSJNOSAyTDcuMTcgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJoLTMuMTdMMTUgMkg5em0zIDE1Yy0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01IDUgMi4yNCA1IDUtMi4yNCA1LTUgNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJwaG90by1maWx0ZXIiPjxwYXRoIGQ9Ik0xOS4wMiAxMHY5SDVWNWg5VjNINS4wMmMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtOWgtMnpNMTcgMTBsLjk0LTIuMDZMMjAgN2wtMi4wNi0uOTRMMTcgNGwtLjk0IDIuMDZMMTQgN2wyLjA2Ljk0em0tMy43NS43NUwxMiA4bC0xLjI1IDIuNzVMOCAxMmwyLjc1IDEuMjVMMTIgMTZsMS4yNS0yLjc1TDE2IDEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBob3RvLWxpYnJhcnkiPjxwYXRoIGQ9Ik0yMiAxNlY0YzAtMS4xLS45LTItMi0ySDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJ6bS0xMS00bDIuMDMgMi43MUwxNiAxMWw0IDVIOGwzLTR6TTIgNnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNkgyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBob3RvLXNpemUtc2VsZWN0LWFjdHVhbCI+PHBhdGggZD0iTTIxIDNIM0MyIDMgMSA0IDEgNXYxNGMwIDEuMS45IDIgMiAyaDE4YzEgMCAyLTEgMi0yVjVjMC0xLTEtMi0yLTJ6TTUgMTdsMy41LTQuNSAyLjUgMy4wMUwxNC41IDExbDQuNSA2SDV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGhvdG8tc2l6ZS1zZWxlY3QtbGFyZ2UiPjxwYXRoIGQ9Ik0yMSAxNWgydjJoLTJ2LTJ6bTAtNGgydjJoLTJ2LTJ6bTIgOGgtMnYyYzEgMCAyLTEgMi0yek0xMyAzaDJ2MmgtMlYzem04IDRoMnYyaC0yVjd6bTAtNHYyaDJjMC0xLTEtMi0yLTJ6TTEgN2gydjJIMVY3em0xNi00aDJ2MmgtMlYzem0wIDE2aDJ2MmgtMnYtMnpNMyAzQzIgMyAxIDQgMSA1aDJWM3ptNiAwaDJ2Mkg5VjN6TTUgM2gydjJINVYzem0tNCA4djhjMCAxLjEuOSAyIDIgMmgxMlYxMUgxem0yIDhsMi41LTMuMjEgMS43OSAyLjE1IDIuNS0zLjIyTDEzIDE5SDN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGhvdG8tc2l6ZS1zZWxlY3Qtc21hbGwiPjxwYXRoIGQ9Ik0yMyAxNWgtMnYyaDJ2LTJ6bTAtNGgtMnYyaDJ2LTJ6bTAgOGgtMnYyYzEgMCAyLTEgMi0yek0xNSAzaC0ydjJoMlYzem04IDRoLTJ2MmgyVjd6bS0yLTR2MmgyYzAtMS0xLTItMi0yek0zIDIxaDh2LTZIMXY0YzAgMS4xLjkgMiAyIDJ6TTMgN0gxdjJoMlY3em0xMiAxMmgtMnYyaDJ2LTJ6bTQtMTZoLTJ2MmgyVjN6bTAgMTZoLTJ2Mmgydi0yek0zIDNDMiAzIDEgNCAxIDVoMlYzem0wIDhIMXYyaDJ2LTJ6bTgtOEg5djJoMlYzek03IDNINXYyaDJWM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJwaWN0dXJlLWFzLXBkZiI+PHBhdGggZD0iTTIwIDJIOGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tOC41IDcuNWMwIC44My0uNjcgMS41LTEuNSAxLjVIOXYySDcuNVY3SDEwYy44MyAwIDEuNS42NyAxLjUgMS41djF6bTUgMmMwIC44My0uNjcgMS41LTEuNSAxLjVoLTIuNVY3SDE1Yy44MyAwIDEuNS42NyAxLjUgMS41djN6bTQtM0gxOXYxaDEuNVYxMUgxOXYyaC0xLjVWN2gzdjEuNXpNOSA5LjVoMXYtMUg5djF6TTQgNkgydjE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2em0xMCA1LjVoMXYtM2gtMXYzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBvcnRyYWl0Ij48cGF0aCBkPSJNMTIgMTIuMjVjMS4yNCAwIDIuMjUtMS4wMSAyLjI1LTIuMjVTMTMuMjQgNy43NSAxMiA3Ljc1IDkuNzUgOC43NiA5Ljc1IDEwczEuMDEgMi4yNSAyLjI1IDIuMjV6bTQuNSA0YzAtMS41LTMtMi4yNS00LjUtMi4yNXMtNC41Ljc1LTQuNSAyLjI1VjE3aDl2LS43NXpNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJlbW92ZS1yZWQtZXllIj48cGF0aCBkPSJNMTIgNC41QzcgNC41IDIuNzMgNy42MSAxIDEyYzEuNzMgNC4zOSA2IDcuNSAxMSA3LjVzOS4yNy0zLjExIDExLTcuNWMtMS43My00LjM5LTYtNy41LTExLTcuNXpNMTIgMTdjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1em0wLThjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJvdGF0ZS05MC1kZWdyZWVzLWNjdyI+PHBhdGggZD0iTTcuMzQgNi40MUwuODYgMTIuOWw2LjQ5IDYuNDggNi40OS02LjQ4LTYuNS02LjQ5ek0zLjY5IDEyLjlsMy42Ni0zLjY2TDExIDEyLjlsLTMuNjYgMy42Ni0zLjY1LTMuNjZ6bTE1LjY3LTYuMjZDMTcuNjEgNC44OCAxNS4zIDQgMTMgNFYuNzZMOC43NiA1IDEzIDkuMjRWNmMxLjc5IDAgMy41OC42OCA0Ljk1IDIuMDUgMi43MyAyLjczIDIuNzMgNy4xNyAwIDkuOUMxNi41OCAxOS4zMiAxNC43OSAyMCAxMyAyMGMtLjk3IDAtMS45NC0uMjEtMi44NC0uNjFsLTEuNDkgMS40OUMxMC4wMiAyMS42MiAxMS41MSAyMiAxMyAyMmMyLjMgMCA0LjYxLS44OCA2LjM2LTIuNjQgMy41Mi0zLjUxIDMuNTItOS4yMSAwLTEyLjcyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJvdGF0ZS1sZWZ0Ij48cGF0aCBkPSJNNy4xMSA4LjUzTDUuNyA3LjExQzQuOCA4LjI3IDQuMjQgOS42MSA0LjA3IDExaDIuMDJjLjE0LS44Ny40OS0xLjcyIDEuMDItMi40N3pNNi4wOSAxM0g0LjA3Yy4xNyAxLjM5LjcyIDIuNzMgMS42MiAzLjg5bDEuNDEtMS40MmMtLjUyLS43NS0uODctMS41OS0xLjAxLTIuNDd6bTEuMDEgNS4zMmMxLjE2LjkgMi41MSAxLjQ0IDMuOSAxLjYxVjE3LjljLS44Ny0uMTUtMS43MS0uNDktMi40Ni0xLjAzTDcuMSAxOC4zMnpNMTMgNC4wN1YxTDguNDUgNS41NSAxMyAxMFY2LjA5YzIuODQuNDggNSAyLjk0IDUgNS45MXMtMi4xNiA1LjQzLTUgNS45MXYyLjAyYzMuOTUtLjQ5IDctMy44NSA3LTcuOTNzLTMuMDUtNy40NC03LTcuOTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icm90YXRlLXJpZ2h0Ij48cGF0aCBkPSJNMTUuNTUgNS41NUwxMSAxdjMuMDdDNy4wNiA0LjU2IDQgNy45MiA0IDEyczMuMDUgNy40NCA3IDcuOTN2LTIuMDJjLTIuODQtLjQ4LTUtMi45NC01LTUuOTFzMi4xNi01LjQzIDUtNS45MVYxMGw0LjU1LTQuNDV6TTE5LjkzIDExYy0uMTctMS4zOS0uNzItMi43My0xLjYyLTMuODlsLTEuNDIgMS40MmMuNTQuNzUuODggMS42IDEuMDIgMi40N2gyLjAyek0xMyAxNy45djIuMDJjMS4zOS0uMTcgMi43NC0uNzEgMy45LTEuNjFsLTEuNDQtMS40NGMtLjc1LjU0LTEuNTkuODktMi40NiAxLjAzem0zLjg5LTIuNDJsMS40MiAxLjQxYy45LTEuMTYgMS40NS0yLjUgMS42Mi0zLjg5aC0yLjAyYy0uMTQuODctLjQ4IDEuNzItMS4wMiAyLjQ4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNsaWRlc2hvdyI+PHBhdGggZD0iTTEwIDh2OGw1LTQtNS00em05LTVINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJzdHJhaWdodGVuIj48cGF0aCBkPSJNMjEgNkgzYy0xLjEgMC0yIC45LTIgMnY4YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptMCAxMEgzVjhoMnY0aDJWOGgydjRoMlY4aDJ2NGgyVjhoMnY0aDJWOGgydjh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3R5bGUiPjxwYXRoIGQ9Ik0yLjUzIDE5LjY1bDEuMzQuNTZ2LTkuMDNsLTIuNDMgNS44NmMtLjQxIDEuMDIuMDggMi4xOSAxLjA5IDIuNjF6bTE5LjUtMy43TDE3LjA3IDMuOThjLS4zMS0uNzUtMS4wNC0xLjIxLTEuODEtMS4yMy0uMjYgMC0uNTMuMDQtLjc5LjE1TDcuMSA1Ljk1Yy0uNzUuMzEtMS4yMSAxLjAzLTEuMjMgMS44LS4wMS4yNy4wNC41NC4xNS44bDQuOTYgMTEuOTdjLjMxLjc2IDEuMDUgMS4yMiAxLjgzIDEuMjMuMjYgMCAuNTItLjA1Ljc3LS4xNWw3LjM2LTMuMDVjMS4wMi0uNDIgMS41MS0xLjU5IDEuMDktMi42ek03Ljg4IDguNzVjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptLTIgMTFjMCAxLjEuOSAyIDIgMmgxLjQ1bC0zLjQ1LTguMzR2Ni4zNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJzd2l0Y2gtY2FtZXJhIj48cGF0aCBkPSJNMjAgNGgtMy4xN0wxNSAySDlMNy4xNyA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptLTUgMTEuNVYxM0g5djIuNUw1LjUgMTIgOSA4LjVWMTFoNlY4LjVsMy41IDMuNS0zLjUgMy41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InN3aXRjaC12aWRlbyI+PHBhdGggZD0iTTE4IDkuNVY2YzAtLjU1LS40NS0xLTEtMUgzYy0uNTUgMC0xIC40NS0xIDF2MTJjMCAuNTUuNDUgMSAxIDFoMTRjLjU1IDAgMS0uNDUgMS0xdi0zLjVsNCA0di0xM2wtNCA0em0tNSA2VjEzSDd2Mi41TDMuNSAxMiA3IDguNVYxMWg2VjguNWwzLjUgMy41LTMuNSAzLjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idGFnLWZhY2VzIj48cGF0aCBkPSJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnpNMTIgMjBjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4em0zLjUtOWMuODMgMCAxLjUtLjY3IDEuNS0xLjVTMTYuMzMgOCAxNS41IDggMTQgOC42NyAxNCA5LjVzLjY3IDEuNSAxLjUgMS41em0tNyAwYy44MyAwIDEuNS0uNjcgMS41LTEuNVM5LjMzIDggOC41IDggNyA4LjY3IDcgOS41IDcuNjcgMTEgOC41IDExem0zLjUgNi41YzIuMzMgMCA0LjMxLTEuNDYgNS4xMS0zLjVINi44OWMuOCAyLjA0IDIuNzggMy41IDUuMTEgMy41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRleHR1cmUiPjxwYXRoIGQ9Ik0xOS41MSAzLjA4TDMuMDggMTkuNTFjLjA5LjM0LjI3LjY1LjUxLjkuMjUuMjQuNTYuNDIuOS41MUwyMC45MyA0LjQ5Yy0uMTktLjY5LS43My0xLjIzLTEuNDItMS40MXpNMTEuODggM0wzIDExLjg4djIuODNMMTQuNzEgM2gtMi44M3pNNSAzYy0xLjEgMC0yIC45LTIgMnYybDQtNEg1em0xNCAxOGMuNTUgMCAxLjA1LS4yMiAxLjQxLS41OS4zNy0uMzYuNTktLjg2LjU5LTEuNDF2LTJsLTQgNGgyem0tOS43MSAwaDIuODNMMjEgMTIuMTJWOS4yOUw5LjI5IDIxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRpbWVsYXBzZSI+PHBhdGggZD0iTTE2LjI0IDcuNzZDMTUuMDcgNi41OSAxMy41NCA2IDEyIDZ2NmwtNC4yNCA0LjI0YzIuMzQgMi4zNCA2LjE0IDIuMzQgOC40OSAwIDIuMzQtMi4zNCAyLjM0LTYuMTQtLjAxLTguNDh6TTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRpbWVyIj48cGF0aCBkPSJNMTUgMUg5djJoNlYxem0tNCAxM2gyVjhoLTJ2NnptOC4wMy02LjYxbDEuNDItMS40MmMtLjQzLS41MS0uOS0uOTktMS40MS0xLjQxbC0xLjQyIDEuNDJDMTYuMDcgNC43NCAxNC4xMiA0IDEyIDRjLTQuOTcgMC05IDQuMDMtOSA5czQuMDIgOSA5IDkgOS00LjAzIDktOWMwLTIuMTItLjc0LTQuMDctMS45Ny01LjYxek0xMiAyMGMtMy44NyAwLTctMy4xMy03LTdzMy4xMy03IDctNyA3IDMuMTMgNyA3LTMuMTMgNy03IDd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idGltZXItMTAiPjxwYXRoIGQ9Ik0wIDcuNzJWOS40bDMtMVYxOGgyVjZoLS4yNUwwIDcuNzJ6bTIzLjc4IDYuNjVjLS4xNC0uMjgtLjM1LS41My0uNjMtLjc0LS4yOC0uMjEtLjYxLS4zOS0xLjAxLS41M3MtLjg1LS4yNy0xLjM1LS4zOGMtLjM1LS4wNy0uNjQtLjE1LS44Ny0uMjMtLjIzLS4wOC0uNDEtLjE2LS41NS0uMjUtLjE0LS4wOS0uMjMtLjE5LS4yOC0uMy0uMDUtLjExLS4wOC0uMjQtLjA4LS4zOSAwLS4xNC4wMy0uMjguMDktLjQxLjA2LS4xMy4xNS0uMjUuMjctLjM0LjEyLS4xLjI3LS4xOC40NS0uMjRzLjQtLjA5LjY0LS4wOWMuMjUgMCAuNDcuMDQuNjYuMTEuMTkuMDcuMzUuMTcuNDguMjkuMTMuMTIuMjIuMjYuMjkuNDIuMDYuMTYuMS4zMi4xLjQ5aDEuOTVjMC0uMzktLjA4LS43NS0uMjQtMS4wOS0uMTYtLjM0LS4zOS0uNjMtLjY5LS44OC0uMy0uMjUtLjY2LS40NC0xLjA5LS41OUMyMS40OSA5LjA3IDIxIDkgMjAuNDYgOWMtLjUxIDAtLjk4LjA3LTEuMzkuMjEtLjQxLjE0LS43Ny4zMy0xLjA2LjU3LS4yOS4yNC0uNTEuNTItLjY3Ljg0LS4xNi4zMi0uMjMuNjUtLjIzIDEuMDFzLjA4LjY5LjIzLjk2Yy4xNS4yOC4zNi41Mi42NC43My4yNy4yMS42LjM4Ljk4LjUzLjM4LjE0LjgxLjI2IDEuMjcuMzYuMzkuMDguNzEuMTcuOTUuMjZzLjQzLjE5LjU3LjI5Yy4xMy4xLjIyLjIyLjI3LjM0LjA1LjEyLjA3LjI1LjA3LjM5IDAgLjMyLS4xMy41Ny0uNC43Ny0uMjcuMi0uNjYuMjktMS4xNy4yOS0uMjIgMC0uNDMtLjAyLS42NC0uMDgtLjIxLS4wNS0uNC0uMTMtLjU2LS4yNC0uMTctLjExLS4zLS4yNi0uNDEtLjQ0LS4xMS0uMTgtLjE3LS40MS0uMTgtLjY3aC0xLjg5YzAgLjM2LjA4LjcxLjI0IDEuMDUuMTYuMzQuMzkuNjUuNy45My4zMS4yNy42OS40OSAxLjE1LjY2LjQ2LjE3Ljk4LjI1IDEuNTguMjUuNTMgMCAxLjAxLS4wNiAxLjQ0LS4xOS40My0uMTMuOC0uMzEgMS4xMS0uNTQuMzEtLjIzLjU0LS41MS43MS0uODMuMTctLjMyLjI1LS42Ny4yNS0xLjA2LS4wMi0uNC0uMDktLjc0LS4yNC0xLjAyem0tOS45Ni03LjMyYy0uMzQtLjQtLjc1LS43LTEuMjMtLjg4LS40Ny0uMTgtMS4wMS0uMjctMS41OS0uMjctLjU4IDAtMS4xMS4wOS0xLjU5LjI3LS40OC4xOC0uODkuNDctMS4yMy44OC0uMzQuNDEtLjYuOTMtLjc5IDEuNTktLjE4LjY1LS4yOCAxLjQ1LS4yOCAyLjM5djEuOTJjMCAuOTQuMDkgMS43NC4yOCAyLjM5LjE5LjY2LjQ1IDEuMTkuOCAxLjYuMzQuNDEuNzUuNzEgMS4yMy44OS40OC4xOCAxLjAxLjI4IDEuNTkuMjguNTkgMCAxLjEyLS4wOSAxLjU5LS4yOC40OC0uMTguODgtLjQ4IDEuMjItLjg5LjM0LS40MS42LS45NC43OC0xLjYuMTgtLjY1LjI4LTEuNDUuMjgtMi4zOXYtMS45MmMwLS45NC0uMDktMS43NC0uMjgtMi4zOS0uMTgtLjY2LS40NC0xLjE5LS43OC0xLjU5em0tLjkyIDYuMTdjMCAuNi0uMDQgMS4xMS0uMTIgMS41My0uMDguNDItLjIuNzYtLjM2IDEuMDItLjE2LjI2LS4zNi40NS0uNTkuNTctLjIzLjEyLS41MS4xOC0uODIuMTgtLjMgMC0uNTgtLjA2LS44Mi0uMThzLS40NC0uMzEtLjYtLjU3Yy0uMTYtLjI2LS4yOS0uNi0uMzgtMS4wMi0uMDktLjQyLS4xMy0uOTMtLjEzLTEuNTN2LTIuNWMwLS42LjA0LTEuMTEuMTMtMS41Mi4wOS0uNDEuMjEtLjc0LjM4LTEgLjE2LS4yNS4zNi0uNDMuNi0uNTUuMjQtLjExLjUxLS4xNy44MS0uMTcuMzEgMCAuNTguMDYuODEuMTcuMjQuMTEuNDQuMjkuNi41NS4xNi4yNS4yOS41OC4zNy45OS4wOC40MS4xMy45Mi4xMyAxLjUydjIuNTF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idGltZXItMyI+PHBhdGggZD0iTTExLjYxIDEyLjk3Yy0uMTYtLjI0LS4zNi0uNDYtLjYyLS42NS0uMjUtLjE5LS41Ni0uMzUtLjkzLS40OC4zLS4xNC41Ny0uMy44LS41LjIzLS4yLjQyLS40MS41Ny0uNjQuMTUtLjIzLjI3LS40Ni4zNC0uNzEuMDgtLjI0LjExLS40OS4xMS0uNzMgMC0uNTUtLjA5LTEuMDQtLjI4LTEuNDYtLjE4LS40Mi0uNDQtLjc3LS43OC0xLjA2LS4zMy0uMjgtLjczLS41LTEuMi0uNjQtLjQ1LS4xMy0uOTctLjItMS41My0uMi0uNTUgMC0xLjA2LjA4LTEuNTIuMjQtLjQ3LjE3LS44Ny40LTEuMi42OS0uMzMuMjktLjYuNjMtLjc4IDEuMDMtLjIuMzktLjI5LjgzLS4yOSAxLjI5aDEuOThjMC0uMjYuMDUtLjQ5LjE0LS42OS4wOS0uMi4yMi0uMzguMzgtLjUyLjE3LS4xNC4zNi0uMjUuNTgtLjMzLjIyLS4wOC40Ni0uMTIuNzMtLjEyLjYxIDAgMS4wNi4xNiAxLjM2LjQ3LjMuMzEuNDQuNzUuNDQgMS4zMiAwIC4yNy0uMDQuNTItLjEyLjc0LS4wOC4yMi0uMjEuNDEtLjM4LjU3LS4xNy4xNi0uMzguMjgtLjYzLjM3LS4yNS4wOS0uNTUuMTMtLjg5LjEzSDYuNzJ2MS41N0g3LjljLjM0IDAgLjY0LjA0LjkxLjExLjI3LjA4LjUuMTkuNjkuMzUuMTkuMTYuMzQuMzYuNDQuNjEuMS4yNC4xNi41NC4xNi44NyAwIC42Mi0uMTggMS4wOS0uNTMgMS40Mi0uMzUuMzMtLjg0LjQ5LTEuNDUuNDktLjI5IDAtLjU2LS4wNC0uOC0uMTMtLjI0LS4wOC0uNDQtLjItLjYxLS4zNi0uMTctLjE2LS4zLS4zNC0uMzktLjU2LS4wOS0uMjItLjE0LS40Ni0uMTQtLjcySDQuMTljMCAuNTUuMTEgMS4wMy4zMiAxLjQ1LjIxLjQyLjUuNzcuODYgMS4wNXMuNzcuNDkgMS4yNC42My45Ni4yMSAxLjQ4LjIxYy41NyAwIDEuMDktLjA4IDEuNTgtLjIzLjQ5LS4xNS45MS0uMzggMS4yNi0uNjguMzYtLjMuNjQtLjY2Ljg0LTEuMS4yLS40My4zLS45My4zLTEuNDggMC0uMjktLjA0LS41OC0uMTEtLjg2LS4wOC0uMjUtLjE5LS41MS0uMzUtLjc2em05LjI2IDEuNGMtLjE0LS4yOC0uMzUtLjUzLS42My0uNzQtLjI4LS4yMS0uNjEtLjM5LTEuMDEtLjUzcy0uODUtLjI3LTEuMzUtLjM4Yy0uMzUtLjA3LS42NC0uMTUtLjg3LS4yMy0uMjMtLjA4LS40MS0uMTYtLjU1LS4yNS0uMTQtLjA5LS4yMy0uMTktLjI4LS4zLS4wNS0uMTEtLjA4LS4yNC0uMDgtLjM5cy4wMy0uMjguMDktLjQxYy4wNi0uMTMuMTUtLjI1LjI3LS4zNC4xMi0uMS4yNy0uMTguNDUtLjI0cy40LS4wOS42NC0uMDljLjI1IDAgLjQ3LjA0LjY2LjExLjE5LjA3LjM1LjE3LjQ4LjI5LjEzLjEyLjIyLjI2LjI5LjQyLjA2LjE2LjEuMzIuMS40OWgxLjk1YzAtLjM5LS4wOC0uNzUtLjI0LTEuMDktLjE2LS4zNC0uMzktLjYzLS42OS0uODgtLjMtLjI1LS42Ni0uNDQtMS4wOS0uNTktLjQzLS4xNS0uOTItLjIyLTEuNDYtLjIyLS41MSAwLS45OC4wNy0xLjM5LjIxLS40MS4xNC0uNzcuMzMtMS4wNi41Ny0uMjkuMjQtLjUxLjUyLS42Ny44NC0uMTYuMzItLjIzLjY1LS4yMyAxLjAxcy4wOC42OC4yMy45NmMuMTUuMjguMzcuNTIuNjQuNzMuMjcuMjEuNi4zOC45OC41My4zOC4xNC44MS4yNiAxLjI3LjM2LjM5LjA4LjcxLjE3Ljk1LjI2cy40My4xOS41Ny4yOWMuMTMuMS4yMi4yMi4yNy4zNC4wNS4xMi4wNy4yNS4wNy4zOSAwIC4zMi0uMTMuNTctLjQuNzctLjI3LjItLjY2LjI5LTEuMTcuMjktLjIyIDAtLjQzLS4wMi0uNjQtLjA4LS4yMS0uMDUtLjQtLjEzLS41Ni0uMjQtLjE3LS4xMS0uMy0uMjYtLjQxLS40NC0uMTEtLjE4LS4xNy0uNDEtLjE4LS42N2gtMS44OWMwIC4zNi4wOC43MS4yNCAxLjA1LjE2LjM0LjM5LjY1LjcuOTMuMzEuMjcuNjkuNDkgMS4xNS42Ni40Ni4xNy45OC4yNSAxLjU4LjI1LjUzIDAgMS4wMS0uMDYgMS40NC0uMTkuNDMtLjEzLjgtLjMxIDEuMTEtLjU0LjMxLS4yMy41NC0uNTEuNzEtLjgzLjE3LS4zMi4yNS0uNjcuMjUtMS4wNi0uMDItLjQtLjA5LS43NC0uMjQtMS4wMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0aW1lci1vZmYiPjxwYXRoIGQ9Ik0xOS4wNCA0LjU1bC0xLjQyIDEuNDJDMTYuMDcgNC43NCAxNC4xMiA0IDEyIDRjLTEuODMgMC0zLjUzLjU1LTQuOTUgMS40OGwxLjQ2IDEuNDZDOS41MyA2LjM1IDEwLjczIDYgMTIgNmMzLjg3IDAgNyAzLjEzIDcgNyAwIDEuMjctLjM1IDIuNDctLjk0IDMuNDlsMS40NSAxLjQ1QzIwLjQ1IDE2LjUzIDIxIDE0LjgzIDIxIDEzYzAtMi4xMi0uNzQtNC4wNy0xLjk3LTUuNjFsMS40Mi0xLjQyLTEuNDEtMS40MnpNMTUgMUg5djJoNlYxem0tNCA4LjQ0bDIgMlY4aC0ydjEuNDR6TTMuMDIgNEwxLjc1IDUuMjcgNC41IDguMDNDMy41NSA5LjQ1IDMgMTEuMTYgMyAxM2MwIDQuOTcgNC4wMiA5IDkgOSAxLjg0IDAgMy41NS0uNTUgNC45OC0xLjVsMi41IDIuNSAxLjI3LTEuMjctNy43MS03LjcxTDMuMDIgNHpNMTIgMjBjLTMuODcgMC03LTMuMTMtNy03IDAtMS4yOC4zNS0yLjQ4Ljk1LTMuNTJsOS41NiA5LjU2Yy0xLjAzLjYxLTIuMjMuOTYtMy41MS45NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0b25hbGl0eSI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bS0xIDE3LjkzYy0zLjk0LS40OS03LTMuODUtNy03LjkzczMuMDUtNy40NCA3LTcuOTN2MTUuODZ6bTItMTUuODZjMS4wMy4xMyAyIC40NSAyLjg3LjkzSDEzdi0uOTN6TTEzIDdoNS4yNGMuMjUuMzEuNDguNjUuNjggMUgxM1Y3em0wIDNoNi43NGMuMDguMzMuMTUuNjYuMTkgMUgxM3YtMXptMCA5LjkzVjE5aDIuODdjLS44Ny40OC0xLjg0LjgtMi44Ny45M3pNMTguMjQgMTdIMTN2LTFoNS45MmMtLjIuMzUtLjQzLjY5LS42OCAxem0xLjUtM0gxM3YtMWg2LjkzYy0uMDQuMzQtLjExLjY3LS4xOSAxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRyYW5zZm9ybSI+PHBhdGggZD0iTTIyIDE4di0ySDhWNGgyTDcgMSA0IDRoMnYySDJ2Mmg0djhjMCAxLjEuOSAyIDIgMmg4djJoLTJsMyAzIDMtM2gtMnYtMmg0ek0xMCA4aDZ2NmgyVjhjMC0xLjEtLjktMi0yLTJoLTZ2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0dW5lIj48cGF0aCBkPSJNMyAxN3YyaDZ2LTJIM3pNMyA1djJoMTBWNUgzem0xMCAxNnYtMmg4di0yaC04di0yaC0ydjZoMnpNNyA5djJIM3YyaDR2MmgyVjlIN3ptMTQgNHYtMkgxMXYyaDEwem0tNi00aDJWN2g0VjVoLTRWM2gtMnY2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InZpZXctY29tZnkiPjxwYXRoIGQ9Ik0zIDloNFY1SDN2NHptMCA1aDR2LTRIM3Y0em01IDBoNHYtNEg4djR6bTUgMGg0di00aC00djR6TTggOWg0VjVIOHY0em01LTR2NGg0VjVoLTR6bTUgOWg0di00aC00djR6TTMgMTloNHYtNEgzdjR6bTUgMGg0di00SDh2NHptNSAwaDR2LTRoLTR2NHptNSAwaDR2LTRoLTR2NHptMC0xNHY0aDRWNWgtNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWV3LWNvbXBhY3QiPjxwYXRoIGQ9Ik0zIDE5aDZ2LTdIM3Y3em03IDBoMTJ2LTdIMTB2N3pNMyA1djZoMTlWNUgzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InZpZ25ldHRlIj48cGF0aCBkPSJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS05IDE1Yy00LjQyIDAtOC0yLjY5LTgtNnMzLjU4LTYgOC02IDggMi42OSA4IDYtMy41OCA2LTggNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ3Yi1hdXRvIj48cGF0aCBkPSJNNi44NSAxMi42NWgyLjNMOCA5bC0xLjE1IDMuNjV6TTIyIDdsLTEuMiA2LjI5TDE5LjMgN2gtMS42bC0xLjQ5IDYuMjlMMTUgN2gtLjc2QzEyLjc3IDUuMTcgMTAuNTMgNCA4IDRjLTQuNDIgMC04IDMuNTgtOCA4czMuNTggOCA4IDhjMy4xMyAwIDUuODQtMS44MSA3LjE1LTQuNDNsLjEuNDNIMTdsMS41LTYuMUwyMCAxNmgxLjc1bDIuMDUtOUgyMnptLTExLjcgOWwtLjctMkg2LjRsLS43IDJIMy44TDcgN2gybDMuMiA5aC0xLjl6Ij48L3BhdGg+PC9nPgo8ZyBpZD0id2ItY2xvdWR5Ij48cGF0aCBkPSJNMTkuMzYgMTAuMDRDMTguNjcgNi41OSAxNS42NCA0IDEyIDQgOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNCAyLjM0IDguMzYgMCAxMC45MSAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NC00Ljk2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9IndiLWluY2FuZGVzY2VudCI+PHBhdGggZD0iTTMuNTUgMTguNTRsMS40MSAxLjQxIDEuNzktMS44LTEuNDEtMS40MS0xLjc5IDEuOHpNMTEgMjIuNDVoMlYxOS41aC0ydjIuOTV6TTQgMTAuNUgxdjJoM3YtMnptMTEtNC4xOVYxLjVIOXY0LjgxQzcuMjEgNy4zNSA2IDkuMjggNiAxMS41YzAgMy4zMSAyLjY5IDYgNiA2czYtMi42OSA2LTZjMC0yLjIyLTEuMjEtNC4xNS0zLTUuMTl6bTUgNC4xOXYyaDN2LTJoLTN6bS0yLjc2IDcuNjZsMS43OSAxLjggMS40MS0xLjQxLTEuOC0xLjc5LTEuNCAxLjR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0id2ItaXJpZGVzY2VudCI+PHBhdGggZD0iTTUgMTQuNWgxNHYtNkg1djZ6TTExIC41NVYzLjVoMlYuNTVoLTJ6bTguMDQgMi41bC0xLjc5IDEuNzkgMS40MSAxLjQxIDEuOC0xLjc5LTEuNDItMS40MXpNMTMgMjIuNDVWMTkuNWgtMnYyLjk1aDJ6bTcuNDUtMy45MWwtMS44LTEuNzktMS40MSAxLjQxIDEuNzkgMS44IDEuNDItMS40MnpNMy41NSA0LjQ2bDEuNzkgMS43OSAxLjQxLTEuNDEtMS43OS0xLjc5LTEuNDEgMS40MXptMS40MSAxNS40OWwxLjc5LTEuOC0xLjQxLTEuNDEtMS43OSAxLjc5IDEuNDEgMS40MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ3Yi1zdW5ueSI+PHBhdGggZD0iTTYuNzYgNC44NGwtMS44LTEuNzktMS40MSAxLjQxIDEuNzkgMS43OSAxLjQyLTEuNDF6TTQgMTAuNUgxdjJoM3YtMnptOS05Ljk1aC0yVjMuNWgyVi41NXptNy40NSAzLjkxbC0xLjQxLTEuNDEtMS43OSAxLjc5IDEuNDEgMS40MSAxLjc5LTEuNzl6bS0zLjIxIDEzLjdsMS43OSAxLjggMS40MS0xLjQxLTEuOC0xLjc5LTEuNCAxLjR6TTIwIDEwLjV2Mmgzdi0yaC0zem0tOC01Yy0zLjMxIDAtNiAyLjY5LTYgNnMyLjY5IDYgNiA2IDYtMi42OSA2LTYtMi42OS02LTYtNnptLTEgMTYuOTVoMlYxOS41aC0ydjIuOTV6bS03LjQ1LTMuOTFsMS40MSAxLjQxIDEuNzktMS44LTEuNDEtMS40MS0xLjc5IDEuOHoiPjwvcGF0aD48L2c+CjwvZGVmcz48L3N2Zz4KPC9pcm9uLWljb25zZXQtc3ZnPmA7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChSby5jb250ZW50KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IE9vPXhlYDxpcm9uLWljb25zZXQtc3ZnIG5hbWU9Imljb25zIiBzaXplPSIyNCI+Cjxzdmc+PGRlZnM+CjxnIGlkPSIzZC1yb3RhdGlvbiI+PHBhdGggZD0iTTcuNTIgMjEuNDhDNC4yNSAxOS45NCAxLjkxIDE2Ljc2IDEuNTUgMTNILjA1Qy41NiAxOS4xNiA1LjcxIDI0IDEyIDI0bC42Ni0uMDMtMy44MS0zLjgxLTEuMzMgMS4zMnptLjg5LTYuNTJjLS4xOSAwLS4zNy0uMDMtLjUyLS4wOC0uMTYtLjA2LS4yOS0uMTMtLjQtLjI0LS4xMS0uMS0uMi0uMjItLjI2LS4zNy0uMDYtLjE0LS4wOS0uMy0uMDktLjQ3aC0xLjNjMCAuMzYuMDcuNjguMjEuOTUuMTQuMjcuMzMuNS41Ni42OS4yNC4xOC41MS4zMi44Mi40MS4zLjEuNjIuMTUuOTYuMTUuMzcgMCAuNzItLjA1IDEuMDMtLjE1LjMyLS4xLjYtLjI1LjgzLS40NHMuNDItLjQzLjU1LS43MmMuMTMtLjI5LjItLjYxLjItLjk3IDAtLjE5LS4wMi0uMzgtLjA3LS41Ni0uMDUtLjE4LS4xMi0uMzUtLjIzLS41MS0uMS0uMTYtLjI0LS4zLS40LS40My0uMTctLjEzLS4zNy0uMjMtLjYxLS4zMS4yLS4wOS4zNy0uMi41Mi0uMzMuMTUtLjEzLjI3LS4yNy4zNy0uNDIuMS0uMTUuMTctLjMuMjItLjQ2LjA1LS4xNi4wNy0uMzIuMDctLjQ4IDAtLjM2LS4wNi0uNjgtLjE4LS45Ni0uMTItLjI4LS4yOS0uNTEtLjUxLS42OS0uMi0uMTktLjQ3LS4zMy0uNzctLjQzQzkuMSA4LjA1IDguNzYgOCA4LjM5IDhjLS4zNiAwLS42OS4wNS0xIC4xNi0uMy4xMS0uNTcuMjYtLjc5LjQ1LS4yMS4xOS0uMzguNDEtLjUxLjY3LS4xMi4yNi0uMTguNTQtLjE4Ljg1aDEuM2MwLS4xNy4wMy0uMzIuMDktLjQ1cy4xNC0uMjUuMjUtLjM0Yy4xMS0uMDkuMjMtLjE3LjM4LS4yMi4xNS0uMDUuMy0uMDguNDgtLjA4LjQgMCAuNy4xLjg5LjMxLjE5LjIuMjkuNDkuMjkuODYgMCAuMTgtLjAzLjM0LS4wOC40OS0uMDUuMTUtLjE0LjI3LS4yNS4zNy0uMTEuMS0uMjUuMTgtLjQxLjI0LS4xNi4wNi0uMzYuMDktLjU4LjA5SDcuNXYxLjAzaC43N2MuMjIgMCAuNDIuMDIuNi4wN3MuMzMuMTMuNDUuMjNjLjEyLjExLjIyLjI0LjI5LjQuMDcuMTYuMS4zNS4xLjU3IDAgLjQxLS4xMi43Mi0uMzUuOTMtLjIzLjIzLS41NS4zMy0uOTUuMzN6bTguNTUtNS45MmMtLjMyLS4zMy0uNy0uNTktMS4xNC0uNzctLjQzLS4xOC0uOTItLjI3LTEuNDYtLjI3SDEydjhoMi4zYy41NSAwIDEuMDYtLjA5IDEuNTEtLjI3LjQ1LS4xOC44NC0uNDMgMS4xNi0uNzYuMzItLjMzLjU3LS43My43NC0xLjE5LjE3LS40Ny4yNi0uOTkuMjYtMS41N3YtLjRjMC0uNTgtLjA5LTEuMS0uMjYtMS41Ny0uMTgtLjQ3LS40My0uODctLjc1LTEuMnptLS4zOSAzLjE2YzAgLjQyLS4wNS43OS0uMTQgMS4xMy0uMS4zMy0uMjQuNjItLjQzLjg1LS4xOS4yMy0uNDMuNDEtLjcxLjUzLS4yOS4xMi0uNjIuMTgtLjk5LjE4aC0uOTFWOS4xMmguOTdjLjcyIDAgMS4yNy4yMyAxLjY0LjY5LjM4LjQ2LjU3IDEuMTIuNTcgMS45OXYuNHpNMTIgMGwtLjY2LjAzIDMuODEgMy44MSAxLjMzLTEuMzNjMy4yNyAxLjU1IDUuNjEgNC43MiA1Ljk2IDguNDhoMS41QzIzLjQ0IDQuODQgMTguMjkgMCAxMiAweiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFjY2Vzc2liaWxpdHkiPjxwYXRoIGQ9Ik0xMiAyYzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMnptOSA3aC02djEzaC0ydi02aC0ydjZIOVY5SDNWN2gxOHYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFjY2Vzc2libGUiPjxjaXJjbGUgY3g9IjEyIiBjeT0iNCIgcj0iMiI+PC9jaXJjbGU+PHBhdGggZD0iTTE5IDEzdi0yYy0xLjU0LjAyLTMuMDktLjc1LTQuMDctMS44M2wtMS4yOS0xLjQzYy0uMTctLjE5LS4zOC0uMzQtLjYxLS40NS0uMDEgMC0uMDEtLjAxLS4wMi0uMDFIMTNjLS4zNS0uMi0uNzUtLjMtMS4xOS0uMjZDMTAuNzYgNy4xMSAxMCA4LjA0IDEwIDkuMDlWMTVjMCAxLjEuOSAyIDIgMmg1djVoMnYtNS41YzAtMS4xLS45LTItMi0yaC0zdi0zLjQ1YzEuMjkgMS4wNyAzLjI1IDEuOTQgNSAxLjk1em0tNi4xNyA1Yy0uNDEgMS4xNi0xLjUyIDItMi44MyAyLTEuNjYgMC0zLTEuMzQtMy0zIDAtMS4zMS44NC0yLjQxIDItMi44M1YxMi4xYy0yLjI4LjQ2LTQgMi40OC00IDQuOSAwIDIuNzYgMi4yNCA1IDUgNSAyLjQyIDAgNC40NC0xLjcyIDQuOS00aC0yLjA3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFjY291bnQtYmFsYW5jZSI+PHBhdGggZD0iTTQgMTB2N2gzdi03SDR6bTYgMHY3aDN2LTdoLTN6TTIgMjJoMTl2LTNIMnYzem0xNC0xMnY3aDN2LTdoLTN6bS00LjUtOUwyIDZ2MmgxOVY2bC05LjUtNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhY2NvdW50LWJhbGFuY2Utd2FsbGV0Ij48cGF0aCBkPSJNMjEgMTh2MWMwIDEuMS0uOSAyLTIgMkg1Yy0xLjExIDAtMi0uOS0yLTJWNWMwLTEuMS44OS0yIDItMmgxNGMxLjEgMCAyIC45IDIgMnYxaC05Yy0xLjExIDAtMiAuOS0yIDJ2OGMwIDEuMS44OSAyIDIgMmg5em0tOS0yaDEwVjhIMTJ2OHptNC0yLjVjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFjY291bnQtYm94Ij48cGF0aCBkPSJNMyA1djE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJINWMtMS4xMSAwLTIgLjktMiAyem0xMiA0YzAgMS42Ni0xLjM0IDMtMyAzcy0zLTEuMzQtMy0zIDEuMzQtMyAzLTMgMyAxLjM0IDMgM3ptLTkgOGMwLTIgNC0zLjEgNi0zLjFzNiAxLjEgNiAzLjF2MUg2di0xeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFjY291bnQtY2lyY2xlIj48cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAzYzEuNjYgMCAzIDEuMzQgMyAzcy0xLjM0IDMtMyAzLTMtMS4zNC0zLTMgMS4zNC0zIDMtM3ptMCAxNC4yYy0yLjUgMC00LjcxLTEuMjgtNi0zLjIyLjAzLTEuOTkgNC0zLjA4IDYtMy4wOCAxLjk5IDAgNS45NyAxLjA5IDYgMy4wOC0xLjI5IDEuOTQtMy41IDMuMjItNiAzLjIyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFkZCI+PHBhdGggZD0iTTE5IDEzaC02djZoLTJ2LTZINXYtMmg2VjVoMnY2aDZ2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJhZGQtYWxlcnQiPjxwYXRoIGQ9Ik0xMC4wMSAyMS4wMWMwIDEuMS44OSAxLjk5IDEuOTkgMS45OXMxLjk5LS44OSAxLjk5LTEuOTloLTMuOTh6bTguODctNC4xOVYxMWMwLTMuMjUtMi4yNS01Ljk3LTUuMjktNi42OXYtLjcyQzEzLjU5IDIuNzEgMTIuODggMiAxMiAycy0xLjU5LjcxLTEuNTkgMS41OXYuNzJDNy4zNyA1LjAzIDUuMTIgNy43NSA1LjEyIDExdjUuODJMMyAxOC45NFYyMGgxOHYtMS4wNmwtMi4xMi0yLjEyek0xNiAxMy4wMWgtM3YzaC0ydi0zSDhWMTFoM1Y4aDJ2M2gzdjIuMDF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYWRkLWJveCI+PHBhdGggZD0iTTE5IDNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS0yIDEwaC00djRoLTJ2LTRIN3YtMmg0VjdoMnY0aDR2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJhZGQtY2lyY2xlIj48cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptNSAxMWgtNHY0aC0ydi00SDd2LTJoNFY3aDJ2NGg0djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYWRkLWNpcmNsZS1vdXRsaW5lIj48cGF0aCBkPSJNMTMgN2gtMnY0SDd2Mmg0djRoMnYtNGg0di0yaC00Vjd6bS0xLTVDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFkZC1zaG9wcGluZy1jYXJ0Ij48cGF0aCBkPSJNMTEgOWgyVjZoM1Y0aC0zVjFoLTJ2M0g4djJoM3Yzem0tNCA5Yy0xLjEgMC0xLjk5LjktMS45OSAyUzUuOSAyMiA3IDIyczItLjkgMi0yLS45LTItMi0yem0xMCAwYy0xLjEgMC0xLjk5LjktMS45OSAycy44OSAyIDEuOTkgMiAyLS45IDItMi0uOS0yLTItMnptLTkuODMtMy4yNWwuMDMtLjEyLjktMS42M2g3LjQ1Yy43NSAwIDEuNDEtLjQxIDEuNzUtMS4wM2wzLjg2LTcuMDFMMTkuNDIgNGgtLjAxbC0xLjEgMi0yLjc2IDVIOC41M2wtLjEzLS4yN0w2LjE2IDZsLS45NS0yLS45NC0ySDF2MmgybDMuNiA3LjU5LTEuMzUgMi40NWMtLjE2LjI4LS4yNS42MS0uMjUuOTYgMCAxLjEuOSAyIDIgMmgxMnYtMkg3LjQyYy0uMTMgMC0uMjUtLjExLS4yNS0uMjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYWxhcm0iPjxwYXRoIGQ9Ik0yMiA1LjcybC00LjYtMy44Ni0xLjI5IDEuNTMgNC42IDMuODZMMjIgNS43MnpNNy44OCAzLjM5TDYuNiAxLjg2IDIgNS43MWwxLjI5IDEuNTMgNC41OS0zLjg1ek0xMi41IDhIMTF2Nmw0Ljc1IDIuODUuNzUtMS4yMy00LTIuMzdWOHpNMTIgNGMtNC45NyAwLTkgNC4wMy05IDlzNC4wMiA5IDkgOWM0Ljk3IDAgOS00LjAzIDktOXMtNC4wMy05LTktOXptMCAxNmMtMy44NyAwLTctMy4xMy03LTdzMy4xMy03IDctNyA3IDMuMTMgNyA3LTMuMTMgNy03IDd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYWxhcm0tYWRkIj48cGF0aCBkPSJNNy44OCAzLjM5TDYuNiAxLjg2IDIgNS43MWwxLjI5IDEuNTMgNC41OS0zLjg1ek0yMiA1LjcybC00LjYtMy44Ni0xLjI5IDEuNTMgNC42IDMuODZMMjIgNS43MnpNMTIgNGMtNC45NyAwLTkgNC4wMy05IDlzNC4wMiA5IDkgOWM0Ljk3IDAgOS00LjAzIDktOXMtNC4wMy05LTktOXptMCAxNmMtMy44NyAwLTctMy4xMy03LTdzMy4xMy03IDctNyA3IDMuMTMgNyA3LTMuMTMgNy03IDd6bTEtMTFoLTJ2M0g4djJoM3YzaDJ2LTNoM3YtMmgtM1Y5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFsYXJtLW9mZiI+PHBhdGggZD0iTTEyIDZjMy44NyAwIDcgMy4xMyA3IDcgMCAuODQtLjE2IDEuNjUtLjQzIDIuNGwxLjUyIDEuNTJjLjU4LTEuMTkuOTEtMi41MS45MS0zLjkyIDAtNC45Ny00LjAzLTktOS05LTEuNDEgMC0yLjczLjMzLTMuOTIuOTFMOS42IDYuNDNDMTAuMzUgNi4xNiAxMS4xNiA2IDEyIDZ6bTEwLS4yOGwtNC42LTMuODYtMS4yOSAxLjUzIDQuNiAzLjg2TDIyIDUuNzJ6TTIuOTIgMi4yOUwxLjY1IDMuNTcgMi45OCA0LjlsLTEuMTEuOTMgMS40MiAxLjQyIDEuMTEtLjk0LjguOEMzLjgzIDguNjkgMyAxMC43NSAzIDEzYzAgNC45NyA0LjAyIDkgOSA5IDIuMjUgMCA0LjMxLS44MyA1Ljg5LTIuMmwyLjIgMi4yIDEuMjctMS4yN0wzLjg5IDMuMjdsLS45Ny0uOTh6bTEzLjU1IDE2LjFDMTUuMjYgMTkuMzkgMTMuNyAyMCAxMiAyMGMtMy44NyAwLTctMy4xMy03LTcgMC0xLjcuNjEtMy4yNiAxLjYxLTQuNDdsOS44NiA5Ljg2ek04LjAyIDMuMjhMNi42IDEuODZsLS44Ni43MSAxLjQyIDEuNDIuODYtLjcxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFsYXJtLW9uIj48cGF0aCBkPSJNMjIgNS43MmwtNC42LTMuODYtMS4yOSAxLjUzIDQuNiAzLjg2TDIyIDUuNzJ6TTcuODggMy4zOUw2LjYgMS44NiAyIDUuNzFsMS4yOSAxLjUzIDQuNTktMy44NXpNMTIgNGMtNC45NyAwLTkgNC4wMy05IDlzNC4wMiA5IDkgOWM0Ljk3IDAgOS00LjAzIDktOXMtNC4wMy05LTktOXptMCAxNmMtMy44NyAwLTctMy4xMy03LTdzMy4xMy03IDctNyA3IDMuMTMgNyA3LTMuMTMgNy03IDd6bS0xLjQ2LTUuNDdMOC40MSAxMi40bC0xLjA2IDEuMDYgMy4xOCAzLjE4IDYtNi0xLjA2LTEuMDYtNC45MyA0Ljk1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFsbC1vdXQiPjxwYXRoIGQ9Ik0xNi4yMSA0LjE2bDQgNHYtNHptNCAxMmwtNCA0aDR6bS0xMiA0bC00LTR2NHptLTQtMTJsNC00aC00em0xMi45NS0uOTVjLTIuNzMtMi43My03LjE3LTIuNzMtOS45IDBzLTIuNzMgNy4xNyAwIDkuOSA3LjE3IDIuNzMgOS45IDAgMi43My03LjE2IDAtOS45em0tMS4xIDguOGMtMi4xMyAyLjEzLTUuNTcgMi4xMy03LjcgMHMtMi4xMy01LjU3IDAtNy43IDUuNTctMi4xMyA3LjcgMCAyLjEzIDUuNTcgMCA3Ljd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYW5kcm9pZCI+PHBhdGggZD0iTTYgMThjMCAuNTUuNDUgMSAxIDFoMXYzLjVjMCAuODMuNjcgMS41IDEuNSAxLjVzMS41LS42NyAxLjUtMS41VjE5aDJ2My41YzAgLjgzLjY3IDEuNSAxLjUgMS41czEuNS0uNjcgMS41LTEuNVYxOWgxYy41NSAwIDEtLjQ1IDEtMVY4SDZ2MTB6TTMuNSA4QzIuNjcgOCAyIDguNjcgMiA5LjV2N2MwIC44My42NyAxLjUgMS41IDEuNVM1IDE3LjMzIDUgMTYuNXYtN0M1IDguNjcgNC4zMyA4IDMuNSA4em0xNyAwYy0uODMgMC0xLjUuNjctMS41IDEuNXY3YzAgLjgzLjY3IDEuNSAxLjUgMS41czEuNS0uNjcgMS41LTEuNXYtN2MwLS44My0uNjctMS41LTEuNS0xLjV6bS00Ljk3LTUuODRsMS4zLTEuM2MuMi0uMi4yLS41MSAwLS43MS0uMi0uMi0uNTEtLjItLjcxIDBsLTEuNDggMS40OEMxMy44NSAxLjIzIDEyLjk1IDEgMTIgMWMtLjk2IDAtMS44Ni4yMy0yLjY2LjYzTDcuODUuMTVjLS4yLS4yLS41MS0uMi0uNzEgMC0uMi4yLS4yLjUxIDAgLjcxbDEuMzEgMS4zMUM2Ljk3IDMuMjYgNiA1LjAxIDYgN2gxMmMwLTEuOTktLjk3LTMuNzUtMi40Ny00Ljg0ek0xMCA1SDlWNGgxdjF6bTUgMGgtMVY0aDF2MXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhbm5vdW5jZW1lbnQiPjxwYXRoIGQ9Ik0yMCAySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAyMmw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTcgOWgtMlY1aDJ2NnptMCA0aC0ydi0yaDJ2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJhcHBzIj48cGF0aCBkPSJNNCA4aDRWNEg0djR6bTYgMTJoNHYtNGgtNHY0em0tNiAwaDR2LTRINHY0em0wLTZoNHYtNEg0djR6bTYgMGg0di00aC00djR6bTYtMTB2NGg0VjRoLTR6bS02IDRoNFY0aC00djR6bTYgNmg0di00aC00djR6bTAgNmg0di00aC00djR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXJjaGl2ZSI+PHBhdGggZD0iTTIwLjU0IDUuMjNsLTEuMzktMS42OEMxOC44OCAzLjIxIDE4LjQ3IDMgMTggM0g2Yy0uNDcgMC0uODguMjEtMS4xNi41NUwzLjQ2IDUuMjNDMy4xNyA1LjU3IDMgNi4wMiAzIDYuNVYxOWMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjYuNWMwLS40OC0uMTctLjkzLS40Ni0xLjI3ek0xMiAxNy41TDYuNSAxMkgxMHYtMmg0djJoMy41TDEyIDE3LjV6TTUuMTIgNWwuODEtMWgxMmwuOTQgMUg1LjEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFycm93LWJhY2siPjxwYXRoIGQ9Ik0yMCAxMUg3LjgzbDUuNTktNS41OUwxMiA0bC04IDggOCA4IDEuNDEtMS40MUw3LjgzIDEzSDIwdi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFycm93LWRvd253YXJkIj48cGF0aCBkPSJNMjAgMTJsLTEuNDEtMS40MUwxMyAxNi4xN1Y0aC0ydjEyLjE3bC01LjU4LTUuNTlMNCAxMmw4IDggOC04eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFycm93LWRyb3AtZG93biI+PHBhdGggZD0iTTcgMTBsNSA1IDUtNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhcnJvdy1kcm9wLWRvd24tY2lyY2xlIj48cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxMmwtNC00aDhsLTQgNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJhcnJvdy1kcm9wLXVwIj48cGF0aCBkPSJNNyAxNGw1LTUgNSA1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFycm93LWZvcndhcmQiPjxwYXRoIGQ9Ik0xMiA0bC0xLjQxIDEuNDFMMTYuMTcgMTFINHYyaDEyLjE3bC01LjU4IDUuNTlMMTIgMjBsOC04eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFycm93LXVwd2FyZCI+PHBhdGggZD0iTTQgMTJsMS40MSAxLjQxTDExIDcuODNWMjBoMlY3LjgzbDUuNTggNS41OUwyMCAxMmwtOC04LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJhc3BlY3QtcmF0aW8iPjxwYXRoIGQ9Ik0xOSAxMmgtMnYzaC0zdjJoNXYtNXpNNyA5aDNWN0g1djVoMlY5em0xNC02SDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNi4wMUgzVjQuOTloMTh2MTQuMDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXNzZXNzbWVudCI+PHBhdGggZD0iTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek05IDE3SDd2LTdoMnY3em00IDBoLTJWN2gydjEwem00IDBoLTJ2LTRoMnY0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFzc2lnbm1lbnQiPjxwYXRoIGQ9Ik0xOSAzaC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMWMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDBjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptMiAxNEg3di0yaDd2MnptMy00SDd2LTJoMTB2MnptMC00SDdWN2gxMHYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFzc2lnbm1lbnQtaW5kIj48cGF0aCBkPSJNMTkgM2gtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFjLTEuMyAwLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAwYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTAgNGMxLjY2IDAgMyAxLjM0IDMgM3MtMS4zNCAzLTMgMy0zLTEuMzQtMy0zIDEuMzQtMyAzLTN6bTYgMTJINnYtMS40YzAtMiA0LTMuMSA2LTMuMXM2IDEuMSA2IDMuMVYxOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJhc3NpZ25tZW50LWxhdGUiPjxwYXRoIGQ9Ik0xOSAzaC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMWMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS02IDE1aC0ydi0yaDJ2MnptMC00aC0yVjhoMnY2em0tMS05Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXNzaWdubWVudC1yZXR1cm4iPjxwYXRoIGQ9Ik0xOSAzaC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMWMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDBjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptNCAxMmgtNHYzbC01LTUgNS01djNoNHY0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFzc2lnbm1lbnQtcmV0dXJuZWQiPjxwYXRoIGQ9Ik0xOSAzaC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMWMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDBjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptMCAxNWwtNS01aDNWOWg0djRoM2wtNSA1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImFzc2lnbm1lbnQtdHVybmVkLWluIj48cGF0aCBkPSJNMTkgM2gtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFjLTEuMyAwLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAwYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bS0yIDE0bC00LTQgMS40MS0xLjQxTDEwIDE0LjE3bDYuNTktNi41OUwxOCA5bC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXR0YWNobWVudCI+PHBhdGggZD0iTTIgMTIuNUMyIDkuNDYgNC40NiA3IDcuNSA3SDE4YzIuMjEgMCA0IDEuNzkgNCA0cy0xLjc5IDQtNCA0SDkuNUM4LjEyIDE1IDcgMTMuODggNyAxMi41UzguMTIgMTAgOS41IDEwSDE3djJIOS40MWMtLjU1IDAtLjU1IDEgMCAxSDE4YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMkg3LjVDNS41NyA5IDQgMTAuNTcgNCAxMi41UzUuNTcgMTYgNy41IDE2SDE3djJINy41QzQuNDYgMTggMiAxNS41NCAyIDEyLjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYXV0b3JlbmV3Ij48cGF0aCBkPSJNMTIgNnYzbDQtNC00LTR2M2MtNC40MiAwLTggMy41OC04IDggMCAxLjU3LjQ2IDMuMDMgMS4yNCA0LjI2TDYuNyAxNC44Yy0uNDUtLjgzLS43LTEuNzktLjctMi44IDAtMy4zMSAyLjY5LTYgNi02em02Ljc2IDEuNzRMMTcuMyA5LjJjLjQ0Ljg0LjcgMS43OS43IDIuOCAwIDMuMzEtMi42OSA2LTYgNnYtM2wtNCA0IDQgNHYtM2M0LjQyIDAgOC0zLjU4IDgtOCAwLTEuNTctLjQ2LTMuMDMtMS4yNC00LjI2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImJhY2tzcGFjZSI+PHBhdGggZD0iTTIyIDNIN2MtLjY5IDAtMS4yMy4zNS0xLjU5Ljg4TDAgMTJsNS40MSA4LjExYy4zNi41My45Ljg5IDEuNTkuODloMTVjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTMgMTIuNTlMMTcuNTkgMTcgMTQgMTMuNDEgMTAuNDEgMTcgOSAxNS41OSAxMi41OSAxMiA5IDguNDEgMTAuNDEgNyAxNCAxMC41OSAxNy41OSA3IDE5IDguNDEgMTUuNDEgMTIgMTkgMTUuNTl6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iYmFja3VwIj48cGF0aCBkPSJNMTkuMzUgMTAuMDRDMTguNjcgNi41OSAxNS42NCA0IDEyIDQgOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNCAyLjM0IDguMzYgMCAxMC45MSAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2ek0xNCAxM3Y0aC00di00SDdsNS01IDUgNWgtM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJibG9jayI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTQgMTJjMC00LjQyIDMuNTgtOCA4LTggMS44NSAwIDMuNTUuNjMgNC45IDEuNjlMNS42OSAxNi45QzQuNjMgMTUuNTUgNCAxMy44NSA0IDEyem04IDhjLTEuODUgMC0zLjU1LS42My00LjktMS42OUwxOC4zMSA3LjFDMTkuMzcgOC40NSAyMCAxMC4xNSAyMCAxMmMwIDQuNDItMy41OCA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJib29rIj48cGF0aCBkPSJNMTggMkg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6TTYgNGg1djhsLTIuNS0xLjVMNiAxMlY0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImJvb2ttYXJrIj48cGF0aCBkPSJNMTcgM0g3Yy0xLjEgMC0xLjk5LjktMS45OSAyTDUgMjFsNy0zIDcgM1Y1YzAtMS4xLS45LTItMi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImJvb2ttYXJrLWJvcmRlciI+PHBhdGggZD0iTTE3IDNIN2MtMS4xIDAtMS45OS45LTEuOTkgMkw1IDIxbDctMyA3IDNWNWMwLTEuMS0uOS0yLTItMnptMCAxNWwtNS0yLjE4TDcgMThWNWgxMHYxM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJidWctcmVwb3J0Ij48cGF0aCBkPSJNMjAgOGgtMi44MWMtLjQ1LS43OC0xLjA3LTEuNDUtMS44Mi0xLjk2TDE3IDQuNDEgMTUuNTkgM2wtMi4xNyAyLjE3QzEyLjk2IDUuMDYgMTIuNDkgNSAxMiA1Yy0uNDkgMC0uOTYuMDYtMS40MS4xN0w4LjQxIDMgNyA0LjQxbDEuNjIgMS42M0M3Ljg4IDYuNTUgNy4yNiA3LjIyIDYuODEgOEg0djJoMi4wOWMtLjA1LjMzLS4wOS42Ni0uMDkgMXYxSDR2MmgydjFjMCAuMzQuMDQuNjcuMDkgMUg0djJoMi44MWMxLjA0IDEuNzkgMi45NyAzIDUuMTkgM3M0LjE1LTEuMjEgNS4xOS0zSDIwdi0yaC0yLjA5Yy4wNS0uMzMuMDktLjY2LjA5LTF2LTFoMnYtMmgtMnYtMWMwLS4zNC0uMDQtLjY3LS4wOS0xSDIwVjh6bS02IDhoLTR2LTJoNHYyem0wLTRoLTR2LTJoNHYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImJ1aWxkIj48cGF0aCBkPSJNMjIuNyAxOWwtOS4xLTkuMWMuOS0yLjMuNC01LTEuNS02LjktMi0yLTUtMi40LTcuNC0xLjNMOSA2IDYgOSAxLjYgNC43Qy40IDcuMS45IDEwLjEgMi45IDEyLjFjMS45IDEuOSA0LjYgMi40IDYuOSAxLjVsOS4xIDkuMWMuNC40IDEgLjQgMS40IDBsMi4zLTIuM2MuNS0uNC41LTEuMS4xLTEuNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJjYWNoZWQiPjxwYXRoIGQ9Ik0xOSA4bC00IDRoM2MwIDMuMzEtMi42OSA2LTYgNi0xLjAxIDAtMS45Ny0uMjUtMi44LS43bC0xLjQ2IDEuNDZDOC45NyAxOS41NCAxMC40MyAyMCAxMiAyMGM0LjQyIDAgOC0zLjU4IDgtOGgzbC00LTR6TTYgMTJjMC0zLjMxIDIuNjktNiA2LTYgMS4wMSAwIDEuOTcuMjUgMi44LjdsMS40Ni0xLjQ2QzE1LjAzIDQuNDYgMTMuNTcgNCAxMiA0Yy00LjQyIDAtOCAzLjU4LTggOEgxbDQgNCA0LTRINnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjYW1lcmEtZW5oYW5jZSI+PHBhdGggZD0iTTkgM0w3LjE3IDVINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yaC0zLjE3TDE1IDNIOXptMyAxNWMtMi43NiAwLTUtMi4yNC01LTVzMi4yNC01IDUtNSA1IDIuMjQgNSA1LTIuMjQgNS01IDV6bTAtMWwxLjI1LTIuNzVMMTYgMTNsLTIuNzUtMS4yNUwxMiA5bC0xLjI1IDIuNzVMOCAxM2wyLjc1IDEuMjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2FuY2VsIj48cGF0aCBkPSJNMTIgMkM2LjQ3IDIgMiA2LjQ3IDIgMTJzNC40NyAxMCAxMCAxMCAxMC00LjQ3IDEwLTEwUzE3LjUzIDIgMTIgMnptNSAxMy41OUwxNS41OSAxNyAxMiAxMy40MSA4LjQxIDE3IDcgMTUuNTkgMTAuNTkgMTIgNyA4LjQxIDguNDEgNyAxMiAxMC41OSAxNS41OSA3IDE3IDguNDEgMTMuNDEgMTIgMTcgMTUuNTl6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2FyZC1naWZ0Y2FyZCI+PHBhdGggZD0iTTIwIDZoLTIuMThjLjExLS4zMS4xOC0uNjUuMTgtMSAwLTEuNjYtMS4zNC0zLTMtMy0xLjA1IDAtMS45Ni41NC0yLjUgMS4zNWwtLjUuNjctLjUtLjY4QzEwLjk2IDIuNTQgMTAuMDUgMiA5IDIgNy4zNCAyIDYgMy4zNCA2IDVjMCAuMzUuMDcuNjkuMTggMUg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOWMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY4YzAtMS4xMS0uODktMi0yLTJ6bS01LTJjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXpNOSA0Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTExIDE1SDR2LTJoMTZ2MnptMC01SDRWOGg1LjA4TDcgMTAuODMgOC42MiAxMiAxMSA4Ljc2bDEtMS4zNiAxIDEuMzZMMTUuMzggMTIgMTcgMTAuODMgMTQuOTIgOEgyMHY2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNhcmQtbWVtYmVyc2hpcCI+PHBhdGggZD0iTTIwIDJINGMtMS4xMSAwLTIgLjg5LTIgMnYxMWMwIDEuMTEuODkgMiAyIDJoNHY1bDQtMiA0IDJ2LTVoNGMxLjExIDAgMi0uODkgMi0yVjRjMC0xLjExLS44OS0yLTItMnptMCAxM0g0di0yaDE2djJ6bTAtNUg0VjRoMTZ2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjYXJkLXRyYXZlbCI+PHBhdGggZD0iTTIwIDZoLTNWNGMwLTEuMTEtLjg5LTItMi0ySDljLTEuMTEgMC0yIC44OS0yIDJ2Mkg0Yy0xLjExIDAtMiAuODktMiAydjExYzAgMS4xMS44OSAyIDIgMmgxNmMxLjExIDAgMi0uODkgMi0yVjhjMC0xLjExLS44OS0yLTItMnpNOSA0aDZ2Mkg5VjR6bTExIDE1SDR2LTJoMTZ2MnptMC01SDRWOGgzdjJoMlY4aDZ2MmgyVjhoM3Y2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNoYW5nZS1oaXN0b3J5Ij48cGF0aCBkPSJNMTIgNy43N0wxOC4zOSAxOEg1LjYxTDEyIDcuNzdNMTIgNEwyIDIwaDIwTDEyIDR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2hlY2siPjxwYXRoIGQ9Ik05IDE2LjE3TDQuODMgMTJsLTEuNDIgMS40MUw5IDE5IDIxIDdsLTEuNDEtMS40MXoiPjwvcGF0aD48L2c+CjxnIGlkPSJjaGVjay1ib3giPjxwYXRoIGQ9Ik0xOSAzSDVjLTEuMTEgMC0yIC45LTIgMnYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjExIDAgMi0uOSAyLTJWNWMwLTEuMS0uODktMi0yLTJ6bS05IDE0bC01LTUgMS40MS0xLjQxTDEwIDE0LjE3bDcuNTktNy41OUwxOSA4bC05IDl6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2hlY2stYm94LW91dGxpbmUtYmxhbmsiPjxwYXRoIGQ9Ik0xOSA1djE0SDVWNWgxNG0wLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNoZWNrLWNpcmNsZSI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bS0yIDE1bC01LTUgMS40MS0xLjQxTDEwIDE0LjE3bDcuNTktNy41OUwxOSA4bC05IDl6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2hldnJvbi1sZWZ0Ij48cGF0aCBkPSJNMTUuNDEgNy40MUwxNCA2bC02IDYgNiA2IDEuNDEtMS40MUwxMC44MyAxMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjaGV2cm9uLXJpZ2h0Ij48cGF0aCBkPSJNMTAgNkw4LjU5IDcuNDEgMTMuMTcgMTJsLTQuNTggNC41OUwxMCAxOGw2LTZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2hyb21lLXJlYWRlci1tb2RlIj48cGF0aCBkPSJNMTMgMTJoN3YxLjVoLTd6bTAtMi41aDdWMTFoLTd6bTAgNWg3VjE2aC03ek0yMSA0SDNjLTEuMSAwLTIgLjktMiAydjEzYzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNWgtOVY2aDl2MTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2xhc3MiPjxwYXRoIGQ9Ik0xOCAySDZjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnpNNiA0aDV2OGwtMi41LTEuNUw2IDEyVjR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2xlYXIiPjxwYXRoIGQ9Ik0xOSA2LjQxTDE3LjU5IDUgMTIgMTAuNTkgNi40MSA1IDUgNi40MSAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTIgMTMuNDEgMTcuNTkgMTkgMTkgMTcuNTkgMTMuNDEgMTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2xvc2UiPjxwYXRoIGQ9Ik0xOSA2LjQxTDE3LjU5IDUgMTIgMTAuNTkgNi40MSA1IDUgNi40MSAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTIgMTMuNDEgMTcuNTkgMTkgMTkgMTcuNTkgMTMuNDEgMTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2xvdWQiPjxwYXRoIGQ9Ik0xOS4zNSAxMC4wNEMxOC42NyA2LjU5IDE1LjY0IDQgMTIgNCA5LjExIDQgNi42IDUuNjQgNS4zNSA4LjA0IDIuMzQgOC4zNiAwIDEwLjkxIDAgMTRjMCAzLjMxIDIuNjkgNiA2IDZoMTNjMi43NiAwIDUtMi4yNCA1LTUgMC0yLjY0LTIuMDUtNC43OC00LjY1LTQuOTZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2xvdWQtY2lyY2xlIj48cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptNC41IDE0SDhjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTNsLjE0LjAxQzguNTggOC4yOCAxMC4xMyA3IDEyIDdjMi4yMSAwIDQgMS43OSA0IDRoLjVjMS4zOCAwIDIuNSAxLjEyIDIuNSAyLjVTMTcuODggMTYgMTYuNSAxNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJjbG91ZC1kb25lIj48cGF0aCBkPSJNMTkuMzUgMTAuMDRDMTguNjcgNi41OSAxNS42NCA0IDEyIDQgOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNCAyLjM0IDguMzYgMCAxMC45MSAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2ek0xMCAxN2wtMy41LTMuNSAxLjQxLTEuNDFMMTAgMTQuMTcgMTUuMTggOWwxLjQxIDEuNDFMMTAgMTd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2xvdWQtZG93bmxvYWQiPjxwYXRoIGQ9Ik0xOS4zNSAxMC4wNEMxOC42NyA2LjU5IDE1LjY0IDQgMTIgNCA5LjExIDQgNi42IDUuNjQgNS4zNSA4LjA0IDIuMzQgOC4zNiAwIDEwLjkxIDAgMTRjMCAzLjMxIDIuNjkgNiA2IDZoMTNjMi43NiAwIDUtMi4yNCA1LTUgMC0yLjY0LTIuMDUtNC43OC00LjY1LTQuOTZ6TTE3IDEzbC01IDUtNS01aDNWOWg0djRoM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJjbG91ZC1vZmYiPjxwYXRoIGQ9Ik0xOS4zNSAxMC4wNEMxOC42NyA2LjU5IDE1LjY0IDQgMTIgNGMtMS40OCAwLTIuODUuNDMtNC4wMSAxLjE3bDEuNDYgMS40NkMxMC4yMSA2LjIzIDExLjA4IDYgMTIgNmMzLjA0IDAgNS41IDIuNDYgNS41IDUuNXYuNUgxOWMxLjY2IDAgMyAxLjM0IDMgMyAwIDEuMTMtLjY0IDIuMTEtMS41NiAyLjYybDEuNDUgMS40NUMyMy4xNiAxOC4xNiAyNCAxNi42OCAyNCAxNWMwLTIuNjQtMi4wNS00Ljc4LTQuNjUtNC45NnpNMyA1LjI3bDIuNzUgMi43NEMyLjU2IDguMTUgMCAxMC43NyAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDExLjczbDIgMkwyMSAyMC43MyA0LjI3IDQgMyA1LjI3ek03LjczIDEwbDggOEg2Yy0yLjIxIDAtNC0xLjc5LTQtNHMxLjc5LTQgNC00aDEuNzN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY2xvdWQtcXVldWUiPjxwYXRoIGQ9Ik0xOS4zNSAxMC4wNEMxOC42NyA2LjU5IDE1LjY0IDQgMTIgNCA5LjExIDQgNi42IDUuNjQgNS4zNSA4LjA0IDIuMzQgOC4zNiAwIDEwLjkxIDAgMTRjMCAzLjMxIDIuNjkgNiA2IDZoMTNjMi43NiAwIDUtMi4yNCA1LTUgMC0yLjY0LTIuMDUtNC43OC00LjY1LTQuOTZ6TTE5IDE4SDZjLTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTRoLjcxQzcuMzcgNy42OSA5LjQ4IDYgMTIgNmMzLjA0IDAgNS41IDIuNDYgNS41IDUuNXYuNUgxOWMxLjY2IDAgMyAxLjM0IDMgM3MtMS4zNCAzLTMgM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJjbG91ZC11cGxvYWQiPjxwYXRoIGQ9Ik0xOS4zNSAxMC4wNEMxOC42NyA2LjU5IDE1LjY0IDQgMTIgNCA5LjExIDQgNi42IDUuNjQgNS4zNSA4LjA0IDIuMzQgOC4zNiAwIDEwLjkxIDAgMTRjMCAzLjMxIDIuNjkgNiA2IDZoMTNjMi43NiAwIDUtMi4yNCA1LTUgMC0yLjY0LTIuMDUtNC43OC00LjY1LTQuOTZ6TTE0IDEzdjRoLTR2LTRIN2w1LTUgNSA1aC0zeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNvZGUiPjxwYXRoIGQ9Ik05LjQgMTYuNkw0LjggMTJsNC42LTQuNkw4IDZsLTYgNiA2IDYgMS40LTEuNHptNS4yIDBsNC42LTQuNi00LjYtNC42TDE2IDZsNiA2LTYgNi0xLjQtMS40eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNvbXBhcmUtYXJyb3dzIj48cGF0aCBkPSJNOS4wMSAxNEgydjJoNy4wMXYzTDEzIDE1bC0zLjk5LTR2M3ptNS45OC0xdi0zSDIyVjhoLTcuMDFWNUwxMSA5bDMuOTkgNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJjb250ZW50LWNvcHkiPjxwYXRoIGQ9Ik0xNiAxSDRjLTEuMSAwLTIgLjktMiAydjE0aDJWM2gxMlYxem0zIDRIOGMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxMWMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0wIDE2SDhWN2gxMXYxNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJjb250ZW50LWN1dCI+PHBhdGggZD0iTTkuNjQgNy42NGMuMjMtLjUuMzYtMS4wNS4zNi0xLjY0IDAtMi4yMS0xLjc5LTQtNC00UzIgMy43OSAyIDZzMS43OSA0IDQgNGMuNTkgMCAxLjE0LS4xMyAxLjY0LS4zNkwxMCAxMmwtMi4zNiAyLjM2QzcuMTQgMTQuMTMgNi41OSAxNCA2IDE0Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTRjMC0uNTktLjEzLTEuMTQtLjM2LTEuNjRMMTIgMTRsNyA3aDN2LTFMOS42NCA3LjY0ek02IDhjLTEuMSAwLTItLjg5LTItMnMuOS0yIDItMiAyIC44OSAyIDItLjkgMi0yIDJ6bTAgMTJjLTEuMSAwLTItLjg5LTItMnMuOS0yIDItMiAyIC44OSAyIDItLjkgMi0yIDJ6bTYtNy41Yy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjUuNS4yMi41LjUtLjIyLjUtLjUuNXpNMTkgM2wtNiA2IDIgMiA3LTdWM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJjb250ZW50LXBhc3RlIj48cGF0aCBkPSJNMTkgMmgtNC4xOEMxNC40Ljg0IDEzLjMgMCAxMiAwYy0xLjMgMC0yLjQuODQtMi44MiAySDVjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTcgMGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem03IDE4SDVWNGgydjNoMTBWNGgydjE2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNvcHlyaWdodCI+PHBhdGggZD0iTTEwLjA4IDEwLjg2Yy4wNS0uMzMuMTYtLjYyLjMtLjg3cy4zNC0uNDYuNTktLjYyYy4yNC0uMTUuNTQtLjIyLjkxLS4yMy4yMy4wMS40NC4wNS42My4xMy4yLjA5LjM4LjIxLjUyLjM2cy4yNS4zMy4zNC41My4xMy40Mi4xNC42NGgxLjc5Yy0uMDItLjQ3LS4xMS0uOS0uMjgtMS4yOXMtLjQtLjczLS43LTEuMDEtLjY2LS41LTEuMDgtLjY2LS44OC0uMjMtMS4zOS0uMjNjLS42NSAwLTEuMjIuMTEtMS43LjM0cy0uODguNTMtMS4yLjkyLS41Ni44NC0uNzEgMS4zNlM4IDExLjI5IDggMTEuODd2LjI3YzAgLjU4LjA4IDEuMTIuMjMgMS42NHMuMzkuOTcuNzEgMS4zNS43Mi42OSAxLjIuOTEgMS4wNS4zNCAxLjcuMzRjLjQ3IDAgLjkxLS4wOCAxLjMyLS4yM3MuNzctLjM2IDEuMDgtLjYzLjU2LS41OC43NC0uOTQuMjktLjc0LjMtMS4xNWgtMS43OWMtLjAxLjIxLS4wNi40LS4xNS41OHMtLjIxLjMzLS4zNi40Ni0uMzIuMjMtLjUyLjNjLS4xOS4wNy0uMzkuMDktLjYuMS0uMzYtLjAxLS42Ni0uMDgtLjg5LS4yMy0uMjUtLjE2LS40NS0uMzctLjU5LS42MnMtLjI1LS41NS0uMy0uODgtLjA4LS42Ny0uMDgtMXYtLjI3YzAtLjM1LjAzLS42OC4wOC0xLjAxek0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJjcmVhdGUiPjxwYXRoIGQ9Ik0zIDE3LjI1VjIxaDMuNzVMMTcuODEgOS45NGwtMy43NS0zLjc1TDMgMTcuMjV6TTIwLjcxIDcuMDRjLjM5LS4zOS4zOS0xLjAyIDAtMS40MWwtMi4zNC0yLjM0Yy0uMzktLjM5LTEuMDItLjM5LTEuNDEgMGwtMS44MyAxLjgzIDMuNzUgMy43NSAxLjgzLTEuODN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY3JlYXRlLW5ldy1mb2xkZXIiPjxwYXRoIGQ9Ik0yMCA2aC04bC0yLTJINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMThjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWOGMwLTEuMTEtLjg5LTItMi0yem0tMSA4aC0zdjNoLTJ2LTNoLTN2LTJoM1Y5aDJ2M2gzdjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iY3JlZGl0LWNhcmQiPjxwYXRoIGQ9Ik0yMCA0SDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE4YzAgMS4xMS44OSAyIDIgMmgxNmMxLjExIDAgMi0uODkgMi0yVjZjMC0xLjExLS44OS0yLTItMnptMCAxNEg0di02aDE2djZ6bTAtMTBINFY2aDE2djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZGFzaGJvYXJkIj48cGF0aCBkPSJNMyAxM2g4VjNIM3YxMHptMCA4aDh2LTZIM3Y2em0xMCAwaDhWMTFoLTh2MTB6bTAtMTh2Nmg4VjNoLTh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZGF0ZS1yYW5nZSI+PHBhdGggZD0iTTkgMTFIN3YyaDJ2LTJ6bTQgMGgtMnYyaDJ2LTJ6bTQgMGgtMnYyaDJ2LTJ6bTItN2gtMVYyaC0ydjJIOFYySDZ2Mkg1Yy0xLjExIDAtMS45OS45LTEuOTkgMkwzIDIwYzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY5aDE0djExeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImRlbGV0ZSI+PHBhdGggZD0iTTYgMTljMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjdINnYxMnpNMTkgNGgtMy41bC0xLTFoLTVsLTEgMUg1djJoMTRWNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJkZWxldGUtZm9yZXZlciI+PHBhdGggZD0iTTYgMTljMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjdINnYxMnptMi40Ni03LjEybDEuNDEtMS40MUwxMiAxMi41OWwyLjEyLTIuMTIgMS40MSAxLjQxTDEzLjQxIDE0bDIuMTIgMi4xMi0xLjQxIDEuNDFMMTIgMTUuNDFsLTIuMTIgMi4xMi0xLjQxLTEuNDFMMTAuNTkgMTRsLTIuMTMtMi4xMnpNMTUuNSA0bC0xLTFoLTVsLTEgMUg1djJoMTRWNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJkZWxldGUtc3dlZXAiPjxwYXRoIGQ9Ik0xNSAxNmg0djJoLTR6bTAtOGg3djJoLTd6bTAgNGg2djJoLTZ6TTMgMThjMCAxLjEuOSAyIDIgMmg2YzEuMSAwIDItLjkgMi0yVjhIM3YxMHpNMTQgNWgtM2wtMS0xSDZMNSA1SDJ2MmgxMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJkZXNjcmlwdGlvbiI+PHBhdGggZD0iTTE0IDJINmMtMS4xIDAtMS45OS45LTEuOTkgMkw0IDIwYzAgMS4xLjg5IDIgMS45OSAySDE4YzEuMSAwIDItLjkgMi0yVjhsLTYtNnptMiAxNkg4di0yaDh2MnptMC00SDh2LTJoOHYyem0tMy01VjMuNUwxOC41IDlIMTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZG5zIj48cGF0aCBkPSJNMjAgMTNINGMtLjU1IDAtMSAuNDUtMSAxdjZjMCAuNTUuNDUgMSAxIDFoMTZjLjU1IDAgMS0uNDUgMS0xdi02YzAtLjU1LS40NS0xLTEtMXpNNyAxOWMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6TTIwIDNINGMtLjU1IDAtMSAuNDUtMSAxdjZjMCAuNTUuNDUgMSAxIDFoMTZjLjU1IDAgMS0uNDUgMS0xVjRjMC0uNTUtLjQ1LTEtMS0xek03IDljLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImRvbmUiPjxwYXRoIGQ9Ik05IDE2LjJMNC44IDEybC0xLjQgMS40TDkgMTkgMjEgN2wtMS40LTEuNEw5IDE2LjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZG9uZS1hbGwiPjxwYXRoIGQ9Ik0xOCA3bC0xLjQxLTEuNDEtNi4zNCA2LjM0IDEuNDEgMS40MUwxOCA3em00LjI0LTEuNDFMMTEuNjYgMTYuMTcgNy40OCAxMmwtMS40MSAxLjQxTDExLjY2IDE5bDEyLTEyLTEuNDItMS40MXpNLjQxIDEzLjQxTDYgMTlsMS40MS0xLjQxTDEuODMgMTIgLjQxIDEzLjQxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImRvbnV0LWxhcmdlIj48cGF0aCBkPSJNMTEgNS4wOFYyYy01IC41LTkgNC44MS05IDEwczQgOS41IDkgMTB2LTMuMDhjLTMtLjQ4LTYtMy40LTYtNi45MnMzLTYuNDQgNi02Ljkyek0xOC45NyAxMUgyMmMtLjQ3LTUtNC04LjUzLTktOXYzLjA4QzE2IDUuNTEgMTguNTQgOCAxOC45NyAxMXpNMTMgMTguOTJWMjJjNS0uNDcgOC41My00IDktOWgtMy4wM2MtLjQzIDMtMi45NyA1LjQ5LTUuOTcgNS45MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJkb251dC1zbWFsbCI+PHBhdGggZD0iTTExIDkuMTZWMmMtNSAuNS05IDQuNzktOSAxMHM0IDkuNSA5IDEwdi03LjE2Yy0xLS40MS0yLTEuNTItMi0yLjg0czEtMi40MyAyLTIuODR6TTE0Ljg2IDExSDIyYy0uNDgtNC43NS00LTguNTMtOS05djcuMTZjMSAuMyAxLjUyLjk4IDEuODYgMS44NHpNMTMgMTQuODRWMjJjNS0uNDcgOC41Mi00LjI1IDktOWgtNy4xNGMtLjM0Ljg2LS44NiAxLjU0LTEuODYgMS44NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJkcmFmdHMiPjxwYXRoIGQ9Ik0yMS45OSA4YzAtLjcyLS4zNy0xLjM1LS45NC0xLjdMMTIgMSAyLjk1IDYuM0MyLjM4IDYuNjUgMiA3LjI4IDIgOHYxMGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0ybC0uMDEtMTB6TTEyIDEzTDMuNzQgNy44NCAxMiAzbDguMjYgNC44NEwxMiAxM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJlamVjdCI+PHBhdGggZD0iTTUgMTdoMTR2Mkg1em03LTEyTDUuMzMgMTVoMTMuMzR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZXJyb3IiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0xIDE1aC0ydi0yaDJ2MnptMC00aC0yVjdoMnY2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImVycm9yLW91dGxpbmUiPjxwYXRoIGQ9Ik0xMSAxNWgydjJoLTJ6bTAtOGgydjZoLTJ6bS45OS01QzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZXVyby1zeW1ib2wiPjxwYXRoIGQ9Ik0xNSAxOC41Yy0yLjUxIDAtNC42OC0xLjQyLTUuNzYtMy41SDE1di0ySDguNThjLS4wNS0uMzMtLjA4LS42Ni0uMDgtMXMuMDMtLjY3LjA4LTFIMTVWOUg5LjI0QzEwLjMyIDYuOTIgMTIuNSA1LjUgMTUgNS41YzEuNjEgMCAzLjA5LjU5IDQuMjMgMS41N0wyMSA1LjNDMTkuNDEgMy44NyAxNy4zIDMgMTUgM2MtMy45MiAwLTcuMjQgMi41MS04LjQ4IDZIM3YyaDMuMDZjLS4wNC4zMy0uMDYuNjYtLjA2IDEgMCAuMzQuMDIuNjcuMDYgMUgzdjJoMy41MmMxLjI0IDMuNDkgNC41NiA2IDguNDggNiAyLjMxIDAgNC40MS0uODcgNi0yLjNsLTEuNzgtMS43N2MtMS4xMy45OC0yLjYgMS41Ny00LjIyIDEuNTd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZXZlbnQiPjxwYXRoIGQ9Ik0xNyAxMmgtNXY1aDV2LTV6TTE2IDF2Mkg4VjFINnYySDVjLTEuMTEgMC0xLjk5LjktMS45OSAyTDMgMTljMCAxLjEuODkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMmgtMVYxaC0yem0zIDE4SDVWOGgxNHYxMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJldmVudC1zZWF0Ij48cGF0aCBkPSJNNCAxOHYzaDN2LTNoMTB2M2gzdi02SDR6bTE1LThoM3YzaC0zek0yIDEwaDN2M0gyem0xNSAzSDdWNWMwLTEuMS45LTIgMi0yaDZjMS4xIDAgMiAuOSAyIDJ2OHoiPjwvcGF0aD48L2c+CjxnIGlkPSJleGl0LXRvLWFwcCI+PHBhdGggZD0iTTEwLjA5IDE1LjU5TDExLjUgMTdsNS01LTUtNS0xLjQxIDEuNDFMMTIuNjcgMTFIM3YyaDkuNjdsLTIuNTggMi41OXpNMTkgM0g1Yy0xLjExIDAtMiAuOS0yIDJ2NGgyVjVoMTR2MTRINXYtNEgzdjRjMCAxLjEuODkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJleHBhbmQtbGVzcyI+PHBhdGggZD0iTTEyIDhsLTYgNiAxLjQxIDEuNDFMMTIgMTAuODNsNC41OSA0LjU4TDE4IDE0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImV4cGFuZC1tb3JlIj48cGF0aCBkPSJNMTYuNTkgOC41OUwxMiAxMy4xNyA3LjQxIDguNTkgNiAxMGw2IDYgNi02eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImV4cGxvcmUiPjxwYXRoIGQ9Ik0xMiAxMC45Yy0uNjEgMC0xLjEuNDktMS4xIDEuMXMuNDkgMS4xIDEuMSAxLjFjLjYxIDAgMS4xLS40OSAxLjEtMS4xcy0uNDktMS4xLTEuMS0xLjF6TTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTIuMTkgMTIuMTlMNiAxOGwzLjgxLTguMTlMMTggNmwtMy44MSA4LjE5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImV4dGVuc2lvbiI+PHBhdGggZD0iTTIwLjUgMTFIMTlWN2MwLTEuMS0uOS0yLTItMmgtNFYzLjVDMTMgMi4xMiAxMS44OCAxIDEwLjUgMVM4IDIuMTIgOCAzLjVWNUg0Yy0xLjEgMC0xLjk5LjktMS45OSAydjMuOEgzLjVjMS40OSAwIDIuNyAxLjIxIDIuNyAyLjdzLTEuMjEgMi43LTIuNyAyLjdIMlYyMGMwIDEuMS45IDIgMiAyaDMuOHYtMS41YzAtMS40OSAxLjIxLTIuNyAyLjctMi43IDEuNDkgMCAyLjcgMS4yMSAyLjcgMi43VjIySDE3YzEuMSAwIDItLjkgMi0ydi00aDEuNWMxLjM4IDAgMi41LTEuMTIgMi41LTIuNVMyMS44OCAxMSAyMC41IDExeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZhY2UiPjxwYXRoIGQ9Ik05IDExLjc1Yy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNXMuNTYgMS4yNSAxLjI1IDEuMjUgMS4yNS0uNTYgMS4yNS0xLjI1LS41Ni0xLjI1LTEuMjUtMS4yNXptNiAwYy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNXMuNTYgMS4yNSAxLjI1IDEuMjUgMS4yNS0uNTYgMS4yNS0xLjI1LS41Ni0xLjI1LTEuMjUtMS4yNXpNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LTggMC0uMjkuMDItLjU4LjA1LS44NiAyLjM2LTEuMDUgNC4yMy0yLjk4IDUuMjEtNS4zN0MxMS4wNyA4LjMzIDE0LjA1IDEwIDE3LjQyIDEwYy43OCAwIDEuNTMtLjA5IDIuMjUtLjI2LjIxLjcxLjMzIDEuNDcuMzMgMi4yNiAwIDQuNDEtMy41OSA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJmYXZvcml0ZSI+PHBhdGggZD0iTTEyIDIxLjM1bC0xLjQ1LTEuMzJDNS40IDE1LjM2IDIgMTIuMjggMiA4LjUgMiA1LjQyIDQuNDIgMyA3LjUgM2MxLjc0IDAgMy40MS44MSA0LjUgMi4wOUMxMy4wOSAzLjgxIDE0Ljc2IDMgMTYuNSAzIDE5LjU4IDMgMjIgNS40MiAyMiA4LjVjMCAzLjc4LTMuNCA2Ljg2LTguNTUgMTEuNTRMMTIgMjEuMzV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmF2b3JpdGUtYm9yZGVyIj48cGF0aCBkPSJNMTYuNSAzYy0xLjc0IDAtMy40MS44MS00LjUgMi4wOUMxMC45MSAzLjgxIDkuMjQgMyA3LjUgMyA0LjQyIDMgMiA1LjQyIDIgOC41YzAgMy43OCAzLjQgNi44NiA4LjU1IDExLjU0TDEyIDIxLjM1bDEuNDUtMS4zMkMxOC42IDE1LjM2IDIyIDEyLjI4IDIyIDguNSAyMiA1LjQyIDE5LjU4IDMgMTYuNSAzem0tNC40IDE1LjU1bC0uMS4xLS4xLS4xQzcuMTQgMTQuMjQgNCAxMS4zOSA0IDguNSA0IDYuNSA1LjUgNSA3LjUgNWMxLjU0IDAgMy4wNC45OSAzLjU3IDIuMzZoMS44N0MxMy40NiA1Ljk5IDE0Ljk2IDUgMTYuNSA1YzIgMCAzLjUgMS41IDMuNSAzLjUgMCAyLjg5LTMuMTQgNS43NC03LjkgMTAuMDV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmVlZGJhY2siPjxwYXRoIGQ9Ik0yMCAySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAyMmw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTcgMTJoLTJ2LTJoMnYyem0wLTRoLTJWNmgydjR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmlsZS1kb3dubG9hZCI+PHBhdGggZD0iTTE5IDloLTRWM0g5djZINWw3IDcgNy03ek01IDE4djJoMTR2LTJINXoiPjwvcGF0aD48L2c+CjxnIGlkPSJmaWxlLXVwbG9hZCI+PHBhdGggZD0iTTkgMTZoNnYtNmg0bC03LTctNyA3aDR6bS00IDJoMTR2Mkg1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpbHRlci1saXN0Ij48cGF0aCBkPSJNMTAgMThoNHYtMmgtNHYyek0zIDZ2MmgxOFY2SDN6bTMgN2gxMnYtMkg2djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmluZC1pbi1wYWdlIj48cGF0aCBkPSJNMjAgMTkuNTlWOGwtNi02SDZjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNCAyMGMwIDEuMS44OSAyIDEuOTkgMkgxOGMuNDUgMCAuODUtLjE1IDEuMTktLjRsLTQuNDMtNC40M2MtLjguNTItMS43NC44My0yLjc2LjgzLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNWMwIDEuMDItLjMxIDEuOTYtLjgzIDIuNzVMMjAgMTkuNTl6TTkgMTNjMCAxLjY2IDEuMzQgMyAzIDNzMy0xLjM0IDMtMy0xLjM0LTMtMy0zLTMgMS4zNC0zIDN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmluZC1yZXBsYWNlIj48cGF0aCBkPSJNMTEgNmMxLjM4IDAgMi42My41NiAzLjU0IDEuNDZMMTIgMTBoNlY0bC0yLjA1IDIuMDVDMTQuNjggNC43OCAxMi45MyA0IDExIDRjLTMuNTMgMC02LjQzIDIuNjEtNi45MiA2SDYuMWMuNDYtMi4yOCAyLjQ4LTQgNC45LTR6bTUuNjQgOS4xNGMuNjYtLjkgMS4xMi0xLjk3IDEuMjgtMy4xNEgxNS45Yy0uNDYgMi4yOC0yLjQ4IDQtNC45IDQtMS4zOCAwLTIuNjMtLjU2LTMuNTQtMS40NkwxMCAxMkg0djZsMi4wNS0yLjA1QzcuMzIgMTcuMjIgOS4wNyAxOCAxMSAxOGMxLjU1IDAgMi45OC0uNTEgNC4xNC0xLjM2TDIwIDIxLjQ5IDIxLjQ5IDIwbC00Ljg1LTQuODZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmluZ2VycHJpbnQiPjxwYXRoIGQ9Ik0xNy44MSA0LjQ3Yy0uMDggMC0uMTYtLjAyLS4yMy0uMDZDMTUuNjYgMy40MiAxNCAzIDEyLjAxIDNjLTEuOTggMC0zLjg2LjQ3LTUuNTcgMS40MS0uMjQuMTMtLjU0LjA0LS42OC0uMi0uMTMtLjI0LS4wNC0uNTUuMi0uNjhDNy44MiAyLjUyIDkuODYgMiAxMi4wMSAyYzIuMTMgMCAzLjk5LjQ3IDYuMDMgMS41Mi4yNS4xMy4zNC40My4yMS42Ny0uMDkuMTgtLjI2LjI4LS40NC4yOHpNMy41IDkuNzJjLS4xIDAtLjItLjAzLS4yOS0uMDktLjIzLS4xNi0uMjgtLjQ3LS4xMi0uNy45OS0xLjQgMi4yNS0yLjUgMy43NS0zLjI3QzkuOTggNC4wNCAxNCA0LjAzIDE3LjE1IDUuNjVjMS41Ljc3IDIuNzYgMS44NiAzLjc1IDMuMjUuMTYuMjIuMTEuNTQtLjEyLjctLjIzLjE2LS41NC4xMS0uNy0uMTItLjktMS4yNi0yLjA0LTIuMjUtMy4zOS0yLjk0LTIuODctMS40Ny02LjU0LTEuNDctOS40LjAxLTEuMzYuNy0yLjUgMS43LTMuNCAyLjk2LS4wOC4xNC0uMjMuMjEtLjM5LjIxem02LjI1IDEyLjA3Yy0uMTMgMC0uMjYtLjA1LS4zNS0uMTUtLjg3LS44Ny0xLjM0LTEuNDMtMi4wMS0yLjY0LS42OS0xLjIzLTEuMDUtMi43My0xLjA1LTQuMzQgMC0yLjk3IDIuNTQtNS4zOSA1LjY2LTUuMzlzNS42NiAyLjQyIDUuNjYgNS4zOWMwIC4yOC0uMjIuNS0uNS41cy0uNS0uMjItLjUtLjVjMC0yLjQyLTIuMDktNC4zOS00LjY2LTQuMzktMi41NyAwLTQuNjYgMS45Ny00LjY2IDQuMzkgMCAxLjQ0LjMyIDIuNzcuOTMgMy44NS42NCAxLjE1IDEuMDggMS42NCAxLjg1IDIuNDIuMTkuMi4xOS41MSAwIC43MS0uMTEuMS0uMjQuMTUtLjM3LjE1em03LjE3LTEuODVjLTEuMTkgMC0yLjI0LS4zLTMuMS0uODktMS40OS0xLjAxLTIuMzgtMi42NS0yLjM4LTQuMzkgMC0uMjguMjItLjUuNS0uNXMuNS4yMi41LjVjMCAxLjQxLjcyIDIuNzQgMS45NCAzLjU2LjcxLjQ4IDEuNTQuNzEgMi41NC43MS4yNCAwIC42NC0uMDMgMS4wNC0uMS4yNy0uMDUuNTMuMTMuNTguNDEuMDUuMjctLjEzLjUzLS40MS41OC0uNTcuMTEtMS4wNy4xMi0xLjIxLjEyek0xNC45MSAyMmMtLjA0IDAtLjA5LS4wMS0uMTMtLjAyLTEuNTktLjQ0LTIuNjMtMS4wMy0zLjcyLTIuMS0xLjQtMS4zOS0yLjE3LTMuMjQtMi4xNy01LjIyIDAtMS42MiAxLjM4LTIuOTQgMy4wOC0yLjk0IDEuNyAwIDMuMDggMS4zMiAzLjA4IDIuOTQgMCAxLjA3LjkzIDEuOTQgMi4wOCAxLjk0czIuMDgtLjg3IDIuMDgtMS45NGMwLTMuNzctMy4yNS02LjgzLTcuMjUtNi44My0yLjg0IDAtNS40NCAxLjU4LTYuNjEgNC4wMy0uMzkuODEtLjU5IDEuNzYtLjU5IDIuOCAwIC43OC4wNyAyLjAxLjY3IDMuNjEuMS4yNi0uMDMuNTUtLjI5LjY0LS4yNi4xLS41NS0uMDQtLjY0LS4yOS0uNDktMS4zMS0uNzMtMi42MS0uNzMtMy45NiAwLTEuMi4yMy0yLjI5LjY4LTMuMjQgMS4zMy0yLjc5IDQuMjgtNC42IDcuNTEtNC42IDQuNTUgMCA4LjI1IDMuNTEgOC4yNSA3LjgzIDAgMS42Mi0xLjM4IDIuOTQtMy4wOCAyLjk0cy0zLjA4LTEuMzItMy4wOC0yLjk0YzAtMS4wNy0uOTMtMS45NC0yLjA4LTEuOTRzLTIuMDguODctMi4wOCAxLjk0YzAgMS43MS42NiAzLjMxIDEuODcgNC41MS45NS45NCAxLjg2IDEuNDYgMy4yNyAxLjg1LjI3LjA3LjQyLjM1LjM1LjYxLS4wNS4yMy0uMjYuMzgtLjQ3LjM4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZpcnN0LXBhZ2UiPjxwYXRoIGQ9Ik0xOC40MSAxNi41OUwxMy44MiAxMmw0LjU5LTQuNTlMMTcgNmwtNiA2IDYgNnpNNiA2aDJ2MTJINnoiPjwvcGF0aD48L2c+CjxnIGlkPSJmbGFnIj48cGF0aCBkPSJNMTQuNCA2TDE0IDRINXYxN2gydi03aDUuNmwuNCAyaDdWNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJmbGlnaHQtbGFuZCI+PHBhdGggZD0iTTIuNSAxOWgxOXYyaC0xOXptNy4xOC01LjczbDQuMzUgMS4xNiA1LjMxIDEuNDJjLjguMjEgMS42Mi0uMjYgMS44NC0xLjA2LjIxLS44LS4yNi0xLjYyLTEuMDYtMS44NGwtNS4zMS0xLjQyLTIuNzYtOS4wMkwxMC4xMiAydjguMjhMNS4xNSA4Ljk1bC0uOTMtMi4zMi0xLjQ1LS4zOXY1LjE3bDEuNi40MyA1LjMxIDEuNDN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZmxpZ2h0LXRha2VvZmYiPjxwYXRoIGQ9Ik0yLjUgMTloMTl2MmgtMTl6bTE5LjU3LTkuMzZjLS4yMS0uOC0xLjA0LTEuMjgtMS44NC0xLjA2TDE0LjkyIDEwbC02LjktNi40My0xLjkzLjUxIDQuMTQgNy4xNy00Ljk3IDEuMzMtMS45Ny0xLjU0LTEuNDUuMzkgMS44MiAzLjE2Ljc3IDEuMzMgMS42LS40MyA1LjMxLTEuNDIgNC4zNS0xLjE2TDIxIDExLjQ5Yy44MS0uMjMgMS4yOC0xLjA1IDEuMDctMS44NXoiPjwvcGF0aD48L2c+CjxnIGlkPSJmbGlwLXRvLWJhY2siPjxwYXRoIGQ9Ik05IDdIN3YyaDJWN3ptMCA0SDd2Mmgydi0yem0wLThjLTEuMTEgMC0yIC45LTIgMmgyVjN6bTQgMTJoLTJ2Mmgydi0yem02LTEydjJoMmMwLTEuMS0uOS0yLTItMnptLTYgMGgtMnYyaDJWM3pNOSAxN3YtMkg3YzAgMS4xLjg5IDIgMiAyem0xMC00aDJ2LTJoLTJ2MnptMC00aDJWN2gtMnYyem0wIDhjMS4xIDAgMi0uOSAyLTJoLTJ2MnpNNSA3SDN2MTJjMCAxLjEuODkgMiAyIDJoMTJ2LTJINVY3em0xMC0yaDJWM2gtMnYyem0wIDEyaDJ2LTJoLTJ2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJmbGlwLXRvLWZyb250Ij48cGF0aCBkPSJNMyAxM2gydi0ySDN2MnptMCA0aDJ2LTJIM3Yyem0yIDR2LTJIM2MwIDEuMS44OSAyIDIgMnpNMyA5aDJWN0gzdjJ6bTEyIDEyaDJ2LTJoLTJ2MnptNC0xOEg5Yy0xLjExIDAtMiAuOS0yIDJ2MTBjMCAxLjEuODkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxMkg5VjVoMTB2MTB6bS04IDZoMnYtMmgtMnYyem0tNCAwaDJ2LTJIN3YyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZvbGRlciI+PHBhdGggZD0iTTEwIDRINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMmgtOGwtMi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZvbGRlci1vcGVuIj48cGF0aCBkPSJNMjAgNmgtOGwtMi0ySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bTAgMTJINFY4aDE2djEweiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZvbGRlci1zaGFyZWQiPjxwYXRoIGQ9Ik0yMCA2aC04bC0yLTJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptLTUgM2MxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJ6bTQgOGgtOHYtMWMwLTEuMzMgMi42Ny0yIDQtMnM0IC42NyA0IDJ2MXoiPjwvcGF0aD48L2c+CjxnIGlkPSJmb250LWRvd25sb2FkIj48cGF0aCBkPSJNOS45MyAxMy41aDQuMTRMMTIgNy45OHpNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS00LjA1IDE2LjVsLTEuMTQtM0g5LjE3bC0xLjEyIDNINS45Nmw1LjExLTEzaDEuODZsNS4xMSAxM2gtMi4wOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJmb3J3YXJkIj48cGF0aCBkPSJNMTIgOFY0bDggOC04IDh2LTRINFY4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZ1bGxzY3JlZW4iPjxwYXRoIGQ9Ik03IDE0SDV2NWg1di0ySDd2LTN6bS0yLTRoMlY3aDNWNUg1djV6bTEyIDdoLTN2Mmg1di01aC0ydjN6TTE0IDV2MmgzdjNoMlY1aC01eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImZ1bGxzY3JlZW4tZXhpdCI+PHBhdGggZD0iTTUgMTZoM3YzaDJ2LTVINXYyem0zLThINXYyaDVWNUg4djN6bTYgMTFoMnYtM2gzdi0yaC01djV6bTItMTFWNWgtMnY1aDVWOGgtM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJnLXRyYW5zbGF0ZSI+PHBhdGggZD0iTTIwIDVoLTkuMTJMMTAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxM2MwIDEuMS45IDIgMiAyaDdsMSAzaDhjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMnpNNy4xNyAxNC41OWMtMi4yNSAwLTQuMDktMS44My00LjA5LTQuMDlzMS44My00LjA5IDQuMDktNC4wOWMxLjA0IDAgMS45OS4zNyAyLjc0IDEuMDdsLjA3LjA2LTEuMjMgMS4xOC0uMDYtLjA1Yy0uMjktLjI3LS43OC0uNTktMS41Mi0uNTktMS4zMSAwLTIuMzggMS4wOS0yLjM4IDIuNDJzMS4wNyAyLjQyIDIuMzggMi40MmMxLjM3IDAgMS45Ni0uODcgMi4xMi0xLjQ2SDcuMDhWOS45MWgzLjk1bC4wMS4wN2MuMDQuMjEuMDUuNC4wNS42MSAwIDIuMzUtMS42MSA0LTMuOTIgNHptNi4wMy0xLjcxYy4zMy42Ljc0IDEuMTggMS4xOSAxLjdsLS41NC41My0uNjUtMi4yM3ptLjc3LS43NmgtLjk5bC0uMzEtMS4wNGgzLjk5cy0uMzQgMS4zMS0xLjU2IDIuNzRjLS41Mi0uNjItLjg5LTEuMjMtMS4xMy0xLjd6TTIxIDIwYzAgLjU1LS40NSAxLTEgMWgtN2wyLTItLjgxLTIuNzcuOTItLjkyTDE3Ljc5IDE4bC43My0uNzMtMi43MS0yLjY4Yy45LTEuMDMgMS42LTIuMjUgMS45Mi0zLjUxSDE5di0xLjA0aC0zLjY0VjloLTEuMDR2MS4wNGgtMS45NkwxMS4xOCA2SDIwYy41NSAwIDEgLjQ1IDEgMXYxM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJnYXZlbCI+PHBhdGggZD0iTTEgMjFoMTJ2Mkgxek01LjI0NSA4LjA3bDIuODMtMi44MjcgMTQuMTQgMTQuMTQyLTIuODI4IDIuODI4ek0xMi4zMTcgMWw1LjY1NyA1LjY1Ni0yLjgzIDIuODMtNS42NTQtNS42NnpNMy44MjUgOS40ODVsNS42NTcgNS42NTctMi44MjggMi44MjgtNS42NTctNS42NTd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZ2VzdHVyZSI+PHBhdGggZD0iTTQuNTkgNi44OWMuNy0uNzEgMS40LTEuMzUgMS43MS0xLjIyLjUuMiAwIDEuMDMtLjMgMS41Mi0uMjUuNDItMi44NiAzLjg5LTIuODYgNi4zMSAwIDEuMjguNDggMi4zNCAxLjM0IDIuOTguNzUuNTYgMS43NC43MyAyLjY0LjQ2IDEuMDctLjMxIDEuOTUtMS40IDMuMDYtMi43NyAxLjIxLTEuNDkgMi44My0zLjQ0IDQuMDgtMy40NCAxLjYzIDAgMS42NSAxLjAxIDEuNzYgMS43OS0zLjc4LjY0LTUuMzggMy42Ny01LjM4IDUuMzcgMCAxLjcgMS40NCAzLjA5IDMuMjEgMy4wOSAxLjYzIDAgNC4yOS0xLjMzIDQuNjktNi4xSDIxdi0yLjVoLTIuNDdjLS4xNS0xLjY1LTEuMDktNC4yLTQuMDMtNC4yLTIuMjUgMC00LjE4IDEuOTEtNC45NCAyLjg0LS41OC43My0yLjA2IDIuNDgtMi4yOSAyLjcyLS4yNS4zLS42OC44NC0xLjExLjg0LS40NSAwLS43Mi0uODMtLjM2LTEuOTIuMzUtMS4wOSAxLjQtMi44NiAxLjg1LTMuNTIuNzgtMS4xNCAxLjMtMS45MiAxLjMtMy4yOEM4Ljk1IDMuNjkgNy4zMSAzIDYuNDQgMyA1LjEyIDMgMy45NyA0IDMuNzIgNC4yNWMtLjM2LjM2LS42Ni42Ni0uODguOTNsMS43NSAxLjcxem05LjI5IDExLjY2Yy0uMzEgMC0uNzQtLjI2LS43NC0uNzIgMC0uNi43My0yLjIgMi44Ny0yLjc2LS4zIDIuNjktMS40MyAzLjQ4LTIuMTMgMy40OHoiPjwvcGF0aD48L2c+CjxnIGlkPSJnZXQtYXBwIj48cGF0aCBkPSJNMTkgOWgtNFYzSDl2Nkg1bDcgNyA3LTd6TTUgMTh2MmgxNHYtMkg1eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImdpZiI+PHBhdGggZD0iTTExLjUgOUgxM3Y2aC0xLjV6TTkgOUg2Yy0uNiAwLTEgLjUtMSAxdjRjMCAuNS40IDEgMSAxaDNjLjYgMCAxLS41IDEtMXYtMkg4LjV2MS41aC0ydi0zSDEwVjEwYzAtLjUtLjQtMS0xLTF6bTEwIDEuNVY5aC00LjV2NkgxNnYtMmgydi0xLjVoLTJ2LTF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iZ3JhZGUiPjxwYXRoIGQ9Ik0xMiAxNy4yN0wxOC4xOCAyMWwtMS42NC03LjAzTDIyIDkuMjRsLTcuMTktLjYxTDEyIDIgOS4xOSA4LjYzIDIgOS4yNGw1LjQ2IDQuNzNMNS44MiAyMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJncm91cC13b3JrIj48cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnpNOCAxNy41Yy0xLjM4IDAtMi41LTEuMTItMi41LTIuNXMxLjEyLTIuNSAyLjUtMi41IDIuNSAxLjEyIDIuNSAyLjUtMS4xMiAyLjUtMi41IDIuNXpNOS41IDhjMC0xLjM4IDEuMTItMi41IDIuNS0yLjVzMi41IDEuMTIgMi41IDIuNS0xLjEyIDIuNS0yLjUgMi41UzkuNSA5LjM4IDkuNSA4em02LjUgOS41Yy0xLjM4IDAtMi41LTEuMTItMi41LTIuNXMxLjEyLTIuNSAyLjUtMi41IDIuNSAxLjEyIDIuNSAyLjUtMS4xMiAyLjUtMi41IDIuNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJoZWxwIj48cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMSAxN2gtMnYtMmgydjJ6bTIuMDctNy43NWwtLjkuOTJDMTMuNDUgMTIuOSAxMyAxMy41IDEzIDE1aC0ydi0uNWMwLTEuMS40NS0yLjEgMS4xNy0yLjgzbDEuMjQtMS4yNmMuMzctLjM2LjU5LS44Ni41OS0xLjQxIDAtMS4xLS45LTItMi0ycy0yIC45LTIgMkg4YzAtMi4yMSAxLjc5LTQgNC00czQgMS43OSA0IDRjMCAuODgtLjM2IDEuNjgtLjkzIDIuMjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaGVscC1vdXRsaW5lIj48cGF0aCBkPSJNMTEgMThoMnYtMmgtMnYyem0xLTE2QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptMC0xNGMtMi4yMSAwLTQgMS43OS00IDRoMmMwLTEuMS45LTIgMi0yczIgLjkgMiAyYzAgMi0zIDEuNzUtMyA1aDJjMC0yLjI1IDMtMi41IDMtNSAwLTIuMjEtMS43OS00LTQtNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJoaWdobGlnaHQtb2ZmIj48cGF0aCBkPSJNMTQuNTkgOEwxMiAxMC41OSA5LjQxIDggOCA5LjQxIDEwLjU5IDEyIDggMTQuNTkgOS40MSAxNiAxMiAxMy40MSAxNC41OSAxNiAxNiAxNC41OSAxMy40MSAxMiAxNiA5LjQxIDE0LjU5IDh6TTEyIDJDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgMTAgMTAgMTAtNC40NyAxMC0xMFMxNy41MyAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imhpc3RvcnkiPjxwYXRoIGQ9Ik0xMyAzYy00Ljk3IDAtOSA0LjAzLTkgOUgxbDMuODkgMy44OS4wNy4xNEw5IDEySDZjMC0zLjg3IDMuMTMtNyA3LTdzNyAzLjEzIDcgNy0zLjEzIDctNyA3Yy0xLjkzIDAtMy42OC0uNzktNC45NC0yLjA2bC0xLjQyIDEuNDJDOC4yNyAxOS45OSAxMC41MSAyMSAxMyAyMWM0Ljk3IDAgOS00LjAzIDktOXMtNC4wMy05LTktOXptLTEgNXY1bDQuMjggMi41NC43Mi0xLjIxLTMuNS0yLjA4VjhIMTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaG9tZSI+PHBhdGggZD0iTTEwIDIwdi02aDR2Nmg1di04aDNMMTIgMyAyIDEyaDN2OHoiPjwvcGF0aD48L2c+CjxnIGlkPSJob3VyZ2xhc3MtZW1wdHkiPjxwYXRoIGQ9Ik02IDJ2NmguMDFMNiA4LjAxIDEwIDEybC00IDQgLjAxLjAxSDZWMjJoMTJ2LTUuOTloLS4wMUwxOCAxNmwtNC00IDQtMy45OS0uMDEtLjAxSDE4VjJINnptMTAgMTQuNVYyMEg4di0zLjVsNC00IDQgNHptLTQtNWwtNC00VjRoOHYzLjVsLTQgNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJob3VyZ2xhc3MtZnVsbCI+PHBhdGggZD0iTTYgMnY2aC4wMUw2IDguMDEgMTAgMTJsLTQgNCAuMDEuMDFINlYyMmgxMnYtNS45OWgtLjAxTDE4IDE2bC00LTQgNC0zLjk5LS4wMS0uMDFIMThWMkg2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imh0dHAiPjxwYXRoIGQ9Ik00LjUgMTFoLTJWOUgxdjZoMS41di0yLjVoMlYxNUg2VjlINC41djJ6bTIuNS0uNWgxLjVWMTVIMTB2LTQuNWgxLjVWOUg3djEuNXptNS41IDBIMTRWMTVoMS41di00LjVIMTdWOWgtNC41djEuNXptOS0xLjVIMTh2NmgxLjV2LTJoMmMuOCAwIDEuNS0uNyAxLjUtMS41di0xYzAtLjgtLjctMS41LTEuNS0xLjV6bTAgMi41aC0ydi0xaDJ2MXoiPjwvcGF0aD48L2c+CjxnIGlkPSJodHRwcyI+PHBhdGggZD0iTTE4IDhoLTFWNmMwLTIuNzYtMi4yNC01LTUtNVM3IDMuMjQgNyA2djJINmMtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlYxMGMwLTEuMS0uOS0yLTItMnptLTYgOWMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6bTMuMS05SDguOVY2YzAtMS43MSAxLjM5LTMuMSAzLjEtMy4xIDEuNzEgMCAzLjEgMS4zOSAzLjEgMy4xdjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaW1wb3J0YW50LWRldmljZXMiPjxwYXRoIGQ9Ik0yMyAxMS4wMUwxOCAxMWMtLjU1IDAtMSAuNDUtMSAxdjljMCAuNTUuNDUgMSAxIDFoNWMuNTUgMCAxLS40NSAxLTF2LTljMC0uNTUtLjQ1LS45OS0xLS45OXpNMjMgMjBoLTV2LTdoNXY3ek0yMCAySDJDLjg5IDIgMCAyLjg5IDAgNHYxMmMwIDEuMS44OSAyIDIgMmg3djJIN3YyaDh2LTJoLTJ2LTJoMnYtMkgyVjRoMTh2NWgyVjRjMC0xLjExLS45LTItMi0yem0tOC4wMyA3TDExIDZsLS45NyAzSDdsMi40NyAxLjc2LS45NCAyLjkxIDIuNDctMS44IDIuNDcgMS44LS45NC0yLjkxTDE1IDloLTMuMDN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaW5ib3giPjxwYXRoIGQ9Ik0xOSAzSDQuOTljLTEuMTEgMC0xLjk4Ljg5LTEuOTggMkwzIDE5YzAgMS4xLjg4IDIgMS45OSAySDE5YzEuMSAwIDItLjkgMi0yVjVjMC0xLjExLS45LTItMi0yem0wIDEyaC00YzAgMS42Ni0xLjM1IDMtMyAzcy0zLTEuMzQtMy0zSDQuOTlWNUgxOXYxMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJpbmRldGVybWluYXRlLWNoZWNrLWJveCI+PHBhdGggZD0iTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tMiAxMEg3di0yaDEwdjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaW5mbyI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTEgMTVoLTJ2LTZoMnY2em0wLThoLTJWN2gydjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iaW5mby1vdXRsaW5lIj48cGF0aCBkPSJNMTEgMTdoMnYtNmgtMnY2em0xLTE1QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHpNMTEgOWgyVjdoLTJ2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJpbnB1dCI+PHBhdGggZD0iTTIxIDMuMDFIM2MtMS4xIDAtMiAuOS0yIDJWOWgyVjQuOTloMTh2MTQuMDNIM1YxNUgxdjQuMDFjMCAxLjEuOSAxLjk4IDIgMS45OGgxOGMxLjEgMCAyLS44OCAyLTEuOTh2LTE0YzAtMS4xMS0uOS0yLTItMnpNMTEgMTZsNC00LTQtNHYzSDF2MmgxMHYzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImludmVydC1jb2xvcnMiPjxwYXRoIGQ9Ik0xNy42NiA3LjkzTDEyIDIuMjcgNi4zNCA3LjkzYy0zLjEyIDMuMTItMy4xMiA4LjE5IDAgMTEuMzFDNy45IDIwLjggOS45NSAyMS41OCAxMiAyMS41OGMyLjA1IDAgNC4xLS43OCA1LjY2LTIuMzQgMy4xMi0zLjEyIDMuMTItOC4xOSAwLTExLjMxek0xMiAxOS41OWMtMS42IDAtMy4xMS0uNjItNC4yNC0xLjc2QzYuNjIgMTYuNjkgNiAxNS4xOSA2IDEzLjU5cy42Mi0zLjExIDEuNzYtNC4yNEwxMiA1LjF2MTQuNDl6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibGFiZWwiPjxwYXRoIGQ9Ik0xNy42MyA1Ljg0QzE3LjI3IDUuMzMgMTYuNjcgNSAxNiA1TDUgNS4wMUMzLjkgNS4wMSAzIDUuOSAzIDd2MTBjMCAxLjEuOSAxLjk5IDIgMS45OUwxNiAxOWMuNjcgMCAxLjI3LS4zMyAxLjYzLS44NEwyMiAxMmwtNC4zNy02LjE2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImxhYmVsLW91dGxpbmUiPjxwYXRoIGQ9Ik0xNy42MyA1Ljg0QzE3LjI3IDUuMzMgMTYuNjcgNSAxNiA1TDUgNS4wMUMzLjkgNS4wMSAzIDUuOSAzIDd2MTBjMCAxLjEuOSAxLjk5IDIgMS45OUwxNiAxOWMuNjcgMCAxLjI3LS4zMyAxLjYzLS44NEwyMiAxMmwtNC4zNy02LjE2ek0xNiAxN0g1VjdoMTFsMy41NSA1TDE2IDE3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imxhbmd1YWdlIj48cGF0aCBkPSJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnptNi45MyA2aC0yLjk1Yy0uMzItMS4yNS0uNzgtMi40NS0xLjM4LTMuNTYgMS44NC42MyAzLjM3IDEuOTEgNC4zMyAzLjU2ek0xMiA0LjA0Yy44MyAxLjIgMS40OCAyLjUzIDEuOTEgMy45NmgtMy44MmMuNDMtMS40MyAxLjA4LTIuNzYgMS45MS0zLjk2ek00LjI2IDE0QzQuMSAxMy4zNiA0IDEyLjY5IDQgMTJzLjEtMS4zNi4yNi0yaDMuMzhjLS4wOC42Ni0uMTQgMS4zMi0uMTQgMiAwIC42OC4wNiAxLjM0LjE0IDJINC4yNnptLjgyIDJoMi45NWMuMzIgMS4yNS43OCAyLjQ1IDEuMzggMy41Ni0xLjg0LS42My0zLjM3LTEuOS00LjMzLTMuNTZ6bTIuOTUtOEg1LjA4Yy45Ni0xLjY2IDIuNDktMi45MyA0LjMzLTMuNTZDOC44MSA1LjU1IDguMzUgNi43NSA4LjAzIDh6TTEyIDE5Ljk2Yy0uODMtMS4yLTEuNDgtMi41My0xLjkxLTMuOTZoMy44MmMtLjQzIDEuNDMtMS4wOCAyLjc2LTEuOTEgMy45NnpNMTQuMzQgMTRIOS42NmMtLjA5LS42Ni0uMTYtMS4zMi0uMTYtMiAwLS42OC4wNy0xLjM1LjE2LTJoNC42OGMuMDkuNjUuMTYgMS4zMi4xNiAyIDAgLjY4LS4wNyAxLjM0LS4xNiAyem0uMjUgNS41NmMuNi0xLjExIDEuMDYtMi4zMSAxLjM4LTMuNTZoMi45NWMtLjk2IDEuNjUtMi40OSAyLjkzLTQuMzMgMy41NnpNMTYuMzYgMTRjLjA4LS42Ni4xNC0xLjMyLjE0LTIgMC0uNjgtLjA2LTEuMzQtLjE0LTJoMy4zOGMuMTYuNjQuMjYgMS4zMS4yNiAycy0uMSAxLjM2LS4yNiAyaC0zLjM4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9Imxhc3QtcGFnZSI+PHBhdGggZD0iTTUuNTkgNy40MUwxMC4xOCAxMmwtNC41OSA0LjU5TDcgMThsNi02LTYtNnpNMTYgNmgydjEyaC0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImxhdW5jaCI+PHBhdGggZD0iTTE5IDE5SDVWNWg3VjNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi03aC0ydjd6TTE0IDN2MmgzLjU5bC05LjgzIDkuODMgMS40MSAxLjQxTDE5IDYuNDFWMTBoMlYzaC03eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImxpZ2h0YnVsYi1vdXRsaW5lIj48cGF0aCBkPSJNOSAyMWMwIC41NS40NSAxIDEgMWg0Yy41NSAwIDEtLjQ1IDEtMXYtMUg5djF6bTMtMTlDOC4xNCAyIDUgNS4xNCA1IDljMCAyLjM4IDEuMTkgNC40NyAzIDUuNzRWMTdjMCAuNTUuNDUgMSAxIDFoNmMuNTUgMCAxLS40NSAxLTF2LTIuMjZjMS44MS0xLjI3IDMtMy4zNiAzLTUuNzQgMC0zLjg2LTMuMTQtNy03LTd6bTIuODUgMTEuMWwtLjg1LjZWMTZoLTR2LTIuM2wtLjg1LS42QzcuOCAxMi4xNiA3IDEwLjYzIDcgOWMwLTIuNzYgMi4yNC01IDUtNXM1IDIuMjQgNSA1YzAgMS42My0uOCAzLjE2LTIuMTUgNC4xeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImxpbmUtc3R5bGUiPjxwYXRoIGQ9Ik0zIDE2aDV2LTJIM3Yyem02LjUgMGg1di0yaC01djJ6bTYuNSAwaDV2LTJoLTV2MnpNMyAyMGgydi0ySDN2MnptNCAwaDJ2LTJIN3Yyem00IDBoMnYtMmgtMnYyem00IDBoMnYtMmgtMnYyem00IDBoMnYtMmgtMnYyek0zIDEyaDh2LTJIM3Yyem0xMCAwaDh2LTJoLTh2MnpNMyA0djRoMThWNEgzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImxpbmUtd2VpZ2h0Ij48cGF0aCBkPSJNMyAxN2gxOHYtMkgzdjJ6bTAgM2gxOHYtMUgzdjF6bTAtN2gxOHYtM0gzdjN6bTAtOXY0aDE4VjRIM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJsaW5rIj48cGF0aCBkPSJNMy45IDEyYzAtMS43MSAxLjM5LTMuMSAzLjEtMy4xaDRWN0g3Yy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1aDR2LTEuOUg3Yy0xLjcxIDAtMy4xLTEuMzktMy4xLTMuMXpNOCAxM2g4di0ySDh2MnptOS02aC00djEuOWg0YzEuNzEgMCAzLjEgMS4zOSAzLjEgMy4xcy0xLjM5IDMuMS0zLjEgMy4xaC00VjE3aDRjMi43NiAwIDUtMi4yNCA1LTVzLTIuMjQtNS01LTV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibGlzdCI+PHBhdGggZD0iTTMgMTNoMnYtMkgzdjJ6bTAgNGgydi0ySDN2MnptMC04aDJWN0gzdjJ6bTQgNGgxNHYtMkg3djJ6bTAgNGgxNHYtMkg3djJ6TTcgN3YyaDE0VjdIN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJsb2NrIj48cGF0aCBkPSJNMTggOGgtMVY2YzAtMi43Ni0yLjI0LTUtNS01UzcgMy4yNCA3IDZ2Mkg2Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjEwYzAtMS4xLS45LTItMi0yem0tNiA5Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnptMy4xLTlIOC45VjZjMC0xLjcxIDEuMzktMy4xIDMuMS0zLjEgMS43MSAwIDMuMSAxLjM5IDMuMSAzLjF2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJsb2NrLW9wZW4iPjxwYXRoIGQ9Ik0xMiAxN2MxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTYtOWgtMVY2YzAtMi43Ni0yLjI0LTUtNS01UzcgMy4yNCA3IDZoMS45YzAtMS43MSAxLjM5LTMuMSAzLjEtMy4xIDEuNzEgMCAzLjEgMS4zOSAzLjEgMy4xdjJINmMtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlYxMGMwLTEuMS0uOS0yLTItMnptMCAxMkg2VjEwaDEydjEweiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImxvY2stb3V0bGluZSI+PHBhdGggZD0iTTEyIDE3YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptNi05aC0xVjZjMC0yLjc2LTIuMjQtNS01LTVTNyAzLjI0IDcgNnYySDZjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWMTBjMC0xLjEtLjktMi0yLTJ6TTguOSA2YzAtMS43MSAxLjM5LTMuMSAzLjEtMy4xczMuMSAxLjM5IDMuMSAzLjF2Mkg4LjlWNnpNMTggMjBINlYxMGgxMnYxMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJsb3ctcHJpb3JpdHkiPjxwYXRoIGQ9Ik0xNCA1aDh2MmgtOHptMCA1LjVoOHYyaC04em0wIDUuNWg4djJoLTh6TTIgMTEuNUMyIDE1LjA4IDQuOTIgMTggOC41IDE4SDl2MmwzLTMtMy0zdjJoLS41QzYuMDIgMTYgNCAxMy45OCA0IDExLjVTNi4wMiA3IDguNSA3SDEyVjVIOC41QzQuOTIgNSAyIDcuOTIgMiAxMS41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImxveWFsdHkiPjxwYXRoIGQ9Ik0yMS40MSAxMS41OGwtOS05QzEyLjA1IDIuMjIgMTEuNTUgMiAxMSAySDRjLTEuMSAwLTIgLjktMiAydjdjMCAuNTUuMjIgMS4wNS41OSAxLjQybDkgOWMuMzYuMzYuODYuNTggMS40MS41OC41NSAwIDEuMDUtLjIyIDEuNDEtLjU5bDctN2MuMzctLjM2LjU5LS44Ni41OS0xLjQxIDAtLjU1LS4yMy0xLjA2LS41OS0xLjQyek01LjUgN0M0LjY3IDcgNCA2LjMzIDQgNS41UzQuNjcgNCA1LjUgNCA3IDQuNjcgNyA1LjUgNi4zMyA3IDUuNSA3em0xMS43NyA4LjI3TDEzIDE5LjU0bC00LjI3LTQuMjdDOC4yOCAxNC44MSA4IDE0LjE5IDggMTMuNWMwLTEuMzggMS4xMi0yLjUgMi41LTIuNS42OSAwIDEuMzIuMjggMS43Ny43NGwuNzMuNzIuNzMtLjczYy40NS0uNDUgMS4wOC0uNzMgMS43Ny0uNzMgMS4zOCAwIDIuNSAxLjEyIDIuNSAyLjUgMCAuNjktLjI4IDEuMzItLjczIDEuNzd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibWFpbCI+PHBhdGggZD0iTTIwIDRINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCA0bC04IDUtOC01VjZsOCA1IDgtNXYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im1hcmt1bnJlYWQiPjxwYXRoIGQ9Ik0yMCA0SDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgNGwtOCA1LTgtNVY2bDggNSA4LTV2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJtYXJrdW5yZWFkLW1haWxib3giPjxwYXRoIGQ9Ik0yMCA2SDEwdjZIOFY0aDZWMEg2djZINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im1lbnUiPjxwYXRoIGQ9Ik0zIDE4aDE4di0ySDN2MnptMC01aDE4di0ySDN2MnptMC03djJoMThWNkgzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im1vcmUtaG9yaXoiPjxwYXRoIGQ9Ik02IDEwYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMTIgMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bS02IDBjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im1vcmUtdmVydCI+PHBhdGggZD0iTTEyIDhjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem0wIDJjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0wIDZjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9Im1vdG9yY3ljbGUiPjxwYXRoIGQ9Ik0xOS40NCA5LjAzTDE1LjQxIDVIMTF2MmgzLjU5bDIgMkg1Yy0yLjggMC01IDIuMi01IDVzMi4yIDUgNSA1YzIuNDYgMCA0LjQ1LTEuNjkgNC45LTRoMS42NWwyLjc3LTIuNzdjLS4yMS41NC0uMzIgMS4xNC0uMzIgMS43NyAwIDIuOCAyLjIgNSA1IDVzNS0yLjIgNS01YzAtMi42NS0xLjk3LTQuNzctNC41Ni00Ljk3ek03LjgyIDE1QzcuNCAxNi4xNSA2LjI4IDE3IDUgMTdjLTEuNjMgMC0zLTEuMzctMy0zczEuMzctMyAzLTNjMS4yOCAwIDIuNC44NSAyLjgyIDJINXYyaDIuODJ6TTE5IDE3Yy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zIDMgMS4zNCAzIDMtMS4zNCAzLTMgM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJtb3ZlLXRvLWluYm94Ij48cGF0aCBkPSJNMTkgM0g0Ljk5Yy0xLjExIDAtMS45OC45LTEuOTggMkwzIDE5YzAgMS4xLjg4IDIgMS45OSAySDE5YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTJoLTRjMCAxLjY2LTEuMzUgMy0zIDNzLTMtMS4zNC0zLTNINC45OVY1SDE5djEwem0tMy01aC0yVjdoLTR2M0g4bDQgNCA0LTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ibmV4dC13ZWVrIj48cGF0aCBkPSJNMjAgN2gtNFY1YzAtLjU1LS4yMi0xLjA1LS41OS0xLjQxQzE1LjA1IDMuMjIgMTQuNTUgMyAxNCAzaC00Yy0xLjEgMC0yIC45LTIgMnYySDRjLTEuMSAwLTIgLjktMiAydjExYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOWMwLTEuMS0uOS0yLTItMnpNMTAgNWg0djJoLTRWNXptMSAxMy41bC0xLTEgMy0zLTMtMyAxLTEgNCA0LTQgNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJub3RlLWFkZCI+PHBhdGggZD0iTTE0IDJINmMtMS4xIDAtMS45OS45LTEuOTkgMkw0IDIwYzAgMS4xLjg5IDIgMS45OSAySDE4YzEuMSAwIDItLjkgMi0yVjhsLTYtNnptMiAxNGgtM3YzaC0ydi0zSDh2LTJoM3YtM2gydjNoM3Yyem0tMy03VjMuNUwxOC41IDlIMTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ib2ZmbGluZS1waW4iPjxwYXRoIGQ9Ik0xMiAyQzYuNSAyIDIgNi41IDIgMTJzNC41IDEwIDEwIDEwIDEwLTQuNSAxMC0xMFMxNy41IDIgMTIgMnptNSAxNkg3di0yaDEwdjJ6bS02LjctNEw3IDEwLjdsMS40LTEuNCAxLjkgMS45IDUuMy01LjNMMTcgNy4zIDEwLjMgMTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ib3BhY2l0eSI+PHBhdGggZD0iTTE3LjY2IDhMMTIgMi4zNSA2LjM0IDhDNC43OCA5LjU2IDQgMTEuNjQgNCAxMy42NHMuNzggNC4xMSAyLjM0IDUuNjcgMy42MSAyLjM1IDUuNjYgMi4zNSA0LjEtLjc5IDUuNjYtMi4zNVMyMCAxNS42NCAyMCAxMy42NCAxOS4yMiA5LjU2IDE3LjY2IDh6TTYgMTRjLjAxLTIgLjYyLTMuMjcgMS43Ni00LjRMMTIgNS4yN2w0LjI0IDQuMzhDMTcuMzggMTAuNzcgMTcuOTkgMTIgMTggMTRINnoiPjwvcGF0aD48L2c+CjxnIGlkPSJvcGVuLWluLWJyb3dzZXIiPjxwYXRoIGQ9Ik0xOSA0SDVjLTEuMTEgMC0yIC45LTIgMnYxMmMwIDEuMS44OSAyIDIgMmg0di0ySDVWOGgxNHYxMGgtNHYyaDRjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uODktMi0yLTJ6bS03IDZsLTQgNGgzdjZoMnYtNmgzbC00LTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ib3Blbi1pbi1uZXciPjxwYXRoIGQ9Ik0xOSAxOUg1VjVoN1YzSDVjLTEuMTEgMC0yIC45LTIgMnYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtN2gtMnY3ek0xNCAzdjJoMy41OWwtOS44MyA5LjgzIDEuNDEgMS40MUwxOSA2LjQxVjEwaDJWM2gtN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJvcGVuLXdpdGgiPjxwYXRoIGQ9Ik0xMCA5aDRWNmgzbC01LTUtNSA1aDN2M3ptLTEgMUg2VjdsLTUgNSA1IDV2LTNoM3YtNHptMTQgMmwtNS01djNoLTN2NGgzdjNsNS01em0tOSAzaC00djNIN2w1IDUgNS01aC0zdi0zeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBhZ2V2aWV3Ij48cGF0aCBkPSJNMTEuNSA5QzEwLjEyIDkgOSAxMC4xMiA5IDExLjVzMS4xMiAyLjUgMi41IDIuNSAyLjUtMS4xMiAyLjUtMi41UzEyLjg4IDkgMTEuNSA5ek0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptLTMuMjEgMTQuMjFsLTIuOTEtMi45MWMtLjY5LjQ0LTEuNTEuNy0yLjM5LjdDOS4wMSAxNiA3IDEzLjk5IDcgMTEuNVM5LjAxIDcgMTEuNSA3IDE2IDkuMDEgMTYgMTEuNWMwIC44OC0uMjYgMS42OS0uNyAyLjM5bDIuOTEgMi45LTEuNDIgMS40MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJwYW4tdG9vbCI+PHBhdGggZD0iTTIzIDUuNVYyMGMwIDIuMi0xLjggNC00IDRoLTcuM2MtMS4wOCAwLTIuMS0uNDMtMi44NS0xLjE5TDEgMTQuODNzMS4yNi0xLjIzIDEuMy0xLjI1Yy4yMi0uMTkuNDktLjI5Ljc5LS4yOS4yMiAwIC40Mi4wNi42LjE2LjA0LjAxIDQuMzEgMi40NiA0LjMxIDIuNDZWNGMwLS44My42Ny0xLjUgMS41LTEuNVMxMSAzLjE3IDExIDR2N2gxVjEuNWMwLS44My42Ny0xLjUgMS41LTEuNVMxNSAuNjcgMTUgMS41VjExaDFWMi41YzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41VjExaDFWNS41YzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBheW1lbnQiPjxwYXRoIGQ9Ik0yMCA0SDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE4YzAgMS4xMS44OSAyIDIgMmgxNmMxLjExIDAgMi0uODkgMi0yVjZjMC0xLjExLS44OS0yLTItMnptMCAxNEg0di02aDE2djZ6bTAtMTBINFY2aDE2djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGVybS1jYW1lcmEtbWljIj48cGF0aCBkPSJNMjAgNWgtMy4xN0wxNSAzSDlMNy4xNyA1SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoN3YtMi4wOWMtMi44My0uNDgtNS0yLjk0LTUtNS45MWgyYzAgMi4yMSAxLjc5IDQgNCA0czQtMS43OSA0LTRoMmMwIDIuOTctMi4xNyA1LjQzLTUgNS45MVYyMWg3YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6bS02IDhjMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yVjljMC0xLjEuOS0yIDItMnMyIC45IDIgMnY0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBlcm0tY29udGFjdC1jYWxlbmRhciI+PHBhdGggZD0iTTE5IDNoLTFWMWgtMnYySDhWMUg2djJINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDNjMS42NiAwIDMgMS4zNCAzIDNzLTEuMzQgMy0zIDMtMy0xLjM0LTMtMyAxLjM0LTMgMy0zem02IDEySDZ2LTFjMC0yIDQtMy4xIDYtMy4xczYgMS4xIDYgMy4xdjF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGVybS1kYXRhLXNldHRpbmciPjxwYXRoIGQ9Ik0xOC45OSAxMS41Yy4zNCAwIC42Ny4wMyAxIC4wN0wyMCAwIDAgMjBoMTEuNTZjLS4wNC0uMzMtLjA3LS42Ni0uMDctMSAwLTQuMTQgMy4zNi03LjUgNy41LTcuNXptMy43MSA3Ljk5Yy4wMi0uMTYuMDQtLjMyLjA0LS40OSAwLS4xNy0uMDEtLjMzLS4wNC0uNDlsMS4wNi0uODNjLjA5LS4wOC4xMi0uMjEuMDYtLjMybC0xLTEuNzNjLS4wNi0uMTEtLjE5LS4xNS0uMzEtLjExbC0xLjI0LjVjLS4yNi0uMi0uNTQtLjM3LS44NS0uNDlsLS4xOS0xLjMyYy0uMDEtLjEyLS4xMi0uMjEtLjI0LS4yMWgtMmMtLjEyIDAtLjIzLjA5LS4yNS4yMWwtLjE5IDEuMzJjLS4zLjEzLS41OS4yOS0uODUuNDlsLTEuMjQtLjVjLS4xMS0uMDQtLjI0IDAtLjMxLjExbC0xIDEuNzNjLS4wNi4xMS0uMDQuMjQuMDYuMzJsMS4wNi44M2MtLjAyLjE2LS4wMy4zMi0uMDMuNDkgMCAuMTcuMDEuMzMuMDMuNDlsLTEuMDYuODNjLS4wOS4wOC0uMTIuMjEtLjA2LjMybDEgMS43M2MuMDYuMTEuMTkuMTUuMzEuMTFsMS4yNC0uNWMuMjYuMi41NC4zNy44NS40OWwuMTkgMS4zMmMuMDIuMTIuMTIuMjEuMjUuMjFoMmMuMTIgMCAuMjMtLjA5LjI1LS4yMWwuMTktMS4zMmMuMy0uMTMuNTktLjI5Ljg0LS40OWwxLjI1LjVjLjExLjA0LjI0IDAgLjMxLS4xMWwxLTEuNzNjLjA2LS4xMS4wMy0uMjQtLjA2LS4zMmwtMS4wNy0uODN6bS0zLjcxIDEuMDFjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBlcm0tZGV2aWNlLWluZm9ybWF0aW9uIj48cGF0aCBkPSJNMTMgN2gtMnYyaDJWN3ptMCA0aC0ydjZoMnYtNnptNC05Ljk5TDcgMWMtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNyAxOUg3VjVoMTB2MTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGVybS1pZGVudGl0eSI+PHBhdGggZD0iTTEyIDUuOWMxLjE2IDAgMi4xLjk0IDIuMSAyLjFzLS45NCAyLjEtMi4xIDIuMVM5LjkgOS4xNiA5LjkgOHMuOTQtMi4xIDIuMS0yLjFtMCA5YzIuOTcgMCA2LjEgMS40NiA2LjEgMi4xdjEuMUg1LjlWMTdjMC0uNjQgMy4xMy0yLjEgNi4xLTIuMU0xMiA0QzkuNzkgNCA4IDUuNzkgOCA4czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0wIDljLTIuNjcgMC04IDEuMzQtOCA0djNoMTZ2LTNjMC0yLjY2LTUuMzMtNC04LTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGVybS1tZWRpYSI+PHBhdGggZD0iTTIgNkgwdjVoLjAxTDAgMjBjMCAxLjEuOSAyIDIgMmgxOHYtMkgyVjZ6bTIwLTJoLThsLTItMkg2Yy0xLjEgMC0xLjk5LjktMS45OSAyTDQgMTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yek03IDE1bDQuNS02IDMuNSA0LjUxIDIuNS0zLjAxTDIxIDE1SDd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGVybS1waG9uZS1tc2ciPjxwYXRoIGQ9Ik0yMCAxNS41Yy0xLjI1IDAtMi40NS0uMi0zLjU3LS41Ny0uMzUtLjExLS43NC0uMDMtMS4wMi4yNGwtMi4yIDIuMmMtMi44My0xLjQ0LTUuMTUtMy43NS02LjU5LTYuNThsMi4yLTIuMjFjLjI4LS4yNy4zNi0uNjYuMjUtMS4wMUM4LjcgNi40NSA4LjUgNS4yNSA4LjUgNGMwLS41NS0uNDUtMS0xLTFINGMtLjU1IDAtMSAuNDUtMSAxIDAgOS4zOSA3LjYxIDE3IDE3IDE3IC41NSAwIDEtLjQ1IDEtMXYtMy41YzAtLjU1LS40NS0xLTEtMXpNMTIgM3YxMGwzLTNoNlYzaC05eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBlcm0tc2Nhbi13aWZpIj48cGF0aCBkPSJNMTIgM0M2Ljk1IDMgMy4xNSA0Ljg1IDAgNy4yM0wxMiAyMiAyNCA3LjI1QzIwLjg1IDQuODcgMTcuMDUgMyAxMiAzem0xIDEzaC0ydi02aDJ2NnptLTItOFY2aDJ2MmgtMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJwZXRzIj48Y2lyY2xlIGN4PSI0LjUiIGN5PSI5LjUiIHI9IjIuNSI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iOSIgY3k9IjUuNSIgcj0iMi41Ij48L2NpcmNsZT48Y2lyY2xlIGN4PSIxNSIgY3k9IjUuNSIgcj0iMi41Ij48L2NpcmNsZT48Y2lyY2xlIGN4PSIxOS41IiBjeT0iOS41IiByPSIyLjUiPjwvY2lyY2xlPjxwYXRoIGQ9Ik0xNy4zNCAxNC44NmMtLjg3LTEuMDItMS42LTEuODktMi40OC0yLjkxLS40Ni0uNTQtMS4wNS0xLjA4LTEuNzUtMS4zMi0uMTEtLjA0LS4yMi0uMDctLjMzLS4wOS0uMjUtLjA0LS41Mi0uMDQtLjc4LS4wNHMtLjUzIDAtLjc5LjA1Yy0uMTEuMDItLjIyLjA1LS4zMy4wOS0uNy4yNC0xLjI4Ljc4LTEuNzUgMS4zMi0uODcgMS4wMi0xLjYgMS44OS0yLjQ4IDIuOTEtMS4zMSAxLjMxLTIuOTIgMi43Ni0yLjYyIDQuNzkuMjkgMS4wMiAxLjAyIDIuMDMgMi4zMyAyLjMyLjczLjE1IDMuMDYtLjQ0IDUuNTQtLjQ0aC4xOGMyLjQ4IDAgNC44MS41OCA1LjU0LjQ0IDEuMzEtLjI5IDIuMDQtMS4zMSAyLjMzLTIuMzIuMzEtMi4wNC0xLjMtMy40OS0yLjYxLTQuOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJwaWN0dXJlLWluLXBpY3R1cmUiPjxwYXRoIGQ9Ik0xOSA3aC04djZoOFY3em0yLTRIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAxLjk4IDIgMS45OGgxOGMxLjEgMCAyLS44OCAyLTEuOThWNWMwLTEuMS0uOS0yLTItMnptMCAxNi4wMUgzVjQuOThoMTh2MTQuMDN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icGljdHVyZS1pbi1waWN0dXJlLWFsdCI+PHBhdGggZD0iTTE5IDExaC04djZoOHYtNnptNCA4VjQuOThDMjMgMy44OCAyMi4xIDMgMjEgM0gzYy0xLjEgMC0yIC44OC0yIDEuOThWMTljMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMnptLTIgLjAySDNWNC45N2gxOHYxNC4wNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJwbGF5LWZvci13b3JrIj48cGF0aCBkPSJNMTEgNXY1LjU5SDcuNWw0LjUgNC41IDQuNS00LjVIMTNWNWgtMnptLTUgOWMwIDMuMzEgMi42OSA2IDYgNnM2LTIuNjkgNi02aC0yYzAgMi4yMS0xLjc5IDQtNCA0cy00LTEuNzktNC00SDZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icG9seW1lciI+PHBhdGggZD0iTTE5IDRoLTRMNy4xMSAxNi42MyA0LjUgMTIgOSA0SDVMLjUgMTIgNSAyMGg0bDcuODktMTIuNjNMMTkuNSAxMiAxNSAyMGg0bDQuNS04eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InBvd2VyLXNldHRpbmdzLW5ldyI+PHBhdGggZD0iTTEzIDNoLTJ2MTBoMlYzem00LjgzIDIuMTdsLTEuNDIgMS40MkMxNy45OSA3Ljg2IDE5IDkuODEgMTkgMTJjMCAzLjg3LTMuMTMgNy03IDdzLTctMy4xMy03LTdjMC0yLjE5IDEuMDEtNC4xNCAyLjU4LTUuNDJMNi4xNyA1LjE3QzQuMjMgNi44MiAzIDkuMjYgMyAxMmMwIDQuOTcgNC4wMyA5IDkgOXM5LTQuMDMgOS05YzAtMi43NC0xLjIzLTUuMTgtMy4xNy02LjgzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InByZWduYW50LXdvbWFuIj48cGF0aCBkPSJNOSA0YzAtMS4xMS44OS0yIDItMnMyIC44OSAyIDItLjg5IDItMiAyLTItLjg5LTItMnptNyA5Yy0uMDEtMS4zNC0uODMtMi41MS0yLTMgMC0xLjY2LTEuMzQtMy0zLTNzLTMgMS4zNC0zIDN2N2gydjVoM3YtNWgzdi00eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InByaW50Ij48cGF0aCBkPSJNMTkgOEg1Yy0xLjY2IDAtMyAxLjM0LTMgM3Y2aDR2NGgxMnYtNGg0di02YzAtMS42Ni0xLjM0LTMtMy0zem0tMyAxMUg4di01aDh2NXptMy03Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bS0xLTlINnY0aDEyVjN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icXVlcnktYnVpbGRlciI+PHBhdGggZD0iTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHptLjUtMTNIMTF2Nmw1LjI1IDMuMTUuNzUtMS4yMy00LjUtMi42N3oiPjwvcGF0aD48L2c+CjxnIGlkPSJxdWVzdGlvbi1hbnN3ZXIiPjxwYXRoIGQ9Ik0yMSA2aC0ydjlINnYyYzAgLjU1LjQ1IDEgMSAxaDExbDQgNFY3YzAtLjU1LS40NS0xLTEtMXptLTQgNlYzYzAtLjU1LS40NS0xLTEtMUgzYy0uNTUgMC0xIC40NS0xIDF2MTRsNC00aDEwYy41NSAwIDEtLjQ1IDEtMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJyYWRpby1idXR0b24tY2hlY2tlZCI+PHBhdGggZD0iTTEyIDdjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01em0wLTVDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJhZGlvLWJ1dHRvbi11bmNoZWNrZWQiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZWNlaXB0Ij48cGF0aCBkPSJNMTggMTdINnYtMmgxMnYyem0wLTRINnYtMmgxMnYyem0wLTRINlY3aDEydjJ6TTMgMjJsMS41LTEuNUw2IDIybDEuNS0xLjVMOSAyMmwxLjUtMS41TDEyIDIybDEuNS0xLjVMMTUgMjJsMS41LTEuNUwxOCAyMmwxLjUtMS41TDIxIDIyVjJsLTEuNSAxLjVMMTggMmwtMS41IDEuNUwxNSAybC0xLjUgMS41TDEyIDJsLTEuNSAxLjVMOSAyIDcuNSAzLjUgNiAyIDQuNSAzLjUgMyAydjIweiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJlY29yZC12b2ljZS1vdmVyIj48Y2lyY2xlIGN4PSI5IiBjeT0iOSIgcj0iNCI+PC9jaXJjbGU+PHBhdGggZD0iTTkgMTVjLTIuNjcgMC04IDEuMzQtOCA0djJoMTZ2LTJjMC0yLjY2LTUuMzMtNC04LTR6bTcuNzYtOS42NGwtMS42OCAxLjY5Yy44NCAxLjE4Ljg0IDIuNzEgMCAzLjg5bDEuNjggMS42OWMyLjAyLTIuMDIgMi4wMi01LjA3IDAtNy4yN3pNMjAuMDcgMmwtMS42MyAxLjYzYzIuNzcgMy4wMiAyLjc3IDcuNTYgMCAxMC43NEwyMC4wNyAxNmMzLjktMy44OSAzLjkxLTkuOTUgMC0xNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZWRlZW0iPjxwYXRoIGQ9Ik0yMCA2aC0yLjE4Yy4xMS0uMzEuMTgtLjY1LjE4LTEgMC0xLjY2LTEuMzQtMy0zLTMtMS4wNSAwLTEuOTYuNTQtMi41IDEuMzVsLS41LjY3LS41LS42OEMxMC45NiAyLjU0IDEwLjA1IDIgOSAyIDcuMzQgMiA2IDMuMzQgNiA1YzAgLjM1LjA3LjY5LjE4IDFINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMTljMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWOGMwLTEuMTEtLjg5LTItMi0yem0tNS0yYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6TTkgNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0xMSAxNUg0di0yaDE2djJ6bTAtNUg0VjhoNS4wOEw3IDEwLjgzIDguNjIgMTIgMTEgOC43NmwxLTEuMzYgMSAxLjM2TDE1LjM4IDEyIDE3IDEwLjgzIDE0LjkyIDhIMjB2NnoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZWRvIj48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJlZnJlc2giPjxwYXRoIGQ9Ik0xNy42NSA2LjM1QzE2LjIgNC45IDE0LjIxIDQgMTIgNGMtNC40MiAwLTcuOTkgMy41OC03Ljk5IDhzMy41NyA4IDcuOTkgOGMzLjczIDAgNi44NC0yLjU1IDcuNzMtNmgtMi4wOGMtLjgyIDIuMzMtMy4wNCA0LTUuNjUgNC0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02YzEuNjYgMCAzLjE0LjY5IDQuMjIgMS43OEwxMyAxMWg3VjRsLTIuMzUgMi4zNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJyZW1vdmUiPjxwYXRoIGQ9Ik0xOSAxM0g1di0yaDE0djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icmVtb3ZlLWNpcmNsZSI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTUgMTFIN3YtMmgxMHYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJlbW92ZS1jaXJjbGUtb3V0bGluZSI+PHBhdGggZD0iTTcgMTF2MmgxMHYtMkg3em01LTlDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJlbW92ZS1zaG9wcGluZy1jYXJ0Ij48cGF0aCBkPSJNMjIuNzMgMjIuNzNMMi43NyAyLjc3IDIgMmwtLjczLS43M0wwIDIuNTRsNC4zOSA0LjM5IDIuMjEgNC42Ni0xLjM1IDIuNDVjLS4xNi4yOC0uMjUuNjEtLjI1Ljk2IDAgMS4xLjkgMiAyIDJoNy40NmwxLjM4IDEuMzhjLS41LjM2LS44My45NS0uODMgMS42MiAwIDEuMS44OSAyIDEuOTkgMiAuNjcgMCAxLjI2LS4zMyAxLjYyLS44NEwyMS40NiAyNGwxLjI3LTEuMjd6TTcuNDIgMTVjLS4xNCAwLS4yNS0uMTEtLjI1LS4yNWwuMDMtLjEyLjktMS42M2gyLjM2bDIgMkg3LjQyem04LjEzLTJjLjc1IDAgMS40MS0uNDEgMS43NS0xLjAzbDMuNTgtNi40OWMuMDgtLjE0LjEyLS4zMS4xMi0uNDggMC0uNTUtLjQ1LTEtMS0xSDYuNTRsOS4wMSA5ek03IDE4Yy0xLjEgMC0xLjk5LjktMS45OSAyUzUuOSAyMiA3IDIyczItLjkgMi0yLS45LTItMi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJlb3JkZXIiPjxwYXRoIGQ9Ik0zIDE1aDE4di0ySDN2MnptMCA0aDE4di0ySDN2MnptMC04aDE4VjlIM3Yyem0wLTZ2MmgxOFY1SDN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icmVwbHkiPjxwYXRoIGQ9Ik0xMCA5VjVsLTcgNyA3IDd2LTQuMWM1IDAgOC41IDEuNiAxMSA1LjEtMS01LTQtMTAtMTEtMTF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icmVwbHktYWxsIj48cGF0aCBkPSJNNyA4VjVsLTcgNyA3IDd2LTNsLTQtNCA0LTR6bTYgMVY1bC03IDcgNyA3di00LjFjNSAwIDguNSAxLjYgMTEgNS4xLTEtNS00LTEwLTExLTExeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJlcG9ydCI+PHBhdGggZD0iTTE1LjczIDNIOC4yN0wzIDguMjd2Ny40Nkw4LjI3IDIxaDcuNDZMMjEgMTUuNzNWOC4yN0wxNS43MyAzek0xMiAxNy4zYy0uNzIgMC0xLjMtLjU4LTEuMy0xLjMgMC0uNzIuNTgtMS4zIDEuMy0xLjMuNzIgMCAxLjMuNTggMS4zIDEuMyAwIC43Mi0uNTggMS4zLTEuMyAxLjN6bTEtNC4zaC0yVjdoMnY2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJlcG9ydC1wcm9ibGVtIj48cGF0aCBkPSJNMSAyMWgyMkwxMiAyIDEgMjF6bTEyLTNoLTJ2LTJoMnYyem0wLTRoLTJ2LTRoMnY0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJlc3RvcmUiPjxwYXRoIGQ9Ik0xMyAzYy00Ljk3IDAtOSA0LjAzLTkgOUgxbDMuODkgMy44OS4wNy4xNEw5IDEySDZjMC0zLjg3IDMuMTMtNyA3LTdzNyAzLjEzIDcgNy0zLjEzIDctNyA3Yy0xLjkzIDAtMy42OC0uNzktNC45NC0yLjA2bC0xLjQyIDEuNDJDOC4yNyAxOS45OSAxMC41MSAyMSAxMyAyMWM0Ljk3IDAgOS00LjAzIDktOXMtNC4wMy05LTktOXptLTEgNXY1bDQuMjggMi41NC43Mi0xLjIxLTMuNS0yLjA4VjhIMTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icmVzdG9yZS1wYWdlIj48cGF0aCBkPSJNMTQgMkg2Yy0xLjEgMC0xLjk5LjktMS45OSAyTDQgMjBjMCAxLjEuODkgMiAxLjk5IDJIMThjMS4xIDAgMi0uOSAyLTJWOGwtNi02em0tMiAxNmMtMi4wNSAwLTMuODEtMS4yNC00LjU4LTNoMS43MWMuNjMuOSAxLjY4IDEuNSAyLjg3IDEuNSAxLjkzIDAgMy41LTEuNTcgMy41LTMuNVMxMy45MyA5LjUgMTIgOS41Yy0xLjM1IDAtMi41Mi43OC0zLjEgMS45bDEuNiAxLjZoLTRWOWwxLjMgMS4zQzguNjkgOC45MiAxMC4yMyA4IDEyIDhjMi43NiAwIDUgMi4yNCA1IDVzLTIuMjQgNS01IDV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icm9vbSI+PHBhdGggZD0iTTEyIDJDOC4xMyAyIDUgNS4xMyA1IDljMCA1LjI1IDcgMTMgNyAxM3M3LTcuNzUgNy0xM2MwLTMuODctMy4xMy03LTctN3ptMCA5LjVjLTEuMzggMC0yLjUtMS4xMi0yLjUtMi41czEuMTItMi41IDIuNS0yLjUgMi41IDEuMTIgMi41IDIuNS0xLjEyIDIuNS0yLjUgMi41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InJvdW5kZWQtY29ybmVyIj48cGF0aCBkPSJNMTkgMTloMnYyaC0ydi0yem0wLTJoMnYtMmgtMnYyek0zIDEzaDJ2LTJIM3Yyem0wIDRoMnYtMkgzdjJ6bTAtOGgyVjdIM3Yyem0wLTRoMlYzSDN2MnptNCAwaDJWM0g3djJ6bTggMTZoMnYtMmgtMnYyem0tNCAwaDJ2LTJoLTJ2MnptNCAwaDJ2LTJoLTJ2MnptLTggMGgydi0ySDd2MnptLTQgMGgydi0ySDN2MnpNMjEgOGMwLTIuNzYtMi4yNC01LTUtNWgtNXYyaDVjMS42NSAwIDMgMS4zNSAzIDN2NWgyVjh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0icm93aW5nIj48cGF0aCBkPSJNOC41IDE0LjVMNCAxOWwxLjUgMS41TDkgMTdoMmwtMi41LTIuNXpNMTUgMWMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTYgMjAuMDFMMTggMjRsLTIuOTktMy4wMVYxOS41bC03LjEtNy4wOWMtLjMxLjA1LS42MS4wNy0uOTEuMDd2LTIuMTZjMS42Ni4wMyAzLjYxLS44NyA0LjY3LTIuMDRsMS40LTEuNTVjLjE5LS4yMS40My0uMzguNjktLjUuMjktLjE0LjYyLS4yMy45Ni0uMjNoLjAzQzE1Ljk5IDYuMDEgMTcgNy4wMiAxNyA4LjI2djUuNzVjMCAuODQtLjM1IDEuNjEtLjkyIDIuMTZsLTMuNTgtMy41OHYtMi4yN2MtLjYzLjUyLTEuNDMgMS4wMi0yLjI5IDEuMzlMMTYuNSAxOEgxOGwzIDMuMDF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2F2ZSI+PHBhdGggZD0iTTE3IDNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjdsLTQtNHptLTUgMTZjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzem0zLTEwSDVWNWgxMHY0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNjaGVkdWxlIj48cGF0aCBkPSJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnpNMTIgMjBjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4em0uNS0xM0gxMXY2bDUuMjUgMy4xNS43NS0xLjIzLTQuNS0yLjY3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNlYXJjaCI+PHBhdGggZD0iTTE1LjUgMTRoLS43OWwtLjI4LS4yN0MxNS40MSAxMi41OSAxNiAxMS4xMSAxNiA5LjUgMTYgNS45MSAxMy4wOSAzIDkuNSAzUzMgNS45MSAzIDkuNSA1LjkxIDE2IDkuNSAxNmMxLjYxIDAgMy4wOS0uNTkgNC4yMy0xLjU3bC4yNy4yOHYuNzlsNSA0Ljk5TDIwLjQ5IDE5bC00Ljk5LTV6bS02IDBDNy4wMSAxNCA1IDExLjk5IDUgOS41UzcuMDEgNSA5LjUgNSAxNCA3LjAxIDE0IDkuNSAxMS45OSAxNCA5LjUgMTR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2VsZWN0LWFsbCI+PHBhdGggZD0iTTMgNWgyVjNjLTEuMSAwLTIgLjktMiAyem0wIDhoMnYtMkgzdjJ6bTQgOGgydi0ySDd2MnpNMyA5aDJWN0gzdjJ6bTEwLTZoLTJ2MmgyVjN6bTYgMHYyaDJjMC0xLjEtLjktMi0yLTJ6TTUgMjF2LTJIM2MwIDEuMS45IDIgMiAyem0tMi00aDJ2LTJIM3Yyek05IDNIN3YyaDJWM3ptMiAxOGgydi0yaC0ydjJ6bTgtOGgydi0yaC0ydjJ6bTAgOGMxLjEgMCAyLS45IDItMmgtMnYyem0wLTEyaDJWN2gtMnYyem0wIDhoMnYtMmgtMnYyem0tNCA0aDJ2LTJoLTJ2MnptMC0xNmgyVjNoLTJ2MnpNNyAxN2gxMFY3SDd2MTB6bTItOGg2djZIOVY5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNlbmQiPjxwYXRoIGQ9Ik0yLjAxIDIxTDIzIDEyIDIuMDEgMyAyIDEwbDE1IDItMTUgMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJzZXR0aW5ncyI+PHBhdGggZD0iTTE5LjQzIDEyLjk4Yy4wNC0uMzIuMDctLjY0LjA3LS45OHMtLjAzLS42Ni0uMDctLjk4bDIuMTEtMS42NWMuMTktLjE1LjI0LS40Mi4xMi0uNjRsLTItMy40NmMtLjEyLS4yMi0uMzktLjMtLjYxLS4yMmwtMi40OSAxYy0uNTItLjQtMS4wOC0uNzMtMS42OS0uOThsLS4zOC0yLjY1QzE0LjQ2IDIuMTggMTQuMjUgMiAxNCAyaC00Yy0uMjUgMC0uNDYuMTgtLjQ5LjQybC0uMzggMi42NWMtLjYxLjI1LTEuMTcuNTktMS42OS45OGwtMi40OS0xYy0uMjMtLjA5LS40OSAwLS42MS4yMmwtMiAzLjQ2Yy0uMTMuMjItLjA3LjQ5LjEyLjY0bDIuMTEgMS42NWMtLjA0LjMyLS4wNy42NS0uMDcuOThzLjAzLjY2LjA3Ljk4bC0yLjExIDEuNjVjLS4xOS4xNS0uMjQuNDItLjEyLjY0bDIgMy40NmMuMTIuMjIuMzkuMy42MS4yMmwyLjQ5LTFjLjUyLjQgMS4wOC43MyAxLjY5Ljk4bC4zOCAyLjY1Yy4wMy4yNC4yNC40Mi40OS40Mmg0Yy4yNSAwIC40Ni0uMTguNDktLjQybC4zOC0yLjY1Yy42MS0uMjUgMS4xNy0uNTkgMS42OS0uOThsMi40OSAxYy4yMy4wOS40OSAwIC42MS0uMjJsMi0zLjQ2Yy4xMi0uMjIuMDctLjQ5LS4xMi0uNjRsLTIuMTEtMS42NXpNMTIgMTUuNWMtMS45MyAwLTMuNS0xLjU3LTMuNS0zLjVzMS41Ny0zLjUgMy41LTMuNSAzLjUgMS41NyAzLjUgMy41LTEuNTcgMy41LTMuNSAzLjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtYXBwbGljYXRpb25zIj48cGF0aCBkPSJNMTIgMTBjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem03LTdINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMTEgMCAyLS45IDItMlY1YzAtMS4xLS44OS0yLTItMnptLTEuNzUgOWMwIC4yMy0uMDIuNDYtLjA1LjY4bDEuNDggMS4xNmMuMTMuMTEuMTcuMy4wOC40NWwtMS40IDIuNDJjLS4wOS4xNS0uMjcuMjEtLjQzLjE1bC0xLjc0LS43Yy0uMzYuMjgtLjc2LjUxLTEuMTguNjlsLS4yNiAxLjg1Yy0uMDMuMTctLjE4LjMtLjM1LjNoLTIuOGMtLjE3IDAtLjMyLS4xMy0uMzUtLjI5bC0uMjYtMS44NWMtLjQzLS4xOC0uODItLjQxLTEuMTgtLjY5bC0xLjc0LjdjLS4xNi4wNi0uMzQgMC0uNDMtLjE1bC0xLjQtMi40MmMtLjA5LS4xNS0uMDUtLjM0LjA4LS40NWwxLjQ4LTEuMTZjLS4wMy0uMjMtLjA1LS40Ni0uMDUtLjY5IDAtLjIzLjAyLS40Ni4wNS0uNjhsLTEuNDgtMS4xNmMtLjEzLS4xMS0uMTctLjMtLjA4LS40NWwxLjQtMi40MmMuMDktLjE1LjI3LS4yMS40My0uMTVsMS43NC43Yy4zNi0uMjguNzYtLjUxIDEuMTgtLjY5bC4yNi0xLjg1Yy4wMy0uMTcuMTgtLjMuMzUtLjNoMi44Yy4xNyAwIC4zMi4xMy4zNS4yOWwuMjYgMS44NWMuNDMuMTguODIuNDEgMS4xOC42OWwxLjc0LS43Yy4xNi0uMDYuMzQgMCAuNDMuMTVsMS40IDIuNDJjLjA5LjE1LjA1LjM0LS4wOC40NWwtMS40OCAxLjE2Yy4wMy4yMy4wNS40Ni4wNS42OXoiPjwvcGF0aD48L2c+CjxnIGlkPSJzZXR0aW5ncy1iYWNrdXAtcmVzdG9yZSI+PHBhdGggZD0iTTE0IDEyYzAtMS4xLS45LTItMi0ycy0yIC45LTIgMiAuOSAyIDIgMiAyLS45IDItMnptLTItOWMtNC45NyAwLTkgNC4wMy05IDlIMGw0IDQgNC00SDVjMC0zLjg3IDMuMTMtNyA3LTdzNyAzLjEzIDcgNy0zLjEzIDctNyA3Yy0xLjUxIDAtMi45MS0uNDktNC4wNi0xLjNsLTEuNDIgMS40NEM4LjA0IDIwLjMgOS45NCAyMSAxMiAyMWM0Ljk3IDAgOS00LjAzIDktOXMtNC4wMy05LTktOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJzZXR0aW5ncy1ibHVldG9vdGgiPjxwYXRoIGQ9Ik0xMSAyNGgydi0yaC0ydjJ6bS00IDBoMnYtMkg3djJ6bTggMGgydi0yaC0ydjJ6bTIuNzEtMTguMjlMMTIgMGgtMXY3LjU5TDYuNDEgMyA1IDQuNDEgMTAuNTkgMTAgNSAxNS41OSA2LjQxIDE3IDExIDEyLjQxVjIwaDFsNS43MS01LjcxLTQuMy00LjI5IDQuMy00LjI5ek0xMyAzLjgzbDEuODggMS44OEwxMyA3LjU5VjMuODN6bTEuODggMTAuNDZMMTMgMTYuMTd2LTMuNzZsMS44OCAxLjg4eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNldHRpbmdzLWJyaWdodG5lc3MiPjxwYXRoIGQ9Ik0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNi4wMUgzVjQuOTloMTh2MTQuMDJ6TTggMTZoMi41bDEuNSAxLjUgMS41LTEuNUgxNnYtMi41bDEuNS0xLjUtMS41LTEuNVY4aC0yLjVMMTIgNi41IDEwLjUgOEg4djIuNUw2LjUgMTIgOCAxMy41VjE2em00LTdjMS42NiAwIDMgMS4zNCAzIDNzLTEuMzQgMy0zIDNWOXoiPjwvcGF0aD48L2c+CjxnIGlkPSJzZXR0aW5ncy1jZWxsIj48cGF0aCBkPSJNNyAyNGgydi0ySDd2MnptNCAwaDJ2LTJoLTJ2MnptNCAwaDJ2LTJoLTJ2MnpNMTYgLjAxTDggMEM2LjkgMCA2IC45IDYgMnYxNmMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWMmMwLTEuMS0uOS0xLjk5LTItMS45OXpNMTYgMTZIOFY0aDh2MTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtZXRoZXJuZXQiPjxwYXRoIGQ9Ik03Ljc3IDYuNzZMNi4yMyA1LjQ4LjgyIDEybDUuNDEgNi41MiAxLjU0LTEuMjhMMy40MiAxMmw0LjM1LTUuMjR6TTcgMTNoMnYtMkg3djJ6bTEwLTJoLTJ2Mmgydi0yem0tNiAyaDJ2LTJoLTJ2MnptNi43Ny03LjUybC0xLjU0IDEuMjhMMjAuNTggMTJsLTQuMzUgNS4yNCAxLjU0IDEuMjhMMjMuMTggMTJsLTUuNDEtNi41MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJzZXR0aW5ncy1pbnB1dC1hbnRlbm5hIj48cGF0aCBkPSJNMTIgNWMtMy44NyAwLTcgMy4xMy03IDdoMmMwLTIuNzYgMi4yNC01IDUtNXM1IDIuMjQgNSA1aDJjMC0zLjg3LTMuMTMtNy03LTd6bTEgOS4yOWMuODgtLjM5IDEuNS0xLjI2IDEuNS0yLjI5IDAtMS4zOC0xLjEyLTIuNS0yLjUtMi41UzkuNSAxMC42MiA5LjUgMTJjMCAxLjAyLjYyIDEuOSAxLjUgMi4yOXYzLjNMNy41OSAyMSA5IDIyLjQxbDMtMyAzIDNMMTYuNDEgMjEgMTMgMTcuNTl2LTMuM3pNMTIgMUM1LjkzIDEgMSA1LjkzIDEgMTJoMmMwLTQuOTcgNC4wMy05IDktOXM5IDQuMDMgOSA5aDJjMC02LjA3LTQuOTMtMTEtMTEtMTF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtaW5wdXQtY29tcG9uZW50Ij48cGF0aCBkPSJNNSAyYzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxdjRIMXY2aDZWNkg1VjJ6bTQgMTRjMCAxLjMuODQgMi40IDIgMi44MlYyM2gydi00LjE4YzEuMTYtLjQxIDItMS41MSAyLTIuODJ2LTJIOXYyem0tOCAwYzAgMS4zLjg0IDIuNCAyIDIuODJWMjNoMnYtNC4xOEM2LjE2IDE4LjQgNyAxNy4zIDcgMTZ2LTJIMXYyek0yMSA2VjJjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2NGgtMnY2aDZWNmgtMnptLTgtNGMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXY0SDl2Nmg2VjZoLTJWMnptNCAxNGMwIDEuMy44NCAyLjQgMiAyLjgyVjIzaDJ2LTQuMThjMS4xNi0uNDEgMi0xLjUxIDItMi44MnYtMmgtNnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNldHRpbmdzLWlucHV0LWNvbXBvc2l0ZSI+PHBhdGggZD0iTTUgMmMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXY0SDF2Nmg2VjZINVYyem00IDE0YzAgMS4zLjg0IDIuNCAyIDIuODJWMjNoMnYtNC4xOGMxLjE2LS40MSAyLTEuNTEgMi0yLjgydi0ySDl2MnptLTggMGMwIDEuMy44NCAyLjQgMiAyLjgyVjIzaDJ2LTQuMThDNi4xNiAxOC40IDcgMTcuMyA3IDE2di0ySDF2MnpNMjEgNlYyYzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxdjRoLTJ2Nmg2VjZoLTJ6bS04LTRjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2NEg5djZoNlY2aC0yVjJ6bTQgMTRjMCAxLjMuODQgMi40IDIgMi44MlYyM2gydi00LjE4YzEuMTYtLjQxIDItMS41MSAyLTIuODJ2LTJoLTZ2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJzZXR0aW5ncy1pbnB1dC1oZG1pIj48cGF0aCBkPSJNMTggN1Y0YzAtMS4xLS45LTItMi0ySDhjLTEuMSAwLTIgLjktMiAydjNINXY2bDMgNnYzaDh2LTNsMy02VjdoLTF6TTggNGg4djNoLTJWNWgtMXYyaC0yVjVoLTF2Mkg4VjR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtaW5wdXQtc3ZpZGVvIj48cGF0aCBkPSJNOCAxMS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNVM1IDEwLjY3IDUgMTEuNSA1LjY3IDEzIDYuNSAxMyA4IDEyLjMzIDggMTEuNXptNy01YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtM0M5LjY3IDUgOSA1LjY3IDkgNi41UzkuNjcgOCAxMC41IDhoM2MuODMgMCAxLjUtLjY3IDEuNS0xLjV6TTguNSAxNWMtLjgzIDAtMS41LjY3LTEuNSAxLjVTNy42NyAxOCA4LjUgMThzMS41LS42NyAxLjUtMS41UzkuMzMgMTUgOC41IDE1ek0xMiAxQzUuOTMgMSAxIDUuOTMgMSAxMnM0LjkzIDExIDExIDExIDExLTQuOTMgMTEtMTFTMTguMDcgMSAxMiAxem0wIDIwYy00Ljk2IDAtOS00LjA0LTktOXM0LjA0LTkgOS05IDkgNC4wNCA5IDktNC4wNCA5LTkgOXptNS41LTExYy0uODMgMC0xLjUuNjctMS41IDEuNXMuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41LS42Ny0xLjUtMS41LTEuNXptLTIgNWMtLjgzIDAtMS41LjY3LTEuNSAxLjVzLjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNS0uNjctMS41LTEuNS0xLjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3Mtb3ZlcnNjYW4iPjxwYXRoIGQ9Ik0xMi4wMSA1LjVMMTAgOGg0bC0xLjk5LTIuNXpNMTggMTB2NGwyLjUtMS45OUwxOCAxMHpNNiAxMGwtMi41IDIuMDFMNiAxNHYtNHptOCA2aC00bDIuMDEgMi41TDE0IDE2em03LTEzSDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNi4wMUgzVjQuOTloMTh2MTQuMDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtcGhvbmUiPjxwYXRoIGQ9Ik0xMyA5aC0ydjJoMlY5em00IDBoLTJ2MmgyVjl6bTMgNi41Yy0xLjI1IDAtMi40NS0uMi0zLjU3LS41Ny0uMzUtLjExLS43NC0uMDMtMS4wMi4yNGwtMi4yIDIuMmMtMi44My0xLjQ0LTUuMTUtMy43NS02LjU5LTYuNThsMi4yLTIuMjFjLjI4LS4yNy4zNi0uNjYuMjUtMS4wMUM4LjcgNi40NSA4LjUgNS4yNSA4LjUgNGMwLS41NS0uNDUtMS0xLTFINGMtLjU1IDAtMSAuNDUtMSAxIDAgOS4zOSA3LjYxIDE3IDE3IDE3IC41NSAwIDEtLjQ1IDEtMXYtMy41YzAtLjU1LS40NS0xLTEtMXpNMTkgOXYyaDJWOWgtMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJzZXR0aW5ncy1wb3dlciI+PHBhdGggZD0iTTcgMjRoMnYtMkg3djJ6bTQgMGgydi0yaC0ydjJ6bTItMjJoLTJ2MTBoMlYyem0zLjU2IDIuNDRsLTEuNDUgMS40NUMxNi44NCA2Ljk0IDE4IDguODMgMTggMTFjMCAzLjMxLTIuNjkgNi02IDZzLTYtMi42OS02LTZjMC0yLjE3IDEuMTYtNC4wNiAyLjg4LTUuMTJMNy40NCA0LjQ0QzUuMzYgNS44OCA0IDguMjggNCAxMWMwIDQuNDIgMy41OCA4IDggOHM4LTMuNTggOC04YzAtMi43Mi0xLjM2LTUuMTItMy40NC02LjU2ek0xNSAyNGgydi0yaC0ydjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2V0dGluZ3MtcmVtb3RlIj48cGF0aCBkPSJNMTUgOUg5Yy0uNTUgMC0xIC40NS0xIDF2MTJjMCAuNTUuNDUgMSAxIDFoNmMuNTUgMCAxLS40NSAxLTFWMTBjMC0uNTUtLjQ1LTEtMS0xem0tMyA2Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpNNy4wNSA2LjA1bDEuNDEgMS40MUM5LjM3IDYuNTYgMTAuNjIgNiAxMiA2czIuNjMuNTYgMy41NCAxLjQ2bDEuNDEtMS40MUMxNS42OCA0Ljc4IDEzLjkzIDQgMTIgNHMtMy42OC43OC00Ljk1IDIuMDV6TTEyIDBDOC45NiAwIDYuMjEgMS4yMyA0LjIyIDMuMjJsMS40MSAxLjQxQzcuMjYgMy4wMSA5LjUxIDIgMTIgMnM0Ljc0IDEuMDEgNi4zNiAyLjY0bDEuNDEtMS40MUMxNy43OSAxLjIzIDE1LjA0IDAgMTIgMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJzZXR0aW5ncy12b2ljZSI+PHBhdGggZD0iTTcgMjRoMnYtMkg3djJ6bTUtMTFjMS42NiAwIDIuOTktMS4zNCAyLjk5LTNMMTUgNGMwLTEuNjYtMS4zNC0zLTMtM1M5IDIuMzQgOSA0djZjMCAxLjY2IDEuMzQgMyAzIDN6bS0xIDExaDJ2LTJoLTJ2MnptNCAwaDJ2LTJoLTJ2MnptNC0xNGgtMS43YzAgMy0yLjU0IDUuMS01LjMgNS4xUzYuNyAxMyA2LjcgMTBINWMwIDMuNDEgMi43MiA2LjIzIDYgNi43MlYyMGgydi0zLjI4YzMuMjgtLjQ5IDYtMy4zMSA2LTYuNzJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2hvcCI+PHBhdGggZD0iTTE2IDZWNGMwLTEuMTEtLjg5LTItMi0yaC00Yy0xLjExIDAtMiAuODktMiAydjJIMnYxM2MwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY2aC02em0tNi0yaDR2MmgtNFY0ek05IDE4VjlsNy41IDRMOSAxOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJzaG9wLXR3byI+PHBhdGggZD0iTTMgOUgxdjExYzAgMS4xMS44OSAyIDIgMmgxNGMxLjExIDAgMi0uODkgMi0ySDNWOXptMTUtNFYzYzAtMS4xMS0uODktMi0yLTJoLTRjLTEuMTEgMC0yIC44OS0yIDJ2Mkg1djExYzAgMS4xMS44OSAyIDIgMmgxNGMxLjExIDAgMi0uODkgMi0yVjVoLTV6bS02LTJoNHYyaC00VjN6bTAgMTJWOGw1LjUgMy01LjUgNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJzaG9wcGluZy1iYXNrZXQiPjxwYXRoIGQ9Ik0xNy4yMSA5bC00LjM4LTYuNTZjLS4xOS0uMjgtLjUxLS40Mi0uODMtLjQyLS4zMiAwLS42NC4xNC0uODMuNDNMNi43OSA5SDJjLS41NSAwLTEgLjQ1LTEgMSAwIC4wOS4wMS4xOC4wNC4yN2wyLjU0IDkuMjdjLjIzLjg0IDEgMS40NiAxLjkyIDEuNDZoMTNjLjkyIDAgMS42OS0uNjIgMS45My0xLjQ2bDIuNTQtOS4yN0wyMyAxMGMwLS41NS0uNDUtMS0xLTFoLTQuNzl6TTkgOWwzLTQuNEwxNSA5SDl6bTMgOGMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic2hvcHBpbmctY2FydCI+PHBhdGggZD0iTTcgMThjLTEuMSAwLTEuOTkuOS0xLjk5IDJTNS45IDIyIDcgMjJzMi0uOSAyLTItLjktMi0yLTJ6TTEgMnYyaDJsMy42IDcuNTktMS4zNSAyLjQ1Yy0uMTYuMjgtLjI1LjYxLS4yNS45NiAwIDEuMS45IDIgMiAyaDEydi0ySDcuNDJjLS4xNCAwLS4yNS0uMTEtLjI1LS4yNWwuMDMtLjEyLjktMS42M2g3LjQ1Yy43NSAwIDEuNDEtLjQxIDEuNzUtMS4wM2wzLjU4LTYuNDljLjA4LS4xNC4xMi0uMzEuMTItLjQ4IDAtLjU1LS40NS0xLTEtMUg1LjIxbC0uOTQtMkgxem0xNiAxNmMtMS4xIDAtMS45OS45LTEuOTkgMnMuODkgMiAxLjk5IDIgMi0uOSAyLTItLjktMi0yLTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic29ydCI+PHBhdGggZD0iTTMgMThoNnYtMkgzdjJ6TTMgNnYyaDE4VjZIM3ptMCA3aDEydi0ySDN2MnoiPjwvcGF0aD48L2c+CjxnIGlkPSJzcGVha2VyLW5vdGVzIj48cGF0aCBkPSJNMjAgMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6TTggMTRINnYtMmgydjJ6bTAtM0g2VjloMnYyem0wLTNINlY2aDJ2MnptNyA2aC01di0yaDV2MnptMy0zaC04VjloOHYyem0wLTNoLThWNmg4djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3BlYWtlci1ub3Rlcy1vZmYiPjxwYXRoIGQ9Ik0xMC41NCAxMWwtLjU0LS41NEw3LjU0IDggNiA2LjQ2IDIuMzggMi44NCAxLjI3IDEuNzMgMCAzbDIuMDEgMi4wMUwyIDIybDQtNGg5bDUuNzMgNS43M0wyMiAyMi40NiAxNy41NCAxOGwtNy03ek04IDE0SDZ2LTJoMnYyem0tMi0zVjlsMiAySDZ6bTE0LTlINC4wOEwxMCA3LjkyVjZoOHYyaC03LjkybDEgMUgxOHYyaC00LjkybDYuOTkgNi45OUMyMS4xNCAxNy45NSAyMiAxNy4wOCAyMiAxNlY0YzAtMS4xLS45LTItMi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InNwZWxsY2hlY2siPjxwYXRoIGQ9Ik0xMi40NSAxNmgyLjA5TDkuNDMgM0g3LjU3TDIuNDYgMTZoMi4wOWwxLjEyLTNoNS42NGwxLjE0IDN6bS02LjAyLTVMOC41IDUuNDggMTAuNTcgMTFINi40M3ptMTUuMTYuNTlsLTguMDkgOC4wOUw5LjgzIDE2bC0xLjQxIDEuNDEgNS4wOSA1LjA5TDIzIDEzbC0xLjQxLTEuNDF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3RhciI+PHBhdGggZD0iTTEyIDE3LjI3TDE4LjE4IDIxbC0xLjY0LTcuMDNMMjIgOS4yNGwtNy4xOS0uNjFMMTIgMiA5LjE5IDguNjMgMiA5LjI0bDUuNDYgNC43M0w1LjgyIDIxeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InN0YXItYm9yZGVyIj48cGF0aCBkPSJNMjIgOS4yNGwtNy4xOS0uNjJMMTIgMiA5LjE5IDguNjMgMiA5LjI0bDUuNDYgNC43M0w1LjgyIDIxIDEyIDE3LjI3IDE4LjE4IDIxbC0xLjYzLTcuMDNMMjIgOS4yNHpNMTIgMTUuNGwtMy43NiAyLjI3IDEtNC4yOC0zLjMyLTIuODggNC4zOC0uMzhMMTIgNi4xbDEuNzEgNC4wNCA0LjM4LjM4LTMuMzIgMi44OCAxIDQuMjhMMTIgMTUuNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJzdGFyLWhhbGYiPjxwYXRoIGQ9Ik0yMiA5LjI0bC03LjE5LS42MkwxMiAyIDkuMTkgOC42MyAyIDkuMjRsNS40NiA0LjczTDUuODIgMjEgMTIgMTcuMjcgMTguMTggMjFsLTEuNjMtNy4wM0wyMiA5LjI0ek0xMiAxNS40VjYuMWwxLjcxIDQuMDQgNC4zOC4zOC0zLjMyIDIuODggMSA0LjI4TDEyIDE1LjR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3RhcnMiPjxwYXRoIGQ9Ik0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyem00LjI0IDE2TDEyIDE1LjQ1IDcuNzcgMThsMS4xMi00LjgxLTMuNzMtMy4yMyA0LjkyLS40MkwxMiA1bDEuOTIgNC41MyA0LjkyLjQyLTMuNzMgMy4yM0wxNi4yMyAxOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJzdG9yZSI+PHBhdGggZD0iTTIwIDRINHYyaDE2VjR6bTEgMTB2LTJsLTEtNUg0bC0xIDV2MmgxdjZoMTB2LTZoNHY2aDJ2LTZoMXptLTkgNEg2di00aDZ2NHoiPjwvcGF0aD48L2c+CjxnIGlkPSJzdWJkaXJlY3RvcnktYXJyb3ctbGVmdCI+PHBhdGggZD0iTTExIDlsMS40MiAxLjQyTDguODMgMTRIMThWNGgydjEySDguODNsMy41OSAzLjU4TDExIDIxbC02LTYgNi02eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InN1YmRpcmVjdG9yeS1hcnJvdy1yaWdodCI+PHBhdGggZD0iTTE5IDE1bC02IDYtMS40Mi0xLjQyTDE1LjE3IDE2SDRWNGgydjEwaDkuMTdsLTMuNTktMy41OEwxMyA5bDYgNnoiPjwvcGF0aD48L2c+CjxnIGlkPSJzdWJqZWN0Ij48cGF0aCBkPSJNMTQgMTdINHYyaDEwdi0yem02LThINHYyaDE2Vjl6TTQgMTVoMTZ2LTJINHYyek00IDV2MmgxNlY1SDR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3VwZXJ2aXNvci1hY2NvdW50Ij48cGF0aCBkPSJNMTYuNSAxMmMxLjM4IDAgMi40OS0xLjEyIDIuNDktMi41UzE3Ljg4IDcgMTYuNSA3QzE1LjEyIDcgMTQgOC4xMiAxNCA5LjVzMS4xMiAyLjUgMi41IDIuNXpNOSAxMWMxLjY2IDAgMi45OS0xLjM0IDIuOTktM1MxMC42NiA1IDkgNUM3LjM0IDUgNiA2LjM0IDYgOHMxLjM0IDMgMyAzem03LjUgM2MtMS44MyAwLTUuNS45Mi01LjUgMi43NVYxOWgxMXYtMi4yNWMwLTEuODMtMy42Ny0yLjc1LTUuNS0yLjc1ek05IDEzYy0yLjMzIDAtNyAxLjE3LTcgMy41VjE5aDd2LTIuMjVjMC0uODUuMzMtMi4zNCAyLjM3LTMuNDdDMTAuNSAxMy4xIDkuNjYgMTMgOSAxM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJzd2FwLWhvcml6Ij48cGF0aCBkPSJNNi45OSAxMUwzIDE1bDMuOTkgNHYtM0gxNHYtMkg2Ljk5di0zek0yMSA5bC0zLjk5LTR2M0gxMHYyaDcuMDF2M0wyMSA5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InN3YXAtdmVydCI+PHBhdGggZD0iTTE2IDE3LjAxVjEwaC0ydjcuMDFoLTNMMTUgMjFsNC0zLjk5aC0zek05IDNMNSA2Ljk5aDNWMTRoMlY2Ljk5aDNMOSAzeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InN3YXAtdmVydGljYWwtY2lyY2xlIj48cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnpNNi41IDlMMTAgNS41IDEzLjUgOUgxMXY0SDlWOUg2LjV6bTExIDZMMTQgMTguNSAxMC41IDE1SDEzdi00aDJ2NGgyLjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ic3lzdGVtLXVwZGF0ZS1hbHQiPjxwYXRoIGQ9Ik0xMiAxNi41bDQtNGgtM3YtOWgtMnY5SDhsNCA0em05LTEzaC02djEuOTloNnYxNC4wM0gzVjUuNDloNlYzLjVIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMnYtMTRjMC0xLjEtLjktMi0yLTJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idGFiIj48cGF0aCBkPSJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZIM1Y1aDEwdjRoOHYxMHoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0YWItdW5zZWxlY3RlZCI+PHBhdGggZD0iTTEgOWgyVjdIMXYyem0wIDRoMnYtMkgxdjJ6bTAtOGgyVjNjLTEuMSAwLTIgLjktMiAyem04IDE2aDJ2LTJIOXYyem0tOC00aDJ2LTJIMXYyem0yIDR2LTJIMWMwIDEuMS45IDIgMiAyek0yMSAzaC04djZoMTBWNWMwLTEuMS0uOS0yLTItMnptMCAxNGgydi0yaC0ydjJ6TTkgNWgyVjNIOXYyek01IDIxaDJ2LTJINXYyek01IDVoMlYzSDV2MnptMTYgMTZjMS4xIDAgMi0uOSAyLTJoLTJ2MnptMC04aDJ2LTJoLTJ2MnptLTggOGgydi0yaC0ydjJ6bTQgMGgydi0yaC0ydjJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idGV4dC1mb3JtYXQiPjxwYXRoIGQ9Ik01IDE3djJoMTR2LTJINXptNC41LTQuMmg1bC45IDIuMmgyLjFMMTIuNzUgNGgtMS41TDYuNSAxNWgyLjFsLjktMi4yek0xMiA1Ljk4TDEzLjg3IDExaC0zLjc0TDEyIDUuOTh6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idGhlYXRlcnMiPjxwYXRoIGQ9Ik0xOCAzdjJoLTJWM0g4djJINlYzSDR2MThoMnYtMmgydjJoOHYtMmgydjJoMlYzaC0yek04IDE3SDZ2LTJoMnYyem0wLTRINnYtMmgydjJ6bTAtNEg2VjdoMnYyem0xMCA4aC0ydi0yaDJ2MnptMC00aC0ydi0yaDJ2MnptMC00aC0yVjdoMnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRodW1iLWRvd24iPjxwYXRoIGQ9Ik0xNSAzSDZjLS44MyAwLTEuNTQuNS0xLjg0IDEuMjJsLTMuMDIgNy4wNWMtLjA5LjIzLS4xNC40Ny0uMTQuNzN2MS45MWwuMDEuMDFMMSAxNGMwIDEuMS45IDIgMiAyaDYuMzFsLS45NSA0LjU3LS4wMy4zMmMwIC40MS4xNy43OS40NCAxLjA2TDkuODMgMjNsNi41OS02LjU5Yy4zNi0uMzYuNTgtLjg2LjU4LTEuNDFWNWMwLTEuMS0uOS0yLTItMnptNCAwdjEyaDRWM2gtNHoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0aHVtYi11cCI+PHBhdGggZD0iTTEgMjFoNFY5SDF2MTJ6bTIyLTExYzAtMS4xLS45LTItMi0yaC02LjMxbC45NS00LjU3LjAzLS4zMmMwLS40MS0uMTctLjc5LS40NC0xLjA2TDE0LjE3IDEgNy41OSA3LjU5QzcuMjIgNy45NSA3IDguNDUgNyA5djEwYzAgMS4xLjkgMiAyIDJoOWMuODMgMCAxLjU0LS41IDEuODQtMS4yMmwzLjAyLTcuMDVjLjA5LS4yMy4xNC0uNDcuMTQtLjczdi0xLjkxbC0uMDEtLjAxTDIzIDEweiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRodW1icy11cC1kb3duIj48cGF0aCBkPSJNMTIgNmMwLS41NS0uNDUtMS0xLTFINS44MmwuNjYtMy4xOC4wMi0uMjNjMC0uMzEtLjEzLS41OS0uMzMtLjhMNS4zOCAwIC40NCA0Ljk0Qy4xNyA1LjIxIDAgNS41OSAwIDZ2Ni41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDYuNzVjLjYyIDAgMS4xNS0uMzggMS4zOC0uOTFsMi4yNi01LjI5Yy4wNy0uMTcuMTEtLjM2LjExLS41NVY2em0xMC41IDRoLTYuNzVjLS42MiAwLTEuMTUuMzgtMS4zOC45MWwtMi4yNiA1LjI5Yy0uMDcuMTctLjExLjM2LS4xMS41NVYxOGMwIC41NS40NSAxIDEgMWg1LjE4bC0uNjYgMy4xOC0uMDIuMjRjMCAuMzEuMTMuNTkuMzMuOGwuNzkuNzggNC45NC00Ljk0Yy4yNy0uMjcuNDQtLjY1LjQ0LTEuMDZ2LTYuNWMwLS44My0uNjctMS41LTEuNS0xLjV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idGltZWxpbmUiPjxwYXRoIGQ9Ik0yMyA4YzAgMS4xLS45IDItMiAyLS4xOCAwLS4zNS0uMDItLjUxLS4wN2wtMy41NiAzLjU1Yy4wNS4xNi4wNy4zNC4wNy41MiAwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTJjMC0uMTguMDItLjM2LjA3LS41MmwtMi41NS0yLjU1Yy0uMTYuMDUtLjM0LjA3LS41Mi4wN3MtLjM2LS4wMi0uNTItLjA3bC00LjU1IDQuNTZjLjA1LjE2LjA3LjMzLjA3LjUxIDAgMS4xLS45IDItMiAycy0yLS45LTItMiAuOS0yIDItMmMuMTggMCAuMzUuMDIuNTEuMDdsNC41Ni00LjU1QzguMDIgOS4zNiA4IDkuMTggOCA5YzAtMS4xLjktMiAyLTJzMiAuOSAyIDJjMCAuMTgtLjAyLjM2LS4wNy41MmwyLjU1IDIuNTVjLjE2LS4wNS4zNC0uMDcuNTItLjA3cy4zNi4wMi41Mi4wN2wzLjU1LTMuNTZDMTkuMDIgOC4zNSAxOSA4LjE4IDE5IDhjMC0xLjEuOS0yIDItMnMyIC45IDIgMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0b2MiPjxwYXRoIGQ9Ik0zIDloMTRWN0gzdjJ6bTAgNGgxNHYtMkgzdjJ6bTAgNGgxNHYtMkgzdjJ6bTE2IDBoMnYtMmgtMnYyem0wLTEwdjJoMlY3aC0yem0wIDZoMnYtMmgtMnYyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRvZGF5Ij48cGF0aCBkPSJNMTkgM2gtMVYxaC0ydjJIOFYxSDZ2Mkg1Yy0xLjExIDAtMS45OS45LTEuOTkgMkwzIDE5YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY4aDE0djExek03IDEwaDV2NUg3eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRvbGwiPjxwYXRoIGQ9Ik0xNSA0Yy00LjQyIDAtOCAzLjU4LTggOHMzLjU4IDggOCA4IDgtMy41OCA4LTgtMy41OC04LTgtOHptMCAxNGMtMy4zMSAwLTYtMi42OS02LTZzMi42OS02IDYtNiA2IDIuNjkgNiA2LTIuNjkgNi02IDZ6TTMgMTJjMC0yLjYxIDEuNjctNC44MyA0LTUuNjVWNC4yNkMzLjU1IDUuMTUgMSA4LjI3IDEgMTJzMi41NSA2Ljg1IDYgNy43NHYtMi4wOWMtMi4zMy0uODItNC0zLjA0LTQtNS42NXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0b3VjaC1hcHAiPjxwYXRoIGQ9Ik05IDExLjI0VjcuNUM5IDYuMTIgMTAuMTIgNSAxMS41IDVTMTQgNi4xMiAxNCA3LjV2My43NGMxLjIxLS44MSAyLTIuMTggMi0zLjc0QzE2IDUuMDEgMTMuOTkgMyAxMS41IDNTNyA1LjAxIDcgNy41YzAgMS41Ni43OSAyLjkzIDIgMy43NHptOS44NCA0LjYzbC00LjU0LTIuMjZjLS4xNy0uMDctLjM1LS4xMS0uNTQtLjExSDEzdi02YzAtLjgzLS42Ny0xLjUtMS41LTEuNVMxMCA2LjY3IDEwIDcuNXYxMC43NGwtMy40My0uNzJjLS4wOC0uMDEtLjE1LS4wMy0uMjQtLjAzLS4zMSAwLS41OS4xMy0uNzkuMzNsLS43OS44IDQuOTQgNC45NGMuMjcuMjcuNjUuNDQgMS4wNi40NGg2Ljc5Yy43NSAwIDEuMzMtLjU1IDEuNDQtMS4yOGwuNzUtNS4yN2MuMDEtLjA3LjAyLS4xNC4wMi0uMiAwLS42Mi0uMzgtMS4xNi0uOTEtMS4zOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJ0cmFjay1jaGFuZ2VzIj48cGF0aCBkPSJNMTkuMDcgNC45M2wtMS40MSAxLjQxQzE5LjEgNy43OSAyMCA5Ljc5IDIwIDEyYzAgNC40Mi0zLjU4IDgtOCA4cy04LTMuNTgtOC04YzAtNC4wOCAzLjA1LTcuNDQgNy03LjkzdjIuMDJDOC4xNiA2LjU3IDYgOS4wMyA2IDEyYzAgMy4zMSAyLjY5IDYgNiA2czYtMi42OSA2LTZjMC0xLjY2LS42Ny0zLjE2LTEuNzYtNC4yNGwtMS40MSAxLjQxQzE1LjU1IDkuOSAxNiAxMC45IDE2IDEyYzAgMi4yMS0xLjc5IDQtNCA0cy00LTEuNzktNC00YzAtMS44NiAxLjI4LTMuNDEgMy0zLjg2djIuMTRjLS42LjM1LTEgLjk4LTEgMS43MiAwIDEuMS45IDIgMiAyczItLjkgMi0yYzAtLjc0LS40LTEuMzgtMS0xLjcyVjJoLTFDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMGMwLTIuNzYtMS4xMi01LjI2LTIuOTMtNy4wN3oiPjwvcGF0aD48L2c+CjxnIGlkPSJ0cmFuc2xhdGUiPjxwYXRoIGQ9Ik0xMi44NyAxNS4wN2wtMi41NC0yLjUxLjAzLS4wM2MxLjc0LTEuOTQgMi45OC00LjE3IDMuNzEtNi41M0gxN1Y0aC03VjJIOHYySDF2MS45OWgxMS4xN0MxMS41IDcuOTIgMTAuNDQgOS43NSA5IDExLjM1IDguMDcgMTAuMzIgNy4zIDkuMTkgNi42OSA4aC0yYy43MyAxLjYzIDEuNzMgMy4xNyAyLjk4IDQuNTZsLTUuMDkgNS4wMkw0IDE5bDUtNSAzLjExIDMuMTEuNzYtMi4wNHpNMTguNSAxMGgtMkwxMiAyMmgybDEuMTItM2g0Ljc1TDIxIDIyaDJsLTQuNS0xMnptLTIuNjIgN2wxLjYyLTQuMzNMMTkuMTIgMTdoLTMuMjR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idHJlbmRpbmctZG93biI+PHBhdGggZD0iTTE2IDE4bDIuMjktMi4yOS00Ljg4LTQuODgtNCA0TDIgNy40MSAzLjQxIDZsNiA2IDQtNCA2LjMgNi4yOUwyMiAxMnY2eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InRyZW5kaW5nLWZsYXQiPjxwYXRoIGQ9Ik0yMiAxMmwtNC00djNIM3YyaDE1djN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idHJlbmRpbmctdXAiPjxwYXRoIGQ9Ik0xNiA2bDIuMjkgMi4yOS00Ljg4IDQuODgtNC00TDIgMTYuNTkgMy40MSAxOGw2LTYgNCA0IDYuMy02LjI5TDIyIDEyVjZ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idHVybmVkLWluIj48cGF0aCBkPSJNMTcgM0g3Yy0xLjEgMC0xLjk5LjktMS45OSAyTDUgMjFsNy0zIDcgM1Y1YzAtMS4xLS45LTItMi0yeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InR1cm5lZC1pbi1ub3QiPjxwYXRoIGQ9Ik0xNyAzSDdjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNSAyMWw3LTMgNyAzVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTVsLTUtMi4xOEw3IDE4VjVoMTB2MTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idW5hcmNoaXZlIj48cGF0aCBkPSJNMjAuNTUgNS4yMmwtMS4zOS0xLjY4QzE4Ljg4IDMuMjEgMTguNDcgMyAxOCAzSDZjLS40NyAwLS44OC4yMS0xLjE1LjU1TDMuNDYgNS4yMkMzLjE3IDUuNTcgMyA2LjAxIDMgNi41VjE5YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjYuNWMwLS40OS0uMTctLjkzLS40NS0xLjI4ek0xMiA5LjVsNS41IDUuNUgxNHYyaC00di0ySDYuNUwxMiA5LjV6TTUuMTIgNWwuODItMWgxMmwuOTMgMUg1LjEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InVuZG8iPjxwYXRoIGQ9Ik0xMi41IDhjLTIuNjUgMC01LjA1Ljk5LTYuOSAyLjZMMiA3djloOWwtMy42Mi0zLjYyYzEuMzktMS4xNiAzLjE2LTEuODggNS4xMi0xLjg4IDMuNTQgMCA2LjU1IDIuMzEgNy42IDUuNWwyLjM3LS43OEMyMS4wOCAxMS4wMyAxNy4xNSA4IDEyLjUgOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJ1bmZvbGQtbGVzcyI+PHBhdGggZD0iTTcuNDEgMTguNTlMOC44MyAyMCAxMiAxNi44MyAxNS4xNyAyMGwxLjQxLTEuNDFMMTIgMTRsLTQuNTkgNC41OXptOS4xOC0xMy4xOEwxNS4xNyA0IDEyIDcuMTcgOC44MyA0IDcuNDEgNS40MSAxMiAxMGw0LjU5LTQuNTl6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idW5mb2xkLW1vcmUiPjxwYXRoIGQ9Ik0xMiA1LjgzTDE1LjE3IDlsMS40MS0xLjQxTDEyIDMgNy40MSA3LjU5IDguODMgOSAxMiA1Ljgzem0wIDEyLjM0TDguODMgMTVsLTEuNDEgMS40MUwxMiAyMWw0LjU5LTQuNTlMMTUuMTcgMTUgMTIgMTguMTd6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idXBkYXRlIj48cGF0aCBkPSJNMjEgMTAuMTJoLTYuNzhsMi43NC0yLjgyYy0yLjczLTIuNy03LjE1LTIuOC05Ljg4LS4xLTIuNzMgMi43MS0yLjczIDcuMDggMCA5Ljc5IDIuNzMgMi43MSA3LjE1IDIuNzEgOS44OCAwQzE4LjMyIDE1LjY1IDE5IDE0LjA4IDE5IDEyLjFoMmMwIDEuOTgtLjg4IDQuNTUtMi42NCA2LjI5LTMuNTEgMy40OC05LjIxIDMuNDgtMTIuNzIgMC0zLjUtMy40Ny0zLjUzLTkuMTEtLjAyLTEyLjU4IDMuNTEtMy40NyA5LjE0LTMuNDcgMTIuNjUgMEwyMSAzdjcuMTJ6TTEyLjUgOHY0LjI1bDMuNSAyLjA4LS43MiAxLjIxTDExIDEzVjhoMS41eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InZlcmlmaWVkLXVzZXIiPjxwYXRoIGQ9Ik0xMiAxTDMgNXY2YzAgNS41NSAzLjg0IDEwLjc0IDkgMTIgNS4xNi0xLjI2IDktNi40NSA5LTEyVjVsLTktNHptLTIgMTZsLTQtNCAxLjQxLTEuNDFMMTAgMTQuMTdsNi41OS02LjU5TDE4IDlsLTggOHoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWV3LWFnZW5kYSI+PHBhdGggZD0iTTIwIDEzSDNjLS41NSAwLTEgLjQ1LTEgMXY2YzAgLjU1LjQ1IDEgMSAxaDE3Yy41NSAwIDEtLjQ1IDEtMXYtNmMwLS41NS0uNDUtMS0xLTF6bTAtMTBIM2MtLjU1IDAtMSAuNDUtMSAxdjZjMCAuNTUuNDUgMSAxIDFoMTdjLjU1IDAgMS0uNDUgMS0xVjRjMC0uNTUtLjQ1LTEtMS0xeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InZpZXctYXJyYXkiPjxwYXRoIGQ9Ik00IDE4aDNWNUg0djEzek0xOCA1djEzaDNWNWgtM3pNOCAxOGg5VjVIOHYxM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWV3LWNhcm91c2VsIj48cGF0aCBkPSJNNyAxOWgxMFY0SDd2MTV6bS01LTJoNFY2SDJ2MTF6TTE4IDZ2MTFoNFY2aC00eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InZpZXctY29sdW1uIj48cGF0aCBkPSJNMTAgMThoNVY1aC01djEzem0tNiAwaDVWNUg0djEzek0xNiA1djEzaDVWNWgtNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWV3LWRheSI+PHBhdGggZD0iTTIgMjFoMTl2LTNIMnYzek0yMCA4SDNjLS41NSAwLTEgLjQ1LTEgMXY2YzAgLjU1LjQ1IDEgMSAxaDE3Yy41NSAwIDEtLjQ1IDEtMVY5YzAtLjU1LS40NS0xLTEtMXpNMiAzdjNoMTlWM0gyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InZpZXctaGVhZGxpbmUiPjxwYXRoIGQ9Ik00IDE1aDE2di0ySDR2MnptMCA0aDE2di0ySDR2MnptMC04aDE2VjlINHYyem0wLTZ2MmgxNlY1SDR6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idmlldy1saXN0Ij48cGF0aCBkPSJNNCAxNGg0di00SDR2NHptMCA1aDR2LTRINHY0ek00IDloNFY1SDR2NHptNSA1aDEydi00SDl2NHptMCA1aDEydi00SDl2NHpNOSA1djRoMTJWNUg5eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InZpZXctbW9kdWxlIj48cGF0aCBkPSJNNCAxMWg1VjVINHY2em0wIDdoNXYtNkg0djZ6bTYgMGg1di02aC01djZ6bTYgMGg1di02aC01djZ6bS02LTdoNVY1aC01djZ6bTYtNnY2aDVWNWgtNXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ2aWV3LXF1aWx0Ij48cGF0aCBkPSJNMTAgMThoNXYtNmgtNXY2em0tNiAwaDVWNUg0djEzem0xMiAwaDV2LTZoLTV2NnpNMTAgNXY2aDExVjVIMTB6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idmlldy1zdHJlYW0iPjxwYXRoIGQ9Ik00IDE4aDE3di02SDR2NnpNNCA1djZoMTdWNUg0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9InZpZXctd2VlayI+PHBhdGggZD0iTTYgNUgzYy0uNTUgMC0xIC40NS0xIDF2MTJjMCAuNTUuNDUgMSAxIDFoM2MuNTUgMCAxLS40NSAxLTFWNmMwLS41NS0uNDUtMS0xLTF6bTE0IDBoLTNjLS41NSAwLTEgLjQ1LTEgMXYxMmMwIC41NS40NSAxIDEgMWgzYy41NSAwIDEtLjQ1IDEtMVY2YzAtLjU1LS40NS0xLTEtMXptLTcgMGgtM2MtLjU1IDAtMSAuNDUtMSAxdjEyYzAgLjU1LjQ1IDEgMSAxaDNjLjU1IDAgMS0uNDUgMS0xVjZjMC0uNTUtLjQ1LTEtMS0xeiI+PC9wYXRoPjwvZz4KPGcgaWQ9InZpc2liaWxpdHkiPjxwYXRoIGQ9Ik0xMiA0LjVDNyA0LjUgMi43MyA3LjYxIDEgMTJjMS43MyA0LjM5IDYgNy41IDExIDcuNXM5LjI3LTMuMTEgMTEtNy41Yy0xLjczLTQuMzktNi03LjUtMTEtNy41ek0xMiAxN2MtMi43NiAwLTUtMi4yNC01LTVzMi4yNC01IDUtNSA1IDIuMjQgNSA1LTIuMjQgNS01IDV6bTAtOGMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zLTEuMzQtMy0zLTN6Ij48L3BhdGg+PC9nPgo8ZyBpZD0idmlzaWJpbGl0eS1vZmYiPjxwYXRoIGQ9Ik0xMiA3YzIuNzYgMCA1IDIuMjQgNSA1IDAgLjY1LS4xMyAxLjI2LS4zNiAxLjgzbDIuOTIgMi45MmMxLjUxLTEuMjYgMi43LTIuODkgMy40My00Ljc1LTEuNzMtNC4zOS02LTcuNS0xMS03LjUtMS40IDAtMi43NC4yNS0zLjk4LjdsMi4xNiAyLjE2QzEwLjc0IDcuMTMgMTEuMzUgNyAxMiA3ek0yIDQuMjdsMi4yOCAyLjI4LjQ2LjQ2QzMuMDggOC4zIDEuNzggMTAuMDIgMSAxMmMxLjczIDQuMzkgNiA3LjUgMTEgNy41IDEuNTUgMCAzLjAzLS4zIDQuMzgtLjg0bC40Mi40MkwxOS43MyAyMiAyMSAyMC43MyAzLjI3IDMgMiA0LjI3ek03LjUzIDkuOGwxLjU1IDEuNTVjLS4wNS4yMS0uMDguNDMtLjA4LjY1IDAgMS42NiAxLjM0IDMgMyAzIC4yMiAwIC40NC0uMDMuNjUtLjA4bDEuNTUgMS41NWMtLjY3LjMzLTEuNDEuNTMtMi4yLjUzLTIuNzYgMC01LTIuMjQtNS01IDAtLjc5LjItMS41My41My0yLjJ6bTQuMzEtLjc4bDMuMTUgMy4xNS4wMi0uMTZjMC0xLjY2LTEuMzQtMy0zLTNsLS4xNy4wMXoiPjwvcGF0aD48L2c+CjxnIGlkPSJ3YXJuaW5nIj48cGF0aCBkPSJNMSAyMWgyMkwxMiAyIDEgMjF6bTEyLTNoLTJ2LTJoMnYyem0wLTRoLTJ2LTRoMnY0eiI+PC9wYXRoPjwvZz4KPGcgaWQ9IndhdGNoLWxhdGVyIj48cGF0aCBkPSJNMTIgMkM2LjUgMiAyIDYuNSAyIDEyczQuNSAxMCAxMCAxMCAxMC00LjUgMTAtMTBTMTcuNSAyIDEyIDJ6bTQuMiAxNC4yTDExIDEzVjdoMS41djUuMmw0LjUgMi43LS44IDEuM3oiPjwvcGF0aD48L2c+CjxnIGlkPSJ3ZWVrZW5kIj48cGF0aCBkPSJNMjEgMTBjLTEuMSAwLTIgLjktMiAydjNINXYtM2MwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDJ2NWMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0ydi01YzAtMS4xLS45LTItMi0yem0tMy01SDZjLTEuMSAwLTIgLjktMiAydjIuMTVjMS4xNi40MSAyIDEuNTEgMiAyLjgyVjE0aDEydi0yLjAzYzAtMS4zLjg0LTIuNCAyLTIuODJWN2MwLTEuMS0uOS0yLTItMnoiPjwvcGF0aD48L2c+CjxnIGlkPSJ3b3JrIj48cGF0aCBkPSJNMjAgNmgtNFY0YzAtMS4xMS0uODktMi0yLTJoLTRjLTEuMTEgMC0yIC44OS0yIDJ2Mkg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOWMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY4YzAtMS4xMS0uODktMi0yLTJ6bS02IDBoLTRWNGg0djJ6Ij48L3BhdGg+PC9nPgo8ZyBpZD0ieW91dHViZS1zZWFyY2hlZC1mb3IiPjxwYXRoIGQ9Ik0xNy4wMSAxNGgtLjhsLS4yNy0uMjdjLjk4LTEuMTQgMS41Ny0yLjYxIDEuNTctNC4yMyAwLTMuNTktMi45MS02LjUtNi41LTYuNXMtNi41IDMtNi41IDYuNUgybDMuODQgNCA0LjE2LTRINi41MUM2LjUxIDcgOC41MyA1IDExLjAxIDVzNC41IDIuMDEgNC41IDQuNWMwIDIuNDgtMi4wMiA0LjUtNC41IDQuNS0uNjUgMC0xLjI2LS4xNC0xLjgyLS4zOEw3LjcxIDE1LjFjLjk3LjU3IDIuMDkuOSAzLjMuOSAxLjYxIDAgMy4wOC0uNTkgNC4yMi0xLjU3bC4yNy4yN3YuNzlsNS4wMSA0Ljk5TDIyIDE5bC00Ljk5LTV6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iem9vbS1pbiI+PHBhdGggZD0iTTE1LjUgMTRoLS43OWwtLjI4LS4yN0MxNS40MSAxMi41OSAxNiAxMS4xMSAxNiA5LjUgMTYgNS45MSAxMy4wOSAzIDkuNSAzUzMgNS45MSAzIDkuNSA1LjkxIDE2IDkuNSAxNmMxLjYxIDAgMy4wOS0uNTkgNC4yMy0xLjU3bC4yNy4yOHYuNzlsNSA0Ljk5TDIwLjQ5IDE5bC00Ljk5LTV6bS02IDBDNy4wMSAxNCA1IDExLjk5IDUgOS41UzcuMDEgNSA5LjUgNSAxNCA3LjAxIDE0IDkuNSAxMS45OSAxNCA5LjUgMTR6bTIuNS00aC0ydjJIOXYtMkg3VjloMlY3aDF2MmgydjF6Ij48L3BhdGg+PC9nPgo8ZyBpZD0iem9vbS1vdXQiPjxwYXRoIGQ9Ik0xNS41IDE0aC0uNzlsLS4yOC0uMjdDMTUuNDEgMTIuNTkgMTYgMTEuMTEgMTYgOS41IDE2IDUuOTEgMTMuMDkgMyA5LjUgM1MzIDUuOTEgMyA5LjUgNS45MSAxNiA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0ek03IDloNXYxSDd6Ij48L3BhdGg+PC9nPgo8L2RlZnM+PC9zdmc+CjwvaXJvbi1pY29uc2V0LXN2Zz5gO2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoT28uY29udGVudCk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwp2YXIgem89eyJVKzAwMDgiOiJiYWNrc3BhY2UiLCJVKzAwMDkiOiJ0YWIiLCJVKzAwMUIiOiJlc2MiLCJVKzAwMjAiOiJzcGFjZSIsIlUrMDA3RiI6ImRlbCJ9LERvPXs4OiJiYWNrc3BhY2UiLDk6InRhYiIsMTM6ImVudGVyIiwyNzoiZXNjIiwzMzoicGFnZXVwIiwzNDoicGFnZWRvd24iLDM1OiJlbmQiLDM2OiJob21lIiwzMjoic3BhY2UiLDM3OiJsZWZ0IiwzODoidXAiLDM5OiJyaWdodCIsNDA6ImRvd24iLDQ2OiJkZWwiLDEwNjoiKiJ9LEJvPXtzaGlmdDoic2hpZnRLZXkiLGN0cmw6ImN0cmxLZXkiLGFsdDoiYWx0S2V5IixtZXRhOiJtZXRhS2V5In0sSG89L1thLXowLTkqXS8sRm89L1VcKy8sVm89L15hcnJvdy8sVW89L15zcGFjZShiYXIpPy8sam89L15lc2NhcGUkLztmdW5jdGlvbiBHbyh0LGUpe3ZhciBuPSIiO2lmKHQpe3ZhciBpPXQudG9Mb3dlckNhc2UoKTsiICI9PT1pfHxVby50ZXN0KGkpP249InNwYWNlIjpqby50ZXN0KGkpP249ImVzYyI6MT09aS5sZW5ndGg/ZSYmIUhvLnRlc3QoaSl8fChuPWkpOm49Vm8udGVzdChpKT9pLnJlcGxhY2UoImFycm93IiwiIik6Im11bHRpcGx5Ij09aT8iKiI6aX1yZXR1cm4gbn1mdW5jdGlvbiBXbyh0LGUpe3JldHVybiB0LmtleT9Hbyh0LmtleSxlKTp0LmRldGFpbCYmdC5kZXRhaWwua2V5P0dvKHQuZGV0YWlsLmtleSxlKTooZnVuY3Rpb24gbih0KXt2YXIgZT0iIjtyZXR1cm4gdCYmKHQgaW4gem8/ZT16b1t0XTpGby50ZXN0KHQpPyh0PXBhcnNlSW50KHQucmVwbGFjZSgiVSsiLCIweCIpLDE2KSxlPVN0cmluZy5mcm9tQ2hhckNvZGUodCkudG9Mb3dlckNhc2UoKSk6ZT10LnRvTG93ZXJDYXNlKCkpLGV9KSh0LmtleUlkZW50aWZpZXIpfHwoZnVuY3Rpb24gaSh0KXt2YXIgZT0iIjtyZXR1cm4gTnVtYmVyKHQpJiYoZT10Pj02NSYmdDw9OTA/U3RyaW5nLmZyb21DaGFyQ29kZSgzMit0KTp0Pj0xMTImJnQ8PTEyMz8iZiIrKHQtMTEyKzEpOnQ+PTQ4JiZ0PD01Nz9TdHJpbmcodC00OCk6dD49OTYmJnQ8PTEwNT9TdHJpbmcodC05Nik6RG9bdF0pLGV9KSh0LmtleUNvZGUpfHwiIn1mdW5jdGlvbiBxbyh0LGUpe3JldHVybiBXbyhlLHQuaGFzTW9kaWZpZXJzKT09PXQua2V5JiYoIXQuaGFzTW9kaWZpZXJzfHwhIWUuc2hpZnRLZXk9PSEhdC5zaGlmdEtleSYmISFlLmN0cmxLZXk9PSEhdC5jdHJsS2V5JiYhIWUuYWx0S2V5PT0hIXQuYWx0S2V5JiYhIWUubWV0YUtleT09ISF0Lm1ldGFLZXkpfWZ1bmN0aW9uIFlvKHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgiICIpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuIDE9PT10Lmxlbmd0aD97Y29tYm86dCxrZXk6dCxldmVudDoia2V5ZG93biJ9OnQuc3BsaXQoIisiKS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5zcGxpdCgiOiIpLGk9blswXSxyPW5bMV07cmV0dXJuIGkgaW4gQm8/KHRbQm9baV1dPSEwLHQuaGFzTW9kaWZpZXJzPSEwKToodC5rZXk9aSx0LmV2ZW50PXJ8fCJrZXlkb3duIiksdH0pLHtjb21ibzp0LnNwbGl0KCI6Iikuc2hpZnQoKX0pfSkodCl9KSl9Y29uc3QgWG89e3Byb3BlcnRpZXM6e2tleUV2ZW50VGFyZ2V0Ont0eXBlOk9iamVjdCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzfX0sc3RvcEtleWJvYXJkRXZlbnRQcm9wYWdhdGlvbjp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxfYm91bmRLZXlIYW5kbGVyczp7dHlwZTpBcnJheSx2YWx1ZTpmdW5jdGlvbigpe3JldHVybltdfX0sX2ltcGVyYXRpdmVLZXlCaW5kaW5nczp7dHlwZTpPYmplY3QsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm57fX19fSxvYnNlcnZlcnM6WyJfcmVzZXRLZXlFdmVudExpc3RlbmVycyhrZXlFdmVudFRhcmdldCwgX2JvdW5kS2V5SGFuZGxlcnMpIl0sa2V5QmluZGluZ3M6e30scmVnaXN0ZXJlZDpmdW5jdGlvbigpe3RoaXMuX3ByZXBLZXlCaW5kaW5ncygpfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX2xpc3RlbktleUV2ZW50TGlzdGVuZXJzKCl9LGRldGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fdW5saXN0ZW5LZXlFdmVudExpc3RlbmVycygpfSxhZGRPd25LZXlCaW5kaW5nOmZ1bmN0aW9uKHQsZSl7dGhpcy5faW1wZXJhdGl2ZUtleUJpbmRpbmdzW3RdPWUsdGhpcy5fcHJlcEtleUJpbmRpbmdzKCksdGhpcy5fcmVzZXRLZXlFdmVudExpc3RlbmVycygpfSxyZW1vdmVPd25LZXlCaW5kaW5nczpmdW5jdGlvbigpe3RoaXMuX2ltcGVyYXRpdmVLZXlCaW5kaW5ncz17fSx0aGlzLl9wcmVwS2V5QmluZGluZ3MoKSx0aGlzLl9yZXNldEtleUV2ZW50TGlzdGVuZXJzKCl9LGtleWJvYXJkRXZlbnRNYXRjaGVzS2V5czpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1ZbyhlKSxpPTA7aTxuLmxlbmd0aDsrK2kpaWYocW8obltpXSx0KSlyZXR1cm4hMDtyZXR1cm4hMX0sX2NvbGxlY3RLZXlCaW5kaW5nczpmdW5jdGlvbigpe3ZhciB0PXRoaXMuYmVoYXZpb3JzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQua2V5QmluZGluZ3N9KSk7cmV0dXJuLTE9PT10LmluZGV4T2YodGhpcy5rZXlCaW5kaW5ncykmJnQucHVzaCh0aGlzLmtleUJpbmRpbmdzKSx0fSxfcHJlcEtleUJpbmRpbmdzOmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMuX2tleUJpbmRpbmdzPXt9LHRoaXMuX2NvbGxlY3RLZXlCaW5kaW5ncygpLmZvckVhY2goKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0KXRoaXMuX2FkZEtleUJpbmRpbmcoZSx0W2VdKX0pLHRoaXMpLHRoaXMuX2ltcGVyYXRpdmVLZXlCaW5kaW5ncyl0aGlzLl9hZGRLZXlCaW5kaW5nKHQsdGhpcy5faW1wZXJhdGl2ZUtleUJpbmRpbmdzW3RdKTtmb3IodmFyIGUgaW4gdGhpcy5fa2V5QmluZGluZ3MpdGhpcy5fa2V5QmluZGluZ3NbZV0uc29ydCgoZnVuY3Rpb24odCxlKXt2YXIgbj10WzBdLmhhc01vZGlmaWVycztyZXR1cm4gbj09PWVbMF0uaGFzTW9kaWZpZXJzPzA6bj8tMToxfSkpfSxfYWRkS2V5QmluZGluZzpmdW5jdGlvbih0LGUpe1lvKHQpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3RoaXMuX2tleUJpbmRpbmdzW3QuZXZlbnRdPXRoaXMuX2tleUJpbmRpbmdzW3QuZXZlbnRdfHxbXSx0aGlzLl9rZXlCaW5kaW5nc1t0LmV2ZW50XS5wdXNoKFt0LGVdKX0pLHRoaXMpfSxfcmVzZXRLZXlFdmVudExpc3RlbmVyczpmdW5jdGlvbigpe3RoaXMuX3VubGlzdGVuS2V5RXZlbnRMaXN0ZW5lcnMoKSx0aGlzLmlzQXR0YWNoZWQmJnRoaXMuX2xpc3RlbktleUV2ZW50TGlzdGVuZXJzKCl9LF9saXN0ZW5LZXlFdmVudExpc3RlbmVyczpmdW5jdGlvbigpe3RoaXMua2V5RXZlbnRUYXJnZXQmJk9iamVjdC5rZXlzKHRoaXMuX2tleUJpbmRpbmdzKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9vbktleUJpbmRpbmdFdmVudC5iaW5kKHRoaXMsdGhpcy5fa2V5QmluZGluZ3NbdF0pO3RoaXMuX2JvdW5kS2V5SGFuZGxlcnMucHVzaChbdGhpcy5rZXlFdmVudFRhcmdldCx0LGVdKSx0aGlzLmtleUV2ZW50VGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIodCxlKX0pLHRoaXMpfSxfdW5saXN0ZW5LZXlFdmVudExpc3RlbmVyczpmdW5jdGlvbigpe2Zvcih2YXIgdDt0aGlzLl9ib3VuZEtleUhhbmRsZXJzLmxlbmd0aDspKHQ9dGhpcy5fYm91bmRLZXlIYW5kbGVycy5wb3AoKSlbMF0ucmVtb3ZlRXZlbnRMaXN0ZW5lcih0WzFdLHRbMl0pfSxfb25LZXlCaW5kaW5nRXZlbnQ6ZnVuY3Rpb24odCxlKXtpZih0aGlzLnN0b3BLZXlib2FyZEV2ZW50UHJvcGFnYXRpb24mJmUuc3RvcFByb3BhZ2F0aW9uKCksIWUuZGVmYXVsdFByZXZlbnRlZClmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXVswXSxyPXRbbl1bMV07aWYocW8oaSxlKSYmKHRoaXMuX3RyaWdnZXJLZXlIYW5kbGVyKGkscixlKSxlLmRlZmF1bHRQcmV2ZW50ZWQpKXJldHVybn19LF90cmlnZ2VyS2V5SGFuZGxlcjpmdW5jdGlvbih0LGUsbil7dmFyIGk9T2JqZWN0LmNyZWF0ZSh0KTtpLmtleWJvYXJkRXZlbnQ9bjt2YXIgcj1uZXcgQ3VzdG9tRXZlbnQodC5ldmVudCx7ZGV0YWlsOmksY2FuY2VsYWJsZTohMH0pO3RoaXNbZV0uY2FsbCh0aGlzLHIpLHIuZGVmYXVsdFByZXZlbnRlZCYmbi5wcmV2ZW50RGVmYXVsdCgpfX0sJG89e3Byb3BlcnRpZXM6e3Njcm9sbFRhcmdldDp7dHlwZTpIVE1MRWxlbWVudCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWZhdWx0U2Nyb2xsVGFyZ2V0fX19LG9ic2VydmVyczpbIl9zY3JvbGxUYXJnZXRDaGFuZ2VkKHNjcm9sbFRhcmdldCwgaXNBdHRhY2hlZCkiXSxfc2hvdWxkSGF2ZUxpc3RlbmVyOiEwLF9zY3JvbGxUYXJnZXRDaGFuZ2VkOmZ1bmN0aW9uKHQsZSl7aWYodGhpcy5fb2xkU2Nyb2xsVGFyZ2V0JiYodGhpcy5fdG9nZ2xlU2Nyb2xsTGlzdGVuZXIoITEsdGhpcy5fb2xkU2Nyb2xsVGFyZ2V0KSx0aGlzLl9vbGRTY3JvbGxUYXJnZXQ9bnVsbCksZSlpZigiZG9jdW1lbnQiPT09dCl0aGlzLnNjcm9sbFRhcmdldD10aGlzLl9kb2M7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIHQpe3ZhciBuPXRoaXMuZG9tSG9zdDt0aGlzLnNjcm9sbFRhcmdldD1uJiZuLiQ/bi4kW3RdOmVyKHRoaXMub3duZXJEb2N1bWVudCkucXVlcnlTZWxlY3RvcigiIyIrdCl9ZWxzZSB0aGlzLl9pc1ZhbGlkU2Nyb2xsVGFyZ2V0KCkmJih0aGlzLl9vbGRTY3JvbGxUYXJnZXQ9dCx0aGlzLl90b2dnbGVTY3JvbGxMaXN0ZW5lcih0aGlzLl9zaG91bGRIYXZlTGlzdGVuZXIsdCkpfSxfc2Nyb2xsSGFuZGxlcjpmdW5jdGlvbiB0KCl7fSxnZXQgX2RlZmF1bHRTY3JvbGxUYXJnZXQoKXtyZXR1cm4gdGhpcy5fZG9jfSxnZXQgX2RvYygpe3JldHVybiB0aGlzLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fSxnZXQgX3Njcm9sbFRvcCgpe3JldHVybiB0aGlzLl9pc1ZhbGlkU2Nyb2xsVGFyZ2V0KCk/dGhpcy5zY3JvbGxUYXJnZXQ9PT10aGlzLl9kb2M/d2luZG93LnBhZ2VZT2Zmc2V0OnRoaXMuc2Nyb2xsVGFyZ2V0LnNjcm9sbFRvcDowfSxnZXQgX3Njcm9sbExlZnQoKXtyZXR1cm4gdGhpcy5faXNWYWxpZFNjcm9sbFRhcmdldCgpP3RoaXMuc2Nyb2xsVGFyZ2V0PT09dGhpcy5fZG9jP3dpbmRvdy5wYWdlWE9mZnNldDp0aGlzLnNjcm9sbFRhcmdldC5zY3JvbGxMZWZ0OjB9LHNldCBfc2Nyb2xsVG9wKHQpe3RoaXMuc2Nyb2xsVGFyZ2V0PT09dGhpcy5fZG9jP3dpbmRvdy5zY3JvbGxUbyh3aW5kb3cucGFnZVhPZmZzZXQsdCk6dGhpcy5faXNWYWxpZFNjcm9sbFRhcmdldCgpJiYodGhpcy5zY3JvbGxUYXJnZXQuc2Nyb2xsVG9wPXQpfSxzZXQgX3Njcm9sbExlZnQodCl7dGhpcy5zY3JvbGxUYXJnZXQ9PT10aGlzLl9kb2M/d2luZG93LnNjcm9sbFRvKHQsd2luZG93LnBhZ2VZT2Zmc2V0KTp0aGlzLl9pc1ZhbGlkU2Nyb2xsVGFyZ2V0KCkmJih0aGlzLnNjcm9sbFRhcmdldC5zY3JvbGxMZWZ0PXQpfSxzY3JvbGw6ZnVuY3Rpb24odCxlKXt2YXIgbjsib2JqZWN0Ij09dHlwZW9mIHQ/KG49dC5sZWZ0LGU9dC50b3ApOm49dCxuPW58fDAsZT1lfHwwLHRoaXMuc2Nyb2xsVGFyZ2V0PT09dGhpcy5fZG9jP3dpbmRvdy5zY3JvbGxUbyhuLGUpOnRoaXMuX2lzVmFsaWRTY3JvbGxUYXJnZXQoKSYmKHRoaXMuc2Nyb2xsVGFyZ2V0LnNjcm9sbExlZnQ9bix0aGlzLnNjcm9sbFRhcmdldC5zY3JvbGxUb3A9ZSl9LGdldCBfc2Nyb2xsVGFyZ2V0V2lkdGgoKXtyZXR1cm4gdGhpcy5faXNWYWxpZFNjcm9sbFRhcmdldCgpP3RoaXMuc2Nyb2xsVGFyZ2V0PT09dGhpcy5fZG9jP3dpbmRvdy5pbm5lcldpZHRoOnRoaXMuc2Nyb2xsVGFyZ2V0Lm9mZnNldFdpZHRoOjB9LGdldCBfc2Nyb2xsVGFyZ2V0SGVpZ2h0KCl7cmV0dXJuIHRoaXMuX2lzVmFsaWRTY3JvbGxUYXJnZXQoKT90aGlzLnNjcm9sbFRhcmdldD09PXRoaXMuX2RvYz93aW5kb3cuaW5uZXJIZWlnaHQ6dGhpcy5zY3JvbGxUYXJnZXQub2Zmc2V0SGVpZ2h0OjB9LF9pc1ZhbGlkU2Nyb2xsVGFyZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2Nyb2xsVGFyZ2V0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnR9LF90b2dnbGVTY3JvbGxMaXN0ZW5lcjpmdW5jdGlvbih0LGUpe3ZhciBuPWU9PT10aGlzLl9kb2M/d2luZG93OmU7dD90aGlzLl9ib3VuZFNjcm9sbEhhbmRsZXJ8fCh0aGlzLl9ib3VuZFNjcm9sbEhhbmRsZXI9dGhpcy5fc2Nyb2xsSGFuZGxlci5iaW5kKHRoaXMpLG4uYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLl9ib3VuZFNjcm9sbEhhbmRsZXIpKTp0aGlzLl9ib3VuZFNjcm9sbEhhbmRsZXImJihuLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5fYm91bmRTY3JvbGxIYW5kbGVyKSx0aGlzLl9ib3VuZFNjcm9sbEhhbmRsZXI9bnVsbCl9LHRvZ2dsZVNjcm9sbExpc3RlbmVyOmZ1bmN0aW9uKHQpe3RoaXMuX3Nob3VsZEhhdmVMaXN0ZW5lcj10LHRoaXMuX3RvZ2dsZVNjcm9sbExpc3RlbmVyKHQsdGhpcy5zY3JvbGxUYXJnZXQpfX07Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNiBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTYgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KdmFyIEtvPW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL2lQKD86aG9uZXxhZDsoPzogVTspPyBDUFUpIE9TIChcZCspLyksWm89S28mJktvWzFdPj04LEpvPSItMTAwMDBweCIsUW89LTEwMDtqcih7X3RlbXBsYXRlOnhlYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWF4LWRldmljZS1waXhlbC1yYXRpbzogMSkgewogICAgICAgIDpob3N0IHsKICAgICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgICAgfQogICAgICB9CgogICAgICAjaXRlbXMgewogICAgICAgIEBhcHBseSAtLWlyb24tbGlzdC1pdGVtcy1jb250YWluZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICA6aG9zdCg6bm90KFtncmlkXSkpICNpdGVtcyA+IDo6c2xvdHRlZCgqKSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgICNpdGVtcyA+IDo6c2xvdHRlZCgqKSB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxhcnJheS1zZWxlY3RvciBpZD0ic2VsZWN0b3IiIGl0ZW1zPSJ7e2l0ZW1zfX0iIHNlbGVjdGVkPSJ7e3NlbGVjdGVkSXRlbXN9fSIgc2VsZWN0ZWQtaXRlbT0ie3tzZWxlY3RlZEl0ZW19fSI+PC9hcnJheS1zZWxlY3Rvcj4KCiAgICA8ZGl2IGlkPSJpdGVtcyI+CiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIDwvZGl2PgpgLGlzOiJpcm9uLWxpc3QiLHByb3BlcnRpZXM6e2l0ZW1zOnt0eXBlOkFycmF5fSxhczp7dHlwZTpTdHJpbmcsdmFsdWU6Iml0ZW0ifSxpbmRleEFzOnt0eXBlOlN0cmluZyx2YWx1ZToiaW5kZXgifSxzZWxlY3RlZEFzOnt0eXBlOlN0cmluZyx2YWx1ZToic2VsZWN0ZWQifSxncmlkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEscmVmbGVjdFRvQXR0cmlidXRlOiEwLG9ic2VydmVyOiJfZ3JpZENoYW5nZWQifSxzZWxlY3Rpb25FbmFibGVkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LHNlbGVjdGVkSXRlbTp7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSxzZWxlY3RlZEl0ZW1zOnt0eXBlOk9iamVjdCxub3RpZnk6ITB9LG11bHRpU2VsZWN0aW9uOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LHNjcm9sbE9mZnNldDp7dHlwZTpOdW1iZXIsdmFsdWU6MH19LG9ic2VydmVyczpbIl9pdGVtc0NoYW5nZWQoaXRlbXMuKikiLCJfc2VsZWN0aW9uRW5hYmxlZENoYW5nZWQoc2VsZWN0aW9uRW5hYmxlZCkiLCJfbXVsdGlTZWxlY3Rpb25DaGFuZ2VkKG11bHRpU2VsZWN0aW9uKSIsIl9zZXRPdmVyZmxvdyhzY3JvbGxUYXJnZXQsIHNjcm9sbE9mZnNldCkiXSxiZWhhdmlvcnM6W2xvLENvLCRvLE1vXSxfcmF0aW86LjUsX3Njcm9sbGVyUGFkZGluZ1RvcDowLF9zY3JvbGxQb3NpdGlvbjowLF9waHlzaWNhbFNpemU6MCxfcGh5c2ljYWxBdmVyYWdlOjAsX3BoeXNpY2FsQXZlcmFnZUNvdW50OjAsX3BoeXNpY2FsVG9wOjAsX3ZpcnR1YWxDb3VudDowLF9lc3RTY3JvbGxIZWlnaHQ6MCxfc2Nyb2xsSGVpZ2h0OjAsX3ZpZXdwb3J0SGVpZ2h0OjAsX3ZpZXdwb3J0V2lkdGg6MCxfcGh5c2ljYWxJdGVtczpudWxsLF9waHlzaWNhbFNpemVzOm51bGwsX2ZpcnN0VmlzaWJsZUluZGV4VmFsOm51bGwsX2xhc3RWaXNpYmxlSW5kZXhWYWw6bnVsbCxfbWF4UGFnZXM6MixfZm9jdXNlZEl0ZW06bnVsbCxfZm9jdXNlZFZpcnR1YWxJbmRleDotMSxfZm9jdXNlZFBoeXNpY2FsSW5kZXg6LTEsX29mZnNjcmVlbkZvY3VzZWRJdGVtOm51bGwsX2ZvY3VzQmFja2ZpbGxJdGVtOm51bGwsX2l0ZW1zUGVyUm93OjEsX2l0ZW1XaWR0aDowLF9yb3dIZWlnaHQ6MCxfdGVtcGxhdGVDb3N0OjAsX3BhcmVudE1vZGVsOiEwLGdldCBfcGh5c2ljYWxCb3R0b20oKXtyZXR1cm4gdGhpcy5fcGh5c2ljYWxUb3ArdGhpcy5fcGh5c2ljYWxTaXplfSxnZXQgX3Njcm9sbEJvdHRvbSgpe3JldHVybiB0aGlzLl9zY3JvbGxQb3NpdGlvbit0aGlzLl92aWV3cG9ydEhlaWdodH0sZ2V0IF92aXJ0dWFsRW5kKCl7cmV0dXJuIHRoaXMuX3ZpcnR1YWxTdGFydCt0aGlzLl9waHlzaWNhbENvdW50LTF9LGdldCBfaGlkZGVuQ29udGVudFNpemUoKXtyZXR1cm4odGhpcy5ncmlkP3RoaXMuX3BoeXNpY2FsUm93cyp0aGlzLl9yb3dIZWlnaHQ6dGhpcy5fcGh5c2ljYWxTaXplKS10aGlzLl92aWV3cG9ydEhlaWdodH0sZ2V0IF9pdGVtc1BhcmVudCgpe3JldHVybiBlcihlcih0aGlzLl91c2VyVGVtcGxhdGUpLnBhcmVudE5vZGUpfSxnZXQgX21heFNjcm9sbFRvcCgpe3JldHVybiB0aGlzLl9lc3RTY3JvbGxIZWlnaHQtdGhpcy5fdmlld3BvcnRIZWlnaHQrdGhpcy5fc2Nyb2xsT2Zmc2V0fSxnZXQgX21heFZpcnR1YWxTdGFydCgpe3ZhciB0PXRoaXMuX2NvbnZlcnRJbmRleFRvQ29tcGxldGVSb3codGhpcy5fdmlydHVhbENvdW50KTtyZXR1cm4gTWF0aC5tYXgoMCx0LXRoaXMuX3BoeXNpY2FsQ291bnQpfSxzZXQgX3ZpcnR1YWxTdGFydCh0KXt0PXRoaXMuX2NsYW1wKHQsMCx0aGlzLl9tYXhWaXJ0dWFsU3RhcnQpLHRoaXMuZ3JpZCYmKHQtPXQldGhpcy5faXRlbXNQZXJSb3cpLHRoaXMuX3ZpcnR1YWxTdGFydFZhbD10fSxnZXQgX3ZpcnR1YWxTdGFydCgpe3JldHVybiB0aGlzLl92aXJ0dWFsU3RhcnRWYWx8fDB9LHNldCBfcGh5c2ljYWxTdGFydCh0KXsodCU9dGhpcy5fcGh5c2ljYWxDb3VudCk8MCYmKHQ9dGhpcy5fcGh5c2ljYWxDb3VudCt0KSx0aGlzLmdyaWQmJih0LT10JXRoaXMuX2l0ZW1zUGVyUm93KSx0aGlzLl9waHlzaWNhbFN0YXJ0VmFsPXR9LGdldCBfcGh5c2ljYWxTdGFydCgpe3JldHVybiB0aGlzLl9waHlzaWNhbFN0YXJ0VmFsfHwwfSxnZXQgX3BoeXNpY2FsRW5kKCl7cmV0dXJuKHRoaXMuX3BoeXNpY2FsU3RhcnQrdGhpcy5fcGh5c2ljYWxDb3VudC0xKSV0aGlzLl9waHlzaWNhbENvdW50fSxzZXQgX3BoeXNpY2FsQ291bnQodCl7dGhpcy5fcGh5c2ljYWxDb3VudFZhbD10fSxnZXQgX3BoeXNpY2FsQ291bnQoKXtyZXR1cm4gdGhpcy5fcGh5c2ljYWxDb3VudFZhbHx8MH0sZ2V0IF9vcHRQaHlzaWNhbFNpemUoKXtyZXR1cm4gMD09PXRoaXMuX3ZpZXdwb3J0SGVpZ2h0PzEvMDp0aGlzLl92aWV3cG9ydEhlaWdodCp0aGlzLl9tYXhQYWdlc30sZ2V0IF9pc1Zpc2libGUoKXtyZXR1cm4gQm9vbGVhbih0aGlzLm9mZnNldFdpZHRofHx0aGlzLm9mZnNldEhlaWdodCl9LGdldCBmaXJzdFZpc2libGVJbmRleCgpe3ZhciB0PXRoaXMuX2ZpcnN0VmlzaWJsZUluZGV4VmFsO2lmKG51bGw9PXQpe3ZhciBlPXRoaXMuX3BoeXNpY2FsVG9wK3RoaXMuX3Njcm9sbE9mZnNldDt0PXRoaXMuX2l0ZXJhdGVJdGVtcygoZnVuY3Rpb24odCxuKXtyZXR1cm4oZSs9dGhpcy5fZ2V0UGh5c2ljYWxTaXplSW5jcmVtZW50KHQpKT50aGlzLl9zY3JvbGxQb3NpdGlvbj90aGlzLmdyaWQ/bi1uJXRoaXMuX2l0ZW1zUGVyUm93Om46dGhpcy5ncmlkJiZ0aGlzLl92aXJ0dWFsQ291bnQtMT09PW4/bi1uJXRoaXMuX2l0ZW1zUGVyUm93OnZvaWQgMH0pKXx8MCx0aGlzLl9maXJzdFZpc2libGVJbmRleFZhbD10fXJldHVybiB0fSxnZXQgbGFzdFZpc2libGVJbmRleCgpe3ZhciB0PXRoaXMuX2xhc3RWaXNpYmxlSW5kZXhWYWw7aWYobnVsbD09dCl7aWYodGhpcy5ncmlkKXQ9TWF0aC5taW4odGhpcy5fdmlydHVhbENvdW50LHRoaXMuZmlyc3RWaXNpYmxlSW5kZXgrdGhpcy5fZXN0Um93c0luVmlldyp0aGlzLl9pdGVtc1BlclJvdy0xKTtlbHNle3ZhciBlPXRoaXMuX3BoeXNpY2FsVG9wK3RoaXMuX3Njcm9sbE9mZnNldDt0aGlzLl9pdGVyYXRlSXRlbXMoKGZ1bmN0aW9uKG4saSl7ZTx0aGlzLl9zY3JvbGxCb3R0b20mJih0PWkpLGUrPXRoaXMuX2dldFBoeXNpY2FsU2l6ZUluY3JlbWVudChuKX0pKX10aGlzLl9sYXN0VmlzaWJsZUluZGV4VmFsPXR9cmV0dXJuIHR9LGdldCBfZGVmYXVsdFNjcm9sbFRhcmdldCgpe3JldHVybiB0aGlzfSxnZXQgX3ZpcnR1YWxSb3dDb3VudCgpe3JldHVybiBNYXRoLmNlaWwodGhpcy5fdmlydHVhbENvdW50L3RoaXMuX2l0ZW1zUGVyUm93KX0sZ2V0IF9lc3RSb3dzSW5WaWV3KCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLl92aWV3cG9ydEhlaWdodC90aGlzLl9yb3dIZWlnaHQpfSxnZXQgX3BoeXNpY2FsUm93cygpe3JldHVybiBNYXRoLmNlaWwodGhpcy5fcGh5c2ljYWxDb3VudC90aGlzLl9pdGVtc1BlclJvdyl9LGdldCBfc2Nyb2xsT2Zmc2V0KCl7cmV0dXJuIHRoaXMuX3Njcm9sbGVyUGFkZGluZ1RvcCt0aGlzLnNjcm9sbE9mZnNldH0scmVhZHk6ZnVuY3Rpb24oKXt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLl9kaWRGb2N1cy5iaW5kKHRoaXMpLCEwKX0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLl9kZWJvdW5jZSgiX3JlbmRlciIsdGhpcy5fcmVuZGVyLF90KSx0aGlzLmxpc3Rlbih0aGlzLCJpcm9uLXJlc2l6ZSIsIl9yZXNpemVIYW5kbGVyIiksdGhpcy5saXN0ZW4odGhpcywia2V5ZG93biIsIl9rZXlkb3duSGFuZGxlciIpfSxkZXRhY2hlZDpmdW5jdGlvbigpe3RoaXMudW5saXN0ZW4odGhpcywiaXJvbi1yZXNpemUiLCJfcmVzaXplSGFuZGxlciIpLHRoaXMudW5saXN0ZW4odGhpcywia2V5ZG93biIsIl9rZXlkb3duSGFuZGxlciIpfSxfc2V0T3ZlcmZsb3c6ZnVuY3Rpb24odCl7dGhpcy5zdHlsZS53ZWJraXRPdmVyZmxvd1Njcm9sbGluZz10PT09dGhpcz8idG91Y2giOiIiLHRoaXMuc3R5bGUub3ZlcmZsb3dZPXQ9PT10aGlzPyJhdXRvIjoiIix0aGlzLl9sYXN0VmlzaWJsZUluZGV4VmFsPW51bGwsdGhpcy5fZmlyc3RWaXNpYmxlSW5kZXhWYWw9bnVsbCx0aGlzLl9kZWJvdW5jZSgiX3JlbmRlciIsdGhpcy5fcmVuZGVyLF90KX0sdXBkYXRlVmlld3BvcnRCb3VuZGFyaWVzOmZ1bmN0aW9uKCl7dmFyIHQ9d2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcyk7dGhpcy5fc2Nyb2xsZXJQYWRkaW5nVG9wPXRoaXMuc2Nyb2xsVGFyZ2V0PT09dGhpcz8wOnBhcnNlSW50KHRbInBhZGRpbmctdG9wIl0sMTApLHRoaXMuX2lzUlRMPUJvb2xlYW4oInJ0bCI9PT10LmRpcmVjdGlvbiksdGhpcy5fdmlld3BvcnRXaWR0aD10aGlzLiQuaXRlbXMub2Zmc2V0V2lkdGgsdGhpcy5fdmlld3BvcnRIZWlnaHQ9dGhpcy5fc2Nyb2xsVGFyZ2V0SGVpZ2h0LHRoaXMuZ3JpZCYmdGhpcy5fdXBkYXRlR3JpZE1ldHJpY3MoKX0sX3Njcm9sbEhhbmRsZXI6ZnVuY3Rpb24oKXt2YXIgdD1NYXRoLm1heCgwLE1hdGgubWluKHRoaXMuX21heFNjcm9sbFRvcCx0aGlzLl9zY3JvbGxUb3ApKSxlPXQtdGhpcy5fc2Nyb2xsUG9zaXRpb24sbj1lPj0wO2lmKHRoaXMuX3Njcm9sbFBvc2l0aW9uPXQsdGhpcy5fZmlyc3RWaXNpYmxlSW5kZXhWYWw9bnVsbCx0aGlzLl9sYXN0VmlzaWJsZUluZGV4VmFsPW51bGwsTWF0aC5hYnMoZSk+dGhpcy5fcGh5c2ljYWxTaXplJiZ0aGlzLl9waHlzaWNhbFNpemU+MCl7ZS09dGhpcy5fc2Nyb2xsT2Zmc2V0O3ZhciBpPU1hdGgucm91bmQoZS90aGlzLl9waHlzaWNhbEF2ZXJhZ2UpKnRoaXMuX2l0ZW1zUGVyUm93O3RoaXMuX3ZpcnR1YWxTdGFydD10aGlzLl92aXJ0dWFsU3RhcnQraSx0aGlzLl9waHlzaWNhbFN0YXJ0PXRoaXMuX3BoeXNpY2FsU3RhcnQraSx0aGlzLl9waHlzaWNhbFRvcD1NYXRoLm1pbihNYXRoLmZsb29yKHRoaXMuX3ZpcnR1YWxTdGFydC90aGlzLl9pdGVtc1BlclJvdykqdGhpcy5fcGh5c2ljYWxBdmVyYWdlLHRoaXMuX3Njcm9sbFBvc2l0aW9uKSx0aGlzLl91cGRhdGUoKX1lbHNlIGlmKHRoaXMuX3BoeXNpY2FsQ291bnQ+MCl7dmFyIHI9dGhpcy5fZ2V0UmV1c2FibGVzKG4pO24/KHRoaXMuX3BoeXNpY2FsVG9wPXIucGh5c2ljYWxUb3AsdGhpcy5fdmlydHVhbFN0YXJ0PXRoaXMuX3ZpcnR1YWxTdGFydCtyLmluZGV4ZXMubGVuZ3RoLHRoaXMuX3BoeXNpY2FsU3RhcnQ9dGhpcy5fcGh5c2ljYWxTdGFydCtyLmluZGV4ZXMubGVuZ3RoKToodGhpcy5fdmlydHVhbFN0YXJ0PXRoaXMuX3ZpcnR1YWxTdGFydC1yLmluZGV4ZXMubGVuZ3RoLHRoaXMuX3BoeXNpY2FsU3RhcnQ9dGhpcy5fcGh5c2ljYWxTdGFydC1yLmluZGV4ZXMubGVuZ3RoKSx0aGlzLl91cGRhdGUoci5pbmRleGVzLG4/bnVsbDpyLmluZGV4ZXMpLHRoaXMuX2RlYm91bmNlKCJfaW5jcmVhc2VQb29sSWZOZWVkZWQiLHRoaXMuX2luY3JlYXNlUG9vbElmTmVlZGVkLmJpbmQodGhpcywwKSx2dCl9fSxfZ2V0UmV1c2FibGVzOmZ1bmN0aW9uKHQpe3ZhciBlLG4saSxyPVtdLG89dGhpcy5faGlkZGVuQ29udGVudFNpemUqdGhpcy5fcmF0aW8sYT10aGlzLl92aXJ0dWFsU3RhcnQscz10aGlzLl92aXJ0dWFsRW5kLGw9dGhpcy5fcGh5c2ljYWxDb3VudCxjPXRoaXMuX3BoeXNpY2FsVG9wK3RoaXMuX3Njcm9sbE9mZnNldCx1PXRoaXMuX3Njcm9sbFBvc2l0aW9uLGg9dGhpcy5fc2Nyb2xsQm90dG9tO2Zvcih0PyhlPXRoaXMuX3BoeXNpY2FsU3RhcnQsbj11LWMpOihlPXRoaXMuX3BoeXNpY2FsRW5kLG49dGhpcy5fcGh5c2ljYWxCb3R0b20rdGhpcy5fc2Nyb2xsT2Zmc2V0LWgpO24tPWk9dGhpcy5fZ2V0UGh5c2ljYWxTaXplSW5jcmVtZW50KGUpLCEoci5sZW5ndGg+PWx8fG48PW8pOylpZih0KXtpZihzK3IubGVuZ3RoKzE+PXRoaXMuX3ZpcnR1YWxDb3VudClicmVhaztpZihjK2k+PXUtdGhpcy5fc2Nyb2xsT2Zmc2V0KWJyZWFrO3IucHVzaChlKSxjKz1pLGU9KGUrMSklbH1lbHNle2lmKGEtci5sZW5ndGg8PTApYnJlYWs7aWYoYyt0aGlzLl9waHlzaWNhbFNpemUtaTw9aClicmVhaztyLnB1c2goZSksYy09aSxlPTA9PT1lP2wtMTplLTF9cmV0dXJue2luZGV4ZXM6cixwaHlzaWNhbFRvcDpjLXRoaXMuX3Njcm9sbE9mZnNldH19LF91cGRhdGU6ZnVuY3Rpb24odCxlKXtpZighKHQmJjA9PT10Lmxlbmd0aHx8MD09PXRoaXMuX3BoeXNpY2FsQ291bnQpKXtpZih0aGlzLl9tYW5hZ2VGb2N1cygpLHRoaXMuX2Fzc2lnbk1vZGVscyh0KSx0aGlzLl91cGRhdGVNZXRyaWNzKHQpLGUpZm9yKDtlLmxlbmd0aDspe3ZhciBuPWUucG9wKCk7dGhpcy5fcGh5c2ljYWxUb3AtPXRoaXMuX2dldFBoeXNpY2FsU2l6ZUluY3JlbWVudChuKX10aGlzLl9wb3NpdGlvbkl0ZW1zKCksdGhpcy5fdXBkYXRlU2Nyb2xsZXJTaXplKCl9fSxfY3JlYXRlUG9vbDpmdW5jdGlvbih0KXt2YXIgZSxuO3RoaXMuX2Vuc3VyZVRlbXBsYXRpemVkKCk7dmFyIGk9bmV3IEFycmF5KHQpO2ZvcihlPTA7ZTx0O2UrKyluPXRoaXMuc3RhbXAobnVsbCksaVtlXT1uLnJvb3QucXVlcnlTZWxlY3RvcigiKiIpLHRoaXMuX2l0ZW1zUGFyZW50LmFwcGVuZENoaWxkKG4ucm9vdCk7cmV0dXJuIGl9LF9pc0NsaWVudEZ1bGw6ZnVuY3Rpb24oKXtyZXR1cm4gMCE9dGhpcy5fc2Nyb2xsQm90dG9tJiZ0aGlzLl9waHlzaWNhbEJvdHRvbS0xPj10aGlzLl9zY3JvbGxCb3R0b20mJnRoaXMuX3BoeXNpY2FsVG9wPD10aGlzLl9zY3JvbGxQb3NpdGlvbn0sX2luY3JlYXNlUG9vbElmTmVlZGVkOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2NsYW1wKHRoaXMuX3BoeXNpY2FsQ291bnQrdCwzLHRoaXMuX3ZpcnR1YWxDb3VudC10aGlzLl92aXJ0dWFsU3RhcnQpO2lmKGU9dGhpcy5fY29udmVydEluZGV4VG9Db21wbGV0ZVJvdyhlKSx0aGlzLmdyaWQpe3ZhciBuPWUldGhpcy5faXRlbXNQZXJSb3c7biYmZS1uPD10aGlzLl9waHlzaWNhbENvdW50JiYoZSs9dGhpcy5faXRlbXNQZXJSb3cpLGUtPW59dmFyIGk9ZS10aGlzLl9waHlzaWNhbENvdW50LHI9TWF0aC5yb3VuZCguNSp0aGlzLl9waHlzaWNhbENvdW50KTtpZighKGk8MCkpe2lmKGk+MCl7dmFyIG89d2luZG93LnBlcmZvcm1hbmNlLm5vdygpO1tdLnB1c2guYXBwbHkodGhpcy5fcGh5c2ljYWxJdGVtcyx0aGlzLl9jcmVhdGVQb29sKGkpKTtmb3IodmFyIGE9MDthPGk7YSsrKXRoaXMuX3BoeXNpY2FsU2l6ZXMucHVzaCgwKTt0aGlzLl9waHlzaWNhbENvdW50PXRoaXMuX3BoeXNpY2FsQ291bnQraSx0aGlzLl9waHlzaWNhbFN0YXJ0PnRoaXMuX3BoeXNpY2FsRW5kJiZ0aGlzLl9pc0luZGV4UmVuZGVyZWQodGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleCkmJnRoaXMuX2dldFBoeXNpY2FsSW5kZXgodGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleCk8dGhpcy5fcGh5c2ljYWxFbmQmJih0aGlzLl9waHlzaWNhbFN0YXJ0PXRoaXMuX3BoeXNpY2FsU3RhcnQraSksdGhpcy5fdXBkYXRlKCksdGhpcy5fdGVtcGxhdGVDb3N0PSh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCktbykvaSxyPU1hdGgucm91bmQoLjUqdGhpcy5fcGh5c2ljYWxDb3VudCl9dGhpcy5fdmlydHVhbEVuZD49dGhpcy5fdmlydHVhbENvdW50LTF8fDA9PT1yfHwodGhpcy5faXNDbGllbnRGdWxsKCk/dGhpcy5fcGh5c2ljYWxTaXplPHRoaXMuX29wdFBoeXNpY2FsU2l6ZSYmdGhpcy5fZGVib3VuY2UoIl9pbmNyZWFzZVBvb2xJZk5lZWRlZCIsdGhpcy5faW5jcmVhc2VQb29sSWZOZWVkZWQuYmluZCh0aGlzLHRoaXMuX2NsYW1wKE1hdGgucm91bmQoNTAvdGhpcy5fdGVtcGxhdGVDb3N0KSwxLHIpKSx5dCk6dGhpcy5fZGVib3VuY2UoIl9pbmNyZWFzZVBvb2xJZk5lZWRlZCIsdGhpcy5faW5jcmVhc2VQb29sSWZOZWVkZWQuYmluZCh0aGlzLHIpLHZ0KSl9fSxfcmVuZGVyOmZ1bmN0aW9uKCl7aWYodGhpcy5pc0F0dGFjaGVkJiZ0aGlzLl9pc1Zpc2libGUpaWYoMCE9PXRoaXMuX3BoeXNpY2FsQ291bnQpe3ZhciB0PXRoaXMuX2dldFJldXNhYmxlcyghMCk7dGhpcy5fcGh5c2ljYWxUb3A9dC5waHlzaWNhbFRvcCx0aGlzLl92aXJ0dWFsU3RhcnQ9dGhpcy5fdmlydHVhbFN0YXJ0K3QuaW5kZXhlcy5sZW5ndGgsdGhpcy5fcGh5c2ljYWxTdGFydD10aGlzLl9waHlzaWNhbFN0YXJ0K3QuaW5kZXhlcy5sZW5ndGgsdGhpcy5fdXBkYXRlKHQuaW5kZXhlcyksdGhpcy5fdXBkYXRlKCksdGhpcy5faW5jcmVhc2VQb29sSWZOZWVkZWQoMCl9ZWxzZSB0aGlzLl92aXJ0dWFsQ291bnQ+MCYmKHRoaXMudXBkYXRlVmlld3BvcnRCb3VuZGFyaWVzKCksdGhpcy5faW5jcmVhc2VQb29sSWZOZWVkZWQoMykpfSxfZW5zdXJlVGVtcGxhdGl6ZWQ6ZnVuY3Rpb24oKXtpZighdGhpcy5jdG9yKXt0aGlzLl91c2VyVGVtcGxhdGU9dGhpcy5xdWVyeUVmZmVjdGl2ZUNoaWxkcmVuKCJ0ZW1wbGF0ZSIpLHRoaXMuX3VzZXJUZW1wbGF0ZXx8Y29uc29sZS53YXJuKCJpcm9uLWxpc3QgcmVxdWlyZXMgYSB0ZW1wbGF0ZSB0byBiZSBwcm92aWRlZCBpbiBsaWdodC1kb20iKTt2YXIgdD17X19rZXlfXzohMH07dFt0aGlzLmFzXT0hMCx0W3RoaXMuaW5kZXhBc109ITAsdFt0aGlzLnNlbGVjdGVkQXNdPSEwLHQudGFiSW5kZXg9ITAsdGhpcy5faW5zdGFuY2VQcm9wcz10LHRoaXMudGVtcGxhdGl6ZSh0aGlzLl91c2VyVGVtcGxhdGUsdGhpcy5tdXRhYmxlRGF0YSl9fSxfZ3JpZENoYW5nZWQ6ZnVuY3Rpb24odCxlKXt2b2lkIDAhPT1lJiYodGhpcy5ub3RpZnlSZXNpemUoKSxXaSgpLHQmJnRoaXMuX3VwZGF0ZUdyaWRNZXRyaWNzKCkpfSxfaXRlbXNDaGFuZ2VkOmZ1bmN0aW9uKHQpe2lmKCJpdGVtcyI9PT10LnBhdGgpdGhpcy5fdmlydHVhbFN0YXJ0PTAsdGhpcy5fcGh5c2ljYWxUb3A9MCx0aGlzLl92aXJ0dWFsQ291bnQ9dGhpcy5pdGVtcz90aGlzLml0ZW1zLmxlbmd0aDowLHRoaXMuX3BoeXNpY2FsSW5kZXhGb3JLZXk9e30sdGhpcy5fZmlyc3RWaXNpYmxlSW5kZXhWYWw9bnVsbCx0aGlzLl9sYXN0VmlzaWJsZUluZGV4VmFsPW51bGwsdGhpcy5fcGh5c2ljYWxDb3VudD10aGlzLl9waHlzaWNhbENvdW50fHwwLHRoaXMuX3BoeXNpY2FsSXRlbXM9dGhpcy5fcGh5c2ljYWxJdGVtc3x8W10sdGhpcy5fcGh5c2ljYWxTaXplcz10aGlzLl9waHlzaWNhbFNpemVzfHxbXSx0aGlzLl9waHlzaWNhbFN0YXJ0PTAsdGhpcy5fc2Nyb2xsVG9wPnRoaXMuX3Njcm9sbE9mZnNldCYmdGhpcy5fcmVzZXRTY3JvbGxQb3NpdGlvbigwKSx0aGlzLl9yZW1vdmVGb2N1c2VkSXRlbSgpLHRoaXMuX2RlYm91bmNlKCJfcmVuZGVyIix0aGlzLl9yZW5kZXIsX3QpO2Vsc2UgaWYoIml0ZW1zLnNwbGljZXMiPT09dC5wYXRoKXtpZih0aGlzLl9hZGp1c3RWaXJ0dWFsSW5kZXgodC52YWx1ZS5pbmRleFNwbGljZXMpLHRoaXMuX3ZpcnR1YWxDb3VudD10aGlzLml0ZW1zP3RoaXMuaXRlbXMubGVuZ3RoOjAsdC52YWx1ZS5pbmRleFNwbGljZXMuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuYWRkZWRDb3VudD4wfHx0LnJlbW92ZWQubGVuZ3RoPjB9KSkpe3ZhciBlPXRoaXMuX2dldEFjdGl2ZUVsZW1lbnQoKTt0aGlzLmNvbnRhaW5zKGUpJiZlLmJsdXIoKX12YXIgbj10LnZhbHVlLmluZGV4U3BsaWNlcy5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pbmRleCt0LmFkZGVkQ291bnQ+PXRoaXMuX3ZpcnR1YWxTdGFydCYmdC5pbmRleDw9dGhpcy5fdmlydHVhbEVuZH0pLHRoaXMpO3RoaXMuX2lzQ2xpZW50RnVsbCgpJiYhbnx8dGhpcy5fZGVib3VuY2UoIl9yZW5kZXIiLHRoaXMuX3JlbmRlcixfdCl9ZWxzZSJpdGVtcy5sZW5ndGgiIT09dC5wYXRoJiZ0aGlzLl9mb3J3YXJkSXRlbVBhdGgodC5wYXRoLHQudmFsdWUpfSxfZm9yd2FyZEl0ZW1QYXRoOmZ1bmN0aW9uKHQsZSl7dmFyIG4saSxyLG89KHQ9dC5zbGljZSg2KSkuaW5kZXhPZigiLiIpOy0xPT09byYmKG89dC5sZW5ndGgpO3ZhciBhPXRoaXMubW9kZWxGb3JFbGVtZW50KHRoaXMuX29mZnNjcmVlbkZvY3VzZWRJdGVtKSxzPXBhcnNlSW50KHQuc3Vic3RyaW5nKDAsbyksMTApOyhuPXRoaXMuX2lzSW5kZXhSZW5kZXJlZChzKSk/KGk9dGhpcy5fZ2V0UGh5c2ljYWxJbmRleChzKSxyPXRoaXMubW9kZWxGb3JFbGVtZW50KHRoaXMuX3BoeXNpY2FsSXRlbXNbaV0pKTphJiYocj1hKSxyJiZyW3RoaXMuaW5kZXhBc109PT1zJiYodD10LnN1YnN0cmluZyhvKzEpLHIuX3NldFBlbmRpbmdQcm9wZXJ0eU9yUGF0aCh0PXRoaXMuYXMrKHQ/Ii4iK3Q6IiIpLGUsITEsITApLHIuX2ZsdXNoUHJvcGVydGllcyYmci5fZmx1c2hQcm9wZXJ0aWVzKCksbiYmKHRoaXMuX3VwZGF0ZU1ldHJpY3MoW2ldKSx0aGlzLl9wb3NpdGlvbkl0ZW1zKCksdGhpcy5fdXBkYXRlU2Nyb2xsZXJTaXplKCkpKX0sX2FkanVzdFZpcnR1YWxJbmRleDpmdW5jdGlvbih0KXt0LmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKHQucmVtb3ZlZC5mb3JFYWNoKHRoaXMuX3JlbW92ZUl0ZW0sdGhpcyksdC5pbmRleDx0aGlzLl92aXJ0dWFsU3RhcnQpe3ZhciBlPU1hdGgubWF4KHQuYWRkZWRDb3VudC10LnJlbW92ZWQubGVuZ3RoLHQuaW5kZXgtdGhpcy5fdmlydHVhbFN0YXJ0KTt0aGlzLl92aXJ0dWFsU3RhcnQ9dGhpcy5fdmlydHVhbFN0YXJ0K2UsdGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleD49MCYmKHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg9dGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleCtlKX19KSx0aGlzKX0sX3JlbW92ZUl0ZW06ZnVuY3Rpb24odCl7dGhpcy4kLnNlbGVjdG9yLmRlc2VsZWN0KHQpLHRoaXMuX2ZvY3VzZWRJdGVtJiZ0aGlzLm1vZGVsRm9yRWxlbWVudCh0aGlzLl9mb2N1c2VkSXRlbSlbdGhpcy5hc109PT10JiZ0aGlzLl9yZW1vdmVGb2N1c2VkSXRlbSgpfSxfaXRlcmF0ZUl0ZW1zOmZ1bmN0aW9uKHQsZSl7dmFyIG4saSxyLG87aWYoMj09PWFyZ3VtZW50cy5sZW5ndGgmJmUpe2ZvcihvPTA7bzxlLmxlbmd0aDtvKyspaWYoaT10aGlzLl9jb21wdXRlVmlkeChuPWVbb10pLG51bGwhPShyPXQuY2FsbCh0aGlzLG4saSkpKXJldHVybiByfWVsc2V7Zm9yKG49dGhpcy5fcGh5c2ljYWxTdGFydCxpPXRoaXMuX3ZpcnR1YWxTdGFydDtuPHRoaXMuX3BoeXNpY2FsQ291bnQ7bisrLGkrKylpZihudWxsIT0ocj10LmNhbGwodGhpcyxuLGkpKSlyZXR1cm4gcjtmb3Iobj0wO248dGhpcy5fcGh5c2ljYWxTdGFydDtuKyssaSsrKWlmKG51bGwhPShyPXQuY2FsbCh0aGlzLG4saSkpKXJldHVybiByfX0sX2NvbXB1dGVWaWR4OmZ1bmN0aW9uKHQpe3JldHVybiB0Pj10aGlzLl9waHlzaWNhbFN0YXJ0P3RoaXMuX3ZpcnR1YWxTdGFydCsodC10aGlzLl9waHlzaWNhbFN0YXJ0KTp0aGlzLl92aXJ0dWFsU3RhcnQrKHRoaXMuX3BoeXNpY2FsQ291bnQtdGhpcy5fcGh5c2ljYWxTdGFydCkrdH0sX2Fzc2lnbk1vZGVsczpmdW5jdGlvbih0KXt0aGlzLl9pdGVyYXRlSXRlbXMoKGZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fcGh5c2ljYWxJdGVtc1t0XSxpPXRoaXMuaXRlbXMmJnRoaXMuaXRlbXNbZV07aWYobnVsbCE9aSl7dmFyIHI9dGhpcy5tb2RlbEZvckVsZW1lbnQobik7ci5fX2tleV9fPW51bGwsdGhpcy5fZm9yd2FyZFByb3BlcnR5KHIsdGhpcy5hcyxpKSx0aGlzLl9mb3J3YXJkUHJvcGVydHkocix0aGlzLnNlbGVjdGVkQXMsdGhpcy4kLnNlbGVjdG9yLmlzU2VsZWN0ZWQoaSkpLHRoaXMuX2ZvcndhcmRQcm9wZXJ0eShyLHRoaXMuaW5kZXhBcyxlKSx0aGlzLl9mb3J3YXJkUHJvcGVydHkociwidGFiSW5kZXgiLHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg9PT1lPzA6LTEpLHRoaXMuX3BoeXNpY2FsSW5kZXhGb3JLZXlbci5fX2tleV9fXT10LHIuX2ZsdXNoUHJvcGVydGllcyYmci5fZmx1c2hQcm9wZXJ0aWVzKCEwKSxuLnJlbW92ZUF0dHJpYnV0ZSgiaGlkZGVuIil9ZWxzZSBuLnNldEF0dHJpYnV0ZSgiaGlkZGVuIiwiIil9KSx0KX0sX3VwZGF0ZU1ldHJpY3M6ZnVuY3Rpb24odCl7V2koKTt2YXIgZT0wLG49MCxpPXRoaXMuX3BoeXNpY2FsQXZlcmFnZUNvdW50LHI9dGhpcy5fcGh5c2ljYWxBdmVyYWdlO3RoaXMuX2l0ZXJhdGVJdGVtcygoZnVuY3Rpb24odCxpKXtuKz10aGlzLl9waHlzaWNhbFNpemVzW3RdLHRoaXMuX3BoeXNpY2FsU2l6ZXNbdF09dGhpcy5fcGh5c2ljYWxJdGVtc1t0XS5vZmZzZXRIZWlnaHQsZSs9dGhpcy5fcGh5c2ljYWxTaXplc1t0XSx0aGlzLl9waHlzaWNhbEF2ZXJhZ2VDb3VudCs9dGhpcy5fcGh5c2ljYWxTaXplc1t0XT8xOjB9KSx0KSx0aGlzLmdyaWQ/KHRoaXMuX3VwZGF0ZUdyaWRNZXRyaWNzKCksdGhpcy5fcGh5c2ljYWxTaXplPU1hdGguY2VpbCh0aGlzLl9waHlzaWNhbENvdW50L3RoaXMuX2l0ZW1zUGVyUm93KSp0aGlzLl9yb3dIZWlnaHQpOihuPTE9PT10aGlzLl9pdGVtc1BlclJvdz9uOk1hdGguY2VpbCh0aGlzLl9waHlzaWNhbENvdW50L3RoaXMuX2l0ZW1zUGVyUm93KSp0aGlzLl9yb3dIZWlnaHQsdGhpcy5fcGh5c2ljYWxTaXplPXRoaXMuX3BoeXNpY2FsU2l6ZStlLW4sdGhpcy5faXRlbXNQZXJSb3c9MSksdGhpcy5fcGh5c2ljYWxBdmVyYWdlQ291bnQhPT1pJiYodGhpcy5fcGh5c2ljYWxBdmVyYWdlPU1hdGgucm91bmQoKHIqaStlKS90aGlzLl9waHlzaWNhbEF2ZXJhZ2VDb3VudCkpfSxfdXBkYXRlR3JpZE1ldHJpY3M6ZnVuY3Rpb24oKXt0aGlzLl9pdGVtV2lkdGg9dGhpcy5fcGh5c2ljYWxDb3VudD4wP3RoaXMuX3BoeXNpY2FsSXRlbXNbMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg6MjAwLHRoaXMuX3Jvd0hlaWdodD10aGlzLl9waHlzaWNhbENvdW50PjA/dGhpcy5fcGh5c2ljYWxJdGVtc1swXS5vZmZzZXRIZWlnaHQ6MjAwLHRoaXMuX2l0ZW1zUGVyUm93PXRoaXMuX2l0ZW1XaWR0aD9NYXRoLmZsb29yKHRoaXMuX3ZpZXdwb3J0V2lkdGgvdGhpcy5faXRlbVdpZHRoKTp0aGlzLl9pdGVtc1BlclJvd30sX3Bvc2l0aW9uSXRlbXM6ZnVuY3Rpb24oKXt0aGlzLl9hZGp1c3RTY3JvbGxQb3NpdGlvbigpO3ZhciB0PXRoaXMuX3BoeXNpY2FsVG9wO2lmKHRoaXMuZ3JpZCl7dmFyIGU9KHRoaXMuX3ZpZXdwb3J0V2lkdGgtdGhpcy5faXRlbXNQZXJSb3cqdGhpcy5faXRlbVdpZHRoKS8yO3RoaXMuX2l0ZXJhdGVJdGVtcygoZnVuY3Rpb24obixpKXt2YXIgcj1NYXRoLmZsb29yKGkldGhpcy5faXRlbXNQZXJSb3cqdGhpcy5faXRlbVdpZHRoK2UpO3RoaXMuX2lzUlRMJiYocio9LTEpLHRoaXMudHJhbnNsYXRlM2QocisicHgiLHQrInB4IiwwLHRoaXMuX3BoeXNpY2FsSXRlbXNbbl0pLHRoaXMuX3Nob3VsZFJlbmRlck5leHRSb3coaSkmJih0Kz10aGlzLl9yb3dIZWlnaHQpfSkpfWVsc2V7Y29uc3QgZT1bXTt0aGlzLl9pdGVyYXRlSXRlbXMoKGZ1bmN0aW9uKG4saSl7Y29uc3Qgcj10aGlzLl9waHlzaWNhbEl0ZW1zW25dO3RoaXMudHJhbnNsYXRlM2QoMCx0KyJweCIsMCxyKSx0Kz10aGlzLl9waHlzaWNhbFNpemVzW25dO2NvbnN0IG89ci5pZDtvJiZlLnB1c2gobyl9KSksZS5sZW5ndGgmJnRoaXMuc2V0QXR0cmlidXRlKCJhcmlhLW93bnMiLGUuam9pbigiICIpKX19LF9nZXRQaHlzaWNhbFNpemVJbmNyZW1lbnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZ3JpZD90aGlzLl9jb21wdXRlVmlkeCh0KSV0aGlzLl9pdGVtc1BlclJvdyE9dGhpcy5faXRlbXNQZXJSb3ctMT8wOnRoaXMuX3Jvd0hlaWdodDp0aGlzLl9waHlzaWNhbFNpemVzW3RdfSxfc2hvdWxkUmVuZGVyTmV4dFJvdzpmdW5jdGlvbih0KXtyZXR1cm4gdCV0aGlzLl9pdGVtc1BlclJvdz09dGhpcy5faXRlbXNQZXJSb3ctMX0sX2FkanVzdFNjcm9sbFBvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIHQ9MD09PXRoaXMuX3ZpcnR1YWxTdGFydD90aGlzLl9waHlzaWNhbFRvcDpNYXRoLm1pbih0aGlzLl9zY3JvbGxQb3NpdGlvbit0aGlzLl9waHlzaWNhbFRvcCwwKTtpZigwIT09dCl7dGhpcy5fcGh5c2ljYWxUb3A9dGhpcy5fcGh5c2ljYWxUb3AtdDt2YXIgZT10aGlzLl9zY3JvbGxQb3NpdGlvbjshWm8mJmU+MCYmdGhpcy5fcmVzZXRTY3JvbGxQb3NpdGlvbihlLXQpfX0sX3Jlc2V0U2Nyb2xsUG9zaXRpb246ZnVuY3Rpb24odCl7dGhpcy5zY3JvbGxUYXJnZXQmJnQ+PTAmJih0aGlzLl9zY3JvbGxUb3A9dCx0aGlzLl9zY3JvbGxQb3NpdGlvbj10aGlzLl9zY3JvbGxUb3ApfSxfdXBkYXRlU2Nyb2xsZXJTaXplOmZ1bmN0aW9uKHQpe3RoaXMuX2VzdFNjcm9sbEhlaWdodD10aGlzLmdyaWQ/dGhpcy5fdmlydHVhbFJvd0NvdW50KnRoaXMuX3Jvd0hlaWdodDp0aGlzLl9waHlzaWNhbEJvdHRvbStNYXRoLm1heCh0aGlzLl92aXJ0dWFsQ291bnQtdGhpcy5fcGh5c2ljYWxDb3VudC10aGlzLl92aXJ0dWFsU3RhcnQsMCkqdGhpcy5fcGh5c2ljYWxBdmVyYWdlLCgodD0odD0odD10fHwwPT09dGhpcy5fc2Nyb2xsSGVpZ2h0KXx8dGhpcy5fc2Nyb2xsUG9zaXRpb24+PXRoaXMuX2VzdFNjcm9sbEhlaWdodC10aGlzLl9waHlzaWNhbFNpemUpfHx0aGlzLmdyaWQmJnRoaXMuJC5pdGVtcy5zdHlsZS5oZWlnaHQ8dGhpcy5fZXN0U2Nyb2xsSGVpZ2h0KXx8TWF0aC5hYnModGhpcy5fZXN0U2Nyb2xsSGVpZ2h0LXRoaXMuX3Njcm9sbEhlaWdodCk+PXRoaXMuX3ZpZXdwb3J0SGVpZ2h0KSYmKHRoaXMuJC5pdGVtcy5zdHlsZS5oZWlnaHQ9dGhpcy5fZXN0U2Nyb2xsSGVpZ2h0KyJweCIsdGhpcy5fc2Nyb2xsSGVpZ2h0PXRoaXMuX2VzdFNjcm9sbEhlaWdodCl9LHNjcm9sbFRvSXRlbTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zY3JvbGxUb0luZGV4KHRoaXMuaXRlbXMuaW5kZXhPZih0KSl9LHNjcm9sbFRvSW5kZXg6ZnVuY3Rpb24odCl7aWYoISgibnVtYmVyIiE9dHlwZW9mIHR8fHQ8MHx8dD50aGlzLml0ZW1zLmxlbmd0aC0xKSYmKFdpKCksMCE9PXRoaXMuX3BoeXNpY2FsQ291bnQpKXt0PXRoaXMuX2NsYW1wKHQsMCx0aGlzLl92aXJ0dWFsQ291bnQtMSksKCF0aGlzLl9pc0luZGV4UmVuZGVyZWQodCl8fHQ+PXRoaXMuX21heFZpcnR1YWxTdGFydCkmJih0aGlzLl92aXJ0dWFsU3RhcnQ9dGhpcy5ncmlkP3QtMip0aGlzLl9pdGVtc1BlclJvdzp0LTEpLHRoaXMuX21hbmFnZUZvY3VzKCksdGhpcy5fYXNzaWduTW9kZWxzKCksdGhpcy5fdXBkYXRlTWV0cmljcygpLHRoaXMuX3BoeXNpY2FsVG9wPU1hdGguZmxvb3IodGhpcy5fdmlydHVhbFN0YXJ0L3RoaXMuX2l0ZW1zUGVyUm93KSp0aGlzLl9waHlzaWNhbEF2ZXJhZ2U7Zm9yKHZhciBlPXRoaXMuX3BoeXNpY2FsU3RhcnQsbj10aGlzLl92aXJ0dWFsU3RhcnQsaT0wLHI9dGhpcy5faGlkZGVuQ29udGVudFNpemU7bjx0JiZpPD1yOylpKz10aGlzLl9nZXRQaHlzaWNhbFNpemVJbmNyZW1lbnQoZSksZT0oZSsxKSV0aGlzLl9waHlzaWNhbENvdW50LG4rKzt0aGlzLl91cGRhdGVTY3JvbGxlclNpemUoITApLHRoaXMuX3Bvc2l0aW9uSXRlbXMoKSx0aGlzLl9yZXNldFNjcm9sbFBvc2l0aW9uKHRoaXMuX3BoeXNpY2FsVG9wK3RoaXMuX3Njcm9sbE9mZnNldCtpKSx0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZCgwKSx0aGlzLl9maXJzdFZpc2libGVJbmRleFZhbD1udWxsLHRoaXMuX2xhc3RWaXNpYmxlSW5kZXhWYWw9bnVsbH19LF9yZXNldEF2ZXJhZ2U6ZnVuY3Rpb24oKXt0aGlzLl9waHlzaWNhbEF2ZXJhZ2U9MCx0aGlzLl9waHlzaWNhbEF2ZXJhZ2VDb3VudD0wfSxfcmVzaXplSGFuZGxlcjpmdW5jdGlvbigpe3RoaXMuX2RlYm91bmNlKCJfcmVuZGVyIiwoZnVuY3Rpb24oKXt0aGlzLl9maXJzdFZpc2libGVJbmRleFZhbD1udWxsLHRoaXMuX2xhc3RWaXNpYmxlSW5kZXhWYWw9bnVsbCx0aGlzLl9pc1Zpc2libGU/KHRoaXMudXBkYXRlVmlld3BvcnRCb3VuZGFyaWVzKCksdGhpcy50b2dnbGVTY3JvbGxMaXN0ZW5lcighMCksdGhpcy5fcmVzZXRBdmVyYWdlKCksdGhpcy5fcmVuZGVyKCkpOnRoaXMudG9nZ2xlU2Nyb2xsTGlzdGVuZXIoITEpfSksX3QpfSxzZWxlY3RJdGVtOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNlbGVjdEluZGV4KHRoaXMuaXRlbXMuaW5kZXhPZih0KSl9LHNlbGVjdEluZGV4OmZ1bmN0aW9uKHQpe2lmKCEodDwwfHx0Pj10aGlzLl92aXJ0dWFsQ291bnQpKXtpZighdGhpcy5tdWx0aVNlbGVjdGlvbiYmdGhpcy5zZWxlY3RlZEl0ZW0mJnRoaXMuY2xlYXJTZWxlY3Rpb24oKSx0aGlzLl9pc0luZGV4UmVuZGVyZWQodCkpe3ZhciBlPXRoaXMubW9kZWxGb3JFbGVtZW50KHRoaXMuX3BoeXNpY2FsSXRlbXNbdGhpcy5fZ2V0UGh5c2ljYWxJbmRleCh0KV0pO2UmJihlW3RoaXMuc2VsZWN0ZWRBc109ITApLHRoaXMudXBkYXRlU2l6ZUZvckluZGV4KHQpfXRoaXMuJC5zZWxlY3Rvci5zZWxlY3RJbmRleCh0KX19LGRlc2VsZWN0SXRlbTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kZXNlbGVjdEluZGV4KHRoaXMuaXRlbXMuaW5kZXhPZih0KSl9LGRlc2VsZWN0SW5kZXg6ZnVuY3Rpb24odCl7aWYoISh0PDB8fHQ+PXRoaXMuX3ZpcnR1YWxDb3VudCkpe2lmKHRoaXMuX2lzSW5kZXhSZW5kZXJlZCh0KSl0aGlzLm1vZGVsRm9yRWxlbWVudCh0aGlzLl9waHlzaWNhbEl0ZW1zW3RoaXMuX2dldFBoeXNpY2FsSW5kZXgodCldKVt0aGlzLnNlbGVjdGVkQXNdPSExLHRoaXMudXBkYXRlU2l6ZUZvckluZGV4KHQpO3RoaXMuJC5zZWxlY3Rvci5kZXNlbGVjdEluZGV4KHQpfX0sdG9nZ2xlU2VsZWN0aW9uRm9ySXRlbTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50b2dnbGVTZWxlY3Rpb25Gb3JJbmRleCh0aGlzLml0ZW1zLmluZGV4T2YodCkpfSx0b2dnbGVTZWxlY3Rpb25Gb3JJbmRleDpmdW5jdGlvbih0KXsodGhpcy4kLnNlbGVjdG9yLmlzSW5kZXhTZWxlY3RlZD90aGlzLiQuc2VsZWN0b3IuaXNJbmRleFNlbGVjdGVkKHQpOnRoaXMuJC5zZWxlY3Rvci5pc1NlbGVjdGVkKHRoaXMuaXRlbXNbdF0pKT90aGlzLmRlc2VsZWN0SW5kZXgodCk6dGhpcy5zZWxlY3RJbmRleCh0KX0sY2xlYXJTZWxlY3Rpb246ZnVuY3Rpb24oKXt0aGlzLl9pdGVyYXRlSXRlbXMoKGZ1bmN0aW9uKHQsZSl7dGhpcy5tb2RlbEZvckVsZW1lbnQodGhpcy5fcGh5c2ljYWxJdGVtc1t0XSlbdGhpcy5zZWxlY3RlZEFzXT0hMX0pKSx0aGlzLiQuc2VsZWN0b3IuY2xlYXJTZWxlY3Rpb24oKX0sX3NlbGVjdGlvbkVuYWJsZWRDaGFuZ2VkOmZ1bmN0aW9uKHQpeyh0P3RoaXMubGlzdGVuOnRoaXMudW5saXN0ZW4pLmNhbGwodGhpcyx0aGlzLCJ0YXAiLCJfc2VsZWN0aW9uSGFuZGxlciIpfSxfc2VsZWN0aW9uSGFuZGxlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLm1vZGVsRm9yRWxlbWVudCh0LnRhcmdldCk7aWYoZSl7dmFyIG4saSxyPWVyKHQpLnBhdGhbMF0sbz10aGlzLl9nZXRBY3RpdmVFbGVtZW50KCksYT10aGlzLl9waHlzaWNhbEl0ZW1zW3RoaXMuX2dldFBoeXNpY2FsSW5kZXgoZVt0aGlzLmluZGV4QXNdKV07ImlucHV0IiE9PXIubG9jYWxOYW1lJiYiYnV0dG9uIiE9PXIubG9jYWxOYW1lJiYic2VsZWN0IiE9PXIubG9jYWxOYW1lJiYobj1lLnRhYkluZGV4LGUudGFiSW5kZXg9UW8saT1vP28udGFiSW5kZXg6LTEsZS50YWJJbmRleD1uLG8mJmEhPT1vJiZhLmNvbnRhaW5zKG8pJiZpIT09UW98fHRoaXMudG9nZ2xlU2VsZWN0aW9uRm9ySXRlbShlW3RoaXMuYXNdKSl9fSxfbXVsdGlTZWxlY3Rpb25DaGFuZ2VkOmZ1bmN0aW9uKHQpe3RoaXMuY2xlYXJTZWxlY3Rpb24oKSx0aGlzLiQuc2VsZWN0b3IubXVsdGk9dH0sdXBkYXRlU2l6ZUZvckl0ZW06ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudXBkYXRlU2l6ZUZvckluZGV4KHRoaXMuaXRlbXMuaW5kZXhPZih0KSl9LHVwZGF0ZVNpemVGb3JJbmRleDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faXNJbmRleFJlbmRlcmVkKHQpPyh0aGlzLl91cGRhdGVNZXRyaWNzKFt0aGlzLl9nZXRQaHlzaWNhbEluZGV4KHQpXSksdGhpcy5fcG9zaXRpb25JdGVtcygpLG51bGwpOm51bGx9LF9tYW5hZ2VGb2N1czpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg7dD49MCYmdDx0aGlzLl92aXJ0dWFsQ291bnQ/dGhpcy5faXNJbmRleFJlbmRlcmVkKHQpP3RoaXMuX3Jlc3RvcmVGb2N1c2VkSXRlbSgpOnRoaXMuX2NyZWF0ZUZvY3VzQmFja2ZpbGxJdGVtKCk6dGhpcy5fdmlydHVhbENvdW50PjAmJnRoaXMuX3BoeXNpY2FsQ291bnQ+MCYmKHRoaXMuX2ZvY3VzZWRQaHlzaWNhbEluZGV4PXRoaXMuX3BoeXNpY2FsU3RhcnQsdGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleD10aGlzLl92aXJ0dWFsU3RhcnQsdGhpcy5fZm9jdXNlZEl0ZW09dGhpcy5fcGh5c2ljYWxJdGVtc1t0aGlzLl9waHlzaWNhbFN0YXJ0XSl9LF9jb252ZXJ0SW5kZXhUb0NvbXBsZXRlUm93OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pdGVtc1BlclJvdz10aGlzLl9pdGVtc1BlclJvd3x8MSx0aGlzLmdyaWQ/TWF0aC5jZWlsKHQvdGhpcy5faXRlbXNQZXJSb3cpKnRoaXMuX2l0ZW1zUGVyUm93OnR9LF9pc0luZGV4UmVuZGVyZWQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PXRoaXMuX3ZpcnR1YWxTdGFydCYmdDw9dGhpcy5fdmlydHVhbEVuZH0sX2lzSW5kZXhWaXNpYmxlOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj10aGlzLmZpcnN0VmlzaWJsZUluZGV4JiZ0PD10aGlzLmxhc3RWaXNpYmxlSW5kZXh9LF9nZXRQaHlzaWNhbEluZGV4OmZ1bmN0aW9uKHQpe3JldHVybih0aGlzLl9waHlzaWNhbFN0YXJ0Kyh0LXRoaXMuX3ZpcnR1YWxTdGFydCkpJXRoaXMuX3BoeXNpY2FsQ291bnR9LGZvY3VzSXRlbTpmdW5jdGlvbih0KXt0aGlzLl9mb2N1c1BoeXNpY2FsSXRlbSh0KX0sX2ZvY3VzUGh5c2ljYWxJdGVtOmZ1bmN0aW9uKHQpe2lmKCEodDwwfHx0Pj10aGlzLl92aXJ0dWFsQ291bnQpKXt0aGlzLl9yZXN0b3JlRm9jdXNlZEl0ZW0oKSx0aGlzLl9pc0luZGV4UmVuZGVyZWQodCl8fHRoaXMuc2Nyb2xsVG9JbmRleCh0KTt2YXIgZSxuPXRoaXMuX3BoeXNpY2FsSXRlbXNbdGhpcy5fZ2V0UGh5c2ljYWxJbmRleCh0KV0saT10aGlzLm1vZGVsRm9yRWxlbWVudChuKTtpLnRhYkluZGV4PVFvLG4udGFiSW5kZXg9PT1RbyYmKGU9biksZXx8KGU9ZXIobikucXVlcnlTZWxlY3RvcignW3RhYmluZGV4PSItMTAwIl0nKSksaS50YWJJbmRleD0wLHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg9dCxlJiZlLmZvY3VzKCl9fSxfcmVtb3ZlRm9jdXNlZEl0ZW06ZnVuY3Rpb24oKXt0aGlzLl9vZmZzY3JlZW5Gb2N1c2VkSXRlbSYmdGhpcy5faXRlbXNQYXJlbnQucmVtb3ZlQ2hpbGQodGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW0pLHRoaXMuX29mZnNjcmVlbkZvY3VzZWRJdGVtPW51bGwsdGhpcy5fZm9jdXNCYWNrZmlsbEl0ZW09bnVsbCx0aGlzLl9mb2N1c2VkSXRlbT1udWxsLHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg9LTEsdGhpcy5fZm9jdXNlZFBoeXNpY2FsSW5kZXg9LTF9LF9jcmVhdGVGb2N1c0JhY2tmaWxsSXRlbTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2ZvY3VzZWRQaHlzaWNhbEluZGV4O2lmKCEodGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW18fHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg8MCkpe2lmKCF0aGlzLl9mb2N1c0JhY2tmaWxsSXRlbSl7dmFyIGU9dGhpcy5zdGFtcChudWxsKTt0aGlzLl9mb2N1c0JhY2tmaWxsSXRlbT1lLnJvb3QucXVlcnlTZWxlY3RvcigiKiIpLHRoaXMuX2l0ZW1zUGFyZW50LmFwcGVuZENoaWxkKGUucm9vdCl9dGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW09dGhpcy5fcGh5c2ljYWxJdGVtc1t0XSx0aGlzLm1vZGVsRm9yRWxlbWVudCh0aGlzLl9vZmZzY3JlZW5Gb2N1c2VkSXRlbSkudGFiSW5kZXg9MCx0aGlzLl9waHlzaWNhbEl0ZW1zW3RdPXRoaXMuX2ZvY3VzQmFja2ZpbGxJdGVtLHRoaXMuX2ZvY3VzZWRQaHlzaWNhbEluZGV4PXQsdGhpcy50cmFuc2xhdGUzZCgwLEpvLDAsdGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW0pfX0sX3Jlc3RvcmVGb2N1c2VkSXRlbTpmdW5jdGlvbigpe2lmKHRoaXMuX29mZnNjcmVlbkZvY3VzZWRJdGVtJiYhKHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg8MCkpe3RoaXMuX2Fzc2lnbk1vZGVscygpO3ZhciB0PXRoaXMuX2ZvY3VzZWRQaHlzaWNhbEluZGV4PXRoaXMuX2dldFBoeXNpY2FsSW5kZXgodGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleCksZT10aGlzLl9waHlzaWNhbEl0ZW1zW3RdO2lmKGUpe3ZhciBuPXRoaXMubW9kZWxGb3JFbGVtZW50KGUpLGk9dGhpcy5tb2RlbEZvckVsZW1lbnQodGhpcy5fb2Zmc2NyZWVuRm9jdXNlZEl0ZW0pO25bdGhpcy5hc109PT1pW3RoaXMuYXNdPyh0aGlzLl9mb2N1c0JhY2tmaWxsSXRlbT1lLG4udGFiSW5kZXg9LTEsdGhpcy5fcGh5c2ljYWxJdGVtc1t0XT10aGlzLl9vZmZzY3JlZW5Gb2N1c2VkSXRlbSx0aGlzLnRyYW5zbGF0ZTNkKDAsSm8sMCx0aGlzLl9mb2N1c0JhY2tmaWxsSXRlbSkpOih0aGlzLl9yZW1vdmVGb2N1c2VkSXRlbSgpLHRoaXMuX2ZvY3VzQmFja2ZpbGxJdGVtPW51bGwpLHRoaXMuX29mZnNjcmVlbkZvY3VzZWRJdGVtPW51bGx9fX0sX2RpZEZvY3VzOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubW9kZWxGb3JFbGVtZW50KHQudGFyZ2V0KSxuPXRoaXMubW9kZWxGb3JFbGVtZW50KHRoaXMuX2ZvY3VzZWRJdGVtKSxpPW51bGwhPT10aGlzLl9vZmZzY3JlZW5Gb2N1c2VkSXRlbSxyPXRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg7ZSYmKG49PT1lP3RoaXMuX2lzSW5kZXhWaXNpYmxlKHIpfHx0aGlzLnNjcm9sbFRvSW5kZXgocik6KHRoaXMuX3Jlc3RvcmVGb2N1c2VkSXRlbSgpLG4mJihuLnRhYkluZGV4PS0xKSxlLnRhYkluZGV4PTAsdGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleD1yPWVbdGhpcy5pbmRleEFzXSx0aGlzLl9mb2N1c2VkUGh5c2ljYWxJbmRleD10aGlzLl9nZXRQaHlzaWNhbEluZGV4KHIpLHRoaXMuX2ZvY3VzZWRJdGVtPXRoaXMuX3BoeXNpY2FsSXRlbXNbdGhpcy5fZm9jdXNlZFBoeXNpY2FsSW5kZXhdLGkmJiF0aGlzLl9vZmZzY3JlZW5Gb2N1c2VkSXRlbSYmdGhpcy5fdXBkYXRlKCkpKX0sX2tleWRvd25IYW5kbGVyOmZ1bmN0aW9uKHQpe3N3aXRjaCh0LmtleUNvZGUpe2Nhc2UgNDA6dGhpcy5fZm9jdXNlZFZpcnR1YWxJbmRleDx0aGlzLl92aXJ0dWFsQ291bnQtMSYmdC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2ZvY3VzUGh5c2ljYWxJdGVtKHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXgrKHRoaXMuZ3JpZD90aGlzLl9pdGVtc1BlclJvdzoxKSk7YnJlYWs7Y2FzZSAzOTp0aGlzLmdyaWQmJnRoaXMuX2ZvY3VzUGh5c2ljYWxJdGVtKHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXgrKHRoaXMuX2lzUlRMPy0xOjEpKTticmVhaztjYXNlIDM4OnRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXg+MCYmdC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2ZvY3VzUGh5c2ljYWxJdGVtKHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXgtKHRoaXMuZ3JpZD90aGlzLl9pdGVtc1BlclJvdzoxKSk7YnJlYWs7Y2FzZSAzNzp0aGlzLmdyaWQmJnRoaXMuX2ZvY3VzUGh5c2ljYWxJdGVtKHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXgrKHRoaXMuX2lzUlRMPzE6LTEpKTticmVhaztjYXNlIDEzOnRoaXMuX2ZvY3VzUGh5c2ljYWxJdGVtKHRoaXMuX2ZvY3VzZWRWaXJ0dWFsSW5kZXgpLHRoaXMuc2VsZWN0aW9uRW5hYmxlZCYmdGhpcy5fc2VsZWN0aW9uSGFuZGxlcih0KX19LF9jbGFtcDpmdW5jdGlvbih0LGUsbil7cmV0dXJuIE1hdGgubWluKG4sTWF0aC5tYXgoZSx0KSl9LF9kZWJvdW5jZTpmdW5jdGlvbih0LGUsbil7dGhpcy5fZGVib3VuY2Vycz10aGlzLl9kZWJvdW5jZXJzfHx7fSx0aGlzLl9kZWJvdW5jZXJzW3RdPU5uLmRlYm91bmNlKHRoaXMuX2RlYm91bmNlcnNbdF0sbixlLmJpbmQodGhpcykpLFJuKHRoaXMuX2RlYm91bmNlcnNbdF0pfSxfZm9yd2FyZFByb3BlcnR5OmZ1bmN0aW9uKHQsZSxuKXt0Ll9zZXRQZW5kaW5nUHJvcGVydHkoZSxuKX0sX2ZvcndhcmRIb3N0UHJvcFYyOmZ1bmN0aW9uKHQsZSl7KHRoaXMuX3BoeXNpY2FsSXRlbXN8fFtdKS5jb25jYXQoW3RoaXMuX29mZnNjcmVlbkZvY3VzZWRJdGVtLHRoaXMuX2ZvY3VzQmFja2ZpbGxJdGVtXSkuZm9yRWFjaCgoZnVuY3Rpb24obil7biYmdGhpcy5tb2RlbEZvckVsZW1lbnQobikuZm9yd2FyZEhvc3RQcm9wKHQsZSl9KSx0aGlzKX0sX25vdGlmeUluc3RhbmNlUHJvcFYyOmZ1bmN0aW9uKHQsZSxuKXtpZihRKHRoaXMuYXMsZSkpe3ZhciBpPXRbdGhpcy5pbmRleEFzXTtlPT10aGlzLmFzJiYodGhpcy5pdGVtc1tpXT1uKSx0aGlzLm5vdGlmeVBhdGgoSih0aGlzLmFzLCJpdGVtcy4iK2ksZSksbil9fSxfZ2V0U3RhbXBlZENoaWxkcmVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BoeXNpY2FsSXRlbXN9LF9mb3J3YXJkSW5zdGFuY2VQYXRoOmZ1bmN0aW9uKHQsZSxuKXswPT09ZS5pbmRleE9mKHRoaXMuYXMrIi4iKSYmdGhpcy5ub3RpZnlQYXRoKCJpdGVtcy4iK3QuX19rZXlfXysiLiIrZS5zbGljZSh0aGlzLmFzLmxlbmd0aCsxKSxuKX0sX2ZvcndhcmRQYXJlbnRQYXRoOmZ1bmN0aW9uKHQsZSl7KHRoaXMuX3BoeXNpY2FsSXRlbXN8fFtdKS5jb25jYXQoW3RoaXMuX29mZnNjcmVlbkZvY3VzZWRJdGVtLHRoaXMuX2ZvY3VzQmFja2ZpbGxJdGVtXSkuZm9yRWFjaCgoZnVuY3Rpb24obil7biYmdGhpcy5tb2RlbEZvckVsZW1lbnQobikubm90aWZ5UGF0aCh0LGUpfSksdGhpcyl9LF9mb3J3YXJkUGFyZW50UHJvcDpmdW5jdGlvbih0LGUpeyh0aGlzLl9waHlzaWNhbEl0ZW1zfHxbXSkuY29uY2F0KFt0aGlzLl9vZmZzY3JlZW5Gb2N1c2VkSXRlbSx0aGlzLl9mb2N1c0JhY2tmaWxsSXRlbV0pLmZvckVhY2goKGZ1bmN0aW9uKG4pe24mJih0aGlzLm1vZGVsRm9yRWxlbWVudChuKVt0XT1lKX0pLHRoaXMpfSxfZ2V0QWN0aXZlRWxlbWVudDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2l0ZW1zUGFyZW50Lm5vZGUuZG9tSG9zdDtyZXR1cm4gZXIodD90LnJvb3Q6ZG9jdW1lbnQpLmFjdGl2ZUVsZW1lbnR9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjbGFzcyB0YXtjb25zdHJ1Y3Rvcih0KXt0aGlzLnNlbGVjdGlvbj1bXSx0aGlzLnNlbGVjdENhbGxiYWNrPXR9Z2V0KCl7cmV0dXJuIHRoaXMubXVsdGk/dGhpcy5zZWxlY3Rpb24uc2xpY2UoKTp0aGlzLnNlbGVjdGlvblswXX1jbGVhcih0KXt0aGlzLnNlbGVjdGlvbi5zbGljZSgpLmZvckVhY2goKGZ1bmN0aW9uKGUpeyghdHx8dC5pbmRleE9mKGUpPDApJiZ0aGlzLnNldEl0ZW1TZWxlY3RlZChlLCExKX0pLHRoaXMpfWlzU2VsZWN0ZWQodCl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uLmluZGV4T2YodCk+PTB9c2V0SXRlbVNlbGVjdGVkKHQsZSl7aWYobnVsbCE9dCYmZSE9PXRoaXMuaXNTZWxlY3RlZCh0KSl7aWYoZSl0aGlzLnNlbGVjdGlvbi5wdXNoKHQpO2Vsc2V7dmFyIG49dGhpcy5zZWxlY3Rpb24uaW5kZXhPZih0KTtuPj0wJiZ0aGlzLnNlbGVjdGlvbi5zcGxpY2UobiwxKX10aGlzLnNlbGVjdENhbGxiYWNrJiZ0aGlzLnNlbGVjdENhbGxiYWNrKHQsZSl9fXNlbGVjdCh0KXt0aGlzLm11bHRpP3RoaXMudG9nZ2xlKHQpOnRoaXMuZ2V0KCkhPT10JiYodGhpcy5zZXRJdGVtU2VsZWN0ZWQodGhpcy5nZXQoKSwhMSksdGhpcy5zZXRJdGVtU2VsZWN0ZWQodCwhMCkpfXRvZ2dsZSh0KXt0aGlzLnNldEl0ZW1TZWxlY3RlZCh0LCF0aGlzLmlzU2VsZWN0ZWQodCkpfX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovY29uc3QgZWE9e3Byb3BlcnRpZXM6e2F0dHJGb3JTZWxlY3RlZDp7dHlwZTpTdHJpbmcsdmFsdWU6bnVsbH0sc2VsZWN0ZWQ6e3R5cGU6U3RyaW5nLG5vdGlmeTohMH0sc2VsZWN0ZWRJdGVtOnt0eXBlOk9iamVjdCxyZWFkT25seTohMCxub3RpZnk6ITB9LGFjdGl2YXRlRXZlbnQ6e3R5cGU6U3RyaW5nLHZhbHVlOiJ0YXAiLG9ic2VydmVyOiJfYWN0aXZhdGVFdmVudENoYW5nZWQifSxzZWxlY3RhYmxlOlN0cmluZyxzZWxlY3RlZENsYXNzOnt0eXBlOlN0cmluZyx2YWx1ZToiaXJvbi1zZWxlY3RlZCJ9LHNlbGVjdGVkQXR0cmlidXRlOnt0eXBlOlN0cmluZyx2YWx1ZTpudWxsfSxmYWxsYmFja1NlbGVjdGlvbjp7dHlwZTpTdHJpbmcsdmFsdWU6bnVsbH0saXRlbXM6e3R5cGU6QXJyYXkscmVhZE9ubHk6ITAsbm90aWZ5OiEwLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuW119fSxfZXhjbHVkZWRMb2NhbE5hbWVzOnt0eXBlOk9iamVjdCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybnt0ZW1wbGF0ZToxLCJkb20tYmluZCI6MSwiZG9tLWlmIjoxLCJkb20tcmVwZWF0IjoxfX19fSxvYnNlcnZlcnM6WyJfdXBkYXRlQXR0ckZvclNlbGVjdGVkKGF0dHJGb3JTZWxlY3RlZCkiLCJfdXBkYXRlU2VsZWN0ZWQoc2VsZWN0ZWQpIiwiX2NoZWNrRmFsbGJhY2soZmFsbGJhY2tTZWxlY3Rpb24pIl0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuX2JpbmRGaWx0ZXJJdGVtPXRoaXMuX2ZpbHRlckl0ZW0uYmluZCh0aGlzKSx0aGlzLl9zZWxlY3Rpb249bmV3IHRhKHRoaXMuX2FwcGx5U2VsZWN0aW9uLmJpbmQodGhpcykpfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX29ic2VydmVyPXRoaXMuX29ic2VydmVJdGVtcyh0aGlzKSx0aGlzLl9hZGRMaXN0ZW5lcih0aGlzLmFjdGl2YXRlRXZlbnQpfSxkZXRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX29ic2VydmVyJiZlcih0aGlzKS51bm9ic2VydmVOb2Rlcyh0aGlzLl9vYnNlcnZlciksdGhpcy5fcmVtb3ZlTGlzdGVuZXIodGhpcy5hY3RpdmF0ZUV2ZW50KX0saW5kZXhPZjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pdGVtcz90aGlzLml0ZW1zLmluZGV4T2YodCk6LTF9LHNlbGVjdDpmdW5jdGlvbih0KXt0aGlzLnNlbGVjdGVkPXR9LHNlbGVjdFByZXZpb3VzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5pdGVtcy5sZW5ndGgsZT10LTE7dm9pZCAwIT09dGhpcy5zZWxlY3RlZCYmKGU9KE51bWJlcih0aGlzLl92YWx1ZVRvSW5kZXgodGhpcy5zZWxlY3RlZCkpLTErdCkldCksdGhpcy5zZWxlY3RlZD10aGlzLl9pbmRleFRvVmFsdWUoZSl9LHNlbGVjdE5leHQ6ZnVuY3Rpb24oKXt2YXIgdD0wO3ZvaWQgMCE9PXRoaXMuc2VsZWN0ZWQmJih0PShOdW1iZXIodGhpcy5fdmFsdWVUb0luZGV4KHRoaXMuc2VsZWN0ZWQpKSsxKSV0aGlzLml0ZW1zLmxlbmd0aCksdGhpcy5zZWxlY3RlZD10aGlzLl9pbmRleFRvVmFsdWUodCl9LHNlbGVjdEluZGV4OmZ1bmN0aW9uKHQpe3RoaXMuc2VsZWN0KHRoaXMuX2luZGV4VG9WYWx1ZSh0KSl9LGZvcmNlU3luY2hyb25vdXNJdGVtVXBkYXRlOmZ1bmN0aW9uKCl7dGhpcy5fb2JzZXJ2ZXImJiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLl9vYnNlcnZlci5mbHVzaD90aGlzLl9vYnNlcnZlci5mbHVzaCgpOnRoaXMuX3VwZGF0ZUl0ZW1zKCl9LGdldCBfc2hvdWxkVXBkYXRlU2VsZWN0aW9uKCl7cmV0dXJuIG51bGwhPXRoaXMuc2VsZWN0ZWR9LF9jaGVja0ZhbGxiYWNrOmZ1bmN0aW9uKCl7dGhpcy5fdXBkYXRlU2VsZWN0ZWQoKX0sX2FkZExpc3RlbmVyOmZ1bmN0aW9uKHQpe3RoaXMubGlzdGVuKHRoaXMsdCwiX2FjdGl2YXRlSGFuZGxlciIpfSxfcmVtb3ZlTGlzdGVuZXI6ZnVuY3Rpb24odCl7dGhpcy51bmxpc3Rlbih0aGlzLHQsIl9hY3RpdmF0ZUhhbmRsZXIiKX0sX2FjdGl2YXRlRXZlbnRDaGFuZ2VkOmZ1bmN0aW9uKHQsZSl7dGhpcy5fcmVtb3ZlTGlzdGVuZXIoZSksdGhpcy5fYWRkTGlzdGVuZXIodCl9LF91cGRhdGVJdGVtczpmdW5jdGlvbigpe3ZhciB0PWVyKHRoaXMpLnF1ZXJ5RGlzdHJpYnV0ZWRFbGVtZW50cyh0aGlzLnNlbGVjdGFibGV8fCIqIik7dD1BcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwodCx0aGlzLl9iaW5kRmlsdGVySXRlbSksdGhpcy5fc2V0SXRlbXModCl9LF91cGRhdGVBdHRyRm9yU2VsZWN0ZWQ6ZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVkSXRlbSYmKHRoaXMuc2VsZWN0ZWQ9dGhpcy5fdmFsdWVGb3JJdGVtKHRoaXMuc2VsZWN0ZWRJdGVtKSl9LF91cGRhdGVTZWxlY3RlZDpmdW5jdGlvbigpe3RoaXMuX3NlbGVjdFNlbGVjdGVkKHRoaXMuc2VsZWN0ZWQpfSxfc2VsZWN0U2VsZWN0ZWQ6ZnVuY3Rpb24odCl7aWYodGhpcy5pdGVtcyl7dmFyIGU9dGhpcy5fdmFsdWVUb0l0ZW0odGhpcy5zZWxlY3RlZCk7ZT90aGlzLl9zZWxlY3Rpb24uc2VsZWN0KGUpOnRoaXMuX3NlbGVjdGlvbi5jbGVhcigpLHRoaXMuZmFsbGJhY2tTZWxlY3Rpb24mJnRoaXMuaXRlbXMubGVuZ3RoJiZ2b2lkIDA9PT10aGlzLl9zZWxlY3Rpb24uZ2V0KCkmJih0aGlzLnNlbGVjdGVkPXRoaXMuZmFsbGJhY2tTZWxlY3Rpb24pfX0sX2ZpbHRlckl0ZW06ZnVuY3Rpb24odCl7cmV0dXJuIXRoaXMuX2V4Y2x1ZGVkTG9jYWxOYW1lc1t0LmxvY2FsTmFtZV19LF92YWx1ZVRvSXRlbTpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9udWxsOnRoaXMuaXRlbXNbdGhpcy5fdmFsdWVUb0luZGV4KHQpXX0sX3ZhbHVlVG9JbmRleDpmdW5jdGlvbih0KXtpZighdGhpcy5hdHRyRm9yU2VsZWN0ZWQpcmV0dXJuIE51bWJlcih0KTtmb3IodmFyIGUsbj0wO2U9dGhpcy5pdGVtc1tuXTtuKyspaWYodGhpcy5fdmFsdWVGb3JJdGVtKGUpPT10KXJldHVybiBufSxfaW5kZXhUb1ZhbHVlOmZ1bmN0aW9uKHQpe2lmKCF0aGlzLmF0dHJGb3JTZWxlY3RlZClyZXR1cm4gdDt2YXIgZT10aGlzLml0ZW1zW3RdO3JldHVybiBlP3RoaXMuX3ZhbHVlRm9ySXRlbShlKTp2b2lkIDB9LF92YWx1ZUZvckl0ZW06ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIG51bGw7aWYoIXRoaXMuYXR0ckZvclNlbGVjdGVkKXt2YXIgZT10aGlzLmluZGV4T2YodCk7cmV0dXJuLTE9PT1lP251bGw6ZX12YXIgbj10W3N0KHRoaXMuYXR0ckZvclNlbGVjdGVkKV07cmV0dXJuIG51bGwhPW4/bjp0LmdldEF0dHJpYnV0ZSh0aGlzLmF0dHJGb3JTZWxlY3RlZCl9LF9hcHBseVNlbGVjdGlvbjpmdW5jdGlvbih0LGUpe3RoaXMuc2VsZWN0ZWRDbGFzcyYmdGhpcy50b2dnbGVDbGFzcyh0aGlzLnNlbGVjdGVkQ2xhc3MsZSx0KSx0aGlzLnNlbGVjdGVkQXR0cmlidXRlJiZ0aGlzLnRvZ2dsZUF0dHJpYnV0ZSh0aGlzLnNlbGVjdGVkQXR0cmlidXRlLGUsdCksdGhpcy5fc2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5maXJlKCJpcm9uLSIrKGU/InNlbGVjdCI6ImRlc2VsZWN0Iikse2l0ZW06dH0pfSxfc2VsZWN0aW9uQ2hhbmdlOmZ1bmN0aW9uKCl7dGhpcy5fc2V0U2VsZWN0ZWRJdGVtKHRoaXMuX3NlbGVjdGlvbi5nZXQoKSl9LF9vYnNlcnZlSXRlbXM6ZnVuY3Rpb24odCl7cmV0dXJuIGVyKHQpLm9ic2VydmVOb2RlcygoZnVuY3Rpb24odCl7dGhpcy5fdXBkYXRlSXRlbXMoKSx0aGlzLl91cGRhdGVTZWxlY3RlZCgpLHRoaXMuZmlyZSgiaXJvbi1pdGVtcy1jaGFuZ2VkIix0LHtidWJibGVzOiExLGNhbmNlbGFibGU6ITF9KX0pKX0sX2FjdGl2YXRlSGFuZGxlcjpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC50YXJnZXQsbj10aGlzLml0ZW1zO2UmJmUhPXRoaXM7KXt2YXIgaT1uLmluZGV4T2YoZSk7aWYoaT49MCl7dmFyIHI9dGhpcy5faW5kZXhUb1ZhbHVlKGkpO3JldHVybiB2b2lkIHRoaXMuX2l0ZW1BY3RpdmF0ZShyLGUpfWU9ZS5wYXJlbnROb2RlfX0sX2l0ZW1BY3RpdmF0ZTpmdW5jdGlvbih0LGUpe3RoaXMuZmlyZSgiaXJvbi1hY3RpdmF0ZSIse3NlbGVjdGVkOnQsaXRlbTplfSx7Y2FuY2VsYWJsZTohMH0pLmRlZmF1bHRQcmV2ZW50ZWR8fHRoaXMuc2VsZWN0KHQpfX07Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL2pyKHtfdGVtcGxhdGU6eGVgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgOmhvc3QgPiA6OnNsb3R0ZWQoOm5vdChzbG90KTpub3QoLmlyb24tc2VsZWN0ZWQpKSB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxzbG90Pjwvc2xvdD4KYCxpczoiaXJvbi1wYWdlcyIsYmVoYXZpb3JzOltDbyxlYV0scHJvcGVydGllczp7YWN0aXZhdGVFdmVudDp7dHlwZTpTdHJpbmcsdmFsdWU6bnVsbH19LG9ic2VydmVyczpbIl9zZWxlY3RlZFBhZ2VDaGFuZ2VkKHNlbGVjdGVkKSJdLF9zZWxlY3RlZFBhZ2VDaGFuZ2VkOmZ1bmN0aW9uKHQsZSl7dGhpcy5hc3luYyh0aGlzLm5vdGlmeVJlc2l6ZSl9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBuYT14ZWAKPGN1c3RvbS1zdHlsZT4KICA8c3R5bGUgaXM9ImN1c3RvbS1zdHlsZSI+CiAgICBodG1sIHsKCiAgICAgIC0tc2hhZG93LXRyYW5zaXRpb246IHsKICAgICAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMjhzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH07CgogICAgICAtLXNoYWRvdy1ub25lOiB7CiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsKICAgICAgfTsKCiAgICAgIC8qIGZyb20gaHR0cDovL2NvZGVwZW4uaW8vc2h5bmRtYW4vcGVuL2M1Mzk0ZGRmMmU4YjJhNWM5MTg1OTA0YjU3NDIxY2RiICovCgogICAgICAtLXNoYWRvdy1lbGV2YXRpb24tMmRwOiB7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwKICAgICAgICAgICAgICAgICAgICAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLAogICAgICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKTsKICAgICAgfTsKCiAgICAgIC0tc2hhZG93LWVsZXZhdGlvbi0zZHA6IHsKICAgICAgICBib3gtc2hhZG93OiAwIDNweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLAogICAgICAgICAgICAgICAgICAgIDAgMXB4IDhweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksCiAgICAgICAgICAgICAgICAgICAgMCAzcHggM3B4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjQpOwogICAgICB9OwoKICAgICAgLS1zaGFkb3ctZWxldmF0aW9uLTRkcDogewogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksCiAgICAgICAgICAgICAgICAgICAgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksCiAgICAgICAgICAgICAgICAgICAgMCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjQpOwogICAgICB9OwoKICAgICAgLS1zaGFkb3ctZWxldmF0aW9uLTZkcDogewogICAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLAogICAgICAgICAgICAgICAgICAgIDAgMXB4IDE4cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLAogICAgICAgICAgICAgICAgICAgIDAgM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC40KTsKICAgICAgfTsKCiAgICAgIC0tc2hhZG93LWVsZXZhdGlvbi04ZHA6IHsKICAgICAgICBib3gtc2hhZG93OiAwIDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLAogICAgICAgICAgICAgICAgICAgIDAgM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMiksCiAgICAgICAgICAgICAgICAgICAgMCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjQpOwogICAgICB9OwoKICAgICAgLS1zaGFkb3ctZWxldmF0aW9uLTEyZHA6IHsKICAgICAgICBib3gtc2hhZG93OiAwIDEycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwKICAgICAgICAgICAgICAgICAgICAwIDRweCAyMnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpLAogICAgICAgICAgICAgICAgICAgIDAgNnB4IDdweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC40KTsKICAgICAgfTsKCiAgICAgIC0tc2hhZG93LWVsZXZhdGlvbi0xNmRwOiB7CiAgICAgICAgYm94LXNoYWRvdzogMCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksCiAgICAgICAgICAgICAgICAgICAgMCAgNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMiksCiAgICAgICAgICAgICAgICAgICAgMCAgOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgICAgIH07CgogICAgICAtLXNoYWRvdy1lbGV2YXRpb24tMjRkcDogewogICAgICAgIGJveC1zaGFkb3c6IDAgMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLAogICAgICAgICAgICAgICAgICAgIDAgOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMiksCiAgICAgICAgICAgICAgICAgICAgMCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgICAgIH07CiAgICB9CiAgPC9zdHlsZT4KPC9jdXN0b20tc3R5bGU+YDtuYS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTogbm9uZTsiKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG5hLmNvbnRlbnQpOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgaWE9eGVgCjxkb20tbW9kdWxlIGlkPSJwYXBlci1tYXRlcmlhbC1zdHlsZXMiPgogIDx0ZW1wbGF0ZT4KICAgIDxzdHlsZT4KICAgICAgaHRtbCB7CiAgICAgICAgLS1wYXBlci1tYXRlcmlhbDogewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgfTsKICAgICAgICAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi0xOiB7CiAgICAgICAgICBAYXBwbHkgLS1zaGFkb3ctZWxldmF0aW9uLTJkcDsKICAgICAgICB9OwogICAgICAgIC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTI6IHsKICAgICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tNGRwOwogICAgICAgIH07CiAgICAgICAgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMzogewogICAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi02ZHA7CiAgICAgICAgfTsKICAgICAgICAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi00OiB7CiAgICAgICAgICBAYXBwbHkgLS1zaGFkb3ctZWxldmF0aW9uLThkcDsKICAgICAgICB9OwogICAgICAgIC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTU6IHsKICAgICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tMTZkcDsKICAgICAgICB9OwogICAgICB9CiAgICAgIC5wYXBlci1tYXRlcmlhbCB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItbWF0ZXJpYWw7CiAgICAgIH0KICAgICAgLnBhcGVyLW1hdGVyaWFsW2VsZXZhdGlvbj0iMSJdIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMTsKICAgICAgfQogICAgICAucGFwZXItbWF0ZXJpYWxbZWxldmF0aW9uPSIyIl0gewogICAgICAgIEBhcHBseSAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi0yOwogICAgICB9CiAgICAgIC5wYXBlci1tYXRlcmlhbFtlbGV2YXRpb249IjMiXSB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTM7CiAgICAgIH0KICAgICAgLnBhcGVyLW1hdGVyaWFsW2VsZXZhdGlvbj0iNCJdIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tNDsKICAgICAgfQogICAgICAucGFwZXItbWF0ZXJpYWxbZWxldmF0aW9uPSI1Il0gewogICAgICAgIEBhcHBseSAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi01OwogICAgICB9CgogICAgICAvKiBEdXBsaWNhdGUgdGhlIHN0eWxlcyBiZWNhdXNlIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJjb21wb25lbnRzL3NoYWR5Y3NzL2lzc3Vlcy8xOTMgKi8KICAgICAgOmhvc3QgewogICAgICAgIC0tcGFwZXItbWF0ZXJpYWw6IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH07CiAgICAgICAgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMTogewogICAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi0yZHA7CiAgICAgICAgfTsKICAgICAgICAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi0yOiB7CiAgICAgICAgICBAYXBwbHkgLS1zaGFkb3ctZWxldmF0aW9uLTRkcDsKICAgICAgICB9OwogICAgICAgIC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTM6IHsKICAgICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tNmRwOwogICAgICAgIH07CiAgICAgICAgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tNDogewogICAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi04ZHA7CiAgICAgICAgfTsKICAgICAgICAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi01OiB7CiAgICAgICAgICBAYXBwbHkgLS1zaGFkb3ctZWxldmF0aW9uLTE2ZHA7CiAgICAgICAgfTsKICAgICAgfQogICAgICA6aG9zdCgucGFwZXItbWF0ZXJpYWwpIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbDsKICAgICAgfQogICAgICA6aG9zdCgucGFwZXItbWF0ZXJpYWxbZWxldmF0aW9uPSIxIl0pIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMTsKICAgICAgfQogICAgICA6aG9zdCgucGFwZXItbWF0ZXJpYWxbZWxldmF0aW9uPSIyIl0pIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMjsKICAgICAgfQogICAgICA6aG9zdCgucGFwZXItbWF0ZXJpYWxbZWxldmF0aW9uPSIzIl0pIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMzsKICAgICAgfQogICAgICA6aG9zdCgucGFwZXItbWF0ZXJpYWxbZWxldmF0aW9uPSI0Il0pIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tNDsKICAgICAgfQogICAgICA6aG9zdCgucGFwZXItbWF0ZXJpYWxbZWxldmF0aW9uPSI1Il0pIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tNTsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L3RlbXBsYXRlPgo8L2RvbS1tb2R1bGU+YDtpYS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTogbm9uZTsiKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGlhLmNvbnRlbnQpOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgcmE9e3Byb3BlcnRpZXM6e2ZvY3VzZWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxub3RpZnk6ITAscmVhZE9ubHk6ITAscmVmbGVjdFRvQXR0cmlidXRlOiEwfSxkaXNhYmxlZDp7dHlwZTpCb29sZWFuLHZhbHVlOiExLG5vdGlmeTohMCxvYnNlcnZlcjoiX2Rpc2FibGVkQ2hhbmdlZCIscmVmbGVjdFRvQXR0cmlidXRlOiEwfSxfb2xkVGFiSW5kZXg6e3R5cGU6U3RyaW5nfSxfYm91bmRGb2N1c0JsdXJIYW5kbGVyOnt0eXBlOkZ1bmN0aW9uLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ZvY3VzQmx1ckhhbmRsZXIuYmluZCh0aGlzKX19fSxvYnNlcnZlcnM6WyJfY2hhbmdlZENvbnRyb2xTdGF0ZShmb2N1c2VkLCBkaXNhYmxlZCkiXSxyZWFkeTpmdW5jdGlvbigpe3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuX2JvdW5kRm9jdXNCbHVySGFuZGxlciwhMCksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl9ib3VuZEZvY3VzQmx1ckhhbmRsZXIsITApfSxfZm9jdXNCbHVySGFuZGxlcjpmdW5jdGlvbih0KXt0aGlzLl9zZXRGb2N1c2VkKCJmb2N1cyI9PT10LnR5cGUpfSxfZGlzYWJsZWRDaGFuZ2VkOmZ1bmN0aW9uKHQsZSl7dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtZGlzYWJsZWQiLHQ/InRydWUiOiJmYWxzZSIpLHRoaXMuc3R5bGUucG9pbnRlckV2ZW50cz10PyJub25lIjoiIix0Pyh0aGlzLl9vbGRUYWJJbmRleD10aGlzLmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKSx0aGlzLl9zZXRGb2N1c2VkKCExKSx0aGlzLnRhYkluZGV4PS0xLHRoaXMuYmx1cigpKTp2b2lkIDAhPT10aGlzLl9vbGRUYWJJbmRleCYmKG51bGw9PT10aGlzLl9vbGRUYWJJbmRleD90aGlzLnJlbW92ZUF0dHJpYnV0ZSgidGFiaW5kZXgiKTp0aGlzLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLHRoaXMuX29sZFRhYkluZGV4KSl9LF9jaGFuZ2VkQ29udHJvbFN0YXRlOmZ1bmN0aW9uKCl7dGhpcy5fY29udHJvbFN0YXRlQ2hhbmdlZCYmdGhpcy5fY29udHJvbFN0YXRlQ2hhbmdlZCgpfX0sb2E9e3Byb3BlcnRpZXM6e3ByZXNzZWQ6e3R5cGU6Qm9vbGVhbixyZWFkT25seTohMCx2YWx1ZTohMSxyZWZsZWN0VG9BdHRyaWJ1dGU6ITAsb2JzZXJ2ZXI6Il9wcmVzc2VkQ2hhbmdlZCJ9LHRvZ2dsZXM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9LGFjdGl2ZTp7dHlwZTpCb29sZWFuLHZhbHVlOiExLG5vdGlmeTohMCxyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9LHBvaW50ZXJEb3duOnt0eXBlOkJvb2xlYW4scmVhZE9ubHk6ITAsdmFsdWU6ITF9LHJlY2VpdmVkRm9jdXNGcm9tS2V5Ym9hcmQ6e3R5cGU6Qm9vbGVhbixyZWFkT25seTohMH0sYXJpYUFjdGl2ZUF0dHJpYnV0ZTp7dHlwZTpTdHJpbmcsdmFsdWU6ImFyaWEtcHJlc3NlZCIsb2JzZXJ2ZXI6Il9hcmlhQWN0aXZlQXR0cmlidXRlQ2hhbmdlZCJ9fSxsaXN0ZW5lcnM6e2Rvd246Il9kb3duSGFuZGxlciIsdXA6Il91cEhhbmRsZXIiLHRhcDoiX3RhcEhhbmRsZXIifSxvYnNlcnZlcnM6WyJfZm9jdXNDaGFuZ2VkKGZvY3VzZWQpIiwiX2FjdGl2ZUNoYW5nZWQoYWN0aXZlLCBhcmlhQWN0aXZlQXR0cmlidXRlKSJdLGtleUJpbmRpbmdzOnsiZW50ZXI6a2V5ZG93biI6Il9hc3luY0NsaWNrIiwic3BhY2U6a2V5ZG93biI6Il9zcGFjZUtleURvd25IYW5kbGVyIiwic3BhY2U6a2V5dXAiOiJfc3BhY2VLZXlVcEhhbmRsZXIifSxfbW91c2VFdmVudFJlOi9ebW91c2UvLF90YXBIYW5kbGVyOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVzP3RoaXMuX3VzZXJBY3RpdmF0ZSghdGhpcy5hY3RpdmUpOnRoaXMuYWN0aXZlPSExfSxfZm9jdXNDaGFuZ2VkOmZ1bmN0aW9uKHQpe3RoaXMuX2RldGVjdEtleWJvYXJkRm9jdXModCksdHx8dGhpcy5fc2V0UHJlc3NlZCghMSl9LF9kZXRlY3RLZXlib2FyZEZvY3VzOmZ1bmN0aW9uKHQpe3RoaXMuX3NldFJlY2VpdmVkRm9jdXNGcm9tS2V5Ym9hcmQoIXRoaXMucG9pbnRlckRvd24mJnQpfSxfdXNlckFjdGl2YXRlOmZ1bmN0aW9uKHQpe3RoaXMuYWN0aXZlIT09dCYmKHRoaXMuYWN0aXZlPXQsdGhpcy5maXJlKCJjaGFuZ2UiKSl9LF9kb3duSGFuZGxlcjpmdW5jdGlvbih0KXt0aGlzLl9zZXRQb2ludGVyRG93bighMCksdGhpcy5fc2V0UHJlc3NlZCghMCksdGhpcy5fc2V0UmVjZWl2ZWRGb2N1c0Zyb21LZXlib2FyZCghMSl9LF91cEhhbmRsZXI6ZnVuY3Rpb24oKXt0aGlzLl9zZXRQb2ludGVyRG93bighMSksdGhpcy5fc2V0UHJlc3NlZCghMSl9LF9zcGFjZUtleURvd25IYW5kbGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXQuZGV0YWlsLmtleWJvYXJkRXZlbnQsbj1lcihlKS5sb2NhbFRhcmdldDt0aGlzLmlzTGlnaHREZXNjZW5kYW50KG4pfHwoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdGhpcy5fc2V0UHJlc3NlZCghMCkpfSxfc3BhY2VLZXlVcEhhbmRsZXI6ZnVuY3Rpb24odCl7dmFyIGU9ZXIodC5kZXRhaWwua2V5Ym9hcmRFdmVudCkubG9jYWxUYXJnZXQ7dGhpcy5pc0xpZ2h0RGVzY2VuZGFudChlKXx8KHRoaXMucHJlc3NlZCYmdGhpcy5fYXN5bmNDbGljaygpLHRoaXMuX3NldFByZXNzZWQoITEpKX0sX2FzeW5jQ2xpY2s6ZnVuY3Rpb24oKXt0aGlzLmFzeW5jKChmdW5jdGlvbigpe3RoaXMuY2xpY2soKX0pLDEpfSxfcHJlc3NlZENoYW5nZWQ6ZnVuY3Rpb24odCl7dGhpcy5fY2hhbmdlZEJ1dHRvblN0YXRlKCl9LF9hcmlhQWN0aXZlQXR0cmlidXRlQ2hhbmdlZDpmdW5jdGlvbih0LGUpe2UmJmUhPXQmJnRoaXMuaGFzQXR0cmlidXRlKGUpJiZ0aGlzLnJlbW92ZUF0dHJpYnV0ZShlKX0sX2FjdGl2ZUNoYW5nZWQ6ZnVuY3Rpb24odCxlKXt0aGlzLnRvZ2dsZXM/dGhpcy5zZXRBdHRyaWJ1dGUodGhpcy5hcmlhQWN0aXZlQXR0cmlidXRlLHQ/InRydWUiOiJmYWxzZSIpOnRoaXMucmVtb3ZlQXR0cmlidXRlKHRoaXMuYXJpYUFjdGl2ZUF0dHJpYnV0ZSksdGhpcy5fY2hhbmdlZEJ1dHRvblN0YXRlKCl9LF9jb250cm9sU3RhdGVDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlZD90aGlzLl9zZXRQcmVzc2VkKCExKTp0aGlzLl9jaGFuZ2VkQnV0dG9uU3RhdGUoKX0sX2NoYW5nZWRCdXR0b25TdGF0ZTpmdW5jdGlvbigpe3RoaXMuX2J1dHRvblN0YXRlQ2hhbmdlZCYmdGhpcy5fYnV0dG9uU3RhdGVDaGFuZ2VkKCl9fSxhYT1bWG8sb2FdOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCnZhciBzYT17ZGlzdGFuY2U6ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dC1uLG89ZS1pO3JldHVybiBNYXRoLnNxcnQocipyK28qbyl9LG5vdzp3aW5kb3cucGVyZm9ybWFuY2UmJndpbmRvdy5wZXJmb3JtYW5jZS5ub3c/d2luZG93LnBlcmZvcm1hbmNlLm5vdy5iaW5kKHdpbmRvdy5wZXJmb3JtYW5jZSk6RGF0ZS5ub3d9O2Z1bmN0aW9uIGxhKHQpe3RoaXMuZWxlbWVudD10LHRoaXMud2lkdGg9dGhpcy5ib3VuZGluZ1JlY3Qud2lkdGgsdGhpcy5oZWlnaHQ9dGhpcy5ib3VuZGluZ1JlY3QuaGVpZ2h0LHRoaXMuc2l6ZT1NYXRoLm1heCh0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KX1mdW5jdGlvbiBjYSh0KXt0aGlzLmVsZW1lbnQ9dCx0aGlzLmNvbG9yPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLmNvbG9yLHRoaXMud2F2ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLndhdmVDb250YWluZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy53YXZlLnN0eWxlLmJhY2tncm91bmRDb2xvcj10aGlzLmNvbG9yLHRoaXMud2F2ZS5jbGFzc0xpc3QuYWRkKCJ3YXZlIiksdGhpcy53YXZlQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIndhdmUtY29udGFpbmVyIiksZXIodGhpcy53YXZlQ29udGFpbmVyKS5hcHBlbmRDaGlsZCh0aGlzLndhdmUpLHRoaXMucmVzZXRJbnRlcmFjdGlvblN0YXRlKCl9bGEucHJvdG90eXBlPXtnZXQgYm91bmRpbmdSZWN0KCl7cmV0dXJuIHRoaXMuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX0sZnVydGhlc3RDb3JuZXJEaXN0YW5jZUZyb206ZnVuY3Rpb24odCxlKXt2YXIgbj1zYS5kaXN0YW5jZSh0LGUsMCwwKSxpPXNhLmRpc3RhbmNlKHQsZSx0aGlzLndpZHRoLDApLHI9c2EuZGlzdGFuY2UodCxlLDAsdGhpcy5oZWlnaHQpLG89c2EuZGlzdGFuY2UodCxlLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpO3JldHVybiBNYXRoLm1heChuLGkscixvKX19LGNhLk1BWF9SQURJVVM9MzAwLGNhLnByb3RvdHlwZT17Z2V0IHJlY2VudGVycygpe3JldHVybiB0aGlzLmVsZW1lbnQucmVjZW50ZXJzfSxnZXQgY2VudGVyKCl7cmV0dXJuIHRoaXMuZWxlbWVudC5jZW50ZXJ9LGdldCBtb3VzZURvd25FbGFwc2VkKCl7dmFyIHQ7cmV0dXJuIHRoaXMubW91c2VEb3duU3RhcnQ/KHQ9c2Eubm93KCktdGhpcy5tb3VzZURvd25TdGFydCx0aGlzLm1vdXNlVXBTdGFydCYmKHQtPXRoaXMubW91c2VVcEVsYXBzZWQpLHQpOjB9LGdldCBtb3VzZVVwRWxhcHNlZCgpe3JldHVybiB0aGlzLm1vdXNlVXBTdGFydD9zYS5ub3coKS10aGlzLm1vdXNlVXBTdGFydDowfSxnZXQgbW91c2VEb3duRWxhcHNlZFNlY29uZHMoKXtyZXR1cm4gdGhpcy5tb3VzZURvd25FbGFwc2VkLzFlM30sZ2V0IG1vdXNlVXBFbGFwc2VkU2Vjb25kcygpe3JldHVybiB0aGlzLm1vdXNlVXBFbGFwc2VkLzFlM30sZ2V0IG1vdXNlSW50ZXJhY3Rpb25TZWNvbmRzKCl7cmV0dXJuIHRoaXMubW91c2VEb3duRWxhcHNlZFNlY29uZHMrdGhpcy5tb3VzZVVwRWxhcHNlZFNlY29uZHN9LGdldCBpbml0aWFsT3BhY2l0eSgpe3JldHVybiB0aGlzLmVsZW1lbnQuaW5pdGlhbE9wYWNpdHl9LGdldCBvcGFjaXR5RGVjYXlWZWxvY2l0eSgpe3JldHVybiB0aGlzLmVsZW1lbnQub3BhY2l0eURlY2F5VmVsb2NpdHl9LGdldCByYWRpdXMoKXt2YXIgdD0xLjEqTWF0aC5taW4oTWF0aC5zcXJ0KHRoaXMuY29udGFpbmVyTWV0cmljcy53aWR0aCp0aGlzLmNvbnRhaW5lck1ldHJpY3Mud2lkdGgrdGhpcy5jb250YWluZXJNZXRyaWNzLmhlaWdodCp0aGlzLmNvbnRhaW5lck1ldHJpY3MuaGVpZ2h0KSxjYS5NQVhfUkFESVVTKSs1LGU9dCooMS1NYXRoLnBvdyg4MCwtKHRoaXMubW91c2VJbnRlcmFjdGlvblNlY29uZHMvKDEuMS10L2NhLk1BWF9SQURJVVMqLjIpKSkpO3JldHVybiBNYXRoLmFicyhlKX0sZ2V0IG9wYWNpdHkoKXtyZXR1cm4gdGhpcy5tb3VzZVVwU3RhcnQ/TWF0aC5tYXgoMCx0aGlzLmluaXRpYWxPcGFjaXR5LXRoaXMubW91c2VVcEVsYXBzZWRTZWNvbmRzKnRoaXMub3BhY2l0eURlY2F5VmVsb2NpdHkpOnRoaXMuaW5pdGlhbE9wYWNpdHl9LGdldCBvdXRlck9wYWNpdHkoKXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1pbiguMyp0aGlzLm1vdXNlVXBFbGFwc2VkU2Vjb25kcyx0aGlzLm9wYWNpdHkpKX0sZ2V0IGlzT3BhY2l0eUZ1bGx5RGVjYXllZCgpe3JldHVybiB0aGlzLm9wYWNpdHk8LjAxJiZ0aGlzLnJhZGl1cz49TWF0aC5taW4odGhpcy5tYXhSYWRpdXMsY2EuTUFYX1JBRElVUyl9LGdldCBpc1Jlc3RpbmdBdE1heFJhZGl1cygpe3JldHVybiB0aGlzLm9wYWNpdHk+PXRoaXMuaW5pdGlhbE9wYWNpdHkmJnRoaXMucmFkaXVzPj1NYXRoLm1pbih0aGlzLm1heFJhZGl1cyxjYS5NQVhfUkFESVVTKX0sZ2V0IGlzQW5pbWF0aW9uQ29tcGxldGUoKXtyZXR1cm4gdGhpcy5tb3VzZVVwU3RhcnQ/dGhpcy5pc09wYWNpdHlGdWxseURlY2F5ZWQ6dGhpcy5pc1Jlc3RpbmdBdE1heFJhZGl1c30sZ2V0IHRyYW5zbGF0aW9uRnJhY3Rpb24oKXtyZXR1cm4gTWF0aC5taW4oMSx0aGlzLnJhZGl1cy90aGlzLmNvbnRhaW5lck1ldHJpY3Muc2l6ZSoyL01hdGguc3FydCgyKSl9LGdldCB4Tm93KCl7cmV0dXJuIHRoaXMueEVuZD90aGlzLnhTdGFydCt0aGlzLnRyYW5zbGF0aW9uRnJhY3Rpb24qKHRoaXMueEVuZC10aGlzLnhTdGFydCk6dGhpcy54U3RhcnR9LGdldCB5Tm93KCl7cmV0dXJuIHRoaXMueUVuZD90aGlzLnlTdGFydCt0aGlzLnRyYW5zbGF0aW9uRnJhY3Rpb24qKHRoaXMueUVuZC10aGlzLnlTdGFydCk6dGhpcy55U3RhcnR9LGdldCBpc01vdXNlRG93bigpe3JldHVybiB0aGlzLm1vdXNlRG93blN0YXJ0JiYhdGhpcy5tb3VzZVVwU3RhcnR9LHJlc2V0SW50ZXJhY3Rpb25TdGF0ZTpmdW5jdGlvbigpe3RoaXMubWF4UmFkaXVzPTAsdGhpcy5tb3VzZURvd25TdGFydD0wLHRoaXMubW91c2VVcFN0YXJ0PTAsdGhpcy54U3RhcnQ9MCx0aGlzLnlTdGFydD0wLHRoaXMueEVuZD0wLHRoaXMueUVuZD0wLHRoaXMuc2xpZGVEaXN0YW5jZT0wLHRoaXMuY29udGFpbmVyTWV0cmljcz1uZXcgbGEodGhpcy5lbGVtZW50KX0sZHJhdzpmdW5jdGlvbigpe3ZhciB0LGUsbjt0aGlzLndhdmUuc3R5bGUub3BhY2l0eT10aGlzLm9wYWNpdHksdD10aGlzLnJhZGl1cy8odGhpcy5jb250YWluZXJNZXRyaWNzLnNpemUvMiksdGhpcy53YXZlQ29udGFpbmVyLnN0eWxlLndlYmtpdFRyYW5zZm9ybT0idHJhbnNsYXRlKCIrKGU9dGhpcy54Tm93LXRoaXMuY29udGFpbmVyTWV0cmljcy53aWR0aC8yKSsicHgsICIrKG49dGhpcy55Tm93LXRoaXMuY29udGFpbmVyTWV0cmljcy5oZWlnaHQvMikrInB4KSIsdGhpcy53YXZlQ29udGFpbmVyLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlM2QoIitlKyJweCwgIituKyJweCwgMCkiLHRoaXMud2F2ZS5zdHlsZS53ZWJraXRUcmFuc2Zvcm09InNjYWxlKCIrdCsiLCIrdCsiKSIsdGhpcy53YXZlLnN0eWxlLnRyYW5zZm9ybT0ic2NhbGUzZCgiK3QrIiwiK3QrIiwxKSJ9LGRvd25BY3Rpb246ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jb250YWluZXJNZXRyaWNzLndpZHRoLzIsbj10aGlzLmNvbnRhaW5lck1ldHJpY3MuaGVpZ2h0LzI7dGhpcy5yZXNldEludGVyYWN0aW9uU3RhdGUoKSx0aGlzLm1vdXNlRG93blN0YXJ0PXNhLm5vdygpLHRoaXMuY2VudGVyPyh0aGlzLnhTdGFydD1lLHRoaXMueVN0YXJ0PW4sdGhpcy5zbGlkZURpc3RhbmNlPXNhLmRpc3RhbmNlKHRoaXMueFN0YXJ0LHRoaXMueVN0YXJ0LHRoaXMueEVuZCx0aGlzLnlFbmQpKToodGhpcy54U3RhcnQ9dD90LmRldGFpbC54LXRoaXMuY29udGFpbmVyTWV0cmljcy5ib3VuZGluZ1JlY3QubGVmdDp0aGlzLmNvbnRhaW5lck1ldHJpY3Mud2lkdGgvMix0aGlzLnlTdGFydD10P3QuZGV0YWlsLnktdGhpcy5jb250YWluZXJNZXRyaWNzLmJvdW5kaW5nUmVjdC50b3A6dGhpcy5jb250YWluZXJNZXRyaWNzLmhlaWdodC8yKSx0aGlzLnJlY2VudGVycyYmKHRoaXMueEVuZD1lLHRoaXMueUVuZD1uLHRoaXMuc2xpZGVEaXN0YW5jZT1zYS5kaXN0YW5jZSh0aGlzLnhTdGFydCx0aGlzLnlTdGFydCx0aGlzLnhFbmQsdGhpcy55RW5kKSksdGhpcy5tYXhSYWRpdXM9dGhpcy5jb250YWluZXJNZXRyaWNzLmZ1cnRoZXN0Q29ybmVyRGlzdGFuY2VGcm9tKHRoaXMueFN0YXJ0LHRoaXMueVN0YXJ0KSx0aGlzLndhdmVDb250YWluZXIuc3R5bGUudG9wPSh0aGlzLmNvbnRhaW5lck1ldHJpY3MuaGVpZ2h0LXRoaXMuY29udGFpbmVyTWV0cmljcy5zaXplKS8yKyJweCIsdGhpcy53YXZlQ29udGFpbmVyLnN0eWxlLmxlZnQ9KHRoaXMuY29udGFpbmVyTWV0cmljcy53aWR0aC10aGlzLmNvbnRhaW5lck1ldHJpY3Muc2l6ZSkvMisicHgiLHRoaXMud2F2ZUNvbnRhaW5lci5zdHlsZS53aWR0aD10aGlzLmNvbnRhaW5lck1ldHJpY3Muc2l6ZSsicHgiLHRoaXMud2F2ZUNvbnRhaW5lci5zdHlsZS5oZWlnaHQ9dGhpcy5jb250YWluZXJNZXRyaWNzLnNpemUrInB4In0sdXBBY3Rpb246ZnVuY3Rpb24odCl7dGhpcy5pc01vdXNlRG93biYmKHRoaXMubW91c2VVcFN0YXJ0PXNhLm5vdygpKX0scmVtb3ZlOmZ1bmN0aW9uKCl7ZXIoZXIodGhpcy53YXZlQ29udGFpbmVyKS5wYXJlbnROb2RlKS5yZW1vdmVDaGlsZCh0aGlzLndhdmVDb250YWluZXIpfX0sanIoe190ZW1wbGF0ZTp4ZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwoKICAgICAgICAvKiBTZWUgUG9seW1lckVsZW1lbnRzL3BhcGVyLWJlaGF2aW9ycy9pc3N1ZXMvMzQuIE9uIG5vbi1DaHJvbWUgYnJvd3NlcnMsCiAgICAgICAgICogY3JlYXRpbmcgYSBub2RlICh3aXRoIGEgcG9zaXRpb246YWJzb2x1dGUpIGluIHRoZSBtaWRkbGUgb2YgYW4gZXZlbnQKICAgICAgICAgKiBoYW5kbGVyICJpbnRlcnJ1cHRzIiB0aGF0IGV2ZW50IGhhbmRsZXIgKHdoaWNoIGhhcHBlbnMgd2hlbiB0aGUKICAgICAgICAgKiByaXBwbGUgaXMgY3JlYXRlZCBvbiBkZW1hbmQpICovCiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KFthbmltYXRpbmddKSB7CiAgICAgICAgLyogVGhpcyByZXNvbHZlcyBhIHJlbmRlcmluZyBpc3N1ZSBpbiBDaHJvbWUgKGFzIG9mIDQwKSB3aGVyZSB0aGUKICAgICAgICAgICByaXBwbGUgaXMgbm90IHByb3Blcmx5IGNsaXBwZWQgYnkgaXRzIHBhcmVudCAod2hpY2ggbWF5IGhhdmUKICAgICAgICAgICByb3VuZGVkIGNvcm5lcnMpLiBTZWU6IGh0dHA6Ly9qc2Jpbi5jb20vdGVtZXhhLzQKCiAgICAgICAgICAgTm90ZTogV2Ugb25seSBhcHBseSB0aGlzIHN0eWxlIGNvbmRpdGlvbmFsbHkuIE90aGVyd2lzZSwgdGhlIGJyb3dzZXIKICAgICAgICAgICB3aWxsIGNyZWF0ZSBhIG5ldyBjb21wb3NpdGluZyBsYXllciBmb3IgZXZlcnkgcmlwcGxlIGVsZW1lbnQgb24gdGhlCiAgICAgICAgICAgcGFnZSwgYW5kIHRoYXQgd291bGQgYmUgYmFkLiAqLwogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKICAgICAgfQoKICAgICAgI2JhY2tncm91bmQsCiAgICAgICN3YXZlcywKICAgICAgLndhdmUtY29udGFpbmVyLAogICAgICAud2F2ZSB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgI2JhY2tncm91bmQsCiAgICAgIC53YXZlIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICB9CgogICAgICAjd2F2ZXMsCiAgICAgIC53YXZlIHsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAud2F2ZS1jb250YWluZXIsCiAgICAgIC53YXZlIHsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIH0KCiAgICAgIDpob3N0KC5jaXJjbGUpICNiYWNrZ3JvdW5kLAogICAgICA6aG9zdCguY2lyY2xlKSAjd2F2ZXMgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgfQoKICAgICAgOmhvc3QoLmNpcmNsZSkgLndhdmUtY29udGFpbmVyIHsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgaWQ9ImJhY2tncm91bmQiPjwvZGl2PgogICAgPGRpdiBpZD0id2F2ZXMiPjwvZGl2PgpgLGlzOiJwYXBlci1yaXBwbGUiLGJlaGF2aW9yczpbWG9dLHByb3BlcnRpZXM6e2luaXRpYWxPcGFjaXR5Ont0eXBlOk51bWJlcix2YWx1ZTouMjV9LG9wYWNpdHlEZWNheVZlbG9jaXR5Ont0eXBlOk51bWJlcix2YWx1ZTouOH0scmVjZW50ZXJzOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGNlbnRlcjp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxyaXBwbGVzOnt0eXBlOkFycmF5LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuW119fSxhbmltYXRpbmc6e3R5cGU6Qm9vbGVhbixyZWFkT25seTohMCxyZWZsZWN0VG9BdHRyaWJ1dGU6ITAsdmFsdWU6ITF9LGhvbGREb3duOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEsb2JzZXJ2ZXI6Il9ob2xkRG93bkNoYW5nZWQifSxub2luazp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxfYW5pbWF0aW5nOnt0eXBlOkJvb2xlYW59LF9ib3VuZEFuaW1hdGU6e3R5cGU6RnVuY3Rpb24sdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hbmltYXRlLmJpbmQodGhpcyl9fX0sZ2V0IHRhcmdldCgpe3JldHVybiB0aGlzLmtleUV2ZW50VGFyZ2V0fSxrZXlCaW5kaW5nczp7ImVudGVyOmtleWRvd24iOiJfb25FbnRlcktleWRvd24iLCJzcGFjZTprZXlkb3duIjoiX29uU3BhY2VLZXlkb3duIiwic3BhY2U6a2V5dXAiOiJfb25TcGFjZUtleXVwIn0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLmtleUV2ZW50VGFyZ2V0PTExPT1lcih0aGlzKS5wYXJlbnROb2RlLm5vZGVUeXBlP2VyKHRoaXMpLmdldE93bmVyUm9vdCgpLmhvc3Q6ZXIodGhpcykucGFyZW50Tm9kZTt2YXIgdD10aGlzLmtleUV2ZW50VGFyZ2V0O3RoaXMubGlzdGVuKHQsInVwIiwidWlVcEFjdGlvbiIpLHRoaXMubGlzdGVuKHQsImRvd24iLCJ1aURvd25BY3Rpb24iKX0sZGV0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLnVubGlzdGVuKHRoaXMua2V5RXZlbnRUYXJnZXQsInVwIiwidWlVcEFjdGlvbiIpLHRoaXMudW5saXN0ZW4odGhpcy5rZXlFdmVudFRhcmdldCwiZG93biIsInVpRG93bkFjdGlvbiIpLHRoaXMua2V5RXZlbnRUYXJnZXQ9bnVsbH0sZ2V0IHNob3VsZEtlZXBBbmltYXRpbmcoKXtmb3IodmFyIHQ9MDt0PHRoaXMucmlwcGxlcy5sZW5ndGg7Kyt0KWlmKCF0aGlzLnJpcHBsZXNbdF0uaXNBbmltYXRpb25Db21wbGV0ZSlyZXR1cm4hMDtyZXR1cm4hMX0sc2ltdWxhdGVkUmlwcGxlOmZ1bmN0aW9uKCl7dGhpcy5kb3duQWN0aW9uKG51bGwpLHRoaXMuYXN5bmMoKGZ1bmN0aW9uKCl7dGhpcy51cEFjdGlvbigpfSksMSl9LHVpRG93bkFjdGlvbjpmdW5jdGlvbih0KXt0aGlzLm5vaW5rfHx0aGlzLmRvd25BY3Rpb24odCl9LGRvd25BY3Rpb246ZnVuY3Rpb24odCl7dGhpcy5ob2xkRG93biYmdGhpcy5yaXBwbGVzLmxlbmd0aD4wfHwodGhpcy5hZGRSaXBwbGUoKS5kb3duQWN0aW9uKHQpLHRoaXMuX2FuaW1hdGluZ3x8KHRoaXMuX2FuaW1hdGluZz0hMCx0aGlzLmFuaW1hdGUoKSkpfSx1aVVwQWN0aW9uOmZ1bmN0aW9uKHQpe3RoaXMubm9pbmt8fHRoaXMudXBBY3Rpb24odCl9LHVwQWN0aW9uOmZ1bmN0aW9uKHQpe3RoaXMuaG9sZERvd258fCh0aGlzLnJpcHBsZXMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZS51cEFjdGlvbih0KX0pKSx0aGlzLl9hbmltYXRpbmc9ITAsdGhpcy5hbmltYXRlKCkpfSxvbkFuaW1hdGlvbkNvbXBsZXRlOmZ1bmN0aW9uKCl7dGhpcy5fYW5pbWF0aW5nPSExLHRoaXMuJC5iYWNrZ3JvdW5kLnN0eWxlLmJhY2tncm91bmRDb2xvcj0iIix0aGlzLmZpcmUoInRyYW5zaXRpb25lbmQiKX0sYWRkUmlwcGxlOmZ1bmN0aW9uKCl7dmFyIHQ9bmV3IGNhKHRoaXMpO3JldHVybiBlcih0aGlzLiQud2F2ZXMpLmFwcGVuZENoaWxkKHQud2F2ZUNvbnRhaW5lciksdGhpcy4kLmJhY2tncm91bmQuc3R5bGUuYmFja2dyb3VuZENvbG9yPXQuY29sb3IsdGhpcy5yaXBwbGVzLnB1c2godCksdGhpcy5fc2V0QW5pbWF0aW5nKCEwKSx0fSxyZW1vdmVSaXBwbGU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5yaXBwbGVzLmluZGV4T2YodCk7ZTwwfHwodGhpcy5yaXBwbGVzLnNwbGljZShlLDEpLHQucmVtb3ZlKCksdGhpcy5yaXBwbGVzLmxlbmd0aHx8dGhpcy5fc2V0QW5pbWF0aW5nKCExKSl9LGFuaW1hdGU6ZnVuY3Rpb24oKXtpZih0aGlzLl9hbmltYXRpbmcpe3ZhciB0LGU7Zm9yKHQ9MDt0PHRoaXMucmlwcGxlcy5sZW5ndGg7Kyt0KShlPXRoaXMucmlwcGxlc1t0XSkuZHJhdygpLHRoaXMuJC5iYWNrZ3JvdW5kLnN0eWxlLm9wYWNpdHk9ZS5vdXRlck9wYWNpdHksZS5pc09wYWNpdHlGdWxseURlY2F5ZWQmJiFlLmlzUmVzdGluZ0F0TWF4UmFkaXVzJiZ0aGlzLnJlbW92ZVJpcHBsZShlKTt0aGlzLnNob3VsZEtlZXBBbmltYXRpbmd8fDAhPT10aGlzLnJpcHBsZXMubGVuZ3RoP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5fYm91bmRBbmltYXRlKTp0aGlzLm9uQW5pbWF0aW9uQ29tcGxldGUoKX19LGFuaW1hdGVSaXBwbGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hbmltYXRlKCl9LF9vbkVudGVyS2V5ZG93bjpmdW5jdGlvbigpe3RoaXMudWlEb3duQWN0aW9uKCksdGhpcy5hc3luYyh0aGlzLnVpVXBBY3Rpb24sMSl9LF9vblNwYWNlS2V5ZG93bjpmdW5jdGlvbigpe3RoaXMudWlEb3duQWN0aW9uKCl9LF9vblNwYWNlS2V5dXA6ZnVuY3Rpb24oKXt0aGlzLnVpVXBBY3Rpb24oKX0sX2hvbGREb3duQ2hhbmdlZDpmdW5jdGlvbih0LGUpe3ZvaWQgMCE9PWUmJih0P3RoaXMuZG93bkFjdGlvbigpOnRoaXMudXBBY3Rpb24oKSl9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCB1YT17cHJvcGVydGllczp7bm9pbms6e3R5cGU6Qm9vbGVhbixvYnNlcnZlcjoiX25vaW5rQ2hhbmdlZCJ9LF9yaXBwbGVDb250YWluZXI6e3R5cGU6T2JqZWN0fX0sX2J1dHRvblN0YXRlQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuZm9jdXNlZCYmdGhpcy5lbnN1cmVSaXBwbGUoKX0sX2Rvd25IYW5kbGVyOmZ1bmN0aW9uKHQpe29hLl9kb3duSGFuZGxlci5jYWxsKHRoaXMsdCksdGhpcy5wcmVzc2VkJiZ0aGlzLmVuc3VyZVJpcHBsZSh0KX0sZW5zdXJlUmlwcGxlOmZ1bmN0aW9uKHQpe2lmKCF0aGlzLmhhc1JpcHBsZSgpKXt0aGlzLl9yaXBwbGU9dGhpcy5fY3JlYXRlUmlwcGxlKCksdGhpcy5fcmlwcGxlLm5vaW5rPXRoaXMubm9pbms7dmFyIGU9dGhpcy5fcmlwcGxlQ29udGFpbmVyfHx0aGlzLnJvb3Q7aWYoZSYmZXIoZSkuYXBwZW5kQ2hpbGQodGhpcy5fcmlwcGxlKSx0KXt2YXIgbj1lcih0aGlzLl9yaXBwbGVDb250YWluZXJ8fHRoaXMpLGk9ZXIodCkucm9vdFRhcmdldDtuLmRlZXBDb250YWlucyhpKSYmdGhpcy5fcmlwcGxlLnVpRG93bkFjdGlvbih0KX19fSxnZXRSaXBwbGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbnN1cmVSaXBwbGUoKSx0aGlzLl9yaXBwbGV9LGhhc1JpcHBsZTpmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKHRoaXMuX3JpcHBsZSl9LF9jcmVhdGVSaXBwbGU6ZnVuY3Rpb24oKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicGFwZXItcmlwcGxlIil9LF9ub2lua0NoYW5nZWQ6ZnVuY3Rpb24odCl7dGhpcy5oYXNSaXBwbGUoKSYmKHRoaXMuX3JpcHBsZS5ub2luaz10KX19LGhhPXtwcm9wZXJ0aWVzOntlbGV2YXRpb246e3R5cGU6TnVtYmVyLHJlZmxlY3RUb0F0dHJpYnV0ZTohMCxyZWFkT25seTohMH19LG9ic2VydmVyczpbIl9jYWxjdWxhdGVFbGV2YXRpb24oZm9jdXNlZCwgZGlzYWJsZWQsIGFjdGl2ZSwgcHJlc3NlZCwgcmVjZWl2ZWRGb2N1c0Zyb21LZXlib2FyZCkiLCJfY29tcHV0ZUtleWJvYXJkQ2xhc3MocmVjZWl2ZWRGb2N1c0Zyb21LZXlib2FyZCkiXSxob3N0QXR0cmlidXRlczp7cm9sZToiYnV0dG9uIix0YWJpbmRleDoiMCIsYW5pbWF0ZWQ6ITB9LF9jYWxjdWxhdGVFbGV2YXRpb246ZnVuY3Rpb24oKXt2YXIgdD0xO3RoaXMuZGlzYWJsZWQ/dD0wOnRoaXMuYWN0aXZlfHx0aGlzLnByZXNzZWQ/dD00OnRoaXMucmVjZWl2ZWRGb2N1c0Zyb21LZXlib2FyZCYmKHQ9MyksdGhpcy5fc2V0RWxldmF0aW9uKHQpfSxfY29tcHV0ZUtleWJvYXJkQ2xhc3M6ZnVuY3Rpb24odCl7dGhpcy50b2dnbGVDbGFzcygia2V5Ym9hcmQtZm9jdXMiLHQpfSxfc3BhY2VLZXlEb3duSGFuZGxlcjpmdW5jdGlvbih0KXtvYS5fc3BhY2VLZXlEb3duSGFuZGxlci5jYWxsKHRoaXMsdCksdGhpcy5oYXNSaXBwbGUoKSYmdGhpcy5nZXRSaXBwbGUoKS5yaXBwbGVzLmxlbmd0aDwxJiZ0aGlzLl9yaXBwbGUudWlEb3duQWN0aW9uKCl9LF9zcGFjZUtleVVwSGFuZGxlcjpmdW5jdGlvbih0KXtvYS5fc3BhY2VLZXlVcEhhbmRsZXIuY2FsbCh0aGlzLHQpLHRoaXMuaGFzUmlwcGxlKCkmJnRoaXMuX3JpcHBsZS51aVVwQWN0aW9uKCl9fSxkYT1bYWEscmEsdWEsaGFdLHBhPXhlYAogIDxzdHlsZSBpbmNsdWRlPSJwYXBlci1tYXRlcmlhbC1zdHlsZXMiPgogICAgLyogTmVlZCB0byBzcGVjaWZ5IHRoZSBzYW1lIHNwZWNpZmljaXR5IGFzIHRoZSBzdHlsZXMgaW1wb3J0ZWQgZnJvbSBwYXBlci1tYXRlcmlhbC4gKi8KICAgIDpob3N0IHsKICAgICAgQGFwcGx5IC0tbGF5b3V0LWlubGluZTsKICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlci1jZW50ZXI7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgbWluLXdpZHRoOiA1LjE0ZW07CiAgICAgIG1hcmdpbjogMCAwLjI5ZW07CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7CiAgICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIGZvbnQ6IGluaGVyaXQ7CiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIG91dGxpbmUtd2lkdGg6IDA7CiAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB6LWluZGV4OiAwOwogICAgICBwYWRkaW5nOiAwLjdlbSAwLjU3ZW07CgogICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgICBAYXBwbHkgLS1wYXBlci1idXR0b247CiAgICB9CgogICAgOmhvc3QoW2VsZXZhdGlvbj0iMSJdKSB7CiAgICAgIEBhcHBseSAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi0xOwogICAgfQoKICAgIDpob3N0KFtlbGV2YXRpb249IjIiXSkgewogICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tMjsKICAgIH0KCiAgICA6aG9zdChbZWxldmF0aW9uPSIzIl0pIHsKICAgICAgQGFwcGx5IC0tcGFwZXItbWF0ZXJpYWwtZWxldmF0aW9uLTM7CiAgICB9CgogICAgOmhvc3QoW2VsZXZhdGlvbj0iNCJdKSB7CiAgICAgIEBhcHBseSAtLXBhcGVyLW1hdGVyaWFsLWVsZXZhdGlvbi00OwogICAgfQoKICAgIDpob3N0KFtlbGV2YXRpb249IjUiXSkgewogICAgICBAYXBwbHkgLS1wYXBlci1tYXRlcmlhbC1lbGV2YXRpb24tNTsKICAgIH0KCiAgICA6aG9zdChbaGlkZGVuXSkgewogICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICB9CgogICAgOmhvc3QoW3JhaXNlZF0ua2V5Ym9hcmQtZm9jdXMpIHsKICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgIEBhcHBseSAtLXBhcGVyLWJ1dHRvbi1yYWlzZWQta2V5Ym9hcmQtZm9jdXM7CiAgICB9CgogICAgOmhvc3QoOm5vdChbcmFpc2VkXSkua2V5Ym9hcmQtZm9jdXMpIHsKICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgIEBhcHBseSAtLXBhcGVyLWJ1dHRvbi1mbGF0LWtleWJvYXJkLWZvY3VzOwogICAgfQoKICAgIDpob3N0KFtkaXNhYmxlZF0pIHsKICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgY29sb3I6ICNhOGE4YTg7CiAgICAgIGN1cnNvcjogYXV0bzsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CgogICAgICBAYXBwbHkgLS1wYXBlci1idXR0b24tZGlzYWJsZWQ7CiAgICB9CgogICAgOmhvc3QoW2Rpc2FibGVkXVtyYWlzZWRdKSB7CiAgICAgIGJhY2tncm91bmQ6ICNlYWVhZWE7CiAgICB9CgoKICAgIDpob3N0KFthbmltYXRlZF0pIHsKICAgICAgQGFwcGx5IC0tc2hhZG93LXRyYW5zaXRpb247CiAgICB9CgogICAgcGFwZXItcmlwcGxlIHsKICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWJ1dHRvbi1pbmstY29sb3IpOwogICAgfQogIDwvc3R5bGU+CgogIDxzbG90Pjwvc2xvdD5gOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9wYS5zZXRBdHRyaWJ1dGUoInN0cmlwLXdoaXRlc3BhY2UiLCIiKSxqcih7X3RlbXBsYXRlOnBhLGlzOiJwYXBlci1idXR0b24iLGJlaGF2aW9yczpbZGFdLHByb3BlcnRpZXM6e3JhaXNlZDp7dHlwZTpCb29sZWFuLHJlZmxlY3RUb0F0dHJpYnV0ZTohMCx2YWx1ZTohMSxvYnNlcnZlcjoiX2NhbGN1bGF0ZUVsZXZhdGlvbiJ9fSxfY2FsY3VsYXRlRWxldmF0aW9uOmZ1bmN0aW9uKCl7dGhpcy5yYWlzZWQ/aGEuX2NhbGN1bGF0ZUVsZXZhdGlvbi5hcHBseSh0aGlzKTp0aGlzLl9zZXRFbGV2YXRpb24oMCl9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBmYT14ZWAKPGN1c3RvbS1zdHlsZT4KICA8c3R5bGUgaXM9ImN1c3RvbS1zdHlsZSI+CiAgICBodG1sIHsKCiAgICAgIC8qIE1hdGVyaWFsIERlc2lnbiBjb2xvciBwYWxldHRlIGZvciBHb29nbGUgcHJvZHVjdHMgKi8KCiAgICAgIC0tZ29vZ2xlLXJlZC0xMDA6ICNmNGM3YzM7CiAgICAgIC0tZ29vZ2xlLXJlZC0zMDA6ICNlNjdjNzM7CiAgICAgIC0tZ29vZ2xlLXJlZC01MDA6ICNkYjQ0Mzc7CiAgICAgIC0tZ29vZ2xlLXJlZC03MDA6ICNjNTM5Mjk7CgogICAgICAtLWdvb2dsZS1ibHVlLTEwMDogI2M2ZGFmYzsKICAgICAgLS1nb29nbGUtYmx1ZS0zMDA6ICM3YmFhZjc7CiAgICAgIC0tZ29vZ2xlLWJsdWUtNTAwOiAjNDI4NWY0OwogICAgICAtLWdvb2dsZS1ibHVlLTcwMDogIzMzNjdkNjsKCiAgICAgIC0tZ29vZ2xlLWdyZWVuLTEwMDogI2I3ZTFjZDsKICAgICAgLS1nb29nbGUtZ3JlZW4tMzAwOiAjNTdiYjhhOwogICAgICAtLWdvb2dsZS1ncmVlbi01MDA6ICMwZjlkNTg7CiAgICAgIC0tZ29vZ2xlLWdyZWVuLTcwMDogIzBiODA0MzsKCiAgICAgIC0tZ29vZ2xlLXllbGxvdy0xMDA6ICNmY2U4YjI7CiAgICAgIC0tZ29vZ2xlLXllbGxvdy0zMDA6ICNmN2NiNGQ7CiAgICAgIC0tZ29vZ2xlLXllbGxvdy01MDA6ICNmNGI0MDA7CiAgICAgIC0tZ29vZ2xlLXllbGxvdy03MDA6ICNmMDkzMDA7CgogICAgICAtLWdvb2dsZS1ncmV5LTEwMDogI2Y1ZjVmNTsKICAgICAgLS1nb29nbGUtZ3JleS0zMDA6ICNlMGUwZTA7CiAgICAgIC0tZ29vZ2xlLWdyZXktNTAwOiAjOWU5ZTllOwogICAgICAtLWdvb2dsZS1ncmV5LTcwMDogIzYxNjE2MTsKCiAgICAgIC8qIE1hdGVyaWFsIERlc2lnbiBjb2xvciBwYWxldHRlIGZyb20gb25saW5lIHNwZWMgZG9jdW1lbnQgKi8KCiAgICAgIC0tcGFwZXItcmVkLTUwOiAjZmZlYmVlOwogICAgICAtLXBhcGVyLXJlZC0xMDA6ICNmZmNkZDI7CiAgICAgIC0tcGFwZXItcmVkLTIwMDogI2VmOWE5YTsKICAgICAgLS1wYXBlci1yZWQtMzAwOiAjZTU3MzczOwogICAgICAtLXBhcGVyLXJlZC00MDA6ICNlZjUzNTA7CiAgICAgIC0tcGFwZXItcmVkLTUwMDogI2Y0NDMzNjsKICAgICAgLS1wYXBlci1yZWQtNjAwOiAjZTUzOTM1OwogICAgICAtLXBhcGVyLXJlZC03MDA6ICNkMzJmMmY7CiAgICAgIC0tcGFwZXItcmVkLTgwMDogI2M2MjgyODsKICAgICAgLS1wYXBlci1yZWQtOTAwOiAjYjcxYzFjOwogICAgICAtLXBhcGVyLXJlZC1hMTAwOiAjZmY4YTgwOwogICAgICAtLXBhcGVyLXJlZC1hMjAwOiAjZmY1MjUyOwogICAgICAtLXBhcGVyLXJlZC1hNDAwOiAjZmYxNzQ0OwogICAgICAtLXBhcGVyLXJlZC1hNzAwOiAjZDUwMDAwOwoKICAgICAgLS1wYXBlci1waW5rLTUwOiAjZmNlNGVjOwogICAgICAtLXBhcGVyLXBpbmstMTAwOiAjZjhiYmQwOwogICAgICAtLXBhcGVyLXBpbmstMjAwOiAjZjQ4ZmIxOwogICAgICAtLXBhcGVyLXBpbmstMzAwOiAjZjA2MjkyOwogICAgICAtLXBhcGVyLXBpbmstNDAwOiAjZWM0MDdhOwogICAgICAtLXBhcGVyLXBpbmstNTAwOiAjZTkxZTYzOwogICAgICAtLXBhcGVyLXBpbmstNjAwOiAjZDgxYjYwOwogICAgICAtLXBhcGVyLXBpbmstNzAwOiAjYzIxODViOwogICAgICAtLXBhcGVyLXBpbmstODAwOiAjYWQxNDU3OwogICAgICAtLXBhcGVyLXBpbmstOTAwOiAjODgwZTRmOwogICAgICAtLXBhcGVyLXBpbmstYTEwMDogI2ZmODBhYjsKICAgICAgLS1wYXBlci1waW5rLWEyMDA6ICNmZjQwODE7CiAgICAgIC0tcGFwZXItcGluay1hNDAwOiAjZjUwMDU3OwogICAgICAtLXBhcGVyLXBpbmstYTcwMDogI2M1MTE2MjsKCiAgICAgIC0tcGFwZXItcHVycGxlLTUwOiAjZjNlNWY1OwogICAgICAtLXBhcGVyLXB1cnBsZS0xMDA6ICNlMWJlZTc7CiAgICAgIC0tcGFwZXItcHVycGxlLTIwMDogI2NlOTNkODsKICAgICAgLS1wYXBlci1wdXJwbGUtMzAwOiAjYmE2OGM4OwogICAgICAtLXBhcGVyLXB1cnBsZS00MDA6ICNhYjQ3YmM7CiAgICAgIC0tcGFwZXItcHVycGxlLTUwMDogIzljMjdiMDsKICAgICAgLS1wYXBlci1wdXJwbGUtNjAwOiAjOGUyNGFhOwogICAgICAtLXBhcGVyLXB1cnBsZS03MDA6ICM3YjFmYTI7CiAgICAgIC0tcGFwZXItcHVycGxlLTgwMDogIzZhMWI5YTsKICAgICAgLS1wYXBlci1wdXJwbGUtOTAwOiAjNGExNDhjOwogICAgICAtLXBhcGVyLXB1cnBsZS1hMTAwOiAjZWE4MGZjOwogICAgICAtLXBhcGVyLXB1cnBsZS1hMjAwOiAjZTA0MGZiOwogICAgICAtLXBhcGVyLXB1cnBsZS1hNDAwOiAjZDUwMGY5OwogICAgICAtLXBhcGVyLXB1cnBsZS1hNzAwOiAjYWEwMGZmOwoKICAgICAgLS1wYXBlci1kZWVwLXB1cnBsZS01MDogI2VkZTdmNjsKICAgICAgLS1wYXBlci1kZWVwLXB1cnBsZS0xMDA6ICNkMWM0ZTk7CiAgICAgIC0tcGFwZXItZGVlcC1wdXJwbGUtMjAwOiAjYjM5ZGRiOwogICAgICAtLXBhcGVyLWRlZXAtcHVycGxlLTMwMDogIzk1NzVjZDsKICAgICAgLS1wYXBlci1kZWVwLXB1cnBsZS00MDA6ICM3ZTU3YzI7CiAgICAgIC0tcGFwZXItZGVlcC1wdXJwbGUtNTAwOiAjNjczYWI3OwogICAgICAtLXBhcGVyLWRlZXAtcHVycGxlLTYwMDogIzVlMzViMTsKICAgICAgLS1wYXBlci1kZWVwLXB1cnBsZS03MDA6ICM1MTJkYTg7CiAgICAgIC0tcGFwZXItZGVlcC1wdXJwbGUtODAwOiAjNDUyN2EwOwogICAgICAtLXBhcGVyLWRlZXAtcHVycGxlLTkwMDogIzMxMWI5MjsKICAgICAgLS1wYXBlci1kZWVwLXB1cnBsZS1hMTAwOiAjYjM4OGZmOwogICAgICAtLXBhcGVyLWRlZXAtcHVycGxlLWEyMDA6ICM3YzRkZmY7CiAgICAgIC0tcGFwZXItZGVlcC1wdXJwbGUtYTQwMDogIzY1MWZmZjsKICAgICAgLS1wYXBlci1kZWVwLXB1cnBsZS1hNzAwOiAjNjIwMGVhOwoKICAgICAgLS1wYXBlci1pbmRpZ28tNTA6ICNlOGVhZjY7CiAgICAgIC0tcGFwZXItaW5kaWdvLTEwMDogI2M1Y2FlOTsKICAgICAgLS1wYXBlci1pbmRpZ28tMjAwOiAjOWZhOGRhOwogICAgICAtLXBhcGVyLWluZGlnby0zMDA6ICM3OTg2Y2I7CiAgICAgIC0tcGFwZXItaW5kaWdvLTQwMDogIzVjNmJjMDsKICAgICAgLS1wYXBlci1pbmRpZ28tNTAwOiAjM2Y1MWI1OwogICAgICAtLXBhcGVyLWluZGlnby02MDA6ICMzOTQ5YWI7CiAgICAgIC0tcGFwZXItaW5kaWdvLTcwMDogIzMwM2Y5ZjsKICAgICAgLS1wYXBlci1pbmRpZ28tODAwOiAjMjgzNTkzOwogICAgICAtLXBhcGVyLWluZGlnby05MDA6ICMxYTIzN2U7CiAgICAgIC0tcGFwZXItaW5kaWdvLWExMDA6ICM4YzllZmY7CiAgICAgIC0tcGFwZXItaW5kaWdvLWEyMDA6ICM1MzZkZmU7CiAgICAgIC0tcGFwZXItaW5kaWdvLWE0MDA6ICMzZDVhZmU7CiAgICAgIC0tcGFwZXItaW5kaWdvLWE3MDA6ICMzMDRmZmU7CgogICAgICAtLXBhcGVyLWJsdWUtNTA6ICNlM2YyZmQ7CiAgICAgIC0tcGFwZXItYmx1ZS0xMDA6ICNiYmRlZmI7CiAgICAgIC0tcGFwZXItYmx1ZS0yMDA6ICM5MGNhZjk7CiAgICAgIC0tcGFwZXItYmx1ZS0zMDA6ICM2NGI1ZjY7CiAgICAgIC0tcGFwZXItYmx1ZS00MDA6ICM0MmE1ZjU7CiAgICAgIC0tcGFwZXItYmx1ZS01MDA6ICMyMTk2ZjM7CiAgICAgIC0tcGFwZXItYmx1ZS02MDA6ICMxZTg4ZTU7CiAgICAgIC0tcGFwZXItYmx1ZS03MDA6ICMxOTc2ZDI7CiAgICAgIC0tcGFwZXItYmx1ZS04MDA6ICMxNTY1YzA7CiAgICAgIC0tcGFwZXItYmx1ZS05MDA6ICMwZDQ3YTE7CiAgICAgIC0tcGFwZXItYmx1ZS1hMTAwOiAjODJiMWZmOwogICAgICAtLXBhcGVyLWJsdWUtYTIwMDogIzQ0OGFmZjsKICAgICAgLS1wYXBlci1ibHVlLWE0MDA6ICMyOTc5ZmY7CiAgICAgIC0tcGFwZXItYmx1ZS1hNzAwOiAjMjk2MmZmOwoKICAgICAgLS1wYXBlci1saWdodC1ibHVlLTUwOiAjZTFmNWZlOwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtMTAwOiAjYjNlNWZjOwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtMjAwOiAjODFkNGZhOwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtMzAwOiAjNGZjM2Y3OwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtNDAwOiAjMjliNmY2OwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtNTAwOiAjMDNhOWY0OwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtNjAwOiAjMDM5YmU1OwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtNzAwOiAjMDI4OGQxOwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtODAwOiAjMDI3N2JkOwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtOTAwOiAjMDE1NzliOwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtYTEwMDogIzgwZDhmZjsKICAgICAgLS1wYXBlci1saWdodC1ibHVlLWEyMDA6ICM0MGM0ZmY7CiAgICAgIC0tcGFwZXItbGlnaHQtYmx1ZS1hNDAwOiAjMDBiMGZmOwogICAgICAtLXBhcGVyLWxpZ2h0LWJsdWUtYTcwMDogIzAwOTFlYTsKCiAgICAgIC0tcGFwZXItY3lhbi01MDogI2UwZjdmYTsKICAgICAgLS1wYXBlci1jeWFuLTEwMDogI2IyZWJmMjsKICAgICAgLS1wYXBlci1jeWFuLTIwMDogIzgwZGVlYTsKICAgICAgLS1wYXBlci1jeWFuLTMwMDogIzRkZDBlMTsKICAgICAgLS1wYXBlci1jeWFuLTQwMDogIzI2YzZkYTsKICAgICAgLS1wYXBlci1jeWFuLTUwMDogIzAwYmNkNDsKICAgICAgLS1wYXBlci1jeWFuLTYwMDogIzAwYWNjMTsKICAgICAgLS1wYXBlci1jeWFuLTcwMDogIzAwOTdhNzsKICAgICAgLS1wYXBlci1jeWFuLTgwMDogIzAwODM4ZjsKICAgICAgLS1wYXBlci1jeWFuLTkwMDogIzAwNjA2NDsKICAgICAgLS1wYXBlci1jeWFuLWExMDA6ICM4NGZmZmY7CiAgICAgIC0tcGFwZXItY3lhbi1hMjAwOiAjMThmZmZmOwogICAgICAtLXBhcGVyLWN5YW4tYTQwMDogIzAwZTVmZjsKICAgICAgLS1wYXBlci1jeWFuLWE3MDA6ICMwMGI4ZDQ7CgogICAgICAtLXBhcGVyLXRlYWwtNTA6ICNlMGYyZjE7CiAgICAgIC0tcGFwZXItdGVhbC0xMDA6ICNiMmRmZGI7CiAgICAgIC0tcGFwZXItdGVhbC0yMDA6ICM4MGNiYzQ7CiAgICAgIC0tcGFwZXItdGVhbC0zMDA6ICM0ZGI2YWM7CiAgICAgIC0tcGFwZXItdGVhbC00MDA6ICMyNmE2OWE7CiAgICAgIC0tcGFwZXItdGVhbC01MDA6ICMwMDk2ODg7CiAgICAgIC0tcGFwZXItdGVhbC02MDA6ICMwMDg5N2I7CiAgICAgIC0tcGFwZXItdGVhbC03MDA6ICMwMDc5NmI7CiAgICAgIC0tcGFwZXItdGVhbC04MDA6ICMwMDY5NWM7CiAgICAgIC0tcGFwZXItdGVhbC05MDA6ICMwMDRkNDA7CiAgICAgIC0tcGFwZXItdGVhbC1hMTAwOiAjYTdmZmViOwogICAgICAtLXBhcGVyLXRlYWwtYTIwMDogIzY0ZmZkYTsKICAgICAgLS1wYXBlci10ZWFsLWE0MDA6ICMxZGU5YjY7CiAgICAgIC0tcGFwZXItdGVhbC1hNzAwOiAjMDBiZmE1OwoKICAgICAgLS1wYXBlci1ncmVlbi01MDogI2U4ZjVlOTsKICAgICAgLS1wYXBlci1ncmVlbi0xMDA6ICNjOGU2Yzk7CiAgICAgIC0tcGFwZXItZ3JlZW4tMjAwOiAjYTVkNmE3OwogICAgICAtLXBhcGVyLWdyZWVuLTMwMDogIzgxYzc4NDsKICAgICAgLS1wYXBlci1ncmVlbi00MDA6ICM2NmJiNmE7CiAgICAgIC0tcGFwZXItZ3JlZW4tNTAwOiAjNGNhZjUwOwogICAgICAtLXBhcGVyLWdyZWVuLTYwMDogIzQzYTA0NzsKICAgICAgLS1wYXBlci1ncmVlbi03MDA6ICMzODhlM2M7CiAgICAgIC0tcGFwZXItZ3JlZW4tODAwOiAjMmU3ZDMyOwogICAgICAtLXBhcGVyLWdyZWVuLTkwMDogIzFiNWUyMDsKICAgICAgLS1wYXBlci1ncmVlbi1hMTAwOiAjYjlmNmNhOwogICAgICAtLXBhcGVyLWdyZWVuLWEyMDA6ICM2OWYwYWU7CiAgICAgIC0tcGFwZXItZ3JlZW4tYTQwMDogIzAwZTY3NjsKICAgICAgLS1wYXBlci1ncmVlbi1hNzAwOiAjMDBjODUzOwoKICAgICAgLS1wYXBlci1saWdodC1ncmVlbi01MDogI2YxZjhlOTsKICAgICAgLS1wYXBlci1saWdodC1ncmVlbi0xMDA6ICNkY2VkYzg7CiAgICAgIC0tcGFwZXItbGlnaHQtZ3JlZW4tMjAwOiAjYzVlMWE1OwogICAgICAtLXBhcGVyLWxpZ2h0LWdyZWVuLTMwMDogI2FlZDU4MTsKICAgICAgLS1wYXBlci1saWdodC1ncmVlbi00MDA6ICM5Y2NjNjU7CiAgICAgIC0tcGFwZXItbGlnaHQtZ3JlZW4tNTAwOiAjOGJjMzRhOwogICAgICAtLXBhcGVyLWxpZ2h0LWdyZWVuLTYwMDogIzdjYjM0MjsKICAgICAgLS1wYXBlci1saWdodC1ncmVlbi03MDA6ICM2ODlmMzg7CiAgICAgIC0tcGFwZXItbGlnaHQtZ3JlZW4tODAwOiAjNTU4YjJmOwogICAgICAtLXBhcGVyLWxpZ2h0LWdyZWVuLTkwMDogIzMzNjkxZTsKICAgICAgLS1wYXBlci1saWdodC1ncmVlbi1hMTAwOiAjY2NmZjkwOwogICAgICAtLXBhcGVyLWxpZ2h0LWdyZWVuLWEyMDA6ICNiMmZmNTk7CiAgICAgIC0tcGFwZXItbGlnaHQtZ3JlZW4tYTQwMDogIzc2ZmYwMzsKICAgICAgLS1wYXBlci1saWdodC1ncmVlbi1hNzAwOiAjNjRkZDE3OwoKICAgICAgLS1wYXBlci1saW1lLTUwOiAjZjlmYmU3OwogICAgICAtLXBhcGVyLWxpbWUtMTAwOiAjZjBmNGMzOwogICAgICAtLXBhcGVyLWxpbWUtMjAwOiAjZTZlZTljOwogICAgICAtLXBhcGVyLWxpbWUtMzAwOiAjZGNlNzc1OwogICAgICAtLXBhcGVyLWxpbWUtNDAwOiAjZDRlMTU3OwogICAgICAtLXBhcGVyLWxpbWUtNTAwOiAjY2RkYzM5OwogICAgICAtLXBhcGVyLWxpbWUtNjAwOiAjYzBjYTMzOwogICAgICAtLXBhcGVyLWxpbWUtNzAwOiAjYWZiNDJiOwogICAgICAtLXBhcGVyLWxpbWUtODAwOiAjOWU5ZDI0OwogICAgICAtLXBhcGVyLWxpbWUtOTAwOiAjODI3NzE3OwogICAgICAtLXBhcGVyLWxpbWUtYTEwMDogI2Y0ZmY4MTsKICAgICAgLS1wYXBlci1saW1lLWEyMDA6ICNlZWZmNDE7CiAgICAgIC0tcGFwZXItbGltZS1hNDAwOiAjYzZmZjAwOwogICAgICAtLXBhcGVyLWxpbWUtYTcwMDogI2FlZWEwMDsKCiAgICAgIC0tcGFwZXIteWVsbG93LTUwOiAjZmZmZGU3OwogICAgICAtLXBhcGVyLXllbGxvdy0xMDA6ICNmZmY5YzQ7CiAgICAgIC0tcGFwZXIteWVsbG93LTIwMDogI2ZmZjU5ZDsKICAgICAgLS1wYXBlci15ZWxsb3ctMzAwOiAjZmZmMTc2OwogICAgICAtLXBhcGVyLXllbGxvdy00MDA6ICNmZmVlNTg7CiAgICAgIC0tcGFwZXIteWVsbG93LTUwMDogI2ZmZWIzYjsKICAgICAgLS1wYXBlci15ZWxsb3ctNjAwOiAjZmRkODM1OwogICAgICAtLXBhcGVyLXllbGxvdy03MDA6ICNmYmMwMmQ7CiAgICAgIC0tcGFwZXIteWVsbG93LTgwMDogI2Y5YTgyNTsKICAgICAgLS1wYXBlci15ZWxsb3ctOTAwOiAjZjU3ZjE3OwogICAgICAtLXBhcGVyLXllbGxvdy1hMTAwOiAjZmZmZjhkOwogICAgICAtLXBhcGVyLXllbGxvdy1hMjAwOiAjZmZmZjAwOwogICAgICAtLXBhcGVyLXllbGxvdy1hNDAwOiAjZmZlYTAwOwogICAgICAtLXBhcGVyLXllbGxvdy1hNzAwOiAjZmZkNjAwOwoKICAgICAgLS1wYXBlci1hbWJlci01MDogI2ZmZjhlMTsKICAgICAgLS1wYXBlci1hbWJlci0xMDA6ICNmZmVjYjM7CiAgICAgIC0tcGFwZXItYW1iZXItMjAwOiAjZmZlMDgyOwogICAgICAtLXBhcGVyLWFtYmVyLTMwMDogI2ZmZDU0ZjsKICAgICAgLS1wYXBlci1hbWJlci00MDA6ICNmZmNhMjg7CiAgICAgIC0tcGFwZXItYW1iZXItNTAwOiAjZmZjMTA3OwogICAgICAtLXBhcGVyLWFtYmVyLTYwMDogI2ZmYjMwMDsKICAgICAgLS1wYXBlci1hbWJlci03MDA6ICNmZmEwMDA7CiAgICAgIC0tcGFwZXItYW1iZXItODAwOiAjZmY4ZjAwOwogICAgICAtLXBhcGVyLWFtYmVyLTkwMDogI2ZmNmYwMDsKICAgICAgLS1wYXBlci1hbWJlci1hMTAwOiAjZmZlNTdmOwogICAgICAtLXBhcGVyLWFtYmVyLWEyMDA6ICNmZmQ3NDA7CiAgICAgIC0tcGFwZXItYW1iZXItYTQwMDogI2ZmYzQwMDsKICAgICAgLS1wYXBlci1hbWJlci1hNzAwOiAjZmZhYjAwOwoKICAgICAgLS1wYXBlci1vcmFuZ2UtNTA6ICNmZmYzZTA7CiAgICAgIC0tcGFwZXItb3JhbmdlLTEwMDogI2ZmZTBiMjsKICAgICAgLS1wYXBlci1vcmFuZ2UtMjAwOiAjZmZjYzgwOwogICAgICAtLXBhcGVyLW9yYW5nZS0zMDA6ICNmZmI3NGQ7CiAgICAgIC0tcGFwZXItb3JhbmdlLTQwMDogI2ZmYTcyNjsKICAgICAgLS1wYXBlci1vcmFuZ2UtNTAwOiAjZmY5ODAwOwogICAgICAtLXBhcGVyLW9yYW5nZS02MDA6ICNmYjhjMDA7CiAgICAgIC0tcGFwZXItb3JhbmdlLTcwMDogI2Y1N2MwMDsKICAgICAgLS1wYXBlci1vcmFuZ2UtODAwOiAjZWY2YzAwOwogICAgICAtLXBhcGVyLW9yYW5nZS05MDA6ICNlNjUxMDA7CiAgICAgIC0tcGFwZXItb3JhbmdlLWExMDA6ICNmZmQxODA7CiAgICAgIC0tcGFwZXItb3JhbmdlLWEyMDA6ICNmZmFiNDA7CiAgICAgIC0tcGFwZXItb3JhbmdlLWE0MDA6ICNmZjkxMDA7CiAgICAgIC0tcGFwZXItb3JhbmdlLWE3MDA6ICNmZjY1MDA7CgogICAgICAtLXBhcGVyLWRlZXAtb3JhbmdlLTUwOiAjZmJlOWU3OwogICAgICAtLXBhcGVyLWRlZXAtb3JhbmdlLTEwMDogI2ZmY2NiYzsKICAgICAgLS1wYXBlci1kZWVwLW9yYW5nZS0yMDA6ICNmZmFiOTE7CiAgICAgIC0tcGFwZXItZGVlcC1vcmFuZ2UtMzAwOiAjZmY4YTY1OwogICAgICAtLXBhcGVyLWRlZXAtb3JhbmdlLTQwMDogI2ZmNzA0MzsKICAgICAgLS1wYXBlci1kZWVwLW9yYW5nZS01MDA6ICNmZjU3MjI7CiAgICAgIC0tcGFwZXItZGVlcC1vcmFuZ2UtNjAwOiAjZjQ1MTFlOwogICAgICAtLXBhcGVyLWRlZXAtb3JhbmdlLTcwMDogI2U2NGExOTsKICAgICAgLS1wYXBlci1kZWVwLW9yYW5nZS04MDA6ICNkODQzMTU7CiAgICAgIC0tcGFwZXItZGVlcC1vcmFuZ2UtOTAwOiAjYmYzNjBjOwogICAgICAtLXBhcGVyLWRlZXAtb3JhbmdlLWExMDA6ICNmZjllODA7CiAgICAgIC0tcGFwZXItZGVlcC1vcmFuZ2UtYTIwMDogI2ZmNmU0MDsKICAgICAgLS1wYXBlci1kZWVwLW9yYW5nZS1hNDAwOiAjZmYzZDAwOwogICAgICAtLXBhcGVyLWRlZXAtb3JhbmdlLWE3MDA6ICNkZDJjMDA7CgogICAgICAtLXBhcGVyLWJyb3duLTUwOiAjZWZlYmU5OwogICAgICAtLXBhcGVyLWJyb3duLTEwMDogI2Q3Y2NjODsKICAgICAgLS1wYXBlci1icm93bi0yMDA6ICNiY2FhYTQ7CiAgICAgIC0tcGFwZXItYnJvd24tMzAwOiAjYTE4ODdmOwogICAgICAtLXBhcGVyLWJyb3duLTQwMDogIzhkNmU2MzsKICAgICAgLS1wYXBlci1icm93bi01MDA6ICM3OTU1NDg7CiAgICAgIC0tcGFwZXItYnJvd24tNjAwOiAjNmQ0YzQxOwogICAgICAtLXBhcGVyLWJyb3duLTcwMDogIzVkNDAzNzsKICAgICAgLS1wYXBlci1icm93bi04MDA6ICM0ZTM0MmU7CiAgICAgIC0tcGFwZXItYnJvd24tOTAwOiAjM2UyNzIzOwoKICAgICAgLS1wYXBlci1ncmV5LTUwOiAjZmFmYWZhOwogICAgICAtLXBhcGVyLWdyZXktMTAwOiAjZjVmNWY1OwogICAgICAtLXBhcGVyLWdyZXktMjAwOiAjZWVlZWVlOwogICAgICAtLXBhcGVyLWdyZXktMzAwOiAjZTBlMGUwOwogICAgICAtLXBhcGVyLWdyZXktNDAwOiAjYmRiZGJkOwogICAgICAtLXBhcGVyLWdyZXktNTAwOiAjOWU5ZTllOwogICAgICAtLXBhcGVyLWdyZXktNjAwOiAjNzU3NTc1OwogICAgICAtLXBhcGVyLWdyZXktNzAwOiAjNjE2MTYxOwogICAgICAtLXBhcGVyLWdyZXktODAwOiAjNDI0MjQyOwogICAgICAtLXBhcGVyLWdyZXktOTAwOiAjMjEyMTIxOwoKICAgICAgLS1wYXBlci1ibHVlLWdyZXktNTA6ICNlY2VmZjE7CiAgICAgIC0tcGFwZXItYmx1ZS1ncmV5LTEwMDogI2NmZDhkYzsKICAgICAgLS1wYXBlci1ibHVlLWdyZXktMjAwOiAjYjBiZWM1OwogICAgICAtLXBhcGVyLWJsdWUtZ3JleS0zMDA6ICM5MGE0YWU7CiAgICAgIC0tcGFwZXItYmx1ZS1ncmV5LTQwMDogIzc4OTA5YzsKICAgICAgLS1wYXBlci1ibHVlLWdyZXktNTAwOiAjNjA3ZDhiOwogICAgICAtLXBhcGVyLWJsdWUtZ3JleS02MDA6ICM1NDZlN2E7CiAgICAgIC0tcGFwZXItYmx1ZS1ncmV5LTcwMDogIzQ1NWE2NDsKICAgICAgLS1wYXBlci1ibHVlLWdyZXktODAwOiAjMzc0NzRmOwogICAgICAtLXBhcGVyLWJsdWUtZ3JleS05MDA6ICMyNjMyMzg7CgogICAgICAvKiBvcGFjaXR5IGZvciBkYXJrIHRleHQgb24gYSBsaWdodCBiYWNrZ3JvdW5kICovCiAgICAgIC0tZGFyay1kaXZpZGVyLW9wYWNpdHk6IDAuMTI7CiAgICAgIC0tZGFyay1kaXNhYmxlZC1vcGFjaXR5OiAwLjM4OyAvKiBvciBoaW50IHRleHQgb3IgaWNvbiAqLwogICAgICAtLWRhcmstc2Vjb25kYXJ5LW9wYWNpdHk6IDAuNTQ7CiAgICAgIC0tZGFyay1wcmltYXJ5LW9wYWNpdHk6IDAuODc7CgogICAgICAvKiBvcGFjaXR5IGZvciBsaWdodCB0ZXh0IG9uIGEgZGFyayBiYWNrZ3JvdW5kICovCiAgICAgIC0tbGlnaHQtZGl2aWRlci1vcGFjaXR5OiAwLjEyOwogICAgICAtLWxpZ2h0LWRpc2FibGVkLW9wYWNpdHk6IDAuMzsgLyogb3IgaGludCB0ZXh0IG9yIGljb24gKi8KICAgICAgLS1saWdodC1zZWNvbmRhcnktb3BhY2l0eTogMC43OwogICAgICAtLWxpZ2h0LXByaW1hcnktb3BhY2l0eTogMS4wOwoKICAgIH0KCiAgPC9zdHlsZT4KPC9jdXN0b20tc3R5bGU+CmA7ZmEuc2V0QXR0cmlidXRlKCJzdHlsZSIsImRpc3BsYXk6IG5vbmU7IiksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChmYS5jb250ZW50KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IG1hPXhlYAo8Y3VzdG9tLXN0eWxlPgogIDxzdHlsZSBpcz0iY3VzdG9tLXN0eWxlIj4KICAgIGh0bWwgewogICAgICAvKgogICAgICAgKiBZb3UgY2FuIHVzZSB0aGVzZSBnZW5lcmljIHZhcmlhYmxlcyBpbiB5b3VyIGVsZW1lbnRzIGZvciBlYXN5IHRoZW1pbmcuCiAgICAgICAqIEZvciBleGFtcGxlLCBpZiBhbGwgeW91ciBlbGVtZW50cyB1c2UgXGAtLXByaW1hcnktdGV4dC1jb2xvclxgIGFzIGl0cyBtYWluCiAgICAgICAqIGNvbG9yLCB0aGVuIHN3aXRjaGluZyBmcm9tIGEgbGlnaHQgdG8gYSBkYXJrIHRoZW1lIGlzIGp1c3QgYSBtYXR0ZXIgb2YKICAgICAgICogY2hhbmdpbmcgdGhlIHZhbHVlIG9mIFxgLS1wcmltYXJ5LXRleHQtY29sb3JcYCBpbiB5b3VyIGFwcGxpY2F0aW9uLgogICAgICAgKi8KICAgICAgLS1wcmltYXJ5LXRleHQtY29sb3I6IHZhcigtLWxpZ2h0LXRoZW1lLXRleHQtY29sb3IpOwogICAgICAtLXByaW1hcnktYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlnaHQtdGhlbWUtYmFja2dyb3VuZC1jb2xvcik7CiAgICAgIC0tc2Vjb25kYXJ5LXRleHQtY29sb3I6IHZhcigtLWxpZ2h0LXRoZW1lLXNlY29uZGFyeS1jb2xvcik7CiAgICAgIC0tZGlzYWJsZWQtdGV4dC1jb2xvcjogdmFyKC0tbGlnaHQtdGhlbWUtZGlzYWJsZWQtY29sb3IpOwogICAgICAtLWRpdmlkZXItY29sb3I6IHZhcigtLWxpZ2h0LXRoZW1lLWRpdmlkZXItY29sb3IpOwogICAgICAtLWVycm9yLWNvbG9yOiB2YXIoLS1wYXBlci1kZWVwLW9yYW5nZS1hNzAwKTsKCiAgICAgIC8qCiAgICAgICAqIFByaW1hcnkgYW5kIGFjY2VudCBjb2xvcnMuIEFsc28gc2VlIGNvbG9yLmpzIGZvciBtb3JlIGNvbG9ycy4KICAgICAgICovCiAgICAgIC0tcHJpbWFyeS1jb2xvcjogdmFyKC0tcGFwZXItaW5kaWdvLTUwMCk7CiAgICAgIC0tbGlnaHQtcHJpbWFyeS1jb2xvcjogdmFyKC0tcGFwZXItaW5kaWdvLTEwMCk7CiAgICAgIC0tZGFyay1wcmltYXJ5LWNvbG9yOiB2YXIoLS1wYXBlci1pbmRpZ28tNzAwKTsKCiAgICAgIC0tYWNjZW50LWNvbG9yOiB2YXIoLS1wYXBlci1waW5rLWEyMDApOwogICAgICAtLWxpZ2h0LWFjY2VudC1jb2xvcjogdmFyKC0tcGFwZXItcGluay1hMTAwKTsKICAgICAgLS1kYXJrLWFjY2VudC1jb2xvcjogdmFyKC0tcGFwZXItcGluay1hNDAwKTsKCgogICAgICAvKgogICAgICAgKiBNYXRlcmlhbCBEZXNpZ24gTGlnaHQgYmFja2dyb3VuZCB0aGVtZQogICAgICAgKi8KICAgICAgLS1saWdodC10aGVtZS1iYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOwogICAgICAtLWxpZ2h0LXRoZW1lLWJhc2UtY29sb3I6ICMwMDAwMDA7CiAgICAgIC0tbGlnaHQtdGhlbWUtdGV4dC1jb2xvcjogdmFyKC0tcGFwZXItZ3JleS05MDApOwogICAgICAtLWxpZ2h0LXRoZW1lLXNlY29uZGFyeS1jb2xvcjogIzczNzM3MzsgIC8qIGZvciBzZWNvbmRhcnkgdGV4dCBhbmQgaWNvbnMgKi8KICAgICAgLS1saWdodC10aGVtZS1kaXNhYmxlZC1jb2xvcjogIzliOWI5YjsgIC8qIGRpc2FibGVkL2hpbnQgdGV4dCAqLwogICAgICAtLWxpZ2h0LXRoZW1lLWRpdmlkZXItY29sb3I6ICNkYmRiZGI7CgogICAgICAvKgogICAgICAgKiBNYXRlcmlhbCBEZXNpZ24gRGFyayBiYWNrZ3JvdW5kIHRoZW1lCiAgICAgICAqLwogICAgICAtLWRhcmstdGhlbWUtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItZ3JleS05MDApOwogICAgICAtLWRhcmstdGhlbWUtYmFzZS1jb2xvcjogI2ZmZmZmZjsKICAgICAgLS1kYXJrLXRoZW1lLXRleHQtY29sb3I6ICNmZmZmZmY7CiAgICAgIC0tZGFyay10aGVtZS1zZWNvbmRhcnktY29sb3I6ICNiY2JjYmM7ICAvKiBmb3Igc2Vjb25kYXJ5IHRleHQgYW5kIGljb25zICovCiAgICAgIC0tZGFyay10aGVtZS1kaXNhYmxlZC1jb2xvcjogIzY0NjQ2NDsgIC8qIGRpc2FibGVkL2hpbnQgdGV4dCAqLwogICAgICAtLWRhcmstdGhlbWUtZGl2aWRlci1jb2xvcjogIzNjM2MzYzsKCiAgICAgIC8qCiAgICAgICAqIERlcHJlY2F0ZWQgdmFsdWVzIGJlY2F1c2Ugb2YgdGhlaXIgY29uZnVzaW5nIG5hbWVzLgogICAgICAgKi8KICAgICAgLS10ZXh0LXByaW1hcnktY29sb3I6IHZhcigtLWRhcmstdGhlbWUtdGV4dC1jb2xvcik7CiAgICAgIC0tZGVmYXVsdC1wcmltYXJ5LWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTsKICAgIH0KICA8L3N0eWxlPgo8L2N1c3RvbS1zdHlsZT5gO21hLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobWEuY29udGVudCk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBnYT17cHJvcGVydGllczp7bmFtZTp7dHlwZTpTdHJpbmd9LHZhbHVlOntub3RpZnk6ITAsdHlwZTpTdHJpbmd9LHJlcXVpcmVkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9fSxhdHRhY2hlZDpmdW5jdGlvbigpe30sZGV0YWNoZWQ6ZnVuY3Rpb24oKXt9fTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovbGV0IF9hPW51bGw7Y29uc3QgeWE9e3Byb3BlcnRpZXM6e3ZhbGlkYXRvcjp7dHlwZTpTdHJpbmd9LGludmFsaWQ6e25vdGlmeTohMCxyZWZsZWN0VG9BdHRyaWJ1dGU6ITAsdHlwZTpCb29sZWFuLHZhbHVlOiExLG9ic2VydmVyOiJfaW52YWxpZENoYW5nZWQifX0scmVnaXN0ZXJlZDpmdW5jdGlvbigpe19hPW5ldyBObyh7dHlwZToidmFsaWRhdG9yIn0pfSxfaW52YWxpZENoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLmludmFsaWQ/dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtaW52YWxpZCIsInRydWUiKTp0aGlzLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1pbnZhbGlkIil9LGdldCBfdmFsaWRhdG9yKCl7cmV0dXJuIF9hJiZfYS5ieUtleSh0aGlzLnZhbGlkYXRvcil9LGhhc1ZhbGlkYXRvcjpmdW5jdGlvbigpe3JldHVybiBudWxsIT10aGlzLl92YWxpZGF0b3J9LHZhbGlkYXRlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmludmFsaWQ9dm9pZCAwPT09dCYmdm9pZCAwIT09dGhpcy52YWx1ZT8hdGhpcy5fZ2V0VmFsaWRpdHkodGhpcy52YWx1ZSk6IXRoaXMuX2dldFZhbGlkaXR5KHQpLCF0aGlzLmludmFsaWR9LF9nZXRWYWxpZGl0eTpmdW5jdGlvbih0KXtyZXR1cm4hdGhpcy5oYXNWYWxpZGF0b3IoKXx8dGhpcy5fdmFsaWRhdG9yLnZhbGlkYXRlKHQpfX0sdmE9e3Byb3BlcnRpZXM6e2NoZWNrZWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxyZWZsZWN0VG9BdHRyaWJ1dGU6ITAsbm90aWZ5OiEwLG9ic2VydmVyOiJfY2hlY2tlZENoYW5nZWQifSx0b2dnbGVzOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITAscmVmbGVjdFRvQXR0cmlidXRlOiEwfSx2YWx1ZTp7dHlwZTpTdHJpbmcsdmFsdWU6Im9uIixvYnNlcnZlcjoiX3ZhbHVlQ2hhbmdlZCJ9fSxvYnNlcnZlcnM6WyJfcmVxdWlyZWRDaGFuZ2VkKHJlcXVpcmVkKSJdLGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNJcm9uQ2hlY2tlZEVsZW1lbnRCZWhhdmlvcj0hMH0sX2dldFZhbGlkaXR5OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmRpc2FibGVkfHwhdGhpcy5yZXF1aXJlZHx8dGhpcy5jaGVja2VkfSxfcmVxdWlyZWRDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5yZXF1aXJlZD90aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS1yZXF1aXJlZCIsInRydWUiKTp0aGlzLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1yZXF1aXJlZCIpfSxfY2hlY2tlZENoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLmFjdGl2ZT10aGlzLmNoZWNrZWQsdGhpcy5maXJlKCJpcm9uLWNoYW5nZSIpfSxfdmFsdWVDaGFuZ2VkOmZ1bmN0aW9uKCl7bnVsbD09dGhpcy52YWx1ZSYmKHRoaXMudmFsdWU9Im9uIil9fSxiYT17b2JzZXJ2ZXJzOlsiX2ZvY3VzZWRDaGFuZ2VkKHJlY2VpdmVkRm9jdXNGcm9tS2V5Ym9hcmQpIl0sX2ZvY3VzZWRDaGFuZ2VkOmZ1bmN0aW9uKHQpe3QmJnRoaXMuZW5zdXJlUmlwcGxlKCksdGhpcy5oYXNSaXBwbGUoKSYmKHRoaXMuX3JpcHBsZS5ob2xkRG93bj10KX0sX2NyZWF0ZVJpcHBsZTpmdW5jdGlvbigpe3ZhciB0PXVhLl9jcmVhdGVSaXBwbGUoKTtyZXR1cm4gdC5pZD0iaW5rIix0LnNldEF0dHJpYnV0ZSgiY2VudGVyIiwiIiksdC5jbGFzc0xpc3QuYWRkKCJjaXJjbGUiKSx0fX0seGE9W2FhLHJhLHVhLGJhXSx3YT1beGEsW2dhLHlhLHZhXSx7X2NoZWNrZWRDaGFuZ2VkOmZ1bmN0aW9uKCl7dmEuX2NoZWNrZWRDaGFuZ2VkLmNhbGwodGhpcyksdGhpcy5oYXNSaXBwbGUoKSYmKHRoaXMuY2hlY2tlZD90aGlzLl9yaXBwbGUuc2V0QXR0cmlidXRlKCJjaGVja2VkIiwiIik6dGhpcy5fcmlwcGxlLnJlbW92ZUF0dHJpYnV0ZSgiY2hlY2tlZCIpKX0sX2J1dHRvblN0YXRlQ2hhbmdlZDpmdW5jdGlvbigpe3VhLl9idXR0b25TdGF0ZUNoYW5nZWQuY2FsbCh0aGlzKSx0aGlzLmRpc2FibGVkfHx0aGlzLmlzQXR0YWNoZWQmJih0aGlzLmNoZWNrZWQ9dGhpcy5hY3RpdmUpfX1dLFNhPXhlYDxzdHlsZT4KICA6aG9zdCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgLS1jYWxjdWxhdGVkLXBhcGVyLWNoZWNrYm94LXNpemU6IHZhcigtLXBhcGVyLWNoZWNrYm94LXNpemUsIDE4cHgpOwogICAgLyogLTFweCBpcyBhIHNlbnRpbmVsIGZvciB0aGUgZGVmYXVsdCBhbmQgaXMgcmVwbGFjZWQgaW4gXGBhdHRhY2hlZFxgLiAqLwogICAgLS1jYWxjdWxhdGVkLXBhcGVyLWNoZWNrYm94LWluay1zaXplOiB2YXIoLS1wYXBlci1jaGVja2JveC1pbmstc2l6ZSwgLTFweCk7CiAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgbGluZS1oZWlnaHQ6IDA7CiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OwogIH0KCiAgOmhvc3QoW2hpZGRlbl0pIHsKICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICB9CgogIDpob3N0KDpmb2N1cykgewogICAgb3V0bGluZTogbm9uZTsKICB9CgogIC5oaWRkZW4gewogICAgZGlzcGxheTogbm9uZTsKICB9CgogICNjaGVja2JveENvbnRhaW5lciB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB3aWR0aDogdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1zaXplKTsKICAgIGhlaWdodDogdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1zaXplKTsKICAgIG1pbi13aWR0aDogdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1zaXplKTsKICAgIG1hcmdpbjogdmFyKC0tcGFwZXItY2hlY2tib3gtbWFyZ2luLCBpbml0aWFsKTsKICAgIHZlcnRpY2FsLWFsaWduOiB2YXIoLS1wYXBlci1jaGVja2JveC12ZXJ0aWNhbC1hbGlnbiwgbWlkZGxlKTsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1iYWNrZ3JvdW5kLWNvbG9yLCB0cmFuc3BhcmVudCk7CiAgfQoKICAjaW5rIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKCiAgICAvKiBDZW50ZXIgdGhlIHJpcHBsZSBpbiB0aGUgY2hlY2tib3ggYnkgbmVnYXRpdmUgb2Zmc2V0dGluZyBpdCBieQogICAgICogKGlua1dpZHRoIC0gcmlwcGxlV2lkdGgpIC8gMiAqLwogICAgdG9wOiBjYWxjKDBweCAtICh2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLWNoZWNrYm94LWluay1zaXplKSAtIHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItY2hlY2tib3gtc2l6ZSkpIC8gMik7CiAgICBsZWZ0OiBjYWxjKDBweCAtICh2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLWNoZWNrYm94LWluay1zaXplKSAtIHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItY2hlY2tib3gtc2l6ZSkpIC8gMik7CiAgICB3aWR0aDogdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1pbmstc2l6ZSk7CiAgICBoZWlnaHQ6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItY2hlY2tib3gtaW5rLXNpemUpOwogICAgY29sb3I6IHZhcigtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1pbmstY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwogICAgb3BhY2l0eTogMC42OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgfQoKICAjaW5rOmRpcihydGwpIHsKICAgIHJpZ2h0OiBjYWxjKDBweCAtICh2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLWNoZWNrYm94LWluay1zaXplKSAtIHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItY2hlY2tib3gtc2l6ZSkpIC8gMik7CiAgICBsZWZ0OiBhdXRvOwogIH0KCiAgI2lua1tjaGVja2VkXSB7CiAgICBjb2xvcjogdmFyKC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1pbmstY29sb3IsIHZhcigtLXByaW1hcnktY29sb3IpKTsKICB9CgogICNjaGVja2JveCB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgaGVpZ2h0OiAxMDAlOwogICAgYm9yZGVyOiBzb2xpZCAycHg7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7CiAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNDBtcywgYm9yZGVyLWNvbG9yIDE0MG1zOwogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNDBtcywgYm9yZGVyLWNvbG9yIDE0MG1zOwoKICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tcGFwZXItY2hlY2tib3gtYW5pbWF0aW9uLWR1cmF0aW9uLCAxNDBtcyk7CiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1wYXBlci1jaGVja2JveC1hbmltYXRpb24tZHVyYXRpb24sIDE0MG1zKTsKICB9CgogIC8qIGNoZWNrYm94IGNoZWNrZWQgYW5pbWF0aW9ucyAqLwogICNjaGVja2JveC5jaGVja2VkICNjaGVja21hcmsgewogICAgLXdlYmtpdC1hbmltYXRpb246IGNoZWNrbWFyay1leHBhbmQgMTQwbXMgZWFzZS1vdXQgZm9yd2FyZHM7CiAgICBhbmltYXRpb246IGNoZWNrbWFyay1leHBhbmQgMTQwbXMgZWFzZS1vdXQgZm9yd2FyZHM7CgogICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IHZhcigtLXBhcGVyLWNoZWNrYm94LWFuaW1hdGlvbi1kdXJhdGlvbiwgMTQwbXMpOwogICAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1wYXBlci1jaGVja2JveC1hbmltYXRpb24tZHVyYXRpb24sIDE0MG1zKTsKICB9CgogIEAtd2Via2l0LWtleWZyYW1lcyBjaGVja21hcmstZXhwYW5kIHsKICAgIDAlIHsKICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAsIDApIHJvdGF0ZSg0NWRlZyk7CiAgICB9CiAgICAxMDAlIHsKICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEsIDEpIHJvdGF0ZSg0NWRlZyk7CiAgICB9CiAgfQoKICBAa2V5ZnJhbWVzIGNoZWNrbWFyay1leHBhbmQgewogICAgMCUgewogICAgICB0cmFuc2Zvcm06IHNjYWxlKDAsIDApIHJvdGF0ZSg0NWRlZyk7CiAgICB9CiAgICAxMDAlIHsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSByb3RhdGUoNDVkZWcpOwogICAgfQogIH0KCiAgI2NoZWNrYm94LmNoZWNrZWQgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1jb2xvciwgdmFyKC0tcHJpbWFyeS1jb2xvcikpOwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSk7CiAgfQoKICAjY2hlY2ttYXJrIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHdpZHRoOiAzNiU7CiAgICBoZWlnaHQ6IDcwJTsKICAgIGJvcmRlci1zdHlsZTogc29saWQ7CiAgICBib3JkZXItdG9wOiBub25lOwogICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICBib3JkZXItcmlnaHQtd2lkdGg6IGNhbGMoMi8xNSAqIHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItY2hlY2tib3gtc2l6ZSkpOwogICAgYm9yZGVyLWJvdHRvbS13aWR0aDogY2FsYygyLzE1ICogdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1jaGVja2JveC1zaXplKSk7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXBhcGVyLWNoZWNrYm94LWNoZWNrbWFyay1jb2xvciwgd2hpdGUpOwogICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiA5NyUgODYlOwogICAgdHJhbnNmb3JtLW9yaWdpbjogOTclIDg2JTsKICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiBwcm90ZWN0IGFnYWluc3QgcGFnZS1sZXZlbCBib3gtc2l6aW5nICovCiAgfQoKICAjY2hlY2ttYXJrOmRpcihydGwpIHsKICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDE0JTsKICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAxNCU7CiAgfQoKICAvKiBsYWJlbCAqLwogICNjaGVja2JveExhYmVsIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLXBhcGVyLWNoZWNrYm94LWxhYmVsLXNwYWNpbmcsIDhweCk7CiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOwogICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsKICAgIGNvbG9yOiB2YXIoLS1wYXBlci1jaGVja2JveC1sYWJlbC1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7CiAgICBAYXBwbHkgLS1wYXBlci1jaGVja2JveC1sYWJlbDsKICB9CgogIDpob3N0KFtjaGVja2VkXSkgI2NoZWNrYm94TGFiZWwgewogICAgY29sb3I6IHZhcigtLXBhcGVyLWNoZWNrYm94LWxhYmVsLWNoZWNrZWQtY29sb3IsIHZhcigtLXBhcGVyLWNoZWNrYm94LWxhYmVsLWNvbG9yLCB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpKSk7CiAgICBAYXBwbHkgLS1wYXBlci1jaGVja2JveC1sYWJlbC1jaGVja2VkOwogIH0KCiAgI2NoZWNrYm94TGFiZWw6ZGlyKHJ0bCkgewogICAgcGFkZGluZy1yaWdodDogdmFyKC0tcGFwZXItY2hlY2tib3gtbGFiZWwtc3BhY2luZywgOHB4KTsKICAgIHBhZGRpbmctbGVmdDogMDsKICB9CgogICNjaGVja2JveExhYmVsW2hpZGRlbl0gewogICAgZGlzcGxheTogbm9uZTsKICB9CgogIC8qIGRpc2FibGVkIHN0YXRlICovCgogIDpob3N0KFtkaXNhYmxlZF0pICNjaGVja2JveCB7CiAgICBvcGFjaXR5OiAwLjU7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7CiAgfQoKICA6aG9zdChbZGlzYWJsZWRdW2NoZWNrZWRdKSAjY2hlY2tib3ggewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWNvbG9yLCB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpKTsKICAgIG9wYWNpdHk6IDAuNTsKICB9CgogIDpob3N0KFtkaXNhYmxlZF0pICNjaGVja2JveExhYmVsICB7CiAgICBvcGFjaXR5OiAwLjY1OwogIH0KCiAgLyogaW52YWxpZCBzdGF0ZSAqLwogICNjaGVja2JveC5pbnZhbGlkOm5vdCguY2hlY2tlZCkgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wYXBlci1jaGVja2JveC1lcnJvci1jb2xvciwgdmFyKC0tZXJyb3ItY29sb3IpKTsKICB9Cjwvc3R5bGU+Cgo8ZGl2IGlkPSJjaGVja2JveENvbnRhaW5lciI+CiAgPGRpdiBpZD0iY2hlY2tib3giIGNsYXNzJD0iW1tfY29tcHV0ZUNoZWNrYm94Q2xhc3MoY2hlY2tlZCwgaW52YWxpZCldXSI+CiAgICA8ZGl2IGlkPSJjaGVja21hcmsiIGNsYXNzJD0iW1tfY29tcHV0ZUNoZWNrbWFya0NsYXNzKGNoZWNrZWQpXV0iPjwvZGl2PgogIDwvZGl2Pgo8L2Rpdj4KCjxkaXYgaWQ9ImNoZWNrYm94TGFiZWwiPjxzbG90Pjwvc2xvdD48L2Rpdj5gOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmlmKFNhLnNldEF0dHJpYnV0ZSgic3RyaXAtd2hpdGVzcGFjZSIsIiIpLGpyKHtfdGVtcGxhdGU6U2EsaXM6InBhcGVyLWNoZWNrYm94IixiZWhhdmlvcnM6W3dhXSxob3N0QXR0cmlidXRlczp7cm9sZToiY2hlY2tib3giLCJhcmlhLWNoZWNrZWQiOiExLHRhYmluZGV4OjB9LHByb3BlcnRpZXM6e2FyaWFBY3RpdmVBdHRyaWJ1dGU6e3R5cGU6U3RyaW5nLHZhbHVlOiJhcmlhLWNoZWNrZWQifX0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXtEaSh0aGlzLChmdW5jdGlvbigpe2lmKCItMXB4Ij09PXRoaXMuZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItLWNhbGN1bGF0ZWQtcGFwZXItY2hlY2tib3gtaW5rLXNpemUiKS50cmltKCkpe3ZhciB0PXRoaXMuZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKCItLWNhbGN1bGF0ZWQtcGFwZXItY2hlY2tib3gtc2l6ZSIpLnRyaW0oKSxlPSJweCIsbj10Lm1hdGNoKC9bQS1aYS16XSskLyk7bnVsbCE9PW4mJihlPW5bMF0pO3ZhciBpPXBhcnNlRmxvYXQodCkscj04LzMqaTsicHgiPT09ZSYmKHI9TWF0aC5mbG9vcihyKSklMiE9aSUyJiZyKyssdGhpcy51cGRhdGVTdHlsZXMoeyItLXBhcGVyLWNoZWNrYm94LWluay1zaXplIjpyK2V9KX19KSl9LF9jb21wdXRlQ2hlY2tib3hDbGFzczpmdW5jdGlvbih0LGUpe3ZhciBuPSIiO3JldHVybiB0JiYobis9ImNoZWNrZWQgIiksZSYmKG4rPSJpbnZhbGlkIiksbn0sX2NvbXB1dGVDaGVja21hcmtDbGFzczpmdW5jdGlvbih0KXtyZXR1cm4gdD8iIjoiaGlkZGVuIn0sX2NyZWF0ZVJpcHBsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yaXBwbGVDb250YWluZXI9dGhpcy4kLmNoZWNrYm94Q29udGFpbmVyLGJhLl9jcmVhdGVSaXBwbGUuY2FsbCh0aGlzKX19KSwhd2luZG93LnBvbHltZXJTa2lwTG9hZGluZ0ZvbnRSb2JvdG8pe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpO3QucmVsPSJzdHlsZXNoZWV0Iix0LnR5cGU9InRleHQvY3NzIix0LmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLHQuaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bytNb25vOjQwMCw3MDB8Um9ib3RvOjQwMCwzMDAsMzAwaXRhbGljLDQwMGl0YWxpYyw1MDAsNTAwaXRhbGljLDcwMCw3MDBpdGFsaWMiLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodCl9Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL2NvbnN0IE1hPXhlYDxjdXN0b20tc3R5bGU+CiAgPHN0eWxlIGlzPSJjdXN0b20tc3R5bGUiPgogICAgaHRtbCB7CgogICAgICAvKiBTaGFyZWQgU3R5bGVzICovCiAgICAgIC0tcGFwZXItZm9udC1jb21tb24tYmFzZTogewogICAgICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgJ05vdG8nLCBzYW5zLXNlcmlmOwogICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogICAgICB9OwoKICAgICAgLS1wYXBlci1mb250LWNvbW1vbi1jb2RlOiB7CiAgICAgICAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubycsICdDb25zb2xhcycsICdNZW5sbycsIG1vbm9zcGFjZTsKICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC1jb21tb24tZXhwZW5zaXZlLWtlcm5pbmc6IHsKICAgICAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OwogICAgICB9OwoKICAgICAgLS1wYXBlci1mb250LWNvbW1vbi1ub3dyYXA6IHsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH07CgogICAgICAvKiBNYXRlcmlhbCBGb250IFN0eWxlcyAqLwoKICAgICAgLS1wYXBlci1mb250LWRpc3BsYXk0OiB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tYmFzZTsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1ub3dyYXA7CgogICAgICAgIGZvbnQtc2l6ZTogMTEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLS4wNDRlbTsKICAgICAgICBsaW5lLWhlaWdodDogMTIwcHg7CiAgICAgIH07CgogICAgICAtLXBhcGVyLWZvbnQtZGlzcGxheTM6IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLW5vd3JhcDsKCiAgICAgICAgZm9udC1zaXplOiA1NnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0uMDI2ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDYwcHg7CiAgICAgIH07CgogICAgICAtLXBhcGVyLWZvbnQtZGlzcGxheTI6IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwoKICAgICAgICBmb250LXNpemU6IDQ1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLS4wMThlbTsKICAgICAgICBsaW5lLWhlaWdodDogNDhweDsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC1kaXNwbGF5MTogewogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWJhc2U7CgogICAgICAgIGZvbnQtc2l6ZTogMzRweDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtLjAxZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7CiAgICAgIH07CgogICAgICAtLXBhcGVyLWZvbnQtaGVhZGxpbmU6IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwoKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLS4wMTJlbTsKICAgICAgICBsaW5lLWhlaWdodDogMzJweDsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC10aXRsZTogewogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWJhc2U7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tbm93cmFwOwoKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMjhweDsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC1zdWJoZWFkOiB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tYmFzZTsKCiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgIH07CgogICAgICAtLXBhcGVyLWZvbnQtYm9keTI6IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwoKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMjRweDsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC1ib2R5MTogewogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWJhc2U7CgogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9OwoKICAgICAgLS1wYXBlci1mb250LWNhcHRpb246IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLW5vd3JhcDsKCiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDExZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgIH07CgogICAgICAtLXBhcGVyLWZvbnQtbWVudTogewogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWJhc2U7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tbm93cmFwOwoKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMjRweDsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC1idXR0b246IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLW5vd3JhcDsKCiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDE4ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgfTsKCiAgICAgIC0tcGFwZXItZm9udC1jb2RlMjogewogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWNvZGU7CgogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9OwoKICAgICAgLS1wYXBlci1mb250LWNvZGUxOiB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jb21tb24tY29kZTsKCiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgIH07CgogICAgfQoKICA8L3N0eWxlPgo8L2N1c3RvbS1zdHlsZT5gO01hLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoTWEuY29udGVudCk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBFYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO0VhLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpLEVhLmlubmVySFRNTD0nPGRvbS1tb2R1bGUgaWQ9InBhcGVyLWRpYWxvZy1zaGFyZWQtc3R5bGVzIj5cbiAgPHRlbXBsYXRlPlxuICAgIDxzdHlsZT5cbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMjRweCA0MHB4O1xuXG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXBhcGVyLWRpYWxvZy1iYWNrZ3JvdW5kLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWJhY2tncm91bmQtY29sb3IpKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWRpYWxvZy1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7XG5cbiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1ib2R5MTtcbiAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi0xNmRwO1xuICAgICAgICBAYXBwbHkgLS1wYXBlci1kaWFsb2c7XG4gICAgICB9XG5cbiAgICAgIDpob3N0ID4gOjpzbG90dGVkKCopIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgcGFkZGluZzogMCAyNHB4O1xuICAgICAgfVxuXG4gICAgICA6aG9zdCA+IDo6c2xvdHRlZCgubm8tcGFkZGluZykge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgICBcbiAgICAgIDpob3N0ID4gOjpzbG90dGVkKCo6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICAgIH1cblxuICAgICAgOmhvc3QgPiA6OnNsb3R0ZWQoKjpsYXN0LWNoaWxkKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICB9XG5cbiAgICAgIC8qIEluIDEueCwgdGhpcyBzZWxlY3RvciB3YXMgYDpob3N0ID4gOjpjb250ZW50IGgyYC4gSW4gMi54IDxzbG90PiBhbGxvd3NcbiAgICAgIHRvIHNlbGVjdCBkaXJlY3QgY2hpbGRyZW4gb25seSwgd2hpY2ggaW5jcmVhc2VzIHRoZSB3ZWlnaHQgb2YgdGhpc1xuICAgICAgc2VsZWN0b3IsIHNvIHdlIGhhdmUgdG8gcmUtZGVmaW5lIGZpcnN0LWNoaWxkL2xhc3QtY2hpbGQgbWFyZ2lucyBiZWxvdy4gKi9cbiAgICAgIDpob3N0ID4gOjpzbG90dGVkKGgyKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtdGl0bGU7XG4gICAgICAgIEBhcHBseSAtLXBhcGVyLWRpYWxvZy10aXRsZTtcbiAgICAgIH1cblxuICAgICAgLyogQXBwbHkgbWl4aW4gYWdhaW4sIGluIGNhc2UgaXQgc2V0cyBtYXJnaW4tdG9wLiAqL1xuICAgICAgOmhvc3QgPiA6OnNsb3R0ZWQoaDI6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICAgICAgQGFwcGx5IC0tcGFwZXItZGlhbG9nLXRpdGxlO1xuICAgICAgfVxuXG4gICAgICAvKiBBcHBseSBtaXhpbiBhZ2FpbiwgaW4gY2FzZSBpdCBzZXRzIG1hcmdpbi1ib3R0b20uICovXG4gICAgICA6aG9zdCA+IDo6c2xvdHRlZChoMjpsYXN0LWNoaWxkKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICAgIEBhcHBseSAtLXBhcGVyLWRpYWxvZy10aXRsZTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QgPiA6OnNsb3R0ZWQoLnBhcGVyLWRpYWxvZy1idXR0b25zKSxcbiAgICAgIDpob3N0ID4gOjpzbG90dGVkKC5idXR0b25zKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogOHB4IDhweCA4cHggMjRweDtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1kaWFsb2ctYnV0dG9uLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSk7XG5cbiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWhvcml6b250YWw7XG4gICAgICAgIEBhcHBseSAtLWxheW91dC1lbmQtanVzdGlmaWVkO1xuICAgICAgfVxuICAgIDwvc3R5bGU+XG4gIDwvdGVtcGxhdGU+XG48L2RvbS1tb2R1bGU+Jyxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKEVhLmNvbnRlbnQpOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgVGE9W3twcm9wZXJ0aWVzOnthbmltYXRpb25Db25maWc6e3R5cGU6T2JqZWN0fSxlbnRyeUFuaW1hdGlvbjp7b2JzZXJ2ZXI6Il9lbnRyeUFuaW1hdGlvbkNoYW5nZWQiLHR5cGU6U3RyaW5nfSxleGl0QW5pbWF0aW9uOntvYnNlcnZlcjoiX2V4aXRBbmltYXRpb25DaGFuZ2VkIix0eXBlOlN0cmluZ319LF9lbnRyeUFuaW1hdGlvbkNoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLmFuaW1hdGlvbkNvbmZpZz10aGlzLmFuaW1hdGlvbkNvbmZpZ3x8e30sdGhpcy5hbmltYXRpb25Db25maWcuZW50cnk9W3tuYW1lOnRoaXMuZW50cnlBbmltYXRpb24sbm9kZTp0aGlzfV19LF9leGl0QW5pbWF0aW9uQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuYW5pbWF0aW9uQ29uZmlnPXRoaXMuYW5pbWF0aW9uQ29uZmlnfHx7fSx0aGlzLmFuaW1hdGlvbkNvbmZpZy5leGl0PVt7bmFtZTp0aGlzLmV4aXRBbmltYXRpb24sbm9kZTp0aGlzfV19LF9jb3B5UHJvcGVydGllczpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKXRbbl09ZVtuXX0sX2Nsb25lQ29uZmlnOmZ1bmN0aW9uKHQpe3ZhciBlPXtpc0Nsb25lOiEwfTtyZXR1cm4gdGhpcy5fY29weVByb3BlcnRpZXMoZSx0KSxlfSxfZ2V0QW5pbWF0aW9uQ29uZmlnUmVjdXJzaXZlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaTtpZih0aGlzLmFuaW1hdGlvbkNvbmZpZylpZih0aGlzLmFuaW1hdGlvbkNvbmZpZy52YWx1ZSYmImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuYW5pbWF0aW9uQ29uZmlnLnZhbHVlKXRoaXMuX3dhcm4odGhpcy5fbG9nZigicGxheUFuaW1hdGlvbiIsIlBsZWFzZSBwdXQgJ2FuaW1hdGlvbkNvbmZpZycgaW5zaWRlIG9mIHlvdXIgY29tcG9uZW50cyAncHJvcGVydGllcycgb2JqZWN0IGluc3RlYWQgb2Ygb3V0c2lkZSBvZiBpdC4iKSk7ZWxzZSBpZihpPXQ/dGhpcy5hbmltYXRpb25Db25maWdbdF06dGhpcy5hbmltYXRpb25Db25maWcsQXJyYXkuaXNBcnJheShpKXx8KGk9W2ldKSxpKWZvcih2YXIgcixvPTA7cj1pW29dO28rKylpZihyLmFuaW1hdGFibGUpci5hbmltYXRhYmxlLl9nZXRBbmltYXRpb25Db25maWdSZWN1cnNpdmUoci50eXBlfHx0LGUsbik7ZWxzZSBpZihyLmlkKXt2YXIgYT1lW3IuaWRdO2E/KGEuaXNDbG9uZXx8KGVbci5pZF09dGhpcy5fY2xvbmVDb25maWcoYSksYT1lW3IuaWRdKSx0aGlzLl9jb3B5UHJvcGVydGllcyhhLHIpKTplW3IuaWRdPXJ9ZWxzZSBuLnB1c2gocil9LGdldEFuaW1hdGlvbkNvbmZpZzpmdW5jdGlvbih0KXt2YXIgZT17fSxuPVtdO2Zvcih2YXIgaSBpbiB0aGlzLl9nZXRBbmltYXRpb25Db25maWdSZWN1cnNpdmUodCxlLG4pLGUpbi5wdXNoKGVbaV0pO3JldHVybiBufX0se19jb25maWd1cmVBbmltYXRpb25zOmZ1bmN0aW9uKHQpe3ZhciBlPVtdLG49W107aWYodC5sZW5ndGg+MClmb3IobGV0IGUsaT0wO2U9dFtpXTtpKyspe2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZS5uYW1lKTtpZih0LmlzTmVvbkFuaW1hdGlvbil7bGV0IGk9bnVsbDt0LmNvbmZpZ3VyZXx8KHQuY29uZmlndXJlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsfSksaT10LmNvbmZpZ3VyZShlKSxuLnB1c2goe3Jlc3VsdDppLGNvbmZpZzplLG5lb25BbmltYXRpb246dH0pfWVsc2UgY29uc29sZS53YXJuKHRoaXMuaXMrIjoiLGUubmFtZSwibm90IGZvdW5kISIpfWZvcih2YXIgaT0wO2k8bi5sZW5ndGg7aSsrKXtsZXQgdD1uW2ldLnJlc3VsdCxyPW5baV0uY29uZmlnLG89bltpXS5uZW9uQW5pbWF0aW9uO3RyeXsiZnVuY3Rpb24iIT10eXBlb2YgdC5jYW5jZWwmJih0PWRvY3VtZW50LnRpbWVsaW5lLnBsYXkodCkpfWNhdGNoKGUpe3Q9bnVsbCxjb25zb2xlLndhcm4oIkNvdWxkbnQgcGxheSIsIigiLHIubmFtZSwiKS4iLGUpfXQmJmUucHVzaCh7bmVvbkFuaW1hdGlvbjpvLGNvbmZpZzpyLGFuaW1hdGlvbjp0fSl9cmV0dXJuIGV9LF9zaG91bGRDb21wbGV0ZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9ITAsbj0wO248dC5sZW5ndGg7bisrKWlmKCJmaW5pc2hlZCIhPXRbbl0uYW5pbWF0aW9uLnBsYXlTdGF0ZSl7ZT0hMTticmVha31yZXR1cm4gZX0sX2NvbXBsZXRlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV0ubmVvbkFuaW1hdGlvbi5jb21wbGV0ZSh0W2VdLmNvbmZpZyk7Zm9yKGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdLmFuaW1hdGlvbi5jYW5jZWwoKX0scGxheUFuaW1hdGlvbjpmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuZ2V0QW5pbWF0aW9uQ29uZmlnKHQpO2lmKG4pe3RoaXMuX2FjdGl2ZT10aGlzLl9hY3RpdmV8fHt9LHRoaXMuX2FjdGl2ZVt0XSYmKHRoaXMuX2NvbXBsZXRlKHRoaXMuX2FjdGl2ZVt0XSksZGVsZXRlIHRoaXMuX2FjdGl2ZVt0XSk7dmFyIGk9dGhpcy5fY29uZmlndXJlQW5pbWF0aW9ucyhuKTtpZigwIT1pLmxlbmd0aCl7dGhpcy5fYWN0aXZlW3RdPWk7Zm9yKHZhciByPTA7cjxpLmxlbmd0aDtyKyspaVtyXS5hbmltYXRpb24ub25maW5pc2g9ZnVuY3Rpb24oKXt0aGlzLl9zaG91bGRDb21wbGV0ZShpKSYmKHRoaXMuX2NvbXBsZXRlKGkpLGRlbGV0ZSB0aGlzLl9hY3RpdmVbdF0sdGhpcy5maXJlKCJuZW9uLWFuaW1hdGlvbi1maW5pc2giLGUse2J1YmJsZXM6ITF9KSl9LmJpbmQodGhpcyl9ZWxzZSB0aGlzLmZpcmUoIm5lb24tYW5pbWF0aW9uLWZpbmlzaCIsZSx7YnViYmxlczohMX0pfX0sY2FuY2VsQW5pbWF0aW9uOmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMuX2FjdGl2ZSl7dmFyIGU9dGhpcy5fYWN0aXZlW3RdO2Zvcih2YXIgbiBpbiBlKWVbbl0uYW5pbWF0aW9uLmNhbmNlbCgpfXRoaXMuX2FjdGl2ZT17fX19XTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpsZXQgQ2E7Y29uc3QgQWE9e3Byb3BlcnRpZXM6e3NpemluZ1RhcmdldDp7dHlwZTpPYmplY3QsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319LGZpdEludG86e3R5cGU6T2JqZWN0LHZhbHVlOndpbmRvd30sbm9PdmVybGFwOnt0eXBlOkJvb2xlYW59LHBvc2l0aW9uVGFyZ2V0Ont0eXBlOkVsZW1lbnR9LGhvcml6b250YWxBbGlnbjp7dHlwZTpTdHJpbmd9LHZlcnRpY2FsQWxpZ246e3R5cGU6U3RyaW5nfSxkeW5hbWljQWxpZ246e3R5cGU6Qm9vbGVhbn0saG9yaXpvbnRhbE9mZnNldDp7dHlwZTpOdW1iZXIsdmFsdWU6MCxub3RpZnk6ITB9LHZlcnRpY2FsT2Zmc2V0Ont0eXBlOk51bWJlcix2YWx1ZTowLG5vdGlmeTohMH0sYXV0b0ZpdE9uQXR0YWNoOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGV4cGFuZFNpemluZ1RhcmdldEZvclNjcm9sbGJhcnM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sX2ZpdEluZm86e3R5cGU6T2JqZWN0fX0sZ2V0IF9maXRXaWR0aCgpe3JldHVybiB0aGlzLmZpdEludG89PT13aW5kb3c/dGhpcy5maXRJbnRvLmlubmVyV2lkdGg6dGhpcy5maXRJbnRvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRofSxnZXQgX2ZpdEhlaWdodCgpe3JldHVybiB0aGlzLmZpdEludG89PT13aW5kb3c/dGhpcy5maXRJbnRvLmlubmVySGVpZ2h0OnRoaXMuZml0SW50by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHR9LGdldCBfZml0TGVmdCgpe3JldHVybiB0aGlzLmZpdEludG89PT13aW5kb3c/MDp0aGlzLmZpdEludG8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdH0sZ2V0IF9maXRUb3AoKXtyZXR1cm4gdGhpcy5maXRJbnRvPT09d2luZG93PzA6dGhpcy5maXRJbnRvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcH0sZ2V0IF9kZWZhdWx0UG9zaXRpb25UYXJnZXQoKXt2YXIgdD1lcih0aGlzKS5wYXJlbnROb2RlO3JldHVybiB0JiZ0Lm5vZGVUeXBlPT09Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFJiYodD10Lmhvc3QpLHR9LGdldCBfbG9jYWxlSG9yaXpvbnRhbEFsaWduKCl7aWYodGhpcy5faXNSVEwpe2lmKCJyaWdodCI9PT10aGlzLmhvcml6b250YWxBbGlnbilyZXR1cm4ibGVmdCI7aWYoImxlZnQiPT09dGhpcy5ob3Jpem9udGFsQWxpZ24pcmV0dXJuInJpZ2h0In1yZXR1cm4gdGhpcy5ob3Jpem9udGFsQWxpZ259LGdldCBfX3Nob3VsZFBvc2l0aW9uKCl7cmV0dXJuKHRoaXMuaG9yaXpvbnRhbEFsaWdufHx0aGlzLnZlcnRpY2FsQWxpZ24pJiZ0aGlzLnBvc2l0aW9uVGFyZ2V0fSxnZXQgX2lzUlRMKCl7cmV0dXJuIHZvaWQgMD09PXRoaXMuX21lbW9pemVkSXNSVEwmJih0aGlzLl9tZW1vaXplZElzUlRMPSJydGwiPT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzKS5kaXJlY3Rpb24pLHRoaXMuX21lbW9pemVkSXNSVEx9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5wb3NpdGlvblRhcmdldD10aGlzLnBvc2l0aW9uVGFyZ2V0fHx0aGlzLl9kZWZhdWx0UG9zaXRpb25UYXJnZXQsdGhpcy5hdXRvRml0T25BdHRhY2gmJigibm9uZSI9PT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzKS5kaXNwbGF5P3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aGlzLmZpdCgpfS5iaW5kKHRoaXMpKTood2luZG93LlNoYWR5RE9NJiZTaGFkeURPTS5mbHVzaCgpLHRoaXMuZml0KCkpKX0sZGV0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLl9fZGVmZXJyZWRGaXQmJihjbGVhclRpbWVvdXQodGhpcy5fX2RlZmVycmVkRml0KSx0aGlzLl9fZGVmZXJyZWRGaXQ9bnVsbCl9LGZpdDpmdW5jdGlvbigpe3RoaXMucG9zaXRpb24oKSx0aGlzLmNvbnN0cmFpbigpLHRoaXMuY2VudGVyKCl9LF9kaXNjb3ZlckluZm86ZnVuY3Rpb24oKXtpZighdGhpcy5fZml0SW5mbyl7dmFyIHQ9d2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcyksZT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnNpemluZ1RhcmdldCk7dGhpcy5fZml0SW5mbz17aW5saW5lU3R5bGU6e3RvcDp0aGlzLnN0eWxlLnRvcHx8IiIsbGVmdDp0aGlzLnN0eWxlLmxlZnR8fCIiLHBvc2l0aW9uOnRoaXMuc3R5bGUucG9zaXRpb258fCIifSxzaXplcklubGluZVN0eWxlOnttYXhXaWR0aDp0aGlzLnNpemluZ1RhcmdldC5zdHlsZS5tYXhXaWR0aHx8IiIsbWF4SGVpZ2h0OnRoaXMuc2l6aW5nVGFyZ2V0LnN0eWxlLm1heEhlaWdodHx8IiIsYm94U2l6aW5nOnRoaXMuc2l6aW5nVGFyZ2V0LnN0eWxlLmJveFNpemluZ3x8IiJ9LHBvc2l0aW9uZWRCeTp7dmVydGljYWxseToiYXV0byIhPT10LnRvcD8idG9wIjoiYXV0byIhPT10LmJvdHRvbT8iYm90dG9tIjpudWxsLGhvcml6b250YWxseToiYXV0byIhPT10LmxlZnQ/ImxlZnQiOiJhdXRvIiE9PXQucmlnaHQ/InJpZ2h0IjpudWxsfSxzaXplZEJ5OntoZWlnaHQ6Im5vbmUiIT09ZS5tYXhIZWlnaHQsd2lkdGg6Im5vbmUiIT09ZS5tYXhXaWR0aCxtaW5XaWR0aDpwYXJzZUludChlLm1pbldpZHRoLDEwKXx8MCxtaW5IZWlnaHQ6cGFyc2VJbnQoZS5taW5IZWlnaHQsMTApfHwwfSxtYXJnaW46e3RvcDpwYXJzZUludCh0Lm1hcmdpblRvcCwxMCl8fDAscmlnaHQ6cGFyc2VJbnQodC5tYXJnaW5SaWdodCwxMCl8fDAsYm90dG9tOnBhcnNlSW50KHQubWFyZ2luQm90dG9tLDEwKXx8MCxsZWZ0OnBhcnNlSW50KHQubWFyZ2luTGVmdCwxMCl8fDB9fX19LHJlc2V0Rml0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZml0SW5mb3x8e307Zm9yKHZhciBlIGluIHQuc2l6ZXJJbmxpbmVTdHlsZSl0aGlzLnNpemluZ1RhcmdldC5zdHlsZVtlXT10LnNpemVySW5saW5lU3R5bGVbZV07Zm9yKHZhciBlIGluIHQuaW5saW5lU3R5bGUpdGhpcy5zdHlsZVtlXT10LmlubGluZVN0eWxlW2VdO3RoaXMuX2ZpdEluZm89bnVsbH0scmVmaXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnNpemluZ1RhcmdldC5zY3JvbGxMZWZ0LGU9dGhpcy5zaXppbmdUYXJnZXQuc2Nyb2xsVG9wO3RoaXMucmVzZXRGaXQoKSx0aGlzLmZpdCgpLHRoaXMuc2l6aW5nVGFyZ2V0LnNjcm9sbExlZnQ9dCx0aGlzLnNpemluZ1RhcmdldC5zY3JvbGxUb3A9ZX0scG9zaXRpb246ZnVuY3Rpb24oKXtpZighdGhpcy5fX3Nob3VsZFBvc2l0aW9uKXJldHVybjt0aGlzLl9kaXNjb3ZlckluZm8oKSx3aW5kb3cuU2hhZHlET00mJndpbmRvdy5TaGFkeURPTS5mbHVzaCgpLHRoaXMuc3R5bGUucG9zaXRpb249ImZpeGVkIix0aGlzLnNpemluZ1RhcmdldC5zdHlsZS5ib3hTaXppbmc9ImJvcmRlci1ib3giLHRoaXMuc3R5bGUubGVmdD0iMHB4Iix0aGlzLnN0eWxlLnRvcD0iMHB4Ijt2YXIgdD10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGU9dGhpcy5fX2dldE5vcm1hbGl6ZWRSZWN0KHRoaXMucG9zaXRpb25UYXJnZXQpLG49dGhpcy5fX2dldE5vcm1hbGl6ZWRSZWN0KHRoaXMuZml0SW50byk7bGV0IGkscixvLGE7dGhpcy5leHBhbmRTaXppbmdUYXJnZXRGb3JTY3JvbGxiYXJzJiYoaT10aGlzLnNpemluZ1RhcmdldC5vZmZzZXRXaWR0aCxyPXRoaXMuc2l6aW5nVGFyZ2V0Lm9mZnNldEhlaWdodCxvPXRoaXMuc2l6aW5nVGFyZ2V0LmNsaWVudFdpZHRoLGE9dGhpcy5zaXppbmdUYXJnZXQuY2xpZW50SGVpZ2h0KTt2YXIgcz10aGlzLl9maXRJbmZvLm1hcmdpbixsPXRoaXMuX19nZXRQb3NpdGlvbih0aGlzLl9sb2NhbGVIb3Jpem9udGFsQWxpZ24sdGhpcy52ZXJ0aWNhbEFsaWduLHt3aWR0aDp0LndpZHRoK3MubGVmdCtzLnJpZ2h0LGhlaWdodDp0LmhlaWdodCtzLnRvcCtzLmJvdHRvbX0sdCxlLG4pLGM9bC5sZWZ0K3MubGVmdCx1PWwudG9wK3MudG9wLGg9TWF0aC5taW4obi5yaWdodC1zLnJpZ2h0LGMrdC53aWR0aCksZD1NYXRoLm1pbihuLmJvdHRvbS1zLmJvdHRvbSx1K3QuaGVpZ2h0KTtjPU1hdGgubWF4KG4ubGVmdCtzLmxlZnQsTWF0aC5taW4oYyxoLXRoaXMuX2ZpdEluZm8uc2l6ZWRCeS5taW5XaWR0aCkpLHU9TWF0aC5tYXgobi50b3Arcy50b3AsTWF0aC5taW4odSxkLXRoaXMuX2ZpdEluZm8uc2l6ZWRCeS5taW5IZWlnaHQpKTtjb25zdCBwPU1hdGgubWF4KGgtYyx0aGlzLl9maXRJbmZvLnNpemVkQnkubWluV2lkdGgpLGY9TWF0aC5tYXgoZC11LHRoaXMuX2ZpdEluZm8uc2l6ZWRCeS5taW5IZWlnaHQpO3RoaXMuc2l6aW5nVGFyZ2V0LnN0eWxlLm1heFdpZHRoPXArInB4Iix0aGlzLnNpemluZ1RhcmdldC5zdHlsZS5tYXhIZWlnaHQ9ZisicHgiO2NvbnN0IG09Yy10LmxlZnQsZz11LXQudG9wO2lmKHRoaXMuc3R5bGUubGVmdD1gJHttfXB4YCx0aGlzLnN0eWxlLnRvcD1gJHtnfXB4YCx0aGlzLmV4cGFuZFNpemluZ1RhcmdldEZvclNjcm9sbGJhcnMpe2NvbnN0IHQ9dGhpcy5zaXppbmdUYXJnZXQub2Zmc2V0SGVpZ2h0LGU9dC10aGlzLnNpemluZ1RhcmdldC5jbGllbnRIZWlnaHQtKHItYSk7aWYoZT4wKXtjb25zdCBpPU1hdGgubWluKG4uaGVpZ2h0LXMudG9wLXMuYm90dG9tLGYrZSk7dGhpcy5zaXppbmdUYXJnZXQuc3R5bGUubWF4SGVpZ2h0PWAke2l9cHhgO2NvbnN0IHI9dGhpcy5zaXppbmdUYXJnZXQub2Zmc2V0SGVpZ2h0LG89ci10O2xldCBhOyJ0b3AiPT09bC52ZXJ0aWNhbEFsaWduP2E9ZzoibWlkZGxlIj09PWwudmVydGljYWxBbGlnbj9hPWctby8yOiJib3R0b20iPT09bC52ZXJ0aWNhbEFsaWduJiYoYT1nLW8pLGE9TWF0aC5tYXgobi50b3Arcy50b3AsTWF0aC5taW4oYSxuLmJvdHRvbS1zLmJvdHRvbS1yKSksdGhpcy5zdHlsZS50b3A9YCR7YX1weGB9Y29uc3QgYz10aGlzLnNpemluZ1RhcmdldC5vZmZzZXRXaWR0aCx1PWMtdGhpcy5zaXppbmdUYXJnZXQuY2xpZW50V2lkdGgtKGktbyk7aWYodT4wKXtjb25zdCB0PSgoKT0+e2lmKHZvaWQgMCE9PUNhKXJldHVybiBDYTtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO09iamVjdC5hc3NpZ24odC5zdHlsZSx7b3ZlcmZsb3c6ImF1dG8iLHBvc2l0aW9uOiJmaXhlZCIsbGVmdDoiMHB4Iix0b3A6IjBweCIsbWF4V2lkdGg6IjEwMHB4IixtYXhIZWlnaHQ6IjEwMHB4In0pO2NvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIGUuc3R5bGUud2lkdGg9IjIwMHB4IixlLnN0eWxlLmhlaWdodD0iMjAwcHgiLHQuYXBwZW5kQ2hpbGQoZSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0KSxDYT1NYXRoLmFicyh0Lm9mZnNldFdpZHRoLTEwMCk+MT90Lm9mZnNldFdpZHRoLXQuY2xpZW50V2lkdGg6MCxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHQpLENhfSkoKSxlPU1hdGgubWluKG4ud2lkdGgtcy5sZWZ0LXMucmlnaHQscCt1LXQpO3RoaXMuc2l6aW5nVGFyZ2V0LnN0eWxlLm1heFdpZHRoPWAke2V9cHhgO2NvbnN0IGk9dGhpcy5zaXppbmdUYXJnZXQub2Zmc2V0V2lkdGgrdCxyPWktYztsZXQgbzsibGVmdCI9PT1sLmhvcml6b250YWxBbGlnbj9vPW06ImNlbnRlciI9PT1sLmhvcml6b250YWxBbGlnbj9vPW0tci8yOiJyaWdodCI9PT1sLmhvcml6b250YWxBbGlnbiYmKG89bS1yKSxvPU1hdGgubWF4KG4ubGVmdCtzLmxlZnQsTWF0aC5taW4obyxuLnJpZ2h0LXMucmlnaHQtaSkpLHRoaXMuc3R5bGUubGVmdD1gJHtvfXB4YH19fSxjb25zdHJhaW46ZnVuY3Rpb24oKXtpZighdGhpcy5fX3Nob3VsZFBvc2l0aW9uKXt0aGlzLl9kaXNjb3ZlckluZm8oKTt2YXIgdD10aGlzLl9maXRJbmZvO3QucG9zaXRpb25lZEJ5LnZlcnRpY2FsbHl8fCh0aGlzLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdGhpcy5zdHlsZS50b3A9IjBweCIpLHQucG9zaXRpb25lZEJ5Lmhvcml6b250YWxseXx8KHRoaXMuc3R5bGUucG9zaXRpb249ImZpeGVkIix0aGlzLnN0eWxlLmxlZnQ9IjBweCIpLHRoaXMuc2l6aW5nVGFyZ2V0LnN0eWxlLmJveFNpemluZz0iYm9yZGVyLWJveCI7dmFyIGU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0LnNpemVkQnkuaGVpZ2h0fHx0aGlzLl9fc2l6ZURpbWVuc2lvbihlLHQucG9zaXRpb25lZEJ5LnZlcnRpY2FsbHksInRvcCIsImJvdHRvbSIsIkhlaWdodCIpLHQuc2l6ZWRCeS53aWR0aHx8dGhpcy5fX3NpemVEaW1lbnNpb24oZSx0LnBvc2l0aW9uZWRCeS5ob3Jpem9udGFsbHksImxlZnQiLCJyaWdodCIsIldpZHRoIil9fSxfc2l6ZURpbWVuc2lvbjpmdW5jdGlvbih0LGUsbixpLHIpe3RoaXMuX19zaXplRGltZW5zaW9uKHQsZSxuLGkscil9LF9fc2l6ZURpbWVuc2lvbjpmdW5jdGlvbih0LGUsbixpLHIpe3ZhciBvPXRoaXMuX2ZpdEluZm8sYT10aGlzLl9fZ2V0Tm9ybWFsaXplZFJlY3QodGhpcy5maXRJbnRvKSxzPSJXaWR0aCI9PT1yP2Eud2lkdGg6YS5oZWlnaHQsbD1lPT09aSxjPSJvZmZzZXQiK3I7dGhpcy5zaXppbmdUYXJnZXQuc3R5bGVbIm1heCIrcl09cy1vLm1hcmdpbltsP246aV0tKGw/cy10W2ldOnRbbl0pLSh0aGlzW2NdLXRoaXMuc2l6aW5nVGFyZ2V0W2NdKSsicHgifSxjZW50ZXI6ZnVuY3Rpb24oKXtpZighdGhpcy5fX3Nob3VsZFBvc2l0aW9uKXt0aGlzLl9kaXNjb3ZlckluZm8oKTt2YXIgdD10aGlzLl9maXRJbmZvLnBvc2l0aW9uZWRCeTtpZighdC52ZXJ0aWNhbGx5fHwhdC5ob3Jpem9udGFsbHkpe3RoaXMuc3R5bGUucG9zaXRpb249ImZpeGVkIix0LnZlcnRpY2FsbHl8fCh0aGlzLnN0eWxlLnRvcD0iMHB4IiksdC5ob3Jpem9udGFsbHl8fCh0aGlzLnN0eWxlLmxlZnQ9IjBweCIpO3ZhciBlPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj10aGlzLl9fZ2V0Tm9ybWFsaXplZFJlY3QodGhpcy5maXRJbnRvKTtpZighdC52ZXJ0aWNhbGx5KXRoaXMuc3R5bGUudG9wPW4udG9wLWUudG9wKyhuLmhlaWdodC1lLmhlaWdodCkvMisicHgiO2lmKCF0Lmhvcml6b250YWxseSl0aGlzLnN0eWxlLmxlZnQ9bi5sZWZ0LWUubGVmdCsobi53aWR0aC1lLndpZHRoKS8yKyJweCJ9fX0sX19nZXROb3JtYWxpemVkUmVjdDpmdW5jdGlvbih0KXtyZXR1cm4gdD09PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudHx8dD09PXdpbmRvdz97dG9wOjAsbGVmdDowLHdpZHRoOndpbmRvdy5pbm5lcldpZHRoLGhlaWdodDp3aW5kb3cuaW5uZXJIZWlnaHQscmlnaHQ6d2luZG93LmlubmVyV2lkdGgsYm90dG9tOndpbmRvdy5pbm5lckhlaWdodH06dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX0sX19nZXRPZmZzY3JlZW5BcmVhOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1NYXRoLm1pbigwLHQudG9wKStNYXRoLm1pbigwLG4uYm90dG9tLSh0LnRvcCtlLmhlaWdodCkpLHI9TWF0aC5taW4oMCx0LmxlZnQpK01hdGgubWluKDAsbi5yaWdodC0odC5sZWZ0K2Uud2lkdGgpKTtyZXR1cm4gTWF0aC5hYnMoaSkqZS53aWR0aCtNYXRoLmFicyhyKSplLmhlaWdodH0sX19nZXRQb3NpdGlvbjpmdW5jdGlvbih0LGUsbixpLHIsbyl7dmFyIGEscz1be3ZlcnRpY2FsQWxpZ246InRvcCIsaG9yaXpvbnRhbEFsaWduOiJsZWZ0Iix0b3A6ci50b3ArdGhpcy52ZXJ0aWNhbE9mZnNldCxsZWZ0OnIubGVmdCt0aGlzLmhvcml6b250YWxPZmZzZXR9LHt2ZXJ0aWNhbEFsaWduOiJ0b3AiLGhvcml6b250YWxBbGlnbjoicmlnaHQiLHRvcDpyLnRvcCt0aGlzLnZlcnRpY2FsT2Zmc2V0LGxlZnQ6ci5yaWdodC1uLndpZHRoLXRoaXMuaG9yaXpvbnRhbE9mZnNldH0se3ZlcnRpY2FsQWxpZ246ImJvdHRvbSIsaG9yaXpvbnRhbEFsaWduOiJsZWZ0Iix0b3A6ci5ib3R0b20tbi5oZWlnaHQtdGhpcy52ZXJ0aWNhbE9mZnNldCxsZWZ0OnIubGVmdCt0aGlzLmhvcml6b250YWxPZmZzZXR9LHt2ZXJ0aWNhbEFsaWduOiJib3R0b20iLGhvcml6b250YWxBbGlnbjoicmlnaHQiLHRvcDpyLmJvdHRvbS1uLmhlaWdodC10aGlzLnZlcnRpY2FsT2Zmc2V0LGxlZnQ6ci5yaWdodC1uLndpZHRoLXRoaXMuaG9yaXpvbnRhbE9mZnNldH1dO2lmKHRoaXMubm9PdmVybGFwKXtmb3IodmFyIGw9MCxjPXMubGVuZ3RoO2w8YztsKyspe3ZhciB1PXt9O2Zvcih2YXIgaCBpbiBzW2xdKXVbaF09c1tsXVtoXTtzLnB1c2godSl9c1swXS50b3A9c1sxXS50b3ArPXIuaGVpZ2h0LHNbMl0udG9wPXNbM10udG9wLT1yLmhlaWdodCxzWzRdLmxlZnQ9c1s2XS5sZWZ0Kz1yLndpZHRoLHNbNV0ubGVmdD1zWzddLmxlZnQtPXIud2lkdGh9ZT0iYXV0byI9PT1lP251bGw6ZSwodD0iYXV0byI9PT10P251bGw6dCkmJiJjZW50ZXIiIT09dHx8KHMucHVzaCh7dmVydGljYWxBbGlnbjoidG9wIixob3Jpem9udGFsQWxpZ246ImNlbnRlciIsdG9wOnIudG9wK3RoaXMudmVydGljYWxPZmZzZXQrKHRoaXMubm9PdmVybGFwP3IuaGVpZ2h0OjApLGxlZnQ6ci5sZWZ0LWkud2lkdGgvMityLndpZHRoLzIrdGhpcy5ob3Jpem9udGFsT2Zmc2V0fSkscy5wdXNoKHt2ZXJ0aWNhbEFsaWduOiJib3R0b20iLGhvcml6b250YWxBbGlnbjoiY2VudGVyIix0b3A6ci5ib3R0b20tbi5oZWlnaHQtdGhpcy52ZXJ0aWNhbE9mZnNldC0odGhpcy5ub092ZXJsYXA/ci5oZWlnaHQ6MCksbGVmdDpyLmxlZnQtaS53aWR0aC8yK3Iud2lkdGgvMit0aGlzLmhvcml6b250YWxPZmZzZXR9KSksZSYmIm1pZGRsZSIhPT1lfHwocy5wdXNoKHt2ZXJ0aWNhbEFsaWduOiJtaWRkbGUiLGhvcml6b250YWxBbGlnbjoibGVmdCIsdG9wOnIudG9wLWkuaGVpZ2h0LzIrci5oZWlnaHQvMit0aGlzLnZlcnRpY2FsT2Zmc2V0LGxlZnQ6ci5sZWZ0K3RoaXMuaG9yaXpvbnRhbE9mZnNldCsodGhpcy5ub092ZXJsYXA/ci53aWR0aDowKX0pLHMucHVzaCh7dmVydGljYWxBbGlnbjoibWlkZGxlIixob3Jpem9udGFsQWxpZ246InJpZ2h0Iix0b3A6ci50b3AtaS5oZWlnaHQvMityLmhlaWdodC8yK3RoaXMudmVydGljYWxPZmZzZXQsbGVmdDpyLnJpZ2h0LW4ud2lkdGgtdGhpcy5ob3Jpem9udGFsT2Zmc2V0LSh0aGlzLm5vT3ZlcmxhcD9yLndpZHRoOjApfSkpLCJtaWRkbGUiPT09ZSYmImNlbnRlciI9PT10JiZzLnB1c2goe3ZlcnRpY2FsQWxpZ246Im1pZGRsZSIsaG9yaXpvbnRhbEFsaWduOiJjZW50ZXIiLHRvcDpyLnRvcC1pLmhlaWdodC8yK3IuaGVpZ2h0LzIrdGhpcy52ZXJ0aWNhbE9mZnNldCxsZWZ0OnIubGVmdC1pLndpZHRoLzIrci53aWR0aC8yK3RoaXMuaG9yaXpvbnRhbE9mZnNldH0pO2ZvcihsPTA7bDxzLmxlbmd0aDtsKyspe3ZhciBkPXNbbF0scD1kLnZlcnRpY2FsQWxpZ249PT1lLGY9ZC5ob3Jpem9udGFsQWxpZ249PT10O2lmKCF0aGlzLmR5bmFtaWNBbGlnbiYmIXRoaXMubm9PdmVybGFwJiZwJiZmKXthPWQ7YnJlYWt9dmFyIG09KCFlfHxwKSYmKCF0fHxmKTtpZih0aGlzLmR5bmFtaWNBbGlnbnx8bSl7aWYoZC5vZmZzY3JlZW5BcmVhPXRoaXMuX19nZXRPZmZzY3JlZW5BcmVhKGQsbixvKSwwPT09ZC5vZmZzY3JlZW5BcmVhJiZtKXthPWQ7YnJlYWt9dmFyIGc9ZC5vZmZzY3JlZW5BcmVhLShhPWF8fGQpLm9mZnNjcmVlbkFyZWE7KGc8MHx8MD09PWcmJihwfHxmKSkmJihhPWQpfX1yZXR1cm4gYX19OwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTYgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KdmFyIGthPUVsZW1lbnQucHJvdG90eXBlLExhPWthLm1hdGNoZXN8fGthLm1hdGNoZXNTZWxlY3Rvcnx8a2EubW96TWF0Y2hlc1NlbGVjdG9yfHxrYS5tc01hdGNoZXNTZWxlY3Rvcnx8a2Eub01hdGNoZXNTZWxlY3Rvcnx8a2Eud2Via2l0TWF0Y2hlc1NlbGVjdG9yO2NvbnN0IFBhPW5ldyBjbGFzc3tnZXRUYWJiYWJsZU5vZGVzKHQpe3ZhciBlPVtdO3JldHVybiB0aGlzLl9jb2xsZWN0VGFiYmFibGVOb2Rlcyh0LGUpP3RoaXMuX3NvcnRCeVRhYkluZGV4KGUpOmV9aXNGb2N1c2FibGUodCl7cmV0dXJuIExhLmNhbGwodCwiaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIGJ1dHRvbiwgb2JqZWN0Iik/TGEuY2FsbCh0LCI6bm90KFtkaXNhYmxlZF0pIik6TGEuY2FsbCh0LCJhW2hyZWZdLCBhcmVhW2hyZWZdLCBpZnJhbWUsIFt0YWJpbmRleF0sIFtjb250ZW50RWRpdGFibGVdIil9aXNUYWJiYWJsZSh0KXtyZXR1cm4gdGhpcy5pc0ZvY3VzYWJsZSh0KSYmTGEuY2FsbCh0LCc6bm90KFt0YWJpbmRleD0iLTEiXSknKSYmdGhpcy5faXNWaXNpYmxlKHQpfV9ub3JtYWxpemVkVGFiSW5kZXgodCl7aWYodGhpcy5pc0ZvY3VzYWJsZSh0KSl7dmFyIGU9dC5nZXRBdHRyaWJ1dGUoInRhYmluZGV4Iil8fDA7cmV0dXJuIE51bWJlcihlKX1yZXR1cm4tMX1fY29sbGVjdFRhYmJhYmxlTm9kZXModCxlKXtpZih0Lm5vZGVUeXBlIT09Tm9kZS5FTEVNRU5UX05PREUpcmV0dXJuITE7dmFyIG49dDtpZighdGhpcy5faXNWaXNpYmxlKG4pKXJldHVybiExO3ZhciBpLHI9dGhpcy5fbm9ybWFsaXplZFRhYkluZGV4KG4pLG89cj4wO3I+PTAmJmUucHVzaChuKSxpPSJjb250ZW50Ij09PW4ubG9jYWxOYW1lfHwic2xvdCI9PT1uLmxvY2FsTmFtZT9lcihuKS5nZXREaXN0cmlidXRlZE5vZGVzKCk6ZXIobi5yb290fHxuKS5jaGlsZHJlbjtmb3IodmFyIGE9MDthPGkubGVuZ3RoO2ErKylvPXRoaXMuX2NvbGxlY3RUYWJiYWJsZU5vZGVzKGlbYV0sZSl8fG87cmV0dXJuIG99X2lzVmlzaWJsZSh0KXt2YXIgZT10LnN0eWxlO3JldHVybiJoaWRkZW4iIT09ZS52aXNpYmlsaXR5JiYibm9uZSIhPT1lLmRpc3BsYXkmJigiaGlkZGVuIiE9PShlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpKS52aXNpYmlsaXR5JiYibm9uZSIhPT1lLmRpc3BsYXkpfV9zb3J0QnlUYWJJbmRleCh0KXt2YXIgZT10Lmxlbmd0aDtpZihlPDIpcmV0dXJuIHQ7dmFyIG49TWF0aC5jZWlsKGUvMiksaT10aGlzLl9zb3J0QnlUYWJJbmRleCh0LnNsaWNlKDAsbikpLHI9dGhpcy5fc29ydEJ5VGFiSW5kZXgodC5zbGljZShuKSk7cmV0dXJuIHRoaXMuX21lcmdlU29ydEJ5VGFiSW5kZXgoaSxyKX1fbWVyZ2VTb3J0QnlUYWJJbmRleCh0LGUpe2Zvcih2YXIgbj1bXTt0Lmxlbmd0aD4wJiZlLmxlbmd0aD4wOyl0aGlzLl9oYXNMb3dlclRhYk9yZGVyKHRbMF0sZVswXSk/bi5wdXNoKGUuc2hpZnQoKSk6bi5wdXNoKHQuc2hpZnQoKSk7cmV0dXJuIG4uY29uY2F0KHQsZSl9X2hhc0xvd2VyVGFiT3JkZXIodCxlKXt2YXIgbj1NYXRoLm1heCh0LnRhYkluZGV4LDApLGk9TWF0aC5tYXgoZS50YWJJbmRleCwwKTtyZXR1cm4gMD09PW58fDA9PT1pP2k+bjpuPml9fTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovanIoe190ZW1wbGF0ZTp4ZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taXJvbi1vdmVybGF5LWJhY2tkcm9wLWJhY2tncm91bmQtY29sb3IsICMwMDApOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIEBhcHBseSAtLWlyb24tb3ZlcmxheS1iYWNrZHJvcDsKICAgICAgfQoKICAgICAgOmhvc3QoLm9wZW5lZCkgewogICAgICAgIG9wYWNpdHk6IHZhcigtLWlyb24tb3ZlcmxheS1iYWNrZHJvcC1vcGFjaXR5LCAwLjYpOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIEBhcHBseSAtLWlyb24tb3ZlcmxheS1iYWNrZHJvcC1vcGVuZWQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPHNsb3Q+PC9zbG90PgpgLGlzOiJpcm9uLW92ZXJsYXktYmFja2Ryb3AiLHByb3BlcnRpZXM6e29wZW5lZDp7cmVmbGVjdFRvQXR0cmlidXRlOiEwLHR5cGU6Qm9vbGVhbix2YWx1ZTohMSxvYnNlcnZlcjoiX29wZW5lZENoYW5nZWQifX0sbGlzdGVuZXJzOnt0cmFuc2l0aW9uZW5kOiJfb25UcmFuc2l0aW9uZW5kIn0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuX19vcGVuZWRSYWY9bnVsbH0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZCYmdGhpcy5fb3BlbmVkQ2hhbmdlZCh0aGlzLm9wZW5lZCl9LHByZXBhcmU6ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZCYmIXRoaXMucGFyZW50Tm9kZSYmZXIoZG9jdW1lbnQuYm9keSkuYXBwZW5kQ2hpbGQodGhpcyl9LG9wZW46ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZD0hMH0sY2xvc2U6ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZD0hMX0sY29tcGxldGU6ZnVuY3Rpb24oKXt0aGlzLm9wZW5lZHx8dGhpcy5wYXJlbnROb2RlIT09ZG9jdW1lbnQuYm9keXx8ZXIodGhpcy5wYXJlbnROb2RlKS5yZW1vdmVDaGlsZCh0aGlzKX0sX29uVHJhbnNpdGlvbmVuZDpmdW5jdGlvbih0KXt0JiZ0LnRhcmdldD09PXRoaXMmJnRoaXMuY29tcGxldGUoKX0sX29wZW5lZENoYW5nZWQ6ZnVuY3Rpb24odCl7aWYodCl0aGlzLnByZXBhcmUoKTtlbHNle3ZhciBlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpOyIwcyIhPT1lLnRyYW5zaXRpb25EdXJhdGlvbiYmMCE9ZS5vcGFjaXR5fHx0aGlzLmNvbXBsZXRlKCl9dGhpcy5pc0F0dGFjaGVkJiYodGhpcy5fX29wZW5lZFJhZiYmKHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9fb3BlbmVkUmFmKSx0aGlzLl9fb3BlbmVkUmFmPW51bGwpLHRoaXMuc2Nyb2xsVG9wPXRoaXMuc2Nyb2xsVG9wLHRoaXMuX19vcGVuZWRSYWY9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3RoaXMuX19vcGVuZWRSYWY9bnVsbCx0aGlzLnRvZ2dsZUNsYXNzKCJvcGVuZWQiLHRoaXMub3BlbmVkKX0uYmluZCh0aGlzKSkpfX0pO2NvbnN0IE5hPW5ldwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLl9vdmVybGF5cz1bXSx0aGlzLl9taW5pbXVtWj0xMDEsdGhpcy5fYmFja2Ryb3BFbGVtZW50PW51bGwsY2koZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCJ0YXAiLChmdW5jdGlvbigpe30pKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0YXAiLHRoaXMuX29uQ2FwdHVyZUNsaWNrLmJpbmQodGhpcyksITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLl9vbkNhcHR1cmVGb2N1cy5iaW5kKHRoaXMpLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9vbkNhcHR1cmVLZXlEb3duLmJpbmQodGhpcyksITApfWdldCBiYWNrZHJvcEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fYmFja2Ryb3BFbGVtZW50fHwodGhpcy5fYmFja2Ryb3BFbGVtZW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlyb24tb3ZlcmxheS1iYWNrZHJvcCIpKSx0aGlzLl9iYWNrZHJvcEVsZW1lbnR9Z2V0IGRlZXBBY3RpdmVFbGVtZW50KCl7dmFyIHQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtmb3IodCYmdCBpbnN0YW5jZW9mIEVsZW1lbnQhPSExfHwodD1kb2N1bWVudC5ib2R5KTt0LnJvb3QmJmVyKHQucm9vdCkuYWN0aXZlRWxlbWVudDspdD1lcih0LnJvb3QpLmFjdGl2ZUVsZW1lbnQ7cmV0dXJuIHR9X2JyaW5nT3ZlcmxheUF0SW5kZXhUb0Zyb250KHQpe3ZhciBlPXRoaXMuX292ZXJsYXlzW3RdO2lmKGUpe3ZhciBuPXRoaXMuX292ZXJsYXlzLmxlbmd0aC0xLGk9dGhpcy5fb3ZlcmxheXNbbl07aWYoaSYmdGhpcy5fc2hvdWxkQmVCZWhpbmRPdmVybGF5KGUsaSkmJm4tLSwhKHQ+PW4pKXt2YXIgcj1NYXRoLm1heCh0aGlzLmN1cnJlbnRPdmVybGF5WigpLHRoaXMuX21pbmltdW1aKTtmb3IodGhpcy5fZ2V0WihlKTw9ciYmdGhpcy5fYXBwbHlPdmVybGF5WihlLHIpO3Q8bjspdGhpcy5fb3ZlcmxheXNbdF09dGhpcy5fb3ZlcmxheXNbdCsxXSx0Kys7dGhpcy5fb3ZlcmxheXNbbl09ZX19fWFkZE9yUmVtb3ZlT3ZlcmxheSh0KXt0Lm9wZW5lZD90aGlzLmFkZE92ZXJsYXkodCk6dGhpcy5yZW1vdmVPdmVybGF5KHQpfWFkZE92ZXJsYXkodCl7dmFyIGU9dGhpcy5fb3ZlcmxheXMuaW5kZXhPZih0KTtpZihlPj0wKXJldHVybiB0aGlzLl9icmluZ092ZXJsYXlBdEluZGV4VG9Gcm9udChlKSx2b2lkIHRoaXMudHJhY2tCYWNrZHJvcCgpO3ZhciBuPXRoaXMuX292ZXJsYXlzLmxlbmd0aCxpPXRoaXMuX292ZXJsYXlzW24tMV0scj1NYXRoLm1heCh0aGlzLl9nZXRaKGkpLHRoaXMuX21pbmltdW1aKSxvPXRoaXMuX2dldFoodCk7aSYmdGhpcy5fc2hvdWxkQmVCZWhpbmRPdmVybGF5KHQsaSkmJih0aGlzLl9hcHBseU92ZXJsYXlaKGksciksbi0tLHI9TWF0aC5tYXgodGhpcy5fZ2V0Wih0aGlzLl9vdmVybGF5c1tuLTFdKSx0aGlzLl9taW5pbXVtWikpO288PXImJnRoaXMuX2FwcGx5T3ZlcmxheVoodCxyKSx0aGlzLl9vdmVybGF5cy5zcGxpY2UobiwwLHQpLHRoaXMudHJhY2tCYWNrZHJvcCgpfXJlbW92ZU92ZXJsYXkodCl7dmFyIGU9dGhpcy5fb3ZlcmxheXMuaW5kZXhPZih0KTstMSE9PWUmJih0aGlzLl9vdmVybGF5cy5zcGxpY2UoZSwxKSx0aGlzLnRyYWNrQmFja2Ryb3AoKSl9Y3VycmVudE92ZXJsYXkoKXtyZXR1cm4gdGhpcy5fb3ZlcmxheXNbdGhpcy5fb3ZlcmxheXMubGVuZ3RoLTFdfWN1cnJlbnRPdmVybGF5Wigpe3JldHVybiB0aGlzLl9nZXRaKHRoaXMuY3VycmVudE92ZXJsYXkoKSl9ZW5zdXJlTWluaW11bVoodCl7dGhpcy5fbWluaW11bVo9TWF0aC5tYXgodGhpcy5fbWluaW11bVosdCl9Zm9jdXNPdmVybGF5KCl7dmFyIHQ9dGhpcy5jdXJyZW50T3ZlcmxheSgpO3QmJnQuX2FwcGx5Rm9jdXMoKX10cmFja0JhY2tkcm9wKCl7dmFyIHQ9dGhpcy5fb3ZlcmxheVdpdGhCYWNrZHJvcCgpOyh0fHx0aGlzLl9iYWNrZHJvcEVsZW1lbnQpJiYodGhpcy5iYWNrZHJvcEVsZW1lbnQuc3R5bGUuekluZGV4PXRoaXMuX2dldFoodCktMSx0aGlzLmJhY2tkcm9wRWxlbWVudC5vcGVuZWQ9ISF0LHRoaXMuYmFja2Ryb3BFbGVtZW50LnByZXBhcmUoKSl9Z2V0QmFja2Ryb3BzKCl7Zm9yKHZhciB0PVtdLGU9MDtlPHRoaXMuX292ZXJsYXlzLmxlbmd0aDtlKyspdGhpcy5fb3ZlcmxheXNbZV0ud2l0aEJhY2tkcm9wJiZ0LnB1c2godGhpcy5fb3ZlcmxheXNbZV0pO3JldHVybiB0fWJhY2tkcm9wWigpe3JldHVybiB0aGlzLl9nZXRaKHRoaXMuX292ZXJsYXlXaXRoQmFja2Ryb3AoKSktMX1fb3ZlcmxheVdpdGhCYWNrZHJvcCgpe2Zvcih2YXIgdD10aGlzLl9vdmVybGF5cy5sZW5ndGgtMTt0Pj0wO3QtLSlpZih0aGlzLl9vdmVybGF5c1t0XS53aXRoQmFja2Ryb3ApcmV0dXJuIHRoaXMuX292ZXJsYXlzW3RdfV9nZXRaKHQpe3ZhciBlPXRoaXMuX21pbmltdW1aO2lmKHQpe3ZhciBuPU51bWJlcih0LnN0eWxlLnpJbmRleHx8d2luZG93LmdldENvbXB1dGVkU3R5bGUodCkuekluZGV4KTtuPT1uJiYoZT1uKX1yZXR1cm4gZX1fc2V0Wih0LGUpe3Quc3R5bGUuekluZGV4PWV9X2FwcGx5T3ZlcmxheVoodCxlKXt0aGlzLl9zZXRaKHQsZSsyKX1fb3ZlcmxheUluUGF0aCh0KXt0PXR8fFtdO2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKWlmKHRbZV0uX21hbmFnZXI9PT10aGlzKXJldHVybiB0W2VdfV9vbkNhcHR1cmVDbGljayh0KXt2YXIgZT10aGlzLl9vdmVybGF5cy5sZW5ndGgtMTtpZigtMSE9PWUpZm9yKHZhciBuLGk9ZXIodCkucGF0aDsobj10aGlzLl9vdmVybGF5c1tlXSkmJnRoaXMuX292ZXJsYXlJblBhdGgoaSkhPT1uJiYobi5fb25DYXB0dXJlQ2xpY2sodCksbi5hbGxvd0NsaWNrVGhyb3VnaCk7KWUtLX1fb25DYXB0dXJlRm9jdXModCl7dmFyIGU9dGhpcy5jdXJyZW50T3ZlcmxheSgpO2UmJmUuX29uQ2FwdHVyZUZvY3VzKHQpfV9vbkNhcHR1cmVLZXlEb3duKHQpe3ZhciBlPXRoaXMuY3VycmVudE92ZXJsYXkoKTtlJiYoWG8ua2V5Ym9hcmRFdmVudE1hdGNoZXNLZXlzKHQsImVzYyIpP2UuX29uQ2FwdHVyZUVzYyh0KTpYby5rZXlib2FyZEV2ZW50TWF0Y2hlc0tleXModCwidGFiIikmJmUuX29uQ2FwdHVyZVRhYih0KSl9X3Nob3VsZEJlQmVoaW5kT3ZlcmxheSh0LGUpe3JldHVybiF0LmFsd2F5c09uVG9wJiZlLmFsd2F5c09uVG9wfX07Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL3ZhciBJYSxSYSxPYT17cGFnZVg6MCxwYWdlWTowfSx6YT1udWxsLERhPVtdLEJhPVsid2hlZWwiLCJtb3VzZXdoZWVsIiwiRE9NTW91c2VTY3JvbGwiLCJ0b3VjaHN0YXJ0IiwidG91Y2htb3ZlIl07ZnVuY3Rpb24gSGEodCl7VmEuaW5kZXhPZih0KT49MHx8KDA9PT1WYS5sZW5ndGgmJihmdW5jdGlvbiBlKCl7SWE9SWF8fFVhLmJpbmQodm9pZCAwKTtmb3IodmFyIHQ9MCxlPUJhLmxlbmd0aDt0PGU7dCsrKWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoQmFbdF0sSWEse2NhcHR1cmU6ITAscGFzc2l2ZTohMX0pfSkoKSxWYS5wdXNoKHQpLFJhPVZhW1ZhLmxlbmd0aC0xXSl9ZnVuY3Rpb24gRmEodCl7dmFyIGU9VmEuaW5kZXhPZih0KTstMSE9PWUmJihWYS5zcGxpY2UoZSwxKSxSYT1WYVtWYS5sZW5ndGgtMV0sMD09PVZhLmxlbmd0aCYmKGZ1bmN0aW9uIG4oKXtmb3IodmFyIHQ9MCxlPUJhLmxlbmd0aDt0PGU7dCsrKWRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoQmFbdF0sSWEse2NhcHR1cmU6ITAscGFzc2l2ZTohMX0pfSkoKSl9Y29uc3QgVmE9W107ZnVuY3Rpb24gVWEodCl7aWYodC5jYW5jZWxhYmxlJiYoZnVuY3Rpb24gZSh0KXt2YXIgZT1lcih0KS5yb290VGFyZ2V0OyJ0b3VjaG1vdmUiIT09dC50eXBlJiZ6YSE9PWUmJih6YT1lLERhPShmdW5jdGlvbiBuKHQpe2Zvcih2YXIgZT1bXSxuPXQuaW5kZXhPZihSYSksaT0wO2k8PW47aSsrKWlmKHRbaV0ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSl7dmFyIHI9dFtpXSxvPXIuc3R5bGU7InNjcm9sbCIhPT1vLm92ZXJmbG93JiYiYXV0byIhPT1vLm92ZXJmbG93JiYobz13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShyKSksInNjcm9sbCIhPT1vLm92ZXJmbG93JiYiYXV0byIhPT1vLm92ZXJmbG93fHxlLnB1c2gocil9cmV0dXJuIGV9KShlcih0KS5wYXRoKSk7aWYoIURhLmxlbmd0aClyZXR1cm4hMDtpZigidG91Y2hzdGFydCI9PT10LnR5cGUpcmV0dXJuITE7dmFyIGk9KGZ1bmN0aW9uIHIodCl7dmFyIGU9e2RlbHRhWDp0LmRlbHRhWCxkZWx0YVk6dC5kZWx0YVl9O2lmKCJkZWx0YVgiaW4gdCk7ZWxzZSBpZigid2hlZWxEZWx0YVgiaW4gdCYmIndoZWVsRGVsdGFZImluIHQpZS5kZWx0YVg9LXQud2hlZWxEZWx0YVgsZS5kZWx0YVk9LXQud2hlZWxEZWx0YVk7ZWxzZSBpZigid2hlZWxEZWx0YSJpbiB0KWUuZGVsdGFYPTAsZS5kZWx0YVk9LXQud2hlZWxEZWx0YTtlbHNlIGlmKCJheGlzImluIHQpZS5kZWx0YVg9MT09PXQuYXhpcz90LmRldGFpbDowLGUuZGVsdGFZPTI9PT10LmF4aXM/dC5kZXRhaWw6MDtlbHNlIGlmKHQudGFyZ2V0VG91Y2hlcyl7dmFyIG49dC50YXJnZXRUb3VjaGVzWzBdO2UuZGVsdGFYPU9hLnBhZ2VYLW4ucGFnZVgsZS5kZWx0YVk9T2EucGFnZVktbi5wYWdlWX1yZXR1cm4gZX0KLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovKSh0KTtyZXR1cm4hKGZ1bmN0aW9uIG8odCxlLG4pe2lmKCFlJiYhbilyZXR1cm47Zm9yKHZhciBpPU1hdGguYWJzKG4pPj1NYXRoLmFicyhlKSxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBvPXRbcl07aWYoaT9uPDA/by5zY3JvbGxUb3A+MDpvLnNjcm9sbFRvcDxvLnNjcm9sbEhlaWdodC1vLmNsaWVudEhlaWdodDplPDA/by5zY3JvbGxMZWZ0PjA6by5zY3JvbGxMZWZ0PG8uc2Nyb2xsV2lkdGgtby5jbGllbnRXaWR0aClyZXR1cm4gb319KShEYSxpLmRlbHRhWCxpLmRlbHRhWSl9KSh0KSYmdC5wcmV2ZW50RGVmYXVsdCgpLHQudGFyZ2V0VG91Y2hlcyl7dmFyIG49dC50YXJnZXRUb3VjaGVzWzBdO09hLnBhZ2VYPW4ucGFnZVgsT2EucGFnZVk9bi5wYWdlWX19Y29uc3QgamE9e3Byb3BlcnRpZXM6e29wZW5lZDp7b2JzZXJ2ZXI6Il9vcGVuZWRDaGFuZ2VkIix0eXBlOkJvb2xlYW4sdmFsdWU6ITEsbm90aWZ5OiEwfSxjYW5jZWxlZDp7b2JzZXJ2ZXI6Il9jYW5jZWxlZENoYW5nZWQiLHJlYWRPbmx5OiEwLHR5cGU6Qm9vbGVhbix2YWx1ZTohMX0sd2l0aEJhY2tkcm9wOntvYnNlcnZlcjoiX3dpdGhCYWNrZHJvcENoYW5nZWQiLHR5cGU6Qm9vbGVhbn0sbm9BdXRvRm9jdXM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sbm9DYW5jZWxPbkVzY0tleTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxub0NhbmNlbE9uT3V0c2lkZUNsaWNrOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGNsb3NpbmdSZWFzb246e3R5cGU6T2JqZWN0fSxyZXN0b3JlRm9jdXNPbkNsb3NlOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGFsbG93Q2xpY2tUaHJvdWdoOnt0eXBlOkJvb2xlYW59LGFsd2F5c09uVG9wOnt0eXBlOkJvb2xlYW59LHNjcm9sbEFjdGlvbjp7dHlwZTpTdHJpbmd9LF9tYW5hZ2VyOnt0eXBlOk9iamVjdCx2YWx1ZTpOYX0sX2ZvY3VzZWRDaGlsZDp7dHlwZTpPYmplY3R9fSxsaXN0ZW5lcnM6eyJpcm9uLXJlc2l6ZSI6Il9vbklyb25SZXNpemUifSxvYnNlcnZlcnM6WyJfX3VwZGF0ZVNjcm9sbE9ic2VydmVycyhpc0F0dGFjaGVkLCBvcGVuZWQsIHNjcm9sbEFjdGlvbikiXSxnZXQgYmFja2Ryb3BFbGVtZW50KCl7cmV0dXJuIHRoaXMuX21hbmFnZXIuYmFja2Ryb3BFbGVtZW50fSxnZXQgX2ZvY3VzTm9kZSgpe3JldHVybiB0aGlzLl9mb2N1c2VkQ2hpbGR8fGVyKHRoaXMpLnF1ZXJ5U2VsZWN0b3IoIlthdXRvZm9jdXNdIil8fHRoaXN9LGdldCBfZm9jdXNhYmxlTm9kZXMoKXtyZXR1cm4gUGEuZ2V0VGFiYmFibGVOb2Rlcyh0aGlzKX0scmVhZHk6ZnVuY3Rpb24oKXt0aGlzLl9faXNBbmltYXRpbmc9ITEsdGhpcy5fX3Nob3VsZFJlbW92ZVRhYkluZGV4PSExLHRoaXMuX19maXJzdEZvY3VzYWJsZU5vZGU9dGhpcy5fX2xhc3RGb2N1c2FibGVOb2RlPW51bGwsdGhpcy5fX3JhZnM9e30sdGhpcy5fX3Jlc3RvcmVGb2N1c05vZGU9bnVsbCx0aGlzLl9fc2Nyb2xsVG9wPXRoaXMuX19zY3JvbGxMZWZ0PW51bGwsdGhpcy5fX29uQ2FwdHVyZVNjcm9sbD10aGlzLl9fb25DYXB0dXJlU2Nyb2xsLmJpbmQodGhpcyksdGhpcy5fX3Jvb3ROb2Rlcz1udWxsLHRoaXMuX2Vuc3VyZVNldHVwKCl9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5vcGVuZWQmJnRoaXMuX29wZW5lZENoYW5nZWQodGhpcy5vcGVuZWQpLHRoaXMuX29ic2VydmVyPWVyKHRoaXMpLm9ic2VydmVOb2Rlcyh0aGlzLl9vbk5vZGVzQ2hhbmdlKX0sZGV0YWNoZWQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5fb2JzZXJ2ZXImJmVyKHRoaXMpLnVub2JzZXJ2ZU5vZGVzKHRoaXMuX29ic2VydmVyKSx0aGlzLl9vYnNlcnZlcj1udWxsLHRoaXMuX19yYWZzKW51bGwhPT10aGlzLl9fcmFmc1t0XSYmY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fX3JhZnNbdF0pO3RoaXMuX19yYWZzPXt9LHRoaXMuX21hbmFnZXIucmVtb3ZlT3ZlcmxheSh0aGlzKSx0aGlzLl9faXNBbmltYXRpbmcmJih0aGlzLm9wZW5lZD90aGlzLl9maW5pc2hSZW5kZXJPcGVuZWQoKToodGhpcy5fYXBwbHlGb2N1cygpLHRoaXMuX2ZpbmlzaFJlbmRlckNsb3NlZCgpKSl9LHRvZ2dsZTpmdW5jdGlvbigpe3RoaXMuX3NldENhbmNlbGVkKCExKSx0aGlzLm9wZW5lZD0hdGhpcy5vcGVuZWR9LG9wZW46ZnVuY3Rpb24oKXt0aGlzLl9zZXRDYW5jZWxlZCghMSksdGhpcy5vcGVuZWQ9ITB9LGNsb3NlOmZ1bmN0aW9uKCl7dGhpcy5fc2V0Q2FuY2VsZWQoITEpLHRoaXMub3BlbmVkPSExfSxjYW5jZWw6ZnVuY3Rpb24odCl7dGhpcy5maXJlKCJpcm9uLW92ZXJsYXktY2FuY2VsZWQiLHQse2NhbmNlbGFibGU6ITB9KS5kZWZhdWx0UHJldmVudGVkfHwodGhpcy5fc2V0Q2FuY2VsZWQoITApLHRoaXMub3BlbmVkPSExKX0saW52YWxpZGF0ZVRhYmJhYmxlczpmdW5jdGlvbigpe3RoaXMuX19maXJzdEZvY3VzYWJsZU5vZGU9dGhpcy5fX2xhc3RGb2N1c2FibGVOb2RlPW51bGx9LF9lbnN1cmVTZXR1cDpmdW5jdGlvbigpe3RoaXMuX292ZXJsYXlTZXR1cHx8KHRoaXMuX292ZXJsYXlTZXR1cD0hMCx0aGlzLnN0eWxlLm91dGxpbmU9Im5vbmUiLHRoaXMuc3R5bGUuZGlzcGxheT0ibm9uZSIpfSxfb3BlbmVkQ2hhbmdlZDpmdW5jdGlvbih0KXt0P3RoaXMucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWhpZGRlbiIpOnRoaXMuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSx0aGlzLmlzQXR0YWNoZWQmJih0aGlzLl9faXNBbmltYXRpbmc9ITAsdGhpcy5fX2RlcmFmKCJfX29wZW5lZENoYW5nZWQiLHRoaXMuX19vcGVuZWRDaGFuZ2VkKSl9LF9jYW5jZWxlZENoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLmNsb3NpbmdSZWFzb249dGhpcy5jbG9zaW5nUmVhc29ufHx7fSx0aGlzLmNsb3NpbmdSZWFzb24uY2FuY2VsZWQ9dGhpcy5jYW5jZWxlZH0sX3dpdGhCYWNrZHJvcENoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLndpdGhCYWNrZHJvcCYmIXRoaXMuaGFzQXR0cmlidXRlKCJ0YWJpbmRleCIpPyh0aGlzLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCItMSIpLHRoaXMuX19zaG91bGRSZW1vdmVUYWJJbmRleD0hMCk6dGhpcy5fX3Nob3VsZFJlbW92ZVRhYkluZGV4JiYodGhpcy5yZW1vdmVBdHRyaWJ1dGUoInRhYmluZGV4IiksdGhpcy5fX3Nob3VsZFJlbW92ZVRhYkluZGV4PSExKSx0aGlzLm9wZW5lZCYmdGhpcy5pc0F0dGFjaGVkJiZ0aGlzLl9tYW5hZ2VyLnRyYWNrQmFja2Ryb3AoKX0sX3ByZXBhcmVSZW5kZXJPcGVuZWQ6ZnVuY3Rpb24oKXt0aGlzLl9fcmVzdG9yZUZvY3VzTm9kZT10aGlzLl9tYW5hZ2VyLmRlZXBBY3RpdmVFbGVtZW50LHRoaXMuX3ByZXBhcmVQb3NpdGlvbmluZygpLHRoaXMucmVmaXQoKSx0aGlzLl9maW5pc2hQb3NpdGlvbmluZygpLHRoaXMubm9BdXRvRm9jdXMmJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT10aGlzLl9mb2N1c05vZGUmJih0aGlzLl9mb2N1c05vZGUuYmx1cigpLHRoaXMuX19yZXN0b3JlRm9jdXNOb2RlLmZvY3VzKCkpfSxfcmVuZGVyT3BlbmVkOmZ1bmN0aW9uKCl7dGhpcy5fZmluaXNoUmVuZGVyT3BlbmVkKCl9LF9yZW5kZXJDbG9zZWQ6ZnVuY3Rpb24oKXt0aGlzLl9maW5pc2hSZW5kZXJDbG9zZWQoKX0sX2ZpbmlzaFJlbmRlck9wZW5lZDpmdW5jdGlvbigpe3RoaXMubm90aWZ5UmVzaXplKCksdGhpcy5fX2lzQW5pbWF0aW5nPSExLHRoaXMuZmlyZSgiaXJvbi1vdmVybGF5LW9wZW5lZCIpfSxfZmluaXNoUmVuZGVyQ2xvc2VkOmZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLnN0eWxlLnpJbmRleD0iIix0aGlzLm5vdGlmeVJlc2l6ZSgpLHRoaXMuX19pc0FuaW1hdGluZz0hMSx0aGlzLmZpcmUoImlyb24tb3ZlcmxheS1jbG9zZWQiLHRoaXMuY2xvc2luZ1JlYXNvbil9LF9wcmVwYXJlUG9zaXRpb25pbmc6ZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnRyYW5zaXRpb249dGhpcy5zdHlsZS53ZWJraXRUcmFuc2l0aW9uPSJub25lIix0aGlzLnN0eWxlLnRyYW5zZm9ybT10aGlzLnN0eWxlLndlYmtpdFRyYW5zZm9ybT0ibm9uZSIsdGhpcy5zdHlsZS5kaXNwbGF5PSIifSxfZmluaXNoUG9zaXRpb25pbmc6ZnVuY3Rpb24oKXt0aGlzLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuc2Nyb2xsVG9wPXRoaXMuc2Nyb2xsVG9wLHRoaXMuc3R5bGUudHJhbnNpdGlvbj10aGlzLnN0eWxlLndlYmtpdFRyYW5zaXRpb249IiIsdGhpcy5zdHlsZS50cmFuc2Zvcm09dGhpcy5zdHlsZS53ZWJraXRUcmFuc2Zvcm09IiIsdGhpcy5zdHlsZS5kaXNwbGF5PSIiLHRoaXMuc2Nyb2xsVG9wPXRoaXMuc2Nyb2xsVG9wfSxfYXBwbHlGb2N1czpmdW5jdGlvbigpe2lmKHRoaXMub3BlbmVkKXRoaXMubm9BdXRvRm9jdXN8fHRoaXMuX2ZvY3VzTm9kZS5mb2N1cygpO2Vsc2V7aWYodGhpcy5yZXN0b3JlRm9jdXNPbkNsb3NlJiZ0aGlzLl9fcmVzdG9yZUZvY3VzTm9kZSl7dmFyIHQ9dGhpcy5fbWFuYWdlci5kZWVwQWN0aXZlRWxlbWVudDsodD09PWRvY3VtZW50LmJvZHl8fEdhKHRoaXMsdCkpJiZ0aGlzLl9fcmVzdG9yZUZvY3VzTm9kZS5mb2N1cygpfXRoaXMuX19yZXN0b3JlRm9jdXNOb2RlPW51bGwsdGhpcy5fZm9jdXNOb2RlLmJsdXIoKSx0aGlzLl9mb2N1c2VkQ2hpbGQ9bnVsbH19LF9vbkNhcHR1cmVDbGljazpmdW5jdGlvbih0KXt0aGlzLm5vQ2FuY2VsT25PdXRzaWRlQ2xpY2t8fHRoaXMuY2FuY2VsKHQpfSxfb25DYXB0dXJlRm9jdXM6ZnVuY3Rpb24odCl7aWYodGhpcy53aXRoQmFja2Ryb3Ape3ZhciBlPWVyKHQpLnBhdGg7LTE9PT1lLmluZGV4T2YodGhpcyk/KHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5fYXBwbHlGb2N1cygpKTp0aGlzLl9mb2N1c2VkQ2hpbGQ9ZVswXX19LF9vbkNhcHR1cmVFc2M6ZnVuY3Rpb24odCl7dGhpcy5ub0NhbmNlbE9uRXNjS2V5fHx0aGlzLmNhbmNlbCh0KX0sX29uQ2FwdHVyZVRhYjpmdW5jdGlvbih0KXtpZih0aGlzLndpdGhCYWNrZHJvcCl7dGhpcy5fX2Vuc3VyZUZpcnN0TGFzdEZvY3VzYWJsZXMoKTt2YXIgZT10LnNoaWZ0S2V5LG49ZT90aGlzLl9fZmlyc3RGb2N1c2FibGVOb2RlOnRoaXMuX19sYXN0Rm9jdXNhYmxlTm9kZSxpPWU/dGhpcy5fX2xhc3RGb2N1c2FibGVOb2RlOnRoaXMuX19maXJzdEZvY3VzYWJsZU5vZGUscj0hMTtpZihuPT09aSlyPSEwO2Vsc2V7dmFyIG89dGhpcy5fbWFuYWdlci5kZWVwQWN0aXZlRWxlbWVudDtyPW89PT1ufHxvPT09dGhpc31yJiYodC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2ZvY3VzZWRDaGlsZD1pLHRoaXMuX2FwcGx5Rm9jdXMoKSl9fSxfb25Jcm9uUmVzaXplOmZ1bmN0aW9uKCl7dGhpcy5vcGVuZWQmJiF0aGlzLl9faXNBbmltYXRpbmcmJnRoaXMuX19kZXJhZigicmVmaXQiLHRoaXMucmVmaXQpfSxfb25Ob2Rlc0NoYW5nZTpmdW5jdGlvbigpe3RoaXMub3BlbmVkJiYhdGhpcy5fX2lzQW5pbWF0aW5nJiYodGhpcy5pbnZhbGlkYXRlVGFiYmFibGVzKCksdGhpcy5ub3RpZnlSZXNpemUoKSl9LF9fZW5zdXJlRmlyc3RMYXN0Rm9jdXNhYmxlczpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2ZvY3VzYWJsZU5vZGVzO3RoaXMuX19maXJzdEZvY3VzYWJsZU5vZGU9dFswXSx0aGlzLl9fbGFzdEZvY3VzYWJsZU5vZGU9dFt0Lmxlbmd0aC0xXX0sX19vcGVuZWRDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5vcGVuZWQ/KHRoaXMuX3ByZXBhcmVSZW5kZXJPcGVuZWQoKSx0aGlzLl9tYW5hZ2VyLmFkZE92ZXJsYXkodGhpcyksdGhpcy5fYXBwbHlGb2N1cygpLHRoaXMuX3JlbmRlck9wZW5lZCgpKToodGhpcy5fbWFuYWdlci5yZW1vdmVPdmVybGF5KHRoaXMpLHRoaXMuX2FwcGx5Rm9jdXMoKSx0aGlzLl9yZW5kZXJDbG9zZWQoKSl9LF9fZGVyYWY6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9fcmFmcztudWxsIT09blt0XSYmY2FuY2VsQW5pbWF0aW9uRnJhbWUoblt0XSksblt0XT1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24gaSgpe25bdF09bnVsbCxlLmNhbGwodGhpcyl9LmJpbmQodGhpcykpfSxfX3VwZGF0ZVNjcm9sbE9ic2VydmVyczpmdW5jdGlvbih0LGUsbil7dCYmZSYmdGhpcy5fX2lzVmFsaWRTY3JvbGxBY3Rpb24obik/KCJsb2NrIj09PW4mJih0aGlzLl9fc2F2ZVNjcm9sbFBvc2l0aW9uKCksSGEodGhpcykpLHRoaXMuX19hZGRTY3JvbGxMaXN0ZW5lcnMoKSk6KEZhKHRoaXMpLHRoaXMuX19yZW1vdmVTY3JvbGxMaXN0ZW5lcnMoKSl9LF9fYWRkU2Nyb2xsTGlzdGVuZXJzOmZ1bmN0aW9uKCl7aWYoIXRoaXMuX19yb290Tm9kZXMpe2lmKHRoaXMuX19yb290Tm9kZXM9W10sbSlmb3IodmFyIHQ9dGhpczt0Oyl0Lm5vZGVUeXBlPT09Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFJiZ0Lmhvc3QmJnRoaXMuX19yb290Tm9kZXMucHVzaCh0KSx0PXQuaG9zdHx8dC5hc3NpZ25lZFNsb3R8fHQucGFyZW50Tm9kZTt0aGlzLl9fcm9vdE5vZGVzLnB1c2goZG9jdW1lbnQpfXRoaXMuX19yb290Tm9kZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuX19vbkNhcHR1cmVTY3JvbGwse2NhcHR1cmU6ITAscGFzc2l2ZTohMH0pfSksdGhpcyl9LF9fcmVtb3ZlU2Nyb2xsTGlzdGVuZXJzOmZ1bmN0aW9uKCl7dGhpcy5fX3Jvb3ROb2RlcyYmdGhpcy5fX3Jvb3ROb2Rlcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5fX29uQ2FwdHVyZVNjcm9sbCx7Y2FwdHVyZTohMCxwYXNzaXZlOiEwfSl9KSx0aGlzKSx0aGlzLmlzQXR0YWNoZWR8fCh0aGlzLl9fcm9vdE5vZGVzPW51bGwpfSxfX2lzVmFsaWRTY3JvbGxBY3Rpb246ZnVuY3Rpb24odCl7cmV0dXJuImxvY2siPT09dHx8InJlZml0Ij09PXR8fCJjYW5jZWwiPT09dH0sX19vbkNhcHR1cmVTY3JvbGw6ZnVuY3Rpb24odCl7aWYoISh0aGlzLl9faXNBbmltYXRpbmd8fGVyKHQpLnBhdGguaW5kZXhPZih0aGlzKT49MCkpc3dpdGNoKHRoaXMuc2Nyb2xsQWN0aW9uKXtjYXNlImxvY2siOnRoaXMuX19yZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTticmVhaztjYXNlInJlZml0Ijp0aGlzLl9fZGVyYWYoInJlZml0Iix0aGlzLnJlZml0KTticmVhaztjYXNlImNhbmNlbCI6dGhpcy5jYW5jZWwodCl9fSxfX3NhdmVTY3JvbGxQb3NpdGlvbjpmdW5jdGlvbigpe2RvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQ/KHRoaXMuX19zY3JvbGxUb3A9ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AsdGhpcy5fX3Njcm9sbExlZnQ9ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxMZWZ0KToodGhpcy5fX3Njcm9sbFRvcD1NYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wLGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wKSx0aGlzLl9fc2Nyb2xsTGVmdD1NYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdCxkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQpKX0sX19yZXN0b3JlU2Nyb2xsUG9zaXRpb246ZnVuY3Rpb24oKXtkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50Pyhkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcD10aGlzLl9fc2Nyb2xsVG9wLGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsTGVmdD10aGlzLl9fc2Nyb2xsTGVmdCk6KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A9ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A9dGhpcy5fX3Njcm9sbFRvcCxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdD1kb2N1bWVudC5ib2R5LnNjcm9sbExlZnQ9dGhpcy5fX3Njcm9sbExlZnQpfX0sR2E9KHQsZSk9Pntmb3IobGV0IGk9ZTtpO2k9KG49aSkuYXNzaWduZWRTbG90fHxuLnBhcmVudE5vZGV8fG4uaG9zdClpZihpPT09dClyZXR1cm4hMDt2YXIgbjtyZXR1cm4hMX0sV2E9W0FhLENvLGphXSxxYT17aG9zdEF0dHJpYnV0ZXM6e3JvbGU6ImRpYWxvZyIsdGFiaW5kZXg6Ii0xIn0scHJvcGVydGllczp7bW9kYWw6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sX19yZWFkaWVkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9fSxvYnNlcnZlcnM6WyJfbW9kYWxDaGFuZ2VkKG1vZGFsLCBfX3JlYWRpZWQpIl0sbGlzdGVuZXJzOnt0YXA6Il9vbkRpYWxvZ0NsaWNrIn0scmVhZHk6ZnVuY3Rpb24oKXt0aGlzLl9fcHJldk5vQ2FuY2VsT25PdXRzaWRlQ2xpY2s9dGhpcy5ub0NhbmNlbE9uT3V0c2lkZUNsaWNrLHRoaXMuX19wcmV2Tm9DYW5jZWxPbkVzY0tleT10aGlzLm5vQ2FuY2VsT25Fc2NLZXksdGhpcy5fX3ByZXZXaXRoQmFja2Ryb3A9dGhpcy53aXRoQmFja2Ryb3AsdGhpcy5fX3JlYWRpZWQ9ITB9LF9tb2RhbENoYW5nZWQ6ZnVuY3Rpb24odCxlKXtlJiYodD8odGhpcy5fX3ByZXZOb0NhbmNlbE9uT3V0c2lkZUNsaWNrPXRoaXMubm9DYW5jZWxPbk91dHNpZGVDbGljayx0aGlzLl9fcHJldk5vQ2FuY2VsT25Fc2NLZXk9dGhpcy5ub0NhbmNlbE9uRXNjS2V5LHRoaXMuX19wcmV2V2l0aEJhY2tkcm9wPXRoaXMud2l0aEJhY2tkcm9wLHRoaXMubm9DYW5jZWxPbk91dHNpZGVDbGljaz0hMCx0aGlzLm5vQ2FuY2VsT25Fc2NLZXk9ITAsdGhpcy53aXRoQmFja2Ryb3A9ITApOih0aGlzLm5vQ2FuY2VsT25PdXRzaWRlQ2xpY2s9dGhpcy5ub0NhbmNlbE9uT3V0c2lkZUNsaWNrJiZ0aGlzLl9fcHJldk5vQ2FuY2VsT25PdXRzaWRlQ2xpY2ssdGhpcy5ub0NhbmNlbE9uRXNjS2V5PXRoaXMubm9DYW5jZWxPbkVzY0tleSYmdGhpcy5fX3ByZXZOb0NhbmNlbE9uRXNjS2V5LHRoaXMud2l0aEJhY2tkcm9wPXRoaXMud2l0aEJhY2tkcm9wJiZ0aGlzLl9fcHJldldpdGhCYWNrZHJvcCkpfSxfdXBkYXRlQ2xvc2luZ1JlYXNvbkNvbmZpcm1lZDpmdW5jdGlvbih0KXt0aGlzLmNsb3NpbmdSZWFzb249dGhpcy5jbG9zaW5nUmVhc29ufHx7fSx0aGlzLmNsb3NpbmdSZWFzb24uY29uZmlybWVkPXR9LF9vbkRpYWxvZ0NsaWNrOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1lcih0KS5wYXRoLG49MCxpPWUuaW5kZXhPZih0aGlzKTtuPGk7bisrKXt2YXIgcj1lW25dO2lmKHIuaGFzQXR0cmlidXRlJiYoci5oYXNBdHRyaWJ1dGUoImRpYWxvZy1kaXNtaXNzIil8fHIuaGFzQXR0cmlidXRlKCJkaWFsb2ctY29uZmlybSIpKSl7dGhpcy5fdXBkYXRlQ2xvc2luZ1JlYXNvbkNvbmZpcm1lZChyLmhhc0F0dHJpYnV0ZSgiZGlhbG9nLWNvbmZpcm0iKSksdGhpcy5jbG9zZSgpLHQuc3RvcFByb3BhZ2F0aW9uKCk7YnJlYWt9fX19OwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KanIoe190ZW1wbGF0ZTp4ZWAKICAgIDxzdHlsZSBpbmNsdWRlPSJwYXBlci1kaWFsb2ctc2hhcmVkLXN0eWxlcyI+PC9zdHlsZT4KICAgIDxzbG90Pjwvc2xvdD4KYCxpczoicGFwZXItZGlhbG9nIixiZWhhdmlvcnM6W1tXYSxxYV0sVGFdLGxpc3RlbmVyczp7Im5lb24tYW5pbWF0aW9uLWZpbmlzaCI6Il9vbk5lb25BbmltYXRpb25GaW5pc2gifSxfcmVuZGVyT3BlbmVkOmZ1bmN0aW9uKCl7dGhpcy5jYW5jZWxBbmltYXRpb24oKSx0aGlzLnBsYXlBbmltYXRpb24oImVudHJ5Iil9LF9yZW5kZXJDbG9zZWQ6ZnVuY3Rpb24oKXt0aGlzLmNhbmNlbEFuaW1hdGlvbigpLHRoaXMucGxheUFuaW1hdGlvbigiZXhpdCIpfSxfb25OZW9uQW5pbWF0aW9uRmluaXNoOmZ1bmN0aW9uKCl7dGhpcy5vcGVuZWQ/dGhpcy5fZmluaXNoUmVuZGVyT3BlbmVkKCk6dGhpcy5fZmluaXNoUmVuZGVyQ2xvc2VkKCl9fSksCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpqcih7X3RlbXBsYXRlOnhlYAogICAgPHN0eWxlPgoKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIEBhcHBseSAtLWxheW91dC1yZWxhdGl2ZTsKICAgICAgfQoKICAgICAgOmhvc3QoLmlzLXNjcm9sbGVkOm5vdCg6Zmlyc3QtY2hpbGQpKTo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGl2aWRlci1jb2xvcik7CiAgICAgIH0KCiAgICAgIDpob3N0KC5jYW4tc2Nyb2xsOm5vdCguc2Nyb2xsZWQtdG8tYm90dG9tKTpub3QoOmxhc3QtY2hpbGQpKTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kaXZpZGVyLWNvbG9yKTsKICAgICAgfQoKICAgICAgLnNjcm9sbGFibGUgewogICAgICAgIHBhZGRpbmc6IDAgMjRweDsKCiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LXNjcm9sbDsKICAgICAgICBAYXBwbHkgLS1wYXBlci1kaWFsb2ctc2Nyb2xsYWJsZTsKICAgICAgfQoKICAgICAgLmZpdCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZpdDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGlkPSJzY3JvbGxhYmxlIiBjbGFzcz0ic2Nyb2xsYWJsZSIgb24tc2Nyb2xsPSJ1cGRhdGVTY3JvbGxTdGF0ZSI+CiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIDwvZGl2PgpgLGlzOiJwYXBlci1kaWFsb2ctc2Nyb2xsYWJsZSIscHJvcGVydGllczp7ZGlhbG9nRWxlbWVudDp7dHlwZTpPYmplY3R9fSxnZXQgc2Nyb2xsVGFyZ2V0KCl7cmV0dXJuIHRoaXMuJC5zY3JvbGxhYmxlfSxyZWFkeTpmdW5jdGlvbigpe3RoaXMuX2Vuc3VyZVRhcmdldCgpLHRoaXMuY2xhc3NMaXN0LmFkZCgibm8tcGFkZGluZyIpfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX2Vuc3VyZVRhcmdldCgpLHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLnVwZGF0ZVNjcm9sbFN0YXRlLmJpbmQodGhpcykpfSx1cGRhdGVTY3JvbGxTdGF0ZTpmdW5jdGlvbigpe3RoaXMudG9nZ2xlQ2xhc3MoImlzLXNjcm9sbGVkIix0aGlzLnNjcm9sbFRhcmdldC5zY3JvbGxUb3A+MCksdGhpcy50b2dnbGVDbGFzcygiY2FuLXNjcm9sbCIsdGhpcy5zY3JvbGxUYXJnZXQub2Zmc2V0SGVpZ2h0PHRoaXMuc2Nyb2xsVGFyZ2V0LnNjcm9sbEhlaWdodCksdGhpcy50b2dnbGVDbGFzcygic2Nyb2xsZWQtdG8tYm90dG9tIix0aGlzLnNjcm9sbFRhcmdldC5zY3JvbGxUb3ArdGhpcy5zY3JvbGxUYXJnZXQub2Zmc2V0SGVpZ2h0Pj10aGlzLnNjcm9sbFRhcmdldC5zY3JvbGxIZWlnaHQpfSxfZW5zdXJlVGFyZ2V0OmZ1bmN0aW9uKCl7dGhpcy5kaWFsb2dFbGVtZW50PXRoaXMuZGlhbG9nRWxlbWVudHx8dGhpcy5wYXJlbnRFbGVtZW50LHRoaXMuZGlhbG9nRWxlbWVudCYmdGhpcy5kaWFsb2dFbGVtZW50LmJlaGF2aW9ycyYmdGhpcy5kaWFsb2dFbGVtZW50LmJlaGF2aW9ycy5pbmRleE9mKHFhKT49MD8odGhpcy5kaWFsb2dFbGVtZW50LnNpemluZ1RhcmdldD10aGlzLnNjcm9sbFRhcmdldCx0aGlzLnNjcm9sbFRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKCJmaXQiKSk6dGhpcy5kaWFsb2dFbGVtZW50JiZ0aGlzLnNjcm9sbFRhcmdldC5jbGFzc0xpc3QuYWRkKCJmaXQiKX19KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IFlhPWpyKHtfdGVtcGxhdGU6eGVgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIGNsaXA6IHJlY3QoMHB4LDBweCwwcHgsMHB4KTsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgYXJpYS1saXZlJD0iW1ttb2RlXV0iPltbX3RleHRdXTwvZGl2PgpgLGlzOiJpcm9uLWExMXktYW5ub3VuY2VyIixwcm9wZXJ0aWVzOnttb2RlOnt0eXBlOlN0cmluZyx2YWx1ZToicG9saXRlIn0sdGltZW91dDp7dHlwZTpOdW1iZXIsdmFsdWU6MTUwfSxfdGV4dDp7dHlwZTpTdHJpbmcsdmFsdWU6IiJ9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7WWEuaW5zdGFuY2V8fChZYS5pbnN0YW5jZT10aGlzKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJpcm9uLWFubm91bmNlIix0aGlzLl9vbklyb25Bbm5vdW5jZS5iaW5kKHRoaXMpKX0sYW5ub3VuY2U6ZnVuY3Rpb24odCl7dGhpcy5fdGV4dD0iIix0aGlzLmFzeW5jKChmdW5jdGlvbigpe3RoaXMuX3RleHQ9dH0pLHRoaXMudGltZW91dCl9LF9vbklyb25Bbm5vdW5jZTpmdW5jdGlvbih0KXt0LmRldGFpbCYmdC5kZXRhaWwudGV4dCYmdGhpcy5hbm5vdW5jZSh0LmRldGFpbC50ZXh0KX19KTtZYS5pbnN0YW5jZT1udWxsLFlhLnJlcXVlc3RBdmFpbGFiaWxpdHk9ZnVuY3Rpb24oKXtZYS5pbnN0YW5jZXx8KFlhLmluc3RhbmNlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlyb24tYTExeS1hbm5vdW5jZXIiKSksZG9jdW1lbnQuYm9keT9kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKFlhLmluc3RhbmNlKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoZnVuY3Rpb24oKXtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKFlhLmluc3RhbmNlKX0pKX0sCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpqcih7X3RlbXBsYXRlOnhlYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPHNsb3QgaWQ9ImNvbnRlbnQiPjwvc2xvdD4KYCxpczoiaXJvbi1pbnB1dCIsYmVoYXZpb3JzOlt5YV0scHJvcGVydGllczp7YmluZFZhbHVlOnt0eXBlOlN0cmluZyx2YWx1ZToiIn0sdmFsdWU6e3R5cGU6U3RyaW5nLGNvbXB1dGVkOiJfY29tcHV0ZVZhbHVlKGJpbmRWYWx1ZSkifSxhbGxvd2VkUGF0dGVybjp7dHlwZTpTdHJpbmd9LGF1dG9WYWxpZGF0ZTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxfaW5wdXRFbGVtZW50Ok9iamVjdH0sb2JzZXJ2ZXJzOlsiX2JpbmRWYWx1ZUNoYW5nZWQoYmluZFZhbHVlLCBfaW5wdXRFbGVtZW50KSJdLGxpc3RlbmVyczp7aW5wdXQ6Il9vbklucHV0IixrZXlwcmVzczoiX29uS2V5cHJlc3MifSxjcmVhdGVkOmZ1bmN0aW9uKCl7WWEucmVxdWVzdEF2YWlsYWJpbGl0eSgpLHRoaXMuX3ByZXZpb3VzVmFsaWRJbnB1dD0iIix0aGlzLl9wYXR0ZXJuQWxyZWFkeUNoZWNrZWQ9ITF9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fb2JzZXJ2ZXI9ZXIodGhpcykub2JzZXJ2ZU5vZGVzKGZ1bmN0aW9uKHQpe3RoaXMuX2luaXRTbG90dGVkSW5wdXQoKX0uYmluZCh0aGlzKSl9LGRldGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fb2JzZXJ2ZXImJihlcih0aGlzKS51bm9ic2VydmVOb2Rlcyh0aGlzLl9vYnNlcnZlciksdGhpcy5fb2JzZXJ2ZXI9bnVsbCl9LGdldCBpbnB1dEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5faW5wdXRFbGVtZW50fSxfaW5pdFNsb3R0ZWRJbnB1dDpmdW5jdGlvbigpe3RoaXMuX2lucHV0RWxlbWVudD10aGlzLmdldEVmZmVjdGl2ZUNoaWxkcmVuKClbMF0sdGhpcy5pbnB1dEVsZW1lbnQmJnRoaXMuaW5wdXRFbGVtZW50LnZhbHVlJiYodGhpcy5iaW5kVmFsdWU9dGhpcy5pbnB1dEVsZW1lbnQudmFsdWUpLHRoaXMuZmlyZSgiaXJvbi1pbnB1dC1yZWFkeSIpfSxnZXQgX3BhdHRlcm5SZWdFeHAoKXt2YXIgdDtpZih0aGlzLmFsbG93ZWRQYXR0ZXJuKXQ9bmV3IFJlZ0V4cCh0aGlzLmFsbG93ZWRQYXR0ZXJuKTtlbHNlIHN3aXRjaCh0aGlzLmlucHV0RWxlbWVudC50eXBlKXtjYXNlIm51bWJlciI6dD0vWzAtOS4sZS1dL31yZXR1cm4gdH0sX2JpbmRWYWx1ZUNoYW5nZWQ6ZnVuY3Rpb24odCxlKXtlJiYodm9pZCAwPT09dD9lLnZhbHVlPW51bGw6dCE9PWUudmFsdWUmJih0aGlzLmlucHV0RWxlbWVudC52YWx1ZT10KSx0aGlzLmF1dG9WYWxpZGF0ZSYmdGhpcy52YWxpZGF0ZSgpLHRoaXMuZmlyZSgiYmluZC12YWx1ZS1jaGFuZ2VkIix7dmFsdWU6dH0pKX0sX29uSW5wdXQ6ZnVuY3Rpb24oKXt0aGlzLmFsbG93ZWRQYXR0ZXJuJiYhdGhpcy5fcGF0dGVybkFscmVhZHlDaGVja2VkJiYodGhpcy5fY2hlY2tQYXR0ZXJuVmFsaWRpdHkoKXx8KHRoaXMuX2Fubm91bmNlSW52YWxpZENoYXJhY3RlcigiSW52YWxpZCBzdHJpbmcgb2YgY2hhcmFjdGVycyBub3QgZW50ZXJlZC4iKSx0aGlzLmlucHV0RWxlbWVudC52YWx1ZT10aGlzLl9wcmV2aW91c1ZhbGlkSW5wdXQpKTt0aGlzLmJpbmRWYWx1ZT10aGlzLl9wcmV2aW91c1ZhbGlkSW5wdXQ9dGhpcy5pbnB1dEVsZW1lbnQudmFsdWUsdGhpcy5fcGF0dGVybkFscmVhZHlDaGVja2VkPSExfSxfaXNQcmludGFibGU6ZnVuY3Rpb24odCl7cmV0dXJuISg4PT10LmtleUNvZGV8fDk9PXQua2V5Q29kZXx8MTM9PXQua2V5Q29kZXx8Mjc9PXQua2V5Q29kZXx8MD09dC5jaGFyQ29kZSYmKDE5PT10LmtleUNvZGV8fDIwPT10LmtleUNvZGV8fDQ1PT10LmtleUNvZGV8fDQ2PT10LmtleUNvZGV8fDE0ND09dC5rZXlDb2RlfHwxNDU9PXQua2V5Q29kZXx8dC5rZXlDb2RlPjMyJiZ0LmtleUNvZGU8NDF8fHQua2V5Q29kZT4xMTEmJnQua2V5Q29kZTwxMjQpKX0sX29uS2V5cHJlc3M6ZnVuY3Rpb24odCl7aWYodGhpcy5hbGxvd2VkUGF0dGVybnx8Im51bWJlciI9PT10aGlzLmlucHV0RWxlbWVudC50eXBlKXt2YXIgZT10aGlzLl9wYXR0ZXJuUmVnRXhwO2lmKGUmJiEodC5tZXRhS2V5fHx0LmN0cmxLZXl8fHQuYWx0S2V5KSl7dGhpcy5fcGF0dGVybkFscmVhZHlDaGVja2VkPSEwO3ZhciBuPVN0cmluZy5mcm9tQ2hhckNvZGUodC5jaGFyQ29kZSk7dGhpcy5faXNQcmludGFibGUodCkmJiFlLnRlc3QobikmJih0LnByZXZlbnREZWZhdWx0KCksdGhpcy5fYW5ub3VuY2VJbnZhbGlkQ2hhcmFjdGVyKCJJbnZhbGlkIGNoYXJhY3RlciAiK24rIiBub3QgZW50ZXJlZC4iKSl9fX0sX2NoZWNrUGF0dGVyblZhbGlkaXR5OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fcGF0dGVyblJlZ0V4cDtpZighdClyZXR1cm4hMDtmb3IodmFyIGU9MDtlPHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlLmxlbmd0aDtlKyspaWYoIXQudGVzdCh0aGlzLmlucHV0RWxlbWVudC52YWx1ZVtlXSkpcmV0dXJuITE7cmV0dXJuITB9LHZhbGlkYXRlOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaW5wdXRFbGVtZW50KXJldHVybiB0aGlzLmludmFsaWQ9ITEsITA7dmFyIHQ9dGhpcy5pbnB1dEVsZW1lbnQuY2hlY2tWYWxpZGl0eSgpO3JldHVybiB0JiYodGhpcy5yZXF1aXJlZCYmIiI9PT10aGlzLmJpbmRWYWx1ZT90PSExOnRoaXMuaGFzVmFsaWRhdG9yKCkmJih0PXlhLnZhbGlkYXRlLmNhbGwodGhpcyx0aGlzLmJpbmRWYWx1ZSkpKSx0aGlzLmludmFsaWQ9IXQsdGhpcy5maXJlKCJpcm9uLWlucHV0LXZhbGlkYXRlIiksdH0sX2Fubm91bmNlSW52YWxpZENoYXJhY3RlcjpmdW5jdGlvbih0KXt0aGlzLmZpcmUoImlyb24tYW5ub3VuY2UiLHt0ZXh0OnR9KX0sX2NvbXB1dGVWYWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdH19KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IFhhPXthdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuZmlyZSgiYWRkb24tYXR0YWNoZWQiKX0sdXBkYXRlOmZ1bmN0aW9uKHQpe319OwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi9qcih7X3RlbXBsYXRlOnhlYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGZsb2F0OiByaWdodDsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1jYXB0aW9uOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNoYXItY291bnRlcjsKICAgICAgfQoKICAgICAgOmhvc3QoW2hpZGRlbl0pIHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIDpob3N0KDpkaXIocnRsKSkgewogICAgICAgIGZsb2F0OiBsZWZ0OwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxzcGFuPltbX2NoYXJDb3VudGVyU3RyXV08L3NwYW4+CmAsaXM6InBhcGVyLWlucHV0LWNoYXItY291bnRlciIsYmVoYXZpb3JzOltYYV0scHJvcGVydGllczp7X2NoYXJDb3VudGVyU3RyOnt0eXBlOlN0cmluZyx2YWx1ZToiMCJ9fSx1cGRhdGU6ZnVuY3Rpb24odCl7aWYodC5pbnB1dEVsZW1lbnQpe3QudmFsdWU9dC52YWx1ZXx8IiI7dmFyIGU9dC52YWx1ZS50b1N0cmluZygpLmxlbmd0aC50b1N0cmluZygpO3QuaW5wdXRFbGVtZW50Lmhhc0F0dHJpYnV0ZSgibWF4bGVuZ3RoIikmJihlKz0iLyIrdC5pbnB1dEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJtYXhsZW5ndGgiKSksdGhpcy5fY2hhckNvdW50ZXJTdHI9ZX19fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCAkYT14ZWAKPGN1c3RvbS1zdHlsZT4KICA8c3R5bGUgaXM9ImN1c3RvbS1zdHlsZSI+CiAgICBodG1sIHsKICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItc2hhcmVkLWlucHV0LXN0eWxlOiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiB0byBtYWtlIGEgc3RhY2tpbmcgY29udGV4dCAqLwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQtY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwogICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICB0ZXh0LWFsaWduOiBpbmhlcml0OwogICAgICAgIHZlcnRpY2FsLWFsaWduOiB2YXIoLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQtYWxpZ24sIGJvdHRvbSk7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtc3ViaGVhZDsKICAgICAgfTsKICAgIH0KICA8L3N0eWxlPgo8L2N1c3RvbS1zdHlsZT4KYDskYS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTogbm9uZTsiKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKCRhLmNvbnRlbnQpLGpyKHtfdGVtcGxhdGU6eGVgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXI7CiAgICAgIH0KCiAgICAgIDpob3N0KFtpbmxpbmVdKSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3BhY2l0eTogMC4zMzsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWRpc2FibGVkOwogICAgICB9CgogICAgICA6aG9zdChbaGlkZGVuXSkgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgW2hpZGRlbl0gewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmZsb2F0ZWQtbGFiZWwtcGxhY2Vob2xkZXIgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY2FwdGlvbjsKICAgICAgfQoKICAgICAgLnVuZGVybGluZSB7CiAgICAgICAgaGVpZ2h0OiAycHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuZm9jdXNlZC1saW5lIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZml0OwogICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS1wYXBlci1pbnB1dC1jb250YWluZXItZm9jdXMtY29sb3IsIHZhcigtLXByaW1hcnktY29sb3IpKTsKCiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOwogICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMCwxLDEpOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLDEsMSk7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci11bmRlcmxpbmUtZm9jdXM7CiAgICAgIH0KCiAgICAgIC51bmRlcmxpbmUuaXMtaGlnaGxpZ2h0ZWQgLmZvY3VzZWQtbGluZSB7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7CiAgICAgICAgdHJhbnNmb3JtOiBub25lOwogICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4yNXM7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci10cmFuc2l0aW9uLWVhc2luZzsKICAgICAgfQoKICAgICAgLnVuZGVybGluZS5pcy1pbnZhbGlkIC5mb2N1c2VkLWxpbmUgewogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWludmFsaWQtY29sb3IsIHZhcigtLWVycm9yLWNvbG9yKSk7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7CiAgICAgICAgdHJhbnNmb3JtOiBub25lOwogICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4yNXM7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci10cmFuc2l0aW9uLWVhc2luZzsKICAgICAgfQoKICAgICAgLnVuZm9jdXNlZC1saW5lIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZml0OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1wYXBlci1pbnB1dC1jb250YWluZXItY29sb3IsIHZhcigtLXNlY29uZGFyeS10ZXh0LWNvbG9yKSk7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLXVuZGVybGluZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnVuZm9jdXNlZC1saW5lIHsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkOwogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWNvbG9yLCB2YXIoLS1zZWNvbmRhcnktdGV4dC1jb2xvcikpOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci11bmRlcmxpbmUtZGlzYWJsZWQ7CiAgICAgIH0KCiAgICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtaG9yaXpvbnRhbDsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmlucHV0LWNvbnRlbnQgewogICAgICAgIEBhcHBseSAtLWxheW91dC1mbGV4LWF1dG87CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LXJlbGF0aXZlOwogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmlucHV0LWNvbnRlbnQgOjpzbG90dGVkKGxhYmVsKSwKICAgICAgLmlucHV0LWNvbnRlbnQgOjpzbG90dGVkKC5wYXBlci1pbnB1dC1sYWJlbCkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBmb250OiBpbmhlcml0OwogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1pbnB1dC1jb250YWluZXItY29sb3IsIHZhcigtLXNlY29uZGFyeS10ZXh0LWNvbG9yKSk7CiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjI1cywgd2lkdGggMC4yNXM7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzLCB3aWR0aCAwLjI1czsKICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wOwogICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wOwogICAgICAgIC8qIEZpeCBmb3Igc2FmYXJpIG5vdCBmb2N1c2luZyAwLWhlaWdodCBkYXRlL3RpbWUgaW5wdXRzIHdpdGggLXdlYmtpdC1hcHBlcmFuY2U6IG5vbmU7ICovCiAgICAgICAgbWluLWhlaWdodDogMXB4OwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1ub3dyYXA7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1zdWJoZWFkOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1sYWJlbDsKICAgICAgICBAYXBwbHkgLS1wYXBlci10cmFuc2l0aW9uLWVhc2luZzsKICAgICAgfQoKCiAgICAgIC5pbnB1dC1jb250ZW50IDo6c2xvdHRlZChsYWJlbCk6YmVmb3JlLAogICAgICAuaW5wdXQtY29udGVudCA6OnNsb3R0ZWQoLnBhcGVyLWlucHV0LWxhYmVsKTpiZWZvcmUgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1sYWJlbC1iZWZvcmU7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250ZW50IDo6c2xvdHRlZChsYWJlbCk6YWZ0ZXIsCiAgICAgIC5pbnB1dC1jb250ZW50IDo6c2xvdHRlZCgucGFwZXItaW5wdXQtbGFiZWwpOmFmdGVyIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItbGFiZWwtYWZ0ZXI7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250ZW50LmxhYmVsLWlzLWZsb2F0aW5nIDo6c2xvdHRlZChsYWJlbCksCiAgICAgIC5pbnB1dC1jb250ZW50LmxhYmVsLWlzLWZsb2F0aW5nIDo6c2xvdHRlZCgucGFwZXItaW5wdXQtbGFiZWwpIHsKICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNzUlKSBzY2FsZSgwLjc1KTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTc1JSkgc2NhbGUoMC43NSk7CgogICAgICAgIC8qIFNpbmNlIHdlIHNjYWxlIHRvIDc1LzEwMCBvZiB0aGUgc2l6ZSwgd2UgYWN0dWFsbHkgaGF2ZSAxMDAvNzUgb2YgdGhlCiAgICAgICAgb3JpZ2luYWwgc3BhY2Ugbm93IGF2YWlsYWJsZSAqLwogICAgICAgIHdpZHRoOiAxMzMlOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItbGFiZWwtZmxvYXRpbmc7CiAgICAgIH0KCiAgICAgIDpob3N0KDpkaXIocnRsKSkgLmlucHV0LWNvbnRlbnQubGFiZWwtaXMtZmxvYXRpbmcgOjpzbG90dGVkKGxhYmVsKSwKICAgICAgOmhvc3QoOmRpcihydGwpKSAuaW5wdXQtY29udGVudC5sYWJlbC1pcy1mbG9hdGluZyA6OnNsb3R0ZWQoLnBhcGVyLWlucHV0LWxhYmVsKSB7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbGVmdDogYXV0bzsKICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IHRvcDsKICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCB0b3A7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250ZW50LmxhYmVsLWlzLWhpZ2hsaWdodGVkIDo6c2xvdHRlZChsYWJlbCksCiAgICAgIC5pbnB1dC1jb250ZW50LmxhYmVsLWlzLWhpZ2hsaWdodGVkIDo6c2xvdHRlZCgucGFwZXItaW5wdXQtbGFiZWwpIHsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWZvY3VzLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSk7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1sYWJlbC1mb2N1czsKICAgICAgfQoKICAgICAgLmlucHV0LWNvbnRlbnQuaXMtaW52YWxpZCA6OnNsb3R0ZWQobGFiZWwpLAogICAgICAuaW5wdXQtY29udGVudC5pcy1pbnZhbGlkIDo6c2xvdHRlZCgucGFwZXItaW5wdXQtbGFiZWwpIHsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWludmFsaWQtY29sb3IsIHZhcigtLWVycm9yLWNvbG9yKSk7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250ZW50LmxhYmVsLWlzLWhpZGRlbiA6OnNsb3R0ZWQobGFiZWwpLAogICAgICAuaW5wdXQtY29udGVudC5sYWJlbC1pcy1oaWRkZW4gOjpzbG90dGVkKC5wYXBlci1pbnB1dC1sYWJlbCkgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmlucHV0LWNvbnRlbnQgOjpzbG90dGVkKGlucHV0KSwKICAgICAgLmlucHV0LWNvbnRlbnQgOjpzbG90dGVkKGlyb24taW5wdXQpLAogICAgICAuaW5wdXQtY29udGVudCA6OnNsb3R0ZWQodGV4dGFyZWEpLAogICAgICAuaW5wdXQtY29udGVudCA6OnNsb3R0ZWQoaXJvbi1hdXRvZ3Jvdy10ZXh0YXJlYSksCiAgICAgIC5pbnB1dC1jb250ZW50IDo6c2xvdHRlZCgucGFwZXItaW5wdXQtaW5wdXQpIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItc2hhcmVkLWlucHV0LXN0eWxlOwogICAgICAgIC8qIFRoZSBhcHBseSBzaGltIGRvZXNuJ3QgYXBwbHkgdGhlIG5lc3RlZCBjb2xvciBjdXN0b20gcHJvcGVydHksCiAgICAgICAgICBzbyB3ZSBoYXZlIHRvIHJlLWFwcGx5IGl0IGhlcmUuICovCiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dC1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWlucHV0OwogICAgICB9CgogICAgICAuaW5wdXQtY29udGVudCA6OnNsb3R0ZWQoaW5wdXQpOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLAogICAgICAuaW5wdXQtY29udGVudCA6OnNsb3R0ZWQoaW5wdXQpOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQtd2Via2l0LXNwaW5uZXI7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250ZW50LmZvY3VzZWQgOjpzbG90dGVkKGlucHV0KSwKICAgICAgLmlucHV0LWNvbnRlbnQuZm9jdXNlZCA6OnNsb3R0ZWQoaXJvbi1pbnB1dCksCiAgICAgIC5pbnB1dC1jb250ZW50LmZvY3VzZWQgOjpzbG90dGVkKHRleHRhcmVhKSwKICAgICAgLmlucHV0LWNvbnRlbnQuZm9jdXNlZCA6OnNsb3R0ZWQoaXJvbi1hdXRvZ3Jvdy10ZXh0YXJlYSksCiAgICAgIC5pbnB1dC1jb250ZW50LmZvY3VzZWQgOjpzbG90dGVkKC5wYXBlci1pbnB1dC1pbnB1dCkgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dC1mb2N1czsKICAgICAgfQoKICAgICAgLmlucHV0LWNvbnRlbnQuaXMtaW52YWxpZCA6OnNsb3R0ZWQoaW5wdXQpLAogICAgICAuaW5wdXQtY29udGVudC5pcy1pbnZhbGlkIDo6c2xvdHRlZChpcm9uLWlucHV0KSwKICAgICAgLmlucHV0LWNvbnRlbnQuaXMtaW52YWxpZCA6OnNsb3R0ZWQodGV4dGFyZWEpLAogICAgICAuaW5wdXQtY29udGVudC5pcy1pbnZhbGlkIDo6c2xvdHRlZChpcm9uLWF1dG9ncm93LXRleHRhcmVhKSwKICAgICAgLmlucHV0LWNvbnRlbnQuaXMtaW52YWxpZCA6OnNsb3R0ZWQoLnBhcGVyLWlucHV0LWlucHV0KSB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWlucHV0LWludmFsaWQ7CiAgICAgIH0KCiAgICAgIC5wcmVmaXggOjpzbG90dGVkKCopIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItZm9udC1zdWJoZWFkOwogICAgICAgIEBhcHBseSAtLWxheW91dC1mbGV4LW5vbmU7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtcHJlZml4OwogICAgICB9CgogICAgICAuc3VmZml4IDo6c2xvdHRlZCgqKSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtc3ViaGVhZDsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZmxleC1ub25lOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1zdWZmaXg7CiAgICAgIH0KCiAgICAgIC8qIEZpcmVmb3ggc2V0cyBhIG1pbi13aWR0aCBvbiB0aGUgaW5wdXQsIHdoaWNoIGNhbiBjYXVzZSBsYXlvdXQgaXNzdWVzICovCiAgICAgIC5pbnB1dC1jb250ZW50IDo6c2xvdHRlZChpbnB1dCkgewogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLmlucHV0LWNvbnRlbnQgOjpzbG90dGVkKHRleHRhcmVhKSB7CiAgICAgICAgcmVzaXplOiBub25lOwogICAgICB9CgogICAgICAuYWRkLW9uLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmFkZC1vbi1jb250ZW50LmlzLWludmFsaWQgOjpzbG90dGVkKCopIHsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWludmFsaWQtY29sb3IsIHZhcigtLWVycm9yLWNvbG9yKSk7CiAgICAgIH0KCiAgICAgIC5hZGQtb24tY29udGVudC5pcy1oaWdobGlnaHRlZCA6OnNsb3R0ZWQoKikgewogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1pbnB1dC1jb250YWluZXItZm9jdXMtY29sb3IsIHZhcigtLXByaW1hcnktY29sb3IpKTsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJmbG9hdGVkLWxhYmVsLXBsYWNlaG9sZGVyIiBhcmlhLWhpZGRlbj0idHJ1ZSIgaGlkZGVuPSJbW25vTGFiZWxGbG9hdF1dIj4mbmJzcDs8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgPHNwYW4gY2xhc3M9InByZWZpeCI+PHNsb3QgbmFtZT0icHJlZml4Ij48L3Nsb3Q+PC9zcGFuPgoKICAgICAgPGRpdiBjbGFzcyQ9IltbX2NvbXB1dGVJbnB1dENvbnRlbnRDbGFzcyhub0xhYmVsRmxvYXQsYWx3YXlzRmxvYXRMYWJlbCxmb2N1c2VkLGludmFsaWQsX2lucHV0SGFzQ29udGVudCldXSIgaWQ9ImxhYmVsQW5kSW5wdXRDb250YWluZXIiPgogICAgICAgIDxzbG90IG5hbWU9ImxhYmVsIj48L3Nsb3Q+CiAgICAgICAgPHNsb3QgbmFtZT0iaW5wdXQiPjwvc2xvdD4KICAgICAgPC9kaXY+CgogICAgICA8c3BhbiBjbGFzcz0ic3VmZml4Ij48c2xvdCBuYW1lPSJzdWZmaXgiPjwvc2xvdD48L3NwYW4+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzJD0iW1tfY29tcHV0ZVVuZGVybGluZUNsYXNzKGZvY3VzZWQsaW52YWxpZCldXSI+CiAgICAgIDxkaXYgY2xhc3M9InVuZm9jdXNlZC1saW5lIj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZm9jdXNlZC1saW5lIj48L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3MkPSJbW19jb21wdXRlQWRkT25Db250ZW50Q2xhc3MoZm9jdXNlZCxpbnZhbGlkKV1dIj4KICAgICAgPHNsb3QgbmFtZT0iYWRkLW9uIj48L3Nsb3Q+CiAgICA8L2Rpdj4KYCxpczoicGFwZXItaW5wdXQtY29udGFpbmVyIixwcm9wZXJ0aWVzOntub0xhYmVsRmxvYXQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sYWx3YXlzRmxvYXRMYWJlbDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxhdHRyRm9yVmFsdWU6e3R5cGU6U3RyaW5nLHZhbHVlOiJiaW5kLXZhbHVlIn0sYXV0b1ZhbGlkYXRlOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGludmFsaWQ6e29ic2VydmVyOiJfaW52YWxpZENoYW5nZWQiLHR5cGU6Qm9vbGVhbix2YWx1ZTohMX0sZm9jdXNlZDp7cmVhZE9ubHk6ITAsdHlwZTpCb29sZWFuLHZhbHVlOiExLG5vdGlmeTohMH0sX2FkZG9uczp7dHlwZTpBcnJheX0sX2lucHV0SGFzQ29udGVudDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxfaW5wdXRTZWxlY3Rvcjp7dHlwZTpTdHJpbmcsdmFsdWU6ImlucHV0LGlyb24taW5wdXQsdGV4dGFyZWEsLnBhcGVyLWlucHV0LWlucHV0In0sX2JvdW5kT25Gb2N1czp7dHlwZTpGdW5jdGlvbix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vbkZvY3VzLmJpbmQodGhpcyl9fSxfYm91bmRPbkJsdXI6e3R5cGU6RnVuY3Rpb24sdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb25CbHVyLmJpbmQodGhpcyl9fSxfYm91bmRPbklucHV0Ont0eXBlOkZ1bmN0aW9uLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29uSW5wdXQuYmluZCh0aGlzKX19LF9ib3VuZFZhbHVlQ2hhbmdlZDp7dHlwZTpGdW5jdGlvbix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vblZhbHVlQ2hhbmdlZC5iaW5kKHRoaXMpfX19LGxpc3RlbmVyczp7ImFkZG9uLWF0dGFjaGVkIjoiX29uQWRkb25BdHRhY2hlZCIsImlyb24taW5wdXQtdmFsaWRhdGUiOiJfb25Jcm9uSW5wdXRWYWxpZGF0ZSJ9LGdldCBfdmFsdWVDaGFuZ2VkRXZlbnQoKXtyZXR1cm4gdGhpcy5hdHRyRm9yVmFsdWUrIi1jaGFuZ2VkIn0sZ2V0IF9wcm9wZXJ0eUZvclZhbHVlKCl7cmV0dXJuIHN0KHRoaXMuYXR0ckZvclZhbHVlKX0sZ2V0IF9pbnB1dEVsZW1lbnQoKXtyZXR1cm4gZXIodGhpcykucXVlcnlTZWxlY3Rvcih0aGlzLl9pbnB1dFNlbGVjdG9yKX0sZ2V0IF9pbnB1dEVsZW1lbnRWYWx1ZSgpe3JldHVybiB0aGlzLl9pbnB1dEVsZW1lbnRbdGhpcy5fcHJvcGVydHlGb3JWYWx1ZV18fHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZX0scmVhZHk6ZnVuY3Rpb24oKXt0aGlzLl9faXNGaXJzdFZhbHVlVXBkYXRlPSEwLHRoaXMuX2FkZG9uc3x8KHRoaXMuX2FkZG9ucz1bXSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5fYm91bmRPbkZvY3VzLCEwKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLHRoaXMuX2JvdW5kT25CbHVyLCEwKX0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLmF0dHJGb3JWYWx1ZT90aGlzLl9pbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLl92YWx1ZUNoYW5nZWRFdmVudCx0aGlzLl9ib3VuZFZhbHVlQ2hhbmdlZCk6dGhpcy5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsdGhpcy5fb25JbnB1dCksdGhpcy5faW5wdXRFbGVtZW50VmFsdWUmJiIiIT10aGlzLl9pbnB1dEVsZW1lbnRWYWx1ZT90aGlzLl9oYW5kbGVWYWx1ZUFuZEF1dG9WYWxpZGF0ZSh0aGlzLl9pbnB1dEVsZW1lbnQpOnRoaXMuX2hhbmRsZVZhbHVlKHRoaXMuX2lucHV0RWxlbWVudCl9LF9vbkFkZG9uQXR0YWNoZWQ6ZnVuY3Rpb24odCl7dGhpcy5fYWRkb25zfHwodGhpcy5fYWRkb25zPVtdKTt2YXIgZT10LnRhcmdldDstMT09PXRoaXMuX2FkZG9ucy5pbmRleE9mKGUpJiYodGhpcy5fYWRkb25zLnB1c2goZSksdGhpcy5pc0F0dGFjaGVkJiZ0aGlzLl9oYW5kbGVWYWx1ZSh0aGlzLl9pbnB1dEVsZW1lbnQpKX0sX29uRm9jdXM6ZnVuY3Rpb24oKXt0aGlzLl9zZXRGb2N1c2VkKCEwKX0sX29uQmx1cjpmdW5jdGlvbigpe3RoaXMuX3NldEZvY3VzZWQoITEpLHRoaXMuX2hhbmRsZVZhbHVlQW5kQXV0b1ZhbGlkYXRlKHRoaXMuX2lucHV0RWxlbWVudCl9LF9vbklucHV0OmZ1bmN0aW9uKHQpe3RoaXMuX2hhbmRsZVZhbHVlQW5kQXV0b1ZhbGlkYXRlKHQudGFyZ2V0KX0sX29uVmFsdWVDaGFuZ2VkOmZ1bmN0aW9uKHQpe3ZhciBlPXQudGFyZ2V0O3RoaXMuX19pc0ZpcnN0VmFsdWVVcGRhdGUmJih0aGlzLl9faXNGaXJzdFZhbHVlVXBkYXRlPSExLHZvaWQgMD09PWUudmFsdWV8fCIiPT09ZS52YWx1ZSl8fHRoaXMuX2hhbmRsZVZhbHVlQW5kQXV0b1ZhbGlkYXRlKHQudGFyZ2V0KX0sX2hhbmRsZVZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2lucHV0RWxlbWVudFZhbHVlO3RoaXMuX2lucHV0SGFzQ29udGVudD0hKCFlJiYwIT09ZSYmKCJudW1iZXIiIT09dC50eXBlfHx0LmNoZWNrVmFsaWRpdHkoKSkpLHRoaXMudXBkYXRlQWRkb25zKHtpbnB1dEVsZW1lbnQ6dCx2YWx1ZTplLGludmFsaWQ6dGhpcy5pbnZhbGlkfSl9LF9oYW5kbGVWYWx1ZUFuZEF1dG9WYWxpZGF0ZTpmdW5jdGlvbih0KXt2YXIgZTt0aGlzLmF1dG9WYWxpZGF0ZSYmdCYmKGU9dC52YWxpZGF0ZT90LnZhbGlkYXRlKHRoaXMuX2lucHV0RWxlbWVudFZhbHVlKTp0LmNoZWNrVmFsaWRpdHkoKSx0aGlzLmludmFsaWQ9IWUpO3RoaXMuX2hhbmRsZVZhbHVlKHQpfSxfb25Jcm9uSW5wdXRWYWxpZGF0ZTpmdW5jdGlvbih0KXt0aGlzLmludmFsaWQ9dGhpcy5faW5wdXRFbGVtZW50LmludmFsaWR9LF9pbnZhbGlkQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuX2FkZG9ucyYmdGhpcy51cGRhdGVBZGRvbnMoe2ludmFsaWQ6dGhpcy5pbnZhbGlkfSl9LHVwZGF0ZUFkZG9uczpmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0wO2U9dGhpcy5fYWRkb25zW25dO24rKyllLnVwZGF0ZSh0KX0sX2NvbXB1dGVJbnB1dENvbnRlbnRDbGFzczpmdW5jdGlvbih0LGUsbixpLHIpe3ZhciBvPSJpbnB1dC1jb250ZW50IjtpZih0KXImJihvKz0iIGxhYmVsLWlzLWhpZGRlbiIpLGkmJihvKz0iIGlzLWludmFsaWQiKTtlbHNle3ZhciBhPXRoaXMucXVlcnlTZWxlY3RvcigibGFiZWwiKTtlfHxyPyhvKz0iIGxhYmVsLWlzLWZsb2F0aW5nIix0aGlzLiQubGFiZWxBbmRJbnB1dENvbnRhaW5lci5zdHlsZS5wb3NpdGlvbj0ic3RhdGljIixpP28rPSIgaXMtaW52YWxpZCI6biYmKG8rPSIgbGFiZWwtaXMtaGlnaGxpZ2h0ZWQiKSk6KGEmJih0aGlzLiQubGFiZWxBbmRJbnB1dENvbnRhaW5lci5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKSxpJiYobys9IiBpcy1pbnZhbGlkIikpfXJldHVybiBuJiYobys9IiBmb2N1c2VkIiksb30sX2NvbXB1dGVVbmRlcmxpbmVDbGFzczpmdW5jdGlvbih0LGUpe3ZhciBuPSJ1bmRlcmxpbmUiO3JldHVybiBlP24rPSIgaXMtaW52YWxpZCI6dCYmKG4rPSIgaXMtaGlnaGxpZ2h0ZWQiKSxufSxfY29tcHV0ZUFkZE9uQ29udGVudENsYXNzOmZ1bmN0aW9uKHQsZSl7dmFyIG49ImFkZC1vbi1jb250ZW50IjtyZXR1cm4gZT9uKz0iIGlzLWludmFsaWQiOnQmJihuKz0iIGlzLWhpZ2hsaWdodGVkIiksbn19KSwKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmpyKHtfdGVtcGxhdGU6eGVgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwoKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWludmFsaWQtY29sb3IsIHZhcigtLWVycm9yLWNvbG9yKSk7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY2FwdGlvbjsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1lcnJvcjsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDowOwogICAgICAgIHJpZ2h0OjA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtpbnZhbGlkXSkgewogICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7CiAgICAgIH0KCiAgICAgICNhMTF5V3JhcHBlciB7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICB9CgogICAgICA6aG9zdChbaW52YWxpZF0pICNhMTF5V3JhcHBlciB7CiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8IS0tCiAgICBJZiB0aGUgcGFwZXItaW5wdXQtZXJyb3IgZWxlbWVudCBpcyBkaXJlY3RseSByZWZlcmVuY2VkIGJ5IGFuCiAgICBcYGFyaWEtZGVzY3JpYmVkYnlcYCBhdHRyaWJ1dGUsIHN1Y2ggYXMgd2hlbiB1c2VkIGFzIGEgcGFwZXItaW5wdXQgYWRkLW9uLAogICAgdGhlbiBhcHBseWluZyBcYHZpc2liaWxpdHk6IGhpZGRlbjtcYCB0byB0aGUgcGFwZXItaW5wdXQtZXJyb3IgZWxlbWVudCBpdHNlbGYKICAgIGRvZXMgbm90IGhpZGUgdGhlIGVycm9yLgoKICAgIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWU6CiAgICBodHRwczovL3d3dy53My5vcmcvVFIvYWNjbmFtZS0xLjEvI21hcHBpbmdfYWRkaXRpb25hbF9uZF9kZXNjcmlwdGlvbgogICAgLS0+CiAgICA8ZGl2IGlkPSJhMTF5V3JhcHBlciI+CiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIDwvZGl2PgpgLGlzOiJwYXBlci1pbnB1dC1lcnJvciIsYmVoYXZpb3JzOltYYV0scHJvcGVydGllczp7aW52YWxpZDp7cmVhZE9ubHk6ITAscmVmbGVjdFRvQXR0cmlidXRlOiEwLHR5cGU6Qm9vbGVhbn19LHVwZGF0ZTpmdW5jdGlvbih0KXt0aGlzLl9zZXRJbnZhbGlkKHQuaW52YWxpZCl9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBLYT17TmV4dExhYmVsSUQ6MSxOZXh0QWRkb25JRDoxLE5leHRJbnB1dElEOjF9LFphPXtwcm9wZXJ0aWVzOntsYWJlbDp7dHlwZTpTdHJpbmd9LHZhbHVlOntub3RpZnk6ITAsdHlwZTpTdHJpbmd9LGRpc2FibGVkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGludmFsaWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxub3RpZnk6ITB9LGFsbG93ZWRQYXR0ZXJuOnt0eXBlOlN0cmluZ30sdHlwZTp7dHlwZTpTdHJpbmd9LGxpc3Q6e3R5cGU6U3RyaW5nfSxwYXR0ZXJuOnt0eXBlOlN0cmluZ30scmVxdWlyZWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sZXJyb3JNZXNzYWdlOnt0eXBlOlN0cmluZ30sY2hhckNvdW50ZXI6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sbm9MYWJlbEZsb2F0Ont0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGFsd2F5c0Zsb2F0TGFiZWw6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sYXV0b1ZhbGlkYXRlOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LHZhbGlkYXRvcjp7dHlwZTpTdHJpbmd9LGF1dG9jb21wbGV0ZTp7dHlwZTpTdHJpbmcsdmFsdWU6Im9mZiJ9LGF1dG9mb2N1czp7dHlwZTpCb29sZWFuLG9ic2VydmVyOiJfYXV0b2ZvY3VzQ2hhbmdlZCJ9LGlucHV0bW9kZTp7dHlwZTpTdHJpbmd9LG1pbmxlbmd0aDp7dHlwZTpOdW1iZXJ9LG1heGxlbmd0aDp7dHlwZTpOdW1iZXJ9LG1pbjp7dHlwZTpTdHJpbmd9LG1heDp7dHlwZTpTdHJpbmd9LHN0ZXA6e3R5cGU6U3RyaW5nfSxuYW1lOnt0eXBlOlN0cmluZ30scGxhY2Vob2xkZXI6e3R5cGU6U3RyaW5nLHZhbHVlOiIifSxyZWFkb25seTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxzaXplOnt0eXBlOk51bWJlcn0sYXV0b2NhcGl0YWxpemU6e3R5cGU6U3RyaW5nLHZhbHVlOiJub25lIn0sYXV0b2NvcnJlY3Q6e3R5cGU6U3RyaW5nLHZhbHVlOiJvZmYifSxhdXRvc2F2ZTp7dHlwZTpTdHJpbmd9LHJlc3VsdHM6e3R5cGU6TnVtYmVyfSxhY2NlcHQ6e3R5cGU6U3RyaW5nfSxtdWx0aXBsZTp7dHlwZTpCb29sZWFufSxfYXJpYURlc2NyaWJlZEJ5Ont0eXBlOlN0cmluZyx2YWx1ZToiIn0sX2FyaWFMYWJlbGxlZEJ5Ont0eXBlOlN0cmluZyx2YWx1ZToiIn0sX2lucHV0SWQ6e3R5cGU6U3RyaW5nLHZhbHVlOiIifX0sbGlzdGVuZXJzOnsiYWRkb24tYXR0YWNoZWQiOiJfb25BZGRvbkF0dGFjaGVkIn0sa2V5QmluZGluZ3M6eyJzaGlmdCt0YWI6a2V5ZG93biI6Il9vblNoaWZ0VGFiRG93biJ9LGhvc3RBdHRyaWJ1dGVzOnt0YWJpbmRleDowfSxnZXQgaW5wdXRFbGVtZW50KCl7cmV0dXJuIHRoaXMuJHx8KHRoaXMuJD17fSksdGhpcy4kLmlucHV0fHwodGhpcy5fZ2VuZXJhdGVJbnB1dElkKCksdGhpcy4kLmlucHV0PXRoaXMuJCQoIiMiK3RoaXMuX2lucHV0SWQpKSx0aGlzLiQuaW5wdXR9LGdldCBfZm9jdXNhYmxlRWxlbWVudCgpe3JldHVybiB0aGlzLmlucHV0RWxlbWVudH0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuX3R5cGVzVGhhdEhhdmVUZXh0PVsiZGF0ZSIsImRhdGV0aW1lIiwiZGF0ZXRpbWUtbG9jYWwiLCJtb250aCIsInRpbWUiLCJ3ZWVrIiwiZmlsZSJdfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZUFyaWFMYWJlbGxlZEJ5KCksIXdlJiZ0aGlzLmlucHV0RWxlbWVudCYmLTEhPT10aGlzLl90eXBlc1RoYXRIYXZlVGV4dC5pbmRleE9mKHRoaXMuaW5wdXRFbGVtZW50LnR5cGUpJiYodGhpcy5hbHdheXNGbG9hdExhYmVsPSEwKX0sX2FwcGVuZFN0cmluZ1dpdGhTcGFjZTpmdW5jdGlvbih0LGUpe3JldHVybiB0PXQ/dCsiICIrZTplfSxfb25BZGRvbkF0dGFjaGVkOmZ1bmN0aW9uKHQpe3ZhciBlPWVyKHQpLnJvb3RUYXJnZXQ7aWYoZS5pZCl0aGlzLl9hcmlhRGVzY3JpYmVkQnk9dGhpcy5fYXBwZW5kU3RyaW5nV2l0aFNwYWNlKHRoaXMuX2FyaWFEZXNjcmliZWRCeSxlLmlkKTtlbHNle3ZhciBuPSJwYXBlci1pbnB1dC1hZGQtb24tIitLYS5OZXh0QWRkb25JRCsrO2UuaWQ9bix0aGlzLl9hcmlhRGVzY3JpYmVkQnk9dGhpcy5fYXBwZW5kU3RyaW5nV2l0aFNwYWNlKHRoaXMuX2FyaWFEZXNjcmliZWRCeSxuKX19LHZhbGlkYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXRFbGVtZW50LnZhbGlkYXRlKCl9LF9mb2N1c0JsdXJIYW5kbGVyOmZ1bmN0aW9uKHQpe3JhLl9mb2N1c0JsdXJIYW5kbGVyLmNhbGwodGhpcyx0KSx0aGlzLmZvY3VzZWQmJiF0aGlzLl9zaGlmdFRhYlByZXNzZWQmJnRoaXMuX2ZvY3VzYWJsZUVsZW1lbnQmJnRoaXMuX2ZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoKX0sX29uU2hpZnRUYWJEb3duOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ2V0QXR0cmlidXRlKCJ0YWJpbmRleCIpO3RoaXMuX3NoaWZ0VGFiUHJlc3NlZD0hMCx0aGlzLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCItMSIpLHRoaXMuYXN5bmMoKGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IixlKSx0aGlzLl9zaGlmdFRhYlByZXNzZWQ9ITF9KSwxKX0sX2hhbmRsZUF1dG9WYWxpZGF0ZTpmdW5jdGlvbigpe3RoaXMuYXV0b1ZhbGlkYXRlJiZ0aGlzLnZhbGlkYXRlKCl9LHVwZGF0ZVZhbHVlQW5kUHJlc2VydmVDYXJldDpmdW5jdGlvbih0KXt0cnl7dmFyIGU9dGhpcy5pbnB1dEVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7dGhpcy52YWx1ZT10LHRoaXMuaW5wdXRFbGVtZW50LnNlbGVjdGlvblN0YXJ0PWUsdGhpcy5pbnB1dEVsZW1lbnQuc2VsZWN0aW9uRW5kPWV9Y2F0Y2goZSl7dGhpcy52YWx1ZT10fX0sX2NvbXB1dGVBbHdheXNGbG9hdExhYmVsOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fHR9LF91cGRhdGVBcmlhTGFiZWxsZWRCeTpmdW5jdGlvbigpe3ZhciB0LGU9ZXIodGhpcy5yb290KS5xdWVyeVNlbGVjdG9yKCJsYWJlbCIpO2U/KGUuaWQ/dD1lLmlkOih0PSJwYXBlci1pbnB1dC1sYWJlbC0iK0thLk5leHRMYWJlbElEKyssZS5pZD10KSx0aGlzLl9hcmlhTGFiZWxsZWRCeT10KTp0aGlzLl9hcmlhTGFiZWxsZWRCeT0iIn0sX2dlbmVyYXRlSW5wdXRJZDpmdW5jdGlvbigpe3RoaXMuX2lucHV0SWQmJiIiIT09dGhpcy5faW5wdXRJZHx8KHRoaXMuX2lucHV0SWQ9ImlucHV0LSIrS2EuTmV4dElucHV0SUQrKyl9LF9vbkNoYW5nZTpmdW5jdGlvbih0KXt0aGlzLnNoYWRvd1Jvb3QmJnRoaXMuZmlyZSh0LnR5cGUse3NvdXJjZUV2ZW50OnR9LHtub2RlOnRoaXMsYnViYmxlczp0LmJ1YmJsZXMsY2FuY2VsYWJsZTp0LmNhbmNlbGFibGV9KX0sX2F1dG9mb2N1c0NoYW5nZWQ6ZnVuY3Rpb24oKXtpZih0aGlzLmF1dG9mb2N1cyYmdGhpcy5fZm9jdXNhYmxlRWxlbWVudCl7dmFyIHQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDt0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJnQhPT1kb2N1bWVudC5ib2R5JiZ0IT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHx0aGlzLl9mb2N1c2FibGVFbGVtZW50LmZvY3VzKCl9fX0sSmE9W3JhLFhvLFphXTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmpyKHtpczoicGFwZXItaW5wdXQiLF90ZW1wbGF0ZTp4ZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICA6aG9zdChbZm9jdXNlZF0pIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICA6aG9zdChbaGlkZGVuXSkgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgaW5wdXQgewogICAgICAgIC8qIEZpcmVmb3ggc2V0cyBhIG1pbi13aWR0aCBvbiB0aGUgaW5wdXQsIHdoaWNoIGNhbiBjYXVzZSBsYXlvdXQgaXNzdWVzICovCiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAvKiBJbiAxLngsIHRoZSA8aW5wdXQ+IGlzIGRpc3RyaWJ1dGVkIHRvIHBhcGVyLWlucHV0LWNvbnRhaW5lciwgd2hpY2ggc3R5bGVzIGl0LgogICAgICBJbiAyLnggdGhlIDxpcm9uLWlucHV0PiBpcyBkaXN0cmlidXRlZCB0byBwYXBlci1pbnB1dC1jb250YWluZXIsIHdoaWNoIHN0eWxlcwogICAgICBpdCwgYnV0IGluIG9yZGVyIGZvciB0aGlzIHRvIHdvcmsgY29ycmVjdGx5LCB3ZSBuZWVkIHRvIHJlc2V0IHNvbWUKICAgICAgb2YgdGhlIG5hdGl2ZSBpbnB1dCdzIHByb3BlcnRpZXMgdG8gaW5oZXJpdCAoZnJvbSB0aGUgaXJvbi1pbnB1dCkgKi8KICAgICAgaXJvbi1pbnB1dCA+IGlucHV0IHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItc2hhcmVkLWlucHV0LXN0eWxlOwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0OwogICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogaW5oZXJpdDsKICAgICAgICB3b3JkLXNwYWNpbmc6IGluaGVyaXQ7CiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgICAgICAgdGV4dC1zaGFkb3c6IGluaGVyaXQ7CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgICAgY3Vyc29yOiBpbmhlcml0OwogICAgICB9CgogICAgICBpbnB1dDpkaXNhYmxlZCB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWlucHV0LWRpc2FibGVkOwogICAgICB9CgogICAgICBpbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwKICAgICAgaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24gewogICAgICAgIEBhcHBseSAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dC13ZWJraXQtc3Bpbm5lcjsKICAgICAgfQoKICAgICAgaW5wdXQ6Oi13ZWJraXQtY2xlYXItYnV0dG9uIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQtd2Via2l0LWNsZWFyOwogICAgICB9CgogICAgICBpbnB1dDo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQtd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3I7CiAgICAgIH0KCiAgICAgIGlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWNvbG9yLCB2YXIoLS1zZWNvbmRhcnktdGV4dC1jb2xvcikpOwogICAgICB9CgogICAgICBpbnB1dDotbW96LXBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWNvbG9yLCB2YXIoLS1zZWNvbmRhcnktdGV4dC1jb2xvcikpOwogICAgICB9CgogICAgICBpbnB1dDo6LW1vei1wbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1jb2xvciwgdmFyKC0tc2Vjb25kYXJ5LXRleHQtY29sb3IpKTsKICAgICAgfQoKICAgICAgaW5wdXQ6Oi1tcy1jbGVhciB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLW1zLWNsZWFyOwogICAgICB9CgogICAgICBpbnB1dDo6LW1zLXJldmVhbCB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaW5wdXQtY29udGFpbmVyLW1zLXJldmVhbDsKICAgICAgfQoKICAgICAgaW5wdXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWNvbG9yLCB2YXIoLS1zZWNvbmRhcnktdGV4dC1jb2xvcikpOwogICAgICB9CgogICAgICBsYWJlbCB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPHBhcGVyLWlucHV0LWNvbnRhaW5lciBpZD0iY29udGFpbmVyIiBuby1sYWJlbC1mbG9hdD0iW1tub0xhYmVsRmxvYXRdXSIgYWx3YXlzLWZsb2F0LWxhYmVsPSJbW19jb21wdXRlQWx3YXlzRmxvYXRMYWJlbChhbHdheXNGbG9hdExhYmVsLHBsYWNlaG9sZGVyKV1dIiBhdXRvLXZhbGlkYXRlJD0iW1thdXRvVmFsaWRhdGVdXSIgZGlzYWJsZWQkPSJbW2Rpc2FibGVkXV0iIGludmFsaWQ9IltbaW52YWxpZF1dIj4KCiAgICAgIDxzbG90IG5hbWU9InByZWZpeCIgc2xvdD0icHJlZml4Ij48L3Nsb3Q+CgogICAgICA8bGFiZWwgaGlkZGVuJD0iW1shbGFiZWxdXSIgYXJpYS1oaWRkZW49InRydWUiIGZvciQ9IltbX2lucHV0SWRdXSIgc2xvdD0ibGFiZWwiPltbbGFiZWxdXTwvbGFiZWw+CgogICAgICA8IS0tIE5lZWQgdG8gYmluZCBtYXhsZW5ndGggc28gdGhhdCB0aGUgcGFwZXItaW5wdXQtY2hhci1jb3VudGVyIHdvcmtzIGNvcnJlY3RseSAtLT4KICAgICAgPGlyb24taW5wdXQgYmluZC12YWx1ZT0ie3t2YWx1ZX19IiBzbG90PSJpbnB1dCIgY2xhc3M9ImlucHV0LWVsZW1lbnQiIGlkJD0iW1tfaW5wdXRJZF1dIiBtYXhsZW5ndGgkPSJbW21heGxlbmd0aF1dIiBhbGxvd2VkLXBhdHRlcm49IltbYWxsb3dlZFBhdHRlcm5dXSIgaW52YWxpZD0ie3tpbnZhbGlkfX0iIHZhbGlkYXRvcj0iW1t2YWxpZGF0b3JdXSI+CiAgICAgICAgPGlucHV0IGFyaWEtbGFiZWxsZWRieSQ9IltbX2FyaWFMYWJlbGxlZEJ5XV0iIGFyaWEtZGVzY3JpYmVkYnkkPSJbW19hcmlhRGVzY3JpYmVkQnldXSIgZGlzYWJsZWQkPSJbW2Rpc2FibGVkXV0iIHRpdGxlJD0iW1t0aXRsZV1dIiB0eXBlJD0iW1t0eXBlXV0iIHBhdHRlcm4kPSJbW3BhdHRlcm5dXSIgcmVxdWlyZWQkPSJbW3JlcXVpcmVkXV0iIGF1dG9jb21wbGV0ZSQ9IltbYXV0b2NvbXBsZXRlXV0iIGF1dG9mb2N1cyQ9IltbYXV0b2ZvY3VzXV0iIGlucHV0bW9kZSQ9IltbaW5wdXRtb2RlXV0iIG1pbmxlbmd0aCQ9IltbbWlubGVuZ3RoXV0iIG1heGxlbmd0aCQ9IltbbWF4bGVuZ3RoXV0iIG1pbiQ9IltbbWluXV0iIG1heCQ9IltbbWF4XV0iIHN0ZXAkPSJbW3N0ZXBdXSIgbmFtZSQ9IltbbmFtZV1dIiBwbGFjZWhvbGRlciQ9IltbcGxhY2Vob2xkZXJdXSIgcmVhZG9ubHkkPSJbW3JlYWRvbmx5XV0iIGxpc3QkPSJbW2xpc3RdXSIgc2l6ZSQ9Iltbc2l6ZV1dIiBhdXRvY2FwaXRhbGl6ZSQ9IltbYXV0b2NhcGl0YWxpemVdXSIgYXV0b2NvcnJlY3QkPSJbW2F1dG9jb3JyZWN0XV0iIG9uLWNoYW5nZT0iX29uQ2hhbmdlIiB0YWJpbmRleCQ9IltbdGFiSW5kZXhdXSIgYXV0b3NhdmUkPSJbW2F1dG9zYXZlXV0iIHJlc3VsdHMkPSJbW3Jlc3VsdHNdXSIgYWNjZXB0JD0iW1thY2NlcHRdXSIgbXVsdGlwbGUkPSJbW211bHRpcGxlXV0iIHJvbGUkPSJbW2lucHV0Um9sZV1dIiBhcmlhLWhhc3BvcHVwJD0iW1tpbnB1dEFyaWFIYXNwb3B1cF1dIj4KICAgICAgPC9pcm9uLWlucHV0PgoKICAgICAgPHNsb3QgbmFtZT0ic3VmZml4IiBzbG90PSJzdWZmaXgiPjwvc2xvdD4KCiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tlcnJvck1lc3NhZ2VdXSI+CiAgICAgICAgPHBhcGVyLWlucHV0LWVycm9yIGFyaWEtbGl2ZT0iYXNzZXJ0aXZlIiBzbG90PSJhZGQtb24iPltbZXJyb3JNZXNzYWdlXV08L3BhcGVyLWlucHV0LWVycm9yPgogICAgICA8L3RlbXBsYXRlPgoKICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2NoYXJDb3VudGVyXV0iPgogICAgICAgIDxwYXBlci1pbnB1dC1jaGFyLWNvdW50ZXIgc2xvdD0iYWRkLW9uIj48L3BhcGVyLWlucHV0LWNoYXItY291bnRlcj4KICAgICAgPC90ZW1wbGF0ZT4KCiAgICA8L3BhcGVyLWlucHV0LWNvbnRhaW5lcj4KICBgLGJlaGF2aW9yczpbSmEsZ2FdLHByb3BlcnRpZXM6e3ZhbHVlOnt0eXBlOlN0cmluZ30saW5wdXRSb2xlOnt0eXBlOlN0cmluZyx2YWx1ZTp2b2lkIDB9LGlucHV0QXJpYUhhc3BvcHVwOnt0eXBlOlN0cmluZyx2YWx1ZTp2b2lkIDB9fSxnZXQgX2ZvY3VzYWJsZUVsZW1lbnQoKXtyZXR1cm4gdGhpcy5pbnB1dEVsZW1lbnQuX2lucHV0RWxlbWVudH0sbGlzdGVuZXJzOnsiaXJvbi1pbnB1dC1yZWFkeSI6Il9vbklyb25JbnB1dFJlYWR5In0sX29uSXJvbklucHV0UmVhZHk6ZnVuY3Rpb24oKXt0aGlzLiQubmF0aXZlSW5wdXR8fCh0aGlzLiQubmF0aXZlSW5wdXQ9dGhpcy4kJCgiaW5wdXQiKSksdGhpcy5pbnB1dEVsZW1lbnQmJi0xIT09dGhpcy5fdHlwZXNUaGF0SGF2ZVRleHQuaW5kZXhPZih0aGlzLiQubmF0aXZlSW5wdXQudHlwZSkmJih0aGlzLmFsd2F5c0Zsb2F0TGFiZWw9ITApLHRoaXMuaW5wdXRFbGVtZW50LmJpbmRWYWx1ZSYmdGhpcy4kLmNvbnRhaW5lci5faGFuZGxlVmFsdWVBbmRBdXRvVmFsaWRhdGUodGhpcy5pbnB1dEVsZW1lbnQpfX0pLAovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KanIoe190ZW1wbGF0ZTp4ZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgfQoKICAgICAgI2NvbnRlbnRXcmFwcGVyIDo6c2xvdHRlZCgqKSB7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgIH0KCiAgICAgICNjb250ZW50V3JhcHBlci5hbmltYXRpbmcgOjpzbG90dGVkKCopIHsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgaWQ9ImNvbnRlbnRXcmFwcGVyIj4KICAgICAgPHNsb3QgaWQ9ImNvbnRlbnQiIG5hbWU9ImRyb3Bkb3duLWNvbnRlbnQiPjwvc2xvdD4KICAgIDwvZGl2PgpgLGlzOiJpcm9uLWRyb3Bkb3duIixiZWhhdmlvcnM6W3JhLFhvLFdhLFRhXSxwcm9wZXJ0aWVzOntob3Jpem9udGFsQWxpZ246e3R5cGU6U3RyaW5nLHZhbHVlOiJsZWZ0IixyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9LHZlcnRpY2FsQWxpZ246e3R5cGU6U3RyaW5nLHZhbHVlOiJ0b3AiLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0sb3BlbkFuaW1hdGlvbkNvbmZpZzp7dHlwZTpPYmplY3R9LGNsb3NlQW5pbWF0aW9uQ29uZmlnOnt0eXBlOk9iamVjdH0sZm9jdXNUYXJnZXQ6e3R5cGU6T2JqZWN0fSxub0FuaW1hdGlvbnM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sYWxsb3dPdXRzaWRlU2Nyb2xsOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEsb2JzZXJ2ZXI6Il9hbGxvd091dHNpZGVTY3JvbGxDaGFuZ2VkIn19LGxpc3RlbmVyczp7Im5lb24tYW5pbWF0aW9uLWZpbmlzaCI6Il9vbk5lb25BbmltYXRpb25GaW5pc2gifSxvYnNlcnZlcnM6WyJfdXBkYXRlT3ZlcmxheVBvc2l0aW9uKHBvc2l0aW9uVGFyZ2V0LCB2ZXJ0aWNhbEFsaWduLCBob3Jpem9udGFsQWxpZ24sIHZlcnRpY2FsT2Zmc2V0LCBob3Jpem9udGFsT2Zmc2V0KSJdLGdldCBjb250YWluZWRFbGVtZW50KCl7Zm9yKHZhciB0PWVyKHRoaXMuJC5jb250ZW50KS5nZXREaXN0cmlidXRlZE5vZGVzKCksZT0wLG49dC5sZW5ndGg7ZTxuO2UrKylpZih0W2VdLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUpcmV0dXJuIHRbZV19LHJlYWR5OmZ1bmN0aW9uKCl7dGhpcy5zY3JvbGxBY3Rpb258fCh0aGlzLnNjcm9sbEFjdGlvbj10aGlzLmFsbG93T3V0c2lkZVNjcm9sbD8icmVmaXQiOiJsb2NrIiksdGhpcy5fcmVhZGllZD0hMH0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLnNpemluZ1RhcmdldCYmdGhpcy5zaXppbmdUYXJnZXQhPT10aGlzfHwodGhpcy5zaXppbmdUYXJnZXQ9dGhpcy5jb250YWluZWRFbGVtZW50fHx0aGlzKX0sZGV0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLmNhbmNlbEFuaW1hdGlvbigpfSxfb3BlbmVkQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMub3BlbmVkJiZ0aGlzLmRpc2FibGVkP3RoaXMuY2FuY2VsKCk6KHRoaXMuY2FuY2VsQW5pbWF0aW9uKCksdGhpcy5fdXBkYXRlQW5pbWF0aW9uQ29uZmlnKCksamEuX29wZW5lZENoYW5nZWQuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0sX3JlbmRlck9wZW5lZDpmdW5jdGlvbigpeyF0aGlzLm5vQW5pbWF0aW9ucyYmdGhpcy5hbmltYXRpb25Db25maWcub3Blbj8odGhpcy4kLmNvbnRlbnRXcmFwcGVyLmNsYXNzTGlzdC5hZGQoImFuaW1hdGluZyIpLHRoaXMucGxheUFuaW1hdGlvbigib3BlbiIpKTpqYS5fcmVuZGVyT3BlbmVkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sX3JlbmRlckNsb3NlZDpmdW5jdGlvbigpeyF0aGlzLm5vQW5pbWF0aW9ucyYmdGhpcy5hbmltYXRpb25Db25maWcuY2xvc2U/KHRoaXMuJC5jb250ZW50V3JhcHBlci5jbGFzc0xpc3QuYWRkKCJhbmltYXRpbmciKSx0aGlzLnBsYXlBbmltYXRpb24oImNsb3NlIikpOmphLl9yZW5kZXJDbG9zZWQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxfb25OZW9uQW5pbWF0aW9uRmluaXNoOmZ1bmN0aW9uKCl7dGhpcy4kLmNvbnRlbnRXcmFwcGVyLmNsYXNzTGlzdC5yZW1vdmUoImFuaW1hdGluZyIpLHRoaXMub3BlbmVkP3RoaXMuX2ZpbmlzaFJlbmRlck9wZW5lZCgpOnRoaXMuX2ZpbmlzaFJlbmRlckNsb3NlZCgpfSxfdXBkYXRlQW5pbWF0aW9uQ29uZmlnOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuY29udGFpbmVkRWxlbWVudCxlPVtdLmNvbmNhdCh0aGlzLm9wZW5BbmltYXRpb25Db25maWd8fFtdKS5jb25jYXQodGhpcy5jbG9zZUFuaW1hdGlvbkNvbmZpZ3x8W10pLG49MDtuPGUubGVuZ3RoO24rKyllW25dLm5vZGU9dDt0aGlzLmFuaW1hdGlvbkNvbmZpZz17b3Blbjp0aGlzLm9wZW5BbmltYXRpb25Db25maWcsY2xvc2U6dGhpcy5jbG9zZUFuaW1hdGlvbkNvbmZpZ319LF91cGRhdGVPdmVybGF5UG9zaXRpb246ZnVuY3Rpb24oKXt0aGlzLmlzQXR0YWNoZWQmJnRoaXMubm90aWZ5UmVzaXplKCl9LF9hbGxvd091dHNpZGVTY3JvbGxDaGFuZ2VkOmZ1bmN0aW9uKHQpe3RoaXMuX3JlYWRpZWQmJih0P3RoaXMuc2Nyb2xsQWN0aW9uJiYibG9jayIhPT10aGlzLnNjcm9sbEFjdGlvbnx8KHRoaXMuc2Nyb2xsQWN0aW9uPSJyZWZpdCIpOnRoaXMuc2Nyb2xsQWN0aW9uPSJsb2NrIil9LF9hcHBseUZvY3VzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5mb2N1c1RhcmdldHx8dGhpcy5jb250YWluZWRFbGVtZW50O3QmJnRoaXMub3BlbmVkJiYhdGhpcy5ub0F1dG9Gb2N1cz90LmZvY3VzKCk6amEuX2FwcGx5Rm9jdXMuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgUWE9e3Byb3BlcnRpZXM6e2FuaW1hdGlvblRpbWluZzp7dHlwZTpPYmplY3QsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm57ZHVyYXRpb246NTAwLGVhc2luZzoiY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSIsZmlsbDoiYm90aCJ9fX19LGlzTmVvbkFuaW1hdGlvbjohMCxjcmVhdGVkOmZ1bmN0aW9uKCl7ZG9jdW1lbnQuYm9keS5hbmltYXRlfHxjb25zb2xlLndhcm4oIk5vIHdlYiBhbmltYXRpb25zIGRldGVjdGVkLiBUaGlzIGVsZW1lbnQgd2lsbCBub3QgZnVuY3Rpb24gd2l0aG91dCBhIHdlYiBhbmltYXRpb25zIHBvbHlmaWxsLiIpfSx0aW1pbmdGcm9tQ29uZmlnOmZ1bmN0aW9uKHQpe2lmKHQudGltaW5nKWZvcih2YXIgZSBpbiB0LnRpbWluZyl0aGlzLmFuaW1hdGlvblRpbWluZ1tlXT10LnRpbWluZ1tlXTtyZXR1cm4gdGhpcy5hbmltYXRpb25UaW1pbmd9LHNldFByZWZpeGVkUHJvcGVydHk6ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaSxyPXt0cmFuc2Zvcm06WyJ3ZWJraXRUcmFuc2Zvcm0iXSx0cmFuc2Zvcm1PcmlnaW46WyJtb3pUcmFuc2Zvcm1PcmlnaW4iLCJ3ZWJraXRUcmFuc2Zvcm1PcmlnaW4iXX1bZV0sbz0wO2k9cltvXTtvKyspdC5zdHlsZVtpXT1uO3Quc3R5bGVbZV09bn0sY29tcGxldGU6ZnVuY3Rpb24odCl7fX07Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL2pyKHtpczoiZmFkZS1pbi1hbmltYXRpb24iLGJlaGF2aW9yczpbUWFdLGNvbmZpZ3VyZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZWZmZWN0PW5ldyBLZXlmcmFtZUVmZmVjdCh0Lm5vZGUsW3tvcGFjaXR5OiIwIn0se29wYWNpdHk6IjEifV0sdGhpcy50aW1pbmdGcm9tQ29uZmlnKHQpKSx0aGlzLl9lZmZlY3R9fSksCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpqcih7aXM6ImZhZGUtb3V0LWFuaW1hdGlvbiIsYmVoYXZpb3JzOltRYV0sY29uZmlndXJlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9lZmZlY3Q9bmV3IEtleWZyYW1lRWZmZWN0KHQubm9kZSxbe29wYWNpdHk6IjEifSx7b3BhY2l0eToiMCJ9XSx0aGlzLnRpbWluZ0Zyb21Db25maWcodCkpLHRoaXMuX2VmZmVjdH19KSwKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmpyKHtpczoicGFwZXItbWVudS1ncm93LWhlaWdodC1hbmltYXRpb24iLF90ZW1wbGF0ZTpudWxsLGJlaGF2aW9yczpbUWFdLGNvbmZpZ3VyZTpmdW5jdGlvbih0KXt2YXIgZT10Lm5vZGUsbj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtyZXR1cm4gdGhpcy5fZWZmZWN0PW5ldyBLZXlmcmFtZUVmZmVjdChlLFt7aGVpZ2h0Om4vMisicHgifSx7aGVpZ2h0Om4rInB4In1dLHRoaXMudGltaW5nRnJvbUNvbmZpZyh0KSksdGhpcy5fZWZmZWN0fX0pLGpyKHtpczoicGFwZXItbWVudS1ncm93LXdpZHRoLWFuaW1hdGlvbiIsX3RlbXBsYXRlOm51bGwsYmVoYXZpb3JzOltRYV0sY29uZmlndXJlOmZ1bmN0aW9uKHQpe3ZhciBlPXQubm9kZSxuPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7cmV0dXJuIHRoaXMuX2VmZmVjdD1uZXcgS2V5ZnJhbWVFZmZlY3QoZSxbe3dpZHRoOm4vMisicHgifSx7d2lkdGg6bisicHgifV0sdGhpcy50aW1pbmdGcm9tQ29uZmlnKHQpKSx0aGlzLl9lZmZlY3R9fSksanIoe2lzOiJwYXBlci1tZW51LXNocmluay13aWR0aC1hbmltYXRpb24iLF90ZW1wbGF0ZTpudWxsLGJlaGF2aW9yczpbUWFdLGNvbmZpZ3VyZTpmdW5jdGlvbih0KXt2YXIgZT10Lm5vZGUsbj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO3JldHVybiB0aGlzLl9lZmZlY3Q9bmV3IEtleWZyYW1lRWZmZWN0KGUsW3t3aWR0aDpuKyJweCJ9LHt3aWR0aDpuLW4vMjArInB4In1dLHRoaXMudGltaW5nRnJvbUNvbmZpZyh0KSksdGhpcy5fZWZmZWN0fX0pLGpyKHtpczoicGFwZXItbWVudS1zaHJpbmstaGVpZ2h0LWFuaW1hdGlvbiIsX3RlbXBsYXRlOm51bGwsYmVoYXZpb3JzOltRYV0sY29uZmlndXJlOmZ1bmN0aW9uKHQpe3ZhciBlPXQubm9kZSxuPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O3JldHVybiB0aGlzLnNldFByZWZpeGVkUHJvcGVydHkoZSwidHJhbnNmb3JtT3JpZ2luIiwiMCAwIiksdGhpcy5fZWZmZWN0PW5ldyBLZXlmcmFtZUVmZmVjdChlLFt7aGVpZ2h0Om4rInB4Iix0cmFuc2Zvcm06InRyYW5zbGF0ZVkoMCkifSx7aGVpZ2h0Om4vMisicHgiLHRyYW5zZm9ybToidHJhbnNsYXRlWSgtMjBweCkifV0sdGhpcy50aW1pbmdGcm9tQ29uZmlnKHQpKSx0aGlzLl9lZmZlY3R9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwp2YXIgdHM9e0FOSU1BVElPTl9DVUJJQ19CRVpJRVI6ImN1YmljLWJlemllciguMywuOTUsLjUsMSkiLE1BWF9BTklNQVRJT05fVElNRV9NUzo0MDB9O2NvbnN0IGVzPWpyKHtfdGVtcGxhdGU6eGVgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBvdXRsaW5lOiBub25lOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1tZW51LWJ1dHRvbjsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgewogICAgICAgIGN1cnNvcjogYXV0bzsKICAgICAgICBjb2xvcjogdmFyKC0tZGlzYWJsZWQtdGV4dC1jb2xvcik7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLW1lbnUtYnV0dG9uLWRpc2FibGVkOwogICAgICB9CgogICAgICBpcm9uLWRyb3Bkb3duIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1tZW51LWJ1dHRvbi1kcm9wZG93bjsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLWNvbnRlbnQgewogICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tMmRwOwoKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLW1lbnUtYnV0dG9uLWRyb3Bkb3duLWJhY2tncm91bmQsIHZhcigtLXByaW1hcnktYmFja2dyb3VuZC1jb2xvcikpOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1tZW51LWJ1dHRvbi1jb250ZW50OwogICAgICB9CgogICAgICA6aG9zdChbdmVydGljYWwtYWxpZ249InRvcCJdKSAuZHJvcGRvd24tY29udGVudCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICBtYXJnaW4tdG9wOiAtMTBweDsKICAgICAgICB0b3A6IDEwcHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFt2ZXJ0aWNhbC1hbGlnbj0iYm90dG9tIl0pIC5kcm9wZG93bi1jb250ZW50IHsKICAgICAgICBib3R0b206IDEwcHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTEwcHg7CiAgICAgICAgbWFyZ2luLXRvcDogMjBweDsKICAgICAgfQoKICAgICAgI3RyaWdnZXIgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGlkPSJ0cmlnZ2VyIiBvbi10YXA9InRvZ2dsZSI+CiAgICAgIDxzbG90IG5hbWU9ImRyb3Bkb3duLXRyaWdnZXIiPjwvc2xvdD4KICAgIDwvZGl2PgoKICAgIDxpcm9uLWRyb3Bkb3duIGlkPSJkcm9wZG93biIgb3BlbmVkPSJ7e29wZW5lZH19IiBob3Jpem9udGFsLWFsaWduPSJbW2hvcml6b250YWxBbGlnbl1dIiB2ZXJ0aWNhbC1hbGlnbj0iW1t2ZXJ0aWNhbEFsaWduXV0iIGR5bmFtaWMtYWxpZ249IltbZHluYW1pY0FsaWduXV0iIGhvcml6b250YWwtb2Zmc2V0PSJbW2hvcml6b250YWxPZmZzZXRdXSIgdmVydGljYWwtb2Zmc2V0PSJbW3ZlcnRpY2FsT2Zmc2V0XV0iIG5vLW92ZXJsYXA9Iltbbm9PdmVybGFwXV0iIG9wZW4tYW5pbWF0aW9uLWNvbmZpZz0iW1tvcGVuQW5pbWF0aW9uQ29uZmlnXV0iIGNsb3NlLWFuaW1hdGlvbi1jb25maWc9IltbY2xvc2VBbmltYXRpb25Db25maWddXSIgbm8tYW5pbWF0aW9ucz0iW1tub0FuaW1hdGlvbnNdXSIgZm9jdXMtdGFyZ2V0PSJbW19kcm9wZG93bkNvbnRlbnRdXSIgYWxsb3ctb3V0c2lkZS1zY3JvbGw9IltbYWxsb3dPdXRzaWRlU2Nyb2xsXV0iIHJlc3RvcmUtZm9jdXMtb24tY2xvc2U9IltbcmVzdG9yZUZvY3VzT25DbG9zZV1dIiBvbi1pcm9uLW92ZXJsYXktY2FuY2VsZWQ9Il9fb25Jcm9uT3ZlcmxheUNhbmNlbGVkIiBleHBhbmQtc2l6aW5nLXRhcmdldC1mb3Itc2Nyb2xsYmFycz0iW1tleHBhbmRTaXppbmdUYXJnZXRGb3JTY3JvbGxiYXJzXV0iPgogICAgICA8ZGl2IHNsb3Q9ImRyb3Bkb3duLWNvbnRlbnQiIGNsYXNzPSJkcm9wZG93bi1jb250ZW50Ij4KICAgICAgICA8c2xvdCBpZD0iY29udGVudCIgbmFtZT0iZHJvcGRvd24tY29udGVudCI+PC9zbG90PgogICAgICA8L2Rpdj4KICAgIDwvaXJvbi1kcm9wZG93bj4KYCxpczoicGFwZXItbWVudS1idXR0b24iLGJlaGF2aW9yczpbWG8scmFdLHByb3BlcnRpZXM6e29wZW5lZDp7dHlwZTpCb29sZWFuLHZhbHVlOiExLG5vdGlmeTohMCxvYnNlcnZlcjoiX29wZW5lZENoYW5nZWQifSxob3Jpem9udGFsQWxpZ246e3R5cGU6U3RyaW5nLHZhbHVlOiJsZWZ0IixyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9LHZlcnRpY2FsQWxpZ246e3R5cGU6U3RyaW5nLHZhbHVlOiJ0b3AiLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0sZHluYW1pY0FsaWduOnt0eXBlOkJvb2xlYW59LGhvcml6b250YWxPZmZzZXQ6e3R5cGU6TnVtYmVyLHZhbHVlOjAsbm90aWZ5OiEwfSx2ZXJ0aWNhbE9mZnNldDp7dHlwZTpOdW1iZXIsdmFsdWU6MCxub3RpZnk6ITB9LG5vT3ZlcmxhcDp7dHlwZTpCb29sZWFufSxub0FuaW1hdGlvbnM6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0saWdub3JlU2VsZWN0Ont0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGNsb3NlT25BY3RpdmF0ZTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxvcGVuQW5pbWF0aW9uQ29uZmlnOnt0eXBlOk9iamVjdCx2YWx1ZTpmdW5jdGlvbigpe3JldHVyblt7bmFtZToiZmFkZS1pbi1hbmltYXRpb24iLHRpbWluZzp7ZGVsYXk6MTAwLGR1cmF0aW9uOjIwMH19LHtuYW1lOiJwYXBlci1tZW51LWdyb3ctd2lkdGgtYW5pbWF0aW9uIix0aW1pbmc6e2RlbGF5OjEwMCxkdXJhdGlvbjoxNTAsZWFzaW5nOnRzLkFOSU1BVElPTl9DVUJJQ19CRVpJRVJ9fSx7bmFtZToicGFwZXItbWVudS1ncm93LWhlaWdodC1hbmltYXRpb24iLHRpbWluZzp7ZGVsYXk6MTAwLGR1cmF0aW9uOjI3NSxlYXNpbmc6dHMuQU5JTUFUSU9OX0NVQklDX0JFWklFUn19XX19LGNsb3NlQW5pbWF0aW9uQ29uZmlnOnt0eXBlOk9iamVjdCx2YWx1ZTpmdW5jdGlvbigpe3JldHVyblt7bmFtZToiZmFkZS1vdXQtYW5pbWF0aW9uIix0aW1pbmc6e2R1cmF0aW9uOjE1MH19LHtuYW1lOiJwYXBlci1tZW51LXNocmluay13aWR0aC1hbmltYXRpb24iLHRpbWluZzp7ZGVsYXk6MTAwLGR1cmF0aW9uOjUwLGVhc2luZzp0cy5BTklNQVRJT05fQ1VCSUNfQkVaSUVSfX0se25hbWU6InBhcGVyLW1lbnUtc2hyaW5rLWhlaWdodC1hbmltYXRpb24iLHRpbWluZzp7ZHVyYXRpb246MjAwLGVhc2luZzoiZWFzZS1pbiJ9fV19fSxhbGxvd091dHNpZGVTY3JvbGw6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0scmVzdG9yZUZvY3VzT25DbG9zZTp7dHlwZTpCb29sZWFuLHZhbHVlOiEwfSxleHBhbmRTaXppbmdUYXJnZXRGb3JTY3JvbGxiYXJzOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LF9kcm9wZG93bkNvbnRlbnQ6e3R5cGU6T2JqZWN0fX0saG9zdEF0dHJpYnV0ZXM6e3JvbGU6Imdyb3VwIiwiYXJpYS1oYXNwb3B1cCI6InRydWUifSxsaXN0ZW5lcnM6eyJpcm9uLWFjdGl2YXRlIjoiX29uSXJvbkFjdGl2YXRlIiwiaXJvbi1zZWxlY3QiOiJfb25Jcm9uU2VsZWN0In0sZ2V0IGNvbnRlbnRFbGVtZW50KCl7Zm9yKHZhciB0PWVyKHRoaXMuJC5jb250ZW50KS5nZXREaXN0cmlidXRlZE5vZGVzKCksZT0wLG49dC5sZW5ndGg7ZTxuO2UrKylpZih0W2VdLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUpcmV0dXJuIHRbZV19LHRvZ2dsZTpmdW5jdGlvbigpe3RoaXMub3BlbmVkP3RoaXMuY2xvc2UoKTp0aGlzLm9wZW4oKX0sb3BlbjpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZWR8fHRoaXMuJC5kcm9wZG93bi5vcGVuKCl9LGNsb3NlOmZ1bmN0aW9uKCl7dGhpcy4kLmRyb3Bkb3duLmNsb3NlKCl9LF9vbklyb25TZWxlY3Q6ZnVuY3Rpb24odCl7dGhpcy5pZ25vcmVTZWxlY3R8fHRoaXMuY2xvc2UoKX0sX29uSXJvbkFjdGl2YXRlOmZ1bmN0aW9uKHQpe3RoaXMuY2xvc2VPbkFjdGl2YXRlJiZ0aGlzLmNsb3NlKCl9LF9vcGVuZWRDaGFuZ2VkOmZ1bmN0aW9uKHQsZSl7dD8odGhpcy5fZHJvcGRvd25Db250ZW50PXRoaXMuY29udGVudEVsZW1lbnQsdGhpcy5maXJlKCJwYXBlci1kcm9wZG93bi1vcGVuIikpOm51bGwhPWUmJnRoaXMuZmlyZSgicGFwZXItZHJvcGRvd24tY2xvc2UiKX0sX2Rpc2FibGVkQ2hhbmdlZDpmdW5jdGlvbih0KXtyYS5fZGlzYWJsZWRDaGFuZ2VkLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0JiZ0aGlzLm9wZW5lZCYmdGhpcy5jbG9zZSgpfSxfX29uSXJvbk92ZXJsYXlDYW5jZWxlZDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLiQudHJpZ2dlcjtlcih0LmRldGFpbCkucGF0aC5pbmRleE9mKGUpPi0xJiZ0LnByZXZlbnREZWZhdWx0KCl9fSk7T2JqZWN0LmtleXModHMpLmZvckVhY2goKGZ1bmN0aW9uKHQpe2VzW3RdPXRzW3RdfSkpOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTYgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgbnM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtucy5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTogbm9uZTsiKSxucy5pbm5lckhUTUw9Jzxpcm9uLWljb25zZXQtc3ZnIG5hbWU9InBhcGVyLWRyb3Bkb3duLW1lbnUiIHNpemU9IjI0Ij5cbjxzdmc+PGRlZnM+XG48ZyBpZD0iYXJyb3ctZHJvcC1kb3duIj48cGF0aCBkPSJNNyAxMGw1IDUgNS01eiI+PC9wYXRoPjwvZz5cbjwvZGVmcz48L3N2Zz5cbjwvaXJvbi1pY29uc2V0LXN2Zz4nLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobnMuY29udGVudCk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNiBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBpcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO2lzLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OiBub25lOyIpLGlzLmlubmVySFRNTD0nPGRvbS1tb2R1bGUgaWQ9InBhcGVyLWRyb3Bkb3duLW1lbnUtc2hhcmVkLXN0eWxlcyI+XG4gIDx0ZW1wbGF0ZT5cbiAgICA8c3R5bGU+XG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgIC8qIE5PVEUoY2RhdGEpOiBCb3RoIHZhbHVlcyBhcmUgbmVlZGVkLCBzaW5jZSBzb21lIHBob25lcyByZXF1aXJlIHRoZVxuICAgICAgICAgKiB2YWx1ZSB0byBiZSBgdHJhbnNwYXJlbnRgLlxuICAgICAgICAgKi9cbiAgICAgICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsMCwwLDApO1xuICAgICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgICAgIC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWlucHV0OiB7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBAYXBwbHkgLS1wYXBlci1kcm9wZG93bi1tZW51O1xuICAgICAgfVxuXG4gICAgICAvKiBwYXBlci1kcm9wZG93bi1tZW51IGFuZCBwYXBlci1kcm9wZG93bi1tZW51LWxpZ2h0IGJvdGggZGVsZWdhdGUgZm9jdXNcbiAgICAgICAqIHRvIG90aGVyIGludGVybmFsIGVsZW1lbnRzIHdoaWNoIG1hbmFnZSBmb2N1cyBzdHlsaW5nLiAqL1xuICAgICAgOmhvc3QoOmZvY3VzKSB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIDpob3N0KDpkaXIocnRsKSkge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgICAgICBAYXBwbHkoLS1wYXBlci1kcm9wZG93bi1tZW51KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoW2Rpc2FibGVkXSkge1xuICAgICAgICBAYXBwbHkgLS1wYXBlci1kcm9wZG93bi1tZW51LWRpc2FibGVkO1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbbm9pbmtdKSBwYXBlci1yaXBwbGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbbm8tbGFiZWwtZmxvYXRdKSBwYXBlci1yaXBwbGUge1xuICAgICAgICB0b3A6IDhweDtcbiAgICAgIH1cblxuICAgICAgcGFwZXItcmlwcGxlIHtcbiAgICAgICAgdG9wOiAxMnB4O1xuICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgIGJvdHRvbTogOHB4O1xuICAgICAgICByaWdodDogMHB4O1xuXG4gICAgICAgIEBhcHBseSAtLXBhcGVyLWRyb3Bkb3duLW1lbnUtcmlwcGxlO1xuICAgICAgfVxuXG4gICAgICBwYXBlci1tZW51LWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIEBhcHBseSAtLXBhcGVyLWRyb3Bkb3duLW1lbnUtYnV0dG9uO1xuICAgICAgfVxuXG4gICAgICBwYXBlci1pbnB1dCB7XG4gICAgICAgIEBhcHBseSAtLXBhcGVyLWRyb3Bkb3duLW1lbnUtaW5wdXQ7XG4gICAgICB9XG5cbiAgICAgIGlyb24taWNvbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1kaXNhYmxlZC10ZXh0LWNvbG9yKTtcblxuICAgICAgICBAYXBwbHkgLS1wYXBlci1kcm9wZG93bi1tZW51LWljb247XG4gICAgICB9XG4gICAgPC9zdHlsZT5cbiAgPC90ZW1wbGF0ZT5cbjwvZG9tLW1vZHVsZT4nLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoaXMuY29udGVudCk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBycz1jcihIVE1MRWxlbWVudCk7anIoe190ZW1wbGF0ZTp4ZWAKICAgIDxzdHlsZSBpbmNsdWRlPSJwYXBlci1kcm9wZG93bi1tZW51LXNoYXJlZC1zdHlsZXMiPjwvc3R5bGU+CgogICAgPHBhcGVyLW1lbnUtYnV0dG9uIGlkPSJtZW51QnV0dG9uIiB2ZXJ0aWNhbC1hbGlnbj0iW1t2ZXJ0aWNhbEFsaWduXV0iIGhvcml6b250YWwtYWxpZ249IltbaG9yaXpvbnRhbEFsaWduXV0iIGR5bmFtaWMtYWxpZ249IltbZHluYW1pY0FsaWduXV0iIHZlcnRpY2FsLW9mZnNldD0iW1tfY29tcHV0ZU1lbnVWZXJ0aWNhbE9mZnNldChub0xhYmVsRmxvYXQsIHZlcnRpY2FsT2Zmc2V0KV1dIiBkaXNhYmxlZD0iW1tkaXNhYmxlZF1dIiBuby1hbmltYXRpb25zPSJbW25vQW5pbWF0aW9uc11dIiBvbi1pcm9uLXNlbGVjdD0iX29uSXJvblNlbGVjdCIgb24taXJvbi1kZXNlbGVjdD0iX29uSXJvbkRlc2VsZWN0IiBvcGVuZWQ9Int7b3BlbmVkfX0iIGNsb3NlLW9uLWFjdGl2YXRlIGFsbG93LW91dHNpZGUtc2Nyb2xsPSJbW2FsbG93T3V0c2lkZVNjcm9sbF1dIiByZXN0b3JlLWZvY3VzLW9uLWNsb3NlPSJbW3Jlc3RvcmVGb2N1c09uQ2xvc2VdXSIgZXhwYW5kLXNpemluZy10YXJnZXQtZm9yLXNjcm9sbGJhcnM9IltbZXhwYW5kU2l6aW5nVGFyZ2V0Rm9yU2Nyb2xsYmFyc11dIj4KICAgICAgPCEtLSBzdXBwb3J0IGh5YnJpZCBtb2RlOiB1c2VyIG1pZ2h0IGJlIHVzaW5nIHBhcGVyLW1lbnUtYnV0dG9uIDEueCB3aGljaCBkaXN0cmlidXRlcyB2aWEgPGNvbnRlbnQ+IC0tPgogICAgICA8ZGl2IGNsYXNzPSJkcm9wZG93bi10cmlnZ2VyIiBzbG90PSJkcm9wZG93bi10cmlnZ2VyIj4KICAgICAgICA8cGFwZXItcmlwcGxlPjwvcGFwZXItcmlwcGxlPgogICAgICAgIDwhLS0gcGFwZXItaW5wdXQgaGFzIHR5cGU9InRleHQiIGZvciBhMTF5LCBkbyBub3QgcmVtb3ZlIC0tPgogICAgICAgIDxwYXBlci1pbnB1dCBpZD0iaW5wdXQiIHR5cGU9InRleHQiIGludmFsaWQ9IltbaW52YWxpZF1dIiByZWFkb25seSBkaXNhYmxlZD0iW1tkaXNhYmxlZF1dIiB2YWx1ZT0iW1t2YWx1ZV1dIiBwbGFjZWhvbGRlcj0iW1twbGFjZWhvbGRlcl1dIiBlcnJvci1tZXNzYWdlPSJbW2Vycm9yTWVzc2FnZV1dIiBhbHdheXMtZmxvYXQtbGFiZWw9IltbYWx3YXlzRmxvYXRMYWJlbF1dIiBuby1sYWJlbC1mbG9hdD0iW1tub0xhYmVsRmxvYXRdXSIgbGFiZWw9IltbbGFiZWxdXSIgaW5wdXQtcm9sZT0iYnV0dG9uIiBpbnB1dC1hcmlhLWhhc3BvcHVwPSJsaXN0Ym94IiBhdXRvY29tcGxldGU9Im9mZiI+CiAgICAgICAgICA8IS0tIHN1cHBvcnQgaHlicmlkIG1vZGU6IHVzZXIgbWlnaHQgYmUgdXNpbmcgcGFwZXItaW5wdXQgMS54IHdoaWNoIGRpc3RyaWJ1dGVzIHZpYSA8Y29udGVudD4gLS0+CiAgICAgICAgICA8aXJvbi1pY29uIGljb249InBhcGVyLWRyb3Bkb3duLW1lbnU6YXJyb3ctZHJvcC1kb3duIiBzdWZmaXggc2xvdD0ic3VmZml4Ij48L2lyb24taWNvbj4KICAgICAgICA8L3BhcGVyLWlucHV0PgogICAgICA8L2Rpdj4KICAgICAgPHNsb3QgaWQ9ImNvbnRlbnQiIG5hbWU9ImRyb3Bkb3duLWNvbnRlbnQiIHNsb3Q9ImRyb3Bkb3duLWNvbnRlbnQiPjwvc2xvdD4KICAgIDwvcGFwZXItbWVudS1idXR0b24+CmAsaXM6InBhcGVyLWRyb3Bkb3duLW1lbnUiLGJlaGF2aW9yczpbYWEscmEsZ2EseWFdLHByb3BlcnRpZXM6e3NlbGVjdGVkSXRlbUxhYmVsOnt0eXBlOlN0cmluZyxub3RpZnk6ITAscmVhZE9ubHk6ITB9LHNlbGVjdGVkSXRlbTp7dHlwZTpPYmplY3Qsbm90aWZ5OiEwLHJlYWRPbmx5OiEwfSx2YWx1ZTp7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSxsYWJlbDp7dHlwZTpTdHJpbmd9LHBsYWNlaG9sZGVyOnt0eXBlOlN0cmluZ30sZXJyb3JNZXNzYWdlOnt0eXBlOlN0cmluZ30sb3BlbmVkOnt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwLHZhbHVlOiExLG9ic2VydmVyOiJfb3BlbmVkQ2hhbmdlZCJ9LGFsbG93T3V0c2lkZVNjcm9sbDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxub0xhYmVsRmxvYXQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9LGFsd2F5c0Zsb2F0TGFiZWw6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sbm9BbmltYXRpb25zOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGhvcml6b250YWxBbGlnbjp7dHlwZTpTdHJpbmcsdmFsdWU6InJpZ2h0In0sdmVydGljYWxBbGlnbjp7dHlwZTpTdHJpbmcsdmFsdWU6InRvcCJ9LHZlcnRpY2FsT2Zmc2V0Ok51bWJlcixkeW5hbWljQWxpZ246e3R5cGU6Qm9vbGVhbn0scmVzdG9yZUZvY3VzT25DbG9zZTp7dHlwZTpCb29sZWFuLHZhbHVlOiEwfSxleHBhbmRTaXppbmdUYXJnZXRGb3JTY3JvbGxiYXJzOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9fSxsaXN0ZW5lcnM6e3RhcDoiX29uVGFwIn0sa2V5QmluZGluZ3M6eyJ1cCBkb3duIjoib3BlbiIsZXNjOiJjbG9zZSJ9LG9ic2VydmVyczpbIl9zZWxlY3RlZEl0ZW1DaGFuZ2VkKHNlbGVjdGVkSXRlbSkiXSxfYXR0YWNoRG9tKHQpe2NvbnN0IGU9WSh0aGlzKTtyZXR1cm4gZS5hdHRhY2hTaGFkb3coe21vZGU6Im9wZW4iLGRlbGVnYXRlc0ZvY3VzOiEwLHNoYWR5VXBncmFkZUZyYWdtZW50OnR9KSxlLnNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQodCkscnMucHJvdG90eXBlLl9hdHRhY2hEb20uY2FsbCh0aGlzLHQpfSxmb2N1cygpe3RoaXMuJC5pbnB1dC5fZm9jdXNhYmxlRWxlbWVudC5mb2N1cygpfSxhdHRhY2hlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuY29udGVudEVsZW1lbnQ7dCYmdC5zZWxlY3RlZEl0ZW0mJnRoaXMuX3NldFNlbGVjdGVkSXRlbSh0LnNlbGVjdGVkSXRlbSl9LGdldCBjb250ZW50RWxlbWVudCgpe2Zvcih2YXIgdD1lcih0aGlzLiQuY29udGVudCkuZ2V0RGlzdHJpYnV0ZWROb2RlcygpLGU9MCxuPXQubGVuZ3RoO2U8bjtlKyspaWYodFtlXS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFKXJldHVybiB0W2VdfSxvcGVuOmZ1bmN0aW9uKCl7dGhpcy4kLm1lbnVCdXR0b24ub3BlbigpfSxjbG9zZTpmdW5jdGlvbigpe3RoaXMuJC5tZW51QnV0dG9uLmNsb3NlKCl9LF9vbklyb25TZWxlY3Q6ZnVuY3Rpb24odCl7dGhpcy5fc2V0U2VsZWN0ZWRJdGVtKHQuZGV0YWlsLml0ZW0pfSxfb25Jcm9uRGVzZWxlY3Q6ZnVuY3Rpb24odCl7dGhpcy5fc2V0U2VsZWN0ZWRJdGVtKG51bGwpfSxfb25UYXA6ZnVuY3Rpb24odCl7dmkodCk9PT10aGlzJiZ0aGlzLm9wZW4oKX0sX3NlbGVjdGVkSXRlbUNoYW5nZWQ6ZnVuY3Rpb24odCl7dmFyIGU9IiI7ZT10P3QubGFiZWx8fHQuZ2V0QXR0cmlidXRlKCJsYWJlbCIpfHx0LnRleHRDb250ZW50LnRyaW0oKToiIix0aGlzLnZhbHVlPWUsdGhpcy5fc2V0U2VsZWN0ZWRJdGVtTGFiZWwoZSl9LF9jb21wdXRlTWVudVZlcnRpY2FsT2Zmc2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fCh0Py00OjgpfSxfZ2V0VmFsaWRpdHk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGlzYWJsZWR8fCF0aGlzLnJlcXVpcmVkfHx0aGlzLnJlcXVpcmVkJiYhIXRoaXMudmFsdWV9LF9vcGVuZWRDaGFuZ2VkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb250ZW50RWxlbWVudDt0JiZ0LnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsdGhpcy5vcGVuZWQ/InRydWUiOiJmYWxzZSIpfX0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KdmFyIG9zPXtvdXRlclNjcm9sbDp7c2Nyb2xsOiEwfSxzaGFkb3dNb2RlOntzdGFuZGFyZDoyLHdhdGVyZmFsbDoxLCJ3YXRlcmZhbGwtdGFsbCI6MX0sdGFsbE1vZGU6eyJ3YXRlcmZhbGwtdGFsbCI6ITB9fTtqcih7X3RlbXBsYXRlOnhlYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LXZlcnRpY2FsOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaGVhZGVyLXBhbmVsOwogICAgICB9CgogICAgICAjbWFpbkNvbnRhaW5lciB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZsZXg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsKICAgICAgfQoKICAgICAgI21haW5QYW5lbCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LXZlcnRpY2FsOwogICAgICAgIEBhcHBseSAtLWxheW91dC1mbGV4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWhlYWRlci1wYW5lbC1ib2R5OwogICAgICB9CgogICAgICAjbWFpbkNvbnRhaW5lciB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaGVhZGVyLXBhbmVsLWNvbnRhaW5lcjsKICAgICAgfQoKICAgICAgLyoKICAgICAgICogbW9kZTogc2Nyb2xsCiAgICAgICAqLwogICAgICA6aG9zdChbbW9kZT1zY3JvbGxdKSAjbWFpbkNvbnRhaW5lciB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaGVhZGVyLXBhbmVsLXNjcm9sbC1jb250YWluZXI7CiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7CiAgICAgIH0KCiAgICAgIDpob3N0KFttb2RlPXNjcm9sbF0pIHsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7CiAgICAgIH0KCiAgICAgIC8qCiAgICAgICAqIG1vZGU6IGNvdmVyCiAgICAgICAqLwogICAgICA6aG9zdChbbW9kZT1jb3Zlcl0pICNtYWluQ29udGFpbmVyIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1oZWFkZXItcGFuZWwtY292ZXItY29udGFpbmVyOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgIH0KCiAgICAgIDpob3N0KFttb2RlPWNvdmVyXSkgI21haW5QYW5lbCB7CiAgICAgICAgcG9zaXRpb246IHN0YXRpYzsKICAgICAgfQoKICAgICAgLyoKICAgICAgICogbW9kZTogc3RhbmRhcmQKICAgICAgICovCiAgICAgIDpob3N0KFttb2RlPXN0YW5kYXJkXSkgI21haW5Db250YWluZXIgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWhlYWRlci1wYW5lbC1zdGFuZGFyZC1jb250YWluZXI7CiAgICAgIH0KCiAgICAgIC8qCiAgICAgICAqIG1vZGU6IHNlYW1lZAogICAgICAgKi8KICAgICAgOmhvc3QoW21vZGU9c2VhbWVkXSkgI21haW5Db250YWluZXIgewogICAgICAgIEBhcHBseSAtLXBhcGVyLWhlYWRlci1wYW5lbC1zZWFtZWQtY29udGFpbmVyOwogICAgICB9CgoKICAgICAgLyoKICAgICAgICogbW9kZTogd2F0ZXJmYWxsCiAgICAgICAqLwogICAgICA6aG9zdChbbW9kZT13YXRlcmZhbGxdKSAjbWFpbkNvbnRhaW5lciB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaGVhZGVyLXBhbmVsLXdhdGVyZmFsbC1jb250YWluZXI7CiAgICAgIH0KCiAgICAgIC8qCiAgICAgICAqIG1vZGU6IHdhdGVyZmFsbC10YWxsCiAgICAgICAqLwogICAgICA6aG9zdChbbW9kZT13YXRlcmZhbGwtdGFsbF0pICNtYWluQ29udGFpbmVyIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1oZWFkZXItcGFuZWwtd2F0ZXJmYWxsLXRhbGwtY29udGFpbmVyOwogICAgICB9CgogICAgICAjZHJvcFNoYWRvdyB7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzOwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDBweCA1cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjQpOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWhlYWRlci1wYW5lbC1zaGFkb3c7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgICNkcm9wU2hhZG93Lmhhcy1zaGFkb3cgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgICNtYWluQ29udGFpbmVyID4gOjpzbG90dGVkKC5maXQpIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZml0OwogICAgICB9CgogICAgPC9zdHlsZT4KCiAgICA8c2xvdCBpZD0iaGVhZGVyU2xvdCIgbmFtZT0iaGVhZGVyIj48L3Nsb3Q+CgogICAgPGRpdiBpZD0ibWFpblBhbmVsIj4KICAgICAgPGRpdiBpZD0ibWFpbkNvbnRhaW5lciIgY2xhc3NcJD0iW1tfY29tcHV0ZU1haW5Db250YWluZXJDbGFzcyhtb2RlKV1dIj4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGlkPSJkcm9wU2hhZG93Ij48L2Rpdj4KICAgIDwvZGl2PgpgLGlzOiJwYXBlci1oZWFkZXItcGFuZWwiLHByb3BlcnRpZXM6e21vZGU6e3R5cGU6U3RyaW5nLHZhbHVlOiJzdGFuZGFyZCIsb2JzZXJ2ZXI6Il9tb2RlQ2hhbmdlZCIscmVmbGVjdFRvQXR0cmlidXRlOiEwfSxzaGFkb3c6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sdGFsbENsYXNzOnt0eXBlOlN0cmluZyx2YWx1ZToidGFsbCJ9LGF0VG9wOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITAsbm90aWZ5OiEwLHJlYWRPbmx5OiEwLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH19LG9ic2VydmVyczpbIl9jb21wdXRlRHJvcFNoYWRvd0hpZGRlbihhdFRvcCwgbW9kZSwgc2hhZG93KSJdLGF0dGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fYWRkTGlzdGVuZXIoKSx0aGlzLl9rZWVwU2Nyb2xsaW5nU3RhdGUoKX0sZGV0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLl9yZW1vdmVMaXN0ZW5lcigpfSxyZWFkeTpmdW5jdGlvbigpe3RoaXMuc2Nyb2xsSGFuZGxlcj10aGlzLl9zY3JvbGwuYmluZCh0aGlzKSxjb25zb2xlLndhcm4odGhpcy5pcywiaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBhcHAtbGF5b3V0IGluc3RlYWQhIil9LGdldCBoZWFkZXIoKXtyZXR1cm4gZXIodGhpcy4kLmhlYWRlclNsb3QpLmdldERpc3RyaWJ1dGVkTm9kZXMoKVswXX0sZ2V0IHNjcm9sbGVyKCl7cmV0dXJuIHRoaXMuX2dldFNjcm9sbGVyRm9yTW9kZSh0aGlzLm1vZGUpfSxnZXQgdmlzaWJsZVNoYWRvdygpe3JldHVybiB0aGlzLiQuZHJvcFNoYWRvdy5jbGFzc0xpc3QuY29udGFpbnMoImhhcy1zaGFkb3ciKX0sX2NvbXB1dGVEcm9wU2hhZG93SGlkZGVuOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1vcy5zaGFkb3dNb2RlW2VdO3RoaXMudG9nZ2xlQ2xhc3MoImhhcy1zaGFkb3ciLCEhdGhpcy5zaGFkb3d8fCgyPT09aXx8MT09PWkmJiF0KSx0aGlzLiQuZHJvcFNoYWRvdyl9LF9jb21wdXRlTWFpbkNvbnRhaW5lckNsYXNzOmZ1bmN0aW9uKHQpe3ZhciBlPXt9O3JldHVybiBlLmZsZXg9ImNvdmVyIiE9PXQsT2JqZWN0LmtleXMoZSkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0pKS5qb2luKCIgIil9LF9hZGRMaXN0ZW5lcjpmdW5jdGlvbigpe3RoaXMuc2Nyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLnNjcm9sbEhhbmRsZXIpfSxfcmVtb3ZlTGlzdGVuZXI6ZnVuY3Rpb24oKXt0aGlzLnNjcm9sbGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5zY3JvbGxIYW5kbGVyKX0sX21vZGVDaGFuZ2VkOmZ1bmN0aW9uKHQsZSl7dmFyIG49b3MsaT10aGlzLmhlYWRlcjtpJiYobi50YWxsTW9kZVtlXSYmIW4udGFsbE1vZGVbdF0/KGkuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLnRhbGxDbGFzcyksdGhpcy5hc3luYygoZnVuY3Rpb24oKXtpLmNsYXNzTGlzdC5yZW1vdmUoImFuaW1hdGUiKX0pLDIwMCkpOnRoaXMudG9nZ2xlQ2xhc3MoImFuaW1hdGUiLG4udGFsbE1vZGVbdF0saSkpLHRoaXMuX2tlZXBTY3JvbGxpbmdTdGF0ZSgpfSxfa2VlcFNjcm9sbGluZ1N0YXRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zY3JvbGxlcixlPXRoaXMuaGVhZGVyO3RoaXMuX3NldEF0VG9wKDA9PT10LnNjcm9sbFRvcCksZSYmdGhpcy50YWxsQ2xhc3MmJm9zLnRhbGxNb2RlW3RoaXMubW9kZV0mJnRoaXMudG9nZ2xlQ2xhc3ModGhpcy50YWxsQ2xhc3MsdGhpcy5hdFRvcHx8ZS5jbGFzc0xpc3QuY29udGFpbnModGhpcy50YWxsQ2xhc3MpJiZ0LnNjcm9sbEhlaWdodDx0aGlzLm9mZnNldEhlaWdodCxlKX0sX3Njcm9sbDpmdW5jdGlvbigpe3RoaXMuX2tlZXBTY3JvbGxpbmdTdGF0ZSgpLHRoaXMuZmlyZSgiY29udGVudC1zY3JvbGwiLHt0YXJnZXQ6dGhpcy5zY3JvbGxlcn0se2J1YmJsZXM6ITF9KX0sX2dldFNjcm9sbGVyRm9yTW9kZTpmdW5jdGlvbih0KXtyZXR1cm4gb3Mub3V0ZXJTY3JvbGxbdF0/dGhpczp0aGlzLiQubWFpbkNvbnRhaW5lcn19KSwKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmpyKHtpczoicGFwZXItaWNvbi1idXR0b24iLF90ZW1wbGF0ZTp4ZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgei1pbmRleDogMDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKCiAgICAgICAgd2lkdGg6IDQwcHg7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwoKICAgICAgICAvKgogICAgICAgICAgTk9URTogQm90aCB2YWx1ZXMgYXJlIG5lZWRlZCwgc2luY2Ugc29tZSBwaG9uZXMgcmVxdWlyZSB0aGUgdmFsdWUgdG8KICAgICAgICAgIGJlIFxgdHJhbnNwYXJlbnRcYC4KICAgICAgICAqLwogICAgICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTsKICAgICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OwoKICAgICAgICAvKiBCZWNhdXNlIG9mIHBvbHltZXIvMjU1OCwgdGhpcyBzdHlsZSBoYXMgbG93ZXIgc3BlY2lmaWNpdHkgdGhhbiAqICovCiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50OwoKICAgICAgICBAYXBwbHkgLS1wYXBlci1pY29uLWJ1dHRvbjsKICAgICAgfQoKICAgICAgOmhvc3QgI2luayB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWljb24tYnV0dG9uLWluay1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWljb24tYnV0dG9uLWRpc2FibGVkLXRleHQsIHZhcigtLWRpc2FibGVkLXRleHQtY29sb3IpKTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBjdXJzb3I6IGF1dG87CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWljb24tYnV0dG9uLWRpc2FibGVkOwogICAgICB9CgogICAgICA6aG9zdChbaGlkZGVuXSkgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgOmhvc3QoOmhvdmVyKSB7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaWNvbi1idXR0b24taG92ZXI7CiAgICAgIH0KCiAgICAgIGlyb24taWNvbiB7CiAgICAgICAgLS1pcm9uLWljb24td2lkdGg6IDEwMCU7CiAgICAgICAgLS1pcm9uLWljb24taGVpZ2h0OiAxMDAlOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxpcm9uLWljb24gaWQ9Imljb24iIHNyYz0iW1tzcmNdXSIgaWNvbj0iW1tpY29uXV0iCiAgICAgICAgICAgICAgIGFsdCQ9IltbYWx0XV0iPjwvaXJvbi1pY29uPgogIGAsaG9zdEF0dHJpYnV0ZXM6e3JvbGU6ImJ1dHRvbiIsdGFiaW5kZXg6IjAifSxiZWhhdmlvcnM6W3hhXSxyZWdpc3RlcmVkOmZ1bmN0aW9uKCl7dGhpcy5fdGVtcGxhdGUuc2V0QXR0cmlidXRlKCJzdHJpcC13aGl0ZXNwYWNlIiwiIil9LHByb3BlcnRpZXM6e3NyYzp7dHlwZTpTdHJpbmd9LGljb246e3R5cGU6U3RyaW5nfSxhbHQ6e3R5cGU6U3RyaW5nLG9ic2VydmVyOiJfYWx0Q2hhbmdlZCJ9fSxfYWx0Q2hhbmdlZDpmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuZ2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIik7biYmZSE9bnx8dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHQpfX0pLAovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KanIoe190ZW1wbGF0ZTp4ZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDQwMHB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkOwogICAgICAgIHBhZGRpbmc6IDJweDsKICAgICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRhcmVhOwogICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGFyZWE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLm1pcnJvci10ZXh0IHsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgIEBhcHBseSAtLWlyb24tYXV0b2dyb3ctdGV4dGFyZWE7CiAgICAgIH0KCiAgICAgIC5maXQgewogICAgICAgIEBhcHBseSAtLWxheW91dC1maXQ7CiAgICAgIH0KCiAgICAgIHRleHRhcmVhIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgcmVzaXplOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgICAgLyogc2VlIGNvbW1lbnRzIGluIHRlbXBsYXRlICovCiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDsKICAgICAgICB0ZXh0LWFsaWduOiBpbmhlcml0OwogICAgICAgIEBhcHBseSAtLWlyb24tYXV0b2dyb3ctdGV4dGFyZWE7CiAgICAgIH0KCiAgICAgIHRleHRhcmVhOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHsKICAgICAgICBAYXBwbHkgLS1pcm9uLWF1dG9ncm93LXRleHRhcmVhLXBsYWNlaG9sZGVyOwogICAgICB9CgogICAgICB0ZXh0YXJlYTotbW96LXBsYWNlaG9sZGVyIHsKICAgICAgICBAYXBwbHkgLS1pcm9uLWF1dG9ncm93LXRleHRhcmVhLXBsYWNlaG9sZGVyOwogICAgICB9CgogICAgICB0ZXh0YXJlYTo6LW1vei1wbGFjZWhvbGRlciB7CiAgICAgICAgQGFwcGx5IC0taXJvbi1hdXRvZ3Jvdy10ZXh0YXJlYS1wbGFjZWhvbGRlcjsKICAgICAgfQoKICAgICAgdGV4dGFyZWE6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsKICAgICAgICBAYXBwbHkgLS1pcm9uLWF1dG9ncm93LXRleHRhcmVhLXBsYWNlaG9sZGVyOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDwhLS0gdGhlIG1pcnJvciBzaXplcyB0aGUgaW5wdXQvdGV4dGFyZWEgc28gaXQgZ3Jvd3Mgd2l0aCB0eXBpbmcgLS0+CiAgICA8IS0tIHVzZSAmIzE2MDsgaW5zdGVhZCAmbmJzcDsgb2YgdG8gYWxsb3cgdGhpcyBlbGVtZW50IHRvIGJlIHVzZWQgaW4gWEhUTUwgLS0+CiAgICA8ZGl2IGlkPSJtaXJyb3IiIGNsYXNzPSJtaXJyb3ItdGV4dCIgYXJpYS1oaWRkZW49InRydWUiPiZuYnNwOzwvZGl2PgoKICAgIDwhLS0gc2l6ZSB0aGUgaW5wdXQvdGV4dGFyZWEgd2l0aCBhIGRpdiwgYmVjYXVzZSB0aGUgdGV4dGFyZWEgaGFzIGludHJpbnNpYyBzaXplIGluIGZmIC0tPgogICAgPGRpdiBjbGFzcz0idGV4dGFyZWEtY29udGFpbmVyIGZpdCI+CiAgICAgIDx0ZXh0YXJlYSBpZD0idGV4dGFyZWEiIG5hbWUkPSJbW25hbWVdXSIgYXJpYS1sYWJlbCQ9IltbbGFiZWxdXSIgYXV0b2NvbXBsZXRlJD0iW1thdXRvY29tcGxldGVdXSIgYXV0b2ZvY3VzJD0iW1thdXRvZm9jdXNdXSIgYXV0b2NhcGl0YWxpemUkPSJbW2F1dG9jYXBpdGFsaXplXV0iIGlucHV0bW9kZSQ9IltbaW5wdXRtb2RlXV0iIHBsYWNlaG9sZGVyJD0iW1twbGFjZWhvbGRlcl1dIiByZWFkb25seSQ9IltbcmVhZG9ubHldXSIgcmVxdWlyZWQkPSJbW3JlcXVpcmVkXV0iIGRpc2FibGVkJD0iW1tkaXNhYmxlZF1dIiByb3dzJD0iW1tyb3dzXV0iIG1pbmxlbmd0aCQ9IltbbWlubGVuZ3RoXV0iIG1heGxlbmd0aCQ9IltbbWF4bGVuZ3RoXV0iPjwvdGV4dGFyZWE+CiAgICA8L2Rpdj4KYCxpczoiaXJvbi1hdXRvZ3Jvdy10ZXh0YXJlYSIsYmVoYXZpb3JzOlt5YSxyYV0scHJvcGVydGllczp7dmFsdWU6e29ic2VydmVyOiJfdmFsdWVDaGFuZ2VkIix0eXBlOlN0cmluZyxub3RpZnk6ITB9LGJpbmRWYWx1ZTp7b2JzZXJ2ZXI6Il9iaW5kVmFsdWVDaGFuZ2VkIix0eXBlOlN0cmluZyxub3RpZnk6ITB9LHJvd3M6e3R5cGU6TnVtYmVyLHZhbHVlOjEsb2JzZXJ2ZXI6Il91cGRhdGVDYWNoZWQifSxtYXhSb3dzOnt0eXBlOk51bWJlcix2YWx1ZTowLG9ic2VydmVyOiJfdXBkYXRlQ2FjaGVkIn0sYXV0b2NvbXBsZXRlOnt0eXBlOlN0cmluZyx2YWx1ZToib2ZmIn0sYXV0b2ZvY3VzOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGF1dG9jYXBpdGFsaXplOnt0eXBlOlN0cmluZyx2YWx1ZToibm9uZSJ9LGlucHV0bW9kZTp7dHlwZTpTdHJpbmd9LHBsYWNlaG9sZGVyOnt0eXBlOlN0cmluZ30scmVhZG9ubHk6e3R5cGU6U3RyaW5nfSxyZXF1aXJlZDp7dHlwZTpCb29sZWFufSxtaW5sZW5ndGg6e3R5cGU6TnVtYmVyfSxtYXhsZW5ndGg6e3R5cGU6TnVtYmVyfSxsYWJlbDp7dHlwZTpTdHJpbmd9fSxsaXN0ZW5lcnM6e2lucHV0OiJfb25JbnB1dCJ9LGdldCB0ZXh0YXJlYSgpe3JldHVybiB0aGlzLiQudGV4dGFyZWF9LGdldCBzZWxlY3Rpb25TdGFydCgpe3JldHVybiB0aGlzLiQudGV4dGFyZWEuc2VsZWN0aW9uU3RhcnR9LGdldCBzZWxlY3Rpb25FbmQoKXtyZXR1cm4gdGhpcy4kLnRleHRhcmVhLnNlbGVjdGlvbkVuZH0sc2V0IHNlbGVjdGlvblN0YXJ0KHQpe3RoaXMuJC50ZXh0YXJlYS5zZWxlY3Rpb25TdGFydD10fSxzZXQgc2VsZWN0aW9uRW5kKHQpe3RoaXMuJC50ZXh0YXJlYS5zZWxlY3Rpb25FbmQ9dH0sYXR0YWNoZWQ6ZnVuY3Rpb24oKXtuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9pUCg/OltvYV1kfGhvbmUpLykmJiFuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9PUyAxWzM0NTY3ODldLykmJih0aGlzLiQudGV4dGFyZWEuc3R5bGUubWFyZ2luTGVmdD0iLTNweCIpfSx2YWxpZGF0ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuJC50ZXh0YXJlYS52YWxpZGl0eS52YWxpZDtyZXR1cm4gdCYmKHRoaXMucmVxdWlyZWQmJiIiPT09dGhpcy52YWx1ZT90PSExOnRoaXMuaGFzVmFsaWRhdG9yKCkmJih0PXlhLnZhbGlkYXRlLmNhbGwodGhpcyx0aGlzLnZhbHVlKSkpLHRoaXMuaW52YWxpZD0hdCx0aGlzLmZpcmUoImlyb24taW5wdXQtdmFsaWRhdGUiKSx0fSxfYmluZFZhbHVlQ2hhbmdlZDpmdW5jdGlvbih0KXt0aGlzLnZhbHVlPXR9LF92YWx1ZUNoYW5nZWQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy50ZXh0YXJlYTtlJiYoZS52YWx1ZSE9PXQmJihlLnZhbHVlPXR8fDA9PT10P3Q6IiIpLHRoaXMuYmluZFZhbHVlPXQsdGhpcy4kLm1pcnJvci5pbm5lckhUTUw9dGhpcy5fdmFsdWVGb3JNaXJyb3IoKSx0aGlzLmZpcmUoImJpbmQtdmFsdWUtY2hhbmdlZCIse3ZhbHVlOnRoaXMuYmluZFZhbHVlfSkpfSxfb25JbnB1dDpmdW5jdGlvbih0KXt2YXIgZT1lcih0KS5wYXRoO3RoaXMudmFsdWU9ZT9lWzBdLnZhbHVlOnQudGFyZ2V0LnZhbHVlfSxfY29uc3RyYWluOmZ1bmN0aW9uKHQpe3ZhciBlO2Zvcih0PXR8fFsiIl0sZT10aGlzLm1heFJvd3M+MCYmdC5sZW5ndGg+dGhpcy5tYXhSb3dzP3Quc2xpY2UoMCx0aGlzLm1heFJvd3MpOnQuc2xpY2UoMCk7dGhpcy5yb3dzPjAmJmUubGVuZ3RoPHRoaXMucm93czspZS5wdXNoKCIiKTtyZXR1cm4gZS5qb2luKCI8YnIvPiIpKyImIzE2MDsifSxfdmFsdWVGb3JNaXJyb3I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnRleHRhcmVhO2lmKHQpcmV0dXJuIHRoaXMudG9rZW5zPXQmJnQudmFsdWU/dC52YWx1ZS5yZXBsYWNlKC8mL2dtLCImYW1wOyIpLnJlcGxhY2UoLyIvZ20sIiZxdW90OyIpLnJlcGxhY2UoLycvZ20sIiYjMzk7IikucmVwbGFjZSgvPC9nbSwiJmx0OyIpLnJlcGxhY2UoLz4vZ20sIiZndDsiKS5zcGxpdCgiXG4iKTpbIiJdLHRoaXMuX2NvbnN0cmFpbih0aGlzLnRva2Vucyl9LF91cGRhdGVDYWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLiQubWlycm9yLmlubmVySFRNTD10aGlzLl9jb25zdHJhaW4odGhpcy50b2tlbnMpfX0pLAovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KanIoe190ZW1wbGF0ZTp4ZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICA6aG9zdChbaGlkZGVuXSkgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgbGFiZWwgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxwYXBlci1pbnB1dC1jb250YWluZXIgbm8tbGFiZWwtZmxvYXQkPSJbW25vTGFiZWxGbG9hdF1dIiBhbHdheXMtZmxvYXQtbGFiZWw9IltbX2NvbXB1dGVBbHdheXNGbG9hdExhYmVsKGFsd2F5c0Zsb2F0TGFiZWwscGxhY2Vob2xkZXIpXV0iIGF1dG8tdmFsaWRhdGUkPSJbW2F1dG9WYWxpZGF0ZV1dIiBkaXNhYmxlZCQ9IltbZGlzYWJsZWRdXSIgaW52YWxpZD0iW1tpbnZhbGlkXV0iPgoKICAgICAgPGxhYmVsIGhpZGRlbiQ9IltbIWxhYmVsXV0iIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb3IkPSJbW19pbnB1dElkXV0iIHNsb3Q9ImxhYmVsIj5bW2xhYmVsXV08L2xhYmVsPgoKICAgICAgPGlyb24tYXV0b2dyb3ctdGV4dGFyZWEgY2xhc3M9InBhcGVyLWlucHV0LWlucHV0IiBzbG90PSJpbnB1dCIgaWQkPSJbW19pbnB1dElkXV0iIGFyaWEtbGFiZWxsZWRieSQ9IltbX2FyaWFMYWJlbGxlZEJ5XV0iIGFyaWEtZGVzY3JpYmVkYnkkPSJbW19hcmlhRGVzY3JpYmVkQnldXSIgYmluZC12YWx1ZT0ie3t2YWx1ZX19IiBpbnZhbGlkPSJ7e2ludmFsaWR9fSIgdmFsaWRhdG9yJD0iW1t2YWxpZGF0b3JdXSIgZGlzYWJsZWQkPSJbW2Rpc2FibGVkXV0iIGF1dG9jb21wbGV0ZSQ9IltbYXV0b2NvbXBsZXRlXV0iIGF1dG9mb2N1cyQ9IltbYXV0b2ZvY3VzXV0iIGlucHV0bW9kZSQ9IltbaW5wdXRtb2RlXV0iIG5hbWUkPSJbW25hbWVdXSIgcGxhY2Vob2xkZXIkPSJbW3BsYWNlaG9sZGVyXV0iIHJlYWRvbmx5JD0iW1tyZWFkb25seV1dIiByZXF1aXJlZCQ9IltbcmVxdWlyZWRdXSIgbWlubGVuZ3RoJD0iW1ttaW5sZW5ndGhdXSIgbWF4bGVuZ3RoJD0iW1ttYXhsZW5ndGhdXSIgYXV0b2NhcGl0YWxpemUkPSJbW2F1dG9jYXBpdGFsaXplXV0iIHJvd3MkPSJbW3Jvd3NdXSIgbWF4LXJvd3MkPSJbW21heFJvd3NdXSIgb24tY2hhbmdlPSJfb25DaGFuZ2UiPjwvaXJvbi1hdXRvZ3Jvdy10ZXh0YXJlYT4KCiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tlcnJvck1lc3NhZ2VdXSI+CiAgICAgICAgPHBhcGVyLWlucHV0LWVycm9yIGFyaWEtbGl2ZT0iYXNzZXJ0aXZlIiBzbG90PSJhZGQtb24iPltbZXJyb3JNZXNzYWdlXV08L3BhcGVyLWlucHV0LWVycm9yPgogICAgICA8L3RlbXBsYXRlPgoKICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2NoYXJDb3VudGVyXV0iPgogICAgICAgIDxwYXBlci1pbnB1dC1jaGFyLWNvdW50ZXIgc2xvdD0iYWRkLW9uIj48L3BhcGVyLWlucHV0LWNoYXItY291bnRlcj4KICAgICAgPC90ZW1wbGF0ZT4KCiAgICA8L3BhcGVyLWlucHV0LWNvbnRhaW5lcj4KYCxpczoicGFwZXItdGV4dGFyZWEiLGJlaGF2aW9yczpbSmEsZ2FdLHByb3BlcnRpZXM6e19hcmlhTGFiZWxsZWRCeTp7b2JzZXJ2ZXI6Il9hcmlhTGFiZWxsZWRCeUNoYW5nZWQiLHR5cGU6U3RyaW5nfSxfYXJpYURlc2NyaWJlZEJ5OntvYnNlcnZlcjoiX2FyaWFEZXNjcmliZWRCeUNoYW5nZWQiLHR5cGU6U3RyaW5nfSx2YWx1ZTp7dHlwZTpTdHJpbmd9LHJvd3M6e3R5cGU6TnVtYmVyLHZhbHVlOjF9LG1heFJvd3M6e3R5cGU6TnVtYmVyLHZhbHVlOjB9fSxnZXQgc2VsZWN0aW9uU3RhcnQoKXtyZXR1cm4gdGhpcy4kLmlucHV0LnRleHRhcmVhLnNlbGVjdGlvblN0YXJ0fSxzZXQgc2VsZWN0aW9uU3RhcnQodCl7dGhpcy4kLmlucHV0LnRleHRhcmVhLnNlbGVjdGlvblN0YXJ0PXR9LGdldCBzZWxlY3Rpb25FbmQoKXtyZXR1cm4gdGhpcy4kLmlucHV0LnRleHRhcmVhLnNlbGVjdGlvbkVuZH0sc2V0IHNlbGVjdGlvbkVuZCh0KXt0aGlzLiQuaW5wdXQudGV4dGFyZWEuc2VsZWN0aW9uRW5kPXR9LF9hcmlhTGFiZWxsZWRCeUNoYW5nZWQ6ZnVuY3Rpb24odCl7dGhpcy5fZm9jdXNhYmxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIsdCl9LF9hcmlhRGVzY3JpYmVkQnlDaGFuZ2VkOmZ1bmN0aW9uKHQpe3RoaXMuX2ZvY3VzYWJsZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWRlc2NyaWJlZGJ5Iix0KX0sZ2V0IF9mb2N1c2FibGVFbGVtZW50KCl7cmV0dXJuIHRoaXMuaW5wdXRFbGVtZW50LnRleHRhcmVhfX0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgYXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTthcy5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTogbm9uZTsiKSxhcy5pbm5lckhUTUw9Ijxkb20tbW9kdWxlIGlkPVwicGFwZXItaXRlbS1zaGFyZWQtc3R5bGVzXCI+XG4gIDx0ZW1wbGF0ZT5cbiAgICA8c3R5bGU+XG4gICAgICA6aG9zdCwgLnBhcGVyLWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtaW4taGVpZ2h0OiB2YXIoLS1wYXBlci1pdGVtLW1pbi1oZWlnaHQsIDQ4cHgpO1xuICAgICAgICBwYWRkaW5nOiAwcHggMTZweDtcbiAgICAgIH1cblxuICAgICAgLnBhcGVyLWl0ZW0ge1xuICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LXN1YmhlYWQ7XG4gICAgICAgIGJvcmRlcjpub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG5cbiAgICAgIDpob3N0KFtoaWRkZW5dKSwgLnBhcGVyLWl0ZW1baGlkZGVuXSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoLmlyb24tc2VsZWN0ZWQpLCAucGFwZXItaXRlbS5pcm9uLXNlbGVjdGVkIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXBhcGVyLWl0ZW0tc2VsZWN0ZWQtd2VpZ2h0LCBib2xkKTtcblxuICAgICAgICBAYXBwbHkgLS1wYXBlci1pdGVtLXNlbGVjdGVkO1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbZGlzYWJsZWRdKSwgLnBhcGVyLWl0ZW1bZGlzYWJsZWRdIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLWl0ZW0tZGlzYWJsZWQtY29sb3IsIHZhcigtLWRpc2FibGVkLXRleHQtY29sb3IpKTtcblxuICAgICAgICBAYXBwbHkgLS1wYXBlci1pdGVtLWRpc2FibGVkO1xuICAgICAgfVxuXG4gICAgICA6aG9zdCg6Zm9jdXMpLCAucGFwZXItaXRlbTpmb2N1cyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3V0bGluZTogMDtcblxuICAgICAgICBAYXBwbHkgLS1wYXBlci1pdGVtLWZvY3VzZWQ7XG4gICAgICB9XG5cbiAgICAgIDpob3N0KDpmb2N1cyk6YmVmb3JlLCAucGFwZXItaXRlbTpmb2N1czpiZWZvcmUge1xuICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZml0O1xuXG4gICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIG9wYWNpdHk6IHZhcigtLWRhcmstZGl2aWRlci1vcGFjaXR5KTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgQGFwcGx5IC0tcGFwZXItaXRlbS1mb2N1c2VkLWJlZm9yZTtcbiAgICAgIH1cbiAgICA8L3N0eWxlPlxuICA8L3RlbXBsYXRlPlxuPC9kb20tbW9kdWxlPiIsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChhcy5jb250ZW50KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IHNzPVthYSxyYSx7aG9zdEF0dHJpYnV0ZXM6e3JvbGU6Im9wdGlvbiIsdGFiaW5kZXg6IjAifX1dOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KanIoe190ZW1wbGF0ZTp4ZWAKICAgIDxzdHlsZSBpbmNsdWRlPSJwYXBlci1pdGVtLXNoYXJlZC1zdHlsZXMiPgogICAgICA6aG9zdCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWhvcml6b250YWw7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlcjsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LXN1YmhlYWQ7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWl0ZW07CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2xvdD48L3Nsb3Q+CmAsaXM6InBhcGVyLWl0ZW0iLGJlaGF2aW9yczpbc3NdfSksCi8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpqcih7X3RlbXBsYXRlOnhlYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogbmVlZGVkIGZvciB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcyB0byB3b3JrIG9uIGZmICovCiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LXZlcnRpY2FsOwogICAgICAgIEBhcHBseSAtLWxheW91dC1jZW50ZXItanVzdGlmaWVkOwogICAgICAgIEBhcHBseSAtLWxheW91dC1mbGV4OwogICAgICB9CgogICAgICA6aG9zdChbdHdvLWxpbmVdKSB7CiAgICAgICAgbWluLWhlaWdodDogdmFyKC0tcGFwZXItaXRlbS1ib2R5LXR3by1saW5lLW1pbi1oZWlnaHQsIDcycHgpOwogICAgICB9CgogICAgICA6aG9zdChbdGhyZWUtbGluZV0pIHsKICAgICAgICBtaW4taGVpZ2h0OiB2YXIoLS1wYXBlci1pdGVtLWJvZHktdGhyZWUtbGluZS1taW4taGVpZ2h0LCA4OHB4KTsKICAgICAgfQoKICAgICAgOmhvc3QgPiA6OnNsb3R0ZWQoKikgewogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgOmhvc3QgPiA6OnNsb3R0ZWQoW3NlY29uZGFyeV0pIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWJvZHkxOwoKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItaXRlbS1ib2R5LXNlY29uZGFyeS1jb2xvciwgdmFyKC0tc2Vjb25kYXJ5LXRleHQtY29sb3IpKTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItaXRlbS1ib2R5LXNlY29uZGFyeTsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8c2xvdD48L3Nsb3Q+CmAsaXM6InBhcGVyLWl0ZW0tYm9keSJ9KSwKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmpyKHtfdGVtcGxhdGU6eGVgCiAgICA8c3R5bGUgaW5jbHVkZT0icGFwZXItaXRlbS1zaGFyZWQtc3R5bGVzIj48L3N0eWxlPgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWhvcml6b250YWw7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlcjsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LXN1YmhlYWQ7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWl0ZW07CiAgICAgICAgQGFwcGx5IC0tcGFwZXItaWNvbi1pdGVtOwogICAgICB9CgogICAgICAuY29udGVudC1pY29uIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtaG9yaXpvbnRhbDsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyOwoKICAgICAgICB3aWR0aDogdmFyKC0tcGFwZXItaXRlbS1pY29uLXdpZHRoLCA1NnB4KTsKICAgICAgICBAYXBwbHkgLS1wYXBlci1pdGVtLWljb247CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBpZD0iY29udGVudEljb24iIGNsYXNzPSJjb250ZW50LWljb24iPgogICAgICA8c2xvdCBuYW1lPSJpdGVtLWljb24iPjwvc2xvdD4KICAgIDwvZGl2PgogICAgPHNsb3Q+PC9zbG90PgpgLGlzOiJwYXBlci1pY29uLWl0ZW0iLGJlaGF2aW9yczpbc3NdfSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBscz17cHJvcGVydGllczp7bXVsdGk6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxvYnNlcnZlcjoibXVsdGlDaGFuZ2VkIn0sc2VsZWN0ZWRWYWx1ZXM6e3R5cGU6QXJyYXksbm90aWZ5OiEwLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuW119fSxzZWxlY3RlZEl0ZW1zOnt0eXBlOkFycmF5LHJlYWRPbmx5OiEwLG5vdGlmeTohMCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybltdfX19LG9ic2VydmVyczpbIl91cGRhdGVTZWxlY3RlZChzZWxlY3RlZFZhbHVlcy5zcGxpY2VzKSJdLHNlbGVjdDpmdW5jdGlvbih0KXt0aGlzLm11bHRpP3RoaXMuX3RvZ2dsZVNlbGVjdGVkKHQpOnRoaXMuc2VsZWN0ZWQ9dH0sbXVsdGlDaGFuZ2VkOmZ1bmN0aW9uKHQpe3RoaXMuX3NlbGVjdGlvbi5tdWx0aT10LHRoaXMuX3VwZGF0ZVNlbGVjdGVkKCl9LGdldCBfc2hvdWxkVXBkYXRlU2VsZWN0aW9uKCl7cmV0dXJuIG51bGwhPXRoaXMuc2VsZWN0ZWR8fG51bGwhPXRoaXMuc2VsZWN0ZWRWYWx1ZXMmJnRoaXMuc2VsZWN0ZWRWYWx1ZXMubGVuZ3RofSxfdXBkYXRlQXR0ckZvclNlbGVjdGVkOmZ1bmN0aW9uKCl7dGhpcy5tdWx0aT90aGlzLnNlbGVjdGVkSXRlbXMmJnRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGg+MCYmKHRoaXMuc2VsZWN0ZWRWYWx1ZXM9dGhpcy5zZWxlY3RlZEl0ZW1zLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2luZGV4VG9WYWx1ZSh0aGlzLmluZGV4T2YodCkpfSksdGhpcykuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dH0pLHRoaXMpKTplYS5fdXBkYXRlQXR0ckZvclNlbGVjdGVkLmFwcGx5KHRoaXMpfSxfdXBkYXRlU2VsZWN0ZWQ6ZnVuY3Rpb24oKXt0aGlzLm11bHRpP3RoaXMuX3NlbGVjdE11bHRpKHRoaXMuc2VsZWN0ZWRWYWx1ZXMpOnRoaXMuX3NlbGVjdFNlbGVjdGVkKHRoaXMuc2VsZWN0ZWQpfSxfc2VsZWN0TXVsdGk6ZnVuY3Rpb24odCl7dmFyIGU9KHRoaXMuX3ZhbHVlc1RvSXRlbXModD10fHxbXSl8fFtdKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10fSkpO3RoaXMuX3NlbGVjdGlvbi5jbGVhcihlKTtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl0aGlzLl9zZWxlY3Rpb24uc2V0SXRlbVNlbGVjdGVkKGVbbl0sITApO3RoaXMuZmFsbGJhY2tTZWxlY3Rpb24mJiF0aGlzLl9zZWxlY3Rpb24uZ2V0KCkubGVuZ3RoJiYodGhpcy5fdmFsdWVUb0l0ZW0odGhpcy5mYWxsYmFja1NlbGVjdGlvbikmJnRoaXMuc2VsZWN0KHRoaXMuZmFsbGJhY2tTZWxlY3Rpb24pKX0sX3NlbGVjdGlvbkNoYW5nZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3NlbGVjdGlvbi5nZXQoKTt0aGlzLm11bHRpPyh0aGlzLl9zZXRTZWxlY3RlZEl0ZW1zKHQpLHRoaXMuX3NldFNlbGVjdGVkSXRlbSh0Lmxlbmd0aD90WzBdOm51bGwpKTpudWxsIT10Pyh0aGlzLl9zZXRTZWxlY3RlZEl0ZW1zKFt0XSksdGhpcy5fc2V0U2VsZWN0ZWRJdGVtKHQpKToodGhpcy5fc2V0U2VsZWN0ZWRJdGVtcyhbXSksdGhpcy5fc2V0U2VsZWN0ZWRJdGVtKG51bGwpKX0sX3RvZ2dsZVNlbGVjdGVkOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuc2VsZWN0ZWRWYWx1ZXMuaW5kZXhPZih0KTtlPDA/dGhpcy5wdXNoKCJzZWxlY3RlZFZhbHVlcyIsdCk6dGhpcy5zcGxpY2UoInNlbGVjdGVkVmFsdWVzIixlLDEpfSxfdmFsdWVzVG9JdGVtczpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9udWxsOnQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdmFsdWVUb0l0ZW0odCl9KSx0aGlzKX19LGNzPXtwcm9wZXJ0aWVzOntmb2N1c2VkSXRlbTp7b2JzZXJ2ZXI6Il9mb2N1c2VkSXRlbUNoYW5nZWQiLHJlYWRPbmx5OiEwLHR5cGU6T2JqZWN0fSxhdHRyRm9ySXRlbVRpdGxlOnt0eXBlOlN0cmluZ30sZGlzYWJsZWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxvYnNlcnZlcjoiX2Rpc2FibGVkQ2hhbmdlZCJ9fSxfTU9ESUZJRVJfS0VZUzpbIkFsdCIsIkFsdEdyYXBoIiwiQ2Fwc0xvY2siLCJDb250cm9sIiwiRm4iLCJGbkxvY2siLCJIeXBlciIsIk1ldGEiLCJOdW1Mb2NrIiwiT1MiLCJTY3JvbGxMb2NrIiwiU2hpZnQiLCJTdXBlciIsIlN5bWJvbCIsIlN5bWJvbExvY2siXSxfU0VBUkNIX1JFU0VUX1RJTUVPVVRfTVM6MWUzLF9wcmV2aW91c1RhYkluZGV4OjAsaG9zdEF0dHJpYnV0ZXM6e3JvbGU6Im1lbnUifSxvYnNlcnZlcnM6WyJfdXBkYXRlTXVsdGlzZWxlY3RhYmxlKG11bHRpKSJdLGxpc3RlbmVyczp7Zm9jdXM6Il9vbkZvY3VzIixrZXlkb3duOiJfb25LZXlkb3duIiwiaXJvbi1pdGVtcy1jaGFuZ2VkIjoiX29uSXJvbkl0ZW1zQ2hhbmdlZCJ9LGtleUJpbmRpbmdzOnt1cDoiX29uVXBLZXkiLGRvd246Il9vbkRvd25LZXkiLGVzYzoiX29uRXNjS2V5Iiwic2hpZnQrdGFiOmtleWRvd24iOiJfb25TaGlmdFRhYkRvd24ifSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX3Jlc2V0VGFiaW5kaWNlcygpfSxzZWxlY3Q6ZnVuY3Rpb24odCl7dGhpcy5fZGVmYXVsdEZvY3VzQXN5bmMmJih0aGlzLmNhbmNlbEFzeW5jKHRoaXMuX2RlZmF1bHRGb2N1c0FzeW5jKSx0aGlzLl9kZWZhdWx0Rm9jdXNBc3luYz1udWxsKTt2YXIgZT10aGlzLl92YWx1ZVRvSXRlbSh0KTtlJiZlLmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKXx8KHRoaXMuX3NldEZvY3VzZWRJdGVtKGUpLGxzLnNlbGVjdC5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSxfcmVzZXRUYWJpbmRpY2VzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5tdWx0aT90aGlzLnNlbGVjdGVkSXRlbXMmJnRoaXMuc2VsZWN0ZWRJdGVtc1swXTp0aGlzLnNlbGVjdGVkSXRlbTt0aGlzLml0ZW1zLmZvckVhY2goKGZ1bmN0aW9uKGUpe2Uuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsZT09PXQ/IjAiOiItMSIpLGUuc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIix0aGlzLl9zZWxlY3Rpb24uaXNTZWxlY3RlZChlKSl9KSx0aGlzKX0sX3VwZGF0ZU11bHRpc2VsZWN0YWJsZTpmdW5jdGlvbih0KXt0P3RoaXMuc2V0QXR0cmlidXRlKCJhcmlhLW11bHRpc2VsZWN0YWJsZSIsInRydWUiKTp0aGlzLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1tdWx0aXNlbGVjdGFibGUiKX0sX2ZvY3VzV2l0aEtleWJvYXJkRXZlbnQ6ZnVuY3Rpb24odCl7aWYoLTE9PT10aGlzLl9NT0RJRklFUl9LRVlTLmluZGV4T2YodC5rZXkpKXt0aGlzLmNhbmNlbERlYm91bmNlcigiX2NsZWFyU2VhcmNoVGV4dCIpO2Zvcih2YXIgZSxuPXRoaXMuX3NlYXJjaFRleHR8fCIiLGk9KG4rPSh0LmtleSYmMT09dC5rZXkubGVuZ3RoP3Qua2V5OlN0cmluZy5mcm9tQ2hhckNvZGUodC5rZXlDb2RlKSkudG9Mb2NhbGVMb3dlckNhc2UoKSkubGVuZ3RoLHI9MDtlPXRoaXMuaXRlbXNbcl07cisrKWlmKCFlLmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKSl7dmFyIG89dGhpcy5hdHRyRm9ySXRlbVRpdGxlfHwidGV4dENvbnRlbnQiLGE9KGVbb118fGUuZ2V0QXR0cmlidXRlKG8pfHwiIikudHJpbSgpO2lmKCEoYS5sZW5ndGg8aSkmJmEuc2xpY2UoMCxpKS50b0xvY2FsZUxvd2VyQ2FzZSgpPT1uKXt0aGlzLl9zZXRGb2N1c2VkSXRlbShlKTticmVha319dGhpcy5fc2VhcmNoVGV4dD1uLHRoaXMuZGVib3VuY2UoIl9jbGVhclNlYXJjaFRleHQiLHRoaXMuX2NsZWFyU2VhcmNoVGV4dCx0aGlzLl9TRUFSQ0hfUkVTRVRfVElNRU9VVF9NUyl9fSxfY2xlYXJTZWFyY2hUZXh0OmZ1bmN0aW9uKCl7dGhpcy5fc2VhcmNoVGV4dD0iIn0sX2ZvY3VzUHJldmlvdXM6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5pdGVtcy5sZW5ndGgsZT1OdW1iZXIodGhpcy5pbmRleE9mKHRoaXMuZm9jdXNlZEl0ZW0pKSxuPTE7bjx0KzE7bisrKXt2YXIgaT10aGlzLml0ZW1zWyhlLW4rdCkldF07aWYoIWkuaGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpKXt2YXIgcj1lcihpKS5nZXRPd25lclJvb3QoKXx8ZG9jdW1lbnQ7aWYodGhpcy5fc2V0Rm9jdXNlZEl0ZW0oaSksZXIocikuYWN0aXZlRWxlbWVudD09aSlyZXR1cm59fX0sX2ZvY3VzTmV4dDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLml0ZW1zLmxlbmd0aCxlPU51bWJlcih0aGlzLmluZGV4T2YodGhpcy5mb2N1c2VkSXRlbSkpLG49MTtuPHQrMTtuKyspe3ZhciBpPXRoaXMuaXRlbXNbKGUrbikldF07aWYoIWkuaGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpKXt2YXIgcj1lcihpKS5nZXRPd25lclJvb3QoKXx8ZG9jdW1lbnQ7aWYodGhpcy5fc2V0Rm9jdXNlZEl0ZW0oaSksZXIocikuYWN0aXZlRWxlbWVudD09aSlyZXR1cm59fX0sX2FwcGx5U2VsZWN0aW9uOmZ1bmN0aW9uKHQsZSl7dC5zZXRBdHRyaWJ1dGUoImFyaWEtc2VsZWN0ZWQiLGU/InRydWUiOiJmYWxzZSIpLGVhLl9hcHBseVNlbGVjdGlvbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LF9mb2N1c2VkSXRlbUNoYW5nZWQ6ZnVuY3Rpb24odCxlKXtlJiZlLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCItMSIpLCF0fHx0Lmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKXx8dGhpcy5kaXNhYmxlZHx8KHQuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKSx0LmZvY3VzKCkpfSxfb25Jcm9uSXRlbXNDaGFuZ2VkOmZ1bmN0aW9uKHQpe3QuZGV0YWlsLmFkZGVkTm9kZXMubGVuZ3RoJiZ0aGlzLl9yZXNldFRhYmluZGljZXMoKX0sX29uU2hpZnRUYWJEb3duOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ2V0QXR0cmlidXRlKCJ0YWJpbmRleCIpO2NzLl9zaGlmdFRhYlByZXNzZWQ9ITAsdGhpcy5fc2V0Rm9jdXNlZEl0ZW0obnVsbCksdGhpcy5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiLTEiKSx0aGlzLmFzeW5jKChmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsZSksY3MuX3NoaWZ0VGFiUHJlc3NlZD0hMX0pLDEpfSxfb25Gb2N1czpmdW5jdGlvbih0KXtpZighY3MuX3NoaWZ0VGFiUHJlc3NlZCl7dmFyIGU9ZXIodCkucm9vdFRhcmdldDsoZT09PXRoaXN8fHZvaWQgMD09PWUudGFiSW5kZXh8fHRoaXMuaXNMaWdodERlc2NlbmRhbnQoZSkpJiYodGhpcy5fZGVmYXVsdEZvY3VzQXN5bmM9dGhpcy5hc3luYygoZnVuY3Rpb24oKXt2YXIgdD10aGlzLm11bHRpP3RoaXMuc2VsZWN0ZWRJdGVtcyYmdGhpcy5zZWxlY3RlZEl0ZW1zWzBdOnRoaXMuc2VsZWN0ZWRJdGVtO3RoaXMuX3NldEZvY3VzZWRJdGVtKG51bGwpLHQ/dGhpcy5fc2V0Rm9jdXNlZEl0ZW0odCk6dGhpcy5pdGVtc1swXSYmdGhpcy5fZm9jdXNOZXh0KCl9KSkpfX0sX29uVXBLZXk6ZnVuY3Rpb24odCl7dGhpcy5fZm9jdXNQcmV2aW91cygpLHQuZGV0YWlsLmtleWJvYXJkRXZlbnQucHJldmVudERlZmF1bHQoKX0sX29uRG93bktleTpmdW5jdGlvbih0KXt0aGlzLl9mb2N1c05leHQoKSx0LmRldGFpbC5rZXlib2FyZEV2ZW50LnByZXZlbnREZWZhdWx0KCl9LF9vbkVzY0tleTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmZvY3VzZWRJdGVtO2UmJmUuYmx1cigpfSxfb25LZXlkb3duOmZ1bmN0aW9uKHQpe3RoaXMua2V5Ym9hcmRFdmVudE1hdGNoZXNLZXlzKHQsInVwIGRvd24gZXNjIil8fHRoaXMuX2ZvY3VzV2l0aEtleWJvYXJkRXZlbnQodCksdC5zdG9wUHJvcGFnYXRpb24oKX0sX2FjdGl2YXRlSGFuZGxlcjpmdW5jdGlvbih0KXtlYS5fYWN0aXZhdGVIYW5kbGVyLmNhbGwodGhpcyx0KSx0LnN0b3BQcm9wYWdhdGlvbigpfSxfZGlzYWJsZWRDaGFuZ2VkOmZ1bmN0aW9uKHQpe3Q/KHRoaXMuX3ByZXZpb3VzVGFiSW5kZXg9dGhpcy5oYXNBdHRyaWJ1dGUoInRhYmluZGV4Iik/dGhpcy50YWJJbmRleDowLHRoaXMucmVtb3ZlQXR0cmlidXRlKCJ0YWJpbmRleCIpKTp0aGlzLmhhc0F0dHJpYnV0ZSgidGFiaW5kZXgiKXx8dGhpcy5zZXRBdHRyaWJ1dGUoInRhYmluZGV4Iix0aGlzLl9wcmV2aW91c1RhYkluZGV4KX0sX3NoaWZ0VGFiUHJlc3NlZDohMX0sdXM9W1tlYSxsc10sWG8sY3NdOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KanIoe190ZW1wbGF0ZTp4ZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDhweCAwOwoKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wYXBlci1saXN0Ym94LWJhY2tncm91bmQtY29sb3IsIHZhcigtLXByaW1hcnktYmFja2dyb3VuZC1jb2xvcikpOwogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1saXN0Ym94LWNvbG9yLCB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpKTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItbGlzdGJveDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8c2xvdD48L3Nsb3Q+CmAsaXM6InBhcGVyLWxpc3Rib3giLGJlaGF2aW9yczpbdXNdLGhvc3RBdHRyaWJ1dGVzOntyb2xlOiJsaXN0Ym94In19KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IGhzPXhlYAo8ZG9tLW1vZHVsZSBpZD0icGFwZXItbWF0ZXJpYWwtc2hhcmVkLXN0eWxlcyI+CiAgPHRlbXBsYXRlPgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICA6aG9zdChbZWxldmF0aW9uPSIxIl0pIHsKICAgICAgICBAYXBwbHkgLS1zaGFkb3ctZWxldmF0aW9uLTJkcDsKICAgICAgfQoKICAgICAgOmhvc3QoW2VsZXZhdGlvbj0iMiJdKSB7CiAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi00ZHA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtlbGV2YXRpb249IjMiXSkgewogICAgICAgIEBhcHBseSAtLXNoYWRvdy1lbGV2YXRpb24tNmRwOwogICAgICB9CgogICAgICA6aG9zdChbZWxldmF0aW9uPSI0Il0pIHsKICAgICAgICBAYXBwbHkgLS1zaGFkb3ctZWxldmF0aW9uLThkcDsKICAgICAgfQoKICAgICAgOmhvc3QoW2VsZXZhdGlvbj0iNSJdKSB7CiAgICAgICAgQGFwcGx5IC0tc2hhZG93LWVsZXZhdGlvbi0xNmRwOwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvdGVtcGxhdGU+CjwvZG9tLW1vZHVsZT4KYDtocy5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTogbm9uZTsiKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGhzLmNvbnRlbnQpLAovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KanIoe190ZW1wbGF0ZTp4ZWAKICAgIDxzdHlsZSBpbmNsdWRlPSJwYXBlci1tYXRlcmlhbC1zaGFyZWQtc3R5bGVzIj48L3N0eWxlPgogICAgPHN0eWxlPgogICAgICA6aG9zdChbYW5pbWF0ZWRdKSB7CiAgICAgICAgQGFwcGx5IC0tc2hhZG93LXRyYW5zaXRpb247CiAgICAgIH0KICAgICAgOmhvc3QgewogICAgICAgIEBhcHBseSAtLXBhcGVyLW1hdGVyaWFsOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxzbG90Pjwvc2xvdD4KYCxpczoicGFwZXItbWF0ZXJpYWwiLHByb3BlcnRpZXM6e2VsZXZhdGlvbjp7dHlwZTpOdW1iZXIscmVmbGVjdFRvQXR0cmlidXRlOiEwLHZhbHVlOjF9LGFuaW1hdGVkOnt0eXBlOkJvb2xlYW4scmVmbGVjdFRvQXR0cmlidXRlOiEwLHZhbHVlOiExfX19KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IGRzPXtwcm9wZXJ0aWVzOnt2YWx1ZTp7dHlwZTpOdW1iZXIsdmFsdWU6MCxub3RpZnk6ITAscmVmbGVjdFRvQXR0cmlidXRlOiEwfSxtaW46e3R5cGU6TnVtYmVyLHZhbHVlOjAsbm90aWZ5OiEwfSxtYXg6e3R5cGU6TnVtYmVyLHZhbHVlOjEwMCxub3RpZnk6ITB9LHN0ZXA6e3R5cGU6TnVtYmVyLHZhbHVlOjEsbm90aWZ5OiEwfSxyYXRpbzp7dHlwZTpOdW1iZXIsdmFsdWU6MCxyZWFkT25seTohMCxub3RpZnk6ITB9fSxvYnNlcnZlcnM6WyJfdXBkYXRlKHZhbHVlLCBtaW4sIG1heCwgc3RlcCkiXSxfY2FsY1JhdGlvOmZ1bmN0aW9uKHQpe3JldHVybih0aGlzLl9jbGFtcFZhbHVlKHQpLXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pfSxfY2xhbXBWYWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5taW4odGhpcy5tYXgsTWF0aC5tYXgodGhpcy5taW4sdGhpcy5fY2FsY1N0ZXAodCkpKX0sX2NhbGNTdGVwOmZ1bmN0aW9uKHQpe2lmKHQ9cGFyc2VGbG9hdCh0KSwhdGhpcy5zdGVwKXJldHVybiB0O3ZhciBlPU1hdGgucm91bmQoKHQtdGhpcy5taW4pL3RoaXMuc3RlcCk7cmV0dXJuIHRoaXMuc3RlcDwxP2UvKDEvdGhpcy5zdGVwKSt0aGlzLm1pbjplKnRoaXMuc3RlcCt0aGlzLm1pbn0sX3ZhbGlkYXRlVmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9jbGFtcFZhbHVlKHRoaXMudmFsdWUpO3JldHVybiB0aGlzLnZhbHVlPXRoaXMub2xkVmFsdWU9aXNOYU4odCk/dGhpcy5vbGRWYWx1ZTp0LHRoaXMudmFsdWUhPT10fSxfdXBkYXRlOmZ1bmN0aW9uKCl7dGhpcy5fdmFsaWRhdGVWYWx1ZSgpLHRoaXMuX3NldFJhdGlvKDEwMCp0aGlzLl9jYWxjUmF0aW8odGhpcy52YWx1ZSkpfX07Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqL2pyKHtfdGVtcGxhdGU6eGVgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMjAwcHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIDpob3N0KFtoaWRkZW5dKSwgW2hpZGRlbl0gewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgI3Byb2dyZXNzQ29udGFpbmVyIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1wcm9ncmVzcy1jb250YWluZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAjcHJvZ3Jlc3NDb250YWluZXIsCiAgICAgIC8qIHRoZSBzdHJpcGUgZm9yIHRoZSBpbmRldGVybWluYXRlIGFuaW1hdGlvbiovCiAgICAgIC5pbmRldGVybWluYXRlOjphZnRlciB7CiAgICAgICAgaGVpZ2h0OiB2YXIoLS1wYXBlci1wcm9ncmVzcy1oZWlnaHQsIDRweCk7CiAgICAgIH0KCiAgICAgICNwcmltYXJ5UHJvZ3Jlc3MsCiAgICAgICNzZWNvbmRhcnlQcm9ncmVzcywKICAgICAgLmluZGV0ZXJtaW5hdGU6OmFmdGVyIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZml0OwogICAgICB9CgogICAgICAjcHJvZ3Jlc3NDb250YWluZXIsCiAgICAgIC5pbmRldGVybWluYXRlOjphZnRlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcGFwZXItcHJvZ3Jlc3MtY29udGFpbmVyLWNvbG9yLCB2YXIoLS1nb29nbGUtZ3JleS0zMDApKTsKICAgICAgfQoKICAgICAgOmhvc3QoLnRyYW5zaXRpbmcpICNwcmltYXJ5UHJvZ3Jlc3MsCiAgICAgIDpob3N0KC50cmFuc2l0aW5nKSAjc2Vjb25kYXJ5UHJvZ3Jlc3MgewogICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogLXdlYmtpdC10cmFuc2Zvcm07CiAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtOwoKICAgICAgICAvKiBEdXJhdGlvbiAqLwogICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tcGFwZXItcHJvZ3Jlc3MtdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4wOHMpOwogICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXBhcGVyLXByb2dyZXNzLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMDhzKTsKCiAgICAgICAgLyogVGltaW5nIGZ1bmN0aW9uICovCiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tcGFwZXItcHJvZ3Jlc3MtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2UpOwogICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1wYXBlci1wcm9ncmVzcy10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZSk7CgogICAgICAgIC8qIERlbGF5ICovCiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS1wYXBlci1wcm9ncmVzcy10cmFuc2l0aW9uLWRlbGF5LCAwcyk7CiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tcGFwZXItcHJvZ3Jlc3MtdHJhbnNpdGlvbi1kZWxheSwgMHMpOwogICAgICB9CgogICAgICAjcHJpbWFyeVByb2dyZXNzLAogICAgICAjc2Vjb25kYXJ5UHJvZ3Jlc3MgewogICAgICAgIEBhcHBseSAtLWxheW91dC1maXQ7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjsKICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjsKICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDApOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgIH0KCiAgICAgICNwcmltYXJ5UHJvZ3Jlc3MgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXBhcGVyLXByb2dyZXNzLWFjdGl2ZS1jb2xvciwgdmFyKC0tZ29vZ2xlLWdyZWVuLTUwMCkpOwogICAgICB9CgogICAgICAjc2Vjb25kYXJ5UHJvZ3Jlc3MgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXBhcGVyLXByb2dyZXNzLXNlY29uZGFyeS1jb2xvciwgdmFyKC0tZ29vZ2xlLWdyZWVuLTEwMCkpOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAjcHJpbWFyeVByb2dyZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wYXBlci1wcm9ncmVzcy1kaXNhYmxlZC1hY3RpdmUtY29sb3IsIHZhcigtLWdvb2dsZS1ncmV5LTUwMCkpOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAjc2Vjb25kYXJ5UHJvZ3Jlc3MgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXBhcGVyLXByb2dyZXNzLWRpc2FibGVkLXNlY29uZGFyeS1jb2xvciwgdmFyKC0tZ29vZ2xlLWdyZXktMzAwKSk7CiAgICAgIH0KCiAgICAgIDpob3N0KDpub3QoW2Rpc2FibGVkXSkpICNwcmltYXJ5UHJvZ3Jlc3MuaW5kZXRlcm1pbmF0ZSB7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgY2VudGVyOwogICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBpbmRldGVybWluYXRlLWJhciB2YXIoLS1wYXBlci1wcm9ncmVzcy1pbmRldGVybWluYXRlLWN5Y2xlLWR1cmF0aW9uLCAycykgbGluZWFyIGluZmluaXRlOwogICAgICAgIGFuaW1hdGlvbjogaW5kZXRlcm1pbmF0ZS1iYXIgdmFyKC0tcGFwZXItcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZS1jeWNsZS1kdXJhdGlvbiwgMnMpIGxpbmVhciBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgOmhvc3QoOm5vdChbZGlzYWJsZWRdKSkgI3ByaW1hcnlQcm9ncmVzcy5pbmRldGVybWluYXRlOjphZnRlciB7CiAgICAgICAgY29udGVudDogIiI7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOwogICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7CgogICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBpbmRldGVybWluYXRlLXNwbGl0dGVyIHZhcigtLXBhcGVyLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUtY3ljbGUtZHVyYXRpb24sIDJzKSBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgYW5pbWF0aW9uOiBpbmRldGVybWluYXRlLXNwbGl0dGVyIHZhcigtLXBhcGVyLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUtY3ljbGUtZHVyYXRpb24sIDJzKSBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBpbmRldGVybWluYXRlLWJhciB7CiAgICAgICAgMCUgewogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgxKSB0cmFuc2xhdGVYKC0xMDAlKTsKICAgICAgICB9CiAgICAgICAgNTAlIHsKICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMSkgdHJhbnNsYXRlWCgwJSk7CiAgICAgICAgfQogICAgICAgIDc1JSB7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDEpIHRyYW5zbGF0ZVgoMCUpOwogICAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjI4LC42MiwuMzcsLjkxKTsKICAgICAgICB9CiAgICAgICAgMTAwJSB7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDApIHRyYW5zbGF0ZVgoMCUpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIGluZGV0ZXJtaW5hdGUtc3BsaXR0ZXIgewogICAgICAgIDAlIHsKICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoLjc1KSB0cmFuc2xhdGVYKC0xMjUlKTsKICAgICAgICB9CiAgICAgICAgMzAlIHsKICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoLjc1KSB0cmFuc2xhdGVYKC0xMjUlKTsKICAgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC40MiwwLC42LC44KTsKICAgICAgICB9CiAgICAgICAgOTAlIHsKICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoLjc1KSB0cmFuc2xhdGVYKDEyNSUpOwogICAgICAgIH0KICAgICAgICAxMDAlIHsKICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoLjc1KSB0cmFuc2xhdGVYKDEyNSUpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBpbmRldGVybWluYXRlLWJhciB7CiAgICAgICAgMCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSkgdHJhbnNsYXRlWCgtMTAwJSk7CiAgICAgICAgfQogICAgICAgIDUwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKSB0cmFuc2xhdGVYKDAlKTsKICAgICAgICB9CiAgICAgICAgNzUlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpIHRyYW5zbGF0ZVgoMCUpOwogICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4yOCwuNjIsLjM3LC45MSk7CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMCkgdHJhbnNsYXRlWCgwJSk7CiAgICAgICAgfQogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGluZGV0ZXJtaW5hdGUtc3BsaXR0ZXIgewogICAgICAgIDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKC43NSkgdHJhbnNsYXRlWCgtMTI1JSk7CiAgICAgICAgfQogICAgICAgIDMwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCguNzUpIHRyYW5zbGF0ZVgoLTEyNSUpOwogICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC40MiwwLC42LC44KTsKICAgICAgICB9CiAgICAgICAgOTAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKC43NSkgdHJhbnNsYXRlWCgxMjUlKTsKICAgICAgICB9CiAgICAgICAgMTAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCguNzUpIHRyYW5zbGF0ZVgoMTI1JSk7CiAgICAgICAgfQogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgaWQ9InByb2dyZXNzQ29udGFpbmVyIj4KICAgICAgPGRpdiBpZD0ic2Vjb25kYXJ5UHJvZ3Jlc3MiIGhpZGRlblwkPSJbW19oaWRlU2Vjb25kYXJ5UHJvZ3Jlc3Moc2Vjb25kYXJ5UmF0aW8pXV0iPjwvZGl2PgogICAgICA8ZGl2IGlkPSJwcmltYXJ5UHJvZ3Jlc3MiPjwvZGl2PgogICAgPC9kaXY+CmAsaXM6InBhcGVyLXByb2dyZXNzIixiZWhhdmlvcnM6W2RzXSxwcm9wZXJ0aWVzOntzZWNvbmRhcnlQcm9ncmVzczp7dHlwZTpOdW1iZXIsdmFsdWU6MH0sc2Vjb25kYXJ5UmF0aW86e3R5cGU6TnVtYmVyLHZhbHVlOjAscmVhZE9ubHk6ITB9LGluZGV0ZXJtaW5hdGU6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxvYnNlcnZlcjoiX3RvZ2dsZUluZGV0ZXJtaW5hdGUifSxkaXNhYmxlZDp7dHlwZTpCb29sZWFuLHZhbHVlOiExLHJlZmxlY3RUb0F0dHJpYnV0ZTohMCxvYnNlcnZlcjoiX2Rpc2FibGVkQ2hhbmdlZCJ9fSxvYnNlcnZlcnM6WyJfcHJvZ3Jlc3NDaGFuZ2VkKHNlY29uZGFyeVByb2dyZXNzLCB2YWx1ZSwgbWluLCBtYXgsIGluZGV0ZXJtaW5hdGUpIl0saG9zdEF0dHJpYnV0ZXM6e3JvbGU6InByb2dyZXNzYmFyIn0sX3RvZ2dsZUluZGV0ZXJtaW5hdGU6ZnVuY3Rpb24odCl7dGhpcy50b2dnbGVDbGFzcygiaW5kZXRlcm1pbmF0ZSIsdCx0aGlzLiQucHJpbWFyeVByb2dyZXNzKX0sX3RyYW5zZm9ybVByb2dyZXNzOmZ1bmN0aW9uKHQsZSl7dC5zdHlsZS50cmFuc2Zvcm09dC5zdHlsZS53ZWJraXRUcmFuc2Zvcm09InNjYWxlWCgiK2UvMTAwKyIpIn0sX21haW5SYXRpb0NoYW5nZWQ6ZnVuY3Rpb24odCl7dGhpcy5fdHJhbnNmb3JtUHJvZ3Jlc3ModGhpcy4kLnByaW1hcnlQcm9ncmVzcyx0KX0sX3Byb2dyZXNzQ2hhbmdlZDpmdW5jdGlvbih0LGUsbixpLHIpe3Q9dGhpcy5fY2xhbXBWYWx1ZSh0KSxlPXRoaXMuX2NsYW1wVmFsdWUoZSk7dmFyIG89MTAwKnRoaXMuX2NhbGNSYXRpbyh0KSxhPTEwMCp0aGlzLl9jYWxjUmF0aW8oZSk7dGhpcy5fc2V0U2Vjb25kYXJ5UmF0aW8obyksdGhpcy5fdHJhbnNmb3JtUHJvZ3Jlc3ModGhpcy4kLnNlY29uZGFyeVByb2dyZXNzLG8pLHRoaXMuX3RyYW5zZm9ybVByb2dyZXNzKHRoaXMuJC5wcmltYXJ5UHJvZ3Jlc3MsYSksdGhpcy5zZWNvbmRhcnlQcm9ncmVzcz10LHI/dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtdmFsdWVub3ciKTp0aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS12YWx1ZW5vdyIsZSksdGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtdmFsdWVtaW4iLG4pLHRoaXMuc2V0QXR0cmlidXRlKCJhcmlhLXZhbHVlbWF4IixpKX0sX2Rpc2FibGVkQ2hhbmdlZDpmdW5jdGlvbih0KXt0aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS1kaXNhYmxlZCIsdD8idHJ1ZSI6ImZhbHNlIil9LF9oaWRlU2Vjb25kYXJ5UHJvZ3Jlc3M6ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10fX0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBwcz14ZWAKPHN0eWxlPgogIDpob3N0IHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIGxpbmUtaGVpZ2h0OiAwOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWJhc2U7CiAgICAtLWNhbGN1bGF0ZWQtcGFwZXItcmFkaW8tYnV0dG9uLXNpemU6IHZhcigtLXBhcGVyLXJhZGlvLWJ1dHRvbi1zaXplLCAxNnB4KTsKICAgIC8qIC0xcHggaXMgYSBzZW50aW5lbCBmb3IgdGhlIGRlZmF1bHQgYW5kIGlzIHJlcGxhY2UgaW4gXGBhdHRhY2hlZFxgLiAqLwogICAgLS1jYWxjdWxhdGVkLXBhcGVyLXJhZGlvLWJ1dHRvbi1pbmstc2l6ZTogdmFyKC0tcGFwZXItcmFkaW8tYnV0dG9uLWluay1zaXplLCAtMXB4KTsKICB9CgogIDpob3N0KDpmb2N1cykgewogICAgb3V0bGluZTogbm9uZTsKICB9CgogICNyYWRpb0NvbnRhaW5lciB7CiAgICBAYXBwbHkgLS1sYXlvdXQtaW5saW5lOwogICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlci1jZW50ZXI7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB3aWR0aDogdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1yYWRpby1idXR0b24tc2l6ZSk7CiAgICBoZWlnaHQ6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItcmFkaW8tYnV0dG9uLXNpemUpOwogICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKCiAgICBAYXBwbHkgLS1wYXBlci1yYWRpby1idXR0b24tcmFkaW8tY29udGFpbmVyOwogIH0KCiAgI2luayB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDUwJTsKICAgIGxlZnQ6IDUwJTsKICAgIHJpZ2h0OiBhdXRvOwogICAgd2lkdGg6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItcmFkaW8tYnV0dG9uLWluay1zaXplKTsKICAgIGhlaWdodDogdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1yYWRpby1idXR0b24taW5rLXNpemUpOwogICAgY29sb3I6IHZhcigtLXBhcGVyLXJhZGlvLWJ1dHRvbi11bmNoZWNrZWQtaW5rLWNvbG9yLCB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpKTsKICAgIG9wYWNpdHk6IDAuNjsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogIH0KCiAgI2lua1tjaGVja2VkXSB7CiAgICBjb2xvcjogdmFyKC0tcGFwZXItcmFkaW8tYnV0dG9uLWNoZWNrZWQtaW5rLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSk7CiAgfQoKICAjb2ZmUmFkaW8sICNvblJhZGlvIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICB0b3A6IDA7CiAgICBsZWZ0OiAwOwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgfQoKICAjb2ZmUmFkaW8gewogICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tcGFwZXItcmFkaW8tYnV0dG9uLXVuY2hlY2tlZC1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci1yYWRpby1idXR0b24tdW5jaGVja2VkLWJhY2tncm91bmQtY29sb3IsIHRyYW5zcGFyZW50KTsKICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjI4czsKICB9CgogICNvblJhZGlvIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXJhZGlvLWJ1dHRvbi1jaGVja2VkLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSk7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCk7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDApOwogICAgdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gZWFzZSAwLjI4czsKICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSBlYXNlIDAuMjhzOwogICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICB9CgogIDpob3N0KFtjaGVja2VkXSkgI29mZlJhZGlvIHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcGFwZXItcmFkaW8tYnV0dG9uLWNoZWNrZWQtY29sb3IsIHZhcigtLXByaW1hcnktY29sb3IpKTsKICB9CgogIDpob3N0KFtjaGVja2VkXSkgI29uUmFkaW8gewogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNSk7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7CiAgfQoKICAjcmFkaW9MYWJlbCB7CiAgICBsaW5lLWhlaWdodDogbm9ybWFsOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1wYXBlci1yYWRpby1idXR0b24tbGFiZWwtc3BhY2luZywgMTBweCk7CiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOwogICAgY29sb3I6IHZhcigtLXBhcGVyLXJhZGlvLWJ1dHRvbi1sYWJlbC1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7CgogICAgQGFwcGx5IC0tcGFwZXItcmFkaW8tYnV0dG9uLWxhYmVsOwogIH0KCiAgOmhvc3QoW2NoZWNrZWRdKSAjcmFkaW9MYWJlbCB7CiAgICBAYXBwbHkgLS1wYXBlci1yYWRpby1idXR0b24tbGFiZWwtY2hlY2tlZDsKICB9CgogICNyYWRpb0xhYmVsOmRpcihydGwpIHsKICAgIG1hcmdpbi1sZWZ0OiAwOwogICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1wYXBlci1yYWRpby1idXR0b24tbGFiZWwtc3BhY2luZywgMTBweCk7CiAgfQoKICAjcmFkaW9MYWJlbFtoaWRkZW5dIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQoKICAvKiBkaXNhYmxlZCBzdGF0ZSAqLwoKICA6aG9zdChbZGlzYWJsZWRdKSAjb2ZmUmFkaW8gewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wYXBlci1yYWRpby1idXR0b24tdW5jaGVja2VkLWNvbG9yLCB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpKTsKICAgIG9wYWNpdHk6IDAuNTsKICB9CgogIDpob3N0KFtkaXNhYmxlZF1bY2hlY2tlZF0pICNvblJhZGlvIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXJhZGlvLWJ1dHRvbi11bmNoZWNrZWQtY29sb3IsIHZhcigtLXByaW1hcnktdGV4dC1jb2xvcikpOwogICAgb3BhY2l0eTogMC41OwogIH0KCiAgOmhvc3QoW2Rpc2FibGVkXSkgI3JhZGlvTGFiZWwgewogICAgLyogc2xpZ2h0bHkgZGFya2VyIHRoYW4gdGhlIGJ1dHRvbiwgc28gdGhhdCBpdCdzIHJlYWRhYmxlICovCiAgICBvcGFjaXR5OiAwLjY1OwogIH0KPC9zdHlsZT4KCjxkaXYgaWQ9InJhZGlvQ29udGFpbmVyIj4KICA8ZGl2IGlkPSJvZmZSYWRpbyI+PC9kaXY+CiAgPGRpdiBpZD0ib25SYWRpbyI+PC9kaXY+CjwvZGl2PgoKPGRpdiBpZD0icmFkaW9MYWJlbCI+PHNsb3Q+PC9zbG90PjwvZGl2PmA7cHMuc2V0QXR0cmlidXRlKCJzdHJpcC13aGl0ZXNwYWNlIiwiIiksanIoe190ZW1wbGF0ZTpwcyxpczoicGFwZXItcmFkaW8tYnV0dG9uIixiZWhhdmlvcnM6W3dhXSxob3N0QXR0cmlidXRlczp7cm9sZToicmFkaW8iLCJhcmlhLWNoZWNrZWQiOiExLHRhYmluZGV4OjB9LHByb3BlcnRpZXM6e2FyaWFBY3RpdmVBdHRyaWJ1dGU6e3R5cGU6U3RyaW5nLHZhbHVlOiJhcmlhLWNoZWNrZWQifX0scmVhZHk6ZnVuY3Rpb24oKXt0aGlzLl9yaXBwbGVDb250YWluZXI9dGhpcy4kLnJhZGlvQ29udGFpbmVyfSxhdHRhY2hlZDpmdW5jdGlvbigpe0RpKHRoaXMsKGZ1bmN0aW9uKCl7aWYoIi0xcHgiPT09dGhpcy5nZXRDb21wdXRlZFN0eWxlVmFsdWUoIi0tY2FsY3VsYXRlZC1wYXBlci1yYWRpby1idXR0b24taW5rLXNpemUiKS50cmltKCkpe3ZhciB0PXBhcnNlRmxvYXQodGhpcy5nZXRDb21wdXRlZFN0eWxlVmFsdWUoIi0tY2FsY3VsYXRlZC1wYXBlci1yYWRpby1idXR0b24tc2l6ZSIpLnRyaW0oKSksZT1NYXRoLmZsb29yKDMqdCk7ZSUyIT10JTImJmUrKyx0aGlzLnVwZGF0ZVN0eWxlcyh7Ii0tcGFwZXItcmFkaW8tYnV0dG9uLWluay1zaXplIjplKyJweCJ9KX19KSl9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBmcz17aG9zdEF0dHJpYnV0ZXM6e3JvbGU6Im1lbnViYXIifSxrZXlCaW5kaW5nczp7bGVmdDoiX29uTGVmdEtleSIscmlnaHQ6Il9vblJpZ2h0S2V5In0sX29uVXBLZXk6ZnVuY3Rpb24odCl7dGhpcy5mb2N1c2VkSXRlbS5jbGljaygpLHQuZGV0YWlsLmtleWJvYXJkRXZlbnQucHJldmVudERlZmF1bHQoKX0sX29uRG93bktleTpmdW5jdGlvbih0KXt0aGlzLmZvY3VzZWRJdGVtLmNsaWNrKCksdC5kZXRhaWwua2V5Ym9hcmRFdmVudC5wcmV2ZW50RGVmYXVsdCgpfSxnZXQgX2lzUlRMKCl7cmV0dXJuInJ0bCI9PT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzKS5kaXJlY3Rpb259LF9vbkxlZnRLZXk6ZnVuY3Rpb24odCl7dGhpcy5faXNSVEw/dGhpcy5fZm9jdXNOZXh0KCk6dGhpcy5fZm9jdXNQcmV2aW91cygpLHQuZGV0YWlsLmtleWJvYXJkRXZlbnQucHJldmVudERlZmF1bHQoKX0sX29uUmlnaHRLZXk6ZnVuY3Rpb24odCl7dGhpcy5faXNSVEw/dGhpcy5fZm9jdXNQcmV2aW91cygpOnRoaXMuX2ZvY3VzTmV4dCgpLHQuZGV0YWlsLmtleWJvYXJkRXZlbnQucHJldmVudERlZmF1bHQoKX0sX29uS2V5ZG93bjpmdW5jdGlvbih0KXt0aGlzLmtleWJvYXJkRXZlbnRNYXRjaGVzS2V5cyh0LCJ1cCBkb3duIGxlZnQgcmlnaHQgZXNjIil8fHRoaXMuX2ZvY3VzV2l0aEtleWJvYXJkRXZlbnQodCl9fSxtcz1bdXMsZnNdOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KanIoe190ZW1wbGF0ZTp4ZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgOmhvc3QgOjpzbG90dGVkKCopIHsKICAgICAgICBwYWRkaW5nOiB2YXIoLS1wYXBlci1yYWRpby1ncm91cC1pdGVtLXBhZGRpbmcsIDEycHgpOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxzbG90Pjwvc2xvdD4KYCxpczoicGFwZXItcmFkaW8tZ3JvdXAiLGJlaGF2aW9yczpbbXNdLGhvc3RBdHRyaWJ1dGVzOntyb2xlOiJyYWRpb2dyb3VwIn0scHJvcGVydGllczp7YXR0ckZvclNlbGVjdGVkOnt0eXBlOlN0cmluZyx2YWx1ZToibmFtZSJ9LHNlbGVjdGVkQXR0cmlidXRlOnt0eXBlOlN0cmluZyx2YWx1ZToiY2hlY2tlZCJ9LHNlbGVjdGFibGU6e3R5cGU6U3RyaW5nLHZhbHVlOiJwYXBlci1yYWRpby1idXR0b24ifSxhbGxvd0VtcHR5U2VsZWN0aW9uOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9fSxzZWxlY3Q6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdmFsdWVUb0l0ZW0odCk7aWYoIWV8fCFlLmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKSl7aWYodGhpcy5zZWxlY3RlZCl7dmFyIG49dGhpcy5fdmFsdWVUb0l0ZW0odGhpcy5zZWxlY3RlZCk7aWYodGhpcy5zZWxlY3RlZD09dCl7aWYoIXRoaXMuYWxsb3dFbXB0eVNlbGVjdGlvbilyZXR1cm4gdm9pZChuJiYobi5jaGVja2VkPSEwKSk7dD0iIn1uJiYobi5jaGVja2VkPSExKX1lYS5zZWxlY3QuYXBwbHkodGhpcyxbdF0pLHRoaXMuZmlyZSgicGFwZXItcmFkaW8tZ3JvdXAtY2hhbmdlZCIpfX0sX2FjdGl2YXRlRm9jdXNlZEl0ZW06ZnVuY3Rpb24oKXt0aGlzLl9pdGVtQWN0aXZhdGUodGhpcy5fdmFsdWVGb3JJdGVtKHRoaXMuZm9jdXNlZEl0ZW0pLHRoaXMuZm9jdXNlZEl0ZW0pfSxfb25VcEtleTpmdW5jdGlvbih0KXt0aGlzLl9mb2N1c1ByZXZpb3VzKCksdC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2FjdGl2YXRlRm9jdXNlZEl0ZW0oKX0sX29uRG93bktleTpmdW5jdGlvbih0KXt0aGlzLl9mb2N1c05leHQoKSx0LnByZXZlbnREZWZhdWx0KCksdGhpcy5fYWN0aXZhdGVGb2N1c2VkSXRlbSgpfSxfb25MZWZ0S2V5OmZ1bmN0aW9uKHQpe2ZzLl9vbkxlZnRLZXkuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX2FjdGl2YXRlRm9jdXNlZEl0ZW0oKX0sX29uUmlnaHRLZXk6ZnVuY3Rpb24odCl7ZnMuX29uUmlnaHRLZXkuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX2FjdGl2YXRlRm9jdXNlZEl0ZW0oKX19KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IGdzPXhlYAogIDxzdHlsZT4KICAgIDpob3N0IHsKICAgICAgQGFwcGx5IC0tbGF5b3V0OwogICAgICBAYXBwbHkgLS1sYXlvdXQtanVzdGlmaWVkOwogICAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyOwogICAgICB3aWR0aDogMjAwcHg7CiAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOwogICAgICAtLXBhcGVyLXByb2dyZXNzLWFjdGl2ZS1jb2xvcjogdmFyKC0tcGFwZXItc2xpZGVyLWFjdGl2ZS1jb2xvciwgdmFyKC0tZ29vZ2xlLWJsdWUtNzAwKSk7CiAgICAgIC0tcGFwZXItcHJvZ3Jlc3Mtc2Vjb25kYXJ5LWNvbG9yOiB2YXIoLS1wYXBlci1zbGlkZXItc2Vjb25kYXJ5LWNvbG9yLCB2YXIoLS1nb29nbGUtYmx1ZS0zMDApKTsKICAgICAgLS1wYXBlci1wcm9ncmVzcy1kaXNhYmxlZC1hY3RpdmUtY29sb3I6IHZhcigtLXBhcGVyLXNsaWRlci1kaXNhYmxlZC1hY3RpdmUtY29sb3IsIHZhcigtLXBhcGVyLWdyZXktNDAwKSk7CiAgICAgIC0tcGFwZXItcHJvZ3Jlc3MtZGlzYWJsZWQtc2Vjb25kYXJ5LWNvbG9yOiB2YXIoLS1wYXBlci1zbGlkZXItZGlzYWJsZWQtc2Vjb25kYXJ5LWNvbG9yLCB2YXIoLS1wYXBlci1ncmV5LTQwMCkpOwogICAgICAtLWNhbGN1bGF0ZWQtcGFwZXItc2xpZGVyLWhlaWdodDogdmFyKC0tcGFwZXItc2xpZGVyLWhlaWdodCwgMnB4KTsKICAgIH0KCiAgICAvKiBmb2N1cyBzaG93cyB0aGUgcmlwcGxlICovCiAgICA6aG9zdCg6Zm9jdXMpIHsKICAgICAgb3V0bGluZTogbm9uZTsKICAgIH0KCiAgICAvKioKICAgICAgKiBOT1RFKGtlYW51bGVlKTogVGhvdWdoIDpob3N0LWNvbnRleHQgaXMgbm90IHVuaXZlcnNhbGx5IHN1cHBvcnRlZCwgc29tZSBwYWdlcwogICAgICAqIHN0aWxsIHJlbHkgb24gcGFwZXItc2xpZGVyIGJlaW5nIGZsaXBwZWQgd2hlbiBkaXI9InJ0bCIgaXMgc2V0IG9uIGJvZHkuIEZvciBmdWxsCiAgICAgICogY29tcGF0aWJpbGl0eSwgZGlyPSJydGwiIG11c3QgYmUgZXhwbGljaXRseSBzZXQgb24gcGFwZXItc2xpZGVyLgogICAgICAqLwogICAgOmRpcihydGwpICNzbGlkZXJDb250YWluZXIgewogICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKC0xKTsKICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpOwogICAgfQoKICAgIC8qKgogICAgICAqIE5PVEUoa2VhbnVsZWUpOiBUaGlzIGlzIHNlcGFyYXRlIGZyb20gdGhlIHJ1bGUgYWJvdmUgYmVjYXVzZSA6aG9zdC1jb250ZXh0IG1heQogICAgICAqIG5vdCBiZSByZWNvZ25pemVkLgogICAgICAqLwogICAgOmhvc3QoW2Rpcj0icnRsIl0pICNzbGlkZXJDb250YWluZXIgewogICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKC0xKTsKICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpOwogICAgfQoKICAgIC8qKgogICAgICAqIE5PVEUoa2VhbnVsZWUpOiBOZWVkZWQgdG8gb3ZlcnJpZGUgdGhlIDpob3N0LWNvbnRleHQgcnVsZSAod2hlcmUgc3VwcG9ydGVkKQogICAgICAqIHRvIHN1cHBvcnQgTFRSIHNsaWRlcnMgaW4gUlRMIHBhZ2VzLgogICAgICAqLwogICAgOmhvc3QoW2Rpcj0ibHRyIl0pICNzbGlkZXJDb250YWluZXIgewogICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDEpOwogICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTsKICAgIH0KCiAgICAjc2xpZGVyQ29udGFpbmVyIHsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiBjYWxjKDMwcHggKyB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXNsaWRlci1oZWlnaHQpKTsKICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoMTVweCArIHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItc2xpZGVyLWhlaWdodCkvMik7CiAgICAgIG1hcmdpbi1yaWdodDogY2FsYygxNXB4ICsgdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1zbGlkZXItaGVpZ2h0KS8yKTsKICAgIH0KCiAgICAjc2xpZGVyQ29udGFpbmVyOmZvY3VzIHsKICAgICAgb3V0bGluZTogMDsKICAgIH0KCiAgICAjc2xpZGVyQ29udGFpbmVyLmVkaXRhYmxlIHsKICAgICAgbWFyZ2luLXRvcDogMTJweDsKICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgIH0KCiAgICAuYmFyLWNvbnRhaW5lciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICBib3R0b206IDA7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHJpZ2h0OiAwOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQoKICAgIC5yaW5nID4gLmJhci1jb250YWluZXIgewogICAgICBsZWZ0OiBjYWxjKDVweCArIHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItc2xpZGVyLWhlaWdodCkvMik7CiAgICAgIHRyYW5zaXRpb246IGxlZnQgMC4xOHMgZWFzZTsKICAgIH0KCiAgICAucmluZy5leHBhbmQuZHJhZ2dpbmcgPiAuYmFyLWNvbnRhaW5lciB7CiAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICB9CgogICAgLnJpbmcuZXhwYW5kOm5vdCgucGluKSA+IC5iYXItY29udGFpbmVyIHsKICAgICAgbGVmdDogY2FsYyg4cHggKyB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXNsaWRlci1oZWlnaHQpLzIpOwogICAgfQoKICAgICNzbGlkZXJCYXIgewogICAgICBwYWRkaW5nOiAxNXB4IDA7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci1zbGlkZXItYmFyLWNvbG9yLCB0cmFuc3BhcmVudCk7CiAgICAgIC0tcGFwZXItcHJvZ3Jlc3MtY29udGFpbmVyLWNvbG9yOiB2YXIoLS1wYXBlci1zbGlkZXItY29udGFpbmVyLWNvbG9yLCB2YXIoLS1wYXBlci1ncmV5LTQwMCkpOwogICAgICAtLXBhcGVyLXByb2dyZXNzLWhlaWdodDogdmFyKC0tY2FsY3VsYXRlZC1wYXBlci1zbGlkZXItaGVpZ2h0KTsKICAgIH0KCiAgICAuc2xpZGVyLW1hcmtlcnMgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIC8qIHNsaWRlci1rbm9iIGlzIDMwcHggKyB0aGUgc2xpZGVyLWhlaWdodCBzbyB0aGF0IHRoZSBtYXJrZXJzIHNob3VsZCBzdGFydCBhdCBhIG9mZnNldCBvZiAxNXB4Ki8KICAgICAgdG9wOiAxNXB4OwogICAgICBoZWlnaHQ6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItc2xpZGVyLWhlaWdodCk7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHJpZ2h0OiAtMXB4OwogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgQGFwcGx5IC0tbGF5b3V0LWhvcml6b250YWw7CiAgICB9CgogICAgLnNsaWRlci1tYXJrZXIgewogICAgICBAYXBwbHkgLS1sYXlvdXQtZmxleDsKICAgIH0KICAgIC5zbGlkZXItbWFya2Vyczo6YWZ0ZXIsCiAgICAuc2xpZGVyLW1hcmtlcjo6YWZ0ZXIgewogICAgICBjb250ZW50OiAiIjsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4OwogICAgICB3aWR0aDogMnB4OwogICAgICBoZWlnaHQ6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItc2xpZGVyLWhlaWdodCk7CiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItc2xpZGVyLW1hcmtlcnMtY29sb3IsICMwMDApOwogICAgfQoKICAgIC5zbGlkZXIta25vYiB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgbGVmdDogMDsKICAgICAgdG9wOiAwOwogICAgICBtYXJnaW4tbGVmdDogY2FsYygtMTVweCAtIHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItc2xpZGVyLWhlaWdodCkvMik7CiAgICAgIHdpZHRoOiBjYWxjKDMwcHggKyB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXNsaWRlci1oZWlnaHQpKTsKICAgICAgaGVpZ2h0OiBjYWxjKDMwcHggKyB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXNsaWRlci1oZWlnaHQpKTsKICAgIH0KCiAgICAudHJhbnNpdGluZyA+IC5zbGlkZXIta25vYiB7CiAgICAgIHRyYW5zaXRpb246IGxlZnQgMC4wOHMgZWFzZTsKICAgIH0KCiAgICAuc2xpZGVyLWtub2I6Zm9jdXMgewogICAgICBvdXRsaW5lOiBub25lOwogICAgfQoKICAgIC5zbGlkZXIta25vYi5kcmFnZ2luZyB7CiAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICB9CgogICAgLnNuYXBzID4gLnNsaWRlci1rbm9iLmRyYWdnaW5nIHsKICAgICAgdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4wOHMgZWFzZTsKICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMDhzIGVhc2U7CiAgICB9CgogICAgLnNsaWRlci1rbm9iLWlubmVyIHsKICAgICAgbWFyZ2luOiAxMHB4OwogICAgICB3aWR0aDogY2FsYygxMDAlIC0gMjBweCk7CiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMjBweCk7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXNsaWRlci1rbm9iLWNvbG9yLCB2YXIoLS1nb29nbGUtYmx1ZS03MDApKTsKICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tcGFwZXItc2xpZGVyLWtub2ItY29sb3IsIHZhcigtLWdvb2dsZS1ibHVlLTcwMCkpOwogICAgICBib3JkZXItcmFkaXVzOiA1MCU7CgogICAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CgogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiAtd2Via2l0LXRyYW5zZm9ybSwgYmFja2dyb3VuZC1jb2xvciwgYm9yZGVyOwogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIGJhY2tncm91bmQtY29sb3IsIGJvcmRlcjsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xOHM7CiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlOwogICAgfQoKICAgIC5leHBhbmQ6bm90KC5waW4pID4gLnNsaWRlci1rbm9iID4gLnNsaWRlci1rbm9iLWlubmVyIHsKICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuNSk7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTsKICAgIH0KCiAgICAucmluZyA+IC5zbGlkZXIta25vYiA+IC5zbGlkZXIta25vYi1pbm5lciB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXNsaWRlci1rbm9iLXN0YXJ0LWNvbG9yLCB0cmFuc3BhcmVudCk7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXBhcGVyLXNsaWRlci1rbm9iLXN0YXJ0LWJvcmRlci1jb2xvciwgdmFyKC0tcGFwZXItZ3JleS00MDApKTsKICAgIH0KCiAgICAuc2xpZGVyLWtub2ItaW5uZXI6OmJlZm9yZSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXNsaWRlci1waW4tY29sb3IsIHZhcigtLWdvb2dsZS1ibHVlLTcwMCkpOwogICAgfQoKICAgIC5waW4gPiAuc2xpZGVyLWtub2IgPiAuc2xpZGVyLWtub2ItaW5uZXI6OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICIiOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgbGVmdDogNTAlOwogICAgICBtYXJnaW4tbGVmdDogLTEzcHg7CiAgICAgIHdpZHRoOiAyNnB4OwogICAgICBoZWlnaHQ6IDI2cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSA1MCUgNTAlIDA7CgogICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgc2NhbGUoMCkgdHJhbnNsYXRlKDApOwogICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDApIHRyYW5zbGF0ZSgwKTsKICAgIH0KCiAgICAuc2xpZGVyLWtub2ItaW5uZXI6OmJlZm9yZSwKICAgIC5zbGlkZXIta25vYi1pbm5lcjo6YWZ0ZXIgewogICAgICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAuMThzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgLjE4cyBlYXNlOwogICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjE4cyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIC4xOHMgZWFzZTsKICAgIH0KCiAgICAucGluLnJpbmcgPiAuc2xpZGVyLWtub2IgPiAuc2xpZGVyLWtub2ItaW5uZXI6OmJlZm9yZSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXNsaWRlci1waW4tc3RhcnQtY29sb3IsIHZhcigtLXBhcGVyLWdyZXktNDAwKSk7CiAgICB9CgogICAgLnBpbi5leHBhbmQgPiAuc2xpZGVyLWtub2IgPiAuc2xpZGVyLWtub2ItaW5uZXI6OmJlZm9yZSB7CiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgxKSB0cmFuc2xhdGUoMTdweCwgLTE3cHgpOwogICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDEpIHRyYW5zbGF0ZSgxN3B4LCAtMTdweCk7CiAgICB9CgogICAgLnBpbiA+IC5zbGlkZXIta25vYiA+IC5zbGlkZXIta25vYi1pbm5lcjo6YWZ0ZXIgewogICAgICBjb250ZW50OiBhdHRyKHZhbHVlKTsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIGxlZnQ6IDUwJTsKICAgICAgbWFyZ2luLWxlZnQ6IC0xNnB4OwogICAgICB3aWR0aDogMzJweDsKICAgICAgaGVpZ2h0OiAyNnB4OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1zbGlkZXItZm9udC1jb2xvciwgI2ZmZik7CiAgICAgIGZvbnQtc2l6ZTogMTBweDsKCiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwKSB0cmFuc2xhdGUoMCk7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCkgdHJhbnNsYXRlKDApOwogICAgfQoKICAgIC5waW4uZXhwYW5kID4gLnNsaWRlci1rbm9iID4gLnNsaWRlci1rbm9iLWlubmVyOjphZnRlciB7CiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGUoMCwgLTE3cHgpOwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZSgwLCAtMTdweCk7CiAgICB9CgogICAgLyogcGFwZXItaW5wdXQgKi8KICAgIC5zbGlkZXItaW5wdXQgewogICAgICB3aWR0aDogNTBweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQ6IHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItc2xpZGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dDsKICAgICAgfTsKICAgICAgQGFwcGx5IC0tcGFwZXItc2xpZGVyLWlucHV0OwogICAgfQoKICAgIC8qIGRpc2FibGVkIHN0YXRlICovCiAgICAjc2xpZGVyQ29udGFpbmVyLmRpc2FibGVkIHsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB9CgogICAgLmRpc2FibGVkID4gLnNsaWRlci1rbm9iID4gLnNsaWRlci1rbm9iLWlubmVyIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItc2xpZGVyLWRpc2FibGVkLWtub2ItY29sb3IsIHZhcigtLXBhcGVyLWdyZXktNDAwKSk7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXBhcGVyLXNsaWRlci1kaXNhYmxlZC1rbm9iLWNvbG9yLCB2YXIoLS1wYXBlci1ncmV5LTQwMCkpOwogICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjc1LCAwLjc1LCAxKTsKICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuNzUsIDAuNzUsIDEpOwogICAgfQoKICAgIC5kaXNhYmxlZC5yaW5nID4gLnNsaWRlci1rbm9iID4gLnNsaWRlci1rbm9iLWlubmVyIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItc2xpZGVyLWtub2Itc3RhcnQtY29sb3IsIHRyYW5zcGFyZW50KTsKICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tcGFwZXItc2xpZGVyLWtub2Itc3RhcnQtYm9yZGVyLWNvbG9yLCB2YXIoLS1wYXBlci1ncmV5LTQwMCkpOwogICAgfQoKICAgIHBhcGVyLXJpcHBsZSB7CiAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1zbGlkZXIta25vYi1jb2xvciwgdmFyKC0tZ29vZ2xlLWJsdWUtNzAwKSk7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBpZD0ic2xpZGVyQ29udGFpbmVyIiBjbGFzc1wkPSJbW19nZXRDbGFzc05hbWVzKGRpc2FibGVkLCBwaW4sIHNuYXBzLCBpbW1lZGlhdGVWYWx1ZSwgbWluLCBleHBhbmQsIGRyYWdnaW5nLCB0cmFuc2l0aW5nLCBlZGl0YWJsZSldXSI+CiAgICA8ZGl2IGNsYXNzPSJiYXItY29udGFpbmVyIj4KICAgICAgPHBhcGVyLXByb2dyZXNzIGRpc2FibGVkXCQ9IltbZGlzYWJsZWRdXSIgaWQ9InNsaWRlckJhciIgYXJpYS1oaWRkZW49InRydWUiIG1pbj0iW1ttaW5dXSIgbWF4PSJbW21heF1dIiBzdGVwPSJbW3N0ZXBdXSIgdmFsdWU9IltbaW1tZWRpYXRlVmFsdWVdXSIgc2Vjb25kYXJ5LXByb2dyZXNzPSJbW3NlY29uZGFyeVByb2dyZXNzXV0iIG9uLWRvd249Il9iYXJkb3duIiBvbi11cD0iX3Jlc2V0S25vYiIgb24tdHJhY2s9Il9iYXJ0cmFjayIgb24tdGFwPSJfYmFyY2xpY2siPgogICAgICA8L3BhcGVyLXByb2dyZXNzPgogICAgPC9kaXY+CgogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW3NuYXBzXV0iPgogICAgICA8ZGl2IGNsYXNzPSJzbGlkZXItbWFya2VycyI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1ttYXJrZXJzXV0iPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGVyLW1hcmtlciI+PC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9kaXY+CiAgICA8L3RlbXBsYXRlPgoKICAgIDxkaXYgaWQ9InNsaWRlcktub2IiIGNsYXNzPSJzbGlkZXIta25vYiIgb24tZG93bj0iX2tub2Jkb3duIiBvbi11cD0iX3Jlc2V0S25vYiIgb24tdHJhY2s9Il9vblRyYWNrIiBvbi10cmFuc2l0aW9uZW5kPSJfa25vYlRyYW5zaXRpb25FbmQiPgogICAgICAgIDxkaXYgY2xhc3M9InNsaWRlci1rbm9iLWlubmVyIiB2YWx1ZVwkPSJbW2ltbWVkaWF0ZVZhbHVlXV0iPjwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CgogIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tlZGl0YWJsZV1dIj4KICAgIDxwYXBlci1pbnB1dCBpZD0iaW5wdXQiIHR5cGU9Im51bWJlciIgc3RlcD0iW1tzdGVwXV0iIG1pbj0iW1ttaW5dXSIgbWF4PSJbW21heF1dIiBjbGFzcz0ic2xpZGVyLWlucHV0IiBkaXNhYmxlZFwkPSJbW2Rpc2FibGVkXV0iIHZhbHVlPSJbW2ltbWVkaWF0ZVZhbHVlXV0iIG9uLWNoYW5nZT0iX2NoYW5nZVZhbHVlIiBvbi1rZXlkb3duPSJfaW5wdXRLZXlEb3duIiBuby1sYWJlbC1mbG9hdD4KICAgIDwvcGFwZXItaW5wdXQ+CiAgPC90ZW1wbGF0ZT4KYDtncy5zZXRBdHRyaWJ1dGUoInN0cmlwLXdoaXRlc3BhY2UiLCIiKSxqcih7X3RlbXBsYXRlOmdzLGlzOiJwYXBlci1zbGlkZXIiLGJlaGF2aW9yczpbWG8sZ2EseGEsZHNdLHByb3BlcnRpZXM6e3ZhbHVlOnt0eXBlOk51bWJlcix2YWx1ZTowfSxzbmFwczp7dHlwZTpCb29sZWFuLHZhbHVlOiExLG5vdGlmeTohMH0scGluOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEsbm90aWZ5OiEwfSxzZWNvbmRhcnlQcm9ncmVzczp7dHlwZTpOdW1iZXIsdmFsdWU6MCxub3RpZnk6ITAsb2JzZXJ2ZXI6Il9zZWNvbmRhcnlQcm9ncmVzc0NoYW5nZWQifSxlZGl0YWJsZTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxpbW1lZGlhdGVWYWx1ZTp7dHlwZTpOdW1iZXIsdmFsdWU6MCxyZWFkT25seTohMCxub3RpZnk6ITB9LG1heE1hcmtlcnM6e3R5cGU6TnVtYmVyLHZhbHVlOjAsbm90aWZ5OiEwfSxleHBhbmQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxyZWFkT25seTohMH0saWdub3JlQmFyVG91Y2g6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sZHJhZ2dpbmc6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxyZWFkT25seTohMCxub3RpZnk6ITB9LHRyYW5zaXRpbmc6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxyZWFkT25seTohMH0sbWFya2Vyczp7dHlwZTpBcnJheSxyZWFkT25seTohMCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybltdfX19LG9ic2VydmVyczpbIl91cGRhdGVLbm9iKHZhbHVlLCBtaW4sIG1heCwgc25hcHMsIHN0ZXApIiwiX3ZhbHVlQ2hhbmdlZCh2YWx1ZSkiLCJfaW1tZWRpYXRlVmFsdWVDaGFuZ2VkKGltbWVkaWF0ZVZhbHVlKSIsIl91cGRhdGVNYXJrZXJzKG1heE1hcmtlcnMsIG1pbiwgbWF4LCBzbmFwcykiXSxob3N0QXR0cmlidXRlczp7cm9sZToic2xpZGVyIix0YWJpbmRleDowfSxrZXlCaW5kaW5nczp7bGVmdDoiX2xlZnRLZXkiLHJpZ2h0OiJfcmlnaHRLZXkiLCJkb3duIHBhZ2Vkb3duIGhvbWUiOiJfZGVjcmVtZW50S2V5IiwidXAgcGFnZXVwIGVuZCI6Il9pbmNyZW1lbnRLZXkifSxyZWFkeTpmdW5jdGlvbigpe3RoaXMuaWdub3JlQmFyVG91Y2gmJmRpKHRoaXMuJC5zbGlkZXJCYXIsImF1dG8iKX0saW5jcmVtZW50OmZ1bmN0aW9uKCl7dGhpcy52YWx1ZT10aGlzLl9jbGFtcFZhbHVlKHRoaXMudmFsdWUrdGhpcy5zdGVwKX0sZGVjcmVtZW50OmZ1bmN0aW9uKCl7dGhpcy52YWx1ZT10aGlzLl9jbGFtcFZhbHVlKHRoaXMudmFsdWUtdGhpcy5zdGVwKX0sX3VwZGF0ZUtub2I6ZnVuY3Rpb24odCxlLG4saSxyKXt0aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS12YWx1ZW1pbiIsZSksdGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtdmFsdWVtYXgiLG4pLHRoaXMuc2V0QXR0cmlidXRlKCJhcmlhLXZhbHVlbm93Iix0KSx0aGlzLl9wb3NpdGlvbktub2IoMTAwKnRoaXMuX2NhbGNSYXRpbyh0KSl9LF92YWx1ZUNoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLmZpcmUoInZhbHVlLWNoYW5nZSIse2NvbXBvc2VkOiEwfSl9LF9pbW1lZGlhdGVWYWx1ZUNoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLmRyYWdnaW5nP3RoaXMuZmlyZSgiaW1tZWRpYXRlLXZhbHVlLWNoYW5nZSIse2NvbXBvc2VkOiEwfSk6dGhpcy52YWx1ZT10aGlzLmltbWVkaWF0ZVZhbHVlfSxfc2Vjb25kYXJ5UHJvZ3Jlc3NDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5zZWNvbmRhcnlQcm9ncmVzcz10aGlzLl9jbGFtcFZhbHVlKHRoaXMuc2Vjb25kYXJ5UHJvZ3Jlc3MpfSxfZXhwYW5kS25vYjpmdW5jdGlvbigpe3RoaXMuX3NldEV4cGFuZCghMCl9LF9yZXNldEtub2I6ZnVuY3Rpb24oKXt0aGlzLmNhbmNlbERlYm91bmNlcigiZXhwYW5kS25vYiIpLHRoaXMuX3NldEV4cGFuZCghMSl9LF9wb3NpdGlvbktub2I6ZnVuY3Rpb24odCl7dGhpcy5fc2V0SW1tZWRpYXRlVmFsdWUodGhpcy5fY2FsY1N0ZXAodGhpcy5fY2FsY0tub2JQb3NpdGlvbih0KSkpLHRoaXMuX3NldFJhdGlvKDEwMCp0aGlzLl9jYWxjUmF0aW8odGhpcy5pbW1lZGlhdGVWYWx1ZSkpLHRoaXMuJC5zbGlkZXJLbm9iLnN0eWxlLmxlZnQ9dGhpcy5yYXRpbysiJSIsdGhpcy5kcmFnZ2luZyYmKHRoaXMuX2tub2JzdGFydHg9dGhpcy5yYXRpbyp0aGlzLl93LzEwMCx0aGlzLnRyYW5zbGF0ZTNkKDAsMCwwLHRoaXMuJC5zbGlkZXJLbm9iKSl9LF9jYWxjS25vYlBvc2l0aW9uOmZ1bmN0aW9uKHQpe3JldHVybih0aGlzLm1heC10aGlzLm1pbikqdC8xMDArdGhpcy5taW59LF9vblRyYWNrOmZ1bmN0aW9uKHQpe3N3aXRjaCh0LnN0b3BQcm9wYWdhdGlvbigpLHQuZGV0YWlsLnN0YXRlKXtjYXNlInN0YXJ0Ijp0aGlzLl90cmFja1N0YXJ0KHQpO2JyZWFrO2Nhc2UidHJhY2siOnRoaXMuX3RyYWNrWCh0KTticmVhaztjYXNlImVuZCI6dGhpcy5fdHJhY2tFbmQoKX19LF90cmFja1N0YXJ0OmZ1bmN0aW9uKHQpe3RoaXMuX3NldFRyYW5zaXRpbmcoITEpLHRoaXMuX3c9dGhpcy4kLnNsaWRlckJhci5vZmZzZXRXaWR0aCx0aGlzLl94PXRoaXMucmF0aW8qdGhpcy5fdy8xMDAsdGhpcy5fc3RhcnR4PXRoaXMuX3gsdGhpcy5fa25vYnN0YXJ0eD10aGlzLl9zdGFydHgsdGhpcy5fbWlueD0tdGhpcy5fc3RhcnR4LHRoaXMuX21heHg9dGhpcy5fdy10aGlzLl9zdGFydHgsdGhpcy4kLnNsaWRlcktub2IuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKSx0aGlzLl9zZXREcmFnZ2luZyghMCl9LF90cmFja1g6ZnVuY3Rpb24odCl7dGhpcy5kcmFnZ2luZ3x8dGhpcy5fdHJhY2tTdGFydCh0KTt2YXIgZT1NYXRoLm1pbih0aGlzLl9tYXh4LE1hdGgubWF4KHRoaXMuX21pbngsdC5kZXRhaWwuZHgqKHRoaXMuX2lzUlRMPy0xOjEpKSk7dGhpcy5feD10aGlzLl9zdGFydHgrZTt2YXIgbj10aGlzLl9jYWxjU3RlcCh0aGlzLl9jYWxjS25vYlBvc2l0aW9uKHRoaXMuX3gvdGhpcy5fdyoxMDApKTt0aGlzLl9zZXRJbW1lZGlhdGVWYWx1ZShuKTt2YXIgaT10aGlzLl9jYWxjUmF0aW8odGhpcy5pbW1lZGlhdGVWYWx1ZSkqdGhpcy5fdy10aGlzLl9rbm9ic3RhcnR4O3RoaXMudHJhbnNsYXRlM2QoaSsicHgiLDAsMCx0aGlzLiQuc2xpZGVyS25vYil9LF90cmFja0VuZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuJC5zbGlkZXJLbm9iLnN0eWxlO3RoaXMuJC5zbGlkZXJLbm9iLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksdGhpcy5fc2V0RHJhZ2dpbmcoITEpLHRoaXMuX3Jlc2V0S25vYigpLHRoaXMudmFsdWU9dGhpcy5pbW1lZGlhdGVWYWx1ZSx0LnRyYW5zZm9ybT10LndlYmtpdFRyYW5zZm9ybT0iIix0aGlzLmZpcmUoImNoYW5nZSIse2NvbXBvc2VkOiEwfSl9LF9rbm9iZG93bjpmdW5jdGlvbih0KXt0aGlzLl9leHBhbmRLbm9iKCksdC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXMoKX0sX2JhcnRyYWNrOmZ1bmN0aW9uKHQpe3RoaXMuX2FsbG93QmFyRXZlbnQodCkmJnRoaXMuX29uVHJhY2sodCl9LF9iYXJjbGljazpmdW5jdGlvbih0KXt0aGlzLl93PXRoaXMuJC5zbGlkZXJCYXIub2Zmc2V0V2lkdGg7dmFyIGU9dGhpcy4kLnNsaWRlckJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPSh0LmRldGFpbC54LWUubGVmdCkvdGhpcy5fdyoxMDA7dGhpcy5faXNSVEwmJihuPTEwMC1uKTt2YXIgaT10aGlzLnJhdGlvO3RoaXMuX3NldFRyYW5zaXRpbmcoITApLHRoaXMuX3Bvc2l0aW9uS25vYihuKSxpPT09dGhpcy5yYXRpbyYmdGhpcy5fc2V0VHJhbnNpdGluZyghMSksdGhpcy5hc3luYygoZnVuY3Rpb24oKXt0aGlzLmZpcmUoImNoYW5nZSIse2NvbXBvc2VkOiEwfSl9KSksdC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXMoKX0sX2JhcmRvd246ZnVuY3Rpb24odCl7dGhpcy5fYWxsb3dCYXJFdmVudCh0KSYmKHRoaXMuZGVib3VuY2UoImV4cGFuZEtub2IiLHRoaXMuX2V4cGFuZEtub2IsNjApLHRoaXMuX2JhcmNsaWNrKHQpKX0sX2tub2JUcmFuc2l0aW9uRW5kOmZ1bmN0aW9uKHQpe3QudGFyZ2V0PT09dGhpcy4kLnNsaWRlcktub2ImJnRoaXMuX3NldFRyYW5zaXRpbmcoITEpfSxfdXBkYXRlTWFya2VyczpmdW5jdGlvbih0LGUsbixpKXtpfHx0aGlzLl9zZXRNYXJrZXJzKFtdKTt2YXIgcj1NYXRoLnJvdW5kKChuLWUpL3RoaXMuc3RlcCk7cj50JiYocj10KSwocjwwfHwhaXNGaW5pdGUocikpJiYocj0wKSx0aGlzLl9zZXRNYXJrZXJzKG5ldyBBcnJheShyKSl9LF9tZXJnZUNsYXNzZXM6ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KSkuam9pbigiICIpfSxfZ2V0Q2xhc3NOYW1lczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9tZXJnZUNsYXNzZXMoe2Rpc2FibGVkOnRoaXMuZGlzYWJsZWQscGluOnRoaXMucGluLHNuYXBzOnRoaXMuc25hcHMscmluZzp0aGlzLmltbWVkaWF0ZVZhbHVlPD10aGlzLm1pbixleHBhbmQ6dGhpcy5leHBhbmQsZHJhZ2dpbmc6dGhpcy5kcmFnZ2luZyx0cmFuc2l0aW5nOnRoaXMudHJhbnNpdGluZyxlZGl0YWJsZTp0aGlzLmVkaXRhYmxlfSl9LF9hbGxvd0JhckV2ZW50OmZ1bmN0aW9uKHQpe3JldHVybiF0aGlzLmlnbm9yZUJhclRvdWNofHx0LmRldGFpbC5zb3VyY2VFdmVudCBpbnN0YW5jZW9mIE1vdXNlRXZlbnR9LGdldCBfaXNSVEwoKXtyZXR1cm4gdm9pZCAwPT09dGhpcy5fX2lzUlRMJiYodGhpcy5fX2lzUlRMPSJydGwiPT09d2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcykuZGlyZWN0aW9uKSx0aGlzLl9faXNSVEx9LF9sZWZ0S2V5OmZ1bmN0aW9uKHQpe3RoaXMuX2lzUlRMP3RoaXMuX2luY3JlbWVudEtleSh0KTp0aGlzLl9kZWNyZW1lbnRLZXkodCl9LF9yaWdodEtleTpmdW5jdGlvbih0KXt0aGlzLl9pc1JUTD90aGlzLl9kZWNyZW1lbnRLZXkodCk6dGhpcy5faW5jcmVtZW50S2V5KHQpfSxfaW5jcmVtZW50S2V5OmZ1bmN0aW9uKHQpe3RoaXMuZGlzYWJsZWR8fCgiZW5kIj09PXQuZGV0YWlsLmtleT90aGlzLnZhbHVlPXRoaXMubWF4OnRoaXMuaW5jcmVtZW50KCksdGhpcy5maXJlKCJjaGFuZ2UiKSx0LnByZXZlbnREZWZhdWx0KCkpfSxfZGVjcmVtZW50S2V5OmZ1bmN0aW9uKHQpe3RoaXMuZGlzYWJsZWR8fCgiaG9tZSI9PT10LmRldGFpbC5rZXk/dGhpcy52YWx1ZT10aGlzLm1pbjp0aGlzLmRlY3JlbWVudCgpLHRoaXMuZmlyZSgiY2hhbmdlIiksdC5wcmV2ZW50RGVmYXVsdCgpKX0sX2NoYW5nZVZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMudmFsdWU9dC50YXJnZXQudmFsdWUsdGhpcy5maXJlKCJjaGFuZ2UiLHtjb21wb3NlZDohMH0pfSxfaW5wdXRLZXlEb3duOmZ1bmN0aW9uKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCl9LF9jcmVhdGVSaXBwbGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmlwcGxlQ29udGFpbmVyPXRoaXMuJC5zbGlkZXJLbm9iLGJhLl9jcmVhdGVSaXBwbGUuY2FsbCh0aGlzKX0sX2ZvY3VzZWRDaGFuZ2VkOmZ1bmN0aW9uKHQpe3QmJnRoaXMuZW5zdXJlUmlwcGxlKCksdGhpcy5oYXNSaXBwbGUoKSYmKHRoaXMuX3JpcHBsZS5zdHlsZS5kaXNwbGF5PXQ/IiI6Im5vbmUiLHRoaXMuX3JpcHBsZS5ob2xkRG93bj10KX19KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IF9zPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7X3Muc2V0QXR0cmlidXRlKCJzdHlsZSIsImRpc3BsYXk6IG5vbmU7IiksX3MuaW5uZXJIVE1MPSI8ZG9tLW1vZHVsZSBpZD1cInBhcGVyLXNwaW5uZXItc3R5bGVzXCI+XG4gIDx0ZW1wbGF0ZT5cbiAgICA8c3R5bGU+XG4gICAgICAvKlxuICAgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqL1xuICAgICAgLyogU1RZTEVTIEZPUiBUSEUgU1BJTk5FUiAqL1xuICAgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgICAvKlxuICAgICAgICogQ29uc3RhbnRzOlxuICAgICAgICogICAgICBBUkNTSVpFICAgICA9IDI3MCBkZWdyZWVzIChhbW91bnQgb2YgY2lyY2xlIHRoZSBhcmMgdGFrZXMgdXApXG4gICAgICAgKiAgICAgIEFSQ1RJTUUgICAgID0gMTMzM21zICh0aW1lIGl0IHRha2VzIHRvIGV4cGFuZCBhbmQgY29udHJhY3QgYXJjKVxuICAgICAgICogICAgICBBUkNTVEFSVFJPVCA9IDIxNiBkZWdyZWVzIChob3cgbXVjaCB0aGUgc3RhcnQgbG9jYXRpb24gb2YgdGhlIGFyY1xuICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZCByb3RhdGUgZWFjaCB0aW1lLCAyMTYgZ2l2ZXMgdXMgYVxuICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUgcG9pbnRlZCBzdGFyIHNoYXBlIChpdCdzIDM2MC81ICogMykuXG4gICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9yIGEgNyBwb2ludGVkIHN0YXIsIHdlIG1pZ2h0IGRvXG4gICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzYwLzcgKiAzID0gMTU0LjI4NilcbiAgICAgICAqICAgICAgU0hSSU5LX1RJTUUgPSA0MDBtc1xuICAgICAgICovXG5cbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG5cbiAgICAgICAgLyogMzYwICogQVJDVElNRSAvIChBUkNTVEFSVFJPVCArICgzNjAtQVJDU0laRSkpICovXG4gICAgICAgIC0tcGFwZXItc3Bpbm5lci1jb250YWluZXItcm90YXRpb24tZHVyYXRpb246IDE1NjhtcztcblxuICAgICAgICAvKiBBUkNUSU1FICovXG4gICAgICAgIC0tcGFwZXItc3Bpbm5lci1leHBhbmQtY29udHJhY3QtZHVyYXRpb246IDEzMzNtcztcblxuICAgICAgICAvKiA0ICogQVJDVElNRSAqL1xuICAgICAgICAtLXBhcGVyLXNwaW5uZXItZnVsbC1jeWNsZS1kdXJhdGlvbjogNTMzMm1zO1xuXG4gICAgICAgIC8qIFNIUklOS19USU1FICovXG4gICAgICAgIC0tcGFwZXItc3Bpbm5lci1jb29sZG93bi1kdXJhdGlvbjogNDAwbXM7XG4gICAgICB9XG5cbiAgICAgICNzcGlubmVyQ29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICAvKiBUaGUgc3Bpbm5lciBkb2VzIG5vdCBoYXZlIGFueSBjb250ZW50cyB0aGF0IHdvdWxkIGhhdmUgdG8gYmVcbiAgICAgICAgICogZmxpcHBlZCBpZiB0aGUgZGlyZWN0aW9uIGNoYW5nZXMuIEFsd2F5cyB1c2UgbHRyIHNvIHRoYXQgdGhlXG4gICAgICAgICAqIHN0eWxlIHdvcmtzIG91dCBjb3JyZWN0bHkgaW4gYm90aCBjYXNlcy4gKi9cbiAgICAgICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgICB9XG5cbiAgICAgICNzcGlubmVyQ29udGFpbmVyLmFjdGl2ZSB7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBjb250YWluZXItcm90YXRlIHZhcigtLXBhcGVyLXNwaW5uZXItY29udGFpbmVyLXJvdGF0aW9uLWR1cmF0aW9uKSBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIGFuaW1hdGlvbjogY29udGFpbmVyLXJvdGF0ZSB2YXIoLS1wYXBlci1zcGlubmVyLWNvbnRhaW5lci1yb3RhdGlvbi1kdXJhdGlvbikgbGluZWFyIGluZmluaXRlO1xuICAgICAgfVxuXG4gICAgICBALXdlYmtpdC1rZXlmcmFtZXMgY29udGFpbmVyLXJvdGF0ZSB7XG4gICAgICAgIHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpIH1cbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBjb250YWluZXItcm90YXRlIHtcbiAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpIH1cbiAgICAgIH1cblxuICAgICAgLnNwaW5uZXItbGF5ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1zcGlubmVyLWNvbG9yLCB2YXIoLS1nb29nbGUtYmx1ZS01MDApKTtcbiAgICAgIH1cblxuICAgICAgLmxheWVyLTEge1xuICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItc3Bpbm5lci1sYXllci0xLWNvbG9yLCB2YXIoLS1nb29nbGUtYmx1ZS01MDApKTtcbiAgICAgIH1cblxuICAgICAgLmxheWVyLTIge1xuICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItc3Bpbm5lci1sYXllci0yLWNvbG9yLCB2YXIoLS1nb29nbGUtcmVkLTUwMCkpO1xuICAgICAgfVxuXG4gICAgICAubGF5ZXItMyB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1zcGlubmVyLWxheWVyLTMtY29sb3IsIHZhcigtLWdvb2dsZS15ZWxsb3ctNTAwKSk7XG4gICAgICB9XG5cbiAgICAgIC5sYXllci00IHtcbiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLXNwaW5uZXItbGF5ZXItNC1jb2xvciwgdmFyKC0tZ29vZ2xlLWdyZWVuLTUwMCkpO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIElNUE9SVEFOVCBOT1RFIEFCT1VUIENTUyBBTklNQVRJT04gUFJPUEVSVElFUyAoa2VhbnVsZWUpOlxuICAgICAgICpcbiAgICAgICAqIGlPUyBTYWZhcmkgKHRlc3RlZCBvbiBpT1MgOC4xKSBkb2VzIG5vdCBoYW5kbGUgYW5pbWF0aW9uLWRlbGF5IHZlcnkgd2VsbCAtIGl0IGRvZXNuJ3RcbiAgICAgICAqIGd1YXJhbnRlZSB0aGF0IHRoZSBhbmltYXRpb24gd2lsbCBzdGFydCBfZXhhY3RseV8gYWZ0ZXIgdGhhdCB2YWx1ZS4gU28gd2UgYXZvaWQgdXNpbmdcbiAgICAgICAqIGFuaW1hdGlvbi1kZWxheSBhbmQgaW5zdGVhZCBzZXQgY3VzdG9tIGtleWZyYW1lcyBmb3IgZWFjaCBjb2xvciAoYXMgbGF5ZXItMnVuZGFudCBhcyBpdFxuICAgICAgICogc2VlbXMpLlxuICAgICAgICovXG4gICAgICAuYWN0aXZlIC5zcGlubmVyLWxheWVyIHtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmlsbC11bmZpbGwtcm90YXRlO1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tcGFwZXItc3Bpbm5lci1mdWxsLWN5Y2xlLWR1cmF0aW9uKTtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSk7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgIGFuaW1hdGlvbi1uYW1lOiBmaWxsLXVuZmlsbC1yb3RhdGU7XG4gICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tcGFwZXItc3Bpbm5lci1mdWxsLWN5Y2xlLWR1cmF0aW9uKTtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpO1xuICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgLmFjdGl2ZSAuc3Bpbm5lci1sYXllci5sYXllci0xIHtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmlsbC11bmZpbGwtcm90YXRlLCBsYXllci0xLWZhZGUtaW4tb3V0O1xuICAgICAgICBhbmltYXRpb24tbmFtZTogZmlsbC11bmZpbGwtcm90YXRlLCBsYXllci0xLWZhZGUtaW4tb3V0O1xuICAgICAgfVxuXG4gICAgICAuYWN0aXZlIC5zcGlubmVyLWxheWVyLmxheWVyLTIge1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmaWxsLXVuZmlsbC1yb3RhdGUsIGxheWVyLTItZmFkZS1pbi1vdXQ7XG4gICAgICAgIGFuaW1hdGlvbi1uYW1lOiBmaWxsLXVuZmlsbC1yb3RhdGUsIGxheWVyLTItZmFkZS1pbi1vdXQ7XG4gICAgICB9XG5cbiAgICAgIC5hY3RpdmUgLnNwaW5uZXItbGF5ZXIubGF5ZXItMyB7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZpbGwtdW5maWxsLXJvdGF0ZSwgbGF5ZXItMy1mYWRlLWluLW91dDtcbiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGZpbGwtdW5maWxsLXJvdGF0ZSwgbGF5ZXItMy1mYWRlLWluLW91dDtcbiAgICAgIH1cblxuICAgICAgLmFjdGl2ZSAuc3Bpbm5lci1sYXllci5sYXllci00IHtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmlsbC11bmZpbGwtcm90YXRlLCBsYXllci00LWZhZGUtaW4tb3V0O1xuICAgICAgICBhbmltYXRpb24tbmFtZTogZmlsbC11bmZpbGwtcm90YXRlLCBsYXllci00LWZhZGUtaW4tb3V0O1xuICAgICAgfVxuXG4gICAgICBALXdlYmtpdC1rZXlmcmFtZXMgZmlsbC11bmZpbGwtcm90YXRlIHtcbiAgICAgICAgMTIuNSUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgfSAvKiAwLjUgKiBBUkNTSVpFICovXG4gICAgICAgIDI1JSAgIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpIH0gLyogMSAgICogQVJDU0laRSAqL1xuICAgICAgICAzNy41JSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDA1ZGVnKSB9IC8qIDEuNSAqIEFSQ1NJWkUgKi9cbiAgICAgICAgNTAlICAgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDU0MGRlZykgfSAvKiAyICAgKiBBUkNTSVpFICovXG4gICAgICAgIDYyLjUlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg2NzVkZWcpIH0gLyogMi41ICogQVJDU0laRSAqL1xuICAgICAgICA3NSUgICB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoODEwZGVnKSB9IC8qIDMgICAqIEFSQ1NJWkUgKi9cbiAgICAgICAgODcuNSUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDk0NWRlZykgfSAvKiAzLjUgKiBBUkNTSVpFICovXG4gICAgICAgIHRvICAgIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxMDgwZGVnKSB9IC8qIDQgICAqIEFSQ1NJWkUgKi9cbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBmaWxsLXVuZmlsbC1yb3RhdGUge1xuICAgICAgICAxMi41JSB7IHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgfSAvKiAwLjUgKiBBUkNTSVpFICovXG4gICAgICAgIDI1JSAgIHsgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSB9IC8qIDEgICAqIEFSQ1NJWkUgKi9cbiAgICAgICAgMzcuNSUgeyB0cmFuc2Zvcm06IHJvdGF0ZSg0MDVkZWcpIH0gLyogMS41ICogQVJDU0laRSAqL1xuICAgICAgICA1MCUgICB7IHRyYW5zZm9ybTogcm90YXRlKDU0MGRlZykgfSAvKiAyICAgKiBBUkNTSVpFICovXG4gICAgICAgIDYyLjUlIHsgdHJhbnNmb3JtOiByb3RhdGUoNjc1ZGVnKSB9IC8qIDIuNSAqIEFSQ1NJWkUgKi9cbiAgICAgICAgNzUlICAgeyB0cmFuc2Zvcm06IHJvdGF0ZSg4MTBkZWcpIH0gLyogMyAgICogQVJDU0laRSAqL1xuICAgICAgICA4Ny41JSB7IHRyYW5zZm9ybTogcm90YXRlKDk0NWRlZykgfSAvKiAzLjUgKiBBUkNTSVpFICovXG4gICAgICAgIHRvICAgIHsgdHJhbnNmb3JtOiByb3RhdGUoMTA4MGRlZykgfSAvKiA0ICAgKiBBUkNTSVpFICovXG4gICAgICB9XG5cbiAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBsYXllci0xLWZhZGUtaW4tb3V0IHtcbiAgICAgICAgMCUgeyBvcGFjaXR5OiAxIH1cbiAgICAgICAgMjUlIHsgb3BhY2l0eTogMSB9XG4gICAgICAgIDI2JSB7IG9wYWNpdHk6IDAgfVxuICAgICAgICA4OSUgeyBvcGFjaXR5OiAwIH1cbiAgICAgICAgOTAlIHsgb3BhY2l0eTogMSB9XG4gICAgICAgIHRvIHsgb3BhY2l0eTogMSB9XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgbGF5ZXItMS1mYWRlLWluLW91dCB7XG4gICAgICAgIDAlIHsgb3BhY2l0eTogMSB9XG4gICAgICAgIDI1JSB7IG9wYWNpdHk6IDEgfVxuICAgICAgICAyNiUgeyBvcGFjaXR5OiAwIH1cbiAgICAgICAgODklIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIDkwJSB7IG9wYWNpdHk6IDEgfVxuICAgICAgICB0byB7IG9wYWNpdHk6IDEgfVxuICAgICAgfVxuXG4gICAgICBALXdlYmtpdC1rZXlmcmFtZXMgbGF5ZXItMi1mYWRlLWluLW91dCB7XG4gICAgICAgIDAlIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIDE1JSB7IG9wYWNpdHk6IDAgfVxuICAgICAgICAyNSUgeyBvcGFjaXR5OiAxIH1cbiAgICAgICAgNTAlIHsgb3BhY2l0eTogMSB9XG4gICAgICAgIDUxJSB7IG9wYWNpdHk6IDAgfVxuICAgICAgICB0byB7IG9wYWNpdHk6IDAgfVxuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIGxheWVyLTItZmFkZS1pbi1vdXQge1xuICAgICAgICAwJSB7IG9wYWNpdHk6IDAgfVxuICAgICAgICAxNSUgeyBvcGFjaXR5OiAwIH1cbiAgICAgICAgMjUlIHsgb3BhY2l0eTogMSB9XG4gICAgICAgIDUwJSB7IG9wYWNpdHk6IDEgfVxuICAgICAgICA1MSUgeyBvcGFjaXR5OiAwIH1cbiAgICAgICAgdG8geyBvcGFjaXR5OiAwIH1cbiAgICAgIH1cblxuICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIGxheWVyLTMtZmFkZS1pbi1vdXQge1xuICAgICAgICAwJSB7IG9wYWNpdHk6IDAgfVxuICAgICAgICA0MCUgeyBvcGFjaXR5OiAwIH1cbiAgICAgICAgNTAlIHsgb3BhY2l0eTogMSB9XG4gICAgICAgIDc1JSB7IG9wYWNpdHk6IDEgfVxuICAgICAgICA3NiUgeyBvcGFjaXR5OiAwIH1cbiAgICAgICAgdG8geyBvcGFjaXR5OiAwIH1cbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBsYXllci0zLWZhZGUtaW4tb3V0IHtcbiAgICAgICAgMCUgeyBvcGFjaXR5OiAwIH1cbiAgICAgICAgNDAlIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIDUwJSB7IG9wYWNpdHk6IDEgfVxuICAgICAgICA3NSUgeyBvcGFjaXR5OiAxIH1cbiAgICAgICAgNzYlIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIHRvIHsgb3BhY2l0eTogMCB9XG4gICAgICB9XG5cbiAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBsYXllci00LWZhZGUtaW4tb3V0IHtcbiAgICAgICAgMCUgeyBvcGFjaXR5OiAwIH1cbiAgICAgICAgNjUlIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIDc1JSB7IG9wYWNpdHk6IDEgfVxuICAgICAgICA5MCUgeyBvcGFjaXR5OiAxIH1cbiAgICAgICAgdG8geyBvcGFjaXR5OiAwIH1cbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBsYXllci00LWZhZGUtaW4tb3V0IHtcbiAgICAgICAgMCUgeyBvcGFjaXR5OiAwIH1cbiAgICAgICAgNjUlIHsgb3BhY2l0eTogMCB9XG4gICAgICAgIDc1JSB7IG9wYWNpdHk6IDEgfVxuICAgICAgICA5MCUgeyBvcGFjaXR5OiAxIH1cbiAgICAgICAgdG8geyBvcGFjaXR5OiAwIH1cbiAgICAgIH1cblxuICAgICAgLmNpcmNsZS1jbGlwcGVyIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBQYXRjaCB0aGUgZ2FwIHRoYXQgYXBwZWFyIGJldHdlZW4gdGhlIHR3byBhZGphY2VudCBkaXYuY2lyY2xlLWNsaXBwZXIgd2hpbGUgdGhlXG4gICAgICAgKiBzcGlubmVyIGlzIHJvdGF0aW5nIChhcHBlYXJzIG9uIENocm9tZSA1MCwgU2FmYXJpIDkuMS4xLCBhbmQgRWRnZSkuXG4gICAgICAgKi9cbiAgICAgIC5zcGlubmVyLWxheWVyOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBsZWZ0OiA0NSU7XG4gICAgICAgIHdpZHRoOiAxMCU7XG4gICAgICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgICAgfVxuXG4gICAgICAuc3Bpbm5lci1sYXllcjo6YWZ0ZXIsXG4gICAgICAuY2lyY2xlLWNsaXBwZXIgLmNpcmNsZSB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3JkZXItd2lkdGg6IHZhcigtLXBhcGVyLXNwaW5uZXItc3Ryb2tlLXdpZHRoLCAzcHgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICB9XG5cbiAgICAgIC5jaXJjbGUtY2xpcHBlciAuY2lyY2xlIHtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB3aWR0aDogMjAwJTtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgLmNpcmNsZS1jbGlwcGVyLmxlZnQgLmNpcmNsZSB7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxMjlkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMjlkZWcpO1xuICAgICAgfVxuXG4gICAgICAuY2lyY2xlLWNsaXBwZXIucmlnaHQgLmNpcmNsZSB7XG4gICAgICAgIGxlZnQ6IC0xMDAlO1xuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMTI5ZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEyOWRlZyk7XG4gICAgICB9XG5cbiAgICAgIC5hY3RpdmUgLmdhcC1wYXRjaDo6YWZ0ZXIsXG4gICAgICAuYWN0aXZlIC5jaXJjbGUtY2xpcHBlciAuY2lyY2xlIHtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IHZhcigtLXBhcGVyLXNwaW5uZXItZXhwYW5kLWNvbnRyYWN0LWR1cmF0aW9uKTtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSk7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tcGFwZXItc3Bpbm5lci1leHBhbmQtY29udHJhY3QtZHVyYXRpb24pO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSk7XG4gICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgfVxuXG4gICAgICAuYWN0aXZlIC5jaXJjbGUtY2xpcHBlci5sZWZ0IC5jaXJjbGUge1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBsZWZ0LXNwaW47XG4gICAgICAgIGFuaW1hdGlvbi1uYW1lOiBsZWZ0LXNwaW47XG4gICAgICB9XG5cbiAgICAgIC5hY3RpdmUgLmNpcmNsZS1jbGlwcGVyLnJpZ2h0IC5jaXJjbGUge1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByaWdodC1zcGluO1xuICAgICAgICBhbmltYXRpb24tbmFtZTogcmlnaHQtc3BpbjtcbiAgICAgIH1cblxuICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIGxlZnQtc3BpbiB7XG4gICAgICAgIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxMzBkZWcpIH1cbiAgICAgICAgNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtNWRlZykgfVxuICAgICAgICB0byB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTMwZGVnKSB9XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgbGVmdC1zcGluIHtcbiAgICAgICAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxMzBkZWcpIH1cbiAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiByb3RhdGUoLTVkZWcpIH1cbiAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgxMzBkZWcpIH1cbiAgICAgIH1cblxuICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIHJpZ2h0LXNwaW4ge1xuICAgICAgICAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTEzMGRlZykgfVxuICAgICAgICA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDVkZWcpIH1cbiAgICAgICAgdG8geyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xMzBkZWcpIH1cbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyByaWdodC1zcGluIHtcbiAgICAgICAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgtMTMwZGVnKSB9XG4gICAgICAgIDUwJSB7IHRyYW5zZm9ybTogcm90YXRlKDVkZWcpIH1cbiAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgtMTMwZGVnKSB9XG4gICAgICB9XG5cbiAgICAgICNzcGlubmVyQ29udGFpbmVyLmNvb2xkb3duIHtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IGNvbnRhaW5lci1yb3RhdGUgdmFyKC0tcGFwZXItc3Bpbm5lci1jb250YWluZXItcm90YXRpb24tZHVyYXRpb24pIGxpbmVhciBpbmZpbml0ZSwgZmFkZS1vdXQgdmFyKC0tcGFwZXItc3Bpbm5lci1jb29sZG93bi1kdXJhdGlvbikgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpO1xuICAgICAgICBhbmltYXRpb246IGNvbnRhaW5lci1yb3RhdGUgdmFyKC0tcGFwZXItc3Bpbm5lci1jb250YWluZXItcm90YXRpb24tZHVyYXRpb24pIGxpbmVhciBpbmZpbml0ZSwgZmFkZS1vdXQgdmFyKC0tcGFwZXItc3Bpbm5lci1jb29sZG93bi1kdXJhdGlvbikgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpO1xuICAgICAgfVxuXG4gICAgICBALXdlYmtpdC1rZXlmcmFtZXMgZmFkZS1vdXQge1xuICAgICAgICAwJSB7IG9wYWNpdHk6IDEgfVxuICAgICAgICB0byB7IG9wYWNpdHk6IDAgfVxuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIGZhZGUtb3V0IHtcbiAgICAgICAgMCUgeyBvcGFjaXR5OiAxIH1cbiAgICAgICAgdG8geyBvcGFjaXR5OiAwIH1cbiAgICAgIH1cbiAgICA8L3N0eWxlPlxuICA8L3RlbXBsYXRlPlxuPC9kb20tbW9kdWxlPiIsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChfcy5jb250ZW50KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IHlzPXtwcm9wZXJ0aWVzOnthY3RpdmU6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMSxyZWZsZWN0VG9BdHRyaWJ1dGU6ITAsb2JzZXJ2ZXI6Il9fYWN0aXZlQ2hhbmdlZCJ9LGFsdDp7dHlwZTpTdHJpbmcsdmFsdWU6ImxvYWRpbmciLG9ic2VydmVyOiJfX2FsdENoYW5nZWQifSxfX2Nvb2xpbmdEb3duOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9fSxfX2NvbXB1dGVDb250YWluZXJDbGFzc2VzOmZ1bmN0aW9uKHQsZSl7cmV0dXJuW3R8fGU/ImFjdGl2ZSI6IiIsZT8iY29vbGRvd24iOiIiXS5qb2luKCIgIil9LF9fYWN0aXZlQ2hhbmdlZDpmdW5jdGlvbih0LGUpe3RoaXMuX19zZXRBcmlhSGlkZGVuKCF0KSx0aGlzLl9fY29vbGluZ0Rvd249IXQmJmV9LF9fYWx0Q2hhbmdlZDpmdW5jdGlvbih0KXsibG9hZGluZyI9PT10P3RoaXMuYWx0PXRoaXMuZ2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIil8fHQ6KHRoaXMuX19zZXRBcmlhSGlkZGVuKCIiPT09dCksdGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHQpKX0sX19zZXRBcmlhSGlkZGVuOmZ1bmN0aW9uKHQpe3ZhciBlPSJhcmlhLWhpZGRlbiI7dD90aGlzLnNldEF0dHJpYnV0ZShlLCJ0cnVlIik6dGhpcy5yZW1vdmVBdHRyaWJ1dGUoZSl9LF9fcmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLmFjdGl2ZT0hMSx0aGlzLl9fY29vbGluZ0Rvd249ITF9fSx2cz14ZWAKICA8c3R5bGUgaW5jbHVkZT0icGFwZXItc3Bpbm5lci1zdHlsZXMiPjwvc3R5bGU+CgogIDxkaXYgaWQ9InNwaW5uZXJDb250YWluZXIiIGNsYXNzLW5hbWU9IltbX19jb21wdXRlQ29udGFpbmVyQ2xhc3NlcyhhY3RpdmUsIF9fY29vbGluZ0Rvd24pXV0iIG9uLWFuaW1hdGlvbmVuZD0iX19yZXNldCIgb24td2Via2l0LWFuaW1hdGlvbi1lbmQ9Il9fcmVzZXQiPgogICAgPGRpdiBjbGFzcz0ic3Bpbm5lci1sYXllciBsYXllci0xIj4KICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWNsaXBwZXIgbGVmdCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZS1jbGlwcGVyIHJpZ2h0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNwaW5uZXItbGF5ZXIgbGF5ZXItMiI+CiAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZS1jbGlwcGVyIGxlZnQiPgogICAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZSI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUtY2xpcHBlciByaWdodCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzcGlubmVyLWxheWVyIGxheWVyLTMiPgogICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUtY2xpcHBlciBsZWZ0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWNsaXBwZXIgcmlnaHQiPgogICAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZSI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic3Bpbm5lci1sYXllciBsYXllci00Ij4KICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWNsaXBwZXIgbGVmdCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZS1jbGlwcGVyIHJpZ2h0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgpgOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi92cy5zZXRBdHRyaWJ1dGUoInN0cmlwLXdoaXRlc3BhY2UiLCIiKSxqcih7X3RlbXBsYXRlOnZzLGlzOiJwYXBlci1zcGlubmVyIixiZWhhdmlvcnM6W3lzXX0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgYnM9eGVgCiAgPHN0eWxlIGluY2x1ZGU9InBhcGVyLXNwaW5uZXItc3R5bGVzIj48L3N0eWxlPgoKICA8ZGl2IGlkPSJzcGlubmVyQ29udGFpbmVyIiBjbGFzcy1uYW1lPSJbW19fY29tcHV0ZUNvbnRhaW5lckNsYXNzZXMoYWN0aXZlLCBfX2Nvb2xpbmdEb3duKV1dIiBvbi1hbmltYXRpb25lbmQ9Il9fcmVzZXQiIG9uLXdlYmtpdC1hbmltYXRpb24tZW5kPSJfX3Jlc2V0Ij4KICAgIDxkaXYgY2xhc3M9InNwaW5uZXItbGF5ZXIiPgogICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUtY2xpcHBlciBsZWZ0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWNsaXBwZXIgcmlnaHQiPgogICAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZSI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmA7YnMuc2V0QXR0cmlidXRlKCJzdHJpcC13aGl0ZXNwYWNlIiwiIiksanIoe190ZW1wbGF0ZTpicyxpczoicGFwZXItc3Bpbm5lci1saXRlIixiZWhhdmlvcnM6W3lzXX0pOwovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCB4cz14ZWA8aXJvbi1pY29uc2V0LXN2ZyBuYW1lPSJwYXBlci10YWJzIiBzaXplPSIyNCI+Cjxzdmc+PGRlZnM+CjxnIGlkPSJjaGV2cm9uLWxlZnQiPjxwYXRoIGQ9Ik0xNS40MSA3LjQxTDE0IDZsLTYgNiA2IDYgMS40MS0xLjQxTDEwLjgzIDEyeiI+PC9wYXRoPjwvZz4KPGcgaWQ9ImNoZXZyb24tcmlnaHQiPjxwYXRoIGQ9Ik0xMCA2TDguNTkgNy40MSAxMy4xNyAxMmwtNC41OCA0LjU5TDEwIDE4bDYtNnoiPjwvcGF0aD48L2c+CjwvZGVmcz48L3N2Zz4KPC9pcm9uLWljb25zZXQtc3ZnPmA7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh4cy5jb250ZW50KSwKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KanIoe190ZW1wbGF0ZTp4ZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIEBhcHBseSAtLWxheW91dC1pbmxpbmU7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWNlbnRlcjsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyLWp1c3RpZmllZDsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZmxleC1hdXRvOwoKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWJhc2U7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItdGFiOwogICAgICB9CgogICAgICA6aG9zdCg6Zm9jdXMpIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICA6aG9zdChbbGlua10pIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICAudGFiLWNvbnRlbnQgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAxLCAxKTsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtaG9yaXpvbnRhbDsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyLWNlbnRlcjsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZmxleC1hdXRvOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRhYi1jb250ZW50OwogICAgICB9CgogICAgICA6aG9zdCg6bm90KC5pcm9uLXNlbGVjdGVkKSkgPiAudGFiLWNvbnRlbnQgewogICAgICAgIG9wYWNpdHk6IDAuODsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItdGFiLWNvbnRlbnQtdW5zZWxlY3RlZDsKICAgICAgfQoKICAgICAgOmhvc3QoOmZvY3VzKSAudGFiLWNvbnRlbnQgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItdGFiLWNvbnRlbnQtZm9jdXNlZDsKICAgICAgfQoKICAgICAgcGFwZXItcmlwcGxlIHsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItdGFiLWluaywgdmFyKC0tcGFwZXIteWVsbG93LWExMDApKTsKICAgICAgfQoKICAgICAgLnRhYi1jb250ZW50ID4gOjpzbG90dGVkKGEpIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZmxleC1hdXRvOwoKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0idGFiLWNvbnRlbnQiPgogICAgICA8c2xvdD48L3Nsb3Q+CiAgICA8L2Rpdj4KYCxpczoicGFwZXItdGFiIixiZWhhdmlvcnM6W3JhLGFhLHVhXSxwcm9wZXJ0aWVzOntsaW5rOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEscmVmbGVjdFRvQXR0cmlidXRlOiEwfX0saG9zdEF0dHJpYnV0ZXM6e3JvbGU6InRhYiJ9LGxpc3RlbmVyczp7ZG93bjoiX3VwZGF0ZU5vaW5rIix0YXA6Il9vblRhcCJ9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fdXBkYXRlTm9pbmsoKX0sZ2V0IF9wYXJlbnROb2luaygpe3ZhciB0PWVyKHRoaXMpLnBhcmVudE5vZGU7cmV0dXJuISF0JiYhIXQubm9pbmt9LF91cGRhdGVOb2luazpmdW5jdGlvbigpe3RoaXMubm9pbms9ISF0aGlzLm5vaW5rfHwhIXRoaXMuX3BhcmVudE5vaW5rfSxfb25UYXA6ZnVuY3Rpb24odCl7aWYodGhpcy5saW5rKXt2YXIgZT10aGlzLnF1ZXJ5RWZmZWN0aXZlQ2hpbGRyZW4oImEiKTtpZighZSlyZXR1cm47aWYodC50YXJnZXQ9PT1lKXJldHVybjtlLmNsaWNrKCl9fX0pLAovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpqcih7X3RlbXBsYXRlOnhlYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0OwogICAgICAgIEBhcHBseSAtLWxheW91dC1jZW50ZXI7CgogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CgogICAgICAgIC8qIE5PVEU6IEJvdGggdmFsdWVzIGFyZSBuZWVkZWQsIHNpbmNlIHNvbWUgcGhvbmVzIHJlcXVpcmUgdGhlIHZhbHVlIHRvIGJlIFxgdHJhbnNwYXJlbnRcYC4gKi8KICAgICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7CiAgICAgICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItdGFiczsKICAgICAgfQoKICAgICAgOmhvc3QoOmRpcihydGwpKSB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWhvcml6b250YWwtcmV2ZXJzZTsKICAgICAgfQoKICAgICAgI3RhYnNDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIEBhcHBseSAtLWxheW91dC1mbGV4LWF1dG87CiAgICAgICAgQGFwcGx5IC0tcGFwZXItdGFicy1jb250YWluZXI7CiAgICAgIH0KCiAgICAgICN0YWJzQ29udGVudCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIC1tb3otZmxleC1iYXNpczogYXV0bzsKICAgICAgICAtbXMtZmxleC1iYXNpczogYXV0bzsKICAgICAgICBmbGV4LWJhc2lzOiBhdXRvOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRhYnMtY29udGVudDsKICAgICAgfQoKICAgICAgI3RhYnNDb250ZW50LnNjcm9sbGFibGUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAjdGFic0NvbnRlbnQ6bm90KC5zY3JvbGxhYmxlKSwKICAgICAgI3RhYnNDb250ZW50LnNjcm9sbGFibGUuZml0LWNvbnRhaW5lciB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWhvcml6b250YWw7CiAgICAgIH0KCiAgICAgICN0YWJzQ29udGVudC5zY3JvbGxhYmxlLmZpdC1jb250YWluZXIgewogICAgICAgIG1pbi13aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgI3RhYnNDb250ZW50LnNjcm9sbGFibGUuZml0LWNvbnRhaW5lciA+IDo6c2xvdHRlZCgqKSB7CiAgICAgICAgLyogSUUgLSBwcmV2ZW50IHRhYnMgZnJvbSBjb21wcmVzc2luZyB3aGVuIHRoZXkgc2hvdWxkIHNjcm9sbC4gKi8KICAgICAgICAtbXMtZmxleDogMSAwIGF1dG87CiAgICAgICAgLXdlYmtpdC1mbGV4OiAxIDAgYXV0bzsKICAgICAgICBmbGV4OiAxIDAgYXV0bzsKICAgICAgfQoKICAgICAgLmhpZGRlbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLm5vdC12aXNpYmxlIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgcGFwZXItaWNvbi1idXR0b24gewogICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgICNzZWxlY3Rpb25CYXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHZhcigtLXBhcGVyLXRhYnMtc2VsZWN0aW9uLWJhci1jb2xvciwgdmFyKC0tcGFwZXIteWVsbG93LWExMDApKTsKICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwKTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApOwogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjsKICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItdGFicy1zZWxlY3Rpb24tYmFyOwogICAgICB9CgogICAgICAjc2VsZWN0aW9uQmFyLmFsaWduLWJvdHRvbSB7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogYXV0bzsKICAgICAgfQoKICAgICAgI3NlbGVjdGlvbkJhci5leHBhbmQgewogICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzOwogICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDEsIDEpOwogICAgICB9CgogICAgICAjc2VsZWN0aW9uQmFyLmNvbnRyYWN0IHsKICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE4czsKICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMCwgMC4wLCAwLjIsIDEpOwogICAgICB9CgogICAgICAjdGFic0NvbnRlbnQgPiA6OnNsb3R0ZWQoOm5vdCgjc2VsZWN0aW9uQmFyKSkgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8cGFwZXItaWNvbi1idXR0b24gaWNvbj0icGFwZXItdGFiczpjaGV2cm9uLWxlZnQiIGNsYXNzJD0iW1tfY29tcHV0ZVNjcm9sbEJ1dHRvbkNsYXNzKF9sZWZ0SGlkZGVuLCBzY3JvbGxhYmxlLCBoaWRlU2Nyb2xsQnV0dG9ucyldXSIgb24tdXA9Il9vblNjcm9sbEJ1dHRvblVwIiBvbi1kb3duPSJfb25MZWZ0U2Nyb2xsQnV0dG9uRG93biIgdGFiaW5kZXg9Ii0xIj48L3BhcGVyLWljb24tYnV0dG9uPgoKICAgIDxkaXYgaWQ9InRhYnNDb250YWluZXIiIG9uLXRyYWNrPSJfc2Nyb2xsIiBvbi1kb3duPSJfZG93biI+CiAgICAgIDxkaXYgaWQ9InRhYnNDb250ZW50IiBjbGFzcyQ9IltbX2NvbXB1dGVUYWJzQ29udGVudENsYXNzKHNjcm9sbGFibGUsIGZpdENvbnRhaW5lcildXSI+CiAgICAgICAgPGRpdiBpZD0ic2VsZWN0aW9uQmFyIiBjbGFzcyQ9IltbX2NvbXB1dGVTZWxlY3Rpb25CYXJDbGFzcyhub0JhciwgYWxpZ25Cb3R0b20pXV0iIG9uLXRyYW5zaXRpb25lbmQ9Il9vbkJhclRyYW5zaXRpb25FbmQiPjwvZGl2PgogICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8cGFwZXItaWNvbi1idXR0b24gaWNvbj0icGFwZXItdGFiczpjaGV2cm9uLXJpZ2h0IiBjbGFzcyQ9IltbX2NvbXB1dGVTY3JvbGxCdXR0b25DbGFzcyhfcmlnaHRIaWRkZW4sIHNjcm9sbGFibGUsIGhpZGVTY3JvbGxCdXR0b25zKV1dIiBvbi11cD0iX29uU2Nyb2xsQnV0dG9uVXAiIG9uLWRvd249Il9vblJpZ2h0U2Nyb2xsQnV0dG9uRG93biIgdGFiaW5kZXg9Ii0xIj48L3BhcGVyLWljb24tYnV0dG9uPgpgLGlzOiJwYXBlci10YWJzIixiZWhhdmlvcnM6W0NvLG1zXSxwcm9wZXJ0aWVzOntub2luazp7dHlwZTpCb29sZWFuLHZhbHVlOiExLG9ic2VydmVyOiJfbm9pbmtDaGFuZ2VkIn0sbm9CYXI6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sbm9TbGlkZTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxzY3JvbGxhYmxlOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGZpdENvbnRhaW5lcjp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxkaXNhYmxlRHJhZzp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxoaWRlU2Nyb2xsQnV0dG9uczp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxhbGlnbkJvdHRvbTp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxzZWxlY3RhYmxlOnt0eXBlOlN0cmluZyx2YWx1ZToicGFwZXItdGFiIn0sYXV0b3NlbGVjdDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxhdXRvc2VsZWN0RGVsYXk6e3R5cGU6TnVtYmVyLHZhbHVlOjB9LF9zdGVwOnt0eXBlOk51bWJlcix2YWx1ZToxMH0sX2hvbGREZWxheTp7dHlwZTpOdW1iZXIsdmFsdWU6MX0sX2xlZnRIaWRkZW46e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sX3JpZ2h0SGlkZGVuOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LF9wcmV2aW91c1RhYjp7dHlwZTpPYmplY3R9fSxob3N0QXR0cmlidXRlczp7cm9sZToidGFibGlzdCJ9LGxpc3RlbmVyczp7Imlyb24tcmVzaXplIjoiX29uVGFiU2l6aW5nQ2hhbmdlZCIsImlyb24taXRlbXMtY2hhbmdlZCI6Il9vblRhYlNpemluZ0NoYW5nZWQiLCJpcm9uLXNlbGVjdCI6Il9vbklyb25TZWxlY3QiLCJpcm9uLWRlc2VsZWN0IjoiX29uSXJvbkRlc2VsZWN0In0sa2V5QmluZGluZ3M6eyJsZWZ0OmtleXVwIHJpZ2h0OmtleXVwIjoiX29uQXJyb3dLZXl1cCJ9LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLl9ob2xkSm9iPW51bGwsdGhpcy5fcGVuZGluZ0FjdGl2YXRpb25JdGVtPXZvaWQgMCx0aGlzLl9wZW5kaW5nQWN0aXZhdGlvblRpbWVvdXQ9dm9pZCAwLHRoaXMuX2JpbmREZWxheWVkQWN0aXZhdGlvbkhhbmRsZXI9dGhpcy5fZGVsYXllZEFjdGl2YXRpb25IYW5kbGVyLmJpbmQodGhpcyksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl9vbkJsdXJDYXB0dXJlLmJpbmQodGhpcyksITApfSxyZWFkeTpmdW5jdGlvbigpe3RoaXMuc2V0U2Nyb2xsRGlyZWN0aW9uKCJ5Iix0aGlzLiQudGFic0NvbnRhaW5lcil9LGRldGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fY2FuY2VsUGVuZGluZ0FjdGl2YXRpb24oKX0sX25vaW5rQ2hhbmdlZDpmdW5jdGlvbih0KXtlcih0aGlzKS5xdWVyeVNlbGVjdG9yQWxsKCJwYXBlci10YWIiKS5mb3JFYWNoKHQ/dGhpcy5fc2V0Tm9pbmtBdHRyaWJ1dGU6dGhpcy5fcmVtb3ZlTm9pbmtBdHRyaWJ1dGUpfSxfc2V0Tm9pbmtBdHRyaWJ1dGU6ZnVuY3Rpb24odCl7dC5zZXRBdHRyaWJ1dGUoIm5vaW5rIiwiIil9LF9yZW1vdmVOb2lua0F0dHJpYnV0ZTpmdW5jdGlvbih0KXt0LnJlbW92ZUF0dHJpYnV0ZSgibm9pbmsiKX0sX2NvbXB1dGVTY3JvbGxCdXR0b25DbGFzczpmdW5jdGlvbih0LGUsbil7cmV0dXJuIWV8fG4/ImhpZGRlbiI6dD8ibm90LXZpc2libGUiOiIifSxfY29tcHV0ZVRhYnNDb250ZW50Q2xhc3M6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD8ic2Nyb2xsYWJsZSIrKGU/IiBmaXQtY29udGFpbmVyIjoiIik6IiBmaXQtY29udGFpbmVyIn0sX2NvbXB1dGVTZWxlY3Rpb25CYXJDbGFzczpmdW5jdGlvbih0LGUpe3JldHVybiB0PyJoaWRkZW4iOmU/ImFsaWduLWJvdHRvbSI6IiJ9LF9vblRhYlNpemluZ0NoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLmRlYm91bmNlKCJfb25UYWJTaXppbmdDaGFuZ2VkIiwoZnVuY3Rpb24oKXt0aGlzLl9zY3JvbGwoKSx0aGlzLl90YWJDaGFuZ2VkKHRoaXMuc2VsZWN0ZWRJdGVtKX0pLDEwKX0sX29uSXJvblNlbGVjdDpmdW5jdGlvbih0KXt0aGlzLl90YWJDaGFuZ2VkKHQuZGV0YWlsLml0ZW0sdGhpcy5fcHJldmlvdXNUYWIpLHRoaXMuX3ByZXZpb3VzVGFiPXQuZGV0YWlsLml0ZW0sdGhpcy5jYW5jZWxEZWJvdW5jZXIoInRhYi1jaGFuZ2VkIil9LF9vbklyb25EZXNlbGVjdDpmdW5jdGlvbih0KXt0aGlzLmRlYm91bmNlKCJ0YWItY2hhbmdlZCIsKGZ1bmN0aW9uKCl7dGhpcy5fdGFiQ2hhbmdlZChudWxsLHRoaXMuX3ByZXZpb3VzVGFiKSx0aGlzLl9wcmV2aW91c1RhYj1udWxsfSksMSl9LF9hY3RpdmF0ZUhhbmRsZXI6ZnVuY3Rpb24oKXt0aGlzLl9jYW5jZWxQZW5kaW5nQWN0aXZhdGlvbigpLGNzLl9hY3RpdmF0ZUhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxfc2NoZWR1bGVBY3RpdmF0aW9uOmZ1bmN0aW9uKHQsZSl7dGhpcy5fcGVuZGluZ0FjdGl2YXRpb25JdGVtPXQsdGhpcy5fcGVuZGluZ0FjdGl2YXRpb25UaW1lb3V0PXRoaXMuYXN5bmModGhpcy5fYmluZERlbGF5ZWRBY3RpdmF0aW9uSGFuZGxlcixlKX0sX2RlbGF5ZWRBY3RpdmF0aW9uSGFuZGxlcjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3BlbmRpbmdBY3RpdmF0aW9uSXRlbTt0aGlzLl9wZW5kaW5nQWN0aXZhdGlvbkl0ZW09dm9pZCAwLHRoaXMuX3BlbmRpbmdBY3RpdmF0aW9uVGltZW91dD12b2lkIDAsdC5maXJlKHRoaXMuYWN0aXZhdGVFdmVudCxudWxsLHtidWJibGVzOiEwLGNhbmNlbGFibGU6ITB9KX0sX2NhbmNlbFBlbmRpbmdBY3RpdmF0aW9uOmZ1bmN0aW9uKCl7dm9pZCAwIT09dGhpcy5fcGVuZGluZ0FjdGl2YXRpb25UaW1lb3V0JiYodGhpcy5jYW5jZWxBc3luYyh0aGlzLl9wZW5kaW5nQWN0aXZhdGlvblRpbWVvdXQpLHRoaXMuX3BlbmRpbmdBY3RpdmF0aW9uSXRlbT12b2lkIDAsdGhpcy5fcGVuZGluZ0FjdGl2YXRpb25UaW1lb3V0PXZvaWQgMCl9LF9vbkFycm93S2V5dXA6ZnVuY3Rpb24odCl7dGhpcy5hdXRvc2VsZWN0JiZ0aGlzLl9zY2hlZHVsZUFjdGl2YXRpb24odGhpcy5mb2N1c2VkSXRlbSx0aGlzLmF1dG9zZWxlY3REZWxheSl9LF9vbkJsdXJDYXB0dXJlOmZ1bmN0aW9uKHQpe3QudGFyZ2V0PT09dGhpcy5fcGVuZGluZ0FjdGl2YXRpb25JdGVtJiZ0aGlzLl9jYW5jZWxQZW5kaW5nQWN0aXZhdGlvbigpfSxnZXQgX3RhYkNvbnRhaW5lclNjcm9sbFNpemUoKXtyZXR1cm4gTWF0aC5tYXgoMCx0aGlzLiQudGFic0NvbnRhaW5lci5zY3JvbGxXaWR0aC10aGlzLiQudGFic0NvbnRhaW5lci5vZmZzZXRXaWR0aCl9LF9zY3JvbGw6ZnVuY3Rpb24odCxlKXt0aGlzLnNjcm9sbGFibGUmJnRoaXMuX2FmZmVjdFNjcm9sbChlJiYtZS5kZHh8fDApfSxfZG93bjpmdW5jdGlvbih0KXt0aGlzLmFzeW5jKChmdW5jdGlvbigpe3RoaXMuX2RlZmF1bHRGb2N1c0FzeW5jJiYodGhpcy5jYW5jZWxBc3luYyh0aGlzLl9kZWZhdWx0Rm9jdXNBc3luYyksdGhpcy5fZGVmYXVsdEZvY3VzQXN5bmM9bnVsbCl9KSwxKX0sX2FmZmVjdFNjcm9sbDpmdW5jdGlvbih0KXt0aGlzLiQudGFic0NvbnRhaW5lci5zY3JvbGxMZWZ0Kz10O3ZhciBlPXRoaXMuJC50YWJzQ29udGFpbmVyLnNjcm9sbExlZnQ7dGhpcy5fbGVmdEhpZGRlbj0wPT09ZSx0aGlzLl9yaWdodEhpZGRlbj1lPT09dGhpcy5fdGFiQ29udGFpbmVyU2Nyb2xsU2l6ZX0sX29uTGVmdFNjcm9sbEJ1dHRvbkRvd246ZnVuY3Rpb24oKXt0aGlzLl9zY3JvbGxUb0xlZnQoKSx0aGlzLl9ob2xkSm9iPXNldEludGVydmFsKHRoaXMuX3Njcm9sbFRvTGVmdC5iaW5kKHRoaXMpLHRoaXMuX2hvbGREZWxheSl9LF9vblJpZ2h0U2Nyb2xsQnV0dG9uRG93bjpmdW5jdGlvbigpe3RoaXMuX3Njcm9sbFRvUmlnaHQoKSx0aGlzLl9ob2xkSm9iPXNldEludGVydmFsKHRoaXMuX3Njcm9sbFRvUmlnaHQuYmluZCh0aGlzKSx0aGlzLl9ob2xkRGVsYXkpfSxfb25TY3JvbGxCdXR0b25VcDpmdW5jdGlvbigpe2NsZWFySW50ZXJ2YWwodGhpcy5faG9sZEpvYiksdGhpcy5faG9sZEpvYj1udWxsfSxfc2Nyb2xsVG9MZWZ0OmZ1bmN0aW9uKCl7dGhpcy5fYWZmZWN0U2Nyb2xsKC10aGlzLl9zdGVwKX0sX3Njcm9sbFRvUmlnaHQ6ZnVuY3Rpb24oKXt0aGlzLl9hZmZlY3RTY3JvbGwodGhpcy5fc3RlcCl9LF90YWJDaGFuZ2VkOmZ1bmN0aW9uKHQsZSl7aWYoIXQpcmV0dXJuIHRoaXMuJC5zZWxlY3Rpb25CYXIuY2xhc3NMaXN0LnJlbW92ZSgiZXhwYW5kIiksdGhpcy4kLnNlbGVjdGlvbkJhci5jbGFzc0xpc3QucmVtb3ZlKCJjb250cmFjdCIpLHZvaWQgdGhpcy5fcG9zaXRpb25CYXIoMCwwKTt2YXIgbj10aGlzLiQudGFic0NvbnRlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaT1uLndpZHRoLHI9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvPXIubGVmdC1uLmxlZnQ7aWYodGhpcy5fcG9zPXt3aWR0aDp0aGlzLl9jYWxjUGVyY2VudChyLndpZHRoLGkpLGxlZnQ6dGhpcy5fY2FsY1BlcmNlbnQobyxpKX0sdGhpcy5ub1NsaWRlfHxudWxsPT1lKXJldHVybiB0aGlzLiQuc2VsZWN0aW9uQmFyLmNsYXNzTGlzdC5yZW1vdmUoImV4cGFuZCIpLHRoaXMuJC5zZWxlY3Rpb25CYXIuY2xhc3NMaXN0LnJlbW92ZSgiY29udHJhY3QiKSx2b2lkIHRoaXMuX3Bvc2l0aW9uQmFyKHRoaXMuX3Bvcy53aWR0aCx0aGlzLl9wb3MubGVmdCk7dmFyIGE9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxzPXRoaXMuaXRlbXMuaW5kZXhPZihlKSxsPXRoaXMuaXRlbXMuaW5kZXhPZih0KTt0aGlzLiQuc2VsZWN0aW9uQmFyLmNsYXNzTGlzdC5hZGQoImV4cGFuZCIpO3ZhciBjPXM8bDt0aGlzLl9pc1JUTCYmKGM9IWMpLGM/dGhpcy5fcG9zaXRpb25CYXIodGhpcy5fY2FsY1BlcmNlbnQoci5sZWZ0K3Iud2lkdGgtYS5sZWZ0LGkpLTUsdGhpcy5fbGVmdCk6dGhpcy5fcG9zaXRpb25CYXIodGhpcy5fY2FsY1BlcmNlbnQoYS5sZWZ0K2Eud2lkdGgtci5sZWZ0LGkpLTUsdGhpcy5fY2FsY1BlcmNlbnQobyxpKSs1KSx0aGlzLnNjcm9sbGFibGUmJnRoaXMuX3Njcm9sbFRvU2VsZWN0ZWRJZk5lZWRlZChyLndpZHRoLG8pfSxfc2Nyb2xsVG9TZWxlY3RlZElmTmVlZGVkOmZ1bmN0aW9uKHQsZSl7dmFyIG49ZS10aGlzLiQudGFic0NvbnRhaW5lci5zY3JvbGxMZWZ0OyhuPDB8fChuKz10LXRoaXMuJC50YWJzQ29udGFpbmVyLm9mZnNldFdpZHRoKT4wKSYmKHRoaXMuJC50YWJzQ29udGFpbmVyLnNjcm9sbExlZnQrPW4pfSxfY2FsY1BlcmNlbnQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gMTAwKnQvZX0sX3Bvc2l0aW9uQmFyOmZ1bmN0aW9uKHQsZSl7ZT1lfHwwLHRoaXMuX3dpZHRoPXQ9dHx8MCx0aGlzLl9sZWZ0PWUsdGhpcy50cmFuc2Zvcm0oInRyYW5zbGF0ZVgoIitlKyIlKSBzY2FsZVgoIit0LzEwMCsiKSIsdGhpcy4kLnNlbGVjdGlvbkJhcil9LF9vbkJhclRyYW5zaXRpb25FbmQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy4kLnNlbGVjdGlvbkJhci5jbGFzc0xpc3Q7ZS5jb250YWlucygiZXhwYW5kIik/KGUucmVtb3ZlKCJleHBhbmQiKSxlLmFkZCgiY29udHJhY3QiKSx0aGlzLl9wb3NpdGlvbkJhcih0aGlzLl9wb3Mud2lkdGgsdGhpcy5fcG9zLmxlZnQpKTplLmNvbnRhaW5zKCJjb250cmFjdCIpJiZlLnJlbW92ZSgiY29udHJhY3QiKX19KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCnZhciB3cz1udWxsO2pyKHtfdGVtcGxhdGU6eGVgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItdG9hc3QtYmFja2dyb3VuZC1jb2xvciwgIzMyMzIzMik7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLXRvYXN0LWNvbG9yLCAjZjFmMWYxKTsKICAgICAgICBtaW4taGVpZ2h0OiA0OHB4OwogICAgICAgIG1pbi13aWR0aDogMjg4cHg7CiAgICAgICAgcGFkZGluZzogMTZweCAyNHB4OwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjI2KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgbWFyZ2luOiAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjNzLCBvcGFjaXR5IDAuM3M7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MsIG9wYWNpdHkgMC4zczsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMHB4KTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwcHgpOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWJhc2U7CiAgICAgIH0KCiAgICAgIDpob3N0KC5jYXBzdWxlKSB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMjRweDsKICAgICAgfQoKICAgICAgOmhvc3QoLmZpdC1ib3R0b20pIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIDpob3N0KC5wYXBlci10b2FzdC1vcGVuKSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpOwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxzcGFuIGlkPSJsYWJlbCI+e3t0ZXh0fX08L3NwYW4+CiAgICA8c2xvdD48L3Nsb3Q+CmAsaXM6InBhcGVyLXRvYXN0IixiZWhhdmlvcnM6W1dhXSxwcm9wZXJ0aWVzOntmaXRJbnRvOnt0eXBlOk9iamVjdCx2YWx1ZTp3aW5kb3csb2JzZXJ2ZXI6Il9vbkZpdEludG9DaGFuZ2VkIn0saG9yaXpvbnRhbEFsaWduOnt0eXBlOlN0cmluZyx2YWx1ZToibGVmdCJ9LHZlcnRpY2FsQWxpZ246e3R5cGU6U3RyaW5nLHZhbHVlOiJib3R0b20ifSxkdXJhdGlvbjp7dHlwZTpOdW1iZXIsdmFsdWU6M2UzfSx0ZXh0Ont0eXBlOlN0cmluZyx2YWx1ZToiIn0sbm9DYW5jZWxPbk91dHNpZGVDbGljazp7dHlwZTpCb29sZWFuLHZhbHVlOiEwfSxub0F1dG9Gb2N1czp7dHlwZTpCb29sZWFuLHZhbHVlOiEwfX0sbGlzdGVuZXJzOnt0cmFuc2l0aW9uZW5kOiJfX29uVHJhbnNpdGlvbkVuZCJ9LGdldCB2aXNpYmxlKCl7cmV0dXJuIEVvLl93YXJuKCJgdmlzaWJsZWAgaXMgZGVwcmVjYXRlZCwgdXNlIGBvcGVuZWRgIGluc3RlYWQiKSx0aGlzLm9wZW5lZH0sZ2V0IF9jYW5BdXRvQ2xvc2UoKXtyZXR1cm4gdGhpcy5kdXJhdGlvbj4wJiZ0aGlzLmR1cmF0aW9uIT09MS8wfSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5fYXV0b0Nsb3NlPW51bGwsWWEucmVxdWVzdEF2YWlsYWJpbGl0eSgpfSxzaG93OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiJzdHJpbmciPT10eXBlb2YgdCYmKHQ9e3RleHQ6dH0pLHQpMD09PWUuaW5kZXhPZigiXyIpP0VvLl93YXJuKCdUaGUgcHJvcGVydHkgIicrZSsnIiBpcyBwcml2YXRlIGFuZCB3YXMgbm90IHNldC4nKTplIGluIHRoaXM/dGhpc1tlXT10W2VdOkVvLl93YXJuKCdUaGUgcHJvcGVydHkgIicrZSsnIiBpcyBub3QgdmFsaWQuJyk7dGhpcy5vcGVuKCl9LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLmNsb3NlKCl9LF9fb25UcmFuc2l0aW9uRW5kOmZ1bmN0aW9uKHQpe3QmJnQudGFyZ2V0PT09dGhpcyYmIm9wYWNpdHkiPT09dC5wcm9wZXJ0eU5hbWUmJih0aGlzLm9wZW5lZD90aGlzLl9maW5pc2hSZW5kZXJPcGVuZWQoKTp0aGlzLl9maW5pc2hSZW5kZXJDbG9zZWQoKSl9LF9vcGVuZWRDaGFuZ2VkOmZ1bmN0aW9uKCl7bnVsbCE9PXRoaXMuX2F1dG9DbG9zZSYmKHRoaXMuY2FuY2VsQXN5bmModGhpcy5fYXV0b0Nsb3NlKSx0aGlzLl9hdXRvQ2xvc2U9bnVsbCksdGhpcy5vcGVuZWQ/KHdzJiZ3cyE9PXRoaXMmJndzLmNsb3NlKCksd3M9dGhpcyx0aGlzLmZpcmUoImlyb24tYW5ub3VuY2UiLHt0ZXh0OnRoaXMudGV4dH0pLHRoaXMuX2NhbkF1dG9DbG9zZSYmKHRoaXMuX2F1dG9DbG9zZT10aGlzLmFzeW5jKHRoaXMuY2xvc2UsdGhpcy5kdXJhdGlvbikpKTp3cz09PXRoaXMmJih3cz1udWxsKSxqYS5fb3BlbmVkQ2hhbmdlZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LF9yZW5kZXJPcGVuZWQ6ZnVuY3Rpb24oKXt0aGlzLmNsYXNzTGlzdC5hZGQoInBhcGVyLXRvYXN0LW9wZW4iKX0sX3JlbmRlckNsb3NlZDpmdW5jdGlvbigpe3RoaXMuY2xhc3NMaXN0LnJlbW92ZSgicGFwZXItdG9hc3Qtb3BlbiIpfSxfb25GaXRJbnRvQ2hhbmdlZDpmdW5jdGlvbih0KXt0aGlzLnBvc2l0aW9uVGFyZ2V0PXR9fSk7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxNSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmNvbnN0IFNzPXhlYAoKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtaG9yaXpvbnRhbDsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtY2VudGVyOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWJhc2U7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgOmhvc3QoOmZvY3VzKSB7CiAgICAgICAgb3V0bGluZTpub25lOwogICAgICB9CgogICAgICAudG9nZ2xlLWJhciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3BhY2l0eTogMC40OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgbGluZWFyIC4wOHM7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItdG9nZ2xlLWJ1dHRvbi11bmNoZWNrZWQtYmFyLWNvbG9yLCAjMDAwMDAwKTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItdG9nZ2xlLWJ1dHRvbi11bmNoZWNrZWQtYmFyOwogICAgICB9CgogICAgICAudG9nZ2xlLWJ1dHRvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogLTNweDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjYpOwogICAgICAgIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIGxpbmVhciAuMDhzLCBiYWNrZ3JvdW5kLWNvbG9yIGxpbmVhciAuMDhzOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSBsaW5lYXIgLjA4cywgYmFja2dyb3VuZC1jb2xvciBsaW5lYXIgLjA4czsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXRvZ2dsZS1idXR0b24tdW5jaGVja2VkLWJ1dHRvbi1jb2xvciwgdmFyKC0tcGFwZXItZ3JleS01MCkpOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci10b2dnbGUtYnV0dG9uLXVuY2hlY2tlZC1idXR0b247CiAgICAgIH0KCiAgICAgIC50b2dnbGUtYnV0dG9uLmRyYWdnaW5nIHsKICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NoZWNrZWRdOm5vdChbZGlzYWJsZWRdKSkgLnRvZ2dsZS1iYXIgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci10b2dnbGUtYnV0dG9uLWNoZWNrZWQtYmFyLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSk7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvZ2dsZS1idXR0b24tY2hlY2tlZC1iYXI7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC50b2dnbGUtYmFyIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogICAgICAgIG9wYWNpdHk6IDAuMTI7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjaGVja2VkXSkgLnRvZ2dsZS1idXR0b24gewogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgMCk7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgMCk7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjaGVja2VkXTpub3QoW2Rpc2FibGVkXSkpIC50b2dnbGUtYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci10b2dnbGUtYnV0dG9uLWNoZWNrZWQtYnV0dG9uLWNvbG9yLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSk7CgogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvZ2dsZS1idXR0b24tY2hlY2tlZC1idXR0b247CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC50b2dnbGUtYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmRiZGJkOwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtaW5rIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAtMTRweDsKICAgICAgICBsZWZ0OiAtMTRweDsKICAgICAgICByaWdodDogYXV0bzsKICAgICAgICBib3R0b206IGF1dG87CiAgICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItdG9nZ2xlLWJ1dHRvbi11bmNoZWNrZWQtaW5rLWNvbG9yLCB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpKTsKCiAgICAgICAgQGFwcGx5IC0tcGFwZXItdG9nZ2xlLWJ1dHRvbi11bmNoZWNrZWQtaW5rOwogICAgICB9CgogICAgICA6aG9zdChbY2hlY2tlZF0pIC50b2dnbGUtaW5rIHsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItdG9nZ2xlLWJ1dHRvbi1jaGVja2VkLWluay1jb2xvciwgdmFyKC0tcHJpbWFyeS1jb2xvcikpOwoKICAgICAgICBAYXBwbHkgLS1wYXBlci10b2dnbGUtYnV0dG9uLWNoZWNrZWQtaW5rOwogICAgICB9CgogICAgICAudG9nZ2xlLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMzZweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgLyogVGhlIHRvZ2dsZSBidXR0b24gaGFzIGFuIGFic29sdXRlIHBvc2l0aW9uIG9mIC0zcHg7IFRoZSBleHRyYSAxcHgKICAgICAgICAvKiBhY2NvdW50cyBmb3IgdGhlIHRvZ2dsZSBidXR0b24gc2hhZG93IGJveC4gKi8KICAgICAgICBtYXJnaW46IDRweCAxcHg7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtbGFiZWwgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLXBhcGVyLXRvZ2dsZS1idXR0b24tbGFiZWwtc3BhY2luZywgOHB4KTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItdG9nZ2xlLWJ1dHRvbi1sYWJlbC1jb2xvciwgdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG9yKSk7CiAgICAgIH0KCiAgICAgIC8qIGludmFsaWQgc3RhdGUgKi8KICAgICAgOmhvc3QoW2ludmFsaWRdKSAudG9nZ2xlLWJhciB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItdG9nZ2xlLWJ1dHRvbi1pbnZhbGlkLWJhci1jb2xvciwgdmFyKC0tZXJyb3ItY29sb3IpKTsKICAgICAgfQoKICAgICAgOmhvc3QoW2ludmFsaWRdKSAudG9nZ2xlLWJ1dHRvbiB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFwZXItdG9nZ2xlLWJ1dHRvbi1pbnZhbGlkLWJ1dHRvbi1jb2xvciwgdmFyKC0tZXJyb3ItY29sb3IpKTsKICAgICAgfQoKICAgICAgOmhvc3QoW2ludmFsaWRdKSAudG9nZ2xlLWluayB7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLXRvZ2dsZS1idXR0b24taW52YWxpZC1pbmstY29sb3IsIHZhcigtLWVycm9yLWNvbG9yKSk7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0idG9nZ2xlLWNvbnRhaW5lciI+CiAgICAgIDxkaXYgaWQ9InRvZ2dsZUJhciIgY2xhc3M9InRvZ2dsZS1iYXIiPjwvZGl2PgogICAgICA8ZGl2IGlkPSJ0b2dnbGVCdXR0b24iIGNsYXNzPSJ0b2dnbGUtYnV0dG9uIj48L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InRvZ2dsZS1sYWJlbCI+PHNsb3Q+PC9zbG90PjwvZGl2PgoKICBgO1NzLnNldEF0dHJpYnV0ZSgic3RyaXAtd2hpdGVzcGFjZSIsIiIpLGpyKHtfdGVtcGxhdGU6U3MsaXM6InBhcGVyLXRvZ2dsZS1idXR0b24iLGJlaGF2aW9yczpbd2FdLGhvc3RBdHRyaWJ1dGVzOntyb2xlOiJidXR0b24iLCJhcmlhLXByZXNzZWQiOiJmYWxzZSIsdGFiaW5kZXg6MH0scHJvcGVydGllczp7fSxsaXN0ZW5lcnM6e3RyYWNrOiJfb250cmFjayJ9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7RGkodGhpcywoZnVuY3Rpb24oKXtkaSh0aGlzLCJwYW4teSIpfSkpfSxfb250cmFjazpmdW5jdGlvbih0KXt2YXIgZT10LmRldGFpbDsic3RhcnQiPT09ZS5zdGF0ZT90aGlzLl90cmFja1N0YXJ0KGUpOiJ0cmFjayI9PT1lLnN0YXRlP3RoaXMuX3RyYWNrTW92ZShlKToiZW5kIj09PWUuc3RhdGUmJnRoaXMuX3RyYWNrRW5kKGUpfSxfdHJhY2tTdGFydDpmdW5jdGlvbih0KXt0aGlzLl93aWR0aD10aGlzLiQudG9nZ2xlQmFyLm9mZnNldFdpZHRoLzIsdGhpcy5fdHJhY2tDaGVja2VkPXRoaXMuY2hlY2tlZCx0aGlzLiQudG9nZ2xlQnV0dG9uLmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIil9LF90cmFja01vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dC5keDt0aGlzLl94PU1hdGgubWluKHRoaXMuX3dpZHRoLE1hdGgubWF4KDAsdGhpcy5fdHJhY2tDaGVja2VkP3RoaXMuX3dpZHRoK2U6ZSkpLHRoaXMudHJhbnNsYXRlM2QodGhpcy5feCsicHgiLDAsMCx0aGlzLiQudG9nZ2xlQnV0dG9uKSx0aGlzLl91c2VyQWN0aXZhdGUodGhpcy5feD50aGlzLl93aWR0aC8yKX0sX3RyYWNrRW5kOmZ1bmN0aW9uKHQpe3RoaXMuJC50b2dnbGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKSx0aGlzLnRyYW5zZm9ybSgiIix0aGlzLiQudG9nZ2xlQnV0dG9uKX0sX2NyZWF0ZVJpcHBsZTpmdW5jdGlvbigpe3RoaXMuX3JpcHBsZUNvbnRhaW5lcj10aGlzLiQudG9nZ2xlQnV0dG9uO3ZhciB0PXVhLl9jcmVhdGVSaXBwbGUoKTtyZXR1cm4gdC5pZD0iaW5rIix0LnNldEF0dHJpYnV0ZSgicmVjZW50ZXJzIiwiIiksdC5jbGFzc0xpc3QuYWRkKCJjaXJjbGUiLCJ0b2dnbGUtaW5rIiksdH19KSwKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE1IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzCiAgICBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50CiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICovCmpyKHtfdGVtcGxhdGU6eGVgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICAtLWNhbGN1bGF0ZWQtcGFwZXItdG9vbGJhci1oZWlnaHQ6IHZhcigtLXBhcGVyLXRvb2xiYXItaGVpZ2h0LCA2NHB4KTsKICAgICAgICAtLWNhbGN1bGF0ZWQtcGFwZXItdG9vbGJhci1zbS1oZWlnaHQ6IHZhcigtLXBhcGVyLXRvb2xiYXItc20taGVpZ2h0LCA1NnB4KTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgaGVpZ2h0OiB2YXIoLS1jYWxjdWxhdGVkLXBhcGVyLXRvb2xiYXItaGVpZ2h0KTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wYXBlci10b29sYmFyLWJhY2tncm91bmQsIHZhcigtLXByaW1hcnktY29sb3IpKTsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItdG9vbGJhci1jb2xvciwgdmFyKC0tZGFyay10aGVtZS10ZXh0LWNvbG9yKSk7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItdG9vbGJhcjsKICAgICAgfQoKICAgICAgOmhvc3QoLmFuaW1hdGUpIHsKICAgICAgICB0cmFuc2l0aW9uOiB2YXIoLS1wYXBlci10b29sYmFyLXRyYW5zaXRpb24sIGhlaWdodCAwLjE4cyBlYXNlLWluKTsKICAgICAgfQoKICAgICAgOmhvc3QoLm1lZGl1bS10YWxsKSB7CiAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItdG9vbGJhci1oZWlnaHQpICogMik7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItdG9vbGJhci1tZWRpdW07CiAgICAgIH0KCiAgICAgIDpob3N0KC50YWxsKSB7CiAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItdG9vbGJhci1oZWlnaHQpICogMyk7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItdG9vbGJhci10YWxsOwogICAgICB9CgogICAgICAudG9vbGJhci10b29scyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGhlaWdodDogdmFyKC0tY2FsY3VsYXRlZC1wYXBlci10b29sYmFyLWhlaWdodCk7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIEBhcHBseSAtLWxheW91dC1ob3Jpem9udGFsOwogICAgICAgIEBhcHBseSAtLWxheW91dC1jZW50ZXI7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItdG9vbGJhci1jb250ZW50OwogICAgICB9CgogICAgICAvKgogICAgICAgKiBUT0RPOiBXaGVyZSBzaG91bGQgbWVkaWEgcXVlcnkgYnJlYWtwb2ludHMgbGl2ZSBzbyB0aGV5IGNhbiBiZSBzaGFyZWQgYmV0d2VlbiBlbGVtZW50cz8KICAgICAgICovCgogICAgICBAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHsKICAgICAgICA6aG9zdCB7CiAgICAgICAgICBoZWlnaHQ6IHZhcigtLWNhbGN1bGF0ZWQtcGFwZXItdG9vbGJhci1zbS1oZWlnaHQpOwogICAgICAgIH0KCiAgICAgICAgOmhvc3QoLm1lZGl1bS10YWxsKSB7CiAgICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tY2FsY3VsYXRlZC1wYXBlci10b29sYmFyLXNtLWhlaWdodCkgKiAyKTsKICAgICAgICB9CgogICAgICAgIDpob3N0KC50YWxsKSB7CiAgICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tY2FsY3VsYXRlZC1wYXBlci10b29sYmFyLXNtLWhlaWdodCkgKiAzKTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLXRvb2xzIHsKICAgICAgICAgIGhlaWdodDogdmFyKC0tY2FsY3VsYXRlZC1wYXBlci10b29sYmFyLXNtLWhlaWdodCk7CiAgICAgICAgfQogICAgICB9CgogICAgICAjdG9wQmFyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC8qIG1pZGRsZSBiYXIgKi8KICAgICAgI21pZGRsZUJhciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICB9CgogICAgICA6aG9zdCgudGFsbCkgI21pZGRsZUJhciwKICAgICAgOmhvc3QoLm1lZGl1bS10YWxsKSAjbWlkZGxlQmFyIHsKICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7CiAgICAgIH0KCiAgICAgIC8qIGJvdHRvbSBiYXIgKi8KICAgICAgI2JvdHRvbUJhciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICB9CgogICAgICAvKgogICAgICAgKiBtYWtlIGVsZW1lbnRzIChlLmcuIGJ1dHRvbnMpIHJlc3BvbmQgdG8gbW91c2UvdG91Y2ggZXZlbnRzCiAgICAgICAqCiAgICAgICAqIFxgLnRvb2xiYXItdG9vbHNcYCBkaXNhYmxlcyB0b3VjaCBldmVudHMgc28gbXVsdGlwbGUgdG9vbGJhcnMgY2FuIHN0YWNrIGFuZCBub3QKICAgICAgICogYWJzb3JiIGV2ZW50cy4gQWxsIGNoaWxkcmVuIG11c3QgaGF2ZSBwb2ludGVyIGV2ZW50cyByZS1lbmFibGVkIHRvIHdvcmsgYXMKICAgICAgICogZXhwZWN0ZWQuCiAgICAgICAqLwogICAgICAudG9vbGJhci10b29scyA+IDo6c2xvdHRlZCgqOm5vdChbZGlzYWJsZWRdKSkgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICB9CgogICAgICAudG9vbGJhci10b29scyA+IDo6c2xvdHRlZCgudGl0bGUpIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci1mb250LWNvbW1vbi1iYXNlOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtZmxleDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItdG9vbHMgPiA6OnNsb3R0ZWQoLnRpdGxlKSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDU2cHg7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLXRvb2xzID4gOjpzbG90dGVkKHBhcGVyLWljb24tYnV0dG9uICsgLnRpdGxlKSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7CiAgICAgIH0KCiAgICAgIC8qKgogICAgICAgKiBUaGUgLS1wYXBlci10b29sYmFyLXRpdGxlIG1peGluIGlzIGFwcGxpZWQgaGVyZSBpbnN0ZWFkIG9mIGFib3ZlIHRvCiAgICAgICAqIGZpeCB0aGUgaXNzdWUgd2l0aCBtYXJnaW4tbGVmdCBiZWluZyBpZ25vcmVkIGR1ZSB0byBjc3Mgb3JkZXJpbmcuCiAgICAgICAqLwogICAgICAudG9vbGJhci10b29scyA+IDo6c2xvdHRlZCgudGl0bGUpIHsKICAgICAgICBAYXBwbHkgLS1wYXBlci10b29sYmFyLXRpdGxlOwogICAgICB9CgogICAgICAudG9vbGJhci10b29scyA+IDo6c2xvdHRlZChwYXBlci1pY29uLWJ1dHRvbltpY29uPW1lbnVdKSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyNHB4OwogICAgICB9CgogICAgICAudG9vbGJhci10b29scyA+IDo6c2xvdHRlZCguZml0KSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogYXV0bzsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogYXV0bzsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC8qIFRPRE8obm9tcyk6IFVudGlsIHdlIGhhdmUgYSBiZXR0ZXIgc29sdXRpb24gZm9yIGNsYXNzZXMgdGhhdCBkb24ndCB1c2UKICAgICAgICogL2RlZXAvIGNyZWF0ZSBvdXIgb3duLgogICAgICAgKi8KICAgICAgLnN0YXJ0LWp1c3RpZmllZCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LXN0YXJ0LWp1c3RpZmllZDsKICAgICAgfQoKICAgICAgLmNlbnRlci1qdXN0aWZpZWQgewogICAgICAgIEBhcHBseSAtLWxheW91dC1jZW50ZXItanVzdGlmaWVkOwogICAgICB9CgogICAgICAuZW5kLWp1c3RpZmllZCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWVuZC1qdXN0aWZpZWQ7CiAgICAgIH0KCiAgICAgIC5hcm91bmQtanVzdGlmaWVkIHsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtYXJvdW5kLWp1c3RpZmllZDsKICAgICAgfQoKICAgICAgLmp1c3RpZmllZCB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWp1c3RpZmllZDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGlkPSJ0b3BCYXIiIGNsYXNzXCQ9InRvb2xiYXItdG9vbHMgW1tfY29tcHV0ZUJhckV4dHJhQ2xhc3NlcyhqdXN0aWZ5KV1dIj4KICAgICAgPHNsb3QgbmFtZT0idG9wIj48L3Nsb3Q+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJtaWRkbGVCYXIiIGNsYXNzXCQ9InRvb2xiYXItdG9vbHMgW1tfY29tcHV0ZUJhckV4dHJhQ2xhc3NlcyhtaWRkbGVKdXN0aWZ5KV1dIj4KICAgICAgPHNsb3QgbmFtZT0ibWlkZGxlIj48L3Nsb3Q+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJib3R0b21CYXIiIGNsYXNzXCQ9InRvb2xiYXItdG9vbHMgW1tfY29tcHV0ZUJhckV4dHJhQ2xhc3Nlcyhib3R0b21KdXN0aWZ5KV1dIj4KICAgICAgPHNsb3QgbmFtZT0iYm90dG9tIj48L3Nsb3Q+CiAgICA8L2Rpdj4KYCxpczoicGFwZXItdG9vbGJhciIsaG9zdEF0dHJpYnV0ZXM6e3JvbGU6InRvb2xiYXIifSxwcm9wZXJ0aWVzOntib3R0b21KdXN0aWZ5Ont0eXBlOlN0cmluZyx2YWx1ZToiIn0sanVzdGlmeTp7dHlwZTpTdHJpbmcsdmFsdWU6IiJ9LG1pZGRsZUp1c3RpZnk6e3R5cGU6U3RyaW5nLHZhbHVlOiIifX0scmVhZHk6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4odGhpcy5pcywiaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBhcHAtbGF5b3V0IGluc3RlYWQhIil9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fb2JzZXJ2ZXI9dGhpcy5fb2JzZXJ2ZSh0aGlzKSx0aGlzLl91cGRhdGVBcmlhTGFiZWxsZWRCeSgpfSxkZXRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX29ic2VydmVyJiZ0aGlzLl9vYnNlcnZlci5kaXNjb25uZWN0KCl9LF9vYnNlcnZlOmZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCl7dGhpcy5fdXBkYXRlQXJpYUxhYmVsbGVkQnkoKX0uYmluZCh0aGlzKSk7cmV0dXJuIGUub2JzZXJ2ZSh0LHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pLGV9LF91cGRhdGVBcmlhTGFiZWxsZWRCeTpmdW5jdGlvbigpe1dpKCk7Zm9yKHZhciB0LGU9W10sbj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlcih0aGlzLnJvb3QpLnF1ZXJ5U2VsZWN0b3JBbGwoInNsb3QiKSkuY29uY2F0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGVyKHRoaXMucm9vdCkucXVlcnlTZWxlY3RvckFsbCgiY29udGVudCIpKSksaT0wO3Q9bltpXTtpKyspZm9yKHZhciByLG89ZXIodCkuZ2V0RGlzdHJpYnV0ZWROb2RlcygpLGE9MDtyPW9bYV07YSsrKWlmKHIuY2xhc3NMaXN0JiZyLmNsYXNzTGlzdC5jb250YWlucygidGl0bGUiKSlpZihyLmlkKWUucHVzaChyLmlkKTtlbHNle3ZhciBzPSJwYXBlci10b29sYmFyLWxhYmVsLSIrTWF0aC5mbG9vcigxZTQqTWF0aC5yYW5kb20oKSk7ci5pZD1zLGUucHVzaChzKX1lLmxlbmd0aD4wJiZ0aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbGxlZGJ5IixlLmpvaW4oIiAiKSl9LF9jb21wdXRlQmFyRXh0cmFDbGFzc2VzOmZ1bmN0aW9uKHQpe3JldHVybiB0P3QrKCJqdXN0aWZpZWQiPT09dD8iIjoiLWp1c3RpZmllZCIpOiIifX0pLAovKioKICAgIEBsaWNlbnNlCiAgICBDb3B5cmlnaHQgKGMpIDIwMTUgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZQogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMKICAgIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQKICAgIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KanIoe190ZW1wbGF0ZTp4ZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHotaW5kZXg6IDEwMDI7CiAgICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgICN0b29sdGlwIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIEBhcHBseSAtLXBhcGVyLWZvbnQtY29tbW9uLWJhc2U7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXRvb2x0aXAtYmFja2dyb3VuZCwgIzYxNjE2MSk7CiAgICAgICAgY29sb3I6IHZhcigtLXBhcGVyLXRvb2x0aXAtdGV4dC1jb2xvciwgd2hpdGUpOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItdG9vbHRpcDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBrZXlGcmFtZVNjYWxlVXAgewogICAgICAgIDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC4wKTsKICAgICAgICB9CiAgICAgICAgMTAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMCk7CiAgICAgICAgfQogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGtleUZyYW1lU2NhbGVEb3duIHsKICAgICAgICAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMCk7CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBrZXlGcmFtZUZhZGVJbk9wYWNpdHkgewogICAgICAgIDAlIHsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgb3BhY2l0eTogdmFyKC0tcGFwZXItdG9vbHRpcC1vcGFjaXR5LCAwLjkpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBrZXlGcmFtZUZhZGVPdXRPcGFjaXR5IHsKICAgICAgICAwJSB7CiAgICAgICAgICBvcGFjaXR5OiB2YXIoLS1wYXBlci10b29sdGlwLW9wYWNpdHksIDAuOSk7CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMga2V5RnJhbWVTbGlkZURvd25JbiB7CiAgICAgICAgMCUgewogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMDAwcHgpOwogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB9CiAgICAgICAgMTAlIHsKICAgICAgICAgIG9wYWNpdHk6IDAuMjsKICAgICAgICB9CiAgICAgICAgMTAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgICBvcGFjaXR5OiB2YXIoLS1wYXBlci10b29sdGlwLW9wYWNpdHksIDAuOSk7CiAgICAgICAgfQogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGtleUZyYW1lU2xpZGVEb3duT3V0IHsKICAgICAgICAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgICBvcGFjaXR5OiB2YXIoLS1wYXBlci10b29sdGlwLW9wYWNpdHksIDAuOSk7CiAgICAgICAgfQogICAgICAgIDEwJSB7CiAgICAgICAgICBvcGFjaXR5OiAwLjI7CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMDAwcHgpOwogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5mYWRlLWluLWFuaW1hdGlvbiB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBhbmltYXRpb24tZGVsYXk6IHZhcigtLXBhcGVyLXRvb2x0aXAtZGVsYXktaW4sIDUwMG1zKTsKICAgICAgICBhbmltYXRpb24tbmFtZToga2V5RnJhbWVGYWRlSW5PcGFjaXR5OwogICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7CiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsKICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLXBhcGVyLXRvb2x0aXAtZHVyYXRpb24taW4sIDUwMG1zKTsKICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsKICAgICAgICBAYXBwbHkgLS1wYXBlci10b29sdGlwLWFuaW1hdGlvbjsKICAgICAgfQoKICAgICAgLmZhZGUtb3V0LWFuaW1hdGlvbiB7CiAgICAgICAgb3BhY2l0eTogdmFyKC0tcGFwZXItdG9vbHRpcC1vcGFjaXR5LCAwLjkpOwogICAgICAgIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tcGFwZXItdG9vbHRpcC1kZWxheS1vdXQsIDBtcyk7CiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGtleUZyYW1lRmFkZU91dE9wYWNpdHk7CiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTsKICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOwogICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tcGFwZXItdG9vbHRpcC1kdXJhdGlvbi1vdXQsIDUwMG1zKTsKICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsKICAgICAgICBAYXBwbHkgLS1wYXBlci10b29sdGlwLWFuaW1hdGlvbjsKICAgICAgfQoKICAgICAgLnNjYWxlLXVwLWFuaW1hdGlvbiB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTsKICAgICAgICBvcGFjaXR5OiB2YXIoLS1wYXBlci10b29sdGlwLW9wYWNpdHksIDAuOSk7CiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1wYXBlci10b29sdGlwLWRlbGF5LWluLCA1MDBtcyk7CiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGtleUZyYW1lU2NhbGVVcDsKICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxOwogICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47CiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1wYXBlci10b29sdGlwLWR1cmF0aW9uLWluLCA1MDBtcyk7CiAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItdG9vbHRpcC1hbmltYXRpb247CiAgICAgIH0KCiAgICAgIC5zY2FsZS1kb3duLWFuaW1hdGlvbiB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICAgICAgICBvcGFjaXR5OiB2YXIoLS1wYXBlci10b29sdGlwLW9wYWNpdHksIDAuOSk7CiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1wYXBlci10b29sdGlwLWRlbGF5LW91dCwgNTAwbXMpOwogICAgICAgIGFuaW1hdGlvbi1uYW1lOiBrZXlGcmFtZVNjYWxlRG93bjsKICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxOwogICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47CiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1wYXBlci10b29sdGlwLWR1cmF0aW9uLW91dCwgNTAwbXMpOwogICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvb2x0aXAtYW5pbWF0aW9uOwogICAgICB9CgogICAgICAuc2xpZGUtZG93bi1hbmltYXRpb24gewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjAwMHB4KTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tcGFwZXItdG9vbHRpcC1kZWxheS1vdXQsIDUwMG1zKTsKICAgICAgICBhbmltYXRpb24tbmFtZToga2V5RnJhbWVTbGlkZURvd25JbjsKICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxOwogICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjAsIDAuMCwgMC4yLCAxKTsKICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLXBhcGVyLXRvb2x0aXAtZHVyYXRpb24tb3V0LCA1MDBtcyk7CiAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7CiAgICAgICAgQGFwcGx5IC0tcGFwZXItdG9vbHRpcC1hbmltYXRpb247CiAgICAgIH0KCiAgICAgIC5zbGlkZS1kb3duLWFuaW1hdGlvbi1vdXQgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICBvcGFjaXR5OiB2YXIoLS1wYXBlci10b29sdGlwLW9wYWNpdHksIDAuOSk7CiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1wYXBlci10b29sdGlwLWRlbGF5LW91dCwgNTAwbXMpOwogICAgICAgIGFuaW1hdGlvbi1uYW1lOiBrZXlGcmFtZVNsaWRlRG93bk91dDsKICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxOwogICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAuMCwgMSwgMSk7CiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1wYXBlci10b29sdGlwLWR1cmF0aW9uLW91dCwgNTAwbXMpOwogICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzOwogICAgICAgIEBhcHBseSAtLXBhcGVyLXRvb2x0aXAtYW5pbWF0aW9uOwogICAgICB9CgogICAgICAuY2FuY2VsLWFuaW1hdGlvbiB7CiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAtMzBzICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC8qIFRoYW5rcyBJRSAxMC4gKi8KCiAgICAgIC5oaWRkZW4gewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGlkPSJ0b29sdGlwIiBjbGFzcz0iaGlkZGVuIj4KICAgICAgPHNsb3Q+PC9zbG90PgogICAgPC9kaXY+CmAsaXM6InBhcGVyLXRvb2x0aXAiLGhvc3RBdHRyaWJ1dGVzOntyb2xlOiJ0b29sdGlwIix0YWJpbmRleDotMX0scHJvcGVydGllczp7Zm9yOnt0eXBlOlN0cmluZyxvYnNlcnZlcjoiX2ZpbmRUYXJnZXQifSxtYW51YWxNb2RlOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEsb2JzZXJ2ZXI6Il9tYW51YWxNb2RlQ2hhbmdlZCJ9LHBvc2l0aW9uOnt0eXBlOlN0cmluZyx2YWx1ZToiYm90dG9tIn0sZml0VG9WaXNpYmxlQm91bmRzOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LG9mZnNldDp7dHlwZTpOdW1iZXIsdmFsdWU6MTR9LG1hcmdpblRvcDp7dHlwZTpOdW1iZXIsdmFsdWU6MTR9LGFuaW1hdGlvbkRlbGF5Ont0eXBlOk51bWJlcix2YWx1ZTo1MDAsb2JzZXJ2ZXI6Il9kZWxheUNoYW5nZSJ9LGFuaW1hdGlvbkVudHJ5Ont0eXBlOlN0cmluZyx2YWx1ZToiIn0sYW5pbWF0aW9uRXhpdDp7dHlwZTpTdHJpbmcsdmFsdWU6IiJ9LGFuaW1hdGlvbkNvbmZpZzp7dHlwZTpPYmplY3QsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm57ZW50cnk6W3tuYW1lOiJmYWRlLWluLWFuaW1hdGlvbiIsbm9kZTp0aGlzLHRpbWluZzp7ZGVsYXk6MH19XSxleGl0Olt7bmFtZToiZmFkZS1vdXQtYW5pbWF0aW9uIixub2RlOnRoaXN9XX19fSxfc2hvd2luZzp7dHlwZTpCb29sZWFuLHZhbHVlOiExfX0sbGlzdGVuZXJzOnt3ZWJraXRBbmltYXRpb25FbmQ6Il9vbkFuaW1hdGlvbkVuZCJ9LGdldCB0YXJnZXQoKXt2YXIgdD1lcih0aGlzKS5wYXJlbnROb2RlLGU9ZXIodGhpcykuZ2V0T3duZXJSb290KCk7cmV0dXJuIHRoaXMuZm9yP2VyKGUpLnF1ZXJ5U2VsZWN0b3IoIiMiK3RoaXMuZm9yKTp0Lm5vZGVUeXBlPT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU/ZS5ob3N0OnR9LGF0dGFjaGVkOmZ1bmN0aW9uKCl7dGhpcy5fZmluZFRhcmdldCgpfSxkZXRhY2hlZDpmdW5jdGlvbigpe3RoaXMubWFudWFsTW9kZXx8dGhpcy5fcmVtb3ZlTGlzdGVuZXJzKCl9LHBsYXlBbmltYXRpb246ZnVuY3Rpb24odCl7ImVudHJ5Ij09PXQ/dGhpcy5zaG93KCk6ImV4aXQiPT09dCYmdGhpcy5oaWRlKCl9LGNhbmNlbEFuaW1hdGlvbjpmdW5jdGlvbigpe3RoaXMuJC50b29sdGlwLmNsYXNzTGlzdC5hZGQoImNhbmNlbC1hbmltYXRpb24iKX0sc2hvdzpmdW5jdGlvbigpe2lmKCF0aGlzLl9zaG93aW5nKXtpZigiIj09PWVyKHRoaXMpLnRleHRDb250ZW50LnRyaW0oKSl7Zm9yKHZhciB0PSEwLGU9ZXIodGhpcykuZ2V0RWZmZWN0aXZlQ2hpbGROb2RlcygpLG49MDtuPGUubGVuZ3RoO24rKylpZigiIiE9PWVbbl0udGV4dENvbnRlbnQudHJpbSgpKXt0PSExO2JyZWFrfWlmKHQpcmV0dXJufXRoaXMuX3Nob3dpbmc9ITAsdGhpcy4kLnRvb2x0aXAuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksdGhpcy4kLnRvb2x0aXAuY2xhc3NMaXN0LnJlbW92ZSgiY2FuY2VsLWFuaW1hdGlvbiIpLHRoaXMuJC50b29sdGlwLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5fZ2V0QW5pbWF0aW9uVHlwZSgiZXhpdCIpKSx0aGlzLnVwZGF0ZVBvc2l0aW9uKCksdGhpcy5fYW5pbWF0aW9uUGxheWluZz0hMCx0aGlzLiQudG9vbHRpcC5jbGFzc0xpc3QuYWRkKHRoaXMuX2dldEFuaW1hdGlvblR5cGUoImVudHJ5IikpfX0saGlkZTpmdW5jdGlvbigpe2lmKHRoaXMuX3Nob3dpbmcpe2lmKHRoaXMuX2FuaW1hdGlvblBsYXlpbmcpcmV0dXJuIHRoaXMuX3Nob3dpbmc9ITEsdm9pZCB0aGlzLl9jYW5jZWxBbmltYXRpb24oKTt0aGlzLl9vbkFuaW1hdGlvbkZpbmlzaCgpLHRoaXMuX3Nob3dpbmc9ITEsdGhpcy5fYW5pbWF0aW9uUGxheWluZz0hMH19LHVwZGF0ZVBvc2l0aW9uOmZ1bmN0aW9uKCl7aWYodGhpcy5fdGFyZ2V0JiZ0aGlzLm9mZnNldFBhcmVudCl7dmFyIHQ9dGhpcy5vZmZzZXQ7MTQhPXRoaXMubWFyZ2luVG9wJiYxND09dGhpcy5vZmZzZXQmJih0PXRoaXMubWFyZ2luVG9wKTt2YXIgZSxuLGk9dGhpcy5vZmZzZXRQYXJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj10aGlzLl90YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGE9KHIud2lkdGgtby53aWR0aCkvMixzPShyLmhlaWdodC1vLmhlaWdodCkvMixsPXIubGVmdC1pLmxlZnQsYz1yLnRvcC1pLnRvcDtzd2l0Y2godGhpcy5wb3NpdGlvbil7Y2FzZSJ0b3AiOmU9bCthLG49Yy1vLmhlaWdodC10O2JyZWFrO2Nhc2UiYm90dG9tIjplPWwrYSxuPWMrci5oZWlnaHQrdDticmVhaztjYXNlImxlZnQiOmU9bC1vLndpZHRoLXQsbj1jK3M7YnJlYWs7Y2FzZSJyaWdodCI6ZT1sK3Iud2lkdGgrdCxuPWMrc310aGlzLmZpdFRvVmlzaWJsZUJvdW5kcz8oaS5sZWZ0K2Urby53aWR0aD53aW5kb3cuaW5uZXJXaWR0aD8odGhpcy5zdHlsZS5yaWdodD0iMHB4Iix0aGlzLnN0eWxlLmxlZnQ9ImF1dG8iKToodGhpcy5zdHlsZS5sZWZ0PU1hdGgubWF4KDAsZSkrInB4Iix0aGlzLnN0eWxlLnJpZ2h0PSJhdXRvIiksaS50b3ArbitvLmhlaWdodD53aW5kb3cuaW5uZXJIZWlnaHQ/KHRoaXMuc3R5bGUuYm90dG9tPWkuaGVpZ2h0LWMrdCsicHgiLHRoaXMuc3R5bGUudG9wPSJhdXRvIik6KHRoaXMuc3R5bGUudG9wPU1hdGgubWF4KC1pLnRvcCxuKSsicHgiLHRoaXMuc3R5bGUuYm90dG9tPSJhdXRvIikpOih0aGlzLnN0eWxlLmxlZnQ9ZSsicHgiLHRoaXMuc3R5bGUudG9wPW4rInB4Iil9fSxfYWRkTGlzdGVuZXJzOmZ1bmN0aW9uKCl7dGhpcy5fdGFyZ2V0JiYodGhpcy5saXN0ZW4odGhpcy5fdGFyZ2V0LCJtb3VzZWVudGVyIiwic2hvdyIpLHRoaXMubGlzdGVuKHRoaXMuX3RhcmdldCwiZm9jdXMiLCJzaG93IiksdGhpcy5saXN0ZW4odGhpcy5fdGFyZ2V0LCJtb3VzZWxlYXZlIiwiaGlkZSIpLHRoaXMubGlzdGVuKHRoaXMuX3RhcmdldCwiYmx1ciIsImhpZGUiKSx0aGlzLmxpc3Rlbih0aGlzLl90YXJnZXQsInRhcCIsImhpZGUiKSksdGhpcy5saXN0ZW4odGhpcy4kLnRvb2x0aXAsImFuaW1hdGlvbmVuZCIsIl9vbkFuaW1hdGlvbkVuZCIpLHRoaXMubGlzdGVuKHRoaXMsIm1vdXNlZW50ZXIiLCJoaWRlIil9LF9maW5kVGFyZ2V0OmZ1bmN0aW9uKCl7dGhpcy5tYW51YWxNb2RlfHx0aGlzLl9yZW1vdmVMaXN0ZW5lcnMoKSx0aGlzLl90YXJnZXQ9dGhpcy50YXJnZXQsdGhpcy5tYW51YWxNb2RlfHx0aGlzLl9hZGRMaXN0ZW5lcnMoKX0sX2RlbGF5Q2hhbmdlOmZ1bmN0aW9uKHQpezUwMCE9PXQmJnRoaXMudXBkYXRlU3R5bGVzKHsiLS1wYXBlci10b29sdGlwLWRlbGF5LWluIjp0KyJtcyJ9KX0sX21hbnVhbE1vZGVDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5tYW51YWxNb2RlP3RoaXMuX3JlbW92ZUxpc3RlbmVycygpOnRoaXMuX2FkZExpc3RlbmVycygpfSxfY2FuY2VsQW5pbWF0aW9uOmZ1bmN0aW9uKCl7dGhpcy4kLnRvb2x0aXAuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLl9nZXRBbmltYXRpb25UeXBlKCJlbnRyeSIpKSx0aGlzLiQudG9vbHRpcC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuX2dldEFuaW1hdGlvblR5cGUoImV4aXQiKSksdGhpcy4kLnRvb2x0aXAuY2xhc3NMaXN0LnJlbW92ZSgiY2FuY2VsLWFuaW1hdGlvbiIpLHRoaXMuJC50b29sdGlwLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfSxfb25BbmltYXRpb25GaW5pc2g6ZnVuY3Rpb24oKXt0aGlzLl9zaG93aW5nJiYodGhpcy4kLnRvb2x0aXAuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLl9nZXRBbmltYXRpb25UeXBlKCJlbnRyeSIpKSx0aGlzLiQudG9vbHRpcC5jbGFzc0xpc3QucmVtb3ZlKCJjYW5jZWwtYW5pbWF0aW9uIiksdGhpcy4kLnRvb2x0aXAuY2xhc3NMaXN0LmFkZCh0aGlzLl9nZXRBbmltYXRpb25UeXBlKCJleGl0IikpKX0sX29uQW5pbWF0aW9uRW5kOmZ1bmN0aW9uKCl7dGhpcy5fYW5pbWF0aW9uUGxheWluZz0hMSx0aGlzLl9zaG93aW5nfHwodGhpcy4kLnRvb2x0aXAuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLl9nZXRBbmltYXRpb25UeXBlKCJleGl0IikpLHRoaXMuJC50b29sdGlwLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpKX0sX2dldEFuaW1hdGlvblR5cGU6ZnVuY3Rpb24odCl7aWYoImVudHJ5Ij09PXQmJiIiIT09dGhpcy5hbmltYXRpb25FbnRyeSlyZXR1cm4gdGhpcy5hbmltYXRpb25FbnRyeTtpZigiZXhpdCI9PT10JiYiIiE9PXRoaXMuYW5pbWF0aW9uRXhpdClyZXR1cm4gdGhpcy5hbmltYXRpb25FeGl0O2lmKHRoaXMuYW5pbWF0aW9uQ29uZmlnW3RdJiYic3RyaW5nIj09dHlwZW9mIHRoaXMuYW5pbWF0aW9uQ29uZmlnW3RdWzBdLm5hbWUpe2lmKHRoaXMuYW5pbWF0aW9uQ29uZmlnW3RdWzBdLnRpbWluZyYmdGhpcy5hbmltYXRpb25Db25maWdbdF1bMF0udGltaW5nLmRlbGF5JiYwIT09dGhpcy5hbmltYXRpb25Db25maWdbdF1bMF0udGltaW5nLmRlbGF5KXt2YXIgZT10aGlzLmFuaW1hdGlvbkNvbmZpZ1t0XVswXS50aW1pbmcuZGVsYXk7ImVudHJ5Ij09PXQ/dGhpcy51cGRhdGVTdHlsZXMoeyItLXBhcGVyLXRvb2x0aXAtZGVsYXktaW4iOmUrIm1zIn0pOiJleGl0Ij09PXQmJnRoaXMudXBkYXRlU3R5bGVzKHsiLS1wYXBlci10b29sdGlwLWRlbGF5LW91dCI6ZSsibXMifSl9cmV0dXJuIHRoaXMuYW5pbWF0aW9uQ29uZmlnW3RdWzBdLm5hbWV9fSxfcmVtb3ZlTGlzdGVuZXJzOmZ1bmN0aW9uKCl7dGhpcy5fdGFyZ2V0JiYodGhpcy51bmxpc3Rlbih0aGlzLl90YXJnZXQsIm1vdXNlZW50ZXIiLCJzaG93IiksdGhpcy51bmxpc3Rlbih0aGlzLl90YXJnZXQsImZvY3VzIiwic2hvdyIpLHRoaXMudW5saXN0ZW4odGhpcy5fdGFyZ2V0LCJtb3VzZWxlYXZlIiwiaGlkZSIpLHRoaXMudW5saXN0ZW4odGhpcy5fdGFyZ2V0LCJibHVyIiwiaGlkZSIpLHRoaXMudW5saXN0ZW4odGhpcy5fdGFyZ2V0LCJ0YXAiLCJoaWRlIikpLHRoaXMudW5saXN0ZW4odGhpcy4kLnRvb2x0aXAsImFuaW1hdGlvbmVuZCIsIl9vbkFuaW1hdGlvbkVuZCIpLHRoaXMudW5saXN0ZW4odGhpcywibW91c2VlbnRlciIsImhpZGUiKX19KTtjbGFzcyBNc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmxpc3RlbmVyPXR9fWNvbnN0IEVzPW5ldyBTZXQsVHM9bmV3IFNldDtmdW5jdGlvbiBDcyh0KXtjb25zdCBlPW5ldyBNcyh0KTtyZXR1cm4gRXMuYWRkKGUpLGV9ZnVuY3Rpb24gQXModCl7Y29uc3QgZT1uZXcgTXModCk7cmV0dXJuIFRzLmFkZChlKSxlfWZ1bmN0aW9uIGtzKCl7VHMuZm9yRWFjaCgodD0+dC5saXN0ZW5lcigpKSl9ZnVuY3Rpb24gTHModCl7RXMuZGVsZXRlKHQpfWZ1bmN0aW9uIFBzKHQpe1RzLmRlbGV0ZSh0KX13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsKCgpPT57RXMuZm9yRWFjaCgodD0+dC5saXN0ZW5lcigpKSl9KSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInN0b3JhZ2UiLCgoKT0+e1RzLmZvckVhY2goKHQ9PnQubGlzdGVuZXIoKSkpfSkpO2xldCBOcz0hMTtmdW5jdGlvbiBJcygpe3JldHVybiBOc31sZXQgUnM9IiI7ZnVuY3Rpb24gT3ModCl7UnM9dH1mdW5jdGlvbiB6cygpe3JldHVybiBSc312YXIgRHM9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsc2V0VXNlSGFzaDpmdW5jdGlvbiBCcyh0KXtOcz10fSx1c2VIYXNoOklzLHNldEZha2VIYXNoOk9zLGdldEZha2VIYXNoOnpzfSk7Y29uc3QgSHM9Il9fdGFiX18iO2xldCBGcz17fTtmdW5jdGlvbiBWcygpe3JldHVybiBJcygpP3dpbmRvdy5sb2NhdGlvbi5oYXNoLnNsaWNlKDEpOnpzKCl9ZnVuY3Rpb24gVXModCl7Y29uc3QgZT17fTtyZXR1cm4gdC5zcGxpdCgiJiIpLmZvckVhY2goKHQ9Pntjb25zdCBuPXQuc3BsaXQoIj0iKTsxPT09bi5sZW5ndGg/ZS5fX3RhYl9fPW5bMF06Mj09PW4ubGVuZ3RoJiYoZVtkZWNvZGVVUklDb21wb25lbnQoblswXSldPWRlY29kZVVSSUNvbXBvbmVudChuWzFdKSl9KSksZX1mdW5jdGlvbiBqcyh0LGU9ITEpe2lmKElzKCkpaWYoZSl7Y29uc3QgZT1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtlLmhhc2g9dCx3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUod2luZG93Lmhpc3Rvcnkuc3RhdGUsIiIsZS50b1N0cmluZygpKX1lbHNlIHdpbmRvdy5sb2NhdGlvbi5oYXNoPXQ7ZWxzZSBPcyh0KX1mdW5jdGlvbiBHcyh0KXtsZXQgZT0iIjt2b2lkIDAhPT10Ll9fdGFiX18mJihlKz10Ll9fdGFiX18pO2NvbnN0IG49T2JqZWN0LmtleXModCkubWFwKChlPT5bZSx0W2VdXSkpLmZpbHRlcigodD0+dFswXSE9PUhzKSkubWFwKCh0PT5lbmNvZGVVUklDb21wb25lbnQodFswXSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudCh0WzFdKSkpLmpvaW4oIiYiKTtyZXR1cm4gbi5sZW5ndGg+MD9lKyImIituOmV9Q3MoKCgpPT57RnM9VXMoVnMoKSl9KSk7Y29uc3QgV3M9ImRpc2FtYmlndWF0b3IiLHtnZXQ6cXMsc2V0OllzLGdldEluaXRpYWxpemVyOlhzLGdldE9ic2VydmVyOiRzLGRpc3Bvc2VCaW5kaW5nOktzfT1kbCgodD0+dCksKHQ9PnQpKSx7Z2V0OlpzLHNldDpKcyxnZXRJbml0aWFsaXplcjpRcyxnZXRPYnNlcnZlcjp0bCxkaXNwb3NlQmluZGluZzplbH09ZGwoKHQ9PiJ0cnVlIj09PXR8fCJmYWxzZSIhPT10JiZ2b2lkIDApLCh0PT50LnRvU3RyaW5nKCkpKSx7Z2V0Om5sLHNldDppbCxnZXRJbml0aWFsaXplcjpybCxnZXRPYnNlcnZlcjpvbCxkaXNwb3NlQmluZGluZzphbH09ZGwoKHQ9Pit0KSwodD0+dC50b1N0cmluZygpKSkse2dldDpzbCxzZXQ6bGwsZ2V0SW5pdGlhbGl6ZXI6Y2wsZ2V0T2JzZXJ2ZXI6dWwsZGlzcG9zZUJpbmRpbmc6aGx9PWRsKCh0PT5KU09OLnBhcnNlKGF0b2IodCkpKSwodD0+YnRvYShKU09OLnN0cmluZ2lmeSh0KSkpKTtmdW5jdGlvbiBkbCh0LGUpe2NvbnN0IG49W10saT1bXTtmdW5jdGlvbiByKGUsbj17fSl7Y29uc3R7ZGVmYXVsdFZhbHVlOmksdXNlTG9jYWxTdG9yYWdlOnI9ITF9PW4sbz1yP3dpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShlKTpVcyhWcygpKVtlXTtyZXR1cm4gbnVsbD09bz9DZS5leHBvcnRzLmNsb25lRGVlcChpKTp0KG8pfWZ1bmN0aW9uIG8odCxuLGk9e30pe2NvbnN0e2RlZmF1bHRWYWx1ZTpvLHVzZUxvY2FsU3RvcmFnZTphPSExLHVzZUxvY2F0aW9uUmVwbGFjZTpzPSExfT1pLGw9ZShuKTtpZihhKXdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0LGwpLGtzKCk7ZWxzZSBpZighQ2UuZXhwb3J0cy5pc0VxdWFsKG4scih0LHt1c2VMb2NhbFN0b3JhZ2U6YX0pKSlpZihDZS5leHBvcnRzLmlzRXF1YWwobixvKSkhKGZ1bmN0aW9uIGModCl7Y29uc3QgZT1VcyhWcygpKTtkZWxldGUgZVt0XSxqcyhHcyhlKSl9KSh0KTtlbHNle2NvbnN0IGU9VXMoVnMoKSk7ZVt0XT1sLGpzKEdzKGUpLHMpfX1yZXR1cm57Z2V0OnIsc2V0Om8sZ2V0SW5pdGlhbGl6ZXI6ZnVuY3Rpb24gYSh0LGUpe2NvbnN0IG89T2JqZWN0LmFzc2lnbih7ZGVmYXVsdFZhbHVlOmUuZGVmYXVsdFZhbHVlLHBvbHltZXJQcm9wZXJ0eTp0LHVzZUxvY2FsU3RvcmFnZTohMX0sZSk7cmV0dXJuIGZ1bmN0aW9uKCl7Y29uc3QgZT1wbCh0aGlzLHQpLGE9KCk9Pntjb25zdCB0PXIoZSxvKTtDZS5leHBvcnRzLmlzRXF1YWwodCx0aGlzW28ucG9seW1lclByb3BlcnR5XSl8fCh0aGlzW28ucG9seW1lclByb3BlcnR5XT10KX0scz0oby51c2VMb2NhbFN0b3JhZ2U/QXM6Q3MpKCgoKT0+YSgpKSk7cmV0dXJuIG8udXNlTG9jYWxTdG9yYWdlP2kucHVzaChzKTpuLnB1c2gocyksYSgpLHRoaXNbby5wb2x5bWVyUHJvcGVydHldfX0sZ2V0T2JzZXJ2ZXI6ZnVuY3Rpb24gcyh0LGUpe2NvbnN0IG49T2JqZWN0LmFzc2lnbih7ZGVmYXVsdFZhbHVlOmUuZGVmYXVsdFZhbHVlLHBvbHltZXJQcm9wZXJ0eTp0LHVzZUxvY2FsU3RvcmFnZTohMX0sZSk7cmV0dXJuIGZ1bmN0aW9uKCl7byhwbCh0aGlzLHQpLHRoaXNbbi5wb2x5bWVyUHJvcGVydHldLG4pfX0sZGlzcG9zZUJpbmRpbmc6ZnVuY3Rpb24gbCgpe24uZm9yRWFjaCgodD0+THModCkpKSxpLmZvckVhY2goKHQ9PlBzKHQpKSl9fX1mdW5jdGlvbiBwbCh0LGUpe2NvbnN0IG49dC5kaXNhbWJpZ3VhdG9yO3JldHVybihudWxsPT1uP1tlXTpbbixlXSkuam9pbigiLiIpfWxldCBmbD1jbGFzcyBleHRlbmRzIHdle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl90YWdGaWx0ZXI9WHMoInRhZ0ZpbHRlciIse2RlZmF1bHRWYWx1ZToiIix1c2VMb2NhbFN0b3JhZ2U6ITEscG9seW1lclByb3BlcnR5OiJfdGFnRmlsdGVyIn0pLmNhbGwodGhpcyksdGhpcy5fdGFnRmlsdGVyT2JzZXJ2ZXI9JHMoInRhZ0ZpbHRlciIse2RlZmF1bHRWYWx1ZToiIix1c2VMb2NhbFN0b3JhZ2U6ITEscG9seW1lclByb3BlcnR5OiJfdGFnRmlsdGVyIn0pfV9jb21wdXRlVGFnRmlsdGVyKCl7cmV0dXJuIHRoaXMuX3RhZ0ZpbHRlcn19O2Z1bmN0aW9uIG1sKHQpe2NvbnN0e21vZHVsZU5hbWU6ZSxzdHlsZUNvbnRlbnQ6bn09dCxpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRvbS1tb2R1bGUiKSxyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIiksbz1bXTt0LnN0eWxlRGVwZW5kZW5jaWVzJiZ0LnN0eWxlRGVwZW5kZW5jaWVzLmZvckVhY2goKHQ9Pntjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7ZS5zZXRBdHRyaWJ1dGUoImluY2x1ZGUiLHQpLG8ucHVzaChlKX0pKTtjb25zdCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7T2JqZWN0LmFzc2lnbihhLHt0ZXh0Q29udGVudDpufSksby5mb3JFYWNoKCh0PT57ci5jb250ZW50LmFwcGVuZENoaWxkKHQpfSkpLHIuY29udGVudC5hcHBlbmRDaGlsZChhKSxpLmFwcGVuZENoaWxkKHIpLGkucmVnaXN0ZXIoZSl9ZnVuY3Rpb24gZ2wodCl7cmV0dXJuIGNsYXNzIGV4dGVuZHMgdHtjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5fbWF5YmVTZXREYXJrTW9kZSgpLHRoaXMub2JzZXJ2ZXI9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKHQ9Pnt0LnNvbWUoKHQ9PiJjbGFzcyI9PT10LmF0dHJpYnV0ZU5hbWUpKSYmdGhpcy5fbWF5YmVTZXREYXJrTW9kZSgpfSkpLHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LHthdHRyaWJ1dGVzOiEwfSl9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt2YXIgdDtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLG51bGw9PT0odD10aGlzLm9ic2VydmVyKXx8dm9pZCAwPT09dHx8dC5kaXNjb25uZWN0KCl9X21heWJlU2V0RGFya01vZGUoKXt0aGlzLmNsYXNzTGlzdC50b2dnbGUoImRhcmstbW9kZSIsZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoImRhcmstbW9kZSIpKX19fWZsLnRlbXBsYXRlPXhlYAogICAgPHBhcGVyLWlucHV0CiAgICAgIG5vLWxhYmVsLWZsb2F0PSIiCiAgICAgIGxhYmVsPSJGaWx0ZXIgdGFncyAocmVndWxhciBleHByZXNzaW9ucyBzdXBwb3J0ZWQpIgogICAgICB2YWx1ZT0ie3tfdGFnRmlsdGVyfX0iCiAgICAgIGNsYXNzPSJzZWFyY2gtaW5wdXQiCiAgICA+CiAgICAgIDxpcm9uLWljb24gcHJlZml4PSIiIGljb249InNlYXJjaCIgc2xvdD0icHJlZml4Ij48L2lyb24taWNvbj4KICAgIDwvcGFwZXItaW5wdXQ+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXJnaW46IDEwcHggNXB4IDEwcHggMTBweDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nLG5vdGlmeTohMCxjb21wdXRlZDoiX2NvbXB1dGVUYWdGaWx0ZXIoX3RhZ0ZpbHRlcikifSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGZsLnByb3RvdHlwZSwidGFnRmlsdGVyIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLG9ic2VydmVyOiJfdGFnRmlsdGVyT2JzZXJ2ZXIifSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGZsLnByb3RvdHlwZSwiX3RhZ0ZpbHRlciIsdm9pZCAwKSxmbD10KFtpKCJ0Zi10YWctZmlsdGVyZXIiKV0sZmwpLG1sKHttb2R1bGVOYW1lOiJkYXNoYm9hcmQtc3R5bGUiLHN0eWxlRGVwZW5kZW5jaWVzOlsiaXJvbi1mbGV4Il0sc3R5bGVDb250ZW50OiJcbiAgICAgIDpob3N0IHtcbiAgICAgICAgLS1zaWRlYmFyLXZlcnRpY2FsLXBhZGRpbmc6IDE1cHg7XG4gICAgICAgIC0tc2lkZWJhci1sZWZ0LXBhZGRpbmc6IDMwcHg7XG4gICAgICB9XG5cbiAgICAgIFtzbG90PSdzaWRlYmFyJ10ge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICBwYWRkaW5nOiA1cHggMDtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB9XG5cbiAgICAgIC5zZXR0aW5ncyB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgICAgIH1cblxuICAgICAgLnJ1bnMtc2VsZWN0b3Ige1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4O1xuICAgICAgfVxuXG4gICAgICB0Zi1ydW5zLXNlbGVjdG9yIHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgbGVmdDogdmFyKC0tc2lkZWJhci1sZWZ0LXBhZGRpbmcpO1xuICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSB2YXIoLS1zaWRlYmFyLXZlcnRpY2FsLXBhZGRpbmcpICogMik7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICB9XG5cbiAgICAgIC5zZWFyY2gtaW5wdXQge1xuICAgICAgICBtYXJnaW46IDEwcHggNXB4IDAgMTBweDtcbiAgICAgIH1cblxuICAgICAgLnNpZGViYXItc2VjdGlvbiB7XG4gICAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCB2YXIoLS10Yi11aS1ib3JkZXIpO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXNpZGViYXItdmVydGljYWwtcGFkZGluZykgMFxuICAgICAgICAgIHZhcigtLXNpZGViYXItdmVydGljYWwtcGFkZGluZykgdmFyKC0tc2lkZWJhci1sZWZ0LXBhZGRpbmcpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgIC5zaWRlYmFyLXNlY3Rpb246Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLnNpZGViYXItc2VjdGlvbiBwYXBlci1idXR0b24ge1xuICAgICAgICBtYXJnaW46IDVweDtcbiAgICAgIH1cblxuICAgICAgLnNpZGViYXItc2VjdGlvbiBwYXBlci1idXR0b246Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIC5zaWRlYmFyLXNlY3Rpb24gcGFwZXItYnV0dG9uOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICAuc2lkZWJhci1zZWN0aW9uID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICB9XG5cbiAgICAgIC5zaWRlYmFyLXNlY3Rpb24gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICAuc2lkZWJhci1zZWN0aW9uIGgzIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXRiLXNlY29uZGFyeS10ZXh0LWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgbWFyZ2luOiAxMHB4IDAgNXB4O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cblxuICAgICAgcGFwZXItY2hlY2tib3gge1xuICAgICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtY29sb3I6IHZhcigtLXRiLXVpLWRhcmstYWNjZW50KTtcbiAgICAgICAgLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtY29sb3I6IHZhcigtLXRiLXVpLWRhcmstYWNjZW50KTtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICB9XG5cbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogdmFyKC0tdGItbGluayk7XG4gICAgICB9XG5cbiAgICAgIGE6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS10Yi1saW5rLXZpc2l0ZWQpO1xuICAgICAgfVxuICAifSksbWwoe21vZHVsZU5hbWU6InNjcm9sbGJhci1zdHlsZSIsc3R5bGVDb250ZW50OiJcbiAgICAuc2Nyb2xsYmFyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLnNjcm9sbGJhcjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgfVxuXG4gICAgLnNjcm9sbGJhcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wYXBlci1ncmV5LTUwMCk7XG4gICAgICBjb2xvcjogdmFyKC0tcGFwZXItZ3JleS05MDApO1xuICAgIH1cbiAgICAuc2Nyb2xsYmFyIHtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuICAifSk7Y29uc3QgX2w9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtfbC5zZXRBdHRyaWJ1dGUoImlzIiwiY3VzdG9tLXN0eWxlIiksX2wudGV4dENvbnRlbnQ9IlxuICA6cm9vdCB7XG4gICAgLS10Yi1vcmFuZ2Utd2VhazogI2ZmYTcyNjtcbiAgICAtLXRiLW9yYW5nZS1zdHJvbmc6ICNmNTdjMDA7XG4gICAgLS10Yi1vcmFuZ2UtZGFyazogI2RjNzMyMDtcbiAgICAtLXRiLWdyZXktZGFya2VyOiAjZTJlMmUyO1xuICAgIC0tdGItZ3JleS1saWdodGVyOiAjZjNmM2YzO1xuICAgIC0tdGItdWktZGFyay1hY2NlbnQ6ICM3NTc1NzU7XG4gICAgLS10Yi11aS1saWdodC1hY2NlbnQ6ICNlMGUwZTA7XG4gICAgLS10Yi11aS1ib3JkZXI6IHZhcigtLXBhcGVyLWdyZXktMzAwKTtcbiAgICAtLXRiLWdyYXBoLWZhZGVkOiAjZTBkNGIzO1xuICAgIC0tdGItc2Vjb25kYXJ5LXRleHQtY29sb3I6IHZhcigtLXBhcGVyLWdyZXktODAwKTtcbiAgICAtLXRiLXJhaXNlZC1idXR0b24tc2hhZG93LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgLS1wcmltYXJ5LWJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgLS1zZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvcjogI2U5ZTllOTtcbiAgICAtLXRiLWxheW91dC1iYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgIC0tdGItbGluazogIzE5NzZkMjsgLyogbWF0ZXJpYWwgYmx1ZSA3MDAuICovXG4gICAgLS10Yi1saW5rLXZpc2l0ZWQ6ICM3YjFmYTI7IC8qIG1hdGVyaWFsIHB1cnBsZSA3MDAuICovXG4gIH1cblxuICA6cm9vdCAuZGFyay1tb2RlIHtcbiAgICAtLXRiLXVpLWJvcmRlcjogdmFyKC0tcGFwZXItZ3JleS03MDApO1xuICAgIC0tdGItdWktZGFyay1hY2NlbnQ6IHZhcigtLXBhcGVyLWdyZXktNDAwKTtcbiAgICAtLXRiLXVpLWxpZ2h0LWFjY2VudDogdmFyKC0tcGFwZXItZ3JleS02MDApO1xuICAgIC0tdGItc2Vjb25kYXJ5LXRleHQtY29sb3I6IHZhcigtLXBhcGVyLWdyZXktNDAwKTtcbiAgICAtLXRiLXJhaXNlZC1idXR0b24tc2hhZG93LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gICAgLS1wcmltYXJ5LXRleHQtY29sb3I6ICNmZmY7XG4gICAgLS1zZWNvbmRhcnktdGV4dC1jb2xvcjogdmFyKC0tcGFwZXItZ3JleS00MDApO1xuICAgIC0tcHJpbWFyeS1iYWNrZ3JvdW5kLWNvbG9yOiAjMzAzMDMwOyAgLyogbWF0ZXJpYWwgZ3JleSBBNDAwLiAqL1xuICAgIC0tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I6ICMzYTNhM2E7XG4gICAgLS10Yi1sYXlvdXQtYmFja2dyb3VuZC1jb2xvcjogIzNhM2EzYTtcbiAgICAtLXRiLWxpbms6ICM0MmE1ZjU7IC8qIG1hdGVyaWFsIGJsdWUgNDAwLiAqL1xuICAgIC0tdGItbGluay12aXNpdGVkOiAjYmE2OGM4OyAvKiBtYXRlcmlhbCBwdXJwbGUgMzAwLiAqL1xuICAgIC8qIE92ZXJyaWRlcyBwYXBlci1tYXRlcmlhbCAqL1xuICAgIC0tc2hhZG93LWVsZXZhdGlvbi0yZHBfLV9ib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpLFxuICAgICAgMCAxcHggNXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSxcbiAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgfVxuIixkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKF9sKTtsZXQgeWw9Y2xhc3MgZXh0ZW5kcyhnbCh3ZSkpe307eWwudGVtcGxhdGU9eGVgCiAgICA8ZGl2IGlkPSJzaWRlYmFyIj4KICAgICAgPHNsb3QgbmFtZT0ic2lkZWJhciI+PC9zbG90PgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iY2VudGVyIj4KICAgICAgPHNsb3QgbmFtZT0iY2VudGVyIiBjbGFzcz0ic2NvbGxiYXIiPjwvc2xvdD4KICAgIDwvZGl2PgogICAgPHN0eWxlIGluY2x1ZGU9InNjcm9sbGJhci1zdHlsZSI+PC9zdHlsZT4KICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgOmhvc3QoLmRhcmstbW9kZSkgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yKTsKICAgICAgfQoKICAgICAgI3NpZGViYXIgewogICAgICAgIGZsZXg6IDAgMCB2YXIoLS10Zi1kYXNoYm9hcmQtbGF5b3V0LXNpZGViYXItYmFzaXMsIDI1JSk7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG1heC13aWR0aDogdmFyKC0tdGYtZGFzaGJvYXJkLWxheW91dC1zaWRlYmFyLW1heC13aWR0aCwgMzUwcHgpOwogICAgICAgIG1pbi13aWR0aDogdmFyKC0tdGYtZGFzaGJvYXJkLWxheW91dC1zaWRlYmFyLW1pbi13aWR0aCwgMjcwcHgpOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgICNjZW50ZXIgewogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgOjpzbG90dGVkKFtzbG90PSdjZW50ZXInXSkgewogICAgICAgIGNvbnRhaW46IHN0cmljdDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgfQoKICAgICAgLnRmLWdyYXBoLWRhc2hib2FyZCAjY2VudGVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAseWw9dChbaSgidGYtZGFzaGJvYXJkLWxheW91dCIpXSx5bCk7Y29uc3Qgdmw9IlRGLlRlbnNvckJvYXJkLlBhZ2luYXRlZFZpZXcubGltaXQiO2xldCBibD1udWxsO2NvbnN0IHhsPW5ldyBTZXQ7ZnVuY3Rpb24gd2wodCl7eGwuYWRkKHQpfWZ1bmN0aW9uIFNsKHQpe3hsLmRlbGV0ZSh0KX1mdW5jdGlvbiBNbCgpe3JldHVybiBudWxsPT1ibCYmKGJsPW5sKHZsLHt1c2VMb2NhbFN0b3JhZ2U6ITB9KSwobnVsbD09Ymx8fCFpc0Zpbml0ZShibCl8fGJsPD0wKSYmKGJsPTEyKSksYmx9Y2xhc3MgRWwgZXh0ZW5kcyB3ZXt1cGRhdGVBcnJheVByb3AodCxlLG4pe2xldCBpPXRoaXMuZ2V0KHQpO2NvbnN0IHI9ZTtpZighQXJyYXkuaXNBcnJheShyKSl0aHJvdyBSYW5nZUVycm9yKGBFeHBlY3RlZCBuZXcgdmFsdWUgdG8gJyR7dH0nIHRvIGJlIGFuIGFycmF5LmApO0FycmF5LmlzQXJyYXkoaSl8fChpPVtdLHRoaXMuc2V0KHQsaSkpO2NvbnN0IG89bmV3IFNldChyLm1hcCgoKHQsZSk9Pm4odCxlKSkpKTtsZXQgYT0wLHM9MDtmb3IoO2E8aS5sZW5ndGgmJnM8ci5sZW5ndGg7KW8uaGFzKG4oaVthXSxhKSk/KG4oaVthXSxhKT09bihyW3NdLHMpP3RoaXMuc2V0KGAke3R9LiR7YX1gLHJbc10pOnRoaXMuc3BsaWNlKHQsYSwwLHJbc10pLHMrKyxhKyspOnRoaXMuc3BsaWNlKHQsYSwxKTthPGkubGVuZ3RoJiZ0aGlzLnNwbGljZSh0LGEpLHM8ci5sZW5ndGgmJnRoaXMucHVzaCh0LC4uLnIuc2xpY2UocykpfX1jbGFzcyBUbCBleHRlbmRzIEVse2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmFzPSJpdGVtIix0aGlzLl9jb250ZW50QWN0aXZlPSEwLHRoaXMuX2RvbUJvb3RzdHJhcHBlZD0hMSx0aGlzLl9jdG9yPW51bGwsdGhpcy5fcmVuZGVyZWRJdGVtcz1bXSx0aGlzLl9yZW5kZXJlZFRlbXBsYXRlSW5zdD1uZXcgTWFwLHRoaXMuX2xydUNhY2hlZEl0ZW1zPW5ldyBNYXAsdGhpcy5fY2FjaGVTaXplPTEwLHRoaXMuX2dldEl0ZW1LZXk9dD0+SlNPTi5zdHJpbmdpZnkodCksdGhpcy5faXNDb25uZWN0ZWQ9ITF9Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuX2lzQ29ubmVjdGVkPSEwfXNldENhY2hlU2l6ZSh0KXt0aGlzLl9jYWNoZVNpemU9dH1zZXRHZXRJdGVtS2V5KHQpe3RoaXMuX2dldEl0ZW1LZXk9dH11cGRhdGVEb20odCl7dGhpcy51cGRhdGVBcnJheVByb3AoIl9yZW5kZXJlZEl0ZW1zIix0LHRoaXMuX2dldEl0ZW1LZXkpfV9lbnN1cmVUZW1wbGF0aXplZCgpe2lmKCF0aGlzLmlzQ29ubmVjdGVkKXJldHVybiExO2lmKCF0aGlzLl9jdG9yKXtjb25zdCB0PXRoaXMucXVlcnlTZWxlY3RvcigidGVtcGxhdGUiKTt0aGlzLl9jdG9yPWFvKHQsdGhpcyx7cGFyZW50TW9kZWw6ITAsaW5zdGFuY2VQcm9wczp7W3RoaXMuYXNdOiEwLGFjdGl2ZTp0aGlzLl9jb250ZW50QWN0aXZlfSxmb3J3YXJkSG9zdFByb3A6ZnVuY3Rpb24odCxlKXt0aGlzLl9yZW5kZXJlZFRlbXBsYXRlSW5zdC5mb3JFYWNoKChuPT57bi5mb3J3YXJkSG9zdFByb3AodCxlKX0pKX19KX1yZXR1cm4hMH1fYm9vdHN0cmFwRG9tKCl7aWYoIXRoaXMuX2Vuc3VyZVRlbXBsYXRpemVkKCl8fHRoaXMuX2RvbUJvb3RzdHJhcHBlZClyZXR1cm47bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKHQ9Pntmb3IoY29uc3QgZSBvZiB0KWlmKCJjaGlsZExpc3QiPT09ZS50eXBlKWZvcihjb25zdCB0IG9mIEFycmF5LmZyb20oZS5hZGRlZE5vZGVzKSl0IGluc3RhbmNlb2YgRWxlbWVudCYmdC5zZXRBdHRyaWJ1dGUoInNsb3QiLCJpdGVtcyIpfSkpLm9ic2VydmUodGhpcyx7Y2hpbGRMaXN0OiEwfSksQXJyYXkuZnJvbSh0aGlzLmNoaWxkcmVuKS5mb3JFYWNoKCh0PT57dGhpcy5yZW1vdmVDaGlsZCh0KX0pKSx0aGlzLl9scnVDYWNoZWRJdGVtcy5jbGVhcigpLHRoaXMuX3JlbmRlcmVkSXRlbXMuZm9yRWFjaCgoKHQsZSk9PnRoaXMuX2luc2VydEl0ZW0odCxlKSkpLHRoaXMuX2RvbUJvb3RzdHJhcHBlZD0hMH1fdXBkYXRlQWN0aXZlKCl7dGhpcy5fZG9tQm9vdHN0cmFwcGVkJiZBcnJheS5mcm9tKHRoaXMuX3JlbmRlcmVkVGVtcGxhdGVJbnN0LnZhbHVlcygpKS5mb3JFYWNoKCh0PT57dC5ub3RpZnlQYXRoKCJhY3RpdmUiLHRoaXMuX2NvbnRlbnRBY3RpdmUpfSkpfV91cGRhdGVEb20odCl7aWYodGhpcy5fZG9tQm9vdHN0cmFwcGVkJiYiX3JlbmRlcmVkSXRlbXMiIT10LnBhdGgmJiJfcmVuZGVyZWRJdGVtcy5sZW5ndGgiIT10LnBhdGgpaWYoIl9yZW5kZXJlZEl0ZW1zLnNwbGljZXMiPT09dC5wYXRoKXt0LnZhbHVlLmluZGV4U3BsaWNlcy5mb3JFYWNoKCh0PT57Y29uc3R7aW5kZXg6ZSxhZGRlZENvdW50Om4sb2JqZWN0OmkscmVtb3ZlZDpyfT10O3IuZm9yRWFjaCgodD0+e3RoaXMuX3JlbW92ZUl0ZW0odCx0aGlzLmNoaWxkcmVuW2VdKX0pKSxpLnNsaWNlKGUsZStuKS5mb3JFYWNoKCgodCxuKT0+dGhpcy5faW5zZXJ0SXRlbSh0LGUrbikpKSx0aGlzLl90cmltQ2FjaGUoKX0pKX1lbHNle2NvbnN0IGU9dGhpcy5fZ2V0SXRlbUtleSh0LnZhbHVlKTt0aGlzLl9yZW5kZXJlZFRlbXBsYXRlSW5zdC5oYXMoZSk/dGhpcy5fcmVuZGVyZWRUZW1wbGF0ZUluc3QuZ2V0KGUpLm5vdGlmeVBhdGgodGhpcy5hcyx0LnZhbHVlKTpjb25zb2xlLndhcm4oYEV4cGVjdGVkICcke2V9JyB0byBleGlzdCBpbiB0aGUgRE9NIGJ1dCBjb3VsZCBub3QgZmluZCBvbmUuYCl9fV9pbnNlcnRJdGVtKHQsZSl7aWYoIXRoaXMuX2Vuc3VyZVRlbXBsYXRpemVkKCkpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCB0ZW1wbGF0aXplZCBiZWZvcmUgaW5zZXJ0aW5nIGFuIGl0ZW0iKTtsZXQgbjtjb25zdCBpPXRoaXMuX2dldEl0ZW1LZXkodCk7aWYodGhpcy5fbHJ1Q2FjaGVkSXRlbXMuaGFzKGkpKW49dGhpcy5fbHJ1Q2FjaGVkSXRlbXMuZ2V0KGkpLHRoaXMuX2xydUNhY2hlZEl0ZW1zLmRlbGV0ZShpKSx0aGlzLl9yZW5kZXJlZFRlbXBsYXRlSW5zdC5nZXQoaSkubm90aWZ5UGF0aCgiYWN0aXZlIix0aGlzLl9jb250ZW50QWN0aXZlKTtlbHNle2NvbnN0IGU9bmV3IHRoaXMuX2N0b3Ioe1t0aGlzLmFzXTp0LGFjdGl2ZTp0aGlzLl9jb250ZW50QWN0aXZlfSk7bj1lLnJvb3QsdGhpcy5fcmVuZGVyZWRUZW1wbGF0ZUluc3Quc2V0KGksZSl9aWYodGhpcy5jaGlsZHJlbltlXSl0aGlzLmluc2VydEJlZm9yZShuLHRoaXMuY2hpbGRyZW5bZV0pO2Vsc2V7KG4ubm9kZVR5cGU9PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERT9BcnJheS5mcm9tKG4uY2hpbGRyZW4pOltuXSkuZm9yRWFjaCgodD0+dC5zZXRBdHRyaWJ1dGUoInNsb3QiLCJpdGVtcyIpKSksdGhpcy5hcHBlbmRDaGlsZChuKX19X3JlbW92ZUl0ZW0odCxlKXtlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKTtjb25zdCBuPXRoaXMuX2dldEl0ZW1LZXkodCk7dGhpcy5fbHJ1Q2FjaGVkSXRlbXMuc2V0KG4sZSksdGhpcy5fcmVuZGVyZWRUZW1wbGF0ZUluc3QuZ2V0KG4pLm5vdGlmeVBhdGgoImFjdGl2ZSIsITEpfV90cmltQ2FjaGUoKXtmb3IoO3RoaXMuX2xydUNhY2hlZEl0ZW1zLnNpemU+dGhpcy5fY2FjaGVTaXplOyl7Y29uc3RbdF09dGhpcy5fbHJ1Q2FjaGVkSXRlbXMua2V5cygpO3RoaXMuX2xydUNhY2hlZEl0ZW1zLmRlbGV0ZSh0KSx0aGlzLl9yZW5kZXJlZFRlbXBsYXRlSW5zdC5kZWxldGUodCl9fX10KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxUbC5wcm90b3R5cGUsImFzIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxUbC5wcm90b3R5cGUsIml0ZW1zIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sVGwucHJvdG90eXBlLCJfY29udGVudEFjdGl2ZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sVGwucHJvdG90eXBlLCJfZG9tQm9vdHN0cmFwcGVkIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFRsLnByb3RvdHlwZSwiX2N0b3IiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLFRsLnByb3RvdHlwZSwiX3JlbmRlcmVkSXRlbXMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sVGwucHJvdG90eXBlLCJfcmVuZGVyZWRUZW1wbGF0ZUluc3QiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sVGwucHJvdG90eXBlLCJfbHJ1Q2FjaGVkSXRlbXMiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sVGwucHJvdG90eXBlLCJfY2FjaGVTaXplIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFRsLnByb3RvdHlwZSwiX2dldEl0ZW1LZXkiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFRsLnByb3RvdHlwZSwiX2lzQ29ubmVjdGVkIix2b2lkIDApLHQoW2EoIl9pc0Nvbm5lY3RlZCIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sVGwucHJvdG90eXBlLCJfYm9vdHN0cmFwRG9tIixudWxsKSx0KFthKCJfY29udGVudEFjdGl2ZSIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sVGwucHJvdG90eXBlLCJfdXBkYXRlQWN0aXZlIixudWxsKSx0KFthKCJfcmVuZGVyZWRJdGVtcy4qIiwiX2RvbUJvb3RzdHJhcHBlZCIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtPYmplY3RdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sVGwucHJvdG90eXBlLCJfdXBkYXRlRG9tIixudWxsKSx0KFthKCJfY2FjaGVTaXplIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxUbC5wcm90b3R5cGUsIl90cmltQ2FjaGUiLG51bGwpO2xldCBDbD1jbGFzcyBleHRlbmRzIFRse2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmRpc2FibGVQYWdpbmF0aW9uPSExLHRoaXMuZ2V0Q2F0ZWdvcnlJdGVtS2V5PXQ9PkpTT04uc3RyaW5naWZ5KHQpLHRoaXMuX2xpbWl0PTEyLHRoaXMuX2FjdGl2ZUluZGV4PTAsdGhpcy5fcGFnZUlucHV0UmF3VmFsdWU9IiIsdGhpcy5fcGFnZUlucHV0Rm9jdXNlZD0hMX1fY29tcHV0ZUNvdW50KCl7cmV0dXJuIHRoaXMuY2F0ZWdvcnkuaXRlbXMubGVuZ3RofWdldCBfaGFzTXVsdGlwbGUoKXtyZXR1cm4gdGhpcy5fY291bnQ+MX1fdG9nZ2xlUGFuZSgpe3RoaXMub3BlbmVkPSF0aGlzLm9wZW5lZH1fY2hhbmdlQ29udGVudEFjdGl2ZSh0KXt0aGlzLl9jb250ZW50QWN0aXZlPXR9X29uUGFuZVJlbmRlcmVkQ2hhbmdlZCh0LGUpe3QmJnQhPT1lJiZ0aGlzLiQuaWZSZW5kZXJlZC5yZW5kZXIoKX1fY29tcHV0ZVBhbmVSZW5kZXJlZCh0KXtyZXR1cm4hKHQubWV0YWRhdGEudHlwZT09PUFyLlNFQVJDSF9SRVNVTFRTJiYiIj09PXQubmFtZSl9Z2V0IF9pdGVtc1JlbmRlcmVkKCl7cmV0dXJuIHRoaXMuX3BhbmVSZW5kZXJlZCYmdGhpcy5vcGVuZWR9X2NvbXB1dGVJc1NlYXJjaFJlc3VsdHModCl7cmV0dXJuIHQ9PT1Bci5TRUFSQ0hfUkVTVUxUU31fY29tcHV0ZUlzSW52YWxpZFNlYXJjaFJlc3VsdHModCl7cmV0dXJuIHQudHlwZT09PUFyLlNFQVJDSF9SRVNVTFRTJiYhdC52YWxpZFJlZ2V4fV9jb21wdXRlSXNVbml2ZXJzYWxTZWFyY2hRdWVyeSh0KXtyZXR1cm4gdC50eXBlPT09QXIuU0VBUkNIX1JFU1VMVFMmJnQudW5pdmVyc2FsUmVnZXh9X2lzQ29tcG9zaXRlU2VhcmNoKCl7Y29uc3R7dHlwZTp0LGNvbXBvc2l0ZVNlYXJjaDplfT10aGlzLmNhdGVnb3J5Lm1ldGFkYXRhO3JldHVybiBlJiZ0PT09QXIuU0VBUkNIX1JFU1VMVFN9cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMub3BlbmVkPW51bGw9PXRoaXMuaW5pdGlhbE9wZW5lZHx8dGhpcy5pbml0aWFsT3BlbmVkLHRoaXMuX2xpbWl0TGlzdGVuZXI9KCk9Pnt0aGlzLnNldCgiX2xpbWl0IixNbCgpKX0sd2wodGhpcy5fbGltaXRMaXN0ZW5lciksdGhpcy5fbGltaXRMaXN0ZW5lcigpfWRldGFjaGVkKCl7U2wodGhpcy5fbGltaXRMaXN0ZW5lcil9X3VwZGF0ZVJlbmRlcmVkSXRlbXMoKXt2YXIgdD10aGlzLl9saW1pdCxlPXRoaXMuZGlzYWJsZVBhZ2luYXRpb247aWYoIXRoaXMuX2l0ZW1zUmVuZGVyZWQpcmV0dXJuO2NvbnN0IG49TWF0aC5mbG9vcih0aGlzLl9hY3RpdmVJbmRleC90KSxpPXRoaXMuY2F0ZWdvcnkuaXRlbXN8fFtdLHI9ZT9pOmkuc2xpY2Uobip0LChuKzEpKnQpO3RoaXMudXBkYXRlRG9tKHIpfV9saW1pdENoYW5nZWQodCl7dGhpcy5zZXRDYWNoZVNpemUoMip0KX1fZ2V0Q2F0ZWdvcnlJdGVtS2V5Q2hhbmdlZCgpe3RoaXMuc2V0R2V0SXRlbUtleSh0aGlzLmdldENhdGVnb3J5SXRlbUtleSl9Z2V0IF9jdXJyZW50UGFnZSgpe3JldHVybiBNYXRoLmZsb29yKHRoaXMuX2FjdGl2ZUluZGV4L3RoaXMuX2xpbWl0KSsxfV9jb21wdXRlUGFnZUNvdW50KHQsZSl7cmV0dXJuIHRoaXMuY2F0ZWdvcnk/TWF0aC5jZWlsKHRoaXMuY2F0ZWdvcnkuaXRlbXMubGVuZ3RoL2UpOjB9Z2V0IF9tdWx0aXBsZVBhZ2VzRXhpc3QoKXtyZXR1cm4hdGhpcy5kaXNhYmxlUGFnaW5hdGlvbiYmdGhpcy5fcGFnZUNvdW50PjF9Z2V0IF9oYXNQcmV2aW91c1BhZ2UoKXtyZXR1cm4gdGhpcy5fY3VycmVudFBhZ2U+MX1nZXQgX2hhc05leHRQYWdlKCl7cmV0dXJuIHRoaXMuX2N1cnJlbnRQYWdlPHRoaXMuX3BhZ2VDb3VudH1fY29tcHV0ZUlucHV0V2lkdGgodCl7cmV0dXJuYGNhbGMoJHt0LnRvU3RyaW5nKCkubGVuZ3RofWVtICsgMjBweClgfV9zZXRBY3RpdmVJbmRleCh0KXtjb25zdCBlPSh0aGlzLmNhdGVnb3J5Lml0ZW1zfHxbXSkubGVuZ3RoLTE7dD5lJiYodD1lKSx0PDAmJih0PTApLHRoaXMuc2V0KCJfYWN0aXZlSW5kZXgiLHQpfV9jbGFtcEFjdGl2ZUluZGV4KCl7dGhpcy5fc2V0QWN0aXZlSW5kZXgodGhpcy5fYWN0aXZlSW5kZXgpfV9wZXJmb3JtUHJldmlvdXNQYWdlKCl7dGhpcy5fc2V0QWN0aXZlSW5kZXgodGhpcy5fYWN0aXZlSW5kZXgtdGhpcy5fbGltaXQpfV9wZXJmb3JtTmV4dFBhZ2UoKXt0aGlzLl9zZXRBY3RpdmVJbmRleCh0aGlzLl9hY3RpdmVJbmRleCt0aGlzLl9saW1pdCl9X2NvbXB1dGVQYWdlSW5wdXRWYWx1ZSh0LGUsbil7cmV0dXJuIHQ/ZTpuLnRvU3RyaW5nKCl9X2hhbmRsZVBhZ2VJbnB1dEV2ZW50KHQpe3RoaXMuc2V0KCJfcGFnZUlucHV0UmF3VmFsdWUiLHQudGFyZ2V0LnZhbHVlKTtjb25zdCBlPU51bWJlcih0LnRhcmdldC52YWx1ZXx8TmFOKTtpZihpc05hTihlKSlyZXR1cm47Y29uc3Qgbj1NYXRoLm1heCgxLE1hdGgubWluKGUsdGhpcy5fcGFnZUNvdW50KSktMTt0aGlzLl9zZXRBY3RpdmVJbmRleCh0aGlzLl9saW1pdCpuKX1faGFuZGxlUGFnZUNoYW5nZUV2ZW50KCl7dGhpcy5zZXQoIl9wYWdlSW5wdXRSYXdWYWx1ZSIsdGhpcy5fY3VycmVudFBhZ2UudG9TdHJpbmcoKSl9X2hhbmRsZVBhZ2VGb2N1c0V2ZW50KCl7dGhpcy5zZXQoIl9wYWdlSW5wdXRSYXdWYWx1ZSIsdGhpcy5fcGFnZUlucHV0VmFsdWUpLHRoaXMuc2V0KCJfcGFnZUlucHV0Rm9jdXNlZCIsITApfV9oYW5kbGVQYWdlQmx1ckV2ZW50KCl7dGhpcy5zZXQoIl9wYWdlSW5wdXRGb2N1c2VkIiwhMSl9X3VwZGF0ZVBhZ2VJbnB1dFZhbHVlKHQpe2NvbnN0IGU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIiNwYWdlLWlucHV0IGlucHV0Iik7ZSYmKGUudmFsdWU9dCl9X3VwZGF0ZUlucHV0V2lkdGgoKXt0aGlzLnVwZGF0ZVN0eWxlcyh7Ii0tdGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXctcGFnZS1pbnB1dC13aWR0aCI6dGhpcy5faW5wdXRXaWR0aH0pfX07Q2wudGVtcGxhdGU9eGVgCiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX3BhbmVSZW5kZXJlZF1dIiBpZD0iaWZSZW5kZXJlZCI+CiAgICAgIDxidXR0b24gY2xhc3M9ImhlYWRpbmciIG9uLXRhcD0iX3RvZ2dsZVBhbmUiIG9wZW4tYnV0dG9uJD0iW1tvcGVuZWRdXSI+CiAgICAgICAgPHNwYW4gY2xhc3M9Im5hbWUiPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19pc1NlYXJjaFJlc3VsdHNdXSI+CiAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaXNDb21wb3NpdGVTZWFyY2goY2F0ZWdvcnkpXV0iPgogICAgICAgICAgICAgIDxzcGFuPlRhZ3MgbWF0Y2hpbmcgbXVsdGlwbGUgZXhwZXJpbWVudHM8L3NwYW4+CiAgICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19pc0ludmFsaWRTZWFyY2hSZXN1bHRzXV0iPgogICAgICAgICAgICAgICAgPHNwYW4KICAgICAgICAgICAgICAgICAgPiZuYnNwOzxzdHJvbmc+KG1hbGZvcm1lZCByZWd1bGFyIGV4cHJlc3Npb24pPC9zdHJvbmc+PC9zcGFuCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbWyFfaXNDb21wb3NpdGVTZWFyY2goY2F0ZWdvcnkpXV0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsaWdodCI+VGFncyBtYXRjaGluZyAvPC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXRlZ29yeS1uYW1lIiB0aXRsZSQ9IltbY2F0ZWdvcnkubmFtZV1dIgogICAgICAgICAgICAgICAgPltbY2F0ZWdvcnkubmFtZV1dPC9zcGFuCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsaWdodCI+Lzwvc3Bhbj4KICAgICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2lzVW5pdmVyc2FsU2VhcmNoUXVlcnldXSI+CiAgICAgICAgICAgICAgICA8c3Bhbj4gKGFsbCB0YWdzKTwvc3Bhbj4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaXNJbnZhbGlkU2VhcmNoUmVzdWx0c11dIj4KICAgICAgICAgICAgICAgIDxzcGFuPiA8c3Ryb25nPihtYWxmb3JtZWQgcmVndWxhciBleHByZXNzaW9uKTwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shX2lzU2VhcmNoUmVzdWx0c11dIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhdGVnb3J5LW5hbWUiIHRpdGxlJD0iW1tjYXRlZ29yeS5uYW1lXV0iCiAgICAgICAgICAgICAgPltbY2F0ZWdvcnkubmFtZV1dPC9zcGFuCiAgICAgICAgICAgID4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJjb3VudCI+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2hhc011bHRpcGxlXV0iPgogICAgICAgICAgICA8c3Bhbj5bW19jb3VudF1dPC9zcGFuPgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDxpcm9uLWljb24gaWNvbj0iZXhwYW5kLW1vcmUiIGNsYXNzPSJleHBhbmQtYXJyb3ciPjwvaXJvbi1pY29uPgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9idXR0b24+CiAgICAgIDwhLS0gVE9ETyhzdGVwaGFud2xlZSk6IGludmVzdGlnYXRlIGZ1cnRoZXIuIEZvciBzb21lIHJlYXNvbiwKICAgICAgICB0cmFuc2l0aW9uZW5kIHRoYXQgdGhlIGlyb24tY29sbGFwc2UgcmVsaWVzIG9uIHNvbWV0aW1lcyBkb2VzIG5vdAogICAgICAgIHRyaWdnZXIgd2hlbiByZW5kZXJpbmcgYSBjaGFydCB3aXRoIGEgc3Bpbm5lci4gQSB0b3kgZXhhbXBsZSBjYW5ub3QKICAgICAgICByZXByb2R1Y2UgdGhpcyBidWcuIC0tPgogICAgICA8aXJvbi1jb2xsYXBzZSBvcGVuZWQ9Iltbb3BlbmVkXV0iIG5vLWFuaW1hdGlvbj0iIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICAgIDxzcGFuIGlkPSJ0b3Atb2YtY29udGFpbmVyIj48L3NwYW4+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX211bHRpcGxlUGFnZXNFeGlzdF1dIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmlnLXBhZ2UtYnV0dG9ucyIgc3R5bGU9Im1hcmdpbi1ib3R0b206IDEwcHg7Ij4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgICBvbi10YXA9Il9wZXJmb3JtUHJldmlvdXNQYWdlIgogICAgICAgICAgICAgICAgZGlzYWJsZWQkPSJbWyFfaGFzUHJldmlvdXNQYWdlXV0iCiAgICAgICAgICAgICAgICA+UHJldmlvdXMgcGFnZTwvcGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24KICAgICAgICAgICAgICAgIG9uLXRhcD0iX3BlcmZvcm1OZXh0UGFnZSIKICAgICAgICAgICAgICAgIGRpc2FibGVkJD0iW1shX2hhc05leHRQYWdlXV0iCiAgICAgICAgICAgICAgICA+TmV4dCBwYWdlPC9wYXBlci1idXR0b24KICAgICAgICAgICAgICA+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KCiAgICAgICAgICA8ZGl2IGlkPSJpdGVtcyI+CiAgICAgICAgICAgIDxzbG90IG5hbWU9Iml0ZW1zIj48L3Nsb3Q+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfbXVsdGlwbGVQYWdlc0V4aXN0XV0iPgogICAgICAgICAgICA8ZGl2IGlkPSJjb250cm9scy1jb250YWluZXIiPgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFkZGluZzogMCA1cHgiPgogICAgICAgICAgICAgICAgUGFnZQogICAgICAgICAgICAgICAgPHBhcGVyLWlucHV0CiAgICAgICAgICAgICAgICAgIGlkPSJwYWdlLWlucHV0IgogICAgICAgICAgICAgICAgICB0eXBlPSJudW1iZXIiCiAgICAgICAgICAgICAgICAgIG5vLWxhYmVsLWZsb2F0PSIiCiAgICAgICAgICAgICAgICAgIG1pbj0iMSIKICAgICAgICAgICAgICAgICAgbWF4PSJbW19wYWdlQ291bnRdXSIKICAgICAgICAgICAgICAgICAgdmFsdWU9IltbX3BhZ2VJbnB1dFZhbHVlXV0iCiAgICAgICAgICAgICAgICAgIG9uLWlucHV0PSJfaGFuZGxlUGFnZUlucHV0RXZlbnQiCiAgICAgICAgICAgICAgICAgIG9uLWNoYW5nZT0iX2hhbmRsZVBhZ2VDaGFuZ2VFdmVudCIKICAgICAgICAgICAgICAgICAgb24tZm9jdXM9Il9oYW5kbGVQYWdlRm9jdXNFdmVudCIKICAgICAgICAgICAgICAgICAgb24tYmx1cj0iX2hhbmRsZVBhZ2VCbHVyRXZlbnQiCiAgICAgICAgICAgICAgICA+PC9wYXBlci1pbnB1dD4KICAgICAgICAgICAgICAgIG9mIFtbX3BhZ2VDb3VudF1dCiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmlnLXBhZ2UtYnV0dG9ucyIgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7Ij4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgICBvbi10YXA9Il9wZXJmb3JtUHJldmlvdXNQYWdlIgogICAgICAgICAgICAgICAgZGlzYWJsZWQkPSJbWyFfaGFzUHJldmlvdXNQYWdlXV0iCiAgICAgICAgICAgICAgICA+UHJldmlvdXMgcGFnZTwvcGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24KICAgICAgICAgICAgICAgIG9uLXRhcD0iX3BlcmZvcm1OZXh0UGFnZSIKICAgICAgICAgICAgICAgIGRpc2FibGVkJD0iW1shX2hhc05leHRQYWdlXV0iCiAgICAgICAgICAgICAgICA+TmV4dCBwYWdlPC9wYXBlci1idXR0b24KICAgICAgICAgICAgICA+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9pcm9uLWNvbGxhcHNlPgogICAgPC90ZW1wbGF0ZT4KICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbjogMCA1cHggMXB4IDEwcHg7CiAgICAgIH0KCiAgICAgIDpob3N0KDpmaXJzdC1vZi10eXBlKSB7CiAgICAgICAgbWFyZ2luLXRvcDogMTBweDsKICAgICAgfQoKICAgICAgOmhvc3QoOmxhc3Qtb2YtdHlwZSkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWJhY2tncm91bmQtY29sb3IpOwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCB2YXIoLS10Yi1yYWlzZWQtYnV0dG9uLXNoYWRvdy1jb2xvcik7CiAgICAgICAgcGFkZGluZzogMTBweCAxNXB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nOjotbW96LWZvY3VzLWlubmVyIHsKICAgICAgICBwYWRkaW5nOiAxMHB4IDE1cHg7CiAgICAgIH0KCiAgICAgIFtvcGVuLWJ1dHRvbl0gewogICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDsKICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICBbb3Blbi1idXR0b25dIC5leHBhbmQtYXJyb3cgewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlWigxODBkZWcpOwogICAgICB9CgogICAgICAubmFtZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmxpZ2h0IHsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItZ3JleS01MDApOwogICAgICB9CgogICAgICAuY2F0ZWdvcnktbmFtZSB7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHBhZGRpbmc6IDJweCAwOwogICAgICB9CgogICAgICAuY291bnQgewogICAgICAgIG1hcmdpbjogMCA1cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1wYXBlci1ncmV5LTUwMCk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGZsZXg6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nOjotbW96LWZvY3VzLWlubmVyIHsKICAgICAgICBwYWRkaW5nOiAxMHB4IDE1cHg7CiAgICAgIH0KCiAgICAgIC5jb250ZW50IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1iYWNrZ3JvdW5kLWNvbG9yKTsKICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDJweDsKICAgICAgICBib3JkZXItdG9wOiBub25lOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZWRlZGU7CiAgICAgICAgcGFkZGluZzogMTVweDsKICAgICAgfQoKICAgICAgLmxpZ2h0IHsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItZ3JleS01MDApOwogICAgICB9CgogICAgICAjY29udHJvbHMtY29udGFpbmVyIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZmxleC1ncm93OiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAjY29udHJvbHMtY29udGFpbmVyIHBhcGVyLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICAuYmlnLXBhZ2UtYnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgfQoKICAgICAgLmJpZy1wYWdlLWJ1dHRvbnMgcGFwZXItYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10Yi11aS1saWdodC1hY2NlbnQpOwogICAgICAgIGNvbG9yOiB2YXIoLS10Yi11aS1kYXJrLWFjY2VudCk7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGZsZXgtYmFzaXM6IDA7CiAgICAgICAgZmxleC1ncm93OiAxOwogICAgICAgIGZsZXgtc2hyaW5rOiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLmJpZy1wYWdlLWJ1dHRvbnMgcGFwZXItYnV0dG9uW2Rpc2FibGVkXSB7CiAgICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgfQoKICAgICAgc2xvdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQoKICAgICAgOjpzbG90dGVkKFtzbG90PSdpdGVtcyddKSB7CiAgICAgICAgLyogVG9vbHRpcCBmb3IgZGVzY3JpcHRpb25zIGFuZCBvdGhlcnMgYnJlYWsgd2l0aCBtb3JlIHN0cmljdCBvbmVzLiAqLwogICAgICAgIGNvbnRhaW46IHN0eWxlOwogICAgICB9CgogICAgICAjcGFnZS1pbnB1dCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHdpZHRoOiB2YXIoLS10Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldy1wYWdlLWlucHV0LXdpZHRoLCAxMDAlKTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLENsLnByb3RvdHlwZSwiY2F0ZWdvcnkiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxDbC5wcm90b3R5cGUsImluaXRpYWxPcGVuZWQiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFuLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sQ2wucHJvdG90eXBlLCJvcGVuZWQiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxDbC5wcm90b3R5cGUsImRpc2FibGVQYWdpbmF0aW9uIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLGNvbXB1dGVkOiJfY29tcHV0ZUNvdW50KGNhdGVnb3J5Lml0ZW1zLiopIn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxDbC5wcm90b3R5cGUsIl9jb3VudCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sY29tcHV0ZWQ6Il9jb21wdXRlUGFuZVJlbmRlcmVkKGNhdGVnb3J5KSIsb2JzZXJ2ZXI6Il9vblBhbmVSZW5kZXJlZENoYW5nZWQifSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxDbC5wcm90b3R5cGUsIl9wYW5lUmVuZGVyZWQiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFuLGNvbXB1dGVkOiJfY29tcHV0ZUlzU2VhcmNoUmVzdWx0cyhjYXRlZ29yeS5tZXRhZGF0YS50eXBlKSJ9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLENsLnByb3RvdHlwZSwiX2lzU2VhcmNoUmVzdWx0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sY29tcHV0ZWQ6Il9jb21wdXRlSXNJbnZhbGlkU2VhcmNoUmVzdWx0cyhjYXRlZ29yeS5tZXRhZGF0YSkifSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxDbC5wcm90b3R5cGUsIl9pc0ludmFsaWRTZWFyY2hSZXN1bHRzIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixjb21wdXRlZDoiX2NvbXB1dGVJc1VuaXZlcnNhbFNlYXJjaFF1ZXJ5KGNhdGVnb3J5Lm1ldGFkYXRhKSJ9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLENsLnByb3RvdHlwZSwiX2lzVW5pdmVyc2FsU2VhcmNoUXVlcnkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsb2JzZXJ2ZXI6Il9nZXRDYXRlZ29yeUl0ZW1LZXlDaGFuZ2VkIn0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxDbC5wcm90b3R5cGUsImdldENhdGVnb3J5SXRlbUtleSIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcixvYnNlcnZlcjoiX2xpbWl0Q2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sQ2wucHJvdG90eXBlLCJfbGltaXQiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sQ2wucHJvdG90eXBlLCJfYWN0aXZlSW5kZXgiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXIsY29tcHV0ZWQ6Il9jb21wdXRlUGFnZUNvdW50KGNhdGVnb3J5Lml0ZW1zLiosIF9saW1pdCkifSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLENsLnByb3RvdHlwZSwiX3BhZ2VDb3VudCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxjb21wdXRlZDoiX2NvbXB1dGVJbnB1dFdpZHRoKF9wYWdlQ291bnQpIixvYnNlcnZlcjoiX3VwZGF0ZUlucHV0V2lkdGgifSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLENsLnByb3RvdHlwZSwiX2lucHV0V2lkdGgiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsY29tcHV0ZWQ6Il9jb21wdXRlUGFnZUlucHV0VmFsdWUoX3BhZ2VJbnB1dEZvY3VzZWQsIF9wYWdlSW5wdXRSYXdWYWx1ZSwgX2N1cnJlbnRQYWdlKSIsb2JzZXJ2ZXI6Il91cGRhdGVQYWdlSW5wdXRWYWx1ZSJ9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sQ2wucHJvdG90eXBlLCJfcGFnZUlucHV0VmFsdWUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sQ2wucHJvdG90eXBlLCJfcGFnZUlucHV0UmF3VmFsdWUiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxDbC5wcm90b3R5cGUsIl9wYWdlSW5wdXRGb2N1c2VkIix2b2lkIDApLHQoW3MoIl9jb3VudCIpLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxDbC5wcm90b3R5cGUsIl9oYXNNdWx0aXBsZSIsbnVsbCksdChbYSgib3BlbmVkIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW0Jvb2xlYW5dKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sQ2wucHJvdG90eXBlLCJfY2hhbmdlQ29udGVudEFjdGl2ZSIsbnVsbCksdChbcygib3BlbmVkIiwiX3BhbmVSZW5kZXJlZCIpLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxDbC5wcm90b3R5cGUsIl9pdGVtc1JlbmRlcmVkIixudWxsKSx0KFthKCJfaXRlbXNSZW5kZXJlZCIsImNhdGVnb3J5Lml0ZW1zLioiLCJfbGltaXQiLCJfYWN0aXZlSW5kZXgiLCJfcGFnZUNvdW50IiwiZGlzYWJsZVBhZ2luYXRpb24iKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLENsLnByb3RvdHlwZSwiX3VwZGF0ZVJlbmRlcmVkSXRlbXMiLG51bGwpLHQoW3MoIl9saW1pdCIsIl9hY3RpdmVJbmRleCIpLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLENsLnByb3RvdHlwZSwiX2N1cnJlbnRQYWdlIixudWxsKSx0KFtzKCJfcGFnZUNvdW50IiwiZGlzYWJsZVBhZ2luYXRpb24iKSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sQ2wucHJvdG90eXBlLCJfbXVsdGlwbGVQYWdlc0V4aXN0IixudWxsKSx0KFtzKCJfY3VycmVudFBhZ2UiKSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sQ2wucHJvdG90eXBlLCJfaGFzUHJldmlvdXNQYWdlIixudWxsKSx0KFtzKCJfY3VycmVudFBhZ2UiLCJfcGFnZUNvdW50IiksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLENsLnByb3RvdHlwZSwiX2hhc05leHRQYWdlIixudWxsKSx0KFthKCJjYXRlZ29yeS5pdGVtcy4qIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxDbC5wcm90b3R5cGUsIl9jbGFtcEFjdGl2ZUluZGV4IixudWxsKSxDbD10KFtpKCJ0Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldyIpXSxDbCk7Y2xhc3MgQWx7Y29uc3RydWN0b3IodCl7dGhpcy5saXN0ZW5lcj10fX1jbGFzcyBrbHtjb25zdHJ1Y3Rvcigpe3RoaXMucmVxdWVzdE1hbmFnZXI9bmV3IGJyKDEpLHRoaXMuX2xpc3RlbmVycz1uZXcgU2V0LHRoaXMuaW5pdGlhbGl6ZWQ9ITF9cmVmcmVzaCgpe3JldHVybiB0aGlzLmxvYWQoKS50aGVuKCgoKT0+e3RoaXMuaW5pdGlhbGl6ZWQ9ITB9KSl9YWRkTGlzdGVuZXIodCl7Y29uc3QgZT1uZXcgQWwodCk7cmV0dXJuIHRoaXMuX2xpc3RlbmVycy5hZGQoZSksZX1yZW1vdmVMaXN0ZW5lckJ5S2V5KHQpe3RoaXMuX2xpc3RlbmVycy5kZWxldGUodCl9ZW1pdENoYW5nZSgpe3RoaXMuX2xpc3RlbmVycy5mb3JFYWNoKCh0PT57dHJ5e3QubGlzdGVuZXIoKX1jYXRjaCh0KXt9fSkpfX1jbGFzcyBMbCBleHRlbmRzIGtse2xvYWQoKXtjb25zdCB0PUVyKCkuZW52aXJvbm1lbnQoKTtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHQpLnRoZW4oKHQ9Pntjb25zdCBlPXtkYXRhTG9jYXRpb246dC5kYXRhX2xvY2F0aW9uLHdpbmRvd1RpdGxlOnQud2luZG93X3RpdGxlfTt2b2lkIDAhPT10LmV4cGVyaW1lbnRfbmFtZSYmKGUuZXhwZXJpbWVudE5hbWU9dC5leHBlcmltZW50X25hbWUpLHZvaWQgMCE9PXQuZXhwZXJpbWVudF9kZXNjcmlwdGlvbiYmKGUuZXhwZXJpbWVudERlc2NyaXB0aW9uPXQuZXhwZXJpbWVudF9kZXNjcmlwdGlvbiksdm9pZCAwIT09dC5jcmVhdGlvbl90aW1lJiYoZS5jcmVhdGlvblRpbWU9dC5jcmVhdGlvbl90aW1lKSxDZS5leHBvcnRzLmlzRXF1YWwodGhpcy5lbnZpcm9ubWVudCxlKXx8KHRoaXMuZW52aXJvbm1lbnQ9ZSx0aGlzLmVtaXRDaGFuZ2UoKSl9KSl9Z2V0RGF0YUxvY2F0aW9uKCl7cmV0dXJuIHRoaXMuZW52aXJvbm1lbnQ/dGhpcy5lbnZpcm9ubWVudC5kYXRhTG9jYXRpb246IiJ9Z2V0V2luZG93VGl0bGUoKXtyZXR1cm4gdGhpcy5lbnZpcm9ubWVudD90aGlzLmVudmlyb25tZW50LndpbmRvd1RpdGxlOiIifWdldEV4cGVyaW1lbnROYW1lKCl7cmV0dXJuIHRoaXMuZW52aXJvbm1lbnQ/dGhpcy5lbnZpcm9ubWVudC5leHBlcmltZW50TmFtZToiIn1nZXRFeHBlcmltZW50RGVzY3JpcHRpb24oKXtyZXR1cm4gdGhpcy5lbnZpcm9ubWVudD90aGlzLmVudmlyb25tZW50LmV4cGVyaW1lbnREZXNjcmlwdGlvbjoiIn1nZXRDcmVhdGlvblRpbWUoKXtyZXR1cm4gdGhpcy5lbnZpcm9ubWVudD90aGlzLmVudmlyb25tZW50LmNyZWF0aW9uVGltZTpudWxsfX1jb25zdCBQbD1uZXcgTGw7Y2xhc3MgTmwgZXh0ZW5kcyBrbHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fcnVucz1bXX1sb2FkKCl7Y29uc3QgdD1FcigpLnJ1bnMoKTtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHQpLnRoZW4oKHQ9PntDZS5leHBvcnRzLmlzRXF1YWwodGhpcy5fcnVucyx0KXx8KHRoaXMuX3J1bnM9dCx0aGlzLmVtaXRDaGFuZ2UoKSl9KSl9Z2V0UnVucygpe3JldHVybiB0aGlzLl9ydW5zLnNsaWNlKCl9fWNvbnN0IElsPW5ldyBObDtmdW5jdGlvbiBSbCh0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6dD49ZT8wOk5hTn1mdW5jdGlvbiBPbCh0KXtyZXR1cm4gMT09PXQubGVuZ3RoJiYodD0oZnVuY3Rpb24gZSh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm4gUmwodChlKSxuKX19KSh0KSkse2xlZnQ6ZnVuY3Rpb24oZSxuLGkscil7Zm9yKG51bGw9PWkmJihpPTApLG51bGw9PXImJihyPWUubGVuZ3RoKTtpPHI7KXt2YXIgbz1pK3I+Pj4xO3QoZVtvXSxuKTwwP2k9bysxOnI9b31yZXR1cm4gaX0scmlnaHQ6ZnVuY3Rpb24oZSxuLGkscil7Zm9yKG51bGw9PWkmJihpPTApLG51bGw9PXImJihyPWUubGVuZ3RoKTtpPHI7KXt2YXIgbz1pK3I+Pj4xO3QoZVtvXSxuKT4wP3I9bzppPW8rMX1yZXR1cm4gaX19fXZhciB6bD1PbChSbCksRGw9emwucmlnaHQsQmw9emwubGVmdDtmdW5jdGlvbiBIbCh0LGUpe3JldHVyblt0LGVdfWZ1bmN0aW9uIEZsKHQsZSxuKXt2YXIgaSxyLG8sYSxzPXQubGVuZ3RoLGw9ZS5sZW5ndGgsYz1uZXcgQXJyYXkocypsKTtmb3IobnVsbD09biYmKG49SGwpLGk9bz0wO2k8czsrK2kpZm9yKGE9dFtpXSxyPTA7cjxsOysrciwrK28pY1tvXT1uKGEsZVtyXSk7cmV0dXJuIGN9ZnVuY3Rpb24gVmwodCl7cmV0dXJuIG51bGw9PT10P05hTjordH1mdW5jdGlvbiBVbCh0LGUpe3ZhciBuLGkscj10Lmxlbmd0aCxvPTAsYT0tMSxzPTAsbD0wO2lmKG51bGw9PWUpZm9yKDsrK2E8cjspaXNOYU4obj1WbCh0W2FdKSl8fChsKz0oaT1uLXMpKihuLShzKz1pLysrbykpKTtlbHNlIGZvcig7KythPHI7KWlzTmFOKG49VmwoZSh0W2FdLGEsdCkpKXx8KGwrPShpPW4tcykqKG4tKHMrPWkvKytvKSkpO2lmKG8+MSlyZXR1cm4gbC8oby0xKX1mdW5jdGlvbiBqbCh0LGUpe3ZhciBuPVVsKHQsZSk7cmV0dXJuIG4/TWF0aC5zcXJ0KG4pOm59ZnVuY3Rpb24gR2wodCxlKXt2YXIgbixpLHIsbz10Lmxlbmd0aCxhPS0xO2lmKG51bGw9PWUpe2Zvcig7KythPG87KWlmKG51bGwhPShuPXRbYV0pJiZuPj1uKWZvcihpPXI9bjsrK2E8bzspbnVsbCE9KG49dFthXSkmJihpPm4mJihpPW4pLHI8biYmKHI9bikpfWVsc2UgZm9yKDsrK2E8bzspaWYobnVsbCE9KG49ZSh0W2FdLGEsdCkpJiZuPj1uKWZvcihpPXI9bjsrK2E8bzspbnVsbCE9KG49ZSh0W2FdLGEsdCkpJiYoaT5uJiYoaT1uKSxyPG4mJihyPW4pKTtyZXR1cm5baSxyXX12YXIgV2w9QXJyYXkucHJvdG90eXBlLHFsPVdsLnNsaWNlLFlsPVdsLm1hcDtmdW5jdGlvbiBYbCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gJGwodCl7cmV0dXJuIHR9ZnVuY3Rpb24gS2wodCxlLG4pe3Q9K3QsZT0rZSxuPShyPWFyZ3VtZW50cy5sZW5ndGgpPDI/KGU9dCx0PTAsMSk6cjwzPzE6K247Zm9yKHZhciBpPS0xLHI9MHxNYXRoLm1heCgwLE1hdGguY2VpbCgoZS10KS9uKSksbz1uZXcgQXJyYXkocik7KytpPHI7KW9baV09dCtpKm47cmV0dXJuIG99dmFyIFpsPU1hdGguc3FydCg1MCksSmw9TWF0aC5zcXJ0KDEwKSxRbD1NYXRoLnNxcnQoMik7ZnVuY3Rpb24gdGModCxlLG4pe3ZhciBpLHIsbyxhLHM9LTE7aWYobj0rbiwodD0rdCk9PT0oZT0rZSkmJm4+MClyZXR1cm5bdF07aWYoKGk9ZTx0KSYmKHI9dCx0PWUsZT1yKSwwPT09KGE9ZWModCxlLG4pKXx8IWlzRmluaXRlKGEpKXJldHVybltdO2lmKGE+MClmb3IodD1NYXRoLmNlaWwodC9hKSxlPU1hdGguZmxvb3IoZS9hKSxvPW5ldyBBcnJheShyPU1hdGguY2VpbChlLXQrMSkpOysrczxyOylvW3NdPSh0K3MpKmE7ZWxzZSBmb3IodD1NYXRoLmZsb29yKHQqYSksZT1NYXRoLmNlaWwoZSphKSxvPW5ldyBBcnJheShyPU1hdGguY2VpbCh0LWUrMSkpOysrczxyOylvW3NdPSh0LXMpL2E7cmV0dXJuIGkmJm8ucmV2ZXJzZSgpLG99ZnVuY3Rpb24gZWModCxlLG4pe3ZhciBpPShlLXQpL01hdGgubWF4KDAsbikscj1NYXRoLmZsb29yKE1hdGgubG9nKGkpL01hdGguTE4xMCksbz1pL01hdGgucG93KDEwLHIpO3JldHVybiByPj0wPyhvPj1abD8xMDpvPj1KbD81Om8+PVFsPzI6MSkqTWF0aC5wb3coMTAscik6LU1hdGgucG93KDEwLC1yKS8obz49Wmw/MTA6bz49Smw/NTpvPj1RbD8yOjEpfWZ1bmN0aW9uIG5jKHQsZSxuKXt2YXIgaT1NYXRoLmFicyhlLXQpL01hdGgubWF4KDAsbikscj1NYXRoLnBvdygxMCxNYXRoLmZsb29yKE1hdGgubG9nKGkpL01hdGguTE4xMCkpLG89aS9yO3JldHVybiBvPj1abD9yKj0xMDpvPj1KbD9yKj01Om8+PVFsJiYocio9MiksZTx0Py1yOnJ9ZnVuY3Rpb24gaWModCl7cmV0dXJuIE1hdGguY2VpbChNYXRoLmxvZyh0Lmxlbmd0aCkvTWF0aC5MTjIpKzF9ZnVuY3Rpb24gcmModCxlLG4pe2lmKG51bGw9PW4mJihuPVZsKSxpPXQubGVuZ3RoKXtpZigoZT0rZSk8PTB8fGk8MilyZXR1cm4rbih0WzBdLDAsdCk7aWYoZT49MSlyZXR1cm4rbih0W2ktMV0saS0xLHQpO3ZhciBpLHI9KGktMSkqZSxvPU1hdGguZmxvb3IociksYT0rbih0W29dLG8sdCk7cmV0dXJuIGErKCtuKHRbbysxXSxvKzEsdCktYSkqKHItbyl9fWZ1bmN0aW9uIG9jKHQsZSl7dmFyIG4saSxyPXQubGVuZ3RoLG89LTE7aWYobnVsbD09ZSl7Zm9yKDsrK288cjspaWYobnVsbCE9KG49dFtvXSkmJm4+PW4pZm9yKGk9bjsrK288cjspbnVsbCE9KG49dFtvXSkmJm4+aSYmKGk9bil9ZWxzZSBmb3IoOysrbzxyOylpZihudWxsIT0obj1lKHRbb10sbyx0KSkmJm4+PW4pZm9yKGk9bjsrK288cjspbnVsbCE9KG49ZSh0W29dLG8sdCkpJiZuPmkmJihpPW4pO3JldHVybiBpfWZ1bmN0aW9uIGFjKHQpe2Zvcih2YXIgZSxuLGkscj10Lmxlbmd0aCxvPS0xLGE9MDsrK288cjspYSs9dFtvXS5sZW5ndGg7Zm9yKG49bmV3IEFycmF5KGEpOy0tcj49MDspZm9yKGU9KGk9dFtyXSkubGVuZ3RoOy0tZT49MDspblstLWFdPWlbZV07cmV0dXJuIG59ZnVuY3Rpb24gc2ModCxlKXt2YXIgbixpLHI9dC5sZW5ndGgsbz0tMTtpZihudWxsPT1lKXtmb3IoOysrbzxyOylpZihudWxsIT0obj10W29dKSYmbj49bilmb3IoaT1uOysrbzxyOyludWxsIT0obj10W29dKSYmaT5uJiYoaT1uKX1lbHNlIGZvcig7KytvPHI7KWlmKG51bGwhPShuPWUodFtvXSxvLHQpKSYmbj49bilmb3IoaT1uOysrbzxyOyludWxsIT0obj1lKHRbb10sbyx0KSkmJmk+biYmKGk9bik7cmV0dXJuIGl9ZnVuY3Rpb24gbGModCl7aWYoIShyPXQubGVuZ3RoKSlyZXR1cm5bXTtmb3IodmFyIGU9LTEsbj1zYyh0LGNjKSxpPW5ldyBBcnJheShuKTsrK2U8bjspZm9yKHZhciByLG89LTEsYT1pW2VdPW5ldyBBcnJheShyKTsrK288cjspYVtvXT10W29dW2VdO3JldHVybiBpfWZ1bmN0aW9uIGNjKHQpe3JldHVybiB0Lmxlbmd0aH12YXIgdWM9QXJyYXkucHJvdG90eXBlLnNsaWNlO2Z1bmN0aW9uIGhjKHQpe3JldHVybiB0fXZhciBkYz0xZS02O2Z1bmN0aW9uIHBjKHQpe3JldHVybiJ0cmFuc2xhdGUoIisodCsuNSkrIiwwKSJ9ZnVuY3Rpb24gZmModCl7cmV0dXJuInRyYW5zbGF0ZSgwLCIrKHQrLjUpKyIpIn1mdW5jdGlvbiBtYyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuK3QoZSl9fWZ1bmN0aW9uIGdjKHQpe3ZhciBlPU1hdGgubWF4KDAsdC5iYW5kd2lkdGgoKS0xKS8yO3JldHVybiB0LnJvdW5kKCkmJihlPU1hdGgucm91bmQoZSkpLGZ1bmN0aW9uKG4pe3JldHVybit0KG4pK2V9fWZ1bmN0aW9uIF9jKCl7cmV0dXJuIXRoaXMuX19heGlzfWZ1bmN0aW9uIHljKHQsZSl7dmFyIG49W10saT1udWxsLHI9bnVsbCxvPTYsYT02LHM9MyxsPTE9PT10fHw0PT09dD8tMToxLGM9ND09PXR8fDI9PT10PyJ4IjoieSIsdT0xPT09dHx8Mz09PXQ/cGM6ZmM7ZnVuY3Rpb24gaChoKXt2YXIgZD1udWxsPT1pP2UudGlja3M/ZS50aWNrcy5hcHBseShlLG4pOmUuZG9tYWluKCk6aSxwPW51bGw9PXI/ZS50aWNrRm9ybWF0P2UudGlja0Zvcm1hdC5hcHBseShlLG4pOmhjOnIsZj1NYXRoLm1heChvLDApK3MsbT1lLnJhbmdlKCksZz0rbVswXSsuNSxfPSttW20ubGVuZ3RoLTFdKy41LHk9KGUuYmFuZHdpZHRoP2djOm1jKShlLmNvcHkoKSksdj1oLnNlbGVjdGlvbj9oLnNlbGVjdGlvbigpOmgsYj12LnNlbGVjdEFsbCgiLmRvbWFpbiIpLmRhdGEoW251bGxdKSx4PXYuc2VsZWN0QWxsKCIudGljayIpLmRhdGEoZCxlKS5vcmRlcigpLHc9eC5leGl0KCksUz14LmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJ0aWNrIiksTT14LnNlbGVjdCgibGluZSIpLEU9eC5zZWxlY3QoInRleHQiKTtiPWIubWVyZ2UoYi5lbnRlcigpLmluc2VydCgicGF0aCIsIi50aWNrIikuYXR0cigiY2xhc3MiLCJkb21haW4iKS5hdHRyKCJzdHJva2UiLCJjdXJyZW50Q29sb3IiKSkseD14Lm1lcmdlKFMpLE09TS5tZXJnZShTLmFwcGVuZCgibGluZSIpLmF0dHIoInN0cm9rZSIsImN1cnJlbnRDb2xvciIpLmF0dHIoYysiMiIsbCpvKSksRT1FLm1lcmdlKFMuYXBwZW5kKCJ0ZXh0IikuYXR0cigiZmlsbCIsImN1cnJlbnRDb2xvciIpLmF0dHIoYyxsKmYpLmF0dHIoImR5IiwxPT09dD8iMGVtIjozPT09dD8iMC43MWVtIjoiMC4zMmVtIikpLGghPT12JiYoYj1iLnRyYW5zaXRpb24oaCkseD14LnRyYW5zaXRpb24oaCksTT1NLnRyYW5zaXRpb24oaCksRT1FLnRyYW5zaXRpb24oaCksdz13LnRyYW5zaXRpb24oaCkuYXR0cigib3BhY2l0eSIsZGMpLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiBpc0Zpbml0ZSh0PXkodCkpP3UodCk6dGhpcy5nZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIpfSkpLFMuYXR0cigib3BhY2l0eSIsZGMpLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMucGFyZW50Tm9kZS5fX2F4aXM7cmV0dXJuIHUoZSYmaXNGaW5pdGUoZT1lKHQpKT9lOnkodCkpfSkpKSx3LnJlbW92ZSgpLGIuYXR0cigiZCIsND09PXR8fDI9PXQ/YT8iTSIrbCphKyIsIitnKyJIMC41ViIrXysiSCIrbCphOiJNMC41LCIrZysiViIrXzphPyJNIitnKyIsIitsKmErIlYwLjVIIitfKyJWIitsKmE6Ik0iK2crIiwwLjVIIitfKSx4LmF0dHIoIm9wYWNpdHkiLDEpLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiB1KHkodCkpfSkpLE0uYXR0cihjKyIyIixsKm8pLEUuYXR0cihjLGwqZikudGV4dChwKSx2LmZpbHRlcihfYykuYXR0cigiZmlsbCIsIm5vbmUiKS5hdHRyKCJmb250LXNpemUiLDEwKS5hdHRyKCJmb250LWZhbWlseSIsInNhbnMtc2VyaWYiKS5hdHRyKCJ0ZXh0LWFuY2hvciIsMj09PXQ/InN0YXJ0Ijo0PT09dD8iZW5kIjoibWlkZGxlIiksdi5lYWNoKChmdW5jdGlvbigpe3RoaXMuX19heGlzPXl9KSl9cmV0dXJuIGguc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxoKTplfSxoLnRpY2tzPWZ1bmN0aW9uKCl7cmV0dXJuIG49dWMuY2FsbChhcmd1bWVudHMpLGh9LGgudGlja0FyZ3VtZW50cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1udWxsPT10P1tdOnVjLmNhbGwodCksaCk6bi5zbGljZSgpfSxoLnRpY2tWYWx1ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbD09dD9udWxsOnVjLmNhbGwodCksaCk6aSYmaS5zbGljZSgpfSxoLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxoKTpyfSxoLnRpY2tTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPWE9K3QsaCk6b30saC50aWNrU2l6ZUlubmVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSt0LGgpOm99LGgudGlja1NpemVPdXRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0rdCxoKTphfSxoLnRpY2tQYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSt0LGgpOnN9LGh9ZnVuY3Rpb24gdmModCl7cmV0dXJuIHljKDMsdCl9ZnVuY3Rpb24gYmModCl7cmV0dXJuIHljKDQsdCl9dmFyIHhjPXt2YWx1ZTpmdW5jdGlvbigpe319O2Z1bmN0aW9uIHdjKCl7Zm9yKHZhciB0LGU9MCxuPWFyZ3VtZW50cy5sZW5ndGgsaT17fTtlPG47KytlKXtpZighKHQ9YXJndW1lbnRzW2VdKyIiKXx8dCBpbiBpfHwvW1xzLl0vLnRlc3QodCkpdGhyb3cgbmV3IEVycm9yKCJpbGxlZ2FsIHR5cGU6ICIrdCk7aVt0XT1bXX1yZXR1cm4gbmV3IFNjKGkpfWZ1bmN0aW9uIFNjKHQpe3RoaXMuXz10fWZ1bmN0aW9uIE1jKHQsZSl7cmV0dXJuIHQudHJpbSgpLnNwbGl0KC9efFxzKy8pLm1hcCgoZnVuY3Rpb24odCl7dmFyIG49IiIsaT10LmluZGV4T2YoIi4iKTtpZihpPj0wJiYobj10LnNsaWNlKGkrMSksdD10LnNsaWNlKDAsaSkpLHQmJiFlLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO3JldHVybnt0eXBlOnQsbmFtZTpufX0pKX1mdW5jdGlvbiBFYyh0LGUpe2Zvcih2YXIgbixpPTAscj10Lmxlbmd0aDtpPHI7KytpKWlmKChuPXRbaV0pLm5hbWU9PT1lKXJldHVybiBuLnZhbHVlfWZ1bmN0aW9uIFRjKHQsZSxuKXtmb3IodmFyIGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpaWYodFtpXS5uYW1lPT09ZSl7dFtpXT14Yyx0PXQuc2xpY2UoMCxpKS5jb25jYXQodC5zbGljZShpKzEpKTticmVha31yZXR1cm4gbnVsbCE9biYmdC5wdXNoKHtuYW1lOmUsdmFsdWU6bn0pLHR9U2MucHJvdG90eXBlPXdjLnByb3RvdHlwZT17Y29uc3RydWN0b3I6U2Msb246ZnVuY3Rpb24odCxlKXt2YXIgbixpPXRoaXMuXyxyPU1jKHQrIiIsaSksbz0tMSxhPXIubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7aWYobnVsbCE9ZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNhbGxiYWNrOiAiK2UpO2Zvcig7KytvPGE7KWlmKG49KHQ9cltvXSkudHlwZSlpW25dPVRjKGlbbl0sdC5uYW1lLGUpO2Vsc2UgaWYobnVsbD09ZSlmb3IobiBpbiBpKWlbbl09VGMoaVtuXSx0Lm5hbWUsbnVsbCk7cmV0dXJuIHRoaXN9Zm9yKDsrK288YTspaWYoKG49KHQ9cltvXSkudHlwZSkmJihuPUVjKGlbbl0sdC5uYW1lKSkpcmV0dXJuIG59LGNvcHk6ZnVuY3Rpb24oKXt2YXIgdD17fSxlPXRoaXMuXztmb3IodmFyIG4gaW4gZSl0W25dPWVbbl0uc2xpY2UoKTtyZXR1cm4gbmV3IFNjKHQpfSxjYWxsOmZ1bmN0aW9uKHQsZSl7aWYoKG49YXJndW1lbnRzLmxlbmd0aC0yKT4wKWZvcih2YXIgbixpLHI9bmV3IEFycmF5KG4pLG89MDtvPG47KytvKXJbb109YXJndW1lbnRzW28rMl07aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtmb3Iobz0wLG49KGk9dGhpcy5fW3RdKS5sZW5ndGg7bzxuOysrbylpW29dLnZhbHVlLmFwcGx5KGUscil9LGFwcGx5OmZ1bmN0aW9uKHQsZSxuKXtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO2Zvcih2YXIgaT10aGlzLl9bdF0scj0wLG89aS5sZW5ndGg7cjxvOysrcilpW3JdLnZhbHVlLmFwcGx5KGUsbil9fTt2YXIgQ2M9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLEFjPXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDpDYyx4bGluazoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIseG1sOiJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyJ9O2Z1bmN0aW9uIGtjKHQpe3ZhciBlPXQrPSIiLG49ZS5pbmRleE9mKCI6Iik7cmV0dXJuIG4+PTAmJiJ4bWxucyIhPT0oZT10LnNsaWNlKDAsbikpJiYodD10LnNsaWNlKG4rMSkpLEFjLmhhc093blByb3BlcnR5KGUpP3tzcGFjZTpBY1tlXSxsb2NhbDp0fTp0fWZ1bmN0aW9uIExjKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMub3duZXJEb2N1bWVudCxuPXRoaXMubmFtZXNwYWNlVVJJO3JldHVybiBuPT09Q2MmJmUuZG9jdW1lbnRFbGVtZW50Lm5hbWVzcGFjZVVSST09PUNjP2UuY3JlYXRlRWxlbWVudCh0KTplLmNyZWF0ZUVsZW1lbnROUyhuLHQpfX1mdW5jdGlvbiBQYyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh0LnNwYWNlLHQubG9jYWwpfX1mdW5jdGlvbiBOYyh0KXt2YXIgZT1rYyh0KTtyZXR1cm4oZS5sb2NhbD9QYzpMYykoZSl9ZnVuY3Rpb24gSWMoKXt9ZnVuY3Rpb24gUmModCl7cmV0dXJuIG51bGw9PXQ/SWM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKHQpfX1mdW5jdGlvbiBPYygpe3JldHVybltdfWZ1bmN0aW9uIHpjKHQpe3JldHVybiBudWxsPT10P09jOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbCh0KX19ZnVuY3Rpb24gRGModCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF0Y2hlcyh0KX19ZnVuY3Rpb24gQmModCl7cmV0dXJuIG5ldyBBcnJheSh0Lmxlbmd0aCl9ZnVuY3Rpb24gSGModCxlKXt0aGlzLm93bmVyRG9jdW1lbnQ9dC5vd25lckRvY3VtZW50LHRoaXMubmFtZXNwYWNlVVJJPXQubmFtZXNwYWNlVVJJLHRoaXMuX25leHQ9bnVsbCx0aGlzLl9wYXJlbnQ9dCx0aGlzLl9fZGF0YV9fPWV9SGMucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpIYyxhcHBlbmRDaGlsZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZSh0LHRoaXMuX25leHQpfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZSh0LGUpfSxxdWVyeVNlbGVjdG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3Rvcih0KX0scXVlcnlTZWxlY3RvckFsbDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwodCl9fTtmdW5jdGlvbiBGYyh0LGUsbixpLHIsbyl7Zm9yKHZhciBhLHM9MCxsPWUubGVuZ3RoLGM9by5sZW5ndGg7czxjOysrcykoYT1lW3NdKT8oYS5fX2RhdGFfXz1vW3NdLGlbc109YSk6bltzXT1uZXcgSGModCxvW3NdKTtmb3IoO3M8bDsrK3MpKGE9ZVtzXSkmJihyW3NdPWEpfWZ1bmN0aW9uIFZjKHQsZSxuLGkscixvLGEpe3ZhciBzLGwsYyx1PXt9LGg9ZS5sZW5ndGgsZD1vLmxlbmd0aCxwPW5ldyBBcnJheShoKTtmb3Iocz0wO3M8aDsrK3MpKGw9ZVtzXSkmJihwW3NdPWM9IiQiK2EuY2FsbChsLGwuX19kYXRhX18scyxlKSxjIGluIHU/cltzXT1sOnVbY109bCk7Zm9yKHM9MDtzPGQ7KytzKShsPXVbYz0iJCIrYS5jYWxsKHQsb1tzXSxzLG8pXSk/KGlbc109bCxsLl9fZGF0YV9fPW9bc10sdVtjXT1udWxsKTpuW3NdPW5ldyBIYyh0LG9bc10pO2ZvcihzPTA7czxoOysrcykobD1lW3NdKSYmdVtwW3NdXT09PWwmJihyW3NdPWwpfWZ1bmN0aW9uIFVjKHQsZSl7cmV0dXJuIHQ8ZT8tMTp0PmU/MTp0Pj1lPzA6TmFOfWZ1bmN0aW9uIGpjKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpfX1mdW5jdGlvbiBHYyh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIFdjKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGUodCxlKX19ZnVuY3Rpb24gcWModCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxlKX19ZnVuY3Rpb24gWWModCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpOnRoaXMuc2V0QXR0cmlidXRlKHQsbil9fWZ1bmN0aW9uIFhjKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09bj90aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCk6dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsbil9fWZ1bmN0aW9uICRjKHQpe3JldHVybiB0Lm93bmVyRG9jdW1lbnQmJnQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8dC5kb2N1bWVudCYmdHx8dC5kZWZhdWx0Vmlld31mdW5jdGlvbiBLYyh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpfX1mdW5jdGlvbiBaYyh0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LGUsbil9fWZ1bmN0aW9uIEpjKHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgaT1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1pP3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCk6dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LGksbil9fWZ1bmN0aW9uIFFjKHQsZSl7cmV0dXJuIHQuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShlKXx8JGModCkuZ2V0Q29tcHV0ZWRTdHlsZSh0LG51bGwpLmdldFByb3BlcnR5VmFsdWUoZSl9ZnVuY3Rpb24gdHUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbdF19fWZ1bmN0aW9uIGV1KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpc1t0XT1lfX1mdW5jdGlvbiBudSh0LGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PW4/ZGVsZXRlIHRoaXNbdF06dGhpc1t0XT1ufX1mdW5jdGlvbiBpdSh0KXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLyl9ZnVuY3Rpb24gcnUodCl7cmV0dXJuIHQuY2xhc3NMaXN0fHxuZXcgb3UodCl9ZnVuY3Rpb24gb3UodCl7dGhpcy5fbm9kZT10LHRoaXMuX25hbWVzPWl1KHQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9ZnVuY3Rpb24gYXUodCxlKXtmb3IodmFyIG49cnUodCksaT0tMSxyPWUubGVuZ3RoOysraTxyOyluLmFkZChlW2ldKX1mdW5jdGlvbiBzdSh0LGUpe2Zvcih2YXIgbj1ydSh0KSxpPS0xLHI9ZS5sZW5ndGg7KytpPHI7KW4ucmVtb3ZlKGVbaV0pfWZ1bmN0aW9uIGx1KHQpe3JldHVybiBmdW5jdGlvbigpe2F1KHRoaXMsdCl9fWZ1bmN0aW9uIGN1KHQpe3JldHVybiBmdW5jdGlvbigpe3N1KHRoaXMsdCl9fWZ1bmN0aW9uIHV1KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7KGUuYXBwbHkodGhpcyxhcmd1bWVudHMpP2F1OnN1KSh0aGlzLHQpfX1mdW5jdGlvbiBodSgpe3RoaXMudGV4dENvbnRlbnQ9IiJ9ZnVuY3Rpb24gZHUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD10fX1mdW5jdGlvbiBwdSh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLnRleHRDb250ZW50PW51bGw9PWU/IiI6ZX19ZnVuY3Rpb24gZnUoKXt0aGlzLmlubmVySFRNTD0iIn1mdW5jdGlvbiBtdSh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLmlubmVySFRNTD10fX1mdW5jdGlvbiBndSh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLmlubmVySFRNTD1udWxsPT1lPyIiOmV9fWZ1bmN0aW9uIF91KCl7dGhpcy5uZXh0U2libGluZyYmdGhpcy5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHRoaXMpfWZ1bmN0aW9uIHl1KCl7dGhpcy5wcmV2aW91c1NpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcyx0aGlzLnBhcmVudE5vZGUuZmlyc3RDaGlsZCl9ZnVuY3Rpb24gdnUoKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiBidSgpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTt0JiZ0LnJlbW92ZUNoaWxkKHRoaXMpfWZ1bmN0aW9uIHh1KCl7dmFyIHQ9dGhpcy5jbG9uZU5vZGUoITEpLGU9dGhpcy5wYXJlbnROb2RlO3JldHVybiBlP2UuaW5zZXJ0QmVmb3JlKHQsdGhpcy5uZXh0U2libGluZyk6dH1mdW5jdGlvbiB3dSgpe3ZhciB0PXRoaXMuY2xvbmVOb2RlKCEwKSxlPXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gZT9lLmluc2VydEJlZm9yZSh0LHRoaXMubmV4dFNpYmxpbmcpOnR9b3UucHJvdG90eXBlPXthZGQ6ZnVuY3Rpb24odCl7dGhpcy5fbmFtZXMuaW5kZXhPZih0KTwwJiYodGhpcy5fbmFtZXMucHVzaCh0KSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbmFtZXMuaW5kZXhPZih0KTtlPj0wJiYodGhpcy5fbmFtZXMuc3BsaWNlKGUsMSksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix0aGlzLl9uYW1lcy5qb2luKCIgIikpKX0sY29udGFpbnM6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX25hbWVzLmluZGV4T2YodCk+PTB9fTt2YXIgU3U9e30sTXU9bnVsbDsidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiYoIm9ubW91c2VlbnRlciJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR8fChTdT17bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9KSk7ZnVuY3Rpb24gRXUodCxlLG4pe3JldHVybiB0PVR1KHQsZSxuKSxmdW5jdGlvbihlKXt2YXIgbj1lLnJlbGF0ZWRUYXJnZXQ7biYmKG49PT10aGlzfHw4Jm4uY29tcGFyZURvY3VtZW50UG9zaXRpb24odGhpcykpfHx0LmNhbGwodGhpcyxlKX19ZnVuY3Rpb24gVHUodCxlLG4pe3JldHVybiBmdW5jdGlvbihpKXt2YXIgcj1NdTtNdT1pO3RyeXt0LmNhbGwodGhpcyx0aGlzLl9fZGF0YV9fLGUsbil9ZmluYWxseXtNdT1yfX19ZnVuY3Rpb24gQ3UodCl7cmV0dXJuIHQudHJpbSgpLnNwbGl0KC9efFxzKy8pLm1hcCgoZnVuY3Rpb24odCl7dmFyIGU9IiIsbj10LmluZGV4T2YoIi4iKTtyZXR1cm4gbj49MCYmKGU9dC5zbGljZShuKzEpLHQ9dC5zbGljZSgwLG4pKSx7dHlwZTp0LG5hbWU6ZX19KSl9ZnVuY3Rpb24gQXUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fX29uO2lmKGUpe2Zvcih2YXIgbixpPTAscj0tMSxvPWUubGVuZ3RoO2k8bzsrK2kpbj1lW2ldLHQudHlwZSYmbi50eXBlIT09dC50eXBlfHxuLm5hbWUhPT10Lm5hbWU/ZVsrK3JdPW46dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKG4udHlwZSxuLmxpc3RlbmVyLG4uY2FwdHVyZSk7KytyP2UubGVuZ3RoPXI6ZGVsZXRlIHRoaXMuX19vbn19fWZ1bmN0aW9uIGt1KHQsZSxuKXt2YXIgaT1TdS5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpP0V1OlR1O3JldHVybiBmdW5jdGlvbihyLG8sYSl7dmFyIHMsbD10aGlzLl9fb24sYz1pKGUsbyxhKTtpZihsKWZvcih2YXIgdT0wLGg9bC5sZW5ndGg7dTxoOysrdSlpZigocz1sW3VdKS50eXBlPT09dC50eXBlJiZzLm5hbWU9PT10Lm5hbWUpcmV0dXJuIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihzLnR5cGUscy5saXN0ZW5lcixzLmNhcHR1cmUpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihzLnR5cGUscy5saXN0ZW5lcj1jLHMuY2FwdHVyZT1uKSx2b2lkKHMudmFsdWU9ZSk7dGhpcy5hZGRFdmVudExpc3RlbmVyKHQudHlwZSxjLG4pLHM9e3R5cGU6dC50eXBlLG5hbWU6dC5uYW1lLHZhbHVlOmUsbGlzdGVuZXI6YyxjYXB0dXJlOm59LGw/bC5wdXNoKHMpOnRoaXMuX19vbj1bc119fWZ1bmN0aW9uIEx1KHQsZSxuLGkpe3ZhciByPU11O3Quc291cmNlRXZlbnQ9TXUsTXU9dDt0cnl7cmV0dXJuIGUuYXBwbHkobixpKX1maW5hbGx5e011PXJ9fWZ1bmN0aW9uIFB1KHQsZSxuKXt2YXIgaT0kYyh0KSxyPWkuQ3VzdG9tRXZlbnQ7ImZ1bmN0aW9uIj09dHlwZW9mIHI/cj1uZXcgcihlLG4pOihyPWkuZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iiksbj8oci5pbml0RXZlbnQoZSxuLmJ1YmJsZXMsbi5jYW5jZWxhYmxlKSxyLmRldGFpbD1uLmRldGFpbCk6ci5pbml0RXZlbnQoZSwhMSwhMSkpLHQuZGlzcGF0Y2hFdmVudChyKX1mdW5jdGlvbiBOdSh0LGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBQdSh0aGlzLHQsZSl9fWZ1bmN0aW9uIEl1KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIFB1KHRoaXMsdCxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fXZhciBSdT1bbnVsbF07ZnVuY3Rpb24gT3UodCxlKXt0aGlzLl9ncm91cHM9dCx0aGlzLl9wYXJlbnRzPWV9ZnVuY3Rpb24genUoKXtyZXR1cm4gbmV3IE91KFtbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XV0sUnUpfWZ1bmN0aW9uIER1KHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdD9uZXcgT3UoW1tkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpXV0sW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF0pOm5ldyBPdShbW3RdXSxSdSl9T3UucHJvdG90eXBlPXp1LnByb3RvdHlwZT17Y29uc3RydWN0b3I6T3Usc2VsZWN0OmZ1bmN0aW9uIEJ1KHQpeyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1SYyh0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWZvcih2YXIgbyxhLHM9ZVtyXSxsPXMubGVuZ3RoLGM9aVtyXT1uZXcgQXJyYXkobCksdT0wO3U8bDsrK3UpKG89c1t1XSkmJihhPXQuY2FsbChvLG8uX19kYXRhX18sdSxzKSkmJigiX19kYXRhX18iaW4gbyYmKGEuX19kYXRhX189by5fX2RhdGFfXyksY1t1XT1hKTtyZXR1cm4gbmV3IE91KGksdGhpcy5fcGFyZW50cyl9LHNlbGVjdEFsbDpmdW5jdGlvbiBIdSh0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9emModCkpO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj1lLmxlbmd0aCxpPVtdLHI9W10sbz0wO288bjsrK28pZm9yKHZhciBhLHM9ZVtvXSxsPXMubGVuZ3RoLGM9MDtjPGw7KytjKShhPXNbY10pJiYoaS5wdXNoKHQuY2FsbChhLGEuX19kYXRhX18sYyxzKSksci5wdXNoKGEpKTtyZXR1cm4gbmV3IE91KGkscil9LGZpbHRlcjpmdW5jdGlvbiBGdSh0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9RGModCkpO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj1lLmxlbmd0aCxpPW5ldyBBcnJheShuKSxyPTA7cjxuOysrcilmb3IodmFyIG8sYT1lW3JdLHM9YS5sZW5ndGgsbD1pW3JdPVtdLGM9MDtjPHM7KytjKShvPWFbY10pJiZ0LmNhbGwobyxvLl9fZGF0YV9fLGMsYSkmJmwucHVzaChvKTtyZXR1cm4gbmV3IE91KGksdGhpcy5fcGFyZW50cyl9LGRhdGE6ZnVuY3Rpb24gVnUodCxlKXtpZighdClyZXR1cm4gZj1uZXcgQXJyYXkodGhpcy5zaXplKCkpLHU9LTEsdGhpcy5lYWNoKChmdW5jdGlvbih0KXtmWysrdV09dH0pKSxmO3ZhciBuPWU/VmM6RmMsaT10aGlzLl9wYXJlbnRzLHI9dGhpcy5fZ3JvdXBzOyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD0oZnVuY3Rpb24gbyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KSh0KSk7Zm9yKHZhciBhPXIubGVuZ3RoLHM9bmV3IEFycmF5KGEpLGw9bmV3IEFycmF5KGEpLGM9bmV3IEFycmF5KGEpLHU9MDt1PGE7Kyt1KXt2YXIgaD1pW3VdLGQ9clt1XSxwPWQubGVuZ3RoLGY9dC5jYWxsKGgsaCYmaC5fX2RhdGFfXyx1LGkpLG09Zi5sZW5ndGgsZz1sW3VdPW5ldyBBcnJheShtKSxfPXNbdV09bmV3IEFycmF5KG0pO24oaCxkLGcsXyxjW3VdPW5ldyBBcnJheShwKSxmLGUpO2Zvcih2YXIgeSx2LGI9MCx4PTA7YjxtOysrYilpZih5PWdbYl0pe2ZvcihiPj14JiYoeD1iKzEpOyEodj1fW3hdKSYmKyt4PG07KTt5Ll9uZXh0PXZ8fG51bGx9fXJldHVybihzPW5ldyBPdShzLGkpKS5fZW50ZXI9bCxzLl9leGl0PWMsc30sZW50ZXI6ZnVuY3Rpb24gVXUoKXtyZXR1cm4gbmV3IE91KHRoaXMuX2VudGVyfHx0aGlzLl9ncm91cHMubWFwKEJjKSx0aGlzLl9wYXJlbnRzKX0sZXhpdDpmdW5jdGlvbiBqdSgpe3JldHVybiBuZXcgT3UodGhpcy5fZXhpdHx8dGhpcy5fZ3JvdXBzLm1hcChCYyksdGhpcy5fcGFyZW50cyl9LGpvaW46ZnVuY3Rpb24gR3UodCxlLG4pe3ZhciBpPXRoaXMuZW50ZXIoKSxyPXRoaXMsbz10aGlzLmV4aXQoKTtyZXR1cm4gaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90KGkpOmkuYXBwZW5kKHQrIiIpLG51bGwhPWUmJihyPWUocikpLG51bGw9PW4/by5yZW1vdmUoKTpuKG8pLGkmJnI/aS5tZXJnZShyKS5vcmRlcigpOnJ9LG1lcmdlOmZ1bmN0aW9uIFd1KHQpe2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj10Ll9ncm91cHMsaT1lLmxlbmd0aCxyPU1hdGgubWluKGksbi5sZW5ndGgpLG89bmV3IEFycmF5KGkpLGE9MDthPHI7KythKWZvcih2YXIgcyxsPWVbYV0sYz1uW2FdLHU9bC5sZW5ndGgsaD1vW2FdPW5ldyBBcnJheSh1KSxkPTA7ZDx1OysrZCkocz1sW2RdfHxjW2RdKSYmKGhbZF09cyk7Zm9yKDthPGk7KythKW9bYV09ZVthXTtyZXR1cm4gbmV3IE91KG8sdGhpcy5fcGFyZW50cyl9LG9yZGVyOmZ1bmN0aW9uIHF1KCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxlPS0xLG49dC5sZW5ndGg7KytlPG47KWZvcih2YXIgaSxyPXRbZV0sbz1yLmxlbmd0aC0xLGE9cltvXTstLW8+PTA7KShpPXJbb10pJiYoYSYmNF5pLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGEpJiZhLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGksYSksYT1pKTtyZXR1cm4gdGhpc30sc29ydDpmdW5jdGlvbiBZdSh0KXtmdW5jdGlvbiBlKGUsbil7cmV0dXJuIGUmJm4/dChlLl9fZGF0YV9fLG4uX19kYXRhX18pOiFlLSFufXR8fCh0PVVjKTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGk9bi5sZW5ndGgscj1uZXcgQXJyYXkoaSksbz0wO288aTsrK28pe2Zvcih2YXIgYSxzPW5bb10sbD1zLmxlbmd0aCxjPXJbb109bmV3IEFycmF5KGwpLHU9MDt1PGw7Kyt1KShhPXNbdV0pJiYoY1t1XT1hKTtjLnNvcnQoZSl9cmV0dXJuIG5ldyBPdShyLHRoaXMuX3BhcmVudHMpLm9yZGVyKCl9LGNhbGw6ZnVuY3Rpb24gWHUoKXt2YXIgdD1hcmd1bWVudHNbMF07cmV0dXJuIGFyZ3VtZW50c1swXT10aGlzLHQuYXBwbHkobnVsbCxhcmd1bWVudHMpLHRoaXN9LG5vZGVzOmZ1bmN0aW9uICR1KCl7dmFyIHQ9bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSxlPS0xO3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7dFsrK2VdPXRoaXN9KSksdH0sbm9kZTpmdW5jdGlvbiBLdSgpe2Zvcih2YXIgdD10aGlzLl9ncm91cHMsZT0wLG49dC5sZW5ndGg7ZTxuOysrZSlmb3IodmFyIGk9dFtlXSxyPTAsbz1pLmxlbmd0aDtyPG87KytyKXt2YXIgYT1pW3JdO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9LHNpemU6ZnVuY3Rpb24gWnUoKXt2YXIgdD0wO3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7Kyt0fSkpLHR9LGVtcHR5OmZ1bmN0aW9uIEp1KCl7cmV0dXJuIXRoaXMubm9kZSgpfSxlYWNoOmZ1bmN0aW9uIFF1KHQpe2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj0wLGk9ZS5sZW5ndGg7bjxpOysrbilmb3IodmFyIHIsbz1lW25dLGE9MCxzPW8ubGVuZ3RoO2E8czsrK2EpKHI9b1thXSkmJnQuY2FsbChyLHIuX19kYXRhX18sYSxvKTtyZXR1cm4gdGhpc30sYXR0cjpmdW5jdGlvbiB0aCh0LGUpe3ZhciBuPWtjKHQpO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7dmFyIGk9dGhpcy5ub2RlKCk7cmV0dXJuIG4ubG9jYWw/aS5nZXRBdHRyaWJ1dGVOUyhuLnNwYWNlLG4ubG9jYWwpOmkuZ2V0QXR0cmlidXRlKG4pfXJldHVybiB0aGlzLmVhY2goKG51bGw9PWU/bi5sb2NhbD9HYzpqYzoiZnVuY3Rpb24iPT10eXBlb2YgZT9uLmxvY2FsP1hjOlljOm4ubG9jYWw/cWM6V2MpKG4sZSkpfSxzdHlsZTpmdW5jdGlvbiBlaCh0LGUsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PWU/S2M6ImZ1bmN0aW9uIj09dHlwZW9mIGU/SmM6WmMpKHQsZSxudWxsPT1uPyIiOm4pKTpRYyh0aGlzLm5vZGUoKSx0KX0scHJvcGVydHk6ZnVuY3Rpb24gbmgodCxlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09ZT90dToiZnVuY3Rpb24iPT10eXBlb2YgZT9udTpldSkodCxlKSk6dGhpcy5ub2RlKClbdF19LGNsYXNzZWQ6ZnVuY3Rpb24gaWgodCxlKXt2YXIgbj1pdSh0KyIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgaT1ydSh0aGlzLm5vZGUoKSkscj0tMSxvPW4ubGVuZ3RoOysrcjxvOylpZighaS5jb250YWlucyhuW3JdKSlyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4gdGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgZT91dTplP2x1OmN1KShuLGUpKX0sdGV4dDpmdW5jdGlvbiByaCh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD9odTooImZ1bmN0aW9uIj09dHlwZW9mIHQ/cHU6ZHUpKHQpKTp0aGlzLm5vZGUoKS50ZXh0Q29udGVudH0saHRtbDpmdW5jdGlvbiBvaCh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD9mdTooImZ1bmN0aW9uIj09dHlwZW9mIHQ/Z3U6bXUpKHQpKTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9LHJhaXNlOmZ1bmN0aW9uIGFoKCl7cmV0dXJuIHRoaXMuZWFjaChfdSl9LGxvd2VyOmZ1bmN0aW9uIHNoKCl7cmV0dXJuIHRoaXMuZWFjaCh5dSl9LGFwcGVuZDpmdW5jdGlvbiBsaCh0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgdD90Ok5jKHQpO3JldHVybiB0aGlzLnNlbGVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcHBlbmRDaGlsZChlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9KSl9LGluc2VydDpmdW5jdGlvbiBjaCh0LGUpe3ZhciBuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6TmModCksaT1udWxsPT1lP3Z1OiJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6UmMoZSk7cmV0dXJuIHRoaXMuc2VsZWN0KChmdW5jdGlvbigpe3JldHVybiB0aGlzLmluc2VydEJlZm9yZShuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxpLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8bnVsbCl9KSl9LHJlbW92ZTpmdW5jdGlvbiB1aCgpe3JldHVybiB0aGlzLmVhY2goYnUpfSxjbG9uZTpmdW5jdGlvbiBoaCh0KXtyZXR1cm4gdGhpcy5zZWxlY3QodD93dTp4dSl9LGRhdHVtOmZ1bmN0aW9uIGRoKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMucHJvcGVydHkoIl9fZGF0YV9fIix0KTp0aGlzLm5vZGUoKS5fX2RhdGFfX30sb246ZnVuY3Rpb24gcGgodCxlLG4pe3ZhciBpLHIsbz1DdSh0KyIiKSxhPW8ubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7Zm9yKHM9ZT9rdTpBdSxudWxsPT1uJiYobj0hMSksaT0wO2k8YTsrK2kpdGhpcy5lYWNoKHMob1tpXSxlLG4pKTtyZXR1cm4gdGhpc312YXIgcz10aGlzLm5vZGUoKS5fX29uO2lmKHMpZm9yKHZhciBsLGM9MCx1PXMubGVuZ3RoO2M8dTsrK2MpZm9yKGk9MCxsPXNbY107aTxhOysraSlpZigocj1vW2ldKS50eXBlPT09bC50eXBlJiZyLm5hbWU9PT1sLm5hbWUpcmV0dXJuIGwudmFsdWV9LGRpc3BhdGNoOmZ1bmN0aW9uIGZoKHQsZSl7cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGU/SXU6TnUpKHQsZSkpfX07dmFyIG1oPTA7ZnVuY3Rpb24gZ2goKXtyZXR1cm4gbmV3IF9ofWZ1bmN0aW9uIF9oKCl7dGhpcy5fPSJAIisoKyttaCkudG9TdHJpbmcoMzYpfWZ1bmN0aW9uIHloKCl7Zm9yKHZhciB0LGU9TXU7dD1lLnNvdXJjZUV2ZW50OyllPXQ7cmV0dXJuIGV9ZnVuY3Rpb24gdmgodCxlKXt2YXIgbj10Lm93bmVyU1ZHRWxlbWVudHx8dDtpZihuLmNyZWF0ZVNWR1BvaW50KXt2YXIgaT1uLmNyZWF0ZVNWR1BvaW50KCk7cmV0dXJuIGkueD1lLmNsaWVudFgsaS55PWUuY2xpZW50WSxbKGk9aS5tYXRyaXhUcmFuc2Zvcm0odC5nZXRTY3JlZW5DVE0oKS5pbnZlcnNlKCkpKS54LGkueV19dmFyIHI9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm5bZS5jbGllbnRYLXIubGVmdC10LmNsaWVudExlZnQsZS5jbGllbnRZLXIudG9wLXQuY2xpZW50VG9wXX1mdW5jdGlvbiBiaCh0KXt2YXIgZT15aCgpO3JldHVybiBlLmNoYW5nZWRUb3VjaGVzJiYoZT1lLmNoYW5nZWRUb3VjaGVzWzBdKSx2aCh0LGUpfWZ1bmN0aW9uIHhoKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdD9uZXcgT3UoW2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwodCldLFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdKTpuZXcgT3UoW251bGw9PXQ/W106dF0sUnUpfWZ1bmN0aW9uIHdoKHQsZSxuKXthcmd1bWVudHMubGVuZ3RoPDMmJihuPWUsZT15aCgpLmNoYW5nZWRUb3VjaGVzKTtmb3IodmFyIGkscj0wLG89ZT9lLmxlbmd0aDowO3I8bzsrK3IpaWYoKGk9ZVtyXSkuaWRlbnRpZmllcj09PW4pcmV0dXJuIHZoKHQsaSk7cmV0dXJuIG51bGx9ZnVuY3Rpb24gU2goKXtNdS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBNaCgpe011LnByZXZlbnREZWZhdWx0KCksTXUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gRWgodCl7dmFyIGU9dC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsbj1EdSh0KS5vbigiZHJhZ3N0YXJ0LmRyYWciLE1oLCEwKTsib25zZWxlY3RzdGFydCJpbiBlP24ub24oInNlbGVjdHN0YXJ0LmRyYWciLE1oLCEwKTooZS5fX25vc2VsZWN0PWUuc3R5bGUuTW96VXNlclNlbGVjdCxlLnN0eWxlLk1velVzZXJTZWxlY3Q9Im5vbmUiKX1mdW5jdGlvbiBUaCh0LGUpe3ZhciBuPXQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGk9RHUodCkub24oImRyYWdzdGFydC5kcmFnIixudWxsKTtlJiYoaS5vbigiY2xpY2suZHJhZyIsTWgsITApLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7aS5vbigiY2xpY2suZHJhZyIsbnVsbCl9KSwwKSksIm9uc2VsZWN0c3RhcnQiaW4gbj9pLm9uKCJzZWxlY3RzdGFydC5kcmFnIixudWxsKToobi5zdHlsZS5Nb3pVc2VyU2VsZWN0PW4uX19ub3NlbGVjdCxkZWxldGUgbi5fX25vc2VsZWN0KX1mdW5jdGlvbiBDaCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gQWgodCxlLG4saSxyLG8sYSxzLGwsYyl7dGhpcy50YXJnZXQ9dCx0aGlzLnR5cGU9ZSx0aGlzLnN1YmplY3Q9bix0aGlzLmlkZW50aWZpZXI9aSx0aGlzLmFjdGl2ZT1yLHRoaXMueD1vLHRoaXMueT1hLHRoaXMuZHg9cyx0aGlzLmR5PWwsdGhpcy5fPWN9ZnVuY3Rpb24ga2goKXtyZXR1cm4hTXUuY3RybEtleSYmIU11LmJ1dHRvbn1mdW5jdGlvbiBMaCgpe3JldHVybiB0aGlzLnBhcmVudE5vZGV9ZnVuY3Rpb24gUGgodCl7cmV0dXJuIG51bGw9PXQ/e3g6TXUueCx5Ok11Lnl9OnR9ZnVuY3Rpb24gTmgoKXtyZXR1cm4gbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzfHwib250b3VjaHN0YXJ0ImluIHRoaXN9ZnVuY3Rpb24gSWgoKXt2YXIgdCxlLG4saSxyPWtoLG89TGgsYT1QaCxzPU5oLGw9e30sYz13Yygic3RhcnQiLCJkcmFnIiwiZW5kIiksdT0wLGg9MDtmdW5jdGlvbiBkKHQpe3Qub24oIm1vdXNlZG93bi5kcmFnIixwKS5maWx0ZXIocykub24oInRvdWNoc3RhcnQuZHJhZyIsZykub24oInRvdWNobW92ZS5kcmFnIixfKS5vbigidG91Y2hlbmQuZHJhZyB0b3VjaGNhbmNlbC5kcmFnIix5KS5zdHlsZSgidG91Y2gtYWN0aW9uIiwibm9uZSIpLnN0eWxlKCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3IiLCJyZ2JhKDAsMCwwLDApIil9ZnVuY3Rpb24gcCgpe2lmKCFpJiZyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIGE9digibW91c2UiLG8uYXBwbHkodGhpcyxhcmd1bWVudHMpLGJoLHRoaXMsYXJndW1lbnRzKTthJiYoRHUoTXUudmlldykub24oIm1vdXNlbW92ZS5kcmFnIixmLCEwKS5vbigibW91c2V1cC5kcmFnIixtLCEwKSxFaChNdS52aWV3KSxTaCgpLG49ITEsdD1NdS5jbGllbnRYLGU9TXUuY2xpZW50WSxhKCJzdGFydCIpKX19ZnVuY3Rpb24gZigpe2lmKE1oKCksIW4pe3ZhciBpPU11LmNsaWVudFgtdCxyPU11LmNsaWVudFktZTtuPWkqaStyKnI+aH1sLm1vdXNlKCJkcmFnIil9ZnVuY3Rpb24gbSgpe0R1KE11LnZpZXcpLm9uKCJtb3VzZW1vdmUuZHJhZyBtb3VzZXVwLmRyYWciLG51bGwpLFRoKE11LnZpZXcsbiksTWgoKSxsLm1vdXNlKCJlbmQiKX1mdW5jdGlvbiBnKCl7aWYoci5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciB0LGUsbj1NdS5jaGFuZ2VkVG91Y2hlcyxpPW8uYXBwbHkodGhpcyxhcmd1bWVudHMpLGE9bi5sZW5ndGg7Zm9yKHQ9MDt0PGE7Kyt0KShlPXYoblt0XS5pZGVudGlmaWVyLGksd2gsdGhpcyxhcmd1bWVudHMpKSYmKFNoKCksZSgic3RhcnQiKSl9fWZ1bmN0aW9uIF8oKXt2YXIgdCxlLG49TXUuY2hhbmdlZFRvdWNoZXMsaT1uLmxlbmd0aDtmb3IodD0wO3Q8aTsrK3QpKGU9bFtuW3RdLmlkZW50aWZpZXJdKSYmKE1oKCksZSgiZHJhZyIpKX1mdW5jdGlvbiB5KCl7dmFyIHQsZSxuPU11LmNoYW5nZWRUb3VjaGVzLHI9bi5sZW5ndGg7Zm9yKGkmJmNsZWFyVGltZW91dChpKSxpPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7aT1udWxsfSksNTAwKSx0PTA7dDxyOysrdCkoZT1sW25bdF0uaWRlbnRpZmllcl0pJiYoU2goKSxlKCJlbmQiKSl9ZnVuY3Rpb24gdih0LGUsbixpLHIpe3ZhciBvLHMsaCxwPW4oZSx0KSxmPWMuY29weSgpO2lmKEx1KG5ldyBBaChkLCJiZWZvcmVzdGFydCIsbyx0LHUscFswXSxwWzFdLDAsMCxmKSwoZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9KE11LnN1YmplY3Q9bz1hLmFwcGx5KGkscikpJiYocz1vLngtcFswXXx8MCxoPW8ueS1wWzFdfHwwLCEwKX0pKSlyZXR1cm4gZnVuY3Rpb24gYShjKXt2YXIgbSxnPXA7c3dpdGNoKGMpe2Nhc2Uic3RhcnQiOmxbdF09YSxtPXUrKzticmVhaztjYXNlImVuZCI6ZGVsZXRlIGxbdF0sLS11O2Nhc2UiZHJhZyI6cD1uKGUsdCksbT11fUx1KG5ldyBBaChkLGMsbyx0LG0scFswXStzLHBbMV0raCxwWzBdLWdbMF0scFsxXS1nWzFdLGYpLGYuYXBwbHksZixbYyxpLHJdKX19cmV0dXJuIGQuZmlsdGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6Q2goISF0KSxkKTpyfSxkLmNvbnRhaW5lcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkNoKHQpLGQpOm99LGQuc3ViamVjdD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkNoKHQpLGQpOmF9LGQudG91Y2hhYmxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6Q2goISF0KSxkKTpzfSxkLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9Yy5vbi5hcHBseShjLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT1jP2Q6dH0sZC5jbGlja0Rpc3RhbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPSh0PSt0KSp0LGQpOk1hdGguc3FydChoKX0sZH1mdW5jdGlvbiBSaCh0LGUsbil7dC5wcm90b3R5cGU9ZS5wcm90b3R5cGU9bixuLmNvbnN0cnVjdG9yPXR9ZnVuY3Rpb24gT2godCxlKXt2YXIgbj1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlKTtmb3IodmFyIGkgaW4gZSluW2ldPWVbaV07cmV0dXJuIG59ZnVuY3Rpb24gemgoKXt9X2gucHJvdG90eXBlPWdoLnByb3RvdHlwZT17Y29uc3RydWN0b3I6X2gsZ2V0OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLl87IShlIGluIHQpOylpZighKHQ9dC5wYXJlbnROb2RlKSlyZXR1cm47cmV0dXJuIHRbZV19LHNldDpmdW5jdGlvbih0LGUpe3JldHVybiB0W3RoaXMuX109ZX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl8gaW4gdCYmZGVsZXRlIHRbdGhpcy5fXX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ffX0sQWgucHJvdG90eXBlLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fLm9uLmFwcGx5KHRoaXMuXyxhcmd1bWVudHMpO3JldHVybiB0PT09dGhpcy5fP3RoaXM6dH07dmFyIERoPS43LEJoPTEvRGgsSGg9IlxccyooWystXT9cXGQrKVxccyoiLEZoPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KVxccyoiLFZoPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KSVcXHMqIixVaD0vXiMoWzAtOWEtZl17Myw4fSkkLyxqaD1uZXcgUmVnRXhwKCJecmdiXFwoIitbSGgsSGgsSGhdKyJcXCkkIiksR2g9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW1ZoLFZoLFZoXSsiXFwpJCIpLFdoPW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbSGgsSGgsSGgsRmhdKyJcXCkkIikscWg9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tWaCxWaCxWaCxGaF0rIlxcKSQiKSxZaD1uZXcgUmVnRXhwKCJeaHNsXFwoIitbRmgsVmgsVmhdKyJcXCkkIiksWGg9bmV3IFJlZ0V4cCgiXmhzbGFcXCgiK1tGaCxWaCxWaCxGaF0rIlxcKSQiKSwkaD17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtmdW5jdGlvbiBLaCgpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdEhleCgpfWZ1bmN0aW9uIFpoKCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0UmdiKCl9ZnVuY3Rpb24gSmgodCl7dmFyIGUsbjtyZXR1cm4gdD0odCsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKGU9VWguZXhlYyh0KSk/KG49ZVsxXS5sZW5ndGgsZT1wYXJzZUludChlWzFdLDE2KSw2PT09bj9RaChlKTozPT09bj9uZXcgaWQoZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgxNSZlKTw8NHwxNSZlLDEpOjg9PT1uP3RkKGU+PjI0JjI1NSxlPj4xNiYyNTUsZT4+OCYyNTUsKDI1NSZlKS8yNTUpOjQ9PT1uP3RkKGU+PjEyJjE1fGU+PjgmMjQwLGU+PjgmMTV8ZT4+NCYyNDAsZT4+NCYxNXwyNDAmZSwoKDE1JmUpPDw0fDE1JmUpLzI1NSk6bnVsbCk6KGU9amguZXhlYyh0KSk/bmV3IGlkKGVbMV0sZVsyXSxlWzNdLDEpOihlPUdoLmV4ZWModCkpP25ldyBpZCgyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCwxKTooZT1XaC5leGVjKHQpKT90ZChlWzFdLGVbMl0sZVszXSxlWzRdKTooZT1xaC5leGVjKHQpKT90ZCgyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCxlWzRdKTooZT1ZaC5leGVjKHQpKT9zZChlWzFdLGVbMl0vMTAwLGVbM10vMTAwLDEpOihlPVhoLmV4ZWModCkpP3NkKGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsZVs0XSk6JGguaGFzT3duUHJvcGVydHkodCk/UWgoJGhbdF0pOiJ0cmFuc3BhcmVudCI9PT10P25ldyBpZChOYU4sTmFOLE5hTiwwKTpudWxsfWZ1bmN0aW9uIFFoKHQpe3JldHVybiBuZXcgaWQodD4+MTYmMjU1LHQ+PjgmMjU1LDI1NSZ0LDEpfWZ1bmN0aW9uIHRkKHQsZSxuLGkpe3JldHVybiBpPD0wJiYodD1lPW49TmFOKSxuZXcgaWQodCxlLG4saSl9ZnVuY3Rpb24gZWQodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiB6aHx8KHQ9SmgodCkpLHQ/bmV3IGlkKCh0PXQucmdiKCkpLnIsdC5nLHQuYix0Lm9wYWNpdHkpOm5ldyBpZH1mdW5jdGlvbiBuZCh0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/ZWQodCk6bmV3IGlkKHQsZSxuLG51bGw9PWk/MTppKX1mdW5jdGlvbiBpZCh0LGUsbixpKXt0aGlzLnI9K3QsdGhpcy5nPStlLHRoaXMuYj0rbix0aGlzLm9wYWNpdHk9K2l9ZnVuY3Rpb24gcmQoKXtyZXR1cm4iIyIrYWQodGhpcy5yKSthZCh0aGlzLmcpK2FkKHRoaXMuYil9ZnVuY3Rpb24gb2QoKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpPyJyZ2IoIjoicmdiYSgiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKDE9PT10PyIpIjoiLCAiK3QrIikiKX1mdW5jdGlvbiBhZCh0KXtyZXR1cm4oKHQ9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0KXx8MCkpKTwxNj8iMCI6IiIpK3QudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIHNkKHQsZSxuLGkpe3JldHVybiBpPD0wP3Q9ZT1uPU5hTjpuPD0wfHxuPj0xP3Q9ZT1OYU46ZTw9MCYmKHQ9TmFOKSxuZXcgdWQodCxlLG4saSl9ZnVuY3Rpb24gbGQodCl7aWYodCBpbnN0YW5jZW9mIHVkKXJldHVybiBuZXcgdWQodC5oLHQucyx0LmwsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2Ygemh8fCh0PUpoKHQpKSwhdClyZXR1cm4gbmV3IHVkO2lmKHQgaW5zdGFuY2VvZiB1ZClyZXR1cm4gdDt2YXIgZT0odD10LnJnYigpKS5yLzI1NSxuPXQuZy8yNTUsaT10LmIvMjU1LHI9TWF0aC5taW4oZSxuLGkpLG89TWF0aC5tYXgoZSxuLGkpLGE9TmFOLHM9by1yLGw9KG8rcikvMjtyZXR1cm4gcz8oYT1lPT09bz8obi1pKS9zKzYqKG48aSk6bj09PW8/KGktZSkvcysyOihlLW4pL3MrNCxzLz1sPC41P28rcjoyLW8tcixhKj02MCk6cz1sPjAmJmw8MT8wOmEsbmV3IHVkKGEscyxsLHQub3BhY2l0eSl9ZnVuY3Rpb24gY2QodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP2xkKHQpOm5ldyB1ZCh0LGUsbixudWxsPT1pPzE6aSl9ZnVuY3Rpb24gdWQodCxlLG4saSl7dGhpcy5oPSt0LHRoaXMucz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIGhkKHQsZSxuKXtyZXR1cm4gMjU1Kih0PDYwP2UrKG4tZSkqdC82MDp0PDE4MD9uOnQ8MjQwP2UrKG4tZSkqKDI0MC10KS82MDplKX1SaCh6aCxKaCx7Y29weTpmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgdGhpcy5jb25zdHJ1Y3Rvcix0aGlzLHQpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmRpc3BsYXlhYmxlKCl9LGhleDpLaCxmb3JtYXRIZXg6S2gsZm9ybWF0SHNsOmZ1bmN0aW9uIGRkKCl7cmV0dXJuIGxkKHRoaXMpLmZvcm1hdEhzbCgpfSxmb3JtYXRSZ2I6WmgsdG9TdHJpbmc6Wmh9KSxSaChpZCxuZCxPaCh6aCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9CaDpNYXRoLnBvdyhCaCx0KSxuZXcgaWQodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/RGg6TWF0aC5wb3coRGgsdCksbmV3IGlkKHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybi0uNTw9dGhpcy5yJiZ0aGlzLnI8MjU1LjUmJi0uNTw9dGhpcy5nJiZ0aGlzLmc8MjU1LjUmJi0uNTw9dGhpcy5iJiZ0aGlzLmI8MjU1LjUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6cmQsZm9ybWF0SGV4OnJkLGZvcm1hdFJnYjpvZCx0b1N0cmluZzpvZH0pKSxSaCh1ZCxjZCxPaCh6aCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9CaDpNYXRoLnBvdyhCaCx0KSxuZXcgdWQodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9EaDpNYXRoLnBvdyhEaCx0KSxuZXcgdWQodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmglMzYwKzM2MCoodGhpcy5oPDApLGU9aXNOYU4odCl8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMsbj10aGlzLmwsaT1uKyhuPC41P246MS1uKSplLHI9MipuLWk7cmV0dXJuIG5ldyBpZChoZCh0Pj0yNDA/dC0yNDA6dCsxMjAscixpKSxoZCh0LHIsaSksaGQodDwxMjA/dCsyNDA6dC0xMjAscixpKSx0aGlzLm9wYWNpdHkpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sZm9ybWF0SHNsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KHQ9aXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpKT8iaHNsKCI6ImhzbGEoIikrKHRoaXMuaHx8MCkrIiwgIisxMDAqKHRoaXMuc3x8MCkrIiUsICIrMTAwKih0aGlzLmx8fDApKyIlIisoMT09PXQ/IikiOiIsICIrdCsiKSIpfX0pKTt2YXIgcGQ9TWF0aC5QSS8xODAsZmQ9MTgwL01hdGguUEksbWQ9Ljk2NDIyLGdkPS44MjUyMSxfZD00LzI5LHlkPTYvMjksdmQ9Myp5ZCp5ZDtmdW5jdGlvbiBiZCh0KXtpZih0IGluc3RhbmNlb2Ygd2QpcmV0dXJuIG5ldyB3ZCh0LmwsdC5hLHQuYix0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBrZClyZXR1cm4gTGQodCk7dCBpbnN0YW5jZW9mIGlkfHwodD1lZCh0KSk7dmFyIGUsbixpPVRkKHQucikscj1UZCh0LmcpLG89VGQodC5iKSxhPVNkKCguMjIyNTA0NSppKy43MTY4Nzg2KnIrLjA2MDYxNjkqbykvMSk7cmV0dXJuIGk9PT1yJiZyPT09bz9lPW49YTooZT1TZCgoLjQzNjA3NDcqaSsuMzg1MDY0OSpyKy4xNDMwODA0Km8pL21kKSxuPVNkKCguMDEzOTMyMippKy4wOTcxMDQ1KnIrLjcxNDE3MzMqbykvZ2QpKSxuZXcgd2QoMTE2KmEtMTYsNTAwKihlLWEpLDIwMCooYS1uKSx0Lm9wYWNpdHkpfWZ1bmN0aW9uIHhkKHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9iZCh0KTpuZXcgd2QodCxlLG4sbnVsbD09aT8xOmkpfWZ1bmN0aW9uIHdkKHQsZSxuLGkpe3RoaXMubD0rdCx0aGlzLmE9K2UsdGhpcy5iPStuLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBTZCh0KXtyZXR1cm4gdD4uMDA4ODU2NDUxNjc5MDM1NjMxP01hdGgucG93KHQsMS8zKTp0L3ZkK19kfWZ1bmN0aW9uIE1kKHQpe3JldHVybiB0PnlkP3QqdCp0OnZkKih0LV9kKX1mdW5jdGlvbiBFZCh0KXtyZXR1cm4gMjU1Kih0PD0uMDAzMTMwOD8xMi45Mip0OjEuMDU1Kk1hdGgucG93KHQsMS8yLjQpLS4wNTUpfWZ1bmN0aW9uIFRkKHQpe3JldHVybih0Lz0yNTUpPD0uMDQwNDU/dC8xMi45MjpNYXRoLnBvdygodCsuMDU1KS8xLjA1NSwyLjQpfWZ1bmN0aW9uIENkKHQpe2lmKHQgaW5zdGFuY2VvZiBrZClyZXR1cm4gbmV3IGtkKHQuaCx0LmMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIHdkfHwodD1iZCh0KSksMD09PXQuYSYmMD09PXQuYilyZXR1cm4gbmV3IGtkKE5hTiwwPHQubCYmdC5sPDEwMD8wOk5hTix0LmwsdC5vcGFjaXR5KTt2YXIgZT1NYXRoLmF0YW4yKHQuYix0LmEpKmZkO3JldHVybiBuZXcga2QoZTwwP2UrMzYwOmUsTWF0aC5zcXJ0KHQuYSp0LmErdC5iKnQuYiksdC5sLHQub3BhY2l0eSl9ZnVuY3Rpb24gQWQodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP0NkKHQpOm5ldyBrZCh0LGUsbixudWxsPT1pPzE6aSl9ZnVuY3Rpb24ga2QodCxlLG4saSl7dGhpcy5oPSt0LHRoaXMuYz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIExkKHQpe2lmKGlzTmFOKHQuaCkpcmV0dXJuIG5ldyB3ZCh0LmwsMCwwLHQub3BhY2l0eSk7dmFyIGU9dC5oKnBkO3JldHVybiBuZXcgd2QodC5sLE1hdGguY29zKGUpKnQuYyxNYXRoLnNpbihlKSp0LmMsdC5vcGFjaXR5KX1SaCh3ZCx4ZCxPaCh6aCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyB3ZCh0aGlzLmwrMTgqKG51bGw9PXQ/MTp0KSx0aGlzLmEsdGhpcy5iLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IHdkKHRoaXMubC0xOCoobnVsbD09dD8xOnQpLHRoaXMuYSx0aGlzLmIsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9KHRoaXMubCsxNikvMTE2LGU9aXNOYU4odGhpcy5hKT90OnQrdGhpcy5hLzUwMCxuPWlzTmFOKHRoaXMuYik/dDp0LXRoaXMuYi8yMDA7cmV0dXJuIG5ldyBpZChFZCgzLjEzMzg1NjEqKGU9bWQqTWQoZSkpLTEuNjE2ODY2NyoodD0xKk1kKHQpKS0uNDkwNjE0Nioobj1nZCpNZChuKSkpLEVkKC0uOTc4NzY4NCplKzEuOTE2MTQxNSp0Ky4wMzM0NTQqbiksRWQoLjA3MTk0NTMqZS0uMjI4OTkxNCp0KzEuNDA1MjQyNypuKSx0aGlzLm9wYWNpdHkpfX0pKSxSaChrZCxBZCxPaCh6aCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBrZCh0aGlzLmgsdGhpcy5jLHRoaXMubCsxOCoobnVsbD09dD8xOnQpLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGtkKHRoaXMuaCx0aGlzLmMsdGhpcy5sLTE4KihudWxsPT10PzE6dCksdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIExkKHRoaXMpLnJnYigpfX0pKTt2YXIgUGQ9LS4xNDg2MSxOZD0xLjc4Mjc3LElkPS0uMjkyMjcsUmQ9LS45MDY0OSxPZD0xLjk3Mjk0LHpkPU9kKlJkLERkPU9kKk5kLEJkPU5kKklkLVJkKlBkO2Z1bmN0aW9uIEhkKHQpe2lmKHQgaW5zdGFuY2VvZiBWZClyZXR1cm4gbmV3IFZkKHQuaCx0LnMsdC5sLHQub3BhY2l0eSk7dCBpbnN0YW5jZW9mIGlkfHwodD1lZCh0KSk7dmFyIGU9dC5nLzI1NSxuPXQuYi8yNTUsaT0oQmQqbit6ZCoodC5yLzI1NSktRGQqZSkvLTUuOTYxNTEyMjkxMixyPW4taSxvPShPZCooZS1pKS1JZCpyKS9SZCxhPU1hdGguc3FydChvKm8rcipyKS8oT2QqaSooMS1pKSkscz1hP01hdGguYXRhbjIobyxyKSpmZC0xMjA6TmFOO3JldHVybiBuZXcgVmQoczwwP3MrMzYwOnMsYSxpLHQub3BhY2l0eSl9ZnVuY3Rpb24gRmQodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP0hkKHQpOm5ldyBWZCh0LGUsbixudWxsPT1pPzE6aSl9ZnVuY3Rpb24gVmQodCxlLG4saSl7dGhpcy5oPSt0LHRoaXMucz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIFVkKHQsZSxuLGkscil7dmFyIG89dCp0LGE9byp0O3JldHVybigoMS0zKnQrMypvLWEpKmUrKDQtNipvKzMqYSkqbisoMSszKnQrMypvLTMqYSkqaSthKnIpLzZ9ZnVuY3Rpb24gamQodCl7dmFyIGU9dC5sZW5ndGgtMTtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGk9bjw9MD9uPTA6bj49MT8obj0xLGUtMSk6TWF0aC5mbG9vcihuKmUpLHI9dFtpXSxvPXRbaSsxXTtyZXR1cm4gVWQoKG4taS9lKSplLGk+MD90W2ktMV06MipyLW8scixvLGk8ZS0xP3RbaSsyXToyKm8tcil9fWZ1bmN0aW9uIEdkKHQpe3ZhciBlPXQubGVuZ3RoO3JldHVybiBmdW5jdGlvbihuKXt2YXIgaT1NYXRoLmZsb29yKCgobiU9MSk8MD8rK246bikqZSk7cmV0dXJuIFVkKChuLWkvZSkqZSx0WyhpK2UtMSklZV0sdFtpJWVdLHRbKGkrMSklZV0sdFsoaSsyKSVlXSl9fWZ1bmN0aW9uIFdkKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBxZCh0LGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdCtuKmV9fWZ1bmN0aW9uIFlkKHQsZSl7dmFyIG49ZS10O3JldHVybiBuP3FkKHQsbj4xODB8fG48LTE4MD9uLTM2MCpNYXRoLnJvdW5kKG4vMzYwKTpuKTpXZChpc05hTih0KT9lOnQpfWZ1bmN0aW9uIFhkKHQpe3JldHVybiAxPT0odD0rdCk/JGQ6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gbi1lPyhmdW5jdGlvbiBpKHQsZSxuKXtyZXR1cm4gdD1NYXRoLnBvdyh0LG4pLGU9TWF0aC5wb3coZSxuKS10LG49MS9uLGZ1bmN0aW9uKGkpe3JldHVybiBNYXRoLnBvdyh0K2kqZSxuKX19KShlLG4sdCk6V2QoaXNOYU4oZSk/bjplKX19ZnVuY3Rpb24gJGQodCxlKXt2YXIgbj1lLXQ7cmV0dXJuIG4/cWQodCxuKTpXZChpc05hTih0KT9lOnQpfVJoKFZkLEZkLE9oKHpoLHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10P0JoOk1hdGgucG93KEJoLHQpLG5ldyBWZCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10P0RoOk1hdGgucG93KERoLHQpLG5ldyBWZCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PWlzTmFOKHRoaXMuaCk/MDoodGhpcy5oKzEyMCkqcGQsZT0rdGhpcy5sLG49aXNOYU4odGhpcy5zKT8wOnRoaXMucyplKigxLWUpLGk9TWF0aC5jb3ModCkscj1NYXRoLnNpbih0KTtyZXR1cm4gbmV3IGlkKDI1NSooZStuKihQZCppK05kKnIpKSwyNTUqKGUrbiooSWQqaStSZCpyKSksMjU1KihlK24qKE9kKmkpKSx0aGlzLm9wYWNpdHkpfX0pKTt2YXIgS2Q9KGZ1bmN0aW9uIHQoZSl7dmFyIG49WGQoZSk7ZnVuY3Rpb24gaSh0LGUpe3ZhciBpPW4oKHQ9bmQodCkpLnIsKGU9bmQoZSkpLnIpLHI9bih0LmcsZS5nKSxvPW4odC5iLGUuYiksYT0kZCh0Lm9wYWNpdHksZS5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQucj1pKGUpLHQuZz1yKGUpLHQuYj1vKGUpLHQub3BhY2l0eT1hKGUpLHQrIiJ9fXJldHVybiBpLmdhbW1hPXQsaX0pKDEpO2Z1bmN0aW9uIFpkKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgbixpLHI9ZS5sZW5ndGgsbz1uZXcgQXJyYXkociksYT1uZXcgQXJyYXkocikscz1uZXcgQXJyYXkocik7Zm9yKG49MDtuPHI7KytuKWk9bmQoZVtuXSksb1tuXT1pLnJ8fDAsYVtuXT1pLmd8fDAsc1tuXT1pLmJ8fDA7cmV0dXJuIG89dChvKSxhPXQoYSkscz10KHMpLGkub3BhY2l0eT0xLGZ1bmN0aW9uKHQpe3JldHVybiBpLnI9byh0KSxpLmc9YSh0KSxpLmI9cyh0KSxpKyIifX19dmFyIEpkPVpkKGpkKSxRZD1aZChHZCk7ZnVuY3Rpb24gdHAodCxlKXtlfHwoZT1bXSk7dmFyIG4saT10P01hdGgubWluKGUubGVuZ3RoLHQubGVuZ3RoKTowLHI9ZS5zbGljZSgpO3JldHVybiBmdW5jdGlvbihvKXtmb3Iobj0wO248aTsrK24pcltuXT10W25dKigxLW8pK2Vbbl0qbztyZXR1cm4gcn19ZnVuY3Rpb24gZXAodCl7cmV0dXJuIEFycmF5QnVmZmVyLmlzVmlldyh0KSYmISh0IGluc3RhbmNlb2YgRGF0YVZpZXcpfWZ1bmN0aW9uIG5wKHQsZSl7dmFyIG4saT1lP2UubGVuZ3RoOjAscj10P01hdGgubWluKGksdC5sZW5ndGgpOjAsbz1uZXcgQXJyYXkociksYT1uZXcgQXJyYXkoaSk7Zm9yKG49MDtuPHI7KytuKW9bbl09Y3AodFtuXSxlW25dKTtmb3IoO248aTsrK24pYVtuXT1lW25dO3JldHVybiBmdW5jdGlvbih0KXtmb3Iobj0wO248cjsrK24pYVtuXT1vW25dKHQpO3JldHVybiBhfX1mdW5jdGlvbiBpcCh0LGUpe3ZhciBuPW5ldyBEYXRlO3JldHVybiB0PSt0LGU9K2UsZnVuY3Rpb24oaSl7cmV0dXJuIG4uc2V0VGltZSh0KigxLWkpK2UqaSksbn19ZnVuY3Rpb24gcnAodCxlKXtyZXR1cm4gdD0rdCxlPStlLGZ1bmN0aW9uKG4pe3JldHVybiB0KigxLW4pK2Uqbn19ZnVuY3Rpb24gb3AodCxlKXt2YXIgbixpPXt9LHI9e307Zm9yKG4gaW4gbnVsbCE9PXQmJiJvYmplY3QiPT10eXBlb2YgdHx8KHQ9e30pLG51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGV8fChlPXt9KSxlKW4gaW4gdD9pW25dPWNwKHRbbl0sZVtuXSk6cltuXT1lW25dO3JldHVybiBmdW5jdGlvbih0KXtmb3IobiBpbiBpKXJbbl09aVtuXSh0KTtyZXR1cm4gcn19dmFyIGFwPS9bLStdPyg/OlxkK1wuP1xkKnxcLj9cZCspKD86W2VFXVstK10/XGQrKT8vZyxzcD1uZXcgUmVnRXhwKGFwLnNvdXJjZSwiZyIpO2Z1bmN0aW9uIGxwKHQsZSl7dmFyIG4saSxyLG89YXAubGFzdEluZGV4PXNwLmxhc3RJbmRleD0wLGE9LTEscz1bXSxsPVtdO2Zvcih0Kz0iIixlKz0iIjsobj1hcC5leGVjKHQpKSYmKGk9c3AuZXhlYyhlKSk7KShyPWkuaW5kZXgpPm8mJihyPWUuc2xpY2UobyxyKSxzW2FdP3NbYV0rPXI6c1srK2FdPXIpLChuPW5bMF0pPT09KGk9aVswXSk/c1thXT9zW2FdKz1pOnNbKythXT1pOihzWysrYV09bnVsbCxsLnB1c2goe2k6YSx4OnJwKG4saSl9KSksbz1zcC5sYXN0SW5kZXg7cmV0dXJuIG88ZS5sZW5ndGgmJihyPWUuc2xpY2Uobyksc1thXT9zW2FdKz1yOnNbKythXT1yKSxzLmxlbmd0aDwyP2xbMF0/KGZ1bmN0aW9uIGModCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0KGUpKyIifX0pKGxbMF0ueCk6KGZ1bmN0aW9uIHUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fSkoZSk6KGU9bC5sZW5ndGgsZnVuY3Rpb24odCl7Zm9yKHZhciBuLGk9MDtpPGU7KytpKXNbKG49bFtpXSkuaV09bi54KHQpO3JldHVybiBzLmpvaW4oIiIpfSl9ZnVuY3Rpb24gY3AodCxlKXt2YXIgbixpPXR5cGVvZiBlO3JldHVybiBudWxsPT1lfHwiYm9vbGVhbiI9PT1pP1dkKGUpOigibnVtYmVyIj09PWk/cnA6InN0cmluZyI9PT1pPyhuPUpoKGUpKT8oZT1uLEtkKTpscDplIGluc3RhbmNlb2YgSmg/S2Q6ZSBpbnN0YW5jZW9mIERhdGU/aXA6ZXAoZSk/dHA6QXJyYXkuaXNBcnJheShlKT9ucDoiZnVuY3Rpb24iIT10eXBlb2YgZS52YWx1ZU9mJiYiZnVuY3Rpb24iIT10eXBlb2YgZS50b1N0cmluZ3x8aXNOYU4oZSk/b3A6cnApKHQsZSl9ZnVuY3Rpb24gdXAodCxlKXtyZXR1cm4gdD0rdCxlPStlLGZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLnJvdW5kKHQqKDEtbikrZSpuKX19dmFyIGhwLGRwLHBwLGZwLG1wPTE4MC9NYXRoLlBJLGdwPXt0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowLHJvdGF0ZTowLHNrZXdYOjAsc2NhbGVYOjEsc2NhbGVZOjF9O2Z1bmN0aW9uIF9wKHQsZSxuLGkscixvKXt2YXIgYSxzLGw7cmV0dXJuKGE9TWF0aC5zcXJ0KHQqdCtlKmUpKSYmKHQvPWEsZS89YSksKGw9dCpuK2UqaSkmJihuLT10KmwsaS09ZSpsKSwocz1NYXRoLnNxcnQobipuK2kqaSkpJiYobi89cyxpLz1zLGwvPXMpLHQqaTxlKm4mJih0PS10LGU9LWUsbD0tbCxhPS1hKSx7dHJhbnNsYXRlWDpyLHRyYW5zbGF0ZVk6byxyb3RhdGU6TWF0aC5hdGFuMihlLHQpKm1wLHNrZXdYOk1hdGguYXRhbihsKSptcCxzY2FsZVg6YSxzY2FsZVk6c319ZnVuY3Rpb24geXAodCxlLG4saSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gdC5sZW5ndGg/dC5wb3AoKSsiICI6IiJ9cmV0dXJuIGZ1bmN0aW9uKG8sYSl7dmFyIHM9W10sbD1bXTtyZXR1cm4gbz10KG8pLGE9dChhKSwoZnVuY3Rpb24gYyh0LGkscixvLGEscyl7aWYodCE9PXJ8fGkhPT1vKXt2YXIgbD1hLnB1c2goInRyYW5zbGF0ZSgiLG51bGwsZSxudWxsLG4pO3MucHVzaCh7aTpsLTQseDpycCh0LHIpfSx7aTpsLTIseDpycChpLG8pfSl9ZWxzZShyfHxvKSYmYS5wdXNoKCJ0cmFuc2xhdGUoIityK2UrbytuKX0pKG8udHJhbnNsYXRlWCxvLnRyYW5zbGF0ZVksYS50cmFuc2xhdGVYLGEudHJhbnNsYXRlWSxzLGwpLChmdW5jdGlvbiB1KHQsZSxuLG8pe3QhPT1lPyh0LWU+MTgwP2UrPTM2MDplLXQ+MTgwJiYodCs9MzYwKSxvLnB1c2goe2k6bi5wdXNoKHIobikrInJvdGF0ZSgiLG51bGwsaSktMix4OnJwKHQsZSl9KSk6ZSYmbi5wdXNoKHIobikrInJvdGF0ZSgiK2UraSl9KShvLnJvdGF0ZSxhLnJvdGF0ZSxzLGwpLChmdW5jdGlvbiBoKHQsZSxuLG8pe3QhPT1lP28ucHVzaCh7aTpuLnB1c2gocihuKSsic2tld1goIixudWxsLGkpLTIseDpycCh0LGUpfSk6ZSYmbi5wdXNoKHIobikrInNrZXdYKCIrZStpKX0pKG8uc2tld1gsYS5za2V3WCxzLGwpLChmdW5jdGlvbiBkKHQsZSxuLGksbyxhKXtpZih0IT09bnx8ZSE9PWkpe3ZhciBzPW8ucHVzaChyKG8pKyJzY2FsZSgiLG51bGwsIiwiLG51bGwsIikiKTthLnB1c2goe2k6cy00LHg6cnAodCxuKX0se2k6cy0yLHg6cnAoZSxpKX0pfWVsc2UgMT09PW4mJjE9PT1pfHxvLnB1c2gocihvKSsic2NhbGUoIituKyIsIitpKyIpIil9KShvLnNjYWxlWCxvLnNjYWxlWSxhLnNjYWxlWCxhLnNjYWxlWSxzLGwpLG89YT1udWxsLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPS0xLGk9bC5sZW5ndGg7KytuPGk7KXNbKGU9bFtuXSkuaV09ZS54KHQpO3JldHVybiBzLmpvaW4oIiIpfX19dmFyIHZwPXlwKChmdW5jdGlvbiBicCh0KXtyZXR1cm4ibm9uZSI9PT10P2dwOihocHx8KGhwPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpLGRwPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxwcD1kb2N1bWVudC5kZWZhdWx0VmlldyksaHAuc3R5bGUudHJhbnNmb3JtPXQsdD1wcC5nZXRDb21wdXRlZFN0eWxlKGRwLmFwcGVuZENoaWxkKGhwKSxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ0cmFuc2Zvcm0iKSxkcC5yZW1vdmVDaGlsZChocCksX3AoKyh0PXQuc2xpY2UoNywtMSkuc3BsaXQoIiwiKSlbMF0sK3RbMV0sK3RbMl0sK3RbM10sK3RbNF0sK3RbNV0pKX0pLCJweCwgIiwicHgpIiwiZGVnKSIpLHhwPXlwKChmdW5jdGlvbiB3cCh0KXtyZXR1cm4gbnVsbD09dD9ncDooZnB8fChmcD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZyIpKSxmcC5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsdCksKHQ9ZnAudHJhbnNmb3JtLmJhc2VWYWwuY29uc29saWRhdGUoKSk/X3AoKHQ9dC5tYXRyaXgpLmEsdC5iLHQuYyx0LmQsdC5lLHQuZik6Z3ApfSksIiwgIiwiKSIsIikiKSxTcD1NYXRoLlNRUlQyO2Z1bmN0aW9uIE1wKHQpe3JldHVybigodD1NYXRoLmV4cCh0KSkrMS90KS8yfWZ1bmN0aW9uIEVwKHQsZSl7dmFyIG4saSxyPXRbMF0sbz10WzFdLGE9dFsyXSxzPWVbMl0sbD1lWzBdLXIsYz1lWzFdLW8sdT1sKmwrYypjO2lmKHU8MWUtMTIpaT1NYXRoLmxvZyhzL2EpL1NwLG49ZnVuY3Rpb24odCl7cmV0dXJuW3IrdCpsLG8rdCpjLGEqTWF0aC5leHAoU3AqdCppKV19O2Vsc2V7dmFyIGg9TWF0aC5zcXJ0KHUpLGQ9KHMqcy1hKmErNCp1KS8oMiphKjIqaCkscD0ocypzLWEqYS00KnUpLygyKnMqMipoKSxmPU1hdGgubG9nKE1hdGguc3FydChkKmQrMSktZCksbT1NYXRoLmxvZyhNYXRoLnNxcnQocCpwKzEpLXApO2k9KG0tZikvU3Asbj1mdW5jdGlvbih0KXt2YXIgZT10Kmksbj1NcChmKSxzPWEvKDIqaCkqKG4qKGZ1bmN0aW9uIHUodCl7cmV0dXJuKCh0PU1hdGguZXhwKDIqdCkpLTEpLyh0KzEpfSkoU3AqZStmKS0oZnVuY3Rpb24gZCh0KXtyZXR1cm4oKHQ9TWF0aC5leHAodCkpLTEvdCkvMn0pKGYpKTtyZXR1cm5bcitzKmwsbytzKmMsYSpuL01wKFNwKmUrZildfX1yZXR1cm4gbi5kdXJhdGlvbj0xZTMqaSxufWZ1bmN0aW9uIFRwKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZhciBpPXQoKGU9Y2QoZSkpLmgsKG49Y2QobikpLmgpLHI9JGQoZS5zLG4ucyksbz0kZChlLmwsbi5sKSxhPSRkKGUub3BhY2l0eSxuLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5oPWkodCksZS5zPXIodCksZS5sPW8odCksZS5vcGFjaXR5PWEodCksZSsiIn19fXZhciBDcD1UcChZZCksQXA9VHAoJGQpO2Z1bmN0aW9uIGtwKHQsZSl7dmFyIG49JGQoKHQ9eGQodCkpLmwsKGU9eGQoZSkpLmwpLGk9JGQodC5hLGUuYSkscj0kZCh0LmIsZS5iKSxvPSRkKHQub3BhY2l0eSxlLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5sPW4oZSksdC5hPWkoZSksdC5iPXIoZSksdC5vcGFjaXR5PW8oZSksdCsiIn19ZnVuY3Rpb24gTHAodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIGk9dCgoZT1BZChlKSkuaCwobj1BZChuKSkuaCkscj0kZChlLmMsbi5jKSxvPSRkKGUubCxuLmwpLGE9JGQoZS5vcGFjaXR5LG4ub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmg9aSh0KSxlLmM9cih0KSxlLmw9byh0KSxlLm9wYWNpdHk9YSh0KSxlKyIifX19dmFyIFBwPUxwKFlkKSxOcD1McCgkZCk7ZnVuY3Rpb24gSXAodCl7cmV0dXJuKGZ1bmN0aW9uIGUobil7ZnVuY3Rpb24gaShlLGkpe3ZhciByPXQoKGU9RmQoZSkpLmgsKGk9RmQoaSkpLmgpLG89JGQoZS5zLGkucyksYT0kZChlLmwsaS5sKSxzPSRkKGUub3BhY2l0eSxpLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5oPXIodCksZS5zPW8odCksZS5sPWEoTWF0aC5wb3codCxuKSksZS5vcGFjaXR5PXModCksZSsiIn19cmV0dXJuIG49K24saS5nYW1tYT1lLGl9KSgxKX12YXIgUnA9SXAoWWQpLE9wPUlwKCRkKTt2YXIgenAsRHAsQnA9MCxIcD0wLEZwPTAsVnA9MCxVcD0wLGpwPTAsR3A9Im9iamVjdCI9PXR5cGVvZiBwZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlOkRhdGUsV3A9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6ZnVuY3Rpb24odCl7c2V0VGltZW91dCh0LDE3KX07ZnVuY3Rpb24gcXAoKXtyZXR1cm4gVXB8fChXcChZcCksVXA9R3Aubm93KCkranApfWZ1bmN0aW9uIFlwKCl7VXA9MH1mdW5jdGlvbiBYcCgpe3RoaXMuX2NhbGw9dGhpcy5fdGltZT10aGlzLl9uZXh0PW51bGx9ZnVuY3Rpb24gJHAodCxlLG4pe3ZhciBpPW5ldyBYcDtyZXR1cm4gaS5yZXN0YXJ0KHQsZSxuKSxpfWZ1bmN0aW9uIEtwKCl7cXAoKSwrK0JwO2Zvcih2YXIgdCxlPXpwO2U7KSh0PVVwLWUuX3RpbWUpPj0wJiZlLl9jYWxsLmNhbGwobnVsbCx0KSxlPWUuX25leHQ7LS1CcH1mdW5jdGlvbiBacCgpe1VwPShWcD1HcC5ub3coKSkranAsQnA9SHA9MDt0cnl7S3AoKX1maW5hbGx5e0JwPTAsKGZ1bmN0aW9uIHQoKXt2YXIgdCxlLG49enAsaT0xLzA7Zm9yKDtuOyluLl9jYWxsPyhpPm4uX3RpbWUmJihpPW4uX3RpbWUpLHQ9bixuPW4uX25leHQpOihlPW4uX25leHQsbi5fbmV4dD1udWxsLG49dD90Ll9uZXh0PWU6enA9ZSk7RHA9dCxRcChpKX0pKCksVXA9MH19ZnVuY3Rpb24gSnAoKXt2YXIgdD1HcC5ub3coKSxlPXQtVnA7ZT4xZTMmJihqcC09ZSxWcD10KX1mdW5jdGlvbiBRcCh0KXtCcHx8KEhwJiYoSHA9Y2xlYXJUaW1lb3V0KEhwKSksdC1VcD4yND8odDwxLzAmJihIcD1zZXRUaW1lb3V0KFpwLHQtR3Aubm93KCktanApKSxGcCYmKEZwPWNsZWFySW50ZXJ2YWwoRnApKSk6KEZwfHwoVnA9R3Aubm93KCksRnA9c2V0SW50ZXJ2YWwoSnAsMWUzKSksQnA9MSxXcChacCkpKX1mdW5jdGlvbiB0Zih0LGUsbil7dmFyIGk9bmV3IFhwO3JldHVybiBpLnJlc3RhcnQoKGZ1bmN0aW9uKG4pe2kuc3RvcCgpLHQobitlKX0pLGU9bnVsbD09ZT8wOitlLG4pLGl9WHAucHJvdG90eXBlPSRwLnByb3RvdHlwZT17Y29uc3RydWN0b3I6WHAscmVzdGFydDpmdW5jdGlvbih0LGUsbil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiY2FsbGJhY2sgaXMgbm90IGEgZnVuY3Rpb24iKTtuPShudWxsPT1uP3FwKCk6K24pKyhudWxsPT1lPzA6K2UpLHRoaXMuX25leHR8fERwPT09dGhpc3x8KERwP0RwLl9uZXh0PXRoaXM6enA9dGhpcyxEcD10aGlzKSx0aGlzLl9jYWxsPXQsdGhpcy5fdGltZT1uLFFwKCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLl9jYWxsJiYodGhpcy5fY2FsbD1udWxsLHRoaXMuX3RpbWU9MS8wLFFwKCkpfX07dmFyIGVmPXdjKCJzdGFydCIsImVuZCIsImNhbmNlbCIsImludGVycnVwdCIpLG5mPVtdO2Z1bmN0aW9uIHJmKHQsZSxuLGkscixvKXt2YXIgYT10Ll9fdHJhbnNpdGlvbjtpZihhKXtpZihuIGluIGEpcmV0dXJufWVsc2UgdC5fX3RyYW5zaXRpb249e307IShmdW5jdGlvbiBzKHQsZSxuKXt2YXIgaSxyPXQuX190cmFuc2l0aW9uO2Z1bmN0aW9uIG8odCl7bi5zdGF0ZT0xLG4udGltZXIucmVzdGFydChhLG4uZGVsYXksbi50aW1lKSxuLmRlbGF5PD10JiZhKHQtbi5kZWxheSl9ZnVuY3Rpb24gYShvKXt2YXIgYyx1LGgsZDtpZigxIT09bi5zdGF0ZSlyZXR1cm4gbCgpO2ZvcihjIGluIHIpaWYoKGQ9cltjXSkubmFtZT09PW4ubmFtZSl7aWYoMz09PWQuc3RhdGUpcmV0dXJuIHRmKGEpOzQ9PT1kLnN0YXRlPyhkLnN0YXRlPTYsZC50aW1lci5zdG9wKCksZC5vbi5jYWxsKCJpbnRlcnJ1cHQiLHQsdC5fX2RhdGFfXyxkLmluZGV4LGQuZ3JvdXApLGRlbGV0ZSByW2NdKTorYzxlJiYoZC5zdGF0ZT02LGQudGltZXIuc3RvcCgpLGQub24uY2FsbCgiY2FuY2VsIix0LHQuX19kYXRhX18sZC5pbmRleCxkLmdyb3VwKSxkZWxldGUgcltjXSl9aWYodGYoKGZ1bmN0aW9uKCl7Mz09PW4uc3RhdGUmJihuLnN0YXRlPTQsbi50aW1lci5yZXN0YXJ0KHMsbi5kZWxheSxuLnRpbWUpLHMobykpfSkpLG4uc3RhdGU9MixuLm9uLmNhbGwoInN0YXJ0Iix0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSwyPT09bi5zdGF0ZSl7Zm9yKG4uc3RhdGU9MyxpPW5ldyBBcnJheShoPW4udHdlZW4ubGVuZ3RoKSxjPTAsdT0tMTtjPGg7KytjKShkPW4udHdlZW5bY10udmFsdWUuY2FsbCh0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSkmJihpWysrdV09ZCk7aS5sZW5ndGg9dSsxfX1mdW5jdGlvbiBzKGUpe2Zvcih2YXIgcj1lPG4uZHVyYXRpb24/bi5lYXNlLmNhbGwobnVsbCxlL24uZHVyYXRpb24pOihuLnRpbWVyLnJlc3RhcnQobCksbi5zdGF0ZT01LDEpLG89LTEsYT1pLmxlbmd0aDsrK288YTspaVtvXS5jYWxsKHQscik7NT09PW4uc3RhdGUmJihuLm9uLmNhbGwoImVuZCIsdCx0Ll9fZGF0YV9fLG4uaW5kZXgsbi5ncm91cCksbCgpKX1mdW5jdGlvbiBsKCl7Zm9yKHZhciBpIGluIG4uc3RhdGU9NixuLnRpbWVyLnN0b3AoKSxkZWxldGUgcltlXSxyKXJldHVybjtkZWxldGUgdC5fX3RyYW5zaXRpb259cltlXT1uLG4udGltZXI9JHAobywwLG4udGltZSl9KSh0LG4se25hbWU6ZSxpbmRleDppLGdyb3VwOnIsb246ZWYsdHdlZW46bmYsdGltZTpvLnRpbWUsZGVsYXk6by5kZWxheSxkdXJhdGlvbjpvLmR1cmF0aW9uLGVhc2U6by5lYXNlLHRpbWVyOm51bGwsc3RhdGU6MH0pfWZ1bmN0aW9uIG9mKHQsZSl7dmFyIG49c2YodCxlKTtpZihuLnN0YXRlPjApdGhyb3cgbmV3IEVycm9yKCJ0b28gbGF0ZTsgYWxyZWFkeSBzY2hlZHVsZWQiKTtyZXR1cm4gbn1mdW5jdGlvbiBhZih0LGUpe3ZhciBuPXNmKHQsZSk7aWYobi5zdGF0ZT4zKXRocm93IG5ldyBFcnJvcigidG9vIGxhdGU7IGFscmVhZHkgcnVubmluZyIpO3JldHVybiBufWZ1bmN0aW9uIHNmKHQsZSl7dmFyIG49dC5fX3RyYW5zaXRpb247aWYoIW58fCEobj1uW2VdKSl0aHJvdyBuZXcgRXJyb3IoInRyYW5zaXRpb24gbm90IGZvdW5kIik7cmV0dXJuIG59ZnVuY3Rpb24gbGYodCxlKXt2YXIgbixpLHIsbz10Ll9fdHJhbnNpdGlvbixhPSEwO2lmKG8pe2ZvcihyIGluIGU9bnVsbD09ZT9udWxsOmUrIiIsbykobj1vW3JdKS5uYW1lPT09ZT8oaT1uLnN0YXRlPjImJm4uc3RhdGU8NSxuLnN0YXRlPTYsbi50aW1lci5zdG9wKCksbi5vbi5jYWxsKGk/ImludGVycnVwdCI6ImNhbmNlbCIsdCx0Ll9fZGF0YV9fLG4uaW5kZXgsbi5ncm91cCksZGVsZXRlIG9bcl0pOmE9ITE7YSYmZGVsZXRlIHQuX190cmFuc2l0aW9ufX1mdW5jdGlvbiBjZih0LGUpe3ZhciBuLGk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9YWYodGhpcyx0KSxvPXIudHdlZW47aWYobyE9PW4pZm9yKHZhciBhPTAscz0oaT1uPW8pLmxlbmd0aDthPHM7KythKWlmKGlbYV0ubmFtZT09PWUpeyhpPWkuc2xpY2UoKSkuc3BsaWNlKGEsMSk7YnJlYWt9ci50d2Vlbj1pfX1mdW5jdGlvbiB1Zih0LGUsbil7dmFyIGkscjtpZigiZnVuY3Rpb24iIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89YWYodGhpcyx0KSxhPW8udHdlZW47aWYoYSE9PWkpe3I9KGk9YSkuc2xpY2UoKTtmb3IodmFyIHM9e25hbWU6ZSx2YWx1ZTpufSxsPTAsYz1yLmxlbmd0aDtsPGM7KytsKWlmKHJbbF0ubmFtZT09PWUpe3JbbF09czticmVha31sPT09YyYmci5wdXNoKHMpfW8udHdlZW49cn19ZnVuY3Rpb24gaGYodCxlLG4pe3ZhciBpPXQuX2lkO3JldHVybiB0LmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9YWYodGhpcyxpKTsodC52YWx1ZXx8KHQudmFsdWU9e30pKVtlXT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pKSxmdW5jdGlvbih0KXtyZXR1cm4gc2YodCxpKS52YWx1ZVtlXX19ZnVuY3Rpb24gZGYodCxlKXt2YXIgbjtyZXR1cm4oIm51bWJlciI9PXR5cGVvZiBlP3JwOmUgaW5zdGFuY2VvZiBKaD9LZDoobj1KaChlKSk/KGU9bixLZCk6bHApKHQsZSl9ZnVuY3Rpb24gcGYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fWZ1bmN0aW9uIGZmKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19ZnVuY3Rpb24gbWYodCxlLG4pe3ZhciBpLHIsbz1uKyIiO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPXRoaXMuZ2V0QXR0cmlidXRlKHQpO3JldHVybiBhPT09bz9udWxsOmE9PT1pP3I6cj1lKGk9YSxuKX19ZnVuY3Rpb24gZ2YodCxlLG4pe3ZhciBpLHIsbz1uKyIiO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPXRoaXMuZ2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKTtyZXR1cm4gYT09PW8/bnVsbDphPT09aT9yOnI9ZShpPWEsbil9fWZ1bmN0aW9uIF9mKHQsZSxuKXt2YXIgaSxyLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGEscyxsPW4odGhpcyk7aWYobnVsbCE9bClyZXR1cm4oYT10aGlzLmdldEF0dHJpYnV0ZSh0KSk9PT0ocz1sKyIiKT9udWxsOmE9PT1pJiZzPT09cj9vOihyPXMsbz1lKGk9YSxsKSk7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fWZ1bmN0aW9uIHlmKHQsZSxuKXt2YXIgaSxyLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGEscyxsPW4odGhpcyk7aWYobnVsbCE9bClyZXR1cm4oYT10aGlzLmdldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCkpPT09KHM9bCsiIik/bnVsbDphPT09aSYmcz09PXI/bzoocj1zLG89ZShpPWEsbCkpO3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19ZnVuY3Rpb24gdmYodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dGhpcy5zZXRBdHRyaWJ1dGUodCxlLmNhbGwodGhpcyxuKSl9fWZ1bmN0aW9uIGJmKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3RoaXMuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLGUuY2FsbCh0aGlzLG4pKX19ZnVuY3Rpb24geGYodCxlKXt2YXIgbixpO2Z1bmN0aW9uIHIoKXt2YXIgcj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gciE9PWkmJihuPShpPXIpJiZiZih0LHIpKSxufXJldHVybiByLl92YWx1ZT1lLHJ9ZnVuY3Rpb24gd2YodCxlKXt2YXIgbixpO2Z1bmN0aW9uIHIoKXt2YXIgcj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gciE9PWkmJihuPShpPXIpJiZ2Zih0LHIpKSxufXJldHVybiByLl92YWx1ZT1lLHJ9ZnVuY3Rpb24gU2YodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtvZih0aGlzLHQpLmRlbGF5PStlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gTWYodCxlKXtyZXR1cm4gZT0rZSxmdW5jdGlvbigpe29mKHRoaXMsdCkuZGVsYXk9ZX19ZnVuY3Rpb24gRWYodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXthZih0aGlzLHQpLmR1cmF0aW9uPStlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gVGYodCxlKXtyZXR1cm4gZT0rZSxmdW5jdGlvbigpe2FmKHRoaXMsdCkuZHVyYXRpb249ZX19ZnVuY3Rpb24gQ2YodCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7YWYodGhpcyx0KS5lYXNlPWV9fWZ1bmN0aW9uIEFmKHQsZSxuKXt2YXIgaSxyLG89KGZ1bmN0aW9uIGEodCl7cmV0dXJuKHQrIiIpLnRyaW0oKS5zcGxpdCgvXnxccysvKS5ldmVyeSgoZnVuY3Rpb24odCl7dmFyIGU9dC5pbmRleE9mKCIuIik7cmV0dXJuIGU+PTAmJih0PXQuc2xpY2UoMCxlKSksIXR8fCJzdGFydCI9PT10fSkpfSkoZSk/b2Y6YWY7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9byh0aGlzLHQpLHM9YS5vbjtzIT09aSYmKHI9KGk9cykuY29weSgpKS5vbihlLG4pLGEub249cn19dmFyIGtmPXp1LnByb3RvdHlwZS5jb25zdHJ1Y3RvcjtmdW5jdGlvbiBMZih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpfX1mdW5jdGlvbiBQZih0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKGkpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxlLmNhbGwodGhpcyxpKSxuKX19ZnVuY3Rpb24gTmYodCxlLG4pe3ZhciBpLHI7ZnVuY3Rpb24gbygpe3ZhciBvPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBvIT09ciYmKGk9KHI9bykmJlBmKHQsbyxuKSksaX1yZXR1cm4gby5fdmFsdWU9ZSxvfWZ1bmN0aW9uIElmKHQpe3JldHVybiBmdW5jdGlvbihlKXt0aGlzLnRleHRDb250ZW50PXQuY2FsbCh0aGlzLGUpfX1mdW5jdGlvbiBSZih0KXt2YXIgZSxuO2Z1bmN0aW9uIGkoKXt2YXIgaT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gaSE9PW4mJihlPShuPWkpJiZJZihpKSksZX1yZXR1cm4gaS5fdmFsdWU9dCxpfXZhciBPZj0wO2Z1bmN0aW9uIHpmKHQsZSxuLGkpe3RoaXMuX2dyb3Vwcz10LHRoaXMuX3BhcmVudHM9ZSx0aGlzLl9uYW1lPW4sdGhpcy5faWQ9aX1mdW5jdGlvbiBEZih0KXtyZXR1cm4genUoKS50cmFuc2l0aW9uKHQpfWZ1bmN0aW9uIEJmKCl7cmV0dXJuKytPZn12YXIgSGY9enUucHJvdG90eXBlO2Z1bmN0aW9uIEZmKHQpe3JldHVybit0fWZ1bmN0aW9uIFZmKHQpe3JldHVybiB0KnR9ZnVuY3Rpb24gVWYodCl7cmV0dXJuIHQqKDItdCl9ZnVuY3Rpb24gamYodCl7cmV0dXJuKCh0Kj0yKTw9MT90KnQ6LS10KigyLXQpKzEpLzJ9ZnVuY3Rpb24gR2YodCl7cmV0dXJuIHQqdCp0fWZ1bmN0aW9uIFdmKHQpe3JldHVybi0tdCp0KnQrMX1mdW5jdGlvbiBxZih0KXtyZXR1cm4oKHQqPTIpPD0xP3QqdCp0Oih0LT0yKSp0KnQrMikvMn16Zi5wcm90b3R5cGU9RGYucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp6ZixzZWxlY3Q6ZnVuY3Rpb24gWWYodCl7dmFyIGU9dGhpcy5fbmFtZSxuPXRoaXMuX2lkOyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1SYyh0KSk7Zm9yKHZhciBpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89bmV3IEFycmF5KHIpLGE9MDthPHI7KythKWZvcih2YXIgcyxsLGM9aVthXSx1PWMubGVuZ3RoLGg9b1thXT1uZXcgQXJyYXkodSksZD0wO2Q8dTsrK2QpKHM9Y1tkXSkmJihsPXQuY2FsbChzLHMuX19kYXRhX18sZCxjKSkmJigiX19kYXRhX18iaW4gcyYmKGwuX19kYXRhX189cy5fX2RhdGFfXyksaFtkXT1sLHJmKGhbZF0sZSxuLGQsaCxzZihzLG4pKSk7cmV0dXJuIG5ldyB6ZihvLHRoaXMuX3BhcmVudHMsZSxuKX0sc2VsZWN0QWxsOmZ1bmN0aW9uIFhmKHQpe3ZhciBlPXRoaXMuX25hbWUsbj10aGlzLl9pZDsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9emModCkpO2Zvcih2YXIgaT10aGlzLl9ncm91cHMscj1pLmxlbmd0aCxvPVtdLGE9W10scz0wO3M8cjsrK3MpZm9yKHZhciBsLGM9aVtzXSx1PWMubGVuZ3RoLGg9MDtoPHU7KytoKWlmKGw9Y1toXSl7Zm9yKHZhciBkLHA9dC5jYWxsKGwsbC5fX2RhdGFfXyxoLGMpLGY9c2YobCxuKSxtPTAsZz1wLmxlbmd0aDttPGc7KyttKShkPXBbbV0pJiZyZihkLGUsbixtLHAsZik7by5wdXNoKHApLGEucHVzaChsKX1yZXR1cm4gbmV3IHpmKG8sYSxlLG4pfSxmaWx0ZXI6ZnVuY3Rpb24gJGYodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PURjKHQpKTtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49ZS5sZW5ndGgsaT1uZXcgQXJyYXkobikscj0wO3I8bjsrK3IpZm9yKHZhciBvLGE9ZVtyXSxzPWEubGVuZ3RoLGw9aVtyXT1bXSxjPTA7YzxzOysrYykobz1hW2NdKSYmdC5jYWxsKG8sby5fX2RhdGFfXyxjLGEpJiZsLnB1c2gobyk7cmV0dXJuIG5ldyB6ZihpLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9LG1lcmdlOmZ1bmN0aW9uIEtmKHQpe2lmKHQuX2lkIT09dGhpcy5faWQpdGhyb3cgbmV3IEVycm9yO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj10Ll9ncm91cHMsaT1lLmxlbmd0aCxyPU1hdGgubWluKGksbi5sZW5ndGgpLG89bmV3IEFycmF5KGkpLGE9MDthPHI7KythKWZvcih2YXIgcyxsPWVbYV0sYz1uW2FdLHU9bC5sZW5ndGgsaD1vW2FdPW5ldyBBcnJheSh1KSxkPTA7ZDx1OysrZCkocz1sW2RdfHxjW2RdKSYmKGhbZF09cyk7Zm9yKDthPGk7KythKW9bYV09ZVthXTtyZXR1cm4gbmV3IHpmKG8sdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sc2VsZWN0aW9uOmZ1bmN0aW9uIFpmKCl7cmV0dXJuIG5ldyBrZih0aGlzLl9ncm91cHMsdGhpcy5fcGFyZW50cyl9LHRyYW5zaXRpb246ZnVuY3Rpb24gSmYoKXtmb3IodmFyIHQ9dGhpcy5fbmFtZSxlPXRoaXMuX2lkLG49QmYoKSxpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89MDtvPHI7KytvKWZvcih2YXIgYSxzPWlbb10sbD1zLmxlbmd0aCxjPTA7YzxsOysrYylpZihhPXNbY10pe3ZhciB1PXNmKGEsZSk7cmYoYSx0LG4sYyxzLHt0aW1lOnUudGltZSt1LmRlbGF5K3UuZHVyYXRpb24sZGVsYXk6MCxkdXJhdGlvbjp1LmR1cmF0aW9uLGVhc2U6dS5lYXNlfSl9cmV0dXJuIG5ldyB6ZihpLHRoaXMuX3BhcmVudHMsdCxuKX0sY2FsbDpIZi5jYWxsLG5vZGVzOkhmLm5vZGVzLG5vZGU6SGYubm9kZSxzaXplOkhmLnNpemUsZW1wdHk6SGYuZW1wdHksZWFjaDpIZi5lYWNoLG9uOmZ1bmN0aW9uIFFmKHQsZSl7dmFyIG49dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9zZih0aGlzLm5vZGUoKSxuKS5vbi5vbih0KTp0aGlzLmVhY2goQWYobix0LGUpKX0sYXR0cjpmdW5jdGlvbiB0bSh0LGUpe3ZhciBuPWtjKHQpLGk9InRyYW5zZm9ybSI9PT1uP3hwOmRmO3JldHVybiB0aGlzLmF0dHJUd2Vlbih0LCJmdW5jdGlvbiI9PXR5cGVvZiBlPyhuLmxvY2FsP3lmOl9mKShuLGksaGYodGhpcywiYXR0ci4iK3QsZSkpOm51bGw9PWU/KG4ubG9jYWw/ZmY6cGYpKG4pOihuLmxvY2FsP2dmOm1mKShuLGksZSkpfSxhdHRyVHdlZW46ZnVuY3Rpb24gZW0odCxlKXt2YXIgbj0iYXR0ci4iK3Q7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybihuPXRoaXMudHdlZW4obikpJiZuLl92YWx1ZTtpZihudWxsPT1lKXJldHVybiB0aGlzLnR3ZWVuKG4sbnVsbCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yO3ZhciBpPWtjKHQpO3JldHVybiB0aGlzLnR3ZWVuKG4sKGkubG9jYWw/eGY6d2YpKGksZSkpfSxzdHlsZTpmdW5jdGlvbiBubSh0LGUsbil7dmFyIGk9InRyYW5zZm9ybSI9PSh0Kz0iIik/dnA6ZGY7cmV0dXJuIG51bGw9PWU/dGhpcy5zdHlsZVR3ZWVuKHQsKGZ1bmN0aW9uIHIodCxlKXt2YXIgbixpLHI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89UWModGhpcyx0KSxhPSh0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpLFFjKHRoaXMsdCkpO3JldHVybiBvPT09YT9udWxsOm89PT1uJiZhPT09aT9yOnI9ZShuPW8saT1hKX19KSh0LGkpKS5vbigiZW5kLnN0eWxlLiIrdCxMZih0KSk6ImZ1bmN0aW9uIj09dHlwZW9mIGU/dGhpcy5zdHlsZVR3ZWVuKHQsKGZ1bmN0aW9uIGEodCxlLG4pe3ZhciBpLHIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1RYyh0aGlzLHQpLHM9bih0aGlzKSxsPXMrIiI7cmV0dXJuIG51bGw9PXMmJih0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpLGw9cz1RYyh0aGlzLHQpKSxhPT09bD9udWxsOmE9PT1pJiZsPT09cj9vOihyPWwsbz1lKGk9YSxzKSl9fSkodCxpLGhmKHRoaXMsInN0eWxlLiIrdCxlKSkpLmVhY2goKGZ1bmN0aW9uIG8odCxlKXt2YXIgbixpLHIsbyxhPSJzdHlsZS4iK2Uscz0iZW5kLiIrYTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbD1hZih0aGlzLHQpLGM9bC5vbix1PW51bGw9PWwudmFsdWVbYV0/b3x8KG89TGYoZSkpOnZvaWQgMDtjPT09biYmcj09PXV8fChpPShuPWMpLmNvcHkoKSkub24ocyxyPXUpLGwub249aX19KSh0aGlzLl9pZCx0KSk6dGhpcy5zdHlsZVR3ZWVuKHQsKGZ1bmN0aW9uIHModCxlLG4pe3ZhciBpLHIsbz1uKyIiO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPVFjKHRoaXMsdCk7cmV0dXJuIGE9PT1vP251bGw6YT09PWk/cjpyPWUoaT1hLG4pfX0pKHQsaSxlKSxuKS5vbigiZW5kLnN0eWxlLiIrdCxudWxsKX0sc3R5bGVUd2VlbjpmdW5jdGlvbiBpbSh0LGUsbil7dmFyIGk9InN0eWxlLiIrKHQrPSIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKGk9dGhpcy50d2VlbihpKSkmJmkuX3ZhbHVlO2lmKG51bGw9PWUpcmV0dXJuIHRoaXMudHdlZW4oaSxudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4oaSxOZih0LGUsbnVsbD09bj8iIjpuKSl9LHRleHQ6ZnVuY3Rpb24gcm0odCl7cmV0dXJuIHRoaXMudHdlZW4oInRleHQiLCJmdW5jdGlvbiI9PXR5cGVvZiB0PyhmdW5jdGlvbiBlKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQodGhpcyk7dGhpcy50ZXh0Q29udGVudD1udWxsPT1lPyIiOmV9fSkoaGYodGhpcywidGV4dCIsdCkpOihmdW5jdGlvbiBuKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH19KShudWxsPT10PyIiOnQrIiIpKX0sdGV4dFR3ZWVuOmZ1bmN0aW9uIG9tKHQpe3ZhciBlPSJ0ZXh0IjtpZihhcmd1bWVudHMubGVuZ3RoPDEpcmV0dXJuKGU9dGhpcy50d2VlbihlKSkmJmUuX3ZhbHVlO2lmKG51bGw9PXQpcmV0dXJuIHRoaXMudHdlZW4oZSxudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4oZSxSZih0KSl9LHJlbW92ZTpmdW5jdGlvbiBhbSgpe3JldHVybiB0aGlzLm9uKCJlbmQucmVtb3ZlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBhcmVudE5vZGU7Zm9yKHZhciBuIGluIHRoaXMuX190cmFuc2l0aW9uKWlmKCtuIT09ZSlyZXR1cm47dCYmdC5yZW1vdmVDaGlsZCh0aGlzKX19KSh0aGlzLl9pZCkpfSx0d2VlbjpmdW5jdGlvbiBzbSh0LGUpe3ZhciBuPXRoaXMuX2lkO2lmKHQrPSIiLGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciBpLHI9c2YodGhpcy5ub2RlKCksbikudHdlZW4sbz0wLGE9ci5sZW5ndGg7bzxhOysrbylpZigoaT1yW29dKS5uYW1lPT09dClyZXR1cm4gaS52YWx1ZTtyZXR1cm4gbnVsbH1yZXR1cm4gdGhpcy5lYWNoKChudWxsPT1lP2NmOnVmKShuLHQsZSkpfSxkZWxheTpmdW5jdGlvbiBsbSh0KXt2YXIgZT10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goKCJmdW5jdGlvbiI9PXR5cGVvZiB0P1NmOk1mKShlLHQpKTpzZih0aGlzLm5vZGUoKSxlKS5kZWxheX0sZHVyYXRpb246ZnVuY3Rpb24gY20odCl7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgdD9FZjpUZikoZSx0KSk6c2YodGhpcy5ub2RlKCksZSkuZHVyYXRpb259LGVhc2U6ZnVuY3Rpb24gdW0odCl7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKENmKGUsdCkpOnNmKHRoaXMubm9kZSgpLGUpLmVhc2V9LGVuZDpmdW5jdGlvbiBobSgpe3ZhciB0LGUsbj10aGlzLGk9bi5faWQscj1uLnNpemUoKTtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKG8sYSl7dmFyIHM9e3ZhbHVlOmF9LGw9e3ZhbHVlOmZ1bmN0aW9uKCl7MD09LS1yJiZvKCl9fTtuLmVhY2goKGZ1bmN0aW9uKCl7dmFyIG49YWYodGhpcyxpKSxyPW4ub247ciE9PXQmJigoZT0odD1yKS5jb3B5KCkpLl8uY2FuY2VsLnB1c2gocyksZS5fLmludGVycnVwdC5wdXNoKHMpLGUuXy5lbmQucHVzaChsKSksbi5vbj1lfSkpfSkpfX07dmFyIGRtPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIE1hdGgucG93KHQsZSl9cmV0dXJuIGU9K2Usbi5leHBvbmVudD10LG59KSgzKSxwbT0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiAxLU1hdGgucG93KDEtdCxlKX1yZXR1cm4gZT0rZSxuLmV4cG9uZW50PXQsbn0pKDMpLGZtPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuKCh0Kj0yKTw9MT9NYXRoLnBvdyh0LGUpOjItTWF0aC5wb3coMi10LGUpKS8yfXJldHVybiBlPStlLG4uZXhwb25lbnQ9dCxufSkoMyksbW09TWF0aC5QSSxnbT1tbS8yO2Z1bmN0aW9uIF9tKHQpe3JldHVybiAxPT0rdD8xOjEtTWF0aC5jb3ModCpnbSl9ZnVuY3Rpb24geW0odCl7cmV0dXJuIE1hdGguc2luKHQqZ20pfWZ1bmN0aW9uIHZtKHQpe3JldHVybigxLU1hdGguY29zKG1tKnQpKS8yfWZ1bmN0aW9uIGJtKHQpe3JldHVybiAxLjAwMDk3NzUxNzEwNjU0OTQqKE1hdGgucG93KDIsLTEwKnQpLS4wMDA5NzY1NjI1KX1mdW5jdGlvbiB4bSh0KXtyZXR1cm4gYm0oMS0rdCl9ZnVuY3Rpb24gd20odCl7cmV0dXJuIDEtYm0odCl9ZnVuY3Rpb24gU20odCl7cmV0dXJuKCh0Kj0yKTw9MT9ibSgxLXQpOjItYm0odC0xKSkvMn1mdW5jdGlvbiBNbSh0KXtyZXR1cm4gMS1NYXRoLnNxcnQoMS10KnQpfWZ1bmN0aW9uIEVtKHQpe3JldHVybiBNYXRoLnNxcnQoMS0gLS10KnQpfWZ1bmN0aW9uIFRtKHQpe3JldHVybigodCo9Mik8PTE/MS1NYXRoLnNxcnQoMS10KnQpOk1hdGguc3FydCgxLSh0LT0yKSp0KSsxKS8yfXZhciBDbT00LzExLEFtPTcuNTYyNTtmdW5jdGlvbiBrbSh0KXtyZXR1cm4gMS1MbSgxLXQpfWZ1bmN0aW9uIExtKHQpe3JldHVybih0PSt0KTxDbT9BbSp0KnQ6dDwuNzI3MjcyNzI3MjcyNzI3Mz9BbSoodC09LjU0NTQ1NDU0NTQ1NDU0NTQpKnQrLjc1OnQ8LjkwOTA5MDkwOTA5MDkwOTE/QW0qKHQtPS44MTgxODE4MTgxODE4MTgyKSp0Ky45Mzc1OkFtKih0LT0uOTU0NTQ1NDU0NTQ1NDU0NikqdCsuOTg0Mzc1fWZ1bmN0aW9uIFBtKHQpe3JldHVybigodCo9Mik8PTE/MS1MbSgxLXQpOkxtKHQtMSkrMSkvMn12YXIgTm09MS43MDE1OCxJbT0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybih0PSt0KSp0KihlKih0LTEpK3QpfXJldHVybiBlPStlLG4ub3ZlcnNob290PXQsbn0pKE5tKSxSbT0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybi0tdCp0KigodCsxKSplK3QpKzF9cmV0dXJuIGU9K2Usbi5vdmVyc2hvb3Q9dCxufSkoTm0pLE9tPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuKCh0Kj0yKTwxP3QqdCooKGUrMSkqdC1lKToodC09MikqdCooKGUrMSkqdCtlKSsyKS8yfXJldHVybiBlPStlLG4ub3ZlcnNob290PXQsbn0pKE5tKSx6bT0yKk1hdGguUEksRG09KGZ1bmN0aW9uIHQoZSxuKXt2YXIgaT1NYXRoLmFzaW4oMS8oZT1NYXRoLm1heCgxLGUpKSkqKG4vPXptKTtmdW5jdGlvbiByKHQpe3JldHVybiBlKmJtKC0gLS10KSpNYXRoLnNpbigoaS10KS9uKX1yZXR1cm4gci5hbXBsaXR1ZGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSxuKnptKX0sci5wZXJpb2Q9ZnVuY3Rpb24obil7cmV0dXJuIHQoZSxuKX0scn0pKDEsLjMpLEJtPShmdW5jdGlvbiB0KGUsbil7dmFyIGk9TWF0aC5hc2luKDEvKGU9TWF0aC5tYXgoMSxlKSkpKihuLz16bSk7ZnVuY3Rpb24gcih0KXtyZXR1cm4gMS1lKmJtKHQ9K3QpKk1hdGguc2luKCh0K2kpL24pfXJldHVybiByLmFtcGxpdHVkZT1mdW5jdGlvbihlKXtyZXR1cm4gdChlLG4qem0pfSxyLnBlcmlvZD1mdW5jdGlvbihuKXtyZXR1cm4gdChlLG4pfSxyfSkoMSwuMyksSG09KGZ1bmN0aW9uIHQoZSxuKXt2YXIgaT1NYXRoLmFzaW4oMS8oZT1NYXRoLm1heCgxLGUpKSkqKG4vPXptKTtmdW5jdGlvbiByKHQpe3JldHVybigodD0yKnQtMSk8MD9lKmJtKC10KSpNYXRoLnNpbigoaS10KS9uKToyLWUqYm0odCkqTWF0aC5zaW4oKGkrdCkvbikpLzJ9cmV0dXJuIHIuYW1wbGl0dWRlPWZ1bmN0aW9uKGUpe3JldHVybiB0KGUsbip6bSl9LHIucGVyaW9kPWZ1bmN0aW9uKG4pe3JldHVybiB0KGUsbil9LHJ9KSgxLC4zKSxGbT1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxlYXNlTGluZWFyOkZmLGVhc2VRdWFkOmpmLGVhc2VRdWFkSW46VmYsZWFzZVF1YWRPdXQ6VWYsZWFzZVF1YWRJbk91dDpqZixlYXNlQ3ViaWM6cWYsZWFzZUN1YmljSW46R2YsZWFzZUN1YmljT3V0OldmLGVhc2VDdWJpY0luT3V0OnFmLGVhc2VQb2x5OmZtLGVhc2VQb2x5SW46ZG0sZWFzZVBvbHlPdXQ6cG0sZWFzZVBvbHlJbk91dDpmbSxlYXNlU2luOnZtLGVhc2VTaW5JbjpfbSxlYXNlU2luT3V0OnltLGVhc2VTaW5Jbk91dDp2bSxlYXNlRXhwOlNtLGVhc2VFeHBJbjp4bSxlYXNlRXhwT3V0OndtLGVhc2VFeHBJbk91dDpTbSxlYXNlQ2lyY2xlOlRtLGVhc2VDaXJjbGVJbjpNbSxlYXNlQ2lyY2xlT3V0OkVtLGVhc2VDaXJjbGVJbk91dDpUbSxlYXNlQm91bmNlOkxtLGVhc2VCb3VuY2VJbjprbSxlYXNlQm91bmNlT3V0OkxtLGVhc2VCb3VuY2VJbk91dDpQbSxlYXNlQmFjazpPbSxlYXNlQmFja0luOkltLGVhc2VCYWNrT3V0OlJtLGVhc2VCYWNrSW5PdXQ6T20sZWFzZUVsYXN0aWM6Qm0sZWFzZUVsYXN0aWNJbjpEbSxlYXNlRWxhc3RpY091dDpCbSxlYXNlRWxhc3RpY0luT3V0OkhtfSksVm09e3RpbWU6bnVsbCxkZWxheTowLGR1cmF0aW9uOjI1MCxlYXNlOnFmfTtmdW5jdGlvbiBVbSh0LGUpe2Zvcih2YXIgbjshKG49dC5fX3RyYW5zaXRpb24pfHwhKG49bltlXSk7KWlmKCEodD10LnBhcmVudE5vZGUpKXJldHVybiBWbS50aW1lPXFwKCksVm07cmV0dXJuIG59enUucHJvdG90eXBlLmludGVycnVwdD1mdW5jdGlvbiBqbSh0KXtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe2xmKHRoaXMsdCl9KSl9LHp1LnByb3RvdHlwZS50cmFuc2l0aW9uPWZ1bmN0aW9uIEdtKHQpe3ZhciBlLG47dCBpbnN0YW5jZW9mIHpmPyhlPXQuX2lkLHQ9dC5fbmFtZSk6KGU9QmYoKSwobj1WbSkudGltZT1xcCgpLHQ9bnVsbD09dD9udWxsOnQrIiIpO2Zvcih2YXIgaT10aGlzLl9ncm91cHMscj1pLmxlbmd0aCxvPTA7bzxyOysrbylmb3IodmFyIGEscz1pW29dLGw9cy5sZW5ndGgsYz0wO2M8bDsrK2MpKGE9c1tjXSkmJnJmKGEsdCxlLGMscyxufHxVbShhLGUpKTtyZXR1cm4gbmV3IHpmKGksdGhpcy5fcGFyZW50cyx0LGUpfTt2YXIgV209W251bGxdO2Z1bmN0aW9uIHFtKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBZbSh0LGUsbil7dGhpcy50YXJnZXQ9dCx0aGlzLnR5cGU9ZSx0aGlzLnNlbGVjdGlvbj1ufWZ1bmN0aW9uIFhtKCl7TXUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gJG0oKXtNdS5wcmV2ZW50RGVmYXVsdCgpLE11LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfXZhciBLbT17bmFtZToiZHJhZyJ9LFptPXtuYW1lOiJzcGFjZSJ9LEptPXtuYW1lOiJoYW5kbGUifSxRbT17bmFtZToiY2VudGVyIn07ZnVuY3Rpb24gdGcodCl7cmV0dXJuWyt0WzBdLCt0WzFdXX1mdW5jdGlvbiBlZyh0KXtyZXR1cm5bdGcodFswXSksdGcodFsxXSldfWZ1bmN0aW9uIG5nKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gd2goZSxNdS50b3VjaGVzLHQpfX12YXIgaWc9e25hbWU6IngiLGhhbmRsZXM6WyJ3IiwiZSJdLm1hcChoZyksaW5wdXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dD9udWxsOltbK3RbMF0sZVswXVsxXV0sWyt0WzFdLGVbMV1bMV1dXX0sb3V0cHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZbdFswXVswXSx0WzFdWzBdXX19LHJnPXtuYW1lOiJ5IixoYW5kbGVzOlsibiIsInMiXS5tYXAoaGcpLGlucHV0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PXQ/bnVsbDpbW2VbMF1bMF0sK3RbMF1dLFtlWzFdWzBdLCt0WzFdXV19LG91dHB1dDpmdW5jdGlvbih0KXtyZXR1cm4gdCYmW3RbMF1bMV0sdFsxXVsxXV19fSxvZz17bmFtZToieHkiLGhhbmRsZXM6WyJuIiwidyIsImUiLCJzIiwibnciLCJuZSIsInN3Iiwic2UiXS5tYXAoaGcpLGlucHV0OmZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P251bGw6ZWcodCl9LG91dHB1dDpmdW5jdGlvbih0KXtyZXR1cm4gdH19LGFnPXtvdmVybGF5OiJjcm9zc2hhaXIiLHNlbGVjdGlvbjoibW92ZSIsbjoibnMtcmVzaXplIixlOiJldy1yZXNpemUiLHM6Im5zLXJlc2l6ZSIsdzoiZXctcmVzaXplIixudzoibndzZS1yZXNpemUiLG5lOiJuZXN3LXJlc2l6ZSIsc2U6Im53c2UtcmVzaXplIixzdzoibmVzdy1yZXNpemUifSxzZz17ZToidyIsdzoiZSIsbnc6Im5lIixuZToibnciLHNlOiJzdyIsc3c6InNlIn0sbGc9e246InMiLHM6Im4iLG53OiJzdyIsbmU6InNlIixzZToibmUiLHN3OiJudyJ9LGNnPXtvdmVybGF5OjEsc2VsZWN0aW9uOjEsbjpudWxsLGU6MSxzOm51bGwsdzotMSxudzotMSxuZToxLHNlOjEsc3c6LTF9LHVnPXtvdmVybGF5OjEsc2VsZWN0aW9uOjEsbjotMSxlOm51bGwsczoxLHc6bnVsbCxudzotMSxuZTotMSxzZToxLHN3OjF9O2Z1bmN0aW9uIGhnKHQpe3JldHVybnt0eXBlOnR9fWZ1bmN0aW9uIGRnKCl7cmV0dXJuIU11LmN0cmxLZXkmJiFNdS5idXR0b259ZnVuY3Rpb24gcGcoKXt2YXIgdD10aGlzLm93bmVyU1ZHRWxlbWVudHx8dGhpcztyZXR1cm4gdC5oYXNBdHRyaWJ1dGUoInZpZXdCb3giKT9bWyh0PXQudmlld0JveC5iYXNlVmFsKS54LHQueV0sW3QueCt0LndpZHRoLHQueSt0LmhlaWdodF1dOltbMCwwXSxbdC53aWR0aC5iYXNlVmFsLnZhbHVlLHQuaGVpZ2h0LmJhc2VWYWwudmFsdWVdXX1mdW5jdGlvbiBmZygpe3JldHVybiBuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHN8fCJvbnRvdWNoc3RhcnQiaW4gdGhpc31mdW5jdGlvbiBtZyh0KXtmb3IoOyF0Ll9fYnJ1c2g7KWlmKCEodD10LnBhcmVudE5vZGUpKXJldHVybjtyZXR1cm4gdC5fX2JydXNofWZ1bmN0aW9uIGdnKHQpe3JldHVybiB0WzBdWzBdPT09dFsxXVswXXx8dFswXVsxXT09PXRbMV1bMV19ZnVuY3Rpb24gX2codCl7dmFyIGU9dC5fX2JydXNoO3JldHVybiBlP2UuZGltLm91dHB1dChlLnNlbGVjdGlvbik6bnVsbH1mdW5jdGlvbiB5Zygpe3JldHVybiBiZyhyZyl9ZnVuY3Rpb24gdmcoKXtyZXR1cm4gYmcob2cpfWZ1bmN0aW9uIGJnKHQpe3ZhciBlLG49cGcsaT1kZyxyPWZnLG89ITAsYT13Yygic3RhcnQiLCJicnVzaCIsImVuZCIpLHM9NjtmdW5jdGlvbiBsKGUpe3ZhciBuPWUucHJvcGVydHkoIl9fYnJ1c2giLG0pLnNlbGVjdEFsbCgiLm92ZXJsYXkiKS5kYXRhKFtoZygib3ZlcmxheSIpXSk7bi5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmF0dHIoImNsYXNzIiwib3ZlcmxheSIpLmF0dHIoInBvaW50ZXItZXZlbnRzIiwiYWxsIikuYXR0cigiY3Vyc29yIixhZy5vdmVybGF5KS5tZXJnZShuKS5lYWNoKChmdW5jdGlvbigpe3ZhciB0PW1nKHRoaXMpLmV4dGVudDtEdSh0aGlzKS5hdHRyKCJ4Iix0WzBdWzBdKS5hdHRyKCJ5Iix0WzBdWzFdKS5hdHRyKCJ3aWR0aCIsdFsxXVswXS10WzBdWzBdKS5hdHRyKCJoZWlnaHQiLHRbMV1bMV0tdFswXVsxXSl9KSksZS5zZWxlY3RBbGwoIi5zZWxlY3Rpb24iKS5kYXRhKFtoZygic2VsZWN0aW9uIildKS5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmF0dHIoImNsYXNzIiwic2VsZWN0aW9uIikuYXR0cigiY3Vyc29yIixhZy5zZWxlY3Rpb24pLmF0dHIoImZpbGwiLCIjNzc3IikuYXR0cigiZmlsbC1vcGFjaXR5IiwuMykuYXR0cigic3Ryb2tlIiwiI2ZmZiIpLmF0dHIoInNoYXBlLXJlbmRlcmluZyIsImNyaXNwRWRnZXMiKTt2YXIgaT1lLnNlbGVjdEFsbCgiLmhhbmRsZSIpLmRhdGEodC5oYW5kbGVzLChmdW5jdGlvbih0KXtyZXR1cm4gdC50eXBlfSkpO2kuZXhpdCgpLnJlbW92ZSgpLGkuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJjbGFzcyIsKGZ1bmN0aW9uKHQpe3JldHVybiJoYW5kbGUgaGFuZGxlLS0iK3QudHlwZX0pKS5hdHRyKCJjdXJzb3IiLChmdW5jdGlvbih0KXtyZXR1cm4gYWdbdC50eXBlXX0pKSxlLmVhY2goYykuYXR0cigiZmlsbCIsIm5vbmUiKS5hdHRyKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpLm9uKCJtb3VzZWRvd24uYnJ1c2giLGQpLmZpbHRlcihyKS5vbigidG91Y2hzdGFydC5icnVzaCIsZCkub24oInRvdWNobW92ZS5icnVzaCIscCkub24oInRvdWNoZW5kLmJydXNoIHRvdWNoY2FuY2VsLmJydXNoIixmKS5zdHlsZSgidG91Y2gtYWN0aW9uIiwibm9uZSIpLnN0eWxlKCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3IiLCJyZ2JhKDAsMCwwLDApIil9ZnVuY3Rpb24gYygpe3ZhciB0PUR1KHRoaXMpLGU9bWcodGhpcykuc2VsZWN0aW9uO2U/KHQuc2VsZWN0QWxsKCIuc2VsZWN0aW9uIikuc3R5bGUoImRpc3BsYXkiLG51bGwpLmF0dHIoIngiLGVbMF1bMF0pLmF0dHIoInkiLGVbMF1bMV0pLmF0dHIoIndpZHRoIixlWzFdWzBdLWVbMF1bMF0pLmF0dHIoImhlaWdodCIsZVsxXVsxXS1lWzBdWzFdKSx0LnNlbGVjdEFsbCgiLmhhbmRsZSIpLnN0eWxlKCJkaXNwbGF5IixudWxsKS5hdHRyKCJ4IiwoZnVuY3Rpb24odCl7cmV0dXJuImUiPT09dC50eXBlW3QudHlwZS5sZW5ndGgtMV0/ZVsxXVswXS1zLzI6ZVswXVswXS1zLzJ9KSkuYXR0cigieSIsKGZ1bmN0aW9uKHQpe3JldHVybiJzIj09PXQudHlwZVswXT9lWzFdWzFdLXMvMjplWzBdWzFdLXMvMn0pKS5hdHRyKCJ3aWR0aCIsKGZ1bmN0aW9uKHQpe3JldHVybiJuIj09PXQudHlwZXx8InMiPT09dC50eXBlP2VbMV1bMF0tZVswXVswXStzOnN9KSkuYXR0cigiaGVpZ2h0IiwoZnVuY3Rpb24odCl7cmV0dXJuImUiPT09dC50eXBlfHwidyI9PT10LnR5cGU/ZVsxXVsxXS1lWzBdWzFdK3M6c30pKSk6dC5zZWxlY3RBbGwoIi5zZWxlY3Rpb24sLmhhbmRsZSIpLnN0eWxlKCJkaXNwbGF5Iiwibm9uZSIpLmF0dHIoIngiLG51bGwpLmF0dHIoInkiLG51bGwpLmF0dHIoIndpZHRoIixudWxsKS5hdHRyKCJoZWlnaHQiLG51bGwpfWZ1bmN0aW9uIHUodCxlLG4pe3ZhciBpPXQuX19icnVzaC5lbWl0dGVyO3JldHVybiFpfHxuJiZpLmNsZWFuP25ldyBoKHQsZSxuKTppfWZ1bmN0aW9uIGgodCxlLG4pe3RoaXMudGhhdD10LHRoaXMuYXJncz1lLHRoaXMuc3RhdGU9dC5fX2JydXNoLHRoaXMuYWN0aXZlPTAsdGhpcy5jbGVhbj1ufWZ1bmN0aW9uIGQoKXtpZigoIWV8fE11LnRvdWNoZXMpJiZpLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIG4scixhLHMsbCxoLGQscCxmLG0sZyxfPXRoaXMseT1NdS50YXJnZXQuX19kYXRhX18udHlwZSx2PSJzZWxlY3Rpb24iPT09KG8mJk11Lm1ldGFLZXk/eT0ib3ZlcmxheSI6eSk/S206byYmTXUuYWx0S2V5P1FtOkptLGI9dD09PXJnP251bGw6Y2dbeV0seD10PT09aWc/bnVsbDp1Z1t5XSx3PW1nKF8pLFM9dy5leHRlbnQsTT13LnNlbGVjdGlvbixFPVNbMF1bMF0sVD1TWzBdWzFdLEM9U1sxXVswXSxBPVNbMV1bMV0saz0wLEw9MCxQPWImJngmJm8mJk11LnNoaWZ0S2V5LE49TXUudG91Y2hlcz9uZyhNdS5jaGFuZ2VkVG91Y2hlc1swXS5pZGVudGlmaWVyKTpiaCxJPU4oXyksUj1JLE89dShfLGFyZ3VtZW50cywhMCkuYmVmb3Jlc3RhcnQoKTsib3ZlcmxheSI9PT15PyhNJiYoZj0hMCksdy5zZWxlY3Rpb249TT1bW249dD09PXJnP0U6SVswXSxhPXQ9PT1pZz9UOklbMV1dLFtsPXQ9PT1yZz9DOm4sZD10PT09aWc/QTphXV0pOihuPU1bMF1bMF0sYT1NWzBdWzFdLGw9TVsxXVswXSxkPU1bMV1bMV0pLHI9bixzPWEsaD1sLHA9ZDt2YXIgej1EdShfKS5hdHRyKCJwb2ludGVyLWV2ZW50cyIsIm5vbmUiKSxEPXouc2VsZWN0QWxsKCIub3ZlcmxheSIpLmF0dHIoImN1cnNvciIsYWdbeV0pO2lmKE11LnRvdWNoZXMpTy5tb3ZlZD1ILE8uZW5kZWQ9VjtlbHNle3ZhciBCPUR1KE11LnZpZXcpLm9uKCJtb3VzZW1vdmUuYnJ1c2giLEgsITApLm9uKCJtb3VzZXVwLmJydXNoIixWLCEwKTtvJiZCLm9uKCJrZXlkb3duLmJydXNoIixVLCEwKS5vbigia2V5dXAuYnJ1c2giLGosITApLEVoKE11LnZpZXcpfVhtKCksbGYoXyksYy5jYWxsKF8pLE8uc3RhcnQoKX1mdW5jdGlvbiBIKCl7dmFyIHQ9TihfKTshUHx8bXx8Z3x8KE1hdGguYWJzKHRbMF0tUlswXSk+TWF0aC5hYnModFsxXS1SWzFdKT9nPSEwOm09ITApLFI9dCxmPSEwLCRtKCksRigpfWZ1bmN0aW9uIEYoKXt2YXIgdDtzd2l0Y2goaz1SWzBdLUlbMF0sTD1SWzFdLUlbMV0sdil7Y2FzZSBabTpjYXNlIEttOmImJihrPU1hdGgubWF4KEUtbixNYXRoLm1pbihDLWwsaykpLHI9bitrLGg9bCtrKSx4JiYoTD1NYXRoLm1heChULWEsTWF0aC5taW4oQS1kLEwpKSxzPWErTCxwPWQrTCk7YnJlYWs7Y2FzZSBKbTpiPDA/KGs9TWF0aC5tYXgoRS1uLE1hdGgubWluKEMtbixrKSkscj1uK2ssaD1sKTpiPjAmJihrPU1hdGgubWF4KEUtbCxNYXRoLm1pbihDLWwsaykpLHI9bixoPWwraykseDwwPyhMPU1hdGgubWF4KFQtYSxNYXRoLm1pbihBLWEsTCkpLHM9YStMLHA9ZCk6eD4wJiYoTD1NYXRoLm1heChULWQsTWF0aC5taW4oQS1kLEwpKSxzPWEscD1kK0wpO2JyZWFrO2Nhc2UgUW06YiYmKHI9TWF0aC5tYXgoRSxNYXRoLm1pbihDLG4taypiKSksaD1NYXRoLm1heChFLE1hdGgubWluKEMsbCtrKmIpKSkseCYmKHM9TWF0aC5tYXgoVCxNYXRoLm1pbihBLGEtTCp4KSkscD1NYXRoLm1heChULE1hdGgubWluKEEsZCtMKngpKSl9aDxyJiYoYio9LTEsdD1uLG49bCxsPXQsdD1yLHI9aCxoPXQseSBpbiBzZyYmRC5hdHRyKCJjdXJzb3IiLGFnW3k9c2dbeV1dKSkscDxzJiYoeCo9LTEsdD1hLGE9ZCxkPXQsdD1zLHM9cCxwPXQseSBpbiBsZyYmRC5hdHRyKCJjdXJzb3IiLGFnW3k9bGdbeV1dKSksdy5zZWxlY3Rpb24mJihNPXcuc2VsZWN0aW9uKSxtJiYocj1NWzBdWzBdLGg9TVsxXVswXSksZyYmKHM9TVswXVsxXSxwPU1bMV1bMV0pLE1bMF1bMF09PT1yJiZNWzBdWzFdPT09cyYmTVsxXVswXT09PWgmJk1bMV1bMV09PT1wfHwody5zZWxlY3Rpb249W1tyLHNdLFtoLHBdXSxjLmNhbGwoXyksTy5icnVzaCgpKX1mdW5jdGlvbiBWKCl7aWYoWG0oKSxNdS50b3VjaGVzKXtpZihNdS50b3VjaGVzLmxlbmd0aClyZXR1cm47ZSYmY2xlYXJUaW1lb3V0KGUpLGU9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtlPW51bGx9KSw1MDApfWVsc2UgVGgoTXUudmlldyxmKSxCLm9uKCJrZXlkb3duLmJydXNoIGtleXVwLmJydXNoIG1vdXNlbW92ZS5icnVzaCBtb3VzZXVwLmJydXNoIixudWxsKTt6LmF0dHIoInBvaW50ZXItZXZlbnRzIiwiYWxsIiksRC5hdHRyKCJjdXJzb3IiLGFnLm92ZXJsYXkpLHcuc2VsZWN0aW9uJiYoTT13LnNlbGVjdGlvbiksZ2coTSkmJih3LnNlbGVjdGlvbj1udWxsLGMuY2FsbChfKSksTy5lbmQoKX1mdW5jdGlvbiBVKCl7c3dpdGNoKE11LmtleUNvZGUpe2Nhc2UgMTY6UD1iJiZ4O2JyZWFrO2Nhc2UgMTg6dj09PUptJiYoYiYmKGw9aC1rKmIsbj1yK2sqYikseCYmKGQ9cC1MKngsYT1zK0wqeCksdj1RbSxGKCkpO2JyZWFrO2Nhc2UgMzI6diE9PUptJiZ2IT09UW18fChiPDA/bD1oLWs6Yj4wJiYobj1yLWspLHg8MD9kPXAtTDp4PjAmJihhPXMtTCksdj1abSxELmF0dHIoImN1cnNvciIsYWcuc2VsZWN0aW9uKSxGKCkpO2JyZWFrO2RlZmF1bHQ6cmV0dXJufSRtKCl9ZnVuY3Rpb24gaigpe3N3aXRjaChNdS5rZXlDb2RlKXtjYXNlIDE2OlAmJihtPWc9UD0hMSxGKCkpO2JyZWFrO2Nhc2UgMTg6dj09PVFtJiYoYjwwP2w9aDpiPjAmJihuPXIpLHg8MD9kPXA6eD4wJiYoYT1zKSx2PUptLEYoKSk7YnJlYWs7Y2FzZSAzMjp2PT09Wm0mJihNdS5hbHRLZXk/KGImJihsPWgtaypiLG49citrKmIpLHgmJihkPXAtTCp4LGE9cytMKngpLHY9UW0pOihiPDA/bD1oOmI+MCYmKG49cikseDwwP2Q9cDp4PjAmJihhPXMpLHY9Sm0pLEQuYXR0cigiY3Vyc29yIixhZ1t5XSksRigpKTticmVhaztkZWZhdWx0OnJldHVybn0kbSgpfX1mdW5jdGlvbiBwKCl7dSh0aGlzLGFyZ3VtZW50cykubW92ZWQoKX1mdW5jdGlvbiBmKCl7dSh0aGlzLGFyZ3VtZW50cykuZW5kZWQoKX1mdW5jdGlvbiBtKCl7dmFyIGU9dGhpcy5fX2JydXNofHx7c2VsZWN0aW9uOm51bGx9O3JldHVybiBlLmV4dGVudD1lZyhuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksZS5kaW09dCxlfXJldHVybiBsLm1vdmU9ZnVuY3Rpb24oZSxuKXtlLnNlbGVjdGlvbj9lLm9uKCJzdGFydC5icnVzaCIsKGZ1bmN0aW9uKCl7dSh0aGlzLGFyZ3VtZW50cykuYmVmb3Jlc3RhcnQoKS5zdGFydCgpfSkpLm9uKCJpbnRlcnJ1cHQuYnJ1c2ggZW5kLmJydXNoIiwoZnVuY3Rpb24oKXt1KHRoaXMsYXJndW1lbnRzKS5lbmQoKX0pKS50d2VlbigiYnJ1c2giLChmdW5jdGlvbigpe3ZhciBlPXRoaXMsaT1lLl9fYnJ1c2gscj11KGUsYXJndW1lbnRzKSxvPWkuc2VsZWN0aW9uLGE9dC5pbnB1dCgiZnVuY3Rpb24iPT10eXBlb2Ygbj9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpuLGkuZXh0ZW50KSxzPWNwKG8sYSk7ZnVuY3Rpb24gbCh0KXtpLnNlbGVjdGlvbj0xPT09dCYmbnVsbD09PWE/bnVsbDpzKHQpLGMuY2FsbChlKSxyLmJydXNoKCl9cmV0dXJuIG51bGwhPT1vJiZudWxsIT09YT9sOmwoMSl9KSk6ZS5lYWNoKChmdW5jdGlvbigpe3ZhciBlPXRoaXMsaT1hcmd1bWVudHMscj1lLl9fYnJ1c2gsbz10LmlucHV0KCJmdW5jdGlvbiI9PXR5cGVvZiBuP24uYXBwbHkoZSxpKTpuLHIuZXh0ZW50KSxhPXUoZSxpKS5iZWZvcmVzdGFydCgpO2xmKGUpLHIuc2VsZWN0aW9uPW51bGw9PT1vP251bGw6byxjLmNhbGwoZSksYS5zdGFydCgpLmJydXNoKCkuZW5kKCl9KSl9LGwuY2xlYXI9ZnVuY3Rpb24odCl7bC5tb3ZlKHQsbnVsbCl9LGgucHJvdG90eXBlPXtiZWZvcmVzdGFydDpmdW5jdGlvbigpe3JldHVybiAxPT0rK3RoaXMuYWN0aXZlJiYodGhpcy5zdGF0ZS5lbWl0dGVyPXRoaXMsdGhpcy5zdGFydGluZz0hMCksdGhpc30sc3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGFydGluZz8odGhpcy5zdGFydGluZz0hMSx0aGlzLmVtaXQoInN0YXJ0IikpOnRoaXMuZW1pdCgiYnJ1c2giKSx0aGlzfSxicnVzaDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVtaXQoImJydXNoIiksdGhpc30sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PS0tdGhpcy5hY3RpdmUmJihkZWxldGUgdGhpcy5zdGF0ZS5lbWl0dGVyLHRoaXMuZW1pdCgiZW5kIikpLHRoaXN9LGVtaXQ6ZnVuY3Rpb24oZSl7THUobmV3IFltKGwsZSx0Lm91dHB1dCh0aGlzLnN0YXRlLnNlbGVjdGlvbikpLGEuYXBwbHksYSxbZSx0aGlzLnRoYXQsdGhpcy5hcmdzXSl9fSxsLmV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnFtKGVnKHQpKSxsKTpufSxsLmZpbHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnFtKCEhdCksbCk6aX0sbC50b3VjaGFibGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpxbSghIXQpLGwpOnJ9LGwuaGFuZGxlU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0rdCxsKTpzfSxsLmtleU1vZGlmaWVycz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0hIXQsbCk6b30sbC5vbj1mdW5jdGlvbigpe3ZhciB0PWEub24uYXBwbHkoYSxhcmd1bWVudHMpO3JldHVybiB0PT09YT9sOnR9LGx9dmFyIHhnPU1hdGguY29zLHdnPU1hdGguc2luLFNnPU1hdGguUEksTWc9U2cvMixFZz0yKlNnLFRnPU1hdGgubWF4O2Z1bmN0aW9uIENnKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiB0KGUuc291cmNlLnZhbHVlK2UudGFyZ2V0LnZhbHVlLG4uc291cmNlLnZhbHVlK24udGFyZ2V0LnZhbHVlKX19dmFyIEFnPUFycmF5LnByb3RvdHlwZS5zbGljZTtmdW5jdGlvbiBrZyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19dmFyIExnPU1hdGguUEksUGc9MipMZyxOZz0xZS02LElnPVBnLU5nO2Z1bmN0aW9uIFJnKCl7dGhpcy5feDA9dGhpcy5feTA9dGhpcy5feDE9dGhpcy5feTE9bnVsbCx0aGlzLl89IiJ9ZnVuY3Rpb24gT2coKXtyZXR1cm4gbmV3IFJnfWZ1bmN0aW9uIHpnKHQpe3JldHVybiB0LnNvdXJjZX1mdW5jdGlvbiBEZyh0KXtyZXR1cm4gdC50YXJnZXR9ZnVuY3Rpb24gQmcodCl7cmV0dXJuIHQucmFkaXVzfWZ1bmN0aW9uIEhnKHQpe3JldHVybiB0LnN0YXJ0QW5nbGV9ZnVuY3Rpb24gRmcodCl7cmV0dXJuIHQuZW5kQW5nbGV9UmcucHJvdG90eXBlPU9nLnByb3RvdHlwZT17Y29uc3RydWN0b3I6UmcsbW92ZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fKz0iTSIrKHRoaXMuX3gwPXRoaXMuX3gxPSt0KSsiLCIrKHRoaXMuX3kwPXRoaXMuX3kxPStlKX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7bnVsbCE9PXRoaXMuX3gxJiYodGhpcy5feDE9dGhpcy5feDAsdGhpcy5feTE9dGhpcy5feTAsdGhpcy5fKz0iWiIpfSxsaW5lVG86ZnVuY3Rpb24odCxlKXt0aGlzLl8rPSJMIisodGhpcy5feDE9K3QpKyIsIisodGhpcy5feTE9K2UpfSxxdWFkcmF0aWNDdXJ2ZVRvOmZ1bmN0aW9uKHQsZSxuLGkpe3RoaXMuXys9IlEiKyArdCsiLCIrICtlKyIsIisodGhpcy5feDE9K24pKyIsIisodGhpcy5feTE9K2kpfSxiZXppZXJDdXJ2ZVRvOmZ1bmN0aW9uKHQsZSxuLGkscixvKXt0aGlzLl8rPSJDIisgK3QrIiwiKyArZSsiLCIrICtuKyIsIisgK2krIiwiKyh0aGlzLl94MT0rcikrIiwiKyh0aGlzLl95MT0rbyl9LGFyY1RvOmZ1bmN0aW9uKHQsZSxuLGkscil7dmFyIG89dGhpcy5feDEsYT10aGlzLl95MSxzPShuPStuKS0odD0rdCksbD0oaT0raSktKGU9K2UpLGM9by10LHU9YS1lLGg9YypjK3UqdTtpZigocj0rcik8MCl0aHJvdyBuZXcgRXJyb3IoIm5lZ2F0aXZlIHJhZGl1czogIityKTtpZihudWxsPT09dGhpcy5feDEpdGhpcy5fKz0iTSIrKHRoaXMuX3gxPXQpKyIsIisodGhpcy5feTE9ZSk7ZWxzZSBpZihoPk5nKWlmKE1hdGguYWJzKHUqcy1sKmMpPk5nJiZyKXt2YXIgZD1uLW8scD1pLWEsZj1zKnMrbCpsLG09ZCpkK3AqcCxnPU1hdGguc3FydChmKSxfPU1hdGguc3FydChoKSx5PXIqTWF0aC50YW4oKExnLU1hdGguYWNvcygoZitoLW0pLygyKmcqXykpKS8yKSx2PXkvXyxiPXkvZztNYXRoLmFicyh2LTEpPk5nJiYodGhpcy5fKz0iTCIrKHQrdipjKSsiLCIrKGUrdip1KSksdGhpcy5fKz0iQSIrcisiLCIrcisiLDAsMCwiKyArKHUqZD5jKnApKyIsIisodGhpcy5feDE9dCtiKnMpKyIsIisodGhpcy5feTE9ZStiKmwpfWVsc2UgdGhpcy5fKz0iTCIrKHRoaXMuX3gxPXQpKyIsIisodGhpcy5feTE9ZSk7ZWxzZTt9LGFyYzpmdW5jdGlvbih0LGUsbixpLHIsbyl7dD0rdCxlPStlLG89ISFvO3ZhciBhPShuPStuKSpNYXRoLmNvcyhpKSxzPW4qTWF0aC5zaW4oaSksbD10K2EsYz1lK3MsdT0xXm8saD1vP2ktcjpyLWk7aWYobjwwKXRocm93IG5ldyBFcnJvcigibmVnYXRpdmUgcmFkaXVzOiAiK24pO251bGw9PT10aGlzLl94MT90aGlzLl8rPSJNIitsKyIsIitjOihNYXRoLmFicyh0aGlzLl94MS1sKT5OZ3x8TWF0aC5hYnModGhpcy5feTEtYyk+TmcpJiYodGhpcy5fKz0iTCIrbCsiLCIrYyksbiYmKGg8MCYmKGg9aCVQZytQZyksaD5JZz90aGlzLl8rPSJBIituKyIsIituKyIsMCwxLCIrdSsiLCIrKHQtYSkrIiwiKyhlLXMpKyJBIituKyIsIituKyIsMCwxLCIrdSsiLCIrKHRoaXMuX3gxPWwpKyIsIisodGhpcy5feTE9Yyk6aD5OZyYmKHRoaXMuXys9IkEiK24rIiwiK24rIiwwLCIrICsoaD49TGcpKyIsIit1KyIsIisodGhpcy5feDE9dCtuKk1hdGguY29zKHIpKSsiLCIrKHRoaXMuX3kxPWUrbipNYXRoLnNpbihyKSkpKX0scmVjdDpmdW5jdGlvbih0LGUsbixpKXt0aGlzLl8rPSJNIisodGhpcy5feDA9dGhpcy5feDE9K3QpKyIsIisodGhpcy5feTA9dGhpcy5feTE9K2UpKyJoIisgK24rInYiKyAraSsiaCIrLW4rIloifSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl99fTt2YXIgVmc9IiQiO2Z1bmN0aW9uIFVnKCl7fWZ1bmN0aW9uIGpnKHQsZSl7dmFyIG49bmV3IFVnO2lmKHQgaW5zdGFuY2VvZiBVZyl0LmVhY2goKGZ1bmN0aW9uKHQsZSl7bi5zZXQoZSx0KX0pKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkodCkpe3ZhciBpLHI9LTEsbz10Lmxlbmd0aDtpZihudWxsPT1lKWZvcig7KytyPG87KW4uc2V0KHIsdFtyXSk7ZWxzZSBmb3IoOysrcjxvOyluLnNldChlKGk9dFtyXSxyLHQpLGkpfWVsc2UgaWYodClmb3IodmFyIGEgaW4gdCluLnNldChhLHRbYV0pO3JldHVybiBufWZ1bmN0aW9uIEdnKCl7cmV0dXJue319ZnVuY3Rpb24gV2codCxlLG4pe3RbZV09bn1mdW5jdGlvbiBxZygpe3JldHVybiBqZygpfWZ1bmN0aW9uIFlnKHQsZSxuKXt0LnNldChlLG4pfWZ1bmN0aW9uIFhnKCl7fVVnLnByb3RvdHlwZT1qZy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlVnLGhhczpmdW5jdGlvbih0KXtyZXR1cm4gVmcrdCBpbiB0aGlzfSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbVmcrdF19LHNldDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzW1ZnK3RdPWUsdGhpc30scmVtb3ZlOmZ1bmN0aW9uKHQpe3ZhciBlPVZnK3Q7cmV0dXJuIGUgaW4gdGhpcyYmZGVsZXRlIHRoaXNbZV19LGNsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpdFswXT09PVZnJiZkZWxldGUgdGhpc1t0XX0sa2V5czpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT1WZyYmdC5wdXNoKGUuc2xpY2UoMSkpO3JldHVybiB0fSx2YWx1ZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIGUgaW4gdGhpcyllWzBdPT09VmcmJnQucHVzaCh0aGlzW2VdKTtyZXR1cm4gdH0sZW50cmllczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT1WZyYmdC5wdXNoKHtrZXk6ZS5zbGljZSgxKSx2YWx1ZTp0aGlzW2VdfSk7cmV0dXJuIHR9LHNpemU6ZnVuY3Rpb24oKXt2YXIgdD0wO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT1WZyYmKyt0O3JldHVybiB0fSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzKWlmKHRbMF09PT1WZylyZXR1cm4hMTtyZXR1cm4hMH0sZWFjaDpmdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdGhpcyllWzBdPT09VmcmJnQodGhpc1tlXSxlLnNsaWNlKDEpLHRoaXMpfX07dmFyICRnPWpnLnByb3RvdHlwZTtmdW5jdGlvbiBLZyh0LGUpe3ZhciBuPW5ldyBYZztpZih0IGluc3RhbmNlb2YgWGcpdC5lYWNoKChmdW5jdGlvbih0KXtuLmFkZCh0KX0pKTtlbHNlIGlmKHQpe3ZhciBpPS0xLHI9dC5sZW5ndGg7aWYobnVsbD09ZSlmb3IoOysraTxyOyluLmFkZCh0W2ldKTtlbHNlIGZvcig7KytpPHI7KW4uYWRkKGUodFtpXSxpLHQpKX1yZXR1cm4gbn1mdW5jdGlvbiBaZyh0KXt2YXIgZT1bXTtmb3IodmFyIG4gaW4gdCllLnB1c2gobik7cmV0dXJuIGV9WGcucHJvdG90eXBlPUtnLnByb3RvdHlwZT17Y29uc3RydWN0b3I6WGcsaGFzOiRnLmhhcyxhZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbVmcrKHQrPSIiKV09dCx0aGlzfSxyZW1vdmU6JGcucmVtb3ZlLGNsZWFyOiRnLmNsZWFyLHZhbHVlczokZy5rZXlzLHNpemU6JGcuc2l6ZSxlbXB0eTokZy5lbXB0eSxlYWNoOiRnLmVhY2h9O3ZhciBKZz1BcnJheS5wcm90b3R5cGUuc2xpY2U7ZnVuY3Rpb24gUWcodCxlKXtyZXR1cm4gdC1lfWZ1bmN0aW9uIHRfKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBlXyh0LGUpe2Zvcih2YXIgbixpPS0xLHI9ZS5sZW5ndGg7KytpPHI7KWlmKG49bl8odCxlW2ldKSlyZXR1cm4gbjtyZXR1cm4gMH1mdW5jdGlvbiBuXyh0LGUpe2Zvcih2YXIgbj1lWzBdLGk9ZVsxXSxyPS0xLG89MCxhPXQubGVuZ3RoLHM9YS0xO288YTtzPW8rKyl7dmFyIGw9dFtvXSxjPWxbMF0sdT1sWzFdLGg9dFtzXSxkPWhbMF0scD1oWzFdO2lmKGlfKGwsaCxlKSlyZXR1cm4gMDt1PmkhPXA+aSYmbjwoZC1jKSooaS11KS8ocC11KStjJiYocj0tcil9cmV0dXJuIHJ9ZnVuY3Rpb24gaV8odCxlLG4pe3ZhciBpO3JldHVybihmdW5jdGlvbiByKHQsZSxuKXtyZXR1cm4oZVswXS10WzBdKSooblsxXS10WzFdKT09KG5bMF0tdFswXSkqKGVbMV0tdFsxXSl9KSh0LGUsbikmJihmdW5jdGlvbiBvKHQsZSxuKXtyZXR1cm4gdDw9ZSYmZTw9bnx8bjw9ZSYmZTw9dH0pKHRbaT0rKHRbMF09PT1lWzBdKV0sbltpXSxlW2ldKX1mdW5jdGlvbiByXygpe312YXIgb189W1tdLFtbWzEsMS41XSxbLjUsMV1dXSxbW1sxLjUsMV0sWzEsMS41XV1dLFtbWzEuNSwxXSxbLjUsMV1dXSxbW1sxLC41XSxbMS41LDFdXV0sW1tbMSwxLjVdLFsuNSwxXV0sW1sxLC41XSxbMS41LDFdXV0sW1tbMSwuNV0sWzEsMS41XV1dLFtbWzEsLjVdLFsuNSwxXV1dLFtbWy41LDFdLFsxLC41XV1dLFtbWzEsMS41XSxbMSwuNV1dXSxbW1suNSwxXSxbMSwuNV1dLFtbMS41LDFdLFsxLDEuNV1dXSxbW1sxLjUsMV0sWzEsLjVdXV0sW1tbLjUsMV0sWzEuNSwxXV1dLFtbWzEsMS41XSxbMS41LDFdXV0sW1tbLjUsMV0sWzEsMS41XV1dLFtdXTtmdW5jdGlvbiBhXygpe3ZhciB0PTEsZT0xLG49aWMsaT1zO2Z1bmN0aW9uIHIodCl7dmFyIGU9bih0KTtpZihBcnJheS5pc0FycmF5KGUpKWU9ZS5zbGljZSgpLnNvcnQoUWcpO2Vsc2V7dmFyIGk9R2wodCkscj1pWzBdLGE9aVsxXTtlPW5jKHIsYSxlKSxlPUtsKE1hdGguZmxvb3Ioci9lKSplLE1hdGguZmxvb3IoYS9lKSplLGUpfXJldHVybiBlLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIG8odCxlKX0pKX1mdW5jdGlvbiBvKG4scil7dmFyIG89W10scz1bXTtyZXR1cm4oZnVuY3Rpb24gbChuLGkscil7dmFyIG8scyxsLGMsdSxoPW5ldyBBcnJheSxkPW5ldyBBcnJheTtvPXM9LTEsb19bKGw9blswXT49aSk8PDFdLmZvckVhY2gocCk7Zm9yKDsrK288dC0xOylvX1tsfChsPW5bbysxXT49aSk8PDFdLmZvckVhY2gocCk7b19bbDw8MF0uZm9yRWFjaChwKTtmb3IoOysrczxlLTE7KXtmb3Iobz0tMSxvX1sobD1uW3MqdCt0XT49aSk8PDF8KGM9bltzKnRdPj1pKTw8Ml0uZm9yRWFjaChwKTsrK288dC0xOyl1PWMsb19bbHwobD1uW3MqdCt0K28rMV0+PWkpPDwxfChjPW5bcyp0K28rMV0+PWkpPDwyfHU8PDNdLmZvckVhY2gocCk7b19bbHxjPDwzXS5mb3JFYWNoKHApfW89LTEsb19bKGM9bltzKnRdPj1pKTw8Ml0uZm9yRWFjaChwKTtmb3IoOysrbzx0LTE7KXU9YyxvX1soYz1uW3MqdCtvKzFdPj1pKTw8Mnx1PDwzXS5mb3JFYWNoKHApO2Z1bmN0aW9uIHAodCl7dmFyIGUsbixpPVt0WzBdWzBdK28sdFswXVsxXStzXSxsPVt0WzFdWzBdK28sdFsxXVsxXStzXSxjPWEoaSksdT1hKGwpOyhlPWRbY10pPyhuPWhbdV0pPyhkZWxldGUgZFtlLmVuZF0sZGVsZXRlIGhbbi5zdGFydF0sZT09PW4/KGUucmluZy5wdXNoKGwpLHIoZS5yaW5nKSk6aFtlLnN0YXJ0XT1kW24uZW5kXT17c3RhcnQ6ZS5zdGFydCxlbmQ6bi5lbmQscmluZzplLnJpbmcuY29uY2F0KG4ucmluZyl9KTooZGVsZXRlIGRbZS5lbmRdLGUucmluZy5wdXNoKGwpLGRbZS5lbmQ9dV09ZSk6KGU9aFt1XSk/KG49ZFtjXSk/KGRlbGV0ZSBoW2Uuc3RhcnRdLGRlbGV0ZSBkW24uZW5kXSxlPT09bj8oZS5yaW5nLnB1c2gobCkscihlLnJpbmcpKTpoW24uc3RhcnRdPWRbZS5lbmRdPXtzdGFydDpuLnN0YXJ0LGVuZDplLmVuZCxyaW5nOm4ucmluZy5jb25jYXQoZS5yaW5nKX0pOihkZWxldGUgaFtlLnN0YXJ0XSxlLnJpbmcudW5zaGlmdChpKSxoW2Uuc3RhcnQ9Y109ZSk6aFtjXT1kW3VdPXtzdGFydDpjLGVuZDp1LHJpbmc6W2ksbF19fW9fW2M8PDNdLmZvckVhY2gocCl9KShuLHIsKGZ1bmN0aW9uKHQpe2kodCxuLHIpLChmdW5jdGlvbiBlKHQpe2Zvcih2YXIgZT0wLG49dC5sZW5ndGgsaT10W24tMV1bMV0qdFswXVswXS10W24tMV1bMF0qdFswXVsxXTsrK2U8bjspaSs9dFtlLTFdWzFdKnRbZV1bMF0tdFtlLTFdWzBdKnRbZV1bMV07cmV0dXJuIGl9KSh0KT4wP28ucHVzaChbdF0pOnMucHVzaCh0KX0pKSxzLmZvckVhY2goKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTAsaT1vLmxlbmd0aDtuPGk7KytuKWlmKC0xIT09ZV8oKGU9b1tuXSlbMF0sdCkpcmV0dXJuIHZvaWQgZS5wdXNoKHQpfSkpLHt0eXBlOiJNdWx0aVBvbHlnb24iLHZhbHVlOnIsY29vcmRpbmF0ZXM6b319ZnVuY3Rpb24gYShlKXtyZXR1cm4gMiplWzBdK2VbMV0qKHQrMSkqNH1mdW5jdGlvbiBzKG4saSxyKXtuLmZvckVhY2goKGZ1bmN0aW9uKG4pe3ZhciBvLGE9blswXSxzPW5bMV0sbD0wfGEsYz0wfHMsdT1pW2MqdCtsXTthPjAmJmE8dCYmbD09PWEmJihuWzBdPWErKHItKG89aVtjKnQrbC0xXSkpLyh1LW8pLS41KSxzPjAmJnM8ZSYmYz09PXMmJihuWzFdPXMrKHItKG89aVsoYy0xKSp0K2xdKSkvKHUtbyktLjUpfSkpfXJldHVybiByLmNvbnRvdXI9byxyLnNpemU9ZnVuY3Rpb24obil7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuW3QsZV07dmFyIGk9TWF0aC5jZWlsKG5bMF0pLG89TWF0aC5jZWlsKG5bMV0pO2lmKCEoaT4wJiZvPjApKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBzaXplIik7cmV0dXJuIHQ9aSxlPW8scn0sci50aHJlc2hvbGRzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6QXJyYXkuaXNBcnJheSh0KT90XyhKZy5jYWxsKHQpKTp0Xyh0KSxyKTpufSxyLnNtb290aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10P3M6cl8scik6aT09PXN9LHJ9ZnVuY3Rpb24gc18odCxlLG4pe2Zvcih2YXIgaT10LndpZHRoLHI9dC5oZWlnaHQsbz0xKyhuPDwxKSxhPTA7YTxyOysrYSlmb3IodmFyIHM9MCxsPTA7czxpK247KytzKXM8aSYmKGwrPXQuZGF0YVtzK2EqaV0pLHM+PW4mJihzPj1vJiYobC09dC5kYXRhW3MtbythKmldKSxlLmRhdGFbcy1uK2EqaV09bC9NYXRoLm1pbihzKzEsaS0xK28tcyxvKSl9ZnVuY3Rpb24gbF8odCxlLG4pe2Zvcih2YXIgaT10LndpZHRoLHI9dC5oZWlnaHQsbz0xKyhuPDwxKSxhPTA7YTxpOysrYSlmb3IodmFyIHM9MCxsPTA7czxyK247KytzKXM8ciYmKGwrPXQuZGF0YVthK3MqaV0pLHM+PW4mJihzPj1vJiYobC09dC5kYXRhW2ErKHMtbykqaV0pLGUuZGF0YVthKyhzLW4pKmldPWwvTWF0aC5taW4ocysxLHItMStvLXMsbykpfWZ1bmN0aW9uIGNfKHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIHVfKHQpe3JldHVybiB0WzFdfWZ1bmN0aW9uIGhfKCl7cmV0dXJuIDF9dmFyIGRfPXt9LHBfPXt9O2Z1bmN0aW9uIGZfKHQpe3JldHVybiBuZXcgRnVuY3Rpb24oImQiLCJyZXR1cm4geyIrdC5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpKyI6IGRbIitlKyddIHx8ICIiJ30pKS5qb2luKCIsIikrIn0iKX1mdW5jdGlvbiBtXyh0KXt2YXIgZT1PYmplY3QuY3JlYXRlKG51bGwpLG49W107cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7Zm9yKHZhciBpIGluIHQpaSBpbiBlfHxuLnB1c2goZVtpXT1pKX0pKSxufWZ1bmN0aW9uIGdfKHQsZSl7dmFyIG49dCsiIixpPW4ubGVuZ3RoO3JldHVybiBpPGU/bmV3IEFycmF5KGUtaSsxKS5qb2luKDApK246bn1mdW5jdGlvbiBfXyh0KXt2YXIgZT10LmdldFVUQ0hvdXJzKCksbj10LmdldFVUQ01pbnV0ZXMoKSxpPXQuZ2V0VVRDU2Vjb25kcygpLHI9dC5nZXRVVENNaWxsaXNlY29uZHMoKTtyZXR1cm4gaXNOYU4odCk/IkludmFsaWQgRGF0ZSI6KGZ1bmN0aW9uIG8odCl7cmV0dXJuIHQ8MD8iLSIrZ18oLXQsNik6dD45OTk5PyIrIitnXyh0LDYpOmdfKHQsNCl9KSh0LmdldFVUQ0Z1bGxZZWFyKCkpKyItIitnXyh0LmdldFVUQ01vbnRoKCkrMSwyKSsiLSIrZ18odC5nZXRVVENEYXRlKCksMikrKHI/IlQiK2dfKGUsMikrIjoiK2dfKG4sMikrIjoiK2dfKGksMikrIi4iK2dfKHIsMykrIloiOmk/IlQiK2dfKGUsMikrIjoiK2dfKG4sMikrIjoiK2dfKGksMikrIloiOm58fGU/IlQiK2dfKGUsMikrIjoiK2dfKG4sMikrIloiOiIiKX1mdW5jdGlvbiB5Xyh0KXt2YXIgZT1uZXcgUmVnRXhwKCdbIicrdCsiXG5ccl0iKSxuPXQuY2hhckNvZGVBdCgwKTtmdW5jdGlvbiBpKHQsZSl7dmFyIGkscj1bXSxvPXQubGVuZ3RoLGE9MCxzPTAsbD1vPD0wLGM9ITE7ZnVuY3Rpb24gdSgpe2lmKGwpcmV0dXJuIHBfO2lmKGMpcmV0dXJuIGM9ITEsZF87dmFyIGUsaSxyPWE7aWYoMzQ9PT10LmNoYXJDb2RlQXQocikpe2Zvcig7YSsrPG8mJjM0IT09dC5jaGFyQ29kZUF0KGEpfHwzND09PXQuY2hhckNvZGVBdCgrK2EpOyk7cmV0dXJuKGU9YSk+PW8/bD0hMDoxMD09PShpPXQuY2hhckNvZGVBdChhKyspKT9jPSEwOjEzPT09aSYmKGM9ITAsMTA9PT10LmNoYXJDb2RlQXQoYSkmJisrYSksdC5zbGljZShyKzEsZS0xKS5yZXBsYWNlKC8iIi9nLCciJyl9Zm9yKDthPG87KXtpZigxMD09PShpPXQuY2hhckNvZGVBdChlPWErKykpKWM9ITA7ZWxzZSBpZigxMz09PWkpYz0hMCwxMD09PXQuY2hhckNvZGVBdChhKSYmKythO2Vsc2UgaWYoaSE9PW4pY29udGludWU7cmV0dXJuIHQuc2xpY2UocixlKX1yZXR1cm4gbD0hMCx0LnNsaWNlKHIsbyl9Zm9yKDEwPT09dC5jaGFyQ29kZUF0KG8tMSkmJi0tbywxMz09PXQuY2hhckNvZGVBdChvLTEpJiYtLW87KGk9dSgpKSE9PXBfOyl7Zm9yKHZhciBoPVtdO2khPT1kXyYmaSE9PXBfOyloLnB1c2goaSksaT11KCk7ZSYmbnVsbD09KGg9ZShoLHMrKykpfHxyLnB1c2goaCl9cmV0dXJuIHJ9ZnVuY3Rpb24gcihlLG4pe3JldHVybiBlLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIG4ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gYShlW3RdKX0pKS5qb2luKHQpfSkpfWZ1bmN0aW9uIG8oZSl7cmV0dXJuIGUubWFwKGEpLmpvaW4odCl9ZnVuY3Rpb24gYSh0KXtyZXR1cm4gbnVsbD09dD8iIjp0IGluc3RhbmNlb2YgRGF0ZT9fXyh0KTplLnRlc3QodCs9IiIpPyciJyt0LnJlcGxhY2UoLyIvZywnIiInKSsnIic6dH1yZXR1cm57cGFyc2U6ZnVuY3Rpb24gcyh0LGUpe3ZhciBuLHIsbz1pKHQsKGZ1bmN0aW9uKHQsaSl7aWYobilyZXR1cm4gbih0LGktMSk7cj10LG49ZT8oZnVuY3Rpb24gbyh0LGUpe3ZhciBuPWZfKHQpO3JldHVybiBmdW5jdGlvbihpLHIpe3JldHVybiBlKG4oaSkscix0KX19KSh0LGUpOmZfKHQpfSkpO3JldHVybiBvLmNvbHVtbnM9cnx8W10sb30scGFyc2VSb3dzOmksZm9ybWF0OmZ1bmN0aW9uIGwoZSxuKXtyZXR1cm4gbnVsbD09biYmKG49bV8oZSkpLFtuLm1hcChhKS5qb2luKHQpXS5jb25jYXQocihlLG4pKS5qb2luKCJcbiIpfSxmb3JtYXRCb2R5OmZ1bmN0aW9uIGModCxlKXtyZXR1cm4gbnVsbD09ZSYmKGU9bV8odCkpLHIodCxlKS5qb2luKCJcbiIpfSxmb3JtYXRSb3dzOmZ1bmN0aW9uIHUodCl7cmV0dXJuIHQubWFwKG8pLmpvaW4oIlxuIil9LGZvcm1hdFJvdzpvLGZvcm1hdFZhbHVlOmF9fXZhciB2Xz15XygiLCIpLGJfPXZfLnBhcnNlLHhfPXZfLnBhcnNlUm93cyx3Xz12Xy5mb3JtYXQsU189dl8uZm9ybWF0Qm9keSxNXz12Xy5mb3JtYXRSb3dzLEVfPXZfLmZvcm1hdFJvdyxUXz12Xy5mb3JtYXRWYWx1ZSxDXz15XygiXHQiKSxBXz1DXy5wYXJzZSxrXz1DXy5wYXJzZVJvd3MsTF89Q18uZm9ybWF0LFBfPUNfLmZvcm1hdEJvZHksTl89Q18uZm9ybWF0Um93cyxJXz1DXy5mb3JtYXRSb3csUl89Q18uZm9ybWF0VmFsdWU7dmFyIE9fPW5ldyBEYXRlKCIyMDE5LTAxLTAxVDAwOjAwIikuZ2V0SG91cnMoKXx8bmV3IERhdGUoIjIwMTktMDctMDFUMDA6MDAiKS5nZXRIb3VycygpO2Z1bmN0aW9uIHpfKHQpe2lmKCF0Lm9rKXRocm93IG5ldyBFcnJvcih0LnN0YXR1cysiICIrdC5zdGF0dXNUZXh0KTtyZXR1cm4gdC5ibG9iKCl9ZnVuY3Rpb24gRF8odCl7aWYoIXQub2spdGhyb3cgbmV3IEVycm9yKHQuc3RhdHVzKyIgIit0LnN0YXR1c1RleHQpO3JldHVybiB0LmFycmF5QnVmZmVyKCl9ZnVuY3Rpb24gQl8odCl7aWYoIXQub2spdGhyb3cgbmV3IEVycm9yKHQuc3RhdHVzKyIgIit0LnN0YXR1c1RleHQpO3JldHVybiB0LnRleHQoKX1mdW5jdGlvbiBIXyh0LGUpe3JldHVybiBmZXRjaCh0LGUpLnRoZW4oQl8pfWZ1bmN0aW9uIEZfKHQpe3JldHVybiBmdW5jdGlvbihlLG4saSl7cmV0dXJuIDI9PT1hcmd1bWVudHMubGVuZ3RoJiYiZnVuY3Rpb24iPT10eXBlb2YgbiYmKGk9bixuPXZvaWQgMCksSF8oZSxuKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gdChlLGkpfSkpfX12YXIgVl89Rl8oYl8pLFVfPUZfKEFfKTtmdW5jdGlvbiBqXyh0KXtpZighdC5vayl0aHJvdyBuZXcgRXJyb3IodC5zdGF0dXMrIiAiK3Quc3RhdHVzVGV4dCk7aWYoMjA0IT09dC5zdGF0dXMmJjIwNSE9PXQuc3RhdHVzKXJldHVybiB0Lmpzb24oKX1mdW5jdGlvbiBHXyh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm4gSF8oZSxuKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4obmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKGUsdCl9KSl9fXZhciBXXz1HXygiYXBwbGljYXRpb24veG1sIikscV89R18oInRleHQvaHRtbCIpLFlfPUdfKCJpbWFnZS9zdmcreG1sIik7ZnVuY3Rpb24gWF8odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uICRfKCl7cmV0dXJuIDFlLTYqKE1hdGgucmFuZG9tKCktLjUpfWZ1bmN0aW9uIEtfKHQsZSxuLGkpe2lmKGlzTmFOKGUpfHxpc05hTihuKSlyZXR1cm4gdDt2YXIgcixvLGEscyxsLGMsdSxoLGQscD10Ll9yb290LGY9e2RhdGE6aX0sbT10Ll94MCxnPXQuX3kwLF89dC5feDEseT10Ll95MTtpZighcClyZXR1cm4gdC5fcm9vdD1mLHQ7Zm9yKDtwLmxlbmd0aDspaWYoKGM9ZT49KG89KG0rXykvMikpP209bzpfPW8sKHU9bj49KGE9KGcreSkvMikpP2c9YTp5PWEscj1wLCEocD1wW2g9dTw8MXxjXSkpcmV0dXJuIHJbaF09Zix0O2lmKHM9K3QuX3guY2FsbChudWxsLHAuZGF0YSksbD0rdC5feS5jYWxsKG51bGwscC5kYXRhKSxlPT09cyYmbj09PWwpcmV0dXJuIGYubmV4dD1wLHI/cltoXT1mOnQuX3Jvb3Q9Zix0O2Rve3I9cj9yW2hdPW5ldyBBcnJheSg0KTp0Ll9yb290PW5ldyBBcnJheSg0KSwoYz1lPj0obz0obStfKS8yKSk/bT1vOl89bywodT1uPj0oYT0oZyt5KS8yKSk/Zz1hOnk9YX13aGlsZSgoaD11PDwxfGMpPT0oZD0obD49YSk8PDF8cz49bykpO3JldHVybiByW2RdPXAscltoXT1mLHR9ZnVuY3Rpb24gWl8odCxlLG4saSxyKXt0aGlzLm5vZGU9dCx0aGlzLngwPWUsdGhpcy55MD1uLHRoaXMueDE9aSx0aGlzLnkxPXJ9ZnVuY3Rpb24gSl8odCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24gUV8odCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gdHkodCxlLG4pe3ZhciBpPW5ldyBleShudWxsPT1lP0pfOmUsbnVsbD09bj9RXzpuLE5hTixOYU4sTmFOLE5hTik7cmV0dXJuIG51bGw9PXQ/aTppLmFkZEFsbCh0KX1mdW5jdGlvbiBleSh0LGUsbixpLHIsbyl7dGhpcy5feD10LHRoaXMuX3k9ZSx0aGlzLl94MD1uLHRoaXMuX3kwPWksdGhpcy5feDE9cix0aGlzLl95MT1vLHRoaXMuX3Jvb3Q9dm9pZCAwfWZ1bmN0aW9uIG55KHQpe2Zvcih2YXIgZT17ZGF0YTp0LmRhdGF9LG49ZTt0PXQubmV4dDspbj1uLm5leHQ9e2RhdGE6dC5kYXRhfTtyZXR1cm4gZX12YXIgaXk9dHkucHJvdG90eXBlPWV5LnByb3RvdHlwZTtmdW5jdGlvbiByeSh0KXtyZXR1cm4gdC54K3Qudnh9ZnVuY3Rpb24gb3kodCl7cmV0dXJuIHQueSt0LnZ5fWZ1bmN0aW9uIGF5KHQpe3JldHVybiB0LmluZGV4fWZ1bmN0aW9uIHN5KHQsZSl7dmFyIG49dC5nZXQoZSk7aWYoIW4pdGhyb3cgbmV3IEVycm9yKCJtaXNzaW5nOiAiK2UpO3JldHVybiBufWZ1bmN0aW9uIGx5KHQpe3JldHVybiB0Lnh9ZnVuY3Rpb24gY3kodCl7cmV0dXJuIHQueX1peS5jb3B5PWZ1bmN0aW9uKCl7dmFyIHQsZSxuPW5ldyBleSh0aGlzLl94LHRoaXMuX3ksdGhpcy5feDAsdGhpcy5feTAsdGhpcy5feDEsdGhpcy5feTEpLGk9dGhpcy5fcm9vdDtpZighaSlyZXR1cm4gbjtpZighaS5sZW5ndGgpcmV0dXJuIG4uX3Jvb3Q9bnkoaSksbjtmb3IodD1be3NvdXJjZTppLHRhcmdldDpuLl9yb290PW5ldyBBcnJheSg0KX1dO2k9dC5wb3AoKTspZm9yKHZhciByPTA7cjw0OysrcikoZT1pLnNvdXJjZVtyXSkmJihlLmxlbmd0aD90LnB1c2goe3NvdXJjZTplLHRhcmdldDppLnRhcmdldFtyXT1uZXcgQXJyYXkoNCl9KTppLnRhcmdldFtyXT1ueShlKSk7cmV0dXJuIG59LGl5LmFkZD1mdW5jdGlvbiB1eSh0KXt2YXIgZT0rdGhpcy5feC5jYWxsKG51bGwsdCksbj0rdGhpcy5feS5jYWxsKG51bGwsdCk7cmV0dXJuIEtfKHRoaXMuY292ZXIoZSxuKSxlLG4sdCl9LGl5LmFkZEFsbD1mdW5jdGlvbiBoeSh0KXt2YXIgZSxuLGkscixvPXQubGVuZ3RoLGE9bmV3IEFycmF5KG8pLHM9bmV3IEFycmF5KG8pLGw9MS8wLGM9MS8wLHU9LTEvMCxoPS0xLzA7Zm9yKG49MDtuPG87KytuKWlzTmFOKGk9K3RoaXMuX3guY2FsbChudWxsLGU9dFtuXSkpfHxpc05hTihyPSt0aGlzLl95LmNhbGwobnVsbCxlKSl8fChhW25dPWksc1tuXT1yLGk8bCYmKGw9aSksaT51JiYodT1pKSxyPGMmJihjPXIpLHI+aCYmKGg9cikpO2lmKGw+dXx8Yz5oKXJldHVybiB0aGlzO2Zvcih0aGlzLmNvdmVyKGwsYykuY292ZXIodSxoKSxuPTA7bjxvOysrbilLXyh0aGlzLGFbbl0sc1tuXSx0W25dKTtyZXR1cm4gdGhpc30saXkuY292ZXI9ZnVuY3Rpb24gZHkodCxlKXtpZihpc05hTih0PSt0KXx8aXNOYU4oZT0rZSkpcmV0dXJuIHRoaXM7dmFyIG49dGhpcy5feDAsaT10aGlzLl95MCxyPXRoaXMuX3gxLG89dGhpcy5feTE7aWYoaXNOYU4obikpcj0obj1NYXRoLmZsb29yKHQpKSsxLG89KGk9TWF0aC5mbG9vcihlKSkrMTtlbHNle2Zvcih2YXIgYSxzLGw9ci1uLGM9dGhpcy5fcm9vdDtuPnR8fHQ+PXJ8fGk+ZXx8ZT49bzspc3dpdGNoKHM9KGU8aSk8PDF8dDxuLChhPW5ldyBBcnJheSg0KSlbc109YyxjPWEsbCo9MixzKXtjYXNlIDA6cj1uK2wsbz1pK2w7YnJlYWs7Y2FzZSAxOm49ci1sLG89aStsO2JyZWFrO2Nhc2UgMjpyPW4rbCxpPW8tbDticmVhaztjYXNlIDM6bj1yLWwsaT1vLWx9dGhpcy5fcm9vdCYmdGhpcy5fcm9vdC5sZW5ndGgmJih0aGlzLl9yb290PWMpfXJldHVybiB0aGlzLl94MD1uLHRoaXMuX3kwPWksdGhpcy5feDE9cix0aGlzLl95MT1vLHRoaXN9LGl5LmRhdGE9ZnVuY3Rpb24gcHkoKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy52aXNpdCgoZnVuY3Rpb24oZSl7aWYoIWUubGVuZ3RoKWRve3QucHVzaChlLmRhdGEpfXdoaWxlKGU9ZS5uZXh0KX0pKSx0fSxpeS5leHRlbnQ9ZnVuY3Rpb24gZnkodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5jb3ZlcigrdFswXVswXSwrdFswXVsxXSkuY292ZXIoK3RbMV1bMF0sK3RbMV1bMV0pOmlzTmFOKHRoaXMuX3gwKT92b2lkIDA6W1t0aGlzLl94MCx0aGlzLl95MF0sW3RoaXMuX3gxLHRoaXMuX3kxXV19LGl5LmZpbmQ9ZnVuY3Rpb24gbXkodCxlLG4pe3ZhciBpLHIsbyxhLHMsbCxjLHU9dGhpcy5feDAsaD10aGlzLl95MCxkPXRoaXMuX3gxLHA9dGhpcy5feTEsZj1bXSxtPXRoaXMuX3Jvb3Q7Zm9yKG0mJmYucHVzaChuZXcgWl8obSx1LGgsZCxwKSksbnVsbD09bj9uPTEvMDoodT10LW4saD1lLW4sZD10K24scD1lK24sbio9bik7bD1mLnBvcCgpOylpZighKCEobT1sLm5vZGUpfHwocj1sLngwKT5kfHwobz1sLnkwKT5wfHwoYT1sLngxKTx1fHwocz1sLnkxKTxoKSlpZihtLmxlbmd0aCl7dmFyIGc9KHIrYSkvMixfPShvK3MpLzI7Zi5wdXNoKG5ldyBaXyhtWzNdLGcsXyxhLHMpLG5ldyBaXyhtWzJdLHIsXyxnLHMpLG5ldyBaXyhtWzFdLGcsbyxhLF8pLG5ldyBaXyhtWzBdLHIsbyxnLF8pKSwoYz0oZT49Xyk8PDF8dD49ZykmJihsPWZbZi5sZW5ndGgtMV0sZltmLmxlbmd0aC0xXT1mW2YubGVuZ3RoLTEtY10sZltmLmxlbmd0aC0xLWNdPWwpfWVsc2V7dmFyIHk9dC0rdGhpcy5feC5jYWxsKG51bGwsbS5kYXRhKSx2PWUtK3RoaXMuX3kuY2FsbChudWxsLG0uZGF0YSksYj15Knkrdip2O2lmKGI8bil7dmFyIHg9TWF0aC5zcXJ0KG49Yik7dT10LXgsaD1lLXgsZD10K3gscD1lK3gsaT1tLmRhdGF9fXJldHVybiBpfSxpeS5yZW1vdmU9ZnVuY3Rpb24gZ3kodCl7aWYoaXNOYU4obz0rdGhpcy5feC5jYWxsKG51bGwsdCkpfHxpc05hTihhPSt0aGlzLl95LmNhbGwobnVsbCx0KSkpcmV0dXJuIHRoaXM7dmFyIGUsbixpLHIsbyxhLHMsbCxjLHUsaCxkLHA9dGhpcy5fcm9vdCxmPXRoaXMuX3gwLG09dGhpcy5feTAsZz10aGlzLl94MSxfPXRoaXMuX3kxO2lmKCFwKXJldHVybiB0aGlzO2lmKHAubGVuZ3RoKWZvcig7Oyl7aWYoKGM9bz49KHM9KGYrZykvMikpP2Y9czpnPXMsKHU9YT49KGw9KG0rXykvMikpP209bDpfPWwsZT1wLCEocD1wW2g9dTw8MXxjXSkpcmV0dXJuIHRoaXM7aWYoIXAubGVuZ3RoKWJyZWFrOyhlW2grMSYzXXx8ZVtoKzImM118fGVbaCszJjNdKSYmKG49ZSxkPWgpfWZvcig7cC5kYXRhIT09dDspaWYoaT1wLCEocD1wLm5leHQpKXJldHVybiB0aGlzO3JldHVybihyPXAubmV4dCkmJmRlbGV0ZSBwLm5leHQsaT8ocj9pLm5leHQ9cjpkZWxldGUgaS5uZXh0LHRoaXMpOmU/KHI/ZVtoXT1yOmRlbGV0ZSBlW2hdLChwPWVbMF18fGVbMV18fGVbMl18fGVbM10pJiZwPT09KGVbM118fGVbMl18fGVbMV18fGVbMF0pJiYhcC5sZW5ndGgmJihuP25bZF09cDp0aGlzLl9yb290PXApLHRoaXMpOih0aGlzLl9yb290PXIsdGhpcyl9LGl5LnJlbW92ZUFsbD1mdW5jdGlvbiBfeSh0KXtmb3IodmFyIGU9MCxuPXQubGVuZ3RoO2U8bjsrK2UpdGhpcy5yZW1vdmUodFtlXSk7cmV0dXJuIHRoaXN9LGl5LnJvb3Q9ZnVuY3Rpb24geXkoKXtyZXR1cm4gdGhpcy5fcm9vdH0saXkuc2l6ZT1mdW5jdGlvbiB2eSgpe3ZhciB0PTA7cmV0dXJuIHRoaXMudmlzaXQoKGZ1bmN0aW9uKGUpe2lmKCFlLmxlbmd0aClkb3srK3R9d2hpbGUoZT1lLm5leHQpfSkpLHR9LGl5LnZpc2l0PWZ1bmN0aW9uIGJ5KHQpe3ZhciBlLG4saSxyLG8sYSxzPVtdLGw9dGhpcy5fcm9vdDtmb3IobCYmcy5wdXNoKG5ldyBaXyhsLHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSk7ZT1zLnBvcCgpOylpZighdChsPWUubm9kZSxpPWUueDAscj1lLnkwLG89ZS54MSxhPWUueTEpJiZsLmxlbmd0aCl7dmFyIGM9KGkrbykvMix1PShyK2EpLzI7KG49bFszXSkmJnMucHVzaChuZXcgWl8obixjLHUsbyxhKSksKG49bFsyXSkmJnMucHVzaChuZXcgWl8obixpLHUsYyxhKSksKG49bFsxXSkmJnMucHVzaChuZXcgWl8obixjLHIsbyx1KSksKG49bFswXSkmJnMucHVzaChuZXcgWl8obixpLHIsYyx1KSl9cmV0dXJuIHRoaXN9LGl5LnZpc2l0QWZ0ZXI9ZnVuY3Rpb24geHkodCl7dmFyIGUsbj1bXSxpPVtdO2Zvcih0aGlzLl9yb290JiZuLnB1c2gobmV3IFpfKHRoaXMuX3Jvb3QsdGhpcy5feDAsdGhpcy5feTAsdGhpcy5feDEsdGhpcy5feTEpKTtlPW4ucG9wKCk7KXt2YXIgcj1lLm5vZGU7aWYoci5sZW5ndGgpe3ZhciBvLGE9ZS54MCxzPWUueTAsbD1lLngxLGM9ZS55MSx1PShhK2wpLzIsaD0ocytjKS8yOyhvPXJbMF0pJiZuLnB1c2gobmV3IFpfKG8sYSxzLHUsaCkpLChvPXJbMV0pJiZuLnB1c2gobmV3IFpfKG8sdSxzLGwsaCkpLChvPXJbMl0pJiZuLnB1c2gobmV3IFpfKG8sYSxoLHUsYykpLChvPXJbM10pJiZuLnB1c2gobmV3IFpfKG8sdSxoLGwsYykpfWkucHVzaChlKX1mb3IoO2U9aS5wb3AoKTspdChlLm5vZGUsZS54MCxlLnkwLGUueDEsZS55MSk7cmV0dXJuIHRoaXN9LGl5Lng9ZnVuY3Rpb24gd3kodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3g9dCx0aGlzKTp0aGlzLl94fSxpeS55PWZ1bmN0aW9uIFN5KHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl95PXQsdGhpcyk6dGhpcy5feX07dmFyIE15PU1hdGguUEkqKDMtTWF0aC5zcXJ0KDUpKTtmdW5jdGlvbiBFeSh0LGUpe2lmKChuPSh0PWU/dC50b0V4cG9uZW50aWFsKGUtMSk6dC50b0V4cG9uZW50aWFsKCkpLmluZGV4T2YoImUiKSk8MClyZXR1cm4gbnVsbDt2YXIgbixpPXQuc2xpY2UoMCxuKTtyZXR1cm5baS5sZW5ndGg+MT9pWzBdK2kuc2xpY2UoMik6aSwrdC5zbGljZShuKzEpXX1mdW5jdGlvbiBUeSh0KXtyZXR1cm4odD1FeShNYXRoLmFicyh0KSkpP3RbMV06TmFOfXZhciBDeSxBeT0vXig/OiguKT8oWzw+PV5dKSk/KFsrXC0oIF0pPyhbJCNdKT8oMCk/KFxkKyk/KCwpPyhcLlxkKyk/KH4pPyhbYS16JV0pPyQvaTtmdW5jdGlvbiBreSh0KXtpZighKGU9QXkuZXhlYyh0KSkpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGZvcm1hdDogIit0KTt2YXIgZTtyZXR1cm4gbmV3IEx5KHtmaWxsOmVbMV0sYWxpZ246ZVsyXSxzaWduOmVbM10sc3ltYm9sOmVbNF0semVybzplWzVdLHdpZHRoOmVbNl0sY29tbWE6ZVs3XSxwcmVjaXNpb246ZVs4XSYmZVs4XS5zbGljZSgxKSx0cmltOmVbOV0sdHlwZTplWzEwXX0pfWZ1bmN0aW9uIEx5KHQpe3RoaXMuZmlsbD12b2lkIDA9PT10LmZpbGw/IiAiOnQuZmlsbCsiIix0aGlzLmFsaWduPXZvaWQgMD09PXQuYWxpZ24/Ij4iOnQuYWxpZ24rIiIsdGhpcy5zaWduPXZvaWQgMD09PXQuc2lnbj8iLSI6dC5zaWduKyIiLHRoaXMuc3ltYm9sPXZvaWQgMD09PXQuc3ltYm9sPyIiOnQuc3ltYm9sKyIiLHRoaXMuemVybz0hIXQuemVybyx0aGlzLndpZHRoPXZvaWQgMD09PXQud2lkdGg/dm9pZCAwOit0LndpZHRoLHRoaXMuY29tbWE9ISF0LmNvbW1hLHRoaXMucHJlY2lzaW9uPXZvaWQgMD09PXQucHJlY2lzaW9uP3ZvaWQgMDordC5wcmVjaXNpb24sdGhpcy50cmltPSEhdC50cmltLHRoaXMudHlwZT12b2lkIDA9PT10LnR5cGU/IiI6dC50eXBlKyIifWZ1bmN0aW9uIFB5KHQsZSl7dmFyIG49RXkodCxlKTtpZighbilyZXR1cm4gdCsiIjt2YXIgaT1uWzBdLHI9blsxXTtyZXR1cm4gcjwwPyIwLiIrbmV3IEFycmF5KC1yKS5qb2luKCIwIikraTppLmxlbmd0aD5yKzE/aS5zbGljZSgwLHIrMSkrIi4iK2kuc2xpY2UocisxKTppK25ldyBBcnJheShyLWkubGVuZ3RoKzIpLmpvaW4oIjAiKX1reS5wcm90b3R5cGU9THkucHJvdG90eXBlLEx5LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbGwrdGhpcy5hbGlnbit0aGlzLnNpZ24rdGhpcy5zeW1ib2wrKHRoaXMuemVybz8iMCI6IiIpKyh2b2lkIDA9PT10aGlzLndpZHRoPyIiOk1hdGgubWF4KDEsMHx0aGlzLndpZHRoKSkrKHRoaXMuY29tbWE/IiwiOiIiKSsodm9pZCAwPT09dGhpcy5wcmVjaXNpb24/IiI6Ii4iK01hdGgubWF4KDAsMHx0aGlzLnByZWNpc2lvbikpKyh0aGlzLnRyaW0/In4iOiIiKSt0aGlzLnR5cGV9O3ZhciBOeT17IiUiOmZ1bmN0aW9uKHQsZSl7cmV0dXJuKDEwMCp0KS50b0ZpeGVkKGUpfSxiOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDIpfSxjOmZ1bmN0aW9uKHQpe3JldHVybiB0KyIifSxkOmZ1bmN0aW9uIEl5KHQpe3JldHVybiBNYXRoLmFicyh0PU1hdGgucm91bmQodCkpPj0xZTIxP3QudG9Mb2NhbGVTdHJpbmcoImVuIikucmVwbGFjZSgvLC9nLCIiKTp0LnRvU3RyaW5nKDEwKX0sZTpmdW5jdGlvbih0LGUpe3JldHVybiB0LnRvRXhwb25lbnRpYWwoZSl9LGY6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50b0ZpeGVkKGUpfSxnOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudG9QcmVjaXNpb24oZSl9LG86ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoOCl9LHA6ZnVuY3Rpb24odCxlKXtyZXR1cm4gUHkoMTAwKnQsZSl9LHI6UHksczpmdW5jdGlvbiBSeSh0LGUpe3ZhciBuPUV5KHQsZSk7aWYoIW4pcmV0dXJuIHQrIiI7dmFyIGk9blswXSxyPW5bMV0sbz1yLShDeT0zKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihyLzMpKSkpKzEsYT1pLmxlbmd0aDtyZXR1cm4gbz09PWE/aTpvPmE/aStuZXcgQXJyYXkoby1hKzEpLmpvaW4oIjAiKTpvPjA/aS5zbGljZSgwLG8pKyIuIitpLnNsaWNlKG8pOiIwLiIrbmV3IEFycmF5KDEtbykuam9pbigiMCIpK0V5KHQsTWF0aC5tYXgoMCxlK28tMSkpWzBdfSxYOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfSx4OmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDE2KX19O2Z1bmN0aW9uIE95KHQpe3JldHVybiB0fXZhciB6eSxEeSxCeSxIeT1BcnJheS5wcm90b3R5cGUubWFwLEZ5PVsieSIsInoiLCJhIiwiZiIsInAiLCJuIiwiwrUiLCJtIiwiIiwiayIsIk0iLCJHIiwiVCIsIlAiLCJFIiwiWiIsIlkiXTtmdW5jdGlvbiBWeSh0KXt2YXIgZT12b2lkIDA9PT10Lmdyb3VwaW5nfHx2b2lkIDA9PT10LnRob3VzYW5kcz9PeTooZnVuY3Rpb24gbih0LGUpe3JldHVybiBmdW5jdGlvbihuLGkpe2Zvcih2YXIgcj1uLmxlbmd0aCxvPVtdLGE9MCxzPXRbMF0sbD0wO3I+MCYmcz4wJiYobCtzKzE+aSYmKHM9TWF0aC5tYXgoMSxpLWwpKSxvLnB1c2gobi5zdWJzdHJpbmcoci09cyxyK3MpKSwhKChsKz1zKzEpPmkpKTspcz10W2E9KGErMSkldC5sZW5ndGhdO3JldHVybiBvLnJldmVyc2UoKS5qb2luKGUpfX0pKEh5LmNhbGwodC5ncm91cGluZyxOdW1iZXIpLHQudGhvdXNhbmRzKyIiKSxpPXZvaWQgMD09PXQuY3VycmVuY3k/IiI6dC5jdXJyZW5jeVswXSsiIixyPXZvaWQgMD09PXQuY3VycmVuY3k/IiI6dC5jdXJyZW5jeVsxXSsiIixvPXZvaWQgMD09PXQuZGVjaW1hbD8iLiI6dC5kZWNpbWFsKyIiLGE9dm9pZCAwPT09dC5udW1lcmFscz9PeTooZnVuY3Rpb24gcyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvWzAtOV0vZywoZnVuY3Rpb24oZSl7cmV0dXJuIHRbK2VdfSkpfX0pKEh5LmNhbGwodC5udW1lcmFscyxTdHJpbmcpKSxsPXZvaWQgMD09PXQucGVyY2VudD8iJSI6dC5wZXJjZW50KyIiLGM9dm9pZCAwPT09dC5taW51cz8iLSI6dC5taW51cysiIix1PXZvaWQgMD09PXQubmFuPyJOYU4iOnQubmFuKyIiO2Z1bmN0aW9uIGgodCl7dmFyIG49KHQ9a3kodCkpLmZpbGwscz10LmFsaWduLGg9dC5zaWduLGQ9dC5zeW1ib2wscD10Lnplcm8sZj10LndpZHRoLG09dC5jb21tYSxnPXQucHJlY2lzaW9uLF89dC50cmltLHk9dC50eXBlOyJuIj09PXk/KG09ITAseT0iZyIpOk55W3ldfHwodm9pZCAwPT09ZyYmKGc9MTIpLF89ITAseT0iZyIpLChwfHwiMCI9PT1uJiYiPSI9PT1zKSYmKHA9ITAsbj0iMCIscz0iPSIpO3ZhciB2PSIkIj09PWQ/aToiIyI9PT1kJiYvW2JveFhdLy50ZXN0KHkpPyIwIit5LnRvTG93ZXJDYXNlKCk6IiIsYj0iJCI9PT1kP3I6L1slcF0vLnRlc3QoeSk/bDoiIix4PU55W3ldLHc9L1tkZWZncHJzJV0vLnRlc3QoeSk7ZnVuY3Rpb24gUyh0KXt2YXIgaSxyLGwsZD12LFM9YjtpZigiYyI9PT15KVM9eCh0KStTLHQ9IiI7ZWxzZXt2YXIgTT0odD0rdCk8MHx8MS90PDA7aWYodD1pc05hTih0KT91OngoTWF0aC5hYnModCksZyksXyYmKHQ9KGZ1bmN0aW9uIEUodCl7dDpmb3IodmFyIGUsbj10Lmxlbmd0aCxpPTEscj0tMTtpPG47KytpKXN3aXRjaCh0W2ldKXtjYXNlIi4iOnI9ZT1pO2JyZWFrO2Nhc2UiMCI6MD09PXImJihyPWkpLGU9aTticmVhaztkZWZhdWx0OmlmKCErdFtpXSlicmVhayB0O3I+MCYmKHI9MCl9cmV0dXJuIHI+MD90LnNsaWNlKDAscikrdC5zbGljZShlKzEpOnR9KSh0KSksTSYmMD09K3QmJiIrIiE9PWgmJihNPSExKSxkPShNPyIoIj09PWg/aDpjOiItIj09PWh8fCIoIj09PWg/IiI6aCkrZCxTPSgicyI9PT15P0Z5WzgrQ3kvM106IiIpK1MrKE0mJiIoIj09PWg/IikiOiIiKSx3KWZvcihpPS0xLHI9dC5sZW5ndGg7KytpPHI7KWlmKDQ4PihsPXQuY2hhckNvZGVBdChpKSl8fGw+NTcpe1M9KDQ2PT09bD9vK3Quc2xpY2UoaSsxKTp0LnNsaWNlKGkpKStTLHQ9dC5zbGljZSgwLGkpO2JyZWFrfX1tJiYhcCYmKHQ9ZSh0LDEvMCkpO3ZhciBUPWQubGVuZ3RoK3QubGVuZ3RoK1MubGVuZ3RoLEM9VDxmP25ldyBBcnJheShmLVQrMSkuam9pbihuKToiIjtzd2l0Y2gobSYmcCYmKHQ9ZShDK3QsQy5sZW5ndGg/Zi1TLmxlbmd0aDoxLzApLEM9IiIpLHMpe2Nhc2UiPCI6dD1kK3QrUytDO2JyZWFrO2Nhc2UiPSI6dD1kK0MrdCtTO2JyZWFrO2Nhc2UiXiI6dD1DLnNsaWNlKDAsVD1DLmxlbmd0aD4+MSkrZCt0K1MrQy5zbGljZShUKTticmVhaztkZWZhdWx0OnQ9QytkK3QrU31yZXR1cm4gYSh0KX1yZXR1cm4gZz12b2lkIDA9PT1nPzY6L1tncHJzXS8udGVzdCh5KT9NYXRoLm1heCgxLE1hdGgubWluKDIxLGcpKTpNYXRoLm1heCgwLE1hdGgubWluKDIwLGcpKSxTLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHQrIiJ9LFN9cmV0dXJue2Zvcm1hdDpoLGZvcm1hdFByZWZpeDpmdW5jdGlvbiBkKHQsZSl7dmFyIG49aCgoKHQ9a3kodCkpLnR5cGU9ImYiLHQpKSxpPTMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKFR5KGUpLzMpKSkscj1NYXRoLnBvdygxMCwtaSksbz1GeVs4K2kvM107cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBuKHIqdCkrb319fX1mdW5jdGlvbiBVeSh0KXtyZXR1cm4genk9VnkodCksRHk9enkuZm9ybWF0LEJ5PXp5LmZvcm1hdFByZWZpeCx6eX1mdW5jdGlvbiBqeSh0KXtyZXR1cm4gTWF0aC5tYXgoMCwtVHkoTWF0aC5hYnModCkpKX1mdW5jdGlvbiBHeSh0LGUpe3JldHVybiBNYXRoLm1heCgwLDMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKFR5KGUpLzMpKSktVHkoTWF0aC5hYnModCkpKX1mdW5jdGlvbiBXeSh0LGUpe3JldHVybiB0PU1hdGguYWJzKHQpLGU9TWF0aC5hYnMoZSktdCxNYXRoLm1heCgwLFR5KGUpLVR5KHQpKSsxfWZ1bmN0aW9uIHF5KCl7cmV0dXJuIG5ldyBZeX1mdW5jdGlvbiBZeSgpe3RoaXMucmVzZXQoKX1VeSh7ZGVjaW1hbDoiLiIsdGhvdXNhbmRzOiIsIixncm91cGluZzpbM10sY3VycmVuY3k6WyIkIiwiIl0sbWludXM6Ii0ifSksWXkucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpZeSxyZXNldDpmdW5jdGlvbigpe3RoaXMucz10aGlzLnQ9MH0sYWRkOmZ1bmN0aW9uKHQpeyR5KFh5LHQsdGhpcy50KSwkeSh0aGlzLFh5LnMsdGhpcy5zKSx0aGlzLnM/dGhpcy50Kz1YeS50OnRoaXMucz1YeS50fSx2YWx1ZU9mOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc319O3ZhciBYeT1uZXcgWXk7ZnVuY3Rpb24gJHkodCxlLG4pe3ZhciBpPXQucz1lK24scj1pLWU7dC50PWUtKGktcikrKG4tcil9dmFyIEt5PTFlLTYsWnk9MWUtMTIsSnk9TWF0aC5QSSxReT1KeS8yLHR2PUp5LzQsZXY9MipKeSxudj0xODAvSnksaXY9SnkvMTgwLHJ2PU1hdGguYWJzLG92PU1hdGguYXRhbixhdj1NYXRoLmF0YW4yLHN2PU1hdGguY29zLGx2PU1hdGguY2VpbCxjdj1NYXRoLmV4cCx1dj1NYXRoLmxvZyxodj1NYXRoLnBvdyxkdj1NYXRoLnNpbixwdj1NYXRoLnNpZ258fGZ1bmN0aW9uKHQpe3JldHVybiB0PjA/MTp0PDA/LTE6MH0sZnY9TWF0aC5zcXJ0LG12PU1hdGgudGFuO2Z1bmN0aW9uIGd2KHQpe3JldHVybiB0PjE/MDp0PC0xP0p5Ok1hdGguYWNvcyh0KX1mdW5jdGlvbiBfdih0KXtyZXR1cm4gdD4xP1F5OnQ8LTE/LVF5Ok1hdGguYXNpbih0KX1mdW5jdGlvbiB5dih0KXtyZXR1cm4odD1kdih0LzIpKSp0fWZ1bmN0aW9uIHZ2KCl7fWZ1bmN0aW9uIGJ2KHQsZSl7dCYmd3YuaGFzT3duUHJvcGVydHkodC50eXBlKSYmd3ZbdC50eXBlXSh0LGUpfXZhciB4dj17RmVhdHVyZTpmdW5jdGlvbih0LGUpe2J2KHQuZ2VvbWV0cnksZSl9LEZlYXR1cmVDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuZmVhdHVyZXMsaT0tMSxyPW4ubGVuZ3RoOysraTxyOylidihuW2ldLmdlb21ldHJ5LGUpfX0sd3Y9e1NwaGVyZTpmdW5jdGlvbih0LGUpe2Uuc3BoZXJlKCl9LFBvaW50OmZ1bmN0aW9uKHQsZSl7ZS5wb2ludCgodD10LmNvb3JkaW5hdGVzKVswXSx0WzFdLHRbMl0pfSxNdWx0aVBvaW50OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuY29vcmRpbmF0ZXMsaT0tMSxyPW4ubGVuZ3RoOysraTxyOyllLnBvaW50KCh0PW5baV0pWzBdLHRbMV0sdFsyXSl9LExpbmVTdHJpbmc6ZnVuY3Rpb24odCxlKXtTdih0LmNvb3JkaW5hdGVzLGUsMCl9LE11bHRpTGluZVN0cmluZzpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LmNvb3JkaW5hdGVzLGk9LTEscj1uLmxlbmd0aDsrK2k8cjspU3YobltpXSxlLDApfSxQb2x5Z29uOmZ1bmN0aW9uKHQsZSl7TXYodC5jb29yZGluYXRlcyxlKX0sTXVsdGlQb2x5Z29uOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuY29vcmRpbmF0ZXMsaT0tMSxyPW4ubGVuZ3RoOysraTxyOylNdihuW2ldLGUpfSxHZW9tZXRyeUNvbGxlY3Rpb246ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC5nZW9tZXRyaWVzLGk9LTEscj1uLmxlbmd0aDsrK2k8cjspYnYobltpXSxlKX19O2Z1bmN0aW9uIFN2KHQsZSxuKXt2YXIgaSxyPS0xLG89dC5sZW5ndGgtbjtmb3IoZS5saW5lU3RhcnQoKTsrK3I8bzspZS5wb2ludCgoaT10W3JdKVswXSxpWzFdLGlbMl0pO2UubGluZUVuZCgpfWZ1bmN0aW9uIE12KHQsZSl7dmFyIG49LTEsaT10Lmxlbmd0aDtmb3IoZS5wb2x5Z29uU3RhcnQoKTsrK248aTspU3YodFtuXSxlLDEpO2UucG9seWdvbkVuZCgpfWZ1bmN0aW9uIEV2KHQsZSl7dCYmeHYuaGFzT3duUHJvcGVydHkodC50eXBlKT94dlt0LnR5cGVdKHQsZSk6YnYodCxlKX12YXIgVHYsQ3YsQXYsa3YsTHYsUHY9cXkoKSxOdj1xeSgpLEl2PXtwb2ludDp2dixsaW5lU3RhcnQ6dnYsbGluZUVuZDp2dixwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtQdi5yZXNldCgpLEl2LmxpbmVTdGFydD1SdixJdi5saW5lRW5kPU92fSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dmFyIHQ9K1B2O052LmFkZCh0PDA/ZXYrdDp0KSx0aGlzLmxpbmVTdGFydD10aGlzLmxpbmVFbmQ9dGhpcy5wb2ludD12dn0sc3BoZXJlOmZ1bmN0aW9uKCl7TnYuYWRkKGV2KX19O2Z1bmN0aW9uIFJ2KCl7SXYucG9pbnQ9enZ9ZnVuY3Rpb24gT3YoKXtEdihUdixDdil9ZnVuY3Rpb24genYodCxlKXtJdi5wb2ludD1EdixUdj10LEN2PWUsQXY9dCo9aXYsa3Y9c3YoZT0oZSo9aXYpLzIrdHYpLEx2PWR2KGUpfWZ1bmN0aW9uIER2KHQsZSl7dmFyIG49KHQqPWl2KS1BdixpPW4+PTA/MTotMSxyPWkqbixvPXN2KGU9KGUqPWl2KS8yK3R2KSxhPWR2KGUpLHM9THYqYSxsPWt2Km8rcypzdihyKSxjPXMqaSpkdihyKTtQdi5hZGQoYXYoYyxsKSksQXY9dCxrdj1vLEx2PWF9ZnVuY3Rpb24gQnYodCl7cmV0dXJuW2F2KHRbMV0sdFswXSksX3YodFsyXSldfWZ1bmN0aW9uIEh2KHQpe3ZhciBlPXRbMF0sbj10WzFdLGk9c3Yobik7cmV0dXJuW2kqc3YoZSksaSpkdihlKSxkdihuKV19ZnVuY3Rpb24gRnYodCxlKXtyZXR1cm4gdFswXSplWzBdK3RbMV0qZVsxXSt0WzJdKmVbMl19ZnVuY3Rpb24gVnYodCxlKXtyZXR1cm5bdFsxXSplWzJdLXRbMl0qZVsxXSx0WzJdKmVbMF0tdFswXSplWzJdLHRbMF0qZVsxXS10WzFdKmVbMF1dfWZ1bmN0aW9uIFV2KHQsZSl7dFswXSs9ZVswXSx0WzFdKz1lWzFdLHRbMl0rPWVbMl19ZnVuY3Rpb24ganYodCxlKXtyZXR1cm5bdFswXSplLHRbMV0qZSx0WzJdKmVdfWZ1bmN0aW9uIEd2KHQpe3ZhciBlPWZ2KHRbMF0qdFswXSt0WzFdKnRbMV0rdFsyXSp0WzJdKTt0WzBdLz1lLHRbMV0vPWUsdFsyXS89ZX12YXIgV3YscXYsWXYsWHYsJHYsS3YsWnYsSnYsUXYsdGIsZWIsbmIsaWIscmIsb2IsYWIsc2IsbGIsY2IsdWIsaGIsZGIscGIsZmIsbWIsZ2IsX2I9cXkoKSx5Yj17cG9pbnQ6dmIsbGluZVN0YXJ0OnhiLGxpbmVFbmQ6d2IscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7eWIucG9pbnQ9U2IseWIubGluZVN0YXJ0PU1iLHliLmxpbmVFbmQ9RWIsX2IucmVzZXQoKSxJdi5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe0l2LnBvbHlnb25FbmQoKSx5Yi5wb2ludD12Yix5Yi5saW5lU3RhcnQ9eGIseWIubGluZUVuZD13YixQdjwwPyhXdj0tKFl2PTE4MCkscXY9LShYdj05MCkpOl9iPkt5P1h2PTkwOl9iPC0xZS02JiYocXY9LTkwKSx0YlswXT1Xdix0YlsxXT1Zdn0sc3BoZXJlOmZ1bmN0aW9uKCl7V3Y9LShZdj0xODApLHF2PS0oWHY9OTApfX07ZnVuY3Rpb24gdmIodCxlKXtRdi5wdXNoKHRiPVtXdj10LFl2PXRdKSxlPHF2JiYocXY9ZSksZT5YdiYmKFh2PWUpfWZ1bmN0aW9uIGJiKHQsZSl7dmFyIG49SHYoW3QqaXYsZSppdl0pO2lmKEp2KXt2YXIgaT1WdihKdixuKSxyPVZ2KFtpWzFdLC1pWzBdLDBdLGkpO0d2KHIpLHI9QnYocik7dmFyIG8sYT10LSR2LHM9YT4wPzE6LTEsbD1yWzBdKm52KnMsYz1ydihhKT4xODA7Y14ocyokdjxsJiZsPHMqdCk/KG89clsxXSpudik+WHYmJihYdj1vKTpjXihzKiR2PChsPShsKzM2MCklMzYwLTE4MCkmJmw8cyp0KT8obz0tclsxXSpudik8cXYmJihxdj1vKTooZTxxdiYmKHF2PWUpLGU+WHYmJihYdj1lKSksYz90PCR2P1RiKFd2LHQpPlRiKFd2LFl2KSYmKFl2PXQpOlRiKHQsWXYpPlRiKFd2LFl2KSYmKFd2PXQpOll2Pj1Xdj8odDxXdiYmKFd2PXQpLHQ+WXYmJihZdj10KSk6dD4kdj9UYihXdix0KT5UYihXdixZdikmJihZdj10KTpUYih0LFl2KT5UYihXdixZdikmJihXdj10KX1lbHNlIFF2LnB1c2godGI9W1d2PXQsWXY9dF0pO2U8cXYmJihxdj1lKSxlPlh2JiYoWHY9ZSksSnY9biwkdj10fWZ1bmN0aW9uIHhiKCl7eWIucG9pbnQ9YmJ9ZnVuY3Rpb24gd2IoKXt0YlswXT1Xdix0YlsxXT1Zdix5Yi5wb2ludD12YixKdj1udWxsfWZ1bmN0aW9uIFNiKHQsZSl7aWYoSnYpe3ZhciBuPXQtJHY7X2IuYWRkKHJ2KG4pPjE4MD9uKyhuPjA/MzYwOi0zNjApOm4pfWVsc2UgS3Y9dCxadj1lO0l2LnBvaW50KHQsZSksYmIodCxlKX1mdW5jdGlvbiBNYigpe0l2LmxpbmVTdGFydCgpfWZ1bmN0aW9uIEViKCl7U2IoS3YsWnYpLEl2LmxpbmVFbmQoKSxydihfYik+S3kmJihXdj0tKFl2PTE4MCkpLHRiWzBdPVd2LHRiWzFdPVl2LEp2PW51bGx9ZnVuY3Rpb24gVGIodCxlKXtyZXR1cm4oZS09dCk8MD9lKzM2MDplfWZ1bmN0aW9uIENiKHQsZSl7cmV0dXJuIHRbMF0tZVswXX1mdW5jdGlvbiBBYih0LGUpe3JldHVybiB0WzBdPD10WzFdP3RbMF08PWUmJmU8PXRbMV06ZTx0WzBdfHx0WzFdPGV9dmFyIGtiPXtzcGhlcmU6dnYscG9pbnQ6TGIsbGluZVN0YXJ0Ok5iLGxpbmVFbmQ6T2IscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7a2IubGluZVN0YXJ0PXpiLGtiLmxpbmVFbmQ9RGJ9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtrYi5saW5lU3RhcnQ9TmIsa2IubGluZUVuZD1PYn19O2Z1bmN0aW9uIExiKHQsZSl7dCo9aXY7dmFyIG49c3YoZSo9aXYpO1BiKG4qc3YodCksbipkdih0KSxkdihlKSl9ZnVuY3Rpb24gUGIodCxlLG4peysrZWIsaWIrPSh0LWliKS9lYixyYis9KGUtcmIpL2ViLG9iKz0obi1vYikvZWJ9ZnVuY3Rpb24gTmIoKXtrYi5wb2ludD1JYn1mdW5jdGlvbiBJYih0LGUpe3QqPWl2O3ZhciBuPXN2KGUqPWl2KTtmYj1uKnN2KHQpLG1iPW4qZHYodCksZ2I9ZHYoZSksa2IucG9pbnQ9UmIsUGIoZmIsbWIsZ2IpfWZ1bmN0aW9uIFJiKHQsZSl7dCo9aXY7dmFyIG49c3YoZSo9aXYpLGk9bipzdih0KSxyPW4qZHYodCksbz1kdihlKSxhPWF2KGZ2KChhPW1iKm8tZ2IqcikqYSsoYT1nYippLWZiKm8pKmErKGE9ZmIqci1tYippKSphKSxmYippK21iKnIrZ2Iqbyk7bmIrPWEsYWIrPWEqKGZiKyhmYj1pKSksc2IrPWEqKG1iKyhtYj1yKSksbGIrPWEqKGdiKyhnYj1vKSksUGIoZmIsbWIsZ2IpfWZ1bmN0aW9uIE9iKCl7a2IucG9pbnQ9TGJ9ZnVuY3Rpb24gemIoKXtrYi5wb2ludD1CYn1mdW5jdGlvbiBEYigpe0hiKGRiLHBiKSxrYi5wb2ludD1MYn1mdW5jdGlvbiBCYih0LGUpe2RiPXQscGI9ZSx0Kj1pdixlKj1pdixrYi5wb2ludD1IYjt2YXIgbj1zdihlKTtmYj1uKnN2KHQpLG1iPW4qZHYodCksZ2I9ZHYoZSksUGIoZmIsbWIsZ2IpfWZ1bmN0aW9uIEhiKHQsZSl7dCo9aXY7dmFyIG49c3YoZSo9aXYpLGk9bipzdih0KSxyPW4qZHYodCksbz1kdihlKSxhPW1iKm8tZ2IqcixzPWdiKmktZmIqbyxsPWZiKnItbWIqaSxjPWZ2KGEqYStzKnMrbCpsKSx1PV92KGMpLGg9YyYmLXUvYztjYis9aCphLHViKz1oKnMsaGIrPWgqbCxuYis9dSxhYis9dSooZmIrKGZiPWkpKSxzYis9dSoobWIrKG1iPXIpKSxsYis9dSooZ2IrKGdiPW8pKSxQYihmYixtYixnYil9ZnVuY3Rpb24gRmIodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIFZiKHQsZSl7ZnVuY3Rpb24gbihuLGkpe3JldHVybiBuPXQobixpKSxlKG5bMF0sblsxXSl9cmV0dXJuIHQuaW52ZXJ0JiZlLmludmVydCYmKG4uaW52ZXJ0PWZ1bmN0aW9uKG4saSl7cmV0dXJuKG49ZS5pbnZlcnQobixpKSkmJnQuaW52ZXJ0KG5bMF0sblsxXSl9KSxufWZ1bmN0aW9uIFViKHQsZSl7cmV0dXJuW3J2KHQpPkp5P3QrTWF0aC5yb3VuZCgtdC9ldikqZXY6dCxlXX1mdW5jdGlvbiBqYih0LGUsbil7cmV0dXJuKHQlPWV2KT9lfHxuP1ZiKFdiKHQpLHFiKGUsbikpOldiKHQpOmV8fG4/cWIoZSxuKTpVYn1mdW5jdGlvbiBHYih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm5bKGUrPXQpPkp5P2UtZXY6ZTwtSnk/ZStldjplLG5dfX1mdW5jdGlvbiBXYih0KXt2YXIgZT1HYih0KTtyZXR1cm4gZS5pbnZlcnQ9R2IoLXQpLGV9ZnVuY3Rpb24gcWIodCxlKXt2YXIgbj1zdih0KSxpPWR2KHQpLHI9c3YoZSksbz1kdihlKTtmdW5jdGlvbiBhKHQsZSl7dmFyIGE9c3YoZSkscz1zdih0KSphLGw9ZHYodCkqYSxjPWR2KGUpLHU9YypuK3MqaTtyZXR1cm5bYXYobCpyLXUqbyxzKm4tYyppKSxfdih1KnIrbCpvKV19cmV0dXJuIGEuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIGE9c3YoZSkscz1zdih0KSphLGw9ZHYodCkqYSxjPWR2KGUpLHU9YypyLWwqbztyZXR1cm5bYXYobCpyK2MqbyxzKm4rdSppKSxfdih1Km4tcyppKV19LGF9ZnVuY3Rpb24gWWIodCl7ZnVuY3Rpb24gZShlKXtyZXR1cm4oZT10KGVbMF0qaXYsZVsxXSppdikpWzBdKj1udixlWzFdKj1udixlfXJldHVybiB0PWpiKHRbMF0qaXYsdFsxXSppdix0Lmxlbmd0aD4yP3RbMl0qaXY6MCksZS5pbnZlcnQ9ZnVuY3Rpb24oZSl7cmV0dXJuKGU9dC5pbnZlcnQoZVswXSppdixlWzFdKml2KSlbMF0qPW52LGVbMV0qPW52LGV9LGV9ZnVuY3Rpb24gWGIodCxlLG4saSxyLG8pe2lmKG4pe3ZhciBhPXN2KGUpLHM9ZHYoZSksbD1pKm47bnVsbD09cj8ocj1lK2kqZXYsbz1lLWwvMik6KHI9JGIoYSxyKSxvPSRiKGEsbyksKGk+MD9yPG86cj5vKSYmKHIrPWkqZXYpKTtmb3IodmFyIGMsdT1yO2k+MD91Pm86dTxvO3UtPWwpYz1CdihbYSwtcypzdih1KSwtcypkdih1KV0pLHQucG9pbnQoY1swXSxjWzFdKX19ZnVuY3Rpb24gJGIodCxlKXsoZT1IdihlKSlbMF0tPXQsR3YoZSk7dmFyIG49Z3YoLWVbMV0pO3JldHVybigoLWVbMl08MD8tbjpuKStldi1LeSklZXZ9ZnVuY3Rpb24gS2IoKXt2YXIgdCxlPVtdO3JldHVybntwb2ludDpmdW5jdGlvbihlLG4saSl7dC5wdXNoKFtlLG4saV0pfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtlLnB1c2godD1bXSl9LGxpbmVFbmQ6dnYscmVqb2luOmZ1bmN0aW9uKCl7ZS5sZW5ndGg+MSYmZS5wdXNoKGUucG9wKCkuY29uY2F0KGUuc2hpZnQoKSkpfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgbj1lO3JldHVybiBlPVtdLHQ9bnVsbCxufX19ZnVuY3Rpb24gWmIodCxlKXtyZXR1cm4gcnYodFswXS1lWzBdKTxLeSYmcnYodFsxXS1lWzFdKTxLeX1mdW5jdGlvbiBKYih0LGUsbixpKXt0aGlzLng9dCx0aGlzLno9ZSx0aGlzLm89bix0aGlzLmU9aSx0aGlzLnY9ITEsdGhpcy5uPXRoaXMucD1udWxsfWZ1bmN0aW9uIFFiKHQsZSxuLGkscil7dmFyIG8sYSxzPVtdLGw9W107aWYodC5mb3JFYWNoKChmdW5jdGlvbih0KXtpZighKChlPXQubGVuZ3RoLTEpPD0wKSl7dmFyIGUsbixpPXRbMF0sYT10W2VdO2lmKFpiKGksYSkpe2lmKCFpWzJdJiYhYVsyXSl7Zm9yKHIubGluZVN0YXJ0KCksbz0wO288ZTsrK28pci5wb2ludCgoaT10W29dKVswXSxpWzFdKTtyZXR1cm4gdm9pZCByLmxpbmVFbmQoKX1hWzBdKz0yZS02fXMucHVzaChuPW5ldyBKYihpLHQsbnVsbCwhMCkpLGwucHVzaChuLm89bmV3IEpiKGksbnVsbCxuLCExKSkscy5wdXNoKG49bmV3IEpiKGEsdCxudWxsLCExKSksbC5wdXNoKG4ubz1uZXcgSmIoYSxudWxsLG4sITApKX19KSkscy5sZW5ndGgpe2ZvcihsLnNvcnQoZSksdHgocyksdHgobCksbz0wLGE9bC5sZW5ndGg7bzxhOysrbylsW29dLmU9bj0hbjtmb3IodmFyIGMsdSxoPXNbMF07Oyl7Zm9yKHZhciBkPWgscD0hMDtkLnY7KWlmKChkPWQubik9PT1oKXJldHVybjtjPWQueixyLmxpbmVTdGFydCgpO2Rve2lmKGQudj1kLm8udj0hMCxkLmUpe2lmKHApZm9yKG89MCxhPWMubGVuZ3RoO288YTsrK28pci5wb2ludCgodT1jW29dKVswXSx1WzFdKTtlbHNlIGkoZC54LGQubi54LDEscik7ZD1kLm59ZWxzZXtpZihwKWZvcihvPShjPWQucC56KS5sZW5ndGgtMTtvPj0wOy0tbylyLnBvaW50KCh1PWNbb10pWzBdLHVbMV0pO2Vsc2UgaShkLngsZC5wLngsLTEscik7ZD1kLnB9Yz0oZD1kLm8pLnoscD0hcH13aGlsZSghZC52KTtyLmxpbmVFbmQoKX19fWZ1bmN0aW9uIHR4KHQpe2lmKGU9dC5sZW5ndGgpe2Zvcih2YXIgZSxuLGk9MCxyPXRbMF07KytpPGU7KXIubj1uPXRbaV0sbi5wPXIscj1uO3Iubj1uPXRbMF0sbi5wPXJ9fVViLmludmVydD1VYjt2YXIgZXg9cXkoKTtmdW5jdGlvbiBueCh0KXtyZXR1cm4gcnYodFswXSk8PUp5P3RbMF06cHYodFswXSkqKChydih0WzBdKStKeSklZXYtSnkpfWZ1bmN0aW9uIGl4KHQsZSl7dmFyIG49bngoZSksaT1lWzFdLHI9ZHYoaSksbz1bZHYobiksLXN2KG4pLDBdLGE9MCxzPTA7ZXgucmVzZXQoKSwxPT09cj9pPVF5K0t5Oi0xPT09ciYmKGk9LVF5LUt5KTtmb3IodmFyIGw9MCxjPXQubGVuZ3RoO2w8YzsrK2wpaWYoaD0odT10W2xdKS5sZW5ndGgpZm9yKHZhciB1LGgsZD11W2gtMV0scD1ueChkKSxmPWRbMV0vMit0dixtPWR2KGYpLGc9c3YoZiksXz0wO188aDsrK18scD12LG09eCxnPXcsZD15KXt2YXIgeT11W19dLHY9bngoeSksYj15WzFdLzIrdHYseD1kdihiKSx3PXN2KGIpLFM9di1wLE09Uz49MD8xOi0xLEU9TSpTLFQ9RT5KeSxDPW0qeDtpZihleC5hZGQoYXYoQypNKmR2KEUpLGcqdytDKnN2KEUpKSksYSs9VD9TK00qZXY6UyxUXnA+PW5edj49bil7dmFyIEE9VnYoSHYoZCksSHYoeSkpO0d2KEEpO3ZhciBrPVZ2KG8sQSk7R3Yoayk7dmFyIEw9KFReUz49MD8tMToxKSpfdihrWzJdKTsoaT5MfHxpPT09TCYmKEFbMF18fEFbMV0pKSYmKHMrPVReUz49MD8xOi0xKX19cmV0dXJuKGE8LTFlLTZ8fGE8S3kmJmV4PC0xZS02KV4xJnN9ZnVuY3Rpb24gcngodCxlLG4saSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3ZhciBvLGEscyxsPWUociksYz1LYigpLHU9ZShjKSxoPSExLGQ9e3BvaW50OnAsbGluZVN0YXJ0Om0sbGluZUVuZDpnLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2QucG9pbnQ9XyxkLmxpbmVTdGFydD15LGQubGluZUVuZD12LGE9W10sbz1bXX0scG9seWdvbkVuZDpmdW5jdGlvbigpe2QucG9pbnQ9cCxkLmxpbmVTdGFydD1tLGQubGluZUVuZD1nLGE9YWMoYSk7dmFyIHQ9aXgobyxpKTthLmxlbmd0aD8oaHx8KHIucG9seWdvblN0YXJ0KCksaD0hMCksUWIoYSxheCx0LG4scikpOnQmJihofHwoci5wb2x5Z29uU3RhcnQoKSxoPSEwKSxyLmxpbmVTdGFydCgpLG4obnVsbCxudWxsLDEsciksci5saW5lRW5kKCkpLGgmJihyLnBvbHlnb25FbmQoKSxoPSExKSxhPW89bnVsbH0sc3BoZXJlOmZ1bmN0aW9uKCl7ci5wb2x5Z29uU3RhcnQoKSxyLmxpbmVTdGFydCgpLG4obnVsbCxudWxsLDEsciksci5saW5lRW5kKCksci5wb2x5Z29uRW5kKCl9fTtmdW5jdGlvbiBwKGUsbil7dChlLG4pJiZyLnBvaW50KGUsbil9ZnVuY3Rpb24gZih0LGUpe2wucG9pbnQodCxlKX1mdW5jdGlvbiBtKCl7ZC5wb2ludD1mLGwubGluZVN0YXJ0KCl9ZnVuY3Rpb24gZygpe2QucG9pbnQ9cCxsLmxpbmVFbmQoKX1mdW5jdGlvbiBfKHQsZSl7cy5wdXNoKFt0LGVdKSx1LnBvaW50KHQsZSl9ZnVuY3Rpb24geSgpe3UubGluZVN0YXJ0KCkscz1bXX1mdW5jdGlvbiB2KCl7XyhzWzBdWzBdLHNbMF1bMV0pLHUubGluZUVuZCgpO3ZhciB0LGUsbixpLGw9dS5jbGVhbigpLGQ9Yy5yZXN1bHQoKSxwPWQubGVuZ3RoO2lmKHMucG9wKCksby5wdXNoKHMpLHM9bnVsbCxwKWlmKDEmbCl7aWYoKGU9KG49ZFswXSkubGVuZ3RoLTEpPjApe2ZvcihofHwoci5wb2x5Z29uU3RhcnQoKSxoPSEwKSxyLmxpbmVTdGFydCgpLHQ9MDt0PGU7Kyt0KXIucG9pbnQoKGk9blt0XSlbMF0saVsxXSk7ci5saW5lRW5kKCl9fWVsc2UgcD4xJiYyJmwmJmQucHVzaChkLnBvcCgpLmNvbmNhdChkLnNoaWZ0KCkpKSxhLnB1c2goZC5maWx0ZXIob3gpKX1yZXR1cm4gZH19ZnVuY3Rpb24gb3godCl7cmV0dXJuIHQubGVuZ3RoPjF9ZnVuY3Rpb24gYXgodCxlKXtyZXR1cm4oKHQ9dC54KVswXTwwP3RbMV0tUXktS3k6UXktdFsxXSktKChlPWUueClbMF08MD9lWzFdLVF5LUt5OlF5LWVbMV0pfXZhciBzeD1yeCgoZnVuY3Rpb24oKXtyZXR1cm4hMH0pLChmdW5jdGlvbiBseCh0KXt2YXIgZSxuPU5hTixpPU5hTixyPU5hTjtyZXR1cm57bGluZVN0YXJ0OmZ1bmN0aW9uKCl7dC5saW5lU3RhcnQoKSxlPTF9LHBvaW50OmZ1bmN0aW9uKG8sYSl7dmFyIHM9bz4wP0p5Oi1KeSxsPXJ2KG8tbik7cnYobC1KeSk8S3k/KHQucG9pbnQobixpPShpK2EpLzI+MD9ReTotUXkpLHQucG9pbnQocixpKSx0LmxpbmVFbmQoKSx0LmxpbmVTdGFydCgpLHQucG9pbnQocyxpKSx0LnBvaW50KG8saSksZT0wKTpyIT09cyYmbD49SnkmJihydihuLXIpPEt5JiYobi09cipLeSkscnYoby1zKTxLeSYmKG8tPXMqS3kpLGk9KGZ1bmN0aW9uIGModCxlLG4saSl7dmFyIHIsbyxhPWR2KHQtbik7cmV0dXJuIHJ2KGEpPkt5P292KChkdihlKSoobz1zdihpKSkqZHYobiktZHYoaSkqKHI9c3YoZSkpKmR2KHQpKS8ocipvKmEpKTooZStpKS8yfSkobixpLG8sYSksdC5wb2ludChyLGkpLHQubGluZUVuZCgpLHQubGluZVN0YXJ0KCksdC5wb2ludChzLGkpLGU9MCksdC5wb2ludChuPW8saT1hKSxyPXN9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0LmxpbmVFbmQoKSxuPWk9TmFOfSxjbGVhbjpmdW5jdGlvbigpe3JldHVybiAyLWV9fX0pLChmdW5jdGlvbiBjeCh0LGUsbixpKXt2YXIgcjtpZihudWxsPT10KWkucG9pbnQoLUp5LHI9bipReSksaS5wb2ludCgwLHIpLGkucG9pbnQoSnksciksaS5wb2ludChKeSwwKSxpLnBvaW50KEp5LC1yKSxpLnBvaW50KDAsLXIpLGkucG9pbnQoLUp5LC1yKSxpLnBvaW50KC1KeSwwKSxpLnBvaW50KC1KeSxyKTtlbHNlIGlmKHJ2KHRbMF0tZVswXSk+S3kpe3ZhciBvPXRbMF08ZVswXT9KeTotSnk7aS5wb2ludCgtbyxyPW4qby8yKSxpLnBvaW50KDAsciksaS5wb2ludChvLHIpfWVsc2UgaS5wb2ludChlWzBdLGVbMV0pfSksWy1KeSwtUXldKTtmdW5jdGlvbiB1eCh0KXt2YXIgZT1zdih0KSxuPTYqaXYsaT1lPjAscj1ydihlKT5LeTtmdW5jdGlvbiBvKHQsbil7cmV0dXJuIHN2KHQpKnN2KG4pPmV9ZnVuY3Rpb24gYSh0LG4saSl7dmFyIHI9WzEsMCwwXSxvPVZ2KEh2KHQpLEh2KG4pKSxhPUZ2KG8sbykscz1vWzBdLGw9YS1zKnM7aWYoIWwpcmV0dXJuIWkmJnQ7dmFyIGM9ZSphL2wsdT0tZSpzL2wsaD1WdihyLG8pLGQ9anYocixjKTtVdihkLGp2KG8sdSkpO3ZhciBwPWgsZj1GdihkLHApLG09RnYocCxwKSxnPWYqZi1tKihGdihkLGQpLTEpO2lmKCEoZzwwKSl7dmFyIF89ZnYoZykseT1qdihwLCgtZi1fKS9tKTtpZihVdih5LGQpLHk9QnYoeSksIWkpcmV0dXJuIHk7dmFyIHYsYj10WzBdLHg9blswXSx3PXRbMV0sUz1uWzFdO3g8YiYmKHY9YixiPXgseD12KTt2YXIgTT14LWIsRT1ydihNLUp5KTxLeTtpZighRSYmUzx3JiYodj13LHc9UyxTPXYpLEV8fE08S3k/RT93K1M+MF55WzFdPChydih5WzBdLWIpPEt5P3c6Uyk6dzw9eVsxXSYmeVsxXTw9UzpNPkp5XihiPD15WzBdJiZ5WzBdPD14KSl7dmFyIFQ9anYocCwoLWYrXykvbSk7cmV0dXJuIFV2KFQsZCksW3ksQnYoVCldfX19ZnVuY3Rpb24gcyhlLG4pe3ZhciByPWk/dDpKeS10LG89MDtyZXR1cm4gZTwtcj9vfD0xOmU+ciYmKG98PTIpLG48LXI/b3w9NDpuPnImJihvfD04KSxvfXJldHVybiByeChvLChmdW5jdGlvbiBsKHQpe3ZhciBlLG4sbCxjLHU7cmV0dXJue2xpbmVTdGFydDpmdW5jdGlvbigpe2M9bD0hMSx1PTF9LHBvaW50OmZ1bmN0aW9uKGgsZCl7dmFyIHAsZj1baCxkXSxtPW8oaCxkKSxnPWk/bT8wOnMoaCxkKTptP3MoaCsoaDwwP0p5Oi1KeSksZCk6MDtpZighZSYmKGM9bD1tKSYmdC5saW5lU3RhcnQoKSxtIT09bCYmKCEocD1hKGUsZikpfHxaYihlLHApfHxaYihmLHApKSYmKGZbMl09MSksbSE9PWwpdT0wLG0/KHQubGluZVN0YXJ0KCkscD1hKGYsZSksdC5wb2ludChwWzBdLHBbMV0pKToocD1hKGUsZiksdC5wb2ludChwWzBdLHBbMV0sMiksdC5saW5lRW5kKCkpLGU9cDtlbHNlIGlmKHImJmUmJmlebSl7dmFyIF87ZyZufHwhKF89YShmLGUsITApKXx8KHU9MCxpPyh0LmxpbmVTdGFydCgpLHQucG9pbnQoX1swXVswXSxfWzBdWzFdKSx0LnBvaW50KF9bMV1bMF0sX1sxXVsxXSksdC5saW5lRW5kKCkpOih0LnBvaW50KF9bMV1bMF0sX1sxXVsxXSksdC5saW5lRW5kKCksdC5saW5lU3RhcnQoKSx0LnBvaW50KF9bMF1bMF0sX1swXVsxXSwzKSkpfSFtfHxlJiZaYihlLGYpfHx0LnBvaW50KGZbMF0sZlsxXSksZT1mLGw9bSxuPWd9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtsJiZ0LmxpbmVFbmQoKSxlPW51bGx9LGNsZWFuOmZ1bmN0aW9uKCl7cmV0dXJuIHV8KGMmJmwpPDwxfX19KSwoZnVuY3Rpb24gYyhlLGkscixvKXtYYihvLHQsbixyLGUsaSl9KSxpP1swLC10XTpbLUp5LHQtSnldKX12YXIgaHg9MWU5LGR4PS1oeDtmdW5jdGlvbiBweCh0LGUsbixpKXtmdW5jdGlvbiByKHIsbyl7cmV0dXJuIHQ8PXImJnI8PW4mJmU8PW8mJm88PWl9ZnVuY3Rpb24gbyhyLG8scyxjKXt2YXIgdT0wLGg9MDtpZihudWxsPT1yfHwodT1hKHIscykpIT09KGg9YShvLHMpKXx8bChyLG8pPDBecz4wKWRve2MucG9pbnQoMD09PXV8fDM9PT11P3Q6bix1PjE/aTplKX13aGlsZSgodT0odStzKzQpJTQpIT09aCk7ZWxzZSBjLnBvaW50KG9bMF0sb1sxXSl9ZnVuY3Rpb24gYShpLHIpe3JldHVybiBydihpWzBdLXQpPEt5P3I+MD8wOjM6cnYoaVswXS1uKTxLeT9yPjA/MjoxOnJ2KGlbMV0tZSk8S3k/cj4wPzE6MDpyPjA/MzoyfWZ1bmN0aW9uIHModCxlKXtyZXR1cm4gbCh0LngsZS54KX1mdW5jdGlvbiBsKHQsZSl7dmFyIG49YSh0LDEpLGk9YShlLDEpO3JldHVybiBuIT09aT9uLWk6MD09PW4/ZVsxXS10WzFdOjE9PT1uP3RbMF0tZVswXToyPT09bj90WzFdLWVbMV06ZVswXS10WzBdfXJldHVybiBmdW5jdGlvbihhKXt2YXIgbCxjLHUsaCxkLHAsZixtLGcsXyx5LHY9YSxiPUtiKCkseD17cG9pbnQ6VCxsaW5lU3RhcnQ6ZnVuY3Rpb24gdygpe3gucG9pbnQ9QyxjJiZjLnB1c2godT1bXSk7Xz0hMCxnPSExLGY9bT1OYU59LGxpbmVFbmQ6ZnVuY3Rpb24gUygpe2wmJihDKGgsZCkscCYmZyYmYi5yZWpvaW4oKSxsLnB1c2goYi5yZXN1bHQoKSkpO3gucG9pbnQ9VCxnJiZ2LmxpbmVFbmQoKX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uIE0oKXt2PWIsbD1bXSxjPVtdLHk9ITB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24gRSgpe3ZhciBlPShmdW5jdGlvbiBuKCl7Zm9yKHZhciBlPTAsbj0wLHI9Yy5sZW5ndGg7bjxyOysrbilmb3IodmFyIG8sYSxzPWNbbl0sbD0xLHU9cy5sZW5ndGgsaD1zWzBdLGQ9aFswXSxwPWhbMV07bDx1OysrbClvPWQsYT1wLGQ9KGg9c1tsXSlbMF0scD1oWzFdLGE8PWk/cD5pJiYoZC1vKSooaS1hKT4ocC1hKSoodC1vKSYmKytlOnA8PWkmJihkLW8pKihpLWEpPChwLWEpKih0LW8pJiYtLWU7cmV0dXJuIGV9KSgpLHI9eSYmZSxoPShsPWFjKGwpKS5sZW5ndGg7KHJ8fGgpJiYoYS5wb2x5Z29uU3RhcnQoKSxyJiYoYS5saW5lU3RhcnQoKSxvKG51bGwsbnVsbCwxLGEpLGEubGluZUVuZCgpKSxoJiZRYihsLHMsZSxvLGEpLGEucG9seWdvbkVuZCgpKTt2PWEsbD1jPXU9bnVsbH19O2Z1bmN0aW9uIFQodCxlKXtyKHQsZSkmJnYucG9pbnQodCxlKX1mdW5jdGlvbiBDKG8sYSl7dmFyIHM9cihvLGEpO2lmKGMmJnUucHVzaChbbyxhXSksXyloPW8sZD1hLHA9cyxfPSExLHMmJih2LmxpbmVTdGFydCgpLHYucG9pbnQobyxhKSk7ZWxzZSBpZihzJiZnKXYucG9pbnQobyxhKTtlbHNle3ZhciBsPVtmPU1hdGgubWF4KGR4LE1hdGgubWluKGh4LGYpKSxtPU1hdGgubWF4KGR4LE1hdGgubWluKGh4LG0pKV0sYj1bbz1NYXRoLm1heChkeCxNYXRoLm1pbihoeCxvKSksYT1NYXRoLm1heChkeCxNYXRoLm1pbihoeCxhKSldOyEoZnVuY3Rpb24geCh0LGUsbixpLHIsbyl7dmFyIGEscz10WzBdLGw9dFsxXSxjPTAsdT0xLGg9ZVswXS1zLGQ9ZVsxXS1sO2lmKGE9bi1zLGh8fCEoYT4wKSl7aWYoYS89aCxoPDApe2lmKGE8YylyZXR1cm47YTx1JiYodT1hKX1lbHNlIGlmKGg+MCl7aWYoYT51KXJldHVybjthPmMmJihjPWEpfWlmKGE9ci1zLGh8fCEoYTwwKSl7aWYoYS89aCxoPDApe2lmKGE+dSlyZXR1cm47YT5jJiYoYz1hKX1lbHNlIGlmKGg+MCl7aWYoYTxjKXJldHVybjthPHUmJih1PWEpfWlmKGE9aS1sLGR8fCEoYT4wKSl7aWYoYS89ZCxkPDApe2lmKGE8YylyZXR1cm47YTx1JiYodT1hKX1lbHNlIGlmKGQ+MCl7aWYoYT51KXJldHVybjthPmMmJihjPWEpfWlmKGE9by1sLGR8fCEoYTwwKSl7aWYoYS89ZCxkPDApe2lmKGE+dSlyZXR1cm47YT5jJiYoYz1hKX1lbHNlIGlmKGQ+MCl7aWYoYTxjKXJldHVybjthPHUmJih1PWEpfXJldHVybiBjPjAmJih0WzBdPXMrYypoLHRbMV09bCtjKmQpLHU8MSYmKGVbMF09cyt1KmgsZVsxXT1sK3UqZCksITB9fX19fSkobCxiLHQsZSxuLGkpP3MmJih2LmxpbmVTdGFydCgpLHYucG9pbnQobyxhKSx5PSExKTooZ3x8KHYubGluZVN0YXJ0KCksdi5wb2ludChsWzBdLGxbMV0pKSx2LnBvaW50KGJbMF0sYlsxXSksc3x8di5saW5lRW5kKCkseT0hMSl9Zj1vLG09YSxnPXN9cmV0dXJuIHh9fXZhciBmeCxteCxneCxfeD1xeSgpLHl4PXtzcGhlcmU6dnYscG9pbnQ6dnYsbGluZVN0YXJ0OmZ1bmN0aW9uIHZ4KCl7eXgucG9pbnQ9eHgseXgubGluZUVuZD1ieH0sbGluZUVuZDp2dixwb2x5Z29uU3RhcnQ6dnYscG9seWdvbkVuZDp2dn07ZnVuY3Rpb24gYngoKXt5eC5wb2ludD15eC5saW5lRW5kPXZ2fWZ1bmN0aW9uIHh4KHQsZSl7Zng9dCo9aXYsbXg9ZHYoZSo9aXYpLGd4PXN2KGUpLHl4LnBvaW50PXd4fWZ1bmN0aW9uIHd4KHQsZSl7dCo9aXY7dmFyIG49ZHYoZSo9aXYpLGk9c3YoZSkscj1ydih0LWZ4KSxvPXN2KHIpLGE9aSpkdihyKSxzPWd4Km4tbXgqaSpvLGw9bXgqbitneCppKm87X3guYWRkKGF2KGZ2KGEqYStzKnMpLGwpKSxmeD10LG14PW4sZ3g9aX1mdW5jdGlvbiBTeCh0KXtyZXR1cm4gX3gucmVzZXQoKSxFdih0LHl4KSwrX3h9dmFyIE14PVtudWxsLG51bGxdLEV4PXt0eXBlOiJMaW5lU3RyaW5nIixjb29yZGluYXRlczpNeH07ZnVuY3Rpb24gVHgodCxlKXtyZXR1cm4gTXhbMF09dCxNeFsxXT1lLFN4KEV4KX12YXIgQ3g9e0ZlYXR1cmU6ZnVuY3Rpb24odCxlKXtyZXR1cm4ga3godC5nZW9tZXRyeSxlKX0sRmVhdHVyZUNvbGxlY3Rpb246ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC5mZWF0dXJlcyxpPS0xLHI9bi5sZW5ndGg7KytpPHI7KWlmKGt4KG5baV0uZ2VvbWV0cnksZSkpcmV0dXJuITA7cmV0dXJuITF9fSxBeD17U3BoZXJlOmZ1bmN0aW9uKCl7cmV0dXJuITB9LFBvaW50OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIEx4KHQuY29vcmRpbmF0ZXMsZSl9LE11bHRpUG9pbnQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC5jb29yZGluYXRlcyxpPS0xLHI9bi5sZW5ndGg7KytpPHI7KWlmKEx4KG5baV0sZSkpcmV0dXJuITA7cmV0dXJuITF9LExpbmVTdHJpbmc6ZnVuY3Rpb24odCxlKXtyZXR1cm4gUHgodC5jb29yZGluYXRlcyxlKX0sTXVsdGlMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuY29vcmRpbmF0ZXMsaT0tMSxyPW4ubGVuZ3RoOysraTxyOylpZihQeChuW2ldLGUpKXJldHVybiEwO3JldHVybiExfSxQb2x5Z29uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIE54KHQuY29vcmRpbmF0ZXMsZSl9LE11bHRpUG9seWdvbjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LmNvb3JkaW5hdGVzLGk9LTEscj1uLmxlbmd0aDsrK2k8cjspaWYoTngobltpXSxlKSlyZXR1cm4hMDtyZXR1cm4hMX0sR2VvbWV0cnlDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuZ2VvbWV0cmllcyxpPS0xLHI9bi5sZW5ndGg7KytpPHI7KWlmKGt4KG5baV0sZSkpcmV0dXJuITA7cmV0dXJuITF9fTtmdW5jdGlvbiBreCh0LGUpe3JldHVybiEoIXR8fCFBeC5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpKSYmQXhbdC50eXBlXSh0LGUpfWZ1bmN0aW9uIEx4KHQsZSl7cmV0dXJuIDA9PT1UeCh0LGUpfWZ1bmN0aW9uIFB4KHQsZSl7Zm9yKHZhciBuLGkscixvPTAsYT10Lmxlbmd0aDtvPGE7bysrKXtpZigwPT09KGk9VHgodFtvXSxlKSkpcmV0dXJuITA7aWYobz4wJiYocj1UeCh0W29dLHRbby0xXSkpPjAmJm48PXImJmk8PXImJihuK2ktcikqKDEtTWF0aC5wb3coKG4taSkvciwyKSk8WnkqcilyZXR1cm4hMDtuPWl9cmV0dXJuITF9ZnVuY3Rpb24gTngodCxlKXtyZXR1cm4hIWl4KHQubWFwKEl4KSxSeChlKSl9ZnVuY3Rpb24gSXgodCl7cmV0dXJuKHQ9dC5tYXAoUngpKS5wb3AoKSx0fWZ1bmN0aW9uIFJ4KHQpe3JldHVyblt0WzBdKml2LHRbMV0qaXZdfWZ1bmN0aW9uIE94KHQsZSxuKXt2YXIgaT1LbCh0LGUtS3ksbikuY29uY2F0KGUpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gaS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVyblt0LGVdfSkpfX1mdW5jdGlvbiB6eCh0LGUsbil7dmFyIGk9S2wodCxlLUt5LG4pLmNvbmNhdChlKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGkubWFwKChmdW5jdGlvbihlKXtyZXR1cm5bZSx0XX0pKX19ZnVuY3Rpb24gRHgoKXt2YXIgdCxlLG4saSxyLG8sYSxzLGwsYyx1LGgsZD0xMCxwPWQsZj05MCxtPTM2MCxnPTIuNTtmdW5jdGlvbiBfKCl7cmV0dXJue3R5cGU6Ik11bHRpTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6eSgpfX1mdW5jdGlvbiB5KCl7cmV0dXJuIEtsKGx2KGkvZikqZixuLGYpLm1hcCh1KS5jb25jYXQoS2wobHYocy9tKSptLGEsbSkubWFwKGgpKS5jb25jYXQoS2wobHYoZS9kKSpkLHQsZCkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gcnYodCVmKT5LeX0pKS5tYXAobCkpLmNvbmNhdChLbChsdihvL3ApKnAscixwKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBydih0JW0pPkt5fSkpLm1hcChjKSl9cmV0dXJuIF8ubGluZXM9ZnVuY3Rpb24oKXtyZXR1cm4geSgpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6IkxpbmVTdHJpbmciLGNvb3JkaW5hdGVzOnR9fSkpfSxfLm91dGxpbmU9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToiUG9seWdvbiIsY29vcmRpbmF0ZXM6W3UoaSkuY29uY2F0KGgoYSkuc2xpY2UoMSksdShuKS5yZXZlcnNlKCkuc2xpY2UoMSksaChzKS5yZXZlcnNlKCkuc2xpY2UoMSkpXX19LF8uZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP18uZXh0ZW50TWFqb3IodCkuZXh0ZW50TWlub3IodCk6Xy5leHRlbnRNaW5vcigpfSxfLmV4dGVudE1ham9yPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSt0WzBdWzFdLGE9K3RbMV1bMV0sKGk9K3RbMF1bMF0pPihuPSt0WzFdWzBdKSYmKHQ9aSxpPW4sbj10KSxzPmEmJih0PXMscz1hLGE9dCksXy5wcmVjaXNpb24oZykpOltbaSxzXSxbbixhXV19LF8uZXh0ZW50TWlub3I9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89K25bMF1bMV0scj0rblsxXVsxXSwoZT0rblswXVswXSk+KHQ9K25bMV1bMF0pJiYobj1lLGU9dCx0PW4pLG8+ciYmKG49byxvPXIscj1uKSxfLnByZWNpc2lvbihnKSk6W1tlLG9dLFt0LHJdXX0sXy5zdGVwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP18uc3RlcE1ham9yKHQpLnN0ZXBNaW5vcih0KTpfLnN0ZXBNaW5vcigpfSxfLnN0ZXBNYWpvcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj0rdFswXSxtPSt0WzFdLF8pOltmLG1dfSxfLnN0ZXBNaW5vcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZD0rdFswXSxwPSt0WzFdLF8pOltkLHBdfSxfLnByZWNpc2lvbj1mdW5jdGlvbihkKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz0rZCxsPU94KG8sciw5MCksYz16eChlLHQsZyksdT1PeChzLGEsOTApLGg9engoaSxuLGcpLF8pOmd9LF8uZXh0ZW50TWFqb3IoW1stMTgwLC04OS45OTk5OTldLFsxODAsODkuOTk5OTk5XV0pLmV4dGVudE1pbm9yKFtbLTE4MCwtODAuMDAwMDAxXSxbMTgwLDgwLjAwMDAwMV1dKX1mdW5jdGlvbiBCeCh0KXtyZXR1cm4gdH12YXIgSHgsRngsVngsVXgsang9cXkoKSxHeD1xeSgpLFd4PXtwb2ludDp2dixsaW5lU3RhcnQ6dnYsbGluZUVuZDp2dixwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtXeC5saW5lU3RhcnQ9cXgsV3gubGluZUVuZD0keH0scG9seWdvbkVuZDpmdW5jdGlvbigpe1d4LmxpbmVTdGFydD1XeC5saW5lRW5kPVd4LnBvaW50PXZ2LGp4LmFkZChydihHeCkpLEd4LnJlc2V0KCl9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PWp4LzI7cmV0dXJuIGp4LnJlc2V0KCksdH19O2Z1bmN0aW9uIHF4KCl7V3gucG9pbnQ9WXh9ZnVuY3Rpb24gWXgodCxlKXtXeC5wb2ludD1YeCxIeD1WeD10LEZ4PVV4PWV9ZnVuY3Rpb24gWHgodCxlKXtHeC5hZGQoVXgqdC1WeCplKSxWeD10LFV4PWV9ZnVuY3Rpb24gJHgoKXtYeChIeCxGeCl9dmFyIEt4PVd4LFp4PTEvMCxKeD1aeCxReD0tWngsdHc9UXg7dmFyIGV3LG53LGl3LHJ3LG93PXtwb2ludDpmdW5jdGlvbiBhdyh0LGUpe3Q8WngmJihaeD10KTt0PlF4JiYoUXg9dCk7ZTxKeCYmKEp4PWUpO2U+dHcmJih0dz1lKX0sbGluZVN0YXJ0OnZ2LGxpbmVFbmQ6dnYscG9seWdvblN0YXJ0OnZ2LHBvbHlnb25FbmQ6dnYscmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9W1taeCxKeF0sW1F4LHR3XV07cmV0dXJuIFF4PXR3PS0oSng9Wng9MS8wKSx0fX0sc3c9MCxsdz0wLGN3PTAsdXc9MCxodz0wLGR3PTAscHc9MCxmdz0wLG13PTAsZ3c9e3BvaW50Ol93LGxpbmVTdGFydDp5dyxsaW5lRW5kOnh3LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2d3LmxpbmVTdGFydD13dyxndy5saW5lRW5kPVN3fSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7Z3cucG9pbnQ9X3csZ3cubGluZVN0YXJ0PXl3LGd3LmxpbmVFbmQ9eHd9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PW13P1twdy9tdyxmdy9td106ZHc/W3V3L2R3LGh3L2R3XTpjdz9bc3cvY3csbHcvY3ddOltOYU4sTmFOXTtyZXR1cm4gc3c9bHc9Y3c9dXc9aHc9ZHc9cHc9Znc9bXc9MCx0fX07ZnVuY3Rpb24gX3codCxlKXtzdys9dCxsdys9ZSwrK2N3fWZ1bmN0aW9uIHl3KCl7Z3cucG9pbnQ9dnd9ZnVuY3Rpb24gdncodCxlKXtndy5wb2ludD1idyxfdyhpdz10LHJ3PWUpfWZ1bmN0aW9uIGJ3KHQsZSl7dmFyIG49dC1pdyxpPWUtcncscj1mdihuKm4raSppKTt1dys9ciooaXcrdCkvMixodys9cioocncrZSkvMixkdys9cixfdyhpdz10LHJ3PWUpfWZ1bmN0aW9uIHh3KCl7Z3cucG9pbnQ9X3d9ZnVuY3Rpb24gd3coKXtndy5wb2ludD1Nd31mdW5jdGlvbiBTdygpe0V3KGV3LG53KX1mdW5jdGlvbiBNdyh0LGUpe2d3LnBvaW50PUV3LF93KGV3PWl3PXQsbnc9cnc9ZSl9ZnVuY3Rpb24gRXcodCxlKXt2YXIgbj10LWl3LGk9ZS1ydyxyPWZ2KG4qbitpKmkpO3V3Kz1yKihpdyt0KS8yLGh3Kz1yKihydytlKS8yLGR3Kz1yLHB3Kz0ocj1ydyp0LWl3KmUpKihpdyt0KSxmdys9cioocncrZSksbXcrPTMqcixfdyhpdz10LHJ3PWUpfXZhciBUdz1ndztmdW5jdGlvbiBDdyh0KXt0aGlzLl9jb250ZXh0PXR9Q3cucHJvdG90eXBlPXtfcmFkaXVzOjQuNSxwb2ludFJhZGl1czpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmFkaXVzPXQsdGhpc30scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXswPT09dGhpcy5fbGluZSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9wb2ludD1OYU59LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKSx0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpO2JyZWFrO2RlZmF1bHQ6dGhpcy5fY29udGV4dC5tb3ZlVG8odCt0aGlzLl9yYWRpdXMsZSksdGhpcy5fY29udGV4dC5hcmModCxlLHRoaXMuX3JhZGl1cywwLGV2KX19LHJlc3VsdDp2dn07dmFyIEF3LGt3LEx3LFB3LE53LEl3PXF5KCksUnc9e3BvaW50OnZ2LGxpbmVTdGFydDpmdW5jdGlvbigpe1J3LnBvaW50PU93fSxsaW5lRW5kOmZ1bmN0aW9uKCl7QXcmJnp3KGt3LEx3KSxSdy5wb2ludD12dn0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7QXc9ITB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtBdz1udWxsfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD0rSXc7cmV0dXJuIEl3LnJlc2V0KCksdH19O2Z1bmN0aW9uIE93KHQsZSl7UncucG9pbnQ9encsa3c9UHc9dCxMdz1Odz1lfWZ1bmN0aW9uIHp3KHQsZSl7SXcuYWRkKGZ2KChQdy09dCkqUHcrKE53LT1lKSpOdykpLFB3PXQsTnc9ZX12YXIgRHc9Unc7ZnVuY3Rpb24gQncoKXt0aGlzLl9zdHJpbmc9W119ZnVuY3Rpb24gSHcodCl7cmV0dXJuIm0wLCIrdCsiYSIrdCsiLCIrdCsiIDAgMSwxIDAsIistMip0KyJhIit0KyIsIit0KyIgMCAxLDEgMCwiKzIqdCsieiJ9ZnVuY3Rpb24gRncodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuPW5ldyBWdztmb3IodmFyIGkgaW4gdCluW2ldPXRbaV07cmV0dXJuIG4uc3RyZWFtPWUsbn19ZnVuY3Rpb24gVncoKXt9ZnVuY3Rpb24gVXcodCxlLG4pe3ZhciBpPXQuY2xpcEV4dGVudCYmdC5jbGlwRXh0ZW50KCk7cmV0dXJuIHQuc2NhbGUoMTUwKS50cmFuc2xhdGUoWzAsMF0pLG51bGwhPWkmJnQuY2xpcEV4dGVudChudWxsKSxFdihuLHQuc3RyZWFtKG93KSksZShvdy5yZXN1bHQoKSksbnVsbCE9aSYmdC5jbGlwRXh0ZW50KGkpLHR9ZnVuY3Rpb24gancodCxlLG4pe3JldHVybiBVdyh0LChmdW5jdGlvbihuKXt2YXIgaT1lWzFdWzBdLWVbMF1bMF0scj1lWzFdWzFdLWVbMF1bMV0sbz1NYXRoLm1pbihpLyhuWzFdWzBdLW5bMF1bMF0pLHIvKG5bMV1bMV0tblswXVsxXSkpLGE9K2VbMF1bMF0rKGktbyooblsxXVswXStuWzBdWzBdKSkvMixzPStlWzBdWzFdKyhyLW8qKG5bMV1bMV0rblswXVsxXSkpLzI7dC5zY2FsZSgxNTAqbykudHJhbnNsYXRlKFthLHNdKX0pLG4pfWZ1bmN0aW9uIEd3KHQsZSxuKXtyZXR1cm4gancodCxbWzAsMF0sZV0sbil9ZnVuY3Rpb24gV3codCxlLG4pe3JldHVybiBVdyh0LChmdW5jdGlvbihuKXt2YXIgaT0rZSxyPWkvKG5bMV1bMF0tblswXVswXSksbz0oaS1yKihuWzFdWzBdK25bMF1bMF0pKS8yLGE9LXIqblswXVsxXTt0LnNjYWxlKDE1MCpyKS50cmFuc2xhdGUoW28sYV0pfSksbil9ZnVuY3Rpb24gcXcodCxlLG4pe3JldHVybiBVdyh0LChmdW5jdGlvbihuKXt2YXIgaT0rZSxyPWkvKG5bMV1bMV0tblswXVsxXSksbz0tcipuWzBdWzBdLGE9KGktciooblsxXVsxXStuWzBdWzFdKSkvMjt0LnNjYWxlKDE1MCpyKS50cmFuc2xhdGUoW28sYV0pfSksbil9QncucHJvdG90eXBlPXtfcmFkaXVzOjQuNSxfY2lyY2xlOkh3KDQuNSkscG9pbnRSYWRpdXM6ZnVuY3Rpb24odCl7cmV0dXJuKHQ9K3QpIT09dGhpcy5fcmFkaXVzJiYodGhpcy5fcmFkaXVzPXQsdGhpcy5fY2lyY2xlPW51bGwpLHRoaXN9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0scG9seWdvbkVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7MD09PXRoaXMuX2xpbmUmJnRoaXMuX3N0cmluZy5wdXNoKCJaIiksdGhpcy5fcG9pbnQ9TmFOfSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3N0cmluZy5wdXNoKCJNIix0LCIsIixlKSx0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9zdHJpbmcucHVzaCgiTCIsdCwiLCIsZSk7YnJlYWs7ZGVmYXVsdDpudWxsPT10aGlzLl9jaXJjbGUmJih0aGlzLl9jaXJjbGU9SHcodGhpcy5fcmFkaXVzKSksdGhpcy5fc3RyaW5nLnB1c2goIk0iLHQsIiwiLGUsdGhpcy5fY2lyY2xlKX19LHJlc3VsdDpmdW5jdGlvbigpe2lmKHRoaXMuX3N0cmluZy5sZW5ndGgpe3ZhciB0PXRoaXMuX3N0cmluZy5qb2luKCIiKTtyZXR1cm4gdGhpcy5fc3RyaW5nPVtdLHR9cmV0dXJuIG51bGx9fSxWdy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlZ3LHBvaW50OmZ1bmN0aW9uKHQsZSl7dGhpcy5zdHJlYW0ucG9pbnQodCxlKX0sc3BoZXJlOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0uc3BoZXJlKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ubGluZUVuZCgpfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLnBvbHlnb25FbmQoKX19O3ZhciBZdz1zdigzMCppdik7ZnVuY3Rpb24gWHcodCxlKXtyZXR1cm4rZT8oZnVuY3Rpb24gbih0LGUpe2Z1bmN0aW9uIG4oaSxyLG8sYSxzLGwsYyx1LGgsZCxwLGYsbSxnKXt2YXIgXz1jLWkseT11LXIsdj1fKl8reSp5O2lmKHY+NCplJiZtLS0pe3ZhciBiPWErZCx4PXMrcCx3PWwrZixTPWZ2KGIqYit4Kngrdyp3KSxNPV92KHcvPVMpLEU9cnYocnYodyktMSk8S3l8fHJ2KG8taCk8S3k/KG8raCkvMjphdih4LGIpLFQ9dChFLE0pLEM9VFswXSxBPVRbMV0saz1DLWksTD1BLXIsUD15KmstXypMOyhQKlAvdj5lfHxydigoXyprK3kqTCkvdi0uNSk+LjN8fGEqZCtzKnArbCpmPFl3KSYmKG4oaSxyLG8sYSxzLGwsQyxBLEUsYi89Uyx4Lz1TLHcsbSxnKSxnLnBvaW50KEMsQSksbihDLEEsRSxiLHgsdyxjLHUsaCxkLHAsZixtLGcpKX19cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBpLHIsbyxhLHMsbCxjLHUsaCxkLHAsZixtPXtwb2ludDpnLGxpbmVTdGFydDpfLGxpbmVFbmQ6dixwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtlLnBvbHlnb25TdGFydCgpLG0ubGluZVN0YXJ0PWJ9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtlLnBvbHlnb25FbmQoKSxtLmxpbmVTdGFydD1ffX07ZnVuY3Rpb24gZyhuLGkpe249dChuLGkpLGUucG9pbnQoblswXSxuWzFdKX1mdW5jdGlvbiBfKCl7dT1OYU4sbS5wb2ludD15LGUubGluZVN0YXJ0KCl9ZnVuY3Rpb24geShpLHIpe3ZhciBvPUh2KFtpLHJdKSxhPXQoaSxyKTtuKHUsaCxjLGQscCxmLHU9YVswXSxoPWFbMV0sYz1pLGQ9b1swXSxwPW9bMV0sZj1vWzJdLDE2LGUpLGUucG9pbnQodSxoKX1mdW5jdGlvbiB2KCl7bS5wb2ludD1nLGUubGluZUVuZCgpfWZ1bmN0aW9uIGIoKXtfKCksbS5wb2ludD14LG0ubGluZUVuZD13fWZ1bmN0aW9uIHgodCxlKXt5KGk9dCxlKSxyPXUsbz1oLGE9ZCxzPXAsbD1mLG0ucG9pbnQ9eX1mdW5jdGlvbiB3KCl7bih1LGgsYyxkLHAsZixyLG8saSxhLHMsbCwxNixlKSxtLmxpbmVFbmQ9dix2KCl9cmV0dXJuIG19fSkodCxlKTooZnVuY3Rpb24gaSh0KXtyZXR1cm4gRncoe3BvaW50OmZ1bmN0aW9uKGUsbil7ZT10KGUsbiksdGhpcy5zdHJlYW0ucG9pbnQoZVswXSxlWzFdKX19KX0pKHQpfXZhciAkdz1Gdyh7cG9pbnQ6ZnVuY3Rpb24odCxlKXt0aGlzLnN0cmVhbS5wb2ludCh0Kml2LGUqaXYpfX0pO2Z1bmN0aW9uIEt3KHQsZSxuLGkscil7ZnVuY3Rpb24gbyhvLGEpe3JldHVybltlK3QqKG8qPWkpLG4tdCooYSo9cildfXJldHVybiBvLmludmVydD1mdW5jdGlvbihvLGEpe3JldHVyblsoby1lKS90KmksKG4tYSkvdCpyXX0sb31mdW5jdGlvbiBadyh0LGUsbixpLHIsbyl7dmFyIGE9c3Yobykscz1kdihvKSxsPWEqdCxjPXMqdCx1PWEvdCxoPXMvdCxkPShzKm4tYSplKS90LHA9KHMqZSthKm4pL3Q7ZnVuY3Rpb24gZih0LG8pe3JldHVybltsKih0Kj1pKS1jKihvKj1yKStlLG4tYyp0LWwqb119cmV0dXJuIGYuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuW2kqKHUqdC1oKmUrZCkscioocC1oKnQtdSplKV19LGZ9ZnVuY3Rpb24gSncodCl7cmV0dXJuIFF3KChmdW5jdGlvbigpe3JldHVybiB0fSkpKCl9ZnVuY3Rpb24gUXcodCl7dmFyIGUsbixpLHIsbyxhLHMsbCxjLHUsaD0xNTAsZD00ODAscD0yNTAsZj0wLG09MCxnPTAsXz0wLHk9MCx2PTAsYj0xLHg9MSx3PW51bGwsUz1zeCxNPW51bGwsRT1CeCxUPS41O2Z1bmN0aW9uIEModCl7cmV0dXJuIGwodFswXSppdix0WzFdKml2KX1mdW5jdGlvbiBBKHQpe3JldHVybih0PWwuaW52ZXJ0KHRbMF0sdFsxXSkpJiZbdFswXSpudix0WzFdKm52XX1mdW5jdGlvbiBrKCl7dmFyIHQ9WncoaCwwLDAsYix4LHYpLmFwcGx5KG51bGwsZShmLG0pKSxpPSh2P1p3Okt3KShoLGQtdFswXSxwLXRbMV0sYix4LHYpO3JldHVybiBuPWpiKGcsXyx5KSxzPVZiKGUsaSksbD1WYihuLHMpLGE9WHcocyxUKSxMKCl9ZnVuY3Rpb24gTCgpe3JldHVybiBjPXU9bnVsbCxDfXJldHVybiBDLnN0cmVhbT1mdW5jdGlvbih0KXtyZXR1cm4gYyYmdT09PXQ/YzpjPSR3KChmdW5jdGlvbiBlKHQpe3JldHVybiBGdyh7cG9pbnQ6ZnVuY3Rpb24oZSxuKXt2YXIgaT10KGUsbik7cmV0dXJuIHRoaXMuc3RyZWFtLnBvaW50KGlbMF0saVsxXSl9fSl9KShuKShTKGEoRSh1PXQpKSkpKX0sQy5wcmVjbGlwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhTPXQsdz12b2lkIDAsTCgpKTpTfSxDLnBvc3RjbGlwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhFPXQsTT1pPXI9bz1udWxsLEwoKSk6RX0sQy5jbGlwQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KFM9K3Q/dXgodz10Kml2KToodz1udWxsLHN4KSxMKCkpOncqbnZ9LEMuY2xpcEV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oRT1udWxsPT10PyhNPWk9cj1vPW51bGwsQngpOnB4KE09K3RbMF1bMF0saT0rdFswXVsxXSxyPSt0WzFdWzBdLG89K3RbMV1bMV0pLEwoKSk6bnVsbD09TT9udWxsOltbTSxpXSxbcixvXV19LEMuc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9K3QsaygpKTpofSxDLnRyYW5zbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZD0rdFswXSxwPSt0WzFdLGsoKSk6W2QscF19LEMuY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPXRbMF0lMzYwKml2LG09dFsxXSUzNjAqaXYsaygpKTpbZipudixtKm52XX0sQy5yb3RhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGc9dFswXSUzNjAqaXYsXz10WzFdJTM2MCppdix5PXQubGVuZ3RoPjI/dFsyXSUzNjAqaXY6MCxrKCkpOltnKm52LF8qbnYseSpudl19LEMuYW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHY9dCUzNjAqaXYsaygpKTp2Km52fSxDLnJlZmxlY3RYPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhiPXQ/LTE6MSxrKCkpOmI8MH0sQy5yZWZsZWN0WT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oeD10Py0xOjEsaygpKTp4PDB9LEMucHJlY2lzaW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVh3KHMsVD10KnQpLEwoKSk6ZnYoVCl9LEMuZml0RXh0ZW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGp3KEMsdCxlKX0sQy5maXRTaXplPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEd3KEMsdCxlKX0sQy5maXRXaWR0aD1mdW5jdGlvbih0LGUpe3JldHVybiBXdyhDLHQsZSl9LEMuZml0SGVpZ2h0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHF3KEMsdCxlKX0sZnVuY3Rpb24oKXtyZXR1cm4gZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxDLmludmVydD1lLmludmVydCYmQSxrKCl9fWZ1bmN0aW9uIHRTKHQpe3ZhciBlPTAsbj1KeS8zLGk9UXcodCkscj1pKGUsbik7cmV0dXJuIHIucGFyYWxsZWxzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2koZT10WzBdKml2LG49dFsxXSppdik6W2UqbnYsbipudl19LHJ9ZnVuY3Rpb24gZVModCxlKXt2YXIgbj1kdih0KSxpPShuK2R2KGUpKS8yO2lmKHJ2KGkpPEt5KXJldHVybihmdW5jdGlvbiByKHQpe3ZhciBlPXN2KHQpO2Z1bmN0aW9uIG4odCxuKXtyZXR1cm5bdCplLGR2KG4pL2VdfXJldHVybiBuLmludmVydD1mdW5jdGlvbih0LG4pe3JldHVyblt0L2UsX3YobiplKV19LG59KSh0KTt2YXIgbz0xK24qKDIqaS1uKSxhPWZ2KG8pL2k7ZnVuY3Rpb24gcyh0LGUpe3ZhciBuPWZ2KG8tMippKmR2KGUpKS9pO3JldHVybltuKmR2KHQqPWkpLGEtbipzdih0KV19cmV0dXJuIHMuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIG49YS1lLHI9YXYodCxydihuKSkqcHYobik7cmV0dXJuIG4qaTwwJiYoci09SnkqcHYodCkqcHYobikpLFtyL2ksX3YoKG8tKHQqdCtuKm4pKmkqaSkvKDIqaSkpXX0sc31mdW5jdGlvbiBuUygpe3JldHVybiB0UyhlUykuc2NhbGUoMTU1LjQyNCkuY2VudGVyKFswLDMzLjY0NDJdKX1mdW5jdGlvbiBpUygpe3JldHVybiBuUygpLnBhcmFsbGVscyhbMjkuNSw0NS41XSkuc2NhbGUoMTA3MCkudHJhbnNsYXRlKFs0ODAsMjUwXSkucm90YXRlKFs5NiwwXSkuY2VudGVyKFstLjYsMzguN10pfWZ1bmN0aW9uIHJTKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZhciBpPXN2KGUpLHI9c3Yobiksbz10KGkqcik7cmV0dXJuW28qcipkdihlKSxvKmR2KG4pXX19ZnVuY3Rpb24gb1ModCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIGk9ZnYoZSplK24qbikscj10KGkpLG89ZHYociksYT1zdihyKTtyZXR1cm5bYXYoZSpvLGkqYSksX3YoaSYmbipvL2kpXX19dmFyIGFTPXJTKChmdW5jdGlvbih0KXtyZXR1cm4gZnYoMi8oMSt0KSl9KSk7YVMuaW52ZXJ0PW9TKChmdW5jdGlvbih0KXtyZXR1cm4gMipfdih0LzIpfSkpO3ZhciBzUz1yUygoZnVuY3Rpb24odCl7cmV0dXJuKHQ9Z3YodCkpJiZ0L2R2KHQpfSkpO2Z1bmN0aW9uIGxTKHQsZSl7cmV0dXJuW3QsdXYobXYoKFF5K2UpLzIpKV19ZnVuY3Rpb24gY1ModCl7dmFyIGUsbixpLHI9SncodCksbz1yLmNlbnRlcixhPXIuc2NhbGUscz1yLnRyYW5zbGF0ZSxsPXIuY2xpcEV4dGVudCxjPW51bGw7ZnVuY3Rpb24gdSgpe3ZhciBvPUp5KmEoKSxzPXIoWWIoci5yb3RhdGUoKSkuaW52ZXJ0KFswLDBdKSk7cmV0dXJuIGwobnVsbD09Yz9bW3NbMF0tbyxzWzFdLW9dLFtzWzBdK28sc1sxXStvXV06dD09PWxTP1tbTWF0aC5tYXgoc1swXS1vLGMpLGVdLFtNYXRoLm1pbihzWzBdK28sbiksaV1dOltbYyxNYXRoLm1heChzWzFdLW8sZSldLFtuLE1hdGgubWluKHNbMV0rbyxpKV1dKX1yZXR1cm4gci5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYSh0KSx1KCkpOmEoKX0sci50cmFuc2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHModCksdSgpKTpzKCl9LHIuY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvKHQpLHUoKSk6bygpfSxyLmNsaXBFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PXQ/Yz1lPW49aT1udWxsOihjPSt0WzBdWzBdLGU9K3RbMF1bMV0sbj0rdFsxXVswXSxpPSt0WzFdWzFdKSx1KCkpOm51bGw9PWM/bnVsbDpbW2MsZV0sW24saV1dfSx1KCl9ZnVuY3Rpb24gdVModCl7cmV0dXJuIG12KChReSt0KS8yKX1mdW5jdGlvbiBoUyh0LGUpe3ZhciBuPXN2KHQpLGk9dD09PWU/ZHYodCk6dXYobi9zdihlKSkvdXYodVMoZSkvdVModCkpLHI9bipodih1Uyh0KSxpKS9pO2lmKCFpKXJldHVybiBsUztmdW5jdGlvbiBvKHQsZSl7cj4wP2U8LVF5K0t5JiYoZT0tUXkrS3kpOmU+UXktS3kmJihlPVF5LUt5KTt2YXIgbj1yL2h2KHVTKGUpLGkpO3JldHVybltuKmR2KGkqdCksci1uKnN2KGkqdCldfXJldHVybiBvLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciBuPXItZSxvPXB2KGkpKmZ2KHQqdCtuKm4pLGE9YXYodCxydihuKSkqcHYobik7cmV0dXJuIG4qaTwwJiYoYS09SnkqcHYodCkqcHYobikpLFthL2ksMipvdihodihyL28sMS9pKSktUXldfSxvfWZ1bmN0aW9uIGRTKHQsZSl7cmV0dXJuW3QsZV19ZnVuY3Rpb24gcFModCxlKXt2YXIgbj1zdih0KSxpPXQ9PT1lP2R2KHQpOihuLXN2KGUpKS8oZS10KSxyPW4vaSt0O2lmKHJ2KGkpPEt5KXJldHVybiBkUztmdW5jdGlvbiBvKHQsZSl7dmFyIG49ci1lLG89aSp0O3JldHVybltuKmR2KG8pLHItbipzdihvKV19cmV0dXJuIG8uaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIG49ci1lLG89YXYodCxydihuKSkqcHYobik7cmV0dXJuIG4qaTwwJiYoby09SnkqcHYodCkqcHYobikpLFtvL2ksci1wdihpKSpmdih0KnQrbipuKV19LG99c1MuaW52ZXJ0PW9TKChmdW5jdGlvbih0KXtyZXR1cm4gdH0pKSxsUy5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm5bdCwyKm92KGN2KGUpKS1ReV19LGRTLmludmVydD1kUzt2YXIgZlM9MS4zNDAyNjQsbVM9LS4wODExMDYsZ1M9ODkzZS02LF9TPS4wMDM3OTYseVM9ZnYoMykvMjtmdW5jdGlvbiB2Uyh0LGUpe3ZhciBuPV92KHlTKmR2KGUpKSxpPW4qbixyPWkqaSppO3JldHVyblt0KnN2KG4pLyh5UyooZlMrMyptUyppK3IqKDcqZ1MrOSpfUyppKSkpLG4qKGZTK21TKmkrciooZ1MrX1MqaSkpXX1mdW5jdGlvbiBiUyh0LGUpe3ZhciBuPXN2KGUpLGk9c3YodCkqbjtyZXR1cm5bbipkdih0KS9pLGR2KGUpL2ldfWZ1bmN0aW9uIHhTKHQsZSl7dmFyIG49ZSplLGk9bipuO3JldHVyblt0KiguODcwNy0uMTMxOTc5Km4raSooaSooLjAwMzk3MSpuLS4wMDE1MjkqaSktLjAxMzc5MSkpLGUqKDEuMDA3MjI2K24qKC4wMTUwODUraSooLjAyODg3NCpuLS4wNDQ0NzUtLjAwNTkxNippKSkpXX1mdW5jdGlvbiB3Uyh0LGUpe3JldHVybltzdihlKSpkdih0KSxkdihlKV19ZnVuY3Rpb24gU1ModCxlKXt2YXIgbj1zdihlKSxpPTErc3YodCkqbjtyZXR1cm5bbipkdih0KS9pLGR2KGUpL2ldfWZ1bmN0aW9uIE1TKHQsZSl7cmV0dXJuW3V2KG12KChReStlKS8yKSksLXRdfWZ1bmN0aW9uIEVTKHQsZSl7cmV0dXJuIHQucGFyZW50PT09ZS5wYXJlbnQ/MToyfWZ1bmN0aW9uIFRTKHQsZSl7cmV0dXJuIHQrZS54fWZ1bmN0aW9uIENTKHQsZSl7cmV0dXJuIE1hdGgubWF4KHQsZS55KX1mdW5jdGlvbiBBUyh0KXt2YXIgZT0wLG49dC5jaGlsZHJlbixpPW4mJm4ubGVuZ3RoO2lmKGkpZm9yKDstLWk+PTA7KWUrPW5baV0udmFsdWU7ZWxzZSBlPTE7dC52YWx1ZT1lfWZ1bmN0aW9uIGtTKHQsZSl7dmFyIG4saSxyLG8sYSxzPW5ldyBJUyh0KSxsPSt0LnZhbHVlJiYocy52YWx1ZT10LnZhbHVlKSxjPVtzXTtmb3IobnVsbD09ZSYmKGU9TFMpO249Yy5wb3AoKTspaWYobCYmKG4udmFsdWU9K24uZGF0YS52YWx1ZSksKHI9ZShuLmRhdGEpKSYmKGE9ci5sZW5ndGgpKWZvcihuLmNoaWxkcmVuPW5ldyBBcnJheShhKSxvPWEtMTtvPj0wOy0tbyljLnB1c2goaT1uLmNoaWxkcmVuW29dPW5ldyBJUyhyW29dKSksaS5wYXJlbnQ9bixpLmRlcHRoPW4uZGVwdGgrMTtyZXR1cm4gcy5lYWNoQmVmb3JlKE5TKX1mdW5jdGlvbiBMUyh0KXtyZXR1cm4gdC5jaGlsZHJlbn1mdW5jdGlvbiBQUyh0KXt0LmRhdGE9dC5kYXRhLmRhdGF9ZnVuY3Rpb24gTlModCl7dmFyIGU9MDtkb3t0LmhlaWdodD1lfXdoaWxlKCh0PXQucGFyZW50KSYmdC5oZWlnaHQ8KytlKX1mdW5jdGlvbiBJUyh0KXt0aGlzLmRhdGE9dCx0aGlzLmRlcHRoPXRoaXMuaGVpZ2h0PTAsdGhpcy5wYXJlbnQ9bnVsbH12Uy5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4saT1lLHI9aSppLG89cipyKnIsYT0wO2E8MTImJihvPShyPShpLT1uPShpKihmUyttUypyK28qKGdTK19TKnIpKS1lKS8oZlMrMyptUypyK28qKDcqZ1MrOSpfUypyKSkpKmkpKnIqciwhKHJ2KG4pPFp5KSk7KythKTtyZXR1cm5beVMqdCooZlMrMyptUypyK28qKDcqZ1MrOSpfUypyKSkvc3YoaSksX3YoZHYoaSkveVMpXX0sYlMuaW52ZXJ0PW9TKG92KSx4Uy5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgbixpPWUscj0yNTtkb3t2YXIgbz1pKmksYT1vKm87aS09bj0oaSooMS4wMDcyMjYrbyooLjAxNTA4NSthKiguMDI4ODc0Km8tLjA0NDQ3NS0uMDA1OTE2KmEpKSktZSkvKDEuMDA3MjI2K28qKC4wNDUyNTUrYSooLjI1OTg2NipvLS4zMTEzMjUtLjAwNTkxNioxMSphKSkpfXdoaWxlKHJ2KG4pPkt5JiYtLXI+MCk7cmV0dXJuW3QvKC44NzA3KyhvPWkqaSkqKG8qKG8qbypvKiguMDAzOTcxLS4wMDE1MjkqbyktLjAxMzc5MSktLjEzMTk3OSkpLGldfSx3Uy5pbnZlcnQ9b1MoX3YpLFNTLmludmVydD1vUygoZnVuY3Rpb24odCl7cmV0dXJuIDIqb3YodCl9KSksTVMuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuWy1lLDIqb3YoY3YodCkpLVF5XX0sSVMucHJvdG90eXBlPWtTLnByb3RvdHlwZT17Y29uc3RydWN0b3I6SVMsY291bnQ6ZnVuY3Rpb24gUlMoKXtyZXR1cm4gdGhpcy5lYWNoQWZ0ZXIoQVMpfSxlYWNoOmZ1bmN0aW9uIE9TKHQpe3ZhciBlLG4saSxyLG89dGhpcyxhPVtvXTtkb3tmb3IoZT1hLnJldmVyc2UoKSxhPVtdO289ZS5wb3AoKTspaWYodChvKSxuPW8uY2hpbGRyZW4pZm9yKGk9MCxyPW4ubGVuZ3RoO2k8cjsrK2kpYS5wdXNoKG5baV0pfXdoaWxlKGEubGVuZ3RoKTtyZXR1cm4gdGhpc30sZWFjaEFmdGVyOmZ1bmN0aW9uIHpTKHQpe2Zvcih2YXIgZSxuLGkscj10aGlzLG89W3JdLGE9W107cj1vLnBvcCgpOylpZihhLnB1c2gociksZT1yLmNoaWxkcmVuKWZvcihuPTAsaT1lLmxlbmd0aDtuPGk7KytuKW8ucHVzaChlW25dKTtmb3IoO3I9YS5wb3AoKTspdChyKTtyZXR1cm4gdGhpc30sZWFjaEJlZm9yZTpmdW5jdGlvbiBEUyh0KXtmb3IodmFyIGUsbixpPXRoaXMscj1baV07aT1yLnBvcCgpOylpZih0KGkpLGU9aS5jaGlsZHJlbilmb3Iobj1lLmxlbmd0aC0xO24+PTA7LS1uKXIucHVzaChlW25dKTtyZXR1cm4gdGhpc30sc3VtOmZ1bmN0aW9uIEJTKHQpe3JldHVybiB0aGlzLmVhY2hBZnRlcigoZnVuY3Rpb24oZSl7Zm9yKHZhciBuPSt0KGUuZGF0YSl8fDAsaT1lLmNoaWxkcmVuLHI9aSYmaS5sZW5ndGg7LS1yPj0wOyluKz1pW3JdLnZhbHVlO2UudmFsdWU9bn0pKX0sc29ydDpmdW5jdGlvbiBIUyh0KXtyZXR1cm4gdGhpcy5lYWNoQmVmb3JlKChmdW5jdGlvbihlKXtlLmNoaWxkcmVuJiZlLmNoaWxkcmVuLnNvcnQodCl9KSl9LHBhdGg6ZnVuY3Rpb24gRlModCl7Zm9yKHZhciBlPXRoaXMsbj0oZnVuY3Rpb24gaSh0LGUpe2lmKHQ9PT1lKXJldHVybiB0O3ZhciBuPXQuYW5jZXN0b3JzKCksaT1lLmFuY2VzdG9ycygpLHI9bnVsbDt0PW4ucG9wKCksZT1pLnBvcCgpO2Zvcig7dD09PWU7KXI9dCx0PW4ucG9wKCksZT1pLnBvcCgpO3JldHVybiByfSkoZSx0KSxyPVtlXTtlIT09bjspci5wdXNoKGU9ZS5wYXJlbnQpO2Zvcih2YXIgbz1yLmxlbmd0aDt0IT09bjspci5zcGxpY2UobywwLHQpLHQ9dC5wYXJlbnQ7cmV0dXJuIHJ9LGFuY2VzdG9yczpmdW5jdGlvbiBWUygpe2Zvcih2YXIgdD10aGlzLGU9W3RdO3Q9dC5wYXJlbnQ7KWUucHVzaCh0KTtyZXR1cm4gZX0sZGVzY2VuZGFudHM6ZnVuY3Rpb24gVVMoKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbihlKXt0LnB1c2goZSl9KSksdH0sbGVhdmVzOmZ1bmN0aW9uIGpTKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZWFjaEJlZm9yZSgoZnVuY3Rpb24oZSl7ZS5jaGlsZHJlbnx8dC5wdXNoKGUpfSkpLHR9LGxpbmtzOmZ1bmN0aW9uIEdTKCl7dmFyIHQ9dGhpcyxlPVtdO3JldHVybiB0LmVhY2goKGZ1bmN0aW9uKG4pe24hPT10JiZlLnB1c2goe3NvdXJjZTpuLnBhcmVudCx0YXJnZXQ6bn0pfSkpLGV9LGNvcHk6ZnVuY3Rpb24gV1MoKXtyZXR1cm4ga1ModGhpcykuZWFjaEJlZm9yZShQUyl9fTt2YXIgcVM9QXJyYXkucHJvdG90eXBlLnNsaWNlO2Z1bmN0aW9uIFlTKHQpe2Zvcih2YXIgZSxuLGk9MCxyPSh0PShmdW5jdGlvbiBvKHQpe2Zvcih2YXIgZSxuLGk9dC5sZW5ndGg7aTspbj1NYXRoLnJhbmRvbSgpKmktLXwwLGU9dFtpXSx0W2ldPXRbbl0sdFtuXT1lO3JldHVybiB0fSkocVMuY2FsbCh0KSkpLmxlbmd0aCxhPVtdO2k8cjspZT10W2ldLG4mJktTKG4sZSk/KytpOihuPUpTKGE9WFMoYSxlKSksaT0wKTtyZXR1cm4gbn1mdW5jdGlvbiBYUyh0LGUpe3ZhciBuLGk7aWYoWlMoZSx0KSlyZXR1cm5bZV07Zm9yKG49MDtuPHQubGVuZ3RoOysrbilpZigkUyhlLHRbbl0pJiZaUyhRUyh0W25dLGUpLHQpKXJldHVyblt0W25dLGVdO2ZvcihuPTA7bjx0Lmxlbmd0aC0xOysrbilmb3IoaT1uKzE7aTx0Lmxlbmd0aDsrK2kpaWYoJFMoUVModFtuXSx0W2ldKSxlKSYmJFMoUVModFtuXSxlKSx0W2ldKSYmJFMoUVModFtpXSxlKSx0W25dKSYmWlModE0odFtuXSx0W2ldLGUpLHQpKXJldHVyblt0W25dLHRbaV0sZV07dGhyb3cgbmV3IEVycm9yfWZ1bmN0aW9uICRTKHQsZSl7dmFyIG49dC5yLWUucixpPWUueC10Lngscj1lLnktdC55O3JldHVybiBuPDB8fG4qbjxpKmkrcipyfWZ1bmN0aW9uIEtTKHQsZSl7dmFyIG49dC5yLWUucisxZS02LGk9ZS54LXQueCxyPWUueS10Lnk7cmV0dXJuIG4+MCYmbipuPmkqaStyKnJ9ZnVuY3Rpb24gWlModCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoOysrbilpZighS1ModCxlW25dKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBKUyh0KXtzd2l0Y2godC5sZW5ndGgpe2Nhc2UgMTpyZXR1cm4oZnVuY3Rpb24gZSh0KXtyZXR1cm57eDp0LngseTp0Lnkscjp0LnJ9fSkodFswXSk7Y2FzZSAyOnJldHVybiBRUyh0WzBdLHRbMV0pO2Nhc2UgMzpyZXR1cm4gdE0odFswXSx0WzFdLHRbMl0pfX1mdW5jdGlvbiBRUyh0LGUpe3ZhciBuPXQueCxpPXQueSxyPXQucixvPWUueCxhPWUueSxzPWUucixsPW8tbixjPWEtaSx1PXMtcixoPU1hdGguc3FydChsKmwrYypjKTtyZXR1cm57eDoobitvK2wvaCp1KS8yLHk6KGkrYStjL2gqdSkvMixyOihoK3IrcykvMn19ZnVuY3Rpb24gdE0odCxlLG4pe3ZhciBpPXQueCxyPXQueSxvPXQucixhPWUueCxzPWUueSxsPWUucixjPW4ueCx1PW4ueSxoPW4ucixkPWktYSxwPWktYyxmPXItcyxtPXItdSxnPWwtbyxfPWgtbyx5PWkqaStyKnItbypvLHY9eS1hKmEtcypzK2wqbCxiPXktYypjLXUqdStoKmgseD1wKmYtZCptLHc9KGYqYi1tKnYpLygyKngpLWksUz0obSpnLWYqXykveCxNPShwKnYtZCpiKS8oMip4KS1yLEU9KGQqXy1wKmcpL3gsVD1TKlMrRSpFLTEsQz0yKihvK3cqUytNKkUpLEE9dyp3K00qTS1vKm8saz0tKFQ/KEMrTWF0aC5zcXJ0KEMqQy00KlQqQSkpLygyKlQpOkEvQyk7cmV0dXJue3g6aSt3K1Mqayx5OnIrTStFKmsscjprfX1mdW5jdGlvbiBlTSh0LGUsbil7dmFyIGkscixvLGEscz10LngtZS54LGw9dC55LWUueSxjPXMqcytsKmw7Yz8ocj1lLnIrbi5yLGE9dC5yK24uciwocio9cik+KGEqPWEpPyhpPShjK2EtcikvKDIqYyksbz1NYXRoLnNxcnQoTWF0aC5tYXgoMCxhL2MtaSppKSksbi54PXQueC1pKnMtbypsLG4ueT10LnktaSpsK28qcyk6KGk9KGMrci1hKS8oMipjKSxvPU1hdGguc3FydChNYXRoLm1heCgwLHIvYy1pKmkpKSxuLng9ZS54K2kqcy1vKmwsbi55PWUueStpKmwrbypzKSk6KG4ueD1lLngrbi5yLG4ueT1lLnkpfWZ1bmN0aW9uIG5NKHQsZSl7dmFyIG49dC5yK2Uuci0xZS02LGk9ZS54LXQueCxyPWUueS10Lnk7cmV0dXJuIG4+MCYmbipuPmkqaStyKnJ9ZnVuY3Rpb24gaU0odCl7dmFyIGU9dC5fLG49dC5uZXh0Ll8saT1lLnIrbi5yLHI9KGUueCpuLnIrbi54KmUucikvaSxvPShlLnkqbi5yK24ueSplLnIpL2k7cmV0dXJuIHIqcitvKm99ZnVuY3Rpb24gck0odCl7dGhpcy5fPXQsdGhpcy5uZXh0PW51bGwsdGhpcy5wcmV2aW91cz1udWxsfWZ1bmN0aW9uIG9NKHQpe2lmKCEocj10Lmxlbmd0aCkpcmV0dXJuIDA7dmFyIGUsbixpLHIsbyxhLHMsbCxjLHUsaDtpZigoZT10WzBdKS54PTAsZS55PTAsIShyPjEpKXJldHVybiBlLnI7aWYoZS54PS0obj10WzFdKS5yLG4ueD1lLnIsbi55PTAsIShyPjIpKXJldHVybiBlLnIrbi5yO2VNKG4sZSxpPXRbMl0pLGU9bmV3IHJNKGUpLG49bmV3IHJNKG4pLGk9bmV3IHJNKGkpLGUubmV4dD1pLnByZXZpb3VzPW4sbi5uZXh0PWUucHJldmlvdXM9aSxpLm5leHQ9bi5wcmV2aW91cz1lO3Q6Zm9yKHM9MztzPHI7KytzKXtlTShlLl8sbi5fLGk9dFtzXSksaT1uZXcgck0oaSksbD1uLm5leHQsYz1lLnByZXZpb3VzLHU9bi5fLnIsaD1lLl8ucjtkb3tpZih1PD1oKXtpZihuTShsLl8saS5fKSl7ZS5uZXh0PW49bCxuLnByZXZpb3VzPWUsLS1zO2NvbnRpbnVlIHR9dSs9bC5fLnIsbD1sLm5leHR9ZWxzZXtpZihuTShjLl8saS5fKSl7KGU9YykubmV4dD1uLG4ucHJldmlvdXM9ZSwtLXM7Y29udGludWUgdH1oKz1jLl8ucixjPWMucHJldmlvdXN9fXdoaWxlKGwhPT1jLm5leHQpO2ZvcihpLnByZXZpb3VzPWUsaS5uZXh0PW4sZS5uZXh0PW4ucHJldmlvdXM9bj1pLG89aU0oZSk7KGk9aS5uZXh0KSE9PW47KShhPWlNKGkpKTxvJiYoZT1pLG89YSk7bj1lLm5leHR9Zm9yKGU9W24uX10saT1uOyhpPWkubmV4dCkhPT1uOyllLnB1c2goaS5fKTtmb3IoaT1ZUyhlKSxzPTA7czxyOysrcykoZT10W3NdKS54LT1pLngsZS55LT1pLnk7cmV0dXJuIGkucn1mdW5jdGlvbiBhTSh0KXtyZXR1cm4gbnVsbD09dD9udWxsOnNNKHQpfWZ1bmN0aW9uIHNNKHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcjtyZXR1cm4gdH1mdW5jdGlvbiBsTSgpe3JldHVybiAwfWZ1bmN0aW9uIGNNKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiB1TSh0KXtyZXR1cm4gTWF0aC5zcXJ0KHQudmFsdWUpfWZ1bmN0aW9uIGhNKHQpe3JldHVybiBmdW5jdGlvbihlKXtlLmNoaWxkcmVufHwoZS5yPU1hdGgubWF4KDAsK3QoZSl8fDApKX19ZnVuY3Rpb24gZE0odCxlKXtyZXR1cm4gZnVuY3Rpb24obil7aWYoaT1uLmNoaWxkcmVuKXt2YXIgaSxyLG8sYT1pLmxlbmd0aCxzPXQobikqZXx8MDtpZihzKWZvcihyPTA7cjxhOysrcilpW3JdLnIrPXM7aWYobz1vTShpKSxzKWZvcihyPTA7cjxhOysrcilpW3JdLnItPXM7bi5yPW8rc319fWZ1bmN0aW9uIHBNKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgbj1lLnBhcmVudDtlLnIqPXQsbiYmKGUueD1uLngrdCplLngsZS55PW4ueSt0KmUueSl9fWZ1bmN0aW9uIGZNKHQpe3QueDA9TWF0aC5yb3VuZCh0LngwKSx0LnkwPU1hdGgucm91bmQodC55MCksdC54MT1NYXRoLnJvdW5kKHQueDEpLHQueTE9TWF0aC5yb3VuZCh0LnkxKX1mdW5jdGlvbiBtTSh0LGUsbixpLHIpe2Zvcih2YXIgbyxhPXQuY2hpbGRyZW4scz0tMSxsPWEubGVuZ3RoLGM9dC52YWx1ZSYmKGktZSkvdC52YWx1ZTsrK3M8bDspKG89YVtzXSkueTA9bixvLnkxPXIsby54MD1lLG8ueDE9ZSs9by52YWx1ZSpjfXZhciBnTT17ZGVwdGg6LTF9LF9NPXt9O2Z1bmN0aW9uIHlNKHQpe3JldHVybiB0LmlkfWZ1bmN0aW9uIHZNKHQpe3JldHVybiB0LnBhcmVudElkfWZ1bmN0aW9uIGJNKHQsZSl7cmV0dXJuIHQucGFyZW50PT09ZS5wYXJlbnQ/MToyfWZ1bmN0aW9uIHhNKHQpe3ZhciBlPXQuY2hpbGRyZW47cmV0dXJuIGU/ZVswXTp0LnR9ZnVuY3Rpb24gd00odCl7dmFyIGU9dC5jaGlsZHJlbjtyZXR1cm4gZT9lW2UubGVuZ3RoLTFdOnQudH1mdW5jdGlvbiBTTSh0LGUsbil7dmFyIGk9bi8oZS5pLXQuaSk7ZS5jLT1pLGUucys9bix0LmMrPWksZS56Kz1uLGUubSs9bn1mdW5jdGlvbiBNTSh0LGUsbil7cmV0dXJuIHQuYS5wYXJlbnQ9PT1lLnBhcmVudD90LmE6bn1mdW5jdGlvbiBFTSh0LGUpe3RoaXMuXz10LHRoaXMucGFyZW50PW51bGwsdGhpcy5jaGlsZHJlbj1udWxsLHRoaXMuQT1udWxsLHRoaXMuYT10aGlzLHRoaXMuej0wLHRoaXMubT0wLHRoaXMuYz0wLHRoaXMucz0wLHRoaXMudD1udWxsLHRoaXMuaT1lfWZ1bmN0aW9uIFRNKHQsZSxuLGkscil7Zm9yKHZhciBvLGE9dC5jaGlsZHJlbixzPS0xLGw9YS5sZW5ndGgsYz10LnZhbHVlJiYoci1uKS90LnZhbHVlOysrczxsOykobz1hW3NdKS54MD1lLG8ueDE9aSxvLnkwPW4sby55MT1uKz1vLnZhbHVlKmN9RU0ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoSVMucHJvdG90eXBlKTt2YXIgQ009KDErTWF0aC5zcXJ0KDUpKS8yO2Z1bmN0aW9uIEFNKHQsZSxuLGkscixvKXtmb3IodmFyIGEscyxsLGMsdSxoLGQscCxmLG0sZyxfPVtdLHk9ZS5jaGlsZHJlbix2PTAsYj0wLHg9eS5sZW5ndGgsdz1lLnZhbHVlO3Y8eDspe2w9ci1uLGM9by1pO2Rve3U9eVtiKytdLnZhbHVlfXdoaWxlKCF1JiZiPHgpO2ZvcihoPWQ9dSxnPXUqdSoobT1NYXRoLm1heChjL2wsbC9jKS8odyp0KSksZj1NYXRoLm1heChkL2csZy9oKTtiPHg7KytiKXtpZih1Kz1zPXlbYl0udmFsdWUsczxoJiYoaD1zKSxzPmQmJihkPXMpLGc9dSp1Km0sKHA9TWF0aC5tYXgoZC9nLGcvaCkpPmYpe3UtPXM7YnJlYWt9Zj1wfV8ucHVzaChhPXt2YWx1ZTp1LGRpY2U6bDxjLGNoaWxkcmVuOnkuc2xpY2UodixiKX0pLGEuZGljZT9tTShhLG4saSxyLHc/aSs9Yyp1L3c6byk6VE0oYSxuLGksdz9uKz1sKnUvdzpyLG8pLHctPXUsdj1ifXJldHVybiBffXZhciBrTT0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQsbixpLHIsbyl7QU0oZSx0LG4saSxyLG8pfXJldHVybiBuLnJhdGlvPWZ1bmN0aW9uKGUpe3JldHVybiB0KChlPStlKT4xP2U6MSl9LG59KShDTSk7dmFyIExNPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCxuLGkscixvKXtpZigoYT10Ll9zcXVhcmlmeSkmJmEucmF0aW89PT1lKWZvcih2YXIgYSxzLGwsYyx1LGg9LTEsZD1hLmxlbmd0aCxwPXQudmFsdWU7KytoPGQ7KXtmb3IobD0ocz1hW2hdKS5jaGlsZHJlbixjPXMudmFsdWU9MCx1PWwubGVuZ3RoO2M8dTsrK2Mpcy52YWx1ZSs9bFtjXS52YWx1ZTtzLmRpY2U/bU0ocyxuLGkscixpKz0oby1pKSpzLnZhbHVlL3ApOlRNKHMsbixpLG4rPShyLW4pKnMudmFsdWUvcCxvKSxwLT1zLnZhbHVlfWVsc2UgdC5fc3F1YXJpZnk9YT1BTShlLHQsbixpLHIsbyksYS5yYXRpbz1lfXJldHVybiBuLnJhdGlvPWZ1bmN0aW9uKGUpe3JldHVybiB0KChlPStlKT4xP2U6MSl9LG59KShDTSk7ZnVuY3Rpb24gUE0odCxlLG4pe3JldHVybihlWzBdLXRbMF0pKihuWzFdLXRbMV0pLShlWzFdLXRbMV0pKihuWzBdLXRbMF0pfWZ1bmN0aW9uIE5NKHQsZSl7cmV0dXJuIHRbMF0tZVswXXx8dFsxXS1lWzFdfWZ1bmN0aW9uIElNKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxuPVswLDFdLGk9MixyPTI7cjxlOysrcil7Zm9yKDtpPjEmJlBNKHRbbltpLTJdXSx0W25baS0xXV0sdFtyXSk8PTA7KS0taTtuW2krK109cn1yZXR1cm4gbi5zbGljZSgwLGkpfWZ1bmN0aW9uIFJNKCl7cmV0dXJuIE1hdGgucmFuZG9tKCl9dmFyIE9NPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCxuKXtyZXR1cm4gdD1udWxsPT10PzA6K3Qsbj1udWxsPT1uPzE6K24sMT09PWFyZ3VtZW50cy5sZW5ndGg/KG49dCx0PTApOm4tPXQsZnVuY3Rpb24oKXtyZXR1cm4gZSgpKm4rdH19cmV0dXJuIG4uc291cmNlPXQsbn0pKFJNKSx6TT0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQsbil7dmFyIGkscjtyZXR1cm4gdD1udWxsPT10PzA6K3Qsbj1udWxsPT1uPzE6K24sZnVuY3Rpb24oKXt2YXIgbztpZihudWxsIT1pKW89aSxpPW51bGw7ZWxzZSBkb3tpPTIqZSgpLTEsbz0yKmUoKS0xLHI9aSppK28qb313aGlsZSghcnx8cj4xKTtyZXR1cm4gdCtuKm8qTWF0aC5zcXJ0KC0yKk1hdGgubG9nKHIpL3IpfX1yZXR1cm4gbi5zb3VyY2U9dCxufSkoUk0pLERNPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4oKXt2YXIgdD16TS5zb3VyY2UoZSkuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBNYXRoLmV4cCh0KCkpfX1yZXR1cm4gbi5zb3VyY2U9dCxufSkoUk0pLEJNPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBuPTAsaT0wO2k8dDsrK2kpbis9ZSgpO3JldHVybiBufX1yZXR1cm4gbi5zb3VyY2U9dCxufSkoUk0pLEhNPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7dmFyIG49Qk0uc291cmNlKGUpKHQpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBuKCkvdH19cmV0dXJuIG4uc291cmNlPXQsbn0pKFJNKSxGTT0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybi1NYXRoLmxvZygxLWUoKSkvdH19cmV0dXJuIG4uc291cmNlPXQsbn0pKFJNKTtmdW5jdGlvbiBWTSh0LGUpe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6YnJlYWs7Y2FzZSAxOnRoaXMucmFuZ2UodCk7YnJlYWs7ZGVmYXVsdDp0aGlzLnJhbmdlKGUpLmRvbWFpbih0KX1yZXR1cm4gdGhpc31mdW5jdGlvbiBVTSh0LGUpe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6YnJlYWs7Y2FzZSAxOnRoaXMuaW50ZXJwb2xhdG9yKHQpO2JyZWFrO2RlZmF1bHQ6dGhpcy5pbnRlcnBvbGF0b3IoZSkuZG9tYWluKHQpfXJldHVybiB0aGlzfXZhciBqTT1BcnJheS5wcm90b3R5cGUsR009ak0ubWFwLFdNPWpNLnNsaWNlLHFNPXtuYW1lOiJpbXBsaWNpdCJ9O2Z1bmN0aW9uIFlNKCl7dmFyIHQ9amcoKSxlPVtdLG49W10saT1xTTtmdW5jdGlvbiByKHIpe3ZhciBvPXIrIiIsYT10LmdldChvKTtpZighYSl7aWYoaSE9PXFNKXJldHVybiBpO3Quc2V0KG8sYT1lLnB1c2gocikpfXJldHVybiBuWyhhLTEpJW4ubGVuZ3RoXX1yZXR1cm4gci5kb21haW49ZnVuY3Rpb24obil7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGUuc2xpY2UoKTtlPVtdLHQ9amcoKTtmb3IodmFyIGksbyxhPS0xLHM9bi5sZW5ndGg7KythPHM7KXQuaGFzKG89KGk9blthXSkrIiIpfHx0LnNldChvLGUucHVzaChpKSk7cmV0dXJuIHJ9LHIucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49V00uY2FsbCh0KSxyKTpuLnNsaWNlKCl9LHIudW5rbm93bj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10LHIpOml9LHIuY29weT1mdW5jdGlvbigpe3JldHVybiBZTShlLG4pLnVua25vd24oaSl9LFZNLmFwcGx5KHIsYXJndW1lbnRzKSxyfWZ1bmN0aW9uIFhNKCl7dmFyIHQsZSxuPVlNKCkudW5rbm93bih2b2lkIDApLGk9bi5kb21haW4scj1uLnJhbmdlLG89WzAsMV0sYT0hMSxzPTAsbD0wLGM9LjU7ZnVuY3Rpb24gdSgpe3ZhciBuPWkoKS5sZW5ndGgsdT1vWzFdPG9bMF0saD1vW3UtMF0sZD1vWzEtdV07dD0oZC1oKS9NYXRoLm1heCgxLG4tcysyKmwpLGEmJih0PU1hdGguZmxvb3IodCkpLGgrPShkLWgtdCoobi1zKSkqYyxlPXQqKDEtcyksYSYmKGg9TWF0aC5yb3VuZChoKSxlPU1hdGgucm91bmQoZSkpO3ZhciBwPUtsKG4pLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGgrdCplfSkpO3JldHVybiByKHU/cC5yZXZlcnNlKCk6cCl9cmV0dXJuIGRlbGV0ZSBuLnVua25vd24sbi5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGkodCksdSgpKTppKCl9LG4ucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89Wyt0WzBdLCt0WzFdXSx1KCkpOm8uc2xpY2UoKX0sbi5yYW5nZVJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBvPVsrdFswXSwrdFsxXV0sYT0hMCx1KCl9LG4uYmFuZHdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIGV9LG4uc3RlcD1mdW5jdGlvbigpe3JldHVybiB0fSxuLnJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSEhdCx1KCkpOmF9LG4ucGFkZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1NYXRoLm1pbigxLGw9K3QpLHUoKSk6c30sbi5wYWRkaW5nSW5uZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9TWF0aC5taW4oMSx0KSx1KCkpOnN9LG4ucGFkZGluZ091dGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPSt0LHUoKSk6bH0sbi5hbGlnbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz1NYXRoLm1heCgwLE1hdGgubWluKDEsdCkpLHUoKSk6Y30sbi5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIFhNKGkoKSxvKS5yb3VuZChhKS5wYWRkaW5nSW5uZXIocykucGFkZGluZ091dGVyKGwpLmFsaWduKGMpfSxWTS5hcHBseSh1KCksYXJndW1lbnRzKX1mdW5jdGlvbiAkTSh0KXt2YXIgZT10LmNvcHk7cmV0dXJuIHQucGFkZGluZz10LnBhZGRpbmdPdXRlcixkZWxldGUgdC5wYWRkaW5nSW5uZXIsZGVsZXRlIHQucGFkZGluZ091dGVyLHQuY29weT1mdW5jdGlvbigpe3JldHVybiAkTShlKCkpfSx0fWZ1bmN0aW9uIEtNKCl7cmV0dXJuICRNKFhNLmFwcGx5KG51bGwsYXJndW1lbnRzKS5wYWRkaW5nSW5uZXIoMSkpfWZ1bmN0aW9uIFpNKHQpe3JldHVybit0fXZhciBKTT1bMCwxXTtmdW5jdGlvbiBRTSh0KXtyZXR1cm4gdH1mdW5jdGlvbiB0RSh0LGUpe3JldHVybihlLT10PSt0KT9mdW5jdGlvbihuKXtyZXR1cm4obi10KS9lfTooZnVuY3Rpb24gbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KShpc05hTihlKT9OYU46LjUpfWZ1bmN0aW9uIGVFKHQpe3ZhciBlLG49dFswXSxpPXRbdC5sZW5ndGgtMV07cmV0dXJuIG4+aSYmKGU9bixuPWksaT1lKSxmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgobixNYXRoLm1pbihpLHQpKX19ZnVuY3Rpb24gbkUodCxlLG4pe3ZhciBpPXRbMF0scj10WzFdLG89ZVswXSxhPWVbMV07cmV0dXJuIHI8aT8oaT10RShyLGkpLG89bihhLG8pKTooaT10RShpLHIpLG89bihvLGEpKSxmdW5jdGlvbih0KXtyZXR1cm4gbyhpKHQpKX19ZnVuY3Rpb24gaUUodCxlLG4pe3ZhciBpPU1hdGgubWluKHQubGVuZ3RoLGUubGVuZ3RoKS0xLHI9bmV3IEFycmF5KGkpLG89bmV3IEFycmF5KGkpLGE9LTE7Zm9yKHRbaV08dFswXSYmKHQ9dC5zbGljZSgpLnJldmVyc2UoKSxlPWUuc2xpY2UoKS5yZXZlcnNlKCkpOysrYTxpOylyW2FdPXRFKHRbYV0sdFthKzFdKSxvW2FdPW4oZVthXSxlW2ErMV0pO3JldHVybiBmdW5jdGlvbihlKXt2YXIgbj1EbCh0LGUsMSxpKS0xO3JldHVybiBvW25dKHJbbl0oZSkpfX1mdW5jdGlvbiByRSh0LGUpe3JldHVybiBlLmRvbWFpbih0LmRvbWFpbigpKS5yYW5nZSh0LnJhbmdlKCkpLmludGVycG9sYXRlKHQuaW50ZXJwb2xhdGUoKSkuY2xhbXAodC5jbGFtcCgpKS51bmtub3duKHQudW5rbm93bigpKX1mdW5jdGlvbiBvRSgpe3ZhciB0LGUsbixpLHIsbyxhPUpNLHM9Sk0sbD1jcCxjPVFNO2Z1bmN0aW9uIHUoKXtyZXR1cm4gaT1NYXRoLm1pbihhLmxlbmd0aCxzLmxlbmd0aCk+Mj9pRTpuRSxyPW89bnVsbCxofWZ1bmN0aW9uIGgoZSl7cmV0dXJuIGlzTmFOKGU9K2UpP246KHJ8fChyPWkoYS5tYXAodCkscyxsKSkpKHQoYyhlKSkpfXJldHVybiBoLmludmVydD1mdW5jdGlvbihuKXtyZXR1cm4gYyhlKChvfHwobz1pKHMsYS5tYXAodCkscnApKSkobikpKX0saC5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9R00uY2FsbCh0LFpNKSxjPT09UU18fChjPWVFKGEpKSx1KCkpOmEuc2xpY2UoKX0saC5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1XTS5jYWxsKHQpLHUoKSk6cy5zbGljZSgpfSxoLnJhbmdlUm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHM9V00uY2FsbCh0KSxsPXVwLHUoKX0saC5jbGFtcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz10P2VFKGEpOlFNLGgpOmMhPT1RTX0saC5pbnRlcnBvbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD10LHUoKSk6bH0saC51bmtub3duPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQsaCk6bn0sZnVuY3Rpb24obixpKXtyZXR1cm4gdD1uLGU9aSx1KCl9fWZ1bmN0aW9uIGFFKHQsZSl7cmV0dXJuIG9FKCkodCxlKX1mdW5jdGlvbiBzRSh0LGUsbixpKXt2YXIgcixvPW5jKHQsZSxuKTtzd2l0Y2goKGk9a3kobnVsbD09aT8iLGYiOmkpKS50eXBlKXtjYXNlInMiOnZhciBhPU1hdGgubWF4KE1hdGguYWJzKHQpLE1hdGguYWJzKGUpKTtyZXR1cm4gbnVsbCE9aS5wcmVjaXNpb258fGlzTmFOKHI9R3kobyxhKSl8fChpLnByZWNpc2lvbj1yKSxCeShpLGEpO2Nhc2UiIjpjYXNlImUiOmNhc2UiZyI6Y2FzZSJwIjpjYXNlInIiOm51bGwhPWkucHJlY2lzaW9ufHxpc05hTihyPVd5KG8sTWF0aC5tYXgoTWF0aC5hYnModCksTWF0aC5hYnMoZSkpKSl8fChpLnByZWNpc2lvbj1yLSgiZSI9PT1pLnR5cGUpKTticmVhaztjYXNlImYiOmNhc2UiJSI6bnVsbCE9aS5wcmVjaXNpb258fGlzTmFOKHI9ankobykpfHwoaS5wcmVjaXNpb249ci0yKigiJSI9PT1pLnR5cGUpKX1yZXR1cm4gRHkoaSl9ZnVuY3Rpb24gbEUodCl7dmFyIGU9dC5kb21haW47cmV0dXJuIHQudGlja3M9ZnVuY3Rpb24odCl7dmFyIG49ZSgpO3JldHVybiB0YyhuWzBdLG5bbi5sZW5ndGgtMV0sbnVsbD09dD8xMDp0KX0sdC50aWNrRm9ybWF0PWZ1bmN0aW9uKHQsbil7dmFyIGk9ZSgpO3JldHVybiBzRShpWzBdLGlbaS5sZW5ndGgtMV0sbnVsbD09dD8xMDp0LG4pfSx0Lm5pY2U9ZnVuY3Rpb24obil7bnVsbD09biYmKG49MTApO3ZhciBpLHI9ZSgpLG89MCxhPXIubGVuZ3RoLTEscz1yW29dLGw9clthXTtyZXR1cm4gbDxzJiYoaT1zLHM9bCxsPWksaT1vLG89YSxhPWkpLChpPWVjKHMsbCxuKSk+MD9pPWVjKHM9TWF0aC5mbG9vcihzL2kpKmksbD1NYXRoLmNlaWwobC9pKSppLG4pOmk8MCYmKGk9ZWMocz1NYXRoLmNlaWwocyppKS9pLGw9TWF0aC5mbG9vcihsKmkpL2ksbikpLGk+MD8ocltvXT1NYXRoLmZsb29yKHMvaSkqaSxyW2FdPU1hdGguY2VpbChsL2kpKmksZShyKSk6aTwwJiYocltvXT1NYXRoLmNlaWwocyppKS9pLHJbYV09TWF0aC5mbG9vcihsKmkpL2ksZShyKSksdH0sdH1mdW5jdGlvbiBjRSgpe3ZhciB0PWFFKFFNLFFNKTtyZXR1cm4gdC5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHJFKHQsY0UoKSl9LFZNLmFwcGx5KHQsYXJndW1lbnRzKSxsRSh0KX1mdW5jdGlvbiB1RSh0LGUpe3ZhciBuLGk9MCxyPSh0PXQuc2xpY2UoKSkubGVuZ3RoLTEsbz10W2ldLGE9dFtyXTtyZXR1cm4gYTxvJiYobj1pLGk9cixyPW4sbj1vLG89YSxhPW4pLHRbaV09ZS5mbG9vcihvKSx0W3JdPWUuY2VpbChhKSx0fWZ1bmN0aW9uIGhFKHQpe3JldHVybiBNYXRoLmxvZyh0KX1mdW5jdGlvbiBkRSh0KXtyZXR1cm4gTWF0aC5leHAodCl9ZnVuY3Rpb24gcEUodCl7cmV0dXJuLU1hdGgubG9nKC10KX1mdW5jdGlvbiBmRSh0KXtyZXR1cm4tTWF0aC5leHAoLXQpfWZ1bmN0aW9uIG1FKHQpe3JldHVybiBpc0Zpbml0ZSh0KT8rKCIxZSIrdCk6dDwwPzA6dH1mdW5jdGlvbiBnRSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuLXQoLWUpfX1mdW5jdGlvbiBfRSh0KXt2YXIgZSxuLGk9dChoRSxkRSkscj1pLmRvbWFpbixvPTEwO2Z1bmN0aW9uIGEoKXtyZXR1cm4gZT0oZnVuY3Rpb24gYSh0KXtyZXR1cm4gdD09PU1hdGguRT9NYXRoLmxvZzoxMD09PXQmJk1hdGgubG9nMTB8fDI9PT10JiZNYXRoLmxvZzJ8fCh0PU1hdGgubG9nKHQpLGZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLmxvZyhlKS90fSl9KShvKSxuPShmdW5jdGlvbiBzKHQpe3JldHVybiAxMD09PXQ/bUU6dD09PU1hdGguRT9NYXRoLmV4cDpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5wb3codCxlKX19KShvKSxyKClbMF08MD8oZT1nRShlKSxuPWdFKG4pLHQocEUsZkUpKTp0KGhFLGRFKSxpfXJldHVybiBpLmJhc2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89K3QsYSgpKTpvfSxpLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocih0KSxhKCkpOnIoKX0saS50aWNrcz1mdW5jdGlvbih0KXt2YXIgaSxhPXIoKSxzPWFbMF0sbD1hW2EubGVuZ3RoLTFdOyhpPWw8cykmJihkPXMscz1sLGw9ZCk7dmFyIGMsdSxoLGQ9ZShzKSxwPWUobCksZj1udWxsPT10PzEwOit0LG09W107aWYoIShvJTEpJiZwLWQ8Zil7aWYoZD1NYXRoLnJvdW5kKGQpLTEscD1NYXRoLnJvdW5kKHApKzEscz4wKXtmb3IoO2Q8cDsrK2QpZm9yKHU9MSxjPW4oZCk7dTxvOysrdSlpZighKChoPWMqdSk8cykpe2lmKGg+bClicmVhazttLnB1c2goaCl9fWVsc2UgZm9yKDtkPHA7KytkKWZvcih1PW8tMSxjPW4oZCk7dT49MTstLXUpaWYoISgoaD1jKnUpPHMpKXtpZihoPmwpYnJlYWs7bS5wdXNoKGgpfX1lbHNlIG09dGMoZCxwLE1hdGgubWluKHAtZCxmKSkubWFwKG4pO3JldHVybiBpP20ucmV2ZXJzZSgpOm19LGkudGlja0Zvcm1hdD1mdW5jdGlvbih0LHIpe2lmKG51bGw9PXImJihyPTEwPT09bz8iLjBlIjoiLCIpLCJmdW5jdGlvbiIhPXR5cGVvZiByJiYocj1EeShyKSksdD09PTEvMClyZXR1cm4gcjtudWxsPT10JiYodD0xMCk7dmFyIGE9TWF0aC5tYXgoMSxvKnQvaS50aWNrcygpLmxlbmd0aCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBpPXQvbihNYXRoLnJvdW5kKGUodCkpKTtyZXR1cm4gaSpvPG8tLjUmJihpKj1vKSxpPD1hP3IodCk6IiJ9fSxpLm5pY2U9ZnVuY3Rpb24oKXtyZXR1cm4gcih1RShyKCkse2Zsb29yOmZ1bmN0aW9uKHQpe3JldHVybiBuKE1hdGguZmxvb3IoZSh0KSkpfSxjZWlsOmZ1bmN0aW9uKHQpe3JldHVybiBuKE1hdGguY2VpbChlKHQpKSl9fSkpfSxpfWZ1bmN0aW9uIHlFKCl7dmFyIHQ9X0Uob0UoKSkuZG9tYWluKFsxLDEwXSk7cmV0dXJuIHQuY29weT1mdW5jdGlvbigpe3JldHVybiByRSh0LHlFKCkpLmJhc2UodC5iYXNlKCkpfSxWTS5hcHBseSh0LGFyZ3VtZW50cyksdH1mdW5jdGlvbiB2RSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGguc2lnbihlKSpNYXRoLmxvZzFwKE1hdGguYWJzKGUvdCkpfX1mdW5jdGlvbiBiRSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGguc2lnbihlKSpNYXRoLmV4cG0xKE1hdGguYWJzKGUpKSp0fX1mdW5jdGlvbiB4RSh0KXt2YXIgZT0xLG49dCh2RShlKSxiRShlKSk7cmV0dXJuIG4uY29uc3RhbnQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dCh2RShlPStuKSxiRShlKSk6ZX0sbEUobil9ZnVuY3Rpb24gd0UodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlPDA/LU1hdGgucG93KC1lLHQpOk1hdGgucG93KGUsdCl9fWZ1bmN0aW9uIFNFKHQpe3JldHVybiB0PDA/LU1hdGguc3FydCgtdCk6TWF0aC5zcXJ0KHQpfWZ1bmN0aW9uIE1FKHQpe3JldHVybiB0PDA/LXQqdDp0KnR9ZnVuY3Rpb24gRUUodCl7dmFyIGU9dChRTSxRTSksbj0xO2Z1bmN0aW9uIGkoKXtyZXR1cm4gMT09PW4/dChRTSxRTSk6LjU9PT1uP3QoU0UsTUUpOnQod0Uobiksd0UoMS9uKSl9cmV0dXJuIGUuZXhwb25lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3QsaSgpKTpufSxsRShlKX1mdW5jdGlvbiBURSgpe3ZhciB0PUVFKG9FKCkpO3JldHVybiB0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gckUodCxURSgpKS5leHBvbmVudCh0LmV4cG9uZW50KCkpfSxWTS5hcHBseSh0LGFyZ3VtZW50cyksdH1mdW5jdGlvbiBDRSgpe3ZhciB0LGU9W10sbj1bXSxpPVtdO2Z1bmN0aW9uIHIoKXt2YXIgdD0wLHI9TWF0aC5tYXgoMSxuLmxlbmd0aCk7Zm9yKGk9bmV3IEFycmF5KHItMSk7Kyt0PHI7KWlbdC0xXT1yYyhlLHQvcik7cmV0dXJuIG99ZnVuY3Rpb24gbyhlKXtyZXR1cm4gaXNOYU4oZT0rZSk/dDpuW0RsKGksZSldfXJldHVybiBvLmludmVydEV4dGVudD1mdW5jdGlvbih0KXt2YXIgcj1uLmluZGV4T2YodCk7cmV0dXJuIHI8MD9bTmFOLE5hTl06W3I+MD9pW3ItMV06ZVswXSxyPGkubGVuZ3RoP2lbcl06ZVtlLmxlbmd0aC0xXV19LG8uZG9tYWluPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBlLnNsaWNlKCk7ZT1bXTtmb3IodmFyIG4saT0wLG89dC5sZW5ndGg7aTxvOysraSludWxsPT0obj10W2ldKXx8aXNOYU4obj0rbil8fGUucHVzaChuKTtyZXR1cm4gZS5zb3J0KFJsKSxyKCl9LG8ucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49V00uY2FsbCh0KSxyKCkpOm4uc2xpY2UoKX0sby51bmtub3duPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWUsbyk6dH0sby5xdWFudGlsZXM9ZnVuY3Rpb24oKXtyZXR1cm4gaS5zbGljZSgpfSxvLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gQ0UoKS5kb21haW4oZSkucmFuZ2UobikudW5rbm93bih0KX0sVk0uYXBwbHkobyxhcmd1bWVudHMpfWZ1bmN0aW9uIEFFKCl7dmFyIHQsZT0wLG49MSxpPTEscj1bLjVdLG89WzAsMV07ZnVuY3Rpb24gYShlKXtyZXR1cm4gZTw9ZT9vW0RsKHIsZSwwLGkpXTp0fWZ1bmN0aW9uIHMoKXt2YXIgdD0tMTtmb3Iocj1uZXcgQXJyYXkoaSk7Kyt0PGk7KXJbdF09KCh0KzEpKm4tKHQtaSkqZSkvKGkrMSk7cmV0dXJuIGF9cmV0dXJuIGEuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0WzBdLG49K3RbMV0scygpKTpbZSxuXX0sYS5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0obz1XTS5jYWxsKHQpKS5sZW5ndGgtMSxzKCkpOm8uc2xpY2UoKX0sYS5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24odCl7dmFyIGE9by5pbmRleE9mKHQpO3JldHVybiBhPDA/W05hTixOYU5dOmE8MT9bZSxyWzBdXTphPj1pP1tyW2ktMV0sbl06W3JbYS0xXSxyW2FdXX0sYS51bmtub3duPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWUsYSk6YX0sYS50aHJlc2hvbGRzPWZ1bmN0aW9uKCl7cmV0dXJuIHIuc2xpY2UoKX0sYS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEFFKCkuZG9tYWluKFtlLG5dKS5yYW5nZShvKS51bmtub3duKHQpfSxWTS5hcHBseShsRShhKSxhcmd1bWVudHMpfXZhciBrRT1uZXcgRGF0ZSxMRT1uZXcgRGF0ZTtmdW5jdGlvbiBQRSh0LGUsbixpKXtmdW5jdGlvbiByKGUpe3JldHVybiB0KGU9MD09PWFyZ3VtZW50cy5sZW5ndGg/bmV3IERhdGU6bmV3IERhdGUoK2UpKSxlfXJldHVybiByLmZsb29yPWZ1bmN0aW9uKGUpe3JldHVybiB0KGU9bmV3IERhdGUoK2UpKSxlfSxyLmNlaWw9ZnVuY3Rpb24obil7cmV0dXJuIHQobj1uZXcgRGF0ZShuLTEpKSxlKG4sMSksdChuKSxufSxyLnJvdW5kPWZ1bmN0aW9uKHQpe3ZhciBlPXIodCksbj1yLmNlaWwodCk7cmV0dXJuIHQtZTxuLXQ/ZTpufSxyLm9mZnNldD1mdW5jdGlvbih0LG4pe3JldHVybiBlKHQ9bmV3IERhdGUoK3QpLG51bGw9PW4/MTpNYXRoLmZsb29yKG4pKSx0fSxyLnJhbmdlPWZ1bmN0aW9uKG4saSxvKXt2YXIgYSxzPVtdO2lmKG49ci5jZWlsKG4pLG89bnVsbD09bz8xOk1hdGguZmxvb3IobyksIShuPGkmJm8+MCkpcmV0dXJuIHM7ZG97cy5wdXNoKGE9bmV3IERhdGUoK24pKSxlKG4sbyksdChuKX13aGlsZShhPG4mJm48aSk7cmV0dXJuIHN9LHIuZmlsdGVyPWZ1bmN0aW9uKG4pe3JldHVybiBQRSgoZnVuY3Rpb24oZSl7aWYoZT49ZSlmb3IoO3QoZSksIW4oZSk7KWUuc2V0VGltZShlLTEpfSksKGZ1bmN0aW9uKHQsaSl7aWYodD49dClpZihpPDApZm9yKDsrK2k8PTA7KWZvcig7ZSh0LC0xKSwhbih0KTspO2Vsc2UgZm9yKDstLWk+PTA7KWZvcig7ZSh0LDEpLCFuKHQpOyk7fSkpfSxuJiYoci5jb3VudD1mdW5jdGlvbihlLGkpe3JldHVybiBrRS5zZXRUaW1lKCtlKSxMRS5zZXRUaW1lKCtpKSx0KGtFKSx0KExFKSxNYXRoLmZsb29yKG4oa0UsTEUpKX0sci5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP3IuZmlsdGVyKGk/ZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSkldD09MH06ZnVuY3Rpb24oZSl7cmV0dXJuIHIuY291bnQoMCxlKSV0PT0wfSk6cjpudWxsfSkscn12YXIgTkU9UEUoKGZ1bmN0aW9uKCl7fSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUtdH0pKTtORS5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP1BFKChmdW5jdGlvbihlKXtlLnNldFRpbWUoTWF0aC5mbG9vcihlL3QpKnQpfSksKGZ1bmN0aW9uKGUsbil7ZS5zZXRUaW1lKCtlK24qdCl9KSwoZnVuY3Rpb24oZSxuKXtyZXR1cm4obi1lKS90fSkpOk5FOm51bGx9O3ZhciBJRT1ORSxSRT1ORS5yYW5nZSxPRT0xZTMsekU9NmU0LERFPTM2ZTUsQkU9ODY0ZTUsSEU9NjA0OGU1LEZFPVBFKChmdW5jdGlvbih0KXt0LnNldFRpbWUodC10LmdldE1pbGxpc2Vjb25kcygpKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKk9FKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL09FfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ1NlY29uZHMoKX0pKSxWRT1GRSxVRT1GRS5yYW5nZSxqRT1QRSgoZnVuY3Rpb24odCl7dC5zZXRUaW1lKHQtdC5nZXRNaWxsaXNlY29uZHMoKS10LmdldFNlY29uZHMoKSpPRSl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFRpbWUoK3QrZSp6RSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS96RX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRNaW51dGVzKCl9KSksR0U9akUsV0U9akUucmFuZ2UscUU9UEUoKGZ1bmN0aW9uKHQpe3Quc2V0VGltZSh0LXQuZ2V0TWlsbGlzZWNvbmRzKCktdC5nZXRTZWNvbmRzKCkqT0UtdC5nZXRNaW51dGVzKCkqekUpfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UqREUpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvREV9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0SG91cnMoKX0pKSxZRT1xRSxYRT1xRS5yYW5nZSwkRT1QRSgoZnVuY3Rpb24odCl7dC5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0RGF0ZSh0LmdldERhdGUoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQtKGUuZ2V0VGltZXpvbmVPZmZzZXQoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkpKnpFKS9CRX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXREYXRlKCktMX0pKSxLRT0kRSxaRT0kRS5yYW5nZTtmdW5jdGlvbiBKRSh0KXtyZXR1cm4gUEUoKGZ1bmN0aW9uKGUpe2Uuc2V0RGF0ZShlLmdldERhdGUoKS0oZS5nZXREYXkoKSs3LXQpJTcpLGUuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldERhdGUodC5nZXREYXRlKCkrNyplKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQtKGUuZ2V0VGltZXpvbmVPZmZzZXQoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkpKnpFKS9IRX0pKX12YXIgUUU9SkUoMCksdFQ9SkUoMSksZVQ9SkUoMiksblQ9SkUoMyksaVQ9SkUoNCksclQ9SkUoNSksb1Q9SkUoNiksYVQ9UUUucmFuZ2Usc1Q9dFQucmFuZ2UsbFQ9ZVQucmFuZ2UsY1Q9blQucmFuZ2UsdVQ9aVQucmFuZ2UsaFQ9clQucmFuZ2UsZFQ9b1QucmFuZ2UscFQ9UEUoKGZ1bmN0aW9uKHQpe3Quc2V0RGF0ZSgxKSx0LnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRNb250aCh0LmdldE1vbnRoKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5nZXRNb250aCgpLXQuZ2V0TW9udGgoKSsxMiooZS5nZXRGdWxsWWVhcigpLXQuZ2V0RnVsbFllYXIoKSl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0TW9udGgoKX0pKSxmVD1wVCxtVD1wVC5yYW5nZSxnVD1QRSgoZnVuY3Rpb24odCl7dC5zZXRNb250aCgwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmdldEZ1bGxZZWFyKCktdC5nZXRGdWxsWWVhcigpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEZ1bGxZZWFyKCl9KSk7Z1QuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIGlzRmluaXRlKHQ9TWF0aC5mbG9vcih0KSkmJnQ+MD9QRSgoZnVuY3Rpb24oZSl7ZS5zZXRGdWxsWWVhcihNYXRoLmZsb29yKGUuZ2V0RnVsbFllYXIoKS90KSp0KSxlLnNldE1vbnRoKDAsMSksZS5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbihlLG4pe2Uuc2V0RnVsbFllYXIoZS5nZXRGdWxsWWVhcigpK24qdCl9KSk6bnVsbH07dmFyIF9UPWdULHlUPWdULnJhbmdlLHZUPVBFKChmdW5jdGlvbih0KXt0LnNldFVUQ1NlY29uZHMoMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKnpFKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL3pFfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ01pbnV0ZXMoKX0pKSxiVD12VCx4VD12VC5yYW5nZSx3VD1QRSgoZnVuY3Rpb24odCl7dC5zZXRVVENNaW51dGVzKDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKkRFKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL0RFfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0hvdXJzKCl9KSksU1Q9d1QsTVQ9d1QucmFuZ2UsRVQ9UEUoKGZ1bmN0aW9uKHQpe3Quc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFVUQ0RhdGUodC5nZXRVVENEYXRlKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS9CRX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENEYXRlKCktMX0pKSxUVD1FVCxDVD1FVC5yYW5nZTtmdW5jdGlvbiBBVCh0KXtyZXR1cm4gUEUoKGZ1bmN0aW9uKGUpe2Uuc2V0VVRDRGF0ZShlLmdldFVUQ0RhdGUoKS0oZS5nZXRVVENEYXkoKSs3LXQpJTcpLGUuc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFVUQ0RhdGUodC5nZXRVVENEYXRlKCkrNyplKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL0hFfSkpfXZhciBrVD1BVCgwKSxMVD1BVCgxKSxQVD1BVCgyKSxOVD1BVCgzKSxJVD1BVCg0KSxSVD1BVCg1KSxPVD1BVCg2KSx6VD1rVC5yYW5nZSxEVD1MVC5yYW5nZSxCVD1QVC5yYW5nZSxIVD1OVC5yYW5nZSxGVD1JVC5yYW5nZSxWVD1SVC5yYW5nZSxVVD1PVC5yYW5nZSxqVD1QRSgoZnVuY3Rpb24odCl7dC5zZXRVVENEYXRlKDEpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFVUQ01vbnRoKHQuZ2V0VVRDTW9udGgoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmdldFVUQ01vbnRoKCktdC5nZXRVVENNb250aCgpKzEyKihlLmdldFVUQ0Z1bGxZZWFyKCktdC5nZXRVVENGdWxsWWVhcigpKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENNb250aCgpfSkpLEdUPWpULFdUPWpULnJhbmdlLHFUPVBFKChmdW5jdGlvbih0KXt0LnNldFVUQ01vbnRoKDAsMSksdC5zZXRVVENIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VVRDRnVsbFllYXIodC5nZXRVVENGdWxsWWVhcigpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZ2V0VVRDRnVsbFllYXIoKS10LmdldFVUQ0Z1bGxZZWFyKCl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDRnVsbFllYXIoKX0pKTtxVC5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gaXNGaW5pdGUodD1NYXRoLmZsb29yKHQpKSYmdD4wP1BFKChmdW5jdGlvbihlKXtlLnNldFVUQ0Z1bGxZZWFyKE1hdGguZmxvb3IoZS5nZXRVVENGdWxsWWVhcigpL3QpKnQpLGUuc2V0VVRDTW9udGgoMCwxKSxlLnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKGUsbil7ZS5zZXRVVENGdWxsWWVhcihlLmdldFVUQ0Z1bGxZZWFyKCkrbip0KX0pKTpudWxsfTt2YXIgWVQ9cVQsWFQ9cVQucmFuZ2U7ZnVuY3Rpb24gJFQodCl7aWYoMDw9dC55JiZ0Lnk8MTAwKXt2YXIgZT1uZXcgRGF0ZSgtMSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCk7cmV0dXJuIGUuc2V0RnVsbFllYXIodC55KSxlfXJldHVybiBuZXcgRGF0ZSh0LnksdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpfWZ1bmN0aW9uIEtUKHQpe2lmKDA8PXQueSYmdC55PDEwMCl7dmFyIGU9bmV3IERhdGUoRGF0ZS5VVEMoLTEsdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpKTtyZXR1cm4gZS5zZXRVVENGdWxsWWVhcih0LnkpLGV9cmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKHQueSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCkpfWZ1bmN0aW9uIFpUKHQsZSxuKXtyZXR1cm57eTp0LG06ZSxkOm4sSDowLE06MCxTOjAsTDowfX1mdW5jdGlvbiBKVCh0KXt2YXIgZT10LmRhdGVUaW1lLG49dC5kYXRlLGk9dC50aW1lLHI9dC5wZXJpb2RzLG89dC5kYXlzLGE9dC5zaG9ydERheXMscz10Lm1vbnRocyxsPXQuc2hvcnRNb250aHMsYz11QyhyKSx1PWhDKHIpLGg9dUMobyksZD1oQyhvKSxwPXVDKGEpLGY9aEMoYSksbT11QyhzKSxnPWhDKHMpLF89dUMobCkseT1oQyhsKSx2PXthOmZ1bmN0aW9uIGIodCl7cmV0dXJuIGFbdC5nZXREYXkoKV19LEE6ZnVuY3Rpb24geCh0KXtyZXR1cm4gb1t0LmdldERheSgpXX0sYjpmdW5jdGlvbiB3KHQpe3JldHVybiBsW3QuZ2V0TW9udGgoKV19LEI6ZnVuY3Rpb24gUyh0KXtyZXR1cm4gc1t0LmdldE1vbnRoKCldfSxjOm51bGwsZDpOQyxlOk5DLGY6REMsZzpYQyxHOktDLEg6SUMsSTpSQyxqOk9DLEw6ekMsbTpCQyxNOkhDLHA6ZnVuY3Rpb24gTSh0KXtyZXR1cm4gclsrKHQuZ2V0SG91cnMoKT49MTIpXX0scTpmdW5jdGlvbiBFKHQpe3JldHVybiAxK35+KHQuZ2V0TW9udGgoKS8zKX0sUTp2QSxzOmJBLFM6RkMsdTpWQyxVOlVDLFY6R0MsdzpXQyxXOnFDLHg6bnVsbCxYOm51bGwseTpZQyxZOiRDLFo6WkMsIiUiOnlBfSxUPXthOmZ1bmN0aW9uIEModCl7cmV0dXJuIGFbdC5nZXRVVENEYXkoKV19LEE6ZnVuY3Rpb24gQSh0KXtyZXR1cm4gb1t0LmdldFVUQ0RheSgpXX0sYjpmdW5jdGlvbiBrKHQpe3JldHVybiBsW3QuZ2V0VVRDTW9udGgoKV19LEI6ZnVuY3Rpb24gTCh0KXtyZXR1cm4gc1t0LmdldFVUQ01vbnRoKCldfSxjOm51bGwsZDpKQyxlOkpDLGY6aUEsZzpmQSxHOmdBLEg6UUMsSTp0QSxqOmVBLEw6bkEsbTpyQSxNOm9BLHA6ZnVuY3Rpb24gUCh0KXtyZXR1cm4gclsrKHQuZ2V0VVRDSG91cnMoKT49MTIpXX0scTpmdW5jdGlvbiBOKHQpe3JldHVybiAxK35+KHQuZ2V0VVRDTW9udGgoKS8zKX0sUTp2QSxzOmJBLFM6YUEsdTpzQSxVOmxBLFY6dUEsdzpoQSxXOmRBLHg6bnVsbCxYOm51bGwseTpwQSxZOm1BLFo6X0EsIiUiOnlBfSxJPXthOmZ1bmN0aW9uIFIodCxlLG4pe3ZhciBpPXAuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC53PWZbaVswXS50b0xvd2VyQ2FzZSgpXSxuK2lbMF0ubGVuZ3RoKTotMX0sQTpmdW5jdGlvbiBPKHQsZSxuKXt2YXIgaT1oLmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIGk/KHQudz1kW2lbMF0udG9Mb3dlckNhc2UoKV0sbitpWzBdLmxlbmd0aCk6LTF9LGI6ZnVuY3Rpb24geih0LGUsbil7dmFyIGk9Xy5leGVjKGUuc2xpY2UobikpO3JldHVybiBpPyh0Lm09eVtpWzBdLnRvTG93ZXJDYXNlKCldLG4raVswXS5sZW5ndGgpOi0xfSxCOmZ1bmN0aW9uIEQodCxlLG4pe3ZhciBpPW0uZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC5tPWdbaVswXS50b0xvd2VyQ2FzZSgpXSxuK2lbMF0ubGVuZ3RoKTotMX0sYzpmdW5jdGlvbiBCKHQsbixpKXtyZXR1cm4gRyh0LGUsbixpKX0sZDp3QyxlOndDLGY6QUMsZzp5QyxHOl9DLEg6TUMsSTpNQyxqOlNDLEw6Q0MsbTp4QyxNOkVDLHA6ZnVuY3Rpb24gSCh0LGUsbil7dmFyIGk9Yy5leGVjKGUuc2xpY2UobikpO3JldHVybiBpPyh0LnA9dVtpWzBdLnRvTG93ZXJDYXNlKCldLG4raVswXS5sZW5ndGgpOi0xfSxxOmJDLFE6TEMsczpQQyxTOlRDLHU6cEMsVTpmQyxWOm1DLHc6ZEMsVzpnQyx4OmZ1bmN0aW9uIEYodCxlLGkpe3JldHVybiBHKHQsbixlLGkpfSxYOmZ1bmN0aW9uIFYodCxlLG4pe3JldHVybiBHKHQsaSxlLG4pfSx5OnlDLFk6X0MsWjp2QywiJSI6a0N9O2Z1bmN0aW9uIFUodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGkscixvLGE9W10scz0tMSxsPTAsYz10Lmxlbmd0aDtmb3IobiBpbnN0YW5jZW9mIERhdGV8fChuPW5ldyBEYXRlKCtuKSk7KytzPGM7KTM3PT09dC5jaGFyQ29kZUF0KHMpJiYoYS5wdXNoKHQuc2xpY2UobCxzKSksbnVsbCE9KHI9ckNbaT10LmNoYXJBdCgrK3MpXSk/aT10LmNoYXJBdCgrK3MpOnI9ImUiPT09aT8iICI6IjAiLChvPWVbaV0pJiYoaT1vKG4scikpLGEucHVzaChpKSxsPXMrMSk7cmV0dXJuIGEucHVzaCh0LnNsaWNlKGwscykpLGEuam9pbigiIil9fWZ1bmN0aW9uIGoodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGkscixvPVpUKDE5MDAsdm9pZCAwLDEpO2lmKEcobyx0LG4rPSIiLDApIT1uLmxlbmd0aClyZXR1cm4gbnVsbDtpZigiUSJpbiBvKXJldHVybiBuZXcgRGF0ZShvLlEpO2lmKCJzImluIG8pcmV0dXJuIG5ldyBEYXRlKDFlMypvLnMrKCJMImluIG8/by5MOjApKTtpZihlJiYhKCJaImluIG8pJiYoby5aPTApLCJwImluIG8mJihvLkg9by5IJTEyKzEyKm8ucCksdm9pZCAwPT09by5tJiYoby5tPSJxImluIG8/by5xOjApLCJWImluIG8pe2lmKG8uVjwxfHxvLlY+NTMpcmV0dXJuIG51bGw7InciaW4gb3x8KG8udz0xKSwiWiJpbiBvPyhyPShpPUtUKFpUKG8ueSwwLDEpKSkuZ2V0VVRDRGF5KCksaT1yPjR8fDA9PT1yP0xULmNlaWwoaSk6TFQoaSksaT1UVC5vZmZzZXQoaSw3KihvLlYtMSkpLG8ueT1pLmdldFVUQ0Z1bGxZZWFyKCksby5tPWkuZ2V0VVRDTW9udGgoKSxvLmQ9aS5nZXRVVENEYXRlKCkrKG8udys2KSU3KToocj0oaT0kVChaVChvLnksMCwxKSkpLmdldERheSgpLGk9cj40fHwwPT09cj90VC5jZWlsKGkpOnRUKGkpLGk9S0Uub2Zmc2V0KGksNyooby5WLTEpKSxvLnk9aS5nZXRGdWxsWWVhcigpLG8ubT1pLmdldE1vbnRoKCksby5kPWkuZ2V0RGF0ZSgpKyhvLncrNiklNyl9ZWxzZSgiVyJpbiBvfHwiVSJpbiBvKSYmKCJ3ImluIG98fChvLnc9InUiaW4gbz9vLnUlNzoiVyJpbiBvPzE6MCkscj0iWiJpbiBvP0tUKFpUKG8ueSwwLDEpKS5nZXRVVENEYXkoKTokVChaVChvLnksMCwxKSkuZ2V0RGF5KCksby5tPTAsby5kPSJXImluIG8/KG8udys2KSU3Kzcqby5XLShyKzUpJTc6by53Kzcqby5VLShyKzYpJTcpO3JldHVybiJaImluIG8/KG8uSCs9by5aLzEwMHwwLG8uTSs9by5aJTEwMCxLVChvKSk6JFQobyl9fWZ1bmN0aW9uIEcodCxlLG4saSl7Zm9yKHZhciByLG8sYT0wLHM9ZS5sZW5ndGgsbD1uLmxlbmd0aDthPHM7KXtpZihpPj1sKXJldHVybi0xO2lmKDM3PT09KHI9ZS5jaGFyQ29kZUF0KGErKykpKXtpZihyPWUuY2hhckF0KGErKyksIShvPUlbciBpbiByQz9lLmNoYXJBdChhKyspOnJdKXx8KGk9byh0LG4saSkpPDApcmV0dXJuLTF9ZWxzZSBpZihyIT1uLmNoYXJDb2RlQXQoaSsrKSlyZXR1cm4tMX1yZXR1cm4gaX1yZXR1cm4gdi54PVUobix2KSx2Llg9VShpLHYpLHYuYz1VKGUsdiksVC54PVUobixUKSxULlg9VShpLFQpLFQuYz1VKGUsVCkse2Zvcm1hdDpmdW5jdGlvbih0KXt2YXIgZT1VKHQrPSIiLHYpO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPWoodCs9IiIsITEpO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHV0Y0Zvcm1hdDpmdW5jdGlvbih0KXt2YXIgZT1VKHQrPSIiLFQpO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHV0Y1BhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPWoodCs9IiIsITApO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9fX12YXIgUVQsdEMsZUMsbkMsaUMsckM9eyItIjoiIixfOiIgIiwwOiIwIn0sb0M9L15ccypcZCsvLGFDPS9eJS8sc0M9L1tcXF4kKis/fFtcXSgpLnt9XS9nO2Z1bmN0aW9uIGxDKHQsZSxuKXt2YXIgaT10PDA/Ii0iOiIiLHI9KGk/LXQ6dCkrIiIsbz1yLmxlbmd0aDtyZXR1cm4gaSsobzxuP25ldyBBcnJheShuLW8rMSkuam9pbihlKStyOnIpfWZ1bmN0aW9uIGNDKHQpe3JldHVybiB0LnJlcGxhY2Uoc0MsIlxcJCYiKX1mdW5jdGlvbiB1Qyh0KXtyZXR1cm4gbmV3IFJlZ0V4cCgiXig/OiIrdC5tYXAoY0MpLmpvaW4oInwiKSsiKSIsImkiKX1mdW5jdGlvbiBoQyh0KXtmb3IodmFyIGU9e30sbj0tMSxpPXQubGVuZ3RoOysrbjxpOyllW3Rbbl0udG9Mb3dlckNhc2UoKV09bjtyZXR1cm4gZX1mdW5jdGlvbiBkQyh0LGUsbil7dmFyIGk9b0MuZXhlYyhlLnNsaWNlKG4sbisxKSk7cmV0dXJuIGk/KHQudz0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBwQyh0LGUsbil7dmFyIGk9b0MuZXhlYyhlLnNsaWNlKG4sbisxKSk7cmV0dXJuIGk/KHQudT0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBmQyh0LGUsbil7dmFyIGk9b0MuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQuVT0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBtQyh0LGUsbil7dmFyIGk9b0MuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQuVj0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBnQyh0LGUsbil7dmFyIGk9b0MuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQuVz0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBfQyh0LGUsbil7dmFyIGk9b0MuZXhlYyhlLnNsaWNlKG4sbis0KSk7cmV0dXJuIGk/KHQueT0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB5Qyh0LGUsbil7dmFyIGk9b0MuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQueT0raVswXSsoK2lbMF0+Njg/MTkwMDoyZTMpLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHZDKHQsZSxuKXt2YXIgaT0vXihaKXwoWystXVxkXGQpKD86Oj8oXGRcZCkpPy8uZXhlYyhlLnNsaWNlKG4sbis2KSk7cmV0dXJuIGk/KHQuWj1pWzFdPzA6LShpWzJdKyhpWzNdfHwiMDAiKSksbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gYkModCxlLG4pe3ZhciBpPW9DLmV4ZWMoZS5zbGljZShuLG4rMSkpO3JldHVybiBpPyh0LnE9MyppWzBdLTMsbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24geEModCxlLG4pe3ZhciBpPW9DLmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0Lm09aVswXS0xLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHdDKHQsZSxuKXt2YXIgaT1vQy5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5kPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFNDKHQsZSxuKXt2YXIgaT1vQy5leGVjKGUuc2xpY2UobixuKzMpKTtyZXR1cm4gaT8odC5tPTAsdC5kPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIE1DKHQsZSxuKXt2YXIgaT1vQy5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5IPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEVDKHQsZSxuKXt2YXIgaT1vQy5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5NPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFRDKHQsZSxuKXt2YXIgaT1vQy5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5TPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIENDKHQsZSxuKXt2YXIgaT1vQy5leGVjKGUuc2xpY2UobixuKzMpKTtyZXR1cm4gaT8odC5MPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEFDKHQsZSxuKXt2YXIgaT1vQy5leGVjKGUuc2xpY2UobixuKzYpKTtyZXR1cm4gaT8odC5MPU1hdGguZmxvb3IoaVswXS8xZTMpLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGtDKHQsZSxuKXt2YXIgaT1hQy5leGVjKGUuc2xpY2UobixuKzEpKTtyZXR1cm4gaT9uK2lbMF0ubGVuZ3RoOi0xfWZ1bmN0aW9uIExDKHQsZSxuKXt2YXIgaT1vQy5leGVjKGUuc2xpY2UobikpO3JldHVybiBpPyh0LlE9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gUEModCxlLG4pe3ZhciBpPW9DLmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIGk/KHQucz0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBOQyh0LGUpe3JldHVybiBsQyh0LmdldERhdGUoKSxlLDIpfWZ1bmN0aW9uIElDKHQsZSl7cmV0dXJuIGxDKHQuZ2V0SG91cnMoKSxlLDIpfWZ1bmN0aW9uIFJDKHQsZSl7cmV0dXJuIGxDKHQuZ2V0SG91cnMoKSUxMnx8MTIsZSwyKX1mdW5jdGlvbiBPQyh0LGUpe3JldHVybiBsQygxK0tFLmNvdW50KF9UKHQpLHQpLGUsMyl9ZnVuY3Rpb24gekModCxlKXtyZXR1cm4gbEModC5nZXRNaWxsaXNlY29uZHMoKSxlLDMpfWZ1bmN0aW9uIERDKHQsZSl7cmV0dXJuIHpDKHQsZSkrIjAwMCJ9ZnVuY3Rpb24gQkModCxlKXtyZXR1cm4gbEModC5nZXRNb250aCgpKzEsZSwyKX1mdW5jdGlvbiBIQyh0LGUpe3JldHVybiBsQyh0LmdldE1pbnV0ZXMoKSxlLDIpfWZ1bmN0aW9uIEZDKHQsZSl7cmV0dXJuIGxDKHQuZ2V0U2Vjb25kcygpLGUsMil9ZnVuY3Rpb24gVkModCl7dmFyIGU9dC5nZXREYXkoKTtyZXR1cm4gMD09PWU/NzplfWZ1bmN0aW9uIFVDKHQsZSl7cmV0dXJuIGxDKFFFLmNvdW50KF9UKHQpLTEsdCksZSwyKX1mdW5jdGlvbiBqQyh0KXt2YXIgZT10LmdldERheSgpO3JldHVybiBlPj00fHwwPT09ZT9pVCh0KTppVC5jZWlsKHQpfWZ1bmN0aW9uIEdDKHQsZSl7cmV0dXJuIHQ9akModCksbEMoaVQuY291bnQoX1QodCksdCkrKDQ9PT1fVCh0KS5nZXREYXkoKSksZSwyKX1mdW5jdGlvbiBXQyh0KXtyZXR1cm4gdC5nZXREYXkoKX1mdW5jdGlvbiBxQyh0LGUpe3JldHVybiBsQyh0VC5jb3VudChfVCh0KS0xLHQpLGUsMil9ZnVuY3Rpb24gWUModCxlKXtyZXR1cm4gbEModC5nZXRGdWxsWWVhcigpJTEwMCxlLDIpfWZ1bmN0aW9uIFhDKHQsZSl7cmV0dXJuIGxDKCh0PWpDKHQpKS5nZXRGdWxsWWVhcigpJTEwMCxlLDIpfWZ1bmN0aW9uICRDKHQsZSl7cmV0dXJuIGxDKHQuZ2V0RnVsbFllYXIoKSUxZTQsZSw0KX1mdW5jdGlvbiBLQyh0LGUpe3ZhciBuPXQuZ2V0RGF5KCk7cmV0dXJuIGxDKCh0PW4+PTR8fDA9PT1uP2lUKHQpOmlULmNlaWwodCkpLmdldEZ1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24gWkModCl7dmFyIGU9dC5nZXRUaW1lem9uZU9mZnNldCgpO3JldHVybihlPjA/Ii0iOihlKj0tMSwiKyIpKStsQyhlLzYwfDAsIjAiLDIpK2xDKGUlNjAsIjAiLDIpfWZ1bmN0aW9uIEpDKHQsZSl7cmV0dXJuIGxDKHQuZ2V0VVRDRGF0ZSgpLGUsMil9ZnVuY3Rpb24gUUModCxlKXtyZXR1cm4gbEModC5nZXRVVENIb3VycygpLGUsMil9ZnVuY3Rpb24gdEEodCxlKXtyZXR1cm4gbEModC5nZXRVVENIb3VycygpJTEyfHwxMixlLDIpfWZ1bmN0aW9uIGVBKHQsZSl7cmV0dXJuIGxDKDErVFQuY291bnQoWVQodCksdCksZSwzKX1mdW5jdGlvbiBuQSh0LGUpe3JldHVybiBsQyh0LmdldFVUQ01pbGxpc2Vjb25kcygpLGUsMyl9ZnVuY3Rpb24gaUEodCxlKXtyZXR1cm4gbkEodCxlKSsiMDAwIn1mdW5jdGlvbiByQSh0LGUpe3JldHVybiBsQyh0LmdldFVUQ01vbnRoKCkrMSxlLDIpfWZ1bmN0aW9uIG9BKHQsZSl7cmV0dXJuIGxDKHQuZ2V0VVRDTWludXRlcygpLGUsMil9ZnVuY3Rpb24gYUEodCxlKXtyZXR1cm4gbEModC5nZXRVVENTZWNvbmRzKCksZSwyKX1mdW5jdGlvbiBzQSh0KXt2YXIgZT10LmdldFVUQ0RheSgpO3JldHVybiAwPT09ZT83OmV9ZnVuY3Rpb24gbEEodCxlKXtyZXR1cm4gbEMoa1QuY291bnQoWVQodCktMSx0KSxlLDIpfWZ1bmN0aW9uIGNBKHQpe3ZhciBlPXQuZ2V0VVRDRGF5KCk7cmV0dXJuIGU+PTR8fDA9PT1lP0lUKHQpOklULmNlaWwodCl9ZnVuY3Rpb24gdUEodCxlKXtyZXR1cm4gdD1jQSh0KSxsQyhJVC5jb3VudChZVCh0KSx0KSsoND09PVlUKHQpLmdldFVUQ0RheSgpKSxlLDIpfWZ1bmN0aW9uIGhBKHQpe3JldHVybiB0LmdldFVUQ0RheSgpfWZ1bmN0aW9uIGRBKHQsZSl7cmV0dXJuIGxDKExULmNvdW50KFlUKHQpLTEsdCksZSwyKX1mdW5jdGlvbiBwQSh0LGUpe3JldHVybiBsQyh0LmdldFVUQ0Z1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gZkEodCxlKXtyZXR1cm4gbEMoKHQ9Y0EodCkpLmdldFVUQ0Z1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gbUEodCxlKXtyZXR1cm4gbEModC5nZXRVVENGdWxsWWVhcigpJTFlNCxlLDQpfWZ1bmN0aW9uIGdBKHQsZSl7dmFyIG49dC5nZXRVVENEYXkoKTtyZXR1cm4gbEMoKHQ9bj49NHx8MD09PW4/SVQodCk6SVQuY2VpbCh0KSkuZ2V0VVRDRnVsbFllYXIoKSUxZTQsZSw0KX1mdW5jdGlvbiBfQSgpe3JldHVybiIrMDAwMCJ9ZnVuY3Rpb24geUEoKXtyZXR1cm4iJSJ9ZnVuY3Rpb24gdkEodCl7cmV0dXJuK3R9ZnVuY3Rpb24gYkEodCl7cmV0dXJuIE1hdGguZmxvb3IoK3QvMWUzKX1mdW5jdGlvbiB4QSh0KXtyZXR1cm4gUVQ9SlQodCksdEM9UVQuZm9ybWF0LGVDPVFULnBhcnNlLG5DPVFULnV0Y0Zvcm1hdCxpQz1RVC51dGNQYXJzZSxRVH14QSh7ZGF0ZVRpbWU6IiV4LCAlWCIsZGF0ZToiJS1tLyUtZC8lWSIsdGltZToiJS1JOiVNOiVTICVwIixwZXJpb2RzOlsiQU0iLCJQTSJdLGRheXM6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLHNob3J0RGF5czpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLG1vbnRoczpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sc2hvcnRNb250aHM6WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXX0pO3ZhciB3QT0iJVktJW0tJWRUJUg6JU06JVMuJUxaIjt2YXIgU0E9RGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmc/ZnVuY3Rpb24gTUEodCl7cmV0dXJuIHQudG9JU09TdHJpbmcoKX06bkMod0EpO3ZhciBFQT0rbmV3IERhdGUoIjIwMDAtMDEtMDFUMDA6MDA6MDAuMDAwWiIpP2Z1bmN0aW9uIFRBKHQpe3ZhciBlPW5ldyBEYXRlKHQpO3JldHVybiBpc05hTihlKT9udWxsOmV9OmlDKHdBKSxDQT0xZTMsQUE9NmU0LGtBPTM2ZTUsTEE9ODY0ZTUsUEE9MjU5MmU2LE5BPTMxNTM2ZTY7ZnVuY3Rpb24gSUEodCl7cmV0dXJuIG5ldyBEYXRlKHQpfWZ1bmN0aW9uIFJBKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRGF0ZT8rdDorbmV3IERhdGUoK3QpfWZ1bmN0aW9uIE9BKHQsZSxuLGkscixvLGEscyxsKXt2YXIgYz1hRShRTSxRTSksdT1jLmludmVydCxoPWMuZG9tYWluLGQ9bCgiLiVMIikscD1sKCI6JVMiKSxmPWwoIiVJOiVNIiksbT1sKCIlSSAlcCIpLGc9bCgiJWEgJWQiKSxfPWwoIiViICVkIikseT1sKCIlQiIpLHY9bCgiJVkiKSxiPVtbYSwxLENBXSxbYSw1LDVlM10sW2EsMTUsMTVlM10sW2EsMzAsM2U0XSxbbywxLEFBXSxbbyw1LDNlNV0sW28sMTUsOWU1XSxbbywzMCwxOGU1XSxbciwxLGtBXSxbciwzLDEwOGU1XSxbciw2LDIxNmU1XSxbciwxMiw0MzJlNV0sW2ksMSxMQV0sW2ksMiwxNzI4ZTVdLFtuLDEsNjA0OGU1XSxbZSwxLFBBXSxbZSwzLDc3NzZlNl0sW3QsMSxOQV1dO2Z1bmN0aW9uIHgocyl7cmV0dXJuKGEocyk8cz9kOm8ocyk8cz9wOnIocyk8cz9mOmkocyk8cz9tOmUocyk8cz9uKHMpPHM/ZzpfOnQocyk8cz95OnYpKHMpfWZ1bmN0aW9uIHcoZSxuLGkscil7aWYobnVsbD09ZSYmKGU9MTApLCJudW1iZXIiPT10eXBlb2YgZSl7dmFyIG89TWF0aC5hYnMoaS1uKS9lLGE9T2woKGZ1bmN0aW9uKHQpe3JldHVybiB0WzJdfSkpLnJpZ2h0KGIsbyk7YT09PWIubGVuZ3RoPyhyPW5jKG4vTkEsaS9OQSxlKSxlPXQpOmE/KHI9KGE9YltvL2JbYS0xXVsyXTxiW2FdWzJdL28/YS0xOmFdKVsxXSxlPWFbMF0pOihyPU1hdGgubWF4KG5jKG4saSxlKSwxKSxlPXMpfXJldHVybiBudWxsPT1yP2U6ZS5ldmVyeShyKX1yZXR1cm4gYy5pbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBEYXRlKHUodCkpfSxjLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9oKEdNLmNhbGwodCxSQSkpOmgoKS5tYXAoSUEpfSxjLnRpY2tzPWZ1bmN0aW9uKHQsZSl7dmFyIG4saT1oKCkscj1pWzBdLG89aVtpLmxlbmd0aC0xXSxhPW88cjtyZXR1cm4gYSYmKG49cixyPW8sbz1uKSxuPShuPXcodCxyLG8sZSkpP24ucmFuZ2UocixvKzEpOltdLGE/bi5yZXZlcnNlKCk6bn0sYy50aWNrRm9ybWF0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PWU/eDpsKGUpfSxjLm5pY2U9ZnVuY3Rpb24odCxlKXt2YXIgbj1oKCk7cmV0dXJuKHQ9dyh0LG5bMF0sbltuLmxlbmd0aC0xXSxlKSk/aCh1RShuLHQpKTpjfSxjLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gckUoYyxPQSh0LGUsbixpLHIsbyxhLHMsbCkpfSxjfWZ1bmN0aW9uIHpBKCl7cmV0dXJuIFZNLmFwcGx5KE9BKF9ULGZULFFFLEtFLFlFLEdFLFZFLElFLHRDKS5kb21haW4oW25ldyBEYXRlKDJlMywwLDEpLG5ldyBEYXRlKDJlMywwLDIpXSksYXJndW1lbnRzKX1mdW5jdGlvbiBEQSgpe3ZhciB0LGUsbixpLHIsbz0wLGE9MSxzPVFNLGw9ITE7ZnVuY3Rpb24gYyhlKXtyZXR1cm4gaXNOYU4oZT0rZSk/cjpzKDA9PT1uPy41OihlPShpKGUpLXQpKm4sbD9NYXRoLm1heCgwLE1hdGgubWluKDEsZSkpOmUpKX1yZXR1cm4gYy5kb21haW49ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9aShvPStyWzBdKSxlPWkoYT0rclsxXSksbj10PT09ZT8wOjEvKGUtdCksYyk6W28sYV19LGMuY2xhbXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9ISF0LGMpOmx9LGMuaW50ZXJwb2xhdG9yPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPXQsYyk6c30sYy51bmtub3duPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsYyk6cn0sZnVuY3Rpb24ocil7cmV0dXJuIGk9cix0PXIobyksZT1yKGEpLG49dD09PWU/MDoxLyhlLXQpLGN9fWZ1bmN0aW9uIEJBKHQsZSl7cmV0dXJuIGUuZG9tYWluKHQuZG9tYWluKCkpLmludGVycG9sYXRvcih0LmludGVycG9sYXRvcigpKS5jbGFtcCh0LmNsYW1wKCkpLnVua25vd24odC51bmtub3duKCkpfWZ1bmN0aW9uIEhBKCl7dmFyIHQ9RUUoREEoKSk7cmV0dXJuIHQuY29weT1mdW5jdGlvbigpe3JldHVybiBCQSh0LEhBKCkpLmV4cG9uZW50KHQuZXhwb25lbnQoKSl9LFVNLmFwcGx5KHQsYXJndW1lbnRzKX1mdW5jdGlvbiBGQSgpe3ZhciB0LGUsbixpLHIsbyxhLHM9MCxsPS41LGM9MSx1PVFNLGg9ITE7ZnVuY3Rpb24gZCh0KXtyZXR1cm4gaXNOYU4odD0rdCk/YToodD0uNSsoKHQ9K28odCkpLWUpKih0PGU/aTpyKSx1KGg/TWF0aC5tYXgoMCxNYXRoLm1pbigxLHQpKTp0KSl9cmV0dXJuIGQuZG9tYWluPWZ1bmN0aW9uKGEpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PW8ocz0rYVswXSksZT1vKGw9K2FbMV0pLG49byhjPSthWzJdKSxpPXQ9PT1lPzA6LjUvKGUtdCkscj1lPT09bj8wOi41LyhuLWUpLGQpOltzLGwsY119LGQuY2xhbXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9ISF0LGQpOmh9LGQuaW50ZXJwb2xhdG9yPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PXQsZCk6dX0sZC51bmtub3duPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXQsZCk6YX0sZnVuY3Rpb24oYSl7cmV0dXJuIG89YSx0PWEocyksZT1hKGwpLG49YShjKSxpPXQ9PT1lPzA6LjUvKGUtdCkscj1lPT09bj8wOi41LyhuLWUpLGR9fWZ1bmN0aW9uIFZBKCl7dmFyIHQ9RUUoRkEoKSk7cmV0dXJuIHQuY29weT1mdW5jdGlvbigpe3JldHVybiBCQSh0LFZBKCkpLmV4cG9uZW50KHQuZXhwb25lbnQoKSl9LFVNLmFwcGx5KHQsYXJndW1lbnRzKX1mdW5jdGlvbiBVQSh0KXtmb3IodmFyIGU9dC5sZW5ndGgvNnwwLG49bmV3IEFycmF5KGUpLGk9MDtpPGU7KW5baV09IiMiK3Quc2xpY2UoNippLDYqKytpKTtyZXR1cm4gbn12YXIgakE9VUEoIjFmNzdiNGZmN2YwZTJjYTAyY2Q2MjcyODk0NjdiZDhjNTY0YmUzNzdjMjdmN2Y3ZmJjYmQyMjE3YmVjZiIpLEdBPVVBKCI3ZmM5N2ZiZWFlZDRmZGMwODZmZmZmOTkzODZjYjBmMDAyN2ZiZjViMTc2NjY2NjYiKSxXQT1VQSgiMWI5ZTc3ZDk1ZjAyNzU3MGIzZTcyOThhNjZhNjFlZTZhYjAyYTY3NjFkNjY2NjY2IikscUE9VUEoImE2Y2VlMzFmNzhiNGIyZGY4YTMzYTAyY2ZiOWE5OWUzMWExY2ZkYmY2ZmZmN2YwMGNhYjJkNjZhM2Q5YWZmZmY5OWIxNTkyOCIpLFlBPVVBKCJmYmI0YWViM2NkZTNjY2ViYzVkZWNiZTRmZWQ5YTZmZmZmY2NlNWQ4YmRmZGRhZWNmMmYyZjIiKSxYQT1VQSgiYjNlMmNkZmRjZGFjY2JkNWU4ZjRjYWU0ZTZmNWM5ZmZmMmFlZjFlMmNjY2NjY2NjIiksJEE9VUEoImU0MWExYzM3N2ViODRkYWY0YTk4NGVhM2ZmN2YwMGZmZmYzM2E2NTYyOGY3ODFiZjk5OTk5OSIpLEtBPVVBKCI2NmMyYTVmYzhkNjI4ZGEwY2JlNzhhYzNhNmQ4NTRmZmQ5MmZlNWM0OTRiM2IzYjMiKSxaQT1VQSgiOGRkM2M3ZmZmZmIzYmViYWRhZmI4MDcyODBiMWQzZmRiNDYyYjNkZTY5ZmNjZGU1ZDlkOWQ5YmM4MGJkY2NlYmM1ZmZlZDZmIiksSkE9VUEoIjRlNzlhN2YyOGUyY2UxNTc1OTc2YjdiMjU5YTE0ZmVkYzk0OWFmN2FhMWZmOWRhNzljNzU1ZmJhYjBhYiIpO2Z1bmN0aW9uIFFBKHQpe3JldHVybiBKZCh0W3QubGVuZ3RoLTFdKX12YXIgdGs9bmV3IEFycmF5KDMpLmNvbmNhdCgiZDhiMzY1ZjVmNWY1NWFiNGFjIiwiYTY2MTFhZGZjMjdkODBjZGMxMDE4NTcxIiwiYTY2MTFhZGZjMjdkZjVmNWY1ODBjZGMxMDE4NTcxIiwiOGM1MTBhZDhiMzY1ZjZlOGMzYzdlYWU1NWFiNGFjMDE2NjVlIiwiOGM1MTBhZDhiMzY1ZjZlOGMzZjVmNWY1YzdlYWU1NWFiNGFjMDE2NjVlIiwiOGM1MTBhYmY4MTJkZGZjMjdkZjZlOGMzYzdlYWU1ODBjZGMxMzU5NzhmMDE2NjVlIiwiOGM1MTBhYmY4MTJkZGZjMjdkZjZlOGMzZjVmNWY1YzdlYWU1ODBjZGMxMzU5NzhmMDE2NjVlIiwiNTQzMDA1OGM1MTBhYmY4MTJkZGZjMjdkZjZlOGMzYzdlYWU1ODBjZGMxMzU5NzhmMDE2NjVlMDAzYzMwIiwiNTQzMDA1OGM1MTBhYmY4MTJkZGZjMjdkZjZlOGMzZjVmNWY1YzdlYWU1ODBjZGMxMzU5NzhmMDE2NjVlMDAzYzMwIikubWFwKFVBKSxlaz1RQSh0ayksbms9bmV3IEFycmF5KDMpLmNvbmNhdCgiYWY4ZGMzZjdmN2Y3N2ZiZjdiIiwiN2IzMjk0YzJhNWNmYTZkYmEwMDA4ODM3IiwiN2IzMjk0YzJhNWNmZjdmN2Y3YTZkYmEwMDA4ODM3IiwiNzYyYTgzYWY4ZGMzZTdkNGU4ZDlmMGQzN2ZiZjdiMWI3ODM3IiwiNzYyYTgzYWY4ZGMzZTdkNGU4ZjdmN2Y3ZDlmMGQzN2ZiZjdiMWI3ODM3IiwiNzYyYTgzOTk3MGFiYzJhNWNmZTdkNGU4ZDlmMGQzYTZkYmEwNWFhZTYxMWI3ODM3IiwiNzYyYTgzOTk3MGFiYzJhNWNmZTdkNGU4ZjdmN2Y3ZDlmMGQzYTZkYmEwNWFhZTYxMWI3ODM3IiwiNDAwMDRiNzYyYTgzOTk3MGFiYzJhNWNmZTdkNGU4ZDlmMGQzYTZkYmEwNWFhZTYxMWI3ODM3MDA0NDFiIiwiNDAwMDRiNzYyYTgzOTk3MGFiYzJhNWNmZTdkNGU4ZjdmN2Y3ZDlmMGQzYTZkYmEwNWFhZTYxMWI3ODM3MDA0NDFiIikubWFwKFVBKSxpaz1RQShuaykscms9bmV3IEFycmF5KDMpLmNvbmNhdCgiZTlhM2M5ZjdmN2Y3YTFkNzZhIiwiZDAxYzhiZjFiNmRhYjhlMTg2NGRhYzI2IiwiZDAxYzhiZjFiNmRhZjdmN2Y3YjhlMTg2NGRhYzI2IiwiYzUxYjdkZTlhM2M5ZmRlMGVmZTZmNWQwYTFkNzZhNGQ5MjIxIiwiYzUxYjdkZTlhM2M5ZmRlMGVmZjdmN2Y3ZTZmNWQwYTFkNzZhNGQ5MjIxIiwiYzUxYjdkZGU3N2FlZjFiNmRhZmRlMGVmZTZmNWQwYjhlMTg2N2ZiYzQxNGQ5MjIxIiwiYzUxYjdkZGU3N2FlZjFiNmRhZmRlMGVmZjdmN2Y3ZTZmNWQwYjhlMTg2N2ZiYzQxNGQ5MjIxIiwiOGUwMTUyYzUxYjdkZGU3N2FlZjFiNmRhZmRlMGVmZTZmNWQwYjhlMTg2N2ZiYzQxNGQ5MjIxMjc2NDE5IiwiOGUwMTUyYzUxYjdkZGU3N2FlZjFiNmRhZmRlMGVmZjdmN2Y3ZTZmNWQwYjhlMTg2N2ZiYzQxNGQ5MjIxMjc2NDE5IikubWFwKFVBKSxvaz1RQShyayksYWs9bmV3IEFycmF5KDMpLmNvbmNhdCgiOTk4ZWMzZjdmN2Y3ZjFhMzQwIiwiNWUzYzk5YjJhYmQyZmRiODYzZTY2MTAxIiwiNWUzYzk5YjJhYmQyZjdmN2Y3ZmRiODYzZTY2MTAxIiwiNTQyNzg4OTk4ZWMzZDhkYWViZmVlMGI2ZjFhMzQwYjM1ODA2IiwiNTQyNzg4OTk4ZWMzZDhkYWViZjdmN2Y3ZmVlMGI2ZjFhMzQwYjM1ODA2IiwiNTQyNzg4ODA3M2FjYjJhYmQyZDhkYWViZmVlMGI2ZmRiODYzZTA4MjE0YjM1ODA2IiwiNTQyNzg4ODA3M2FjYjJhYmQyZDhkYWViZjdmN2Y3ZmVlMGI2ZmRiODYzZTA4MjE0YjM1ODA2IiwiMmQwMDRiNTQyNzg4ODA3M2FjYjJhYmQyZDhkYWViZmVlMGI2ZmRiODYzZTA4MjE0YjM1ODA2N2YzYjA4IiwiMmQwMDRiNTQyNzg4ODA3M2FjYjJhYmQyZDhkYWViZjdmN2Y3ZmVlMGI2ZmRiODYzZTA4MjE0YjM1ODA2N2YzYjA4IikubWFwKFVBKSxzaz1RQShhayksbGs9bmV3IEFycmF5KDMpLmNvbmNhdCgiZWY4YTYyZjdmN2Y3NjdhOWNmIiwiY2EwMDIwZjRhNTgyOTJjNWRlMDU3MWIwIiwiY2EwMDIwZjRhNTgyZjdmN2Y3OTJjNWRlMDU3MWIwIiwiYjIxODJiZWY4YTYyZmRkYmM3ZDFlNWYwNjdhOWNmMjE2NmFjIiwiYjIxODJiZWY4YTYyZmRkYmM3ZjdmN2Y3ZDFlNWYwNjdhOWNmMjE2NmFjIiwiYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZDFlNWYwOTJjNWRlNDM5M2MzMjE2NmFjIiwiYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZjdmN2Y3ZDFlNWYwOTJjNWRlNDM5M2MzMjE2NmFjIiwiNjcwMDFmYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZDFlNWYwOTJjNWRlNDM5M2MzMjE2NmFjMDUzMDYxIiwiNjcwMDFmYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZjdmN2Y3ZDFlNWYwOTJjNWRlNDM5M2MzMjE2NmFjMDUzMDYxIikubWFwKFVBKSxjaz1RQShsayksdWs9bmV3IEFycmF5KDMpLmNvbmNhdCgiZWY4YTYyZmZmZmZmOTk5OTk5IiwiY2EwMDIwZjRhNTgyYmFiYWJhNDA0MDQwIiwiY2EwMDIwZjRhNTgyZmZmZmZmYmFiYWJhNDA0MDQwIiwiYjIxODJiZWY4YTYyZmRkYmM3ZTBlMGUwOTk5OTk5NGQ0ZDRkIiwiYjIxODJiZWY4YTYyZmRkYmM3ZmZmZmZmZTBlMGUwOTk5OTk5NGQ0ZDRkIiwiYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZTBlMGUwYmFiYWJhODc4Nzg3NGQ0ZDRkIiwiYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZmZmZmZmZTBlMGUwYmFiYWJhODc4Nzg3NGQ0ZDRkIiwiNjcwMDFmYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZTBlMGUwYmFiYWJhODc4Nzg3NGQ0ZDRkMWExYTFhIiwiNjcwMDFmYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZmZmZmZmZTBlMGUwYmFiYWJhODc4Nzg3NGQ0ZDRkMWExYTFhIikubWFwKFVBKSxoaz1RQSh1ayksZGs9bmV3IEFycmF5KDMpLmNvbmNhdCgiZmM4ZDU5ZmZmZmJmOTFiZmRiIiwiZDcxOTFjZmRhZTYxYWJkOWU5MmM3YmI2IiwiZDcxOTFjZmRhZTYxZmZmZmJmYWJkOWU5MmM3YmI2IiwiZDczMDI3ZmM4ZDU5ZmVlMDkwZTBmM2Y4OTFiZmRiNDU3NWI0IiwiZDczMDI3ZmM4ZDU5ZmVlMDkwZmZmZmJmZTBmM2Y4OTFiZmRiNDU3NWI0IiwiZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDkwZTBmM2Y4YWJkOWU5NzRhZGQxNDU3NWI0IiwiZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDkwZmZmZmJmZTBmM2Y4YWJkOWU5NzRhZGQxNDU3NWI0IiwiYTUwMDI2ZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDkwZTBmM2Y4YWJkOWU5NzRhZGQxNDU3NWI0MzEzNjk1IiwiYTUwMDI2ZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDkwZmZmZmJmZTBmM2Y4YWJkOWU5NzRhZGQxNDU3NWI0MzEzNjk1IikubWFwKFVBKSxwaz1RQShkayksZms9bmV3IEFycmF5KDMpLmNvbmNhdCgiZmM4ZDU5ZmZmZmJmOTFjZjYwIiwiZDcxOTFjZmRhZTYxYTZkOTZhMWE5NjQxIiwiZDcxOTFjZmRhZTYxZmZmZmJmYTZkOTZhMWE5NjQxIiwiZDczMDI3ZmM4ZDU5ZmVlMDhiZDllZjhiOTFjZjYwMWE5ODUwIiwiZDczMDI3ZmM4ZDU5ZmVlMDhiZmZmZmJmZDllZjhiOTFjZjYwMWE5ODUwIiwiZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDhiZDllZjhiYTZkOTZhNjZiZDYzMWE5ODUwIiwiZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDhiZmZmZmJmZDllZjhiYTZkOTZhNjZiZDYzMWE5ODUwIiwiYTUwMDI2ZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDhiZDllZjhiYTZkOTZhNjZiZDYzMWE5ODUwMDA2ODM3IiwiYTUwMDI2ZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDhiZmZmZmJmZDllZjhiYTZkOTZhNjZiZDYzMWE5ODUwMDA2ODM3IikubWFwKFVBKSxtaz1RQShmayksZ2s9bmV3IEFycmF5KDMpLmNvbmNhdCgiZmM4ZDU5ZmZmZmJmOTlkNTk0IiwiZDcxOTFjZmRhZTYxYWJkZGE0MmI4M2JhIiwiZDcxOTFjZmRhZTYxZmZmZmJmYWJkZGE0MmI4M2JhIiwiZDUzZTRmZmM4ZDU5ZmVlMDhiZTZmNTk4OTlkNTk0MzI4OGJkIiwiZDUzZTRmZmM4ZDU5ZmVlMDhiZmZmZmJmZTZmNTk4OTlkNTk0MzI4OGJkIiwiZDUzZTRmZjQ2ZDQzZmRhZTYxZmVlMDhiZTZmNTk4YWJkZGE0NjZjMmE1MzI4OGJkIiwiZDUzZTRmZjQ2ZDQzZmRhZTYxZmVlMDhiZmZmZmJmZTZmNTk4YWJkZGE0NjZjMmE1MzI4OGJkIiwiOWUwMTQyZDUzZTRmZjQ2ZDQzZmRhZTYxZmVlMDhiZTZmNTk4YWJkZGE0NjZjMmE1MzI4OGJkNWU0ZmEyIiwiOWUwMTQyZDUzZTRmZjQ2ZDQzZmRhZTYxZmVlMDhiZmZmZmJmZTZmNTk4YWJkZGE0NjZjMmE1MzI4OGJkNWU0ZmEyIikubWFwKFVBKSxfaz1RQShnaykseWs9bmV3IEFycmF5KDMpLmNvbmNhdCgiZTVmNWY5OTlkOGM5MmNhMjVmIiwiZWRmOGZiYjJlMmUyNjZjMmE0MjM4YjQ1IiwiZWRmOGZiYjJlMmUyNjZjMmE0MmNhMjVmMDA2ZDJjIiwiZWRmOGZiY2NlY2U2OTlkOGM5NjZjMmE0MmNhMjVmMDA2ZDJjIiwiZWRmOGZiY2NlY2U2OTlkOGM5NjZjMmE0NDFhZTc2MjM4YjQ1MDA1ODI0IiwiZjdmY2ZkZTVmNWY5Y2NlY2U2OTlkOGM5NjZjMmE0NDFhZTc2MjM4YjQ1MDA1ODI0IiwiZjdmY2ZkZTVmNWY5Y2NlY2U2OTlkOGM5NjZjMmE0NDFhZTc2MjM4YjQ1MDA2ZDJjMDA0NDFiIikubWFwKFVBKSx2az1RQSh5ayksYms9bmV3IEFycmF5KDMpLmNvbmNhdCgiZTBlY2Y0OWViY2RhODg1NmE3IiwiZWRmOGZiYjNjZGUzOGM5NmM2ODg0MTlkIiwiZWRmOGZiYjNjZGUzOGM5NmM2ODg1NmE3ODEwZjdjIiwiZWRmOGZiYmZkM2U2OWViY2RhOGM5NmM2ODg1NmE3ODEwZjdjIiwiZWRmOGZiYmZkM2U2OWViY2RhOGM5NmM2OGM2YmIxODg0MTlkNmUwMTZiIiwiZjdmY2ZkZTBlY2Y0YmZkM2U2OWViY2RhOGM5NmM2OGM2YmIxODg0MTlkNmUwMTZiIiwiZjdmY2ZkZTBlY2Y0YmZkM2U2OWViY2RhOGM5NmM2OGM2YmIxODg0MTlkODEwZjdjNGQwMDRiIikubWFwKFVBKSx4az1RQShiayksd2s9bmV3IEFycmF5KDMpLmNvbmNhdCgiZTBmM2RiYThkZGI1NDNhMmNhIiwiZjBmOWU4YmFlNGJjN2JjY2M0MmI4Y2JlIiwiZjBmOWU4YmFlNGJjN2JjY2M0NDNhMmNhMDg2OGFjIiwiZjBmOWU4Y2NlYmM1YThkZGI1N2JjY2M0NDNhMmNhMDg2OGFjIiwiZjBmOWU4Y2NlYmM1YThkZGI1N2JjY2M0NGViM2QzMmI4Y2JlMDg1ODllIiwiZjdmY2YwZTBmM2RiY2NlYmM1YThkZGI1N2JjY2M0NGViM2QzMmI4Y2JlMDg1ODllIiwiZjdmY2YwZTBmM2RiY2NlYmM1YThkZGI1N2JjY2M0NGViM2QzMmI4Y2JlMDg2OGFjMDg0MDgxIikubWFwKFVBKSxTaz1RQSh3ayksTWs9bmV3IEFycmF5KDMpLmNvbmNhdCgiZmVlOGM4ZmRiYjg0ZTM0YTMzIiwiZmVmMGQ5ZmRjYzhhZmM4ZDU5ZDczMDFmIiwiZmVmMGQ5ZmRjYzhhZmM4ZDU5ZTM0YTMzYjMwMDAwIiwiZmVmMGQ5ZmRkNDllZmRiYjg0ZmM4ZDU5ZTM0YTMzYjMwMDAwIiwiZmVmMGQ5ZmRkNDllZmRiYjg0ZmM4ZDU5ZWY2NTQ4ZDczMDFmOTkwMDAwIiwiZmZmN2VjZmVlOGM4ZmRkNDllZmRiYjg0ZmM4ZDU5ZWY2NTQ4ZDczMDFmOTkwMDAwIiwiZmZmN2VjZmVlOGM4ZmRkNDllZmRiYjg0ZmM4ZDU5ZWY2NTQ4ZDczMDFmYjMwMDAwN2YwMDAwIikubWFwKFVBKSxFaz1RQShNayksVGs9bmV3IEFycmF5KDMpLmNvbmNhdCgiZWNlMmYwYTZiZGRiMWM5MDk5IiwiZjZlZmY3YmRjOWUxNjdhOWNmMDI4MThhIiwiZjZlZmY3YmRjOWUxNjdhOWNmMWM5MDk5MDE2YzU5IiwiZjZlZmY3ZDBkMWU2YTZiZGRiNjdhOWNmMWM5MDk5MDE2YzU5IiwiZjZlZmY3ZDBkMWU2YTZiZGRiNjdhOWNmMzY5MGMwMDI4MThhMDE2NDUwIiwiZmZmN2ZiZWNlMmYwZDBkMWU2YTZiZGRiNjdhOWNmMzY5MGMwMDI4MThhMDE2NDUwIiwiZmZmN2ZiZWNlMmYwZDBkMWU2YTZiZGRiNjdhOWNmMzY5MGMwMDI4MThhMDE2YzU5MDE0NjM2IikubWFwKFVBKSxDaz1RQShUayksQWs9bmV3IEFycmF5KDMpLmNvbmNhdCgiZWNlN2YyYTZiZGRiMmI4Y2JlIiwiZjFlZWY2YmRjOWUxNzRhOWNmMDU3MGIwIiwiZjFlZWY2YmRjOWUxNzRhOWNmMmI4Y2JlMDQ1YThkIiwiZjFlZWY2ZDBkMWU2YTZiZGRiNzRhOWNmMmI4Y2JlMDQ1YThkIiwiZjFlZWY2ZDBkMWU2YTZiZGRiNzRhOWNmMzY5MGMwMDU3MGIwMDM0ZTdiIiwiZmZmN2ZiZWNlN2YyZDBkMWU2YTZiZGRiNzRhOWNmMzY5MGMwMDU3MGIwMDM0ZTdiIiwiZmZmN2ZiZWNlN2YyZDBkMWU2YTZiZGRiNzRhOWNmMzY5MGMwMDU3MGIwMDQ1YThkMDIzODU4IikubWFwKFVBKSxraz1RQShBayksTGs9bmV3IEFycmF5KDMpLmNvbmNhdCgiZTdlMWVmYzk5NGM3ZGQxYzc3IiwiZjFlZWY2ZDdiNWQ4ZGY2NWIwY2UxMjU2IiwiZjFlZWY2ZDdiNWQ4ZGY2NWIwZGQxYzc3OTgwMDQzIiwiZjFlZWY2ZDRiOWRhYzk5NGM3ZGY2NWIwZGQxYzc3OTgwMDQzIiwiZjFlZWY2ZDRiOWRhYzk5NGM3ZGY2NWIwZTcyOThhY2UxMjU2OTEwMDNmIiwiZjdmNGY5ZTdlMWVmZDRiOWRhYzk5NGM3ZGY2NWIwZTcyOThhY2UxMjU2OTEwMDNmIiwiZjdmNGY5ZTdlMWVmZDRiOWRhYzk5NGM3ZGY2NWIwZTcyOThhY2UxMjU2OTgwMDQzNjcwMDFmIikubWFwKFVBKSxQaz1RQShMayksTms9bmV3IEFycmF5KDMpLmNvbmNhdCgiZmRlMGRkZmE5ZmI1YzUxYjhhIiwiZmVlYmUyZmJiNGI5Zjc2OGExYWUwMTdlIiwiZmVlYmUyZmJiNGI5Zjc2OGExYzUxYjhhN2EwMTc3IiwiZmVlYmUyZmNjNWMwZmE5ZmI1Zjc2OGExYzUxYjhhN2EwMTc3IiwiZmVlYmUyZmNjNWMwZmE5ZmI1Zjc2OGExZGQzNDk3YWUwMTdlN2EwMTc3IiwiZmZmN2YzZmRlMGRkZmNjNWMwZmE5ZmI1Zjc2OGExZGQzNDk3YWUwMTdlN2EwMTc3IiwiZmZmN2YzZmRlMGRkZmNjNWMwZmE5ZmI1Zjc2OGExZGQzNDk3YWUwMTdlN2EwMTc3NDkwMDZhIikubWFwKFVBKSxJaz1RQShOayksUms9bmV3IEFycmF5KDMpLmNvbmNhdCgiZWRmOGIxN2ZjZGJiMmM3ZmI4IiwiZmZmZmNjYTFkYWI0NDFiNmM0MjI1ZWE4IiwiZmZmZmNjYTFkYWI0NDFiNmM0MmM3ZmI4MjUzNDk0IiwiZmZmZmNjYzdlOWI0N2ZjZGJiNDFiNmM0MmM3ZmI4MjUzNDk0IiwiZmZmZmNjYzdlOWI0N2ZjZGJiNDFiNmM0MWQ5MWMwMjI1ZWE4MGMyYzg0IiwiZmZmZmQ5ZWRmOGIxYzdlOWI0N2ZjZGJiNDFiNmM0MWQ5MWMwMjI1ZWE4MGMyYzg0IiwiZmZmZmQ5ZWRmOGIxYzdlOWI0N2ZjZGJiNDFiNmM0MWQ5MWMwMjI1ZWE4MjUzNDk0MDgxZDU4IikubWFwKFVBKSxPaz1RQShSayksems9bmV3IEFycmF5KDMpLmNvbmNhdCgiZjdmY2I5YWRkZDhlMzFhMzU0IiwiZmZmZmNjYzJlNjk5NzhjNjc5MjM4NDQzIiwiZmZmZmNjYzJlNjk5NzhjNjc5MzFhMzU0MDA2ODM3IiwiZmZmZmNjZDlmMGEzYWRkZDhlNzhjNjc5MzFhMzU0MDA2ODM3IiwiZmZmZmNjZDlmMGEzYWRkZDhlNzhjNjc5NDFhYjVkMjM4NDQzMDA1YTMyIiwiZmZmZmU1ZjdmY2I5ZDlmMGEzYWRkZDhlNzhjNjc5NDFhYjVkMjM4NDQzMDA1YTMyIiwiZmZmZmU1ZjdmY2I5ZDlmMGEzYWRkZDhlNzhjNjc5NDFhYjVkMjM4NDQzMDA2ODM3MDA0NTI5IikubWFwKFVBKSxEaz1RQSh6ayksQms9bmV3IEFycmF5KDMpLmNvbmNhdCgiZmZmN2JjZmVjNDRmZDk1ZjBlIiwiZmZmZmQ0ZmVkOThlZmU5OTI5Y2M0YzAyIiwiZmZmZmQ0ZmVkOThlZmU5OTI5ZDk1ZjBlOTkzNDA0IiwiZmZmZmQ0ZmVlMzkxZmVjNDRmZmU5OTI5ZDk1ZjBlOTkzNDA0IiwiZmZmZmQ0ZmVlMzkxZmVjNDRmZmU5OTI5ZWM3MDE0Y2M0YzAyOGMyZDA0IiwiZmZmZmU1ZmZmN2JjZmVlMzkxZmVjNDRmZmU5OTI5ZWM3MDE0Y2M0YzAyOGMyZDA0IiwiZmZmZmU1ZmZmN2JjZmVlMzkxZmVjNDRmZmU5OTI5ZWM3MDE0Y2M0YzAyOTkzNDA0NjYyNTA2IikubWFwKFVBKSxIaz1RQShCayksRms9bmV3IEFycmF5KDMpLmNvbmNhdCgiZmZlZGEwZmViMjRjZjAzYjIwIiwiZmZmZmIyZmVjYzVjZmQ4ZDNjZTMxYTFjIiwiZmZmZmIyZmVjYzVjZmQ4ZDNjZjAzYjIwYmQwMDI2IiwiZmZmZmIyZmVkOTc2ZmViMjRjZmQ4ZDNjZjAzYjIwYmQwMDI2IiwiZmZmZmIyZmVkOTc2ZmViMjRjZmQ4ZDNjZmM0ZTJhZTMxYTFjYjEwMDI2IiwiZmZmZmNjZmZlZGEwZmVkOTc2ZmViMjRjZmQ4ZDNjZmM0ZTJhZTMxYTFjYjEwMDI2IiwiZmZmZmNjZmZlZGEwZmVkOTc2ZmViMjRjZmQ4ZDNjZmM0ZTJhZTMxYTFjYmQwMDI2ODAwMDI2IikubWFwKFVBKSxWaz1RQShGayksVWs9bmV3IEFycmF5KDMpLmNvbmNhdCgiZGVlYmY3OWVjYWUxMzE4MmJkIiwiZWZmM2ZmYmRkN2U3NmJhZWQ2MjE3MWI1IiwiZWZmM2ZmYmRkN2U3NmJhZWQ2MzE4MmJkMDg1MTljIiwiZWZmM2ZmYzZkYmVmOWVjYWUxNmJhZWQ2MzE4MmJkMDg1MTljIiwiZWZmM2ZmYzZkYmVmOWVjYWUxNmJhZWQ2NDI5MmM2MjE3MWI1MDg0NTk0IiwiZjdmYmZmZGVlYmY3YzZkYmVmOWVjYWUxNmJhZWQ2NDI5MmM2MjE3MWI1MDg0NTk0IiwiZjdmYmZmZGVlYmY3YzZkYmVmOWVjYWUxNmJhZWQ2NDI5MmM2MjE3MWI1MDg1MTljMDgzMDZiIikubWFwKFVBKSxqaz1RQShVayksR2s9bmV3IEFycmF5KDMpLmNvbmNhdCgiZTVmNWUwYTFkOTliMzFhMzU0IiwiZWRmOGU5YmFlNGIzNzRjNDc2MjM4YjQ1IiwiZWRmOGU5YmFlNGIzNzRjNDc2MzFhMzU0MDA2ZDJjIiwiZWRmOGU5YzdlOWMwYTFkOTliNzRjNDc2MzFhMzU0MDA2ZDJjIiwiZWRmOGU5YzdlOWMwYTFkOTliNzRjNDc2NDFhYjVkMjM4YjQ1MDA1YTMyIiwiZjdmY2Y1ZTVmNWUwYzdlOWMwYTFkOTliNzRjNDc2NDFhYjVkMjM4YjQ1MDA1YTMyIiwiZjdmY2Y1ZTVmNWUwYzdlOWMwYTFkOTliNzRjNDc2NDFhYjVkMjM4YjQ1MDA2ZDJjMDA0NDFiIikubWFwKFVBKSxXaz1RQShHaykscWs9bmV3IEFycmF5KDMpLmNvbmNhdCgiZjBmMGYwYmRiZGJkNjM2MzYzIiwiZjdmN2Y3Y2NjY2NjOTY5Njk2NTI1MjUyIiwiZjdmN2Y3Y2NjY2NjOTY5Njk2NjM2MzYzMjUyNTI1IiwiZjdmN2Y3ZDlkOWQ5YmRiZGJkOTY5Njk2NjM2MzYzMjUyNTI1IiwiZjdmN2Y3ZDlkOWQ5YmRiZGJkOTY5Njk2NzM3MzczNTI1MjUyMjUyNTI1IiwiZmZmZmZmZjBmMGYwZDlkOWQ5YmRiZGJkOTY5Njk2NzM3MzczNTI1MjUyMjUyNTI1IiwiZmZmZmZmZjBmMGYwZDlkOWQ5YmRiZGJkOTY5Njk2NzM3MzczNTI1MjUyMjUyNTI1MDAwMDAwIikubWFwKFVBKSxZaz1RQShxayksWGs9bmV3IEFycmF5KDMpLmNvbmNhdCgiZWZlZGY1YmNiZGRjNzU2YmIxIiwiZjJmMGY3Y2JjOWUyOWU5YWM4NmE1MWEzIiwiZjJmMGY3Y2JjOWUyOWU5YWM4NzU2YmIxNTQyNzhmIiwiZjJmMGY3ZGFkYWViYmNiZGRjOWU5YWM4NzU2YmIxNTQyNzhmIiwiZjJmMGY3ZGFkYWViYmNiZGRjOWU5YWM4ODA3ZGJhNmE1MWEzNGExNDg2IiwiZmNmYmZkZWZlZGY1ZGFkYWViYmNiZGRjOWU5YWM4ODA3ZGJhNmE1MWEzNGExNDg2IiwiZmNmYmZkZWZlZGY1ZGFkYWViYmNiZGRjOWU5YWM4ODA3ZGJhNmE1MWEzNTQyNzhmM2YwMDdkIikubWFwKFVBKSwkaz1RQShYayksS2s9bmV3IEFycmF5KDMpLmNvbmNhdCgiZmVlMGQyZmM5MjcyZGUyZDI2IiwiZmVlNWQ5ZmNhZTkxZmI2YTRhY2IxODFkIiwiZmVlNWQ5ZmNhZTkxZmI2YTRhZGUyZDI2YTUwZjE1IiwiZmVlNWQ5ZmNiYmExZmM5MjcyZmI2YTRhZGUyZDI2YTUwZjE1IiwiZmVlNWQ5ZmNiYmExZmM5MjcyZmI2YTRhZWYzYjJjY2IxODFkOTkwMDBkIiwiZmZmNWYwZmVlMGQyZmNiYmExZmM5MjcyZmI2YTRhZWYzYjJjY2IxODFkOTkwMDBkIiwiZmZmNWYwZmVlMGQyZmNiYmExZmM5MjcyZmI2YTRhZWYzYjJjY2IxODFkYTUwZjE1NjcwMDBkIikubWFwKFVBKSxaaz1RQShLayksSms9bmV3IEFycmF5KDMpLmNvbmNhdCgiZmVlNmNlZmRhZTZiZTY1NTBkIiwiZmVlZGRlZmRiZTg1ZmQ4ZDNjZDk0NzAxIiwiZmVlZGRlZmRiZTg1ZmQ4ZDNjZTY1NTBkYTYzNjAzIiwiZmVlZGRlZmRkMGEyZmRhZTZiZmQ4ZDNjZTY1NTBkYTYzNjAzIiwiZmVlZGRlZmRkMGEyZmRhZTZiZmQ4ZDNjZjE2OTEzZDk0ODAxOGMyZDA0IiwiZmZmNWViZmVlNmNlZmRkMGEyZmRhZTZiZmQ4ZDNjZjE2OTEzZDk0ODAxOGMyZDA0IiwiZmZmNWViZmVlNmNlZmRkMGEyZmRhZTZiZmQ4ZDNjZjE2OTEzZDk0ODAxYTYzNjAzN2YyNzA0IikubWFwKFVBKSxRaz1RQShKayk7dmFyIHRMPU9wKEZkKDMwMCwuNSwwKSxGZCgtMjQwLC41LDEpKSxlTD1PcChGZCgtMTAwLC43NSwuMzUpLEZkKDgwLDEuNSwuOCkpLG5MPU9wKEZkKDI2MCwuNzUsLjM1KSxGZCg4MCwxLjUsLjgpKSxpTD1GZCgpO3ZhciByTD1uZCgpLG9MPU1hdGguUEkvMyxhTD0yKk1hdGguUEkvMztmdW5jdGlvbiBzTCh0KXt2YXIgZT10Lmxlbmd0aDtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHRbTWF0aC5tYXgoMCxNYXRoLm1pbihlLTEsTWF0aC5mbG9vcihuKmUpKSldfX12YXIgbEw9c0woVUEoIjQ0MDE1NDQ0MDI1NjQ1MDQ1NzQ1MDU1OTQ2MDc1YTQ2MDg1YzQ2MGE1ZDQ2MGI1ZTQ3MGQ2MDQ3MGU2MTQ3MTA2MzQ3MTE2NDQ3MTM2NTQ4MTQ2NzQ4MTY2ODQ4MTc2OTQ4MTg2YTQ4MWE2YzQ4MWI2ZDQ4MWM2ZTQ4MWQ2ZjQ4MWY3MDQ4MjA3MTQ4MjE3MzQ4MjM3NDQ4MjQ3NTQ4MjU3NjQ4MjY3NzQ4Mjg3ODQ4Mjk3OTQ3MmE3YTQ3MmM3YTQ3MmQ3YjQ3MmU3YzQ3MmY3ZDQ2MzA3ZTQ2MzI3ZTQ2MzM3ZjQ2MzQ4MDQ1MzU4MTQ1Mzc4MTQ1Mzg4MjQ0Mzk4MzQ0M2E4MzQ0M2I4NDQzM2Q4NDQzM2U4NTQyM2Y4NTQyNDA4NjQyNDE4NjQxNDI4NzQxNDQ4NzQwNDU4ODQwNDY4ODNmNDc4ODNmNDg4OTNlNDk4OTNlNGE4OTNlNGM4YTNkNGQ4YTNkNGU4YTNjNGY4YTNjNTA4YjNiNTE4YjNiNTI4YjNhNTM4YjNhNTQ4YzM5NTU4YzM5NTY4YzM4NTg4YzM4NTk4YzM3NWE4YzM3NWI4ZDM2NWM4ZDM2NWQ4ZDM1NWU4ZDM1NWY4ZDM0NjA4ZDM0NjE4ZDMzNjI4ZDMzNjM4ZDMyNjQ4ZTMyNjU4ZTMxNjY4ZTMxNjc4ZTMxNjg4ZTMwNjk4ZTMwNmE4ZTJmNmI4ZTJmNmM4ZTJlNmQ4ZTJlNmU4ZTJlNmY4ZTJkNzA4ZTJkNzE4ZTJjNzE4ZTJjNzI4ZTJjNzM4ZTJiNzQ4ZTJiNzU4ZTJhNzY4ZTJhNzc4ZTJhNzg4ZTI5Nzk4ZTI5N2E4ZTI5N2I4ZTI4N2M4ZTI4N2Q4ZTI3N2U4ZTI3N2Y4ZTI3ODA4ZTI2ODE4ZTI2ODI4ZTI2ODI4ZTI1ODM4ZTI1ODQ4ZTI1ODU4ZTI0ODY4ZTI0ODc4ZTIzODg4ZTIzODk4ZTIzOGE4ZDIyOGI4ZDIyOGM4ZDIyOGQ4ZDIxOGU4ZDIxOGY4ZDIxOTA4ZDIxOTE4YzIwOTI4YzIwOTI4YzIwOTM4YzFmOTQ4YzFmOTU4YjFmOTY4YjFmOTc4YjFmOTg4YjFmOTk4YTFmOWE4YTFlOWI4YTFlOWM4OTFlOWQ4OTFmOWU4OTFmOWY4ODFmYTA4ODFmYTE4ODFmYTE4NzFmYTI4NzIwYTM4NjIwYTQ4NjIxYTU4NTIxYTY4NTIyYTc4NTIyYTg4NDIzYTk4MzI0YWE4MzI1YWI4MjI1YWM4MjI2YWQ4MTI3YWQ4MTI4YWU4MDI5YWY3ZjJhYjA3ZjJjYjE3ZTJkYjI3ZDJlYjM3YzJmYjQ3YzMxYjU3YjMyYjY3YTM0YjY3OTM1Yjc3OTM3Yjg3ODM4Yjk3NzNhYmE3NjNiYmI3NTNkYmM3NDNmYmM3MzQwYmQ3MjQyYmU3MTQ0YmY3MDQ2YzA2ZjQ4YzE2ZTRhYzE2ZDRjYzI2YzRlYzM2YjUwYzQ2YTUyYzU2OTU0YzU2ODU2YzY2NzU4Yzc2NTVhYzg2NDVjYzg2MzVlYzk2MjYwY2E2MDYzY2I1ZjY1Y2I1ZTY3Y2M1YzY5Y2Q1YjZjY2Q1YTZlY2U1ODcwY2Y1NzczZDA1Njc1ZDA1NDc3ZDE1MzdhZDE1MTdjZDI1MDdmZDM0ZTgxZDM0ZDg0ZDQ0Yjg2ZDU0OTg5ZDU0ODhiZDY0NjhlZDY0NTkwZDc0MzkzZDc0MTk1ZDg0MDk4ZDgzZTliZDkzYzlkZDkzYmEwZGEzOWEyZGEzN2E1ZGIzNmE4ZGIzNGFhZGMzMmFkZGMzMGIwZGQyZmIyZGQyZGI1ZGUyYmI4ZGUyOWJhZGUyOGJkZGYyNmMwZGYyNWMyZGYyM2M1ZTAyMWM4ZTAyMGNhZTExZmNkZTExZGQwZTExY2QyZTIxYmQ1ZTIxYWQ4ZTIxOWRhZTMxOWRkZTMxOGRmZTMxOGUyZTQxOGU1ZTQxOWU3ZTQxOWVhZTUxYWVjZTUxYmVmZTUxY2YxZTUxZGY0ZTYxZWY2ZTYyMGY4ZTYyMWZiZTcyM2ZkZTcyNSIpKSxjTD1zTChVQSgiMDAwMDA0MDEwMDA1MDEwMTA2MDEwMTA4MDIwMTA5MDIwMjBiMDIwMjBkMDMwMzBmMDMwMzEyMDQwNDE0MDUwNDE2MDYwNTE4MDYwNTFhMDcwNjFjMDgwNzFlMDkwNzIwMGEwODIyMGIwOTI0MGMwOTI2MGQwYTI5MGUwYjJiMTAwYjJkMTEwYzJmMTIwZDMxMTMwZDM0MTQwZTM2MTUwZTM4MTYwZjNiMTgwZjNkMTkxMDNmMWExMDQyMWMxMDQ0MWQxMTQ3MWUxMTQ5MjAxMTRiMjExMTRlMjIxMTUwMjQxMjUzMjUxMjU1MjcxMjU4MjkxMTVhMmExMTVjMmMxMTVmMmQxMTYxMmYxMTYzMzExMTY1MzMxMDY3MzQxMDY5MzYxMDZiMzgxMDZjMzkwZjZlM2IwZjcwM2QwZjcxM2YwZjcyNDAwZjc0NDIwZjc1NDQwZjc2NDUxMDc3NDcxMDc4NDkxMDc4NGExMDc5NGMxMTdhNGUxMTdiNGYxMjdiNTExMjdjNTIxMzdjNTQxMzdkNTYxNDdkNTcxNTdlNTkxNTdlNWExNjdlNWMxNjdmNWQxNzdmNWYxODdmNjAxODgwNjIxOTgwNjQxYTgwNjUxYTgwNjcxYjgwNjgxYzgxNmExYzgxNmIxZDgxNmQxZDgxNmUxZTgxNzAxZjgxNzIxZjgxNzMyMDgxNzUyMTgxNzYyMTgxNzgyMjgxNzkyMjgyN2IyMzgyN2MyMzgyN2UyNDgyODAyNTgyODEyNTgxODMyNjgxODQyNjgxODYyNzgxODgyNzgxODkyODgxOGIyOTgxOGMyOTgxOGUyYTgxOTAyYTgxOTEyYjgxOTMyYjgwOTQyYzgwOTYyYzgwOTgyZDgwOTkyZDgwOWIyZTdmOWMyZTdmOWUyZjdmYTAyZjdmYTEzMDdlYTMzMDdlYTUzMTdlYTYzMTdkYTgzMjdkYWEzMzdkYWIzMzdjYWQzNDdjYWUzNDdiYjAzNTdiYjIzNTdiYjMzNjdhYjUzNjdhYjczNzc5YjgzNzc5YmEzODc4YmMzOTc4YmQzOTc3YmYzYTc3YzAzYTc2YzIzYjc1YzQzYzc1YzUzYzc0YzczZDczYzgzZTczY2EzZTcyY2MzZjcxY2Q0MDcxY2Y0MDcwZDA0MTZmZDI0MjZmZDM0MzZlZDU0NDZkZDY0NTZjZDg0NTZjZDk0NjZiZGI0NzZhZGM0ODY5ZGU0OTY4ZGY0YTY4ZTA0YzY3ZTI0ZDY2ZTM0ZTY1ZTQ0ZjY0ZTU1MDY0ZTc1MjYzZTg1MzYyZTk1NDYyZWE1NjYxZWI1NzYwZWM1ODYwZWQ1YTVmZWU1YjVlZWY1ZDVlZjA1ZjVlZjE2MDVkZjI2MjVkZjI2NDVjZjM2NTVjZjQ2NzVjZjQ2OTVjZjU2YjVjZjY2YzVjZjY2ZTVjZjc3MDVjZjc3MjVjZjg3NDVjZjg3NjVjZjk3ODVkZjk3OTVkZjk3YjVkZmE3ZDVlZmE3ZjVlZmE4MTVmZmI4MzVmZmI4NTYwZmI4NzYxZmM4OTYxZmM4YTYyZmM4YzYzZmM4ZTY0ZmM5MDY1ZmQ5MjY2ZmQ5NDY3ZmQ5NjY4ZmQ5ODY5ZmQ5YTZhZmQ5YjZiZmU5ZDZjZmU5ZjZkZmVhMTZlZmVhMzZmZmVhNTcxZmVhNzcyZmVhOTczZmVhYTc0ZmVhYzc2ZmVhZTc3ZmViMDc4ZmViMjdhZmViNDdiZmViNjdjZmViNzdlZmViOTdmZmViYjgxZmViZDgyZmViZjg0ZmVjMTg1ZmVjMjg3ZmVjNDg4ZmVjNjhhZmVjODhjZmVjYThkZmVjYzhmZmVjZDkwZmVjZjkyZmVkMTk0ZmVkMzk1ZmVkNTk3ZmVkNzk5ZmVkODlhZmRkYTljZmRkYzllZmRkZWEwZmRlMGExZmRlMmEzZmRlM2E1ZmRlNWE3ZmRlN2E5ZmRlOWFhZmRlYmFjZmNlY2FlZmNlZWIwZmNmMGIyZmNmMmI0ZmNmNGI2ZmNmNmI4ZmNmN2I5ZmNmOWJiZmNmYmJkZmNmZGJmIikpLHVMPXNMKFVBKCIwMDAwMDQwMTAwMDUwMTAxMDYwMTAxMDgwMjAxMGEwMjAyMGMwMjAyMGUwMzAyMTAwNDAzMTIwNDAzMTQwNTA0MTcwNjA0MTkwNzA1MWIwODA1MWQwOTA2MWYwYTA3MjIwYjA3MjQwYzA4MjYwZDA4MjkwZTA5MmIxMDA5MmQxMTBhMzAxMjBhMzIxNDBiMzQxNTBiMzcxNjBiMzkxODBjM2MxOTBjM2UxYjBjNDExYzBjNDMxZTBjNDUxZjBjNDgyMTBjNGEyMzBjNGMyNDBjNGYyNjBjNTEyODBiNTMyOTBiNTUyYjBiNTcyZDBiNTkyZjBhNWIzMTBhNWMzMjBhNWUzNDBhNWYzNjA5NjEzODA5NjIzOTA5NjMzYjA5NjQzZDA5NjUzZTA5NjY0MDBhNjc0MjBhNjg0NDBhNjg0NTBhNjk0NzBiNmE0OTBiNmE0YTBjNmI0YzBjNmI0ZDBkNmM0ZjBkNmM1MTBlNmM1MjBlNmQ1NDBmNmQ1NTBmNmQ1NzEwNmU1OTEwNmU1YTExNmU1YzEyNmU1ZDEyNmU1ZjEzNmU2MTEzNmU2MjE0NmU2NDE1NmU2NTE1NmU2NzE2NmU2OTE2NmU2YTE3NmU2YzE4NmU2ZDE4NmU2ZjE5NmU3MTE5NmU3MjFhNmU3NDFhNmU3NTFiNmU3NzFjNmQ3ODFjNmQ3YTFkNmQ3YzFkNmQ3ZDFlNmQ3ZjFlNmM4MDFmNmM4MjIwNmM4NDIwNmI4NTIxNmI4NzIxNmI4ODIyNmE4YTIyNmE4YzIzNjk4ZDIzNjk4ZjI0Njk5MDI1Njg5MjI1Njg5MzI2Njc5NTI2Njc5NzI3NjY5ODI3NjY5YTI4NjU5YjI5NjQ5ZDI5NjQ5ZjJhNjNhMDJhNjNhMjJiNjJhMzJjNjFhNTJjNjBhNjJkNjBhODJlNWZhOTJlNWVhYjJmNWVhZDMwNWRhZTMwNWNiMDMxNWJiMTMyNWFiMzMyNWFiNDMzNTliNjM0NThiNzM1NTdiOTM1NTZiYTM2NTViYzM3NTRiZDM4NTNiZjM5NTJjMDNhNTFjMTNhNTBjMzNiNGZjNDNjNGVjNjNkNGRjNzNlNGNjODNmNGJjYTQwNGFjYjQxNDljYzQyNDhjZTQzNDdjZjQ0NDZkMDQ1NDVkMjQ2NDRkMzQ3NDNkNDQ4NDJkNTRhNDFkNzRiM2ZkODRjM2VkOTRkM2RkYTRlM2NkYjUwM2JkZDUxM2FkZTUyMzhkZjUzMzdlMDU1MzZlMTU2MzVlMjU3MzRlMzU5MzNlNDVhMzFlNTVjMzBlNjVkMmZlNzVlMmVlODYwMmRlOTYxMmJlYTYzMmFlYjY0MjllYjY2MjhlYzY3MjZlZDY5MjVlZTZhMjRlZjZjMjNlZjZlMjFmMDZmMjBmMTcxMWZmMTczMWRmMjc0MWNmMzc2MWJmMzc4MTlmNDc5MThmNTdiMTdmNTdkMTVmNjdlMTRmNjgwMTNmNzgyMTJmNzg0MTBmODg1MGZmODg3MGVmODg5MGNmOThiMGJmOThjMGFmOThlMDlmYTkwMDhmYTkyMDdmYTk0MDdmYjk2MDZmYjk3MDZmYjk5MDZmYjliMDZmYjlkMDdmYzlmMDdmY2ExMDhmY2EzMDlmY2E1MGFmY2E2MGNmY2E4MGRmY2FhMGZmY2FjMTFmY2FlMTJmY2IwMTRmY2IyMTZmY2I0MThmYmI2MWFmYmI4MWRmYmJhMWZmYmJjMjFmYmJlMjNmYWMwMjZmYWMyMjhmYWM0MmFmYWM2MmRmOWM3MmZmOWM5MzJmOWNiMzVmOGNkMzdmOGNmM2FmN2QxM2RmN2QzNDBmNmQ1NDNmNmQ3NDZmNWQ5NDlmNWRiNGNmNGRkNGZmNGRmNTNmNGUxNTZmM2UzNWFmM2U1NWRmMmU2NjFmMmU4NjVmMmVhNjlmMWVjNmRmMWVkNzFmMWVmNzVmMWYxNzlmMmYyN2RmMmY0ODJmM2Y1ODZmM2Y2OGFmNGY4OGVmNWY5OTJmNmZhOTZmOGZiOWFmOWZjOWRmYWZkYTFmY2ZmYTQiKSksaEw9c0woVUEoIjBkMDg4NzEwMDc4ODEzMDc4OTE2MDc4YTE5MDY4YzFiMDY4ZDFkMDY4ZTIwMDY4ZjIyMDY5MDI0MDY5MTI2MDU5MTI4MDU5MjJhMDU5MzJjMDU5NDJlMDU5NTJmMDU5NjMxMDU5NzMzMDU5NzM1MDQ5ODM3MDQ5OTM4MDQ5YTNhMDQ5YTNjMDQ5YjNlMDQ5YzNmMDQ5YzQxMDQ5ZDQzMDM5ZTQ0MDM5ZTQ2MDM5ZjQ4MDM5ZjQ5MDNhMDRiMDNhMTRjMDJhMTRlMDJhMjUwMDJhMjUxMDJhMzUzMDJhMzU1MDJhNDU2MDFhNDU4MDFhNDU5MDFhNTViMDFhNTVjMDFhNjVlMDFhNjYwMDFhNjYxMDBhNzYzMDBhNzY0MDBhNzY2MDBhNzY3MDBhODY5MDBhODZhMDBhODZjMDBhODZlMDBhODZmMDBhODcxMDBhODcyMDFhODc0MDFhODc1MDFhODc3MDFhODc4MDFhODdhMDJhODdiMDJhODdkMDNhODdlMDNhODgwMDRhODgxMDRhNzgzMDVhNzg0MDVhNzg2MDZhNjg3MDdhNjg4MDhhNjhhMDlhNThiMGFhNThkMGJhNThlMGNhNDhmMGRhNDkxMGVhMzkyMGZhMzk0MTBhMjk1MTFhMTk2MTNhMTk4MTRhMDk5MTU5ZjlhMTY5ZjljMTc5ZTlkMTg5ZDllMTk5ZGEwMWE5Y2ExMWI5YmEyMWQ5YWEzMWU5YWE1MWY5OWE2MjA5OGE3MjE5N2E4MjI5NmFhMjM5NWFiMjQ5NGFjMjY5NGFkMjc5M2FlMjg5MmIwMjk5MWIxMmE5MGIyMmI4ZmIzMmM4ZWI0MmU4ZGI1MmY4Y2I2MzA4YmI3MzE4YWI4MzI4OWJhMzM4OGJiMzQ4OGJjMzU4N2JkMzc4NmJlMzg4NWJmMzk4NGMwM2E4M2MxM2I4MmMyM2M4MWMzM2Q4MGM0M2U3ZmM1NDA3ZWM2NDE3ZGM3NDI3Y2M4NDM3YmM5NDQ3YWNhNDU3YWNiNDY3OWNjNDc3OGNjNDk3N2NkNGE3NmNlNGI3NWNmNGM3NGQwNGQ3M2QxNGU3MmQyNGY3MWQzNTE3MWQ0NTI3MGQ1NTM2ZmQ1NTQ2ZWQ2NTU2ZGQ3NTY2Y2Q4NTc2YmQ5NTg2YWRhNWE2YWRhNWI2OWRiNWM2OGRjNWQ2N2RkNWU2NmRlNWY2NWRlNjE2NGRmNjI2M2UwNjM2M2UxNjQ2MmUyNjU2MWUyNjY2MGUzNjg1ZmU0Njk1ZWU1NmE1ZGU1NmI1ZGU2NmM1Y2U3NmU1YmU3NmY1YWU4NzA1OWU5NzE1OGU5NzI1N2VhNzQ1N2ViNzU1NmViNzY1NWVjNzc1NGVkNzk1M2VkN2E1MmVlN2I1MWVmN2M1MWVmN2U1MGYwN2Y0ZmYwODA0ZWYxODE0ZGYxODM0Y2YyODQ0YmYzODU0YmYzODc0YWY0ODg0OWY0ODk0OGY1OGI0N2Y1OGM0NmY2OGQ0NWY2OGY0NGY3OTA0NGY3OTE0M2Y3OTM0MmY4OTQ0MWY4OTU0MGY5OTczZmY5OTgzZWY5OWEzZWZhOWIzZGZhOWMzY2ZhOWUzYmZiOWYzYWZiYTEzOWZiYTIzOGZjYTMzOGZjYTUzN2ZjYTYzNmZjYTgzNWZjYTkzNGZkYWIzM2ZkYWMzM2ZkYWUzMmZkYWYzMWZkYjEzMGZkYjIyZmZkYjQyZmZkYjUyZWZlYjcyZGZlYjgyY2ZlYmEyY2ZlYmIyYmZlYmQyYWZlYmUyYWZlYzAyOWZkYzIyOWZkYzMyOGZkYzUyN2ZkYzYyN2ZkYzgyN2ZkY2EyNmZkY2IyNmZjY2QyNWZjY2UyNWZjZDAyNWZjZDIyNWZiZDMyNGZiZDUyNGZiZDcyNGZhZDgyNGZhZGEyNGY5ZGMyNGY5ZGQyNWY4ZGYyNWY4ZTEyNWY3ZTIyNWY3ZTQyNWY2ZTYyNmY2ZTgyNmY1ZTkyNmY1ZWIyN2Y0ZWQyN2YzZWUyN2YzZjAyN2YyZjIyN2YxZjQyNmYxZjUyNWYwZjcyNGYwZjkyMSIpKTtmdW5jdGlvbiBkTCh0KXtyZXR1cm4gZnVuY3Rpb24gZSgpe3JldHVybiB0fX12YXIgcEw9TWF0aC5hYnMsZkw9TWF0aC5hdGFuMixtTD1NYXRoLmNvcyxnTD1NYXRoLm1heCxfTD1NYXRoLm1pbix5TD1NYXRoLnNpbix2TD1NYXRoLnNxcnQsYkw9MWUtMTIseEw9TWF0aC5QSSx3TD14TC8yLFNMPTIqeEw7ZnVuY3Rpb24gTUwodCl7cmV0dXJuIHQ+MT8wOnQ8LTE/eEw6TWF0aC5hY29zKHQpfWZ1bmN0aW9uIEVMKHQpe3JldHVybiB0Pj0xP3dMOnQ8PS0xPy13TDpNYXRoLmFzaW4odCl9ZnVuY3Rpb24gVEwodCl7cmV0dXJuIHQuaW5uZXJSYWRpdXN9ZnVuY3Rpb24gQ0wodCl7cmV0dXJuIHQub3V0ZXJSYWRpdXN9ZnVuY3Rpb24gQUwodCl7cmV0dXJuIHQuc3RhcnRBbmdsZX1mdW5jdGlvbiBrTCh0KXtyZXR1cm4gdC5lbmRBbmdsZX1mdW5jdGlvbiBMTCh0KXtyZXR1cm4gdCYmdC5wYWRBbmdsZX1mdW5jdGlvbiBQTCh0LGUsbixpLHIsbyxhLHMpe3ZhciBsPW4tdCxjPWktZSx1PWEtcixoPXMtbyxkPWgqbC11KmM7aWYoIShkKmQ8YkwpKXJldHVyblt0KyhkPSh1KihlLW8pLWgqKHQtcikpL2QpKmwsZStkKmNdfWZ1bmN0aW9uIE5MKHQsZSxuLGkscixvLGEpe3ZhciBzPXQtbixsPWUtaSxjPShhP286LW8pL3ZMKHMqcytsKmwpLHU9YypsLGg9LWMqcyxkPXQrdSxwPWUraCxmPW4rdSxtPWkraCxnPShkK2YpLzIsXz0ocCttKS8yLHk9Zi1kLHY9bS1wLGI9eSp5K3Yqdix4PXItbyx3PWQqbS1mKnAsUz0odjwwPy0xOjEpKnZMKGdMKDAseCp4KmItdyp3KSksTT0odyp2LXkqUykvYixFPSgtdyp5LXYqUykvYixUPSh3KnYreSpTKS9iLEM9KC13KnkrdipTKS9iLEE9TS1nLGs9RS1fLEw9VC1nLFA9Qy1fO3JldHVybiBBKkErayprPkwqTCtQKlAmJihNPVQsRT1DKSx7Y3g6TSxjeTpFLHgwMTotdSx5MDE6LWgseDExOk0qKHIveC0xKSx5MTE6RSooci94LTEpfX1mdW5jdGlvbiBJTCh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gUkwodCl7cmV0dXJuIG5ldyBJTCh0KX1mdW5jdGlvbiBPTCh0KXtyZXR1cm4gdFswXX1mdW5jdGlvbiB6TCh0KXtyZXR1cm4gdFsxXX1mdW5jdGlvbiBETCgpe3ZhciB0PU9MLGU9ekwsbj1kTCghMCksaT1udWxsLHI9Ukwsbz1udWxsO2Z1bmN0aW9uIGEoYSl7dmFyIHMsbCxjLHU9YS5sZW5ndGgsaD0hMTtmb3IobnVsbD09aSYmKG89cihjPU9nKCkpKSxzPTA7czw9dTsrK3MpIShzPHUmJm4obD1hW3NdLHMsYSkpPT09aCYmKChoPSFoKT9vLmxpbmVTdGFydCgpOm8ubGluZUVuZCgpKSxoJiZvLnBvaW50KCt0KGwscyxhKSwrZShsLHMsYSkpO2lmKGMpcmV0dXJuIG89bnVsbCxjKyIifHxudWxsfXJldHVybiBhLng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpkTCgrZSksYSk6dH0sYS55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6ZEwoK3QpLGEpOmV9LGEuZGVmaW5lZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmRMKCEhdCksYSk6bn0sYS5jdXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LG51bGwhPWkmJihvPXIoaSkpLGEpOnJ9LGEuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09dD9pPW89bnVsbDpvPXIoaT10KSxhKTppfSxhfWZ1bmN0aW9uIEJMKCl7dmFyIHQ9T0wsZT1udWxsLG49ZEwoMCksaT16TCxyPWRMKCEwKSxvPW51bGwsYT1STCxzPW51bGw7ZnVuY3Rpb24gbChsKXt2YXIgYyx1LGgsZCxwLGY9bC5sZW5ndGgsbT0hMSxnPW5ldyBBcnJheShmKSxfPW5ldyBBcnJheShmKTtmb3IobnVsbD09byYmKHM9YShwPU9nKCkpKSxjPTA7Yzw9ZjsrK2Mpe2lmKCEoYzxmJiZyKGQ9bFtjXSxjLGwpKT09PW0paWYobT0hbSl1PWMscy5hcmVhU3RhcnQoKSxzLmxpbmVTdGFydCgpO2Vsc2V7Zm9yKHMubGluZUVuZCgpLHMubGluZVN0YXJ0KCksaD1jLTE7aD49dTstLWgpcy5wb2ludChnW2hdLF9baF0pO3MubGluZUVuZCgpLHMuYXJlYUVuZCgpfW0mJihnW2NdPSt0KGQsYyxsKSxfW2NdPStuKGQsYyxsKSxzLnBvaW50KGU/K2UoZCxjLGwpOmdbY10saT8raShkLGMsbCk6X1tjXSkpfWlmKHApcmV0dXJuIHM9bnVsbCxwKyIifHxudWxsfWZ1bmN0aW9uIGMoKXtyZXR1cm4gREwoKS5kZWZpbmVkKHIpLmN1cnZlKGEpLmNvbnRleHQobyl9cmV0dXJuIGwueD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uOmRMKCtuKSxlPW51bGwsbCk6dH0sbC54MD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOmRMKCtlKSxsKTp0fSxsLngxPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPW51bGw9PXQ/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YgdD90OmRMKCt0KSxsKTplfSxsLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpkTCgrdCksaT1udWxsLGwpOm59LGwueTA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpkTCgrdCksbCk6bn0sbC55MT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1udWxsPT10P251bGw6ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpkTCgrdCksbCk6aX0sbC5saW5lWDA9bC5saW5lWTA9ZnVuY3Rpb24oKXtyZXR1cm4gYygpLngodCkueShuKX0sbC5saW5lWTE9ZnVuY3Rpb24oKXtyZXR1cm4gYygpLngodCkueShpKX0sbC5saW5lWDE9ZnVuY3Rpb24oKXtyZXR1cm4gYygpLngoZSkueShuKX0sbC5kZWZpbmVkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6ZEwoISF0KSxsKTpyfSxsLmN1cnZlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXQsbnVsbCE9byYmKHM9YShvKSksbCk6YX0sbC5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT10P289cz1udWxsOnM9YShvPXQpLGwpOm99LGx9ZnVuY3Rpb24gSEwodCxlKXtyZXR1cm4gZTx0Py0xOmU+dD8xOmU+PXQ/MDpOYU59ZnVuY3Rpb24gRkwodCl7cmV0dXJuIHR9SUwucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godD0rdCxlPStlLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsZSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjtkZWZhdWx0OnRoaXMuX2NvbnRleHQubGluZVRvKHQsZSl9fX07dmFyIFZMPWpMKFJMKTtmdW5jdGlvbiBVTCh0KXt0aGlzLl9jdXJ2ZT10fWZ1bmN0aW9uIGpMKHQpe2Z1bmN0aW9uIGUoZSl7cmV0dXJuIG5ldyBVTCh0KGUpKX1yZXR1cm4gZS5fY3VydmU9dCxlfWZ1bmN0aW9uIEdMKHQpe3ZhciBlPXQuY3VydmU7cmV0dXJuIHQuYW5nbGU9dC54LGRlbGV0ZSB0LngsdC5yYWRpdXM9dC55LGRlbGV0ZSB0LnksdC5jdXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9lKGpMKHQpKTplKCkuX2N1cnZlfSx0fWZ1bmN0aW9uIFdMKCl7cmV0dXJuIEdMKERMKCkuY3VydmUoVkwpKX1mdW5jdGlvbiBxTCgpe3ZhciB0PUJMKCkuY3VydmUoVkwpLGU9dC5jdXJ2ZSxuPXQubGluZVgwLGk9dC5saW5lWDEscj10LmxpbmVZMCxvPXQubGluZVkxO3JldHVybiB0LmFuZ2xlPXQueCxkZWxldGUgdC54LHQuc3RhcnRBbmdsZT10LngwLGRlbGV0ZSB0LngwLHQuZW5kQW5nbGU9dC54MSxkZWxldGUgdC54MSx0LnJhZGl1cz10LnksZGVsZXRlIHQueSx0LmlubmVyUmFkaXVzPXQueTAsZGVsZXRlIHQueTAsdC5vdXRlclJhZGl1cz10LnkxLGRlbGV0ZSB0LnkxLHQubGluZVN0YXJ0QW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4gR0wobigpKX0sZGVsZXRlIHQubGluZVgwLHQubGluZUVuZEFuZ2xlPWZ1bmN0aW9uKCl7cmV0dXJuIEdMKGkoKSl9LGRlbGV0ZSB0LmxpbmVYMSx0LmxpbmVJbm5lclJhZGl1cz1mdW5jdGlvbigpe3JldHVybiBHTChyKCkpfSxkZWxldGUgdC5saW5lWTAsdC5saW5lT3V0ZXJSYWRpdXM9ZnVuY3Rpb24oKXtyZXR1cm4gR0wobygpKX0sZGVsZXRlIHQubGluZVkxLHQuY3VydmU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/ZShqTCh0KSk6ZSgpLl9jdXJ2ZX0sdH1mdW5jdGlvbiBZTCh0LGUpe3JldHVyblsoZT0rZSkqTWF0aC5jb3ModC09TWF0aC5QSS8yKSxlKk1hdGguc2luKHQpXX1VTC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmFyZWFTdGFydCgpfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUuYXJlYUVuZCgpfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmxpbmVFbmQoKX0scG9pbnQ6ZnVuY3Rpb24odCxlKXt0aGlzLl9jdXJ2ZS5wb2ludChlKk1hdGguc2luKHQpLGUqLU1hdGguY29zKHQpKX19O3ZhciBYTD1BcnJheS5wcm90b3R5cGUuc2xpY2U7ZnVuY3Rpb24gJEwodCl7cmV0dXJuIHQuc291cmNlfWZ1bmN0aW9uIEtMKHQpe3JldHVybiB0LnRhcmdldH1mdW5jdGlvbiBaTCh0KXt2YXIgZT0kTCxuPUtMLGk9T0wscj16TCxvPW51bGw7ZnVuY3Rpb24gYSgpe3ZhciBhLHM9WEwuY2FsbChhcmd1bWVudHMpLGw9ZS5hcHBseSh0aGlzLHMpLGM9bi5hcHBseSh0aGlzLHMpO2lmKG98fChvPWE9T2coKSksdChvLCtpLmFwcGx5KHRoaXMsKHNbMF09bCxzKSksK3IuYXBwbHkodGhpcyxzKSwraS5hcHBseSh0aGlzLChzWzBdPWMscykpLCtyLmFwcGx5KHRoaXMscykpLGEpcmV0dXJuIG89bnVsbCxhKyIifHxudWxsfXJldHVybiBhLnNvdXJjZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LGEpOmV9LGEudGFyZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQsYSk6bn0sYS54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6ZEwoK3QpLGEpOml9LGEueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmRMKCt0KSxhKTpyfSxhLmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89bnVsbD09dD9udWxsOnQsYSk6b30sYX1mdW5jdGlvbiBKTCh0LGUsbixpLHIpe3QubW92ZVRvKGUsbiksdC5iZXppZXJDdXJ2ZVRvKGU9KGUraSkvMixuLGUscixpLHIpfWZ1bmN0aW9uIFFMKHQsZSxuLGkscil7dC5tb3ZlVG8oZSxuKSx0LmJlemllckN1cnZlVG8oZSxuPShuK3IpLzIsaSxuLGkscil9ZnVuY3Rpb24gdFAodCxlLG4saSxyKXt2YXIgbz1ZTChlLG4pLGE9WUwoZSxuPShuK3IpLzIpLHM9WUwoaSxuKSxsPVlMKGkscik7dC5tb3ZlVG8ob1swXSxvWzFdKSx0LmJlemllckN1cnZlVG8oYVswXSxhWzFdLHNbMF0sc1sxXSxsWzBdLGxbMV0pfXZhciBlUD17ZHJhdzpmdW5jdGlvbih0LGUpe3ZhciBuPU1hdGguc3FydChlL3hMKTt0Lm1vdmVUbyhuLDApLHQuYXJjKDAsMCxuLDAsU0wpfX0sblA9e2RyYXc6ZnVuY3Rpb24odCxlKXt2YXIgbj1NYXRoLnNxcnQoZS81KS8yO3QubW92ZVRvKC0zKm4sLW4pLHQubGluZVRvKC1uLC1uKSx0LmxpbmVUbygtbiwtMypuKSx0LmxpbmVUbyhuLC0zKm4pLHQubGluZVRvKG4sLW4pLHQubGluZVRvKDMqbiwtbiksdC5saW5lVG8oMypuLG4pLHQubGluZVRvKG4sbiksdC5saW5lVG8obiwzKm4pLHQubGluZVRvKC1uLDMqbiksdC5saW5lVG8oLW4sbiksdC5saW5lVG8oLTMqbixuKSx0LmNsb3NlUGF0aCgpfX0saVA9TWF0aC5zcXJ0KDEvMyksclA9MippUCxvUD17ZHJhdzpmdW5jdGlvbih0LGUpe3ZhciBuPU1hdGguc3FydChlL3JQKSxpPW4qaVA7dC5tb3ZlVG8oMCwtbiksdC5saW5lVG8oaSwwKSx0LmxpbmVUbygwLG4pLHQubGluZVRvKC1pLDApLHQuY2xvc2VQYXRoKCl9fSxhUD1NYXRoLnNpbih4TC8xMCkvTWF0aC5zaW4oNyp4TC8xMCksc1A9TWF0aC5zaW4oU0wvMTApKmFQLGxQPS1NYXRoLmNvcyhTTC8xMCkqYVAsY1A9e2RyYXc6ZnVuY3Rpb24odCxlKXt2YXIgbj1NYXRoLnNxcnQoLjg5MDgxMzA5MTUyOTI4NTIqZSksaT1zUCpuLHI9bFAqbjt0Lm1vdmVUbygwLC1uKSx0LmxpbmVUbyhpLHIpO2Zvcih2YXIgbz0xO288NTsrK28pe3ZhciBhPVNMKm8vNSxzPU1hdGguY29zKGEpLGw9TWF0aC5zaW4oYSk7dC5saW5lVG8obCpuLC1zKm4pLHQubGluZVRvKHMqaS1sKnIsbCppK3Mqcil9dC5jbG9zZVBhdGgoKX19LHVQPXtkcmF3OmZ1bmN0aW9uKHQsZSl7dmFyIG49TWF0aC5zcXJ0KGUpLGk9LW4vMjt0LnJlY3QoaSxpLG4sbil9fSxoUD1NYXRoLnNxcnQoMyksZFA9e2RyYXc6ZnVuY3Rpb24odCxlKXt2YXIgbj0tTWF0aC5zcXJ0KGUvKDMqaFApKTt0Lm1vdmVUbygwLDIqbiksdC5saW5lVG8oLWhQKm4sLW4pLHQubGluZVRvKGhQKm4sLW4pLHQuY2xvc2VQYXRoKCl9fSxwUD0tLjUsZlA9TWF0aC5zcXJ0KDMpLzIsbVA9MS9NYXRoLnNxcnQoMTIpLGdQPTMqKG1QLzIrMSksX1A9e2RyYXc6ZnVuY3Rpb24odCxlKXt2YXIgbj1NYXRoLnNxcnQoZS9nUCksaT1uLzIscj1uKm1QLG89aSxhPW4qbVArbixzPS1vLGw9YTt0Lm1vdmVUbyhpLHIpLHQubGluZVRvKG8sYSksdC5saW5lVG8ocyxsKSx0LmxpbmVUbyhwUCppLWZQKnIsZlAqaStwUCpyKSx0LmxpbmVUbyhwUCpvLWZQKmEsZlAqbytwUCphKSx0LmxpbmVUbyhwUCpzLWZQKmwsZlAqcytwUCpsKSx0LmxpbmVUbyhwUCppK2ZQKnIscFAqci1mUCppKSx0LmxpbmVUbyhwUCpvK2ZQKmEscFAqYS1mUCpvKSx0LmxpbmVUbyhwUCpzK2ZQKmwscFAqbC1mUCpzKSx0LmNsb3NlUGF0aCgpfX0seVA9W2VQLG5QLG9QLHVQLGNQLGRQLF9QXTtmdW5jdGlvbiB2UCgpe31mdW5jdGlvbiBiUCh0LGUsbil7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKCgyKnQuX3gwK3QuX3gxKS8zLCgyKnQuX3kwK3QuX3kxKS8zLCh0Ll94MCsyKnQuX3gxKS8zLCh0Ll95MCsyKnQuX3kxKS8zLCh0Ll94MCs0KnQuX3gxK2UpLzYsKHQuX3kwKzQqdC5feTErbikvNil9ZnVuY3Rpb24geFAodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIHdQKHQpe3JldHVybiBuZXcgeFAodCl9ZnVuY3Rpb24gU1AodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIE1QKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBFUCh0LGUpe3RoaXMuX2Jhc2lzPW5ldyB4UCh0KSx0aGlzLl9iZXRhPWV9eFAucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMzpiUCh0aGlzLHRoaXMuX3gxLHRoaXMuX3kxKTtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDEsdGhpcy5feTEpfSh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godD0rdCxlPStlLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsZSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl9jb250ZXh0LmxpbmVUbygoNSp0aGlzLl94MCt0aGlzLl94MSkvNiwoNSp0aGlzLl95MCt0aGlzLl95MSkvNik7ZGVmYXVsdDpiUCh0aGlzLHQsZSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1lfX0sU1AucHJvdG90eXBlPXthcmVhU3RhcnQ6dlAsYXJlYUVuZDp2UCxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl94Mz10aGlzLl94ND10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj10aGlzLl95Mz10aGlzLl95ND1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAxOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gyLHRoaXMuX3kyKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMjp0aGlzLl9jb250ZXh0Lm1vdmVUbygodGhpcy5feDIrMip0aGlzLl94MykvMywodGhpcy5feTIrMip0aGlzLl95MykvMyksdGhpcy5fY29udGV4dC5saW5lVG8oKHRoaXMuX3gzKzIqdGhpcy5feDIpLzMsKHRoaXMuX3kzKzIqdGhpcy5feTIpLzMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAzOnRoaXMucG9pbnQodGhpcy5feDIsdGhpcy5feTIpLHRoaXMucG9pbnQodGhpcy5feDMsdGhpcy5feTMpLHRoaXMucG9pbnQodGhpcy5feDQsdGhpcy5feTQpfX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godD0rdCxlPStlLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl94Mj10LHRoaXMuX3kyPWU7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5feDM9dCx0aGlzLl95Mz1lO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX3g0PXQsdGhpcy5feTQ9ZSx0aGlzLl9jb250ZXh0Lm1vdmVUbygodGhpcy5feDArNCp0aGlzLl94MSt0KS82LCh0aGlzLl95MCs0KnRoaXMuX3kxK2UpLzYpO2JyZWFrO2RlZmF1bHQ6YlAodGhpcyx0LGUpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9ZX19LE1QLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3kwPXRoaXMuX3kxPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYzPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zO3ZhciBuPSh0aGlzLl94MCs0KnRoaXMuX3gxK3QpLzYsaT0odGhpcy5feTArNCp0aGlzLl95MStlKS82O3RoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8obixpKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyhuLGkpO2JyZWFrO2Nhc2UgMzp0aGlzLl9wb2ludD00O2RlZmF1bHQ6YlAodGhpcyx0LGUpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9ZX19LEVQLnByb3RvdHlwZT17bGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feD1bXSx0aGlzLl95PVtdLHRoaXMuX2Jhc2lzLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5feCxlPXRoaXMuX3ksbj10Lmxlbmd0aC0xO2lmKG4+MClmb3IodmFyIGkscj10WzBdLG89ZVswXSxhPXRbbl0tcixzPWVbbl0tbyxsPS0xOysrbDw9bjspdGhpcy5fYmFzaXMucG9pbnQodGhpcy5fYmV0YSp0W2xdKygxLXRoaXMuX2JldGEpKihyKyhpPWwvbikqYSksdGhpcy5fYmV0YSplW2xdKygxLXRoaXMuX2JldGEpKihvK2kqcykpO3RoaXMuX3g9dGhpcy5feT1udWxsLHRoaXMuX2Jhc2lzLmxpbmVFbmQoKX0scG9pbnQ6ZnVuY3Rpb24odCxlKXt0aGlzLl94LnB1c2goK3QpLHRoaXMuX3kucHVzaCgrZSl9fTt2YXIgVFA9KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gMT09PWU/bmV3IHhQKHQpOm5ldyBFUCh0LGUpfXJldHVybiBuLmJldGE9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxufSkoLjg1KTtmdW5jdGlvbiBDUCh0LGUsbil7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHQuX3gxK3QuX2sqKHQuX3gyLXQuX3gwKSx0Ll95MSt0Ll9rKih0Ll95Mi10Ll95MCksdC5feDIrdC5fayoodC5feDEtZSksdC5feTIrdC5fayoodC5feTEtbiksdC5feDIsdC5feTIpfWZ1bmN0aW9uIEFQKHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtZSkvNn1BUC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6Q1AodGhpcyx0aGlzLl94MSx0aGlzLl95MSl9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX3gxPXQsdGhpcy5feTE9ZTticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MztkZWZhdWx0OkNQKHRoaXMsdCxlKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPWV9fTt2YXIga1A9KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gbmV3IEFQKHQsZSl9cmV0dXJuIG4udGVuc2lvbj1mdW5jdGlvbihlKXtyZXR1cm4gdCgrZSl9LG59KSgwKTtmdW5jdGlvbiBMUCh0LGUpe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9rPSgxLWUpLzZ9TFAucHJvdG90eXBlPXthcmVhU3RhcnQ6dlAsYXJlYUVuZDp2UCxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl94Mz10aGlzLl94ND10aGlzLl94NT10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj10aGlzLl95Mz10aGlzLl95ND10aGlzLl95NT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAxOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5wb2ludCh0aGlzLl94NCx0aGlzLl95NCksdGhpcy5wb2ludCh0aGlzLl94NSx0aGlzLl95NSl9fSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gzPXQsdGhpcy5feTM9ZTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94ND10LHRoaXMuX3k0PWUpO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX3g1PXQsdGhpcy5feTU9ZTticmVhaztkZWZhdWx0OkNQKHRoaXMsdCxlKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPWV9fTt2YXIgUFA9KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gbmV3IExQKHQsZSl9cmV0dXJuIG4udGVuc2lvbj1mdW5jdGlvbihlKXtyZXR1cm4gdCgrZSl9LG59KSgwKTtmdW5jdGlvbiBOUCh0LGUpe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9rPSgxLWUpLzZ9TlAucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Mix0aGlzLl95Mik6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzp0aGlzLl9wb2ludD00O2RlZmF1bHQ6Q1AodGhpcyx0LGUpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9ZX19O3ZhciBJUD0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiBuZXcgTlAodCxlKX1yZXR1cm4gbi50ZW5zaW9uPWZ1bmN0aW9uKGUpe3JldHVybiB0KCtlKX0sbn0pKDApO2Z1bmN0aW9uIFJQKHQsZSxuKXt2YXIgaT10Ll94MSxyPXQuX3kxLG89dC5feDIsYT10Ll95MjtpZih0Ll9sMDFfYT5iTCl7dmFyIHM9Mip0Ll9sMDFfMmErMyp0Ll9sMDFfYSp0Ll9sMTJfYSt0Ll9sMTJfMmEsbD0zKnQuX2wwMV9hKih0Ll9sMDFfYSt0Ll9sMTJfYSk7aT0oaSpzLXQuX3gwKnQuX2wxMl8yYSt0Ll94Mip0Ll9sMDFfMmEpL2wscj0ocipzLXQuX3kwKnQuX2wxMl8yYSt0Ll95Mip0Ll9sMDFfMmEpL2x9aWYodC5fbDIzX2E+Ykwpe3ZhciBjPTIqdC5fbDIzXzJhKzMqdC5fbDIzX2EqdC5fbDEyX2ErdC5fbDEyXzJhLHU9Myp0Ll9sMjNfYSoodC5fbDIzX2ErdC5fbDEyX2EpO289KG8qYyt0Ll94MSp0Ll9sMjNfMmEtZSp0Ll9sMTJfMmEpL3UsYT0oYSpjK3QuX3kxKnQuX2wyM18yYS1uKnQuX2wxMl8yYSkvdX10Ll9jb250ZXh0LmJlemllckN1cnZlVG8oaSxyLG8sYSx0Ll94Mix0Ll95Mil9ZnVuY3Rpb24gT1AodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fYWxwaGE9ZX1PUC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fbDAxX2E9dGhpcy5fbDEyX2E9dGhpcy5fbDIzX2E9dGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmE9dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Mix0aGlzLl95Mil9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe2lmKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7dmFyIG49dGhpcy5feDItdCxpPXRoaXMuX3kyLWU7dGhpcy5fbDIzX2E9TWF0aC5zcXJ0KHRoaXMuX2wyM18yYT1NYXRoLnBvdyhuKm4raSppLHRoaXMuX2FscGhhKSl9c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsZSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MztkZWZhdWx0OlJQKHRoaXMsdCxlKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX07dmFyIHpQPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIGU/bmV3IE9QKHQsZSk6bmV3IEFQKHQsMCl9cmV0dXJuIG4uYWxwaGE9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxufSkoLjUpO2Z1bmN0aW9uIERQKHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2FscGhhPWV9RFAucHJvdG90eXBlPXthcmVhU3RhcnQ6dlAsYXJlYUVuZDp2UCxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl94Mz10aGlzLl94ND10aGlzLl94NT10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj10aGlzLl95Mz10aGlzLl95ND10aGlzLl95NT1OYU4sdGhpcy5fbDAxX2E9dGhpcy5fbDEyX2E9dGhpcy5fbDIzX2E9dGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmE9dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAxOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5wb2ludCh0aGlzLl94NCx0aGlzLl95NCksdGhpcy5wb2ludCh0aGlzLl94NSx0aGlzLl95NSl9fSxwb2ludDpmdW5jdGlvbih0LGUpe2lmKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7dmFyIG49dGhpcy5feDItdCxpPXRoaXMuX3kyLWU7dGhpcy5fbDIzX2E9TWF0aC5zcXJ0KHRoaXMuX2wyM18yYT1NYXRoLnBvdyhuKm4raSppLHRoaXMuX2FscGhhKSl9c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl94Mz10LHRoaXMuX3kzPWU7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDQ9dCx0aGlzLl95ND1lKTticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl94NT10LHRoaXMuX3k1PWU7YnJlYWs7ZGVmYXVsdDpSUCh0aGlzLHQsZSl9dGhpcy5fbDAxX2E9dGhpcy5fbDEyX2EsdGhpcy5fbDEyX2E9dGhpcy5fbDIzX2EsdGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYSx0aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhLHRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9ZX19O3ZhciBCUD0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiBlP25ldyBEUCh0LGUpOm5ldyBMUCh0LDApfXJldHVybiBuLmFscGhhPWZ1bmN0aW9uKGUpe3JldHVybiB0KCtlKX0sbn0pKC41KTtmdW5jdGlvbiBIUCh0LGUpe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9hbHBoYT1lfUhQLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9sMDFfYT10aGlzLl9sMTJfYT10aGlzLl9sMjNfYT10aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYT10aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYzPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe2lmKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7dmFyIG49dGhpcy5feDItdCxpPXRoaXMuX3kyLWU7dGhpcy5fbDIzX2E9TWF0aC5zcXJ0KHRoaXMuX2wyM18yYT1NYXRoLnBvdyhuKm4raSppLHRoaXMuX2FscGhhKSl9c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94Mix0aGlzLl95Mik7YnJlYWs7Y2FzZSAzOnRoaXMuX3BvaW50PTQ7ZGVmYXVsdDpSUCh0aGlzLHQsZSl9dGhpcy5fbDAxX2E9dGhpcy5fbDEyX2EsdGhpcy5fbDEyX2E9dGhpcy5fbDIzX2EsdGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYSx0aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhLHRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9ZX19O3ZhciBGUD0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiBlP25ldyBIUCh0LGUpOm5ldyBOUCh0LDApfXJldHVybiBuLmFscGhhPWZ1bmN0aW9uKGUpe3JldHVybiB0KCtlKX0sbn0pKC41KTtmdW5jdGlvbiBWUCh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gVVAodCl7cmV0dXJuIHQ8MD8tMToxfWZ1bmN0aW9uIGpQKHQsZSxuKXt2YXIgaT10Ll94MS10Ll94MCxyPWUtdC5feDEsbz0odC5feTEtdC5feTApLyhpfHxyPDAmJi0wKSxhPShuLXQuX3kxKS8ocnx8aTwwJiYtMCkscz0obypyK2EqaSkvKGkrcik7cmV0dXJuKFVQKG8pK1VQKGEpKSpNYXRoLm1pbihNYXRoLmFicyhvKSxNYXRoLmFicyhhKSwuNSpNYXRoLmFicyhzKSl8fDB9ZnVuY3Rpb24gR1AodCxlKXt2YXIgbj10Ll94MS10Ll94MDtyZXR1cm4gbj8oMyoodC5feTEtdC5feTApL24tZSkvMjplfWZ1bmN0aW9uIFdQKHQsZSxuKXt2YXIgaT10Ll94MCxyPXQuX3gxLG89dC5feTEsYT0oci1pKS8zO3QuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhpK2EsdC5feTArYSplLHItYSxvLWEqbixyLG8pfWZ1bmN0aW9uIHFQKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBZUCh0KXt0aGlzLl9jb250ZXh0PW5ldyBYUCh0KX1mdW5jdGlvbiBYUCh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gJFAodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIEtQKHQpe3ZhciBlLG4saT10Lmxlbmd0aC0xLHI9bmV3IEFycmF5KGkpLG89bmV3IEFycmF5KGkpLGE9bmV3IEFycmF5KGkpO2ZvcihyWzBdPTAsb1swXT0yLGFbMF09dFswXSsyKnRbMV0sZT0xO2U8aS0xOysrZSlyW2VdPTEsb1tlXT00LGFbZV09NCp0W2VdKzIqdFtlKzFdO2ZvcihyW2ktMV09MixvW2ktMV09NyxhW2ktMV09OCp0W2ktMV0rdFtpXSxlPTE7ZTxpOysrZSlvW2VdLT1uPXJbZV0vb1tlLTFdLGFbZV0tPW4qYVtlLTFdO2ZvcihyW2ktMV09YVtpLTFdL29baS0xXSxlPWktMjtlPj0wOy0tZSlyW2VdPShhW2VdLXJbZSsxXSkvb1tlXTtmb3Iob1tpLTFdPSh0W2ldK3JbaS0xXSkvMixlPTA7ZTxpLTE7KytlKW9bZV09Mip0W2UrMV0tcltlKzFdO3JldHVybltyLG9dfWZ1bmN0aW9uIFpQKHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX3Q9ZX1mdW5jdGlvbiBKUCh0LGUpe2lmKChyPXQubGVuZ3RoKT4xKWZvcih2YXIgbixpLHIsbz0xLGE9dFtlWzBdXSxzPWEubGVuZ3RoO288cjsrK28pZm9yKGk9YSxhPXRbZVtvXV0sbj0wO248czsrK24pYVtuXVsxXSs9YVtuXVswXT1pc05hTihpW25dWzFdKT9pW25dWzBdOmlbbl1bMV19ZnVuY3Rpb24gUVAodCl7Zm9yKHZhciBlPXQubGVuZ3RoLG49bmV3IEFycmF5KGUpOy0tZT49MDspbltlXT1lO3JldHVybiBufWZ1bmN0aW9uIHROKHQsZSl7cmV0dXJuIHRbZV19ZnVuY3Rpb24gZU4odCl7dmFyIGU9dC5tYXAobk4pO3JldHVybiBRUCh0KS5zb3J0KChmdW5jdGlvbih0LG4pe3JldHVybiBlW3RdLWVbbl19KSl9ZnVuY3Rpb24gbk4odCl7Zm9yKHZhciBlLG49LTEsaT0wLHI9dC5sZW5ndGgsbz0tMS8wOysrbjxyOykoZT0rdFtuXVsxXSk+byYmKG89ZSxpPW4pO3JldHVybiBpfWZ1bmN0aW9uIGlOKHQpe3ZhciBlPXQubWFwKHJOKTtyZXR1cm4gUVAodCkuc29ydCgoZnVuY3Rpb24odCxuKXtyZXR1cm4gZVt0XS1lW25dfSkpfWZ1bmN0aW9uIHJOKHQpe2Zvcih2YXIgZSxuPTAsaT0tMSxyPXQubGVuZ3RoOysraTxyOykoZT0rdFtpXVsxXSkmJihuKz1lKTtyZXR1cm4gbn1mdW5jdGlvbiBvTih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gYU4odCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24gc04odCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gbE4oKXt0aGlzLl89bnVsbH1mdW5jdGlvbiBjTih0KXt0LlU9dC5DPXQuTD10LlI9dC5QPXQuTj1udWxsfWZ1bmN0aW9uIHVOKHQsZSl7dmFyIG49ZSxpPWUuUixyPW4uVTtyP3IuTD09PW4/ci5MPWk6ci5SPWk6dC5fPWksaS5VPXIsbi5VPWksbi5SPWkuTCxuLlImJihuLlIuVT1uKSxpLkw9bn1mdW5jdGlvbiBoTih0LGUpe3ZhciBuPWUsaT1lLkwscj1uLlU7cj9yLkw9PT1uP3IuTD1pOnIuUj1pOnQuXz1pLGkuVT1yLG4uVT1pLG4uTD1pLlIsbi5MJiYobi5MLlU9biksaS5SPW59ZnVuY3Rpb24gZE4odCl7Zm9yKDt0Lkw7KXQ9dC5MO3JldHVybiB0fWZ1bmN0aW9uIHBOKHQsZSxuLGkpe3ZhciByPVtudWxsLG51bGxdLG89RE4ucHVzaChyKS0xO3JldHVybiByLmxlZnQ9dCxyLnJpZ2h0PWUsbiYmbU4ocix0LGUsbiksaSYmbU4ocixlLHQsaSksT05bdC5pbmRleF0uaGFsZmVkZ2VzLnB1c2gobyksT05bZS5pbmRleF0uaGFsZmVkZ2VzLnB1c2gobykscn1mdW5jdGlvbiBmTih0LGUsbil7dmFyIGk9W2Usbl07cmV0dXJuIGkubGVmdD10LGl9ZnVuY3Rpb24gbU4odCxlLG4saSl7dFswXXx8dFsxXT90LmxlZnQ9PT1uP3RbMV09aTp0WzBdPWk6KHRbMF09aSx0LmxlZnQ9ZSx0LnJpZ2h0PW4pfWZ1bmN0aW9uIGdOKHQsZSxuLGkscil7dmFyIG8sYT10WzBdLHM9dFsxXSxsPWFbMF0sYz1hWzFdLHU9MCxoPTEsZD1zWzBdLWwscD1zWzFdLWM7aWYobz1lLWwsZHx8IShvPjApKXtpZihvLz1kLGQ8MCl7aWYobzx1KXJldHVybjtvPGgmJihoPW8pfWVsc2UgaWYoZD4wKXtpZihvPmgpcmV0dXJuO28+dSYmKHU9byl9aWYobz1pLWwsZHx8IShvPDApKXtpZihvLz1kLGQ8MCl7aWYobz5oKXJldHVybjtvPnUmJih1PW8pfWVsc2UgaWYoZD4wKXtpZihvPHUpcmV0dXJuO288aCYmKGg9byl9aWYobz1uLWMscHx8IShvPjApKXtpZihvLz1wLHA8MCl7aWYobzx1KXJldHVybjtvPGgmJihoPW8pfWVsc2UgaWYocD4wKXtpZihvPmgpcmV0dXJuO28+dSYmKHU9byl9aWYobz1yLWMscHx8IShvPDApKXtpZihvLz1wLHA8MCl7aWYobz5oKXJldHVybjtvPnUmJih1PW8pfWVsc2UgaWYocD4wKXtpZihvPHUpcmV0dXJuO288aCYmKGg9byl9cmV0dXJuISh1PjB8fGg8MSl8fCh1PjAmJih0WzBdPVtsK3UqZCxjK3UqcF0pLGg8MSYmKHRbMV09W2wraCpkLGMraCpwXSksITApfX19fX1mdW5jdGlvbiBfTih0LGUsbixpLHIpe3ZhciBvPXRbMV07aWYobylyZXR1cm4hMDt2YXIgYSxzLGw9dFswXSxjPXQubGVmdCx1PXQucmlnaHQsaD1jWzBdLGQ9Y1sxXSxwPXVbMF0sZj11WzFdLG09KGgrcCkvMjtpZihmPT09ZCl7aWYobTxlfHxtPj1pKXJldHVybjtpZihoPnApe2lmKGwpe2lmKGxbMV0+PXIpcmV0dXJufWVsc2UgbD1bbSxuXTtvPVttLHJdfWVsc2V7aWYobCl7aWYobFsxXTxuKXJldHVybn1lbHNlIGw9W20scl07bz1bbSxuXX19ZWxzZSBpZihzPShkK2YpLzItKGE9KGgtcCkvKGYtZCkpKm0sYTwtMXx8YT4xKWlmKGg+cCl7aWYobCl7aWYobFsxXT49cilyZXR1cm59ZWxzZSBsPVsobi1zKS9hLG5dO289WyhyLXMpL2Escl19ZWxzZXtpZihsKXtpZihsWzFdPG4pcmV0dXJufWVsc2UgbD1bKHItcykvYSxyXTtvPVsobi1zKS9hLG5dfWVsc2UgaWYoZDxmKXtpZihsKXtpZihsWzBdPj1pKXJldHVybn1lbHNlIGw9W2UsYSplK3NdO289W2ksYSppK3NdfWVsc2V7aWYobCl7aWYobFswXTxlKXJldHVybn1lbHNlIGw9W2ksYSppK3NdO289W2UsYSplK3NdfXJldHVybiB0WzBdPWwsdFsxXT1vLCEwfWZ1bmN0aW9uIHlOKHQsZSl7dmFyIG49dC5zaXRlLGk9ZS5sZWZ0LHI9ZS5yaWdodDtyZXR1cm4gbj09PXImJihyPWksaT1uKSxyP01hdGguYXRhbjIoclsxXS1pWzFdLHJbMF0taVswXSk6KG49PT1pPyhpPWVbMV0scj1lWzBdKTooaT1lWzBdLHI9ZVsxXSksTWF0aC5hdGFuMihpWzBdLXJbMF0sclsxXS1pWzFdKSl9ZnVuY3Rpb24gdk4odCxlKXtyZXR1cm4gZVsrKGUubGVmdCE9PXQuc2l0ZSldfWZ1bmN0aW9uIGJOKHQsZSl7cmV0dXJuIGVbKyhlLmxlZnQ9PT10LnNpdGUpXX1WUC5wcm90b3R5cGU9e2FyZWFTdGFydDp2UCxhcmVhRW5kOnZQLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludCYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKX0scG9pbnQ6ZnVuY3Rpb24odCxlKXt0PSt0LGU9K2UsdGhpcy5fcG9pbnQ/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKToodGhpcy5fcG9pbnQ9MSx0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpKX19LHFQLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3QwPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDEsdGhpcy5feTEpO2JyZWFrO2Nhc2UgMzpXUCh0aGlzLHRoaXMuX3QwLEdQKHRoaXMsdGhpcy5fdDApKX0odGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7dmFyIG49TmFOO2lmKGU9K2UsKHQ9K3QpIT09dGhpcy5feDF8fGUhPT10aGlzLl95MSl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsZSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MyxXUCh0aGlzLEdQKHRoaXMsbj1qUCh0aGlzLHQsZSkpLG4pO2JyZWFrO2RlZmF1bHQ6V1AodGhpcyx0aGlzLl90MCxuPWpQKHRoaXMsdCxlKSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1lLHRoaXMuX3QwPW59fX0sKFlQLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHFQLnByb3RvdHlwZSkpLnBvaW50PWZ1bmN0aW9uKHQsZSl7cVAucHJvdG90eXBlLnBvaW50LmNhbGwodGhpcyxlLHQpfSxYUC5wcm90b3R5cGU9e21vdmVUbzpmdW5jdGlvbih0LGUpe3RoaXMuX2NvbnRleHQubW92ZVRvKGUsdCl9LGNsb3NlUGF0aDpmdW5jdGlvbigpe3RoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCl9LGxpbmVUbzpmdW5jdGlvbih0LGUpe3RoaXMuX2NvbnRleHQubGluZVRvKGUsdCl9LGJlemllckN1cnZlVG86ZnVuY3Rpb24odCxlLG4saSxyLG8pe3RoaXMuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhlLHQsaSxuLG8scil9fSwkUC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94PVtdLHRoaXMuX3k9W119LGxpbmVFbmQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl94LGU9dGhpcy5feSxuPXQubGVuZ3RoO2lmKG4paWYodGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0WzBdLGVbMF0pOnRoaXMuX2NvbnRleHQubW92ZVRvKHRbMF0sZVswXSksMj09PW4pdGhpcy5fY29udGV4dC5saW5lVG8odFsxXSxlWzFdKTtlbHNlIGZvcih2YXIgaT1LUCh0KSxyPUtQKGUpLG89MCxhPTE7YTxuOysrbywrK2EpdGhpcy5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKGlbMF1bb10sclswXVtvXSxpWzFdW29dLHJbMV1bb10sdFthXSxlW2FdKTsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT1uKSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZSx0aGlzLl94PXRoaXMuX3k9bnVsbH0scG9pbnQ6ZnVuY3Rpb24odCxlKXt0aGlzLl94LnB1c2goK3QpLHRoaXMuX3kucHVzaCgrZSl9fSxaUC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94PXRoaXMuX3k9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXswPHRoaXMuX3QmJnRoaXMuX3Q8MSYmMj09PXRoaXMuX3BvaW50JiZ0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94LHRoaXMuX3kpLCh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPj0wJiYodGhpcy5fdD0xLXRoaXMuX3QsdGhpcy5fbGluZT0xLXRoaXMuX2xpbmUpfSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2RlZmF1bHQ6aWYodGhpcy5fdDw9MCl0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94LGUpLHRoaXMuX2NvbnRleHQubGluZVRvKHQsZSk7ZWxzZXt2YXIgbj10aGlzLl94KigxLXRoaXMuX3QpK3QqdGhpcy5fdDt0aGlzLl9jb250ZXh0LmxpbmVUbyhuLHRoaXMuX3kpLHRoaXMuX2NvbnRleHQubGluZVRvKG4sZSl9fXRoaXMuX3g9dCx0aGlzLl95PWV9fSxsTi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmxOLGluc2VydDpmdW5jdGlvbih0LGUpe3ZhciBuLGkscjtpZih0KXtpZihlLlA9dCxlLk49dC5OLHQuTiYmKHQuTi5QPWUpLHQuTj1lLHQuUil7Zm9yKHQ9dC5SO3QuTDspdD10Lkw7dC5MPWV9ZWxzZSB0LlI9ZTtuPXR9ZWxzZSB0aGlzLl8/KHQ9ZE4odGhpcy5fKSxlLlA9bnVsbCxlLk49dCx0LlA9dC5MPWUsbj10KTooZS5QPWUuTj1udWxsLHRoaXMuXz1lLG49bnVsbCk7Zm9yKGUuTD1lLlI9bnVsbCxlLlU9bixlLkM9ITAsdD1lO24mJm4uQzspbj09PShpPW4uVSkuTD8ocj1pLlIpJiZyLkM/KG4uQz1yLkM9ITEsaS5DPSEwLHQ9aSk6KHQ9PT1uLlImJih1Tih0aGlzLG4pLG49KHQ9bikuVSksbi5DPSExLGkuQz0hMCxoTih0aGlzLGkpKToocj1pLkwpJiZyLkM/KG4uQz1yLkM9ITEsaS5DPSEwLHQ9aSk6KHQ9PT1uLkwmJihoTih0aGlzLG4pLG49KHQ9bikuVSksbi5DPSExLGkuQz0hMCx1Tih0aGlzLGkpKSxuPXQuVTt0aGlzLl8uQz0hMX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3QuTiYmKHQuTi5QPXQuUCksdC5QJiYodC5QLk49dC5OKSx0Lk49dC5QPW51bGw7dmFyIGUsbixpLHI9dC5VLG89dC5MLGE9dC5SO2lmKG49bz9hP2ROKGEpOm86YSxyP3IuTD09PXQ/ci5MPW46ci5SPW46dGhpcy5fPW4sbyYmYT8oaT1uLkMsbi5DPXQuQyxuLkw9byxvLlU9bixuIT09YT8ocj1uLlUsbi5VPXQuVSxyLkw9dD1uLlIsbi5SPWEsYS5VPW4pOihuLlU9cixyPW4sdD1uLlIpKTooaT10LkMsdD1uKSx0JiYodC5VPXIpLCFpKWlmKHQmJnQuQyl0LkM9ITE7ZWxzZXtkb3tpZih0PT09dGhpcy5fKWJyZWFrO2lmKHQ9PT1yLkwpe2lmKChlPXIuUikuQyYmKGUuQz0hMSxyLkM9ITAsdU4odGhpcyxyKSxlPXIuUiksZS5MJiZlLkwuQ3x8ZS5SJiZlLlIuQyl7ZS5SJiZlLlIuQ3x8KGUuTC5DPSExLGUuQz0hMCxoTih0aGlzLGUpLGU9ci5SKSxlLkM9ci5DLHIuQz1lLlIuQz0hMSx1Tih0aGlzLHIpLHQ9dGhpcy5fO2JyZWFrfX1lbHNlIGlmKChlPXIuTCkuQyYmKGUuQz0hMSxyLkM9ITAsaE4odGhpcyxyKSxlPXIuTCksZS5MJiZlLkwuQ3x8ZS5SJiZlLlIuQyl7ZS5MJiZlLkwuQ3x8KGUuUi5DPSExLGUuQz0hMCx1Tih0aGlzLGUpLGU9ci5MKSxlLkM9ci5DLHIuQz1lLkwuQz0hMSxoTih0aGlzLHIpLHQ9dGhpcy5fO2JyZWFrfWUuQz0hMCx0PXIscj1yLlV9d2hpbGUoIXQuQyk7dCYmKHQuQz0hMSl9fX07dmFyIHhOLHdOPVtdO2Z1bmN0aW9uIFNOKCl7Y04odGhpcyksdGhpcy54PXRoaXMueT10aGlzLmFyYz10aGlzLnNpdGU9dGhpcy5jeT1udWxsfWZ1bmN0aW9uIE1OKHQpe3ZhciBlPXQuUCxuPXQuTjtpZihlJiZuKXt2YXIgaT1lLnNpdGUscj10LnNpdGUsbz1uLnNpdGU7aWYoaSE9PW8pe3ZhciBhPXJbMF0scz1yWzFdLGw9aVswXS1hLGM9aVsxXS1zLHU9b1swXS1hLGg9b1sxXS1zLGQ9MioobCpoLWMqdSk7aWYoIShkPj0tSE4pKXt2YXIgcD1sKmwrYypjLGY9dSp1K2gqaCxtPShoKnAtYypmKS9kLGc9KGwqZi11KnApL2QsXz13Ti5wb3AoKXx8bmV3IFNOO18uYXJjPXQsXy5zaXRlPXIsXy54PW0rYSxfLnk9KF8uY3k9ZytzKStNYXRoLnNxcnQobSptK2cqZyksdC5jaXJjbGU9Xztmb3IodmFyIHk9bnVsbCx2PXpOLl87djspaWYoXy55PHYueXx8Xy55PT09di55JiZfLng8PXYueCl7aWYoIXYuTCl7eT12LlA7YnJlYWt9dj12Lkx9ZWxzZXtpZighdi5SKXt5PXY7YnJlYWt9dj12LlJ9ek4uaW5zZXJ0KHksXykseXx8KHhOPV8pfX19fWZ1bmN0aW9uIEVOKHQpe3ZhciBlPXQuY2lyY2xlO2UmJihlLlB8fCh4Tj1lLk4pLHpOLnJlbW92ZShlKSx3Ti5wdXNoKGUpLGNOKGUpLHQuY2lyY2xlPW51bGwpfXZhciBUTj1bXTtmdW5jdGlvbiBDTigpe2NOKHRoaXMpLHRoaXMuZWRnZT10aGlzLnNpdGU9dGhpcy5jaXJjbGU9bnVsbH1mdW5jdGlvbiBBTih0KXt2YXIgZT1UTi5wb3AoKXx8bmV3IENOO3JldHVybiBlLnNpdGU9dCxlfWZ1bmN0aW9uIGtOKHQpe0VOKHQpLFJOLnJlbW92ZSh0KSxUTi5wdXNoKHQpLGNOKHQpfWZ1bmN0aW9uIExOKHQpe3ZhciBlPXQuY2lyY2xlLG49ZS54LGk9ZS5jeSxyPVtuLGldLG89dC5QLGE9dC5OLHM9W3RdO2tOKHQpO2Zvcih2YXIgbD1vO2wuY2lyY2xlJiZNYXRoLmFicyhuLWwuY2lyY2xlLngpPEJOJiZNYXRoLmFicyhpLWwuY2lyY2xlLmN5KTxCTjspbz1sLlAscy51bnNoaWZ0KGwpLGtOKGwpLGw9bztzLnVuc2hpZnQobCksRU4obCk7Zm9yKHZhciBjPWE7Yy5jaXJjbGUmJk1hdGguYWJzKG4tYy5jaXJjbGUueCk8Qk4mJk1hdGguYWJzKGktYy5jaXJjbGUuY3kpPEJOOylhPWMuTixzLnB1c2goYyksa04oYyksYz1hO3MucHVzaChjKSxFTihjKTt2YXIgdSxoPXMubGVuZ3RoO2Zvcih1PTE7dTxoOysrdSltTigoYz1zW3VdKS5lZGdlLChsPXNbdS0xXSkuc2l0ZSxjLnNpdGUscik7KGM9c1toLTFdKS5lZGdlPXBOKChsPXNbMF0pLnNpdGUsYy5zaXRlLG51bGwsciksTU4obCksTU4oYyl9ZnVuY3Rpb24gUE4odCl7Zm9yKHZhciBlLG4saSxyLG89dFswXSxhPXRbMV0scz1STi5fO3M7KWlmKChpPU5OKHMsYSktbyk+Qk4pcz1zLkw7ZWxzZXtpZighKChyPW8tSU4ocyxhKSk+Qk4pKXtpPi1CTj8oZT1zLlAsbj1zKTpyPi1CTj8oZT1zLG49cy5OKTplPW49czticmVha31pZighcy5SKXtlPXM7YnJlYWt9cz1zLlJ9IShmdW5jdGlvbiBsKHQpe3JldHVybiBPTlt0LmluZGV4XT17c2l0ZTp0LGhhbGZlZGdlczpbXX19KSh0KTt2YXIgYz1BTih0KTtpZihSTi5pbnNlcnQoZSxjKSxlfHxuKXtpZihlPT09bilyZXR1cm4gRU4oZSksbj1BTihlLnNpdGUpLFJOLmluc2VydChjLG4pLGMuZWRnZT1uLmVkZ2U9cE4oZS5zaXRlLGMuc2l0ZSksTU4oZSksdm9pZCBNTihuKTtpZihuKXtFTihlKSxFTihuKTt2YXIgdT1lLnNpdGUsaD11WzBdLGQ9dVsxXSxwPXRbMF0taCxmPXRbMV0tZCxtPW4uc2l0ZSxnPW1bMF0taCxfPW1bMV0tZCx5PTIqKHAqXy1mKmcpLHY9cCpwK2YqZixiPWcqZytfKl8seD1bKF8qdi1mKmIpL3kraCwocCpiLWcqdikveStkXTttTihuLmVkZ2UsdSxtLHgpLGMuZWRnZT1wTih1LHQsbnVsbCx4KSxuLmVkZ2U9cE4odCxtLG51bGwseCksTU4oZSksTU4obil9ZWxzZSBjLmVkZ2U9cE4oZS5zaXRlLGMuc2l0ZSl9fWZ1bmN0aW9uIE5OKHQsZSl7dmFyIG49dC5zaXRlLGk9blswXSxyPW5bMV0sbz1yLWU7aWYoIW8pcmV0dXJuIGk7dmFyIGE9dC5QO2lmKCFhKXJldHVybi0xLzA7dmFyIHM9KG49YS5zaXRlKVswXSxsPW5bMV0sYz1sLWU7aWYoIWMpcmV0dXJuIHM7dmFyIHU9cy1pLGg9MS9vLTEvYyxkPXUvYztyZXR1cm4gaD8oLWQrTWF0aC5zcXJ0KGQqZC0yKmgqKHUqdS8oLTIqYyktbCtjLzIrci1vLzIpKSkvaCtpOihpK3MpLzJ9ZnVuY3Rpb24gSU4odCxlKXt2YXIgbj10Lk47aWYobilyZXR1cm4gTk4obixlKTt2YXIgaT10LnNpdGU7cmV0dXJuIGlbMV09PT1lP2lbMF06MS8wfXZhciBSTixPTix6TixETixCTj0xZS02LEhOPTFlLTEyO2Z1bmN0aW9uIEZOKHQsZSxuKXtyZXR1cm4odFswXS1uWzBdKSooZVsxXS10WzFdKS0odFswXS1lWzBdKSooblsxXS10WzFdKX1mdW5jdGlvbiBWTih0LGUpe3JldHVybiBlWzFdLXRbMV18fGVbMF0tdFswXX1mdW5jdGlvbiBVTih0LGUpe3ZhciBuLGkscixvPXQuc29ydChWTikucG9wKCk7Zm9yKEROPVtdLE9OPW5ldyBBcnJheSh0Lmxlbmd0aCksUk49bmV3IGxOLHpOPW5ldyBsTjs7KWlmKHI9eE4sbyYmKCFyfHxvWzFdPHIueXx8b1sxXT09PXIueSYmb1swXTxyLngpKW9bMF09PT1uJiZvWzFdPT09aXx8KFBOKG8pLG49b1swXSxpPW9bMV0pLG89dC5wb3AoKTtlbHNle2lmKCFyKWJyZWFrO0xOKHIuYXJjKX1pZigoZnVuY3Rpb24gYSgpe2Zvcih2YXIgdCxlLG4saSxyPTAsbz1PTi5sZW5ndGg7cjxvOysrcilpZigodD1PTltyXSkmJihpPShlPXQuaGFsZmVkZ2VzKS5sZW5ndGgpKXt2YXIgYT1uZXcgQXJyYXkoaSkscz1uZXcgQXJyYXkoaSk7Zm9yKG49MDtuPGk7KytuKWFbbl09bixzW25dPXlOKHQsRE5bZVtuXV0pO2ZvcihhLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHNbZV0tc1t0XX0pKSxuPTA7bjxpOysrbilzW25dPWVbYVtuXV07Zm9yKG49MDtuPGk7KytuKWVbbl09c1tuXX19KSgpLGUpe3ZhciBzPStlWzBdWzBdLGw9K2VbMF1bMV0sYz0rZVsxXVswXSx1PStlWzFdWzFdOyEoZnVuY3Rpb24gaCh0LGUsbixpKXtmb3IodmFyIHIsbz1ETi5sZW5ndGg7by0tOylfTihyPUROW29dLHQsZSxuLGkpJiZnTihyLHQsZSxuLGkpJiYoTWF0aC5hYnMoclswXVswXS1yWzFdWzBdKT5CTnx8TWF0aC5hYnMoclswXVsxXS1yWzFdWzFdKT5CTil8fGRlbGV0ZSBETltvXX0pKHMsbCxjLHUpLChmdW5jdGlvbiBkKHQsZSxuLGkpe3ZhciByLG8sYSxzLGwsYyx1LGgsZCxwLGYsbSxnPU9OLmxlbmd0aCxfPSEwO2ZvcihyPTA7cjxnOysrcilpZihvPU9OW3JdKXtmb3IoYT1vLnNpdGUscz0obD1vLmhhbGZlZGdlcykubGVuZ3RoO3MtLTspRE5bbFtzXV18fGwuc3BsaWNlKHMsMSk7Zm9yKHM9MCxjPWwubGVuZ3RoO3M8YzspZj0ocD1iTihvLEROW2xbc11dKSlbMF0sbT1wWzFdLGg9KHU9dk4obyxETltsWysrcyVjXV0pKVswXSxkPXVbMV0sKE1hdGguYWJzKGYtaCk+Qk58fE1hdGguYWJzKG0tZCk+Qk4pJiYobC5zcGxpY2UocywwLEROLnB1c2goZk4oYSxwLE1hdGguYWJzKGYtdCk8Qk4mJmktbT5CTj9bdCxNYXRoLmFicyhoLXQpPEJOP2Q6aV06TWF0aC5hYnMobS1pKTxCTiYmbi1mPkJOP1tNYXRoLmFicyhkLWkpPEJOP2g6bixpXTpNYXRoLmFicyhmLW4pPEJOJiZtLWU+Qk4/W24sTWF0aC5hYnMoaC1uKTxCTj9kOmVdOk1hdGguYWJzKG0tZSk8Qk4mJmYtdD5CTj9bTWF0aC5hYnMoZC1lKTxCTj9oOnQsZV06bnVsbCkpLTEpLCsrYyk7YyYmKF89ITEpfWlmKF8pe3ZhciB5LHYsYix4PTEvMDtmb3Iocj0wLF89bnVsbDtyPGc7KytyKShvPU9OW3JdKSYmKGI9KHk9KGE9by5zaXRlKVswXS10KSp5Kyh2PWFbMV0tZSkqdik8eCYmKHg9YixfPW8pO2lmKF8pe3ZhciB3PVt0LGVdLFM9W3QsaV0sTT1bbixpXSxFPVtuLGVdO18uaGFsZmVkZ2VzLnB1c2goRE4ucHVzaChmTihhPV8uc2l0ZSx3LFMpKS0xLEROLnB1c2goZk4oYSxTLE0pKS0xLEROLnB1c2goZk4oYSxNLEUpKS0xLEROLnB1c2goZk4oYSxFLHcpKS0xKX19Zm9yKHI9MDtyPGc7KytyKShvPU9OW3JdKSYmKG8uaGFsZmVkZ2VzLmxlbmd0aHx8ZGVsZXRlIE9OW3JdKX0pKHMsbCxjLHUpfXRoaXMuZWRnZXM9RE4sdGhpcy5jZWxscz1PTixSTj16Tj1ETj1PTj1udWxsfWZ1bmN0aW9uIGpOKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBHTih0LGUsbil7dGhpcy50YXJnZXQ9dCx0aGlzLnR5cGU9ZSx0aGlzLnRyYW5zZm9ybT1ufWZ1bmN0aW9uIFdOKHQsZSxuKXt0aGlzLms9dCx0aGlzLng9ZSx0aGlzLnk9bn1VTi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlVOLHBvbHlnb25zOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lZGdlcztyZXR1cm4gdGhpcy5jZWxscy5tYXAoKGZ1bmN0aW9uKGUpe3ZhciBuPWUuaGFsZmVkZ2VzLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuIHZOKGUsdFtuXSl9KSk7cmV0dXJuIG4uZGF0YT1lLnNpdGUuZGF0YSxufSkpfSx0cmlhbmdsZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXSxlPXRoaXMuZWRnZXM7cmV0dXJuIHRoaXMuY2VsbHMuZm9yRWFjaCgoZnVuY3Rpb24obixpKXtpZihvPShyPW4uaGFsZmVkZ2VzKS5sZW5ndGgpZm9yKHZhciByLG8sYSxzPW4uc2l0ZSxsPS0xLGM9ZVtyW28tMV1dLHU9Yy5sZWZ0PT09cz9jLnJpZ2h0OmMubGVmdDsrK2w8bzspYT11LHU9KGM9ZVtyW2xdXSkubGVmdD09PXM/Yy5yaWdodDpjLmxlZnQsYSYmdSYmaTxhLmluZGV4JiZpPHUuaW5kZXgmJkZOKHMsYSx1KTwwJiZ0LnB1c2goW3MuZGF0YSxhLmRhdGEsdS5kYXRhXSl9KSksdH0sbGlua3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGdlcy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJpZ2h0fSkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJue3NvdXJjZTp0LmxlZnQuZGF0YSx0YXJnZXQ6dC5yaWdodC5kYXRhfX0pKX0sZmluZDpmdW5jdGlvbih0LGUsbil7Zm9yKHZhciBpLHIsbz10aGlzLGE9by5fZm91bmR8fDAscz1vLmNlbGxzLmxlbmd0aDshKHI9by5jZWxsc1thXSk7KWlmKCsrYT49cylyZXR1cm4gbnVsbDt2YXIgbD10LXIuc2l0ZVswXSxjPWUtci5zaXRlWzFdLHU9bCpsK2MqYztkb3tyPW8uY2VsbHNbaT1hXSxhPW51bGwsci5oYWxmZWRnZXMuZm9yRWFjaCgoZnVuY3Rpb24obil7dmFyIGk9by5lZGdlc1tuXSxzPWkubGVmdDtpZihzIT09ci5zaXRlJiZzfHwocz1pLnJpZ2h0KSl7dmFyIGw9dC1zWzBdLGM9ZS1zWzFdLGg9bCpsK2MqYztoPHUmJih1PWgsYT1zLmluZGV4KX19KSl9d2hpbGUobnVsbCE9PWEpO3JldHVybiBvLl9mb3VuZD1pLG51bGw9PW58fHU8PW4qbj9yLnNpdGU6bnVsbH19LFdOLnByb3RvdHlwZT17Y29uc3RydWN0b3I6V04sc2NhbGU6ZnVuY3Rpb24odCl7cmV0dXJuIDE9PT10P3RoaXM6bmV3IFdOKHRoaXMuayp0LHRoaXMueCx0aGlzLnkpfSx0cmFuc2xhdGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gMD09PXQmMD09PWU/dGhpczpuZXcgV04odGhpcy5rLHRoaXMueCt0aGlzLmsqdCx0aGlzLnkrdGhpcy5rKmUpfSxhcHBseTpmdW5jdGlvbih0KXtyZXR1cm5bdFswXSp0aGlzLmsrdGhpcy54LHRbMV0qdGhpcy5rK3RoaXMueV19LGFwcGx5WDpmdW5jdGlvbih0KXtyZXR1cm4gdCp0aGlzLmsrdGhpcy54fSxhcHBseVk6ZnVuY3Rpb24odCl7cmV0dXJuIHQqdGhpcy5rK3RoaXMueX0saW52ZXJ0OmZ1bmN0aW9uKHQpe3JldHVyblsodFswXS10aGlzLngpL3RoaXMuaywodFsxXS10aGlzLnkpL3RoaXMua119LGludmVydFg6ZnVuY3Rpb24odCl7cmV0dXJuKHQtdGhpcy54KS90aGlzLmt9LGludmVydFk6ZnVuY3Rpb24odCl7cmV0dXJuKHQtdGhpcy55KS90aGlzLmt9LHJlc2NhbGVYOmZ1bmN0aW9uKHQpe3JldHVybiB0LmNvcHkoKS5kb21haW4odC5yYW5nZSgpLm1hcCh0aGlzLmludmVydFgsdGhpcykubWFwKHQuaW52ZXJ0LHQpKX0scmVzY2FsZVk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuY29weSgpLmRvbWFpbih0LnJhbmdlKCkubWFwKHRoaXMuaW52ZXJ0WSx0aGlzKS5tYXAodC5pbnZlcnQsdCkpfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiJ0cmFuc2xhdGUoIit0aGlzLngrIiwiK3RoaXMueSsiKSBzY2FsZSgiK3RoaXMuaysiKSJ9fTt2YXIgcU49bmV3IFdOKDEsMCwwKTtmdW5jdGlvbiBZTih0KXtmb3IoOyF0Ll9fem9vbTspaWYoISh0PXQucGFyZW50Tm9kZSkpcmV0dXJuIHFOO3JldHVybiB0Ll9fem9vbX1mdW5jdGlvbiBYTigpe011LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uICROKCl7TXUucHJldmVudERlZmF1bHQoKSxNdS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBLTigpe3JldHVybiFNdS5jdHJsS2V5JiYhTXUuYnV0dG9ufWZ1bmN0aW9uIFpOKCl7dmFyIHQ9dGhpcztyZXR1cm4gdCBpbnN0YW5jZW9mIFNWR0VsZW1lbnQ/KHQ9dC5vd25lclNWR0VsZW1lbnR8fHQpLmhhc0F0dHJpYnV0ZSgidmlld0JveCIpP1tbKHQ9dC52aWV3Qm94LmJhc2VWYWwpLngsdC55XSxbdC54K3Qud2lkdGgsdC55K3QuaGVpZ2h0XV06W1swLDBdLFt0LndpZHRoLmJhc2VWYWwudmFsdWUsdC5oZWlnaHQuYmFzZVZhbC52YWx1ZV1dOltbMCwwXSxbdC5jbGllbnRXaWR0aCx0LmNsaWVudEhlaWdodF1dfWZ1bmN0aW9uIEpOKCl7cmV0dXJuIHRoaXMuX196b29tfHxxTn1mdW5jdGlvbiBRTigpe3JldHVybi1NdS5kZWx0YVkqKDE9PT1NdS5kZWx0YU1vZGU/LjA1Ok11LmRlbHRhTW9kZT8xOi4wMDIpfWZ1bmN0aW9uIHRJKCl7cmV0dXJuIG5hdmlnYXRvci5tYXhUb3VjaFBvaW50c3x8Im9udG91Y2hzdGFydCJpbiB0aGlzfWZ1bmN0aW9uIGVJKHQsZSxuKXt2YXIgaT10LmludmVydFgoZVswXVswXSktblswXVswXSxyPXQuaW52ZXJ0WChlWzFdWzBdKS1uWzFdWzBdLG89dC5pbnZlcnRZKGVbMF1bMV0pLW5bMF1bMV0sYT10LmludmVydFkoZVsxXVsxXSktblsxXVsxXTtyZXR1cm4gdC50cmFuc2xhdGUocj5pPyhpK3IpLzI6TWF0aC5taW4oMCxpKXx8TWF0aC5tYXgoMCxyKSxhPm8/KG8rYSkvMjpNYXRoLm1pbigwLG8pfHxNYXRoLm1heCgwLGEpKX1mdW5jdGlvbiBuSSgpe3ZhciB0LGUsbj1LTixpPVpOLHI9ZUksbz1RTixhPXRJLHM9WzAsMS8wXSxsPVtbLTEvMCwtMS8wXSxbMS8wLDEvMF1dLGM9MjUwLHU9RXAsaD13Yygic3RhcnQiLCJ6b29tIiwiZW5kIiksZD01MDAscD0wO2Z1bmN0aW9uIGYodCl7dC5wcm9wZXJ0eSgiX196b29tIixKTikub24oIndoZWVsLnpvb20iLHgpLm9uKCJtb3VzZWRvd24uem9vbSIsdykub24oImRibGNsaWNrLnpvb20iLFMpLmZpbHRlcihhKS5vbigidG91Y2hzdGFydC56b29tIixNKS5vbigidG91Y2htb3ZlLnpvb20iLEUpLm9uKCJ0b3VjaGVuZC56b29tIHRvdWNoY2FuY2VsLnpvb20iLFQpLnN0eWxlKCJ0b3VjaC1hY3Rpb24iLCJub25lIikuc3R5bGUoIi13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvciIsInJnYmEoMCwwLDAsMCkiKX1mdW5jdGlvbiBtKHQsZSl7cmV0dXJuKGU9TWF0aC5tYXgoc1swXSxNYXRoLm1pbihzWzFdLGUpKSk9PT10Lms/dDpuZXcgV04oZSx0LngsdC55KX1mdW5jdGlvbiBnKHQsZSxuKXt2YXIgaT1lWzBdLW5bMF0qdC5rLHI9ZVsxXS1uWzFdKnQuaztyZXR1cm4gaT09PXQueCYmcj09PXQueT90Om5ldyBXTih0LmssaSxyKX1mdW5jdGlvbiBfKHQpe3JldHVyblsoK3RbMF1bMF0rICt0WzFdWzBdKS8yLCgrdFswXVsxXSsgK3RbMV1bMV0pLzJdfWZ1bmN0aW9uIHkodCxlLG4pe3Qub24oInN0YXJ0Lnpvb20iLChmdW5jdGlvbigpe3YodGhpcyxhcmd1bWVudHMpLnN0YXJ0KCl9KSkub24oImludGVycnVwdC56b29tIGVuZC56b29tIiwoZnVuY3Rpb24oKXt2KHRoaXMsYXJndW1lbnRzKS5lbmQoKX0pKS50d2Vlbigiem9vbSIsKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxyPWFyZ3VtZW50cyxvPXYodCxyKSxhPWkuYXBwbHkodCxyKSxzPW51bGw9PW4/XyhhKToiZnVuY3Rpb24iPT10eXBlb2Ygbj9uLmFwcGx5KHQscik6bixsPU1hdGgubWF4KGFbMV1bMF0tYVswXVswXSxhWzFdWzFdLWFbMF1bMV0pLGM9dC5fX3pvb20saD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lLmFwcGx5KHQscik6ZSxkPXUoYy5pbnZlcnQocykuY29uY2F0KGwvYy5rKSxoLmludmVydChzKS5jb25jYXQobC9oLmspKTtyZXR1cm4gZnVuY3Rpb24odCl7aWYoMT09PXQpdD1oO2Vsc2V7dmFyIGU9ZCh0KSxuPWwvZVsyXTt0PW5ldyBXTihuLHNbMF0tZVswXSpuLHNbMV0tZVsxXSpuKX1vLnpvb20obnVsbCx0KX19KSl9ZnVuY3Rpb24gdih0LGUsbil7cmV0dXJuIW4mJnQuX196b29taW5nfHxuZXcgYih0LGUpfWZ1bmN0aW9uIGIodCxlKXt0aGlzLnRoYXQ9dCx0aGlzLmFyZ3M9ZSx0aGlzLmFjdGl2ZT0wLHRoaXMuZXh0ZW50PWkuYXBwbHkodCxlKSx0aGlzLnRhcHM9MH1mdW5jdGlvbiB4KCl7aWYobi5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciB0PXYodGhpcyxhcmd1bWVudHMpLGU9dGhpcy5fX3pvb20saT1NYXRoLm1heChzWzBdLE1hdGgubWluKHNbMV0sZS5rKk1hdGgucG93KDIsby5hcHBseSh0aGlzLGFyZ3VtZW50cykpKSksYT1iaCh0aGlzKTtpZih0LndoZWVsKXQubW91c2VbMF1bMF09PT1hWzBdJiZ0Lm1vdXNlWzBdWzFdPT09YVsxXXx8KHQubW91c2VbMV09ZS5pbnZlcnQodC5tb3VzZVswXT1hKSksY2xlYXJUaW1lb3V0KHQud2hlZWwpO2Vsc2V7aWYoZS5rPT09aSlyZXR1cm47dC5tb3VzZT1bYSxlLmludmVydChhKV0sbGYodGhpcyksdC5zdGFydCgpfSROKCksdC53aGVlbD1zZXRUaW1lb3V0KGMsMTUwKSx0Lnpvb20oIm1vdXNlIixyKGcobShlLGkpLHQubW91c2VbMF0sdC5tb3VzZVsxXSksdC5leHRlbnQsbCkpfWZ1bmN0aW9uIGMoKXt0LndoZWVsPW51bGwsdC5lbmQoKX19ZnVuY3Rpb24gdygpe2lmKCFlJiZuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIHQ9dih0aGlzLGFyZ3VtZW50cywhMCksaT1EdShNdS52aWV3KS5vbigibW91c2Vtb3ZlLnpvb20iLGMsITApLm9uKCJtb3VzZXVwLnpvb20iLHUsITApLG89YmgodGhpcyksYT1NdS5jbGllbnRYLHM9TXUuY2xpZW50WTtFaChNdS52aWV3KSxYTigpLHQubW91c2U9W28sdGhpcy5fX3pvb20uaW52ZXJ0KG8pXSxsZih0aGlzKSx0LnN0YXJ0KCl9ZnVuY3Rpb24gYygpe2lmKCROKCksIXQubW92ZWQpe3ZhciBlPU11LmNsaWVudFgtYSxuPU11LmNsaWVudFktczt0Lm1vdmVkPWUqZStuKm4+cH10Lnpvb20oIm1vdXNlIixyKGcodC50aGF0Ll9fem9vbSx0Lm1vdXNlWzBdPWJoKHQudGhhdCksdC5tb3VzZVsxXSksdC5leHRlbnQsbCkpfWZ1bmN0aW9uIHUoKXtpLm9uKCJtb3VzZW1vdmUuem9vbSBtb3VzZXVwLnpvb20iLG51bGwpLFRoKE11LnZpZXcsdC5tb3ZlZCksJE4oKSx0LmVuZCgpfX1mdW5jdGlvbiBTKCl7aWYobi5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciB0PXRoaXMuX196b29tLGU9YmgodGhpcyksbz10LmludmVydChlKSxhPXQuayooTXUuc2hpZnRLZXk/LjU6Mikscz1yKGcobSh0LGEpLGUsbyksaS5hcHBseSh0aGlzLGFyZ3VtZW50cyksbCk7JE4oKSxjPjA/RHUodGhpcykudHJhbnNpdGlvbigpLmR1cmF0aW9uKGMpLmNhbGwoeSxzLGUpOkR1KHRoaXMpLmNhbGwoZi50cmFuc2Zvcm0scyl9fWZ1bmN0aW9uIE0oKXtpZihuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIGUsaSxyLG8sYT1NdS50b3VjaGVzLHM9YS5sZW5ndGgsbD12KHRoaXMsYXJndW1lbnRzLE11LmNoYW5nZWRUb3VjaGVzLmxlbmd0aD09PXMpO2ZvcihYTigpLGk9MDtpPHM7KytpKW89W289d2godGhpcyxhLChyPWFbaV0pLmlkZW50aWZpZXIpLHRoaXMuX196b29tLmludmVydChvKSxyLmlkZW50aWZpZXJdLGwudG91Y2gwP2wudG91Y2gxfHxsLnRvdWNoMFsyXT09PW9bMl18fChsLnRvdWNoMT1vLGwudGFwcz0wKToobC50b3VjaDA9byxlPSEwLGwudGFwcz0xKyEhdCk7dCYmKHQ9Y2xlYXJUaW1lb3V0KHQpKSxlJiYobC50YXBzPDImJih0PXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dD1udWxsfSksZCkpLGxmKHRoaXMpLGwuc3RhcnQoKSl9fWZ1bmN0aW9uIEUoKXtpZih0aGlzLl9fem9vbWluZyl7dmFyIGUsbixpLG8sYT12KHRoaXMsYXJndW1lbnRzKSxzPU11LmNoYW5nZWRUb3VjaGVzLGM9cy5sZW5ndGg7Zm9yKCROKCksdCYmKHQ9Y2xlYXJUaW1lb3V0KHQpKSxhLnRhcHM9MCxlPTA7ZTxjOysrZSlpPXdoKHRoaXMscywobj1zW2VdKS5pZGVudGlmaWVyKSxhLnRvdWNoMCYmYS50b3VjaDBbMl09PT1uLmlkZW50aWZpZXI/YS50b3VjaDBbMF09aTphLnRvdWNoMSYmYS50b3VjaDFbMl09PT1uLmlkZW50aWZpZXImJihhLnRvdWNoMVswXT1pKTtpZihuPWEudGhhdC5fX3pvb20sYS50b3VjaDEpe3ZhciB1PWEudG91Y2gwWzBdLGg9YS50b3VjaDBbMV0sZD1hLnRvdWNoMVswXSxwPWEudG91Y2gxWzFdLGY9KGY9ZFswXS11WzBdKSpmKyhmPWRbMV0tdVsxXSkqZixfPShfPXBbMF0taFswXSkqXysoXz1wWzFdLWhbMV0pKl87bj1tKG4sTWF0aC5zcXJ0KGYvXykpLGk9Wyh1WzBdK2RbMF0pLzIsKHVbMV0rZFsxXSkvMl0sbz1bKGhbMF0rcFswXSkvMiwoaFsxXStwWzFdKS8yXX1lbHNle2lmKCFhLnRvdWNoMClyZXR1cm47aT1hLnRvdWNoMFswXSxvPWEudG91Y2gwWzFdfWEuem9vbSgidG91Y2giLHIoZyhuLGksbyksYS5leHRlbnQsbCkpfX1mdW5jdGlvbiBUKCl7aWYodGhpcy5fX3pvb21pbmcpe3ZhciB0LG4saT12KHRoaXMsYXJndW1lbnRzKSxyPU11LmNoYW5nZWRUb3VjaGVzLG89ci5sZW5ndGg7Zm9yKFhOKCksZSYmY2xlYXJUaW1lb3V0KGUpLGU9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtlPW51bGx9KSxkKSx0PTA7dDxvOysrdCluPXJbdF0saS50b3VjaDAmJmkudG91Y2gwWzJdPT09bi5pZGVudGlmaWVyP2RlbGV0ZSBpLnRvdWNoMDppLnRvdWNoMSYmaS50b3VjaDFbMl09PT1uLmlkZW50aWZpZXImJmRlbGV0ZSBpLnRvdWNoMTtpZihpLnRvdWNoMSYmIWkudG91Y2gwJiYoaS50b3VjaDA9aS50b3VjaDEsZGVsZXRlIGkudG91Y2gxKSxpLnRvdWNoMClpLnRvdWNoMFsxXT10aGlzLl9fem9vbS5pbnZlcnQoaS50b3VjaDBbMF0pO2Vsc2UgaWYoaS5lbmQoKSwyPT09aS50YXBzKXt2YXIgYT1EdSh0aGlzKS5vbigiZGJsY2xpY2suem9vbSIpO2EmJmEuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19cmV0dXJuIGYudHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10LnNlbGVjdGlvbj90LnNlbGVjdGlvbigpOnQ7aS5wcm9wZXJ0eSgiX196b29tIixKTiksdCE9PWk/eSh0LGUsbik6aS5pbnRlcnJ1cHQoKS5lYWNoKChmdW5jdGlvbigpe3YodGhpcyxhcmd1bWVudHMpLnN0YXJ0KCkuem9vbShudWxsLCJmdW5jdGlvbiI9PXR5cGVvZiBlP2UuYXBwbHkodGhpcyxhcmd1bWVudHMpOmUpLmVuZCgpfSkpfSxmLnNjYWxlQnk9ZnVuY3Rpb24odCxlLG4pe2Yuc2NhbGVUbyh0LChmdW5jdGlvbigpe3ZhciB0PXRoaXMuX196b29tLmssbj0iZnVuY3Rpb24iPT10eXBlb2YgZT9lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTplO3JldHVybiB0Km59KSxuKX0sZi5zY2FsZVRvPWZ1bmN0aW9uKHQsZSxuKXtmLnRyYW5zZm9ybSh0LChmdW5jdGlvbigpe3ZhciB0PWkuYXBwbHkodGhpcyxhcmd1bWVudHMpLG89dGhpcy5fX3pvb20sYT1udWxsPT1uP18odCk6ImZ1bmN0aW9uIj09dHlwZW9mIG4/bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk6bixzPW8uaW52ZXJ0KGEpLGM9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6ZTtyZXR1cm4gcihnKG0obyxjKSxhLHMpLHQsbCl9KSxuKX0sZi50cmFuc2xhdGVCeT1mdW5jdGlvbih0LGUsbil7Zi50cmFuc2Zvcm0odCwoZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzLl9fem9vbS50cmFuc2xhdGUoImZ1bmN0aW9uIj09dHlwZW9mIGU/ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6ZSwiZnVuY3Rpb24iPT10eXBlb2Ygbj9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpuKSxpLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxsKX0pKX0sZi50cmFuc2xhdGVUbz1mdW5jdGlvbih0LGUsbixvKXtmLnRyYW5zZm9ybSh0LChmdW5jdGlvbigpe3ZhciB0PWkuYXBwbHkodGhpcyxhcmd1bWVudHMpLGE9dGhpcy5fX3pvb20scz1udWxsPT1vP18odCk6ImZ1bmN0aW9uIj09dHlwZW9mIG8/by5hcHBseSh0aGlzLGFyZ3VtZW50cyk6bztyZXR1cm4gcihxTi50cmFuc2xhdGUoc1swXSxzWzFdKS5zY2FsZShhLmspLnRyYW5zbGF0ZSgiZnVuY3Rpb24iPT10eXBlb2YgZT8tZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6LWUsImZ1bmN0aW9uIj09dHlwZW9mIG4/LW4uYXBwbHkodGhpcyxhcmd1bWVudHMpOi1uKSx0LGwpfSksbyl9LGIucHJvdG90eXBlPXtzdGFydDpmdW5jdGlvbigpe3JldHVybiAxPT0rK3RoaXMuYWN0aXZlJiYodGhpcy50aGF0Ll9fem9vbWluZz10aGlzLHRoaXMuZW1pdCgic3RhcnQiKSksdGhpc30sem9vbTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLm1vdXNlJiYibW91c2UiIT09dCYmKHRoaXMubW91c2VbMV09ZS5pbnZlcnQodGhpcy5tb3VzZVswXSkpLHRoaXMudG91Y2gwJiYidG91Y2giIT09dCYmKHRoaXMudG91Y2gwWzFdPWUuaW52ZXJ0KHRoaXMudG91Y2gwWzBdKSksdGhpcy50b3VjaDEmJiJ0b3VjaCIhPT10JiYodGhpcy50b3VjaDFbMV09ZS5pbnZlcnQodGhpcy50b3VjaDFbMF0pKSx0aGlzLnRoYXQuX196b29tPWUsdGhpcy5lbWl0KCJ6b29tIiksdGhpc30sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PS0tdGhpcy5hY3RpdmUmJihkZWxldGUgdGhpcy50aGF0Ll9fem9vbWluZyx0aGlzLmVtaXQoImVuZCIpKSx0aGlzfSxlbWl0OmZ1bmN0aW9uKHQpe0x1KG5ldyBHTihmLHQsdGhpcy50aGF0Ll9fem9vbSksaC5hcHBseSxoLFt0LHRoaXMudGhhdCx0aGlzLmFyZ3NdKX19LGYud2hlZWxEZWx0YT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmpOKCt0KSxmKTpvfSxmLmZpbHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmpOKCEhdCksZik6bn0sZi50b3VjaGFibGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpqTighIXQpLGYpOmF9LGYuZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6ak4oW1srdFswXVswXSwrdFswXVsxXV0sWyt0WzFdWzBdLCt0WzFdWzFdXV0pLGYpOml9LGYuc2NhbGVFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHNbMF09K3RbMF0sc1sxXT0rdFsxXSxmKTpbc1swXSxzWzFdXX0sZi50cmFuc2xhdGVFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGxbMF1bMF09K3RbMF1bMF0sbFsxXVswXT0rdFsxXVswXSxsWzBdWzFdPSt0WzBdWzFdLGxbMV1bMV09K3RbMV1bMV0sZik6W1tsWzBdWzBdLGxbMF1bMV1dLFtsWzFdWzBdLGxbMV1bMV1dXX0sZi5jb25zdHJhaW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxmKTpyfSxmLmR1cmF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPSt0LGYpOmN9LGYuaW50ZXJwb2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9dCxmKTp1fSxmLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9aC5vbi5hcHBseShoLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT1oP2Y6dH0sZi5jbGlja0Rpc3RhbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhwPSh0PSt0KSp0LGYpOk1hdGguc3FydChwKX0sZn1ZTi5wcm90b3R5cGU9V04ucHJvdG90eXBlO3ZhciBpST1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCx2ZXJzaW9uOiI1LjcuMCIsYmlzZWN0OkRsLGJpc2VjdFJpZ2h0OkRsLGJpc2VjdExlZnQ6QmwsYXNjZW5kaW5nOlJsLGJpc2VjdG9yOk9sLGNyb3NzOkZsLGRlc2NlbmRpbmc6ZnVuY3Rpb24gckkodCxlKXtyZXR1cm4gZTx0Py0xOmU+dD8xOmU+PXQ/MDpOYU59LGRldmlhdGlvbjpqbCxleHRlbnQ6R2wsaGlzdG9ncmFtOmZ1bmN0aW9uIG9JKCl7dmFyIHQ9JGwsZT1HbCxuPWljO2Z1bmN0aW9uIGkoaSl7dmFyIHIsbyxhPWkubGVuZ3RoLHM9bmV3IEFycmF5KGEpO2ZvcihyPTA7cjxhOysrcilzW3JdPXQoaVtyXSxyLGkpO3ZhciBsPWUocyksYz1sWzBdLHU9bFsxXSxoPW4ocyxjLHUpO0FycmF5LmlzQXJyYXkoaCl8fChoPW5jKGMsdSxoKSxoPUtsKE1hdGguY2VpbChjL2gpKmgsdSxoKSk7Zm9yKHZhciBkPWgubGVuZ3RoO2hbMF08PWM7KWguc2hpZnQoKSwtLWQ7Zm9yKDtoW2QtMV0+dTspaC5wb3AoKSwtLWQ7dmFyIHAsZj1uZXcgQXJyYXkoZCsxKTtmb3Iocj0wO3I8PWQ7KytyKShwPWZbcl09W10pLngwPXI+MD9oW3ItMV06YyxwLngxPXI8ZD9oW3JdOnU7Zm9yKHI9MDtyPGE7KytyKWM8PShvPXNbcl0pJiZvPD11JiZmW0RsKGgsbywwLGQpXS5wdXNoKGlbcl0pO3JldHVybiBmfXJldHVybiBpLnZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6WGwoZSksaSk6dH0saS5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpYbChbdFswXSx0WzFdXSksaSk6ZX0saS50aHJlc2hvbGRzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6QXJyYXkuaXNBcnJheSh0KT9YbChxbC5jYWxsKHQpKTpYbCh0KSxpKTpufSxpfSx0aHJlc2hvbGRGcmVlZG1hbkRpYWNvbmlzOmZ1bmN0aW9uIGFJKHQsZSxuKXtyZXR1cm4gdD1ZbC5jYWxsKHQsVmwpLnNvcnQoUmwpLE1hdGguY2VpbCgobi1lKS8oMioocmModCwuNzUpLXJjKHQsLjI1KSkqTWF0aC5wb3codC5sZW5ndGgsLTEvMykpKX0sdGhyZXNob2xkU2NvdHQ6ZnVuY3Rpb24gc0kodCxlLG4pe3JldHVybiBNYXRoLmNlaWwoKG4tZSkvKDMuNSpqbCh0KSpNYXRoLnBvdyh0Lmxlbmd0aCwtMS8zKSkpfSx0aHJlc2hvbGRTdHVyZ2VzOmljLG1heDpvYyxtZWFuOmZ1bmN0aW9uIGxJKHQsZSl7dmFyIG4saT10Lmxlbmd0aCxyPWksbz0tMSxhPTA7aWYobnVsbD09ZSlmb3IoOysrbzxpOylpc05hTihuPVZsKHRbb10pKT8tLXI6YSs9bjtlbHNlIGZvcig7KytvPGk7KWlzTmFOKG49VmwoZSh0W29dLG8sdCkpKT8tLXI6YSs9bjtpZihyKXJldHVybiBhL3J9LG1lZGlhbjpmdW5jdGlvbiBjSSh0LGUpe3ZhciBuLGk9dC5sZW5ndGgscj0tMSxvPVtdO2lmKG51bGw9PWUpZm9yKDsrK3I8aTspaXNOYU4obj1WbCh0W3JdKSl8fG8ucHVzaChuKTtlbHNlIGZvcig7KytyPGk7KWlzTmFOKG49VmwoZSh0W3JdLHIsdCkpKXx8by5wdXNoKG4pO3JldHVybiByYyhvLnNvcnQoUmwpLC41KX0sbWVyZ2U6YWMsbWluOnNjLHBhaXJzOmZ1bmN0aW9uIHVJKHQsZSl7bnVsbD09ZSYmKGU9SGwpO2Zvcih2YXIgbj0wLGk9dC5sZW5ndGgtMSxyPXRbMF0sbz1uZXcgQXJyYXkoaTwwPzA6aSk7bjxpOylvW25dPWUocixyPXRbKytuXSk7cmV0dXJuIG99LHBlcm11dGU6ZnVuY3Rpb24gaEkodCxlKXtmb3IodmFyIG49ZS5sZW5ndGgsaT1uZXcgQXJyYXkobik7bi0tOylpW25dPXRbZVtuXV07cmV0dXJuIGl9LHF1YW50aWxlOnJjLHJhbmdlOktsLHNjYW46ZnVuY3Rpb24gZEkodCxlKXtpZihuPXQubGVuZ3RoKXt2YXIgbixpLHI9MCxvPTAsYT10W29dO2ZvcihudWxsPT1lJiYoZT1SbCk7KytyPG47KShlKGk9dFtyXSxhKTwwfHwwIT09ZShhLGEpKSYmKGE9aSxvPXIpO3JldHVybiAwPT09ZShhLGEpP286dm9pZCAwfX0sc2h1ZmZsZTpmdW5jdGlvbiBwSSh0LGUsbil7Zm9yKHZhciBpLHIsbz0obnVsbD09bj90Lmxlbmd0aDpuKS0oZT1udWxsPT1lPzA6K2UpO287KXI9TWF0aC5yYW5kb20oKSpvLS18MCxpPXRbbytlXSx0W28rZV09dFtyK2VdLHRbcitlXT1pO3JldHVybiB0fSxzdW06ZnVuY3Rpb24gZkkodCxlKXt2YXIgbixpPXQubGVuZ3RoLHI9LTEsbz0wO2lmKG51bGw9PWUpZm9yKDsrK3I8aTspKG49K3Rbcl0pJiYobys9bik7ZWxzZSBmb3IoOysrcjxpOykobj0rZSh0W3JdLHIsdCkpJiYobys9bik7cmV0dXJuIG99LHRpY2tzOnRjLHRpY2tJbmNyZW1lbnQ6ZWMsdGlja1N0ZXA6bmMsdHJhbnNwb3NlOmxjLHZhcmlhbmNlOlVsLHppcDpmdW5jdGlvbiBtSSgpe3JldHVybiBsYyhhcmd1bWVudHMpfSxheGlzVG9wOmZ1bmN0aW9uIGdJKHQpe3JldHVybiB5YygxLHQpfSxheGlzUmlnaHQ6ZnVuY3Rpb24gX0kodCl7cmV0dXJuIHljKDIsdCl9LGF4aXNCb3R0b206dmMsYXhpc0xlZnQ6YmMsYnJ1c2g6dmcsYnJ1c2hYOmZ1bmN0aW9uIHlJKCl7cmV0dXJuIGJnKGlnKX0sYnJ1c2hZOnlnLGJydXNoU2VsZWN0aW9uOl9nLGNob3JkOmZ1bmN0aW9uIHZJKCl7dmFyIHQ9MCxlPW51bGwsbj1udWxsLGk9bnVsbDtmdW5jdGlvbiByKHIpe3ZhciBvLGEscyxsLGMsdSxoPXIubGVuZ3RoLGQ9W10scD1LbChoKSxmPVtdLG09W10sZz1tLmdyb3Vwcz1uZXcgQXJyYXkoaCksXz1uZXcgQXJyYXkoaCpoKTtmb3Iobz0wLGM9LTE7KytjPGg7KXtmb3IoYT0wLHU9LTE7Kyt1PGg7KWErPXJbY11bdV07ZC5wdXNoKGEpLGYucHVzaChLbChoKSksbys9YX1mb3IoZSYmcC5zb3J0KChmdW5jdGlvbih0LG4pe3JldHVybiBlKGRbdF0sZFtuXSl9KSksbiYmZi5mb3JFYWNoKChmdW5jdGlvbih0LGUpe3Quc29ydCgoZnVuY3Rpb24odCxpKXtyZXR1cm4gbihyW2VdW3RdLHJbZV1baV0pfSkpfSkpLGw9KG89VGcoMCxFZy10KmgpL28pP3Q6RWcvaCxhPTAsYz0tMTsrK2M8aDspe2ZvcihzPWEsdT0tMTsrK3U8aDspe3ZhciB5PXBbY10sdj1mW3ldW3VdLGI9clt5XVt2XSx4PWEsdz1hKz1iKm87X1t2KmgreV09e2luZGV4Onksc3ViaW5kZXg6dixzdGFydEFuZ2xlOngsZW5kQW5nbGU6dyx2YWx1ZTpifX1nW3ldPXtpbmRleDp5LHN0YXJ0QW5nbGU6cyxlbmRBbmdsZTphLHZhbHVlOmRbeV19LGErPWx9Zm9yKGM9LTE7KytjPGg7KWZvcih1PWMtMTsrK3U8aDspe3ZhciBTPV9bdSpoK2NdLE09X1tjKmgrdV07KFMudmFsdWV8fE0udmFsdWUpJiZtLnB1c2goUy52YWx1ZTxNLnZhbHVlP3tzb3VyY2U6TSx0YXJnZXQ6U306e3NvdXJjZTpTLHRhcmdldDpNfSl9cmV0dXJuIGk/bS5zb3J0KGkpOm19cmV0dXJuIHIucGFkQW5nbGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9VGcoMCxlKSxyKTp0fSxyLnNvcnRHcm91cHM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxyKTplfSxyLnNvcnRTdWJncm91cHM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCxyKTpufSxyLnNvcnRDaG9yZHM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PXQ/aT1udWxsOihpPUNnKHQpKS5fPXQscik6aSYmaS5ffSxyfSxyaWJib246ZnVuY3Rpb24gYkkoKXt2YXIgdD16ZyxlPURnLG49QmcsaT1IZyxyPUZnLG89bnVsbDtmdW5jdGlvbiBhKCl7dmFyIGEscz1BZy5jYWxsKGFyZ3VtZW50cyksbD10LmFwcGx5KHRoaXMscyksYz1lLmFwcGx5KHRoaXMscyksdT0rbi5hcHBseSh0aGlzLChzWzBdPWwscykpLGg9aS5hcHBseSh0aGlzLHMpLU1nLGQ9ci5hcHBseSh0aGlzLHMpLU1nLHA9dSp4ZyhoKSxmPXUqd2coaCksbT0rbi5hcHBseSh0aGlzLChzWzBdPWMscykpLGc9aS5hcHBseSh0aGlzLHMpLU1nLF89ci5hcHBseSh0aGlzLHMpLU1nO2lmKG98fChvPWE9T2coKSksby5tb3ZlVG8ocCxmKSxvLmFyYygwLDAsdSxoLGQpLGg9PT1nJiZkPT09X3x8KG8ucXVhZHJhdGljQ3VydmVUbygwLDAsbSp4ZyhnKSxtKndnKGcpKSxvLmFyYygwLDAsbSxnLF8pKSxvLnF1YWRyYXRpY0N1cnZlVG8oMCwwLHAsZiksby5jbG9zZVBhdGgoKSxhKXJldHVybiBvPW51bGwsYSsiInx8bnVsbH1yZXR1cm4gYS5yYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDprZygrdCksYSk6bn0sYS5zdGFydEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6a2coK3QpLGEpOml9LGEuZW5kQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDprZygrdCksYSk6cn0sYS5zb3VyY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZSxhKTp0fSxhLnRhcmdldD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LGEpOmV9LGEuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1udWxsPT10P251bGw6dCxhKTpvfSxhfSxuZXN0OmZ1bmN0aW9uIHhJKCl7dmFyIHQsZSxuLGk9W10scj1bXTtmdW5jdGlvbiBvKG4scixhLHMpe2lmKHI+PWkubGVuZ3RoKXJldHVybiBudWxsIT10JiZuLnNvcnQodCksbnVsbCE9ZT9lKG4pOm47Zm9yKHZhciBsLGMsdSxoPS0xLGQ9bi5sZW5ndGgscD1pW3IrK10sZj1qZygpLG09YSgpOysraDxkOykodT1mLmdldChsPXAoYz1uW2hdKSsiIikpP3UucHVzaChjKTpmLnNldChsLFtjXSk7cmV0dXJuIGYuZWFjaCgoZnVuY3Rpb24odCxlKXtzKG0sZSxvKHQscixhLHMpKX0pKSxtfWZ1bmN0aW9uIGEodCxuKXtpZigrK24+aS5sZW5ndGgpcmV0dXJuIHQ7dmFyIG8scz1yW24tMV07cmV0dXJuIG51bGwhPWUmJm4+PWkubGVuZ3RoP289dC5lbnRyaWVzKCk6KG89W10sdC5lYWNoKChmdW5jdGlvbih0LGUpe28ucHVzaCh7a2V5OmUsdmFsdWVzOmEodCxuKX0pfSkpKSxudWxsIT1zP28uc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gcyh0LmtleSxlLmtleSl9KSk6b31yZXR1cm4gbj17b2JqZWN0OmZ1bmN0aW9uKHQpe3JldHVybiBvKHQsMCxHZyxXZyl9LG1hcDpmdW5jdGlvbih0KXtyZXR1cm4gbyh0LDAscWcsWWcpfSxlbnRyaWVzOmZ1bmN0aW9uKHQpe3JldHVybiBhKG8odCwwLHFnLFlnKSwwKX0sa2V5OmZ1bmN0aW9uKHQpe3JldHVybiBpLnB1c2godCksbn0sc29ydEtleXM6ZnVuY3Rpb24odCl7cmV0dXJuIHJbaS5sZW5ndGgtMV09dCxufSxzb3J0VmFsdWVzOmZ1bmN0aW9uKGUpe3JldHVybiB0PWUsbn0scm9sbHVwOmZ1bmN0aW9uKHQpe3JldHVybiBlPXQsbn19fSxzZXQ6S2csbWFwOmpnLGtleXM6WmcsdmFsdWVzOmZ1bmN0aW9uIHdJKHQpe3ZhciBlPVtdO2Zvcih2YXIgbiBpbiB0KWUucHVzaCh0W25dKTtyZXR1cm4gZX0sZW50cmllczpmdW5jdGlvbiBTSSh0KXt2YXIgZT1bXTtmb3IodmFyIG4gaW4gdCllLnB1c2goe2tleTpuLHZhbHVlOnRbbl19KTtyZXR1cm4gZX0sY29sb3I6SmgscmdiOm5kLGhzbDpjZCxsYWI6eGQsaGNsOkFkLGxjaDpmdW5jdGlvbiBNSSh0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/Q2QodCk6bmV3IGtkKG4sZSx0LG51bGw9PWk/MTppKX0sZ3JheTpmdW5jdGlvbiBFSSh0LGUpe3JldHVybiBuZXcgd2QodCwwLDAsbnVsbD09ZT8xOmUpfSxjdWJlaGVsaXg6RmQsY29udG91cnM6YV8sY29udG91ckRlbnNpdHk6ZnVuY3Rpb24gVEkoKXt2YXIgdD1jXyxlPXVfLG49aF8saT05NjAscj01MDAsbz0yMCxhPTIscz0zKm8sbD1pKzIqcz4+YSxjPXIrMipzPj5hLHU9dF8oMjApO2Z1bmN0aW9uIGgoaSl7dmFyIHI9bmV3IEZsb2F0MzJBcnJheShsKmMpLGg9bmV3IEZsb2F0MzJBcnJheShsKmMpO2kuZm9yRWFjaCgoZnVuY3Rpb24oaSxvLHUpe3ZhciBoPSt0KGksbyx1KStzPj5hLGQ9K2UoaSxvLHUpK3M+PmEscD0rbihpLG8sdSk7aD49MCYmaDxsJiZkPj0wJiZkPGMmJihyW2grZCpsXSs9cCl9KSksc18oe3dpZHRoOmwsaGVpZ2h0OmMsZGF0YTpyfSx7d2lkdGg6bCxoZWlnaHQ6YyxkYXRhOmh9LG8+PmEpLGxfKHt3aWR0aDpsLGhlaWdodDpjLGRhdGE6aH0se3dpZHRoOmwsaGVpZ2h0OmMsZGF0YTpyfSxvPj5hKSxzXyh7d2lkdGg6bCxoZWlnaHQ6YyxkYXRhOnJ9LHt3aWR0aDpsLGhlaWdodDpjLGRhdGE6aH0sbz4+YSksbF8oe3dpZHRoOmwsaGVpZ2h0OmMsZGF0YTpofSx7d2lkdGg6bCxoZWlnaHQ6YyxkYXRhOnJ9LG8+PmEpLHNfKHt3aWR0aDpsLGhlaWdodDpjLGRhdGE6cn0se3dpZHRoOmwsaGVpZ2h0OmMsZGF0YTpofSxvPj5hKSxsXyh7d2lkdGg6bCxoZWlnaHQ6YyxkYXRhOmh9LHt3aWR0aDpsLGhlaWdodDpjLGRhdGE6cn0sbz4+YSk7dmFyIHA9dShyKTtpZighQXJyYXkuaXNBcnJheShwKSl7dmFyIGY9b2Mocik7cD1uYygwLGYscCksKHA9S2woMCxNYXRoLmZsb29yKGYvcCkqcCxwKSkuc2hpZnQoKX1yZXR1cm4gYV8oKS50aHJlc2hvbGRzKHApLnNpemUoW2wsY10pKHIpLm1hcChkKX1mdW5jdGlvbiBkKHQpe3JldHVybiB0LnZhbHVlKj1NYXRoLnBvdygyLC0yKmEpLHQuY29vcmRpbmF0ZXMuZm9yRWFjaChwKSx0fWZ1bmN0aW9uIHAodCl7dC5mb3JFYWNoKGYpfWZ1bmN0aW9uIGYodCl7dC5mb3JFYWNoKG0pfWZ1bmN0aW9uIG0odCl7dFswXT10WzBdKk1hdGgucG93KDIsYSktcyx0WzFdPXRbMV0qTWF0aC5wb3coMixhKS1zfWZ1bmN0aW9uIGcoKXtyZXR1cm4gbD1pKzIqKHM9MypvKT4+YSxjPXIrMipzPj5hLGh9cmV0dXJuIGgueD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOnRfKCtlKSxoKTp0fSxoLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDp0XygrdCksaCk6ZX0saC53ZWlnaHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDp0XygrdCksaCk6bn0saC5zaXplPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybltpLHJdO3ZhciBlPU1hdGguY2VpbCh0WzBdKSxuPU1hdGguY2VpbCh0WzFdKTtpZighKGU+PTB8fGU+PTApKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBzaXplIik7cmV0dXJuIGk9ZSxyPW4sZygpfSxoLmNlbGxTaXplPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiAxPDxhO2lmKCEoKHQ9K3QpPj0xKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2VsbCBzaXplIik7cmV0dXJuIGE9TWF0aC5mbG9vcihNYXRoLmxvZyh0KS9NYXRoLkxOMiksZygpfSxoLnRocmVzaG9sZHM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpBcnJheS5pc0FycmF5KHQpP3RfKEpnLmNhbGwodCkpOnRfKHQpLGgpOnV9LGguYmFuZHdpZHRoPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBNYXRoLnNxcnQobyoobysxKSk7aWYoISgodD0rdCk+PTApKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBiYW5kd2lkdGgiKTtyZXR1cm4gbz1NYXRoLnJvdW5kKChNYXRoLnNxcnQoNCp0KnQrMSktMSkvMiksZygpfSxofSxkaXNwYXRjaDp3YyxkcmFnOkloLGRyYWdEaXNhYmxlOkVoLGRyYWdFbmFibGU6VGgsZHN2Rm9ybWF0OnlfLGNzdlBhcnNlOmJfLGNzdlBhcnNlUm93czp4Xyxjc3ZGb3JtYXQ6d18sY3N2Rm9ybWF0Qm9keTpTXyxjc3ZGb3JtYXRSb3dzOk1fLGNzdkZvcm1hdFJvdzpFXyxjc3ZGb3JtYXRWYWx1ZTpUXyx0c3ZQYXJzZTpBXyx0c3ZQYXJzZVJvd3M6a18sdHN2Rm9ybWF0OkxfLHRzdkZvcm1hdEJvZHk6UF8sdHN2Rm9ybWF0Um93czpOXyx0c3ZGb3JtYXRSb3c6SV8sdHN2Rm9ybWF0VmFsdWU6Ul8sYXV0b1R5cGU6ZnVuY3Rpb24gQ0kodCl7Zm9yKHZhciBlIGluIHQpe3ZhciBuLGkscj10W2VdLnRyaW0oKTtpZihyKWlmKCJ0cnVlIj09PXIpcj0hMDtlbHNlIGlmKCJmYWxzZSI9PT1yKXI9ITE7ZWxzZSBpZigiTmFOIj09PXIpcj1OYU47ZWxzZSBpZihpc05hTihuPStyKSl7aWYoIShpPXIubWF0Y2goL14oWy0rXVxkezJ9KT9cZHs0fSgtXGR7Mn0oLVxkezJ9KT8pPyhUXGR7Mn06XGR7Mn0oOlxkezJ9KFwuXGR7M30pPyk/KFp8Wy0rXVxkezJ9OlxkezJ9KT8pPyQvKSkpY29udGludWU7T18mJmlbNF0mJiFpWzddJiYocj1yLnJlcGxhY2UoLy0vZywiLyIpLnJlcGxhY2UoL1QvLCIgIikpLHI9bmV3IERhdGUocil9ZWxzZSByPW47ZWxzZSByPW51bGw7dFtlXT1yfXJldHVybiB0fSxlYXNlTGluZWFyOkZmLGVhc2VRdWFkOmpmLGVhc2VRdWFkSW46VmYsZWFzZVF1YWRPdXQ6VWYsZWFzZVF1YWRJbk91dDpqZixlYXNlQ3ViaWM6cWYsZWFzZUN1YmljSW46R2YsZWFzZUN1YmljT3V0OldmLGVhc2VDdWJpY0luT3V0OnFmLGVhc2VQb2x5OmZtLGVhc2VQb2x5SW46ZG0sZWFzZVBvbHlPdXQ6cG0sZWFzZVBvbHlJbk91dDpmbSxlYXNlU2luOnZtLGVhc2VTaW5JbjpfbSxlYXNlU2luT3V0OnltLGVhc2VTaW5Jbk91dDp2bSxlYXNlRXhwOlNtLGVhc2VFeHBJbjp4bSxlYXNlRXhwT3V0OndtLGVhc2VFeHBJbk91dDpTbSxlYXNlQ2lyY2xlOlRtLGVhc2VDaXJjbGVJbjpNbSxlYXNlQ2lyY2xlT3V0OkVtLGVhc2VDaXJjbGVJbk91dDpUbSxlYXNlQm91bmNlOkxtLGVhc2VCb3VuY2VJbjprbSxlYXNlQm91bmNlT3V0OkxtLGVhc2VCb3VuY2VJbk91dDpQbSxlYXNlQmFjazpPbSxlYXNlQmFja0luOkltLGVhc2VCYWNrT3V0OlJtLGVhc2VCYWNrSW5PdXQ6T20sZWFzZUVsYXN0aWM6Qm0sZWFzZUVsYXN0aWNJbjpEbSxlYXNlRWxhc3RpY091dDpCbSxlYXNlRWxhc3RpY0luT3V0OkhtLGJsb2I6ZnVuY3Rpb24gQUkodCxlKXtyZXR1cm4gZmV0Y2godCxlKS50aGVuKHpfKX0sYnVmZmVyOmZ1bmN0aW9uIGtJKHQsZSl7cmV0dXJuIGZldGNoKHQsZSkudGhlbihEXyl9LGRzdjpmdW5jdGlvbiBMSSh0LGUsbixpKXszPT09YXJndW1lbnRzLmxlbmd0aCYmImZ1bmN0aW9uIj09dHlwZW9mIG4mJihpPW4sbj12b2lkIDApO3ZhciByPXlfKHQpO3JldHVybiBIXyhlLG4pLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiByLnBhcnNlKHQsaSl9KSl9LGNzdjpWXyx0c3Y6VV8saW1hZ2U6ZnVuY3Rpb24gUEkodCxlKXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKG4saSl7dmFyIHI9bmV3IEltYWdlO2Zvcih2YXIgbyBpbiBlKXJbb109ZVtvXTtyLm9uZXJyb3I9aSxyLm9ubG9hZD1mdW5jdGlvbigpe24ocil9LHIuc3JjPXR9KSl9LGpzb246ZnVuY3Rpb24gTkkodCxlKXtyZXR1cm4gZmV0Y2godCxlKS50aGVuKGpfKX0sdGV4dDpIXyx4bWw6V18saHRtbDpxXyxzdmc6WV8sZm9yY2VDZW50ZXI6ZnVuY3Rpb24gSUkodCxlKXt2YXIgbjtmdW5jdGlvbiBpKCl7dmFyIGkscixvPW4ubGVuZ3RoLGE9MCxzPTA7Zm9yKGk9MDtpPG87KytpKWErPShyPW5baV0pLngscys9ci55O2ZvcihhPWEvby10LHM9cy9vLWUsaT0wO2k8bzsrK2kpKHI9bltpXSkueC09YSxyLnktPXN9cmV0dXJuIG51bGw9PXQmJih0PTApLG51bGw9PWUmJihlPTApLGkuaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtuPXR9LGkueD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rZSxpKTp0fSxpLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3QsaSk6ZX0saX0sZm9yY2VDb2xsaWRlOmZ1bmN0aW9uIFJJKHQpe3ZhciBlLG4saT0xLHI9MTtmdW5jdGlvbiBvKCl7Zm9yKHZhciB0LG8scyxsLGMsdSxoLGQ9ZS5sZW5ndGgscD0wO3A8cjsrK3ApZm9yKG89dHkoZSxyeSxveSkudmlzaXRBZnRlcihhKSx0PTA7dDxkOysrdCloPSh1PW5bKHM9ZVt0XSkuaW5kZXhdKSp1LGw9cy54K3MudngsYz1zLnkrcy52eSxvLnZpc2l0KGYpO2Z1bmN0aW9uIGYodCxlLG4scixvKXt2YXIgYT10LmRhdGEsZD10LnIscD11K2Q7aWYoIWEpcmV0dXJuIGU+bCtwfHxyPGwtcHx8bj5jK3B8fG88Yy1wO2lmKGEuaW5kZXg+cy5pbmRleCl7dmFyIGY9bC1hLngtYS52eCxtPWMtYS55LWEudnksZz1mKmYrbSptO2c8cCpwJiYoMD09PWYmJihnKz0oZj0kXygpKSpmKSwwPT09bSYmKGcrPShtPSRfKCkpKm0pLGc9KHAtKGc9TWF0aC5zcXJ0KGcpKSkvZyppLHMudngrPShmKj1nKSoocD0oZCo9ZCkvKGgrZCkpLHMudnkrPShtKj1nKSpwLGEudngtPWYqKHA9MS1wKSxhLnZ5LT1tKnApfX19ZnVuY3Rpb24gYSh0KXtpZih0LmRhdGEpcmV0dXJuIHQucj1uW3QuZGF0YS5pbmRleF07Zm9yKHZhciBlPXQucj0wO2U8NDsrK2UpdFtlXSYmdFtlXS5yPnQuciYmKHQucj10W2VdLnIpfWZ1bmN0aW9uIHMoKXtpZihlKXt2YXIgaSxyLG89ZS5sZW5ndGg7Zm9yKG49bmV3IEFycmF5KG8pLGk9MDtpPG87KytpKW5bKHI9ZVtpXSkuaW5kZXhdPSt0KHIsaSxlKX19cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PVhfKG51bGw9PXQ/MTordCkpLG8uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtlPXQscygpfSxvLml0ZXJhdGlvbnM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9K3Qsbyk6cn0sby5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0rdCxvKTppfSxvLnJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOlhfKCtlKSxzKCksbyk6dH0sb30sZm9yY2VMaW5rOmZ1bmN0aW9uIE9JKHQpe3ZhciBlLG4saSxyLG8sYT1heSxzPWZ1bmN0aW9uIGwodCl7cmV0dXJuIDEvTWF0aC5taW4oclt0LnNvdXJjZS5pbmRleF0sclt0LnRhcmdldC5pbmRleF0pfSxjPVhfKDMwKSx1PTE7ZnVuY3Rpb24gaChpKXtmb3IodmFyIHI9MCxhPXQubGVuZ3RoO3I8dTsrK3IpZm9yKHZhciBzLGwsYyxoLGQscCxmLG09MDttPGE7KyttKWg9KGM9KHM9dFttXSkudGFyZ2V0KS54K2MudngtKGw9cy5zb3VyY2UpLngtbC52eHx8JF8oKSxkPWMueStjLnZ5LWwueS1sLnZ5fHwkXygpLGQqPXA9KChwPU1hdGguc3FydChoKmgrZCpkKSktblttXSkvcCppKmVbbV0sYy52eC09KGgqPXApKihmPW9bbV0pLGMudnktPWQqZixsLnZ4Kz1oKihmPTEtZiksbC52eSs9ZCpmfWZ1bmN0aW9uIGQoKXtpZihpKXt2YXIgcyxsLGM9aS5sZW5ndGgsdT10Lmxlbmd0aCxoPWpnKGksYSk7Zm9yKHM9MCxyPW5ldyBBcnJheShjKTtzPHU7KytzKShsPXRbc10pLmluZGV4PXMsIm9iamVjdCIhPXR5cGVvZiBsLnNvdXJjZSYmKGwuc291cmNlPXN5KGgsbC5zb3VyY2UpKSwib2JqZWN0IiE9dHlwZW9mIGwudGFyZ2V0JiYobC50YXJnZXQ9c3koaCxsLnRhcmdldCkpLHJbbC5zb3VyY2UuaW5kZXhdPShyW2wuc291cmNlLmluZGV4XXx8MCkrMSxyW2wudGFyZ2V0LmluZGV4XT0ocltsLnRhcmdldC5pbmRleF18fDApKzE7Zm9yKHM9MCxvPW5ldyBBcnJheSh1KTtzPHU7KytzKW9bc109clsobD10W3NdKS5zb3VyY2UuaW5kZXhdLyhyW2wuc291cmNlLmluZGV4XStyW2wudGFyZ2V0LmluZGV4XSk7ZT1uZXcgQXJyYXkodSkscCgpLG49bmV3IEFycmF5KHUpLGYoKX19ZnVuY3Rpb24gcCgpe2lmKGkpZm9yKHZhciBuPTAscj10Lmxlbmd0aDtuPHI7KytuKWVbbl09K3ModFtuXSxuLHQpfWZ1bmN0aW9uIGYoKXtpZihpKWZvcih2YXIgZT0wLHI9dC5sZW5ndGg7ZTxyOysrZSluW2VdPStjKHRbZV0sZSx0KX1yZXR1cm4gbnVsbD09dCYmKHQ9W10pLGguaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtpPXQsZCgpfSxoLmxpbmtzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWUsZCgpLGgpOnR9LGguaWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9dCxoKTphfSxoLml0ZXJhdGlvbnM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9K3QsaCk6dX0saC5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlhfKCt0KSxwKCksaCk6c30saC5kaXN0YW5jZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlhfKCt0KSxmKCksaCk6Y30saH0sZm9yY2VNYW55Qm9keTpmdW5jdGlvbiB6SSgpe3ZhciB0LGUsbixpLHI9WF8oLTMwKSxvPTEsYT0xLzAscz0uODE7ZnVuY3Rpb24gbChpKXt2YXIgcixvPXQubGVuZ3RoLGE9dHkodCxseSxjeSkudmlzaXRBZnRlcih1KTtmb3Iobj1pLHI9MDtyPG87KytyKWU9dFtyXSxhLnZpc2l0KGgpfWZ1bmN0aW9uIGMoKXtpZih0KXt2YXIgZSxuLG89dC5sZW5ndGg7Zm9yKGk9bmV3IEFycmF5KG8pLGU9MDtlPG87KytlKWlbKG49dFtlXSkuaW5kZXhdPStyKG4sZSx0KX19ZnVuY3Rpb24gdSh0KXt2YXIgZSxuLHIsbyxhLHM9MCxsPTA7aWYodC5sZW5ndGgpe2ZvcihyPW89YT0wO2E8NDsrK2EpKGU9dFthXSkmJihuPU1hdGguYWJzKGUudmFsdWUpKSYmKHMrPWUudmFsdWUsbCs9bixyKz1uKmUueCxvKz1uKmUueSk7dC54PXIvbCx0Lnk9by9sfWVsc2V7KGU9dCkueD1lLmRhdGEueCxlLnk9ZS5kYXRhLnk7ZG97cys9aVtlLmRhdGEuaW5kZXhdfXdoaWxlKGU9ZS5uZXh0KX10LnZhbHVlPXN9ZnVuY3Rpb24gaCh0LHIsbCxjKXtpZighdC52YWx1ZSlyZXR1cm4hMDt2YXIgdT10LngtZS54LGg9dC55LWUueSxkPWMtcixwPXUqdStoKmg7aWYoZCpkL3M8cClyZXR1cm4gcDxhJiYoMD09PXUmJihwKz0odT0kXygpKSp1KSwwPT09aCYmKHArPShoPSRfKCkpKmgpLHA8byYmKHA9TWF0aC5zcXJ0KG8qcCkpLGUudngrPXUqdC52YWx1ZSpuL3AsZS52eSs9aCp0LnZhbHVlKm4vcCksITA7aWYoISh0Lmxlbmd0aHx8cD49YSkpeyh0LmRhdGEhPT1lfHx0Lm5leHQpJiYoMD09PXUmJihwKz0odT0kXygpKSp1KSwwPT09aCYmKHArPShoPSRfKCkpKmgpLHA8byYmKHA9TWF0aC5zcXJ0KG8qcCkpKTtkb3t0LmRhdGEhPT1lJiYoZS52eCs9dSooZD1pW3QuZGF0YS5pbmRleF0qbi9wKSxlLnZ5Kz1oKmQpfXdoaWxlKHQ9dC5uZXh0KX19cmV0dXJuIGwuaW5pdGlhbGl6ZT1mdW5jdGlvbihlKXt0PWUsYygpfSxsLnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6WF8oK3QpLGMoKSxsKTpyfSxsLmRpc3RhbmNlTWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPXQqdCxsKTpNYXRoLnNxcnQobyl9LGwuZGlzdGFuY2VNYXg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9dCp0LGwpOk1hdGguc3FydChhKX0sbC50aGV0YT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz10KnQsbCk6TWF0aC5zcXJ0KHMpfSxsfSxmb3JjZVJhZGlhbDpmdW5jdGlvbiBESSh0LGUsbil7dmFyIGkscixvLGE9WF8oLjEpO2Z1bmN0aW9uIHModCl7Zm9yKHZhciBhPTAscz1pLmxlbmd0aDthPHM7KythKXt2YXIgbD1pW2FdLGM9bC54LWV8fDFlLTYsdT1sLnktbnx8MWUtNixoPU1hdGguc3FydChjKmMrdSp1KSxkPShvW2FdLWgpKnJbYV0qdC9oO2wudngrPWMqZCxsLnZ5Kz11KmR9fWZ1bmN0aW9uIGwoKXtpZihpKXt2YXIgZSxuPWkubGVuZ3RoO2ZvcihyPW5ldyBBcnJheShuKSxvPW5ldyBBcnJheShuKSxlPTA7ZTxuOysrZSlvW2VdPSt0KGlbZV0sZSxpKSxyW2VdPWlzTmFOKG9bZV0pPzA6K2EoaVtlXSxlLGkpfX1yZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9WF8oK3QpKSxudWxsPT1lJiYoZT0wKSxudWxsPT1uJiYobj0wKSxzLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7aT10LGwoKX0scy5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlhfKCt0KSxsKCkscyk6YX0scy5yYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpYXygrZSksbCgpLHMpOnR9LHMueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rdCxzKTplfSxzLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3Qscyk6bn0sc30sZm9yY2VTaW11bGF0aW9uOmZ1bmN0aW9uIEJJKHQpe3ZhciBlLG49MSxpPS4wMDEscj0xLU1hdGgucG93KGksMS8zMDApLG89MCxhPS42LHM9amcoKSxsPSRwKHUpLGM9d2MoInRpY2siLCJlbmQiKTtmdW5jdGlvbiB1KCl7aCgpLGMuY2FsbCgidGljayIsZSksbjxpJiYobC5zdG9wKCksYy5jYWxsKCJlbmQiLGUpKX1mdW5jdGlvbiBoKGkpe3ZhciBsLGMsdT10Lmxlbmd0aDt2b2lkIDA9PT1pJiYoaT0xKTtmb3IodmFyIGg9MDtoPGk7KytoKWZvcihuKz0oby1uKSpyLHMuZWFjaCgoZnVuY3Rpb24odCl7dChuKX0pKSxsPTA7bDx1OysrbCludWxsPT0oYz10W2xdKS5meD9jLngrPWMudngqPWE6KGMueD1jLmZ4LGMudng9MCksbnVsbD09Yy5meT9jLnkrPWMudnkqPWE6KGMueT1jLmZ5LGMudnk9MCk7cmV0dXJuIGV9ZnVuY3Rpb24gZCgpe2Zvcih2YXIgZSxuPTAsaT10Lmxlbmd0aDtuPGk7KytuKXtpZigoZT10W25dKS5pbmRleD1uLG51bGwhPWUuZngmJihlLng9ZS5meCksbnVsbCE9ZS5meSYmKGUueT1lLmZ5KSxpc05hTihlLngpfHxpc05hTihlLnkpKXt2YXIgcj0xMCpNYXRoLnNxcnQobiksbz1uKk15O2UueD1yKk1hdGguY29zKG8pLGUueT1yKk1hdGguc2luKG8pfShpc05hTihlLnZ4KXx8aXNOYU4oZS52eSkpJiYoZS52eD1lLnZ5PTApfX1mdW5jdGlvbiBwKGUpe3JldHVybiBlLmluaXRpYWxpemUmJmUuaW5pdGlhbGl6ZSh0KSxlfXJldHVybiBudWxsPT10JiYodD1bXSksZCgpLGU9e3RpY2s6aCxyZXN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIGwucmVzdGFydCh1KSxlfSxzdG9wOmZ1bmN0aW9uKCl7cmV0dXJuIGwuc3RvcCgpLGV9LG5vZGVzOmZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PW4sZCgpLHMuZWFjaChwKSxlKTp0fSxhbHBoYTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0rdCxlKTpufSxhbHBoYU1pbjpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0rdCxlKTppfSxhbHBoYURlY2F5OmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSt0LGUpOityfSxhbHBoYVRhcmdldDpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0rdCxlKTpvfSx2ZWxvY2l0eURlY2F5OmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPTEtdCxlKToxLWF9LGZvcmNlOmZ1bmN0aW9uKHQsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT8obnVsbD09bj9zLnJlbW92ZSh0KTpzLnNldCh0LHAobikpLGUpOnMuZ2V0KHQpfSxmaW5kOmZ1bmN0aW9uKGUsbixpKXt2YXIgcixvLGEscyxsLGM9MCx1PXQubGVuZ3RoO2ZvcihudWxsPT1pP2k9MS8wOmkqPWksYz0wO2M8dTsrK2MpKGE9KHI9ZS0ocz10W2NdKS54KSpyKyhvPW4tcy55KSpvKTxpJiYobD1zLGk9YSk7cmV0dXJuIGx9LG9uOmZ1bmN0aW9uKHQsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT8oYy5vbih0LG4pLGUpOmMub24odCl9fX0sZm9yY2VYOmZ1bmN0aW9uIEhJKHQpe3ZhciBlLG4saSxyPVhfKC4xKTtmdW5jdGlvbiBvKHQpe2Zvcih2YXIgcixvPTAsYT1lLmxlbmd0aDtvPGE7KytvKShyPWVbb10pLnZ4Kz0oaVtvXS1yLngpKm5bb10qdH1mdW5jdGlvbiBhKCl7aWYoZSl7dmFyIG8sYT1lLmxlbmd0aDtmb3Iobj1uZXcgQXJyYXkoYSksaT1uZXcgQXJyYXkoYSksbz0wO288YTsrK28pbltvXT1pc05hTihpW29dPSt0KGVbb10sbyxlKSk/MDorcihlW29dLG8sZSl9fXJldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1YXyhudWxsPT10PzA6K3QpKSxvLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7ZT10LGEoKX0sby5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlhfKCt0KSxhKCksbyk6cn0sby54PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6WF8oK2UpLGEoKSxvKTp0fSxvfSxmb3JjZVk6ZnVuY3Rpb24gRkkodCl7dmFyIGUsbixpLHI9WF8oLjEpO2Z1bmN0aW9uIG8odCl7Zm9yKHZhciByLG89MCxhPWUubGVuZ3RoO288YTsrK28pKHI9ZVtvXSkudnkrPShpW29dLXIueSkqbltvXSp0fWZ1bmN0aW9uIGEoKXtpZihlKXt2YXIgbyxhPWUubGVuZ3RoO2ZvcihuPW5ldyBBcnJheShhKSxpPW5ldyBBcnJheShhKSxvPTA7bzxhOysrbyluW29dPWlzTmFOKGlbb109K3QoZVtvXSxvLGUpKT8wOityKGVbb10sbyxlKX19cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PVhfKG51bGw9PXQ/MDordCkpLG8uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtlPXQsYSgpfSxvLnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6WF8oK3QpLGEoKSxvKTpyfSxvLnk9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpYXygrZSksYSgpLG8pOnR9LG99LGZvcm1hdERlZmF1bHRMb2NhbGU6VXksZ2V0IGZvcm1hdCgpe3JldHVybiBEeX0sZ2V0IGZvcm1hdFByZWZpeCgpe3JldHVybiBCeX0sZm9ybWF0TG9jYWxlOlZ5LGZvcm1hdFNwZWNpZmllcjpreSxGb3JtYXRTcGVjaWZpZXI6THkscHJlY2lzaW9uRml4ZWQ6ankscHJlY2lzaW9uUHJlZml4Okd5LHByZWNpc2lvblJvdW5kOld5LGdlb0FyZWE6ZnVuY3Rpb24gVkkodCl7cmV0dXJuIE52LnJlc2V0KCksRXYodCxJdiksMipOdn0sZ2VvQm91bmRzOmZ1bmN0aW9uIFVJKHQpe3ZhciBlLG4saSxyLG8sYSxzO2lmKFh2PVl2PS0oV3Y9cXY9MS8wKSxRdj1bXSxFdih0LHliKSxuPVF2Lmxlbmd0aCl7Zm9yKFF2LnNvcnQoQ2IpLGU9MSxvPVtpPVF2WzBdXTtlPG47KytlKUFiKGksKHI9UXZbZV0pWzBdKXx8QWIoaSxyWzFdKT8oVGIoaVswXSxyWzFdKT5UYihpWzBdLGlbMV0pJiYoaVsxXT1yWzFdKSxUYihyWzBdLGlbMV0pPlRiKGlbMF0saVsxXSkmJihpWzBdPXJbMF0pKTpvLnB1c2goaT1yKTtmb3IoYT0tMS8wLGU9MCxpPW9bbj1vLmxlbmd0aC0xXTtlPD1uO2k9ciwrK2UpKHM9VGIoaVsxXSwocj1vW2VdKVswXSkpPmEmJihhPXMsV3Y9clswXSxZdj1pWzFdKX1yZXR1cm4gUXY9dGI9bnVsbCxXdj09PTEvMHx8cXY9PT0xLzA/W1tOYU4sTmFOXSxbTmFOLE5hTl1dOltbV3YscXZdLFtZdixYdl1dfSxnZW9DZW50cm9pZDpmdW5jdGlvbiBqSSh0KXtlYj1uYj1pYj1yYj1vYj1hYj1zYj1sYj1jYj11Yj1oYj0wLEV2KHQsa2IpO3ZhciBlPWNiLG49dWIsaT1oYixyPWUqZStuKm4raSppO3JldHVybiByPFp5JiYoZT1hYixuPXNiLGk9bGIsbmI8S3kmJihlPWliLG49cmIsaT1vYiksKHI9ZSplK24qbitpKmkpPFp5KT9bTmFOLE5hTl06W2F2KG4sZSkqbnYsX3YoaS9mdihyKSkqbnZdfSxnZW9DaXJjbGU6ZnVuY3Rpb24gR0koKXt2YXIgdCxlLG49RmIoWzAsMF0pLGk9RmIoOTApLHI9RmIoNiksbz17cG9pbnQ6ZnVuY3Rpb24gYShuLGkpe3QucHVzaChuPWUobixpKSksblswXSo9bnYsblsxXSo9bnZ9fTtmdW5jdGlvbiBzKCl7dmFyIGE9bi5hcHBseSh0aGlzLGFyZ3VtZW50cykscz1pLmFwcGx5KHRoaXMsYXJndW1lbnRzKSppdixsPXIuYXBwbHkodGhpcyxhcmd1bWVudHMpKml2O3JldHVybiB0PVtdLGU9amIoLWFbMF0qaXYsLWFbMV0qaXYsMCkuaW52ZXJ0LFhiKG8scyxsLDEpLGE9e3R5cGU6IlBvbHlnb24iLGNvb3JkaW5hdGVzOlt0XX0sdD1lPW51bGwsYX1yZXR1cm4gcy5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpGYihbK3RbMF0sK3RbMV1dKSxzKTpufSxzLnJhZGl1cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkZiKCt0KSxzKTppfSxzLnByZWNpc2lvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkZiKCt0KSxzKTpyfSxzfSxnZW9DbGlwQW50aW1lcmlkaWFuOnN4LGdlb0NsaXBDaXJjbGU6dXgsZ2VvQ2xpcEV4dGVudDpmdW5jdGlvbiBXSSgpe3ZhciB0LGUsbixpPTAscj0wLG89OTYwLGE9NTAwO3JldHVybiBuPXtzdHJlYW06ZnVuY3Rpb24obil7cmV0dXJuIHQmJmU9PT1uP3Q6dD1weChpLHIsbyxhKShlPW4pfSxleHRlbnQ6ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9K3NbMF1bMF0scj0rc1swXVsxXSxvPStzWzFdWzBdLGE9K3NbMV1bMV0sdD1lPW51bGwsbik6W1tpLHJdLFtvLGFdXX19fSxnZW9DbGlwUmVjdGFuZ2xlOnB4LGdlb0NvbnRhaW5zOmZ1bmN0aW9uIHFJKHQsZSl7cmV0dXJuKHQmJkN4Lmhhc093blByb3BlcnR5KHQudHlwZSk/Q3hbdC50eXBlXTpreCkodCxlKX0sZ2VvRGlzdGFuY2U6VHgsZ2VvR3JhdGljdWxlOkR4LGdlb0dyYXRpY3VsZTEwOmZ1bmN0aW9uIFlJKCl7cmV0dXJuIER4KCkoKX0sZ2VvSW50ZXJwb2xhdGU6ZnVuY3Rpb24gWEkodCxlKXt2YXIgbj10WzBdKml2LGk9dFsxXSppdixyPWVbMF0qaXYsbz1lWzFdKml2LGE9c3YoaSkscz1kdihpKSxsPXN2KG8pLGM9ZHYobyksdT1hKnN2KG4pLGg9YSpkdihuKSxkPWwqc3YocikscD1sKmR2KHIpLGY9Mipfdihmdih5dihvLWkpK2EqbCp5dihyLW4pKSksbT1kdihmKSxnPWY/ZnVuY3Rpb24odCl7dmFyIGU9ZHYodCo9ZikvbSxuPWR2KGYtdCkvbSxpPW4qdStlKmQscj1uKmgrZSpwLG89bipzK2UqYztyZXR1cm5bYXYocixpKSpudixhdihvLGZ2KGkqaStyKnIpKSpudl19OmZ1bmN0aW9uKCl7cmV0dXJuW24qbnYsaSpudl19O3JldHVybiBnLmRpc3RhbmNlPWYsZ30sZ2VvTGVuZ3RoOlN4LGdlb1BhdGg6ZnVuY3Rpb24gJEkodCxlKXt2YXIgbixpLHI9NC41O2Z1bmN0aW9uIG8odCl7cmV0dXJuIHQmJigiZnVuY3Rpb24iPT10eXBlb2YgciYmaS5wb2ludFJhZGl1cygrci5hcHBseSh0aGlzLGFyZ3VtZW50cykpLEV2KHQsbihpKSkpLGkucmVzdWx0KCl9cmV0dXJuIG8uYXJlYT1mdW5jdGlvbih0KXtyZXR1cm4gRXYodCxuKEt4KSksS3gucmVzdWx0KCl9LG8ubWVhc3VyZT1mdW5jdGlvbih0KXtyZXR1cm4gRXYodCxuKER3KSksRHcucmVzdWx0KCl9LG8uYm91bmRzPWZ1bmN0aW9uKHQpe3JldHVybiBFdih0LG4ob3cpKSxvdy5yZXN1bHQoKX0sby5jZW50cm9pZD1mdW5jdGlvbih0KXtyZXR1cm4gRXYodCxuKFR3KSksVHcucmVzdWx0KCl9LG8ucHJvamVjdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1udWxsPT1lPyh0PW51bGwsQngpOih0PWUpLnN0cmVhbSxvKTp0fSxvLmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbD09dD8oZT1udWxsLG5ldyBCdyk6bmV3IEN3KGU9dCksImZ1bmN0aW9uIiE9dHlwZW9mIHImJmkucG9pbnRSYWRpdXMociksbyk6ZX0sby5wb2ludFJhZGl1cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OihpLnBvaW50UmFkaXVzKCt0KSwrdCksbyk6cn0sby5wcm9qZWN0aW9uKHQpLmNvbnRleHQoZSl9LGdlb0FsYmVyczppUyxnZW9BbGJlcnNVc2E6ZnVuY3Rpb24gS0koKXt2YXIgdCxlLG4saSxyLG8sYT1pUygpLHM9blMoKS5yb3RhdGUoWzE1NCwwXSkuY2VudGVyKFstMiw1OC41XSkucGFyYWxsZWxzKFs1NSw2NV0pLGw9blMoKS5yb3RhdGUoWzE1NywwXSkuY2VudGVyKFstMywxOS45XSkucGFyYWxsZWxzKFs4LDE4XSksYz17cG9pbnQ6ZnVuY3Rpb24odCxlKXtvPVt0LGVdfX07ZnVuY3Rpb24gdSh0KXt2YXIgZT10WzBdLGE9dFsxXTtyZXR1cm4gbz1udWxsLG4ucG9pbnQoZSxhKSxvfHwoaS5wb2ludChlLGEpLG8pfHwoci5wb2ludChlLGEpLG8pfWZ1bmN0aW9uIGgoKXtyZXR1cm4gdD1lPW51bGwsdX1yZXR1cm4gdS5pbnZlcnQ9ZnVuY3Rpb24odCl7dmFyIGU9YS5zY2FsZSgpLG49YS50cmFuc2xhdGUoKSxpPSh0WzBdLW5bMF0pL2Uscj0odFsxXS1uWzFdKS9lO3JldHVybihyPj0uMTImJnI8LjIzNCYmaT49LS40MjUmJmk8LS4yMTQ/czpyPj0uMTY2JiZyPC4yMzQmJmk+PS0uMjE0JiZpPC0uMTE1P2w6YSkuaW52ZXJ0KHQpfSx1LnN0cmVhbT1mdW5jdGlvbihuKXtyZXR1cm4gdCYmZT09PW4/dDp0PShmdW5jdGlvbiBpKHQpe3ZhciBlPXQubGVuZ3RoO3JldHVybntwb2ludDpmdW5jdGlvbihuLGkpe2Zvcih2YXIgcj0tMTsrK3I8ZTspdFtyXS5wb2ludChuLGkpfSxzcGhlcmU6ZnVuY3Rpb24oKXtmb3IodmFyIG49LTE7KytuPGU7KXRbbl0uc3BoZXJlKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe2Zvcih2YXIgbj0tMTsrK248ZTspdFtuXS5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe2Zvcih2YXIgbj0tMTsrK248ZTspdFtuXS5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2Zvcih2YXIgbj0tMTsrK248ZTspdFtuXS5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe2Zvcih2YXIgbj0tMTsrK248ZTspdFtuXS5wb2x5Z29uRW5kKCl9fX0pKFthLnN0cmVhbShlPW4pLHMuc3RyZWFtKG4pLGwuc3RyZWFtKG4pXSl9LHUucHJlY2lzaW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhLnByZWNpc2lvbih0KSxzLnByZWNpc2lvbih0KSxsLnByZWNpc2lvbih0KSxoKCkpOmEucHJlY2lzaW9uKCl9LHUuc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGEuc2NhbGUodCkscy5zY2FsZSguMzUqdCksbC5zY2FsZSh0KSx1LnRyYW5zbGF0ZShhLnRyYW5zbGF0ZSgpKSk6YS5zY2FsZSgpfSx1LnRyYW5zbGF0ZT1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gYS50cmFuc2xhdGUoKTt2YXIgZT1hLnNjYWxlKCksbz0rdFswXSx1PSt0WzFdO3JldHVybiBuPWEudHJhbnNsYXRlKHQpLmNsaXBFeHRlbnQoW1tvLS40NTUqZSx1LS4yMzgqZV0sW28rLjQ1NSplLHUrLjIzOCplXV0pLnN0cmVhbShjKSxpPXMudHJhbnNsYXRlKFtvLS4zMDcqZSx1Ky4yMDEqZV0pLmNsaXBFeHRlbnQoW1tvLS40MjUqZStLeSx1Ky4xMiplK0t5XSxbby0uMjE0KmUtS3ksdSsuMjM0KmUtS3ldXSkuc3RyZWFtKGMpLHI9bC50cmFuc2xhdGUoW28tLjIwNSplLHUrLjIxMiplXSkuY2xpcEV4dGVudChbW28tLjIxNCplK0t5LHUrLjE2NiplK0t5XSxbby0uMTE1KmUtS3ksdSsuMjM0KmUtS3ldXSkuc3RyZWFtKGMpLGgoKX0sdS5maXRFeHRlbnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gancodSx0LGUpfSx1LmZpdFNpemU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gR3codSx0LGUpfSx1LmZpdFdpZHRoPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFd3KHUsdCxlKX0sdS5maXRIZWlnaHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gcXcodSx0LGUpfSx1LnNjYWxlKDEwNzApfSxnZW9BemltdXRoYWxFcXVhbEFyZWE6ZnVuY3Rpb24gWkkoKXtyZXR1cm4gSncoYVMpLnNjYWxlKDEyNC43NSkuY2xpcEFuZ2xlKDE3OS45OTkpfSxnZW9BemltdXRoYWxFcXVhbEFyZWFSYXc6YVMsZ2VvQXppbXV0aGFsRXF1aWRpc3RhbnQ6ZnVuY3Rpb24gSkkoKXtyZXR1cm4gSncoc1MpLnNjYWxlKDc5LjQxODgpLmNsaXBBbmdsZSgxNzkuOTk5KX0sZ2VvQXppbXV0aGFsRXF1aWRpc3RhbnRSYXc6c1MsZ2VvQ29uaWNDb25mb3JtYWw6ZnVuY3Rpb24gUUkoKXtyZXR1cm4gdFMoaFMpLnNjYWxlKDEwOS41KS5wYXJhbGxlbHMoWzMwLDMwXSl9LGdlb0NvbmljQ29uZm9ybWFsUmF3OmhTLGdlb0NvbmljRXF1YWxBcmVhOm5TLGdlb0NvbmljRXF1YWxBcmVhUmF3OmVTLGdlb0NvbmljRXF1aWRpc3RhbnQ6ZnVuY3Rpb24gdFIoKXtyZXR1cm4gdFMocFMpLnNjYWxlKDEzMS4xNTQpLmNlbnRlcihbMCwxMy45Mzg5XSl9LGdlb0NvbmljRXF1aWRpc3RhbnRSYXc6cFMsZ2VvRXF1YWxFYXJ0aDpmdW5jdGlvbiBlUigpe3JldHVybiBKdyh2Uykuc2NhbGUoMTc3LjE1OCl9LGdlb0VxdWFsRWFydGhSYXc6dlMsZ2VvRXF1aXJlY3Rhbmd1bGFyOmZ1bmN0aW9uIG5SKCl7cmV0dXJuIEp3KGRTKS5zY2FsZSgxNTIuNjMpfSxnZW9FcXVpcmVjdGFuZ3VsYXJSYXc6ZFMsZ2VvR25vbW9uaWM6ZnVuY3Rpb24gaVIoKXtyZXR1cm4gSncoYlMpLnNjYWxlKDE0NC4wNDkpLmNsaXBBbmdsZSg2MCl9LGdlb0dub21vbmljUmF3OmJTLGdlb0lkZW50aXR5OmZ1bmN0aW9uIHJSKCl7dmFyIHQsZSxuLGkscixvLGEscz0xLGw9MCxjPTAsdT0xLGg9MSxkPTAscD1udWxsLGY9MSxtPTEsZz1Gdyh7cG9pbnQ6ZnVuY3Rpb24odCxlKXt2YXIgbj12KFt0LGVdKTt0aGlzLnN0cmVhbS5wb2ludChuWzBdLG5bMV0pfX0pLF89Qng7ZnVuY3Rpb24geSgpe3JldHVybiBmPXMqdSxtPXMqaCxvPWE9bnVsbCx2fWZ1bmN0aW9uIHYobil7dmFyIGk9blswXSpmLHI9blsxXSptO2lmKGQpe3ZhciBvPXIqdC1pKmU7aT1pKnQrciplLHI9b31yZXR1cm5baStsLHIrY119cmV0dXJuIHYuaW52ZXJ0PWZ1bmN0aW9uKG4pe3ZhciBpPW5bMF0tbCxyPW5bMV0tYztpZihkKXt2YXIgbz1yKnQraSplO2k9aSp0LXIqZSxyPW99cmV0dXJuW2kvZixyL21dfSx2LnN0cmVhbT1mdW5jdGlvbih0KXtyZXR1cm4gbyYmYT09PXQ/bzpvPWcoXyhhPXQpKX0sdi5wb3N0Y2xpcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oXz10LHA9bj1pPXI9bnVsbCx5KCkpOl99LHYuY2xpcEV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oXz1udWxsPT10PyhwPW49aT1yPW51bGwsQngpOnB4KHA9K3RbMF1bMF0sbj0rdFswXVsxXSxpPSt0WzFdWzBdLHI9K3RbMV1bMV0pLHkoKSk6bnVsbD09cD9udWxsOltbcCxuXSxbaSxyXV19LHYuc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9K3QseSgpKTpzfSx2LnRyYW5zbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD0rdFswXSxjPSt0WzFdLHkoKSk6W2wsY119LHYuYW5nbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9ZHYoZD1uJTM2MCppdiksdD1zdihkKSx5KCkpOmQqbnZ9LHYucmVmbGVjdFg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9dD8tMToxLHkoKSk6dTwwfSx2LnJlZmxlY3RZPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPXQ/LTE6MSx5KCkpOmg8MH0sdi5maXRFeHRlbnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gancodix0LGUpfSx2LmZpdFNpemU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gR3codix0LGUpfSx2LmZpdFdpZHRoPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFd3KHYsdCxlKX0sdi5maXRIZWlnaHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gcXcodix0LGUpfSx2fSxnZW9Qcm9qZWN0aW9uOkp3LGdlb1Byb2plY3Rpb25NdXRhdG9yOlF3LGdlb01lcmNhdG9yOmZ1bmN0aW9uIG9SKCl7cmV0dXJuIGNTKGxTKS5zY2FsZSg5NjEvZXYpfSxnZW9NZXJjYXRvclJhdzpsUyxnZW9OYXR1cmFsRWFydGgxOmZ1bmN0aW9uIGFSKCl7cmV0dXJuIEp3KHhTKS5zY2FsZSgxNzUuMjk1KX0sZ2VvTmF0dXJhbEVhcnRoMVJhdzp4UyxnZW9PcnRob2dyYXBoaWM6ZnVuY3Rpb24gc1IoKXtyZXR1cm4gSncod1MpLnNjYWxlKDI0OS41KS5jbGlwQW5nbGUoOTAuMDAwMDAxKX0sZ2VvT3J0aG9ncmFwaGljUmF3OndTLGdlb1N0ZXJlb2dyYXBoaWM6ZnVuY3Rpb24gbFIoKXtyZXR1cm4gSncoU1MpLnNjYWxlKDI1MCkuY2xpcEFuZ2xlKDE0Mil9LGdlb1N0ZXJlb2dyYXBoaWNSYXc6U1MsZ2VvVHJhbnN2ZXJzZU1lcmNhdG9yOmZ1bmN0aW9uIGNSKCl7dmFyIHQ9Y1MoTVMpLGU9dC5jZW50ZXIsbj10LnJvdGF0ZTtyZXR1cm4gdC5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/ZShbLXRbMV0sdFswXV0pOlsodD1lKCkpWzFdLC10WzBdXX0sdC5yb3RhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/bihbdFswXSx0WzFdLHQubGVuZ3RoPjI/dFsyXSs5MDo5MF0pOlsodD1uKCkpWzBdLHRbMV0sdFsyXS05MF19LG4oWzAsMCw5MF0pLnNjYWxlKDE1OS4xNTUpfSxnZW9UcmFuc3ZlcnNlTWVyY2F0b3JSYXc6TVMsZ2VvUm90YXRpb246WWIsZ2VvU3RyZWFtOkV2LGdlb1RyYW5zZm9ybTpmdW5jdGlvbiB1Uih0KXtyZXR1cm57c3RyZWFtOkZ3KHQpfX0sY2x1c3RlcjpmdW5jdGlvbiBoUigpe3ZhciB0PUVTLGU9MSxuPTEsaT0hMTtmdW5jdGlvbiByKHIpe3ZhciBvLGE9MDtyLmVhY2hBZnRlcigoZnVuY3Rpb24oZSl7dmFyIG49ZS5jaGlsZHJlbjtuPyhlLng9KGZ1bmN0aW9uIGkodCl7cmV0dXJuIHQucmVkdWNlKFRTLDApL3QubGVuZ3RofSkobiksZS55PShmdW5jdGlvbiByKHQpe3JldHVybiAxK3QucmVkdWNlKENTLDApfSkobikpOihlLng9bz9hKz10KGUsbyk6MCxlLnk9MCxvPWUpfSkpO3ZhciBzPShmdW5jdGlvbiBsKHQpe2Zvcih2YXIgZTtlPXQuY2hpbGRyZW47KXQ9ZVswXTtyZXR1cm4gdH0pKHIpLGM9KGZ1bmN0aW9uIHUodCl7Zm9yKHZhciBlO2U9dC5jaGlsZHJlbjspdD1lW2UubGVuZ3RoLTFdO3JldHVybiB0fSkociksaD1zLngtdChzLGMpLzIsZD1jLngrdChjLHMpLzI7cmV0dXJuIHIuZWFjaEFmdGVyKGk/ZnVuY3Rpb24odCl7dC54PSh0Lngtci54KSplLHQueT0oci55LXQueSkqbn06ZnVuY3Rpb24odCl7dC54PSh0LngtaCkvKGQtaCkqZSx0Lnk9KDEtKHIueT90Lnkvci55OjEpKSpufSl9cmV0dXJuIHIuc2VwYXJhdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1lLHIpOnR9LHIuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0hMSxlPSt0WzBdLG49K3RbMV0scik6aT9udWxsOltlLG5dfSxyLm5vZGVTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSEwLGU9K3RbMF0sbj0rdFsxXSxyKTppP1tlLG5dOm51bGx9LHJ9LGhpZXJhcmNoeTprUyxwYWNrOmZ1bmN0aW9uIGRSKCl7dmFyIHQ9bnVsbCxlPTEsbj0xLGk9bE07ZnVuY3Rpb24gcihyKXtyZXR1cm4gci54PWUvMixyLnk9bi8yLHQ/ci5lYWNoQmVmb3JlKGhNKHQpKS5lYWNoQWZ0ZXIoZE0oaSwuNSkpLmVhY2hCZWZvcmUocE0oMSkpOnIuZWFjaEJlZm9yZShoTSh1TSkpLmVhY2hBZnRlcihkTShsTSwxKSkuZWFjaEFmdGVyKGRNKGksci5yL01hdGgubWluKGUsbikpKS5lYWNoQmVmb3JlKHBNKE1hdGgubWluKGUsbikvKDIqci5yKSkpLHJ9cmV0dXJuIHIucmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWFNKGUpLHIpOnR9LHIuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rdFswXSxuPSt0WzFdLHIpOltlLG5dfSxyLnBhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpjTSgrdCkscik6aX0scn0scGFja1NpYmxpbmdzOmZ1bmN0aW9uIHBSKHQpe3JldHVybiBvTSh0KSx0fSxwYWNrRW5jbG9zZTpZUyxwYXJ0aXRpb246ZnVuY3Rpb24gZlIoKXt2YXIgdD0xLGU9MSxuPTAsaT0hMTtmdW5jdGlvbiByKHIpe3ZhciBvPXIuaGVpZ2h0KzE7cmV0dXJuIHIueDA9ci55MD1uLHIueDE9dCxyLnkxPWUvbyxyLmVhY2hCZWZvcmUoKGZ1bmN0aW9uIGEodCxlKXtyZXR1cm4gZnVuY3Rpb24oaSl7aS5jaGlsZHJlbiYmbU0oaSxpLngwLHQqKGkuZGVwdGgrMSkvZSxpLngxLHQqKGkuZGVwdGgrMikvZSk7dmFyIHI9aS54MCxvPWkueTAsYT1pLngxLW4scz1pLnkxLW47YTxyJiYocj1hPShyK2EpLzIpLHM8byYmKG89cz0obytzKS8yKSxpLngwPXIsaS55MD1vLGkueDE9YSxpLnkxPXN9fSkoZSxvKSksaSYmci5lYWNoQmVmb3JlKGZNKSxyfXJldHVybiByLnJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSEhdCxyKTppfSxyLnNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9K25bMF0sZT0rblsxXSxyKTpbdCxlXX0sci5wYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSt0LHIpOm59LHJ9LHN0cmF0aWZ5OmZ1bmN0aW9uIG1SKCl7dmFyIHQ9eU0sZT12TTtmdW5jdGlvbiBuKG4pe3ZhciBpLHIsbyxhLHMsbCxjLHU9bi5sZW5ndGgsaD1uZXcgQXJyYXkodSksZD17fTtmb3Iocj0wO3I8dTsrK3Ipcz1oW3JdPW5ldyBJUyhpPW5bcl0pLG51bGwhPShsPXQoaSxyLG4pKSYmKGwrPSIiKSYmKGRbYz0iJCIrKHMuaWQ9bCldPWMgaW4gZD9fTTpzKTtmb3Iocj0wO3I8dTsrK3IpaWYocz1oW3JdLG51bGwhPShsPWUobltyXSxyLG4pKSYmKGwrPSIiKSl7aWYoIShhPWRbIiQiK2xdKSl0aHJvdyBuZXcgRXJyb3IoIm1pc3Npbmc6ICIrbCk7aWYoYT09PV9NKXRocm93IG5ldyBFcnJvcigiYW1iaWd1b3VzOiAiK2wpO2EuY2hpbGRyZW4/YS5jaGlsZHJlbi5wdXNoKHMpOmEuY2hpbGRyZW49W3NdLHMucGFyZW50PWF9ZWxzZXtpZihvKXRocm93IG5ldyBFcnJvcigibXVsdGlwbGUgcm9vdHMiKTtvPXN9aWYoIW8pdGhyb3cgbmV3IEVycm9yKCJubyByb290Iik7aWYoby5wYXJlbnQ9Z00sby5lYWNoQmVmb3JlKChmdW5jdGlvbih0KXt0LmRlcHRoPXQucGFyZW50LmRlcHRoKzEsLS11fSkpLmVhY2hCZWZvcmUoTlMpLG8ucGFyZW50PW51bGwsdT4wKXRocm93IG5ldyBFcnJvcigiY3ljbGUiKTtyZXR1cm4gb31yZXR1cm4gbi5pZD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1zTShlKSxuKTp0fSxuLnBhcmVudElkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXNNKHQpLG4pOmV9LG59LHRyZWU6ZnVuY3Rpb24gZ1IoKXt2YXIgdD1iTSxlPTEsbj0xLGk9bnVsbDtmdW5jdGlvbiByKHIpe3ZhciBsPShmdW5jdGlvbiBjKHQpe2Zvcih2YXIgZSxuLGkscixvLGE9bmV3IEVNKHQsMCkscz1bYV07ZT1zLnBvcCgpOylpZihpPWUuXy5jaGlsZHJlbilmb3IoZS5jaGlsZHJlbj1uZXcgQXJyYXkobz1pLmxlbmd0aCkscj1vLTE7cj49MDstLXIpcy5wdXNoKG49ZS5jaGlsZHJlbltyXT1uZXcgRU0oaVtyXSxyKSksbi5wYXJlbnQ9ZTtyZXR1cm4oYS5wYXJlbnQ9bmV3IEVNKG51bGwsMCkpLmNoaWxkcmVuPVthXSxhfSkocik7aWYobC5lYWNoQWZ0ZXIobyksbC5wYXJlbnQubT0tbC56LGwuZWFjaEJlZm9yZShhKSxpKXIuZWFjaEJlZm9yZShzKTtlbHNle3ZhciB1PXIsaD1yLGQ9cjtyLmVhY2hCZWZvcmUoKGZ1bmN0aW9uKHQpe3QueDx1LngmJih1PXQpLHQueD5oLngmJihoPXQpLHQuZGVwdGg+ZC5kZXB0aCYmKGQ9dCl9KSk7dmFyIHA9dT09PWg/MTp0KHUsaCkvMixmPXAtdS54LG09ZS8oaC54K3ArZiksZz1uLyhkLmRlcHRofHwxKTtyLmVhY2hCZWZvcmUoKGZ1bmN0aW9uKHQpe3QueD0odC54K2YpKm0sdC55PXQuZGVwdGgqZ30pKX1yZXR1cm4gcn1mdW5jdGlvbiBvKGUpe3ZhciBuPWUuY2hpbGRyZW4saT1lLnBhcmVudC5jaGlsZHJlbixyPWUuaT9pW2UuaS0xXTpudWxsO2lmKG4peyEoZnVuY3Rpb24gbyh0KXtmb3IodmFyIGUsbj0wLGk9MCxyPXQuY2hpbGRyZW4sbz1yLmxlbmd0aDstLW8+PTA7KShlPXJbb10pLnorPW4sZS5tKz1uLG4rPWUucysoaSs9ZS5jKX0pKGUpO3ZhciBhPShuWzBdLnorbltuLmxlbmd0aC0xXS56KS8yO3I/KGUuej1yLnordChlLl8sci5fKSxlLm09ZS56LWEpOmUuej1hfWVsc2UgciYmKGUuej1yLnordChlLl8sci5fKSk7ZS5wYXJlbnQuQT0oZnVuY3Rpb24gcyhlLG4saSl7aWYobil7Zm9yKHZhciByLG89ZSxhPWUscz1uLGw9by5wYXJlbnQuY2hpbGRyZW5bMF0sYz1vLm0sdT1hLm0saD1zLm0sZD1sLm07cz13TShzKSxvPXhNKG8pLHMmJm87KWw9eE0obCksKGE9d00oYSkpLmE9ZSwocj1zLnoraC1vLnotYyt0KHMuXyxvLl8pKT4wJiYoU00oTU0ocyxlLGkpLGUsciksYys9cix1Kz1yKSxoKz1zLm0sYys9by5tLGQrPWwubSx1Kz1hLm07cyYmIXdNKGEpJiYoYS50PXMsYS5tKz1oLXUpLG8mJiF4TShsKSYmKGwudD1vLGwubSs9Yy1kLGk9ZSl9cmV0dXJuIGl9KShlLHIsZS5wYXJlbnQuQXx8aVswXSl9ZnVuY3Rpb24gYSh0KXt0Ll8ueD10LnordC5wYXJlbnQubSx0Lm0rPXQucGFyZW50Lm19ZnVuY3Rpb24gcyh0KXt0LngqPWUsdC55PXQuZGVwdGgqbn1yZXR1cm4gci5zZXBhcmF0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWUscik6dH0sci5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSExLGU9K3RbMF0sbj0rdFsxXSxyKTppP251bGw6W2Usbl19LHIubm9kZVNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ITAsZT0rdFswXSxuPSt0WzFdLHIpOmk/W2Usbl06bnVsbH0scn0sdHJlZW1hcDpmdW5jdGlvbiBfUigpe3ZhciB0PWtNLGU9ITEsbj0xLGk9MSxyPVswXSxvPWxNLGE9bE0scz1sTSxsPWxNLGM9bE07ZnVuY3Rpb24gdSh0KXtyZXR1cm4gdC54MD10LnkwPTAsdC54MT1uLHQueTE9aSx0LmVhY2hCZWZvcmUoaCkscj1bMF0sZSYmdC5lYWNoQmVmb3JlKGZNKSx0fWZ1bmN0aW9uIGgoZSl7dmFyIG49cltlLmRlcHRoXSxpPWUueDArbix1PWUueTArbixoPWUueDEtbixkPWUueTEtbjtoPGkmJihpPWg9KGkraCkvMiksZDx1JiYodT1kPSh1K2QpLzIpLGUueDA9aSxlLnkwPXUsZS54MT1oLGUueTE9ZCxlLmNoaWxkcmVuJiYobj1yW2UuZGVwdGgrMV09byhlKS8yLGkrPWMoZSktbix1Kz1hKGUpLW4sKGgtPXMoZSktbik8aSYmKGk9aD0oaStoKS8yKSwoZC09bChlKS1uKTx1JiYodT1kPSh1K2QpLzIpLHQoZSxpLHUsaCxkKSl9cmV0dXJuIHUucm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9ISF0LHUpOmV9LHUuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0rdFswXSxpPSt0WzFdLHUpOltuLGldfSx1LnRpbGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9c00oZSksdSk6dH0sdS5wYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3UucGFkZGluZ0lubmVyKHQpLnBhZGRpbmdPdXRlcih0KTp1LnBhZGRpbmdJbm5lcigpfSx1LnBhZGRpbmdJbm5lcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmNNKCt0KSx1KTpvfSx1LnBhZGRpbmdPdXRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD91LnBhZGRpbmdUb3AodCkucGFkZGluZ1JpZ2h0KHQpLnBhZGRpbmdCb3R0b20odCkucGFkZGluZ0xlZnQodCk6dS5wYWRkaW5nVG9wKCl9LHUucGFkZGluZ1RvcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmNNKCt0KSx1KTphfSx1LnBhZGRpbmdSaWdodD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmNNKCt0KSx1KTpzfSx1LnBhZGRpbmdCb3R0b209ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpjTSgrdCksdSk6bH0sdS5wYWRkaW5nTGVmdD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmNNKCt0KSx1KTpjfSx1fSx0cmVlbWFwQmluYXJ5OmZ1bmN0aW9uIHlSKHQsZSxuLGkscil7dmFyIG8sYSxzPXQuY2hpbGRyZW4sbD1zLmxlbmd0aCxjPW5ldyBBcnJheShsKzEpO2ZvcihjWzBdPWE9bz0wO288bDsrK28pY1tvKzFdPWErPXNbb10udmFsdWU7IShmdW5jdGlvbiB0KGUsbixpLHIsbyxhLGwpe2lmKGU+PW4tMSl7dmFyIHU9c1tlXTtyZXR1cm4gdS54MD1yLHUueTA9byx1LngxPWEsdm9pZCh1LnkxPWwpfXZhciBoPWNbZV0sZD1pLzIraCxwPWUrMSxmPW4tMTtmb3IoO3A8Zjspe3ZhciBtPXArZj4+PjE7Y1ttXTxkP3A9bSsxOmY9bX1kLWNbcC0xXTxjW3BdLWQmJmUrMTxwJiYtLXA7dmFyIGc9Y1twXS1oLF89aS1nO2lmKGEtcj5sLW8pe3ZhciB5PShyKl8rYSpnKS9pO3QoZSxwLGcscixvLHksbCksdChwLG4sXyx5LG8sYSxsKX1lbHNle3ZhciB2PShvKl8rbCpnKS9pO3QoZSxwLGcscixvLGEsdiksdChwLG4sXyxyLHYsYSxsKX19KSgwLGwsdC52YWx1ZSxlLG4saSxyKX0sdHJlZW1hcERpY2U6bU0sdHJlZW1hcFNsaWNlOlRNLHRyZWVtYXBTbGljZURpY2U6ZnVuY3Rpb24gdlIodCxlLG4saSxyKXsoMSZ0LmRlcHRoP1RNOm1NKSh0LGUsbixpLHIpfSx0cmVlbWFwU3F1YXJpZnk6a00sdHJlZW1hcFJlc3F1YXJpZnk6TE0saW50ZXJwb2xhdGU6Y3AsaW50ZXJwb2xhdGVBcnJheTpmdW5jdGlvbiBiUih0LGUpe3JldHVybihlcChlKT90cDpucCkodCxlKX0saW50ZXJwb2xhdGVCYXNpczpqZCxpbnRlcnBvbGF0ZUJhc2lzQ2xvc2VkOkdkLGludGVycG9sYXRlRGF0ZTppcCxpbnRlcnBvbGF0ZURpc2NyZXRlOmZ1bmN0aW9uIHhSKHQpe3ZhciBlPXQubGVuZ3RoO3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdFtNYXRoLm1heCgwLE1hdGgubWluKGUtMSxNYXRoLmZsb29yKG4qZSkpKV19fSxpbnRlcnBvbGF0ZUh1ZTpmdW5jdGlvbiB3Uih0LGUpe3ZhciBuPVlkKCt0LCtlKTtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9bih0KTtyZXR1cm4gZS0zNjAqTWF0aC5mbG9vcihlLzM2MCl9fSxpbnRlcnBvbGF0ZU51bWJlcjpycCxpbnRlcnBvbGF0ZU51bWJlckFycmF5OnRwLGludGVycG9sYXRlT2JqZWN0Om9wLGludGVycG9sYXRlUm91bmQ6dXAsaW50ZXJwb2xhdGVTdHJpbmc6bHAsaW50ZXJwb2xhdGVUcmFuc2Zvcm1Dc3M6dnAsaW50ZXJwb2xhdGVUcmFuc2Zvcm1Tdmc6eHAsaW50ZXJwb2xhdGVab29tOkVwLGludGVycG9sYXRlUmdiOktkLGludGVycG9sYXRlUmdiQmFzaXM6SmQsaW50ZXJwb2xhdGVSZ2JCYXNpc0Nsb3NlZDpRZCxpbnRlcnBvbGF0ZUhzbDpDcCxpbnRlcnBvbGF0ZUhzbExvbmc6QXAsaW50ZXJwb2xhdGVMYWI6a3AsaW50ZXJwb2xhdGVIY2w6UHAsaW50ZXJwb2xhdGVIY2xMb25nOk5wLGludGVycG9sYXRlQ3ViZWhlbGl4OlJwLGludGVycG9sYXRlQ3ViZWhlbGl4TG9uZzpPcCxwaWVjZXdpc2U6ZnVuY3Rpb24gU1IodCxlKXtmb3IodmFyIG49MCxpPWUubGVuZ3RoLTEscj1lWzBdLG89bmV3IEFycmF5KGk8MD8wOmkpO248aTspb1tuXT10KHIscj1lWysrbl0pO3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT1NYXRoLm1heCgwLE1hdGgubWluKGktMSxNYXRoLmZsb29yKHQqPWkpKSk7cmV0dXJuIG9bZV0odC1lKX19LHF1YW50aXplOmZ1bmN0aW9uIE1SKHQsZSl7Zm9yKHZhciBuPW5ldyBBcnJheShlKSxpPTA7aTxlOysraSluW2ldPXQoaS8oZS0xKSk7cmV0dXJuIG59LHBhdGg6T2cscG9seWdvbkFyZWE6ZnVuY3Rpb24gRVIodCl7Zm9yKHZhciBlLG49LTEsaT10Lmxlbmd0aCxyPXRbaS0xXSxvPTA7KytuPGk7KW8rPShlPXIpWzFdKihyPXRbbl0pWzBdLWVbMF0qclsxXTtyZXR1cm4gby8yfSxwb2x5Z29uQ2VudHJvaWQ6ZnVuY3Rpb24gVFIodCl7Zm9yKHZhciBlLG4saT0tMSxyPXQubGVuZ3RoLG89MCxhPTAscz10W3ItMV0sbD0wOysraTxyOylsKz1uPShlPXMpWzBdKihzPXRbaV0pWzFdLXNbMF0qZVsxXSxvKz0oZVswXStzWzBdKSpuLGErPShlWzFdK3NbMV0pKm47cmV0dXJuW28vKGwqPTMpLGEvbF19LHBvbHlnb25IdWxsOmZ1bmN0aW9uIENSKHQpe2lmKChuPXQubGVuZ3RoKTwzKXJldHVybiBudWxsO3ZhciBlLG4saT1uZXcgQXJyYXkobikscj1uZXcgQXJyYXkobik7Zm9yKGU9MDtlPG47KytlKWlbZV09Wyt0W2VdWzBdLCt0W2VdWzFdLGVdO2ZvcihpLnNvcnQoTk0pLGU9MDtlPG47KytlKXJbZV09W2lbZV1bMF0sLWlbZV1bMV1dO3ZhciBvPUlNKGkpLGE9SU0ocikscz1hWzBdPT09b1swXSxsPWFbYS5sZW5ndGgtMV09PT1vW28ubGVuZ3RoLTFdLGM9W107Zm9yKGU9by5sZW5ndGgtMTtlPj0wOy0tZSljLnB1c2godFtpW29bZV1dWzJdXSk7Zm9yKGU9K3M7ZTxhLmxlbmd0aC1sOysrZSljLnB1c2godFtpW2FbZV1dWzJdXSk7cmV0dXJuIGN9LHBvbHlnb25Db250YWluczpmdW5jdGlvbiBBUih0LGUpe2Zvcih2YXIgbixpLHI9dC5sZW5ndGgsbz10W3ItMV0sYT1lWzBdLHM9ZVsxXSxsPW9bMF0sYz1vWzFdLHU9ITEsaD0wO2g8cjsrK2gpbj0obz10W2hdKVswXSwoaT1vWzFdKT5zIT1jPnMmJmE8KGwtbikqKHMtaSkvKGMtaSkrbiYmKHU9IXUpLGw9bixjPWk7cmV0dXJuIHV9LHBvbHlnb25MZW5ndGg6ZnVuY3Rpb24ga1IodCl7Zm9yKHZhciBlLG4saT0tMSxyPXQubGVuZ3RoLG89dFtyLTFdLGE9b1swXSxzPW9bMV0sbD0wOysraTxyOyllPWEsbj1zLGUtPWE9KG89dFtpXSlbMF0sbi09cz1vWzFdLGwrPU1hdGguc3FydChlKmUrbipuKTtyZXR1cm4gbH0scXVhZHRyZWU6dHkscmFuZG9tVW5pZm9ybTpPTSxyYW5kb21Ob3JtYWw6ek0scmFuZG9tTG9nTm9ybWFsOkRNLHJhbmRvbUJhdGVzOkhNLHJhbmRvbUlyd2luSGFsbDpCTSxyYW5kb21FeHBvbmVudGlhbDpGTSxzY2FsZUJhbmQ6WE0sc2NhbGVQb2ludDpLTSxzY2FsZUlkZW50aXR5OmZ1bmN0aW9uIHQoZSl7dmFyIG47ZnVuY3Rpb24gaSh0KXtyZXR1cm4gaXNOYU4odD0rdCk/bjp0fXJldHVybiBpLmludmVydD1pLGkuZG9tYWluPWkucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9R00uY2FsbCh0LFpNKSxpKTplLnNsaWNlKCl9LGkudW5rbm93bj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LGkpOm59LGkuY29weT1mdW5jdGlvbigpe3JldHVybiB0KGUpLnVua25vd24obil9LGU9YXJndW1lbnRzLmxlbmd0aD9HTS5jYWxsKGUsWk0pOlswLDFdLGxFKGkpfSxzY2FsZUxpbmVhcjpjRSxzY2FsZUxvZzp5RSxzY2FsZVN5bWxvZzpmdW5jdGlvbiB0KCl7dmFyIGU9eEUob0UoKSk7cmV0dXJuIGUuY29weT1mdW5jdGlvbigpe3JldHVybiByRShlLHQoKSkuY29uc3RhbnQoZS5jb25zdGFudCgpKX0sVk0uYXBwbHkoZSxhcmd1bWVudHMpfSxzY2FsZU9yZGluYWw6WU0sc2NhbGVJbXBsaWNpdDpxTSxzY2FsZVBvdzpURSxzY2FsZVNxcnQ6ZnVuY3Rpb24gTFIoKXtyZXR1cm4gVEUuYXBwbHkobnVsbCxhcmd1bWVudHMpLmV4cG9uZW50KC41KX0sc2NhbGVRdWFudGlsZTpDRSxzY2FsZVF1YW50aXplOkFFLHNjYWxlVGhyZXNob2xkOmZ1bmN0aW9uIHQoKXt2YXIgZSxuPVsuNV0saT1bMCwxXSxyPTE7ZnVuY3Rpb24gbyh0KXtyZXR1cm4gdDw9dD9pW0RsKG4sdCwwLHIpXTplfXJldHVybiBvLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1XTS5jYWxsKHQpLHI9TWF0aC5taW4obi5sZW5ndGgsaS5sZW5ndGgtMSksbyk6bi5zbGljZSgpfSxvLnJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVdNLmNhbGwodCkscj1NYXRoLm1pbihuLmxlbmd0aCxpLmxlbmd0aC0xKSxvKTppLnNsaWNlKCl9LG8uaW52ZXJ0RXh0ZW50PWZ1bmN0aW9uKHQpe3ZhciBlPWkuaW5kZXhPZih0KTtyZXR1cm5bbltlLTFdLG5bZV1dfSxvLnVua25vd249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxvKTplfSxvLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLmRvbWFpbihuKS5yYW5nZShpKS51bmtub3duKGUpfSxWTS5hcHBseShvLGFyZ3VtZW50cyl9LHNjYWxlVGltZTp6QSxzY2FsZVV0YzpmdW5jdGlvbiBQUigpe3JldHVybiBWTS5hcHBseShPQShZVCxHVCxrVCxUVCxTVCxiVCxWRSxJRSxuQykuZG9tYWluKFtEYXRlLlVUQygyZTMsMCwxKSxEYXRlLlVUQygyZTMsMCwyKV0pLGFyZ3VtZW50cyl9LHNjYWxlU2VxdWVudGlhbDpmdW5jdGlvbiB0KCl7dmFyIGU9bEUoREEoKShRTSkpO3JldHVybiBlLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gQkEoZSx0KCkpfSxVTS5hcHBseShlLGFyZ3VtZW50cyl9LHNjYWxlU2VxdWVudGlhbExvZzpmdW5jdGlvbiB0KCl7dmFyIGU9X0UoREEoKSkuZG9tYWluKFsxLDEwXSk7cmV0dXJuIGUuY29weT1mdW5jdGlvbigpe3JldHVybiBCQShlLHQoKSkuYmFzZShlLmJhc2UoKSl9LFVNLmFwcGx5KGUsYXJndW1lbnRzKX0sc2NhbGVTZXF1ZW50aWFsUG93OkhBLHNjYWxlU2VxdWVudGlhbFNxcnQ6ZnVuY3Rpb24gTlIoKXtyZXR1cm4gSEEuYXBwbHkobnVsbCxhcmd1bWVudHMpLmV4cG9uZW50KC41KX0sc2NhbGVTZXF1ZW50aWFsU3ltbG9nOmZ1bmN0aW9uIHQoKXt2YXIgZT14RShEQSgpKTtyZXR1cm4gZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEJBKGUsdCgpKS5jb25zdGFudChlLmNvbnN0YW50KCkpfSxVTS5hcHBseShlLGFyZ3VtZW50cyl9LHNjYWxlU2VxdWVudGlhbFF1YW50aWxlOmZ1bmN0aW9uIHQoKXt2YXIgZT1bXSxuPVFNO2Z1bmN0aW9uIGkodCl7aWYoIWlzTmFOKHQ9K3QpKXJldHVybiBuKChEbChlLHQpLTEpLyhlLmxlbmd0aC0xKSl9cmV0dXJuIGkuZG9tYWluPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBlLnNsaWNlKCk7ZT1bXTtmb3IodmFyIG4scj0wLG89dC5sZW5ndGg7cjxvOysrciludWxsPT0obj10W3JdKXx8aXNOYU4obj0rbil8fGUucHVzaChuKTtyZXR1cm4gZS5zb3J0KFJsKSxpfSxpLmludGVycG9sYXRvcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LGkpOm59LGkuY29weT1mdW5jdGlvbigpe3JldHVybiB0KG4pLmRvbWFpbihlKX0sVU0uYXBwbHkoaSxhcmd1bWVudHMpfSxzY2FsZURpdmVyZ2luZzpmdW5jdGlvbiB0KCl7dmFyIGU9bEUoRkEoKShRTSkpO3JldHVybiBlLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gQkEoZSx0KCkpfSxVTS5hcHBseShlLGFyZ3VtZW50cyl9LHNjYWxlRGl2ZXJnaW5nTG9nOmZ1bmN0aW9uIHQoKXt2YXIgZT1fRShGQSgpKS5kb21haW4oWy4xLDEsMTBdKTtyZXR1cm4gZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEJBKGUsdCgpKS5iYXNlKGUuYmFzZSgpKX0sVU0uYXBwbHkoZSxhcmd1bWVudHMpfSxzY2FsZURpdmVyZ2luZ1BvdzpWQSxzY2FsZURpdmVyZ2luZ1NxcnQ6ZnVuY3Rpb24gSVIoKXtyZXR1cm4gVkEuYXBwbHkobnVsbCxhcmd1bWVudHMpLmV4cG9uZW50KC41KX0sc2NhbGVEaXZlcmdpbmdTeW1sb2c6ZnVuY3Rpb24gdCgpe3ZhciBlPXhFKEZBKCkpO3JldHVybiBlLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gQkEoZSx0KCkpLmNvbnN0YW50KGUuY29uc3RhbnQoKSl9LFVNLmFwcGx5KGUsYXJndW1lbnRzKX0sdGlja0Zvcm1hdDpzRSxzY2hlbWVDYXRlZ29yeTEwOmpBLHNjaGVtZUFjY2VudDpHQSxzY2hlbWVEYXJrMjpXQSxzY2hlbWVQYWlyZWQ6cUEsc2NoZW1lUGFzdGVsMTpZQSxzY2hlbWVQYXN0ZWwyOlhBLHNjaGVtZVNldDE6JEEsc2NoZW1lU2V0MjpLQSxzY2hlbWVTZXQzOlpBLHNjaGVtZVRhYmxlYXUxMDpKQSxpbnRlcnBvbGF0ZUJyQkc6ZWssc2NoZW1lQnJCRzp0ayxpbnRlcnBvbGF0ZVBSR246aWssc2NoZW1lUFJHbjpuayxpbnRlcnBvbGF0ZVBpWUc6b2ssc2NoZW1lUGlZRzpyayxpbnRlcnBvbGF0ZVB1T3I6c2ssc2NoZW1lUHVPcjphayxpbnRlcnBvbGF0ZVJkQnU6Y2ssc2NoZW1lUmRCdTpsayxpbnRlcnBvbGF0ZVJkR3k6aGssc2NoZW1lUmRHeTp1ayxpbnRlcnBvbGF0ZVJkWWxCdTpwayxzY2hlbWVSZFlsQnU6ZGssaW50ZXJwb2xhdGVSZFlsR246bWssc2NoZW1lUmRZbEduOmZrLGludGVycG9sYXRlU3BlY3RyYWw6X2ssc2NoZW1lU3BlY3RyYWw6Z2ssaW50ZXJwb2xhdGVCdUduOnZrLHNjaGVtZUJ1R246eWssaW50ZXJwb2xhdGVCdVB1OnhrLHNjaGVtZUJ1UHU6YmssaW50ZXJwb2xhdGVHbkJ1OlNrLHNjaGVtZUduQnU6d2ssaW50ZXJwb2xhdGVPclJkOkVrLHNjaGVtZU9yUmQ6TWssaW50ZXJwb2xhdGVQdUJ1R246Q2ssc2NoZW1lUHVCdUduOlRrLGludGVycG9sYXRlUHVCdTprayxzY2hlbWVQdUJ1OkFrLGludGVycG9sYXRlUHVSZDpQayxzY2hlbWVQdVJkOkxrLGludGVycG9sYXRlUmRQdTpJayxzY2hlbWVSZFB1Ok5rLGludGVycG9sYXRlWWxHbkJ1Ok9rLHNjaGVtZVlsR25CdTpSayxpbnRlcnBvbGF0ZVlsR246RGssc2NoZW1lWWxHbjp6ayxpbnRlcnBvbGF0ZVlsT3JCcjpIayxzY2hlbWVZbE9yQnI6QmssaW50ZXJwb2xhdGVZbE9yUmQ6Vmssc2NoZW1lWWxPclJkOkZrLGludGVycG9sYXRlQmx1ZXM6amssc2NoZW1lQmx1ZXM6VWssaW50ZXJwb2xhdGVHcmVlbnM6V2ssc2NoZW1lR3JlZW5zOkdrLGludGVycG9sYXRlR3JleXM6WWssc2NoZW1lR3JleXM6cWssaW50ZXJwb2xhdGVQdXJwbGVzOiRrLHNjaGVtZVB1cnBsZXM6WGssaW50ZXJwb2xhdGVSZWRzOlprLHNjaGVtZVJlZHM6S2ssaW50ZXJwb2xhdGVPcmFuZ2VzOlFrLHNjaGVtZU9yYW5nZXM6SmssaW50ZXJwb2xhdGVDaXZpZGlzOmZ1bmN0aW9uIFJSKHQpe3JldHVybiB0PU1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSksInJnYigiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQoLTQuNTQtdCooMzUuMzQtdCooMjM4MS43My10Kig2NDAyLjctdCooNzAyNC43Mi0yNzEwLjU3KnQpKSkpKSkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCgzMi40OSt0KigxNzAuNzMrdCooNTIuODItdCooMTMxLjQ2LXQqKDE3Ni41OC02Ny4zNyp0KSkpKSkpKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQoODEuMjQrdCooNDQyLjM2LXQqKDI0ODIuNDMtdCooNjE2Ny4yNC10Kig2NjE0Ljk0LTI0NzUuNjcqdCkpKSkpKSkrIikifSxpbnRlcnBvbGF0ZUN1YmVoZWxpeERlZmF1bHQ6dEwsaW50ZXJwb2xhdGVSYWluYm93OmZ1bmN0aW9uIE9SKHQpeyh0PDB8fHQ+MSkmJih0LT1NYXRoLmZsb29yKHQpKTt2YXIgZT1NYXRoLmFicyh0LS41KTtyZXR1cm4gaUwuaD0zNjAqdC0xMDAsaUwucz0xLjUtMS41KmUsaUwubD0uOC0uOSplLGlMKyIifSxpbnRlcnBvbGF0ZVdhcm06ZUwsaW50ZXJwb2xhdGVDb29sOm5MLGludGVycG9sYXRlU2luZWJvdzpmdW5jdGlvbiB6Uih0KXt2YXIgZTtyZXR1cm4gdD0oLjUtdCkqTWF0aC5QSSxyTC5yPTI1NSooZT1NYXRoLnNpbih0KSkqZSxyTC5nPTI1NSooZT1NYXRoLnNpbih0K29MKSkqZSxyTC5iPTI1NSooZT1NYXRoLnNpbih0K2FMKSkqZSxyTCsiIn0saW50ZXJwb2xhdGVUdXJibzpmdW5jdGlvbiBEUih0KXtyZXR1cm4gdD1NYXRoLm1heCgwLE1hdGgubWluKDEsdCkpLCJyZ2IoIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKDM0LjYxK3QqKDExNzIuMzMtdCooMTA3OTMuNTYtdCooMzMzMDAuMTItdCooMzgzOTQuNDktMTQ4MjUuMDUqdCkpKSkpKSkrIiwgIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKDIzLjMxK3QqKDU1Ny4zMyt0KigxMjI1LjMzLXQqKDM1NzQuOTYtdCooMTA3My43Nys3MDcuNTYqdCkpKSkpKSkrIiwgIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKDI3LjIrdCooMzIxMS4xLXQqKDE1MzI3Ljk3LXQqKDI3ODE0LXQqKDIyNTY5LjE4LTY4MzguNjYqdCkpKSkpKSkrIikifSxpbnRlcnBvbGF0ZVZpcmlkaXM6bEwsaW50ZXJwb2xhdGVNYWdtYTpjTCxpbnRlcnBvbGF0ZUluZmVybm86dUwsaW50ZXJwb2xhdGVQbGFzbWE6aEwsY3JlYXRlOmZ1bmN0aW9uIEJSKHQpe3JldHVybiBEdShOYyh0KS5jYWxsKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkpfSxjcmVhdG9yOk5jLGxvY2FsOmdoLG1hdGNoZXI6RGMsbW91c2U6YmgsbmFtZXNwYWNlOmtjLG5hbWVzcGFjZXM6QWMsY2xpZW50UG9pbnQ6dmgsc2VsZWN0OkR1LHNlbGVjdEFsbDp4aCxzZWxlY3Rpb246enUsc2VsZWN0b3I6UmMsc2VsZWN0b3JBbGw6emMsc3R5bGU6UWMsdG91Y2g6d2gsdG91Y2hlczpmdW5jdGlvbiBIUih0LGUpe251bGw9PWUmJihlPXloKCkudG91Y2hlcyk7Zm9yKHZhciBuPTAsaT1lP2UubGVuZ3RoOjAscj1uZXcgQXJyYXkoaSk7bjxpOysrbilyW25dPXZoKHQsZVtuXSk7cmV0dXJuIHJ9LHdpbmRvdzokYyxnZXQgZXZlbnQoKXtyZXR1cm4gTXV9LGN1c3RvbUV2ZW50Okx1LGFyYzpmdW5jdGlvbiBGUigpe3ZhciB0PVRMLGU9Q0wsbj1kTCgwKSxpPW51bGwscj1BTCxvPWtMLGE9TEwscz1udWxsO2Z1bmN0aW9uIGwoKXt2YXIgbCxjLHU9K3QuYXBwbHkodGhpcyxhcmd1bWVudHMpLGg9K2UuYXBwbHkodGhpcyxhcmd1bWVudHMpLGQ9ci5hcHBseSh0aGlzLGFyZ3VtZW50cyktd0wscD1vLmFwcGx5KHRoaXMsYXJndW1lbnRzKS13TCxmPXBMKHAtZCksbT1wPmQ7aWYoc3x8KHM9bD1PZygpKSxoPHUmJihjPWgsaD11LHU9YyksaD5iTClpZihmPlNMLWJMKXMubW92ZVRvKGgqbUwoZCksaCp5TChkKSkscy5hcmMoMCwwLGgsZCxwLCFtKSx1PmJMJiYocy5tb3ZlVG8odSptTChwKSx1KnlMKHApKSxzLmFyYygwLDAsdSxwLGQsbSkpO2Vsc2V7dmFyIGcsXyx5PWQsdj1wLGI9ZCx4PXAsdz1mLFM9ZixNPWEuYXBwbHkodGhpcyxhcmd1bWVudHMpLzIsRT1NPmJMJiYoaT8raS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dkwodSp1K2gqaCkpLFQ9X0wocEwoaC11KS8yLCtuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksQz1ULEE9VDtpZihFPmJMKXt2YXIgaz1FTChFL3UqeUwoTSkpLEw9RUwoRS9oKnlMKE0pKTsody09MiprKT5iTD8oYis9ayo9bT8xOi0xLHgtPWspOih3PTAsYj14PShkK3ApLzIpLChTLT0yKkwpPmJMPyh5Kz1MKj1tPzE6LTEsdi09TCk6KFM9MCx5PXY9KGQrcCkvMil9dmFyIFA9aCptTCh5KSxOPWgqeUwoeSksST11Km1MKHgpLFI9dSp5TCh4KTtpZihUPmJMKXt2YXIgTyx6PWgqbUwodiksRD1oKnlMKHYpLEI9dSptTChiKSxIPXUqeUwoYik7aWYoZjx4TCYmKE89UEwoUCxOLEIsSCx6LEQsSSxSKSkpe3ZhciBGPVAtT1swXSxWPU4tT1sxXSxVPXotT1swXSxqPUQtT1sxXSxHPTEveUwoTUwoKEYqVStWKmopLyh2TChGKkYrVipWKSp2TChVKlUraipqKSkpLzIpLFc9dkwoT1swXSpPWzBdK09bMV0qT1sxXSk7Qz1fTChULCh1LVcpLyhHLTEpKSxBPV9MKFQsKGgtVykvKEcrMSkpfX1TPmJMP0E+Ykw/KGc9TkwoQixILFAsTixoLEEsbSksXz1OTCh6LEQsSSxSLGgsQSxtKSxzLm1vdmVUbyhnLmN4K2cueDAxLGcuY3krZy55MDEpLEE8VD9zLmFyYyhnLmN4LGcuY3ksQSxmTChnLnkwMSxnLngwMSksZkwoXy55MDEsXy54MDEpLCFtKToocy5hcmMoZy5jeCxnLmN5LEEsZkwoZy55MDEsZy54MDEpLGZMKGcueTExLGcueDExKSwhbSkscy5hcmMoMCwwLGgsZkwoZy5jeStnLnkxMSxnLmN4K2cueDExKSxmTChfLmN5K18ueTExLF8uY3grXy54MTEpLCFtKSxzLmFyYyhfLmN4LF8uY3ksQSxmTChfLnkxMSxfLngxMSksZkwoXy55MDEsXy54MDEpLCFtKSkpOihzLm1vdmVUbyhQLE4pLHMuYXJjKDAsMCxoLHksdiwhbSkpOnMubW92ZVRvKFAsTiksdT5iTCYmdz5iTD9DPmJMPyhnPU5MKEksUix6LEQsdSwtQyxtKSxfPU5MKFAsTixCLEgsdSwtQyxtKSxzLmxpbmVUbyhnLmN4K2cueDAxLGcuY3krZy55MDEpLEM8VD9zLmFyYyhnLmN4LGcuY3ksQyxmTChnLnkwMSxnLngwMSksZkwoXy55MDEsXy54MDEpLCFtKToocy5hcmMoZy5jeCxnLmN5LEMsZkwoZy55MDEsZy54MDEpLGZMKGcueTExLGcueDExKSwhbSkscy5hcmMoMCwwLHUsZkwoZy5jeStnLnkxMSxnLmN4K2cueDExKSxmTChfLmN5K18ueTExLF8uY3grXy54MTEpLG0pLHMuYXJjKF8uY3gsXy5jeSxDLGZMKF8ueTExLF8ueDExKSxmTChfLnkwMSxfLngwMSksIW0pKSk6cy5hcmMoMCwwLHUseCxiLG0pOnMubGluZVRvKEksUil9ZWxzZSBzLm1vdmVUbygwLDApO2lmKHMuY2xvc2VQYXRoKCksbClyZXR1cm4gcz1udWxsLGwrIiJ8fG51bGx9cmV0dXJuIGwuY2VudHJvaWQ9ZnVuY3Rpb24oKXt2YXIgbj0oK3QuYXBwbHkodGhpcyxhcmd1bWVudHMpKyArZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLzIsaT0oK3IuYXBwbHkodGhpcyxhcmd1bWVudHMpKyArby5hcHBseSh0aGlzLGFyZ3VtZW50cykpLzIteEwvMjtyZXR1cm5bbUwoaSkqbix5TChpKSpuXX0sbC5pbm5lclJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOmRMKCtlKSxsKTp0fSxsLm91dGVyUmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6ZEwoK3QpLGwpOmV9LGwuY29ybmVyUmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6ZEwoK3QpLGwpOm59LGwucGFkUmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PXQ/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YgdD90OmRMKCt0KSxsKTppfSxsLnN0YXJ0QW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpkTCgrdCksbCk6cn0sbC5lbmRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmRMKCt0KSxsKTpvfSxsLnBhZEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6ZEwoK3QpLGwpOmF9LGwuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1udWxsPT10P251bGw6dCxsKTpzfSxsfSxhcmVhOkJMLGxpbmU6REwscGllOmZ1bmN0aW9uIFZSKCl7dmFyIHQ9RkwsZT1ITCxuPW51bGwsaT1kTCgwKSxyPWRMKFNMKSxvPWRMKDApO2Z1bmN0aW9uIGEoYSl7dmFyIHMsbCxjLHUsaCxkPWEubGVuZ3RoLHA9MCxmPW5ldyBBcnJheShkKSxtPW5ldyBBcnJheShkKSxnPStpLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxfPU1hdGgubWluKFNMLE1hdGgubWF4KC1TTCxyLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1nKSkseT1NYXRoLm1pbihNYXRoLmFicyhfKS9kLG8uYXBwbHkodGhpcyxhcmd1bWVudHMpKSx2PXkqKF88MD8tMToxKTtmb3Iocz0wO3M8ZDsrK3MpKGg9bVtmW3NdPXNdPSt0KGFbc10scyxhKSk+MCYmKHArPWgpO2ZvcihudWxsIT1lP2Yuc29ydCgoZnVuY3Rpb24odCxuKXtyZXR1cm4gZShtW3RdLG1bbl0pfSkpOm51bGwhPW4mJmYuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gbihhW3RdLGFbZV0pfSkpLHM9MCxjPXA/KF8tZCp2KS9wOjA7czxkOysrcyxnPXUpbVtsPWZbc11dPXtkYXRhOmFbbF0saW5kZXg6cyx2YWx1ZTpoPW1bbF0sc3RhcnRBbmdsZTpnLGVuZEFuZ2xlOnU9ZysoaD4wP2gqYzowKSt2LHBhZEFuZ2xlOnl9O3JldHVybiBtfXJldHVybiBhLnZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6ZEwoK2UpLGEpOnR9LGEuc29ydFZhbHVlcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LG49bnVsbCxhKTplfSxhLnNvcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCxlPW51bGwsYSk6bn0sYS5zdGFydEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6ZEwoK3QpLGEpOml9LGEuZW5kQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpkTCgrdCksYSk6cn0sYS5wYWRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmRMKCt0KSxhKTpvfSxhfSxhcmVhUmFkaWFsOnFMLHJhZGlhbEFyZWE6cUwsbGluZVJhZGlhbDpXTCxyYWRpYWxMaW5lOldMLHBvaW50UmFkaWFsOllMLGxpbmtIb3Jpem9udGFsOmZ1bmN0aW9uIFVSKCl7cmV0dXJuIFpMKEpMKX0sbGlua1ZlcnRpY2FsOmZ1bmN0aW9uIGpSKCl7cmV0dXJuIFpMKFFMKX0sbGlua1JhZGlhbDpmdW5jdGlvbiBHUigpe3ZhciB0PVpMKHRQKTtyZXR1cm4gdC5hbmdsZT10LngsZGVsZXRlIHQueCx0LnJhZGl1cz10LnksZGVsZXRlIHQueSx0fSxzeW1ib2w6ZnVuY3Rpb24gV1IoKXt2YXIgdD1kTChlUCksZT1kTCg2NCksbj1udWxsO2Z1bmN0aW9uIGkoKXt2YXIgaTtpZihufHwobj1pPU9nKCkpLHQuYXBwbHkodGhpcyxhcmd1bWVudHMpLmRyYXcobiwrZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLGkpcmV0dXJuIG49bnVsbCxpKyIifHxudWxsfXJldHVybiBpLnR5cGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpkTChlKSxpKTp0fSxpLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpkTCgrdCksaSk6ZX0saS5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPW51bGw9PXQ/bnVsbDp0LGkpOm59LGl9LHN5bWJvbHM6eVAsc3ltYm9sQ2lyY2xlOmVQLHN5bWJvbENyb3NzOm5QLHN5bWJvbERpYW1vbmQ6b1Asc3ltYm9sU3F1YXJlOnVQLHN5bWJvbFN0YXI6Y1Asc3ltYm9sVHJpYW5nbGU6ZFAsc3ltYm9sV3llOl9QLGN1cnZlQmFzaXNDbG9zZWQ6ZnVuY3Rpb24gcVIodCl7cmV0dXJuIG5ldyBTUCh0KX0sY3VydmVCYXNpc09wZW46ZnVuY3Rpb24gWVIodCl7cmV0dXJuIG5ldyBNUCh0KX0sY3VydmVCYXNpczp3UCxjdXJ2ZUJ1bmRsZTpUUCxjdXJ2ZUNhcmRpbmFsQ2xvc2VkOlBQLGN1cnZlQ2FyZGluYWxPcGVuOklQLGN1cnZlQ2FyZGluYWw6a1AsY3VydmVDYXRtdWxsUm9tQ2xvc2VkOkJQLGN1cnZlQ2F0bXVsbFJvbU9wZW46RlAsY3VydmVDYXRtdWxsUm9tOnpQLGN1cnZlTGluZWFyQ2xvc2VkOmZ1bmN0aW9uIFhSKHQpe3JldHVybiBuZXcgVlAodCl9LGN1cnZlTGluZWFyOlJMLGN1cnZlTW9ub3RvbmVYOmZ1bmN0aW9uICRSKHQpe3JldHVybiBuZXcgcVAodCl9LGN1cnZlTW9ub3RvbmVZOmZ1bmN0aW9uIEtSKHQpe3JldHVybiBuZXcgWVAodCl9LGN1cnZlTmF0dXJhbDpmdW5jdGlvbiBaUih0KXtyZXR1cm4gbmV3ICRQKHQpfSxjdXJ2ZVN0ZXA6ZnVuY3Rpb24gSlIodCl7cmV0dXJuIG5ldyBaUCh0LC41KX0sY3VydmVTdGVwQWZ0ZXI6ZnVuY3Rpb24gUVIodCl7cmV0dXJuIG5ldyBaUCh0LDEpfSxjdXJ2ZVN0ZXBCZWZvcmU6ZnVuY3Rpb24gdE8odCl7cmV0dXJuIG5ldyBaUCh0LDApfSxzdGFjazpmdW5jdGlvbiBlTygpe3ZhciB0PWRMKFtdKSxlPVFQLG49SlAsaT10TjtmdW5jdGlvbiByKHIpe3ZhciBvLGEscz10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxsPXIubGVuZ3RoLGM9cy5sZW5ndGgsdT1uZXcgQXJyYXkoYyk7Zm9yKG89MDtvPGM7KytvKXtmb3IodmFyIGgsZD1zW29dLHA9dVtvXT1uZXcgQXJyYXkobCksZj0wO2Y8bDsrK2YpcFtmXT1oPVswLCtpKHJbZl0sZCxmLHIpXSxoLmRhdGE9cltmXTtwLmtleT1kfWZvcihvPTAsYT1lKHUpO288YzsrK28pdVthW29dXS5pbmRleD1vO3JldHVybiBuKHUsYSksdX1yZXR1cm4gci5rZXlzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6ZEwoWEwuY2FsbChlKSkscik6dH0sci52YWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmRMKCt0KSxyKTppfSxyLm9yZGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPW51bGw9PXQ/UVA6ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpkTChYTC5jYWxsKHQpKSxyKTplfSxyLm9mZnNldD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1udWxsPT10P0pQOnQscik6bn0scn0sc3RhY2tPZmZzZXRFeHBhbmQ6ZnVuY3Rpb24gbk8odCxlKXtpZigoaT10Lmxlbmd0aCk+MCl7Zm9yKHZhciBuLGkscixvPTAsYT10WzBdLmxlbmd0aDtvPGE7KytvKXtmb3Iocj1uPTA7bjxpOysrbilyKz10W25dW29dWzFdfHwwO2lmKHIpZm9yKG49MDtuPGk7KytuKXRbbl1bb11bMV0vPXJ9SlAodCxlKX19LHN0YWNrT2Zmc2V0RGl2ZXJnaW5nOmZ1bmN0aW9uIGlPKHQsZSl7aWYoKHM9dC5sZW5ndGgpPjApZm9yKHZhciBuLGkscixvLGEscyxsPTAsYz10W2VbMF1dLmxlbmd0aDtsPGM7KytsKWZvcihvPWE9MCxuPTA7bjxzOysrbikocj0oaT10W2Vbbl1dW2xdKVsxXS1pWzBdKT4wPyhpWzBdPW8saVsxXT1vKz1yKTpyPDA/KGlbMV09YSxpWzBdPWErPXIpOihpWzBdPTAsaVsxXT1yKX0sc3RhY2tPZmZzZXROb25lOkpQLHN0YWNrT2Zmc2V0U2lsaG91ZXR0ZTpmdW5jdGlvbiByTyh0LGUpe2lmKChuPXQubGVuZ3RoKT4wKXtmb3IodmFyIG4saT0wLHI9dFtlWzBdXSxvPXIubGVuZ3RoO2k8bzsrK2kpe2Zvcih2YXIgYT0wLHM9MDthPG47KythKXMrPXRbYV1baV1bMV18fDA7cltpXVsxXSs9cltpXVswXT0tcy8yfUpQKHQsZSl9fSxzdGFja09mZnNldFdpZ2dsZTpmdW5jdGlvbiBvTyh0LGUpe2lmKChyPXQubGVuZ3RoKT4wJiYoaT0obj10W2VbMF1dKS5sZW5ndGgpPjApe2Zvcih2YXIgbixpLHIsbz0wLGE9MTthPGk7KythKXtmb3IodmFyIHM9MCxsPTAsYz0wO3M8cjsrK3Mpe2Zvcih2YXIgdT10W2Vbc11dLGg9dVthXVsxXXx8MCxkPShoLSh1W2EtMV1bMV18fDApKS8yLHA9MDtwPHM7KytwKXt2YXIgZj10W2VbcF1dO2QrPShmW2FdWzFdfHwwKS0oZlthLTFdWzFdfHwwKX1sKz1oLGMrPWQqaH1uW2EtMV1bMV0rPW5bYS0xXVswXT1vLGwmJihvLT1jL2wpfW5bYS0xXVsxXSs9blthLTFdWzBdPW8sSlAodCxlKX19LHN0YWNrT3JkZXJBcHBlYXJhbmNlOmVOLHN0YWNrT3JkZXJBc2NlbmRpbmc6aU4sc3RhY2tPcmRlckRlc2NlbmRpbmc6ZnVuY3Rpb24gYU8odCl7cmV0dXJuIGlOKHQpLnJldmVyc2UoKX0sc3RhY2tPcmRlckluc2lkZU91dDpmdW5jdGlvbiBzTyh0KXt2YXIgZSxuLGk9dC5sZW5ndGgscj10Lm1hcChyTiksbz1lTih0KSxhPTAscz0wLGw9W10sYz1bXTtmb3IoZT0wO2U8aTsrK2Upbj1vW2VdLGE8cz8oYSs9cltuXSxsLnB1c2gobikpOihzKz1yW25dLGMucHVzaChuKSk7cmV0dXJuIGMucmV2ZXJzZSgpLmNvbmNhdChsKX0sc3RhY2tPcmRlck5vbmU6UVAsc3RhY2tPcmRlclJldmVyc2U6ZnVuY3Rpb24gbE8odCl7cmV0dXJuIFFQKHQpLnJldmVyc2UoKX0sdGltZUludGVydmFsOlBFLHRpbWVNaWxsaXNlY29uZDpJRSx0aW1lTWlsbGlzZWNvbmRzOlJFLHV0Y01pbGxpc2Vjb25kOklFLHV0Y01pbGxpc2Vjb25kczpSRSx0aW1lU2Vjb25kOlZFLHRpbWVTZWNvbmRzOlVFLHV0Y1NlY29uZDpWRSx1dGNTZWNvbmRzOlVFLHRpbWVNaW51dGU6R0UsdGltZU1pbnV0ZXM6V0UsdGltZUhvdXI6WUUsdGltZUhvdXJzOlhFLHRpbWVEYXk6S0UsdGltZURheXM6WkUsdGltZVdlZWs6UUUsdGltZVdlZWtzOmFULHRpbWVTdW5kYXk6UUUsdGltZVN1bmRheXM6YVQsdGltZU1vbmRheTp0VCx0aW1lTW9uZGF5czpzVCx0aW1lVHVlc2RheTplVCx0aW1lVHVlc2RheXM6bFQsdGltZVdlZG5lc2RheTpuVCx0aW1lV2VkbmVzZGF5czpjVCx0aW1lVGh1cnNkYXk6aVQsdGltZVRodXJzZGF5czp1VCx0aW1lRnJpZGF5OnJULHRpbWVGcmlkYXlzOmhULHRpbWVTYXR1cmRheTpvVCx0aW1lU2F0dXJkYXlzOmRULHRpbWVNb250aDpmVCx0aW1lTW9udGhzOm1ULHRpbWVZZWFyOl9ULHRpbWVZZWFyczp5VCx1dGNNaW51dGU6YlQsdXRjTWludXRlczp4VCx1dGNIb3VyOlNULHV0Y0hvdXJzOk1ULHV0Y0RheTpUVCx1dGNEYXlzOkNULHV0Y1dlZWs6a1QsdXRjV2Vla3M6elQsdXRjU3VuZGF5OmtULHV0Y1N1bmRheXM6elQsdXRjTW9uZGF5OkxULHV0Y01vbmRheXM6RFQsdXRjVHVlc2RheTpQVCx1dGNUdWVzZGF5czpCVCx1dGNXZWRuZXNkYXk6TlQsdXRjV2VkbmVzZGF5czpIVCx1dGNUaHVyc2RheTpJVCx1dGNUaHVyc2RheXM6RlQsdXRjRnJpZGF5OlJULHV0Y0ZyaWRheXM6VlQsdXRjU2F0dXJkYXk6T1QsdXRjU2F0dXJkYXlzOlVULHV0Y01vbnRoOkdULHV0Y01vbnRoczpXVCx1dGNZZWFyOllULHV0Y1llYXJzOlhULHRpbWVGb3JtYXREZWZhdWx0TG9jYWxlOnhBLGdldCB0aW1lRm9ybWF0KCl7cmV0dXJuIHRDfSxnZXQgdGltZVBhcnNlKCl7cmV0dXJuIGVDfSxnZXQgdXRjRm9ybWF0KCl7cmV0dXJuIG5DfSxnZXQgdXRjUGFyc2UoKXtyZXR1cm4gaUN9LHRpbWVGb3JtYXRMb2NhbGU6SlQsaXNvRm9ybWF0OlNBLGlzb1BhcnNlOkVBLG5vdzpxcCx0aW1lcjokcCx0aW1lckZsdXNoOktwLHRpbWVvdXQ6dGYsaW50ZXJ2YWw6ZnVuY3Rpb24gY08odCxlLG4pe3ZhciBpPW5ldyBYcCxyPWU7cmV0dXJuIG51bGw9PWU/KGkucmVzdGFydCh0LGUsbiksaSk6KGU9K2Usbj1udWxsPT1uP3FwKCk6K24saS5yZXN0YXJ0KChmdW5jdGlvbiBvKGEpe2ErPXIsaS5yZXN0YXJ0KG8scis9ZSxuKSx0KGEpfSksZSxuKSxpKX0sdHJhbnNpdGlvbjpEZixhY3RpdmU6ZnVuY3Rpb24gdU8odCxlKXt2YXIgbixpLHI9dC5fX3RyYW5zaXRpb247aWYocilmb3IoaSBpbiBlPW51bGw9PWU/bnVsbDplKyIiLHIpaWYoKG49cltpXSkuc3RhdGU+MSYmbi5uYW1lPT09ZSlyZXR1cm4gbmV3IHpmKFtbdF1dLFdtLGUsK2kpO3JldHVybiBudWxsfSxpbnRlcnJ1cHQ6bGYsdm9yb25vaTpmdW5jdGlvbiBoTygpe3ZhciB0PWFOLGU9c04sbj1udWxsO2Z1bmN0aW9uIGkoaSl7cmV0dXJuIG5ldyBVTihpLm1hcCgoZnVuY3Rpb24obixyKXt2YXIgbz1bTWF0aC5yb3VuZCh0KG4scixpKS9CTikqQk4sTWF0aC5yb3VuZChlKG4scixpKS9CTikqQk5dO3JldHVybiBvLmluZGV4PXIsby5kYXRhPW4sb30pKSxuKX1yZXR1cm4gaS5wb2x5Z29ucz1mdW5jdGlvbih0KXtyZXR1cm4gaSh0KS5wb2x5Z29ucygpfSxpLmxpbmtzPWZ1bmN0aW9uKHQpe3JldHVybiBpKHQpLmxpbmtzKCl9LGkudHJpYW5nbGVzPWZ1bmN0aW9uKHQpe3JldHVybiBpKHQpLnRyaWFuZ2xlcygpfSxpLng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpvTigrZSksaSk6dH0saS55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6b04oK3QpLGkpOmV9LGkuZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPW51bGw9PXQ/bnVsbDpbWyt0WzBdWzBdLCt0WzBdWzFdXSxbK3RbMV1bMF0sK3RbMV1bMV1dXSxpKTpuJiZbW25bMF1bMF0sblswXVsxXV0sW25bMV1bMF0sblsxXVsxXV1dfSxpLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49bnVsbD09dD9udWxsOltbMCwwXSxbK3RbMF0sK3RbMV1dXSxpKTpuJiZbblsxXVswXS1uWzBdWzBdLG5bMV1bMV0tblswXVsxXV19LGl9LHpvb206bkksem9vbVRyYW5zZm9ybTpZTix6b29tSWRlbnRpdHk6cU59KTtjbGFzcyBkTyBleHRlbmRzIGtse2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9leHBlcmltZW50cz1bXX1sb2FkKCl7Y29uc3QgdD1FcigpLmV4cGVyaW1lbnRzKCk7cmV0dXJuIHRoaXMucmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKCh0PT57Q2UuZXhwb3J0cy5pc0VxdWFsKHRoaXMuX2V4cGVyaW1lbnRzLHQpfHwodGhpcy5fZXhwZXJpbWVudHM9dCx0aGlzLmVtaXRDaGFuZ2UoKSl9KSl9Z2V0RXhwZXJpbWVudHMoKXtyZXR1cm4gdGhpcy5fZXhwZXJpbWVudHMuc2xpY2UoKX19Y29uc3QgcE89bmV3IGRPLGZPPVsiI2ZmNzA0MyIsIiMwMDc3YmIiLCIjY2MzMzExIiwiIzMzYmJlZSIsIiNlZTMzNzciLCIjMDA5OTg4IiwiI2JiYmJiYiJdO2NsYXNzIG1Pe2NvbnN0cnVjdG9yKHQ9Zk8pe3RoaXMucGFsZXR0ZT10LHRoaXMuaWRlbnRpZmllcnM9amcoKX1zZXREb21haW4odCl7cmV0dXJuIHRoaXMuaWRlbnRpZmllcnM9amcoKSx0LmZvckVhY2goKCh0LGUpPT57dGhpcy5pZGVudGlmaWVycy5zZXQodCx0aGlzLnBhbGV0dGVbZSV0aGlzLnBhbGV0dGUubGVuZ3RoXSl9KSksdGhpc31nZXRDb2xvcih0KXtpZighdGhpcy5pZGVudGlmaWVycy5oYXModCkpdGhyb3cgbmV3IEVycm9yKGBTdHJpbmcgJHt0fSB3YXMgbm90IGluIHRoZSBkb21haW4uYCk7cmV0dXJuIHRoaXMuaWRlbnRpZmllcnMuZ2V0KHQpfX1mdW5jdGlvbiBnTyh0LGUpe2NvbnN0IG49bmV3IG1PO2Z1bmN0aW9uIGkoKXtuLnNldERvbWFpbihlKCkpfXJldHVybiB0LmFkZExpc3RlbmVyKGkpLGkoKSx0PT5uLmdldENvbG9yKHQpfWNvbnN0IF9PPWdPKElsLCgoKT0+SWwuZ2V0UnVucygpKSk7Z08ocE8sKCgpPT5wTy5nZXRFeHBlcmltZW50cygpLm1hcCgoKHtuYW1lOnR9KT0+dCkpKSksbWwoe21vZHVsZU5hbWU6InJ1bi1jb2xvci1zdHlsZSIsc3R5bGVDb250ZW50OiJcbiAgICBbY29sb3ItY2xhc3M9J2xpZ2h0LWJsdWUnXSBwYXBlci1jaGVja2JveCB7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtY29sb3I6IHZhcigtLXBhcGVyLWxpZ2h0LWJsdWUtNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLWxpZ2h0LWJsdWUtNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1saWdodC1ibHVlLTkwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLWxpZ2h0LWJsdWUtOTAwKTtcbiAgICB9XG4gICAgW2NvbG9yLWNsYXNzPSdyZWQnXSBwYXBlci1jaGVja2JveCB7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtY29sb3I6IHZhcigtLXBhcGVyLXJlZC01MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItcmVkLTUwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItcmVkLTkwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLXJlZC05MDApO1xuICAgIH1cbiAgICBbY29sb3ItY2xhc3M9J2dyZWVuJ10gcGFwZXItY2hlY2tib3gge1xuICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1ncmVlbi01MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItZ3JlZW4tNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1ncmVlbi05MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtaW5rLWNvbG9yOiB2YXIoLS1wYXBlci1ncmVlbi05MDApO1xuICAgIH1cbiAgICBbY29sb3ItY2xhc3M9J3B1cnBsZSddIHBhcGVyLWNoZWNrYm94IHtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItcHVycGxlLTUwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtaW5rLWNvbG9yOiB2YXIoLS1wYXBlci1wdXJwbGUtNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1wdXJwbGUtOTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItcHVycGxlLTkwMCk7XG4gICAgfVxuICAgIFtjb2xvci1jbGFzcz0ndGVhbCddIHBhcGVyLWNoZWNrYm94IHtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItdGVhbC01MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItdGVhbC01MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtY29sb3I6IHZhcigtLXBhcGVyLXRlYWwtOTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItdGVhbC05MDApO1xuICAgIH1cbiAgICBbY29sb3ItY2xhc3M9J3BpbmsnXSBwYXBlci1jaGVja2JveCB7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtY29sb3I6IHZhcigtLXBhcGVyLXBpbmstNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLXBpbmstNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1waW5rLTkwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLXBpbmstOTAwKTtcbiAgICB9XG4gICAgW2NvbG9yLWNsYXNzPSdvcmFuZ2UnXSBwYXBlci1jaGVja2JveCB7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtY29sb3I6IHZhcigtLXBhcGVyLW9yYW5nZS01MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItb3JhbmdlLTUwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItb3JhbmdlLTkwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LXVuY2hlY2tlZC1pbmstY29sb3I6IHZhcigtLXBhcGVyLW9yYW5nZS05MDApO1xuICAgIH1cbiAgICBbY29sb3ItY2xhc3M9J2Jyb3duJ10gcGFwZXItY2hlY2tib3gge1xuICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1icm93bi01MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItYnJvd24tNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1icm93bi05MDApO1xuICAgICAgLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtaW5rLWNvbG9yOiB2YXIoLS1wYXBlci1icm93bi05MDApO1xuICAgIH1cbiAgICBbY29sb3ItY2xhc3M9J2luZGlnbyddIHBhcGVyLWNoZWNrYm94IHtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1jb2xvcjogdmFyKC0tcGFwZXItaW5kaWdvLTUwMCk7XG4gICAgICAtLXBhcGVyLWNoZWNrYm94LWNoZWNrZWQtaW5rLWNvbG9yOiB2YXIoLS1wYXBlci1pbmRpZ28tNTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWNvbG9yOiB2YXIoLS1wYXBlci1pbmRpZ28tOTAwKTtcbiAgICAgIC0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWluay1jb2xvcjogdmFyKC0tcGFwZXItaW5kaWdvLTkwMCk7XG4gICAgfVxuICAifSk7bGV0IHlPPWNsYXNzIGV4dGVuZHMoY3Iod2UpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5uYW1lcz1bXSx0aGlzLmNvbG9yaW5nPXtnZXRDb2xvcjooKT0+IiJ9LHRoaXMucmVnZXg9IiIsdGhpcy5zZWxlY3Rpb25TdGF0ZT17fSx0aGlzLm1heE5hbWVzVG9FbmFibGVCeURlZmF1bHQ9NDAsdGhpcy5fZGVib3VuY2VkUmVnZXhDaGFuZ2U9dGhpcy5fZGVib3VuY2VkUmVnZXhDaGFuZ2VJbXBsKCl9X2RlYm91bmNlZFJlZ2V4Q2hhbmdlSW1wbCgpe3ZhciB0PUNlLmV4cG9ydHMuZGVib3VuY2UoKHQ9Pnt0aGlzLnJlZ2V4PXR9KSwxNTAse2xlYWRpbmc6ITF9KTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLiQkKCIjbmFtZXMtcmVnZXgiKS52YWx1ZTsiIj09ZT90aGlzLmFzeW5jKCgoKT0+e3RoaXMucmVnZXg9ZX0pLDMwKTp0KGUpfX1nZXQgX3JlZ2V4KCl7dmFyIHQ9dGhpcy5yZWdleDt0cnl7cmV0dXJuIG5ldyBSZWdFeHAodCl9Y2F0Y2godCl7cmV0dXJuIG51bGx9fV9zZXRJc29sYXRvckljb24oKXt2YXIgdD10aGlzLnNlbGVjdGlvblN0YXRlLGU9Q2UuZXhwb3J0cy5maWx0ZXIoQ2UuZXhwb3J0cy52YWx1ZXModCkpLmxlbmd0aDtBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLnJvb3QucXVlcnlTZWxlY3RvckFsbCgiLmlzb2xhdG9yIikpLmZvckVhY2goKGZ1bmN0aW9uKG4pe24uaWNvbj0xPT09ZSYmdFtuLm5hbWVdPyJyYWRpby1idXR0b24tY2hlY2tlZCI6InJhZGlvLWJ1dHRvbi11bmNoZWNrZWQifSkpfWNvbXB1dGVOYW1lc01hdGNoaW5nUmVnZXgodCxlKXtjb25zdCBuPXRoaXMuX3JlZ2V4O3JldHVybiBuP3RoaXMubmFtZXMuZmlsdGVyKCh0PT5uLnRlc3QodCkpKTp0aGlzLm5hbWVzfWNvbXB1dGVPdXRTZWxlY3RlZCh0LGUpe3ZhciBuPXRoaXMuc2VsZWN0aW9uU3RhdGUsaT10aGlzLm5hbWVzTWF0Y2hpbmdSZWdleC5sZW5ndGg8PXRoaXMubWF4TmFtZXNUb0VuYWJsZUJ5RGVmYXVsdDtyZXR1cm4gdGhpcy5uYW1lc01hdGNoaW5nUmVnZXguZmlsdGVyKCh0PT5udWxsPT1uW3RdP2k6blt0XSkpfXN5bmNocm9uaXplQ29sb3JzKHQpe3RoaXMuX3NldElzb2xhdG9ySWNvbigpO3RoaXMucm9vdC5xdWVyeVNlbGVjdG9yQWxsKCJwYXBlci1jaGVja2JveCIpLmZvckVhY2goKHQ9Pntjb25zdCBlPXRoaXMuY29sb3JpbmcuZ2V0Q29sb3IodC5uYW1lKTt0LnVwZGF0ZVN0eWxlcyh7Ii0tcGFwZXItY2hlY2tib3gtY2hlY2tlZC1jb2xvciI6ZSwiLS1wYXBlci1jaGVja2JveC1jaGVja2VkLWluay1jb2xvciI6ZSwiLS1wYXBlci1jaGVja2JveC11bmNoZWNrZWQtY29sb3IiOmUsIi0tcGFwZXItY2hlY2tib3gtdW5jaGVja2VkLWluay1jb2xvciI6ZX0pfSkpO3RoaXMucm9vdC5xdWVyeVNlbGVjdG9yQWxsKCIuaXNvbGF0b3IiKS5mb3JFYWNoKCh0PT57Y29uc3QgZT10aGlzLmNvbG9yaW5nLmdldENvbG9yKHQubmFtZSk7dC5zdHlsZS5jb2xvcj1lfSkpLHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy51cGRhdGVTdHlsZXMoKX0pKX1faXNvbGF0ZU5hbWUodCl7dmFyIGU9dC50YXJnZXQubmFtZSxuPXt9O3RoaXMubmFtZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7blt0XT10PT1lfSkpLHRoaXMuc2VsZWN0aW9uU3RhdGU9bn1fY2hlY2tib3hDaGFuZ2UodCl7dmFyIGU9dC50YXJnZXQ7Y29uc3Qgbj1DZS5leHBvcnRzLmNsb25lKHRoaXMuc2VsZWN0aW9uU3RhdGUpO25bZS5uYW1lXT1lLmNoZWNrZWQsdGhpcy5zZWxlY3Rpb25TdGF0ZT1ufV9pc0NoZWNrZWQodCxlKXtyZXR1cm4tMSE9dGhpcy5vdXRTZWxlY3RlZC5pbmRleE9mKHQpfXRvZ2dsZUFsbCgpe2NvbnN0IHQ9dGhpcy5uYW1lc01hdGNoaW5nUmVnZXguc29tZSgodD0+dGhpcy5vdXRTZWxlY3RlZC5pbmNsdWRlcyh0KSkpLGU9e307dGhpcy5uYW1lcy5mb3JFYWNoKChuPT57ZVtuXT0hdH0pKSx0aGlzLnNlbGVjdGlvblN0YXRlPWV9fTt5Ty50ZW1wbGF0ZT14ZWAKICAgIDxzdHlsZSBpbmNsdWRlPSJzY3JvbGxiYXItc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGUgaW5jbHVkZT0icnVuLWNvbG9yLXN0eWxlIj48L3N0eWxlPgoKICAgIDxwYXBlci1pbnB1dAogICAgICBpZD0ibmFtZXMtcmVnZXgiCiAgICAgIG5vLWxhYmVsLWZsb2F0PSIiCiAgICAgIGxhYmVsPSJXcml0ZSBhIHJlZ2V4IHRvIGZpbHRlciBydW5zIgogICAgICB2YWx1ZT0iW1tyZWdleF1dIgogICAgICBvbi1iaW5kLXZhbHVlLWNoYW5nZWQ9Il9kZWJvdW5jZWRSZWdleENoYW5nZSIKICAgID48L3BhcGVyLWlucHV0PgogICAgPGRpdiBpZD0ib3V0ZXItY29udGFpbmVyIiBjbGFzcz0ic2Nyb2xsYmFyIj4KICAgICAgPHRlbXBsYXRlCiAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgaXRlbXM9IltbbmFtZXNNYXRjaGluZ1JlZ2V4XV0iCiAgICAgICAgb24tZG9tLWNoYW5nZT0ic3luY2hyb25pemVDb2xvcnMiCiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJuYW1lLXJvdyI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJpY29uLWNvbnRhaW5lciBjaGVja2JveC1jb250YWluZXIgdmVydGljYWwtYWxpZ24tY29udGFpbmVyIgogICAgICAgICAgPgogICAgICAgICAgICA8cGFwZXItY2hlY2tib3gKICAgICAgICAgICAgICBjbGFzcz0iY2hlY2tib3ggdmVydGljYWwtYWxpZ24tY2VudGVyIgogICAgICAgICAgICAgIGlkJD0iY2hlY2tib3gtW1tpdGVtXV0iCiAgICAgICAgICAgICAgbmFtZT0iW1tpdGVtXV0iCiAgICAgICAgICAgICAgY2hlY2tlZCQ9IltbX2lzQ2hlY2tlZChpdGVtLCBzZWxlY3Rpb25TdGF0ZS4qKV1dIgogICAgICAgICAgICAgIG9uLWNoYW5nZT0iX2NoZWNrYm94Q2hhbmdlIgogICAgICAgICAgICA+PC9wYXBlci1jaGVja2JveD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0iaWNvbi1jb250YWluZXIgaXNvbGF0b3ItY29udGFpbmVyIHZlcnRpY2FsLWFsaWduLWNvbnRhaW5lciIKICAgICAgICAgID4KICAgICAgICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgICAgICAgaWNvbj0icmFkaW8tYnV0dG9uLXVuY2hlY2tlZCIKICAgICAgICAgICAgICBjbGFzcz0iaXNvbGF0b3IgdmVydGljYWwtYWxpZ24tY2VudGVyIgogICAgICAgICAgICAgIG9uLXRhcD0iX2lzb2xhdGVOYW1lIgogICAgICAgICAgICAgIG5hbWU9IltbaXRlbV1dIgogICAgICAgICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbS1sYWJlbC1jb250YWluZXIiPgogICAgICAgICAgICA8c3Bhbj5bW2l0ZW1dXTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIHBhcGVyLWlucHV0IHsKICAgICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1mb2N1cy1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItaW5wdXQ6IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItbGFiZWw6IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgIH0KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQogICAgICAjb3V0ZXItY29udGFpbmVyIHsKICAgICAgICBjb250YWluOiBjb250ZW50OwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgfQogICAgICAubmFtZS1yb3cgewogICAgICAgIGNvbnRhaW46IGNvbnRlbnQ7CiAgICAgICAgcGFkZGluZy10b3A6IDVweDsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOyAvKiBtYWtlcyB3cmFwcGluZyBvZiBoeXBlcnBhcmFtIHN0cmluZ3MgYmV0dGVyICovCiAgICAgIH0KICAgICAgLmljb24tY29udGFpbmVyIHsKICAgICAgICBmbGV4LWdyb3c6IDA7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAycHg7CiAgICAgIH0KICAgICAgLmNoZWNrYm94IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDJweDsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgIH0KICAgICAgLmlzb2xhdG9yIHsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgcGFkZGluZzogMHB4OwogICAgICB9CiAgICAgIC5pc29sYXRvci1jb250YWluZXIgewogICAgICAgIHBhZGRpbmctbGVmdDogNnB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDNweDsKICAgICAgfQogICAgICAuY2hlY2tib3gtY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDJweDsKICAgICAgfQogICAgICAuaXRlbS1sYWJlbC1jb250YWluZXIgewogICAgICAgIHBhZGRpbmctbGVmdDogNXB4OwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgICAgICB3aWR0aDogMHB4OyAvKiBoYWNrIHRvIGdldCB0aGUgZmxleC1ncm93IHRvIHdvcmsgcHJvcGVybHkgKi8KICAgICAgfQogICAgICAudG9vbHRpcC12YWx1ZS1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZmxleC1ncm93OiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICAgIHBhZGRpbmctbGVmdDogMnB4OwogICAgICB9CiAgICAgIC52ZXJ0aWNhbC1hbGlnbi1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KICAgICAgLnZlcnRpY2FsLWFsaWduLWNvbnRhaW5lciAudmVydGljYWwtYWxpZ24tY2VudGVyIHsKICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7CiAgICAgIH0KICAgICAgLnZlcnRpY2FsLWFsaWduLWNvbnRhaW5lciAudmVydGljYWwtYWxpZ24tdG9wIHsKICAgICAgICBhbGlnbi1zZWxmOiBzdGFydDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSx5Ty5wcm90b3R5cGUsIm5hbWVzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHlPLnByb3RvdHlwZSwiY29sb3JpbmciLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHlPLnByb3RvdHlwZSwicmVnZXgiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheSxjb21wdXRlZDoiY29tcHV0ZU5hbWVzTWF0Y2hpbmdSZWdleChuYW1lcy4qLCBfcmVnZXgpIn0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLHlPLnByb3RvdHlwZSwibmFtZXNNYXRjaGluZ1JlZ2V4Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSx5Ty5wcm90b3R5cGUsInNlbGVjdGlvblN0YXRlIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXksbm90aWZ5OiEwLGNvbXB1dGVkOiJjb21wdXRlT3V0U2VsZWN0ZWQobmFtZXNNYXRjaGluZ1JlZ2V4LiosIHNlbGVjdGlvblN0YXRlLiopIn0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLHlPLnByb3RvdHlwZSwib3V0U2VsZWN0ZWQiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0seU8ucHJvdG90eXBlLCJtYXhOYW1lc1RvRW5hYmxlQnlEZWZhdWx0Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHlPLnByb3RvdHlwZSwiX2RlYm91bmNlZFJlZ2V4Q2hhbmdlIix2b2lkIDApLHQoW3MoInJlZ2V4IiksZSgiZGVzaWduOnR5cGUiLFJlZ0V4cCksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0seU8ucHJvdG90eXBlLCJfcmVnZXgiLG51bGwpLHQoW2EoInNlbGVjdGlvblN0YXRlIiwibmFtZXMiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLHlPLnByb3RvdHlwZSwiX3NldElzb2xhdG9ySWNvbiIsbnVsbCkseU89dChbaSgidGYtbXVsdGktY2hlY2tib3giKV0seU8pO2xldCB2Tz1jbGFzcyBleHRlbmRzIHdle2dldCBfcGFydHMoKXt2YXIgdD10aGlzLnZhbHVlLGU9dGhpcy5kZWxpbWl0ZXJQYXR0ZXJuO2NvbnN0IG49W107Zm9yKDs7KXtjb25zdCBpPW5ldyBSZWdFeHAoZSwiZyIpO2lmKGkudGVzdCh0KSwwPT09aS5sYXN0SW5kZXgpe24ucHVzaCh0KTticmVha31uLnB1c2godC5zbGljZSgwLGkubGFzdEluZGV4KSksdD10LnNsaWNlKGkubGFzdEluZGV4KX1yZXR1cm4gbn19O3ZPLnRlbXBsYXRlPXhlYAogICAgPCEtLQogICAgICBUaGlzIHVnbHkgZm9ybWF0dGluZyBpcyByZXF1aXJlZCB0byBwcmV2ZW50IHNwYWNlcyBmcm9tIHNsaXBwaW5nCiAgICAgIGludG8gdGhlIEhUTUwuCiAgICAtLT4KICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX3BhcnRzXV0iIGFzPSJwYXJ0IgogICAgICA+W1twYXJ0XV08d2JyCiAgICAvPjwvdGVtcGxhdGU+CiAgYCx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx2Ty5wcm90b3R5cGUsInZhbHVlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHZPLnByb3RvdHlwZSwiZGVsaW1pdGVyUGF0dGVybiIsdm9pZCAwKSx0KFtzKCJ2YWx1ZSIsImRlbGltaXRlclBhdHRlcm4iKSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLHZPLnByb3RvdHlwZSwiX3BhcnRzIixudWxsKSx2Tz10KFtpKCJ0Zi13YnItc3RyaW5nIildLHZPKTtsZXQgYk89Y2xhc3MgZXh0ZW5kcyhjcih3ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnJ1blNlbGVjdGlvblN0YXRlPWNsKCJydW5TZWxlY3Rpb25TdGF0ZSIse2RlZmF1bHRWYWx1ZTp7fX0pLmNhbGwodGhpcyksdGhpcy5yZWdleElucHV0PVhzKCJyZWdleElucHV0Iix7ZGVmYXVsdFZhbHVlOiIifSkuY2FsbCh0aGlzKSx0aGlzLl9kYXRhTG9jYXRpb25DbGlwTGVuZ3RoPTI1MCx0aGlzLl9kYXRhTG9jYXRpb25EZWxpbWl0ZXJQYXR0ZXJuPSJbLz1fLC1dIix0aGlzLmNvbG9yaW5nPXtnZXRDb2xvcjpfT30sdGhpcy5fc3RvcmVSdW5TZWxlY3Rpb25TdGF0ZT11bCgicnVuU2VsZWN0aW9uU3RhdGUiLHtkZWZhdWx0VmFsdWU6e319KSx0aGlzLl9yZWdleE9ic2VydmVyPSRzKCJyZWdleElucHV0Iix7ZGVmYXVsdFZhbHVlOiIifSl9YXR0YWNoZWQoKXt0aGlzLl9ydW5TdG9yZUxpc3RlbmVyPUlsLmFkZExpc3RlbmVyKCgoKT0+e3RoaXMuc2V0KCJydW5zIixJbC5nZXRSdW5zKCkpfSkpLHRoaXMuc2V0KCJydW5zIixJbC5nZXRSdW5zKCkpLHRoaXMuX2VudlN0b3JlTGlzdGVuZXI9UGwuYWRkTGlzdGVuZXIoKCgpPT57dGhpcy5zZXQoImRhdGFMb2NhdGlvbiIsUGwuZ2V0RGF0YUxvY2F0aW9uKCkpfSkpLHRoaXMuc2V0KCJkYXRhTG9jYXRpb24iLFBsLmdldERhdGFMb2NhdGlvbigpKX1kZXRhY2hlZCgpe0lsLnJlbW92ZUxpc3RlbmVyQnlLZXkodGhpcy5fcnVuU3RvcmVMaXN0ZW5lciksUGwucmVtb3ZlTGlzdGVuZXJCeUtleSh0aGlzLl9lbnZTdG9yZUxpc3RlbmVyKX1fdG9nZ2xlQWxsKCl7dGhpcy4kLm11bHRpQ2hlY2tib3gudG9nZ2xlQWxsKCl9Z2V0IF9jbGlwcGVkRGF0YUxvY2F0aW9uKCl7dmFyIHQ9dGhpcy5kYXRhTG9jYXRpb24sZT10aGlzLl9kYXRhTG9jYXRpb25DbGlwTGVuZ3RoO2lmKHZvaWQgMCE9PXQpcmV0dXJuIHQubGVuZ3RoPmU/dC5zdWJzdHJpbmcoMCxlKTp0fV9vcGVuRGF0YUxvY2F0aW9uRGlhbG9nKHQpe3QucHJldmVudERlZmF1bHQoKSx0aGlzLiQkKCIjZGF0YS1sb2NhdGlvbi1kaWFsb2ciKS5vcGVuKCl9X3Nob3VsZFNob3dFeHBhbmREYXRhTG9jYXRpb25CdXR0b24odCxlKXtyZXR1cm4gdCYmdC5sZW5ndGg+ZX19O2JPLnRlbXBsYXRlPXhlYAogICAgPHBhcGVyLWRpYWxvZyB3aXRoLWJhY2tkcm9wPSIiIGlkPSJkYXRhLWxvY2F0aW9uLWRpYWxvZyI+CiAgICAgIDxoMj5EYXRhIExvY2F0aW9uPC9oMj4KICAgICAgPHRmLXdici1zdHJpbmcKICAgICAgICB2YWx1ZT0iW1tkYXRhTG9jYXRpb25dXSIKICAgICAgICBkZWxpbWl0ZXItcGF0dGVybj0iW1tfZGF0YUxvY2F0aW9uRGVsaW1pdGVyUGF0dGVybl1dIgogICAgICA+CiAgICAgIDwvdGYtd2JyLXN0cmluZwogICAgPjwvcGFwZXItZGlhbG9nPgogICAgPGRpdiBpZD0idG9wLXRleHQiPgogICAgICA8aDMgaWQ9InRvb2x0aXAtaGVscCIgY2xhc3M9InRvb2x0aXAtY29udGFpbmVyIj5SdW5zPC9oMz4KICAgIDwvZGl2PgogICAgPHRmLW11bHRpLWNoZWNrYm94CiAgICAgIGlkPSJtdWx0aUNoZWNrYm94IgogICAgICBuYW1lcz0iW1tydW5zXV0iCiAgICAgIHNlbGVjdGlvbi1zdGF0ZT0ie3tydW5TZWxlY3Rpb25TdGF0ZX19IgogICAgICBvdXQtc2VsZWN0ZWQ9Int7c2VsZWN0ZWRSdW5zfX0iCiAgICAgIHJlZ2V4PSJ7e3JlZ2V4SW5wdXR9fSIKICAgICAgY29sb3Jpbmc9IltbY29sb3JpbmddXSIKICAgID48L3RmLW11bHRpLWNoZWNrYm94PgogICAgPHBhcGVyLWJ1dHRvbiBjbGFzcz0ieC1idXR0b24iIGlkPSJ0b2dnbGUtYWxsIiBvbi10YXA9Il90b2dnbGVBbGwiPgogICAgICBUb2dnbGUgQWxsIFJ1bnMKICAgIDwvcGFwZXItYnV0dG9uPgogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2RhdGFMb2NhdGlvbl1dIj4KICAgICAgPGRpdiBpZD0iZGF0YS1sb2NhdGlvbiI+CiAgICAgICAgPHRmLXdici1zdHJpbmcKICAgICAgICAgIHZhbHVlPSJbW19jbGlwcGVkRGF0YUxvY2F0aW9uXV0iCiAgICAgICAgICBkZWxpbWl0ZXItcGF0dGVybj0iW1tfZGF0YUxvY2F0aW9uRGVsaW1pdGVyUGF0dGVybl1dIgogICAgICAgID48L3RmLXdici1zdHJpbmcKICAgICAgICA+PCEtLQogICAgICAgICAgV2UgdXNlIEhUTUwgY29tbWVudHMgdG8gcmVtb3ZlIHNwYWNlcyBiZWZvcmUgdGhlIGVsbGlwc2lzLgogICAgICAgIC0tPjx0ZW1wbGF0ZQogICAgICAgICAgaXM9ImRvbS1pZiIKICAgICAgICAgIGlmPSJbW19zaG91bGRTaG93RXhwYW5kRGF0YUxvY2F0aW9uQnV0dG9uKGRhdGFMb2NhdGlvbiwgX2RhdGFMb2NhdGlvbkNsaXBMZW5ndGgpXV0iCiAgICAgICAgICA+PCEtLQogICAgICAgICAgLS0+PGEgaHJlZj0iIiBvbi1jbGljaz0iX29wZW5EYXRhTG9jYXRpb25EaWFsb2ciPuKApjwvYT4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvdGVtcGxhdGU+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDsKICAgICAgfQogICAgICAjdG9wLXRleHQgewogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1zZWNvbmRhcnktdGV4dC1jb2xvcik7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZmxleC1ncm93OiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQogICAgICB0Zi13YnItc3RyaW5nIHsKICAgICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkOwogICAgICB9CiAgICAgIHRmLW11bHRpLWNoZWNrYm94IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CiAgICAgIC54LWJ1dHRvbiB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRiLXVpLWxpZ2h0LWFjY2VudCk7CiAgICAgICAgY29sb3I6IHZhcigtLXRiLXVpLWRhcmstYWNjZW50KTsKICAgICAgfQogICAgICAjdG9vbHRpcC1oZWxwIHsKICAgICAgICBjb2xvcjogdmFyKC0tdGItc2Vjb25kYXJ5LXRleHQtY29sb3IpOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICAgIH0KICAgICAgcGFwZXItYnV0dG9uIHsKICAgICAgICBtYXJnaW4tbGVmdDogMDsKICAgICAgfQogICAgICAjZGF0YS1sb2NhdGlvbiB7CiAgICAgICAgY29sb3I6IHZhcigtLXRiLXVpLWRhcmstYWNjZW50KTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbWFyZ2luOiA1cHggMCAwIDA7CiAgICAgICAgbWF4LXdpZHRoOiAyODhweDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6T2JqZWN0LG9ic2VydmVyOiJfc3RvcmVSdW5TZWxlY3Rpb25TdGF0ZSJ9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sYk8ucHJvdG90eXBlLCJydW5TZWxlY3Rpb25TdGF0ZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxvYnNlcnZlcjoiX3JlZ2V4T2JzZXJ2ZXIifSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGJPLnByb3RvdHlwZSwicmVnZXhJbnB1dCIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5LG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLGJPLnByb3RvdHlwZSwic2VsZWN0ZWRSdW5zIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxiTy5wcm90b3R5cGUsInJ1bnMiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGJPLnByb3RvdHlwZSwiZGF0YUxvY2F0aW9uIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLGJPLnByb3RvdHlwZSwiX2RhdGFMb2NhdGlvbkNsaXBMZW5ndGgiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sYk8ucHJvdG90eXBlLCJfZGF0YUxvY2F0aW9uRGVsaW1pdGVyUGF0dGVybiIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxiTy5wcm90b3R5cGUsImNvbG9yaW5nIix2b2lkIDApLHQoW3MoImRhdGFMb2NhdGlvbiIsIl9kYXRhTG9jYXRpb25DbGlwTGVuZ3RoIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sYk8ucHJvdG90eXBlLCJfY2xpcHBlZERhdGFMb2NhdGlvbiIsbnVsbCksYk89dChbaSgidGYtcnVucy1zZWxlY3RvciIpXSxiTyk7Y2xhc3MgeE97Y29uc3RydWN0b3IoKXt0aGlzLmNhbmNlbGxhdGlvbkNvdW50PTB9Y2FuY2VsbGFibGUodCl7Y29uc3QgZT10aGlzLmNhbmNlbGxhdGlvbkNvdW50O3JldHVybiBuPT50KHt2YWx1ZTpuLGNhbmNlbGxlZDp0aGlzLmNhbmNlbGxhdGlvbkNvdW50IT09ZX0pfWNhbmNlbEFsbCgpe3RoaXMuY2FuY2VsbGF0aW9uQ291bnQrK319bGV0IHdPPWNsYXNzIGV4dGVuZHMoY3Iod2UpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5odG1sPSIifWdldCBzYW5pdGl6ZWRIdG1sKCl7cmV0dXJuIHRoaXMuaHRtbH1hdHRhY2hlZCgpe3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy5zY29wZVN1YnRyZWUodGhpcy4kLm1hcmtkb3duLCEwKX0pKX19O2Z1bmN0aW9uIFNPKHQpe3JldHVybiB0P3QudG9TdHJpbmcoKS5yZXBsYWNlKC9HTVQtXGQrIFwoKFteKV0rKVwpLywiJDEiKToiIn1mdW5jdGlvbiBNTyh0KXtjb25zdCBlPShmdW5jdGlvbiBuKHQpe2lmKCF0KXJldHVybiBudWxsO2xldCBlPXQubWF0Y2goL14jKFswLTlhLWZdezEsMn0pKFswLTlhLWZdezEsMn0pKFswLTlhLWZdezEsMn0pJC8pO2lmKCFlKXJldHVybiBudWxsO2lmKDQ9PXQubGVuZ3RoKWZvcih2YXIgbj0xO248PTM7bisrKWVbbl09ZVtuXStlW25dO3JldHVybltwYXJzZUludChlWzFdLDE2KSxwYXJzZUludChlWzJdLDE2KSxwYXJzZUludChlWzNdLDE2KV19KSh0KTtpZighZSlyZXR1cm4iaW5oZXJpdCI7cmV0dXJuIE1hdGgucm91bmQoKDI5OSplWzBdKzU4NyplWzFdKzExNCplWzJdKS8xZTMpPjEyNT8iaW5oZXJpdCI6IiNlZWUifXdPLnRlbXBsYXRlPXhlYAogICAgPGRpdiBpZD0ibWFya2Rvd24iIGlubmVyLWgtdC1tLWw9Iltbc2FuaXRpemVkSHRtbF1dIj48L2Rpdj4KICAgIDxzdHlsZT4KICAgICAgLyoKICAgICAgICogUmVkdWNlIHRvcG1vc3QgYW5kIGJvdHRvbW1vc3QgbWFyZ2lucyBmcm9tIDE2cHggdG8gMC4zZW0gKHJlbmRlcnMKICAgICAgICogYXQgYWJvdXQgNC44cHgpIHRvIGtlZXAgdGhlIGxheW91dCBjb21wYWN0LiBUaGlzIGltcHJvdmVzIHRoZQogICAgICAgKiBhcHBlYXJhbmNlIHdoZW4gdGhlcmUgaXMgb25seSBvbmUgbGluZSBvZiB0ZXh0OyBzdGFuZGFyZCBNYXJrZG93bgogICAgICAgKiByZW5kZXJlcnMgd2lsbCBzdGlsbCBpbmNsdWRlIGEgXGA8cD5cYCBlbGVtZW50LgogICAgICAgKgogICAgICAgKiBCeSB0YXJnZXRpbmcgb25seSB0aGUgdG9wLWxldmVsLCBleHRyZW1hbCBlbGVtZW50cywgd2UgcHJlc2VydmUgYW55CiAgICAgICAqIGFjdHVhbCBwYXJhZ3JhcGggYnJlYWtzIGFuZCBvbmx5IGNoYW5nZSB0aGUgcGFkZGluZyBhZ2FpbnN0IHRoZQogICAgICAgKiBjb21wb25lbnQgZWRnZXMuCiAgICAgICAqLwogICAgICAjbWFya2Rvd24gPiBwOmZpcnN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tdG9wOiAwLjNlbTsKICAgICAgfQogICAgICAjbWFya2Rvd24gPiBwOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDAuM2VtOwogICAgICB9CgogICAgICAvKiBQbGVhc2FudCBzdHlsZXMgZm9yIE1hcmtkb3duIHRhYmxlcy4gKi8KICAgICAgI21hcmtkb3duIHRhYmxlIHsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICB9CiAgICAgICNtYXJrZG93biB0YWJsZSB0aCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQogICAgICAjbWFya2Rvd24gdGFibGUgdGgsCiAgICAgICNtYXJrZG93biB0YWJsZSB0ZCB7CiAgICAgICAgcGFkZGluZzogNnB4IDEzcHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdGItdWktYm9yZGVyLCAjZGZlMmU1KTsKICAgICAgfQogICAgICAjbWFya2Rvd24gdGFibGUgdHIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXRiLXVpLWJvcmRlciwgI2M2Y2JkMSk7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx3Ty5wcm90b3R5cGUsImh0bWwiLHZvaWQgMCksdChbcygiaHRtbCIpLGUoImRlc2lnbjp0eXBlIixPYmplY3QpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLHdPLnByb3RvdHlwZSwic2FuaXRpemVkSHRtbCIsbnVsbCksd089dChbaSgidGYtbWFya2Rvd24tdmlldyIpXSx3TyksbWwoe21vZHVsZU5hbWU6InRmLWNhcmQtaGVhZGluZy1zdHlsZSIsc3R5bGVDb250ZW50OiJcbiAgICBmaWdjYXB0aW9uIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC8qKiBIb3Jpem9udGFsIGxpbmUgb2YgbGFiZWxzLiAqL1xuICAgIC5oZWFkaW5nLXJvdyB7XG4gICAgICBtYXJnaW4tdG9wOiAtNHB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgLyoqIFBpZWNlIG9mIHRleHQgaW4gdGhlIGZpZ3VyZSBjYXB0aW9uLiAqL1xuICAgIC5oZWFkaW5nLWxhYmVsIHtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICB9XG5cbiAgICAvKiogTWFrZXMgbGFiZWwgc2hvdyBvbiB0aGUgcmlnaHQuICovXG4gICAgLmhlYWRpbmctcmlnaHQge1xuICAgICAgZmxleC1ncm93OiAwO1xuICAgIH1cbiAgIn0pO2xldCBFTz1jbGFzcyBleHRlbmRzIHdle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmRpc3BsYXlOYW1lPW51bGwsdGhpcy50YWc9bnVsbCx0aGlzLnJ1bj1udWxsLHRoaXMuZGVzY3JpcHRpb249bnVsbCx0aGlzLmNvbG9yPW51bGx9X3VwZGF0ZUhlYWRpbmdTdHlsZSgpe3RoaXMudXBkYXRlU3R5bGVzKHsiLS10Zi1jYXJkLWhlYWRpbmctYmFja2dyb3VuZC1jb2xvciI6dGhpcy5fcnVuQmFja2dyb3VuZCwiLS10Zi1jYXJkLWhlYWRpbmctY29sb3IiOnRoaXMuX3J1bkNvbG9yfSl9X2NvbXB1dGVSdW5CYWNrZ3JvdW5kKHQpe3JldHVybiB0fHwibm9uZSJ9X2NvbXB1dGVSdW5Db2xvcih0KXtyZXR1cm4gTU8odCl9Z2V0IF9uYW1lTGFiZWwoKXtyZXR1cm4gdGhpcy5kaXNwbGF5TmFtZXx8dGhpcy50YWd8fCIifWdldCBfdGFnTGFiZWwoKXt2YXIgdD10aGlzLnRhZztyZXR1cm4gdCYmdCE9PXRoaXMuZGlzcGxheU5hbWU/dDoiIn1fdG9nZ2xlRGVzY3JpcHRpb25EaWFsb2codCl7Y29uc3QgZT10aGlzLiQuZGVzY3JpcHRpb25EaWFsb2c7ZS5wb3NpdGlvblRhcmdldD10LnRhcmdldCxlLnRvZ2dsZSgpfX07RU8udGVtcGxhdGU9eGVgCiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICA8ZmlnY2FwdGlvbiBjbGFzcz0iY29udGVudCI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy1yb3ciPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19uYW1lTGFiZWxdXSI+CiAgICAgICAgICAgIDxkaXYgaXRlbXByb3A9Im5hbWUiIGNsYXNzPSJoZWFkaW5nLWxhYmVsIG5hbWUiPltbX25hbWVMYWJlbF1dPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW3J1bl1dIj4KICAgICAgICAgICAgPCEtLSBFeHRyYSB3cmFwcGluZyBzcGFuIG5lZWRlZCB0byBhdm9pZCBmbGV4Ym94IGJsb2NraWZpY2F0aW9uLiAtLT4KICAgICAgICAgICAgPCEtLSAoc2VlIGZsZXhib3ggc3BlYywgc2VjdGlvbiA0ICJGbGV4IEl0ZW1zIikgLS0+CiAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgIDxzcGFuCiAgICAgICAgICAgICAgICBpdGVtcHJvcD0icnVuIgogICAgICAgICAgICAgICAgaWQ9ImhlYWRpbmctcnVuIgogICAgICAgICAgICAgICAgY2xhc3M9ImhlYWRpbmctbGFiZWwgaGVhZGluZy1yaWdodCBydW4iCiAgICAgICAgICAgICAgICA+W1tydW5dXTwvc3BhbgogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX3RhZ0xhYmVsXV0iPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy1yb3ciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLWxhYmVsIj4KICAgICAgICAgICAgICB0YWc6IDxzcGFuIGl0ZW1wcm9wPSJ0YWciPltbX3RhZ0xhYmVsXV08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZmlnY2FwdGlvbj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2Rlc2NyaXB0aW9uXV0iPgogICAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgICAgaWNvbj0iaW5mbyIKICAgICAgICAgIG9uLXRhcD0iX3RvZ2dsZURlc2NyaXB0aW9uRGlhbG9nIgogICAgICAgICAgdGl0bGU9IlNob3cgc3VtbWFyeSBkZXNjcmlwdGlvbiIKICAgICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPHBhcGVyLWRpYWxvZwogICAgICAgIGlkPSJkZXNjcmlwdGlvbkRpYWxvZyIKICAgICAgICBuby1vdmVybGFwPSIiCiAgICAgICAgaG9yaXpvbnRhbC1hbGlnbj0iYXV0byIKICAgICAgICB2ZXJ0aWNhbC1hbGlnbj0iYXV0byIKICAgICAgPgogICAgICAgIDxwYXBlci1kaWFsb2ctc2Nyb2xsYWJsZT4KICAgICAgICAgIDx0Zi1tYXJrZG93bi12aWV3IGh0bWw9IltbZGVzY3JpcHRpb25dXSI+PC90Zi1tYXJrZG93bi12aWV3PgogICAgICAgIDwvcGFwZXItZGlhbG9nLXNjcm9sbGFibGU+CiAgICAgIDwvcGFwZXItZGlhbG9nPgogICAgPC9kaXY+CiAgICA8c3R5bGUgaW5jbHVkZT0idGYtY2FyZC1oZWFkaW5nLXN0eWxlIj4KICAgICAgLmNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgfQogICAgICAuY29udGVudCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgfQogICAgICAubmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICAgIC5ydW4gewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICB3aWR0aDogYXV0bzsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgcGFkZGluZzogMXB4IDRweCAycHg7CiAgICAgIH0KICAgICAgcGFwZXItaWNvbi1idXR0b24gewogICAgICAgIGZsZXgtZ3JvdzogMDsKICAgICAgfQogICAgICBwYXBlci1kaWFsb2ctc2Nyb2xsYWJsZSB7CiAgICAgICAgbWF4LXdpZHRoOiA2NDBweDsKICAgICAgfQogICAgICAjaGVhZGluZy1ydW4gewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRmLWNhcmQtaGVhZGluZy1iYWNrZ3JvdW5kLWNvbG9yKTsKICAgICAgICBjb2xvcjogdmFyKC0tdGYtY2FyZC1oZWFkaW5nLWNvbG9yKTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLEVPLnByb3RvdHlwZSwiZGlzcGxheU5hbWUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sRU8ucHJvdG90eXBlLCJ0YWciLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sRU8ucHJvdG90eXBlLCJydW4iLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sRU8ucHJvdG90eXBlLCJkZXNjcmlwdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxFTy5wcm90b3R5cGUsImNvbG9yIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLGNvbXB1dGVkOiJfY29tcHV0ZVJ1bkJhY2tncm91bmQoY29sb3IpIixyZWFkT25seTohMCxvYnNlcnZlcjoiX3VwZGF0ZUhlYWRpbmdTdHlsZSJ9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sRU8ucHJvdG90eXBlLCJfcnVuQmFja2dyb3VuZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxjb21wdXRlZDoiX2NvbXB1dGVSdW5Db2xvcihjb2xvcikiLHJlYWRPbmx5OiEwLG9ic2VydmVyOiJfdXBkYXRlSGVhZGluZ1N0eWxlIn0pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxFTy5wcm90b3R5cGUsIl9ydW5Db2xvciIsdm9pZCAwKSx0KFtzKCJkaXNwbGF5TmFtZSIsInRhZyIpLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLEVPLnByb3RvdHlwZSwiX25hbWVMYWJlbCIsbnVsbCksdChbcygiZGlzcGxheU5hbWUiLCJ0YWciKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxFTy5wcm90b3R5cGUsIl90YWdMYWJlbCIsbnVsbCksRU89dChbaSgidGYtY2FyZC1oZWFkaW5nIildLEVPKTtsZXQgVE89Y2xhc3MgZXh0ZW5kcyhjcih3ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9tZXRhZGF0YUNhbmNlbGxlcj1uZXcgeE8sdGhpcy5fc3RlcHM9W10sdGhpcy5fYXR0YWNoZWQ9ITF9Z2V0IF9ydW5Db2xvcigpe3JldHVybiBfTyh0aGlzLnJ1bil9Z2V0IF9oYXNBdExlYXN0T25lU3RlcCgpe3ZhciB0PXRoaXMuX3N0ZXBzO3JldHVybiEhdCYmdC5sZW5ndGg+MH1nZXQgX2hhc011bHRpcGxlU3RlcHMoKXt2YXIgdD10aGlzLl9zdGVwcztyZXR1cm4hIXQmJnQubGVuZ3RoPjF9Z2V0IF9tYXhTdGVwSW5kZXgoKXtyZXR1cm4gdGhpcy5fc3RlcHMubGVuZ3RoLTF9Z2V0IF9jdXJyZW50RGF0dW0oKXtyZXR1cm4gdGhpcy5fc3RlcHNbdGhpcy5fc3RlcEluZGV4XX1nZXQgX3NhbXBsZVRleHQoKXtyZXR1cm5gJHt0aGlzLnNhbXBsZSsxfWB9Z2V0IF9oYXNNdWx0aXBsZVNhbXBsZXMoKXtyZXR1cm4gdGhpcy50b3RhbFNhbXBsZXM+MX1hdHRhY2hlZCgpe3RoaXMuX2F0dGFjaGVkPSEwLHRoaXMucmVsb2FkKCl9X3JlbG9hZE9uUnVuVGFnQ2hhbmdlKCl7dGhpcy5yZWxvYWQoKX1yZWxvYWQoKXtpZighdGhpcy5fYXR0YWNoZWQpcmV0dXJuO3RoaXMuX21ldGFkYXRhQ2FuY2VsbGVyLmNhbmNlbEFsbCgpO2NvbnN0IHQ9RXIoKS5wbHVnaW5Sb3V0ZSgiYXVkaW8iLCIvYXVkaW8iLG5ldyBVUkxTZWFyY2hQYXJhbXMoe3RhZzp0aGlzLnRhZyxydW46dGhpcy5ydW4sc2FtcGxlOlN0cmluZyh0aGlzLnNhbXBsZSl9KSksZT10aGlzLl9tZXRhZGF0YUNhbmNlbGxlci5jYW5jZWxsYWJsZSgodD0+e2lmKHQuY2FuY2VsbGVkKXJldHVybjtjb25zdCBlPXQudmFsdWUubWFwKHRoaXMuX2NyZWF0ZVN0ZXBEYXR1bS5iaW5kKHRoaXMpKTt0aGlzLnNldCgiX3N0ZXBzIixlKSx0aGlzLnNldCgiX3N0ZXBJbmRleCIsZS5sZW5ndGgtMSl9KSk7dGhpcy5yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHQpLnRoZW4oZSl9X2NyZWF0ZVN0ZXBEYXR1bSh0KXtjb25zdCBlPW5ldyBVUkxTZWFyY2hQYXJhbXModC5xdWVyeSk7ZS5hcHBlbmQoInRzIixTdHJpbmcodC53YWxsX3RpbWUpKTtjb25zdCBuPUVyKCkucGx1Z2luUm91dGUoImF1ZGlvIiwiL2luZGl2aWR1YWxBdWRpbyIsZSk7cmV0dXJue3dhbGxfdGltZTpTTyhuZXcgRGF0ZSgxZTMqdC53YWxsX3RpbWUpKSxzdGVwOnQuc3RlcCxsYWJlbDp0LmxhYmVsLGNvbnRlbnRUeXBlOnQuY29udGVudFR5cGUsdXJsOm59fX07VE8udGVtcGxhdGU9eGVgCiAgICA8dGYtY2FyZC1oZWFkaW5nCiAgICAgIHRhZz0iW1t0YWddXSIKICAgICAgcnVuPSJbW3J1bl1dIgogICAgICBkaXNwbGF5LW5hbWU9IltbdGFnTWV0YWRhdGEuZGlzcGxheU5hbWVdXSIKICAgICAgZGVzY3JpcHRpb249IltbdGFnTWV0YWRhdGEuZGVzY3JpcHRpb25dXSIKICAgICAgY29sb3I9IltbX3J1bkNvbG9yXV0iCiAgICA+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaGFzTXVsdGlwbGVTYW1wbGVzXV0iPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmctcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmctbGFiZWwiPgogICAgICAgICAgICBzYW1wbGU6IFtbX3NhbXBsZVRleHRdXSBvZiBbW3RvdGFsU2FtcGxlc11dCiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19oYXNBdExlYXN0T25lU3RlcF1dIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLXJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLWxhYmVsIj4KICAgICAgICAgICAgc3RlcCA8c3Ryb25nPltbX2N1cnJlbnREYXR1bS5zdGVwXV08L3N0cm9uZz4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19jdXJyZW50RGF0dW0ud2FsbF90aW1lXV0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLWxhYmVsIGhlYWRpbmctcmlnaHQiPgogICAgICAgICAgICAgIFtbX2N1cnJlbnREYXR1bS53YWxsX3RpbWVdXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaGFzTXVsdGlwbGVTdGVwc11dIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLXJvdyI+CiAgICAgICAgICA8cGFwZXItc2xpZGVyCiAgICAgICAgICAgIGlkPSJzdGVwcyIKICAgICAgICAgICAgaW1tZWRpYXRlLXZhbHVlPSJ7e19zdGVwSW5kZXh9fSIKICAgICAgICAgICAgbWF4PSJbW19tYXhTdGVwSW5kZXhdXSIKICAgICAgICAgICAgbWF4LW1hcmtlcnM9IltbX21heFN0ZXBJbmRleF1dIgogICAgICAgICAgICBzbmFwcz0iIgogICAgICAgICAgICBzdGVwPSIxIgogICAgICAgICAgICB2YWx1ZT0ie3tfc3RlcEluZGV4fX0iCiAgICAgICAgICA+PC9wYXBlci1zbGlkZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L3RmLWNhcmQtaGVhZGluZz4KICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaGFzQXRMZWFzdE9uZVN0ZXBdXSI+CiAgICAgIDxhdWRpbwogICAgICAgIGNvbnRyb2xzPSIiCiAgICAgICAgc3JjJD0iW1tfY3VycmVudERhdHVtLnVybF1dIgogICAgICAgIHR5cGUkPSJbW19jdXJyZW50RGF0dW0uY29udGVudFR5cGVdXSIKICAgICAgPjwvYXVkaW8+CiAgICAgIDx0Zi1tYXJrZG93bi12aWV3IGh0bWw9IltbX2N1cnJlbnREYXR1bS5sYWJlbF1dIj48L3RmLW1hcmtkb3duLXZpZXc+CiAgICA8L3RlbXBsYXRlPgogICAgPGRpdiBpZD0ibWFpbi1hdWRpby1jb250YWluZXIiPjwvZGl2PgoKICAgIDxzdHlsZSBpbmNsdWRlPSJ0Zi1jYXJkLWhlYWRpbmctc3R5bGUiPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDM1MHB4OwogICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgLS1zdGVwLXNsaWRlci1rbm9iLWNvbG9yOiAjNDI0MjQyOwogICAgICAgIG1hcmdpbi1yaWdodDogMTVweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICB9CgogICAgICAjc3RlcHMgewogICAgICAgIGhlaWdodDogMTVweDsKICAgICAgICBtYXJnaW46IDAgMCAwIC0xNXB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgcGFkZGluZzogMCA1cHg7IC8qIHNvIHRoZSBzbGlkZXIga25vYiBkb2Vzbid0IGJ1dHQgb3V0ICovCiAgICAgICAgbWFyZ2luLXRvcDogNXB4OwogICAgICAgIC0tcGFwZXItc2xpZGVyLWFjdGl2ZS1jb2xvcjogdmFyKC0tc3RlcC1zbGlkZXIta25vYi1jb2xvcik7CiAgICAgICAgLS1wYXBlci1zbGlkZXIta25vYi1jb2xvcjogdmFyKC0tc3RlcC1zbGlkZXIta25vYi1jb2xvcik7CiAgICAgICAgLS1wYXBlci1zbGlkZXItcGluLWNvbG9yOiB2YXIoLS1zdGVwLXNsaWRlci1rbm9iLWNvbG9yKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1rbm9iLXN0YXJ0LWNvbG9yOiB2YXIoLS1zdGVwLXNsaWRlci1rbm9iLWNvbG9yKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1rbm9iLXN0YXJ0LWJvcmRlci1jb2xvcjogdmFyKC0tc3RlcC1zbGlkZXIta25vYi1jb2xvcik7CiAgICAgICAgLS1wYXBlci1zbGlkZXItcGluLXN0YXJ0LWNvbG9yOiB2YXIoLS1zdGVwLXNsaWRlci1rbm9iLWNvbG9yKTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFRPLnByb3RvdHlwZSwicnVuIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFRPLnByb3RvdHlwZSwidGFnIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLFRPLnByb3RvdHlwZSwic2FtcGxlIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLFRPLnByb3RvdHlwZSwidG90YWxTYW1wbGVzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFRPLnByb3RvdHlwZSwidGFnTWV0YWRhdGEiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsYnIpXSxUTy5wcm90b3R5cGUsInJlcXVlc3RNYW5hZ2VyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLHhPKV0sVE8ucHJvdG90eXBlLCJfbWV0YWRhdGFDYW5jZWxsZXIiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLFRPLnByb3RvdHlwZSwiX3N0ZXBzIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLFRPLnByb3RvdHlwZSwiX3N0ZXBJbmRleCIsdm9pZCAwKSx0KFtzKCJydW4iKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxUTy5wcm90b3R5cGUsIl9ydW5Db2xvciIsbnVsbCksdChbcygiX3N0ZXBzIiksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFRPLnByb3RvdHlwZSwiX2hhc0F0TGVhc3RPbmVTdGVwIixudWxsKSx0KFtzKCJfc3RlcHMiKSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sVE8ucHJvdG90eXBlLCJfaGFzTXVsdGlwbGVTdGVwcyIsbnVsbCksdChbcygiX3N0ZXBzIiksZSgiZGVzaWduOnR5cGUiLE51bWJlciksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sVE8ucHJvdG90eXBlLCJfbWF4U3RlcEluZGV4IixudWxsKSx0KFtzKCJfc3RlcHMiLCJfc3RlcEluZGV4IiksZSgiZGVzaWduOnR5cGUiLE9iamVjdCksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sVE8ucHJvdG90eXBlLCJfY3VycmVudERhdHVtIixudWxsKSx0KFtzKCJzYW1wbGUiKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxUTy5wcm90b3R5cGUsIl9zYW1wbGVUZXh0IixudWxsKSx0KFtzKCJ0b3RhbFNhbXBsZXMiKSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sVE8ucHJvdG90eXBlLCJfaGFzTXVsdGlwbGVTYW1wbGVzIixudWxsKSx0KFthKCJydW4iLCJ0YWciKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFRPLnByb3RvdHlwZSwiX3JlbG9hZE9uUnVuVGFnQ2hhbmdlIixudWxsKSxUTz10KFtpKCJ0Zi1hdWRpby1sb2FkZXIiKV0sVE8pO2xldCBDTz1jbGFzcyBleHRlbmRzKGNyKHdlKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucmVsb2FkT25SZWFkeT0hMCx0aGlzLl90YWdGaWx0ZXI9IiIsdGhpcy5fcmVxdWVzdE1hbmFnZXI9bmV3IGJyfXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLnJlbG9hZE9uUmVhZHkmJnRoaXMucmVsb2FkKCl9cmVsb2FkKCl7dGhpcy5fZmV0Y2hUYWdzKCkudGhlbigoKCk9Pnt0aGlzLl9yZWxvYWRBdWRpbygpfSkpfV9mZXRjaFRhZ3MoKXtjb25zdCB0PUVyKCkucGx1Z2luUm91dGUoImF1ZGlvIiwiL3RhZ3MiKTtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKCh0PT57aWYoQ2UuZXhwb3J0cy5pc0VxdWFsKHQsdGhpcy5fcnVuVG9UYWdJbmZvKSlyZXR1cm47Y29uc3QgZT1mcihDZS5leHBvcnRzLm1hcFZhbHVlcyh0LCh0PT5PYmplY3Qua2V5cyh0KSkpKTt0aGlzLnNldCgiX2RhdGFOb3RGb3VuZCIsMD09PWUubGVuZ3RoKSx0aGlzLnNldCgiX3J1blRvVGFnSW5mbyIsdCl9KSl9X3JlbG9hZEF1ZGlvKCl7dGhpcy5yb290LnF1ZXJ5U2VsZWN0b3JBbGwoInRmLWF1ZGlvLWxvYWRlciIpLmZvckVhY2goKHQ9Pnt0LnJlbG9hZCgpfSkpfV9zaG91bGRPcGVuKHQpe3JldHVybiB0PD0yfWdldCBfY2F0ZWdvcmllcygpe3ZhciB0PXRoaXMuX3J1blRvVGFnSW5mbyxlPXRoaXMuX3NlbGVjdGVkUnVucyxuPXRoaXMuX3RhZ0ZpbHRlcjtmdW5jdGlvbiBpKGUpe2NvbnN0IG49dFtlLnJ1bl1bZS50YWddLnNhbXBsZXM7cmV0dXJuIENlLmV4cG9ydHMucmFuZ2UobikubWFwKCh0PT5PYmplY3QuYXNzaWduKHt9LGUse3NhbXBsZTp0LHRvdGFsU2FtcGxlczpufSkpKX1yZXR1cm4gSXIoQ2UuZXhwb3J0cy5tYXBWYWx1ZXModCwodD0+T2JqZWN0LmtleXModCkpKSxlLG4pLm1hcCgodD0+T2JqZWN0LmFzc2lnbih7fSx0LHtpdGVtczpbXS5jb25jYXQuYXBwbHkoW10sdC5pdGVtcy5tYXAoaSkpfSkpKX1fdGFnTWV0YWRhdGEodCxlLG4pe3JldHVybiB0W2VdW25dfX07Q08udGVtcGxhdGU9eGVgCiAgICA8dGYtZGFzaGJvYXJkLWxheW91dD4KICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhciIgc2xvdD0ic2lkZWJhciI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIHJ1bnMtc2VsZWN0b3IiPgogICAgICAgICAgPHRmLXJ1bnMtc2VsZWN0b3IKICAgICAgICAgICAgaWQ9InJ1bnMtc2VsZWN0b3IiCiAgICAgICAgICAgIHNlbGVjdGVkLXJ1bnM9Int7X3NlbGVjdGVkUnVuc319IgogICAgICAgICAgPjwvdGYtcnVucy1zZWxlY3Rvcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNlbnRlciIgc2xvdD0iY2VudGVyIj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im5vLWRhdGEtd2FybmluZyI+CiAgICAgICAgICAgIDxoMz5ObyBhdWRpbyBkYXRhIHdhcyBmb3VuZC48L2gzPgogICAgICAgICAgICA8cD5Qcm9iYWJsZSBjYXVzZXM6PC9wPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPllvdSBoYXZlbuKAmXQgd3JpdHRlbiBhbnkgYXVkaW8gZGF0YSB0byB5b3VyIGV2ZW50IGZpbGVzLjwvbGk+CiAgICAgICAgICAgICAgPGxpPlRlbnNvckJvYXJkIGNhbuKAmXQgZmluZCB5b3VyIGV2ZW50IGZpbGVzLjwvbGk+CiAgICAgICAgICAgIDwvdWw+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3XigJlyZSBuZXcgdG8gdXNpbmcgVGVuc29yQm9hcmQsIGFuZCB3YW50IHRvIGZpbmQgb3V0IGhvdyB0bwogICAgICAgICAgICAgIGFkZCBkYXRhIGFuZCBzZXQgdXAgeW91ciBldmVudCBmaWxlcywgY2hlY2sgb3V0IHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQiCiAgICAgICAgICAgICAgICA+UkVBRE1FPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIGFuZCBwZXJoYXBzIHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3d3dy50ZW5zb3JmbG93Lm9yZy9nZXRfc3RhcnRlZC9zdW1tYXJpZXNfYW5kX3RlbnNvcmJvYXJkIgogICAgICAgICAgICAgICAgPlRlbnNvckJvYXJkIHR1dG9yaWFsPC9hCiAgICAgICAgICAgICAgPi4KICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgSWYgeW91IHRoaW5rIFRlbnNvckJvYXJkIGlzIGNvbmZpZ3VyZWQgcHJvcGVybHksIHBsZWFzZSBzZWUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI215LXRlbnNvcmJvYXJkLWlzbnQtc2hvd2luZy1hbnktZGF0YS13aGF0cy13cm9uZyIKICAgICAgICAgICAgICAgID50aGUgc2VjdGlvbiBvZiB0aGUgUkVBRE1FIGRldm90ZWQgdG8gbWlzc2luZyBkYXRhIHByb2JsZW1zPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIGFuZCBjb25zaWRlciBmaWxpbmcgYW4gaXNzdWUgb24gR2l0SHViLgogICAgICAgICAgICA8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDx0Zi10YWctZmlsdGVyZXIgdGFnLWZpbHRlcj0ie3tfdGFnRmlsdGVyfX0iPjwvdGYtdGFnLWZpbHRlcmVyPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfY2F0ZWdvcmllc11dIiBhcz0iY2F0ZWdvcnkiPgogICAgICAgICAgICA8dGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXcKICAgICAgICAgICAgICBjYXRlZ29yeT0iW1tjYXRlZ29yeV1dIgogICAgICAgICAgICAgIGluaXRpYWwtb3BlbmVkPSJbW19zaG91bGRPcGVuKGluZGV4KV1dIgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHRlbXBsYXRlPgogICAgICAgICAgICAgICAgPHRmLWF1ZGlvLWxvYWRlcgogICAgICAgICAgICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgICAgICAgICAgIHJ1bj0iW1tpdGVtLnJ1bl1dIgogICAgICAgICAgICAgICAgICB0YWc9IltbaXRlbS50YWddXSIKICAgICAgICAgICAgICAgICAgc2FtcGxlPSJbW2l0ZW0uc2FtcGxlXV0iCiAgICAgICAgICAgICAgICAgIHRvdGFsLXNhbXBsZXM9IltbaXRlbS50b3RhbFNhbXBsZXNdXSIKICAgICAgICAgICAgICAgICAgdGFnLW1ldGFkYXRhPSJbW190YWdNZXRhZGF0YShfcnVuVG9UYWdJbmZvLCBpdGVtLnJ1biwgaXRlbS50YWcpXV0iCiAgICAgICAgICAgICAgICAgIHJlcXVlc3QtbWFuYWdlcj0iW1tfcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgICAgICAgICAgID48L3RmLWF1ZGlvLWxvYWRlcj4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L3RmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvdGYtZGFzaGJvYXJkLWxheW91dD4KICAgIDxzdHlsZSBpbmNsdWRlPSJkYXNoYm9hcmQtc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgIC5uby1kYXRhLXdhcm5pbmcgewogICAgICAgIG1heC13aWR0aDogNTQwcHg7CiAgICAgICAgbWFyZ2luOiA4MHB4IGF1dG8gMCBhdXRvOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxDTy5wcm90b3R5cGUsInJlbG9hZE9uUmVhZHkiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLENPLnByb3RvdHlwZSwiX3NlbGVjdGVkUnVucyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxDTy5wcm90b3R5cGUsIl9ydW5Ub1RhZ0luZm8iLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxDTy5wcm90b3R5cGUsIl9kYXRhTm90Rm91bmQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sQ08ucHJvdG90eXBlLCJfdGFnRmlsdGVyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLGJyKV0sQ08ucHJvdG90eXBlLCJfcmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbcygiX3J1blRvVGFnSW5mbyIsIl9zZWxlY3RlZFJ1bnMiLCJfdGFnRmlsdGVyIiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxDTy5wcm90b3R5cGUsIl9jYXRlZ29yaWVzIixudWxsKSxDTz10KFtpKCJ0Zi1hdWRpby1kYXNoYm9hcmQiKV0sQ08pO2xldCBBTz1jbGFzcyBleHRlbmRzKGNyKHdlKSl7YXR0YWNoZWQoKXt0aGlzLmFzeW5jKChmdW5jdGlvbigpe3RoaXMuZ2V0RWZmZWN0aXZlQ2hpbGRyZW4oKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3RoaXMubGlzdGVuKHQsInRhcCIsIl9zZWxlY3RUYXJnZXQiKX0uYmluZCh0aGlzKSl9KSl9X3NlbGVjdFRhcmdldCh0KXt0aGlzLnNlbGVjdGVkSWQ9dC5jdXJyZW50VGFyZ2V0LmlkfV9zZWxlY3RlZElkQ2hhbmdlZCgpe3ZhciB0PXRoaXMucXVlcnlFZmZlY3RpdmVDaGlsZHJlbigiIyIrdGhpcy5zZWxlY3RlZElkKTt0JiYodGhpcy5nZXRFZmZlY3RpdmVDaGlsZHJlbigpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuY2xhc3NMaXN0LnJlbW92ZSgic2VsZWN0ZWQiKX0pKSx0LmNsYXNzTGlzdC5hZGQoInNlbGVjdGVkIikpfX07ZnVuY3Rpb24ga08odCxlKXtsZXQgbjtjb25zdCBpPXt9O09iamVjdC5rZXlzKHQpLmZvckVhY2goKGU9Pntjb25zdCByPXRbZV07dm9pZCAwPT09biYmKG49ci5kaXNwbGF5TmFtZSksbiE9PXIuZGlzcGxheU5hbWUmJihuPW51bGwpLHZvaWQgMD09PWlbci5kZXNjcmlwdGlvbl0mJihpW3IuZGVzY3JpcHRpb25dPVtdKSxpW3IuZGVzY3JpcHRpb25dLnB1c2goZSl9KSk7cmV0dXJue2Rpc3BsYXlOYW1lOm51bGwhPW4/bjplLGRlc2NyaXB0aW9uOigoKT0+e2NvbnN0IHQ9T2JqZWN0LmtleXMoaSk7aWYoMD09PXQubGVuZ3RoKXJldHVybiIiO2lmKDE9PT10Lmxlbmd0aClyZXR1cm4gdFswXTtyZXR1cm5gJHsiPHA+PHN0cm9uZz5NdWx0aXBsZSBkZXNjcmlwdGlvbnM6PC9zdHJvbmc+PC9wPiJ9PHVsPiR7dC5tYXAoKHQ9Pntjb25zdCBlPWlbdF0ubWFwKCh0PT5gPGNvZGU+JHt0LnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLyYvZywiJmFtcDsiKX08L2NvZGU+YCkpLG49ZS5sZW5ndGg+Mj9lLnNsaWNlKDAsZS5sZW5ndGgtMSkuam9pbigiLCAiKSsiLCBhbmQgIitlW2UubGVuZ3RoLTFdOmUuam9pbigiIGFuZCAiKTtyZXR1cm5gPGxpPjxwPkZvciAkeyhmdW5jdGlvbiByKHQsZSxuKXtyZXR1cm4gMT09PXQ/ZTpufSkoZS5sZW5ndGgsInJ1biIsInJ1bnMiKX0gJHtufTo8L3A+JHt0fTwvbGk+YH0pKS5qb2luKCIiKX08L3VsPmB9KSgpfX1BTy50ZW1wbGF0ZT14ZWAKICAgIDxkaXYgaWQ9IndyYXAiPgogICAgICA8aDM+W1tuYW1lXV08L2gzPgogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50LXdyYXBwZXIiPjxzbG90Pjwvc2xvdD48L2Rpdj4KICAgIDwvZGl2PgogICAgPHN0eWxlPgogICAgICAuY29udGVudC13cmFwcGVyIDo6c2xvdHRlZCgqKSB7CiAgICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgICBjb2xvcjogdmFyKC0tdGItdWktZGFyay1hY2NlbnQpOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBtYXJnaW4tdG9wOiAxMHB4OwogICAgICB9CgogICAgICAuY29udGVudC13cmFwcGVyIDo6c2xvdHRlZCgqKSB7CiAgICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgICBjb2xvcjogdmFyKC0tdGItdWktZGFyay1hY2NlbnQpOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBtYXJnaW4tdG9wOiAxMHB4OwogICAgICB9CgogICAgICAuY29udGVudC13cmFwcGVyIDo6c2xvdHRlZCguc2VsZWN0ZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10Yi11aS1kYXJrLWFjY2VudCk7CiAgICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIGgzIHsKICAgICAgICBjb2xvcjogdmFyKC0tdGItc2Vjb25kYXJ5LXRleHQtY29sb3IpOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgICAgIG1hcmdpbjogMCAwIDVweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLEFPLnByb3RvdHlwZSwibmFtZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITAsb2JzZXJ2ZXI6Il9zZWxlY3RlZElkQ2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sQU8ucHJvdG90eXBlLCJzZWxlY3RlZElkIix2b2lkIDApLEFPPXQoW2koInRmLW9wdGlvbi1zZWxlY3RvciIpXSxBTyk7bGV0IExPPWNsYXNzIGV4dGVuZHMgd2V7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMud2VpZ2h0PS42LHRoaXMuX3VwZGF0ZVdlaWdodD1DZS5leHBvcnRzLmRlYm91bmNlKChmdW5jdGlvbih0KXt0aGlzLndlaWdodD10fSksMjUwKX1faW1tZWRpYXRlV2VpZ2h0TnVtYmVyRm9yUGFwZXJTbGlkZXJDaGFuZ2VkKCl7dGhpcy5faW5wdXRXZWlnaHRTdHJpbmdGb3JQYXBlcklucHV0PXRoaXMuX2ltbWVkaWF0ZVdlaWdodE51bWJlckZvclBhcGVyU2xpZGVyLnRvU3RyaW5nKCksdGhpcy5fdXBkYXRlV2VpZ2h0LmNhbGwodGhpcyx0aGlzLl9pbW1lZGlhdGVXZWlnaHROdW1iZXJGb3JQYXBlclNsaWRlcil9X2lucHV0V2VpZ2h0U3RyaW5nRm9yUGFwZXJJbnB1dENoYW5nZWQoKXsrdGhpcy5faW5wdXRXZWlnaHRTdHJpbmdGb3JQYXBlcklucHV0PDA/dGhpcy5faW5wdXRXZWlnaHRTdHJpbmdGb3JQYXBlcklucHV0PSIwIjordGhpcy5faW5wdXRXZWlnaHRTdHJpbmdGb3JQYXBlcklucHV0PjEmJih0aGlzLl9pbnB1dFdlaWdodFN0cmluZ0ZvclBhcGVySW5wdXQ9IjEiKTt2YXIgdD0rdGhpcy5faW5wdXRXZWlnaHRTdHJpbmdGb3JQYXBlcklucHV0O2lzTmFOKHQpfHx0aGlzLl91cGRhdGVXZWlnaHQuY2FsbCh0aGlzLHQpfX07ZnVuY3Rpb24gUE8odCxlKXtjb25zdCBuPU9iamVjdC5rZXlzKGUpLnNvcnQoKS5maWx0ZXIoKHQ9PnZvaWQgMCE9PWVbdF0pKTtpZighbi5sZW5ndGgpcmV0dXJuIHQ7Y29uc3QgaT0tMSE9PXQuaW5kZXhPZigiPyIpPyImIjoiPyI7cmV0dXJuIHQraStbXS5jb25jYXQoLi4ubi5tYXAoKHQ9Pntjb25zdCBuPWVbdF07cmV0dXJuKEFycmF5LmlzQXJyYXkobik/bjpbbl0pLm1hcCgoZT0+YCR7dH09JHsoZnVuY3Rpb24gbih0KXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHQpLnJlcGxhY2UoL1woL2csIiUyOCIpLnJlcGxhY2UoL1wpL2csIiUyOSIpfSkoZSl9YCkpfSkpKS5qb2luKCImIil9TE8udGVtcGxhdGU9eGVgCiAgICA8aDMgY2xhc3M9InRpdGxlIj5TbW9vdGhpbmc8L2gzPgogICAgPGRpdiBjbGFzcz0ic21vb3RoaW5nLWJsb2NrIj4KICAgICAgPHBhcGVyLXNsaWRlcgogICAgICAgIGlkPSJzbGlkZXIiCiAgICAgICAgaW1tZWRpYXRlLXZhbHVlPSJ7e19pbW1lZGlhdGVXZWlnaHROdW1iZXJGb3JQYXBlclNsaWRlcn19IgogICAgICAgIG1heD0iW1ttYXhdXSIKICAgICAgICBtaW49IltbbWluXV0iCiAgICAgICAgcGluCiAgICAgICAgc3RlcD0iW1tzdGVwXV0iCiAgICAgICAgdHlwZT0ibnVtYmVyIgogICAgICAgIHZhbHVlPSJ7e3dlaWdodH19IgogICAgICA+PC9wYXBlci1zbGlkZXI+CiAgICAgIDxwYXBlci1pbnB1dAogICAgICAgIGlkPSJpbnB1dCIKICAgICAgICBsYWJlbD0id2VpZ2h0IgogICAgICAgIG5vLWxhYmVsLWZsb2F0CiAgICAgICAgdmFsdWU9Int7X2lucHV0V2VpZ2h0U3RyaW5nRm9yUGFwZXJJbnB1dH19IgogICAgICAgIHR5cGU9Im51bWJlciIKICAgICAgICBzdGVwPSJbW3N0ZXBdXSIKICAgICAgICBtaW49IltbbWluXV0iCiAgICAgICAgbWF4PSJbW21heF1dIgogICAgICA+PC9wYXBlci1pbnB1dD4KICAgIDwvZGl2PgogICAgPHN0eWxlPgogICAgICAudGl0bGUgewogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1zZWNvbmRhcnktdGV4dC1jb2xvcik7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsKICAgICAgfQoKICAgICAgLnNtb290aGluZy1ibG9jayB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgfQoKICAgICAgcGFwZXItc2xpZGVyIHsKICAgICAgICAtLXBhcGVyLXNsaWRlci1hY3RpdmUtY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLWtub2ItY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLWtub2Itc3RhcnQtYm9yZGVyLWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1rbm9iLXN0YXJ0LWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1tYXJrZXJzLWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1waW4tY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLXBpbi1zdGFydC1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgZmxleC1ncm93OiAyOwogICAgICB9CgogICAgICBwYXBlci1pbnB1dCB7CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItZm9jdXMtY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWlucHV0OiB7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQogICAgICAgIC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWxhYmVsOiB7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQogICAgICAgIHdpZHRoOiA2MHB4OwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sTE8ucHJvdG90eXBlLCJzdGVwIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLExPLnByb3RvdHlwZSwibWF4Iix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLExPLnByb3RvdHlwZSwibWluIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxMTy5wcm90b3R5cGUsIndlaWdodCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcixub3RpZnk6ITAsb2JzZXJ2ZXI6Il9pbW1lZGlhdGVXZWlnaHROdW1iZXJGb3JQYXBlclNsaWRlckNoYW5nZWQifSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLExPLnByb3RvdHlwZSwiX2ltbWVkaWF0ZVdlaWdodE51bWJlckZvclBhcGVyU2xpZGVyIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLG5vdGlmeTohMCxvYnNlcnZlcjoiX2lucHV0V2VpZ2h0U3RyaW5nRm9yUGFwZXJJbnB1dENoYW5nZWQifSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLExPLnByb3RvdHlwZSwiX2lucHV0V2VpZ2h0U3RyaW5nRm9yUGFwZXJJbnB1dCIsdm9pZCAwKSxMTz10KFtpKCJ0Zi1zbW9vdGhpbmctaW5wdXQiKV0sTE8pO3ZhciBOTz17fSxJTz1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX07Ci8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlCiAgICB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZQogICAgTGljZW5zZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiAgICBUSElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCiAgICBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIEFOWSBJTVBMSUVECiAgICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLAogICAgTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC4KCiAgICBTZWUgdGhlIEFwYWNoZSBWZXJzaW9uIDIuMCBMaWNlbnNlIGZvciBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMKICAgIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovdmFyIFJPPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uIHQoZSl7Zm9yKHZhciBuLGk9MSxyPWFyZ3VtZW50cy5sZW5ndGg7aTxyO2krKylmb3IodmFyIG8gaW4gbj1hcmd1bWVudHNbaV0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4sbykmJihlW29dPW5bb10pO3JldHVybiBlfTtmdW5jdGlvbiBPTyh0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl0sbj0wO3JldHVybiBlP2UuY2FsbCh0KTp7bmV4dDpmdW5jdGlvbigpe3JldHVybiB0JiZuPj10Lmxlbmd0aCYmKHQ9dm9pZCAwKSx7dmFsdWU6dCYmdFtuKytdLGRvbmU6IXR9fX19ZnVuY3Rpb24gek8odCxlKXt2YXIgbj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl07aWYoIW4pcmV0dXJuIHQ7dmFyIGkscixvPW4uY2FsbCh0KSxhPVtdO3RyeXtmb3IoOyh2b2lkIDA9PT1lfHxlLS0gPjApJiYhKGk9by5uZXh0KCkpLmRvbmU7KWEucHVzaChpLnZhbHVlKX1jYXRjaCh0KXtyPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtpJiYhaS5kb25lJiYobj1vLnJldHVybikmJm4uY2FsbChvKX1maW5hbGx5e2lmKHIpdGhyb3cgci5lcnJvcn19cmV0dXJuIGF9ZnVuY3Rpb24gRE8odCl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBETz8odGhpcy52PXQsdGhpcyk6bmV3IERPKHQpfXZhciBCTz1NZShPYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxfX2V4dGVuZHM6ZnVuY3Rpb24gSE8odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fUlPKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSxfX2Fzc2lnbjpSTyxfX3Jlc3Q6ZnVuY3Rpb24gRk8odCxlKXt2YXIgbj17fTtmb3IodmFyIGkgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxpKSYmZS5pbmRleE9mKGkpPDAmJihuW2ldPXRbaV0pO2lmKG51bGwhPXQmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj0wO2ZvcihpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7cjxpLmxlbmd0aDtyKyspZS5pbmRleE9mKGlbcl0pPDAmJihuW2lbcl1dPXRbaVtyXV0pfXJldHVybiBufSxfX2RlY29yYXRlOmZ1bmN0aW9uIFZPKHQsZSxuLGkpe3ZhciByLG89YXJndW1lbnRzLmxlbmd0aCxhPW88Mz9lOm51bGw9PT1pP2k9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLG4pOmk7aWYoIm9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiYiZnVuY3Rpb24iPT10eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSlhPVJlZmxlY3QuZGVjb3JhdGUodCxlLG4saSk7ZWxzZSBmb3IodmFyIHM9dC5sZW5ndGgtMTtzPj0wO3MtLSkocj10W3NdKSYmKGE9KG88Mz9yKGEpOm8+Mz9yKGUsbixhKTpyKGUsbikpfHxhKTtyZXR1cm4gbz4zJiZhJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLGEpLGF9LF9fcGFyYW06ZnVuY3Rpb24gVU8odCxlKXtyZXR1cm4gZnVuY3Rpb24obixpKXtlKG4saSx0KX19LF9fbWV0YWRhdGE6ZnVuY3Rpb24gak8odCxlKXtpZigib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3QmJiJmdW5jdGlvbiI9PXR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhKXJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKHQsZSl9LF9fYXdhaXRlcjpmdW5jdGlvbiBHTyh0LGUsbixpKXtyZXR1cm4gbmV3KG58fChuPVByb21pc2UpKSgoZnVuY3Rpb24ocixvKXtmdW5jdGlvbiBhKHQpe3RyeXtsKGkubmV4dCh0KSl9Y2F0Y2godCl7byh0KX19ZnVuY3Rpb24gcyh0KXt0cnl7bChpLnRocm93KHQpKX1jYXRjaCh0KXtvKHQpfX1mdW5jdGlvbiBsKHQpe3QuZG9uZT9yKHQudmFsdWUpOm5ldyBuKChmdW5jdGlvbihlKXtlKHQudmFsdWUpfSkpLnRoZW4oYSxzKX1sKChpPWkuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KSl9LF9fZ2VuZXJhdG9yOmZ1bmN0aW9uIFdPKHQsZSl7dmFyIG4saSxyLG8sYT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZyWzBdKXRocm93IHJbMV07cmV0dXJuIHJbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gbz17bmV4dDpzKDApLHRocm93OnMoMSkscmV0dXJuOnMoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihvW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLG87ZnVuY3Rpb24gcyhvKXtyZXR1cm4gZnVuY3Rpb24ocyl7cmV0dXJuKGZ1bmN0aW9uIGwobyl7aWYobil0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDthOyl0cnl7aWYobj0xLGkmJihyPWlbMiZvWzBdPyJyZXR1cm4iOm9bMF0/InRocm93IjoibmV4dCJdKSYmIShyPXIuY2FsbChpLG9bMV0pKS5kb25lKXJldHVybiByO3N3aXRjaChpPTAsciYmKG89WzAsci52YWx1ZV0pLG9bMF0pe2Nhc2UgMDpjYXNlIDE6cj1vO2JyZWFrO2Nhc2UgNDpyZXR1cm4gYS5sYWJlbCsrLHt2YWx1ZTpvWzFdLGRvbmU6ITF9O2Nhc2UgNTphLmxhYmVsKyssaT1vWzFdLG89WzBdO2NvbnRpbnVlO2Nhc2UgNzpvPWEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEocj1hLnRyeXMsKHI9ci5sZW5ndGg+MCYmcltyLmxlbmd0aC0xXSl8fDYhPT1vWzBdJiYyIT09b1swXSkpe2E9MDtjb250aW51ZX1pZigzPT09b1swXSYmKCFyfHxvWzFdPnJbMF0mJm9bMV08clszXSkpe2EubGFiZWw9b1sxXTticmVha31pZig2PT09b1swXSYmYS5sYWJlbDxyWzFdKXthLmxhYmVsPXJbMV0scj1vO2JyZWFrfWlmKHImJmEubGFiZWw8clsyXSl7YS5sYWJlbD1yWzJdLGEub3BzLnB1c2gobyk7YnJlYWt9clsyXSYmYS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlfW89ZS5jYWxsKHQsYSl9Y2F0Y2godCl7bz1bNix0XSxpPTB9ZmluYWxseXtuPXI9MH1pZig1Jm9bMF0pdGhyb3cgb1sxXTtyZXR1cm57dmFsdWU6b1swXT9vWzFdOnZvaWQgMCxkb25lOiEwfX0pKFtvLHNdKX19fSxfX2V4cG9ydFN0YXI6ZnVuY3Rpb24gcU8odCxlKXtmb3IodmFyIG4gaW4gdCllLmhhc093blByb3BlcnR5KG4pfHwoZVtuXT10W25dKX0sX192YWx1ZXM6T08sX19yZWFkOnpPLF9fc3ByZWFkOmZ1bmN0aW9uIFlPKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXQ9dC5jb25jYXQoek8oYXJndW1lbnRzW2VdKSk7cmV0dXJuIHR9LF9fYXdhaXQ6RE8sX19hc3luY0dlbmVyYXRvcjpmdW5jdGlvbiBYTyh0LGUsbil7aWYoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpO3ZhciBpLHI9bi5hcHBseSh0LGV8fFtdKSxvPVtdO3JldHVybiBpPXt9LGEoIm5leHQiKSxhKCJ0aHJvdyIpLGEoInJldHVybiIpLGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGk7ZnVuY3Rpb24gYSh0KXtyW3RdJiYoaVt0XT1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKG4saSl7by5wdXNoKFt0LGUsbixpXSk+MXx8cyh0LGUpfSkpfSl9ZnVuY3Rpb24gcyh0LGUpe3RyeXshKGZ1bmN0aW9uIG4odCl7dC52YWx1ZSBpbnN0YW5jZW9mIERPP1Byb21pc2UucmVzb2x2ZSh0LnZhbHVlLnYpLnRoZW4obCxjKTp1KG9bMF1bMl0sdCl9KShyW3RdKGUpKX1jYXRjaCh0KXt1KG9bMF1bM10sdCl9fWZ1bmN0aW9uIGwodCl7cygibmV4dCIsdCl9ZnVuY3Rpb24gYyh0KXtzKCJ0aHJvdyIsdCl9ZnVuY3Rpb24gdSh0LGUpe3QoZSksby5zaGlmdCgpLG8ubGVuZ3RoJiZzKG9bMF1bMF0sb1swXVsxXSl9fSxfX2FzeW5jRGVsZWdhdG9yOmZ1bmN0aW9uICRPKHQpe3ZhciBlLG47cmV0dXJuIGU9e30saSgibmV4dCIpLGkoInRocm93IiwoZnVuY3Rpb24odCl7dGhyb3cgdH0pKSxpKCJyZXR1cm4iKSxlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sZTtmdW5jdGlvbiBpKGkscil7dFtpXSYmKGVbaV09ZnVuY3Rpb24oZSl7cmV0dXJuKG49IW4pP3t2YWx1ZTpETyh0W2ldKGUpKSxkb25lOiJyZXR1cm4iPT09aX06cj9yKGUpOmV9KX19LF9fYXN5bmNWYWx1ZXM6ZnVuY3Rpb24gS08odCl7aWYoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpO3ZhciBlPXRbU3ltYm9sLmFzeW5jSXRlcmF0b3JdO3JldHVybiBlP2UuY2FsbCh0KTpPTyh0KX0sX19tYWtlVGVtcGxhdGVPYmplY3Q6ZnVuY3Rpb24gWk8odCxlKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJyYXciLHt2YWx1ZTplfSk6dC5yYXc9ZSx0fX0pKTtmdW5jdGlvbiBKTyh0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6dD49ZT8wOk5hTn1mdW5jdGlvbiBRTyh0KXtyZXR1cm4gMT09PXQubGVuZ3RoJiYodD0oZnVuY3Rpb24gZSh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm4gSk8odChlKSxuKX19KSh0KSkse2xlZnQ6ZnVuY3Rpb24oZSxuLGkscil7Zm9yKG51bGw9PWkmJihpPTApLG51bGw9PXImJihyPWUubGVuZ3RoKTtpPHI7KXt2YXIgbz1pK3I+Pj4xO3QoZVtvXSxuKTwwP2k9bysxOnI9b31yZXR1cm4gaX0scmlnaHQ6ZnVuY3Rpb24oZSxuLGkscil7Zm9yKG51bGw9PWkmJihpPTApLG51bGw9PXImJihyPWUubGVuZ3RoKTtpPHI7KXt2YXIgbz1pK3I+Pj4xO3QoZVtvXSxuKT4wP3I9bzppPW8rMX1yZXR1cm4gaX19fXZhciB0ej1RTyhKTyksZXo9dHoucmlnaHQsbno9dHoubGVmdDtmdW5jdGlvbiBpeih0LGUpe3JldHVyblt0LGVdfWZ1bmN0aW9uIHJ6KHQpe3JldHVybiBudWxsPT09dD9OYU46K3R9ZnVuY3Rpb24gb3oodCxlKXt2YXIgbixpLHI9dC5sZW5ndGgsbz0wLGE9LTEscz0wLGw9MDtpZihudWxsPT1lKWZvcig7KythPHI7KWlzTmFOKG49cnoodFthXSkpfHwobCs9KGk9bi1zKSoobi0ocys9aS8rK28pKSk7ZWxzZSBmb3IoOysrYTxyOylpc05hTihuPXJ6KGUodFthXSxhLHQpKSl8fChsKz0oaT1uLXMpKihuLShzKz1pLysrbykpKTtpZihvPjEpcmV0dXJuIGwvKG8tMSl9ZnVuY3Rpb24gYXoodCxlKXt2YXIgbj1veih0LGUpO3JldHVybiBuP01hdGguc3FydChuKTpufWZ1bmN0aW9uIHN6KHQsZSl7dmFyIG4saSxyLG89dC5sZW5ndGgsYT0tMTtpZihudWxsPT1lKXtmb3IoOysrYTxvOylpZihudWxsIT0obj10W2FdKSYmbj49bilmb3IoaT1yPW47KythPG87KW51bGwhPShuPXRbYV0pJiYoaT5uJiYoaT1uKSxyPG4mJihyPW4pKX1lbHNlIGZvcig7KythPG87KWlmKG51bGwhPShuPWUodFthXSxhLHQpKSYmbj49bilmb3IoaT1yPW47KythPG87KW51bGwhPShuPWUodFthXSxhLHQpKSYmKGk+biYmKGk9bikscjxuJiYocj1uKSk7cmV0dXJuW2kscl19dmFyIGx6PUFycmF5LnByb3RvdHlwZSxjej1sei5zbGljZSx1ej1sei5tYXA7ZnVuY3Rpb24gaHoodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIGR6KHQpe3JldHVybiB0fWZ1bmN0aW9uIHB6KHQsZSxuKXt0PSt0LGU9K2Usbj0ocj1hcmd1bWVudHMubGVuZ3RoKTwyPyhlPXQsdD0wLDEpOnI8Mz8xOituO2Zvcih2YXIgaT0tMSxyPTB8TWF0aC5tYXgoMCxNYXRoLmNlaWwoKGUtdCkvbikpLG89bmV3IEFycmF5KHIpOysraTxyOylvW2ldPXQraSpuO3JldHVybiBvfXZhciBmej1NYXRoLnNxcnQoNTApLG16PU1hdGguc3FydCgxMCksZ3o9TWF0aC5zcXJ0KDIpO2Z1bmN0aW9uIF96KHQsZSxuKXt2YXIgaT0oZS10KS9NYXRoLm1heCgwLG4pLHI9TWF0aC5mbG9vcihNYXRoLmxvZyhpKS9NYXRoLkxOMTApLG89aS9NYXRoLnBvdygxMCxyKTtyZXR1cm4gcj49MD8obz49Zno/MTA6bz49bXo/NTpvPj1nej8yOjEpKk1hdGgucG93KDEwLHIpOi1NYXRoLnBvdygxMCwtcikvKG8+PWZ6PzEwOm8+PW16PzU6bz49Z3o/MjoxKX1mdW5jdGlvbiB5eih0LGUsbil7dmFyIGk9TWF0aC5hYnMoZS10KS9NYXRoLm1heCgwLG4pLHI9TWF0aC5wb3coMTAsTWF0aC5mbG9vcihNYXRoLmxvZyhpKS9NYXRoLkxOMTApKSxvPWkvcjtyZXR1cm4gbz49Zno/cio9MTA6bz49bXo/cio9NTpvPj1neiYmKHIqPTIpLGU8dD8tcjpyfWZ1bmN0aW9uIHZ6KHQpe3JldHVybiBNYXRoLmNlaWwoTWF0aC5sb2codC5sZW5ndGgpL01hdGguTE4yKSsxfWZ1bmN0aW9uIGJ6KHQsZSxuKXtpZihudWxsPT1uJiYobj1yeiksaT10Lmxlbmd0aCl7aWYoKGU9K2UpPD0wfHxpPDIpcmV0dXJuK24odFswXSwwLHQpO2lmKGU+PTEpcmV0dXJuK24odFtpLTFdLGktMSx0KTt2YXIgaSxyPShpLTEpKmUsbz1NYXRoLmZsb29yKHIpLGE9K24odFtvXSxvLHQpO3JldHVybiBhKygrbih0W28rMV0sbysxLHQpLWEpKihyLW8pfX1mdW5jdGlvbiB4eih0LGUpe3ZhciBuLGkscj10Lmxlbmd0aCxvPS0xO2lmKG51bGw9PWUpe2Zvcig7KytvPHI7KWlmKG51bGwhPShuPXRbb10pJiZuPj1uKWZvcihpPW47KytvPHI7KW51bGwhPShuPXRbb10pJiZpPm4mJihpPW4pfWVsc2UgZm9yKDsrK288cjspaWYobnVsbCE9KG49ZSh0W29dLG8sdCkpJiZuPj1uKWZvcihpPW47KytvPHI7KW51bGwhPShuPWUodFtvXSxvLHQpKSYmaT5uJiYoaT1uKTtyZXR1cm4gaX1mdW5jdGlvbiB3eih0KXtpZighKHI9dC5sZW5ndGgpKXJldHVybltdO2Zvcih2YXIgZT0tMSxuPXh6KHQsU3opLGk9bmV3IEFycmF5KG4pOysrZTxuOylmb3IodmFyIHIsbz0tMSxhPWlbZV09bmV3IEFycmF5KHIpOysrbzxyOylhW29dPXRbb11bZV07cmV0dXJuIGl9ZnVuY3Rpb24gU3oodCl7cmV0dXJuIHQubGVuZ3RofXZhciBNej1BcnJheS5wcm90b3R5cGUuc2xpY2U7ZnVuY3Rpb24gRXoodCl7cmV0dXJuIHR9dmFyIFR6PTFlLTY7ZnVuY3Rpb24gQ3oodCl7cmV0dXJuInRyYW5zbGF0ZSgiKyh0Ky41KSsiLDApIn1mdW5jdGlvbiBBeih0KXtyZXR1cm4idHJhbnNsYXRlKDAsIisodCsuNSkrIikifWZ1bmN0aW9uIGt6KHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4rdChlKX19ZnVuY3Rpb24gTHoodCl7dmFyIGU9TWF0aC5tYXgoMCx0LmJhbmR3aWR0aCgpLTEpLzI7cmV0dXJuIHQucm91bmQoKSYmKGU9TWF0aC5yb3VuZChlKSksZnVuY3Rpb24obil7cmV0dXJuK3QobikrZX19ZnVuY3Rpb24gUHooKXtyZXR1cm4hdGhpcy5fX2F4aXN9ZnVuY3Rpb24gTnoodCxlKXt2YXIgbj1bXSxpPW51bGwscj1udWxsLG89NixhPTYscz0zLGw9MT09PXR8fDQ9PT10Py0xOjEsYz00PT09dHx8Mj09PXQ/IngiOiJ5Iix1PTE9PT10fHwzPT09dD9DejpBejtmdW5jdGlvbiBoKGgpe3ZhciBkPW51bGw9PWk/ZS50aWNrcz9lLnRpY2tzLmFwcGx5KGUsbik6ZS5kb21haW4oKTppLHA9bnVsbD09cj9lLnRpY2tGb3JtYXQ/ZS50aWNrRm9ybWF0LmFwcGx5KGUsbik6RXo6cixmPU1hdGgubWF4KG8sMCkrcyxtPWUucmFuZ2UoKSxnPSttWzBdKy41LF89K21bbS5sZW5ndGgtMV0rLjUseT0oZS5iYW5kd2lkdGg/THo6a3opKGUuY29weSgpKSx2PWguc2VsZWN0aW9uP2guc2VsZWN0aW9uKCk6aCxiPXYuc2VsZWN0QWxsKCIuZG9tYWluIikuZGF0YShbbnVsbF0pLHg9di5zZWxlY3RBbGwoIi50aWNrIikuZGF0YShkLGUpLm9yZGVyKCksdz14LmV4aXQoKSxTPXguZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsInRpY2siKSxNPXguc2VsZWN0KCJsaW5lIiksRT14LnNlbGVjdCgidGV4dCIpO2I9Yi5tZXJnZShiLmVudGVyKCkuaW5zZXJ0KCJwYXRoIiwiLnRpY2siKS5hdHRyKCJjbGFzcyIsImRvbWFpbiIpLmF0dHIoInN0cm9rZSIsIiMwMDAiKSkseD14Lm1lcmdlKFMpLE09TS5tZXJnZShTLmFwcGVuZCgibGluZSIpLmF0dHIoInN0cm9rZSIsIiMwMDAiKS5hdHRyKGMrIjIiLGwqbykpLEU9RS5tZXJnZShTLmFwcGVuZCgidGV4dCIpLmF0dHIoImZpbGwiLCIjMDAwIikuYXR0cihjLGwqZikuYXR0cigiZHkiLDE9PT10PyIwZW0iOjM9PT10PyIwLjcxZW0iOiIwLjMyZW0iKSksaCE9PXYmJihiPWIudHJhbnNpdGlvbihoKSx4PXgudHJhbnNpdGlvbihoKSxNPU0udHJhbnNpdGlvbihoKSxFPUUudHJhbnNpdGlvbihoKSx3PXcudHJhbnNpdGlvbihoKS5hdHRyKCJvcGFjaXR5IixUeikuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7cmV0dXJuIGlzRmluaXRlKHQ9eSh0KSk/dSh0KTp0aGlzLmdldEF0dHJpYnV0ZSgidHJhbnNmb3JtIil9KSksUy5hdHRyKCJvcGFjaXR5IixUeikuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5wYXJlbnROb2RlLl9fYXhpcztyZXR1cm4gdShlJiZpc0Zpbml0ZShlPWUodCkpP2U6eSh0KSl9KSkpLHcucmVtb3ZlKCksYi5hdHRyKCJkIiw0PT09dHx8Mj09dD8iTSIrbCphKyIsIitnKyJIMC41ViIrXysiSCIrbCphOiJNIitnKyIsIitsKmErIlYwLjVIIitfKyJWIitsKmEpLHguYXR0cigib3BhY2l0eSIsMSkuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7cmV0dXJuIHUoeSh0KSl9KSksTS5hdHRyKGMrIjIiLGwqbyksRS5hdHRyKGMsbCpmKS50ZXh0KHApLHYuZmlsdGVyKFB6KS5hdHRyKCJmaWxsIiwibm9uZSIpLmF0dHIoImZvbnQtc2l6ZSIsMTApLmF0dHIoImZvbnQtZmFtaWx5Iiwic2Fucy1zZXJpZiIpLmF0dHIoInRleHQtYW5jaG9yIiwyPT09dD8ic3RhcnQiOjQ9PT10PyJlbmQiOiJtaWRkbGUiKSx2LmVhY2goKGZ1bmN0aW9uKCl7dGhpcy5fX2F4aXM9eX0pKX1yZXR1cm4gaC5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LGgpOmV9LGgudGlja3M9ZnVuY3Rpb24oKXtyZXR1cm4gbj1Nei5jYWxsKGFyZ3VtZW50cyksaH0saC50aWNrQXJndW1lbnRzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPW51bGw9PXQ/W106TXouY2FsbCh0KSxoKTpuLnNsaWNlKCl9LGgudGlja1ZhbHVlcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1udWxsPT10P251bGw6TXouY2FsbCh0KSxoKTppJiZpLnNsaWNlKCl9LGgudGlja0Zvcm1hdD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LGgpOnJ9LGgudGlja1NpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89YT0rdCxoKTpvfSxoLnRpY2tTaXplSW5uZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89K3QsaCk6b30saC50aWNrU2l6ZU91dGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSt0LGgpOmF9LGgudGlja1BhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9K3QsaCk6c30saH12YXIgSXo9e3ZhbHVlOmZ1bmN0aW9uKCl7fX07ZnVuY3Rpb24gUnooKXtmb3IodmFyIHQsZT0wLG49YXJndW1lbnRzLmxlbmd0aCxpPXt9O2U8bjsrK2Upe2lmKCEodD1hcmd1bWVudHNbZV0rIiIpfHx0IGluIGl8fC9bXHMuXS8udGVzdCh0KSl0aHJvdyBuZXcgRXJyb3IoImlsbGVnYWwgdHlwZTogIit0KTtpW3RdPVtdfXJldHVybiBuZXcgT3ooaSl9ZnVuY3Rpb24gT3oodCl7dGhpcy5fPXR9ZnVuY3Rpb24genoodCxlKXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLykubWFwKChmdW5jdGlvbih0KXt2YXIgbj0iIixpPXQuaW5kZXhPZigiLiIpO2lmKGk+PTAmJihuPXQuc2xpY2UoaSsxKSx0PXQuc2xpY2UoMCxpKSksdCYmIWUuaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrdCk7cmV0dXJue3R5cGU6dCxuYW1lOm59fSkpfWZ1bmN0aW9uIER6KHQsZSl7Zm9yKHZhciBuLGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpaWYoKG49dFtpXSkubmFtZT09PWUpcmV0dXJuIG4udmFsdWV9ZnVuY3Rpb24gQnoodCxlLG4pe2Zvcih2YXIgaT0wLHI9dC5sZW5ndGg7aTxyOysraSlpZih0W2ldLm5hbWU9PT1lKXt0W2ldPUl6LHQ9dC5zbGljZSgwLGkpLmNvbmNhdCh0LnNsaWNlKGkrMSkpO2JyZWFrfXJldHVybiBudWxsIT1uJiZ0LnB1c2goe25hbWU6ZSx2YWx1ZTpufSksdH1Pei5wcm90b3R5cGU9UnoucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpPeixvbjpmdW5jdGlvbih0LGUpe3ZhciBuLGk9dGhpcy5fLHI9enoodCsiIixpKSxvPS0xLGE9ci5sZW5ndGg7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtpZihudWxsIT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2s6ICIrZSk7Zm9yKDsrK288YTspaWYobj0odD1yW29dKS50eXBlKWlbbl09QnooaVtuXSx0Lm5hbWUsZSk7ZWxzZSBpZihudWxsPT1lKWZvcihuIGluIGkpaVtuXT1CeihpW25dLHQubmFtZSxudWxsKTtyZXR1cm4gdGhpc31mb3IoOysrbzxhOylpZigobj0odD1yW29dKS50eXBlKSYmKG49RHooaVtuXSx0Lm5hbWUpKSlyZXR1cm4gbn0sY29weTpmdW5jdGlvbigpe3ZhciB0PXt9LGU9dGhpcy5fO2Zvcih2YXIgbiBpbiBlKXRbbl09ZVtuXS5zbGljZSgpO3JldHVybiBuZXcgT3oodCl9LGNhbGw6ZnVuY3Rpb24odCxlKXtpZigobj1hcmd1bWVudHMubGVuZ3RoLTIpPjApZm9yKHZhciBuLGkscj1uZXcgQXJyYXkobiksbz0wO288bjsrK28pcltvXT1hcmd1bWVudHNbbysyXTtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO2ZvcihvPTAsbj0oaT10aGlzLl9bdF0pLmxlbmd0aDtvPG47KytvKWlbb10udmFsdWUuYXBwbHkoZSxyKX0sYXBwbHk6ZnVuY3Rpb24odCxlLG4pe2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrdCk7Zm9yKHZhciBpPXRoaXMuX1t0XSxyPTAsbz1pLmxlbmd0aDtyPG87KytyKWlbcl0udmFsdWUuYXBwbHkoZSxuKX19O3ZhciBIej0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsRno9e3N2ZzoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhodG1sOkh6LHhsaW5rOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIix4bWw6Imh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvIn07ZnVuY3Rpb24gVnoodCl7dmFyIGU9dCs9IiIsbj1lLmluZGV4T2YoIjoiKTtyZXR1cm4gbj49MCYmInhtbG5zIiE9PShlPXQuc2xpY2UoMCxuKSkmJih0PXQuc2xpY2UobisxKSksRnouaGFzT3duUHJvcGVydHkoZSk/e3NwYWNlOkZ6W2VdLGxvY2FsOnR9OnR9ZnVuY3Rpb24gVXoodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vd25lckRvY3VtZW50LG49dGhpcy5uYW1lc3BhY2VVUkk7cmV0dXJuIG49PT1IeiYmZS5kb2N1bWVudEVsZW1lbnQubmFtZXNwYWNlVVJJPT09SHo/ZS5jcmVhdGVFbGVtZW50KHQpOmUuY3JlYXRlRWxlbWVudE5TKG4sdCl9fWZ1bmN0aW9uIGp6KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIEd6KHQpe3ZhciBlPVZ6KHQpO3JldHVybihlLmxvY2FsP2p6OlV6KShlKX1mdW5jdGlvbiBXeigpe31mdW5jdGlvbiBxeih0KXtyZXR1cm4gbnVsbD09dD9XejpmdW5jdGlvbigpe3JldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3IodCl9fWZ1bmN0aW9uIFl6KCl7cmV0dXJuW119ZnVuY3Rpb24gWHoodCl7cmV0dXJuIG51bGw9PXQ/WXo6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsKHQpfX1mdW5jdGlvbiAkeih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXRjaGVzKHQpfX1mdW5jdGlvbiBLeih0KXtyZXR1cm4gbmV3IEFycmF5KHQubGVuZ3RoKX1mdW5jdGlvbiBaeih0LGUpe3RoaXMub3duZXJEb2N1bWVudD10Lm93bmVyRG9jdW1lbnQsdGhpcy5uYW1lc3BhY2VVUkk9dC5uYW1lc3BhY2VVUkksdGhpcy5fbmV4dD1udWxsLHRoaXMuX3BhcmVudD10LHRoaXMuX19kYXRhX189ZX1aei5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlp6LGFwcGVuZENoaWxkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKHQsdGhpcy5fbmV4dCl9LGluc2VydEJlZm9yZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKHQsZSl9LHF1ZXJ5U2VsZWN0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yKHQpfSxxdWVyeVNlbGVjdG9yQWxsOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3RvckFsbCh0KX19O2Z1bmN0aW9uIEp6KHQsZSxuLGkscixvKXtmb3IodmFyIGEscz0wLGw9ZS5sZW5ndGgsYz1vLmxlbmd0aDtzPGM7KytzKShhPWVbc10pPyhhLl9fZGF0YV9fPW9bc10saVtzXT1hKTpuW3NdPW5ldyBaeih0LG9bc10pO2Zvcig7czxsOysrcykoYT1lW3NdKSYmKHJbc109YSl9ZnVuY3Rpb24gUXoodCxlLG4saSxyLG8sYSl7dmFyIHMsbCxjLHU9e30saD1lLmxlbmd0aCxkPW8ubGVuZ3RoLHA9bmV3IEFycmF5KGgpO2ZvcihzPTA7czxoOysrcykobD1lW3NdKSYmKHBbc109Yz0iJCIrYS5jYWxsKGwsbC5fX2RhdGFfXyxzLGUpLGMgaW4gdT9yW3NdPWw6dVtjXT1sKTtmb3Iocz0wO3M8ZDsrK3MpKGw9dVtjPSIkIithLmNhbGwodCxvW3NdLHMsbyldKT8oaVtzXT1sLGwuX19kYXRhX189b1tzXSx1W2NdPW51bGwpOm5bc109bmV3IFp6KHQsb1tzXSk7Zm9yKHM9MDtzPGg7KytzKShsPWVbc10pJiZ1W3Bbc11dPT09bCYmKHJbc109bCl9ZnVuY3Rpb24gdEQodCxlKXtyZXR1cm4gdDxlPy0xOnQ+ZT8xOnQ+PWU/MDpOYU59ZnVuY3Rpb24gZUQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fWZ1bmN0aW9uIG5EKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19ZnVuY3Rpb24gaUQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZSh0LGUpfX1mdW5jdGlvbiByRCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLGUpfX1mdW5jdGlvbiBvRCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PW4/dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCk6dGhpcy5zZXRBdHRyaWJ1dGUodCxuKX19ZnVuY3Rpb24gYUQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKTp0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxuKX19ZnVuY3Rpb24gc0QodCl7cmV0dXJuIHQub3duZXJEb2N1bWVudCYmdC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx0LmRvY3VtZW50JiZ0fHx0LmRlZmF1bHRWaWV3fWZ1bmN0aW9uIGxEKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCl9fWZ1bmN0aW9uIGNEKHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQsZSxuKX19ZnVuY3Rpb24gdUQodCxlLG4pe3JldHVybiBmdW5jdGlvbigpe3ZhciBpPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PWk/dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KTp0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQsaSxuKX19ZnVuY3Rpb24gaEQodCxlKXtyZXR1cm4gdC5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGUpfHxzRCh0KS5nZXRDb21wdXRlZFN0eWxlKHQsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShlKX1mdW5jdGlvbiBkRCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtkZWxldGUgdGhpc1t0XX19ZnVuY3Rpb24gcEQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzW3RdPWV9fWZ1bmN0aW9uIGZEKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09bj9kZWxldGUgdGhpc1t0XTp0aGlzW3RdPW59fWZ1bmN0aW9uIG1EKHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKX1mdW5jdGlvbiBnRCh0KXtyZXR1cm4gdC5jbGFzc0xpc3R8fG5ldyBfRCh0KX1mdW5jdGlvbiBfRCh0KXt0aGlzLl9ub2RlPXQsdGhpcy5fbmFtZXM9bUQodC5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX1mdW5jdGlvbiB5RCh0LGUpe2Zvcih2YXIgbj1nRCh0KSxpPS0xLHI9ZS5sZW5ndGg7KytpPHI7KW4uYWRkKGVbaV0pfWZ1bmN0aW9uIHZEKHQsZSl7Zm9yKHZhciBuPWdEKHQpLGk9LTEscj1lLmxlbmd0aDsrK2k8cjspbi5yZW1vdmUoZVtpXSl9ZnVuY3Rpb24gYkQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7eUQodGhpcyx0KX19ZnVuY3Rpb24geEQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dkQodGhpcyx0KX19ZnVuY3Rpb24gd0QodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXsoZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk/eUQ6dkQpKHRoaXMsdCl9fWZ1bmN0aW9uIFNEKCl7dGhpcy50ZXh0Q29udGVudD0iIn1mdW5jdGlvbiBNRCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PXR9fWZ1bmN0aW9uIEVEKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMudGV4dENvbnRlbnQ9bnVsbD09ZT8iIjplfX1mdW5jdGlvbiBURCgpe3RoaXMuaW5uZXJIVE1MPSIifWZ1bmN0aW9uIENEKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuaW5uZXJIVE1MPXR9fWZ1bmN0aW9uIEFEKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuaW5uZXJIVE1MPW51bGw9PWU/IiI6ZX19ZnVuY3Rpb24ga0QoKXt0aGlzLm5leHRTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodGhpcyl9ZnVuY3Rpb24gTEQoKXt0aGlzLnByZXZpb3VzU2libGluZyYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLHRoaXMucGFyZW50Tm9kZS5maXJzdENoaWxkKX1mdW5jdGlvbiBQRCgpe3JldHVybiBudWxsfWZ1bmN0aW9uIE5EKCl7dmFyIHQ9dGhpcy5wYXJlbnROb2RlO3QmJnQucmVtb3ZlQ2hpbGQodGhpcyl9ZnVuY3Rpb24gSUQoKXt2YXIgdD10aGlzLmNsb25lTm9kZSghMSksZT10aGlzLnBhcmVudE5vZGU7cmV0dXJuIGU/ZS5pbnNlcnRCZWZvcmUodCx0aGlzLm5leHRTaWJsaW5nKTp0fWZ1bmN0aW9uIFJEKCl7dmFyIHQ9dGhpcy5jbG9uZU5vZGUoITApLGU9dGhpcy5wYXJlbnROb2RlO3JldHVybiBlP2UuaW5zZXJ0QmVmb3JlKHQsdGhpcy5uZXh0U2libGluZyk6dH1fRC5wcm90b3R5cGU9e2FkZDpmdW5jdGlvbih0KXt0aGlzLl9uYW1lcy5pbmRleE9mKHQpPDAmJih0aGlzLl9uYW1lcy5wdXNoKHQpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsdGhpcy5fbmFtZXMuam9pbigiICIpKSl9LHJlbW92ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9uYW1lcy5pbmRleE9mKHQpO2U+PTAmJih0aGlzLl9uYW1lcy5zcGxpY2UoZSwxKSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxjb250YWluczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbmFtZXMuaW5kZXhPZih0KT49MH19O3ZhciBPRD17fSx6RD1udWxsOyJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJigib25tb3VzZWVudGVyImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudHx8KE9EPXttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0In0pKTtmdW5jdGlvbiBERCh0LGUsbil7cmV0dXJuIHQ9QkQodCxlLG4pLGZ1bmN0aW9uKGUpe3ZhciBuPWUucmVsYXRlZFRhcmdldDtuJiYobj09PXRoaXN8fDgmbi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0aGlzKSl8fHQuY2FsbCh0aGlzLGUpfX1mdW5jdGlvbiBCRCh0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKGkpe3ZhciByPXpEO3pEPWk7dHJ5e3QuY2FsbCh0aGlzLHRoaXMuX19kYXRhX18sZSxuKX1maW5hbGx5e3pEPXJ9fX1mdW5jdGlvbiBIRCh0KXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLykubWFwKChmdW5jdGlvbih0KXt2YXIgZT0iIixuPXQuaW5kZXhPZigiLiIpO3JldHVybiBuPj0wJiYoZT10LnNsaWNlKG4rMSksdD10LnNsaWNlKDAsbikpLHt0eXBlOnQsbmFtZTplfX0pKX1mdW5jdGlvbiBGRCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9fb247aWYoZSl7Zm9yKHZhciBuLGk9MCxyPS0xLG89ZS5sZW5ndGg7aTxvOysraSluPWVbaV0sdC50eXBlJiZuLnR5cGUhPT10LnR5cGV8fG4ubmFtZSE9PXQubmFtZT9lWysrcl09bjp0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIobi50eXBlLG4ubGlzdGVuZXIsbi5jYXB0dXJlKTsrK3I/ZS5sZW5ndGg9cjpkZWxldGUgdGhpcy5fX29ufX19ZnVuY3Rpb24gVkQodCxlLG4pe3ZhciBpPU9ELmhhc093blByb3BlcnR5KHQudHlwZSk/REQ6QkQ7cmV0dXJuIGZ1bmN0aW9uKHIsbyxhKXt2YXIgcyxsPXRoaXMuX19vbixjPWkoZSxvLGEpO2lmKGwpZm9yKHZhciB1PTAsaD1sLmxlbmd0aDt1PGg7Kyt1KWlmKChzPWxbdV0pLnR5cGU9PT10LnR5cGUmJnMubmFtZT09PXQubmFtZSlyZXR1cm4gdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKHMudHlwZSxzLmxpc3RlbmVyLHMuY2FwdHVyZSksdGhpcy5hZGRFdmVudExpc3RlbmVyKHMudHlwZSxzLmxpc3RlbmVyPWMscy5jYXB0dXJlPW4pLHZvaWQocy52YWx1ZT1lKTt0aGlzLmFkZEV2ZW50TGlzdGVuZXIodC50eXBlLGMsbikscz17dHlwZTp0LnR5cGUsbmFtZTp0Lm5hbWUsdmFsdWU6ZSxsaXN0ZW5lcjpjLGNhcHR1cmU6bn0sbD9sLnB1c2gocyk6dGhpcy5fX29uPVtzXX19ZnVuY3Rpb24gVUQodCxlLG4pe3ZhciBpPXNEKHQpLHI9aS5DdXN0b21FdmVudDsiZnVuY3Rpb24iPT10eXBlb2Ygcj9yPW5ldyByKGUsbik6KHI9aS5kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSxuPyhyLmluaXRFdmVudChlLG4uYnViYmxlcyxuLmNhbmNlbGFibGUpLHIuZGV0YWlsPW4uZGV0YWlsKTpyLmluaXRFdmVudChlLCExLCExKSksdC5kaXNwYXRjaEV2ZW50KHIpfWZ1bmN0aW9uIGpEKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIFVEKHRoaXMsdCxlKX19ZnVuY3Rpb24gR0QodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gVUQodGhpcyx0LGUuYXBwbHkodGhpcyxhcmd1bWVudHMpKX19dmFyIFdEPVtudWxsXTtmdW5jdGlvbiBxRCh0LGUpe3RoaXMuX2dyb3Vwcz10LHRoaXMuX3BhcmVudHM9ZX1mdW5jdGlvbiBZRCgpe3JldHVybiBuZXcgcUQoW1tkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdXSxXRCl9ZnVuY3Rpb24gWEQodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P25ldyBxRChbW2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodCldXSxbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XSk6bmV3IHFEKFtbdF1dLFdEKX1mdW5jdGlvbiAkRCh0KXt2YXIgZT0oZnVuY3Rpb24gbigpe2Zvcih2YXIgdCxlPXpEO3Q9ZS5zb3VyY2VFdmVudDspZT10O3JldHVybiBlfSkoKTtyZXR1cm4gZS5jaGFuZ2VkVG91Y2hlcyYmKGU9ZS5jaGFuZ2VkVG91Y2hlc1swXSksKGZ1bmN0aW9uIGkodCxlKXt2YXIgbj10Lm93bmVyU1ZHRWxlbWVudHx8dDtpZihuLmNyZWF0ZVNWR1BvaW50KXt2YXIgaT1uLmNyZWF0ZVNWR1BvaW50KCk7cmV0dXJuIGkueD1lLmNsaWVudFgsaS55PWUuY2xpZW50WSxbKGk9aS5tYXRyaXhUcmFuc2Zvcm0odC5nZXRTY3JlZW5DVE0oKS5pbnZlcnNlKCkpKS54LGkueV19dmFyIHI9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm5bZS5jbGllbnRYLXIubGVmdC10LmNsaWVudExlZnQsZS5jbGllbnRZLXIudG9wLXQuY2xpZW50VG9wXX0pKHQsZSl9ZnVuY3Rpb24gS0QoKXt6RC5wcmV2ZW50RGVmYXVsdCgpLHpELnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIFpEKHQpe3ZhciBlPXQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LG49WEQodCkub24oImRyYWdzdGFydC5kcmFnIixLRCwhMCk7Im9uc2VsZWN0c3RhcnQiaW4gZT9uLm9uKCJzZWxlY3RzdGFydC5kcmFnIixLRCwhMCk6KGUuX19ub3NlbGVjdD1lLnN0eWxlLk1velVzZXJTZWxlY3QsZS5zdHlsZS5Nb3pVc2VyU2VsZWN0PSJub25lIil9ZnVuY3Rpb24gSkQodCxlKXt2YXIgbj10LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxpPVhEKHQpLm9uKCJkcmFnc3RhcnQuZHJhZyIsbnVsbCk7ZSYmKGkub24oImNsaWNrLmRyYWciLEtELCEwKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2kub24oImNsaWNrLmRyYWciLG51bGwpfSksMCkpLCJvbnNlbGVjdHN0YXJ0ImluIG4/aS5vbigic2VsZWN0c3RhcnQuZHJhZyIsbnVsbCk6KG4uc3R5bGUuTW96VXNlclNlbGVjdD1uLl9fbm9zZWxlY3QsZGVsZXRlIG4uX19ub3NlbGVjdCl9ZnVuY3Rpb24gUUQodCxlLG4pe3QucHJvdG90eXBlPWUucHJvdG90eXBlPW4sbi5jb25zdHJ1Y3Rvcj10fWZ1bmN0aW9uIHRCKHQsZSl7dmFyIG49T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSk7Zm9yKHZhciBpIGluIGUpbltpXT1lW2ldO3JldHVybiBufWZ1bmN0aW9uIGVCKCl7fXFELnByb3RvdHlwZT1ZRC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnFELHNlbGVjdDpmdW5jdGlvbiBuQih0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9cXoodCkpO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj1lLmxlbmd0aCxpPW5ldyBBcnJheShuKSxyPTA7cjxuOysrcilmb3IodmFyIG8sYSxzPWVbcl0sbD1zLmxlbmd0aCxjPWlbcl09bmV3IEFycmF5KGwpLHU9MDt1PGw7Kyt1KShvPXNbdV0pJiYoYT10LmNhbGwobyxvLl9fZGF0YV9fLHUscykpJiYoIl9fZGF0YV9fImluIG8mJihhLl9fZGF0YV9fPW8uX19kYXRhX18pLGNbdV09YSk7cmV0dXJuIG5ldyBxRChpLHRoaXMuX3BhcmVudHMpfSxzZWxlY3RBbGw6ZnVuY3Rpb24gaUIodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PVh6KHQpKTtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49ZS5sZW5ndGgsaT1bXSxyPVtdLG89MDtvPG47KytvKWZvcih2YXIgYSxzPWVbb10sbD1zLmxlbmd0aCxjPTA7YzxsOysrYykoYT1zW2NdKSYmKGkucHVzaCh0LmNhbGwoYSxhLl9fZGF0YV9fLGMscykpLHIucHVzaChhKSk7cmV0dXJuIG5ldyBxRChpLHIpfSxmaWx0ZXI6ZnVuY3Rpb24gckIodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PSR6KHQpKTtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49ZS5sZW5ndGgsaT1uZXcgQXJyYXkobikscj0wO3I8bjsrK3IpZm9yKHZhciBvLGE9ZVtyXSxzPWEubGVuZ3RoLGw9aVtyXT1bXSxjPTA7YzxzOysrYykobz1hW2NdKSYmdC5jYWxsKG8sby5fX2RhdGFfXyxjLGEpJiZsLnB1c2gobyk7cmV0dXJuIG5ldyBxRChpLHRoaXMuX3BhcmVudHMpfSxkYXRhOmZ1bmN0aW9uIG9CKHQsZSl7aWYoIXQpcmV0dXJuIGY9bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSx1PS0xLHRoaXMuZWFjaCgoZnVuY3Rpb24odCl7ZlsrK3VdPXR9KSksZjt2YXIgbj1lP1F6Okp6LGk9dGhpcy5fcGFyZW50cyxyPXRoaXMuX2dyb3VwczsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9KGZ1bmN0aW9uIG8odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fSkodCkpO2Zvcih2YXIgYT1yLmxlbmd0aCxzPW5ldyBBcnJheShhKSxsPW5ldyBBcnJheShhKSxjPW5ldyBBcnJheShhKSx1PTA7dTxhOysrdSl7dmFyIGg9aVt1XSxkPXJbdV0scD1kLmxlbmd0aCxmPXQuY2FsbChoLGgmJmguX19kYXRhX18sdSxpKSxtPWYubGVuZ3RoLGc9bFt1XT1uZXcgQXJyYXkobSksXz1zW3VdPW5ldyBBcnJheShtKTtuKGgsZCxnLF8sY1t1XT1uZXcgQXJyYXkocCksZixlKTtmb3IodmFyIHksdixiPTAseD0wO2I8bTsrK2IpaWYoeT1nW2JdKXtmb3IoYj49eCYmKHg9YisxKTshKHY9X1t4XSkmJisreDxtOyk7eS5fbmV4dD12fHxudWxsfX1yZXR1cm4ocz1uZXcgcUQocyxpKSkuX2VudGVyPWwscy5fZXhpdD1jLHN9LGVudGVyOmZ1bmN0aW9uIGFCKCl7cmV0dXJuIG5ldyBxRCh0aGlzLl9lbnRlcnx8dGhpcy5fZ3JvdXBzLm1hcChLeiksdGhpcy5fcGFyZW50cyl9LGV4aXQ6ZnVuY3Rpb24gc0IoKXtyZXR1cm4gbmV3IHFEKHRoaXMuX2V4aXR8fHRoaXMuX2dyb3Vwcy5tYXAoS3opLHRoaXMuX3BhcmVudHMpfSxqb2luOmZ1bmN0aW9uIGxCKHQsZSxuKXt2YXIgaT10aGlzLmVudGVyKCkscj10aGlzLG89dGhpcy5leGl0KCk7cmV0dXJuIGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dChpKTppLmFwcGVuZCh0KyIiKSxudWxsIT1lJiYocj1lKHIpKSxudWxsPT1uP28ucmVtb3ZlKCk6bihvKSxpJiZyP2kubWVyZ2Uocikub3JkZXIoKTpyfSxtZXJnZTpmdW5jdGlvbiBjQih0KXtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49dC5fZ3JvdXBzLGk9ZS5sZW5ndGgscj1NYXRoLm1pbihpLG4ubGVuZ3RoKSxvPW5ldyBBcnJheShpKSxhPTA7YTxyOysrYSlmb3IodmFyIHMsbD1lW2FdLGM9blthXSx1PWwubGVuZ3RoLGg9b1thXT1uZXcgQXJyYXkodSksZD0wO2Q8dTsrK2QpKHM9bFtkXXx8Y1tkXSkmJihoW2RdPXMpO2Zvcig7YTxpOysrYSlvW2FdPWVbYV07cmV0dXJuIG5ldyBxRChvLHRoaXMuX3BhcmVudHMpfSxvcmRlcjpmdW5jdGlvbiB1Qigpe2Zvcih2YXIgdD10aGlzLl9ncm91cHMsZT0tMSxuPXQubGVuZ3RoOysrZTxuOylmb3IodmFyIGkscj10W2VdLG89ci5sZW5ndGgtMSxhPXJbb107LS1vPj0wOykoaT1yW29dKSYmKGEmJjReaS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihhKSYmYS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShpLGEpLGE9aSk7cmV0dXJuIHRoaXN9LHNvcnQ6ZnVuY3Rpb24gaEIodCl7ZnVuY3Rpb24gZShlLG4pe3JldHVybiBlJiZuP3QoZS5fX2RhdGFfXyxuLl9fZGF0YV9fKTohZS0hbn10fHwodD10RCk7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxpPW4ubGVuZ3RoLHI9bmV3IEFycmF5KGkpLG89MDtvPGk7KytvKXtmb3IodmFyIGEscz1uW29dLGw9cy5sZW5ndGgsYz1yW29dPW5ldyBBcnJheShsKSx1PTA7dTxsOysrdSkoYT1zW3VdKSYmKGNbdV09YSk7Yy5zb3J0KGUpfXJldHVybiBuZXcgcUQocix0aGlzLl9wYXJlbnRzKS5vcmRlcigpfSxjYWxsOmZ1bmN0aW9uIGRCKCl7dmFyIHQ9YXJndW1lbnRzWzBdO3JldHVybiBhcmd1bWVudHNbMF09dGhpcyx0LmFwcGx5KG51bGwsYXJndW1lbnRzKSx0aGlzfSxub2RlczpmdW5jdGlvbiBwQigpe3ZhciB0PW5ldyBBcnJheSh0aGlzLnNpemUoKSksZT0tMTtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe3RbKytlXT10aGlzfSkpLHR9LG5vZGU6ZnVuY3Rpb24gZkIoKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLGU9MCxuPXQubGVuZ3RoO2U8bjsrK2UpZm9yKHZhciBpPXRbZV0scj0wLG89aS5sZW5ndGg7cjxvOysrcil7dmFyIGE9aVtyXTtpZihhKXJldHVybiBhfXJldHVybiBudWxsfSxzaXplOmZ1bmN0aW9uIG1CKCl7dmFyIHQ9MDtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpeysrdH0pKSx0fSxlbXB0eTpmdW5jdGlvbiBnQigpe3JldHVybiF0aGlzLm5vZGUoKX0sZWFjaDpmdW5jdGlvbiBfQih0KXtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49MCxpPWUubGVuZ3RoO248aTsrK24pZm9yKHZhciByLG89ZVtuXSxhPTAscz1vLmxlbmd0aDthPHM7KythKShyPW9bYV0pJiZ0LmNhbGwocixyLl9fZGF0YV9fLGEsbyk7cmV0dXJuIHRoaXN9LGF0dHI6ZnVuY3Rpb24geUIodCxlKXt2YXIgbj1Weih0KTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe3ZhciBpPXRoaXMubm9kZSgpO3JldHVybiBuLmxvY2FsP2kuZ2V0QXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsKTppLmdldEF0dHJpYnV0ZShuKX1yZXR1cm4gdGhpcy5lYWNoKChudWxsPT1lP24ubG9jYWw/bkQ6ZUQ6ImZ1bmN0aW9uIj09dHlwZW9mIGU/bi5sb2NhbD9hRDpvRDpuLmxvY2FsP3JEOmlEKShuLGUpKX0sc3R5bGU6ZnVuY3Rpb24gdkIodCxlLG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKChudWxsPT1lP2xEOiJmdW5jdGlvbiI9PXR5cGVvZiBlP3VEOmNEKSh0LGUsbnVsbD09bj8iIjpuKSk6aEQodGhpcy5ub2RlKCksdCl9LHByb3BlcnR5OmZ1bmN0aW9uIGJCKHQsZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PWU/ZEQ6ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZkQ6cEQpKHQsZSkpOnRoaXMubm9kZSgpW3RdfSxjbGFzc2VkOmZ1bmN0aW9uIHhCKHQsZSl7dmFyIG49bUQodCsiIik7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtmb3IodmFyIGk9Z0QodGhpcy5ub2RlKCkpLHI9LTEsbz1uLmxlbmd0aDsrK3I8bzspaWYoIWkuY29udGFpbnMobltyXSkpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGU/d0Q6ZT9iRDp4RCkobixlKSl9LHRleHQ6ZnVuY3Rpb24gd0IodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKG51bGw9PXQ/U0Q6KCJmdW5jdGlvbiI9PXR5cGVvZiB0P0VEOk1EKSh0KSk6dGhpcy5ub2RlKCkudGV4dENvbnRlbnR9LGh0bWw6ZnVuY3Rpb24gU0IodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKG51bGw9PXQ/VEQ6KCJmdW5jdGlvbiI9PXR5cGVvZiB0P0FEOkNEKSh0KSk6dGhpcy5ub2RlKCkuaW5uZXJIVE1MfSxyYWlzZTpmdW5jdGlvbiBNQigpe3JldHVybiB0aGlzLmVhY2goa0QpfSxsb3dlcjpmdW5jdGlvbiBFQigpe3JldHVybiB0aGlzLmVhY2goTEQpfSxhcHBlbmQ6ZnVuY3Rpb24gVEIodCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpHeih0KTtyZXR1cm4gdGhpcy5zZWxlY3QoKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXBwZW5kQ2hpbGQoZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSkpfSxpbnNlcnQ6ZnVuY3Rpb24gQ0IodCxlKXt2YXIgbj0iZnVuY3Rpb24iPT10eXBlb2YgdD90Okd6KHQpLGk9bnVsbD09ZT9QRDoiZnVuY3Rpb24iPT10eXBlb2YgZT9lOnF6KGUpO3JldHVybiB0aGlzLnNlbGVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnNlcnRCZWZvcmUobi5hcHBseSh0aGlzLGFyZ3VtZW50cyksaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fG51bGwpfSkpfSxyZW1vdmU6ZnVuY3Rpb24gQUIoKXtyZXR1cm4gdGhpcy5lYWNoKE5EKX0sY2xvbmU6ZnVuY3Rpb24ga0IodCl7cmV0dXJuIHRoaXMuc2VsZWN0KHQ/UkQ6SUQpfSxkYXR1bTpmdW5jdGlvbiBMQih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLnByb3BlcnR5KCJfX2RhdGFfXyIsdCk6dGhpcy5ub2RlKCkuX19kYXRhX199LG9uOmZ1bmN0aW9uIFBCKHQsZSxuKXt2YXIgaSxyLG89SEQodCsiIiksYT1vLmxlbmd0aDtpZighKGFyZ3VtZW50cy5sZW5ndGg8Mikpe2ZvcihzPWU/VkQ6RkQsbnVsbD09biYmKG49ITEpLGk9MDtpPGE7KytpKXRoaXMuZWFjaChzKG9baV0sZSxuKSk7cmV0dXJuIHRoaXN9dmFyIHM9dGhpcy5ub2RlKCkuX19vbjtpZihzKWZvcih2YXIgbCxjPTAsdT1zLmxlbmd0aDtjPHU7KytjKWZvcihpPTAsbD1zW2NdO2k8YTsrK2kpaWYoKHI9b1tpXSkudHlwZT09PWwudHlwZSYmci5uYW1lPT09bC5uYW1lKXJldHVybiBsLnZhbHVlfSxkaXNwYXRjaDpmdW5jdGlvbiBOQih0LGUpe3JldHVybiB0aGlzLmVhY2goKCJmdW5jdGlvbiI9PXR5cGVvZiBlP0dEOmpEKSh0LGUpKX19O3ZhciBJQj0uNyxSQj0xL0lCLE9CPSJcXHMqKFsrLV0/XFxkKylcXHMqIix6Qj0iXFxzKihbKy1dP1xcZCpcXC4/XFxkKyg/OltlRV1bKy1dP1xcZCspPylcXHMqIixEQj0iXFxzKihbKy1dP1xcZCpcXC4/XFxkKyg/OltlRV1bKy1dP1xcZCspPyklXFxzKiIsQkI9L14jKFswLTlhLWZdezMsOH0pJC8sSEI9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW09CLE9CLE9CXSsiXFwpJCIpLEZCPW5ldyBSZWdFeHAoIl5yZ2JcXCgiK1tEQixEQixEQl0rIlxcKSQiKSxWQj1uZXcgUmVnRXhwKCJecmdiYVxcKCIrW09CLE9CLE9CLHpCXSsiXFwpJCIpLFVCPW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbREIsREIsREIsekJdKyJcXCkkIiksakI9bmV3IFJlZ0V4cCgiXmhzbFxcKCIrW3pCLERCLERCXSsiXFwpJCIpLEdCPW5ldyBSZWdFeHAoIl5oc2xhXFwoIitbekIsREIsREIsekJdKyJcXCkkIiksV0I9e2FsaWNlYmx1ZToxNTc5MjM4MyxhbnRpcXVld2hpdGU6MTY0NDQzNzUsYXF1YTo2NTUzNSxhcXVhbWFyaW5lOjgzODg1NjQsYXp1cmU6MTU3OTQxNzUsYmVpZ2U6MTYxMTkyNjAsYmlzcXVlOjE2NzcwMjQ0LGJsYWNrOjAsYmxhbmNoZWRhbG1vbmQ6MTY3NzIwNDUsYmx1ZToyNTUsYmx1ZXZpb2xldDo5MDU1MjAyLGJyb3duOjEwODI0MjM0LGJ1cmx5d29vZDoxNDU5NjIzMSxjYWRldGJsdWU6NjI2NjUyOCxjaGFydHJldXNlOjgzODgzNTIsY2hvY29sYXRlOjEzNzg5NDcwLGNvcmFsOjE2NzQ0MjcyLGNvcm5mbG93ZXJibHVlOjY1OTE5ODEsY29ybnNpbGs6MTY3NzUzODgsY3JpbXNvbjoxNDQyMzEwMCxjeWFuOjY1NTM1LGRhcmtibHVlOjEzOSxkYXJrY3lhbjozNTcyMyxkYXJrZ29sZGVucm9kOjEyMDkyOTM5LGRhcmtncmF5OjExMTE5MDE3LGRhcmtncmVlbjoyNTYwMCxkYXJrZ3JleToxMTExOTAxNyxkYXJra2hha2k6MTI0MzMyNTksZGFya21hZ2VudGE6OTEwOTY0MyxkYXJrb2xpdmVncmVlbjo1NTk3OTk5LGRhcmtvcmFuZ2U6MTY3NDc1MjAsZGFya29yY2hpZDoxMDA0MDAxMixkYXJrcmVkOjkxMDk1MDQsZGFya3NhbG1vbjoxNTMwODQxMCxkYXJrc2VhZ3JlZW46OTQxOTkxOSxkYXJrc2xhdGVibHVlOjQ3MzQzNDcsZGFya3NsYXRlZ3JheTozMTAwNDk1LGRhcmtzbGF0ZWdyZXk6MzEwMDQ5NSxkYXJrdHVycXVvaXNlOjUyOTQ1LGRhcmt2aW9sZXQ6OTY5OTUzOSxkZWVwcGluazoxNjcxNjk0NyxkZWVwc2t5Ymx1ZTo0OTE1MSxkaW1ncmF5OjY5MDgyNjUsZGltZ3JleTo2OTA4MjY1LGRvZGdlcmJsdWU6MjAwMzE5OSxmaXJlYnJpY2s6MTE2NzQxNDYsZmxvcmFsd2hpdGU6MTY3NzU5MjAsZm9yZXN0Z3JlZW46MjI2Mzg0MixmdWNoc2lhOjE2NzExOTM1LGdhaW5zYm9ybzoxNDQ3NDQ2MCxnaG9zdHdoaXRlOjE2MzE2NjcxLGdvbGQ6MTY3NjY3MjAsZ29sZGVucm9kOjE0MzI5MTIwLGdyYXk6ODQyMTUwNCxncmVlbjozMjc2OCxncmVlbnllbGxvdzoxMTQwMzA1NSxncmV5Ojg0MjE1MDQsaG9uZXlkZXc6MTU3OTQxNjAsaG90cGluazoxNjczODc0MCxpbmRpYW5yZWQ6MTM0NTg1MjQsaW5kaWdvOjQ5MTUzMzAsaXZvcnk6MTY3NzcyMDAsa2hha2k6MTU3ODc2NjAsbGF2ZW5kZXI6MTUxMzI0MTAsbGF2ZW5kZXJibHVzaDoxNjc3MzM2NSxsYXduZ3JlZW46ODE5MDk3NixsZW1vbmNoaWZmb246MTY3NzU4ODUsbGlnaHRibHVlOjExMzkzMjU0LGxpZ2h0Y29yYWw6MTU3NjE1MzYsbGlnaHRjeWFuOjE0NzQ1NTk5LGxpZ2h0Z29sZGVucm9keWVsbG93OjE2NDQ4MjEwLGxpZ2h0Z3JheToxMzg4MjMyMyxsaWdodGdyZWVuOjk0OTgyNTYsbGlnaHRncmV5OjEzODgyMzIzLGxpZ2h0cGluazoxNjc1ODQ2NSxsaWdodHNhbG1vbjoxNjc1Mjc2MixsaWdodHNlYWdyZWVuOjIxNDI4OTAsbGlnaHRza3libHVlOjg5MDAzNDYsbGlnaHRzbGF0ZWdyYXk6NzgzMzc1MyxsaWdodHNsYXRlZ3JleTo3ODMzNzUzLGxpZ2h0c3RlZWxibHVlOjExNTg0NzM0LGxpZ2h0eWVsbG93OjE2Nzc3MTg0LGxpbWU6NjUyODAsbGltZWdyZWVuOjMzMjkzMzAsbGluZW46MTY0NDU2NzAsbWFnZW50YToxNjcxMTkzNSxtYXJvb246ODM4ODYwOCxtZWRpdW1hcXVhbWFyaW5lOjY3MzczMjIsbWVkaXVtYmx1ZToyMDUsbWVkaXVtb3JjaGlkOjEyMjExNjY3LG1lZGl1bXB1cnBsZTo5NjYyNjgzLG1lZGl1bXNlYWdyZWVuOjM5NzgwOTcsbWVkaXVtc2xhdGVibHVlOjgwODc3OTAsbWVkaXVtc3ByaW5nZ3JlZW46NjQxNTQsbWVkaXVtdHVycXVvaXNlOjQ3NzIzMDAsbWVkaXVtdmlvbGV0cmVkOjEzMDQ3MTczLG1pZG5pZ2h0Ymx1ZToxNjQ0OTEyLG1pbnRjcmVhbToxNjEyMTg1MCxtaXN0eXJvc2U6MTY3NzAyNzMsbW9jY2FzaW46MTY3NzAyMjksbmF2YWpvd2hpdGU6MTY3Njg2ODUsbmF2eToxMjgsb2xkbGFjZToxNjY0MzU1OCxvbGl2ZTo4NDIxMzc2LG9saXZlZHJhYjo3MDQ4NzM5LG9yYW5nZToxNjc1MzkyMCxvcmFuZ2VyZWQ6MTY3MjkzNDQsb3JjaGlkOjE0MzE1NzM0LHBhbGVnb2xkZW5yb2Q6MTU2NTcxMzAscGFsZWdyZWVuOjEwMDI1ODgwLHBhbGV0dXJxdW9pc2U6MTE1Mjk5NjYscGFsZXZpb2xldHJlZDoxNDM4MTIwMyxwYXBheWF3aGlwOjE2NzczMDc3LHBlYWNocHVmZjoxNjc2NzY3MyxwZXJ1OjEzNDY4OTkxLHBpbms6MTY3NjEwMzUscGx1bToxNDUyNDYzNyxwb3dkZXJibHVlOjExNTkxOTEwLHB1cnBsZTo4Mzg4NzM2LHJlYmVjY2FwdXJwbGU6NjY5Nzg4MSxyZWQ6MTY3MTE2ODAscm9zeWJyb3duOjEyMzU3NTE5LHJveWFsYmx1ZTo0Mjg2OTQ1LHNhZGRsZWJyb3duOjkxMjcxODcsc2FsbW9uOjE2NDE2ODgyLHNhbmR5YnJvd246MTYwMzI4NjQsc2VhZ3JlZW46MzA1MDMyNyxzZWFzaGVsbDoxNjc3NDYzOCxzaWVubmE6MTA1MDY3OTcsc2lsdmVyOjEyNjMyMjU2LHNreWJsdWU6ODkwMDMzMSxzbGF0ZWJsdWU6Njk3MDA2MSxzbGF0ZWdyYXk6NzM3Mjk0NCxzbGF0ZWdyZXk6NzM3Mjk0NCxzbm93OjE2Nzc1OTMwLHNwcmluZ2dyZWVuOjY1NDA3LHN0ZWVsYmx1ZTo0NjIwOTgwLHRhbjoxMzgwODc4MCx0ZWFsOjMyODk2LHRoaXN0bGU6MTQyMDQ4ODgsdG9tYXRvOjE2NzM3MDk1LHR1cnF1b2lzZTo0MjUxODU2LHZpb2xldDoxNTYzMTA4Nix3aGVhdDoxNjExMzMzMSx3aGl0ZToxNjc3NzIxNSx3aGl0ZXNtb2tlOjE2MTE5Mjg1LHllbGxvdzoxNjc3Njk2MCx5ZWxsb3dncmVlbjoxMDE0NTA3NH07ZnVuY3Rpb24gcUIoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRIZXgoKX1mdW5jdGlvbiBZQigpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdFJnYigpfWZ1bmN0aW9uIFhCKHQpe3ZhciBlLG47cmV0dXJuIHQ9KHQrIiIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLChlPUJCLmV4ZWModCkpPyhuPWVbMV0ubGVuZ3RoLGU9cGFyc2VJbnQoZVsxXSwxNiksNj09PW4/JEIoZSk6Mz09PW4/bmV3IFFCKGU+PjgmMTV8ZT4+NCYyNDAsZT4+NCYxNXwyNDAmZSwoMTUmZSk8PDR8MTUmZSwxKTo4PT09bj9LQihlPj4yNCYyNTUsZT4+MTYmMjU1LGU+PjgmMjU1LCgyNTUmZSkvMjU1KTo0PT09bj9LQihlPj4xMiYxNXxlPj44JjI0MCxlPj44JjE1fGU+PjQmMjQwLGU+PjQmMTV8MjQwJmUsKCgxNSZlKTw8NHwxNSZlKS8yNTUpOm51bGwpOihlPUhCLmV4ZWModCkpP25ldyBRQihlWzFdLGVbMl0sZVszXSwxKTooZT1GQi5leGVjKHQpKT9uZXcgUUIoMjU1KmVbMV0vMTAwLDI1NSplWzJdLzEwMCwyNTUqZVszXS8xMDAsMSk6KGU9VkIuZXhlYyh0KSk/S0IoZVsxXSxlWzJdLGVbM10sZVs0XSk6KGU9VUIuZXhlYyh0KSk/S0IoMjU1KmVbMV0vMTAwLDI1NSplWzJdLzEwMCwyNTUqZVszXS8xMDAsZVs0XSk6KGU9akIuZXhlYyh0KSk/aUgoZVsxXSxlWzJdLzEwMCxlWzNdLzEwMCwxKTooZT1HQi5leGVjKHQpKT9pSChlWzFdLGVbMl0vMTAwLGVbM10vMTAwLGVbNF0pOldCLmhhc093blByb3BlcnR5KHQpPyRCKFdCW3RdKToidHJhbnNwYXJlbnQiPT09dD9uZXcgUUIoTmFOLE5hTixOYU4sMCk6bnVsbH1mdW5jdGlvbiAkQih0KXtyZXR1cm4gbmV3IFFCKHQ+PjE2JjI1NSx0Pj44JjI1NSwyNTUmdCwxKX1mdW5jdGlvbiBLQih0LGUsbixpKXtyZXR1cm4gaTw9MCYmKHQ9ZT1uPU5hTiksbmV3IFFCKHQsZSxuLGkpfWZ1bmN0aW9uIFpCKHQpe3JldHVybiB0IGluc3RhbmNlb2YgZUJ8fCh0PVhCKHQpKSx0P25ldyBRQigodD10LnJnYigpKS5yLHQuZyx0LmIsdC5vcGFjaXR5KTpuZXcgUUJ9ZnVuY3Rpb24gSkIodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP1pCKHQpOm5ldyBRQih0LGUsbixudWxsPT1pPzE6aSl9ZnVuY3Rpb24gUUIodCxlLG4saSl7dGhpcy5yPSt0LHRoaXMuZz0rZSx0aGlzLmI9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIHRIKCl7cmV0dXJuIiMiK25IKHRoaXMucikrbkgodGhpcy5nKStuSCh0aGlzLmIpfWZ1bmN0aW9uIGVIKCl7dmFyIHQ9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KHQ9aXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpKT8icmdiKCI6InJnYmEoIikrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLnIpfHwwKSkrIiwgIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMuZyl8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5iKXx8MCkpKygxPT09dD8iKSI6IiwgIit0KyIpIil9ZnVuY3Rpb24gbkgodCl7cmV0dXJuKCh0PU1hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodCl8fDApKSk8MTY/IjAiOiIiKSt0LnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBpSCh0LGUsbixpKXtyZXR1cm4gaTw9MD90PWU9bj1OYU46bjw9MHx8bj49MT90PWU9TmFOOmU8PTAmJih0PU5hTiksbmV3IG9IKHQsZSxuLGkpfWZ1bmN0aW9uIHJIKHQpe2lmKHQgaW5zdGFuY2VvZiBvSClyZXR1cm4gbmV3IG9IKHQuaCx0LnMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIGVCfHwodD1YQih0KSksIXQpcmV0dXJuIG5ldyBvSDtpZih0IGluc3RhbmNlb2Ygb0gpcmV0dXJuIHQ7dmFyIGU9KHQ9dC5yZ2IoKSkuci8yNTUsbj10LmcvMjU1LGk9dC5iLzI1NSxyPU1hdGgubWluKGUsbixpKSxvPU1hdGgubWF4KGUsbixpKSxhPU5hTixzPW8tcixsPShvK3IpLzI7cmV0dXJuIHM/KGE9ZT09PW8/KG4taSkvcys2KihuPGkpOm49PT1vPyhpLWUpL3MrMjooZS1uKS9zKzQscy89bDwuNT9vK3I6Mi1vLXIsYSo9NjApOnM9bD4wJiZsPDE/MDphLG5ldyBvSChhLHMsbCx0Lm9wYWNpdHkpfWZ1bmN0aW9uIG9IKHQsZSxuLGkpe3RoaXMuaD0rdCx0aGlzLnM9K2UsdGhpcy5sPStuLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBhSCh0LGUsbil7cmV0dXJuIDI1NSoodDw2MD9lKyhuLWUpKnQvNjA6dDwxODA/bjp0PDI0MD9lKyhuLWUpKigyNDAtdCkvNjA6ZSl9ZnVuY3Rpb24gc0godCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIGxIKHQpe3JldHVybiAxPT0odD0rdCk/Y0g6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gbi1lPyhmdW5jdGlvbiBpKHQsZSxuKXtyZXR1cm4gdD1NYXRoLnBvdyh0LG4pLGU9TWF0aC5wb3coZSxuKS10LG49MS9uLGZ1bmN0aW9uKGkpe3JldHVybiBNYXRoLnBvdyh0K2kqZSxuKX19KShlLG4sdCk6c0goaXNOYU4oZSk/bjplKX19ZnVuY3Rpb24gY0godCxlKXt2YXIgbj1lLXQ7cmV0dXJuIG4/KGZ1bmN0aW9uIGkodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQrbiplfX0pKHQsbik6c0goaXNOYU4odCk/ZTp0KX1RRChlQixYQix7Y29weTpmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgdGhpcy5jb25zdHJ1Y3Rvcix0aGlzLHQpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmRpc3BsYXlhYmxlKCl9LGhleDpxQixmb3JtYXRIZXg6cUIsZm9ybWF0SHNsOmZ1bmN0aW9uIHVIKCl7cmV0dXJuIHJIKHRoaXMpLmZvcm1hdEhzbCgpfSxmb3JtYXRSZ2I6WUIsdG9TdHJpbmc6WUJ9KSxRRChRQixKQix0QihlQix7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9SQjpNYXRoLnBvdyhSQix0KSxuZXcgUUIodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/SUI6TWF0aC5wb3coSUIsdCksbmV3IFFCKHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybi0uNTw9dGhpcy5yJiZ0aGlzLnI8MjU1LjUmJi0uNTw9dGhpcy5nJiZ0aGlzLmc8MjU1LjUmJi0uNTw9dGhpcy5iJiZ0aGlzLmI8MjU1LjUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6dEgsZm9ybWF0SGV4OnRILGZvcm1hdFJnYjplSCx0b1N0cmluZzplSH0pKSxRRChvSCwoZnVuY3Rpb24gaEgodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3JIKHQpOm5ldyBvSCh0LGUsbixudWxsPT1pPzE6aSl9KSx0QihlQix7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9SQjpNYXRoLnBvdyhSQix0KSxuZXcgb0godGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9JQjpNYXRoLnBvdyhJQix0KSxuZXcgb0godGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmglMzYwKzM2MCoodGhpcy5oPDApLGU9aXNOYU4odCl8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMsbj10aGlzLmwsaT1uKyhuPC41P246MS1uKSplLHI9MipuLWk7cmV0dXJuIG5ldyBRQihhSCh0Pj0yNDA/dC0yNDA6dCsxMjAscixpKSxhSCh0LHIsaSksYUgodDwxMjA/dCsyNDA6dC0xMjAscixpKSx0aGlzLm9wYWNpdHkpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sZm9ybWF0SHNsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KHQ9aXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpKT8iaHNsKCI6ImhzbGEoIikrKHRoaXMuaHx8MCkrIiwgIisxMDAqKHRoaXMuc3x8MCkrIiUsICIrMTAwKih0aGlzLmx8fDApKyIlIisoMT09PXQ/IikiOiIsICIrdCsiKSIpfX0pKTt2YXIgZEg9KGZ1bmN0aW9uIHQoZSl7dmFyIG49bEgoZSk7ZnVuY3Rpb24gaSh0LGUpe3ZhciBpPW4oKHQ9SkIodCkpLnIsKGU9SkIoZSkpLnIpLHI9bih0LmcsZS5nKSxvPW4odC5iLGUuYiksYT1jSCh0Lm9wYWNpdHksZS5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQucj1pKGUpLHQuZz1yKGUpLHQuYj1vKGUpLHQub3BhY2l0eT1hKGUpLHQrIiJ9fXJldHVybiBpLmdhbW1hPXQsaX0pKDEpO2Z1bmN0aW9uIHBIKHQsZSl7ZXx8KGU9W10pO3ZhciBuLGk9dD9NYXRoLm1pbihlLmxlbmd0aCx0Lmxlbmd0aCk6MCxyPWUuc2xpY2UoKTtyZXR1cm4gZnVuY3Rpb24obyl7Zm9yKG49MDtuPGk7KytuKXJbbl09dFtuXSooMS1vKStlW25dKm87cmV0dXJuIHJ9fWZ1bmN0aW9uIGZIKHQsZSl7dmFyIG4saT1lP2UubGVuZ3RoOjAscj10P01hdGgubWluKGksdC5sZW5ndGgpOjAsbz1uZXcgQXJyYXkociksYT1uZXcgQXJyYXkoaSk7Zm9yKG49MDtuPHI7KytuKW9bbl09eEgodFtuXSxlW25dKTtmb3IoO248aTsrK24pYVtuXT1lW25dO3JldHVybiBmdW5jdGlvbih0KXtmb3Iobj0wO248cjsrK24pYVtuXT1vW25dKHQpO3JldHVybiBhfX1mdW5jdGlvbiBtSCh0LGUpe3ZhciBuPW5ldyBEYXRlO3JldHVybiB0PSt0LGU9K2UsZnVuY3Rpb24oaSl7cmV0dXJuIG4uc2V0VGltZSh0KigxLWkpK2UqaSksbn19ZnVuY3Rpb24gZ0godCxlKXtyZXR1cm4gdD0rdCxlPStlLGZ1bmN0aW9uKG4pe3JldHVybiB0KigxLW4pK2Uqbn19ZnVuY3Rpb24gX0godCxlKXt2YXIgbixpPXt9LHI9e307Zm9yKG4gaW4gbnVsbCE9PXQmJiJvYmplY3QiPT10eXBlb2YgdHx8KHQ9e30pLG51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGV8fChlPXt9KSxlKW4gaW4gdD9pW25dPXhIKHRbbl0sZVtuXSk6cltuXT1lW25dO3JldHVybiBmdW5jdGlvbih0KXtmb3IobiBpbiBpKXJbbl09aVtuXSh0KTtyZXR1cm4gcn19dmFyIHlIPS9bLStdPyg/OlxkK1wuP1xkKnxcLj9cZCspKD86W2VFXVstK10/XGQrKT8vZyx2SD1uZXcgUmVnRXhwKHlILnNvdXJjZSwiZyIpO2Z1bmN0aW9uIGJIKHQsZSl7dmFyIG4saSxyLG89eUgubGFzdEluZGV4PXZILmxhc3RJbmRleD0wLGE9LTEscz1bXSxsPVtdO2Zvcih0Kz0iIixlKz0iIjsobj15SC5leGVjKHQpKSYmKGk9dkguZXhlYyhlKSk7KShyPWkuaW5kZXgpPm8mJihyPWUuc2xpY2UobyxyKSxzW2FdP3NbYV0rPXI6c1srK2FdPXIpLChuPW5bMF0pPT09KGk9aVswXSk/c1thXT9zW2FdKz1pOnNbKythXT1pOihzWysrYV09bnVsbCxsLnB1c2goe2k6YSx4OmdIKG4saSl9KSksbz12SC5sYXN0SW5kZXg7cmV0dXJuIG88ZS5sZW5ndGgmJihyPWUuc2xpY2Uobyksc1thXT9zW2FdKz1yOnNbKythXT1yKSxzLmxlbmd0aDwyP2xbMF0/KGZ1bmN0aW9uIGModCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0KGUpKyIifX0pKGxbMF0ueCk6KGZ1bmN0aW9uIHUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fSkoZSk6KGU9bC5sZW5ndGgsZnVuY3Rpb24odCl7Zm9yKHZhciBuLGk9MDtpPGU7KytpKXNbKG49bFtpXSkuaV09bi54KHQpO3JldHVybiBzLmpvaW4oIiIpfSl9ZnVuY3Rpb24geEgodCxlKXt2YXIgbixpPXR5cGVvZiBlO3JldHVybiBudWxsPT1lfHwiYm9vbGVhbiI9PT1pP3NIKGUpOigibnVtYmVyIj09PWk/Z0g6InN0cmluZyI9PT1pPyhuPVhCKGUpKT8oZT1uLGRIKTpiSDplIGluc3RhbmNlb2YgWEI/ZEg6ZSBpbnN0YW5jZW9mIERhdGU/bUg6KGZ1bmN0aW9uIHIodCl7cmV0dXJuIEFycmF5QnVmZmVyLmlzVmlldyh0KSYmISh0IGluc3RhbmNlb2YgRGF0YVZpZXcpfSkoZSk/cEg6QXJyYXkuaXNBcnJheShlKT9mSDoiZnVuY3Rpb24iIT10eXBlb2YgZS52YWx1ZU9mJiYiZnVuY3Rpb24iIT10eXBlb2YgZS50b1N0cmluZ3x8aXNOYU4oZSk/X0g6Z0gpKHQsZSl9dmFyIHdILFNILE1ILEVILFRIPTE4MC9NYXRoLlBJLENIPXt0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowLHJvdGF0ZTowLHNrZXdYOjAsc2NhbGVYOjEsc2NhbGVZOjF9O2Z1bmN0aW9uIEFIKHQsZSxuLGkscixvKXt2YXIgYSxzLGw7cmV0dXJuKGE9TWF0aC5zcXJ0KHQqdCtlKmUpKSYmKHQvPWEsZS89YSksKGw9dCpuK2UqaSkmJihuLT10KmwsaS09ZSpsKSwocz1NYXRoLnNxcnQobipuK2kqaSkpJiYobi89cyxpLz1zLGwvPXMpLHQqaTxlKm4mJih0PS10LGU9LWUsbD0tbCxhPS1hKSx7dHJhbnNsYXRlWDpyLHRyYW5zbGF0ZVk6byxyb3RhdGU6TWF0aC5hdGFuMihlLHQpKlRILHNrZXdYOk1hdGguYXRhbihsKSpUSCxzY2FsZVg6YSxzY2FsZVk6c319ZnVuY3Rpb24ga0godCxlLG4saSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gdC5sZW5ndGg/dC5wb3AoKSsiICI6IiJ9cmV0dXJuIGZ1bmN0aW9uKG8sYSl7dmFyIHM9W10sbD1bXTtyZXR1cm4gbz10KG8pLGE9dChhKSwoZnVuY3Rpb24gYyh0LGkscixvLGEscyl7aWYodCE9PXJ8fGkhPT1vKXt2YXIgbD1hLnB1c2goInRyYW5zbGF0ZSgiLG51bGwsZSxudWxsLG4pO3MucHVzaCh7aTpsLTQseDpnSCh0LHIpfSx7aTpsLTIseDpnSChpLG8pfSl9ZWxzZShyfHxvKSYmYS5wdXNoKCJ0cmFuc2xhdGUoIityK2UrbytuKX0pKG8udHJhbnNsYXRlWCxvLnRyYW5zbGF0ZVksYS50cmFuc2xhdGVYLGEudHJhbnNsYXRlWSxzLGwpLChmdW5jdGlvbiB1KHQsZSxuLG8pe3QhPT1lPyh0LWU+MTgwP2UrPTM2MDplLXQ+MTgwJiYodCs9MzYwKSxvLnB1c2goe2k6bi5wdXNoKHIobikrInJvdGF0ZSgiLG51bGwsaSktMix4OmdIKHQsZSl9KSk6ZSYmbi5wdXNoKHIobikrInJvdGF0ZSgiK2UraSl9KShvLnJvdGF0ZSxhLnJvdGF0ZSxzLGwpLChmdW5jdGlvbiBoKHQsZSxuLG8pe3QhPT1lP28ucHVzaCh7aTpuLnB1c2gocihuKSsic2tld1goIixudWxsLGkpLTIseDpnSCh0LGUpfSk6ZSYmbi5wdXNoKHIobikrInNrZXdYKCIrZStpKX0pKG8uc2tld1gsYS5za2V3WCxzLGwpLChmdW5jdGlvbiBkKHQsZSxuLGksbyxhKXtpZih0IT09bnx8ZSE9PWkpe3ZhciBzPW8ucHVzaChyKG8pKyJzY2FsZSgiLG51bGwsIiwiLG51bGwsIikiKTthLnB1c2goe2k6cy00LHg6Z0godCxuKX0se2k6cy0yLHg6Z0goZSxpKX0pfWVsc2UgMT09PW4mJjE9PT1pfHxvLnB1c2gocihvKSsic2NhbGUoIituKyIsIitpKyIpIil9KShvLnNjYWxlWCxvLnNjYWxlWSxhLnNjYWxlWCxhLnNjYWxlWSxzLGwpLG89YT1udWxsLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPS0xLGk9bC5sZW5ndGg7KytuPGk7KXNbKGU9bFtuXSkuaV09ZS54KHQpO3JldHVybiBzLmpvaW4oIiIpfX19dmFyIExILFBILE5IPWtIKChmdW5jdGlvbiBJSCh0KXtyZXR1cm4ibm9uZSI9PT10P0NIOih3SHx8KHdIPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpLFNIPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxNSD1kb2N1bWVudC5kZWZhdWx0Vmlldyksd0guc3R5bGUudHJhbnNmb3JtPXQsdD1NSC5nZXRDb21wdXRlZFN0eWxlKFNILmFwcGVuZENoaWxkKHdIKSxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ0cmFuc2Zvcm0iKSxTSC5yZW1vdmVDaGlsZCh3SCksQUgoKyh0PXQuc2xpY2UoNywtMSkuc3BsaXQoIiwiKSlbMF0sK3RbMV0sK3RbMl0sK3RbM10sK3RbNF0sK3RbNV0pKX0pLCJweCwgIiwicHgpIiwiZGVnKSIpLFJIPWtIKChmdW5jdGlvbiBPSCh0KXtyZXR1cm4gbnVsbD09dD9DSDooRUh8fChFSD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZyIpKSxFSC5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsdCksKHQ9RUgudHJhbnNmb3JtLmJhc2VWYWwuY29uc29saWRhdGUoKSk/QUgoKHQ9dC5tYXRyaXgpLmEsdC5iLHQuYyx0LmQsdC5lLHQuZik6Q0gpfSksIiwgIiwiKSIsIikiKSx6SD0wLERIPTAsQkg9MCxISD0wLEZIPTAsVkg9MCxVSD0ib2JqZWN0Ij09dHlwZW9mIHBlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS5ub3c/cGVyZm9ybWFuY2U6RGF0ZSxqSD0ib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZT93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpmdW5jdGlvbih0KXtzZXRUaW1lb3V0KHQsMTcpfTtmdW5jdGlvbiBHSCgpe3JldHVybiBGSHx8KGpIKFdIKSxGSD1VSC5ub3coKStWSCl9ZnVuY3Rpb24gV0goKXtGSD0wfWZ1bmN0aW9uIHFIKCl7dGhpcy5fY2FsbD10aGlzLl90aW1lPXRoaXMuX25leHQ9bnVsbH1mdW5jdGlvbiBZSCh0LGUsbil7dmFyIGk9bmV3IHFIO3JldHVybiBpLnJlc3RhcnQodCxlLG4pLGl9ZnVuY3Rpb24gWEgoKXtGSD0oSEg9VUgubm93KCkpK1ZILHpIPURIPTA7dHJ5eyEoZnVuY3Rpb24gdCgpe0dIKCksKyt6SDtmb3IodmFyIHQsZT1MSDtlOykodD1GSC1lLl90aW1lKT49MCYmZS5fY2FsbC5jYWxsKG51bGwsdCksZT1lLl9uZXh0Oy0tekh9KSgpfWZpbmFsbHl7ekg9MCwoZnVuY3Rpb24gZSgpe3ZhciB0LGUsbj1MSCxpPTEvMDtmb3IoO247KW4uX2NhbGw/KGk+bi5fdGltZSYmKGk9bi5fdGltZSksdD1uLG49bi5fbmV4dCk6KGU9bi5fbmV4dCxuLl9uZXh0PW51bGwsbj10P3QuX25leHQ9ZTpMSD1lKTtQSD10LEtIKGkpfSkoKSxGSD0wfX1mdW5jdGlvbiAkSCgpe3ZhciB0PVVILm5vdygpLGU9dC1ISDtlPjFlMyYmKFZILT1lLEhIPXQpfWZ1bmN0aW9uIEtIKHQpe3pIfHwoREgmJihESD1jbGVhclRpbWVvdXQoREgpKSx0LUZIPjI0Pyh0PDEvMCYmKERIPXNldFRpbWVvdXQoWEgsdC1VSC5ub3coKS1WSCkpLEJIJiYoQkg9Y2xlYXJJbnRlcnZhbChCSCkpKTooQkh8fChISD1VSC5ub3coKSxCSD1zZXRJbnRlcnZhbCgkSCwxZTMpKSx6SD0xLGpIKFhIKSkpfWZ1bmN0aW9uIFpIKHQsZSxuKXt2YXIgaT1uZXcgcUg7cmV0dXJuIGkucmVzdGFydCgoZnVuY3Rpb24obil7aS5zdG9wKCksdChuK2UpfSksZT1udWxsPT1lPzA6K2UsbiksaX1xSC5wcm90b3R5cGU9WUgucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpxSCxyZXN0YXJ0OmZ1bmN0aW9uKHQsZSxuKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJjYWxsYmFjayBpcyBub3QgYSBmdW5jdGlvbiIpO249KG51bGw9PW4/R0goKTorbikrKG51bGw9PWU/MDorZSksdGhpcy5fbmV4dHx8UEg9PT10aGlzfHwoUEg/UEguX25leHQ9dGhpczpMSD10aGlzLFBIPXRoaXMpLHRoaXMuX2NhbGw9dCx0aGlzLl90aW1lPW4sS0goKX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuX2NhbGwmJih0aGlzLl9jYWxsPW51bGwsdGhpcy5fdGltZT0xLzAsS0goKSl9fTt2YXIgSkg9UnooInN0YXJ0IiwiZW5kIiwiY2FuY2VsIiwiaW50ZXJydXB0IiksUUg9W107ZnVuY3Rpb24gdEYodCxlLG4saSxyLG8pe3ZhciBhPXQuX190cmFuc2l0aW9uO2lmKGEpe2lmKG4gaW4gYSlyZXR1cm59ZWxzZSB0Ll9fdHJhbnNpdGlvbj17fTshKGZ1bmN0aW9uIHModCxlLG4pe3ZhciBpLHI9dC5fX3RyYW5zaXRpb247ZnVuY3Rpb24gbyh0KXtuLnN0YXRlPTEsbi50aW1lci5yZXN0YXJ0KGEsbi5kZWxheSxuLnRpbWUpLG4uZGVsYXk8PXQmJmEodC1uLmRlbGF5KX1mdW5jdGlvbiBhKG8pe3ZhciBjLHUsaCxkO2lmKDEhPT1uLnN0YXRlKXJldHVybiBsKCk7Zm9yKGMgaW4gcilpZigoZD1yW2NdKS5uYW1lPT09bi5uYW1lKXtpZigzPT09ZC5zdGF0ZSlyZXR1cm4gWkgoYSk7ND09PWQuc3RhdGU/KGQuc3RhdGU9NixkLnRpbWVyLnN0b3AoKSxkLm9uLmNhbGwoImludGVycnVwdCIsdCx0Ll9fZGF0YV9fLGQuaW5kZXgsZC5ncm91cCksZGVsZXRlIHJbY10pOitjPGUmJihkLnN0YXRlPTYsZC50aW1lci5zdG9wKCksZC5vbi5jYWxsKCJjYW5jZWwiLHQsdC5fX2RhdGFfXyxkLmluZGV4LGQuZ3JvdXApLGRlbGV0ZSByW2NdKX1pZihaSCgoZnVuY3Rpb24oKXszPT09bi5zdGF0ZSYmKG4uc3RhdGU9NCxuLnRpbWVyLnJlc3RhcnQocyxuLmRlbGF5LG4udGltZSkscyhvKSl9KSksbi5zdGF0ZT0yLG4ub24uY2FsbCgic3RhcnQiLHQsdC5fX2RhdGFfXyxuLmluZGV4LG4uZ3JvdXApLDI9PT1uLnN0YXRlKXtmb3Iobi5zdGF0ZT0zLGk9bmV3IEFycmF5KGg9bi50d2Vlbi5sZW5ndGgpLGM9MCx1PS0xO2M8aDsrK2MpKGQ9bi50d2VlbltjXS52YWx1ZS5jYWxsKHQsdC5fX2RhdGFfXyxuLmluZGV4LG4uZ3JvdXApKSYmKGlbKyt1XT1kKTtpLmxlbmd0aD11KzF9fWZ1bmN0aW9uIHMoZSl7Zm9yKHZhciByPWU8bi5kdXJhdGlvbj9uLmVhc2UuY2FsbChudWxsLGUvbi5kdXJhdGlvbik6KG4udGltZXIucmVzdGFydChsKSxuLnN0YXRlPTUsMSksbz0tMSxhPWkubGVuZ3RoOysrbzxhOylpW29dLmNhbGwodCxyKTs1PT09bi5zdGF0ZSYmKG4ub24uY2FsbCgiZW5kIix0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSxsKCkpfWZ1bmN0aW9uIGwoKXtmb3IodmFyIGkgaW4gbi5zdGF0ZT02LG4udGltZXIuc3RvcCgpLGRlbGV0ZSByW2VdLHIpcmV0dXJuO2RlbGV0ZSB0Ll9fdHJhbnNpdGlvbn1yW2VdPW4sbi50aW1lcj1ZSChvLDAsbi50aW1lKX0pKHQsbix7bmFtZTplLGluZGV4OmksZ3JvdXA6cixvbjpKSCx0d2VlbjpRSCx0aW1lOm8udGltZSxkZWxheTpvLmRlbGF5LGR1cmF0aW9uOm8uZHVyYXRpb24sZWFzZTpvLmVhc2UsdGltZXI6bnVsbCxzdGF0ZTowfSl9ZnVuY3Rpb24gZUYodCxlKXt2YXIgbj1pRih0LGUpO2lmKG4uc3RhdGU+MCl0aHJvdyBuZXcgRXJyb3IoInRvbyBsYXRlOyBhbHJlYWR5IHNjaGVkdWxlZCIpO3JldHVybiBufWZ1bmN0aW9uIG5GKHQsZSl7dmFyIG49aUYodCxlKTtpZihuLnN0YXRlPjMpdGhyb3cgbmV3IEVycm9yKCJ0b28gbGF0ZTsgYWxyZWFkeSBydW5uaW5nIik7cmV0dXJuIG59ZnVuY3Rpb24gaUYodCxlKXt2YXIgbj10Ll9fdHJhbnNpdGlvbjtpZighbnx8IShuPW5bZV0pKXRocm93IG5ldyBFcnJvcigidHJhbnNpdGlvbiBub3QgZm91bmQiKTtyZXR1cm4gbn1mdW5jdGlvbiByRih0LGUpe3ZhciBuLGkscixvPXQuX190cmFuc2l0aW9uLGE9ITA7aWYobyl7Zm9yKHIgaW4gZT1udWxsPT1lP251bGw6ZSsiIixvKShuPW9bcl0pLm5hbWU9PT1lPyhpPW4uc3RhdGU+MiYmbi5zdGF0ZTw1LG4uc3RhdGU9NixuLnRpbWVyLnN0b3AoKSxuLm9uLmNhbGwoaT8iaW50ZXJydXB0IjoiY2FuY2VsIix0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSxkZWxldGUgb1tyXSk6YT0hMTthJiZkZWxldGUgdC5fX3RyYW5zaXRpb259fWZ1bmN0aW9uIG9GKHQsZSl7dmFyIG4saTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj1uRih0aGlzLHQpLG89ci50d2VlbjtpZihvIT09bilmb3IodmFyIGE9MCxzPShpPW49bykubGVuZ3RoO2E8czsrK2EpaWYoaVthXS5uYW1lPT09ZSl7KGk9aS5zbGljZSgpKS5zcGxpY2UoYSwxKTticmVha31yLnR3ZWVuPWl9fWZ1bmN0aW9uIGFGKHQsZSxuKXt2YXIgaSxyO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBuKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz1uRih0aGlzLHQpLGE9by50d2VlbjtpZihhIT09aSl7cj0oaT1hKS5zbGljZSgpO2Zvcih2YXIgcz17bmFtZTplLHZhbHVlOm59LGw9MCxjPXIubGVuZ3RoO2w8YzsrK2wpaWYocltsXS5uYW1lPT09ZSl7cltsXT1zO2JyZWFrfWw9PT1jJiZyLnB1c2gocyl9by50d2Vlbj1yfX1mdW5jdGlvbiBzRih0LGUsbil7dmFyIGk9dC5faWQ7cmV0dXJuIHQuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1uRih0aGlzLGkpOyh0LnZhbHVlfHwodC52YWx1ZT17fSkpW2VdPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpfSkpLGZ1bmN0aW9uKHQpe3JldHVybiBpRih0LGkpLnZhbHVlW2VdfX1mdW5jdGlvbiBsRih0LGUpe3ZhciBuO3JldHVybigibnVtYmVyIj09dHlwZW9mIGU/Z0g6ZSBpbnN0YW5jZW9mIFhCP2RIOihuPVhCKGUpKT8oZT1uLGRIKTpiSCkodCxlKX1mdW5jdGlvbiBjRih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19ZnVuY3Rpb24gdUYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpfX1mdW5jdGlvbiBoRih0LGUsbil7dmFyIGkscixvPW4rIiI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5nZXRBdHRyaWJ1dGUodCk7cmV0dXJuIGE9PT1vP251bGw6YT09PWk/cjpyPWUoaT1hLG4pfX1mdW5jdGlvbiBkRih0LGUsbil7dmFyIGkscixvPW4rIiI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5nZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpO3JldHVybiBhPT09bz9udWxsOmE9PT1pP3I6cj1lKGk9YSxuKX19ZnVuY3Rpb24gcEYodCxlLG4pe3ZhciBpLHIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSxzLGw9bih0aGlzKTtpZihudWxsIT1sKXJldHVybihhPXRoaXMuZ2V0QXR0cmlidXRlKHQpKT09PShzPWwrIiIpP251bGw6YT09PWkmJnM9PT1yP286KHI9cyxvPWUoaT1hLGwpKTt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19ZnVuY3Rpb24gZkYodCxlLG4pe3ZhciBpLHIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSxzLGw9bih0aGlzKTtpZihudWxsIT1sKXJldHVybihhPXRoaXMuZ2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKSk9PT0ocz1sKyIiKT9udWxsOmE9PT1pJiZzPT09cj9vOihyPXMsbz1lKGk9YSxsKSk7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpfX1mdW5jdGlvbiBtRih0LGUpe3JldHVybiBmdW5jdGlvbihuKXt0aGlzLnNldEF0dHJpYnV0ZSh0LGUuY2FsbCh0aGlzLG4pKX19ZnVuY3Rpb24gZ0YodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsZS5jYWxsKHRoaXMsbikpfX1mdW5jdGlvbiBfRih0LGUpe3ZhciBuLGk7ZnVuY3Rpb24gcigpe3ZhciByPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiByIT09aSYmKG49KGk9cikmJmdGKHQscikpLG59cmV0dXJuIHIuX3ZhbHVlPWUscn1mdW5jdGlvbiB5Rih0LGUpe3ZhciBuLGk7ZnVuY3Rpb24gcigpe3ZhciByPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiByIT09aSYmKG49KGk9cikmJm1GKHQscikpLG59cmV0dXJuIHIuX3ZhbHVlPWUscn1mdW5jdGlvbiB2Rih0LGUpe3JldHVybiBmdW5jdGlvbigpe2VGKHRoaXMsdCkuZGVsYXk9K2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBiRih0LGUpe3JldHVybiBlPStlLGZ1bmN0aW9uKCl7ZUYodGhpcyx0KS5kZWxheT1lfX1mdW5jdGlvbiB4Rih0LGUpe3JldHVybiBmdW5jdGlvbigpe25GKHRoaXMsdCkuZHVyYXRpb249K2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiB3Rih0LGUpe3JldHVybiBlPStlLGZ1bmN0aW9uKCl7bkYodGhpcyx0KS5kdXJhdGlvbj1lfX1mdW5jdGlvbiBTRih0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gZnVuY3Rpb24oKXtuRih0aGlzLHQpLmVhc2U9ZX19ZnVuY3Rpb24gTUYodCxlLG4pe3ZhciBpLHIsbz0oZnVuY3Rpb24gYSh0KXtyZXR1cm4odCsiIikudHJpbSgpLnNwbGl0KC9efFxzKy8pLmV2ZXJ5KChmdW5jdGlvbih0KXt2YXIgZT10LmluZGV4T2YoIi4iKTtyZXR1cm4gZT49MCYmKHQ9dC5zbGljZSgwLGUpKSwhdHx8InN0YXJ0Ij09PXR9KSl9KShlKT9lRjpuRjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1vKHRoaXMsdCkscz1hLm9uO3MhPT1pJiYocj0oaT1zKS5jb3B5KCkpLm9uKGUsbiksYS5vbj1yfX12YXIgRUY9WUQucHJvdG90eXBlLmNvbnN0cnVjdG9yO2Z1bmN0aW9uIFRGKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCl9fWZ1bmN0aW9uIENGKHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oaSl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LGUuY2FsbCh0aGlzLGkpLG4pfX1mdW5jdGlvbiBBRih0LGUsbil7dmFyIGkscjtmdW5jdGlvbiBvKCl7dmFyIG89ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG8hPT1yJiYoaT0ocj1vKSYmQ0YodCxvLG4pKSxpfXJldHVybiBvLl92YWx1ZT1lLG99ZnVuY3Rpb24ga0YodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3RoaXMudGV4dENvbnRlbnQ9dC5jYWxsKHRoaXMsZSl9fWZ1bmN0aW9uIExGKHQpe3ZhciBlLG47ZnVuY3Rpb24gaSgpe3ZhciBpPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBpIT09biYmKGU9KG49aSkmJmtGKGkpKSxlfXJldHVybiBpLl92YWx1ZT10LGl9dmFyIFBGPTA7ZnVuY3Rpb24gTkYodCxlLG4saSl7dGhpcy5fZ3JvdXBzPXQsdGhpcy5fcGFyZW50cz1lLHRoaXMuX25hbWU9bix0aGlzLl9pZD1pfWZ1bmN0aW9uIElGKCl7cmV0dXJuKytQRn12YXIgUkY9WUQucHJvdG90eXBlO05GLnByb3RvdHlwZT17Y29uc3RydWN0b3I6TkYsc2VsZWN0OmZ1bmN0aW9uIE9GKHQpe3ZhciBlPXRoaXMuX25hbWUsbj10aGlzLl9pZDsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9cXoodCkpO2Zvcih2YXIgaT10aGlzLl9ncm91cHMscj1pLmxlbmd0aCxvPW5ldyBBcnJheShyKSxhPTA7YTxyOysrYSlmb3IodmFyIHMsbCxjPWlbYV0sdT1jLmxlbmd0aCxoPW9bYV09bmV3IEFycmF5KHUpLGQ9MDtkPHU7KytkKShzPWNbZF0pJiYobD10LmNhbGwocyxzLl9fZGF0YV9fLGQsYykpJiYoIl9fZGF0YV9fImluIHMmJihsLl9fZGF0YV9fPXMuX19kYXRhX18pLGhbZF09bCx0RihoW2RdLGUsbixkLGgsaUYocyxuKSkpO3JldHVybiBuZXcgTkYobyx0aGlzLl9wYXJlbnRzLGUsbil9LHNlbGVjdEFsbDpmdW5jdGlvbiB6Rih0KXt2YXIgZT10aGlzLl9uYW1lLG49dGhpcy5faWQ7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PVh6KHQpKTtmb3IodmFyIGk9dGhpcy5fZ3JvdXBzLHI9aS5sZW5ndGgsbz1bXSxhPVtdLHM9MDtzPHI7KytzKWZvcih2YXIgbCxjPWlbc10sdT1jLmxlbmd0aCxoPTA7aDx1OysraClpZihsPWNbaF0pe2Zvcih2YXIgZCxwPXQuY2FsbChsLGwuX19kYXRhX18saCxjKSxmPWlGKGwsbiksbT0wLGc9cC5sZW5ndGg7bTxnOysrbSkoZD1wW21dKSYmdEYoZCxlLG4sbSxwLGYpO28ucHVzaChwKSxhLnB1c2gobCl9cmV0dXJuIG5ldyBORihvLGEsZSxuKX0sZmlsdGVyOmZ1bmN0aW9uIERGKHQpeyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD0keih0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWZvcih2YXIgbyxhPWVbcl0scz1hLmxlbmd0aCxsPWlbcl09W10sYz0wO2M8czsrK2MpKG89YVtjXSkmJnQuY2FsbChvLG8uX19kYXRhX18sYyxhKSYmbC5wdXNoKG8pO3JldHVybiBuZXcgTkYoaSx0aGlzLl9wYXJlbnRzLHRoaXMuX25hbWUsdGhpcy5faWQpfSxtZXJnZTpmdW5jdGlvbiBCRih0KXtpZih0Ll9pZCE9PXRoaXMuX2lkKXRocm93IG5ldyBFcnJvcjtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49dC5fZ3JvdXBzLGk9ZS5sZW5ndGgscj1NYXRoLm1pbihpLG4ubGVuZ3RoKSxvPW5ldyBBcnJheShpKSxhPTA7YTxyOysrYSlmb3IodmFyIHMsbD1lW2FdLGM9blthXSx1PWwubGVuZ3RoLGg9b1thXT1uZXcgQXJyYXkodSksZD0wO2Q8dTsrK2QpKHM9bFtkXXx8Y1tkXSkmJihoW2RdPXMpO2Zvcig7YTxpOysrYSlvW2FdPWVbYV07cmV0dXJuIG5ldyBORihvLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9LHNlbGVjdGlvbjpmdW5jdGlvbiBIRigpe3JldHVybiBuZXcgRUYodGhpcy5fZ3JvdXBzLHRoaXMuX3BhcmVudHMpfSx0cmFuc2l0aW9uOmZ1bmN0aW9uIEZGKCl7Zm9yKHZhciB0PXRoaXMuX25hbWUsZT10aGlzLl9pZCxuPUlGKCksaT10aGlzLl9ncm91cHMscj1pLmxlbmd0aCxvPTA7bzxyOysrbylmb3IodmFyIGEscz1pW29dLGw9cy5sZW5ndGgsYz0wO2M8bDsrK2MpaWYoYT1zW2NdKXt2YXIgdT1pRihhLGUpO3RGKGEsdCxuLGMscyx7dGltZTp1LnRpbWUrdS5kZWxheSt1LmR1cmF0aW9uLGRlbGF5OjAsZHVyYXRpb246dS5kdXJhdGlvbixlYXNlOnUuZWFzZX0pfXJldHVybiBuZXcgTkYoaSx0aGlzLl9wYXJlbnRzLHQsbil9LGNhbGw6UkYuY2FsbCxub2RlczpSRi5ub2Rlcyxub2RlOlJGLm5vZGUsc2l6ZTpSRi5zaXplLGVtcHR5OlJGLmVtcHR5LGVhY2g6UkYuZWFjaCxvbjpmdW5jdGlvbiBWRih0LGUpe3ZhciBuPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI/aUYodGhpcy5ub2RlKCksbikub24ub24odCk6dGhpcy5lYWNoKE1GKG4sdCxlKSl9LGF0dHI6ZnVuY3Rpb24gVUYodCxlKXt2YXIgbj1Weih0KSxpPSJ0cmFuc2Zvcm0iPT09bj9SSDpsRjtyZXR1cm4gdGhpcy5hdHRyVHdlZW4odCwiZnVuY3Rpb24iPT10eXBlb2YgZT8obi5sb2NhbD9mRjpwRikobixpLHNGKHRoaXMsImF0dHIuIit0LGUpKTpudWxsPT1lPyhuLmxvY2FsP3VGOmNGKShuKToobi5sb2NhbD9kRjpoRikobixpLGUpKX0sYXR0clR3ZWVuOmZ1bmN0aW9uIGpGKHQsZSl7dmFyIG49ImF0dHIuIit0O2lmKGFyZ3VtZW50cy5sZW5ndGg8MilyZXR1cm4obj10aGlzLnR3ZWVuKG4pKSYmbi5fdmFsdWU7aWYobnVsbD09ZSlyZXR1cm4gdGhpcy50d2VlbihuLG51bGwpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcjt2YXIgaT1Weih0KTtyZXR1cm4gdGhpcy50d2VlbihuLChpLmxvY2FsP19GOnlGKShpLGUpKX0sc3R5bGU6ZnVuY3Rpb24gR0YodCxlLG4pe3ZhciBpPSJ0cmFuc2Zvcm0iPT0odCs9IiIpP05IOmxGO3JldHVybiBudWxsPT1lP3RoaXMuc3R5bGVUd2Vlbih0LChmdW5jdGlvbiByKHQsZSl7dmFyIG4saSxyO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPWhEKHRoaXMsdCksYT0odGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KSxoRCh0aGlzLHQpKTtyZXR1cm4gbz09PWE/bnVsbDpvPT09biYmYT09PWk/cjpyPWUobj1vLGk9YSl9fSkodCxpKSkub24oImVuZC5zdHlsZS4iK3QsVEYodCkpOiJmdW5jdGlvbiI9PXR5cGVvZiBlP3RoaXMuc3R5bGVUd2Vlbih0LChmdW5jdGlvbiBhKHQsZSxuKXt2YXIgaSxyLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9aEQodGhpcyx0KSxzPW4odGhpcyksbD1zKyIiO3JldHVybiBudWxsPT1zJiYodGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KSxsPXM9aEQodGhpcyx0KSksYT09PWw/bnVsbDphPT09aSYmbD09PXI/bzoocj1sLG89ZShpPWEscykpfX0pKHQsaSxzRih0aGlzLCJzdHlsZS4iK3QsZSkpKS5lYWNoKChmdW5jdGlvbiBvKHQsZSl7dmFyIG4saSxyLG8sYT0ic3R5bGUuIitlLHM9ImVuZC4iK2E7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGw9bkYodGhpcyx0KSxjPWwub24sdT1udWxsPT1sLnZhbHVlW2FdP298fChvPVRGKGUpKTp2b2lkIDA7Yz09PW4mJnI9PT11fHwoaT0obj1jKS5jb3B5KCkpLm9uKHMscj11KSxsLm9uPWl9fSkodGhpcy5faWQsdCkpOnRoaXMuc3R5bGVUd2Vlbih0LChmdW5jdGlvbiBzKHQsZSxuKXt2YXIgaSxyLG89bisiIjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1oRCh0aGlzLHQpO3JldHVybiBhPT09bz9udWxsOmE9PT1pP3I6cj1lKGk9YSxuKX19KSh0LGksZSksbikub24oImVuZC5zdHlsZS4iK3QsbnVsbCl9LHN0eWxlVHdlZW46ZnVuY3Rpb24gV0YodCxlLG4pe3ZhciBpPSJzdHlsZS4iKyh0Kz0iIik7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybihpPXRoaXMudHdlZW4oaSkpJiZpLl92YWx1ZTtpZihudWxsPT1lKXJldHVybiB0aGlzLnR3ZWVuKGksbnVsbCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yO3JldHVybiB0aGlzLnR3ZWVuKGksQUYodCxlLG51bGw9PW4/IiI6bikpfSx0ZXh0OmZ1bmN0aW9uIHFGKHQpe3JldHVybiB0aGlzLnR3ZWVuKCJ0ZXh0IiwiZnVuY3Rpb24iPT10eXBlb2YgdD8oZnVuY3Rpb24gZSh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10KHRoaXMpO3RoaXMudGV4dENvbnRlbnQ9bnVsbD09ZT8iIjplfX0pKHNGKHRoaXMsInRleHQiLHQpKTooZnVuY3Rpb24gbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PXR9fSkobnVsbD09dD8iIjp0KyIiKSl9LHRleHRUd2VlbjpmdW5jdGlvbiBZRih0KXt2YXIgZT0idGV4dCI7aWYoYXJndW1lbnRzLmxlbmd0aDwxKXJldHVybihlPXRoaXMudHdlZW4oZSkpJiZlLl92YWx1ZTtpZihudWxsPT10KXJldHVybiB0aGlzLnR3ZWVuKGUsbnVsbCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yO3JldHVybiB0aGlzLnR3ZWVuKGUsTEYodCkpfSxyZW1vdmU6ZnVuY3Rpb24gWEYoKXtyZXR1cm4gdGhpcy5vbigiZW5kLnJlbW92ZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wYXJlbnROb2RlO2Zvcih2YXIgbiBpbiB0aGlzLl9fdHJhbnNpdGlvbilpZigrbiE9PWUpcmV0dXJuO3QmJnQucmVtb3ZlQ2hpbGQodGhpcyl9fSkodGhpcy5faWQpKX0sdHdlZW46ZnVuY3Rpb24gJEYodCxlKXt2YXIgbj10aGlzLl9pZDtpZih0Kz0iIixhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgaSxyPWlGKHRoaXMubm9kZSgpLG4pLnR3ZWVuLG89MCxhPXIubGVuZ3RoO288YTsrK28paWYoKGk9cltvXSkubmFtZT09PXQpcmV0dXJuIGkudmFsdWU7cmV0dXJuIG51bGx9cmV0dXJuIHRoaXMuZWFjaCgobnVsbD09ZT9vRjphRikobix0LGUpKX0sZGVsYXk6ZnVuY3Rpb24gS0YodCl7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgdD92RjpiRikoZSx0KSk6aUYodGhpcy5ub2RlKCksZSkuZGVsYXl9LGR1cmF0aW9uOmZ1bmN0aW9uIFpGKHQpe3ZhciBlPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIHQ/eEY6d0YpKGUsdCkpOmlGKHRoaXMubm9kZSgpLGUpLmR1cmF0aW9ufSxlYXNlOmZ1bmN0aW9uIEpGKHQpe3ZhciBlPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChTRihlLHQpKTppRih0aGlzLm5vZGUoKSxlKS5lYXNlfSxlbmQ6ZnVuY3Rpb24gUUYoKXt2YXIgdCxlLG49dGhpcyxpPW4uX2lkLHI9bi5zaXplKCk7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihvLGEpe3ZhciBzPXt2YWx1ZTphfSxsPXt2YWx1ZTpmdW5jdGlvbigpezA9PS0tciYmbygpfX07bi5lYWNoKChmdW5jdGlvbigpe3ZhciBuPW5GKHRoaXMsaSkscj1uLm9uO3IhPT10JiYoKGU9KHQ9cikuY29weSgpKS5fLmNhbmNlbC5wdXNoKHMpLGUuXy5pbnRlcnJ1cHQucHVzaChzKSxlLl8uZW5kLnB1c2gobCkpLG4ub249ZX0pKX0pKX19O3ZhciB0Vj17dGltZTpudWxsLGRlbGF5OjAsZHVyYXRpb246MjUwLGVhc2U6cWZ9O2Z1bmN0aW9uIGVWKHQsZSl7Zm9yKHZhciBuOyEobj10Ll9fdHJhbnNpdGlvbil8fCEobj1uW2VdKTspaWYoISh0PXQucGFyZW50Tm9kZSkpcmV0dXJuIHRWLnRpbWU9R0goKSx0VjtyZXR1cm4gbn1mdW5jdGlvbiBuVih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gaVYodCxlLG4pe3RoaXMudGFyZ2V0PXQsdGhpcy50eXBlPWUsdGhpcy5zZWxlY3Rpb249bn1mdW5jdGlvbiByVigpe3pELnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIG9WKCl7ekQucHJldmVudERlZmF1bHQoKSx6RC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1ZRC5wcm90b3R5cGUuaW50ZXJydXB0PWZ1bmN0aW9uIGFWKHQpe3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7ckYodGhpcyx0KX0pKX0sWUQucHJvdG90eXBlLnRyYW5zaXRpb249ZnVuY3Rpb24gc1YodCl7dmFyIGUsbjt0IGluc3RhbmNlb2YgTkY/KGU9dC5faWQsdD10Ll9uYW1lKTooZT1JRigpLChuPXRWKS50aW1lPUdIKCksdD1udWxsPT10P251bGw6dCsiIik7Zm9yKHZhciBpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89MDtvPHI7KytvKWZvcih2YXIgYSxzPWlbb10sbD1zLmxlbmd0aCxjPTA7YzxsOysrYykoYT1zW2NdKSYmdEYoYSx0LGUsYyxzLG58fGVWKGEsZSkpO3JldHVybiBuZXcgTkYoaSx0aGlzLl9wYXJlbnRzLHQsZSl9O3ZhciBsVj17bmFtZToiZHJhZyJ9LGNWPXtuYW1lOiJzcGFjZSJ9LHVWPXtuYW1lOiJoYW5kbGUifSxoVj17bmFtZToiY2VudGVyIn0sZFY9e25hbWU6IngiLGhhbmRsZXM6WyJlIiwidyJdLm1hcChiViksaW5wdXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCYmW1t0WzBdLGVbMF1bMV1dLFt0WzFdLGVbMV1bMV1dXX0sb3V0cHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZbdFswXVswXSx0WzFdWzBdXX19LHBWPXtuYW1lOiJ5IixoYW5kbGVzOlsibiIsInMiXS5tYXAoYlYpLGlucHV0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQmJltbZVswXVswXSx0WzBdXSxbZVsxXVswXSx0WzFdXV19LG91dHB1dDpmdW5jdGlvbih0KXtyZXR1cm4gdCYmW3RbMF1bMV0sdFsxXVsxXV19fSxmVj17bmFtZToieHkiLGhhbmRsZXM6WyJuIiwiZSIsInMiLCJ3IiwibnciLCJuZSIsInNlIiwic3ciXS5tYXAoYlYpLGlucHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0fSxvdXRwdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHR9fSxtVj17b3ZlcmxheToiY3Jvc3NoYWlyIixzZWxlY3Rpb246Im1vdmUiLG46Im5zLXJlc2l6ZSIsZToiZXctcmVzaXplIixzOiJucy1yZXNpemUiLHc6ImV3LXJlc2l6ZSIsbnc6Im53c2UtcmVzaXplIixuZToibmVzdy1yZXNpemUiLHNlOiJud3NlLXJlc2l6ZSIsc3c6Im5lc3ctcmVzaXplIn0sZ1Y9e2U6InciLHc6ImUiLG53OiJuZSIsbmU6Im53IixzZToic3ciLHN3OiJzZSJ9LF9WPXtuOiJzIixzOiJuIixudzoic3ciLG5lOiJzZSIsc2U6Im5lIixzdzoibncifSx5Vj17b3ZlcmxheToxLHNlbGVjdGlvbjoxLG46bnVsbCxlOjEsczpudWxsLHc6LTEsbnc6LTEsbmU6MSxzZToxLHN3Oi0xfSx2Vj17b3ZlcmxheToxLHNlbGVjdGlvbjoxLG46LTEsZTpudWxsLHM6MSx3Om51bGwsbnc6LTEsbmU6LTEsc2U6MSxzdzoxfTtmdW5jdGlvbiBiVih0KXtyZXR1cm57dHlwZTp0fX1mdW5jdGlvbiB4Vigpe3JldHVybiF6RC5idXR0b259ZnVuY3Rpb24gd1YoKXt2YXIgdD10aGlzLm93bmVyU1ZHRWxlbWVudHx8dGhpcztyZXR1cm5bWzAsMF0sW3Qud2lkdGguYmFzZVZhbC52YWx1ZSx0LmhlaWdodC5iYXNlVmFsLnZhbHVlXV19ZnVuY3Rpb24gU1YodCl7Zm9yKDshdC5fX2JydXNoOylpZighKHQ9dC5wYXJlbnROb2RlKSlyZXR1cm47cmV0dXJuIHQuX19icnVzaH1mdW5jdGlvbiBNVih0KXtyZXR1cm4gdFswXVswXT09PXRbMV1bMF18fHRbMF1bMV09PT10WzFdWzFdfWZ1bmN0aW9uIEVWKHQpe3ZhciBlLG49d1YsaT14VixyPVJ6KGEsInN0YXJ0IiwiYnJ1c2giLCJlbmQiKSxvPTY7ZnVuY3Rpb24gYShlKXt2YXIgbj1lLnByb3BlcnR5KCJfX2JydXNoIixoKS5zZWxlY3RBbGwoIi5vdmVybGF5IikuZGF0YShbYlYoIm92ZXJsYXkiKV0pO24uZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJjbGFzcyIsIm92ZXJsYXkiKS5hdHRyKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpLmF0dHIoImN1cnNvciIsbVYub3ZlcmxheSkubWVyZ2UobikuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1TVih0aGlzKS5leHRlbnQ7WEQodGhpcykuYXR0cigieCIsdFswXVswXSkuYXR0cigieSIsdFswXVsxXSkuYXR0cigid2lkdGgiLHRbMV1bMF0tdFswXVswXSkuYXR0cigiaGVpZ2h0Iix0WzFdWzFdLXRbMF1bMV0pfSkpLGUuc2VsZWN0QWxsKCIuc2VsZWN0aW9uIikuZGF0YShbYlYoInNlbGVjdGlvbiIpXSkuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJjbGFzcyIsInNlbGVjdGlvbiIpLmF0dHIoImN1cnNvciIsbVYuc2VsZWN0aW9uKS5hdHRyKCJmaWxsIiwiIzc3NyIpLmF0dHIoImZpbGwtb3BhY2l0eSIsLjMpLmF0dHIoInN0cm9rZSIsIiNmZmYiKS5hdHRyKCJzaGFwZS1yZW5kZXJpbmciLCJjcmlzcEVkZ2VzIik7dmFyIGk9ZS5zZWxlY3RBbGwoIi5oYW5kbGUiKS5kYXRhKHQuaGFuZGxlcywoZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZX0pKTtpLmV4aXQoKS5yZW1vdmUoKSxpLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cigiY2xhc3MiLChmdW5jdGlvbih0KXtyZXR1cm4iaGFuZGxlIGhhbmRsZS0tIit0LnR5cGV9KSkuYXR0cigiY3Vyc29yIiwoZnVuY3Rpb24odCl7cmV0dXJuIG1WW3QudHlwZV19KSksZS5lYWNoKHMpLmF0dHIoImZpbGwiLCJub25lIikuYXR0cigicG9pbnRlci1ldmVudHMiLCJhbGwiKS5zdHlsZSgiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yIiwicmdiYSgwLDAsMCwwKSIpLm9uKCJtb3VzZWRvd24uYnJ1c2ggdG91Y2hzdGFydC5icnVzaCIsdSl9ZnVuY3Rpb24gcygpe3ZhciB0PVhEKHRoaXMpLGU9U1YodGhpcykuc2VsZWN0aW9uO2U/KHQuc2VsZWN0QWxsKCIuc2VsZWN0aW9uIikuc3R5bGUoImRpc3BsYXkiLG51bGwpLmF0dHIoIngiLGVbMF1bMF0pLmF0dHIoInkiLGVbMF1bMV0pLmF0dHIoIndpZHRoIixlWzFdWzBdLWVbMF1bMF0pLmF0dHIoImhlaWdodCIsZVsxXVsxXS1lWzBdWzFdKSx0LnNlbGVjdEFsbCgiLmhhbmRsZSIpLnN0eWxlKCJkaXNwbGF5IixudWxsKS5hdHRyKCJ4IiwoZnVuY3Rpb24odCl7cmV0dXJuImUiPT09dC50eXBlW3QudHlwZS5sZW5ndGgtMV0/ZVsxXVswXS1vLzI6ZVswXVswXS1vLzJ9KSkuYXR0cigieSIsKGZ1bmN0aW9uKHQpe3JldHVybiJzIj09PXQudHlwZVswXT9lWzFdWzFdLW8vMjplWzBdWzFdLW8vMn0pKS5hdHRyKCJ3aWR0aCIsKGZ1bmN0aW9uKHQpe3JldHVybiJuIj09PXQudHlwZXx8InMiPT09dC50eXBlP2VbMV1bMF0tZVswXVswXStvOm99KSkuYXR0cigiaGVpZ2h0IiwoZnVuY3Rpb24odCl7cmV0dXJuImUiPT09dC50eXBlfHwidyI9PT10LnR5cGU/ZVsxXVsxXS1lWzBdWzFdK286b30pKSk6dC5zZWxlY3RBbGwoIi5zZWxlY3Rpb24sLmhhbmRsZSIpLnN0eWxlKCJkaXNwbGF5Iiwibm9uZSIpLmF0dHIoIngiLG51bGwpLmF0dHIoInkiLG51bGwpLmF0dHIoIndpZHRoIixudWxsKS5hdHRyKCJoZWlnaHQiLG51bGwpfWZ1bmN0aW9uIGwodCxlKXtyZXR1cm4gdC5fX2JydXNoLmVtaXR0ZXJ8fG5ldyBjKHQsZSl9ZnVuY3Rpb24gYyh0LGUpe3RoaXMudGhhdD10LHRoaXMuYXJncz1lLHRoaXMuc3RhdGU9dC5fX2JydXNoLHRoaXMuYWN0aXZlPTB9ZnVuY3Rpb24gdSgpe2lmKHpELnRvdWNoZXMpe2lmKHpELmNoYW5nZWRUb3VjaGVzLmxlbmd0aDx6RC50b3VjaGVzLmxlbmd0aClyZXR1cm4gb1YoKX1lbHNlIGlmKGUpcmV0dXJuO2lmKGkuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgbixyLG8sYSxjLHUsaCxkLHAsZixtLGcsXyx5PXRoaXMsdj16RC50YXJnZXQuX19kYXRhX18udHlwZSxiPSJzZWxlY3Rpb24iPT09KHpELm1ldGFLZXk/dj0ib3ZlcmxheSI6dik/bFY6ekQuYWx0S2V5P2hWOnVWLHg9dD09PXBWP251bGw6eVZbdl0sdz10PT09ZFY/bnVsbDp2Vlt2XSxTPVNWKHkpLE09Uy5leHRlbnQsRT1TLnNlbGVjdGlvbixUPU1bMF1bMF0sQz1NWzBdWzFdLEE9TVsxXVswXSxrPU1bMV1bMV0sTD14JiZ3JiZ6RC5zaGlmdEtleSxQPSREKHkpLE49UCxJPWwoeSxhcmd1bWVudHMpLmJlZm9yZXN0YXJ0KCk7Im92ZXJsYXkiPT09dj9TLnNlbGVjdGlvbj1FPVtbbj10PT09cFY/VDpQWzBdLG89dD09PWRWP0M6UFsxXV0sW2M9dD09PXBWP0E6bixoPXQ9PT1kVj9rOm9dXToobj1FWzBdWzBdLG89RVswXVsxXSxjPUVbMV1bMF0saD1FWzFdWzFdKSxyPW4sYT1vLHU9YyxkPWg7dmFyIFI9WEQoeSkuYXR0cigicG9pbnRlci1ldmVudHMiLCJub25lIiksTz1SLnNlbGVjdEFsbCgiLm92ZXJsYXkiKS5hdHRyKCJjdXJzb3IiLG1WW3ZdKTtpZih6RC50b3VjaGVzKVIub24oInRvdWNobW92ZS5icnVzaCIsRCwhMCkub24oInRvdWNoZW5kLmJydXNoIHRvdWNoY2FuY2VsLmJydXNoIixILCEwKTtlbHNle3ZhciB6PVhEKHpELnZpZXcpLm9uKCJrZXlkb3duLmJydXNoIixGLCEwKS5vbigia2V5dXAuYnJ1c2giLFYsITApLm9uKCJtb3VzZW1vdmUuYnJ1c2giLEQsITApLm9uKCJtb3VzZXVwLmJydXNoIixILCEwKTtaRCh6RC52aWV3KX1yVigpLHJGKHkpLHMuY2FsbCh5KSxJLnN0YXJ0KCl9ZnVuY3Rpb24gRCgpe3ZhciB0PSREKHkpOyFMfHxnfHxffHwoTWF0aC5hYnModFswXS1OWzBdKT5NYXRoLmFicyh0WzFdLU5bMV0pP189ITA6Zz0hMCksTj10LG09ITAsb1YoKSxCKCl9ZnVuY3Rpb24gQigpe3ZhciB0O3N3aXRjaChwPU5bMF0tUFswXSxmPU5bMV0tUFsxXSxiKXtjYXNlIGNWOmNhc2UgbFY6eCYmKHA9TWF0aC5tYXgoVC1uLE1hdGgubWluKEEtYyxwKSkscj1uK3AsdT1jK3ApLHcmJihmPU1hdGgubWF4KEMtbyxNYXRoLm1pbihrLWgsZikpLGE9bytmLGQ9aCtmKTticmVhaztjYXNlIHVWOng8MD8ocD1NYXRoLm1heChULW4sTWF0aC5taW4oQS1uLHApKSxyPW4rcCx1PWMpOng+MCYmKHA9TWF0aC5tYXgoVC1jLE1hdGgubWluKEEtYyxwKSkscj1uLHU9YytwKSx3PDA/KGY9TWF0aC5tYXgoQy1vLE1hdGgubWluKGstbyxmKSksYT1vK2YsZD1oKTp3PjAmJihmPU1hdGgubWF4KEMtaCxNYXRoLm1pbihrLWgsZikpLGE9byxkPWgrZik7YnJlYWs7Y2FzZSBoVjp4JiYocj1NYXRoLm1heChULE1hdGgubWluKEEsbi1wKngpKSx1PU1hdGgubWF4KFQsTWF0aC5taW4oQSxjK3AqeCkpKSx3JiYoYT1NYXRoLm1heChDLE1hdGgubWluKGssby1mKncpKSxkPU1hdGgubWF4KEMsTWF0aC5taW4oayxoK2YqdykpKX11PHImJih4Kj0tMSx0PW4sbj1jLGM9dCx0PXIscj11LHU9dCx2IGluIGdWJiZPLmF0dHIoImN1cnNvciIsbVZbdj1nVlt2XV0pKSxkPGEmJih3Kj0tMSx0PW8sbz1oLGg9dCx0PWEsYT1kLGQ9dCx2IGluIF9WJiZPLmF0dHIoImN1cnNvciIsbVZbdj1fVlt2XV0pKSxTLnNlbGVjdGlvbiYmKEU9Uy5zZWxlY3Rpb24pLGcmJihyPUVbMF1bMF0sdT1FWzFdWzBdKSxfJiYoYT1FWzBdWzFdLGQ9RVsxXVsxXSksRVswXVswXT09PXImJkVbMF1bMV09PT1hJiZFWzFdWzBdPT09dSYmRVsxXVsxXT09PWR8fChTLnNlbGVjdGlvbj1bW3IsYV0sW3UsZF1dLHMuY2FsbCh5KSxJLmJydXNoKCkpfWZ1bmN0aW9uIEgoKXtpZihyVigpLHpELnRvdWNoZXMpe2lmKHpELnRvdWNoZXMubGVuZ3RoKXJldHVybjtlJiZjbGVhclRpbWVvdXQoZSksZT1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2U9bnVsbH0pLDUwMCksUi5vbigidG91Y2htb3ZlLmJydXNoIHRvdWNoZW5kLmJydXNoIHRvdWNoY2FuY2VsLmJydXNoIixudWxsKX1lbHNlIEpEKHpELnZpZXcsbSksei5vbigia2V5ZG93bi5icnVzaCBrZXl1cC5icnVzaCBtb3VzZW1vdmUuYnJ1c2ggbW91c2V1cC5icnVzaCIsbnVsbCk7Ui5hdHRyKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpLE8uYXR0cigiY3Vyc29yIixtVi5vdmVybGF5KSxTLnNlbGVjdGlvbiYmKEU9Uy5zZWxlY3Rpb24pLE1WKEUpJiYoUy5zZWxlY3Rpb249bnVsbCxzLmNhbGwoeSkpLEkuZW5kKCl9ZnVuY3Rpb24gRigpe3N3aXRjaCh6RC5rZXlDb2RlKXtjYXNlIDE2Okw9eCYmdzticmVhaztjYXNlIDE4OmI9PT11ViYmKHgmJihjPXUtcCp4LG49citwKngpLHcmJihoPWQtZip3LG89YStmKncpLGI9aFYsQigpKTticmVhaztjYXNlIDMyOmIhPT11ViYmYiE9PWhWfHwoeDwwP2M9dS1wOng+MCYmKG49ci1wKSx3PDA/aD1kLWY6dz4wJiYobz1hLWYpLGI9Y1YsTy5hdHRyKCJjdXJzb3IiLG1WLnNlbGVjdGlvbiksQigpKTticmVhaztkZWZhdWx0OnJldHVybn1vVigpfWZ1bmN0aW9uIFYoKXtzd2l0Y2goekQua2V5Q29kZSl7Y2FzZSAxNjpMJiYoZz1fPUw9ITEsQigpKTticmVhaztjYXNlIDE4OmI9PT1oViYmKHg8MD9jPXU6eD4wJiYobj1yKSx3PDA/aD1kOnc+MCYmKG89YSksYj11VixCKCkpO2JyZWFrO2Nhc2UgMzI6Yj09PWNWJiYoekQuYWx0S2V5Pyh4JiYoYz11LXAqeCxuPXIrcCp4KSx3JiYoaD1kLWYqdyxvPWErZip3KSxiPWhWKTooeDwwP2M9dTp4PjAmJihuPXIpLHc8MD9oPWQ6dz4wJiYobz1hKSxiPXVWKSxPLmF0dHIoImN1cnNvciIsbVZbdl0pLEIoKSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm59b1YoKX19ZnVuY3Rpb24gaCgpe3ZhciBlPXRoaXMuX19icnVzaHx8e3NlbGVjdGlvbjpudWxsfTtyZXR1cm4gZS5leHRlbnQ9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyksZS5kaW09dCxlfXJldHVybiBhLm1vdmU9ZnVuY3Rpb24oZSxuKXtlLnNlbGVjdGlvbj9lLm9uKCJzdGFydC5icnVzaCIsKGZ1bmN0aW9uKCl7bCh0aGlzLGFyZ3VtZW50cykuYmVmb3Jlc3RhcnQoKS5zdGFydCgpfSkpLm9uKCJpbnRlcnJ1cHQuYnJ1c2ggZW5kLmJydXNoIiwoZnVuY3Rpb24oKXtsKHRoaXMsYXJndW1lbnRzKS5lbmQoKX0pKS50d2VlbigiYnJ1c2giLChmdW5jdGlvbigpe3ZhciBlPXRoaXMsaT1lLl9fYnJ1c2gscj1sKGUsYXJndW1lbnRzKSxvPWkuc2VsZWN0aW9uLGE9dC5pbnB1dCgiZnVuY3Rpb24iPT10eXBlb2Ygbj9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpuLGkuZXh0ZW50KSxjPXhIKG8sYSk7ZnVuY3Rpb24gdSh0KXtpLnNlbGVjdGlvbj0xPT09dCYmTVYoYSk/bnVsbDpjKHQpLHMuY2FsbChlKSxyLmJydXNoKCl9cmV0dXJuIG8mJmE/dTp1KDEpfSkpOmUuZWFjaCgoZnVuY3Rpb24oKXt2YXIgZT10aGlzLGk9YXJndW1lbnRzLHI9ZS5fX2JydXNoLG89dC5pbnB1dCgiZnVuY3Rpb24iPT10eXBlb2Ygbj9uLmFwcGx5KGUsaSk6bixyLmV4dGVudCksYT1sKGUsaSkuYmVmb3Jlc3RhcnQoKTtyRihlKSxyLnNlbGVjdGlvbj1udWxsPT1vfHxNVihvKT9udWxsOm8scy5jYWxsKGUpLGEuc3RhcnQoKS5icnVzaCgpLmVuZCgpfSkpfSxjLnByb3RvdHlwZT17YmVmb3Jlc3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMT09Kyt0aGlzLmFjdGl2ZSYmKHRoaXMuc3RhdGUuZW1pdHRlcj10aGlzLHRoaXMuc3RhcnRpbmc9ITApLHRoaXN9LHN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhcnRpbmcmJih0aGlzLnN0YXJ0aW5nPSExLHRoaXMuZW1pdCgic3RhcnQiKSksdGhpc30sYnJ1c2g6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbWl0KCJicnVzaCIpLHRoaXN9LGVuZDpmdW5jdGlvbigpe3JldHVybiAwPT0tLXRoaXMuYWN0aXZlJiYoZGVsZXRlIHRoaXMuc3RhdGUuZW1pdHRlcix0aGlzLmVtaXQoImVuZCIpKSx0aGlzfSxlbWl0OmZ1bmN0aW9uKGUpeyEoZnVuY3Rpb24gbih0LGUsaSxyKXt2YXIgbz16RDt0LnNvdXJjZUV2ZW50PXpELHpEPXQ7dHJ5e3JldHVybiBlLmFwcGx5KGkscil9ZmluYWxseXt6RD1vfX0pKG5ldyBpVihhLGUsdC5vdXRwdXQodGhpcy5zdGF0ZS5zZWxlY3Rpb24pKSxyLmFwcGx5LHIsW2UsdGhpcy50aGF0LHRoaXMuYXJnc10pfX0sYS5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpuVihbWyt0WzBdWzBdLCt0WzBdWzFdXSxbK3RbMV1bMF0sK3RbMV1bMV1dXSksYSk6bn0sYS5maWx0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpuVighIXQpLGEpOml9LGEuaGFuZGxlU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0rdCxhKTpvfSxhLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9ci5vbi5hcHBseShyLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT1yP2E6dH0sYX1mdW5jdGlvbiBUVih0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6dD49ZT8wOk5hTn1mdW5jdGlvbiBDVih0LGUsbil7dD0rdCxlPStlLG49KHI9YXJndW1lbnRzLmxlbmd0aCk8Mj8oZT10LHQ9MCwxKTpyPDM/MTorbjtmb3IodmFyIGk9LTEscj0wfE1hdGgubWF4KDAsTWF0aC5jZWlsKChlLXQpL24pKSxvPW5ldyBBcnJheShyKTsrK2k8cjspb1tpXT10K2kqbjtyZXR1cm4gb30hKGZ1bmN0aW9uIEFWKHQpe3JldHVybiAxPT09dC5sZW5ndGgmJih0PShmdW5jdGlvbiBlKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiBUVih0KGUpLG4pfX0pKHQpKSx7bGVmdDpmdW5jdGlvbihlLG4saSxyKXtmb3IobnVsbD09aSYmKGk9MCksbnVsbD09ciYmKHI9ZS5sZW5ndGgpO2k8cjspe3ZhciBvPWkrcj4+PjE7dChlW29dLG4pPDA/aT1vKzE6cj1vfXJldHVybiBpfSxyaWdodDpmdW5jdGlvbihlLG4saSxyKXtmb3IobnVsbD09aSYmKGk9MCksbnVsbD09ciYmKHI9ZS5sZW5ndGgpO2k8cjspe3ZhciBvPWkrcj4+PjE7dChlW29dLG4pPjA/cj1vOmk9bysxfXJldHVybiBpfX19KShUVik7dmFyIGtWPU1hdGguY29zLExWPU1hdGguc2luLFBWPU1hdGguUEksTlY9UFYvMixJVj0yKlBWLFJWPU1hdGgubWF4O2Z1bmN0aW9uIE9WKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiB0KGUuc291cmNlLnZhbHVlK2UudGFyZ2V0LnZhbHVlLG4uc291cmNlLnZhbHVlK24udGFyZ2V0LnZhbHVlKX19dmFyIHpWPUFycmF5LnByb3RvdHlwZS5zbGljZTtmdW5jdGlvbiBEVih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19dmFyIEJWPU1hdGguUEksSFY9MipCVixGVj0xZS02LFZWPUhWLUZWO2Z1bmN0aW9uIFVWKCl7dGhpcy5feDA9dGhpcy5feTA9dGhpcy5feDE9dGhpcy5feTE9bnVsbCx0aGlzLl89IiJ9ZnVuY3Rpb24galYoKXtyZXR1cm4gbmV3IFVWfWZ1bmN0aW9uIEdWKHQpe3JldHVybiB0LnNvdXJjZX1mdW5jdGlvbiBXVih0KXtyZXR1cm4gdC50YXJnZXR9ZnVuY3Rpb24gcVYodCl7cmV0dXJuIHQucmFkaXVzfWZ1bmN0aW9uIFlWKHQpe3JldHVybiB0LnN0YXJ0QW5nbGV9ZnVuY3Rpb24gWFYodCl7cmV0dXJuIHQuZW5kQW5nbGV9VVYucHJvdG90eXBlPWpWLnByb3RvdHlwZT17Y29uc3RydWN0b3I6VVYsbW92ZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fKz0iTSIrKHRoaXMuX3gwPXRoaXMuX3gxPSt0KSsiLCIrKHRoaXMuX3kwPXRoaXMuX3kxPStlKX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7bnVsbCE9PXRoaXMuX3gxJiYodGhpcy5feDE9dGhpcy5feDAsdGhpcy5feTE9dGhpcy5feTAsdGhpcy5fKz0iWiIpfSxsaW5lVG86ZnVuY3Rpb24odCxlKXt0aGlzLl8rPSJMIisodGhpcy5feDE9K3QpKyIsIisodGhpcy5feTE9K2UpfSxxdWFkcmF0aWNDdXJ2ZVRvOmZ1bmN0aW9uKHQsZSxuLGkpe3RoaXMuXys9IlEiKyArdCsiLCIrICtlKyIsIisodGhpcy5feDE9K24pKyIsIisodGhpcy5feTE9K2kpfSxiZXppZXJDdXJ2ZVRvOmZ1bmN0aW9uKHQsZSxuLGkscixvKXt0aGlzLl8rPSJDIisgK3QrIiwiKyArZSsiLCIrICtuKyIsIisgK2krIiwiKyh0aGlzLl94MT0rcikrIiwiKyh0aGlzLl95MT0rbyl9LGFyY1RvOmZ1bmN0aW9uKHQsZSxuLGkscil7dmFyIG89dGhpcy5feDEsYT10aGlzLl95MSxzPShuPStuKS0odD0rdCksbD0oaT0raSktKGU9K2UpLGM9by10LHU9YS1lLGg9YypjK3UqdTtpZigocj0rcik8MCl0aHJvdyBuZXcgRXJyb3IoIm5lZ2F0aXZlIHJhZGl1czogIityKTtpZihudWxsPT09dGhpcy5feDEpdGhpcy5fKz0iTSIrKHRoaXMuX3gxPXQpKyIsIisodGhpcy5feTE9ZSk7ZWxzZSBpZihoPkZWKWlmKE1hdGguYWJzKHUqcy1sKmMpPkZWJiZyKXt2YXIgZD1uLW8scD1pLWEsZj1zKnMrbCpsLG09ZCpkK3AqcCxnPU1hdGguc3FydChmKSxfPU1hdGguc3FydChoKSx5PXIqTWF0aC50YW4oKEJWLU1hdGguYWNvcygoZitoLW0pLygyKmcqXykpKS8yKSx2PXkvXyxiPXkvZztNYXRoLmFicyh2LTEpPkZWJiYodGhpcy5fKz0iTCIrKHQrdipjKSsiLCIrKGUrdip1KSksdGhpcy5fKz0iQSIrcisiLCIrcisiLDAsMCwiKyArKHUqZD5jKnApKyIsIisodGhpcy5feDE9dCtiKnMpKyIsIisodGhpcy5feTE9ZStiKmwpfWVsc2UgdGhpcy5fKz0iTCIrKHRoaXMuX3gxPXQpKyIsIisodGhpcy5feTE9ZSk7ZWxzZTt9LGFyYzpmdW5jdGlvbih0LGUsbixpLHIsbyl7dD0rdCxlPStlLG89ISFvO3ZhciBhPShuPStuKSpNYXRoLmNvcyhpKSxzPW4qTWF0aC5zaW4oaSksbD10K2EsYz1lK3MsdT0xXm8saD1vP2ktcjpyLWk7aWYobjwwKXRocm93IG5ldyBFcnJvcigibmVnYXRpdmUgcmFkaXVzOiAiK24pO251bGw9PT10aGlzLl94MT90aGlzLl8rPSJNIitsKyIsIitjOihNYXRoLmFicyh0aGlzLl94MS1sKT5GVnx8TWF0aC5hYnModGhpcy5feTEtYyk+RlYpJiYodGhpcy5fKz0iTCIrbCsiLCIrYyksbiYmKGg8MCYmKGg9aCVIVitIViksaD5WVj90aGlzLl8rPSJBIituKyIsIituKyIsMCwxLCIrdSsiLCIrKHQtYSkrIiwiKyhlLXMpKyJBIituKyIsIituKyIsMCwxLCIrdSsiLCIrKHRoaXMuX3gxPWwpKyIsIisodGhpcy5feTE9Yyk6aD5GViYmKHRoaXMuXys9IkEiK24rIiwiK24rIiwwLCIrICsoaD49QlYpKyIsIit1KyIsIisodGhpcy5feDE9dCtuKk1hdGguY29zKHIpKSsiLCIrKHRoaXMuX3kxPWUrbipNYXRoLnNpbihyKSkpKX0scmVjdDpmdW5jdGlvbih0LGUsbixpKXt0aGlzLl8rPSJNIisodGhpcy5feDA9dGhpcy5feDE9K3QpKyIsIisodGhpcy5feTA9dGhpcy5feTE9K2UpKyJoIisgK24rInYiKyAraSsiaCIrLW4rIloifSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl99fTt2YXIgJFY9IiQiO2Z1bmN0aW9uIEtWKCl7fWZ1bmN0aW9uIFpWKHQsZSl7dmFyIG49bmV3IEtWO2lmKHQgaW5zdGFuY2VvZiBLVil0LmVhY2goKGZ1bmN0aW9uKHQsZSl7bi5zZXQoZSx0KX0pKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkodCkpe3ZhciBpLHI9LTEsbz10Lmxlbmd0aDtpZihudWxsPT1lKWZvcig7KytyPG87KW4uc2V0KHIsdFtyXSk7ZWxzZSBmb3IoOysrcjxvOyluLnNldChlKGk9dFtyXSxyLHQpLGkpfWVsc2UgaWYodClmb3IodmFyIGEgaW4gdCluLnNldChhLHRbYV0pO3JldHVybiBufWZ1bmN0aW9uIEpWKCl7cmV0dXJue319ZnVuY3Rpb24gUVYodCxlLG4pe3RbZV09bn1mdW5jdGlvbiB0VSgpe3JldHVybiBaVigpfWZ1bmN0aW9uIGVVKHQsZSxuKXt0LnNldChlLG4pfWZ1bmN0aW9uIG5VKCl7fUtWLnByb3RvdHlwZT1aVi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOktWLGhhczpmdW5jdGlvbih0KXtyZXR1cm4gJFYrdCBpbiB0aGlzfSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbJFYrdF19LHNldDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzWyRWK3RdPWUsdGhpc30scmVtb3ZlOmZ1bmN0aW9uKHQpe3ZhciBlPSRWK3Q7cmV0dXJuIGUgaW4gdGhpcyYmZGVsZXRlIHRoaXNbZV19LGNsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpdFswXT09PSRWJiZkZWxldGUgdGhpc1t0XX0sa2V5czpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT0kViYmdC5wdXNoKGUuc2xpY2UoMSkpO3JldHVybiB0fSx2YWx1ZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIGUgaW4gdGhpcyllWzBdPT09JFYmJnQucHVzaCh0aGlzW2VdKTtyZXR1cm4gdH0sZW50cmllczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT0kViYmdC5wdXNoKHtrZXk6ZS5zbGljZSgxKSx2YWx1ZTp0aGlzW2VdfSk7cmV0dXJuIHR9LHNpemU6ZnVuY3Rpb24oKXt2YXIgdD0wO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT0kViYmKyt0O3JldHVybiB0fSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzKWlmKHRbMF09PT0kVilyZXR1cm4hMTtyZXR1cm4hMH0sZWFjaDpmdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdGhpcyllWzBdPT09JFYmJnQodGhpc1tlXSxlLnNsaWNlKDEpLHRoaXMpfX07dmFyIGlVPVpWLnByb3RvdHlwZTtmdW5jdGlvbiByVSh0LGUpe3ZhciBuPW5ldyBuVTtpZih0IGluc3RhbmNlb2YgblUpdC5lYWNoKChmdW5jdGlvbih0KXtuLmFkZCh0KX0pKTtlbHNlIGlmKHQpe3ZhciBpPS0xLHI9dC5sZW5ndGg7aWYobnVsbD09ZSlmb3IoOysraTxyOyluLmFkZCh0W2ldKTtlbHNlIGZvcig7KytpPHI7KW4uYWRkKGUodFtpXSxpLHQpKX1yZXR1cm4gbn1mdW5jdGlvbiBvVSh0LGUsbil7dC5wcm90b3R5cGU9ZS5wcm90b3R5cGU9bixuLmNvbnN0cnVjdG9yPXR9ZnVuY3Rpb24gYVUodCxlKXt2YXIgbj1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlKTtmb3IodmFyIGkgaW4gZSluW2ldPWVbaV07cmV0dXJuIG59ZnVuY3Rpb24gc1UoKXt9blUucHJvdG90eXBlPXJVLnByb3RvdHlwZT17Y29uc3RydWN0b3I6blUsaGFzOmlVLmhhcyxhZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbJFYrKHQrPSIiKV09dCx0aGlzfSxyZW1vdmU6aVUucmVtb3ZlLGNsZWFyOmlVLmNsZWFyLHZhbHVlczppVS5rZXlzLHNpemU6aVUuc2l6ZSxlbXB0eTppVS5lbXB0eSxlYWNoOmlVLmVhY2h9O3ZhciBsVT0uNyxjVT0xL2xVLHVVPSJcXHMqKFsrLV0/XFxkKylcXHMqIixoVT0iXFxzKihbKy1dP1xcZCpcXC4/XFxkKyg/OltlRV1bKy1dP1xcZCspPylcXHMqIixkVT0iXFxzKihbKy1dP1xcZCpcXC4/XFxkKyg/OltlRV1bKy1dP1xcZCspPyklXFxzKiIscFU9L14jKFswLTlhLWZdezN9KSQvLGZVPS9eIyhbMC05YS1mXXs2fSkkLyxtVT1uZXcgUmVnRXhwKCJecmdiXFwoIitbdVUsdVUsdVVdKyJcXCkkIiksZ1U9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW2RVLGRVLGRVXSsiXFwpJCIpLF9VPW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbdVUsdVUsdVUsaFVdKyJcXCkkIikseVU9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tkVSxkVSxkVSxoVV0rIlxcKSQiKSx2VT1uZXcgUmVnRXhwKCJeaHNsXFwoIitbaFUsZFUsZFVdKyJcXCkkIiksYlU9bmV3IFJlZ0V4cCgiXmhzbGFcXCgiK1toVSxkVSxkVSxoVV0rIlxcKSQiKSx4VT17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtmdW5jdGlvbiB3VSh0KXt2YXIgZTtyZXR1cm4gdD0odCsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKGU9cFUuZXhlYyh0KSk/bmV3IENVKChlPXBhcnNlSW50KGVbMV0sMTYpKT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgxNSZlKTw8NHwxNSZlLDEpOihlPWZVLmV4ZWModCkpP1NVKHBhcnNlSW50KGVbMV0sMTYpKTooZT1tVS5leGVjKHQpKT9uZXcgQ1UoZVsxXSxlWzJdLGVbM10sMSk6KGU9Z1UuZXhlYyh0KSk/bmV3IENVKDI1NSplWzFdLzEwMCwyNTUqZVsyXS8xMDAsMjU1KmVbM10vMTAwLDEpOihlPV9VLmV4ZWModCkpP01VKGVbMV0sZVsyXSxlWzNdLGVbNF0pOihlPXlVLmV4ZWModCkpP01VKDI1NSplWzFdLzEwMCwyNTUqZVsyXS8xMDAsMjU1KmVbM10vMTAwLGVbNF0pOihlPXZVLmV4ZWModCkpP0FVKGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsMSk6KGU9YlUuZXhlYyh0KSk/QVUoZVsxXSxlWzJdLzEwMCxlWzNdLzEwMCxlWzRdKTp4VS5oYXNPd25Qcm9wZXJ0eSh0KT9TVSh4VVt0XSk6InRyYW5zcGFyZW50Ij09PXQ/bmV3IENVKE5hTixOYU4sTmFOLDApOm51bGx9ZnVuY3Rpb24gU1UodCl7cmV0dXJuIG5ldyBDVSh0Pj4xNiYyNTUsdD4+OCYyNTUsMjU1JnQsMSl9ZnVuY3Rpb24gTVUodCxlLG4saSl7cmV0dXJuIGk8PTAmJih0PWU9bj1OYU4pLG5ldyBDVSh0LGUsbixpKX1mdW5jdGlvbiBFVSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIHNVfHwodD13VSh0KSksdD9uZXcgQ1UoKHQ9dC5yZ2IoKSkucix0LmcsdC5iLHQub3BhY2l0eSk6bmV3IENVfWZ1bmN0aW9uIFRVKHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9FVSh0KTpuZXcgQ1UodCxlLG4sbnVsbD09aT8xOmkpfWZ1bmN0aW9uIENVKHQsZSxuLGkpe3RoaXMucj0rdCx0aGlzLmc9K2UsdGhpcy5iPStuLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBBVSh0LGUsbixpKXtyZXR1cm4gaTw9MD90PWU9bj1OYU46bjw9MHx8bj49MT90PWU9TmFOOmU8PTAmJih0PU5hTiksbmV3IFBVKHQsZSxuLGkpfWZ1bmN0aW9uIGtVKHQpe2lmKHQgaW5zdGFuY2VvZiBQVSlyZXR1cm4gbmV3IFBVKHQuaCx0LnMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIHNVfHwodD13VSh0KSksIXQpcmV0dXJuIG5ldyBQVTtpZih0IGluc3RhbmNlb2YgUFUpcmV0dXJuIHQ7dmFyIGU9KHQ9dC5yZ2IoKSkuci8yNTUsbj10LmcvMjU1LGk9dC5iLzI1NSxyPU1hdGgubWluKGUsbixpKSxvPU1hdGgubWF4KGUsbixpKSxhPU5hTixzPW8tcixsPShvK3IpLzI7cmV0dXJuIHM/KGE9ZT09PW8/KG4taSkvcys2KihuPGkpOm49PT1vPyhpLWUpL3MrMjooZS1uKS9zKzQscy89bDwuNT9vK3I6Mi1vLXIsYSo9NjApOnM9bD4wJiZsPDE/MDphLG5ldyBQVShhLHMsbCx0Lm9wYWNpdHkpfWZ1bmN0aW9uIExVKHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9rVSh0KTpuZXcgUFUodCxlLG4sbnVsbD09aT8xOmkpfWZ1bmN0aW9uIFBVKHQsZSxuLGkpe3RoaXMuaD0rdCx0aGlzLnM9K2UsdGhpcy5sPStuLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiBOVSh0LGUsbil7cmV0dXJuIDI1NSoodDw2MD9lKyhuLWUpKnQvNjA6dDwxODA/bjp0PDI0MD9lKyhuLWUpKigyNDAtdCkvNjA6ZSl9b1Uoc1Usd1Use2Rpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmdiKCkuZGlzcGxheWFibGUoKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZ2IoKSsiIn19KSxvVShDVSxUVSxhVShzVSx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9jVTpNYXRoLnBvdyhjVSx0KSxuZXcgQ1UodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/bFU6TWF0aC5wb3cobFUsdCksbmV3IENVKHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiAwPD10aGlzLnImJnRoaXMucjw9MjU1JiYwPD10aGlzLmcmJnRoaXMuZzw9MjU1JiYwPD10aGlzLmImJnRoaXMuYjw9MjU1JiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpPyJyZ2IoIjoicmdiYSgiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKDE9PT10PyIpIjoiLCAiK3QrIikiKX19KSksb1UoUFUsTFUsYVUoc1Use2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/Y1U6TWF0aC5wb3coY1UsdCksbmV3IFBVKHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/bFU6TWF0aC5wb3cobFUsdCksbmV3IFBVKHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5oJTM2MCszNjAqKHRoaXMuaDwwKSxlPWlzTmFOKHQpfHxpc05hTih0aGlzLnMpPzA6dGhpcy5zLG49dGhpcy5sLGk9bisobjwuNT9uOjEtbikqZSxyPTIqbi1pO3JldHVybiBuZXcgQ1UoTlUodD49MjQwP3QtMjQwOnQrMTIwLHIsaSksTlUodCxyLGkpLE5VKHQ8MTIwP3QrMjQwOnQtMTIwLHIsaSksdGhpcy5vcGFjaXR5KX0sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4oMDw9dGhpcy5zJiZ0aGlzLnM8PTF8fGlzTmFOKHRoaXMucykpJiYwPD10aGlzLmwmJnRoaXMubDw9MSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9fSkpO3ZhciBJVT1NYXRoLlBJLzE4MCxSVT0xODAvTWF0aC5QSSxPVT0uOTUwNDcselU9MS4wODg4MyxEVT00LzI5LEJVPTYvMjksSFU9MypCVSpCVTtmdW5jdGlvbiBGVSh0KXtpZih0IGluc3RhbmNlb2YgVVUpcmV0dXJuIG5ldyBVVSh0LmwsdC5hLHQuYix0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiAkVSl7dmFyIGU9dC5oKklVO3JldHVybiBuZXcgVVUodC5sLE1hdGguY29zKGUpKnQuYyxNYXRoLnNpbihlKSp0LmMsdC5vcGFjaXR5KX10IGluc3RhbmNlb2YgQ1V8fCh0PUVVKHQpKTt2YXIgbj1xVSh0LnIpLGk9cVUodC5nKSxyPXFVKHQuYiksbz1qVSgoLjQxMjQ1NjQqbisuMzU3NTc2MSppKy4xODA0Mzc1KnIpL09VKSxhPWpVKCguMjEyNjcyOSpuKy43MTUxNTIyKmkrLjA3MjE3NSpyKS8xKTtyZXR1cm4gbmV3IFVVKDExNiphLTE2LDUwMCooby1hKSwyMDAqKGEtalUoKC4wMTkzMzM5Km4rLjExOTE5MippKy45NTAzMDQxKnIpL3pVKSksdC5vcGFjaXR5KX1mdW5jdGlvbiBWVSh0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/RlUodCk6bmV3IFVVKHQsZSxuLG51bGw9PWk/MTppKX1mdW5jdGlvbiBVVSh0LGUsbixpKXt0aGlzLmw9K3QsdGhpcy5hPStlLHRoaXMuYj0rbix0aGlzLm9wYWNpdHk9K2l9ZnVuY3Rpb24galUodCl7cmV0dXJuIHQ+LjAwODg1NjQ1MTY3OTAzNTYzMT9NYXRoLnBvdyh0LDEvMyk6dC9IVStEVX1mdW5jdGlvbiBHVSh0KXtyZXR1cm4gdD5CVT90KnQqdDpIVSoodC1EVSl9ZnVuY3Rpb24gV1UodCl7cmV0dXJuIDI1NSoodDw9LjAwMzEzMDg/MTIuOTIqdDoxLjA1NSpNYXRoLnBvdyh0LDEvMi40KS0uMDU1KX1mdW5jdGlvbiBxVSh0KXtyZXR1cm4odC89MjU1KTw9LjA0MDQ1P3QvMTIuOTI6TWF0aC5wb3coKHQrLjA1NSkvMS4wNTUsMi40KX1mdW5jdGlvbiBZVSh0KXtpZih0IGluc3RhbmNlb2YgJFUpcmV0dXJuIG5ldyAkVSh0LmgsdC5jLHQubCx0Lm9wYWNpdHkpO3QgaW5zdGFuY2VvZiBVVXx8KHQ9RlUodCkpO3ZhciBlPU1hdGguYXRhbjIodC5iLHQuYSkqUlU7cmV0dXJuIG5ldyAkVShlPDA/ZSszNjA6ZSxNYXRoLnNxcnQodC5hKnQuYSt0LmIqdC5iKSx0LmwsdC5vcGFjaXR5KX1mdW5jdGlvbiBYVSh0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/WVUodCk6bmV3ICRVKHQsZSxuLG51bGw9PWk/MTppKX1mdW5jdGlvbiAkVSh0LGUsbixpKXt0aGlzLmg9K3QsdGhpcy5jPStlLHRoaXMubD0rbix0aGlzLm9wYWNpdHk9K2l9b1UoVVUsVlUsYVUoc1Use2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgVVUodGhpcy5sKzE4KihudWxsPT10PzE6dCksdGhpcy5hLHRoaXMuYix0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBVVSh0aGlzLmwtMTgqKG51bGw9PXQ/MTp0KSx0aGlzLmEsdGhpcy5iLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PSh0aGlzLmwrMTYpLzExNixlPWlzTmFOKHRoaXMuYSk/dDp0K3RoaXMuYS81MDAsbj1pc05hTih0aGlzLmIpP3Q6dC10aGlzLmIvMjAwO3JldHVybiB0PTEqR1UodCksbmV3IENVKFdVKDMuMjQwNDU0MiooZT1PVSpHVShlKSktMS41MzcxMzg1KnQtLjQ5ODUzMTQqKG49elUqR1UobikpKSxXVSgtLjk2OTI2NiplKzEuODc2MDEwOCp0Ky4wNDE1NTYqbiksV1UoLjA1NTY0MzQqZS0uMjA0MDI1OSp0KzEuMDU3MjI1MipuKSx0aGlzLm9wYWNpdHkpfX0pKSxvVSgkVSxYVSxhVShzVSx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyAkVSh0aGlzLmgsdGhpcy5jLHRoaXMubCsxOCoobnVsbD09dD8xOnQpLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3ICRVKHRoaXMuaCx0aGlzLmMsdGhpcy5sLTE4KihudWxsPT10PzE6dCksdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIEZVKHRoaXMpLnJnYigpfX0pKTt2YXIgS1U9LS4xNDg2MSxaVT0xLjc4Mjc3LEpVPS0uMjkyMjcsUVU9LS45MDY0OSx0aj0xLjk3Mjk0LGVqPXRqKlFVLG5qPXRqKlpVLGlqPVpVKkpVLVFVKktVO2Z1bmN0aW9uIHJqKHQpe2lmKHQgaW5zdGFuY2VvZiBhailyZXR1cm4gbmV3IGFqKHQuaCx0LnMsdC5sLHQub3BhY2l0eSk7dCBpbnN0YW5jZW9mIENVfHwodD1FVSh0KSk7dmFyIGU9dC5nLzI1NSxuPXQuYi8yNTUsaT0oaWoqbitlaioodC5yLzI1NSktbmoqZSkvLTUuOTYxNTEyMjkxMixyPW4taSxvPSh0aiooZS1pKS1KVSpyKS9RVSxhPU1hdGguc3FydChvKm8rcipyKS8odGoqaSooMS1pKSkscz1hP01hdGguYXRhbjIobyxyKSpSVS0xMjA6TmFOO3JldHVybiBuZXcgYWooczwwP3MrMzYwOnMsYSxpLHQub3BhY2l0eSl9ZnVuY3Rpb24gb2oodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3JqKHQpOm5ldyBhaih0LGUsbixudWxsPT1pPzE6aSl9ZnVuY3Rpb24gYWoodCxlLG4saSl7dGhpcy5oPSt0LHRoaXMucz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStpfW9VKGFqLG9qLGFVKHNVLHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10P2NVOk1hdGgucG93KGNVLHQpLG5ldyBhaih0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10P2xVOk1hdGgucG93KGxVLHQpLG5ldyBhaih0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PWlzTmFOKHRoaXMuaCk/MDoodGhpcy5oKzEyMCkqSVUsZT0rdGhpcy5sLG49aXNOYU4odGhpcy5zKT8wOnRoaXMucyplKigxLWUpLGk9TWF0aC5jb3ModCkscj1NYXRoLnNpbih0KTtyZXR1cm4gbmV3IENVKDI1NSooZStuKihLVSppK1pVKnIpKSwyNTUqKGUrbiooSlUqaStRVSpyKSksMjU1KihlK24qKHRqKmkpKSx0aGlzLm9wYWNpdHkpfX0pKTt2YXIgc2o9e3ZhbHVlOmZ1bmN0aW9uKCl7fX07ZnVuY3Rpb24gbGooKXtmb3IodmFyIHQsZT0wLG49YXJndW1lbnRzLmxlbmd0aCxpPXt9O2U8bjsrK2Upe2lmKCEodD1hcmd1bWVudHNbZV0rIiIpfHx0IGluIGkpdGhyb3cgbmV3IEVycm9yKCJpbGxlZ2FsIHR5cGU6ICIrdCk7aVt0XT1bXX1yZXR1cm4gbmV3IGNqKGkpfWZ1bmN0aW9uIGNqKHQpe3RoaXMuXz10fWZ1bmN0aW9uIHVqKHQsZSl7cmV0dXJuIHQudHJpbSgpLnNwbGl0KC9efFxzKy8pLm1hcCgoZnVuY3Rpb24odCl7dmFyIG49IiIsaT10LmluZGV4T2YoIi4iKTtpZihpPj0wJiYobj10LnNsaWNlKGkrMSksdD10LnNsaWNlKDAsaSkpLHQmJiFlLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO3JldHVybnt0eXBlOnQsbmFtZTpufX0pKX1mdW5jdGlvbiBoaih0LGUpe2Zvcih2YXIgbixpPTAscj10Lmxlbmd0aDtpPHI7KytpKWlmKChuPXRbaV0pLm5hbWU9PT1lKXJldHVybiBuLnZhbHVlfWZ1bmN0aW9uIGRqKHQsZSxuKXtmb3IodmFyIGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpaWYodFtpXS5uYW1lPT09ZSl7dFtpXT1zaix0PXQuc2xpY2UoMCxpKS5jb25jYXQodC5zbGljZShpKzEpKTticmVha31yZXR1cm4gbnVsbCE9biYmdC5wdXNoKHtuYW1lOmUsdmFsdWU6bn0pLHR9Y2oucHJvdG90eXBlPWxqLnByb3RvdHlwZT17Y29uc3RydWN0b3I6Y2osb246ZnVuY3Rpb24odCxlKXt2YXIgbixpPXRoaXMuXyxyPXVqKHQrIiIsaSksbz0tMSxhPXIubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7aWYobnVsbCE9ZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNhbGxiYWNrOiAiK2UpO2Zvcig7KytvPGE7KWlmKG49KHQ9cltvXSkudHlwZSlpW25dPWRqKGlbbl0sdC5uYW1lLGUpO2Vsc2UgaWYobnVsbD09ZSlmb3IobiBpbiBpKWlbbl09ZGooaVtuXSx0Lm5hbWUsbnVsbCk7cmV0dXJuIHRoaXN9Zm9yKDsrK288YTspaWYoKG49KHQ9cltvXSkudHlwZSkmJihuPWhqKGlbbl0sdC5uYW1lKSkpcmV0dXJuIG59LGNvcHk6ZnVuY3Rpb24oKXt2YXIgdD17fSxlPXRoaXMuXztmb3IodmFyIG4gaW4gZSl0W25dPWVbbl0uc2xpY2UoKTtyZXR1cm4gbmV3IGNqKHQpfSxjYWxsOmZ1bmN0aW9uKHQsZSl7aWYoKG49YXJndW1lbnRzLmxlbmd0aC0yKT4wKWZvcih2YXIgbixpLHI9bmV3IEFycmF5KG4pLG89MDtvPG47KytvKXJbb109YXJndW1lbnRzW28rMl07aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtmb3Iobz0wLG49KGk9dGhpcy5fW3RdKS5sZW5ndGg7bzxuOysrbylpW29dLnZhbHVlLmFwcGx5KGUscil9LGFwcGx5OmZ1bmN0aW9uKHQsZSxuKXtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO2Zvcih2YXIgaT10aGlzLl9bdF0scj0wLG89aS5sZW5ndGg7cjxvOysrcilpW3JdLnZhbHVlLmFwcGx5KGUsbil9fTt2YXIgcGo9e3ZhbHVlOmZ1bmN0aW9uKCl7fX07ZnVuY3Rpb24gZmooKXtmb3IodmFyIHQsZT0wLG49YXJndW1lbnRzLmxlbmd0aCxpPXt9O2U8bjsrK2Upe2lmKCEodD1hcmd1bWVudHNbZV0rIiIpfHx0IGluIGl8fC9bXHMuXS8udGVzdCh0KSl0aHJvdyBuZXcgRXJyb3IoImlsbGVnYWwgdHlwZTogIit0KTtpW3RdPVtdfXJldHVybiBuZXcgbWooaSl9ZnVuY3Rpb24gbWoodCl7dGhpcy5fPXR9ZnVuY3Rpb24gZ2oodCxlKXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLykubWFwKChmdW5jdGlvbih0KXt2YXIgbj0iIixpPXQuaW5kZXhPZigiLiIpO2lmKGk+PTAmJihuPXQuc2xpY2UoaSsxKSx0PXQuc2xpY2UoMCxpKSksdCYmIWUuaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrdCk7cmV0dXJue3R5cGU6dCxuYW1lOm59fSkpfWZ1bmN0aW9uIF9qKHQsZSl7Zm9yKHZhciBuLGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpaWYoKG49dFtpXSkubmFtZT09PWUpcmV0dXJuIG4udmFsdWV9ZnVuY3Rpb24geWoodCxlLG4pe2Zvcih2YXIgaT0wLHI9dC5sZW5ndGg7aTxyOysraSlpZih0W2ldLm5hbWU9PT1lKXt0W2ldPXBqLHQ9dC5zbGljZSgwLGkpLmNvbmNhdCh0LnNsaWNlKGkrMSkpO2JyZWFrfXJldHVybiBudWxsIT1uJiZ0LnB1c2goe25hbWU6ZSx2YWx1ZTpufSksdH1tai5wcm90b3R5cGU9ZmoucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjptaixvbjpmdW5jdGlvbih0LGUpe3ZhciBuLGk9dGhpcy5fLHI9Z2oodCsiIixpKSxvPS0xLGE9ci5sZW5ndGg7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtpZihudWxsIT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2s6ICIrZSk7Zm9yKDsrK288YTspaWYobj0odD1yW29dKS50eXBlKWlbbl09eWooaVtuXSx0Lm5hbWUsZSk7ZWxzZSBpZihudWxsPT1lKWZvcihuIGluIGkpaVtuXT15aihpW25dLHQubmFtZSxudWxsKTtyZXR1cm4gdGhpc31mb3IoOysrbzxhOylpZigobj0odD1yW29dKS50eXBlKSYmKG49X2ooaVtuXSx0Lm5hbWUpKSlyZXR1cm4gbn0sY29weTpmdW5jdGlvbigpe3ZhciB0PXt9LGU9dGhpcy5fO2Zvcih2YXIgbiBpbiBlKXRbbl09ZVtuXS5zbGljZSgpO3JldHVybiBuZXcgbWoodCl9LGNhbGw6ZnVuY3Rpb24odCxlKXtpZigobj1hcmd1bWVudHMubGVuZ3RoLTIpPjApZm9yKHZhciBuLGkscj1uZXcgQXJyYXkobiksbz0wO288bjsrK28pcltvXT1hcmd1bWVudHNbbysyXTtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO2ZvcihvPTAsbj0oaT10aGlzLl9bdF0pLmxlbmd0aDtvPG47KytvKWlbb10udmFsdWUuYXBwbHkoZSxyKX0sYXBwbHk6ZnVuY3Rpb24odCxlLG4pe2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrdCk7Zm9yKHZhciBpPXRoaXMuX1t0XSxyPTAsbz1pLmxlbmd0aDtyPG87KytyKWlbcl0udmFsdWUuYXBwbHkoZSxuKX19O3ZhciB2aj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsYmo9e3N2ZzoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhodG1sOnZqLHhsaW5rOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIix4bWw6Imh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvIn07ZnVuY3Rpb24geGoodCl7dmFyIGU9dCs9IiIsbj1lLmluZGV4T2YoIjoiKTtyZXR1cm4gbj49MCYmInhtbG5zIiE9PShlPXQuc2xpY2UoMCxuKSkmJih0PXQuc2xpY2UobisxKSksYmouaGFzT3duUHJvcGVydHkoZSk/e3NwYWNlOmJqW2VdLGxvY2FsOnR9OnR9ZnVuY3Rpb24gd2oodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vd25lckRvY3VtZW50LG49dGhpcy5uYW1lc3BhY2VVUkk7cmV0dXJuIG49PT12aiYmZS5kb2N1bWVudEVsZW1lbnQubmFtZXNwYWNlVVJJPT09dmo/ZS5jcmVhdGVFbGVtZW50KHQpOmUuY3JlYXRlRWxlbWVudE5TKG4sdCl9fWZ1bmN0aW9uIFNqKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIE1qKHQpe3ZhciBlPXhqKHQpO3JldHVybihlLmxvY2FsP1NqOndqKShlKX1mdW5jdGlvbiBFaigpe31mdW5jdGlvbiBUaih0KXtyZXR1cm4gbnVsbD09dD9FajpmdW5jdGlvbigpe3JldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3IodCl9fWZ1bmN0aW9uIENqKCl7cmV0dXJuW119ZnVuY3Rpb24gQWoodCl7cmV0dXJuIG5ldyBBcnJheSh0Lmxlbmd0aCl9ZnVuY3Rpb24ga2oodCxlKXt0aGlzLm93bmVyRG9jdW1lbnQ9dC5vd25lckRvY3VtZW50LHRoaXMubmFtZXNwYWNlVVJJPXQubmFtZXNwYWNlVVJJLHRoaXMuX25leHQ9bnVsbCx0aGlzLl9wYXJlbnQ9dCx0aGlzLl9fZGF0YV9fPWV9a2oucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpraixhcHBlbmRDaGlsZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZSh0LHRoaXMuX25leHQpfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZSh0LGUpfSxxdWVyeVNlbGVjdG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3Rvcih0KX0scXVlcnlTZWxlY3RvckFsbDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwodCl9fTtmdW5jdGlvbiBMaih0LGUsbixpLHIsbyl7Zm9yKHZhciBhLHM9MCxsPWUubGVuZ3RoLGM9by5sZW5ndGg7czxjOysrcykoYT1lW3NdKT8oYS5fX2RhdGFfXz1vW3NdLGlbc109YSk6bltzXT1uZXcga2oodCxvW3NdKTtmb3IoO3M8bDsrK3MpKGE9ZVtzXSkmJihyW3NdPWEpfWZ1bmN0aW9uIFBqKHQsZSxuLGkscixvLGEpe3ZhciBzLGwsYyx1PXt9LGg9ZS5sZW5ndGgsZD1vLmxlbmd0aCxwPW5ldyBBcnJheShoKTtmb3Iocz0wO3M8aDsrK3MpKGw9ZVtzXSkmJihwW3NdPWM9IiQiK2EuY2FsbChsLGwuX19kYXRhX18scyxlKSxjIGluIHU/cltzXT1sOnVbY109bCk7Zm9yKHM9MDtzPGQ7KytzKShsPXVbYz0iJCIrYS5jYWxsKHQsb1tzXSxzLG8pXSk/KGlbc109bCxsLl9fZGF0YV9fPW9bc10sdVtjXT1udWxsKTpuW3NdPW5ldyBraih0LG9bc10pO2ZvcihzPTA7czxoOysrcykobD1lW3NdKSYmdVtwW3NdXT09PWwmJihyW3NdPWwpfWZ1bmN0aW9uIE5qKHQsZSl7cmV0dXJuIHQ8ZT8tMTp0PmU/MTp0Pj1lPzA6TmFOfWZ1bmN0aW9uIElqKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpfX1mdW5jdGlvbiBSaih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIE9qKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGUodCxlKX19ZnVuY3Rpb24gemoodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxlKX19ZnVuY3Rpb24gRGoodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpOnRoaXMuc2V0QXR0cmlidXRlKHQsbil9fWZ1bmN0aW9uIEJqKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09bj90aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCk6dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsbil9fWZ1bmN0aW9uIEhqKHQpe3JldHVybiB0Lm93bmVyRG9jdW1lbnQmJnQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8dC5kb2N1bWVudCYmdHx8dC5kZWZhdWx0Vmlld31mdW5jdGlvbiBGaih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpfX1mdW5jdGlvbiBWaih0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LGUsbil9fWZ1bmN0aW9uIFVqKHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgaT1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1pP3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCk6dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LGksbil9fWZ1bmN0aW9uIGpqKHQsZSl7cmV0dXJuIHQuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShlKXx8SGoodCkuZ2V0Q29tcHV0ZWRTdHlsZSh0LG51bGwpLmdldFByb3BlcnR5VmFsdWUoZSl9ZnVuY3Rpb24gR2oodCl7cmV0dXJuIGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbdF19fWZ1bmN0aW9uIFdqKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpc1t0XT1lfX1mdW5jdGlvbiBxaih0LGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PW4/ZGVsZXRlIHRoaXNbdF06dGhpc1t0XT1ufX1mdW5jdGlvbiBZaih0KXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLyl9ZnVuY3Rpb24gWGoodCl7cmV0dXJuIHQuY2xhc3NMaXN0fHxuZXcgJGoodCl9ZnVuY3Rpb24gJGoodCl7dGhpcy5fbm9kZT10LHRoaXMuX25hbWVzPVlqKHQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9ZnVuY3Rpb24gS2oodCxlKXtmb3IodmFyIG49WGoodCksaT0tMSxyPWUubGVuZ3RoOysraTxyOyluLmFkZChlW2ldKX1mdW5jdGlvbiBaaih0LGUpe2Zvcih2YXIgbj1Yaih0KSxpPS0xLHI9ZS5sZW5ndGg7KytpPHI7KW4ucmVtb3ZlKGVbaV0pfWZ1bmN0aW9uIEpqKHQpe3JldHVybiBmdW5jdGlvbigpe0tqKHRoaXMsdCl9fWZ1bmN0aW9uIFFqKHQpe3JldHVybiBmdW5jdGlvbigpe1pqKHRoaXMsdCl9fWZ1bmN0aW9uIHRHKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7KGUuYXBwbHkodGhpcyxhcmd1bWVudHMpP0tqOlpqKSh0aGlzLHQpfX1mdW5jdGlvbiBlRygpe3RoaXMudGV4dENvbnRlbnQ9IiJ9ZnVuY3Rpb24gbkcodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD10fX1mdW5jdGlvbiBpRyh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLnRleHRDb250ZW50PW51bGw9PWU/IiI6ZX19ZnVuY3Rpb24gckcoKXt0aGlzLmlubmVySFRNTD0iIn1mdW5jdGlvbiBvRyh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLmlubmVySFRNTD10fX1mdW5jdGlvbiBhRyh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLmlubmVySFRNTD1udWxsPT1lPyIiOmV9fWZ1bmN0aW9uIHNHKCl7dGhpcy5uZXh0U2libGluZyYmdGhpcy5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHRoaXMpfWZ1bmN0aW9uIGxHKCl7dGhpcy5wcmV2aW91c1NpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcyx0aGlzLnBhcmVudE5vZGUuZmlyc3RDaGlsZCl9ZnVuY3Rpb24gY0coKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiB1Rygpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTt0JiZ0LnJlbW92ZUNoaWxkKHRoaXMpfWZ1bmN0aW9uIGhHKCl7dmFyIHQ9dGhpcy5jbG9uZU5vZGUoITEpLGU9dGhpcy5wYXJlbnROb2RlO3JldHVybiBlP2UuaW5zZXJ0QmVmb3JlKHQsdGhpcy5uZXh0U2libGluZyk6dH1mdW5jdGlvbiBkRygpe3ZhciB0PXRoaXMuY2xvbmVOb2RlKCEwKSxlPXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gZT9lLmluc2VydEJlZm9yZSh0LHRoaXMubmV4dFNpYmxpbmcpOnR9JGoucHJvdG90eXBlPXthZGQ6ZnVuY3Rpb24odCl7dGhpcy5fbmFtZXMuaW5kZXhPZih0KTwwJiYodGhpcy5fbmFtZXMucHVzaCh0KSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbmFtZXMuaW5kZXhPZih0KTtlPj0wJiYodGhpcy5fbmFtZXMuc3BsaWNlKGUsMSksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix0aGlzLl9uYW1lcy5qb2luKCIgIikpKX0sY29udGFpbnM6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX25hbWVzLmluZGV4T2YodCk+PTB9fTt2YXIgcEc9e30sZkc9bnVsbDsidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiYoIm9ubW91c2VlbnRlciJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR8fChwRz17bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9KSk7ZnVuY3Rpb24gbUcodCxlLG4pe3JldHVybiB0PWdHKHQsZSxuKSxmdW5jdGlvbihlKXt2YXIgbj1lLnJlbGF0ZWRUYXJnZXQ7biYmKG49PT10aGlzfHw4Jm4uY29tcGFyZURvY3VtZW50UG9zaXRpb24odGhpcykpfHx0LmNhbGwodGhpcyxlKX19ZnVuY3Rpb24gZ0codCxlLG4pe3JldHVybiBmdW5jdGlvbihpKXt2YXIgcj1mRztmRz1pO3RyeXt0LmNhbGwodGhpcyx0aGlzLl9fZGF0YV9fLGUsbil9ZmluYWxseXtmRz1yfX19ZnVuY3Rpb24gX0codCl7cmV0dXJuIHQudHJpbSgpLnNwbGl0KC9efFxzKy8pLm1hcCgoZnVuY3Rpb24odCl7dmFyIGU9IiIsbj10LmluZGV4T2YoIi4iKTtyZXR1cm4gbj49MCYmKGU9dC5zbGljZShuKzEpLHQ9dC5zbGljZSgwLG4pKSx7dHlwZTp0LG5hbWU6ZX19KSl9ZnVuY3Rpb24geUcodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fX29uO2lmKGUpe2Zvcih2YXIgbixpPTAscj0tMSxvPWUubGVuZ3RoO2k8bzsrK2kpbj1lW2ldLHQudHlwZSYmbi50eXBlIT09dC50eXBlfHxuLm5hbWUhPT10Lm5hbWU/ZVsrK3JdPW46dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKG4udHlwZSxuLmxpc3RlbmVyLG4uY2FwdHVyZSk7KytyP2UubGVuZ3RoPXI6ZGVsZXRlIHRoaXMuX19vbn19fWZ1bmN0aW9uIHZHKHQsZSxuKXt2YXIgaT1wRy5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpP21HOmdHO3JldHVybiBmdW5jdGlvbihyLG8sYSl7dmFyIHMsbD10aGlzLl9fb24sYz1pKGUsbyxhKTtpZihsKWZvcih2YXIgdT0wLGg9bC5sZW5ndGg7dTxoOysrdSlpZigocz1sW3VdKS50eXBlPT09dC50eXBlJiZzLm5hbWU9PT10Lm5hbWUpcmV0dXJuIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihzLnR5cGUscy5saXN0ZW5lcixzLmNhcHR1cmUpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihzLnR5cGUscy5saXN0ZW5lcj1jLHMuY2FwdHVyZT1uKSx2b2lkKHMudmFsdWU9ZSk7dGhpcy5hZGRFdmVudExpc3RlbmVyKHQudHlwZSxjLG4pLHM9e3R5cGU6dC50eXBlLG5hbWU6dC5uYW1lLHZhbHVlOmUsbGlzdGVuZXI6YyxjYXB0dXJlOm59LGw/bC5wdXNoKHMpOnRoaXMuX19vbj1bc119fWZ1bmN0aW9uIGJHKHQsZSxuLGkpe3ZhciByPWZHO3Quc291cmNlRXZlbnQ9ZkcsZkc9dDt0cnl7cmV0dXJuIGUuYXBwbHkobixpKX1maW5hbGx5e2ZHPXJ9fWZ1bmN0aW9uIHhHKHQsZSxuKXt2YXIgaT1Iaih0KSxyPWkuQ3VzdG9tRXZlbnQ7ImZ1bmN0aW9uIj09dHlwZW9mIHI/cj1uZXcgcihlLG4pOihyPWkuZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iiksbj8oci5pbml0RXZlbnQoZSxuLmJ1YmJsZXMsbi5jYW5jZWxhYmxlKSxyLmRldGFpbD1uLmRldGFpbCk6ci5pbml0RXZlbnQoZSwhMSwhMSkpLHQuZGlzcGF0Y2hFdmVudChyKX1mdW5jdGlvbiB3Ryh0LGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB4Ryh0aGlzLHQsZSl9fWZ1bmN0aW9uIFNHKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHhHKHRoaXMsdCxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fXZhciBNRz1bbnVsbF07ZnVuY3Rpb24gRUcodCxlKXt0aGlzLl9ncm91cHM9dCx0aGlzLl9wYXJlbnRzPWV9ZnVuY3Rpb24gVEcodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P25ldyBFRyhbW2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodCldXSxbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XSk6bmV3IEVHKFtbdF1dLE1HKX1mdW5jdGlvbiBDRygpe2Zvcih2YXIgdCxlPWZHO3Q9ZS5zb3VyY2VFdmVudDspZT10O3JldHVybiBlfWZ1bmN0aW9uIEFHKHQsZSl7dmFyIG49dC5vd25lclNWR0VsZW1lbnR8fHQ7aWYobi5jcmVhdGVTVkdQb2ludCl7dmFyIGk9bi5jcmVhdGVTVkdQb2ludCgpO3JldHVybiBpLng9ZS5jbGllbnRYLGkueT1lLmNsaWVudFksWyhpPWkubWF0cml4VHJhbnNmb3JtKHQuZ2V0U2NyZWVuQ1RNKCkuaW52ZXJzZSgpKSkueCxpLnldfXZhciByPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuW2UuY2xpZW50WC1yLmxlZnQtdC5jbGllbnRMZWZ0LGUuY2xpZW50WS1yLnRvcC10LmNsaWVudFRvcF19ZnVuY3Rpb24ga0codCl7dmFyIGU9Q0coKTtyZXR1cm4gZS5jaGFuZ2VkVG91Y2hlcyYmKGU9ZS5jaGFuZ2VkVG91Y2hlc1swXSksQUcodCxlKX1mdW5jdGlvbiBMRyh0LGUsbil7YXJndW1lbnRzLmxlbmd0aDwzJiYobj1lLGU9Q0coKS5jaGFuZ2VkVG91Y2hlcyk7Zm9yKHZhciBpLHI9MCxvPWU/ZS5sZW5ndGg6MDtyPG87KytyKWlmKChpPWVbcl0pLmlkZW50aWZpZXI9PT1uKXJldHVybiBBRyh0LGkpO3JldHVybiBudWxsfWZ1bmN0aW9uIFBHKCl7Zkcuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gTkcoKXtmRy5wcmV2ZW50RGVmYXVsdCgpLGZHLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIElHKHQpe3ZhciBlPXQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LG49VEcodCkub24oImRyYWdzdGFydC5kcmFnIixORywhMCk7Im9uc2VsZWN0c3RhcnQiaW4gZT9uLm9uKCJzZWxlY3RzdGFydC5kcmFnIixORywhMCk6KGUuX19ub3NlbGVjdD1lLnN0eWxlLk1velVzZXJTZWxlY3QsZS5zdHlsZS5Nb3pVc2VyU2VsZWN0PSJub25lIil9ZnVuY3Rpb24gUkcodCxlKXt2YXIgbj10LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxpPVRHKHQpLm9uKCJkcmFnc3RhcnQuZHJhZyIsbnVsbCk7ZSYmKGkub24oImNsaWNrLmRyYWciLE5HLCEwKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2kub24oImNsaWNrLmRyYWciLG51bGwpfSksMCkpLCJvbnNlbGVjdHN0YXJ0ImluIG4/aS5vbigic2VsZWN0c3RhcnQuZHJhZyIsbnVsbCk6KG4uc3R5bGUuTW96VXNlclNlbGVjdD1uLl9fbm9zZWxlY3QsZGVsZXRlIG4uX19ub3NlbGVjdCl9ZnVuY3Rpb24gT0codCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIHpHKHQsZSxuLGkscixvLGEscyxsLGMpe3RoaXMudGFyZ2V0PXQsdGhpcy50eXBlPWUsdGhpcy5zdWJqZWN0PW4sdGhpcy5pZGVudGlmaWVyPWksdGhpcy5hY3RpdmU9cix0aGlzLng9byx0aGlzLnk9YSx0aGlzLmR4PXMsdGhpcy5keT1sLHRoaXMuXz1jfWZ1bmN0aW9uIERHKCl7cmV0dXJuIWZHLmJ1dHRvbn1mdW5jdGlvbiBCRygpe3JldHVybiB0aGlzLnBhcmVudE5vZGV9ZnVuY3Rpb24gSEcodCl7cmV0dXJuIG51bGw9PXQ/e3g6ZkcueCx5OmZHLnl9OnR9ZnVuY3Rpb24gRkcoKXtyZXR1cm4ib250b3VjaHN0YXJ0ImluIHRoaXN9RUcucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpFRyxzZWxlY3Q6ZnVuY3Rpb24gVkcodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PVRqKHQpKTtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49ZS5sZW5ndGgsaT1uZXcgQXJyYXkobikscj0wO3I8bjsrK3IpZm9yKHZhciBvLGEscz1lW3JdLGw9cy5sZW5ndGgsYz1pW3JdPW5ldyBBcnJheShsKSx1PTA7dTxsOysrdSkobz1zW3VdKSYmKGE9dC5jYWxsKG8sby5fX2RhdGFfXyx1LHMpKSYmKCJfX2RhdGFfXyJpbiBvJiYoYS5fX2RhdGFfXz1vLl9fZGF0YV9fKSxjW3VdPWEpO3JldHVybiBuZXcgRUcoaSx0aGlzLl9wYXJlbnRzKX0sc2VsZWN0QWxsOmZ1bmN0aW9uIFVHKHQpeyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD0oZnVuY3Rpb24gZSh0KXtyZXR1cm4gbnVsbD09dD9DajpmdW5jdGlvbigpe3JldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwodCl9fSkodCkpO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsaT1uLmxlbmd0aCxyPVtdLG89W10sYT0wO2E8aTsrK2EpZm9yKHZhciBzLGw9blthXSxjPWwubGVuZ3RoLHU9MDt1PGM7Kyt1KShzPWxbdV0pJiYoci5wdXNoKHQuY2FsbChzLHMuX19kYXRhX18sdSxsKSksby5wdXNoKHMpKTtyZXR1cm4gbmV3IEVHKHIsbyl9LGZpbHRlcjpmdW5jdGlvbiBqRyh0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9KGZ1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF0Y2hlcyh0KX19KSh0KSk7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxpPW4ubGVuZ3RoLHI9bmV3IEFycmF5KGkpLG89MDtvPGk7KytvKWZvcih2YXIgYSxzPW5bb10sbD1zLmxlbmd0aCxjPXJbb109W10sdT0wO3U8bDsrK3UpKGE9c1t1XSkmJnQuY2FsbChhLGEuX19kYXRhX18sdSxzKSYmYy5wdXNoKGEpO3JldHVybiBuZXcgRUcocix0aGlzLl9wYXJlbnRzKX0sZGF0YTpmdW5jdGlvbiBHRyh0LGUpe2lmKCF0KXJldHVybiBmPW5ldyBBcnJheSh0aGlzLnNpemUoKSksdT0tMSx0aGlzLmVhY2goKGZ1bmN0aW9uKHQpe2ZbKyt1XT10fSkpLGY7dmFyIG49ZT9QajpMaixpPXRoaXMuX3BhcmVudHMscj10aGlzLl9ncm91cHM7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PShmdW5jdGlvbiBvKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX0pKHQpKTtmb3IodmFyIGE9ci5sZW5ndGgscz1uZXcgQXJyYXkoYSksbD1uZXcgQXJyYXkoYSksYz1uZXcgQXJyYXkoYSksdT0wO3U8YTsrK3Upe3ZhciBoPWlbdV0sZD1yW3VdLHA9ZC5sZW5ndGgsZj10LmNhbGwoaCxoJiZoLl9fZGF0YV9fLHUsaSksbT1mLmxlbmd0aCxnPWxbdV09bmV3IEFycmF5KG0pLF89c1t1XT1uZXcgQXJyYXkobSk7bihoLGQsZyxfLGNbdV09bmV3IEFycmF5KHApLGYsZSk7Zm9yKHZhciB5LHYsYj0wLHg9MDtiPG07KytiKWlmKHk9Z1tiXSl7Zm9yKGI+PXgmJih4PWIrMSk7ISh2PV9beF0pJiYrK3g8bTspO3kuX25leHQ9dnx8bnVsbH19cmV0dXJuKHM9bmV3IEVHKHMsaSkpLl9lbnRlcj1sLHMuX2V4aXQ9YyxzfSxlbnRlcjpmdW5jdGlvbiBXRygpe3JldHVybiBuZXcgRUcodGhpcy5fZW50ZXJ8fHRoaXMuX2dyb3Vwcy5tYXAoQWopLHRoaXMuX3BhcmVudHMpfSxleGl0OmZ1bmN0aW9uIHFHKCl7cmV0dXJuIG5ldyBFRyh0aGlzLl9leGl0fHx0aGlzLl9ncm91cHMubWFwKEFqKSx0aGlzLl9wYXJlbnRzKX0sam9pbjpmdW5jdGlvbiBZRyh0LGUsbil7dmFyIGk9dGhpcy5lbnRlcigpLHI9dGhpcyxvPXRoaXMuZXhpdCgpO3JldHVybiBpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3QoaSk6aS5hcHBlbmQodCsiIiksbnVsbCE9ZSYmKHI9ZShyKSksbnVsbD09bj9vLnJlbW92ZSgpOm4obyksaSYmcj9pLm1lcmdlKHIpLm9yZGVyKCk6cn0sbWVyZ2U6ZnVuY3Rpb24gWEcodCl7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPXQuX2dyb3VwcyxpPWUubGVuZ3RoLHI9TWF0aC5taW4oaSxuLmxlbmd0aCksbz1uZXcgQXJyYXkoaSksYT0wO2E8cjsrK2EpZm9yKHZhciBzLGw9ZVthXSxjPW5bYV0sdT1sLmxlbmd0aCxoPW9bYV09bmV3IEFycmF5KHUpLGQ9MDtkPHU7KytkKShzPWxbZF18fGNbZF0pJiYoaFtkXT1zKTtmb3IoO2E8aTsrK2Epb1thXT1lW2FdO3JldHVybiBuZXcgRUcobyx0aGlzLl9wYXJlbnRzKX0sb3JkZXI6ZnVuY3Rpb24gJEcoKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLGU9LTEsbj10Lmxlbmd0aDsrK2U8bjspZm9yKHZhciBpLHI9dFtlXSxvPXIubGVuZ3RoLTEsYT1yW29dOy0tbz49MDspKGk9cltvXSkmJihhJiY0XmkuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYSkmJmEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaSxhKSxhPWkpO3JldHVybiB0aGlzfSxzb3J0OmZ1bmN0aW9uIEtHKHQpe2Z1bmN0aW9uIGUoZSxuKXtyZXR1cm4gZSYmbj90KGUuX19kYXRhX18sbi5fX2RhdGFfXyk6IWUtIW59dHx8KHQ9TmopO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsaT1uLmxlbmd0aCxyPW5ldyBBcnJheShpKSxvPTA7bzxpOysrbyl7Zm9yKHZhciBhLHM9bltvXSxsPXMubGVuZ3RoLGM9cltvXT1uZXcgQXJyYXkobCksdT0wO3U8bDsrK3UpKGE9c1t1XSkmJihjW3VdPWEpO2Muc29ydChlKX1yZXR1cm4gbmV3IEVHKHIsdGhpcy5fcGFyZW50cykub3JkZXIoKX0sY2FsbDpmdW5jdGlvbiBaRygpe3ZhciB0PWFyZ3VtZW50c1swXTtyZXR1cm4gYXJndW1lbnRzWzBdPXRoaXMsdC5hcHBseShudWxsLGFyZ3VtZW50cyksdGhpc30sbm9kZXM6ZnVuY3Rpb24gSkcoKXt2YXIgdD1uZXcgQXJyYXkodGhpcy5zaXplKCkpLGU9LTE7cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXt0WysrZV09dGhpc30pKSx0fSxub2RlOmZ1bmN0aW9uIFFHKCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxlPTAsbj10Lmxlbmd0aDtlPG47KytlKWZvcih2YXIgaT10W2VdLHI9MCxvPWkubGVuZ3RoO3I8bzsrK3Ipe3ZhciBhPWlbcl07aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH0sc2l6ZTpmdW5jdGlvbiB0Vygpe3ZhciB0PTA7cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXsrK3R9KSksdH0sZW1wdHk6ZnVuY3Rpb24gZVcoKXtyZXR1cm4hdGhpcy5ub2RlKCl9LGVhY2g6ZnVuY3Rpb24gblcodCl7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPTAsaT1lLmxlbmd0aDtuPGk7KytuKWZvcih2YXIgcixvPWVbbl0sYT0wLHM9by5sZW5ndGg7YTxzOysrYSkocj1vW2FdKSYmdC5jYWxsKHIsci5fX2RhdGFfXyxhLG8pO3JldHVybiB0aGlzfSxhdHRyOmZ1bmN0aW9uIGlXKHQsZSl7dmFyIG49eGoodCk7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXt2YXIgaT10aGlzLm5vZGUoKTtyZXR1cm4gbi5sb2NhbD9pLmdldEF0dHJpYnV0ZU5TKG4uc3BhY2Usbi5sb2NhbCk6aS5nZXRBdHRyaWJ1dGUobil9cmV0dXJuIHRoaXMuZWFjaCgobnVsbD09ZT9uLmxvY2FsP1JqOklqOiJmdW5jdGlvbiI9PXR5cGVvZiBlP24ubG9jYWw/Qmo6RGo6bi5sb2NhbD96ajpPaikobixlKSl9LHN0eWxlOmZ1bmN0aW9uIHJXKHQsZSxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09ZT9GajoiZnVuY3Rpb24iPT10eXBlb2YgZT9VajpWaikodCxlLG51bGw9PW4/IiI6bikpOmpqKHRoaXMubm9kZSgpLHQpfSxwcm9wZXJ0eTpmdW5jdGlvbiBvVyh0LGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKChudWxsPT1lP0dqOiJmdW5jdGlvbiI9PXR5cGVvZiBlP3FqOldqKSh0LGUpKTp0aGlzLm5vZGUoKVt0XX0sY2xhc3NlZDpmdW5jdGlvbiBhVyh0LGUpe3ZhciBuPVlqKHQrIiIpO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciBpPVhqKHRoaXMubm9kZSgpKSxyPS0xLG89bi5sZW5ndGg7KytyPG87KWlmKCFpLmNvbnRhaW5zKG5bcl0pKXJldHVybiExO3JldHVybiEwfXJldHVybiB0aGlzLmVhY2goKCJmdW5jdGlvbiI9PXR5cGVvZiBlP3RHOmU/Smo6UWopKG4sZSkpfSx0ZXh0OmZ1bmN0aW9uIHNXKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChudWxsPT10P2VHOigiZnVuY3Rpb24iPT10eXBlb2YgdD9pRzpuRykodCkpOnRoaXMubm9kZSgpLnRleHRDb250ZW50fSxodG1sOmZ1bmN0aW9uIGxXKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChudWxsPT10P3JHOigiZnVuY3Rpb24iPT10eXBlb2YgdD9hRzpvRykodCkpOnRoaXMubm9kZSgpLmlubmVySFRNTH0scmFpc2U6ZnVuY3Rpb24gY1coKXtyZXR1cm4gdGhpcy5lYWNoKHNHKX0sbG93ZXI6ZnVuY3Rpb24gdVcoKXtyZXR1cm4gdGhpcy5lYWNoKGxHKX0sYXBwZW5kOmZ1bmN0aW9uIGhXKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6TWoodCk7cmV0dXJuIHRoaXMuc2VsZWN0KChmdW5jdGlvbigpe3JldHVybiB0aGlzLmFwcGVuZENoaWxkKGUuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0pKX0saW5zZXJ0OmZ1bmN0aW9uIGRXKHQsZSl7dmFyIG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpNaih0KSxpPW51bGw9PWU/Y0c6ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpUaihlKTtyZXR1cm4gdGhpcy5zZWxlY3QoKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zZXJ0QmVmb3JlKG4uYXBwbHkodGhpcyxhcmd1bWVudHMpLGkuYXBwbHkodGhpcyxhcmd1bWVudHMpfHxudWxsKX0pKX0scmVtb3ZlOmZ1bmN0aW9uIHBXKCl7cmV0dXJuIHRoaXMuZWFjaCh1Ryl9LGNsb25lOmZ1bmN0aW9uIGZXKHQpe3JldHVybiB0aGlzLnNlbGVjdCh0P2RHOmhHKX0sZGF0dW06ZnVuY3Rpb24gbVcodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5wcm9wZXJ0eSgiX19kYXRhX18iLHQpOnRoaXMubm9kZSgpLl9fZGF0YV9ffSxvbjpmdW5jdGlvbiBnVyh0LGUsbil7dmFyIGkscixvPV9HKHQrIiIpLGE9by5sZW5ndGg7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtmb3Iocz1lP3ZHOnlHLG51bGw9PW4mJihuPSExKSxpPTA7aTxhOysraSl0aGlzLmVhY2gocyhvW2ldLGUsbikpO3JldHVybiB0aGlzfXZhciBzPXRoaXMubm9kZSgpLl9fb247aWYocylmb3IodmFyIGwsYz0wLHU9cy5sZW5ndGg7Yzx1OysrYylmb3IoaT0wLGw9c1tjXTtpPGE7KytpKWlmKChyPW9baV0pLnR5cGU9PT1sLnR5cGUmJnIubmFtZT09PWwubmFtZSlyZXR1cm4gbC52YWx1ZX0sZGlzcGF0Y2g6ZnVuY3Rpb24gX1codCxlKXtyZXR1cm4gdGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgZT9TRzp3RykodCxlKSl9fSx6Ry5wcm90b3R5cGUub249ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl8ub24uYXBwbHkodGhpcy5fLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT10aGlzLl8/dGhpczp0fTt2YXIgeVc9e30sdlc9e307ZnVuY3Rpb24gYlcodCl7cmV0dXJuIG5ldyBGdW5jdGlvbigiZCIsInJldHVybiB7Iit0Lm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCkrIjogZFsiK2UrIl0ifSkpLmpvaW4oIiwiKSsifSIpfWZ1bmN0aW9uIHhXKHQpe3ZhciBlPW5ldyBSZWdFeHAoJ1siJyt0KyJcblxyXSIpLG49dC5jaGFyQ29kZUF0KDApO2Z1bmN0aW9uIGkodCxlKXt2YXIgaSxyPVtdLG89dC5sZW5ndGgsYT0wLHM9MCxsPW88PTAsYz0hMTtmdW5jdGlvbiB1KCl7aWYobClyZXR1cm4gdlc7aWYoYylyZXR1cm4gYz0hMSx5Vzt2YXIgZSxpLHI9YTtpZigzND09PXQuY2hhckNvZGVBdChyKSl7Zm9yKDthKys8byYmMzQhPT10LmNoYXJDb2RlQXQoYSl8fDM0PT09dC5jaGFyQ29kZUF0KCsrYSk7KTtyZXR1cm4oZT1hKT49bz9sPSEwOjEwPT09KGk9dC5jaGFyQ29kZUF0KGErKykpP2M9ITA6MTM9PT1pJiYoYz0hMCwxMD09PXQuY2hhckNvZGVBdChhKSYmKythKSx0LnNsaWNlKHIrMSxlLTEpLnJlcGxhY2UoLyIiL2csJyInKX1mb3IoO2E8bzspe2lmKDEwPT09KGk9dC5jaGFyQ29kZUF0KGU9YSsrKSkpYz0hMDtlbHNlIGlmKDEzPT09aSljPSEwLDEwPT09dC5jaGFyQ29kZUF0KGEpJiYrK2E7ZWxzZSBpZihpIT09biljb250aW51ZTtyZXR1cm4gdC5zbGljZShyLGUpfXJldHVybiBsPSEwLHQuc2xpY2UocixvKX1mb3IoMTA9PT10LmNoYXJDb2RlQXQoby0xKSYmLS1vLDEzPT09dC5jaGFyQ29kZUF0KG8tMSkmJi0tbzsoaT11KCkpIT09dlc7KXtmb3IodmFyIGg9W107aSE9PXlXJiZpIT09dlc7KWgucHVzaChpKSxpPXUoKTtlJiZudWxsPT0oaD1lKGgscysrKSl8fHIucHVzaChoKX1yZXR1cm4gcn1mdW5jdGlvbiByKGUpe3JldHVybiBlLm1hcChvKS5qb2luKHQpfWZ1bmN0aW9uIG8odCl7cmV0dXJuIG51bGw9PXQ/IiI6ZS50ZXN0KHQrPSIiKT8nIicrdC5yZXBsYWNlKC8iL2csJyIiJykrJyInOnR9cmV0dXJue3BhcnNlOmZ1bmN0aW9uIGEodCxlKXt2YXIgbixyLG89aSh0LChmdW5jdGlvbih0LGkpe2lmKG4pcmV0dXJuIG4odCxpLTEpO3I9dCxuPWU/KGZ1bmN0aW9uIG8odCxlKXt2YXIgbj1iVyh0KTtyZXR1cm4gZnVuY3Rpb24oaSxyKXtyZXR1cm4gZShuKGkpLHIsdCl9fSkodCxlKTpiVyh0KX0pKTtyZXR1cm4gby5jb2x1bW5zPXJ8fFtdLG99LHBhcnNlUm93czppLGZvcm1hdDpmdW5jdGlvbiBzKGUsbil7cmV0dXJuIG51bGw9PW4mJihuPShmdW5jdGlvbiBpKHQpe3ZhciBlPU9iamVjdC5jcmVhdGUobnVsbCksbj1bXTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXtmb3IodmFyIGkgaW4gdClpIGluIGV8fG4ucHVzaChlW2ldPWkpfSkpLG59KShlKSksW24ubWFwKG8pLmpvaW4odCldLmNvbmNhdChlLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIG4ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbyhlW3RdKX0pKS5qb2luKHQpfSkpKS5qb2luKCJcbiIpfSxmb3JtYXRSb3dzOmZ1bmN0aW9uIGwodCl7cmV0dXJuIHQubWFwKHIpLmpvaW4oIlxuIil9fX12YXIgd1c9eFcoIiwiKSxTVz13Vy5wYXJzZSxNVz13Vy5wYXJzZVJvd3MsRVc9d1cuZm9ybWF0LFRXPXdXLmZvcm1hdFJvd3MsQ1c9eFcoIlx0IiksQVc9Q1cucGFyc2Usa1c9Q1cucGFyc2VSb3dzLExXPUNXLmZvcm1hdCxQVz1DVy5mb3JtYXRSb3dzO2Z1bmN0aW9uIE5XKHQpe3JldHVybigodCo9Mik8PTE/dCp0Oi0tdCooMi10KSsxKS8yfWZ1bmN0aW9uIElXKHQpe3JldHVybigodCo9Mik8PTE/dCp0KnQ6KHQtPTIpKnQqdCsyKS8yfXZhciBSVz0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiBNYXRoLnBvdyh0LGUpfXJldHVybiBlPStlLG4uZXhwb25lbnQ9dCxufSkoMyksT1c9KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gMS1NYXRoLnBvdygxLXQsZSl9cmV0dXJuIGU9K2Usbi5leHBvbmVudD10LG59KSgzKSx6Vz0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybigodCo9Mik8PTE/TWF0aC5wb3codCxlKToyLU1hdGgucG93KDItdCxlKSkvMn1yZXR1cm4gZT0rZSxuLmV4cG9uZW50PXQsbn0pKDMpLERXPU1hdGguUEksQlc9RFcvMjtmdW5jdGlvbiBIVyh0KXtyZXR1cm4oMS1NYXRoLmNvcyhEVyp0KSkvMn1mdW5jdGlvbiBGVyh0KXtyZXR1cm4oKHQqPTIpPD0xP01hdGgucG93KDIsMTAqdC0xMCk6Mi1NYXRoLnBvdygyLDEwLTEwKnQpKS8yfWZ1bmN0aW9uIFZXKHQpe3JldHVybigodCo9Mik8PTE/MS1NYXRoLnNxcnQoMS10KnQpOk1hdGguc3FydCgxLSh0LT0yKSp0KSsxKS8yfXZhciBVVz00LzExLGpXPTcuNTYyNTtmdW5jdGlvbiBHVyh0KXtyZXR1cm4odD0rdCk8VVc/alcqdCp0OnQ8LjcyNzI3MjcyNzI3MjcyNzM/alcqKHQtPS41NDU0NTQ1NDU0NTQ1NDU0KSp0Ky43NTp0PC45MDkwOTA5MDkwOTA5MDkxP2pXKih0LT0uODE4MTgxODE4MTgxODE4MikqdCsuOTM3NTpqVyoodC09Ljk1NDU0NTQ1NDU0NTQ1NDYpKnQrLjk4NDM3NX12YXIgV1c9MS43MDE1OCxxVz0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiB0KnQqKChlKzEpKnQtZSl9cmV0dXJuIGU9K2Usbi5vdmVyc2hvb3Q9dCxufSkoV1cpLFlXPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuLS10KnQqKChlKzEpKnQrZSkrMX1yZXR1cm4gZT0rZSxuLm92ZXJzaG9vdD10LG59KShXVyksWFc9KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0KXtyZXR1cm4oKHQqPTIpPDE/dCp0KigoZSsxKSp0LWUpOih0LT0yKSp0KigoZSsxKSp0K2UpKzIpLzJ9cmV0dXJuIGU9K2Usbi5vdmVyc2hvb3Q9dCxufSkoV1cpLCRXPTIqTWF0aC5QSSxLVz0oZnVuY3Rpb24gdChlLG4pe3ZhciBpPU1hdGguYXNpbigxLyhlPU1hdGgubWF4KDEsZSkpKSoobi89JFcpO2Z1bmN0aW9uIHIodCl7cmV0dXJuIGUqTWF0aC5wb3coMiwxMCotLXQpKk1hdGguc2luKChpLXQpL24pfXJldHVybiByLmFtcGxpdHVkZT1mdW5jdGlvbihlKXtyZXR1cm4gdChlLG4qJFcpfSxyLnBlcmlvZD1mdW5jdGlvbihuKXtyZXR1cm4gdChlLG4pfSxyfSkoMSwuMyksWlc9KGZ1bmN0aW9uIHQoZSxuKXt2YXIgaT1NYXRoLmFzaW4oMS8oZT1NYXRoLm1heCgxLGUpKSkqKG4vPSRXKTtmdW5jdGlvbiByKHQpe3JldHVybiAxLWUqTWF0aC5wb3coMiwtMTAqKHQ9K3QpKSpNYXRoLnNpbigodCtpKS9uKX1yZXR1cm4gci5hbXBsaXR1ZGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSxuKiRXKX0sci5wZXJpb2Q9ZnVuY3Rpb24obil7cmV0dXJuIHQoZSxuKX0scn0pKDEsLjMpLEpXPShmdW5jdGlvbiB0KGUsbil7dmFyIGk9TWF0aC5hc2luKDEvKGU9TWF0aC5tYXgoMSxlKSkpKihuLz0kVyk7ZnVuY3Rpb24gcih0KXtyZXR1cm4oKHQ9Mip0LTEpPDA/ZSpNYXRoLnBvdygyLDEwKnQpKk1hdGguc2luKChpLXQpL24pOjItZSpNYXRoLnBvdygyLC0xMCp0KSpNYXRoLnNpbigoaSt0KS9uKSkvMn1yZXR1cm4gci5hbXBsaXR1ZGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSxuKiRXKX0sci5wZXJpb2Q9ZnVuY3Rpb24obil7cmV0dXJuIHQoZSxuKX0scn0pKDEsLjMpO2Z1bmN0aW9uIFFXKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiB0cSgpe3JldHVybiAxZS02KihNYXRoLnJhbmRvbSgpLS41KX1mdW5jdGlvbiBlcSh0LGUsbixpKXtpZihpc05hTihlKXx8aXNOYU4obikpcmV0dXJuIHQ7dmFyIHIsbyxhLHMsbCxjLHUsaCxkLHA9dC5fcm9vdCxmPXtkYXRhOml9LG09dC5feDAsZz10Ll95MCxfPXQuX3gxLHk9dC5feTE7aWYoIXApcmV0dXJuIHQuX3Jvb3Q9Zix0O2Zvcig7cC5sZW5ndGg7KWlmKChjPWU+PShvPShtK18pLzIpKT9tPW86Xz1vLCh1PW4+PShhPShnK3kpLzIpKT9nPWE6eT1hLHI9cCwhKHA9cFtoPXU8PDF8Y10pKXJldHVybiByW2hdPWYsdDtpZihzPSt0Ll94LmNhbGwobnVsbCxwLmRhdGEpLGw9K3QuX3kuY2FsbChudWxsLHAuZGF0YSksZT09PXMmJm49PT1sKXJldHVybiBmLm5leHQ9cCxyP3JbaF09Zjp0Ll9yb290PWYsdDtkb3tyPXI/cltoXT1uZXcgQXJyYXkoNCk6dC5fcm9vdD1uZXcgQXJyYXkoNCksKGM9ZT49KG89KG0rXykvMikpP209bzpfPW8sKHU9bj49KGE9KGcreSkvMikpP2c9YTp5PWF9d2hpbGUoKGg9dTw8MXxjKT09KGQ9KGw+PWEpPDwxfHM+PW8pKTtyZXR1cm4gcltkXT1wLHJbaF09Zix0fWZ1bmN0aW9uIG5xKHQsZSxuLGkscil7dGhpcy5ub2RlPXQsdGhpcy54MD1lLHRoaXMueTA9bix0aGlzLngxPWksdGhpcy55MT1yfWZ1bmN0aW9uIGlxKHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIHJxKHQpe3JldHVybiB0WzFdfWZ1bmN0aW9uIG9xKHQsZSxuKXt2YXIgaT1uZXcgYXEobnVsbD09ZT9pcTplLG51bGw9PW4/cnE6bixOYU4sTmFOLE5hTixOYU4pO3JldHVybiBudWxsPT10P2k6aS5hZGRBbGwodCl9ZnVuY3Rpb24gYXEodCxlLG4saSxyLG8pe3RoaXMuX3g9dCx0aGlzLl95PWUsdGhpcy5feDA9bix0aGlzLl95MD1pLHRoaXMuX3gxPXIsdGhpcy5feTE9byx0aGlzLl9yb290PXZvaWQgMH1mdW5jdGlvbiBzcSh0KXtmb3IodmFyIGU9e2RhdGE6dC5kYXRhfSxuPWU7dD10Lm5leHQ7KW49bi5uZXh0PXtkYXRhOnQuZGF0YX07cmV0dXJuIGV9dmFyIGxxPW9xLnByb3RvdHlwZT1hcS5wcm90b3R5cGU7ZnVuY3Rpb24gY3EodCl7cmV0dXJuIHQueCt0LnZ4fWZ1bmN0aW9uIHVxKHQpe3JldHVybiB0LnkrdC52eX1scS5jb3B5PWZ1bmN0aW9uKCl7dmFyIHQsZSxuPW5ldyBhcSh0aGlzLl94LHRoaXMuX3ksdGhpcy5feDAsdGhpcy5feTAsdGhpcy5feDEsdGhpcy5feTEpLGk9dGhpcy5fcm9vdDtpZighaSlyZXR1cm4gbjtpZighaS5sZW5ndGgpcmV0dXJuIG4uX3Jvb3Q9c3EoaSksbjtmb3IodD1be3NvdXJjZTppLHRhcmdldDpuLl9yb290PW5ldyBBcnJheSg0KX1dO2k9dC5wb3AoKTspZm9yKHZhciByPTA7cjw0OysrcikoZT1pLnNvdXJjZVtyXSkmJihlLmxlbmd0aD90LnB1c2goe3NvdXJjZTplLHRhcmdldDppLnRhcmdldFtyXT1uZXcgQXJyYXkoNCl9KTppLnRhcmdldFtyXT1zcShlKSk7cmV0dXJuIG59LGxxLmFkZD1mdW5jdGlvbiBocSh0KXt2YXIgZT0rdGhpcy5feC5jYWxsKG51bGwsdCksbj0rdGhpcy5feS5jYWxsKG51bGwsdCk7cmV0dXJuIGVxKHRoaXMuY292ZXIoZSxuKSxlLG4sdCl9LGxxLmFkZEFsbD1mdW5jdGlvbiBkcSh0KXt2YXIgZSxuLGkscixvPXQubGVuZ3RoLGE9bmV3IEFycmF5KG8pLHM9bmV3IEFycmF5KG8pLGw9MS8wLGM9MS8wLHU9LTEvMCxoPS0xLzA7Zm9yKG49MDtuPG87KytuKWlzTmFOKGk9K3RoaXMuX3guY2FsbChudWxsLGU9dFtuXSkpfHxpc05hTihyPSt0aGlzLl95LmNhbGwobnVsbCxlKSl8fChhW25dPWksc1tuXT1yLGk8bCYmKGw9aSksaT51JiYodT1pKSxyPGMmJihjPXIpLHI+aCYmKGg9cikpO2lmKGw+dXx8Yz5oKXJldHVybiB0aGlzO2Zvcih0aGlzLmNvdmVyKGwsYykuY292ZXIodSxoKSxuPTA7bjxvOysrbillcSh0aGlzLGFbbl0sc1tuXSx0W25dKTtyZXR1cm4gdGhpc30sbHEuY292ZXI9ZnVuY3Rpb24gcHEodCxlKXtpZihpc05hTih0PSt0KXx8aXNOYU4oZT0rZSkpcmV0dXJuIHRoaXM7dmFyIG49dGhpcy5feDAsaT10aGlzLl95MCxyPXRoaXMuX3gxLG89dGhpcy5feTE7aWYoaXNOYU4obikpcj0obj1NYXRoLmZsb29yKHQpKSsxLG89KGk9TWF0aC5mbG9vcihlKSkrMTtlbHNle2Zvcih2YXIgYSxzLGw9ci1uLGM9dGhpcy5fcm9vdDtuPnR8fHQ+PXJ8fGk+ZXx8ZT49bzspc3dpdGNoKHM9KGU8aSk8PDF8dDxuLChhPW5ldyBBcnJheSg0KSlbc109YyxjPWEsbCo9MixzKXtjYXNlIDA6cj1uK2wsbz1pK2w7YnJlYWs7Y2FzZSAxOm49ci1sLG89aStsO2JyZWFrO2Nhc2UgMjpyPW4rbCxpPW8tbDticmVhaztjYXNlIDM6bj1yLWwsaT1vLWx9dGhpcy5fcm9vdCYmdGhpcy5fcm9vdC5sZW5ndGgmJih0aGlzLl9yb290PWMpfXJldHVybiB0aGlzLl94MD1uLHRoaXMuX3kwPWksdGhpcy5feDE9cix0aGlzLl95MT1vLHRoaXN9LGxxLmRhdGE9ZnVuY3Rpb24gZnEoKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy52aXNpdCgoZnVuY3Rpb24oZSl7aWYoIWUubGVuZ3RoKWRve3QucHVzaChlLmRhdGEpfXdoaWxlKGU9ZS5uZXh0KX0pKSx0fSxscS5leHRlbnQ9ZnVuY3Rpb24gbXEodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5jb3ZlcigrdFswXVswXSwrdFswXVsxXSkuY292ZXIoK3RbMV1bMF0sK3RbMV1bMV0pOmlzTmFOKHRoaXMuX3gwKT92b2lkIDA6W1t0aGlzLl94MCx0aGlzLl95MF0sW3RoaXMuX3gxLHRoaXMuX3kxXV19LGxxLmZpbmQ9ZnVuY3Rpb24gZ3EodCxlLG4pe3ZhciBpLHIsbyxhLHMsbCxjLHU9dGhpcy5feDAsaD10aGlzLl95MCxkPXRoaXMuX3gxLHA9dGhpcy5feTEsZj1bXSxtPXRoaXMuX3Jvb3Q7Zm9yKG0mJmYucHVzaChuZXcgbnEobSx1LGgsZCxwKSksbnVsbD09bj9uPTEvMDoodT10LW4saD1lLW4sZD10K24scD1lK24sbio9bik7bD1mLnBvcCgpOylpZighKCEobT1sLm5vZGUpfHwocj1sLngwKT5kfHwobz1sLnkwKT5wfHwoYT1sLngxKTx1fHwocz1sLnkxKTxoKSlpZihtLmxlbmd0aCl7dmFyIGc9KHIrYSkvMixfPShvK3MpLzI7Zi5wdXNoKG5ldyBucShtWzNdLGcsXyxhLHMpLG5ldyBucShtWzJdLHIsXyxnLHMpLG5ldyBucShtWzFdLGcsbyxhLF8pLG5ldyBucShtWzBdLHIsbyxnLF8pKSwoYz0oZT49Xyk8PDF8dD49ZykmJihsPWZbZi5sZW5ndGgtMV0sZltmLmxlbmd0aC0xXT1mW2YubGVuZ3RoLTEtY10sZltmLmxlbmd0aC0xLWNdPWwpfWVsc2V7dmFyIHk9dC0rdGhpcy5feC5jYWxsKG51bGwsbS5kYXRhKSx2PWUtK3RoaXMuX3kuY2FsbChudWxsLG0uZGF0YSksYj15Knkrdip2O2lmKGI8bil7dmFyIHg9TWF0aC5zcXJ0KG49Yik7dT10LXgsaD1lLXgsZD10K3gscD1lK3gsaT1tLmRhdGF9fXJldHVybiBpfSxscS5yZW1vdmU9ZnVuY3Rpb24gX3EodCl7aWYoaXNOYU4obz0rdGhpcy5feC5jYWxsKG51bGwsdCkpfHxpc05hTihhPSt0aGlzLl95LmNhbGwobnVsbCx0KSkpcmV0dXJuIHRoaXM7dmFyIGUsbixpLHIsbyxhLHMsbCxjLHUsaCxkLHA9dGhpcy5fcm9vdCxmPXRoaXMuX3gwLG09dGhpcy5feTAsZz10aGlzLl94MSxfPXRoaXMuX3kxO2lmKCFwKXJldHVybiB0aGlzO2lmKHAubGVuZ3RoKWZvcig7Oyl7aWYoKGM9bz49KHM9KGYrZykvMikpP2Y9czpnPXMsKHU9YT49KGw9KG0rXykvMikpP209bDpfPWwsZT1wLCEocD1wW2g9dTw8MXxjXSkpcmV0dXJuIHRoaXM7aWYoIXAubGVuZ3RoKWJyZWFrOyhlW2grMSYzXXx8ZVtoKzImM118fGVbaCszJjNdKSYmKG49ZSxkPWgpfWZvcig7cC5kYXRhIT09dDspaWYoaT1wLCEocD1wLm5leHQpKXJldHVybiB0aGlzO3JldHVybihyPXAubmV4dCkmJmRlbGV0ZSBwLm5leHQsaT8ocj9pLm5leHQ9cjpkZWxldGUgaS5uZXh0LHRoaXMpOmU/KHI/ZVtoXT1yOmRlbGV0ZSBlW2hdLChwPWVbMF18fGVbMV18fGVbMl18fGVbM10pJiZwPT09KGVbM118fGVbMl18fGVbMV18fGVbMF0pJiYhcC5sZW5ndGgmJihuP25bZF09cDp0aGlzLl9yb290PXApLHRoaXMpOih0aGlzLl9yb290PXIsdGhpcyl9LGxxLnJlbW92ZUFsbD1mdW5jdGlvbiB5cSh0KXtmb3IodmFyIGU9MCxuPXQubGVuZ3RoO2U8bjsrK2UpdGhpcy5yZW1vdmUodFtlXSk7cmV0dXJuIHRoaXN9LGxxLnJvb3Q9ZnVuY3Rpb24gdnEoKXtyZXR1cm4gdGhpcy5fcm9vdH0sbHEuc2l6ZT1mdW5jdGlvbiBicSgpe3ZhciB0PTA7cmV0dXJuIHRoaXMudmlzaXQoKGZ1bmN0aW9uKGUpe2lmKCFlLmxlbmd0aClkb3srK3R9d2hpbGUoZT1lLm5leHQpfSkpLHR9LGxxLnZpc2l0PWZ1bmN0aW9uIHhxKHQpe3ZhciBlLG4saSxyLG8sYSxzPVtdLGw9dGhpcy5fcm9vdDtmb3IobCYmcy5wdXNoKG5ldyBucShsLHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSk7ZT1zLnBvcCgpOylpZighdChsPWUubm9kZSxpPWUueDAscj1lLnkwLG89ZS54MSxhPWUueTEpJiZsLmxlbmd0aCl7dmFyIGM9KGkrbykvMix1PShyK2EpLzI7KG49bFszXSkmJnMucHVzaChuZXcgbnEobixjLHUsbyxhKSksKG49bFsyXSkmJnMucHVzaChuZXcgbnEobixpLHUsYyxhKSksKG49bFsxXSkmJnMucHVzaChuZXcgbnEobixjLHIsbyx1KSksKG49bFswXSkmJnMucHVzaChuZXcgbnEobixpLHIsYyx1KSl9cmV0dXJuIHRoaXN9LGxxLnZpc2l0QWZ0ZXI9ZnVuY3Rpb24gd3EodCl7dmFyIGUsbj1bXSxpPVtdO2Zvcih0aGlzLl9yb290JiZuLnB1c2gobmV3IG5xKHRoaXMuX3Jvb3QsdGhpcy5feDAsdGhpcy5feTAsdGhpcy5feDEsdGhpcy5feTEpKTtlPW4ucG9wKCk7KXt2YXIgcj1lLm5vZGU7aWYoci5sZW5ndGgpe3ZhciBvLGE9ZS54MCxzPWUueTAsbD1lLngxLGM9ZS55MSx1PShhK2wpLzIsaD0ocytjKS8yOyhvPXJbMF0pJiZuLnB1c2gobmV3IG5xKG8sYSxzLHUsaCkpLChvPXJbMV0pJiZuLnB1c2gobmV3IG5xKG8sdSxzLGwsaCkpLChvPXJbMl0pJiZuLnB1c2gobmV3IG5xKG8sYSxoLHUsYykpLChvPXJbM10pJiZuLnB1c2gobmV3IG5xKG8sdSxoLGwsYykpfWkucHVzaChlKX1mb3IoO2U9aS5wb3AoKTspdChlLm5vZGUsZS54MCxlLnkwLGUueDEsZS55MSk7cmV0dXJuIHRoaXN9LGxxLng9ZnVuY3Rpb24gU3EodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3g9dCx0aGlzKTp0aGlzLl94fSxscS55PWZ1bmN0aW9uIE1xKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl95PXQsdGhpcyk6dGhpcy5feX07dmFyIEVxPSIkIjtmdW5jdGlvbiBUcSgpe31mdW5jdGlvbiBDcSh0LGUpe3ZhciBuPW5ldyBUcTtpZih0IGluc3RhbmNlb2YgVHEpdC5lYWNoKChmdW5jdGlvbih0LGUpe24uc2V0KGUsdCl9KSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXt2YXIgaSxyPS0xLG89dC5sZW5ndGg7aWYobnVsbD09ZSlmb3IoOysrcjxvOyluLnNldChyLHRbcl0pO2Vsc2UgZm9yKDsrK3I8bzspbi5zZXQoZShpPXRbcl0scix0KSxpKX1lbHNlIGlmKHQpZm9yKHZhciBhIGluIHQpbi5zZXQoYSx0W2FdKTtyZXR1cm4gbn1mdW5jdGlvbiBBcSgpe31UcS5wcm90b3R5cGU9Q3EucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpUcSxoYXM6ZnVuY3Rpb24odCl7cmV0dXJuIEVxK3QgaW4gdGhpc30sZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzW0VxK3RdfSxzZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpc1tFcSt0XT1lLHRoaXN9LHJlbW92ZTpmdW5jdGlvbih0KXt2YXIgZT1FcSt0O3JldHVybiBlIGluIHRoaXMmJmRlbGV0ZSB0aGlzW2VdfSxjbGVhcjpmdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzKXRbMF09PT1FcSYmZGVsZXRlIHRoaXNbdF19LGtleXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIGUgaW4gdGhpcyllWzBdPT09RXEmJnQucHVzaChlLnNsaWNlKDEpKTtyZXR1cm4gdH0sdmFsdWVzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PUVxJiZ0LnB1c2godGhpc1tlXSk7cmV0dXJuIHR9LGVudHJpZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIGUgaW4gdGhpcyllWzBdPT09RXEmJnQucHVzaCh7a2V5OmUuc2xpY2UoMSksdmFsdWU6dGhpc1tlXX0pO3JldHVybiB0fSxzaXplOmZ1bmN0aW9uKCl7dmFyIHQ9MDtmb3IodmFyIGUgaW4gdGhpcyllWzBdPT09RXEmJisrdDtyZXR1cm4gdH0sZW1wdHk6ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcylpZih0WzBdPT09RXEpcmV0dXJuITE7cmV0dXJuITB9LGVhY2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PUVxJiZ0KHRoaXNbZV0sZS5zbGljZSgxKSx0aGlzKX19O3ZhciBrcT1DcS5wcm90b3R5cGU7ZnVuY3Rpb24gTHEodCl7cmV0dXJuIHQuaW5kZXh9ZnVuY3Rpb24gUHEodCxlKXt2YXIgbj10LmdldChlKTtpZighbil0aHJvdyBuZXcgRXJyb3IoIm1pc3Npbmc6ICIrZSk7cmV0dXJuIG59QXEucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpBcSxoYXM6a3EuaGFzLGFkZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpc1tFcSsodCs9IiIpXT10LHRoaXN9LHJlbW92ZTprcS5yZW1vdmUsY2xlYXI6a3EuY2xlYXIsdmFsdWVzOmtxLmtleXMsc2l6ZTprcS5zaXplLGVtcHR5OmtxLmVtcHR5LGVhY2g6a3EuZWFjaH07dmFyIE5xPXt2YWx1ZTpmdW5jdGlvbigpe319O2Z1bmN0aW9uIElxKCl7Zm9yKHZhciB0LGU9MCxuPWFyZ3VtZW50cy5sZW5ndGgsaT17fTtlPG47KytlKXtpZighKHQ9YXJndW1lbnRzW2VdKyIiKXx8dCBpbiBpfHwvW1xzLl0vLnRlc3QodCkpdGhyb3cgbmV3IEVycm9yKCJpbGxlZ2FsIHR5cGU6ICIrdCk7aVt0XT1bXX1yZXR1cm4gbmV3IFJxKGkpfWZ1bmN0aW9uIFJxKHQpe3RoaXMuXz10fWZ1bmN0aW9uIE9xKHQsZSl7cmV0dXJuIHQudHJpbSgpLnNwbGl0KC9efFxzKy8pLm1hcCgoZnVuY3Rpb24odCl7dmFyIG49IiIsaT10LmluZGV4T2YoIi4iKTtpZihpPj0wJiYobj10LnNsaWNlKGkrMSksdD10LnNsaWNlKDAsaSkpLHQmJiFlLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO3JldHVybnt0eXBlOnQsbmFtZTpufX0pKX1mdW5jdGlvbiB6cSh0LGUpe2Zvcih2YXIgbixpPTAscj10Lmxlbmd0aDtpPHI7KytpKWlmKChuPXRbaV0pLm5hbWU9PT1lKXJldHVybiBuLnZhbHVlfWZ1bmN0aW9uIERxKHQsZSxuKXtmb3IodmFyIGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpaWYodFtpXS5uYW1lPT09ZSl7dFtpXT1OcSx0PXQuc2xpY2UoMCxpKS5jb25jYXQodC5zbGljZShpKzEpKTticmVha31yZXR1cm4gbnVsbCE9biYmdC5wdXNoKHtuYW1lOmUsdmFsdWU6bn0pLHR9UnEucHJvdG90eXBlPUlxLnByb3RvdHlwZT17Y29uc3RydWN0b3I6UnEsb246ZnVuY3Rpb24odCxlKXt2YXIgbixpPXRoaXMuXyxyPU9xKHQrIiIsaSksbz0tMSxhPXIubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7aWYobnVsbCE9ZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNhbGxiYWNrOiAiK2UpO2Zvcig7KytvPGE7KWlmKG49KHQ9cltvXSkudHlwZSlpW25dPURxKGlbbl0sdC5uYW1lLGUpO2Vsc2UgaWYobnVsbD09ZSlmb3IobiBpbiBpKWlbbl09RHEoaVtuXSx0Lm5hbWUsbnVsbCk7cmV0dXJuIHRoaXN9Zm9yKDsrK288YTspaWYoKG49KHQ9cltvXSkudHlwZSkmJihuPXpxKGlbbl0sdC5uYW1lKSkpcmV0dXJuIG59LGNvcHk6ZnVuY3Rpb24oKXt2YXIgdD17fSxlPXRoaXMuXztmb3IodmFyIG4gaW4gZSl0W25dPWVbbl0uc2xpY2UoKTtyZXR1cm4gbmV3IFJxKHQpfSxjYWxsOmZ1bmN0aW9uKHQsZSl7aWYoKG49YXJndW1lbnRzLmxlbmd0aC0yKT4wKWZvcih2YXIgbixpLHI9bmV3IEFycmF5KG4pLG89MDtvPG47KytvKXJbb109YXJndW1lbnRzW28rMl07aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtmb3Iobz0wLG49KGk9dGhpcy5fW3RdKS5sZW5ndGg7bzxuOysrbylpW29dLnZhbHVlLmFwcGx5KGUscil9LGFwcGx5OmZ1bmN0aW9uKHQsZSxuKXtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO2Zvcih2YXIgaT10aGlzLl9bdF0scj0wLG89aS5sZW5ndGg7cjxvOysrcilpW3JdLnZhbHVlLmFwcGx5KGUsbil9fTt2YXIgQnEsSHEsRnE9MCxWcT0wLFVxPTAsanE9MCxHcT0wLFdxPTAscXE9Im9iamVjdCI9PXR5cGVvZiBwZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlOkRhdGUsWXE9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6ZnVuY3Rpb24odCl7c2V0VGltZW91dCh0LDE3KX07ZnVuY3Rpb24gWHEoKXtyZXR1cm4gR3F8fChZcSgkcSksR3E9cXEubm93KCkrV3EpfWZ1bmN0aW9uICRxKCl7R3E9MH1mdW5jdGlvbiBLcSgpe3RoaXMuX2NhbGw9dGhpcy5fdGltZT10aGlzLl9uZXh0PW51bGx9ZnVuY3Rpb24gWnEodCxlLG4pe3ZhciBpPW5ldyBLcTtyZXR1cm4gaS5yZXN0YXJ0KHQsZSxuKSxpfWZ1bmN0aW9uIEpxKCl7R3E9KGpxPXFxLm5vdygpKStXcSxGcT1WcT0wO3RyeXshKGZ1bmN0aW9uIHQoKXtYcSgpLCsrRnE7Zm9yKHZhciB0LGU9QnE7ZTspKHQ9R3EtZS5fdGltZSk+PTAmJmUuX2NhbGwuY2FsbChudWxsLHQpLGU9ZS5fbmV4dDstLUZxfSkoKX1maW5hbGx5e0ZxPTAsKGZ1bmN0aW9uIGUoKXt2YXIgdCxlLG49QnEsaT0xLzA7Zm9yKDtuOyluLl9jYWxsPyhpPm4uX3RpbWUmJihpPW4uX3RpbWUpLHQ9bixuPW4uX25leHQpOihlPW4uX25leHQsbi5fbmV4dD1udWxsLG49dD90Ll9uZXh0PWU6QnE9ZSk7SHE9dCx0WShpKX0pKCksR3E9MH19ZnVuY3Rpb24gUXEoKXt2YXIgdD1xcS5ub3coKSxlPXQtanE7ZT4xZTMmJihXcS09ZSxqcT10KX1mdW5jdGlvbiB0WSh0KXtGcXx8KFZxJiYoVnE9Y2xlYXJUaW1lb3V0KFZxKSksdC1HcT4yND8odDwxLzAmJihWcT1zZXRUaW1lb3V0KEpxLHQtcXEubm93KCktV3EpKSxVcSYmKFVxPWNsZWFySW50ZXJ2YWwoVXEpKSk6KFVxfHwoanE9cXEubm93KCksVXE9c2V0SW50ZXJ2YWwoUXEsMWUzKSksRnE9MSxZcShKcSkpKX1mdW5jdGlvbiBlWSh0KXtyZXR1cm4gdC54fWZ1bmN0aW9uIG5ZKHQpe3JldHVybiB0Lnl9S3EucHJvdG90eXBlPVpxLnByb3RvdHlwZT17Y29uc3RydWN0b3I6S3EscmVzdGFydDpmdW5jdGlvbih0LGUsbil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiY2FsbGJhY2sgaXMgbm90IGEgZnVuY3Rpb24iKTtuPShudWxsPT1uP1hxKCk6K24pKyhudWxsPT1lPzA6K2UpLHRoaXMuX25leHR8fEhxPT09dGhpc3x8KEhxP0hxLl9uZXh0PXRoaXM6QnE9dGhpcyxIcT10aGlzKSx0aGlzLl9jYWxsPXQsdGhpcy5fdGltZT1uLHRZKCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLl9jYWxsJiYodGhpcy5fY2FsbD1udWxsLHRoaXMuX3RpbWU9MS8wLHRZKCkpfX07dmFyIGlZLHJZPU1hdGguUEkqKDMtTWF0aC5zcXJ0KDUpKTtmdW5jdGlvbiBvWSh0LGUpe2lmKChuPSh0PWU/dC50b0V4cG9uZW50aWFsKGUtMSk6dC50b0V4cG9uZW50aWFsKCkpLmluZGV4T2YoImUiKSk8MClyZXR1cm4gbnVsbDt2YXIgbixpPXQuc2xpY2UoMCxuKTtyZXR1cm5baS5sZW5ndGg+MT9pWzBdK2kuc2xpY2UoMik6aSwrdC5zbGljZShuKzEpXX1mdW5jdGlvbiBhWSh0KXtyZXR1cm4odD1vWShNYXRoLmFicyh0KSkpP3RbMV06TmFOfWZ1bmN0aW9uIHNZKHQsZSl7dmFyIG49b1kodCxlKTtpZighbilyZXR1cm4gdCsiIjt2YXIgaT1uWzBdLHI9blsxXTtyZXR1cm4gcjwwPyIwLiIrbmV3IEFycmF5KC1yKS5qb2luKCIwIikraTppLmxlbmd0aD5yKzE/aS5zbGljZSgwLHIrMSkrIi4iK2kuc2xpY2UocisxKTppK25ldyBBcnJheShyLWkubGVuZ3RoKzIpLmpvaW4oIjAiKX12YXIgbFk9eyIiOmZ1bmN0aW9uIGNZKHQsZSl7dDpmb3IodmFyIG4saT0odD10LnRvUHJlY2lzaW9uKGUpKS5sZW5ndGgscj0xLG89LTE7cjxpOysrcilzd2l0Y2godFtyXSl7Y2FzZSIuIjpvPW49cjticmVhaztjYXNlIjAiOjA9PT1vJiYobz1yKSxuPXI7YnJlYWs7Y2FzZSJlIjpicmVhayB0O2RlZmF1bHQ6bz4wJiYobz0wKX1yZXR1cm4gbz4wP3Quc2xpY2UoMCxvKSt0LnNsaWNlKG4rMSk6dH0sIiUiOmZ1bmN0aW9uKHQsZSl7cmV0dXJuKDEwMCp0KS50b0ZpeGVkKGUpfSxiOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDIpfSxjOmZ1bmN0aW9uKHQpe3JldHVybiB0KyIifSxkOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDEwKX0sZTpmdW5jdGlvbih0LGUpe3JldHVybiB0LnRvRXhwb25lbnRpYWwoZSl9LGY6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50b0ZpeGVkKGUpfSxnOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudG9QcmVjaXNpb24oZSl9LG86ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoOCl9LHA6ZnVuY3Rpb24odCxlKXtyZXR1cm4gc1koMTAwKnQsZSl9LHI6c1ksczpmdW5jdGlvbiB1WSh0LGUpe3ZhciBuPW9ZKHQsZSk7aWYoIW4pcmV0dXJuIHQrIiI7dmFyIGk9blswXSxyPW5bMV0sbz1yLShpWT0zKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihyLzMpKSkpKzEsYT1pLmxlbmd0aDtyZXR1cm4gbz09PWE/aTpvPmE/aStuZXcgQXJyYXkoby1hKzEpLmpvaW4oIjAiKTpvPjA/aS5zbGljZSgwLG8pKyIuIitpLnNsaWNlKG8pOiIwLiIrbmV3IEFycmF5KDEtbykuam9pbigiMCIpK29ZKHQsTWF0aC5tYXgoMCxlK28tMSkpWzBdfSxYOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfSx4OmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDE2KX19LGhZPS9eKD86KC4pPyhbPD49Xl0pKT8oWytcLVwoIF0pPyhbJCNdKT8oMCk/KFxkKyk/KCwpPyhcLlxkKyk/KFthLXolXSk/JC9pO2Z1bmN0aW9uIGRZKHQpe3JldHVybiBuZXcgcFkodCl9ZnVuY3Rpb24gcFkodCl7aWYoIShlPWhZLmV4ZWModCkpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBmb3JtYXQ6ICIrdCk7dmFyIGUsbj1lWzFdfHwiICIsaT1lWzJdfHwiPiIscj1lWzNdfHwiLSIsbz1lWzRdfHwiIixhPSEhZVs1XSxzPWVbNl0mJitlWzZdLGw9ISFlWzddLGM9ZVs4XSYmK2VbOF0uc2xpY2UoMSksdT1lWzldfHwiIjsibiI9PT11PyhsPSEwLHU9ImciKTpsWVt1XXx8KHU9IiIpLChhfHwiMCI9PT1uJiYiPSI9PT1pKSYmKGE9ITAsbj0iMCIsaT0iPSIpLHRoaXMuZmlsbD1uLHRoaXMuYWxpZ249aSx0aGlzLnNpZ249cix0aGlzLnN5bWJvbD1vLHRoaXMuemVybz1hLHRoaXMud2lkdGg9cyx0aGlzLmNvbW1hPWwsdGhpcy5wcmVjaXNpb249Yyx0aGlzLnR5cGU9dX1mdW5jdGlvbiBmWSh0KXtyZXR1cm4gdH1kWS5wcm90b3R5cGU9cFkucHJvdG90eXBlLHBZLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbGwrdGhpcy5hbGlnbit0aGlzLnNpZ24rdGhpcy5zeW1ib2wrKHRoaXMuemVybz8iMCI6IiIpKyhudWxsPT10aGlzLndpZHRoPyIiOk1hdGgubWF4KDEsMHx0aGlzLndpZHRoKSkrKHRoaXMuY29tbWE/IiwiOiIiKSsobnVsbD09dGhpcy5wcmVjaXNpb24/IiI6Ii4iK01hdGgubWF4KDAsMHx0aGlzLnByZWNpc2lvbikpK3RoaXMudHlwZX07dmFyIG1ZLGdZLF9ZLHlZPVsieSIsInoiLCJhIiwiZiIsInAiLCJuIiwiwrUiLCJtIiwiIiwiayIsIk0iLCJHIiwiVCIsIlAiLCJFIiwiWiIsIlkiXTtmdW5jdGlvbiB2WSh0KXt2YXIgZT10Lmdyb3VwaW5nJiZ0LnRob3VzYW5kcz8oZnVuY3Rpb24gbih0LGUpe3JldHVybiBmdW5jdGlvbihuLGkpe2Zvcih2YXIgcj1uLmxlbmd0aCxvPVtdLGE9MCxzPXRbMF0sbD0wO3I+MCYmcz4wJiYobCtzKzE+aSYmKHM9TWF0aC5tYXgoMSxpLWwpKSxvLnB1c2gobi5zdWJzdHJpbmcoci09cyxyK3MpKSwhKChsKz1zKzEpPmkpKTspcz10W2E9KGErMSkldC5sZW5ndGhdO3JldHVybiBvLnJldmVyc2UoKS5qb2luKGUpfX0pKHQuZ3JvdXBpbmcsdC50aG91c2FuZHMpOmZZLGk9dC5jdXJyZW5jeSxyPXQuZGVjaW1hbCxvPXQubnVtZXJhbHM/KGZ1bmN0aW9uIGEodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoL1swLTldL2csKGZ1bmN0aW9uKGUpe3JldHVybiB0WytlXX0pKX19KSh0Lm51bWVyYWxzKTpmWSxzPXQucGVyY2VudHx8IiUiO2Z1bmN0aW9uIGwodCl7dmFyIG49KHQ9ZFkodCkpLmZpbGwsYT10LmFsaWduLGw9dC5zaWduLGM9dC5zeW1ib2wsdT10Lnplcm8saD10LndpZHRoLGQ9dC5jb21tYSxwPXQucHJlY2lzaW9uLGY9dC50eXBlLG09IiQiPT09Yz9pWzBdOiIjIj09PWMmJi9bYm94WF0vLnRlc3QoZik/IjAiK2YudG9Mb3dlckNhc2UoKToiIixnPSIkIj09PWM/aVsxXTovWyVwXS8udGVzdChmKT9zOiIiLF89bFlbZl0seT0hZnx8L1tkZWZncHJzJV0vLnRlc3QoZik7ZnVuY3Rpb24gdih0KXt2YXIgaSxzLGMsdj1tLGI9ZztpZigiYyI9PT1mKWI9Xyh0KStiLHQ9IiI7ZWxzZXt2YXIgeD0odD0rdCk8MDtpZih0PV8oTWF0aC5hYnModCkscCkseCYmMD09K3QmJih4PSExKSx2PSh4PyIoIj09PWw/bDoiLSI6Ii0iPT09bHx8IigiPT09bD8iIjpsKSt2LGI9KCJzIj09PWY/eVlbOCtpWS8zXToiIikrYisoeCYmIigiPT09bD8iKSI6IiIpLHkpZm9yKGk9LTEscz10Lmxlbmd0aDsrK2k8czspaWYoNDg+KGM9dC5jaGFyQ29kZUF0KGkpKXx8Yz41Nyl7Yj0oNDY9PT1jP3IrdC5zbGljZShpKzEpOnQuc2xpY2UoaSkpK2IsdD10LnNsaWNlKDAsaSk7YnJlYWt9fWQmJiF1JiYodD1lKHQsMS8wKSk7dmFyIHc9di5sZW5ndGgrdC5sZW5ndGgrYi5sZW5ndGgsUz13PGg/bmV3IEFycmF5KGgtdysxKS5qb2luKG4pOiIiO3N3aXRjaChkJiZ1JiYodD1lKFMrdCxTLmxlbmd0aD9oLWIubGVuZ3RoOjEvMCksUz0iIiksYSl7Y2FzZSI8Ijp0PXYrdCtiK1M7YnJlYWs7Y2FzZSI9Ijp0PXYrUyt0K2I7YnJlYWs7Y2FzZSJeIjp0PVMuc2xpY2UoMCx3PVMubGVuZ3RoPj4xKSt2K3QrYitTLnNsaWNlKHcpO2JyZWFrO2RlZmF1bHQ6dD1TK3YrdCtifXJldHVybiBvKHQpfXJldHVybiBwPW51bGw9PXA/Zj82OjEyOi9bZ3Byc10vLnRlc3QoZik/TWF0aC5tYXgoMSxNYXRoLm1pbigyMSxwKSk6TWF0aC5tYXgoMCxNYXRoLm1pbigyMCxwKSksdi50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0KyIifSx2fXJldHVybntmb3JtYXQ6bCxmb3JtYXRQcmVmaXg6ZnVuY3Rpb24gYyh0LGUpe3ZhciBuPWwoKCh0PWRZKHQpKS50eXBlPSJmIix0KSksaT0zKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihhWShlKS8zKSkpLHI9TWF0aC5wb3coMTAsLWkpLG89eVlbOCtpLzNdO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbihyKnQpK299fX19ZnVuY3Rpb24gYlkodCl7cmV0dXJuIG1ZPXZZKHQpLGdZPW1ZLmZvcm1hdCxfWT1tWS5mb3JtYXRQcmVmaXgsbVl9ZnVuY3Rpb24geFkoKXtyZXR1cm4gbmV3IHdZfWZ1bmN0aW9uIHdZKCl7dGhpcy5yZXNldCgpfWJZKHtkZWNpbWFsOiIuIix0aG91c2FuZHM6IiwiLGdyb3VwaW5nOlszXSxjdXJyZW5jeTpbIiQiLCIiXX0pLHdZLnByb3RvdHlwZT17Y29uc3RydWN0b3I6d1kscmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLnM9dGhpcy50PTB9LGFkZDpmdW5jdGlvbih0KXtNWShTWSx0LHRoaXMudCksTVkodGhpcyxTWS5zLHRoaXMucyksdGhpcy5zP3RoaXMudCs9U1kudDp0aGlzLnM9U1kudH0sdmFsdWVPZjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN9fTt2YXIgU1k9bmV3IHdZO2Z1bmN0aW9uIE1ZKHQsZSxuKXt2YXIgaT10LnM9ZStuLHI9aS1lO3QudD1lLShpLXIpKyhuLXIpfXZhciBFWT0xZS02LFRZPU1hdGguUEksQ1k9VFkvMixBWT1UWS80LGtZPTIqVFksTFk9MTgwL1RZLFBZPVRZLzE4MCxOWT1NYXRoLmFicyxJWT1NYXRoLmF0YW4sUlk9TWF0aC5hdGFuMixPWT1NYXRoLmNvcyx6WT1NYXRoLmNlaWwsRFk9TWF0aC5leHAsQlk9TWF0aC5sb2csSFk9TWF0aC5wb3csRlk9TWF0aC5zaW4sVlk9TWF0aC5zaWdufHxmdW5jdGlvbih0KXtyZXR1cm4gdD4wPzE6dDwwPy0xOjB9LFVZPU1hdGguc3FydCxqWT1NYXRoLnRhbjtmdW5jdGlvbiBHWSh0KXtyZXR1cm4gdD4xPzA6dDwtMT9UWTpNYXRoLmFjb3ModCl9ZnVuY3Rpb24gV1kodCl7cmV0dXJuIHQ+MT9DWTp0PC0xPy1DWTpNYXRoLmFzaW4odCl9ZnVuY3Rpb24gcVkodCl7cmV0dXJuKHQ9RlkodC8yKSkqdH1mdW5jdGlvbiBZWSgpe31mdW5jdGlvbiBYWSh0LGUpe3QmJktZLmhhc093blByb3BlcnR5KHQudHlwZSkmJktZW3QudHlwZV0odCxlKX12YXIgJFk9e0ZlYXR1cmU6ZnVuY3Rpb24odCxlKXtYWSh0Lmdlb21ldHJ5LGUpfSxGZWF0dXJlQ29sbGVjdGlvbjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LmZlYXR1cmVzLGk9LTEscj1uLmxlbmd0aDsrK2k8cjspWFkobltpXS5nZW9tZXRyeSxlKX19LEtZPXtTcGhlcmU6ZnVuY3Rpb24odCxlKXtlLnNwaGVyZSgpfSxQb2ludDpmdW5jdGlvbih0LGUpe2UucG9pbnQoKHQ9dC5jb29yZGluYXRlcylbMF0sdFsxXSx0WzJdKX0sTXVsdGlQb2ludDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LmNvb3JkaW5hdGVzLGk9LTEscj1uLmxlbmd0aDsrK2k8cjspZS5wb2ludCgodD1uW2ldKVswXSx0WzFdLHRbMl0pfSxMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsZSl7WlkodC5jb29yZGluYXRlcyxlLDApfSxNdWx0aUxpbmVTdHJpbmc6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC5jb29yZGluYXRlcyxpPS0xLHI9bi5sZW5ndGg7KytpPHI7KVpZKG5baV0sZSwwKX0sUG9seWdvbjpmdW5jdGlvbih0LGUpe0pZKHQuY29vcmRpbmF0ZXMsZSl9LE11bHRpUG9seWdvbjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LmNvb3JkaW5hdGVzLGk9LTEscj1uLmxlbmd0aDsrK2k8cjspSlkobltpXSxlKX0sR2VvbWV0cnlDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuZ2VvbWV0cmllcyxpPS0xLHI9bi5sZW5ndGg7KytpPHI7KVhZKG5baV0sZSl9fTtmdW5jdGlvbiBaWSh0LGUsbil7dmFyIGkscj0tMSxvPXQubGVuZ3RoLW47Zm9yKGUubGluZVN0YXJ0KCk7KytyPG87KWUucG9pbnQoKGk9dFtyXSlbMF0saVsxXSxpWzJdKTtlLmxpbmVFbmQoKX1mdW5jdGlvbiBKWSh0LGUpe3ZhciBuPS0xLGk9dC5sZW5ndGg7Zm9yKGUucG9seWdvblN0YXJ0KCk7KytuPGk7KVpZKHRbbl0sZSwxKTtlLnBvbHlnb25FbmQoKX1mdW5jdGlvbiBRWSh0LGUpe3QmJiRZLmhhc093blByb3BlcnR5KHQudHlwZSk/JFlbdC50eXBlXSh0LGUpOlhZKHQsZSl9dmFyIHRYLGVYLG5YLGlYLHJYLG9YPXhZKCksYVg9eFkoKSxzWD17cG9pbnQ6WVksbGluZVN0YXJ0OllZLGxpbmVFbmQ6WVkscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7b1gucmVzZXQoKSxzWC5saW5lU3RhcnQ9bFgsc1gubGluZUVuZD1jWH0scG9seWdvbkVuZDpmdW5jdGlvbigpe3ZhciB0PStvWDthWC5hZGQodDwwP2tZK3Q6dCksdGhpcy5saW5lU3RhcnQ9dGhpcy5saW5lRW5kPXRoaXMucG9pbnQ9WVl9LHNwaGVyZTpmdW5jdGlvbigpe2FYLmFkZChrWSl9fTtmdW5jdGlvbiBsWCgpe3NYLnBvaW50PXVYfWZ1bmN0aW9uIGNYKCl7aFgodFgsZVgpfWZ1bmN0aW9uIHVYKHQsZSl7c1gucG9pbnQ9aFgsdFg9dCxlWD1lLG5YPXQqPVBZLGlYPU9ZKGU9KGUqPVBZKS8yK0FZKSxyWD1GWShlKX1mdW5jdGlvbiBoWCh0LGUpe3ZhciBuPSh0Kj1QWSktblgsaT1uPj0wPzE6LTEscj1pKm4sbz1PWShlPShlKj1QWSkvMitBWSksYT1GWShlKSxzPXJYKmEsbD1pWCpvK3MqT1kociksYz1zKmkqRlkocik7b1guYWRkKFJZKGMsbCkpLG5YPXQsaVg9byxyWD1hfWZ1bmN0aW9uIGRYKHQpe3JldHVybltSWSh0WzFdLHRbMF0pLFdZKHRbMl0pXX1mdW5jdGlvbiBwWCh0KXt2YXIgZT10WzBdLG49dFsxXSxpPU9ZKG4pO3JldHVybltpKk9ZKGUpLGkqRlkoZSksRlkobildfWZ1bmN0aW9uIGZYKHQsZSl7cmV0dXJuIHRbMF0qZVswXSt0WzFdKmVbMV0rdFsyXSplWzJdfWZ1bmN0aW9uIG1YKHQsZSl7cmV0dXJuW3RbMV0qZVsyXS10WzJdKmVbMV0sdFsyXSplWzBdLXRbMF0qZVsyXSx0WzBdKmVbMV0tdFsxXSplWzBdXX1mdW5jdGlvbiBnWCh0LGUpe3RbMF0rPWVbMF0sdFsxXSs9ZVsxXSx0WzJdKz1lWzJdfWZ1bmN0aW9uIF9YKHQsZSl7cmV0dXJuW3RbMF0qZSx0WzFdKmUsdFsyXSplXX1mdW5jdGlvbiB5WCh0KXt2YXIgZT1VWSh0WzBdKnRbMF0rdFsxXSp0WzFdK3RbMl0qdFsyXSk7dFswXS89ZSx0WzFdLz1lLHRbMl0vPWV9dmFyIHZYLGJYLHhYLHdYLFNYLE1YLEVYLFRYLENYLEFYLGtYLExYLFBYLE5YLElYLFJYLE9YLHpYLERYLEJYLEhYLEZYLFZYLFVYLGpYLEdYLFdYPXhZKCkscVg9e3BvaW50OllYLGxpbmVTdGFydDokWCxsaW5lRW5kOktYLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3FYLnBvaW50PVpYLHFYLmxpbmVTdGFydD1KWCxxWC5saW5lRW5kPVFYLFdYLnJlc2V0KCksc1gucG9seWdvblN0YXJ0KCl9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtzWC5wb2x5Z29uRW5kKCkscVgucG9pbnQ9WVgscVgubGluZVN0YXJ0PSRYLHFYLmxpbmVFbmQ9S1gsb1g8MD8odlg9LSh4WD0xODApLGJYPS0od1g9OTApKTpXWD5FWT93WD05MDpXWDwtMWUtNiYmKGJYPS05MCksQVhbMF09dlgsQVhbMV09eFh9fTtmdW5jdGlvbiBZWCh0LGUpe0NYLnB1c2goQVg9W3ZYPXQseFg9dF0pLGU8YlgmJihiWD1lKSxlPndYJiYod1g9ZSl9ZnVuY3Rpb24gWFgodCxlKXt2YXIgbj1wWChbdCpQWSxlKlBZXSk7aWYoVFgpe3ZhciBpPW1YKFRYLG4pLHI9bVgoW2lbMV0sLWlbMF0sMF0saSk7eVgocikscj1kWChyKTt2YXIgbyxhPXQtU1gscz1hPjA/MTotMSxsPXJbMF0qTFkqcyxjPU5ZKGEpPjE4MDtjXihzKlNYPGwmJmw8cyp0KT8obz1yWzFdKkxZKT53WCYmKHdYPW8pOmNeKHMqU1g8KGw9KGwrMzYwKSUzNjAtMTgwKSYmbDxzKnQpPyhvPS1yWzFdKkxZKTxiWCYmKGJYPW8pOihlPGJYJiYoYlg9ZSksZT53WCYmKHdYPWUpKSxjP3Q8U1g/dCQodlgsdCk+dCQodlgseFgpJiYoeFg9dCk6dCQodCx4WCk+dCQodlgseFgpJiYodlg9dCk6eFg+PXZYPyh0PHZYJiYodlg9dCksdD54WCYmKHhYPXQpKTp0PlNYP3QkKHZYLHQpPnQkKHZYLHhYKSYmKHhYPXQpOnQkKHQseFgpPnQkKHZYLHhYKSYmKHZYPXQpfWVsc2UgQ1gucHVzaChBWD1bdlg9dCx4WD10XSk7ZTxiWCYmKGJYPWUpLGU+d1gmJih3WD1lKSxUWD1uLFNYPXR9ZnVuY3Rpb24gJFgoKXtxWC5wb2ludD1YWH1mdW5jdGlvbiBLWCgpe0FYWzBdPXZYLEFYWzFdPXhYLHFYLnBvaW50PVlYLFRYPW51bGx9ZnVuY3Rpb24gWlgodCxlKXtpZihUWCl7dmFyIG49dC1TWDtXWC5hZGQoTlkobik+MTgwP24rKG4+MD8zNjA6LTM2MCk6bil9ZWxzZSBNWD10LEVYPWU7c1gucG9pbnQodCxlKSxYWCh0LGUpfWZ1bmN0aW9uIEpYKCl7c1gubGluZVN0YXJ0KCl9ZnVuY3Rpb24gUVgoKXtaWChNWCxFWCksc1gubGluZUVuZCgpLE5ZKFdYKT5FWSYmKHZYPS0oeFg9MTgwKSksQVhbMF09dlgsQVhbMV09eFgsVFg9bnVsbH1mdW5jdGlvbiB0JCh0LGUpe3JldHVybihlLT10KTwwP2UrMzYwOmV9ZnVuY3Rpb24gZSQodCxlKXtyZXR1cm4gdFswXS1lWzBdfWZ1bmN0aW9uIG4kKHQsZSl7cmV0dXJuIHRbMF08PXRbMV0/dFswXTw9ZSYmZTw9dFsxXTplPHRbMF18fHRbMV08ZX12YXIgaSQ9e3NwaGVyZTpZWSxwb2ludDpyJCxsaW5lU3RhcnQ6YSQsbGluZUVuZDpjJCxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtpJC5saW5lU3RhcnQ9dSQsaSQubGluZUVuZD1oJH0scG9seWdvbkVuZDpmdW5jdGlvbigpe2kkLmxpbmVTdGFydD1hJCxpJC5saW5lRW5kPWMkfX07ZnVuY3Rpb24gciQodCxlKXt0Kj1QWTt2YXIgbj1PWShlKj1QWSk7byQobipPWSh0KSxuKkZZKHQpLEZZKGUpKX1mdW5jdGlvbiBvJCh0LGUsbil7KytrWCxQWCs9KHQtUFgpL2tYLE5YKz0oZS1OWCkva1gsSVgrPShuLUlYKS9rWH1mdW5jdGlvbiBhJCgpe2kkLnBvaW50PXMkfWZ1bmN0aW9uIHMkKHQsZSl7dCo9UFk7dmFyIG49T1koZSo9UFkpO1VYPW4qT1kodCksalg9bipGWSh0KSxHWD1GWShlKSxpJC5wb2ludD1sJCxvJChVWCxqWCxHWCl9ZnVuY3Rpb24gbCQodCxlKXt0Kj1QWTt2YXIgbj1PWShlKj1QWSksaT1uKk9ZKHQpLHI9bipGWSh0KSxvPUZZKGUpLGE9UlkoVVkoKGE9algqby1HWCpyKSphKyhhPUdYKmktVVgqbykqYSsoYT1VWCpyLWpYKmkpKmEpLFVYKmkralgqcitHWCpvKTtMWCs9YSxSWCs9YSooVVgrKFVYPWkpKSxPWCs9YSooalgrKGpYPXIpKSx6WCs9YSooR1grKEdYPW8pKSxvJChVWCxqWCxHWCl9ZnVuY3Rpb24gYyQoKXtpJC5wb2ludD1yJH1mdW5jdGlvbiB1JCgpe2kkLnBvaW50PWQkfWZ1bmN0aW9uIGgkKCl7cCQoRlgsVlgpLGkkLnBvaW50PXIkfWZ1bmN0aW9uIGQkKHQsZSl7Rlg9dCxWWD1lLHQqPVBZLGUqPVBZLGkkLnBvaW50PXAkO3ZhciBuPU9ZKGUpO1VYPW4qT1kodCksalg9bipGWSh0KSxHWD1GWShlKSxvJChVWCxqWCxHWCl9ZnVuY3Rpb24gcCQodCxlKXt0Kj1QWTt2YXIgbj1PWShlKj1QWSksaT1uKk9ZKHQpLHI9bipGWSh0KSxvPUZZKGUpLGE9algqby1HWCpyLHM9R1gqaS1VWCpvLGw9VVgqci1qWCppLGM9VVkoYSphK3MqcytsKmwpLHU9V1koYyksaD1jJiYtdS9jO0RYKz1oKmEsQlgrPWgqcyxIWCs9aCpsLExYKz11LFJYKz11KihVWCsoVVg9aSkpLE9YKz11KihqWCsoalg9cikpLHpYKz11KihHWCsoR1g9bykpLG8kKFVYLGpYLEdYKX1mdW5jdGlvbiBmJCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gbSQodCxlKXtmdW5jdGlvbiBuKG4saSl7cmV0dXJuIG49dChuLGkpLGUoblswXSxuWzFdKX1yZXR1cm4gdC5pbnZlcnQmJmUuaW52ZXJ0JiYobi5pbnZlcnQ9ZnVuY3Rpb24obixpKXtyZXR1cm4obj1lLmludmVydChuLGkpKSYmdC5pbnZlcnQoblswXSxuWzFdKX0pLG59ZnVuY3Rpb24gZyQodCxlKXtyZXR1cm5bdD5UWT90LWtZOnQ8LVRZP3Qra1k6dCxlXX1mdW5jdGlvbiBfJCh0LGUsbil7cmV0dXJuKHQlPWtZKT9lfHxuP20kKHYkKHQpLGIkKGUsbikpOnYkKHQpOmV8fG4/YiQoZSxuKTpnJH1mdW5jdGlvbiB5JCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm5bKGUrPXQpPlRZP2Uta1k6ZTwtVFk/ZStrWTplLG5dfX1mdW5jdGlvbiB2JCh0KXt2YXIgZT15JCh0KTtyZXR1cm4gZS5pbnZlcnQ9eSQoLXQpLGV9ZnVuY3Rpb24gYiQodCxlKXt2YXIgbj1PWSh0KSxpPUZZKHQpLHI9T1koZSksbz1GWShlKTtmdW5jdGlvbiBhKHQsZSl7dmFyIGE9T1koZSkscz1PWSh0KSphLGw9RlkodCkqYSxjPUZZKGUpLHU9YypuK3MqaTtyZXR1cm5bUlkobCpyLXUqbyxzKm4tYyppKSxXWSh1KnIrbCpvKV19cmV0dXJuIGEuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIGE9T1koZSkscz1PWSh0KSphLGw9RlkodCkqYSxjPUZZKGUpLHU9YypyLWwqbztyZXR1cm5bUlkobCpyK2MqbyxzKm4rdSppKSxXWSh1Km4tcyppKV19LGF9ZnVuY3Rpb24geCQodCl7ZnVuY3Rpb24gZShlKXtyZXR1cm4oZT10KGVbMF0qUFksZVsxXSpQWSkpWzBdKj1MWSxlWzFdKj1MWSxlfXJldHVybiB0PV8kKHRbMF0qUFksdFsxXSpQWSx0Lmxlbmd0aD4yP3RbMl0qUFk6MCksZS5pbnZlcnQ9ZnVuY3Rpb24oZSl7cmV0dXJuKGU9dC5pbnZlcnQoZVswXSpQWSxlWzFdKlBZKSlbMF0qPUxZLGVbMV0qPUxZLGV9LGV9ZnVuY3Rpb24gdyQodCxlLG4saSxyLG8pe2lmKG4pe3ZhciBhPU9ZKGUpLHM9RlkoZSksbD1pKm47bnVsbD09cj8ocj1lK2kqa1ksbz1lLWwvMik6KHI9UyQoYSxyKSxvPVMkKGEsbyksKGk+MD9yPG86cj5vKSYmKHIrPWkqa1kpKTtmb3IodmFyIGMsdT1yO2k+MD91Pm86dTxvO3UtPWwpYz1kWChbYSwtcypPWSh1KSwtcypGWSh1KV0pLHQucG9pbnQoY1swXSxjWzFdKX19ZnVuY3Rpb24gUyQodCxlKXsoZT1wWChlKSlbMF0tPXQseVgoZSk7dmFyIG49R1koLWVbMV0pO3JldHVybigoLWVbMl08MD8tbjpuKStrWS1FWSkla1l9ZnVuY3Rpb24gTSQoKXt2YXIgdCxlPVtdO3JldHVybntwb2ludDpmdW5jdGlvbihlLG4pe3QucHVzaChbZSxuXSl9LGxpbmVTdGFydDpmdW5jdGlvbigpe2UucHVzaCh0PVtdKX0sbGluZUVuZDpZWSxyZWpvaW46ZnVuY3Rpb24oKXtlLmxlbmd0aD4xJiZlLnB1c2goZS5wb3AoKS5jb25jYXQoZS5zaGlmdCgpKSl9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciBuPWU7cmV0dXJuIGU9W10sdD1udWxsLG59fX1mdW5jdGlvbiBFJCh0LGUpe3JldHVybiBOWSh0WzBdLWVbMF0pPEVZJiZOWSh0WzFdLWVbMV0pPEVZfWZ1bmN0aW9uIFQkKHQsZSxuLGkpe3RoaXMueD10LHRoaXMuej1lLHRoaXMubz1uLHRoaXMuZT1pLHRoaXMudj0hMSx0aGlzLm49dGhpcy5wPW51bGx9ZnVuY3Rpb24gQyQodCxlLG4saSxyKXt2YXIgbyxhLHM9W10sbD1bXTtpZih0LmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKCEoKGU9dC5sZW5ndGgtMSk8PTApKXt2YXIgZSxuLGk9dFswXSxhPXRbZV07aWYoRSQoaSxhKSl7Zm9yKHIubGluZVN0YXJ0KCksbz0wO288ZTsrK28pci5wb2ludCgoaT10W29dKVswXSxpWzFdKTtyLmxpbmVFbmQoKX1lbHNlIHMucHVzaChuPW5ldyBUJChpLHQsbnVsbCwhMCkpLGwucHVzaChuLm89bmV3IFQkKGksbnVsbCxuLCExKSkscy5wdXNoKG49bmV3IFQkKGEsdCxudWxsLCExKSksbC5wdXNoKG4ubz1uZXcgVCQoYSxudWxsLG4sITApKX19KSkscy5sZW5ndGgpe2ZvcihsLnNvcnQoZSksQSQocyksQSQobCksbz0wLGE9bC5sZW5ndGg7bzxhOysrbylsW29dLmU9bj0hbjtmb3IodmFyIGMsdSxoPXNbMF07Oyl7Zm9yKHZhciBkPWgscD0hMDtkLnY7KWlmKChkPWQubik9PT1oKXJldHVybjtjPWQueixyLmxpbmVTdGFydCgpO2Rve2lmKGQudj1kLm8udj0hMCxkLmUpe2lmKHApZm9yKG89MCxhPWMubGVuZ3RoO288YTsrK28pci5wb2ludCgodT1jW29dKVswXSx1WzFdKTtlbHNlIGkoZC54LGQubi54LDEscik7ZD1kLm59ZWxzZXtpZihwKWZvcihvPShjPWQucC56KS5sZW5ndGgtMTtvPj0wOy0tbylyLnBvaW50KCh1PWNbb10pWzBdLHVbMV0pO2Vsc2UgaShkLngsZC5wLngsLTEscik7ZD1kLnB9Yz0oZD1kLm8pLnoscD0hcH13aGlsZSghZC52KTtyLmxpbmVFbmQoKX19fWZ1bmN0aW9uIEEkKHQpe2lmKGU9dC5sZW5ndGgpe2Zvcih2YXIgZSxuLGk9MCxyPXRbMF07KytpPGU7KXIubj1uPXRbaV0sbi5wPXIscj1uO3Iubj1uPXRbMF0sbi5wPXJ9fWckLmludmVydD1nJDt2YXIgayQ9eFkoKTtmdW5jdGlvbiBMJCh0LGUpe3ZhciBuPWVbMF0saT1lWzFdLHI9W0ZZKG4pLC1PWShuKSwwXSxvPTAsYT0wO2skLnJlc2V0KCk7Zm9yKHZhciBzPTAsbD10Lmxlbmd0aDtzPGw7KytzKWlmKHU9KGM9dFtzXSkubGVuZ3RoKWZvcih2YXIgYyx1LGg9Y1t1LTFdLGQ9aFswXSxwPWhbMV0vMitBWSxmPUZZKHApLG09T1kocCksZz0wO2c8dTsrK2csZD15LGY9YixtPXgsaD1fKXt2YXIgXz1jW2ddLHk9X1swXSx2PV9bMV0vMitBWSxiPUZZKHYpLHg9T1kodiksdz15LWQsUz13Pj0wPzE6LTEsTT1TKncsRT1NPlRZLFQ9ZipiO2lmKGskLmFkZChSWShUKlMqRlkoTSksbSp4K1QqT1koTSkpKSxvKz1FP3crUyprWTp3LEVeZD49bl55Pj1uKXt2YXIgQz1tWChwWChoKSxwWChfKSk7eVgoQyk7dmFyIEE9bVgocixDKTt5WChBKTt2YXIgaz0oRV53Pj0wPy0xOjEpKldZKEFbMl0pOyhpPmt8fGk9PT1rJiYoQ1swXXx8Q1sxXSkpJiYoYSs9RV53Pj0wPzE6LTEpfX1yZXR1cm4obzwtMWUtNnx8bzxFWSYmayQ8LTFlLTYpXjEmYX1mdW5jdGlvbiBQJCh0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6dD49ZT8wOk5hTn1mdW5jdGlvbiBOJCh0LGUsbil7dD0rdCxlPStlLG49KHI9YXJndW1lbnRzLmxlbmd0aCk8Mj8oZT10LHQ9MCwxKTpyPDM/MTorbjtmb3IodmFyIGk9LTEscj0wfE1hdGgubWF4KDAsTWF0aC5jZWlsKChlLXQpL24pKSxvPW5ldyBBcnJheShyKTsrK2k8cjspb1tpXT10K2kqbjtyZXR1cm4gb31mdW5jdGlvbiBJJCh0KXtmb3IodmFyIGUsbixpLHI9dC5sZW5ndGgsbz0tMSxhPTA7KytvPHI7KWErPXRbb10ubGVuZ3RoO2ZvcihuPW5ldyBBcnJheShhKTstLXI+PTA7KWZvcihlPShpPXRbcl0pLmxlbmd0aDstLWU+PTA7KW5bLS1hXT1pW2VdO3JldHVybiBufWZ1bmN0aW9uIFIkKHQsZSxuLGkpe3JldHVybiBmdW5jdGlvbihyKXt2YXIgbyxhLHMsbD1lKHIpLGM9TSQoKSx1PWUoYyksaD0hMSxkPXtwb2ludDpwLGxpbmVTdGFydDptLGxpbmVFbmQ6Zyxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtkLnBvaW50PV8sZC5saW5lU3RhcnQ9eSxkLmxpbmVFbmQ9dixhPVtdLG89W119LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtkLnBvaW50PXAsZC5saW5lU3RhcnQ9bSxkLmxpbmVFbmQ9ZyxhPUkkKGEpO3ZhciB0PUwkKG8saSk7YS5sZW5ndGg/KGh8fChyLnBvbHlnb25TdGFydCgpLGg9ITApLEMkKGEseiQsdCxuLHIpKTp0JiYoaHx8KHIucG9seWdvblN0YXJ0KCksaD0hMCksci5saW5lU3RhcnQoKSxuKG51bGwsbnVsbCwxLHIpLHIubGluZUVuZCgpKSxoJiYoci5wb2x5Z29uRW5kKCksaD0hMSksYT1vPW51bGx9LHNwaGVyZTpmdW5jdGlvbigpe3IucG9seWdvblN0YXJ0KCksci5saW5lU3RhcnQoKSxuKG51bGwsbnVsbCwxLHIpLHIubGluZUVuZCgpLHIucG9seWdvbkVuZCgpfX07ZnVuY3Rpb24gcChlLG4pe3QoZSxuKSYmci5wb2ludChlLG4pfWZ1bmN0aW9uIGYodCxlKXtsLnBvaW50KHQsZSl9ZnVuY3Rpb24gbSgpe2QucG9pbnQ9ZixsLmxpbmVTdGFydCgpfWZ1bmN0aW9uIGcoKXtkLnBvaW50PXAsbC5saW5lRW5kKCl9ZnVuY3Rpb24gXyh0LGUpe3MucHVzaChbdCxlXSksdS5wb2ludCh0LGUpfWZ1bmN0aW9uIHkoKXt1LmxpbmVTdGFydCgpLHM9W119ZnVuY3Rpb24gdigpe18oc1swXVswXSxzWzBdWzFdKSx1LmxpbmVFbmQoKTt2YXIgdCxlLG4saSxsPXUuY2xlYW4oKSxkPWMucmVzdWx0KCkscD1kLmxlbmd0aDtpZihzLnBvcCgpLG8ucHVzaChzKSxzPW51bGwscClpZigxJmwpe2lmKChlPShuPWRbMF0pLmxlbmd0aC0xKT4wKXtmb3IoaHx8KHIucG9seWdvblN0YXJ0KCksaD0hMCksci5saW5lU3RhcnQoKSx0PTA7dDxlOysrdClyLnBvaW50KChpPW5bdF0pWzBdLGlbMV0pO3IubGluZUVuZCgpfX1lbHNlIHA+MSYmMiZsJiZkLnB1c2goZC5wb3AoKS5jb25jYXQoZC5zaGlmdCgpKSksYS5wdXNoKGQuZmlsdGVyKE8kKSl9cmV0dXJuIGR9fWZ1bmN0aW9uIE8kKHQpe3JldHVybiB0Lmxlbmd0aD4xfWZ1bmN0aW9uIHokKHQsZSl7cmV0dXJuKCh0PXQueClbMF08MD90WzFdLUNZLUVZOkNZLXRbMV0pLSgoZT1lLngpWzBdPDA/ZVsxXS1DWS1FWTpDWS1lWzFdKX0hKGZ1bmN0aW9uIEQkKHQpe3JldHVybiAxPT09dC5sZW5ndGgmJih0PShmdW5jdGlvbiBlKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiBQJCh0KGUpLG4pfX0pKHQpKSx7bGVmdDpmdW5jdGlvbihlLG4saSxyKXtmb3IobnVsbD09aSYmKGk9MCksbnVsbD09ciYmKHI9ZS5sZW5ndGgpO2k8cjspe3ZhciBvPWkrcj4+PjE7dChlW29dLG4pPDA/aT1vKzE6cj1vfXJldHVybiBpfSxyaWdodDpmdW5jdGlvbihlLG4saSxyKXtmb3IobnVsbD09aSYmKGk9MCksbnVsbD09ciYmKHI9ZS5sZW5ndGgpO2k8cjspe3ZhciBvPWkrcj4+PjE7dChlW29dLG4pPjA/cj1vOmk9bysxfXJldHVybiBpfX19KShQJCk7dmFyIEIkPVIkKChmdW5jdGlvbigpe3JldHVybiEwfSksKGZ1bmN0aW9uIEgkKHQpe3ZhciBlLG49TmFOLGk9TmFOLHI9TmFOO3JldHVybntsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0LmxpbmVTdGFydCgpLGU9MX0scG9pbnQ6ZnVuY3Rpb24obyxhKXt2YXIgcz1vPjA/VFk6LVRZLGw9Tlkoby1uKTtOWShsLVRZKTxFWT8odC5wb2ludChuLGk9KGkrYSkvMj4wP0NZOi1DWSksdC5wb2ludChyLGkpLHQubGluZUVuZCgpLHQubGluZVN0YXJ0KCksdC5wb2ludChzLGkpLHQucG9pbnQobyxpKSxlPTApOnIhPT1zJiZsPj1UWSYmKE5ZKG4tcik8RVkmJihuLT1yKkVZKSxOWShvLXMpPEVZJiYoby09cypFWSksaT0oZnVuY3Rpb24gYyh0LGUsbixpKXt2YXIgcixvLGE9RlkodC1uKTtyZXR1cm4gTlkoYSk+RVk/SVkoKEZZKGUpKihvPU9ZKGkpKSpGWShuKS1GWShpKSoocj1PWShlKSkqRlkodCkpLyhyKm8qYSkpOihlK2kpLzJ9KShuLGksbyxhKSx0LnBvaW50KHIsaSksdC5saW5lRW5kKCksdC5saW5lU3RhcnQoKSx0LnBvaW50KHMsaSksZT0wKSx0LnBvaW50KG49byxpPWEpLHI9c30sbGluZUVuZDpmdW5jdGlvbigpe3QubGluZUVuZCgpLG49aT1OYU59LGNsZWFuOmZ1bmN0aW9uKCl7cmV0dXJuIDItZX19fSksKGZ1bmN0aW9uIEYkKHQsZSxuLGkpe3ZhciByO2lmKG51bGw9PXQpaS5wb2ludCgtVFkscj1uKkNZKSxpLnBvaW50KDAsciksaS5wb2ludChUWSxyKSxpLnBvaW50KFRZLDApLGkucG9pbnQoVFksLXIpLGkucG9pbnQoMCwtciksaS5wb2ludCgtVFksLXIpLGkucG9pbnQoLVRZLDApLGkucG9pbnQoLVRZLHIpO2Vsc2UgaWYoTlkodFswXS1lWzBdKT5FWSl7dmFyIG89dFswXTxlWzBdP1RZOi1UWTtpLnBvaW50KC1vLHI9bipvLzIpLGkucG9pbnQoMCxyKSxpLnBvaW50KG8scil9ZWxzZSBpLnBvaW50KGVbMF0sZVsxXSl9KSxbLVRZLC1DWV0pO2Z1bmN0aW9uIFYkKHQpe3ZhciBlPU9ZKHQpLG49NipQWSxpPWU+MCxyPU5ZKGUpPkVZO2Z1bmN0aW9uIG8odCxuKXtyZXR1cm4gT1kodCkqT1kobik+ZX1mdW5jdGlvbiBhKHQsbixpKXt2YXIgcj1bMSwwLDBdLG89bVgocFgodCkscFgobikpLGE9ZlgobyxvKSxzPW9bMF0sbD1hLXMqcztpZighbClyZXR1cm4haSYmdDt2YXIgYz1lKmEvbCx1PS1lKnMvbCxoPW1YKHIsbyksZD1fWChyLGMpO2dYKGQsX1gobyx1KSk7dmFyIHA9aCxmPWZYKGQscCksbT1mWChwLHApLGc9ZipmLW0qKGZYKGQsZCktMSk7aWYoIShnPDApKXt2YXIgXz1VWShnKSx5PV9YKHAsKC1mLV8pL20pO2lmKGdYKHksZCkseT1kWCh5KSwhaSlyZXR1cm4geTt2YXIgdixiPXRbMF0seD1uWzBdLHc9dFsxXSxTPW5bMV07eDxiJiYodj1iLGI9eCx4PXYpO3ZhciBNPXgtYixFPU5ZKE0tVFkpPEVZO2lmKCFFJiZTPHcmJih2PXcsdz1TLFM9diksRXx8TTxFWT9FP3crUz4wXnlbMV08KE5ZKHlbMF0tYik8RVk/dzpTKTp3PD15WzFdJiZ5WzFdPD1TOk0+VFleKGI8PXlbMF0mJnlbMF08PXgpKXt2YXIgVD1fWChwLCgtZitfKS9tKTtyZXR1cm4gZ1goVCxkKSxbeSxkWChUKV19fX1mdW5jdGlvbiBzKGUsbil7dmFyIHI9aT90OlRZLXQsbz0wO3JldHVybiBlPC1yP298PTE6ZT5yJiYob3w9Miksbjwtcj9vfD00Om4+ciYmKG98PTgpLG99cmV0dXJuIFIkKG8sKGZ1bmN0aW9uIGwodCl7dmFyIGUsbixsLGMsdTtyZXR1cm57bGluZVN0YXJ0OmZ1bmN0aW9uKCl7Yz1sPSExLHU9MX0scG9pbnQ6ZnVuY3Rpb24oaCxkKXt2YXIgcCxmPVtoLGRdLG09byhoLGQpLGc9aT9tPzA6cyhoLGQpOm0/cyhoKyhoPDA/VFk6LVRZKSxkKTowO2lmKCFlJiYoYz1sPW0pJiZ0LmxpbmVTdGFydCgpLG0hPT1sJiYoIShwPWEoZSxmKSl8fEUkKGUscCl8fEUkKGYscCkpJiYoZlswXSs9RVksZlsxXSs9RVksbT1vKGZbMF0sZlsxXSkpLG0hPT1sKXU9MCxtPyh0LmxpbmVTdGFydCgpLHA9YShmLGUpLHQucG9pbnQocFswXSxwWzFdKSk6KHA9YShlLGYpLHQucG9pbnQocFswXSxwWzFdKSx0LmxpbmVFbmQoKSksZT1wO2Vsc2UgaWYociYmZSYmaV5tKXt2YXIgXztnJm58fCEoXz1hKGYsZSwhMCkpfHwodT0wLGk/KHQubGluZVN0YXJ0KCksdC5wb2ludChfWzBdWzBdLF9bMF1bMV0pLHQucG9pbnQoX1sxXVswXSxfWzFdWzFdKSx0LmxpbmVFbmQoKSk6KHQucG9pbnQoX1sxXVswXSxfWzFdWzFdKSx0LmxpbmVFbmQoKSx0LmxpbmVTdGFydCgpLHQucG9pbnQoX1swXVswXSxfWzBdWzFdKSkpfSFtfHxlJiZFJChlLGYpfHx0LnBvaW50KGZbMF0sZlsxXSksZT1mLGw9bSxuPWd9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtsJiZ0LmxpbmVFbmQoKSxlPW51bGx9LGNsZWFuOmZ1bmN0aW9uKCl7cmV0dXJuIHV8KGMmJmwpPDwxfX19KSwoZnVuY3Rpb24gYyhlLGkscixvKXt3JChvLHQsbixyLGUsaSl9KSxpP1swLC10XTpbLVRZLHQtVFldKX12YXIgVSQ9MWU5LGokPS1VJDtmdW5jdGlvbiBHJCh0LGUsbixpKXtmdW5jdGlvbiByKHIsbyl7cmV0dXJuIHQ8PXImJnI8PW4mJmU8PW8mJm88PWl9ZnVuY3Rpb24gbyhyLG8scyxjKXt2YXIgdT0wLGg9MDtpZihudWxsPT1yfHwodT1hKHIscykpIT09KGg9YShvLHMpKXx8bChyLG8pPDBecz4wKWRve2MucG9pbnQoMD09PXV8fDM9PT11P3Q6bix1PjE/aTplKX13aGlsZSgodT0odStzKzQpJTQpIT09aCk7ZWxzZSBjLnBvaW50KG9bMF0sb1sxXSl9ZnVuY3Rpb24gYShpLHIpe3JldHVybiBOWShpWzBdLXQpPEVZP3I+MD8wOjM6TlkoaVswXS1uKTxFWT9yPjA/MjoxOk5ZKGlbMV0tZSk8RVk/cj4wPzE6MDpyPjA/MzoyfWZ1bmN0aW9uIHModCxlKXtyZXR1cm4gbCh0LngsZS54KX1mdW5jdGlvbiBsKHQsZSl7dmFyIG49YSh0LDEpLGk9YShlLDEpO3JldHVybiBuIT09aT9uLWk6MD09PW4/ZVsxXS10WzFdOjE9PT1uP3RbMF0tZVswXToyPT09bj90WzFdLWVbMV06ZVswXS10WzBdfXJldHVybiBmdW5jdGlvbihhKXt2YXIgbCxjLHUsaCxkLHAsZixtLGcsXyx5LHY9YSxiPU0kKCkseD17cG9pbnQ6VCxsaW5lU3RhcnQ6ZnVuY3Rpb24gdygpe3gucG9pbnQ9QyxjJiZjLnB1c2godT1bXSk7Xz0hMCxnPSExLGY9bT1OYU59LGxpbmVFbmQ6ZnVuY3Rpb24gUygpe2wmJihDKGgsZCkscCYmZyYmYi5yZWpvaW4oKSxsLnB1c2goYi5yZXN1bHQoKSkpO3gucG9pbnQ9VCxnJiZ2LmxpbmVFbmQoKX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uIE0oKXt2PWIsbD1bXSxjPVtdLHk9ITB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24gRSgpe3ZhciBlPShmdW5jdGlvbiBuKCl7Zm9yKHZhciBlPTAsbj0wLHI9Yy5sZW5ndGg7bjxyOysrbilmb3IodmFyIG8sYSxzPWNbbl0sbD0xLHU9cy5sZW5ndGgsaD1zWzBdLGQ9aFswXSxwPWhbMV07bDx1OysrbClvPWQsYT1wLGQ9KGg9c1tsXSlbMF0scD1oWzFdLGE8PWk/cD5pJiYoZC1vKSooaS1hKT4ocC1hKSoodC1vKSYmKytlOnA8PWkmJihkLW8pKihpLWEpPChwLWEpKih0LW8pJiYtLWU7cmV0dXJuIGV9KSgpLHI9eSYmZSxoPShsPUkkKGwpKS5sZW5ndGg7KHJ8fGgpJiYoYS5wb2x5Z29uU3RhcnQoKSxyJiYoYS5saW5lU3RhcnQoKSxvKG51bGwsbnVsbCwxLGEpLGEubGluZUVuZCgpKSxoJiZDJChsLHMsZSxvLGEpLGEucG9seWdvbkVuZCgpKTt2PWEsbD1jPXU9bnVsbH19O2Z1bmN0aW9uIFQodCxlKXtyKHQsZSkmJnYucG9pbnQodCxlKX1mdW5jdGlvbiBDKG8sYSl7dmFyIHM9cihvLGEpO2lmKGMmJnUucHVzaChbbyxhXSksXyloPW8sZD1hLHA9cyxfPSExLHMmJih2LmxpbmVTdGFydCgpLHYucG9pbnQobyxhKSk7ZWxzZSBpZihzJiZnKXYucG9pbnQobyxhKTtlbHNle3ZhciBsPVtmPU1hdGgubWF4KGokLE1hdGgubWluKFUkLGYpKSxtPU1hdGgubWF4KGokLE1hdGgubWluKFUkLG0pKV0sYj1bbz1NYXRoLm1heChqJCxNYXRoLm1pbihVJCxvKSksYT1NYXRoLm1heChqJCxNYXRoLm1pbihVJCxhKSldOyEoZnVuY3Rpb24geCh0LGUsbixpLHIsbyl7dmFyIGEscz10WzBdLGw9dFsxXSxjPTAsdT0xLGg9ZVswXS1zLGQ9ZVsxXS1sO2lmKGE9bi1zLGh8fCEoYT4wKSl7aWYoYS89aCxoPDApe2lmKGE8YylyZXR1cm47YTx1JiYodT1hKX1lbHNlIGlmKGg+MCl7aWYoYT51KXJldHVybjthPmMmJihjPWEpfWlmKGE9ci1zLGh8fCEoYTwwKSl7aWYoYS89aCxoPDApe2lmKGE+dSlyZXR1cm47YT5jJiYoYz1hKX1lbHNlIGlmKGg+MCl7aWYoYTxjKXJldHVybjthPHUmJih1PWEpfWlmKGE9aS1sLGR8fCEoYT4wKSl7aWYoYS89ZCxkPDApe2lmKGE8YylyZXR1cm47YTx1JiYodT1hKX1lbHNlIGlmKGQ+MCl7aWYoYT51KXJldHVybjthPmMmJihjPWEpfWlmKGE9by1sLGR8fCEoYTwwKSl7aWYoYS89ZCxkPDApe2lmKGE+dSlyZXR1cm47YT5jJiYoYz1hKX1lbHNlIGlmKGQ+MCl7aWYoYTxjKXJldHVybjthPHUmJih1PWEpfXJldHVybiBjPjAmJih0WzBdPXMrYypoLHRbMV09bCtjKmQpLHU8MSYmKGVbMF09cyt1KmgsZVsxXT1sK3UqZCksITB9fX19fSkobCxiLHQsZSxuLGkpP3MmJih2LmxpbmVTdGFydCgpLHYucG9pbnQobyxhKSx5PSExKTooZ3x8KHYubGluZVN0YXJ0KCksdi5wb2ludChsWzBdLGxbMV0pKSx2LnBvaW50KGJbMF0sYlsxXSksc3x8di5saW5lRW5kKCkseT0hMSl9Zj1vLG09YSxnPXN9cmV0dXJuIHh9fXZhciBXJCxxJCxZJCxYJD14WSgpLCQkPXtzcGhlcmU6WVkscG9pbnQ6WVksbGluZVN0YXJ0OmZ1bmN0aW9uIEskKCl7JCQucG9pbnQ9SiQsJCQubGluZUVuZD1aJH0sbGluZUVuZDpZWSxwb2x5Z29uU3RhcnQ6WVkscG9seWdvbkVuZDpZWX07ZnVuY3Rpb24gWiQoKXskJC5wb2ludD0kJC5saW5lRW5kPVlZfWZ1bmN0aW9uIEokKHQsZSl7VyQ9dCo9UFkscSQ9RlkoZSo9UFkpLFkkPU9ZKGUpLCQkLnBvaW50PVEkfWZ1bmN0aW9uIFEkKHQsZSl7dCo9UFk7dmFyIG49RlkoZSo9UFkpLGk9T1koZSkscj1OWSh0LVckKSxvPU9ZKHIpLGE9aSpGWShyKSxzPVkkKm4tcSQqaSpvLGw9cSQqbitZJCppKm87WCQuYWRkKFJZKFVZKGEqYStzKnMpLGwpKSxXJD10LHEkPW4sWSQ9aX1mdW5jdGlvbiB0Syh0KXtyZXR1cm4gWCQucmVzZXQoKSxRWSh0LCQkKSwrWCR9dmFyIGVLPVtudWxsLG51bGxdLG5LPXt0eXBlOiJMaW5lU3RyaW5nIixjb29yZGluYXRlczplS307ZnVuY3Rpb24gaUsodCxlKXtyZXR1cm4gZUtbMF09dCxlS1sxXT1lLHRLKG5LKX12YXIgcks9e0ZlYXR1cmU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gYUsodC5nZW9tZXRyeSxlKX0sRmVhdHVyZUNvbGxlY3Rpb246ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC5mZWF0dXJlcyxpPS0xLHI9bi5sZW5ndGg7KytpPHI7KWlmKGFLKG5baV0uZ2VvbWV0cnksZSkpcmV0dXJuITA7cmV0dXJuITF9fSxvSz17U3BoZXJlOmZ1bmN0aW9uKCl7cmV0dXJuITB9LFBvaW50OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHNLKHQuY29vcmRpbmF0ZXMsZSl9LE11bHRpUG9pbnQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC5jb29yZGluYXRlcyxpPS0xLHI9bi5sZW5ndGg7KytpPHI7KWlmKHNLKG5baV0sZSkpcmV0dXJuITA7cmV0dXJuITF9LExpbmVTdHJpbmc6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbEsodC5jb29yZGluYXRlcyxlKX0sTXVsdGlMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuY29vcmRpbmF0ZXMsaT0tMSxyPW4ubGVuZ3RoOysraTxyOylpZihsSyhuW2ldLGUpKXJldHVybiEwO3JldHVybiExfSxQb2x5Z29uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGNLKHQuY29vcmRpbmF0ZXMsZSl9LE11bHRpUG9seWdvbjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LmNvb3JkaW5hdGVzLGk9LTEscj1uLmxlbmd0aDsrK2k8cjspaWYoY0sobltpXSxlKSlyZXR1cm4hMDtyZXR1cm4hMX0sR2VvbWV0cnlDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuZ2VvbWV0cmllcyxpPS0xLHI9bi5sZW5ndGg7KytpPHI7KWlmKGFLKG5baV0sZSkpcmV0dXJuITA7cmV0dXJuITF9fTtmdW5jdGlvbiBhSyh0LGUpe3JldHVybiEoIXR8fCFvSy5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpKSYmb0tbdC50eXBlXSh0LGUpfWZ1bmN0aW9uIHNLKHQsZSl7cmV0dXJuIDA9PT1pSyh0LGUpfWZ1bmN0aW9uIGxLKHQsZSl7dmFyIG49aUsodFswXSx0WzFdKTtyZXR1cm4gaUsodFswXSxlKStpSyhlLHRbMV0pPD1uK0VZfWZ1bmN0aW9uIGNLKHQsZSl7cmV0dXJuISFMJCh0Lm1hcCh1SyksaEsoZSkpfWZ1bmN0aW9uIHVLKHQpe3JldHVybih0PXQubWFwKGhLKSkucG9wKCksdH1mdW5jdGlvbiBoSyh0KXtyZXR1cm5bdFswXSpQWSx0WzFdKlBZXX1mdW5jdGlvbiBkSyh0LGUsbil7dmFyIGk9TiQodCxlLUVZLG4pLmNvbmNhdChlKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGkubWFwKChmdW5jdGlvbihlKXtyZXR1cm5bdCxlXX0pKX19ZnVuY3Rpb24gcEsodCxlLG4pe3ZhciBpPU4kKHQsZS1FWSxuKS5jb25jYXQoZSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuW2UsdF19KSl9fWZ1bmN0aW9uIGZLKCl7dmFyIHQsZSxuLGkscixvLGEscyxsLGMsdSxoLGQ9MTAscD1kLGY9OTAsbT0zNjAsZz0yLjU7ZnVuY3Rpb24gXygpe3JldHVybnt0eXBlOiJNdWx0aUxpbmVTdHJpbmciLGNvb3JkaW5hdGVzOnkoKX19ZnVuY3Rpb24geSgpe3JldHVybiBOJCh6WShpL2YpKmYsbixmKS5tYXAodSkuY29uY2F0KE4kKHpZKHMvbSkqbSxhLG0pLm1hcChoKSkuY29uY2F0KE4kKHpZKGUvZCkqZCx0LGQpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIE5ZKHQlZik+RVl9KSkubWFwKGwpKS5jb25jYXQoTiQoelkoby9wKSpwLHIscCkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gTlkodCVtKT5FWX0pKS5tYXAoYykpfXJldHVybiBfLmxpbmVzPWZ1bmN0aW9uKCl7cmV0dXJuIHkoKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybnt0eXBlOiJMaW5lU3RyaW5nIixjb29yZGluYXRlczp0fX0pKX0sXy5vdXRsaW5lPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6IlBvbHlnb24iLGNvb3JkaW5hdGVzOlt1KGkpLmNvbmNhdChoKGEpLnNsaWNlKDEpLHUobikucmV2ZXJzZSgpLnNsaWNlKDEpLGgocykucmV2ZXJzZSgpLnNsaWNlKDEpKV19fSxfLmV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9fLmV4dGVudE1ham9yKHQpLmV4dGVudE1pbm9yKHQpOl8uZXh0ZW50TWlub3IoKX0sXy5leHRlbnRNYWpvcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0rdFswXVsxXSxhPSt0WzFdWzFdLChpPSt0WzBdWzBdKT4obj0rdFsxXVswXSkmJih0PWksaT1uLG49dCkscz5hJiYodD1zLHM9YSxhPXQpLF8ucHJlY2lzaW9uKGcpKTpbW2ksc10sW24sYV1dfSxfLmV4dGVudE1pbm9yPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPStuWzBdWzFdLHI9K25bMV1bMV0sKGU9K25bMF1bMF0pPih0PStuWzFdWzBdKSYmKG49ZSxlPXQsdD1uKSxvPnImJihuPW8sbz1yLHI9biksXy5wcmVjaXNpb24oZykpOltbZSxvXSxbdCxyXV19LF8uc3RlcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9fLnN0ZXBNYWpvcih0KS5zdGVwTWlub3IodCk6Xy5zdGVwTWlub3IoKX0sXy5zdGVwTWFqb3I9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9K3RbMF0sbT0rdFsxXSxfKTpbZixtXX0sXy5zdGVwTWlub3I9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGQ9K3RbMF0scD0rdFsxXSxfKTpbZCxwXX0sXy5wcmVjaXNpb249ZnVuY3Rpb24oZCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGc9K2QsbD1kSyhvLHIsOTApLGM9cEsoZSx0LGcpLHU9ZEsocyxhLDkwKSxoPXBLKGksbixnKSxfKTpnfSxfLmV4dGVudE1ham9yKFtbLTE4MCwtODkuOTk5OTk5XSxbMTgwLDg5Ljk5OTk5OV1dKS5leHRlbnRNaW5vcihbWy0xODAsLTgwLjAwMDAwMV0sWzE4MCw4MC4wMDAwMDFdXSl9ZnVuY3Rpb24gbUsodCl7cmV0dXJuIHR9dmFyIGdLLF9LLHlLLHZLLGJLPXhZKCkseEs9eFkoKSx3Sz17cG9pbnQ6WVksbGluZVN0YXJ0OllZLGxpbmVFbmQ6WVkscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7d0subGluZVN0YXJ0PVNLLHdLLmxpbmVFbmQ9VEt9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt3Sy5saW5lU3RhcnQ9d0subGluZUVuZD13Sy5wb2ludD1ZWSxiSy5hZGQoTlkoeEspKSx4Sy5yZXNldCgpfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD1iSy8yO3JldHVybiBiSy5yZXNldCgpLHR9fTtmdW5jdGlvbiBTSygpe3dLLnBvaW50PU1LfWZ1bmN0aW9uIE1LKHQsZSl7d0sucG9pbnQ9RUssZ0s9eUs9dCxfSz12Sz1lfWZ1bmN0aW9uIEVLKHQsZSl7eEsuYWRkKHZLKnQteUsqZSkseUs9dCx2Sz1lfWZ1bmN0aW9uIFRLKCl7RUsoZ0ssX0spfXZhciBDSz0xLzAsQUs9Q0ssa0s9LUNLLExLPWtLLFBLPXtwb2ludDpmdW5jdGlvbiBOSyh0LGUpe3Q8Q0smJihDSz10KTt0PmtLJiYoa0s9dCk7ZTxBSyYmKEFLPWUpO2U+TEsmJihMSz1lKX0sbGluZVN0YXJ0OllZLGxpbmVFbmQ6WVkscG9seWdvblN0YXJ0OllZLHBvbHlnb25FbmQ6WVkscmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9W1tDSyxBS10sW2tLLExLXV07cmV0dXJuIGtLPUxLPS0oQUs9Q0s9MS8wKSx0fX07dmFyIElLLFJLLE9LLHpLLERLPTAsQks9MCxISz0wLEZLPTAsVks9MCxVSz0wLGpLPTAsR0s9MCxXSz0wLHFLPXtwb2ludDpZSyxsaW5lU3RhcnQ6WEssbGluZUVuZDpaSyxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtxSy5saW5lU3RhcnQ9SksscUsubGluZUVuZD1RS30scG9seWdvbkVuZDpmdW5jdGlvbigpe3FLLnBvaW50PVlLLHFLLmxpbmVTdGFydD1YSyxxSy5saW5lRW5kPVpLfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD1XSz9baksvV0ssR0svV0tdOlVLP1tGSy9VSyxWSy9VS106SEs/W0RLL0hLLEJLL0hLXTpbTmFOLE5hTl07cmV0dXJuIERLPUJLPUhLPUZLPVZLPVVLPWpLPUdLPVdLPTAsdH19O2Z1bmN0aW9uIFlLKHQsZSl7REsrPXQsQksrPWUsKytIS31mdW5jdGlvbiBYSygpe3FLLnBvaW50PSRLfWZ1bmN0aW9uICRLKHQsZSl7cUsucG9pbnQ9S0ssWUsoT0s9dCx6Sz1lKX1mdW5jdGlvbiBLSyh0LGUpe3ZhciBuPXQtT0ssaT1lLXpLLHI9VVkobipuK2kqaSk7RksrPXIqKE9LK3QpLzIsVksrPXIqKHpLK2UpLzIsVUsrPXIsWUsoT0s9dCx6Sz1lKX1mdW5jdGlvbiBaSygpe3FLLnBvaW50PVlLfWZ1bmN0aW9uIEpLKCl7cUsucG9pbnQ9dFp9ZnVuY3Rpb24gUUsoKXtlWihJSyxSSyl9ZnVuY3Rpb24gdFoodCxlKXtxSy5wb2ludD1lWixZSyhJSz1PSz10LFJLPXpLPWUpfWZ1bmN0aW9uIGVaKHQsZSl7dmFyIG49dC1PSyxpPWUteksscj1VWShuKm4raSppKTtGSys9ciooT0srdCkvMixWSys9ciooeksrZSkvMixVSys9cixqSys9KHI9eksqdC1PSyplKSooT0srdCksR0srPXIqKHpLK2UpLFdLKz0zKnIsWUsoT0s9dCx6Sz1lKX1mdW5jdGlvbiBuWih0KXt0aGlzLl9jb250ZXh0PXR9bloucHJvdG90eXBlPXtfcmFkaXVzOjQuNSxwb2ludFJhZGl1czpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmFkaXVzPXQsdGhpc30scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXswPT09dGhpcy5fbGluZSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9wb2ludD1OYU59LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKSx0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpO2JyZWFrO2RlZmF1bHQ6dGhpcy5fY29udGV4dC5tb3ZlVG8odCt0aGlzLl9yYWRpdXMsZSksdGhpcy5fY29udGV4dC5hcmModCxlLHRoaXMuX3JhZGl1cywwLGtZKX19LHJlc3VsdDpZWX07dmFyIGlaLHJaLG9aLGFaLHNaLGxaPXhZKCksY1o9e3BvaW50OllZLGxpbmVTdGFydDpmdW5jdGlvbigpe2NaLnBvaW50PXVafSxsaW5lRW5kOmZ1bmN0aW9uKCl7aVomJmhaKHJaLG9aKSxjWi5wb2ludD1ZWX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7aVo9ITB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtpWj1udWxsfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD0rbFo7cmV0dXJuIGxaLnJlc2V0KCksdH19O2Z1bmN0aW9uIHVaKHQsZSl7Y1oucG9pbnQ9aFosclo9YVo9dCxvWj1zWj1lfWZ1bmN0aW9uIGhaKHQsZSl7bFouYWRkKFVZKChhWi09dCkqYVorKHNaLT1lKSpzWikpLGFaPXQsc1o9ZX1mdW5jdGlvbiBkWigpe3RoaXMuX3N0cmluZz1bXX1mdW5jdGlvbiBwWih0KXtyZXR1cm4ibTAsIit0KyJhIit0KyIsIit0KyIgMCAxLDEgMCwiKy0yKnQrImEiK3QrIiwiK3QrIiAwIDEsMSAwLCIrMip0KyJ6In1mdW5jdGlvbiBmWih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49bmV3IG1aO2Zvcih2YXIgaSBpbiB0KW5baV09dFtpXTtyZXR1cm4gbi5zdHJlYW09ZSxufX1mdW5jdGlvbiBtWigpe31mdW5jdGlvbiBnWih0LGUsbil7dmFyIGk9dC5jbGlwRXh0ZW50JiZ0LmNsaXBFeHRlbnQoKTtyZXR1cm4gdC5zY2FsZSgxNTApLnRyYW5zbGF0ZShbMCwwXSksbnVsbCE9aSYmdC5jbGlwRXh0ZW50KG51bGwpLFFZKG4sdC5zdHJlYW0oUEspKSxlKFBLLnJlc3VsdCgpKSxudWxsIT1pJiZ0LmNsaXBFeHRlbnQoaSksdH1mdW5jdGlvbiBfWih0LGUsbil7cmV0dXJuIGdaKHQsKGZ1bmN0aW9uKG4pe3ZhciBpPWVbMV1bMF0tZVswXVswXSxyPWVbMV1bMV0tZVswXVsxXSxvPU1hdGgubWluKGkvKG5bMV1bMF0tblswXVswXSksci8oblsxXVsxXS1uWzBdWzFdKSksYT0rZVswXVswXSsoaS1vKihuWzFdWzBdK25bMF1bMF0pKS8yLHM9K2VbMF1bMV0rKHItbyooblsxXVsxXStuWzBdWzFdKSkvMjt0LnNjYWxlKDE1MCpvKS50cmFuc2xhdGUoW2Esc10pfSksbil9ZnVuY3Rpb24geVoodCxlLG4pe3JldHVybiBfWih0LFtbMCwwXSxlXSxuKX1mdW5jdGlvbiB2Wih0LGUsbil7cmV0dXJuIGdaKHQsKGZ1bmN0aW9uKG4pe3ZhciBpPStlLHI9aS8oblsxXVswXS1uWzBdWzBdKSxvPShpLXIqKG5bMV1bMF0rblswXVswXSkpLzIsYT0tcipuWzBdWzFdO3Quc2NhbGUoMTUwKnIpLnRyYW5zbGF0ZShbbyxhXSl9KSxuKX1mdW5jdGlvbiBiWih0LGUsbil7cmV0dXJuIGdaKHQsKGZ1bmN0aW9uKG4pe3ZhciBpPStlLHI9aS8oblsxXVsxXS1uWzBdWzFdKSxvPS1yKm5bMF1bMF0sYT0oaS1yKihuWzFdWzFdK25bMF1bMV0pKS8yO3Quc2NhbGUoMTUwKnIpLnRyYW5zbGF0ZShbbyxhXSl9KSxuKX1kWi5wcm90b3R5cGU9e19yYWRpdXM6NC41LF9jaXJjbGU6cFooNC41KSxwb2ludFJhZGl1czpmdW5jdGlvbih0KXtyZXR1cm4odD0rdCkhPT10aGlzLl9yYWRpdXMmJih0aGlzLl9yYWRpdXM9dCx0aGlzLl9jaXJjbGU9bnVsbCksdGhpc30scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXswPT09dGhpcy5fbGluZSYmdGhpcy5fc3RyaW5nLnB1c2goIloiKSx0aGlzLl9wb2ludD1OYU59LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fc3RyaW5nLnB1c2goIk0iLHQsIiwiLGUpLHRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3N0cmluZy5wdXNoKCJMIix0LCIsIixlKTticmVhaztkZWZhdWx0Om51bGw9PXRoaXMuX2NpcmNsZSYmKHRoaXMuX2NpcmNsZT1wWih0aGlzLl9yYWRpdXMpKSx0aGlzLl9zdHJpbmcucHVzaCgiTSIsdCwiLCIsZSx0aGlzLl9jaXJjbGUpfX0scmVzdWx0OmZ1bmN0aW9uKCl7aWYodGhpcy5fc3RyaW5nLmxlbmd0aCl7dmFyIHQ9dGhpcy5fc3RyaW5nLmpvaW4oIiIpO3JldHVybiB0aGlzLl9zdHJpbmc9W10sdH1yZXR1cm4gbnVsbH19LG1aLnByb3RvdHlwZT17Y29uc3RydWN0b3I6bVoscG9pbnQ6ZnVuY3Rpb24odCxlKXt0aGlzLnN0cmVhbS5wb2ludCh0LGUpfSxzcGhlcmU6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5zcGhlcmUoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ucG9seWdvbkVuZCgpfX07dmFyIHhaPU9ZKDMwKlBZKTtmdW5jdGlvbiB3Wih0LGUpe3JldHVybitlPyhmdW5jdGlvbiBuKHQsZSl7ZnVuY3Rpb24gbihpLHIsbyxhLHMsbCxjLHUsaCxkLHAsZixtLGcpe3ZhciBfPWMtaSx5PXUtcix2PV8qXyt5Knk7aWYodj40KmUmJm0tLSl7dmFyIGI9YStkLHg9cytwLHc9bCtmLFM9VVkoYipiK3gqeCt3KncpLE09V1kody89UyksRT1OWShOWSh3KS0xKTxFWXx8Tlkoby1oKTxFWT8obytoKS8yOlJZKHgsYiksVD10KEUsTSksQz1UWzBdLEE9VFsxXSxrPUMtaSxMPUEtcixQPXkqay1fKkw7KFAqUC92PmV8fE5ZKChfKmsreSpMKS92LS41KT4uM3x8YSpkK3MqcCtsKmY8eFopJiYobihpLHIsbyxhLHMsbCxDLEEsRSxiLz1TLHgvPVMsdyxtLGcpLGcucG9pbnQoQyxBKSxuKEMsQSxFLGIseCx3LGMsdSxoLGQscCxmLG0sZykpfX1yZXR1cm4gZnVuY3Rpb24oZSl7dmFyIGkscixvLGEscyxsLGMsdSxoLGQscCxmLG09e3BvaW50OmcsbGluZVN0YXJ0Ol8sbGluZUVuZDp2LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2UucG9seWdvblN0YXJ0KCksbS5saW5lU3RhcnQ9Yn0scG9seWdvbkVuZDpmdW5jdGlvbigpe2UucG9seWdvbkVuZCgpLG0ubGluZVN0YXJ0PV99fTtmdW5jdGlvbiBnKG4saSl7bj10KG4saSksZS5wb2ludChuWzBdLG5bMV0pfWZ1bmN0aW9uIF8oKXt1PU5hTixtLnBvaW50PXksZS5saW5lU3RhcnQoKX1mdW5jdGlvbiB5KGkscil7dmFyIG89cFgoW2kscl0pLGE9dChpLHIpO24odSxoLGMsZCxwLGYsdT1hWzBdLGg9YVsxXSxjPWksZD1vWzBdLHA9b1sxXSxmPW9bMl0sMTYsZSksZS5wb2ludCh1LGgpfWZ1bmN0aW9uIHYoKXttLnBvaW50PWcsZS5saW5lRW5kKCl9ZnVuY3Rpb24gYigpe18oKSxtLnBvaW50PXgsbS5saW5lRW5kPXd9ZnVuY3Rpb24geCh0LGUpe3koaT10LGUpLHI9dSxvPWgsYT1kLHM9cCxsPWYsbS5wb2ludD15fWZ1bmN0aW9uIHcoKXtuKHUsaCxjLGQscCxmLHIsbyxpLGEscyxsLDE2LGUpLG0ubGluZUVuZD12LHYoKX1yZXR1cm4gbX19KSh0LGUpOihmdW5jdGlvbiBpKHQpe3JldHVybiBmWih7cG9pbnQ6ZnVuY3Rpb24oZSxuKXtlPXQoZSxuKSx0aGlzLnN0cmVhbS5wb2ludChlWzBdLGVbMV0pfX0pfSkodCl9dmFyIFNaPWZaKHtwb2ludDpmdW5jdGlvbih0LGUpe3RoaXMuc3RyZWFtLnBvaW50KHQqUFksZSpQWSl9fSk7ZnVuY3Rpb24gTVoodCl7cmV0dXJuIEVaKChmdW5jdGlvbigpe3JldHVybiB0fSkpKCl9ZnVuY3Rpb24gRVoodCl7dmFyIGUsbixpLHIsbyxhLHMsbCxjLHUsaD0xNTAsZD00ODAscD0yNTAsZj0wLG09MCxnPTAsXz0wLHk9MCx2PW51bGwsYj1CJCx4PW51bGwsdz1tSyxTPS41LE09d1ooQyxTKTtmdW5jdGlvbiBFKHQpe3JldHVyblsodD1vKHRbMF0qUFksdFsxXSpQWSkpWzBdKmgrbixpLXRbMV0qaF19ZnVuY3Rpb24gVCh0KXtyZXR1cm4odD1vLmludmVydCgodFswXS1uKS9oLChpLXRbMV0pL2gpKSYmW3RbMF0qTFksdFsxXSpMWV19ZnVuY3Rpb24gQyh0LHIpe3JldHVyblsodD1lKHQscikpWzBdKmgrbixpLXRbMV0qaF19ZnVuY3Rpb24gQSgpe289bSQocj1fJChnLF8seSksZSk7dmFyIHQ9ZShmLG0pO3JldHVybiBuPWQtdFswXSpoLGk9cCt0WzFdKmgsaygpfWZ1bmN0aW9uIGsoKXtyZXR1cm4gYz11PW51bGwsRX1yZXR1cm4gRS5zdHJlYW09ZnVuY3Rpb24odCl7cmV0dXJuIGMmJnU9PT10P2M6Yz1TWigoZnVuY3Rpb24gZSh0KXtyZXR1cm4gZlooe3BvaW50OmZ1bmN0aW9uKGUsbil7dmFyIGk9dChlLG4pO3JldHVybiB0aGlzLnN0cmVhbS5wb2ludChpWzBdLGlbMV0pfX0pfSkocikoYihNKHcodT10KSkpKSl9LEUucHJlY2xpcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYj10LHY9dm9pZCAwLGsoKSk6Yn0sRS5wb3N0Y2xpcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odz10LHg9YT1zPWw9bnVsbCxrKCkpOnd9LEUuY2xpcEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhiPSt0P1YkKHY9dCpQWSk6KHY9bnVsbCxCJCksaygpKTp2KkxZfSxFLmNsaXBFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHc9bnVsbD09dD8oeD1hPXM9bD1udWxsLG1LKTpHJCh4PSt0WzBdWzBdLGE9K3RbMF1bMV0scz0rdFsxXVswXSxsPSt0WzFdWzFdKSxrKCkpOm51bGw9PXg/bnVsbDpbW3gsYV0sW3MsbF1dfSxFLnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPSt0LEEoKSk6aH0sRS50cmFuc2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGQ9K3RbMF0scD0rdFsxXSxBKCkpOltkLHBdfSxFLmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj10WzBdJTM2MCpQWSxtPXRbMV0lMzYwKlBZLEEoKSk6W2YqTFksbSpMWV19LEUucm90YXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhnPXRbMF0lMzYwKlBZLF89dFsxXSUzNjAqUFkseT10Lmxlbmd0aD4yP3RbMl0lMzYwKlBZOjAsQSgpKTpbZypMWSxfKkxZLHkqTFldfSxFLnByZWNpc2lvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oTT13WihDLFM9dCp0KSxrKCkpOlVZKFMpfSxFLmZpdEV4dGVudD1mdW5jdGlvbih0LGUpe3JldHVybiBfWihFLHQsZSl9LEUuZml0U2l6ZT1mdW5jdGlvbih0LGUpe3JldHVybiB5WihFLHQsZSl9LEUuZml0V2lkdGg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdlooRSx0LGUpfSxFLmZpdEhlaWdodD1mdW5jdGlvbih0LGUpe3JldHVybiBiWihFLHQsZSl9LGZ1bmN0aW9uKCl7cmV0dXJuIGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksRS5pbnZlcnQ9ZS5pbnZlcnQmJlQsQSgpfX1mdW5jdGlvbiBUWih0KXt2YXIgZT0wLG49VFkvMyxpPUVaKHQpLHI9aShlLG4pO3JldHVybiByLnBhcmFsbGVscz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9pKGU9dFswXSpQWSxuPXRbMV0qUFkpOltlKkxZLG4qTFldfSxyfWZ1bmN0aW9uIENaKHQsZSl7dmFyIG49RlkodCksaT0obitGWShlKSkvMjtpZihOWShpKTxFWSlyZXR1cm4oZnVuY3Rpb24gcih0KXt2YXIgZT1PWSh0KTtmdW5jdGlvbiBuKHQsbil7cmV0dXJuW3QqZSxGWShuKS9lXX1yZXR1cm4gbi5pbnZlcnQ9ZnVuY3Rpb24odCxuKXtyZXR1cm5bdC9lLFdZKG4qZSldfSxufSkodCk7dmFyIG89MStuKigyKmktbiksYT1VWShvKS9pO2Z1bmN0aW9uIHModCxlKXt2YXIgbj1VWShvLTIqaSpGWShlKSkvaTtyZXR1cm5bbipGWSh0Kj1pKSxhLW4qT1kodCldfXJldHVybiBzLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciBuPWEtZTtyZXR1cm5bUlkodCxOWShuKSkvaSpWWShuKSxXWSgoby0odCp0K24qbikqaSppKS8oMippKSldfSxzfWZ1bmN0aW9uIEFaKCl7cmV0dXJuIFRaKENaKS5zY2FsZSgxNTUuNDI0KS5jZW50ZXIoWzAsMzMuNjQ0Ml0pfWZ1bmN0aW9uIGtaKCl7cmV0dXJuIEFaKCkucGFyYWxsZWxzKFsyOS41LDQ1LjVdKS5zY2FsZSgxMDcwKS50cmFuc2xhdGUoWzQ4MCwyNTBdKS5yb3RhdGUoWzk2LDBdKS5jZW50ZXIoWy0uNiwzOC43XSl9ZnVuY3Rpb24gTFoodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIGk9T1koZSkscj1PWShuKSxvPXQoaSpyKTtyZXR1cm5bbypyKkZZKGUpLG8qRlkobildfX1mdW5jdGlvbiBQWih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXt2YXIgaT1VWShlKmUrbipuKSxyPXQoaSksbz1GWShyKSxhPU9ZKHIpO3JldHVybltSWShlKm8saSphKSxXWShpJiZuKm8vaSldfX12YXIgTlo9TFooKGZ1bmN0aW9uKHQpe3JldHVybiBVWSgyLygxK3QpKX0pKTtOWi5pbnZlcnQ9UFooKGZ1bmN0aW9uKHQpe3JldHVybiAyKldZKHQvMil9KSk7dmFyIElaPUxaKChmdW5jdGlvbih0KXtyZXR1cm4odD1HWSh0KSkmJnQvRlkodCl9KSk7ZnVuY3Rpb24gUloodCxlKXtyZXR1cm5bdCxCWShqWSgoQ1krZSkvMikpXX1mdW5jdGlvbiBPWih0KXt2YXIgZSxuLGkscj1NWih0KSxvPXIuY2VudGVyLGE9ci5zY2FsZSxzPXIudHJhbnNsYXRlLGw9ci5jbGlwRXh0ZW50LGM9bnVsbDtmdW5jdGlvbiB1KCl7dmFyIG89VFkqYSgpLHM9cih4JChyLnJvdGF0ZSgpKS5pbnZlcnQoWzAsMF0pKTtyZXR1cm4gbChudWxsPT1jP1tbc1swXS1vLHNbMV0tb10sW3NbMF0rbyxzWzFdK29dXTp0PT09Ulo/W1tNYXRoLm1heChzWzBdLW8sYyksZV0sW01hdGgubWluKHNbMF0rbyxuKSxpXV06W1tjLE1hdGgubWF4KHNbMV0tbyxlKV0sW24sTWF0aC5taW4oc1sxXStvLGkpXV0pfXJldHVybiByLnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhKHQpLHUoKSk6YSgpfSxyLnRyYW5zbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocyh0KSx1KCkpOnMoKX0sci5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG8odCksdSgpKTpvKCl9LHIuY2xpcEV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09dD9jPWU9bj1pPW51bGw6KGM9K3RbMF1bMF0sZT0rdFswXVsxXSxuPSt0WzFdWzBdLGk9K3RbMV1bMV0pLHUoKSk6bnVsbD09Yz9udWxsOltbYyxlXSxbbixpXV19LHUoKX1mdW5jdGlvbiB6Wih0KXtyZXR1cm4galkoKENZK3QpLzIpfWZ1bmN0aW9uIERaKHQsZSl7dmFyIG49T1kodCksaT10PT09ZT9GWSh0KTpCWShuL09ZKGUpKS9CWSh6WihlKS96Wih0KSkscj1uKkhZKHpaKHQpLGkpL2k7aWYoIWkpcmV0dXJuIFJaO2Z1bmN0aW9uIG8odCxlKXtyPjA/ZTwtQ1krRVkmJihlPS1DWStFWSk6ZT5DWS1FWSYmKGU9Q1ktRVkpO3ZhciBuPXIvSFkoelooZSksaSk7cmV0dXJuW24qRlkoaSp0KSxyLW4qT1koaSp0KV19cmV0dXJuIG8uaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIG49ci1lLG89VlkoaSkqVVkodCp0K24qbik7cmV0dXJuW1JZKHQsTlkobikpL2kqVlkobiksMipJWShIWShyL28sMS9pKSktQ1ldfSxvfWZ1bmN0aW9uIEJaKHQsZSl7cmV0dXJuW3QsZV19ZnVuY3Rpb24gSFoodCxlKXt2YXIgbj1PWSh0KSxpPXQ9PT1lP0ZZKHQpOihuLU9ZKGUpKS8oZS10KSxyPW4vaSt0O2lmKE5ZKGkpPEVZKXJldHVybiBCWjtmdW5jdGlvbiBvKHQsZSl7dmFyIG49ci1lLG89aSp0O3JldHVybltuKkZZKG8pLHItbipPWShvKV19cmV0dXJuIG8uaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIG49ci1lO3JldHVybltSWSh0LE5ZKG4pKS9pKlZZKG4pLHItVlkoaSkqVVkodCp0K24qbildfSxvfWZ1bmN0aW9uIEZaKHQsZSl7dmFyIG49T1koZSksaT1PWSh0KSpuO3JldHVybltuKkZZKHQpL2ksRlkoZSkvaV19ZnVuY3Rpb24gVloodCxlLG4saSl7cmV0dXJuIDE9PT10JiYxPT09ZSYmMD09PW4mJjA9PT1pP21LOmZaKHtwb2ludDpmdW5jdGlvbihyLG8pe3RoaXMuc3RyZWFtLnBvaW50KHIqdCtuLG8qZStpKX19KX1mdW5jdGlvbiBVWih0LGUpe3ZhciBuPWUqZSxpPW4qbjtyZXR1cm5bdCooLjg3MDctLjEzMTk3OSpuK2kqKGkqKC4wMDM5NzEqbi0uMDAxNTI5KmkpLS4wMTM3OTEpKSxlKigxLjAwNzIyNituKiguMDE1MDg1K2kqKC4wMjg4NzQqbi0uMDQ0NDc1LS4wMDU5MTYqaSkpKV19ZnVuY3Rpb24galoodCxlKXtyZXR1cm5bT1koZSkqRlkodCksRlkoZSldfWZ1bmN0aW9uIEdaKHQsZSl7dmFyIG49T1koZSksaT0xK09ZKHQpKm47cmV0dXJuW24qRlkodCkvaSxGWShlKS9pXX1mdW5jdGlvbiBXWih0LGUpe3JldHVybltCWShqWSgoQ1krZSkvMikpLC10XX1mdW5jdGlvbiBxWih0LGUpe3JldHVybiB0LnBhcmVudD09PWUucGFyZW50PzE6Mn1mdW5jdGlvbiBZWih0LGUpe3JldHVybiB0K2UueH1mdW5jdGlvbiBYWih0LGUpe3JldHVybiBNYXRoLm1heCh0LGUueSl9ZnVuY3Rpb24gJFoodCl7dmFyIGU9MCxuPXQuY2hpbGRyZW4saT1uJiZuLmxlbmd0aDtpZihpKWZvcig7LS1pPj0wOyllKz1uW2ldLnZhbHVlO2Vsc2UgZT0xO3QudmFsdWU9ZX1mdW5jdGlvbiBLWih0LGUpe3ZhciBuLGkscixvLGEscz1uZXcgdEoodCksbD0rdC52YWx1ZSYmKHMudmFsdWU9dC52YWx1ZSksYz1bc107Zm9yKG51bGw9PWUmJihlPVpaKTtuPWMucG9wKCk7KWlmKGwmJihuLnZhbHVlPStuLmRhdGEudmFsdWUpLChyPWUobi5kYXRhKSkmJihhPXIubGVuZ3RoKSlmb3Iobi5jaGlsZHJlbj1uZXcgQXJyYXkoYSksbz1hLTE7bz49MDstLW8pYy5wdXNoKGk9bi5jaGlsZHJlbltvXT1uZXcgdEoocltvXSkpLGkucGFyZW50PW4saS5kZXB0aD1uLmRlcHRoKzE7cmV0dXJuIHMuZWFjaEJlZm9yZShRWil9ZnVuY3Rpb24gWloodCl7cmV0dXJuIHQuY2hpbGRyZW59ZnVuY3Rpb24gSloodCl7dC5kYXRhPXQuZGF0YS5kYXRhfWZ1bmN0aW9uIFFaKHQpe3ZhciBlPTA7ZG97dC5oZWlnaHQ9ZX13aGlsZSgodD10LnBhcmVudCkmJnQuaGVpZ2h0PCsrZSl9ZnVuY3Rpb24gdEoodCl7dGhpcy5kYXRhPXQsdGhpcy5kZXB0aD10aGlzLmhlaWdodD0wLHRoaXMucGFyZW50PW51bGx9SVouaW52ZXJ0PVBaKChmdW5jdGlvbih0KXtyZXR1cm4gdH0pKSxSWi5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm5bdCwyKklZKERZKGUpKS1DWV19LEJaLmludmVydD1CWixGWi5pbnZlcnQ9UFooSVkpLFVaLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciBuLGk9ZSxyPTI1O2Rve3ZhciBvPWkqaSxhPW8qbztpLT1uPShpKigxLjAwNzIyNitvKiguMDE1MDg1K2EqKC4wMjg4NzQqby0uMDQ0NDc1LS4wMDU5MTYqYSkpKS1lKS8oMS4wMDcyMjYrbyooLjA0NTI1NSthKiguMjU5ODY2Km8tLjMxMTMyNS0uMDA1OTE2KjExKmEpKSl9d2hpbGUoTlkobik+RVkmJi0tcj4wKTtyZXR1cm5bdC8oLjg3MDcrKG89aSppKSoobyoobypvKm8qKC4wMDM5NzEtLjAwMTUyOSpvKS0uMDEzNzkxKS0uMTMxOTc5KSksaV19LGpaLmludmVydD1QWihXWSksR1ouaW52ZXJ0PVBaKChmdW5jdGlvbih0KXtyZXR1cm4gMipJWSh0KX0pKSxXWi5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm5bLWUsMipJWShEWSh0KSktQ1ldfSx0Si5wcm90b3R5cGU9S1oucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp0Sixjb3VudDpmdW5jdGlvbiBlSigpe3JldHVybiB0aGlzLmVhY2hBZnRlcigkWil9LGVhY2g6ZnVuY3Rpb24gbkoodCl7dmFyIGUsbixpLHIsbz10aGlzLGE9W29dO2Rve2ZvcihlPWEucmV2ZXJzZSgpLGE9W107bz1lLnBvcCgpOylpZih0KG8pLG49by5jaGlsZHJlbilmb3IoaT0wLHI9bi5sZW5ndGg7aTxyOysraSlhLnB1c2gobltpXSl9d2hpbGUoYS5sZW5ndGgpO3JldHVybiB0aGlzfSxlYWNoQWZ0ZXI6ZnVuY3Rpb24gaUoodCl7Zm9yKHZhciBlLG4saSxyPXRoaXMsbz1bcl0sYT1bXTtyPW8ucG9wKCk7KWlmKGEucHVzaChyKSxlPXIuY2hpbGRyZW4pZm9yKG49MCxpPWUubGVuZ3RoO248aTsrK24pby5wdXNoKGVbbl0pO2Zvcig7cj1hLnBvcCgpOyl0KHIpO3JldHVybiB0aGlzfSxlYWNoQmVmb3JlOmZ1bmN0aW9uIHJKKHQpe2Zvcih2YXIgZSxuLGk9dGhpcyxyPVtpXTtpPXIucG9wKCk7KWlmKHQoaSksZT1pLmNoaWxkcmVuKWZvcihuPWUubGVuZ3RoLTE7bj49MDstLW4pci5wdXNoKGVbbl0pO3JldHVybiB0aGlzfSxzdW06ZnVuY3Rpb24gb0oodCl7cmV0dXJuIHRoaXMuZWFjaEFmdGVyKChmdW5jdGlvbihlKXtmb3IodmFyIG49K3QoZS5kYXRhKXx8MCxpPWUuY2hpbGRyZW4scj1pJiZpLmxlbmd0aDstLXI+PTA7KW4rPWlbcl0udmFsdWU7ZS52YWx1ZT1ufSkpfSxzb3J0OmZ1bmN0aW9uIGFKKHQpe3JldHVybiB0aGlzLmVhY2hCZWZvcmUoKGZ1bmN0aW9uKGUpe2UuY2hpbGRyZW4mJmUuY2hpbGRyZW4uc29ydCh0KX0pKX0scGF0aDpmdW5jdGlvbiBzSih0KXtmb3IodmFyIGU9dGhpcyxuPShmdW5jdGlvbiBpKHQsZSl7aWYodD09PWUpcmV0dXJuIHQ7dmFyIG49dC5hbmNlc3RvcnMoKSxpPWUuYW5jZXN0b3JzKCkscj1udWxsO3Q9bi5wb3AoKSxlPWkucG9wKCk7Zm9yKDt0PT09ZTspcj10LHQ9bi5wb3AoKSxlPWkucG9wKCk7cmV0dXJuIHJ9KShlLHQpLHI9W2VdO2UhPT1uOylyLnB1c2goZT1lLnBhcmVudCk7Zm9yKHZhciBvPXIubGVuZ3RoO3QhPT1uOylyLnNwbGljZShvLDAsdCksdD10LnBhcmVudDtyZXR1cm4gcn0sYW5jZXN0b3JzOmZ1bmN0aW9uIGxKKCl7Zm9yKHZhciB0PXRoaXMsZT1bdF07dD10LnBhcmVudDspZS5wdXNoKHQpO3JldHVybiBlfSxkZXNjZW5kYW50czpmdW5jdGlvbiBjSigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKGUpe3QucHVzaChlKX0pKSx0fSxsZWF2ZXM6ZnVuY3Rpb24gdUooKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5lYWNoQmVmb3JlKChmdW5jdGlvbihlKXtlLmNoaWxkcmVufHx0LnB1c2goZSl9KSksdH0sbGlua3M6ZnVuY3Rpb24gaEooKXt2YXIgdD10aGlzLGU9W107cmV0dXJuIHQuZWFjaCgoZnVuY3Rpb24obil7biE9PXQmJmUucHVzaCh7c291cmNlOm4ucGFyZW50LHRhcmdldDpufSl9KSksZX0sY29weTpmdW5jdGlvbiBkSigpe3JldHVybiBLWih0aGlzKS5lYWNoQmVmb3JlKEpaKX19O3ZhciBwSj1BcnJheS5wcm90b3R5cGUuc2xpY2U7ZnVuY3Rpb24gZkoodCl7Zm9yKHZhciBlLG4saT0wLHI9KHQ9KGZ1bmN0aW9uIG8odCl7Zm9yKHZhciBlLG4saT10Lmxlbmd0aDtpOyluPU1hdGgucmFuZG9tKCkqaS0tfDAsZT10W2ldLHRbaV09dFtuXSx0W25dPWU7cmV0dXJuIHR9KShwSi5jYWxsKHQpKSkubGVuZ3RoLGE9W107aTxyOyllPXRbaV0sbiYmX0oobixlKT8rK2k6KG49dkooYT1tSihhLGUpKSxpPTApO3JldHVybiBufWZ1bmN0aW9uIG1KKHQsZSl7dmFyIG4saTtpZih5SihlLHQpKXJldHVybltlXTtmb3Iobj0wO248dC5sZW5ndGg7KytuKWlmKGdKKGUsdFtuXSkmJnlKKGJKKHRbbl0sZSksdCkpcmV0dXJuW3Rbbl0sZV07Zm9yKG49MDtuPHQubGVuZ3RoLTE7KytuKWZvcihpPW4rMTtpPHQubGVuZ3RoOysraSlpZihnSihiSih0W25dLHRbaV0pLGUpJiZnSihiSih0W25dLGUpLHRbaV0pJiZnSihiSih0W2ldLGUpLHRbbl0pJiZ5Sih4Sih0W25dLHRbaV0sZSksdCkpcmV0dXJuW3Rbbl0sdFtpXSxlXTt0aHJvdyBuZXcgRXJyb3J9ZnVuY3Rpb24gZ0oodCxlKXt2YXIgbj10LnItZS5yLGk9ZS54LXQueCxyPWUueS10Lnk7cmV0dXJuIG48MHx8bipuPGkqaStyKnJ9ZnVuY3Rpb24gX0oodCxlKXt2YXIgbj10LnItZS5yKzFlLTYsaT1lLngtdC54LHI9ZS55LXQueTtyZXR1cm4gbj4wJiZuKm4+aSppK3Iqcn1mdW5jdGlvbiB5Sih0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7KytuKWlmKCFfSih0LGVbbl0pKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIHZKKHQpe3N3aXRjaCh0Lmxlbmd0aCl7Y2FzZSAxOnJldHVybihmdW5jdGlvbiBlKHQpe3JldHVybnt4OnQueCx5OnQueSxyOnQucn19KSh0WzBdKTtjYXNlIDI6cmV0dXJuIGJKKHRbMF0sdFsxXSk7Y2FzZSAzOnJldHVybiB4Sih0WzBdLHRbMV0sdFsyXSl9fWZ1bmN0aW9uIGJKKHQsZSl7dmFyIG49dC54LGk9dC55LHI9dC5yLG89ZS54LGE9ZS55LHM9ZS5yLGw9by1uLGM9YS1pLHU9cy1yLGg9TWF0aC5zcXJ0KGwqbCtjKmMpO3JldHVybnt4OihuK28rbC9oKnUpLzIseTooaSthK2MvaCp1KS8yLHI6KGgrcitzKS8yfX1mdW5jdGlvbiB4Sih0LGUsbil7dmFyIGk9dC54LHI9dC55LG89dC5yLGE9ZS54LHM9ZS55LGw9ZS5yLGM9bi54LHU9bi55LGg9bi5yLGQ9aS1hLHA9aS1jLGY9ci1zLG09ci11LGc9bC1vLF89aC1vLHk9aSppK3Iqci1vKm8sdj15LWEqYS1zKnMrbCpsLGI9eS1jKmMtdSp1K2gqaCx4PXAqZi1kKm0sdz0oZipiLW0qdikvKDIqeCktaSxTPShtKmctZipfKS94LE09KHAqdi1kKmIpLygyKngpLXIsRT0oZCpfLXAqZykveCxUPVMqUytFKkUtMSxDPTIqKG8rdypTK00qRSksQT13KncrTSpNLW8qbyxrPS0oVD8oQytNYXRoLnNxcnQoQypDLTQqVCpBKSkvKDIqVCk6QS9DKTtyZXR1cm57eDppK3crUyprLHk6citNK0UqayxyOmt9fWZ1bmN0aW9uIHdKKHQsZSxuKXt2YXIgaT10Lngscj10Lnksbz1lLnIrbi5yLGE9dC5yK24ucixzPWUueC1pLGw9ZS55LXIsYz1zKnMrbCpsO2lmKGMpe3ZhciB1PS41KygoYSo9YSktKG8qPW8pKS8oMipjKSxoPU1hdGguc3FydChNYXRoLm1heCgwLDIqbyooYStjKS0oYS09YykqYS1vKm8pKS8oMipjKTtuLng9aSt1KnMraCpsLG4ueT1yK3UqbC1oKnN9ZWxzZSBuLng9aSthLG4ueT1yfWZ1bmN0aW9uIFNKKHQsZSl7dmFyIG49ZS54LXQueCxpPWUueS10Lnkscj10LnIrZS5yO3JldHVybiByKnItMWUtNj5uKm4raSppfWZ1bmN0aW9uIE1KKHQpe3ZhciBlPXQuXyxuPXQubmV4dC5fLGk9ZS5yK24ucixyPShlLngqbi5yK24ueCplLnIpL2ksbz0oZS55Km4ucituLnkqZS5yKS9pO3JldHVybiByKnIrbypvfWZ1bmN0aW9uIEVKKHQpe3RoaXMuXz10LHRoaXMubmV4dD1udWxsLHRoaXMucHJldmlvdXM9bnVsbH1mdW5jdGlvbiBUSih0KXtpZighKHI9dC5sZW5ndGgpKXJldHVybiAwO3ZhciBlLG4saSxyLG8sYSxzLGwsYyx1LGg7aWYoKGU9dFswXSkueD0wLGUueT0wLCEocj4xKSlyZXR1cm4gZS5yO2lmKGUueD0tKG49dFsxXSkucixuLng9ZS5yLG4ueT0wLCEocj4yKSlyZXR1cm4gZS5yK24ucjt3SihuLGUsaT10WzJdKSxlPW5ldyBFSihlKSxuPW5ldyBFSihuKSxpPW5ldyBFSihpKSxlLm5leHQ9aS5wcmV2aW91cz1uLG4ubmV4dD1lLnByZXZpb3VzPWksaS5uZXh0PW4ucHJldmlvdXM9ZTt0OmZvcihzPTM7czxyOysrcyl7d0ooZS5fLG4uXyxpPXRbc10pLGk9bmV3IEVKKGkpLGw9bi5uZXh0LGM9ZS5wcmV2aW91cyx1PW4uXy5yLGg9ZS5fLnI7ZG97aWYodTw9aCl7aWYoU0oobC5fLGkuXykpe2UubmV4dD1uPWwsbi5wcmV2aW91cz1lLC0tcztjb250aW51ZSB0fXUrPWwuXy5yLGw9bC5uZXh0fWVsc2V7aWYoU0ooYy5fLGkuXykpeyhlPWMpLm5leHQ9bixuLnByZXZpb3VzPWUsLS1zO2NvbnRpbnVlIHR9aCs9Yy5fLnIsYz1jLnByZXZpb3VzfX13aGlsZShsIT09Yy5uZXh0KTtmb3IoaS5wcmV2aW91cz1lLGkubmV4dD1uLGUubmV4dD1uLnByZXZpb3VzPW49aSxvPU1KKGUpOyhpPWkubmV4dCkhPT1uOykoYT1NSihpKSk8byYmKGU9aSxvPWEpO249ZS5uZXh0fWZvcihlPVtuLl9dLGk9bjsoaT1pLm5leHQpIT09bjspZS5wdXNoKGkuXyk7Zm9yKGk9ZkooZSkscz0wO3M8cjsrK3MpKGU9dFtzXSkueC09aS54LGUueS09aS55O3JldHVybiBpLnJ9ZnVuY3Rpb24gQ0oodCl7cmV0dXJuIG51bGw9PXQ/bnVsbDpBSih0KX1mdW5jdGlvbiBBSih0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHR9ZnVuY3Rpb24ga0ooKXtyZXR1cm4gMH1mdW5jdGlvbiBMSih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gUEoodCl7cmV0dXJuIE1hdGguc3FydCh0LnZhbHVlKX1mdW5jdGlvbiBOSih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7ZS5jaGlsZHJlbnx8KGUucj1NYXRoLm1heCgwLCt0KGUpfHwwKSl9fWZ1bmN0aW9uIElKKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe2lmKGk9bi5jaGlsZHJlbil7dmFyIGkscixvLGE9aS5sZW5ndGgscz10KG4pKmV8fDA7aWYocylmb3Iocj0wO3I8YTsrK3IpaVtyXS5yKz1zO2lmKG89VEooaSkscylmb3Iocj0wO3I8YTsrK3IpaVtyXS5yLT1zO24ucj1vK3N9fX1mdW5jdGlvbiBSSih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49ZS5wYXJlbnQ7ZS5yKj10LG4mJihlLng9bi54K3QqZS54LGUueT1uLnkrdCplLnkpfX1mdW5jdGlvbiBPSih0KXt0LngwPU1hdGgucm91bmQodC54MCksdC55MD1NYXRoLnJvdW5kKHQueTApLHQueDE9TWF0aC5yb3VuZCh0LngxKSx0LnkxPU1hdGgucm91bmQodC55MSl9ZnVuY3Rpb24gekoodCxlLG4saSxyKXtmb3IodmFyIG8sYT10LmNoaWxkcmVuLHM9LTEsbD1hLmxlbmd0aCxjPXQudmFsdWUmJihpLWUpL3QudmFsdWU7KytzPGw7KShvPWFbc10pLnkwPW4sby55MT1yLG8ueDA9ZSxvLngxPWUrPW8udmFsdWUqY312YXIgREo9e2RlcHRoOi0xfSxCSj17fTtmdW5jdGlvbiBISih0KXtyZXR1cm4gdC5pZH1mdW5jdGlvbiBGSih0KXtyZXR1cm4gdC5wYXJlbnRJZH1mdW5jdGlvbiBWSih0LGUpe3JldHVybiB0LnBhcmVudD09PWUucGFyZW50PzE6Mn1mdW5jdGlvbiBVSih0KXt2YXIgZT10LmNoaWxkcmVuO3JldHVybiBlP2VbMF06dC50fWZ1bmN0aW9uIGpKKHQpe3ZhciBlPXQuY2hpbGRyZW47cmV0dXJuIGU/ZVtlLmxlbmd0aC0xXTp0LnR9ZnVuY3Rpb24gR0oodCxlLG4pe3ZhciBpPW4vKGUuaS10LmkpO2UuYy09aSxlLnMrPW4sdC5jKz1pLGUueis9bixlLm0rPW59ZnVuY3Rpb24gV0oodCxlLG4pe3JldHVybiB0LmEucGFyZW50PT09ZS5wYXJlbnQ/dC5hOm59ZnVuY3Rpb24gcUoodCxlKXt0aGlzLl89dCx0aGlzLnBhcmVudD1udWxsLHRoaXMuY2hpbGRyZW49bnVsbCx0aGlzLkE9bnVsbCx0aGlzLmE9dGhpcyx0aGlzLno9MCx0aGlzLm09MCx0aGlzLmM9MCx0aGlzLnM9MCx0aGlzLnQ9bnVsbCx0aGlzLmk9ZX1mdW5jdGlvbiBZSih0LGUsbixpLHIpe2Zvcih2YXIgbyxhPXQuY2hpbGRyZW4scz0tMSxsPWEubGVuZ3RoLGM9dC52YWx1ZSYmKHItbikvdC52YWx1ZTsrK3M8bDspKG89YVtzXSkueDA9ZSxvLngxPWksby55MD1uLG8ueTE9bis9by52YWx1ZSpjfXFKLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHRKLnByb3RvdHlwZSk7dmFyIFhKPSgxK01hdGguc3FydCg1KSkvMjtmdW5jdGlvbiAkSih0LGUsbixpLHIsbyl7Zm9yKHZhciBhLHMsbCxjLHUsaCxkLHAsZixtLGcsXz1bXSx5PWUuY2hpbGRyZW4sdj0wLGI9MCx4PXkubGVuZ3RoLHc9ZS52YWx1ZTt2PHg7KXtsPXItbixjPW8taTtkb3t1PXlbYisrXS52YWx1ZX13aGlsZSghdSYmYjx4KTtmb3IoaD1kPXUsZz11KnUqKG09TWF0aC5tYXgoYy9sLGwvYykvKHcqdCkpLGY9TWF0aC5tYXgoZC9nLGcvaCk7Yjx4OysrYil7aWYodSs9cz15W2JdLnZhbHVlLHM8aCYmKGg9cykscz5kJiYoZD1zKSxnPXUqdSptLChwPU1hdGgubWF4KGQvZyxnL2gpKT5mKXt1LT1zO2JyZWFrfWY9cH1fLnB1c2goYT17dmFsdWU6dSxkaWNlOmw8YyxjaGlsZHJlbjp5LnNsaWNlKHYsYil9KSxhLmRpY2U/ekooYSxuLGkscix3P2krPWMqdS93Om8pOllKKGEsbixpLHc/bis9bCp1L3c6cixvKSx3LT11LHY9Yn1yZXR1cm4gX312YXIgS0o9KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0LG4saSxyLG8peyRKKGUsdCxuLGkscixvKX1yZXR1cm4gbi5yYXRpbz1mdW5jdGlvbihlKXtyZXR1cm4gdCgoZT0rZSk+MT9lOjEpfSxufSkoWEopO3ZhciBaSj0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQsbixpLHIsbyl7aWYoKGE9dC5fc3F1YXJpZnkpJiZhLnJhdGlvPT09ZSlmb3IodmFyIGEscyxsLGMsdSxoPS0xLGQ9YS5sZW5ndGgscD10LnZhbHVlOysraDxkOyl7Zm9yKGw9KHM9YVtoXSkuY2hpbGRyZW4sYz1zLnZhbHVlPTAsdT1sLmxlbmd0aDtjPHU7KytjKXMudmFsdWUrPWxbY10udmFsdWU7cy5kaWNlP3pKKHMsbixpLHIsaSs9KG8taSkqcy52YWx1ZS9wKTpZSihzLG4saSxuKz0oci1uKSpzLnZhbHVlL3AsbykscC09cy52YWx1ZX1lbHNlIHQuX3NxdWFyaWZ5PWE9JEooZSx0LG4saSxyLG8pLGEucmF0aW89ZX1yZXR1cm4gbi5yYXRpbz1mdW5jdGlvbihlKXtyZXR1cm4gdCgoZT0rZSk+MT9lOjEpfSxufSkoWEopO2Z1bmN0aW9uIEpKKHQsZSxuKXt0LnByb3RvdHlwZT1lLnByb3RvdHlwZT1uLG4uY29uc3RydWN0b3I9dH1mdW5jdGlvbiBRSih0LGUpe3ZhciBuPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUpO2Zvcih2YXIgaSBpbiBlKW5baV09ZVtpXTtyZXR1cm4gbn1mdW5jdGlvbiB0USgpe312YXIgZVE9LjcsblE9MS9lUSxpUT0iXFxzKihbKy1dP1xcZCspXFxzKiIsclE9IlxccyooWystXT9cXGQqXFwuP1xcZCsoPzpbZUVdWystXT9cXGQrKT8pXFxzKiIsb1E9IlxccyooWystXT9cXGQqXFwuP1xcZCsoPzpbZUVdWystXT9cXGQrKT8pJVxccyoiLGFRPS9eIyhbMC05YS1mXXszLDh9KSQvLHNRPW5ldyBSZWdFeHAoIl5yZ2JcXCgiK1tpUSxpUSxpUV0rIlxcKSQiKSxsUT1uZXcgUmVnRXhwKCJecmdiXFwoIitbb1Esb1Esb1FdKyJcXCkkIiksY1E9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tpUSxpUSxpUSxyUV0rIlxcKSQiKSx1UT1uZXcgUmVnRXhwKCJecmdiYVxcKCIrW29RLG9RLG9RLHJRXSsiXFwpJCIpLGhRPW5ldyBSZWdFeHAoIl5oc2xcXCgiK1tyUSxvUSxvUV0rIlxcKSQiKSxkUT1uZXcgUmVnRXhwKCJeaHNsYVxcKCIrW3JRLG9RLG9RLHJRXSsiXFwpJCIpLHBRPXthbGljZWJsdWU6MTU3OTIzODMsYW50aXF1ZXdoaXRlOjE2NDQ0Mzc1LGFxdWE6NjU1MzUsYXF1YW1hcmluZTo4Mzg4NTY0LGF6dXJlOjE1Nzk0MTc1LGJlaWdlOjE2MTE5MjYwLGJpc3F1ZToxNjc3MDI0NCxibGFjazowLGJsYW5jaGVkYWxtb25kOjE2NzcyMDQ1LGJsdWU6MjU1LGJsdWV2aW9sZXQ6OTA1NTIwMixicm93bjoxMDgyNDIzNCxidXJseXdvb2Q6MTQ1OTYyMzEsY2FkZXRibHVlOjYyNjY1MjgsY2hhcnRyZXVzZTo4Mzg4MzUyLGNob2NvbGF0ZToxMzc4OTQ3MCxjb3JhbDoxNjc0NDI3Mixjb3JuZmxvd2VyYmx1ZTo2NTkxOTgxLGNvcm5zaWxrOjE2Nzc1Mzg4LGNyaW1zb246MTQ0MjMxMDAsY3lhbjo2NTUzNSxkYXJrYmx1ZToxMzksZGFya2N5YW46MzU3MjMsZGFya2dvbGRlbnJvZDoxMjA5MjkzOSxkYXJrZ3JheToxMTExOTAxNyxkYXJrZ3JlZW46MjU2MDAsZGFya2dyZXk6MTExMTkwMTcsZGFya2toYWtpOjEyNDMzMjU5LGRhcmttYWdlbnRhOjkxMDk2NDMsZGFya29saXZlZ3JlZW46NTU5Nzk5OSxkYXJrb3JhbmdlOjE2NzQ3NTIwLGRhcmtvcmNoaWQ6MTAwNDAwMTIsZGFya3JlZDo5MTA5NTA0LGRhcmtzYWxtb246MTUzMDg0MTAsZGFya3NlYWdyZWVuOjk0MTk5MTksZGFya3NsYXRlYmx1ZTo0NzM0MzQ3LGRhcmtzbGF0ZWdyYXk6MzEwMDQ5NSxkYXJrc2xhdGVncmV5OjMxMDA0OTUsZGFya3R1cnF1b2lzZTo1Mjk0NSxkYXJrdmlvbGV0Ojk2OTk1MzksZGVlcHBpbms6MTY3MTY5NDcsZGVlcHNreWJsdWU6NDkxNTEsZGltZ3JheTo2OTA4MjY1LGRpbWdyZXk6NjkwODI2NSxkb2RnZXJibHVlOjIwMDMxOTksZmlyZWJyaWNrOjExNjc0MTQ2LGZsb3JhbHdoaXRlOjE2Nzc1OTIwLGZvcmVzdGdyZWVuOjIyNjM4NDIsZnVjaHNpYToxNjcxMTkzNSxnYWluc2Jvcm86MTQ0NzQ0NjAsZ2hvc3R3aGl0ZToxNjMxNjY3MSxnb2xkOjE2NzY2NzIwLGdvbGRlbnJvZDoxNDMyOTEyMCxncmF5Ojg0MjE1MDQsZ3JlZW46MzI3NjgsZ3JlZW55ZWxsb3c6MTE0MDMwNTUsZ3JleTo4NDIxNTA0LGhvbmV5ZGV3OjE1Nzk0MTYwLGhvdHBpbms6MTY3Mzg3NDAsaW5kaWFucmVkOjEzNDU4NTI0LGluZGlnbzo0OTE1MzMwLGl2b3J5OjE2Nzc3MjAwLGtoYWtpOjE1Nzg3NjYwLGxhdmVuZGVyOjE1MTMyNDEwLGxhdmVuZGVyYmx1c2g6MTY3NzMzNjUsbGF3bmdyZWVuOjgxOTA5NzYsbGVtb25jaGlmZm9uOjE2Nzc1ODg1LGxpZ2h0Ymx1ZToxMTM5MzI1NCxsaWdodGNvcmFsOjE1NzYxNTM2LGxpZ2h0Y3lhbjoxNDc0NTU5OSxsaWdodGdvbGRlbnJvZHllbGxvdzoxNjQ0ODIxMCxsaWdodGdyYXk6MTM4ODIzMjMsbGlnaHRncmVlbjo5NDk4MjU2LGxpZ2h0Z3JleToxMzg4MjMyMyxsaWdodHBpbms6MTY3NTg0NjUsbGlnaHRzYWxtb246MTY3NTI3NjIsbGlnaHRzZWFncmVlbjoyMTQyODkwLGxpZ2h0c2t5Ymx1ZTo4OTAwMzQ2LGxpZ2h0c2xhdGVncmF5Ojc4MzM3NTMsbGlnaHRzbGF0ZWdyZXk6NzgzMzc1MyxsaWdodHN0ZWVsYmx1ZToxMTU4NDczNCxsaWdodHllbGxvdzoxNjc3NzE4NCxsaW1lOjY1MjgwLGxpbWVncmVlbjozMzI5MzMwLGxpbmVuOjE2NDQ1NjcwLG1hZ2VudGE6MTY3MTE5MzUsbWFyb29uOjgzODg2MDgsbWVkaXVtYXF1YW1hcmluZTo2NzM3MzIyLG1lZGl1bWJsdWU6MjA1LG1lZGl1bW9yY2hpZDoxMjIxMTY2NyxtZWRpdW1wdXJwbGU6OTY2MjY4MyxtZWRpdW1zZWFncmVlbjozOTc4MDk3LG1lZGl1bXNsYXRlYmx1ZTo4MDg3NzkwLG1lZGl1bXNwcmluZ2dyZWVuOjY0MTU0LG1lZGl1bXR1cnF1b2lzZTo0NzcyMzAwLG1lZGl1bXZpb2xldHJlZDoxMzA0NzE3MyxtaWRuaWdodGJsdWU6MTY0NDkxMixtaW50Y3JlYW06MTYxMjE4NTAsbWlzdHlyb3NlOjE2NzcwMjczLG1vY2Nhc2luOjE2NzcwMjI5LG5hdmFqb3doaXRlOjE2NzY4Njg1LG5hdnk6MTI4LG9sZGxhY2U6MTY2NDM1NTgsb2xpdmU6ODQyMTM3NixvbGl2ZWRyYWI6NzA0ODczOSxvcmFuZ2U6MTY3NTM5MjAsb3JhbmdlcmVkOjE2NzI5MzQ0LG9yY2hpZDoxNDMxNTczNCxwYWxlZ29sZGVucm9kOjE1NjU3MTMwLHBhbGVncmVlbjoxMDAyNTg4MCxwYWxldHVycXVvaXNlOjExNTI5OTY2LHBhbGV2aW9sZXRyZWQ6MTQzODEyMDMscGFwYXlhd2hpcDoxNjc3MzA3NyxwZWFjaHB1ZmY6MTY3Njc2NzMscGVydToxMzQ2ODk5MSxwaW5rOjE2NzYxMDM1LHBsdW06MTQ1MjQ2MzcscG93ZGVyYmx1ZToxMTU5MTkxMCxwdXJwbGU6ODM4ODczNixyZWJlY2NhcHVycGxlOjY2OTc4ODEscmVkOjE2NzExNjgwLHJvc3licm93bjoxMjM1NzUxOSxyb3lhbGJsdWU6NDI4Njk0NSxzYWRkbGVicm93bjo5MTI3MTg3LHNhbG1vbjoxNjQxNjg4MixzYW5keWJyb3duOjE2MDMyODY0LHNlYWdyZWVuOjMwNTAzMjcsc2Vhc2hlbGw6MTY3NzQ2Mzgsc2llbm5hOjEwNTA2Nzk3LHNpbHZlcjoxMjYzMjI1Nixza3libHVlOjg5MDAzMzEsc2xhdGVibHVlOjY5NzAwNjEsc2xhdGVncmF5OjczNzI5NDQsc2xhdGVncmV5OjczNzI5NDQsc25vdzoxNjc3NTkzMCxzcHJpbmdncmVlbjo2NTQwNyxzdGVlbGJsdWU6NDYyMDk4MCx0YW46MTM4MDg3ODAsdGVhbDozMjg5Nix0aGlzdGxlOjE0MjA0ODg4LHRvbWF0bzoxNjczNzA5NSx0dXJxdW9pc2U6NDI1MTg1Nix2aW9sZXQ6MTU2MzEwODYsd2hlYXQ6MTYxMTMzMzEsd2hpdGU6MTY3NzcyMTUsd2hpdGVzbW9rZToxNjExOTI4NSx5ZWxsb3c6MTY3NzY5NjAseWVsbG93Z3JlZW46MTAxNDUwNzR9O2Z1bmN0aW9uIGZRKCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0SGV4KCl9ZnVuY3Rpb24gbVEoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRSZ2IoKX1mdW5jdGlvbiBnUSh0KXt2YXIgZSxuO3JldHVybiB0PSh0KyIiKS50cmltKCkudG9Mb3dlckNhc2UoKSwoZT1hUS5leGVjKHQpKT8obj1lWzFdLmxlbmd0aCxlPXBhcnNlSW50KGVbMV0sMTYpLDY9PT1uP19RKGUpOjM9PT1uP25ldyB4UShlPj44JjE1fGU+PjQmMjQwLGU+PjQmMTV8MjQwJmUsKDE1JmUpPDw0fDE1JmUsMSk6OD09PW4/eVEoZT4+MjQmMjU1LGU+PjE2JjI1NSxlPj44JjI1NSwoMjU1JmUpLzI1NSk6ND09PW4/eVEoZT4+MTImMTV8ZT4+OCYyNDAsZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgoMTUmZSk8PDR8MTUmZSkvMjU1KTpudWxsKTooZT1zUS5leGVjKHQpKT9uZXcgeFEoZVsxXSxlWzJdLGVbM10sMSk6KGU9bFEuZXhlYyh0KSk/bmV3IHhRKDI1NSplWzFdLzEwMCwyNTUqZVsyXS8xMDAsMjU1KmVbM10vMTAwLDEpOihlPWNRLmV4ZWModCkpP3lRKGVbMV0sZVsyXSxlWzNdLGVbNF0pOihlPXVRLmV4ZWModCkpP3lRKDI1NSplWzFdLzEwMCwyNTUqZVsyXS8xMDAsMjU1KmVbM10vMTAwLGVbNF0pOihlPWhRLmV4ZWModCkpP0VRKGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsMSk6KGU9ZFEuZXhlYyh0KSk/RVEoZVsxXSxlWzJdLzEwMCxlWzNdLzEwMCxlWzRdKTpwUS5oYXNPd25Qcm9wZXJ0eSh0KT9fUShwUVt0XSk6InRyYW5zcGFyZW50Ij09PXQ/bmV3IHhRKE5hTixOYU4sTmFOLDApOm51bGx9ZnVuY3Rpb24gX1EodCl7cmV0dXJuIG5ldyB4USh0Pj4xNiYyNTUsdD4+OCYyNTUsMjU1JnQsMSl9ZnVuY3Rpb24geVEodCxlLG4saSl7cmV0dXJuIGk8PTAmJih0PWU9bj1OYU4pLG5ldyB4USh0LGUsbixpKX1mdW5jdGlvbiB2USh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIHRRfHwodD1nUSh0KSksdD9uZXcgeFEoKHQ9dC5yZ2IoKSkucix0LmcsdC5iLHQub3BhY2l0eSk6bmV3IHhRfWZ1bmN0aW9uIGJRKHQsZSxuLGkpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD92USh0KTpuZXcgeFEodCxlLG4sbnVsbD09aT8xOmkpfWZ1bmN0aW9uIHhRKHQsZSxuLGkpe3RoaXMucj0rdCx0aGlzLmc9K2UsdGhpcy5iPStuLHRoaXMub3BhY2l0eT0raX1mdW5jdGlvbiB3USgpe3JldHVybiIjIitNUSh0aGlzLnIpK01RKHRoaXMuZykrTVEodGhpcy5iKX1mdW5jdGlvbiBTUSgpe3ZhciB0PXRoaXMub3BhY2l0eTtyZXR1cm4oMT09PSh0PWlzTmFOKHQpPzE6TWF0aC5tYXgoMCxNYXRoLm1pbigxLHQpKSk/InJnYigiOiJyZ2JhKCIpK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5yKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmcpfHwwKSkrIiwgIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMuYil8fDApKSsoMT09PXQ/IikiOiIsICIrdCsiKSIpfWZ1bmN0aW9uIE1RKHQpe3JldHVybigodD1NYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHQpfHwwKSkpPDE2PyIwIjoiIikrdC50b1N0cmluZygxNil9ZnVuY3Rpb24gRVEodCxlLG4saSl7cmV0dXJuIGk8PTA/dD1lPW49TmFOOm48PTB8fG4+PTE/dD1lPU5hTjplPD0wJiYodD1OYU4pLG5ldyBBUSh0LGUsbixpKX1mdW5jdGlvbiBUUSh0KXtpZih0IGluc3RhbmNlb2YgQVEpcmV0dXJuIG5ldyBBUSh0LmgsdC5zLHQubCx0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiB0UXx8KHQ9Z1EodCkpLCF0KXJldHVybiBuZXcgQVE7aWYodCBpbnN0YW5jZW9mIEFRKXJldHVybiB0O3ZhciBlPSh0PXQucmdiKCkpLnIvMjU1LG49dC5nLzI1NSxpPXQuYi8yNTUscj1NYXRoLm1pbihlLG4saSksbz1NYXRoLm1heChlLG4saSksYT1OYU4scz1vLXIsbD0obytyKS8yO3JldHVybiBzPyhhPWU9PT1vPyhuLWkpL3MrNioobjxpKTpuPT09bz8oaS1lKS9zKzI6KGUtbikvcys0LHMvPWw8LjU/bytyOjItby1yLGEqPTYwKTpzPWw+MCYmbDwxPzA6YSxuZXcgQVEoYSxzLGwsdC5vcGFjaXR5KX1mdW5jdGlvbiBDUSh0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/VFEodCk6bmV3IEFRKHQsZSxuLG51bGw9PWk/MTppKX1mdW5jdGlvbiBBUSh0LGUsbixpKXt0aGlzLmg9K3QsdGhpcy5zPStlLHRoaXMubD0rbix0aGlzLm9wYWNpdHk9K2l9ZnVuY3Rpb24ga1EodCxlLG4pe3JldHVybiAyNTUqKHQ8NjA/ZSsobi1lKSp0LzYwOnQ8MTgwP246dDwyNDA/ZSsobi1lKSooMjQwLXQpLzYwOmUpfUpKKHRRLGdRLHtjb3B5OmZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuYXNzaWduKG5ldyB0aGlzLmNvbnN0cnVjdG9yLHRoaXMsdCl9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmdiKCkuZGlzcGxheWFibGUoKX0saGV4OmZRLGZvcm1hdEhleDpmUSxmb3JtYXRIc2w6ZnVuY3Rpb24gTFEoKXtyZXR1cm4gVFEodGhpcykuZm9ybWF0SHNsKCl9LGZvcm1hdFJnYjptUSx0b1N0cmluZzptUX0pLEpKKHhRLGJRLFFKKHRRLHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10P25ROk1hdGgucG93KG5RLHQpLG5ldyB4USh0aGlzLnIqdCx0aGlzLmcqdCx0aGlzLmIqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9lUTpNYXRoLnBvdyhlUSx0KSxuZXcgeFEodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuLS41PD10aGlzLnImJnRoaXMucjwyNTUuNSYmLS41PD10aGlzLmcmJnRoaXMuZzwyNTUuNSYmLS41PD10aGlzLmImJnRoaXMuYjwyNTUuNSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9LGhleDp3USxmb3JtYXRIZXg6d1EsZm9ybWF0UmdiOlNRLHRvU3RyaW5nOlNRfSkpLEpKKEFRLENRLFFKKHRRLHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10P25ROk1hdGgucG93KG5RLHQpLG5ldyBBUSh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10P2VROk1hdGgucG93KGVRLHQpLG5ldyBBUSh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuaCUzNjArMzYwKih0aGlzLmg8MCksZT1pc05hTih0KXx8aXNOYU4odGhpcy5zKT8wOnRoaXMucyxuPXRoaXMubCxpPW4rKG48LjU/bjoxLW4pKmUscj0yKm4taTtyZXR1cm4gbmV3IHhRKGtRKHQ+PTI0MD90LTI0MDp0KzEyMCxyLGkpLGtRKHQscixpKSxrUSh0PDEyMD90KzI0MDp0LTEyMCxyLGkpLHRoaXMub3BhY2l0eSl9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuKDA8PXRoaXMucyYmdGhpcy5zPD0xfHxpc05hTih0aGlzLnMpKSYmMDw9dGhpcy5sJiZ0aGlzLmw8PTEmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxmb3JtYXRIc2w6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpPyJoc2woIjoiaHNsYSgiKSsodGhpcy5ofHwwKSsiLCAiKzEwMCoodGhpcy5zfHwwKSsiJSwgIisxMDAqKHRoaXMubHx8MCkrIiUiKygxPT09dD8iKSI6IiwgIit0KyIpIil9fSkpO3ZhciBQUT1NYXRoLlBJLzE4MCxOUT0xODAvTWF0aC5QSSxJUT0uOTY0MjIsUlE9LjgyNTIxLE9RPTQvMjkselE9Ni8yOSxEUT0zKnpRKnpRO2Z1bmN0aW9uIEJRKHQpe2lmKHQgaW5zdGFuY2VvZiBGUSlyZXR1cm4gbmV3IEZRKHQubCx0LmEsdC5iLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIFlRKXJldHVybiBYUSh0KTt0IGluc3RhbmNlb2YgeFF8fCh0PXZRKHQpKTt2YXIgZSxuLGk9R1EodC5yKSxyPUdRKHQuZyksbz1HUSh0LmIpLGE9VlEoKC4yMjI1MDQ1KmkrLjcxNjg3ODYqcisuMDYwNjE2OSpvKS8xKTtyZXR1cm4gaT09PXImJnI9PT1vP2U9bj1hOihlPVZRKCguNDM2MDc0NyppKy4zODUwNjQ5KnIrLjE0MzA4MDQqbykvSVEpLG49VlEoKC4wMTM5MzIyKmkrLjA5NzEwNDUqcisuNzE0MTczMypvKS9SUSkpLG5ldyBGUSgxMTYqYS0xNiw1MDAqKGUtYSksMjAwKihhLW4pLHQub3BhY2l0eSl9ZnVuY3Rpb24gSFEodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP0JRKHQpOm5ldyBGUSh0LGUsbixudWxsPT1pPzE6aSl9ZnVuY3Rpb24gRlEodCxlLG4saSl7dGhpcy5sPSt0LHRoaXMuYT0rZSx0aGlzLmI9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIFZRKHQpe3JldHVybiB0Pi4wMDg4NTY0NTE2NzkwMzU2MzE/TWF0aC5wb3codCwxLzMpOnQvRFErT1F9ZnVuY3Rpb24gVVEodCl7cmV0dXJuIHQ+elE/dCp0KnQ6RFEqKHQtT1EpfWZ1bmN0aW9uIGpRKHQpe3JldHVybiAyNTUqKHQ8PS4wMDMxMzA4PzEyLjkyKnQ6MS4wNTUqTWF0aC5wb3codCwxLzIuNCktLjA1NSl9ZnVuY3Rpb24gR1EodCl7cmV0dXJuKHQvPTI1NSk8PS4wNDA0NT90LzEyLjkyOk1hdGgucG93KCh0Ky4wNTUpLzEuMDU1LDIuNCl9ZnVuY3Rpb24gV1EodCl7aWYodCBpbnN0YW5jZW9mIFlRKXJldHVybiBuZXcgWVEodC5oLHQuYyx0LmwsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2YgRlF8fCh0PUJRKHQpKSwwPT09dC5hJiYwPT09dC5iKXJldHVybiBuZXcgWVEoTmFOLDA8dC5sJiZ0Lmw8MTAwPzA6TmFOLHQubCx0Lm9wYWNpdHkpO3ZhciBlPU1hdGguYXRhbjIodC5iLHQuYSkqTlE7cmV0dXJuIG5ldyBZUShlPDA/ZSszNjA6ZSxNYXRoLnNxcnQodC5hKnQuYSt0LmIqdC5iKSx0LmwsdC5vcGFjaXR5KX1mdW5jdGlvbiBxUSh0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/V1EodCk6bmV3IFlRKHQsZSxuLG51bGw9PWk/MTppKX1mdW5jdGlvbiBZUSh0LGUsbixpKXt0aGlzLmg9K3QsdGhpcy5jPStlLHRoaXMubD0rbix0aGlzLm9wYWNpdHk9K2l9ZnVuY3Rpb24gWFEodCl7aWYoaXNOYU4odC5oKSlyZXR1cm4gbmV3IEZRKHQubCwwLDAsdC5vcGFjaXR5KTt2YXIgZT10LmgqUFE7cmV0dXJuIG5ldyBGUSh0LmwsTWF0aC5jb3MoZSkqdC5jLE1hdGguc2luKGUpKnQuYyx0Lm9wYWNpdHkpfUpKKEZRLEhRLFFKKHRRLHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IEZRKHRoaXMubCsxOCoobnVsbD09dD8xOnQpLHRoaXMuYSx0aGlzLmIsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRlEodGhpcy5sLTE4KihudWxsPT10PzE6dCksdGhpcy5hLHRoaXMuYix0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD0odGhpcy5sKzE2KS8xMTYsZT1pc05hTih0aGlzLmEpP3Q6dCt0aGlzLmEvNTAwLG49aXNOYU4odGhpcy5iKT90OnQtdGhpcy5iLzIwMDtyZXR1cm4gbmV3IHhRKGpRKDMuMTMzODU2MSooZT1JUSpVUShlKSktMS42MTY4NjY3Kih0PTEqVVEodCkpLS40OTA2MTQ2KihuPVJRKlVRKG4pKSksalEoLS45Nzg3Njg0KmUrMS45MTYxNDE1KnQrLjAzMzQ1NCpuKSxqUSguMDcxOTQ1MyplLS4yMjg5OTE0KnQrMS40MDUyNDI3Km4pLHRoaXMub3BhY2l0eSl9fSkpLEpKKFlRLHFRLFFKKHRRLHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IFlRKHRoaXMuaCx0aGlzLmMsdGhpcy5sKzE4KihudWxsPT10PzE6dCksdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgWVEodGhpcy5oLHRoaXMuYyx0aGlzLmwtMTgqKG51bGw9PXQ/MTp0KSx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXtyZXR1cm4gWFEodGhpcykucmdiKCl9fSkpO3ZhciAkUT0tLjE0ODYxLEtRPTEuNzgyNzcsWlE9LS4yOTIyNyxKUT0tLjkwNjQ5LFFRPTEuOTcyOTQsdDE9UVEqSlEsZTE9UVEqS1EsbjE9S1EqWlEtSlEqJFE7ZnVuY3Rpb24gaTEodCl7aWYodCBpbnN0YW5jZW9mIG8xKXJldHVybiBuZXcgbzEodC5oLHQucyx0LmwsdC5vcGFjaXR5KTt0IGluc3RhbmNlb2YgeFF8fCh0PXZRKHQpKTt2YXIgZT10LmcvMjU1LG49dC5iLzI1NSxpPShuMSpuK3QxKih0LnIvMjU1KS1lMSplKS8tNS45NjE1MTIyOTEyLHI9bi1pLG89KFFRKihlLWkpLVpRKnIpL0pRLGE9TWF0aC5zcXJ0KG8qbytyKnIpLyhRUSppKigxLWkpKSxzPWE/TWF0aC5hdGFuMihvLHIpKk5RLTEyMDpOYU47cmV0dXJuIG5ldyBvMShzPDA/cyszNjA6cyxhLGksdC5vcGFjaXR5KX1mdW5jdGlvbiByMSh0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/aTEodCk6bmV3IG8xKHQsZSxuLG51bGw9PWk/MTppKX1mdW5jdGlvbiBvMSh0LGUsbixpKXt0aGlzLmg9K3QsdGhpcy5zPStlLHRoaXMubD0rbix0aGlzLm9wYWNpdHk9K2l9ZnVuY3Rpb24gYTEodCxlLG4saSxyKXt2YXIgbz10KnQsYT1vKnQ7cmV0dXJuKCgxLTMqdCszKm8tYSkqZSsoNC02Km8rMyphKSpuKygxKzMqdCszKm8tMyphKSppK2EqcikvNn1mdW5jdGlvbiBzMSh0KXt2YXIgZT10Lmxlbmd0aC0xO3JldHVybiBmdW5jdGlvbihuKXt2YXIgaT1uPD0wP249MDpuPj0xPyhuPTEsZS0xKTpNYXRoLmZsb29yKG4qZSkscj10W2ldLG89dFtpKzFdO3JldHVybiBhMSgobi1pL2UpKmUsaT4wP3RbaS0xXToyKnItbyxyLG8saTxlLTE/dFtpKzJdOjIqby1yKX19ZnVuY3Rpb24gbDEodCl7dmFyIGU9dC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpPU1hdGguZmxvb3IoKChuJT0xKTwwPysrbjpuKSplKTtyZXR1cm4gYTEoKG4taS9lKSplLHRbKGkrZS0xKSVlXSx0W2klZV0sdFsoaSsxKSVlXSx0WyhpKzIpJWVdKX19ZnVuY3Rpb24gYzEodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIHUxKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0K24qZX19ZnVuY3Rpb24gaDEodCxlKXt2YXIgbj1lLXQ7cmV0dXJuIG4/dTEodCxuPjE4MHx8bjwtMTgwP24tMzYwKk1hdGgucm91bmQobi8zNjApOm4pOmMxKGlzTmFOKHQpP2U6dCl9ZnVuY3Rpb24gZDEodCl7cmV0dXJuIDE9PSh0PSt0KT9wMTpmdW5jdGlvbihlLG4pe3JldHVybiBuLWU/KGZ1bmN0aW9uIGkodCxlLG4pe3JldHVybiB0PU1hdGgucG93KHQsbiksZT1NYXRoLnBvdyhlLG4pLXQsbj0xL24sZnVuY3Rpb24oaSl7cmV0dXJuIE1hdGgucG93KHQraSplLG4pfX0pKGUsbix0KTpjMShpc05hTihlKT9uOmUpfX1mdW5jdGlvbiBwMSh0LGUpe3ZhciBuPWUtdDtyZXR1cm4gbj91MSh0LG4pOmMxKGlzTmFOKHQpP2U6dCl9SkoobzEscjEsUUoodFEse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/blE6TWF0aC5wb3coblEsdCksbmV3IG8xKHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/ZVE6TWF0aC5wb3coZVEsdCksbmV3IG8xKHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9aXNOYU4odGhpcy5oKT8wOih0aGlzLmgrMTIwKSpQUSxlPSt0aGlzLmwsbj1pc05hTih0aGlzLnMpPzA6dGhpcy5zKmUqKDEtZSksaT1NYXRoLmNvcyh0KSxyPU1hdGguc2luKHQpO3JldHVybiBuZXcgeFEoMjU1KihlK24qKCRRKmkrS1EqcikpLDI1NSooZStuKihaUSppK0pRKnIpKSwyNTUqKGUrbiooUVEqaSkpLHRoaXMub3BhY2l0eSl9fSkpO3ZhciBmMT0oZnVuY3Rpb24gdChlKXt2YXIgbj1kMShlKTtmdW5jdGlvbiBpKHQsZSl7dmFyIGk9bigodD1iUSh0KSkuciwoZT1iUShlKSkucikscj1uKHQuZyxlLmcpLG89bih0LmIsZS5iKSxhPXAxKHQub3BhY2l0eSxlLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5yPWkoZSksdC5nPXIoZSksdC5iPW8oZSksdC5vcGFjaXR5PWEoZSksdCsiIn19cmV0dXJuIGkuZ2FtbWE9dCxpfSkoMSk7ZnVuY3Rpb24gbTEodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuLGkscj1lLmxlbmd0aCxvPW5ldyBBcnJheShyKSxhPW5ldyBBcnJheShyKSxzPW5ldyBBcnJheShyKTtmb3Iobj0wO248cjsrK24paT1iUShlW25dKSxvW25dPWkucnx8MCxhW25dPWkuZ3x8MCxzW25dPWkuYnx8MDtyZXR1cm4gbz10KG8pLGE9dChhKSxzPXQocyksaS5vcGFjaXR5PTEsZnVuY3Rpb24odCl7cmV0dXJuIGkucj1vKHQpLGkuZz1hKHQpLGkuYj1zKHQpLGkrIiJ9fX12YXIgZzE9bTEoczEpLF8xPW0xKGwxKTtmdW5jdGlvbiB5MSh0LGUpe3ZhciBuLGk9ZT9lLmxlbmd0aDowLHI9dD9NYXRoLm1pbihpLHQubGVuZ3RoKTowLG89bmV3IEFycmF5KHIpLGE9bmV3IEFycmF5KGkpO2ZvcihuPTA7bjxyOysrbilvW25dPUUxKHRbbl0sZVtuXSk7Zm9yKDtuPGk7KytuKWFbbl09ZVtuXTtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKG49MDtuPHI7KytuKWFbbl09b1tuXSh0KTtyZXR1cm4gYX19ZnVuY3Rpb24gdjEodCxlKXt2YXIgbj1uZXcgRGF0ZTtyZXR1cm4gZS09dD0rdCxmdW5jdGlvbihpKXtyZXR1cm4gbi5zZXRUaW1lKHQrZSppKSxufX1mdW5jdGlvbiBiMSh0LGUpe3JldHVybiBlLT10PSt0LGZ1bmN0aW9uKG4pe3JldHVybiB0K2Uqbn19ZnVuY3Rpb24geDEodCxlKXt2YXIgbixpPXt9LHI9e307Zm9yKG4gaW4gbnVsbCE9PXQmJiJvYmplY3QiPT10eXBlb2YgdHx8KHQ9e30pLG51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGV8fChlPXt9KSxlKW4gaW4gdD9pW25dPUUxKHRbbl0sZVtuXSk6cltuXT1lW25dO3JldHVybiBmdW5jdGlvbih0KXtmb3IobiBpbiBpKXJbbl09aVtuXSh0KTtyZXR1cm4gcn19dmFyIHcxPS9bLStdPyg/OlxkK1wuP1xkKnxcLj9cZCspKD86W2VFXVstK10/XGQrKT8vZyxTMT1uZXcgUmVnRXhwKHcxLnNvdXJjZSwiZyIpO2Z1bmN0aW9uIE0xKHQsZSl7dmFyIG4saSxyLG89dzEubGFzdEluZGV4PVMxLmxhc3RJbmRleD0wLGE9LTEscz1bXSxsPVtdO2Zvcih0Kz0iIixlKz0iIjsobj13MS5leGVjKHQpKSYmKGk9UzEuZXhlYyhlKSk7KShyPWkuaW5kZXgpPm8mJihyPWUuc2xpY2UobyxyKSxzW2FdP3NbYV0rPXI6c1srK2FdPXIpLChuPW5bMF0pPT09KGk9aVswXSk/c1thXT9zW2FdKz1pOnNbKythXT1pOihzWysrYV09bnVsbCxsLnB1c2goe2k6YSx4OmIxKG4saSl9KSksbz1TMS5sYXN0SW5kZXg7cmV0dXJuIG88ZS5sZW5ndGgmJihyPWUuc2xpY2Uobyksc1thXT9zW2FdKz1yOnNbKythXT1yKSxzLmxlbmd0aDwyP2xbMF0/KGZ1bmN0aW9uIGModCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0KGUpKyIifX0pKGxbMF0ueCk6KGZ1bmN0aW9uIHUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fSkoZSk6KGU9bC5sZW5ndGgsZnVuY3Rpb24odCl7Zm9yKHZhciBuLGk9MDtpPGU7KytpKXNbKG49bFtpXSkuaV09bi54KHQpO3JldHVybiBzLmpvaW4oIiIpfSl9ZnVuY3Rpb24gRTEodCxlKXt2YXIgbixpPXR5cGVvZiBlO3JldHVybiBudWxsPT1lfHwiYm9vbGVhbiI9PT1pP2MxKGUpOigibnVtYmVyIj09PWk/YjE6InN0cmluZyI9PT1pPyhuPWdRKGUpKT8oZT1uLGYxKTpNMTplIGluc3RhbmNlb2YgZ1E/ZjE6ZSBpbnN0YW5jZW9mIERhdGU/djE6QXJyYXkuaXNBcnJheShlKT95MToiZnVuY3Rpb24iIT10eXBlb2YgZS52YWx1ZU9mJiYiZnVuY3Rpb24iIT10eXBlb2YgZS50b1N0cmluZ3x8aXNOYU4oZSk/eDE6YjEpKHQsZSl9dmFyIFQxLEMxLEExLGsxLEwxPTE4MC9NYXRoLlBJLFAxPXt0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowLHJvdGF0ZTowLHNrZXdYOjAsc2NhbGVYOjEsc2NhbGVZOjF9O2Z1bmN0aW9uIE4xKHQsZSxuLGkscixvKXt2YXIgYSxzLGw7cmV0dXJuKGE9TWF0aC5zcXJ0KHQqdCtlKmUpKSYmKHQvPWEsZS89YSksKGw9dCpuK2UqaSkmJihuLT10KmwsaS09ZSpsKSwocz1NYXRoLnNxcnQobipuK2kqaSkpJiYobi89cyxpLz1zLGwvPXMpLHQqaTxlKm4mJih0PS10LGU9LWUsbD0tbCxhPS1hKSx7dHJhbnNsYXRlWDpyLHRyYW5zbGF0ZVk6byxyb3RhdGU6TWF0aC5hdGFuMihlLHQpKkwxLHNrZXdYOk1hdGguYXRhbihsKSpMMSxzY2FsZVg6YSxzY2FsZVk6c319ZnVuY3Rpb24gSTEodCxlLG4saSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gdC5sZW5ndGg/dC5wb3AoKSsiICI6IiJ9cmV0dXJuIGZ1bmN0aW9uKG8sYSl7dmFyIHM9W10sbD1bXTtyZXR1cm4gbz10KG8pLGE9dChhKSwoZnVuY3Rpb24gYyh0LGkscixvLGEscyl7aWYodCE9PXJ8fGkhPT1vKXt2YXIgbD1hLnB1c2goInRyYW5zbGF0ZSgiLG51bGwsZSxudWxsLG4pO3MucHVzaCh7aTpsLTQseDpiMSh0LHIpfSx7aTpsLTIseDpiMShpLG8pfSl9ZWxzZShyfHxvKSYmYS5wdXNoKCJ0cmFuc2xhdGUoIityK2UrbytuKX0pKG8udHJhbnNsYXRlWCxvLnRyYW5zbGF0ZVksYS50cmFuc2xhdGVYLGEudHJhbnNsYXRlWSxzLGwpLChmdW5jdGlvbiB1KHQsZSxuLG8pe3QhPT1lPyh0LWU+MTgwP2UrPTM2MDplLXQ+MTgwJiYodCs9MzYwKSxvLnB1c2goe2k6bi5wdXNoKHIobikrInJvdGF0ZSgiLG51bGwsaSktMix4OmIxKHQsZSl9KSk6ZSYmbi5wdXNoKHIobikrInJvdGF0ZSgiK2UraSl9KShvLnJvdGF0ZSxhLnJvdGF0ZSxzLGwpLChmdW5jdGlvbiBoKHQsZSxuLG8pe3QhPT1lP28ucHVzaCh7aTpuLnB1c2gocihuKSsic2tld1goIixudWxsLGkpLTIseDpiMSh0LGUpfSk6ZSYmbi5wdXNoKHIobikrInNrZXdYKCIrZStpKX0pKG8uc2tld1gsYS5za2V3WCxzLGwpLChmdW5jdGlvbiBkKHQsZSxuLGksbyxhKXtpZih0IT09bnx8ZSE9PWkpe3ZhciBzPW8ucHVzaChyKG8pKyJzY2FsZSgiLG51bGwsIiwiLG51bGwsIikiKTthLnB1c2goe2k6cy00LHg6YjEodCxuKX0se2k6cy0yLHg6YjEoZSxpKX0pfWVsc2UgMT09PW4mJjE9PT1pfHxvLnB1c2gocihvKSsic2NhbGUoIituKyIsIitpKyIpIil9KShvLnNjYWxlWCxvLnNjYWxlWSxhLnNjYWxlWCxhLnNjYWxlWSxzLGwpLG89YT1udWxsLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPS0xLGk9bC5sZW5ndGg7KytuPGk7KXNbKGU9bFtuXSkuaV09ZS54KHQpO3JldHVybiBzLmpvaW4oIiIpfX19dmFyIFIxPUkxKChmdW5jdGlvbiBPMSh0KXtyZXR1cm4ibm9uZSI9PT10P1AxOihUMXx8KFQxPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpLEMxPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxBMT1kb2N1bWVudC5kZWZhdWx0VmlldyksVDEuc3R5bGUudHJhbnNmb3JtPXQsdD1BMS5nZXRDb21wdXRlZFN0eWxlKEMxLmFwcGVuZENoaWxkKFQxKSxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ0cmFuc2Zvcm0iKSxDMS5yZW1vdmVDaGlsZChUMSksTjEoKyh0PXQuc2xpY2UoNywtMSkuc3BsaXQoIiwiKSlbMF0sK3RbMV0sK3RbMl0sK3RbM10sK3RbNF0sK3RbNV0pKX0pLCJweCwgIiwicHgpIiwiZGVnKSIpLHoxPUkxKChmdW5jdGlvbiBEMSh0KXtyZXR1cm4gbnVsbD09dD9QMTooazF8fChrMT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZyIpKSxrMS5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsdCksKHQ9azEudHJhbnNmb3JtLmJhc2VWYWwuY29uc29saWRhdGUoKSk/TjEoKHQ9dC5tYXRyaXgpLmEsdC5iLHQuYyx0LmQsdC5lLHQuZik6UDEpfSksIiwgIiwiKSIsIikiKSxCMT1NYXRoLlNRUlQyO2Z1bmN0aW9uIEgxKHQpe3JldHVybigodD1NYXRoLmV4cCh0KSkrMS90KS8yfWZ1bmN0aW9uIEYxKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZhciBpPXQoKGU9Q1EoZSkpLmgsKG49Q1EobikpLmgpLHI9cDEoZS5zLG4ucyksbz1wMShlLmwsbi5sKSxhPXAxKGUub3BhY2l0eSxuLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5oPWkodCksZS5zPXIodCksZS5sPW8odCksZS5vcGFjaXR5PWEodCksZSsiIn19fXZhciBWMT1GMShoMSksVTE9RjEocDEpO2Z1bmN0aW9uIGoxKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZhciBpPXQoKGU9cVEoZSkpLmgsKG49cVEobikpLmgpLHI9cDEoZS5jLG4uYyksbz1wMShlLmwsbi5sKSxhPXAxKGUub3BhY2l0eSxuLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5oPWkodCksZS5jPXIodCksZS5sPW8odCksZS5vcGFjaXR5PWEodCksZSsiIn19fXZhciBHMT1qMShoMSksVzE9ajEocDEpO2Z1bmN0aW9uIHExKHQpe3JldHVybihmdW5jdGlvbiBlKG4pe2Z1bmN0aW9uIGkoZSxpKXt2YXIgcj10KChlPXIxKGUpKS5oLChpPXIxKGkpKS5oKSxvPXAxKGUucyxpLnMpLGE9cDEoZS5sLGkubCkscz1wMShlLm9wYWNpdHksaS5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuaD1yKHQpLGUucz1vKHQpLGUubD1hKE1hdGgucG93KHQsbikpLGUub3BhY2l0eT1zKHQpLGUrIiJ9fXJldHVybiBuPStuLGkuZ2FtbWE9ZSxpfSkoMSl9dmFyIFkxPXExKGgxKSxYMT1xMShwMSk7dmFyICQxPU1hdGguUEksSzE9MiokMSxaMT0xZS02LEoxPUsxLVoxO2Z1bmN0aW9uIFExKCl7dGhpcy5feDA9dGhpcy5feTA9dGhpcy5feDE9dGhpcy5feTE9bnVsbCx0aGlzLl89IiJ9ZnVuY3Rpb24gdDAoKXtyZXR1cm4gbmV3IFExfWZ1bmN0aW9uIGUwKHQsZSxuKXtyZXR1cm4oZVswXS10WzBdKSooblsxXS10WzFdKS0oZVsxXS10WzFdKSooblswXS10WzBdKX1mdW5jdGlvbiBuMCh0LGUpe3JldHVybiB0WzBdLWVbMF18fHRbMV0tZVsxXX1mdW5jdGlvbiBpMCh0KXtmb3IodmFyIGU9dC5sZW5ndGgsbj1bMCwxXSxpPTIscj0yO3I8ZTsrK3Ipe2Zvcig7aT4xJiZlMCh0W25baS0yXV0sdFtuW2ktMV1dLHRbcl0pPD0wOyktLWk7bltpKytdPXJ9cmV0dXJuIG4uc2xpY2UoMCxpKX1mdW5jdGlvbiByMCh0LGUsbixpKXtpZihpc05hTihlKXx8aXNOYU4obikpcmV0dXJuIHQ7dmFyIHIsbyxhLHMsbCxjLHUsaCxkLHA9dC5fcm9vdCxmPXtkYXRhOml9LG09dC5feDAsZz10Ll95MCxfPXQuX3gxLHk9dC5feTE7aWYoIXApcmV0dXJuIHQuX3Jvb3Q9Zix0O2Zvcig7cC5sZW5ndGg7KWlmKChjPWU+PShvPShtK18pLzIpKT9tPW86Xz1vLCh1PW4+PShhPShnK3kpLzIpKT9nPWE6eT1hLHI9cCwhKHA9cFtoPXU8PDF8Y10pKXJldHVybiByW2hdPWYsdDtpZihzPSt0Ll94LmNhbGwobnVsbCxwLmRhdGEpLGw9K3QuX3kuY2FsbChudWxsLHAuZGF0YSksZT09PXMmJm49PT1sKXJldHVybiBmLm5leHQ9cCxyP3JbaF09Zjp0Ll9yb290PWYsdDtkb3tyPXI/cltoXT1uZXcgQXJyYXkoNCk6dC5fcm9vdD1uZXcgQXJyYXkoNCksKGM9ZT49KG89KG0rXykvMikpP209bzpfPW8sKHU9bj49KGE9KGcreSkvMikpP2c9YTp5PWF9d2hpbGUoKGg9dTw8MXxjKT09KGQ9KGw+PWEpPDwxfHM+PW8pKTtyZXR1cm4gcltkXT1wLHJbaF09Zix0fWZ1bmN0aW9uIG8wKHQsZSxuLGkscil7dGhpcy5ub2RlPXQsdGhpcy54MD1lLHRoaXMueTA9bix0aGlzLngxPWksdGhpcy55MT1yfWZ1bmN0aW9uIGEwKHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIHMwKHQpe3JldHVybiB0WzFdfWZ1bmN0aW9uIGwwKHQsZSxuKXt2YXIgaT1uZXcgYzAobnVsbD09ZT9hMDplLG51bGw9PW4/czA6bixOYU4sTmFOLE5hTixOYU4pO3JldHVybiBudWxsPT10P2k6aS5hZGRBbGwodCl9ZnVuY3Rpb24gYzAodCxlLG4saSxyLG8pe3RoaXMuX3g9dCx0aGlzLl95PWUsdGhpcy5feDA9bix0aGlzLl95MD1pLHRoaXMuX3gxPXIsdGhpcy5feTE9byx0aGlzLl9yb290PXZvaWQgMH1mdW5jdGlvbiB1MCh0KXtmb3IodmFyIGU9e2RhdGE6dC5kYXRhfSxuPWU7dD10Lm5leHQ7KW49bi5uZXh0PXtkYXRhOnQuZGF0YX07cmV0dXJuIGV9UTEucHJvdG90eXBlPXQwLnByb3RvdHlwZT17Y29uc3RydWN0b3I6UTEsbW92ZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fKz0iTSIrKHRoaXMuX3gwPXRoaXMuX3gxPSt0KSsiLCIrKHRoaXMuX3kwPXRoaXMuX3kxPStlKX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7bnVsbCE9PXRoaXMuX3gxJiYodGhpcy5feDE9dGhpcy5feDAsdGhpcy5feTE9dGhpcy5feTAsdGhpcy5fKz0iWiIpfSxsaW5lVG86ZnVuY3Rpb24odCxlKXt0aGlzLl8rPSJMIisodGhpcy5feDE9K3QpKyIsIisodGhpcy5feTE9K2UpfSxxdWFkcmF0aWNDdXJ2ZVRvOmZ1bmN0aW9uKHQsZSxuLGkpe3RoaXMuXys9IlEiKyArdCsiLCIrICtlKyIsIisodGhpcy5feDE9K24pKyIsIisodGhpcy5feTE9K2kpfSxiZXppZXJDdXJ2ZVRvOmZ1bmN0aW9uKHQsZSxuLGkscixvKXt0aGlzLl8rPSJDIisgK3QrIiwiKyArZSsiLCIrICtuKyIsIisgK2krIiwiKyh0aGlzLl94MT0rcikrIiwiKyh0aGlzLl95MT0rbyl9LGFyY1RvOmZ1bmN0aW9uKHQsZSxuLGkscil7dmFyIG89dGhpcy5feDEsYT10aGlzLl95MSxzPShuPStuKS0odD0rdCksbD0oaT0raSktKGU9K2UpLGM9by10LHU9YS1lLGg9YypjK3UqdTtpZigocj0rcik8MCl0aHJvdyBuZXcgRXJyb3IoIm5lZ2F0aXZlIHJhZGl1czogIityKTtpZihudWxsPT09dGhpcy5feDEpdGhpcy5fKz0iTSIrKHRoaXMuX3gxPXQpKyIsIisodGhpcy5feTE9ZSk7ZWxzZSBpZihoPloxKWlmKE1hdGguYWJzKHUqcy1sKmMpPloxJiZyKXt2YXIgZD1uLW8scD1pLWEsZj1zKnMrbCpsLG09ZCpkK3AqcCxnPU1hdGguc3FydChmKSxfPU1hdGguc3FydChoKSx5PXIqTWF0aC50YW4oKCQxLU1hdGguYWNvcygoZitoLW0pLygyKmcqXykpKS8yKSx2PXkvXyxiPXkvZztNYXRoLmFicyh2LTEpPloxJiYodGhpcy5fKz0iTCIrKHQrdipjKSsiLCIrKGUrdip1KSksdGhpcy5fKz0iQSIrcisiLCIrcisiLDAsMCwiKyArKHUqZD5jKnApKyIsIisodGhpcy5feDE9dCtiKnMpKyIsIisodGhpcy5feTE9ZStiKmwpfWVsc2UgdGhpcy5fKz0iTCIrKHRoaXMuX3gxPXQpKyIsIisodGhpcy5feTE9ZSk7ZWxzZTt9LGFyYzpmdW5jdGlvbih0LGUsbixpLHIsbyl7dD0rdCxlPStlO3ZhciBhPShuPStuKSpNYXRoLmNvcyhpKSxzPW4qTWF0aC5zaW4oaSksbD10K2EsYz1lK3MsdT0xXm8saD1vP2ktcjpyLWk7aWYobjwwKXRocm93IG5ldyBFcnJvcigibmVnYXRpdmUgcmFkaXVzOiAiK24pO251bGw9PT10aGlzLl94MT90aGlzLl8rPSJNIitsKyIsIitjOihNYXRoLmFicyh0aGlzLl94MS1sKT5aMXx8TWF0aC5hYnModGhpcy5feTEtYyk+WjEpJiYodGhpcy5fKz0iTCIrbCsiLCIrYyksbiYmKGg8MCYmKGg9aCVLMStLMSksaD5KMT90aGlzLl8rPSJBIituKyIsIituKyIsMCwxLCIrdSsiLCIrKHQtYSkrIiwiKyhlLXMpKyJBIituKyIsIituKyIsMCwxLCIrdSsiLCIrKHRoaXMuX3gxPWwpKyIsIisodGhpcy5feTE9Yyk6aD5aMSYmKHRoaXMuXys9IkEiK24rIiwiK24rIiwwLCIrICsoaD49JDEpKyIsIit1KyIsIisodGhpcy5feDE9dCtuKk1hdGguY29zKHIpKSsiLCIrKHRoaXMuX3kxPWUrbipNYXRoLnNpbihyKSkpKX0scmVjdDpmdW5jdGlvbih0LGUsbixpKXt0aGlzLl8rPSJNIisodGhpcy5feDA9dGhpcy5feDE9K3QpKyIsIisodGhpcy5feTA9dGhpcy5feTE9K2UpKyJoIisgK24rInYiKyAraSsiaCIrLW4rIloifSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl99fTt2YXIgaDA9bDAucHJvdG90eXBlPWMwLnByb3RvdHlwZTtoMC5jb3B5PWZ1bmN0aW9uKCl7dmFyIHQsZSxuPW5ldyBjMCh0aGlzLl94LHRoaXMuX3ksdGhpcy5feDAsdGhpcy5feTAsdGhpcy5feDEsdGhpcy5feTEpLGk9dGhpcy5fcm9vdDtpZighaSlyZXR1cm4gbjtpZighaS5sZW5ndGgpcmV0dXJuIG4uX3Jvb3Q9dTAoaSksbjtmb3IodD1be3NvdXJjZTppLHRhcmdldDpuLl9yb290PW5ldyBBcnJheSg0KX1dO2k9dC5wb3AoKTspZm9yKHZhciByPTA7cjw0OysrcikoZT1pLnNvdXJjZVtyXSkmJihlLmxlbmd0aD90LnB1c2goe3NvdXJjZTplLHRhcmdldDppLnRhcmdldFtyXT1uZXcgQXJyYXkoNCl9KTppLnRhcmdldFtyXT11MChlKSk7cmV0dXJuIG59LGgwLmFkZD1mdW5jdGlvbiBkMCh0KXt2YXIgZT0rdGhpcy5feC5jYWxsKG51bGwsdCksbj0rdGhpcy5feS5jYWxsKG51bGwsdCk7cmV0dXJuIHIwKHRoaXMuY292ZXIoZSxuKSxlLG4sdCl9LGgwLmFkZEFsbD1mdW5jdGlvbiBwMCh0KXt2YXIgZSxuLGkscixvPXQubGVuZ3RoLGE9bmV3IEFycmF5KG8pLHM9bmV3IEFycmF5KG8pLGw9MS8wLGM9MS8wLHU9LTEvMCxoPS0xLzA7Zm9yKG49MDtuPG87KytuKWlzTmFOKGk9K3RoaXMuX3guY2FsbChudWxsLGU9dFtuXSkpfHxpc05hTihyPSt0aGlzLl95LmNhbGwobnVsbCxlKSl8fChhW25dPWksc1tuXT1yLGk8bCYmKGw9aSksaT51JiYodT1pKSxyPGMmJihjPXIpLHI+aCYmKGg9cikpO2Zvcih1PGwmJihsPXRoaXMuX3gwLHU9dGhpcy5feDEpLGg8YyYmKGM9dGhpcy5feTAsaD10aGlzLl95MSksdGhpcy5jb3ZlcihsLGMpLmNvdmVyKHUsaCksbj0wO248bzsrK24pcjAodGhpcyxhW25dLHNbbl0sdFtuXSk7cmV0dXJuIHRoaXN9LGgwLmNvdmVyPWZ1bmN0aW9uIGYwKHQsZSl7aWYoaXNOYU4odD0rdCl8fGlzTmFOKGU9K2UpKXJldHVybiB0aGlzO3ZhciBuPXRoaXMuX3gwLGk9dGhpcy5feTAscj10aGlzLl94MSxvPXRoaXMuX3kxO2lmKGlzTmFOKG4pKXI9KG49TWF0aC5mbG9vcih0KSkrMSxvPShpPU1hdGguZmxvb3IoZSkpKzE7ZWxzZXtpZighKG4+dHx8dD5yfHxpPmV8fGU+bykpcmV0dXJuIHRoaXM7dmFyIGEscyxsPXItbixjPXRoaXMuX3Jvb3Q7c3dpdGNoKHM9KGU8KGkrbykvMik8PDF8dDwobityKS8yKXtjYXNlIDA6ZG97KGE9bmV3IEFycmF5KDQpKVtzXT1jLGM9YX13aGlsZShvPWkrKGwqPTIpLHQ+KHI9bitsKXx8ZT5vKTticmVhaztjYXNlIDE6ZG97KGE9bmV3IEFycmF5KDQpKVtzXT1jLGM9YX13aGlsZShvPWkrKGwqPTIpLChuPXItbCk+dHx8ZT5vKTticmVhaztjYXNlIDI6ZG97KGE9bmV3IEFycmF5KDQpKVtzXT1jLGM9YX13aGlsZShpPW8tKGwqPTIpLHQ+KHI9bitsKXx8aT5lKTticmVhaztjYXNlIDM6ZG97KGE9bmV3IEFycmF5KDQpKVtzXT1jLGM9YX13aGlsZShpPW8tKGwqPTIpLChuPXItbCk+dHx8aT5lKX10aGlzLl9yb290JiZ0aGlzLl9yb290Lmxlbmd0aCYmKHRoaXMuX3Jvb3Q9Yyl9cmV0dXJuIHRoaXMuX3gwPW4sdGhpcy5feTA9aSx0aGlzLl94MT1yLHRoaXMuX3kxPW8sdGhpc30saDAuZGF0YT1mdW5jdGlvbiBtMCgpe3ZhciB0PVtdO3JldHVybiB0aGlzLnZpc2l0KChmdW5jdGlvbihlKXtpZighZS5sZW5ndGgpZG97dC5wdXNoKGUuZGF0YSl9d2hpbGUoZT1lLm5leHQpfSkpLHR9LGgwLmV4dGVudD1mdW5jdGlvbiBnMCh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmNvdmVyKCt0WzBdWzBdLCt0WzBdWzFdKS5jb3ZlcigrdFsxXVswXSwrdFsxXVsxXSk6aXNOYU4odGhpcy5feDApP3ZvaWQgMDpbW3RoaXMuX3gwLHRoaXMuX3kwXSxbdGhpcy5feDEsdGhpcy5feTFdXX0saDAuZmluZD1mdW5jdGlvbiBfMCh0LGUsbil7dmFyIGkscixvLGEscyxsLGMsdT10aGlzLl94MCxoPXRoaXMuX3kwLGQ9dGhpcy5feDEscD10aGlzLl95MSxmPVtdLG09dGhpcy5fcm9vdDtmb3IobSYmZi5wdXNoKG5ldyBvMChtLHUsaCxkLHApKSxudWxsPT1uP249MS8wOih1PXQtbixoPWUtbixkPXQrbixwPWUrbixuKj1uKTtsPWYucG9wKCk7KWlmKCEoIShtPWwubm9kZSl8fChyPWwueDApPmR8fChvPWwueTApPnB8fChhPWwueDEpPHV8fChzPWwueTEpPGgpKWlmKG0ubGVuZ3RoKXt2YXIgZz0ocithKS8yLF89KG8rcykvMjtmLnB1c2gobmV3IG8wKG1bM10sZyxfLGEscyksbmV3IG8wKG1bMl0scixfLGcscyksbmV3IG8wKG1bMV0sZyxvLGEsXyksbmV3IG8wKG1bMF0scixvLGcsXykpLChjPShlPj1fKTw8MXx0Pj1nKSYmKGw9ZltmLmxlbmd0aC0xXSxmW2YubGVuZ3RoLTFdPWZbZi5sZW5ndGgtMS1jXSxmW2YubGVuZ3RoLTEtY109bCl9ZWxzZXt2YXIgeT10LSt0aGlzLl94LmNhbGwobnVsbCxtLmRhdGEpLHY9ZS0rdGhpcy5feS5jYWxsKG51bGwsbS5kYXRhKSxiPXkqeSt2KnY7aWYoYjxuKXt2YXIgeD1NYXRoLnNxcnQobj1iKTt1PXQteCxoPWUteCxkPXQreCxwPWUreCxpPW0uZGF0YX19cmV0dXJuIGl9LGgwLnJlbW92ZT1mdW5jdGlvbiB5MCh0KXtpZihpc05hTihvPSt0aGlzLl94LmNhbGwobnVsbCx0KSl8fGlzTmFOKGE9K3RoaXMuX3kuY2FsbChudWxsLHQpKSlyZXR1cm4gdGhpczt2YXIgZSxuLGkscixvLGEscyxsLGMsdSxoLGQscD10aGlzLl9yb290LGY9dGhpcy5feDAsbT10aGlzLl95MCxnPXRoaXMuX3gxLF89dGhpcy5feTE7aWYoIXApcmV0dXJuIHRoaXM7aWYocC5sZW5ndGgpZm9yKDs7KXtpZigoYz1vPj0ocz0oZitnKS8yKSk/Zj1zOmc9cywodT1hPj0obD0obStfKS8yKSk/bT1sOl89bCxlPXAsIShwPXBbaD11PDwxfGNdKSlyZXR1cm4gdGhpcztpZighcC5sZW5ndGgpYnJlYWs7KGVbaCsxJjNdfHxlW2grMiYzXXx8ZVtoKzMmM10pJiYobj1lLGQ9aCl9Zm9yKDtwLmRhdGEhPT10OylpZihpPXAsIShwPXAubmV4dCkpcmV0dXJuIHRoaXM7cmV0dXJuKHI9cC5uZXh0KSYmZGVsZXRlIHAubmV4dCxpPyhyP2kubmV4dD1yOmRlbGV0ZSBpLm5leHQsdGhpcyk6ZT8ocj9lW2hdPXI6ZGVsZXRlIGVbaF0sKHA9ZVswXXx8ZVsxXXx8ZVsyXXx8ZVszXSkmJnA9PT0oZVszXXx8ZVsyXXx8ZVsxXXx8ZVswXSkmJiFwLmxlbmd0aCYmKG4/bltkXT1wOnRoaXMuX3Jvb3Q9cCksdGhpcyk6KHRoaXMuX3Jvb3Q9cix0aGlzKX0saDAucmVtb3ZlQWxsPWZ1bmN0aW9uIHYwKHQpe2Zvcih2YXIgZT0wLG49dC5sZW5ndGg7ZTxuOysrZSl0aGlzLnJlbW92ZSh0W2VdKTtyZXR1cm4gdGhpc30saDAucm9vdD1mdW5jdGlvbiBiMCgpe3JldHVybiB0aGlzLl9yb290fSxoMC5zaXplPWZ1bmN0aW9uIHgwKCl7dmFyIHQ9MDtyZXR1cm4gdGhpcy52aXNpdCgoZnVuY3Rpb24oZSl7aWYoIWUubGVuZ3RoKWRveysrdH13aGlsZShlPWUubmV4dCl9KSksdH0saDAudmlzaXQ9ZnVuY3Rpb24gdzAodCl7dmFyIGUsbixpLHIsbyxhLHM9W10sbD10aGlzLl9yb290O2ZvcihsJiZzLnB1c2gobmV3IG8wKGwsdGhpcy5feDAsdGhpcy5feTAsdGhpcy5feDEsdGhpcy5feTEpKTtlPXMucG9wKCk7KWlmKCF0KGw9ZS5ub2RlLGk9ZS54MCxyPWUueTAsbz1lLngxLGE9ZS55MSkmJmwubGVuZ3RoKXt2YXIgYz0oaStvKS8yLHU9KHIrYSkvMjsobj1sWzNdKSYmcy5wdXNoKG5ldyBvMChuLGMsdSxvLGEpKSwobj1sWzJdKSYmcy5wdXNoKG5ldyBvMChuLGksdSxjLGEpKSwobj1sWzFdKSYmcy5wdXNoKG5ldyBvMChuLGMscixvLHUpKSwobj1sWzBdKSYmcy5wdXNoKG5ldyBvMChuLGkscixjLHUpKX1yZXR1cm4gdGhpc30saDAudmlzaXRBZnRlcj1mdW5jdGlvbiBTMCh0KXt2YXIgZSxuPVtdLGk9W107Zm9yKHRoaXMuX3Jvb3QmJm4ucHVzaChuZXcgbzAodGhpcy5fcm9vdCx0aGlzLl94MCx0aGlzLl95MCx0aGlzLl94MSx0aGlzLl95MSkpO2U9bi5wb3AoKTspe3ZhciByPWUubm9kZTtpZihyLmxlbmd0aCl7dmFyIG8sYT1lLngwLHM9ZS55MCxsPWUueDEsYz1lLnkxLHU9KGErbCkvMixoPShzK2MpLzI7KG89clswXSkmJm4ucHVzaChuZXcgbzAobyxhLHMsdSxoKSksKG89clsxXSkmJm4ucHVzaChuZXcgbzAobyx1LHMsbCxoKSksKG89clsyXSkmJm4ucHVzaChuZXcgbzAobyxhLGgsdSxjKSksKG89clszXSkmJm4ucHVzaChuZXcgbzAobyx1LGgsbCxjKSl9aS5wdXNoKGUpfWZvcig7ZT1pLnBvcCgpOyl0KGUubm9kZSxlLngwLGUueTAsZS54MSxlLnkxKTtyZXR1cm4gdGhpc30saDAueD1mdW5jdGlvbiBNMCh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5feD10LHRoaXMpOnRoaXMuX3h9LGgwLnk9ZnVuY3Rpb24gRTAodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3k9dCx0aGlzKTp0aGlzLl95fTt2YXIgVDA9W10uc2xpY2UsQzA9e307ZnVuY3Rpb24gQTAodCl7dGhpcy5fc2l6ZT10LHRoaXMuX2NhbGw9dGhpcy5fZXJyb3I9bnVsbCx0aGlzLl90YXNrcz1bXSx0aGlzLl9kYXRhPVtdLHRoaXMuX3dhaXRpbmc9dGhpcy5fYWN0aXZlPXRoaXMuX2VuZGVkPXRoaXMuX3N0YXJ0PTB9ZnVuY3Rpb24gazAodCl7aWYoIXQuX3N0YXJ0KXRyeXshKGZ1bmN0aW9uIGUodCl7Zm9yKDt0Ll9zdGFydD10Ll93YWl0aW5nJiZ0Ll9hY3RpdmU8dC5fc2l6ZTspe3ZhciBlPXQuX2VuZGVkK3QuX2FjdGl2ZSxuPXQuX3Rhc2tzW2VdLGk9bi5sZW5ndGgtMSxyPW5baV07bltpXT1MMCh0LGUpLC0tdC5fd2FpdGluZywrK3QuX2FjdGl2ZSxuPXIuYXBwbHkobnVsbCxuKSx0Ll90YXNrc1tlXSYmKHQuX3Rhc2tzW2VdPW58fEMwKX19KSh0KX1jYXRjaChlKXtpZih0Ll90YXNrc1t0Ll9lbmRlZCt0Ll9hY3RpdmUtMV0pUDAodCxlKTtlbHNlIGlmKCF0Ll9kYXRhKXRocm93IGV9fWZ1bmN0aW9uIEwwKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4saSl7dC5fdGFza3NbZV0mJigtLXQuX2FjdGl2ZSwrK3QuX2VuZGVkLHQuX3Rhc2tzW2VdPW51bGwsbnVsbD09dC5fZXJyb3ImJihudWxsIT1uP1AwKHQsbik6KHQuX2RhdGFbZV09aSx0Ll93YWl0aW5nP2swKHQpOk4wKHQpKSkpfX1mdW5jdGlvbiBQMCh0LGUpe3ZhciBuLGk9dC5fdGFza3MubGVuZ3RoO2Zvcih0Ll9lcnJvcj1lLHQuX2RhdGE9dm9pZCAwLHQuX3dhaXRpbmc9TmFOOy0taT49MDspaWYoKG49dC5fdGFza3NbaV0pJiYodC5fdGFza3NbaV09bnVsbCxuLmFib3J0KSl0cnl7bi5hYm9ydCgpfWNhdGNoKGUpe310Ll9hY3RpdmU9TmFOLE4wKHQpfWZ1bmN0aW9uIE4wKHQpe2lmKCF0Ll9hY3RpdmUmJnQuX2NhbGwpe3ZhciBlPXQuX2RhdGE7dC5fZGF0YT12b2lkIDAsdC5fY2FsbCh0Ll9lcnJvcixlKX19ZnVuY3Rpb24gSTAodCl7aWYobnVsbD09dCl0PTEvMDtlbHNlIGlmKCEoKHQ9K3QpPj0xKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY29uY3VycmVuY3kiKTtyZXR1cm4gbmV3IEEwKHQpfWZ1bmN0aW9uIFIwKCl7cmV0dXJuIE1hdGgucmFuZG9tKCl9QTAucHJvdG90eXBlPUkwLnByb3RvdHlwZT17Y29uc3RydWN0b3I6QTAsZGVmZXI6ZnVuY3Rpb24odCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNhbGxiYWNrIik7aWYodGhpcy5fY2FsbCl0aHJvdyBuZXcgRXJyb3IoImRlZmVyIGFmdGVyIGF3YWl0Iik7aWYobnVsbCE9dGhpcy5fZXJyb3IpcmV0dXJuIHRoaXM7dmFyIGU9VDAuY2FsbChhcmd1bWVudHMsMSk7cmV0dXJuIGUucHVzaCh0KSwrK3RoaXMuX3dhaXRpbmcsdGhpcy5fdGFza3MucHVzaChlKSxrMCh0aGlzKSx0aGlzfSxhYm9ydDpmdW5jdGlvbigpe3JldHVybiBudWxsPT10aGlzLl9lcnJvciYmUDAodGhpcyxuZXcgRXJyb3IoImFib3J0IikpLHRoaXN9LGF3YWl0OmZ1bmN0aW9uKHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBjYWxsYmFjayIpO2lmKHRoaXMuX2NhbGwpdGhyb3cgbmV3IEVycm9yKCJtdWx0aXBsZSBhd2FpdCIpO3JldHVybiB0aGlzLl9jYWxsPWZ1bmN0aW9uKGUsbil7dC5hcHBseShudWxsLFtlXS5jb25jYXQobikpfSxOMCh0aGlzKSx0aGlzfSxhd2FpdEFsbDpmdW5jdGlvbih0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2siKTtpZih0aGlzLl9jYWxsKXRocm93IG5ldyBFcnJvcigibXVsdGlwbGUgYXdhaXQiKTtyZXR1cm4gdGhpcy5fY2FsbD10LE4wKHRoaXMpLHRoaXN9fTt2YXIgTzA9KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0LG4pe3JldHVybiB0PW51bGw9PXQ/MDordCxuPW51bGw9PW4/MTorbiwxPT09YXJndW1lbnRzLmxlbmd0aD8obj10LHQ9MCk6bi09dCxmdW5jdGlvbigpe3JldHVybiBlKCkqbit0fX1yZXR1cm4gbi5zb3VyY2U9dCxufSkoUjApLHowPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCxuKXt2YXIgaSxyO3JldHVybiB0PW51bGw9PXQ/MDordCxuPW51bGw9PW4/MTorbixmdW5jdGlvbigpe3ZhciBvO2lmKG51bGwhPWkpbz1pLGk9bnVsbDtlbHNlIGRve2k9MiplKCktMSxvPTIqZSgpLTEscj1pKmkrbypvfXdoaWxlKCFyfHxyPjEpO3JldHVybiB0K24qbypNYXRoLnNxcnQoLTIqTWF0aC5sb2cocikvcil9fXJldHVybiBuLnNvdXJjZT10LG59KShSMCksRDA9KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbigpe3ZhciB0PXowLnNvdXJjZShlKS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguZXhwKHQoKSl9fXJldHVybiBuLnNvdXJjZT10LG59KShSMCksQjA9KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIG49MCxpPTA7aTx0OysraSluKz1lKCk7cmV0dXJuIG59fXJldHVybiBuLnNvdXJjZT10LG59KShSMCksSDA9KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0KXt2YXIgbj1CMC5zb3VyY2UoZSkodCk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG4oKS90fX1yZXR1cm4gbi5zb3VyY2U9dCxufSkoUjApLEYwPShmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuLU1hdGgubG9nKDEtZSgpKS90fX1yZXR1cm4gbi5zb3VyY2U9dCxufSkoUjApO2Z1bmN0aW9uIFYwKHQsZSl7dmFyIG4saSxyLG8sYT13YygiYmVmb3Jlc2VuZCIsInByb2dyZXNzIiwibG9hZCIsImVycm9yIikscz1qZygpLGw9bmV3IFhNTEh0dHBSZXF1ZXN0LGM9bnVsbCx1PW51bGwsaD0wO2Z1bmN0aW9uIGQodCl7dmFyIGUsaT1sLnN0YXR1cztpZighaSYmKGZ1bmN0aW9uIG8odCl7dmFyIGU9dC5yZXNwb25zZVR5cGU7cmV0dXJuIGUmJiJ0ZXh0IiE9PWU/dC5yZXNwb25zZTp0LnJlc3BvbnNlVGV4dH0pKGwpfHxpPj0yMDAmJmk8MzAwfHwzMDQ9PT1pKXtpZihyKXRyeXtlPXIuY2FsbChuLGwpfWNhdGNoKHQpe3JldHVybiB2b2lkIGEuY2FsbCgiZXJyb3IiLG4sdCl9ZWxzZSBlPWw7YS5jYWxsKCJsb2FkIixuLGUpfWVsc2UgYS5jYWxsKCJlcnJvciIsbix0KX1pZigidW5kZWZpbmVkIiE9dHlwZW9mIFhEb21haW5SZXF1ZXN0JiYhKCJ3aXRoQ3JlZGVudGlhbHMiaW4gbCkmJi9eKGh0dHAocyk/Oik/XC9cLy8udGVzdCh0KSYmKGw9bmV3IFhEb21haW5SZXF1ZXN0KSwib25sb2FkImluIGw/bC5vbmxvYWQ9bC5vbmVycm9yPWwub250aW1lb3V0PWQ6bC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24odCl7bC5yZWFkeVN0YXRlPjMmJmQodCl9LGwub25wcm9ncmVzcz1mdW5jdGlvbih0KXthLmNhbGwoInByb2dyZXNzIixuLHQpfSxuPXtoZWFkZXI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD0odCsiIikudG9Mb3dlckNhc2UoKSxhcmd1bWVudHMubGVuZ3RoPDI/cy5nZXQodCk6KG51bGw9PWU/cy5yZW1vdmUodCk6cy5zZXQodCxlKyIiKSxuKX0sbWltZVR5cGU6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbD09dD9udWxsOnQrIiIsbik6aX0scmVzcG9uc2VUeXBlOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPXQsbik6b30sdGltZW91dDpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD0rdCxuKTpofSx1c2VyOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDE/YzooYz1udWxsPT10P251bGw6dCsiIixuKX0scGFzc3dvcmQ6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8MT91Oih1PW51bGw9PXQ/bnVsbDp0KyIiLG4pfSxyZXNwb25zZTpmdW5jdGlvbih0KXtyZXR1cm4gcj10LG59LGdldDpmdW5jdGlvbih0LGUpe3JldHVybiBuLnNlbmQoIkdFVCIsdCxlKX0scG9zdDpmdW5jdGlvbih0LGUpe3JldHVybiBuLnNlbmQoIlBPU1QiLHQsZSl9LHNlbmQ6ZnVuY3Rpb24oZSxyLGQpe3JldHVybiBsLm9wZW4oZSx0LCEwLGMsdSksbnVsbD09aXx8cy5oYXMoImFjY2VwdCIpfHxzLnNldCgiYWNjZXB0IixpKyIsKi8qIiksbC5zZXRSZXF1ZXN0SGVhZGVyJiZzLmVhY2goKGZ1bmN0aW9uKHQsZSl7bC5zZXRSZXF1ZXN0SGVhZGVyKGUsdCl9KSksbnVsbCE9aSYmbC5vdmVycmlkZU1pbWVUeXBlJiZsLm92ZXJyaWRlTWltZVR5cGUoaSksbnVsbCE9byYmKGwucmVzcG9uc2VUeXBlPW8pLGg+MCYmKGwudGltZW91dD1oKSxudWxsPT1kJiYiZnVuY3Rpb24iPT10eXBlb2YgciYmKGQ9cixyPW51bGwpLG51bGwhPWQmJjE9PT1kLmxlbmd0aCYmKGQ9KGZ1bmN0aW9uIHAodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dChudWxsPT1lP246bnVsbCl9fSkoZCkpLG51bGwhPWQmJm4ub24oImVycm9yIixkKS5vbigibG9hZCIsKGZ1bmN0aW9uKHQpe2QobnVsbCx0KX0pKSxhLmNhbGwoImJlZm9yZXNlbmQiLG4sbCksbC5zZW5kKG51bGw9PXI/bnVsbDpyKSxufSxhYm9ydDpmdW5jdGlvbigpe3JldHVybiBsLmFib3J0KCksbn0sb246ZnVuY3Rpb24oKXt2YXIgdD1hLm9uLmFwcGx5KGEsYXJndW1lbnRzKTtyZXR1cm4gdD09PWE/bjp0fX0sbnVsbCE9ZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNhbGxiYWNrOiAiK2UpO3JldHVybiBuLmdldChlKX1yZXR1cm4gbn1mdW5jdGlvbiBVMCh0LGUpe3JldHVybiBmdW5jdGlvbihuLGkpe3ZhciByPVYwKG4pLm1pbWVUeXBlKHQpLnJlc3BvbnNlKGUpO2lmKG51bGwhPWkpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBjYWxsYmFjazogIitpKTtyZXR1cm4gci5nZXQoaSl9cmV0dXJuIHJ9fXZhciBqMD1VMCgidGV4dC9odG1sIiwoZnVuY3Rpb24odCl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZVJhbmdlKCkuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KHQucmVzcG9uc2VUZXh0KX0pKSxHMD1VMCgiYXBwbGljYXRpb24vanNvbiIsKGZ1bmN0aW9uKHQpe3JldHVybiBKU09OLnBhcnNlKHQucmVzcG9uc2VUZXh0KX0pKSxXMD1VMCgidGV4dC9wbGFpbiIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlc3BvbnNlVGV4dH0pKSxxMD1VMCgiYXBwbGljYXRpb24veG1sIiwoZnVuY3Rpb24odCl7dmFyIGU9dC5yZXNwb25zZVhNTDtpZighZSl0aHJvdyBuZXcgRXJyb3IoInBhcnNlIGVycm9yIik7cmV0dXJuIGV9KSk7ZnVuY3Rpb24gWTAodCxlKXtyZXR1cm4gZnVuY3Rpb24obixpLHIpe2FyZ3VtZW50cy5sZW5ndGg8MyYmKHI9aSxpPW51bGwpO3ZhciBvPVYwKG4pLm1pbWVUeXBlKHQpO3JldHVybiBvLnJvdz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9vLnJlc3BvbnNlKFgwKGUsaT10KSk6aX0sby5yb3coaSkscj9vLmdldChyKTpvfX1mdW5jdGlvbiBYMCh0LGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdChuLnJlc3BvbnNlVGV4dCxlKX19dmFyICQwPVkwKCJ0ZXh0L2NzdiIsYl8pLEswPVkwKCJ0ZXh0L3RhYi1zZXBhcmF0ZWQtdmFsdWVzIixBXyk7ZnVuY3Rpb24gWjAodCxlKXtyZXR1cm4gdDxlPy0xOnQ+ZT8xOnQ+PWU/MDpOYU59ZnVuY3Rpb24gSjAodCl7cmV0dXJuIDE9PT10Lmxlbmd0aCYmKHQ9KGZ1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7cmV0dXJuIFowKHQoZSksbil9fSkodCkpLHtsZWZ0OmZ1bmN0aW9uKGUsbixpLHIpe2ZvcihudWxsPT1pJiYoaT0wKSxudWxsPT1yJiYocj1lLmxlbmd0aCk7aTxyOyl7dmFyIG89aStyPj4+MTt0KGVbb10sbik8MD9pPW8rMTpyPW99cmV0dXJuIGl9LHJpZ2h0OmZ1bmN0aW9uKGUsbixpLHIpe2ZvcihudWxsPT1pJiYoaT0wKSxudWxsPT1yJiYocj1lLmxlbmd0aCk7aTxyOyl7dmFyIG89aStyPj4+MTt0KGVbb10sbik+MD9yPW86aT1vKzF9cmV0dXJuIGl9fX12YXIgUTA9SjAoWjApLnJpZ2h0O2Z1bmN0aW9uIHQyKHQpe3JldHVybiBudWxsPT09dD9OYU46K3R9dmFyIGUyPU1hdGguc3FydCg1MCksbjI9TWF0aC5zcXJ0KDEwKSxpMj1NYXRoLnNxcnQoMik7ZnVuY3Rpb24gcjIodCxlLG4pe3ZhciBpLHIsbyxhLHM9LTE7aWYobj0rbiwodD0rdCk9PT0oZT0rZSkmJm4+MClyZXR1cm5bdF07aWYoKGk9ZTx0KSYmKHI9dCx0PWUsZT1yKSwwPT09KGE9bzIodCxlLG4pKXx8IWlzRmluaXRlKGEpKXJldHVybltdO2lmKGE+MClmb3IodD1NYXRoLmNlaWwodC9hKSxlPU1hdGguZmxvb3IoZS9hKSxvPW5ldyBBcnJheShyPU1hdGguY2VpbChlLXQrMSkpOysrczxyOylvW3NdPSh0K3MpKmE7ZWxzZSBmb3IodD1NYXRoLmZsb29yKHQqYSksZT1NYXRoLmNlaWwoZSphKSxvPW5ldyBBcnJheShyPU1hdGguY2VpbCh0LWUrMSkpOysrczxyOylvW3NdPSh0LXMpL2E7cmV0dXJuIGkmJm8ucmV2ZXJzZSgpLG99ZnVuY3Rpb24gbzIodCxlLG4pe3ZhciBpPShlLXQpL01hdGgubWF4KDAsbikscj1NYXRoLmZsb29yKE1hdGgubG9nKGkpL01hdGguTE4xMCksbz1pL01hdGgucG93KDEwLHIpO3JldHVybiByPj0wPyhvPj1lMj8xMDpvPj1uMj81Om8+PWkyPzI6MSkqTWF0aC5wb3coMTAscik6LU1hdGgucG93KDEwLC1yKS8obz49ZTI/MTA6bz49bjI/NTpvPj1pMj8yOjEpfWZ1bmN0aW9uIGEyKHQsZSxuKXt2YXIgaT1NYXRoLmFicyhlLXQpL01hdGgubWF4KDAsbikscj1NYXRoLnBvdygxMCxNYXRoLmZsb29yKE1hdGgubG9nKGkpL01hdGguTE4xMCkpLG89aS9yO3JldHVybiBvPj1lMj9yKj0xMDpvPj1uMj9yKj01Om8+PWkyJiYocio9MiksZTx0Py1yOnJ9ZnVuY3Rpb24gczIodCxlLG4pe2lmKG51bGw9PW4mJihuPXQyKSxpPXQubGVuZ3RoKXtpZigoZT0rZSk8PTB8fGk8MilyZXR1cm4rbih0WzBdLDAsdCk7aWYoZT49MSlyZXR1cm4rbih0W2ktMV0saS0xLHQpO3ZhciBpLHI9KGktMSkqZSxvPU1hdGguZmxvb3IociksYT0rbih0W29dLG8sdCk7cmV0dXJuIGErKCtuKHRbbysxXSxvKzEsdCktYSkqKHItbyl9fXZhciBsMj0iJCI7ZnVuY3Rpb24gYzIoKXt9ZnVuY3Rpb24gdTIodCxlKXt2YXIgbj1uZXcgYzI7aWYodCBpbnN0YW5jZW9mIGMyKXQuZWFjaCgoZnVuY3Rpb24odCxlKXtuLnNldChlLHQpfSkpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSl7dmFyIGkscj0tMSxvPXQubGVuZ3RoO2lmKG51bGw9PWUpZm9yKDsrK3I8bzspbi5zZXQocix0W3JdKTtlbHNlIGZvcig7KytyPG87KW4uc2V0KGUoaT10W3JdLHIsdCksaSl9ZWxzZSBpZih0KWZvcih2YXIgYSBpbiB0KW4uc2V0KGEsdFthXSk7cmV0dXJuIG59ZnVuY3Rpb24gaDIoKXt9YzIucHJvdG90eXBlPXUyLnByb3RvdHlwZT17Y29uc3RydWN0b3I6YzIsaGFzOmZ1bmN0aW9uKHQpe3JldHVybiBsMit0IGluIHRoaXN9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpc1tsMit0XX0sc2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXNbbDIrdF09ZSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9bDIrdDtyZXR1cm4gZSBpbiB0aGlzJiZkZWxldGUgdGhpc1tlXX0sY2xlYXI6ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcyl0WzBdPT09bDImJmRlbGV0ZSB0aGlzW3RdfSxrZXlzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PWwyJiZ0LnB1c2goZS5zbGljZSgxKSk7cmV0dXJuIHR9LHZhbHVlczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT1sMiYmdC5wdXNoKHRoaXNbZV0pO3JldHVybiB0fSxlbnRyaWVzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PWwyJiZ0LnB1c2goe2tleTplLnNsaWNlKDEpLHZhbHVlOnRoaXNbZV19KTtyZXR1cm4gdH0sc2l6ZTpmdW5jdGlvbigpe3ZhciB0PTA7Zm9yKHZhciBlIGluIHRoaXMpZVswXT09PWwyJiYrK3Q7cmV0dXJuIHR9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpaWYodFswXT09PWwyKXJldHVybiExO3JldHVybiEwfSxlYWNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT1sMiYmdCh0aGlzW2VdLGUuc2xpY2UoMSksdGhpcyl9fTt2YXIgZDI9dTIucHJvdG90eXBlO2gyLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aDIsaGFzOmQyLmhhcyxhZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbbDIrKHQrPSIiKV09dCx0aGlzfSxyZW1vdmU6ZDIucmVtb3ZlLGNsZWFyOmQyLmNsZWFyLHZhbHVlczpkMi5rZXlzLHNpemU6ZDIuc2l6ZSxlbXB0eTpkMi5lbXB0eSxlYWNoOmQyLmVhY2h9O3ZhciBwMj1BcnJheS5wcm90b3R5cGUsZjI9cDIubWFwLG0yPXAyLnNsaWNlLGcyPXtuYW1lOiJpbXBsaWNpdCJ9O2Z1bmN0aW9uIF8yKHQpe3ZhciBlPXUyKCksbj1bXSxpPWcyO2Z1bmN0aW9uIHIocil7dmFyIG89cisiIixhPWUuZ2V0KG8pO2lmKCFhKXtpZihpIT09ZzIpcmV0dXJuIGk7ZS5zZXQobyxhPW4ucHVzaChyKSl9cmV0dXJuIHRbKGEtMSkldC5sZW5ndGhdfXJldHVybiB0PW51bGw9PXQ/W106bTIuY2FsbCh0KSxyLmRvbWFpbj1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gbi5zbGljZSgpO249W10sZT11MigpO2Zvcih2YXIgaSxvLGE9LTEscz10Lmxlbmd0aDsrK2E8czspZS5oYXMobz0oaT10W2FdKSsiIil8fGUuc2V0KG8sbi5wdXNoKGkpKTtyZXR1cm4gcn0sci5yYW5nZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1tMi5jYWxsKGUpLHIpOnQuc2xpY2UoKX0sci51bmtub3duPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXQscik6aX0sci5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIF8yKCkuZG9tYWluKG4pLnJhbmdlKHQpLnVua25vd24oaSl9LHJ9ZnVuY3Rpb24geTIoKXt2YXIgdCxlLG49XzIoKS51bmtub3duKHZvaWQgMCksaT1uLmRvbWFpbixyPW4ucmFuZ2Usbz1bMCwxXSxhPSExLHM9MCxsPTAsYz0uNTtmdW5jdGlvbiB1KCl7dmFyIG49aSgpLmxlbmd0aCx1PW9bMV08b1swXSxoPW9bdS0wXSxkPW9bMS11XTt0PShkLWgpL01hdGgubWF4KDEsbi1zKzIqbCksYSYmKHQ9TWF0aC5mbG9vcih0KSksaCs9KGQtaC10KihuLXMpKSpjLGU9dCooMS1zKSxhJiYoaD1NYXRoLnJvdW5kKGgpLGU9TWF0aC5yb3VuZChlKSk7dmFyIHA9KGZ1bmN0aW9uIGYodCxlLG4pe3Q9K3QsZT0rZSxuPShyPWFyZ3VtZW50cy5sZW5ndGgpPDI/KGU9dCx0PTAsMSk6cjwzPzE6K247Zm9yKHZhciBpPS0xLHI9MHxNYXRoLm1heCgwLE1hdGguY2VpbCgoZS10KS9uKSksbz1uZXcgQXJyYXkocik7KytpPHI7KW9baV09dCtpKm47cmV0dXJuIG99KShuKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBoK3QqZX0pKTtyZXR1cm4gcih1P3AucmV2ZXJzZSgpOnApfXJldHVybiBkZWxldGUgbi51bmtub3duLG4uZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpKHQpLHUoKSk6aSgpfSxuLnJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVsrdFswXSwrdFsxXV0sdSgpKTpvLnNsaWNlKCl9LG4ucmFuZ2VSb3VuZD1mdW5jdGlvbih0KXtyZXR1cm4gbz1bK3RbMF0sK3RbMV1dLGE9ITAsdSgpfSxuLmJhbmR3aWR0aD1mdW5jdGlvbigpe3JldHVybiBlfSxuLnN0ZXA9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sbi5yb3VuZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0hIXQsdSgpKTphfSxuLnBhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9bD1NYXRoLm1heCgwLE1hdGgubWluKDEsdCkpLHUoKSk6c30sbi5wYWRkaW5nSW5uZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9TWF0aC5tYXgoMCxNYXRoLm1pbigxLHQpKSx1KCkpOnN9LG4ucGFkZGluZ091dGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPU1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSksdSgpKTpsfSxuLmFsaWduPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPU1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSksdSgpKTpjfSxuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4geTIoKS5kb21haW4oaSgpKS5yYW5nZShvKS5yb3VuZChhKS5wYWRkaW5nSW5uZXIocykucGFkZGluZ091dGVyKGwpLmFsaWduKGMpfSx1KCl9ZnVuY3Rpb24gdjIodCl7dmFyIGU9dC5jb3B5O3JldHVybiB0LnBhZGRpbmc9dC5wYWRkaW5nT3V0ZXIsZGVsZXRlIHQucGFkZGluZ0lubmVyLGRlbGV0ZSB0LnBhZGRpbmdPdXRlcix0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gdjIoZSgpKX0sdH1mdW5jdGlvbiBiMih0LGUsbil7dC5wcm90b3R5cGU9ZS5wcm90b3R5cGU9bixuLmNvbnN0cnVjdG9yPXR9ZnVuY3Rpb24geDIodCxlKXt2YXIgbj1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlKTtmb3IodmFyIGkgaW4gZSluW2ldPWVbaV07cmV0dXJuIG59ZnVuY3Rpb24gdzIoKXt9dmFyIFMyPS43LE0yPTEvUzIsRTI9IlxccyooWystXT9cXGQrKVxccyoiLFQyPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KVxccyoiLEMyPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KSVcXHMqIixBMj0vXiMoWzAtOWEtZl17Myw4fSkkLyxrMj1uZXcgUmVnRXhwKCJecmdiXFwoIitbRTIsRTIsRTJdKyJcXCkkIiksTDI9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW0MyLEMyLEMyXSsiXFwpJCIpLFAyPW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbRTIsRTIsRTIsVDJdKyJcXCkkIiksTjI9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tDMixDMixDMixUMl0rIlxcKSQiKSxJMj1uZXcgUmVnRXhwKCJeaHNsXFwoIitbVDIsQzIsQzJdKyJcXCkkIiksUjI9bmV3IFJlZ0V4cCgiXmhzbGFcXCgiK1tUMixDMixDMixUMl0rIlxcKSQiKSxPMj17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtmdW5jdGlvbiB6Migpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdEhleCgpfWZ1bmN0aW9uIEQyKCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0UmdiKCl9ZnVuY3Rpb24gQjIodCl7dmFyIGUsbjtyZXR1cm4gdD0odCsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKGU9QTIuZXhlYyh0KSk/KG49ZVsxXS5sZW5ndGgsZT1wYXJzZUludChlWzFdLDE2KSw2PT09bj9IMihlKTozPT09bj9uZXcgajIoZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgxNSZlKTw8NHwxNSZlLDEpOjg9PT1uP0YyKGU+PjI0JjI1NSxlPj4xNiYyNTUsZT4+OCYyNTUsKDI1NSZlKS8yNTUpOjQ9PT1uP0YyKGU+PjEyJjE1fGU+PjgmMjQwLGU+PjgmMTV8ZT4+NCYyNDAsZT4+NCYxNXwyNDAmZSwoKDE1JmUpPDw0fDE1JmUpLzI1NSk6bnVsbCk6KGU9azIuZXhlYyh0KSk/bmV3IGoyKGVbMV0sZVsyXSxlWzNdLDEpOihlPUwyLmV4ZWModCkpP25ldyBqMigyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCwxKTooZT1QMi5leGVjKHQpKT9GMihlWzFdLGVbMl0sZVszXSxlWzRdKTooZT1OMi5leGVjKHQpKT9GMigyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCxlWzRdKTooZT1JMi5leGVjKHQpKT9ZMihlWzFdLGVbMl0vMTAwLGVbM10vMTAwLDEpOihlPVIyLmV4ZWModCkpP1kyKGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsZVs0XSk6TzIuaGFzT3duUHJvcGVydHkodCk/SDIoTzJbdF0pOiJ0cmFuc3BhcmVudCI9PT10P25ldyBqMihOYU4sTmFOLE5hTiwwKTpudWxsfWZ1bmN0aW9uIEgyKHQpe3JldHVybiBuZXcgajIodD4+MTYmMjU1LHQ+PjgmMjU1LDI1NSZ0LDEpfWZ1bmN0aW9uIEYyKHQsZSxuLGkpe3JldHVybiBpPD0wJiYodD1lPW49TmFOKSxuZXcgajIodCxlLG4saSl9ZnVuY3Rpb24gVjIodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiB3Mnx8KHQ9QjIodCkpLHQ/bmV3IGoyKCh0PXQucmdiKCkpLnIsdC5nLHQuYix0Lm9wYWNpdHkpOm5ldyBqMn1mdW5jdGlvbiBVMih0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/VjIodCk6bmV3IGoyKHQsZSxuLG51bGw9PWk/MTppKX1mdW5jdGlvbiBqMih0LGUsbixpKXt0aGlzLnI9K3QsdGhpcy5nPStlLHRoaXMuYj0rbix0aGlzLm9wYWNpdHk9K2l9ZnVuY3Rpb24gRzIoKXtyZXR1cm4iIyIrcTIodGhpcy5yKStxMih0aGlzLmcpK3EyKHRoaXMuYil9ZnVuY3Rpb24gVzIoKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpPyJyZ2IoIjoicmdiYSgiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKDE9PT10PyIpIjoiLCAiK3QrIikiKX1mdW5jdGlvbiBxMih0KXtyZXR1cm4oKHQ9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0KXx8MCkpKTwxNj8iMCI6IiIpK3QudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIFkyKHQsZSxuLGkpe3JldHVybiBpPD0wP3Q9ZT1uPU5hTjpuPD0wfHxuPj0xP3Q9ZT1OYU46ZTw9MCYmKHQ9TmFOKSxuZXcgJDIodCxlLG4saSl9ZnVuY3Rpb24gWDIodCl7aWYodCBpbnN0YW5jZW9mICQyKXJldHVybiBuZXcgJDIodC5oLHQucyx0LmwsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2YgdzJ8fCh0PUIyKHQpKSwhdClyZXR1cm4gbmV3ICQyO2lmKHQgaW5zdGFuY2VvZiAkMilyZXR1cm4gdDt2YXIgZT0odD10LnJnYigpKS5yLzI1NSxuPXQuZy8yNTUsaT10LmIvMjU1LHI9TWF0aC5taW4oZSxuLGkpLG89TWF0aC5tYXgoZSxuLGkpLGE9TmFOLHM9by1yLGw9KG8rcikvMjtyZXR1cm4gcz8oYT1lPT09bz8obi1pKS9zKzYqKG48aSk6bj09PW8/KGktZSkvcysyOihlLW4pL3MrNCxzLz1sPC41P28rcjoyLW8tcixhKj02MCk6cz1sPjAmJmw8MT8wOmEsbmV3ICQyKGEscyxsLHQub3BhY2l0eSl9ZnVuY3Rpb24gJDIodCxlLG4saSl7dGhpcy5oPSt0LHRoaXMucz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIEsyKHQsZSxuKXtyZXR1cm4gMjU1Kih0PDYwP2UrKG4tZSkqdC82MDp0PDE4MD9uOnQ8MjQwP2UrKG4tZSkqKDI0MC10KS82MDplKX1iMih3MixCMix7Y29weTpmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgdGhpcy5jb25zdHJ1Y3Rvcix0aGlzLHQpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmRpc3BsYXlhYmxlKCl9LGhleDp6Mixmb3JtYXRIZXg6ejIsZm9ybWF0SHNsOmZ1bmN0aW9uIFoyKCl7cmV0dXJuIFgyKHRoaXMpLmZvcm1hdEhzbCgpfSxmb3JtYXRSZ2I6RDIsdG9TdHJpbmc6RDJ9KSxiMihqMixVMix4Mih3Mix7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9NMjpNYXRoLnBvdyhNMix0KSxuZXcgajIodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/UzI6TWF0aC5wb3coUzIsdCksbmV3IGoyKHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybi0uNTw9dGhpcy5yJiZ0aGlzLnI8MjU1LjUmJi0uNTw9dGhpcy5nJiZ0aGlzLmc8MjU1LjUmJi0uNTw9dGhpcy5iJiZ0aGlzLmI8MjU1LjUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6RzIsZm9ybWF0SGV4OkcyLGZvcm1hdFJnYjpXMix0b1N0cmluZzpXMn0pKSxiMigkMiwoZnVuY3Rpb24gSjIodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP1gyKHQpOm5ldyAkMih0LGUsbixudWxsPT1pPzE6aSl9KSx4Mih3Mix7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9NMjpNYXRoLnBvdyhNMix0KSxuZXcgJDIodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9TMjpNYXRoLnBvdyhTMix0KSxuZXcgJDIodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmglMzYwKzM2MCoodGhpcy5oPDApLGU9aXNOYU4odCl8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMsbj10aGlzLmwsaT1uKyhuPC41P246MS1uKSplLHI9MipuLWk7cmV0dXJuIG5ldyBqMihLMih0Pj0yNDA/dC0yNDA6dCsxMjAscixpKSxLMih0LHIsaSksSzIodDwxMjA/dCsyNDA6dC0xMjAscixpKSx0aGlzLm9wYWNpdHkpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sZm9ybWF0SHNsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KHQ9aXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpKT8iaHNsKCI6ImhzbGEoIikrKHRoaXMuaHx8MCkrIiwgIisxMDAqKHRoaXMuc3x8MCkrIiUsICIrMTAwKih0aGlzLmx8fDApKyIlIisoMT09PXQ/IikiOiIsICIrdCsiKSIpfX0pKTt2YXIgUTI9TWF0aC5QSS8xODAsdDU9MTgwL01hdGguUEksZTU9LS4xNDg2MSxuNT0xLjc4Mjc3LGk1PS0uMjkyMjcscjU9LS45MDY0OSxvNT0xLjk3Mjk0LGE1PW81KnI1LHM1PW81Km41LGw1PW41Kmk1LXI1KmU1O2Z1bmN0aW9uIGM1KHQpe2lmKHQgaW5zdGFuY2VvZiBoNSlyZXR1cm4gbmV3IGg1KHQuaCx0LnMsdC5sLHQub3BhY2l0eSk7dCBpbnN0YW5jZW9mIGoyfHwodD1WMih0KSk7dmFyIGU9dC5nLzI1NSxuPXQuYi8yNTUsaT0obDUqbithNSoodC5yLzI1NSktczUqZSkvKGw1K2E1LXM1KSxyPW4taSxvPShvNSooZS1pKS1pNSpyKS9yNSxhPU1hdGguc3FydChvKm8rcipyKS8obzUqaSooMS1pKSkscz1hP01hdGguYXRhbjIobyxyKSp0NS0xMjA6TmFOO3JldHVybiBuZXcgaDUoczwwP3MrMzYwOnMsYSxpLHQub3BhY2l0eSl9ZnVuY3Rpb24gdTUodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP2M1KHQpOm5ldyBoNSh0LGUsbixudWxsPT1pPzE6aSl9ZnVuY3Rpb24gaDUodCxlLG4saSl7dGhpcy5oPSt0LHRoaXMucz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIGQ1KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBwNSh0LGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdCtuKmV9fWZ1bmN0aW9uIGY1KHQpe3JldHVybiAxPT0odD0rdCk/bTU6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gbi1lPyhmdW5jdGlvbiBpKHQsZSxuKXtyZXR1cm4gdD1NYXRoLnBvdyh0LG4pLGU9TWF0aC5wb3coZSxuKS10LG49MS9uLGZ1bmN0aW9uKGkpe3JldHVybiBNYXRoLnBvdyh0K2kqZSxuKX19KShlLG4sdCk6ZDUoaXNOYU4oZSk/bjplKX19ZnVuY3Rpb24gbTUodCxlKXt2YXIgbj1lLXQ7cmV0dXJuIG4/cDUodCxuKTpkNShpc05hTih0KT9lOnQpfWIyKGg1LHU1LHgyKHcyLHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10P00yOk1hdGgucG93KE0yLHQpLG5ldyBoNSh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10P1MyOk1hdGgucG93KFMyLHQpLG5ldyBoNSh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PWlzTmFOKHRoaXMuaCk/MDoodGhpcy5oKzEyMCkqUTIsZT0rdGhpcy5sLG49aXNOYU4odGhpcy5zKT8wOnRoaXMucyplKigxLWUpLGk9TWF0aC5jb3ModCkscj1NYXRoLnNpbih0KTtyZXR1cm4gbmV3IGoyKDI1NSooZStuKihlNSppK241KnIpKSwyNTUqKGUrbiooaTUqaStyNSpyKSksMjU1KihlK24qKG81KmkpKSx0aGlzLm9wYWNpdHkpfX0pKTt2YXIgZzU9KGZ1bmN0aW9uIHQoZSl7dmFyIG49ZjUoZSk7ZnVuY3Rpb24gaSh0LGUpe3ZhciBpPW4oKHQ9VTIodCkpLnIsKGU9VTIoZSkpLnIpLHI9bih0LmcsZS5nKSxvPW4odC5iLGUuYiksYT1tNSh0Lm9wYWNpdHksZS5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQucj1pKGUpLHQuZz1yKGUpLHQuYj1vKGUpLHQub3BhY2l0eT1hKGUpLHQrIiJ9fXJldHVybiBpLmdhbW1hPXQsaX0pKDEpO2Z1bmN0aW9uIF81KHQsZSl7ZXx8KGU9W10pO3ZhciBuLGk9dD9NYXRoLm1pbihlLmxlbmd0aCx0Lmxlbmd0aCk6MCxyPWUuc2xpY2UoKTtyZXR1cm4gZnVuY3Rpb24obyl7Zm9yKG49MDtuPGk7KytuKXJbbl09dFtuXSooMS1vKStlW25dKm87cmV0dXJuIHJ9fWZ1bmN0aW9uIHk1KHQsZSl7dmFyIG4saT1lP2UubGVuZ3RoOjAscj10P01hdGgubWluKGksdC5sZW5ndGgpOjAsbz1uZXcgQXJyYXkociksYT1uZXcgQXJyYXkoaSk7Zm9yKG49MDtuPHI7KytuKW9bbl09RTUodFtuXSxlW25dKTtmb3IoO248aTsrK24pYVtuXT1lW25dO3JldHVybiBmdW5jdGlvbih0KXtmb3Iobj0wO248cjsrK24pYVtuXT1vW25dKHQpO3JldHVybiBhfX1mdW5jdGlvbiB2NSh0LGUpe3ZhciBuPW5ldyBEYXRlO3JldHVybiB0PSt0LGU9K2UsZnVuY3Rpb24oaSl7cmV0dXJuIG4uc2V0VGltZSh0KigxLWkpK2UqaSksbn19ZnVuY3Rpb24gYjUodCxlKXtyZXR1cm4gdD0rdCxlPStlLGZ1bmN0aW9uKG4pe3JldHVybiB0KigxLW4pK2Uqbn19ZnVuY3Rpb24geDUodCxlKXt2YXIgbixpPXt9LHI9e307Zm9yKG4gaW4gbnVsbCE9PXQmJiJvYmplY3QiPT10eXBlb2YgdHx8KHQ9e30pLG51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGV8fChlPXt9KSxlKW4gaW4gdD9pW25dPUU1KHRbbl0sZVtuXSk6cltuXT1lW25dO3JldHVybiBmdW5jdGlvbih0KXtmb3IobiBpbiBpKXJbbl09aVtuXSh0KTtyZXR1cm4gcn19dmFyIHc1PS9bLStdPyg/OlxkK1wuP1xkKnxcLj9cZCspKD86W2VFXVstK10/XGQrKT8vZyxTNT1uZXcgUmVnRXhwKHc1LnNvdXJjZSwiZyIpO2Z1bmN0aW9uIE01KHQsZSl7dmFyIG4saSxyLG89dzUubGFzdEluZGV4PVM1Lmxhc3RJbmRleD0wLGE9LTEscz1bXSxsPVtdO2Zvcih0Kz0iIixlKz0iIjsobj13NS5leGVjKHQpKSYmKGk9UzUuZXhlYyhlKSk7KShyPWkuaW5kZXgpPm8mJihyPWUuc2xpY2UobyxyKSxzW2FdP3NbYV0rPXI6c1srK2FdPXIpLChuPW5bMF0pPT09KGk9aVswXSk/c1thXT9zW2FdKz1pOnNbKythXT1pOihzWysrYV09bnVsbCxsLnB1c2goe2k6YSx4OmI1KG4saSl9KSksbz1TNS5sYXN0SW5kZXg7cmV0dXJuIG88ZS5sZW5ndGgmJihyPWUuc2xpY2Uobyksc1thXT9zW2FdKz1yOnNbKythXT1yKSxzLmxlbmd0aDwyP2xbMF0/KGZ1bmN0aW9uIGModCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0KGUpKyIifX0pKGxbMF0ueCk6KGZ1bmN0aW9uIHUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fSkoZSk6KGU9bC5sZW5ndGgsZnVuY3Rpb24odCl7Zm9yKHZhciBuLGk9MDtpPGU7KytpKXNbKG49bFtpXSkuaV09bi54KHQpO3JldHVybiBzLmpvaW4oIiIpfSl9ZnVuY3Rpb24gRTUodCxlKXt2YXIgbixpPXR5cGVvZiBlO3JldHVybiBudWxsPT1lfHwiYm9vbGVhbiI9PT1pP2Q1KGUpOigibnVtYmVyIj09PWk/YjU6InN0cmluZyI9PT1pPyhuPUIyKGUpKT8oZT1uLGc1KTpNNTplIGluc3RhbmNlb2YgQjI/ZzU6ZSBpbnN0YW5jZW9mIERhdGU/djU6KGZ1bmN0aW9uIHIodCl7cmV0dXJuIEFycmF5QnVmZmVyLmlzVmlldyh0KSYmISh0IGluc3RhbmNlb2YgRGF0YVZpZXcpfSkoZSk/XzU6QXJyYXkuaXNBcnJheShlKT95NToiZnVuY3Rpb24iIT10eXBlb2YgZS52YWx1ZU9mJiYiZnVuY3Rpb24iIT10eXBlb2YgZS50b1N0cmluZ3x8aXNOYU4oZSk/eDU6YjUpKHQsZSl9ZnVuY3Rpb24gVDUodCxlKXtyZXR1cm4gdD0rdCxlPStlLGZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLnJvdW5kKHQqKDEtbikrZSpuKX19ZnVuY3Rpb24gQzUodCl7cmV0dXJuKGZ1bmN0aW9uIGUobil7ZnVuY3Rpb24gaShlLGkpe3ZhciByPXQoKGU9dTUoZSkpLmgsKGk9dTUoaSkpLmgpLG89bTUoZS5zLGkucyksYT1tNShlLmwsaS5sKSxzPW01KGUub3BhY2l0eSxpLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5oPXIodCksZS5zPW8odCksZS5sPWEoTWF0aC5wb3codCxuKSksZS5vcGFjaXR5PXModCksZSsiIn19cmV0dXJuIG49K24saS5nYW1tYT1lLGl9KSgxKX1DNSgoZnVuY3Rpb24gQTUodCxlKXt2YXIgbj1lLXQ7cmV0dXJuIG4/cDUodCxuPjE4MHx8bjwtMTgwP24tMzYwKk1hdGgucm91bmQobi8zNjApOm4pOmQ1KGlzTmFOKHQpP2U6dCl9KSk7dmFyIGs1PUM1KG01KTtmdW5jdGlvbiBMNSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gUDUodCl7cmV0dXJuK3R9dmFyIE41PVswLDFdO2Z1bmN0aW9uIEk1KHQsZSl7cmV0dXJuKGUtPXQ9K3QpP2Z1bmN0aW9uKG4pe3JldHVybihuLXQpL2V9Okw1KGUpfWZ1bmN0aW9uIFI1KHQsZSxuLGkpe3ZhciByPXRbMF0sbz10WzFdLGE9ZVswXSxzPWVbMV07cmV0dXJuIG88cj8ocj1uKG8sciksYT1pKHMsYSkpOihyPW4ocixvKSxhPWkoYSxzKSksZnVuY3Rpb24odCl7cmV0dXJuIGEocih0KSl9fWZ1bmN0aW9uIE81KHQsZSxuLGkpe3ZhciByPU1hdGgubWluKHQubGVuZ3RoLGUubGVuZ3RoKS0xLG89bmV3IEFycmF5KHIpLGE9bmV3IEFycmF5KHIpLHM9LTE7Zm9yKHRbcl08dFswXSYmKHQ9dC5zbGljZSgpLnJldmVyc2UoKSxlPWUuc2xpY2UoKS5yZXZlcnNlKCkpOysrczxyOylvW3NdPW4odFtzXSx0W3MrMV0pLGFbc109aShlW3NdLGVbcysxXSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuPVEwKHQsZSwxLHIpLTE7cmV0dXJuIGFbbl0ob1tuXShlKSl9fWZ1bmN0aW9uIHo1KHQsZSl7cmV0dXJuIGUuZG9tYWluKHQuZG9tYWluKCkpLnJhbmdlKHQucmFuZ2UoKSkuaW50ZXJwb2xhdGUodC5pbnRlcnBvbGF0ZSgpKS5jbGFtcCh0LmNsYW1wKCkpfWZ1bmN0aW9uIEQ1KHQsZSl7dmFyIG4saSxyLG89TjUsYT1ONSxzPUU1LGw9ITE7ZnVuY3Rpb24gYygpe3JldHVybiBuPU1hdGgubWluKG8ubGVuZ3RoLGEubGVuZ3RoKT4yP081OlI1LGk9cj1udWxsLHV9ZnVuY3Rpb24gdShlKXtyZXR1cm4oaXx8KGk9bihvLGEsbD8oZnVuY3Rpb24gcih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXt2YXIgaT10KGU9K2Usbj0rbik7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiB0PD1lPzA6dD49bj8xOmkodCl9fX0pKHQpOnQscykpKSgrZSl9cmV0dXJuIHUuaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybihyfHwocj1uKGEsbyxJNSxsPyhmdW5jdGlvbiBpKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZhciBpPXQoZT0rZSxuPStuKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQ8PTA/ZTp0Pj0xP246aSh0KX19fSkoZSk6ZSkpKSgrdCl9LHUuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPWYyLmNhbGwodCxQNSksYygpKTpvLnNsaWNlKCl9LHUucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9bTIuY2FsbCh0KSxjKCkpOmEuc2xpY2UoKX0sdS5yYW5nZVJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBhPW0yLmNhbGwodCkscz1UNSxjKCl9LHUuY2xhbXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9ISF0LGMoKSk6bH0sdS5pbnRlcnBvbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz10LGMoKSk6c30sYygpfWZ1bmN0aW9uIEI1KHQsZSl7aWYoKG49KHQ9ZT90LnRvRXhwb25lbnRpYWwoZS0xKTp0LnRvRXhwb25lbnRpYWwoKSkuaW5kZXhPZigiZSIpKTwwKXJldHVybiBudWxsO3ZhciBuLGk9dC5zbGljZSgwLG4pO3JldHVybltpLmxlbmd0aD4xP2lbMF0raS5zbGljZSgyKTppLCt0LnNsaWNlKG4rMSldfWZ1bmN0aW9uIEg1KHQpe3JldHVybih0PUI1KE1hdGguYWJzKHQpKSk/dFsxXTpOYU59dmFyIEY1LFY1PS9eKD86KC4pPyhbPD49Xl0pKT8oWytcLSggXSk/KFskI10pPygwKT8oXGQrKT8oLCk/KFwuXGQrKT8ofik/KFthLXolXSk/JC9pO2Z1bmN0aW9uIFU1KHQpe2lmKCEoZT1WNS5leGVjKHQpKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgZm9ybWF0OiAiK3QpO3ZhciBlO3JldHVybiBuZXcgajUoe2ZpbGw6ZVsxXSxhbGlnbjplWzJdLHNpZ246ZVszXSxzeW1ib2w6ZVs0XSx6ZXJvOmVbNV0sd2lkdGg6ZVs2XSxjb21tYTplWzddLHByZWNpc2lvbjplWzhdJiZlWzhdLnNsaWNlKDEpLHRyaW06ZVs5XSx0eXBlOmVbMTBdfSl9ZnVuY3Rpb24gajUodCl7dGhpcy5maWxsPXZvaWQgMD09PXQuZmlsbD8iICI6dC5maWxsKyIiLHRoaXMuYWxpZ249dm9pZCAwPT09dC5hbGlnbj8iPiI6dC5hbGlnbisiIix0aGlzLnNpZ249dm9pZCAwPT09dC5zaWduPyItIjp0LnNpZ24rIiIsdGhpcy5zeW1ib2w9dm9pZCAwPT09dC5zeW1ib2w/IiI6dC5zeW1ib2wrIiIsdGhpcy56ZXJvPSEhdC56ZXJvLHRoaXMud2lkdGg9dm9pZCAwPT09dC53aWR0aD92b2lkIDA6K3Qud2lkdGgsdGhpcy5jb21tYT0hIXQuY29tbWEsdGhpcy5wcmVjaXNpb249dm9pZCAwPT09dC5wcmVjaXNpb24/dm9pZCAwOit0LnByZWNpc2lvbix0aGlzLnRyaW09ISF0LnRyaW0sdGhpcy50eXBlPXZvaWQgMD09PXQudHlwZT8iIjp0LnR5cGUrIiJ9ZnVuY3Rpb24gRzUodCxlKXt2YXIgbj1CNSh0LGUpO2lmKCFuKXJldHVybiB0KyIiO3ZhciBpPW5bMF0scj1uWzFdO3JldHVybiByPDA/IjAuIituZXcgQXJyYXkoLXIpLmpvaW4oIjAiKStpOmkubGVuZ3RoPnIrMT9pLnNsaWNlKDAscisxKSsiLiIraS5zbGljZShyKzEpOmkrbmV3IEFycmF5KHItaS5sZW5ndGgrMikuam9pbigiMCIpfVU1LnByb3RvdHlwZT1qNS5wcm90b3R5cGUsajUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlsbCt0aGlzLmFsaWduK3RoaXMuc2lnbit0aGlzLnN5bWJvbCsodGhpcy56ZXJvPyIwIjoiIikrKHZvaWQgMD09PXRoaXMud2lkdGg/IiI6TWF0aC5tYXgoMSwwfHRoaXMud2lkdGgpKSsodGhpcy5jb21tYT8iLCI6IiIpKyh2b2lkIDA9PT10aGlzLnByZWNpc2lvbj8iIjoiLiIrTWF0aC5tYXgoMCwwfHRoaXMucHJlY2lzaW9uKSkrKHRoaXMudHJpbT8ifiI6IiIpK3RoaXMudHlwZX07dmFyIFc1PXsiJSI6ZnVuY3Rpb24odCxlKXtyZXR1cm4oMTAwKnQpLnRvRml4ZWQoZSl9LGI6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoMil9LGM6ZnVuY3Rpb24odCl7cmV0dXJuIHQrIiJ9LGQ6ZnVuY3Rpb24gcTUodCl7cmV0dXJuIE1hdGguYWJzKHQ9TWF0aC5yb3VuZCh0KSk+PTFlMjE/dC50b0xvY2FsZVN0cmluZygiZW4iKS5yZXBsYWNlKC8sL2csIiIpOnQudG9TdHJpbmcoMTApfSxlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudG9FeHBvbmVudGlhbChlKX0sZjpmdW5jdGlvbih0LGUpe3JldHVybiB0LnRvRml4ZWQoZSl9LGc6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50b1ByZWNpc2lvbihlKX0sbzpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZyg4KX0scDpmdW5jdGlvbih0LGUpe3JldHVybiBHNSgxMDAqdCxlKX0scjpHNSxzOmZ1bmN0aW9uIFk1KHQsZSl7dmFyIG49QjUodCxlKTtpZighbilyZXR1cm4gdCsiIjt2YXIgaT1uWzBdLHI9blsxXSxvPXItKEY1PTMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKHIvMykpKSkrMSxhPWkubGVuZ3RoO3JldHVybiBvPT09YT9pOm8+YT9pK25ldyBBcnJheShvLWErMSkuam9pbigiMCIpOm8+MD9pLnNsaWNlKDAsbykrIi4iK2kuc2xpY2Uobyk6IjAuIituZXcgQXJyYXkoMS1vKS5qb2luKCIwIikrQjUodCxNYXRoLm1heCgwLGUrby0xKSlbMF19LFg6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9LHg6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpfX07ZnVuY3Rpb24gWDUodCl7cmV0dXJuIHR9dmFyICQ1LEs1LFo1LEo1PUFycmF5LnByb3RvdHlwZS5tYXAsUTU9WyJ5IiwieiIsImEiLCJmIiwicCIsIm4iLCLCtSIsIm0iLCIiLCJrIiwiTSIsIkciLCJUIiwiUCIsIkUiLCJaIiwiWSJdO2Z1bmN0aW9uIHQzKHQpe3ZhciBlPXZvaWQgMD09PXQuZ3JvdXBpbmd8fHZvaWQgMD09PXQudGhvdXNhbmRzP1g1OihmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4saSl7Zm9yKHZhciByPW4ubGVuZ3RoLG89W10sYT0wLHM9dFswXSxsPTA7cj4wJiZzPjAmJihsK3MrMT5pJiYocz1NYXRoLm1heCgxLGktbCkpLG8ucHVzaChuLnN1YnN0cmluZyhyLT1zLHIrcykpLCEoKGwrPXMrMSk+aSkpOylzPXRbYT0oYSsxKSV0Lmxlbmd0aF07cmV0dXJuIG8ucmV2ZXJzZSgpLmpvaW4oZSl9fSkoSjUuY2FsbCh0Lmdyb3VwaW5nLE51bWJlciksdC50aG91c2FuZHMrIiIpLGk9dm9pZCAwPT09dC5jdXJyZW5jeT8iIjp0LmN1cnJlbmN5WzBdKyIiLHI9dm9pZCAwPT09dC5jdXJyZW5jeT8iIjp0LmN1cnJlbmN5WzFdKyIiLG89dm9pZCAwPT09dC5kZWNpbWFsPyIuIjp0LmRlY2ltYWwrIiIsYT12b2lkIDA9PT10Lm51bWVyYWxzP1g1OihmdW5jdGlvbiBzKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9bMC05XS9nLChmdW5jdGlvbihlKXtyZXR1cm4gdFsrZV19KSl9fSkoSjUuY2FsbCh0Lm51bWVyYWxzLFN0cmluZykpLGw9dm9pZCAwPT09dC5wZXJjZW50PyIlIjp0LnBlcmNlbnQrIiIsYz12b2lkIDA9PT10Lm1pbnVzPyItIjp0Lm1pbnVzKyIiLHU9dm9pZCAwPT09dC5uYW4/Ik5hTiI6dC5uYW4rIiI7ZnVuY3Rpb24gaCh0KXt2YXIgbj0odD1VNSh0KSkuZmlsbCxzPXQuYWxpZ24saD10LnNpZ24sZD10LnN5bWJvbCxwPXQuemVybyxmPXQud2lkdGgsbT10LmNvbW1hLGc9dC5wcmVjaXNpb24sXz10LnRyaW0seT10LnR5cGU7Im4iPT09eT8obT0hMCx5PSJnIik6VzVbeV18fCh2b2lkIDA9PT1nJiYoZz0xMiksXz0hMCx5PSJnIiksKHB8fCIwIj09PW4mJiI9Ij09PXMpJiYocD0hMCxuPSIwIixzPSI9Iik7dmFyIHY9IiQiPT09ZD9pOiIjIj09PWQmJi9bYm94WF0vLnRlc3QoeSk/IjAiK3kudG9Mb3dlckNhc2UoKToiIixiPSIkIj09PWQ/cjovWyVwXS8udGVzdCh5KT9sOiIiLHg9VzVbeV0sdz0vW2RlZmdwcnMlXS8udGVzdCh5KTtmdW5jdGlvbiBTKHQpe3ZhciBpLHIsbCxkPXYsUz1iO2lmKCJjIj09PXkpUz14KHQpK1MsdD0iIjtlbHNle3ZhciBNPSh0PSt0KTwwfHwxL3Q8MDtpZih0PWlzTmFOKHQpP3U6eChNYXRoLmFicyh0KSxnKSxfJiYodD0oZnVuY3Rpb24gRSh0KXt0OmZvcih2YXIgZSxuPXQubGVuZ3RoLGk9MSxyPS0xO2k8bjsrK2kpc3dpdGNoKHRbaV0pe2Nhc2UiLiI6cj1lPWk7YnJlYWs7Y2FzZSIwIjowPT09ciYmKHI9aSksZT1pO2JyZWFrO2RlZmF1bHQ6aWYoISt0W2ldKWJyZWFrIHQ7cj4wJiYocj0wKX1yZXR1cm4gcj4wP3Quc2xpY2UoMCxyKSt0LnNsaWNlKGUrMSk6dH0pKHQpKSxNJiYwPT0rdCYmIisiIT09aCYmKE09ITEpLGQ9KE0/IigiPT09aD9oOmM6Ii0iPT09aHx8IigiPT09aD8iIjpoKStkLFM9KCJzIj09PXk/UTVbOCtGNS8zXToiIikrUysoTSYmIigiPT09aD8iKSI6IiIpLHcpZm9yKGk9LTEscj10Lmxlbmd0aDsrK2k8cjspaWYoNDg+KGw9dC5jaGFyQ29kZUF0KGkpKXx8bD41Nyl7Uz0oNDY9PT1sP28rdC5zbGljZShpKzEpOnQuc2xpY2UoaSkpK1MsdD10LnNsaWNlKDAsaSk7YnJlYWt9fW0mJiFwJiYodD1lKHQsMS8wKSk7dmFyIFQ9ZC5sZW5ndGgrdC5sZW5ndGgrUy5sZW5ndGgsQz1UPGY/bmV3IEFycmF5KGYtVCsxKS5qb2luKG4pOiIiO3N3aXRjaChtJiZwJiYodD1lKEMrdCxDLmxlbmd0aD9mLVMubGVuZ3RoOjEvMCksQz0iIikscyl7Y2FzZSI8Ijp0PWQrdCtTK0M7YnJlYWs7Y2FzZSI9Ijp0PWQrQyt0K1M7YnJlYWs7Y2FzZSJeIjp0PUMuc2xpY2UoMCxUPUMubGVuZ3RoPj4xKStkK3QrUytDLnNsaWNlKFQpO2JyZWFrO2RlZmF1bHQ6dD1DK2QrdCtTfXJldHVybiBhKHQpfXJldHVybiBnPXZvaWQgMD09PWc/NjovW2dwcnNdLy50ZXN0KHkpP01hdGgubWF4KDEsTWF0aC5taW4oMjEsZykpOk1hdGgubWF4KDAsTWF0aC5taW4oMjAsZykpLFMudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdCsiIn0sU31yZXR1cm57Zm9ybWF0OmgsZm9ybWF0UHJlZml4OmZ1bmN0aW9uIGQodCxlKXt2YXIgbj1oKCgodD1VNSh0KSkudHlwZT0iZiIsdCkpLGk9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoSDUoZSkvMykpKSxyPU1hdGgucG93KDEwLC1pKSxvPVE1WzgraS8zXTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG4ocip0KStvfX19fWZ1bmN0aW9uIGUzKHQsZSxuKXt2YXIgaSxyPXRbMF0sbz10W3QubGVuZ3RoLTFdLGE9YTIocixvLG51bGw9PWU/MTA6ZSk7c3dpdGNoKChuPVU1KG51bGw9PW4/IixmIjpuKSkudHlwZSl7Y2FzZSJzIjp2YXIgcz1NYXRoLm1heChNYXRoLmFicyhyKSxNYXRoLmFicyhvKSk7cmV0dXJuIG51bGwhPW4ucHJlY2lzaW9ufHxpc05hTihpPShmdW5jdGlvbiBsKHQsZSl7cmV0dXJuIE1hdGgubWF4KDAsMypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoSDUoZSkvMykpKS1INShNYXRoLmFicyh0KSkpfSkoYSxzKSl8fChuLnByZWNpc2lvbj1pKSxaNShuLHMpO2Nhc2UiIjpjYXNlImUiOmNhc2UiZyI6Y2FzZSJwIjpjYXNlInIiOm51bGwhPW4ucHJlY2lzaW9ufHxpc05hTihpPShmdW5jdGlvbiBjKHQsZSl7cmV0dXJuIHQ9TWF0aC5hYnModCksZT1NYXRoLmFicyhlKS10LE1hdGgubWF4KDAsSDUoZSktSDUodCkpKzF9KShhLE1hdGgubWF4KE1hdGguYWJzKHIpLE1hdGguYWJzKG8pKSkpfHwobi5wcmVjaXNpb249aS0oImUiPT09bi50eXBlKSk7YnJlYWs7Y2FzZSJmIjpjYXNlIiUiOm51bGwhPW4ucHJlY2lzaW9ufHxpc05hTihpPShmdW5jdGlvbiB1KHQpe3JldHVybiBNYXRoLm1heCgwLC1INShNYXRoLmFicyh0KSkpfSkoYSkpfHwobi5wcmVjaXNpb249aS0yKigiJSI9PT1uLnR5cGUpKX1yZXR1cm4gSzUobil9ZnVuY3Rpb24gbjModCl7dmFyIGU9dC5kb21haW47cmV0dXJuIHQudGlja3M9ZnVuY3Rpb24odCl7dmFyIG49ZSgpO3JldHVybiByMihuWzBdLG5bbi5sZW5ndGgtMV0sbnVsbD09dD8xMDp0KX0sdC50aWNrRm9ybWF0PWZ1bmN0aW9uKHQsbil7cmV0dXJuIGUzKGUoKSx0LG4pfSx0Lm5pY2U9ZnVuY3Rpb24obil7bnVsbD09biYmKG49MTApO3ZhciBpLHI9ZSgpLG89MCxhPXIubGVuZ3RoLTEscz1yW29dLGw9clthXTtyZXR1cm4gbDxzJiYoaT1zLHM9bCxsPWksaT1vLG89YSxhPWkpLChpPW8yKHMsbCxuKSk+MD9pPW8yKHM9TWF0aC5mbG9vcihzL2kpKmksbD1NYXRoLmNlaWwobC9pKSppLG4pOmk8MCYmKGk9bzIocz1NYXRoLmNlaWwocyppKS9pLGw9TWF0aC5mbG9vcihsKmkpL2ksbikpLGk+MD8ocltvXT1NYXRoLmZsb29yKHMvaSkqaSxyW2FdPU1hdGguY2VpbChsL2kpKmksZShyKSk6aTwwJiYocltvXT1NYXRoLmNlaWwocyppKS9pLHJbYV09TWF0aC5mbG9vcihsKmkpL2ksZShyKSksdH0sdH1mdW5jdGlvbiBpMyh0LGUpe3ZhciBuLGk9MCxyPSh0PXQuc2xpY2UoKSkubGVuZ3RoLTEsbz10W2ldLGE9dFtyXTtyZXR1cm4gYTxvJiYobj1pLGk9cixyPW4sbj1vLG89YSxhPW4pLHRbaV09ZS5mbG9vcihvKSx0W3JdPWUuY2VpbChhKSx0fWZ1bmN0aW9uIHIzKHQsZSl7cmV0dXJuKGU9TWF0aC5sb2coZS90KSk/ZnVuY3Rpb24obil7cmV0dXJuIE1hdGgubG9nKG4vdCkvZX06TDUoZSl9ZnVuY3Rpb24gbzModCxlKXtyZXR1cm4gdDwwP2Z1bmN0aW9uKG4pe3JldHVybi1NYXRoLnBvdygtZSxuKSpNYXRoLnBvdygtdCwxLW4pfTpmdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5wb3coZSxuKSpNYXRoLnBvdyh0LDEtbil9fWZ1bmN0aW9uIGEzKHQpe3JldHVybiBpc0Zpbml0ZSh0KT8rKCIxZSIrdCk6dDwwPzA6dH1mdW5jdGlvbiBzMyh0KXtyZXR1cm4gMTA9PT10P2EzOnQ9PT1NYXRoLkU/TWF0aC5leHA6ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgucG93KHQsZSl9fWZ1bmN0aW9uIGwzKHQpe3JldHVybiB0PT09TWF0aC5FP01hdGgubG9nOjEwPT09dCYmTWF0aC5sb2cxMHx8Mj09PXQmJk1hdGgubG9nMnx8KHQ9TWF0aC5sb2codCksZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgubG9nKGUpL3R9KX1mdW5jdGlvbiBjMyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuLXQoLWUpfX1mdW5jdGlvbiB1Myh0LGUpe3JldHVybiB0PDA/LU1hdGgucG93KC10LGUpOk1hdGgucG93KHQsZSl9ZnVuY3Rpb24gaDMoKXt2YXIgdD0xLGU9RDUoKGZ1bmN0aW9uIG4oZSxpKXtyZXR1cm4oaT11MyhpLHQpLShlPXUzKGUsdCkpKT9mdW5jdGlvbihuKXtyZXR1cm4odTMobix0KS1lKS9pfTpMNShpKX0pLChmdW5jdGlvbiBpKGUsbil7cmV0dXJuIG49dTMobix0KS0oZT11MyhlLHQpKSxmdW5jdGlvbihpKXtyZXR1cm4gdTMoZStuKmksMS90KX19KSkscj1lLmRvbWFpbjtyZXR1cm4gZS5leHBvbmVudD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rZSxyKHIoKSkpOnR9LGUuY29weT1mdW5jdGlvbigpe3JldHVybiB6NShlLGgzKCkuZXhwb25lbnQodCkpfSxuMyhlKX0hKGZ1bmN0aW9uIGQzKHQpe3JldHVybiAkNT10Myh0KSxLNT0kNS5mb3JtYXQsWjU9JDUuZm9ybWF0UHJlZml4LCQ1fSkoe2RlY2ltYWw6Ii4iLHRob3VzYW5kczoiLCIsZ3JvdXBpbmc6WzNdLGN1cnJlbmN5OlsiJCIsIiJdLG1pbnVzOiItIn0pO3ZhciBwMz1uZXcgRGF0ZSxmMz1uZXcgRGF0ZTtmdW5jdGlvbiBtMyh0LGUsbixpKXtmdW5jdGlvbiByKGUpe3JldHVybiB0KGU9MD09PWFyZ3VtZW50cy5sZW5ndGg/bmV3IERhdGU6bmV3IERhdGUoK2UpKSxlfXJldHVybiByLmZsb29yPWZ1bmN0aW9uKGUpe3JldHVybiB0KGU9bmV3IERhdGUoK2UpKSxlfSxyLmNlaWw9ZnVuY3Rpb24obil7cmV0dXJuIHQobj1uZXcgRGF0ZShuLTEpKSxlKG4sMSksdChuKSxufSxyLnJvdW5kPWZ1bmN0aW9uKHQpe3ZhciBlPXIodCksbj1yLmNlaWwodCk7cmV0dXJuIHQtZTxuLXQ/ZTpufSxyLm9mZnNldD1mdW5jdGlvbih0LG4pe3JldHVybiBlKHQ9bmV3IERhdGUoK3QpLG51bGw9PW4/MTpNYXRoLmZsb29yKG4pKSx0fSxyLnJhbmdlPWZ1bmN0aW9uKG4saSxvKXt2YXIgYSxzPVtdO2lmKG49ci5jZWlsKG4pLG89bnVsbD09bz8xOk1hdGguZmxvb3IobyksIShuPGkmJm8+MCkpcmV0dXJuIHM7ZG97cy5wdXNoKGE9bmV3IERhdGUoK24pKSxlKG4sbyksdChuKX13aGlsZShhPG4mJm48aSk7cmV0dXJuIHN9LHIuZmlsdGVyPWZ1bmN0aW9uKG4pe3JldHVybiBtMygoZnVuY3Rpb24oZSl7aWYoZT49ZSlmb3IoO3QoZSksIW4oZSk7KWUuc2V0VGltZShlLTEpfSksKGZ1bmN0aW9uKHQsaSl7aWYodD49dClpZihpPDApZm9yKDsrK2k8PTA7KWZvcig7ZSh0LC0xKSwhbih0KTspO2Vsc2UgZm9yKDstLWk+PTA7KWZvcig7ZSh0LDEpLCFuKHQpOyk7fSkpfSxuJiYoci5jb3VudD1mdW5jdGlvbihlLGkpe3JldHVybiBwMy5zZXRUaW1lKCtlKSxmMy5zZXRUaW1lKCtpKSx0KHAzKSx0KGYzKSxNYXRoLmZsb29yKG4ocDMsZjMpKX0sci5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP3IuZmlsdGVyKGk/ZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSkldD09MH06ZnVuY3Rpb24oZSl7cmV0dXJuIHIuY291bnQoMCxlKSV0PT0wfSk6cjpudWxsfSkscn12YXIgZzM9bTMoKGZ1bmN0aW9uKCl7fSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUtdH0pKTtnMy5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP20zKChmdW5jdGlvbihlKXtlLnNldFRpbWUoTWF0aC5mbG9vcihlL3QpKnQpfSksKGZ1bmN0aW9uKGUsbil7ZS5zZXRUaW1lKCtlK24qdCl9KSwoZnVuY3Rpb24oZSxuKXtyZXR1cm4obi1lKS90fSkpOmczOm51bGx9O3ZhciBfMz1nMyx5Mz0xZTMsdjM9NmU0LGIzPTM2ZTUseDM9ODY0ZTUsdzM9NjA0OGU1LFMzPW0zKChmdW5jdGlvbih0KXt0LnNldFRpbWUodC10LmdldE1pbGxpc2Vjb25kcygpKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKnkzKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL3kzfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ1NlY29uZHMoKX0pKSxNMz1tMygoZnVuY3Rpb24odCl7dC5zZXRUaW1lKHQtdC5nZXRNaWxsaXNlY29uZHMoKS10LmdldFNlY29uZHMoKSp5Myl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFRpbWUoK3QrZSp2Myl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS92M30pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRNaW51dGVzKCl9KSksRTM9bTMoKGZ1bmN0aW9uKHQpe3Quc2V0VGltZSh0LXQuZ2V0TWlsbGlzZWNvbmRzKCktdC5nZXRTZWNvbmRzKCkqeTMtdC5nZXRNaW51dGVzKCkqdjMpfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UqYjMpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvYjN9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0SG91cnMoKX0pKSxUMz1tMygoZnVuY3Rpb24odCl7dC5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0RGF0ZSh0LmdldERhdGUoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQtKGUuZ2V0VGltZXpvbmVPZmZzZXQoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkpKnYzKS94M30pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXREYXRlKCktMX0pKTtmdW5jdGlvbiBDMyh0KXtyZXR1cm4gbTMoKGZ1bmN0aW9uKGUpe2Uuc2V0RGF0ZShlLmdldERhdGUoKS0oZS5nZXREYXkoKSs3LXQpJTcpLGUuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldERhdGUodC5nZXREYXRlKCkrNyplKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQtKGUuZ2V0VGltZXpvbmVPZmZzZXQoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkpKnYzKS93M30pKX12YXIgQTM9QzMoMCksazM9QzMoMSk7QzMoMiksQzMoMyk7dmFyIEwzPUMzKDQpO0MzKDUpLEMzKDYpO3ZhciBQMz1tMygoZnVuY3Rpb24odCl7dC5zZXREYXRlKDEpLHQuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldE1vbnRoKHQuZ2V0TW9udGgoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmdldE1vbnRoKCktdC5nZXRNb250aCgpKzEyKihlLmdldEZ1bGxZZWFyKCktdC5nZXRGdWxsWWVhcigpKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRNb250aCgpfSkpLE4zPW0zKChmdW5jdGlvbih0KXt0LnNldE1vbnRoKDAsMSksdC5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0RnVsbFllYXIodC5nZXRGdWxsWWVhcigpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZ2V0RnVsbFllYXIoKS10LmdldEZ1bGxZZWFyKCl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RnVsbFllYXIoKX0pKTtOMy5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gaXNGaW5pdGUodD1NYXRoLmZsb29yKHQpKSYmdD4wP20zKChmdW5jdGlvbihlKXtlLnNldEZ1bGxZZWFyKE1hdGguZmxvb3IoZS5nZXRGdWxsWWVhcigpL3QpKnQpLGUuc2V0TW9udGgoMCwxKSxlLnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKGUsbil7ZS5zZXRGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCkrbip0KX0pKTpudWxsfTt2YXIgSTM9TjMsUjM9bTMoKGZ1bmN0aW9uKHQpe3Quc2V0VVRDU2Vjb25kcygwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UqdjMpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvdjN9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDTWludXRlcygpfSkpLE8zPW0zKChmdW5jdGlvbih0KXt0LnNldFVUQ01pbnV0ZXMoMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UqYjMpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvYjN9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDSG91cnMoKX0pKSx6Mz1tMygoZnVuY3Rpb24odCl7dC5zZXRVVENIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VVRDRGF0ZSh0LmdldFVUQ0RhdGUoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL3gzfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0RhdGUoKS0xfSkpO2Z1bmN0aW9uIEQzKHQpe3JldHVybiBtMygoZnVuY3Rpb24oZSl7ZS5zZXRVVENEYXRlKGUuZ2V0VVRDRGF0ZSgpLShlLmdldFVUQ0RheSgpKzctdCklNyksZS5zZXRVVENIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VVRDRGF0ZSh0LmdldFVUQ0RhdGUoKSs3KmUpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvdzN9KSl9dmFyIEIzPUQzKDApLEgzPUQzKDEpO0QzKDIpLEQzKDMpO3ZhciBGMz1EMyg0KTtEMyg1KSxEMyg2KTt2YXIgVjM9bTMoKGZ1bmN0aW9uKHQpe3Quc2V0VVRDRGF0ZSgxKSx0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENNb250aCh0LmdldFVUQ01vbnRoKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5nZXRVVENNb250aCgpLXQuZ2V0VVRDTW9udGgoKSsxMiooZS5nZXRVVENGdWxsWWVhcigpLXQuZ2V0VVRDRnVsbFllYXIoKSl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDTW9udGgoKX0pKSxVMz1tMygoZnVuY3Rpb24odCl7dC5zZXRVVENNb250aCgwLDEpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFVUQ0Z1bGxZZWFyKHQuZ2V0VVRDRnVsbFllYXIoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmdldFVUQ0Z1bGxZZWFyKCktdC5nZXRVVENGdWxsWWVhcigpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0Z1bGxZZWFyKCl9KSk7VTMuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIGlzRmluaXRlKHQ9TWF0aC5mbG9vcih0KSkmJnQ+MD9tMygoZnVuY3Rpb24oZSl7ZS5zZXRVVENGdWxsWWVhcihNYXRoLmZsb29yKGUuZ2V0VVRDRnVsbFllYXIoKS90KSp0KSxlLnNldFVUQ01vbnRoKDAsMSksZS5zZXRVVENIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbihlLG4pe2Uuc2V0VVRDRnVsbFllYXIoZS5nZXRVVENGdWxsWWVhcigpK24qdCl9KSk6bnVsbH07dmFyIGozPVUzO2Z1bmN0aW9uIEczKHQpe2lmKDA8PXQueSYmdC55PDEwMCl7dmFyIGU9bmV3IERhdGUoLTEsdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpO3JldHVybiBlLnNldEZ1bGxZZWFyKHQueSksZX1yZXR1cm4gbmV3IERhdGUodC55LHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKX1mdW5jdGlvbiBXMyh0KXtpZigwPD10LnkmJnQueTwxMDApe3ZhciBlPW5ldyBEYXRlKERhdGUuVVRDKC0xLHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKSk7cmV0dXJuIGUuc2V0VVRDRnVsbFllYXIodC55KSxlfXJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyh0LnksdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpKX1mdW5jdGlvbiBxMyh0LGUsbil7cmV0dXJue3k6dCxtOmUsZDpuLEg6MCxNOjAsUzowLEw6MH19dmFyIFkzLFgzLCQzLEszPXsiLSI6IiIsXzoiICIsMDoiMCJ9LFozPS9eXHMqXGQrLyxKMz0vXiUvLFEzPS9bXFxeJCorP3xbXF0oKS57fV0vZztmdW5jdGlvbiB0NCh0LGUsbil7dmFyIGk9dDwwPyItIjoiIixyPShpPy10OnQpKyIiLG89ci5sZW5ndGg7cmV0dXJuIGkrKG88bj9uZXcgQXJyYXkobi1vKzEpLmpvaW4oZSkrcjpyKX1mdW5jdGlvbiBlNCh0KXtyZXR1cm4gdC5yZXBsYWNlKFEzLCJcXCQmIil9ZnVuY3Rpb24gbjQodCl7cmV0dXJuIG5ldyBSZWdFeHAoIl4oPzoiK3QubWFwKGU0KS5qb2luKCJ8IikrIikiLCJpIil9ZnVuY3Rpb24gaTQodCl7Zm9yKHZhciBlPXt9LG49LTEsaT10Lmxlbmd0aDsrK248aTspZVt0W25dLnRvTG93ZXJDYXNlKCldPW47cmV0dXJuIGV9ZnVuY3Rpb24gcjQodCxlLG4pe3ZhciBpPVozLmV4ZWMoZS5zbGljZShuLG4rMSkpO3JldHVybiBpPyh0Lnc9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gbzQodCxlLG4pe3ZhciBpPVozLmV4ZWMoZS5zbGljZShuLG4rMSkpO3JldHVybiBpPyh0LnU9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gYTQodCxlLG4pe3ZhciBpPVozLmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0LlU9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gczQodCxlLG4pe3ZhciBpPVozLmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0LlY9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gbDQodCxlLG4pe3ZhciBpPVozLmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0Llc9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gYzQodCxlLG4pe3ZhciBpPVozLmV4ZWMoZS5zbGljZShuLG4rNCkpO3JldHVybiBpPyh0Lnk9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gdTQodCxlLG4pe3ZhciBpPVozLmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0Lnk9K2lbMF0rKCtpWzBdPjY4PzE5MDA6MmUzKSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBoNCh0LGUsbil7dmFyIGk9L14oWil8KFsrLV1cZFxkKSg/Ojo/KFxkXGQpKT8vLmV4ZWMoZS5zbGljZShuLG4rNikpO3JldHVybiBpPyh0Llo9aVsxXT8wOi0oaVsyXSsoaVszXXx8IjAwIikpLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGQ0KHQsZSxuKXt2YXIgaT1aMy5leGVjKGUuc2xpY2UobixuKzEpKTtyZXR1cm4gaT8odC5xPTMqaVswXS0zLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHA0KHQsZSxuKXt2YXIgaT1aMy5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5tPWlbMF0tMSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBmNCh0LGUsbil7dmFyIGk9WjMuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQuZD0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBtNCh0LGUsbil7dmFyIGk9WjMuZXhlYyhlLnNsaWNlKG4sbiszKSk7cmV0dXJuIGk/KHQubT0wLHQuZD0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBnNCh0LGUsbil7dmFyIGk9WjMuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQuSD0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBfNCh0LGUsbil7dmFyIGk9WjMuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQuTT0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB5NCh0LGUsbil7dmFyIGk9WjMuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQuUz0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB2NCh0LGUsbil7dmFyIGk9WjMuZXhlYyhlLnNsaWNlKG4sbiszKSk7cmV0dXJuIGk/KHQuTD0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBiNCh0LGUsbil7dmFyIGk9WjMuZXhlYyhlLnNsaWNlKG4sbis2KSk7cmV0dXJuIGk/KHQuTD1NYXRoLmZsb29yKGlbMF0vMWUzKSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB4NCh0LGUsbil7dmFyIGk9SjMuZXhlYyhlLnNsaWNlKG4sbisxKSk7cmV0dXJuIGk/bitpWzBdLmxlbmd0aDotMX1mdW5jdGlvbiB3NCh0LGUsbil7dmFyIGk9WjMuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC5RPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFM0KHQsZSxuKXt2YXIgaT1aMy5leGVjKGUuc2xpY2UobikpO3JldHVybiBpPyh0LnM9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gTTQodCxlKXtyZXR1cm4gdDQodC5nZXREYXRlKCksZSwyKX1mdW5jdGlvbiBFNCh0LGUpe3JldHVybiB0NCh0LmdldEhvdXJzKCksZSwyKX1mdW5jdGlvbiBUNCh0LGUpe3JldHVybiB0NCh0LmdldEhvdXJzKCklMTJ8fDEyLGUsMil9ZnVuY3Rpb24gQzQodCxlKXtyZXR1cm4gdDQoMStUMy5jb3VudChJMyh0KSx0KSxlLDMpfWZ1bmN0aW9uIEE0KHQsZSl7cmV0dXJuIHQ0KHQuZ2V0TWlsbGlzZWNvbmRzKCksZSwzKX1mdW5jdGlvbiBrNCh0LGUpe3JldHVybiBBNCh0LGUpKyIwMDAifWZ1bmN0aW9uIEw0KHQsZSl7cmV0dXJuIHQ0KHQuZ2V0TW9udGgoKSsxLGUsMil9ZnVuY3Rpb24gUDQodCxlKXtyZXR1cm4gdDQodC5nZXRNaW51dGVzKCksZSwyKX1mdW5jdGlvbiBONCh0LGUpe3JldHVybiB0NCh0LmdldFNlY29uZHMoKSxlLDIpfWZ1bmN0aW9uIEk0KHQpe3ZhciBlPXQuZ2V0RGF5KCk7cmV0dXJuIDA9PT1lPzc6ZX1mdW5jdGlvbiBSNCh0LGUpe3JldHVybiB0NChBMy5jb3VudChJMyh0KS0xLHQpLGUsMil9ZnVuY3Rpb24gTzQodCl7dmFyIGU9dC5nZXREYXkoKTtyZXR1cm4gZT49NHx8MD09PWU/TDModCk6TDMuY2VpbCh0KX1mdW5jdGlvbiB6NCh0LGUpe3JldHVybiB0PU80KHQpLHQ0KEwzLmNvdW50KEkzKHQpLHQpKyg0PT09STModCkuZ2V0RGF5KCkpLGUsMil9ZnVuY3Rpb24gRDQodCl7cmV0dXJuIHQuZ2V0RGF5KCl9ZnVuY3Rpb24gQjQodCxlKXtyZXR1cm4gdDQoazMuY291bnQoSTModCktMSx0KSxlLDIpfWZ1bmN0aW9uIEg0KHQsZSl7cmV0dXJuIHQ0KHQuZ2V0RnVsbFllYXIoKSUxMDAsZSwyKX1mdW5jdGlvbiBGNCh0LGUpe3JldHVybiB0NCgodD1PNCh0KSkuZ2V0RnVsbFllYXIoKSUxMDAsZSwyKX1mdW5jdGlvbiBWNCh0LGUpe3JldHVybiB0NCh0LmdldEZ1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24gVTQodCxlKXt2YXIgbj10LmdldERheSgpO3JldHVybiB0NCgodD1uPj00fHwwPT09bj9MMyh0KTpMMy5jZWlsKHQpKS5nZXRGdWxsWWVhcigpJTFlNCxlLDQpfWZ1bmN0aW9uIGo0KHQpe3ZhciBlPXQuZ2V0VGltZXpvbmVPZmZzZXQoKTtyZXR1cm4oZT4wPyItIjooZSo9LTEsIisiKSkrdDQoZS82MHwwLCIwIiwyKSt0NChlJTYwLCIwIiwyKX1mdW5jdGlvbiBHNCh0LGUpe3JldHVybiB0NCh0LmdldFVUQ0RhdGUoKSxlLDIpfWZ1bmN0aW9uIFc0KHQsZSl7cmV0dXJuIHQ0KHQuZ2V0VVRDSG91cnMoKSxlLDIpfWZ1bmN0aW9uIHE0KHQsZSl7cmV0dXJuIHQ0KHQuZ2V0VVRDSG91cnMoKSUxMnx8MTIsZSwyKX1mdW5jdGlvbiBZNCh0LGUpe3JldHVybiB0NCgxK3ozLmNvdW50KGozKHQpLHQpLGUsMyl9ZnVuY3Rpb24gWDQodCxlKXtyZXR1cm4gdDQodC5nZXRVVENNaWxsaXNlY29uZHMoKSxlLDMpfWZ1bmN0aW9uICQ0KHQsZSl7cmV0dXJuIFg0KHQsZSkrIjAwMCJ9ZnVuY3Rpb24gSzQodCxlKXtyZXR1cm4gdDQodC5nZXRVVENNb250aCgpKzEsZSwyKX1mdW5jdGlvbiBaNCh0LGUpe3JldHVybiB0NCh0LmdldFVUQ01pbnV0ZXMoKSxlLDIpfWZ1bmN0aW9uIEo0KHQsZSl7cmV0dXJuIHQ0KHQuZ2V0VVRDU2Vjb25kcygpLGUsMil9ZnVuY3Rpb24gUTQodCl7dmFyIGU9dC5nZXRVVENEYXkoKTtyZXR1cm4gMD09PWU/NzplfWZ1bmN0aW9uIHQ2KHQsZSl7cmV0dXJuIHQ0KEIzLmNvdW50KGozKHQpLTEsdCksZSwyKX1mdW5jdGlvbiBlNih0KXt2YXIgZT10LmdldFVUQ0RheSgpO3JldHVybiBlPj00fHwwPT09ZT9GMyh0KTpGMy5jZWlsKHQpfWZ1bmN0aW9uIG42KHQsZSl7cmV0dXJuIHQ9ZTYodCksdDQoRjMuY291bnQoajModCksdCkrKDQ9PT1qMyh0KS5nZXRVVENEYXkoKSksZSwyKX1mdW5jdGlvbiBpNih0KXtyZXR1cm4gdC5nZXRVVENEYXkoKX1mdW5jdGlvbiByNih0LGUpe3JldHVybiB0NChIMy5jb3VudChqMyh0KS0xLHQpLGUsMil9ZnVuY3Rpb24gbzYodCxlKXtyZXR1cm4gdDQodC5nZXRVVENGdWxsWWVhcigpJTEwMCxlLDIpfWZ1bmN0aW9uIGE2KHQsZSl7cmV0dXJuIHQ0KCh0PWU2KHQpKS5nZXRVVENGdWxsWWVhcigpJTEwMCxlLDIpfWZ1bmN0aW9uIHM2KHQsZSl7cmV0dXJuIHQ0KHQuZ2V0VVRDRnVsbFllYXIoKSUxZTQsZSw0KX1mdW5jdGlvbiBsNih0LGUpe3ZhciBuPXQuZ2V0VVRDRGF5KCk7cmV0dXJuIHQ0KCh0PW4+PTR8fDA9PT1uP0YzKHQpOkYzLmNlaWwodCkpLmdldFVUQ0Z1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24gYzYoKXtyZXR1cm4iKzAwMDAifWZ1bmN0aW9uIHU2KCl7cmV0dXJuIiUifWZ1bmN0aW9uIGg2KHQpe3JldHVybit0fWZ1bmN0aW9uIGQ2KHQpe3JldHVybiBNYXRoLmZsb29yKCt0LzFlMyl9IShmdW5jdGlvbiBwNih0KXtyZXR1cm4gWTM9KGZ1bmN0aW9uIGUodCl7dmFyIGU9dC5kYXRlVGltZSxuPXQuZGF0ZSxpPXQudGltZSxyPXQucGVyaW9kcyxvPXQuZGF5cyxhPXQuc2hvcnREYXlzLHM9dC5tb250aHMsbD10LnNob3J0TW9udGhzLGM9bjQociksdT1pNChyKSxoPW40KG8pLGQ9aTQobykscD1uNChhKSxmPWk0KGEpLG09bjQocyksZz1pNChzKSxfPW40KGwpLHk9aTQobCksdj17YTpmdW5jdGlvbiBiKHQpe3JldHVybiBhW3QuZ2V0RGF5KCldfSxBOmZ1bmN0aW9uIHgodCl7cmV0dXJuIG9bdC5nZXREYXkoKV19LGI6ZnVuY3Rpb24gdyh0KXtyZXR1cm4gbFt0LmdldE1vbnRoKCldfSxCOmZ1bmN0aW9uIFModCl7cmV0dXJuIHNbdC5nZXRNb250aCgpXX0sYzpudWxsLGQ6TTQsZTpNNCxmOms0LGc6RjQsRzpVNCxIOkU0LEk6VDQsajpDNCxMOkE0LG06TDQsTTpQNCxwOmZ1bmN0aW9uIE0odCl7cmV0dXJuIHJbKyh0LmdldEhvdXJzKCk+PTEyKV19LHE6ZnVuY3Rpb24gRSh0KXtyZXR1cm4gMSt+fih0LmdldE1vbnRoKCkvMyl9LFE6aDYsczpkNixTOk40LHU6STQsVTpSNCxWOno0LHc6RDQsVzpCNCx4Om51bGwsWDpudWxsLHk6SDQsWTpWNCxaOmo0LCIlIjp1Nn0sVD17YTpmdW5jdGlvbiBDKHQpe3JldHVybiBhW3QuZ2V0VVRDRGF5KCldfSxBOmZ1bmN0aW9uIEEodCl7cmV0dXJuIG9bdC5nZXRVVENEYXkoKV19LGI6ZnVuY3Rpb24gayh0KXtyZXR1cm4gbFt0LmdldFVUQ01vbnRoKCldfSxCOmZ1bmN0aW9uIEwodCl7cmV0dXJuIHNbdC5nZXRVVENNb250aCgpXX0sYzpudWxsLGQ6RzQsZTpHNCxmOiQ0LGc6YTYsRzpsNixIOlc0LEk6cTQsajpZNCxMOlg0LG06SzQsTTpaNCxwOmZ1bmN0aW9uIFAodCl7cmV0dXJuIHJbKyh0LmdldFVUQ0hvdXJzKCk+PTEyKV19LHE6ZnVuY3Rpb24gTih0KXtyZXR1cm4gMSt+fih0LmdldFVUQ01vbnRoKCkvMyl9LFE6aDYsczpkNixTOko0LHU6UTQsVTp0NixWOm42LHc6aTYsVzpyNix4Om51bGwsWDpudWxsLHk6bzYsWTpzNixaOmM2LCIlIjp1Nn0sST17YTpmdW5jdGlvbiBSKHQsZSxuKXt2YXIgaT1wLmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIGk/KHQudz1mW2lbMF0udG9Mb3dlckNhc2UoKV0sbitpWzBdLmxlbmd0aCk6LTF9LEE6ZnVuY3Rpb24gTyh0LGUsbil7dmFyIGk9aC5leGVjKGUuc2xpY2UobikpO3JldHVybiBpPyh0Lnc9ZFtpWzBdLnRvTG93ZXJDYXNlKCldLG4raVswXS5sZW5ndGgpOi0xfSxiOmZ1bmN0aW9uIHoodCxlLG4pe3ZhciBpPV8uZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC5tPXlbaVswXS50b0xvd2VyQ2FzZSgpXSxuK2lbMF0ubGVuZ3RoKTotMX0sQjpmdW5jdGlvbiBEKHQsZSxuKXt2YXIgaT1tLmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIGk/KHQubT1nW2lbMF0udG9Mb3dlckNhc2UoKV0sbitpWzBdLmxlbmd0aCk6LTF9LGM6ZnVuY3Rpb24gQih0LG4saSl7cmV0dXJuIEcodCxlLG4saSl9LGQ6ZjQsZTpmNCxmOmI0LGc6dTQsRzpjNCxIOmc0LEk6ZzQsajptNCxMOnY0LG06cDQsTTpfNCxwOmZ1bmN0aW9uIEgodCxlLG4pe3ZhciBpPWMuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC5wPXVbaVswXS50b0xvd2VyQ2FzZSgpXSxuK2lbMF0ubGVuZ3RoKTotMX0scTpkNCxROnc0LHM6UzQsUzp5NCx1Om80LFU6YTQsVjpzNCx3OnI0LFc6bDQseDpmdW5jdGlvbiBGKHQsZSxpKXtyZXR1cm4gRyh0LG4sZSxpKX0sWDpmdW5jdGlvbiBWKHQsZSxuKXtyZXR1cm4gRyh0LGksZSxuKX0seTp1NCxZOmM0LFo6aDQsIiUiOng0fTtmdW5jdGlvbiBVKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpLHIsbyxhPVtdLHM9LTEsbD0wLGM9dC5sZW5ndGg7Zm9yKG4gaW5zdGFuY2VvZiBEYXRlfHwobj1uZXcgRGF0ZSgrbikpOysrczxjOykzNz09PXQuY2hhckNvZGVBdChzKSYmKGEucHVzaCh0LnNsaWNlKGwscykpLG51bGwhPShyPUszW2k9dC5jaGFyQXQoKytzKV0pP2k9dC5jaGFyQXQoKytzKTpyPSJlIj09PWk/IiAiOiIwIiwobz1lW2ldKSYmKGk9byhuLHIpKSxhLnB1c2goaSksbD1zKzEpO3JldHVybiBhLnB1c2godC5zbGljZShsLHMpKSxhLmpvaW4oIiIpfX1mdW5jdGlvbiBqKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpLHIsbz1xMygxOTAwLHZvaWQgMCwxKTtpZihHKG8sdCxuKz0iIiwwKSE9bi5sZW5ndGgpcmV0dXJuIG51bGw7aWYoIlEiaW4gbylyZXR1cm4gbmV3IERhdGUoby5RKTtpZigicyJpbiBvKXJldHVybiBuZXcgRGF0ZSgxZTMqby5zKygiTCJpbiBvP28uTDowKSk7aWYoZSYmISgiWiJpbiBvKSYmKG8uWj0wKSwicCJpbiBvJiYoby5IPW8uSCUxMisxMipvLnApLHZvaWQgMD09PW8ubSYmKG8ubT0icSJpbiBvP28ucTowKSwiViJpbiBvKXtpZihvLlY8MXx8by5WPjUzKXJldHVybiBudWxsOyJ3ImluIG98fChvLnc9MSksIloiaW4gbz8ocj0oaT1XMyhxMyhvLnksMCwxKSkpLmdldFVUQ0RheSgpLGk9cj40fHwwPT09cj9IMy5jZWlsKGkpOkgzKGkpLGk9ejMub2Zmc2V0KGksNyooby5WLTEpKSxvLnk9aS5nZXRVVENGdWxsWWVhcigpLG8ubT1pLmdldFVUQ01vbnRoKCksby5kPWkuZ2V0VVRDRGF0ZSgpKyhvLncrNiklNyk6KHI9KGk9RzMocTMoby55LDAsMSkpKS5nZXREYXkoKSxpPXI+NHx8MD09PXI/azMuY2VpbChpKTprMyhpKSxpPVQzLm9mZnNldChpLDcqKG8uVi0xKSksby55PWkuZ2V0RnVsbFllYXIoKSxvLm09aS5nZXRNb250aCgpLG8uZD1pLmdldERhdGUoKSsoby53KzYpJTcpfWVsc2UoIlciaW4gb3x8IlUiaW4gbykmJigidyJpbiBvfHwoby53PSJ1ImluIG8/by51JTc6IlciaW4gbz8xOjApLHI9IloiaW4gbz9XMyhxMyhvLnksMCwxKSkuZ2V0VVRDRGF5KCk6RzMocTMoby55LDAsMSkpLmdldERheSgpLG8ubT0wLG8uZD0iVyJpbiBvPyhvLncrNiklNys3Km8uVy0ocis1KSU3Om8udys3Km8uVS0ocis2KSU3KTtyZXR1cm4iWiJpbiBvPyhvLkgrPW8uWi8xMDB8MCxvLk0rPW8uWiUxMDAsVzMobykpOkczKG8pfX1mdW5jdGlvbiBHKHQsZSxuLGkpe2Zvcih2YXIgcixvLGE9MCxzPWUubGVuZ3RoLGw9bi5sZW5ndGg7YTxzOyl7aWYoaT49bClyZXR1cm4tMTtpZigzNz09PShyPWUuY2hhckNvZGVBdChhKyspKSl7aWYocj1lLmNoYXJBdChhKyspLCEobz1JW3IgaW4gSzM/ZS5jaGFyQXQoYSsrKTpyXSl8fChpPW8odCxuLGkpKTwwKXJldHVybi0xfWVsc2UgaWYociE9bi5jaGFyQ29kZUF0KGkrKykpcmV0dXJuLTF9cmV0dXJuIGl9cmV0dXJuIHYueD1VKG4sdiksdi5YPVUoaSx2KSx2LmM9VShlLHYpLFQueD1VKG4sVCksVC5YPVUoaSxUKSxULmM9VShlLFQpLHtmb3JtYXQ6ZnVuY3Rpb24odCl7dmFyIGU9VSh0Kz0iIix2KTtyZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlfSxwYXJzZTpmdW5jdGlvbih0KXt2YXIgZT1qKHQrPSIiLCExKTtyZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlfSx1dGNGb3JtYXQ6ZnVuY3Rpb24odCl7dmFyIGU9VSh0Kz0iIixUKTtyZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlfSx1dGNQYXJzZTpmdW5jdGlvbih0KXt2YXIgZT1qKHQrPSIiLCEwKTtyZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlfX19KSh0KSxYMz1ZMy5mb3JtYXQsJDM9WTMudXRjRm9ybWF0LFkzfSkoe2RhdGVUaW1lOiIleCwgJVgiLGRhdGU6IiUtbS8lLWQvJVkiLHRpbWU6IiUtSTolTTolUyAlcCIscGVyaW9kczpbIkFNIiwiUE0iXSxkYXlzOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxzaG9ydERheXM6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxtb250aHM6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLHNob3J0TW9udGhzOlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl19KTt2YXIgZjY9MWUzLG02PTZlNCxnNj0zNmU1LF82PTg2NGU1LHk2PTI1OTJlNix2Nj0zMTUzNmU2O2Z1bmN0aW9uIGI2KHQpe3JldHVybiBuZXcgRGF0ZSh0KX1mdW5jdGlvbiB4Nih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIERhdGU/K3Q6K25ldyBEYXRlKCt0KX1mdW5jdGlvbiB3Nih0LGUsbixpLHIsbyxhLHMsbCl7dmFyIGM9RDUoSTUsYjUpLHU9Yy5pbnZlcnQsaD1jLmRvbWFpbixkPWwoIi4lTCIpLHA9bCgiOiVTIiksZj1sKCIlSTolTSIpLG09bCgiJUkgJXAiKSxnPWwoIiVhICVkIiksXz1sKCIlYiAlZCIpLHk9bCgiJUIiKSx2PWwoIiVZIiksYj1bW2EsMSxmNl0sW2EsNSw1ZTNdLFthLDE1LDE1ZTNdLFthLDMwLDNlNF0sW28sMSxtNl0sW28sNSwzZTVdLFtvLDE1LDllNV0sW28sMzAsMThlNV0sW3IsMSxnNl0sW3IsMywxMDhlNV0sW3IsNiwyMTZlNV0sW3IsMTIsNDMyZTVdLFtpLDEsXzZdLFtpLDIsMTcyOGU1XSxbbiwxLDYwNDhlNV0sW2UsMSx5Nl0sW2UsMyw3Nzc2ZTZdLFt0LDEsdjZdXTtmdW5jdGlvbiB4KHMpe3JldHVybihhKHMpPHM/ZDpvKHMpPHM/cDpyKHMpPHM/ZjppKHMpPHM/bTplKHMpPHM/bihzKTxzP2c6Xzp0KHMpPHM/eTp2KShzKX1mdW5jdGlvbiB3KGUsbixpLHIpe2lmKG51bGw9PWUmJihlPTEwKSwibnVtYmVyIj09dHlwZW9mIGUpe3ZhciBvPU1hdGguYWJzKGktbikvZSxhPUowKChmdW5jdGlvbih0KXtyZXR1cm4gdFsyXX0pKS5yaWdodChiLG8pO2E9PT1iLmxlbmd0aD8ocj1hMihuL3Y2LGkvdjYsZSksZT10KTphPyhyPShhPWJbby9iW2EtMV1bMl08YlthXVsyXS9vP2EtMTphXSlbMV0sZT1hWzBdKToocj1NYXRoLm1heChhMihuLGksZSksMSksZT1zKX1yZXR1cm4gbnVsbD09cj9lOmUuZXZlcnkocil9cmV0dXJuIGMuaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRGF0ZSh1KHQpKX0sYy5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/aChmMi5jYWxsKHQseDYpKTpoKCkubWFwKGI2KX0sYy50aWNrcz1mdW5jdGlvbih0LGUpe3ZhciBuLGk9aCgpLHI9aVswXSxvPWlbaS5sZW5ndGgtMV0sYT1vPHI7cmV0dXJuIGEmJihuPXIscj1vLG89biksbj0obj13KHQscixvLGUpKT9uLnJhbmdlKHIsbysxKTpbXSxhP24ucmV2ZXJzZSgpOm59LGMudGlja0Zvcm1hdD1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsPT1lP3g6bChlKX0sYy5uaWNlPWZ1bmN0aW9uKHQsZSl7dmFyIG49aCgpO3JldHVybih0PXcodCxuWzBdLG5bbi5sZW5ndGgtMV0sZSkpP2goaTMobix0KSk6Y30sYy5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHo1KGMsdzYodCxlLG4saSxyLG8sYSxzLGwpKX0sY31mdW5jdGlvbiBTNih0KXtyZXR1cm4gdC5tYXRjaCgvLns2fS9nKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiIjIit0fSkpfXZhciBNNj1TNigiMWY3N2I0ZmY3ZjBlMmNhMDJjZDYyNzI4OTQ2N2JkOGM1NjRiZTM3N2MyN2Y3ZjdmYmNiZDIyMTdiZWNmIiksRTY9UzYoIjM5M2I3OTUyNTRhMzZiNmVjZjljOWVkZTYzNzkzOThjYTI1MmI1Y2Y2YmNlZGI5YzhjNmQzMWJkOWUzOWU3YmE1MmU3Y2I5NDg0M2MzOWFkNDk0YWQ2NjE2YmU3OTY5YzdiNDE3M2E1NTE5NGNlNmRiZGRlOWVkNiIpLFQ2PVM2KCIzMTgyYmQ2YmFlZDY5ZWNhZTFjNmRiZWZlNjU1MGRmZDhkM2NmZGFlNmJmZGQwYTIzMWEzNTQ3NGM0NzZhMWQ5OWJjN2U5YzA3NTZiYjE5ZTlhYzhiY2JkZGNkYWRhZWI2MzYzNjM5Njk2OTZiZGJkYmRkOWQ5ZDkiKSxDNj1TNigiMWY3N2I0YWVjN2U4ZmY3ZjBlZmZiYjc4MmNhMDJjOThkZjhhZDYyNzI4ZmY5ODk2OTQ2N2JkYzViMGQ1OGM1NjRiYzQ5Yzk0ZTM3N2MyZjdiNmQyN2Y3ZjdmYzdjN2M3YmNiZDIyZGJkYjhkMTdiZWNmOWVkYWU1IiksQTY9azUodTUoMzAwLC41LDApLHU1KC0yNDAsLjUsMSkpLGs2PWs1KHU1KC0xMDAsLjc1LC4zNSksdTUoODAsMS41LC44KSksTDY9azUodTUoMjYwLC43NSwuMzUpLHU1KDgwLDEuNSwuOCkpLFA2PXU1KCk7ZnVuY3Rpb24gTjYodCl7dmFyIGU9dC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0W01hdGgubWF4KDAsTWF0aC5taW4oZS0xLE1hdGguZmxvb3IobiplKSkpXX19dmFyIEk2PU42KFM2KCI0NDAxNTQ0NDAyNTY0NTA0NTc0NTA1NTk0NjA3NWE0NjA4NWM0NjBhNWQ0NjBiNWU0NzBkNjA0NzBlNjE0NzEwNjM0NzExNjQ0NzEzNjU0ODE0Njc0ODE2Njg0ODE3Njk0ODE4NmE0ODFhNmM0ODFiNmQ0ODFjNmU0ODFkNmY0ODFmNzA0ODIwNzE0ODIxNzM0ODIzNzQ0ODI0NzU0ODI1NzY0ODI2Nzc0ODI4Nzg0ODI5Nzk0NzJhN2E0NzJjN2E0NzJkN2I0NzJlN2M0NzJmN2Q0NjMwN2U0NjMyN2U0NjMzN2Y0NjM0ODA0NTM1ODE0NTM3ODE0NTM4ODI0NDM5ODM0NDNhODM0NDNiODQ0MzNkODQ0MzNlODU0MjNmODU0MjQwODY0MjQxODY0MTQyODc0MTQ0ODc0MDQ1ODg0MDQ2ODgzZjQ3ODgzZjQ4ODkzZTQ5ODkzZTRhODkzZTRjOGEzZDRkOGEzZDRlOGEzYzRmOGEzYzUwOGIzYjUxOGIzYjUyOGIzYTUzOGIzYTU0OGMzOTU1OGMzOTU2OGMzODU4OGMzODU5OGMzNzVhOGMzNzViOGQzNjVjOGQzNjVkOGQzNTVlOGQzNTVmOGQzNDYwOGQzNDYxOGQzMzYyOGQzMzYzOGQzMjY0OGUzMjY1OGUzMTY2OGUzMTY3OGUzMTY4OGUzMDY5OGUzMDZhOGUyZjZiOGUyZjZjOGUyZTZkOGUyZTZlOGUyZTZmOGUyZDcwOGUyZDcxOGUyYzcxOGUyYzcyOGUyYzczOGUyYjc0OGUyYjc1OGUyYTc2OGUyYTc3OGUyYTc4OGUyOTc5OGUyOTdhOGUyOTdiOGUyODdjOGUyODdkOGUyNzdlOGUyNzdmOGUyNzgwOGUyNjgxOGUyNjgyOGUyNjgyOGUyNTgzOGUyNTg0OGUyNTg1OGUyNDg2OGUyNDg3OGUyMzg4OGUyMzg5OGUyMzhhOGQyMjhiOGQyMjhjOGQyMjhkOGQyMThlOGQyMThmOGQyMTkwOGQyMTkxOGMyMDkyOGMyMDkyOGMyMDkzOGMxZjk0OGMxZjk1OGIxZjk2OGIxZjk3OGIxZjk4OGIxZjk5OGExZjlhOGExZTliOGExZTljODkxZTlkODkxZjllODkxZjlmODgxZmEwODgxZmExODgxZmExODcxZmEyODcyMGEzODYyMGE0ODYyMWE1ODUyMWE2ODUyMmE3ODUyMmE4ODQyM2E5ODMyNGFhODMyNWFiODIyNWFjODIyNmFkODEyN2FkODEyOGFlODAyOWFmN2YyYWIwN2YyY2IxN2UyZGIyN2QyZWIzN2MyZmI0N2MzMWI1N2IzMmI2N2EzNGI2NzkzNWI3NzkzN2I4NzgzOGI5NzczYWJhNzYzYmJiNzUzZGJjNzQzZmJjNzM0MGJkNzI0MmJlNzE0NGJmNzA0NmMwNmY0OGMxNmU0YWMxNmQ0Y2MyNmM0ZWMzNmI1MGM0NmE1MmM1Njk1NGM1Njg1NmM2Njc1OGM3NjU1YWM4NjQ1Y2M4NjM1ZWM5NjI2MGNhNjA2M2NiNWY2NWNiNWU2N2NjNWM2OWNkNWI2Y2NkNWE2ZWNlNTg3MGNmNTc3M2QwNTY3NWQwNTQ3N2QxNTM3YWQxNTE3Y2QyNTA3ZmQzNGU4MWQzNGQ4NGQ0NGI4NmQ1NDk4OWQ1NDg4YmQ2NDY4ZWQ2NDU5MGQ3NDM5M2Q3NDE5NWQ4NDA5OGQ4M2U5YmQ5M2M5ZGQ5M2JhMGRhMzlhMmRhMzdhNWRiMzZhOGRiMzRhYWRjMzJhZGRjMzBiMGRkMmZiMmRkMmRiNWRlMmJiOGRlMjliYWRlMjhiZGRmMjZjMGRmMjVjMmRmMjNjNWUwMjFjOGUwMjBjYWUxMWZjZGUxMWRkMGUxMWNkMmUyMWJkNWUyMWFkOGUyMTlkYWUzMTlkZGUzMThkZmUzMThlMmU0MThlNWU0MTllN2U0MTllYWU1MWFlY2U1MWJlZmU1MWNmMWU1MWRmNGU2MWVmNmU2MjBmOGU2MjFmYmU3MjNmZGU3MjUiKSksUjY9TjYoUzYoIjAwMDAwNDAxMDAwNTAxMDEwNjAxMDEwODAyMDEwOTAyMDIwYjAyMDIwZDAzMDMwZjAzMDMxMjA0MDQxNDA1MDQxNjA2MDUxODA2MDUxYTA3MDYxYzA4MDcxZTA5MDcyMDBhMDgyMjBiMDkyNDBjMDkyNjBkMGEyOTBlMGIyYjEwMGIyZDExMGMyZjEyMGQzMTEzMGQzNDE0MGUzNjE1MGUzODE2MGYzYjE4MGYzZDE5MTAzZjFhMTA0MjFjMTA0NDFkMTE0NzFlMTE0OTIwMTE0YjIxMTE0ZTIyMTE1MDI0MTI1MzI1MTI1NTI3MTI1ODI5MTE1YTJhMTE1YzJjMTE1ZjJkMTE2MTJmMTE2MzMxMTE2NTMzMTA2NzM0MTA2OTM2MTA2YjM4MTA2YzM5MGY2ZTNiMGY3MDNkMGY3MTNmMGY3MjQwMGY3NDQyMGY3NTQ0MGY3NjQ1MTA3NzQ3MTA3ODQ5MTA3ODRhMTA3OTRjMTE3YTRlMTE3YjRmMTI3YjUxMTI3YzUyMTM3YzU0MTM3ZDU2MTQ3ZDU3MTU3ZTU5MTU3ZTVhMTY3ZTVjMTY3ZjVkMTc3ZjVmMTg3ZjYwMTg4MDYyMTk4MDY0MWE4MDY1MWE4MDY3MWI4MDY4MWM4MTZhMWM4MTZiMWQ4MTZkMWQ4MTZlMWU4MTcwMWY4MTcyMWY4MTczMjA4MTc1MjE4MTc2MjE4MTc4MjI4MTc5MjI4MjdiMjM4MjdjMjM4MjdlMjQ4MjgwMjU4MjgxMjU4MTgzMjY4MTg0MjY4MTg2Mjc4MTg4Mjc4MTg5Mjg4MThiMjk4MThjMjk4MThlMmE4MTkwMmE4MTkxMmI4MTkzMmI4MDk0MmM4MDk2MmM4MDk4MmQ4MDk5MmQ4MDliMmU3ZjljMmU3ZjllMmY3ZmEwMmY3ZmExMzA3ZWEzMzA3ZWE1MzE3ZWE2MzE3ZGE4MzI3ZGFhMzM3ZGFiMzM3Y2FkMzQ3Y2FlMzQ3YmIwMzU3YmIyMzU3YmIzMzY3YWI1MzY3YWI3Mzc3OWI4Mzc3OWJhMzg3OGJjMzk3OGJkMzk3N2JmM2E3N2MwM2E3NmMyM2I3NWM0M2M3NWM1M2M3NGM3M2Q3M2M4M2U3M2NhM2U3MmNjM2Y3MWNkNDA3MWNmNDA3MGQwNDE2ZmQyNDI2ZmQzNDM2ZWQ1NDQ2ZGQ2NDU2Y2Q4NDU2Y2Q5NDY2YmRiNDc2YWRjNDg2OWRlNDk2OGRmNGE2OGUwNGM2N2UyNGQ2NmUzNGU2NWU0NGY2NGU1NTA2NGU3NTI2M2U4NTM2MmU5NTQ2MmVhNTY2MWViNTc2MGVjNTg2MGVkNWE1ZmVlNWI1ZWVmNWQ1ZWYwNWY1ZWYxNjA1ZGYyNjI1ZGYyNjQ1Y2YzNjU1Y2Y0Njc1Y2Y0Njk1Y2Y1NmI1Y2Y2NmM1Y2Y2NmU1Y2Y3NzA1Y2Y3NzI1Y2Y4NzQ1Y2Y4NzY1Y2Y5Nzg1ZGY5Nzk1ZGY5N2I1ZGZhN2Q1ZWZhN2Y1ZWZhODE1ZmZiODM1ZmZiODU2MGZiODc2MWZjODk2MWZjOGE2MmZjOGM2M2ZjOGU2NGZjOTA2NWZkOTI2NmZkOTQ2N2ZkOTY2OGZkOTg2OWZkOWE2YWZkOWI2YmZlOWQ2Y2ZlOWY2ZGZlYTE2ZWZlYTM2ZmZlYTU3MWZlYTc3MmZlYTk3M2ZlYWE3NGZlYWM3NmZlYWU3N2ZlYjA3OGZlYjI3YWZlYjQ3YmZlYjY3Y2ZlYjc3ZWZlYjk3ZmZlYmI4MWZlYmQ4MmZlYmY4NGZlYzE4NWZlYzI4N2ZlYzQ4OGZlYzY4YWZlYzg4Y2ZlY2E4ZGZlY2M4ZmZlY2Q5MGZlY2Y5MmZlZDE5NGZlZDM5NWZlZDU5N2ZlZDc5OWZlZDg5YWZkZGE5Y2ZkZGM5ZWZkZGVhMGZkZTBhMWZkZTJhM2ZkZTNhNWZkZTVhN2ZkZTdhOWZkZTlhYWZkZWJhY2ZjZWNhZWZjZWViMGZjZjBiMmZjZjJiNGZjZjRiNmZjZjZiOGZjZjdiOWZjZjliYmZjZmJiZGZjZmRiZiIpKSxPNj1ONihTNigiMDAwMDA0MDEwMDA1MDEwMTA2MDEwMTA4MDIwMTBhMDIwMjBjMDIwMjBlMDMwMjEwMDQwMzEyMDQwMzE0MDUwNDE3MDYwNDE5MDcwNTFiMDgwNTFkMDkwNjFmMGEwNzIyMGIwNzI0MGMwODI2MGQwODI5MGUwOTJiMTAwOTJkMTEwYTMwMTIwYTMyMTQwYjM0MTUwYjM3MTYwYjM5MTgwYzNjMTkwYzNlMWIwYzQxMWMwYzQzMWUwYzQ1MWYwYzQ4MjEwYzRhMjMwYzRjMjQwYzRmMjYwYzUxMjgwYjUzMjkwYjU1MmIwYjU3MmQwYjU5MmYwYTViMzEwYTVjMzIwYTVlMzQwYTVmMzYwOTYxMzgwOTYyMzkwOTYzM2IwOTY0M2QwOTY1M2UwOTY2NDAwYTY3NDIwYTY4NDQwYTY4NDUwYTY5NDcwYjZhNDkwYjZhNGEwYzZiNGMwYzZiNGQwZDZjNGYwZDZjNTEwZTZjNTIwZTZkNTQwZjZkNTUwZjZkNTcxMDZlNTkxMDZlNWExMTZlNWMxMjZlNWQxMjZlNWYxMzZlNjExMzZlNjIxNDZlNjQxNTZlNjUxNTZlNjcxNjZlNjkxNjZlNmExNzZlNmMxODZlNmQxODZlNmYxOTZlNzExOTZlNzIxYTZlNzQxYTZlNzUxYjZlNzcxYzZkNzgxYzZkN2ExZDZkN2MxZDZkN2QxZTZkN2YxZTZjODAxZjZjODIyMDZjODQyMDZiODUyMTZiODcyMTZiODgyMjZhOGEyMjZhOGMyMzY5OGQyMzY5OGYyNDY5OTAyNTY4OTIyNTY4OTMyNjY3OTUyNjY3OTcyNzY2OTgyNzY2OWEyODY1OWIyOTY0OWQyOTY0OWYyYTYzYTAyYTYzYTIyYjYyYTMyYzYxYTUyYzYwYTYyZDYwYTgyZTVmYTkyZTVlYWIyZjVlYWQzMDVkYWUzMDVjYjAzMTViYjEzMjVhYjMzMjVhYjQzMzU5YjYzNDU4YjczNTU3YjkzNTU2YmEzNjU1YmMzNzU0YmQzODUzYmYzOTUyYzAzYTUxYzEzYTUwYzMzYjRmYzQzYzRlYzYzZDRkYzczZTRjYzgzZjRiY2E0MDRhY2I0MTQ5Y2M0MjQ4Y2U0MzQ3Y2Y0NDQ2ZDA0NTQ1ZDI0NjQ0ZDM0NzQzZDQ0ODQyZDU0YTQxZDc0YjNmZDg0YzNlZDk0ZDNkZGE0ZTNjZGI1MDNiZGQ1MTNhZGU1MjM4ZGY1MzM3ZTA1NTM2ZTE1NjM1ZTI1NzM0ZTM1OTMzZTQ1YTMxZTU1YzMwZTY1ZDJmZTc1ZTJlZTg2MDJkZTk2MTJiZWE2MzJhZWI2NDI5ZWI2NjI4ZWM2NzI2ZWQ2OTI1ZWU2YTI0ZWY2YzIzZWY2ZTIxZjA2ZjIwZjE3MTFmZjE3MzFkZjI3NDFjZjM3NjFiZjM3ODE5ZjQ3OTE4ZjU3YjE3ZjU3ZDE1ZjY3ZTE0ZjY4MDEzZjc4MjEyZjc4NDEwZjg4NTBmZjg4NzBlZjg4OTBjZjk4YjBiZjk4YzBhZjk4ZTA5ZmE5MDA4ZmE5MjA3ZmE5NDA3ZmI5NjA2ZmI5NzA2ZmI5OTA2ZmI5YjA2ZmI5ZDA3ZmM5ZjA3ZmNhMTA4ZmNhMzA5ZmNhNTBhZmNhNjBjZmNhODBkZmNhYTBmZmNhYzExZmNhZTEyZmNiMDE0ZmNiMjE2ZmNiNDE4ZmJiNjFhZmJiODFkZmJiYTFmZmJiYzIxZmJiZTIzZmFjMDI2ZmFjMjI4ZmFjNDJhZmFjNjJkZjljNzJmZjljOTMyZjljYjM1ZjhjZDM3ZjhjZjNhZjdkMTNkZjdkMzQwZjZkNTQzZjZkNzQ2ZjVkOTQ5ZjVkYjRjZjRkZDRmZjRkZjUzZjRlMTU2ZjNlMzVhZjNlNTVkZjJlNjYxZjJlODY1ZjJlYTY5ZjFlYzZkZjFlZDcxZjFlZjc1ZjFmMTc5ZjJmMjdkZjJmNDgyZjNmNTg2ZjNmNjhhZjRmODhlZjVmOTkyZjZmYTk2ZjhmYjlhZjlmYzlkZmFmZGExZmNmZmE0IikpLHo2PU42KFM2KCIwZDA4ODcxMDA3ODgxMzA3ODkxNjA3OGExOTA2OGMxYjA2OGQxZDA2OGUyMDA2OGYyMjA2OTAyNDA2OTEyNjA1OTEyODA1OTIyYTA1OTMyYzA1OTQyZTA1OTUyZjA1OTYzMTA1OTczMzA1OTczNTA0OTgzNzA0OTkzODA0OWEzYTA0OWEzYzA0OWIzZTA0OWMzZjA0OWM0MTA0OWQ0MzAzOWU0NDAzOWU0NjAzOWY0ODAzOWY0OTAzYTA0YjAzYTE0YzAyYTE0ZTAyYTI1MDAyYTI1MTAyYTM1MzAyYTM1NTAyYTQ1NjAxYTQ1ODAxYTQ1OTAxYTU1YjAxYTU1YzAxYTY1ZTAxYTY2MDAxYTY2MTAwYTc2MzAwYTc2NDAwYTc2NjAwYTc2NzAwYTg2OTAwYTg2YTAwYTg2YzAwYTg2ZTAwYTg2ZjAwYTg3MTAwYTg3MjAxYTg3NDAxYTg3NTAxYTg3NzAxYTg3ODAxYTg3YTAyYTg3YjAyYTg3ZDAzYTg3ZTAzYTg4MDA0YTg4MTA0YTc4MzA1YTc4NDA1YTc4NjA2YTY4NzA3YTY4ODA4YTY4YTA5YTU4YjBhYTU4ZDBiYTU4ZTBjYTQ4ZjBkYTQ5MTBlYTM5MjBmYTM5NDEwYTI5NTExYTE5NjEzYTE5ODE0YTA5OTE1OWY5YTE2OWY5YzE3OWU5ZDE4OWQ5ZTE5OWRhMDFhOWNhMTFiOWJhMjFkOWFhMzFlOWFhNTFmOTlhNjIwOThhNzIxOTdhODIyOTZhYTIzOTVhYjI0OTRhYzI2OTRhZDI3OTNhZTI4OTJiMDI5OTFiMTJhOTBiMjJiOGZiMzJjOGViNDJlOGRiNTJmOGNiNjMwOGJiNzMxOGFiODMyODliYTMzODhiYjM0ODhiYzM1ODdiZDM3ODZiZTM4ODViZjM5ODRjMDNhODNjMTNiODJjMjNjODFjMzNkODBjNDNlN2ZjNTQwN2VjNjQxN2RjNzQyN2NjODQzN2JjOTQ0N2FjYTQ1N2FjYjQ2NzljYzQ3NzhjYzQ5NzdjZDRhNzZjZTRiNzVjZjRjNzRkMDRkNzNkMTRlNzJkMjRmNzFkMzUxNzFkNDUyNzBkNTUzNmZkNTU0NmVkNjU1NmRkNzU2NmNkODU3NmJkOTU4NmFkYTVhNmFkYTViNjlkYjVjNjhkYzVkNjdkZDVlNjZkZTVmNjVkZTYxNjRkZjYyNjNlMDYzNjNlMTY0NjJlMjY1NjFlMjY2NjBlMzY4NWZlNDY5NWVlNTZhNWRlNTZiNWRlNjZjNWNlNzZlNWJlNzZmNWFlODcwNTllOTcxNThlOTcyNTdlYTc0NTdlYjc1NTZlYjc2NTVlYzc3NTRlZDc5NTNlZDdhNTJlZTdiNTFlZjdjNTFlZjdlNTBmMDdmNGZmMDgwNGVmMTgxNGRmMTgzNGNmMjg0NGJmMzg1NGJmMzg3NGFmNDg4NDlmNDg5NDhmNThiNDdmNThjNDZmNjhkNDVmNjhmNDRmNzkwNDRmNzkxNDNmNzkzNDJmODk0NDFmODk1NDBmOTk3M2ZmOTk4M2VmOTlhM2VmYTliM2RmYTljM2NmYTllM2JmYjlmM2FmYmExMzlmYmEyMzhmY2EzMzhmY2E1MzdmY2E2MzZmY2E4MzVmY2E5MzRmZGFiMzNmZGFjMzNmZGFlMzJmZGFmMzFmZGIxMzBmZGIyMmZmZGI0MmZmZGI1MmVmZWI3MmRmZWI4MmNmZWJhMmNmZWJiMmJmZWJkMmFmZWJlMmFmZWMwMjlmZGMyMjlmZGMzMjhmZGM1MjdmZGM2MjdmZGM4MjdmZGNhMjZmZGNiMjZmY2NkMjVmY2NlMjVmY2QwMjVmY2QyMjVmYmQzMjRmYmQ1MjRmYmQ3MjRmYWQ4MjRmYWRhMjRmOWRjMjRmOWRkMjVmOGRmMjVmOGUxMjVmN2UyMjVmN2U0MjVmNmU2MjZmNmU4MjZmNWU5MjZmNWViMjdmNGVkMjdmM2VlMjdmM2YwMjdmMmYyMjdmMWY0MjZmMWY1MjVmMGY3MjRmMGY5MjEiKSk7dmFyIEQ2PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIixCNj17c3ZnOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIseGh0bWw6RDYseGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHhtbDoiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8ifTtmdW5jdGlvbiBINih0KXt2YXIgZT10Kz0iIixuPWUuaW5kZXhPZigiOiIpO3JldHVybiBuPj0wJiYieG1sbnMiIT09KGU9dC5zbGljZSgwLG4pKSYmKHQ9dC5zbGljZShuKzEpKSxCNi5oYXNPd25Qcm9wZXJ0eShlKT97c3BhY2U6QjZbZV0sbG9jYWw6dH06dH1mdW5jdGlvbiBGNih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLm93bmVyRG9jdW1lbnQsbj10aGlzLm5hbWVzcGFjZVVSSTtyZXR1cm4gbj09PUQ2JiZlLmRvY3VtZW50RWxlbWVudC5uYW1lc3BhY2VVUkk9PT1ENj9lLmNyZWF0ZUVsZW1lbnQodCk6ZS5jcmVhdGVFbGVtZW50TlMobix0KX19ZnVuY3Rpb24gVjYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlModC5zcGFjZSx0LmxvY2FsKX19ZnVuY3Rpb24gVTYodCl7dmFyIGU9SDYodCk7cmV0dXJuKGUubG9jYWw/VjY6RjYpKGUpfWZ1bmN0aW9uIGo2KCl7fWZ1bmN0aW9uIEc2KHQpe3JldHVybiBudWxsPT10P2o2OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3Rvcih0KX19ZnVuY3Rpb24gVzYoKXtyZXR1cm5bXX1mdW5jdGlvbiBxNih0KXtyZXR1cm4gbnVsbD09dD9XNjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwodCl9fXZhciBZNj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXRjaGVzKHQpfX07aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudCl7dmFyIFg2PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtpZighWDYubWF0Y2hlcyl7dmFyICQ2PVg2LndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8WDYubXNNYXRjaGVzU2VsZWN0b3J8fFg2Lm1vek1hdGNoZXNTZWxlY3Rvcnx8WDYub01hdGNoZXNTZWxlY3RvcjtZNj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gJDYuY2FsbCh0aGlzLHQpfX19fXZhciBLNj1ZNjtmdW5jdGlvbiBaNih0KXtyZXR1cm4gbmV3IEFycmF5KHQubGVuZ3RoKX1mdW5jdGlvbiBKNih0LGUpe3RoaXMub3duZXJEb2N1bWVudD10Lm93bmVyRG9jdW1lbnQsdGhpcy5uYW1lc3BhY2VVUkk9dC5uYW1lc3BhY2VVUkksdGhpcy5fbmV4dD1udWxsLHRoaXMuX3BhcmVudD10LHRoaXMuX19kYXRhX189ZX1KNi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOko2LGFwcGVuZENoaWxkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKHQsdGhpcy5fbmV4dCl9LGluc2VydEJlZm9yZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKHQsZSl9LHF1ZXJ5U2VsZWN0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yKHQpfSxxdWVyeVNlbGVjdG9yQWxsOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3RvckFsbCh0KX19O2Z1bmN0aW9uIFE2KHQsZSxuLGkscixvKXtmb3IodmFyIGEscz0wLGw9ZS5sZW5ndGgsYz1vLmxlbmd0aDtzPGM7KytzKShhPWVbc10pPyhhLl9fZGF0YV9fPW9bc10saVtzXT1hKTpuW3NdPW5ldyBKNih0LG9bc10pO2Zvcig7czxsOysrcykoYT1lW3NdKSYmKHJbc109YSl9ZnVuY3Rpb24gdDkodCxlLG4saSxyLG8sYSl7dmFyIHMsbCxjLHU9e30saD1lLmxlbmd0aCxkPW8ubGVuZ3RoLHA9bmV3IEFycmF5KGgpO2ZvcihzPTA7czxoOysrcykobD1lW3NdKSYmKHBbc109Yz0iJCIrYS5jYWxsKGwsbC5fX2RhdGFfXyxzLGUpLGMgaW4gdT9yW3NdPWw6dVtjXT1sKTtmb3Iocz0wO3M8ZDsrK3MpKGw9dVtjPSIkIithLmNhbGwodCxvW3NdLHMsbyldKT8oaVtzXT1sLGwuX19kYXRhX189b1tzXSx1W2NdPW51bGwpOm5bc109bmV3IEo2KHQsb1tzXSk7Zm9yKHM9MDtzPGg7KytzKShsPWVbc10pJiZ1W3Bbc11dPT09bCYmKHJbc109bCl9ZnVuY3Rpb24gZTkodCxlKXtyZXR1cm4gdDxlPy0xOnQ+ZT8xOnQ+PWU/MDpOYU59ZnVuY3Rpb24gbjkodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fWZ1bmN0aW9uIGk5KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19ZnVuY3Rpb24gcjkodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZSh0LGUpfX1mdW5jdGlvbiBvOSh0LGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLGUpfX1mdW5jdGlvbiBhOSh0LGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PW4/dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCk6dGhpcy5zZXRBdHRyaWJ1dGUodCxuKX19ZnVuY3Rpb24gczkodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKTp0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxuKX19ZnVuY3Rpb24gbDkodCl7cmV0dXJuIHQub3duZXJEb2N1bWVudCYmdC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx0LmRvY3VtZW50JiZ0fHx0LmRlZmF1bHRWaWV3fWZ1bmN0aW9uIGM5KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCl9fWZ1bmN0aW9uIHU5KHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQsZSxuKX19ZnVuY3Rpb24gaDkodCxlLG4pe3JldHVybiBmdW5jdGlvbigpe3ZhciBpPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PWk/dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KTp0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQsaSxuKX19ZnVuY3Rpb24gZDkodCxlKXtyZXR1cm4gdC5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGUpfHxsOSh0KS5nZXRDb21wdXRlZFN0eWxlKHQsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShlKX1mdW5jdGlvbiBwOSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtkZWxldGUgdGhpc1t0XX19ZnVuY3Rpb24gZjkodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzW3RdPWV9fWZ1bmN0aW9uIG05KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09bj9kZWxldGUgdGhpc1t0XTp0aGlzW3RdPW59fWZ1bmN0aW9uIGc5KHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKX1mdW5jdGlvbiBfOSh0KXtyZXR1cm4gdC5jbGFzc0xpc3R8fG5ldyB5OSh0KX1mdW5jdGlvbiB5OSh0KXt0aGlzLl9ub2RlPXQsdGhpcy5fbmFtZXM9ZzkodC5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX1mdW5jdGlvbiB2OSh0LGUpe2Zvcih2YXIgbj1fOSh0KSxpPS0xLHI9ZS5sZW5ndGg7KytpPHI7KW4uYWRkKGVbaV0pfWZ1bmN0aW9uIGI5KHQsZSl7Zm9yKHZhciBuPV85KHQpLGk9LTEscj1lLmxlbmd0aDsrK2k8cjspbi5yZW1vdmUoZVtpXSl9ZnVuY3Rpb24geDkodCl7cmV0dXJuIGZ1bmN0aW9uKCl7djkodGhpcyx0KX19ZnVuY3Rpb24gdzkodCl7cmV0dXJuIGZ1bmN0aW9uKCl7YjkodGhpcyx0KX19ZnVuY3Rpb24gUzkodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXsoZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk/djk6YjkpKHRoaXMsdCl9fWZ1bmN0aW9uIE05KCl7dGhpcy50ZXh0Q29udGVudD0iIn1mdW5jdGlvbiBFOSh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PXR9fWZ1bmN0aW9uIFQ5KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMudGV4dENvbnRlbnQ9bnVsbD09ZT8iIjplfX1mdW5jdGlvbiBDOSgpe3RoaXMuaW5uZXJIVE1MPSIifWZ1bmN0aW9uIEE5KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuaW5uZXJIVE1MPXR9fWZ1bmN0aW9uIGs5KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuaW5uZXJIVE1MPW51bGw9PWU/IiI6ZX19ZnVuY3Rpb24gTDkoKXt0aGlzLm5leHRTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodGhpcyl9ZnVuY3Rpb24gUDkoKXt0aGlzLnByZXZpb3VzU2libGluZyYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLHRoaXMucGFyZW50Tm9kZS5maXJzdENoaWxkKX1mdW5jdGlvbiBOOSgpe3JldHVybiBudWxsfWZ1bmN0aW9uIEk5KCl7dmFyIHQ9dGhpcy5wYXJlbnROb2RlO3QmJnQucmVtb3ZlQ2hpbGQodGhpcyl9ZnVuY3Rpb24gUjkoKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLmNsb25lTm9kZSghMSksdGhpcy5uZXh0U2libGluZyl9ZnVuY3Rpb24gTzkoKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLmNsb25lTm9kZSghMCksdGhpcy5uZXh0U2libGluZyl9eTkucHJvdG90eXBlPXthZGQ6ZnVuY3Rpb24odCl7dGhpcy5fbmFtZXMuaW5kZXhPZih0KTwwJiYodGhpcy5fbmFtZXMucHVzaCh0KSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbmFtZXMuaW5kZXhPZih0KTtlPj0wJiYodGhpcy5fbmFtZXMuc3BsaWNlKGUsMSksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix0aGlzLl9uYW1lcy5qb2luKCIgIikpKX0sY29udGFpbnM6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX25hbWVzLmluZGV4T2YodCk+PTB9fTt2YXIgejk9e30sRDk9bnVsbDsidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiYoIm9ubW91c2VlbnRlciJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR8fCh6OT17bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9KSk7ZnVuY3Rpb24gQjkodCxlLG4pe3JldHVybiB0PUg5KHQsZSxuKSxmdW5jdGlvbihlKXt2YXIgbj1lLnJlbGF0ZWRUYXJnZXQ7biYmKG49PT10aGlzfHw4Jm4uY29tcGFyZURvY3VtZW50UG9zaXRpb24odGhpcykpfHx0LmNhbGwodGhpcyxlKX19ZnVuY3Rpb24gSDkodCxlLG4pe3JldHVybiBmdW5jdGlvbihpKXt2YXIgcj1EOTtEOT1pO3RyeXt0LmNhbGwodGhpcyx0aGlzLl9fZGF0YV9fLGUsbil9ZmluYWxseXtEOT1yfX19ZnVuY3Rpb24gRjkodCl7cmV0dXJuIHQudHJpbSgpLnNwbGl0KC9efFxzKy8pLm1hcCgoZnVuY3Rpb24odCl7dmFyIGU9IiIsbj10LmluZGV4T2YoIi4iKTtyZXR1cm4gbj49MCYmKGU9dC5zbGljZShuKzEpLHQ9dC5zbGljZSgwLG4pKSx7dHlwZTp0LG5hbWU6ZX19KSl9ZnVuY3Rpb24gVjkodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fX29uO2lmKGUpe2Zvcih2YXIgbixpPTAscj0tMSxvPWUubGVuZ3RoO2k8bzsrK2kpbj1lW2ldLHQudHlwZSYmbi50eXBlIT09dC50eXBlfHxuLm5hbWUhPT10Lm5hbWU/ZVsrK3JdPW46dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKG4udHlwZSxuLmxpc3RlbmVyLG4uY2FwdHVyZSk7KytyP2UubGVuZ3RoPXI6ZGVsZXRlIHRoaXMuX19vbn19fWZ1bmN0aW9uIFU5KHQsZSxuKXt2YXIgaT16OS5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpP0I5Okg5O3JldHVybiBmdW5jdGlvbihyLG8sYSl7dmFyIHMsbD10aGlzLl9fb24sYz1pKGUsbyxhKTtpZihsKWZvcih2YXIgdT0wLGg9bC5sZW5ndGg7dTxoOysrdSlpZigocz1sW3VdKS50eXBlPT09dC50eXBlJiZzLm5hbWU9PT10Lm5hbWUpcmV0dXJuIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihzLnR5cGUscy5saXN0ZW5lcixzLmNhcHR1cmUpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihzLnR5cGUscy5saXN0ZW5lcj1jLHMuY2FwdHVyZT1uKSx2b2lkKHMudmFsdWU9ZSk7dGhpcy5hZGRFdmVudExpc3RlbmVyKHQudHlwZSxjLG4pLHM9e3R5cGU6dC50eXBlLG5hbWU6dC5uYW1lLHZhbHVlOmUsbGlzdGVuZXI6YyxjYXB0dXJlOm59LGw/bC5wdXNoKHMpOnRoaXMuX19vbj1bc119fWZ1bmN0aW9uIGo5KHQsZSxuKXt2YXIgaT1sOSh0KSxyPWkuQ3VzdG9tRXZlbnQ7ImZ1bmN0aW9uIj09dHlwZW9mIHI/cj1uZXcgcihlLG4pOihyPWkuZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iiksbj8oci5pbml0RXZlbnQoZSxuLmJ1YmJsZXMsbi5jYW5jZWxhYmxlKSxyLmRldGFpbD1uLmRldGFpbCk6ci5pbml0RXZlbnQoZSwhMSwhMSkpLHQuZGlzcGF0Y2hFdmVudChyKX1mdW5jdGlvbiBHOSh0LGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBqOSh0aGlzLHQsZSl9fWZ1bmN0aW9uIFc5KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGo5KHRoaXMsdCxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fXZhciBxOT1bbnVsbF07ZnVuY3Rpb24gWTkodCxlKXt0aGlzLl9ncm91cHM9dCx0aGlzLl9wYXJlbnRzPWV9ZnVuY3Rpb24gWDkoKXtyZXR1cm4gbmV3IFk5KFtbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XV0scTkpfWZ1bmN0aW9uICQ5KHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdD9uZXcgWTkoW1tkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpXV0sW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF0pOm5ldyBZOShbW3RdXSxxOSl9WTkucHJvdG90eXBlPVg5LnByb3RvdHlwZT17Y29uc3RydWN0b3I6WTksc2VsZWN0OmZ1bmN0aW9uIEs5KHQpeyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1HNih0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWZvcih2YXIgbyxhLHM9ZVtyXSxsPXMubGVuZ3RoLGM9aVtyXT1uZXcgQXJyYXkobCksdT0wO3U8bDsrK3UpKG89c1t1XSkmJihhPXQuY2FsbChvLG8uX19kYXRhX18sdSxzKSkmJigiX19kYXRhX18iaW4gbyYmKGEuX19kYXRhX189by5fX2RhdGFfXyksY1t1XT1hKTtyZXR1cm4gbmV3IFk5KGksdGhpcy5fcGFyZW50cyl9LHNlbGVjdEFsbDpmdW5jdGlvbiBaOSh0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9cTYodCkpO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj1lLmxlbmd0aCxpPVtdLHI9W10sbz0wO288bjsrK28pZm9yKHZhciBhLHM9ZVtvXSxsPXMubGVuZ3RoLGM9MDtjPGw7KytjKShhPXNbY10pJiYoaS5wdXNoKHQuY2FsbChhLGEuX19kYXRhX18sYyxzKSksci5wdXNoKGEpKTtyZXR1cm4gbmV3IFk5KGkscil9LGZpbHRlcjpmdW5jdGlvbiBKOSh0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9SzYodCkpO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj1lLmxlbmd0aCxpPW5ldyBBcnJheShuKSxyPTA7cjxuOysrcilmb3IodmFyIG8sYT1lW3JdLHM9YS5sZW5ndGgsbD1pW3JdPVtdLGM9MDtjPHM7KytjKShvPWFbY10pJiZ0LmNhbGwobyxvLl9fZGF0YV9fLGMsYSkmJmwucHVzaChvKTtyZXR1cm4gbmV3IFk5KGksdGhpcy5fcGFyZW50cyl9LGRhdGE6ZnVuY3Rpb24gUTkodCxlKXtpZighdClyZXR1cm4gZj1uZXcgQXJyYXkodGhpcy5zaXplKCkpLHU9LTEsdGhpcy5lYWNoKChmdW5jdGlvbih0KXtmWysrdV09dH0pKSxmO3ZhciBuPWU/dDk6UTYsaT10aGlzLl9wYXJlbnRzLHI9dGhpcy5fZ3JvdXBzOyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD0oZnVuY3Rpb24gbyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KSh0KSk7Zm9yKHZhciBhPXIubGVuZ3RoLHM9bmV3IEFycmF5KGEpLGw9bmV3IEFycmF5KGEpLGM9bmV3IEFycmF5KGEpLHU9MDt1PGE7Kyt1KXt2YXIgaD1pW3VdLGQ9clt1XSxwPWQubGVuZ3RoLGY9dC5jYWxsKGgsaCYmaC5fX2RhdGFfXyx1LGkpLG09Zi5sZW5ndGgsZz1sW3VdPW5ldyBBcnJheShtKSxfPXNbdV09bmV3IEFycmF5KG0pO24oaCxkLGcsXyxjW3VdPW5ldyBBcnJheShwKSxmLGUpO2Zvcih2YXIgeSx2LGI9MCx4PTA7YjxtOysrYilpZih5PWdbYl0pe2ZvcihiPj14JiYoeD1iKzEpOyEodj1fW3hdKSYmKyt4PG07KTt5Ll9uZXh0PXZ8fG51bGx9fXJldHVybihzPW5ldyBZOShzLGkpKS5fZW50ZXI9bCxzLl9leGl0PWMsc30sZW50ZXI6ZnVuY3Rpb24gdDgoKXtyZXR1cm4gbmV3IFk5KHRoaXMuX2VudGVyfHx0aGlzLl9ncm91cHMubWFwKFo2KSx0aGlzLl9wYXJlbnRzKX0sZXhpdDpmdW5jdGlvbiBlOCgpe3JldHVybiBuZXcgWTkodGhpcy5fZXhpdHx8dGhpcy5fZ3JvdXBzLm1hcChaNiksdGhpcy5fcGFyZW50cyl9LG1lcmdlOmZ1bmN0aW9uIG44KHQpe2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj10Ll9ncm91cHMsaT1lLmxlbmd0aCxyPU1hdGgubWluKGksbi5sZW5ndGgpLG89bmV3IEFycmF5KGkpLGE9MDthPHI7KythKWZvcih2YXIgcyxsPWVbYV0sYz1uW2FdLHU9bC5sZW5ndGgsaD1vW2FdPW5ldyBBcnJheSh1KSxkPTA7ZDx1OysrZCkocz1sW2RdfHxjW2RdKSYmKGhbZF09cyk7Zm9yKDthPGk7KythKW9bYV09ZVthXTtyZXR1cm4gbmV3IFk5KG8sdGhpcy5fcGFyZW50cyl9LG9yZGVyOmZ1bmN0aW9uIGk4KCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxlPS0xLG49dC5sZW5ndGg7KytlPG47KWZvcih2YXIgaSxyPXRbZV0sbz1yLmxlbmd0aC0xLGE9cltvXTstLW8+PTA7KShpPXJbb10pJiYoYSYmYSE9PWkubmV4dFNpYmxpbmcmJmEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaSxhKSxhPWkpO3JldHVybiB0aGlzfSxzb3J0OmZ1bmN0aW9uIHI4KHQpe2Z1bmN0aW9uIGUoZSxuKXtyZXR1cm4gZSYmbj90KGUuX19kYXRhX18sbi5fX2RhdGFfXyk6IWUtIW59dHx8KHQ9ZTkpO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsaT1uLmxlbmd0aCxyPW5ldyBBcnJheShpKSxvPTA7bzxpOysrbyl7Zm9yKHZhciBhLHM9bltvXSxsPXMubGVuZ3RoLGM9cltvXT1uZXcgQXJyYXkobCksdT0wO3U8bDsrK3UpKGE9c1t1XSkmJihjW3VdPWEpO2Muc29ydChlKX1yZXR1cm4gbmV3IFk5KHIsdGhpcy5fcGFyZW50cykub3JkZXIoKX0sY2FsbDpmdW5jdGlvbiBvOCgpe3ZhciB0PWFyZ3VtZW50c1swXTtyZXR1cm4gYXJndW1lbnRzWzBdPXRoaXMsdC5hcHBseShudWxsLGFyZ3VtZW50cyksdGhpc30sbm9kZXM6ZnVuY3Rpb24gYTgoKXt2YXIgdD1uZXcgQXJyYXkodGhpcy5zaXplKCkpLGU9LTE7cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXt0WysrZV09dGhpc30pKSx0fSxub2RlOmZ1bmN0aW9uIHM4KCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxlPTAsbj10Lmxlbmd0aDtlPG47KytlKWZvcih2YXIgaT10W2VdLHI9MCxvPWkubGVuZ3RoO3I8bzsrK3Ipe3ZhciBhPWlbcl07aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH0sc2l6ZTpmdW5jdGlvbiBsOCgpe3ZhciB0PTA7cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXsrK3R9KSksdH0sZW1wdHk6ZnVuY3Rpb24gYzgoKXtyZXR1cm4hdGhpcy5ub2RlKCl9LGVhY2g6ZnVuY3Rpb24gdTgodCl7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPTAsaT1lLmxlbmd0aDtuPGk7KytuKWZvcih2YXIgcixvPWVbbl0sYT0wLHM9by5sZW5ndGg7YTxzOysrYSkocj1vW2FdKSYmdC5jYWxsKHIsci5fX2RhdGFfXyxhLG8pO3JldHVybiB0aGlzfSxhdHRyOmZ1bmN0aW9uIGg4KHQsZSl7dmFyIG49SDYodCk7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXt2YXIgaT10aGlzLm5vZGUoKTtyZXR1cm4gbi5sb2NhbD9pLmdldEF0dHJpYnV0ZU5TKG4uc3BhY2Usbi5sb2NhbCk6aS5nZXRBdHRyaWJ1dGUobil9cmV0dXJuIHRoaXMuZWFjaCgobnVsbD09ZT9uLmxvY2FsP2k5Om45OiJmdW5jdGlvbiI9PXR5cGVvZiBlP24ubG9jYWw/czk6YTk6bi5sb2NhbD9vOTpyOSkobixlKSl9LHN0eWxlOmZ1bmN0aW9uIGQ4KHQsZSxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09ZT9jOToiZnVuY3Rpb24iPT10eXBlb2YgZT9oOTp1OSkodCxlLG51bGw9PW4/IiI6bikpOmQ5KHRoaXMubm9kZSgpLHQpfSxwcm9wZXJ0eTpmdW5jdGlvbiBwOCh0LGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKChudWxsPT1lP3A5OiJmdW5jdGlvbiI9PXR5cGVvZiBlP205OmY5KSh0LGUpKTp0aGlzLm5vZGUoKVt0XX0sY2xhc3NlZDpmdW5jdGlvbiBmOCh0LGUpe3ZhciBuPWc5KHQrIiIpO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciBpPV85KHRoaXMubm9kZSgpKSxyPS0xLG89bi5sZW5ndGg7KytyPG87KWlmKCFpLmNvbnRhaW5zKG5bcl0pKXJldHVybiExO3JldHVybiEwfXJldHVybiB0aGlzLmVhY2goKCJmdW5jdGlvbiI9PXR5cGVvZiBlP1M5OmU/eDk6dzkpKG4sZSkpfSx0ZXh0OmZ1bmN0aW9uIG04KHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChudWxsPT10P005OigiZnVuY3Rpb24iPT10eXBlb2YgdD9UOTpFOSkodCkpOnRoaXMubm9kZSgpLnRleHRDb250ZW50fSxodG1sOmZ1bmN0aW9uIGc4KHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChudWxsPT10P0M5OigiZnVuY3Rpb24iPT10eXBlb2YgdD9rOTpBOSkodCkpOnRoaXMubm9kZSgpLmlubmVySFRNTH0scmFpc2U6ZnVuY3Rpb24gXzgoKXtyZXR1cm4gdGhpcy5lYWNoKEw5KX0sbG93ZXI6ZnVuY3Rpb24geTgoKXtyZXR1cm4gdGhpcy5lYWNoKFA5KX0sYXBwZW5kOmZ1bmN0aW9uIHY4KHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6VTYodCk7cmV0dXJuIHRoaXMuc2VsZWN0KChmdW5jdGlvbigpe3JldHVybiB0aGlzLmFwcGVuZENoaWxkKGUuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0pKX0saW5zZXJ0OmZ1bmN0aW9uIGI4KHQsZSl7dmFyIG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpVNih0KSxpPW51bGw9PWU/Tjk6ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpHNihlKTtyZXR1cm4gdGhpcy5zZWxlY3QoKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zZXJ0QmVmb3JlKG4uYXBwbHkodGhpcyxhcmd1bWVudHMpLGkuYXBwbHkodGhpcyxhcmd1bWVudHMpfHxudWxsKX0pKX0scmVtb3ZlOmZ1bmN0aW9uIHg4KCl7cmV0dXJuIHRoaXMuZWFjaChJOSl9LGNsb25lOmZ1bmN0aW9uIHc4KHQpe3JldHVybiB0aGlzLnNlbGVjdCh0P085OlI5KX0sZGF0dW06ZnVuY3Rpb24gUzgodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5wcm9wZXJ0eSgiX19kYXRhX18iLHQpOnRoaXMubm9kZSgpLl9fZGF0YV9ffSxvbjpmdW5jdGlvbiBNOCh0LGUsbil7dmFyIGkscixvPUY5KHQrIiIpLGE9by5sZW5ndGg7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtmb3Iocz1lP1U5OlY5LG51bGw9PW4mJihuPSExKSxpPTA7aTxhOysraSl0aGlzLmVhY2gocyhvW2ldLGUsbikpO3JldHVybiB0aGlzfXZhciBzPXRoaXMubm9kZSgpLl9fb247aWYocylmb3IodmFyIGwsYz0wLHU9cy5sZW5ndGg7Yzx1OysrYylmb3IoaT0wLGw9c1tjXTtpPGE7KytpKWlmKChyPW9baV0pLnR5cGU9PT1sLnR5cGUmJnIubmFtZT09PWwubmFtZSlyZXR1cm4gbC52YWx1ZX0sZGlzcGF0Y2g6ZnVuY3Rpb24gRTgodCxlKXtyZXR1cm4gdGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgZT9XOTpHOSkodCxlKSl9fTt2YXIgVDg9MDtmdW5jdGlvbiBDOCgpe3JldHVybiBuZXcgQTh9ZnVuY3Rpb24gQTgoKXt0aGlzLl89IkAiKygrK1Q4KS50b1N0cmluZygzNil9ZnVuY3Rpb24gazgoKXtmb3IodmFyIHQsZT1EOTt0PWUuc291cmNlRXZlbnQ7KWU9dDtyZXR1cm4gZX1mdW5jdGlvbiBMOCh0LGUpe3ZhciBuPXQub3duZXJTVkdFbGVtZW50fHx0O2lmKG4uY3JlYXRlU1ZHUG9pbnQpe3ZhciBpPW4uY3JlYXRlU1ZHUG9pbnQoKTtyZXR1cm4gaS54PWUuY2xpZW50WCxpLnk9ZS5jbGllbnRZLFsoaT1pLm1hdHJpeFRyYW5zZm9ybSh0LmdldFNjcmVlbkNUTSgpLmludmVyc2UoKSkpLngsaS55XX12YXIgcj10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybltlLmNsaWVudFgtci5sZWZ0LXQuY2xpZW50TGVmdCxlLmNsaWVudFktci50b3AtdC5jbGllbnRUb3BdfUE4LnByb3RvdHlwZT1DOC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkE4LGdldDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5fOyEoZSBpbiB0KTspaWYoISh0PXQucGFyZW50Tm9kZSkpcmV0dXJuO3JldHVybiB0W2VdfSxzZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFt0aGlzLl9dPWV9LHJlbW92ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fIGluIHQmJmRlbGV0ZSB0W3RoaXMuX119LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX319O3ZhciBQOD1NYXRoLlBJLE44PTIqUDgsSTg9MWUtNixSOD1OOC1JODtmdW5jdGlvbiBPOCgpe3RoaXMuX3gwPXRoaXMuX3kwPXRoaXMuX3gxPXRoaXMuX3kxPW51bGwsdGhpcy5fPSIifWZ1bmN0aW9uIHo4KCl7cmV0dXJuIG5ldyBPOH1mdW5jdGlvbiBEOCh0KXtyZXR1cm4gZnVuY3Rpb24gZSgpe3JldHVybiB0fX1POC5wcm90b3R5cGU9ejgucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpPOCxtb3ZlVG86ZnVuY3Rpb24odCxlKXt0aGlzLl8rPSJNIisodGhpcy5feDA9dGhpcy5feDE9K3QpKyIsIisodGhpcy5feTA9dGhpcy5feTE9K2UpfSxjbG9zZVBhdGg6ZnVuY3Rpb24oKXtudWxsIT09dGhpcy5feDEmJih0aGlzLl94MT10aGlzLl94MCx0aGlzLl95MT10aGlzLl95MCx0aGlzLl8rPSJaIil9LGxpbmVUbzpmdW5jdGlvbih0LGUpe3RoaXMuXys9IkwiKyh0aGlzLl94MT0rdCkrIiwiKyh0aGlzLl95MT0rZSl9LHF1YWRyYXRpY0N1cnZlVG86ZnVuY3Rpb24odCxlLG4saSl7dGhpcy5fKz0iUSIrICt0KyIsIisgK2UrIiwiKyh0aGlzLl94MT0rbikrIiwiKyh0aGlzLl95MT0raSl9LGJlemllckN1cnZlVG86ZnVuY3Rpb24odCxlLG4saSxyLG8pe3RoaXMuXys9IkMiKyArdCsiLCIrICtlKyIsIisgK24rIiwiKyAraSsiLCIrKHRoaXMuX3gxPStyKSsiLCIrKHRoaXMuX3kxPStvKX0sYXJjVG86ZnVuY3Rpb24odCxlLG4saSxyKXt2YXIgbz10aGlzLl94MSxhPXRoaXMuX3kxLHM9KG49K24pLSh0PSt0KSxsPShpPStpKS0oZT0rZSksYz1vLXQsdT1hLWUsaD1jKmMrdSp1O2lmKChyPStyKTwwKXRocm93IG5ldyBFcnJvcigibmVnYXRpdmUgcmFkaXVzOiAiK3IpO2lmKG51bGw9PT10aGlzLl94MSl0aGlzLl8rPSJNIisodGhpcy5feDE9dCkrIiwiKyh0aGlzLl95MT1lKTtlbHNlIGlmKGg+STgpaWYoTWF0aC5hYnModSpzLWwqYyk+STgmJnIpe3ZhciBkPW4tbyxwPWktYSxmPXMqcytsKmwsbT1kKmQrcCpwLGc9TWF0aC5zcXJ0KGYpLF89TWF0aC5zcXJ0KGgpLHk9cipNYXRoLnRhbigoUDgtTWF0aC5hY29zKChmK2gtbSkvKDIqZypfKSkpLzIpLHY9eS9fLGI9eS9nO01hdGguYWJzKHYtMSk+STgmJih0aGlzLl8rPSJMIisodCt2KmMpKyIsIisoZSt2KnUpKSx0aGlzLl8rPSJBIityKyIsIityKyIsMCwwLCIrICsodSpkPmMqcCkrIiwiKyh0aGlzLl94MT10K2IqcykrIiwiKyh0aGlzLl95MT1lK2IqbCl9ZWxzZSB0aGlzLl8rPSJMIisodGhpcy5feDE9dCkrIiwiKyh0aGlzLl95MT1lKTtlbHNlO30sYXJjOmZ1bmN0aW9uKHQsZSxuLGkscixvKXt0PSt0LGU9K2Usbz0hIW87dmFyIGE9KG49K24pKk1hdGguY29zKGkpLHM9bipNYXRoLnNpbihpKSxsPXQrYSxjPWUrcyx1PTFebyxoPW8/aS1yOnItaTtpZihuPDApdGhyb3cgbmV3IEVycm9yKCJuZWdhdGl2ZSByYWRpdXM6ICIrbik7bnVsbD09PXRoaXMuX3gxP3RoaXMuXys9Ik0iK2wrIiwiK2M6KE1hdGguYWJzKHRoaXMuX3gxLWwpPkk4fHxNYXRoLmFicyh0aGlzLl95MS1jKT5JOCkmJih0aGlzLl8rPSJMIitsKyIsIitjKSxuJiYoaDwwJiYoaD1oJU44K044KSxoPlI4P3RoaXMuXys9IkEiK24rIiwiK24rIiwwLDEsIit1KyIsIisodC1hKSsiLCIrKGUtcykrIkEiK24rIiwiK24rIiwwLDEsIit1KyIsIisodGhpcy5feDE9bCkrIiwiKyh0aGlzLl95MT1jKTpoPkk4JiYodGhpcy5fKz0iQSIrbisiLCIrbisiLDAsIisgKyhoPj1QOCkrIiwiK3UrIiwiKyh0aGlzLl94MT10K24qTWF0aC5jb3MocikpKyIsIisodGhpcy5feTE9ZStuKk1hdGguc2luKHIpKSkpfSxyZWN0OmZ1bmN0aW9uKHQsZSxuLGkpe3RoaXMuXys9Ik0iKyh0aGlzLl94MD10aGlzLl94MT0rdCkrIiwiKyh0aGlzLl95MD10aGlzLl95MT0rZSkrImgiKyArbisidiIrICtpKyJoIistbisiWiJ9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX319O3ZhciBCOD1NYXRoLmFicyxIOD1NYXRoLmF0YW4yLEY4PU1hdGguY29zLFY4PU1hdGgubWF4LFU4PU1hdGgubWluLGo4PU1hdGguc2luLEc4PU1hdGguc3FydCxXOD0xZS0xMixxOD1NYXRoLlBJLFk4PXE4LzIsWDg9MipxODtmdW5jdGlvbiAkOCh0KXtyZXR1cm4gdD4xPzA6dDwtMT9xODpNYXRoLmFjb3ModCl9ZnVuY3Rpb24gSzgodCl7cmV0dXJuIHQ+PTE/WTg6dDw9LTE/LVk4Ok1hdGguYXNpbih0KX1mdW5jdGlvbiBaOCh0KXtyZXR1cm4gdC5pbm5lclJhZGl1c31mdW5jdGlvbiBKOCh0KXtyZXR1cm4gdC5vdXRlclJhZGl1c31mdW5jdGlvbiBROCh0KXtyZXR1cm4gdC5zdGFydEFuZ2xlfWZ1bmN0aW9uIHQ3KHQpe3JldHVybiB0LmVuZEFuZ2xlfWZ1bmN0aW9uIGU3KHQpe3JldHVybiB0JiZ0LnBhZEFuZ2xlfWZ1bmN0aW9uIG43KHQsZSxuLGkscixvLGEscyl7dmFyIGw9bi10LGM9aS1lLHU9YS1yLGg9cy1vLGQ9KHUqKGUtbyktaCoodC1yKSkvKGgqbC11KmMpO3JldHVyblt0K2QqbCxlK2QqY119ZnVuY3Rpb24gaTcodCxlLG4saSxyLG8sYSl7dmFyIHM9dC1uLGw9ZS1pLGM9KGE/bzotbykvRzgocypzK2wqbCksdT1jKmwsaD0tYypzLGQ9dCt1LHA9ZStoLGY9bit1LG09aStoLGc9KGQrZikvMixfPShwK20pLzIseT1mLWQsdj1tLXAsYj15Knkrdip2LHg9ci1vLHc9ZCptLWYqcCxTPSh2PDA/LTE6MSkqRzgoVjgoMCx4KngqYi13KncpKSxNPSh3KnYteSpTKS9iLEU9KC13KnktdipTKS9iLFQ9KHcqdit5KlMpL2IsQz0oLXcqeSt2KlMpL2IsQT1NLWcsaz1FLV8sTD1ULWcsUD1DLV87cmV0dXJuIEEqQStrKms+TCpMK1AqUCYmKE09VCxFPUMpLHtjeDpNLGN5OkUseDAxOi11LHkwMTotaCx4MTE6TSooci94LTEpLHkxMTpFKihyL3gtMSl9fWZ1bmN0aW9uIHI3KHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBvNyh0KXtyZXR1cm4gbmV3IHI3KHQpfWZ1bmN0aW9uIGE3KHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIHM3KHQpe3JldHVybiB0WzFdfWZ1bmN0aW9uIGw3KCl7dmFyIHQ9YTcsZT1zNyxuPUQ4KCEwKSxpPW51bGwscj1vNyxvPW51bGw7ZnVuY3Rpb24gYShhKXt2YXIgcyxsLGMsdT1hLmxlbmd0aCxoPSExO2ZvcihudWxsPT1pJiYobz1yKGM9ejgoKSkpLHM9MDtzPD11OysrcykhKHM8dSYmbihsPWFbc10scyxhKSk9PT1oJiYoKGg9IWgpP28ubGluZVN0YXJ0KCk6by5saW5lRW5kKCkpLGgmJm8ucG9pbnQoK3QobCxzLGEpLCtlKGwscyxhKSk7aWYoYylyZXR1cm4gbz1udWxsLGMrIiJ8fG51bGx9cmV0dXJuIGEueD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOkQ4KCtlKSxhKTp0fSxhLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpEOCgrdCksYSk6ZX0sYS5kZWZpbmVkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6RDgoISF0KSxhKTpufSxhLmN1cnZlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsbnVsbCE9aSYmKG89cihpKSksYSk6cn0sYS5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT10P2k9bz1udWxsOm89cihpPXQpLGEpOml9LGF9ZnVuY3Rpb24gYzcoKXt2YXIgdD1hNyxlPW51bGwsbj1EOCgwKSxpPXM3LHI9RDgoITApLG89bnVsbCxhPW83LHM9bnVsbDtmdW5jdGlvbiBsKGwpe3ZhciBjLHUsaCxkLHAsZj1sLmxlbmd0aCxtPSExLGc9bmV3IEFycmF5KGYpLF89bmV3IEFycmF5KGYpO2ZvcihudWxsPT1vJiYocz1hKHA9ejgoKSkpLGM9MDtjPD1mOysrYyl7aWYoIShjPGYmJnIoZD1sW2NdLGMsbCkpPT09bSlpZihtPSFtKXU9YyxzLmFyZWFTdGFydCgpLHMubGluZVN0YXJ0KCk7ZWxzZXtmb3Iocy5saW5lRW5kKCkscy5saW5lU3RhcnQoKSxoPWMtMTtoPj11Oy0taClzLnBvaW50KGdbaF0sX1toXSk7cy5saW5lRW5kKCkscy5hcmVhRW5kKCl9bSYmKGdbY109K3QoZCxjLGwpLF9bY109K24oZCxjLGwpLHMucG9pbnQoZT8rZShkLGMsbCk6Z1tjXSxpPytpKGQsYyxsKTpfW2NdKSl9aWYocClyZXR1cm4gcz1udWxsLHArIiJ8fG51bGx9ZnVuY3Rpb24gYygpe3JldHVybiBsNygpLmRlZmluZWQocikuY3VydmUoYSkuY29udGV4dChvKX1yZXR1cm4gbC54PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBuP246RDgoK24pLGU9bnVsbCxsKTp0fSxsLngwPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6RDgoK2UpLGwpOnR9LGwueDE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bnVsbD09dD9udWxsOiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6RDgoK3QpLGwpOmV9LGwueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkQ4KCt0KSxpPW51bGwsbCk6bn0sbC55MD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkQ4KCt0KSxsKTpufSxsLnkxPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PXQ/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YgdD90OkQ4KCt0KSxsKTppfSxsLmxpbmVYMD1sLmxpbmVZMD1mdW5jdGlvbigpe3JldHVybiBjKCkueCh0KS55KG4pfSxsLmxpbmVZMT1mdW5jdGlvbigpe3JldHVybiBjKCkueCh0KS55KGkpfSxsLmxpbmVYMT1mdW5jdGlvbigpe3JldHVybiBjKCkueChlKS55KG4pfSxsLmRlZmluZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpEOCghIXQpLGwpOnJ9LGwuY3VydmU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9dCxudWxsIT1vJiYocz1hKG8pKSxsKTphfSxsLmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PXQ/bz1zPW51bGw6cz1hKG89dCksbCk6b30sbH1mdW5jdGlvbiB1Nyh0LGUpe3JldHVybiBlPHQ/LTE6ZT50PzE6ZT49dD8wOk5hTn1mdW5jdGlvbiBoNyh0KXtyZXR1cm4gdH1yNy5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2RlZmF1bHQ6dGhpcy5fY29udGV4dC5saW5lVG8odCxlKX19fTt2YXIgZDc9ZjcobzcpO2Z1bmN0aW9uIHA3KHQpe3RoaXMuX2N1cnZlPXR9ZnVuY3Rpb24gZjcodCl7ZnVuY3Rpb24gZShlKXtyZXR1cm4gbmV3IHA3KHQoZSkpfXJldHVybiBlLl9jdXJ2ZT10LGV9ZnVuY3Rpb24gbTcodCl7dmFyIGU9dC5jdXJ2ZTtyZXR1cm4gdC5hbmdsZT10LngsZGVsZXRlIHQueCx0LnJhZGl1cz10LnksZGVsZXRlIHQueSx0LmN1cnZlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2UoZjcodCkpOmUoKS5fY3VydmV9LHR9ZnVuY3Rpb24gZzcoKXtyZXR1cm4gbTcobDcoKS5jdXJ2ZShkNykpfWZ1bmN0aW9uIF83KCl7dmFyIHQ9YzcoKS5jdXJ2ZShkNyksZT10LmN1cnZlLG49dC5saW5lWDAsaT10LmxpbmVYMSxyPXQubGluZVkwLG89dC5saW5lWTE7cmV0dXJuIHQuYW5nbGU9dC54LGRlbGV0ZSB0LngsdC5zdGFydEFuZ2xlPXQueDAsZGVsZXRlIHQueDAsdC5lbmRBbmdsZT10LngxLGRlbGV0ZSB0LngxLHQucmFkaXVzPXQueSxkZWxldGUgdC55LHQuaW5uZXJSYWRpdXM9dC55MCxkZWxldGUgdC55MCx0Lm91dGVyUmFkaXVzPXQueTEsZGVsZXRlIHQueTEsdC5saW5lU3RhcnRBbmdsZT1mdW5jdGlvbigpe3JldHVybiBtNyhuKCkpfSxkZWxldGUgdC5saW5lWDAsdC5saW5lRW5kQW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4gbTcoaSgpKX0sZGVsZXRlIHQubGluZVgxLHQubGluZUlubmVyUmFkaXVzPWZ1bmN0aW9uKCl7cmV0dXJuIG03KHIoKSl9LGRlbGV0ZSB0LmxpbmVZMCx0LmxpbmVPdXRlclJhZGl1cz1mdW5jdGlvbigpe3JldHVybiBtNyhvKCkpfSxkZWxldGUgdC5saW5lWTEsdC5jdXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9lKGY3KHQpKTplKCkuX2N1cnZlfSx0fWZ1bmN0aW9uIHk3KHQsZSl7cmV0dXJuWyhlPStlKSpNYXRoLmNvcyh0LT1NYXRoLlBJLzIpLGUqTWF0aC5zaW4odCldfXA3LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUuYXJlYVN0YXJ0KCl9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5hcmVhRW5kKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUubGluZUVuZCgpfSxwb2ludDpmdW5jdGlvbih0LGUpe3RoaXMuX2N1cnZlLnBvaW50KGUqTWF0aC5zaW4odCksZSotTWF0aC5jb3ModCkpfX07dmFyIHY3PUFycmF5LnByb3RvdHlwZS5zbGljZTtmdW5jdGlvbiBiNyh0KXtyZXR1cm4gdC5zb3VyY2V9ZnVuY3Rpb24geDcodCl7cmV0dXJuIHQudGFyZ2V0fWZ1bmN0aW9uIHc3KHQpe3ZhciBlPWI3LG49eDcsaT1hNyxyPXM3LG89bnVsbDtmdW5jdGlvbiBhKCl7dmFyIGEscz12Ny5jYWxsKGFyZ3VtZW50cyksbD1lLmFwcGx5KHRoaXMscyksYz1uLmFwcGx5KHRoaXMscyk7aWYob3x8KG89YT16OCgpKSx0KG8sK2kuYXBwbHkodGhpcywoc1swXT1sLHMpKSwrci5hcHBseSh0aGlzLHMpLCtpLmFwcGx5KHRoaXMsKHNbMF09YyxzKSksK3IuYXBwbHkodGhpcyxzKSksYSlyZXR1cm4gbz1udWxsLGErIiJ8fG51bGx9cmV0dXJuIGEuc291cmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXQsYSk6ZX0sYS50YXJnZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCxhKTpufSxhLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpEOCgrdCksYSk6aX0sYS55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6RDgoK3QpLGEpOnJ9LGEuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1udWxsPT10P251bGw6dCxhKTpvfSxhfWZ1bmN0aW9uIFM3KHQsZSxuLGkscil7dC5tb3ZlVG8oZSxuKSx0LmJlemllckN1cnZlVG8oZT0oZStpKS8yLG4sZSxyLGkscil9ZnVuY3Rpb24gTTcodCxlLG4saSxyKXt0Lm1vdmVUbyhlLG4pLHQuYmV6aWVyQ3VydmVUbyhlLG49KG4rcikvMixpLG4saSxyKX1mdW5jdGlvbiBFNyh0LGUsbixpLHIpe3ZhciBvPXk3KGUsbiksYT15NyhlLG49KG4rcikvMikscz15NyhpLG4pLGw9eTcoaSxyKTt0Lm1vdmVUbyhvWzBdLG9bMV0pLHQuYmV6aWVyQ3VydmVUbyhhWzBdLGFbMV0sc1swXSxzWzFdLGxbMF0sbFsxXSl9dmFyIFQ3PXtkcmF3OmZ1bmN0aW9uKHQsZSl7dmFyIG49TWF0aC5zcXJ0KGUvcTgpO3QubW92ZVRvKG4sMCksdC5hcmMoMCwwLG4sMCxYOCl9fSxDNz17ZHJhdzpmdW5jdGlvbih0LGUpe3ZhciBuPU1hdGguc3FydChlLzUpLzI7dC5tb3ZlVG8oLTMqbiwtbiksdC5saW5lVG8oLW4sLW4pLHQubGluZVRvKC1uLC0zKm4pLHQubGluZVRvKG4sLTMqbiksdC5saW5lVG8obiwtbiksdC5saW5lVG8oMypuLC1uKSx0LmxpbmVUbygzKm4sbiksdC5saW5lVG8obixuKSx0LmxpbmVUbyhuLDMqbiksdC5saW5lVG8oLW4sMypuKSx0LmxpbmVUbygtbixuKSx0LmxpbmVUbygtMypuLG4pLHQuY2xvc2VQYXRoKCl9fSxBNz1NYXRoLnNxcnQoMS8zKSxrNz0yKkE3LEw3PXtkcmF3OmZ1bmN0aW9uKHQsZSl7dmFyIG49TWF0aC5zcXJ0KGUvazcpLGk9bipBNzt0Lm1vdmVUbygwLC1uKSx0LmxpbmVUbyhpLDApLHQubGluZVRvKDAsbiksdC5saW5lVG8oLWksMCksdC5jbG9zZVBhdGgoKX19LFA3PU1hdGguc2luKHE4LzEwKS9NYXRoLnNpbig3KnE4LzEwKSxONz1NYXRoLnNpbihYOC8xMCkqUDcsSTc9LU1hdGguY29zKFg4LzEwKSpQNyxSNz17ZHJhdzpmdW5jdGlvbih0LGUpe3ZhciBuPU1hdGguc3FydCguODkwODEzMDkxNTI5Mjg1MiplKSxpPU43Km4scj1JNypuO3QubW92ZVRvKDAsLW4pLHQubGluZVRvKGkscik7Zm9yKHZhciBvPTE7bzw1Oysrbyl7dmFyIGE9WDgqby81LHM9TWF0aC5jb3MoYSksbD1NYXRoLnNpbihhKTt0LmxpbmVUbyhsKm4sLXMqbiksdC5saW5lVG8ocyppLWwqcixsKmkrcypyKX10LmNsb3NlUGF0aCgpfX0sTzc9e2RyYXc6ZnVuY3Rpb24odCxlKXt2YXIgbj1NYXRoLnNxcnQoZSksaT0tbi8yO3QucmVjdChpLGksbixuKX19LHo3PU1hdGguc3FydCgzKSxENz17ZHJhdzpmdW5jdGlvbih0LGUpe3ZhciBuPS1NYXRoLnNxcnQoZS8oMyp6NykpO3QubW92ZVRvKDAsMipuKSx0LmxpbmVUbygtejcqbiwtbiksdC5saW5lVG8oejcqbiwtbiksdC5jbG9zZVBhdGgoKX19LEI3PS0uNSxINz1NYXRoLnNxcnQoMykvMixGNz0xL01hdGguc3FydCgxMiksVjc9MyooRjcvMisxKSxVNz17ZHJhdzpmdW5jdGlvbih0LGUpe3ZhciBuPU1hdGguc3FydChlL1Y3KSxpPW4vMixyPW4qRjcsbz1pLGE9bipGNytuLHM9LW8sbD1hO3QubW92ZVRvKGksciksdC5saW5lVG8obyxhKSx0LmxpbmVUbyhzLGwpLHQubGluZVRvKEI3KmktSDcqcixINyppK0I3KnIpLHQubGluZVRvKEI3Km8tSDcqYSxINypvK0I3KmEpLHQubGluZVRvKEI3KnMtSDcqbCxINypzK0I3KmwpLHQubGluZVRvKEI3KmkrSDcqcixCNypyLUg3KmkpLHQubGluZVRvKEI3Km8rSDcqYSxCNyphLUg3Km8pLHQubGluZVRvKEI3KnMrSDcqbCxCNypsLUg3KnMpLHQuY2xvc2VQYXRoKCl9fSxqNz1bVDcsQzcsTDcsTzcsUjcsRDcsVTddO2Z1bmN0aW9uIEc3KCl7fWZ1bmN0aW9uIFc3KHQsZSxuKXt0Ll9jb250ZXh0LmJlemllckN1cnZlVG8oKDIqdC5feDArdC5feDEpLzMsKDIqdC5feTArdC5feTEpLzMsKHQuX3gwKzIqdC5feDEpLzMsKHQuX3kwKzIqdC5feTEpLzMsKHQuX3gwKzQqdC5feDErZSkvNiwodC5feTArNCp0Ll95MStuKS82KX1mdW5jdGlvbiBxNyh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gWTcodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIFg3KHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiAkNyh0LGUpe3RoaXMuX2Jhc2lzPW5ldyBxNyh0KSx0aGlzLl9iZXRhPWV9cTcucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMzpXNyh0aGlzLHRoaXMuX3gxLHRoaXMuX3kxKTtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDEsdGhpcy5feTEpfSh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godD0rdCxlPStlLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsZSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl9jb250ZXh0LmxpbmVUbygoNSp0aGlzLl94MCt0aGlzLl94MSkvNiwoNSp0aGlzLl95MCt0aGlzLl95MSkvNik7ZGVmYXVsdDpXNyh0aGlzLHQsZSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1lfX0sWTcucHJvdG90eXBlPXthcmVhU3RhcnQ6RzcsYXJlYUVuZDpHNyxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl94Mz10aGlzLl94ND10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj10aGlzLl95Mz10aGlzLl95ND1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAxOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gyLHRoaXMuX3kyKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMjp0aGlzLl9jb250ZXh0Lm1vdmVUbygodGhpcy5feDIrMip0aGlzLl94MykvMywodGhpcy5feTIrMip0aGlzLl95MykvMyksdGhpcy5fY29udGV4dC5saW5lVG8oKHRoaXMuX3gzKzIqdGhpcy5feDIpLzMsKHRoaXMuX3kzKzIqdGhpcy5feTIpLzMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAzOnRoaXMucG9pbnQodGhpcy5feDIsdGhpcy5feTIpLHRoaXMucG9pbnQodGhpcy5feDMsdGhpcy5feTMpLHRoaXMucG9pbnQodGhpcy5feDQsdGhpcy5feTQpfX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godD0rdCxlPStlLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl94Mj10LHRoaXMuX3kyPWU7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5feDM9dCx0aGlzLl95Mz1lO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX3g0PXQsdGhpcy5feTQ9ZSx0aGlzLl9jb250ZXh0Lm1vdmVUbygodGhpcy5feDArNCp0aGlzLl94MSt0KS82LCh0aGlzLl95MCs0KnRoaXMuX3kxK2UpLzYpO2JyZWFrO2RlZmF1bHQ6VzcodGhpcyx0LGUpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9ZX19LFg3LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3kwPXRoaXMuX3kxPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYzPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zO3ZhciBuPSh0aGlzLl94MCs0KnRoaXMuX3gxK3QpLzYsaT0odGhpcy5feTArNCp0aGlzLl95MStlKS82O3RoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8obixpKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyhuLGkpO2JyZWFrO2Nhc2UgMzp0aGlzLl9wb2ludD00O2RlZmF1bHQ6VzcodGhpcyx0LGUpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9ZX19LCQ3LnByb3RvdHlwZT17bGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feD1bXSx0aGlzLl95PVtdLHRoaXMuX2Jhc2lzLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5feCxlPXRoaXMuX3ksbj10Lmxlbmd0aC0xO2lmKG4+MClmb3IodmFyIGkscj10WzBdLG89ZVswXSxhPXRbbl0tcixzPWVbbl0tbyxsPS0xOysrbDw9bjspdGhpcy5fYmFzaXMucG9pbnQodGhpcy5fYmV0YSp0W2xdKygxLXRoaXMuX2JldGEpKihyKyhpPWwvbikqYSksdGhpcy5fYmV0YSplW2xdKygxLXRoaXMuX2JldGEpKihvK2kqcykpO3RoaXMuX3g9dGhpcy5feT1udWxsLHRoaXMuX2Jhc2lzLmxpbmVFbmQoKX0scG9pbnQ6ZnVuY3Rpb24odCxlKXt0aGlzLl94LnB1c2goK3QpLHRoaXMuX3kucHVzaCgrZSl9fTt2YXIgSzc9KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gMT09PWU/bmV3IHE3KHQpOm5ldyAkNyh0LGUpfXJldHVybiBuLmJldGE9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxufSkoLjg1KTtmdW5jdGlvbiBaNyh0LGUsbil7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHQuX3gxK3QuX2sqKHQuX3gyLXQuX3gwKSx0Ll95MSt0Ll9rKih0Ll95Mi10Ll95MCksdC5feDIrdC5fayoodC5feDEtZSksdC5feTIrdC5fayoodC5feTEtbiksdC5feDIsdC5feTIpfWZ1bmN0aW9uIEo3KHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtZSkvNn1KNy5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6WjcodGhpcyx0aGlzLl94MSx0aGlzLl95MSl9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX3gxPXQsdGhpcy5feTE9ZTticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MztkZWZhdWx0Olo3KHRoaXMsdCxlKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPWV9fTt2YXIgUTc9KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gbmV3IEo3KHQsZSl9cmV0dXJuIG4udGVuc2lvbj1mdW5jdGlvbihlKXtyZXR1cm4gdCgrZSl9LG59KSgwKTtmdW5jdGlvbiB0dHQodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5faz0oMS1lKS82fXR0dC5wcm90b3R5cGU9e2FyZWFTdGFydDpHNyxhcmVhRW5kOkc3LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3g1PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PXRoaXMuX3k1PU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLnBvaW50KHRoaXMuX3g0LHRoaXMuX3k0KSx0aGlzLnBvaW50KHRoaXMuX3g1LHRoaXMuX3k1KX19LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5feDM9dCx0aGlzLl95Mz1lO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3g0PXQsdGhpcy5feTQ9ZSk7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5feDU9dCx0aGlzLl95NT1lO2JyZWFrO2RlZmF1bHQ6WjcodGhpcyx0LGUpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9ZX19O3ZhciBldHQ9KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gbmV3IHR0dCh0LGUpfXJldHVybiBuLnRlbnNpb249ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxufSkoMCk7ZnVuY3Rpb24gbnR0KHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtZSkvNn1udHQucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Mix0aGlzLl95Mik6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzp0aGlzLl9wb2ludD00O2RlZmF1bHQ6WjcodGhpcyx0LGUpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9ZX19O3ZhciBpdHQ9KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gbmV3IG50dCh0LGUpfXJldHVybiBuLnRlbnNpb249ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxufSkoMCk7ZnVuY3Rpb24gcnR0KHQsZSxuKXt2YXIgaT10Ll94MSxyPXQuX3kxLG89dC5feDIsYT10Ll95MjtpZih0Ll9sMDFfYT5XOCl7dmFyIHM9Mip0Ll9sMDFfMmErMyp0Ll9sMDFfYSp0Ll9sMTJfYSt0Ll9sMTJfMmEsbD0zKnQuX2wwMV9hKih0Ll9sMDFfYSt0Ll9sMTJfYSk7aT0oaSpzLXQuX3gwKnQuX2wxMl8yYSt0Ll94Mip0Ll9sMDFfMmEpL2wscj0ocipzLXQuX3kwKnQuX2wxMl8yYSt0Ll95Mip0Ll9sMDFfMmEpL2x9aWYodC5fbDIzX2E+Vzgpe3ZhciBjPTIqdC5fbDIzXzJhKzMqdC5fbDIzX2EqdC5fbDEyX2ErdC5fbDEyXzJhLHU9Myp0Ll9sMjNfYSoodC5fbDIzX2ErdC5fbDEyX2EpO289KG8qYyt0Ll94MSp0Ll9sMjNfMmEtZSp0Ll9sMTJfMmEpL3UsYT0oYSpjK3QuX3kxKnQuX2wyM18yYS1uKnQuX2wxMl8yYSkvdX10Ll9jb250ZXh0LmJlemllckN1cnZlVG8oaSxyLG8sYSx0Ll94Mix0Ll95Mil9ZnVuY3Rpb24gb3R0KHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2FscGhhPWV9b3R0LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9sMDFfYT10aGlzLl9sMTJfYT10aGlzLl9sMjNfYT10aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYT10aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gyLHRoaXMuX3kyKX0odGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7aWYodD0rdCxlPStlLHRoaXMuX3BvaW50KXt2YXIgbj10aGlzLl94Mi10LGk9dGhpcy5feTItZTt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KG4qbitpKmksdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zO2RlZmF1bHQ6cnR0KHRoaXMsdCxlKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX07dmFyIGF0dD0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiBlP25ldyBvdHQodCxlKTpuZXcgSjcodCwwKX1yZXR1cm4gbi5hbHBoYT1mdW5jdGlvbihlKXtyZXR1cm4gdCgrZSl9LG59KSguNSk7ZnVuY3Rpb24gc3R0KHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2FscGhhPWV9c3R0LnByb3RvdHlwZT17YXJlYVN0YXJ0Okc3LGFyZWFFbmQ6RzcsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feDM9dGhpcy5feDQ9dGhpcy5feDU9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9dGhpcy5feTM9dGhpcy5feTQ9dGhpcy5feTU9TmFOLHRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hPXRoaXMuX2wyM19hPXRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhPXRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAzOnRoaXMucG9pbnQodGhpcy5feDMsdGhpcy5feTMpLHRoaXMucG9pbnQodGhpcy5feDQsdGhpcy5feTQpLHRoaXMucG9pbnQodGhpcy5feDUsdGhpcy5feTUpfX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtpZih0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe3ZhciBuPXRoaXMuX3gyLXQsaT10aGlzLl95Mi1lO3RoaXMuX2wyM19hPU1hdGguc3FydCh0aGlzLl9sMjNfMmE9TWF0aC5wb3cobipuK2kqaSx0aGlzLl9hbHBoYSkpfXN3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5feDM9dCx0aGlzLl95Mz1lO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3g0PXQsdGhpcy5feTQ9ZSk7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5feDU9dCx0aGlzLl95NT1lO2JyZWFrO2RlZmF1bHQ6cnR0KHRoaXMsdCxlKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX07dmFyIGx0dD0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiBlP25ldyBzdHQodCxlKTpuZXcgdHR0KHQsMCl9cmV0dXJuIG4uYWxwaGE9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxufSkoLjUpO2Z1bmN0aW9uIGN0dCh0LGUpe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9hbHBoYT1lfWN0dC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fbDAxX2E9dGhpcy5fbDEyX2E9dGhpcy5fbDIzX2E9dGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmE9dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMz09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtpZih0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe3ZhciBuPXRoaXMuX3gyLXQsaT10aGlzLl95Mi1lO3RoaXMuX2wyM19hPU1hdGguc3FydCh0aGlzLl9sMjNfMmE9TWF0aC5wb3cobipuK2kqaSx0aGlzLl9hbHBoYSkpfXN3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Mix0aGlzLl95Mik6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzp0aGlzLl9wb2ludD00O2RlZmF1bHQ6cnR0KHRoaXMsdCxlKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX07dmFyIHV0dD0oZnVuY3Rpb24gdChlKXtmdW5jdGlvbiBuKHQpe3JldHVybiBlP25ldyBjdHQodCxlKTpuZXcgbnR0KHQsMCl9cmV0dXJuIG4uYWxwaGE9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxufSkoLjUpO2Z1bmN0aW9uIGh0dCh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gZHR0KHQpe3JldHVybiB0PDA/LTE6MX1mdW5jdGlvbiBwdHQodCxlLG4pe3ZhciBpPXQuX3gxLXQuX3gwLHI9ZS10Ll94MSxvPSh0Ll95MS10Ll95MCkvKGl8fHI8MCYmLTApLGE9KG4tdC5feTEpLyhyfHxpPDAmJi0wKSxzPShvKnIrYSppKS8oaStyKTtyZXR1cm4oZHR0KG8pK2R0dChhKSkqTWF0aC5taW4oTWF0aC5hYnMobyksTWF0aC5hYnMoYSksLjUqTWF0aC5hYnMocykpfHwwfWZ1bmN0aW9uIGZ0dCh0LGUpe3ZhciBuPXQuX3gxLXQuX3gwO3JldHVybiBuPygzKih0Ll95MS10Ll95MCkvbi1lKS8yOmV9ZnVuY3Rpb24gbXR0KHQsZSxuKXt2YXIgaT10Ll94MCxyPXQuX3gxLG89dC5feTEsYT0oci1pKS8zO3QuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhpK2EsdC5feTArYSplLHItYSxvLWEqbixyLG8pfWZ1bmN0aW9uIGd0dCh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gX3R0KHQpe3RoaXMuX2NvbnRleHQ9bmV3IHl0dCh0KX1mdW5jdGlvbiB5dHQodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIHZ0dCh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gYnR0KHQpe3ZhciBlLG4saT10Lmxlbmd0aC0xLHI9bmV3IEFycmF5KGkpLG89bmV3IEFycmF5KGkpLGE9bmV3IEFycmF5KGkpO2ZvcihyWzBdPTAsb1swXT0yLGFbMF09dFswXSsyKnRbMV0sZT0xO2U8aS0xOysrZSlyW2VdPTEsb1tlXT00LGFbZV09NCp0W2VdKzIqdFtlKzFdO2ZvcihyW2ktMV09MixvW2ktMV09NyxhW2ktMV09OCp0W2ktMV0rdFtpXSxlPTE7ZTxpOysrZSlvW2VdLT1uPXJbZV0vb1tlLTFdLGFbZV0tPW4qYVtlLTFdO2ZvcihyW2ktMV09YVtpLTFdL29baS0xXSxlPWktMjtlPj0wOy0tZSlyW2VdPShhW2VdLXJbZSsxXSkvb1tlXTtmb3Iob1tpLTFdPSh0W2ldK3JbaS0xXSkvMixlPTA7ZTxpLTE7KytlKW9bZV09Mip0W2UrMV0tcltlKzFdO3JldHVybltyLG9dfWZ1bmN0aW9uIHh0dCh0LGUpe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl90PWV9ZnVuY3Rpb24gd3R0KHQsZSl7aWYoKHI9dC5sZW5ndGgpPjEpZm9yKHZhciBuLGkscixvPTEsYT10W2VbMF1dLHM9YS5sZW5ndGg7bzxyOysrbylmb3IoaT1hLGE9dFtlW29dXSxuPTA7bjxzOysrbilhW25dWzFdKz1hW25dWzBdPWlzTmFOKGlbbl1bMV0pP2lbbl1bMF06aVtuXVsxXX1mdW5jdGlvbiBTdHQodCl7Zm9yKHZhciBlPXQubGVuZ3RoLG49bmV3IEFycmF5KGUpOy0tZT49MDspbltlXT1lO3JldHVybiBufWZ1bmN0aW9uIE10dCh0LGUpe3JldHVybiB0W2VdfWZ1bmN0aW9uIEV0dCh0KXt2YXIgZT10Lm1hcChUdHQpO3JldHVybiBTdHQodCkuc29ydCgoZnVuY3Rpb24odCxuKXtyZXR1cm4gZVt0XS1lW25dfSkpfWZ1bmN0aW9uIFR0dCh0KXtmb3IodmFyIGUsbj0wLGk9LTEscj10Lmxlbmd0aDsrK2k8cjspKGU9K3RbaV1bMV0pJiYobis9ZSk7cmV0dXJuIG59aHR0LnByb3RvdHlwZT17YXJlYVN0YXJ0Okc3LGFyZWFFbmQ6RzcsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuX3BvaW50JiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpfSxwb2ludDpmdW5jdGlvbih0LGUpe3Q9K3QsZT0rZSx0aGlzLl9wb2ludD90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOih0aGlzLl9wb2ludD0xLHRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSkpfX0sZ3R0LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3QwPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDEsdGhpcy5feTEpO2JyZWFrO2Nhc2UgMzptdHQodGhpcyx0aGlzLl90MCxmdHQodGhpcyx0aGlzLl90MCkpfSh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXt2YXIgbj1OYU47aWYoZT0rZSwodD0rdCkhPT10aGlzLl94MXx8ZSE9PXRoaXMuX3kxKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLG10dCh0aGlzLGZ0dCh0aGlzLG49cHR0KHRoaXMsdCxlKSksbik7YnJlYWs7ZGVmYXVsdDptdHQodGhpcyx0aGlzLl90MCxuPXB0dCh0aGlzLHQsZSkpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9ZSx0aGlzLl90MD1ufX19LChfdHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZ3R0LnByb3RvdHlwZSkpLnBvaW50PWZ1bmN0aW9uKHQsZSl7Z3R0LnByb3RvdHlwZS5wb2ludC5jYWxsKHRoaXMsZSx0KX0seXR0LnByb3RvdHlwZT17bW92ZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fY29udGV4dC5tb3ZlVG8oZSx0KX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7dGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKX0sbGluZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fY29udGV4dC5saW5lVG8oZSx0KX0sYmV6aWVyQ3VydmVUbzpmdW5jdGlvbih0LGUsbixpLHIsbyl7dGhpcy5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKGUsdCxpLG4sbyxyKX19LHZ0dC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94PVtdLHRoaXMuX3k9W119LGxpbmVFbmQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl94LGU9dGhpcy5feSxuPXQubGVuZ3RoO2lmKG4paWYodGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0WzBdLGVbMF0pOnRoaXMuX2NvbnRleHQubW92ZVRvKHRbMF0sZVswXSksMj09PW4pdGhpcy5fY29udGV4dC5saW5lVG8odFsxXSxlWzFdKTtlbHNlIGZvcih2YXIgaT1idHQodCkscj1idHQoZSksbz0wLGE9MTthPG47KytvLCsrYSl0aGlzLl9jb250ZXh0LmJlemllckN1cnZlVG8oaVswXVtvXSxyWzBdW29dLGlbMV1bb10sclsxXVtvXSx0W2FdLGVbYV0pOyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PW4pJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lLHRoaXMuX3g9dGhpcy5feT1udWxsfSxwb2ludDpmdW5jdGlvbih0LGUpe3RoaXMuX3gucHVzaCgrdCksdGhpcy5feS5wdXNoKCtlKX19LHh0dC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94PXRoaXMuX3k9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXswPHRoaXMuX3QmJnRoaXMuX3Q8MSYmMj09PXRoaXMuX3BvaW50JiZ0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94LHRoaXMuX3kpLCh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPj0wJiYodGhpcy5fdD0xLXRoaXMuX3QsdGhpcy5fbGluZT0xLXRoaXMuX2xpbmUpfSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2RlZmF1bHQ6aWYodGhpcy5fdDw9MCl0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94LGUpLHRoaXMuX2NvbnRleHQubGluZVRvKHQsZSk7ZWxzZXt2YXIgbj10aGlzLl94KigxLXRoaXMuX3QpK3QqdGhpcy5fdDt0aGlzLl9jb250ZXh0LmxpbmVUbyhuLHRoaXMuX3kpLHRoaXMuX2NvbnRleHQubGluZVRvKG4sZSl9fXRoaXMuX3g9dCx0aGlzLl95PWV9fTt2YXIgQ3R0PW5ldyBEYXRlLEF0dD1uZXcgRGF0ZTtmdW5jdGlvbiBrdHQodCxlLG4saSl7ZnVuY3Rpb24gcihlKXtyZXR1cm4gdChlPW5ldyBEYXRlKCtlKSksZX1yZXR1cm4gci5mbG9vcj1yLHIuY2VpbD1mdW5jdGlvbihuKXtyZXR1cm4gdChuPW5ldyBEYXRlKG4tMSkpLGUobiwxKSx0KG4pLG59LHIucm91bmQ9ZnVuY3Rpb24odCl7dmFyIGU9cih0KSxuPXIuY2VpbCh0KTtyZXR1cm4gdC1lPG4tdD9lOm59LHIub2Zmc2V0PWZ1bmN0aW9uKHQsbil7cmV0dXJuIGUodD1uZXcgRGF0ZSgrdCksbnVsbD09bj8xOk1hdGguZmxvb3IobikpLHR9LHIucmFuZ2U9ZnVuY3Rpb24obixpLG8pe3ZhciBhLHM9W107aWYobj1yLmNlaWwobiksbz1udWxsPT1vPzE6TWF0aC5mbG9vcihvKSwhKG48aSYmbz4wKSlyZXR1cm4gcztkb3tzLnB1c2goYT1uZXcgRGF0ZSgrbikpLGUobixvKSx0KG4pfXdoaWxlKGE8biYmbjxpKTtyZXR1cm4gc30sci5maWx0ZXI9ZnVuY3Rpb24obil7cmV0dXJuIGt0dCgoZnVuY3Rpb24oZSl7aWYoZT49ZSlmb3IoO3QoZSksIW4oZSk7KWUuc2V0VGltZShlLTEpfSksKGZ1bmN0aW9uKHQsaSl7aWYodD49dClpZihpPDApZm9yKDsrK2k8PTA7KWZvcig7ZSh0LC0xKSwhbih0KTspO2Vsc2UgZm9yKDstLWk+PTA7KWZvcig7ZSh0LDEpLCFuKHQpOyk7fSkpfSxuJiYoci5jb3VudD1mdW5jdGlvbihlLGkpe3JldHVybiBDdHQuc2V0VGltZSgrZSksQXR0LnNldFRpbWUoK2kpLHQoQ3R0KSx0KEF0dCksTWF0aC5mbG9vcihuKEN0dCxBdHQpKX0sci5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP3IuZmlsdGVyKGk/ZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSkldD09MH06ZnVuY3Rpb24oZSl7cmV0dXJuIHIuY291bnQoMCxlKSV0PT0wfSk6cjpudWxsfSkscn12YXIgTHR0PWt0dCgoZnVuY3Rpb24oKXt9KSwoZnVuY3Rpb24odCxlKXt0LnNldFRpbWUoK3QrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS10fSkpO0x0dC5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP2t0dCgoZnVuY3Rpb24oZSl7ZS5zZXRUaW1lKE1hdGguZmxvb3IoZS90KSp0KX0pLChmdW5jdGlvbihlLG4pe2Uuc2V0VGltZSgrZStuKnQpfSksKGZ1bmN0aW9uKGUsbil7cmV0dXJuKG4tZSkvdH0pKTpMdHQ6bnVsbH07dmFyIFB0dD1MdHQucmFuZ2UsTnR0PTFlMyxJdHQ9NmU0LFJ0dD0zNmU1LE90dD04NjRlNSx6dHQ9NjA0OGU1LER0dD1rdHQoKGZ1bmN0aW9uKHQpe3Quc2V0VGltZShNYXRoLmZsb29yKHQvTnR0KSpOdHQpfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UqTnR0KX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL050dH0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENTZWNvbmRzKCl9KSksQnR0PUR0dC5yYW5nZSxIdHQ9a3R0KChmdW5jdGlvbih0KXt0LnNldFRpbWUoTWF0aC5mbG9vcih0L0l0dCkqSXR0KX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKkl0dCl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS9JdHR9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0TWludXRlcygpfSkpLEZ0dD1IdHQucmFuZ2UsVnR0PWt0dCgoZnVuY3Rpb24odCl7dmFyIGU9dC5nZXRUaW1lem9uZU9mZnNldCgpKkl0dCVSdHQ7ZTwwJiYoZSs9UnR0KSx0LnNldFRpbWUoTWF0aC5mbG9vcigoK3QtZSkvUnR0KSpSdHQrZSl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFRpbWUoK3QrZSpSdHQpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvUnR0fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEhvdXJzKCl9KSksVXR0PVZ0dC5yYW5nZSxqdHQ9a3R0KChmdW5jdGlvbih0KXt0LnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdC0oZS5nZXRUaW1lem9uZU9mZnNldCgpLXQuZ2V0VGltZXpvbmVPZmZzZXQoKSkqSXR0KS9PdHR9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RGF0ZSgpLTF9KSksR3R0PWp0dC5yYW5nZTtmdW5jdGlvbiBXdHQodCl7cmV0dXJuIGt0dCgoZnVuY3Rpb24oZSl7ZS5zZXREYXRlKGUuZ2V0RGF0ZSgpLShlLmdldERheSgpKzctdCklNyksZS5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0RGF0ZSh0LmdldERhdGUoKSs3KmUpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdC0oZS5nZXRUaW1lem9uZU9mZnNldCgpLXQuZ2V0VGltZXpvbmVPZmZzZXQoKSkqSXR0KS96dHR9KSl9dmFyIHF0dD1XdHQoMCksWXR0PVd0dCgxKSxYdHQ9V3R0KDIpLCR0dD1XdHQoMyksS3R0PVd0dCg0KSxadHQ9V3R0KDUpLEp0dD1XdHQoNiksUXR0PXF0dC5yYW5nZSx0ZXQ9WXR0LnJhbmdlLGVldD1YdHQucmFuZ2UsbmV0PSR0dC5yYW5nZSxpZXQ9S3R0LnJhbmdlLHJldD1adHQucmFuZ2Usb2V0PUp0dC5yYW5nZSxhZXQ9a3R0KChmdW5jdGlvbih0KXt0LnNldERhdGUoMSksdC5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0TW9udGgodC5nZXRNb250aCgpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZ2V0TW9udGgoKS10LmdldE1vbnRoKCkrMTIqKGUuZ2V0RnVsbFllYXIoKS10LmdldEZ1bGxZZWFyKCkpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1vbnRoKCl9KSksc2V0PWFldC5yYW5nZSxjZXQ9a3R0KChmdW5jdGlvbih0KXt0LnNldE1vbnRoKDAsMSksdC5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0RnVsbFllYXIodC5nZXRGdWxsWWVhcigpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZ2V0RnVsbFllYXIoKS10LmdldEZ1bGxZZWFyKCl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RnVsbFllYXIoKX0pKTtjZXQuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIGlzRmluaXRlKHQ9TWF0aC5mbG9vcih0KSkmJnQ+MD9rdHQoKGZ1bmN0aW9uKGUpe2Uuc2V0RnVsbFllYXIoTWF0aC5mbG9vcihlLmdldEZ1bGxZZWFyKCkvdCkqdCksZS5zZXRNb250aCgwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24oZSxuKXtlLnNldEZ1bGxZZWFyKGUuZ2V0RnVsbFllYXIoKStuKnQpfSkpOm51bGx9O3ZhciB1ZXQ9Y2V0LnJhbmdlLGhldD1rdHQoKGZ1bmN0aW9uKHQpe3Quc2V0VVRDU2Vjb25kcygwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UqSXR0KX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL0l0dH0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENNaW51dGVzKCl9KSksZGV0PWhldC5yYW5nZSxwZXQ9a3R0KChmdW5jdGlvbih0KXt0LnNldFVUQ01pbnV0ZXMoMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UqUnR0KX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL1J0dH0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENIb3VycygpfSkpLGZldD1wZXQucmFuZ2UsbWV0PWt0dCgoZnVuY3Rpb24odCl7dC5zZXRVVENIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VVRDRGF0ZSh0LmdldFVUQ0RhdGUoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL090dH0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENEYXRlKCktMX0pKSxnZXQ9bWV0LnJhbmdlO2Z1bmN0aW9uIF9ldCh0KXtyZXR1cm4ga3R0KChmdW5jdGlvbihlKXtlLnNldFVUQ0RhdGUoZS5nZXRVVENEYXRlKCktKGUuZ2V0VVRDRGF5KCkrNy10KSU3KSxlLnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpKzcqZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS96dHR9KSl9dmFyIHlldD1fZXQoMCksdmV0PV9ldCgxKSxiZXQ9X2V0KDIpLHhldD1fZXQoMyksd2V0PV9ldCg0KSxNZXQ9X2V0KDUpLEVldD1fZXQoNiksVGV0PXlldC5yYW5nZSxDZXQ9dmV0LnJhbmdlLEFldD1iZXQucmFuZ2Usa2V0PXhldC5yYW5nZSxMZXQ9d2V0LnJhbmdlLFBldD1NZXQucmFuZ2UsTmV0PUVldC5yYW5nZSxJZXQ9a3R0KChmdW5jdGlvbih0KXt0LnNldFVUQ0RhdGUoMSksdC5zZXRVVENIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VVRDTW9udGgodC5nZXRVVENNb250aCgpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZ2V0VVRDTW9udGgoKS10LmdldFVUQ01vbnRoKCkrMTIqKGUuZ2V0VVRDRnVsbFllYXIoKS10LmdldFVUQ0Z1bGxZZWFyKCkpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ01vbnRoKCl9KSksUmV0PUlldC5yYW5nZSxPZXQ9a3R0KChmdW5jdGlvbih0KXt0LnNldFVUQ01vbnRoKDAsMSksdC5zZXRVVENIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VVRDRnVsbFllYXIodC5nZXRVVENGdWxsWWVhcigpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZ2V0VVRDRnVsbFllYXIoKS10LmdldFVUQ0Z1bGxZZWFyKCl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDRnVsbFllYXIoKX0pKTtPZXQuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIGlzRmluaXRlKHQ9TWF0aC5mbG9vcih0KSkmJnQ+MD9rdHQoKGZ1bmN0aW9uKGUpe2Uuc2V0VVRDRnVsbFllYXIoTWF0aC5mbG9vcihlLmdldFVUQ0Z1bGxZZWFyKCkvdCkqdCksZS5zZXRVVENNb250aCgwLDEpLGUuc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24oZSxuKXtlLnNldFVUQ0Z1bGxZZWFyKGUuZ2V0VVRDRnVsbFllYXIoKStuKnQpfSkpOm51bGx9O3ZhciB6ZXQ9T2V0LnJhbmdlLERldD1uZXcgRGF0ZSxCZXQ9bmV3IERhdGU7ZnVuY3Rpb24gSGV0KHQsZSxuLGkpe2Z1bmN0aW9uIHIoZSl7cmV0dXJuIHQoZT0wPT09YXJndW1lbnRzLmxlbmd0aD9uZXcgRGF0ZTpuZXcgRGF0ZSgrZSkpLGV9cmV0dXJuIHIuZmxvb3I9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoZT1uZXcgRGF0ZSgrZSkpLGV9LHIuY2VpbD1mdW5jdGlvbihuKXtyZXR1cm4gdChuPW5ldyBEYXRlKG4tMSkpLGUobiwxKSx0KG4pLG59LHIucm91bmQ9ZnVuY3Rpb24odCl7dmFyIGU9cih0KSxuPXIuY2VpbCh0KTtyZXR1cm4gdC1lPG4tdD9lOm59LHIub2Zmc2V0PWZ1bmN0aW9uKHQsbil7cmV0dXJuIGUodD1uZXcgRGF0ZSgrdCksbnVsbD09bj8xOk1hdGguZmxvb3IobikpLHR9LHIucmFuZ2U9ZnVuY3Rpb24obixpLG8pe3ZhciBhLHM9W107aWYobj1yLmNlaWwobiksbz1udWxsPT1vPzE6TWF0aC5mbG9vcihvKSwhKG48aSYmbz4wKSlyZXR1cm4gcztkb3tzLnB1c2goYT1uZXcgRGF0ZSgrbikpLGUobixvKSx0KG4pfXdoaWxlKGE8biYmbjxpKTtyZXR1cm4gc30sci5maWx0ZXI9ZnVuY3Rpb24obil7cmV0dXJuIEhldCgoZnVuY3Rpb24oZSl7aWYoZT49ZSlmb3IoO3QoZSksIW4oZSk7KWUuc2V0VGltZShlLTEpfSksKGZ1bmN0aW9uKHQsaSl7aWYodD49dClpZihpPDApZm9yKDsrK2k8PTA7KWZvcig7ZSh0LC0xKSwhbih0KTspO2Vsc2UgZm9yKDstLWk+PTA7KWZvcig7ZSh0LDEpLCFuKHQpOyk7fSkpfSxuJiYoci5jb3VudD1mdW5jdGlvbihlLGkpe3JldHVybiBEZXQuc2V0VGltZSgrZSksQmV0LnNldFRpbWUoK2kpLHQoRGV0KSx0KEJldCksTWF0aC5mbG9vcihuKERldCxCZXQpKX0sci5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP3IuZmlsdGVyKGk/ZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSkldD09MH06ZnVuY3Rpb24oZSl7cmV0dXJuIHIuY291bnQoMCxlKSV0PT0wfSk6cjpudWxsfSkscn12YXIgRmV0PTg2NGU1LFZldD02MDQ4ZTUsVWV0PUhldCgoZnVuY3Rpb24odCl7dC5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0RGF0ZSh0LmdldERhdGUoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQtNmU0KihlLmdldFRpbWV6b25lT2Zmc2V0KCktdC5nZXRUaW1lem9uZU9mZnNldCgpKSkvRmV0fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldERhdGUoKS0xfSkpO2Z1bmN0aW9uIGpldCh0KXtyZXR1cm4gSGV0KChmdW5jdGlvbihlKXtlLnNldERhdGUoZS5nZXREYXRlKCktKGUuZ2V0RGF5KCkrNy10KSU3KSxlLnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpKzcqZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10LTZlNCooZS5nZXRUaW1lem9uZU9mZnNldCgpLXQuZ2V0VGltZXpvbmVPZmZzZXQoKSkpL1ZldH0pKX12YXIgR2V0PWpldCgwKSxXZXQ9amV0KDEpO2pldCgyKSxqZXQoMyk7dmFyIHFldD1qZXQoNCk7amV0KDUpLGpldCg2KTt2YXIgWWV0PUhldCgoZnVuY3Rpb24odCl7dC5zZXRNb250aCgwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmdldEZ1bGxZZWFyKCktdC5nZXRGdWxsWWVhcigpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEZ1bGxZZWFyKCl9KSk7WWV0LmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiBpc0Zpbml0ZSh0PU1hdGguZmxvb3IodCkpJiZ0PjA/SGV0KChmdW5jdGlvbihlKXtlLnNldEZ1bGxZZWFyKE1hdGguZmxvb3IoZS5nZXRGdWxsWWVhcigpL3QpKnQpLGUuc2V0TW9udGgoMCwxKSxlLnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKGUsbil7ZS5zZXRGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCkrbip0KX0pKTpudWxsfTt2YXIgWGV0PVlldCwkZXQ9SGV0KChmdW5jdGlvbih0KXt0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvRmV0fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0RhdGUoKS0xfSkpO2Z1bmN0aW9uIEtldCh0KXtyZXR1cm4gSGV0KChmdW5jdGlvbihlKXtlLnNldFVUQ0RhdGUoZS5nZXRVVENEYXRlKCktKGUuZ2V0VVRDRGF5KCkrNy10KSU3KSxlLnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpKzcqZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS9WZXR9KSl9dmFyIFpldD1LZXQoMCksSmV0PUtldCgxKTtLZXQoMiksS2V0KDMpO3ZhciBRZXQ9S2V0KDQpO0tldCg1KSxLZXQoNik7dmFyIHRudD1IZXQoKGZ1bmN0aW9uKHQpe3Quc2V0VVRDTW9udGgoMCwxKSx0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENGdWxsWWVhcih0LmdldFVUQ0Z1bGxZZWFyKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5nZXRVVENGdWxsWWVhcigpLXQuZ2V0VVRDRnVsbFllYXIoKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENGdWxsWWVhcigpfSkpO3RudC5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gaXNGaW5pdGUodD1NYXRoLmZsb29yKHQpKSYmdD4wP0hldCgoZnVuY3Rpb24oZSl7ZS5zZXRVVENGdWxsWWVhcihNYXRoLmZsb29yKGUuZ2V0VVRDRnVsbFllYXIoKS90KSp0KSxlLnNldFVUQ01vbnRoKDAsMSksZS5zZXRVVENIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbihlLG4pe2Uuc2V0VVRDRnVsbFllYXIoZS5nZXRVVENGdWxsWWVhcigpK24qdCl9KSk6bnVsbH07dmFyIGVudD10bnQ7ZnVuY3Rpb24gbm50KHQpe2lmKDA8PXQueSYmdC55PDEwMCl7dmFyIGU9bmV3IERhdGUoLTEsdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpO3JldHVybiBlLnNldEZ1bGxZZWFyKHQueSksZX1yZXR1cm4gbmV3IERhdGUodC55LHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKX1mdW5jdGlvbiBpbnQodCl7aWYoMDw9dC55JiZ0Lnk8MTAwKXt2YXIgZT1uZXcgRGF0ZShEYXRlLlVUQygtMSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCkpO3JldHVybiBlLnNldFVUQ0Z1bGxZZWFyKHQueSksZX1yZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEModC55LHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKSl9ZnVuY3Rpb24gcm50KHQpe3JldHVybnt5OnQsbTowLGQ6MSxIOjAsTTowLFM6MCxMOjB9fWZ1bmN0aW9uIG9udCh0KXt2YXIgZT10LmRhdGVUaW1lLG49dC5kYXRlLGk9dC50aW1lLHI9dC5wZXJpb2RzLG89dC5kYXlzLGE9dC5zaG9ydERheXMscz10Lm1vbnRocyxsPXQuc2hvcnRNb250aHMsYz1fbnQociksdT15bnQociksaD1fbnQobyksZD15bnQobykscD1fbnQoYSksZj15bnQoYSksbT1fbnQocyksZz15bnQocyksXz1fbnQobCkseT15bnQobCksdj17YTpmdW5jdGlvbiBiKHQpe3JldHVybiBhW3QuZ2V0RGF5KCldfSxBOmZ1bmN0aW9uIHgodCl7cmV0dXJuIG9bdC5nZXREYXkoKV19LGI6ZnVuY3Rpb24gdyh0KXtyZXR1cm4gbFt0LmdldE1vbnRoKCldfSxCOmZ1bmN0aW9uIFModCl7cmV0dXJuIHNbdC5nZXRNb250aCgpXX0sYzpudWxsLGQ6Qm50LGU6Qm50LGY6am50LEg6SG50LEk6Rm50LGo6Vm50LEw6VW50LG06R250LE06V250LHA6ZnVuY3Rpb24gTSh0KXtyZXR1cm4gclsrKHQuZ2V0SG91cnMoKT49MTIpXX0sUTp2aXQsczpiaXQsUzpxbnQsdTpZbnQsVTpYbnQsVjokbnQsdzpLbnQsVzpabnQseDpudWxsLFg6bnVsbCx5OkpudCxZOlFudCxaOnRpdCwiJSI6eWl0fSxFPXthOmZ1bmN0aW9uIFQodCl7cmV0dXJuIGFbdC5nZXRVVENEYXkoKV19LEE6ZnVuY3Rpb24gQyh0KXtyZXR1cm4gb1t0LmdldFVUQ0RheSgpXX0sYjpmdW5jdGlvbiBBKHQpe3JldHVybiBsW3QuZ2V0VVRDTW9udGgoKV19LEI6ZnVuY3Rpb24gayh0KXtyZXR1cm4gc1t0LmdldFVUQ01vbnRoKCldfSxjOm51bGwsZDplaXQsZTplaXQsZjphaXQsSDpuaXQsSTppaXQsajpyaXQsTDpvaXQsbTpzaXQsTTpsaXQscDpmdW5jdGlvbiBMKHQpe3JldHVybiByWysodC5nZXRVVENIb3VycygpPj0xMildfSxROnZpdCxzOmJpdCxTOmNpdCx1OnVpdCxVOmhpdCxWOmRpdCx3OnBpdCxXOmZpdCx4Om51bGwsWDpudWxsLHk6bWl0LFk6Z2l0LFo6X2l0LCIlIjp5aXR9LFA9e2E6ZnVuY3Rpb24gTih0LGUsbil7dmFyIGk9cC5leGVjKGUuc2xpY2UobikpO3JldHVybiBpPyh0Lnc9ZltpWzBdLnRvTG93ZXJDYXNlKCldLG4raVswXS5sZW5ndGgpOi0xfSxBOmZ1bmN0aW9uIEkodCxlLG4pe3ZhciBpPWguZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC53PWRbaVswXS50b0xvd2VyQ2FzZSgpXSxuK2lbMF0ubGVuZ3RoKTotMX0sYjpmdW5jdGlvbiBSKHQsZSxuKXt2YXIgaT1fLmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIGk/KHQubT15W2lbMF0udG9Mb3dlckNhc2UoKV0sbitpWzBdLmxlbmd0aCk6LTF9LEI6ZnVuY3Rpb24gTyh0LGUsbil7dmFyIGk9bS5leGVjKGUuc2xpY2UobikpO3JldHVybiBpPyh0Lm09Z1tpWzBdLnRvTG93ZXJDYXNlKCldLG4raVswXS5sZW5ndGgpOi0xfSxjOmZ1bmN0aW9uIHoodCxuLGkpe3JldHVybiBVKHQsZSxuLGkpfSxkOkFudCxlOkFudCxmOlJudCxIOkxudCxJOkxudCxqOmtudCxMOkludCxtOkNudCxNOlBudCxwOmZ1bmN0aW9uIEQodCxlLG4pe3ZhciBpPWMuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC5wPXVbaVswXS50b0xvd2VyQ2FzZSgpXSxuK2lbMF0ubGVuZ3RoKTotMX0sUTp6bnQsczpEbnQsUzpObnQsdTpibnQsVTp4bnQsVjp3bnQsdzp2bnQsVzpTbnQseDpmdW5jdGlvbiBCKHQsZSxpKXtyZXR1cm4gVSh0LG4sZSxpKX0sWDpmdW5jdGlvbiBIKHQsZSxuKXtyZXR1cm4gVSh0LGksZSxuKX0seTpFbnQsWTpNbnQsWjpUbnQsIiUiOk9udH07ZnVuY3Rpb24gRih0LGUpe3JldHVybiBmdW5jdGlvbihuKXt2YXIgaSxyLG8sYT1bXSxzPS0xLGw9MCxjPXQubGVuZ3RoO2ZvcihuIGluc3RhbmNlb2YgRGF0ZXx8KG49bmV3IERhdGUoK24pKTsrK3M8YzspMzc9PT10LmNoYXJDb2RlQXQocykmJihhLnB1c2godC5zbGljZShsLHMpKSxudWxsIT0ocj1obnRbaT10LmNoYXJBdCgrK3MpXSk/aT10LmNoYXJBdCgrK3MpOnI9ImUiPT09aT8iICI6IjAiLChvPWVbaV0pJiYoaT1vKG4scikpLGEucHVzaChpKSxsPXMrMSk7cmV0dXJuIGEucHVzaCh0LnNsaWNlKGwscykpLGEuam9pbigiIil9fWZ1bmN0aW9uIFYodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGkscixvPXJudCgxOTAwKTtpZihVKG8sdCxuKz0iIiwwKSE9bi5sZW5ndGgpcmV0dXJuIG51bGw7aWYoIlEiaW4gbylyZXR1cm4gbmV3IERhdGUoby5RKTtpZigicCJpbiBvJiYoby5IPW8uSCUxMisxMipvLnApLCJWImluIG8pe2lmKG8uVjwxfHxvLlY+NTMpcmV0dXJuIG51bGw7InciaW4gb3x8KG8udz0xKSwiWiJpbiBvPyhyPShpPWludChybnQoby55KSkpLmdldFVUQ0RheSgpLGk9cj40fHwwPT09cj9KZXQuY2VpbChpKTpKZXQoaSksaT0kZXQub2Zmc2V0KGksNyooby5WLTEpKSxvLnk9aS5nZXRVVENGdWxsWWVhcigpLG8ubT1pLmdldFVUQ01vbnRoKCksby5kPWkuZ2V0VVRDRGF0ZSgpKyhvLncrNiklNyk6KHI9KGk9ZShybnQoby55KSkpLmdldERheSgpLGk9cj40fHwwPT09cj9XZXQuY2VpbChpKTpXZXQoaSksaT1VZXQub2Zmc2V0KGksNyooby5WLTEpKSxvLnk9aS5nZXRGdWxsWWVhcigpLG8ubT1pLmdldE1vbnRoKCksby5kPWkuZ2V0RGF0ZSgpKyhvLncrNiklNyl9ZWxzZSgiVyJpbiBvfHwiVSJpbiBvKSYmKCJ3ImluIG98fChvLnc9InUiaW4gbz9vLnUlNzoiVyJpbiBvPzE6MCkscj0iWiJpbiBvP2ludChybnQoby55KSkuZ2V0VVRDRGF5KCk6ZShybnQoby55KSkuZ2V0RGF5KCksby5tPTAsby5kPSJXImluIG8/KG8udys2KSU3Kzcqby5XLShyKzUpJTc6by53Kzcqby5VLShyKzYpJTcpO3JldHVybiJaImluIG8/KG8uSCs9by5aLzEwMHwwLG8uTSs9by5aJTEwMCxpbnQobykpOmUobyl9fWZ1bmN0aW9uIFUodCxlLG4saSl7Zm9yKHZhciByLG8sYT0wLHM9ZS5sZW5ndGgsbD1uLmxlbmd0aDthPHM7KXtpZihpPj1sKXJldHVybi0xO2lmKDM3PT09KHI9ZS5jaGFyQ29kZUF0KGErKykpKXtpZihyPWUuY2hhckF0KGErKyksIShvPVBbciBpbiBobnQ/ZS5jaGFyQXQoYSsrKTpyXSl8fChpPW8odCxuLGkpKTwwKXJldHVybi0xfWVsc2UgaWYociE9bi5jaGFyQ29kZUF0KGkrKykpcmV0dXJuLTF9cmV0dXJuIGl9cmV0dXJuIHYueD1GKG4sdiksdi5YPUYoaSx2KSx2LmM9RihlLHYpLEUueD1GKG4sRSksRS5YPUYoaSxFKSxFLmM9RihlLEUpLHtmb3JtYXQ6ZnVuY3Rpb24odCl7dmFyIGU9Rih0Kz0iIix2KTtyZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlfSxwYXJzZTpmdW5jdGlvbih0KXt2YXIgZT1WKHQrPSIiLG5udCk7cmV0dXJuIGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZX0sdXRjRm9ybWF0OmZ1bmN0aW9uKHQpe3ZhciBlPUYodCs9IiIsRSk7cmV0dXJuIGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZX0sdXRjUGFyc2U6ZnVuY3Rpb24odCl7dmFyIGU9Vih0LGludCk7cmV0dXJuIGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZX19fXZhciBhbnQsc250LGxudCxjbnQsdW50LGhudD17Ii0iOiIiLF86IiAiLDA6IjAifSxkbnQ9L15ccypcZCsvLHBudD0vXiUvLGZudD0vW1xcXiQqKz98W1xdKCkue31dL2c7ZnVuY3Rpb24gbW50KHQsZSxuKXt2YXIgaT10PDA/Ii0iOiIiLHI9KGk/LXQ6dCkrIiIsbz1yLmxlbmd0aDtyZXR1cm4gaSsobzxuP25ldyBBcnJheShuLW8rMSkuam9pbihlKStyOnIpfWZ1bmN0aW9uIGdudCh0KXtyZXR1cm4gdC5yZXBsYWNlKGZudCwiXFwkJiIpfWZ1bmN0aW9uIF9udCh0KXtyZXR1cm4gbmV3IFJlZ0V4cCgiXig/OiIrdC5tYXAoZ250KS5qb2luKCJ8IikrIikiLCJpIil9ZnVuY3Rpb24geW50KHQpe2Zvcih2YXIgZT17fSxuPS0xLGk9dC5sZW5ndGg7KytuPGk7KWVbdFtuXS50b0xvd2VyQ2FzZSgpXT1uO3JldHVybiBlfWZ1bmN0aW9uIHZudCh0LGUsbil7dmFyIGk9ZG50LmV4ZWMoZS5zbGljZShuLG4rMSkpO3JldHVybiBpPyh0Lnc9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gYm50KHQsZSxuKXt2YXIgaT1kbnQuZXhlYyhlLnNsaWNlKG4sbisxKSk7cmV0dXJuIGk/KHQudT0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB4bnQodCxlLG4pe3ZhciBpPWRudC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5VPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHdudCh0LGUsbil7dmFyIGk9ZG50LmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0LlY9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gU250KHQsZSxuKXt2YXIgaT1kbnQuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQuVz0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBNbnQodCxlLG4pe3ZhciBpPWRudC5leGVjKGUuc2xpY2UobixuKzQpKTtyZXR1cm4gaT8odC55PStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEVudCh0LGUsbil7dmFyIGk9ZG50LmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0Lnk9K2lbMF0rKCtpWzBdPjY4PzE5MDA6MmUzKSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBUbnQodCxlLG4pe3ZhciBpPS9eKFopfChbKy1dXGRcZCkoPzo6PyhcZFxkKSk/Ly5leGVjKGUuc2xpY2UobixuKzYpKTtyZXR1cm4gaT8odC5aPWlbMV0/MDotKGlbMl0rKGlbM118fCIwMCIpKSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBDbnQodCxlLG4pe3ZhciBpPWRudC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5tPWlbMF0tMSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBBbnQodCxlLG4pe3ZhciBpPWRudC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5kPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGtudCh0LGUsbil7dmFyIGk9ZG50LmV4ZWMoZS5zbGljZShuLG4rMykpO3JldHVybiBpPyh0Lm09MCx0LmQ9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gTG50KHQsZSxuKXt2YXIgaT1kbnQuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIGk/KHQuSD0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBQbnQodCxlLG4pe3ZhciBpPWRudC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gaT8odC5NPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIE5udCh0LGUsbil7dmFyIGk9ZG50LmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBpPyh0LlM9K2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gSW50KHQsZSxuKXt2YXIgaT1kbnQuZXhlYyhlLnNsaWNlKG4sbiszKSk7cmV0dXJuIGk/KHQuTD0raVswXSxuK2lbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBSbnQodCxlLG4pe3ZhciBpPWRudC5leGVjKGUuc2xpY2UobixuKzYpKTtyZXR1cm4gaT8odC5MPU1hdGguZmxvb3IoaVswXS8xZTMpLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIE9udCh0LGUsbil7dmFyIGk9cG50LmV4ZWMoZS5zbGljZShuLG4rMSkpO3JldHVybiBpP24raVswXS5sZW5ndGg6LTF9ZnVuY3Rpb24gem50KHQsZSxuKXt2YXIgaT1kbnQuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gaT8odC5RPStpWzBdLG4raVswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIERudCh0LGUsbil7dmFyIGk9ZG50LmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIGk/KHQuUT0xZTMqK2lbMF0sbitpWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gQm50KHQsZSl7cmV0dXJuIG1udCh0LmdldERhdGUoKSxlLDIpfWZ1bmN0aW9uIEhudCh0LGUpe3JldHVybiBtbnQodC5nZXRIb3VycygpLGUsMil9ZnVuY3Rpb24gRm50KHQsZSl7cmV0dXJuIG1udCh0LmdldEhvdXJzKCklMTJ8fDEyLGUsMil9ZnVuY3Rpb24gVm50KHQsZSl7cmV0dXJuIG1udCgxK1VldC5jb3VudChYZXQodCksdCksZSwzKX1mdW5jdGlvbiBVbnQodCxlKXtyZXR1cm4gbW50KHQuZ2V0TWlsbGlzZWNvbmRzKCksZSwzKX1mdW5jdGlvbiBqbnQodCxlKXtyZXR1cm4gVW50KHQsZSkrIjAwMCJ9ZnVuY3Rpb24gR250KHQsZSl7cmV0dXJuIG1udCh0LmdldE1vbnRoKCkrMSxlLDIpfWZ1bmN0aW9uIFdudCh0LGUpe3JldHVybiBtbnQodC5nZXRNaW51dGVzKCksZSwyKX1mdW5jdGlvbiBxbnQodCxlKXtyZXR1cm4gbW50KHQuZ2V0U2Vjb25kcygpLGUsMil9ZnVuY3Rpb24gWW50KHQpe3ZhciBlPXQuZ2V0RGF5KCk7cmV0dXJuIDA9PT1lPzc6ZX1mdW5jdGlvbiBYbnQodCxlKXtyZXR1cm4gbW50KEdldC5jb3VudChYZXQodCksdCksZSwyKX1mdW5jdGlvbiAkbnQodCxlKXt2YXIgbj10LmdldERheSgpO3JldHVybiB0PW4+PTR8fDA9PT1uP3FldCh0KTpxZXQuY2VpbCh0KSxtbnQocWV0LmNvdW50KFhldCh0KSx0KSsoND09PVhldCh0KS5nZXREYXkoKSksZSwyKX1mdW5jdGlvbiBLbnQodCl7cmV0dXJuIHQuZ2V0RGF5KCl9ZnVuY3Rpb24gWm50KHQsZSl7cmV0dXJuIG1udChXZXQuY291bnQoWGV0KHQpLHQpLGUsMil9ZnVuY3Rpb24gSm50KHQsZSl7cmV0dXJuIG1udCh0LmdldEZ1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gUW50KHQsZSl7cmV0dXJuIG1udCh0LmdldEZ1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24gdGl0KHQpe3ZhciBlPXQuZ2V0VGltZXpvbmVPZmZzZXQoKTtyZXR1cm4oZT4wPyItIjooZSo9LTEsIisiKSkrbW50KGUvNjB8MCwiMCIsMikrbW50KGUlNjAsIjAiLDIpfWZ1bmN0aW9uIGVpdCh0LGUpe3JldHVybiBtbnQodC5nZXRVVENEYXRlKCksZSwyKX1mdW5jdGlvbiBuaXQodCxlKXtyZXR1cm4gbW50KHQuZ2V0VVRDSG91cnMoKSxlLDIpfWZ1bmN0aW9uIGlpdCh0LGUpe3JldHVybiBtbnQodC5nZXRVVENIb3VycygpJTEyfHwxMixlLDIpfWZ1bmN0aW9uIHJpdCh0LGUpe3JldHVybiBtbnQoMSskZXQuY291bnQoZW50KHQpLHQpLGUsMyl9ZnVuY3Rpb24gb2l0KHQsZSl7cmV0dXJuIG1udCh0LmdldFVUQ01pbGxpc2Vjb25kcygpLGUsMyl9ZnVuY3Rpb24gYWl0KHQsZSl7cmV0dXJuIG9pdCh0LGUpKyIwMDAifWZ1bmN0aW9uIHNpdCh0LGUpe3JldHVybiBtbnQodC5nZXRVVENNb250aCgpKzEsZSwyKX1mdW5jdGlvbiBsaXQodCxlKXtyZXR1cm4gbW50KHQuZ2V0VVRDTWludXRlcygpLGUsMil9ZnVuY3Rpb24gY2l0KHQsZSl7cmV0dXJuIG1udCh0LmdldFVUQ1NlY29uZHMoKSxlLDIpfWZ1bmN0aW9uIHVpdCh0KXt2YXIgZT10LmdldFVUQ0RheSgpO3JldHVybiAwPT09ZT83OmV9ZnVuY3Rpb24gaGl0KHQsZSl7cmV0dXJuIG1udChaZXQuY291bnQoZW50KHQpLHQpLGUsMil9ZnVuY3Rpb24gZGl0KHQsZSl7dmFyIG49dC5nZXRVVENEYXkoKTtyZXR1cm4gdD1uPj00fHwwPT09bj9RZXQodCk6UWV0LmNlaWwodCksbW50KFFldC5jb3VudChlbnQodCksdCkrKDQ9PT1lbnQodCkuZ2V0VVRDRGF5KCkpLGUsMil9ZnVuY3Rpb24gcGl0KHQpe3JldHVybiB0LmdldFVUQ0RheSgpfWZ1bmN0aW9uIGZpdCh0LGUpe3JldHVybiBtbnQoSmV0LmNvdW50KGVudCh0KSx0KSxlLDIpfWZ1bmN0aW9uIG1pdCh0LGUpe3JldHVybiBtbnQodC5nZXRVVENGdWxsWWVhcigpJTEwMCxlLDIpfWZ1bmN0aW9uIGdpdCh0LGUpe3JldHVybiBtbnQodC5nZXRVVENGdWxsWWVhcigpJTFlNCxlLDQpfWZ1bmN0aW9uIF9pdCgpe3JldHVybiIrMDAwMCJ9ZnVuY3Rpb24geWl0KCl7cmV0dXJuIiUifWZ1bmN0aW9uIHZpdCh0KXtyZXR1cm4rdH1mdW5jdGlvbiBiaXQodCl7cmV0dXJuIE1hdGguZmxvb3IoK3QvMWUzKX1mdW5jdGlvbiB4aXQodCl7cmV0dXJuIGFudD1vbnQodCksc250PWFudC5mb3JtYXQsbG50PWFudC5wYXJzZSxjbnQ9YW50LnV0Y0Zvcm1hdCx1bnQ9YW50LnV0Y1BhcnNlLGFudH14aXQoe2RhdGVUaW1lOiIleCwgJVgiLGRhdGU6IiUtbS8lLWQvJVkiLHRpbWU6IiUtSTolTTolUyAlcCIscGVyaW9kczpbIkFNIiwiUE0iXSxkYXlzOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxzaG9ydERheXM6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxtb250aHM6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLHNob3J0TW9udGhzOlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl19KTt2YXIgd2l0PSIlWS0lbS0lZFQlSDolTTolUy4lTFoiO3ZhciBTaXQ9RGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmc/ZnVuY3Rpb24gTWl0KHQpe3JldHVybiB0LnRvSVNPU3RyaW5nKCl9OmNudCh3aXQpO3ZhciBFaXQsVGl0LENpdD0rbmV3IERhdGUoIjIwMDAtMDEtMDFUMDA6MDA6MDAuMDAwWiIpP2Z1bmN0aW9uIEFpdCh0KXt2YXIgZT1uZXcgRGF0ZSh0KTtyZXR1cm4gaXNOYU4oZSk/bnVsbDplfTp1bnQod2l0KSxraXQ9MCxMaXQ9MCxQaXQ9MCxOaXQ9MCxJaXQ9MCxSaXQ9MCxPaXQ9Im9iamVjdCI9PXR5cGVvZiBwZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlOkRhdGUseml0PSJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOmZ1bmN0aW9uKHQpe3NldFRpbWVvdXQodCwxNyl9O2Z1bmN0aW9uIERpdCgpe3JldHVybiBJaXR8fCh6aXQoQml0KSxJaXQ9T2l0Lm5vdygpK1JpdCl9ZnVuY3Rpb24gQml0KCl7SWl0PTB9ZnVuY3Rpb24gSGl0KCl7dGhpcy5fY2FsbD10aGlzLl90aW1lPXRoaXMuX25leHQ9bnVsbH1mdW5jdGlvbiBGaXQodCxlLG4pe3ZhciBpPW5ldyBIaXQ7cmV0dXJuIGkucmVzdGFydCh0LGUsbiksaX1mdW5jdGlvbiBWaXQoKXtEaXQoKSwrK2tpdDtmb3IodmFyIHQsZT1FaXQ7ZTspKHQ9SWl0LWUuX3RpbWUpPj0wJiZlLl9jYWxsLmNhbGwobnVsbCx0KSxlPWUuX25leHQ7LS1raXR9ZnVuY3Rpb24gVWl0KCl7SWl0PShOaXQ9T2l0Lm5vdygpKStSaXQsa2l0PUxpdD0wO3RyeXtWaXQoKX1maW5hbGx5e2tpdD0wLChmdW5jdGlvbiB0KCl7dmFyIHQsZSxuPUVpdCxpPTEvMDtmb3IoO247KW4uX2NhbGw/KGk+bi5fdGltZSYmKGk9bi5fdGltZSksdD1uLG49bi5fbmV4dCk6KGU9bi5fbmV4dCxuLl9uZXh0PW51bGwsbj10P3QuX25leHQ9ZTpFaXQ9ZSk7VGl0PXQsR2l0KGkpfSkoKSxJaXQ9MH19ZnVuY3Rpb24gaml0KCl7dmFyIHQ9T2l0Lm5vdygpLGU9dC1OaXQ7ZT4xZTMmJihSaXQtPWUsTml0PXQpfWZ1bmN0aW9uIEdpdCh0KXtraXR8fChMaXQmJihMaXQ9Y2xlYXJUaW1lb3V0KExpdCkpLHQtSWl0PjI0Pyh0PDEvMCYmKExpdD1zZXRUaW1lb3V0KFVpdCx0LU9pdC5ub3coKS1SaXQpKSxQaXQmJihQaXQ9Y2xlYXJJbnRlcnZhbChQaXQpKSk6KFBpdHx8KE5pdD1PaXQubm93KCksUGl0PXNldEludGVydmFsKGppdCwxZTMpKSxraXQ9MSx6aXQoVWl0KSkpfUhpdC5wcm90b3R5cGU9Rml0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6SGl0LHJlc3RhcnQ6ZnVuY3Rpb24odCxlLG4pe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoImNhbGxiYWNrIGlzIG5vdCBhIGZ1bmN0aW9uIik7bj0obnVsbD09bj9EaXQoKTorbikrKG51bGw9PWU/MDorZSksdGhpcy5fbmV4dHx8VGl0PT09dGhpc3x8KFRpdD9UaXQuX25leHQ9dGhpczpFaXQ9dGhpcyxUaXQ9dGhpcyksdGhpcy5fY2FsbD10LHRoaXMuX3RpbWU9bixHaXQoKX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuX2NhbGwmJih0aGlzLl9jYWxsPW51bGwsdGhpcy5fdGltZT0xLzAsR2l0KCkpfX07dmFyIFdpdD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIscWl0PXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDpXaXQseGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHhtbDoiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8ifTtmdW5jdGlvbiBZaXQodCl7dmFyIGU9dCs9IiIsbj1lLmluZGV4T2YoIjoiKTtyZXR1cm4gbj49MCYmInhtbG5zIiE9PShlPXQuc2xpY2UoMCxuKSkmJih0PXQuc2xpY2UobisxKSkscWl0Lmhhc093blByb3BlcnR5KGUpP3tzcGFjZTpxaXRbZV0sbG9jYWw6dH06dH1mdW5jdGlvbiBYaXQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vd25lckRvY3VtZW50LG49dGhpcy5uYW1lc3BhY2VVUkk7cmV0dXJuIG49PT1XaXQmJmUuZG9jdW1lbnRFbGVtZW50Lm5hbWVzcGFjZVVSST09PVdpdD9lLmNyZWF0ZUVsZW1lbnQodCk6ZS5jcmVhdGVFbGVtZW50TlMobix0KX19ZnVuY3Rpb24gJGl0KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIEtpdCh0KXt2YXIgZT1ZaXQodCk7cmV0dXJuKGUubG9jYWw/JGl0OlhpdCkoZSl9ZnVuY3Rpb24gWml0KCl7fWZ1bmN0aW9uIEppdCh0KXtyZXR1cm4gbnVsbD09dD9aaXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKHQpfX1mdW5jdGlvbiBRaXQoKXtyZXR1cm5bXX1mdW5jdGlvbiB0cnQodCl7cmV0dXJuIG51bGw9PXQ/UWl0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbCh0KX19ZnVuY3Rpb24gZXJ0KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hdGNoZXModCl9fWZ1bmN0aW9uIG5ydCh0KXtyZXR1cm4gbmV3IEFycmF5KHQubGVuZ3RoKX1mdW5jdGlvbiBpcnQodCxlKXt0aGlzLm93bmVyRG9jdW1lbnQ9dC5vd25lckRvY3VtZW50LHRoaXMubmFtZXNwYWNlVVJJPXQubmFtZXNwYWNlVVJJLHRoaXMuX25leHQ9bnVsbCx0aGlzLl9wYXJlbnQ9dCx0aGlzLl9fZGF0YV9fPWV9aXJ0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6aXJ0LGFwcGVuZENoaWxkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKHQsdGhpcy5fbmV4dCl9LGluc2VydEJlZm9yZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKHQsZSl9LHF1ZXJ5U2VsZWN0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yKHQpfSxxdWVyeVNlbGVjdG9yQWxsOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3RvckFsbCh0KX19O2Z1bmN0aW9uIHJydCh0LGUsbixpLHIsbyl7Zm9yKHZhciBhLHM9MCxsPWUubGVuZ3RoLGM9by5sZW5ndGg7czxjOysrcykoYT1lW3NdKT8oYS5fX2RhdGFfXz1vW3NdLGlbc109YSk6bltzXT1uZXcgaXJ0KHQsb1tzXSk7Zm9yKDtzPGw7KytzKShhPWVbc10pJiYocltzXT1hKX1mdW5jdGlvbiBvcnQodCxlLG4saSxyLG8sYSl7dmFyIHMsbCxjLHU9e30saD1lLmxlbmd0aCxkPW8ubGVuZ3RoLHA9bmV3IEFycmF5KGgpO2ZvcihzPTA7czxoOysrcykobD1lW3NdKSYmKHBbc109Yz0iJCIrYS5jYWxsKGwsbC5fX2RhdGFfXyxzLGUpLGMgaW4gdT9yW3NdPWw6dVtjXT1sKTtmb3Iocz0wO3M8ZDsrK3MpKGw9dVtjPSIkIithLmNhbGwodCxvW3NdLHMsbyldKT8oaVtzXT1sLGwuX19kYXRhX189b1tzXSx1W2NdPW51bGwpOm5bc109bmV3IGlydCh0LG9bc10pO2ZvcihzPTA7czxoOysrcykobD1lW3NdKSYmdVtwW3NdXT09PWwmJihyW3NdPWwpfWZ1bmN0aW9uIGFydCh0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6dD49ZT8wOk5hTn1mdW5jdGlvbiBzcnQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fWZ1bmN0aW9uIGxydCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIGNydCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlKHQsZSl9fWZ1bmN0aW9uIHVydCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLGUpfX1mdW5jdGlvbiBocnQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpOnRoaXMuc2V0QXR0cmlidXRlKHQsbil9fWZ1bmN0aW9uIGRydCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PW4/dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpOnRoaXMuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLG4pfX1mdW5jdGlvbiBwcnQodCl7cmV0dXJuIHQub3duZXJEb2N1bWVudCYmdC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx0LmRvY3VtZW50JiZ0fHx0LmRlZmF1bHRWaWV3fWZ1bmN0aW9uIGZydCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpfX1mdW5jdGlvbiBtcnQodCxlLG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxlLG4pfX1mdW5jdGlvbiBncnQodCxlLG4pe3JldHVybiBmdW5jdGlvbigpe3ZhciBpPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PWk/dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KTp0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQsaSxuKX19ZnVuY3Rpb24gX3J0KHQsZSl7cmV0dXJuIHQuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShlKXx8cHJ0KHQpLmdldENvbXB1dGVkU3R5bGUodCxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKGUpfWZ1bmN0aW9uIHlydCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtkZWxldGUgdGhpc1t0XX19ZnVuY3Rpb24gdnJ0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpc1t0XT1lfX1mdW5jdGlvbiBicnQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP2RlbGV0ZSB0aGlzW3RdOnRoaXNbdF09bn19ZnVuY3Rpb24geHJ0KHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKX1mdW5jdGlvbiB3cnQodCl7cmV0dXJuIHQuY2xhc3NMaXN0fHxuZXcgU3J0KHQpfWZ1bmN0aW9uIFNydCh0KXt0aGlzLl9ub2RlPXQsdGhpcy5fbmFtZXM9eHJ0KHQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9ZnVuY3Rpb24gTXJ0KHQsZSl7Zm9yKHZhciBuPXdydCh0KSxpPS0xLHI9ZS5sZW5ndGg7KytpPHI7KW4uYWRkKGVbaV0pfWZ1bmN0aW9uIEVydCh0LGUpe2Zvcih2YXIgbj13cnQodCksaT0tMSxyPWUubGVuZ3RoOysraTxyOyluLnJlbW92ZShlW2ldKX1mdW5jdGlvbiBUcnQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7TXJ0KHRoaXMsdCl9fWZ1bmN0aW9uIENydCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtFcnQodGhpcyx0KX19ZnVuY3Rpb24gQXJ0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7KGUuYXBwbHkodGhpcyxhcmd1bWVudHMpP01ydDpFcnQpKHRoaXMsdCl9fWZ1bmN0aW9uIGtydCgpe3RoaXMudGV4dENvbnRlbnQ9IiJ9ZnVuY3Rpb24gTHJ0KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH19ZnVuY3Rpb24gUHJ0KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMudGV4dENvbnRlbnQ9bnVsbD09ZT8iIjplfX1mdW5jdGlvbiBOcnQoKXt0aGlzLmlubmVySFRNTD0iIn1mdW5jdGlvbiBJcnQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5pbm5lckhUTUw9dH19ZnVuY3Rpb24gUnJ0KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuaW5uZXJIVE1MPW51bGw9PWU/IiI6ZX19ZnVuY3Rpb24gT3J0KCl7dGhpcy5uZXh0U2libGluZyYmdGhpcy5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHRoaXMpfWZ1bmN0aW9uIHpydCgpe3RoaXMucHJldmlvdXNTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMsdGhpcy5wYXJlbnROb2RlLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIERydCgpe3JldHVybiBudWxsfWZ1bmN0aW9uIEJydCgpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTt0JiZ0LnJlbW92ZUNoaWxkKHRoaXMpfWZ1bmN0aW9uIEhydCgpe3ZhciB0PXRoaXMuY2xvbmVOb2RlKCExKSxlPXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gZT9lLmluc2VydEJlZm9yZSh0LHRoaXMubmV4dFNpYmxpbmcpOnR9ZnVuY3Rpb24gRnJ0KCl7dmFyIHQ9dGhpcy5jbG9uZU5vZGUoITApLGU9dGhpcy5wYXJlbnROb2RlO3JldHVybiBlP2UuaW5zZXJ0QmVmb3JlKHQsdGhpcy5uZXh0U2libGluZyk6dH1TcnQucHJvdG90eXBlPXthZGQ6ZnVuY3Rpb24odCl7dGhpcy5fbmFtZXMuaW5kZXhPZih0KTwwJiYodGhpcy5fbmFtZXMucHVzaCh0KSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbmFtZXMuaW5kZXhPZih0KTtlPj0wJiYodGhpcy5fbmFtZXMuc3BsaWNlKGUsMSksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix0aGlzLl9uYW1lcy5qb2luKCIgIikpKX0sY29udGFpbnM6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX25hbWVzLmluZGV4T2YodCk+PTB9fTt2YXIgVnJ0PXt9OyJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJigib25tb3VzZWVudGVyImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudHx8KFZydD17bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9KSk7ZnVuY3Rpb24gVXJ0KHQsZSxuKXtyZXR1cm4gdD1qcnQodCxlLG4pLGZ1bmN0aW9uKGUpe3ZhciBuPWUucmVsYXRlZFRhcmdldDtuJiYobj09PXRoaXN8fDgmbi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0aGlzKSl8fHQuY2FsbCh0aGlzLGUpfX1mdW5jdGlvbiBqcnQodCxlLG4pe3JldHVybiBmdW5jdGlvbihpKXt0cnl7dC5jYWxsKHRoaXMsdGhpcy5fX2RhdGFfXyxlLG4pfWZpbmFsbHl7fX19ZnVuY3Rpb24gR3J0KHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlPSIiLG49dC5pbmRleE9mKCIuIik7cmV0dXJuIG4+PTAmJihlPXQuc2xpY2UobisxKSx0PXQuc2xpY2UoMCxuKSkse3R5cGU6dCxuYW1lOmV9fSkpfWZ1bmN0aW9uIFdydCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9fb247aWYoZSl7Zm9yKHZhciBuLGk9MCxyPS0xLG89ZS5sZW5ndGg7aTxvOysraSluPWVbaV0sdC50eXBlJiZuLnR5cGUhPT10LnR5cGV8fG4ubmFtZSE9PXQubmFtZT9lWysrcl09bjp0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIobi50eXBlLG4ubGlzdGVuZXIsbi5jYXB0dXJlKTsrK3I/ZS5sZW5ndGg9cjpkZWxldGUgdGhpcy5fX29ufX19ZnVuY3Rpb24gcXJ0KHQsZSxuKXt2YXIgaT1WcnQuaGFzT3duUHJvcGVydHkodC50eXBlKT9VcnQ6anJ0O3JldHVybiBmdW5jdGlvbihyLG8sYSl7dmFyIHMsbD10aGlzLl9fb24sYz1pKGUsbyxhKTtpZihsKWZvcih2YXIgdT0wLGg9bC5sZW5ndGg7dTxoOysrdSlpZigocz1sW3VdKS50eXBlPT09dC50eXBlJiZzLm5hbWU9PT10Lm5hbWUpcmV0dXJuIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihzLnR5cGUscy5saXN0ZW5lcixzLmNhcHR1cmUpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihzLnR5cGUscy5saXN0ZW5lcj1jLHMuY2FwdHVyZT1uKSx2b2lkKHMudmFsdWU9ZSk7dGhpcy5hZGRFdmVudExpc3RlbmVyKHQudHlwZSxjLG4pLHM9e3R5cGU6dC50eXBlLG5hbWU6dC5uYW1lLHZhbHVlOmUsbGlzdGVuZXI6YyxjYXB0dXJlOm59LGw/bC5wdXNoKHMpOnRoaXMuX19vbj1bc119fWZ1bmN0aW9uIFlydCh0LGUsbil7dmFyIGk9cHJ0KHQpLHI9aS5DdXN0b21FdmVudDsiZnVuY3Rpb24iPT10eXBlb2Ygcj9yPW5ldyByKGUsbik6KHI9aS5kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSxuPyhyLmluaXRFdmVudChlLG4uYnViYmxlcyxuLmNhbmNlbGFibGUpLHIuZGV0YWlsPW4uZGV0YWlsKTpyLmluaXRFdmVudChlLCExLCExKSksdC5kaXNwYXRjaEV2ZW50KHIpfWZ1bmN0aW9uIFhydCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBZcnQodGhpcyx0LGUpfX1mdW5jdGlvbiAkcnQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gWXJ0KHRoaXMsdCxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fXZhciBLcnQ9W251bGxdO2Z1bmN0aW9uIFpydCh0LGUpe3RoaXMuX2dyb3Vwcz10LHRoaXMuX3BhcmVudHM9ZX1mdW5jdGlvbiBKcnQoKXtyZXR1cm4gbmV3IFpydChbW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF1dLEtydCl9WnJ0LnByb3RvdHlwZT1KcnQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpacnQsc2VsZWN0OmZ1bmN0aW9uIFFydCh0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9Sml0KHQpKTtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49ZS5sZW5ndGgsaT1uZXcgQXJyYXkobikscj0wO3I8bjsrK3IpZm9yKHZhciBvLGEscz1lW3JdLGw9cy5sZW5ndGgsYz1pW3JdPW5ldyBBcnJheShsKSx1PTA7dTxsOysrdSkobz1zW3VdKSYmKGE9dC5jYWxsKG8sby5fX2RhdGFfXyx1LHMpKSYmKCJfX2RhdGFfXyJpbiBvJiYoYS5fX2RhdGFfXz1vLl9fZGF0YV9fKSxjW3VdPWEpO3JldHVybiBuZXcgWnJ0KGksdGhpcy5fcGFyZW50cyl9LHNlbGVjdEFsbDpmdW5jdGlvbiB0b3QodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PXRydCh0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9W10scj1bXSxvPTA7bzxuOysrbylmb3IodmFyIGEscz1lW29dLGw9cy5sZW5ndGgsYz0wO2M8bDsrK2MpKGE9c1tjXSkmJihpLnB1c2godC5jYWxsKGEsYS5fX2RhdGFfXyxjLHMpKSxyLnB1c2goYSkpO3JldHVybiBuZXcgWnJ0KGkscil9LGZpbHRlcjpmdW5jdGlvbiBlb3QodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PWVydCh0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWZvcih2YXIgbyxhPWVbcl0scz1hLmxlbmd0aCxsPWlbcl09W10sYz0wO2M8czsrK2MpKG89YVtjXSkmJnQuY2FsbChvLG8uX19kYXRhX18sYyxhKSYmbC5wdXNoKG8pO3JldHVybiBuZXcgWnJ0KGksdGhpcy5fcGFyZW50cyl9LGRhdGE6ZnVuY3Rpb24gbm90KHQsZSl7aWYoIXQpcmV0dXJuIGY9bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSx1PS0xLHRoaXMuZWFjaCgoZnVuY3Rpb24odCl7ZlsrK3VdPXR9KSksZjt2YXIgbj1lP29ydDpycnQsaT10aGlzLl9wYXJlbnRzLHI9dGhpcy5fZ3JvdXBzOyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD0oZnVuY3Rpb24gbyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KSh0KSk7Zm9yKHZhciBhPXIubGVuZ3RoLHM9bmV3IEFycmF5KGEpLGw9bmV3IEFycmF5KGEpLGM9bmV3IEFycmF5KGEpLHU9MDt1PGE7Kyt1KXt2YXIgaD1pW3VdLGQ9clt1XSxwPWQubGVuZ3RoLGY9dC5jYWxsKGgsaCYmaC5fX2RhdGFfXyx1LGkpLG09Zi5sZW5ndGgsZz1sW3VdPW5ldyBBcnJheShtKSxfPXNbdV09bmV3IEFycmF5KG0pO24oaCxkLGcsXyxjW3VdPW5ldyBBcnJheShwKSxmLGUpO2Zvcih2YXIgeSx2LGI9MCx4PTA7YjxtOysrYilpZih5PWdbYl0pe2ZvcihiPj14JiYoeD1iKzEpOyEodj1fW3hdKSYmKyt4PG07KTt5Ll9uZXh0PXZ8fG51bGx9fXJldHVybihzPW5ldyBacnQocyxpKSkuX2VudGVyPWwscy5fZXhpdD1jLHN9LGVudGVyOmZ1bmN0aW9uIGlvdCgpe3JldHVybiBuZXcgWnJ0KHRoaXMuX2VudGVyfHx0aGlzLl9ncm91cHMubWFwKG5ydCksdGhpcy5fcGFyZW50cyl9LGV4aXQ6ZnVuY3Rpb24gcm90KCl7cmV0dXJuIG5ldyBacnQodGhpcy5fZXhpdHx8dGhpcy5fZ3JvdXBzLm1hcChucnQpLHRoaXMuX3BhcmVudHMpfSxqb2luOmZ1bmN0aW9uIG9vdCh0LGUsbil7dmFyIGk9dGhpcy5lbnRlcigpLHI9dGhpcyxvPXRoaXMuZXhpdCgpO3JldHVybiBpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3QoaSk6aS5hcHBlbmQodCsiIiksbnVsbCE9ZSYmKHI9ZShyKSksbnVsbD09bj9vLnJlbW92ZSgpOm4obyksaSYmcj9pLm1lcmdlKHIpLm9yZGVyKCk6cn0sbWVyZ2U6ZnVuY3Rpb24gYW90KHQpe2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj10Ll9ncm91cHMsaT1lLmxlbmd0aCxyPU1hdGgubWluKGksbi5sZW5ndGgpLG89bmV3IEFycmF5KGkpLGE9MDthPHI7KythKWZvcih2YXIgcyxsPWVbYV0sYz1uW2FdLHU9bC5sZW5ndGgsaD1vW2FdPW5ldyBBcnJheSh1KSxkPTA7ZDx1OysrZCkocz1sW2RdfHxjW2RdKSYmKGhbZF09cyk7Zm9yKDthPGk7KythKW9bYV09ZVthXTtyZXR1cm4gbmV3IFpydChvLHRoaXMuX3BhcmVudHMpfSxvcmRlcjpmdW5jdGlvbiBzb3QoKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLGU9LTEsbj10Lmxlbmd0aDsrK2U8bjspZm9yKHZhciBpLHI9dFtlXSxvPXIubGVuZ3RoLTEsYT1yW29dOy0tbz49MDspKGk9cltvXSkmJihhJiY0XmkuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYSkmJmEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaSxhKSxhPWkpO3JldHVybiB0aGlzfSxzb3J0OmZ1bmN0aW9uIGxvdCh0KXtmdW5jdGlvbiBlKGUsbil7cmV0dXJuIGUmJm4/dChlLl9fZGF0YV9fLG4uX19kYXRhX18pOiFlLSFufXR8fCh0PWFydCk7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxpPW4ubGVuZ3RoLHI9bmV3IEFycmF5KGkpLG89MDtvPGk7KytvKXtmb3IodmFyIGEscz1uW29dLGw9cy5sZW5ndGgsYz1yW29dPW5ldyBBcnJheShsKSx1PTA7dTxsOysrdSkoYT1zW3VdKSYmKGNbdV09YSk7Yy5zb3J0KGUpfXJldHVybiBuZXcgWnJ0KHIsdGhpcy5fcGFyZW50cykub3JkZXIoKX0sY2FsbDpmdW5jdGlvbiBjb3QoKXt2YXIgdD1hcmd1bWVudHNbMF07cmV0dXJuIGFyZ3VtZW50c1swXT10aGlzLHQuYXBwbHkobnVsbCxhcmd1bWVudHMpLHRoaXN9LG5vZGVzOmZ1bmN0aW9uIHVvdCgpe3ZhciB0PW5ldyBBcnJheSh0aGlzLnNpemUoKSksZT0tMTtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe3RbKytlXT10aGlzfSkpLHR9LG5vZGU6ZnVuY3Rpb24gaG90KCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxlPTAsbj10Lmxlbmd0aDtlPG47KytlKWZvcih2YXIgaT10W2VdLHI9MCxvPWkubGVuZ3RoO3I8bzsrK3Ipe3ZhciBhPWlbcl07aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH0sc2l6ZTpmdW5jdGlvbiBkb3QoKXt2YXIgdD0wO3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7Kyt0fSkpLHR9LGVtcHR5OmZ1bmN0aW9uIHBvdCgpe3JldHVybiF0aGlzLm5vZGUoKX0sZWFjaDpmdW5jdGlvbiBmb3QodCl7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPTAsaT1lLmxlbmd0aDtuPGk7KytuKWZvcih2YXIgcixvPWVbbl0sYT0wLHM9by5sZW5ndGg7YTxzOysrYSkocj1vW2FdKSYmdC5jYWxsKHIsci5fX2RhdGFfXyxhLG8pO3JldHVybiB0aGlzfSxhdHRyOmZ1bmN0aW9uIG1vdCh0LGUpe3ZhciBuPVlpdCh0KTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe3ZhciBpPXRoaXMubm9kZSgpO3JldHVybiBuLmxvY2FsP2kuZ2V0QXR0cmlidXRlTlMobi5zcGFjZSxuLmxvY2FsKTppLmdldEF0dHJpYnV0ZShuKX1yZXR1cm4gdGhpcy5lYWNoKChudWxsPT1lP24ubG9jYWw/bHJ0OnNydDoiZnVuY3Rpb24iPT10eXBlb2YgZT9uLmxvY2FsP2RydDpocnQ6bi5sb2NhbD91cnQ6Y3J0KShuLGUpKX0sc3R5bGU6ZnVuY3Rpb24gZ290KHQsZSxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09ZT9mcnQ6ImZ1bmN0aW9uIj09dHlwZW9mIGU/Z3J0Om1ydCkodCxlLG51bGw9PW4/IiI6bikpOl9ydCh0aGlzLm5vZGUoKSx0KX0scHJvcGVydHk6ZnVuY3Rpb24gX290KHQsZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PWU/eXJ0OiJmdW5jdGlvbiI9PXR5cGVvZiBlP2JydDp2cnQpKHQsZSkpOnRoaXMubm9kZSgpW3RdfSxjbGFzc2VkOmZ1bmN0aW9uIHlvdCh0LGUpe3ZhciBuPXhydCh0KyIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgaT13cnQodGhpcy5ub2RlKCkpLHI9LTEsbz1uLmxlbmd0aDsrK3I8bzspaWYoIWkuY29udGFpbnMobltyXSkpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGU/QXJ0OmU/VHJ0OkNydCkobixlKSl9LHRleHQ6ZnVuY3Rpb24gdm90KHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChudWxsPT10P2tydDooImZ1bmN0aW9uIj09dHlwZW9mIHQ/UHJ0OkxydCkodCkpOnRoaXMubm9kZSgpLnRleHRDb250ZW50fSxodG1sOmZ1bmN0aW9uIGJvdCh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD9OcnQ6KCJmdW5jdGlvbiI9PXR5cGVvZiB0P1JydDpJcnQpKHQpKTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9LHJhaXNlOmZ1bmN0aW9uIHhvdCgpe3JldHVybiB0aGlzLmVhY2goT3J0KX0sbG93ZXI6ZnVuY3Rpb24gd290KCl7cmV0dXJuIHRoaXMuZWFjaCh6cnQpfSxhcHBlbmQ6ZnVuY3Rpb24gU290KHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6S2l0KHQpO3JldHVybiB0aGlzLnNlbGVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcHBlbmRDaGlsZChlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9KSl9LGluc2VydDpmdW5jdGlvbiBNb3QodCxlKXt2YXIgbj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OktpdCh0KSxpPW51bGw9PWU/RHJ0OiJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6Sml0KGUpO3JldHVybiB0aGlzLnNlbGVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnNlcnRCZWZvcmUobi5hcHBseSh0aGlzLGFyZ3VtZW50cyksaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fG51bGwpfSkpfSxyZW1vdmU6ZnVuY3Rpb24gRW90KCl7cmV0dXJuIHRoaXMuZWFjaChCcnQpfSxjbG9uZTpmdW5jdGlvbiBUb3QodCl7cmV0dXJuIHRoaXMuc2VsZWN0KHQ/RnJ0OkhydCl9LGRhdHVtOmZ1bmN0aW9uIENvdCh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLnByb3BlcnR5KCJfX2RhdGFfXyIsdCk6dGhpcy5ub2RlKCkuX19kYXRhX199LG9uOmZ1bmN0aW9uIEFvdCh0LGUsbil7dmFyIGkscixvPUdydCh0KyIiKSxhPW8ubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7Zm9yKHM9ZT9xcnQ6V3J0LG51bGw9PW4mJihuPSExKSxpPTA7aTxhOysraSl0aGlzLmVhY2gocyhvW2ldLGUsbikpO3JldHVybiB0aGlzfXZhciBzPXRoaXMubm9kZSgpLl9fb247aWYocylmb3IodmFyIGwsYz0wLHU9cy5sZW5ndGg7Yzx1OysrYylmb3IoaT0wLGw9c1tjXTtpPGE7KytpKWlmKChyPW9baV0pLnR5cGU9PT1sLnR5cGUmJnIubmFtZT09PWwubmFtZSlyZXR1cm4gbC52YWx1ZX0sZGlzcGF0Y2g6ZnVuY3Rpb24ga290KHQsZSl7cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGU/JHJ0OlhydCkodCxlKSl9fTt2YXIgTG90PXt2YWx1ZTpmdW5jdGlvbigpe319O2Z1bmN0aW9uIFBvdCgpe2Zvcih2YXIgdCxlPTAsbj1hcmd1bWVudHMubGVuZ3RoLGk9e307ZTxuOysrZSl7aWYoISh0PWFyZ3VtZW50c1tlXSsiIil8fHQgaW4gaXx8L1tccy5dLy50ZXN0KHQpKXRocm93IG5ldyBFcnJvcigiaWxsZWdhbCB0eXBlOiAiK3QpO2lbdF09W119cmV0dXJuIG5ldyBOb3QoaSl9ZnVuY3Rpb24gTm90KHQpe3RoaXMuXz10fWZ1bmN0aW9uIElvdCh0LGUpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBuPSIiLGk9dC5pbmRleE9mKCIuIik7aWYoaT49MCYmKG49dC5zbGljZShpKzEpLHQ9dC5zbGljZSgwLGkpKSx0JiYhZS5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtyZXR1cm57dHlwZTp0LG5hbWU6bn19KSl9ZnVuY3Rpb24gUm90KHQsZSl7Zm9yKHZhciBuLGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpaWYoKG49dFtpXSkubmFtZT09PWUpcmV0dXJuIG4udmFsdWV9ZnVuY3Rpb24gT290KHQsZSxuKXtmb3IodmFyIGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpaWYodFtpXS5uYW1lPT09ZSl7dFtpXT1Mb3QsdD10LnNsaWNlKDAsaSkuY29uY2F0KHQuc2xpY2UoaSsxKSk7YnJlYWt9cmV0dXJuIG51bGwhPW4mJnQucHVzaCh7bmFtZTplLHZhbHVlOm59KSx0fU5vdC5wcm90b3R5cGU9UG90LnByb3RvdHlwZT17Y29uc3RydWN0b3I6Tm90LG9uOmZ1bmN0aW9uKHQsZSl7dmFyIG4saT10aGlzLl8scj1Jb3QodCsiIixpKSxvPS0xLGE9ci5sZW5ndGg7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtpZihudWxsIT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2s6ICIrZSk7Zm9yKDsrK288YTspaWYobj0odD1yW29dKS50eXBlKWlbbl09T290KGlbbl0sdC5uYW1lLGUpO2Vsc2UgaWYobnVsbD09ZSlmb3IobiBpbiBpKWlbbl09T290KGlbbl0sdC5uYW1lLG51bGwpO3JldHVybiB0aGlzfWZvcig7KytvPGE7KWlmKChuPSh0PXJbb10pLnR5cGUpJiYobj1Sb3QoaVtuXSx0Lm5hbWUpKSlyZXR1cm4gbn0sY29weTpmdW5jdGlvbigpe3ZhciB0PXt9LGU9dGhpcy5fO2Zvcih2YXIgbiBpbiBlKXRbbl09ZVtuXS5zbGljZSgpO3JldHVybiBuZXcgTm90KHQpfSxjYWxsOmZ1bmN0aW9uKHQsZSl7aWYoKG49YXJndW1lbnRzLmxlbmd0aC0yKT4wKWZvcih2YXIgbixpLHI9bmV3IEFycmF5KG4pLG89MDtvPG47KytvKXJbb109YXJndW1lbnRzW28rMl07aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtmb3Iobz0wLG49KGk9dGhpcy5fW3RdKS5sZW5ndGg7bzxuOysrbylpW29dLnZhbHVlLmFwcGx5KGUscil9LGFwcGx5OmZ1bmN0aW9uKHQsZSxuKXtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO2Zvcih2YXIgaT10aGlzLl9bdF0scj0wLG89aS5sZW5ndGg7cjxvOysrcilpW3JdLnZhbHVlLmFwcGx5KGUsbil9fTt2YXIgem90LERvdCxCb3Q9MCxIb3Q9MCxGb3Q9MCxWb3Q9MCxVb3Q9MCxqb3Q9MCxHb3Q9Im9iamVjdCI9PXR5cGVvZiBwZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlOkRhdGUsV290PSJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOmZ1bmN0aW9uKHQpe3NldFRpbWVvdXQodCwxNyl9O2Z1bmN0aW9uIHFvdCgpe3JldHVybiBVb3R8fChXb3QoWW90KSxVb3Q9R290Lm5vdygpK2pvdCl9ZnVuY3Rpb24gWW90KCl7VW90PTB9ZnVuY3Rpb24gWG90KCl7dGhpcy5fY2FsbD10aGlzLl90aW1lPXRoaXMuX25leHQ9bnVsbH1mdW5jdGlvbiAkb3QodCxlLG4pe3ZhciBpPW5ldyBYb3Q7cmV0dXJuIGkucmVzdGFydCh0LGUsbiksaX1mdW5jdGlvbiBLb3QoKXtVb3Q9KFZvdD1Hb3Qubm93KCkpK2pvdCxCb3Q9SG90PTA7dHJ5eyEoZnVuY3Rpb24gdCgpe3FvdCgpLCsrQm90O2Zvcih2YXIgdCxlPXpvdDtlOykodD1Vb3QtZS5fdGltZSk+PTAmJmUuX2NhbGwuY2FsbChudWxsLHQpLGU9ZS5fbmV4dDstLUJvdH0pKCl9ZmluYWxseXtCb3Q9MCwoZnVuY3Rpb24gZSgpe3ZhciB0LGUsbj16b3QsaT0xLzA7Zm9yKDtuOyluLl9jYWxsPyhpPm4uX3RpbWUmJihpPW4uX3RpbWUpLHQ9bixuPW4uX25leHQpOihlPW4uX25leHQsbi5fbmV4dD1udWxsLG49dD90Ll9uZXh0PWU6em90PWUpO0RvdD10LEpvdChpKX0pKCksVW90PTB9fWZ1bmN0aW9uIFpvdCgpe3ZhciB0PUdvdC5ub3coKSxlPXQtVm90O2U+MWUzJiYoam90LT1lLFZvdD10KX1mdW5jdGlvbiBKb3QodCl7Qm90fHwoSG90JiYoSG90PWNsZWFyVGltZW91dChIb3QpKSx0LVVvdD4yND8odDwxLzAmJihIb3Q9c2V0VGltZW91dChLb3QsdC1Hb3Qubm93KCktam90KSksRm90JiYoRm90PWNsZWFySW50ZXJ2YWwoRm90KSkpOihGb3R8fChWb3Q9R290Lm5vdygpLEZvdD1zZXRJbnRlcnZhbChab3QsMWUzKSksQm90PTEsV290KEtvdCkpKX1mdW5jdGlvbiBRb3QodCxlLG4pe3ZhciBpPW5ldyBYb3Q7cmV0dXJuIGkucmVzdGFydCgoZnVuY3Rpb24obil7aS5zdG9wKCksdChuK2UpfSksZT1udWxsPT1lPzA6K2UsbiksaX1Yb3QucHJvdG90eXBlPSRvdC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlhvdCxyZXN0YXJ0OmZ1bmN0aW9uKHQsZSxuKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJjYWxsYmFjayBpcyBub3QgYSBmdW5jdGlvbiIpO249KG51bGw9PW4/cW90KCk6K24pKyhudWxsPT1lPzA6K2UpLHRoaXMuX25leHR8fERvdD09PXRoaXN8fChEb3Q/RG90Ll9uZXh0PXRoaXM6em90PXRoaXMsRG90PXRoaXMpLHRoaXMuX2NhbGw9dCx0aGlzLl90aW1lPW4sSm90KCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLl9jYWxsJiYodGhpcy5fY2FsbD1udWxsLHRoaXMuX3RpbWU9MS8wLEpvdCgpKX19O3ZhciB0YXQ9UG90KCJzdGFydCIsImVuZCIsImludGVycnVwdCIpLGVhdD1bXTtmdW5jdGlvbiBuYXQodCxlLG4saSxyLG8pe3ZhciBhPXQuX190cmFuc2l0aW9uO2lmKGEpe2lmKG4gaW4gYSlyZXR1cm59ZWxzZSB0Ll9fdHJhbnNpdGlvbj17fTshKGZ1bmN0aW9uIHModCxlLG4pe3ZhciBpLHI9dC5fX3RyYW5zaXRpb247ZnVuY3Rpb24gbyh0KXtuLnN0YXRlPTEsbi50aW1lci5yZXN0YXJ0KGEsbi5kZWxheSxuLnRpbWUpLG4uZGVsYXk8PXQmJmEodC1uLmRlbGF5KX1mdW5jdGlvbiBhKG8pe3ZhciBjLHUsaCxkO2lmKDEhPT1uLnN0YXRlKXJldHVybiBsKCk7Zm9yKGMgaW4gcilpZigoZD1yW2NdKS5uYW1lPT09bi5uYW1lKXtpZigzPT09ZC5zdGF0ZSlyZXR1cm4gUW90KGEpOzQ9PT1kLnN0YXRlPyhkLnN0YXRlPTYsZC50aW1lci5zdG9wKCksZC5vbi5jYWxsKCJpbnRlcnJ1cHQiLHQsdC5fX2RhdGFfXyxkLmluZGV4LGQuZ3JvdXApLGRlbGV0ZSByW2NdKTorYzxlJiYoZC5zdGF0ZT02LGQudGltZXIuc3RvcCgpLGRlbGV0ZSByW2NdKX1pZihRb3QoKGZ1bmN0aW9uKCl7Mz09PW4uc3RhdGUmJihuLnN0YXRlPTQsbi50aW1lci5yZXN0YXJ0KHMsbi5kZWxheSxuLnRpbWUpLHMobykpfSkpLG4uc3RhdGU9MixuLm9uLmNhbGwoInN0YXJ0Iix0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSwyPT09bi5zdGF0ZSl7Zm9yKG4uc3RhdGU9MyxpPW5ldyBBcnJheShoPW4udHdlZW4ubGVuZ3RoKSxjPTAsdT0tMTtjPGg7KytjKShkPW4udHdlZW5bY10udmFsdWUuY2FsbCh0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSkmJihpWysrdV09ZCk7aS5sZW5ndGg9dSsxfX1mdW5jdGlvbiBzKGUpe2Zvcih2YXIgcj1lPG4uZHVyYXRpb24/bi5lYXNlLmNhbGwobnVsbCxlL24uZHVyYXRpb24pOihuLnRpbWVyLnJlc3RhcnQobCksbi5zdGF0ZT01LDEpLG89LTEsYT1pLmxlbmd0aDsrK288YTspaVtvXS5jYWxsKG51bGwscik7NT09PW4uc3RhdGUmJihuLm9uLmNhbGwoImVuZCIsdCx0Ll9fZGF0YV9fLG4uaW5kZXgsbi5ncm91cCksbCgpKX1mdW5jdGlvbiBsKCl7Zm9yKHZhciBpIGluIG4uc3RhdGU9NixuLnRpbWVyLnN0b3AoKSxkZWxldGUgcltlXSxyKXJldHVybjtkZWxldGUgdC5fX3RyYW5zaXRpb259cltlXT1uLG4udGltZXI9JG90KG8sMCxuLnRpbWUpfSkodCxuLHtuYW1lOmUsaW5kZXg6aSxncm91cDpyLG9uOnRhdCx0d2VlbjplYXQsdGltZTpvLnRpbWUsZGVsYXk6by5kZWxheSxkdXJhdGlvbjpvLmR1cmF0aW9uLGVhc2U6by5lYXNlLHRpbWVyOm51bGwsc3RhdGU6MH0pfWZ1bmN0aW9uIGlhdCh0LGUpe3ZhciBuPW9hdCh0LGUpO2lmKG4uc3RhdGU+MCl0aHJvdyBuZXcgRXJyb3IoInRvbyBsYXRlOyBhbHJlYWR5IHNjaGVkdWxlZCIpO3JldHVybiBufWZ1bmN0aW9uIHJhdCh0LGUpe3ZhciBuPW9hdCh0LGUpO2lmKG4uc3RhdGU+Mil0aHJvdyBuZXcgRXJyb3IoInRvbyBsYXRlOyBhbHJlYWR5IHN0YXJ0ZWQiKTtyZXR1cm4gbn1mdW5jdGlvbiBvYXQodCxlKXt2YXIgbj10Ll9fdHJhbnNpdGlvbjtpZighbnx8IShuPW5bZV0pKXRocm93IG5ldyBFcnJvcigidHJhbnNpdGlvbiBub3QgZm91bmQiKTtyZXR1cm4gbn1mdW5jdGlvbiBhYXQodCxlKXt2YXIgbixpLHIsbz10Ll9fdHJhbnNpdGlvbixhPSEwO2lmKG8pe2ZvcihyIGluIGU9bnVsbD09ZT9udWxsOmUrIiIsbykobj1vW3JdKS5uYW1lPT09ZT8oaT1uLnN0YXRlPjImJm4uc3RhdGU8NSxuLnN0YXRlPTYsbi50aW1lci5zdG9wKCksaSYmbi5vbi5jYWxsKCJpbnRlcnJ1cHQiLHQsdC5fX2RhdGFfXyxuLmluZGV4LG4uZ3JvdXApLGRlbGV0ZSBvW3JdKTphPSExO2EmJmRlbGV0ZSB0Ll9fdHJhbnNpdGlvbn19ZnVuY3Rpb24gc2F0KHQsZSxuKXt0LnByb3RvdHlwZT1lLnByb3RvdHlwZT1uLG4uY29uc3RydWN0b3I9dH1mdW5jdGlvbiBsYXQodCxlKXt2YXIgbj1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlKTtmb3IodmFyIGkgaW4gZSluW2ldPWVbaV07cmV0dXJuIG59ZnVuY3Rpb24gY2F0KCl7fXZhciB1YXQ9LjcsaGF0PTEvdWF0LGRhdD0iXFxzKihbKy1dP1xcZCspXFxzKiIscGF0PSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KVxccyoiLGZhdD0iXFxzKihbKy1dP1xcZCpcXC4/XFxkKyg/OltlRV1bKy1dP1xcZCspPyklXFxzKiIsbWF0PS9eIyhbMC05YS1mXXszLDh9KSQvLGdhdD1uZXcgUmVnRXhwKCJecmdiXFwoIitbZGF0LGRhdCxkYXRdKyJcXCkkIiksX2F0PW5ldyBSZWdFeHAoIl5yZ2JcXCgiK1tmYXQsZmF0LGZhdF0rIlxcKSQiKSx5YXQ9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tkYXQsZGF0LGRhdCxwYXRdKyJcXCkkIiksdmF0PW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbZmF0LGZhdCxmYXQscGF0XSsiXFwpJCIpLGJhdD1uZXcgUmVnRXhwKCJeaHNsXFwoIitbcGF0LGZhdCxmYXRdKyJcXCkkIikseGF0PW5ldyBSZWdFeHAoIl5oc2xhXFwoIitbcGF0LGZhdCxmYXQscGF0XSsiXFwpJCIpLHdhdD17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtmdW5jdGlvbiBTYXQoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRIZXgoKX1mdW5jdGlvbiBNYXQoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRSZ2IoKX1mdW5jdGlvbiBFYXQodCl7dmFyIGUsbjtyZXR1cm4gdD0odCsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKGU9bWF0LmV4ZWModCkpPyhuPWVbMV0ubGVuZ3RoLGU9cGFyc2VJbnQoZVsxXSwxNiksNj09PW4/VGF0KGUpOjM9PT1uP25ldyBMYXQoZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgxNSZlKTw8NHwxNSZlLDEpOjg9PT1uP0NhdChlPj4yNCYyNTUsZT4+MTYmMjU1LGU+PjgmMjU1LCgyNTUmZSkvMjU1KTo0PT09bj9DYXQoZT4+MTImMTV8ZT4+OCYyNDAsZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgoMTUmZSk8PDR8MTUmZSkvMjU1KTpudWxsKTooZT1nYXQuZXhlYyh0KSk/bmV3IExhdChlWzFdLGVbMl0sZVszXSwxKTooZT1fYXQuZXhlYyh0KSk/bmV3IExhdCgyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCwxKTooZT15YXQuZXhlYyh0KSk/Q2F0KGVbMV0sZVsyXSxlWzNdLGVbNF0pOihlPXZhdC5leGVjKHQpKT9DYXQoMjU1KmVbMV0vMTAwLDI1NSplWzJdLzEwMCwyNTUqZVszXS8xMDAsZVs0XSk6KGU9YmF0LmV4ZWModCkpP1JhdChlWzFdLGVbMl0vMTAwLGVbM10vMTAwLDEpOihlPXhhdC5leGVjKHQpKT9SYXQoZVsxXSxlWzJdLzEwMCxlWzNdLzEwMCxlWzRdKTp3YXQuaGFzT3duUHJvcGVydHkodCk/VGF0KHdhdFt0XSk6InRyYW5zcGFyZW50Ij09PXQ/bmV3IExhdChOYU4sTmFOLE5hTiwwKTpudWxsfWZ1bmN0aW9uIFRhdCh0KXtyZXR1cm4gbmV3IExhdCh0Pj4xNiYyNTUsdD4+OCYyNTUsMjU1JnQsMSl9ZnVuY3Rpb24gQ2F0KHQsZSxuLGkpe3JldHVybiBpPD0wJiYodD1lPW49TmFOKSxuZXcgTGF0KHQsZSxuLGkpfWZ1bmN0aW9uIEFhdCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIGNhdHx8KHQ9RWF0KHQpKSx0P25ldyBMYXQoKHQ9dC5yZ2IoKSkucix0LmcsdC5iLHQub3BhY2l0eSk6bmV3IExhdH1mdW5jdGlvbiBrYXQodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP0FhdCh0KTpuZXcgTGF0KHQsZSxuLG51bGw9PWk/MTppKX1mdW5jdGlvbiBMYXQodCxlLG4saSl7dGhpcy5yPSt0LHRoaXMuZz0rZSx0aGlzLmI9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIFBhdCgpe3JldHVybiIjIitJYXQodGhpcy5yKStJYXQodGhpcy5nKStJYXQodGhpcy5iKX1mdW5jdGlvbiBOYXQoKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpPyJyZ2IoIjoicmdiYSgiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKDE9PT10PyIpIjoiLCAiK3QrIikiKX1mdW5jdGlvbiBJYXQodCl7cmV0dXJuKCh0PU1hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodCl8fDApKSk8MTY/IjAiOiIiKSt0LnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBSYXQodCxlLG4saSl7cmV0dXJuIGk8PTA/dD1lPW49TmFOOm48PTB8fG4+PTE/dD1lPU5hTjplPD0wJiYodD1OYU4pLG5ldyB6YXQodCxlLG4saSl9ZnVuY3Rpb24gT2F0KHQpe2lmKHQgaW5zdGFuY2VvZiB6YXQpcmV0dXJuIG5ldyB6YXQodC5oLHQucyx0LmwsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2YgY2F0fHwodD1FYXQodCkpLCF0KXJldHVybiBuZXcgemF0O2lmKHQgaW5zdGFuY2VvZiB6YXQpcmV0dXJuIHQ7dmFyIGU9KHQ9dC5yZ2IoKSkuci8yNTUsbj10LmcvMjU1LGk9dC5iLzI1NSxyPU1hdGgubWluKGUsbixpKSxvPU1hdGgubWF4KGUsbixpKSxhPU5hTixzPW8tcixsPShvK3IpLzI7cmV0dXJuIHM/KGE9ZT09PW8/KG4taSkvcys2KihuPGkpOm49PT1vPyhpLWUpL3MrMjooZS1uKS9zKzQscy89bDwuNT9vK3I6Mi1vLXIsYSo9NjApOnM9bD4wJiZsPDE/MDphLG5ldyB6YXQoYSxzLGwsdC5vcGFjaXR5KX1mdW5jdGlvbiB6YXQodCxlLG4saSl7dGhpcy5oPSt0LHRoaXMucz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStpfWZ1bmN0aW9uIERhdCh0LGUsbil7cmV0dXJuIDI1NSoodDw2MD9lKyhuLWUpKnQvNjA6dDwxODA/bjp0PDI0MD9lKyhuLWUpKigyNDAtdCkvNjA6ZSl9ZnVuY3Rpb24gQmF0KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBIYXQodCl7cmV0dXJuIDE9PSh0PSt0KT9GYXQ6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gbi1lPyhmdW5jdGlvbiBpKHQsZSxuKXtyZXR1cm4gdD1NYXRoLnBvdyh0LG4pLGU9TWF0aC5wb3coZSxuKS10LG49MS9uLGZ1bmN0aW9uKGkpe3JldHVybiBNYXRoLnBvdyh0K2kqZSxuKX19KShlLG4sdCk6QmF0KGlzTmFOKGUpP246ZSl9fWZ1bmN0aW9uIEZhdCh0LGUpe3ZhciBuPWUtdDtyZXR1cm4gbj8oZnVuY3Rpb24gaSh0LGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdCtuKmV9fSkodCxuKTpCYXQoaXNOYU4odCk/ZTp0KX1zYXQoY2F0LEVhdCx7Y29weTpmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgdGhpcy5jb25zdHJ1Y3Rvcix0aGlzLHQpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmRpc3BsYXlhYmxlKCl9LGhleDpTYXQsZm9ybWF0SGV4OlNhdCxmb3JtYXRIc2w6ZnVuY3Rpb24gVmF0KCl7cmV0dXJuIE9hdCh0aGlzKS5mb3JtYXRIc2woKX0sZm9ybWF0UmdiOk1hdCx0b1N0cmluZzpNYXR9KSxzYXQoTGF0LGthdCxsYXQoY2F0LHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10P2hhdDpNYXRoLnBvdyhoYXQsdCksbmV3IExhdCh0aGlzLnIqdCx0aGlzLmcqdCx0aGlzLmIqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD91YXQ6TWF0aC5wb3codWF0LHQpLG5ldyBMYXQodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuLS41PD10aGlzLnImJnRoaXMucjwyNTUuNSYmLS41PD10aGlzLmcmJnRoaXMuZzwyNTUuNSYmLS41PD10aGlzLmImJnRoaXMuYjwyNTUuNSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9LGhleDpQYXQsZm9ybWF0SGV4OlBhdCxmb3JtYXRSZ2I6TmF0LHRvU3RyaW5nOk5hdH0pKSxzYXQoemF0LChmdW5jdGlvbiBVYXQodCxlLG4saSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP09hdCh0KTpuZXcgemF0KHQsZSxuLG51bGw9PWk/MTppKX0pLGxhdChjYXQse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/aGF0Ok1hdGgucG93KGhhdCx0KSxuZXcgemF0KHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/dWF0Ok1hdGgucG93KHVhdCx0KSxuZXcgemF0KHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5oJTM2MCszNjAqKHRoaXMuaDwwKSxlPWlzTmFOKHQpfHxpc05hTih0aGlzLnMpPzA6dGhpcy5zLG49dGhpcy5sLGk9bisobjwuNT9uOjEtbikqZSxyPTIqbi1pO3JldHVybiBuZXcgTGF0KERhdCh0Pj0yNDA/dC0yNDA6dCsxMjAscixpKSxEYXQodCxyLGkpLERhdCh0PDEyMD90KzI0MDp0LTEyMCxyLGkpLHRoaXMub3BhY2l0eSl9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuKDA8PXRoaXMucyYmdGhpcy5zPD0xfHxpc05hTih0aGlzLnMpKSYmMDw9dGhpcy5sJiZ0aGlzLmw8PTEmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxmb3JtYXRIc2w6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpPyJoc2woIjoiaHNsYSgiKSsodGhpcy5ofHwwKSsiLCAiKzEwMCoodGhpcy5zfHwwKSsiJSwgIisxMDAqKHRoaXMubHx8MCkrIiUiKygxPT09dD8iKSI6IiwgIit0KyIpIil9fSkpO3ZhciBqYXQ9KGZ1bmN0aW9uIHQoZSl7dmFyIG49SGF0KGUpO2Z1bmN0aW9uIGkodCxlKXt2YXIgaT1uKCh0PWthdCh0KSkuciwoZT1rYXQoZSkpLnIpLHI9bih0LmcsZS5nKSxvPW4odC5iLGUuYiksYT1GYXQodC5vcGFjaXR5LGUub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0LnI9aShlKSx0Lmc9cihlKSx0LmI9byhlKSx0Lm9wYWNpdHk9YShlKSx0KyIifX1yZXR1cm4gaS5nYW1tYT10LGl9KSgxKTtmdW5jdGlvbiBHYXQodCxlKXtyZXR1cm4gdD0rdCxlPStlLGZ1bmN0aW9uKG4pe3JldHVybiB0KigxLW4pK2Uqbn19dmFyIFdhdD0vWy0rXT8oPzpcZCtcLj9cZCp8XC4/XGQrKSg/OltlRV1bLStdP1xkKyk/L2cscWF0PW5ldyBSZWdFeHAoV2F0LnNvdXJjZSwiZyIpO2Z1bmN0aW9uIFlhdCh0LGUpe3ZhciBuLGkscixvPVdhdC5sYXN0SW5kZXg9cWF0Lmxhc3RJbmRleD0wLGE9LTEscz1bXSxsPVtdO2Zvcih0Kz0iIixlKz0iIjsobj1XYXQuZXhlYyh0KSkmJihpPXFhdC5leGVjKGUpKTspKHI9aS5pbmRleCk+byYmKHI9ZS5zbGljZShvLHIpLHNbYV0/c1thXSs9cjpzWysrYV09ciksKG49blswXSk9PT0oaT1pWzBdKT9zW2FdP3NbYV0rPWk6c1srK2FdPWk6KHNbKythXT1udWxsLGwucHVzaCh7aTphLHg6R2F0KG4saSl9KSksbz1xYXQubGFzdEluZGV4O3JldHVybiBvPGUubGVuZ3RoJiYocj1lLnNsaWNlKG8pLHNbYV0/c1thXSs9cjpzWysrYV09cikscy5sZW5ndGg8Mj9sWzBdPyhmdW5jdGlvbiBjKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdChlKSsiIn19KShsWzBdLngpOihmdW5jdGlvbiB1KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX0pKGUpOihlPWwubGVuZ3RoLGZ1bmN0aW9uKHQpe2Zvcih2YXIgbixpPTA7aTxlOysraSlzWyhuPWxbaV0pLmldPW4ueCh0KTtyZXR1cm4gcy5qb2luKCIiKX0pfXZhciBYYXQsJGF0LEthdCxaYXQsSmF0PTE4MC9NYXRoLlBJLFFhdD17dHJhbnNsYXRlWDowLHRyYW5zbGF0ZVk6MCxyb3RhdGU6MCxza2V3WDowLHNjYWxlWDoxLHNjYWxlWToxfTtmdW5jdGlvbiB0c3QodCxlLG4saSxyLG8pe3ZhciBhLHMsbDtyZXR1cm4oYT1NYXRoLnNxcnQodCp0K2UqZSkpJiYodC89YSxlLz1hKSwobD10Km4rZSppKSYmKG4tPXQqbCxpLT1lKmwpLChzPU1hdGguc3FydChuKm4raSppKSkmJihuLz1zLGkvPXMsbC89cyksdCppPGUqbiYmKHQ9LXQsZT0tZSxsPS1sLGE9LWEpLHt0cmFuc2xhdGVYOnIsdHJhbnNsYXRlWTpvLHJvdGF0ZTpNYXRoLmF0YW4yKGUsdCkqSmF0LHNrZXdYOk1hdGguYXRhbihsKSpKYXQsc2NhbGVYOmEsc2NhbGVZOnN9fWZ1bmN0aW9uIGVzdCh0LGUsbixpKXtmdW5jdGlvbiByKHQpe3JldHVybiB0Lmxlbmd0aD90LnBvcCgpKyIgIjoiIn1yZXR1cm4gZnVuY3Rpb24obyxhKXt2YXIgcz1bXSxsPVtdO3JldHVybiBvPXQobyksYT10KGEpLChmdW5jdGlvbiBjKHQsaSxyLG8sYSxzKXtpZih0IT09cnx8aSE9PW8pe3ZhciBsPWEucHVzaCgidHJhbnNsYXRlKCIsbnVsbCxlLG51bGwsbik7cy5wdXNoKHtpOmwtNCx4OkdhdCh0LHIpfSx7aTpsLTIseDpHYXQoaSxvKX0pfWVsc2Uocnx8bykmJmEucHVzaCgidHJhbnNsYXRlKCIrcitlK28rbil9KShvLnRyYW5zbGF0ZVgsby50cmFuc2xhdGVZLGEudHJhbnNsYXRlWCxhLnRyYW5zbGF0ZVkscyxsKSwoZnVuY3Rpb24gdSh0LGUsbixvKXt0IT09ZT8odC1lPjE4MD9lKz0zNjA6ZS10PjE4MCYmKHQrPTM2MCksby5wdXNoKHtpOm4ucHVzaChyKG4pKyJyb3RhdGUoIixudWxsLGkpLTIseDpHYXQodCxlKX0pKTplJiZuLnB1c2gocihuKSsicm90YXRlKCIrZStpKX0pKG8ucm90YXRlLGEucm90YXRlLHMsbCksKGZ1bmN0aW9uIGgodCxlLG4sbyl7dCE9PWU/by5wdXNoKHtpOm4ucHVzaChyKG4pKyJza2V3WCgiLG51bGwsaSktMix4OkdhdCh0LGUpfSk6ZSYmbi5wdXNoKHIobikrInNrZXdYKCIrZStpKX0pKG8uc2tld1gsYS5za2V3WCxzLGwpLChmdW5jdGlvbiBkKHQsZSxuLGksbyxhKXtpZih0IT09bnx8ZSE9PWkpe3ZhciBzPW8ucHVzaChyKG8pKyJzY2FsZSgiLG51bGwsIiwiLG51bGwsIikiKTthLnB1c2goe2k6cy00LHg6R2F0KHQsbil9LHtpOnMtMix4OkdhdChlLGkpfSl9ZWxzZSAxPT09biYmMT09PWl8fG8ucHVzaChyKG8pKyJzY2FsZSgiK24rIiwiK2krIikiKX0pKG8uc2NhbGVYLG8uc2NhbGVZLGEuc2NhbGVYLGEuc2NhbGVZLHMsbCksbz1hPW51bGwsZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49LTEsaT1sLmxlbmd0aDsrK248aTspc1soZT1sW25dKS5pXT1lLngodCk7cmV0dXJuIHMuam9pbigiIil9fX12YXIgbnN0PWVzdCgoZnVuY3Rpb24gaXN0KHQpe3JldHVybiJub25lIj09PXQ/UWF0OihYYXR8fChYYXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIiksJGF0PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxLYXQ9ZG9jdW1lbnQuZGVmYXVsdFZpZXcpLFhhdC5zdHlsZS50cmFuc2Zvcm09dCx0PUthdC5nZXRDb21wdXRlZFN0eWxlKCRhdC5hcHBlbmRDaGlsZChYYXQpLG51bGwpLmdldFByb3BlcnR5VmFsdWUoInRyYW5zZm9ybSIpLCRhdC5yZW1vdmVDaGlsZChYYXQpLHRzdCgrKHQ9dC5zbGljZSg3LC0xKS5zcGxpdCgiLCIpKVswXSwrdFsxXSwrdFsyXSwrdFszXSwrdFs0XSwrdFs1XSkpfSksInB4LCAiLCJweCkiLCJkZWcpIikscnN0PWVzdCgoZnVuY3Rpb24gb3N0KHQpe3JldHVybiBudWxsPT10P1FhdDooWmF0fHwoWmF0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJnIikpLFphdC5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsdCksKHQ9WmF0LnRyYW5zZm9ybS5iYXNlVmFsLmNvbnNvbGlkYXRlKCkpP3RzdCgodD10Lm1hdHJpeCkuYSx0LmIsdC5jLHQuZCx0LmUsdC5mKTpRYXQpfSksIiwgIiwiKSIsIikiKTtmdW5jdGlvbiBhc3QodCxlKXt2YXIgbixpO3JldHVybiBmdW5jdGlvbigpe3ZhciByPXJhdCh0aGlzLHQpLG89ci50d2VlbjtpZihvIT09bilmb3IodmFyIGE9MCxzPShpPW49bykubGVuZ3RoO2E8czsrK2EpaWYoaVthXS5uYW1lPT09ZSl7KGk9aS5zbGljZSgpKS5zcGxpY2UoYSwxKTticmVha31yLnR3ZWVuPWl9fWZ1bmN0aW9uIHNzdCh0LGUsbil7dmFyIGkscjtpZigiZnVuY3Rpb24iIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89cmF0KHRoaXMsdCksYT1vLnR3ZWVuO2lmKGEhPT1pKXtyPShpPWEpLnNsaWNlKCk7Zm9yKHZhciBzPXtuYW1lOmUsdmFsdWU6bn0sbD0wLGM9ci5sZW5ndGg7bDxjOysrbClpZihyW2xdLm5hbWU9PT1lKXtyW2xdPXM7YnJlYWt9bD09PWMmJnIucHVzaChzKX1vLnR3ZWVuPXJ9fWZ1bmN0aW9uIGxzdCh0LGUsbil7dmFyIGk9dC5faWQ7cmV0dXJuIHQuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1yYXQodGhpcyxpKTsodC52YWx1ZXx8KHQudmFsdWU9e30pKVtlXT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pKSxmdW5jdGlvbih0KXtyZXR1cm4gb2F0KHQsaSkudmFsdWVbZV19fWZ1bmN0aW9uIGNzdCh0LGUpe3ZhciBuO3JldHVybigibnVtYmVyIj09dHlwZW9mIGU/R2F0OmUgaW5zdGFuY2VvZiBFYXQ/amF0OihuPUVhdChlKSk/KGU9bixqYXQpOllhdCkodCxlKX1mdW5jdGlvbiB1c3QodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fWZ1bmN0aW9uIGhzdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIGRzdCh0LGUsbil7dmFyIGkscjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz10aGlzLmdldEF0dHJpYnV0ZSh0KTtyZXR1cm4gbz09PW4/bnVsbDpvPT09aT9yOnI9ZShpPW8sbil9fWZ1bmN0aW9uIHBzdCh0LGUsbil7dmFyIGkscjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz10aGlzLmdldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCk7cmV0dXJuIG89PT1uP251bGw6bz09PWk/cjpyPWUoaT1vLG4pfX1mdW5jdGlvbiBmc3QodCxlLG4pe3ZhciBpLHIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSxzPW4odGhpcyk7aWYobnVsbCE9cylyZXR1cm4oYT10aGlzLmdldEF0dHJpYnV0ZSh0KSk9PT1zP251bGw6YT09PWkmJnM9PT1yP286bz1lKGk9YSxyPXMpO3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpfX1mdW5jdGlvbiBtc3QodCxlLG4pe3ZhciBpLHIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSxzPW4odGhpcyk7aWYobnVsbCE9cylyZXR1cm4oYT10aGlzLmdldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCkpPT09cz9udWxsOmE9PT1pJiZzPT09cj9vOm89ZShpPWEscj1zKTt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIGdzdCh0LGUpe2Z1bmN0aW9uIG4oKXt2YXIgbj10aGlzLGk9ZS5hcHBseShuLGFyZ3VtZW50cyk7cmV0dXJuIGkmJmZ1bmN0aW9uKGUpe24uc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLGkoZSkpfX1yZXR1cm4gbi5fdmFsdWU9ZSxufWZ1bmN0aW9uIF9zdCh0LGUpe2Z1bmN0aW9uIG4oKXt2YXIgbj10aGlzLGk9ZS5hcHBseShuLGFyZ3VtZW50cyk7cmV0dXJuIGkmJmZ1bmN0aW9uKGUpe24uc2V0QXR0cmlidXRlKHQsaShlKSl9fXJldHVybiBuLl92YWx1ZT1lLG59ZnVuY3Rpb24geXN0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7aWF0KHRoaXMsdCkuZGVsYXk9K2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiB2c3QodCxlKXtyZXR1cm4gZT0rZSxmdW5jdGlvbigpe2lhdCh0aGlzLHQpLmRlbGF5PWV9fWZ1bmN0aW9uIGJzdCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3JhdCh0aGlzLHQpLmR1cmF0aW9uPStlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24geHN0KHQsZSl7cmV0dXJuIGU9K2UsZnVuY3Rpb24oKXtyYXQodGhpcyx0KS5kdXJhdGlvbj1lfX1mdW5jdGlvbiB3c3QodCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7cmF0KHRoaXMsdCkuZWFzZT1lfX1mdW5jdGlvbiBTc3QodCxlLG4pe3ZhciBpLHIsbz0oZnVuY3Rpb24gYSh0KXtyZXR1cm4odCsiIikudHJpbSgpLnNwbGl0KC9efFxzKy8pLmV2ZXJ5KChmdW5jdGlvbih0KXt2YXIgZT10LmluZGV4T2YoIi4iKTtyZXR1cm4gZT49MCYmKHQ9dC5zbGljZSgwLGUpKSwhdHx8InN0YXJ0Ij09PXR9KSl9KShlKT9pYXQ6cmF0O3JldHVybiBmdW5jdGlvbigpe3ZhciBhPW8odGhpcyx0KSxzPWEub247cyE9PWkmJihyPShpPXMpLmNvcHkoKSkub24oZSxuKSxhLm9uPXJ9fXZhciBNc3Q9SnJ0LnByb3RvdHlwZS5jb25zdHJ1Y3RvcjtmdW5jdGlvbiBFc3QodCxlLG4pe2Z1bmN0aW9uIGkoKXt2YXIgaT10aGlzLHI9ZS5hcHBseShpLGFyZ3VtZW50cyk7cmV0dXJuIHImJmZ1bmN0aW9uKGUpe2kuc3R5bGUuc2V0UHJvcGVydHkodCxyKGUpLG4pfX1yZXR1cm4gaS5fdmFsdWU9ZSxpfXZhciBUc3Q9MDtmdW5jdGlvbiBDc3QodCxlLG4saSl7dGhpcy5fZ3JvdXBzPXQsdGhpcy5fcGFyZW50cz1lLHRoaXMuX25hbWU9bix0aGlzLl9pZD1pfWZ1bmN0aW9uIEFzdCh0KXtyZXR1cm4gSnJ0KCkudHJhbnNpdGlvbih0KX1mdW5jdGlvbiBrc3QoKXtyZXR1cm4rK1RzdH12YXIgTHN0PUpydC5wcm90b3R5cGU7Q3N0LnByb3RvdHlwZT1Bc3QucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpDc3Qsc2VsZWN0OmZ1bmN0aW9uIFBzdCh0KXt2YXIgZT10aGlzLl9uYW1lLG49dGhpcy5faWQ7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PUppdCh0KSk7Zm9yKHZhciBpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89bmV3IEFycmF5KHIpLGE9MDthPHI7KythKWZvcih2YXIgcyxsLGM9aVthXSx1PWMubGVuZ3RoLGg9b1thXT1uZXcgQXJyYXkodSksZD0wO2Q8dTsrK2QpKHM9Y1tkXSkmJihsPXQuY2FsbChzLHMuX19kYXRhX18sZCxjKSkmJigiX19kYXRhX18iaW4gcyYmKGwuX19kYXRhX189cy5fX2RhdGFfXyksaFtkXT1sLG5hdChoW2RdLGUsbixkLGgsb2F0KHMsbikpKTtyZXR1cm4gbmV3IENzdChvLHRoaXMuX3BhcmVudHMsZSxuKX0sc2VsZWN0QWxsOmZ1bmN0aW9uIE5zdCh0KXt2YXIgZT10aGlzLl9uYW1lLG49dGhpcy5faWQ7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PXRydCh0KSk7Zm9yKHZhciBpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89W10sYT1bXSxzPTA7czxyOysrcylmb3IodmFyIGwsYz1pW3NdLHU9Yy5sZW5ndGgsaD0wO2g8dTsrK2gpaWYobD1jW2hdKXtmb3IodmFyIGQscD10LmNhbGwobCxsLl9fZGF0YV9fLGgsYyksZj1vYXQobCxuKSxtPTAsZz1wLmxlbmd0aDttPGc7KyttKShkPXBbbV0pJiZuYXQoZCxlLG4sbSxwLGYpO28ucHVzaChwKSxhLnB1c2gobCl9cmV0dXJuIG5ldyBDc3QobyxhLGUsbil9LGZpbHRlcjpmdW5jdGlvbiBJc3QodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PWVydCh0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWZvcih2YXIgbyxhPWVbcl0scz1hLmxlbmd0aCxsPWlbcl09W10sYz0wO2M8czsrK2MpKG89YVtjXSkmJnQuY2FsbChvLG8uX19kYXRhX18sYyxhKSYmbC5wdXNoKG8pO3JldHVybiBuZXcgQ3N0KGksdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sbWVyZ2U6ZnVuY3Rpb24gUnN0KHQpe2lmKHQuX2lkIT09dGhpcy5faWQpdGhyb3cgbmV3IEVycm9yO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj10Ll9ncm91cHMsaT1lLmxlbmd0aCxyPU1hdGgubWluKGksbi5sZW5ndGgpLG89bmV3IEFycmF5KGkpLGE9MDthPHI7KythKWZvcih2YXIgcyxsPWVbYV0sYz1uW2FdLHU9bC5sZW5ndGgsaD1vW2FdPW5ldyBBcnJheSh1KSxkPTA7ZDx1OysrZCkocz1sW2RdfHxjW2RdKSYmKGhbZF09cyk7Zm9yKDthPGk7KythKW9bYV09ZVthXTtyZXR1cm4gbmV3IENzdChvLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9LHNlbGVjdGlvbjpmdW5jdGlvbiBPc3QoKXtyZXR1cm4gbmV3IE1zdCh0aGlzLl9ncm91cHMsdGhpcy5fcGFyZW50cyl9LHRyYW5zaXRpb246ZnVuY3Rpb24genN0KCl7Zm9yKHZhciB0PXRoaXMuX25hbWUsZT10aGlzLl9pZCxuPWtzdCgpLGk9dGhpcy5fZ3JvdXBzLHI9aS5sZW5ndGgsbz0wO288cjsrK28pZm9yKHZhciBhLHM9aVtvXSxsPXMubGVuZ3RoLGM9MDtjPGw7KytjKWlmKGE9c1tjXSl7dmFyIHU9b2F0KGEsZSk7bmF0KGEsdCxuLGMscyx7dGltZTp1LnRpbWUrdS5kZWxheSt1LmR1cmF0aW9uLGRlbGF5OjAsZHVyYXRpb246dS5kdXJhdGlvbixlYXNlOnUuZWFzZX0pfXJldHVybiBuZXcgQ3N0KGksdGhpcy5fcGFyZW50cyx0LG4pfSxjYWxsOkxzdC5jYWxsLG5vZGVzOkxzdC5ub2Rlcyxub2RlOkxzdC5ub2RlLHNpemU6THN0LnNpemUsZW1wdHk6THN0LmVtcHR5LGVhY2g6THN0LmVhY2gsb246ZnVuY3Rpb24gRHN0KHQsZSl7dmFyIG49dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9vYXQodGhpcy5ub2RlKCksbikub24ub24odCk6dGhpcy5lYWNoKFNzdChuLHQsZSkpfSxhdHRyOmZ1bmN0aW9uIEJzdCh0LGUpe3ZhciBuPVlpdCh0KSxpPSJ0cmFuc2Zvcm0iPT09bj9yc3Q6Y3N0O3JldHVybiB0aGlzLmF0dHJUd2Vlbih0LCJmdW5jdGlvbiI9PXR5cGVvZiBlPyhuLmxvY2FsP21zdDpmc3QpKG4saSxsc3QodGhpcywiYXR0ci4iK3QsZSkpOm51bGw9PWU/KG4ubG9jYWw/aHN0OnVzdCkobik6KG4ubG9jYWw/cHN0OmRzdCkobixpLGUrIiIpKX0sYXR0clR3ZWVuOmZ1bmN0aW9uIEhzdCh0LGUpe3ZhciBuPSJhdHRyLiIrdDtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKG49dGhpcy50d2VlbihuKSkmJm4uX3ZhbHVlO2lmKG51bGw9PWUpcmV0dXJuIHRoaXMudHdlZW4obixudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7dmFyIGk9WWl0KHQpO3JldHVybiB0aGlzLnR3ZWVuKG4sKGkubG9jYWw/Z3N0Ol9zdCkoaSxlKSl9LHN0eWxlOmZ1bmN0aW9uIEZzdCh0LGUsbil7dmFyIGk9InRyYW5zZm9ybSI9PSh0Kz0iIik/bnN0OmNzdDtyZXR1cm4gbnVsbD09ZT90aGlzLnN0eWxlVHdlZW4odCwoZnVuY3Rpb24gbyh0LGUpe3ZhciBuLGkscjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz1fcnQodGhpcyx0KSxhPSh0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpLF9ydCh0aGlzLHQpKTtyZXR1cm4gbz09PWE/bnVsbDpvPT09biYmYT09PWk/cjpyPWUobj1vLGk9YSl9fSkodCxpKSkub24oImVuZC5zdHlsZS4iK3QsKGZ1bmN0aW9uIHIodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KX19KSh0KSk6dGhpcy5zdHlsZVR3ZWVuKHQsImZ1bmN0aW9uIj09dHlwZW9mIGU/KGZ1bmN0aW9uIGEodCxlLG4pe3ZhciBpLHIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1fcnQodGhpcyx0KSxzPW4odGhpcyk7cmV0dXJuIG51bGw9PXMmJih0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpLHM9X3J0KHRoaXMsdCkpLGE9PT1zP251bGw6YT09PWkmJnM9PT1yP286bz1lKGk9YSxyPXMpfX0pKHQsaSxsc3QodGhpcywic3R5bGUuIit0LGUpKTooZnVuY3Rpb24gcyh0LGUsbil7dmFyIGkscjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz1fcnQodGhpcyx0KTtyZXR1cm4gbz09PW4/bnVsbDpvPT09aT9yOnI9ZShpPW8sbil9fSkodCxpLGUrIiIpLG4pfSxzdHlsZVR3ZWVuOmZ1bmN0aW9uIFZzdCh0LGUsbil7dmFyIGk9InN0eWxlLiIrKHQrPSIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKGk9dGhpcy50d2VlbihpKSkmJmkuX3ZhbHVlO2lmKG51bGw9PWUpcmV0dXJuIHRoaXMudHdlZW4oaSxudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4oaSxFc3QodCxlLG51bGw9PW4/IiI6bikpfSx0ZXh0OmZ1bmN0aW9uIFVzdCh0KXtyZXR1cm4gdGhpcy50d2VlbigidGV4dCIsImZ1bmN0aW9uIj09dHlwZW9mIHQ/KGZ1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dCh0aGlzKTt0aGlzLnRleHRDb250ZW50PW51bGw9PWU/IiI6ZX19KShsc3QodGhpcywidGV4dCIsdCkpOihmdW5jdGlvbiBuKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH19KShudWxsPT10PyIiOnQrIiIpKX0scmVtb3ZlOmZ1bmN0aW9uIGpzdCgpe3JldHVybiB0aGlzLm9uKCJlbmQucmVtb3ZlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBhcmVudE5vZGU7Zm9yKHZhciBuIGluIHRoaXMuX190cmFuc2l0aW9uKWlmKCtuIT09ZSlyZXR1cm47dCYmdC5yZW1vdmVDaGlsZCh0aGlzKX19KSh0aGlzLl9pZCkpfSx0d2VlbjpmdW5jdGlvbiBHc3QodCxlKXt2YXIgbj10aGlzLl9pZDtpZih0Kz0iIixhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgaSxyPW9hdCh0aGlzLm5vZGUoKSxuKS50d2VlbixvPTAsYT1yLmxlbmd0aDtvPGE7KytvKWlmKChpPXJbb10pLm5hbWU9PT10KXJldHVybiBpLnZhbHVlO3JldHVybiBudWxsfXJldHVybiB0aGlzLmVhY2goKG51bGw9PWU/YXN0OnNzdCkobix0LGUpKX0sZGVsYXk6ZnVuY3Rpb24gV3N0KHQpe3ZhciBlPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIHQ/eXN0OnZzdCkoZSx0KSk6b2F0KHRoaXMubm9kZSgpLGUpLmRlbGF5fSxkdXJhdGlvbjpmdW5jdGlvbiBxc3QodCl7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgdD9ic3Q6eHN0KShlLHQpKTpvYXQodGhpcy5ub2RlKCksZSkuZHVyYXRpb259LGVhc2U6ZnVuY3Rpb24gWXN0KHQpe3ZhciBlPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCh3c3QoZSx0KSk6b2F0KHRoaXMubm9kZSgpLGUpLmVhc2V9fTt2YXIgWHN0PXt0aW1lOm51bGwsZGVsYXk6MCxkdXJhdGlvbjoyNTAsZWFzZTpxZn07ZnVuY3Rpb24gJHN0KHQsZSl7Zm9yKHZhciBuOyEobj10Ll9fdHJhbnNpdGlvbil8fCEobj1uW2VdKTspaWYoISh0PXQucGFyZW50Tm9kZSkpcmV0dXJuIFhzdC50aW1lPXFvdCgpLFhzdDtyZXR1cm4gbn1KcnQucHJvdG90eXBlLmludGVycnVwdD1mdW5jdGlvbiBLc3QodCl7cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXthYXQodGhpcyx0KX0pKX0sSnJ0LnByb3RvdHlwZS50cmFuc2l0aW9uPWZ1bmN0aW9uIFpzdCh0KXt2YXIgZSxuO3QgaW5zdGFuY2VvZiBDc3Q/KGU9dC5faWQsdD10Ll9uYW1lKTooZT1rc3QoKSwobj1Yc3QpLnRpbWU9cW90KCksdD1udWxsPT10P251bGw6dCsiIik7Zm9yKHZhciBpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89MDtvPHI7KytvKWZvcih2YXIgYSxzPWlbb10sbD1zLmxlbmd0aCxjPTA7YzxsOysrYykoYT1zW2NdKSYmbmF0KGEsdCxlLGMscyxufHwkc3QoYSxlKSk7cmV0dXJuIG5ldyBDc3QoaSx0aGlzLl9wYXJlbnRzLHQsZSl9O3ZhciBKc3Q9W251bGxdO2Z1bmN0aW9uIFFzdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gdGx0KHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIGVsdCh0KXtyZXR1cm4gdFsxXX1mdW5jdGlvbiBubHQoKXt0aGlzLl89bnVsbH1mdW5jdGlvbiBpbHQodCl7dC5VPXQuQz10Lkw9dC5SPXQuUD10Lk49bnVsbH1mdW5jdGlvbiBybHQodCxlKXt2YXIgbj1lLGk9ZS5SLHI9bi5VO3I/ci5MPT09bj9yLkw9aTpyLlI9aTp0Ll89aSxpLlU9cixuLlU9aSxuLlI9aS5MLG4uUiYmKG4uUi5VPW4pLGkuTD1ufWZ1bmN0aW9uIG9sdCh0LGUpe3ZhciBuPWUsaT1lLkwscj1uLlU7cj9yLkw9PT1uP3IuTD1pOnIuUj1pOnQuXz1pLGkuVT1yLG4uVT1pLG4uTD1pLlIsbi5MJiYobi5MLlU9biksaS5SPW59ZnVuY3Rpb24gYWx0KHQpe2Zvcig7dC5MOyl0PXQuTDtyZXR1cm4gdH1mdW5jdGlvbiBzbHQodCxlLG4saSl7dmFyIHI9W251bGwsbnVsbF0sbz1QbHQucHVzaChyKS0xO3JldHVybiByLmxlZnQ9dCxyLnJpZ2h0PWUsbiYmY2x0KHIsdCxlLG4pLGkmJmNsdChyLGUsdCxpKSxrbHRbdC5pbmRleF0uaGFsZmVkZ2VzLnB1c2gobyksa2x0W2UuaW5kZXhdLmhhbGZlZGdlcy5wdXNoKG8pLHJ9ZnVuY3Rpb24gbGx0KHQsZSxuKXt2YXIgaT1bZSxuXTtyZXR1cm4gaS5sZWZ0PXQsaX1mdW5jdGlvbiBjbHQodCxlLG4saSl7dFswXXx8dFsxXT90LmxlZnQ9PT1uP3RbMV09aTp0WzBdPWk6KHRbMF09aSx0LmxlZnQ9ZSx0LnJpZ2h0PW4pfWZ1bmN0aW9uIHVsdCh0LGUsbixpLHIpe3ZhciBvLGE9dFswXSxzPXRbMV0sbD1hWzBdLGM9YVsxXSx1PTAsaD0xLGQ9c1swXS1sLHA9c1sxXS1jO2lmKG89ZS1sLGR8fCEobz4wKSl7aWYoby89ZCxkPDApe2lmKG88dSlyZXR1cm47bzxoJiYoaD1vKX1lbHNlIGlmKGQ+MCl7aWYobz5oKXJldHVybjtvPnUmJih1PW8pfWlmKG89aS1sLGR8fCEobzwwKSl7aWYoby89ZCxkPDApe2lmKG8+aClyZXR1cm47bz51JiYodT1vKX1lbHNlIGlmKGQ+MCl7aWYobzx1KXJldHVybjtvPGgmJihoPW8pfWlmKG89bi1jLHB8fCEobz4wKSl7aWYoby89cCxwPDApe2lmKG88dSlyZXR1cm47bzxoJiYoaD1vKX1lbHNlIGlmKHA+MCl7aWYobz5oKXJldHVybjtvPnUmJih1PW8pfWlmKG89ci1jLHB8fCEobzwwKSl7aWYoby89cCxwPDApe2lmKG8+aClyZXR1cm47bz51JiYodT1vKX1lbHNlIGlmKHA+MCl7aWYobzx1KXJldHVybjtvPGgmJihoPW8pfXJldHVybiEodT4wfHxoPDEpfHwodT4wJiYodFswXT1bbCt1KmQsYyt1KnBdKSxoPDEmJih0WzFdPVtsK2gqZCxjK2gqcF0pLCEwKX19fX19ZnVuY3Rpb24gaGx0KHQsZSxuLGkscil7dmFyIG89dFsxXTtpZihvKXJldHVybiEwO3ZhciBhLHMsbD10WzBdLGM9dC5sZWZ0LHU9dC5yaWdodCxoPWNbMF0sZD1jWzFdLHA9dVswXSxmPXVbMV0sbT0oaCtwKS8yO2lmKGY9PT1kKXtpZihtPGV8fG0+PWkpcmV0dXJuO2lmKGg+cCl7aWYobCl7aWYobFsxXT49cilyZXR1cm59ZWxzZSBsPVttLG5dO289W20scl19ZWxzZXtpZihsKXtpZihsWzFdPG4pcmV0dXJufWVsc2UgbD1bbSxyXTtvPVttLG5dfX1lbHNlIGlmKHM9KGQrZikvMi0oYT0oaC1wKS8oZi1kKSkqbSxhPC0xfHxhPjEpaWYoaD5wKXtpZihsKXtpZihsWzFdPj1yKXJldHVybn1lbHNlIGw9WyhuLXMpL2Esbl07bz1bKHItcykvYSxyXX1lbHNle2lmKGwpe2lmKGxbMV08bilyZXR1cm59ZWxzZSBsPVsoci1zKS9hLHJdO289WyhuLXMpL2Esbl19ZWxzZSBpZihkPGYpe2lmKGwpe2lmKGxbMF0+PWkpcmV0dXJufWVsc2UgbD1bZSxhKmUrc107bz1baSxhKmkrc119ZWxzZXtpZihsKXtpZihsWzBdPGUpcmV0dXJufWVsc2UgbD1baSxhKmkrc107bz1bZSxhKmUrc119cmV0dXJuIHRbMF09bCx0WzFdPW8sITB9ZnVuY3Rpb24gZGx0KHQsZSl7dmFyIG49dC5zaXRlLGk9ZS5sZWZ0LHI9ZS5yaWdodDtyZXR1cm4gbj09PXImJihyPWksaT1uKSxyP01hdGguYXRhbjIoclsxXS1pWzFdLHJbMF0taVswXSk6KG49PT1pPyhpPWVbMV0scj1lWzBdKTooaT1lWzBdLHI9ZVsxXSksTWF0aC5hdGFuMihpWzBdLXJbMF0sclsxXS1pWzFdKSl9ZnVuY3Rpb24gcGx0KHQsZSl7cmV0dXJuIGVbKyhlLmxlZnQhPT10LnNpdGUpXX1mdW5jdGlvbiBmbHQodCxlKXtyZXR1cm4gZVsrKGUubGVmdD09PXQuc2l0ZSldfW5sdC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOm5sdCxpbnNlcnQ6ZnVuY3Rpb24odCxlKXt2YXIgbixpLHI7aWYodCl7aWYoZS5QPXQsZS5OPXQuTix0Lk4mJih0Lk4uUD1lKSx0Lk49ZSx0LlIpe2Zvcih0PXQuUjt0Lkw7KXQ9dC5MO3QuTD1lfWVsc2UgdC5SPWU7bj10fWVsc2UgdGhpcy5fPyh0PWFsdCh0aGlzLl8pLGUuUD1udWxsLGUuTj10LHQuUD10Lkw9ZSxuPXQpOihlLlA9ZS5OPW51bGwsdGhpcy5fPWUsbj1udWxsKTtmb3IoZS5MPWUuUj1udWxsLGUuVT1uLGUuQz0hMCx0PWU7biYmbi5DOyluPT09KGk9bi5VKS5MPyhyPWkuUikmJnIuQz8obi5DPXIuQz0hMSxpLkM9ITAsdD1pKToodD09PW4uUiYmKHJsdCh0aGlzLG4pLG49KHQ9bikuVSksbi5DPSExLGkuQz0hMCxvbHQodGhpcyxpKSk6KHI9aS5MKSYmci5DPyhuLkM9ci5DPSExLGkuQz0hMCx0PWkpOih0PT09bi5MJiYob2x0KHRoaXMsbiksbj0odD1uKS5VKSxuLkM9ITEsaS5DPSEwLHJsdCh0aGlzLGkpKSxuPXQuVTt0aGlzLl8uQz0hMX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3QuTiYmKHQuTi5QPXQuUCksdC5QJiYodC5QLk49dC5OKSx0Lk49dC5QPW51bGw7dmFyIGUsbixpLHI9dC5VLG89dC5MLGE9dC5SO2lmKG49bz9hP2FsdChhKTpvOmEscj9yLkw9PT10P3IuTD1uOnIuUj1uOnRoaXMuXz1uLG8mJmE/KGk9bi5DLG4uQz10LkMsbi5MPW8sby5VPW4sbiE9PWE/KHI9bi5VLG4uVT10LlUsci5MPXQ9bi5SLG4uUj1hLGEuVT1uKToobi5VPXIscj1uLHQ9bi5SKSk6KGk9dC5DLHQ9biksdCYmKHQuVT1yKSwhaSlpZih0JiZ0LkMpdC5DPSExO2Vsc2V7ZG97aWYodD09PXRoaXMuXylicmVhaztpZih0PT09ci5MKXtpZigoZT1yLlIpLkMmJihlLkM9ITEsci5DPSEwLHJsdCh0aGlzLHIpLGU9ci5SKSxlLkwmJmUuTC5DfHxlLlImJmUuUi5DKXtlLlImJmUuUi5DfHwoZS5MLkM9ITEsZS5DPSEwLG9sdCh0aGlzLGUpLGU9ci5SKSxlLkM9ci5DLHIuQz1lLlIuQz0hMSxybHQodGhpcyxyKSx0PXRoaXMuXzticmVha319ZWxzZSBpZigoZT1yLkwpLkMmJihlLkM9ITEsci5DPSEwLG9sdCh0aGlzLHIpLGU9ci5MKSxlLkwmJmUuTC5DfHxlLlImJmUuUi5DKXtlLkwmJmUuTC5DfHwoZS5SLkM9ITEsZS5DPSEwLHJsdCh0aGlzLGUpLGU9ci5MKSxlLkM9ci5DLHIuQz1lLkwuQz0hMSxvbHQodGhpcyxyKSx0PXRoaXMuXzticmVha31lLkM9ITAsdD1yLHI9ci5VfXdoaWxlKCF0LkMpO3QmJih0LkM9ITEpfX19O3ZhciBtbHQsZ2x0PVtdO2Z1bmN0aW9uIF9sdCgpe2lsdCh0aGlzKSx0aGlzLng9dGhpcy55PXRoaXMuYXJjPXRoaXMuc2l0ZT10aGlzLmN5PW51bGx9ZnVuY3Rpb24geWx0KHQpe3ZhciBlPXQuUCxuPXQuTjtpZihlJiZuKXt2YXIgaT1lLnNpdGUscj10LnNpdGUsbz1uLnNpdGU7aWYoaSE9PW8pe3ZhciBhPXJbMF0scz1yWzFdLGw9aVswXS1hLGM9aVsxXS1zLHU9b1swXS1hLGg9b1sxXS1zLGQ9MioobCpoLWMqdSk7aWYoIShkPj0tSWx0KSl7dmFyIHA9bCpsK2MqYyxmPXUqdStoKmgsbT0oaCpwLWMqZikvZCxnPShsKmYtdSpwKS9kLF89Z2x0LnBvcCgpfHxuZXcgX2x0O18uYXJjPXQsXy5zaXRlPXIsXy54PW0rYSxfLnk9KF8uY3k9ZytzKStNYXRoLnNxcnQobSptK2cqZyksdC5jaXJjbGU9Xztmb3IodmFyIHk9bnVsbCx2PUxsdC5fO3Y7KWlmKF8ueTx2Lnl8fF8ueT09PXYueSYmXy54PD12Lngpe2lmKCF2Lkwpe3k9di5QO2JyZWFrfXY9di5MfWVsc2V7aWYoIXYuUil7eT12O2JyZWFrfXY9di5SfUxsdC5pbnNlcnQoeSxfKSx5fHwobWx0PV8pfX19fWZ1bmN0aW9uIHZsdCh0KXt2YXIgZT10LmNpcmNsZTtlJiYoZS5QfHwobWx0PWUuTiksTGx0LnJlbW92ZShlKSxnbHQucHVzaChlKSxpbHQoZSksdC5jaXJjbGU9bnVsbCl9dmFyIGJsdD1bXTtmdW5jdGlvbiB4bHQoKXtpbHQodGhpcyksdGhpcy5lZGdlPXRoaXMuc2l0ZT10aGlzLmNpcmNsZT1udWxsfWZ1bmN0aW9uIHdsdCh0KXt2YXIgZT1ibHQucG9wKCl8fG5ldyB4bHQ7cmV0dXJuIGUuc2l0ZT10LGV9ZnVuY3Rpb24gU2x0KHQpe3ZsdCh0KSxBbHQucmVtb3ZlKHQpLGJsdC5wdXNoKHQpLGlsdCh0KX1mdW5jdGlvbiBNbHQodCl7dmFyIGU9dC5jaXJjbGUsbj1lLngsaT1lLmN5LHI9W24saV0sbz10LlAsYT10Lk4scz1bdF07U2x0KHQpO2Zvcih2YXIgbD1vO2wuY2lyY2xlJiZNYXRoLmFicyhuLWwuY2lyY2xlLngpPE5sdCYmTWF0aC5hYnMoaS1sLmNpcmNsZS5jeSk8Tmx0OylvPWwuUCxzLnVuc2hpZnQobCksU2x0KGwpLGw9bztzLnVuc2hpZnQobCksdmx0KGwpO2Zvcih2YXIgYz1hO2MuY2lyY2xlJiZNYXRoLmFicyhuLWMuY2lyY2xlLngpPE5sdCYmTWF0aC5hYnMoaS1jLmNpcmNsZS5jeSk8Tmx0OylhPWMuTixzLnB1c2goYyksU2x0KGMpLGM9YTtzLnB1c2goYyksdmx0KGMpO3ZhciB1LGg9cy5sZW5ndGg7Zm9yKHU9MTt1PGg7Kyt1KWNsdCgoYz1zW3VdKS5lZGdlLChsPXNbdS0xXSkuc2l0ZSxjLnNpdGUscik7KGM9c1toLTFdKS5lZGdlPXNsdCgobD1zWzBdKS5zaXRlLGMuc2l0ZSxudWxsLHIpLHlsdChsKSx5bHQoYyl9ZnVuY3Rpb24gRWx0KHQpe2Zvcih2YXIgZSxuLGkscixvPXRbMF0sYT10WzFdLHM9QWx0Ll87czspaWYoKGk9VGx0KHMsYSktbyk+Tmx0KXM9cy5MO2Vsc2V7aWYoISgocj1vLUNsdChzLGEpKT5ObHQpKXtpPi1ObHQ/KGU9cy5QLG49cyk6cj4tTmx0PyhlPXMsbj1zLk4pOmU9bj1zO2JyZWFrfWlmKCFzLlIpe2U9czticmVha31zPXMuUn0hKGZ1bmN0aW9uIGwodCl7cmV0dXJuIGtsdFt0LmluZGV4XT17c2l0ZTp0LGhhbGZlZGdlczpbXX19KSh0KTt2YXIgYz13bHQodCk7aWYoQWx0Lmluc2VydChlLGMpLGV8fG4pe2lmKGU9PT1uKXJldHVybiB2bHQoZSksbj13bHQoZS5zaXRlKSxBbHQuaW5zZXJ0KGMsbiksYy5lZGdlPW4uZWRnZT1zbHQoZS5zaXRlLGMuc2l0ZSkseWx0KGUpLHZvaWQgeWx0KG4pO2lmKG4pe3ZsdChlKSx2bHQobik7dmFyIHU9ZS5zaXRlLGg9dVswXSxkPXVbMV0scD10WzBdLWgsZj10WzFdLWQsbT1uLnNpdGUsZz1tWzBdLWgsXz1tWzFdLWQseT0yKihwKl8tZipnKSx2PXAqcCtmKmYsYj1nKmcrXypfLHg9WyhfKnYtZipiKS95K2gsKHAqYi1nKnYpL3krZF07Y2x0KG4uZWRnZSx1LG0seCksYy5lZGdlPXNsdCh1LHQsbnVsbCx4KSxuLmVkZ2U9c2x0KHQsbSxudWxsLHgpLHlsdChlKSx5bHQobil9ZWxzZSBjLmVkZ2U9c2x0KGUuc2l0ZSxjLnNpdGUpfX1mdW5jdGlvbiBUbHQodCxlKXt2YXIgbj10LnNpdGUsaT1uWzBdLHI9blsxXSxvPXItZTtpZighbylyZXR1cm4gaTt2YXIgYT10LlA7aWYoIWEpcmV0dXJuLTEvMDt2YXIgcz0obj1hLnNpdGUpWzBdLGw9blsxXSxjPWwtZTtpZighYylyZXR1cm4gczt2YXIgdT1zLWksaD0xL28tMS9jLGQ9dS9jO3JldHVybiBoPygtZCtNYXRoLnNxcnQoZCpkLTIqaCoodSp1LygtMipjKS1sK2MvMityLW8vMikpKS9oK2k6KGkrcykvMn1mdW5jdGlvbiBDbHQodCxlKXt2YXIgbj10Lk47aWYobilyZXR1cm4gVGx0KG4sZSk7dmFyIGk9dC5zaXRlO3JldHVybiBpWzFdPT09ZT9pWzBdOjEvMH12YXIgQWx0LGtsdCxMbHQsUGx0LE5sdD0xZS02LElsdD0xZS0xMjtmdW5jdGlvbiBSbHQodCxlLG4pe3JldHVybih0WzBdLW5bMF0pKihlWzFdLXRbMV0pLSh0WzBdLWVbMF0pKihuWzFdLXRbMV0pfWZ1bmN0aW9uIE9sdCh0LGUpe3JldHVybiBlWzFdLXRbMV18fGVbMF0tdFswXX1mdW5jdGlvbiB6bHQodCxlKXt2YXIgbixpLHIsbz10LnNvcnQoT2x0KS5wb3AoKTtmb3IoUGx0PVtdLGtsdD1uZXcgQXJyYXkodC5sZW5ndGgpLEFsdD1uZXcgbmx0LExsdD1uZXcgbmx0OzspaWYocj1tbHQsbyYmKCFyfHxvWzFdPHIueXx8b1sxXT09PXIueSYmb1swXTxyLngpKW9bMF09PT1uJiZvWzFdPT09aXx8KEVsdChvKSxuPW9bMF0saT1vWzFdKSxvPXQucG9wKCk7ZWxzZXtpZighcilicmVhaztNbHQoci5hcmMpfWlmKChmdW5jdGlvbiBhKCl7Zm9yKHZhciB0LGUsbixpLHI9MCxvPWtsdC5sZW5ndGg7cjxvOysrcilpZigodD1rbHRbcl0pJiYoaT0oZT10LmhhbGZlZGdlcykubGVuZ3RoKSl7dmFyIGE9bmV3IEFycmF5KGkpLHM9bmV3IEFycmF5KGkpO2ZvcihuPTA7bjxpOysrbilhW25dPW4sc1tuXT1kbHQodCxQbHRbZVtuXV0pO2ZvcihhLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHNbZV0tc1t0XX0pKSxuPTA7bjxpOysrbilzW25dPWVbYVtuXV07Zm9yKG49MDtuPGk7KytuKWVbbl09c1tuXX19KSgpLGUpe3ZhciBzPStlWzBdWzBdLGw9K2VbMF1bMV0sYz0rZVsxXVswXSx1PStlWzFdWzFdOyEoZnVuY3Rpb24gaCh0LGUsbixpKXtmb3IodmFyIHIsbz1QbHQubGVuZ3RoO28tLTspaGx0KHI9UGx0W29dLHQsZSxuLGkpJiZ1bHQocix0LGUsbixpKSYmKE1hdGguYWJzKHJbMF1bMF0tclsxXVswXSk+Tmx0fHxNYXRoLmFicyhyWzBdWzFdLXJbMV1bMV0pPk5sdCl8fGRlbGV0ZSBQbHRbb119KShzLGwsYyx1KSwoZnVuY3Rpb24gZCh0LGUsbixpKXt2YXIgcixvLGEscyxsLGMsdSxoLGQscCxmLG0sZz1rbHQubGVuZ3RoLF89ITA7Zm9yKHI9MDtyPGc7KytyKWlmKG89a2x0W3JdKXtmb3IoYT1vLnNpdGUscz0obD1vLmhhbGZlZGdlcykubGVuZ3RoO3MtLTspUGx0W2xbc11dfHxsLnNwbGljZShzLDEpO2ZvcihzPTAsYz1sLmxlbmd0aDtzPGM7KWY9KHA9Zmx0KG8sUGx0W2xbc11dKSlbMF0sbT1wWzFdLGg9KHU9cGx0KG8sUGx0W2xbKytzJWNdXSkpWzBdLGQ9dVsxXSwoTWF0aC5hYnMoZi1oKT5ObHR8fE1hdGguYWJzKG0tZCk+Tmx0KSYmKGwuc3BsaWNlKHMsMCxQbHQucHVzaChsbHQoYSxwLE1hdGguYWJzKGYtdCk8Tmx0JiZpLW0+Tmx0P1t0LE1hdGguYWJzKGgtdCk8Tmx0P2Q6aV06TWF0aC5hYnMobS1pKTxObHQmJm4tZj5ObHQ/W01hdGguYWJzKGQtaSk8Tmx0P2g6bixpXTpNYXRoLmFicyhmLW4pPE5sdCYmbS1lPk5sdD9bbixNYXRoLmFicyhoLW4pPE5sdD9kOmVdOk1hdGguYWJzKG0tZSk8Tmx0JiZmLXQ+Tmx0P1tNYXRoLmFicyhkLWUpPE5sdD9oOnQsZV06bnVsbCkpLTEpLCsrYyk7YyYmKF89ITEpfWlmKF8pe3ZhciB5LHYsYix4PTEvMDtmb3Iocj0wLF89bnVsbDtyPGc7KytyKShvPWtsdFtyXSkmJihiPSh5PShhPW8uc2l0ZSlbMF0tdCkqeSsodj1hWzFdLWUpKnYpPHgmJih4PWIsXz1vKTtpZihfKXt2YXIgdz1bdCxlXSxTPVt0LGldLE09W24saV0sRT1bbixlXTtfLmhhbGZlZGdlcy5wdXNoKFBsdC5wdXNoKGxsdChhPV8uc2l0ZSx3LFMpKS0xLFBsdC5wdXNoKGxsdChhLFMsTSkpLTEsUGx0LnB1c2gobGx0KGEsTSxFKSktMSxQbHQucHVzaChsbHQoYSxFLHcpKS0xKX19Zm9yKHI9MDtyPGc7KytyKShvPWtsdFtyXSkmJihvLmhhbGZlZGdlcy5sZW5ndGh8fGRlbGV0ZSBrbHRbcl0pfSkocyxsLGMsdSl9dGhpcy5lZGdlcz1QbHQsdGhpcy5jZWxscz1rbHQsQWx0PUxsdD1QbHQ9a2x0PW51bGx9emx0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6emx0LHBvbHlnb25zOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lZGdlcztyZXR1cm4gdGhpcy5jZWxscy5tYXAoKGZ1bmN0aW9uKGUpe3ZhciBuPWUuaGFsZmVkZ2VzLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuIHBsdChlLHRbbl0pfSkpO3JldHVybiBuLmRhdGE9ZS5zaXRlLmRhdGEsbn0pKX0sdHJpYW5nbGVzOmZ1bmN0aW9uKCl7dmFyIHQ9W10sZT10aGlzLmVkZ2VzO3JldHVybiB0aGlzLmNlbGxzLmZvckVhY2goKGZ1bmN0aW9uKG4saSl7aWYobz0ocj1uLmhhbGZlZGdlcykubGVuZ3RoKWZvcih2YXIgcixvLGEscz1uLnNpdGUsbD0tMSxjPWVbcltvLTFdXSx1PWMubGVmdD09PXM/Yy5yaWdodDpjLmxlZnQ7KytsPG87KWE9dSx1PShjPWVbcltsXV0pLmxlZnQ9PT1zP2MucmlnaHQ6Yy5sZWZ0LGEmJnUmJmk8YS5pbmRleCYmaTx1LmluZGV4JiZSbHQocyxhLHUpPDAmJnQucHVzaChbcy5kYXRhLGEuZGF0YSx1LmRhdGFdKX0pKSx0fSxsaW5rczpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZ2VzLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQucmlnaHR9KSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm57c291cmNlOnQubGVmdC5kYXRhLHRhcmdldDp0LnJpZ2h0LmRhdGF9fSkpfSxmaW5kOmZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGkscixvPXRoaXMsYT1vLl9mb3VuZHx8MCxzPW8uY2VsbHMubGVuZ3RoOyEocj1vLmNlbGxzW2FdKTspaWYoKythPj1zKXJldHVybiBudWxsO3ZhciBsPXQtci5zaXRlWzBdLGM9ZS1yLnNpdGVbMV0sdT1sKmwrYypjO2Rve3I9by5jZWxsc1tpPWFdLGE9bnVsbCxyLmhhbGZlZGdlcy5mb3JFYWNoKChmdW5jdGlvbihuKXt2YXIgaT1vLmVkZ2VzW25dLHM9aS5sZWZ0O2lmKHMhPT1yLnNpdGUmJnN8fChzPWkucmlnaHQpKXt2YXIgbD10LXNbMF0sYz1lLXNbMV0saD1sKmwrYypjO2g8dSYmKHU9aCxhPXMuaW5kZXgpfX0pKX13aGlsZShudWxsIT09YSk7cmV0dXJuIG8uX2ZvdW5kPWksbnVsbD09bnx8dTw9bipuP3Iuc2l0ZTpudWxsfX07dmFyIERsdD17dmFsdWU6ZnVuY3Rpb24oKXt9fTtmdW5jdGlvbiBCbHQoKXtmb3IodmFyIHQsZT0wLG49YXJndW1lbnRzLmxlbmd0aCxpPXt9O2U8bjsrK2Upe2lmKCEodD1hcmd1bWVudHNbZV0rIiIpfHx0IGluIGl8fC9bXHMuXS8udGVzdCh0KSl0aHJvdyBuZXcgRXJyb3IoImlsbGVnYWwgdHlwZTogIit0KTtpW3RdPVtdfXJldHVybiBuZXcgSGx0KGkpfWZ1bmN0aW9uIEhsdCh0KXt0aGlzLl89dH1mdW5jdGlvbiBGbHQodCxlKXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLykubWFwKChmdW5jdGlvbih0KXt2YXIgbj0iIixpPXQuaW5kZXhPZigiLiIpO2lmKGk+PTAmJihuPXQuc2xpY2UoaSsxKSx0PXQuc2xpY2UoMCxpKSksdCYmIWUuaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrdCk7cmV0dXJue3R5cGU6dCxuYW1lOm59fSkpfWZ1bmN0aW9uIFZsdCh0LGUpe2Zvcih2YXIgbixpPTAscj10Lmxlbmd0aDtpPHI7KytpKWlmKChuPXRbaV0pLm5hbWU9PT1lKXJldHVybiBuLnZhbHVlfWZ1bmN0aW9uIFVsdCh0LGUsbil7Zm9yKHZhciBpPTAscj10Lmxlbmd0aDtpPHI7KytpKWlmKHRbaV0ubmFtZT09PWUpe3RbaV09RGx0LHQ9dC5zbGljZSgwLGkpLmNvbmNhdCh0LnNsaWNlKGkrMSkpO2JyZWFrfXJldHVybiBudWxsIT1uJiZ0LnB1c2goe25hbWU6ZSx2YWx1ZTpufSksdH1IbHQucHJvdG90eXBlPUJsdC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkhsdCxvbjpmdW5jdGlvbih0LGUpe3ZhciBuLGk9dGhpcy5fLHI9Rmx0KHQrIiIsaSksbz0tMSxhPXIubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7aWYobnVsbCE9ZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNhbGxiYWNrOiAiK2UpO2Zvcig7KytvPGE7KWlmKG49KHQ9cltvXSkudHlwZSlpW25dPVVsdChpW25dLHQubmFtZSxlKTtlbHNlIGlmKG51bGw9PWUpZm9yKG4gaW4gaSlpW25dPVVsdChpW25dLHQubmFtZSxudWxsKTtyZXR1cm4gdGhpc31mb3IoOysrbzxhOylpZigobj0odD1yW29dKS50eXBlKSYmKG49Vmx0KGlbbl0sdC5uYW1lKSkpcmV0dXJuIG59LGNvcHk6ZnVuY3Rpb24oKXt2YXIgdD17fSxlPXRoaXMuXztmb3IodmFyIG4gaW4gZSl0W25dPWVbbl0uc2xpY2UoKTtyZXR1cm4gbmV3IEhsdCh0KX0sY2FsbDpmdW5jdGlvbih0LGUpe2lmKChuPWFyZ3VtZW50cy5sZW5ndGgtMik+MClmb3IodmFyIG4saSxyPW5ldyBBcnJheShuKSxvPTA7bzxuOysrbylyW29dPWFyZ3VtZW50c1tvKzJdO2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrdCk7Zm9yKG89MCxuPShpPXRoaXMuX1t0XSkubGVuZ3RoO288bjsrK28paVtvXS52YWx1ZS5hcHBseShlLHIpfSxhcHBseTpmdW5jdGlvbih0LGUsbil7aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtmb3IodmFyIGk9dGhpcy5fW3RdLHI9MCxvPWkubGVuZ3RoO3I8bzsrK3IpaVtyXS52YWx1ZS5hcHBseShlLG4pfX07dmFyIGpsdD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsR2x0PXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDpqbHQseGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHhtbDoiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8ifTtmdW5jdGlvbiBXbHQodCl7dmFyIGU9dCs9IiIsbj1lLmluZGV4T2YoIjoiKTtyZXR1cm4gbj49MCYmInhtbG5zIiE9PShlPXQuc2xpY2UoMCxuKSkmJih0PXQuc2xpY2UobisxKSksR2x0Lmhhc093blByb3BlcnR5KGUpP3tzcGFjZTpHbHRbZV0sbG9jYWw6dH06dH1mdW5jdGlvbiBxbHQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vd25lckRvY3VtZW50LG49dGhpcy5uYW1lc3BhY2VVUkk7cmV0dXJuIG49PT1qbHQmJmUuZG9jdW1lbnRFbGVtZW50Lm5hbWVzcGFjZVVSST09PWpsdD9lLmNyZWF0ZUVsZW1lbnQodCk6ZS5jcmVhdGVFbGVtZW50TlMobix0KX19ZnVuY3Rpb24gWWx0KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIFhsdCh0KXt2YXIgZT1XbHQodCk7cmV0dXJuKGUubG9jYWw/WWx0OnFsdCkoZSl9ZnVuY3Rpb24gJGx0KCl7fWZ1bmN0aW9uIEtsdCh0KXtyZXR1cm4gbnVsbD09dD8kbHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKHQpfX1mdW5jdGlvbiBabHQoKXtyZXR1cm5bXX1mdW5jdGlvbiBKbHQodCl7cmV0dXJuIG51bGw9PXQ/Wmx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbCh0KX19ZnVuY3Rpb24gUWx0KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hdGNoZXModCl9fWZ1bmN0aW9uIHRjdCh0KXtyZXR1cm4gbmV3IEFycmF5KHQubGVuZ3RoKX1mdW5jdGlvbiBlY3QodCxlKXt0aGlzLm93bmVyRG9jdW1lbnQ9dC5vd25lckRvY3VtZW50LHRoaXMubmFtZXNwYWNlVVJJPXQubmFtZXNwYWNlVVJJLHRoaXMuX25leHQ9bnVsbCx0aGlzLl9wYXJlbnQ9dCx0aGlzLl9fZGF0YV9fPWV9ZWN0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6ZWN0LGFwcGVuZENoaWxkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKHQsdGhpcy5fbmV4dCl9LGluc2VydEJlZm9yZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKHQsZSl9LHF1ZXJ5U2VsZWN0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yKHQpfSxxdWVyeVNlbGVjdG9yQWxsOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3RvckFsbCh0KX19O2Z1bmN0aW9uIG5jdCh0LGUsbixpLHIsbyl7Zm9yKHZhciBhLHM9MCxsPWUubGVuZ3RoLGM9by5sZW5ndGg7czxjOysrcykoYT1lW3NdKT8oYS5fX2RhdGFfXz1vW3NdLGlbc109YSk6bltzXT1uZXcgZWN0KHQsb1tzXSk7Zm9yKDtzPGw7KytzKShhPWVbc10pJiYocltzXT1hKX1mdW5jdGlvbiBpY3QodCxlLG4saSxyLG8sYSl7dmFyIHMsbCxjLHU9e30saD1lLmxlbmd0aCxkPW8ubGVuZ3RoLHA9bmV3IEFycmF5KGgpO2ZvcihzPTA7czxoOysrcykobD1lW3NdKSYmKHBbc109Yz0iJCIrYS5jYWxsKGwsbC5fX2RhdGFfXyxzLGUpLGMgaW4gdT9yW3NdPWw6dVtjXT1sKTtmb3Iocz0wO3M8ZDsrK3MpKGw9dVtjPSIkIithLmNhbGwodCxvW3NdLHMsbyldKT8oaVtzXT1sLGwuX19kYXRhX189b1tzXSx1W2NdPW51bGwpOm5bc109bmV3IGVjdCh0LG9bc10pO2ZvcihzPTA7czxoOysrcykobD1lW3NdKSYmdVtwW3NdXT09PWwmJihyW3NdPWwpfWZ1bmN0aW9uIHJjdCh0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6dD49ZT8wOk5hTn1mdW5jdGlvbiBvY3QodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fWZ1bmN0aW9uIGFjdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIHNjdCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlKHQsZSl9fWZ1bmN0aW9uIGxjdCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLGUpfX1mdW5jdGlvbiBjY3QodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpOnRoaXMuc2V0QXR0cmlidXRlKHQsbil9fWZ1bmN0aW9uIHVjdCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PW4/dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpOnRoaXMuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLG4pfX1mdW5jdGlvbiBoY3QodCl7cmV0dXJuIHQub3duZXJEb2N1bWVudCYmdC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx0LmRvY3VtZW50JiZ0fHx0LmRlZmF1bHRWaWV3fWZ1bmN0aW9uIGRjdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpfX1mdW5jdGlvbiBwY3QodCxlLG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxlLG4pfX1mdW5jdGlvbiBmY3QodCxlLG4pe3JldHVybiBmdW5jdGlvbigpe3ZhciBpPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PWk/dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KTp0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQsaSxuKX19ZnVuY3Rpb24gbWN0KHQsZSl7cmV0dXJuIHQuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShlKXx8aGN0KHQpLmdldENvbXB1dGVkU3R5bGUodCxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKGUpfWZ1bmN0aW9uIGdjdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtkZWxldGUgdGhpc1t0XX19ZnVuY3Rpb24gX2N0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpc1t0XT1lfX1mdW5jdGlvbiB5Y3QodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP2RlbGV0ZSB0aGlzW3RdOnRoaXNbdF09bn19ZnVuY3Rpb24gdmN0KHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKX1mdW5jdGlvbiBiY3QodCl7cmV0dXJuIHQuY2xhc3NMaXN0fHxuZXcgeGN0KHQpfWZ1bmN0aW9uIHhjdCh0KXt0aGlzLl9ub2RlPXQsdGhpcy5fbmFtZXM9dmN0KHQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9ZnVuY3Rpb24gd2N0KHQsZSl7Zm9yKHZhciBuPWJjdCh0KSxpPS0xLHI9ZS5sZW5ndGg7KytpPHI7KW4uYWRkKGVbaV0pfWZ1bmN0aW9uIFNjdCh0LGUpe2Zvcih2YXIgbj1iY3QodCksaT0tMSxyPWUubGVuZ3RoOysraTxyOyluLnJlbW92ZShlW2ldKX1mdW5jdGlvbiBNY3QodCl7cmV0dXJuIGZ1bmN0aW9uKCl7d2N0KHRoaXMsdCl9fWZ1bmN0aW9uIEVjdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtTY3QodGhpcyx0KX19ZnVuY3Rpb24gVGN0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7KGUuYXBwbHkodGhpcyxhcmd1bWVudHMpP3djdDpTY3QpKHRoaXMsdCl9fWZ1bmN0aW9uIENjdCgpe3RoaXMudGV4dENvbnRlbnQ9IiJ9ZnVuY3Rpb24gQWN0KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH19ZnVuY3Rpb24ga2N0KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMudGV4dENvbnRlbnQ9bnVsbD09ZT8iIjplfX1mdW5jdGlvbiBMY3QoKXt0aGlzLmlubmVySFRNTD0iIn1mdW5jdGlvbiBQY3QodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5pbm5lckhUTUw9dH19ZnVuY3Rpb24gTmN0KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuaW5uZXJIVE1MPW51bGw9PWU/IiI6ZX19ZnVuY3Rpb24gSWN0KCl7dGhpcy5uZXh0U2libGluZyYmdGhpcy5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHRoaXMpfWZ1bmN0aW9uIFJjdCgpe3RoaXMucHJldmlvdXNTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMsdGhpcy5wYXJlbnROb2RlLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIE9jdCgpe3JldHVybiBudWxsfWZ1bmN0aW9uIHpjdCgpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTt0JiZ0LnJlbW92ZUNoaWxkKHRoaXMpfWZ1bmN0aW9uIERjdCgpe3ZhciB0PXRoaXMuY2xvbmVOb2RlKCExKSxlPXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gZT9lLmluc2VydEJlZm9yZSh0LHRoaXMubmV4dFNpYmxpbmcpOnR9ZnVuY3Rpb24gQmN0KCl7dmFyIHQ9dGhpcy5jbG9uZU5vZGUoITApLGU9dGhpcy5wYXJlbnROb2RlO3JldHVybiBlP2UuaW5zZXJ0QmVmb3JlKHQsdGhpcy5uZXh0U2libGluZyk6dH14Y3QucHJvdG90eXBlPXthZGQ6ZnVuY3Rpb24odCl7dGhpcy5fbmFtZXMuaW5kZXhPZih0KTwwJiYodGhpcy5fbmFtZXMucHVzaCh0KSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbmFtZXMuaW5kZXhPZih0KTtlPj0wJiYodGhpcy5fbmFtZXMuc3BsaWNlKGUsMSksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix0aGlzLl9uYW1lcy5qb2luKCIgIikpKX0sY29udGFpbnM6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX25hbWVzLmluZGV4T2YodCk+PTB9fTt2YXIgSGN0PXt9LEZjdD1udWxsOyJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJigib25tb3VzZWVudGVyImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudHx8KEhjdD17bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9KSk7ZnVuY3Rpb24gVmN0KHQsZSxuKXtyZXR1cm4gdD1VY3QodCxlLG4pLGZ1bmN0aW9uKGUpe3ZhciBuPWUucmVsYXRlZFRhcmdldDtuJiYobj09PXRoaXN8fDgmbi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0aGlzKSl8fHQuY2FsbCh0aGlzLGUpfX1mdW5jdGlvbiBVY3QodCxlLG4pe3JldHVybiBmdW5jdGlvbihpKXt2YXIgcj1GY3Q7RmN0PWk7dHJ5e3QuY2FsbCh0aGlzLHRoaXMuX19kYXRhX18sZSxuKX1maW5hbGx5e0ZjdD1yfX19ZnVuY3Rpb24gamN0KHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlPSIiLG49dC5pbmRleE9mKCIuIik7cmV0dXJuIG4+PTAmJihlPXQuc2xpY2UobisxKSx0PXQuc2xpY2UoMCxuKSkse3R5cGU6dCxuYW1lOmV9fSkpfWZ1bmN0aW9uIEdjdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9fb247aWYoZSl7Zm9yKHZhciBuLGk9MCxyPS0xLG89ZS5sZW5ndGg7aTxvOysraSluPWVbaV0sdC50eXBlJiZuLnR5cGUhPT10LnR5cGV8fG4ubmFtZSE9PXQubmFtZT9lWysrcl09bjp0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIobi50eXBlLG4ubGlzdGVuZXIsbi5jYXB0dXJlKTsrK3I/ZS5sZW5ndGg9cjpkZWxldGUgdGhpcy5fX29ufX19ZnVuY3Rpb24gV2N0KHQsZSxuKXt2YXIgaT1IY3QuaGFzT3duUHJvcGVydHkodC50eXBlKT9WY3Q6VWN0O3JldHVybiBmdW5jdGlvbihyLG8sYSl7dmFyIHMsbD10aGlzLl9fb24sYz1pKGUsbyxhKTtpZihsKWZvcih2YXIgdT0wLGg9bC5sZW5ndGg7dTxoOysrdSlpZigocz1sW3VdKS50eXBlPT09dC50eXBlJiZzLm5hbWU9PT10Lm5hbWUpcmV0dXJuIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihzLnR5cGUscy5saXN0ZW5lcixzLmNhcHR1cmUpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihzLnR5cGUscy5saXN0ZW5lcj1jLHMuY2FwdHVyZT1uKSx2b2lkKHMudmFsdWU9ZSk7dGhpcy5hZGRFdmVudExpc3RlbmVyKHQudHlwZSxjLG4pLHM9e3R5cGU6dC50eXBlLG5hbWU6dC5uYW1lLHZhbHVlOmUsbGlzdGVuZXI6YyxjYXB0dXJlOm59LGw/bC5wdXNoKHMpOnRoaXMuX19vbj1bc119fWZ1bmN0aW9uIHFjdCh0LGUsbil7dmFyIGk9aGN0KHQpLHI9aS5DdXN0b21FdmVudDsiZnVuY3Rpb24iPT10eXBlb2Ygcj9yPW5ldyByKGUsbik6KHI9aS5kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSxuPyhyLmluaXRFdmVudChlLG4uYnViYmxlcyxuLmNhbmNlbGFibGUpLHIuZGV0YWlsPW4uZGV0YWlsKTpyLmluaXRFdmVudChlLCExLCExKSksdC5kaXNwYXRjaEV2ZW50KHIpfWZ1bmN0aW9uIFljdCh0LGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBxY3QodGhpcyx0LGUpfX1mdW5jdGlvbiBYY3QodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcWN0KHRoaXMsdCxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fXZhciAkY3Q9W251bGxdO2Z1bmN0aW9uIEtjdCh0LGUpe3RoaXMuX2dyb3Vwcz10LHRoaXMuX3BhcmVudHM9ZX1mdW5jdGlvbiBaY3QoKXtyZXR1cm4gbmV3IEtjdChbW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF1dLCRjdCl9ZnVuY3Rpb24gSmN0KHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdD9uZXcgS2N0KFtbZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0KV1dLFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdKTpuZXcgS2N0KFtbdF1dLCRjdCl9ZnVuY3Rpb24gUWN0KCl7Zm9yKHZhciB0LGU9RmN0O3Q9ZS5zb3VyY2VFdmVudDspZT10O3JldHVybiBlfWZ1bmN0aW9uIHR1dCh0LGUpe3ZhciBuPXQub3duZXJTVkdFbGVtZW50fHx0O2lmKG4uY3JlYXRlU1ZHUG9pbnQpe3ZhciBpPW4uY3JlYXRlU1ZHUG9pbnQoKTtyZXR1cm4gaS54PWUuY2xpZW50WCxpLnk9ZS5jbGllbnRZLFsoaT1pLm1hdHJpeFRyYW5zZm9ybSh0LmdldFNjcmVlbkNUTSgpLmludmVyc2UoKSkpLngsaS55XX12YXIgcj10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybltlLmNsaWVudFgtci5sZWZ0LXQuY2xpZW50TGVmdCxlLmNsaWVudFktci50b3AtdC5jbGllbnRUb3BdfWZ1bmN0aW9uIGV1dCh0KXt2YXIgZT1RY3QoKTtyZXR1cm4gZS5jaGFuZ2VkVG91Y2hlcyYmKGU9ZS5jaGFuZ2VkVG91Y2hlc1swXSksdHV0KHQsZSl9ZnVuY3Rpb24gbnV0KHQsZSxuKXthcmd1bWVudHMubGVuZ3RoPDMmJihuPWUsZT1RY3QoKS5jaGFuZ2VkVG91Y2hlcyk7Zm9yKHZhciBpLHI9MCxvPWU/ZS5sZW5ndGg6MDtyPG87KytyKWlmKChpPWVbcl0pLmlkZW50aWZpZXI9PT1uKXJldHVybiB0dXQodCxpKTtyZXR1cm4gbnVsbH1mdW5jdGlvbiBpdXQoKXtGY3QucHJldmVudERlZmF1bHQoKSxGY3Quc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gcnV0KHQpe3ZhciBlPXQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LG49SmN0KHQpLm9uKCJkcmFnc3RhcnQuZHJhZyIsaXV0LCEwKTsib25zZWxlY3RzdGFydCJpbiBlP24ub24oInNlbGVjdHN0YXJ0LmRyYWciLGl1dCwhMCk6KGUuX19ub3NlbGVjdD1lLnN0eWxlLk1velVzZXJTZWxlY3QsZS5zdHlsZS5Nb3pVc2VyU2VsZWN0PSJub25lIil9ZnVuY3Rpb24gb3V0KHQsZSl7dmFyIG49dC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsaT1KY3QodCkub24oImRyYWdzdGFydC5kcmFnIixudWxsKTtlJiYoaS5vbigiY2xpY2suZHJhZyIsaXV0LCEwKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2kub24oImNsaWNrLmRyYWciLG51bGwpfSksMCkpLCJvbnNlbGVjdHN0YXJ0ImluIG4/aS5vbigic2VsZWN0c3RhcnQuZHJhZyIsbnVsbCk6KG4uc3R5bGUuTW96VXNlclNlbGVjdD1uLl9fbm9zZWxlY3QsZGVsZXRlIG4uX19ub3NlbGVjdCl9ZnVuY3Rpb24gYXV0KHQsZSxuKXt0LnByb3RvdHlwZT1lLnByb3RvdHlwZT1uLG4uY29uc3RydWN0b3I9dH1mdW5jdGlvbiBzdXQodCxlKXt2YXIgbj1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlKTtmb3IodmFyIGkgaW4gZSluW2ldPWVbaV07cmV0dXJuIG59ZnVuY3Rpb24gbHV0KCl7fUtjdC5wcm90b3R5cGU9WmN0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6S2N0LHNlbGVjdDpmdW5jdGlvbiBjdXQodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PUtsdCh0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWZvcih2YXIgbyxhLHM9ZVtyXSxsPXMubGVuZ3RoLGM9aVtyXT1uZXcgQXJyYXkobCksdT0wO3U8bDsrK3UpKG89c1t1XSkmJihhPXQuY2FsbChvLG8uX19kYXRhX18sdSxzKSkmJigiX19kYXRhX18iaW4gbyYmKGEuX19kYXRhX189by5fX2RhdGFfXyksY1t1XT1hKTtyZXR1cm4gbmV3IEtjdChpLHRoaXMuX3BhcmVudHMpfSxzZWxlY3RBbGw6ZnVuY3Rpb24gdXV0KHQpeyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1KbHQodCkpO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj1lLmxlbmd0aCxpPVtdLHI9W10sbz0wO288bjsrK28pZm9yKHZhciBhLHM9ZVtvXSxsPXMubGVuZ3RoLGM9MDtjPGw7KytjKShhPXNbY10pJiYoaS5wdXNoKHQuY2FsbChhLGEuX19kYXRhX18sYyxzKSksci5wdXNoKGEpKTtyZXR1cm4gbmV3IEtjdChpLHIpfSxmaWx0ZXI6ZnVuY3Rpb24gaHV0KHQpeyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1RbHQodCkpO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj1lLmxlbmd0aCxpPW5ldyBBcnJheShuKSxyPTA7cjxuOysrcilmb3IodmFyIG8sYT1lW3JdLHM9YS5sZW5ndGgsbD1pW3JdPVtdLGM9MDtjPHM7KytjKShvPWFbY10pJiZ0LmNhbGwobyxvLl9fZGF0YV9fLGMsYSkmJmwucHVzaChvKTtyZXR1cm4gbmV3IEtjdChpLHRoaXMuX3BhcmVudHMpfSxkYXRhOmZ1bmN0aW9uIGR1dCh0LGUpe2lmKCF0KXJldHVybiBmPW5ldyBBcnJheSh0aGlzLnNpemUoKSksdT0tMSx0aGlzLmVhY2goKGZ1bmN0aW9uKHQpe2ZbKyt1XT10fSkpLGY7dmFyIG49ZT9pY3Q6bmN0LGk9dGhpcy5fcGFyZW50cyxyPXRoaXMuX2dyb3VwczsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9KGZ1bmN0aW9uIG8odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fSkodCkpO2Zvcih2YXIgYT1yLmxlbmd0aCxzPW5ldyBBcnJheShhKSxsPW5ldyBBcnJheShhKSxjPW5ldyBBcnJheShhKSx1PTA7dTxhOysrdSl7dmFyIGg9aVt1XSxkPXJbdV0scD1kLmxlbmd0aCxmPXQuY2FsbChoLGgmJmguX19kYXRhX18sdSxpKSxtPWYubGVuZ3RoLGc9bFt1XT1uZXcgQXJyYXkobSksXz1zW3VdPW5ldyBBcnJheShtKTtuKGgsZCxnLF8sY1t1XT1uZXcgQXJyYXkocCksZixlKTtmb3IodmFyIHksdixiPTAseD0wO2I8bTsrK2IpaWYoeT1nW2JdKXtmb3IoYj49eCYmKHg9YisxKTshKHY9X1t4XSkmJisreDxtOyk7eS5fbmV4dD12fHxudWxsfX1yZXR1cm4ocz1uZXcgS2N0KHMsaSkpLl9lbnRlcj1sLHMuX2V4aXQ9YyxzfSxlbnRlcjpmdW5jdGlvbiBwdXQoKXtyZXR1cm4gbmV3IEtjdCh0aGlzLl9lbnRlcnx8dGhpcy5fZ3JvdXBzLm1hcCh0Y3QpLHRoaXMuX3BhcmVudHMpfSxleGl0OmZ1bmN0aW9uIGZ1dCgpe3JldHVybiBuZXcgS2N0KHRoaXMuX2V4aXR8fHRoaXMuX2dyb3Vwcy5tYXAodGN0KSx0aGlzLl9wYXJlbnRzKX0sam9pbjpmdW5jdGlvbiBtdXQodCxlLG4pe3ZhciBpPXRoaXMuZW50ZXIoKSxyPXRoaXMsbz10aGlzLmV4aXQoKTtyZXR1cm4gaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90KGkpOmkuYXBwZW5kKHQrIiIpLG51bGwhPWUmJihyPWUocikpLG51bGw9PW4/by5yZW1vdmUoKTpuKG8pLGkmJnI/aS5tZXJnZShyKS5vcmRlcigpOnJ9LG1lcmdlOmZ1bmN0aW9uIGd1dCh0KXtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49dC5fZ3JvdXBzLGk9ZS5sZW5ndGgscj1NYXRoLm1pbihpLG4ubGVuZ3RoKSxvPW5ldyBBcnJheShpKSxhPTA7YTxyOysrYSlmb3IodmFyIHMsbD1lW2FdLGM9blthXSx1PWwubGVuZ3RoLGg9b1thXT1uZXcgQXJyYXkodSksZD0wO2Q8dTsrK2QpKHM9bFtkXXx8Y1tkXSkmJihoW2RdPXMpO2Zvcig7YTxpOysrYSlvW2FdPWVbYV07cmV0dXJuIG5ldyBLY3Qobyx0aGlzLl9wYXJlbnRzKX0sb3JkZXI6ZnVuY3Rpb24gX3V0KCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxlPS0xLG49dC5sZW5ndGg7KytlPG47KWZvcih2YXIgaSxyPXRbZV0sbz1yLmxlbmd0aC0xLGE9cltvXTstLW8+PTA7KShpPXJbb10pJiYoYSYmNF5pLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGEpJiZhLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGksYSksYT1pKTtyZXR1cm4gdGhpc30sc29ydDpmdW5jdGlvbiB5dXQodCl7ZnVuY3Rpb24gZShlLG4pe3JldHVybiBlJiZuP3QoZS5fX2RhdGFfXyxuLl9fZGF0YV9fKTohZS0hbn10fHwodD1yY3QpO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsaT1uLmxlbmd0aCxyPW5ldyBBcnJheShpKSxvPTA7bzxpOysrbyl7Zm9yKHZhciBhLHM9bltvXSxsPXMubGVuZ3RoLGM9cltvXT1uZXcgQXJyYXkobCksdT0wO3U8bDsrK3UpKGE9c1t1XSkmJihjW3VdPWEpO2Muc29ydChlKX1yZXR1cm4gbmV3IEtjdChyLHRoaXMuX3BhcmVudHMpLm9yZGVyKCl9LGNhbGw6ZnVuY3Rpb24gdnV0KCl7dmFyIHQ9YXJndW1lbnRzWzBdO3JldHVybiBhcmd1bWVudHNbMF09dGhpcyx0LmFwcGx5KG51bGwsYXJndW1lbnRzKSx0aGlzfSxub2RlczpmdW5jdGlvbiBidXQoKXt2YXIgdD1uZXcgQXJyYXkodGhpcy5zaXplKCkpLGU9LTE7cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXt0WysrZV09dGhpc30pKSx0fSxub2RlOmZ1bmN0aW9uIHh1dCgpe2Zvcih2YXIgdD10aGlzLl9ncm91cHMsZT0wLG49dC5sZW5ndGg7ZTxuOysrZSlmb3IodmFyIGk9dFtlXSxyPTAsbz1pLmxlbmd0aDtyPG87KytyKXt2YXIgYT1pW3JdO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9LHNpemU6ZnVuY3Rpb24gd3V0KCl7dmFyIHQ9MDtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpeysrdH0pKSx0fSxlbXB0eTpmdW5jdGlvbiBTdXQoKXtyZXR1cm4hdGhpcy5ub2RlKCl9LGVhY2g6ZnVuY3Rpb24gTXV0KHQpe2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj0wLGk9ZS5sZW5ndGg7bjxpOysrbilmb3IodmFyIHIsbz1lW25dLGE9MCxzPW8ubGVuZ3RoO2E8czsrK2EpKHI9b1thXSkmJnQuY2FsbChyLHIuX19kYXRhX18sYSxvKTtyZXR1cm4gdGhpc30sYXR0cjpmdW5jdGlvbiBFdXQodCxlKXt2YXIgbj1XbHQodCk7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXt2YXIgaT10aGlzLm5vZGUoKTtyZXR1cm4gbi5sb2NhbD9pLmdldEF0dHJpYnV0ZU5TKG4uc3BhY2Usbi5sb2NhbCk6aS5nZXRBdHRyaWJ1dGUobil9cmV0dXJuIHRoaXMuZWFjaCgobnVsbD09ZT9uLmxvY2FsP2FjdDpvY3Q6ImZ1bmN0aW9uIj09dHlwZW9mIGU/bi5sb2NhbD91Y3Q6Y2N0Om4ubG9jYWw/bGN0OnNjdCkobixlKSl9LHN0eWxlOmZ1bmN0aW9uIFR1dCh0LGUsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PWU/ZGN0OiJmdW5jdGlvbiI9PXR5cGVvZiBlP2ZjdDpwY3QpKHQsZSxudWxsPT1uPyIiOm4pKTptY3QodGhpcy5ub2RlKCksdCl9LHByb3BlcnR5OmZ1bmN0aW9uIEN1dCh0LGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKChudWxsPT1lP2djdDoiZnVuY3Rpb24iPT10eXBlb2YgZT95Y3Q6X2N0KSh0LGUpKTp0aGlzLm5vZGUoKVt0XX0sY2xhc3NlZDpmdW5jdGlvbiBBdXQodCxlKXt2YXIgbj12Y3QodCsiIik7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtmb3IodmFyIGk9YmN0KHRoaXMubm9kZSgpKSxyPS0xLG89bi5sZW5ndGg7KytyPG87KWlmKCFpLmNvbnRhaW5zKG5bcl0pKXJldHVybiExO3JldHVybiEwfXJldHVybiB0aGlzLmVhY2goKCJmdW5jdGlvbiI9PXR5cGVvZiBlP1RjdDplP01jdDpFY3QpKG4sZSkpfSx0ZXh0OmZ1bmN0aW9uIGt1dCh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD9DY3Q6KCJmdW5jdGlvbiI9PXR5cGVvZiB0P2tjdDpBY3QpKHQpKTp0aGlzLm5vZGUoKS50ZXh0Q29udGVudH0saHRtbDpmdW5jdGlvbiBMdXQodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKG51bGw9PXQ/TGN0OigiZnVuY3Rpb24iPT10eXBlb2YgdD9OY3Q6UGN0KSh0KSk6dGhpcy5ub2RlKCkuaW5uZXJIVE1MfSxyYWlzZTpmdW5jdGlvbiBQdXQoKXtyZXR1cm4gdGhpcy5lYWNoKEljdCl9LGxvd2VyOmZ1bmN0aW9uIE51dCgpe3JldHVybiB0aGlzLmVhY2goUmN0KX0sYXBwZW5kOmZ1bmN0aW9uIEl1dCh0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlhsdCh0KTtyZXR1cm4gdGhpcy5zZWxlY3QoKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXBwZW5kQ2hpbGQoZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSkpfSxpbnNlcnQ6ZnVuY3Rpb24gUnV0KHQsZSl7dmFyIG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpYbHQodCksaT1udWxsPT1lP09jdDoiZnVuY3Rpb24iPT10eXBlb2YgZT9lOktsdChlKTtyZXR1cm4gdGhpcy5zZWxlY3QoKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zZXJ0QmVmb3JlKG4uYXBwbHkodGhpcyxhcmd1bWVudHMpLGkuYXBwbHkodGhpcyxhcmd1bWVudHMpfHxudWxsKX0pKX0scmVtb3ZlOmZ1bmN0aW9uIE91dCgpe3JldHVybiB0aGlzLmVhY2goemN0KX0sY2xvbmU6ZnVuY3Rpb24genV0KHQpe3JldHVybiB0aGlzLnNlbGVjdCh0P0JjdDpEY3QpfSxkYXR1bTpmdW5jdGlvbiBEdXQodCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5wcm9wZXJ0eSgiX19kYXRhX18iLHQpOnRoaXMubm9kZSgpLl9fZGF0YV9ffSxvbjpmdW5jdGlvbiBCdXQodCxlLG4pe3ZhciBpLHIsbz1qY3QodCsiIiksYT1vLmxlbmd0aDtpZighKGFyZ3VtZW50cy5sZW5ndGg8Mikpe2ZvcihzPWU/V2N0OkdjdCxudWxsPT1uJiYobj0hMSksaT0wO2k8YTsrK2kpdGhpcy5lYWNoKHMob1tpXSxlLG4pKTtyZXR1cm4gdGhpc312YXIgcz10aGlzLm5vZGUoKS5fX29uO2lmKHMpZm9yKHZhciBsLGM9MCx1PXMubGVuZ3RoO2M8dTsrK2MpZm9yKGk9MCxsPXNbY107aTxhOysraSlpZigocj1vW2ldKS50eXBlPT09bC50eXBlJiZyLm5hbWU9PT1sLm5hbWUpcmV0dXJuIGwudmFsdWV9LGRpc3BhdGNoOmZ1bmN0aW9uIEh1dCh0LGUpe3JldHVybiB0aGlzLmVhY2goKCJmdW5jdGlvbiI9PXR5cGVvZiBlP1hjdDpZY3QpKHQsZSkpfX07dmFyIEZ1dD0uNyxWdXQ9MS9GdXQsVXV0PSJcXHMqKFsrLV0/XFxkKylcXHMqIixqdXQ9IlxccyooWystXT9cXGQqXFwuP1xcZCsoPzpbZUVdWystXT9cXGQrKT8pXFxzKiIsR3V0PSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KSVcXHMqIixXdXQ9L14jKFswLTlhLWZdezMsOH0pJC8scXV0PW5ldyBSZWdFeHAoIl5yZ2JcXCgiK1tVdXQsVXV0LFV1dF0rIlxcKSQiKSxZdXQ9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW0d1dCxHdXQsR3V0XSsiXFwpJCIpLFh1dD1uZXcgUmVnRXhwKCJecmdiYVxcKCIrW1V1dCxVdXQsVXV0LGp1dF0rIlxcKSQiKSwkdXQ9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tHdXQsR3V0LEd1dCxqdXRdKyJcXCkkIiksS3V0PW5ldyBSZWdFeHAoIl5oc2xcXCgiK1tqdXQsR3V0LEd1dF0rIlxcKSQiKSxadXQ9bmV3IFJlZ0V4cCgiXmhzbGFcXCgiK1tqdXQsR3V0LEd1dCxqdXRdKyJcXCkkIiksSnV0PXthbGljZWJsdWU6MTU3OTIzODMsYW50aXF1ZXdoaXRlOjE2NDQ0Mzc1LGFxdWE6NjU1MzUsYXF1YW1hcmluZTo4Mzg4NTY0LGF6dXJlOjE1Nzk0MTc1LGJlaWdlOjE2MTE5MjYwLGJpc3F1ZToxNjc3MDI0NCxibGFjazowLGJsYW5jaGVkYWxtb25kOjE2NzcyMDQ1LGJsdWU6MjU1LGJsdWV2aW9sZXQ6OTA1NTIwMixicm93bjoxMDgyNDIzNCxidXJseXdvb2Q6MTQ1OTYyMzEsY2FkZXRibHVlOjYyNjY1MjgsY2hhcnRyZXVzZTo4Mzg4MzUyLGNob2NvbGF0ZToxMzc4OTQ3MCxjb3JhbDoxNjc0NDI3Mixjb3JuZmxvd2VyYmx1ZTo2NTkxOTgxLGNvcm5zaWxrOjE2Nzc1Mzg4LGNyaW1zb246MTQ0MjMxMDAsY3lhbjo2NTUzNSxkYXJrYmx1ZToxMzksZGFya2N5YW46MzU3MjMsZGFya2dvbGRlbnJvZDoxMjA5MjkzOSxkYXJrZ3JheToxMTExOTAxNyxkYXJrZ3JlZW46MjU2MDAsZGFya2dyZXk6MTExMTkwMTcsZGFya2toYWtpOjEyNDMzMjU5LGRhcmttYWdlbnRhOjkxMDk2NDMsZGFya29saXZlZ3JlZW46NTU5Nzk5OSxkYXJrb3JhbmdlOjE2NzQ3NTIwLGRhcmtvcmNoaWQ6MTAwNDAwMTIsZGFya3JlZDo5MTA5NTA0LGRhcmtzYWxtb246MTUzMDg0MTAsZGFya3NlYWdyZWVuOjk0MTk5MTksZGFya3NsYXRlYmx1ZTo0NzM0MzQ3LGRhcmtzbGF0ZWdyYXk6MzEwMDQ5NSxkYXJrc2xhdGVncmV5OjMxMDA0OTUsZGFya3R1cnF1b2lzZTo1Mjk0NSxkYXJrdmlvbGV0Ojk2OTk1MzksZGVlcHBpbms6MTY3MTY5NDcsZGVlcHNreWJsdWU6NDkxNTEsZGltZ3JheTo2OTA4MjY1LGRpbWdyZXk6NjkwODI2NSxkb2RnZXJibHVlOjIwMDMxOTksZmlyZWJyaWNrOjExNjc0MTQ2LGZsb3JhbHdoaXRlOjE2Nzc1OTIwLGZvcmVzdGdyZWVuOjIyNjM4NDIsZnVjaHNpYToxNjcxMTkzNSxnYWluc2Jvcm86MTQ0NzQ0NjAsZ2hvc3R3aGl0ZToxNjMxNjY3MSxnb2xkOjE2NzY2NzIwLGdvbGRlbnJvZDoxNDMyOTEyMCxncmF5Ojg0MjE1MDQsZ3JlZW46MzI3NjgsZ3JlZW55ZWxsb3c6MTE0MDMwNTUsZ3JleTo4NDIxNTA0LGhvbmV5ZGV3OjE1Nzk0MTYwLGhvdHBpbms6MTY3Mzg3NDAsaW5kaWFucmVkOjEzNDU4NTI0LGluZGlnbzo0OTE1MzMwLGl2b3J5OjE2Nzc3MjAwLGtoYWtpOjE1Nzg3NjYwLGxhdmVuZGVyOjE1MTMyNDEwLGxhdmVuZGVyYmx1c2g6MTY3NzMzNjUsbGF3bmdyZWVuOjgxOTA5NzYsbGVtb25jaGlmZm9uOjE2Nzc1ODg1LGxpZ2h0Ymx1ZToxMTM5MzI1NCxsaWdodGNvcmFsOjE1NzYxNTM2LGxpZ2h0Y3lhbjoxNDc0NTU5OSxsaWdodGdvbGRlbnJvZHllbGxvdzoxNjQ0ODIxMCxsaWdodGdyYXk6MTM4ODIzMjMsbGlnaHRncmVlbjo5NDk4MjU2LGxpZ2h0Z3JleToxMzg4MjMyMyxsaWdodHBpbms6MTY3NTg0NjUsbGlnaHRzYWxtb246MTY3NTI3NjIsbGlnaHRzZWFncmVlbjoyMTQyODkwLGxpZ2h0c2t5Ymx1ZTo4OTAwMzQ2LGxpZ2h0c2xhdGVncmF5Ojc4MzM3NTMsbGlnaHRzbGF0ZWdyZXk6NzgzMzc1MyxsaWdodHN0ZWVsYmx1ZToxMTU4NDczNCxsaWdodHllbGxvdzoxNjc3NzE4NCxsaW1lOjY1MjgwLGxpbWVncmVlbjozMzI5MzMwLGxpbmVuOjE2NDQ1NjcwLG1hZ2VudGE6MTY3MTE5MzUsbWFyb29uOjgzODg2MDgsbWVkaXVtYXF1YW1hcmluZTo2NzM3MzIyLG1lZGl1bWJsdWU6MjA1LG1lZGl1bW9yY2hpZDoxMjIxMTY2NyxtZWRpdW1wdXJwbGU6OTY2MjY4MyxtZWRpdW1zZWFncmVlbjozOTc4MDk3LG1lZGl1bXNsYXRlYmx1ZTo4MDg3NzkwLG1lZGl1bXNwcmluZ2dyZWVuOjY0MTU0LG1lZGl1bXR1cnF1b2lzZTo0NzcyMzAwLG1lZGl1bXZpb2xldHJlZDoxMzA0NzE3MyxtaWRuaWdodGJsdWU6MTY0NDkxMixtaW50Y3JlYW06MTYxMjE4NTAsbWlzdHlyb3NlOjE2NzcwMjczLG1vY2Nhc2luOjE2NzcwMjI5LG5hdmFqb3doaXRlOjE2NzY4Njg1LG5hdnk6MTI4LG9sZGxhY2U6MTY2NDM1NTgsb2xpdmU6ODQyMTM3NixvbGl2ZWRyYWI6NzA0ODczOSxvcmFuZ2U6MTY3NTM5MjAsb3JhbmdlcmVkOjE2NzI5MzQ0LG9yY2hpZDoxNDMxNTczNCxwYWxlZ29sZGVucm9kOjE1NjU3MTMwLHBhbGVncmVlbjoxMDAyNTg4MCxwYWxldHVycXVvaXNlOjExNTI5OTY2LHBhbGV2aW9sZXRyZWQ6MTQzODEyMDMscGFwYXlhd2hpcDoxNjc3MzA3NyxwZWFjaHB1ZmY6MTY3Njc2NzMscGVydToxMzQ2ODk5MSxwaW5rOjE2NzYxMDM1LHBsdW06MTQ1MjQ2MzcscG93ZGVyYmx1ZToxMTU5MTkxMCxwdXJwbGU6ODM4ODczNixyZWJlY2NhcHVycGxlOjY2OTc4ODEscmVkOjE2NzExNjgwLHJvc3licm93bjoxMjM1NzUxOSxyb3lhbGJsdWU6NDI4Njk0NSxzYWRkbGVicm93bjo5MTI3MTg3LHNhbG1vbjoxNjQxNjg4MixzYW5keWJyb3duOjE2MDMyODY0LHNlYWdyZWVuOjMwNTAzMjcsc2Vhc2hlbGw6MTY3NzQ2Mzgsc2llbm5hOjEwNTA2Nzk3LHNpbHZlcjoxMjYzMjI1Nixza3libHVlOjg5MDAzMzEsc2xhdGVibHVlOjY5NzAwNjEsc2xhdGVncmF5OjczNzI5NDQsc2xhdGVncmV5OjczNzI5NDQsc25vdzoxNjc3NTkzMCxzcHJpbmdncmVlbjo2NTQwNyxzdGVlbGJsdWU6NDYyMDk4MCx0YW46MTM4MDg3ODAsdGVhbDozMjg5Nix0aGlzdGxlOjE0MjA0ODg4LHRvbWF0bzoxNjczNzA5NSx0dXJxdW9pc2U6NDI1MTg1Nix2aW9sZXQ6MTU2MzEwODYsd2hlYXQ6MTYxMTMzMzEsd2hpdGU6MTY3NzcyMTUsd2hpdGVzbW9rZToxNjExOTI4NSx5ZWxsb3c6MTY3NzY5NjAseWVsbG93Z3JlZW46MTAxNDUwNzR9O2Z1bmN0aW9uIFF1dCgpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdEhleCgpfWZ1bmN0aW9uIHRodCgpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdFJnYigpfWZ1bmN0aW9uIGVodCh0KXt2YXIgZSxuO3JldHVybiB0PSh0KyIiKS50cmltKCkudG9Mb3dlckNhc2UoKSwoZT1XdXQuZXhlYyh0KSk/KG49ZVsxXS5sZW5ndGgsZT1wYXJzZUludChlWzFdLDE2KSw2PT09bj9uaHQoZSk6Mz09PW4/bmV3IGFodChlPj44JjE1fGU+PjQmMjQwLGU+PjQmMTV8MjQwJmUsKDE1JmUpPDw0fDE1JmUsMSk6OD09PW4/aWh0KGU+PjI0JjI1NSxlPj4xNiYyNTUsZT4+OCYyNTUsKDI1NSZlKS8yNTUpOjQ9PT1uP2lodChlPj4xMiYxNXxlPj44JjI0MCxlPj44JjE1fGU+PjQmMjQwLGU+PjQmMTV8MjQwJmUsKCgxNSZlKTw8NHwxNSZlKS8yNTUpOm51bGwpOihlPXF1dC5leGVjKHQpKT9uZXcgYWh0KGVbMV0sZVsyXSxlWzNdLDEpOihlPVl1dC5leGVjKHQpKT9uZXcgYWh0KDI1NSplWzFdLzEwMCwyNTUqZVsyXS8xMDAsMjU1KmVbM10vMTAwLDEpOihlPVh1dC5leGVjKHQpKT9paHQoZVsxXSxlWzJdLGVbM10sZVs0XSk6KGU9JHV0LmV4ZWModCkpP2lodCgyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCxlWzRdKTooZT1LdXQuZXhlYyh0KSk/dWh0KGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsMSk6KGU9WnV0LmV4ZWModCkpP3VodChlWzFdLGVbMl0vMTAwLGVbM10vMTAwLGVbNF0pOkp1dC5oYXNPd25Qcm9wZXJ0eSh0KT9uaHQoSnV0W3RdKToidHJhbnNwYXJlbnQiPT09dD9uZXcgYWh0KE5hTixOYU4sTmFOLDApOm51bGx9ZnVuY3Rpb24gbmh0KHQpe3JldHVybiBuZXcgYWh0KHQ+PjE2JjI1NSx0Pj44JjI1NSwyNTUmdCwxKX1mdW5jdGlvbiBpaHQodCxlLG4saSl7cmV0dXJuIGk8PTAmJih0PWU9bj1OYU4pLG5ldyBhaHQodCxlLG4saSl9ZnVuY3Rpb24gcmh0KHQpe3JldHVybiB0IGluc3RhbmNlb2YgbHV0fHwodD1laHQodCkpLHQ/bmV3IGFodCgodD10LnJnYigpKS5yLHQuZyx0LmIsdC5vcGFjaXR5KTpuZXcgYWh0fWZ1bmN0aW9uIG9odCh0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/cmh0KHQpOm5ldyBhaHQodCxlLG4sbnVsbD09aT8xOmkpfWZ1bmN0aW9uIGFodCh0LGUsbixpKXt0aGlzLnI9K3QsdGhpcy5nPStlLHRoaXMuYj0rbix0aGlzLm9wYWNpdHk9K2l9ZnVuY3Rpb24gc2h0KCl7cmV0dXJuIiMiK2NodCh0aGlzLnIpK2NodCh0aGlzLmcpK2NodCh0aGlzLmIpfWZ1bmN0aW9uIGxodCgpe3ZhciB0PXRoaXMub3BhY2l0eTtyZXR1cm4oMT09PSh0PWlzTmFOKHQpPzE6TWF0aC5tYXgoMCxNYXRoLm1pbigxLHQpKSk/InJnYigiOiJyZ2JhKCIpK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5yKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmcpfHwwKSkrIiwgIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMuYil8fDApKSsoMT09PXQ/IikiOiIsICIrdCsiKSIpfWZ1bmN0aW9uIGNodCh0KXtyZXR1cm4oKHQ9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0KXx8MCkpKTwxNj8iMCI6IiIpK3QudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIHVodCh0LGUsbixpKXtyZXR1cm4gaTw9MD90PWU9bj1OYU46bjw9MHx8bj49MT90PWU9TmFOOmU8PTAmJih0PU5hTiksbmV3IGRodCh0LGUsbixpKX1mdW5jdGlvbiBoaHQodCl7aWYodCBpbnN0YW5jZW9mIGRodClyZXR1cm4gbmV3IGRodCh0LmgsdC5zLHQubCx0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBsdXR8fCh0PWVodCh0KSksIXQpcmV0dXJuIG5ldyBkaHQ7aWYodCBpbnN0YW5jZW9mIGRodClyZXR1cm4gdDt2YXIgZT0odD10LnJnYigpKS5yLzI1NSxuPXQuZy8yNTUsaT10LmIvMjU1LHI9TWF0aC5taW4oZSxuLGkpLG89TWF0aC5tYXgoZSxuLGkpLGE9TmFOLHM9by1yLGw9KG8rcikvMjtyZXR1cm4gcz8oYT1lPT09bz8obi1pKS9zKzYqKG48aSk6bj09PW8/KGktZSkvcysyOihlLW4pL3MrNCxzLz1sPC41P28rcjoyLW8tcixhKj02MCk6cz1sPjAmJmw8MT8wOmEsbmV3IGRodChhLHMsbCx0Lm9wYWNpdHkpfWZ1bmN0aW9uIGRodCh0LGUsbixpKXt0aGlzLmg9K3QsdGhpcy5zPStlLHRoaXMubD0rbix0aGlzLm9wYWNpdHk9K2l9ZnVuY3Rpb24gcGh0KHQsZSxuKXtyZXR1cm4gMjU1Kih0PDYwP2UrKG4tZSkqdC82MDp0PDE4MD9uOnQ8MjQwP2UrKG4tZSkqKDI0MC10KS82MDplKX1mdW5jdGlvbiBmaHQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIG1odCh0KXtyZXR1cm4gMT09KHQ9K3QpP2dodDpmdW5jdGlvbihlLG4pe3JldHVybiBuLWU/KGZ1bmN0aW9uIGkodCxlLG4pe3JldHVybiB0PU1hdGgucG93KHQsbiksZT1NYXRoLnBvdyhlLG4pLXQsbj0xL24sZnVuY3Rpb24oaSl7cmV0dXJuIE1hdGgucG93KHQraSplLG4pfX0pKGUsbix0KTpmaHQoaXNOYU4oZSk/bjplKX19ZnVuY3Rpb24gZ2h0KHQsZSl7dmFyIG49ZS10O3JldHVybiBuPyhmdW5jdGlvbiBpKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0K24qZX19KSh0LG4pOmZodChpc05hTih0KT9lOnQpfWF1dChsdXQsZWh0LHtjb3B5OmZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuYXNzaWduKG5ldyB0aGlzLmNvbnN0cnVjdG9yLHRoaXMsdCl9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmdiKCkuZGlzcGxheWFibGUoKX0saGV4OlF1dCxmb3JtYXRIZXg6UXV0LGZvcm1hdEhzbDpmdW5jdGlvbiBfaHQoKXtyZXR1cm4gaGh0KHRoaXMpLmZvcm1hdEhzbCgpfSxmb3JtYXRSZ2I6dGh0LHRvU3RyaW5nOnRodH0pLGF1dChhaHQsb2h0LHN1dChsdXQse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/VnV0Ok1hdGgucG93KFZ1dCx0KSxuZXcgYWh0KHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10P0Z1dDpNYXRoLnBvdyhGdXQsdCksbmV3IGFodCh0aGlzLnIqdCx0aGlzLmcqdCx0aGlzLmIqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4tLjU8PXRoaXMuciYmdGhpcy5yPDI1NS41JiYtLjU8PXRoaXMuZyYmdGhpcy5nPDI1NS41JiYtLjU8PXRoaXMuYiYmdGhpcy5iPDI1NS41JiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0saGV4OnNodCxmb3JtYXRIZXg6c2h0LGZvcm1hdFJnYjpsaHQsdG9TdHJpbmc6bGh0fSkpLGF1dChkaHQsKGZ1bmN0aW9uIHlodCh0LGUsbixpKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/aGh0KHQpOm5ldyBkaHQodCxlLG4sbnVsbD09aT8xOmkpfSksc3V0KGx1dCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9WdXQ6TWF0aC5wb3coVnV0LHQpLG5ldyBkaHQodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9GdXQ6TWF0aC5wb3coRnV0LHQpLG5ldyBkaHQodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmglMzYwKzM2MCoodGhpcy5oPDApLGU9aXNOYU4odCl8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMsbj10aGlzLmwsaT1uKyhuPC41P246MS1uKSplLHI9MipuLWk7cmV0dXJuIG5ldyBhaHQocGh0KHQ+PTI0MD90LTI0MDp0KzEyMCxyLGkpLHBodCh0LHIsaSkscGh0KHQ8MTIwP3QrMjQwOnQtMTIwLHIsaSksdGhpcy5vcGFjaXR5KX0sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4oMDw9dGhpcy5zJiZ0aGlzLnM8PTF8fGlzTmFOKHRoaXMucykpJiYwPD10aGlzLmwmJnRoaXMubDw9MSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9LGZvcm1hdEhzbDpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3BhY2l0eTtyZXR1cm4oMT09PSh0PWlzTmFOKHQpPzE6TWF0aC5tYXgoMCxNYXRoLm1pbigxLHQpKSk/ImhzbCgiOiJoc2xhKCIpKyh0aGlzLmh8fDApKyIsICIrMTAwKih0aGlzLnN8fDApKyIlLCAiKzEwMCoodGhpcy5sfHwwKSsiJSIrKDE9PT10PyIpIjoiLCAiK3QrIikiKX19KSk7dmFyIHZodD0oZnVuY3Rpb24gdChlKXt2YXIgbj1taHQoZSk7ZnVuY3Rpb24gaSh0LGUpe3ZhciBpPW4oKHQ9b2h0KHQpKS5yLChlPW9odChlKSkucikscj1uKHQuZyxlLmcpLG89bih0LmIsZS5iKSxhPWdodCh0Lm9wYWNpdHksZS5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQucj1pKGUpLHQuZz1yKGUpLHQuYj1vKGUpLHQub3BhY2l0eT1hKGUpLHQrIiJ9fXJldHVybiBpLmdhbW1hPXQsaX0pKDEpO2Z1bmN0aW9uIGJodCh0LGUpe3JldHVybiB0PSt0LGU9K2UsZnVuY3Rpb24obil7cmV0dXJuIHQqKDEtbikrZSpufX12YXIgeGh0PS9bLStdPyg/OlxkK1wuP1xkKnxcLj9cZCspKD86W2VFXVstK10/XGQrKT8vZyx3aHQ9bmV3IFJlZ0V4cCh4aHQuc291cmNlLCJnIik7ZnVuY3Rpb24gU2h0KHQsZSl7dmFyIG4saSxyLG89eGh0Lmxhc3RJbmRleD13aHQubGFzdEluZGV4PTAsYT0tMSxzPVtdLGw9W107Zm9yKHQrPSIiLGUrPSIiOyhuPXhodC5leGVjKHQpKSYmKGk9d2h0LmV4ZWMoZSkpOykocj1pLmluZGV4KT5vJiYocj1lLnNsaWNlKG8sciksc1thXT9zW2FdKz1yOnNbKythXT1yKSwobj1uWzBdKT09PShpPWlbMF0pP3NbYV0/c1thXSs9aTpzWysrYV09aTooc1srK2FdPW51bGwsbC5wdXNoKHtpOmEseDpiaHQobixpKX0pKSxvPXdodC5sYXN0SW5kZXg7cmV0dXJuIG88ZS5sZW5ndGgmJihyPWUuc2xpY2Uobyksc1thXT9zW2FdKz1yOnNbKythXT1yKSxzLmxlbmd0aDwyP2xbMF0/KGZ1bmN0aW9uIGModCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0KGUpKyIifX0pKGxbMF0ueCk6KGZ1bmN0aW9uIHUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fSkoZSk6KGU9bC5sZW5ndGgsZnVuY3Rpb24odCl7Zm9yKHZhciBuLGk9MDtpPGU7KytpKXNbKG49bFtpXSkuaV09bi54KHQpO3JldHVybiBzLmpvaW4oIiIpfSl9dmFyIE1odCxFaHQsVGh0LENodCxBaHQ9MTgwL01hdGguUEksa2h0PXt0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowLHJvdGF0ZTowLHNrZXdYOjAsc2NhbGVYOjEsc2NhbGVZOjF9O2Z1bmN0aW9uIExodCh0LGUsbixpLHIsbyl7dmFyIGEscyxsO3JldHVybihhPU1hdGguc3FydCh0KnQrZSplKSkmJih0Lz1hLGUvPWEpLChsPXQqbitlKmkpJiYobi09dCpsLGktPWUqbCksKHM9TWF0aC5zcXJ0KG4qbitpKmkpKSYmKG4vPXMsaS89cyxsLz1zKSx0Kmk8ZSpuJiYodD0tdCxlPS1lLGw9LWwsYT0tYSkse3RyYW5zbGF0ZVg6cix0cmFuc2xhdGVZOm8scm90YXRlOk1hdGguYXRhbjIoZSx0KSpBaHQsc2tld1g6TWF0aC5hdGFuKGwpKkFodCxzY2FsZVg6YSxzY2FsZVk6c319ZnVuY3Rpb24gUGh0KHQsZSxuLGkpe2Z1bmN0aW9uIHIodCl7cmV0dXJuIHQubGVuZ3RoP3QucG9wKCkrIiAiOiIifXJldHVybiBmdW5jdGlvbihvLGEpe3ZhciBzPVtdLGw9W107cmV0dXJuIG89dChvKSxhPXQoYSksKGZ1bmN0aW9uIGModCxpLHIsbyxhLHMpe2lmKHQhPT1yfHxpIT09byl7dmFyIGw9YS5wdXNoKCJ0cmFuc2xhdGUoIixudWxsLGUsbnVsbCxuKTtzLnB1c2goe2k6bC00LHg6Ymh0KHQscil9LHtpOmwtMix4OmJodChpLG8pfSl9ZWxzZShyfHxvKSYmYS5wdXNoKCJ0cmFuc2xhdGUoIityK2UrbytuKX0pKG8udHJhbnNsYXRlWCxvLnRyYW5zbGF0ZVksYS50cmFuc2xhdGVYLGEudHJhbnNsYXRlWSxzLGwpLChmdW5jdGlvbiB1KHQsZSxuLG8pe3QhPT1lPyh0LWU+MTgwP2UrPTM2MDplLXQ+MTgwJiYodCs9MzYwKSxvLnB1c2goe2k6bi5wdXNoKHIobikrInJvdGF0ZSgiLG51bGwsaSktMix4OmJodCh0LGUpfSkpOmUmJm4ucHVzaChyKG4pKyJyb3RhdGUoIitlK2kpfSkoby5yb3RhdGUsYS5yb3RhdGUscyxsKSwoZnVuY3Rpb24gaCh0LGUsbixvKXt0IT09ZT9vLnB1c2goe2k6bi5wdXNoKHIobikrInNrZXdYKCIsbnVsbCxpKS0yLHg6Ymh0KHQsZSl9KTplJiZuLnB1c2gocihuKSsic2tld1goIitlK2kpfSkoby5za2V3WCxhLnNrZXdYLHMsbCksKGZ1bmN0aW9uIGQodCxlLG4saSxvLGEpe2lmKHQhPT1ufHxlIT09aSl7dmFyIHM9by5wdXNoKHIobykrInNjYWxlKCIsbnVsbCwiLCIsbnVsbCwiKSIpO2EucHVzaCh7aTpzLTQseDpiaHQodCxuKX0se2k6cy0yLHg6Ymh0KGUsaSl9KX1lbHNlIDE9PT1uJiYxPT09aXx8by5wdXNoKHIobykrInNjYWxlKCIrbisiLCIraSsiKSIpfSkoby5zY2FsZVgsby5zY2FsZVksYS5zY2FsZVgsYS5zY2FsZVkscyxsKSxvPWE9bnVsbCxmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0tMSxpPWwubGVuZ3RoOysrbjxpOylzWyhlPWxbbl0pLmldPWUueCh0KTtyZXR1cm4gcy5qb2luKCIiKX19fXZhciBOaHQ9UGh0KChmdW5jdGlvbiBJaHQodCl7cmV0dXJuIm5vbmUiPT09dD9raHQ6KE1odHx8KE1odD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKSxFaHQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LFRodD1kb2N1bWVudC5kZWZhdWx0VmlldyksTWh0LnN0eWxlLnRyYW5zZm9ybT10LHQ9VGh0LmdldENvbXB1dGVkU3R5bGUoRWh0LmFwcGVuZENoaWxkKE1odCksbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgidHJhbnNmb3JtIiksRWh0LnJlbW92ZUNoaWxkKE1odCksTGh0KCsodD10LnNsaWNlKDcsLTEpLnNwbGl0KCIsIikpWzBdLCt0WzFdLCt0WzJdLCt0WzNdLCt0WzRdLCt0WzVdKSl9KSwicHgsICIsInB4KSIsImRlZykiKSxSaHQ9UGh0KChmdW5jdGlvbiBPaHQodCl7cmV0dXJuIG51bGw9PXQ/a2h0OihDaHR8fChDaHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImciKSksQ2h0LnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIix0KSwodD1DaHQudHJhbnNmb3JtLmJhc2VWYWwuY29uc29saWRhdGUoKSk/TGh0KCh0PXQubWF0cml4KS5hLHQuYix0LmMsdC5kLHQuZSx0LmYpOmtodCl9KSwiLCAiLCIpIiwiKSIpLHpodD1NYXRoLlNRUlQyO2Z1bmN0aW9uIERodCh0KXtyZXR1cm4oKHQ9TWF0aC5leHAodCkpKzEvdCkvMn1mdW5jdGlvbiBCaHQodCxlKXt2YXIgbixpLHI9dFswXSxvPXRbMV0sYT10WzJdLHM9ZVsyXSxsPWVbMF0tcixjPWVbMV0tbyx1PWwqbCtjKmM7aWYodTwxZS0xMilpPU1hdGgubG9nKHMvYSkvemh0LG49ZnVuY3Rpb24odCl7cmV0dXJuW3IrdCpsLG8rdCpjLGEqTWF0aC5leHAoemh0KnQqaSldfTtlbHNle3ZhciBoPU1hdGguc3FydCh1KSxkPShzKnMtYSphKzQqdSkvKDIqYSoyKmgpLHA9KHMqcy1hKmEtNCp1KS8oMipzKjIqaCksZj1NYXRoLmxvZyhNYXRoLnNxcnQoZCpkKzEpLWQpLG09TWF0aC5sb2coTWF0aC5zcXJ0KHAqcCsxKS1wKTtpPShtLWYpL3podCxuPWZ1bmN0aW9uKHQpe3ZhciBlPXQqaSxuPURodChmKSxzPWEvKDIqaCkqKG4qKGZ1bmN0aW9uIHUodCl7cmV0dXJuKCh0PU1hdGguZXhwKDIqdCkpLTEpLyh0KzEpfSkoemh0KmUrZiktKGZ1bmN0aW9uIGQodCl7cmV0dXJuKCh0PU1hdGguZXhwKHQpKS0xL3QpLzJ9KShmKSk7cmV0dXJuW3IrcypsLG8rcypjLGEqbi9EaHQoemh0KmUrZildfX1yZXR1cm4gbi5kdXJhdGlvbj0xZTMqaSxufXZhciBIaHQsRmh0LFZodD0wLFVodD0wLGpodD0wLEdodD0wLFdodD0wLHFodD0wLFlodD0ib2JqZWN0Ij09dHlwZW9mIHBlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS5ub3c/cGVyZm9ybWFuY2U6RGF0ZSxYaHQ9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6ZnVuY3Rpb24odCl7c2V0VGltZW91dCh0LDE3KX07ZnVuY3Rpb24gJGh0KCl7cmV0dXJuIFdodHx8KFhodChLaHQpLFdodD1ZaHQubm93KCkrcWh0KX1mdW5jdGlvbiBLaHQoKXtXaHQ9MH1mdW5jdGlvbiBaaHQoKXt0aGlzLl9jYWxsPXRoaXMuX3RpbWU9dGhpcy5fbmV4dD1udWxsfWZ1bmN0aW9uIEpodCh0LGUsbil7dmFyIGk9bmV3IFpodDtyZXR1cm4gaS5yZXN0YXJ0KHQsZSxuKSxpfWZ1bmN0aW9uIFFodCgpe1dodD0oR2h0PVlodC5ub3coKSkrcWh0LFZodD1VaHQ9MDt0cnl7IShmdW5jdGlvbiB0KCl7JGh0KCksKytWaHQ7Zm9yKHZhciB0LGU9SGh0O2U7KSh0PVdodC1lLl90aW1lKT49MCYmZS5fY2FsbC5jYWxsKG51bGwsdCksZT1lLl9uZXh0Oy0tVmh0fSkoKX1maW5hbGx5e1ZodD0wLChmdW5jdGlvbiBlKCl7dmFyIHQsZSxuPUhodCxpPTEvMDtmb3IoO247KW4uX2NhbGw/KGk+bi5fdGltZSYmKGk9bi5fdGltZSksdD1uLG49bi5fbmV4dCk6KGU9bi5fbmV4dCxuLl9uZXh0PW51bGwsbj10P3QuX25leHQ9ZTpIaHQ9ZSk7Rmh0PXQsZWR0KGkpfSkoKSxXaHQ9MH19ZnVuY3Rpb24gdGR0KCl7dmFyIHQ9WWh0Lm5vdygpLGU9dC1HaHQ7ZT4xZTMmJihxaHQtPWUsR2h0PXQpfWZ1bmN0aW9uIGVkdCh0KXtWaHR8fChVaHQmJihVaHQ9Y2xlYXJUaW1lb3V0KFVodCkpLHQtV2h0PjI0Pyh0PDEvMCYmKFVodD1zZXRUaW1lb3V0KFFodCx0LVlodC5ub3coKS1xaHQpKSxqaHQmJihqaHQ9Y2xlYXJJbnRlcnZhbChqaHQpKSk6KGpodHx8KEdodD1ZaHQubm93KCksamh0PXNldEludGVydmFsKHRkdCwxZTMpKSxWaHQ9MSxYaHQoUWh0KSkpfWZ1bmN0aW9uIG5kdCh0LGUsbil7dmFyIGk9bmV3IFpodDtyZXR1cm4gaS5yZXN0YXJ0KChmdW5jdGlvbihuKXtpLnN0b3AoKSx0KG4rZSl9KSxlPW51bGw9PWU/MDorZSxuKSxpfVpodC5wcm90b3R5cGU9Smh0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6Wmh0LHJlc3RhcnQ6ZnVuY3Rpb24odCxlLG4pe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoImNhbGxiYWNrIGlzIG5vdCBhIGZ1bmN0aW9uIik7bj0obnVsbD09bj8kaHQoKTorbikrKG51bGw9PWU/MDorZSksdGhpcy5fbmV4dHx8Rmh0PT09dGhpc3x8KEZodD9GaHQuX25leHQ9dGhpczpIaHQ9dGhpcyxGaHQ9dGhpcyksdGhpcy5fY2FsbD10LHRoaXMuX3RpbWU9bixlZHQoKX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuX2NhbGwmJih0aGlzLl9jYWxsPW51bGwsdGhpcy5fdGltZT0xLzAsZWR0KCkpfX07dmFyIGlkdD1CbHQoInN0YXJ0IiwiZW5kIiwiY2FuY2VsIiwiaW50ZXJydXB0IikscmR0PVtdO2Z1bmN0aW9uIG9kdCh0LGUsbixpLHIsbyl7dmFyIGE9dC5fX3RyYW5zaXRpb247aWYoYSl7aWYobiBpbiBhKXJldHVybn1lbHNlIHQuX190cmFuc2l0aW9uPXt9OyEoZnVuY3Rpb24gcyh0LGUsbil7dmFyIGkscj10Ll9fdHJhbnNpdGlvbjtmdW5jdGlvbiBvKHQpe24uc3RhdGU9MSxuLnRpbWVyLnJlc3RhcnQoYSxuLmRlbGF5LG4udGltZSksbi5kZWxheTw9dCYmYSh0LW4uZGVsYXkpfWZ1bmN0aW9uIGEobyl7dmFyIGMsdSxoLGQ7aWYoMSE9PW4uc3RhdGUpcmV0dXJuIGwoKTtmb3IoYyBpbiByKWlmKChkPXJbY10pLm5hbWU9PT1uLm5hbWUpe2lmKDM9PT1kLnN0YXRlKXJldHVybiBuZHQoYSk7ND09PWQuc3RhdGU/KGQuc3RhdGU9NixkLnRpbWVyLnN0b3AoKSxkLm9uLmNhbGwoImludGVycnVwdCIsdCx0Ll9fZGF0YV9fLGQuaW5kZXgsZC5ncm91cCksZGVsZXRlIHJbY10pOitjPGUmJihkLnN0YXRlPTYsZC50aW1lci5zdG9wKCksZC5vbi5jYWxsKCJjYW5jZWwiLHQsdC5fX2RhdGFfXyxkLmluZGV4LGQuZ3JvdXApLGRlbGV0ZSByW2NdKX1pZihuZHQoKGZ1bmN0aW9uKCl7Mz09PW4uc3RhdGUmJihuLnN0YXRlPTQsbi50aW1lci5yZXN0YXJ0KHMsbi5kZWxheSxuLnRpbWUpLHMobykpfSkpLG4uc3RhdGU9MixuLm9uLmNhbGwoInN0YXJ0Iix0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSwyPT09bi5zdGF0ZSl7Zm9yKG4uc3RhdGU9MyxpPW5ldyBBcnJheShoPW4udHdlZW4ubGVuZ3RoKSxjPTAsdT0tMTtjPGg7KytjKShkPW4udHdlZW5bY10udmFsdWUuY2FsbCh0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSkmJihpWysrdV09ZCk7aS5sZW5ndGg9dSsxfX1mdW5jdGlvbiBzKGUpe2Zvcih2YXIgcj1lPG4uZHVyYXRpb24/bi5lYXNlLmNhbGwobnVsbCxlL24uZHVyYXRpb24pOihuLnRpbWVyLnJlc3RhcnQobCksbi5zdGF0ZT01LDEpLG89LTEsYT1pLmxlbmd0aDsrK288YTspaVtvXS5jYWxsKHQscik7NT09PW4uc3RhdGUmJihuLm9uLmNhbGwoImVuZCIsdCx0Ll9fZGF0YV9fLG4uaW5kZXgsbi5ncm91cCksbCgpKX1mdW5jdGlvbiBsKCl7Zm9yKHZhciBpIGluIG4uc3RhdGU9NixuLnRpbWVyLnN0b3AoKSxkZWxldGUgcltlXSxyKXJldHVybjtkZWxldGUgdC5fX3RyYW5zaXRpb259cltlXT1uLG4udGltZXI9Smh0KG8sMCxuLnRpbWUpfSkodCxuLHtuYW1lOmUsaW5kZXg6aSxncm91cDpyLG9uOmlkdCx0d2VlbjpyZHQsdGltZTpvLnRpbWUsZGVsYXk6by5kZWxheSxkdXJhdGlvbjpvLmR1cmF0aW9uLGVhc2U6by5lYXNlLHRpbWVyOm51bGwsc3RhdGU6MH0pfWZ1bmN0aW9uIGFkdCh0LGUpe3ZhciBuPWxkdCh0LGUpO2lmKG4uc3RhdGU+MCl0aHJvdyBuZXcgRXJyb3IoInRvbyBsYXRlOyBhbHJlYWR5IHNjaGVkdWxlZCIpO3JldHVybiBufWZ1bmN0aW9uIHNkdCh0LGUpe3ZhciBuPWxkdCh0LGUpO2lmKG4uc3RhdGU+Myl0aHJvdyBuZXcgRXJyb3IoInRvbyBsYXRlOyBhbHJlYWR5IHJ1bm5pbmciKTtyZXR1cm4gbn1mdW5jdGlvbiBsZHQodCxlKXt2YXIgbj10Ll9fdHJhbnNpdGlvbjtpZighbnx8IShuPW5bZV0pKXRocm93IG5ldyBFcnJvcigidHJhbnNpdGlvbiBub3QgZm91bmQiKTtyZXR1cm4gbn1mdW5jdGlvbiBjZHQodCxlKXt2YXIgbixpLHIsbz10Ll9fdHJhbnNpdGlvbixhPSEwO2lmKG8pe2ZvcihyIGluIGU9bnVsbD09ZT9udWxsOmUrIiIsbykobj1vW3JdKS5uYW1lPT09ZT8oaT1uLnN0YXRlPjImJm4uc3RhdGU8NSxuLnN0YXRlPTYsbi50aW1lci5zdG9wKCksbi5vbi5jYWxsKGk/ImludGVycnVwdCI6ImNhbmNlbCIsdCx0Ll9fZGF0YV9fLG4uaW5kZXgsbi5ncm91cCksZGVsZXRlIG9bcl0pOmE9ITE7YSYmZGVsZXRlIHQuX190cmFuc2l0aW9ufX1mdW5jdGlvbiB1ZHQodCxlKXt2YXIgbixpO3JldHVybiBmdW5jdGlvbigpe3ZhciByPXNkdCh0aGlzLHQpLG89ci50d2VlbjtpZihvIT09bilmb3IodmFyIGE9MCxzPShpPW49bykubGVuZ3RoO2E8czsrK2EpaWYoaVthXS5uYW1lPT09ZSl7KGk9aS5zbGljZSgpKS5zcGxpY2UoYSwxKTticmVha31yLnR3ZWVuPWl9fWZ1bmN0aW9uIGhkdCh0LGUsbil7dmFyIGkscjtpZigiZnVuY3Rpb24iIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89c2R0KHRoaXMsdCksYT1vLnR3ZWVuO2lmKGEhPT1pKXtyPShpPWEpLnNsaWNlKCk7Zm9yKHZhciBzPXtuYW1lOmUsdmFsdWU6bn0sbD0wLGM9ci5sZW5ndGg7bDxjOysrbClpZihyW2xdLm5hbWU9PT1lKXtyW2xdPXM7YnJlYWt9bD09PWMmJnIucHVzaChzKX1vLnR3ZWVuPXJ9fWZ1bmN0aW9uIGRkdCh0LGUsbil7dmFyIGk9dC5faWQ7cmV0dXJuIHQuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1zZHQodGhpcyxpKTsodC52YWx1ZXx8KHQudmFsdWU9e30pKVtlXT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pKSxmdW5jdGlvbih0KXtyZXR1cm4gbGR0KHQsaSkudmFsdWVbZV19fWZ1bmN0aW9uIHBkdCh0LGUpe3ZhciBuO3JldHVybigibnVtYmVyIj09dHlwZW9mIGU/Ymh0OmUgaW5zdGFuY2VvZiBlaHQ/dmh0OihuPWVodChlKSk/KGU9bix2aHQpOlNodCkodCxlKX1mdW5jdGlvbiBmZHQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fWZ1bmN0aW9uIG1kdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIGdkdCh0LGUsbil7dmFyIGkscixvPW4rIiI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5nZXRBdHRyaWJ1dGUodCk7cmV0dXJuIGE9PT1vP251bGw6YT09PWk/cjpyPWUoaT1hLG4pfX1mdW5jdGlvbiBfZHQodCxlLG4pe3ZhciBpLHIsbz1uKyIiO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPXRoaXMuZ2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKTtyZXR1cm4gYT09PW8/bnVsbDphPT09aT9yOnI9ZShpPWEsbil9fWZ1bmN0aW9uIHlkdCh0LGUsbil7dmFyIGkscixvO3JldHVybiBmdW5jdGlvbigpe3ZhciBhLHMsbD1uKHRoaXMpO2lmKG51bGwhPWwpcmV0dXJuKGE9dGhpcy5nZXRBdHRyaWJ1dGUodCkpPT09KHM9bCsiIik/bnVsbDphPT09aSYmcz09PXI/bzoocj1zLG89ZShpPWEsbCkpO3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpfX1mdW5jdGlvbiB2ZHQodCxlLG4pe3ZhciBpLHIsbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSxzLGw9bih0aGlzKTtpZihudWxsIT1sKXJldHVybihhPXRoaXMuZ2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKSk9PT0ocz1sKyIiKT9udWxsOmE9PT1pJiZzPT09cj9vOihyPXMsbz1lKGk9YSxsKSk7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpfX1mdW5jdGlvbiBiZHQodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dGhpcy5zZXRBdHRyaWJ1dGUodCxlLmNhbGwodGhpcyxuKSl9fWZ1bmN0aW9uIHhkdCh0LGUpe3JldHVybiBmdW5jdGlvbihuKXt0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxlLmNhbGwodGhpcyxuKSl9fWZ1bmN0aW9uIHdkdCh0LGUpe3ZhciBuLGk7ZnVuY3Rpb24gcigpe3ZhciByPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiByIT09aSYmKG49KGk9cikmJnhkdCh0LHIpKSxufXJldHVybiByLl92YWx1ZT1lLHJ9ZnVuY3Rpb24gU2R0KHQsZSl7dmFyIG4saTtmdW5jdGlvbiByKCl7dmFyIHI9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHIhPT1pJiYobj0oaT1yKSYmYmR0KHQscikpLG59cmV0dXJuIHIuX3ZhbHVlPWUscn1mdW5jdGlvbiBNZHQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXthZHQodGhpcyx0KS5kZWxheT0rZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIEVkdCh0LGUpe3JldHVybiBlPStlLGZ1bmN0aW9uKCl7YWR0KHRoaXMsdCkuZGVsYXk9ZX19ZnVuY3Rpb24gVGR0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7c2R0KHRoaXMsdCkuZHVyYXRpb249K2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBDZHQodCxlKXtyZXR1cm4gZT0rZSxmdW5jdGlvbigpe3NkdCh0aGlzLHQpLmR1cmF0aW9uPWV9fWZ1bmN0aW9uIEFkdCh0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gZnVuY3Rpb24oKXtzZHQodGhpcyx0KS5lYXNlPWV9fWZ1bmN0aW9uIGtkdCh0LGUsbil7dmFyIGkscixvPShmdW5jdGlvbiBhKHQpe3JldHVybih0KyIiKS50cmltKCkuc3BsaXQoL158XHMrLykuZXZlcnkoKGZ1bmN0aW9uKHQpe3ZhciBlPXQuaW5kZXhPZigiLiIpO3JldHVybiBlPj0wJiYodD10LnNsaWNlKDAsZSkpLCF0fHwic3RhcnQiPT09dH0pKX0pKGUpP2FkdDpzZHQ7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9byh0aGlzLHQpLHM9YS5vbjtzIT09aSYmKHI9KGk9cykuY29weSgpKS5vbihlLG4pLGEub249cn19dmFyIExkdD1aY3QucHJvdG90eXBlLmNvbnN0cnVjdG9yO2Z1bmN0aW9uIFBkdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpfX1mdW5jdGlvbiBOZHQodCxlLG4pe3JldHVybiBmdW5jdGlvbihpKXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQsZS5jYWxsKHRoaXMsaSksbil9fWZ1bmN0aW9uIElkdCh0LGUsbil7dmFyIGkscjtmdW5jdGlvbiBvKCl7dmFyIG89ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG8hPT1yJiYoaT0ocj1vKSYmTmR0KHQsbyxuKSksaX1yZXR1cm4gby5fdmFsdWU9ZSxvfWZ1bmN0aW9uIFJkdCh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dGhpcy50ZXh0Q29udGVudD10LmNhbGwodGhpcyxlKX19ZnVuY3Rpb24gT2R0KHQpe3ZhciBlLG47ZnVuY3Rpb24gaSgpe3ZhciBpPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBpIT09biYmKGU9KG49aSkmJlJkdChpKSksZX1yZXR1cm4gaS5fdmFsdWU9dCxpfXZhciB6ZHQ9MDtmdW5jdGlvbiBEZHQodCxlLG4saSl7dGhpcy5fZ3JvdXBzPXQsdGhpcy5fcGFyZW50cz1lLHRoaXMuX25hbWU9bix0aGlzLl9pZD1pfWZ1bmN0aW9uIEJkdCgpe3JldHVybisremR0fXZhciBIZHQ9WmN0LnByb3RvdHlwZTtEZHQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpEZHQsc2VsZWN0OmZ1bmN0aW9uIEZkdCh0KXt2YXIgZT10aGlzLl9uYW1lLG49dGhpcy5faWQ7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PUtsdCh0KSk7Zm9yKHZhciBpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89bmV3IEFycmF5KHIpLGE9MDthPHI7KythKWZvcih2YXIgcyxsLGM9aVthXSx1PWMubGVuZ3RoLGg9b1thXT1uZXcgQXJyYXkodSksZD0wO2Q8dTsrK2QpKHM9Y1tkXSkmJihsPXQuY2FsbChzLHMuX19kYXRhX18sZCxjKSkmJigiX19kYXRhX18iaW4gcyYmKGwuX19kYXRhX189cy5fX2RhdGFfXyksaFtkXT1sLG9kdChoW2RdLGUsbixkLGgsbGR0KHMsbikpKTtyZXR1cm4gbmV3IERkdChvLHRoaXMuX3BhcmVudHMsZSxuKX0sc2VsZWN0QWxsOmZ1bmN0aW9uIFZkdCh0KXt2YXIgZT10aGlzLl9uYW1lLG49dGhpcy5faWQ7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PUpsdCh0KSk7Zm9yKHZhciBpPXRoaXMuX2dyb3VwcyxyPWkubGVuZ3RoLG89W10sYT1bXSxzPTA7czxyOysrcylmb3IodmFyIGwsYz1pW3NdLHU9Yy5sZW5ndGgsaD0wO2g8dTsrK2gpaWYobD1jW2hdKXtmb3IodmFyIGQscD10LmNhbGwobCxsLl9fZGF0YV9fLGgsYyksZj1sZHQobCxuKSxtPTAsZz1wLmxlbmd0aDttPGc7KyttKShkPXBbbV0pJiZvZHQoZCxlLG4sbSxwLGYpO28ucHVzaChwKSxhLnB1c2gobCl9cmV0dXJuIG5ldyBEZHQobyxhLGUsbil9LGZpbHRlcjpmdW5jdGlvbiBVZHQodCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PVFsdCh0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWZvcih2YXIgbyxhPWVbcl0scz1hLmxlbmd0aCxsPWlbcl09W10sYz0wO2M8czsrK2MpKG89YVtjXSkmJnQuY2FsbChvLG8uX19kYXRhX18sYyxhKSYmbC5wdXNoKG8pO3JldHVybiBuZXcgRGR0KGksdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sbWVyZ2U6ZnVuY3Rpb24gamR0KHQpe2lmKHQuX2lkIT09dGhpcy5faWQpdGhyb3cgbmV3IEVycm9yO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj10Ll9ncm91cHMsaT1lLmxlbmd0aCxyPU1hdGgubWluKGksbi5sZW5ndGgpLG89bmV3IEFycmF5KGkpLGE9MDthPHI7KythKWZvcih2YXIgcyxsPWVbYV0sYz1uW2FdLHU9bC5sZW5ndGgsaD1vW2FdPW5ldyBBcnJheSh1KSxkPTA7ZDx1OysrZCkocz1sW2RdfHxjW2RdKSYmKGhbZF09cyk7Zm9yKDthPGk7KythKW9bYV09ZVthXTtyZXR1cm4gbmV3IERkdChvLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9LHNlbGVjdGlvbjpmdW5jdGlvbiBHZHQoKXtyZXR1cm4gbmV3IExkdCh0aGlzLl9ncm91cHMsdGhpcy5fcGFyZW50cyl9LHRyYW5zaXRpb246ZnVuY3Rpb24gV2R0KCl7Zm9yKHZhciB0PXRoaXMuX25hbWUsZT10aGlzLl9pZCxuPUJkdCgpLGk9dGhpcy5fZ3JvdXBzLHI9aS5sZW5ndGgsbz0wO288cjsrK28pZm9yKHZhciBhLHM9aVtvXSxsPXMubGVuZ3RoLGM9MDtjPGw7KytjKWlmKGE9c1tjXSl7dmFyIHU9bGR0KGEsZSk7b2R0KGEsdCxuLGMscyx7dGltZTp1LnRpbWUrdS5kZWxheSt1LmR1cmF0aW9uLGRlbGF5OjAsZHVyYXRpb246dS5kdXJhdGlvbixlYXNlOnUuZWFzZX0pfXJldHVybiBuZXcgRGR0KGksdGhpcy5fcGFyZW50cyx0LG4pfSxjYWxsOkhkdC5jYWxsLG5vZGVzOkhkdC5ub2Rlcyxub2RlOkhkdC5ub2RlLHNpemU6SGR0LnNpemUsZW1wdHk6SGR0LmVtcHR5LGVhY2g6SGR0LmVhY2gsb246ZnVuY3Rpb24gcWR0KHQsZSl7dmFyIG49dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9sZHQodGhpcy5ub2RlKCksbikub24ub24odCk6dGhpcy5lYWNoKGtkdChuLHQsZSkpfSxhdHRyOmZ1bmN0aW9uIFlkdCh0LGUpe3ZhciBuPVdsdCh0KSxpPSJ0cmFuc2Zvcm0iPT09bj9SaHQ6cGR0O3JldHVybiB0aGlzLmF0dHJUd2Vlbih0LCJmdW5jdGlvbiI9PXR5cGVvZiBlPyhuLmxvY2FsP3ZkdDp5ZHQpKG4saSxkZHQodGhpcywiYXR0ci4iK3QsZSkpOm51bGw9PWU/KG4ubG9jYWw/bWR0OmZkdCkobik6KG4ubG9jYWw/X2R0OmdkdCkobixpLGUpKX0sYXR0clR3ZWVuOmZ1bmN0aW9uIFhkdCh0LGUpe3ZhciBuPSJhdHRyLiIrdDtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKG49dGhpcy50d2VlbihuKSkmJm4uX3ZhbHVlO2lmKG51bGw9PWUpcmV0dXJuIHRoaXMudHdlZW4obixudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7dmFyIGk9V2x0KHQpO3JldHVybiB0aGlzLnR3ZWVuKG4sKGkubG9jYWw/d2R0OlNkdCkoaSxlKSl9LHN0eWxlOmZ1bmN0aW9uICRkdCh0LGUsbil7dmFyIGk9InRyYW5zZm9ybSI9PSh0Kz0iIik/Tmh0OnBkdDtyZXR1cm4gbnVsbD09ZT90aGlzLnN0eWxlVHdlZW4odCwoZnVuY3Rpb24gcih0LGUpe3ZhciBuLGkscjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz1tY3QodGhpcyx0KSxhPSh0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpLG1jdCh0aGlzLHQpKTtyZXR1cm4gbz09PWE/bnVsbDpvPT09biYmYT09PWk/cjpyPWUobj1vLGk9YSl9fSkodCxpKSkub24oImVuZC5zdHlsZS4iK3QsUGR0KHQpKToiZnVuY3Rpb24iPT10eXBlb2YgZT90aGlzLnN0eWxlVHdlZW4odCwoZnVuY3Rpb24gYSh0LGUsbil7dmFyIGkscixvO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPW1jdCh0aGlzLHQpLHM9bih0aGlzKSxsPXMrIiI7cmV0dXJuIG51bGw9PXMmJih0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpLGw9cz1tY3QodGhpcyx0KSksYT09PWw/bnVsbDphPT09aSYmbD09PXI/bzoocj1sLG89ZShpPWEscykpfX0pKHQsaSxkZHQodGhpcywic3R5bGUuIit0LGUpKSkuZWFjaCgoZnVuY3Rpb24gbyh0LGUpe3ZhciBuLGkscixvLGE9InN0eWxlLiIrZSxzPSJlbmQuIithO3JldHVybiBmdW5jdGlvbigpe3ZhciBsPXNkdCh0aGlzLHQpLGM9bC5vbix1PW51bGw9PWwudmFsdWVbYV0/b3x8KG89UGR0KGUpKTp2b2lkIDA7Yz09PW4mJnI9PT11fHwoaT0obj1jKS5jb3B5KCkpLm9uKHMscj11KSxsLm9uPWl9fSkodGhpcy5faWQsdCkpOnRoaXMuc3R5bGVUd2Vlbih0LChmdW5jdGlvbiBzKHQsZSxuKXt2YXIgaSxyLG89bisiIjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1tY3QodGhpcyx0KTtyZXR1cm4gYT09PW8/bnVsbDphPT09aT9yOnI9ZShpPWEsbil9fSkodCxpLGUpLG4pLm9uKCJlbmQuc3R5bGUuIit0LG51bGwpfSxzdHlsZVR3ZWVuOmZ1bmN0aW9uIEtkdCh0LGUsbil7dmFyIGk9InN0eWxlLiIrKHQrPSIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKGk9dGhpcy50d2VlbihpKSkmJmkuX3ZhbHVlO2lmKG51bGw9PWUpcmV0dXJuIHRoaXMudHdlZW4oaSxudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4oaSxJZHQodCxlLG51bGw9PW4/IiI6bikpfSx0ZXh0OmZ1bmN0aW9uIFpkdCh0KXtyZXR1cm4gdGhpcy50d2VlbigidGV4dCIsImZ1bmN0aW9uIj09dHlwZW9mIHQ/KGZ1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dCh0aGlzKTt0aGlzLnRleHRDb250ZW50PW51bGw9PWU/IiI6ZX19KShkZHQodGhpcywidGV4dCIsdCkpOihmdW5jdGlvbiBuKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH19KShudWxsPT10PyIiOnQrIiIpKX0sdGV4dFR3ZWVuOmZ1bmN0aW9uIEpkdCh0KXt2YXIgZT0idGV4dCI7aWYoYXJndW1lbnRzLmxlbmd0aDwxKXJldHVybihlPXRoaXMudHdlZW4oZSkpJiZlLl92YWx1ZTtpZihudWxsPT10KXJldHVybiB0aGlzLnR3ZWVuKGUsbnVsbCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yO3JldHVybiB0aGlzLnR3ZWVuKGUsT2R0KHQpKX0scmVtb3ZlOmZ1bmN0aW9uIFFkdCgpe3JldHVybiB0aGlzLm9uKCJlbmQucmVtb3ZlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBhcmVudE5vZGU7Zm9yKHZhciBuIGluIHRoaXMuX190cmFuc2l0aW9uKWlmKCtuIT09ZSlyZXR1cm47dCYmdC5yZW1vdmVDaGlsZCh0aGlzKX19KSh0aGlzLl9pZCkpfSx0d2VlbjpmdW5jdGlvbiB0cHQodCxlKXt2YXIgbj10aGlzLl9pZDtpZih0Kz0iIixhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgaSxyPWxkdCh0aGlzLm5vZGUoKSxuKS50d2VlbixvPTAsYT1yLmxlbmd0aDtvPGE7KytvKWlmKChpPXJbb10pLm5hbWU9PT10KXJldHVybiBpLnZhbHVlO3JldHVybiBudWxsfXJldHVybiB0aGlzLmVhY2goKG51bGw9PWU/dWR0OmhkdCkobix0LGUpKX0sZGVsYXk6ZnVuY3Rpb24gZXB0KHQpe3ZhciBlPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIHQ/TWR0OkVkdCkoZSx0KSk6bGR0KHRoaXMubm9kZSgpLGUpLmRlbGF5fSxkdXJhdGlvbjpmdW5jdGlvbiBucHQodCl7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgdD9UZHQ6Q2R0KShlLHQpKTpsZHQodGhpcy5ub2RlKCksZSkuZHVyYXRpb259LGVhc2U6ZnVuY3Rpb24gaXB0KHQpe3ZhciBlPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChBZHQoZSx0KSk6bGR0KHRoaXMubm9kZSgpLGUpLmVhc2V9LGVuZDpmdW5jdGlvbiBycHQoKXt2YXIgdCxlLG49dGhpcyxpPW4uX2lkLHI9bi5zaXplKCk7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihvLGEpe3ZhciBzPXt2YWx1ZTphfSxsPXt2YWx1ZTpmdW5jdGlvbigpezA9PS0tciYmbygpfX07bi5lYWNoKChmdW5jdGlvbigpe3ZhciBuPXNkdCh0aGlzLGkpLHI9bi5vbjtyIT09dCYmKChlPSh0PXIpLmNvcHkoKSkuXy5jYW5jZWwucHVzaChzKSxlLl8uaW50ZXJydXB0LnB1c2gocyksZS5fLmVuZC5wdXNoKGwpKSxuLm9uPWV9KSl9KSl9fTt2YXIgb3B0PXt0aW1lOm51bGwsZGVsYXk6MCxkdXJhdGlvbjoyNTAsZWFzZTpxZn07ZnVuY3Rpb24gYXB0KHQsZSl7Zm9yKHZhciBuOyEobj10Ll9fdHJhbnNpdGlvbil8fCEobj1uW2VdKTspaWYoISh0PXQucGFyZW50Tm9kZSkpcmV0dXJuIG9wdC50aW1lPSRodCgpLG9wdDtyZXR1cm4gbn1mdW5jdGlvbiBzcHQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIGxwdCh0LGUsbil7dGhpcy50YXJnZXQ9dCx0aGlzLnR5cGU9ZSx0aGlzLnRyYW5zZm9ybT1ufWZ1bmN0aW9uIGNwdCh0LGUsbil7dGhpcy5rPXQsdGhpcy54PWUsdGhpcy55PW59WmN0LnByb3RvdHlwZS5pbnRlcnJ1cHQ9ZnVuY3Rpb24gdXB0KHQpe3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7Y2R0KHRoaXMsdCl9KSl9LFpjdC5wcm90b3R5cGUudHJhbnNpdGlvbj1mdW5jdGlvbiBocHQodCl7dmFyIGUsbjt0IGluc3RhbmNlb2YgRGR0PyhlPXQuX2lkLHQ9dC5fbmFtZSk6KGU9QmR0KCksKG49b3B0KS50aW1lPSRodCgpLHQ9bnVsbD09dD9udWxsOnQrIiIpO2Zvcih2YXIgaT10aGlzLl9ncm91cHMscj1pLmxlbmd0aCxvPTA7bzxyOysrbylmb3IodmFyIGEscz1pW29dLGw9cy5sZW5ndGgsYz0wO2M8bDsrK2MpKGE9c1tjXSkmJm9kdChhLHQsZSxjLHMsbnx8YXB0KGEsZSkpO3JldHVybiBuZXcgRGR0KGksdGhpcy5fcGFyZW50cyx0LGUpfSxjcHQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpjcHQsc2NhbGU6ZnVuY3Rpb24odCl7cmV0dXJuIDE9PT10P3RoaXM6bmV3IGNwdCh0aGlzLmsqdCx0aGlzLngsdGhpcy55KX0sdHJhbnNsYXRlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIDA9PT10JjA9PT1lP3RoaXM6bmV3IGNwdCh0aGlzLmssdGhpcy54K3RoaXMuayp0LHRoaXMueSt0aGlzLmsqZSl9LGFwcGx5OmZ1bmN0aW9uKHQpe3JldHVyblt0WzBdKnRoaXMuayt0aGlzLngsdFsxXSp0aGlzLmsrdGhpcy55XX0sYXBwbHlYOmZ1bmN0aW9uKHQpe3JldHVybiB0KnRoaXMuayt0aGlzLnh9LGFwcGx5WTpmdW5jdGlvbih0KXtyZXR1cm4gdCp0aGlzLmsrdGhpcy55fSxpbnZlcnQ6ZnVuY3Rpb24odCl7cmV0dXJuWyh0WzBdLXRoaXMueCkvdGhpcy5rLCh0WzFdLXRoaXMueSkvdGhpcy5rXX0saW52ZXJ0WDpmdW5jdGlvbih0KXtyZXR1cm4odC10aGlzLngpL3RoaXMua30saW52ZXJ0WTpmdW5jdGlvbih0KXtyZXR1cm4odC10aGlzLnkpL3RoaXMua30scmVzY2FsZVg6ZnVuY3Rpb24odCl7cmV0dXJuIHQuY29weSgpLmRvbWFpbih0LnJhbmdlKCkubWFwKHRoaXMuaW52ZXJ0WCx0aGlzKS5tYXAodC5pbnZlcnQsdCkpfSxyZXNjYWxlWTpmdW5jdGlvbih0KXtyZXR1cm4gdC5jb3B5KCkuZG9tYWluKHQucmFuZ2UoKS5tYXAodGhpcy5pbnZlcnRZLHRoaXMpLm1hcCh0LmludmVydCx0KSl9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuInRyYW5zbGF0ZSgiK3RoaXMueCsiLCIrdGhpcy55KyIpIHNjYWxlKCIrdGhpcy5rKyIpIn19O3ZhciBkcHQ9bmV3IGNwdCgxLDAsMCk7ZnVuY3Rpb24gcHB0KHQpe3JldHVybiB0Ll9fem9vbXx8ZHB0fWZ1bmN0aW9uIGZwdCgpe0ZjdC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBtcHQoKXtGY3QucHJldmVudERlZmF1bHQoKSxGY3Quc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gZ3B0KCl7cmV0dXJuIUZjdC5idXR0b259ZnVuY3Rpb24gX3B0KCl7dmFyIHQsZSxuPXRoaXM7cmV0dXJuIG4gaW5zdGFuY2VvZiBTVkdFbGVtZW50Pyh0PShuPW4ub3duZXJTVkdFbGVtZW50fHxuKS53aWR0aC5iYXNlVmFsLnZhbHVlLGU9bi5oZWlnaHQuYmFzZVZhbC52YWx1ZSk6KHQ9bi5jbGllbnRXaWR0aCxlPW4uY2xpZW50SGVpZ2h0KSxbWzAsMF0sW3QsZV1dfWZ1bmN0aW9uIHlwdCgpe3JldHVybiB0aGlzLl9fem9vbXx8ZHB0fWZ1bmN0aW9uIHZwdCgpe3JldHVybi1GY3QuZGVsdGFZKihGY3QuZGVsdGFNb2RlPzEyMDoxKS81MDB9ZnVuY3Rpb24gYnB0KCl7cmV0dXJuIm9udG91Y2hzdGFydCJpbiB0aGlzfWZ1bmN0aW9uIHhwdCh0LGUsbil7dmFyIGk9dC5pbnZlcnRYKGVbMF1bMF0pLW5bMF1bMF0scj10LmludmVydFgoZVsxXVswXSktblsxXVswXSxvPXQuaW52ZXJ0WShlWzBdWzFdKS1uWzBdWzFdLGE9dC5pbnZlcnRZKGVbMV1bMV0pLW5bMV1bMV07cmV0dXJuIHQudHJhbnNsYXRlKHI+aT8oaStyKS8yOk1hdGgubWluKDAsaSl8fE1hdGgubWF4KDAsciksYT5vPyhvK2EpLzI6TWF0aC5taW4oMCxvKXx8TWF0aC5tYXgoMCxhKSl9cHB0LnByb3RvdHlwZT1jcHQucHJvdG90eXBlO3ZhciB3cHQ9TWUoT2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsdmVyc2lvbjoiNC4xMy4wIixiaXNlY3Q6ZXosYmlzZWN0UmlnaHQ6ZXosYmlzZWN0TGVmdDpueixhc2NlbmRpbmc6Sk8sYmlzZWN0b3I6UU8sY3Jvc3M6ZnVuY3Rpb24gU3B0KHQsZSxuKXt2YXIgaSxyLG8sYSxzPXQubGVuZ3RoLGw9ZS5sZW5ndGgsYz1uZXcgQXJyYXkocypsKTtmb3IobnVsbD09biYmKG49aXopLGk9bz0wO2k8czsrK2kpZm9yKGE9dFtpXSxyPTA7cjxsOysrciwrK28pY1tvXT1uKGEsZVtyXSk7cmV0dXJuIGN9LGRlc2NlbmRpbmc6ZnVuY3Rpb24gTXB0KHQsZSl7cmV0dXJuIGU8dD8tMTplPnQ/MTplPj10PzA6TmFOfSxkZXZpYXRpb246YXosZXh0ZW50OnN6LGhpc3RvZ3JhbTpmdW5jdGlvbiBFcHQoKXt2YXIgdD1keixlPXN6LG49dno7ZnVuY3Rpb24gaShpKXt2YXIgcixvLGE9aS5sZW5ndGgscz1uZXcgQXJyYXkoYSk7Zm9yKHI9MDtyPGE7KytyKXNbcl09dChpW3JdLHIsaSk7dmFyIGw9ZShzKSxjPWxbMF0sdT1sWzFdLGg9bihzLGMsdSk7QXJyYXkuaXNBcnJheShoKXx8KGg9eXooYyx1LGgpLGg9cHooTWF0aC5jZWlsKGMvaCkqaCxNYXRoLmZsb29yKHUvaCkqaCxoKSk7Zm9yKHZhciBkPWgubGVuZ3RoO2hbMF08PWM7KWguc2hpZnQoKSwtLWQ7Zm9yKDtoW2QtMV0+dTspaC5wb3AoKSwtLWQ7dmFyIHAsZj1uZXcgQXJyYXkoZCsxKTtmb3Iocj0wO3I8PWQ7KytyKShwPWZbcl09W10pLngwPXI+MD9oW3ItMV06YyxwLngxPXI8ZD9oW3JdOnU7Zm9yKHI9MDtyPGE7KytyKWM8PShvPXNbcl0pJiZvPD11JiZmW2V6KGgsbywwLGQpXS5wdXNoKGlbcl0pO3JldHVybiBmfXJldHVybiBpLnZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6aHooZSksaSk6dH0saS5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpoeihbdFswXSx0WzFdXSksaSk6ZX0saS50aHJlc2hvbGRzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6QXJyYXkuaXNBcnJheSh0KT9oeihjei5jYWxsKHQpKTpoeih0KSxpKTpufSxpfSx0aHJlc2hvbGRGcmVlZG1hbkRpYWNvbmlzOmZ1bmN0aW9uIFRwdCh0LGUsbil7cmV0dXJuIHQ9dXouY2FsbCh0LHJ6KS5zb3J0KEpPKSxNYXRoLmNlaWwoKG4tZSkvKDIqKGJ6KHQsLjc1KS1ieih0LC4yNSkpKk1hdGgucG93KHQubGVuZ3RoLC0xLzMpKSl9LHRocmVzaG9sZFNjb3R0OmZ1bmN0aW9uIENwdCh0LGUsbil7cmV0dXJuIE1hdGguY2VpbCgobi1lKS8oMy41KmF6KHQpKk1hdGgucG93KHQubGVuZ3RoLC0xLzMpKSl9LHRocmVzaG9sZFN0dXJnZXM6dnosbWF4OmZ1bmN0aW9uIEFwdCh0LGUpe3ZhciBuLGkscj10Lmxlbmd0aCxvPS0xO2lmKG51bGw9PWUpe2Zvcig7KytvPHI7KWlmKG51bGwhPShuPXRbb10pJiZuPj1uKWZvcihpPW47KytvPHI7KW51bGwhPShuPXRbb10pJiZuPmkmJihpPW4pfWVsc2UgZm9yKDsrK288cjspaWYobnVsbCE9KG49ZSh0W29dLG8sdCkpJiZuPj1uKWZvcihpPW47KytvPHI7KW51bGwhPShuPWUodFtvXSxvLHQpKSYmbj5pJiYoaT1uKTtyZXR1cm4gaX0sbWVhbjpmdW5jdGlvbiBrcHQodCxlKXt2YXIgbixpPXQubGVuZ3RoLHI9aSxvPS0xLGE9MDtpZihudWxsPT1lKWZvcig7KytvPGk7KWlzTmFOKG49cnoodFtvXSkpPy0tcjphKz1uO2Vsc2UgZm9yKDsrK288aTspaXNOYU4obj1yeihlKHRbb10sbyx0KSkpPy0tcjphKz1uO2lmKHIpcmV0dXJuIGEvcn0sbWVkaWFuOmZ1bmN0aW9uIExwdCh0LGUpe3ZhciBuLGk9dC5sZW5ndGgscj0tMSxvPVtdO2lmKG51bGw9PWUpZm9yKDsrK3I8aTspaXNOYU4obj1yeih0W3JdKSl8fG8ucHVzaChuKTtlbHNlIGZvcig7KytyPGk7KWlzTmFOKG49cnooZSh0W3JdLHIsdCkpKXx8by5wdXNoKG4pO3JldHVybiBieihvLnNvcnQoSk8pLC41KX0sbWVyZ2U6ZnVuY3Rpb24gUHB0KHQpe2Zvcih2YXIgZSxuLGkscj10Lmxlbmd0aCxvPS0xLGE9MDsrK288cjspYSs9dFtvXS5sZW5ndGg7Zm9yKG49bmV3IEFycmF5KGEpOy0tcj49MDspZm9yKGU9KGk9dFtyXSkubGVuZ3RoOy0tZT49MDspblstLWFdPWlbZV07cmV0dXJuIG59LG1pbjp4eixwYWlyczpmdW5jdGlvbiBOcHQodCxlKXtudWxsPT1lJiYoZT1peik7Zm9yKHZhciBuPTAsaT10Lmxlbmd0aC0xLHI9dFswXSxvPW5ldyBBcnJheShpPDA/MDppKTtuPGk7KW9bbl09ZShyLHI9dFsrK25dKTtyZXR1cm4gb30scGVybXV0ZTpmdW5jdGlvbiBJcHQodCxlKXtmb3IodmFyIG49ZS5sZW5ndGgsaT1uZXcgQXJyYXkobik7bi0tOylpW25dPXRbZVtuXV07cmV0dXJuIGl9LHF1YW50aWxlOmJ6LHJhbmdlOnB6LHNjYW46ZnVuY3Rpb24gUnB0KHQsZSl7aWYobj10Lmxlbmd0aCl7dmFyIG4saSxyPTAsbz0wLGE9dFtvXTtmb3IobnVsbD09ZSYmKGU9Sk8pOysrcjxuOykoZShpPXRbcl0sYSk8MHx8MCE9PWUoYSxhKSkmJihhPWksbz1yKTtyZXR1cm4gMD09PWUoYSxhKT9vOnZvaWQgMH19LHNodWZmbGU6ZnVuY3Rpb24gT3B0KHQsZSxuKXtmb3IodmFyIGkscixvPShudWxsPT1uP3QubGVuZ3RoOm4pLShlPW51bGw9PWU/MDorZSk7bzspcj1NYXRoLnJhbmRvbSgpKm8tLXwwLGk9dFtvK2VdLHRbbytlXT10W3IrZV0sdFtyK2VdPWk7cmV0dXJuIHR9LHN1bTpmdW5jdGlvbiB6cHQodCxlKXt2YXIgbixpPXQubGVuZ3RoLHI9LTEsbz0wO2lmKG51bGw9PWUpZm9yKDsrK3I8aTspKG49K3Rbcl0pJiYobys9bik7ZWxzZSBmb3IoOysrcjxpOykobj0rZSh0W3JdLHIsdCkpJiYobys9bik7cmV0dXJuIG99LHRpY2tzOmZ1bmN0aW9uIERwdCh0LGUsbil7dmFyIGkscixvLGEscz0tMTtpZihuPStuLCh0PSt0KT09PShlPStlKSYmbj4wKXJldHVyblt0XTtpZigoaT1lPHQpJiYocj10LHQ9ZSxlPXIpLDA9PT0oYT1feih0LGUsbikpfHwhaXNGaW5pdGUoYSkpcmV0dXJuW107aWYoYT4wKWZvcih0PU1hdGguY2VpbCh0L2EpLGU9TWF0aC5mbG9vcihlL2EpLG89bmV3IEFycmF5KHI9TWF0aC5jZWlsKGUtdCsxKSk7KytzPHI7KW9bc109KHQrcykqYTtlbHNlIGZvcih0PU1hdGguZmxvb3IodCphKSxlPU1hdGguY2VpbChlKmEpLG89bmV3IEFycmF5KHI9TWF0aC5jZWlsKHQtZSsxKSk7KytzPHI7KW9bc109KHQtcykvYTtyZXR1cm4gaSYmby5yZXZlcnNlKCksb30sdGlja0luY3JlbWVudDpfeix0aWNrU3RlcDp5eix0cmFuc3Bvc2U6d3osdmFyaWFuY2U6b3osemlwOmZ1bmN0aW9uIEJwdCgpe3JldHVybiB3eihhcmd1bWVudHMpfSxheGlzVG9wOmZ1bmN0aW9uIEhwdCh0KXtyZXR1cm4gTnooMSx0KX0sYXhpc1JpZ2h0OmZ1bmN0aW9uIEZwdCh0KXtyZXR1cm4gTnooMix0KX0sYXhpc0JvdHRvbTpmdW5jdGlvbiBWcHQodCl7cmV0dXJuIE56KDMsdCl9LGF4aXNMZWZ0OmZ1bmN0aW9uIFVwdCh0KXtyZXR1cm4gTnooNCx0KX0sYnJ1c2g6ZnVuY3Rpb24ganB0KCl7cmV0dXJuIEVWKGZWKX0sYnJ1c2hYOmZ1bmN0aW9uIEdwdCgpe3JldHVybiBFVihkVil9LGJydXNoWTpmdW5jdGlvbiBXcHQoKXtyZXR1cm4gRVYocFYpfSxicnVzaFNlbGVjdGlvbjpmdW5jdGlvbiBxcHQodCl7dmFyIGU9dC5fX2JydXNoO3JldHVybiBlP2UuZGltLm91dHB1dChlLnNlbGVjdGlvbik6bnVsbH0sY2hvcmQ6ZnVuY3Rpb24gWXB0KCl7dmFyIHQ9MCxlPW51bGwsbj1udWxsLGk9bnVsbDtmdW5jdGlvbiByKHIpe3ZhciBvLGEscyxsLGMsdSxoPXIubGVuZ3RoLGQ9W10scD1DVihoKSxmPVtdLG09W10sZz1tLmdyb3Vwcz1uZXcgQXJyYXkoaCksXz1uZXcgQXJyYXkoaCpoKTtmb3Iobz0wLGM9LTE7KytjPGg7KXtmb3IoYT0wLHU9LTE7Kyt1PGg7KWErPXJbY11bdV07ZC5wdXNoKGEpLGYucHVzaChDVihoKSksbys9YX1mb3IoZSYmcC5zb3J0KChmdW5jdGlvbih0LG4pe3JldHVybiBlKGRbdF0sZFtuXSl9KSksbiYmZi5mb3JFYWNoKChmdW5jdGlvbih0LGUpe3Quc29ydCgoZnVuY3Rpb24odCxpKXtyZXR1cm4gbihyW2VdW3RdLHJbZV1baV0pfSkpfSkpLGw9KG89UlYoMCxJVi10KmgpL28pP3Q6SVYvaCxhPTAsYz0tMTsrK2M8aDspe2ZvcihzPWEsdT0tMTsrK3U8aDspe3ZhciB5PXBbY10sdj1mW3ldW3VdLGI9clt5XVt2XSx4PWEsdz1hKz1iKm87X1t2KmgreV09e2luZGV4Onksc3ViaW5kZXg6dixzdGFydEFuZ2xlOngsZW5kQW5nbGU6dyx2YWx1ZTpifX1nW3ldPXtpbmRleDp5LHN0YXJ0QW5nbGU6cyxlbmRBbmdsZTphLHZhbHVlOmRbeV19LGErPWx9Zm9yKGM9LTE7KytjPGg7KWZvcih1PWMtMTsrK3U8aDspe3ZhciBTPV9bdSpoK2NdLE09X1tjKmgrdV07KFMudmFsdWV8fE0udmFsdWUpJiZtLnB1c2goUy52YWx1ZTxNLnZhbHVlP3tzb3VyY2U6TSx0YXJnZXQ6U306e3NvdXJjZTpTLHRhcmdldDpNfSl9cmV0dXJuIGk/bS5zb3J0KGkpOm19cmV0dXJuIHIucGFkQW5nbGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9UlYoMCxlKSxyKTp0fSxyLnNvcnRHcm91cHM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxyKTplfSxyLnNvcnRTdWJncm91cHM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCxyKTpufSxyLnNvcnRDaG9yZHM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PXQ/aT1udWxsOihpPU9WKHQpKS5fPXQscik6aSYmaS5ffSxyfSxyaWJib246ZnVuY3Rpb24gWHB0KCl7dmFyIHQ9R1YsZT1XVixuPXFWLGk9WVYscj1YVixvPW51bGw7ZnVuY3Rpb24gYSgpe3ZhciBhLHM9elYuY2FsbChhcmd1bWVudHMpLGw9dC5hcHBseSh0aGlzLHMpLGM9ZS5hcHBseSh0aGlzLHMpLHU9K24uYXBwbHkodGhpcywoc1swXT1sLHMpKSxoPWkuYXBwbHkodGhpcyxzKS1OVixkPXIuYXBwbHkodGhpcyxzKS1OVixwPXUqa1YoaCksZj11KkxWKGgpLG09K24uYXBwbHkodGhpcywoc1swXT1jLHMpKSxnPWkuYXBwbHkodGhpcyxzKS1OVixfPXIuYXBwbHkodGhpcyxzKS1OVjtpZihvfHwobz1hPWpWKCkpLG8ubW92ZVRvKHAsZiksby5hcmMoMCwwLHUsaCxkKSxoPT09ZyYmZD09PV98fChvLnF1YWRyYXRpY0N1cnZlVG8oMCwwLG0qa1YoZyksbSpMVihnKSksby5hcmMoMCwwLG0sZyxfKSksby5xdWFkcmF0aWNDdXJ2ZVRvKDAsMCxwLGYpLG8uY2xvc2VQYXRoKCksYSlyZXR1cm4gbz1udWxsLGErIiJ8fG51bGx9cmV0dXJuIGEucmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6RFYoK3QpLGEpOm59LGEuc3RhcnRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkRWKCt0KSxhKTppfSxhLmVuZEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6RFYoK3QpLGEpOnJ9LGEuc291cmNlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWUsYSk6dH0sYS50YXJnZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxhKTplfSxhLmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89bnVsbD09dD9udWxsOnQsYSk6b30sYX0sbmVzdDpmdW5jdGlvbiAkcHQoKXt2YXIgdCxlLG4saT1bXSxyPVtdO2Z1bmN0aW9uIG8obixyLGEscyl7aWYocj49aS5sZW5ndGgpcmV0dXJuIG51bGwhPXQmJm4uc29ydCh0KSxudWxsIT1lP2Uobik6bjtmb3IodmFyIGwsYyx1LGg9LTEsZD1uLmxlbmd0aCxwPWlbcisrXSxmPVpWKCksbT1hKCk7KytoPGQ7KSh1PWYuZ2V0KGw9cChjPW5baF0pKyIiKSk/dS5wdXNoKGMpOmYuc2V0KGwsW2NdKTtyZXR1cm4gZi5lYWNoKChmdW5jdGlvbih0LGUpe3MobSxlLG8odCxyLGEscykpfSkpLG19ZnVuY3Rpb24gYSh0LG4pe2lmKCsrbj5pLmxlbmd0aClyZXR1cm4gdDt2YXIgbyxzPXJbbi0xXTtyZXR1cm4gbnVsbCE9ZSYmbj49aS5sZW5ndGg/bz10LmVudHJpZXMoKToobz1bXSx0LmVhY2goKGZ1bmN0aW9uKHQsZSl7by5wdXNoKHtrZXk6ZSx2YWx1ZXM6YSh0LG4pfSl9KSkpLG51bGwhPXM/by5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBzKHQua2V5LGUua2V5KX0pKTpvfXJldHVybiBuPXtvYmplY3Q6ZnVuY3Rpb24odCl7cmV0dXJuIG8odCwwLEpWLFFWKX0sbWFwOmZ1bmN0aW9uKHQpe3JldHVybiBvKHQsMCx0VSxlVSl9LGVudHJpZXM6ZnVuY3Rpb24odCl7cmV0dXJuIGEobyh0LDAsdFUsZVUpLDApfSxrZXk6ZnVuY3Rpb24odCl7cmV0dXJuIGkucHVzaCh0KSxufSxzb3J0S2V5czpmdW5jdGlvbih0KXtyZXR1cm4gcltpLmxlbmd0aC0xXT10LG59LHNvcnRWYWx1ZXM6ZnVuY3Rpb24oZSl7cmV0dXJuIHQ9ZSxufSxyb2xsdXA6ZnVuY3Rpb24odCl7cmV0dXJuIGU9dCxufX19LHNldDpyVSxtYXA6WlYsa2V5czpmdW5jdGlvbiBLcHQodCl7dmFyIGU9W107Zm9yKHZhciBuIGluIHQpZS5wdXNoKG4pO3JldHVybiBlfSx2YWx1ZXM6ZnVuY3Rpb24gWnB0KHQpe3ZhciBlPVtdO2Zvcih2YXIgbiBpbiB0KWUucHVzaCh0W25dKTtyZXR1cm4gZX0sZW50cmllczpmdW5jdGlvbiBKcHQodCl7dmFyIGU9W107Zm9yKHZhciBuIGluIHQpZS5wdXNoKHtrZXk6bix2YWx1ZTp0W25dfSk7cmV0dXJuIGV9LGNvbG9yOndVLHJnYjpUVSxoc2w6TFUsbGFiOlZVLGhjbDpYVSxjdWJlaGVsaXg6b2osZGlzcGF0Y2g6bGosZHJhZzpmdW5jdGlvbiBRcHQoKXt2YXIgdCxlLG4saSxyPURHLG89QkcsYT1IRyxzPUZHLGw9e30sYz1maigic3RhcnQiLCJkcmFnIiwiZW5kIiksdT0wLGg9MDtmdW5jdGlvbiBkKHQpe3Qub24oIm1vdXNlZG93bi5kcmFnIixwKS5maWx0ZXIocykub24oInRvdWNoc3RhcnQuZHJhZyIsZykub24oInRvdWNobW92ZS5kcmFnIixfKS5vbigidG91Y2hlbmQuZHJhZyB0b3VjaGNhbmNlbC5kcmFnIix5KS5zdHlsZSgidG91Y2gtYWN0aW9uIiwibm9uZSIpLnN0eWxlKCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3IiLCJyZ2JhKDAsMCwwLDApIil9ZnVuY3Rpb24gcCgpe2lmKCFpJiZyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIGE9digibW91c2UiLG8uYXBwbHkodGhpcyxhcmd1bWVudHMpLGtHLHRoaXMsYXJndW1lbnRzKTthJiYoVEcoZkcudmlldykub24oIm1vdXNlbW92ZS5kcmFnIixmLCEwKS5vbigibW91c2V1cC5kcmFnIixtLCEwKSxJRyhmRy52aWV3KSxQRygpLG49ITEsdD1mRy5jbGllbnRYLGU9ZkcuY2xpZW50WSxhKCJzdGFydCIpKX19ZnVuY3Rpb24gZigpe2lmKE5HKCksIW4pe3ZhciBpPWZHLmNsaWVudFgtdCxyPWZHLmNsaWVudFktZTtuPWkqaStyKnI+aH1sLm1vdXNlKCJkcmFnIil9ZnVuY3Rpb24gbSgpe1RHKGZHLnZpZXcpLm9uKCJtb3VzZW1vdmUuZHJhZyBtb3VzZXVwLmRyYWciLG51bGwpLFJHKGZHLnZpZXcsbiksTkcoKSxsLm1vdXNlKCJlbmQiKX1mdW5jdGlvbiBnKCl7aWYoci5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciB0LGUsbj1mRy5jaGFuZ2VkVG91Y2hlcyxpPW8uYXBwbHkodGhpcyxhcmd1bWVudHMpLGE9bi5sZW5ndGg7Zm9yKHQ9MDt0PGE7Kyt0KShlPXYoblt0XS5pZGVudGlmaWVyLGksTEcsdGhpcyxhcmd1bWVudHMpKSYmKFBHKCksZSgic3RhcnQiKSl9fWZ1bmN0aW9uIF8oKXt2YXIgdCxlLG49ZkcuY2hhbmdlZFRvdWNoZXMsaT1uLmxlbmd0aDtmb3IodD0wO3Q8aTsrK3QpKGU9bFtuW3RdLmlkZW50aWZpZXJdKSYmKE5HKCksZSgiZHJhZyIpKX1mdW5jdGlvbiB5KCl7dmFyIHQsZSxuPWZHLmNoYW5nZWRUb3VjaGVzLHI9bi5sZW5ndGg7Zm9yKGkmJmNsZWFyVGltZW91dChpKSxpPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7aT1udWxsfSksNTAwKSx0PTA7dDxyOysrdCkoZT1sW25bdF0uaWRlbnRpZmllcl0pJiYoUEcoKSxlKCJlbmQiKSl9ZnVuY3Rpb24gdih0LGUsbixpLHIpe3ZhciBvLHMsaCxwPW4oZSx0KSxmPWMuY29weSgpO2lmKGJHKG5ldyB6RyhkLCJiZWZvcmVzdGFydCIsbyx0LHUscFswXSxwWzFdLDAsMCxmKSwoZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9KGZHLnN1YmplY3Q9bz1hLmFwcGx5KGkscikpJiYocz1vLngtcFswXXx8MCxoPW8ueS1wWzFdfHwwLCEwKX0pKSlyZXR1cm4gZnVuY3Rpb24gYShjKXt2YXIgbSxnPXA7c3dpdGNoKGMpe2Nhc2Uic3RhcnQiOmxbdF09YSxtPXUrKzticmVhaztjYXNlImVuZCI6ZGVsZXRlIGxbdF0sLS11O2Nhc2UiZHJhZyI6cD1uKGUsdCksbT11fWJHKG5ldyB6RyhkLGMsbyx0LG0scFswXStzLHBbMV0raCxwWzBdLWdbMF0scFsxXS1nWzFdLGYpLGYuYXBwbHksZixbYyxpLHJdKX19cmV0dXJuIGQuZmlsdGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6T0coISF0KSxkKTpyfSxkLmNvbnRhaW5lcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0iZnVuY3Rpb24iPT10eXBlb2YgdD90Ok9HKHQpLGQpOm99LGQuc3ViamVjdD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0iZnVuY3Rpb24iPT10eXBlb2YgdD90Ok9HKHQpLGQpOmF9LGQudG91Y2hhYmxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6T0coISF0KSxkKTpzfSxkLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9Yy5vbi5hcHBseShjLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT1jP2Q6dH0sZC5jbGlja0Rpc3RhbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPSh0PSt0KSp0LGQpOk1hdGguc3FydChoKX0sZH0sZHJhZ0Rpc2FibGU6SUcsZHJhZ0VuYWJsZTpSRyxkc3ZGb3JtYXQ6eFcsY3N2UGFyc2U6U1csY3N2UGFyc2VSb3dzOk1XLGNzdkZvcm1hdDpFVyxjc3ZGb3JtYXRSb3dzOlRXLHRzdlBhcnNlOkFXLHRzdlBhcnNlUm93czprVyx0c3ZGb3JtYXQ6TFcsdHN2Rm9ybWF0Um93czpQVyxlYXNlTGluZWFyOmZ1bmN0aW9uIHRmdCh0KXtyZXR1cm4rdH0sZWFzZVF1YWQ6TlcsZWFzZVF1YWRJbjpmdW5jdGlvbiBlZnQodCl7cmV0dXJuIHQqdH0sZWFzZVF1YWRPdXQ6ZnVuY3Rpb24gbmZ0KHQpe3JldHVybiB0KigyLXQpfSxlYXNlUXVhZEluT3V0Ok5XLGVhc2VDdWJpYzpJVyxlYXNlQ3ViaWNJbjpmdW5jdGlvbiBpZnQodCl7cmV0dXJuIHQqdCp0fSxlYXNlQ3ViaWNPdXQ6ZnVuY3Rpb24gcmZ0KHQpe3JldHVybi0tdCp0KnQrMX0sZWFzZUN1YmljSW5PdXQ6SVcsZWFzZVBvbHk6elcsZWFzZVBvbHlJbjpSVyxlYXNlUG9seU91dDpPVyxlYXNlUG9seUluT3V0OnpXLGVhc2VTaW46SFcsZWFzZVNpbkluOmZ1bmN0aW9uIG9mdCh0KXtyZXR1cm4gMS1NYXRoLmNvcyh0KkJXKX0sZWFzZVNpbk91dDpmdW5jdGlvbiBhZnQodCl7cmV0dXJuIE1hdGguc2luKHQqQlcpfSxlYXNlU2luSW5PdXQ6SFcsZWFzZUV4cDpGVyxlYXNlRXhwSW46ZnVuY3Rpb24gc2Z0KHQpe3JldHVybiBNYXRoLnBvdygyLDEwKnQtMTApfSxlYXNlRXhwT3V0OmZ1bmN0aW9uIGxmdCh0KXtyZXR1cm4gMS1NYXRoLnBvdygyLC0xMCp0KX0sZWFzZUV4cEluT3V0OkZXLGVhc2VDaXJjbGU6VlcsZWFzZUNpcmNsZUluOmZ1bmN0aW9uIGNmdCh0KXtyZXR1cm4gMS1NYXRoLnNxcnQoMS10KnQpfSxlYXNlQ2lyY2xlT3V0OmZ1bmN0aW9uIHVmdCh0KXtyZXR1cm4gTWF0aC5zcXJ0KDEtIC0tdCp0KX0sZWFzZUNpcmNsZUluT3V0OlZXLGVhc2VCb3VuY2U6R1csZWFzZUJvdW5jZUluOmZ1bmN0aW9uIGhmdCh0KXtyZXR1cm4gMS1HVygxLXQpfSxlYXNlQm91bmNlT3V0OkdXLGVhc2VCb3VuY2VJbk91dDpmdW5jdGlvbiBkZnQodCl7cmV0dXJuKCh0Kj0yKTw9MT8xLUdXKDEtdCk6R1codC0xKSsxKS8yfSxlYXNlQmFjazpYVyxlYXNlQmFja0luOnFXLGVhc2VCYWNrT3V0OllXLGVhc2VCYWNrSW5PdXQ6WFcsZWFzZUVsYXN0aWM6WlcsZWFzZUVsYXN0aWNJbjpLVyxlYXNlRWxhc3RpY091dDpaVyxlYXNlRWxhc3RpY0luT3V0OkpXLGZvcmNlQ2VudGVyOmZ1bmN0aW9uIHBmdCh0LGUpe3ZhciBuO2Z1bmN0aW9uIGkoKXt2YXIgaSxyLG89bi5sZW5ndGgsYT0wLHM9MDtmb3IoaT0wO2k8bzsrK2kpYSs9KHI9bltpXSkueCxzKz1yLnk7Zm9yKGE9YS9vLXQscz1zL28tZSxpPTA7aTxvOysraSkocj1uW2ldKS54LT1hLHIueS09c31yZXR1cm4gbnVsbD09dCYmKHQ9MCksbnVsbD09ZSYmKGU9MCksaS5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe249dH0saS54PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PStlLGkpOnR9LGkueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rdCxpKTplfSxpfSxmb3JjZUNvbGxpZGU6ZnVuY3Rpb24gZmZ0KHQpe3ZhciBlLG4saT0xLHI9MTtmdW5jdGlvbiBvKCl7Zm9yKHZhciB0LG8scyxsLGMsdSxoLGQ9ZS5sZW5ndGgscD0wO3A8cjsrK3ApZm9yKG89b3EoZSxjcSx1cSkudmlzaXRBZnRlcihhKSx0PTA7dDxkOysrdCloPSh1PW5bKHM9ZVt0XSkuaW5kZXhdKSp1LGw9cy54K3MudngsYz1zLnkrcy52eSxvLnZpc2l0KGYpO2Z1bmN0aW9uIGYodCxlLG4scixvKXt2YXIgYT10LmRhdGEsZD10LnIscD11K2Q7aWYoIWEpcmV0dXJuIGU+bCtwfHxyPGwtcHx8bj5jK3B8fG88Yy1wO2lmKGEuaW5kZXg+cy5pbmRleCl7dmFyIGY9bC1hLngtYS52eCxtPWMtYS55LWEudnksZz1mKmYrbSptO2c8cCpwJiYoMD09PWYmJihnKz0oZj10cSgpKSpmKSwwPT09bSYmKGcrPShtPXRxKCkpKm0pLGc9KHAtKGc9TWF0aC5zcXJ0KGcpKSkvZyppLHMudngrPShmKj1nKSoocD0oZCo9ZCkvKGgrZCkpLHMudnkrPShtKj1nKSpwLGEudngtPWYqKHA9MS1wKSxhLnZ5LT1tKnApfX19ZnVuY3Rpb24gYSh0KXtpZih0LmRhdGEpcmV0dXJuIHQucj1uW3QuZGF0YS5pbmRleF07Zm9yKHZhciBlPXQucj0wO2U8NDsrK2UpdFtlXSYmdFtlXS5yPnQuciYmKHQucj10W2VdLnIpfWZ1bmN0aW9uIHMoKXtpZihlKXt2YXIgaSxyLG89ZS5sZW5ndGg7Zm9yKG49bmV3IEFycmF5KG8pLGk9MDtpPG87KytpKW5bKHI9ZVtpXSkuaW5kZXhdPSt0KHIsaSxlKX19cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PVFXKG51bGw9PXQ/MTordCkpLG8uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtlPXQscygpfSxvLml0ZXJhdGlvbnM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9K3Qsbyk6cn0sby5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0rdCxvKTppfSxvLnJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOlFXKCtlKSxzKCksbyk6dH0sb30sZm9yY2VMaW5rOmZ1bmN0aW9uIG1mdCh0KXt2YXIgZSxuLGkscixvLGE9THEscz1mdW5jdGlvbiBsKHQpe3JldHVybiAxL01hdGgubWluKHJbdC5zb3VyY2UuaW5kZXhdLHJbdC50YXJnZXQuaW5kZXhdKX0sYz1RVygzMCksdT0xO2Z1bmN0aW9uIGgoaSl7Zm9yKHZhciByPTAsYT10Lmxlbmd0aDtyPHU7KytyKWZvcih2YXIgcyxsLGMsaCxkLHAsZixtPTA7bTxhOysrbSloPShjPShzPXRbbV0pLnRhcmdldCkueCtjLnZ4LShsPXMuc291cmNlKS54LWwudnh8fHRxKCksZD1jLnkrYy52eS1sLnktbC52eXx8dHEoKSxkKj1wPSgocD1NYXRoLnNxcnQoaCpoK2QqZCkpLW5bbV0pL3AqaSplW21dLGMudngtPShoKj1wKSooZj1vW21dKSxjLnZ5LT1kKmYsbC52eCs9aCooZj0xLWYpLGwudnkrPWQqZn1mdW5jdGlvbiBkKCl7aWYoaSl7dmFyIHMsbCxjPWkubGVuZ3RoLHU9dC5sZW5ndGgsaD1DcShpLGEpO2ZvcihzPTAscj1uZXcgQXJyYXkoYyk7czx1OysrcykobD10W3NdKS5pbmRleD1zLCJvYmplY3QiIT10eXBlb2YgbC5zb3VyY2UmJihsLnNvdXJjZT1QcShoLGwuc291cmNlKSksIm9iamVjdCIhPXR5cGVvZiBsLnRhcmdldCYmKGwudGFyZ2V0PVBxKGgsbC50YXJnZXQpKSxyW2wuc291cmNlLmluZGV4XT0ocltsLnNvdXJjZS5pbmRleF18fDApKzEscltsLnRhcmdldC5pbmRleF09KHJbbC50YXJnZXQuaW5kZXhdfHwwKSsxO2ZvcihzPTAsbz1uZXcgQXJyYXkodSk7czx1OysrcylvW3NdPXJbKGw9dFtzXSkuc291cmNlLmluZGV4XS8ocltsLnNvdXJjZS5pbmRleF0rcltsLnRhcmdldC5pbmRleF0pO2U9bmV3IEFycmF5KHUpLHAoKSxuPW5ldyBBcnJheSh1KSxmKCl9fWZ1bmN0aW9uIHAoKXtpZihpKWZvcih2YXIgbj0wLHI9dC5sZW5ndGg7bjxyOysrbillW25dPStzKHRbbl0sbix0KX1mdW5jdGlvbiBmKCl7aWYoaSlmb3IodmFyIGU9MCxyPXQubGVuZ3RoO2U8cjsrK2UpbltlXT0rYyh0W2VdLGUsdCl9cmV0dXJuIG51bGw9PXQmJih0PVtdKSxoLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7aT10LGQoKX0saC5saW5rcz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1lLGQoKSxoKTp0fSxoLmlkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXQsaCk6YX0saC5pdGVyYXRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSt0LGgpOnV9LGguc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpRVygrdCkscCgpLGgpOnN9LGguZGlzdGFuY2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpRVygrdCksZigpLGgpOmN9LGh9LGZvcmNlTWFueUJvZHk6ZnVuY3Rpb24gZ2Z0KCl7dmFyIHQsZSxuLGkscj1RVygtMzApLG89MSxhPTEvMCxzPS44MTtmdW5jdGlvbiBsKGkpe3ZhciByLG89dC5sZW5ndGgsYT1vcSh0LGVZLG5ZKS52aXNpdEFmdGVyKHUpO2ZvcihuPWkscj0wO3I8bzsrK3IpZT10W3JdLGEudmlzaXQoaCl9ZnVuY3Rpb24gYygpe2lmKHQpe3ZhciBlLG4sbz10Lmxlbmd0aDtmb3IoaT1uZXcgQXJyYXkobyksZT0wO2U8bzsrK2UpaVsobj10W2VdKS5pbmRleF09K3IobixlLHQpfX1mdW5jdGlvbiB1KHQpe3ZhciBlLG4scixvLGEscz0wLGw9MDtpZih0Lmxlbmd0aCl7Zm9yKHI9bz1hPTA7YTw0OysrYSkoZT10W2FdKSYmKG49TWF0aC5hYnMoZS52YWx1ZSkpJiYocys9ZS52YWx1ZSxsKz1uLHIrPW4qZS54LG8rPW4qZS55KTt0Lng9ci9sLHQueT1vL2x9ZWxzZXsoZT10KS54PWUuZGF0YS54LGUueT1lLmRhdGEueTtkb3tzKz1pW2UuZGF0YS5pbmRleF19d2hpbGUoZT1lLm5leHQpfXQudmFsdWU9c31mdW5jdGlvbiBoKHQscixsLGMpe2lmKCF0LnZhbHVlKXJldHVybiEwO3ZhciB1PXQueC1lLngsaD10LnktZS55LGQ9Yy1yLHA9dSp1K2gqaDtpZihkKmQvczxwKXJldHVybiBwPGEmJigwPT09dSYmKHArPSh1PXRxKCkpKnUpLDA9PT1oJiYocCs9KGg9dHEoKSkqaCkscDxvJiYocD1NYXRoLnNxcnQobypwKSksZS52eCs9dSp0LnZhbHVlKm4vcCxlLnZ5Kz1oKnQudmFsdWUqbi9wKSwhMDtpZighKHQubGVuZ3RofHxwPj1hKSl7KHQuZGF0YSE9PWV8fHQubmV4dCkmJigwPT09dSYmKHArPSh1PXRxKCkpKnUpLDA9PT1oJiYocCs9KGg9dHEoKSkqaCkscDxvJiYocD1NYXRoLnNxcnQobypwKSkpO2Rve3QuZGF0YSE9PWUmJihlLnZ4Kz11KihkPWlbdC5kYXRhLmluZGV4XSpuL3ApLGUudnkrPWgqZCl9d2hpbGUodD10Lm5leHQpfX1yZXR1cm4gbC5pbml0aWFsaXplPWZ1bmN0aW9uKGUpe3Q9ZSxjKCl9LGwuc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpRVygrdCksYygpLGwpOnJ9LGwuZGlzdGFuY2VNaW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89dCp0LGwpOk1hdGguc3FydChvKX0sbC5kaXN0YW5jZU1heD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT10KnQsbCk6TWF0aC5zcXJ0KGEpfSxsLnRoZXRhPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPXQqdCxsKTpNYXRoLnNxcnQocyl9LGx9LGZvcmNlUmFkaWFsOmZ1bmN0aW9uIF9mdCh0LGUsbil7dmFyIGkscixvLGE9UVcoLjEpO2Z1bmN0aW9uIHModCl7Zm9yKHZhciBhPTAscz1pLmxlbmd0aDthPHM7KythKXt2YXIgbD1pW2FdLGM9bC54LWV8fDFlLTYsdT1sLnktbnx8MWUtNixoPU1hdGguc3FydChjKmMrdSp1KSxkPShvW2FdLWgpKnJbYV0qdC9oO2wudngrPWMqZCxsLnZ5Kz11KmR9fWZ1bmN0aW9uIGwoKXtpZihpKXt2YXIgZSxuPWkubGVuZ3RoO2ZvcihyPW5ldyBBcnJheShuKSxvPW5ldyBBcnJheShuKSxlPTA7ZTxuOysrZSlvW2VdPSt0KGlbZV0sZSxpKSxyW2VdPWlzTmFOKG9bZV0pPzA6K2EoaVtlXSxlLGkpfX1yZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9UVcoK3QpKSxudWxsPT1lJiYoZT0wKSxudWxsPT1uJiYobj0wKSxzLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7aT10LGwoKX0scy5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlFXKCt0KSxsKCkscyk6YX0scy5yYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpRVygrZSksbCgpLHMpOnR9LHMueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rdCxzKTplfSxzLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3Qscyk6bn0sc30sZm9yY2VTaW11bGF0aW9uOmZ1bmN0aW9uIHlmdCh0KXt2YXIgZSxuPTEsaT0uMDAxLHI9MS1NYXRoLnBvdyhpLDEvMzAwKSxvPTAsYT0uNixzPUNxKCksbD1acSh1KSxjPUlxKCJ0aWNrIiwiZW5kIik7ZnVuY3Rpb24gdSgpe2goKSxjLmNhbGwoInRpY2siLGUpLG48aSYmKGwuc3RvcCgpLGMuY2FsbCgiZW5kIixlKSl9ZnVuY3Rpb24gaCgpe3ZhciBlLGksbD10Lmxlbmd0aDtmb3Iobis9KG8tbikqcixzLmVhY2goKGZ1bmN0aW9uKHQpe3Qobil9KSksZT0wO2U8bDsrK2UpbnVsbD09KGk9dFtlXSkuZng/aS54Kz1pLnZ4Kj1hOihpLng9aS5meCxpLnZ4PTApLG51bGw9PWkuZnk/aS55Kz1pLnZ5Kj1hOihpLnk9aS5meSxpLnZ5PTApfWZ1bmN0aW9uIGQoKXtmb3IodmFyIGUsbj0wLGk9dC5sZW5ndGg7bjxpOysrbil7aWYoKGU9dFtuXSkuaW5kZXg9bixpc05hTihlLngpfHxpc05hTihlLnkpKXt2YXIgcj0xMCpNYXRoLnNxcnQobiksbz1uKnJZO2UueD1yKk1hdGguY29zKG8pLGUueT1yKk1hdGguc2luKG8pfShpc05hTihlLnZ4KXx8aXNOYU4oZS52eSkpJiYoZS52eD1lLnZ5PTApfX1mdW5jdGlvbiBwKGUpe3JldHVybiBlLmluaXRpYWxpemUmJmUuaW5pdGlhbGl6ZSh0KSxlfXJldHVybiBudWxsPT10JiYodD1bXSksZCgpLGU9e3RpY2s6aCxyZXN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIGwucmVzdGFydCh1KSxlfSxzdG9wOmZ1bmN0aW9uKCl7cmV0dXJuIGwuc3RvcCgpLGV9LG5vZGVzOmZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PW4sZCgpLHMuZWFjaChwKSxlKTp0fSxhbHBoYTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0rdCxlKTpufSxhbHBoYU1pbjpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0rdCxlKTppfSxhbHBoYURlY2F5OmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSt0LGUpOityfSxhbHBoYVRhcmdldDpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0rdCxlKTpvfSx2ZWxvY2l0eURlY2F5OmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPTEtdCxlKToxLWF9LGZvcmNlOmZ1bmN0aW9uKHQsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT8obnVsbD09bj9zLnJlbW92ZSh0KTpzLnNldCh0LHAobikpLGUpOnMuZ2V0KHQpfSxmaW5kOmZ1bmN0aW9uKGUsbixpKXt2YXIgcixvLGEscyxsLGM9MCx1PXQubGVuZ3RoO2ZvcihudWxsPT1pP2k9MS8wOmkqPWksYz0wO2M8dTsrK2MpKGE9KHI9ZS0ocz10W2NdKS54KSpyKyhvPW4tcy55KSpvKTxpJiYobD1zLGk9YSk7cmV0dXJuIGx9LG9uOmZ1bmN0aW9uKHQsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT8oYy5vbih0LG4pLGUpOmMub24odCl9fX0sZm9yY2VYOmZ1bmN0aW9uIHZmdCh0KXt2YXIgZSxuLGkscj1RVyguMSk7ZnVuY3Rpb24gbyh0KXtmb3IodmFyIHIsbz0wLGE9ZS5sZW5ndGg7bzxhOysrbykocj1lW29dKS52eCs9KGlbb10tci54KSpuW29dKnR9ZnVuY3Rpb24gYSgpe2lmKGUpe3ZhciBvLGE9ZS5sZW5ndGg7Zm9yKG49bmV3IEFycmF5KGEpLGk9bmV3IEFycmF5KGEpLG89MDtvPGE7KytvKW5bb109aXNOYU4oaVtvXT0rdChlW29dLG8sZSkpPzA6K3IoZVtvXSxvLGUpfX1yZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9UVcobnVsbD09dD8wOit0KSksby5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe2U9dCxhKCl9LG8uc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpRVygrdCksYSgpLG8pOnJ9LG8ueD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOlFXKCtlKSxhKCksbyk6dH0sb30sZm9yY2VZOmZ1bmN0aW9uIGJmdCh0KXt2YXIgZSxuLGkscj1RVyguMSk7ZnVuY3Rpb24gbyh0KXtmb3IodmFyIHIsbz0wLGE9ZS5sZW5ndGg7bzxhOysrbykocj1lW29dKS52eSs9KGlbb10tci55KSpuW29dKnR9ZnVuY3Rpb24gYSgpe2lmKGUpe3ZhciBvLGE9ZS5sZW5ndGg7Zm9yKG49bmV3IEFycmF5KGEpLGk9bmV3IEFycmF5KGEpLG89MDtvPGE7KytvKW5bb109aXNOYU4oaVtvXT0rdChlW29dLG8sZSkpPzA6K3IoZVtvXSxvLGUpfX1yZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9UVcobnVsbD09dD8wOit0KSksby5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe2U9dCxhKCl9LG8uc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpRVygrdCksYSgpLG8pOnJ9LG8ueT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOlFXKCtlKSxhKCksbyk6dH0sb30sZm9ybWF0RGVmYXVsdExvY2FsZTpiWSxnZXQgZm9ybWF0KCl7cmV0dXJuIGdZfSxnZXQgZm9ybWF0UHJlZml4KCl7cmV0dXJuIF9ZfSxmb3JtYXRMb2NhbGU6dlksZm9ybWF0U3BlY2lmaWVyOmRZLHByZWNpc2lvbkZpeGVkOmZ1bmN0aW9uIHhmdCh0KXtyZXR1cm4gTWF0aC5tYXgoMCwtYVkoTWF0aC5hYnModCkpKX0scHJlY2lzaW9uUHJlZml4OmZ1bmN0aW9uIHdmdCh0LGUpe3JldHVybiBNYXRoLm1heCgwLDMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKGFZKGUpLzMpKSktYVkoTWF0aC5hYnModCkpKX0scHJlY2lzaW9uUm91bmQ6ZnVuY3Rpb24gU2Z0KHQsZSl7cmV0dXJuIHQ9TWF0aC5hYnModCksZT1NYXRoLmFicyhlKS10LE1hdGgubWF4KDAsYVkoZSktYVkodCkpKzF9LGdlb0FyZWE6ZnVuY3Rpb24gTWZ0KHQpe3JldHVybiBhWC5yZXNldCgpLFFZKHQsc1gpLDIqYVh9LGdlb0JvdW5kczpmdW5jdGlvbiBFZnQodCl7dmFyIGUsbixpLHIsbyxhLHM7aWYod1g9eFg9LSh2WD1iWD0xLzApLENYPVtdLFFZKHQscVgpLG49Q1gubGVuZ3RoKXtmb3IoQ1guc29ydChlJCksZT0xLG89W2k9Q1hbMF1dO2U8bjsrK2UpbiQoaSwocj1DWFtlXSlbMF0pfHxuJChpLHJbMV0pPyh0JChpWzBdLHJbMV0pPnQkKGlbMF0saVsxXSkmJihpWzFdPXJbMV0pLHQkKHJbMF0saVsxXSk+dCQoaVswXSxpWzFdKSYmKGlbMF09clswXSkpOm8ucHVzaChpPXIpO2ZvcihhPS0xLzAsZT0wLGk9b1tuPW8ubGVuZ3RoLTFdO2U8PW47aT1yLCsrZSkocz10JChpWzFdLChyPW9bZV0pWzBdKSk+YSYmKGE9cyx2WD1yWzBdLHhYPWlbMV0pfXJldHVybiBDWD1BWD1udWxsLHZYPT09MS8wfHxiWD09PTEvMD9bW05hTixOYU5dLFtOYU4sTmFOXV06W1t2WCxiWF0sW3hYLHdYXV19LGdlb0NlbnRyb2lkOmZ1bmN0aW9uIFRmdCh0KXtrWD1MWD1QWD1OWD1JWD1SWD1PWD16WD1EWD1CWD1IWD0wLFFZKHQsaSQpO3ZhciBlPURYLG49QlgsaT1IWCxyPWUqZStuKm4raSppO3JldHVybiByPDFlLTEyJiYoZT1SWCxuPU9YLGk9elgsTFg8RVkmJihlPVBYLG49TlgsaT1JWCksKHI9ZSplK24qbitpKmkpPDFlLTEyKT9bTmFOLE5hTl06W1JZKG4sZSkqTFksV1koaS9VWShyKSkqTFldfSxnZW9DaXJjbGU6ZnVuY3Rpb24gQ2Z0KCl7dmFyIHQsZSxuPWYkKFswLDBdKSxpPWYkKDkwKSxyPWYkKDYpLG89e3BvaW50OmZ1bmN0aW9uIGEobixpKXt0LnB1c2gobj1lKG4saSkpLG5bMF0qPUxZLG5bMV0qPUxZfX07ZnVuY3Rpb24gcygpe3ZhciBhPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpLHM9aS5hcHBseSh0aGlzLGFyZ3VtZW50cykqUFksbD1yLmFwcGx5KHRoaXMsYXJndW1lbnRzKSpQWTtyZXR1cm4gdD1bXSxlPV8kKC1hWzBdKlBZLC1hWzFdKlBZLDApLmludmVydCx3JChvLHMsbCwxKSxhPXt0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczpbdF19LHQ9ZT1udWxsLGF9cmV0dXJuIHMuY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6ZiQoWyt0WzBdLCt0WzFdXSkscyk6bn0scy5yYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpmJCgrdCkscyk6aX0scy5wcmVjaXNpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpmJCgrdCkscyk6cn0sc30sZ2VvQ2xpcEFudGltZXJpZGlhbjpCJCxnZW9DbGlwQ2lyY2xlOlYkLGdlb0NsaXBFeHRlbnQ6ZnVuY3Rpb24gQWZ0KCl7dmFyIHQsZSxuLGk9MCxyPTAsbz05NjAsYT01MDA7cmV0dXJuIG49e3N0cmVhbTpmdW5jdGlvbihuKXtyZXR1cm4gdCYmZT09PW4/dDp0PUckKGkscixvLGEpKGU9bil9LGV4dGVudDpmdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0rc1swXVswXSxyPStzWzBdWzFdLG89K3NbMV1bMF0sYT0rc1sxXVsxXSx0PWU9bnVsbCxuKTpbW2kscl0sW28sYV1dfX19LGdlb0NsaXBSZWN0YW5nbGU6RyQsZ2VvQ29udGFpbnM6ZnVuY3Rpb24ga2Z0KHQsZSl7cmV0dXJuKHQmJnJLLmhhc093blByb3BlcnR5KHQudHlwZSk/cktbdC50eXBlXTphSykodCxlKX0sZ2VvRGlzdGFuY2U6aUssZ2VvR3JhdGljdWxlOmZLLGdlb0dyYXRpY3VsZTEwOmZ1bmN0aW9uIExmdCgpe3JldHVybiBmSygpKCl9LGdlb0ludGVycG9sYXRlOmZ1bmN0aW9uIFBmdCh0LGUpe3ZhciBuPXRbMF0qUFksaT10WzFdKlBZLHI9ZVswXSpQWSxvPWVbMV0qUFksYT1PWShpKSxzPUZZKGkpLGw9T1kobyksYz1GWShvKSx1PWEqT1kobiksaD1hKkZZKG4pLGQ9bCpPWShyKSxwPWwqRlkociksZj0yKldZKFVZKHFZKG8taSkrYSpsKnFZKHItbikpKSxtPUZZKGYpLGc9Zj9mdW5jdGlvbih0KXt2YXIgZT1GWSh0Kj1mKS9tLG49RlkoZi10KS9tLGk9bip1K2UqZCxyPW4qaCtlKnAsbz1uKnMrZSpjO3JldHVybltSWShyLGkpKkxZLFJZKG8sVVkoaSppK3IqcikpKkxZXX06ZnVuY3Rpb24oKXtyZXR1cm5bbipMWSxpKkxZXX07cmV0dXJuIGcuZGlzdGFuY2U9ZixnfSxnZW9MZW5ndGg6dEssZ2VvUGF0aDpmdW5jdGlvbiBOZnQodCxlKXt2YXIgbixpLHI9NC41O2Z1bmN0aW9uIG8odCl7cmV0dXJuIHQmJigiZnVuY3Rpb24iPT10eXBlb2YgciYmaS5wb2ludFJhZGl1cygrci5hcHBseSh0aGlzLGFyZ3VtZW50cykpLFFZKHQsbihpKSkpLGkucmVzdWx0KCl9cmV0dXJuIG8uYXJlYT1mdW5jdGlvbih0KXtyZXR1cm4gUVkodCxuKHdLKSksd0sucmVzdWx0KCl9LG8ubWVhc3VyZT1mdW5jdGlvbih0KXtyZXR1cm4gUVkodCxuKGNaKSksY1oucmVzdWx0KCl9LG8uYm91bmRzPWZ1bmN0aW9uKHQpe3JldHVybiBRWSh0LG4oUEspKSxQSy5yZXN1bHQoKX0sby5jZW50cm9pZD1mdW5jdGlvbih0KXtyZXR1cm4gUVkodCxuKHFLKSkscUsucmVzdWx0KCl9LG8ucHJvamVjdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1udWxsPT1lPyh0PW51bGwsbUspOih0PWUpLnN0cmVhbSxvKTp0fSxvLmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbD09dD8oZT1udWxsLG5ldyBkWik6bmV3IG5aKGU9dCksImZ1bmN0aW9uIiE9dHlwZW9mIHImJmkucG9pbnRSYWRpdXMociksbyk6ZX0sby5wb2ludFJhZGl1cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OihpLnBvaW50UmFkaXVzKCt0KSwrdCksbyk6cn0sby5wcm9qZWN0aW9uKHQpLmNvbnRleHQoZSl9LGdlb0FsYmVyczprWixnZW9BbGJlcnNVc2E6ZnVuY3Rpb24gSWZ0KCl7dmFyIHQsZSxuLGkscixvLGE9a1ooKSxzPUFaKCkucm90YXRlKFsxNTQsMF0pLmNlbnRlcihbLTIsNTguNV0pLnBhcmFsbGVscyhbNTUsNjVdKSxsPUFaKCkucm90YXRlKFsxNTcsMF0pLmNlbnRlcihbLTMsMTkuOV0pLnBhcmFsbGVscyhbOCwxOF0pLGM9e3BvaW50OmZ1bmN0aW9uKHQsZSl7bz1bdCxlXX19O2Z1bmN0aW9uIHUodCl7dmFyIGU9dFswXSxhPXRbMV07cmV0dXJuIG89bnVsbCxuLnBvaW50KGUsYSksb3x8KGkucG9pbnQoZSxhKSxvKXx8KHIucG9pbnQoZSxhKSxvKX1mdW5jdGlvbiBoKCl7cmV0dXJuIHQ9ZT1udWxsLHV9cmV0dXJuIHUuaW52ZXJ0PWZ1bmN0aW9uKHQpe3ZhciBlPWEuc2NhbGUoKSxuPWEudHJhbnNsYXRlKCksaT0odFswXS1uWzBdKS9lLHI9KHRbMV0tblsxXSkvZTtyZXR1cm4ocj49LjEyJiZyPC4yMzQmJmk+PS0uNDI1JiZpPC0uMjE0P3M6cj49LjE2NiYmcjwuMjM0JiZpPj0tLjIxNCYmaTwtLjExNT9sOmEpLmludmVydCh0KX0sdS5zdHJlYW09ZnVuY3Rpb24obil7cmV0dXJuIHQmJmU9PT1uP3Q6dD0oZnVuY3Rpb24gaSh0KXt2YXIgZT10Lmxlbmd0aDtyZXR1cm57cG9pbnQ6ZnVuY3Rpb24obixpKXtmb3IodmFyIHI9LTE7KytyPGU7KXRbcl0ucG9pbnQobixpKX0sc3BoZXJlOmZ1bmN0aW9uKCl7Zm9yKHZhciBuPS0xOysrbjxlOyl0W25dLnNwaGVyZSgpfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtmb3IodmFyIG49LTE7KytuPGU7KXRbbl0ubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtmb3IodmFyIG49LTE7KytuPGU7KXRbbl0ubGluZUVuZCgpfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtmb3IodmFyIG49LTE7KytuPGU7KXRbbl0ucG9seWdvblN0YXJ0KCl9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtmb3IodmFyIG49LTE7KytuPGU7KXRbbl0ucG9seWdvbkVuZCgpfX19KShbYS5zdHJlYW0oZT1uKSxzLnN0cmVhbShuKSxsLnN0cmVhbShuKV0pfSx1LnByZWNpc2lvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYS5wcmVjaXNpb24odCkscy5wcmVjaXNpb24odCksbC5wcmVjaXNpb24odCksaCgpKTphLnByZWNpc2lvbigpfSx1LnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhLnNjYWxlKHQpLHMuc2NhbGUoLjM1KnQpLGwuc2NhbGUodCksdS50cmFuc2xhdGUoYS50cmFuc2xhdGUoKSkpOmEuc2NhbGUoKX0sdS50cmFuc2xhdGU9ZnVuY3Rpb24odCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGEudHJhbnNsYXRlKCk7dmFyIGU9YS5zY2FsZSgpLG89K3RbMF0sdT0rdFsxXTtyZXR1cm4gbj1hLnRyYW5zbGF0ZSh0KS5jbGlwRXh0ZW50KFtbby0uNDU1KmUsdS0uMjM4KmVdLFtvKy40NTUqZSx1Ky4yMzgqZV1dKS5zdHJlYW0oYyksaT1zLnRyYW5zbGF0ZShbby0uMzA3KmUsdSsuMjAxKmVdKS5jbGlwRXh0ZW50KFtbby0uNDI1KmUrRVksdSsuMTIqZStFWV0sW28tLjIxNCplLUVZLHUrLjIzNCplLUVZXV0pLnN0cmVhbShjKSxyPWwudHJhbnNsYXRlKFtvLS4yMDUqZSx1Ky4yMTIqZV0pLmNsaXBFeHRlbnQoW1tvLS4yMTQqZStFWSx1Ky4xNjYqZStFWV0sW28tLjExNSplLUVZLHUrLjIzNCplLUVZXV0pLnN0cmVhbShjKSxoKCl9LHUuZml0RXh0ZW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIF9aKHUsdCxlKX0sdS5maXRTaXplPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHlaKHUsdCxlKX0sdS5maXRXaWR0aD1mdW5jdGlvbih0LGUpe3JldHVybiB2Wih1LHQsZSl9LHUuZml0SGVpZ2h0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGJaKHUsdCxlKX0sdS5zY2FsZSgxMDcwKX0sZ2VvQXppbXV0aGFsRXF1YWxBcmVhOmZ1bmN0aW9uIFJmdCgpe3JldHVybiBNWihOWikuc2NhbGUoMTI0Ljc1KS5jbGlwQW5nbGUoMTc5Ljk5OSl9LGdlb0F6aW11dGhhbEVxdWFsQXJlYVJhdzpOWixnZW9BemltdXRoYWxFcXVpZGlzdGFudDpmdW5jdGlvbiBPZnQoKXtyZXR1cm4gTVooSVopLnNjYWxlKDc5LjQxODgpLmNsaXBBbmdsZSgxNzkuOTk5KX0sZ2VvQXppbXV0aGFsRXF1aWRpc3RhbnRSYXc6SVosZ2VvQ29uaWNDb25mb3JtYWw6ZnVuY3Rpb24gemZ0KCl7cmV0dXJuIFRaKERaKS5zY2FsZSgxMDkuNSkucGFyYWxsZWxzKFszMCwzMF0pfSxnZW9Db25pY0NvbmZvcm1hbFJhdzpEWixnZW9Db25pY0VxdWFsQXJlYTpBWixnZW9Db25pY0VxdWFsQXJlYVJhdzpDWixnZW9Db25pY0VxdWlkaXN0YW50OmZ1bmN0aW9uIERmdCgpe3JldHVybiBUWihIWikuc2NhbGUoMTMxLjE1NCkuY2VudGVyKFswLDEzLjkzODldKX0sZ2VvQ29uaWNFcXVpZGlzdGFudFJhdzpIWixnZW9FcXVpcmVjdGFuZ3VsYXI6ZnVuY3Rpb24gQmZ0KCl7cmV0dXJuIE1aKEJaKS5zY2FsZSgxNTIuNjMpfSxnZW9FcXVpcmVjdGFuZ3VsYXJSYXc6QlosZ2VvR25vbW9uaWM6ZnVuY3Rpb24gSGZ0KCl7cmV0dXJuIE1aKEZaKS5zY2FsZSgxNDQuMDQ5KS5jbGlwQW5nbGUoNjApfSxnZW9Hbm9tb25pY1JhdzpGWixnZW9JZGVudGl0eTpmdW5jdGlvbiBGZnQoKXt2YXIgdCxlLG4saSxyLG8sYT0xLHM9MCxsPTAsYz0xLHU9MSxoPW1LLGQ9bnVsbCxwPW1LO2Z1bmN0aW9uIGYoKXtyZXR1cm4gaT1yPW51bGwsb31yZXR1cm4gbz17c3RyZWFtOmZ1bmN0aW9uKHQpe3JldHVybiBpJiZyPT09dD9pOmk9aChwKHI9dCkpfSxwb3N0Y2xpcDpmdW5jdGlvbihpKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD1pLGQ9dD1lPW49bnVsbCxmKCkpOnB9LGNsaXBFeHRlbnQ6ZnVuY3Rpb24oaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHA9bnVsbD09aT8oZD10PWU9bj1udWxsLG1LKTpHJChkPStpWzBdWzBdLHQ9K2lbMF1bMV0sZT0raVsxXVswXSxuPStpWzFdWzFdKSxmKCkpOm51bGw9PWQ/bnVsbDpbW2QsdF0sW2Usbl1dfSxzY2FsZTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD1WWigoYT0rdCkqYyxhKnUscyxsKSxmKCkpOmF9LHRyYW5zbGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD1WWihhKmMsYSp1LHM9K3RbMF0sbD0rdFsxXSksZigpKTpbcyxsXX0scmVmbGVjdFg6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9VlooYSooYz10Py0xOjEpLGEqdSxzLGwpLGYoKSk6YzwwfSxyZWZsZWN0WTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD1WWihhKmMsYSoodT10Py0xOjEpLHMsbCksZigpKTp1PDB9LGZpdEV4dGVudDpmdW5jdGlvbih0LGUpe3JldHVybiBfWihvLHQsZSl9LGZpdFNpemU6ZnVuY3Rpb24odCxlKXtyZXR1cm4geVoobyx0LGUpfSxmaXRXaWR0aDpmdW5jdGlvbih0LGUpe3JldHVybiB2WihvLHQsZSl9LGZpdEhlaWdodDpmdW5jdGlvbih0LGUpe3JldHVybiBiWihvLHQsZSl9fX0sZ2VvUHJvamVjdGlvbjpNWixnZW9Qcm9qZWN0aW9uTXV0YXRvcjpFWixnZW9NZXJjYXRvcjpmdW5jdGlvbiBWZnQoKXtyZXR1cm4gT1ooUlopLnNjYWxlKDk2MS9rWSl9LGdlb01lcmNhdG9yUmF3OlJaLGdlb05hdHVyYWxFYXJ0aDE6ZnVuY3Rpb24gVWZ0KCl7cmV0dXJuIE1aKFVaKS5zY2FsZSgxNzUuMjk1KX0sZ2VvTmF0dXJhbEVhcnRoMVJhdzpVWixnZW9PcnRob2dyYXBoaWM6ZnVuY3Rpb24gamZ0KCl7cmV0dXJuIE1aKGpaKS5zY2FsZSgyNDkuNSkuY2xpcEFuZ2xlKDkwLjAwMDAwMSl9LGdlb09ydGhvZ3JhcGhpY1JhdzpqWixnZW9TdGVyZW9ncmFwaGljOmZ1bmN0aW9uIEdmdCgpe3JldHVybiBNWihHWikuc2NhbGUoMjUwKS5jbGlwQW5nbGUoMTQyKX0sZ2VvU3RlcmVvZ3JhcGhpY1JhdzpHWixnZW9UcmFuc3ZlcnNlTWVyY2F0b3I6ZnVuY3Rpb24gV2Z0KCl7dmFyIHQ9T1ooV1opLGU9dC5jZW50ZXIsbj10LnJvdGF0ZTtyZXR1cm4gdC5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/ZShbLXRbMV0sdFswXV0pOlsodD1lKCkpWzFdLC10WzBdXX0sdC5yb3RhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/bihbdFswXSx0WzFdLHQubGVuZ3RoPjI/dFsyXSs5MDo5MF0pOlsodD1uKCkpWzBdLHRbMV0sdFsyXS05MF19LG4oWzAsMCw5MF0pLnNjYWxlKDE1OS4xNTUpfSxnZW9UcmFuc3ZlcnNlTWVyY2F0b3JSYXc6V1osZ2VvUm90YXRpb246eCQsZ2VvU3RyZWFtOlFZLGdlb1RyYW5zZm9ybTpmdW5jdGlvbiBxZnQodCl7cmV0dXJue3N0cmVhbTpmWih0KX19LGNsdXN0ZXI6ZnVuY3Rpb24gWWZ0KCl7dmFyIHQ9cVosZT0xLG49MSxpPSExO2Z1bmN0aW9uIHIocil7dmFyIG8sYT0wO3IuZWFjaEFmdGVyKChmdW5jdGlvbihlKXt2YXIgbj1lLmNoaWxkcmVuO24/KGUueD0oZnVuY3Rpb24gaSh0KXtyZXR1cm4gdC5yZWR1Y2UoWVosMCkvdC5sZW5ndGh9KShuKSxlLnk9KGZ1bmN0aW9uIHIodCl7cmV0dXJuIDErdC5yZWR1Y2UoWFosMCl9KShuKSk6KGUueD1vP2ErPXQoZSxvKTowLGUueT0wLG89ZSl9KSk7dmFyIHM9KGZ1bmN0aW9uIGwodCl7Zm9yKHZhciBlO2U9dC5jaGlsZHJlbjspdD1lWzBdO3JldHVybiB0fSkociksYz0oZnVuY3Rpb24gdSh0KXtmb3IodmFyIGU7ZT10LmNoaWxkcmVuOyl0PWVbZS5sZW5ndGgtMV07cmV0dXJuIHR9KShyKSxoPXMueC10KHMsYykvMixkPWMueCt0KGMscykvMjtyZXR1cm4gci5lYWNoQWZ0ZXIoaT9mdW5jdGlvbih0KXt0Lng9KHQueC1yLngpKmUsdC55PShyLnktdC55KSpufTpmdW5jdGlvbih0KXt0Lng9KHQueC1oKS8oZC1oKSplLHQueT0oMS0oci55P3QueS9yLnk6MSkpKm59KX1yZXR1cm4gci5zZXBhcmF0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWUscik6dH0sci5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSExLGU9K3RbMF0sbj0rdFsxXSxyKTppP251bGw6W2Usbl19LHIubm9kZVNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ITAsZT0rdFswXSxuPSt0WzFdLHIpOmk/W2Usbl06bnVsbH0scn0saGllcmFyY2h5OktaLHBhY2s6ZnVuY3Rpb24gWGZ0KCl7dmFyIHQ9bnVsbCxlPTEsbj0xLGk9a0o7ZnVuY3Rpb24gcihyKXtyZXR1cm4gci54PWUvMixyLnk9bi8yLHQ/ci5lYWNoQmVmb3JlKE5KKHQpKS5lYWNoQWZ0ZXIoSUooaSwuNSkpLmVhY2hCZWZvcmUoUkooMSkpOnIuZWFjaEJlZm9yZShOSihQSikpLmVhY2hBZnRlcihJSihrSiwxKSkuZWFjaEFmdGVyKElKKGksci5yL01hdGgubWluKGUsbikpKS5lYWNoQmVmb3JlKFJKKE1hdGgubWluKGUsbikvKDIqci5yKSkpLHJ9cmV0dXJuIHIucmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PUNKKGUpLHIpOnR9LHIuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rdFswXSxuPSt0WzFdLHIpOltlLG5dfSxyLnBhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpMSigrdCkscik6aX0scn0scGFja1NpYmxpbmdzOmZ1bmN0aW9uICRmdCh0KXtyZXR1cm4gVEoodCksdH0scGFja0VuY2xvc2U6ZkoscGFydGl0aW9uOmZ1bmN0aW9uIEtmdCgpe3ZhciB0PTEsZT0xLG49MCxpPSExO2Z1bmN0aW9uIHIocil7dmFyIG89ci5oZWlnaHQrMTtyZXR1cm4gci54MD1yLnkwPW4sci54MT10LHIueTE9ZS9vLHIuZWFjaEJlZm9yZSgoZnVuY3Rpb24gYSh0LGUpe3JldHVybiBmdW5jdGlvbihpKXtpLmNoaWxkcmVuJiZ6SihpLGkueDAsdCooaS5kZXB0aCsxKS9lLGkueDEsdCooaS5kZXB0aCsyKS9lKTt2YXIgcj1pLngwLG89aS55MCxhPWkueDEtbixzPWkueTEtbjthPHImJihyPWE9KHIrYSkvMiksczxvJiYobz1zPShvK3MpLzIpLGkueDA9cixpLnkwPW8saS54MT1hLGkueTE9c319KShlLG8pKSxpJiZyLmVhY2hCZWZvcmUoT0opLHJ9cmV0dXJuIHIucm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ISF0LHIpOml9LHIuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rblswXSxlPStuWzFdLHIpOlt0LGVdfSxyLnBhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3Qscik6bn0scn0sc3RyYXRpZnk6ZnVuY3Rpb24gWmZ0KCl7dmFyIHQ9SEosZT1GSjtmdW5jdGlvbiBuKG4pe3ZhciBpLHIsbyxhLHMsbCxjLHU9bi5sZW5ndGgsaD1uZXcgQXJyYXkodSksZD17fTtmb3Iocj0wO3I8dTsrK3Ipcz1oW3JdPW5ldyB0SihpPW5bcl0pLG51bGwhPShsPXQoaSxyLG4pKSYmKGwrPSIiKSYmKGRbYz0iJCIrKHMuaWQ9bCldPWMgaW4gZD9CSjpzKTtmb3Iocj0wO3I8dTsrK3IpaWYocz1oW3JdLG51bGwhPShsPWUobltyXSxyLG4pKSYmKGwrPSIiKSl7aWYoIShhPWRbIiQiK2xdKSl0aHJvdyBuZXcgRXJyb3IoIm1pc3Npbmc6ICIrbCk7aWYoYT09PUJKKXRocm93IG5ldyBFcnJvcigiYW1iaWd1b3VzOiAiK2wpO2EuY2hpbGRyZW4/YS5jaGlsZHJlbi5wdXNoKHMpOmEuY2hpbGRyZW49W3NdLHMucGFyZW50PWF9ZWxzZXtpZihvKXRocm93IG5ldyBFcnJvcigibXVsdGlwbGUgcm9vdHMiKTtvPXN9aWYoIW8pdGhyb3cgbmV3IEVycm9yKCJubyByb290Iik7aWYoby5wYXJlbnQ9REosby5lYWNoQmVmb3JlKChmdW5jdGlvbih0KXt0LmRlcHRoPXQucGFyZW50LmRlcHRoKzEsLS11fSkpLmVhY2hCZWZvcmUoUVopLG8ucGFyZW50PW51bGwsdT4wKXRocm93IG5ldyBFcnJvcigiY3ljbGUiKTtyZXR1cm4gb31yZXR1cm4gbi5pZD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1BSihlKSxuKTp0fSxuLnBhcmVudElkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPUFKKHQpLG4pOmV9LG59LHRyZWU6ZnVuY3Rpb24gSmZ0KCl7dmFyIHQ9VkosZT0xLG49MSxpPW51bGw7ZnVuY3Rpb24gcihyKXt2YXIgbD0oZnVuY3Rpb24gYyh0KXtmb3IodmFyIGUsbixpLHIsbyxhPW5ldyBxSih0LDApLHM9W2FdO2U9cy5wb3AoKTspaWYoaT1lLl8uY2hpbGRyZW4pZm9yKGUuY2hpbGRyZW49bmV3IEFycmF5KG89aS5sZW5ndGgpLHI9by0xO3I+PTA7LS1yKXMucHVzaChuPWUuY2hpbGRyZW5bcl09bmV3IHFKKGlbcl0scikpLG4ucGFyZW50PWU7cmV0dXJuKGEucGFyZW50PW5ldyBxSihudWxsLDApKS5jaGlsZHJlbj1bYV0sYX0pKHIpO2lmKGwuZWFjaEFmdGVyKG8pLGwucGFyZW50Lm09LWwueixsLmVhY2hCZWZvcmUoYSksaSlyLmVhY2hCZWZvcmUocyk7ZWxzZXt2YXIgdT1yLGg9cixkPXI7ci5lYWNoQmVmb3JlKChmdW5jdGlvbih0KXt0Lng8dS54JiYodT10KSx0Lng+aC54JiYoaD10KSx0LmRlcHRoPmQuZGVwdGgmJihkPXQpfSkpO3ZhciBwPXU9PT1oPzE6dCh1LGgpLzIsZj1wLXUueCxtPWUvKGgueCtwK2YpLGc9bi8oZC5kZXB0aHx8MSk7ci5lYWNoQmVmb3JlKChmdW5jdGlvbih0KXt0Lng9KHQueCtmKSptLHQueT10LmRlcHRoKmd9KSl9cmV0dXJuIHJ9ZnVuY3Rpb24gbyhlKXt2YXIgbj1lLmNoaWxkcmVuLGk9ZS5wYXJlbnQuY2hpbGRyZW4scj1lLmk/aVtlLmktMV06bnVsbDtpZihuKXshKGZ1bmN0aW9uIG8odCl7Zm9yKHZhciBlLG49MCxpPTAscj10LmNoaWxkcmVuLG89ci5sZW5ndGg7LS1vPj0wOykoZT1yW29dKS56Kz1uLGUubSs9bixuKz1lLnMrKGkrPWUuYyl9KShlKTt2YXIgYT0oblswXS56K25bbi5sZW5ndGgtMV0ueikvMjtyPyhlLno9ci56K3QoZS5fLHIuXyksZS5tPWUuei1hKTplLno9YX1lbHNlIHImJihlLno9ci56K3QoZS5fLHIuXykpO2UucGFyZW50LkE9KGZ1bmN0aW9uIHMoZSxuLGkpe2lmKG4pe2Zvcih2YXIgcixvPWUsYT1lLHM9bixsPW8ucGFyZW50LmNoaWxkcmVuWzBdLGM9by5tLHU9YS5tLGg9cy5tLGQ9bC5tO3M9akoocyksbz1VSihvKSxzJiZvOylsPVVKKGwpLChhPWpKKGEpKS5hPWUsKHI9cy56K2gtby56LWMrdChzLl8sby5fKSk+MCYmKEdKKFdKKHMsZSxpKSxlLHIpLGMrPXIsdSs9ciksaCs9cy5tLGMrPW8ubSxkKz1sLm0sdSs9YS5tO3MmJiFqSihhKSYmKGEudD1zLGEubSs9aC11KSxvJiYhVUoobCkmJihsLnQ9byxsLm0rPWMtZCxpPWUpfXJldHVybiBpfSkoZSxyLGUucGFyZW50LkF8fGlbMF0pfWZ1bmN0aW9uIGEodCl7dC5fLng9dC56K3QucGFyZW50Lm0sdC5tKz10LnBhcmVudC5tfWZ1bmN0aW9uIHModCl7dC54Kj1lLHQueT10LmRlcHRoKm59cmV0dXJuIHIuc2VwYXJhdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1lLHIpOnR9LHIuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0hMSxlPSt0WzBdLG49K3RbMV0scik6aT9udWxsOltlLG5dfSxyLm5vZGVTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSEwLGU9K3RbMF0sbj0rdFsxXSxyKTppP1tlLG5dOm51bGx9LHJ9LHRyZWVtYXA6ZnVuY3Rpb24gUWZ0KCl7dmFyIHQ9S0osZT0hMSxuPTEsaT0xLHI9WzBdLG89a0osYT1rSixzPWtKLGw9a0osYz1rSjtmdW5jdGlvbiB1KHQpe3JldHVybiB0LngwPXQueTA9MCx0LngxPW4sdC55MT1pLHQuZWFjaEJlZm9yZShoKSxyPVswXSxlJiZ0LmVhY2hCZWZvcmUoT0opLHR9ZnVuY3Rpb24gaChlKXt2YXIgbj1yW2UuZGVwdGhdLGk9ZS54MCtuLHU9ZS55MCtuLGg9ZS54MS1uLGQ9ZS55MS1uO2g8aSYmKGk9aD0oaStoKS8yKSxkPHUmJih1PWQ9KHUrZCkvMiksZS54MD1pLGUueTA9dSxlLngxPWgsZS55MT1kLGUuY2hpbGRyZW4mJihuPXJbZS5kZXB0aCsxXT1vKGUpLzIsaSs9YyhlKS1uLHUrPWEoZSktbiwoaC09cyhlKS1uKTxpJiYoaT1oPShpK2gpLzIpLChkLT1sKGUpLW4pPHUmJih1PWQ9KHUrZCkvMiksdChlLGksdSxoLGQpKX1yZXR1cm4gdS5yb3VuZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0hIXQsdSk6ZX0sdS5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSt0WzBdLGk9K3RbMV0sdSk6W24saV19LHUudGlsZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1BSihlKSx1KTp0fSx1LnBhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dS5wYWRkaW5nSW5uZXIodCkucGFkZGluZ091dGVyKHQpOnUucGFkZGluZ0lubmVyKCl9LHUucGFkZGluZ0lubmVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6TEooK3QpLHUpOm99LHUucGFkZGluZ091dGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3UucGFkZGluZ1RvcCh0KS5wYWRkaW5nUmlnaHQodCkucGFkZGluZ0JvdHRvbSh0KS5wYWRkaW5nTGVmdCh0KTp1LnBhZGRpbmdUb3AoKX0sdS5wYWRkaW5nVG9wPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6TEooK3QpLHUpOmF9LHUucGFkZGluZ1JpZ2h0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6TEooK3QpLHUpOnN9LHUucGFkZGluZ0JvdHRvbT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkxKKCt0KSx1KTpsfSx1LnBhZGRpbmdMZWZ0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6TEooK3QpLHUpOmN9LHV9LHRyZWVtYXBCaW5hcnk6ZnVuY3Rpb24gdG10KHQsZSxuLGkscil7dmFyIG8sYSxzPXQuY2hpbGRyZW4sbD1zLmxlbmd0aCxjPW5ldyBBcnJheShsKzEpO2ZvcihjWzBdPWE9bz0wO288bDsrK28pY1tvKzFdPWErPXNbb10udmFsdWU7IShmdW5jdGlvbiB0KGUsbixpLHIsbyxhLGwpe2lmKGU+PW4tMSl7dmFyIHU9c1tlXTtyZXR1cm4gdS54MD1yLHUueTA9byx1LngxPWEsdm9pZCh1LnkxPWwpfXZhciBoPWNbZV0sZD1pLzIraCxwPWUrMSxmPW4tMTtmb3IoO3A8Zjspe3ZhciBtPXArZj4+PjE7Y1ttXTxkP3A9bSsxOmY9bX1kLWNbcC0xXTxjW3BdLWQmJmUrMTxwJiYtLXA7dmFyIGc9Y1twXS1oLF89aS1nO2lmKGEtcj5sLW8pe3ZhciB5PShyKl8rYSpnKS9pO3QoZSxwLGcscixvLHksbCksdChwLG4sXyx5LG8sYSxsKX1lbHNle3ZhciB2PShvKl8rbCpnKS9pO3QoZSxwLGcscixvLGEsdiksdChwLG4sXyxyLHYsYSxsKX19KSgwLGwsdC52YWx1ZSxlLG4saSxyKX0sdHJlZW1hcERpY2U6ekosdHJlZW1hcFNsaWNlOllKLHRyZWVtYXBTbGljZURpY2U6ZnVuY3Rpb24gZW10KHQsZSxuLGkscil7KDEmdC5kZXB0aD9ZSjp6SikodCxlLG4saSxyKX0sdHJlZW1hcFNxdWFyaWZ5OktKLHRyZWVtYXBSZXNxdWFyaWZ5OlpKLGludGVycG9sYXRlOkUxLGludGVycG9sYXRlQXJyYXk6eTEsaW50ZXJwb2xhdGVCYXNpczpzMSxpbnRlcnBvbGF0ZUJhc2lzQ2xvc2VkOmwxLGludGVycG9sYXRlRGF0ZTp2MSxpbnRlcnBvbGF0ZU51bWJlcjpiMSxpbnRlcnBvbGF0ZU9iamVjdDp4MSxpbnRlcnBvbGF0ZVJvdW5kOmZ1bmN0aW9uIG5tdCh0LGUpe3JldHVybiBlLT10PSt0LGZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLnJvdW5kKHQrZSpuKX19LGludGVycG9sYXRlU3RyaW5nOk0xLGludGVycG9sYXRlVHJhbnNmb3JtQ3NzOlIxLGludGVycG9sYXRlVHJhbnNmb3JtU3ZnOnoxLGludGVycG9sYXRlWm9vbTpmdW5jdGlvbiBpbXQodCxlKXt2YXIgbixpLHI9dFswXSxvPXRbMV0sYT10WzJdLHM9ZVsyXSxsPWVbMF0tcixjPWVbMV0tbyx1PWwqbCtjKmM7aWYodTwxZS0xMilpPU1hdGgubG9nKHMvYSkvQjEsbj1mdW5jdGlvbih0KXtyZXR1cm5bcit0Kmwsbyt0KmMsYSpNYXRoLmV4cChCMSp0KmkpXX07ZWxzZXt2YXIgaD1NYXRoLnNxcnQodSksZD0ocypzLWEqYSs0KnUpLygyKmEqMipoKSxwPShzKnMtYSphLTQqdSkvKDIqcyoyKmgpLGY9TWF0aC5sb2coTWF0aC5zcXJ0KGQqZCsxKS1kKSxtPU1hdGgubG9nKE1hdGguc3FydChwKnArMSktcCk7aT0obS1mKS9CMSxuPWZ1bmN0aW9uKHQpe3ZhciBlPXQqaSxuPUgxKGYpLHM9YS8oMipoKSoobiooZnVuY3Rpb24gdSh0KXtyZXR1cm4oKHQ9TWF0aC5leHAoMip0KSktMSkvKHQrMSl9KShCMSplK2YpLShmdW5jdGlvbiBkKHQpe3JldHVybigodD1NYXRoLmV4cCh0KSktMS90KS8yfSkoZikpO3JldHVybltyK3MqbCxvK3MqYyxhKm4vSDEoQjEqZStmKV19fXJldHVybiBuLmR1cmF0aW9uPTFlMyppLG59LGludGVycG9sYXRlUmdiOmYxLGludGVycG9sYXRlUmdiQmFzaXM6ZzEsaW50ZXJwb2xhdGVSZ2JCYXNpc0Nsb3NlZDpfMSxpbnRlcnBvbGF0ZUhzbDpWMSxpbnRlcnBvbGF0ZUhzbExvbmc6VTEsaW50ZXJwb2xhdGVMYWI6ZnVuY3Rpb24gcm10KHQsZSl7dmFyIG49cDEoKHQ9SFEodCkpLmwsKGU9SFEoZSkpLmwpLGk9cDEodC5hLGUuYSkscj1wMSh0LmIsZS5iKSxvPXAxKHQub3BhY2l0eSxlLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5sPW4oZSksdC5hPWkoZSksdC5iPXIoZSksdC5vcGFjaXR5PW8oZSksdCsiIn19LGludGVycG9sYXRlSGNsOkcxLGludGVycG9sYXRlSGNsTG9uZzpXMSxpbnRlcnBvbGF0ZUN1YmVoZWxpeDpZMSxpbnRlcnBvbGF0ZUN1YmVoZWxpeExvbmc6WDEscXVhbnRpemU6ZnVuY3Rpb24gb210KHQsZSl7Zm9yKHZhciBuPW5ldyBBcnJheShlKSxpPTA7aTxlOysraSluW2ldPXQoaS8oZS0xKSk7cmV0dXJuIG59LHBhdGg6dDAscG9seWdvbkFyZWE6ZnVuY3Rpb24gYW10KHQpe2Zvcih2YXIgZSxuPS0xLGk9dC5sZW5ndGgscj10W2ktMV0sbz0wOysrbjxpOylvKz0oZT1yKVsxXSoocj10W25dKVswXS1lWzBdKnJbMV07cmV0dXJuIG8vMn0scG9seWdvbkNlbnRyb2lkOmZ1bmN0aW9uIHNtdCh0KXtmb3IodmFyIGUsbixpPS0xLHI9dC5sZW5ndGgsbz0wLGE9MCxzPXRbci0xXSxsPTA7KytpPHI7KWwrPW49KGU9cylbMF0qKHM9dFtpXSlbMV0tc1swXSplWzFdLG8rPShlWzBdK3NbMF0pKm4sYSs9KGVbMV0rc1sxXSkqbjtyZXR1cm5bby8obCo9MyksYS9sXX0scG9seWdvbkh1bGw6ZnVuY3Rpb24gbG10KHQpe2lmKChuPXQubGVuZ3RoKTwzKXJldHVybiBudWxsO3ZhciBlLG4saT1uZXcgQXJyYXkobikscj1uZXcgQXJyYXkobik7Zm9yKGU9MDtlPG47KytlKWlbZV09Wyt0W2VdWzBdLCt0W2VdWzFdLGVdO2ZvcihpLnNvcnQobjApLGU9MDtlPG47KytlKXJbZV09W2lbZV1bMF0sLWlbZV1bMV1dO3ZhciBvPWkwKGkpLGE9aTAocikscz1hWzBdPT09b1swXSxsPWFbYS5sZW5ndGgtMV09PT1vW28ubGVuZ3RoLTFdLGM9W107Zm9yKGU9by5sZW5ndGgtMTtlPj0wOy0tZSljLnB1c2godFtpW29bZV1dWzJdXSk7Zm9yKGU9K3M7ZTxhLmxlbmd0aC1sOysrZSljLnB1c2godFtpW2FbZV1dWzJdXSk7cmV0dXJuIGN9LHBvbHlnb25Db250YWluczpmdW5jdGlvbiBjbXQodCxlKXtmb3IodmFyIG4saSxyPXQubGVuZ3RoLG89dFtyLTFdLGE9ZVswXSxzPWVbMV0sbD1vWzBdLGM9b1sxXSx1PSExLGg9MDtoPHI7KytoKW49KG89dFtoXSlbMF0sKGk9b1sxXSk+cyE9Yz5zJiZhPChsLW4pKihzLWkpLyhjLWkpK24mJih1PSF1KSxsPW4sYz1pO3JldHVybiB1fSxwb2x5Z29uTGVuZ3RoOmZ1bmN0aW9uIHVtdCh0KXtmb3IodmFyIGUsbixpPS0xLHI9dC5sZW5ndGgsbz10W3ItMV0sYT1vWzBdLHM9b1sxXSxsPTA7KytpPHI7KWU9YSxuPXMsZS09YT0obz10W2ldKVswXSxuLT1zPW9bMV0sbCs9TWF0aC5zcXJ0KGUqZStuKm4pO3JldHVybiBsfSxxdWFkdHJlZTpsMCxxdWV1ZTpJMCxyYW5kb21Vbmlmb3JtOk8wLHJhbmRvbU5vcm1hbDp6MCxyYW5kb21Mb2dOb3JtYWw6RDAscmFuZG9tQmF0ZXM6SDAscmFuZG9tSXJ3aW5IYWxsOkIwLHJhbmRvbUV4cG9uZW50aWFsOkYwLHJlcXVlc3Q6VjAsaHRtbDpqMCxqc29uOkcwLHRleHQ6VzAseG1sOnEwLGNzdjokMCx0c3Y6SzAsc2NhbGVCYW5kOnkyLHNjYWxlUG9pbnQ6ZnVuY3Rpb24gaG10KCl7cmV0dXJuIHYyKHkyKCkucGFkZGluZ0lubmVyKDEpKX0sc2NhbGVJZGVudGl0eTpmdW5jdGlvbiB0KCl7dmFyIGU9WzAsMV07ZnVuY3Rpb24gbih0KXtyZXR1cm4rdH1yZXR1cm4gbi5pbnZlcnQ9bixuLmRvbWFpbj1uLnJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPWYyLmNhbGwodCxQNSksbik6ZS5zbGljZSgpfSxuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLmRvbWFpbihlKX0sbjMobil9LHNjYWxlTGluZWFyOmZ1bmN0aW9uIHQoKXt2YXIgZT1ENShJNSxiNSk7cmV0dXJuIGUuY29weT1mdW5jdGlvbigpe3JldHVybiB6NShlLHQoKSl9LG4zKGUpfSxzY2FsZUxvZzpmdW5jdGlvbiB0KCl7dmFyIGU9RDUocjMsbzMpLmRvbWFpbihbMSwxMF0pLG49ZS5kb21haW4saT0xMCxyPWwzKDEwKSxvPXMzKDEwKTtmdW5jdGlvbiBhKCl7cmV0dXJuIHI9bDMoaSksbz1zMyhpKSxuKClbMF08MCYmKHI9YzMociksbz1jMyhvKSksZX1yZXR1cm4gZS5iYXNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSt0LGEoKSk6aX0sZS5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG4odCksYSgpKTpuKCl9LGUudGlja3M9ZnVuY3Rpb24odCl7dmFyIGUsYT1uKCkscz1hWzBdLGw9YVthLmxlbmd0aC0xXTsoZT1sPHMpJiYoZD1zLHM9bCxsPWQpO3ZhciBjLHUsaCxkPXIocykscD1yKGwpLGY9bnVsbD09dD8xMDordCxtPVtdO2lmKCEoaSUxKSYmcC1kPGYpe2lmKGQ9TWF0aC5yb3VuZChkKS0xLHA9TWF0aC5yb3VuZChwKSsxLHM+MCl7Zm9yKDtkPHA7KytkKWZvcih1PTEsYz1vKGQpO3U8aTsrK3UpaWYoISgoaD1jKnUpPHMpKXtpZihoPmwpYnJlYWs7bS5wdXNoKGgpfX1lbHNlIGZvcig7ZDxwOysrZClmb3IodT1pLTEsYz1vKGQpO3U+PTE7LS11KWlmKCEoKGg9Yyp1KTxzKSl7aWYoaD5sKWJyZWFrO20ucHVzaChoKX19ZWxzZSBtPXIyKGQscCxNYXRoLm1pbihwLWQsZikpLm1hcChvKTtyZXR1cm4gZT9tLnJldmVyc2UoKTptfSxlLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCxuKXtpZihudWxsPT1uJiYobj0xMD09PWk/Ii4wZSI6IiwiKSwiZnVuY3Rpb24iIT10eXBlb2YgbiYmKG49SzUobikpLHQ9PT0xLzApcmV0dXJuIG47bnVsbD09dCYmKHQ9MTApO3ZhciBhPU1hdGgubWF4KDEsaSp0L2UudGlja3MoKS5sZW5ndGgpO3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT10L28oTWF0aC5yb3VuZChyKHQpKSk7cmV0dXJuIGUqaTxpLS41JiYoZSo9aSksZTw9YT9uKHQpOiIifX0sZS5uaWNlPWZ1bmN0aW9uKCl7cmV0dXJuIG4oaTMobigpLHtmbG9vcjpmdW5jdGlvbih0KXtyZXR1cm4gbyhNYXRoLmZsb29yKHIodCkpKX0sY2VpbDpmdW5jdGlvbih0KXtyZXR1cm4gbyhNYXRoLmNlaWwocih0KSkpfX0pKX0sZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHo1KGUsdCgpLmJhc2UoaSkpfSxlfSxzY2FsZU9yZGluYWw6XzIsc2NhbGVJbXBsaWNpdDpnMixzY2FsZVBvdzpoMyxzY2FsZVNxcnQ6ZnVuY3Rpb24gZG10KCl7cmV0dXJuIGgzKCkuZXhwb25lbnQoLjUpfSxzY2FsZVF1YW50aWxlOmZ1bmN0aW9uIHQoKXt2YXIgZT1bXSxuPVtdLGk9W107ZnVuY3Rpb24gcigpe3ZhciB0PTAscj1NYXRoLm1heCgxLG4ubGVuZ3RoKTtmb3IoaT1uZXcgQXJyYXkoci0xKTsrK3Q8cjspaVt0LTFdPXMyKGUsdC9yKTtyZXR1cm4gb31mdW5jdGlvbiBvKHQpe2lmKCFpc05hTih0PSt0KSlyZXR1cm4gbltRMChpLHQpXX1yZXR1cm4gby5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24odCl7dmFyIHI9bi5pbmRleE9mKHQpO3JldHVybiByPDA/W05hTixOYU5dOltyPjA/aVtyLTFdOmVbMF0scjxpLmxlbmd0aD9pW3JdOmVbZS5sZW5ndGgtMV1dfSxvLmRvbWFpbj1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gZS5zbGljZSgpO2U9W107Zm9yKHZhciBuLGk9MCxvPXQubGVuZ3RoO2k8bzsrK2kpbnVsbD09KG49dFtpXSl8fGlzTmFOKG49K24pfHxlLnB1c2gobik7cmV0dXJuIGUuc29ydChaMCkscigpfSxvLnJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPW0yLmNhbGwodCkscigpKTpuLnNsaWNlKCl9LG8ucXVhbnRpbGVzPWZ1bmN0aW9uKCl7cmV0dXJuIGkuc2xpY2UoKX0sby5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHQoKS5kb21haW4oZSkucmFuZ2Uobil9LG99LHNjYWxlUXVhbnRpemU6ZnVuY3Rpb24gdCgpe3ZhciBlPTAsbj0xLGk9MSxyPVsuNV0sbz1bMCwxXTtmdW5jdGlvbiBhKHQpe2lmKHQ8PXQpcmV0dXJuIG9bUTAocix0LDAsaSldfWZ1bmN0aW9uIHMoKXt2YXIgdD0tMTtmb3Iocj1uZXcgQXJyYXkoaSk7Kyt0PGk7KXJbdF09KCh0KzEpKm4tKHQtaSkqZSkvKGkrMSk7cmV0dXJuIGF9cmV0dXJuIGEuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0WzBdLG49K3RbMV0scygpKTpbZSxuXX0sYS5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0obz1tMi5jYWxsKHQpKS5sZW5ndGgtMSxzKCkpOm8uc2xpY2UoKX0sYS5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24odCl7dmFyIGE9by5pbmRleE9mKHQpO3JldHVybiBhPDA/W05hTixOYU5dOmE8MT9bZSxyWzBdXTphPj1pP1tyW2ktMV0sbl06W3JbYS0xXSxyW2FdXX0sYS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHQoKS5kb21haW4oW2Usbl0pLnJhbmdlKG8pfSxuMyhhKX0sc2NhbGVUaHJlc2hvbGQ6ZnVuY3Rpb24gdCgpe3ZhciBlPVsuNV0sbj1bMCwxXSxpPTE7ZnVuY3Rpb24gcih0KXtpZih0PD10KXJldHVybiBuW1EwKGUsdCwwLGkpXX1yZXR1cm4gci5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bTIuY2FsbCh0KSxpPU1hdGgubWluKGUubGVuZ3RoLG4ubGVuZ3RoLTEpLHIpOmUuc2xpY2UoKX0sci5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1tMi5jYWxsKHQpLGk9TWF0aC5taW4oZS5sZW5ndGgsbi5sZW5ndGgtMSkscik6bi5zbGljZSgpfSxyLmludmVydEV4dGVudD1mdW5jdGlvbih0KXt2YXIgaT1uLmluZGV4T2YodCk7cmV0dXJuW2VbaS0xXSxlW2ldXX0sci5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHQoKS5kb21haW4oZSkucmFuZ2Uobil9LHJ9LHNjYWxlVGltZTpmdW5jdGlvbiBwbXQoKXtyZXR1cm4gdzYoSTMsUDMsQTMsVDMsRTMsTTMsUzMsXzMsWDMpLmRvbWFpbihbbmV3IERhdGUoMmUzLDAsMSksbmV3IERhdGUoMmUzLDAsMildKX0sc2NhbGVVdGM6ZnVuY3Rpb24gZm10KCl7cmV0dXJuIHc2KGozLFYzLEIzLHozLE8zLFIzLFMzLF8zLCQzKS5kb21haW4oW0RhdGUuVVRDKDJlMywwLDEpLERhdGUuVVRDKDJlMywwLDIpXSl9LHNjaGVtZUNhdGVnb3J5MTA6TTYsc2NoZW1lQ2F0ZWdvcnkyMGI6RTYsc2NoZW1lQ2F0ZWdvcnkyMGM6VDYsc2NoZW1lQ2F0ZWdvcnkyMDpDNixpbnRlcnBvbGF0ZUN1YmVoZWxpeERlZmF1bHQ6QTYsaW50ZXJwb2xhdGVSYWluYm93OmZ1bmN0aW9uIG1tdCh0KXsodDwwfHx0PjEpJiYodC09TWF0aC5mbG9vcih0KSk7dmFyIGU9TWF0aC5hYnModC0uNSk7cmV0dXJuIFA2Lmg9MzYwKnQtMTAwLFA2LnM9MS41LTEuNSplLFA2Lmw9LjgtLjkqZSxQNisiIn0saW50ZXJwb2xhdGVXYXJtOms2LGludGVycG9sYXRlQ29vbDpMNixpbnRlcnBvbGF0ZVZpcmlkaXM6STYsaW50ZXJwb2xhdGVNYWdtYTpSNixpbnRlcnBvbGF0ZUluZmVybm86TzYsaW50ZXJwb2xhdGVQbGFzbWE6ejYsc2NhbGVTZXF1ZW50aWFsOmZ1bmN0aW9uIHQoZSl7dmFyIG49MCxpPTEscj0hMTtmdW5jdGlvbiBvKHQpe3ZhciBvPSh0LW4pLyhpLW4pO3JldHVybiBlKHI/TWF0aC5tYXgoMCxNYXRoLm1pbigxLG8pKTpvKX1yZXR1cm4gby5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3RbMF0saT0rdFsxXSxvKTpbbixpXX0sby5jbGFtcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0hIXQsbyk6cn0sby5pbnRlcnBvbGF0b3I9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxvKTplfSxvLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gdChlKS5kb21haW4oW24saV0pLmNsYW1wKHIpfSxuMyhvKX0sY3JlYXRlOmZ1bmN0aW9uIGdtdCh0KXtyZXR1cm4gJDkoVTYodCkuY2FsbChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKX0sY3JlYXRvcjpVNixsb2NhbDpDOCxtYXRjaGVyOks2LG1vdXNlOmZ1bmN0aW9uIF9tdCh0KXt2YXIgZT1rOCgpO3JldHVybiBlLmNoYW5nZWRUb3VjaGVzJiYoZT1lLmNoYW5nZWRUb3VjaGVzWzBdKSxMOCh0LGUpfSxuYW1lc3BhY2U6SDYsbmFtZXNwYWNlczpCNixjbGllbnRQb2ludDpMOCxzZWxlY3Q6JDksc2VsZWN0QWxsOmZ1bmN0aW9uIHltdCh0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/bmV3IFk5KFtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHQpXSxbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XSk6bmV3IFk5KFtudWxsPT10P1tdOnRdLHE5KX0sc2VsZWN0aW9uOlg5LHNlbGVjdG9yOkc2LHNlbGVjdG9yQWxsOnE2LHN0eWxlOmQ5LHRvdWNoOmZ1bmN0aW9uIHZtdCh0LGUsbil7YXJndW1lbnRzLmxlbmd0aDwzJiYobj1lLGU9azgoKS5jaGFuZ2VkVG91Y2hlcyk7Zm9yKHZhciBpLHI9MCxvPWU/ZS5sZW5ndGg6MDtyPG87KytyKWlmKChpPWVbcl0pLmlkZW50aWZpZXI9PT1uKXJldHVybiBMOCh0LGkpO3JldHVybiBudWxsfSx0b3VjaGVzOmZ1bmN0aW9uIGJtdCh0LGUpe251bGw9PWUmJihlPWs4KCkudG91Y2hlcyk7Zm9yKHZhciBuPTAsaT1lP2UubGVuZ3RoOjAscj1uZXcgQXJyYXkoaSk7bjxpOysrbilyW25dPUw4KHQsZVtuXSk7cmV0dXJuIHJ9LHdpbmRvdzpsOSxnZXQgZXZlbnQoKXtyZXR1cm4gRDl9LGN1c3RvbUV2ZW50OmZ1bmN0aW9uIHhtdCh0LGUsbixpKXt2YXIgcj1EOTt0LnNvdXJjZUV2ZW50PUQ5LEQ5PXQ7dHJ5e3JldHVybiBlLmFwcGx5KG4saSl9ZmluYWxseXtEOT1yfX0sYXJjOmZ1bmN0aW9uIHdtdCgpe3ZhciB0PVo4LGU9Sjgsbj1EOCgwKSxpPW51bGwscj1ROCxvPXQ3LGE9ZTcscz1udWxsO2Z1bmN0aW9uIGwoKXt2YXIgbCxjLHU9K3QuYXBwbHkodGhpcyxhcmd1bWVudHMpLGg9K2UuYXBwbHkodGhpcyxhcmd1bWVudHMpLGQ9ci5hcHBseSh0aGlzLGFyZ3VtZW50cyktWTgscD1vLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1ZOCxmPUI4KHAtZCksbT1wPmQ7aWYoc3x8KHM9bD16OCgpKSxoPHUmJihjPWgsaD11LHU9YyksaD5XOClpZihmPlg4LVc4KXMubW92ZVRvKGgqRjgoZCksaCpqOChkKSkscy5hcmMoMCwwLGgsZCxwLCFtKSx1Plc4JiYocy5tb3ZlVG8odSpGOChwKSx1Kmo4KHApKSxzLmFyYygwLDAsdSxwLGQsbSkpO2Vsc2V7dmFyIGcsXyx5PWQsdj1wLGI9ZCx4PXAsdz1mLFM9ZixNPWEuYXBwbHkodGhpcyxhcmd1bWVudHMpLzIsRT1NPlc4JiYoaT8raS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6RzgodSp1K2gqaCkpLFQ9VTgoQjgoaC11KS8yLCtuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksQz1ULEE9VDtpZihFPlc4KXt2YXIgaz1LOChFL3UqajgoTSkpLEw9SzgoRS9oKmo4KE0pKTsody09MiprKT5XOD8oYis9ayo9bT8xOi0xLHgtPWspOih3PTAsYj14PShkK3ApLzIpLChTLT0yKkwpPlc4Pyh5Kz1MKj1tPzE6LTEsdi09TCk6KFM9MCx5PXY9KGQrcCkvMil9dmFyIFA9aCpGOCh5KSxOPWgqajgoeSksST11KkY4KHgpLFI9dSpqOCh4KTtpZihUPlc4KXt2YXIgTz1oKkY4KHYpLHo9aCpqOCh2KSxEPXUqRjgoYiksQj11Kmo4KGIpO2lmKGY8cTgpe3ZhciBIPXc+Vzg/bjcoUCxOLEQsQixPLHosSSxSKTpbSSxSXSxGPVAtSFswXSxWPU4tSFsxXSxVPU8tSFswXSxqPXotSFsxXSxHPTEvajgoJDgoKEYqVStWKmopLyhHOChGKkYrVipWKSpHOChVKlUraipqKSkpLzIpLFc9RzgoSFswXSpIWzBdK0hbMV0qSFsxXSk7Qz1VOChULCh1LVcpLyhHLTEpKSxBPVU4KFQsKGgtVykvKEcrMSkpfX1TPlc4P0E+Vzg/KGc9aTcoRCxCLFAsTixoLEEsbSksXz1pNyhPLHosSSxSLGgsQSxtKSxzLm1vdmVUbyhnLmN4K2cueDAxLGcuY3krZy55MDEpLEE8VD9zLmFyYyhnLmN4LGcuY3ksQSxIOChnLnkwMSxnLngwMSksSDgoXy55MDEsXy54MDEpLCFtKToocy5hcmMoZy5jeCxnLmN5LEEsSDgoZy55MDEsZy54MDEpLEg4KGcueTExLGcueDExKSwhbSkscy5hcmMoMCwwLGgsSDgoZy5jeStnLnkxMSxnLmN4K2cueDExKSxIOChfLmN5K18ueTExLF8uY3grXy54MTEpLCFtKSxzLmFyYyhfLmN4LF8uY3ksQSxIOChfLnkxMSxfLngxMSksSDgoXy55MDEsXy54MDEpLCFtKSkpOihzLm1vdmVUbyhQLE4pLHMuYXJjKDAsMCxoLHksdiwhbSkpOnMubW92ZVRvKFAsTiksdT5XOCYmdz5XOD9DPlc4PyhnPWk3KEksUixPLHosdSwtQyxtKSxfPWk3KFAsTixELEIsdSwtQyxtKSxzLmxpbmVUbyhnLmN4K2cueDAxLGcuY3krZy55MDEpLEM8VD9zLmFyYyhnLmN4LGcuY3ksQyxIOChnLnkwMSxnLngwMSksSDgoXy55MDEsXy54MDEpLCFtKToocy5hcmMoZy5jeCxnLmN5LEMsSDgoZy55MDEsZy54MDEpLEg4KGcueTExLGcueDExKSwhbSkscy5hcmMoMCwwLHUsSDgoZy5jeStnLnkxMSxnLmN4K2cueDExKSxIOChfLmN5K18ueTExLF8uY3grXy54MTEpLG0pLHMuYXJjKF8uY3gsXy5jeSxDLEg4KF8ueTExLF8ueDExKSxIOChfLnkwMSxfLngwMSksIW0pKSk6cy5hcmMoMCwwLHUseCxiLG0pOnMubGluZVRvKEksUil9ZWxzZSBzLm1vdmVUbygwLDApO2lmKHMuY2xvc2VQYXRoKCksbClyZXR1cm4gcz1udWxsLGwrIiJ8fG51bGx9cmV0dXJuIGwuY2VudHJvaWQ9ZnVuY3Rpb24oKXt2YXIgbj0oK3QuYXBwbHkodGhpcyxhcmd1bWVudHMpKyArZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLzIsaT0oK3IuYXBwbHkodGhpcyxhcmd1bWVudHMpKyArby5hcHBseSh0aGlzLGFyZ3VtZW50cykpLzItcTgvMjtyZXR1cm5bRjgoaSkqbixqOChpKSpuXX0sbC5pbm5lclJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOkQ4KCtlKSxsKTp0fSxsLm91dGVyUmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6RDgoK3QpLGwpOmV9LGwuY29ybmVyUmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6RDgoK3QpLGwpOm59LGwucGFkUmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PXQ/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YgdD90OkQ4KCt0KSxsKTppfSxsLnN0YXJ0QW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpEOCgrdCksbCk6cn0sbC5lbmRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkQ4KCt0KSxsKTpvfSxsLnBhZEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6RDgoK3QpLGwpOmF9LGwuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1udWxsPT10P251bGw6dCxsKTpzfSxsfSxhcmVhOmM3LGxpbmU6bDcscGllOmZ1bmN0aW9uIFNtdCgpe3ZhciB0PWg3LGU9dTcsbj1udWxsLGk9RDgoMCkscj1EOChYOCksbz1EOCgwKTtmdW5jdGlvbiBhKGEpe3ZhciBzLGwsYyx1LGgsZD1hLmxlbmd0aCxwPTAsZj1uZXcgQXJyYXkoZCksbT1uZXcgQXJyYXkoZCksZz0raS5hcHBseSh0aGlzLGFyZ3VtZW50cyksXz1NYXRoLm1pbihYOCxNYXRoLm1heCgtWDgsci5hcHBseSh0aGlzLGFyZ3VtZW50cyktZykpLHk9TWF0aC5taW4oTWF0aC5hYnMoXykvZCxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksdj15KihfPDA/LTE6MSk7Zm9yKHM9MDtzPGQ7KytzKShoPW1bZltzXT1zXT0rdChhW3NdLHMsYSkpPjAmJihwKz1oKTtmb3IobnVsbCE9ZT9mLnNvcnQoKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUobVt0XSxtW25dKX0pKTpudWxsIT1uJiZmLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4oYVt0XSxhW2VdKX0pKSxzPTAsYz1wPyhfLWQqdikvcDowO3M8ZDsrK3MsZz11KW1bbD1mW3NdXT17ZGF0YTphW2xdLGluZGV4OnMsdmFsdWU6aD1tW2xdLHN0YXJ0QW5nbGU6ZyxlbmRBbmdsZTp1PWcrKGg+MD9oKmM6MCkrdixwYWRBbmdsZTp5fTtyZXR1cm4gbX1yZXR1cm4gYS52YWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOkQ4KCtlKSxhKTp0fSxhLnNvcnRWYWx1ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxuPW51bGwsYSk6ZX0sYS5zb3J0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQsZT1udWxsLGEpOm59LGEuc3RhcnRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkQ4KCt0KSxhKTppfSxhLmVuZEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6RDgoK3QpLGEpOnJ9LGEucGFkQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpEOCgrdCksYSk6b30sYX0sYXJlYVJhZGlhbDpfNyxyYWRpYWxBcmVhOl83LGxpbmVSYWRpYWw6ZzcscmFkaWFsTGluZTpnNyxwb2ludFJhZGlhbDp5NyxsaW5rSG9yaXpvbnRhbDpmdW5jdGlvbiBNbXQoKXtyZXR1cm4gdzcoUzcpfSxsaW5rVmVydGljYWw6ZnVuY3Rpb24gRW10KCl7cmV0dXJuIHc3KE03KX0sbGlua1JhZGlhbDpmdW5jdGlvbiBUbXQoKXt2YXIgdD13NyhFNyk7cmV0dXJuIHQuYW5nbGU9dC54LGRlbGV0ZSB0LngsdC5yYWRpdXM9dC55LGRlbGV0ZSB0LnksdH0sc3ltYm9sOmZ1bmN0aW9uIENtdCgpe3ZhciB0PUQ4KFQ3KSxlPUQ4KDY0KSxuPW51bGw7ZnVuY3Rpb24gaSgpe3ZhciBpO2lmKG58fChuPWk9ejgoKSksdC5hcHBseSh0aGlzLGFyZ3VtZW50cykuZHJhdyhuLCtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksaSlyZXR1cm4gbj1udWxsLGkrIiJ8fG51bGx9cmV0dXJuIGkudHlwZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOkQ4KGUpLGkpOnR9LGkuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkQ4KCt0KSxpKTplfSxpLmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49bnVsbD09dD9udWxsOnQsaSk6bn0saX0sc3ltYm9sczpqNyxzeW1ib2xDaXJjbGU6VDcsc3ltYm9sQ3Jvc3M6Qzcsc3ltYm9sRGlhbW9uZDpMNyxzeW1ib2xTcXVhcmU6Tzcsc3ltYm9sU3RhcjpSNyxzeW1ib2xUcmlhbmdsZTpENyxzeW1ib2xXeWU6VTcsY3VydmVCYXNpc0Nsb3NlZDpmdW5jdGlvbiBBbXQodCl7cmV0dXJuIG5ldyBZNyh0KX0sY3VydmVCYXNpc09wZW46ZnVuY3Rpb24ga210KHQpe3JldHVybiBuZXcgWDcodCl9LGN1cnZlQmFzaXM6ZnVuY3Rpb24gTG10KHQpe3JldHVybiBuZXcgcTcodCl9LGN1cnZlQnVuZGxlOks3LGN1cnZlQ2FyZGluYWxDbG9zZWQ6ZXR0LGN1cnZlQ2FyZGluYWxPcGVuOml0dCxjdXJ2ZUNhcmRpbmFsOlE3LGN1cnZlQ2F0bXVsbFJvbUNsb3NlZDpsdHQsY3VydmVDYXRtdWxsUm9tT3Blbjp1dHQsY3VydmVDYXRtdWxsUm9tOmF0dCxjdXJ2ZUxpbmVhckNsb3NlZDpmdW5jdGlvbiBQbXQodCl7cmV0dXJuIG5ldyBodHQodCl9LGN1cnZlTGluZWFyOm83LGN1cnZlTW9ub3RvbmVYOmZ1bmN0aW9uIE5tdCh0KXtyZXR1cm4gbmV3IGd0dCh0KX0sY3VydmVNb25vdG9uZVk6ZnVuY3Rpb24gSW10KHQpe3JldHVybiBuZXcgX3R0KHQpfSxjdXJ2ZU5hdHVyYWw6ZnVuY3Rpb24gUm10KHQpe3JldHVybiBuZXcgdnR0KHQpfSxjdXJ2ZVN0ZXA6ZnVuY3Rpb24gT210KHQpe3JldHVybiBuZXcgeHR0KHQsLjUpfSxjdXJ2ZVN0ZXBBZnRlcjpmdW5jdGlvbiB6bXQodCl7cmV0dXJuIG5ldyB4dHQodCwxKX0sY3VydmVTdGVwQmVmb3JlOmZ1bmN0aW9uIERtdCh0KXtyZXR1cm4gbmV3IHh0dCh0LDApfSxzdGFjazpmdW5jdGlvbiBCbXQoKXt2YXIgdD1EOChbXSksZT1TdHQsbj13dHQsaT1NdHQ7ZnVuY3Rpb24gcihyKXt2YXIgbyxhLHM9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksbD1yLmxlbmd0aCxjPXMubGVuZ3RoLHU9bmV3IEFycmF5KGMpO2ZvcihvPTA7bzxjOysrbyl7Zm9yKHZhciBoLGQ9c1tvXSxwPXVbb109bmV3IEFycmF5KGwpLGY9MDtmPGw7KytmKXBbZl09aD1bMCwraShyW2ZdLGQsZixyKV0saC5kYXRhPXJbZl07cC5rZXk9ZH1mb3Iobz0wLGE9ZSh1KTtvPGM7KytvKXVbYVtvXV0uaW5kZXg9bztyZXR1cm4gbih1LGEpLHV9cmV0dXJuIHIua2V5cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOkQ4KHY3LmNhbGwoZSkpLHIpOnR9LHIudmFsdWU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpEOCgrdCkscik6aX0sci5vcmRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1udWxsPT10P1N0dDoiZnVuY3Rpb24iPT10eXBlb2YgdD90OkQ4KHY3LmNhbGwodCkpLHIpOmV9LHIub2Zmc2V0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPW51bGw9PXQ/d3R0OnQscik6bn0scn0sc3RhY2tPZmZzZXRFeHBhbmQ6ZnVuY3Rpb24gSG10KHQsZSl7aWYoKGk9dC5sZW5ndGgpPjApe2Zvcih2YXIgbixpLHIsbz0wLGE9dFswXS5sZW5ndGg7bzxhOysrbyl7Zm9yKHI9bj0wO248aTsrK24pcis9dFtuXVtvXVsxXXx8MDtpZihyKWZvcihuPTA7bjxpOysrbil0W25dW29dWzFdLz1yfXd0dCh0LGUpfX0sc3RhY2tPZmZzZXREaXZlcmdpbmc6ZnVuY3Rpb24gRm10KHQsZSl7aWYoKHM9dC5sZW5ndGgpPjEpZm9yKHZhciBuLGkscixvLGEscyxsPTAsYz10W2VbMF1dLmxlbmd0aDtsPGM7KytsKWZvcihvPWE9MCxuPTA7bjxzOysrbikocj0oaT10W2Vbbl1dW2xdKVsxXS1pWzBdKT49MD8oaVswXT1vLGlbMV09bys9cik6cjwwPyhpWzFdPWEsaVswXT1hKz1yKTppWzBdPW99LHN0YWNrT2Zmc2V0Tm9uZTp3dHQsc3RhY2tPZmZzZXRTaWxob3VldHRlOmZ1bmN0aW9uIFZtdCh0LGUpe2lmKChuPXQubGVuZ3RoKT4wKXtmb3IodmFyIG4saT0wLHI9dFtlWzBdXSxvPXIubGVuZ3RoO2k8bzsrK2kpe2Zvcih2YXIgYT0wLHM9MDthPG47KythKXMrPXRbYV1baV1bMV18fDA7cltpXVsxXSs9cltpXVswXT0tcy8yfXd0dCh0LGUpfX0sc3RhY2tPZmZzZXRXaWdnbGU6ZnVuY3Rpb24gVW10KHQsZSl7aWYoKHI9dC5sZW5ndGgpPjAmJihpPShuPXRbZVswXV0pLmxlbmd0aCk+MCl7Zm9yKHZhciBuLGkscixvPTAsYT0xO2E8aTsrK2Epe2Zvcih2YXIgcz0wLGw9MCxjPTA7czxyOysrcyl7Zm9yKHZhciB1PXRbZVtzXV0saD11W2FdWzFdfHwwLGQ9KGgtKHVbYS0xXVsxXXx8MCkpLzIscD0wO3A8czsrK3Ape3ZhciBmPXRbZVtwXV07ZCs9KGZbYV1bMV18fDApLShmW2EtMV1bMV18fDApfWwrPWgsYys9ZCpofW5bYS0xXVsxXSs9blthLTFdWzBdPW8sbCYmKG8tPWMvbCl9blthLTFdWzFdKz1uW2EtMV1bMF09byx3dHQodCxlKX19LHN0YWNrT3JkZXJBc2NlbmRpbmc6RXR0LHN0YWNrT3JkZXJEZXNjZW5kaW5nOmZ1bmN0aW9uIGptdCh0KXtyZXR1cm4gRXR0KHQpLnJldmVyc2UoKX0sc3RhY2tPcmRlckluc2lkZU91dDpmdW5jdGlvbiBHbXQodCl7dmFyIGUsbixpPXQubGVuZ3RoLHI9dC5tYXAoVHR0KSxvPVN0dCh0KS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiByW2VdLXJbdF19KSksYT0wLHM9MCxsPVtdLGM9W107Zm9yKGU9MDtlPGk7KytlKW49b1tlXSxhPHM/KGErPXJbbl0sbC5wdXNoKG4pKToocys9cltuXSxjLnB1c2gobikpO3JldHVybiBjLnJldmVyc2UoKS5jb25jYXQobCl9LHN0YWNrT3JkZXJOb25lOlN0dCxzdGFja09yZGVyUmV2ZXJzZTpmdW5jdGlvbiBXbXQodCl7cmV0dXJuIFN0dCh0KS5yZXZlcnNlKCl9LHRpbWVJbnRlcnZhbDprdHQsdGltZU1pbGxpc2Vjb25kOkx0dCx0aW1lTWlsbGlzZWNvbmRzOlB0dCx1dGNNaWxsaXNlY29uZDpMdHQsdXRjTWlsbGlzZWNvbmRzOlB0dCx0aW1lU2Vjb25kOkR0dCx0aW1lU2Vjb25kczpCdHQsdXRjU2Vjb25kOkR0dCx1dGNTZWNvbmRzOkJ0dCx0aW1lTWludXRlOkh0dCx0aW1lTWludXRlczpGdHQsdGltZUhvdXI6VnR0LHRpbWVIb3VyczpVdHQsdGltZURheTpqdHQsdGltZURheXM6R3R0LHRpbWVXZWVrOnF0dCx0aW1lV2Vla3M6UXR0LHRpbWVTdW5kYXk6cXR0LHRpbWVTdW5kYXlzOlF0dCx0aW1lTW9uZGF5Oll0dCx0aW1lTW9uZGF5czp0ZXQsdGltZVR1ZXNkYXk6WHR0LHRpbWVUdWVzZGF5czplZXQsdGltZVdlZG5lc2RheTokdHQsdGltZVdlZG5lc2RheXM6bmV0LHRpbWVUaHVyc2RheTpLdHQsdGltZVRodXJzZGF5czppZXQsdGltZUZyaWRheTpadHQsdGltZUZyaWRheXM6cmV0LHRpbWVTYXR1cmRheTpKdHQsdGltZVNhdHVyZGF5czpvZXQsdGltZU1vbnRoOmFldCx0aW1lTW9udGhzOnNldCx0aW1lWWVhcjpjZXQsdGltZVllYXJzOnVldCx1dGNNaW51dGU6aGV0LHV0Y01pbnV0ZXM6ZGV0LHV0Y0hvdXI6cGV0LHV0Y0hvdXJzOmZldCx1dGNEYXk6bWV0LHV0Y0RheXM6Z2V0LHV0Y1dlZWs6eWV0LHV0Y1dlZWtzOlRldCx1dGNTdW5kYXk6eWV0LHV0Y1N1bmRheXM6VGV0LHV0Y01vbmRheTp2ZXQsdXRjTW9uZGF5czpDZXQsdXRjVHVlc2RheTpiZXQsdXRjVHVlc2RheXM6QWV0LHV0Y1dlZG5lc2RheTp4ZXQsdXRjV2VkbmVzZGF5czprZXQsdXRjVGh1cnNkYXk6d2V0LHV0Y1RodXJzZGF5czpMZXQsdXRjRnJpZGF5Ok1ldCx1dGNGcmlkYXlzOlBldCx1dGNTYXR1cmRheTpFZXQsdXRjU2F0dXJkYXlzOk5ldCx1dGNNb250aDpJZXQsdXRjTW9udGhzOlJldCx1dGNZZWFyOk9ldCx1dGNZZWFyczp6ZXQsdGltZUZvcm1hdERlZmF1bHRMb2NhbGU6eGl0LGdldCB0aW1lRm9ybWF0KCl7cmV0dXJuIHNudH0sZ2V0IHRpbWVQYXJzZSgpe3JldHVybiBsbnR9LGdldCB1dGNGb3JtYXQoKXtyZXR1cm4gY250fSxnZXQgdXRjUGFyc2UoKXtyZXR1cm4gdW50fSx0aW1lRm9ybWF0TG9jYWxlOm9udCxpc29Gb3JtYXQ6U2l0LGlzb1BhcnNlOkNpdCxub3c6RGl0LHRpbWVyOkZpdCx0aW1lckZsdXNoOlZpdCx0aW1lb3V0OmZ1bmN0aW9uIHFtdCh0LGUsbil7dmFyIGk9bmV3IEhpdDtyZXR1cm4gaS5yZXN0YXJ0KChmdW5jdGlvbihuKXtpLnN0b3AoKSx0KG4rZSl9KSxlPW51bGw9PWU/MDorZSxuKSxpfSxpbnRlcnZhbDpmdW5jdGlvbiBZbXQodCxlLG4pe3ZhciBpPW5ldyBIaXQscj1lO3JldHVybiBudWxsPT1lPyhpLnJlc3RhcnQodCxlLG4pLGkpOihlPStlLG49bnVsbD09bj9EaXQoKTorbixpLnJlc3RhcnQoKGZ1bmN0aW9uIG8oYSl7YSs9cixpLnJlc3RhcnQobyxyKz1lLG4pLHQoYSl9KSxlLG4pLGkpfSx0cmFuc2l0aW9uOkFzdCxhY3RpdmU6ZnVuY3Rpb24gWG10KHQsZSl7dmFyIG4saSxyPXQuX190cmFuc2l0aW9uO2lmKHIpZm9yKGkgaW4gZT1udWxsPT1lP251bGw6ZSsiIixyKWlmKChuPXJbaV0pLnN0YXRlPjEmJm4ubmFtZT09PWUpcmV0dXJuIG5ldyBDc3QoW1t0XV0sSnN0LGUsK2kpO3JldHVybiBudWxsfSxpbnRlcnJ1cHQ6YWF0LHZvcm9ub2k6ZnVuY3Rpb24gJG10KCl7dmFyIHQ9dGx0LGU9ZWx0LG49bnVsbDtmdW5jdGlvbiBpKGkpe3JldHVybiBuZXcgemx0KGkubWFwKChmdW5jdGlvbihuLHIpe3ZhciBvPVtNYXRoLnJvdW5kKHQobixyLGkpL05sdCkqTmx0LE1hdGgucm91bmQoZShuLHIsaSkvTmx0KSpObHRdO3JldHVybiBvLmluZGV4PXIsby5kYXRhPW4sb30pKSxuKX1yZXR1cm4gaS5wb2x5Z29ucz1mdW5jdGlvbih0KXtyZXR1cm4gaSh0KS5wb2x5Z29ucygpfSxpLmxpbmtzPWZ1bmN0aW9uKHQpe3JldHVybiBpKHQpLmxpbmtzKCl9LGkudHJpYW5nbGVzPWZ1bmN0aW9uKHQpe3JldHVybiBpKHQpLnRyaWFuZ2xlcygpfSxpLng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpRc3QoK2UpLGkpOnR9LGkueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlFzdCgrdCksaSk6ZX0saS5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49bnVsbD09dD9udWxsOltbK3RbMF1bMF0sK3RbMF1bMV1dLFsrdFsxXVswXSwrdFsxXVsxXV1dLGkpOm4mJltbblswXVswXSxuWzBdWzFdXSxbblsxXVswXSxuWzFdWzFdXV19LGkuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1udWxsPT10P251bGw6W1swLDBdLFsrdFswXSwrdFsxXV1dLGkpOm4mJltuWzFdWzBdLW5bMF1bMF0sblsxXVsxXS1uWzBdWzFdXX0saX0sem9vbTpmdW5jdGlvbiBLbXQoKXt2YXIgdCxlLG49Z3B0LGk9X3B0LHI9eHB0LG89dnB0LGE9YnB0LHM9WzAsMS8wXSxsPVtbLTEvMCwtMS8wXSxbMS8wLDEvMF1dLGM9MjUwLHU9Qmh0LGg9W10sZD1CbHQoInN0YXJ0Iiwiem9vbSIsImVuZCIpLHA9NTAwLGY9MDtmdW5jdGlvbiBtKHQpe3QucHJvcGVydHkoIl9fem9vbSIseXB0KS5vbigid2hlZWwuem9vbSIsdykub24oIm1vdXNlZG93bi56b29tIixTKS5vbigiZGJsY2xpY2suem9vbSIsTSkuZmlsdGVyKGEpLm9uKCJ0b3VjaHN0YXJ0Lnpvb20iLEUpLm9uKCJ0b3VjaG1vdmUuem9vbSIsVCkub24oInRvdWNoZW5kLnpvb20gdG91Y2hjYW5jZWwuem9vbSIsQykuc3R5bGUoInRvdWNoLWFjdGlvbiIsIm5vbmUiKS5zdHlsZSgiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yIiwicmdiYSgwLDAsMCwwKSIpfWZ1bmN0aW9uIGcodCxlKXtyZXR1cm4oZT1NYXRoLm1heChzWzBdLE1hdGgubWluKHNbMV0sZSkpKT09PXQuaz90Om5ldyBjcHQoZSx0LngsdC55KX1mdW5jdGlvbiBfKHQsZSxuKXt2YXIgaT1lWzBdLW5bMF0qdC5rLHI9ZVsxXS1uWzFdKnQuaztyZXR1cm4gaT09PXQueCYmcj09PXQueT90Om5ldyBjcHQodC5rLGkscil9ZnVuY3Rpb24geSh0KXtyZXR1cm5bKCt0WzBdWzBdKyArdFsxXVswXSkvMiwoK3RbMF1bMV0rICt0WzFdWzFdKS8yXX1mdW5jdGlvbiB2KHQsZSxuKXt0Lm9uKCJzdGFydC56b29tIiwoZnVuY3Rpb24oKXtiKHRoaXMsYXJndW1lbnRzKS5zdGFydCgpfSkpLm9uKCJpbnRlcnJ1cHQuem9vbSBlbmQuem9vbSIsKGZ1bmN0aW9uKCl7Yih0aGlzLGFyZ3VtZW50cykuZW5kKCl9KSkudHdlZW4oInpvb20iLChmdW5jdGlvbigpe3ZhciB0PXRoaXMscj1hcmd1bWVudHMsbz1iKHQsciksYT1pLmFwcGx5KHQscikscz1ufHx5KGEpLGw9TWF0aC5tYXgoYVsxXVswXS1hWzBdWzBdLGFbMV1bMV0tYVswXVsxXSksYz10Ll9fem9vbSxoPSJmdW5jdGlvbiI9PXR5cGVvZiBlP2UuYXBwbHkodCxyKTplLGQ9dShjLmludmVydChzKS5jb25jYXQobC9jLmspLGguaW52ZXJ0KHMpLmNvbmNhdChsL2guaykpO3JldHVybiBmdW5jdGlvbih0KXtpZigxPT09dCl0PWg7ZWxzZXt2YXIgZT1kKHQpLG49bC9lWzJdO3Q9bmV3IGNwdChuLHNbMF0tZVswXSpuLHNbMV0tZVsxXSpuKX1vLnpvb20obnVsbCx0KX19KSl9ZnVuY3Rpb24gYih0LGUpe2Zvcih2YXIgbixpPTAscj1oLmxlbmd0aDtpPHI7KytpKWlmKChuPWhbaV0pLnRoYXQ9PT10KXJldHVybiBuO3JldHVybiBuZXcgeCh0LGUpfWZ1bmN0aW9uIHgodCxlKXt0aGlzLnRoYXQ9dCx0aGlzLmFyZ3M9ZSx0aGlzLmluZGV4PS0xLHRoaXMuYWN0aXZlPTAsdGhpcy5leHRlbnQ9aS5hcHBseSh0LGUpfWZ1bmN0aW9uIHcoKXtpZihuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIHQ9Yih0aGlzLGFyZ3VtZW50cyksZT10aGlzLl9fem9vbSxpPU1hdGgubWF4KHNbMF0sTWF0aC5taW4oc1sxXSxlLmsqTWF0aC5wb3coMixvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSkpKSxhPWV1dCh0aGlzKTtpZih0LndoZWVsKXQubW91c2VbMF1bMF09PT1hWzBdJiZ0Lm1vdXNlWzBdWzFdPT09YVsxXXx8KHQubW91c2VbMV09ZS5pbnZlcnQodC5tb3VzZVswXT1hKSksY2xlYXJUaW1lb3V0KHQud2hlZWwpO2Vsc2V7aWYoZS5rPT09aSlyZXR1cm47dC5tb3VzZT1bYSxlLmludmVydChhKV0sY2R0KHRoaXMpLHQuc3RhcnQoKX1tcHQoKSx0LndoZWVsPXNldFRpbWVvdXQoYywxNTApLHQuem9vbSgibW91c2UiLHIoXyhnKGUsaSksdC5tb3VzZVswXSx0Lm1vdXNlWzFdKSx0LmV4dGVudCxsKSl9ZnVuY3Rpb24gYygpe3Qud2hlZWw9bnVsbCx0LmVuZCgpfX1mdW5jdGlvbiBTKCl7aWYoIWUmJm4uYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgdD1iKHRoaXMsYXJndW1lbnRzKSxpPUpjdChGY3Qudmlldykub24oIm1vdXNlbW92ZS56b29tIixjLCEwKS5vbigibW91c2V1cC56b29tIix1LCEwKSxvPWV1dCh0aGlzKSxhPUZjdC5jbGllbnRYLHM9RmN0LmNsaWVudFk7cnV0KEZjdC52aWV3KSxmcHQoKSx0Lm1vdXNlPVtvLHRoaXMuX196b29tLmludmVydChvKV0sY2R0KHRoaXMpLHQuc3RhcnQoKX1mdW5jdGlvbiBjKCl7aWYobXB0KCksIXQubW92ZWQpe3ZhciBlPUZjdC5jbGllbnRYLWEsbj1GY3QuY2xpZW50WS1zO3QubW92ZWQ9ZSplK24qbj5mfXQuem9vbSgibW91c2UiLHIoXyh0LnRoYXQuX196b29tLHQubW91c2VbMF09ZXV0KHQudGhhdCksdC5tb3VzZVsxXSksdC5leHRlbnQsbCkpfWZ1bmN0aW9uIHUoKXtpLm9uKCJtb3VzZW1vdmUuem9vbSBtb3VzZXVwLnpvb20iLG51bGwpLG91dChGY3Qudmlldyx0Lm1vdmVkKSxtcHQoKSx0LmVuZCgpfX1mdW5jdGlvbiBNKCl7aWYobi5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciB0PXRoaXMuX196b29tLGU9ZXV0KHRoaXMpLG89dC5pbnZlcnQoZSksYT10LmsqKEZjdC5zaGlmdEtleT8uNToyKSxzPXIoXyhnKHQsYSksZSxvKSxpLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxsKTttcHQoKSxjPjA/SmN0KHRoaXMpLnRyYW5zaXRpb24oKS5kdXJhdGlvbihjKS5jYWxsKHYscyxlKTpKY3QodGhpcykuY2FsbChtLnRyYW5zZm9ybSxzKX19ZnVuY3Rpb24gRSgpe2lmKG4uYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgZSxpLHIsbyxhPWIodGhpcyxhcmd1bWVudHMpLHM9RmN0LmNoYW5nZWRUb3VjaGVzLGw9cy5sZW5ndGg7Zm9yKGZwdCgpLGk9MDtpPGw7KytpKW89W289bnV0KHRoaXMscywocj1zW2ldKS5pZGVudGlmaWVyKSx0aGlzLl9fem9vbS5pbnZlcnQobyksci5pZGVudGlmaWVyXSxhLnRvdWNoMD9hLnRvdWNoMXx8KGEudG91Y2gxPW8pOihhLnRvdWNoMD1vLGU9ITApO2lmKHQmJih0PWNsZWFyVGltZW91dCh0KSwhYS50b3VjaDEpKXJldHVybiBhLmVuZCgpLHZvaWQoKG89SmN0KHRoaXMpLm9uKCJkYmxjbGljay56b29tIikpJiZvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSk7ZSYmKHQ9c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0PW51bGx9KSxwKSxjZHQodGhpcyksYS5zdGFydCgpKX19ZnVuY3Rpb24gVCgpe3ZhciBlLG4saSxvLGE9Yih0aGlzLGFyZ3VtZW50cykscz1GY3QuY2hhbmdlZFRvdWNoZXMsYz1zLmxlbmd0aDtmb3IobXB0KCksdCYmKHQ9Y2xlYXJUaW1lb3V0KHQpKSxlPTA7ZTxjOysrZSlpPW51dCh0aGlzLHMsKG49c1tlXSkuaWRlbnRpZmllciksYS50b3VjaDAmJmEudG91Y2gwWzJdPT09bi5pZGVudGlmaWVyP2EudG91Y2gwWzBdPWk6YS50b3VjaDEmJmEudG91Y2gxWzJdPT09bi5pZGVudGlmaWVyJiYoYS50b3VjaDFbMF09aSk7aWYobj1hLnRoYXQuX196b29tLGEudG91Y2gxKXt2YXIgdT1hLnRvdWNoMFswXSxoPWEudG91Y2gwWzFdLGQ9YS50b3VjaDFbMF0scD1hLnRvdWNoMVsxXSxmPShmPWRbMF0tdVswXSkqZisoZj1kWzFdLXVbMV0pKmYsbT0obT1wWzBdLWhbMF0pKm0rKG09cFsxXS1oWzFdKSptO249ZyhuLE1hdGguc3FydChmL20pKSxpPVsodVswXStkWzBdKS8yLCh1WzFdK2RbMV0pLzJdLG89WyhoWzBdK3BbMF0pLzIsKGhbMV0rcFsxXSkvMl19ZWxzZXtpZighYS50b3VjaDApcmV0dXJuO2k9YS50b3VjaDBbMF0sbz1hLnRvdWNoMFsxXX1hLnpvb20oInRvdWNoIixyKF8obixpLG8pLGEuZXh0ZW50LGwpKX1mdW5jdGlvbiBDKCl7dmFyIHQsbixpPWIodGhpcyxhcmd1bWVudHMpLHI9RmN0LmNoYW5nZWRUb3VjaGVzLG89ci5sZW5ndGg7Zm9yKGZwdCgpLGUmJmNsZWFyVGltZW91dChlKSxlPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZT1udWxsfSkscCksdD0wO3Q8bzsrK3Qpbj1yW3RdLGkudG91Y2gwJiZpLnRvdWNoMFsyXT09PW4uaWRlbnRpZmllcj9kZWxldGUgaS50b3VjaDA6aS50b3VjaDEmJmkudG91Y2gxWzJdPT09bi5pZGVudGlmaWVyJiZkZWxldGUgaS50b3VjaDE7aS50b3VjaDEmJiFpLnRvdWNoMCYmKGkudG91Y2gwPWkudG91Y2gxLGRlbGV0ZSBpLnRvdWNoMSksaS50b3VjaDA/aS50b3VjaDBbMV09dGhpcy5fX3pvb20uaW52ZXJ0KGkudG91Y2gwWzBdKTppLmVuZCgpfXJldHVybiBtLnRyYW5zZm9ybT1mdW5jdGlvbih0LGUpe3ZhciBuPXQuc2VsZWN0aW9uP3Quc2VsZWN0aW9uKCk6dDtuLnByb3BlcnR5KCJfX3pvb20iLHlwdCksdCE9PW4/dih0LGUpOm4uaW50ZXJydXB0KCkuZWFjaCgoZnVuY3Rpb24oKXtiKHRoaXMsYXJndW1lbnRzKS5zdGFydCgpLnpvb20obnVsbCwiZnVuY3Rpb24iPT10eXBlb2YgZT9lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTplKS5lbmQoKX0pKX0sbS5zY2FsZUJ5PWZ1bmN0aW9uKHQsZSl7bS5zY2FsZVRvKHQsKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fX3pvb20uayxuPSJmdW5jdGlvbiI9PXR5cGVvZiBlP2UuYXBwbHkodGhpcyxhcmd1bWVudHMpOmU7cmV0dXJuIHQqbn0pKX0sbS5zY2FsZVRvPWZ1bmN0aW9uKHQsZSl7bS50cmFuc2Zvcm0odCwoZnVuY3Rpb24oKXt2YXIgdD1pLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxuPXRoaXMuX196b29tLG89eSh0KSxhPW4uaW52ZXJ0KG8pLHM9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6ZTtyZXR1cm4gcihfKGcobixzKSxvLGEpLHQsbCl9KSl9LG0udHJhbnNsYXRlQnk9ZnVuY3Rpb24odCxlLG4pe20udHJhbnNmb3JtKHQsKGZ1bmN0aW9uKCl7cmV0dXJuIHIodGhpcy5fX3pvb20udHJhbnNsYXRlKCJmdW5jdGlvbiI9PXR5cGVvZiBlP2UuYXBwbHkodGhpcyxhcmd1bWVudHMpOmUsImZ1bmN0aW9uIj09dHlwZW9mIG4/bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk6biksaS5hcHBseSh0aGlzLGFyZ3VtZW50cyksbCl9KSl9LG0udHJhbnNsYXRlVG89ZnVuY3Rpb24odCxlLG4pe20udHJhbnNmb3JtKHQsKGZ1bmN0aW9uKCl7dmFyIHQ9aS5hcHBseSh0aGlzLGFyZ3VtZW50cyksbz10aGlzLl9fem9vbSxhPXkodCk7cmV0dXJuIHIoZHB0LnRyYW5zbGF0ZShhWzBdLGFbMV0pLnNjYWxlKG8uaykudHJhbnNsYXRlKCJmdW5jdGlvbiI9PXR5cGVvZiBlPy1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTotZSwiZnVuY3Rpb24iPT10eXBlb2Ygbj8tbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk6LW4pLHQsbCl9KSl9LHgucHJvdG90eXBlPXtzdGFydDpmdW5jdGlvbigpe3JldHVybiAxPT0rK3RoaXMuYWN0aXZlJiYodGhpcy5pbmRleD1oLnB1c2godGhpcyktMSx0aGlzLmVtaXQoInN0YXJ0IikpLHRoaXN9LHpvb206ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5tb3VzZSYmIm1vdXNlIiE9PXQmJih0aGlzLm1vdXNlWzFdPWUuaW52ZXJ0KHRoaXMubW91c2VbMF0pKSx0aGlzLnRvdWNoMCYmInRvdWNoIiE9PXQmJih0aGlzLnRvdWNoMFsxXT1lLmludmVydCh0aGlzLnRvdWNoMFswXSkpLHRoaXMudG91Y2gxJiYidG91Y2giIT09dCYmKHRoaXMudG91Y2gxWzFdPWUuaW52ZXJ0KHRoaXMudG91Y2gxWzBdKSksdGhpcy50aGF0Ll9fem9vbT1lLHRoaXMuZW1pdCgiem9vbSIpLHRoaXN9LGVuZDpmdW5jdGlvbigpe3JldHVybiAwPT0tLXRoaXMuYWN0aXZlJiYoaC5zcGxpY2UodGhpcy5pbmRleCwxKSx0aGlzLmluZGV4PS0xLHRoaXMuZW1pdCgiZW5kIikpLHRoaXN9LGVtaXQ6ZnVuY3Rpb24odCl7IShmdW5jdGlvbiBlKHQsbixpLHIpe3ZhciBvPUZjdDt0LnNvdXJjZUV2ZW50PUZjdCxGY3Q9dDt0cnl7cmV0dXJuIG4uYXBwbHkoaSxyKX1maW5hbGx5e0ZjdD1vfX0pKG5ldyBscHQobSx0LHRoaXMudGhhdC5fX3pvb20pLGQuYXBwbHksZCxbdCx0aGlzLnRoYXQsdGhpcy5hcmdzXSl9fSxtLndoZWVsRGVsdGE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpzcHQoK3QpLG0pOm99LG0uZmlsdGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6c3B0KCEhdCksbSk6bn0sbS50b3VjaGFibGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpzcHQoISF0KSxtKTphfSxtLmV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnNwdChbWyt0WzBdWzBdLCt0WzBdWzFdXSxbK3RbMV1bMF0sK3RbMV1bMV1dXSksbSk6aX0sbS5zY2FsZUV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oc1swXT0rdFswXSxzWzFdPSt0WzFdLG0pOltzWzBdLHNbMV1dfSxtLnRyYW5zbGF0ZUV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obFswXVswXT0rdFswXVswXSxsWzFdWzBdPSt0WzFdWzBdLGxbMF1bMV09K3RbMF1bMV0sbFsxXVsxXT0rdFsxXVsxXSxtKTpbW2xbMF1bMF0sbFswXVsxXV0sW2xbMV1bMF0sbFsxXVsxXV1dfSxtLmNvbnN0cmFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LG0pOnJ9LG0uZHVyYXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9K3QsbSk6Y30sbS5pbnRlcnBvbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT10LG0pOnV9LG0ub249ZnVuY3Rpb24oKXt2YXIgdD1kLm9uLmFwcGx5KGQsYXJndW1lbnRzKTtyZXR1cm4gdD09PWQ/bTp0fSxtLmNsaWNrRGlzdGFuY2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9KHQ9K3QpKnQsbSk6TWF0aC5zcXJ0KGYpfSxtfSx6b29tVHJhbnNmb3JtOnBwdCx6b29tSWRlbnRpdHk6ZHB0fSkpOwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqCiAgICAgKiBAZmlsZW92ZXJ2aWV3IG1hbnVhbGx5IGFkZCBkMy1zZWxlY3Rpb24tbXVsdGkgdG8gZDMgZGVmYXVsdCBidW5kbGUuIE1vc3Qgb2YgdGhpcyBjb2RlIGlzCiAgICAgKiBjb3BpZWQgZnJvbSBkMy1zZWxlY3Rpb24tbXVsdGlAMS4wLjAuCiAgICAgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2QzL2QzLXNlbGVjdGlvbi1tdWx0aS9pc3N1ZXMvMTEgZm9yIHdoeSB3ZSBoYXZlIHRvIGRvIHRoaXMKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBabXQ9d3B0LEptdD13cHQ7ZnVuY3Rpb24gUW10KHQsZSl7cmV0dXJuIHQuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxuPVptdC5zZWxlY3QodGhpcyk7Zm9yKHZhciBpIGluIHQpbi5hdHRyKGksdFtpXSl9KSl9ZnVuY3Rpb24gdGd0KHQsZSl7Zm9yKHZhciBuIGluIGUpdC5hdHRyKG4sZVtuXSk7cmV0dXJuIHR9ZnVuY3Rpb24gZWd0KHQsZSxuKXtyZXR1cm4gdC5lYWNoKChmdW5jdGlvbigpe3ZhciB0PWUuYXBwbHkodGhpcyxhcmd1bWVudHMpLGk9Wm10LnNlbGVjdCh0aGlzKTtmb3IodmFyIHIgaW4gdClpLnN0eWxlKHIsdFtyXSxuKX0pKX1mdW5jdGlvbiBuZ3QodCxlLG4pe2Zvcih2YXIgaSBpbiBlKXQuc3R5bGUoaSxlW2ldLG4pO3JldHVybiB0fWZ1bmN0aW9uIGlndCh0LGUpe3JldHVybiB0LmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksbj1abXQuc2VsZWN0KHRoaXMpO2Zvcih2YXIgaSBpbiB0KW4ucHJvcGVydHkoaSx0W2ldKX0pKX1mdW5jdGlvbiByZ3QodCxlKXtmb3IodmFyIG4gaW4gZSl0LnByb3BlcnR5KG4sZVtuXSk7cmV0dXJuIHR9ZnVuY3Rpb24gb2d0KHQsZSl7cmV0dXJuIHQuZWFjaCgoZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxpPVptdC5zZWxlY3QodGhpcykudHJhbnNpdGlvbih0KTtmb3IodmFyIHIgaW4gbilpLmF0dHIocixuW3JdKX0pKX1mdW5jdGlvbiBhZ3QodCxlKXtmb3IodmFyIG4gaW4gZSl0LmF0dHIobixlW25dKTtyZXR1cm4gdH1mdW5jdGlvbiBzZ3QodCxlLG4pe3JldHVybiB0LmVhY2goKGZ1bmN0aW9uKCl7dmFyIGk9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cykscj1abXQuc2VsZWN0KHRoaXMpLnRyYW5zaXRpb24odCk7Zm9yKHZhciBvIGluIGkpci5zdHlsZShvLGlbb10sbil9KSl9ZnVuY3Rpb24gbGd0KHQsZSxuKXtmb3IodmFyIGkgaW4gZSl0LnN0eWxlKGksZVtpXSxuKTtyZXR1cm4gdH1abXQuc2VsZWN0aW9uLnByb3RvdHlwZS5hdHRycz1mdW5jdGlvbiBjZ3QodCl7cmV0dXJuKCJmdW5jdGlvbiI9PXR5cGVvZiB0P1FtdDp0Z3QpKHRoaXMsdCl9LFptdC5zZWxlY3Rpb24ucHJvdG90eXBlLnN0eWxlcz1mdW5jdGlvbiB1Z3QodCxlKXtyZXR1cm4oImZ1bmN0aW9uIj09dHlwZW9mIHQ/ZWd0Om5ndCkodGhpcyx0LG51bGw9PWU/IiI6ZSl9LFptdC5zZWxlY3Rpb24ucHJvdG90eXBlLnByb3BlcnRpZXM9ZnVuY3Rpb24gaGd0KHQpe3JldHVybigiZnVuY3Rpb24iPT10eXBlb2YgdD9pZ3Q6cmd0KSh0aGlzLHQpfSxKbXQudHJhbnNpdGlvbi5wcm90b3R5cGUuYXR0cnM9ZnVuY3Rpb24gZGd0KHQpe3JldHVybigiZnVuY3Rpb24iPT10eXBlb2YgdD9vZ3Q6YWd0KSh0aGlzLHQpfSxKbXQudHJhbnNpdGlvbi5wcm90b3R5cGUuc3R5bGVzPWZ1bmN0aW9uIHBndCh0LGUpe3JldHVybigiZnVuY3Rpb24iPT10eXBlb2YgdD9zZ3Q6bGd0KSh0aGlzLHQsbnVsbD09ZT8iIjplKX07dmFyIGZndD17fSxtZ3Q9e30sZ2d0PU1lKEZtKSxfZ3Q9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KF9ndCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHlndD13cHQ7X2d0LmNvZXJjZUV4dGVybmFsRDM9ZnVuY3Rpb24gdmd0KHQpe2lmKG51bGw9PXQuYXR0cnMpe2lmKG51bGw9PXQubm9kZXMpe3ZhciBlPVtdO3JldHVybiB0LmVhY2goKGZ1bmN0aW9uKCl7ZS5wdXNoKHRoaXMpfSkpLHlndC5zZWxlY3RBbGwoZSl9cmV0dXJuIHlndC5zZWxlY3RBbGwodC5ub2RlcygpKX1yZXR1cm4gdH07dmFyIGJndD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoYmd0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxiZ3QubWFrZUVudW09ZnVuY3Rpb24geGd0KHQpe3JldHVybiB0LnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFtlXT1lLHR9KSx7fSl9LAovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkobWd0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgd2d0PV9ndCxTZ3Q9e2xpbmVhcjpnZ3QuZWFzZUxpbmVhcixxdWFkOmdndC5lYXNlUXVhZCxxdWFkSW46Z2d0LmVhc2VRdWFkSW4scXVhZE91dDpnZ3QuZWFzZVF1YWRPdXQscXVhZEluT3V0OmdndC5lYXNlUXVhZEluT3V0LGN1YmljOmdndC5lYXNlQ3ViaWMsY3ViaWNJbjpnZ3QuZWFzZUN1YmljSW4sY3ViaWNPdXQ6Z2d0LmVhc2VDdWJpY091dCxjdWJpY0luT3V0OmdndC5lYXNlQ3ViaWNJbk91dCxwb2x5OmdndC5lYXNlUG9seSxwb2x5SW46Z2d0LmVhc2VQb2x5SW4scG9seU91dDpnZ3QuZWFzZVBvbHlPdXQscG9seUluT3V0OmdndC5lYXNlUG9seUluT3V0LHNpbjpnZ3QuZWFzZVNpbixzaW5JbjpnZ3QuZWFzZVNpbkluLHNpbk91dDpnZ3QuZWFzZVNpbk91dCxzaW5Jbk91dDpnZ3QuZWFzZVNpbkluT3V0LGV4cDpnZ3QuZWFzZUV4cCxleHBJbjpnZ3QuZWFzZUV4cEluLGV4cE91dDpnZ3QuZWFzZUV4cE91dCxleHBJbk91dDpnZ3QuZWFzZUV4cEluT3V0LGNpcmNsZTpnZ3QuZWFzZUNpcmNsZSxjaXJjbGVJbjpnZ3QuZWFzZUNpcmNsZUluLGNpcmNsZU91dDpnZ3QuZWFzZUNpcmNsZU91dCxjaXJjbGVJbk91dDpnZ3QuZWFzZUNpcmNsZUluT3V0LGJvdW5jZTpnZ3QuZWFzZUJvdW5jZSxib3VuY2VJbjpnZ3QuZWFzZUJvdW5jZUluLGJvdW5jZU91dDpnZ3QuZWFzZUJvdW5jZU91dCxib3VuY2VJbk91dDpnZ3QuZWFzZUJvdW5jZUluT3V0LGJhY2s6Z2d0LmVhc2VCYWNrLGJhY2tJbjpnZ3QuZWFzZUJhY2tJbixiYWNrT3V0OmdndC5lYXNlQmFja091dCxiYWNrSW5PdXQ6Z2d0LmVhc2VCYWNrSW5PdXQsZWxhc3RpYzpnZ3QuZWFzZUVsYXN0aWMsZWxhc3RpY0luOmdndC5lYXNlRWxhc3RpY0luLGVsYXN0aWNPdXQ6Z2d0LmVhc2VFbGFzdGljT3V0LGVsYXN0aWNJbk91dDpnZ3QuZWFzZUVsYXN0aWNJbk91dH07bWd0LkVhc2VOYW1lPWJndC5tYWtlRW51bShbImxpbmVhciIsInF1YWQiLCJxdWFkSW4iLCJxdWFkT3V0IiwicXVhZEluT3V0IiwiY3ViaWMiLCJjdWJpY0luIiwiY3ViaWNPdXQiLCJjdWJpY0luT3V0IiwicG9seSIsInBvbHlJbiIsInBvbHlPdXQiLCJwb2x5SW5PdXQiLCJzaW4iLCJzaW5JbiIsInNpbk91dCIsInNpbkluT3V0IiwiZXhwIiwiZXhwSW4iLCJleHBPdXQiLCJleHBJbk91dCIsImNpcmNsZSIsImNpcmNsZUluIiwiY2lyY2xlT3V0IiwiY2lyY2xlSW5PdXQiLCJib3VuY2UiLCJib3VuY2VJbiIsImJvdW5jZU91dCIsImJvdW5jZUluT3V0IiwiYmFjayIsImJhY2tJbiIsImJhY2tPdXQiLCJiYWNrSW5PdXQiLCJlbGFzdGljIiwiZWxhc3RpY0luIiwiZWxhc3RpY091dCIsImVsYXN0aWNJbk91dCJdKTt2YXIgTWd0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt0aGlzLl9zdGFydERlbGF5PXQuX0RFRkFVTFRfU1RBUlRfREVMQVlfTUlMTElTRUNPTkRTLHRoaXMuX3N0ZXBEdXJhdGlvbj10Ll9ERUZBVUxUX1NURVBfRFVSQVRJT05fTUlMTElTRUNPTkRTLHRoaXMuX3N0ZXBEZWxheT10Ll9ERUZBVUxUX0lURVJBVElWRV9ERUxBWV9NSUxMSVNFQ09ORFMsdGhpcy5fbWF4VG90YWxEdXJhdGlvbj10Ll9ERUZBVUxUX01BWF9UT1RBTF9EVVJBVElPTl9NSUxMSVNFQ09ORFMsdGhpcy5fZWFzaW5nTW9kZT10Ll9ERUZBVUxUX0VBU0lOR19NT0RFfXJldHVybiB0LnByb3RvdHlwZS50b3RhbFRpbWU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fZ2V0QWRqdXN0ZWRJdGVyYXRpdmVEZWxheSh0KTtyZXR1cm4gdGhpcy5zdGFydERlbGF5KCkrZSpNYXRoLm1heCh0LTEsMCkrdGhpcy5zdGVwRHVyYXRpb24oKX0sdC5wcm90b3R5cGUuYW5pbWF0ZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMsaT0odD13Z3QuY29lcmNlRXh0ZXJuYWxEMyh0KSkuc2l6ZSgpLHI9dGhpcy5fZ2V0QWRqdXN0ZWRJdGVyYXRpdmVEZWxheShpKTtyZXR1cm4gdC50cmFuc2l0aW9uKCkuZWFzZSh0aGlzLl9nZXRFYXNlRmFjdG9yeSgpKS5kdXJhdGlvbih0aGlzLnN0ZXBEdXJhdGlvbigpKS5kZWxheSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5zdGFydERlbGF5KCkrciplfSkpLmF0dHJzKGUpfSx0LnByb3RvdHlwZS5zdGFydERlbGF5PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX3N0YXJ0RGVsYXk6KHRoaXMuX3N0YXJ0RGVsYXk9dCx0aGlzKX0sdC5wcm90b3R5cGUuc3RlcER1cmF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P01hdGgubWluKHRoaXMuX3N0ZXBEdXJhdGlvbix0aGlzLl9tYXhUb3RhbER1cmF0aW9uKToodGhpcy5fc3RlcER1cmF0aW9uPXQsdGhpcyl9LHQucHJvdG90eXBlLnN0ZXBEZWxheT1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9zdGVwRGVsYXk6KHRoaXMuX3N0ZXBEZWxheT10LHRoaXMpfSx0LnByb3RvdHlwZS5tYXhUb3RhbER1cmF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX21heFRvdGFsRHVyYXRpb246KHRoaXMuX21heFRvdGFsRHVyYXRpb249dCx0aGlzKX0sdC5wcm90b3R5cGUuZWFzaW5nTW9kZT1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9lYXNpbmdNb2RlOih0aGlzLl9lYXNpbmdNb2RlPXQsdGhpcyl9LHQucHJvdG90eXBlLl9nZXRFYXNlRmFjdG9yeT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZWFzaW5nTW9kZSgpO2lmKCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIGU9U2d0W3RdO3JldHVybiBudWxsPT1lP1NndC5saW5lYXI6ZX1yZXR1cm4gdH0sdC5wcm90b3R5cGUuX2dldEFkanVzdGVkSXRlcmF0aXZlRGVsYXk9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5tYXhUb3RhbER1cmF0aW9uKCktdGhpcy5zdGVwRHVyYXRpb24oKSxuPShlPU1hdGgubWF4KGUsMCkpL01hdGgubWF4KHQtMSwxKTtyZXR1cm4gTWF0aC5taW4odGhpcy5zdGVwRGVsYXkoKSxuKX0sdC5fREVGQVVMVF9TVEFSVF9ERUxBWV9NSUxMSVNFQ09ORFM9MCx0Ll9ERUZBVUxUX1NURVBfRFVSQVRJT05fTUlMTElTRUNPTkRTPTMwMCx0Ll9ERUZBVUxUX0lURVJBVElWRV9ERUxBWV9NSUxMSVNFQ09ORFM9MTUsdC5fREVGQVVMVF9NQVhfVE9UQUxfRFVSQVRJT05fTUlMTElTRUNPTkRTPTEvMCx0Ll9ERUZBVUxUX0VBU0lOR19NT0RFPSJleHBPdXQiLHR9KSgpO21ndC5FYXNpbmc9TWd0O3ZhciBFZ3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KEVndCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFRndD1fZ3QsQ2d0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIHQucHJvdG90eXBlLnRvdGFsVGltZT1mdW5jdGlvbih0KXtyZXR1cm4gMH0sdC5wcm90b3R5cGUuYW5pbWF0ZT1mdW5jdGlvbih0LGUpe3JldHVybih0PVRndC5jb2VyY2VFeHRlcm5hbEQzKHQpKS5hdHRycyhlKX0sdH0pKCk7RWd0Lk51bGw9Q2d0LChmdW5jdGlvbih0KXsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPUJPO2UuX19leHBvcnRTdGFyKG1ndCx0KSxlLl9fZXhwb3J0U3RhcihFZ3QsdCl9KShmZ3QpO3ZhciBBZ3Q9e30sa2d0PXt9LExndD17fSxQZ3Q9e30sTmd0PXt9LElndD17fSxSZ3Q9e30sT2d0PXt9LHpndD17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoemd0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgRGd0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5jYWNoZT17fSx0aGlzLmNvbXB1dGU9dH1yZXR1cm4gdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNhY2hlLmhhc093blByb3BlcnR5KHQpfHwodGhpcy5jYWNoZVt0XT10aGlzLmNvbXB1dGUodCkpLHRoaXMuY2FjaGVbdF19LHQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2FjaGU9e30sdGhpc30sdH0pKCk7emd0LkNhY2hlPURndDt2YXIgQmd0PXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShCZ3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBIZ3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5hcnJheUVxPWZ1bmN0aW9uKHQsZSl7aWYobnVsbD09dHx8bnVsbD09ZSlyZXR1cm4gdD09PWU7aWYodC5sZW5ndGghPT1lLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKylpZih0W25dIT09ZVtuXSlyZXR1cm4hMTtyZXR1cm4hMH0sdC5vYmpFcT1mdW5jdGlvbihlLG4pe2lmKG51bGw9PWV8fG51bGw9PW4pcmV0dXJuIGU9PT1uO3ZhciBpPU9iamVjdC5rZXlzKGUpLnNvcnQoKSxyPU9iamVjdC5rZXlzKG4pLnNvcnQoKSxvPWkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0pKSxhPXIubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gblt0XX0pKTtyZXR1cm4gdC5hcnJheUVxKGkscikmJnQuYXJyYXlFcShvLGEpfSx0LnN0cmljdEVxPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfSx0LmRlZmF1bHRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyllW24tMV09YXJndW1lbnRzW25dO2lmKG51bGw9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNvbnZlcnQgdW5kZWZpbmVkIG9yIG51bGwgdG8gb2JqZWN0Iik7dmFyIGk9T2JqZWN0KHQpO3JldHVybiBlLmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKG51bGwhPXQpZm9yKHZhciBlIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSkmJihpW2VdPXRbZV0pfSkpLGl9LHR9KSgpO0JndC5NZXRob2RzPUhndDt2YXIgRmd0PXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShGZ3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBWZ3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5jb21iaW5lV2hpdGVzcGFjZT1mdW5jdGlvbih0KXtyZXR1cm4gdC5yZXBsYWNlKC9bIFx0XSsvZywiICIpfSx0LmlzTm90RW1wdHlTdHJpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiIiIT09dC50cmltKCl9LHQudHJpbVN0YXJ0PWZ1bmN0aW9uKGUsbil7aWYoIWUpcmV0dXJuIGU7dmFyIGk9ZS5zcGxpdCgiIikscj1uP2Z1bmN0aW9uKGUpe3JldHVybiBlLnNwbGl0KG4pLnNvbWUodC5pc05vdEVtcHR5U3RyaW5nKX06dC5pc05vdEVtcHR5U3RyaW5nO3JldHVybiBpLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gcih0K2UpP3QrZTp0fSksIiIpfSx0LnRyaW1FbmQ9ZnVuY3Rpb24oZSxuKXtpZighZSlyZXR1cm4gZTt2YXIgaT1lLnNwbGl0KCIiKTtyZXR1cm4gaS5yZXZlcnNlKCksKGk9dC50cmltU3RhcnQoaS5qb2luKCIiKSxuKS5zcGxpdCgiIikpLnJldmVyc2UoKSxpLmpvaW4oIiIpfSx0fSkoKTtGZ3QuU3RyaW5nTWV0aG9kcz1WZ3Q7dmFyIFVndD17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoVWd0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgamd0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt0aGlzLldvcmREaXZpZGVyUmVnRXhwPW5ldyBSZWdFeHAoIlxcVyIpLHRoaXMuV2hpdGVzcGFjZVJlZ0V4cD1uZXcgUmVnRXhwKCJcXHMiKX1yZXR1cm4gdC5wcm90b3R5cGUudG9rZW5pemU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdC5zcGxpdCgiIikucmVkdWNlKChmdW5jdGlvbih0LG4pe3JldHVybiB0LnNsaWNlKDAsLTEpLmNvbmNhdChlLnNob3VsZENyZWF0ZU5ld1Rva2VuKHRbdC5sZW5ndGgtMV0sbikpfSksWyIiXSl9LHQucHJvdG90eXBlLnNob3VsZENyZWF0ZU5ld1Rva2VuPWZ1bmN0aW9uKHQsZSl7aWYoIXQpcmV0dXJuW2VdO3ZhciBuPXRbdC5sZW5ndGgtMV07cmV0dXJuIHRoaXMuV2hpdGVzcGFjZVJlZ0V4cC50ZXN0KG4pJiZ0aGlzLldoaXRlc3BhY2VSZWdFeHAudGVzdChlKT9bdCtlXTp0aGlzLldoaXRlc3BhY2VSZWdFeHAudGVzdChuKXx8dGhpcy5XaGl0ZXNwYWNlUmVnRXhwLnRlc3QoZSk/W3QsZV06dGhpcy5Xb3JkRGl2aWRlclJlZ0V4cC50ZXN0KG4pP249PT1lP1t0K2VdOlt0LGVdOlt0K2VdfSx0fSkoKTtVZ3QuVG9rZW5pemVyPWpndCwoZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXtmb3IodmFyIG4gaW4gZSl0Lmhhc093blByb3BlcnR5KG4pfHwodFtuXT1lW25dKX1PYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZSh6Z3QpLGUoQmd0KSxlKEZndCksZShVZ3QpfSkoT2d0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUmd0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgR2d0PU9ndCxXZ3Q9e3RleHRSb3RhdGlvbjowLHRleHRTaGVhcjowLHhBbGlnbjoibGVmdCIseUFsaWduOiJ0b3AifSxxZ3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbil7dGhpcy5fbWVhc3VyZXI9dCx0aGlzLl9wZW5GYWN0b3J5PWUsdGhpcy5fd3JhcHBlcj1ufXJldHVybiB0LnByb3RvdHlwZS5tZWFzdXJlcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbWVhc3VyZXI9dCx0aGlzfSx0LnByb3RvdHlwZS53cmFwcGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl93cmFwcGVyPXQsdGhpc30sdC5wcm90b3R5cGUucGVuRmFjdG9yeT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGVuRmFjdG9yeT10LHRoaXN9LHQucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGUsbixpLHIsbyl7aWYodm9pZCAwPT09ciYmKHI9e30pLHI9R2d0Lk1ldGhvZHMuZGVmYXVsdHMoe30sV2d0LHIpLC0xPT09dC5TdXBwb3J0ZWRSb3RhdGlvbi5pbmRleE9mKHIudGV4dFJvdGF0aW9uKSl0aHJvdyBuZXcgRXJyb3IoInVuc3VwcG9ydGVkIHJvdGF0aW9uIC0gIityLnRleHRSb3RhdGlvbisiLiBTdXBwb3J0ZWQgcm90YXRpb25zIGFyZSAiK3QuU3VwcG9ydGVkUm90YXRpb24uam9pbigiLCAiKSk7aWYobnVsbCE9ci50ZXh0U2hlYXImJnIudGV4dFNoZWFyPC04MHx8ci50ZXh0U2hlYXI+ODApdGhyb3cgbmV3IEVycm9yKCJ1bnN1cHBvcnRlZCBzaGVhciBhbmdsZSAtICIrci50ZXh0U2hlYXIrIi4gTXVzdCBiZSBiZXR3ZWVuIC04MCBhbmQgODAiKTt2YXIgYT1NYXRoLmFicyhNYXRoLmFicyhyLnRleHRSb3RhdGlvbiktOTApPjQ1LHM9YT9uOmksbD1hP2k6bixjPXIudGV4dFNoZWFyLHU9YypNYXRoLlBJLzE4MCxoPXRoaXMuX21lYXN1cmVyLm1lYXN1cmUoKS5oZWlnaHQsZD1oKk1hdGgudGFuKHUpLHA9cy9NYXRoLmNvcyh1KS1NYXRoLmFicyhkKSxmPWwqTWF0aC5jb3ModSksbT1HZ3QuU3RyaW5nTWV0aG9kcy5jb21iaW5lV2hpdGVzcGFjZShlKSxnPSh0aGlzLl93cmFwcGVyP3RoaXMuX3dyYXBwZXIud3JhcChtLHRoaXMuX21lYXN1cmVyLHAsZikud3JhcHBlZFRleHQ6bSkuc3BsaXQoIlxuIiksXz10LlhPZmZzZXRGYWN0b3Jbci54QWxpZ25dKnAqTWF0aC5zaW4odSktdC5ZT2Zmc2V0RmFjdG9yW3IueUFsaWduXSooZi1nLmxlbmd0aCpoKSx5PVswLDBdLHY9ci50ZXh0Um90YXRpb24rYztzd2l0Y2goci50ZXh0Um90YXRpb24pe2Nhc2UgOTA6eT1bbitfLDBdO2JyZWFrO2Nhc2UtOTA6eT1bLV8saV07YnJlYWs7Y2FzZSAxODA6eT1bbixpK19dO2JyZWFrO2RlZmF1bHQ6eT1bMCwtX119dmFyIGI9dGhpcy5fcGVuRmFjdG9yeS5jcmVhdGVQZW4oZSx7dHJhbnNsYXRlOnkscm90YXRlOnZ9LG8pO3RoaXMud3JpdGVMaW5lcyhnLGIscCxoLGQsci54QWxpZ24pLG51bGwhPWIuZGVzdHJveSYmYi5kZXN0cm95KCl9LHQucHJvdG90eXBlLndyaXRlTGluZXM9ZnVuY3Rpb24odCxlLG4saSxyLG8pe3QuZm9yRWFjaCgoZnVuY3Rpb24odCxhKXtlLndyaXRlKHQsbixvLHI+MD8oYSsxKSpyOmEqciwoYSsxKSppKX0pKX0sdH0pKCk7cWd0LlhPZmZzZXRGYWN0b3I9e2NlbnRlcjouNSxsZWZ0OjAscmlnaHQ6MX0scWd0LllPZmZzZXRGYWN0b3I9e2JvdHRvbToxLGNlbnRlcjouNSx0b3A6MH0scWd0LlN1cHBvcnRlZFJvdGF0aW9uPVstOTAsMCwxODAsOTBdLFJndC5Xcml0ZXI9cWd0LChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksKGZ1bmN0aW9uIGUobil7Zm9yKHZhciBpIGluIG4pdC5oYXNPd25Qcm9wZXJ0eShpKXx8KHRbaV09bltpXSl9KShSZ3QpfSkoSWd0KTt2YXIgWWd0PXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShZZ3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBYZ3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5hcHBlbmQ9ZnVuY3Rpb24oZSxuKXtmb3IodmFyIGk9W10scj0yO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspaVtyLTJdPWFyZ3VtZW50c1tyXTt2YXIgbz10LmNyZWF0ZS5hcHBseSh0LFtuXS5jb25jYXQoaSkpO3JldHVybiBlLmFwcGVuZENoaWxkKG8pLG99LHQuY3JlYXRlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj1bXSxpPTE7aTxhcmd1bWVudHMubGVuZ3RoO2krKyluW2ktMV09YXJndW1lbnRzW2ldO3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZSk7cmV0dXJuIHQuYWRkQ2xhc3Nlcy5hcHBseSh0LFtyXS5jb25jYXQobikpLHJ9LHQuYWRkQ2xhc3Nlcz1mdW5jdGlvbih0KXtmb3IodmFyIGU9W10sbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuLTFdPWFyZ3VtZW50c1tuXTtlPWUuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dH0pKSxudWxsIT10LmNsYXNzTGlzdD9lLmZvckVhY2goKGZ1bmN0aW9uKGUpe3QuY2xhc3NMaXN0LmFkZChlKX0pKTp0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLGUuam9pbigiICIpKX0sdC5nZXREaW1lbnNpb25zPWZ1bmN0aW9uKHQpe2lmKHQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KXRyeXt2YXIgZT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybnt3aWR0aDplLndpZHRoLGhlaWdodDplLmhlaWdodH19Y2F0Y2godCl7fXJldHVybntoZWlnaHQ6MCx3aWR0aDowfX0sdH0pKCk7WWd0Lkh0bWxVdGlscz1YZ3Q7dmFyICRndD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuKXt2b2lkIDA9PT1uJiYobj0hMSk7dmFyIGk9dGhpczt0aGlzLmVsZW1lbnQ9dCx0aGlzLmNsYXNzTmFtZT1lLHRoaXMuYWRkVGl0bGU9bix0aGlzLmNyZWF0ZVJ1bGVyPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPVhndC5hcHBlbmQoaS5lbGVtZW50LCJzcGFuIiwidGV4dC10bXAiLGkuY2xhc3NOYW1lKTtlLnRleHRDb250ZW50PXQ7dmFyIG49WGd0LmdldERpbWVuc2lvbnMoZSk7cmV0dXJuIGkuZWxlbWVudC5yZW1vdmVDaGlsZChlKSxufX0sdGhpcy5jcmVhdGVQZW49ZnVuY3Rpb24odCxlLG4pe251bGw9PW4mJihuPWkuZWxlbWVudCk7dmFyIHI9WGd0LmFwcGVuZChuLCJkaXYiLCJ0ZXh0LWJsb2NrIixpLmNsYXNzTmFtZSk7cmV0dXJuIHIuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIixyLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlKDAsIC0xZW0pIHRyYW5zbGF0ZSgiK2UudHJhbnNsYXRlWzBdKyJweCwgIitlLnRyYW5zbGF0ZVsxXSsicHgpIHJvdGF0ZSgiK2Uucm90YXRlKyJkZWcpIixyLnN0eWxlLnRyYW5zZm9ybU9yaWdpbj0iMCAxLjJlbSIsaS5hZGRUaXRsZSYmci5zZXRBdHRyaWJ1dGUoInRpdGxlIix0KSxpLmNyZWF0ZUh0bWxMaW5lUGVuKHIpfX1yZXR1cm4gdC5wcm90b3R5cGUuc2V0QWRkVGl0bGU9ZnVuY3Rpb24odCl7dGhpcy5hZGRUaXRsZT10fSx0LnByb3RvdHlwZS5jcmVhdGVIdG1sTGluZVBlbj1mdW5jdGlvbih0KXtyZXR1cm57d3JpdGU6ZnVuY3Rpb24oZSxuLGkscixvKXt2YXIgYT1YZ3QuYXBwZW5kKHQsImRpdiIsInRleHQtbGluZSIpO2EudGV4dENvbnRlbnQ9ZSxhLnN0eWxlLndpZHRoPW4rInB4IixhLnN0eWxlLnRleHRBbGlnbj1pLGEuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixhLnN0eWxlLndoaXRlU3BhY2U9Im5vd3JhcCIsYS5zdHlsZS50b3A9bysicHgiLGEuc3R5bGUubGVmdD1yKyJweCJ9fX0sdH0pKCk7WWd0Lkh0bWxDb250ZXh0PSRndCxPYmplY3QuZGVmaW5lUHJvcGVydHkoTmd0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgS2d0PUlndCxaZ3Q9WWd0LEpndD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiB0LmFwcGVuZD1mdW5jdGlvbihlLG4pe2Zvcih2YXIgaT1bXSxyPTI7cjxhcmd1bWVudHMubGVuZ3RoO3IrKylpW3ItMl09YXJndW1lbnRzW3JdO3ZhciBvPXQuY3JlYXRlLmFwcGx5KHQsW25dLmNvbmNhdChpKSk7cmV0dXJuIGUuYXBwZW5kQ2hpbGQobyksb30sdC5jcmVhdGU9ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPVtdLGk9MTtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKW5baS0xXT1hcmd1bWVudHNbaV07dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHQuU1ZHX05TLGUpO3JldHVybiBaZ3QuSHRtbFV0aWxzLmFkZENsYXNzZXMuYXBwbHkoWmd0Lkh0bWxVdGlscyxbcl0uY29uY2F0KG4pKSxyfSx0LmdldERpbWVuc2lvbnM9ZnVuY3Rpb24odCl7aWYodC5nZXRCQm94KXRyeXt2YXIgZT10LmdldEJCb3goKTtyZXR1cm57d2lkdGg6ZS53aWR0aCxoZWlnaHQ6ZS5oZWlnaHR9fWNhdGNoKHQpe31yZXR1cm57aGVpZ2h0OjAsd2lkdGg6MH19LHR9KSgpO0pndC5TVkdfTlM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixOZ3QuU3ZnVXRpbHM9Smd0O3ZhciBRZ3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbil7dm9pZCAwPT09biYmKG49ITEpO3ZhciBpPXRoaXM7dGhpcy5lbGVtZW50PXQsdGhpcy5jbGFzc05hbWU9ZSx0aGlzLmFkZFRpdGxlRWxlbWVudD1uLHRoaXMuY3JlYXRlUnVsZXI9ZnVuY3Rpb24oKXt2YXIgdD1pLmdldFRleHRFbGVtZW50cyhpLmVsZW1lbnQpLGU9dC5wYXJlbnRFbGVtZW50LG49dC5jb250YWluZXJFbGVtZW50LHI9dC50ZXh0RWxlbWVudDtyZXR1cm4gZnVuY3Rpb24odCl7ZS5hcHBlbmRDaGlsZChuKSxyLnRleHRDb250ZW50PXQ7dmFyIGk9Smd0LmdldERpbWVuc2lvbnMocik7cmV0dXJuIGUucmVtb3ZlQ2hpbGQobiksaX19LHRoaXMuY3JlYXRlUGVuPWZ1bmN0aW9uKHQsZSxuKXtudWxsPT1uJiYobj1pLmVsZW1lbnQpO3ZhciByPUpndC5hcHBlbmQobiwiZyIsInRleHQtY29udGFpbmVyIixpLmNsYXNzTmFtZSk7aS5hZGRUaXRsZUVsZW1lbnQmJihKZ3QuYXBwZW5kKHIsInRpdGxlIikudGV4dENvbnRlbnQ9dCxyLnNldEF0dHJpYnV0ZSgidGl0bGUiLHQpKTt2YXIgbz1KZ3QuYXBwZW5kKHIsImciLCJ0ZXh0LWFyZWEiKTtyZXR1cm4gby5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK2UudHJhbnNsYXRlWzBdKyIsIitlLnRyYW5zbGF0ZVsxXSsiKXJvdGF0ZSgiK2Uucm90YXRlKyIpIiksaS5jcmVhdGVTdmdMaW5lUGVuKG8pfX1yZXR1cm4gdC5wcm90b3R5cGUuc2V0QWRkVGl0bGVFbGVtZW50PWZ1bmN0aW9uKHQpe3RoaXMuYWRkVGl0bGVFbGVtZW50PXR9LHQucHJvdG90eXBlLmNyZWF0ZVN2Z0xpbmVQZW49ZnVuY3Rpb24oZSl7cmV0dXJue3dyaXRlOmZ1bmN0aW9uKG4saSxyLG8sYSl7bys9aSpLZ3QuV3JpdGVyLlhPZmZzZXRGYWN0b3Jbcl07dmFyIHM9Smd0LmFwcGVuZChlLCJ0ZXh0IiwidGV4dC1saW5lIik7cy50ZXh0Q29udGVudD1uLHMuc2V0QXR0cmlidXRlKCJ0ZXh0LWFuY2hvciIsdC5BbmNob3JNYXBbcl0pLHMuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitvKyIsIithKyIpIikscy5zZXRBdHRyaWJ1dGUoInkiLCItMC4yNWVtIil9fX0sdC5wcm90b3R5cGUuZ2V0VGV4dEVsZW1lbnRzPWZ1bmN0aW9uKHQpe2lmKCJ0ZXh0Ij09PXQudGFnTmFtZSlyZXR1cm4gbnVsbD09KGU9dC5wYXJlbnRFbGVtZW50KSYmKGU9dC5wYXJlbnROb2RlKSxlLnJlbW92ZUNoaWxkKHQpLHtjb250YWluZXJFbGVtZW50OnQscGFyZW50RWxlbWVudDplLHRleHRFbGVtZW50OnR9O3ZhciBlLG49dC5xdWVyeVNlbGVjdG9yKCJ0ZXh0Iik7aWYobnVsbCE9bilyZXR1cm4gbnVsbD09KGU9bi5wYXJlbnRFbGVtZW50KSYmKGU9bi5wYXJlbnROb2RlKSxlLnJlbW92ZUNoaWxkKG4pLHtjb250YWluZXJFbGVtZW50Om4scGFyZW50RWxlbWVudDplLHRleHRFbGVtZW50Om59O3ZhciBpPUpndC5jcmVhdGUoInRleHQiLHRoaXMuY2xhc3NOYW1lKTtyZXR1cm57Y29udGFpbmVyRWxlbWVudDppLHBhcmVudEVsZW1lbnQ6dCx0ZXh0RWxlbWVudDppfX0sdH0pKCk7UWd0LkFuY2hvck1hcD17Y2VudGVyOiJtaWRkbGUiLGxlZnQ6InN0YXJ0IixyaWdodDoiZW5kIn0sTmd0LlN2Z0NvbnRleHQ9UWd0O3ZhciB0X3Q9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KHRfdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGVfdD1JZ3Qsbl90PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4pe3ZvaWQgMD09PWUmJihlPTEwKSx2b2lkIDA9PT1uJiYobj17fSk7dmFyIGk9dGhpczt0aGlzLmN0eD10LHRoaXMubGluZUhlaWdodD1lLHRoaXMuc3R5bGU9bix0aGlzLmNyZWF0ZVJ1bGVyPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBpLmN0eC5mb250PWkuc3R5bGUuZm9udCx7d2lkdGg6aS5jdHgubWVhc3VyZVRleHQodCkud2lkdGgsaGVpZ2h0OmkubGluZUhlaWdodH19fSx0aGlzLmNyZWF0ZVBlbj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG51bGw9PW4mJihuPWkuY3R4KSxuLnNhdmUoKSxuLnRyYW5zbGF0ZShlLnRyYW5zbGF0ZVswXSxlLnRyYW5zbGF0ZVsxXSksbi5yb3RhdGUoZS5yb3RhdGUqTWF0aC5QSS8xODApLGkuY3JlYXRlQ2FudmFzUGVuKG4pfSx2b2lkIDA9PT10aGlzLnN0eWxlLmZpbGwmJih0aGlzLnN0eWxlLmZpbGw9IiM0NDQiKX1yZXR1cm4gdC5wcm90b3R5cGUuY3JlYXRlQ2FudmFzUGVuPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJue2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0LnJlc3RvcmUoKX0sd3JpdGU6ZnVuY3Rpb24obixpLHIsbyxhKXtvKz1pKmVfdC5Xcml0ZXIuWE9mZnNldEZhY3RvcltyXSx0LnRleHRBbGlnbj1yLG51bGwhPWUuc3R5bGUuZm9udCYmKHQuZm9udD1lLnN0eWxlLmZvbnQpLG51bGwhPWUuc3R5bGUuZmlsbCYmKHQuZmlsbFN0eWxlPWUuc3R5bGUuZmlsbCx0LmZpbGxUZXh0KG4sbyxhKSksbnVsbCE9ZS5zdHlsZS5zdHJva2UmJih0LnN0cm9rZVN0eWxlPWUuc3R5bGUuZmlsbCx0LnN0cm9rZVRleHQobixvLGEpKX19fSx0fSkoKTt0X3QuQ2FudmFzQ29udGV4dD1uX3QsKGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7Zm9yKHZhciBuIGluIGUpdC5oYXNPd25Qcm9wZXJ0eShuKXx8KHRbbl09ZVtuXSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUoTmd0KSxlKHRfdCksZShZZ3QpfSkoUGd0KTt2YXIgaV90PXt9LHJfdD17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkocl90LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgb190PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5ydWxlcj1udWxsIT10LmNyZWF0ZVJ1bGVyP3QuY3JlYXRlUnVsZXIoKTp0fXJldHVybiB0LnByb3RvdHlwZS5tZWFzdXJlPWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT10LkhFSUdIVF9URVhUKSx0aGlzLnJ1bGVyKGUpfSx0fSkoKTtvX3QuSEVJR0hUX1RFWFQ9ImJkcHFsIixyX3QuQWJzdHJhY3RNZWFzdXJlcj1vX3Q7dmFyIGFfdD17fSxzX3Q9e30sbF90PXt9LGNfdD1TZSYmU2UuX19leHRlbmRzfHwoZnVuY3Rpb24oKXt2YXIgdD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX07cmV0dXJuIGZ1bmN0aW9uKGUsbil7ZnVuY3Rpb24gaSgpe3RoaXMuY29uc3RydWN0b3I9ZX10KGUsbiksZS5wcm90b3R5cGU9bnVsbD09PW4/T2JqZWN0LmNyZWF0ZShuKTooaS5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IGkpfX0pKCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGxfdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHVfdD1yX3QsaF90PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUsbil7dm9pZCAwPT09biYmKG49ITEpO3ZhciBpPXQuY2FsbCh0aGlzLGUpfHx0aGlzO3JldHVybiBpLnVzZUd1YXJkcz1uLGl9cmV0dXJuIGNfdChlLHQpLGUucHJvdG90eXBlLl9hZGRHdWFyZHM9ZnVuY3Rpb24odCl7cmV0dXJuIHVfdC5BYnN0cmFjdE1lYXN1cmVyLkhFSUdIVF9URVhUK3QrdV90LkFic3RyYWN0TWVhc3VyZXIuSEVJR0hUX1RFWFR9LGUucHJvdG90eXBlLl9tZWFzdXJlTGluZT1mdW5jdGlvbihlLG4pe3ZvaWQgMD09PW4mJihuPSExKTt2YXIgaT10aGlzLnVzZUd1YXJkc3x8bnx8L15bXHQgXSQvLnRlc3QoZSkscj1pP3RoaXMuX2FkZEd1YXJkcyhlKTplLG89dC5wcm90b3R5cGUubWVhc3VyZS5jYWxsKHRoaXMscik7cmV0dXJuIG8ud2lkdGgtPWk/Mip0aGlzLmdldEd1YXJkV2lkdGgoKTowLG99LGUucHJvdG90eXBlLm1lYXN1cmU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih2b2lkIDA9PT10JiYodD11X3QuQWJzdHJhY3RNZWFzdXJlci5IRUlHSFRfVEVYVCksIiI9PT10LnRyaW0oKSlyZXR1cm57d2lkdGg6MCxoZWlnaHQ6MH07dmFyIG49dC50cmltKCkuc3BsaXQoIlxuIikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fbWVhc3VyZUxpbmUodCl9KSk7cmV0dXJue2hlaWdodDpuLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlLmhlaWdodH0pLDApLHdpZHRoOm4ucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLm1heCh0LGUud2lkdGgpfSksMCl9fSxlLnByb3RvdHlwZS5nZXRHdWFyZFdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PXRoaXMuZ3VhcmRXaWR0aCYmKHRoaXMuZ3VhcmRXaWR0aD10LnByb3RvdHlwZS5tZWFzdXJlLmNhbGwodGhpcykud2lkdGgpLHRoaXMuZ3VhcmRXaWR0aH0sZX0pKHVfdC5BYnN0cmFjdE1lYXN1cmVyKTtsX3QuTWVhc3VyZXI9aF90O3ZhciBkX3Q9U2UmJlNlLl9fZXh0ZW5kc3x8KGZ1bmN0aW9uKCl7dmFyIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9O3JldHVybiBmdW5jdGlvbihlLG4pe2Z1bmN0aW9uIGkoKXt0aGlzLmNvbnN0cnVjdG9yPWV9dChlLG4pLGUucHJvdG90eXBlPW51bGw9PT1uP09iamVjdC5jcmVhdGUobik6KGkucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyBpKX19KSgpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShzX3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBwX3Q9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiBkX3QoZSx0KSxlLnByb3RvdHlwZS5fbWVhc3VyZUNoYXJhY3Rlcj1mdW5jdGlvbihlKXtyZXR1cm4gdC5wcm90b3R5cGUuX21lYXN1cmVMaW5lLmNhbGwodGhpcyxlKX0sZS5wcm90b3R5cGUuX21lYXN1cmVMaW5lPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10LnNwbGl0KCIiKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9tZWFzdXJlQ2hhcmFjdGVyKHQpfSkpO3JldHVybntoZWlnaHQ6bi5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGgubWF4KHQsZS5oZWlnaHQpfSksMCksd2lkdGg6bi5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZS53aWR0aH0pLDApfX0sZX0pKGxfdC5NZWFzdXJlcik7c190LkNoYXJhY3Rlck1lYXN1cmVyPXBfdDt2YXIgZl90PVNlJiZTZS5fX2V4dGVuZHN8fChmdW5jdGlvbigpe3ZhciB0PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfTtyZXR1cm4gZnVuY3Rpb24oZSxuKXtmdW5jdGlvbiBpKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfXQoZSxuKSxlLnByb3RvdHlwZT1udWxsPT09bj9PYmplY3QuY3JlYXRlKG4pOihpLnByb3RvdHlwZT1uLnByb3RvdHlwZSxuZXcgaSl9fSkoKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoYV90LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbV90PU9ndCxnX3Q9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxuKXt2YXIgaT10LmNhbGwodGhpcyxlLG4pfHx0aGlzO3JldHVybiBpLmNhY2hlPW5ldyBtX3QuQ2FjaGUoKGZ1bmN0aW9uKHQpe3JldHVybiBpLl9tZWFzdXJlQ2hhcmFjdGVyTm90RnJvbUNhY2hlKHQpfSkpLGl9cmV0dXJuIGZfdChlLHQpLGUucHJvdG90eXBlLl9tZWFzdXJlQ2hhcmFjdGVyTm90RnJvbUNhY2hlPWZ1bmN0aW9uKGUpe3JldHVybiB0LnByb3RvdHlwZS5fbWVhc3VyZUNoYXJhY3Rlci5jYWxsKHRoaXMsZSl9LGUucHJvdG90eXBlLl9tZWFzdXJlQ2hhcmFjdGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNhY2hlLmdldCh0KX0sZS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLmNhY2hlLmNsZWFyKCl9LGV9KShzX3QuQ2hhcmFjdGVyTWVhc3VyZXIpO2FfdC5DYWNoZUNoYXJhY3Rlck1lYXN1cmVyPWdfdDt2YXIgX190PXt9LHlfdD1TZSYmU2UuX19leHRlbmRzfHwoZnVuY3Rpb24oKXt2YXIgdD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX07cmV0dXJuIGZ1bmN0aW9uKGUsbil7ZnVuY3Rpb24gaSgpe3RoaXMuY29uc3RydWN0b3I9ZX10KGUsbiksZS5wcm90b3R5cGU9bnVsbD09PW4/T2JqZWN0LmNyZWF0ZShuKTooaS5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IGkpfX0pKCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KF9fdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHZfdD1PZ3QsYl90PXJfdCx4X3Q9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dmFyIG49dC5jYWxsKHRoaXMsZSl8fHRoaXM7cmV0dXJuIG4uZGltQ2FjaGU9bmV3IHZfdC5DYWNoZSgoZnVuY3Rpb24odCl7cmV0dXJuIG4uX21lYXN1cmVOb3RGcm9tQ2FjaGUodCl9KSksbn1yZXR1cm4geV90KGUsdCksZS5wcm90b3R5cGUuX21lYXN1cmVOb3RGcm9tQ2FjaGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHQucHJvdG90eXBlLm1lYXN1cmUuY2FsbCh0aGlzLGUpfSxlLnByb3RvdHlwZS5tZWFzdXJlPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10JiYodD1iX3QuQWJzdHJhY3RNZWFzdXJlci5IRUlHSFRfVEVYVCksdGhpcy5kaW1DYWNoZS5nZXQodCl9LGUucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5kaW1DYWNoZS5jbGVhcigpLHQucHJvdG90eXBlLnJlc2V0LmNhbGwodGhpcyl9LGV9KShhX3QuQ2FjaGVDaGFyYWN0ZXJNZWFzdXJlcik7X190LkNhY2hlTWVhc3VyZXI9eF90LChmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe2Zvcih2YXIgbiBpbiBlKXQuaGFzT3duUHJvcGVydHkobil8fCh0W25dPWVbbl0pfU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlKHJfdCksZShhX3QpLGUoX190KSxlKHNfdCksZShsX3QpfSkoaV90KTt2YXIgd190PXt9LFNfdD17fSxNX3Q9e30sRV90PXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShFX3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBUX3Q9T2d0LENfdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5tYXhMaW5lcygxLzApLHRoaXMudGV4dFRyaW1taW5nKCJlbGxpcHNpcyIpLHRoaXMuYWxsb3dCcmVha2luZ1dvcmRzKCExKSx0aGlzLl90b2tlbml6ZXI9bmV3IFRfdC5Ub2tlbml6ZXIsdGhpcy5fYnJlYWtpbmdDaGFyYWN0ZXI9Ii0ifXJldHVybiB0LnByb3RvdHlwZS5tYXhMaW5lcz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9tYXhMaW5lczoodGhpcy5fbWF4TGluZXM9dCx0aGlzKX0sdC5wcm90b3R5cGUudGV4dFRyaW1taW5nPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3RleHRUcmltbWluZztpZigiZWxsaXBzaXMiIT09dCYmIm5vbmUiIT09dCl0aHJvdyBuZXcgRXJyb3IodCsiIC0gdW5zdXBwb3J0ZWQgdGV4dCB0cmltbWluZyBvcHRpb24uIik7cmV0dXJuIHRoaXMuX3RleHRUcmltbWluZz10LHRoaXN9LHQucHJvdG90eXBlLmFsbG93QnJlYWtpbmdXb3Jkcz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9hbGxvd0JyZWFraW5nV29yZHM6KHRoaXMuX2FsbG93QnJlYWtpbmdXb3Jkcz10LHRoaXMpfSx0LnByb3RvdHlwZS53cmFwPWZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByPXRoaXM7dm9pZCAwPT09aSYmKGk9MS8wKTt2YXIgbz17bm9Ccm9rZVdvcmRzOjAsbm9MaW5lczowLG9yaWdpbmFsVGV4dDp0LHRydW5jYXRlZFRleHQ6IiIsd3JhcHBlZFRleHQ6IiJ9LGE9e2F2YWlsYWJsZUxpbmVzOk1hdGgubWluKE1hdGguZmxvb3IoaS9lLm1lYXN1cmUoKS5oZWlnaHQpLHRoaXMuX21heExpbmVzKSxhdmFpbGFibGVXaWR0aDpuLGNhbkZpdFRleHQ6ITAsY3VycmVudExpbmU6IiIsd3JhcHBpbmc6b30scz10LnNwbGl0KCJcbiIpO3JldHVybiBzLnJlZHVjZSgoZnVuY3Rpb24odCxuLGkpe3JldHVybiByLmJyZWFrTGluZVRvRml0V2lkdGgodCxuLGkhPT1zLmxlbmd0aC0xLGUpfSksYSkud3JhcHBpbmd9LHQucHJvdG90eXBlLmJyZWFrTGluZVRvRml0V2lkdGg9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dGhpczt0LmNhbkZpdFRleHR8fCIiPT09dC53cmFwcGluZy50cnVuY2F0ZWRUZXh0fHwodC53cmFwcGluZy50cnVuY2F0ZWRUZXh0Kz0iXG4iKSx0PXRoaXMuX3Rva2VuaXplci50b2tlbml6ZShlKS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIud3JhcE5leHRUb2tlbihlLHQsaSl9KSx0KTt2YXIgbz1UX3QuU3RyaW5nTWV0aG9kcy50cmltRW5kKHQuY3VycmVudExpbmUpO3JldHVybiB0LndyYXBwaW5nLm5vTGluZXMrPSsoIiIhPT1vKSx0LndyYXBwaW5nLm5vTGluZXM9PT10LmF2YWlsYWJsZUxpbmVzJiYibm9uZSIhPT10aGlzLl90ZXh0VHJpbW1pbmcmJm4/dC5jYW5GaXRUZXh0PSExOnQud3JhcHBpbmcud3JhcHBlZFRleHQrPW8sdC5jdXJyZW50TGluZT0iXG4iLHR9LHQucHJvdG90eXBlLmNhbkZpdFRva2VuPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzLHI9dC5zcGxpdCgiIikubWFwKChmdW5jdGlvbihlLG4pe3JldHVybiBuIT09dC5sZW5ndGgtMT9lK2kuX2JyZWFraW5nQ2hhcmFjdGVyOmV9KSk7cmV0dXJuIG4ubWVhc3VyZSh0KS53aWR0aDw9ZXx8ci5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIG4ubWVhc3VyZSh0KS53aWR0aDw9ZX0pKX0sdC5wcm90b3R5cGUuYWRkRWxsaXBzaXM9ZnVuY3Rpb24odCxlLG4pe2lmKCJub25lIj09PXRoaXMuX3RleHRUcmltbWluZylyZXR1cm57cmVtYWluaW5nVG9rZW46IiIsd3JhcHBlZFRva2VuOnR9O3ZhciBpPXQuc3Vic3RyaW5nKDApLnRyaW0oKSxyPW4ubWVhc3VyZShpKS53aWR0aCxvPW4ubWVhc3VyZSgiLi4uIikud2lkdGgsYT10Lmxlbmd0aD4wJiYiXG4iPT09dFswXT8iXG4iOiIiO2lmKGU8PW8pe3ZhciBzPU1hdGguZmxvb3IoZS8oby8zKSk7cmV0dXJue3JlbWFpbmluZ1Rva2VuOnQsd3JhcHBlZFRva2VuOmErIi4uLiIuc3Vic3RyKDAscyl9fWZvcig7citvPmU7KWk9VF90LlN0cmluZ01ldGhvZHMudHJpbUVuZChpLnN1YnN0cigwLGkubGVuZ3RoLTEpKSxyPW4ubWVhc3VyZShpKS53aWR0aDtyZXR1cm57cmVtYWluaW5nVG9rZW46VF90LlN0cmluZ01ldGhvZHMudHJpbUVuZCh0LnN1YnN0cmluZyhpLmxlbmd0aCksIi0iKS50cmltKCksd3JhcHBlZFRva2VuOmEraSsiLi4uIn19LHQucHJvdG90eXBlLndyYXBOZXh0VG9rZW49ZnVuY3Rpb24odCxlLG4pe2lmKCFlLmNhbkZpdFRleHR8fGUuYXZhaWxhYmxlTGluZXM9PT1lLndyYXBwaW5nLm5vTGluZXN8fCF0aGlzLmNhbkZpdFRva2VuKHQsZS5hdmFpbGFibGVXaWR0aCxuKSlyZXR1cm4gdGhpcy5maW5pc2hXcmFwcGluZyh0LGUsbik7Zm9yKHZhciBpPXQ7aTspe3ZhciByPXRoaXMuYnJlYWtUb2tlblRvRml0SW5XaWR0aChpLGUuY3VycmVudExpbmUsZS5hdmFpbGFibGVXaWR0aCxuKTtpZihlLmN1cnJlbnRMaW5lPXIubGluZSxudWxsIT0oaT1yLnJlbWFpbmluZ1Rva2VuKSl7aWYoZS53cmFwcGluZy5ub0Jyb2tlV29yZHMrPStyLmJyZWFrV29yZCwrK2Uud3JhcHBpbmcubm9MaW5lcyxlLmF2YWlsYWJsZUxpbmVzPT09ZS53cmFwcGluZy5ub0xpbmVzKXt2YXIgbz10aGlzLmFkZEVsbGlwc2lzKGUuY3VycmVudExpbmUsZS5hdmFpbGFibGVXaWR0aCxuKTtyZXR1cm4gZS53cmFwcGluZy53cmFwcGVkVGV4dCs9by53cmFwcGVkVG9rZW4sZS53cmFwcGluZy50cnVuY2F0ZWRUZXh0Kz1vLnJlbWFpbmluZ1Rva2VuK2ksZS5jdXJyZW50TGluZT0iXG4iLGV9ZS53cmFwcGluZy53cmFwcGVkVGV4dCs9VF90LlN0cmluZ01ldGhvZHMudHJpbUVuZChlLmN1cnJlbnRMaW5lKSxlLmN1cnJlbnRMaW5lPSJcbiJ9fXJldHVybiBlfSx0LnByb3RvdHlwZS5maW5pc2hXcmFwcGluZz1mdW5jdGlvbih0LGUsbil7aWYoZS5jYW5GaXRUZXh0JiZlLmF2YWlsYWJsZUxpbmVzIT09ZS53cmFwcGluZy5ub0xpbmVzJiYibm9uZSIhPT10aGlzLl90ZXh0VHJpbW1pbmcpe3ZhciBpPXRoaXMuYWRkRWxsaXBzaXMoZS5jdXJyZW50TGluZSt0LGUuYXZhaWxhYmxlV2lkdGgsbik7ZS53cmFwcGluZy53cmFwcGVkVGV4dCs9aS53cmFwcGVkVG9rZW4sZS53cmFwcGluZy50cnVuY2F0ZWRUZXh0Kz1pLnJlbWFpbmluZ1Rva2VuLGUud3JhcHBpbmcubm9Ccm9rZVdvcmRzKz0rKGkucmVtYWluaW5nVG9rZW4ubGVuZ3RoPHQubGVuZ3RoKSxlLndyYXBwaW5nLm5vTGluZXMrPSsoaS53cmFwcGVkVG9rZW4ubGVuZ3RoPjApLGUuY3VycmVudExpbmU9IiJ9ZWxzZSBlLndyYXBwaW5nLnRydW5jYXRlZFRleHQrPXQ7cmV0dXJuIGUuY2FuRml0VGV4dD0hMSxlfSx0LnByb3RvdHlwZS5icmVha1Rva2VuVG9GaXRJbldpZHRoPWZ1bmN0aW9uKHQsZSxuLGkscil7aWYodm9pZCAwPT09ciYmKHI9dGhpcy5fYnJlYWtpbmdDaGFyYWN0ZXIpLGkubWVhc3VyZShlK3QpLndpZHRoPD1uKXJldHVybnticmVha1dvcmQ6ITEsbGluZTplK3QscmVtYWluaW5nVG9rZW46bnVsbH07aWYoIiI9PT10LnRyaW0oKSlyZXR1cm57YnJlYWtXb3JkOiExLGxpbmU6ZSxyZW1haW5pbmdUb2tlbjoiIn07aWYoIXRoaXMuX2FsbG93QnJlYWtpbmdXb3JkcyYmIiIhPT1lLnRyaW0oKSlyZXR1cm57YnJlYWtXb3JkOiExLGxpbmU6ZSxyZW1haW5pbmdUb2tlbjp0fTtmb3IodmFyIG89MDtvPHQubGVuZ3RoJiZpLm1lYXN1cmUoZSt0LnN1YnN0cmluZygwLG8rMSkrcikud2lkdGg8PW47KSsrbzt2YXIgYT0iIjtyZXR1cm4gbz4wJiYoYT1yKSx7YnJlYWtXb3JkOm8+MCxsaW5lOmUrdC5zdWJzdHJpbmcoMCxvKSthLHJlbWFpbmluZ1Rva2VuOnQuc3Vic3RyaW5nKG8pfX0sdH0pKCk7RV90LldyYXBwZXI9Q190O3ZhciBBX3Q9U2UmJlNlLl9fZXh0ZW5kc3x8KGZ1bmN0aW9uKCl7dmFyIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9O3JldHVybiBmdW5jdGlvbihlLG4pe2Z1bmN0aW9uIGkoKXt0aGlzLmNvbnN0cnVjdG9yPWV9dChlLG4pLGUucHJvdG90eXBlPW51bGw9PT1uP09iamVjdC5jcmVhdGUobik6KGkucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyBpKX19KSgpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShNX3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBrX3Q9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiBBX3QoZSx0KSxlLnByb3RvdHlwZS53cmFwPWZ1bmN0aW9uKG4saSxyLG8pe3ZhciBhPXRoaXM7aWYodm9pZCAwPT09byYmKG89MS8wKSxuLnNwbGl0KCJcbiIpLmxlbmd0aD4xKXRocm93IG5ldyBFcnJvcigiU2luZ2xlTGluZVdyYXBwZXIgaXMgZGVzaWduZWQgdG8gd29yayBvbmx5IG9uIHNpbmdsZSBsaW5lIik7dmFyIHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHQucHJvdG90eXBlLndyYXAuY2FsbChhLG4saSxlLG8pfSxsPXMocik7aWYobC5ub0xpbmVzPDIpcmV0dXJuIGw7Zm9yKHZhciBjPTAsdT1yLGg9MDtoPGUuTk9fV1JBUF9JVEVSQVRJT05TJiZ1PmM7KytoKXt2YXIgZD0odStjKS8yLHA9cyhkKTt0aGlzLmFyZVNhbWVSZXN1bHRzKGwscCk/KHU9ZCxsPXApOmM9ZH1yZXR1cm4gbH0sZS5wcm90b3R5cGUuYXJlU2FtZVJlc3VsdHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5ub0xpbmVzPT09ZS5ub0xpbmVzJiZ0LnRydW5jYXRlZFRleHQ9PT1lLnRydW5jYXRlZFRleHR9LGV9KShFX3QuV3JhcHBlcik7a190Lk5PX1dSQVBfSVRFUkFUSU9OUz01LE1fdC5TaW5nbGVMaW5lV3JhcHBlcj1rX3QsKGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7Zm9yKHZhciBuIGluIGUpdC5oYXNPd25Qcm9wZXJ0eShuKXx8KHRbbl09ZVtuXSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUoTV90KSxlKEVfdCl9KShTX3QpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3X3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBMX3Q9UGd0LFBfdD1pX3QsTl90PVNfdCxJX3Q9SWd0LFJfdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuY29udGV4dD10LHRoaXMubWVhc3VyZXI9bmV3IFBfdC5DYWNoZU1lYXN1cmVyKHRoaXMuY29udGV4dCksdGhpcy53cmFwcGVyPW5ldyBOX3QuV3JhcHBlcix0aGlzLndyaXRlcj1uZXcgSV90LldyaXRlcih0aGlzLm1lYXN1cmVyLHRoaXMuY29udGV4dCx0aGlzLndyYXBwZXIpfXJldHVybiB0LnN2Zz1mdW5jdGlvbihlLG4saSl7cmV0dXJuIG5ldyB0KG5ldyBMX3QuU3ZnQ29udGV4dChlLG4saSkpfSx0LmNhbnZhcz1mdW5jdGlvbihlLG4saSl7cmV0dXJuIG5ldyB0KG5ldyBMX3QuQ2FudmFzQ29udGV4dChlLG4saSkpfSx0Lmh0bWw9ZnVuY3Rpb24oZSxuLGkpe3JldHVybiBuZXcgdChuZXcgTF90Lkh0bWxDb250ZXh0KGUsbixpKSl9LHQucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKHQsZSxuLGkscil7dGhpcy53cml0ZXIud3JpdGUodCxlLG4saSxyKX0sdC5wcm90b3R5cGUuY2xlYXJNZWFzdXJlckNhY2hlPWZ1bmN0aW9uKCl7dGhpcy5tZWFzdXJlci5yZXNldCgpfSx0fSkoKTt3X3QuVHlwZXNldHRlcj1SX3QsKGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7Zm9yKHZhciBuIGluIGUpdC5oYXNPd25Qcm9wZXJ0eShuKXx8KHRbbl09ZVtuXSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUoUGd0KSxlKGlfdCksZSh3X3QpLGUoT2d0KSxlKFNfdCksZShJZ3QpfSkoTGd0KTt2YXIgT190PXt9LHpfdD17fSxEX3Q9e30sQl90PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkoQl90LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgSF90PXdwdCxGX3Q9d2luZG93LkFycmF5O0JfdC5hZGQ9ZnVuY3Rpb24gVl90KHQsZSl7aWYodC5sZW5ndGghPT1lLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImF0dGVtcHRlZCB0byBhZGQgYXJyYXlzIG9mIHVuZXF1YWwgbGVuZ3RoIik7cmV0dXJuIHQubWFwKChmdW5jdGlvbihuLGkpe3JldHVybiB0W2ldK2VbaV19KSl9LEJfdC51bmlxPWZ1bmN0aW9uIFVfdCh0KXt2YXIgZT1IX3Quc2V0KCksbj1bXTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXtlLmhhcyhTdHJpbmcodCkpfHwoZS5hZGQoU3RyaW5nKHQpKSxuLnB1c2godCkpfSkpLG59LEJfdC5mbGF0dGVuPWZ1bmN0aW9uIGpfdCh0KXtyZXR1cm4gRl90LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sdCl9LEJfdC5jcmVhdGVGaWxsZWRBcnJheT1mdW5jdGlvbiBHX3QodCxlKXtmb3IodmFyIG49W10saT0wO2k8ZTtpKyspbltpXT0iZnVuY3Rpb24iPT10eXBlb2YgdD90KGkpOnQ7cmV0dXJuIG59O3ZhciBXX3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KFdfdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHFfdD13cHQsWV90PXdpbmRvdy5NYXRoO2Z1bmN0aW9uIFhfdCh0KXt2YXIgZT1xX3QucmdiKHQpLG49ZnVuY3Rpb24odCl7cmV0dXJuKHQvPTI1NSk8PS4wMzkyOD90LzEyLjkyOllfdC5wb3coKHQrLjA1NSkvMS4wNTUsMi40KX07cmV0dXJuLjIxMjYqbihlLnIpKy43MTUyKm4oZS5nKSsuMDcyMipuKGUuYil9V190LmNvbnRyYXN0PWZ1bmN0aW9uICRfdCh0LGUpe3ZhciBuPVhfdCh0KSsuMDUsaT1YX3QoZSkrLjA1O3JldHVybiBuPmk/bi9pOmkvbn0sV190LmxpZ2h0ZW5Db2xvcj1mdW5jdGlvbiBLX3QodCxlKXtyZXR1cm4gcV90LmNvbG9yKHQpLmJyaWdodGVyKGUpLnJnYigpLnRvU3RyaW5nKCl9LFdfdC5jb2xvclRlc3Q9ZnVuY3Rpb24gWl90KHQsZSl7dC5jbGFzc2VkKGUsITApO3ZhciBuPXQuc3R5bGUoImJhY2tncm91bmQtY29sb3IiKTtpZigidHJhbnNwYXJlbnQiPT09bilyZXR1cm4gbnVsbDt2YXIgaT0vXCgoLispXCkvLmV4ZWMobik7aWYoIWkpcmV0dXJuIG51bGw7dmFyIHI9aVsxXS5zcGxpdCgiLCIpLm1hcCgoZnVuY3Rpb24odCl7dmFyIGU9K3Qsbj1lLnRvU3RyaW5nKDE2KTtyZXR1cm4gZTwxNj8iMCIrbjpufSkpO2lmKDQ9PT1yLmxlbmd0aCYmIjAwIj09PXJbM10pcmV0dXJuIG51bGw7dmFyIG89IiMiK3Iuam9pbigiIik7cmV0dXJuIHQuY2xhc3NlZChlLCExKSxvfTt2YXIgSl90PXt9OyEoZnVuY3Rpb24odCl7Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT13cHQsbj13aW5kb3cuTWF0aDtmdW5jdGlvbiBpKHQpe3ZhciBlO3RyeXtlPXQubm9kZSgpLmdldEJCb3goKX1jYXRjaCh0KXtlPXt4OjAseTowLHdpZHRoOjAsaGVpZ2h0OjB9fXJldHVybiBlfXQuY29udGFpbnM9ZnVuY3Rpb24gcih0LGUpe2Zvcih2YXIgbj1lO251bGwhPW4mJm4hPT10OyluPW4ucGFyZW50Tm9kZTtyZXR1cm4gbj09PXR9LHQuZWxlbWVudEJCb3g9aSx0LmVudGl0eUJvdW5kcz1mdW5jdGlvbiBvKHQpe2lmKHQgaW5zdGFuY2VvZiBTVkdFbGVtZW50KXJldHVybiBpKGUuc2VsZWN0KHQpKTtpZih0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpe3ZhciBuPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJue3g6bi5sZWZ0LHk6bi50b3Asd2lkdGg6bi53aWR0aCxoZWlnaHQ6bi5oZWlnaHR9fXJldHVybnt4OjAseTowLHdpZHRoOjAsaGVpZ2h0OjB9fSx0LlNDUkVFTl9SRUZSRVNIX1JBVEVfTUlMTElTRUNPTkRTPTFlMy82MCx0LnJlcXVlc3RBbmltYXRpb25GcmFtZVBvbHlmaWxsPWZ1bmN0aW9uIGEoZSl7bnVsbCE9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZT93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpOnNldFRpbWVvdXQoZSx0LlNDUkVFTl9SRUZSRVNIX1JBVEVfTUlMTElTRUNPTkRTKX0sdC5lbGVtZW50V2lkdGg9ZnVuY3Rpb24gcyh0KXt2YXIgbj10IGluc3RhbmNlb2YgZS5zZWxlY3Rpb24/dC5ub2RlKCk6dCxpPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG4pO3JldHVybiBtKGksIndpZHRoIikrbShpLCJwYWRkaW5nLWxlZnQiKSttKGksInBhZGRpbmctcmlnaHQiKSttKGksImJvcmRlci1sZWZ0LXdpZHRoIikrbShpLCJib3JkZXItcmlnaHQtd2lkdGgiKX0sdC5lbGVtZW50SGVpZ2h0PWZ1bmN0aW9uIGwodCl7dmFyIG49dCBpbnN0YW5jZW9mIGUuc2VsZWN0aW9uP3Qubm9kZSgpOnQsaT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShuKTtyZXR1cm4gbShpLCJoZWlnaHQiKSttKGksInBhZGRpbmctdG9wIikrbShpLCJwYWRkaW5nLWJvdHRvbSIpK20oaSwiYm9yZGVyLXRvcC13aWR0aCIpK20oaSwiYm9yZGVyLWJvdHRvbS13aWR0aCIpfTt2YXIgYz0iKD86Wy0rXT9bMC05XSpcXC4/WzAtOV0rKSIsdT0iKD86KD86XFxzKyw/XFxzKil8KD86LFxccyopKSIsaD1uZXcgUmVnRXhwKCJ0cmFuc2xhdGVcXHMqXFwoXFxzKigiK2MrIikoPzoiK3UrIigiK2MrIikpPyIrIlxccypcXCkiKSxkPW5ldyBSZWdFeHAoInJvdGF0ZVxccypcXChcXHMqKCIrYysiKSIrIlxccypcXCkiKSxwPW5ldyBSZWdFeHAoInNjYWxlXFxzKlxcKFxccyooIitjKyIpKD86Iit1KyIoIitjKyIpKT8iKyJcXHMqXFwpIik7ZnVuY3Rpb24gZih0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpe3JldHVybnttaW46dCxtYXg6dH19aWYodCBpbnN0YW5jZW9mIE9iamVjdCYmIm1pbiJpbiB0JiYibWF4ImluIHQpcmV0dXJuIHQ7dGhyb3cgbmV3IEVycm9yKCJpbnB1dCAnIit0KyInIGNhbid0IGJlIHBhcnNlZCBhcyBhbiBSYW5nZSIpfWZ1bmN0aW9uIG0odCxlKXt2YXIgbj10LmdldFByb3BlcnR5VmFsdWUoZSk7cmV0dXJuIHBhcnNlRmxvYXQobil8fDB9dC5nZXRUcmFuc2xhdGVWYWx1ZXM9ZnVuY3Rpb24gZyh0KXt2YXIgZT1oLmV4ZWModC5hdHRyKCJ0cmFuc2Zvcm0iKSk7aWYobnVsbCE9ZSl7dmFyIG49ZVsyXTtyZXR1cm5bK2VbMV0sKyh2b2lkIDA9PT1uPzA6bildfXJldHVyblswLDBdfSx0LmdldFJvdGF0ZT1mdW5jdGlvbiBfKHQpe3ZhciBlPWQuZXhlYyh0LmF0dHIoInRyYW5zZm9ybSIpKTtyZXR1cm4gbnVsbCE9ZT8rZVsxXTowfSx0LmdldFNjYWxlVmFsdWVzPWZ1bmN0aW9uIHkodCl7dmFyIGU9cC5leGVjKHQuYXR0cigidHJhbnNmb3JtIikpO2lmKG51bGwhPWUpe3ZhciBuPWVbMV0saT1lWzJdO3JldHVyblsrbixudWxsPT1pPytuOitpXX1yZXR1cm5bMCwwXX0sdC5jbGllbnRSZWN0c092ZXJsYXA9ZnVuY3Rpb24gdih0LGUpe3JldHVybiEobi5mbG9vcih0LnJpZ2h0KTw9bi5jZWlsKGUubGVmdCkpJiYoIShuLmNlaWwodC5sZWZ0KT49bi5mbG9vcihlLnJpZ2h0KSkmJighKG4uZmxvb3IodC5ib3R0b20pPD1uLmNlaWwoZS50b3ApKSYmIShuLmNlaWwodC50b3ApPj1uLmZsb29yKGUuYm90dG9tKSkpKX0sdC5leHBhbmRSZWN0PWZ1bmN0aW9uIGIodCxlKXtyZXR1cm57bGVmdDp0LmxlZnQtZSx0b3A6dC50b3AtZSxyaWdodDp0LnJpZ2h0K2UsYm90dG9tOnQuYm90dG9tK2Usd2lkdGg6dC53aWR0aCsyKmUsaGVpZ2h0OnQuaGVpZ2h0KzIqZX19LHQuY2xpZW50UmVjdEluc2lkZT1mdW5jdGlvbiB4KHQsZSl7cmV0dXJuIG4uZmxvb3IoZS5sZWZ0KTw9bi5jZWlsKHQubGVmdCkmJm4uZmxvb3IoZS50b3ApPD1uLmNlaWwodC50b3ApJiZuLmZsb29yKHQucmlnaHQpPD1uLmNlaWwoZS5yaWdodCkmJm4uZmxvb3IodC5ib3R0b20pPD1uLmNlaWwoZS5ib3R0b20pfSx0LmludGVyc2VjdHNCQm94PWZ1bmN0aW9uIHcodCxlLG4saSl7dm9pZCAwPT09aSYmKGk9LjUpO3ZhciByPWYodCksbz1mKGUpO3JldHVybiBuLngrbi53aWR0aD49ci5taW4taSYmbi54PD1yLm1heCtpJiZuLnkrbi5oZWlnaHQ+PW8ubWluLWkmJm4ueTw9by5tYXgraX0sdC5nZXRIdG1sRWxlbWVudEFuY2VzdG9ycz1mdW5jdGlvbiBTKHQpe2Zvcih2YXIgZT1bXTt0JiZ0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQ7KWUucHVzaCh0KSx0PXQucGFyZW50RWxlbWVudDtyZXR1cm4gZX0sdC5nZXRFbGVtZW50VHJhbnNmb3JtPWZ1bmN0aW9uIE0odCl7dmFyIGU9d2luZG93LmdldENvbXB1dGVkU3R5bGUodCxudWxsKTtyZXR1cm4oZnVuY3Rpb24gbih0KXtpZihudWxsPT10fHwibm9uZSI9PT10KXJldHVybiBudWxsO3ZhciBlPXQubWF0Y2goRSk7aWYobnVsbD09ZXx8ZS5sZW5ndGg8MilyZXR1cm4gbnVsbDt2YXIgbj1lWzFdLnNwbGl0KFQpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHBhcnNlRmxvYXQodCl9KSk7aWYoNiE9bi5sZW5ndGgpcmV0dXJuIG51bGw7cmV0dXJuIG59KShlLmdldFByb3BlcnR5VmFsdWUoIi13ZWJraXQtdHJhbnNmb3JtIil8fGUuZ2V0UHJvcGVydHlWYWx1ZSgiLW1vei10cmFuc2Zvcm0iKXx8ZS5nZXRQcm9wZXJ0eVZhbHVlKCItbXMtdHJhbnNmb3JtIil8fGUuZ2V0UHJvcGVydHlWYWx1ZSgiLW8tdHJhbnNmb3JtIil8fGUuZ2V0UHJvcGVydHlWYWx1ZSgidHJhbnNmb3JtIikpfTt2YXIgRT0vXm1hdHJpeFwoKFteKV0rKVwpJC8sVD0vWywgXSsvfSkoSl90KTt2YXIgUV90PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShRX3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB0eXQ9d3B0LGV5dD1KX3Qsbnl0PXdpbmRvdy5NYXRoLGl5dD1bMSwwLDAsMSwwLDBdO2Z1bmN0aW9uIHJ5dCh0LGUpe3JldHVyblt0WzBdKmVbMF0rdFsyXSplWzFdLHRbMV0qZVswXSt0WzNdKmVbMV0sdFswXSplWzJdK3RbMl0qZVszXSx0WzFdKmVbMl0rdFszXSplWzNdLHRbMF0qZVs0XSt0WzJdKmVbNV0rdFs0XSx0WzFdKmVbNF0rdFszXSplWzVdK3RbNV1dfWZ1bmN0aW9uIG95dCh0LGUpe3JldHVyblt0WzBdLHRbMV0sdFsyXSx0WzNdLHRbMF0qZVswXSt0WzJdKmVbMV0rdFs0XSx0WzFdKmVbMF0rdFszXSplWzFdK3RbNV1dfWZ1bmN0aW9uIGF5dCh0KXt2YXIgZT10WzBdKnRbM10tdFsxXSp0WzJdO2lmKDA9PT1lKXRocm93IG5ldyBFcnJvcigic2luZ3VsYXIgbWF0cml4Iik7dmFyIG49MS9lO3JldHVybltuKnRbM10sbiotdFsxXSxuKi10WzJdLG4qdFswXSxuKigtdFszXSp0WzRdK3RbMl0qdFs1XSksbioodFsxXSp0WzRdKy10WzBdKnRbNV0pXX1RX3QuaW5SYW5nZT1mdW5jdGlvbiBzeXQodCxlLG4pe3JldHVybiBueXQubWluKGUsbik8PXQmJnQ8PW55dC5tYXgoZSxuKX0sUV90LmNsYW1wPWZ1bmN0aW9uIGx5dCh0LGUsbil7cmV0dXJuIG55dC5taW4obnl0Lm1heChlLHQpLG4pfSxRX3QubWF4PWZ1bmN0aW9uIGN5dCh0LGUsbil7dmFyIGk9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpudWxsLHI9bnVsbD09aT9lOm4sbz1udWxsPT1pP3R5dC5tYXgodCk6dHl0Lm1heCh0LGkpO3JldHVybiB2b2lkIDAhPT1vP286cn0sUV90Lm1pbj1mdW5jdGlvbiB1eXQodCxlLG4pe3ZhciBpPSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6bnVsbCxyPW51bGw9PWk/ZTpuLG89bnVsbD09aT90eXQubWluKHQpOnR5dC5taW4odCxpKTtyZXR1cm4gdm9pZCAwIT09bz9vOnJ9LFFfdC5pc05hTj1mdW5jdGlvbiBoeXQodCl7cmV0dXJuIHQhPXR9LFFfdC5pc1ZhbGlkTnVtYmVyPWZ1bmN0aW9uIGR5dCh0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJnQtdDwxfSxRX3QucmFuZ2U9ZnVuY3Rpb24gcHl0KHQsZSxuKXtpZih2b2lkIDA9PT1uJiYobj0xKSwwPT09bil0aHJvdyBuZXcgRXJyb3IoInN0ZXAgY2Fubm90IGJlIDAiKTtmb3IodmFyIGk9bnl0Lm1heChueXQuY2VpbCgoZS10KS9uKSwwKSxyPVtdLG89MDtvPGk7KytvKXJbb109dCtuKm87cmV0dXJuIHJ9LFFfdC5kaXN0YW5jZVNxdWFyZWQ9ZnVuY3Rpb24gZnl0KHQsZSl7cmV0dXJuIG55dC5wb3coZS55LXQueSwyKStueXQucG93KGUueC10LngsMil9LFFfdC5kZWdyZWVzVG9SYWRpYW5zPWZ1bmN0aW9uIG15dCh0KXtyZXR1cm4gdC8zNjAqbnl0LlBJKjJ9LFFfdC53aXRoaW49ZnVuY3Rpb24gZ3l0KHQsZSl7cmV0dXJuIGUudG9wTGVmdC54PD10LngmJmUuYm90dG9tUmlnaHQueD49dC54JiZlLnRvcExlZnQueTw9dC55JiZlLmJvdHRvbVJpZ2h0Lnk+PXQueX0sUV90LmJvdW5kc0ludGVyc2VjdHM9ZnVuY3Rpb24gX3l0KHQsZSxuLGkscixvLGEscyl7cmV0dXJuIHQ8PXIrYSYmcjw9dCtuJiZlPD1vK3MmJm88PWUraX0sUV90LmdldEN1bXVsYXRpdmVUcmFuc2Zvcm09ZnVuY3Rpb24geXl0KHQpe2Zvcih2YXIgZT1leXQuZ2V0SHRtbEVsZW1lbnRBbmNlc3RvcnModCksbj1peXQsaT1udWxsLHI9MCxvPWU7cjxvLmxlbmd0aDtyKyspe3ZhciBhPW9bcl0scz1leXQuZ2V0RWxlbWVudFRyYW5zZm9ybShhKTtpZihudWxsIT1zKXt2YXIgbD1hLmNsaWVudFdpZHRoLzIsYz1hLmNsaWVudEhlaWdodC8yO249b3l0KG4sW2wsY10pLG49b3l0KG49cnl0KG4sYXl0KHMpKSxbLWwsLWNdKX12YXIgdT1hLnNjcm9sbExlZnQsaD1hLnNjcm9sbFRvcDtudWxsIT09aSYmYSE9PWl8fCh1LT1hLm9mZnNldExlZnQrYS5jbGllbnRMZWZ0LGgtPWEub2Zmc2V0VG9wK2EuY2xpZW50VG9wLGk9YS5vZmZzZXRQYXJlbnQpLG49b3l0KG4sW3UsaF0pfXJldHVybiBufSxRX3QubXVsdGlwbHlNYXRyaXg9cnl0LFFfdC5wcmVtdWx0aXBseVRyYW5zbGF0ZT1mdW5jdGlvbiB2eXQodCxlKXtyZXR1cm5bZVswXSxlWzFdLGVbMl0sZVszXSxlWzRdK3RbMF0sZVs1XSt0WzFdXX0sUV90Lm11bHRpcGx5VHJhbnNsYXRlPW95dCxRX3QuaW52ZXJ0TWF0cml4PWF5dCxRX3QuYXBwbHlUcmFuc2Zvcm09ZnVuY3Rpb24gYnl0KHQsZSl7cmV0dXJue3g6dFswXSplLngrdFsyXSplLnkrdFs0XSx5OnRbMV0qZS54K3RbM10qZS55K3RbNV19fTt2YXIgeHl0PXt9LHd5dD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNy1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHd5dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFN5dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiB0LnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1NYXRoLmNlaWwodC5sZW5ndGgvMiksaT0wO2k8bjtpKyspZVswXS5pbnNlcnQodFtpXSk7Zm9yKGk9bjtpPHQubGVuZ3RoO2krKyllWzFdLmluc2VydCh0W2ldKX0sdH0pKCk7d3l0LlNwbGl0U3RyYXRlZ3lUcml2aWFsPVN5dDt2YXIgTXl0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIHQucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHQsZSl7Zm9yKHQ9dC5zbGljZSgpLHRoaXMuY2hvb3NlRmlyc3RTcGxpdCh0LGUpO3QubGVuZ3RoPjA7KXRoaXMuYWRkTmV4dCh0LGUpfSx0LnByb3RvdHlwZS5jaG9vc2VGaXJzdFNwbGl0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPTAsaT0wLHI9dC5sZW5ndGgtMSxvPXQubGVuZ3RoLTEsYT0xO2E8dC5sZW5ndGgtMTthKyspe3ZhciBzPXRbYV07cy5ib3VuZHMueGw+dFtyXS5ib3VuZHMueGw/cj1hOnMuYm91bmRzLnhoPHRbbl0uYm91bmRzLnhoJiYobj1hKSxzLmJvdW5kcy55bD50W29dLmJvdW5kcy55bD9vPWE6cy5ib3VuZHMueWg8dFtpXS5ib3VuZHMueWgmJihpPWEpfXZhciBsPU1hdGguYWJzKHRbbl0uYm91bmRzLnhoLXRbcl0uYm91bmRzLnhsKT5NYXRoLmFicyh0W2ldLmJvdW5kcy55aC10W29dLmJvdW5kcy55bCk/W24scl06W2ksb10sYz1sWzBdLHU9bFsxXTtjPT09dSYmKGM9MCx1PXQubGVuZ3RoLTEpLGVbMF0uaW5zZXJ0KHQuc3BsaWNlKE1hdGgubWF4KGMsdSksMSlbMF0pLGVbMV0uaW5zZXJ0KHQuc3BsaWNlKE1hdGgubWluKGMsdSksMSlbMF0pfSx0LnByb3RvdHlwZS5hZGROZXh0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPW51bGwsaT1udWxsLHI9bnVsbCxvPTA7bzx0Lmxlbmd0aDtvKyspe3ZhciBhPXRbb10scz1lWzBdLnVuaW9uQXJlYURpZmZlcmVuY2UoYS5ib3VuZHMpLGw9ZVsxXS51bmlvbkFyZWFEaWZmZXJlbmNlKGEuYm91bmRzKTsoczxpfHxudWxsPT1uKSYmKG49byxpPXMscj1lWzBdKSxsPGkmJihuPW8saT1sLHI9ZVsxXSl9ci5pbnNlcnQodC5zcGxpY2UobiwxKVswXSl9LHR9KSgpO3d5dC5TcGxpdFN0cmF0ZWd5TGluZWFyPU15dCwoZnVuY3Rpb24odCl7Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTctcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZSxuPW5ldyB3eXQuU3BsaXRTdHJhdGVneUxpbmVhcjtmdW5jdGlvbiBpKHQsbixpKXt2YXIgcj0xLzAsbz0xLzA7cmV0dXJuIGZ1bmN0aW9uKGEpe3ZhciBzPW4oYS5ib3VuZHMsdCksbD1pKGEuYm91bmRzLHQpO3JldHVybiBudWxsIT1hLnZhbHVlP3M8cj8ocj1zLG89bCxlLlBBU1NfQU5EX09WRVJXUklURSk6cz09PXI/ZS5QQVNTOmUuRkFJTDpzPm8/ZS5GQUlMOihvPU1hdGgubWF4KGwsbyksZS5QQVNTKX19ZnVuY3Rpb24gcih0LGUpe3JldHVybiBmdW5jdGlvbihuLGkpe3JldHVybiBlKGkuYm91bmRzLHQpLWUobi5ib3VuZHMsdCl9fSEoZnVuY3Rpb24odCl7dFt0LlBBU1M9MF09IlBBU1MiLHRbdC5GQUlMPTFdPSJGQUlMIix0W3QuUEFTU19BTkRfT1ZFUldSSVRFPTJdPSJQQVNTX0FORF9PVkVSV1JJVEUifSkoZT10LlF1ZXJ5UHJlZGljYXRlUmVzdWx0fHwodC5RdWVyeVByZWRpY2F0ZVJlc3VsdD17fSkpLHQuY3JlYXRlTWluaW1pemluZ05vZGVQcmVkaWNhdGU9aSx0LmNyZWF0ZU5vZGVTb3J0PXI7dmFyIG89KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUpe3ZvaWQgMD09PXQmJih0PTUpLHZvaWQgMD09PWUmJihlPW4pLHRoaXMubWF4Tm9kZUNoaWxkcmVuPXQsdGhpcy5zcGxpdFN0cmF0ZWd5PWUsdGhpcy5yb290PW5ldyBhKCEwKSx0aGlzLnNpemU9MH1yZXR1cm4gdC5wcm90b3R5cGUuZ2V0Um9vdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJvb3R9LHQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5yb290PW5ldyBhKCEwKSx0aGlzLnNpemU9MH0sdC5wcm90b3R5cGUuaW5zZXJ0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXRoaXMucm9vdDshbi5sZWFmOyluPW4uc3VidHJlZSh0KTt2YXIgaT1hLnZhbHVlTm9kZSh0LGUpO2ZvcihuLmluc2VydChpKSx0aGlzLnNpemUrPTE7bi5vdmVyZmxvdyh0aGlzLm1heE5vZGVDaGlsZHJlbik7KW51bGw9PShuPW4uc3BsaXQodGhpcy5zcGxpdFN0cmF0ZWd5KSkucGFyZW50JiYodGhpcy5yb290PW4pO3JldHVybiBpfSx0LnByb3RvdHlwZS5sb2NhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucXVlcnkoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmNvbnRhaW5zKHQpfSkpfSx0LnByb3RvdHlwZS5sb2NhdGVOZWFyZXN0PWZ1bmN0aW9uKHQpe3ZhciBlPWkodCxzLmRpc3RhbmNlU3F1YXJlZFRvTmVhckVkZ2Uscy5kaXN0YW5jZVNxdWFyZWRUb0ZhckVkZ2UpO3JldHVybiB0aGlzLnF1ZXJ5Tm9kZXMoZSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC52YWx1ZX0pKX0sdC5wcm90b3R5cGUubG9jYXRlTmVhcmVzdFg9ZnVuY3Rpb24odCl7dmFyIGU9aSh0LHMuYWJzb2x1dGVEaXN0YW5jZVRvTmVhckVkZ2VYLHMuYWJzb2x1dGVEaXN0YW5jZVRvRmFyRWRnZVgpLG49dGhpcy5xdWVyeU5vZGVzKGUpO3JldHVybiBuLnNvcnQocih0LHMuYWJzb2x1dGVEaXN0YW5jZVRvTmVhckVkZ2VZKSksbi5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnZhbHVlfSkpfSx0LnByb3RvdHlwZS5sb2NhdGVOZWFyZXN0WT1mdW5jdGlvbih0KXt2YXIgZT1pKHQscy5hYnNvbHV0ZURpc3RhbmNlVG9OZWFyRWRnZVkscy5hYnNvbHV0ZURpc3RhbmNlVG9GYXJFZGdlWSksbj10aGlzLnF1ZXJ5Tm9kZXMoZSk7cmV0dXJuIG4uc29ydChyKHQscy5hYnNvbHV0ZURpc3RhbmNlVG9OZWFyRWRnZVgpKSxuLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQudmFsdWV9KSl9LHQucHJvdG90eXBlLmludGVyc2VjdD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5xdWVyeSgoZnVuY3Rpb24oZSl7cmV0dXJuIHMuaXNCb3VuZHNPdmVybGFwQm91bmRzKGUsdCl9KSl9LHQucHJvdG90eXBlLmludGVyc2VjdFg9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucXVlcnkoKGZ1bmN0aW9uKGUpe3JldHVybiBzLmlzQm91bmRzT3ZlcmxhcFgoZSx0KX0pKX0sdC5wcm90b3R5cGUuaW50ZXJzZWN0WT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5xdWVyeSgoZnVuY3Rpb24oZSl7cmV0dXJuIHMuaXNCb3VuZHNPdmVybGFwWShlLHQpfSkpfSx0LnByb3RvdHlwZS5xdWVyeT1mdW5jdGlvbih0KXt2YXIgZT1bXTtpZihudWxsIT10aGlzLnJvb3QuYm91bmRzJiYhdCh0aGlzLnJvb3QuYm91bmRzKSlyZXR1cm4gZTtmb3IodmFyIG49W3RoaXMucm9vdF07bi5sZW5ndGg+MDspZm9yKHZhciBpPW4uc2hpZnQoKSxyPTA7cjxpLmVudHJpZXMubGVuZ3RoO3IrKyl7dmFyIG89aS5lbnRyaWVzW3JdO3Qoby5ib3VuZHMpJiYoaS5sZWFmP2UucHVzaChvLnZhbHVlKTpuLnB1c2gobykpfXJldHVybiBlfSx0LnByb3RvdHlwZS5xdWVyeU5vZGVzPWZ1bmN0aW9uKHQpe3ZhciBuPVtdO2lmKG51bGwhPXRoaXMucm9vdC5ib3VuZHMmJnQodGhpcy5yb290KT09PWUuRkFJTClyZXR1cm4gbjtmb3IodmFyIGk9W3RoaXMucm9vdF07aS5sZW5ndGg+MDspZm9yKHZhciByPWkuc2hpZnQoKSxvPTA7bzxyLmVudHJpZXMubGVuZ3RoO28rKyl7dmFyIGE9ci5lbnRyaWVzW29dLHM9dChhKTtzPT09ZS5QQVNTX0FORF9PVkVSV1JJVEUmJihuPVtdKSxzIT09ZS5QQVNTJiZzIT09ZS5QQVNTX0FORF9PVkVSV1JJVEV8fChyLmxlYWY/bi5wdXNoKGEpOmkucHVzaChhKSl9cmV0dXJuIG59LHR9KSgpO3QuUlRyZWU9bzt2YXIgYT0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMubGVhZj10LHRoaXMuYm91bmRzPW51bGwsdGhpcy5lbnRyaWVzPVtdLHRoaXMucGFyZW50PW51bGwsdGhpcy52YWx1ZT1udWxsfXJldHVybiB0LnZhbHVlTm9kZT1mdW5jdGlvbihlLG4pe3ZhciBpPW5ldyB0KCEwKTtyZXR1cm4gaS5ib3VuZHM9ZSxpLnZhbHVlPW4saX0sdC5wcm90b3R5cGUub3ZlcmZsb3c9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZW50cmllcy5sZW5ndGg+dH0sdC5wcm90b3R5cGUuaW5zZXJ0PWZ1bmN0aW9uKHQpe3RoaXMuZW50cmllcy5wdXNoKHQpLHQucGFyZW50PXRoaXM7Zm9yKHZhciBlPXRoaXM7bnVsbCE9ZTspZS5ib3VuZHM9cy51bmlvbkFsbChbZS5ib3VuZHMsdC5ib3VuZHNdKSxlPWUucGFyZW50O3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5lbnRyaWVzLmluZGV4T2YodCk7aWYoZT49MCl7dGhpcy5lbnRyaWVzLnNwbGljZShlLDEpO2Zvcih2YXIgbj10aGlzO251bGwhPW47KW4uYm91bmRzPXMudW5pb25BbGwobi5lbnRyaWVzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuYm91bmRzfSkpKSxuPW4ucGFyZW50fXJldHVybiB0aGlzfSx0LnByb3RvdHlwZS5zdWJ0cmVlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xLzAsbj1udWxsLGk9MDtpPHRoaXMuZW50cmllcy5sZW5ndGg7aSsrKXt2YXIgcj10aGlzLmVudHJpZXNbaV0sbz1yLnVuaW9uQXJlYURpZmZlcmVuY2UodCk7KG88ZXx8bz09PWUmJm51bGwhPW4mJnIuZW50cmllcy5sZW5ndGg8bi5lbnRyaWVzLmxlbmd0aCkmJihuPXIpfXJldHVybiBufSx0LnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihlKXtudWxsIT10aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQucmVtb3ZlKHRoaXMpO3ZhciBuPVtuZXcgdCh0aGlzLmxlYWYpLG5ldyB0KHRoaXMubGVhZildO2Uuc3BsaXQodGhpcy5lbnRyaWVzLG4pO3ZhciBpPW51bGwhPXRoaXMucGFyZW50P3RoaXMucGFyZW50Om5ldyB0KCExKTtyZXR1cm4gaS5pbnNlcnQoblswXSksaS5pbnNlcnQoblsxXSksaS5sZWFmPSExLGl9LHQucHJvdG90eXBlLnVuaW9uQXJlYURpZmZlcmVuY2U9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguYWJzKHMudW5pb24odGhpcy5ib3VuZHMsdCkuYXJlYSgpLXRoaXMuYm91bmRzLmFyZWEoKSl9LHQucHJvdG90eXBlLm1heERlcHRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVhZj8xOjErdGhpcy5lbnRyaWVzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQubWF4RGVwdGgoKX0pKS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGgubWF4KHQsZSl9KSl9LHR9KSgpO3QuUlRyZWVOb2RlPWE7dmFyIHM9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbixpKXt0aGlzLnhsPXQsdGhpcy55bD1lLHRoaXMueGg9bix0aGlzLnloPWksdGhpcy53aWR0aD10aGlzLnhoLXRoaXMueGwsdGhpcy5oZWlnaHQ9dGhpcy55aC10aGlzLnlsfXJldHVybiB0Lnh5d2g9ZnVuY3Rpb24oZSxuLGkscil7cmV0dXJuIG5ldyB0KGUsbixlK2ksbityKX0sdC5lbnRpdHlCb3VuZHM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0KGUueCxlLnksZS54K2Uud2lkdGgsZS55K2UuaGVpZ2h0KX0sdC5ib3VuZHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHQucG9pbnRQYWlyKGUudG9wTGVmdCxlLmJvdHRvbVJpZ2h0KX0sdC5wb2ludFBhaXI9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gbmV3IHQoTWF0aC5taW4oZS54LG4ueCksTWF0aC5taW4oZS55LG4ueSksTWF0aC5tYXgoZS54LG4ueCksTWF0aC5tYXgoZS55LG4ueSkpfSx0LnBvaW50cz1mdW5jdGlvbihlKXtpZihlLmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcigibmVlZCBhdCBsZWFzdCAyIHBvaW50cyB0byBjcmVhdGUgYm91bmRzIik7dmFyIG49ZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lnh9KSksaT1lLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQueX0pKTtyZXR1cm4gbmV3IHQobi5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGgubWluKHQsZSl9KSksaS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGgubWluKHQsZSl9KSksbi5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGgubWF4KHQsZSl9KSksaS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGgubWF4KHQsZSl9KSkpfSx0LnVuaW9uPWZ1bmN0aW9uKGUsbil7cmV0dXJuIG5ldyB0KE1hdGgubWluKGUueGwsbi54bCksTWF0aC5taW4oZS55bCxuLnlsKSxNYXRoLm1heChlLnhoLG4ueGgpLE1hdGgubWF4KGUueWgsbi55aCkpfSx0LnVuaW9uQWxsPWZ1bmN0aW9uKGUpe3JldHVybiAwPT09KGU9ZS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10fSkpKS5sZW5ndGg/bnVsbDplLnJlZHVjZSgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gdC51bmlvbihlLG4pfSkpfSx0LmlzQm91bmRzT3ZlcmxhcEJvdW5kcz1mdW5jdGlvbihlLG4pe3JldHVybiB0LmlzQm91bmRzT3ZlcmxhcFgoZSxuKSYmdC5pc0JvdW5kc092ZXJsYXBZKGUsbil9LHQuaXNCb3VuZHNPdmVybGFwWD1mdW5jdGlvbih0LGUpe3JldHVybiEodC54aDxlLnhsfHx0LnhsPmUueGgpfSx0LmlzQm91bmRzT3ZlcmxhcFk9ZnVuY3Rpb24odCxlKXtyZXR1cm4hKHQueWg8ZS55bHx8dC55bD5lLnloKX0sdC5hYnNvbHV0ZURpc3RhbmNlVG9OZWFyRWRnZVg9ZnVuY3Rpb24odCxlKXt2YXIgbj10LndpZHRoLzI7cmV0dXJuIE1hdGgubWF4KE1hdGguYWJzKGUueC0odC54bCtuKSktbiwwKX0sdC5hYnNvbHV0ZURpc3RhbmNlVG9OZWFyRWRnZVk9ZnVuY3Rpb24odCxlKXt2YXIgbj10LmhlaWdodC8yO3JldHVybiBNYXRoLm1heChNYXRoLmFicyhlLnktKHQueWwrbikpLW4sMCl9LHQuYWJzb2x1dGVEaXN0YW5jZVRvRmFyRWRnZVg9ZnVuY3Rpb24oZSxuKXt2YXIgaT10LmFic29sdXRlRGlzdGFuY2VUb05lYXJFZGdlWChlLG4pO3JldHVybiAwPT09aT8wOmkrZS53aWR0aH0sdC5hYnNvbHV0ZURpc3RhbmNlVG9GYXJFZGdlWT1mdW5jdGlvbihlLG4pe3ZhciBpPXQuYWJzb2x1dGVEaXN0YW5jZVRvTmVhckVkZ2VZKGUsbik7cmV0dXJuIDA9PT1pPzA6aStlLmhlaWdodH0sdC5kaXN0YW5jZVNxdWFyZWRUb05lYXJFZGdlPWZ1bmN0aW9uKGUsbil7dmFyIGk9dC5hYnNvbHV0ZURpc3RhbmNlVG9OZWFyRWRnZVgoZSxuKSxyPXQuYWJzb2x1dGVEaXN0YW5jZVRvTmVhckVkZ2VZKGUsbik7cmV0dXJuIGkqaStyKnJ9LHQuZGlzdGFuY2VTcXVhcmVkVG9GYXJFZGdlPWZ1bmN0aW9uKGUsbil7dmFyIGk9dC5hYnNvbHV0ZURpc3RhbmNlVG9GYXJFZGdlWChlLG4pLHI9dC5hYnNvbHV0ZURpc3RhbmNlVG9GYXJFZGdlWShlLG4pO3JldHVybiBpKmkrcipyfSx0LnByb3RvdHlwZS5hcmVhPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PXRoaXMuYXJlYUNhY2hlZCYmKHRoaXMuYXJlYUNhY2hlZD0odGhpcy54aC10aGlzLnhsKSoodGhpcy55aC10aGlzLnlsKSksdGhpcy5hcmVhQ2FjaGVkfSx0LnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy54bDw9dC54JiZ0aGlzLnhoPj10LngmJnRoaXMueWw8PXQueSYmdGhpcy55aD49dC55fSx0fSkoKTt0LlJUcmVlQm91bmRzPXN9KSh4eXQpO3ZhciBFeXQ9e307IShmdW5jdGlvbih0KXsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXdwdCxuPUNlLmV4cG9ydHMsaT1EX3Q7dC5JU3RhY2tpbmdPcmRlcj1iZ3QubWFrZUVudW0oWyJ0b3Bkb3duIiwiYm90dG9tdXAiXSk7dmFyIHI9d2luZG93Lk1hdGg7dC5zdGFjaz1mdW5jdGlvbiBvKG4scixhLHMpe3ZvaWQgMD09PXMmJihzPSJib3R0b211cCIpO3ZhciBsPWUubWFwKCksYz1lLm1hcCgpLHU9bmV3IGkuTWFwOyJ0b3Bkb3duIj09PXMmJihuPW4uc2xpY2UoKSkucmV2ZXJzZSgpO2Zvcih2YXIgaD0wLGQ9bjtoPGQubGVuZ3RoO2grKyl7Zm9yKHZhciBwPWRbaF0sZj1uZXcgaS5NYXAsbT1wLmRhdGEoKSxnPW0ubGVuZ3RoLF89MDtfPGc7XysrKXt2YXIgeT1tW19dLHY9cih5LF8scCksYj10Lm5vcm1hbGl6ZUtleSh2KSx4PSthKHksXyxwKSx3PXZvaWQgMCxTPXg+PTA/bDpjO1MuaGFzKGIpPyh3PVMuZ2V0KGIpLFMuc2V0KGIsdyt4KSk6KHc9MCxTLnNldChiLHgpKSxmLnNldChiLHtvZmZzZXQ6dyx2YWx1ZTp4LGF4aXNWYWx1ZTp2LG9yaWdpbmFsRGF0dW06eSxvcmlnaW5hbERhdGFzZXQ6cCxvcmlnaW5hbEluZGV4Ol99KX11LnNldChwLGYpfXJldHVybiB1fSx0LnN0YWNrZWRFeHRlbnRzPWZ1bmN0aW9uIGEodCl7dmFyIGU9bmV3IGkuTWFwLG49bmV3IGkuTWFwO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuZm9yRWFjaCgoZnVuY3Rpb24odCxyKXt2YXIgbz10Lm9mZnNldCt0LnZhbHVlLGE9aS5NYXRoLm1heChbbyx0Lm9mZnNldF0sdC5vZmZzZXQpLHM9aS5NYXRoLm1pbihbbyx0Lm9mZnNldF0sdC5vZmZzZXQpLGw9dC5heGlzVmFsdWU7ZS5oYXMocik/ZS5nZXQocikuZXh0ZW50PGEmJmUuc2V0KHIse2V4dGVudDphLGF4aXNWYWx1ZTpsLHN0YWNrZWREYXR1bTp0fSk6ZS5zZXQocix7ZXh0ZW50OmEsYXhpc1ZhbHVlOmwsc3RhY2tlZERhdHVtOnR9KSxuLmhhcyhyKT9uLmdldChyKS5leHRlbnQ+cyYmbi5zZXQocix7ZXh0ZW50OnMsYXhpc1ZhbHVlOmwsc3RhY2tlZERhdHVtOnR9KTpuLnNldChyLHtleHRlbnQ6cyxheGlzVmFsdWU6bCxzdGFja2VkRGF0dW06dH0pfSkpfSkpLHttYXhpbXVtRXh0ZW50czplLG1pbmltdW1FeHRlbnRzOm59fSx0LnN0YWNrZWRFeHRlbnQ9ZnVuY3Rpb24gcyhlLG4sbyl7dmFyIGE9W107ZS5mb3JFYWNoKChmdW5jdGlvbihlLGkpe2Zvcih2YXIgcj1pLmRhdGEoKSxzPXIubGVuZ3RoLGw9MDtsPHM7bCsrKXt2YXIgYz1yW2xdO2lmKG51bGw9PW98fG8oYyxsLGkpKXt2YXIgdT1lLmdldCh0Lm5vcm1hbGl6ZUtleShuKGMsbCxpKSkpO2EucHVzaCh1LnZhbHVlK3Uub2Zmc2V0KX19fSkpO3ZhciBzPWkuTWF0aC5tYXgoYSwwKSxsPWkuTWF0aC5taW4oYSwwKTtyZXR1cm5bci5taW4obCwwKSxyLm1heCgwLHMpXX0sdC5ub3JtYWxpemVLZXk9bi5tZW1vaXplKChmdW5jdGlvbih0KXtyZXR1cm4gU3RyaW5nKHQpfSkpfSkoRXl0KTt2YXIgVHl0PXt9LEN5dD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KEN5dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksQ3l0LlNIT1dfV0FSTklOR1M9ITAsQ3l0LkFERF9USVRMRV9FTEVNRU5UUz0hMCwKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KFR5dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEF5dD1DeXQ7ZnVuY3Rpb24ga3l0KHQpe0F5dC5TSE9XX1dBUk5JTkdTJiZjb25zb2xlLndhcm4odCl9ZnVuY3Rpb24gTHl0KHQsZSl7Zm9yKHZhciBuPVtdLGk9MjtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKW5baS0yXT1hcmd1bWVudHNbaV07cmV0dXJuIDA9PT1lPyh0KG4pLC0xKTp3aW5kb3cuc2V0VGltZW91dCh0LGUsbil9VHl0Lndhcm49a3l0LFR5dC5zZXRUaW1lb3V0PUx5dCxUeXQuZGVib3VuY2U9ZnVuY3Rpb24gUHl0KHQsZSxuKXt2YXIgaT1udWxsLHI9W10sbz1mdW5jdGlvbigpe2UuYXBwbHkobixyKX07cmV0dXJuIGZ1bmN0aW9uKCl7cj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpLGNsZWFyVGltZW91dChpKSxpPUx5dChvLHQpfX0sVHl0LmRlcHJlY2F0ZWQ9ZnVuY3Rpb24gTnl0KHQsZSxuKXt2b2lkIDA9PT1uJiYobj0iIiksa3l0KCJNZXRob2QgIit0KyIgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiB2ZXJzaW9uICIrZSsiLiBQbGVhc2UgcmVmZXIgdG8gdGhlIHJlbGVhc2Ugbm90ZXMuICIrbil9O3ZhciBJeXQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTctcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KEl5dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFJ5dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuKXt0aGlzLmVudHJ5SW5kZXg9dCx0aGlzLmV4aXRJbmRleD10LHRoaXMubWluSW5kZXg9dCx0aGlzLm1heEluZGV4PXQsdGhpcy5idWNrZXRWYWx1ZT1lLHRoaXMubWluVmFsdWU9bix0aGlzLm1heFZhbHVlPW59cmV0dXJuIHQucHJvdG90eXBlLmlzSW5CdWNrZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PXRoaXMuYnVja2V0VmFsdWV9LHQucHJvdG90eXBlLmFkZFRvQnVja2V0PWZ1bmN0aW9uKHQsZSl7dDx0aGlzLm1pblZhbHVlJiYodGhpcy5taW5WYWx1ZT10LHRoaXMubWluSW5kZXg9ZSksdD50aGlzLm1heFZhbHVlJiYodGhpcy5tYXhWYWx1ZT10LHRoaXMubWF4SW5kZXg9ZSksdGhpcy5leGl0SW5kZXg9ZX0sdC5wcm90b3R5cGUuZ2V0VW5pcXVlSW5kaWNlcz1mdW5jdGlvbigpe3ZhciB0PVt0aGlzLmVudHJ5SW5kZXgsdGhpcy5tYXhJbmRleCx0aGlzLm1pbkluZGV4LHRoaXMuZXhpdEluZGV4XTtyZXR1cm4gdC5maWx0ZXIoKGZ1bmN0aW9uKGUsbil7cmV0dXJuIDA9PW58fGUhPXRbbi0xXX0pKX0sdH0pKCk7SXl0LkJ1Y2tldD1SeXQ7dmFyIE95dD17fSx6eXQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh6eXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBEeXQ9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeyJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3cuU2V0P3RoaXMuX2VzNlNldD1uZXcgd2luZG93LlNldDp0aGlzLl92YWx1ZXM9W10sdGhpcy5zaXplPTB9cmV0dXJuIHQucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dGhpcy5fZXM2U2V0Pyh0aGlzLl9lczZTZXQuYWRkKHQpLHRoaXMuc2l6ZT10aGlzLl9lczZTZXQuc2l6ZSx0aGlzKToodGhpcy5oYXModCl8fCh0aGlzLl92YWx1ZXMucHVzaCh0KSx0aGlzLnNpemU9dGhpcy5fdmFsdWVzLmxlbmd0aCksdGhpcyl9LHQucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXtpZihudWxsIT10aGlzLl9lczZTZXQpe3ZhciBlPXRoaXMuX2VzNlNldC5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZT10aGlzLl9lczZTZXQuc2l6ZSxlfXZhciBuPXRoaXMuX3ZhbHVlcy5pbmRleE9mKHQpO3JldHVybi0xIT09biYmKHRoaXMuX3ZhbHVlcy5zcGxpY2UobiwxKSx0aGlzLnNpemU9dGhpcy5fdmFsdWVzLmxlbmd0aCwhMCl9LHQucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dGhpcy5fZXM2U2V0P3RoaXMuX2VzNlNldC5oYXModCk6LTEhPT10aGlzLl92YWx1ZXMuaW5kZXhPZih0KX0sdC5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7aWYobnVsbD09dGhpcy5fZXM2U2V0KXRoaXMuX3ZhbHVlcy5mb3JFYWNoKChmdW5jdGlvbihpKXt0LmNhbGwoZSxpLGksbil9KSk7ZWxzZXt0aGlzLl9lczZTZXQuZm9yRWFjaCgoZnVuY3Rpb24oaSxyKXtyZXR1cm4gdC5jYWxsKGUsaSxyLG4pfSksZSl9fSx0fSkoKTt6eXQuU2V0PUR5dCwKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KE95dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEJ5dD1CTyxIeXQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiBCeXQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuY2FsbENhbGxiYWNrcz1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLGU9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuXT1hcmd1bWVudHNbbl07cmV0dXJuIHRoaXMuZm9yRWFjaCgoZnVuY3Rpb24obil7bi5hcHBseSh0LGUpfSkpLHRoaXN9LGV9KSh6eXQuU2V0KTtPeXQuQ2FsbGJhY2tTZXQ9SHl0O3ZhciBGeXQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KEZ5dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFZ5dD14eXQsVXl0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt0aGlzLl9lbnRpdGllcz1bXSx0aGlzLl9ydHJlZT1uZXcgVnl0LlJUcmVlfXJldHVybiB0LnByb3RvdHlwZS5hZGRBbGw9ZnVuY3Rpb24odCxlLG4pe2lmKHRoaXMuX2VudGl0aWVzPXRoaXMuX2VudGl0aWVzLmNvbmNhdCh0KSx2b2lkIDAhPT1uKWZvcih2YXIgaT1WeXQuUlRyZWVCb3VuZHMuYm91bmRzKG4pLHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG89Vnl0LlJUcmVlQm91bmRzLmVudGl0eUJvdW5kcyhlKGE9dFtyXSkpO1Z5dC5SVHJlZUJvdW5kcy5pc0JvdW5kc092ZXJsYXBCb3VuZHMoaSxvKSYmdGhpcy5fcnRyZWUuaW5zZXJ0KG8sYSl9ZWxzZSBmb3Iocj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgYTtvPVZ5dC5SVHJlZUJvdW5kcy5lbnRpdHlCb3VuZHMoZShhPXRbcl0pKTt0aGlzLl9ydHJlZS5pbnNlcnQobyxhKX19LHQucHJvdG90eXBlLmVudGl0eU5lYXJlc3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3J0cmVlLmxvY2F0ZU5lYXJlc3QodCkucG9wKCl9LHQucHJvdG90eXBlLmVudGl0eU5lYXJlc3RYPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9ydHJlZS5sb2NhdGVOZWFyZXN0WCh0KS5wb3AoKX0sdC5wcm90b3R5cGUuZW50aXR5TmVhcmVzdFk9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3J0cmVlLmxvY2F0ZU5lYXJlc3RZKHQpLnBvcCgpfSx0LnByb3RvdHlwZS5lbnRpdGllc0luQm91bmRzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9ydHJlZS5pbnRlcnNlY3QoVnl0LlJUcmVlQm91bmRzLmVudGl0eUJvdW5kcyh0KSl9LHQucHJvdG90eXBlLmVudGl0aWVzSW5YQm91bmRzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9ydHJlZS5pbnRlcnNlY3RYKFZ5dC5SVHJlZUJvdW5kcy5lbnRpdHlCb3VuZHModCkpfSx0LnByb3RvdHlwZS5lbnRpdGllc0luWUJvdW5kcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcnRyZWUuaW50ZXJzZWN0WShWeXQuUlRyZWVCb3VuZHMuZW50aXR5Qm91bmRzKHQpKX0sdC5wcm90b3R5cGUuZW50aXRpZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZW50aXRpZXN9LHR9KSgpO0Z5dC5FbnRpdHlTdG9yZT1VeXQ7dmFyIGp5dD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoanl0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgR3l0PVFfdCxXeXQ9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeyJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3cuTWFwP3RoaXMuX2VzNk1hcD1uZXcgd2luZG93Lk1hcDp0aGlzLl9rZXlWYWx1ZVBhaXJzPVtdfXJldHVybiB0LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxlKXtpZihHeXQuaXNOYU4odCkpdGhyb3cgbmV3IEVycm9yKCJOYU4gbWF5IG5vdCBiZSB1c2VkIGFzIGEga2V5IHRvIHRoZSBNYXAiKTtpZihudWxsIT10aGlzLl9lczZNYXApcmV0dXJuIHRoaXMuX2VzNk1hcC5zZXQodCxlKSx0aGlzO2Zvcih2YXIgbj0wO248dGhpcy5fa2V5VmFsdWVQYWlycy5sZW5ndGg7bisrKWlmKHRoaXMuX2tleVZhbHVlUGFpcnNbbl0ua2V5PT09dClyZXR1cm4gdGhpcy5fa2V5VmFsdWVQYWlyc1tuXS52YWx1ZT1lLHRoaXM7cmV0dXJuIHRoaXMuX2tleVZhbHVlUGFpcnMucHVzaCh7a2V5OnQsdmFsdWU6ZX0pLHRoaXN9LHQucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtpZihudWxsIT10aGlzLl9lczZNYXApcmV0dXJuIHRoaXMuX2VzNk1hcC5nZXQodCk7Zm9yKHZhciBlPTA7ZTx0aGlzLl9rZXlWYWx1ZVBhaXJzLmxlbmd0aDtlKyspaWYodGhpcy5fa2V5VmFsdWVQYWlyc1tlXS5rZXk9PT10KXJldHVybiB0aGlzLl9rZXlWYWx1ZVBhaXJzW2VdLnZhbHVlfSx0LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7aWYobnVsbCE9dGhpcy5fZXM2TWFwKXJldHVybiB0aGlzLl9lczZNYXAuaGFzKHQpO2Zvcih2YXIgZT0wO2U8dGhpcy5fa2V5VmFsdWVQYWlycy5sZW5ndGg7ZSsrKWlmKHRoaXMuX2tleVZhbHVlUGFpcnNbZV0ua2V5PT09dClyZXR1cm4hMDtyZXR1cm4hMX0sdC5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7aWYobnVsbD09dGhpcy5fZXM2TWFwKXRoaXMuX2tleVZhbHVlUGFpcnMuZm9yRWFjaCgoZnVuY3Rpb24oaSl7dC5jYWxsKGUsaS52YWx1ZSxpLmtleSxuKX0pKTtlbHNle3RoaXMuX2VzNk1hcC5mb3JFYWNoKChmdW5jdGlvbihpLHIpe3JldHVybiB0LmNhbGwoZSxpLHIsbil9KSxlKX19LHQucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXtpZihudWxsIT10aGlzLl9lczZNYXApcmV0dXJuIHRoaXMuX2VzNk1hcC5kZWxldGUodCk7Zm9yKHZhciBlPTA7ZTx0aGlzLl9rZXlWYWx1ZVBhaXJzLmxlbmd0aDtlKyspaWYodGhpcy5fa2V5VmFsdWVQYWlyc1tlXS5rZXk9PT10KXJldHVybiB0aGlzLl9rZXlWYWx1ZVBhaXJzLnNwbGljZShlLDEpLCEwO3JldHVybiExfSx0fSkoKTtqeXQuTWFwPVd5dDt2YXIgcXl0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE3LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShxeXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHF5dC5hc3NpZ249ZnVuY3Rpb24gWXl0KCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO2Zvcih2YXIgbj17fSxpPTAscj10O2k8ci5sZW5ndGg7aSsrKWZvcih2YXIgbz1yW2ldLGE9T2JqZWN0LmtleXMobykscz0wLGw9YTtzPGwubGVuZ3RoO3MrKyl7dmFyIGM9bFtzXTtuW2NdPW9bY119cmV0dXJuIG59O3ZhciBYeXQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTctcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KFh5dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyICR5dD1EX3QsS3l0PSJfX1Bsb3R0YWJsZV9DbGllbnRUcmFuc2xhdG9yIjtYeXQuZ2V0VHJhbnNsYXRvcj1mdW5jdGlvbiBaeXQodCl7dmFyIGU9dC5yb290KCkucm9vdEVsZW1lbnQoKS5ub2RlKCksbj1lW0t5dF07cmV0dXJuIG51bGw9PW4mJihuPW5ldyBKeXQoZSksZVtLeXRdPW4pLG59O3ZhciBKeXQ9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLl9yb290RWxlbWVudD10fXJldHVybiB0LnByb3RvdHlwZS5jb21wdXRlUG9zaXRpb249ZnVuY3Rpb24odCxlKXt2YXIgbj17eDp0LHk6ZX0saT0keXQuTWF0aC5nZXRDdW11bGF0aXZlVHJhbnNmb3JtKHRoaXMuX3Jvb3RFbGVtZW50KTtyZXR1cm4gbnVsbD09aT9uOiR5dC5NYXRoLmFwcGx5VHJhbnNmb3JtKGksbil9LHQuaXNFdmVudEluc2lkZT1mdW5jdGlvbih0LGUpe3JldHVybiAkeXQuRE9NLmNvbnRhaW5zKHQucm9vdCgpLnJvb3RFbGVtZW50KCkubm9kZSgpLGUudGFyZ2V0KX0sdH0pKCk7WHl0LlRyYW5zbGF0b3I9Snl0LChmdW5jdGlvbih0KXsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPUJPO3QuQXJyYXk9Ql90LHQuQ29sb3I9V190LHQuRE9NPUpfdCx0Lk1hdGg9UV90LHQuUlRyZWU9eHl0LHQuU3RhY2tpbmc9RXl0LHQuV2luZG93PVR5dCxlLl9fZXhwb3J0U3RhcihJeXQsdCksZS5fX2V4cG9ydFN0YXIoT3l0LHQpLGUuX19leHBvcnRTdGFyKF9ndCx0KSxlLl9fZXhwb3J0U3RhcihGeXQsdCksZS5fX2V4cG9ydFN0YXIoanl0LHQpLGUuX19leHBvcnRTdGFyKHF5dCx0KSxlLl9fZXhwb3J0U3Rhcih6eXQsdCksZS5fX2V4cG9ydFN0YXIoWHl0LHQpfSkoRF90KTt2YXIgUXl0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShReXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB0dnQ9RF90LGV2dD16X3QsbnZ0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIHQucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe2V2dC5mbHVzaCgpfSx0fSkoKTtReXQuSW1tZWRpYXRlPW52dDt2YXIgaXZ0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIHQucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3R2dC5ET00ucmVxdWVzdEFuaW1hdGlvbkZyYW1lUG9seWZpbGwoZXZ0LmZsdXNoKX0sdH0pKCk7UXl0LkFuaW1hdGlvbkZyYW1lPWl2dDt2YXIgcnZ0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt0aGlzLl90aW1lb3V0TXNlYz10dnQuRE9NLlNDUkVFTl9SRUZSRVNIX1JBVEVfTUlMTElTRUNPTkRTfXJldHVybiB0LnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGV2dC5mbHVzaCx0aGlzLl90aW1lb3V0TXNlYyl9LHR9KSgpO1F5dC5UaW1lb3V0PXJ2dCwoZnVuY3Rpb24odCl7Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT1EX3Qsbj1iZ3QsaT1ReXQscj1uZXcgZS5TZXQsbz1uZXcgZS5TZXQsYT0hMSxzPSExO3QuUG9saWN5PW4ubWFrZUVudW0oWyJpbW1lZGlhdGUiLCJhbmltYXRpb25GcmFtZSIsInRpbWVvdXQiXSk7dmFyIGw9bmV3IGkuQW5pbWF0aW9uRnJhbWU7ZnVuY3Rpb24gYyh0KXtvLmFkZCh0KSxyLmFkZCh0KSx1KCl9ZnVuY3Rpb24gdSgpe2F8fChhPSEwLGwucmVuZGVyKCkpfXQucmVuZGVyUG9saWN5PWZ1bmN0aW9uIGgobil7aWYobnVsbD09bilyZXR1cm4gbDtzd2l0Y2gobil7Y2FzZSB0LlBvbGljeS5pbW1lZGlhdGU6bD1uZXcgaS5JbW1lZGlhdGU7YnJlYWs7Y2FzZSB0LlBvbGljeS5hbmltYXRpb25GcmFtZTpsPW5ldyBpLkFuaW1hdGlvbkZyYW1lO2JyZWFrO2Nhc2UgdC5Qb2xpY3kudGltZW91dDpsPW5ldyBpLlRpbWVvdXQ7YnJlYWs7ZGVmYXVsdDplLldpbmRvdy53YXJuKCJVbnJlY29nbml6ZWQgcmVuZGVyUG9saWN5OiAiK24pfX0sdC5yZWdpc3RlclRvUmVuZGVyPWZ1bmN0aW9uIGQodCl7cyYmZS5XaW5kb3cud2FybigiUmVnaXN0ZXJlZCB0byByZW5kZXIgd2hpbGUgb3RoZXIgY29tcG9uZW50cyBhcmUgZmx1c2hpbmc6IHJlcXVlc3QgbWF5IGJlIGlnbm9yZWQiKSxyLmFkZCh0KSx1KCl9LHQucmVnaXN0ZXJUb0NvbXB1dGVMYXlvdXRBbmRSZW5kZXI9Yyx0LnJlZ2lzdGVyVG9Db21wdXRlTGF5b3V0PWZ1bmN0aW9uIHAodCl7Yyh0KX0sdC5mbHVzaD1mdW5jdGlvbiBmKCl7aWYoYSl7by5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdC5jb21wdXRlTGF5b3V0KCl9KSksci5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZW5kZXIoKX0pKSxzPSEwO3ZhciB0PW5ldyBlLlNldDtyLmZvckVhY2goKGZ1bmN0aW9uKGUpe3RyeXtlLnJlbmRlckltbWVkaWF0ZWx5KCl9Y2F0Y2gobil7d2luZG93LnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dGhyb3cgbn0pLDApLHQuYWRkKGUpfX0pKSxvPW5ldyBlLlNldCxyPXQsYT0hMSxzPSExfX19KSh6X3QpLAovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkoT190LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgb3Z0PXdwdCxhdnQ9el90LHN2dD1EX3QsbHZ0PUNlLmV4cG9ydHMsY3Z0PV9ndCx1dnQ9Ymd0O09fdC5YQWxpZ25tZW50PXV2dC5tYWtlRW51bShbImxlZnQiLCJjZW50ZXIiLCJyaWdodCJdKSxPX3QuWUFsaWdubWVudD11dnQubWFrZUVudW0oWyJ0b3AiLCJjZW50ZXIiLCJib3R0b20iXSk7dmFyIGh2dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5fb3ZlcmZsb3dIaWRkZW49ITEsdGhpcy5fb3JpZ2luPXt4OjAseTowfSx0aGlzLl94QWxpZ25tZW50PSJsZWZ0Iix0aGlzLl95QWxpZ25tZW50PSJ0b3AiLHRoaXMuX2lzU2V0dXA9ITEsdGhpcy5faXNBbmNob3JlZD0hMSx0aGlzLl9jc3NDbGFzc2VzPW5ldyBzdnQuU2V0LHRoaXMuX2Rlc3Ryb3llZD0hMSx0aGlzLl9vbkFuY2hvckNhbGxiYWNrcz1uZXcgc3Z0LkNhbGxiYWNrU2V0LHRoaXMuX29uRGV0YWNoQ2FsbGJhY2tzPW5ldyBzdnQuQ2FsbGJhY2tTZXQsdGhpcy5fY3NzQ2xhc3Nlcy5hZGQoImNvbXBvbmVudCIpfXJldHVybiB0LnByb3RvdHlwZS5hbmNob3I9ZnVuY3Rpb24odCl7aWYodD1jdnQuY29lcmNlRXh0ZXJuYWxEMyh0KSx0aGlzLl9kZXN0cm95ZWQpdGhyb3cgbmV3IEVycm9yKCJDYW4ndCByZXVzZSBkZXN0cm95KCktZWQgQ29tcG9uZW50cyEiKTtyZXR1cm4gdGhpcy5pc1Jvb3QoKSYmKHRoaXMuX3Jvb3RFbGVtZW50PXQsdGhpcy5fcm9vdEVsZW1lbnQuY2xhc3NlZCgicGxvdHRhYmxlIiwhMCkpLG51bGwhPXRoaXMuX2VsZW1lbnQ/dC5ub2RlKCkuYXBwZW5kQ2hpbGQodGhpcy5fZWxlbWVudC5ub2RlKCkpOih0aGlzLl9lbGVtZW50PXQuYXBwZW5kKCJkaXYiKSx0aGlzLl9zZXR1cCgpKSx0aGlzLl9pc0FuY2hvcmVkPSEwLHRoaXMuX29uQW5jaG9yQ2FsbGJhY2tzLmNhbGxDYWxsYmFja3ModGhpcyksdGhpc30sdC5wcm90b3R5cGUub25BbmNob3I9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2lzQW5jaG9yZWQmJnQodGhpcyksdGhpcy5fb25BbmNob3JDYWxsYmFja3MuYWRkKHQpLHRoaXN9LHQucHJvdG90eXBlLm9mZkFuY2hvcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fb25BbmNob3JDYWxsYmFja3MuZGVsZXRlKHQpLHRoaXN9LHQucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5faXNTZXR1cHx8KHRoaXMuX2Nzc0NsYXNzZXMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dC5fZWxlbWVudC5jbGFzc2VkKGUsITApfSkpLHRoaXMuX2Nzc0NsYXNzZXM9bmV3IHN2dC5TZXQsdGhpcy5fYmFja2dyb3VuZENvbnRhaW5lcj10aGlzLl9lbGVtZW50LmFwcGVuZCgic3ZnIikuY2xhc3NlZCgiYmFja2dyb3VuZC1jb250YWluZXIiLCEwKSx0aGlzLl9jb250ZW50PXRoaXMuX2VsZW1lbnQuYXBwZW5kKCJzdmciKS5jbGFzc2VkKCJjb250ZW50IiwhMCksdGhpcy5fZm9yZWdyb3VuZENvbnRhaW5lcj10aGlzLl9lbGVtZW50LmFwcGVuZCgic3ZnIikuY2xhc3NlZCgiZm9yZWdyb3VuZC1jb250YWluZXIiLCEwKSx0aGlzLl9jb250ZW50LmNsYXNzZWQodGhpcy5fb3ZlcmZsb3dIaWRkZW4/ImNvbXBvbmVudC1vdmVyZmxvdy1oaWRkZW4iOiJjb21wb25lbnQtb3ZlcmZsb3ctdmlzaWJsZSIsITApLHRoaXMuX2lzU2V0dXA9ITApfSx0LnByb3RvdHlwZS5yZXF1ZXN0ZWRTcGFjZT1mdW5jdGlvbih0LGUpe3JldHVybnttaW5XaWR0aDowLG1pbkhlaWdodDowfX0sdC5wcm90b3R5cGUuY29tcHV0ZUxheW91dD1mdW5jdGlvbihlLG4saSl7aWYobnVsbD09ZXx8bnVsbD09bnx8bnVsbD09aSl7aWYobnVsbD09dGhpcy5fZWxlbWVudCl0aHJvdyBuZXcgRXJyb3IoImFuY2hvcigpIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBjb21wdXRlTGF5b3V0KCkiKTtpZihudWxsPT10aGlzLl9yb290RWxlbWVudCl0aHJvdyBuZXcgRXJyb3IoIm51bGwgYXJndW1lbnRzIGNhbm5vdCBiZSBwYXNzZWQgdG8gY29tcHV0ZUxheW91dCgpIG9uIGEgbm9uLXJvb3QsIHVuYW5jaG9yZWQgbm9kZSIpO2U9e3g6MCx5OjB9O3ZhciByPXRoaXMuX3Jvb3RFbGVtZW50Lm5vZGUoKTtuPXN2dC5ET00uZWxlbWVudFdpZHRoKHIpLGk9c3Z0LkRPTS5lbGVtZW50SGVpZ2h0KHIpfXZhciBvPXRoaXMuX3NpemVGcm9tT2ZmZXIobixpKSxhPW8uaGVpZ2h0LHM9by53aWR0aDtyZXR1cm4gdGhpcy5zZXRCb3VuZHMocyxhLGUueCsobi1zKSp0Ll94QWxpZ25Ub1Byb3BvcnRpb25bdGhpcy5feEFsaWdubWVudF0sZS55KyhpLWEpKnQuX3lBbGlnblRvUHJvcG9ydGlvblt0aGlzLl95QWxpZ25tZW50XSksdGhpc30sdC5wcm90b3R5cGUuc2V0Qm91bmRzPWZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiB2b2lkIDA9PT1uJiYobj0wKSx2b2lkIDA9PT1pJiYoaT0wKSx0aGlzLl93aWR0aD10LHRoaXMuX2hlaWdodD1lLHRoaXMuX29yaWdpbj17eDpuLHk6aX0sbnVsbCE9dGhpcy5fZWxlbWVudCYmdGhpcy5fZWxlbWVudC5zdHlsZXMoe2xlZnQ6bisicHgiLGhlaWdodDplKyJweCIsdG9wOmkrInB4Iix3aWR0aDp0KyJweCJ9KSxudWxsIT10aGlzLl9yZXNpemVIYW5kbGVyJiZ0aGlzLl9yZXNpemVIYW5kbGVyKHt3aWR0aDp0LGhlaWdodDplfSksdGhpc30sdC5wcm90b3R5cGUuX3NpemVGcm9tT2ZmZXI9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLnJlcXVlc3RlZFNwYWNlKHQsZSk7cmV0dXJue3dpZHRoOnRoaXMuZml4ZWRXaWR0aCgpP01hdGgubWluKHQsbi5taW5XaWR0aCk6dCxoZWlnaHQ6dGhpcy5maXhlZEhlaWdodCgpP01hdGgubWluKGUsbi5taW5IZWlnaHQpOmV9fSx0LnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faXNBbmNob3JlZCYmdGhpcy5faXNTZXR1cCYmdGhpcy53aWR0aCgpPj0wJiZ0aGlzLmhlaWdodCgpPj0wJiZhdnQucmVnaXN0ZXJUb1JlbmRlcih0aGlzKSx0aGlzfSx0LnByb3RvdHlwZS5yZW5kZXJMb3dQcmlvcml0eT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlbmRlcigpfSx0LnByb3RvdHlwZS5fc2NoZWR1bGVDb21wdXRlTGF5b3V0PWZ1bmN0aW9uKCl7dGhpcy5faXNBbmNob3JlZCYmdGhpcy5faXNTZXR1cCYmYXZ0LnJlZ2lzdGVyVG9Db21wdXRlTGF5b3V0QW5kUmVuZGVyKHRoaXMpfSx0LnByb3RvdHlwZS5vblJlc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmVzaXplSGFuZGxlcj10LHRoaXN9LHQucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLnJlZHJhdz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9pc0FuY2hvcmVkJiZ0aGlzLl9pc1NldHVwJiYodGhpcy5pc1Jvb3QoKT90aGlzLl9zY2hlZHVsZUNvbXB1dGVMYXlvdXQoKTp0aGlzLnBhcmVudCgpLnJlZHJhdygpKSx0aGlzfSx0LnByb3RvdHlwZS5pbnZhbGlkYXRlQ2FjaGU9ZnVuY3Rpb24oKXt9LHQucHJvdG90eXBlLnJlbmRlclRvPWZ1bmN0aW9uKHQpe2lmKHRoaXMuZGV0YWNoKCksbnVsbCE9dCl7dmFyIGU9dm9pZCAwO2lmKCEoZT0ic3RyaW5nIj09dHlwZW9mIHR8fGx2dC5pc0VsZW1lbnQodCk/b3Z0LnNlbGVjdCh0KTpjdnQuY29lcmNlRXh0ZXJuYWxEMyh0KSkubm9kZSgpfHxudWxsPT1lLm5vZGUoKS5ub2RlTmFtZSl0aHJvdyBuZXcgRXJyb3IoIlBsb3R0YWJsZSByZXF1aXJlcyBhIHZhbGlkIEVsZW1lbnQgdG8gcmVuZGVyVG8iKTtpZigic3ZnIj09PWUubm9kZSgpLm5vZGVOYW1lKXRocm93IG5ldyBFcnJvcigiUGxvdHRhYmxlIDMueCBhbmQgbGF0ZXIgY2FuIG9ubHkgcmVuZGVyVG8gYW4gSFRNTCBjb21wb25lbnQ7IHBhc3MgYSBkaXYgaW5zdGVhZCEiKTt0aGlzLmFuY2hvcihlKX1pZihudWxsPT10aGlzLl9lbGVtZW50KXRocm93IG5ldyBFcnJvcigiSWYgYSBDb21wb25lbnQgaGFzIG5ldmVyIGJlZW4gcmVuZGVyZWQgYmVmb3JlLCB0aGVuIHJlbmRlclRvIG11c3QgYmUgZ2l2ZW4gYSBub2RlIHRvIHJlbmRlciB0bywgb3IgYSBkMy5TZWxlY3Rpb24sIG9yIGEgc2VsZWN0b3Igc3RyaW5nIik7cmV0dXJuIGF2dC5yZWdpc3RlclRvQ29tcHV0ZUxheW91dEFuZFJlbmRlcih0aGlzKSxhdnQuZmx1c2goKSx0aGlzfSx0LnByb3RvdHlwZS54QWxpZ25tZW50PWZ1bmN0aW9uKGUpe2lmKG51bGw9PWUpcmV0dXJuIHRoaXMuX3hBbGlnbm1lbnQ7aWYoZT1lLnRvTG93ZXJDYXNlKCksbnVsbD09dC5feEFsaWduVG9Qcm9wb3J0aW9uW2VdKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgYWxpZ25tZW50OiAiK2UpO3JldHVybiB0aGlzLl94QWxpZ25tZW50PWUsdGhpcy5yZWRyYXcoKSx0aGlzfSx0LnByb3RvdHlwZS55QWxpZ25tZW50PWZ1bmN0aW9uKGUpe2lmKG51bGw9PWUpcmV0dXJuIHRoaXMuX3lBbGlnbm1lbnQ7aWYoZT1lLnRvTG93ZXJDYXNlKCksbnVsbD09dC5feUFsaWduVG9Qcm9wb3J0aW9uW2VdKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgYWxpZ25tZW50OiAiK2UpO3JldHVybiB0aGlzLl95QWxpZ25tZW50PWUsdGhpcy5yZWRyYXcoKSx0aGlzfSx0LnByb3RvdHlwZS5oYXNDbGFzcz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dCYmKG51bGw9PXRoaXMuX2VsZW1lbnQ/dGhpcy5fY3NzQ2xhc3Nlcy5oYXModCk6dGhpcy5fZWxlbWVudC5jbGFzc2VkKHQpKX0sdC5wcm90b3R5cGUuYWRkQ2xhc3M9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXR8fChudWxsPT10aGlzLl9lbGVtZW50P3RoaXMuX2Nzc0NsYXNzZXMuYWRkKHQpOnRoaXMuX2VsZW1lbnQuY2xhc3NlZCh0LCEwKSksdGhpc30sdC5wcm90b3R5cGUucmVtb3ZlQ2xhc3M9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXR8fChudWxsPT10aGlzLl9lbGVtZW50P3RoaXMuX2Nzc0NsYXNzZXMuZGVsZXRlKHQpOnRoaXMuX2VsZW1lbnQuY2xhc3NlZCh0LCExKSksdGhpc30sdC5wcm90b3R5cGUuZml4ZWRXaWR0aD1mdW5jdGlvbigpe3JldHVybiExfSx0LnByb3RvdHlwZS5maXhlZEhlaWdodD1mdW5jdGlvbigpe3JldHVybiExfSx0LnByb3RvdHlwZS5kZXRhY2g9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnQobnVsbCksdGhpcy5faXNBbmNob3JlZCYmdGhpcy5fZWxlbWVudC5yZW1vdmUoKSx0aGlzLl9pc0FuY2hvcmVkPSExLHRoaXMuX29uRGV0YWNoQ2FsbGJhY2tzLmNhbGxDYWxsYmFja3ModGhpcyksdGhpc30sdC5wcm90b3R5cGUub25EZXRhY2g9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX29uRGV0YWNoQ2FsbGJhY2tzLmFkZCh0KSx0aGlzfSx0LnByb3RvdHlwZS5vZmZEZXRhY2g9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX29uRGV0YWNoQ2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSx0LnByb3RvdHlwZS5wYXJlbnQ9ZnVuY3Rpb24odCl7aWYodm9pZCAwPT09dClyZXR1cm4gdGhpcy5fcGFyZW50O2lmKG51bGwhPT10JiYhdC5oYXModGhpcykpdGhyb3cgbmV3IEVycm9yKCJQYXNzZWQgaW52YWxpZCBwYXJlbnQiKTtyZXR1cm4gdGhpcy5fcGFyZW50PXQsdGhpc30sdC5wcm90b3R5cGUuYm91bmRzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcmlnaW4oKTtyZXR1cm57dG9wTGVmdDp0LGJvdHRvbVJpZ2h0Ont4OnQueCt0aGlzLndpZHRoKCkseTp0LnkrdGhpcy5oZWlnaHQoKX19fSx0LnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5fZGVzdHJveWVkPSEwLHRoaXMuZGV0YWNoKCl9LHQucHJvdG90eXBlLndpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dpZHRofSx0LnByb3RvdHlwZS5oZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faGVpZ2h0fSx0LnByb3RvdHlwZS5vcmlnaW49ZnVuY3Rpb24oKXtyZXR1cm57eDp0aGlzLl9vcmlnaW4ueCx5OnRoaXMuX29yaWdpbi55fX0sdC5wcm90b3R5cGUub3JpZ2luVG9Sb290PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMub3JpZ2luKCksZT10aGlzLnBhcmVudCgpO251bGwhPWU7KXt2YXIgbj1lLm9yaWdpbigpO3QueCs9bi54LHQueSs9bi55LGU9ZS5wYXJlbnQoKX1yZXR1cm4gdH0sdC5wcm90b3R5cGUucm9vdD1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzOyF0LmlzUm9vdCgpOyl0PXQucGFyZW50KCk7cmV0dXJuIHR9LHQucHJvdG90eXBlLmlzUm9vdD1mdW5jdGlvbigpe3JldHVybiBudWxsPT10aGlzLnBhcmVudCgpfSx0LnByb3RvdHlwZS5mb3JlZ3JvdW5kPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ZvcmVncm91bmRDb250YWluZXJ9LHQucHJvdG90eXBlLmNvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29udGVudH0sdC5wcm90b3R5cGUuZWxlbWVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbGVtZW50fSx0LnByb3RvdHlwZS5yb290RWxlbWVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJvb3QoKS5fcm9vdEVsZW1lbnR9LHQucHJvdG90eXBlLmJhY2tncm91bmQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFja2dyb3VuZENvbnRhaW5lcn0sdC5feEFsaWduVG9Qcm9wb3J0aW9uPXtsZWZ0OjAsY2VudGVyOi41LHJpZ2h0OjF9LHQuX3lBbGlnblRvUHJvcG9ydGlvbj17dG9wOjAsY2VudGVyOi41LGJvdHRvbToxfSx0fSkoKTtPX3QuQ29tcG9uZW50PWh2dDt2YXIgZHZ0PXt9LHB2dD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHB2dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGZ2dD13cHQ7ZnVuY3Rpb24gbXZ0KHQpe3JldHVybiB2b2lkIDA9PT10JiYodD0zKSxndnQodCksZnVuY3Rpb24oZSl7cmV0dXJuIGUudG9GaXhlZCh0KX19ZnVuY3Rpb24gZ3Z0KHQpe2lmKHQ8MHx8dD4yMCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiRm9ybWF0dGVyIHByZWNpc2lvbiBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAiKTtpZih0IT09TWF0aC5mbG9vcih0KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiRm9ybWF0dGVyIHByZWNpc2lvbiBtdXN0IGJlIGFuIGludGVnZXIiKX0KLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9wdnQuY3VycmVuY3k9ZnVuY3Rpb24gX3Z0KHQsZSxuKXt2b2lkIDA9PT10JiYodD0yKSx2b2lkIDA9PT1lJiYoZT0iJCIpLHZvaWQgMD09PW4mJihuPSEwKTt2YXIgaT1tdnQodCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciByPWkoTWF0aC5hYnModCkpO3JldHVybiIiIT09ciYmKG4/cj1lK3I6cis9ZSx0PDAmJihyPSItIityKSkscn19LHB2dC5maXhlZD1tdnQscHZ0LmdlbmVyYWw9ZnVuY3Rpb24geXZ0KHQpe3JldHVybiB2b2lkIDA9PT10JiYodD0zKSxndnQodCksZnVuY3Rpb24oZSl7aWYoIm51bWJlciI9PXR5cGVvZiBlKXt2YXIgbj1NYXRoLnBvdygxMCx0KTtyZXR1cm4gU3RyaW5nKE1hdGgucm91bmQoZSpuKS9uKX1yZXR1cm4gU3RyaW5nKGUpfX0scHZ0LmlkZW50aXR5PWZ1bmN0aW9uIHZ2dCgpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gU3RyaW5nKHQpfX0scHZ0LnBlcmNlbnRhZ2U9ZnVuY3Rpb24gYnZ0KHQpe3ZvaWQgMD09PXQmJih0PTApO3ZhciBlPW12dCh0KTtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIG49MTAwKnQsaT10LnRvU3RyaW5nKCkscj1NYXRoLnBvdygxMCxpLmxlbmd0aC0oaS5pbmRleE9mKCIuIikrMSkpO3JldHVybiBuPXBhcnNlSW50KChuKnIpLnRvU3RyaW5nKCksMTApL3IsZShuKSsiJSJ9fSxwdnQuc2lTdWZmaXg9ZnVuY3Rpb24geHZ0KHQpe3JldHVybiB2b2lkIDA9PT10JiYodD0zKSxndnQodCksZnVuY3Rpb24oZSl7cmV0dXJuIGZ2dC5mb3JtYXQoIi4iK3QrInMiKShlKX19LHB2dC5zaG9ydFNjYWxlPWZ1bmN0aW9uIHd2dCh0KXt2b2lkIDA9PT10JiYodD0zKSxndnQodCk7dmFyIGU9IktNQlRRIixuPWZ2dC5mb3JtYXQoIi4iK3QrImUiKSxpPWZ2dC5mb3JtYXQoIi4iK3QrImYiKSxyPU1hdGgucG93KDEwLDMqKGUubGVuZ3RoKzEpKSxvPU1hdGgucG93KDEwLC10KTtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGE9TWF0aC5hYnModCk7aWYoKGE8b3x8YT49cikmJjAhPT1hKXJldHVybiBuKHQpO2Zvcih2YXIgcz0tMTthPj1NYXRoLnBvdygxZTMscysyKSYmczxlLmxlbmd0aC0xOylzKys7dmFyIGw9IiI7cmV0dXJuIGw9LTE9PT1zP2kodCk6aSh0L01hdGgucG93KDFlMyxzKzEpKStlW3NdLCh0PjAmJiIxMDAwIj09PWwuc3Vic3RyKDAsNCl8fHQ8MCYmIi0xMDAwIj09PWwuc3Vic3RyKDAsNSkpJiYoczxlLmxlbmd0aC0xPyhzKyssbD1pKHQvTWF0aC5wb3coMWUzLHMrMSkpK2Vbc10pOmw9bih0KSksbH19LHB2dC5tdWx0aVRpbWU9ZnVuY3Rpb24gU3Z0KCl7dmFyIHQ9W3tzcGVjaWZpZXI6Ii4lTCIscHJlZGljYXRlOmZ1bmN0aW9uKHQpe3JldHVybiAwIT09dC5nZXRNaWxsaXNlY29uZHMoKX19LHtzcGVjaWZpZXI6IjolUyIscHJlZGljYXRlOmZ1bmN0aW9uKHQpe3JldHVybiAwIT09dC5nZXRTZWNvbmRzKCl9fSx7c3BlY2lmaWVyOiIlSTolTSIscHJlZGljYXRlOmZ1bmN0aW9uKHQpe3JldHVybiAwIT09dC5nZXRNaW51dGVzKCl9fSx7c3BlY2lmaWVyOiIlSSAlcCIscHJlZGljYXRlOmZ1bmN0aW9uKHQpe3JldHVybiAwIT09dC5nZXRIb3VycygpfX0se3NwZWNpZmllcjoiJWEgJWQiLHByZWRpY2F0ZTpmdW5jdGlvbih0KXtyZXR1cm4gMCE9PXQuZ2V0RGF5KCkmJjEhPT10LmdldERhdGUoKX19LHtzcGVjaWZpZXI6IiViICVkIixwcmVkaWNhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIDEhPT10LmdldERhdGUoKX19LHtzcGVjaWZpZXI6IiViIixwcmVkaWNhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIDAhPT10LmdldE1vbnRoKCl9fV07cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuPXQuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5wcmVkaWNhdGUoZSl9KSk7cmV0dXJuIGZ2dC50aW1lRm9ybWF0KG4ubGVuZ3RoPjA/blswXS5zcGVjaWZpZXI6IiVZIikoZSl9fSxwdnQudGltZT1mdW5jdGlvbiBNdnQodCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9ZmFsc2UpLGU/ZnZ0LnV0Y0Zvcm1hdCh0KTpmdnQudGltZUZvcm1hdCh0KX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGR2dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEV2dD1CTyxUdnQ9d3B0LEN2dD1MZ3QsQXZ0PU9fdCxrdnQ9cHZ0LEx2dD1EX3Q7ZHZ0LkF4aXNPcmllbnRhdGlvbj1iZ3QubWFrZUVudW0oWyJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJ0b3AiXSk7dmFyIFB2dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLG4pe3ZhciBpPXQuY2FsbCh0aGlzKXx8dGhpcztpZihpLl9lbmRUaWNrTGVuZ3RoPTUsaS5faW5uZXJUaWNrTGVuZ3RoPTUsaS5fdGlja0xhYmVsUGFkZGluZz0xMCxpLl9tYXJnaW49MTUsaS5fc2hvd0VuZFRpY2tMYWJlbHM9ITEsaS5fYW5ub3RhdGlvbnNFbmFibGVkPSExLGkuX2Fubm90YXRpb25UaWVyQ291bnQ9MSxudWxsPT1lfHxudWxsPT1uKXRocm93IG5ldyBFcnJvcigiQXhpcyByZXF1aXJlcyBhIHNjYWxlIGFuZCBvcmllbnRhdGlvbiIpO3JldHVybiBpLl9zY2FsZT1lLGkub3JpZW50YXRpb24obiksaS5fc2V0RGVmYXVsdEFsaWdubWVudCgpLGkuYWRkQ2xhc3MoImF4aXMiKSxpLmlzSG9yaXpvbnRhbCgpP2kuYWRkQ2xhc3MoIngtYXhpcyIpOmkuYWRkQ2xhc3MoInktYXhpcyIpLGkuZm9ybWF0dGVyKGt2dC5pZGVudGl0eSgpKSxpLl9yZXNjYWxlQ2FsbGJhY2s9ZnVuY3Rpb24odCl7cmV0dXJuIGkuX3Jlc2NhbGUoKX0saS5fc2NhbGUub25VcGRhdGUoaS5fcmVzY2FsZUNhbGxiYWNrKSxpLl9hbm5vdGF0ZWRUaWNrcz1bXSxpLl9hbm5vdGF0aW9uRm9ybWF0dGVyPWt2dC5pZGVudGl0eSgpLGl9cmV0dXJuIEV2dC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuZGVzdHJveS5jYWxsKHRoaXMpLHRoaXMuX3NjYWxlLm9mZlVwZGF0ZSh0aGlzLl9yZXNjYWxlQ2FsbGJhY2spfSxlLnByb3RvdHlwZS50aWNrTGFiZWxEYXRhT25FbGVtZW50PWZ1bmN0aW9uKHQpe2lmKG51bGwhPXQpe2Zvcih2YXIgbjtudWxsIT10JiZ0LmNsYXNzTGlzdCYmdm9pZCAwPT09bjspdC5jbGFzc0xpc3QuY29udGFpbnMoZS5USUNLX0xBQkVMX0NMQVNTKT9uPXQ6dD10LnBhcmVudE5vZGU7cmV0dXJuIHZvaWQgMD09PXQ/dm9pZCAwOlR2dC5zZWxlY3QodCkuZGF0dW0oKX19LGUucHJvdG90eXBlLl9jb21wdXRlV2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWF4TGFiZWxUaWNrTGVuZ3RoKCl9LGUucHJvdG90eXBlLl9jb21wdXRlSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21heExhYmVsVGlja0xlbmd0aCgpfSxlLnByb3RvdHlwZS5yZXF1ZXN0ZWRTcGFjZT1mdW5jdGlvbih0LG4pe3ZhciBpPTAscj0wO3RoaXMuaXNIb3Jpem9udGFsKCk/KHI9dGhpcy5fY29tcHV0ZUhlaWdodCgpK3RoaXMuX21hcmdpbix0aGlzLmFubm90YXRpb25zRW5hYmxlZCgpJiYocis9KHRoaXMuX2Fubm90YXRpb25NZWFzdXJlci5tZWFzdXJlKCkuaGVpZ2h0KzIqZS5fQU5OT1RBVElPTl9MQUJFTF9QQURESU5HKSp0aGlzLmFubm90YXRpb25UaWVyQ291bnQoKSkpOihpPXRoaXMuX2NvbXB1dGVXaWR0aCgpK3RoaXMuX21hcmdpbix0aGlzLmFubm90YXRpb25zRW5hYmxlZCgpJiYoaSs9KHRoaXMuX2Fubm90YXRpb25NZWFzdXJlci5tZWFzdXJlKCkuaGVpZ2h0KzIqZS5fQU5OT1RBVElPTl9MQUJFTF9QQURESU5HKSp0aGlzLmFubm90YXRpb25UaWVyQ291bnQoKSkpO3JldHVybnttaW5XaWR0aDppLG1pbkhlaWdodDpyfX0sZS5wcm90b3R5cGUuZml4ZWRIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0hvcml6b250YWwoKX0sZS5wcm90b3R5cGUuZml4ZWRXaWR0aD1mdW5jdGlvbigpe3JldHVybiF0aGlzLmlzSG9yaXpvbnRhbCgpfSxlLnByb3RvdHlwZS5fcmVzY2FsZT1mdW5jdGlvbigpe3RoaXMucmVuZGVyKCl9LGUucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQ9ZnVuY3Rpb24oZSxuLGkpe3JldHVybiB0LnByb3RvdHlwZS5jb21wdXRlTGF5b3V0LmNhbGwodGhpcyxlLG4saSksdGhpcy5pc0hvcml6b250YWwoKT90aGlzLl9zY2FsZS5yYW5nZShbMCx0aGlzLndpZHRoKCldKTp0aGlzLl9zY2FsZS5yYW5nZShbdGhpcy5oZWlnaHQoKSwwXSksdGhpc30sZS5wcm90b3R5cGUuX3NpemVGcm9tT2ZmZXI9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLnJlcXVlc3RlZFNwYWNlKHQsZSk7cmV0dXJuIHRoaXMuaXNIb3Jpem9udGFsKCk/e3dpZHRoOnQsaGVpZ2h0Om4ubWluSGVpZ2h0fTp7aGVpZ2h0OmUsd2lkdGg6bi5taW5XaWR0aH19LGUucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe3QucHJvdG90eXBlLl9zZXR1cC5jYWxsKHRoaXMpLHRoaXMuX3RpY2tNYXJrQ29udGFpbmVyPXRoaXMuY29udGVudCgpLmFwcGVuZCgiZyIpLmNsYXNzZWQoZS5USUNLX01BUktfQ0xBU1MrIi1jb250YWluZXIiLCEwKSx0aGlzLl90aWNrTGFiZWxDb250YWluZXI9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJnIikuY2xhc3NlZChlLlRJQ0tfTEFCRUxfQ0xBU1MrIi1jb250YWluZXIiLCEwKSx0aGlzLl9iYXNlbGluZT10aGlzLmNvbnRlbnQoKS5hcHBlbmQoImxpbmUiKS5jbGFzc2VkKCJiYXNlbGluZSIsITApLHRoaXMuX2Fubm90YXRpb25Db250YWluZXI9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiYW5ub3RhdGlvbi1jb250YWluZXIiLCEwKSx0aGlzLl9hbm5vdGF0aW9uQ29udGFpbmVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoImFubm90YXRpb24tbGluZS1jb250YWluZXIiLCEwKSx0aGlzLl9hbm5vdGF0aW9uQ29udGFpbmVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoImFubm90YXRpb24tY2lyY2xlLWNvbnRhaW5lciIsITApLHRoaXMuX2Fubm90YXRpb25Db250YWluZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgiYW5ub3RhdGlvbi1yZWN0LWNvbnRhaW5lciIsITApO3ZhciBuPXRoaXMuX2Fubm90YXRpb25Db250YWluZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgiYW5ub3RhdGlvbi1sYWJlbC1jb250YWluZXIiLCEwKSxpPW5ldyBDdnQuU3ZnQ29udGV4dChuLm5vZGUoKSk7dGhpcy5fYW5ub3RhdGlvbk1lYXN1cmVyPW5ldyBDdnQuQ2FjaGVNZWFzdXJlcihpKSx0aGlzLl9hbm5vdGF0aW9uV3JpdGVyPW5ldyBDdnQuV3JpdGVyKHRoaXMuX2Fubm90YXRpb25NZWFzdXJlcixpKX0sZS5wcm90b3R5cGUuX2dldFRpY2tWYWx1ZXM9ZnVuY3Rpb24oKXtyZXR1cm5bXX0sZS5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHk9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9nZXRUaWNrVmFsdWVzKCksbj10aGlzLl90aWNrTWFya0NvbnRhaW5lci5zZWxlY3RBbGwoIi4iK2UuVElDS19NQVJLX0NMQVNTKS5kYXRhKHQpLGk9bi5lbnRlcigpLmFwcGVuZCgibGluZSIpLmNsYXNzZWQoZS5USUNLX01BUktfQ0xBU1MsITApLm1lcmdlKG4pO3JldHVybiBpLmF0dHJzKHRoaXMuX2dlbmVyYXRlVGlja01hcmtBdHRySGFzaCgpKSxUdnQuc2VsZWN0KGkubm9kZXMoKVswXSkuY2xhc3NlZChlLkVORF9USUNLX01BUktfQ0xBU1MsITApLmF0dHJzKHRoaXMuX2dlbmVyYXRlVGlja01hcmtBdHRySGFzaCghMCkpLFR2dC5zZWxlY3QoaS5ub2RlcygpW3QubGVuZ3RoLTFdKS5jbGFzc2VkKGUuRU5EX1RJQ0tfTUFSS19DTEFTUywhMCkuYXR0cnModGhpcy5fZ2VuZXJhdGVUaWNrTWFya0F0dHJIYXNoKCEwKSksbi5leGl0KCkucmVtb3ZlKCksdGhpcy5fYmFzZWxpbmUuYXR0cnModGhpcy5fZ2VuZXJhdGVCYXNlbGluZUF0dHJIYXNoKCkpLHRoaXMuYW5ub3RhdGlvbnNFbmFibGVkKCk/dGhpcy5fZHJhd0Fubm90YXRpb25zKCk6dGhpcy5fcmVtb3ZlQW5ub3RhdGlvbnMoKSx0aGlzfSxlLnByb3RvdHlwZS5hbm5vdGF0ZWRUaWNrcz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9hbm5vdGF0ZWRUaWNrczoodGhpcy5fYW5ub3RhdGVkVGlja3M9dCx0aGlzLnJlbmRlcigpLHRoaXMpfSxlLnByb3RvdHlwZS5hbm5vdGF0aW9uRm9ybWF0dGVyPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2Fubm90YXRpb25Gb3JtYXR0ZXI6KHRoaXMuX2Fubm90YXRpb25Gb3JtYXR0ZXI9dCx0aGlzLnJlbmRlcigpLHRoaXMpfSxlLnByb3RvdHlwZS5hbm5vdGF0aW9uc0VuYWJsZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fYW5ub3RhdGlvbnNFbmFibGVkOih0aGlzLl9hbm5vdGF0aW9uc0VuYWJsZWQ9dCx0aGlzLnJlZHJhdygpLHRoaXMpfSxlLnByb3RvdHlwZS5hbm5vdGF0aW9uVGllckNvdW50PWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX2Fubm90YXRpb25UaWVyQ291bnQ7aWYodDwwKXRocm93IG5ldyBFcnJvcigiYW5ub3RhdGlvblRpZXJDb3VudCBjYW5ub3QgYmUgbmVnYXRpdmUiKTtyZXR1cm4gdGhpcy5fYW5ub3RhdGlvblRpZXJDb3VudD10LHRoaXMucmVkcmF3KCksdGhpc30sZS5wcm90b3R5cGUuX2RyYXdBbm5vdGF0aW9ucz1mdW5jdGlvbigpe3ZhciB0PXRoaXMsbj1lLl9BTk5PVEFUSU9OX0xBQkVMX1BBRERJTkcsaT1uZXcgTHZ0Lk1hcCxyPXRoaXMuX2Fubm90YXRlZFRpY2tzVG9SZW5kZXIoKTtyLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPXQuX2Fubm90YXRpb25NZWFzdXJlci5tZWFzdXJlKHQuYW5ub3RhdGlvbkZvcm1hdHRlcigpKGUpKTtpLnNldChlLHt3aWR0aDpyLndpZHRoKzIqbixoZWlnaHQ6ci5oZWlnaHQrMipufSl9KSk7dmFyIG89dGhpcy5fYW5ub3RhdGlvbk1lYXN1cmVyLm1lYXN1cmUoKS5oZWlnaHQrMipuLGE9dGhpcy5fYW5ub3RhdGlvblRvVGllcihpKSxzPW5ldyBMdnQuU2V0LGw9dGhpcy5pc0hvcml6b250YWwoKT90aGlzLmhlaWdodCgpOnRoaXMud2lkdGgoKSxjPXRoaXMuX2NvcmVTaXplKCksdT1NYXRoLm1pbih0aGlzLmFubm90YXRpb25UaWVyQ291bnQoKSxNYXRoLmZsb29yKChsLWMpL28pKTthLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7KC0xPT09dHx8dD49dSkmJnMuYWRkKGUpfSkpO3ZhciBoLGQ9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXQuc2VsZWN0QWxsKCIuIituKS5kYXRhKHIpLG89aS5lbnRlcigpLmFwcGVuZChlKS5jbGFzc2VkKG4sITApLm1lcmdlKGkpO3JldHVybiBpLmV4aXQoKS5yZW1vdmUoKSxvfSxwPWZ1bmN0aW9uKGUpe3N3aXRjaCh0Lm9yaWVudGF0aW9uKCkpe2Nhc2UiYm90dG9tIjpjYXNlInJpZ2h0IjpyZXR1cm4gYS5nZXQoZSkqbytjO2Nhc2UidG9wIjpjYXNlImxlZnQiOnJldHVybiBsLWMtYS5nZXQoZSkqb319LGY9ZnVuY3Rpb24oZSl7cmV0dXJuIHQuX3NjYWxlLnNjYWxlKGUpfSxtPWZ1bmN0aW9uKHQpe3JldHVybiBzLmhhcyh0KT8iaGlkZGVuIjoidmlzaWJsZSJ9O3N3aXRjaCh0aGlzLm9yaWVudGF0aW9uKCkpe2Nhc2UiYm90dG9tIjpjYXNlInJpZ2h0IjpoPTA7YnJlYWs7Y2FzZSJ0b3AiOmg9dGhpcy5oZWlnaHQoKTticmVhaztjYXNlImxlZnQiOmg9dGhpcy53aWR0aCgpfXZhciBnPXRoaXMuaXNIb3Jpem9udGFsKCk7ZCh0aGlzLl9hbm5vdGF0aW9uQ29udGFpbmVyLnNlbGVjdCgiLmFubm90YXRpb24tbGluZS1jb250YWluZXIiKSwibGluZSIsZS5BTk5PVEFUSU9OX0xJTkVfQ0xBU1MpLmF0dHJzKHt4MTpnP2Y6aCx4MjpnP2Y6cCx5MTpnP2g6Zix5MjpnP3A6Zix2aXNpYmlsaXR5Om19KSxkKHRoaXMuX2Fubm90YXRpb25Db250YWluZXIuc2VsZWN0KCIuYW5ub3RhdGlvbi1jaXJjbGUtY29udGFpbmVyIiksImNpcmNsZSIsZS5BTk5PVEFUSU9OX0NJUkNMRV9DTEFTUykuYXR0cnMoe2N4Omc/ZjpoLGN5Omc/aDpmLHI6M30pO3ZhciBfPWZ1bmN0aW9uKGUpe3N3aXRjaCh0Lm9yaWVudGF0aW9uKCkpe2Nhc2UiYm90dG9tIjpjYXNlInJpZ2h0IjpyZXR1cm4gcChlKTtjYXNlInRvcCI6Y2FzZSJsZWZ0IjpyZXR1cm4gcChlKS1pLmdldChlKS5oZWlnaHR9fTtkKHRoaXMuX2Fubm90YXRpb25Db250YWluZXIuc2VsZWN0KCIuYW5ub3RhdGlvbi1yZWN0LWNvbnRhaW5lciIpLCJyZWN0IixlLkFOTk9UQVRJT05fUkVDVF9DTEFTUykuYXR0cnMoe3g6Zz9mOl8seTpnP186Zix3aWR0aDpnP2Z1bmN0aW9uKHQpe3JldHVybiBpLmdldCh0KS53aWR0aH06ZnVuY3Rpb24odCl7cmV0dXJuIGkuZ2V0KHQpLmhlaWdodH0saGVpZ2h0Omc/ZnVuY3Rpb24odCl7cmV0dXJuIGkuZ2V0KHQpLmhlaWdodH06ZnVuY3Rpb24odCl7cmV0dXJuIGkuZ2V0KHQpLndpZHRofSx2aXNpYmlsaXR5Om19KTt2YXIgeT10aGlzLl9hbm5vdGF0aW9uV3JpdGVyLHY9dGhpcy5hbm5vdGF0aW9uRm9ybWF0dGVyKCksYj1kKHRoaXMuX2Fubm90YXRpb25Db250YWluZXIuc2VsZWN0KCIuYW5ub3RhdGlvbi1sYWJlbC1jb250YWluZXIiKSwiZyIsZS5BTk5PVEFUSU9OX0xBQkVMX0NMQVNTKTtiLnNlbGVjdEFsbCgiLnRleHQtY29udGFpbmVyIikucmVtb3ZlKCksYi5hdHRycyh7dHJhbnNmb3JtOmZ1bmN0aW9uKHQpe3JldHVybiJ0cmFuc2xhdGUoIisoZz9mKHQpOl8odCkpKyIsIisoZz9fKHQpOmYodCkpKyIpIn0sdmlzaWJpbGl0eTptfSkuZWFjaCgoZnVuY3Rpb24odCl7eS53cml0ZSh2KHQpLGc/aS5nZXQodCkud2lkdGg6aS5nZXQodCkuaGVpZ2h0LGc/aS5nZXQodCkuaGVpZ2h0OmkuZ2V0KHQpLndpZHRoLHt4QWxpZ246ImNlbnRlciIseUFsaWduOiJjZW50ZXIiLHRleHRSb3RhdGlvbjpnPzA6OTB9LFR2dC5zZWxlY3QodGhpcykubm9kZSgpKX0pKX0sZS5wcm90b3R5cGUuX2Fubm90YXRlZFRpY2tzVG9SZW5kZXI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5fc2NhbGUucmFuZ2UoKTtyZXR1cm4gTHZ0LkFycmF5LnVuaXEodGhpcy5hbm5vdGF0ZWRUaWNrcygpLmZpbHRlcigoZnVuY3Rpb24obil7cmV0dXJuIG51bGwhPW4mJkx2dC5NYXRoLmluUmFuZ2UodC5fc2NhbGUuc2NhbGUobiksZVswXSxlWzFdKX0pKSl9LGUucHJvdG90eXBlLl9jb3JlU2l6ZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuaXNIb3Jpem9udGFsKCk/dGhpcy5oZWlnaHQoKTp0aGlzLndpZHRoKCksZT10aGlzLmlzSG9yaXpvbnRhbCgpP3RoaXMuX2NvbXB1dGVIZWlnaHQoKTp0aGlzLl9jb21wdXRlV2lkdGgoKTtyZXR1cm4gTWF0aC5taW4oZSx0KX0sZS5wcm90b3R5cGUuX2Fubm90YXRpb25UaWVySGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Fubm90YXRpb25NZWFzdXJlci5tZWFzdXJlKCkuaGVpZ2h0KzIqZS5fQU5OT1RBVElPTl9MQUJFTF9QQURESU5HfSxlLnByb3RvdHlwZS5fYW5ub3RhdGlvblRvVGllcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49W1tdXSxpPW5ldyBMdnQuTWFwLHI9dGhpcy5pc0hvcml6b250YWwoKT90aGlzLndpZHRoKCk6dGhpcy5oZWlnaHQoKTtyZXR1cm4gdGhpcy5fYW5ub3RhdGVkVGlja3NUb1JlbmRlcigpLmZvckVhY2goKGZ1bmN0aW9uKG8pe3ZhciBhPWUuX3NjYWxlLnNjYWxlKG8pLHM9dC5nZXQobykud2lkdGg7aWYoYTwwfHxhK3M+cilpLnNldChvLC0xKTtlbHNle2Zvcih2YXIgbD0wO25bbF0uc29tZSgoZnVuY3Rpb24obil7dmFyIGk9ZS5fc2NhbGUuc2NhbGUobikscj10LmdldChuKS53aWR0aDtyZXR1cm4gYStzPj1pJiZhPD1pK3J9KSk7KWwrKyxuLmxlbmd0aD09PWwmJm4ucHVzaChbXSk7bltsXS5wdXNoKG8pLGkuc2V0KG8sbCl9fSkpLGl9LGUucHJvdG90eXBlLl9yZW1vdmVBbm5vdGF0aW9ucz1mdW5jdGlvbigpe3RoaXMuX2Fubm90YXRpb25Db250YWluZXIuc2VsZWN0QWxsKCIuYW5ub3RhdGlvbi1saW5lIikucmVtb3ZlKCksdGhpcy5fYW5ub3RhdGlvbkNvbnRhaW5lci5zZWxlY3RBbGwoIi5hbm5vdGF0aW9uLWNpcmNsZSIpLnJlbW92ZSgpLHRoaXMuX2Fubm90YXRpb25Db250YWluZXIuc2VsZWN0QWxsKCIuYW5ub3RhdGlvbi1yZWN0IikucmVtb3ZlKCksdGhpcy5fYW5ub3RhdGlvbkNvbnRhaW5lci5zZWxlY3RBbGwoIi5hbm5vdGF0aW9uLWxhYmVsIikucmVtb3ZlKCl9LGUucHJvdG90eXBlLl9nZW5lcmF0ZUJhc2VsaW5lQXR0ckhhc2g9ZnVuY3Rpb24oKXt2YXIgdD17eDE6MCx5MTowLHgyOjAseTI6MH07c3dpdGNoKHRoaXMuX29yaWVudGF0aW9uKXtjYXNlImJvdHRvbSI6dC54Mj10aGlzLndpZHRoKCk7YnJlYWs7Y2FzZSJ0b3AiOnQueDI9dGhpcy53aWR0aCgpLHQueTE9dGhpcy5oZWlnaHQoKSx0LnkyPXRoaXMuaGVpZ2h0KCk7YnJlYWs7Y2FzZSJsZWZ0Ijp0LngxPXRoaXMud2lkdGgoKSx0LngyPXRoaXMud2lkdGgoKSx0LnkyPXRoaXMuaGVpZ2h0KCk7YnJlYWs7Y2FzZSJyaWdodCI6dC55Mj10aGlzLmhlaWdodCgpfXJldHVybiB0fSxlLnByb3RvdHlwZS5fZ2VuZXJhdGVUaWNrTWFya0F0dHJIYXNoPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dm9pZCAwPT09dCYmKHQ9ITEpO3ZhciBuPXt4MTowLHkxOjAseDI6MCx5MjowfSxpPWZ1bmN0aW9uKHQpe3JldHVybiBlLl9zY2FsZS5zY2FsZSh0KX07dGhpcy5pc0hvcml6b250YWwoKT8obi54MT1pLG4ueDI9aSk6KG4ueTE9aSxuLnkyPWkpO3ZhciByPXQ/dGhpcy5fZW5kVGlja0xlbmd0aDp0aGlzLl9pbm5lclRpY2tMZW5ndGg7c3dpdGNoKHRoaXMuX29yaWVudGF0aW9uKXtjYXNlImJvdHRvbSI6bi55Mj1yO2JyZWFrO2Nhc2UidG9wIjpuLnkxPXRoaXMuaGVpZ2h0KCksbi55Mj10aGlzLmhlaWdodCgpLXI7YnJlYWs7Y2FzZSJsZWZ0IjpuLngxPXRoaXMud2lkdGgoKSxuLngyPXRoaXMud2lkdGgoKS1yO2JyZWFrO2Nhc2UicmlnaHQiOm4ueDI9cn1yZXR1cm4gbn0sZS5wcm90b3R5cGUuX3NldERlZmF1bHRBbGlnbm1lbnQ9ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fb3JpZW50YXRpb24pe2Nhc2UiYm90dG9tIjp0aGlzLnlBbGlnbm1lbnQoInRvcCIpO2JyZWFrO2Nhc2UidG9wIjp0aGlzLnlBbGlnbm1lbnQoImJvdHRvbSIpO2JyZWFrO2Nhc2UibGVmdCI6dGhpcy54QWxpZ25tZW50KCJyaWdodCIpO2JyZWFrO2Nhc2UicmlnaHQiOnRoaXMueEFsaWdubWVudCgibGVmdCIpfX0sZS5wcm90b3R5cGUuaXNIb3Jpem9udGFsPWZ1bmN0aW9uKCl7cmV0dXJuInRvcCI9PT10aGlzLl9vcmllbnRhdGlvbnx8ImJvdHRvbSI9PT10aGlzLl9vcmllbnRhdGlvbn0sZS5wcm90b3R5cGUuZ2V0U2NhbGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2NhbGV9LGUucHJvdG90eXBlLmZvcm1hdHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9mb3JtYXR0ZXI6KHRoaXMuX2Zvcm1hdHRlcj10LHRoaXMucmVkcmF3KCksdGhpcyl9LGUucHJvdG90eXBlLmlubmVyVGlja0xlbmd0aD1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9pbm5lclRpY2tMZW5ndGg7aWYodDwwKXRocm93IG5ldyBFcnJvcigiaW5uZXIgdGljayBsZW5ndGggbXVzdCBiZSBwb3NpdGl2ZSIpO3JldHVybiB0aGlzLl9pbm5lclRpY2tMZW5ndGg9dCx0aGlzLnJlZHJhdygpLHRoaXN9LGUucHJvdG90eXBlLmVuZFRpY2tMZW5ndGg9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fZW5kVGlja0xlbmd0aDtpZih0PDApdGhyb3cgbmV3IEVycm9yKCJlbmQgdGljayBsZW5ndGggbXVzdCBiZSBwb3NpdGl2ZSIpO3JldHVybiB0aGlzLl9lbmRUaWNrTGVuZ3RoPXQsdGhpcy5yZWRyYXcoKSx0aGlzfSxlLnByb3RvdHlwZS5fbWF4TGFiZWxUaWNrTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2hvd0VuZFRpY2tMYWJlbHMoKT9NYXRoLm1heCh0aGlzLmlubmVyVGlja0xlbmd0aCgpLHRoaXMuZW5kVGlja0xlbmd0aCgpKTp0aGlzLmlubmVyVGlja0xlbmd0aCgpfSxlLnByb3RvdHlwZS50aWNrTGFiZWxQYWRkaW5nPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3RpY2tMYWJlbFBhZGRpbmc7aWYodDwwKXRocm93IG5ldyBFcnJvcigidGljayBsYWJlbCBwYWRkaW5nIG11c3QgYmUgcG9zaXRpdmUiKTtyZXR1cm4gdGhpcy5fdGlja0xhYmVsUGFkZGluZz10LHRoaXMucmVkcmF3KCksdGhpc30sZS5wcm90b3R5cGUubWFyZ2luPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX21hcmdpbjtpZih0PDApdGhyb3cgbmV3IEVycm9yKCJtYXJnaW4gc2l6ZSBtdXN0IGJlIHBvc2l0aXZlIik7cmV0dXJuIHRoaXMuX21hcmdpbj10LHRoaXMucmVkcmF3KCksdGhpc30sZS5wcm90b3R5cGUub3JpZW50YXRpb249ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fb3JpZW50YXRpb247dmFyIGU9dC50b0xvd2VyQ2FzZSgpO2lmKCJ0b3AiIT09ZSYmImJvdHRvbSIhPT1lJiYibGVmdCIhPT1lJiYicmlnaHQiIT09ZSl0aHJvdyBuZXcgRXJyb3IoInVuc3VwcG9ydGVkIG9yaWVudGF0aW9uIik7cmV0dXJuIHRoaXMuX29yaWVudGF0aW9uPWUsdGhpcy5yZWRyYXcoKSx0aGlzfSxlLnByb3RvdHlwZS5zaG93RW5kVGlja0xhYmVscz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9zaG93RW5kVGlja0xhYmVsczoodGhpcy5fc2hvd0VuZFRpY2tMYWJlbHM9dCx0aGlzLnJlbmRlcigpLHRoaXMpfSxlLnByb3RvdHlwZS5fc2hvd0FsbFRpY2tNYXJrcz1mdW5jdGlvbigpe3RoaXMuX3RpY2tNYXJrQ29udGFpbmVyLnNlbGVjdEFsbCgiLiIrZS5USUNLX01BUktfQ0xBU1MpLmVhY2goKGZ1bmN0aW9uKCl7VHZ0LnNlbGVjdCh0aGlzKS5zdHlsZSgidmlzaWJpbGl0eSIsImluaGVyaXQiKX0pKX0sZS5wcm90b3R5cGUuX3Nob3dBbGxUaWNrTGFiZWxzPWZ1bmN0aW9uKCl7dGhpcy5fdGlja0xhYmVsQ29udGFpbmVyLnNlbGVjdEFsbCgiLiIrZS5USUNLX0xBQkVMX0NMQVNTKS5lYWNoKChmdW5jdGlvbigpe1R2dC5zZWxlY3QodGhpcykuc3R5bGUoInZpc2liaWxpdHkiLCJpbmhlcml0Iil9KSl9LGUucHJvdG90eXBlLl9oaWRlT3ZlcmZsb3dpbmdUaWNrTGFiZWxzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50KCkubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49dGhpcy5fdGlja0xhYmVsQ29udGFpbmVyLnNlbGVjdEFsbCgiLiIrZS5USUNLX0xBQkVMX0NMQVNTKTtuLmVtcHR5KCl8fG4uZWFjaCgoZnVuY3Rpb24oZSxuKXtMdnQuRE9NLmNsaWVudFJlY3RJbnNpZGUodGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0KXx8VHZ0LnNlbGVjdCh0aGlzKS5zdHlsZSgidmlzaWJpbGl0eSIsImhpZGRlbiIpfSkpfSxlLnByb3RvdHlwZS5faGlkZVRpY2tNYXJrc1dpdGhvdXRMYWJlbD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3RpY2tNYXJrQ29udGFpbmVyLnNlbGVjdEFsbCgiLiIrZS5USUNLX01BUktfQ0xBU1MpLG49dGhpcy5fdGlja0xhYmVsQ29udGFpbmVyLnNlbGVjdEFsbCgiLiIrZS5USUNLX0xBQkVMX0NMQVNTKS5maWx0ZXIoKGZ1bmN0aW9uKHQsZSl7dmFyIG49VHZ0LnNlbGVjdCh0aGlzKS5zdHlsZSgidmlzaWJpbGl0eSIpO3JldHVybiJpbmhlcml0Ij09PW58fCJ2aXNpYmxlIj09PW59KSkuZGF0YSgpO3QuZWFjaCgoZnVuY3Rpb24odCxlKXstMT09PW4uaW5kZXhPZih0KSYmVHZ0LnNlbGVjdCh0aGlzKS5zdHlsZSgidmlzaWJpbGl0eSIsImhpZGRlbiIpfSkpfSxlLnByb3RvdHlwZS5pbnZhbGlkYXRlQ2FjaGU9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5pbnZhbGlkYXRlQ2FjaGUuY2FsbCh0aGlzKSx0aGlzLl9hbm5vdGF0aW9uTWVhc3VyZXIucmVzZXQoKX0sZS5FTkRfVElDS19NQVJLX0NMQVNTPSJlbmQtdGljay1tYXJrIixlLlRJQ0tfTUFSS19DTEFTUz0idGljay1tYXJrIixlLlRJQ0tfTEFCRUxfQ0xBU1M9InRpY2stbGFiZWwiLGUuQU5OT1RBVElPTl9MSU5FX0NMQVNTPSJhbm5vdGF0aW9uLWxpbmUiLGUuQU5OT1RBVElPTl9SRUNUX0NMQVNTPSJhbm5vdGF0aW9uLXJlY3QiLGUuQU5OT1RBVElPTl9DSVJDTEVfQ0xBU1M9ImFubm90YXRpb24tY2lyY2xlIixlLkFOTk9UQVRJT05fTEFCRUxfQ0xBU1M9ImFubm90YXRpb24tbGFiZWwiLGUuX0FOTk9UQVRJT05fTEFCRUxfUEFERElORz00LGV9KShBdnQuQ29tcG9uZW50KTtkdnQuQXhpcz1QdnQsCi8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShrZ3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBOdnQ9Qk8sSXZ0PXdwdCxSdnQ9TGd0LE92dD1PX3QsenZ0PURfdCxEdnQ9ZHZ0LEJ2dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLG4pe3ZvaWQgMD09PW4mJihuPSJib3R0b20iKTt2YXIgaT10LmNhbGwodGhpcyxlLG4pfHx0aGlzO3JldHVybiBpLl90aWNrTGFiZWxBbmdsZT0wLGkuX3RpY2tMYWJlbFNoZWFyQW5nbGU9MCxpLmFkZENsYXNzKCJjYXRlZ29yeS1heGlzIiksaX1yZXR1cm4gTnZ0Ll9fZXh0ZW5kcyhlLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiX3dyYXBwZXIiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD1uZXcgUnZ0LldyYXBwZXI7cmV0dXJuIG51bGwhPXRoaXMuX3RpY2tMYWJlbE1heExpbmVzJiZ0Lm1heExpbmVzKHRoaXMuX3RpY2tMYWJlbE1heExpbmVzKSx0fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiX3dyaXRlciIse2dldDpmdW5jdGlvbigpe3JldHVybiBuZXcgUnZ0LldyaXRlcih0aGlzLl9tZWFzdXJlcix0aGlzLl90eXBlc2V0dGVyQ29udGV4dCx0aGlzLl93cmFwcGVyKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5fc2V0dXAuY2FsbCh0aGlzKSx0aGlzLl90eXBlc2V0dGVyQ29udGV4dD1uZXcgUnZ0LlN2Z0NvbnRleHQodGhpcy5fdGlja0xhYmVsQ29udGFpbmVyLm5vZGUoKSksdGhpcy5fbWVhc3VyZXI9bmV3IFJ2dC5DYWNoZU1lYXN1cmVyKHRoaXMuX3R5cGVzZXR0ZXJDb250ZXh0KX0sZS5wcm90b3R5cGUuX3Jlc2NhbGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWRyYXcoKX0sZS5wcm90b3R5cGUucmVxdWVzdGVkU3BhY2U9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmlzSG9yaXpvbnRhbCgpPzA6dGhpcy5fdGlja1NwYWNlUmVxdWlyZWQoKSt0aGlzLm1hcmdpbigpLGk9dGhpcy5pc0hvcml6b250YWwoKT90aGlzLl90aWNrU3BhY2VSZXF1aXJlZCgpK3RoaXMubWFyZ2luKCk6MDtpZigwPT09dGhpcy5fc2NhbGUuZG9tYWluKCkubGVuZ3RoKXJldHVybnttaW5XaWR0aDowLG1pbkhlaWdodDowfTtpZih0aGlzLmFubm90YXRpb25zRW5hYmxlZCgpKXt2YXIgcj10aGlzLl9hbm5vdGF0aW9uVGllckhlaWdodCgpKnRoaXMuYW5ub3RhdGlvblRpZXJDb3VudCgpO3RoaXMuaXNIb3Jpem9udGFsKCk/aSs9cjpuKz1yfXZhciBvPXRoaXMuX21lYXN1cmVUaWNrTGFiZWxzKHQsZSk7cmV0dXJue21pbldpZHRoOm8udXNlZFdpZHRoK24sbWluSGVpZ2h0Om8udXNlZEhlaWdodCtpfX0sZS5wcm90b3R5cGUuX2NvcmVTaXplPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5pc0hvcml6b250YWwoKT90aGlzLmhlaWdodCgpOnRoaXMud2lkdGgoKSxlPXRoaXMuaXNIb3Jpem9udGFsKCk/dGhpcy5yZXF1ZXN0ZWRTcGFjZSh0aGlzLndpZHRoKCksdGhpcy5oZWlnaHQoKSkubWluSGVpZ2h0OnRoaXMucmVxdWVzdGVkU3BhY2UodGhpcy53aWR0aCgpLHRoaXMuaGVpZ2h0KCkpLm1pbldpZHRoLG49dGhpcy5tYXJnaW4oKSt0aGlzLl9hbm5vdGF0aW9uVGllckhlaWdodCgpO3JldHVybiBNYXRoLm1pbihlLW4sdCl9LGUucHJvdG90eXBlLl9nZXRUaWNrVmFsdWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0RG93bnNhbXBsZUluZm8oKS5kb21haW59LGUucHJvdG90eXBlLl9zaXplRnJvbU9mZmVyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE92dC5Db21wb25lbnQucHJvdG90eXBlLl9zaXplRnJvbU9mZmVyLmNhbGwodGhpcyx0LGUpfSxlLnByb3RvdHlwZS5nZXREb3duc2FtcGxlSW5mbz1mdW5jdGlvbih0LG4pe3ZvaWQgMD09PXQmJih0PXRoaXMuX3NjYWxlKSx2b2lkIDA9PT1uJiYobj10LmludmVydFJhbmdlKCkpO3ZhciBpPTA9PT10aGlzLl90aWNrTGFiZWxBbmdsZT8xOjEvTWF0aC5jb3ModGhpcy5fdGlja0xhYmVsU2hlYXJBbmdsZS8xODAqTWF0aC5QSSkscj1NYXRoLmNlaWwoZS5fTUlOSU1VTV9XSURUSF9QRVJfTEFCRUxfUFgqaS90LnN0ZXBXaWR0aCgpKTtyZXR1cm57ZG9tYWluOm4uZmlsdGVyKChmdW5jdGlvbih0LGUpe3JldHVybiBlJXI9PTB9KSksc3RlcFdpZHRoOnIqdC5zdGVwV2lkdGgoKX19LGUucHJvdG90eXBlLnRpY2tMYWJlbEFuZ2xlPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3RpY2tMYWJlbEFuZ2xlO2lmKDAhPT10JiY5MCE9PXQmJi05MCE9PXQpdGhyb3cgbmV3IEVycm9yKCJBbmdsZSAiK3QrIiBub3Qgc3VwcG9ydGVkOyBvbmx5IDAsIDkwLCBhbmQgLTkwIGFyZSB2YWxpZCB2YWx1ZXMiKTtyZXR1cm4gdGhpcy5fdGlja0xhYmVsQW5nbGU9dCx0aGlzLnJlZHJhdygpLHRoaXN9LGUucHJvdG90eXBlLnRpY2tMYWJlbFNoZWFyQW5nbGU9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fdGlja0xhYmVsU2hlYXJBbmdsZTtpZih0PC04MHx8dD44MCl0aHJvdyBuZXcgRXJyb3IoIkFuZ2xlICIrdCsiIG5vdCBzdXBwb3J0ZWQ7IE11c3QgYmUgYmV0d2VlbiBbLTgwLCA4MF0iKTtyZXR1cm4gdGhpcy5fdGlja0xhYmVsU2hlYXJBbmdsZT10LHRoaXMucmVkcmF3KCksdGhpc30sZS5wcm90b3R5cGUudGlja0xhYmVsTWF4V2lkdGg9ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMuX3RpY2tMYWJlbE1heFdpZHRoOih0aGlzLl90aWNrTGFiZWxNYXhXaWR0aD10LHRoaXMucmVkcmF3KCksdGhpcyl9LGUucHJvdG90eXBlLnRpY2tMYWJlbE1heExpbmVzPWZ1bmN0aW9uKHQpe3JldHVybiAwPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLl90aWNrTGFiZWxNYXhMaW5lczoodGhpcy5fdGlja0xhYmVsTWF4TGluZXM9dCx0aGlzLnJlZHJhdygpLHRoaXMpfSxlLnByb3RvdHlwZS5fdGlja1NwYWNlUmVxdWlyZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWF4TGFiZWxUaWNrTGVuZ3RoKCkrdGhpcy50aWNrTGFiZWxQYWRkaW5nKCl9LGUucHJvdG90eXBlLl9kcmF3VGlja3M9ZnVuY3Rpb24odCxlKXt2YXIgbixpLHI9dGhpcztzd2l0Y2godGhpcy50aWNrTGFiZWxBbmdsZSgpKXtjYXNlIDA6bj17bGVmdDoicmlnaHQiLHJpZ2h0OiJsZWZ0Iix0b3A6ImNlbnRlciIsYm90dG9tOiJjZW50ZXIifSxpPXtsZWZ0OiJjZW50ZXIiLHJpZ2h0OiJjZW50ZXIiLHRvcDoiYm90dG9tIixib3R0b206InRvcCJ9O2JyZWFrO2Nhc2UgOTA6bj17bGVmdDoiY2VudGVyIixyaWdodDoiY2VudGVyIix0b3A6InJpZ2h0Iixib3R0b206ImxlZnQifSxpPXtsZWZ0OiJ0b3AiLHJpZ2h0OiJib3R0b20iLHRvcDoiY2VudGVyIixib3R0b206ImNlbnRlciJ9O2JyZWFrO2Nhc2UtOTA6bj17bGVmdDoiY2VudGVyIixyaWdodDoiY2VudGVyIix0b3A6ImxlZnQiLGJvdHRvbToicmlnaHQifSxpPXtsZWZ0OiJib3R0b20iLHJpZ2h0OiJ0b3AiLHRvcDoiY2VudGVyIixib3R0b206ImNlbnRlciJ9fWUuZWFjaCgoZnVuY3Rpb24oZSl7dmFyIG89SXZ0LnNlbGVjdCh0aGlzKSxhPXIuaXNIb3Jpem9udGFsKCk/dDpyLndpZHRoKCktci5fdGlja1NwYWNlUmVxdWlyZWQoKSxzPXIuaXNIb3Jpem9udGFsKCk/ci5oZWlnaHQoKS1yLl90aWNrU3BhY2VSZXF1aXJlZCgpOnQsbD17eEFsaWduOm5bci5vcmllbnRhdGlvbigpXSx5QWxpZ246aVtyLm9yaWVudGF0aW9uKCldLHRleHRSb3RhdGlvbjpyLnRpY2tMYWJlbEFuZ2xlKCksdGV4dFNoZWFyOnIudGlja0xhYmVsU2hlYXJBbmdsZSgpfTtpZihudWxsIT1yLl90aWNrTGFiZWxNYXhXaWR0aCl7aWYoImxlZnQiPT09ci5vcmllbnRhdGlvbigpJiZhPnIuX3RpY2tMYWJlbE1heFdpZHRoKXt2YXIgYz1hLXIuX3RpY2tMYWJlbE1heFdpZHRoLHU9by5hdHRyKCJ0cmFuc2Zvcm0iKSsiIHRyYW5zbGF0ZSgiK2MrIiwgMCkiO28uYXR0cigidHJhbnNmb3JtIix1KX1hPU1hdGgubWluKGEsci5fdGlja0xhYmVsTWF4V2lkdGgpfXIuX3dyaXRlci53cml0ZShyLmZvcm1hdHRlcigpKGUpLGEscyxsLG8ubm9kZSgpKX0pKX0sZS5wcm90b3R5cGUuX21lYXN1cmVUaWNrTGFiZWxzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxpPXRoaXMuX3NjYWxlLmNsb25lV2l0aG91dFByb3ZpZGVycygpLnJhbmdlKFswLHRoaXMuaXNIb3Jpem9udGFsKCk/dDplXSkscj10aGlzLmdldERvd25zYW1wbGVJbmZvKGkpLG89ci5kb21haW4sYT1yLnN0ZXBXaWR0aCxzPXQtdGhpcy5fdGlja1NwYWNlUmVxdWlyZWQoKTt0aGlzLmlzSG9yaXpvbnRhbCgpJiYocz1hLDAhPT10aGlzLl90aWNrTGFiZWxBbmdsZSYmKHM9ZS10aGlzLl90aWNrU3BhY2VSZXF1aXJlZCgpKSxzPU1hdGgubWF4KHMsMCkpO3ZhciBsPWE7dGhpcy5pc0hvcml6b250YWwoKSYmKGw9ZS10aGlzLl90aWNrU3BhY2VSZXF1aXJlZCgpLDAhPT10aGlzLl90aWNrTGFiZWxBbmdsZSYmKGw9dC10aGlzLl90aWNrU3BhY2VSZXF1aXJlZCgpKSxsPU1hdGgubWF4KGwsMCkpLG51bGwhPXRoaXMuX3RpY2tMYWJlbE1heFdpZHRoJiYocz1NYXRoLm1pbihzLHRoaXMuX3RpY2tMYWJlbE1heFdpZHRoKSk7dmFyIGMsdT1vLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIG4uX3dyYXBwZXIud3JhcChuLmZvcm1hdHRlcigpKHQpLG4uX21lYXN1cmVyLHMsbCl9KSksaD10aGlzLmlzSG9yaXpvbnRhbCgpJiYwPT09dGhpcy5fdGlja0xhYmVsQW5nbGU/SXZ0LnN1bTp6dnQuTWF0aC5tYXgsZD10aGlzLmlzSG9yaXpvbnRhbCgpJiYwPT09dGhpcy5fdGlja0xhYmVsQW5nbGU/enZ0Lk1hdGgubWF4Okl2dC5zdW0scD1oKHUsKGZ1bmN0aW9uKHQpe3JldHVybiBuLl9tZWFzdXJlci5tZWFzdXJlKHQud3JhcHBlZFRleHQpLndpZHRofSksMCksZj1kKHUsKGZ1bmN0aW9uKHQpe3JldHVybiBuLl9tZWFzdXJlci5tZWFzdXJlKHQud3JhcHBlZFRleHQpLmhlaWdodH0pLDApO3JldHVybiAwIT09dGhpcy5fdGlja0xhYmVsQW5nbGUmJihwPShjPVtmLHBdKVswXSxmPWNbMV0pLHt1c2VkV2lkdGg6cCx1c2VkSGVpZ2h0OmZ9fSxlLnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHkuY2FsbCh0aGlzKTt2YXIgbj10aGlzLl9zY2FsZSxpPXRoaXMuZ2V0RG93bnNhbXBsZUluZm8obikscj1pLmRvbWFpbixvPWkuc3RlcFdpZHRoLGE9bzt0aGlzLmlzSG9yaXpvbnRhbCgpJiZudWxsIT10aGlzLl90aWNrTGFiZWxNYXhXaWR0aCYmKGE9TWF0aC5taW4oYSx0aGlzLl90aWNrTGFiZWxNYXhXaWR0aCkpO3ZhciBzPXRoaXMuX3RpY2tMYWJlbENvbnRhaW5lci5zZWxlY3RBbGwoIi4iK0R2dC5BeGlzLlRJQ0tfTEFCRUxfQ0xBU1MpLmRhdGEociksbD1zLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChEdnQuQXhpcy5USUNLX0xBQkVMX0NMQVNTLCEwKS5tZXJnZShzKTtzLmV4aXQoKS5yZW1vdmUoKSxsLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQsaSl7dmFyIHI9bi5zY2FsZSh0KS1hLzI7cmV0dXJuInRyYW5zbGF0ZSgiKyhlLmlzSG9yaXpvbnRhbCgpP3I6MCkrIiwiKyhlLmlzSG9yaXpvbnRhbCgpPzA6cikrIikifSkpLGwudGV4dCgiIiksdGhpcy5fZHJhd1RpY2tzKG8sbCk7dmFyIGM9InJpZ2h0Ij09PXRoaXMub3JpZW50YXRpb24oKT90aGlzLl90aWNrU3BhY2VSZXF1aXJlZCgpOjAsdT0iYm90dG9tIj09PXRoaXMub3JpZW50YXRpb24oKT90aGlzLl90aWNrU3BhY2VSZXF1aXJlZCgpOjA7cmV0dXJuIHRoaXMuX3RpY2tMYWJlbENvbnRhaW5lci5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitjKyIsIit1KyIpIiksdGhpcy5fc2hvd0FsbFRpY2tNYXJrcygpLHRoaXMuX3Nob3dBbGxUaWNrTGFiZWxzKCksdGhpcy5faGlkZVRpY2tNYXJrc1dpdGhvdXRMYWJlbCgpLHRoaXN9LGUucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQ9ZnVuY3Rpb24oZSxuLGkpe3JldHVybiB0LnByb3RvdHlwZS5jb21wdXRlTGF5b3V0LmNhbGwodGhpcyxlLG4saSksdGhpcy5pc0hvcml6b250YWwoKXx8dGhpcy5fc2NhbGUucmFuZ2UoWzAsdGhpcy5oZWlnaHQoKV0pLHRoaXN9LGUucHJvdG90eXBlLmludmFsaWRhdGVDYWNoZT1mdW5jdGlvbigpe3QucHJvdG90eXBlLmludmFsaWRhdGVDYWNoZS5jYWxsKHRoaXMpLHRoaXMuX21lYXN1cmVyLnJlc2V0KCl9LGUuX01JTklNVU1fV0lEVEhfUEVSX0xBQkVMX1BYPTE1LGV9KShEdnQuQXhpcyk7a2d0LkNhdGVnb3J5PUJ2dDt2YXIgSHZ0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShIdnQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBGdnQ9Qk8sVnZ0PXdwdCxVdnQ9TGd0LGp2dD1wdnQsR3Z0PURfdCxXdnQ9ZHZ0LHF2dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLG4pe3ZhciBpPXQuY2FsbCh0aGlzLGUsbil8fHRoaXM7cmV0dXJuIGkuX3RpY2tMYWJlbFBvc2l0aW9uaW5nPSJjZW50ZXIiLGkuX3VzZXNUZXh0V2lkdGhBcHByb3hpbWF0aW9uPSExLGkuZm9ybWF0dGVyKGp2dC5nZW5lcmFsKCkpLGl9cmV0dXJuIEZ2dC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5fc2V0dXAuY2FsbCh0aGlzKTt2YXIgZT1uZXcgVXZ0LlN2Z0NvbnRleHQodGhpcy5fdGlja0xhYmVsQ29udGFpbmVyLm5vZGUoKSxXdnQuQXhpcy5USUNLX0xBQkVMX0NMQVNTKTt0aGlzLl9tZWFzdXJlcj1uZXcgVXZ0LkNhY2hlTWVhc3VyZXIoZSksdGhpcy5fd3JhcHBlcj0obmV3IFV2dC5XcmFwcGVyKS5tYXhMaW5lcygxKX0sZS5wcm90b3R5cGUuX2NvbXB1dGVXaWR0aD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3VzZXNUZXh0V2lkdGhBcHByb3hpbWF0aW9uP3RoaXMuX2NvbXB1dGVBcHByb3hpbWF0ZVRleHRXaWR0aCgpOnRoaXMuX2NvbXB1dGVFeGFjdFRleHRXaWR0aCgpO3JldHVybiJjZW50ZXIiPT09dGhpcy5fdGlja0xhYmVsUG9zaXRpb25pbmc/dGhpcy5fbWF4TGFiZWxUaWNrTGVuZ3RoKCkrdGhpcy50aWNrTGFiZWxQYWRkaW5nKCkrdDpNYXRoLm1heCh0aGlzLl9tYXhMYWJlbFRpY2tMZW5ndGgoKSx0aGlzLnRpY2tMYWJlbFBhZGRpbmcoKSt0KX0sZS5wcm90b3R5cGUuX2NvbXB1dGVFeGFjdFRleHRXaWR0aD1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLl9nZXRUaWNrVmFsdWVzKCkubWFwKChmdW5jdGlvbihlKXt2YXIgbj10LmZvcm1hdHRlcigpKGUpO3JldHVybiB0Ll9tZWFzdXJlci5tZWFzdXJlKG4pLndpZHRofSkpO3JldHVybiBHdnQuTWF0aC5tYXgoZSwwKX0sZS5wcm90b3R5cGUuX2NvbXB1dGVBcHByb3hpbWF0ZVRleHRXaWR0aD1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLl9nZXRUaWNrVmFsdWVzKCksbj10aGlzLl9tZWFzdXJlci5tZWFzdXJlKCJNIikud2lkdGgsaT1lLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZm9ybWF0dGVyKCkoZSkubGVuZ3RoKm59KSk7cmV0dXJuIEd2dC5NYXRoLm1heChpLDApfSxlLnByb3RvdHlwZS5fY29tcHV0ZUhlaWdodD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX21lYXN1cmVyLm1lYXN1cmUoKS5oZWlnaHQ7cmV0dXJuImNlbnRlciI9PT10aGlzLl90aWNrTGFiZWxQb3NpdGlvbmluZz90aGlzLl9tYXhMYWJlbFRpY2tMZW5ndGgoKSt0aGlzLnRpY2tMYWJlbFBhZGRpbmcoKSt0Ok1hdGgubWF4KHRoaXMuX21heExhYmVsVGlja0xlbmd0aCgpLHRoaXMudGlja0xhYmVsUGFkZGluZygpK3QpfSxlLnByb3RvdHlwZS5fZ2V0VGlja1ZhbHVlcz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3NjYWxlLGU9dC5kb21haW4oKSxuPWVbMF08PWVbMV0/ZVswXTplWzFdLGk9ZVswXT49ZVsxXT9lWzBdOmVbMV07cmV0dXJuIHQudGlja3MoKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0Pj1uJiZ0PD1pfSkpfSxlLnByb3RvdHlwZS5fcmVzY2FsZT1mdW5jdGlvbigpe2lmKHRoaXMuX2lzU2V0dXApe2lmKCF0aGlzLmlzSG9yaXpvbnRhbCgpKXt2YXIgdD10aGlzLl9jb21wdXRlV2lkdGgoKTtpZih0PnRoaXMud2lkdGgoKXx8dDx0aGlzLndpZHRoKCktdGhpcy5tYXJnaW4oKSlyZXR1cm4gdm9pZCB0aGlzLnJlZHJhdygpfXRoaXMucmVuZGVyKCl9fSxlLnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHkuY2FsbCh0aGlzKTt2YXIgbj17eDowLHk6MCxkeDoiMGVtIixkeToiMC4zZW0ifSxpPXRoaXMuX21heExhYmVsVGlja0xlbmd0aCgpLHI9dGhpcy50aWNrTGFiZWxQYWRkaW5nKCksbz0ibWlkZGxlIixhPTAscz0wLGw9MCxjPTA7aWYodGhpcy5pc0hvcml6b250YWwoKSlzd2l0Y2godGhpcy5fdGlja0xhYmVsUG9zaXRpb25pbmcpe2Nhc2UibGVmdCI6bz0iZW5kIixhPS1yLGM9cjticmVhaztjYXNlImNlbnRlciI6Yz1pK3I7YnJlYWs7Y2FzZSJyaWdodCI6bz0ic3RhcnQiLGE9cixjPXJ9ZWxzZSBzd2l0Y2godGhpcy5fdGlja0xhYmVsUG9zaXRpb25pbmcpe2Nhc2UidG9wIjpuLmR5PSItMC4zZW0iLGw9cixzPS1yO2JyZWFrO2Nhc2UiY2VudGVyIjpsPWkrcjticmVhaztjYXNlImJvdHRvbSI6bi5keT0iMWVtIixsPXIscz1yfXZhciB1PXRoaXMuX2dlbmVyYXRlVGlja01hcmtBdHRySGFzaCgpO3N3aXRjaCh0aGlzLm9yaWVudGF0aW9uKCkpe2Nhc2UiYm90dG9tIjpuLng9dS54MSxuLmR5PSIwLjk1ZW0iLHM9dS55MStjO2JyZWFrO2Nhc2UidG9wIjpuLng9dS54MSxuLmR5PSItLjI1ZW0iLHM9dS55MS1jO2JyZWFrO2Nhc2UibGVmdCI6bz0iZW5kIixhPXUueDEtbCxuLnk9dS55MTticmVhaztjYXNlInJpZ2h0IjpvPSJzdGFydCIsYT11LngxK2wsbi55PXUueTF9dmFyIGg9dGhpcy5fZ2V0VGlja1ZhbHVlcygpLGQ9dGhpcy5fdGlja0xhYmVsQ29udGFpbmVyLnNlbGVjdEFsbCgiLiIrV3Z0LkF4aXMuVElDS19MQUJFTF9DTEFTUykuZGF0YShoKTtyZXR1cm4gZC5leGl0KCkucmVtb3ZlKCksZC5lbnRlcigpLmFwcGVuZCgidGV4dCIpLmNsYXNzZWQoV3Z0LkF4aXMuVElDS19MQUJFTF9DTEFTUywhMCkubWVyZ2UoZCkuc3R5bGUoInRleHQtYW5jaG9yIixvKS5zdHlsZSgidmlzaWJpbGl0eSIsImluaGVyaXQiKS5hdHRycyhuKS50ZXh0KChmdW5jdGlvbih0KXtyZXR1cm4gZS5mb3JtYXR0ZXIoKSh0KX0pKSx0aGlzLl90aWNrTGFiZWxDb250YWluZXIuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrYSsiLCAiK3MrIikiKSx0aGlzLl9zaG93QWxsVGlja01hcmtzKCksdGhpcy5zaG93RW5kVGlja0xhYmVscygpfHx0aGlzLl9oaWRlRW5kVGlja0xhYmVscygpLHRoaXMuX2hpZGVPdmVyZmxvd2luZ1RpY2tMYWJlbHMoKSx0aGlzLl9oaWRlT3ZlcmxhcHBpbmdUaWNrTGFiZWxzKCksImNlbnRlciIhPT10aGlzLl90aWNrTGFiZWxQb3NpdGlvbmluZyYmdGhpcy5faGlkZVRpY2tNYXJrc1dpdGhvdXRMYWJlbCgpLHRoaXN9LGUucHJvdG90eXBlLnRpY2tMYWJlbFBvc2l0aW9uPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3RpY2tMYWJlbFBvc2l0aW9uaW5nO3ZhciBlPXQudG9Mb3dlckNhc2UoKTtpZih0aGlzLmlzSG9yaXpvbnRhbCgpKXtpZigibGVmdCIhPT1lJiYiY2VudGVyIiE9PWUmJiJyaWdodCIhPT1lKXRocm93IG5ldyBFcnJvcihlKyIgaXMgbm90IGEgdmFsaWQgdGljayBsYWJlbCBwb3NpdGlvbiBmb3IgYSBob3Jpem9udGFsIE51bWVyaWNBeGlzIil9ZWxzZSBpZigidG9wIiE9PWUmJiJjZW50ZXIiIT09ZSYmImJvdHRvbSIhPT1lKXRocm93IG5ldyBFcnJvcihlKyIgaXMgbm90IGEgdmFsaWQgdGljayBsYWJlbCBwb3NpdGlvbiBmb3IgYSB2ZXJ0aWNhbCBOdW1lcmljQXhpcyIpO3JldHVybiB0aGlzLl90aWNrTGFiZWxQb3NpdGlvbmluZz1lLHRoaXMucmVkcmF3KCksdGhpc30sZS5wcm90b3R5cGUudXNlc1RleHRXaWR0aEFwcHJveGltYXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fdXNlc1RleHRXaWR0aEFwcHJveGltYXRpb246KHRoaXMuX3VzZXNUZXh0V2lkdGhBcHByb3hpbWF0aW9uPXQsdGhpcyl9LGUucHJvdG90eXBlLl9oaWRlRW5kVGlja0xhYmVscz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZWxlbWVudCgpLm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxlPXRoaXMuX3RpY2tMYWJlbENvbnRhaW5lci5zZWxlY3RBbGwoIi4iK1d2dC5BeGlzLlRJQ0tfTEFCRUxfQ0xBU1MpO2lmKDAhPT1lLnNpemUoKSl7dmFyIG49ZS5ub2RlcygpWzBdO0d2dC5ET00uY2xpZW50UmVjdEluc2lkZShuLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHQpfHxWdnQuc2VsZWN0KG4pLnN0eWxlKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIik7dmFyIGk9ZS5ub2RlcygpW2Uuc2l6ZSgpLTFdO0d2dC5ET00uY2xpZW50UmVjdEluc2lkZShpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHQpfHxWdnQuc2VsZWN0KGkpLnN0eWxlKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIil9fSxlLnByb3RvdHlwZS5faGlkZU92ZXJsYXBwaW5nVGlja0xhYmVscz1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl90aWNrTGFiZWxDb250YWluZXIuc2VsZWN0QWxsKCIuIitXdnQuQXhpcy5USUNLX0xBQkVMX0NMQVNTKS5maWx0ZXIoKGZ1bmN0aW9uKHQsZSl7dmFyIG49VnZ0LnNlbGVjdCh0aGlzKS5zdHlsZSgidmlzaWJpbGl0eSIpO3JldHVybiJpbmhlcml0Ij09PW58fCJ2aXNpYmxlIj09PW59KSksZT10Lm5vZGVzKCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX0pKSxuPTE7IXRoaXMuX2hhc092ZXJsYXBXaXRoSW50ZXJ2YWwobixlKSYmbjxlLmxlbmd0aDspbis9MTt0LmVhY2goKGZ1bmN0aW9uKHQsZSl7dmFyIGk9VnZ0LnNlbGVjdCh0aGlzKTtlJW4hPTAmJmkuc3R5bGUoInZpc2liaWxpdHkiLCJoaWRkZW4iKX0pKX0sZS5wcm90b3R5cGUuX2hhc092ZXJsYXBXaXRoSW50ZXJ2YWw9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49ImNlbnRlciI9PT10aGlzLl90aWNrTGFiZWxQb3NpdGlvbmluZz90aGlzLnRpY2tMYWJlbFBhZGRpbmcoKTozKnRoaXMudGlja0xhYmVsUGFkZGluZygpLGk9ZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBHdnQuRE9NLmV4cGFuZFJlY3QodCxuKX0pKSxyPTA7cjxpLmxlbmd0aC10O3IrPXQpe2lmKEd2dC5ET00uY2xpZW50UmVjdHNPdmVybGFwKGlbcl0saVtyK3RdKSlyZXR1cm4hMX1yZXR1cm4hMH0sZS5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlLmNhbGwodGhpcyksdGhpcy5fbWVhc3VyZXIucmVzZXQoKX0sZX0pKFd2dC5BeGlzKTtIdnQuTnVtZXJpYz1xdnQ7dmFyIFl2dD17fSxYdnQ9e30sJHZ0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkoJHZ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgS3Z0PURfdDskdnQuaW50ZXJ2YWxUaWNrR2VuZXJhdG9yPWZ1bmN0aW9uIFp2dCh0KXtpZih0PD0wKXRocm93IG5ldyBFcnJvcigiaW50ZXJ2YWwgbXVzdCBiZSBwb3NpdGl2ZSBudW1iZXIiKTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49ZS5kb21haW4oKSxpPU1hdGgubWluKG5bMF0sblsxXSkscj1NYXRoLm1heChuWzBdLG5bMV0pLG89TWF0aC5jZWlsKGkvdCkqdCxhPU1hdGguZmxvb3IoKHItbykvdCkrMSxzPWkldD09MD9bXTpbaV0sbD1LdnQuTWF0aC5yYW5nZSgwLGEpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIG8rZSp0fSkpLGM9ciV0PT0wP1tdOltyXTtyZXR1cm4gcy5jb25jYXQobCkuY29uY2F0KGMpfX0sJHZ0LmludGVnZXJUaWNrR2VuZXJhdG9yPWZ1bmN0aW9uIEp2dCgpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT10LmRlZmF1bHRUaWNrcygpO3JldHVybiBlLmZpbHRlcigoZnVuY3Rpb24odCxuKXtyZXR1cm4gdCUxPT0wfHwwPT09bnx8bj09PWUubGVuZ3RoLTF9KSl9fTt2YXIgUXZ0PXt9LHRidD17fTtmdW5jdGlvbiBlYnQodCxlLG4pe3JldHVybiBuLShuLXQpKmV9ZnVuY3Rpb24gbmJ0KHQsZSxuKXtyZXR1cm4odCplLW4pLyhlLTEpfWZ1bmN0aW9uIGlidCh0LGUsbixpKXt2YXIgcj1lPjEsbz1yP2k6bjtpZihudWxsPT1vKXJldHVybiBlO3ZhciBhPXQuZ2V0VHJhbnNmb3JtYXRpb25Eb21haW4oKSxzPU1hdGguYWJzKGFbMV0tYVswXSk7cmV0dXJuKHI/TWF0aC5taW46TWF0aC5tYXgpKGUsby9zKX1mdW5jdGlvbiByYnQodCxlLG4saSxyKXtpZihlPD0xKXJldHVybntjZW50ZXJQb2ludDpuLHpvb21BbW91bnQ6ZX07aWYobnVsbD09aSYmbnVsbD09cilyZXR1cm57Y2VudGVyUG9pbnQ6bix6b29tQW1vdW50OmV9O3ZhciBvPW9idCh0KSxhPShmdW5jdGlvbiBzKHQpe3ZhciBlPXQuZ2V0VHJhbnNmb3JtYXRpb25Eb21haW4oKTtyZXR1cm4gZVsxXTxlWzBdfSkodCk7aT1udWxsPT1pP2E/MS8wOi0xLzA6aSxyPW51bGw9PXI/YT8tMS8wOjEvMDpyO3ZhciBsPXQuZ2V0VHJhbnNmb3JtYXRpb25Eb21haW4oKSxjPWxbMF0sdT1sWzFdLGg9dC5zY2FsZVRyYW5zZm9ybWF0aW9uKHIpLGQ9dC5zY2FsZVRyYW5zZm9ybWF0aW9uKHUpLHA9ZWJ0KGQsZSxuKSxmPXQuc2NhbGVUcmFuc2Zvcm1hdGlvbihpKSxtPXQuc2NhbGVUcmFuc2Zvcm1hdGlvbihjKSxnPWVidChtLGUsbiksXz1NYXRoLmFicyhoLWYpO2lmKE1hdGguYWJzKHAtZyk+Xyl7dmFyIHk9KGgtZikvKGQtbSk7cmV0dXJuIDEhPT15P3tjZW50ZXJQb2ludDpuYnQoZCx5LGgpLHpvb21BbW91bnQ6eX06e2NlbnRlclBvaW50Om4sem9vbUFtb3VudDp5fX1yZXR1cm4gcD5oIT1vP3tjZW50ZXJQb2ludDpuYnQoZCxlLGgpLHpvb21BbW91bnQ6ZX06ZzxmIT1vP3tjZW50ZXJQb2ludDpuYnQobSxlLGYpLHpvb21BbW91bnQ6ZX06e2NlbnRlclBvaW50Om4sem9vbUFtb3VudDplfX1mdW5jdGlvbiBvYnQodCl7dmFyIGU9dC5yYW5nZSgpO3JldHVybiBlWzFdPGVbMF19Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTctcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YnQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHRidC56b29tT3V0PWVidCx0YnQuY29uc3RyYWluZWRab29tPWZ1bmN0aW9uIGFidCh0LGUsbixpLHIsbyxhKXtyZXR1cm4gcmJ0KHQsZT1pYnQodCxlLGksciksbixvLGEpfSx0YnQuY29uc3RyYWluWm9vbUV4dGVudHM9aWJ0LHRidC5jb25zdHJhaW5ab29tVmFsdWVzPXJidCx0YnQuY29uc3RyYWluZWRUcmFuc2xhdGlvbj1mdW5jdGlvbiBzYnQodCxlLG4saSl7dmFyIHIsbz10LmdldFRyYW5zZm9ybWF0aW9uRG9tYWluKCksYT1vWzBdLHM9b1sxXSxsPW9idCh0KTtpZihlPjAhPT1sKXtpZihudWxsIT0ocj1pKSl7dmFyIGM9dC5zY2FsZVRyYW5zZm9ybWF0aW9uKHMpLHU9dC5zY2FsZVRyYW5zZm9ybWF0aW9uKHIpO2U9KGw/TWF0aC5tYXg6TWF0aC5taW4pKGMrZSx1KS1jfX1lbHNlIGlmKG51bGwhPShyPW4pKXt2YXIgaD10LnNjYWxlVHJhbnNmb3JtYXRpb24oYSksZD10LnNjYWxlVHJhbnNmb3JtYXRpb24ocik7ZT0obD9NYXRoLm1pbjpNYXRoLm1heCkoaCtlLGQpLWh9cmV0dXJuIGV9O3ZhciBsYnQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KGxidCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGNidD1EX3QsdWJ0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt0aGlzLl9hdXRvRG9tYWluQXV0b21hdGljYWxseT0hMCx0aGlzLl9kb21haW5Nb2RpZmljYXRpb25JblByb2dyZXNzPSExLHRoaXMuX3VwZGF0ZUlkPTAsdGhpcy5fY2FsbGJhY2tzPW5ldyBjYnQuQ2FsbGJhY2tTZXQsdGhpcy5faW5jbHVkZWRWYWx1ZXNQcm92aWRlcnM9bmV3IGNidC5TZXR9cmV0dXJuIHQucHJvdG90eXBlLmV4dGVudE9mVmFsdWVzPWZ1bmN0aW9uKHQpe3JldHVybltdfSx0LnByb3RvdHlwZS5fZ2V0QWxsSW5jbHVkZWRWYWx1ZXM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt2b2lkIDA9PT10JiYodD0hMSk7dmFyIG49W107cmV0dXJuIHRoaXMuX2luY2x1ZGVkVmFsdWVzUHJvdmlkZXJzLmZvckVhY2goKGZ1bmN0aW9uKGkpe3ZhciByPWkoZSx0KTtuPW4uY29uY2F0KHIpfSkpLG59LHQucHJvdG90eXBlLl9nZXRFeHRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm5bXX0sdC5wcm90b3R5cGUub25VcGRhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2NhbGxiYWNrcy5hZGQodCksdGhpc30sdC5wcm90b3R5cGUub2ZmVXBkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9jYWxsYmFja3MuZGVsZXRlKHQpLHRoaXN9LHQucHJvdG90eXBlLl9kaXNwYXRjaFVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuX3VwZGF0ZUlkKyssdGhpcy5fY2FsbGJhY2tzLmNhbGxDYWxsYmFja3ModGhpcyl9LHQucHJvdG90eXBlLmF1dG9Eb21haW49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXV0b0RvbWFpbkF1dG9tYXRpY2FsbHk9ITAsdGhpcy5fc2V0RG9tYWluKHRoaXMuX2dldEV4dGVudCgpKSx0aGlzfSx0LnByb3RvdHlwZS5hdXRvRG9tYWluSWZBdXRvbWF0aWNNb2RlPWZ1bmN0aW9uKCl7dGhpcy5fYXV0b0RvbWFpbkF1dG9tYXRpY2FsbHkmJnRoaXMuYXV0b0RvbWFpbigpfSx0LnByb3RvdHlwZS5zY2FsZT1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlIHNjYWxlIil9LHQucHJvdG90eXBlLnRpY2tzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tYWluKCl9LHQucHJvdG90eXBlLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9nZXREb21haW4oKToodGhpcy5fYXV0b0RvbWFpbkF1dG9tYXRpY2FsbHk9ITEsdGhpcy5fc2V0RG9tYWluKHQpLHRoaXMpfSx0LnByb3RvdHlwZS5fZ2V0RG9tYWluPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSBfZ2V0RG9tYWluIil9LHQucHJvdG90eXBlLl9zZXREb21haW49ZnVuY3Rpb24odCl7dGhpcy5fZG9tYWluTW9kaWZpY2F0aW9uSW5Qcm9ncmVzc3x8KHRoaXMuX2RvbWFpbk1vZGlmaWNhdGlvbkluUHJvZ3Jlc3M9ITAsdGhpcy5fYmFja2luZ1NjYWxlRG9tYWluKHQpLHRoaXMuX2Rpc3BhdGNoVXBkYXRlKCksdGhpcy5fZG9tYWluTW9kaWZpY2F0aW9uSW5Qcm9ncmVzcz0hMSl9LHQucHJvdG90eXBlLl9iYWNraW5nU2NhbGVEb21haW49ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSBfYmFja2luZ0RvbWFpbiIpfSx0LnByb3RvdHlwZS5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9nZXRSYW5nZSgpOih0aGlzLl9zZXRSYW5nZSh0KSx0aGlzKX0sdC5wcm90b3R5cGUuX2dldFJhbmdlPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSBfZ2V0UmFuZ2UiKX0sdC5wcm90b3R5cGUuX3NldFJhbmdlPWZ1bmN0aW9uKHQpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgX3NldFJhbmdlIil9LHQucHJvdG90eXBlLmFkZEluY2x1ZGVkVmFsdWVzUHJvdmlkZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2luY2x1ZGVkVmFsdWVzUHJvdmlkZXJzLmFkZCh0KSx0aGlzLmF1dG9Eb21haW5JZkF1dG9tYXRpY01vZGUoKSx0aGlzfSx0LnByb3RvdHlwZS5yZW1vdmVJbmNsdWRlZFZhbHVlc1Byb3ZpZGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbmNsdWRlZFZhbHVlc1Byb3ZpZGVycy5kZWxldGUodCksdGhpcy5hdXRvRG9tYWluSWZBdXRvbWF0aWNNb2RlKCksdGhpc30sdC5wcm90b3R5cGUudXBkYXRlSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdXBkYXRlSWR9LHR9KSgpO2xidC5TY2FsZT11YnQsCi8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShRdnQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBoYnQ9Qk8sZGJ0PXdwdCxwYnQ9dGJ0LGZidD1EX3QsbWJ0PVswLDFdLGdidD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBuPXQuY2FsbCh0aGlzKXx8dGhpcztuLl9yYW5nZT1bMCwxXSxuLl9kM1NjYWxlPWRidC5zY2FsZUJhbmQoKSxuLl9kM1NjYWxlLnJhbmdlKG1idCksbi5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlPWRidC5zY2FsZUxpbmVhcigpLG4uX2QzVHJhbnNmb3JtYXRpb25TY2FsZS5kb21haW4obWJ0KTtyZXR1cm4gbi5faW5uZXJQYWRkaW5nPWUuX2NvbnZlcnRUb1Bsb3R0YWJsZUlubmVyUGFkZGluZyguMyksbi5fb3V0ZXJQYWRkaW5nPWUuX2NvbnZlcnRUb1Bsb3R0YWJsZU91dGVyUGFkZGluZyguNSwuMyksbn1yZXR1cm4gaGJ0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLmNsb25lV2l0aG91dFByb3ZpZGVycz1mdW5jdGlvbigpe3ZhciB0PShuZXcgZSkuZG9tYWluKHRoaXMuZG9tYWluKCkpLnJhbmdlKHRoaXMucmFuZ2UoKSkuaW5uZXJQYWRkaW5nKHRoaXMuaW5uZXJQYWRkaW5nKCkpLm91dGVyUGFkZGluZyh0aGlzLm91dGVyUGFkZGluZygpKTtyZXR1cm4gdC5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlLmRvbWFpbih0aGlzLl9kM1RyYW5zZm9ybWF0aW9uU2NhbGUuZG9tYWluKCkpLHR9LGUucHJvdG90eXBlLmV4dGVudE9mVmFsdWVzPWZ1bmN0aW9uKHQpe3JldHVybiBmYnQuQXJyYXkudW5pcSh0KX0sZS5wcm90b3R5cGUuX2dldEV4dGVudD1mdW5jdGlvbigpe3JldHVybiBmYnQuQXJyYXkudW5pcSh0aGlzLl9nZXRBbGxJbmNsdWRlZFZhbHVlcygpKX0sZS5wcm90b3R5cGUuZG9tYWluPWZ1bmN0aW9uKGUpe3JldHVybiB0LnByb3RvdHlwZS5kb21haW4uY2FsbCh0aGlzLGUpfSxlLnByb3RvdHlwZS5pbnZlcnRSYW5nZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3ZvaWQgMD09PXQmJih0PXRoaXMucmFuZ2UoKSk7dmFyIG49dGhpcy5fZDNTY2FsZS5iYW5kd2lkdGgoKSxpPXRoaXMuaW52ZXJ0ZWRUcmFuc2Zvcm1hdGlvbih0WzBdKSxyPXRoaXMuaW52ZXJ0ZWRUcmFuc2Zvcm1hdGlvbih0WzFdKSxvPXRoaXMuX2QzU2NhbGUuZG9tYWluKCksYT1vLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX2QzU2NhbGUodCkrbi8yfSkpLHM9ZGJ0LmJpc2VjdChhLGkpLGw9ZGJ0LmJpc2VjdChhLHIpO3JldHVybiBvLnNsaWNlKHMsbCl9LGUucHJvdG90eXBlLnJhbmdlPWZ1bmN0aW9uKGUpe3JldHVybiB0LnByb3RvdHlwZS5yYW5nZS5jYWxsKHRoaXMsZSl9LGUuX2NvbnZlcnRUb1Bsb3R0YWJsZUlubmVyUGFkZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gMS8oMS10KS0xfSxlLl9jb252ZXJ0VG9QbG90dGFibGVPdXRlclBhZGRpbmc9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC8oMS1lKX0sZS5wcm90b3R5cGUuX3NldEJhbmRzPWZ1bmN0aW9uKCl7dmFyIHQ9MS0xLygxK3RoaXMuaW5uZXJQYWRkaW5nKCkpLGU9dGhpcy5vdXRlclBhZGRpbmcoKS8oMSt0aGlzLmlubmVyUGFkZGluZygpKTt0aGlzLl9kM1NjYWxlLnBhZGRpbmdJbm5lcih0KSx0aGlzLl9kM1NjYWxlLnBhZGRpbmdPdXRlcihlKX0sZS5wcm90b3R5cGUucmFuZ2VCYW5kPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Jlc2NhbGVCYW5kKHRoaXMuX2QzU2NhbGUuYmFuZHdpZHRoKCkpfSxlLnByb3RvdHlwZS5zdGVwV2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVzY2FsZUJhbmQodGhpcy5fZDNTY2FsZS5iYW5kd2lkdGgoKSooMSt0aGlzLmlubmVyUGFkZGluZygpKSl9LGUucHJvdG90eXBlLnRpY2tzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tYWluKCl9LGUucHJvdG90eXBlLmlubmVyUGFkZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9pbm5lclBhZGRpbmc6KHRoaXMuX2lubmVyUGFkZGluZz10LHRoaXMucmFuZ2UodGhpcy5yYW5nZSgpKSx0aGlzLl9kaXNwYXRjaFVwZGF0ZSgpLHRoaXMpfSxlLnByb3RvdHlwZS5vdXRlclBhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fb3V0ZXJQYWRkaW5nOih0aGlzLl9vdXRlclBhZGRpbmc9dCx0aGlzLnJhbmdlKHRoaXMucmFuZ2UoKSksdGhpcy5fZGlzcGF0Y2hVcGRhdGUoKSx0aGlzKX0sZS5wcm90b3R5cGUuc2NhbGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fZDNTY2FsZSh0KSt0aGlzLl9kM1NjYWxlLmJhbmR3aWR0aCgpLzI7cmV0dXJuIHRoaXMuX2QzVHJhbnNmb3JtYXRpb25TY2FsZShlKX0sZS5wcm90b3R5cGUuem9vbT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7dGhpcy5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlLmRvbWFpbih0aGlzLl9kM1RyYW5zZm9ybWF0aW9uU2NhbGUucmFuZ2UoKS5tYXAoKGZ1bmN0aW9uKGkpe3JldHVybiBuLl9kM1RyYW5zZm9ybWF0aW9uU2NhbGUuaW52ZXJ0KHBidC56b29tT3V0KGksdCxlKSl9KSkpLHRoaXMuX2Rpc3BhdGNoVXBkYXRlKCl9LGUucHJvdG90eXBlLnBhbj1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX2QzVHJhbnNmb3JtYXRpb25TY2FsZS5kb21haW4odGhpcy5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlLnJhbmdlKCkubWFwKChmdW5jdGlvbihuKXtyZXR1cm4gZS5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlLmludmVydChuK3QpfSkpKSx0aGlzLl9kaXNwYXRjaFVwZGF0ZSgpfSxlLnByb3RvdHlwZS5zY2FsZVRyYW5zZm9ybWF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kM1RyYW5zZm9ybWF0aW9uU2NhbGUodCl9LGUucHJvdG90eXBlLmludmVydGVkVHJhbnNmb3JtYXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2QzVHJhbnNmb3JtYXRpb25TY2FsZS5pbnZlcnQodCl9LGUucHJvdG90eXBlLmdldFRyYW5zZm9ybWF0aW9uRXh0ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIG1idH0sZS5wcm90b3R5cGUuZ2V0VHJhbnNmb3JtYXRpb25Eb21haW49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlLmRvbWFpbigpfSxlLnByb3RvdHlwZS5zZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbj1mdW5jdGlvbih0KXt0aGlzLl9kM1RyYW5zZm9ybWF0aW9uU2NhbGUuZG9tYWluKHQpLHRoaXMuX2Rpc3BhdGNoVXBkYXRlKCl9LGUucHJvdG90eXBlLl9nZXREb21haW49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFja2luZ1NjYWxlRG9tYWluKCl9LGUucHJvdG90eXBlLl9iYWNraW5nU2NhbGVEb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZDNTY2FsZS5kb21haW4oKToodGhpcy5fZDNTY2FsZS5kb21haW4odCksdGhpcy5fc2V0QmFuZHMoKSx0aGlzKX0sZS5wcm90b3R5cGUuX2dldFJhbmdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JhbmdlfSxlLnByb3RvdHlwZS5fc2V0UmFuZ2U9ZnVuY3Rpb24odCl7dGhpcy5fcmFuZ2U9dCx0aGlzLl9kM1RyYW5zZm9ybWF0aW9uU2NhbGUucmFuZ2UodCksdGhpcy5fc2V0QmFuZHMoKX0sZS5wcm90b3R5cGUuX3Jlc2NhbGVCYW5kPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmFicyh0aGlzLl9kM1RyYW5zZm9ybWF0aW9uU2NhbGUodCktdGhpcy5fZDNUcmFuc2Zvcm1hdGlvblNjYWxlKDApKX0sZX0pKGxidC5TY2FsZSk7UXZ0LkNhdGVnb3J5PWdidDt2YXIgX2J0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShfYnQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB5YnQ9Qk8sdmJ0PXdwdCxiYnQ9RF90LHhidD1sYnQsd2J0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt0aGlzLmNvdW50PTAsdGhpcy50cmFja2VyPXt9fXJldHVybiB0LnByb3RvdHlwZS5nZXRJbmRleD1mdW5jdGlvbih0KXtpZihudWxsIT10aGlzLnRyYWNrZXJbdF0pcmV0dXJuIHRoaXMudHJhY2tlclt0XTt2YXIgZT10aGlzLmNvdW50O3JldHVybiB0aGlzLnRyYWNrZXJbdF09ZSx0aGlzLmNvdW50Kz0xLGV9LHQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5jb3VudD0wLHRoaXMudHJhY2tlcj17fX0sdH0pKCksU2J0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKG4pe3ZhciBpLHI9dC5jYWxsKHRoaXMpfHx0aGlzO3N3aXRjaChyLl9yYW5nZUxlbmd0aD0xLHIuX3RyYWNrZXI9bmV3IHdidCxuKXtjYXNlIG51bGw6Y2FzZSB2b2lkIDA6bnVsbD09ZS5fcGxvdHRhYmxlQ29sb3JDYWNoZSYmKGUuX3Bsb3R0YWJsZUNvbG9yQ2FjaGU9ZS5fZ2V0UGxvdHRhYmxlQ29sb3JzKCkpLGk9dmJ0LnNjYWxlT3JkaW5hbCgpLnJhbmdlKGUuX3Bsb3R0YWJsZUNvbG9yQ2FjaGUpO2JyZWFrO2Nhc2UiQ2F0ZWdvcnkxMCI6Y2FzZSJjYXRlZ29yeTEwIjpjYXNlIjEwIjppPXZidC5zY2FsZU9yZGluYWwodmJ0LnNjaGVtZUNhdGVnb3J5MTApO2JyZWFrO2Nhc2UiQ2F0ZWdvcnkyMCI6Y2FzZSJjYXRlZ29yeTIwIjpjYXNlIjIwIjppPXZidC5zY2FsZU9yZGluYWwodmJ0LnNjaGVtZUNhdGVnb3J5MjApO2JyZWFrO2Nhc2UiQ2F0ZWdvcnkyMGIiOmNhc2UiY2F0ZWdvcnkyMGIiOmNhc2UiMjBiIjppPXZidC5zY2FsZU9yZGluYWwodmJ0LnNjaGVtZUNhdGVnb3J5MjBiKTticmVhaztjYXNlIkNhdGVnb3J5MjBjIjpjYXNlImNhdGVnb3J5MjBjIjpjYXNlIjIwYyI6aT12YnQuc2NhbGVPcmRpbmFsKHZidC5zY2hlbWVDYXRlZ29yeTIwYyk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIENvbG9yU2NhbGUgdHlwZSIpfXJldHVybiByLl9kM1NjYWxlPWksci5fcmFuZ2VMZW5ndGg9ci5fZDNTY2FsZS5yYW5nZSgpLmxlbmd0aCxyfXJldHVybiB5YnQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuZXh0ZW50T2ZWYWx1ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGJidC5BcnJheS51bmlxKHQpfSxlLnByb3RvdHlwZS5fZ2V0RXh0ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIGJidC5BcnJheS51bmlxKHRoaXMuX2dldEFsbEluY2x1ZGVkVmFsdWVzKCkpfSxlLmludmFsaWRhdGVDb2xvckNhY2hlPWZ1bmN0aW9uKCl7ZS5fcGxvdHRhYmxlQ29sb3JDYWNoZT1udWxsfSxlLl9nZXRQbG90dGFibGVDb2xvcnM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT12YnQuc2VsZWN0KCJib2R5IikuYXBwZW5kKCJwbG90dGFibGUtY29sb3ItdGVzdGVyIiksbj1iYnQuQ29sb3IuY29sb3JUZXN0KGUsIiIpLGk9MCxyPWJidC5Db2xvci5jb2xvclRlc3QoZSwicGxvdHRhYmxlLWNvbG9ycy0wIik7bnVsbCE9ciYmaTx0aGlzLl9NQVhJTVVNX0NPTE9SU19GUk9NX0NTUyYmKHIhPT1ufHxyIT09dFt0Lmxlbmd0aC0xXSk7KXQucHVzaChyKSxpKysscj1iYnQuQ29sb3IuY29sb3JUZXN0KGUsInBsb3R0YWJsZS1jb2xvcnMtIitpKTtyZXR1cm4gZS5yZW1vdmUoKSx0fSxlLnByb3RvdHlwZS5zY2FsZT1mdW5jdGlvbih0KXt2YXIgbj10aGlzLl9kM1NjYWxlKHQpLGk9dGhpcy5fdHJhY2tlci5nZXRJbmRleCh0KSxyPU1hdGguZmxvb3IoaS90aGlzLl9yYW5nZUxlbmd0aCk7aWYoMD09PXIpcmV0dXJuIG47dmFyIG89TWF0aC5sb2cociplLl9MT09QX0xJR0hURU5fRkFDVE9SKzEpO3JldHVybiBiYnQuQ29sb3IubGlnaHRlbkNvbG9yKG4sbyl9LGUucHJvdG90eXBlLl9nZXREb21haW49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFja2luZ1NjYWxlRG9tYWluKCl9LGUucHJvdG90eXBlLl9iYWNraW5nU2NhbGVEb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZDNTY2FsZS5kb21haW4oKToodGhpcy5fZDNTY2FsZS5kb21haW4odCksdGhpcy5fdHJhY2tlci5jbGVhcigpLHRoaXMpfSxlLnByb3RvdHlwZS5fZ2V0UmFuZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZDNTY2FsZS5yYW5nZSgpfSxlLnByb3RvdHlwZS5fc2V0UmFuZ2U9ZnVuY3Rpb24odCl7dGhpcy5fZDNTY2FsZS5yYW5nZSh0KSx0aGlzLl9yYW5nZUxlbmd0aD10Lmxlbmd0aH0sZS5fTE9PUF9MSUdIVEVOX0ZBQ1RPUj0xLjYsZS5fTUFYSU1VTV9DT0xPUlNfRlJPTV9DU1M9MjU2LGV9KSh4YnQuU2NhbGUpO19idC5Db2xvcj1TYnQ7dmFyIE1idD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoTWJ0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgRWJ0PUJPLFRidD13cHQsQ2J0PURfdCxBYnQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUobil7dm9pZCAwPT09biYmKG49ImxpbmVhciIpO3ZhciBpPXQuY2FsbCh0aGlzKXx8dGhpcztzd2l0Y2gobil7Y2FzZSJsaW5lYXIiOmkuX2NvbG9yU2NhbGU9VGJ0LnNjYWxlTGluZWFyKCk7YnJlYWs7Y2FzZSJsb2ciOmkuX2NvbG9yU2NhbGU9VGJ0LnNjYWxlTG9nKCk7YnJlYWs7Y2FzZSJzcXJ0IjppLl9jb2xvclNjYWxlPVRidC5zY2FsZVNxcnQoKTticmVhaztjYXNlInBvdyI6aS5fY29sb3JTY2FsZT1UYnQuc2NhbGVQb3coKX1pZihudWxsPT1pLl9jb2xvclNjYWxlKXRocm93IG5ldyBFcnJvcigidW5rbm93biBRdWFudGl0YXRpdmVTY2FsZSBzY2FsZSB0eXBlICIrbik7cmV0dXJuIGkucmFuZ2UoZS5SRURTKSxpfXJldHVybiBFYnQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuZXh0ZW50T2ZWYWx1ZXM9ZnVuY3Rpb24odCl7dmFyIGU9VGJ0LmV4dGVudCh0KTtyZXR1cm4gbnVsbD09ZVswXXx8bnVsbD09ZVsxXT9bXTplfSxlLnByb3RvdHlwZS5fZDNJbnRlcnBvbGF0ZWRTY2FsZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb2xvclNjYWxlLnJhbmdlKFswLDFdKS5pbnRlcnBvbGF0ZSh0aGlzLl9pbnRlcnBvbGF0ZUNvbG9ycygpKX0sZS5wcm90b3R5cGUuX2ludGVycG9sYXRlQ29sb3JzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fY29sb3JSYW5nZTtpZih0Lmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcigiQ29sb3Igc2NhbGUgYXJyYXlzIG11c3QgaGF2ZSBhdCBsZWFzdCB0d28gZWxlbWVudHMuIik7cmV0dXJuIGZ1bmN0aW9uKGUsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuPShlPU1hdGgubWF4KDAsTWF0aC5taW4oMSxlKSkpKih0Lmxlbmd0aC0xKSxpPU1hdGguZmxvb3Iobikscj1NYXRoLmNlaWwobiksbz1uLWk7cmV0dXJuIFRidC5pbnRlcnBvbGF0ZUxhYih0W2ldLHRbcl0pKG8pfX19LGUucHJvdG90eXBlLl9yZXNldFNjYWxlPWZ1bmN0aW9uKCl7dGhpcy5fZDNTY2FsZT10aGlzLl9kM0ludGVycG9sYXRlZFNjYWxlKCksdGhpcy5hdXRvRG9tYWluSWZBdXRvbWF0aWNNb2RlKCksdGhpcy5fZGlzcGF0Y2hVcGRhdGUoKX0sZS5wcm90b3R5cGUuYXV0b0RvbWFpbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2dldEFsbEluY2x1ZGVkVmFsdWVzKCk7cmV0dXJuIHQubGVuZ3RoPjAmJnRoaXMuX3NldERvbWFpbihbQ2J0Lk1hdGgubWluKHQsMCksQ2J0Lk1hdGgubWF4KHQsMCldKSx0aGlzfSxlLnByb3RvdHlwZS5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZDNTY2FsZSh0KX0sZS5wcm90b3R5cGUuX2dldERvbWFpbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9iYWNraW5nU2NhbGVEb21haW4oKX0sZS5wcm90b3R5cGUuX2JhY2tpbmdTY2FsZURvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9kM1NjYWxlLmRvbWFpbigpOih0aGlzLl9kM1NjYWxlLmRvbWFpbih0KSx0aGlzKX0sZS5wcm90b3R5cGUuX2dldFJhbmdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbG9yUmFuZ2V9LGUucHJvdG90eXBlLl9zZXRSYW5nZT1mdW5jdGlvbih0KXt0aGlzLl9jb2xvclJhbmdlPXQsdGhpcy5fcmVzZXRTY2FsZSgpfSxlLlJFRFM9WyIjRkZGRkZGIiwiI0ZGRjZFMSIsIiNGRUY0QzAiLCIjRkVEOTc2IiwiI0ZFQjI0QyIsIiNGRDhEM0MiLCIjRkM0RTJBIiwiI0UzMUExQyIsIiNCMTAwMjYiXSxlLkJMVUVTPVsiI0ZGRkZGRiIsIiNDQ0ZGRkYiLCIjQTVGRkZEIiwiIzg1RjdGQiIsIiM2RUQzRUYiLCIjNTVBN0UwIiwiIzQxN0ZEMCIsIiMyNTQ1RDMiLCIjMEIwMkUxIl0sZS5QT1NORUc9WyIjMEIwMkUxIiwiIzI1NDVEMyIsIiM0MTdGRDAiLCIjNTVBN0UwIiwiIzZFRDNFRiIsIiM4NUY3RkIiLCIjQTVGRkZEIiwiI0NDRkZGRiIsIiNGRkZGRkYiLCIjRkZGNkUxIiwiI0ZFRjRDMCIsIiNGRUQ5NzYiLCIjRkVCMjRDIiwiI0ZEOEQzQyIsIiNGQzRFMkEiLCIjRTMxQTFDIiwiI0IxMDAyNiJdLGV9KShsYnQuU2NhbGUpO01idC5JbnRlcnBvbGF0ZWRDb2xvcj1BYnQ7dmFyIGtidD17fSxMYnQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShMYnQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBQYnQ9Qk8sTmJ0PXdwdCxJYnQ9dGJ0LFJidD1EX3QsT2J0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBlLl90aWNrR2VuZXJhdG9yPWZ1bmN0aW9uKHQpe3JldHVybiB0LmRlZmF1bHRUaWNrcygpfSxlLl9wYWRQcm9wb3J0aW9uPS4wNSxlLl9zbmFwcGluZ0RvbWFpbkVuYWJsZWQ9ITAsZS5fcGFkZGluZ0V4Y2VwdGlvbnNQcm92aWRlcnM9bmV3IFJidC5TZXQsZX1yZXR1cm4gUGJ0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLmF1dG9Eb21haW49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZG9tYWluTWluPW51bGwsdGhpcy5fZG9tYWluTWF4PW51bGwsdC5wcm90b3R5cGUuYXV0b0RvbWFpbi5jYWxsKHRoaXMpLHRoaXN9LGUucHJvdG90eXBlLmF1dG9Eb21haW5JZkF1dG9tYXRpY01vZGU9ZnVuY3Rpb24oKXtpZihudWxsPT10aGlzLl9kb21haW5NaW58fG51bGw9PXRoaXMuX2RvbWFpbk1heCl7dmFyIGU9dGhpcy5fZ2V0RXh0ZW50KCk7aWYobnVsbCE9dGhpcy5fZG9tYWluTWluKXt2YXIgbj1lWzFdO3JldHVybiB0aGlzLl9kb21haW5NaW4+PW4mJihuPXRoaXMuX2V4cGFuZFNpbmdsZVZhbHVlRG9tYWluKFt0aGlzLl9kb21haW5NaW4sdGhpcy5fZG9tYWluTWluXSlbMV0pLHZvaWQgdGhpcy5fc2V0RG9tYWluKFt0aGlzLl9kb21haW5NaW4sbl0pfWlmKG51bGwhPXRoaXMuX2RvbWFpbk1heCl7dmFyIGk9ZVswXTtyZXR1cm4gdGhpcy5fZG9tYWluTWF4PD1pJiYoaT10aGlzLl9leHBhbmRTaW5nbGVWYWx1ZURvbWFpbihbdGhpcy5fZG9tYWluTWF4LHRoaXMuX2RvbWFpbk1heF0pWzBdKSx2b2lkIHRoaXMuX3NldERvbWFpbihbaSx0aGlzLl9kb21haW5NYXhdKX10LnByb3RvdHlwZS5hdXRvRG9tYWluSWZBdXRvbWF0aWNNb2RlLmNhbGwodGhpcyl9ZWxzZSB0aGlzLl9zZXREb21haW4oW3RoaXMuX2RvbWFpbk1pbix0aGlzLl9kb21haW5NYXhdKX0sZS5wcm90b3R5cGUuX2dldFVuYm91bmRlZEV4dGVudD1mdW5jdGlvbih0KXt2b2lkIDA9PT10JiYodD0hMSk7dmFyIGU9dGhpcy5fZ2V0QWxsSW5jbHVkZWRWYWx1ZXModCksbj10aGlzLl9kZWZhdWx0RXh0ZW50KCk7aWYoMCE9PWUubGVuZ3RoKXt2YXIgaT1bUmJ0Lk1hdGgubWluKGUsblswXSksUmJ0Lk1hdGgubWF4KGUsblsxXSldO249dGhpcy5fcGFkRG9tYWluKGkpfXJldHVybiBufSxlLnByb3RvdHlwZS5fZ2V0RXh0ZW50PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZ2V0VW5ib3VuZGVkRXh0ZW50KCk7cmV0dXJuIG51bGwhPXRoaXMuX2RvbWFpbk1pbiYmKHRbMF09dGhpcy5fZG9tYWluTWluKSxudWxsIT10aGlzLl9kb21haW5NYXgmJih0WzFdPXRoaXMuX2RvbWFpbk1heCksdH0sZS5wcm90b3R5cGUuYWRkUGFkZGluZ0V4Y2VwdGlvbnNQcm92aWRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFkZGluZ0V4Y2VwdGlvbnNQcm92aWRlcnMuYWRkKHQpLHRoaXMuYXV0b0RvbWFpbklmQXV0b21hdGljTW9kZSgpLHRoaXN9LGUucHJvdG90eXBlLnJlbW92ZVBhZGRpbmdFeGNlcHRpb25zUHJvdmlkZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhZGRpbmdFeGNlcHRpb25zUHJvdmlkZXJzLmRlbGV0ZSh0KSx0aGlzLmF1dG9Eb21haW5JZkF1dG9tYXRpY01vZGUoKSx0aGlzfSxlLnByb3RvdHlwZS5wYWRQcm9wb3J0aW9uPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3BhZFByb3BvcnRpb247aWYodDwwKXRocm93IG5ldyBFcnJvcigicGFkUHJvcG9ydGlvbiBtdXN0IGJlIG5vbi1uZWdhdGl2ZSIpO3JldHVybiB0aGlzLl9wYWRQcm9wb3J0aW9uPXQsdGhpcy5hdXRvRG9tYWluSWZBdXRvbWF0aWNNb2RlKCksdGhpc30sZS5wcm90b3R5cGUuX3BhZERvbWFpbj1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKHRbMF0udmFsdWVPZigpPT09dFsxXS52YWx1ZU9mKCkpcmV0dXJuIHRoaXMuX2V4cGFuZFNpbmdsZVZhbHVlRG9tYWluKHQpO2lmKDA9PT10aGlzLl9wYWRQcm9wb3J0aW9uKXJldHVybiB0O3ZhciBuPXRoaXMuX3BhZFByb3BvcnRpb24vMixpPXRbMF0scj10WzFdLG89ITEsYT0hMTt0aGlzLl9wYWRkaW5nRXhjZXB0aW9uc1Byb3ZpZGVycy5mb3JFYWNoKChmdW5jdGlvbih0KXt0KGUpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QudmFsdWVPZigpPT09aS52YWx1ZU9mKCkmJihvPSEwKSx0LnZhbHVlT2YoKT09PXIudmFsdWVPZigpJiYoYT0hMCl9KSl9KSk7dmFyIHM9dGhpcy5fYmFja2luZ1NjYWxlRG9tYWluKCk7dGhpcy5fYmFja2luZ1NjYWxlRG9tYWluKHQpO3ZhciBsPW8/aTp0aGlzLmludmVydCh0aGlzLnNjYWxlKGkpLSh0aGlzLnNjYWxlKHIpLXRoaXMuc2NhbGUoaSkpKm4pLGM9YT9yOnRoaXMuaW52ZXJ0KHRoaXMuc2NhbGUocikrKHRoaXMuc2NhbGUociktdGhpcy5zY2FsZShpKSkqbik7cmV0dXJuIHRoaXMuX2JhY2tpbmdTY2FsZURvbWFpbihzKSx0aGlzLl9zbmFwcGluZ0RvbWFpbkVuYWJsZWQ/dGhpcy5fbmljZURvbWFpbihbbCxjXSk6W2wsY119LGUucHJvdG90eXBlLnNuYXBwaW5nRG9tYWluRW5hYmxlZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9zbmFwcGluZ0RvbWFpbkVuYWJsZWQ6KHRoaXMuX3NuYXBwaW5nRG9tYWluRW5hYmxlZD10LHRoaXMuYXV0b0RvbWFpbklmQXV0b21hdGljTW9kZSgpLHRoaXMpfSxlLnByb3RvdHlwZS5fZXhwYW5kU2luZ2xlVmFsdWVEb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIHR9LGUucHJvdG90eXBlLmludmVydD1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlIGludmVydCIpfSxlLnByb3RvdHlwZS5kb21haW49ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWUmJih0aGlzLl9kb21haW5NaW49ZVswXSx0aGlzLl9kb21haW5NYXg9ZVsxXSksdC5wcm90b3R5cGUuZG9tYWluLmNhbGwodGhpcyxlKX0sZS5wcm90b3R5cGUuZG9tYWluTWluPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuZG9tYWluKClbMF06KHRoaXMuX2RvbWFpbk1pbj10LHRoaXMuYXV0b0RvbWFpbklmQXV0b21hdGljTW9kZSgpLHRoaXMpfSxlLnByb3RvdHlwZS5kb21haW5NYXg9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5kb21haW4oKVsxXToodGhpcy5fZG9tYWluTWF4PXQsdGhpcy5hdXRvRG9tYWluSWZBdXRvbWF0aWNNb2RlKCksdGhpcyl9LGUucHJvdG90eXBlLmV4dGVudE9mVmFsdWVzPWZ1bmN0aW9uKHQpe3ZhciBlPU5idC5leHRlbnQodC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBSYnQuTWF0aC5pc1ZhbGlkTnVtYmVyKCt0KX0pKSk7cmV0dXJuIG51bGw9PWVbMF18fG51bGw9PWVbMV0/W106ZX0sZS5wcm90b3R5cGUuem9vbT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7dGhpcy5kb21haW4odGhpcy5yYW5nZSgpLm1hcCgoZnVuY3Rpb24oaSl7cmV0dXJuIG4uaW52ZXJ0KElidC56b29tT3V0KGksdCxlKSl9KSkpfSxlLnByb3RvdHlwZS5wYW49ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLmRvbWFpbih0aGlzLnJhbmdlKCkubWFwKChmdW5jdGlvbihuKXtyZXR1cm4gZS5pbnZlcnQobit0KX0pKSl9LGUucHJvdG90eXBlLnNjYWxlVHJhbnNmb3JtYXRpb249ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSBzY2FsZVRyYW5zZm9ybWF0aW9uIil9LGUucHJvdG90eXBlLmludmVydGVkVHJhbnNmb3JtYXRpb249ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSBpbnZlcnRlZFRyYW5zZm9ybWF0aW9uIil9LGUucHJvdG90eXBlLmdldFRyYW5zZm9ybWF0aW9uRXh0ZW50PWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSBnZXRUcmFuc2Zvcm1hdGlvbkV4dGVudCIpfSxlLnByb3RvdHlwZS5nZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbj1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgZ2V0VHJhbnNmb3JtYXRpb25Eb21haW4iKX0sZS5wcm90b3R5cGUuc2V0VHJhbnNmb3JtYXRpb25Eb21haW49ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSBzZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbiIpfSxlLnByb3RvdHlwZS5fc2V0RG9tYWluPWZ1bmN0aW9uKGUpe3ZhciBuPWZ1bmN0aW9uKHQpe3JldHVybiBSYnQuTWF0aC5pc05hTih0KXx8dD09PTEvMHx8dD09PS0xLzB9O24oZVswXSl8fG4oZVsxXSk/UmJ0LldpbmRvdy53YXJuKCJXYXJuaW5nOiBRdWFudGl0YXRpdmVTY2FsZXMgY2Fubm90IHRha2UgTmFOIG9yIEluZmluaXR5IGFzIGEgZG9tYWluIHZhbHVlLiBJZ25vcmluZy4iKTp0LnByb3RvdHlwZS5fc2V0RG9tYWluLmNhbGwodGhpcyxlKX0sZS5wcm90b3R5cGUuZGVmYXVsdFRpY2tzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSBfZ2V0RGVmYXVsdFRpY2tzIil9LGUucHJvdG90eXBlLnRpY2tzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3RpY2tHZW5lcmF0b3IodGhpcyl9LGUucHJvdG90eXBlLl9uaWNlRG9tYWluPWZ1bmN0aW9uKHQsZSl7dGhyb3cgbmV3IEVycm9yKCJTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSBfbmljZURvbWFpbiIpfSxlLnByb3RvdHlwZS5fZGVmYXVsdEV4dGVudD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgX2RlZmF1bHRFeHRlbnQiKX0sZS5wcm90b3R5cGUudGlja0dlbmVyYXRvcj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl90aWNrR2VuZXJhdG9yOih0aGlzLl90aWNrR2VuZXJhdG9yPXQsdGhpcyl9LGUuX0RFRkFVTFRfTlVNX1RJQ0tTPTEwLGV9KShsYnQuU2NhbGUpO0xidC5RdWFudGl0YXRpdmVTY2FsZT1PYnQsCi8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShrYnQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB6YnQ9Qk8sRGJ0PXdwdCxCYnQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGUuX2QzU2NhbGU9RGJ0LnNjYWxlTGluZWFyKCksZX1yZXR1cm4gemJ0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLl9kZWZhdWx0RXh0ZW50PWZ1bmN0aW9uKCl7cmV0dXJuWzAsMV19LGUucHJvdG90eXBlLl9leHBhbmRTaW5nbGVWYWx1ZURvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gdFswXT09PXRbMV0/W3RbMF0tMSx0WzFdKzFdOnR9LGUucHJvdG90eXBlLnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kM1NjYWxlKHQpfSxlLnByb3RvdHlwZS5zY2FsZVRyYW5zZm9ybWF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNjYWxlKHQpfSxlLnByb3RvdHlwZS5pbnZlcnRlZFRyYW5zZm9ybWF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmludmVydCh0KX0sZS5wcm90b3R5cGUuZ2V0VHJhbnNmb3JtYXRpb25FeHRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZ2V0VW5ib3VuZGVkRXh0ZW50KCEwKX0sZS5wcm90b3R5cGUuZ2V0VHJhbnNmb3JtYXRpb25Eb21haW49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21haW4oKX0sZS5wcm90b3R5cGUuc2V0VHJhbnNmb3JtYXRpb25Eb21haW49ZnVuY3Rpb24odCl7dGhpcy5kb21haW4odCl9LGUucHJvdG90eXBlLl9nZXREb21haW49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFja2luZ1NjYWxlRG9tYWluKCl9LGUucHJvdG90eXBlLl9iYWNraW5nU2NhbGVEb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZDNTY2FsZS5kb21haW4oKToodGhpcy5fZDNTY2FsZS5kb21haW4odCksdGhpcyl9LGUucHJvdG90eXBlLl9nZXRSYW5nZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kM1NjYWxlLnJhbmdlKCl9LGUucHJvdG90eXBlLl9zZXRSYW5nZT1mdW5jdGlvbih0KXt0aGlzLl9kM1NjYWxlLnJhbmdlKHQpfSxlLnByb3RvdHlwZS5pbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2QzU2NhbGUuaW52ZXJ0KHQpfSxlLnByb3RvdHlwZS5kZWZhdWx0VGlja3M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZDNTY2FsZS50aWNrcyhlLl9ERUZBVUxUX05VTV9USUNLUyl9LGUucHJvdG90eXBlLl9uaWNlRG9tYWluPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX2QzU2NhbGUuY29weSgpLmRvbWFpbih0KS5uaWNlKGUpLmRvbWFpbigpfSxlfSkoTGJ0LlF1YW50aXRhdGl2ZVNjYWxlKTtrYnQuTGluZWFyPUJidDt2YXIgSGJ0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShIYnQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBGYnQ9Qk8sVmJ0PXdwdCxVYnQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dm9pZCAwPT09ZSYmKGU9MTApO3ZhciBuPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gbi5fZDNTY2FsZT1WYnQuc2NhbGVMb2coKS5iYXNlKGUpLG4uX3NldERvbWFpbihuLl9kZWZhdWx0RXh0ZW50KCkpLG59cmV0dXJuIEZidC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fZGVmYXVsdEV4dGVudD1mdW5jdGlvbigpe3JldHVyblsxLHRoaXMuX2QzU2NhbGUuYmFzZSgpXX0sZS5wcm90b3R5cGUuX2V4cGFuZFNpbmdsZVZhbHVlRG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiB0WzBdPT09dFsxXT9bdFswXS90aGlzLl9kM1NjYWxlLmJhc2UoKSx0WzFdKnRoaXMuX2QzU2NhbGUuYmFzZSgpXTp0fSxlLnByb3RvdHlwZS5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZDNTY2FsZSh0KX0sZS5wcm90b3R5cGUuc2NhbGVUcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zY2FsZSh0KX0sZS5wcm90b3R5cGUuaW52ZXJ0ZWRUcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbnZlcnQodCl9LGUucHJvdG90eXBlLmdldFRyYW5zZm9ybWF0aW9uRXh0ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2dldFVuYm91bmRlZEV4dGVudCghMCl9LGUucHJvdG90eXBlLmdldFRyYW5zZm9ybWF0aW9uRG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tYWluKCl9LGUucHJvdG90eXBlLnNldFRyYW5zZm9ybWF0aW9uRG9tYWluPWZ1bmN0aW9uKHQpe3RoaXMuZG9tYWluKHQpfSxlLnByb3RvdHlwZS5fZ2V0RG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JhY2tpbmdTY2FsZURvbWFpbigpfSxlLnByb3RvdHlwZS5fYmFja2luZ1NjYWxlRG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2QzU2NhbGUuZG9tYWluKCk6KHRoaXMuX2QzU2NhbGUuZG9tYWluKHQpLHRoaXMpfSxlLnByb3RvdHlwZS5fZ2V0UmFuZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZDNTY2FsZS5yYW5nZSgpfSxlLnByb3RvdHlwZS5fc2V0UmFuZ2U9ZnVuY3Rpb24odCl7dGhpcy5fZDNTY2FsZS5yYW5nZSh0KX0sZS5wcm90b3R5cGUuaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kM1NjYWxlLmludmVydCh0KX0sZS5wcm90b3R5cGUuZGVmYXVsdFRpY2tzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2QzU2NhbGUudGlja3MoZS5fREVGQVVMVF9OVU1fVElDS1MpfSxlLnByb3RvdHlwZS5fbmljZURvbWFpbj1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9kM1NjYWxlLmNvcHkoKS5kb21haW4odCkubmljZSgpLmRvbWFpbigpfSxlfSkoTGJ0LlF1YW50aXRhdGl2ZVNjYWxlKTtIYnQuTG9nPVVidDt2YXIgamJ0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShqYnQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBHYnQ9Qk8sV2J0PXdwdCxxYnQ9RF90LFlidD1YdnQsWGJ0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPTEwKTt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7aWYobi5fbG9nVGlja0dlbmVyYXRvcj1mdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuW3QsZSxuXS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LWV9KSlbMV19LGk9cWJ0Lk1hdGgubWluKG4uX3VudHJhbnNmb3JtZWREb21haW4sMCkscj1xYnQuTWF0aC5tYXgobi5fdW50cmFuc2Zvcm1lZERvbWFpbiwwKSxvPWksYT1lKGksciwtbi5fcGl2b3QpLHM9ZShpLHIsbi5fcGl2b3QpLGw9cixjPW4uX2xvZ1RpY2tzKC1hLC1vKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybi10fSkpLnJldmVyc2UoKSx1PW4uX2xvZ1RpY2tzKHMsbCksaD1NYXRoLm1heChpLC1uLl9waXZvdCksZD1NYXRoLm1pbihyLG4uX3Bpdm90KSxwPVdidC5zY2FsZUxpbmVhcigpLmRvbWFpbihbaCxkXSkudGlja3Mobi5faG93TWFueVRpY2tzKGgsZCkpLGY9Yy5jb25jYXQocCkuY29uY2F0KHUpO3JldHVybiBmLmxlbmd0aDw9MSYmKGY9V2J0LnNjYWxlTGluZWFyKCkuZG9tYWluKFtpLHJdKS50aWNrcyhZYnQuTW9kaWZpZWRMb2cuX0RFRkFVTFRfTlVNX1RJQ0tTKSksZn0sbi5fZDNTY2FsZT1XYnQuc2NhbGVMaW5lYXIoKSxuLl9iYXNlPWUsbi5fcGl2b3Q9bi5fYmFzZSxuLl9zZXREb21haW4obi5fZGVmYXVsdEV4dGVudCgpKSxuLnRpY2tHZW5lcmF0b3Iobi5fbG9nVGlja0dlbmVyYXRvciksZTw9MSl0aHJvdyBuZXcgRXJyb3IoIk1vZGlmaWVkTG9nU2NhbGU6IFRoZSBiYXNlIG11c3QgYmUgPiAxIik7cmV0dXJuIG59cmV0dXJuIEdidC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fYWRqdXN0ZWRMb2c9ZnVuY3Rpb24odCl7dmFyIGU9dDwwPy0xOjE7cmV0dXJuKHQqPWUpPHRoaXMuX3Bpdm90JiYodCs9KHRoaXMuX3Bpdm90LXQpL3RoaXMuX3Bpdm90KSx0PU1hdGgubG9nKHQpL01hdGgubG9nKHRoaXMuX2Jhc2UpLHQqPWV9LGUucHJvdG90eXBlLl9pbnZlcnRlZEFkanVzdGVkTG9nPWZ1bmN0aW9uKHQpe3ZhciBlPXQ8MD8tMToxO3JldHVybiB0Kj1lLCh0PU1hdGgucG93KHRoaXMuX2Jhc2UsdCkpPHRoaXMuX3Bpdm90JiYodD10aGlzLl9waXZvdCoodC0xKS8odGhpcy5fcGl2b3QtMSkpLHQqPWV9LGUucHJvdG90eXBlLnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kM1NjYWxlKHRoaXMuX2FkanVzdGVkTG9nKHQpKX0sZS5wcm90b3R5cGUuaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbnZlcnRlZEFkanVzdGVkTG9nKHRoaXMuX2QzU2NhbGUuaW52ZXJ0KHQpKX0sZS5wcm90b3R5cGUuc2NhbGVUcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zY2FsZSh0KX0sZS5wcm90b3R5cGUuaW52ZXJ0ZWRUcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbnZlcnQodCl9LGUucHJvdG90eXBlLmdldFRyYW5zZm9ybWF0aW9uRXh0ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2dldFVuYm91bmRlZEV4dGVudCghMCl9LGUucHJvdG90eXBlLmdldFRyYW5zZm9ybWF0aW9uRG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tYWluKCl9LGUucHJvdG90eXBlLnNldFRyYW5zZm9ybWF0aW9uRG9tYWluPWZ1bmN0aW9uKHQpe3RoaXMuZG9tYWluKHQpfSxlLnByb3RvdHlwZS5fZ2V0RG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3VudHJhbnNmb3JtZWREb21haW59LGUucHJvdG90eXBlLl9zZXREb21haW49ZnVuY3Rpb24oZSl7dGhpcy5fdW50cmFuc2Zvcm1lZERvbWFpbj1lO3ZhciBuPVt0aGlzLl9hZGp1c3RlZExvZyhlWzBdKSx0aGlzLl9hZGp1c3RlZExvZyhlWzFdKV07dC5wcm90b3R5cGUuX3NldERvbWFpbi5jYWxsKHRoaXMsbil9LGUucHJvdG90eXBlLl9iYWNraW5nU2NhbGVEb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZDNTY2FsZS5kb21haW4oKToodGhpcy5fZDNTY2FsZS5kb21haW4odCksdGhpcyl9LGUucHJvdG90eXBlLl9sb2dUaWNrcz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMsaT10aGlzLl9ob3dNYW55VGlja3ModCxlKTtpZigwPT09aSlyZXR1cm5bXTt2YXIgcj1NYXRoLmZsb29yKE1hdGgubG9nKHQpL01hdGgubG9nKHRoaXMuX2Jhc2UpKSxvPU1hdGguY2VpbChNYXRoLmxvZyhlKS9NYXRoLmxvZyh0aGlzLl9iYXNlKSksYT1XYnQucmFuZ2UobyxyLC1NYXRoLmNlaWwoKG8tcikvaSkpLHM9V2J0LnJhbmdlKHRoaXMuX2Jhc2UsMSwtKHRoaXMuX2Jhc2UtMSkpLm1hcChNYXRoLmZsb29yKSxsPXFidC5BcnJheS51bmlxKHMpLGM9YS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBsLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgucG93KG4uX2Jhc2UsdC0xKSplfSkpfSkpO3JldHVybiBxYnQuQXJyYXkuZmxhdHRlbihjKS5maWx0ZXIoKGZ1bmN0aW9uKG4pe3JldHVybiB0PD1uJiZuPD1lfSkpLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQtZX0pKX0sZS5wcm90b3R5cGUuX2hvd01hbnlUaWNrcz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2FkanVzdGVkTG9nKHFidC5NYXRoLm1pbih0aGlzLl91bnRyYW5zZm9ybWVkRG9tYWluLDApKSxpPXRoaXMuX2FkanVzdGVkTG9nKHFidC5NYXRoLm1heCh0aGlzLl91bnRyYW5zZm9ybWVkRG9tYWluLDApKSxyPXRoaXMuX2FkanVzdGVkTG9nKHQpLG89dGhpcy5fYWRqdXN0ZWRMb2coZSk7cmV0dXJuIE1hdGguY2VpbCgoby1yKS8oaS1uKSpZYnQuTW9kaWZpZWRMb2cuX0RFRkFVTFRfTlVNX1RJQ0tTKX0sZS5wcm90b3R5cGUuX25pY2VEb21haW49ZnVuY3Rpb24odCxlKXtyZXR1cm4gdH0sZS5wcm90b3R5cGUuX2RlZmF1bHRFeHRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm5bMCx0aGlzLl9iYXNlXX0sZS5wcm90b3R5cGUuX2V4cGFuZFNpbmdsZVZhbHVlRG9tYWluPWZ1bmN0aW9uKHQpe2lmKHRbMF09PT10WzFdKXt2YXIgZT10WzBdO3JldHVybiBlPjA/W2UvdGhpcy5fYmFzZSxlKnRoaXMuX2Jhc2VdOjA9PT1lP1stdGhpcy5fYmFzZSx0aGlzLl9iYXNlXTpbZSp0aGlzLl9iYXNlLGUvdGhpcy5fYmFzZV19cmV0dXJuIHR9LGUucHJvdG90eXBlLl9nZXRSYW5nZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kM1NjYWxlLnJhbmdlKCl9LGUucHJvdG90eXBlLl9zZXRSYW5nZT1mdW5jdGlvbih0KXt0aGlzLl9kM1NjYWxlLnJhbmdlKHQpfSxlLnByb3RvdHlwZS5kZWZhdWx0VGlja3M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZDNTY2FsZS50aWNrcyhZYnQuTW9kaWZpZWRMb2cuX0RFRkFVTFRfTlVNX1RJQ0tTKX0sZX0pKExidC5RdWFudGl0YXRpdmVTY2FsZSk7amJ0Lk1vZGlmaWVkTG9nPVhidDt2YXIgJGJ0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkYnQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBLYnQ9Qk8sWmJ0PXdwdCxKYnQ9WXZ0LFFidD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gZS5fZDNTY2FsZT1aYnQuc2NhbGVUaW1lKCksZS5hdXRvRG9tYWluKCksZX1yZXR1cm4gS2J0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLnRpY2tJbnRlcnZhbD1mdW5jdGlvbih0LG4saSl7dm9pZCAwPT09biYmKG49MSksdm9pZCAwPT09aSYmKGk9ITEpO3ZhciByPVpidC5zY2FsZVRpbWUoKSxvPWUudGltZUludGVydmFsVG9EM1RpbWUodCxpKS5ldmVyeShuKTtyZXR1cm4gci5kb21haW4odGhpcy5kb21haW4oKSksci5yYW5nZSh0aGlzLnJhbmdlKCkpLHIudGlja3Mobyl9LGUucHJvdG90eXBlLl9zZXREb21haW49ZnVuY3Rpb24oZSl7aWYoZVsxXTxlWzBdKXRocm93IG5ldyBFcnJvcigiU2NhbGUuVGltZSBkb21haW4gdmFsdWVzIG11c3QgYmUgaW4gY2hyb25vbG9naWNhbCBvcmRlciIpO3JldHVybiB0LnByb3RvdHlwZS5fc2V0RG9tYWluLmNhbGwodGhpcyxlKX0sZS5wcm90b3R5cGUuX2RlZmF1bHRFeHRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm5bbmV3IERhdGUoIjE5NzAtMDEtMDEiKSxuZXcgRGF0ZSgiMTk3MC0wMS0wMiIpXX0sZS5wcm90b3R5cGUuX2V4cGFuZFNpbmdsZVZhbHVlRG9tYWluPWZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0uZ2V0VGltZSgpLG49dFsxXS5nZXRUaW1lKCk7aWYoZT09PW4pe3ZhciBpPW5ldyBEYXRlKGUpO2kuc2V0RGF0ZShpLmdldERhdGUoKS0xKTt2YXIgcj1uZXcgRGF0ZShuKTtyZXR1cm4gci5zZXREYXRlKHIuZ2V0RGF0ZSgpKzEpLFtpLHJdfXJldHVybiB0fSxlLnByb3RvdHlwZS5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZDNTY2FsZSh0KX0sZS5wcm90b3R5cGUuc2NhbGVUcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zY2FsZShuZXcgRGF0ZSh0KSl9LGUucHJvdG90eXBlLmludmVydGVkVHJhbnNmb3JtYXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaW52ZXJ0KHQpLmdldFRpbWUoKX0sZS5wcm90b3R5cGUuZ2V0VHJhbnNmb3JtYXRpb25FeHRlbnQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9nZXRVbmJvdW5kZWRFeHRlbnQoITApO3JldHVyblt0WzBdLnZhbHVlT2YoKSx0WzFdLnZhbHVlT2YoKV19LGUucHJvdG90eXBlLmdldFRyYW5zZm9ybWF0aW9uRG9tYWluPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5kb21haW4oKTtyZXR1cm5bdFswXS52YWx1ZU9mKCksdFsxXS52YWx1ZU9mKCldfSxlLnByb3RvdHlwZS5zZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbj1mdW5jdGlvbih0KXt2YXIgZT10WzFdO3RoaXMuZG9tYWluKFtuZXcgRGF0ZSh0WzBdKSxuZXcgRGF0ZShlKV0pfSxlLnByb3RvdHlwZS5fZ2V0RG9tYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JhY2tpbmdTY2FsZURvbWFpbigpfSxlLnByb3RvdHlwZS5fYmFja2luZ1NjYWxlRG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2QzU2NhbGUuZG9tYWluKCk6KHRoaXMuX2QzU2NhbGUuZG9tYWluKHQpLHRoaXMpfSxlLnByb3RvdHlwZS5fZ2V0UmFuZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZDNTY2FsZS5yYW5nZSgpfSxlLnByb3RvdHlwZS5fc2V0UmFuZ2U9ZnVuY3Rpb24odCl7dGhpcy5fZDNTY2FsZS5yYW5nZSh0KX0sZS5wcm90b3R5cGUuaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kM1NjYWxlLmludmVydCh0KX0sZS5wcm90b3R5cGUuZGVmYXVsdFRpY2tzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2QzU2NhbGUudGlja3MoZS5fREVGQVVMVF9OVU1fVElDS1MpfSxlLnByb3RvdHlwZS5fbmljZURvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZDNTY2FsZS5jb3B5KCkuZG9tYWluKHQpLm5pY2UoKS5kb21haW4oKX0sZS50aW1lSW50ZXJ2YWxUb0QzVGltZT1mdW5jdGlvbih0LGUpe3N3aXRjaCh0KXtjYXNlIEpidC5UaW1lSW50ZXJ2YWwuc2Vjb25kOnJldHVybiBlP1pidC51dGNTZWNvbmQ6WmJ0LnRpbWVTZWNvbmQ7Y2FzZSBKYnQuVGltZUludGVydmFsLm1pbnV0ZTpyZXR1cm4gZT9aYnQudXRjTWludXRlOlpidC50aW1lTWludXRlO2Nhc2UgSmJ0LlRpbWVJbnRlcnZhbC5ob3VyOnJldHVybiBlP1pidC51dGNIb3VyOlpidC50aW1lSG91cjtjYXNlIEpidC5UaW1lSW50ZXJ2YWwuZGF5OnJldHVybiBlP1pidC51dGNEYXk6WmJ0LnRpbWVEYXk7Y2FzZSBKYnQuVGltZUludGVydmFsLndlZWs6cmV0dXJuIGU/WmJ0LnV0Y1dlZWs6WmJ0LnRpbWVXZWVrO2Nhc2UgSmJ0LlRpbWVJbnRlcnZhbC5tb250aDpyZXR1cm4gZT9aYnQudXRjTW9udGg6WmJ0LnRpbWVNb250aDtjYXNlIEpidC5UaW1lSW50ZXJ2YWwueWVhcjpyZXR1cm4gZT9aYnQudXRjWWVhcjpaYnQudGltZVllYXI7ZGVmYXVsdDp0aHJvdyBFcnJvcigiVGltZUludGVydmFsIHNwZWNpZmllZCBkb2VzIG5vdCBleGlzdDogIit0KX19LGV9KShMYnQuUXVhbnRpdGF0aXZlU2NhbGUpOyRidC5UaW1lPVFidCwoZnVuY3Rpb24odCl7Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT1CTzt0LlRpY2tHZW5lcmF0b3JzPSR2dCxlLl9fZXhwb3J0U3RhcihRdnQsdCksZS5fX2V4cG9ydFN0YXIoX2J0LHQpLGUuX19leHBvcnRTdGFyKE1idCx0KSxlLl9fZXhwb3J0U3RhcihrYnQsdCksZS5fX2V4cG9ydFN0YXIoSGJ0LHQpLGUuX19leHBvcnRTdGFyKGpidCx0KSxlLl9fZXhwb3J0U3RhcigkYnQsdCk7dmFyIG49UXZ0LGk9TGJ0O3QuaXNUcmFuc2Zvcm1hYmxlPWZ1bmN0aW9uIHIodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBpLlF1YW50aXRhdGl2ZVNjYWxlfHx0IGluc3RhbmNlb2Ygbi5DYXRlZ29yeX19KShYdnQpLChmdW5jdGlvbih0KXsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPUJPLG49d3B0LGk9TGd0LHI9cHZ0LG89WHZ0LGE9RF90LHM9Ymd0LGw9ZHZ0O3QuVGltZUludGVydmFsPXMubWFrZUVudW0oWyJzZWNvbmQiLCJtaW51dGUiLCJob3VyIiwiZGF5Iiwid2VlayIsIm1vbnRoIiwieWVhciJdKSx0LlRpbWVBeGlzT3JpZW50YXRpb249cy5tYWtlRW51bShbInRvcCIsImJvdHRvbSJdKSx0LlRpZXJMYWJlbFBvc2l0aW9uPXMubWFrZUVudW0oWyJiZXR3ZWVuIiwiY2VudGVyIl0pO3ZhciBjLHU9KGZ1bmN0aW9uKHMpe2Z1bmN0aW9uIHUodCxlLG4pe3ZhciBpPXMuY2FsbCh0aGlzLHQsZSl8fHRoaXM7cmV0dXJuIGkuX21heFRpbWVJbnRlcnZhbFByZWNpc2lvbj1udWxsLGkuX3RpZXJMYWJlbFBvc2l0aW9ucz1bXSxpLl91c2VVVEM9bixpLmFkZENsYXNzKCJ0aW1lLWF4aXMiKSxpLnRpY2tMYWJlbFBhZGRpbmcoNSksaS5heGlzQ29uZmlndXJhdGlvbnModS5fREVGQVVMVF9USU1FX0FYSVNfQ09ORklHVVJBVElPTlMoaS5fdXNlVVRDKSksaS5hbm5vdGF0aW9uRm9ybWF0dGVyKHIudGltZSgiJWEgJWIgJWQsICVZIixpLl91c2VVVEMpKSxpfXJldHVybiBlLl9fZXh0ZW5kcyh1LHMpLHUucHJvdG90eXBlLnRpZXJMYWJlbFBvc2l0aW9ucz1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl90aWVyTGFiZWxQb3NpdGlvbnM7aWYoIXQuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiJiZXR3ZWVuIj09PXQudG9Mb3dlckNhc2UoKXx8ImNlbnRlciI9PT10LnRvTG93ZXJDYXNlKCl9KSkpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBwb3NpdGlvbiBmb3IgdGllciBsYWJlbHMiKTtyZXR1cm4gdGhpcy5fdGllckxhYmVsUG9zaXRpb25zPXQsdGhpcy5yZWRyYXcoKSx0aGlzfSx1LnByb3RvdHlwZS5tYXhUaW1lSW50ZXJ2YWxQcmVjaXNpb249ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fbWF4VGltZUludGVydmFsUHJlY2lzaW9uOih0aGlzLl9tYXhUaW1lSW50ZXJ2YWxQcmVjaXNpb249dCx0aGlzLnJlZHJhdygpLHRoaXMpfSx1LnByb3RvdHlwZS5jdXJyZW50QXhpc0NvbmZpZ3VyYXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcG9zc2libGVUaW1lQXhpc0NvbmZpZ3VyYXRpb25zW3RoaXMuX21vc3RQcmVjaXNlQ29uZmlnSW5kZXhdfSx1LnByb3RvdHlwZS5heGlzQ29uZmlndXJhdGlvbnM9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fcG9zc2libGVUaW1lQXhpc0NvbmZpZ3VyYXRpb25zO3RoaXMuX3Bvc3NpYmxlVGltZUF4aXNDb25maWd1cmF0aW9ucz10LHRoaXMuX251bVRpZXJzPWEuTWF0aC5tYXgodGhpcy5fcG9zc2libGVUaW1lQXhpc0NvbmZpZ3VyYXRpb25zLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQubGVuZ3RofSkpLDApLHRoaXMuX2lzQW5jaG9yZWQmJnRoaXMuX3NldHVwRG9tRWxlbWVudHMoKTtmb3IodmFyIGU9dGhpcy50aWVyTGFiZWxQb3NpdGlvbnMoKSxuPVtdLGk9MDtpPHRoaXMuX251bVRpZXJzO2krKyluLnB1c2goZVtpXXx8ImJldHdlZW4iKTtyZXR1cm4gdGhpcy50aWVyTGFiZWxQb3NpdGlvbnMobiksdGhpcy5yZWRyYXcoKSx0aGlzfSx1LnByb3RvdHlwZS5fZ2V0TW9zdFByZWNpc2VDb25maWd1cmF0aW9uSW5kZXg9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5fcG9zc2libGVUaW1lQXhpc0NvbmZpZ3VyYXRpb25zLmxlbmd0aDtyZXR1cm4gdGhpcy5fcG9zc2libGVUaW1lQXhpc0NvbmZpZ3VyYXRpb25zLmZvckVhY2goKGZ1bmN0aW9uKG4saSl7aTxlJiZuLmV2ZXJ5KChmdW5jdGlvbihlKXtyZXR1cm4gdC5fY2hlY2tUaW1lQXhpc1RpZXJDb25maWd1cmF0aW9uKGUpfSkpJiYoZT1pKX0pKSxlPT09dGhpcy5fcG9zc2libGVUaW1lQXhpc0NvbmZpZ3VyYXRpb25zLmxlbmd0aCYmKGEuV2luZG93Lndhcm4oInpvb21lZCBvdXQgdG9vIGZhcjogY291bGQgbm90IGZpbmQgc3VpdGFibGUgaW50ZXJ2YWwgdG8gZGlzcGxheSBsYWJlbHMiKSwtLWUpLGV9LHUucHJvdG90eXBlLm9yaWVudGF0aW9uPWZ1bmN0aW9uKHQpe2lmKHQmJigicmlnaHQiPT09dC50b0xvd2VyQ2FzZSgpfHwibGVmdCI9PT10LnRvTG93ZXJDYXNlKCkpKXRocm93IG5ldyBFcnJvcih0KyIgaXMgbm90IGEgc3VwcG9ydGVkIG9yaWVudGF0aW9uIGZvciBUaW1lQXhpcyAtIG9ubHkgaG9yaXpvbnRhbCBvcmllbnRhdGlvbnMgYXJlIHN1cHBvcnRlZCIpO3JldHVybiBzLnByb3RvdHlwZS5vcmllbnRhdGlvbi5jYWxsKHRoaXMsdCl9LHUucHJvdG90eXBlLl9jb21wdXRlSGVpZ2h0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fbWVhc3VyZXIubWVhc3VyZSgpLmhlaWdodDt0aGlzLl90aWVySGVpZ2h0cz1bXTtmb3IodmFyIGU9MDtlPHRoaXMuX251bVRpZXJzO2UrKyl0aGlzLl90aWVySGVpZ2h0cy5wdXNoKHQrdGhpcy50aWNrTGFiZWxQYWRkaW5nKCkrKCJiZXR3ZWVuIj09PXRoaXMuX3RpZXJMYWJlbFBvc2l0aW9uc1tlXT8wOnRoaXMuX21heExhYmVsVGlja0xlbmd0aCgpKSk7cmV0dXJuIG4uc3VtKHRoaXMuX3RpZXJIZWlnaHRzKX0sdS5wcm90b3R5cGUuX2dldEludGVydmFsTGVuZ3RoPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3NjYWxlLmRvbWFpbigpWzBdLG49by5UaW1lLnRpbWVJbnRlcnZhbFRvRDNUaW1lKHQuaW50ZXJ2YWwsdGhpcy5fdXNlVVRDKS5vZmZzZXQoZSx0LnN0ZXApO3JldHVybiBuPnRoaXMuX3NjYWxlLmRvbWFpbigpWzFdP3RoaXMud2lkdGgoKTpNYXRoLmFicyh0aGlzLl9zY2FsZS5zY2FsZShuKS10aGlzLl9zY2FsZS5zY2FsZShlKSl9LHUucHJvdG90eXBlLl9tYXhXaWR0aEZvckludGVydmFsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9tZWFzdXJlci5tZWFzdXJlKHQuZm9ybWF0dGVyKHUuX0xPTkdfREFURSkpLndpZHRofSx1LnByb3RvdHlwZS5fY2hlY2tUaW1lQXhpc1RpZXJDb25maWd1cmF0aW9uPWZ1bmN0aW9uKHQpe2lmKG51bGwhPXRoaXMuX21heFRpbWVJbnRlcnZhbFByZWNpc2lvbil7dmFyIGU9dS5fU09SVEVEX1RJTUVfSU5URVJWQUxfSU5ERVhbdGhpcy5fbWF4VGltZUludGVydmFsUHJlY2lzaW9uXSxuPXUuX1NPUlRFRF9USU1FX0lOVEVSVkFMX0lOREVYW3QuaW50ZXJ2YWxdO2lmKG51bGwhPWUmJm51bGwhPW4mJm48ZSlyZXR1cm4hMX12YXIgaT10aGlzLl9tYXhXaWR0aEZvckludGVydmFsKHQpKzIqdGhpcy50aWNrTGFiZWxQYWRkaW5nKCk7cmV0dXJuIE1hdGgubWluKHRoaXMuX2dldEludGVydmFsTGVuZ3RoKHQpLHRoaXMud2lkdGgoKSk+PWl9LHUucHJvdG90eXBlLl9zaXplRnJvbU9mZmVyPWZ1bmN0aW9uKHQsZSl7dmFyIG49cy5wcm90b3R5cGUuX3NpemVGcm9tT2ZmZXIuY2FsbCh0aGlzLHQsZSksaT10aGlzLl90aWVySGVpZ2h0cy5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSxpLHIpe3JldHVybiB0K2U+bi5oZWlnaHQ/dDp0K2V9KSkscj10aGlzLm1hcmdpbigpKyh0aGlzLmFubm90YXRpb25zRW5hYmxlZCgpP3RoaXMuYW5ub3RhdGlvblRpZXJDb3VudCgpKnRoaXMuX2Fubm90YXRpb25UaWVySGVpZ2h0KCk6MCk7cmV0dXJuIG4uaGVpZ2h0PU1hdGgubWluKG4uaGVpZ2h0LGkrciksbn0sdS5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7cy5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyksdGhpcy5fc2V0dXBEb21FbGVtZW50cygpfSx1LnByb3RvdHlwZS5fc2V0dXBEb21FbGVtZW50cz1mdW5jdGlvbigpe3RoaXMuY29udGVudCgpLnNlbGVjdEFsbCgiLiIrdS5USU1FX0FYSVNfVElFUl9DTEFTUykucmVtb3ZlKCksdGhpcy5fdGllckxhYmVsQ29udGFpbmVycz1bXSx0aGlzLl90aWVyTWFya0NvbnRhaW5lcnM9W10sdGhpcy5fdGllckJhc2VsaW5lcz1bXSx0aGlzLl90aWNrTGFiZWxDb250YWluZXIucmVtb3ZlKCksdGhpcy5fYmFzZWxpbmUucmVtb3ZlKCk7Zm9yKHZhciB0PTA7dDx0aGlzLl9udW1UaWVyczsrK3Qpe3ZhciBlPXRoaXMuY29udGVudCgpLmFwcGVuZCgiZyIpLmNsYXNzZWQodS5USU1FX0FYSVNfVElFUl9DTEFTUywhMCk7dGhpcy5fdGllckxhYmVsQ29udGFpbmVycy5wdXNoKGUuYXBwZW5kKCJnIikuY2xhc3NlZChsLkF4aXMuVElDS19MQUJFTF9DTEFTUysiLWNvbnRhaW5lciIsITApKSx0aGlzLl90aWVyTWFya0NvbnRhaW5lcnMucHVzaChlLmFwcGVuZCgiZyIpLmNsYXNzZWQobC5BeGlzLlRJQ0tfTUFSS19DTEFTUysiLWNvbnRhaW5lciIsITApKSx0aGlzLl90aWVyQmFzZWxpbmVzLnB1c2goZS5hcHBlbmQoImxpbmUiKS5jbGFzc2VkKCJiYXNlbGluZSIsITApKX12YXIgbj1uZXcgaS5TdmdDb250ZXh0KHRoaXMuX3RpZXJMYWJlbENvbnRhaW5lcnNbMF0ubm9kZSgpKTt0aGlzLl9tZWFzdXJlcj1uZXcgaS5DYWNoZU1lYXN1cmVyKG4pfSx1LnByb3RvdHlwZS5fZ2V0VGlja0ludGVydmFsVmFsdWVzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9zY2FsZS50aWNrSW50ZXJ2YWwodC5pbnRlcnZhbCx0LnN0ZXAsdGhpcy5fdXNlVVRDKX0sdS5wcm90b3R5cGUuX2dldFRpY2tWYWx1ZXM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9wb3NzaWJsZVRpbWVBeGlzQ29uZmlndXJhdGlvbnNbdGhpcy5fbW9zdFByZWNpc2VDb25maWdJbmRleF0ucmVkdWNlKChmdW5jdGlvbihlLG4pe3JldHVybiBlLmNvbmNhdCh0Ll9nZXRUaWNrSW50ZXJ2YWxWYWx1ZXMobikpfSksW10pfSx1LnByb3RvdHlwZS5fY2xlYW5UaWVycz1mdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy5fdGllckxhYmVsQ29udGFpbmVycy5sZW5ndGg7dCsrKXRoaXMuX3RpZXJMYWJlbENvbnRhaW5lcnNbdF0uc2VsZWN0QWxsKCIuIitsLkF4aXMuVElDS19MQUJFTF9DTEFTUykucmVtb3ZlKCksdGhpcy5fdGllck1hcmtDb250YWluZXJzW3RdLnNlbGVjdEFsbCgiLiIrbC5BeGlzLlRJQ0tfTUFSS19DTEFTUykucmVtb3ZlKCksdGhpcy5fdGllckJhc2VsaW5lc1t0XS5zdHlsZSgidmlzaWJpbGl0eSIsImhpZGRlbiIpfSx1LnByb3RvdHlwZS5fZ2V0VGlja1ZhbHVlc0ZvckNvbmZpZ3VyYXRpb249ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fc2NhbGUudGlja0ludGVydmFsKHQuaW50ZXJ2YWwsdC5zdGVwLHRoaXMuX3VzZVVUQyksbj10aGlzLl9zY2FsZS5kb21haW4oKSxpPWUubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC52YWx1ZU9mKCl9KSk7cmV0dXJuLTE9PT1pLmluZGV4T2YoblswXS52YWx1ZU9mKCkpJiZlLnVuc2hpZnQoblswXSksLTE9PT1pLmluZGV4T2YoblsxXS52YWx1ZU9mKCkpJiZlLnB1c2goblsxXSksZX0sdS5wcm90b3R5cGUuX3JlbmRlclRpZXJMYWJlbHM9ZnVuY3Rpb24odCxlLGkpe3ZhciByPXRoaXMsbz10aGlzLl9nZXRUaWNrVmFsdWVzRm9yQ29uZmlndXJhdGlvbihlKSxhPVtdOyJiZXR3ZWVuIj09PXRoaXMuX3RpZXJMYWJlbFBvc2l0aW9uc1tpXSYmMT09PWUuc3RlcD9vLm1hcCgoZnVuY3Rpb24odCxlKXtlKzE+PW8ubGVuZ3RofHxhLnB1c2gobmV3IERhdGUoKG9bZSsxXS52YWx1ZU9mKCktb1tlXS52YWx1ZU9mKCkpLzIrb1tlXS52YWx1ZU9mKCkpKX0pKTphPW87dmFyIHM9dC5zZWxlY3RBbGwoIi4iK2wuQXhpcy5USUNLX0xBQkVMX0NMQVNTKS5kYXRhKGEsKGZ1bmN0aW9uKHQpe3JldHVybiBTdHJpbmcodC52YWx1ZU9mKCkpfSkpLGM9cy5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQobC5BeGlzLlRJQ0tfTEFCRUxfQ0xBU1MsITApO2MuYXBwZW5kKCJ0ZXh0Iik7dmFyIHUsaD0iY2VudGVyIj09PXRoaXMuX3RpZXJMYWJlbFBvc2l0aW9uc1tpXXx8MT09PWUuc3RlcD8wOnRoaXMudGlja0xhYmVsUGFkZGluZygpO3U9ImJvdHRvbSI9PT10aGlzLm9yaWVudGF0aW9uKCk/bi5zdW0odGhpcy5fdGllckhlaWdodHMuc2xpY2UoMCxpKzEpKS10aGlzLnRpY2tMYWJlbFBhZGRpbmcoKToiY2VudGVyIj09PXRoaXMuX3RpZXJMYWJlbFBvc2l0aW9uc1tpXT90aGlzLmhlaWdodCgpLW4uc3VtKHRoaXMuX3RpZXJIZWlnaHRzLnNsaWNlKDAsaSkpLXRoaXMudGlja0xhYmVsUGFkZGluZygpLXRoaXMuX21heExhYmVsVGlja0xlbmd0aCgpOnRoaXMuaGVpZ2h0KCktbi5zdW0odGhpcy5fdGllckhlaWdodHMuc2xpY2UoMCxpKSktdGhpcy50aWNrTGFiZWxQYWRkaW5nKCk7dmFyIGQ9cy5tZXJnZShjKSxwPWQuc2VsZWN0QWxsKCJ0ZXh0Iik7cC5zaXplKCk+MCYmcC5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitoKyIsIit1KyIpIikscy5leGl0KCkucmVtb3ZlKCksZC5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXtyZXR1cm4idHJhbnNsYXRlKCIrci5fc2NhbGUuc2NhbGUodCkrIiwwKSJ9KSk7dmFyIGY9ImNlbnRlciI9PT10aGlzLl90aWVyTGFiZWxQb3NpdGlvbnNbaV18fDE9PT1lLnN0ZXA/Im1pZGRsZSI6InN0YXJ0IjtkLnNlbGVjdEFsbCgidGV4dCIpLnRleHQoZS5mb3JtYXR0ZXIpLnN0eWxlKCJ0ZXh0LWFuY2hvciIsZil9LHUucHJvdG90eXBlLl9yZW5kZXJUaWNrTWFya3M9ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLl90aWVyTWFya0NvbnRhaW5lcnNbZV0uc2VsZWN0QWxsKCIuIitsLkF4aXMuVElDS19NQVJLX0NMQVNTKS5kYXRhKHQpLHI9aS5lbnRlcigpLmFwcGVuZCgibGluZSIpLmNsYXNzZWQobC5BeGlzLlRJQ0tfTUFSS19DTEFTUywhMCkubWVyZ2UoaSksbz10aGlzLl9nZW5lcmF0ZVRpY2tNYXJrQXR0ckhhc2goKSxhPXRoaXMuX3RpZXJIZWlnaHRzLnNsaWNlKDAsZSkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9KSwwKTsiYm90dG9tIj09PXRoaXMub3JpZW50YXRpb24oKT8oby55MT1hLG8ueTI9YSsoImNlbnRlciI9PT10aGlzLl90aWVyTGFiZWxQb3NpdGlvbnNbZV0/dGhpcy5pbm5lclRpY2tMZW5ndGgoKTp0aGlzLl90aWVySGVpZ2h0c1tlXSkpOihvLnkxPXRoaXMuaGVpZ2h0KCktYSxvLnkyPXRoaXMuaGVpZ2h0KCktKGErKCJjZW50ZXIiPT09dGhpcy5fdGllckxhYmVsUG9zaXRpb25zW2VdP3RoaXMuaW5uZXJUaWNrTGVuZ3RoKCk6dGhpcy5fdGllckhlaWdodHNbZV0pKSksci5hdHRycyhvKSwiYm90dG9tIj09PXRoaXMub3JpZW50YXRpb24oKT8oby55MT1hLG8ueTI9YSsoImNlbnRlciI9PT10aGlzLl90aWVyTGFiZWxQb3NpdGlvbnNbZV0/dGhpcy5lbmRUaWNrTGVuZ3RoKCk6dGhpcy5fdGllckhlaWdodHNbZV0pKTooby55MT10aGlzLmhlaWdodCgpLWEsby55Mj10aGlzLmhlaWdodCgpLShhKygiY2VudGVyIj09PXRoaXMuX3RpZXJMYWJlbFBvc2l0aW9uc1tlXT90aGlzLmVuZFRpY2tMZW5ndGgoKTp0aGlzLl90aWVySGVpZ2h0c1tlXSkpKSxuLnNlbGVjdChyLm5vZGVzKClbMF0pLmF0dHJzKG8pLG4uc2VsZWN0KHIubm9kZXMoKVtyLnNpemUoKS0xXSkuYXR0cnMobyksbi5zZWxlY3Qoci5ub2RlcygpWzBdKS5jbGFzc2VkKGwuQXhpcy5FTkRfVElDS19NQVJLX0NMQVNTLCEwKSxuLnNlbGVjdChyLm5vZGVzKClbci5zaXplKCktMV0pLmNsYXNzZWQobC5BeGlzLkVORF9USUNLX01BUktfQ0xBU1MsITApLGkuZXhpdCgpLnJlbW92ZSgpfSx1LnByb3RvdHlwZS5fcmVuZGVyTGFiZWxsZXNzVGlja01hcmtzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3RpY2tNYXJrQ29udGFpbmVyLnNlbGVjdEFsbCgiLiIrbC5BeGlzLlRJQ0tfTUFSS19DTEFTUykuZGF0YSh0KSxuPWUuZW50ZXIoKS5hcHBlbmQoImxpbmUiKS5jbGFzc2VkKGwuQXhpcy5USUNLX01BUktfQ0xBU1MsITApLm1lcmdlKGUpLGk9dGhpcy5fZ2VuZXJhdGVUaWNrTWFya0F0dHJIYXNoKCk7aS55Mj0iYm90dG9tIj09PXRoaXMub3JpZW50YXRpb24oKT90aGlzLnRpY2tMYWJlbFBhZGRpbmcoKTp0aGlzLmhlaWdodCgpLXRoaXMudGlja0xhYmVsUGFkZGluZygpLG4uYXR0cnMoaSksZS5leGl0KCkucmVtb3ZlKCl9LHUucHJvdG90eXBlLl9nZW5lcmF0ZUxhYmVsbGVzc1RpY2tzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21vc3RQcmVjaXNlQ29uZmlnSW5kZXg8MT9bXTp0aGlzLl9nZXRUaWNrSW50ZXJ2YWxWYWx1ZXModGhpcy5fcG9zc2libGVUaW1lQXhpc0NvbmZpZ3VyYXRpb25zW3RoaXMuX21vc3RQcmVjaXNlQ29uZmlnSW5kZXgtMV1bMF0pfSx1LnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseT1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fbW9zdFByZWNpc2VDb25maWdJbmRleD10aGlzLl9nZXRNb3N0UHJlY2lzZUNvbmZpZ3VyYXRpb25JbmRleCgpO3ZhciBlPXRoaXMuX3Bvc3NpYmxlVGltZUF4aXNDb25maWd1cmF0aW9uc1t0aGlzLl9tb3N0UHJlY2lzZUNvbmZpZ0luZGV4XTt0aGlzLl9jbGVhblRpZXJzKCksZS5mb3JFYWNoKChmdW5jdGlvbihlLG4pe3JldHVybiB0Ll9yZW5kZXJUaWVyTGFiZWxzKHQuX3RpZXJMYWJlbENvbnRhaW5lcnNbbl0sZSxuKX0pKTtmb3IodmFyIG49ZS5tYXAoKGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQuX2dldFRpY2tWYWx1ZXNGb3JDb25maWd1cmF0aW9uKGUpfSkpLGk9MCxyPTA7cjxNYXRoLm1heChlLmxlbmd0aCwxKTsrK3Ipe3ZhciBvPXRoaXMuX2dlbmVyYXRlQmFzZWxpbmVBdHRySGFzaCgpO28ueTErPSJib3R0b20iPT09dGhpcy5vcmllbnRhdGlvbigpP2k6LWksby55Mj1vLnkxLHRoaXMuX3RpZXJCYXNlbGluZXNbcl0uYXR0cnMobykuc3R5bGUoInZpc2liaWxpdHkiLCJpbmhlcml0IiksaSs9dGhpcy5fdGllckhlaWdodHNbcl19dmFyIGE9W10scz10aGlzLl9zY2FsZS5kb21haW4oKSxsPXRoaXMuX3NjYWxlLnNjYWxlKHNbMV0pLXRoaXMuX3NjYWxlLnNjYWxlKHNbMF0pOzEuNSp0aGlzLl9nZXRJbnRlcnZhbExlbmd0aChlWzBdKT49bCYmKGE9dGhpcy5fZ2VuZXJhdGVMYWJlbGxlc3NUaWNrcygpKSx0aGlzLl9yZW5kZXJMYWJlbGxlc3NUaWNrTWFya3MoYSksdGhpcy5faGlkZU92ZXJmbG93aW5nVGllcnMoKTtmb3Iocj0wO3I8ZS5sZW5ndGg7KytyKXRoaXMuX3JlbmRlclRpY2tNYXJrcyhuW3JdLHIpLHRoaXMuX2hpZGVPdmVybGFwcGluZ0FuZEN1dE9mZkxhYmVscyhyKTtyZXR1cm4gdGhpcy5hbm5vdGF0aW9uc0VuYWJsZWQoKT90aGlzLl9kcmF3QW5ub3RhdGlvbnMoKTp0aGlzLl9yZW1vdmVBbm5vdGF0aW9ucygpLHRoaXN9LHUucHJvdG90eXBlLl9oaWRlT3ZlcmZsb3dpbmdUaWVycz1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLmhlaWdodCgpLG49MDt0aGlzLmNvbnRlbnQoKS5zZWxlY3RBbGwoIi4iK3UuVElNRV9BWElTX1RJRVJfQ0xBU1MpLmF0dHIoInZpc2liaWxpdHkiLChmdW5jdGlvbihpLHIpe3JldHVybihuKz10Ll90aWVySGVpZ2h0c1tyXSk8PWU/ImluaGVyaXQiOiJoaWRkZW4ifSkpfSx1LnByb3RvdHlwZS5faGlkZU92ZXJsYXBwaW5nQW5kQ3V0T2ZmTGFiZWxzPWZ1bmN0aW9uKHQpe3ZhciBlLGk9dGhpcyxyPXRoaXMuZWxlbWVudCgpLm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvPXRoaXMuX3RpZXJNYXJrQ29udGFpbmVyc1t0XS5zZWxlY3RBbGwoIi4iK2wuQXhpcy5USUNLX01BUktfQ0xBU1MpLmZpbHRlcigoZnVuY3Rpb24odCxlKXt2YXIgaT1uLnNlbGVjdCh0aGlzKS5zdHlsZSgidmlzaWJpbGl0eSIpO3JldHVybiJ2aXNpYmxlIj09PWl8fCJpbmhlcml0Ij09PWl9KSkubm9kZXMoKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfSkpO3RoaXMuX3RpZXJMYWJlbENvbnRhaW5lcnNbdF0uc2VsZWN0QWxsKCIuIitsLkF4aXMuVElDS19MQUJFTF9DTEFTUykuZmlsdGVyKChmdW5jdGlvbih0LGUpe3ZhciBpPW4uc2VsZWN0KHRoaXMpLnN0eWxlKCJ2aXNpYmlsaXR5Iik7cmV0dXJuInZpc2libGUiPT09aXx8ImluaGVyaXQiPT09aX0pKS5lYWNoKChmdW5jdGlvbih0LHMpe3ZhciBsLGM9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx1PW4uc2VsZWN0KHRoaXMpLGg9b1tzXSxkPW9bcysxXSxwPW51bGwhPWUmJmEuRE9NLmNsaWVudFJlY3RzT3ZlcmxhcChjLGUpLGY9bnVsbCE9aCYmYS5ET00uY2xpZW50UmVjdHNPdmVybGFwKGMsaCksbT1udWxsIT1kJiZhLkRPTS5jbGllbnRSZWN0c092ZXJsYXAoYyxkKTtsPWMsIShNYXRoLmZsb29yKHIubGVmdCk8PU1hdGguY2VpbChsLmxlZnQpJiZNYXRoLmZsb29yKHIudG9wKTw9TWF0aC5jZWlsKGwudG9wKSYmTWF0aC5mbG9vcihsLnJpZ2h0KTw9TWF0aC5jZWlsKHIubGVmdCtpLndpZHRoKCkpJiZNYXRoLmZsb29yKGwuYm90dG9tKTw9TWF0aC5jZWlsKHIudG9wK2kuaGVpZ2h0KCkpKXx8cHx8Znx8bT91LnN0eWxlKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIik6KGU9Yyx1LnN0eWxlKCJ2aXNpYmlsaXR5IiwiaW5oZXJpdCIpKX0pKX0sdS5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlPWZ1bmN0aW9uKCl7cy5wcm90b3R5cGUuaW52YWxpZGF0ZUNhY2hlLmNhbGwodGhpcyksdGhpcy5fbWVhc3VyZXIucmVzZXQoKX0sdS5USU1FX0FYSVNfVElFUl9DTEFTUz0idGltZS1heGlzLXRpZXIiLHUuX1NPUlRFRF9USU1FX0lOVEVSVkFMX0lOREVYPSgoYz17fSlbdC5UaW1lSW50ZXJ2YWwuc2Vjb25kXT0wLGNbdC5UaW1lSW50ZXJ2YWwubWludXRlXT0xLGNbdC5UaW1lSW50ZXJ2YWwuaG91cl09MixjW3QuVGltZUludGVydmFsLmRheV09MyxjW3QuVGltZUludGVydmFsLndlZWtdPTQsY1t0LlRpbWVJbnRlcnZhbC5tb250aF09NSxjW3QuVGltZUludGVydmFsLnllYXJdPTYsYyksdS5fREVGQVVMVF9USU1FX0FYSVNfQ09ORklHVVJBVElPTlM9ZnVuY3Rpb24oZSl7dmFyIG49ZnVuY3Rpb24odCl7cmV0dXJuIHIudGltZSh0LGUpfTtyZXR1cm5bW3tpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5zZWNvbmQsc3RlcDoxLGZvcm1hdHRlcjpuKCIlSTolTTolUyAlcCIpfSx7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuZGF5LHN0ZXA6MSxmb3JtYXR0ZXI6bigiJUIgJWUsICVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLnNlY29uZCxzdGVwOjUsZm9ybWF0dGVyOm4oIiVJOiVNOiVTICVwIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuc2Vjb25kLHN0ZXA6MTAsZm9ybWF0dGVyOm4oIiVJOiVNOiVTICVwIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuc2Vjb25kLHN0ZXA6MTUsZm9ybWF0dGVyOm4oIiVJOiVNOiVTICVwIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuc2Vjb25kLHN0ZXA6MzAsZm9ybWF0dGVyOm4oIiVJOiVNOiVTICVwIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlZSwgJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwubWludXRlLHN0ZXA6MSxmb3JtYXR0ZXI6bigiJUk6JU0gJXAiKX0se2ludGVydmFsOnQuVGltZUludGVydmFsLmRheSxzdGVwOjEsZm9ybWF0dGVyOm4oIiVCICVlLCAlWSIpfV0sW3tpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5taW51dGUsc3RlcDo1LGZvcm1hdHRlcjpuKCIlSTolTSAlcCIpfSx7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuZGF5LHN0ZXA6MSxmb3JtYXR0ZXI6bigiJUIgJWUsICVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLm1pbnV0ZSxzdGVwOjEwLGZvcm1hdHRlcjpuKCIlSTolTSAlcCIpfSx7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuZGF5LHN0ZXA6MSxmb3JtYXR0ZXI6bigiJUIgJWUsICVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLm1pbnV0ZSxzdGVwOjE1LGZvcm1hdHRlcjpuKCIlSTolTSAlcCIpfSx7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuZGF5LHN0ZXA6MSxmb3JtYXR0ZXI6bigiJUIgJWUsICVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLm1pbnV0ZSxzdGVwOjMwLGZvcm1hdHRlcjpuKCIlSTolTSAlcCIpfSx7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuZGF5LHN0ZXA6MSxmb3JtYXR0ZXI6bigiJUIgJWUsICVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLmhvdXIsc3RlcDoxLGZvcm1hdHRlcjpuKCIlSSAlcCIpfSx7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuZGF5LHN0ZXA6MSxmb3JtYXR0ZXI6bigiJUIgJWUsICVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLmhvdXIsc3RlcDozLGZvcm1hdHRlcjpuKCIlSSAlcCIpfSx7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuZGF5LHN0ZXA6MSxmb3JtYXR0ZXI6bigiJUIgJWUsICVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLmhvdXIsc3RlcDo2LGZvcm1hdHRlcjpuKCIlSSAlcCIpfSx7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwuZGF5LHN0ZXA6MSxmb3JtYXR0ZXI6bigiJUIgJWUsICVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLmhvdXIsc3RlcDoxMixmb3JtYXR0ZXI6bigiJUkgJXAiKX0se2ludGVydmFsOnQuVGltZUludGVydmFsLmRheSxzdGVwOjEsZm9ybWF0dGVyOm4oIiVCICVlLCAlWSIpfV0sW3tpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlYSAlZSIpfSx7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwubW9udGgsc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlWSIpfV0sW3tpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5kYXksc3RlcDoxLGZvcm1hdHRlcjpuKCIlZSIpfSx7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwubW9udGgsc3RlcDoxLGZvcm1hdHRlcjpuKCIlQiAlWSIpfV0sW3tpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5tb250aCxzdGVwOjEsZm9ybWF0dGVyOm4oIiVCIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC55ZWFyLHN0ZXA6MSxmb3JtYXR0ZXI6bigiJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwubW9udGgsc3RlcDoxLGZvcm1hdHRlcjpuKCIlYiIpfSx7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwueWVhcixzdGVwOjEsZm9ybWF0dGVyOm4oIiVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLm1vbnRoLHN0ZXA6Myxmb3JtYXR0ZXI6bigiJWIiKX0se2ludGVydmFsOnQuVGltZUludGVydmFsLnllYXIsc3RlcDoxLGZvcm1hdHRlcjpuKCIlWSIpfV0sW3tpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC5tb250aCxzdGVwOjYsZm9ybWF0dGVyOm4oIiViIil9LHtpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC55ZWFyLHN0ZXA6MSxmb3JtYXR0ZXI6bigiJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwueWVhcixzdGVwOjEsZm9ybWF0dGVyOm4oIiVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLnllYXIsc3RlcDoxLGZvcm1hdHRlcjpuKCIleSIpfV0sW3tpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC55ZWFyLHN0ZXA6NSxmb3JtYXR0ZXI6bigiJVkiKX1dLFt7aW50ZXJ2YWw6dC5UaW1lSW50ZXJ2YWwueWVhcixzdGVwOjI1LGZvcm1hdHRlcjpuKCIlWSIpfV0sW3tpbnRlcnZhbDp0LlRpbWVJbnRlcnZhbC55ZWFyLHN0ZXA6NTAsZm9ybWF0dGVyOm4oIiVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLnllYXIsc3RlcDoxMDAsZm9ybWF0dGVyOm4oIiVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLnllYXIsc3RlcDoyMDAsZm9ybWF0dGVyOm4oIiVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLnllYXIsc3RlcDo1MDAsZm9ybWF0dGVyOm4oIiVZIil9XSxbe2ludGVydmFsOnQuVGltZUludGVydmFsLnllYXIsc3RlcDoxZTMsZm9ybWF0dGVyOm4oIiVZIil9XV19LHUuX0xPTkdfREFURT1uZXcgRGF0ZSg5OTk5LDgsMjksMTIsNTksOTk5OSksdX0pKGwuQXhpcyk7dC5UaW1lPXV9KShZdnQpLChmdW5jdGlvbih0KXsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPUJPO2UuX19leHBvcnRTdGFyKGtndCx0KSxlLl9fZXhwb3J0U3RhcihIdnQsdCksZS5fX2V4cG9ydFN0YXIoWXZ0LHQpfSkoQWd0KTt2YXIgdHh0PXt9LGV4dD17fSxueHQ9e30saXh0PXt9LHJ4dD17fSxveHQ9e30sYXh0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkoYXh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgc3h0PURfdCxseHQ9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMuX2V2ZW50VG9Qcm9jZXNzaW5nRnVuY3Rpb249e30sdGhpcy5fZXZlbnRUYXJnZXQ9ZG9jdW1lbnQsdGhpcy5fZXZlbnROYW1lVG9DYWxsYmFja1NldD17fSx0aGlzLl9jb25uZWN0ZWQ9ITF9cmV0dXJuIHQucHJvdG90eXBlLl9oYXNOb0NhbGxiYWNrcz1mdW5jdGlvbigpe2Zvcih2YXIgdD1PYmplY3Qua2V5cyh0aGlzLl9ldmVudE5hbWVUb0NhbGxiYWNrU2V0KSxlPTA7ZTx0Lmxlbmd0aDtlKyspaWYoMCE9PXRoaXMuX2V2ZW50TmFtZVRvQ2FsbGJhY2tTZXRbdFtlXV0uc2l6ZSlyZXR1cm4hMTtyZXR1cm4hMH0sdC5wcm90b3R5cGUuX2Nvbm5lY3Q9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX2Nvbm5lY3RlZHx8KE9iamVjdC5rZXlzKHRoaXMuX2V2ZW50VG9Qcm9jZXNzaW5nRnVuY3Rpb24pLmZvckVhY2goKGZ1bmN0aW9uKGUpe3QuX2V2ZW50VGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZSx0Ll9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uW2VdLCJ3aGVlbCI9PT1lP3twYXNzaXZlOiExfTp2b2lkIDApfSkpLHRoaXMuX2Nvbm5lY3RlZD0hMCl9LHQucHJvdG90eXBlLl9kaXNjb25uZWN0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLl9jb25uZWN0ZWQmJnRoaXMuX2hhc05vQ2FsbGJhY2tzKCkmJihPYmplY3Qua2V5cyh0aGlzLl9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uKS5mb3JFYWNoKChmdW5jdGlvbihlKXt0Ll9ldmVudFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKGUsdC5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbltlXSl9KSksdGhpcy5fY29ubmVjdGVkPSExKX0sdC5wcm90b3R5cGUuX2FkZENhbGxiYWNrRm9yRXZlbnQ9ZnVuY3Rpb24odCxlKXtudWxsPT10aGlzLl9ldmVudE5hbWVUb0NhbGxiYWNrU2V0W3RdJiYodGhpcy5fZXZlbnROYW1lVG9DYWxsYmFja1NldFt0XT1uZXcgc3h0LkNhbGxiYWNrU2V0KSx0aGlzLl9ldmVudE5hbWVUb0NhbGxiYWNrU2V0W3RdLmFkZChlKSx0aGlzLl9jb25uZWN0KCl9LHQucHJvdG90eXBlLl9yZW1vdmVDYWxsYmFja0ZvckV2ZW50PWZ1bmN0aW9uKHQsZSl7bnVsbCE9dGhpcy5fZXZlbnROYW1lVG9DYWxsYmFja1NldFt0XSYmdGhpcy5fZXZlbnROYW1lVG9DYWxsYmFja1NldFt0XS5kZWxldGUoZSksdGhpcy5fZGlzY29ubmVjdCgpfSx0LnByb3RvdHlwZS5fY2FsbENhbGxiYWNrc0ZvckV2ZW50PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyllW24tMV09YXJndW1lbnRzW25dO3ZhciBpPXRoaXMuX2V2ZW50TmFtZVRvQ2FsbGJhY2tTZXRbdF07bnVsbCE9aSYmaS5jYWxsQ2FsbGJhY2tzLmFwcGx5KGksZSl9LHR9KSgpO2F4dC5EaXNwYXRjaGVyPWx4dCwKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KG94dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGN4dD1CTyx1eHQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uX2V2ZW50VG9Qcm9jZXNzaW5nRnVuY3Rpb25bZS5fS0VZRE9XTl9FVkVOVF9OQU1FXT1mdW5jdGlvbih0KXtyZXR1cm4gbi5fcHJvY2Vzc0tleWRvd24odCl9LG4uX2V2ZW50VG9Qcm9jZXNzaW5nRnVuY3Rpb25bZS5fS0VZVVBfRVZFTlRfTkFNRV09ZnVuY3Rpb24odCl7cmV0dXJuIG4uX3Byb2Nlc3NLZXl1cCh0KX0sbn1yZXR1cm4gY3h0Ll9fZXh0ZW5kcyhlLHQpLGUuZ2V0RGlzcGF0Y2hlcj1mdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50W2UuX0RJU1BBVENIRVJfS0VZXTtyZXR1cm4gbnVsbD09dCYmKHQ9bmV3IGUsZG9jdW1lbnRbZS5fRElTUEFUQ0hFUl9LRVldPXQpLHR9LGUucHJvdG90eXBlLl9wcm9jZXNzS2V5ZG93bj1mdW5jdGlvbih0KXt0aGlzLl9jYWxsQ2FsbGJhY2tzRm9yRXZlbnQoZS5fS0VZRE9XTl9FVkVOVF9OQU1FLHQua2V5Q29kZSx0KX0sZS5wcm90b3R5cGUuX3Byb2Nlc3NLZXl1cD1mdW5jdGlvbih0KXt0aGlzLl9jYWxsQ2FsbGJhY2tzRm9yRXZlbnQoZS5fS0VZVVBfRVZFTlRfTkFNRSx0LmtleUNvZGUsdCl9LGUucHJvdG90eXBlLm9uS2V5RG93bj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYWRkQ2FsbGJhY2tGb3JFdmVudChlLl9LRVlET1dOX0VWRU5UX05BTUUsdCksdGhpc30sZS5wcm90b3R5cGUub2ZmS2V5RG93bj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmVtb3ZlQ2FsbGJhY2tGb3JFdmVudChlLl9LRVlET1dOX0VWRU5UX05BTUUsdCksdGhpc30sZS5wcm90b3R5cGUub25LZXlVcD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYWRkQ2FsbGJhY2tGb3JFdmVudChlLl9LRVlVUF9FVkVOVF9OQU1FLHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZktleVVwPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9yZW1vdmVDYWxsYmFja0ZvckV2ZW50KGUuX0tFWVVQX0VWRU5UX05BTUUsdCksdGhpc30sZS5fRElTUEFUQ0hFUl9LRVk9Il9fUGxvdHRhYmxlX0Rpc3BhdGNoZXJfS2V5IixlLl9LRVlET1dOX0VWRU5UX05BTUU9ImtleWRvd24iLGUuX0tFWVVQX0VWRU5UX05BTUU9ImtleXVwIixlfSkoYXh0LkRpc3BhdGNoZXIpO294dC5LZXk9dXh0O3ZhciBoeHQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KGh4dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGR4dD1CTyxweHQ9RF90LGZ4dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShuKXt2YXIgaT10LmNhbGwodGhpcyl8fHRoaXM7aS5fbGFzdE1vdXNlUG9zaXRpb249e3g6LTEseTotMX0saS5fdHJhbnNsYXRvcj1weHQuZ2V0VHJhbnNsYXRvcihuKTt2YXIgcj1mdW5jdGlvbih0KXtyZXR1cm4gaS5fbWVhc3VyZUFuZERpc3BhdGNoKG4sdCxlLl9NT1VTRU1PVkVfRVZFTlRfTkFNRSwicGFnZSIpfTtyZXR1cm4gaS5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbltlLl9NT1VTRU9WRVJfRVZFTlRfTkFNRV09cixpLl9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uW2UuX01PVVNFTU9WRV9FVkVOVF9OQU1FXT1yLGkuX2V2ZW50VG9Qcm9jZXNzaW5nRnVuY3Rpb25bZS5fTU9VU0VPVVRfRVZFTlRfTkFNRV09cixpLl9ldmVudFRvUHJvY2Vzc2luZ0Z1bmN0aW9uW2UuX01PVVNFRE9XTl9FVkVOVF9OQU1FXT1mdW5jdGlvbih0KXtyZXR1cm4gaS5fbWVhc3VyZUFuZERpc3BhdGNoKG4sdCxlLl9NT1VTRURPV05fRVZFTlRfTkFNRSl9LGkuX2V2ZW50VG9Qcm9jZXNzaW5nRnVuY3Rpb25bZS5fTU9VU0VVUF9FVkVOVF9OQU1FXT1mdW5jdGlvbih0KXtyZXR1cm4gaS5fbWVhc3VyZUFuZERpc3BhdGNoKG4sdCxlLl9NT1VTRVVQX0VWRU5UX05BTUUsInBhZ2UiKX0saS5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbltlLl9XSEVFTF9FVkVOVF9OQU1FXT1mdW5jdGlvbih0KXtyZXR1cm4gaS5fbWVhc3VyZUFuZERpc3BhdGNoKG4sdCxlLl9XSEVFTF9FVkVOVF9OQU1FKX0saS5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbltlLl9EQkxDTElDS19FVkVOVF9OQU1FXT1mdW5jdGlvbih0KXtyZXR1cm4gaS5fbWVhc3VyZUFuZERpc3BhdGNoKG4sdCxlLl9EQkxDTElDS19FVkVOVF9OQU1FKX0saX1yZXR1cm4gZHh0Ll9fZXh0ZW5kcyhlLHQpLGUuZ2V0RGlzcGF0Y2hlcj1mdW5jdGlvbih0KXt2YXIgbj10LnJvb3QoKS5yb290RWxlbWVudCgpLGk9bltlLl9ESVNQQVRDSEVSX0tFWV07cmV0dXJuIG51bGw9PWkmJihpPW5ldyBlKHQpLG5bZS5fRElTUEFUQ0hFUl9LRVldPWkpLGl9LGUucHJvdG90eXBlLm9uTW91c2VNb3ZlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hZGRDYWxsYmFja0ZvckV2ZW50KGUuX01PVVNFTU9WRV9FVkVOVF9OQU1FLHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZk1vdXNlTW92ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmVtb3ZlQ2FsbGJhY2tGb3JFdmVudChlLl9NT1VTRU1PVkVfRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5vbk1vdXNlRG93bj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYWRkQ2FsbGJhY2tGb3JFdmVudChlLl9NT1VTRURPV05fRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZNb3VzZURvd249ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JlbW92ZUNhbGxiYWNrRm9yRXZlbnQoZS5fTU9VU0VET1dOX0VWRU5UX05BTUUsdCksdGhpc30sZS5wcm90b3R5cGUub25Nb3VzZVVwPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hZGRDYWxsYmFja0ZvckV2ZW50KGUuX01PVVNFVVBfRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZNb3VzZVVwPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9yZW1vdmVDYWxsYmFja0ZvckV2ZW50KGUuX01PVVNFVVBfRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5vbldoZWVsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hZGRDYWxsYmFja0ZvckV2ZW50KGUuX1dIRUVMX0VWRU5UX05BTUUsdCksdGhpc30sZS5wcm90b3R5cGUub2ZmV2hlZWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JlbW92ZUNhbGxiYWNrRm9yRXZlbnQoZS5fV0hFRUxfRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5vbkRibENsaWNrPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hZGRDYWxsYmFja0ZvckV2ZW50KGUuX0RCTENMSUNLX0VWRU5UX05BTUUsdCksdGhpc30sZS5wcm90b3R5cGUub2ZmRGJsQ2xpY2s9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JlbW92ZUNhbGxiYWNrRm9yRXZlbnQoZS5fREJMQ0xJQ0tfRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5fbWVhc3VyZUFuZERpc3BhdGNoPWZ1bmN0aW9uKHQsZSxuLGkpe2lmKHZvaWQgMD09PWkmJihpPSJlbGVtZW50IiksInBhZ2UiIT09aSYmImVsZW1lbnQiIT09aSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc2NvcGUgJyIraSsiJywgbXVzdCBiZSAnZWxlbWVudCcgb3IgJ3BhZ2UnIik7aWYoInBhZ2UiPT09aXx8dGhpcy5ldmVudEluc2lkZSh0LGUpKXt2YXIgcj10aGlzLl90cmFuc2xhdG9yLmNvbXB1dGVQb3NpdGlvbihlLmNsaWVudFgsZS5jbGllbnRZKTt0aGlzLl9sYXN0TW91c2VQb3NpdGlvbj1yLHRoaXMuX2NhbGxDYWxsYmFja3NGb3JFdmVudChuLHRoaXMubGFzdE1vdXNlUG9zaXRpb24oKSxlKX19LGUucHJvdG90eXBlLmV2ZW50SW5zaWRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHB4dC5UcmFuc2xhdG9yLmlzRXZlbnRJbnNpZGUodCxlKX0sZS5wcm90b3R5cGUubGFzdE1vdXNlUG9zaXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbGFzdE1vdXNlUG9zaXRpb259LGUuX0RJU1BBVENIRVJfS0VZPSJfX1Bsb3R0YWJsZV9EaXNwYXRjaGVyX01vdXNlIixlLl9NT1VTRU9WRVJfRVZFTlRfTkFNRT0ibW91c2VvdmVyIixlLl9NT1VTRU1PVkVfRVZFTlRfTkFNRT0ibW91c2Vtb3ZlIixlLl9NT1VTRU9VVF9FVkVOVF9OQU1FPSJtb3VzZW91dCIsZS5fTU9VU0VET1dOX0VWRU5UX05BTUU9Im1vdXNlZG93biIsZS5fTU9VU0VVUF9FVkVOVF9OQU1FPSJtb3VzZXVwIixlLl9XSEVFTF9FVkVOVF9OQU1FPSJ3aGVlbCIsZS5fREJMQ0xJQ0tfRVZFTlRfTkFNRT0iZGJsY2xpY2siLGV9KShheHQuRGlzcGF0Y2hlcik7aHh0Lk1vdXNlPWZ4dDt2YXIgbXh0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShteHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBneHQ9Qk8sX3h0PURfdCx5eHQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUobil7dmFyIGk9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBpLl90cmFuc2xhdG9yPV94dC5nZXRUcmFuc2xhdG9yKG4pLGkuX2V2ZW50VG9Qcm9jZXNzaW5nRnVuY3Rpb25bZS5fVE9VQ0hTVEFSVF9FVkVOVF9OQU1FXT1mdW5jdGlvbih0KXtyZXR1cm4gaS5fbWVhc3VyZUFuZERpc3BhdGNoKG4sdCxlLl9UT1VDSFNUQVJUX0VWRU5UX05BTUUsInBhZ2UiKX0saS5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbltlLl9UT1VDSE1PVkVfRVZFTlRfTkFNRV09ZnVuY3Rpb24odCl7cmV0dXJuIGkuX21lYXN1cmVBbmREaXNwYXRjaChuLHQsZS5fVE9VQ0hNT1ZFX0VWRU5UX05BTUUsInBhZ2UiKX0saS5fZXZlbnRUb1Byb2Nlc3NpbmdGdW5jdGlvbltlLl9UT1VDSEVORF9FVkVOVF9OQU1FXT1mdW5jdGlvbih0KXtyZXR1cm4gaS5fbWVhc3VyZUFuZERpc3BhdGNoKG4sdCxlLl9UT1VDSEVORF9FVkVOVF9OQU1FLCJwYWdlIil9LGkuX2V2ZW50VG9Qcm9jZXNzaW5nRnVuY3Rpb25bZS5fVE9VQ0hDQU5DRUxfRVZFTlRfTkFNRV09ZnVuY3Rpb24odCl7cmV0dXJuIGkuX21lYXN1cmVBbmREaXNwYXRjaChuLHQsZS5fVE9VQ0hDQU5DRUxfRVZFTlRfTkFNRSwicGFnZSIpfSxpfXJldHVybiBneHQuX19leHRlbmRzKGUsdCksZS5nZXREaXNwYXRjaGVyPWZ1bmN0aW9uKHQpe3ZhciBuPXQucm9vdCgpLnJvb3RFbGVtZW50KCksaT1uW2UuX0RJU1BBVENIRVJfS0VZXTtyZXR1cm4gbnVsbD09aSYmKGk9bmV3IGUodCksbltlLl9ESVNQQVRDSEVSX0tFWV09aSksaX0sZS5wcm90b3R5cGUub25Ub3VjaFN0YXJ0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hZGRDYWxsYmFja0ZvckV2ZW50KGUuX1RPVUNIU1RBUlRfRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZUb3VjaFN0YXJ0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9yZW1vdmVDYWxsYmFja0ZvckV2ZW50KGUuX1RPVUNIU1RBUlRfRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5vblRvdWNoTW92ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYWRkQ2FsbGJhY2tGb3JFdmVudChlLl9UT1VDSE1PVkVfRVZFTlRfTkFNRSx0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZUb3VjaE1vdmU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JlbW92ZUNhbGxiYWNrRm9yRXZlbnQoZS5fVE9VQ0hNT1ZFX0VWRU5UX05BTUUsdCksdGhpc30sZS5wcm90b3R5cGUub25Ub3VjaEVuZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYWRkQ2FsbGJhY2tGb3JFdmVudChlLl9UT1VDSEVORF9FVkVOVF9OQU1FLHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZlRvdWNoRW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9yZW1vdmVDYWxsYmFja0ZvckV2ZW50KGUuX1RPVUNIRU5EX0VWRU5UX05BTUUsdCksdGhpc30sZS5wcm90b3R5cGUub25Ub3VjaENhbmNlbD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYWRkQ2FsbGJhY2tGb3JFdmVudChlLl9UT1VDSENBTkNFTF9FVkVOVF9OQU1FLHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZlRvdWNoQ2FuY2VsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9yZW1vdmVDYWxsYmFja0ZvckV2ZW50KGUuX1RPVUNIQ0FOQ0VMX0VWRU5UX05BTUUsdCksdGhpc30sZS5wcm90b3R5cGUuX21lYXN1cmVBbmREaXNwYXRjaD1mdW5jdGlvbih0LGUsbixpKXtpZih2b2lkIDA9PT1pJiYoaT0iZWxlbWVudCIpLCJwYWdlIiE9PWkmJiJlbGVtZW50IiE9PWkpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHNjb3BlICciK2krIicsIG11c3QgYmUgJ2VsZW1lbnQnIG9yICdwYWdlJyIpO2lmKCJlbGVtZW50IiE9PWl8fHRoaXMuZXZlbnRJbnNpZGUodCxlKSl7Zm9yKHZhciByPWUuY2hhbmdlZFRvdWNoZXMsbz17fSxhPVtdLHM9MDtzPHIubGVuZ3RoO3MrKyl7dmFyIGw9cltzXSxjPWwuaWRlbnRpZmllcix1PXRoaXMuX3RyYW5zbGF0b3IuY29tcHV0ZVBvc2l0aW9uKGwuY2xpZW50WCxsLmNsaWVudFkpO251bGwhPXUmJihvW2NdPXUsYS5wdXNoKGMpKX1hLmxlbmd0aD4wJiZ0aGlzLl9jYWxsQ2FsbGJhY2tzRm9yRXZlbnQobixhLG8sZSl9fSxlLnByb3RvdHlwZS5ldmVudEluc2lkZT1mdW5jdGlvbih0LGUpe3JldHVybiBfeHQuVHJhbnNsYXRvci5pc0V2ZW50SW5zaWRlKHQsZSl9LGUuX0RJU1BBVENIRVJfS0VZPSJfX1Bsb3R0YWJsZV9EaXNwYXRjaGVyX1RvdWNoIixlLl9UT1VDSFNUQVJUX0VWRU5UX05BTUU9InRvdWNoc3RhcnQiLGUuX1RPVUNITU9WRV9FVkVOVF9OQU1FPSJ0b3VjaG1vdmUiLGUuX1RPVUNIRU5EX0VWRU5UX05BTUU9InRvdWNoZW5kIixlLl9UT1VDSENBTkNFTF9FVkVOVF9OQU1FPSJ0b3VjaGNhbmNlbCIsZX0pKGF4dC5EaXNwYXRjaGVyKTtteHQuVG91Y2g9eXh0LChmdW5jdGlvbih0KXsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPUJPO2UuX19leHBvcnRTdGFyKG94dCx0KSxlLl9fZXhwb3J0U3RhcihoeHQsdCksZS5fX2V4cG9ydFN0YXIobXh0LHQpfSkocnh0KTt2YXIgdnh0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eSh2eHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBieHQ9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0PXRoaXM7dGhpcy5fYW5jaG9yQ2FsbGJhY2s9ZnVuY3Rpb24oZSl7cmV0dXJuIHQuX2FuY2hvcihlKX0sdGhpcy5fZW5hYmxlZD0hMH1yZXR1cm4gdC5wcm90b3R5cGUuYXR0YWNoVG89ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2Rpc2Nvbm5lY3QoKSx0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvPXQsdGhpcy5fY29ubmVjdCgpLHRoaXN9LHQucHJvdG90eXBlLmRldGFjaEZyb209ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGV0YWNoKCl9LHQucHJvdG90eXBlLmRldGFjaD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kaXNjb25uZWN0KCksdGhpcy5fY29tcG9uZW50QXR0YWNoZWRUbz1udWxsLHRoaXN9LHQucHJvdG90eXBlLmVuYWJsZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZW5hYmxlZDoodGhpcy5fZW5hYmxlZD10LHRoaXMuX2VuYWJsZWQ/dGhpcy5fY29ubmVjdCgpOnRoaXMuX2Rpc2Nvbm5lY3QoKSx0aGlzKX0sdC5wcm90b3R5cGUuX2FuY2hvcj1mdW5jdGlvbih0KXt0aGlzLl9pc0FuY2hvcmVkPSEwfSx0LnByb3RvdHlwZS5fdW5hbmNob3I9ZnVuY3Rpb24oKXt0aGlzLl9pc0FuY2hvcmVkPSExfSx0LnByb3RvdHlwZS5fdHJhbnNsYXRlVG9Db21wb25lbnRTcGFjZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvLm9yaWdpblRvUm9vdCgpO3JldHVybnt4OnQueC1lLngseTp0LnktZS55fX0sdC5wcm90b3R5cGUuX2lzSW5zaWRlQ29tcG9uZW50PWZ1bmN0aW9uKHQpe3JldHVybiAwPD10LngmJjA8PXQueSYmdC54PD10aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvLndpZHRoKCkmJnQueTw9dGhpcy5fY29tcG9uZW50QXR0YWNoZWRUby5oZWlnaHQoKX0sdC5wcm90b3R5cGUuX2Nvbm5lY3Q9ZnVuY3Rpb24oKXt0aGlzLmVuYWJsZWQoKSYmbnVsbCE9dGhpcy5fY29tcG9uZW50QXR0YWNoZWRUbyYmIXRoaXMuX2lzQW5jaG9yZWQmJnRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG8ub25BbmNob3IodGhpcy5fYW5jaG9yQ2FsbGJhY2spfSx0LnByb3RvdHlwZS5fZGlzY29ubmVjdD1mdW5jdGlvbigpe3RoaXMuX2lzQW5jaG9yZWQmJnRoaXMuX3VuYW5jaG9yKCksbnVsbCE9dGhpcy5fY29tcG9uZW50QXR0YWNoZWRUbyYmdGhpcy5fY29tcG9uZW50QXR0YWNoZWRUby5vZmZBbmNob3IodGhpcy5fYW5jaG9yQ2FsbGJhY2spfSx0fSkoKTt2eHQuSW50ZXJhY3Rpb249Ynh0LAovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkoaXh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgeHh0PUJPLHd4dD1yeHQsU3h0PURfdCxNeHQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT1udWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIGUuX2NsaWNrZWREb3duPSExLGUuX2RvdWJsZUNsaWNraW5nPSExLGUuX29uQ2xpY2tDYWxsYmFja3M9bmV3IFN4dC5DYWxsYmFja1NldCxlLl9vbkRvdWJsZUNsaWNrQ2FsbGJhY2tzPW5ldyBTeHQuQ2FsbGJhY2tTZXQsZS5fbW91c2VEb3duQ2FsbGJhY2s9ZnVuY3Rpb24odCxuKXtyZXR1cm4gZS5faGFuZGxlQ2xpY2tEb3duKHQsbil9LGUuX21vdXNlVXBDYWxsYmFjaz1mdW5jdGlvbih0LG4pe3JldHVybiBlLl9oYW5kbGVDbGlja1VwKHQsbil9LGUuX2RibENsaWNrQ2FsbGJhY2s9ZnVuY3Rpb24odCxuKXtyZXR1cm4gZS5faGFuZGxlRGJsQ2xpY2sodCxuKX0sZS5fdG91Y2hTdGFydENhbGxiYWNrPWZ1bmN0aW9uKHQsbixpKXtyZXR1cm4gZS5faGFuZGxlQ2xpY2tEb3duKG5bdFswXV0saSl9LGUuX3RvdWNoRW5kQ2FsbGJhY2s9ZnVuY3Rpb24odCxuLGkpe3JldHVybiBlLl9oYW5kbGVDbGlja1VwKG5bdFswXV0saSl9LGUuX3RvdWNoQ2FuY2VsQ2FsbGJhY2s9ZnVuY3Rpb24odCxuKXtyZXR1cm4gZS5fY2xpY2tlZERvd249ITF9LGV9cmV0dXJuIHh4dC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fYW5jaG9yPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLl9hbmNob3IuY2FsbCh0aGlzLGUpLHRoaXMuX21vdXNlRGlzcGF0Y2hlcj13eHQuTW91c2UuZ2V0RGlzcGF0Y2hlcihlKSx0aGlzLl9tb3VzZURpc3BhdGNoZXIub25Nb3VzZURvd24odGhpcy5fbW91c2VEb3duQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vbk1vdXNlVXAodGhpcy5fbW91c2VVcENhbGxiYWNrKSx0aGlzLl9tb3VzZURpc3BhdGNoZXIub25EYmxDbGljayh0aGlzLl9kYmxDbGlja0NhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXI9d3h0LlRvdWNoLmdldERpc3BhdGNoZXIoZSksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9uVG91Y2hTdGFydCh0aGlzLl90b3VjaFN0YXJ0Q2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vblRvdWNoRW5kKHRoaXMuX3RvdWNoRW5kQ2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vblRvdWNoQ2FuY2VsKHRoaXMuX3RvdWNoQ2FuY2VsQ2FsbGJhY2spfSxlLnByb3RvdHlwZS5fdW5hbmNob3I9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5fdW5hbmNob3IuY2FsbCh0aGlzKSx0aGlzLl9tb3VzZURpc3BhdGNoZXIub2ZmTW91c2VEb3duKHRoaXMuX21vdXNlRG93bkNhbGxiYWNrKSx0aGlzLl9tb3VzZURpc3BhdGNoZXIub2ZmTW91c2VVcCh0aGlzLl9tb3VzZVVwQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vZmZEYmxDbGljayh0aGlzLl9kYmxDbGlja0NhbGxiYWNrKSx0aGlzLl9tb3VzZURpc3BhdGNoZXI9bnVsbCx0aGlzLl90b3VjaERpc3BhdGNoZXIub2ZmVG91Y2hTdGFydCh0aGlzLl90b3VjaFN0YXJ0Q2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vZmZUb3VjaEVuZCh0aGlzLl90b3VjaEVuZENhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXIub2ZmVG91Y2hDYW5jZWwodGhpcy5fdG91Y2hDYW5jZWxDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyPW51bGx9LGUucHJvdG90eXBlLl9oYW5kbGVDbGlja0Rvd249ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl90cmFuc2xhdGVUb0NvbXBvbmVudFNwYWNlKHQpO3RoaXMuX2lzSW5zaWRlQ29tcG9uZW50KG4pJiYodGhpcy5fY2xpY2tlZERvd249ITAsdGhpcy5fY2xpY2tlZFBvaW50PW4pfSxlLnByb3RvdHlwZS5faGFuZGxlQ2xpY2tVcD1mdW5jdGlvbih0LG4pe3ZhciBpPXRoaXMscj10aGlzLl90cmFuc2xhdGVUb0NvbXBvbmVudFNwYWNlKHQpO3RoaXMuX2NsaWNrZWREb3duJiZlLl9wb2ludHNFcXVhbChyLHRoaXMuX2NsaWNrZWRQb2ludCkmJnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7aS5fZG91YmxlQ2xpY2tpbmd8fGkuX29uQ2xpY2tDYWxsYmFja3MuY2FsbENhbGxiYWNrcyhyLG4pfSksMCksdGhpcy5fY2xpY2tlZERvd249ITF9LGUucHJvdG90eXBlLl9oYW5kbGVEYmxDbGljaz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMsaT10aGlzLl90cmFuc2xhdGVUb0NvbXBvbmVudFNwYWNlKHQpO3RoaXMuX2RvdWJsZUNsaWNraW5nPSEwLHRoaXMuX29uRG91YmxlQ2xpY2tDYWxsYmFja3MuY2FsbENhbGxiYWNrcyhpLGUpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cmV0dXJuIG4uX2RvdWJsZUNsaWNraW5nPSExfSksMCl9LGUuX3BvaW50c0VxdWFsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQueD09PWUueCYmdC55PT09ZS55fSxlLnByb3RvdHlwZS5vbkNsaWNrPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9vbkNsaWNrQ2FsbGJhY2tzLmFkZCh0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZDbGljaz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fb25DbGlja0NhbGxiYWNrcy5kZWxldGUodCksdGhpc30sZS5wcm90b3R5cGUub25Eb3VibGVDbGljaz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fb25Eb3VibGVDbGlja0NhbGxiYWNrcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUub2ZmRG91YmxlQ2xpY2s9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX29uRG91YmxlQ2xpY2tDYWxsYmFja3MuZGVsZXRlKHQpLHRoaXN9LGV9KSh2eHQuSW50ZXJhY3Rpb24pO2l4dC5DbGljaz1NeHQ7dmFyIEV4dD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoRXh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgVHh0PUJPLEN4dD1yeHQsQXh0PURfdCxreHQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUobil7dmFyIGk9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBpLl9kcmFnZ2luZz0hMSxpLl9jb25zdHJhaW5lZFRvQ29tcG9uZW50PSEwLGkuX21vdXNlRmlsdGVyPWUuX0RFRkFVTFRfTU9VU0VfRklMVEVSLGkuX2RyYWdTdGFydENhbGxiYWNrcz1uZXcgQXh0LkNhbGxiYWNrU2V0LGkuX2RyYWdDYWxsYmFja3M9bmV3IEF4dC5DYWxsYmFja1NldCxpLl9kcmFnRW5kQ2FsbGJhY2tzPW5ldyBBeHQuQ2FsbGJhY2tTZXQsaS5fbW91c2VEb3duQ2FsbGJhY2s9ZnVuY3Rpb24odCxlKXtyZXR1cm4gaS5fc3RhcnREcmFnKHQsZSl9LGkuX21vdXNlTW92ZUNhbGxiYWNrPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGkuX2RvRHJhZyh0LGUpfSxpLl9tb3VzZVVwQ2FsbGJhY2s9ZnVuY3Rpb24odCxlKXtyZXR1cm4gaS5fZW5kRHJhZyh0LGUpfSxpLl90b3VjaFN0YXJ0Q2FsbGJhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBpLl9zdGFydERyYWcoZVt0WzBdXSxuKX0saS5fdG91Y2hNb3ZlQ2FsbGJhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBpLl9kb0RyYWcoZVt0WzBdXSxuKX0saS5fdG91Y2hFbmRDYWxsYmFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGkuX2VuZERyYWcoZVt0WzBdXSxuKX0saS5fbW91c2VCdXR0b249dm9pZCAwIT09bj9uOjAsaX1yZXR1cm4gVHh0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLl9hbmNob3I9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUuX2FuY2hvci5jYWxsKHRoaXMsZSksdGhpcy5fbW91c2VEaXNwYXRjaGVyPUN4dC5Nb3VzZS5nZXREaXNwYXRjaGVyKHRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG8pLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vbk1vdXNlRG93bih0aGlzLl9tb3VzZURvd25DYWxsYmFjayksdGhpcy5fbW91c2VEaXNwYXRjaGVyLm9uTW91c2VNb3ZlKHRoaXMuX21vdXNlTW92ZUNhbGxiYWNrKSx0aGlzLl9tb3VzZURpc3BhdGNoZXIub25Nb3VzZVVwKHRoaXMuX21vdXNlVXBDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyPUN4dC5Ub3VjaC5nZXREaXNwYXRjaGVyKHRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG8pLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vblRvdWNoU3RhcnQodGhpcy5fdG91Y2hTdGFydENhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXIub25Ub3VjaE1vdmUodGhpcy5fdG91Y2hNb3ZlQ2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vblRvdWNoRW5kKHRoaXMuX3RvdWNoRW5kQ2FsbGJhY2spfSxlLnByb3RvdHlwZS5fdW5hbmNob3I9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5fdW5hbmNob3IuY2FsbCh0aGlzKSx0aGlzLl9tb3VzZURpc3BhdGNoZXIub2ZmTW91c2VEb3duKHRoaXMuX21vdXNlRG93bkNhbGxiYWNrKSx0aGlzLl9tb3VzZURpc3BhdGNoZXIub2ZmTW91c2VNb3ZlKHRoaXMuX21vdXNlTW92ZUNhbGxiYWNrKSx0aGlzLl9tb3VzZURpc3BhdGNoZXIub2ZmTW91c2VVcCh0aGlzLl9tb3VzZVVwQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlcj1udWxsLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vZmZUb3VjaFN0YXJ0KHRoaXMuX3RvdWNoU3RhcnRDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9mZlRvdWNoTW92ZSh0aGlzLl90b3VjaE1vdmVDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9mZlRvdWNoRW5kKHRoaXMuX3RvdWNoRW5kQ2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlcj1udWxsfSxlLnByb3RvdHlwZS5fdHJhbnNsYXRlQW5kQ29uc3RyYWluPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3RyYW5zbGF0ZVRvQ29tcG9uZW50U3BhY2UodCk7cmV0dXJuIHRoaXMuX2NvbnN0cmFpbmVkVG9Db21wb25lbnQ/e3g6QXh0Lk1hdGguY2xhbXAoZS54LDAsdGhpcy5fY29tcG9uZW50QXR0YWNoZWRUby53aWR0aCgpKSx5OkF4dC5NYXRoLmNsYW1wKGUueSwwLHRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG8uaGVpZ2h0KCkpfTplfSxlLnByb3RvdHlwZS5fc3RhcnREcmFnPWZ1bmN0aW9uKHQsZSl7aWYoIShlIGluc3RhbmNlb2YgTW91c2VFdmVudCl8fHRoaXMuX21vdXNlRmlsdGVyKGUpKXt2YXIgbj10aGlzLl90cmFuc2xhdGVUb0NvbXBvbmVudFNwYWNlKHQpO3RoaXMuX2lzSW5zaWRlQ29tcG9uZW50KG4pJiYoZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2RyYWdnaW5nPSEwLHRoaXMuX2RyYWdPcmlnaW49bix0aGlzLl9kcmFnU3RhcnRDYWxsYmFja3MuY2FsbENhbGxiYWNrcyh0aGlzLl9kcmFnT3JpZ2luKSl9fSxlLnByb3RvdHlwZS5fZG9EcmFnPWZ1bmN0aW9uKHQsZSl7dGhpcy5fZHJhZ2dpbmcmJnRoaXMuX2RyYWdDYWxsYmFja3MuY2FsbENhbGxiYWNrcyh0aGlzLl9kcmFnT3JpZ2luLHRoaXMuX3RyYW5zbGF0ZUFuZENvbnN0cmFpbih0KSl9LGUucHJvdG90eXBlLl9lbmREcmFnPWZ1bmN0aW9uKHQsZSl7ZSBpbnN0YW5jZW9mIE1vdXNlRXZlbnQmJmUuYnV0dG9uIT09dGhpcy5fbW91c2VCdXR0b258fHRoaXMuX2RyYWdnaW5nJiYodGhpcy5fZHJhZ2dpbmc9ITEsdGhpcy5fZHJhZ0VuZENhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKHRoaXMuX2RyYWdPcmlnaW4sdGhpcy5fdHJhbnNsYXRlQW5kQ29uc3RyYWluKHQpKSl9LGUucHJvdG90eXBlLmNvbnN0cmFpbmVkVG9Db21wb25lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fY29uc3RyYWluZWRUb0NvbXBvbmVudDoodGhpcy5fY29uc3RyYWluZWRUb0NvbXBvbmVudD10LHRoaXMpfSxlLnByb3RvdHlwZS5tb3VzZUZpbHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gMD09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5fbW91c2VGaWx0ZXI6KHRoaXMuX21vdXNlRmlsdGVyPXQsdGhpcyl9LGUucHJvdG90eXBlLm9uRHJhZ1N0YXJ0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kcmFnU3RhcnRDYWxsYmFja3MuYWRkKHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZkRyYWdTdGFydD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZHJhZ1N0YXJ0Q2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlLnByb3RvdHlwZS5vbkRyYWc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2RyYWdDYWxsYmFja3MuYWRkKHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZkRyYWc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2RyYWdDYWxsYmFja3MuZGVsZXRlKHQpLHRoaXN9LGUucHJvdG90eXBlLm9uRHJhZ0VuZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZHJhZ0VuZENhbGxiYWNrcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUub2ZmRHJhZ0VuZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZHJhZ0VuZENhbGxiYWNrcy5kZWxldGUodCksdGhpc30sZS5fREVGQVVMVF9NT1VTRV9GSUxURVI9ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10LmJ1dHRvbn0sZX0pKHZ4dC5JbnRlcmFjdGlvbik7RXh0LkRyYWc9a3h0O3ZhciBMeHQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KEx4dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFB4dD1CTyxOeHQ9cnh0LEl4dD1EX3QsUnh0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9bnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBlLl9rZXlQcmVzc0NhbGxiYWNrcz17fSxlLl9rZXlSZWxlYXNlQ2FsbGJhY2tzPXt9LGUuX21vdXNlTW92ZUNhbGxiYWNrPWZ1bmN0aW9uKHQpe3JldHVybiExfSxlLl9kb3duZWRLZXlzPW5ldyBJeHQuU2V0LGUuX2tleURvd25DYWxsYmFjaz1mdW5jdGlvbih0LG4pe3JldHVybiBlLl9oYW5kbGVLZXlEb3duRXZlbnQodCxuKX0sZS5fa2V5VXBDYWxsYmFjaz1mdW5jdGlvbih0KXtyZXR1cm4gZS5faGFuZGxlS2V5VXBFdmVudCh0KX0sZX1yZXR1cm4gUHh0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLl9hbmNob3I9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUuX2FuY2hvci5jYWxsKHRoaXMsZSksdGhpcy5fcG9zaXRpb25EaXNwYXRjaGVyPU54dC5Nb3VzZS5nZXREaXNwYXRjaGVyKHRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG8pLHRoaXMuX3Bvc2l0aW9uRGlzcGF0Y2hlci5vbk1vdXNlTW92ZSh0aGlzLl9tb3VzZU1vdmVDYWxsYmFjayksdGhpcy5fa2V5RGlzcGF0Y2hlcj1OeHQuS2V5LmdldERpc3BhdGNoZXIoKSx0aGlzLl9rZXlEaXNwYXRjaGVyLm9uS2V5RG93bih0aGlzLl9rZXlEb3duQ2FsbGJhY2spLHRoaXMuX2tleURpc3BhdGNoZXIub25LZXlVcCh0aGlzLl9rZXlVcENhbGxiYWNrKX0sZS5wcm90b3R5cGUuX3VuYW5jaG9yPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuX3VuYW5jaG9yLmNhbGwodGhpcyksdGhpcy5fcG9zaXRpb25EaXNwYXRjaGVyLm9mZk1vdXNlTW92ZSh0aGlzLl9tb3VzZU1vdmVDYWxsYmFjayksdGhpcy5fcG9zaXRpb25EaXNwYXRjaGVyPW51bGwsdGhpcy5fa2V5RGlzcGF0Y2hlci5vZmZLZXlEb3duKHRoaXMuX2tleURvd25DYWxsYmFjayksdGhpcy5fa2V5RGlzcGF0Y2hlci5vZmZLZXlVcCh0aGlzLl9rZXlVcENhbGxiYWNrKSx0aGlzLl9rZXlEaXNwYXRjaGVyPW51bGx9LGUucHJvdG90eXBlLl9oYW5kbGVLZXlEb3duRXZlbnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl90cmFuc2xhdGVUb0NvbXBvbmVudFNwYWNlKHRoaXMuX3Bvc2l0aW9uRGlzcGF0Y2hlci5sYXN0TW91c2VQb3NpdGlvbigpKTt0aGlzLl9pc0luc2lkZUNvbXBvbmVudChuKSYmIWUucmVwZWF0JiYodGhpcy5fa2V5UHJlc3NDYWxsYmFja3NbdF0mJnRoaXMuX2tleVByZXNzQ2FsbGJhY2tzW3RdLmNhbGxDYWxsYmFja3ModCksdGhpcy5fZG93bmVkS2V5cy5hZGQodCkpfSxlLnByb3RvdHlwZS5faGFuZGxlS2V5VXBFdmVudD1mdW5jdGlvbih0KXt0aGlzLl9kb3duZWRLZXlzLmhhcyh0KSYmdGhpcy5fa2V5UmVsZWFzZUNhbGxiYWNrc1t0XSYmdGhpcy5fa2V5UmVsZWFzZUNhbGxiYWNrc1t0XS5jYWxsQ2FsbGJhY2tzKHQpLHRoaXMuX2Rvd25lZEtleXMuZGVsZXRlKHQpfSxlLnByb3RvdHlwZS5vbktleVByZXNzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX2tleVByZXNzQ2FsbGJhY2tzW3RdfHwodGhpcy5fa2V5UHJlc3NDYWxsYmFja3NbdF09bmV3IEl4dC5DYWxsYmFja1NldCksdGhpcy5fa2V5UHJlc3NDYWxsYmFja3NbdF0uYWRkKGUpLHRoaXN9LGUucHJvdG90eXBlLm9mZktleVByZXNzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX2tleVByZXNzQ2FsbGJhY2tzW3RdLmRlbGV0ZShlKSwwPT09dGhpcy5fa2V5UHJlc3NDYWxsYmFja3NbdF0uc2l6ZSYmZGVsZXRlIHRoaXMuX2tleVByZXNzQ2FsbGJhY2tzW3RdLHRoaXN9LGUucHJvdG90eXBlLm9uS2V5UmVsZWFzZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9rZXlSZWxlYXNlQ2FsbGJhY2tzW3RdfHwodGhpcy5fa2V5UmVsZWFzZUNhbGxiYWNrc1t0XT1uZXcgSXh0LkNhbGxiYWNrU2V0KSx0aGlzLl9rZXlSZWxlYXNlQ2FsbGJhY2tzW3RdLmFkZChlKSx0aGlzfSxlLnByb3RvdHlwZS5vZmZLZXlSZWxlYXNlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX2tleVJlbGVhc2VDYWxsYmFja3NbdF0uZGVsZXRlKGUpLDA9PT10aGlzLl9rZXlSZWxlYXNlQ2FsbGJhY2tzW3RdLnNpemUmJmRlbGV0ZSB0aGlzLl9rZXlSZWxlYXNlQ2FsbGJhY2tzW3RdLHRoaXN9LGV9KSh2eHQuSW50ZXJhY3Rpb24pO0x4dC5LZXk9Unh0O3ZhciBPeHQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KE94dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHp4dD1CTyxEeHQ9d3B0LEJ4dD1yeHQsSHh0PVh2dCxGeHQ9RF90LFZ4dD1ueHQsVXh0PXRidCxqeHQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxuKXt2YXIgaT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGkuX3doZWVsRmlsdGVyPWZ1bmN0aW9uKHQpe3JldHVybiEwfSxpLl93aGVlbENhbGxiYWNrPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGkuX2hhbmRsZVdoZWVsRXZlbnQodCxlKX0saS5fdG91Y2hTdGFydENhbGxiYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gaS5faGFuZGxlVG91Y2hTdGFydCh0LGUsbil9LGkuX3RvdWNoTW92ZUNhbGxiYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gaS5faGFuZGxlUGluY2godCxlLG4pfSxpLl90b3VjaEVuZENhbGxiYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gaS5faGFuZGxlVG91Y2hFbmQodCxlLG4pfSxpLl90b3VjaENhbmNlbENhbGxiYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gaS5faGFuZGxlVG91Y2hFbmQodCxlLG4pfSxpLl9wYW5FbmRDYWxsYmFja3M9bmV3IEZ4dC5DYWxsYmFja1NldCxpLl96b29tRW5kQ2FsbGJhY2tzPW5ldyBGeHQuQ2FsbGJhY2tTZXQsaS5fcGFuWm9vbVVwZGF0ZUNhbGxiYWNrcz1uZXcgRnh0LkNhbGxiYWNrU2V0LGkuX3hTY2FsZXM9bmV3IEZ4dC5TZXQsaS5feVNjYWxlcz1uZXcgRnh0LlNldCxpLl9kcmFnSW50ZXJhY3Rpb249bmV3IFZ4dC5EcmFnLGkuX3NldHVwRHJhZ0ludGVyYWN0aW9uKCksaS5fdG91Y2hJZHM9RHh0Lm1hcCgpLGkuX21pbkRvbWFpbkV4dGVudHM9bmV3IEZ4dC5NYXAsaS5fbWF4RG9tYWluRXh0ZW50cz1uZXcgRnh0Lk1hcCxpLl9taW5Eb21haW5WYWx1ZXM9bmV3IEZ4dC5NYXAsaS5fbWF4RG9tYWluVmFsdWVzPW5ldyBGeHQuTWFwLG51bGwhPWUmJmkuYWRkWFNjYWxlKGUpLG51bGwhPW4mJmkuYWRkWVNjYWxlKG4pLGl9cmV0dXJuIHp4dC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5kcmFnSW50ZXJhY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZHJhZ0ludGVyYWN0aW9ufSxlLnByb3RvdHlwZS53aGVlbEZpbHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gMD09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5fd2hlZWxGaWx0ZXI6KHRoaXMuX3doZWVsRmlsdGVyPXQsdGhpcyl9LGUucHJvdG90eXBlLnBhbj1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMueFNjYWxlcygpLmZvckVhY2goKGZ1bmN0aW9uKG4pe24ucGFuKGUuX2NvbnN0cmFpbmVkVHJhbnNsYXRpb24obix0LngpKX0pKSx0aGlzLnlTY2FsZXMoKS5mb3JFYWNoKChmdW5jdGlvbihuKXtuLnBhbihlLl9jb25zdHJhaW5lZFRyYW5zbGF0aW9uKG4sdC55KSl9KSksdGhpcy5fcGFuWm9vbVVwZGF0ZUNhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKCl9LGUucHJvdG90eXBlLnpvb209ZnVuY3Rpb24odCxlLG4pe3ZhciBpLHIsbz10aGlzO3JldHVybiB2b2lkIDA9PT1uJiYobj0hMCksbnVsbCE9ZSYmKGk9ZS54LHI9ZS55LG4mJih0aGlzLnhTY2FsZXMoKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgbj1vLl9jb25zdHJhaW5lZFpvb20oZSx0LGkpO2k9bi5jZW50ZXJQb2ludCx0PW4uem9vbUFtb3VudH0pKSx0aGlzLnlTY2FsZXMoKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgbj1vLl9jb25zdHJhaW5lZFpvb20oZSx0LHIpO3I9bi5jZW50ZXJQb2ludCx0PW4uem9vbUFtb3VudH0pKSkpLHRoaXMueFNjYWxlcygpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBuPWUucmFuZ2UoKTtlLnpvb20odCxudWxsPT1pPyhuWzFdK25bMF0pLzI6aSl9KSksdGhpcy55U2NhbGVzKCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIG49ZS5yYW5nZSgpO2Uuem9vbSh0LG51bGw9PXI/KG5bMV0rblswXSkvMjpyKX0pKSx0aGlzLl9wYW5ab29tVXBkYXRlQ2FsbGJhY2tzLmNhbGxDYWxsYmFja3MoKSx7em9vbUFtb3VudDp0LGNlbnRlclZhbHVlOntjZW50ZXJYOmksY2VudGVyWTpyfX19LGUucHJvdG90eXBlLl9hbmNob3I9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUuX2FuY2hvci5jYWxsKHRoaXMsZSksdGhpcy5fZHJhZ0ludGVyYWN0aW9uLmF0dGFjaFRvKGUpLHRoaXMuX21vdXNlRGlzcGF0Y2hlcj1CeHQuTW91c2UuZ2V0RGlzcGF0Y2hlcih0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvKSx0aGlzLl9tb3VzZURpc3BhdGNoZXIub25XaGVlbCh0aGlzLl93aGVlbENhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXI9Qnh0LlRvdWNoLmdldERpc3BhdGNoZXIodGhpcy5fY29tcG9uZW50QXR0YWNoZWRUbyksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9uVG91Y2hTdGFydCh0aGlzLl90b3VjaFN0YXJ0Q2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vblRvdWNoTW92ZSh0aGlzLl90b3VjaE1vdmVDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9uVG91Y2hFbmQodGhpcy5fdG91Y2hFbmRDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyLm9uVG91Y2hDYW5jZWwodGhpcy5fdG91Y2hDYW5jZWxDYWxsYmFjayl9LGUucHJvdG90eXBlLl91bmFuY2hvcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLl91bmFuY2hvci5jYWxsKHRoaXMpLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vZmZXaGVlbCh0aGlzLl93aGVlbENhbGxiYWNrKSx0aGlzLl9tb3VzZURpc3BhdGNoZXI9bnVsbCx0aGlzLl90b3VjaERpc3BhdGNoZXIub2ZmVG91Y2hTdGFydCh0aGlzLl90b3VjaFN0YXJ0Q2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vZmZUb3VjaE1vdmUodGhpcy5fdG91Y2hNb3ZlQ2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vZmZUb3VjaEVuZCh0aGlzLl90b3VjaEVuZENhbGxiYWNrKSx0aGlzLl90b3VjaERpc3BhdGNoZXIub2ZmVG91Y2hDYW5jZWwodGhpcy5fdG91Y2hDYW5jZWxDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyPW51bGwsdGhpcy5fZHJhZ0ludGVyYWN0aW9uLmRldGFjaCgpfSxlLnByb3RvdHlwZS5faGFuZGxlVG91Y2hTdGFydD1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aCYmdGhpcy5fdG91Y2hJZHMuc2l6ZSgpPDI7aSsrKXt2YXIgcj10W2ldO3RoaXMuX3RvdWNoSWRzLnNldChyLnRvU3RyaW5nKCksdGhpcy5fdHJhbnNsYXRlVG9Db21wb25lbnRTcGFjZShlW3JdKSl9fSxlLnByb3RvdHlwZS5faGFuZGxlUGluY2g9ZnVuY3Rpb24odCxuLGkpe3ZhciByPXRoaXM7aWYoISh0aGlzLl90b3VjaElkcy5zaXplKCk8Mikpe3ZhciBvPXRoaXMuX3RvdWNoSWRzLnZhbHVlcygpO2lmKHRoaXMuX2lzSW5zaWRlQ29tcG9uZW50KHRoaXMuX3RyYW5zbGF0ZVRvQ29tcG9uZW50U3BhY2Uob1swXSkpJiZ0aGlzLl9pc0luc2lkZUNvbXBvbmVudCh0aGlzLl90cmFuc2xhdGVUb0NvbXBvbmVudFNwYWNlKG9bMV0pKSl7dmFyIGE9ZS5fcG9pbnREaXN0YW5jZShvWzBdLG9bMV0pO2lmKDAhPT1hKXt0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3IuX3RvdWNoSWRzLmhhcyh0LnRvU3RyaW5nKCkpJiZyLl90b3VjaElkcy5zZXQodC50b1N0cmluZygpLHIuX3RyYW5zbGF0ZVRvQ29tcG9uZW50U3BhY2Uoblt0XSkpfSkpO3ZhciBzPXRoaXMuX3RvdWNoSWRzLnZhbHVlcygpLGw9ZS5fcG9pbnREaXN0YW5jZShzWzBdLHNbMV0pO2lmKDAhPT1sKXt2YXIgYz1hL2wsdT1zLm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm57eDoodC54LW9bZV0ueCkvYyx5Oih0Lnktb1tlXS55KS9jfX0pKSxoPWUuY2VudGVyUG9pbnQob1swXSxvWzFdKSxkPXRoaXMuem9vbShjLGgpLHA9ZC5jZW50ZXJWYWx1ZSxmPWQuem9vbUFtb3VudCxtPXAuY2VudGVyWCxnPXAuY2VudGVyWSxfPW8ubWFwKChmdW5jdGlvbih0LGUpe3JldHVybnt4OnVbZV0ueCpmK3QueCx5OnVbZV0ueSpmK3QueX19KSk7dGhpcy5wYW4oe3g6bS0oX1swXS54K19bMV0ueCkvMix5OmctKF9bMF0ueStfWzFdLnkpLzJ9KX19fX19LGUuY2VudGVyUG9pbnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1NYXRoLm1pbih0LngsZS54KSxpPU1hdGgubWF4KHQueCxlLngpLHI9TWF0aC5taW4odC55LGUueSk7cmV0dXJue3g6KG4raSkvMix5OihNYXRoLm1heCh0LnksZS55KStyKS8yfX0sZS5fcG9pbnREaXN0YW5jZT1mdW5jdGlvbih0LGUpe3ZhciBuPU1hdGgubWluKHQueCxlLngpLGk9TWF0aC5tYXgodC54LGUueCkscj1NYXRoLm1pbih0LnksZS55KSxvPU1hdGgubWF4KHQueSxlLnkpO3JldHVybiBNYXRoLnNxcnQoTWF0aC5wb3coaS1uLDIpK01hdGgucG93KG8tciwyKSl9LGUucHJvdG90eXBlLl9oYW5kbGVUb3VjaEVuZD1mdW5jdGlvbih0LGUsbil7dmFyIGk9dGhpczt0LmZvckVhY2goKGZ1bmN0aW9uKHQpe2kuX3RvdWNoSWRzLnJlbW92ZSh0LnRvU3RyaW5nKCkpfSkpLHRoaXMuX3RvdWNoSWRzLnNpemUoKT4wJiZ0aGlzLl96b29tRW5kQ2FsbGJhY2tzLmNhbGxDYWxsYmFja3MoKX0sZS5wcm90b3R5cGUuX2hhbmRsZVdoZWVsRXZlbnQ9ZnVuY3Rpb24odCxuKXtpZih0aGlzLl93aGVlbEZpbHRlcihuKSl7dmFyIGk9dGhpcy5fdHJhbnNsYXRlVG9Db21wb25lbnRTcGFjZSh0KTtpZih0aGlzLl9pc0luc2lkZUNvbXBvbmVudChpKSl7bi5wcmV2ZW50RGVmYXVsdCgpO3ZhciByPU1hdGgucG93KDIsLjAwMiooKDAhPT1uLmRlbHRhWT9uLmRlbHRhWTpuLmRlbHRhWCkqKG4uZGVsdGFNb2RlP2UuX1BJWEVMU19QRVJfTElORToxKSkpO3RoaXMuem9vbShyLGkpLHRoaXMuX3pvb21FbmRDYWxsYmFja3MuY2FsbENhbGxiYWNrcygpfX19LGUucHJvdG90eXBlLl9jb25zdHJhaW5lZFpvb209ZnVuY3Rpb24odCxlLG4pe3JldHVybiBVeHQuY29uc3RyYWluZWRab29tKHQsZSxuLHRoaXMubWluRG9tYWluRXh0ZW50KHQpLHRoaXMubWF4RG9tYWluRXh0ZW50KHQpLHRoaXMubWluRG9tYWluVmFsdWUodCksdGhpcy5tYXhEb21haW5WYWx1ZSh0KSl9LGUucHJvdG90eXBlLl9jb25zdHJhaW5lZFRyYW5zbGF0aW9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFV4dC5jb25zdHJhaW5lZFRyYW5zbGF0aW9uKHQsZSx0aGlzLm1pbkRvbWFpblZhbHVlKHQpLHRoaXMubWF4RG9tYWluVmFsdWUodCkpfSxlLnByb3RvdHlwZS5fc2V0dXBEcmFnSW50ZXJhY3Rpb249ZnVuY3Rpb24oKXt2YXIgdCxlPXRoaXM7dGhpcy5fZHJhZ0ludGVyYWN0aW9uLmNvbnN0cmFpbmVkVG9Db21wb25lbnQoITEpLHRoaXMuX2RyYWdJbnRlcmFjdGlvbi5vbkRyYWdTdGFydCgoZnVuY3Rpb24oKXtyZXR1cm4gdD1udWxsfSkpLHRoaXMuX2RyYWdJbnRlcmFjdGlvbi5vbkRyYWcoKGZ1bmN0aW9uKG4saSl7ZS5fdG91Y2hJZHMuc2l6ZSgpPj0yfHwoZS5wYW4oe3g6KG51bGw9PXQ/bi54OnQueCktaS54LHk6KG51bGw9PXQ/bi55OnQueSktaS55fSksdD1pKX0pKSx0aGlzLl9kcmFnSW50ZXJhY3Rpb24ub25EcmFnRW5kKChmdW5jdGlvbigpe3JldHVybiBlLl9wYW5FbmRDYWxsYmFja3MuY2FsbENhbGxiYWNrcygpfSkpfSxlLnByb3RvdHlwZS5fbm9uTGluZWFyU2NhbGVXaXRoRXh0ZW50cz1mdW5jdGlvbih0KXtyZXR1cm4hKG51bGw9PXRoaXMubWluRG9tYWluRXh0ZW50KHQpfHxudWxsPT10aGlzLm1heERvbWFpbkV4dGVudCh0KXx8dCBpbnN0YW5jZW9mIEh4dC5MaW5lYXJ8fHQgaW5zdGFuY2VvZiBIeHQuVGltZSl9LGUucHJvdG90eXBlLnhTY2FsZXM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZihudWxsPT10KXt2YXIgbj1bXTtyZXR1cm4gdGhpcy5feFNjYWxlcy5mb3JFYWNoKChmdW5jdGlvbih0KXtuLnB1c2godCl9KSksbn1yZXR1cm4gdGhpcy5feFNjYWxlcz1uZXcgRnh0LlNldCx0LmZvckVhY2goKGZ1bmN0aW9uKHQpe2UuYWRkWFNjYWxlKHQpfSkpLHRoaXN9LGUucHJvdG90eXBlLnlTY2FsZXM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZihudWxsPT10KXt2YXIgbj1bXTtyZXR1cm4gdGhpcy5feVNjYWxlcy5mb3JFYWNoKChmdW5jdGlvbih0KXtuLnB1c2godCl9KSksbn1yZXR1cm4gdGhpcy5feVNjYWxlcz1uZXcgRnh0LlNldCx0LmZvckVhY2goKGZ1bmN0aW9uKHQpe2UuYWRkWVNjYWxlKHQpfSkpLHRoaXN9LGUucHJvdG90eXBlLmFkZFhTY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5feFNjYWxlcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUucmVtb3ZlWFNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl94U2NhbGVzLmRlbGV0ZSh0KSx0aGlzLl9taW5Eb21haW5FeHRlbnRzLmRlbGV0ZSh0KSx0aGlzLl9tYXhEb21haW5FeHRlbnRzLmRlbGV0ZSh0KSx0aGlzLl9taW5Eb21haW5WYWx1ZXMuZGVsZXRlKHQpLHRoaXMuX21heERvbWFpblZhbHVlcy5kZWxldGUodCksdGhpc30sZS5wcm90b3R5cGUuYWRkWVNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl95U2NhbGVzLmFkZCh0KSx0aGlzfSxlLnByb3RvdHlwZS5yZW1vdmVZU2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3lTY2FsZXMuZGVsZXRlKHQpLHRoaXMuX21pbkRvbWFpbkV4dGVudHMuZGVsZXRlKHQpLHRoaXMuX21heERvbWFpbkV4dGVudHMuZGVsZXRlKHQpLHRoaXMuX21pbkRvbWFpblZhbHVlcy5kZWxldGUodCksdGhpcy5fbWF4RG9tYWluVmFsdWVzLmRlbGV0ZSh0KSx0aGlzfSxlLnByb3RvdHlwZS5taW5Eb21haW5FeHRlbnQ9ZnVuY3Rpb24odCxlKXtpZihudWxsPT1lKXJldHVybiB0aGlzLl9taW5Eb21haW5FeHRlbnRzLmdldCh0KTtpZihlLnZhbHVlT2YoKTwwKXRocm93IG5ldyBFcnJvcigiZXh0ZW50IG11c3QgYmUgbm9uLW5lZ2F0aXZlIik7dmFyIG49dGhpcy5tYXhEb21haW5FeHRlbnQodCk7aWYobnVsbCE9biYmbi52YWx1ZU9mKCk8ZS52YWx1ZU9mKCkpdGhyb3cgbmV3IEVycm9yKCJtaW5Eb21haW5FeHRlbnQgbXVzdCBiZSBzbWFsbGVyIHRoYW4gbWF4RG9tYWluRXh0ZW50IGZvciB0aGUgc2FtZSBTY2FsZSIpO3JldHVybiB0aGlzLl9ub25MaW5lYXJTY2FsZVdpdGhFeHRlbnRzKHQpJiZGeHQuV2luZG93Lndhcm4oIlBhbm5pbmcgYW5kIHpvb21pbmcgd2l0aCBleHRlbnRzIG9uIGEgbm9ubGluZWFyIHNjYWxlIG1heSBoYXZlIHVuaW50ZW5kZWQgYmVoYXZpb3IuIiksdGhpcy5fbWluRG9tYWluRXh0ZW50cy5zZXQodCxlKSx0aGlzfSxlLnByb3RvdHlwZS5tYXhEb21haW5FeHRlbnQ9ZnVuY3Rpb24odCxlKXtpZihudWxsPT1lKXJldHVybiB0aGlzLl9tYXhEb21haW5FeHRlbnRzLmdldCh0KTtpZihlLnZhbHVlT2YoKTw9MCl0aHJvdyBuZXcgRXJyb3IoImV4dGVudCBtdXN0IGJlIHBvc2l0aXZlIik7dmFyIG49dGhpcy5taW5Eb21haW5FeHRlbnQodCk7aWYobnVsbCE9biYmZS52YWx1ZU9mKCk8bi52YWx1ZU9mKCkpdGhyb3cgbmV3IEVycm9yKCJtYXhEb21haW5FeHRlbnQgbXVzdCBiZSBsYXJnZXIgdGhhbiBtaW5Eb21haW5FeHRlbnQgZm9yIHRoZSBzYW1lIFNjYWxlIik7cmV0dXJuIHRoaXMuX25vbkxpbmVhclNjYWxlV2l0aEV4dGVudHModCkmJkZ4dC5XaW5kb3cud2FybigiUGFubmluZyBhbmQgem9vbWluZyB3aXRoIGV4dGVudHMgb24gYSBub25saW5lYXIgc2NhbGUgbWF5IGhhdmUgdW5pbnRlbmRlZCBiZWhhdmlvci4iKSx0aGlzLl9tYXhEb21haW5FeHRlbnRzLnNldCh0LGUpLHRoaXN9LGUucHJvdG90eXBlLm1pbkRvbWFpblZhbHVlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PWU/dGhpcy5fbWluRG9tYWluVmFsdWVzLmdldCh0KToodGhpcy5fbWluRG9tYWluVmFsdWVzLnNldCh0LGUpLHRoaXMpfSxlLnByb3RvdHlwZS5tYXhEb21haW5WYWx1ZT1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsPT1lP3RoaXMuX21heERvbWFpblZhbHVlcy5nZXQodCk6KHRoaXMuX21heERvbWFpblZhbHVlcy5zZXQodCxlKSx0aGlzKX0sZS5wcm90b3R5cGUuc2V0TWluTWF4RG9tYWluVmFsdWVzVG89ZnVuY3Rpb24odCl7dGhpcy5fbWluRG9tYWluVmFsdWVzLmRlbGV0ZSh0KSx0aGlzLl9tYXhEb21haW5WYWx1ZXMuZGVsZXRlKHQpO3ZhciBlPXQuZ2V0VHJhbnNmb3JtYXRpb25Eb21haW4oKSxuPWVbMV07cmV0dXJuIHRoaXMubWluRG9tYWluVmFsdWUodCxlWzBdKSx0aGlzLm1heERvbWFpblZhbHVlKHQsbiksdGhpc30sZS5wcm90b3R5cGUub25QYW5FbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhbkVuZENhbGxiYWNrcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUub2ZmUGFuRW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYW5FbmRDYWxsYmFja3MuZGVsZXRlKHQpLHRoaXN9LGUucHJvdG90eXBlLm9uWm9vbUVuZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fem9vbUVuZENhbGxiYWNrcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUub2ZmWm9vbUVuZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fem9vbUVuZENhbGxiYWNrcy5kZWxldGUodCksdGhpc30sZS5wcm90b3R5cGUub25QYW5ab29tVXBkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYW5ab29tVXBkYXRlQ2FsbGJhY2tzLmFkZCh0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZQYW5ab29tVXBkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYW5ab29tVXBkYXRlQ2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlLl9QSVhFTFNfUEVSX0xJTkU9MTIwLGV9KSh2eHQuSW50ZXJhY3Rpb24pO094dC5QYW5ab29tPWp4dDt2YXIgR3h0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShHeHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBXeHQ9Qk8scXh0PXJ4dCxZeHQ9RF90LFh4dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5fb3ZlckNvbXBvbmVudD0hMSxlLl9wb2ludGVyRW50ZXJDYWxsYmFja3M9bmV3IFl4dC5DYWxsYmFja1NldCxlLl9wb2ludGVyTW92ZUNhbGxiYWNrcz1uZXcgWXh0LkNhbGxiYWNrU2V0LGUuX3BvaW50ZXJFeGl0Q2FsbGJhY2tzPW5ldyBZeHQuQ2FsbGJhY2tTZXQsZS5fbW91c2VNb3ZlQ2FsbGJhY2s9ZnVuY3Rpb24odCxuKXtyZXR1cm4gZS5faGFuZGxlTW91c2VFdmVudCh0LG4pfSxlLl90b3VjaFN0YXJ0Q2FsbGJhY2s9ZnVuY3Rpb24odCxuLGkpe3JldHVybiBlLl9oYW5kbGVUb3VjaEV2ZW50KG5bdFswXV0saSl9LGV9cmV0dXJuIFd4dC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fYW5jaG9yPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLl9hbmNob3IuY2FsbCh0aGlzLGUpLHRoaXMuX21vdXNlRGlzcGF0Y2hlcj1xeHQuTW91c2UuZ2V0RGlzcGF0Y2hlcih0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvKSx0aGlzLl9tb3VzZURpc3BhdGNoZXIub25Nb3VzZU1vdmUodGhpcy5fbW91c2VNb3ZlQ2FsbGJhY2spLHRoaXMuX3RvdWNoRGlzcGF0Y2hlcj1xeHQuVG91Y2guZ2V0RGlzcGF0Y2hlcih0aGlzLl9jb21wb25lbnRBdHRhY2hlZFRvKSx0aGlzLl90b3VjaERpc3BhdGNoZXIub25Ub3VjaFN0YXJ0KHRoaXMuX3RvdWNoU3RhcnRDYWxsYmFjayl9LGUucHJvdG90eXBlLl91bmFuY2hvcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLl91bmFuY2hvci5jYWxsKHRoaXMpLHRoaXMuX21vdXNlRGlzcGF0Y2hlci5vZmZNb3VzZU1vdmUodGhpcy5fbW91c2VNb3ZlQ2FsbGJhY2spLHRoaXMuX21vdXNlRGlzcGF0Y2hlcj1udWxsLHRoaXMuX3RvdWNoRGlzcGF0Y2hlci5vZmZUb3VjaFN0YXJ0KHRoaXMuX3RvdWNoU3RhcnRDYWxsYmFjayksdGhpcy5fdG91Y2hEaXNwYXRjaGVyPW51bGx9LGUucHJvdG90eXBlLl9oYW5kbGVNb3VzZUV2ZW50PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fbW91c2VEaXNwYXRjaGVyLmV2ZW50SW5zaWRlKHRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG8sZSk7dGhpcy5faGFuZGxlUG9pbnRlckV2ZW50KHQsbil9LGUucHJvdG90eXBlLl9oYW5kbGVUb3VjaEV2ZW50PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fdG91Y2hEaXNwYXRjaGVyLmV2ZW50SW5zaWRlKHRoaXMuX2NvbXBvbmVudEF0dGFjaGVkVG8sZSk7dGhpcy5faGFuZGxlUG9pbnRlckV2ZW50KHQsbil9LGUucHJvdG90eXBlLl9oYW5kbGVQb2ludGVyRXZlbnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl90cmFuc2xhdGVUb0NvbXBvbmVudFNwYWNlKHQpLGk9dGhpcy5faXNJbnNpZGVDb21wb25lbnQobik7aSYmZT8odGhpcy5fb3ZlckNvbXBvbmVudHx8dGhpcy5fcG9pbnRlckVudGVyQ2FsbGJhY2tzLmNhbGxDYWxsYmFja3MobiksdGhpcy5fcG9pbnRlck1vdmVDYWxsYmFja3MuY2FsbENhbGxiYWNrcyhuKSk6dGhpcy5fb3ZlckNvbXBvbmVudCYmdGhpcy5fcG9pbnRlckV4aXRDYWxsYmFja3MuY2FsbENhbGxiYWNrcyhuKSx0aGlzLl9vdmVyQ29tcG9uZW50PWkmJmV9LGUucHJvdG90eXBlLm9uUG9pbnRlckVudGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wb2ludGVyRW50ZXJDYWxsYmFja3MuYWRkKHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZlBvaW50ZXJFbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcG9pbnRlckVudGVyQ2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlLnByb3RvdHlwZS5vblBvaW50ZXJNb3ZlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wb2ludGVyTW92ZUNhbGxiYWNrcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUub2ZmUG9pbnRlck1vdmU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BvaW50ZXJNb3ZlQ2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlLnByb3RvdHlwZS5vblBvaW50ZXJFeGl0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wb2ludGVyRXhpdENhbGxiYWNrcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUub2ZmUG9pbnRlckV4aXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BvaW50ZXJFeGl0Q2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlfSkodnh0LkludGVyYWN0aW9uKTtHeHQuUG9pbnRlcj1YeHQsKGZ1bmN0aW9uKHQpewovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9Qk87ZS5fX2V4cG9ydFN0YXIoaXh0LHQpLGUuX19leHBvcnRTdGFyKEV4dCx0KSxlLl9fZXhwb3J0U3RhcihMeHQsdCksZS5fX2V4cG9ydFN0YXIoT3h0LHQpLGUuX19leHBvcnRTdGFyKEd4dCx0KSx0Lnpvb21PdXQ9dGJ0Lnpvb21PdXR9KShueHQpO3ZhciAkeHQ9e307IShmdW5jdGlvbih0KXsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlLG49Qk8saT1EX3Qscj1PX3Q7IShmdW5jdGlvbih0KXt0W3QuVkFMVUU9MF09IlZBTFVFIix0W3QuUElYRUw9MV09IlBJWEVMIn0pKGU9dC5Qcm9wZXJ0eU1vZGV8fCh0LlByb3BlcnR5TW9kZT17fSkpO3ZhciBvPShmdW5jdGlvbih0KXtmdW5jdGlvbiByKCl7dmFyIG49dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBuLl9ib3hWaXNpYmxlPSExLG4uX2JveEJvdW5kcz17dG9wTGVmdDp7eDowLHk6MH0sYm90dG9tUmlnaHQ6e3g6MCx5OjB9fSxuLl94Qm91bmRzTW9kZT1lLlBJWEVMLG4uX3lCb3VuZHNNb2RlPWUuUElYRUwsbi5hZGRDbGFzcygic2VsZWN0aW9uLWJveC1sYXllciIpLG4uX2FkanVzdEJvdW5kc0NhbGxiYWNrPWZ1bmN0aW9uKCl7bi5yZW5kZXIoKX0sbi5fb3ZlcmZsb3dIaWRkZW49ITAsbi5feEV4dGVudD1bdm9pZCAwLHZvaWQgMF0sbi5feUV4dGVudD1bdm9pZCAwLHZvaWQgMF0sbn1yZXR1cm4gbi5fX2V4dGVuZHMocix0KSxyLnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5fc2V0dXAuY2FsbCh0aGlzKSx0aGlzLl9ib3g9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJnIikuY2xhc3NlZCgic2VsZWN0aW9uLWJveCIsITApLnJlbW92ZSgpLHRoaXMuX2JveEFyZWE9dGhpcy5fYm94LmFwcGVuZCgicmVjdCIpLmNsYXNzZWQoInNlbGVjdGlvbi1hcmVhIiwhMCl9LHIucHJvdG90eXBlLl9zaXplRnJvbU9mZmVyPWZ1bmN0aW9uKHQsZSl7cmV0dXJue3dpZHRoOnQsaGVpZ2h0OmV9fSxyLnByb3RvdHlwZS5ib3VuZHM9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZ2V0Qm91bmRzKCk6KHRoaXMuX3NldEJvdW5kcyh0KSx0aGlzLl94Qm91bmRzTW9kZT1lLlBJWEVMLHRoaXMuX3lCb3VuZHNNb2RlPWUuUElYRUwsdGhpcy5yZW5kZXIoKSx0aGlzKX0sci5wcm90b3R5cGUuX3NldEJvdW5kcz1mdW5jdGlvbih0KXt2YXIgZT17eDpNYXRoLm1pbih0LnRvcExlZnQueCx0LmJvdHRvbVJpZ2h0LngpLHk6TWF0aC5taW4odC50b3BMZWZ0LnksdC5ib3R0b21SaWdodC55KX0sbj17eDpNYXRoLm1heCh0LnRvcExlZnQueCx0LmJvdHRvbVJpZ2h0LngpLHk6TWF0aC5tYXgodC50b3BMZWZ0LnksdC5ib3R0b21SaWdodC55KX07dGhpcy5fYm94Qm91bmRzPXt0b3BMZWZ0OmUsYm90dG9tUmlnaHQ6bn19LHIucHJvdG90eXBlLl9nZXRCb3VuZHM9ZnVuY3Rpb24oKXtyZXR1cm57dG9wTGVmdDp7eDp0aGlzLl94Qm91bmRzTW9kZT09PWUuUElYRUw/dGhpcy5fYm94Qm91bmRzLnRvcExlZnQueDpudWxsPT10aGlzLl94U2NhbGU/MDpNYXRoLm1pbih0aGlzLnhTY2FsZSgpLnNjYWxlKHRoaXMueEV4dGVudCgpWzBdKSx0aGlzLnhTY2FsZSgpLnNjYWxlKHRoaXMueEV4dGVudCgpWzFdKSkseTp0aGlzLl95Qm91bmRzTW9kZT09PWUuUElYRUw/dGhpcy5fYm94Qm91bmRzLnRvcExlZnQueTpudWxsPT10aGlzLl95U2NhbGU/MDpNYXRoLm1pbih0aGlzLnlTY2FsZSgpLnNjYWxlKHRoaXMueUV4dGVudCgpWzBdKSx0aGlzLnlTY2FsZSgpLnNjYWxlKHRoaXMueUV4dGVudCgpWzFdKSl9LGJvdHRvbVJpZ2h0Ont4OnRoaXMuX3hCb3VuZHNNb2RlPT09ZS5QSVhFTD90aGlzLl9ib3hCb3VuZHMuYm90dG9tUmlnaHQueDpudWxsPT10aGlzLl94U2NhbGU/MDpNYXRoLm1heCh0aGlzLnhTY2FsZSgpLnNjYWxlKHRoaXMueEV4dGVudCgpWzBdKSx0aGlzLnhTY2FsZSgpLnNjYWxlKHRoaXMueEV4dGVudCgpWzFdKSkseTp0aGlzLl95Qm91bmRzTW9kZT09PWUuUElYRUw/dGhpcy5fYm94Qm91bmRzLmJvdHRvbVJpZ2h0Lnk6bnVsbD09dGhpcy5feVNjYWxlPzA6TWF0aC5tYXgodGhpcy55U2NhbGUoKS5zY2FsZSh0aGlzLnlFeHRlbnQoKVswXSksdGhpcy55U2NhbGUoKS5zY2FsZSh0aGlzLnlFeHRlbnQoKVsxXSkpfX19LHIucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7aWYodC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHkuY2FsbCh0aGlzKSx0aGlzLl9ib3hWaXNpYmxlKXt2YXIgZT10aGlzLmJvdW5kcygpLG49ZS50b3BMZWZ0Lnkscj1lLmJvdHRvbVJpZ2h0Lnksbz1lLnRvcExlZnQueCxhPWUuYm90dG9tUmlnaHQueDtpZighKGkuTWF0aC5pc1ZhbGlkTnVtYmVyKG4pJiZpLk1hdGguaXNWYWxpZE51bWJlcihyKSYmaS5NYXRoLmlzVmFsaWROdW1iZXIobykmJmkuTWF0aC5pc1ZhbGlkTnVtYmVyKGEpKSl0aHJvdyBuZXcgRXJyb3IoImJvdW5kcyBoYXZlIG5vdCBiZWVuIHByb3Blcmx5IHNldCIpO3RoaXMuX2JveEFyZWEuYXR0cnMoe3g6byx5Om4sd2lkdGg6YS1vLGhlaWdodDpyLW59KSx0aGlzLmNvbnRlbnQoKS5ub2RlKCkuYXBwZW5kQ2hpbGQodGhpcy5fYm94Lm5vZGUoKSl9ZWxzZSB0aGlzLl9ib3gucmVtb3ZlKCk7cmV0dXJuIHRoaXN9LHIucHJvdG90eXBlLmJveFZpc2libGU9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fYm94VmlzaWJsZToodGhpcy5fYm94VmlzaWJsZT10LHRoaXMucmVuZGVyKCksdGhpcyl9LHIucHJvdG90eXBlLmZpeGVkV2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sci5wcm90b3R5cGUuZml4ZWRIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sci5wcm90b3R5cGUueFNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX3hTY2FsZToobnVsbCE9dGhpcy5feFNjYWxlJiZ0aGlzLl94U2NhbGUub2ZmVXBkYXRlKHRoaXMuX2FkanVzdEJvdW5kc0NhbGxiYWNrKSx0aGlzLl94U2NhbGU9dCx0aGlzLl94Qm91bmRzTW9kZT1lLlZBTFVFLHRoaXMuX3hTY2FsZS5vblVwZGF0ZSh0aGlzLl9hZGp1c3RCb3VuZHNDYWxsYmFjayksdGhpcy5yZW5kZXIoKSx0aGlzKX0sci5wcm90b3R5cGUueVNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX3lTY2FsZToobnVsbCE9dGhpcy5feVNjYWxlJiZ0aGlzLl95U2NhbGUub2ZmVXBkYXRlKHRoaXMuX2FkanVzdEJvdW5kc0NhbGxiYWNrKSx0aGlzLl95U2NhbGU9dCx0aGlzLl95Qm91bmRzTW9kZT1lLlZBTFVFLHRoaXMuX3lTY2FsZS5vblVwZGF0ZSh0aGlzLl9hZGp1c3RCb3VuZHNDYWxsYmFjayksdGhpcy5yZW5kZXIoKSx0aGlzKX0sci5wcm90b3R5cGUueEV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9nZXRYRXh0ZW50KCk6KHRoaXMuX3NldFhFeHRlbnQodCksdGhpcy5feEJvdW5kc01vZGU9ZS5WQUxVRSx0aGlzLnJlbmRlcigpLHRoaXMpfSxyLnByb3RvdHlwZS5fZ2V0WEV4dGVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl94Qm91bmRzTW9kZT09PWUuVkFMVUU/dGhpcy5feEV4dGVudDpudWxsPT10aGlzLl94U2NhbGU/W3ZvaWQgMCx2b2lkIDBdOlt0aGlzLl94U2NhbGUuaW52ZXJ0KHRoaXMuX2JveEJvdW5kcy50b3BMZWZ0LngpLHRoaXMuX3hTY2FsZS5pbnZlcnQodGhpcy5fYm94Qm91bmRzLmJvdHRvbVJpZ2h0LngpXX0sci5wcm90b3R5cGUuX3NldFhFeHRlbnQ9ZnVuY3Rpb24odCl7dGhpcy5feEV4dGVudD10fSxyLnByb3RvdHlwZS55RXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2dldFlFeHRlbnQoKToodGhpcy5fc2V0WUV4dGVudCh0KSx0aGlzLl95Qm91bmRzTW9kZT1lLlZBTFVFLHRoaXMucmVuZGVyKCksdGhpcyl9LHIucHJvdG90eXBlLl9nZXRZRXh0ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3lCb3VuZHNNb2RlPT09ZS5WQUxVRT90aGlzLl95RXh0ZW50Om51bGw9PXRoaXMuX3lTY2FsZT9bdm9pZCAwLHZvaWQgMF06W3RoaXMuX3lTY2FsZS5pbnZlcnQodGhpcy5fYm94Qm91bmRzLnRvcExlZnQueSksdGhpcy5feVNjYWxlLmludmVydCh0aGlzLl9ib3hCb3VuZHMuYm90dG9tUmlnaHQueSldfSxyLnByb3RvdHlwZS5fc2V0WUV4dGVudD1mdW5jdGlvbih0KXt0aGlzLl95RXh0ZW50PXR9LHIucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyksbnVsbCE9dGhpcy5feFNjYWxlJiZ0aGlzLnhTY2FsZSgpLm9mZlVwZGF0ZSh0aGlzLl9hZGp1c3RCb3VuZHNDYWxsYmFjayksbnVsbCE9dGhpcy5feVNjYWxlJiZ0aGlzLnlTY2FsZSgpLm9mZlVwZGF0ZSh0aGlzLl9hZGp1c3RCb3VuZHNDYWxsYmFjayl9LHJ9KShyLkNvbXBvbmVudCk7dC5TZWxlY3Rpb25Cb3hMYXllcj1vfSkoJHh0KSwKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEt4dD1CTyxaeHQ9bnh0LEp4dD1EX3QsUXh0PV9ndCx0d3Q9dHh0LGV3dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gZS5fZGV0ZWN0aW9uUmFkaXVzPTMsZS5fcmVzaXphYmxlPSExLGUuX21vdmFibGU9ITEsZS5faGFzQ29ybmVycz0hMCxlLmFkZENsYXNzKCJkcmFnLWJveC1sYXllciIpLGUuX2RyYWdJbnRlcmFjdGlvbj1uZXcgWnh0LkRyYWcsZS5fc2V0VXBDYWxsYmFja3MoKSxlLl9kcmFnSW50ZXJhY3Rpb24uYXR0YWNoVG8oZSksZS5fZHJhZ1N0YXJ0Q2FsbGJhY2tzPW5ldyBKeHQuQ2FsbGJhY2tTZXQsZS5fZHJhZ0NhbGxiYWNrcz1uZXcgSnh0LkNhbGxiYWNrU2V0LGUuX2RyYWdFbmRDYWxsYmFja3M9bmV3IEp4dC5DYWxsYmFja1NldCxlfXJldHVybiBLeHQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX3NldFVwQ2FsbGJhY2tzPWZ1bmN0aW9uKCl7dmFyIHQsZSxuLGkscj10aGlzLG89MCxhPTEscz0yLGw9byxjPWZ1bmN0aW9uKGMpe3Q9ci5fZ2V0UmVzaXppbmdFZGdlcyhjKTt2YXIgdT1yLmJvdW5kcygpLGg9dS50b3BMZWZ0Lng8PWMueCYmYy54PD11LmJvdHRvbVJpZ2h0LngmJnUudG9wTGVmdC55PD1jLnkmJmMueTw9dS5ib3R0b21SaWdodC55O3IuYm94VmlzaWJsZSgpJiYodC50b3B8fHQuYm90dG9tfHx0LmxlZnR8fHQucmlnaHQpP2w9YTpyLmJveFZpc2libGUoKSYmci5tb3ZhYmxlKCkmJmg/bD1zOihsPW8sci5fc2V0Qm91bmRzKHt0b3BMZWZ0OmMsYm90dG9tUmlnaHQ6Y30pLHIuX3hCb3VuZHNNb2RlPT09dHd0LlByb3BlcnR5TW9kZS5WQUxVRSYmbnVsbCE9ci54U2NhbGUoKSYmci5fc2V0WEV4dGVudChbci54U2NhbGUoKS5pbnZlcnQoYy54KSxyLnhTY2FsZSgpLmludmVydChjLngpXSksci5feUJvdW5kc01vZGU9PT10d3QuUHJvcGVydHlNb2RlLlZBTFVFJiZudWxsIT1yLnlTY2FsZSgpJiZyLl9zZXRZRXh0ZW50KFtyLnlTY2FsZSgpLmludmVydChjLnkpLHIueVNjYWxlKCkuaW52ZXJ0KGMueSldKSxyLnJlbmRlcigpKSxyLmJveFZpc2libGUoITApLHU9ci5ib3VuZHMoKSxlPXt4OnUudG9wTGVmdC54LHk6dS50b3BMZWZ0Lnl9LG49e3g6dS5ib3R0b21SaWdodC54LHk6dS5ib3R0b21SaWdodC55fSxpPWMsci5fZHJhZ1N0YXJ0Q2FsbGJhY2tzLmNhbGxDYWxsYmFja3ModSl9LHU9ZnVuY3Rpb24oYyx1KXtzd2l0Y2gobCl7Y2FzZSBvOm4ueD11Lngsbi55PXUueTticmVhaztjYXNlIGE6dC5ib3R0b20/bi55PXUueTp0LnRvcCYmKGUueT11LnkpLHQucmlnaHQ/bi54PXUueDp0LmxlZnQmJihlLng9dS54KTticmVhaztjYXNlIHM6dmFyIGg9dS54LWkueCxkPXUueS1pLnk7ZS54Kz1oLGUueSs9ZCxuLngrPWgsbi55Kz1kLGk9dX1yLl9zZXRCb3VuZHMoe3RvcExlZnQ6ZSxib3R0b21SaWdodDpufSksci5feEJvdW5kc01vZGU9PT10d3QuUHJvcGVydHlNb2RlLlZBTFVFJiZudWxsIT1yLnhTY2FsZSgpJiZyLl9zZXRYRXh0ZW50KFtyLnhTY2FsZSgpLmludmVydChlLngpLHIueFNjYWxlKCkuaW52ZXJ0KG4ueCldKSxyLl95Qm91bmRzTW9kZT09PXR3dC5Qcm9wZXJ0eU1vZGUuVkFMVUUmJm51bGwhPXIueVNjYWxlKCkmJnIuX3NldFlFeHRlbnQoW3IueVNjYWxlKCkuaW52ZXJ0KGUueSksci55U2NhbGUoKS5pbnZlcnQobi55KV0pLHIucmVuZGVyKCksci5fZHJhZ0NhbGxiYWNrcy5jYWxsQ2FsbGJhY2tzKHIuYm91bmRzKCkpfSxoPWZ1bmN0aW9uKHQsZSl7bD09PW8mJnQueD09PWUueCYmdC55PT09ZS55JiZyLmJveFZpc2libGUoITEpLHIuX2RyYWdFbmRDYWxsYmFja3MuY2FsbENhbGxiYWNrcyhyLmJvdW5kcygpKX07dGhpcy5fZHJhZ0ludGVyYWN0aW9uLm9uRHJhZ1N0YXJ0KGMpLHRoaXMuX2RyYWdJbnRlcmFjdGlvbi5vbkRyYWcodSksdGhpcy5fZHJhZ0ludGVyYWN0aW9uLm9uRHJhZ0VuZChoKSx0aGlzLl9kaXNjb25uZWN0SW50ZXJhY3Rpb249ZnVuY3Rpb24oKXtyLl9kcmFnSW50ZXJhY3Rpb24ub2ZmRHJhZ1N0YXJ0KGMpLHIuX2RyYWdJbnRlcmFjdGlvbi5vZmZEcmFnKHUpLHIuX2RyYWdJbnRlcmFjdGlvbi5vZmZEcmFnRW5kKGgpLHIuX2RyYWdJbnRlcmFjdGlvbi5kZXRhY2goKX19LGUucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dC5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyk7dmFyIG49ZnVuY3Rpb24oKXtyZXR1cm4gZS5fYm94LmFwcGVuZCgibGluZSIpLnN0eWxlcyh7b3BhY2l0eTowLHN0cm9rZToicGluayIsInBvaW50ZXItZXZlbnRzIjoidmlzaWJsZVN0cm9rZSJ9KX07aWYodGhpcy5fZGV0ZWN0aW9uRWRnZVQ9bigpLmNsYXNzZWQoImRyYWctZWRnZS10YiIsITApLHRoaXMuX2RldGVjdGlvbkVkZ2VCPW4oKS5jbGFzc2VkKCJkcmFnLWVkZ2UtdGIiLCEwKSx0aGlzLl9kZXRlY3Rpb25FZGdlTD1uKCkuY2xhc3NlZCgiZHJhZy1lZGdlLWxyIiwhMCksdGhpcy5fZGV0ZWN0aW9uRWRnZVI9bigpLmNsYXNzZWQoImRyYWctZWRnZS1sciIsITApLHRoaXMuX2hhc0Nvcm5lcnMpe3ZhciBpPWZ1bmN0aW9uKCl7cmV0dXJuIGUuX2JveC5hcHBlbmQoImNpcmNsZSIpLnN0eWxlcyh7b3BhY2l0eTowLGZpbGw6InBpbmsiLCJwb2ludGVyLWV2ZW50cyI6InZpc2libGVGaWxsIn0pfTt0aGlzLl9kZXRlY3Rpb25Db3JuZXJUTD1pKCkuY2xhc3NlZCgiZHJhZy1jb3JuZXItdGwiLCEwKSx0aGlzLl9kZXRlY3Rpb25Db3JuZXJUUj1pKCkuY2xhc3NlZCgiZHJhZy1jb3JuZXItdHIiLCEwKSx0aGlzLl9kZXRlY3Rpb25Db3JuZXJCTD1pKCkuY2xhc3NlZCgiZHJhZy1jb3JuZXItYmwiLCEwKSx0aGlzLl9kZXRlY3Rpb25Db3JuZXJCUj1pKCkuY2xhc3NlZCgiZHJhZy1jb3JuZXItYnIiLCEwKX19LGUucHJvdG90eXBlLl9nZXRSZXNpemluZ0VkZ2VzPWZ1bmN0aW9uKHQpe3ZhciBlPXt0b3A6ITEsYm90dG9tOiExLGxlZnQ6ITEscmlnaHQ6ITF9O2lmKCF0aGlzLnJlc2l6YWJsZSgpKXJldHVybiBlO3ZhciBuPXRoaXMuYm91bmRzKCksaT1uLnRvcExlZnQueSxyPW4uYm90dG9tUmlnaHQueSxvPW4udG9wTGVmdC54LGE9bi5ib3R0b21SaWdodC54LHM9dGhpcy5fZGV0ZWN0aW9uUmFkaXVzO3JldHVybiBvLXM8PXQueCYmdC54PD1hK3MmJihlLnRvcD1pLXM8PXQueSYmdC55PD1pK3MsZS5ib3R0b209ci1zPD10LnkmJnQueTw9citzKSxpLXM8PXQueSYmdC55PD1yK3MmJihlLmxlZnQ9by1zPD10LngmJnQueDw9bytzLGUucmlnaHQ9YS1zPD10LngmJnQueDw9YStzKSxlfSxlLnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseT1mdW5jdGlvbigpe2lmKHQucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5LmNhbGwodGhpcyksdGhpcy5ib3hWaXNpYmxlKCkpe3ZhciBlPXRoaXMuYm91bmRzKCksbj1lLnRvcExlZnQueSxpPWUuYm90dG9tUmlnaHQueSxyPWUudG9wTGVmdC54LG89ZS5ib3R0b21SaWdodC54O3RoaXMuX2RldGVjdGlvbkVkZ2VULmF0dHJzKHt4MTpyLHkxOm4seDI6byx5MjpuLCJzdHJva2Utd2lkdGgiOjIqdGhpcy5fZGV0ZWN0aW9uUmFkaXVzfSksdGhpcy5fZGV0ZWN0aW9uRWRnZUIuYXR0cnMoe3gxOnIseTE6aSx4MjpvLHkyOmksInN0cm9rZS13aWR0aCI6Mip0aGlzLl9kZXRlY3Rpb25SYWRpdXN9KSx0aGlzLl9kZXRlY3Rpb25FZGdlTC5hdHRycyh7eDE6cix5MTpuLHgyOnIseTI6aSwic3Ryb2tlLXdpZHRoIjoyKnRoaXMuX2RldGVjdGlvblJhZGl1c30pLHRoaXMuX2RldGVjdGlvbkVkZ2VSLmF0dHJzKHt4MTpvLHkxOm4seDI6byx5MjppLCJzdHJva2Utd2lkdGgiOjIqdGhpcy5fZGV0ZWN0aW9uUmFkaXVzfSksdGhpcy5faGFzQ29ybmVycyYmKHRoaXMuX2RldGVjdGlvbkNvcm5lclRMLmF0dHJzKHtjeDpyLGN5Om4scjp0aGlzLl9kZXRlY3Rpb25SYWRpdXN9KSx0aGlzLl9kZXRlY3Rpb25Db3JuZXJUUi5hdHRycyh7Y3g6byxjeTpuLHI6dGhpcy5fZGV0ZWN0aW9uUmFkaXVzfSksdGhpcy5fZGV0ZWN0aW9uQ29ybmVyQkwuYXR0cnMoe2N4OnIsY3k6aSxyOnRoaXMuX2RldGVjdGlvblJhZGl1c30pLHRoaXMuX2RldGVjdGlvbkNvcm5lckJSLmF0dHJzKHtjeDpvLGN5Omkscjp0aGlzLl9kZXRlY3Rpb25SYWRpdXN9KSl9cmV0dXJuIHRoaXN9LGUucHJvdG90eXBlLmRldGVjdGlvblJhZGl1cz1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9kZXRlY3Rpb25SYWRpdXM7aWYodDwwKXRocm93IG5ldyBFcnJvcigiZGV0ZWN0aW9uIHJhZGl1cyBjYW5ub3QgYmUgbmVnYXRpdmUuIik7cmV0dXJuIHRoaXMuX2RldGVjdGlvblJhZGl1cz10LHRoaXMucmVuZGVyKCksdGhpc30sZS5wcm90b3R5cGUucmVzaXphYmxlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX3Jlc2l6YWJsZToodGhpcy5fcmVzaXphYmxlPXQsdGhpcy5fc2V0UmVzaXphYmxlQ2xhc3Nlcyh0KSx0aGlzKX0sZS5wcm90b3R5cGUuX3NldFJlc2l6YWJsZUNsYXNzZXM9ZnVuY3Rpb24odCl7dCYmdGhpcy5lbmFibGVkKCk/KHRoaXMuYWRkQ2xhc3MoIngtcmVzaXphYmxlIiksdGhpcy5hZGRDbGFzcygieS1yZXNpemFibGUiKSk6KHRoaXMucmVtb3ZlQ2xhc3MoIngtcmVzaXphYmxlIiksdGhpcy5yZW1vdmVDbGFzcygieS1yZXNpemFibGUiKSl9LGUucHJvdG90eXBlLm1vdmFibGU9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fbW92YWJsZToodGhpcy5fbW92YWJsZT10LHRoaXMuX3NldE1vdmFibGVDbGFzcygpLHRoaXMpfSxlLnByb3RvdHlwZS5fc2V0TW92YWJsZUNsYXNzPWZ1bmN0aW9uKCl7dGhpcy5tb3ZhYmxlKCkmJnRoaXMuZW5hYmxlZCgpP3RoaXMuYWRkQ2xhc3MoIm1vdmFibGUiKTp0aGlzLnJlbW92ZUNsYXNzKCJtb3ZhYmxlIil9LGUucHJvdG90eXBlLm9uRHJhZ1N0YXJ0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kcmFnU3RhcnRDYWxsYmFja3MuYWRkKHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZkRyYWdTdGFydD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZHJhZ1N0YXJ0Q2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlLnByb3RvdHlwZS5vbkRyYWc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2RyYWdDYWxsYmFja3MuYWRkKHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZkRyYWc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2RyYWdDYWxsYmFja3MuZGVsZXRlKHQpLHRoaXN9LGUucHJvdG90eXBlLm9uRHJhZ0VuZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZHJhZ0VuZENhbGxiYWNrcy5hZGQodCksdGhpc30sZS5wcm90b3R5cGUub2ZmRHJhZ0VuZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZHJhZ0VuZENhbGxiYWNrcy5kZWxldGUodCksdGhpc30sZS5wcm90b3R5cGUuZHJhZ0ludGVyYWN0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RyYWdJbnRlcmFjdGlvbn0sZS5wcm90b3R5cGUuZW5hYmxlZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9kcmFnSW50ZXJhY3Rpb24uZW5hYmxlZCgpOih0aGlzLl9kcmFnSW50ZXJhY3Rpb24uZW5hYmxlZCh0KSx0aGlzLl9zZXRSZXNpemFibGVDbGFzc2VzKHRoaXMucmVzaXphYmxlKCkpLHRoaXMuX3NldE1vdmFibGVDbGFzcygpLHRoaXMpfSxlLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0LnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyksdGhpcy5fZHJhZ1N0YXJ0Q2FsbGJhY2tzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9kcmFnQ2FsbGJhY2tzLmRlbGV0ZSh0KX0pKSx0aGlzLl9kcmFnQ2FsbGJhY2tzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9kcmFnQ2FsbGJhY2tzLmRlbGV0ZSh0KX0pKSx0aGlzLl9kcmFnRW5kQ2FsbGJhY2tzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9kcmFnRW5kQ2FsbGJhY2tzLmRlbGV0ZSh0KX0pKSx0aGlzLl9kaXNjb25uZWN0SW50ZXJhY3Rpb24oKX0sZS5wcm90b3R5cGUuZGV0YWNoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Jlc2V0U3RhdGUoKSx0aGlzLl9kcmFnSW50ZXJhY3Rpb24uZGV0YWNoKCksdC5wcm90b3R5cGUuZGV0YWNoLmNhbGwodGhpcyksdGhpc30sZS5wcm90b3R5cGUuYW5jaG9yPWZ1bmN0aW9uKGUpe3JldHVybiBlPVF4dC5jb2VyY2VFeHRlcm5hbEQzKGUpLHRoaXMuX2RyYWdJbnRlcmFjdGlvbi5hdHRhY2hUbyh0aGlzKSx0LnByb3RvdHlwZS5hbmNob3IuY2FsbCh0aGlzLGUpLHRoaXN9LGUucHJvdG90eXBlLl9yZXNldFN0YXRlPWZ1bmN0aW9uKCl7dGhpcy5ib3VuZHMoe3RvcExlZnQ6e3g6MCx5OjB9LGJvdHRvbVJpZ2h0Ont4OjAseTowfX0pfSxlfSkoJHh0LlNlbGVjdGlvbkJveExheWVyKTtleHQuRHJhZ0JveExheWVyPWV3dDt2YXIgbnd0PXt9LGl3dD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KGl3dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHJ3dCxvd3Q9Qk8sYXd0PURfdCxzd3Q9T190OyEoZnVuY3Rpb24odCl7dFt0LlZBTFVFPTBdPSJWQUxVRSIsdFt0LlBJWEVMPTFdPSJQSVhFTCJ9KShyd3R8fChyd3Q9e30pKTt2YXIgbHd0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKG4pe3ZhciBpPXQuY2FsbCh0aGlzKXx8dGhpcztpZihpLl9tb2RlPXJ3dC5WQUxVRSxuIT09ZS5PUklFTlRBVElPTl9WRVJUSUNBTCYmbiE9PWUuT1JJRU5UQVRJT05fSE9SSVpPTlRBTCl0aHJvdyBuZXcgRXJyb3IobisiIGlzIG5vdCBhIHZhbGlkIG9yaWVudGF0aW9uIGZvciBHdWlkZUxpbmVMYXllciIpO3JldHVybiBpLl9vcmllbnRhdGlvbj1uLGkuX292ZXJmbG93SGlkZGVuPSEwLGkuYWRkQ2xhc3MoImd1aWRlLWxpbmUtbGF5ZXIiKSxpLl9pc1ZlcnRpY2FsKCk/aS5hZGRDbGFzcygidmVydGljYWwiKTppLmFkZENsYXNzKCJob3Jpem9udGFsIiksaS5fc2NhbGVVcGRhdGVDYWxsYmFjaz1mdW5jdGlvbigpe2kuX3N5bmNQaXhlbFBvc2l0aW9uQW5kVmFsdWUoKSxpLnJlbmRlcigpfSxpfXJldHVybiBvd3QuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyksdGhpcy5fZ3VpZGVMaW5lPXRoaXMuY29udGVudCgpLmFwcGVuZCgibGluZSIpLmNsYXNzZWQoImd1aWRlLWxpbmUiLCEwKX0sZS5wcm90b3R5cGUuX3NpemVGcm9tT2ZmZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm57d2lkdGg6dCxoZWlnaHQ6ZX19LGUucHJvdG90eXBlLl9pc1ZlcnRpY2FsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29yaWVudGF0aW9uPT09ZS5PUklFTlRBVElPTl9WRVJUSUNBTH0sZS5wcm90b3R5cGUuZml4ZWRXaWR0aD1mdW5jdGlvbigpe3JldHVybiEwfSxlLnByb3RvdHlwZS5maXhlZEhlaWdodD1mdW5jdGlvbigpe3JldHVybiEwfSxlLnByb3RvdHlwZS5jb21wdXRlTGF5b3V0PWZ1bmN0aW9uKGUsbixpKXtyZXR1cm4gdC5wcm90b3R5cGUuY29tcHV0ZUxheW91dC5jYWxsKHRoaXMsZSxuLGkpLG51bGwhPXRoaXMuc2NhbGUoKSYmKHRoaXMuX2lzVmVydGljYWwoKT90aGlzLnNjYWxlKCkucmFuZ2UoWzAsdGhpcy53aWR0aCgpXSk6dGhpcy5zY2FsZSgpLnJhbmdlKFt0aGlzLmhlaWdodCgpLDBdKSksdGhpc30sZS5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHk9ZnVuY3Rpb24oKXtyZXR1cm4gdC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHkuY2FsbCh0aGlzKSx0aGlzLl9zeW5jUGl4ZWxQb3NpdGlvbkFuZFZhbHVlKCksdGhpcy5fZ3VpZGVMaW5lLmF0dHJzKHt4MTp0aGlzLl9pc1ZlcnRpY2FsKCk/dGhpcy5waXhlbFBvc2l0aW9uKCk6MCx5MTp0aGlzLl9pc1ZlcnRpY2FsKCk/MDp0aGlzLnBpeGVsUG9zaXRpb24oKSx4Mjp0aGlzLl9pc1ZlcnRpY2FsKCk/dGhpcy5waXhlbFBvc2l0aW9uKCk6dGhpcy53aWR0aCgpLHkyOnRoaXMuX2lzVmVydGljYWwoKT90aGlzLmhlaWdodCgpOnRoaXMucGl4ZWxQb3NpdGlvbigpfSksdGhpc30sZS5wcm90b3R5cGUuX3N5bmNQaXhlbFBvc2l0aW9uQW5kVmFsdWU9ZnVuY3Rpb24oKXtudWxsIT10aGlzLnNjYWxlKCkmJih0aGlzLl9tb2RlPT09cnd0LlZBTFVFJiZudWxsIT10aGlzLnZhbHVlKCk/dGhpcy5fcGl4ZWxQb3NpdGlvbj10aGlzLnNjYWxlKCkuc2NhbGUodGhpcy52YWx1ZSgpKTp0aGlzLl9tb2RlPT09cnd0LlBJWEVMJiZudWxsIT10aGlzLnBpeGVsUG9zaXRpb24oKSYmKHRoaXMuX3ZhbHVlPXRoaXMuc2NhbGUoKS5pbnZlcnQodGhpcy5waXhlbFBvc2l0aW9uKCkpKSl9LGUucHJvdG90eXBlLl9zZXRQaXhlbFBvc2l0aW9uV2l0aG91dENoYW5naW5nTW9kZT1mdW5jdGlvbih0KXt0aGlzLl9waXhlbFBvc2l0aW9uPXQsbnVsbCE9dGhpcy5zY2FsZSgpJiYodGhpcy5fdmFsdWU9dGhpcy5zY2FsZSgpLmludmVydCh0aGlzLnBpeGVsUG9zaXRpb24oKSkpLHRoaXMucmVuZGVyKCl9LGUucHJvdG90eXBlLnNjYWxlPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3NjYWxlO3ZhciBlPXRoaXMuX3NjYWxlO3JldHVybiBudWxsIT1lJiZlLm9mZlVwZGF0ZSh0aGlzLl9zY2FsZVVwZGF0ZUNhbGxiYWNrKSx0aGlzLl9zY2FsZT10LHRoaXMuX3NjYWxlLm9uVXBkYXRlKHRoaXMuX3NjYWxlVXBkYXRlQ2FsbGJhY2spLHRoaXMuX3N5bmNQaXhlbFBvc2l0aW9uQW5kVmFsdWUoKSx0aGlzLnJlZHJhdygpLHRoaXN9LGUucHJvdG90eXBlLnZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX3ZhbHVlOih0aGlzLl92YWx1ZT10LHRoaXMuX21vZGU9cnd0LlZBTFVFLHRoaXMuX3N5bmNQaXhlbFBvc2l0aW9uQW5kVmFsdWUoKSx0aGlzLnJlbmRlcigpLHRoaXMpfSxlLnByb3RvdHlwZS5waXhlbFBvc2l0aW9uPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3BpeGVsUG9zaXRpb247aWYoIWF3dC5NYXRoLmlzVmFsaWROdW1iZXIodCkpdGhyb3cgbmV3IEVycm9yKCJwaXhlbFBvc2l0aW9uIG11c3QgYmUgYSBmaW5pdGUgbnVtYmVyIik7cmV0dXJuIHRoaXMuX3BpeGVsUG9zaXRpb249dCx0aGlzLl9tb2RlPXJ3dC5QSVhFTCx0aGlzLl9zeW5jUGl4ZWxQb3NpdGlvbkFuZFZhbHVlKCksdGhpcy5yZW5kZXIoKSx0aGlzfSxlLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuZGVzdHJveS5jYWxsKHRoaXMpLG51bGwhPXRoaXMuc2NhbGUoKSYmdGhpcy5zY2FsZSgpLm9mZlVwZGF0ZSh0aGlzLl9zY2FsZVVwZGF0ZUNhbGxiYWNrKX0sZS5PUklFTlRBVElPTl9WRVJUSUNBTD0idmVydGljYWwiLGUuT1JJRU5UQVRJT05fSE9SSVpPTlRBTD0iaG9yaXpvbnRhbCIsZX0pKHN3dC5Db21wb25lbnQpO2l3dC5HdWlkZUxpbmVMYXllcj1sd3QsCi8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShud3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBjd3Q9Qk8sdXd0PW54dCxod3Q9RF90LGR3dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2YXIgbj10LmNhbGwodGhpcyxlKXx8dGhpcztuLl9kZXRlY3Rpb25SYWRpdXM9MyxuLl9lbmFibGVkPSEwLG4uYWRkQ2xhc3MoImRyYWctbGluZS1sYXllciIpLG4uYWRkQ2xhc3MoImVuYWJsZWQiKSxuLl9kcmFnSW50ZXJhY3Rpb249bmV3IHV3dC5EcmFnLG4uX2RyYWdJbnRlcmFjdGlvbi5hdHRhY2hUbyhuKTt2YXIgaT0hMSxyPWZ1bmN0aW9uKHQpeyhmdW5jdGlvbih0KXtyZXR1cm4gbi5faXNWZXJ0aWNhbCgpJiZuLnBpeGVsUG9zaXRpb24oKS1uLmRldGVjdGlvblJhZGl1cygpPD10LngmJnQueDw9bi5waXhlbFBvc2l0aW9uKCkrbi5kZXRlY3Rpb25SYWRpdXMoKXx8IW4uX2lzVmVydGljYWwoKSYmbi5waXhlbFBvc2l0aW9uKCktbi5kZXRlY3Rpb25SYWRpdXMoKTw9dC55JiZ0Lnk8PW4ucGl4ZWxQb3NpdGlvbigpK24uZGV0ZWN0aW9uUmFkaXVzKCl9KSh0KSYmKGk9ITAsbi5fZHJhZ1N0YXJ0Q2FsbGJhY2tzLmNhbGxDYWxsYmFja3MobikpfTtuLl9kcmFnSW50ZXJhY3Rpb24ub25EcmFnU3RhcnQocik7dmFyIG89ZnVuY3Rpb24odCxlKXtpJiYobi5fc2V0UGl4ZWxQb3NpdGlvbldpdGhvdXRDaGFuZ2luZ01vZGUobi5faXNWZXJ0aWNhbCgpP2UueDplLnkpLG4uX2RyYWdDYWxsYmFja3MuY2FsbENhbGxiYWNrcyhuKSl9O24uX2RyYWdJbnRlcmFjdGlvbi5vbkRyYWcobyk7dmFyIGE9ZnVuY3Rpb24odCxlKXtpJiYoaT0hMSxuLl9kcmFnRW5kQ2FsbGJhY2tzLmNhbGxDYWxsYmFja3MobikpfTtyZXR1cm4gbi5fZHJhZ0ludGVyYWN0aW9uLm9uRHJhZ0VuZChhKSxuLl9kaXNjb25uZWN0SW50ZXJhY3Rpb249ZnVuY3Rpb24oKXtuLl9kcmFnSW50ZXJhY3Rpb24ub2ZmRHJhZ1N0YXJ0KHIpLG4uX2RyYWdJbnRlcmFjdGlvbi5vZmZEcmFnKG8pLG4uX2RyYWdJbnRlcmFjdGlvbi5vZmZEcmFnRW5kKGEpLG4uX2RyYWdJbnRlcmFjdGlvbi5kZXRhY2goKX0sbi5fZHJhZ1N0YXJ0Q2FsbGJhY2tzPW5ldyBod3QuQ2FsbGJhY2tTZXQsbi5fZHJhZ0NhbGxiYWNrcz1uZXcgaHd0LkNhbGxiYWNrU2V0LG4uX2RyYWdFbmRDYWxsYmFja3M9bmV3IGh3dC5DYWxsYmFja1NldCxufXJldHVybiBjd3QuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyksdGhpcy5fZGV0ZWN0aW9uRWRnZT10aGlzLmNvbnRlbnQoKS5hcHBlbmQoImxpbmUiKS5zdHlsZXMoe29wYWNpdHk6MCxzdHJva2U6InBpbmsiLCJwb2ludGVyLWV2ZW50cyI6InZpc2libGVTdHJva2UifSkuY2xhc3NlZCgiZHJhZy1lZGdlIiwhMCl9LGUucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5PWZ1bmN0aW9uKCl7cmV0dXJuIHQucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5LmNhbGwodGhpcyksdGhpcy5fZGV0ZWN0aW9uRWRnZS5hdHRycyh7eDE6dGhpcy5faXNWZXJ0aWNhbCgpP3RoaXMucGl4ZWxQb3NpdGlvbigpOjAseTE6dGhpcy5faXNWZXJ0aWNhbCgpPzA6dGhpcy5waXhlbFBvc2l0aW9uKCkseDI6dGhpcy5faXNWZXJ0aWNhbCgpP3RoaXMucGl4ZWxQb3NpdGlvbigpOnRoaXMud2lkdGgoKSx5Mjp0aGlzLl9pc1ZlcnRpY2FsKCk/dGhpcy5oZWlnaHQoKTp0aGlzLnBpeGVsUG9zaXRpb24oKSwic3Ryb2tlLXdpZHRoIjoyKnRoaXMuX2RldGVjdGlvblJhZGl1c30pLHRoaXN9LGUucHJvdG90eXBlLmRldGVjdGlvblJhZGl1cz1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9kZXRlY3Rpb25SYWRpdXM7aWYodDwwKXRocm93IG5ldyBFcnJvcigiZGV0ZWN0aW9uIHJhZGl1cyBjYW5ub3QgYmUgbmVnYXRpdmUuIik7cmV0dXJuIHRoaXMuX2RldGVjdGlvblJhZGl1cz10LHRoaXMucmVuZGVyKCksdGhpc30sZS5wcm90b3R5cGUuZW5hYmxlZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9lbmFibGVkOih0aGlzLl9lbmFibGVkPXQsdD90aGlzLmFkZENsYXNzKCJlbmFibGVkIik6dGhpcy5yZW1vdmVDbGFzcygiZW5hYmxlZCIpLHRoaXMuX2RyYWdJbnRlcmFjdGlvbi5lbmFibGVkKHQpLHRoaXMpfSxlLnByb3RvdHlwZS5vbkRyYWdTdGFydD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZHJhZ1N0YXJ0Q2FsbGJhY2tzLmFkZCh0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZEcmFnU3RhcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2RyYWdTdGFydENhbGxiYWNrcy5kZWxldGUodCksdGhpc30sZS5wcm90b3R5cGUub25EcmFnPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kcmFnQ2FsbGJhY2tzLmFkZCh0KSx0aGlzfSxlLnByb3RvdHlwZS5vZmZEcmFnPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kcmFnQ2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSxlLnByb3RvdHlwZS5vbkRyYWdFbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2RyYWdFbmRDYWxsYmFja3MuYWRkKHQpLHRoaXN9LGUucHJvdG90eXBlLm9mZkRyYWdFbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2RyYWdFbmRDYWxsYmFja3MuZGVsZXRlKHQpLHRoaXN9LGUucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3QucHJvdG90eXBlLmRlc3Ryb3kuY2FsbCh0aGlzKSx0aGlzLl9kcmFnU3RhcnRDYWxsYmFja3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX2RyYWdTdGFydENhbGxiYWNrcy5kZWxldGUodCl9KSksdGhpcy5fZHJhZ0NhbGxiYWNrcy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fZHJhZ0NhbGxiYWNrcy5kZWxldGUodCl9KSksdGhpcy5fZHJhZ0VuZENhbGxiYWNrcy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fZHJhZ0VuZENhbGxiYWNrcy5kZWxldGUodCl9KSksdGhpcy5fZGlzY29ubmVjdEludGVyYWN0aW9uKCl9LGV9KShpd3QuR3VpZGVMaW5lTGF5ZXIpO253dC5EcmFnTGluZUxheWVyPWR3dDt2YXIgcHd0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShwd3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBmd3Q9Qk87ZnVuY3Rpb24gbXd0KHQsZSxuKXt2YXIgaT17fTtpZih2b2lkIDAhPT1uKWZvcih2YXIgcj0wO3I8bi5sZW5ndGg7cisrKXtpW25bcl1dPW5bci0xXX1yZXR1cm4gZnVuY3Rpb24obil7dmFyIHIsbz10LnNjYWxlKG4pO2lmKCFlKXJldHVybiBvO3ZhciBhPXZvaWQgMD09PWlbbl0/dm9pZCAwOnQuc2NhbGUoaVtuXSk7cmV0dXJuIHZvaWQgMCE9PWEmJihyPWErKG8tYSkvMikscn19dmFyIGd3dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLG4pe3ZhciBpPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gaS5hZGRDbGFzcygiZ3JpZGxpbmVzIiksaS5feFNjYWxlPWUsaS5feVNjYWxlPW4saS5fcmVuZGVyQ2FsbGJhY2s9ZnVuY3Rpb24odCl7cmV0dXJuIGkucmVuZGVyKCl9LGkuX3hTY2FsZSYmaS5feFNjYWxlLm9uVXBkYXRlKGkuX3JlbmRlckNhbGxiYWNrKSxpLl95U2NhbGUmJmkuX3lTY2FsZS5vblVwZGF0ZShpLl9yZW5kZXJDYWxsYmFjayksaX1yZXR1cm4gZnd0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLmJldHdlZW5YPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10P3RoaXMuX2JldHdlZW5YOih0IT09dGhpcy5fYmV0d2VlblgmJih0aGlzLl9iZXR3ZWVuWD10LHRoaXMucmVuZGVyKCkpLHRoaXMpfSxlLnByb3RvdHlwZS5iZXR3ZWVuWT1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dD90aGlzLl9iZXR3ZWVuWToodCE9PXRoaXMuX2JldHdlZW5ZJiYodGhpcy5fYmV0d2Vlblk9dCx0aGlzLnJlbmRlcigpKSx0aGlzKX0sZS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3JldHVybiB0LnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyksdGhpcy5feFNjYWxlJiZ0aGlzLl94U2NhbGUub2ZmVXBkYXRlKHRoaXMuX3JlbmRlckNhbGxiYWNrKSx0aGlzLl95U2NhbGUmJnRoaXMuX3lTY2FsZS5vZmZVcGRhdGUodGhpcy5fcmVuZGVyQ2FsbGJhY2spLHRoaXN9LGUucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe3QucHJvdG90eXBlLl9zZXR1cC5jYWxsKHRoaXMpLHRoaXMuX3hMaW5lc0NvbnRhaW5lcj10aGlzLmNvbnRlbnQoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJ4LWdyaWRsaW5lcyIsITApLHRoaXMuX3lMaW5lc0NvbnRhaW5lcj10aGlzLmNvbnRlbnQoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJ5LWdyaWRsaW5lcyIsITApfSxlLnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseT1mdW5jdGlvbigpe3JldHVybiB0LnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseS5jYWxsKHRoaXMpLHRoaXMuX3JlZHJhd1hMaW5lcygpLHRoaXMuX3JlZHJhd1lMaW5lcygpLHRoaXN9LGUucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQ9ZnVuY3Rpb24oZSxuLGkpe3JldHVybiB0LnByb3RvdHlwZS5jb21wdXRlTGF5b3V0LmNhbGwodGhpcyxlLG4saSksbnVsbCE9dGhpcy5feFNjYWxlJiZ0aGlzLl94U2NhbGUucmFuZ2UoWzAsdGhpcy53aWR0aCgpXSksbnVsbCE9dGhpcy5feVNjYWxlJiZ0aGlzLl95U2NhbGUucmFuZ2UoW3RoaXMuaGVpZ2h0KCksMF0pLHRoaXN9LGUucHJvdG90eXBlLl9yZWRyYXdYTGluZXM9ZnVuY3Rpb24oKXtpZih0aGlzLl94U2NhbGUpe3ZhciB0PXRoaXMuYmV0d2VlblgoKSxlPXRoaXMuX3hTY2FsZS50aWNrcygpLnNsaWNlKHQ/MTowKSxuPXRoaXMuX3hMaW5lc0NvbnRhaW5lci5zZWxlY3RBbGwoImxpbmUiKS5kYXRhKGUpO24uZW50ZXIoKS5hcHBlbmQoImxpbmUiKS5tZXJnZShuKS5hdHRyKCJ4MSIsbXd0KHRoaXMuX3hTY2FsZSx0LHRoaXMuX3hTY2FsZS50aWNrcygpKSkuYXR0cigieTEiLDApLmF0dHIoIngyIixtd3QodGhpcy5feFNjYWxlLHQsdGhpcy5feFNjYWxlLnRpY2tzKCkpKS5hdHRyKCJ5MiIsdGhpcy5oZWlnaHQoKSkuY2xhc3NlZCgiYmV0d2VlbmxpbmUiLHQpLmNsYXNzZWQoInplcm9saW5lIiwoZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10fSkpLG4uZXhpdCgpLnJlbW92ZSgpfX0sZS5wcm90b3R5cGUuX3JlZHJhd1lMaW5lcz1mdW5jdGlvbigpe2lmKHRoaXMuX3lTY2FsZSl7dmFyIHQ9dGhpcy5iZXR3ZWVuWSgpLGU9dGhpcy5feVNjYWxlLnRpY2tzKCkuc2xpY2UodD8xOjApLG49dGhpcy5feUxpbmVzQ29udGFpbmVyLnNlbGVjdEFsbCgibGluZSIpLmRhdGEoZSk7bi5lbnRlcigpLmFwcGVuZCgibGluZSIpLm1lcmdlKG4pLmF0dHIoIngxIiwwKS5hdHRyKCJ5MSIsbXd0KHRoaXMuX3lTY2FsZSx0LHRoaXMuX3lTY2FsZS50aWNrcygpKSkuYXR0cigieDIiLHRoaXMud2lkdGgoKSkuYXR0cigieTIiLG13dCh0aGlzLl95U2NhbGUsdCx0aGlzLl95U2NhbGUudGlja3MoKSkpLmNsYXNzZWQoImJldHdlZW5saW5lIix0KS5jbGFzc2VkKCJ6ZXJvbGluZSIsKGZ1bmN0aW9uKHQpe3JldHVybiAwPT09dH0pKSxuLmV4aXQoKS5yZW1vdmUoKX19LGV9KShPX3QuQ29tcG9uZW50KTtwd3QuR3JpZGxpbmVzPWd3dDt2YXIgX3d0PXt9LHl3dD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHl3dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHZ3dD1CTyxid3Q9X2d0LHh3dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gZS5fZGV0YWNoQ2FsbGJhY2s9ZnVuY3Rpb24odCl7cmV0dXJuIGUucmVtb3ZlKHQpfSxlfXJldHVybiB2d3QuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuYW5jaG9yPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7cmV0dXJuIGU9Ynd0LmNvZXJjZUV4dGVybmFsRDMoZSksdC5wcm90b3R5cGUuYW5jaG9yLmNhbGwodGhpcyxlKSx0aGlzLl9mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdC5hbmNob3Iobi5lbGVtZW50KCkpfSkpLHRoaXN9LGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZW5kZXIoKX0pKSx0aGlzfSxlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJoYXMoKSBpcyBub3QgaW1wbGVtZW50ZWQgb24gQ29tcG9uZW50Q29udGFpbmVyIil9LGUucHJvdG90eXBlLl9hZG9wdEFuZEFuY2hvcj1mdW5jdGlvbih0KXt0LnBhcmVudCh0aGlzKSx0Lm9uRGV0YWNoKHRoaXMuX2RldGFjaENhbGxiYWNrKSx0aGlzLl9pc0FuY2hvcmVkJiZ0LmFuY2hvcih0aGlzLmVsZW1lbnQoKSl9LGUucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5oYXModCkmJih0Lm9mZkRldGFjaCh0aGlzLl9kZXRhY2hDYWxsYmFjayksdGhpcy5fcmVtb3ZlKHQpLHQuZGV0YWNoKCksdGhpcy5yZWRyYXcoKSksdGhpc30sZS5wcm90b3R5cGUuX3JlbW92ZT1mdW5jdGlvbih0KXtyZXR1cm4hMX0sZS5wcm90b3R5cGUuX2ZvckVhY2g9ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJfZm9yRWFjaCgpIGlzIG5vdCBpbXBsZW1lbnRlZCBvbiBDb21wb25lbnRDb250YWluZXIiKX0sZS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3QucHJvdG90eXBlLmRlc3Ryb3kuY2FsbCh0aGlzKSx0aGlzLl9mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kZXN0cm95KCl9KSl9LGUucHJvdG90eXBlLmludmFsaWRhdGVDYWNoZT1mdW5jdGlvbigpe3RoaXMuX2ZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LmludmFsaWRhdGVDYWNoZSgpfSkpfSxlfSkoT190LkNvbXBvbmVudCk7eXd0LkNvbXBvbmVudENvbnRhaW5lcj14d3QsCi8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShfd3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB3d3Q9Qk8sU3d0PURfdCxNd3Q9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dm9pZCAwPT09ZSYmKGU9W10pO3ZhciBuPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gbi5fY29tcG9uZW50cz1bXSxuLmFkZENsYXNzKCJjb21wb25lbnQtZ3JvdXAiKSxlLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBuLmFwcGVuZCh0KX0pKSxufXJldHVybiB3d3QuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX2ZvckVhY2g9ZnVuY3Rpb24odCl7dGhpcy5jb21wb25lbnRzKCkuZm9yRWFjaCh0KX0sZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9jb21wb25lbnRzLmluZGV4T2YodCk+PTB9LGUucHJvdG90eXBlLnJlcXVlc3RlZFNwYWNlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fY29tcG9uZW50cy5tYXAoKGZ1bmN0aW9uKG4pe3JldHVybiBuLnJlcXVlc3RlZFNwYWNlKHQsZSl9KSk7cmV0dXJue21pbldpZHRoOlN3dC5NYXRoLm1heChuLChmdW5jdGlvbih0KXtyZXR1cm4gdC5taW5XaWR0aH0pLDApLG1pbkhlaWdodDpTd3QuTWF0aC5tYXgobiwoZnVuY3Rpb24odCl7cmV0dXJuIHQubWluSGVpZ2h0fSksMCl9fSxlLnByb3RvdHlwZS5jb21wdXRlTGF5b3V0PWZ1bmN0aW9uKGUsbixpKXt2YXIgcj10aGlzO3JldHVybiB0LnByb3RvdHlwZS5jb21wdXRlTGF5b3V0LmNhbGwodGhpcyxlLG4saSksdGhpcy5fZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5jb21wdXRlTGF5b3V0KHt4OjAseTowfSxyLndpZHRoKCksci5oZWlnaHQoKSl9KSksdGhpc30sZS5wcm90b3R5cGUuX3NpemVGcm9tT2ZmZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm57d2lkdGg6dCxoZWlnaHQ6ZX19LGUucHJvdG90eXBlLmZpeGVkV2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29tcG9uZW50cy5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZml4ZWRXaWR0aCgpfSkpfSxlLnByb3RvdHlwZS5maXhlZEhlaWdodD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb21wb25lbnRzLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5maXhlZEhlaWdodCgpfSkpfSxlLnByb3RvdHlwZS5jb21wb25lbnRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbXBvbmVudHMuc2xpY2UoKX0sZS5wcm90b3R5cGUuYXBwZW5kPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10fHx0aGlzLmhhcyh0KXx8KHQuZGV0YWNoKCksdGhpcy5fY29tcG9uZW50cy5wdXNoKHQpLHRoaXMuX2Fkb3B0QW5kQW5jaG9yKHQpLHRoaXMucmVkcmF3KCkpLHRoaXN9LGUucHJvdG90eXBlLl9yZW1vdmU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fY29tcG9uZW50cy5pbmRleE9mKHQpO3JldHVybiBlPj0wJiYodGhpcy5fY29tcG9uZW50cy5zcGxpY2UoZSwxKSwhMCl9LGV9KSh5d3QuQ29tcG9uZW50Q29udGFpbmVyKTtfd3QuR3JvdXA9TXd0O3ZhciBFd3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KEV3dCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFR3dD1CTyxDd3Q9TGd0LEF3dD1DeXQsa3d0PXB2dCxMd3Q9RF90LFB3dD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7aWYobi5fdGV4dFBhZGRpbmc9NSxudWxsPT1lKXRocm93IG5ldyBFcnJvcigiSW50ZXJwb2xhdGVkQ29sb3JMZWdlbmQgcmVxdWlyZXMgYSBpbnRlcnBvbGF0ZWRDb2xvclNjYWxlIik7cmV0dXJuIG4uX3NjYWxlPWUsbi5fcmVkcmF3Q2FsbGJhY2s9ZnVuY3Rpb24odCl7cmV0dXJuIG4ucmVkcmF3KCl9LG4uX3NjYWxlLm9uVXBkYXRlKG4uX3JlZHJhd0NhbGxiYWNrKSxuLl9mb3JtYXR0ZXI9a3d0LmdlbmVyYWwoKSxuLl9vcmllbnRhdGlvbj0iaG9yaXpvbnRhbCIsbi5fZXhwYW5kcz0hMSxuLmFkZENsYXNzKCJsZWdlbmQiKSxuLmFkZENsYXNzKCJpbnRlcnBvbGF0ZWQtY29sb3ItbGVnZW5kIiksbn1yZXR1cm4gVHd0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyksdGhpcy5fc2NhbGUub2ZmVXBkYXRlKHRoaXMuX3JlZHJhd0NhbGxiYWNrKX0sZS5wcm90b3R5cGUuZm9ybWF0dGVyPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10P3RoaXMuX2Zvcm1hdHRlcjoodGhpcy5fZm9ybWF0dGVyPXQsdGhpcy5yZWRyYXcoKSx0aGlzKX0sZS5wcm90b3R5cGUuZXhwYW5kcz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9leHBhbmRzOih0aGlzLl9leHBhbmRzPXQsdGhpcy5yZWRyYXcoKSx0aGlzKX0sZS5fZW5zdXJlT3JpZW50YXRpb249ZnVuY3Rpb24odCl7aWYoImhvcml6b250YWwiPT09KHQ9dC50b0xvd2VyQ2FzZSgpKXx8ImxlZnQiPT09dHx8InJpZ2h0Ij09PXQpcmV0dXJuIHQ7dGhyb3cgbmV3IEVycm9yKCciJyt0KyciIGlzIG5vdCBhIHZhbGlkIG9yaWVudGF0aW9uIGZvciBJbnRlcnBvbGF0ZWRDb2xvckxlZ2VuZCcpfSxlLnByb3RvdHlwZS5vcmllbnRhdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9vcmllbnRhdGlvbjoodGhpcy5fb3JpZW50YXRpb249ZS5fZW5zdXJlT3JpZW50YXRpb24odCksdGhpcy5yZWRyYXcoKSx0aGlzKX0sZS5wcm90b3R5cGUuZml4ZWRXaWR0aD1mdW5jdGlvbigpe3JldHVybiF0aGlzLmV4cGFuZHMoKXx8dGhpcy5faXNWZXJ0aWNhbCgpfSxlLnByb3RvdHlwZS5maXhlZEhlaWdodD1mdW5jdGlvbigpe3JldHVybiF0aGlzLmV4cGFuZHMoKXx8IXRoaXMuX2lzVmVydGljYWwoKX0sZS5wcm90b3R5cGUuX2dlbmVyYXRlVGlja3M9ZnVuY3Rpb24odCl7dm9pZCAwPT09dCYmKHQ9ZS5fREVGQVVMVF9OVU1fU1dBVENIRVMpO3ZhciBuPXRoaXMuX3NjYWxlLmRvbWFpbigpO2lmKDE9PT10KXJldHVybltuWzBdXTtmb3IodmFyIGk9KG5bMV0tblswXSkvKHQtMSkscj1bXSxvPTA7bzx0O28rKylyLnB1c2goblswXStpKm8pO3JldHVybiByfSxlLnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5fc2V0dXAuY2FsbCh0aGlzKSx0aGlzLl9zd2F0Y2hDb250YWluZXI9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJnIikuY2xhc3NlZCgic3dhdGNoLWNvbnRhaW5lciIsITApLHRoaXMuX3N3YXRjaEJvdW5kaW5nQm94PXRoaXMuY29udGVudCgpLmFwcGVuZCgicmVjdCIpLmNsYXNzZWQoInN3YXRjaC1ib3VuZGluZy1ib3giLCEwKSx0aGlzLl9sb3dlckxhYmVsPXRoaXMuY29udGVudCgpLmFwcGVuZCgiZyIpLmNsYXNzZWQoZS5MRUdFTkRfTEFCRUxfQ0xBU1MsITApLHRoaXMuX3VwcGVyTGFiZWw9dGhpcy5jb250ZW50KCkuYXBwZW5kKCJnIikuY2xhc3NlZChlLkxFR0VORF9MQUJFTF9DTEFTUywhMCk7dmFyIG49bmV3IEN3dC5TdmdDb250ZXh0KHRoaXMuY29udGVudCgpLm5vZGUoKSk7dGhpcy5fbWVhc3VyZXI9bmV3IEN3dC5NZWFzdXJlcihuKSx0aGlzLl93cmFwcGVyPW5ldyBDd3QuV3JhcHBlcix0aGlzLl93cml0ZXI9bmV3IEN3dC5Xcml0ZXIodGhpcy5fbWVhc3VyZXIsbix0aGlzLl93cmFwcGVyKX0sZS5wcm90b3R5cGUucmVxdWVzdGVkU3BhY2U9ZnVuY3Rpb24odCxuKXt2YXIgaSxyLG89dGhpcyxhPXRoaXMuX21lYXN1cmVyLm1lYXN1cmUoKS5oZWlnaHQscz1hLGw9dGhpcy5fc2NhbGUuZG9tYWluKCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gby5fbWVhc3VyZXIubWVhc3VyZShvLl9mb3JtYXR0ZXIodCkpLndpZHRofSkpLGM9ZS5fREVGQVVMVF9OVU1fU1dBVENIRVM7aWYodGhpcy5faXNWZXJ0aWNhbCgpKXt2YXIgdT1Md3QuTWF0aC5tYXgobCwwKTtyPXMrYSt0aGlzLl90ZXh0UGFkZGluZyt1K3RoaXMuX3RleHRQYWRkaW5nLGk9YyphfWVsc2UgaT1zK2ErcyxyPXRoaXMuX3RleHRQYWRkaW5nK2xbMF0rYyphK2xbMV0rdGhpcy5fdGV4dFBhZGRpbmc7cmV0dXJue21pbldpZHRoOnIsbWluSGVpZ2h0Oml9fSxlLnByb3RvdHlwZS5faXNWZXJ0aWNhbD1mdW5jdGlvbigpe3JldHVybiJob3Jpem9udGFsIiE9PXRoaXMuX29yaWVudGF0aW9ufSxlLnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHkuY2FsbCh0aGlzKTt2YXIgbixpLHIsbyxhLHMsbD10aGlzLl9zY2FsZS5kb21haW4oKSxjPXRoaXMuX2Zvcm1hdHRlcihsWzBdKSx1PXRoaXMuX21lYXN1cmVyLm1lYXN1cmUoYykud2lkdGgsaD10aGlzLl9mb3JtYXR0ZXIobFsxXSksZD10aGlzLl9tZWFzdXJlci5tZWFzdXJlKGgpLndpZHRoLHA9dGhpcy5fbWVhc3VyZXIubWVhc3VyZSgpLmhlaWdodCxmPXRoaXMuX3RleHRQYWRkaW5nLG09e3g6MCx5OjB9LGc9e3g6MCx5OjB9LF89e3hBbGlnbjoiY2VudGVyIix5QWxpZ246ImNlbnRlciIsdGV4dFJvdGF0aW9uOjB9LHk9e3hBbGlnbjoiY2VudGVyIix5QWxpZ246ImNlbnRlciIsdGV4dFJvdGF0aW9uOjB9LHY9e3g6MCx5OjAsd2lkdGg6MCxoZWlnaHQ6MH07aWYodGhpcy5faXNWZXJ0aWNhbCgpKXtzPU1hdGguZmxvb3IodGhpcy5oZWlnaHQoKSk7dmFyIGI9TWF0aC5tYXgodSxkKTthPSh0aGlzLndpZHRoKCktYi0yKnRoaXMuX3RleHRQYWRkaW5nKS8yLG49TWF0aC5tYXgodGhpcy53aWR0aCgpLWEtMipmLWIsMCksaT0xLG89ZnVuY3Rpb24odCxuKXtyZXR1cm4gZS5oZWlnaHQoKS0obisxKX0seS55QWxpZ249InRvcCIsbS55PTAsXy55QWxpZ249ImJvdHRvbSIsZy55PTAsImxlZnQiPT09dGhpcy5fb3JpZW50YXRpb24/KHI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZitiK2Z9LHkueEFsaWduPSJyaWdodCIsbS54PS0oYStuK2YpLF8ueEFsaWduPSJyaWdodCIsZy54PS0oYStuK2YpKToocj1mdW5jdGlvbih0LGUpe3JldHVybiBhfSx5LnhBbGlnbj0ibGVmdCIsbS54PWErbitmLF8ueEFsaWduPSJsZWZ0IixnLng9YStuK2YpLHYud2lkdGg9bix2LmhlaWdodD1zKml9ZWxzZSBhPU1hdGgubWF4KGYsKHRoaXMuaGVpZ2h0KCktcCkvMikscz1NYXRoLm1heChNYXRoLmZsb29yKHRoaXMud2lkdGgoKS00KmYtdS1kKSwwKSxuPTEsaT1NYXRoLm1heCh0aGlzLmhlaWdodCgpLTIqYSwwKSxyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGguZmxvb3IodSsyKmYpK2V9LG89ZnVuY3Rpb24odCxlKXtyZXR1cm4gYX0seS54QWxpZ249InJpZ2h0IixtLng9LWYsXy54QWxpZ249ImxlZnQiLGcueD1mLHYueT1hLHYud2lkdGg9cypuLHYuaGVpZ2h0PWk7di54PXIobnVsbCwwKSx0aGlzLl91cHBlckxhYmVsLnRleHQoIiIpLHRoaXMuX3dyaXRlci53cml0ZShoLHRoaXMud2lkdGgoKSx0aGlzLmhlaWdodCgpLHksdGhpcy5fdXBwZXJMYWJlbC5ub2RlKCkpLHRoaXMuX3VwcGVyTGFiZWwuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrbS54KyIsICIrbS55KyIpIiksdGhpcy5fbG93ZXJMYWJlbC50ZXh0KCIiKSx0aGlzLl93cml0ZXIud3JpdGUoYyx0aGlzLndpZHRoKCksdGhpcy5oZWlnaHQoKSxfLHRoaXMuX2xvd2VyTGFiZWwubm9kZSgpKSx0aGlzLl9sb3dlckxhYmVsLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK2cueCsiLCAiK2cueSsiKSIpLHRoaXMuX3N3YXRjaEJvdW5kaW5nQm94LmF0dHJzKHYpO3ZhciB4PXRoaXMuX2dlbmVyYXRlVGlja3Mocyksdz10aGlzLl9zd2F0Y2hDb250YWluZXIuc2VsZWN0QWxsKCJyZWN0LnN3YXRjaCIpLmRhdGEoeCksUz13LmVudGVyKCkuYXBwZW5kKCJyZWN0IikuY2xhc3NlZCgic3dhdGNoIiwhMCksTT13Lm1lcmdlKFMpO3JldHVybiB3LmV4aXQoKS5yZW1vdmUoKSxNLmF0dHJzKHtmaWxsOmZ1bmN0aW9uKHQsbil7cmV0dXJuIGUuX3NjYWxlLnNjYWxlKHQpfSx3aWR0aDpuLGhlaWdodDppLHg6cix5Om8sInNoYXBlLXJlbmRlcmluZyI6ImNyaXNwRWRnZXMifSksQXd0LkFERF9USVRMRV9FTEVNRU5UUyYmUy5hcHBlbmQoInRpdGxlIikudGV4dCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX2Zvcm1hdHRlcih0KX0pKSx0aGlzfSxlLl9ERUZBVUxUX05VTV9TV0FUQ0hFUz0xMSxlLkxFR0VORF9MQUJFTF9DTEFTUz0ibGVnZW5kLWxhYmVsIixlfSkoT190LkNvbXBvbmVudCk7RXd0LkludGVycG9sYXRlZENvbG9yTGVnZW5kPVB3dDt2YXIgTnd0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShOd3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBJd3Q9Qk8sUnd0PUxndCxPd3Q9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxuKXt2b2lkIDA9PT1lJiYoZT0iIiksdm9pZCAwPT09biYmKG49MCk7dmFyIGk9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBpLmFkZENsYXNzKCJsYWJlbCIpLGkudGV4dChlKSxpLmFuZ2xlKG4pLGkueEFsaWdubWVudCgiY2VudGVyIikueUFsaWdubWVudCgiY2VudGVyIiksaS5fcGFkZGluZz0wLGl9cmV0dXJuIEl3dC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5yZXF1ZXN0ZWRTcGFjZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX21lYXN1cmVyLm1lYXN1cmUodGhpcy5fdGV4dCk7cmV0dXJue21pbldpZHRoOigwPT09dGhpcy5hbmdsZSgpP24ud2lkdGg6bi5oZWlnaHQpKzIqdGhpcy5wYWRkaW5nKCksbWluSGVpZ2h0OigwPT09dGhpcy5hbmdsZSgpP24uaGVpZ2h0Om4ud2lkdGgpKzIqdGhpcy5wYWRkaW5nKCl9fSxlLnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5fc2V0dXAuY2FsbCh0aGlzKSx0aGlzLl90ZXh0Q29udGFpbmVyPXRoaXMuY29udGVudCgpLmFwcGVuZCgiZyIpO3ZhciBlPW5ldyBSd3QuU3ZnQ29udGV4dCh0aGlzLl90ZXh0Q29udGFpbmVyLm5vZGUoKSk7dGhpcy5fbWVhc3VyZXI9bmV3IFJ3dC5DYWNoZU1lYXN1cmVyKGUpLHRoaXMuX3dyYXBwZXI9bmV3IFJ3dC5XcmFwcGVyLHRoaXMuX3dyaXRlcj1uZXcgUnd0LldyaXRlcih0aGlzLl9tZWFzdXJlcixlLHRoaXMuX3dyYXBwZXIpLHRoaXMudGV4dCh0aGlzLl90ZXh0KX0sZS5wcm90b3R5cGUudGV4dD1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl90ZXh0O2lmKCJzdHJpbmciIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3IoIkxhYmVsLnRleHQoKSBvbmx5IHRha2VzIHN0cmluZ3MgYXMgaW5wdXQiKTtyZXR1cm4gdGhpcy5fdGV4dD10LHRoaXMucmVkcmF3KCksdGhpc30sZS5wcm90b3R5cGUuYW5nbGU9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fYW5nbGU7aWYoKHQlPTM2MCk+MTgwP3QtPTM2MDp0PC0xODAmJih0Kz0zNjApLC05MCE9PXQmJjAhPT10JiY5MCE9PXQpdGhyb3cgbmV3IEVycm9yKHQrIiBpcyBub3QgYSB2YWxpZCBhbmdsZSBmb3IgTGFiZWwiKTtyZXR1cm4gdGhpcy5fYW5nbGU9dCx0aGlzLnJlZHJhdygpLHRoaXN9LGUucHJvdG90eXBlLnBhZGRpbmc9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fcGFkZGluZztpZigodD0rdCk8MCl0aHJvdyBuZXcgRXJyb3IodCsiIGlzIG5vdCBhIHZhbGlkIHBhZGRpbmcgdmFsdWUuIENhbm5vdCBiZSBsZXNzIHRoYW4gMC4iKTtyZXR1cm4gdGhpcy5fcGFkZGluZz10LHRoaXMucmVkcmF3KCksdGhpc30sZS5wcm90b3R5cGUuZml4ZWRXaWR0aD1mdW5jdGlvbigpe3JldHVybiEwfSxlLnByb3RvdHlwZS5maXhlZEhlaWdodD1mdW5jdGlvbigpe3JldHVybiEwfSxlLnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseT1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5LmNhbGwodGhpcyksdGhpcy5fdGV4dENvbnRhaW5lci5zZWxlY3RBbGwoImciKS5yZW1vdmUoKTt2YXIgZT10aGlzLl9tZWFzdXJlci5tZWFzdXJlKHRoaXMuX3RleHQpLG49TWF0aC5tYXgoTWF0aC5taW4oKHRoaXMuaGVpZ2h0KCktZS5oZWlnaHQpLzIsdGhpcy5wYWRkaW5nKCkpLDApLGk9TWF0aC5tYXgoTWF0aC5taW4oKHRoaXMud2lkdGgoKS1lLndpZHRoKS8yLHRoaXMucGFkZGluZygpKSwwKTt0aGlzLl90ZXh0Q29udGFpbmVyLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK2krIiwiK24rIikiKTt2YXIgcj10aGlzLndpZHRoKCktMippLG89dGhpcy5oZWlnaHQoKS0yKm4sYT17eEFsaWduOnRoaXMueEFsaWdubWVudCgpLHlBbGlnbjp0aGlzLnlBbGlnbm1lbnQoKSx0ZXh0Um90YXRpb246dGhpcy5hbmdsZSgpfTtyZXR1cm4gdGhpcy5fd3JpdGVyLndyaXRlKHRoaXMuX3RleHQscixvLGEpLHRoaXN9LGUucHJvdG90eXBlLmludmFsaWRhdGVDYWNoZT1mdW5jdGlvbigpe3QucHJvdG90eXBlLmludmFsaWRhdGVDYWNoZS5jYWxsKHRoaXMpLHRoaXMuX21lYXN1cmVyLnJlc2V0KCl9LGV9KShPX3QuQ29tcG9uZW50KTtOd3QuTGFiZWw9T3d0O3ZhciB6d3Q9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUobixpKXt2YXIgcj10LmNhbGwodGhpcyxuLGkpfHx0aGlzO3JldHVybiByLmFkZENsYXNzKGUuVElUTEVfTEFCRUxfQ0xBU1MpLHJ9cmV0dXJuIEl3dC5fX2V4dGVuZHMoZSx0KSxlLlRJVExFX0xBQkVMX0NMQVNTPSJ0aXRsZS1sYWJlbCIsZX0pKE93dCk7Tnd0LlRpdGxlTGFiZWw9end0O3ZhciBEd3Q9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUobixpKXt2YXIgcj10LmNhbGwodGhpcyxuLGkpfHx0aGlzO3JldHVybiByLmFkZENsYXNzKGUuQVhJU19MQUJFTF9DTEFTUykscn1yZXR1cm4gSXd0Ll9fZXh0ZW5kcyhlLHQpLGUuQVhJU19MQUJFTF9DTEFTUz0iYXhpcy1sYWJlbCIsZX0pKE93dCk7Tnd0LkF4aXNMYWJlbD1Ed3Q7dmFyIEJ3dD17fSxId3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShId3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBGd3Q9d3B0O0h3dC5jaXJjbGU9ZnVuY3Rpb24gVnd0KCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBGd3Quc3ltYm9sKCkudHlwZShGd3Quc3ltYm9sQ2lyY2xlKS5zaXplKE1hdGguUEkqTWF0aC5wb3codC8yLDIpKX19LEh3dC5zcXVhcmU9ZnVuY3Rpb24gVXd0KCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBGd3Quc3ltYm9sKCkudHlwZShGd3Quc3ltYm9sU3F1YXJlKS5zaXplKE1hdGgucG93KHQsMikpfX0sSHd0LmNyb3NzPWZ1bmN0aW9uIGp3dCgpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gRnd0LnN5bWJvbCgpLnR5cGUoRnd0LnN5bWJvbENyb3NzKS5zaXplKDUvOSpNYXRoLnBvdyh0LDIpKX19LEh3dC5kaWFtb25kPWZ1bmN0aW9uIEd3dCgpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gRnd0LnN5bWJvbCgpLnR5cGUoRnd0LnN5bWJvbERpYW1vbmQpLnNpemUoTWF0aC50YW4oTWF0aC5QSS82KSpNYXRoLnBvdyh0LDIpLzIpfX0sSHd0LnRyaWFuZ2xlPWZ1bmN0aW9uIFd3dCgpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gRnd0LnN5bWJvbCgpLnR5cGUoRnd0LnN5bWJvbFRyaWFuZ2xlKS5zaXplKE1hdGguc3FydCgzKSpNYXRoLnBvdyh0LzIsMikpfX07SHd0LnN0YXI9ZnVuY3Rpb24gcXd0KCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBGd3Quc3ltYm9sKCkudHlwZShGd3Quc3ltYm9sU3Rhcikuc2l6ZSguODkwODEzMDkxNTI5Mjg1MipNYXRoLnBvdyh0LzIsMikpfX07dmFyIFl3dD0zKigxL01hdGguc3FydCgxMikvMisxKTtId3Qud3llPWZ1bmN0aW9uIFh3dCgpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gRnd0LnN5bWJvbCgpLnR5cGUoRnd0LnN5bWJvbFd5ZSkuc2l6ZShZd3QqTWF0aC5wb3codC8yLjQsMikpfX0sCi8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShCd3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciAkd3Q9Qk8sS3d0PXdwdCxad3Q9TGd0LEp3dD1DeXQsUXd0PXB2dCx0U3Q9SHd0LGVTdD1EX3QsblN0PU9fdCxpU3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbil7dm9pZCAwPT09dCYmKHQ9W10pLHZvaWQgMD09PWUmJihlPTApLHZvaWQgMD09PW4mJihuPTEvMCksdGhpcy5jb2x1bW5zPXQsdGhpcy5ib3R0b21QYWRkaW5nPWUsdGhpcy5tYXhXaWR0aD1ufXJldHVybiB0LnByb3RvdHlwZS5hZGRDb2x1bW49ZnVuY3Rpb24odCl7dmFyIGU9dC53aWR0aCxuPXRoaXMuZ2V0V2lkdGhBdmFpbGFibGUoKTt0LndpZHRoPU1hdGgubWluKG4sZSksdGhpcy5jb2x1bW5zLnB1c2godCl9LHQucHJvdG90eXBlLmdldEJvdW5kcz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5jb2x1bW5zW3RdLG49MCxpPTA7aTx0O2krKyluKz10aGlzLmNvbHVtbnNbaV0ud2lkdGg7cmV0dXJue3RvcExlZnQ6e3g6bix5OjB9LGJvdHRvbVJpZ2h0Ont4Om4rZS53aWR0aCx5OmUuaGVpZ2h0fX19LHQucHJvdG90eXBlLmdldEhlaWdodD1mdW5jdGlvbigpe3JldHVybiBlU3QuTWF0aC5tYXgodGhpcy5jb2x1bW5zLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaGVpZ2h0fSkpLDApK3RoaXMuYm90dG9tUGFkZGluZ30sdC5wcm90b3R5cGUuZ2V0V2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5taW4odGhpcy5jb2x1bW5zLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlLndpZHRofSksMCksdGhpcy5tYXhXaWR0aCl9LHQucHJvdG90eXBlLmdldFdpZHRoQXZhaWxhYmxlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nZXRXaWR0aCgpO3JldHVybiBNYXRoLm1heCh0aGlzLm1heFdpZHRoLXQsMCl9LHR9KSgpLHJTdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuLGkpe3ZvaWQgMD09PXQmJih0PTEvMCksdm9pZCAwPT09ZSYmKGU9MS8wKSx2b2lkIDA9PT1uJiYobj0wKSx2b2lkIDA9PT1pJiYoaT1bXSksdGhpcy5tYXhXaWR0aD10LHRoaXMubWF4SGVpZ2h0PWUsdGhpcy5wYWRkaW5nPW4sdGhpcy5yb3dzPWl9cmV0dXJuIHQucHJvdG90eXBlLmFkZFJvdz1mdW5jdGlvbih0KXt0Lm1heFdpZHRoPXRoaXMubWF4V2lkdGgtMip0aGlzLnBhZGRpbmcsdGhpcy5yb3dzLnB1c2godCl9LHQucHJvdG90eXBlLmdldENvbHVtbkJvdW5kcz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuZ2V0Um93Qm91bmRzKHQpLGk9dGhpcy5yb3dzW3RdLmdldEJvdW5kcyhlKTtyZXR1cm4gaS50b3BMZWZ0LngrPW4udG9wTGVmdC54LGkuYm90dG9tUmlnaHQueCs9bi50b3BMZWZ0LngsaS50b3BMZWZ0LnkrPW4udG9wTGVmdC55LGkuYm90dG9tUmlnaHQueSs9bi50b3BMZWZ0LnksaX0sdC5wcm90b3R5cGUuZ2V0Um93Qm91bmRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnBhZGRpbmcsbj10aGlzLnBhZGRpbmcsaT0wO2k8dDtpKyspbis9dGhpcy5yb3dzW2ldLmdldEhlaWdodCgpO3JldHVybnt0b3BMZWZ0Ont4OmUseTpufSxib3R0b21SaWdodDp7eDplK3RoaXMucm93c1t0XS5nZXRXaWR0aCgpLHk6bit0aGlzLnJvd3NbdF0uZ2V0SGVpZ2h0KCl9fX0sdC5wcm90b3R5cGUuZ2V0SGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgubWluKHRoaXMucm93cy5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZS5nZXRIZWlnaHQoKX0pLDApKzIqdGhpcy5wYWRkaW5nLHRoaXMubWF4SGVpZ2h0KX0sdC5wcm90b3R5cGUuZ2V0V2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5taW4oZVN0Lk1hdGgubWF4KHRoaXMucm93cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFdpZHRoKCl9KSksMCkrMip0aGlzLnBhZGRpbmcsdGhpcy5tYXhXaWR0aCl9LHR9KSgpLG9TdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7aWYobi5fcGFkZGluZz01LG4uX3Jvd0JvdHRvbVBhZGRpbmc9MyxuLmFkZENsYXNzKCJsZWdlbmQiKSxuLm1heEVudHJpZXNQZXJSb3coMSksbnVsbD09ZSl0aHJvdyBuZXcgRXJyb3IoIkxlZ2VuZCByZXF1aXJlcyBhIGNvbG9yU2NhbGUiKTtyZXR1cm4gbi5fY29sb3JTY2FsZT1lLG4uX3JlZHJhd0NhbGxiYWNrPWZ1bmN0aW9uKHQpe3JldHVybiBuLnJlZHJhdygpfSxuLl9jb2xvclNjYWxlLm9uVXBkYXRlKG4uX3JlZHJhd0NhbGxiYWNrKSxuLl9mb3JtYXR0ZXI9UXd0LmlkZW50aXR5KCksbi5tYXhMaW5lc1BlckVudHJ5KDEpLG4ueEFsaWdubWVudCgicmlnaHQiKS55QWxpZ25tZW50KCJ0b3AiKSxuLmNvbXBhcmF0b3IoKGZ1bmN0aW9uKHQsZSl7dmFyIGk9bi5fY29sb3JTY2FsZS5kb21haW4oKS5zbGljZSgpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIG4uX2Zvcm1hdHRlcih0KX0pKTtyZXR1cm4gaS5pbmRleE9mKHQpLWkuaW5kZXhPZihlKX0pKSxuLl9zeW1ib2xGYWN0b3J5QWNjZXNzb3I9ZnVuY3Rpb24oKXtyZXR1cm4gdFN0LmNpcmNsZSgpfSxuLl9zeW1ib2xPcGFjaXR5QWNjZXNzb3I9ZnVuY3Rpb24oKXtyZXR1cm4gMX0sbn1yZXR1cm4gJHd0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe3QucHJvdG90eXBlLl9zZXR1cC5jYWxsKHRoaXMpO3ZhciBuPXRoaXMuY29udGVudCgpLmFwcGVuZCgiZyIpLmNsYXNzZWQoZS5MRUdFTkRfUk9XX0NMQVNTLCEwKTtuLmFwcGVuZCgiZyIpLmNsYXNzZWQoZS5MRUdFTkRfRU5UUllfQ0xBU1MsITApLmFwcGVuZCgidGV4dCIpO3ZhciBpPW5ldyBad3QuU3ZnQ29udGV4dChuLm5vZGUoKSxudWxsLEp3dC5BRERfVElUTEVfRUxFTUVOVFMpO3RoaXMuX21lYXN1cmVyPW5ldyBad3QuQ2FjaGVNZWFzdXJlcihpKSx0aGlzLl93cmFwcGVyPShuZXcgWnd0LldyYXBwZXIpLm1heExpbmVzKHRoaXMubWF4TGluZXNQZXJFbnRyeSgpKSx0aGlzLl93cml0ZXI9bmV3IFp3dC5Xcml0ZXIodGhpcy5fbWVhc3VyZXIsaSx0aGlzLl93cmFwcGVyKX0sZS5wcm90b3R5cGUuZm9ybWF0dGVyPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2Zvcm1hdHRlcjoodGhpcy5fZm9ybWF0dGVyPXQsdGhpcy5yZWRyYXcoKSx0aGlzKX0sZS5wcm90b3R5cGUubWF4RW50cmllc1BlclJvdz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9tYXhFbnRyaWVzUGVyUm93Oih0aGlzLl9tYXhFbnRyaWVzUGVyUm93PXQsdGhpcy5yZWRyYXcoKSx0aGlzKX0sZS5wcm90b3R5cGUubWF4TGluZXNQZXJFbnRyeT1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9tYXhMaW5lc1BlckVudHJ5Oih0aGlzLl9tYXhMaW5lc1BlckVudHJ5PXQsdGhpcy5yZWRyYXcoKSx0aGlzKX0sZS5wcm90b3R5cGUubWF4V2lkdGg9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fbWF4V2lkdGg6KHRoaXMuX21heFdpZHRoPXQsdGhpcy5yZWRyYXcoKSx0aGlzKX0sZS5wcm90b3R5cGUuY29tcGFyYXRvcj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9jb21wYXJhdG9yOih0aGlzLl9jb21wYXJhdG9yPXQsdGhpcy5yZWRyYXcoKSx0aGlzKX0sZS5wcm90b3R5cGUuY29sb3JTY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dD8odGhpcy5fY29sb3JTY2FsZS5vZmZVcGRhdGUodGhpcy5fcmVkcmF3Q2FsbGJhY2spLHRoaXMuX2NvbG9yU2NhbGU9dCx0aGlzLl9jb2xvclNjYWxlLm9uVXBkYXRlKHRoaXMuX3JlZHJhd0NhbGxiYWNrKSx0aGlzLnJlZHJhdygpLHRoaXMpOnRoaXMuX2NvbG9yU2NhbGV9LGUucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyksdGhpcy5fY29sb3JTY2FsZS5vZmZVcGRhdGUodGhpcy5fcmVkcmF3Q2FsbGJhY2spfSxlLnByb3RvdHlwZS5fYnVpbGRMZWdlbmRUYWJsZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMsaT10aGlzLl9tZWFzdXJlci5tZWFzdXJlKCkuaGVpZ2h0LHI9bmV3IHJTdCh0LGUsdGhpcy5fcGFkZGluZyksbz10aGlzLl9jb2xvclNjYWxlLmRvbWFpbigpLnNsaWNlKCkuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5fY29tcGFyYXRvcihuLl9mb3JtYXR0ZXIodCksbi5fZm9ybWF0dGVyKGUpKX0pKSxhPW5ldyBpU3Q7cmV0dXJuIHIuYWRkUm93KGEpLGEuYm90dG9tUGFkZGluZz10aGlzLl9yb3dCb3R0b21QYWRkaW5nLG8uZm9yRWFjaCgoZnVuY3Rpb24odCxlKXthLmNvbHVtbnMubGVuZ3RoLzI9PT1uLm1heEVudHJpZXNQZXJSb3coKSYmKChhPW5ldyBpU3QpLmJvdHRvbVBhZGRpbmc9bi5fcm93Qm90dG9tUGFkZGluZyxyLmFkZFJvdyhhKSk7dmFyIG89YS5nZXRXaWR0aEF2YWlsYWJsZSgpLHM9bi5fZm9ybWF0dGVyKHQpLGw9bi5fbWVhc3VyZXIubWVhc3VyZShzKS53aWR0aDtvLWktbDwwJiZhLmNvbHVtbnMubGVuZ3RoPjEmJigoYT1uZXcgaVN0KS5ib3R0b21QYWRkaW5nPW4uX3Jvd0JvdHRvbVBhZGRpbmcsci5hZGRSb3coYSkpLGEuYWRkQ29sdW1uKHt3aWR0aDppLGhlaWdodDppLGRhdGE6e25hbWU6dCx0eXBlOiJzeW1ib2wifX0pLG89YS5nZXRXaWR0aEF2YWlsYWJsZSgpO3ZhciBjPU1hdGgubWluKG8sbCk7bi5fd3JhcHBlci5tYXhMaW5lcyhuLm1heExpbmVzUGVyRW50cnkoKSk7dmFyIHU9bi5fd3JhcHBlci53cmFwKHMsbi5fbWVhc3VyZXIsYykubm9MaW5lczthLmFkZENvbHVtbih7d2lkdGg6YyxoZWlnaHQ6dSppLGRhdGE6e25hbWU6dCx0eXBlOiJ0ZXh0In19KX0pKSxyfSxlLnByb3RvdHlwZS5yZXF1ZXN0ZWRTcGFjZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2J1aWxkTGVnZW5kVGFibGUoZVN0Lk1hdGgubWluKFt0aGlzLm1heFdpZHRoKCksdF0sdCksZSk7cmV0dXJue21pbkhlaWdodDpuLmdldEhlaWdodCgpLG1pbldpZHRoOm4uZ2V0V2lkdGgoKX19LGUucHJvdG90eXBlLmVudGl0aWVzQXQ9ZnVuY3Rpb24odCl7dmFyIG49dGhpcztpZighdGhpcy5faXNTZXR1cClyZXR1cm5bXTt2YXIgaT10aGlzLl9idWlsZExlZ2VuZFRhYmxlKHRoaXMud2lkdGgoKSx0aGlzLmhlaWdodCgpKTtyZXR1cm4gaS5yb3dzLnJlZHVjZSgoZnVuY3Rpb24ocixvLGEpe2lmKDAhPT1yLmxlbmd0aClyZXR1cm4gcjt2YXIgcz1pLmdldFJvd0JvdW5kcyhhKTtyZXR1cm4gZVN0Lk1hdGgud2l0aGluKHQscyk/by5jb2x1bW5zLnJlZHVjZSgoZnVuY3Rpb24ocixvLHMpe3ZhciBsPWkuZ2V0Q29sdW1uQm91bmRzKGEscyk7aWYoZVN0Lk1hdGgud2l0aGluKHQsbCkpe3ZhciBjPW4uY29udGVudCgpLnNlbGVjdEFsbCgiLiIrZS5MRUdFTkRfUk9XX0NMQVNTKS5ub2RlcygpW2FdLHU9S3d0LnNlbGVjdChjKS5zZWxlY3RBbGwoIi4iK2UuTEVHRU5EX0VOVFJZX0NMQVNTKS5ub2RlcygpW01hdGguZmxvb3Iocy8yKV0saD1Ld3Quc2VsZWN0KHUpLnNlbGVjdCgiLiIrZS5MRUdFTkRfU1lNQk9MX0NMQVNTKSxkPWVTdC5ET00uZ2V0VHJhbnNsYXRlVmFsdWVzKEt3dC5zZWxlY3QoYykpLHA9ZVN0LkRPTS5nZXRUcmFuc2xhdGVWYWx1ZXMoaCk7cmV0dXJuW3tib3VuZHM6ZVN0LkRPTS5lbGVtZW50QkJveChLd3Quc2VsZWN0KGMpKSxkYXR1bTpvLmRhdGEubmFtZSxwb3NpdGlvbjp7eDpkWzBdK3BbMF0seTpkWzFdK3BbMV19LHNlbGVjdGlvbjpLd3Quc2VsZWN0KHUpLGNvbXBvbmVudDpufV19cmV0dXJuIHJ9KSxyKTpyfSksW10pfSxlLnByb3RvdHlwZS5yZW5kZXJJbW1lZGlhdGVseT1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlckltbWVkaWF0ZWx5LmNhbGwodGhpcyk7dmFyIG49dGhpcy5fYnVpbGRMZWdlbmRUYWJsZSh0aGlzLndpZHRoKCksdGhpcy5oZWlnaHQoKSk7dGhpcy5jb250ZW50KCkuc2VsZWN0QWxsKCIqIikucmVtb3ZlKCk7dmFyIGk9dGhpcy5jb250ZW50KCkuc2VsZWN0QWxsKCJnLiIrZS5MRUdFTkRfUk9XX0NMQVNTKS5kYXRhKG4ucm93cykscj1pLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChlLkxFR0VORF9ST1dfQ0xBU1MsITApLm1lcmdlKGkpO2kuZXhpdCgpLnJlbW92ZSgpLHIuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCxlKXt2YXIgaT1uLmdldFJvd0JvdW5kcyhlKTtyZXR1cm4idHJhbnNsYXRlKCIraS50b3BMZWZ0LngrIiwgIitpLnRvcExlZnQueSsiKSJ9KSk7dmFyIG89dGhpcztyZXR1cm4gci5lYWNoKChmdW5jdGlvbih0LGkpe2Zvcih2YXIgcj1bXSxhPTA7YTx0LmNvbHVtbnMubGVuZ3RoO2ErPTIpci5wdXNoKFt0LmNvbHVtbnNbYV0sdC5jb2x1bW5zW2ErMV1dKTt2YXIgcz1Ld3Quc2VsZWN0KHRoaXMpLnNlbGVjdEFsbCgiZy4iK2UuTEVHRU5EX0VOVFJZX0NMQVNTKS5kYXRhKHIpLGw9cy5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoZS5MRUdFTkRfRU5UUllfQ0xBU1MsITApLm1lcmdlKHMpO2wuYXBwZW5kKCJwYXRoIikuYXR0cigiZCIsKGZ1bmN0aW9uKHQsZSl7dmFyIG49dFswXTtyZXR1cm4gby5zeW1ib2woKShuLmRhdGEubmFtZSxpKSguNipuLmhlaWdodCkobnVsbCl9KSkuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCxlKXt2YXIgcj10WzBdLG89bi5yb3dzW2ldLmNvbHVtbnMuaW5kZXhPZihyKTtyZXR1cm4idHJhbnNsYXRlKCIrKG4uZ2V0Q29sdW1uQm91bmRzKGksbykudG9wTGVmdC54K3Iud2lkdGgvMikrIiwgIityLmhlaWdodC8yKyIpIn0pKS5hdHRyKCJmaWxsIiwoZnVuY3Rpb24odCl7cmV0dXJuIG8uX2NvbG9yU2NhbGUuc2NhbGUodFswXS5kYXRhLm5hbWUpfSkpLmF0dHIoIm9wYWNpdHkiLChmdW5jdGlvbih0LGUpe3JldHVybiBvLnN5bWJvbE9wYWNpdHkoKSh0WzBdLmRhdGEubmFtZSxpKX0pKS5jbGFzc2VkKGUuTEVHRU5EX1NZTUJPTF9DTEFTUywhMCksbC5hcHBlbmQoImciKS5jbGFzc2VkKCJ0ZXh0LWNvbnRhaW5lciIsITApLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQsZSl7dmFyIHI9bi5yb3dzW2ldLmNvbHVtbnMuaW5kZXhPZih0WzFdKTtyZXR1cm4idHJhbnNsYXRlKCIrbi5nZXRDb2x1bW5Cb3VuZHMoaSxyKS50b3BMZWZ0LngrIiwgMCkifSkpLmVhY2goKGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1Ld3Quc2VsZWN0KHRoaXMpLHI9dFsxXTtvLl93cml0ZXIud3JpdGUoby5fZm9ybWF0dGVyKHIuZGF0YS5uYW1lKSxyLndpZHRoLG8uaGVpZ2h0KCkse3hBbGlnbjoibGVmdCIseUFsaWduOiJ0b3AiLHRleHRSb3RhdGlvbjowfSxpLm5vZGUoKSl9KSkscy5leGl0KCkucmVtb3ZlKCl9KSksdGhpc30sZS5wcm90b3R5cGUuc3ltYm9sPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX3N5bWJvbEZhY3RvcnlBY2Nlc3NvcjoodGhpcy5fc3ltYm9sRmFjdG9yeUFjY2Vzc29yPXQsdGhpcy5yZW5kZXIoKSx0aGlzKX0sZS5wcm90b3R5cGUuc3ltYm9sT3BhY2l0eT1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9zeW1ib2xPcGFjaXR5QWNjZXNzb3I6KHRoaXMuX3N5bWJvbE9wYWNpdHlBY2Nlc3Nvcj0ibnVtYmVyIj09dHlwZW9mIHQ/ZnVuY3Rpb24oKXtyZXR1cm4gdH06dCx0aGlzLnJlbmRlcigpLHRoaXMpfSxlLnByb3RvdHlwZS5maXhlZFdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuITB9LGUucHJvdG90eXBlLmZpeGVkSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuITB9LGUucHJvdG90eXBlLmludmFsaWRhdGVDYWNoZT1mdW5jdGlvbigpe3QucHJvdG90eXBlLmludmFsaWRhdGVDYWNoZS5jYWxsKHRoaXMpLHRoaXMuX21lYXN1cmVyLnJlc2V0KCl9LGUuTEVHRU5EX1JPV19DTEFTUz0ibGVnZW5kLXJvdyIsZS5MRUdFTkRfRU5UUllfQ0xBU1M9ImxlZ2VuZC1lbnRyeSIsZS5MRUdFTkRfU1lNQk9MX0NMQVNTPSJsZWdlbmQtc3ltYm9sIixlfSkoblN0LkNvbXBvbmVudCk7Qnd0LkxlZ2VuZD1vU3Q7dmFyIGFTdD17fSxzU3Q9e30sbFN0PXt9OyEoZnVuY3Rpb24odCl7dmFyIGU7Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSwoZT10LkFuaW1hdG9yfHwodC5BbmltYXRvcj17fSkpLk1BSU49Im1haW4iLGUuUkVTRVQ9InJlc2V0In0pKGxTdCk7dmFyIGNTdD17fSx1U3Q9e30saFN0PXt9LGRTdD1mdW5jdGlvbiB0KGUpe3JldHVybiBudWxsIT1lJiYib2JqZWN0Ij09dHlwZW9mIGUmJiExPT09QXJyYXkuaXNBcnJheShlKX07ZnVuY3Rpb24gcFN0KHQpe3JldHVybiEwPT09ZFN0KHQpJiYiW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX12YXIgZlN0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkoZlN0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbVN0PURfdCxnU3Q9MCxfU3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUpe3ZvaWQgMD09PXQmJih0PVtdKSx2b2lkIDA9PT1lJiYoZT17fSksdGhpcy5fdXBkYXRlSWQ9Z1N0KyssdGhpcy5fZGF0YT10LHRoaXMuX21ldGFkYXRhPWUsdGhpcy5fY2FsbGJhY2tzPW5ldyBtU3QuQ2FsbGJhY2tTZXR9cmV0dXJuIHQucHJvdG90eXBlLm9uVXBkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9jYWxsYmFja3MuYWRkKHQpLHRoaXN9LHQucHJvdG90eXBlLm9mZlVwZGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fY2FsbGJhY2tzLmRlbGV0ZSh0KSx0aGlzfSx0LnByb3RvdHlwZS5kYXRhPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2RhdGE6KHRoaXMuX2RhdGE9dCx0aGlzLl9kaXNwYXRjaFVwZGF0ZSgpLHRoaXMpfSx0LnByb3RvdHlwZS5tZXRhZGF0YT1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9tZXRhZGF0YToodGhpcy5fbWV0YWRhdGE9dCx0aGlzLl9kaXNwYXRjaFVwZGF0ZSgpLHRoaXMpfSx0LnByb3RvdHlwZS51cGRhdGVJZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl91cGRhdGVJZH0sdC5wcm90b3R5cGUuX2Rpc3BhdGNoVXBkYXRlPWZ1bmN0aW9uKCl7dGhpcy5fdXBkYXRlSWQ9Z1N0KyssdGhpcy5fY2FsbGJhY2tzLmNhbGxDYWxsYmFja3ModGhpcyl9LHR9KSgpO2ZTdC5EYXRhc2V0PV9TdCwKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKiBAZmlsZW92ZXJ2aWV3IEltcGxlbWVudHMgdGhlIFNpZ25hdHVyZSBBUEkgdG8gaGVscCBpbiBjb21wYXJpbmcgd2hlbiB0d28KICAgICAqIFBsb3R0YWJsZSBvYmplY3RzIGhhdmUgImNoYW5nZWQiLgogICAgICoKICAgICAqIE1lbW9pemF0aW9uIGluIFBsb3R0YWJsZSBpcyBjb21wbGljYXRlZCBieSBtdXRhYmxlIHNjYWxlcyBhbmQgZGF0YXNldHMuIFdlIGNhbm5vdCBzaW1wbHkKICAgICAqIHJlZmVyZW5jZSBjb21wYXJlIHR3byBlLmcuIHNjYWxlcyBzaW5jZSBpdCBtYXkgaGF2ZSBpbnRlcm5hbGx5IG11dGF0ZWQuIFRvIHJlc29sdmUgdGhpcywKICAgICAqIHdlIHdyaXRlIGEgcmVjdXJzaXZlIFNpZ25hdHVyZSBpbnRlcmZhY2UgdGhhdCBob2xkcyBhbiBpbW11dGFibGUgc25hcHNob3Qgb2Ygd2hhdGV2ZXIKICAgICAqIHN0YXRlIHRoZSBzY2FsZS9kYXRhIHdhcyBpbiBhdCB0aGUgdGltZS4gVGhlbiBvbiBtZW1vaXplZCBmdW5jdGlvbiBpbnZvY2F0aW9uIHdlIHNpZ24gdGhlCiAgICAgKiBuZXcgaW5wdXRzIGFuZCBjb21wYXJlIHRoZSBzaWduYXR1cmVzIHRvIGRlY2lkZSBpZiB3ZSBzaG91bGQgcmVjb21wdXRlLgogICAgICoKICAgICAqIFdlIG11c3QgaGFuZC13cml0ZSBhIHNpZ25hdHVyZSBmb3IgZWFjaCBjdXN0b20gY2xhc3Mgd2Ugd2lzaCB0byBzdXBwb3J0LgogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShoU3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB5U3Q9Qk8sdlN0PWZ1bmN0aW9uIHQoZSl7dmFyIG4saTtyZXR1cm4hMSE9PXBTdChlKSYmKCJmdW5jdGlvbiI9PXR5cGVvZihuPWUuY29uc3RydWN0b3IpJiYoITEhPT1wU3QoaT1uLnByb3RvdHlwZSkmJiExIT09aS5oYXNPd25Qcm9wZXJ0eSgiaXNQcm90b3R5cGVPZiIpKSl9LGJTdD1mU3QseFN0PWxidDtmdW5jdGlvbiB3U3QodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBBU3Q/dDp0IGluc3RhbmNlb2YgRGF0ZT9FU3QodC52YWx1ZU9mKCkpOnQgaW5zdGFuY2VvZiB4U3QuU2NhbGU/U1N0KHQpOnQgaW5zdGFuY2VvZiBiU3QuRGF0YXNldD9NU3QodCk6dlN0KHQpP0NTdCh0KTpBcnJheS5pc0FycmF5KHQpP1RTdCh0KTpFU3QodCl9ZnVuY3Rpb24gU1N0KHQpe3JldHVybiBDU3Qoe2RvbWFpbjp0LmRvbWFpbigpLHJhbmdlOnQucmFuZ2UoKSx1cGRhdGVJZDp0LnVwZGF0ZUlkKCkscmVmOkVTdCh0KX0pfWZ1bmN0aW9uIE1TdCh0KXtyZXR1cm4gQ1N0KHtyZWY6RVN0KHQpLHVwZGF0ZUlkOnQudXBkYXRlSWQoKX0pfWZ1bmN0aW9uIEVTdCh0KXtyZXR1cm4gbmV3IExTdCh0KX1mdW5jdGlvbiBUU3QodCl7cmV0dXJuIG5ldyBrU3QodC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB3U3QodCl9KSkpfWZ1bmN0aW9uIENTdCh0KXt2YXIgZT17fTtmb3IodmFyIG4gaW4gdCl0Lmhhc093blByb3BlcnR5KG4pJiYoZVtuXT13U3QodFtuXSkpO3JldHVybiBuZXcgUFN0KGUpfWhTdC5zaWduPXdTdCxoU3Quc2lnblNjYWxlPVNTdCxoU3Quc2lnbkRhdGFzZXQ9TVN0LGhTdC5zaWduUmVmPUVTdCxoU3Quc2lnbkFycmF5PVRTdCxoU3Quc2lnbk9iaj1DU3Q7dmFyIEFTdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiB0LnByb3RvdHlwZS5pc0RpZmZlcmVudD1mdW5jdGlvbih0KXtyZXR1cm4hKHQgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKXx8dGhpcy5pc1NpZ25hdHVyZURpZmZlcmVudCh0KX0sdH0pKCk7aFN0LlNpZ25hdHVyZT1BU3Q7dmFyIGtTdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uYXJyYXk9ZSxufXJldHVybiB5U3QuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuaXNTaWduYXR1cmVEaWZmZXJlbnQ9ZnVuY3Rpb24odCl7aWYodC5hcnJheS5sZW5ndGghPT10aGlzLmFycmF5Lmxlbmd0aClyZXR1cm4hMDtmb3IodmFyIGU9MDtlPHRoaXMuYXJyYXkubGVuZ3RoO2UrKylpZih0aGlzLmFycmF5W2VdLmlzRGlmZmVyZW50KHQuYXJyYXlbZV0pKXJldHVybiEwO3JldHVybiExfSxlfSkoQVN0KTtoU3QuQXJyYXlTaWduYXR1cmU9a1N0O3ZhciBMU3Q9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dmFyIG49dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBuLnJlZj1lLG59cmV0dXJuIHlTdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5pc1NpZ25hdHVyZURpZmZlcmVudD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZWYhPT10LnJlZn0sZX0pKEFTdCk7aFN0LlJlZmVyZW5jZVNpZ25hdHVyZT1MU3Q7dmFyIFBTdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4ub2JqPWUsbn1yZXR1cm4geVN0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLmlzU2lnbmF0dXJlRGlmZmVyZW50PWZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdC5rZXlzKHRoaXMub2JqKSxuPU9iamVjdC5rZXlzKHQub2JqKTtpZihlLmxlbmd0aCE9PW4ubGVuZ3RoKXJldHVybiEwO2Zvcih2YXIgaT0wLHI9ZTtpPHIubGVuZ3RoO2krKyl7dmFyIG89cltpXTtpZighdC5vYmouaGFzT3duUHJvcGVydHkobykpcmV0dXJuITA7aWYodGhpcy5vYmpbb10uaXNEaWZmZXJlbnQodC5vYmpbb10pKXJldHVybiEwfXJldHVybiExfSxlfSkoQVN0KTtoU3QuT2JqZWN0U2lnbmF0dXJlPVBTdCwKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKiBAZmlsZW92ZXJ2aWV3IEltcGxlbWVudHMgYSBmdW5jdGlvbiBtZW1vaXplciB1c2luZyB0aGUgU2lnbmF0dXJlIEFQSS4KICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodVN0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgTlN0PWhTdDt1U3QubWVtb2l6ZT1mdW5jdGlvbiBJU3QodCl7dmFyIGUsbj12b2lkIDAsaT0hMSxyPSExLG89ZnVuY3Rpb24oKXtmb3IodmFyIG89W10sYT0wO2E8YXJndW1lbnRzLmxlbmd0aDthKyspb1thXT1hcmd1bWVudHNbYV07aWYoaSlyZXR1cm4gZTt2YXIgcz1OU3Quc2lnbkFycmF5KG8pO3JldHVybiB2b2lkIDA9PT1ufHxuLmlzRGlmZmVyZW50KHMpPyhyJiZjb25zb2xlLndhcm4oImNhY2hlIG1pc3MhIGNvbXB1dGluZyIpLG49cyxlPXQuYXBwbHkodGhpcyxvKSk6ciYmY29uc29sZS53YXJuKCJjYWNoZSBoaXQhIiksZX07cmV0dXJuIG8uZG9Mb2NrZWQ9ZnVuY3Rpb24odCl7aWYoaSl0aHJvdyBuZXcgRXJyb3IoIkxvY2tpbmcgYW4gYWxyZWFkeSBsb2NrZWQgbWVtb2l6ZSBmdW5jdGlvbiEiKTtpPSEwO3ZhciBlPXQuYXBwbHkodGhpcyk7cmV0dXJuIGk9ITEsZX0sby5sb2dQZXJmb3JtYW5jZT1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9ITApLHI9dCx0aGlzfSxvfTt2YXIgUlN0PXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShSU3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBPU3Q9Q2UuZXhwb3J0cyx6U3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMubWFwPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5leGlzdHM9T2JqZWN0LmNyZWF0ZShudWxsKX1yZXR1cm4gdC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3JldHVybiBkZWxldGUgdGhpcy5tYXBbdF0sZGVsZXRlIHRoaXMuZXhpc3RzW3RdLCEwfSx0LnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubWFwW3RdfSx0LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuISF0aGlzLmV4aXN0c1t0XX0sdC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMubWFwW3RdPWUsdGhpcy5leGlzdHNbdF09ITAsdGhpc30sdH0pKCksRFN0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt0aGlzLm1hcD1uZXcgelN0fXJldHVybiB0LnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubWFwLmdldCh0WzBdKS5nZXQodFsxXSl9LHQucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5tYXAuaGFzKHRbMF0pJiZ0aGlzLm1hcC5nZXQodFswXSkuaGFzKHRbMV0pfSx0LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5tYXAuaGFzKHRbMF0pfHx0aGlzLm1hcC5zZXQodFswXSxuZXcgelN0KSx0aGlzLm1hcC5nZXQodFswXSkuc2V0KHRbMV0sZSksdGhpc30sdC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1hcC5oYXModFswXSkmJnRoaXMubWFwLmdldCh0WzBdKS5kZWxldGUodFsxXSksITB9LHQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5tYXA9bmV3IHpTdH0sdC5yZXNvbHZlcj1mdW5jdGlvbih0LGUsbil7cmV0dXJuW24udXBkYXRlSWQoKSxlXX0sdH0pKCk7ZnVuY3Rpb24gQlN0KHQpe3ZhciBlPU9TdC5tZW1vaXplKHQsRFN0LnJlc29sdmVyKTtyZXR1cm4gZS5jYWNoZT1uZXcgRFN0LGV9UlN0Lm1lbW9pemVQcm9qZWN0b3I9QlN0LFJTdC5tZW1vaXplUHJvamVjdG9ycz1mdW5jdGlvbiBIU3QodCl7cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3RbZV09QlN0KHRbZV0pfSkpLHR9O3ZhciBGU3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICogQGZpbGVvdmVydmlldyBJbXBsZW1lbnRzIGEgY29udmVuaWVudCB0aHVuayBmdW5jdGlvbiB0byBoYW5kbGUgdGhlIGNvbW1vbiBjYXNlCiAgICAgKiBvZiBjcmVhdGluZyBhIG1lbW9pemVkIGZ1bmN0aW9uIHRoYXQgdGFrZXMgaXRzIGlucHV0cyBmcm9tIG11dGFibGUgY2xhc3MgcHJvcGVydGllcy4KICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShGU3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBWU3Q9Y1N0O0ZTdC5tZW1UaHVuaz1mdW5jdGlvbiBVU3QoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49dC5zbGljZSgwLC0xKSxpPXRbdC5sZW5ndGgtMV0scj1WU3QubWVtb2l6ZShpKSxvPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPW4ubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZS5hcHBseSh0KX0pKTtyZXR1cm4gci5hcHBseSh2b2lkIDAsZSl9O3JldHVybiBvfSwoZnVuY3Rpb24odCl7Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT1CTztlLl9fZXhwb3J0U3Rhcih1U3QsdCksZS5fX2V4cG9ydFN0YXIoUlN0LHQpLGUuX19leHBvcnRTdGFyKEZTdCx0KSx0LnNpZ249aFN0LnNpZ259KShjU3QpO3ZhciBqU3Q9e307IShmdW5jdGlvbih0KXsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPXdwdCxuPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fZHJhd1N0ZXA9ZX1yZXR1cm4gdC5wcm90b3R5cGUuZ2V0RHJhd1N0ZXA9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZHJhd1N0ZXB9LHQucHJvdG90eXBlLmRyYXc9ZnVuY3Rpb24odCxlKXt2YXIgbj1lW2UubGVuZ3RoLTFdLmF0dHJUb0FwcGxpZWRQcm9qZWN0b3I7dGhpcy5fY29udGV4dC5zYXZlKCksdGhpcy5fZHJhd1N0ZXAodGhpcy5fY29udGV4dCx0LG4pLHRoaXMuX2NvbnRleHQucmVzdG9yZSgpfSx0LnByb3RvdHlwZS5nZXRWaXN1YWxQcmltaXRpdmVzPWZ1bmN0aW9uKCl7cmV0dXJuW119LHQucHJvdG90eXBlLmdldFZpc3VhbFByaW1pdGl2ZUF0SW5kZXg9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGx9LHQucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe30sdH0pKCk7ZnVuY3Rpb24gaSh0LGUsbixpKXtmb3IodmFyIHI9e30sbz0wLGE9ZTtvPGEubGVuZ3RoO28rKyl7dmFyIHM9YVtvXTt0Lmhhc093blByb3BlcnR5KHMpJiYocltzXT10W3NdKG4saSkpfXJldHVybiByfWZ1bmN0aW9uIHIodCl7cmV0dXJuIG51bGwhPXRbInN0cm9rZS13aWR0aCJdP3BhcnNlRmxvYXQodFsic3Ryb2tlLXdpZHRoIl0pOjF9ZnVuY3Rpb24gbyh0KXt2YXIgZT10WyJzdHJva2UtZGFzaGFycmF5Il07aWYobnVsbCE9ZSl0cnl7cmV0dXJuIGUuc3BsaXQoL1sgLF0rLykubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gcGFyc2VJbnQodCwxMCl9KSl9Y2F0Y2godCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoImdldFN0cm9rZURhc2hBcnJheSBmYWlsZWQgd2l0aDogIit0KSxbXX1yZXR1cm5bXX1mdW5jdGlvbiBhKHQsbil7aWYobi5zdHJva2Upe3QubGluZVdpZHRoPXIobik7dmFyIGk9ZS5jb2xvcihuLnN0cm9rZSksYT1vKG4pO3Quc2V0TGluZURhc2goYSksaS5vcGFjaXR5Kj0oZnVuY3Rpb24gcyh0KXt2YXIgZT1udWxsIT10Lm9wYWNpdHk/cGFyc2VGbG9hdCh0Lm9wYWNpdHkpOjE7cmV0dXJuKG51bGwhPXRbInN0cm9rZS1vcGFjaXR5Il0/cGFyc2VGbG9hdCh0WyJzdHJva2Utb3BhY2l0eSJdKToxKSplfSkobiksdC5zdHJva2VTdHlsZT1pLnRvU3RyaW5nKCksdC5zdHJva2UoKX1pZihuLmZpbGwpe3ZhciBsPWUuY29sb3Iobi5maWxsKTtsLm9wYWNpdHkqPShmdW5jdGlvbiBjKHQpe3ZhciBlPW51bGwhPXQub3BhY2l0eT9wYXJzZUZsb2F0KHQub3BhY2l0eSk6MTtyZXR1cm4obnVsbCE9dFsiZmlsbC1vcGFjaXR5Il0/cGFyc2VGbG9hdCh0WyJmaWxsLW9wYWNpdHkiXSk6MSkqZX0pKG4pLHQuZmlsbFN0eWxlPWwudG9TdHJpbmcoKSx0LmZpbGwoKX19dC5DYW52YXNEcmF3ZXI9bix0LkNvbnRleHRTdHlsZUF0dHJzPVsiZmlsbC1vcGFjaXR5IiwiZmlsbCIsIm9wYWNpdHkiLCJzdHJva2Utb3BhY2l0eSIsInN0cm9rZS13aWR0aCIsInN0cm9rZSIsInN0cm9rZS1kYXNoYXJyYXkiXSx0LnJlc29sdmVBdHRyaWJ1dGVzU3Vic2V0V2l0aFN0eWxlcz1mdW5jdGlvbiBzKGUsbixyLG8pe3JldHVybiBpKGUsdC5Db250ZXh0U3R5bGVBdHRycy5jb25jYXQobikscixvKX0sdC5yZXNvbHZlQXR0cmlidXRlcz1pLHQuZ2V0U3Ryb2tlV2lkdGg9cix0LmdldFN0cm9rZURhc2hBcnJheT1vLHQucmVuZGVyQXJlYT1mdW5jdGlvbiBsKHQsZSxuLGkpe3Quc2F2ZSgpLHQuYmVnaW5QYXRoKCksZS5jb250ZXh0KHQpLGUobiksdC5saW5lSm9pbj0icm91bmQiLGEodCxpKSx0LnJlc3RvcmUoKX0sdC5yZW5kZXJMaW5lPWZ1bmN0aW9uIGModCxlLG4saSl7dC5zYXZlKCksdC5iZWdpblBhdGgoKSxlLmNvbnRleHQodCksZShuKSx0LmxpbmVKb2luPSJyb3VuZCIsYSh0LGkpLHQucmVzdG9yZSgpfSx0LnJlbmRlclBhdGhXaXRoU3R5bGU9YX0pKGpTdCk7dmFyIEdTdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoR1N0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgV1N0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlKXt0aGlzLl9zdmdEcmF3ZXJGYWN0b3J5PXQsdGhpcy5fY2FudmFzRHJhd2VyRmFjdG9yeT1lfXJldHVybiB0LnByb3RvdHlwZS51c2VTVkc9ZnVuY3Rpb24odCl7bnVsbCE9dGhpcy5fY3VycmVudERyYXdlciYmdGhpcy5fY3VycmVudERyYXdlci5yZW1vdmUoKTt2YXIgZT10aGlzLl9zdmdEcmF3ZXJGYWN0b3J5KCk7ZS5hdHRhY2hUbyh0KSx0aGlzLl9jdXJyZW50RHJhd2VyPWV9LHQucHJvdG90eXBlLnVzZUNhbnZhcz1mdW5jdGlvbih0KXtudWxsIT10aGlzLl9jdXJyZW50RHJhd2VyJiZ0aGlzLl9jdXJyZW50RHJhd2VyLnJlbW92ZSgpLHRoaXMuX2N1cnJlbnREcmF3ZXI9dGhpcy5fY2FudmFzRHJhd2VyRmFjdG9yeSh0Lm5vZGUoKS5nZXRDb250ZXh0KCIyZCIpKX0sdC5wcm90b3R5cGUuZ2V0RHJhd2VyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2N1cnJlbnREcmF3ZXJ9LHQucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe251bGwhPXRoaXMuX2N1cnJlbnREcmF3ZXImJnRoaXMuX2N1cnJlbnREcmF3ZXIucmVtb3ZlKCl9LHQucHJvdG90eXBlLmRyYXc9ZnVuY3Rpb24odCxlKXt0aGlzLl9jdXJyZW50RHJhd2VyLmRyYXcodCxlKX0sdC5wcm90b3R5cGUuZ2V0VmlzdWFsUHJpbWl0aXZlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jdXJyZW50RHJhd2VyLmdldFZpc3VhbFByaW1pdGl2ZXMoKX0sdC5wcm90b3R5cGUuZ2V0VmlzdWFsUHJpbWl0aXZlQXRJbmRleD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fY3VycmVudERyYXdlci5nZXRWaXN1YWxQcmltaXRpdmVBdEluZGV4KHQpfSx0fSkoKTtHU3QuUHJveHlEcmF3ZXI9V1N0O3ZhciBxU3Q9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KHFTdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFlTdD13cHQsWFN0PURfdCwkU3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUpe3RoaXMuX3Jvb3Q9WVN0LnNlbGVjdChkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZyIpKSx0aGlzLl9jbGFzc05hbWU9ZSx0aGlzLl9zdmdFbGVtZW50TmFtZT10fXJldHVybiB0LnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpczt0aGlzLl9jcmVhdGVBbmREZXN0cm95RE9NRWxlbWVudHModCk7Zm9yKHZhciBpPTAscj1lLmxlbmd0aCxvPWZ1bmN0aW9uKHIpe3ZhciBvPWVbcl07WFN0LldpbmRvdy5zZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBuLl9kcmF3U3RlcChvKX0pLGkpLGkrPW8uYW5pbWF0b3IudG90YWxUaW1lKHQubGVuZ3RoKX0sYT0wO2E8cjthKyspbyhhKX0sdC5wcm90b3R5cGUuZ2V0VmlzdWFsUHJpbWl0aXZlcz1mdW5jdGlvbigpe3JldHVybiBudWxsPT10aGlzLl9jYWNoZWRWaXN1YWxQcmltaXRpdmVzTm9kZXMmJih0aGlzLl9jYWNoZWRWaXN1YWxQcmltaXRpdmVzTm9kZXM9dGhpcy5fc2VsZWN0aW9uLm5vZGVzKCkpLHRoaXMuX2NhY2hlZFZpc3VhbFByaW1pdGl2ZXNOb2Rlc30sdC5wcm90b3R5cGUuZ2V0VmlzdWFsUHJpbWl0aXZlQXRJbmRleD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dGhpcy5fY2FjaGVkVmlzdWFsUHJpbWl0aXZlc05vZGVNYXA/bnVsbDp0aGlzLl9jYWNoZWRWaXN1YWxQcmltaXRpdmVzTm9kZU1hcC5nZXQodCl9LHQucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe3RoaXMuX3Jvb3QucmVtb3ZlKCl9LHQucHJvdG90eXBlLmF0dGFjaFRvPWZ1bmN0aW9uKHQpe3Qubm9kZSgpLmFwcGVuZENoaWxkKHRoaXMuX3Jvb3Qubm9kZSgpKX0sdC5wcm90b3R5cGUuZ2V0Um9vdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yb290fSx0LnByb3RvdHlwZS5zZWxlY3Rvcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdmdFbGVtZW50TmFtZX0sdC5wcm90b3R5cGUuX2FwcGx5RGVmYXVsdEF0dHJpYnV0ZXM9ZnVuY3Rpb24odCl7fSx0LnByb3RvdHlwZS5fY3JlYXRlQW5kRGVzdHJveURPTUVsZW1lbnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQubWFwKChmdW5jdGlvbih0LGUpe3JldHVybiBudWxsIT10P3tkOnQsaTplfTpudWxsfSkpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXR9KSksbj10aGlzLl9yb290LnNlbGVjdEFsbCh0aGlzLnNlbGVjdG9yKCkpLmRhdGEoZSk7dGhpcy5fc2VsZWN0aW9uPW4uZW50ZXIoKS5hcHBlbmQodGhpcy5fc3ZnRWxlbWVudE5hbWUpLm1lcmdlKG4pLG4uZXhpdCgpLnJlbW92ZSgpO3ZhciBpPW5ldyBYU3QuTWFwO3RoaXMuX3NlbGVjdGlvbi5lYWNoKChmdW5jdGlvbih0KXtpLnNldCh0LmksdGhpcyl9KSksdGhpcy5fY2FjaGVkVmlzdWFsUHJpbWl0aXZlc05vZGVNYXA9aSx0aGlzLl9jYWNoZWRWaXN1YWxQcmltaXRpdmVzTm9kZXM9bnVsbCx0aGlzLl9zZWxlY3Rpb24uZGF0YSh0aGlzLl9zZWxlY3Rpb24uZGF0YSgpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZH0pKSksbnVsbCE9dGhpcy5fY2xhc3NOYW1lJiZ0aGlzLl9zZWxlY3Rpb24uY2xhc3NlZCh0aGlzLl9jbGFzc05hbWUsITApLHRoaXMuX2FwcGx5RGVmYXVsdEF0dHJpYnV0ZXModGhpcy5fc2VsZWN0aW9uKX0sdC5wcm90b3R5cGUuX2RyYXdTdGVwPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7WyJmaWxsIiwic3Ryb2tlIl0uZm9yRWFjaCgoZnVuY3Rpb24obil7bnVsbCE9dC5hdHRyVG9BcHBsaWVkUHJvamVjdG9yW25dJiZlLl9zZWxlY3Rpb24uYXR0cihuLHQuYXR0clRvQXBwbGllZFByb2plY3RvcltuXSl9KSksdC5hbmltYXRvci5hbmltYXRlKHRoaXMuX3NlbGVjdGlvbix0LmF0dHJUb0FwcGxpZWRQcm9qZWN0b3IpLG51bGwhPXRoaXMuX2NsYXNzTmFtZSYmdGhpcy5fc2VsZWN0aW9uLmNsYXNzZWQodGhpcy5fY2xhc3NOYW1lLCEwKX0sdH0pKCk7cVN0LlNWR0RyYXdlcj0kU3Q7dmFyIEtTdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNy1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoS1N0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgWlN0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt2YXIgdD10aGlzO3RoaXMuc2NhbGU9MCx0aGlzLnRyYW5zbGF0ZT0wLHRoaXMuY2FjaGVkRG9tYWluPVtudWxsLG51bGxdLHRoaXMubGFzdFNlZW5Eb21haW49W251bGwsbnVsbF0sdGhpcy51cGRhdGVEb21haW49ZnVuY3Rpb24oZSl7dC5sYXN0U2VlbkRvbWFpbj1lLmdldFRyYW5zZm9ybWF0aW9uRG9tYWluKCk7dmFyIG49ZS5zY2FsZVRyYW5zZm9ybWF0aW9uKHQuY2FjaGVkRG9tYWluWzFdKS1lLnNjYWxlVHJhbnNmb3JtYXRpb24odC5jYWNoZWREb21haW5bMF0pLGk9ZS5zY2FsZVRyYW5zZm9ybWF0aW9uKHQubGFzdFNlZW5Eb21haW5bMV0pLWUuc2NhbGVUcmFuc2Zvcm1hdGlvbih0Lmxhc3RTZWVuRG9tYWluWzBdKTt0LnNjYWxlPW4vaXx8MSx0LnRyYW5zbGF0ZT1lLnNjYWxlVHJhbnNmb3JtYXRpb24odC5jYWNoZWREb21haW5bMF0pLWUuc2NhbGVUcmFuc2Zvcm1hdGlvbih0Lmxhc3RTZWVuRG9tYWluWzBdKSp0LnNjYWxlfHwwfX1yZXR1cm4gdC5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLnNjYWxlPTEsdGhpcy50cmFuc2xhdGU9MCx0aGlzLmNhY2hlZERvbWFpbj10aGlzLmxhc3RTZWVuRG9tYWlufSx0LnByb3RvdHlwZS5zZXREb21haW49ZnVuY3Rpb24odCl7dGhpcy5jYWNoZWREb21haW49dC5nZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbigpfSx0fSkoKSxKU3Q9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4pe3ZhciBpPXRoaXM7dGhpcy5yZW5kZXJDYWxsYmFjaz1lLHRoaXMuYXBwbHlUcmFuc2Zvcm1DYWxsYmFjaz1uLHRoaXMuZG9tYWluVHJhbnNmb3JtWD1uZXcgWlN0LHRoaXMuZG9tYWluVHJhbnNmb3JtWT1uZXcgWlN0LHRoaXMucmVuZGVyRGVmZXJyZWQ9ZnVuY3Rpb24oKXtpLmFwcGx5VHJhbnNmb3JtKCksY2xlYXJUaW1lb3V0KGkudGltZW91dFRva2VuKSxpLnRpbWVvdXRUb2tlbj1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2kucmVuZGVyQ2FsbGJhY2soKX0pLHQuREVGRVJSRURfUkVOREVSSU5HX0RFTEFZKX19cmV0dXJuIHQucHJvdG90eXBlLnNldERvbWFpbnM9ZnVuY3Rpb24odCxlKXt0JiZ0aGlzLmRvbWFpblRyYW5zZm9ybVguc2V0RG9tYWluKHQpLGUmJnRoaXMuZG9tYWluVHJhbnNmb3JtWS5zZXREb21haW4oZSksdGhpcy5yZW5kZXJEZWZlcnJlZCgpfSx0LnByb3RvdHlwZS51cGRhdGVEb21haW5zPWZ1bmN0aW9uKHQsZSl7dCYmdGhpcy5kb21haW5UcmFuc2Zvcm1YLnVwZGF0ZURvbWFpbih0KSxlJiZ0aGlzLmRvbWFpblRyYW5zZm9ybVkudXBkYXRlRG9tYWluKGUpLHRoaXMucmVuZGVyRGVmZXJyZWQoKX0sdC5wcm90b3R5cGUucmVzZXRUcmFuc2Zvcm1zPWZ1bmN0aW9uKCl7dGhpcy5kb21haW5UcmFuc2Zvcm1YLnJlc2V0KCksdGhpcy5kb21haW5UcmFuc2Zvcm1ZLnJlc2V0KCksdGhpcy5hcHBseVRyYW5zZm9ybSgpfSx0LnByb3RvdHlwZS5hcHBseVRyYW5zZm9ybT1mdW5jdGlvbigpe3RoaXMuYXBwbHlUcmFuc2Zvcm1DYWxsYmFjayh0aGlzLmRvbWFpblRyYW5zZm9ybVgudHJhbnNsYXRlLHRoaXMuZG9tYWluVHJhbnNmb3JtWS50cmFuc2xhdGUsdGhpcy5kb21haW5UcmFuc2Zvcm1YLnNjYWxlLHRoaXMuZG9tYWluVHJhbnNmb3JtWS5zY2FsZSl9LHQuREVGRVJSRURfUkVOREVSSU5HX0RFTEFZPTIwMCx0fSkoKTtLU3QuRGVmZXJyZWRSZW5kZXJlcj1KU3QsCi8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShzU3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBRU3Q9Qk8sdE10PXdwdCxlTXQ9Zmd0LG5NdD1EX3QsaU10PWxTdCxyTXQ9Y1N0LG9NdD1PX3QsYU10PWpTdCxzTXQ9R1N0LGxNdD1xU3QsY010PV9ndCx1TXQ9S1N0O3NTdC5SZW5kZXJlcj1iZ3QubWFrZUVudW0oWyJzdmciLCJjYW52YXMiXSk7dmFyIGhNdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBuPXQuY2FsbCh0aGlzKXx8dGhpcztuLl9kYXRhQ2hhbmdlZD0hMSxuLl9hdHRyRXh0ZW50cz17fSxuLl9hbmltYXRlPSExLG4uX2FuaW1hdG9ycz17fSxuLl9wcm9wZXJ0eUV4dGVudHM9e30sbi5fcmVzZXRFbnRpdHlTdG9yZT1mdW5jdGlvbigpe24uX2NhY2hlZEVudGl0eVN0b3JlPXZvaWQgMH0sbi5fb3ZlcmZsb3dIaWRkZW49ITAsbi5hZGRDbGFzcygicGxvdCIpLG4uX2RhdGFzZXRUb0RyYXdlcj1uZXcgbk10Lk1hcCxuLl9hdHRyQmluZGluZ3M9dE10Lm1hcCgpLG4uX2luY2x1ZGVkVmFsdWVzUHJvdmlkZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5faW5jbHVkZWRWYWx1ZXNGb3JTY2FsZSh0LGUpfSxuLl9yZW5kZXJDYWxsYmFjaz1mdW5jdGlvbigpe3JldHVybiBuLnJlbmRlcigpfSxuLl9vbkRhdGFzZXRVcGRhdGVDYWxsYmFjaz1mdW5jdGlvbigpe3JldHVybiBuLl9vbkRhdGFzZXRVcGRhdGUoKX0sbi5fcHJvcGVydHlCaW5kaW5ncz10TXQubWFwKCk7dmFyIGk9KG5ldyBlTXQuRWFzaW5nKS5tYXhUb3RhbER1cmF0aW9uKGUuX0FOSU1BVElPTl9NQVhfRFVSQVRJT04pO3JldHVybiBuLmFuaW1hdG9yKGlNdC5BbmltYXRvci5NQUlOLGkpLG4uYW5pbWF0b3IoaU10LkFuaW1hdG9yLlJFU0VULG5ldyBlTXQuTnVsbCksbi5fZGVmZXJyZWRSZXNldEVudGl0eVN0b3JlPW5NdC5XaW5kb3cuZGVib3VuY2UodU10LkRlZmVycmVkUmVuZGVyZXIuREVGRVJSRURfUkVOREVSSU5HX0RFTEFZLG4uX3Jlc2V0RW50aXR5U3RvcmUpLG59cmV0dXJuIFFTdC5fX2V4dGVuZHMoZSx0KSxlLmdldFRvdGFsRHJhd1RpbWU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5yZWR1Y2UoKGZ1bmN0aW9uKGUsbil7cmV0dXJuIGUrbi5hbmltYXRvci50b3RhbFRpbWUodC5sZW5ndGgpfSksMCl9LGUuYXBwbHlEcmF3U3RlcHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBuPXQuYXR0clRvUHJvamVjdG9yLGk9e307cmV0dXJuIE9iamVjdC5rZXlzKG4pLmZvckVhY2goKGZ1bmN0aW9uKHQpe2lbdF09ZnVuY3Rpb24oaSxyKXtyZXR1cm4gblt0XShpLHIsZSl9fSkpLHthdHRyVG9BcHBsaWVkUHJvamVjdG9yOmksYW5pbWF0b3I6dC5hbmltYXRvcn19KSl9LGUucHJvdG90eXBlLmFuY2hvcj1mdW5jdGlvbihlKXtyZXR1cm4gZT1jTXQuY29lcmNlRXh0ZXJuYWxEMyhlKSx0LnByb3RvdHlwZS5hbmNob3IuY2FsbCh0aGlzLGUpLHRoaXMuX2RhdGFDaGFuZ2VkPSEwLHRoaXMuX3Jlc2V0RW50aXR5U3RvcmUoKSx0aGlzLl91cGRhdGVFeHRlbnRzKCksdGhpc30sZS5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9pc1NldHVwfHwodC5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyksbnVsbCE9dGhpcy5fY2FudmFzJiZ0aGlzLl9hcHBlbmRDYW52YXNOb2RlKCksdGhpcy5fcmVuZGVyQXJlYT10aGlzLmNvbnRlbnQoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJyZW5kZXItYXJlYSIsITApLHRoaXMuZGF0YXNldHMoKS5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fY3JlYXRlTm9kZXNGb3JEYXRhc2V0KHQpfSkpKX0sZS5wcm90b3R5cGUuX2FwcGVuZENhbnZhc05vZGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVsZW1lbnQoKS5zZWxlY3QoIi5wbG90LWNhbnZhcy1jb250YWluZXIiKTt0LmVtcHR5KCkmJih0PXRoaXMuZWxlbWVudCgpLmFwcGVuZCgiZGl2IikuY2xhc3NlZCgicGxvdC1jYW52YXMtY29udGFpbmVyIiwhMCkpLm5vZGUoKS5hcHBlbmRDaGlsZCh0aGlzLl9jYW52YXMubm9kZSgpKX0sZS5wcm90b3R5cGUuc2V0Qm91bmRzPWZ1bmN0aW9uKGUsbixpLHIpe2lmKHQucHJvdG90eXBlLnNldEJvdW5kcy5jYWxsKHRoaXMsZSxuLGksciksdGhpcy5fdXBkYXRlRXh0ZW50cygpLG51bGwhPXRoaXMuX2NhbnZhcyl7aWYodGhpcy5fYnVmZmVyQ2FudmFzJiYhdGhpcy5fYnVmZmVyQ2FudmFzVmFsaWQpe3RoaXMuX2J1ZmZlckNhbnZhcy5hdHRyKCJ3aWR0aCIsdGhpcy5fY2FudmFzLmF0dHIoIndpZHRoIikpLHRoaXMuX2J1ZmZlckNhbnZhcy5hdHRyKCJoZWlnaHQiLHRoaXMuX2NhbnZhcy5hdHRyKCJoZWlnaHQiKSk7dmFyIG89dGhpcy5fYnVmZmVyQ2FudmFzLm5vZGUoKS5nZXRDb250ZXh0KCIyZCIpO2lmKG8pe3ZhciBhPXRoaXMuX2NhbnZhcy5ub2RlKCk7YS53aWR0aD4wJiZhLmhlaWdodD4wP28uY2FudmFzLndpZHRoPjAmJm8uY2FudmFzLmhlaWdodD4wJiZvLmRyYXdJbWFnZShhLDAsMCk6Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gZmlsbCBidWZmZXIgY2FudmFzIHdpdGggd2l0aCAweDAgY2FudmFzIil9dGhpcy5fYnVmZmVyQ2FudmFzVmFsaWQ9ITB9dmFyIHM9bnVsbCE9d2luZG93LmRldmljZVBpeGVsUmF0aW8/d2luZG93LmRldmljZVBpeGVsUmF0aW86MTt0aGlzLl9jYW52YXMuYXR0cigid2lkdGgiLGUqcyksdGhpcy5fY2FudmFzLmF0dHIoImhlaWdodCIsbipzKTt2YXIgbD10aGlzLl9jYW52YXMubm9kZSgpLmdldENvbnRleHQoIjJkIik7aWYobCYmKGwuc2V0VHJhbnNmb3JtKHMsMCwwLHMsMCwwKSx0aGlzLl9idWZmZXJDYW52YXMpKXt2YXIgYz10aGlzLl9idWZmZXJDYW52YXMubm9kZSgpO2Mud2lkdGg+MCYmYy5oZWlnaHQ+MD9sLmNhbnZhcy53aWR0aD4wJiZsLmNhbnZhcy5oZWlnaHQ+MCYmbC5kcmF3SW1hZ2UoYywwLDAsZSxuKTpjb25zb2xlLndhcm4oIkZhaWxlZCB0byBmaWxsIGNhbnZhcyB3aXRoIDB4MCBidWZmZXIgY2FudmFzIil9fXJldHVybiB0aGlzfSxlLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0LnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyksdGhpcy5fc2NhbGVzKCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQub2ZmVXBkYXRlKGUuX3JlbmRlckNhbGxiYWNrKX0pKSx0aGlzLmRhdGFzZXRzKFtdKX0sZS5wcm90b3R5cGUuX2NyZWF0ZU5vZGVzRm9yRGF0YXNldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9kYXRhc2V0VG9EcmF3ZXIuZ2V0KHQpO3JldHVybiJzdmciPT09dGhpcy5yZW5kZXJlcigpP2UudXNlU1ZHKHRoaXMuX3JlbmRlckFyZWEpOmUudXNlQ2FudmFzKHRoaXMuX2NhbnZhcyksZX0sZS5wcm90b3R5cGUuX2NyZWF0ZURyYXdlcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHNNdC5Qcm94eURyYXdlcigoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGxNdC5TVkdEcmF3ZXIoInBhdGgiLCIiKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGFNdC5DYW52YXNEcmF3ZXIodCwoZnVuY3Rpb24oKXt9KSl9KSl9LGUucHJvdG90eXBlLl9nZXRBbmltYXRvcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYW5pbWF0ZU9uTmV4dFJlbmRlcigpJiZ0aGlzLl9hbmltYXRvcnNbdF18fG5ldyBlTXQuTnVsbH0sZS5wcm90b3R5cGUuX29uRGF0YXNldFVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuX3VwZGF0ZUV4dGVudHMoKSx0aGlzLl9kYXRhQ2hhbmdlZD0hMCx0aGlzLl9yZXNldEVudGl0eVN0b3JlKCksdGhpcy5yZW5kZXJMb3dQcmlvcml0eSgpfSxlLnByb3RvdHlwZS5hdHRyPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbnVsbD09ZT90aGlzLl9hdHRyQmluZGluZ3MuZ2V0KHQpOih0aGlzLl9iaW5kQXR0cih0LGUsbiksdGhpcy5yZW5kZXIoKSx0aGlzKX0sZS5wcm90b3R5cGUuX2JpbmRQcm9wZXJ0eT1mdW5jdGlvbih0LGUsbixpKXt2YXIgcj10aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmdldCh0KSxvPW51bGwhPXI/ci5zY2FsZTpudWxsO3RoaXMuX3Byb3BlcnR5QmluZGluZ3Muc2V0KHQse2FjY2Vzc29yOiJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6ZnVuY3Rpb24oKXtyZXR1cm4gZX0sc2NhbGU6bixwb3N0U2NhbGU6aX0pLG51bGwhPW8mJnRoaXMuX3VuaW5zdGFsbFNjYWxlRm9yS2V5KG8sdCksbnVsbCE9biYmdGhpcy5faW5zdGFsbFNjYWxlRm9yS2V5KG4sdCksdGhpcy5fY2xlYXJBdHRyVG9Qcm9qZWN0b3JDYWNoZSgpfSxlLnByb3RvdHlwZS5fYmluZEF0dHI9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMuX2F0dHJCaW5kaW5ncy5nZXQodCkscj1udWxsIT1pP2kuc2NhbGU6bnVsbDt0aGlzLl9hdHRyQmluZGluZ3Muc2V0KHQse2FjY2Vzc29yOiJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6ZnVuY3Rpb24oKXtyZXR1cm4gZX0sc2NhbGU6bn0pLG51bGwhPXImJnRoaXMuX3VuaW5zdGFsbFNjYWxlRm9yS2V5KHIsdCksbnVsbCE9biYmdGhpcy5faW5zdGFsbFNjYWxlRm9yS2V5KG4sdCksdGhpcy5fY2xlYXJBdHRyVG9Qcm9qZWN0b3JDYWNoZSgpfSxlLnByb3RvdHlwZS5fY2xlYXJBdHRyVG9Qcm9qZWN0b3JDYWNoZT1mdW5jdGlvbigpe2RlbGV0ZSB0aGlzLl9jYWNoZWRBdHRyVG9Qcm9qZWN0b3J9LGUucHJvdG90eXBlLl9nZXRBdHRyVG9Qcm9qZWN0b3I9ZnVuY3Rpb24oKXtpZihudWxsPT10aGlzLl9jYWNoZWRBdHRyVG9Qcm9qZWN0b3Ipe3ZhciB0PXRoaXMuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yKCk7ZS5PUFRJTUlaRV9NRU1PSVpFX1BST0pFQ1RPUlMmJih0PXJNdC5tZW1vaXplUHJvamVjdG9ycyh0KSksdGhpcy5fY2FjaGVkQXR0clRvUHJvamVjdG9yPXR9cmV0dXJuIG5NdC5hc3NpZ24oe30sdGhpcy5fY2FjaGVkQXR0clRvUHJvamVjdG9yKX0sZS5wcm90b3R5cGUuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yPWZ1bmN0aW9uKCl7dmFyIHQ9e307dGhpcy5fYXR0ckJpbmRpbmdzLmVhY2goKGZ1bmN0aW9uKG4saSl7dFtpXT1lLl9zY2FsZWRBY2Nlc3NvcihuKX0pKTt2YXIgbj10aGlzLl9wcm9wZXJ0eVByb2plY3RvcnMoKTtyZXR1cm4gT2JqZWN0LmtleXMobikuZm9yRWFjaCgoZnVuY3Rpb24oZSl7bnVsbD09dFtlXSYmKHRbZV09bltlXSl9KSksdH0sZS5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHk9ZnVuY3Rpb24oKXtyZXR1cm4gdC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHkuY2FsbCh0aGlzKSx0aGlzLl9pc0FuY2hvcmVkJiYodGhpcy5fcGFpbnQoKSx0aGlzLl9kYXRhQ2hhbmdlZD0hMSksdGhpc30sZS5wcm90b3R5cGUucmVuZGVyTG93UHJpb3JpdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVuZGVyQ2FsbGJhY2soKSx0aGlzfSxlLnByb3RvdHlwZS5hbmltYXRlZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9hbmltYXRlOih0aGlzLl9hbmltYXRlPXQsdGhpcyl9LGUucHJvdG90eXBlLmRldGFjaD1mdW5jdGlvbigpe3JldHVybiB0LnByb3RvdHlwZS5kZXRhY2guY2FsbCh0aGlzKSx0aGlzLl91cGRhdGVFeHRlbnRzKCksdGhpc30sZS5wcm90b3R5cGUuX3NjYWxlcz1mdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLl9hdHRyQmluZGluZ3MuZWFjaCgoZnVuY3Rpb24oZSxuKXt2YXIgaT1lLnNjYWxlO251bGwhPWkmJi0xPT09dC5pbmRleE9mKGkpJiZ0LnB1c2goaSl9KSksdGhpcy5fcHJvcGVydHlCaW5kaW5ncy5lYWNoKChmdW5jdGlvbihlLG4pe3ZhciBpPWUuc2NhbGU7bnVsbCE9aSYmLTE9PT10LmluZGV4T2YoaSkmJnQucHVzaChpKX0pKSx0fSxlLnByb3RvdHlwZS5fdXBkYXRlRXh0ZW50cz1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fcmVzZXRFbnRpdHlTdG9yZSgpLHRoaXMuX3NjYWxlcygpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlLmFkZEluY2x1ZGVkVmFsdWVzUHJvdmlkZXIodC5faW5jbHVkZWRWYWx1ZXNQcm92aWRlcil9KSl9LGUucHJvdG90eXBlLl9maWx0ZXJGb3JQcm9wZXJ0eT1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbH0sZS5wcm90b3R5cGUuZ2V0RXh0ZW50c0ZvckF0dHI9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZihudWxsPT10aGlzLl9hdHRyRXh0ZW50c1t0XSl7dmFyIG49ck10Lm1lbVRodW5rKChmdW5jdGlvbigpe3JldHVybiBlLmRhdGFzZXRzKCl9KSwoZnVuY3Rpb24oKXtyZXR1cm4gZS5fYXR0ckJpbmRpbmdzLmdldCh0KX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBudWxsPT1lfHxudWxsPT1lLmFjY2Vzc29yP251bGw6dC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBkTXQodCxlLG51bGwpfSkpfSkpO3RoaXMuX2F0dHJFeHRlbnRzW3RdPW59cmV0dXJuIHRoaXMuX2F0dHJFeHRlbnRzW3RdKCl9LGUucHJvdG90eXBlLmdldEV4dGVudHNGb3JQcm9wZXJ0eT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKG51bGw9PXRoaXMuX3Byb3BlcnR5RXh0ZW50c1t0XSl7dmFyIG49ck10Lm1lbVRodW5rKChmdW5jdGlvbigpe3JldHVybiBlLmRhdGFzZXRzKCl9KSwoZnVuY3Rpb24oKXtyZXR1cm4gZS5fcHJvcGVydHlCaW5kaW5ncy5nZXQodCl9KSwoZnVuY3Rpb24oKXtyZXR1cm4gZS5fZmlsdGVyRm9yUHJvcGVydHkodCl9KSwoZnVuY3Rpb24odCxlLG4pe3JldHVybiBudWxsPT1lfHxudWxsPT1lLmFjY2Vzc29yP251bGw6dC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBkTXQodCxlLG4pfSkpfSkpO3RoaXMuX3Byb3BlcnR5RXh0ZW50c1t0XT1ufXJldHVybiB0aGlzLl9wcm9wZXJ0eUV4dGVudHNbdF0oKX0sZS5wcm90b3R5cGUuX2luY2x1ZGVkVmFsdWVzRm9yU2NhbGU9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO2lmKCF0aGlzLl9pc0FuY2hvcmVkJiYhZSlyZXR1cm5bXTt2YXIgaT1bXTtyZXR1cm4gdGhpcy5fYXR0ckJpbmRpbmdzLmVhY2goKGZ1bmN0aW9uKGUscil7aWYoZS5zY2FsZT09PXQpe3ZhciBvPW4uZ2V0RXh0ZW50c0ZvckF0dHIocik7bnVsbCE9byYmKGk9aS5jb25jYXQodE10Lm1lcmdlKG8pKSl9fSkpLHRoaXMuX3Byb3BlcnR5QmluZGluZ3MuZWFjaCgoZnVuY3Rpb24oZSxyKXtpZihlLnNjYWxlPT09dCl7dmFyIG89bi5nZXRFeHRlbnRzRm9yUHJvcGVydHkocik7bnVsbCE9byYmKGk9aS5jb25jYXQodE10Lm1lcmdlKG8pKSl9fSkpLGl9LGUucHJvdG90eXBlLmFuaW1hdG9yPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWU/dGhpcy5fYW5pbWF0b3JzW3RdOih0aGlzLl9hbmltYXRvcnNbdF09ZSx0aGlzKX0sZS5wcm90b3R5cGUucmVuZGVyZXI9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdm9pZCAwPT09dD9udWxsPT10aGlzLl9jYW52YXM/InN2ZyI6ImNhbnZhcyI6KG51bGw9PXRoaXMuX2NhbnZhcyYmImNhbnZhcyI9PT10Pyh0aGlzLl9jYW52YXM9dE10LnNlbGVjdChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSkuY2xhc3NlZCgicGxvdC1jYW52YXMiLCEwKSx0aGlzLl9idWZmZXJDYW52YXM9dE10LnNlbGVjdChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSksbnVsbCE9dGhpcy5lbGVtZW50KCkmJnRoaXMuX2FwcGVuZENhbnZhc05vZGUoKSx0aGlzLl9kYXRhc2V0VG9EcmF3ZXIuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC51c2VDYW52YXMoZS5fY2FudmFzKX0pKSx0aGlzLnJlbmRlcigpKTpudWxsIT10aGlzLl9jYW52YXMmJiJzdmciPT10JiYodGhpcy5fY2FudmFzLnJlbW92ZSgpLHRoaXMuX2NhbnZhcz1udWxsLHRoaXMuX2J1ZmZlckNhbnZhcz1udWxsLHRoaXMuX2RhdGFzZXRUb0RyYXdlci5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnVzZVNWRyhlLl9yZW5kZXJBcmVhKX0pKSx0aGlzLnJlbmRlcigpKSx0aGlzKX0sZS5wcm90b3R5cGUuYWRkRGF0YXNldD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYWRkRGF0YXNldCh0KSx0aGlzLl9vbkRhdGFzZXRVcGRhdGUoKSx0aGlzfSxlLnByb3RvdHlwZS5fYWRkRGF0YXNldD1mdW5jdGlvbih0KXt0aGlzLl9yZW1vdmVEYXRhc2V0KHQpO3ZhciBlPXRoaXMuX2NyZWF0ZURyYXdlcih0KTtyZXR1cm4gdGhpcy5fZGF0YXNldFRvRHJhd2VyLnNldCh0LGUpLHRoaXMuX2lzU2V0dXAmJnRoaXMuX2NyZWF0ZU5vZGVzRm9yRGF0YXNldCh0KSx0Lm9uVXBkYXRlKHRoaXMuX29uRGF0YXNldFVwZGF0ZUNhbGxiYWNrKSx0aGlzfSxlLnByb3RvdHlwZS5yZW1vdmVEYXRhc2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9yZW1vdmVEYXRhc2V0KHQpLHRoaXMuX29uRGF0YXNldFVwZGF0ZSgpLHRoaXN9LGUucHJvdG90eXBlLl9yZW1vdmVEYXRhc2V0PWZ1bmN0aW9uKHQpe3JldHVybi0xPT09dGhpcy5kYXRhc2V0cygpLmluZGV4T2YodCl8fCh0aGlzLl9yZW1vdmVEYXRhc2V0Tm9kZXModCksdC5vZmZVcGRhdGUodGhpcy5fb25EYXRhc2V0VXBkYXRlQ2FsbGJhY2spLHRoaXMuX2RhdGFzZXRUb0RyYXdlci5kZWxldGUodCkpLHRoaXN9LGUucHJvdG90eXBlLl9yZW1vdmVEYXRhc2V0Tm9kZXM9ZnVuY3Rpb24odCl7dGhpcy5fZGF0YXNldFRvRHJhd2VyLmdldCh0KS5yZW1vdmUoKX0sZS5wcm90b3R5cGUuZGF0YXNldHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPVtdO3JldHVybiB0aGlzLl9kYXRhc2V0VG9EcmF3ZXIuZm9yRWFjaCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5wdXNoKGUpfSkpLG51bGw9PXQ/bjoobi5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fcmVtb3ZlRGF0YXNldCh0KX0pKSx0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9hZGREYXRhc2V0KHQpfSkpLHRoaXMuX29uRGF0YXNldFVwZGF0ZSgpLHRoaXMpfSxlLnByb3RvdHlwZS5fZ2VuZXJhdGVEcmF3U3RlcHM9ZnVuY3Rpb24oKXtyZXR1cm5be2F0dHJUb1Byb2plY3Rvcjp0aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxhbmltYXRvcjpuZXcgZU10Lk51bGx9XX0sZS5wcm90b3R5cGUuX2FkZGl0aW9uYWxQYWludD1mdW5jdGlvbih0KXt9LGUucHJvdG90eXBlLl9idWlsZExpZ2h0d2VpZ2h0UGxvdEVudGl0aWVzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1bXTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0LGkpe2Zvcih2YXIgcj1lLl9kYXRhc2V0VG9EcmF3ZXIuZ2V0KHQpLG89MCxhPXQuZGF0YSgpLHM9YS5sZW5ndGgsbD1mdW5jdGlvbihzKXt2YXIgbD1hW3NdLGM9ZS5fcGl4ZWxQb2ludChsLHMsdCk7aWYobk10Lk1hdGguaXNOYU4oYy54KXx8bk10Lk1hdGguaXNOYU4oYy55KSlyZXR1cm4iY29udGludWUiO3ZhciB1PWU7bi5wdXNoKHtkYXR1bTpsLGdldCBwb3NpdGlvbigpe3JldHVybiB1Ll9waXhlbFBvaW50LmNhbGwodSxsLHMsdCl9LGluZGV4OnMsZGF0YXNldDp0LGRhdGFzZXRJbmRleDppLGNvbXBvbmVudDplLGRyYXdlcjpyLHZhbGlkRGF0dW1JbmRleDpvfSksbysrfSxjPTA7YzxzO2MrKylsKGMpfSkpLG59LGUucHJvdG90eXBlLl9nZXREYXRhVG9EcmF3PWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IG5NdC5NYXA7cmV0dXJuIHRoaXMuZGF0YXNldHMoKS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gdC5zZXQoZSxlLmRhdGEoKSl9KSksdH0sZS5wcm90b3R5cGUuX3BhaW50PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztkZWxldGUgdGhpcy5fY2FjaGVkQXR0clRvUHJvamVjdG9yO3ZhciBuPXRoaXMuX2dlbmVyYXRlRHJhd1N0ZXBzKCksaT10aGlzLl9nZXREYXRhVG9EcmF3KCkscj10aGlzLmRhdGFzZXRzKCkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdC5fZGF0YXNldFRvRHJhd2VyLmdldChlKX0pKTtpZigiY2FudmFzIj09PXRoaXMucmVuZGVyZXIoKSl7dmFyIG89dGhpcy5fY2FudmFzLm5vZGUoKTtvLmdldENvbnRleHQoIjJkIikuY2xlYXJSZWN0KDAsMCxvLmNsaWVudFdpZHRoLG8uY2xpZW50SGVpZ2h0KSx0aGlzLl9idWZmZXJDYW52YXNWYWxpZD0hMX10aGlzLmRhdGFzZXRzKCkuZm9yRWFjaCgoZnVuY3Rpb24odCxvKXt2YXIgYT1lLmFwcGx5RHJhd1N0ZXBzKG4sdCk7cltvXS5kcmF3KGkuZ2V0KHQpLGEpfSkpO3ZhciBhPXRoaXMuZGF0YXNldHMoKS5tYXAoKGZ1bmN0aW9uKHQscil7cmV0dXJuIGUuZ2V0VG90YWxEcmF3VGltZShpLmdldCh0KSxuKX0pKSxzPW5NdC5NYXRoLm1heChhLDApO3RoaXMuX2FkZGl0aW9uYWxQYWludChzKX0sZS5wcm90b3R5cGUuc2VsZWN0aW9ucz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKHZvaWQgMD09PXQmJih0PXRoaXMuZGF0YXNldHMoKSksImNhbnZhcyI9PT10aGlzLnJlbmRlcmVyKCkpcmV0dXJuIHRNdC5zZWxlY3RBbGwoKTt2YXIgbj1bXTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgaT1lLl9kYXRhc2V0VG9EcmF3ZXIuZ2V0KHQpO2lmKG51bGwhPWkpe3ZhciByPWkuZ2V0VmlzdWFsUHJpbWl0aXZlcygpO24ucHVzaC5hcHBseShuLHIpfX0pKSx0TXQuc2VsZWN0QWxsKG4pfSxlLnByb3RvdHlwZS5lbnRpdGllcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0aGlzLl9nZXRFbnRpdHlTdG9yZSh0KS5lbnRpdGllcygpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX2xpZ2h0d2VpZ2h0UGxvdEVudGl0eVRvUGxvdEVudGl0eSh0KX0pKX0sZS5wcm90b3R5cGUuZmlsdGVyRW50aXRpZXM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5fZ2V0RW50aXR5U3RvcmUoKS5lbnRpdGllcygpLmZpbHRlcih0KS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9saWdodHdlaWdodFBsb3RFbnRpdHlUb1Bsb3RFbnRpdHkodCl9KSl9LGUucHJvdG90eXBlLl9nZXRFbnRpdHlTdG9yZT1mdW5jdGlvbih0KXt2YXIgZSxuPXRoaXMsaT1mdW5jdGlvbih0KXtyZXR1cm4gbi5fZW50aXR5Qm91bmRzKHQpfTtyZXR1cm4gdm9pZCAwIT09dD8oKGU9bmV3IG5NdC5FbnRpdHlTdG9yZSkuYWRkQWxsKHRoaXMuX2J1aWxkTGlnaHR3ZWlnaHRQbG90RW50aXRpZXModCksaSx0aGlzLl9sb2NhbE9yaWdpbkJvdW5kcygpKSxlKToodm9pZCAwPT09dGhpcy5fY2FjaGVkRW50aXR5U3RvcmUmJigoZT1uZXcgbk10LkVudGl0eVN0b3JlKS5hZGRBbGwodGhpcy5fYnVpbGRMaWdodHdlaWdodFBsb3RFbnRpdGllcyh0aGlzLmRhdGFzZXRzKCkpLGksdGhpcy5fbG9jYWxPcmlnaW5Cb3VuZHMoKSksdGhpcy5fY2FjaGVkRW50aXR5U3RvcmU9ZSksdGhpcy5fY2FjaGVkRW50aXR5U3RvcmUpfSxlLnByb3RvdHlwZS5fbG9jYWxPcmlnaW5Cb3VuZHM9ZnVuY3Rpb24oKXtyZXR1cm57dG9wTGVmdDp7eDowLHk6MH0sYm90dG9tUmlnaHQ6e3g6dGhpcy53aWR0aCgpLHk6dGhpcy5oZWlnaHQoKX19fSxlLnByb3RvdHlwZS5fZW50aXR5Qm91bmRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3BpeGVsUG9pbnQodC5kYXR1bSx0LmluZGV4LHQuZGF0YXNldCk7cmV0dXJue3g6ZS54LHk6ZS55LHdpZHRoOjAsaGVpZ2h0OjB9fSxlLnByb3RvdHlwZS5fbGlnaHR3ZWlnaHRQbG90RW50aXR5VG9QbG90RW50aXR5PWZ1bmN0aW9uKHQpe3JldHVybntib3VuZHM6dGhpcy5fZW50aXR5Qm91bmRzKHQpLGNvbXBvbmVudDp0LmNvbXBvbmVudCxkYXRhc2V0OnQuZGF0YXNldCxkYXRhc2V0SW5kZXg6dC5kYXRhc2V0SW5kZXgsZGF0dW06dC5kYXR1bSxpbmRleDp0LmluZGV4LHBvc2l0aW9uOnQucG9zaXRpb24sc2VsZWN0aW9uOnRNdC5zZWxlY3QodC5kcmF3ZXIuZ2V0VmlzdWFsUHJpbWl0aXZlQXRJbmRleCh0LnZhbGlkRGF0dW1JbmRleCkpfX0sZS5wcm90b3R5cGUuZW50aXRpZXNBdD1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoInBsb3RzIG11c3QgaW1wbGVtZW50IGVudGl0aWVzQXQiKX0sZS5wcm90b3R5cGUuZW50aXR5TmVhcmVzdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9nZXRFbnRpdHlTdG9yZSgpLmVudGl0eU5lYXJlc3QodCk7cmV0dXJuIHZvaWQgMD09PWU/dm9pZCAwOnRoaXMuX2xpZ2h0d2VpZ2h0UGxvdEVudGl0eVRvUGxvdEVudGl0eShlKX0sZS5wcm90b3R5cGUuZW50aXRpZXNJbj1mdW5jdGlvbih0LGUpe3ZhciBuO2lmKG51bGw9PWUpe249e3g6dC50b3BMZWZ0LngseTp0LnRvcExlZnQueSx3aWR0aDp0LmJvdHRvbVJpZ2h0LngtdC50b3BMZWZ0LngsaGVpZ2h0OnQuYm90dG9tUmlnaHQueS10LnRvcExlZnQueX19ZWxzZXtuPXt4OnQubWluLHk6ZS5taW4sd2lkdGg6dC5tYXgtdC5taW4saGVpZ2h0OmUubWF4LWUubWlufX1yZXR1cm4gdGhpcy5lbnRpdGllc0luQm91bmRzKG4pfSxlLnByb3RvdHlwZS5lbnRpdGllc0luQm91bmRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLl9nZXRFbnRpdHlTdG9yZSgpLmVudGl0aWVzSW5Cb3VuZHModCk7aWYobilyZXR1cm4gbi5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9saWdodHdlaWdodFBsb3RFbnRpdHlUb1Bsb3RFbnRpdHkodCl9KSl9LGUucHJvdG90eXBlLmVudGl0aWVzSW5YQm91bmRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLl9nZXRFbnRpdHlTdG9yZSgpLmVudGl0aWVzSW5YQm91bmRzKHQpO2lmKG4pcmV0dXJuIG4ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fbGlnaHR3ZWlnaHRQbG90RW50aXR5VG9QbG90RW50aXR5KHQpfSkpfSxlLnByb3RvdHlwZS5lbnRpdGllc0luWUJvdW5kcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49dGhpcy5fZ2V0RW50aXR5U3RvcmUoKS5lbnRpdGllc0luWUJvdW5kcyh0KTtpZihuKXJldHVybiBuLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX2xpZ2h0d2VpZ2h0UGxvdEVudGl0eVRvUGxvdEVudGl0eSh0KX0pKX0sZS5wcm90b3R5cGUuX3VuaW5zdGFsbFNjYWxlRm9yS2V5PWZ1bmN0aW9uKHQsZSl7dC5vZmZVcGRhdGUodGhpcy5fcmVuZGVyQ2FsbGJhY2spLHQub2ZmVXBkYXRlKHRoaXMuX2RlZmVycmVkUmVzZXRFbnRpdHlTdG9yZSksdC5yZW1vdmVJbmNsdWRlZFZhbHVlc1Byb3ZpZGVyKHRoaXMuX2luY2x1ZGVkVmFsdWVzUHJvdmlkZXIpfSxlLnByb3RvdHlwZS5faW5zdGFsbFNjYWxlRm9yS2V5PWZ1bmN0aW9uKHQsZSl7dC5vblVwZGF0ZSh0aGlzLl9yZW5kZXJDYWxsYmFjayksdC5vblVwZGF0ZSh0aGlzLl9kZWZlcnJlZFJlc2V0RW50aXR5U3RvcmUpLHQuYWRkSW5jbHVkZWRWYWx1ZXNQcm92aWRlcih0aGlzLl9pbmNsdWRlZFZhbHVlc1Byb3ZpZGVyKX0sZS5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycz1mdW5jdGlvbigpe3JldHVybnt9fSxlLl9zY2FsZWRBY2Nlc3Nvcj1mdW5jdGlvbih0KXt2YXIgZT10LnNjYWxlLG49dC5hY2Nlc3NvcixpPXQucG9zdFNjYWxlLHI9bnVsbD09ZT9uOmZ1bmN0aW9uKHQsaSxyKXtyZXR1cm4gZS5zY2FsZShuKHQsaSxyKSl9O3JldHVybiBudWxsPT1pP3I6ZnVuY3Rpb24odCxlLG4pe3JldHVybiBpKHIodCxlLG4pLHQsZSxuKX19LGUucHJvdG90eXBlLl9waXhlbFBvaW50PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm57eDowLHk6MH19LGUucHJvdG90eXBlLl9hbmltYXRlT25OZXh0UmVuZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FuaW1hdGUmJnRoaXMuX2RhdGFDaGFuZ2VkfSxlLk9QVElNSVpFX01FTU9JWkVfUFJPSkVDVE9SUz0hMSxlLl9BTklNQVRJT05fTUFYX0RVUkFUSU9OPTYwMCxlfSkob010LkNvbXBvbmVudCk7ZnVuY3Rpb24gZE10KHQsZSxuKXt2YXIgaT1lLmFjY2Vzc29yLHI9ZS5zY2FsZTtpZihudWxsPT1yKXJldHVybltdO3ZhciBvPXQuZGF0YSgpO251bGwhPW4mJihvPW8uZmlsdGVyKChmdW5jdGlvbihlLGkpe3JldHVybiBuKGUsaSx0KX0pKSk7dmFyIGE9by5tYXAoKGZ1bmN0aW9uKGUsbil7cmV0dXJuIGkoZSxuLHQpfSkpO3JldHVybiByLmV4dGVudE9mVmFsdWVzKGEpfQovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL3NTdC5QbG90PWhNdCxPYmplY3QuZGVmaW5lUHJvcGVydHkoYVN0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcE10PUJPLGZNdD1zU3QsbU10PURfdCxnTXQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiBwTXQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuZW50aXR5TmVhcmVzdD1mdW5jdGlvbih0KXt2YXIgZSxuPTEvMDtyZXR1cm4gdGhpcy5jb21wb25lbnRzKCkuZm9yRWFjaCgoZnVuY3Rpb24oaSl7dmFyIHI9aS5lbnRpdHlOZWFyZXN0KHQpO2lmKG51bGwhPXIpe3ZhciBvPW1NdC5NYXRoLmRpc3RhbmNlU3F1YXJlZChyLnBvc2l0aW9uLHQpO288PW4mJihuPW8sZT1yKX19KSksZX0sZS5wcm90b3R5cGUuYXBwZW5kPWZ1bmN0aW9uKGUpe2lmKG51bGwhPWUmJiEoZSBpbnN0YW5jZW9mIGZNdC5QbG90KSl0aHJvdyBuZXcgRXJyb3IoIlBsb3QgR3JvdXAgb25seSBhY2NlcHRzIHBsb3RzIik7cmV0dXJuIHQucHJvdG90eXBlLmFwcGVuZC5jYWxsKHRoaXMsZSksdGhpc30sZX0pKF93dC5Hcm91cCk7YVN0LlBsb3RHcm91cD1nTXQ7dmFyIF9NdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoX010LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgeU10PUJPLHZNdD13cHQsYk10PURfdCx4TXQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dm9pZCAwPT09ZSYmKGU9W10pO3ZhciBuPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gbi5fcm93UGFkZGluZz0wLG4uX2NvbHVtblBhZGRpbmc9MCxuLl9yb3dzPVtdLG4uX3Jvd1dlaWdodHM9W10sbi5fY29sdW1uV2VpZ2h0cz1bXSxuLl9uUm93cz0wLG4uX25Db2xzPTAsbi5fY2FsY3VsYXRlZExheW91dD1udWxsLG4uYWRkQ2xhc3MoInRhYmxlIiksZS5mb3JFYWNoKChmdW5jdGlvbih0LGUpe3QuZm9yRWFjaCgoZnVuY3Rpb24odCxpKXtudWxsIT10JiZuLmFkZCh0LGUsaSl9KSl9KSksbn1yZXR1cm4geU10Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLl9mb3JFYWNoPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8dGhpcy5fblJvd3M7ZSsrKWZvcih2YXIgbj0wO248dGhpcy5fbkNvbHM7bisrKW51bGwhPXRoaXMuX3Jvd3NbZV1bbl0mJnQodGhpcy5fcm93c1tlXVtuXSl9LGUucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHRoaXMuX25Sb3dzO2UrKylmb3IodmFyIG49MDtuPHRoaXMuX25Db2xzO24rKylpZih0aGlzLl9yb3dzW2VdW25dPT09dClyZXR1cm4hMDtyZXR1cm4hMX0sZS5wcm90b3R5cGUuY29tcG9uZW50QXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdDwwfHx0Pj10aGlzLl9uUm93c3x8ZTwwfHxlPj10aGlzLl9uQ29scz9udWxsOnRoaXMuX3Jvd3NbdF1bZV19LGUucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0LGUsbil7aWYobnVsbD09dCl0aHJvdyBFcnJvcigiQ2Fubm90IGFkZCBudWxsIHRvIGEgdGFibGUgY2VsbCIpO2lmKCF0aGlzLmhhcyh0KSl7aWYobnVsbCE9KHRoaXMuX3Jvd3NbZV0mJnRoaXMuX3Jvd3NbZV1bbl0pKXRocm93IG5ldyBFcnJvcigiY2VsbCBpcyBvY2N1cGllZCIpO3QuZGV0YWNoKCksdGhpcy5fblJvd3M9TWF0aC5tYXgoZSsxLHRoaXMuX25Sb3dzKSx0aGlzLl9uQ29scz1NYXRoLm1heChuKzEsdGhpcy5fbkNvbHMpLHRoaXMuX3BhZFRhYmxlVG9TaXplKHRoaXMuX25Sb3dzLHRoaXMuX25Db2xzKSx0aGlzLl9yb3dzW2VdW25dPXQsdGhpcy5fYWRvcHRBbmRBbmNob3IodCksdGhpcy5yZWRyYXcoKX1yZXR1cm4gdGhpc30sZS5wcm90b3R5cGUuX3JlbW92ZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHRoaXMuX25Sb3dzO2UrKylmb3IodmFyIG49MDtuPHRoaXMuX25Db2xzO24rKylpZih0aGlzLl9yb3dzW2VdW25dPT09dClyZXR1cm4gdGhpcy5fcm93c1tlXVtuXT1udWxsLCEwO3JldHVybiExfSxlLnByb3RvdHlwZS5faXRlcmF0ZUxheW91dD1mdW5jdGlvbih0LG4saSl7dm9pZCAwPT09aSYmKGk9ITEpO2Zvcih2YXIgcixvLGEscyxsLGM9dGhpcy5fcm93cyx1PXZNdC50cmFuc3Bvc2UodGhpcy5fcm93cyksaD10LXRoaXMuX2NvbHVtblBhZGRpbmcqKHRoaXMuX25Db2xzLTEpLGQ9bi10aGlzLl9yb3dQYWRkaW5nKih0aGlzLl9uUm93cy0xKSxwPWUuX2NhbGNDb21wb25lbnRXZWlnaHRzKHRoaXMuX3Jvd1dlaWdodHMsYywoZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXR8fHQuZml4ZWRIZWlnaHQoKX0pKSxmPWUuX2NhbGNDb21wb25lbnRXZWlnaHRzKHRoaXMuX2NvbHVtbldlaWdodHMsdSwoZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXR8fHQuZml4ZWRXaWR0aCgpfSkpLG09Zi5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiAwPT09dD8uNTp0fSkpLGc9cC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiAwPT09dD8uNTp0fSkpLF89ZS5fY2FsY1Byb3BvcnRpb25hbFNwYWNlKG0saCkseT1lLl9jYWxjUHJvcG9ydGlvbmFsU3BhY2UoZyxkKSx2PWJNdC5BcnJheS5jcmVhdGVGaWxsZWRBcnJheSgwLHRoaXMuX25Db2xzKSxiPWJNdC5BcnJheS5jcmVhdGVGaWxsZWRBcnJheSgwLHRoaXMuX25Sb3dzKSx4PTA7Oyl7dmFyIHc9Yk10LkFycmF5LmFkZChiLHkpLFM9Yk10LkFycmF5LmFkZCh2LF8pO3Y9KGE9dGhpcy5fZGV0ZXJtaW5lR3VhcmFudGVlcyhTLHcsaSkpLmd1YXJhbnRlZWRXaWR0aHMsYj1hLmd1YXJhbnRlZWRIZWlnaHRzLHM9YS53YW50c1dpZHRoQXJyLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkpLGw9YS53YW50c0hlaWdodEFyci5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdH0pKTt2YXIgTT1yLEU9bztyPWgtdk10LnN1bShhLmd1YXJhbnRlZWRXaWR0aHMpLG89ZC12TXQuc3VtKGEuZ3VhcmFudGVlZEhlaWdodHMpO3ZhciBUPXZvaWQgMDtzPyhUPWEud2FudHNXaWR0aEFyci5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Py4xOjB9KSksVD1iTXQuQXJyYXkuYWRkKFQsZikpOlQ9Zjt2YXIgQz12b2lkIDA7aWYobD8oQz1hLndhbnRzSGVpZ2h0QXJyLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQ/LjE6MH0pKSxDPWJNdC5BcnJheS5hZGQoQyxwKSk6Qz1wLF89ZS5fY2FsY1Byb3BvcnRpb25hbFNwYWNlKFQscikseT1lLl9jYWxjUHJvcG9ydGlvbmFsU3BhY2UoQyxvKSx4KyssIShyPjAmJnIhPT1NKSYmIShvPjAmJm8hPT1FKSlicmVhaztpZih4PjUpYnJlYWt9cmV0dXJuIHI9aC12TXQuc3VtKGEuZ3VhcmFudGVlZFdpZHRocyksbz1kLXZNdC5zdW0oYS5ndWFyYW50ZWVkSGVpZ2h0cykse2NvbFByb3BvcnRpb25hbFNwYWNlOl89ZS5fY2FsY1Byb3BvcnRpb25hbFNwYWNlKGYscikscm93UHJvcG9ydGlvbmFsU3BhY2U6eT1lLl9jYWxjUHJvcG9ydGlvbmFsU3BhY2UocCxvKSxndWFyYW50ZWVkV2lkdGhzOmEuZ3VhcmFudGVlZFdpZHRocyxndWFyYW50ZWVkSGVpZ2h0czphLmd1YXJhbnRlZWRIZWlnaHRzLHdhbnRzV2lkdGg6cyx3YW50c0hlaWdodDpsfX0sZS5wcm90b3R5cGUuX2RldGVybWluZUd1YXJhbnRlZXM9ZnVuY3Rpb24odCxlLG4pe3ZvaWQgMD09PW4mJihuPSExKTt2YXIgaT1iTXQuQXJyYXkuY3JlYXRlRmlsbGVkQXJyYXkoMCx0aGlzLl9uQ29scykscj1iTXQuQXJyYXkuY3JlYXRlRmlsbGVkQXJyYXkoMCx0aGlzLl9uUm93cyksbz1iTXQuQXJyYXkuY3JlYXRlRmlsbGVkQXJyYXkoITEsdGhpcy5fbkNvbHMpLGE9Yk10LkFycmF5LmNyZWF0ZUZpbGxlZEFycmF5KCExLHRoaXMuX25Sb3dzKTtyZXR1cm4gdGhpcy5fcm93cy5mb3JFYWNoKChmdW5jdGlvbihzLGwpe3MuZm9yRWFjaCgoZnVuY3Rpb24ocyxjKXt2YXIgdTt1PW51bGwhPXM/cy5yZXF1ZXN0ZWRTcGFjZSh0W2NdLGVbbF0pOnttaW5XaWR0aDowLG1pbkhlaWdodDowfTt2YXIgaD1uP01hdGgubWluKHUubWluV2lkdGgsdFtjXSk6dS5taW5XaWR0aDtpW2NdPU1hdGgubWF4KGlbY10saCk7dmFyIGQ9bj9NYXRoLm1pbih1Lm1pbkhlaWdodCxlW2xdKTp1Lm1pbkhlaWdodDtyW2xdPU1hdGgubWF4KHJbbF0sZCksb1tjXT1vW2NdfHx1Lm1pbldpZHRoPnRbY10sYVtsXT1hW2xdfHx1Lm1pbkhlaWdodD5lW2xdfSkpfSkpLHtndWFyYW50ZWVkV2lkdGhzOmksZ3VhcmFudGVlZEhlaWdodHM6cix3YW50c1dpZHRoQXJyOm8sd2FudHNIZWlnaHRBcnI6YX19LGUucHJvdG90eXBlLnJlcXVlc3RlZFNwYWNlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX2NhbGN1bGF0ZWRMYXlvdXQ9dGhpcy5faXRlcmF0ZUxheW91dCh0LGUpLHttaW5XaWR0aDp2TXQuc3VtKHRoaXMuX2NhbGN1bGF0ZWRMYXlvdXQuZ3VhcmFudGVlZFdpZHRocyksbWluSGVpZ2h0OnZNdC5zdW0odGhpcy5fY2FsY3VsYXRlZExheW91dC5ndWFyYW50ZWVkSGVpZ2h0cyl9fSxlLnByb3RvdHlwZS5jb21wdXRlTGF5b3V0PWZ1bmN0aW9uKGUsbixpKXt2YXIgcj10aGlzO3QucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQuY2FsbCh0aGlzLGUsbixpKTt2YXIgbz12TXQuc3VtKHRoaXMuX2NhbGN1bGF0ZWRMYXlvdXQuZ3VhcmFudGVlZFdpZHRocyksYT12TXQuc3VtKHRoaXMuX2NhbGN1bGF0ZWRMYXlvdXQuZ3VhcmFudGVlZEhlaWdodHMpLHM9dGhpcy5fY2FsY3VsYXRlZExheW91dDsobz50aGlzLndpZHRoKCl8fGE+dGhpcy5oZWlnaHQoKSkmJihzPXRoaXMuX2l0ZXJhdGVMYXlvdXQodGhpcy53aWR0aCgpLHRoaXMuaGVpZ2h0KCksITApKTt2YXIgbD0wLGM9Yk10LkFycmF5LmFkZChzLnJvd1Byb3BvcnRpb25hbFNwYWNlLHMuZ3VhcmFudGVlZEhlaWdodHMpLHU9Yk10LkFycmF5LmFkZChzLmNvbFByb3BvcnRpb25hbFNwYWNlLHMuZ3VhcmFudGVlZFdpZHRocyk7cmV0dXJuIHRoaXMuX3Jvd3MuZm9yRWFjaCgoZnVuY3Rpb24odCxlKXt2YXIgbj0wO3QuZm9yRWFjaCgoZnVuY3Rpb24odCxpKXtudWxsIT10JiZ0LmNvbXB1dGVMYXlvdXQoe3g6bix5Omx9LHVbaV0sY1tlXSksbis9dVtpXStyLl9jb2x1bW5QYWRkaW5nfSkpLGwrPWNbZV0rci5fcm93UGFkZGluZ30pKSx0aGlzfSxlLnByb3RvdHlwZS5yb3dQYWRkaW5nPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3Jvd1BhZGRpbmc7aWYoIWJNdC5NYXRoLmlzVmFsaWROdW1iZXIodCl8fHQ8MCl0aHJvdyBFcnJvcigicm93UGFkZGluZyBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGZpbml0ZSB2YWx1ZSIpO3JldHVybiB0aGlzLl9yb3dQYWRkaW5nPXQsdGhpcy5yZWRyYXcoKSx0aGlzfSxlLnByb3RvdHlwZS5jb2x1bW5QYWRkaW5nPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX2NvbHVtblBhZGRpbmc7aWYoIWJNdC5NYXRoLmlzVmFsaWROdW1iZXIodCl8fHQ8MCl0aHJvdyBFcnJvcigiY29sdW1uUGFkZGluZyBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGZpbml0ZSB2YWx1ZSIpO3JldHVybiB0aGlzLl9jb2x1bW5QYWRkaW5nPXQsdGhpcy5yZWRyYXcoKSx0aGlzfSxlLnByb3RvdHlwZS5yb3dXZWlnaHQ9ZnVuY3Rpb24odCxlKXtpZihudWxsPT1lKXJldHVybiB0aGlzLl9yb3dXZWlnaHRzW3RdO2lmKCFiTXQuTWF0aC5pc1ZhbGlkTnVtYmVyKGUpfHxlPDApdGhyb3cgRXJyb3IoInJvd1dlaWdodCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGZpbml0ZSB2YWx1ZSIpO3JldHVybiB0aGlzLl9yb3dXZWlnaHRzW3RdPWUsdGhpcy5yZWRyYXcoKSx0aGlzfSxlLnByb3RvdHlwZS5jb2x1bW5XZWlnaHQ9ZnVuY3Rpb24odCxlKXtpZihudWxsPT1lKXJldHVybiB0aGlzLl9jb2x1bW5XZWlnaHRzW3RdO2lmKCFiTXQuTWF0aC5pc1ZhbGlkTnVtYmVyKGUpfHxlPDApdGhyb3cgRXJyb3IoImNvbHVtbldlaWdodCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGZpbml0ZSB2YWx1ZSIpO3JldHVybiB0aGlzLl9jb2x1bW5XZWlnaHRzW3RdPWUsdGhpcy5yZWRyYXcoKSx0aGlzfSxlLnByb3RvdHlwZS5maXhlZFdpZHRoPWZ1bmN0aW9uKCl7dmFyIHQ9dk10LnRyYW5zcG9zZSh0aGlzLl9yb3dzKTtyZXR1cm4gZS5fZml4ZWRTcGFjZSh0LChmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dHx8dC5maXhlZFdpZHRoKCl9KSl9LGUucHJvdG90eXBlLmZpeGVkSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIGUuX2ZpeGVkU3BhY2UodGhpcy5fcm93cywoZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXR8fHQuZml4ZWRIZWlnaHQoKX0pKX0sZS5wcm90b3R5cGUuX3BhZFRhYmxlVG9TaXplPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPTA7bjx0O24rKyl7dm9pZCAwPT09dGhpcy5fcm93c1tuXSYmKHRoaXMuX3Jvd3Nbbl09W10sdGhpcy5fcm93V2VpZ2h0c1tuXT1udWxsKTtmb3IodmFyIGk9MDtpPGU7aSsrKXZvaWQgMD09PXRoaXMuX3Jvd3Nbbl1baV0mJih0aGlzLl9yb3dzW25dW2ldPW51bGwpfWZvcihpPTA7aTxlO2krKyl2b2lkIDA9PT10aGlzLl9jb2x1bW5XZWlnaHRzW2ldJiYodGhpcy5fY29sdW1uV2VpZ2h0c1tpXT1udWxsKX0sZS5fY2FsY0NvbXBvbmVudFdlaWdodHM9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0Lm1hcCgoZnVuY3Rpb24odCxpKXtyZXR1cm4gbnVsbCE9dD90OmVbaV0ubWFwKG4pLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCYmZX0pLCEwKT8wOjF9KSl9LGUuX2NhbGNQcm9wb3J0aW9uYWxTcGFjZT1mdW5jdGlvbih0LGUpe3ZhciBuPXZNdC5zdW0odCk7cmV0dXJuIDA9PT1uP2JNdC5BcnJheS5jcmVhdGVGaWxsZWRBcnJheSgwLHQubGVuZ3RoKTp0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGUqdC9ufSkpfSxlLl9maXhlZFNwYWNlPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0JiZlfSksITApfTtyZXR1cm4gbih0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIG4odC5tYXAoZSkpfSkpKX0sZX0pKHl3dC5Db21wb25lbnRDb250YWluZXIpO19NdC5UYWJsZT14TXQ7dmFyIHdNdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkod010LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgU010PUJPLE1NdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5fbWF4TGluZXM9MixlfXJldHVybiBTTXQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUucmVxdWVzdGVkU3BhY2U9ZnVuY3Rpb24odCxlKXt0aGlzLl93cmFwcGVyLm1heExpbmVzKHRoaXMuX21heExpbmVzKTt2YXIgbj0wPT09dGhpcy5hbmdsZSgpP3Q6ZTswPT09biYmKG49MS8wKTt2YXIgaT10aGlzLl93cmFwcGVyLndyYXAodGhpcy5fdGV4dCx0aGlzLl9tZWFzdXJlcixuKSxyPXRoaXMuX21lYXN1cmVyLm1lYXN1cmUoaS53cmFwcGVkVGV4dCk7cmV0dXJue21pbldpZHRoOigwPT09dGhpcy5hbmdsZSgpP3Iud2lkdGg6ci5oZWlnaHQpKzIqdGhpcy5wYWRkaW5nKCksbWluSGVpZ2h0OigwPT09dGhpcy5hbmdsZSgpP3IuaGVpZ2h0OnIud2lkdGgpKzIqdGhpcy5wYWRkaW5nKCl9fSxlLnByb3RvdHlwZS5tYXhMaW5lcz1mdW5jdGlvbih0KXtyZXR1cm4gMD09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5fbWF4TGluZXM6KHRoaXMuX21heExpbmVzPXQsdGhpcy5yZWRyYXcoKSx0aGlzKX0sZX0pKE53dC5MYWJlbCk7d010LldyYXBwZWRMYWJlbD1NTXQ7dmFyIEVNdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoRU10LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgVE10PUJPLENNdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gZS5hZGRDbGFzcygieC1kcmFnLWJveC1sYXllciIpLGUuX2hhc0Nvcm5lcnM9ITEsZX1yZXR1cm4gVE10Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLmNvbXB1dGVMYXlvdXQ9ZnVuY3Rpb24oZSxuLGkpe3JldHVybiB0LnByb3RvdHlwZS5jb21wdXRlTGF5b3V0LmNhbGwodGhpcyxlLG4saSksdGhpcy5fc2V0Qm91bmRzKHRoaXMuYm91bmRzKCkpLHRoaXN9LGUucHJvdG90eXBlLl9zZXRCb3VuZHM9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUuX3NldEJvdW5kcy5jYWxsKHRoaXMse3RvcExlZnQ6e3g6ZS50b3BMZWZ0LngseTowfSxib3R0b21SaWdodDp7eDplLmJvdHRvbVJpZ2h0LngseTp0aGlzLmhlaWdodCgpfX0pfSxlLnByb3RvdHlwZS5fc2V0UmVzaXphYmxlQ2xhc3Nlcz1mdW5jdGlvbih0KXt0JiZ0aGlzLmVuYWJsZWQoKT90aGlzLmFkZENsYXNzKCJ4LXJlc2l6YWJsZSIpOnRoaXMucmVtb3ZlQ2xhc3MoIngtcmVzaXphYmxlIil9LGUucHJvdG90eXBlLnlTY2FsZT1mdW5jdGlvbihlKXtpZihudWxsPT1lKXJldHVybiB0LnByb3RvdHlwZS55U2NhbGUuY2FsbCh0aGlzKTt0aHJvdyBuZXcgRXJyb3IoInlTY2FsZXMgY2Fubm90IGJlIHNldCBvbiBhbiBYRHJhZ0JveExheWVyIil9LGUucHJvdG90eXBlLnlFeHRlbnQ9ZnVuY3Rpb24oZSl7aWYobnVsbD09ZSlyZXR1cm4gdC5wcm90b3R5cGUueUV4dGVudC5jYWxsKHRoaXMpO3Rocm93IG5ldyBFcnJvcigiWERyYWdCb3hMYXllciBoYXMgbm8geUV4dGVudCIpfSxlfSkoZXh0LkRyYWdCb3hMYXllcik7RU10LlhEcmFnQm94TGF5ZXI9Q010O3ZhciBBTXQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KEFNdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGtNdD1CTyxMTXQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGUuYWRkQ2xhc3MoInktZHJhZy1ib3gtbGF5ZXIiKSxlLl9oYXNDb3JuZXJzPSExLGV9cmV0dXJuIGtNdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5jb21wdXRlTGF5b3V0PWZ1bmN0aW9uKGUsbixpKXtyZXR1cm4gdC5wcm90b3R5cGUuY29tcHV0ZUxheW91dC5jYWxsKHRoaXMsZSxuLGkpLHRoaXMuX3NldEJvdW5kcyh0aGlzLmJvdW5kcygpKSx0aGlzfSxlLnByb3RvdHlwZS5fc2V0Qm91bmRzPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLl9zZXRCb3VuZHMuY2FsbCh0aGlzLHt0b3BMZWZ0Ont4OjAseTplLnRvcExlZnQueX0sYm90dG9tUmlnaHQ6e3g6dGhpcy53aWR0aCgpLHk6ZS5ib3R0b21SaWdodC55fX0pfSxlLnByb3RvdHlwZS5fc2V0UmVzaXphYmxlQ2xhc3Nlcz1mdW5jdGlvbih0KXt0JiZ0aGlzLmVuYWJsZWQoKT90aGlzLmFkZENsYXNzKCJ5LXJlc2l6YWJsZSIpOnRoaXMucmVtb3ZlQ2xhc3MoInktcmVzaXphYmxlIil9LGUucHJvdG90eXBlLnhTY2FsZT1mdW5jdGlvbihlKXtpZihudWxsPT1lKXJldHVybiB0LnByb3RvdHlwZS54U2NhbGUuY2FsbCh0aGlzKTt0aHJvdyBuZXcgRXJyb3IoInhTY2FsZXMgY2Fubm90IGJlIHNldCBvbiBhbiBZRHJhZ0JveExheWVyIil9LGUucHJvdG90eXBlLnhFeHRlbnQ9ZnVuY3Rpb24oZSl7aWYobnVsbD09ZSlyZXR1cm4gdC5wcm90b3R5cGUueEV4dGVudC5jYWxsKHRoaXMpO3Rocm93IG5ldyBFcnJvcigiWURyYWdCb3hMYXllciBoYXMgbm8geEV4dGVudCIpfSxlfSkoZXh0LkRyYWdCb3hMYXllcik7QU10LllEcmFnQm94TGF5ZXI9TE10LChmdW5jdGlvbih0KXsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPUJPO2UuX19leHBvcnRTdGFyKGV4dCx0KSxlLl9fZXhwb3J0U3Rhcihud3QsdCksZS5fX2V4cG9ydFN0YXIocHd0LHQpLGUuX19leHBvcnRTdGFyKF93dCx0KSxlLl9fZXhwb3J0U3Rhcihpd3QsdCksZS5fX2V4cG9ydFN0YXIoRXd0LHQpLGUuX19leHBvcnRTdGFyKE53dCx0KSxlLl9fZXhwb3J0U3RhcihCd3QsdCksZS5fX2V4cG9ydFN0YXIoYVN0LHQpLGUuX19leHBvcnRTdGFyKCR4dCx0KSxlLl9fZXhwb3J0U3RhcihfTXQsdCksZS5fX2V4cG9ydFN0YXIod010LHQpLGUuX19leHBvcnRTdGFyKEVNdCx0KSxlLl9fZXhwb3J0U3RhcihBTXQsdCl9KSh0eHQpO3ZhciBQTXQ9e30sTk10PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkoTk10LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgSU10PUJPLFJNdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiB0LmNhbGwodGhpcywicGF0aCIsImFyYyBmaWxsIil8fHRoaXN9cmV0dXJuIElNdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fYXBwbHlEZWZhdWx0QXR0cmlidXRlcz1mdW5jdGlvbih0KXt0LnN0eWxlKCJzdHJva2UiLCJub25lIil9LGV9KShxU3QuU1ZHRHJhd2VyKTtOTXQuQXJjU1ZHRHJhd2VyPVJNdDt2YXIgT010PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShPTXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB6TXQ9Qk8sRE10PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIHQuY2FsbCh0aGlzLCJwYXRoIiwiYXJjIG91dGxpbmUiKXx8dGhpc31yZXR1cm4gek10Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLl9hcHBseURlZmF1bHRBdHRyaWJ1dGVzPWZ1bmN0aW9uKHQpe3Quc3R5bGUoImZpbGwiLCJub25lIil9LGV9KShxU3QuU1ZHRHJhd2VyKTtPTXQuQXJjT3V0bGluZVNWR0RyYXdlcj1ETXQ7dmFyIEJNdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoQk10LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgSE10PUJPLEZNdD1qU3QsVk10PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIHQuY2FsbCh0aGlzLCJwYXRoIiwiYXJlYSIpfHx0aGlzfXJldHVybiBITXQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuX2FwcGx5RGVmYXVsdEF0dHJpYnV0ZXM9ZnVuY3Rpb24odCl7dC5zdHlsZSgic3Ryb2tlIiwibm9uZSIpfSxlLnByb3RvdHlwZS5nZXRWaXN1YWxQcmltaXRpdmVBdEluZGV4PWZ1bmN0aW9uKGUpe3JldHVybiB0LnByb3RvdHlwZS5nZXRWaXN1YWxQcmltaXRpdmVBdEluZGV4LmNhbGwodGhpcywwKX0sZX0pKHFTdC5TVkdEcmF3ZXIpO0JNdC5BcmVhU1ZHRHJhd2VyPVZNdDt2YXIgVU10PVsib3BhY2l0eSIsImZpbGwiLCJmaWxsLW9wYWNpdHkiXSxqTXQ9WyJvcGFjaXR5Iiwic3Ryb2tlIiwic3Ryb2tlLXdpZHRoIl07Qk10Lm1ha2VBcmVhQ2FudmFzRHJhd1N0ZXA9ZnVuY3Rpb24gR010KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4saSxyKXt2YXIgbz1GTXQucmVzb2x2ZUF0dHJpYnV0ZXMocixVTXQsaVswXSwwKTtGTXQucmVuZGVyQXJlYShuLHQoKSxpWzBdLG8pO3ZhciBhPUZNdC5yZXNvbHZlQXR0cmlidXRlcyhyLGpNdCxpWzBdLDApO0ZNdC5yZW5kZXJMaW5lKG4sZSgpLGlbMF0sYSl9fTt2YXIgV010PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShXTXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBxTXQ9Qk8sWU10PWpTdCxYTXQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gdC5jYWxsKHRoaXMsInBhdGgiLCJsaW5lIil8fHRoaXN9cmV0dXJuIHFNdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fYXBwbHlEZWZhdWx0QXR0cmlidXRlcz1mdW5jdGlvbih0KXt0LnN0eWxlKCJmaWxsIiwibm9uZSIpfSxlLnByb3RvdHlwZS5nZXRWaXN1YWxQcmltaXRpdmVBdEluZGV4PWZ1bmN0aW9uKGUpe3JldHVybiB0LnByb3RvdHlwZS5nZXRWaXN1YWxQcmltaXRpdmVBdEluZGV4LmNhbGwodGhpcywwKX0sZX0pKHFTdC5TVkdEcmF3ZXIpO1dNdC5MaW5lU1ZHRHJhd2VyPVhNdDt2YXIgJE10PVsib3BhY2l0eSIsInN0cm9rZS1vcGFjaXR5Iiwic3Ryb2tlLXdpZHRoIiwic3Ryb2tlIiwic3Ryb2tlLWRhc2hhcnJheSJdO1dNdC5tYWtlTGluZUNhbnZhc0RyYXdTdGVwPWZ1bmN0aW9uIEtNdCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLGkpe3ZhciByPVlNdC5yZXNvbHZlQXR0cmlidXRlcyhpLCRNdCxuWzBdLDApO1lNdC5yZW5kZXJMaW5lKGUsdCgpLG5bMF0scil9fTt2YXIgWk10PXt9OyEoZnVuY3Rpb24odCl7Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT1CTyxuPWpTdCxpPShmdW5jdGlvbih0KXtmdW5jdGlvbiBuKGUpe3ZvaWQgMD09PWUmJihlPSIiKTt2YXIgbj10LmNhbGwodGhpcywicmVjdCIsIiIpfHx0aGlzO3JldHVybiBuLl9yb290Q2xhc3NOYW1lPWUsbi5fcm9vdC5jbGFzc2VkKG4uX3Jvb3RDbGFzc05hbWUsITApLG59cmV0dXJuIGUuX19leHRlbmRzKG4sdCksbn0pKHFTdC5TVkdEcmF3ZXIpO3QuUmVjdGFuZ2xlU1ZHRHJhd2VyPWk7dmFyIHI9bi5Db250ZXh0U3R5bGVBdHRycy5jb25jYXQoWyJ4IiwieSIsIndpZHRoIiwiaGVpZ2h0Il0pO3QuUmVjdGFuZ2xlQ2FudmFzRHJhd1N0ZXA9ZnVuY3Rpb24odCxlLGkpe3Quc2F2ZSgpO2Zvcih2YXIgbz1lLmxlbmd0aCxhPTA7YTxvO2ErKyl7dmFyIHM9ZVthXTtpZihudWxsIT1zKXt2YXIgbD1uLnJlc29sdmVBdHRyaWJ1dGVzKGkscixzLGEpO3QuYmVnaW5QYXRoKCksdC5yZWN0KGwueCxsLnksbC53aWR0aCxsLmhlaWdodCksbi5yZW5kZXJQYXRoV2l0aFN0eWxlKHQsbCl9fXQucmVzdG9yZSgpfTt2YXIgbz0oZnVuY3Rpb24obil7ZnVuY3Rpb24gaShlKXtyZXR1cm4gbi5jYWxsKHRoaXMsZSx0LlJlY3RhbmdsZUNhbnZhc0RyYXdTdGVwKXx8dGhpc31yZXR1cm4gZS5fX2V4dGVuZHMoaSxuKSxpfSkobi5DYW52YXNEcmF3ZXIpO3QuUmVjdGFuZ2xlQ2FudmFzRHJhd2VyPW99KShaTXQpO3ZhciBKTXQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KEpNdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFFNdD1CTyx0RXQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gdC5jYWxsKHRoaXMsImxpbmUiLCIiKXx8dGhpc31yZXR1cm4gUU10Ll9fZXh0ZW5kcyhlLHQpLGV9KShxU3QuU1ZHRHJhd2VyKTtKTXQuU2VnbWVudFNWR0RyYXdlcj10RXQ7dmFyIGVFdD17fSxuRXQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTctcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShuRXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpRXQ9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4saSl7dm9pZCAwPT09aSYmKGk9d2luZG93LmRldmljZVBpeGVsUmF0aW8pLHRoaXMuc2NyZWVuV2lkdGg9ZSx0aGlzLnNjcmVlbkhlaWdodD1uLHRoaXMuZGV2aWNlUGl4ZWxSYXRpbz1pLHRoaXMucGl4ZWxXaWR0aD1lKmksdGhpcy5waXhlbEhlaWdodD1uKmksdGhpcy5jYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdGhpcy5jdHg9dGhpcy5jYW52YXMuZ2V0Q29udGV4dCgiMmQiKSx0LnNpemVQaXhlbHModGhpcy5jdHgsZSxuLGkpfXJldHVybiB0LnNpemVQaXhlbHM9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dC5jYW52YXM7ci53aWR0aD1lKmksci5oZWlnaHQ9bippLHIuc3R5bGUud2lkdGg9ZSsicHgiLHIuc3R5bGUuaGVpZ2h0PW4rInB4Iix0LnNldFRyYW5zZm9ybSgxLDAsMCwxLDAsMCksdC5zY2FsZShpLGkpfSx0LnByb3RvdHlwZS5ibGl0PWZ1bmN0aW9uKHQsZSxuKXt2b2lkIDA9PT1lJiYoZT0wKSx2b2lkIDA9PT1uJiYobj0wKSx0LmRyYXdJbWFnZSh0aGlzLmNhbnZhcyxlLG4sdGhpcy5zY3JlZW5XaWR0aCx0aGlzLnNjcmVlbkhlaWdodCl9LHQucHJvdG90eXBlLmJsaXRDZW50ZXI9ZnVuY3Rpb24odCxlLG4pe3ZvaWQgMD09PWUmJihlPTApLHZvaWQgMD09PW4mJihuPTApLHRoaXMuYmxpdCh0LE1hdGguZmxvb3IoZS10aGlzLnNjcmVlbldpZHRoLzIpLE1hdGguZmxvb3Iobi10aGlzLnNjcmVlbkhlaWdodC8yKSl9LHQucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbihlLG4saSl7dm9pZCAwPT09aSYmKGk9ITEpO3ZhciByPXRoaXMuZGV2aWNlUGl4ZWxSYXRpbztyZXR1cm4gdGhpcy5zY3JlZW5XaWR0aD1lLHRoaXMuc2NyZWVuSGVpZ2h0PW4sdGhpcy5waXhlbFdpZHRoPWUqcix0aGlzLnBpeGVsSGVpZ2h0PW4qcix0LnNpemVQaXhlbHModGhpcy5jdHgsZSxuLHIpLGkmJnRoaXMuY3R4LnRyYW5zbGF0ZShlLzIsZS8yKSx0aGlzfSx0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49ZS5waXhlbFdpZHRoLGk9ZS5waXhlbEhlaWdodCxyPWUuY3R4O3JldHVybiByLnNhdmUoKSxyLnNldFRyYW5zZm9ybSgxLDAsMCwxLDAsMCksbnVsbD09dD9yLmNsZWFyUmVjdCgwLDAsbixpKTooci5maWxsU3R5bGU9dCxyLmZpbGxSZWN0KDAsMCxuLGkpKSxyLnJlc3RvcmUoKSx0aGlzfSx0LnByb3RvdHlwZS5nZXRJbWFnZURhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdHguZ2V0SW1hZ2VEYXRhKDAsMCx0aGlzLnBpeGVsV2lkdGgsdGhpcy5waXhlbEhlaWdodCl9LHR9KSgpO25FdC5DYW52YXNCdWZmZXI9aUV0LAovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkoZUV0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgckV0PUJPLG9FdD1qU3QsYUV0PW5FdCxzRXQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gdC5jYWxsKHRoaXMsInBhdGgiLCJzeW1ib2wiKXx8dGhpc31yZXR1cm4gckV0Ll9fZXh0ZW5kcyhlLHQpLGV9KShxU3QuU1ZHRHJhd2VyKTtlRXQuU3ltYm9sU1ZHRHJhd2VyPXNFdDt2YXIgbEV0PW9FdC5Db250ZXh0U3R5bGVBdHRycy5jb25jYXQoWyJ4IiwieSJdKTtmdW5jdGlvbiBjRXQodCxlLG4saSxyKXtyZXR1cm4gbityPj0wJiZuLXI8PXQmJmkrcj49MCYmaS1yPD1lfWZ1bmN0aW9uIHVFdCh0LGUsbil7aWYobnVsbD09dClyZXR1cm4hMTtmb3IodmFyIGk9MDtpPG4ubGVuZ3RoO2krKyl7dmFyIHI9bltpXTtpZih0W3JdIT1lW3JdKXJldHVybiExfXJldHVybiEwfWVFdC5tYWtlU3ltYm9sQ2FudmFzRHJhd1N0ZXA9ZnVuY3Rpb24gaEV0KHQsZSxuLGkpe3ZhciByPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKG8sYSxzKXtmb3IodmFyIGw9by5jYW52YXMsYz1sLmNsaWVudFdpZHRoLHU9bC5jbGllbnRIZWlnaHQsaD12b2lkIDA9PT1pP25ldyBhRXQuQ2FudmFzQnVmZmVyKDAsMCk6aSxkPWUoKSxwPW4oKSxmPW51bGwsbT1udWxsLGc9bnVsbCxfPTA7XzxhLmxlbmd0aDtfKyspe3ZhciB5PWFbX107aWYobnVsbCE9eSl7dmFyIHY9b0V0LnJlc29sdmVBdHRyaWJ1dGVzKHMsbEV0LHksXyksYj1wKHksXyx0KTtpZihjRXQoYyx1LHYueCx2LnksYikpe3ZhciB4PXVFdChmLHYsb0V0LkNvbnRleHRTdHlsZUF0dHJzKSx3PWQoeSxfLHIuX2RhdGFzZXQpO2lmKHgmJmc9PWImJm09PXcpO2Vsc2V7dmFyIFM9YitvRXQuZ2V0U3Ryb2tlV2lkdGgodikrMTsoUz5oLnNjcmVlbldpZHRofHxTPmguc2NyZWVuSGVpZ2h0KSYmaC5yZXNpemUoUyxTLCEwKSxoLmNsZWFyKCk7dmFyIE09aC5jdHg7TS5iZWdpblBhdGgoKSx3KGIpLmNvbnRleHQoTSkobnVsbCksTS5jbG9zZVBhdGgoKSxvRXQucmVuZGVyUGF0aFdpdGhTdHlsZShNLHYpLG09dyxnPWIsZj12fWguYmxpdENlbnRlcihvLHYueCx2LnkpfX19fX0sKGZ1bmN0aW9uKHQpewovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9Qk87ZS5fX2V4cG9ydFN0YXIoTk10LHQpLGUuX19leHBvcnRTdGFyKE9NdCx0KSxlLl9fZXhwb3J0U3RhcihCTXQsdCksZS5fX2V4cG9ydFN0YXIoalN0LHQpLGUuX19leHBvcnRTdGFyKEdTdCx0KSxlLl9fZXhwb3J0U3RhcihXTXQsdCksZS5fX2V4cG9ydFN0YXIoWk10LHQpLGUuX19leHBvcnRTdGFyKEpNdCx0KSxlLl9fZXhwb3J0U3RhcihxU3QsdCksZS5fX2V4cG9ydFN0YXIoZUV0LHQpfSkoUE10KTt2YXIgZEV0PXt9LHBFdD17fSxmRXQ9e30sbUV0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkobUV0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZ0V0PUJPLF9FdD1YdnQseUV0PURfdCx2RXQ9S1N0LGJFdD1zU3QseEV0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBlLl9hdXRvQWRqdXN0WFNjYWxlRG9tYWluPSExLGUuX2F1dG9BZGp1c3RZU2NhbGVEb21haW49ITEsZS5fZGVmZXJyZWRSZW5kZXJpbmc9ITEsZS5fYXBwbHlEZWZlcnJlZFJlbmRlcmluZ1RyYW5zZm9ybT1mdW5jdGlvbih0LG4saSxyKXtlLl9pc0FuY2hvcmVkJiYobnVsbCE9ZS5fcmVuZGVyQXJlYSYmZS5fcmVuZGVyQXJlYS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIit0KyIsICIrbisiKSBzY2FsZSgiK2krIiwgIityKyIpIiksbnVsbCE9ZS5fY2FudmFzJiZlLl9jYW52YXMuc3R5bGUoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK3QrInB4LCAiK24rInB4KSBzY2FsZSgiK2krIiwgIityKyIpIikpfSxlLmFkZENsYXNzKCJ4eS1wbG90IiksZS5fYWRqdXN0WURvbWFpbk9uQ2hhbmdlRnJvbVhDYWxsYmFjaz1mdW5jdGlvbih0KXtyZXR1cm4gZS5fYWRqdXN0WURvbWFpbk9uQ2hhbmdlRnJvbVgoKX0sZS5fYWRqdXN0WERvbWFpbk9uQ2hhbmdlRnJvbVlDYWxsYmFjaz1mdW5jdGlvbih0KXtyZXR1cm4gZS5fYWRqdXN0WERvbWFpbk9uQ2hhbmdlRnJvbVkoKX0sZS5fcmVuZGVyQ2FsbGJhY2s9ZnVuY3Rpb24oKXtpZihlLmRlZmVycmVkUmVuZGVyaW5nKCkpe3ZhciB0PWUueCgpJiZlLngoKS5zY2FsZSxuPWUueSgpJiZlLnkoKS5zY2FsZTtlLl9kZWZlcnJlZFJlbmRlcmVyLnVwZGF0ZURvbWFpbnModCxuKX1lbHNlIGUucmVuZGVyKCl9LGUuX2RlZmVycmVkUmVuZGVyZXI9bmV3IHZFdC5EZWZlcnJlZFJlbmRlcmVyKChmdW5jdGlvbigpe3JldHVybiBlLnJlbmRlcigpfSksZS5fYXBwbHlEZWZlcnJlZFJlbmRlcmluZ1RyYW5zZm9ybSksZX1yZXR1cm4gZ0V0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRlZmVycmVkUmVuZGVyaW5nKCkmJnRoaXMuX2RlZmVycmVkUmVuZGVyZXIucmVzZXRUcmFuc2Zvcm1zKCksdC5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyl9LGUucHJvdG90eXBlLmRlZmVycmVkUmVuZGVyaW5nPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX2RlZmVycmVkUmVuZGVyaW5nO2lmKHQpe3ZhciBlPXRoaXMueCgpJiZ0aGlzLngoKS5zY2FsZSxuPXRoaXMueSgpJiZ0aGlzLnkoKS5zY2FsZTt0aGlzLl9kZWZlcnJlZFJlbmRlcmVyLnNldERvbWFpbnMoZSxuKX1yZXR1cm4gdGhpcy5fZGVmZXJyZWRSZW5kZXJpbmc9dCx0aGlzfSxlLnByb3RvdHlwZS54PWZ1bmN0aW9uKHQsbixpKXtpZihudWxsPT10KXJldHVybiB0aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmdldChlLl9YX0tFWSk7dGhpcy5fYmluZFByb3BlcnR5KGUuX1hfS0VZLHQsbixpKTt2YXIgcj10aGlzLndpZHRoKCk7cmV0dXJuIG51bGwhPW4mJm51bGwhPXImJm4ucmFuZ2UoWzAscl0pLHRoaXMuX2F1dG9BZGp1c3RZU2NhbGVEb21haW4mJnRoaXMuX3VwZGF0ZVlFeHRlbnRzQW5kQXV0b2RvbWFpbigpLHRoaXMucmVuZGVyKCksdGhpc30sZS5wcm90b3R5cGUueT1mdW5jdGlvbih0LG4saSl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQoZS5fWV9LRVkpO3RoaXMuX2JpbmRQcm9wZXJ0eShlLl9ZX0tFWSx0LG4saSk7dmFyIHI9dGhpcy5oZWlnaHQoKTtyZXR1cm4gbnVsbCE9biYmbnVsbCE9ciYmbi5yYW5nZShuIGluc3RhbmNlb2YgX0V0LkNhdGVnb3J5P1swLHJdOltyLDBdKSx0aGlzLl9hdXRvQWRqdXN0WFNjYWxlRG9tYWluJiZ0aGlzLl91cGRhdGVYRXh0ZW50c0FuZEF1dG9kb21haW4oKSx0aGlzLnJlbmRlcigpLHRoaXN9LGUucHJvdG90eXBlLl9maWx0ZXJGb3JQcm9wZXJ0eT1mdW5jdGlvbih0KXtyZXR1cm4ieCI9PT10JiZ0aGlzLl9hdXRvQWRqdXN0WFNjYWxlRG9tYWluP3RoaXMuX21ha2VGaWx0ZXJCeVByb3BlcnR5KCJ5Iik6InkiIT09dCYmInkwIiE9PXR8fCF0aGlzLl9hdXRvQWRqdXN0WVNjYWxlRG9tYWluP251bGw6dGhpcy5fbWFrZUZpbHRlckJ5UHJvcGVydHkoIngiKX0sZS5wcm90b3R5cGUuX21ha2VGaWx0ZXJCeVByb3BlcnR5PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3Byb3BlcnR5QmluZGluZ3MuZ2V0KHQpO2lmKG51bGwhPWUpe3ZhciBuPWUuYWNjZXNzb3IsaT1lLnNjYWxlO2lmKG51bGwhPWkpcmV0dXJuIGZ1bmN0aW9uKHQsZSxyKXt2YXIgbz1pLnJhbmdlKCk7cmV0dXJuIHlFdC5NYXRoLmluUmFuZ2UoaS5zY2FsZShuKHQsZSxyKSksb1swXSxvWzFdKX19cmV0dXJuIG51bGx9LGUucHJvdG90eXBlLl91bmluc3RhbGxTY2FsZUZvcktleT1mdW5jdGlvbihuLGkpe3QucHJvdG90eXBlLl91bmluc3RhbGxTY2FsZUZvcktleS5jYWxsKHRoaXMsbixpKSxuLm9mZlVwZGF0ZShpPT09ZS5fWF9LRVk/dGhpcy5fYWRqdXN0WURvbWFpbk9uQ2hhbmdlRnJvbVhDYWxsYmFjazp0aGlzLl9hZGp1c3RYRG9tYWluT25DaGFuZ2VGcm9tWUNhbGxiYWNrKX0sZS5wcm90b3R5cGUuX2luc3RhbGxTY2FsZUZvcktleT1mdW5jdGlvbihuLGkpe3QucHJvdG90eXBlLl9pbnN0YWxsU2NhbGVGb3JLZXkuY2FsbCh0aGlzLG4saSksbi5vblVwZGF0ZShpPT09ZS5fWF9LRVk/dGhpcy5fYWRqdXN0WURvbWFpbk9uQ2hhbmdlRnJvbVhDYWxsYmFjazp0aGlzLl9hZGp1c3RYRG9tYWluT25DaGFuZ2VGcm9tWUNhbGxiYWNrKX0sZS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3JldHVybiB0LnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyksdGhpcy54KCkuc2NhbGUmJnRoaXMueCgpLnNjYWxlLm9mZlVwZGF0ZSh0aGlzLl9hZGp1c3RZRG9tYWluT25DaGFuZ2VGcm9tWENhbGxiYWNrKSx0aGlzLnkoKS5zY2FsZSYmdGhpcy55KCkuc2NhbGUub2ZmVXBkYXRlKHRoaXMuX2FkanVzdFhEb21haW5PbkNoYW5nZUZyb21ZQ2FsbGJhY2spLHRoaXN9LGUucHJvdG90eXBlLmF1dG9yYW5nZU1vZGU9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fYXV0b0FkanVzdFhTY2FsZURvbWFpbj8ieCI6dGhpcy5fYXV0b0FkanVzdFlTY2FsZURvbWFpbj8ieSI6Im5vbmUiO3N3aXRjaCh0KXtjYXNlIngiOnRoaXMuX2F1dG9BZGp1c3RYU2NhbGVEb21haW49ITAsdGhpcy5fYXV0b0FkanVzdFlTY2FsZURvbWFpbj0hMSx0aGlzLl9hZGp1c3RYRG9tYWluT25DaGFuZ2VGcm9tWSgpO2JyZWFrO2Nhc2UieSI6dGhpcy5fYXV0b0FkanVzdFhTY2FsZURvbWFpbj0hMSx0aGlzLl9hdXRvQWRqdXN0WVNjYWxlRG9tYWluPSEwLHRoaXMuX2FkanVzdFlEb21haW5PbkNoYW5nZUZyb21YKCk7YnJlYWs7Y2FzZSJub25lIjp0aGlzLl9hdXRvQWRqdXN0WFNjYWxlRG9tYWluPSExLHRoaXMuX2F1dG9BZGp1c3RZU2NhbGVEb21haW49ITE7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc2NhbGUgbmFtZSAnIit0KyInLCBtdXN0IGJlICd4JywgJ3knIG9yICdub25lJyIpfXJldHVybiB0aGlzfSxlLnByb3RvdHlwZS5jb21wdXRlTGF5b3V0PWZ1bmN0aW9uKGUsbixpKXt0LnByb3RvdHlwZS5jb21wdXRlTGF5b3V0LmNhbGwodGhpcyxlLG4saSk7dmFyIHI9dGhpcy54KCksbz1yJiZyLnNjYWxlO251bGwhPW8mJm8ucmFuZ2UoWzAsdGhpcy53aWR0aCgpXSk7dmFyIGE9dGhpcy55KCkscz1hJiZhLnNjYWxlO3JldHVybiBudWxsIT1zJiZzLnJhbmdlKHMgaW5zdGFuY2VvZiBfRXQuQ2F0ZWdvcnk/WzAsdGhpcy5oZWlnaHQoKV06W3RoaXMuaGVpZ2h0KCksMF0pLHRoaXN9LGUucHJvdG90eXBlLl91cGRhdGVYRXh0ZW50c0FuZEF1dG9kb21haW49ZnVuY3Rpb24oKXt2YXIgdD10aGlzLngoKS5zY2FsZTtudWxsIT10JiZ0LmF1dG9Eb21haW4oKX0sZS5wcm90b3R5cGUuX3VwZGF0ZVlFeHRlbnRzQW5kQXV0b2RvbWFpbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMueSgpLnNjYWxlO251bGwhPXQmJnQuYXV0b0RvbWFpbigpfSxlLnByb3RvdHlwZS5zaG93QWxsRGF0YT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl91cGRhdGVYRXh0ZW50c0FuZEF1dG9kb21haW4oKSx0aGlzLl91cGRhdGVZRXh0ZW50c0FuZEF1dG9kb21haW4oKSx0aGlzfSxlLnByb3RvdHlwZS5fYWRqdXN0WURvbWFpbk9uQ2hhbmdlRnJvbVg9ZnVuY3Rpb24oKXt0aGlzLl9wcm9qZWN0b3JzUmVhZHkoKSYmdGhpcy5fYXV0b0FkanVzdFlTY2FsZURvbWFpbiYmdGhpcy5fdXBkYXRlWUV4dGVudHNBbmRBdXRvZG9tYWluKCl9LGUucHJvdG90eXBlLl9hZGp1c3RYRG9tYWluT25DaGFuZ2VGcm9tWT1mdW5jdGlvbigpe3RoaXMuX3Byb2plY3RvcnNSZWFkeSgpJiZ0aGlzLl9hdXRvQWRqdXN0WFNjYWxlRG9tYWluJiZ0aGlzLl91cGRhdGVYRXh0ZW50c0FuZEF1dG9kb21haW4oKX0sZS5wcm90b3R5cGUuX3Byb2plY3RvcnNSZWFkeT1mdW5jdGlvbigpe3ZhciB0PXRoaXMueCgpLGU9dGhpcy55KCk7cmV0dXJuIG51bGwhPXQmJm51bGwhPXQuYWNjZXNzb3ImJm51bGwhPWUmJm51bGwhPWUuYWNjZXNzb3J9LGUucHJvdG90eXBlLl9waXhlbFBvaW50PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1iRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpLHI9YkV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueSgpKTtyZXR1cm57eDppKHQsZSxuKSx5OnIodCxlLG4pfX0sZS5wcm90b3R5cGUuX2dldERhdGFUb0RyYXc9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49dC5wcm90b3R5cGUuX2dldERhdGFUb0RyYXcuY2FsbCh0aGlzKSxpPXRoaXMuYXR0cigiZGVmaW5lZCIpO3JldHVybiB0aGlzLmRhdGFzZXRzKCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7bi5zZXQodCxuLmdldCh0KS5maWx0ZXIoKGZ1bmN0aW9uKG4scil7cmV0dXJuKGZ1bmN0aW9uKHQsbixyKXt2YXIgbz1iRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IoZS54KCkpKHQsbixyKSxhPWJFdC5QbG90Ll9zY2FsZWRBY2Nlc3NvcihlLnkoKSkodCxuLHIpO3JldHVybighaXx8ITEhPT1pLmFjY2Vzc29yKHQsbixyKSkmJnlFdC5NYXRoLmlzVmFsaWROdW1iZXIobykmJnlFdC5NYXRoLmlzVmFsaWROdW1iZXIoYSl9KShuLHIsdCl9KSkpfSkpLG59LGUuX1hfS0VZPSJ4IixlLl9ZX0tFWT0ieSIsZX0pKGJFdC5QbG90KTttRXQuWFlQbG90PXhFdCwKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KGZFdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHdFdD1CTyxTRXQ9d3B0LE1FdD1mZ3QsRUV0PVBNdCxURXQ9R1N0LENFdD1XTXQsQUV0PVh2dCxrRXQ9TGJ0LExFdD1EX3QsUEV0PWRFdCxORXQ9c1N0LElFdD1tRXQsUkV0PXtsaW5lYXI6U0V0LmN1cnZlTGluZWFyLGxpbmVhckNsb3NlZDpTRXQuY3VydmVMaW5lYXJDbG9zZWQsc3RlcDpTRXQuY3VydmVTdGVwLHN0ZXBCZWZvcmU6U0V0LmN1cnZlU3RlcEJlZm9yZSxzdGVwQWZ0ZXI6U0V0LmN1cnZlU3RlcEFmdGVyLGJhc2lzOlNFdC5jdXJ2ZUJhc2lzLGJhc2lzT3BlbjpTRXQuY3VydmVCYXNpc09wZW4sYmFzaXNDbG9zZWQ6U0V0LmN1cnZlQmFzaXNDbG9zZWQsYnVuZGxlOlNFdC5jdXJ2ZUJ1bmRsZSxjYXJkaW5hbDpTRXQuY3VydmVDYXJkaW5hbCxjYXJkaW5hbE9wZW46U0V0LmN1cnZlQ2FyZGluYWxPcGVuLGNhcmRpbmFsQ2xvc2VkOlNFdC5jdXJ2ZUNhcmRpbmFsQ2xvc2VkLG1vbm90b25lOlNFdC5jdXJ2ZU1vbm90b25lWH07ZkV0LkN1cnZlTmFtZT1iZ3QubWFrZUVudW0oWyJsaW5lYXIiLCJsaW5lYXJDbG9zZWQiLCJzdGVwIiwic3RlcEJlZm9yZSIsInN0ZXBBZnRlciIsImJhc2lzIiwiYmFzaXNPcGVuIiwiYmFzaXNDbG9zZWQiLCJidW5kbGUiLCJjYXJkaW5hbCIsImNhcmRpbmFsT3BlbiIsImNhcmRpbmFsQ2xvc2VkIiwibW9ub3RvbmUiXSk7dmFyIE9FdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPXQuY2FsbCh0aGlzKXx8dGhpcztlLl9jdXJ2ZT0ibGluZWFyIixlLl9hdXRvcmFuZ2VTbW9vdGg9ITEsZS5fY3JvcHBlZFJlbmRlcmluZ0VuYWJsZWQ9ITAsZS5fY29sbGFwc2VEZW5zZVZlcnRpY2FsTGluZXNFbmFibGVkPSExLGUuX2Rvd25zYW1wbGluZ0VuYWJsZWQ9ITEsZS5hZGRDbGFzcygibGluZS1wbG90Iik7dmFyIG49bmV3IE1FdC5FYXNpbmc7cmV0dXJuIG4uc3RlcER1cmF0aW9uKE5FdC5QbG90Ll9BTklNQVRJT05fTUFYX0RVUkFUSU9OKSxuLmVhc2luZ01vZGUoImV4cEluT3V0Iiksbi5tYXhUb3RhbER1cmF0aW9uKE5FdC5QbG90Ll9BTklNQVRJT05fTUFYX0RVUkFUSU9OKSxlLmFuaW1hdG9yKFBFdC5BbmltYXRvci5NQUlOLG4pLGUuYXR0cigic3Ryb2tlIiwobmV3IEFFdC5Db2xvcikucmFuZ2UoKVswXSksZS5hdHRyKCJzdHJva2Utd2lkdGgiLCIycHgiKSxlfXJldHVybiB3RXQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUueD1mdW5jdGlvbihlLG4saSl7cmV0dXJuIG51bGw9PWU/dC5wcm90b3R5cGUueC5jYWxsKHRoaXMpOih0LnByb3RvdHlwZS54LmNhbGwodGhpcyxlLG4saSksdGhpcy5fc2V0U2NhbGVTbmFwcGluZygpLHRoaXMpfSxlLnByb3RvdHlwZS55PWZ1bmN0aW9uKGUsbixpKXtyZXR1cm4gbnVsbD09ZT90LnByb3RvdHlwZS55LmNhbGwodGhpcyk6KHQucHJvdG90eXBlLnkuY2FsbCh0aGlzLGUsbixpKSx0aGlzLl9zZXRTY2FsZVNuYXBwaW5nKCksdGhpcyl9LGUucHJvdG90eXBlLmF1dG9yYW5nZU1vZGU9ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/dC5wcm90b3R5cGUuYXV0b3JhbmdlTW9kZS5jYWxsKHRoaXMpOih0LnByb3RvdHlwZS5hdXRvcmFuZ2VNb2RlLmNhbGwodGhpcyxlKSx0aGlzLl9zZXRTY2FsZVNuYXBwaW5nKCksdGhpcyl9LGUucHJvdG90eXBlLmF1dG9yYW5nZVNtb290aD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9hdXRvcmFuZ2VTbW9vdGg6KHRoaXMuX2F1dG9yYW5nZVNtb290aD10LHRoaXMuX3NldFNjYWxlU25hcHBpbmcoKSx0aGlzKX0sZS5wcm90b3R5cGUuX3NldFNjYWxlU25hcHBpbmc9ZnVuY3Rpb24oKXsieCI9PT10aGlzLmF1dG9yYW5nZU1vZGUoKSYmdGhpcy54KCkmJnRoaXMueCgpLnNjYWxlJiZ0aGlzLngoKS5zY2FsZSBpbnN0YW5jZW9mIGtFdC5RdWFudGl0YXRpdmVTY2FsZSYmdGhpcy54KCkuc2NhbGUuc25hcHBpbmdEb21haW5FbmFibGVkKCF0aGlzLmF1dG9yYW5nZVNtb290aCgpKSwieSI9PT10aGlzLmF1dG9yYW5nZU1vZGUoKSYmdGhpcy55KCkmJnRoaXMueSgpLnNjYWxlJiZ0aGlzLnkoKS5zY2FsZSBpbnN0YW5jZW9mIGtFdC5RdWFudGl0YXRpdmVTY2FsZSYmdGhpcy55KCkuc2NhbGUuc25hcHBpbmdEb21haW5FbmFibGVkKCF0aGlzLmF1dG9yYW5nZVNtb290aCgpKX0sZS5wcm90b3R5cGUuY3VydmU9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fY3VydmU6KHRoaXMuX2N1cnZlPXQsdGhpcy5yZW5kZXIoKSx0aGlzKX0sZS5wcm90b3R5cGUuZG93bnNhbXBsaW5nRW5hYmxlZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9kb3duc2FtcGxpbmdFbmFibGVkOih0aGlzLl9kb3duc2FtcGxpbmdFbmFibGVkPXQsdGhpcyl9LGUucHJvdG90eXBlLmNyb3BwZWRSZW5kZXJpbmdFbmFibGVkPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2Nyb3BwZWRSZW5kZXJpbmdFbmFibGVkOih0aGlzLl9jcm9wcGVkUmVuZGVyaW5nRW5hYmxlZD10LHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLmNvbGxhcHNlRGVuc2VMaW5lc0VuYWJsZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fY29sbGFwc2VEZW5zZVZlcnRpY2FsTGluZXNFbmFibGVkOih0aGlzLl9jb2xsYXBzZURlbnNlVmVydGljYWxMaW5lc0VuYWJsZWQ9dCx0aGlzLnJlbmRlcigpLHRoaXMpfSxlLnByb3RvdHlwZS5fY3JlYXRlRHJhd2VyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIG5ldyBURXQuUHJveHlEcmF3ZXIoKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBDRXQuTGluZVNWR0RyYXdlcn0pLChmdW5jdGlvbihuKXtyZXR1cm4gbmV3IEVFdC5DYW52YXNEcmF3ZXIobixDRXQubWFrZUxpbmVDYW52YXNEcmF3U3RlcCgoZnVuY3Rpb24oKXtyZXR1cm4gZS5fZDNMaW5lRmFjdG9yeSh0KX0pKSl9KSl9LGUucHJvdG90eXBlLmdldEV4dGVudHNGb3JQcm9wZXJ0eT1mdW5jdGlvbihlKXt2YXIgbj10LnByb3RvdHlwZS5nZXRFeHRlbnRzRm9yUHJvcGVydHkuY2FsbCh0aGlzLGUpO2lmKCF0aGlzLl9hdXRvcmFuZ2VTbW9vdGgpcmV0dXJuIG47aWYodGhpcy5hdXRvcmFuZ2VNb2RlKCkhPT1lKXJldHVybiBuO2lmKCJ4IiE9PXRoaXMuYXV0b3JhbmdlTW9kZSgpJiYieSIhPT10aGlzLmF1dG9yYW5nZU1vZGUoKSlyZXR1cm4gbjt2YXIgaSxyPXRoaXMuX2dldEVkZ2VJbnRlcnNlY3Rpb25Qb2ludHMoKTtyZXR1cm4gaT0ieSI9PT10aGlzLmF1dG9yYW5nZU1vZGUoKT9yLmxlZnQuY29uY2F0KHIucmlnaHQpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQueX0pKTpyLnRvcC5jb25jYXQoci5ib3R0b20pLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQueH0pKSxuLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIFNFdC5leHRlbnQoU0V0Lm1lcmdlKFt0LGldKSl9KSl9LGUucHJvdG90eXBlLl9nZXRFZGdlSW50ZXJzZWN0aW9uUG9pbnRzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZighKHRoaXMueSgpLnNjYWxlIGluc3RhbmNlb2Yga0V0LlF1YW50aXRhdGl2ZVNjYWxlJiZ0aGlzLngoKS5zY2FsZSBpbnN0YW5jZW9mIGtFdC5RdWFudGl0YXRpdmVTY2FsZSkpcmV0dXJue2xlZnQ6W10scmlnaHQ6W10sdG9wOltdLGJvdHRvbTpbXX07dmFyIGU9dGhpcy55KCkuc2NhbGUsbj10aGlzLngoKS5zY2FsZSxpPXtsZWZ0OltdLHJpZ2h0OltdLHRvcDpbXSxib3R0b206W119LHI9bi5zY2FsZShuLmRvbWFpbigpWzBdKSxvPW4uc2NhbGUobi5kb21haW4oKVsxXSksYT1lLnNjYWxlKGUuZG9tYWluKClbMF0pLHM9ZS5zY2FsZShlLmRvbWFpbigpWzFdKTtyZXR1cm4gdGhpcy5kYXRhc2V0cygpLmZvckVhY2goKGZ1bmN0aW9uKGwpe2Zvcih2YXIgYyx1LGgsZCxwPWwuZGF0YSgpLGY9MTtmPHAubGVuZ3RoO2YrKyljPWh8fG4uc2NhbGUodC54KCkuYWNjZXNzb3IocFtmLTFdLGYtMSxsKSksdT1kfHxlLnNjYWxlKHQueSgpLmFjY2Vzc29yKHBbZi0xXSxmLTEsbCkpLGg9bi5zY2FsZSh0LngoKS5hY2Nlc3NvcihwW2ZdLGYsbCkpLGQ9ZS5zY2FsZSh0LnkoKS5hY2Nlc3NvcihwW2ZdLGYsbCkpLGM8cj09cjw9aCYmaS5sZWZ0LnB1c2goe3g6cix5OmUuaW52ZXJ0KHUrKHItYykqKGQtdSkvKGgtYykpfSksYzxvPT1vPD1oJiZpLnJpZ2h0LnB1c2goe3g6byx5OmUuaW52ZXJ0KHUrKG8tYykqKGQtdSkvKGgtYykpfSksdTxzPT1zPD1kJiZpLnRvcC5wdXNoKHt4Om4uaW52ZXJ0KGMrKHMtdSkqKGgtYykvKGQtdSkpLHk6c30pLHU8YT09YTw9ZCYmaS5ib3R0b20ucHVzaCh7eDpuLmludmVydChjKyhhLXUpKihoLWMpLyhkLXUpKSx5OmF9KX0pKSxpfSxlLnByb3RvdHlwZS5fZ2V0UmVzZXRZRnVuY3Rpb249ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnkoKS5zY2FsZS5kb21haW4oKSxlPU1hdGgubWF4KHRbMF0sdFsxXSksbj1NYXRoLm1pbih0WzBdLHRbMV0pLGk9ZTwwJiZlfHxuPjAmJm58fDAscj10aGlzLnkoKS5zY2FsZS5zY2FsZShpKTtyZXR1cm4gZnVuY3Rpb24odCxlLG4pe3JldHVybiByfX0sZS5wcm90b3R5cGUuX2dlbmVyYXRlRHJhd1N0ZXBzPWZ1bmN0aW9uKCl7dmFyIHQ9W107aWYodGhpcy5fYW5pbWF0ZU9uTmV4dFJlbmRlcigpKXt2YXIgZT10aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKTtlLmQ9dGhpcy5fY29uc3RydWN0TGluZVByb2plY3RvcihORXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpLHRoaXMuX2dldFJlc2V0WUZ1bmN0aW9uKCkpLHQucHVzaCh7YXR0clRvUHJvamVjdG9yOmUsYW5pbWF0b3I6dGhpcy5fZ2V0QW5pbWF0b3IoUEV0LkFuaW1hdG9yLlJFU0VUKX0pfXJldHVybiB0LnB1c2goe2F0dHJUb1Byb2plY3Rvcjp0aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxhbmltYXRvcjp0aGlzLl9nZXRBbmltYXRvcihQRXQuQW5pbWF0b3IuTUFJTil9KSx0fSxlLnByb3RvdHlwZS5fZ2VuZXJhdGVBdHRyVG9Qcm9qZWN0b3I9ZnVuY3Rpb24oKXt2YXIgZT10LnByb3RvdHlwZS5fZ2VuZXJhdGVBdHRyVG9Qcm9qZWN0b3IuY2FsbCh0aGlzKTtyZXR1cm4gT2JqZWN0LmtleXMoZSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7aWYoImQiIT09dCl7dmFyIG49ZVt0XTtlW3RdPWZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gdC5sZW5ndGg+MD9uKHRbMF0sZSxpKTpudWxsfX19KSksZX0sZS5wcm90b3R5cGUuZW50aXRpZXNBdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmVudGl0eU5lYXJlc3RCeVhUaGVuWSh0KTtyZXR1cm4gbnVsbCE9ZT9bZV06W119LGUucHJvdG90eXBlLmVudGl0eU5lYXJlc3RCeVhUaGVuWT1mdW5jdGlvbih0KXtmb3IodmFyIGUsbj0xLzAsaT0xLzAscj10aGlzLmJvdW5kcygpLG89dGhpcy5lbnRpdGllcygpLGE9by5sZW5ndGgscz0wO3M8YTtzKyspe3ZhciBsPW9bc107aWYoTEV0Lk1hdGgud2l0aGluKGwucG9zaXRpb24scikpe3ZhciBjPU1hdGguYWJzKHQueC1sLnBvc2l0aW9uLngpLHU9TWF0aC5hYnModC55LWwucG9zaXRpb24ueSk7KGM8bnx8Yz09PW4mJnU8aSkmJihlPWwsbj1jLGk9dSl9fXJldHVybiBlfSxlLnByb3RvdHlwZS5fcHJvcGVydHlQcm9qZWN0b3JzPWZ1bmN0aW9uKCl7dmFyIGU9dC5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycy5jYWxsKHRoaXMpO3JldHVybiBlLmQ9dGhpcy5fY29uc3RydWN0TGluZVByb2plY3RvcihORXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpLE5FdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSkpLGV9LGUucHJvdG90eXBlLl9jb25zdHJ1Y3RMaW5lUHJvamVjdG9yPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztyZXR1cm4gZnVuY3Rpb24oaSxyLG8pe3JldHVybiBuLl9kM0xpbmVGYWN0b3J5KG8sdCxlKShpKX19LGUucHJvdG90eXBlLl9kM0xpbmVGYWN0b3J5PWZ1bmN0aW9uKHQsZSxuKXt2b2lkIDA9PT1lJiYoZT1ORXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpKSx2b2lkIDA9PT1uJiYobj1ORXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy55KCkpKTtyZXR1cm4gU0V0LmxpbmUoKS54KChmdW5jdGlvbihuLGkpe3JldHVybiBlKG4saSx0KX0pKS55KChmdW5jdGlvbihlLGkpe3JldHVybiBuKGUsaSx0KX0pKS5jdXJ2ZSh0aGlzLl9nZXRDdXJ2ZUZhY3RvcnkoKSkuZGVmaW5lZCgoZnVuY3Rpb24oaSxyKXtyZXR1cm4oZnVuY3Rpb24odCxpLHIpe3ZhciBvPWUodCxpLHIpLGE9bih0LGkscik7cmV0dXJuIExFdC5NYXRoLmlzVmFsaWROdW1iZXIobykmJkxFdC5NYXRoLmlzVmFsaWROdW1iZXIoYSl9KShpLHIsdCl9KSl9LGUucHJvdG90eXBlLl9nZXRDdXJ2ZUZhY3Rvcnk9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmN1cnZlKCk7aWYoInN0cmluZyI9PXR5cGVvZiB0KXt2YXIgZT1SRXRbdF07cmV0dXJuIG51bGw9PWU/UkV0LmxpbmVhcjplfXJldHVybiB0fSxlLnByb3RvdHlwZS5fZ2V0RGF0YVRvRHJhdz1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1uZXcgTEV0Lk1hcDtyZXR1cm4gdGhpcy5kYXRhc2V0cygpLmZvckVhY2goKGZ1bmN0aW9uKG4pe3ZhciBpPW4uZGF0YSgpO2lmKHQuX2Nyb3BwZWRSZW5kZXJpbmdFbmFibGVkfHx0Ll9kb3duc2FtcGxpbmdFbmFibGVkKXtmb3IodmFyIHI9W10sbz1pLmxlbmd0aCxhPTA7YTxvO2ErKylyW2FdPWE7dC5fY3JvcHBlZFJlbmRlcmluZ0VuYWJsZWQmJihyPXQuX2ZpbHRlckNyb3BwZWRSZW5kZXJpbmcobixyKSksdC5fZG93bnNhbXBsaW5nRW5hYmxlZCYmKHI9dC5fZmlsdGVyRG93bnNhbXBsaW5nKG4scikpLHQuX2NvbGxhcHNlRGVuc2VWZXJ0aWNhbExpbmVzRW5hYmxlZCYmKHI9dC5fZmlsdGVyRGVuc2VMaW5lcyhuLHIpKTt2YXIgcz1bXSxsPXIubGVuZ3RoO2ZvcihhPTA7YTxsO2ErKyl7c1thXT1pW3JbYV1dfWUuc2V0KG4sW3NdKX1lbHNlIGUuc2V0KG4sW2ldKX0pKSxlfSxlLnByb3RvdHlwZS5fZmlsdGVyQ3JvcHBlZFJlbmRlcmluZz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLGk9TkV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKSxyPU5FdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSksbz10LmRhdGEoKSxhPVtdLHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gTEV0Lk1hdGguaW5SYW5nZSh0LDAsbi53aWR0aCgpKSYmTEV0Lk1hdGguaW5SYW5nZShlLDAsbi5oZWlnaHQoKSl9LGw9MDtsPGUubGVuZ3RoO2wrKyl7dmFyIGM9cyhpKG9bZVtsXV0sZVtsXSx0KSxyKG9bZVtsXV0sZVtsXSx0KSk7aWYoIWMmJm51bGwhPWVbbC0xXSYmbnVsbCE9b1tlW2wtMV1dKXt2YXIgdT1pKG9bZVtsLTFdXSxlW2wtMV0sdCksaD1yKG9bZVtsLTFdXSxlW2wtMV0sdCk7Yz1jfHxzKHUsaCl9aWYoIWMmJm51bGwhPWVbbCsxXSYmbnVsbCE9b1tlW2wrMV1dKXt2YXIgZD1pKG9bZVtsKzFdXSxlW2wrMV0sdCkscD1yKG9bZVtsKzFdXSxlW2wrMV0sdCk7Yz1jfHxzKGQscCl9YyYmYS5wdXNoKGVbbF0pfXJldHVybiBhfSxlLnByb3RvdHlwZS5fZmlsdGVyRG93bnNhbXBsaW5nPWZ1bmN0aW9uKHQsZSl7aWYoMD09PWUubGVuZ3RoKXJldHVybltdO2Zvcih2YXIgbj10LmRhdGEoKSxpPU5FdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSkscj1ORXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy55KCkpLG89W2VbMF1dLGE9ZnVuY3Rpb24obyxhKXt2YXIgcz1pKG5bZVtvXV0sZVtvXSx0KSxsPXIobltlW29dXSxlW29dLHQpLGM9aShuW2VbbysxXV0sZVtvKzFdLHQpLHU9cihuW2VbbysxXV0sZVtvKzFdLHQpO2lmKGE9PT0xLzApcmV0dXJuIE1hdGguZmxvb3Iocyk9PT1NYXRoLmZsb29yKGMpO3ZhciBoPWwrKGMtcykqYTtyZXR1cm4gTWF0aC5mbG9vcih1KT09PU1hdGguZmxvb3IoaCl9LHM9MDtzPGUubGVuZ3RoLTE7KXtmb3IodmFyIGw9ZVtzXSxjPWkobltlW3NdXSxlW3NdLHQpLHU9cihuW2Vbc11dLGVbc10sdCksaD1pKG5bZVtzKzFdXSxlW3MrMV0sdCksZD1yKG5bZVtzKzFdXSxlW3MrMV0sdCkscD1NYXRoLmZsb29yKGMpPT09TWF0aC5mbG9vcihoKT8xLzA6KGQtdSkvKGgtYyksZj1lW3NdLG09cD09PTEvMD91OmMsZz1mLF89bSx5PSEwO3M8ZS5sZW5ndGgtMSYmKHl8fGEocyxwKSk7KXtzKysseT0hMTt2YXIgdj1wPT09MS8wP3IobltlW3NdXSxlW3NdLHQpOmkobltlW3NdXSxlW3NdLHQpO3Y+XyYmKF89dixnPWVbc10pLHY8bSYmKG09dixmPWVbc10pfXZhciBiPWVbc107ZiE9PWwmJm8ucHVzaChmKSxnIT09ZiYmZyE9PWwmJm8ucHVzaChnKSxiIT09bCYmYiE9PWYmJmIhPT1nJiZvLnB1c2goYil9cmV0dXJuIG99LGUucHJvdG90eXBlLl9maWx0ZXJEZW5zZUxpbmVzPWZ1bmN0aW9uKHQsZSl7aWYoMD09PWUubGVuZ3RoKXJldHVybltdO3ZhciBuPXQuZGF0YSgpLGk9TkV0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKSxyPU5FdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSk7cmV0dXJuIHRoaXMuX2J1Y2tldEJ5WCh0LGUsKGZ1bmN0aW9uKGUpe3JldHVybiBpKG5bZV0sZSx0KX0pLChmdW5jdGlvbihlKXtyZXR1cm4gcihuW2VdLGUsdCl9KSl9LGUucHJvdG90eXBlLl9idWNrZXRCeVg9ZnVuY3Rpb24odCxlLG4saSl7Zm9yKHZhciByPVtdLG89dC5kYXRhKCksYT1udWxsLHM9ZS5sZW5ndGgsbD0wO2w8PXM7KytsKXt2YXIgYz1lW2xdO2lmKG51bGwhPW9bY10pe3ZhciB1PU1hdGguZmxvb3IobihjKSksaD1pKGMpO251bGw9PWE/YT1uZXcgTEV0LkJ1Y2tldChjLHUsaCk6YS5pc0luQnVja2V0KHUpP2EuYWRkVG9CdWNrZXQoaCxjKTooci5wdXNoLmFwcGx5KHIsYS5nZXRVbmlxdWVJbmRpY2VzKCkpLGE9bmV3IExFdC5CdWNrZXQoYyx1LGgpKX19cmV0dXJuIG51bGwhPWEmJnIucHVzaC5hcHBseShyLGEuZ2V0VW5pcXVlSW5kaWNlcygpKSxyfSxlfSkoSUV0LlhZUGxvdCk7ZkV0LkxpbmU9T0V0LAovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkocEV0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgekV0PUJPLERFdD13cHQsQkV0PVh2dCxIRXQ9RF90LEZFdD1QTXQsVkV0PUJNdCxVRXQ9R1N0LGpFdD1XTXQsR0V0PWRFdCxXRXQ9c1N0LHFFdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gZS5hZGRDbGFzcygiYXJlYS1wbG90IiksZS55MCgwKSxlLmF0dHIoImZpbGwtb3BhY2l0eSIsLjI1KSxlLmF0dHIoImZpbGwiLChuZXcgQkV0LkNvbG9yKS5yYW5nZSgpWzBdKSxlLl9saW5lRHJhd2Vycz1uZXcgSEV0Lk1hcCxlfXJldHVybiB6RXQuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUueT1mdW5jdGlvbihuLGkpe2lmKG51bGw9PW4pcmV0dXJuIHQucHJvdG90eXBlLnkuY2FsbCh0aGlzKTtpZihudWxsPT1pP3QucHJvdG90eXBlLnkuY2FsbCh0aGlzLG4pOnQucHJvdG90eXBlLnkuY2FsbCh0aGlzLG4saSksbnVsbCE9aSl7dmFyIHI9dGhpcy55MCgpLmFjY2Vzc29yO251bGwhPXImJnRoaXMuX2JpbmRQcm9wZXJ0eShlLl9ZMF9LRVkscixpKSx0aGlzLl91cGRhdGVZU2NhbGUoKX1yZXR1cm4gdGhpc30sZS5wcm90b3R5cGUueTA9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQoZS5fWTBfS0VZKTt2YXIgbj10aGlzLnkoKTtyZXR1cm4gdGhpcy5fYmluZFByb3BlcnR5KGUuX1kwX0tFWSx0LG4mJm4uc2NhbGUpLHRoaXMuX3VwZGF0ZVlTY2FsZSgpLHRoaXMucmVuZGVyKCksdGhpc30sZS5wcm90b3R5cGUuX29uRGF0YXNldFVwZGF0ZT1mdW5jdGlvbigpe3QucHJvdG90eXBlLl9vbkRhdGFzZXRVcGRhdGUuY2FsbCh0aGlzKSx0aGlzLl91cGRhdGVZU2NhbGUoKX0sZS5wcm90b3R5cGUuX2FkZERhdGFzZXQ9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztyZXR1cm4gdGhpcy5fbGluZURyYXdlcnMuc2V0KGUsbmV3IEZFdC5Qcm94eURyYXdlcigoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGpFdC5MaW5lU1ZHRHJhd2VyfSksKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRkV0LkNhbnZhc0RyYXdlcih0LGpFdC5tYWtlTGluZUNhbnZhc0RyYXdTdGVwKChmdW5jdGlvbigpe3ZhciB0PVdFdC5QbG90Ll9zY2FsZWRBY2Nlc3NvcihuLngoKSksaT1XRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3Iobi55KCkpO3JldHVybiBuLl9kM0xpbmVGYWN0b3J5KGUsdCxpKX0pKSl9KSkpLHQucHJvdG90eXBlLl9hZGREYXRhc2V0LmNhbGwodGhpcyxlKSx0aGlzfSxlLnByb3RvdHlwZS5fY3JlYXRlTm9kZXNGb3JEYXRhc2V0PWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLl9jcmVhdGVOb2Rlc0ZvckRhdGFzZXQuY2FsbCh0aGlzLGUpO3ZhciBuPXRoaXMuX2xpbmVEcmF3ZXJzLmdldChlKTtyZXR1cm4ic3ZnIj09PXRoaXMucmVuZGVyZXIoKT9uLnVzZVNWRyh0aGlzLl9yZW5kZXJBcmVhKTpuLnVzZUNhbnZhcyh0aGlzLl9jYW52YXMpLG59LGUucHJvdG90eXBlLl9yZW1vdmVEYXRhc2V0Tm9kZXM9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUuX3JlbW92ZURhdGFzZXROb2Rlcy5jYWxsKHRoaXMsZSksdGhpcy5fbGluZURyYXdlcnMuZ2V0KGUpLnJlbW92ZSgpfSxlLnByb3RvdHlwZS5fYWRkaXRpb25hbFBhaW50PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuX2dlbmVyYXRlTGluZURyYXdTdGVwcygpLG49dGhpcy5fZ2V0RGF0YVRvRHJhdygpO3RoaXMuZGF0YXNldHMoKS5mb3JFYWNoKChmdW5jdGlvbihpKXt2YXIgcj1XRXQuUGxvdC5hcHBseURyYXdTdGVwcyhlLGkpO3QuX2xpbmVEcmF3ZXJzLmdldChpKS5kcmF3KG4uZ2V0KGkpLHIpfSkpfSxlLnByb3RvdHlwZS5fZ2VuZXJhdGVMaW5lRHJhd1N0ZXBzPWZ1bmN0aW9uKCl7dmFyIHQ9W107aWYodGhpcy5fYW5pbWF0ZU9uTmV4dFJlbmRlcigpKXt2YXIgZT10aGlzLl9nZW5lcmF0ZUxpbmVBdHRyVG9Qcm9qZWN0b3IoKTtlLmQ9dGhpcy5fY29uc3RydWN0TGluZVByb2plY3RvcihXRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpLHRoaXMuX2dldFJlc2V0WUZ1bmN0aW9uKCkpLHQucHVzaCh7YXR0clRvUHJvamVjdG9yOmUsYW5pbWF0b3I6dGhpcy5fZ2V0QW5pbWF0b3IoR0V0LkFuaW1hdG9yLlJFU0VUKX0pfXJldHVybiB0LnB1c2goe2F0dHJUb1Byb2plY3Rvcjp0aGlzLl9nZW5lcmF0ZUxpbmVBdHRyVG9Qcm9qZWN0b3IoKSxhbmltYXRvcjp0aGlzLl9nZXRBbmltYXRvcihHRXQuQW5pbWF0b3IuTUFJTil9KSx0fSxlLnByb3RvdHlwZS5fZ2VuZXJhdGVMaW5lQXR0clRvUHJvamVjdG9yPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCk7cmV0dXJuIHQuZD10aGlzLl9jb25zdHJ1Y3RMaW5lUHJvamVjdG9yKFdFdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSksV0V0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueSgpKSksdH0sZS5wcm90b3R5cGUuX2NyZWF0ZURyYXdlcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiBuZXcgVUV0LlByb3h5RHJhd2VyKChmdW5jdGlvbigpe3JldHVybiBuZXcgVkV0LkFyZWFTVkdEcmF3ZXJ9KSwoZnVuY3Rpb24obil7cmV0dXJuIG5ldyBGRXQuQ2FudmFzRHJhd2VyKG4sVkV0Lm1ha2VBcmVhQ2FudmFzRHJhd1N0ZXAoKGZ1bmN0aW9uKCl7dmFyIG49ZS5fY29vcmRpbmF0ZVByb2plY3RvcnMoKSxpPW5bMF0scj1uWzFdLG89blsyXSxhPWUuX2NyZWF0ZURlZmluZWRQcm9qZWN0b3IoaSxyKTtyZXR1cm4gZS5fY3JlYXRlQXJlYUdlbmVyYXRvcihpLHIsbyxhLHQpfSksKGZ1bmN0aW9uKCl7dmFyIG49ZS5fY29vcmRpbmF0ZVByb2plY3RvcnMoKSxpPW5bMF0scj1uWzFdLG89ZS5fY3JlYXRlRGVmaW5lZFByb2plY3RvcihpLHIpO3JldHVybiBlLl9jcmVhdGVUb3BMaW5lR2VuZXJhdG9yKGkscixvLHQpfSkpKX0pKX0sZS5wcm90b3R5cGUuX2dlbmVyYXRlRHJhd1N0ZXBzPWZ1bmN0aW9uKCl7dmFyIHQ9W107aWYodGhpcy5fYW5pbWF0ZU9uTmV4dFJlbmRlcigpKXt2YXIgZT10aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKTtlLmQ9dGhpcy5fY29uc3RydWN0QXJlYVByb2plY3RvcihXRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpLHRoaXMuX2dldFJlc2V0WUZ1bmN0aW9uKCksV0V0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueTAoKSkpLHQucHVzaCh7YXR0clRvUHJvamVjdG9yOmUsYW5pbWF0b3I6dGhpcy5fZ2V0QW5pbWF0b3IoR0V0LkFuaW1hdG9yLlJFU0VUKX0pfXJldHVybiB0LnB1c2goe2F0dHJUb1Byb2plY3Rvcjp0aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxhbmltYXRvcjp0aGlzLl9nZXRBbmltYXRvcihHRXQuQW5pbWF0b3IuTUFJTil9KSx0fSxlLnByb3RvdHlwZS5fdXBkYXRlWVNjYWxlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nZXRFeHRlbnRzRm9yUHJvcGVydHkoInkwIiksZT1IRXQuQXJyYXkuZmxhdHRlbih0KSxuPUhFdC5BcnJheS51bmlxKGUpLGk9MT09PW4ubGVuZ3RoP25bMF06bnVsbCxyPXRoaXMueSgpLG89ciYmci5zY2FsZTtudWxsIT1vJiYobnVsbCE9dGhpcy5fY29uc3RhbnRCYXNlbGluZVZhbHVlUHJvdmlkZXImJihvLnJlbW92ZVBhZGRpbmdFeGNlcHRpb25zUHJvdmlkZXIodGhpcy5fY29uc3RhbnRCYXNlbGluZVZhbHVlUHJvdmlkZXIpLHRoaXMuX2NvbnN0YW50QmFzZWxpbmVWYWx1ZVByb3ZpZGVyPW51bGwpLG51bGwhPWkmJih0aGlzLl9jb25zdGFudEJhc2VsaW5lVmFsdWVQcm92aWRlcj1mdW5jdGlvbigpe3JldHVybltpXX0sby5hZGRQYWRkaW5nRXhjZXB0aW9uc1Byb3ZpZGVyKHRoaXMuX2NvbnN0YW50QmFzZWxpbmVWYWx1ZVByb3ZpZGVyKSkpfSxlLnByb3RvdHlwZS5fZ2V0UmVzZXRZRnVuY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4gV0V0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueTAoKSl9LGUucHJvdG90eXBlLl9jb29yZGluYXRlUHJvamVjdG9ycz1mdW5jdGlvbigpe3JldHVybltXRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpLFdFdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSksV0V0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueTAoKSldfSxlLnByb3RvdHlwZS5fcHJvcGVydHlQcm9qZWN0b3JzPWZ1bmN0aW9uKCl7dmFyIGU9dC5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycy5jYWxsKHRoaXMpLG49dGhpcy5fY29vcmRpbmF0ZVByb2plY3RvcnMoKTtyZXR1cm4gZS5kPXRoaXMuX2NvbnN0cnVjdEFyZWFQcm9qZWN0b3IoblswXSxuWzFdLG5bMl0pLGV9LGUucHJvdG90eXBlLnNlbGVjdGlvbnM9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztpZih2b2lkIDA9PT1lJiYoZT10aGlzLmRhdGFzZXRzKCkpLCJjYW52YXMiPT09dGhpcy5yZW5kZXJlcigpKXJldHVybiBERXQuc2VsZWN0QWxsKCk7dmFyIGk9dC5wcm90b3R5cGUuc2VsZWN0aW9ucy5jYWxsKHRoaXMsZSkubm9kZXMoKTtyZXR1cm4gZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBuLl9saW5lRHJhd2Vycy5nZXQodCl9KSkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dH0pKS5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gaS5wdXNoLmFwcGx5KGksdC5nZXRWaXN1YWxQcmltaXRpdmVzKCkpfSkpLERFdC5zZWxlY3RBbGwoaSl9LGUucHJvdG90eXBlLl9jb25zdHJ1Y3RBcmVhUHJvamVjdG9yPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzLHI9dGhpcy5fY3JlYXRlRGVmaW5lZFByb2plY3RvcihXRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpLFdFdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSkpO3JldHVybiBmdW5jdGlvbihvLGEscyl7cmV0dXJuIGkuX2NyZWF0ZUFyZWFHZW5lcmF0b3IodCxlLG4scixzKShvKX19LGUucHJvdG90eXBlLl9jcmVhdGVEZWZpbmVkUHJvamVjdG9yPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4saSxyKXt2YXIgbz10KG4saSxyKSxhPWUobixpLHIpO3JldHVybiBIRXQuTWF0aC5pc1ZhbGlkTnVtYmVyKG8pJiZIRXQuTWF0aC5pc1ZhbGlkTnVtYmVyKGEpfX0sZS5wcm90b3R5cGUuX2NyZWF0ZUFyZWFHZW5lcmF0b3I9ZnVuY3Rpb24odCxlLG4saSxyKXt2YXIgbz10aGlzLl9nZXRDdXJ2ZUZhY3RvcnkoKTtyZXR1cm4gREV0LmFyZWEoKS54KChmdW5jdGlvbihlLG4pe3JldHVybiB0KGUsbixyKX0pKS55MSgoZnVuY3Rpb24odCxuKXtyZXR1cm4gZSh0LG4scil9KSkueTAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odCxlLHIpfSkpLmN1cnZlKG8pLmRlZmluZWQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGkodCxlLHIpfSkpfSxlLnByb3RvdHlwZS5fY3JlYXRlVG9wTGluZUdlbmVyYXRvcj1mdW5jdGlvbih0LGUsbixpKXt2YXIgcj10aGlzLl9nZXRDdXJ2ZUZhY3RvcnkoKTtyZXR1cm4gREV0LmxpbmUoKS54KChmdW5jdGlvbihlLG4pe3JldHVybiB0KGUsbixpKX0pKS55KChmdW5jdGlvbih0LG4pe3JldHVybiBlKHQsbixpKX0pKS5jdXJ2ZShyKS5kZWZpbmVkKChmdW5jdGlvbih0LGUpe3JldHVybiBuKHQsZSxpKX0pKX0sZS5fWTBfS0VZPSJ5MCIsZX0pKGZFdC5MaW5lKTtwRXQuQXJlYT1xRXQ7dmFyIFlFdD17fTshKGZ1bmN0aW9uKHQpewovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqLwpPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9Qk8sbj13cHQsaT1MZ3Qscj1mZ3Qsbz1wdnQsYT1QTXQscz1HU3QsbD1aTXQsYz1jU3QsdT1YdnQsaD1MYnQsZD1EX3QscD1iZ3QsZj1kRXQsbT1zU3QsZz1tRXQ7dC5CYXJPcmllbnRhdGlvbj1wLm1ha2VFbnVtKFsidmVydGljYWwiLCJob3Jpem9udGFsIl0pLHQuTGFiZWxzUG9zaXRpb249cC5tYWtlRW51bShbInN0YXJ0IiwibWlkZGxlIiwiZW5kIiwib3V0c2lkZSJdKSx0LkJhckFsaWdubWVudD1wLm1ha2VFbnVtKFsic3RhcnQiLCJtaWRkbGUiLCJlbmQiXSk7dmFyIF89KGZ1bmN0aW9uKHApe2Z1bmN0aW9uIGcoZSl7dm9pZCAwPT09ZSYmKGU9InZlcnRpY2FsIik7dmFyIG49cC5jYWxsKHRoaXMpfHx0aGlzO2lmKG4uX2xhYmVsRm9ybWF0dGVyPW8uaWRlbnRpdHkoKSxuLl9sYWJlbHNFbmFibGVkPSExLG4uX2xhYmVsc1Bvc2l0aW9uPXQuTGFiZWxzUG9zaXRpb24uZW5kLG4uX2hpZGVCYXJzSWZBbnlBcmVUb29XaWRlPSEwLG4uX2JhckFsaWdubWVudD0ibWlkZGxlIixuLl9jb21wdXRlQmFyUGl4ZWxUaGlja25lc3M9Yy5tZW1vaXplKHkpLG4uX2ZpeGVkQmFyUGl4ZWxUaGlja25lc3M9ITAsbi5hZGRDbGFzcygiYmFyLXBsb3QiKSwidmVydGljYWwiIT09ZSYmImhvcml6b250YWwiIT09ZSl0aHJvdyBuZXcgRXJyb3IoZSsiIGlzIG5vdCBhIHZhbGlkIG9yaWVudGF0aW9uIGZvciBQbG90cy5CYXIiKTtyZXR1cm4gbi5faXNWZXJ0aWNhbD0idmVydGljYWwiPT09ZSxuLmFuaW1hdG9yKCJiYXNlbGluZSIsbmV3IHIuTnVsbCksbi5hdHRyKCJmaWxsIiwobmV3IHUuQ29sb3IpLnJhbmdlKClbMF0pLG4uYXR0cihnLl9CQVJfVEhJQ0tORVNTX0tFWSwoZnVuY3Rpb24oKXtyZXR1cm4gbi5fYmFyUGl4ZWxUaGlja25lc3MoKX0pKSxuLl9sYWJlbENvbmZpZz1uZXcgZC5NYXAsbi5fYmFzZWxpbmVWYWx1ZVByb3ZpZGVyPWZ1bmN0aW9uKCl7cmV0dXJuW24uYmFzZWxpbmVWYWx1ZSgpXX0sbn1yZXR1cm4gZS5fX2V4dGVuZHMoZyxwKSxnLnByb3RvdHlwZS5jb21wdXRlTGF5b3V0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gcC5wcm90b3R5cGUuY29tcHV0ZUxheW91dC5jYWxsKHRoaXMsdCxlLG4pLHRoaXMuX3VwZGF0ZUV4dGVudHMoKSx0aGlzfSxnLnByb3RvdHlwZS54PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PXQ/cC5wcm90b3R5cGUueC5jYWxsKHRoaXMpOihudWxsPT1lP3AucHJvdG90eXBlLnguY2FsbCh0aGlzLHQpOnAucHJvdG90eXBlLnguY2FsbCh0aGlzLHQsZSksdGhpcy5fdXBkYXRlVGhpY2tuZXNzQXR0cigpLHRoaXMuX3VwZGF0ZUxlbmd0aFNjYWxlKCksdGhpcyl9LGcucHJvdG90eXBlLnk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dD9wLnByb3RvdHlwZS55LmNhbGwodGhpcyk6KG51bGw9PWU/cC5wcm90b3R5cGUueS5jYWxsKHRoaXMsdCk6cC5wcm90b3R5cGUueS5jYWxsKHRoaXMsdCxlKSx0aGlzLl91cGRhdGVMZW5ndGhTY2FsZSgpLHRoaXMpfSxnLnByb3RvdHlwZS5sZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faXNWZXJ0aWNhbD90aGlzLnkoKTp0aGlzLngoKX0sZy5wcm90b3R5cGUucG9zaXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faXNWZXJ0aWNhbD90aGlzLngoKTp0aGlzLnkoKX0sZy5wcm90b3R5cGUuYmFyRW5kPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3Byb3BlcnR5QmluZGluZ3MuZ2V0KGcuX0JBUl9FTkRfS0VZKTt2YXIgZT10aGlzLnBvc2l0aW9uKCk7cmV0dXJuIHRoaXMuX2JpbmRQcm9wZXJ0eShnLl9CQVJfRU5EX0tFWSx0LGUmJmUuc2NhbGUpLHRoaXMuX3VwZGF0ZVRoaWNrbmVzc0F0dHIoKSx0aGlzLl91cGRhdGVMZW5ndGhTY2FsZSgpLHRoaXMucmVuZGVyKCksdGhpc30sZy5wcm90b3R5cGUuYmFyQWxpZ25tZW50PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2JhckFsaWdubWVudDoodGhpcy5fYmFyQWxpZ25tZW50PXQsdGhpcy5fY2xlYXJBdHRyVG9Qcm9qZWN0b3JDYWNoZSgpLHRoaXMucmVuZGVyKCksdGhpcyl9LGcucHJvdG90eXBlLm9yaWVudGF0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2lzVmVydGljYWw/InZlcnRpY2FsIjoiaG9yaXpvbnRhbCJ9LGcucHJvdG90eXBlLl9jcmVhdGVEcmF3ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHMuUHJveHlEcmF3ZXIoKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBsLlJlY3RhbmdsZVNWR0RyYXdlcihnLl9CQVJfQVJFQV9DTEFTUyl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBhLlJlY3RhbmdsZUNhbnZhc0RyYXdlcih0KX0pKX0sZy5wcm90b3R5cGUuX3NldHVwPWZ1bmN0aW9uKCl7cC5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyksdGhpcy5fYmFzZWxpbmU9dGhpcy5fcmVuZGVyQXJlYS5hcHBlbmQoImxpbmUiKS5jbGFzc2VkKCJiYXNlbGluZSIsITApfSxnLnByb3RvdHlwZS5iYXNlbGluZVZhbHVlPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpe2lmKG51bGwhPXRoaXMuX2Jhc2VsaW5lVmFsdWUpcmV0dXJuIHRoaXMuX2Jhc2VsaW5lVmFsdWU7aWYoIXRoaXMuX3Byb2plY3RvcnNSZWFkeSgpKXJldHVybiAwO3ZhciBlPXRoaXMubGVuZ3RoKCkuc2NhbGU7cmV0dXJuIGUmJmUgaW5zdGFuY2VvZiB1LlRpbWU/bmV3IERhdGUoMCk6MH1yZXR1cm4gdGhpcy5fYmFzZWxpbmVWYWx1ZT10LHRoaXMuX3VwZGF0ZUxlbmd0aFNjYWxlKCksdGhpcy5fY2xlYXJBdHRyVG9Qcm9qZWN0b3JDYWNoZSgpLHRoaXMucmVuZGVyKCksdGhpc30sZy5wcm90b3R5cGUuYWRkRGF0YXNldD1mdW5jdGlvbih0KXtyZXR1cm4gcC5wcm90b3R5cGUuYWRkRGF0YXNldC5jYWxsKHRoaXMsdCksdGhpc30sZy5wcm90b3R5cGUuX2FkZERhdGFzZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHAucHJvdG90eXBlLl9hZGREYXRhc2V0LmNhbGwodGhpcyx0KSx0aGlzfSxnLnByb3RvdHlwZS5yZW1vdmVEYXRhc2V0PWZ1bmN0aW9uKHQpe3JldHVybiBwLnByb3RvdHlwZS5yZW1vdmVEYXRhc2V0LmNhbGwodGhpcyx0KSx0aGlzfSxnLnByb3RvdHlwZS5fcmVtb3ZlRGF0YXNldD1mdW5jdGlvbih0KXtyZXR1cm4gcC5wcm90b3R5cGUuX3JlbW92ZURhdGFzZXQuY2FsbCh0aGlzLHQpLHRoaXN9LGcucHJvdG90eXBlLmRhdGFzZXRzPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3AucHJvdG90eXBlLmRhdGFzZXRzLmNhbGwodGhpcyk6KHAucHJvdG90eXBlLmRhdGFzZXRzLmNhbGwodGhpcyx0KSx0aGlzKX0sZy5wcm90b3R5cGUubGFiZWxzRW5hYmxlZD1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsPT10P3RoaXMuX2xhYmVsc0VuYWJsZWQ6KHRoaXMuX2xhYmVsc0VuYWJsZWQ9dCxudWxsIT1lJiYodGhpcy5fbGFiZWxzUG9zaXRpb249ZSksdGhpcy5fY2xlYXJBdHRyVG9Qcm9qZWN0b3JDYWNoZSgpLHRoaXMucmVuZGVyKCksdGhpcyl9LGcucHJvdG90eXBlLmxhYmVsRm9ybWF0dGVyPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2xhYmVsRm9ybWF0dGVyOih0aGlzLl9sYWJlbEZvcm1hdHRlcj10LHRoaXMuX2NsZWFyQXR0clRvUHJvamVjdG9yQ2FjaGUoKSx0aGlzLnJlbmRlcigpLHRoaXMpfSxnLnByb3RvdHlwZS5fY3JlYXRlTm9kZXNGb3JEYXRhc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXAucHJvdG90eXBlLl9jcmVhdGVOb2Rlc0ZvckRhdGFzZXQuY2FsbCh0aGlzLHQpLG49dGhpcy5fcmVuZGVyQXJlYS5hcHBlbmQoImciKS5jbGFzc2VkKGcuX0xBQkVMX0FSRUFfQ0xBU1MsITApLHI9bmV3IGkuU3ZnQ29udGV4dChuLm5vZGUoKSksbz1uZXcgaS5DYWNoZU1lYXN1cmVyKHIpLGE9bmV3IGkuV3JpdGVyKG8scik7cmV0dXJuIHRoaXMuX2xhYmVsQ29uZmlnLnNldCh0LHtsYWJlbEFyZWE6bixtZWFzdXJlcjpvLHdyaXRlcjphfSksZX0sZy5wcm90b3R5cGUuX3JlbW92ZURhdGFzZXROb2Rlcz1mdW5jdGlvbih0KXtwLnByb3RvdHlwZS5fcmVtb3ZlRGF0YXNldE5vZGVzLmNhbGwodGhpcyx0KTt2YXIgZT10aGlzLl9sYWJlbENvbmZpZy5nZXQodCk7bnVsbCE9ZSYmKGUubGFiZWxBcmVhLnJlbW92ZSgpLHRoaXMuX2xhYmVsQ29uZmlnLmRlbGV0ZSh0KSl9LGcucHJvdG90eXBlLmVudGl0eU5lYXJlc3Q9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPWZ1bmN0aW9uKCl7dmFyIG49ZS5faXNWZXJ0aWNhbD9lLl9nZXRFbnRpdHlTdG9yZSgpLmVudGl0eU5lYXJlc3RYKHQpOmUuX2dldEVudGl0eVN0b3JlKCkuZW50aXR5TmVhcmVzdFkodCk7cmV0dXJuIHZvaWQgMD09PW4/dm9pZCAwOmUuX2xpZ2h0d2VpZ2h0UGxvdEVudGl0eVRvUGxvdEVudGl0eShuKX07cmV0dXJuIHRoaXMuX2ZpeGVkQmFyUGl4ZWxUaGlja25lc3M/dGhpcy5fY29tcHV0ZUJhclBpeGVsVGhpY2tuZXNzLmRvTG9ja2VkKG4pOm4oKX0sZy5wcm90b3R5cGUuZW50aXRpZXNBdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49ZnVuY3Rpb24oKXtyZXR1cm4gZS5fZW50aXRpZXNJbnRlcnNlY3RpbmcodC54LHQueSl9O3JldHVybiB0aGlzLl9maXhlZEJhclBpeGVsVGhpY2tuZXNzP3RoaXMuX2NvbXB1dGVCYXJQaXhlbFRoaWNrbmVzcy5kb0xvY2tlZChuKTpuKCl9LGcucHJvdG90eXBlLmVudGl0aWVzSW5Cb3VuZHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPWZ1bmN0aW9uKCl7cmV0dXJuIHAucHJvdG90eXBlLmVudGl0aWVzSW5Cb3VuZHMuY2FsbChlLHQpfTtyZXR1cm4gdGhpcy5fZml4ZWRCYXJQaXhlbFRoaWNrbmVzcz90aGlzLl9jb21wdXRlQmFyUGl4ZWxUaGlja25lc3MuZG9Mb2NrZWQobik6bigpfSxnLnByb3RvdHlwZS5lbnRpdGllc0luWEJvdW5kcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49ZnVuY3Rpb24oKXtyZXR1cm4gcC5wcm90b3R5cGUuZW50aXRpZXNJblhCb3VuZHMuY2FsbChlLHQpfTtyZXR1cm4gdGhpcy5fZml4ZWRCYXJQaXhlbFRoaWNrbmVzcz90aGlzLl9jb21wdXRlQmFyUGl4ZWxUaGlja25lc3MuZG9Mb2NrZWQobik6bigpfSxnLnByb3RvdHlwZS5lbnRpdGllc0luWUJvdW5kcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49ZnVuY3Rpb24oKXtyZXR1cm4gcC5wcm90b3R5cGUuZW50aXRpZXNJbllCb3VuZHMuY2FsbChlLHQpfTtyZXR1cm4gdGhpcy5fZml4ZWRCYXJQaXhlbFRoaWNrbmVzcz90aGlzLl9jb21wdXRlQmFyUGl4ZWxUaGlja25lc3MuZG9Mb2NrZWQobik6bigpfSxnLnByb3RvdHlwZS5fZW50aXRpZXNJbnRlcnNlY3Rpbmc9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49W10saT10aGlzLl9nZXRFbnRpdHlTdG9yZSgpLmVudGl0aWVzKCkscj1pLmxlbmd0aCxvPTA7bzxyO28rKyl7dmFyIGE9aVtvXTtkLkRPTS5pbnRlcnNlY3RzQkJveCh0LGUsdGhpcy5fZW50aXR5Qm91bmRzKGEpKSYmbi5wdXNoKHRoaXMuX2xpZ2h0d2VpZ2h0UGxvdEVudGl0eVRvUGxvdEVudGl0eShhKSl9cmV0dXJuIG59LGcucHJvdG90eXBlLl91cGRhdGVMZW5ndGhTY2FsZT1mdW5jdGlvbigpe2lmKHRoaXMuX3Byb2plY3RvcnNSZWFkeSgpKXt2YXIgdD10aGlzLmxlbmd0aCgpLnNjYWxlO3QgaW5zdGFuY2VvZiBoLlF1YW50aXRhdGl2ZVNjYWxlJiYodC5hZGRQYWRkaW5nRXhjZXB0aW9uc1Byb3ZpZGVyKHRoaXMuX2Jhc2VsaW5lVmFsdWVQcm92aWRlciksdC5hZGRJbmNsdWRlZFZhbHVlc1Byb3ZpZGVyKHRoaXMuX2Jhc2VsaW5lVmFsdWVQcm92aWRlcikpfX0sZy5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHk9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9iYXJQaXhlbFRoaWNrbmVzcygpLHRoaXMuX2NvbXB1dGVCYXJQaXhlbFRoaWNrbmVzcy5kb0xvY2tlZCgoZnVuY3Rpb24oKXtyZXR1cm4gcC5wcm90b3R5cGUucmVuZGVySW1tZWRpYXRlbHkuY2FsbCh0KX0pKX0sZy5wcm90b3R5cGUuX2FkZGl0aW9uYWxQYWludD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49dGhpcy5sZW5ndGgoKS5zY2FsZS5zY2FsZSh0aGlzLmJhc2VsaW5lVmFsdWUoKSksaT17eDE6dGhpcy5faXNWZXJ0aWNhbD8wOm4seTE6dGhpcy5faXNWZXJ0aWNhbD9uOjAseDI6dGhpcy5faXNWZXJ0aWNhbD90aGlzLndpZHRoKCk6bix5Mjp0aGlzLl9pc1ZlcnRpY2FsP246dGhpcy5oZWlnaHQoKX07dGhpcy5fZ2V0QW5pbWF0b3IoImJhc2VsaW5lIikuYW5pbWF0ZSh0aGlzLl9iYXNlbGluZSxpKSx0aGlzLmRhdGFzZXRzKCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX2xhYmVsQ29uZmlnLmdldCh0KS5sYWJlbEFyZWEuc2VsZWN0QWxsKCJnIikucmVtb3ZlKCl9KSksdGhpcy5fbGFiZWxzRW5hYmxlZCYmZC5XaW5kb3cuc2V0VGltZW91dCgoZnVuY3Rpb24oKXtyZXR1cm4gZS5fZHJhd0xhYmVscygpfSksdCl9LGcucHJvdG90eXBlLmdldEV4dGVudHNGb3JQcm9wZXJ0eT1mdW5jdGlvbih0KXt2YXIgZSxpPXRoaXMscj1wLnByb3RvdHlwZS5nZXRFeHRlbnRzRm9yUHJvcGVydHkuY2FsbCh0aGlzLHQpO2lmKCJ4Ij09PXQmJnRoaXMuX2lzVmVydGljYWwpZT10aGlzLngoKTtlbHNle2lmKCJ5IiE9PXR8fHRoaXMuX2lzVmVydGljYWwpcmV0dXJuIHI7ZT10aGlzLnkoKX1pZighKGUmJmUuc2NhbGUmJmUuc2NhbGUgaW5zdGFuY2VvZiBoLlF1YW50aXRhdGl2ZVNjYWxlKSlyZXR1cm4gcjt2YXIgbz1lLnNjYWxlLGE9dGhpcy5fYmFyUGl4ZWxUaGlja25lc3MoKTtyZXR1cm4gcj1yLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIG4uZXh0ZW50KFtvLmludmVydChpLl9nZXRQb3NpdGlvbkF0dHIoby5zY2FsZSh0WzBdKSxhKSksby5pbnZlcnQoaS5fZ2V0UG9zaXRpb25BdHRyKG8uc2NhbGUodFswXSksYSkrYSksby5pbnZlcnQoaS5fZ2V0UG9zaXRpb25BdHRyKG8uc2NhbGUodFsxXSksYSkpLG8uaW52ZXJ0KGkuX2dldFBvc2l0aW9uQXR0cihvLnNjYWxlKHRbMV0pLGEpK2EpXSl9KSl9LGcucHJvdG90eXBlLl9nZXRQb3NpdGlvbkF0dHI9ZnVuY3Rpb24odCxlKXtzd2l0Y2godGhpcy5faXNWZXJ0aWNhbHx8KHQtPWUsZSo9LTEpLHRoaXMuX2JhckFsaWdubWVudCl7Y2FzZSJzdGFydCI6cmV0dXJuIHQ7Y2FzZSJlbmQiOnJldHVybiB0LWU7Y2FzZSJtaWRkbGUiOmRlZmF1bHQ6cmV0dXJuIHQtZS8yfX0sZy5wcm90b3R5cGUuX2RyYXdMYWJlbHM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5fZ2V0RGF0YVRvRHJhdygpLG49dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCksaT10aGlzLmRhdGFzZXRzKCkuc29tZSgoZnVuY3Rpb24oaSl7cmV0dXJuIGUuZ2V0KGkpLnNvbWUoKGZ1bmN0aW9uKGUscil7cmV0dXJuIG51bGwhPWUmJnQuX2RyYXdMYWJlbChlLHIsaSxuKX0pKX0pKTt0aGlzLl9oaWRlQmFyc0lmQW55QXJlVG9vV2lkZSYmaSYmdGhpcy5kYXRhc2V0cygpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiB0Ll9sYWJlbENvbmZpZy5nZXQoZSkubGFiZWxBcmVhLnNlbGVjdEFsbCgiZyIpLnJlbW92ZSgpfSkpfSxnLnByb3RvdHlwZS5fZHJhd0xhYmVsPWZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByPXRoaXMuX2xhYmVsQ29uZmlnLmdldChuKSxvPXIubGFiZWxBcmVhLGE9ci5tZWFzdXJlcixzPXIud3JpdGVyLGw9KDAsdGhpcy5sZW5ndGgoKS5hY2Nlc3NvcikodCxlLG4pLGM9dGhpcy5sZW5ndGgoKS5zY2FsZSx1PW51bGwhPWM/Yy5zY2FsZShsKTpsLGg9bnVsbCE9Yz9jLnNjYWxlKHRoaXMuYmFzZWxpbmVWYWx1ZSgpKTp0aGlzLmJhc2VsaW5lVmFsdWUoKSxkPXt4OmkueCh0LGUsbikseTppLnkodCxlLG4pfSxwPXt3aWR0aDppLndpZHRoKHQsZSxuKSxoZWlnaHQ6aS5oZWlnaHQodCxlLG4pfSxmPXRoaXMuX2xhYmVsRm9ybWF0dGVyKGwsdCxlLG4pLG09YS5tZWFzdXJlKGYpLGc9dGhpcy5fc2hvdWxkU2hvd0xhYmVsT25CYXIoZCxwLG0pLF89dGhpcy5fY2FsY3VsYXRlTGFiZWxQcm9wZXJ0aWVzKGQscCxtLGcsdGhpcy5faXNWZXJ0aWNhbD91PD1oOnU8aCkseT1fLmNvbnRhaW5lckRpbWVuc2lvbnMsdj1fLmxhYmVsQ29udGFpbmVyT3JpZ2luLGI9Xy5sYWJlbE9yaWdpbix4PV8uYWxpZ25tZW50LHc9aS5maWxsKHQsZSxuKSxTPXRoaXMuX2NyZWF0ZUxhYmVsQ29udGFpbmVyKG8sdixiLG0sZyx3KTtyZXR1cm4gcy53cml0ZShmLHkud2lkdGgseS5oZWlnaHQse3hBbGlnbjp4LngseUFsaWduOngueX0sUy5ub2RlKCkpLHRoaXMuX2lzVmVydGljYWw/cC53aWR0aDxtLndpZHRoOnAuaGVpZ2h0PG0uaGVpZ2h0fSxnLnByb3RvdHlwZS5fc2hvdWxkU2hvd0xhYmVsT25CYXI9ZnVuY3Rpb24oZSxuLGkpe2lmKHRoaXMuX2xhYmVsc1Bvc2l0aW9uPT09dC5MYWJlbHNQb3NpdGlvbi5vdXRzaWRlKXJldHVybiExO3ZhciByPXRoaXMuX2lzVmVydGljYWw/ZS55OmUueCxvPXRoaXMuX2lzVmVydGljYWw/bi5oZWlnaHQ6bi53aWR0aCxhPXRoaXMuX2lzVmVydGljYWw/dGhpcy5oZWlnaHQoKTp0aGlzLndpZHRoKCkscz1yK28sbD1vO3JldHVybiBzPmE/bD1hLXI6cjwwJiYobD1zKSwodGhpcy5faXNWZXJ0aWNhbD9pLmhlaWdodDppLndpZHRoKStnLl9MQUJFTF9NQVJHSU5fSU5TSURFX0JBUjw9bH0sZy5wcm90b3R5cGUuX2NhbGN1bGF0ZUxhYmVsUHJvcGVydGllcz1mdW5jdGlvbihlLG4saSxyLG8pe3ZhciBhPXRoaXMscz10aGlzLl9pc1ZlcnRpY2FsP2UueTplLngsbD10aGlzLl9pc1ZlcnRpY2FsP24uaGVpZ2h0Om4ud2lkdGgsYz10aGlzLl9pc1ZlcnRpY2FsP2kuaGVpZ2h0Omkud2lkdGgsdT0iY2VudGVyIixoPWwsZD1zLHA9cyxmPWZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlInRvcExlZnQiOnJldHVybiB1PWEuX2lzVmVydGljYWw/InRvcCI6ImxlZnQiLGQrPWcuX0xBQkVMX01BUkdJTl9JTlNJREVfQkFSLHZvaWQocCs9Zy5fTEFCRUxfTUFSR0lOX0lOU0lERV9CQVIpO2Nhc2UiY2VudGVyIjpyZXR1cm4gdm9pZChwKz0obCtjKS8yKTtjYXNlImJvdHRvbVJpZ2h0IjpyZXR1cm4gdT1hLl9pc1ZlcnRpY2FsPyJib3R0b20iOiJyaWdodCIsZC09Zy5fTEFCRUxfTUFSR0lOX0lOU0lERV9CQVIsdm9pZChwKz1oLWcuX0xBQkVMX01BUkdJTl9JTlNJREVfQkFSLWMpfX07aWYocilzd2l0Y2godGhpcy5fbGFiZWxzUG9zaXRpb24pe2Nhc2UgdC5MYWJlbHNQb3NpdGlvbi5zdGFydDpmKG8/ImJvdHRvbVJpZ2h0IjoidG9wTGVmdCIpO2JyZWFrO2Nhc2UgdC5MYWJlbHNQb3NpdGlvbi5taWRkbGU6ZigiY2VudGVyIik7YnJlYWs7Y2FzZSB0LkxhYmVsc1Bvc2l0aW9uLmVuZDpmKG8/InRvcExlZnQiOiJib3R0b21SaWdodCIpfWVsc2Ugbz8odT10aGlzLl9pc1ZlcnRpY2FsPyJ0b3AiOiJsZWZ0IixoPWwrZy5fTEFCRUxfTUFSR0lOX0lOU0lERV9CQVIrYyxkLT1nLl9MQUJFTF9NQVJHSU5fSU5TSURFX0JBUitjLHAtPWcuX0xBQkVMX01BUkdJTl9JTlNJREVfQkFSK2MpOih1PXRoaXMuX2lzVmVydGljYWw/ImJvdHRvbSI6InJpZ2h0IixoPWwrZy5fTEFCRUxfTUFSR0lOX0lOU0lERV9CQVIrYyxwKz1sK2cuX0xBQkVMX01BUkdJTl9JTlNJREVfQkFSKTtyZXR1cm57Y29udGFpbmVyRGltZW5zaW9uczp7d2lkdGg6dGhpcy5faXNWZXJ0aWNhbD9uLndpZHRoOmgsaGVpZ2h0OnRoaXMuX2lzVmVydGljYWw/aDpuLmhlaWdodH0sbGFiZWxDb250YWluZXJPcmlnaW46e3g6dGhpcy5faXNWZXJ0aWNhbD9lLng6ZCx5OnRoaXMuX2lzVmVydGljYWw/ZDplLnl9LGxhYmVsT3JpZ2luOnt4OnRoaXMuX2lzVmVydGljYWw/ZS54K24ud2lkdGgvMi1pLndpZHRoLzI6cCx5OnRoaXMuX2lzVmVydGljYWw/cDplLnkrbi5oZWlnaHQvMi1pLmhlaWdodC8yfSxhbGlnbm1lbnQ6e3g6dGhpcy5faXNWZXJ0aWNhbD8iY2VudGVyIjp1LHk6dGhpcy5faXNWZXJ0aWNhbD91OiJjZW50ZXIifX19LGcucHJvdG90eXBlLl9jcmVhdGVMYWJlbENvbnRhaW5lcj1mdW5jdGlvbih0LGUsbixpLHIsbyl7dmFyIGE9dC5hcHBlbmQoImciKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitlLngrIiwgIitlLnkrIikiKTtpZihyKXthLmNsYXNzZWQoIm9uLWJhci1sYWJlbCIsITApO3ZhciBzPTEuNipkLkNvbG9yLmNvbnRyYXN0KCJ3aGl0ZSIsbyk8ZC5Db2xvci5jb250cmFzdCgiYmxhY2siLG8pO2EuY2xhc3NlZChzPyJkYXJrLWxhYmVsIjoibGlnaHQtbGFiZWwiLCEwKX1lbHNlIGEuY2xhc3NlZCgib2ZmLWJhci1sYWJlbCIsITApO3JldHVybiBhfSxnLnByb3RvdHlwZS5fZ2VuZXJhdGVEcmF3U3RlcHM9ZnVuY3Rpb24oKXt2YXIgdD1bXTtpZih0aGlzLl9hbmltYXRlT25OZXh0UmVuZGVyKCkpe3ZhciBlPXRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpLG49dGhpcy5sZW5ndGgoKS5zY2FsZS5zY2FsZSh0aGlzLmJhc2VsaW5lVmFsdWUoKSksaT10aGlzLl9pc1ZlcnRpY2FsPyJoZWlnaHQiOiJ3aWR0aCI7ZVt0aGlzLl9pc1ZlcnRpY2FsPyJ5IjoieCJdPWZ1bmN0aW9uKCl7cmV0dXJuIG59LGVbaV09ZnVuY3Rpb24oKXtyZXR1cm4gMH0sdC5wdXNoKHthdHRyVG9Qcm9qZWN0b3I6ZSxhbmltYXRvcjp0aGlzLl9nZXRBbmltYXRvcihmLkFuaW1hdG9yLlJFU0VUKX0pfXJldHVybiB0LnB1c2goe2F0dHJUb1Byb2plY3Rvcjp0aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxhbmltYXRvcjp0aGlzLl9nZXRBbmltYXRvcihmLkFuaW1hdG9yLk1BSU4pfSksdH0sZy5wcm90b3R5cGUuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXAucHJvdG90eXBlLl9nZW5lcmF0ZUF0dHJUb1Byb2plY3Rvci5jYWxsKHRoaXMpLG49dGhpcy5sZW5ndGgoKS5zY2FsZS5zY2FsZSh0aGlzLmJhc2VsaW5lVmFsdWUoKSksaT10aGlzLl9pc1ZlcnRpY2FsPyJ5IjoieCIscj10aGlzLl9pc1ZlcnRpY2FsPyJ4IjoieSIsbz1tLlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMucG9zaXRpb24oKSksYT1tLlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMubGVuZ3RoKCkpLHM9ZnVuY3Rpb24odCxlLGkpe3JldHVybiBNYXRoLmFicyhuLWEodCxlLGkpKX0sbD1lW2cuX0JBUl9USElDS05FU1NfS0VZXSxjPWUuZ2FwLHU9bnVsbD09Yz9sOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1sKHQsZSxuKTtyZXR1cm4gaTxnLl9CQVJfR0FQTEVTU19USFJFU0hPTERfUFg/aTppLWModCxlLG4pfTtyZXR1cm4gZS53aWR0aD10aGlzLl9pc1ZlcnRpY2FsP3U6cyxlLmhlaWdodD10aGlzLl9pc1ZlcnRpY2FsP3M6dSxlW2ldPWZ1bmN0aW9uKHQsZSxpKXt2YXIgcj1hKHQsZSxpKTtyZXR1cm4gcj5uP246cn0sZVtyXT1mdW5jdGlvbihlLG4saSl7cmV0dXJuIHQuX2dldFBvc2l0aW9uQXR0cihvKGUsbixpKSxsKGUsbixpKSl9LGV9LGcucHJvdG90eXBlLl91cGRhdGVUaGlja25lc3NBdHRyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMucG9zaXRpb24oKSxuPXRoaXMuYmFyRW5kKCk7bnVsbCE9ZSYmbnVsbCE9bj8odGhpcy5fZml4ZWRCYXJQaXhlbFRoaWNrbmVzcz0hMSx0aGlzLmF0dHIoZy5fQkFSX1RISUNLTkVTU19LRVksKGZ1bmN0aW9uKHQsaSxyKXt2YXIgbz1lLmFjY2Vzc29yKHQsaSxyKSxhPW4uYWNjZXNzb3IodCxpLHIpO3JldHVybiBvPWUuc2NhbGU/ZS5zY2FsZS5zY2FsZShvKTpvLGE9bi5zY2FsZT9uLnNjYWxlLnNjYWxlKGEpOmEsTWF0aC5hYnMoYS1vKX0pKSk6KHRoaXMuX2ZpeGVkQmFyUGl4ZWxUaGlja25lc3M9ITAsdGhpcy5hdHRyKGcuX0JBUl9USElDS05FU1NfS0VZLChmdW5jdGlvbigpe3JldHVybiB0Ll9iYXJQaXhlbFRoaWNrbmVzcygpfSkpKX0sZy5wcm90b3R5cGUuX2JhclBpeGVsVGhpY2tuZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ZpeGVkQmFyUGl4ZWxUaGlja25lc3MmJnRoaXMuX3Byb2plY3RvcnNSZWFkeSgpP3RoaXMuX2NvbXB1dGVCYXJQaXhlbFRoaWNrbmVzcyh0aGlzLnBvc2l0aW9uKCksdGhpcy5kYXRhc2V0cygpLHRoaXMuX2lzVmVydGljYWw/dGhpcy53aWR0aCgpOnRoaXMuaGVpZ2h0KCkpOjB9LGcucHJvdG90eXBlLmVudGl0aWVzPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10JiYodD10aGlzLmRhdGFzZXRzKCkpLHRoaXMuX3Byb2plY3RvcnNSZWFkeSgpP3AucHJvdG90eXBlLmVudGl0aWVzLmNhbGwodGhpcyx0KTpbXX0sZy5wcm90b3R5cGUuX2VudGl0eUJvdW5kcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGl4ZWxCb3VuZHModC5kYXR1bSx0LmluZGV4LHQuZGF0YXNldCl9LGcucHJvdG90eXBlLl9waXhlbEJvdW5kcz1mdW5jdGlvbih0LGUsbil7dmFyIGk9dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCk7cmV0dXJue3g6aS54KHQsZSxuKSx5OmkueSh0LGUsbiksd2lkdGg6aS53aWR0aCh0LGUsbiksaGVpZ2h0OmkuaGVpZ2h0KHQsZSxuKX19LGcucHJvdG90eXBlLl9waXhlbFBvaW50PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzLl9waXhlbEJvdW5kcyh0LGUsbikscj1tLlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMuX2lzVmVydGljYWw/dGhpcy55KCk6dGhpcy54KCkpKHQsZSxuKSxvPSh0aGlzLl9pc1ZlcnRpY2FsP3RoaXMueSgpLnNjYWxlOnRoaXMueCgpLnNjYWxlKS5zY2FsZSh0aGlzLmJhc2VsaW5lVmFsdWUoKSk7cmV0dXJuIHRoaXMuX3BpeGVsUG9pbnRCYXIocixvLGkpfSxnLnByb3RvdHlwZS5fcGl4ZWxQb2ludEJhcj1mdW5jdGlvbih0LGUsbil7dmFyIGkscjtyZXR1cm4gdGhpcy5faXNWZXJ0aWNhbD8oaT1uLngrbi53aWR0aC8yLHI9dDw9ZT9uLnk6bi55K24uaGVpZ2h0KTooaT10Pj1lP24ueCtuLndpZHRoOm4ueCxyPW4ueStuLmhlaWdodC8yKSx7eDppLHk6cn19LGcucHJvdG90eXBlLl91bmluc3RhbGxTY2FsZUZvcktleT1mdW5jdGlvbih0LGUpe3AucHJvdG90eXBlLl91bmluc3RhbGxTY2FsZUZvcktleS5jYWxsKHRoaXMsdCxlKX0sZy5wcm90b3R5cGUuX2dldERhdGFUb0RyYXc9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9bmV3IGQuTWFwLG49dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCksaT10aGlzLndpZHRoKCkscj10aGlzLmhlaWdodCgpO3JldHVybiB0aGlzLmRhdGFzZXRzKCkuZm9yRWFjaCgoZnVuY3Rpb24obyl7dmFyIGE9by5kYXRhKCkubWFwKChmdW5jdGlvbihlLGEpe3JldHVybiB0Ll9pc0RhdHVtT25TY3JlZW4obixpLHIsZSxhLG8pP2U6bnVsbH0pKTtlLnNldChvLGEpfSkpLGV9LGcucHJvdG90eXBlLl9pc0RhdHVtT25TY3JlZW49ZnVuY3Rpb24odCxlLG4saSxyLG8pe3ZhciBhPXQueChpLHIsbykscz10LnkoaSxyLG8pLGw9dC53aWR0aChpLHIsbyksYz10LmhlaWdodChpLHIsbyk7cmV0dXJuISEoZC5NYXRoLmlzVmFsaWROdW1iZXIoYSkmJmQuTWF0aC5pc1ZhbGlkTnVtYmVyKHMpJiZkLk1hdGguaXNWYWxpZE51bWJlcihsKSYmZC5NYXRoLmlzVmFsaWROdW1iZXIoYykpJiZkLk1hdGguYm91bmRzSW50ZXJzZWN0cyhhLHMsbCxjLDAsMCxlLG4pfSxnLnByb3RvdHlwZS5pbnZhbGlkYXRlQ2FjaGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3AucHJvdG90eXBlLmludmFsaWRhdGVDYWNoZS5jYWxsKHRoaXMpLHRoaXMuZGF0YXNldHMoKS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gdC5fbGFiZWxDb25maWcuZ2V0KGUpLm1lYXN1cmVyLnJlc2V0KCl9KSl9LGcuX0JBUl9USElDS05FU1NfUkFUSU89Ljk1LGcuX0JBUl9HQVBMRVNTX1RIUkVTSE9MRF9QWD0zLGcuX1NJTkdMRV9CQVJfRElNRU5TSU9OX1JBVElPPS40LGcuX0JBUl9BUkVBX0NMQVNTPSJiYXItYXJlYSIsZy5fQkFSX0VORF9LRVk9ImJhckVuZCIsZy5fQkFSX1RISUNLTkVTU19LRVk9IndpZHRoIixnLl9MQUJFTF9BUkVBX0NMQVNTPSJiYXItbGFiZWwtdGV4dC1hcmVhIixnLl9MQUJFTF9NQVJHSU5fSU5TSURFX0JBUj0xMCxnfSkoZy5YWVBsb3QpO2Z1bmN0aW9uIHkodCxlLGkpe3ZhciByLG89dC5zY2FsZTtpZihvIGluc3RhbmNlb2YgdS5DYXRlZ29yeSlyPW8ucmFuZ2VCYW5kKCk7ZWxzZXt2YXIgYT10LmFjY2Vzc29yLHM9bi5zZXQoZC5BcnJheS5mbGF0dGVuKGUubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kYXRhKCkubWFwKChmdW5jdGlvbihlLG4pe3JldHVybiBhKGUsbix0KX0pKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10fSkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQudmFsdWVPZigpfSkpfSkpKSkudmFsdWVzKCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4rdH0pKTtzLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQtZX0pKTt2YXIgbD1zLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIG8uc2NhbGUodCl9KSksYz1uLnBhaXJzKGwpO3I9ZC5NYXRoLm1pbihjLChmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLmFicyh0WzFdLXRbMF0pfSksaSpfLl9TSU5HTEVfQkFSX0RJTUVOU0lPTl9SQVRJTykscio9Xy5fQkFSX1RISUNLTkVTU19SQVRJT31yZXR1cm4gcn10LkJhcj1ffSkoWUV0KTt2YXIgWEV0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShYRXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciAkRXQ9Qk8sS0V0PVh2dCxaRXQ9RF90LEpFdD1ZRXQsUUV0PXNTdCx0VHQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dm9pZCAwPT09ZSYmKGU9InZlcnRpY2FsIik7dmFyIG49dC5jYWxsKHRoaXMsZSl8fHRoaXM7cmV0dXJuIG4uX2NsdXN0ZXJPZmZzZXRzPW5ldyBaRXQuTWFwLG59cmV0dXJuICRFdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fZ2VuZXJhdGVBdHRyVG9Qcm9qZWN0b3I9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49dC5wcm90b3R5cGUuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yLmNhbGwodGhpcyksaT10aGlzLl9tYWtlSW5uZXJTY2FsZSgpLHI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gaS5yYW5nZUJhbmQoKX07bi53aWR0aD10aGlzLl9pc1ZlcnRpY2FsP3I6bi53aWR0aCxuLmhlaWdodD10aGlzLl9pc1ZlcnRpY2FsP24uaGVpZ2h0OnI7dmFyIG89bi54LGE9bi55O3JldHVybiBuLng9dGhpcy5faXNWZXJ0aWNhbD9mdW5jdGlvbih0LG4saSl7cmV0dXJuIG8odCxuLGkpK2UuX2NsdXN0ZXJPZmZzZXRzLmdldChpKX06ZnVuY3Rpb24odCxlLG4pe3JldHVybiBvKHQsZSxuKX0sbi55PXRoaXMuX2lzVmVydGljYWw/ZnVuY3Rpb24odCxlLG4pe3JldHVybiBhKHQsZSxuKX06ZnVuY3Rpb24odCxuLGkpe3JldHVybiBhKHQsbixpKStlLl9jbHVzdGVyT2Zmc2V0cy5nZXQoaSl9LG59LGUucHJvdG90eXBlLl91cGRhdGVDbHVzdGVyUG9zaXRpb249ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5fbWFrZUlubmVyU2NhbGUoKTt0aGlzLmRhdGFzZXRzKCkuZm9yRWFjaCgoZnVuY3Rpb24obixpKXtyZXR1cm4gdC5fY2x1c3Rlck9mZnNldHMuc2V0KG4sZS5zY2FsZShTdHJpbmcoaSkpLWUucmFuZ2VCYW5kKCkvMil9KSl9LGUucHJvdG90eXBlLl9tYWtlSW5uZXJTY2FsZT1mdW5jdGlvbigpe3ZhciB0PW5ldyBLRXQuQ2F0ZWdvcnk7dC5kb21haW4odGhpcy5kYXRhc2V0cygpLm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gU3RyaW5nKGUpfSkpKTt2YXIgZT1RRXQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy5hdHRyKEpFdC5CYXIuX0JBUl9USElDS05FU1NfS0VZKSk7cmV0dXJuIHQucmFuZ2UoWzAsZShudWxsLDAsbnVsbCldKSx0fSxlLnByb3RvdHlwZS5fZ2V0RGF0YVRvRHJhdz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl91cGRhdGVDbHVzdGVyUG9zaXRpb24oKSx0LnByb3RvdHlwZS5fZ2V0RGF0YVRvRHJhdy5jYWxsKHRoaXMpfSxlfSkoSkV0LkJhcik7WEV0LkNsdXN0ZXJlZEJhcj10VHQ7dmFyIGVUdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkoZVR0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgblR0PUJPLGlUdD13cHQsclR0PUxndCxvVHQ9Zmd0LGFUdD1wdnQsc1R0PVh2dCxsVHQ9RF90LGNUdD1OTXQsdVR0PU9NdCxoVHQ9R1N0LGRUdD1UeXQscFR0PXNTdCxmVHQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGUuX3N0YXJ0QW5nbGU9MCxlLl9lbmRBbmdsZT0yKk1hdGguUEksZS5fbGFiZWxGb3JtYXR0ZXI9YVR0LmlkZW50aXR5KCksZS5fbGFiZWxzRW5hYmxlZD0hMSxlLmlubmVyUmFkaXVzKDApLGUub3V0ZXJSYWRpdXMoKGZ1bmN0aW9uKCl7dmFyIHQ9ZS5fcGllQ2VudGVyKCk7cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGUud2lkdGgoKS10LngsdC54KSxNYXRoLm1heChlLmhlaWdodCgpLXQueSx0LnkpKX0pKSxlLmFkZENsYXNzKCJwaWUtcGxvdCIpLGUuYXR0cigiZmlsbCIsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIFN0cmluZyhlKX0pLG5ldyBzVHQuQ29sb3IpLGUuX3N0cm9rZURyYXdlcnM9bmV3IGxUdC5NYXAsZX1yZXR1cm4gblR0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLl9zZXR1cD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dC5wcm90b3R5cGUuX3NldHVwLmNhbGwodGhpcyksdGhpcy5fc3Ryb2tlRHJhd2Vycy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdC5hdHRhY2hUbyhlLl9yZW5kZXJBcmVhKX0pKX0sZS5wcm90b3R5cGUuY29tcHV0ZUxheW91dD1mdW5jdGlvbihlLG4saSl7dC5wcm90b3R5cGUuY29tcHV0ZUxheW91dC5jYWxsKHRoaXMsZSxuLGkpO3ZhciByPXRoaXMuX3BpZUNlbnRlcigpO3RoaXMuX3JlbmRlckFyZWEuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrci54KyIsIityLnkrIikiKTt2YXIgbz1NYXRoLm1pbihNYXRoLm1heCh0aGlzLndpZHRoKCktci54LHIueCksTWF0aC5tYXgodGhpcy5oZWlnaHQoKS1yLnksci55KSk7cmV0dXJuIG51bGwhPXRoaXMuaW5uZXJSYWRpdXMoKS5zY2FsZSYmdGhpcy5pbm5lclJhZGl1cygpLnNjYWxlLnJhbmdlKFswLG9dKSxudWxsIT10aGlzLm91dGVyUmFkaXVzKCkuc2NhbGUmJnRoaXMub3V0ZXJSYWRpdXMoKS5zY2FsZS5yYW5nZShbMCxvXSksdGhpc30sZS5wcm90b3R5cGUuYWRkRGF0YXNldD1mdW5jdGlvbihlKXtyZXR1cm4gdC5wcm90b3R5cGUuYWRkRGF0YXNldC5jYWxsKHRoaXMsZSksdGhpc30sZS5wcm90b3R5cGUuX2FkZERhdGFzZXQ9ZnVuY3Rpb24oZSl7aWYoMT09PXRoaXMuZGF0YXNldHMoKS5sZW5ndGgpcmV0dXJuIGxUdC5XaW5kb3cud2FybigiT25seSBvbmUgZGF0YXNldCBpcyBzdXBwb3J0ZWQgaW4gUGllIHBsb3RzIiksdGhpczt0aGlzLl91cGRhdGVQaWVBbmdsZXMoKSx0LnByb3RvdHlwZS5fYWRkRGF0YXNldC5jYWxsKHRoaXMsZSk7dmFyIG49bmV3IHVUdC5BcmNPdXRsaW5lU1ZHRHJhd2VyO3JldHVybiB0aGlzLl9pc1NldHVwJiZuLmF0dGFjaFRvKHRoaXMuX3JlbmRlckFyZWEpLHRoaXMuX3N0cm9rZURyYXdlcnMuc2V0KGUsbiksdGhpc30sZS5wcm90b3R5cGUucmVtb3ZlRGF0YXNldD1mdW5jdGlvbihlKXtyZXR1cm4gdC5wcm90b3R5cGUucmVtb3ZlRGF0YXNldC5jYWxsKHRoaXMsZSksdGhpc30sZS5wcm90b3R5cGUuX3JlbW92ZURhdGFzZXROb2Rlcz1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5fcmVtb3ZlRGF0YXNldE5vZGVzLmNhbGwodGhpcyxlKSx0aGlzLl9zdHJva2VEcmF3ZXJzLmdldChlKS5yZW1vdmUoKX0sZS5wcm90b3R5cGUuX3JlbW92ZURhdGFzZXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHQucHJvdG90eXBlLl9yZW1vdmVEYXRhc2V0LmNhbGwodGhpcyxlKSx0aGlzLl9zdHJva2VEcmF3ZXJzLmRlbGV0ZShlKSx0aGlzLl9zdGFydEFuZ2xlcz1bXSx0aGlzLl9lbmRBbmdsZXM9W10sdGhpc30sZS5wcm90b3R5cGUuc2VsZWN0aW9ucz1mdW5jdGlvbihlKXt2YXIgbj10aGlzO3ZvaWQgMD09PWUmJihlPXRoaXMuZGF0YXNldHMoKSk7dmFyIGk9dC5wcm90b3R5cGUuc2VsZWN0aW9ucy5jYWxsKHRoaXMsZSkubm9kZXMoKTtyZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT1uLl9zdHJva2VEcmF3ZXJzLmdldCh0KTtudWxsIT1lJiZpLnB1c2guYXBwbHkoaSxlLmdldFZpc3VhbFByaW1pdGl2ZXMoKSl9KSksaVR0LnNlbGVjdEFsbChpKX0sZS5wcm90b3R5cGUuX29uRGF0YXNldFVwZGF0ZT1mdW5jdGlvbigpe3QucHJvdG90eXBlLl9vbkRhdGFzZXRVcGRhdGUuY2FsbCh0aGlzKSx0aGlzLl91cGRhdGVQaWVBbmdsZXMoKSx0aGlzLnJlbmRlcigpfSxlLnByb3RvdHlwZS5fY3JlYXRlRHJhd2VyPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBoVHQuUHJveHlEcmF3ZXIoKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBjVHQuQXJjU1ZHRHJhd2VyfSksKGZ1bmN0aW9uKCl7cmV0dXJuIGRUdC53YXJuKCJjYW52YXMgcmVuZGVyZXIgaXMgbm90IHN1cHBvcnRlZCBvbiBQaWUgUGxvdCEiKSxudWxsfSkpfSxlLnByb3RvdHlwZS5lbnRpdGllcz1mdW5jdGlvbihlKXt2YXIgbj10aGlzO3JldHVybiB2b2lkIDA9PT1lJiYoZT10aGlzLmRhdGFzZXRzKCkpLHQucHJvdG90eXBlLmVudGl0aWVzLmNhbGwodGhpcyxlKS5tYXAoKGZ1bmN0aW9uKHQpe3QucG9zaXRpb24ueCs9bi53aWR0aCgpLzIsdC5wb3NpdGlvbi55Kz1uLmhlaWdodCgpLzI7dmFyIGU9aVR0LnNlbGVjdChuLl9zdHJva2VEcmF3ZXJzLmdldCh0LmRhdGFzZXQpLmdldFZpc3VhbFByaW1pdGl2ZUF0SW5kZXgodC5pbmRleCkpLGk9dDtyZXR1cm4gaS5zdHJva2VTZWxlY3Rpb249ZSxpfSkpfSxlLnByb3RvdHlwZS5zZWN0b3JWYWx1ZT1mdW5jdGlvbih0LG4pe3JldHVybiBudWxsPT10P3RoaXMuX3Byb3BlcnR5QmluZGluZ3MuZ2V0KGUuX1NFQ1RPUl9WQUxVRV9LRVkpOih0aGlzLl9iaW5kUHJvcGVydHkoZS5fU0VDVE9SX1ZBTFVFX0tFWSx0LG4pLHRoaXMuX3VwZGF0ZVBpZUFuZ2xlcygpLHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLmlubmVyUmFkaXVzPWZ1bmN0aW9uKHQsbil7cmV0dXJuIG51bGw9PXQ/dGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQoZS5fSU5ORVJfUkFESVVTX0tFWSk6KHRoaXMuX2JpbmRQcm9wZXJ0eShlLl9JTk5FUl9SQURJVVNfS0VZLHQsbiksdGhpcy5yZW5kZXIoKSx0aGlzKX0sZS5wcm90b3R5cGUub3V0ZXJSYWRpdXM9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbnVsbD09dD90aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmdldChlLl9PVVRFUl9SQURJVVNfS0VZKToodGhpcy5fYmluZFByb3BlcnR5KGUuX09VVEVSX1JBRElVU19LRVksdCxuKSx0aGlzLnJlbmRlcigpLHRoaXMpfSxlLnByb3RvdHlwZS5zdGFydEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX3N0YXJ0QW5nbGU6KHRoaXMuX3N0YXJ0QW5nbGU9dCx0aGlzLl91cGRhdGVQaWVBbmdsZXMoKSx0aGlzLnJlbmRlcigpLHRoaXMpfSxlLnByb3RvdHlwZS5lbmRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9lbmRBbmdsZToodGhpcy5fZW5kQW5nbGU9dCx0aGlzLl91cGRhdGVQaWVBbmdsZXMoKSx0aGlzLnJlbmRlcigpLHRoaXMpfSxlLnByb3RvdHlwZS5sYWJlbHNFbmFibGVkPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2xhYmVsc0VuYWJsZWQ6KHRoaXMuX2xhYmVsc0VuYWJsZWQ9dCx0aGlzLnJlbmRlcigpLHRoaXMpfSxlLnByb3RvdHlwZS5sYWJlbEZvcm1hdHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9sYWJlbEZvcm1hdHRlcjoodGhpcy5fbGFiZWxGb3JtYXR0ZXI9dCx0aGlzLnJlbmRlcigpLHRoaXMpfSxlLnByb3RvdHlwZS5lbnRpdGllc0F0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMud2lkdGgoKS8yLG49dGhpcy5oZWlnaHQoKS8yLGk9dGhpcy5fc2xpY2VJbmRleEZvclBvaW50KHt4OnQueC1lLHk6dC55LW59KTtyZXR1cm4gbnVsbD09aT9bXTpbdGhpcy5lbnRpdGllcygpW2ldXX0sZS5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycz1mdW5jdGlvbigpe3ZhciBlPXRoaXMsbj10LnByb3RvdHlwZS5fcHJvcGVydHlQcm9qZWN0b3JzLmNhbGwodGhpcyksaT1wVHQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy5pbm5lclJhZGl1cygpKSxyPXBUdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLm91dGVyUmFkaXVzKCkpO3JldHVybiBuLmQ9ZnVuY3Rpb24odCxuLG8pe3JldHVybiBpVHQuYXJjKCkuaW5uZXJSYWRpdXMoaSh0LG4sbykpLm91dGVyUmFkaXVzKHIodCxuLG8pKS5zdGFydEFuZ2xlKGUuX3N0YXJ0QW5nbGVzW25dKS5lbmRBbmdsZShlLl9lbmRBbmdsZXNbbl0pKHQsbil9LG59LGUucHJvdG90eXBlLl91cGRhdGVQaWVBbmdsZXM9ZnVuY3Rpb24oKXtpZihudWxsIT10aGlzLnNlY3RvclZhbHVlKCkmJjAhPT10aGlzLmRhdGFzZXRzKCkubGVuZ3RoKXt2YXIgdD1wVHQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy5zZWN0b3JWYWx1ZSgpKSxlPXRoaXMuZGF0YXNldHMoKVswXSxuPXRoaXMuX2dldERhdGFUb0RyYXcoKS5nZXQoZSksaT1pVHQucGllKCkuc29ydChudWxsKS5zdGFydEFuZ2xlKHRoaXMuX3N0YXJ0QW5nbGUpLmVuZEFuZ2xlKHRoaXMuX2VuZEFuZ2xlKS52YWx1ZSgoZnVuY3Rpb24obixpKXtyZXR1cm4gdChuLGksZSl9KSkobik7dGhpcy5fc3RhcnRBbmdsZXM9aS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnN0YXJ0QW5nbGV9KSksdGhpcy5fZW5kQW5nbGVzPWkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5lbmRBbmdsZX0pKX19LGUucHJvdG90eXBlLl9waWVDZW50ZXI9ZnVuY3Rpb24oKXt2YXIgdCxlLG4saSxyPXRoaXMuX3N0YXJ0QW5nbGU8dGhpcy5fZW5kQW5nbGU/dGhpcy5fc3RhcnRBbmdsZTp0aGlzLl9lbmRBbmdsZSxvPXRoaXMuX3N0YXJ0QW5nbGU8dGhpcy5fZW5kQW5nbGU/dGhpcy5fZW5kQW5nbGU6dGhpcy5fc3RhcnRBbmdsZSxhPU1hdGguc2luKHIpLHM9TWF0aC5jb3MociksbD1NYXRoLnNpbihvKSxjPU1hdGguY29zKG8pO3JldHVybiBhPj0wJiZsPj0wP3M+PTAmJmM+PTA/KHQ9cyxlPTAsaT0wLG49bCk6czwwJiZjPDA/KHQ9MCxlPS1jLGk9MCxuPWEpOnM+PTAmJmM8MD8odD1zLGU9LWMsaT0wLG49YSk6czwwJiZjPj0wJiYodD0xLGU9MSxpPTEsbj1NYXRoLm1heChhLGwpKTphPj0wJiZsPDA/cz49MCYmYz49MD8odD1NYXRoLm1heChzLGMpLGU9MSxpPTEsbj0xKTpzPDAmJmM8MD8odD0wLGU9MSxpPS1sLG49YSk6cz49MCYmYzwwPyh0PXMsZT0xLGk9LWwsbj0xKTpzPDAmJmM+PTAmJih0PWMsZT0xLGk9MSxuPWEpOmE8MCYmbD49MD9zPj0wJiZjPj0wPyh0PTEsZT0wLGk9LWEsbj1sKTpzPDAmJmM8MD8odD0xLGU9TWF0aC5tYXgoLXMsLWMpLGk9MSxuPTEpOnM+PTAmJmM8MD8odD0xLGU9LWMsaT0tYSxuPTEpOnM8MCYmYz49MCYmKHQ9MSxlPS1zLGk9MSxuPWwpOmE8MCYmbDwwJiYocz49MCYmYz49MD8odD1jLGU9MCxpPS1hLG49MCk6czwwJiZjPDA/KHQ9MCxlPS1zLGk9LWwsbj0wKTpzPj0wJiZjPDA/KHQ9MSxlPTEsaT1NYXRoLm1heChzLC1jKSxuPTEpOnM8MCYmYz49MCYmKHQ9YyxlPS1zLGk9MSxuPTApKSx7eDppK249PTA/MDppLyhpK24pKnRoaXMud2lkdGgoKSx5OnQrZT09MD8wOnQvKHQrZSkqdGhpcy5oZWlnaHQoKX19LGUucHJvdG90eXBlLl9nZXREYXRhVG9EcmF3PWZ1bmN0aW9uKCl7dmFyIG49dC5wcm90b3R5cGUuX2dldERhdGFUb0RyYXcuY2FsbCh0aGlzKTtpZigwPT09dGhpcy5kYXRhc2V0cygpLmxlbmd0aClyZXR1cm4gbjt2YXIgaT1wVHQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy5zZWN0b3JWYWx1ZSgpKSxyPXRoaXMuZGF0YXNldHMoKVswXSxvPW4uZ2V0KHIpLmZpbHRlcigoZnVuY3Rpb24odCxuKXtyZXR1cm4gZS5faXNWYWxpZERhdGEoaSh0LG4scikpfSkpO3JldHVybiBuLnNldChyLG8pLG59LGUuX2lzVmFsaWREYXRhPWZ1bmN0aW9uKHQpe3JldHVybiBsVHQuTWF0aC5pc1ZhbGlkTnVtYmVyKHQpJiZ0Pj0wfSxlLnByb3RvdHlwZS5fcGl4ZWxQb2ludD1mdW5jdGlvbih0LG4saSl7dmFyIHI9cFR0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMuc2VjdG9yVmFsdWUoKSk7aWYoIWUuX2lzVmFsaWREYXRhKHIodCxuLGkpKSlyZXR1cm57eDpOYU4seTpOYU59O3ZhciBvPShwVHQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy5pbm5lclJhZGl1cygpKSh0LG4saSkrcFR0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMub3V0ZXJSYWRpdXMoKSkodCxuLGkpKS8yLGE9aVR0LnBpZSgpLnNvcnQobnVsbCkudmFsdWUoKGZ1bmN0aW9uKHQsbil7dmFyIG89cih0LG4saSk7cmV0dXJuIGUuX2lzVmFsaWREYXRhKG8pP286MH0pKS5zdGFydEFuZ2xlKHRoaXMuX3N0YXJ0QW5nbGUpLmVuZEFuZ2xlKHRoaXMuX2VuZEFuZ2xlKShpLmRhdGEoKSkscz0oYVtuXS5zdGFydEFuZ2xlK2Fbbl0uZW5kQW5nbGUpLzI7cmV0dXJue3g6bypNYXRoLnNpbihzKSx5Oi1vKk1hdGguY29zKHMpfX0sZS5wcm90b3R5cGUuX2FkZGl0aW9uYWxQYWludD1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX3JlbmRlckFyZWEuc2VsZWN0KCIubGFiZWwtYXJlYSIpLnJlbW92ZSgpLHRoaXMuX2xhYmVsc0VuYWJsZWQmJmxUdC5XaW5kb3cuc2V0VGltZW91dCgoZnVuY3Rpb24oKXtyZXR1cm4gZS5fZHJhd0xhYmVscygpfSksdCk7dmFyIG49dGhpcy5fZ2VuZXJhdGVTdHJva2VEcmF3U3RlcHMoKSxpPXRoaXMuX2dldERhdGFUb0RyYXcoKTt0aGlzLmRhdGFzZXRzKCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIHI9cFR0LlBsb3QuYXBwbHlEcmF3U3RlcHMobix0KTtlLl9zdHJva2VEcmF3ZXJzLmdldCh0KS5kcmF3KGkuZ2V0KHQpLHIpfSkpfSxlLnByb3RvdHlwZS5fZ2VuZXJhdGVTdHJva2VEcmF3U3RlcHM9ZnVuY3Rpb24oKXtyZXR1cm5be2F0dHJUb1Byb2plY3Rvcjp0aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxhbmltYXRvcjpuZXcgb1R0Lk51bGx9XX0sZS5wcm90b3R5cGUuX3NsaWNlSW5kZXhGb3JQb2ludD1mdW5jdGlvbih0KXt2YXIgZSxuPU1hdGguc3FydChNYXRoLnBvdyh0LngsMikrTWF0aC5wb3codC55LDIpKSxpPU1hdGguYWNvcygtdC55L24pO3QueDwwJiYoaT0yKk1hdGguUEktaSk7Zm9yKHZhciByPTA7cjx0aGlzLl9zdGFydEFuZ2xlcy5sZW5ndGg7cisrKWlmKHRoaXMuX3N0YXJ0QW5nbGVzW3JdPGkmJnRoaXMuX2VuZEFuZ2xlc1tyXT5pKXtlPXI7YnJlYWt9aWYodm9pZCAwIT09ZSl7dmFyIG89dGhpcy5kYXRhc2V0cygpWzBdLGE9by5kYXRhKClbZV0scz10aGlzLmlubmVyUmFkaXVzKCkuYWNjZXNzb3IoYSxlLG8pLGw9dGhpcy5vdXRlclJhZGl1cygpLmFjY2Vzc29yKGEsZSxvKTtpZihuPnMmJm48bClyZXR1cm4gZX1yZXR1cm4gbnVsbH0sZS5wcm90b3R5cGUuX2RyYXdMYWJlbHM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcyxlPXRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpLG49dGhpcy5fcmVuZGVyQXJlYS5hcHBlbmQoImciKS5jbGFzc2VkKCJsYWJlbC1hcmVhIiwhMCksaT1uZXcgclR0LlN2Z0NvbnRleHQobi5ub2RlKCkpLHI9bmV3IHJUdC5DYWNoZU1lYXN1cmVyKGkpLG89bmV3IHJUdC5Xcml0ZXIocixpKSxhPXRoaXMuZGF0YXNldHMoKVswXSxzPXRoaXMuX2dldERhdGFUb0RyYXcoKS5nZXQoYSksbD1zLmxlbmd0aCxjPWZ1bmN0aW9uKGkpe3ZhciBsPXNbaV0sYz11LnNlY3RvclZhbHVlKCkuYWNjZXNzb3IobCxpLGEpO2lmKCFsVHQuTWF0aC5pc1ZhbGlkTnVtYmVyKGMpKXJldHVybiJjb250aW51ZSI7Yz11Ll9sYWJlbEZvcm1hdHRlcihjLGwsaSxhKTt2YXIgaD1yLm1lYXN1cmUoYyksZD0odS5fZW5kQW5nbGVzW2ldK3UuX3N0YXJ0QW5nbGVzW2ldKS8yLHA9dS5vdXRlclJhZGl1cygpLmFjY2Vzc29yKGwsaSxhKTt1Lm91dGVyUmFkaXVzKCkuc2NhbGUmJihwPXUub3V0ZXJSYWRpdXMoKS5zY2FsZS5zY2FsZShwKSk7dmFyIGY9dS5pbm5lclJhZGl1cygpLmFjY2Vzc29yKGwsaSxhKTt1LmlubmVyUmFkaXVzKCkuc2NhbGUmJihmPXUuaW5uZXJSYWRpdXMoKS5zY2FsZS5zY2FsZShmKSk7dmFyIG09KHArZikvMixnPU1hdGguc2luKGQpKm0taC53aWR0aC8yLF89LU1hdGguY29zKGQpKm0taC5oZWlnaHQvMix5PVt7eDpnLHk6X30se3g6Zyx5Ol8raC5oZWlnaHR9LHt4OmcraC53aWR0aCx5Ol99LHt4OmcraC53aWR0aCx5Ol8raC5oZWlnaHR9XSx2PXkuZXZlcnkoKGZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLmFicyhlLngpPD10LndpZHRoKCkvMiYmTWF0aC5hYnMoZS55KTw9dC5oZWlnaHQoKS8yfSkpO3YmJih2PXkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdC5fc2xpY2VJbmRleEZvclBvaW50KGUpfSkpLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdD09PWl9KSkpO3ZhciBiPWUuZmlsbChsLGksYSkseD0xLjYqbFR0LkNvbG9yLmNvbnRyYXN0KCJ3aGl0ZSIsYik8bFR0LkNvbG9yLmNvbnRyYXN0KCJibGFjayIsYiksdz1uLmFwcGVuZCgiZyIpLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK2crIiwiK18rIikiKTt3LmNsYXNzZWQoeD8iZGFyay1sYWJlbCI6ImxpZ2h0LWxhYmVsIiwhMCksdy5zdHlsZSgidmlzaWJpbGl0eSIsdj8iaW5oZXJpdCI6ImhpZGRlbiIpLG8ud3JpdGUoYyxoLndpZHRoLGguaGVpZ2h0LHt4QWxpZ246ImNlbnRlciIseUFsaWduOiJjZW50ZXIifSx3Lm5vZGUoKSl9LHU9dGhpcyxoPTA7aDxsO2grKyljKGgpfSxlLl9JTk5FUl9SQURJVVNfS0VZPSJpbm5lci1yYWRpdXMiLGUuX09VVEVSX1JBRElVU19LRVk9Im91dGVyLXJhZGl1cyIsZS5fU0VDVE9SX1ZBTFVFX0tFWT0ic2VjdG9yLXZhbHVlIixlfSkocFR0LlBsb3QpO2VUdC5QaWU9ZlR0O3ZhciBtVHQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KG1UdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGdUdD1CTyxfVHQ9d3B0LHlUdD1MZ3QsdlR0PWZndCxiVHQ9UE10LHhUdD1HU3Qsd1R0PVpNdCxTVHQ9WHZ0LE1UdD1EX3QsRVR0PXNTdCxUVHQ9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGUuX2xhYmVsc0VuYWJsZWQ9ITEsZS5fbGFiZWw9bnVsbCxlLmFuaW1hdG9yKCJyZWN0YW5nbGVzIixuZXcgdlR0Lk51bGwpLGUuYWRkQ2xhc3MoInJlY3RhbmdsZS1wbG90IiksZS5hdHRyKCJmaWxsIiwobmV3IFNUdC5Db2xvcikucmFuZ2UoKVswXSksZX1yZXR1cm4gZ1R0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLl9jcmVhdGVEcmF3ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHhUdC5Qcm94eURyYXdlcigoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHdUdC5SZWN0YW5nbGVTVkdEcmF3ZXJ9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBiVHQuUmVjdGFuZ2xlQ2FudmFzRHJhd2VyKHQpfSkpfSxlLnByb3RvdHlwZS5fZ2VuZXJhdGVBdHRyVG9Qcm9qZWN0b3I9ZnVuY3Rpb24oKXt2YXIgbj10aGlzLGk9dC5wcm90b3R5cGUuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yLmNhbGwodGhpcykscj1FVHQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpLG89aVtlLl9YMl9LRVldLGE9RVR0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueSgpKSxzPWlbZS5fWTJfS0VZXSxsPXRoaXMueCgpLnNjYWxlLGM9dGhpcy55KCkuc2NhbGU7cmV0dXJuIG51bGwhPW8/KGkud2lkdGg9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBNYXRoLmFicyhvKHQsZSxuKS1yKHQsZSxuKSl9LGkueD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIE1hdGgubWluKG8odCxlLG4pLHIodCxlLG4pKX0pOihpLndpZHRoPWZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gbi5fcmVjdGFuZ2xlV2lkdGgobCl9LGkueD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHIodCxlLG4pLS41Kmkud2lkdGgodCxlLG4pfSksbnVsbCE9cz8oaS5oZWlnaHQ9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBNYXRoLmFicyhzKHQsZSxuKS1hKHQsZSxuKSl9LGkueT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIE1hdGgubWF4KHModCxlLG4pLGEodCxlLG4pKS1pLmhlaWdodCh0LGUsbil9KTooaS5oZWlnaHQ9ZnVuY3Rpb24odCxlLGkpe3JldHVybiBuLl9yZWN0YW5nbGVXaWR0aChjKX0saS55PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gYSh0LGUsbiktLjUqaS5oZWlnaHQodCxlLG4pfSksZGVsZXRlIGlbZS5fWDJfS0VZXSxkZWxldGUgaVtlLl9ZMl9LRVldLGl9LGUucHJvdG90eXBlLl9nZW5lcmF0ZURyYXdTdGVwcz1mdW5jdGlvbigpe3JldHVyblt7YXR0clRvUHJvamVjdG9yOnRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpLGFuaW1hdG9yOnRoaXMuX2dldEFuaW1hdG9yKCJyZWN0YW5nbGVzIil9XX0sZS5wcm90b3R5cGUuX2ZpbHRlckZvclByb3BlcnR5PWZ1bmN0aW9uKGUpe3JldHVybiB0LnByb3RvdHlwZS5fZmlsdGVyRm9yUHJvcGVydHkuY2FsbCh0aGlzLCJ4MiI9PT1lPyJ4IjoieTIiPT09ZT8ieSI6ZSl9LGUucHJvdG90eXBlLng9ZnVuY3Rpb24obixpLHIpe2lmKG51bGw9PW4pcmV0dXJuIHQucHJvdG90eXBlLnguY2FsbCh0aGlzKTtpZihudWxsPT1pP3QucHJvdG90eXBlLnguY2FsbCh0aGlzLG4pOnQucHJvdG90eXBlLnguY2FsbCh0aGlzLG4saSxyKSxudWxsIT1pKXt2YXIgbz10aGlzLngyKCksYT1vJiZvLmFjY2Vzc29yO251bGwhPWEmJnRoaXMuX2JpbmRQcm9wZXJ0eShlLl9YMl9LRVksYSxpLG8ucG9zdFNjYWxlKX1yZXR1cm4gaSBpbnN0YW5jZW9mIFNUdC5DYXRlZ29yeSYmaS5pbm5lclBhZGRpbmcoMCkub3V0ZXJQYWRkaW5nKDApLHRoaXN9LGUucHJvdG90eXBlLngyPWZ1bmN0aW9uKHQsbil7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fcHJvcGVydHlCaW5kaW5ncy5nZXQoZS5fWDJfS0VZKTt2YXIgaT10aGlzLngoKTtyZXR1cm4gdGhpcy5fYmluZFByb3BlcnR5KGUuX1gyX0tFWSx0LGkmJmkuc2NhbGUsbiksdGhpcy5yZW5kZXIoKSx0aGlzfSxlLnByb3RvdHlwZS55PWZ1bmN0aW9uKG4saSxyKXtpZihudWxsPT1uKXJldHVybiB0LnByb3RvdHlwZS55LmNhbGwodGhpcyk7aWYobnVsbD09aT90LnByb3RvdHlwZS55LmNhbGwodGhpcyxuKTp0LnByb3RvdHlwZS55LmNhbGwodGhpcyxuLGksciksbnVsbCE9aSl7dmFyIG89dGhpcy55MigpLGE9byYmby5hY2Nlc3NvcjtudWxsIT1hJiZ0aGlzLl9iaW5kUHJvcGVydHkoZS5fWTJfS0VZLGEsaSxvLnBvc3RTY2FsZSl9cmV0dXJuIGkgaW5zdGFuY2VvZiBTVHQuQ2F0ZWdvcnkmJmkuaW5uZXJQYWRkaW5nKDApLm91dGVyUGFkZGluZygwKSx0aGlzfSxlLnByb3RvdHlwZS55Mj1mdW5jdGlvbih0LG4pe2lmKG51bGw9PXQpcmV0dXJuIHRoaXMuX3Byb3BlcnR5QmluZGluZ3MuZ2V0KGUuX1kyX0tFWSk7dmFyIGk9dGhpcy55KCk7cmV0dXJuIHRoaXMuX2JpbmRQcm9wZXJ0eShlLl9ZMl9LRVksdCxpJiZpLnNjYWxlLG4pLHRoaXMucmVuZGVyKCksdGhpc30sZS5wcm90b3R5cGUuZW50aXRpZXNBdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKTtyZXR1cm4gdGhpcy5lbnRpdGllcygpLmZpbHRlcigoZnVuY3Rpb24obil7dmFyIGk9bi5kYXR1bSxyPW4uaW5kZXgsbz1uLmRhdGFzZXQsYT1lLngoaSxyLG8pLHM9ZS55KGkscixvKSxsPWUud2lkdGgoaSxyLG8pLGM9ZS5oZWlnaHQoaSxyLG8pO3JldHVybiBhPD10LngmJnQueDw9YStsJiZzPD10LnkmJnQueTw9cytjfSkpfSxlLnByb3RvdHlwZS5fZW50aXR5Qm91bmRzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9lbnRpdHlCQm94KHQuZGF0dW0sdC5pbmRleCx0LmRhdGFzZXQsdGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCkpfSxlLnByb3RvdHlwZS5fZW50aXR5QkJveD1mdW5jdGlvbih0LGUsbixpKXtyZXR1cm57eDppLngodCxlLG4pLHk6aS55KHQsZSxuKSx3aWR0aDppLndpZHRoKHQsZSxuKSxoZWlnaHQ6aS5oZWlnaHQodCxlLG4pfX0sZS5wcm90b3R5cGUubGFiZWw9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fbGFiZWw6KHRoaXMuX2xhYmVsPXQsdGhpcy5yZW5kZXIoKSx0aGlzKX0sZS5wcm90b3R5cGUubGFiZWxzRW5hYmxlZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9sYWJlbHNFbmFibGVkOih0aGlzLl9sYWJlbHNFbmFibGVkPXQsdGhpcy5yZW5kZXIoKSx0aGlzKX0sZS5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycz1mdW5jdGlvbigpe3ZhciBlPXQucHJvdG90eXBlLl9wcm9wZXJ0eVByb2plY3RvcnMuY2FsbCh0aGlzKTtyZXR1cm4gbnVsbCE9dGhpcy54MigpJiYoZS54Mj1FVHQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54MigpKSksbnVsbCE9dGhpcy55MigpJiYoZS55Mj1FVHQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy55MigpKSksZX0sZS5wcm90b3R5cGUuX3BpeGVsUG9pbnQ9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpLHI9aS54KHQsZSxuKSxvPWkueSh0LGUsbik7cmV0dXJue3g6citpLndpZHRoKHQsZSxuKS8yLHk6bytpLmhlaWdodCh0LGUsbikvMn19LGUucHJvdG90eXBlLl9yZWN0YW5nbGVXaWR0aD1mdW5jdGlvbih0KXtpZih0IGluc3RhbmNlb2YgU1R0LkNhdGVnb3J5KXJldHVybiB0LnJhbmdlQmFuZCgpO3ZhciBlPXQ9PT10aGlzLngoKS5zY2FsZT90aGlzLngoKS5hY2Nlc3Nvcjp0aGlzLnkoKS5hY2Nlc3NvcixuPV9UdC5zZXQoTVR0LkFycmF5LmZsYXR0ZW4odGhpcy5kYXRhc2V0cygpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZGF0YSgpLm1hcCgoZnVuY3Rpb24obixpKXtyZXR1cm4gZShuLGksdCkudmFsdWVPZigpfSkpfSkpKSkudmFsdWVzKCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4rdH0pKSxpPU1UdC5NYXRoLm1pbihuLDApLHI9TVR0Lk1hdGgubWF4KG4sMCksbz10LnNjYWxlKGkpO3JldHVybih0LnNjYWxlKHIpLW8pL01hdGguYWJzKHItaSl9LGUucHJvdG90eXBlLl9nZXREYXRhVG9EcmF3PWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IE1UdC5NYXAsZT10aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKTtyZXR1cm4gdGhpcy5kYXRhc2V0cygpLmZvckVhY2goKGZ1bmN0aW9uKG4pe3ZhciBpPW4uZGF0YSgpLm1hcCgoZnVuY3Rpb24odCxpKXtyZXR1cm4gTVR0Lk1hdGguaXNWYWxpZE51bWJlcihlLngodCxpLG4pKSYmTVR0Lk1hdGguaXNWYWxpZE51bWJlcihlLnkodCxpLG4pKSYmTVR0Lk1hdGguaXNWYWxpZE51bWJlcihlLndpZHRoKHQsaSxuKSkmJk1UdC5NYXRoLmlzVmFsaWROdW1iZXIoZS5oZWlnaHQodCxpLG4pKT90Om51bGx9KSk7dC5zZXQobixpKX0pKSx0fSxlLnByb3RvdHlwZS5fYWRkaXRpb25hbFBhaW50PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5fcmVuZGVyQXJlYS5zZWxlY3RBbGwoIi5sYWJlbC1hcmVhIikucmVtb3ZlKCksdGhpcy5fbGFiZWxzRW5hYmxlZCYmbnVsbCE9dGhpcy5sYWJlbCgpJiZNVHQuV2luZG93LnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX2RyYXdMYWJlbHMoKX0pLHQpfSxlLnByb3RvdHlwZS5fZHJhd0xhYmVscz1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLl9nZXREYXRhVG9EcmF3KCk7dGhpcy5kYXRhc2V0cygpLmZvckVhY2goKGZ1bmN0aW9uKG4saSl7cmV0dXJuIHQuX2RyYXdMYWJlbChlLG4saSl9KSl9LGUucHJvdG90eXBlLl9kcmF3TGFiZWw9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT10aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxyPXRoaXMuX3JlbmRlckFyZWEuYXBwZW5kKCJnIikuY2xhc3NlZCgibGFiZWwtYXJlYSIsITApLG89bmV3IHlUdC5TdmdDb250ZXh0KHIubm9kZSgpKSxhPW5ldyB5VHQuQ2FjaGVNZWFzdXJlcihvKSxzPW5ldyB5VHQuV3JpdGVyKGEsbyksbD10aGlzLngoKS5zY2FsZS5yYW5nZSgpLGM9dGhpcy55KCkuc2NhbGUucmFuZ2UoKSx1PU1hdGgubWluLmFwcGx5KG51bGwsbCksaD1NYXRoLm1heC5hcHBseShudWxsLGwpLGQ9TWF0aC5taW4uYXBwbHkobnVsbCxjKSxwPU1hdGgubWF4LmFwcGx5KG51bGwsYyksZj10LmdldChlKSxtPWYubGVuZ3RoLGc9MDtnPG07ZysrKXt2YXIgXz1mW2ddO2lmKG51bGwhPV8pe3ZhciB5PSIiK3RoaXMubGFiZWwoKShfLGcsZSksdj1hLm1lYXN1cmUoeSksYj1pLngoXyxnLGUpLHg9aS55KF8sZyxlKSx3PWkud2lkdGgoXyxnLGUpLFM9aS5oZWlnaHQoXyxnLGUpO2lmKHYuaGVpZ2h0PD1TJiZ2LndpZHRoPD13KXt2YXIgTT17bWluOmIrPSh3LXYud2lkdGgpLzIsbWF4OmIrdi53aWR0aH0sRT17bWluOngrPShTLXYuaGVpZ2h0KS8yLG1heDp4K3YuaGVpZ2h0fTtpZihNLm1pbjx1fHxNLm1heD5ofHxFLm1pbjxkfHxFLm1heD5wKWNvbnRpbnVlO2lmKHRoaXMuX292ZXJsYXlMYWJlbChNLEUsZyxuLHQpKWNvbnRpbnVlO3ZhciBUPWkuZmlsbChfLGcsZSksQz0xLjYqTVR0LkNvbG9yLmNvbnRyYXN0KCJ3aGl0ZSIsVCk8TVR0LkNvbG9yLmNvbnRyYXN0KCJibGFjayIsVCksQT1yLmFwcGVuZCgiZyIpLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK2IrIiwiK3grIikiKTtBLmNsYXNzZWQoQz8iZGFyay1sYWJlbCI6ImxpZ2h0LWxhYmVsIiwhMCkscy53cml0ZSh5LHYud2lkdGgsdi5oZWlnaHQse3hBbGlnbjoiY2VudGVyIix5QWxpZ246ImNlbnRlciJ9LEEubm9kZSgpKX19fX0sZS5wcm90b3R5cGUuX292ZXJsYXlMYWJlbD1mdW5jdGlvbih0LGUsbixpLHIpe2Zvcih2YXIgbz10aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxhPXRoaXMuZGF0YXNldHMoKSxzPWk7czxhLmxlbmd0aDtzKyspZm9yKHZhciBsPWFbc10sYz1yLmdldChsKSx1PWMubGVuZ3RoLGg9cz09PWk/bisxOjA7aDx1O2grKylpZihNVHQuRE9NLmludGVyc2VjdHNCQm94KHQsZSx0aGlzLl9lbnRpdHlCQm94KGNbaF0saCxsLG8pKSlyZXR1cm4hMDtyZXR1cm4hMX0sZS5fWDJfS0VZPSJ4MiIsZS5fWTJfS0VZPSJ5MiIsZX0pKG1FdC5YWVBsb3QpO21UdC5SZWN0YW5nbGU9VFR0O3ZhciBDVHQ9e307Ci8qKgogICAgICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCBQYWxhbnRpciBUZWNobm9sb2dpZXMKICAgICAqIEBsaWNlbnNlIE1JVAogICAgICovT2JqZWN0LmRlZmluZVByb3BlcnR5KENUdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEFUdD1CTyxrVHQ9TGd0LExUdD1wdnQsUFR0PUh3dCxOVHQ9R1N0LElUdD1lRXQsUlR0PWZndCxPVHQ9UE10LHpUdD1YdnQsRFR0PURfdCxCVHQ9ZEV0LEhUdD1zU3QsRlR0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9dC5jYWxsKHRoaXMpfHx0aGlzO2UuX2xhYmVsRm9ybWF0dGVyPUxUdC5pZGVudGl0eSgpLGUuX2xhYmVsc0VuYWJsZWQ9ITEsZS5hZGRDbGFzcygic2NhdHRlci1wbG90Iik7dmFyIG49bmV3IFJUdC5FYXNpbmc7bi5zdGFydERlbGF5KDUpLG4uc3RlcER1cmF0aW9uKDI1MCksbi5tYXhUb3RhbER1cmF0aW9uKEhUdC5QbG90Ll9BTklNQVRJT05fTUFYX0RVUkFUSU9OKSxlLmFuaW1hdG9yKEJUdC5BbmltYXRvci5NQUlOLG4pLGUuYXR0cigib3BhY2l0eSIsLjYpLGUuYXR0cigiZmlsbCIsKG5ldyB6VHQuQ29sb3IpLnJhbmdlKClbMF0pLGUuc2l6ZSg2KTt2YXIgaT1QVHQuY2lyY2xlKCk7cmV0dXJuIGUuc3ltYm9sKChmdW5jdGlvbigpe3JldHVybiBpfSkpLGUuX2xhYmVsQ29uZmlnPW5ldyBEVHQuTWFwLGV9cmV0dXJuIEFUdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5fYnVpbGRMaWdodHdlaWdodFBsb3RFbnRpdGllcz1mdW5jdGlvbihlKXt2YXIgbj10aGlzO3JldHVybiB0LnByb3RvdHlwZS5fYnVpbGRMaWdodHdlaWdodFBsb3RFbnRpdGllcy5jYWxsKHRoaXMsZSkubWFwKChmdW5jdGlvbih0KXt2YXIgZT1IVHQuUGxvdC5fc2NhbGVkQWNjZXNzb3Iobi5zaXplKCkpKHQuZGF0dW0sdC5pbmRleCx0LmRhdGFzZXQpO3JldHVybiB0LmRpYW1ldGVyPWUsdH0pKX0sZS5wcm90b3R5cGUuX2NyZWF0ZURyYXdlcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiBuZXcgTlR0LlByb3h5RHJhd2VyKChmdW5jdGlvbigpe3JldHVybiBuZXcgSVR0LlN5bWJvbFNWR0RyYXdlcn0pLChmdW5jdGlvbihuKXtyZXR1cm4gbmV3IE9UdC5DYW52YXNEcmF3ZXIobixJVHQubWFrZVN5bWJvbENhbnZhc0RyYXdTdGVwKHQsKGZ1bmN0aW9uKCl7cmV0dXJuIEhUdC5QbG90Ll9zY2FsZWRBY2Nlc3NvcihlLnN5bWJvbCgpKX0pLChmdW5jdGlvbigpe3JldHVybiBIVHQuUGxvdC5fc2NhbGVkQWNjZXNzb3IoZS5zaXplKCkpfSkpKX0pKX0sZS5wcm90b3R5cGUuc2l6ZT1mdW5jdGlvbih0LG4pe3JldHVybiBudWxsPT10P3RoaXMuX3Byb3BlcnR5QmluZGluZ3MuZ2V0KGUuX1NJWkVfS0VZKToodGhpcy5fYmluZFByb3BlcnR5KGUuX1NJWkVfS0VZLHQsbiksdGhpcy5yZW5kZXIoKSx0aGlzKX0sZS5wcm90b3R5cGUuc3ltYm9sPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX3Byb3BlcnR5QmluZGluZ3MuZ2V0KGUuX1NZTUJPTF9LRVkpOih0aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLnNldChlLl9TWU1CT0xfS0VZLHthY2Nlc3Nvcjp0fSksdGhpcy5yZW5kZXIoKSx0aGlzKX0sZS5wcm90b3R5cGUuX2dlbmVyYXRlRHJhd1N0ZXBzPWZ1bmN0aW9uKCl7dmFyIHQ9W107aWYodGhpcy5fYW5pbWF0ZU9uTmV4dFJlbmRlcigpKXt2YXIgZT10aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxuPUhUdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnN5bWJvbCgpKTtlLmQ9ZnVuY3Rpb24odCxlLGkpe3JldHVybiBuKHQsZSxpKSgwKShudWxsKX0sdC5wdXNoKHthdHRyVG9Qcm9qZWN0b3I6ZSxhbmltYXRvcjp0aGlzLl9nZXRBbmltYXRvcihCVHQuQW5pbWF0b3IuUkVTRVQpfSl9cmV0dXJuIHQucHVzaCh7YXR0clRvUHJvamVjdG9yOnRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpLGFuaW1hdG9yOnRoaXMuX2dldEFuaW1hdG9yKEJUdC5BbmltYXRvci5NQUlOKX0pLHR9LGUucHJvdG90eXBlLl9wcm9wZXJ0eVByb2plY3RvcnM9ZnVuY3Rpb24oKXt2YXIgZT10LnByb3RvdHlwZS5fcHJvcGVydHlQcm9qZWN0b3JzLmNhbGwodGhpcyksbj1IVHQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54KCkpLGk9SFR0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueSgpKTtyZXR1cm4gZS54PW4sZS55PWksZS50cmFuc2Zvcm09ZnVuY3Rpb24odCxlLHIpe3JldHVybiJ0cmFuc2xhdGUoIituKHQsZSxyKSsiLCIraSh0LGUscikrIikifSxlLmQ9dGhpcy5fY29uc3RydWN0U3ltYm9sR2VuZXJhdG9yKCksZX0sZS5wcm90b3R5cGUuX2NvbnN0cnVjdFN5bWJvbEdlbmVyYXRvcj1mdW5jdGlvbigpe3ZhciB0PUhUdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnN5bWJvbCgpKSxlPUhUdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnNpemUoKSk7cmV0dXJuIGZ1bmN0aW9uKG4saSxyKXtyZXR1cm4gdChuLGkscikoZShuLGkscikpKG51bGwpfX0sZS5wcm90b3R5cGUuX2VudGl0eUJvdW5kcz1mdW5jdGlvbih0KXtyZXR1cm57eDp0LnBvc2l0aW9uLngtdC5kaWFtZXRlci8yLHk6dC5wb3NpdGlvbi55LXQuZGlhbWV0ZXIvMix3aWR0aDp0LmRpYW1ldGVyLGhlaWdodDp0LmRpYW1ldGVyfX0sZS5wcm90b3R5cGUuX2VudGl0eVZpc2libGVPblBsb3Q9ZnVuY3Rpb24odCxlKXt2YXIgbj17bWluOmUudG9wTGVmdC54LG1heDplLmJvdHRvbVJpZ2h0Lnh9LGk9e21pbjplLnRvcExlZnQueSxtYXg6ZS5ib3R0b21SaWdodC55fSxyPXRoaXMuX2VudGl0eUJvdW5kcyh0KTtyZXR1cm4gRFR0LkRPTS5pbnRlcnNlY3RzQkJveChuLGkscil9LGUucHJvdG90eXBlLmVudGl0aWVzQXQ9ZnVuY3Rpb24odCl7dmFyIGU9SFR0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKSxuPUhUdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSksaT1IVHQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy5zaXplKCkpO3JldHVybiB0aGlzLmVudGl0aWVzKCkuZmlsdGVyKChmdW5jdGlvbihyKXt2YXIgbz1yLmRhdHVtLGE9ci5pbmRleCxzPXIuZGF0YXNldCxsPWUobyxhLHMpLGM9bihvLGEscyksdT1pKG8sYSxzKTtyZXR1cm4gbC11LzI8PXQueCYmdC54PD1sK3UvMiYmYy11LzI8PXQueSYmdC55PD1jK3UvMn0pKX0sZS5wcm90b3R5cGUubGFiZWxzRW5hYmxlZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9sYWJlbHNFbmFibGVkOih0aGlzLl9sYWJlbHNFbmFibGVkPXQsdGhpcy5fY2xlYXJBdHRyVG9Qcm9qZWN0b3JDYWNoZSgpLHRoaXMucmVuZGVyKCksdGhpcyl9LGUucHJvdG90eXBlLl9jcmVhdGVOb2Rlc0ZvckRhdGFzZXQ9ZnVuY3Rpb24obil7dmFyIGk9dC5wcm90b3R5cGUuX2NyZWF0ZU5vZGVzRm9yRGF0YXNldC5jYWxsKHRoaXMsbikscj10aGlzLl9yZW5kZXJBcmVhLmFwcGVuZCgiZyIpLmNsYXNzZWQoZS5fTEFCRUxfQVJFQV9DTEFTUywhMCksbz1uZXcga1R0LlN2Z0NvbnRleHQoci5ub2RlKCkpLGE9bmV3IGtUdC5DYWNoZU1lYXN1cmVyKG8pLHM9bmV3IGtUdC5Xcml0ZXIoYSxvKTtyZXR1cm4gdGhpcy5fbGFiZWxDb25maWcuc2V0KG4se2xhYmVsQXJlYTpyLG1lYXN1cmVyOmEsd3JpdGVyOnN9KSxpfSxlLnByb3RvdHlwZS5fcmVtb3ZlRGF0YXNldE5vZGVzPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLl9yZW1vdmVEYXRhc2V0Tm9kZXMuY2FsbCh0aGlzLGUpO3ZhciBuPXRoaXMuX2xhYmVsQ29uZmlnLmdldChlKTtudWxsIT1uJiYobi5sYWJlbEFyZWEucmVtb3ZlKCksdGhpcy5fbGFiZWxDb25maWcuZGVsZXRlKGUpKX0sZS5wcm90b3R5cGUuX2FkZGl0aW9uYWxQYWludD1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuZGF0YXNldHMoKS5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fbGFiZWxDb25maWcuZ2V0KHQpLmxhYmVsQXJlYS5zZWxlY3RBbGwoImciKS5yZW1vdmUoKX0pKSx0aGlzLl9sYWJlbHNFbmFibGVkJiZEVHQuV2luZG93LnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX2RyYXdMYWJlbHMoKX0pLHQpfSxlLnByb3RvdHlwZS5fZHJhd0xhYmVscz1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLl9nZXREYXRhVG9EcmF3KCksbj10aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKTt0aGlzLmRhdGFzZXRzKCkuZm9yRWFjaCgoZnVuY3Rpb24oaSl7Zm9yKHZhciByPWUuZ2V0KGkpLG89ci5sZW5ndGgsYT0wO2E8bzthKyspe3ZhciBzPXJbYV07bnVsbCE9cyYmdC5fZHJhd0xhYmVsKHMsYSxpLG4pfX0pKX0sZS5wcm90b3R5cGUuX2RyYXdMYWJlbD1mdW5jdGlvbih0LGUsbixpKXtpZihudWxsIT10LmxhYmVsKXt2YXIgcj10aGlzLl9sYWJlbENvbmZpZy5nZXQobiksbz1yLmxhYmVsQXJlYSxhPXIubWVhc3VyZXIscz1yLndyaXRlcixsPXt4OmkueCh0LGUsbikseTppLnkodCxlLG4pfSxjPUhUdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnNpemUoKSkodCxlLG4pLHU9dGhpcy5fbGFiZWxGb3JtYXR0ZXIodC5sYWJlbCx0LGUsbiksaD1hLm1lYXN1cmUodSksZD10aGlzLl9jYWxjdWxhdGVMYWJlbFByb3BlcnRpZXMobCxjLGgpLHA9ZC5jb250YWluZXJEaW1lbnNpb25zLGY9ZC5hbGlnbm1lbnQsbT10aGlzLl9jcmVhdGVMYWJlbENvbnRhaW5lcihvLGQubGFiZWxDb250YWluZXJPcmlnaW4sZC5sYWJlbE9yaWdpbixoKTtzLndyaXRlKHUscC53aWR0aCxwLmhlaWdodCx7eEFsaWduOmYueCx5QWxpZ246Zi55fSxtLm5vZGUoKSl9fSxlLnByb3RvdHlwZS5fY2FsY3VsYXRlTGFiZWxQcm9wZXJ0aWVzPWZ1bmN0aW9uKHQsbixpKXtyZXR1cm57Y29udGFpbmVyRGltZW5zaW9uczp7d2lkdGg6aS53aWR0aCxoZWlnaHQ6aS5oZWlnaHR9LGxhYmVsQ29udGFpbmVyT3JpZ2luOnt4OnQueC1pLndpZHRoLzIseTp0LnktaS5oZWlnaHQvMisobjxpLmhlaWdodD9uLzIrZS5fTEFCRUxfTUFSR0lOX0ZST01fQlVCQkxFOjApfSxsYWJlbE9yaWdpbjp7eDp0LngseTp0Lnl9LGFsaWdubWVudDp7eDoiY2VudGVyIix5OiJjZW50ZXIifX19LGUucHJvdG90eXBlLl9jcmVhdGVMYWJlbENvbnRhaW5lcj1mdW5jdGlvbih0LGUsbixpKXt2YXIgcj10LmFwcGVuZCgiZyIpLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK2UueCsiLCAiK2UueSsiKSIpO3JldHVybiByLmNsYXNzZWQoIm9uLWJhci1sYWJlbCIsITApLHJ9LGUuX1NJWkVfS0VZPSJzaXplIixlLl9TWU1CT0xfS0VZPSJzeW1ib2wiLGUuX0xBQkVMX0FSRUFfQ0xBU1M9InNjYXR0ZXItbGFiZWwtdGV4dC1hcmVhIixlLl9MQUJFTF9NQVJHSU5fRlJPTV9CVUJCTEU9MTUsZX0pKG1FdC5YWVBsb3QpO0NUdC5TY2F0dGVyPUZUdDt2YXIgVlR0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShWVHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBVVHQ9Qk8salR0PWZndCxHVHQ9R1N0LFdUdD1KTXQscVR0PVh2dCxZVHQ9VHl0LFhUdD1zU3QsJFR0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBlLmFkZENsYXNzKCJzZWdtZW50LXBsb3QiKSxlLmF0dHIoInN0cm9rZSIsKG5ldyBxVHQuQ29sb3IpLnJhbmdlKClbMF0pLGUuYXR0cigic3Ryb2tlLXdpZHRoIiwiMnB4IiksZX1yZXR1cm4gVVR0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLl9jcmVhdGVEcmF3ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEdUdC5Qcm94eURyYXdlcigoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFdUdC5TZWdtZW50U1ZHRHJhd2VyfSksKGZ1bmN0aW9uKCl7cmV0dXJuIFlUdC53YXJuKCJjYW52YXMgcmVuZGVyZXIgaXMgbm90IHN1cHBvcnRlZCBvbiBTZWdtZW50IFBsb3QhIiksbnVsbH0pKX0sZS5wcm90b3R5cGUuX2dlbmVyYXRlRHJhd1N0ZXBzPWZ1bmN0aW9uKCl7cmV0dXJuW3thdHRyVG9Qcm9qZWN0b3I6dGhpcy5fZ2V0QXR0clRvUHJvamVjdG9yKCksYW5pbWF0b3I6bmV3IGpUdC5OdWxsfV19LGUucHJvdG90eXBlLl9maWx0ZXJGb3JQcm9wZXJ0eT1mdW5jdGlvbihlKXtyZXR1cm4gdC5wcm90b3R5cGUuX2ZpbHRlckZvclByb3BlcnR5LmNhbGwodGhpcywieDIiPT09ZT8ieCI6InkyIj09PWU/InkiOmUpfSxlLnByb3RvdHlwZS54PWZ1bmN0aW9uKG4saSl7aWYobnVsbD09bilyZXR1cm4gdC5wcm90b3R5cGUueC5jYWxsKHRoaXMpO2lmKG51bGw9PWkpdC5wcm90b3R5cGUueC5jYWxsKHRoaXMsbik7ZWxzZXt0LnByb3RvdHlwZS54LmNhbGwodGhpcyxuLGkpO3ZhciByPXRoaXMueDIoKSxvPXImJnIuYWNjZXNzb3I7bnVsbCE9byYmdGhpcy5fYmluZFByb3BlcnR5KGUuX1gyX0tFWSxvLGkpfXJldHVybiB0aGlzfSxlLnByb3RvdHlwZS54Mj1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmdldChlLl9YMl9LRVkpO3ZhciBuPXRoaXMueCgpO3JldHVybiB0aGlzLl9iaW5kUHJvcGVydHkoZS5fWDJfS0VZLHQsbiYmbi5zY2FsZSksdGhpcy5yZW5kZXIoKSx0aGlzfSxlLnByb3RvdHlwZS55PWZ1bmN0aW9uKG4saSl7aWYobnVsbD09bilyZXR1cm4gdC5wcm90b3R5cGUueS5jYWxsKHRoaXMpO2lmKG51bGw9PWkpdC5wcm90b3R5cGUueS5jYWxsKHRoaXMsbik7ZWxzZXt0LnByb3RvdHlwZS55LmNhbGwodGhpcyxuLGkpO3ZhciByPXRoaXMueTIoKSxvPXImJnIuYWNjZXNzb3I7bnVsbCE9byYmdGhpcy5fYmluZFByb3BlcnR5KGUuX1kyX0tFWSxvLGkpfXJldHVybiB0aGlzfSxlLnByb3RvdHlwZS55Mj1mdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiB0aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmdldChlLl9ZMl9LRVkpO3ZhciBuPXRoaXMueSgpO3JldHVybiB0aGlzLl9iaW5kUHJvcGVydHkoZS5fWTJfS0VZLHQsbiYmbi5zY2FsZSksdGhpcy5yZW5kZXIoKSx0aGlzfSxlLnByb3RvdHlwZS5fcHJvcGVydHlQcm9qZWN0b3JzPWZ1bmN0aW9uKCl7dmFyIGU9dC5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycy5jYWxsKHRoaXMpO3JldHVybiBlLngxPVhUdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSksZS54Mj1udWxsPT10aGlzLngyKCk/WFR0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueCgpKTpYVHQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy54MigpKSxlLnkxPVhUdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLnkoKSksZS55Mj1udWxsPT10aGlzLnkyKCk/WFR0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMueSgpKTpYVHQuUGxvdC5fc2NhbGVkQWNjZXNzb3IodGhpcy55MigpKSxlfSxlLnByb3RvdHlwZS5lbnRpdGllc0F0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZW50aXR5TmVhcmVzdCh0KTtyZXR1cm4gbnVsbCE9ZT9bZV06W119LGUucHJvdG90eXBlLmVudGl0aWVzSW49ZnVuY3Rpb24odCxlKXt2YXIgbixpO2lmKG51bGw9PWUpe249e21pbjp0LnRvcExlZnQueCxtYXg6dC5ib3R0b21SaWdodC54fSxpPXttaW46dC50b3BMZWZ0LnksbWF4OnQuYm90dG9tUmlnaHQueX19ZWxzZSBuPXQsaT1lO3JldHVybiB0aGlzLl9lbnRpdGllc0ludGVyc2VjdGluZyhuLGkpfSxlLnByb3RvdHlwZS5fZW50aXRpZXNJbnRlcnNlY3Rpbmc9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49W10saT10aGlzLl9nZXRBdHRyVG9Qcm9qZWN0b3IoKSxyPXRoaXMuZW50aXRpZXMoKSxvPXIubGVuZ3RoLGE9MDthPG87YSsrKXt2YXIgcz1yW2FdO3RoaXMuX2xpbmVJbnRlcnNlY3RzQm94KHMsdCxlLGkpJiZuLnB1c2gocyl9cmV0dXJuIG59LGUucHJvdG90eXBlLl9saW5lSW50ZXJzZWN0c0JveD1mdW5jdGlvbih0LGUsbixpKXt2YXIgcj10aGlzLG89aS54MSh0LmRhdHVtLHQuaW5kZXgsdC5kYXRhc2V0KSxhPWkueDIodC5kYXR1bSx0LmluZGV4LHQuZGF0YXNldCkscz1pLnkxKHQuZGF0dW0sdC5pbmRleCx0LmRhdGFzZXQpLGw9aS55Mih0LmRhdHVtLHQuaW5kZXgsdC5kYXRhc2V0KTtpZihlLm1pbjw9byYmbzw9ZS5tYXgmJm4ubWluPD1zJiZzPD1uLm1heHx8ZS5taW48PWEmJmE8PWUubWF4JiZuLm1pbjw9bCYmbDw9bi5tYXgpcmV0dXJuITA7dmFyIGM9e3g6byx5OnN9LHU9e3g6YSx5Omx9LGg9W3t4OmUubWluLHk6bi5taW59LHt4OmUubWluLHk6bi5tYXh9LHt4OmUubWF4LHk6bi5tYXh9LHt4OmUubWF4LHk6bi5taW59XTtyZXR1cm4gaC5maWx0ZXIoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIDAhPT1lJiYoci5fbGluZUludGVyc2VjdHNTZWdtZW50KGMsdSx0LGhbZS0xXSkmJnIuX2xpbmVJbnRlcnNlY3RzU2VnbWVudCh0LGhbZS0xXSxjLHUpKX0pKS5sZW5ndGg+MH0sZS5wcm90b3R5cGUuX2xpbmVJbnRlcnNlY3RzU2VnbWVudD1mdW5jdGlvbih0LGUsbixpKXt2YXIgcj1mdW5jdGlvbih0LGUsbil7cmV0dXJuKGUueC10LngpKihuLnktZS55KS0oZS55LXQueSkqKG4ueC1lLngpfTtyZXR1cm4gcih0LGUsbikqcih0LGUsaSk8MH0sZS5fWDJfS0VZPSJ4MiIsZS5fWTJfS0VZPSJ5MiIsZX0pKG1FdC5YWVBsb3QpO1ZUdC5TZWdtZW50PSRUdDt2YXIgS1R0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShLVHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBaVHQ9Qk8sSlR0PXdwdCxRVHQ9Zmd0LHRDdD1jU3QsZUN0PURfdCxuQ3Q9c1N0LGlDdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gZS5fc3RhY2tpbmdSZXN1bHQ9dEN0Lm1lbVRodW5rKChmdW5jdGlvbigpe3JldHVybiBlLmRhdGFzZXRzKCl9KSwoZnVuY3Rpb24oKXtyZXR1cm4gZS54KCkuYWNjZXNzb3J9KSwoZnVuY3Rpb24oKXtyZXR1cm4gZS55KCkuYWNjZXNzb3J9KSwoZnVuY3Rpb24oKXtyZXR1cm4gZS5fc3RhY2tpbmdPcmRlcn0pLChmdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gZUN0LlN0YWNraW5nLnN0YWNrKHQsZSxuLGkpfSkpLGUuX3N0YWNrZWRFeHRlbnQ9dEN0Lm1lbVRodW5rKGUuX3N0YWNraW5nUmVzdWx0LChmdW5jdGlvbigpe3JldHVybiBlLngoKS5hY2Nlc3Nvcn0pLChmdW5jdGlvbigpe3JldHVybiBlLl9maWx0ZXJGb3JQcm9wZXJ0eSgieSIpfSksKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZUN0LlN0YWNraW5nLnN0YWNrZWRFeHRlbnQodCxlLG4pfSkpLGUuX2Jhc2VsaW5lVmFsdWU9MCxlLl9zdGFja2luZ09yZGVyPSJib3R0b211cCIsZS5hZGRDbGFzcygic3RhY2tlZC1hcmVhLXBsb3QiKSxlLl9iYXNlbGluZVZhbHVlUHJvdmlkZXI9ZnVuY3Rpb24oKXtyZXR1cm5bZS5fYmFzZWxpbmVWYWx1ZV19LGUuY3JvcHBlZFJlbmRlcmluZ0VuYWJsZWQoITEpLGV9cmV0dXJuIFpUdC5fX2V4dGVuZHMoZSx0KSxlLnByb3RvdHlwZS5jcm9wcGVkUmVuZGVyaW5nRW5hYmxlZD1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZT90LnByb3RvdHlwZS5jcm9wcGVkUmVuZGVyaW5nRW5hYmxlZC5jYWxsKHRoaXMpOmU/KGVDdC5XaW5kb3cud2FybigiV2FybmluZzogU3RhY2tlZCBBcmVhIFBsb3QgZG9lcyBub3Qgc3VwcG9ydCBjcm9wcGVkIHJlbmRlcmluZy4iKSx0aGlzKTp0LnByb3RvdHlwZS5jcm9wcGVkUmVuZGVyaW5nRW5hYmxlZC5jYWxsKHRoaXMsZSl9LGUucHJvdG90eXBlLl9nZXRBbmltYXRvcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IFFUdC5OdWxsfSxlLnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5fc2V0dXAuY2FsbCh0aGlzKSx0aGlzLl9iYXNlbGluZT10aGlzLl9yZW5kZXJBcmVhLmFwcGVuZCgibGluZSIpLmNsYXNzZWQoImJhc2VsaW5lIiwhMCl9LGUucHJvdG90eXBlLng9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gbnVsbD09ZT90LnByb3RvdHlwZS54LmNhbGwodGhpcyk6KG51bGw9PW4/dC5wcm90b3R5cGUueC5jYWxsKHRoaXMsZSk6dC5wcm90b3R5cGUueC5jYWxsKHRoaXMsZSxuKSx0aGlzLl9jaGVja1NhbWVEb21haW4oKSx0aGlzKX0sZS5wcm90b3R5cGUueT1mdW5jdGlvbihlLG4pe3JldHVybiBudWxsPT1lP3QucHJvdG90eXBlLnkuY2FsbCh0aGlzKToobnVsbD09bj90LnByb3RvdHlwZS55LmNhbGwodGhpcyxlKTp0LnByb3RvdHlwZS55LmNhbGwodGhpcyxlLG4pLHRoaXMuX2NoZWNrU2FtZURvbWFpbigpLHRoaXMpfSxlLnByb3RvdHlwZS55T2Zmc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fc3RhY2tpbmdSZXN1bHQoKTtpZihudWxsIT1uKXt2YXIgaT1uLmdldCh0KTtpZihudWxsIT1pKXt2YXIgcj1pLmdldChTdHJpbmcoZSkpO2lmKG51bGwhPXIpcmV0dXJuIHIub2Zmc2V0fX19LGUucHJvdG90eXBlLnN0YWNraW5nT3JkZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fc3RhY2tpbmdPcmRlcjoodGhpcy5fc3RhY2tpbmdPcmRlcj10LHRoaXMuX29uRGF0YXNldFVwZGF0ZSgpLHRoaXMpfSxlLnByb3RvdHlwZS5kb3duc2FtcGxpbmdFbmFibGVkPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP3QucHJvdG90eXBlLmRvd25zYW1wbGluZ0VuYWJsZWQuY2FsbCh0aGlzKTooZUN0LldpbmRvdy53YXJuKCJXYXJuaW5nOiBTdGFja2VkIEFyZWEgUGxvdCBkb2VzIG5vdCBzdXBwb3J0IGRvd25zYW1wbGluZyIpLHRoaXMpfSxlLnByb3RvdHlwZS5fYWRkaXRpb25hbFBhaW50PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy55KCkuc2NhbGUuc2NhbGUodGhpcy5fYmFzZWxpbmVWYWx1ZSksZT17eDE6MCx5MTp0LHgyOnRoaXMud2lkdGgoKSx5Mjp0fTt0aGlzLl9nZXRBbmltYXRvcigiYmFzZWxpbmUiKS5hbmltYXRlKHRoaXMuX2Jhc2VsaW5lLGUpfSxlLnByb3RvdHlwZS5fdXBkYXRlWVNjYWxlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy55KCksZT10JiZ0LnNjYWxlO251bGwhPWUmJihlLmFkZFBhZGRpbmdFeGNlcHRpb25zUHJvdmlkZXIodGhpcy5fYmFzZWxpbmVWYWx1ZVByb3ZpZGVyKSxlLmFkZEluY2x1ZGVkVmFsdWVzUHJvdmlkZXIodGhpcy5fYmFzZWxpbmVWYWx1ZVByb3ZpZGVyKSl9LGUucHJvdG90eXBlLl9vbkRhdGFzZXRVcGRhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2hlY2tTYW1lRG9tYWluKCksdC5wcm90b3R5cGUuX29uRGF0YXNldFVwZGF0ZS5jYWxsKHRoaXMpLHRoaXN9LGUucHJvdG90eXBlLmdldEV4dGVudHNGb3JQcm9wZXJ0eT1mdW5jdGlvbihlKXtyZXR1cm4ieSI9PT1lP1t0aGlzLl9zdGFja2VkRXh0ZW50KCldOnQucHJvdG90eXBlLmdldEV4dGVudHNGb3JQcm9wZXJ0eS5jYWxsKHRoaXMsZSl9LGUucHJvdG90eXBlLl9jaGVja1NhbWVEb21haW49ZnVuY3Rpb24oKXtpZih0aGlzLl9wcm9qZWN0b3JzUmVhZHkoKSl7dmFyIHQ9dGhpcy5kYXRhc2V0cygpLG49dGhpcy54KCkuYWNjZXNzb3IsaT10Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIEpUdC5zZXQodC5kYXRhKCkubWFwKChmdW5jdGlvbihlLGkpe3JldHVybiBlQ3QuU3RhY2tpbmcubm9ybWFsaXplS2V5KG4oZSxpLHQpKX0pKSkudmFsdWVzKCl9KSkscj1lLl9kb21haW5LZXlzKHQsbik7aS5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdC5sZW5ndGghPT1yLmxlbmd0aH0pKSYmZUN0LldpbmRvdy53YXJuKCJ0aGUgZG9tYWlucyBhY3Jvc3MgdGhlIGRhdGFzZXRzIGFyZSBub3QgdGhlIHNhbWUuIFBsb3QgbWF5IHByb2R1Y2UgdW5pbnRlbmRlZCBiZWhhdmlvci4iKX19LGUuX2RvbWFpbktleXM9ZnVuY3Rpb24odCxlKXt2YXIgbj1KVHQuc2V0KCk7cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7Zm9yKHZhciBpPXQuZGF0YSgpLHI9aS5sZW5ndGgsbz0wO288cjtvKyspe24uYWRkKGUoaVtvXSxvLHQpKX19KSksbi52YWx1ZXMoKX0sZS5wcm90b3R5cGUuX2Nvb3JkaW5hdGVQcm9qZWN0b3JzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPW5DdC5QbG90Ll9zY2FsZWRBY2Nlc3Nvcih0aGlzLngoKSksbj10aGlzLnkoKS5hY2Nlc3NvcixpPXRoaXMueCgpLmFjY2Vzc29yLHI9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBlQ3QuU3RhY2tpbmcubm9ybWFsaXplS2V5KGkodCxlLG4pKX0sbz10aGlzLl9zdGFja2luZ1Jlc3VsdCgpO3JldHVybltlLGZ1bmN0aW9uKGUsaSxhKXt2YXIgcz0rbihlLGksYSksbD1vLmdldChhKS5nZXQocihlLGksYSkpLm9mZnNldDtyZXR1cm4gdC55KCkuc2NhbGUuc2NhbGUocytsKX0sZnVuY3Rpb24oZSxuLGkpe3ZhciBhPW8uZ2V0KGkpLmdldChyKGUsbixpKSkub2Zmc2V0O3JldHVybiB0LnkoKS5zY2FsZS5zY2FsZShhKX1dfSxlLnByb3RvdHlwZS5fcHJvcGVydHlQcm9qZWN0b3JzPWZ1bmN0aW9uKCl7dmFyIGU9dC5wcm90b3R5cGUuX3Byb3BlcnR5UHJvamVjdG9ycy5jYWxsKHRoaXMpLG49dGhpcy5fY29vcmRpbmF0ZVByb2plY3RvcnMoKTtyZXR1cm4gZS5kPXRoaXMuX2NvbnN0cnVjdEFyZWFQcm9qZWN0b3IoblswXSxuWzFdLG5bMl0pLGV9LGUucHJvdG90eXBlLl9waXhlbFBvaW50PWZ1bmN0aW9uKGUsbixpKXt2YXIgcj10LnByb3RvdHlwZS5fcGl4ZWxQb2ludC5jYWxsKHRoaXMsZSxuLGkpLG89dGhpcy54KCkuYWNjZXNzb3IoZSxuLGkpLGE9dGhpcy55KCkuYWNjZXNzb3IoZSxuLGkpLHM9dGhpcy55KCkuc2NhbGUuc2NhbGUoK2ErdGhpcy5fc3RhY2tpbmdSZXN1bHQoKS5nZXQoaSkuZ2V0KGVDdC5TdGFja2luZy5ub3JtYWxpemVLZXkobykpLm9mZnNldCk7cmV0dXJue3g6ci54LHk6c319LGV9KShwRXQuQXJlYSk7S1R0LlN0YWNrZWRBcmVhPWlDdDt2YXIgckN0PXt9OwovKioKICAgICAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQgUGFsYW50aXIgVGVjaG5vbG9naWVzCiAgICAgKiBAbGljZW5zZSBNSVQKICAgICAqL09iamVjdC5kZWZpbmVQcm9wZXJ0eShyQ3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvQ3Q9Qk8sYUN0PUxndCxzQ3Q9cHZ0LGxDdD1jU3QsY0N0PURfdCx1Q3Q9WUV0LGhDdD1zU3QsZEN0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPSJ2ZXJ0aWNhbCIpO3ZhciBuPXQuY2FsbCh0aGlzLGUpfHx0aGlzO3JldHVybiBuLl9leHRyZW1hRm9ybWF0dGVyPXNDdC5pZGVudGl0eSgpLG4uX3N0YWNraW5nUmVzdWx0PWxDdC5tZW1UaHVuaygoZnVuY3Rpb24oKXtyZXR1cm4gbi5kYXRhc2V0cygpfSksKGZ1bmN0aW9uKCl7cmV0dXJuIG4ucG9zaXRpb24oKS5hY2Nlc3Nvcn0pLChmdW5jdGlvbigpe3JldHVybiBuLmxlbmd0aCgpLmFjY2Vzc29yfSksKGZ1bmN0aW9uKCl7cmV0dXJuIG4uX3N0YWNraW5nT3JkZXJ9KSwoZnVuY3Rpb24odCxlLG4saSl7cmV0dXJuIGNDdC5TdGFja2luZy5zdGFjayh0LGUsbixpKX0pKSxuLl9zdGFja2VkRXh0ZW50PWxDdC5tZW1UaHVuayhuLl9zdGFja2luZ1Jlc3VsdCwoZnVuY3Rpb24oKXtyZXR1cm4gbi5wb3NpdGlvbigpLmFjY2Vzc29yfSksKGZ1bmN0aW9uKCl7cmV0dXJuIG4uX2ZpbHRlckZvclByb3BlcnR5KG4uX2lzVmVydGljYWw/InkiOiJ4Iil9KSwoZnVuY3Rpb24odCxlLG4pe3JldHVybiBjQ3QuU3RhY2tpbmcuc3RhY2tlZEV4dGVudCh0LGUsbil9KSksbi5hZGRDbGFzcygic3RhY2tlZC1iYXItcGxvdCIpLG4uX3N0YWNraW5nT3JkZXI9ImJvdHRvbXVwIixufXJldHVybiBvQ3QuX19leHRlbmRzKGUsdCksZS5wcm90b3R5cGUuc3RhY2tpbmdPcmRlcj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9zdGFja2luZ09yZGVyOih0aGlzLl9zdGFja2luZ09yZGVyPXQsdGhpcy5fb25EYXRhc2V0VXBkYXRlKCksdGhpcyl9LGUucHJvdG90eXBlLmV4dHJlbWFGb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMuX2V4dHJlbWFGb3JtYXR0ZXI6KHRoaXMuX2V4dHJlbWFGb3JtYXR0ZXI9dCx0aGlzLnJlbmRlcigpLHRoaXMpfSxlLnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5fc2V0dXAuY2FsbCh0aGlzKSx0aGlzLl9sYWJlbEFyZWE9dGhpcy5fcmVuZGVyQXJlYS5hcHBlbmQoImciKS5jbGFzc2VkKHVDdC5CYXIuX0xBQkVMX0FSRUFfQ0xBU1MsITApO3ZhciBlPW5ldyBhQ3QuU3ZnQ29udGV4dCh0aGlzLl9sYWJlbEFyZWEubm9kZSgpKTt0aGlzLl9tZWFzdXJlcj1uZXcgYUN0LkNhY2hlTWVhc3VyZXIoZSksdGhpcy5fd3JpdGVyPW5ldyBhQ3QuV3JpdGVyKHRoaXMuX21lYXN1cmVyLGUpfSxlLnByb3RvdHlwZS5fZHJhd0xhYmVscz1mdW5jdGlvbigpe3ZhciBuPXRoaXM7dC5wcm90b3R5cGUuX2RyYXdMYWJlbHMuY2FsbCh0aGlzKSx0aGlzLl9sYWJlbEFyZWEuc2VsZWN0QWxsKCJnIikucmVtb3ZlKCk7dmFyIGk9K3RoaXMuYmFzZWxpbmVWYWx1ZSgpLHI9dGhpcy5wb3NpdGlvbigpLnNjYWxlLG89dGhpcy5sZW5ndGgoKS5zY2FsZSxhPWNDdC5TdGFja2luZy5zdGFja2VkRXh0ZW50cyh0aGlzLl9zdGFja2luZ1Jlc3VsdCgpKSxzPWEubWluaW11bUV4dGVudHMsbD1bXSxjPWZ1bmN0aW9uKHQsZSl7dmFyIGE9bi5fZ2VuZXJhdGVBdHRyVG9Qcm9qZWN0b3IoKSxzPW4ud2lkdGgoKSxjPW4uaGVpZ2h0KCk7dC5mb3JFYWNoKChmdW5jdGlvbih0KXtpZih0LmV4dGVudCE9PWkpe3ZhciB1PW4uZXh0cmVtYUZvcm1hdHRlcigpKHQuZXh0ZW50KSxoPW4uX21lYXN1cmVyLm1lYXN1cmUodSksZD10LnN0YWNrZWREYXR1bSxwPWQub3JpZ2luYWxEYXR1bSxmPWQub3JpZ2luYWxJbmRleCxtPWQub3JpZ2luYWxEYXRhc2V0O2lmKCFuLl9pc0RhdHVtT25TY3JlZW4oYSxzLGMscCxmLG0pKXJldHVybjt2YXIgZz1oQ3QuUGxvdC5fc2NhbGVkQWNjZXNzb3Iobi5hdHRyKHVDdC5CYXIuX0JBUl9USElDS05FU1NfS0VZKSkocCxmLG0pLF89by5zY2FsZSh0LmV4dGVudCkseT1uLl9nZXRQb3NpdGlvbkF0dHIoci5zY2FsZSh0LmF4aXNWYWx1ZSksZykrZy8yLHY9ZShuLl9pc1ZlcnRpY2FsP3t4OnkseTpffTp7eDpfLHk6eX0saCxnKSxiPShmdW5jdGlvbih0LGUsaSl7dmFyIHI9ZS50b3BMZWZ0LG89ci54LGE9ci55LHM9ZS5ib3R0b21SaWdodC54LWUudG9wTGVmdC54LGw9ZS5ib3R0b21SaWdodC55LWUudG9wTGVmdC55LGM9bi5faXNWZXJ0aWNhbD9zPmk6bD5pO2lmKCFjKXt2YXIgdT1uLl9sYWJlbEFyZWEuYXBwZW5kKCJnIikuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrbysiLCAiK2ErIikiKTt1LmNsYXNzZWQoInN0YWNrZWQtYmFyLWxhYmVsIiwhMCksbi5fd3JpdGVyLndyaXRlKHQscyxsLHt4QWxpZ246ImNlbnRlciIseUFsaWduOiJjZW50ZXIifSx1Lm5vZGUoKSl9cmV0dXJuIGN9KSh1LHt0b3BMZWZ0OnYsYm90dG9tUmlnaHQ6e3g6di54K2gud2lkdGgseTp2LnkraC5oZWlnaHR9fSxnKTtsLnB1c2goYil9fSkpfTtjKGEubWF4aW11bUV4dGVudHMsKGZ1bmN0aW9uKHQsaSxyKXt2YXIgbz1uLl9pc1ZlcnRpY2FsP2kud2lkdGg6aS5oZWlnaHQ7cmV0dXJue3g6bi5faXNWZXJ0aWNhbD90Lngtby8yOnQueCtlLl9FWFRSRU1BX0xBQkVMX01BUkdJTl9GUk9NX0JBUix5Om4uX2lzVmVydGljYWw/dC55LShuLl9pc1ZlcnRpY2FsP2kuaGVpZ2h0Omkud2lkdGgpOnQueS1vLzJ9fSkpLGMocywoZnVuY3Rpb24odCxpLHIpe3ZhciBvPW4uX2lzVmVydGljYWw/aS53aWR0aDppLmhlaWdodDtyZXR1cm57eDpuLl9pc1ZlcnRpY2FsP3QueC1vLzI6dC54LShuLl9pc1ZlcnRpY2FsP2kuaGVpZ2h0Omkud2lkdGgpLHk6bi5faXNWZXJ0aWNhbD90LnkrZS5fRVhUUkVNQV9MQUJFTF9NQVJHSU5fRlJPTV9CQVI6dC55LW8vMn19KSksbC5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdH0pKSYmdGhpcy5fbGFiZWxBcmVhLnNlbGVjdEFsbCgiZyIpLnJlbW92ZSgpfSxlLnByb3RvdHlwZS5fZ2VuZXJhdGVBdHRyVG9Qcm9qZWN0b3I9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49dC5wcm90b3R5cGUuX2dlbmVyYXRlQXR0clRvUHJvamVjdG9yLmNhbGwodGhpcyksaT10aGlzLl9pc1ZlcnRpY2FsPyJ5IjoieCIscj10aGlzLmxlbmd0aCgpLnNjYWxlLG89dGhpcy5sZW5ndGgoKS5hY2Nlc3NvcixhPXRoaXMucG9zaXRpb24oKS5hY2Nlc3NvcixzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gY0N0LlN0YWNraW5nLm5vcm1hbGl6ZUtleShhKHQsZSxuKSl9LGw9dGhpcy5fc3RhY2tpbmdSZXN1bHQoKSxjPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gci5zY2FsZShsLmdldChuKS5nZXQocyh0LGUsbikpLm9mZnNldCl9LHU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiByLnNjYWxlKCtvKHQsZSxuKStsLmdldChuKS5nZXQocyh0LGUsbikpLm9mZnNldCl9LGg9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBNYXRoLmFicyh1KHQsZSxuKS1jKHQsZSxuKSl9O25bdGhpcy5faXNWZXJ0aWNhbD8iaGVpZ2h0Ijoid2lkdGgiXT1oO3ZhciBkPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4rbyh0LGUsbik8MD9jKHQsZSxuKTp1KHQsZSxuKX07cmV0dXJuIG5baV09ZnVuY3Rpb24odCxuLGkpe3JldHVybiBlLl9pc1ZlcnRpY2FsP2QodCxuLGkpOmQodCxuLGkpLWgodCxuLGkpfSxufSxlLnByb3RvdHlwZS5nZXRFeHRlbnRzRm9yUHJvcGVydHk9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT0odGhpcy5faXNWZXJ0aWNhbD8ieSI6IngiKT9bdGhpcy5fc3RhY2tlZEV4dGVudCgpXTp0LnByb3RvdHlwZS5nZXRFeHRlbnRzRm9yUHJvcGVydHkuY2FsbCh0aGlzLGUpfSxlLnByb3RvdHlwZS5pbnZhbGlkYXRlQ2FjaGU9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5pbnZhbGlkYXRlQ2FjaGUuY2FsbCh0aGlzKSx0aGlzLl9tZWFzdXJlci5yZXNldCgpfSxlLl9FWFRSRU1BX0xBQkVMX01BUkdJTl9GUk9NX0JBUj01LGV9KSh1Q3QuQmFyKTtyQ3QuU3RhY2tlZEJhcj1kQ3Q7dmFyIHBDdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9PYmplY3QuZGVmaW5lUHJvcGVydHkocEN0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZkN0PUJPLG1DdD1EX3QsZ0N0PXNTdCxfQ3Q9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGUuX2Nvbm5lY3RvcnNFbmFibGVkPSExLGUuYWRkQ2xhc3MoIndhdGVyZmFsbC1wbG90IiksZX1yZXR1cm4gZkN0Ll9fZXh0ZW5kcyhlLHQpLGUucHJvdG90eXBlLmNvbm5lY3RvcnNFbmFibGVkPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuX2Nvbm5lY3RvcnNFbmFibGVkOih0aGlzLl9jb25uZWN0b3JzRW5hYmxlZD10LHRoaXMpfSxlLnByb3RvdHlwZS50b3RhbD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLl9wcm9wZXJ0eUJpbmRpbmdzLmdldChlLl9UT1RBTF9LRVkpOih0aGlzLl9iaW5kUHJvcGVydHkoZS5fVE9UQUxfS0VZLHQsbnVsbCksdGhpcyl9LGUucHJvdG90eXBlLl9hZGRpdGlvbmFsUGFpbnQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLl9jb25uZWN0b3JBcmVhLnNlbGVjdEFsbCgibGluZSIpLnJlbW92ZSgpLHRoaXMuX2Nvbm5lY3RvcnNFbmFibGVkJiZtQ3QuV2luZG93LnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX2RyYXdDb25uZWN0b3JzKCl9KSx0KX0sZS5wcm90b3R5cGUuX2NyZWF0ZU5vZGVzRm9yRGF0YXNldD1mdW5jdGlvbihuKXt2YXIgaT10LnByb3RvdHlwZS5fY3JlYXRlTm9kZXNGb3JEYXRhc2V0LmNhbGwodGhpcyxuKTtyZXR1cm4gdGhpcy5fY29ubmVjdG9yQXJlYT10aGlzLl9yZW5kZXJBcmVhLmFwcGVuZCgiZyIpLmNsYXNzZWQoZS5fQ09OTkVDVE9SX0FSRUFfQ0xBU1MsITApLGl9LGUucHJvdG90eXBlLmdldEV4dGVudHNGb3JQcm9wZXJ0eT1mdW5jdGlvbihlKXtyZXR1cm4ieSI9PT1lP1t0aGlzLl9leHRlbnRdOnQucHJvdG90eXBlLmdldEV4dGVudHNGb3JQcm9wZXJ0eS5jYWxsKHRoaXMsZSl9LGUucHJvdG90eXBlLl9nZW5lcmF0ZUF0dHJUb1Byb2plY3Rvcj1mdW5jdGlvbigpe3ZhciBuPXRoaXMsaT10LnByb3RvdHlwZS5fZ2VuZXJhdGVBdHRyVG9Qcm9qZWN0b3IuY2FsbCh0aGlzKSxyPXRoaXMueSgpLnNjYWxlLG89Z0N0LlBsb3QuX3NjYWxlZEFjY2Vzc29yKHRoaXMudG90YWwoKSk7cmV0dXJuIG51bGw9PXRoaXMuYXR0cigieSIpJiYoaS55PWZ1bmN0aW9uKHQsZSxpKXt2YXIgYT1uLnkoKS5hY2Nlc3Nvcih0LGUsaSk7aWYobyh0LGUsaSkpcmV0dXJuIE1hdGgubWluKHIuc2NhbGUoYSksci5zY2FsZSgwKSk7dmFyIHM9bi5fc3VidG90YWxzW2VdO2lmKDA9PT1lKXJldHVybiByLnNjYWxlKGE8MD9zLWE6cyk7dmFyIGw9bi5fc3VidG90YWxzW2UtMV07cmV0dXJuIHIuc2NhbGUocz5sP3M6bCl9KSxudWxsPT10aGlzLmF0dHIoImhlaWdodCIpJiYoaS5oZWlnaHQ9ZnVuY3Rpb24odCxlLGkpe3ZhciBhPW8odCxlLGkpLHM9bi55KCkuYWNjZXNzb3IodCxlLGkpO2lmKGEpcmV0dXJuIE1hdGguYWJzKHIuc2NhbGUocyktci5zY2FsZSgwKSk7dmFyIGw9bi5fc3VidG90YWxzW2VdO2lmKDA9PT1lKXJldHVybiBNYXRoLmFicyhyLnNjYWxlKGwpLXIuc2NhbGUobC1zKSk7dmFyIGM9bi5fc3VidG90YWxzW2UtMV07cmV0dXJuIE1hdGguYWJzKHIuc2NhbGUobCktci5zY2FsZShjKSl9KSxpLmNsYXNzPWZ1bmN0aW9uKHQsaSxyKXt2YXIgYT0iIjtyZXR1cm4gbnVsbCE9bi5hdHRyKCJjbGFzcyIpJiYoYT1uLmF0dHIoImNsYXNzIikuYWNjZXNzb3IodCxpLHIpKyIgIiksbyh0LGkscik/YStlLl9CQVJfVE9UQUxfQ0xBU1M6YSsobi55KCkuYWNjZXNzb3IodCxpLHIpPjA/ZS5fQkFSX0dST1dUSF9DTEFTUzplLl9CQVJfREVDTElORV9DTEFTUyl9LGl9LGUucHJvdG90eXBlLl9vbkRhdGFzZXRVcGRhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdXBkYXRlU3VidG90YWxzKCksdC5wcm90b3R5cGUuX29uRGF0YXNldFVwZGF0ZS5jYWxsKHRoaXMpLHRoaXN9LGUucHJvdG90eXBlLl9jYWxjdWxhdGVTdWJ0b3RhbHNBbmRFeHRlbnQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPU51bWJlci5NQVhfVkFMVUUsbj1OdW1iZXIuTUlOX1ZBTFVFLGk9MCxyPSExLG89dC5kYXRhKCksYT1vLmxlbmd0aCxzPTA7czxhO3MrKyl7dmFyIGw9b1tzXSxjPXRoaXMueSgpLmFjY2Vzc29yKGwscyx0KSx1PXRoaXMudG90YWwoKS5hY2Nlc3NvcihsLHMsdCk7aWYodSYmMCE9PXN8fChpKz1jKSx0aGlzLl9zdWJ0b3RhbHMucHVzaChpKSxpPGUmJihlPWkpLGk+biYmKG49aSksdSYmKGM8ZSYmKGU9YyksYz5uJiYobj1jKSksIXImJnUpe2Zvcih2YXIgaD1jLWksZD0wO2Q8dGhpcy5fc3VidG90YWxzLmxlbmd0aDtkKyspdGhpcy5fc3VidG90YWxzW2RdKz1oO3I9ITAsaSs9aCxlKz1oLG4rPWh9fXRoaXMuX2V4dGVudD1bZSxuXX0sZS5wcm90b3R5cGUuX2RyYXdDb25uZWN0b3JzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX2dldEF0dHJUb1Byb2plY3RvcigpLG49dGhpcy5kYXRhc2V0cygpWzBdLGk9MTtpPG4uZGF0YSgpLmxlbmd0aDtpKyspe3ZhciByPWktMSxvPW4uZGF0YSgpW2ldLGE9bi5kYXRhKClbcl0scz10LngoYSxyLG4pLGw9dC54KG8saSxuKSt0LndpZHRoKG8saSxuKSxjPXQueShvLGksbik7KHRoaXMuX3N1YnRvdGFsc1tpXT4wJiZ0aGlzLl9zdWJ0b3RhbHNbaV0+dGhpcy5fc3VidG90YWxzW3JdfHx0aGlzLl9zdWJ0b3RhbHNbaV08MCYmdGhpcy5fc3VidG90YWxzW2ldPj10aGlzLl9zdWJ0b3RhbHNbcl0pJiYoYz10LnkobyxpLG4pK3QuaGVpZ2h0KG8saSxuKSksdGhpcy5fY29ubmVjdG9yQXJlYS5hcHBlbmQoImxpbmUiKS5jbGFzc2VkKGUuX0NPTk5FQ1RPUl9DTEFTUywhMCkuYXR0cigieDEiLHMpLmF0dHIoIngyIixsKS5hdHRyKCJ5MSIsYykuYXR0cigieTIiLGMpfX0sZS5wcm90b3R5cGUuX3VwZGF0ZVN1YnRvdGFscz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZGF0YXNldHMoKTtpZih0Lmxlbmd0aD4wKXt2YXIgZT10W3QubGVuZ3RoLTFdO3RoaXMuX3N1YnRvdGFscz1uZXcgQXJyYXksdGhpcy5fY2FsY3VsYXRlU3VidG90YWxzQW5kRXh0ZW50KGUpfX0sZS5fQkFSX0RFQ0xJTkVfQ0xBU1M9IndhdGVyZmFsbC1kZWNsaW5lIixlLl9CQVJfR1JPV1RIX0NMQVNTPSJ3YXRlcmZhbGwtZ3Jvd3RoIixlLl9CQVJfVE9UQUxfQ0xBU1M9IndhdGVyZmFsbC10b3RhbCIsZS5fQ09OTkVDVE9SX0NMQVNTPSJjb25uZWN0b3IiLGUuX0NPTk5FQ1RPUl9BUkVBX0NMQVNTPSJjb25uZWN0b3ItYXJlYSIsZS5fVE9UQUxfS0VZPSJ0b3RhbCIsZX0pKFlFdC5CYXIpO3BDdC5XYXRlcmZhbGw9X0N0LChmdW5jdGlvbih0KXsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi8KT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlPUJPO2UuX19leHBvcnRTdGFyKHBFdCx0KSxlLl9fZXhwb3J0U3RhcihZRXQsdCksZS5fX2V4cG9ydFN0YXIobFN0LHQpLGUuX19leHBvcnRTdGFyKFhFdCx0KSxlLl9fZXhwb3J0U3RhcihmRXQsdCksZS5fX2V4cG9ydFN0YXIoZVR0LHQpLGUuX19leHBvcnRTdGFyKG1UdCx0KSxlLl9fZXhwb3J0U3RhcihDVHQsdCksZS5fX2V4cG9ydFN0YXIoVlR0LHQpLGUuX19leHBvcnRTdGFyKEtUdCx0KSxlLl9fZXhwb3J0U3RhcihyQ3QsdCksZS5fX2V4cG9ydFN0YXIocEN0LHQpfSkoZEV0KTt2YXIgeUN0LHZDdD17fTsKLyoqCiAgICAgKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50IFBhbGFudGlyIFRlY2hub2xvZ2llcwogICAgICogQGxpY2Vuc2UgTUlUCiAgICAgKi9mdW5jdGlvbiBiQ3QodCl7cmV0dXJuIGNsYXNzIGV4dGVuZHMgdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5sb2FkS2V5PSIiLHRoaXMuZGF0YVRvTG9hZD1bXSx0aGlzLmdldERhdGFMb2FkTmFtZT10PT5TdHJpbmcodCksdGhpcy5kYXRhTG9hZGluZz0hMSx0aGlzLmRhdGFMb2FkZWRBdExlYXN0T25jZT0hMSx0aGlzLl9pc0Nvbm5lY3RlZD0hMSx0aGlzLl9kYXRhTG9hZFN0YXRlPW5ldyBNYXAsdGhpcy5fY2FuY2VsbGVyPW5ldyB4Tyx0aGlzLl9sb2FkRGF0YUFzeW5jPW51bGwsdGhpcy5fbG9hZERhdGE9Q2UuZXhwb3J0cy50aHJvdHRsZSh0aGlzLl9sb2FkRGF0YUltcGwsMTAwLHtsZWFkaW5nOiEwLHRyYWlsaW5nOiEwfSl9Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuX2lzQ29ubmVjdGVkPSEwfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl9pc0Nvbm5lY3RlZD0hMX1zdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57YWN0aXZlOnt0eXBlOkJvb2xlYW4sb2JzZXJ2ZXI6Il9sb2FkRGF0YUlmQWN0aXZlIn0sX2lzQ29ubmVjdGVkOnt0eXBlOkJvb2xlYW59LGxvYWRLZXk6e3R5cGU6U3RyaW5nfSxkYXRhVG9Mb2FkOnt0eXBlOkFycmF5fSxnZXREYXRhTG9hZE5hbWU6e3R5cGU6T2JqZWN0fSxsb2FkRGF0YUNhbGxiYWNrOnt0eXBlOk9iamVjdH0scmVxdWVzdERhdGE6e3R5cGU6T2JqZWN0fX19c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl9kYXRhVG9Mb2FkQ2hhbmdlZChfaXNDb25uZWN0ZWQsIGRhdGFUb0xvYWQuKikiXX1vbkxvYWRGaW5pc2goKXt9cmVsb2FkKCl7dGhpcy5fZGF0YUxvYWRTdGF0ZS5jbGVhcigpLHRoaXMuX2xvYWREYXRhKCl9cmVzZXQoKXtudWxsIT10aGlzLl9sb2FkRGF0YUFzeW5jJiYoY2xlYXJUaW1lb3V0KHRoaXMuX2xvYWREYXRhQXN5bmMpLHRoaXMuX2xvYWREYXRhQXN5bmM9bnVsbCksdGhpcy5fY2FuY2VsbGVyJiZ0aGlzLl9jYW5jZWxsZXIuY2FuY2VsQWxsKCksdGhpcy5fZGF0YUxvYWRTdGF0ZSYmdGhpcy5fZGF0YUxvYWRTdGF0ZS5jbGVhcigpLHRoaXMuX2lzQ29ubmVjdGVkJiZ0aGlzLl9sb2FkRGF0YSgpfV9kYXRhVG9Mb2FkQ2hhbmdlZCgpe3RoaXMuX2lzQ29ubmVjdGVkJiZ0aGlzLl9sb2FkRGF0YSgpfWRldGFjaGVkKCl7bnVsbCE9dGhpcy5fbG9hZERhdGFBc3luYyYmKGNsZWFyVGltZW91dCh0aGlzLl9sb2FkRGF0YUFzeW5jKSx0aGlzLl9sb2FkRGF0YUFzeW5jPW51bGwpfV9sb2FkRGF0YUlmQWN0aXZlKCl7dGhpcy5hY3RpdmUmJnRoaXMuX2xvYWREYXRhKCl9X2xvYWREYXRhSW1wbCgpe3RoaXMuYWN0aXZlJiYobnVsbCE9PXRoaXMuX2xvYWREYXRhQXN5bmMmJmNsZWFyVGltZW91dCh0aGlzLl9sb2FkRGF0YUFzeW5jKSx0aGlzLl9sb2FkRGF0YUFzeW5jPXNldFRpbWVvdXQodGhpcy5fY2FuY2VsbGVyLmNhbmNlbGxhYmxlKCh0PT57aWYodC5jYW5jZWxsZWQpcmV0dXJuO3RoaXMuZGF0YUxvYWRpbmc9ITA7Y29uc3QgZT10aGlzLmRhdGFUb0xvYWQuZmlsdGVyKCh0PT57Y29uc3QgZT10aGlzLmdldERhdGFMb2FkTmFtZSh0KTtyZXR1cm4hdGhpcy5fZGF0YUxvYWRTdGF0ZS5oYXMoZSl9KSk7Zm9yKGNvbnN0IHQgb2YgZSl7Y29uc3QgZT10aGlzLmdldERhdGFMb2FkTmFtZSh0KTt0aGlzLl9kYXRhTG9hZFN0YXRlLnNldChlLHlDdC5MT0FESU5HKX1jb25zdCBuPXRoaXMuX2NhbmNlbGxlci5jYW5jZWxsYWJsZSgodD0+e2lmKHQuY2FuY2VsbGVkKXJldHVybjtjb25zdHtpdGVtOmUsZGF0YTpufT10LnZhbHVlLGk9dGhpcy5nZXREYXRhTG9hZE5hbWUoZSk7dGhpcy5fZGF0YUxvYWRTdGF0ZS5zZXQoaSx5Q3QuTE9BREVEKSx0aGlzLmxvYWREYXRhQ2FsbGJhY2sodGhpcyxlLG4pfSkpLGk9dGhpcy5fY2FuY2VsbGVyLmNhbmNlbGxhYmxlKCh0PT57aWYoIXQuY2FuY2VsbGVkKXtjb25zdCB0PW5ldyBTZXQoZS5tYXAoKHQ9PnRoaXMuZ2V0RGF0YUxvYWROYW1lKHQpKSkpO3RoaXMuZGF0YVRvTG9hZC5zb21lKChlPT50Lmhhcyh0aGlzLmdldERhdGFMb2FkTmFtZShlKSkpKSYmdGhpcy5vbkxvYWRGaW5pc2goKSx0aGlzLl9sb2FkRGF0YUFzeW5jPW51bGwsdGhpcy5kYXRhTG9hZGVkQXRMZWFzdE9uY2U9ITB9QXJyYXkuZnJvbSh0aGlzLl9kYXRhTG9hZFN0YXRlLnZhbHVlcygpKS5pbmNsdWRlcyh5Q3QuTE9BRElORyl8fCh0aGlzLmRhdGFMb2FkaW5nPSExKX0pKTt0aGlzLnJlcXVlc3REYXRhKGUsbiwoKCk9Pmkodm9pZCAwKSkpfSkpKSl9fX1PYmplY3QuZGVmaW5lUHJvcGVydHkodkN0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx2Q3QudmVyc2lvbj0iMy45LjAiLChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGU9Qk87dC5BbmltYXRvcnM9Zmd0LHQuQXhlcz1BZ3QsdC5Db21wb25lbnRzPXR4dCx0LkNvbmZpZ3M9Q3l0LHQuRm9ybWF0dGVycz1wdnQsdC5SZW5kZXJDb250cm9sbGVyPXpfdCx0LlJlbmRlclBvbGljaWVzPVF5dCx0LlN5bWJvbEZhY3Rvcmllcz1Id3QsdC5EaXNwYXRjaGVycz1yeHQsdC5EcmF3ZXJzPVBNdCx0LkludGVyYWN0aW9ucz1ueHQsdC5QbG90cz1kRXQsdC5TY2FsZXM9WHZ0LHQuVXRpbHM9RF90LGUuX19leHBvcnRTdGFyKGR2dCx0KSx0LlRpbWVJbnRlcnZhbD1ZdnQuVGltZUludGVydmFsLGUuX19leHBvcnRTdGFyKE9fdCx0KSxlLl9fZXhwb3J0U3Rhcih5d3QsdCksZS5fX2V4cG9ydFN0YXIoZlN0LHQpLHQudmVyc2lvbj12Q3QudmVyc2lvbixlLl9fZXhwb3J0U3RhcihheHQsdCksZS5fX2V4cG9ydFN0YXIoR1N0LHQpLGUuX19leHBvcnRTdGFyKHZ4dCx0KSxlLl9fZXhwb3J0U3RhcihMeHQsdCksZS5fX2V4cG9ydFN0YXIobUV0LHQpLGUuX19leHBvcnRTdGFyKHNTdCx0KSxlLl9fZXhwb3J0U3RhcihMYnQsdCksZS5fX2V4cG9ydFN0YXIobGJ0LHQpfSkoTk8pLChmdW5jdGlvbih0KXt0W3QuTE9BRElORz0wXT0iTE9BRElORyIsdFt0LkxPQURFRD0xXT0iTE9BREVEIn0pKHlDdHx8KHlDdD17fSkpO2NvbnN0IHhDdD1be2NoYXJhY3Rlcjoi4pe8IixtZXRob2Q6Tk8uU3ltYm9sRmFjdG9yaWVzLnNxdWFyZX0se2NoYXJhY3Rlcjoi4peGIixtZXRob2Q6Tk8uU3ltYm9sRmFjdG9yaWVzLmRpYW1vbmR9LHtjaGFyYWN0ZXI6IuKWsiIsbWV0aG9kOk5PLlN5bWJvbEZhY3Rvcmllcy50cmlhbmdsZX0se2NoYXJhY3Rlcjoi4piFIixtZXRob2Q6Tk8uU3ltYm9sRmFjdG9yaWVzLnN0YXJ9LHtjaGFyYWN0ZXI6IuKcmiIsbWV0aG9kOk5PLlN5bWJvbEZhY3Rvcmllcy5jcm9zc31dO3ZhciB3Q3Q7IShmdW5jdGlvbih0KXt0LlNURVA9InN0ZXAiLHQuUkVMQVRJVkU9InJlbGF0aXZlIix0LldBTExfVElNRT0id2FsbF90aW1lIn0pKHdDdHx8KHdDdD17fSkpO2Z1bmN0aW9uIFNDdCh0KXtyZXR1cm4gZT0+e2xldCBuLGk9TWF0aC5hYnMoZSk7cmV0dXJuIGk8MWUtMTUmJihpPTApLG49RHkoaT49MWU0fHxpPjAmJmk8LjAxPyIuIit0KyJ+ZSI6Ii4iK3QrIn5nIiksbihlKX19Y29uc3QgTUN0PUR5KCIuNH5zIik7ZnVuY3Rpb24gRUN0KCl7bGV0IHQ9bmV3IE5PLlNjYWxlcy5MaW5lYXI7dC50aWNrR2VuZXJhdG9yKE5PLlNjYWxlcy5UaWNrR2VuZXJhdG9ycy5pbnRlZ2VyVGlja0dlbmVyYXRvcigpKTtsZXQgZT1uZXcgTk8uQXhlcy5OdW1lcmljKHQsImJvdHRvbSIpO3JldHVybiBlLmZvcm1hdHRlcihNQ3QpLHtzY2FsZTp0LGF4aXM6ZSxhY2Nlc3Nvcjp0PT50LnN0ZXB9fWxldCBUQ3Q9Tk8uRm9ybWF0dGVycy50aW1lKCIlYSAlYiAlZSwgJUg6JU06JVMiKTtsZXQgQ0N0PSh0LGUsbik9PntpZihudWxsIT10LnJlbGF0aXZlKXJldHVybiB0LnJlbGF0aXZlO2xldCBpPW4uZGF0YSgpO3JldHVybigrdC53YWxsX3RpbWUtKGkubGVuZ3RoPjA/K2lbMF0ud2FsbF90aW1lOjApKS8zNmU1fSxBQ3Q9dD0+e2xldCBlPSIiLG49TWF0aC5mbG9vcih0LzI0KTt0LT0yNCpuLG4mJihlKz1uKyJkICIpO2xldCBpPU1hdGguZmxvb3IodCk7dC09aSx0Kj02MCwoaXx8bikmJihlKz1pKyJoICIpO2xldCByPU1hdGguZmxvb3IodCk7cmV0dXJuIHQtPXIsdCo9NjAsKHJ8fGl8fG4pJiYoZSs9cisibSAiKSxlK01hdGguZmxvb3IodCkrInMifTtmdW5jdGlvbiBrQ3QodCl7c3dpdGNoKHQpe2Nhc2Ugd0N0LlNURVA6cmV0dXJuIEVDdCgpO2Nhc2Ugd0N0LldBTExfVElNRTpyZXR1cm4oZnVuY3Rpb24gZSgpe2xldCB0PW5ldyBOTy5TY2FsZXMuVGltZTtyZXR1cm57c2NhbGU6dCxheGlzOm5ldyBOTy5BeGVzLlRpbWUodCwiYm90dG9tIiksYWNjZXNzb3I6dD0+dC53YWxsX3RpbWV9fSkoKTtjYXNlIHdDdC5SRUxBVElWRTpyZXR1cm4oZnVuY3Rpb24gbigpe2xldCB0PW5ldyBOTy5TY2FsZXMuTGluZWFyO3JldHVybntzY2FsZTp0LGF4aXM6bmV3IE5PLkF4ZXMuTnVtZXJpYyh0LCJib3R0b20iKSxhY2Nlc3NvcjpDQ3R9fSkoKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiaW52YWxpZCB4VHlwZTogIit0KX19Y29uc3QgTEN0PVsxLDAsMCwxLDAsMF07ZnVuY3Rpb24gUEN0KHQpe2NvbnN0IGU9KGZ1bmN0aW9uIG4odCl7Y29uc3QgZT1bXTtmb3IoO3QmJnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudDspaWYoZS5wdXNoKHQpLHQuYXNzaWduZWRTbG90KXQ9dC5hc3NpZ25lZFNsb3Q7ZWxzZSBpZih0LnBhcmVudEVsZW1lbnQpdD10LnBhcmVudEVsZW1lbnQ7ZWxzZXtjb25zdCBlPXQucGFyZW50Tm9kZTt0PWUgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50P2UuaG9zdDplIT09dD9lOm51bGx9cmV0dXJuIGV9KSh0KTtsZXQgaT1MQ3Qscj1udWxsO2Zvcihjb25zdCB0IG9mIGUpe2NvbnN0IGU9Tk8uVXRpbHMuRE9NLmdldEVsZW1lbnRUcmFuc2Zvcm0odCk7aWYobnVsbCE9ZSl7Y29uc3Qgbj10LmNsaWVudFdpZHRoLzIscj10LmNsaWVudEhlaWdodC8yO2k9Tk8uVXRpbHMuTWF0aC5tdWx0aXBseVRyYW5zbGF0ZShpLFtuLHJdKSxpPU5PLlV0aWxzLk1hdGgubXVsdGlwbHlNYXRyaXgoaSxOTy5VdGlscy5NYXRoLmludmVydE1hdHJpeChlKSksaT1OTy5VdGlscy5NYXRoLm11bHRpcGx5VHJhbnNsYXRlKGksWy1uLC1yXSl9bGV0IG49dC5zY3JvbGxMZWZ0LG89dC5zY3JvbGxUb3A7bnVsbCE9PXImJnQhPT1yfHwobi09dC5vZmZzZXRMZWZ0K3QuY2xpZW50TGVmdCxvLT10Lm9mZnNldFRvcCt0LmNsaWVudFRvcCxyPXQub2Zmc2V0UGFyZW50KSxpPU5PLlV0aWxzLk1hdGgubXVsdGlwbHlUcmFuc2xhdGUoaSxbbixvXSl9cmV0dXJuIGl9Y2xhc3MgTkN0IGV4dGVuZHMgTk8uVXRpbHMuVHJhbnNsYXRvcntjb21wdXRlUG9zaXRpb24odCxlKXtjb25zdCBuPXt4OnQseTplfSxpPVBDdCh0aGlzLl9yb290RWxlbWVudCk7aWYobnVsbD09aSlyZXR1cm4gbjtyZXR1cm4gTk8uVXRpbHMuTWF0aC5hcHBseVRyYW5zZm9ybShpLG4pfX1jbGFzcyBJQ3QgZXh0ZW5kcyBOTy5EaXNwYXRjaGVycy5Nb3VzZXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLl9ldmVudFRhcmdldD10LnJvb3QoKS5yb290RWxlbWVudCgpLm5vZGUoKSx0aGlzLl90cmFuc2xhdG9yPW5ldyBOQ3QodC5yb290KCkucm9vdEVsZW1lbnQoKS5ub2RlKCkpfXN0YXRpYyBnZXREaXNwYXRjaGVyKHQpe2NvbnN0IGU9dC5yb290KCkucm9vdEVsZW1lbnQoKTtsZXQgbj1lW0lDdC5fRElTUEFUQ0hFUl9LRVldO3JldHVybiBufHwobj1uZXcgSUN0KHQpLGVbSUN0Ll9ESVNQQVRDSEVSX0tFWV09biksbn19Y2xhc3MgUkN0IGV4dGVuZHMgTk8uRGlzcGF0Y2hlcnMuVG91Y2h7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5fZXZlbnRUYXJnZXQ9dC5yb290KCkucm9vdEVsZW1lbnQoKS5ub2RlKCksdGhpcy5fdHJhbnNsYXRvcj1uZXcgTkN0KHQucm9vdCgpLnJvb3RFbGVtZW50KCkubm9kZSgpKX1zdGF0aWMgZ2V0RGlzcGF0Y2hlcih0KXtjb25zdCBlPXQucm9vdCgpLnJvb3RFbGVtZW50KCk7bGV0IG49ZVtSQ3QuX0RJU1BBVENIRVJfS0VZXTtyZXR1cm4gbnx8KG49bmV3IFJDdCh0KSxlW1JDdC5fRElTUEFUQ0hFUl9LRVldPW4pLG59fU5PLkludGVyYWN0aW9uLnByb3RvdHlwZS5faXNJbnNpZGVDb21wb25lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIDA8PXQueCYmMDw9dC55JiZ0Lng8dGhpcy5fY29tcG9uZW50QXR0YWNoZWRUby53aWR0aCgpJiZ0Lnk8dGhpcy5fY29tcG9uZW50QXR0YWNoZWRUby5oZWlnaHQoKX07Y2xhc3MgT0N0IGV4dGVuZHMgTk8uSW50ZXJhY3Rpb25zLlBvaW50ZXJ7X2FuY2hvcih0KXtjb25zdCBlPXRoaXM7ZS5faXNBbmNob3JlZD0hMCxlLl9tb3VzZURpc3BhdGNoZXI9SUN0LmdldERpc3BhdGNoZXIoZS5fY29tcG9uZW50QXR0YWNoZWRUbyksZS5fbW91c2VEaXNwYXRjaGVyLm9uTW91c2VNb3ZlKGUuX21vdXNlTW92ZUNhbGxiYWNrKSxlLl90b3VjaERpc3BhdGNoZXI9UkN0LmdldERpc3BhdGNoZXIoZS5fY29tcG9uZW50QXR0YWNoZWRUbyksZS5fdG91Y2hEaXNwYXRjaGVyLm9uVG91Y2hTdGFydChlLl90b3VjaFN0YXJ0Q2FsbGJhY2spfX12YXIgekN0OyEoZnVuY3Rpb24odCl7dC5BVVRPPSJhdXRvIix0LkJPVFRPTT0iYm90dG9tIix0LlJJR0hUPSJyaWdodCJ9KSh6Q3R8fCh6Q3Q9e30pKTtjb25zdCBEQ3Q9e2JveFNoYWRvdzoiMCAxcHggNHB4IHJnYmEoMCwgMCwgMCwgLjMpIixvcGFjaXR5OjAscG9zaXRpb246ImZpeGVkIix3aWxsQ2hhbmdlOiJ0cmFuc2Zvcm0iLHpJbmRleDo1fTtsZXQgQkN0PWNsYXNzIGV4dGVuZHMoY3Iod2UpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5wb3NpdGlvbj16Q3QuQVVUTyx0aGlzLm1pbkRpc3RGcm9tRWRnZT0xNSx0aGlzLl9zdHlsZUNhY2hlPW51bGwsdGhpcy5fcmFmPW51bGwsdGhpcy5fdHVubmVsPW51bGx9cmVhZHkoKXt0aGlzLl9zdHlsZUNhY2hlPW51bGwsdGhpcy5fcmFmPW51bGwsdGhpcy5fdHVubmVsPW51bGx9YXR0YWNoZWQoKXt0aGlzLl90dW5uZWw9dGhpcy5fY3JlYXRlVHVubmVsKCksdGhpcy5faGlkZU9uQmx1cj0oKT0+e2RvY3VtZW50LmhpZGRlbiYmdGhpcy5oaWRlKCl9LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLl9oaWRlT25CbHVyKX1kZXRhY2hlZCgpe3RoaXMuaGlkZSgpLHRoaXMuX3JlbW92ZVR1bm5lbCh0aGlzLl90dW5uZWwpLHRoaXMuX3R1bm5lbD1udWxsLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLl9oaWRlT25CbHVyKX1jb250ZW50KCl7cmV0dXJuIHRoaXMuX3R1bm5lbC5zaGFkb3dSb290fWhpZGUoKXt3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fcmFmKSx0aGlzLl9zdHlsZUNhY2hlPW51bGwsdGhpcy5fdHVubmVsLnN0eWxlLm9wYWNpdHk9MH11cGRhdGVBbmRQb3NpdGlvbih0KXt3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fcmFmKSx0aGlzLl9yYWY9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9Pnt0aGlzLmlzQXR0YWNoZWQmJnRoaXMuX3JlcG9zaXRpb25JbXBsKHQpfSkpfV9yZXBvc2l0aW9uSW1wbCh0KXtjb25zdCBlPXRoaXMuX3R1bm5lbCxuPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHI9d2luZG93LmlubmVySGVpZ2h0LG89ZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCxhPW4udG9wLHM9YStuLmhlaWdodCxsPWkuaGVpZ2h0KzIwO2xldCBjPW51bGwsdT1NYXRoLm1heCh0aGlzLm1pbkRpc3RGcm9tRWRnZSxuLmxlZnQpLGg9bnVsbCxkPWE7dGhpcy5wb3NpdGlvbj09ekN0LlJJR0hUP3U9bi5yaWdodDooZD1zKzIwLG88dStpLndpZHRoK3RoaXMubWluRGlzdEZyb21FZGdlJiYodT1udWxsLGg9dGhpcy5taW5EaXN0RnJvbUVkZ2UpKSx0aGlzLnBvc2l0aW9uPT16Q3QuQVVUTyYmbi50b3AtbD4wJiZyPG4udG9wK24uaGVpZ2h0K2wmJihkPW51bGwsYz1yLWErMjApO2NvbnN0IHA9e2NvbnRhaW46ImNvbnRlbnQiLG9wYWNpdHk6MSxsZWZ0OnU/YCR7dX1weGA6bnVsbCxyaWdodDpoP2Ake2h9cHhgOm51bGwsdG9wOmQ/YCR7ZH1weGA6bnVsbCxib3R0b206Yz9gJHtjfXB4YDpudWxsfTtDZS5leHBvcnRzLmlzRXF1YWwodGhpcy5fc3R5bGVDYWNoZSxwKXx8KE9iamVjdC5hc3NpZ24oZS5zdHlsZSxwKSx0aGlzLl9zdHlsZUNhY2hlPXApfV9jcmVhdGVUdW5uZWwoKXtpZighdGhpcy5jb250ZW50Q29tcG9uZW50TmFtZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiUmVxdWlyZSBgY29udGVudENvbXBvbmVudE5hbWVgIHRvIGJlIGEgbmFtZSBvZiBhIFBvbHltZXIgY29tcG9uZW50Iik7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY29udGVudENvbXBvbmVudE5hbWUpO3JldHVybiBPYmplY3QuYXNzaWduKHQuc3R5bGUsREN0KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpLHR9X3JlbW92ZVR1bm5lbCh0KXtkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHQpfX07dChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sQkN0LnByb3RvdHlwZSwiY29udGVudENvbXBvbmVudE5hbWUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sQkN0LnByb3RvdHlwZSwicG9zaXRpb24iLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sQkN0LnByb3RvdHlwZSwibWluRGlzdEZyb21FZGdlIix2b2lkIDApLEJDdD10KFtpKCJ2ei1jaGFydC10b29sdGlwIildLEJDdCk7Y29uc3QgSEN0PUR5KCIuMn5lIiksRkN0PUR5KCIuNH5yIiksVkN0PUR5KCIsfiIpO2Z1bmN0aW9uIFVDdCh0KXtpZigwPT09dClyZXR1cm4iMCI7Y29uc3QgZT1NYXRoLmFicyh0KTtyZXR1cm4gZT49MWU0fHxlPC4wMDE/SEN0KHQpOkZDdCh0KX1jb25zdCBqQ3Q9e2Zvcm1hdFRpY2s6VUN0LGZvcm1hdFNob3J0OlVDdCxmb3JtYXRSZWFkYWJsZSh0KXtjb25zdCBlPU1hdGguYWJzKHQpO3JldHVybiBlPj0xZTR8fGU8LjAwMT9IQ3QodCk6VkN0KHQpfSxmb3JtYXRMb25nOlZDdH07RHkoIjAuM35zIiksRHkoIiwuM35mIiksRHkoIi40fiIpO2NvbnN0IEdDdD16QSgpLnRpY2tGb3JtYXQoKTtsZXQgV0N0O2NvbnN0IHFDdD17Zm9ybWF0VGljazp0PT5HQ3QobmV3IERhdGUodCkpLGZvcm1hdFNob3J0OnQ9Pm5ldyBEYXRlKHQpLnRvTG9jYWxlU3RyaW5nKFdDdCx7eWVhcjoibnVtZXJpYyIsbW9udGg6InNob3J0IixkYXk6Im51bWVyaWMiLGhvdXI6Im51bWVyaWMiLG1pbnV0ZToibnVtZXJpYyIsc2Vjb25kOiJudW1lcmljIn0pLGZvcm1hdFJlYWRhYmxlOnQ9Pm5ldyBEYXRlKHQpLnRvTG9jYWxlU3RyaW5nKFdDdCx7eWVhcjoibnVtZXJpYyIsbW9udGg6InNob3J0IixkYXk6Im51bWVyaWMiLGhvdXI6Im51bWVyaWMiLG1pbnV0ZToibnVtZXJpYyIsc2Vjb25kOiJudW1lcmljIix0aW1lWm9uZU5hbWU6InNob3J0In0pLGZvcm1hdExvbmc6dD0+bmV3IERhdGUodCkudG9Mb2NhbGVTdHJpbmcoV0N0LHt5ZWFyOiJudW1lcmljIixtb250aDoibG9uZyIsZGF5OiJudW1lcmljIixob3VyOiJudW1lcmljIixtaW51dGU6Im51bWVyaWMiLHNlY29uZDoibnVtZXJpYyIsdGltZVpvbmVOYW1lOiJzaG9ydCIsZnJhY3Rpb25hbFNlY29uZERpZ2l0czozfSl9O3ZhciBZQ3Q7IShmdW5jdGlvbih0KXt0W3QuTElORUFSPTBdPSJMSU5FQVIiLHRbdC5MT0cxMD0xXT0iTE9HMTAiLHRbdC5USU1FPTJdPSJUSU1FIn0pKFlDdHx8KFlDdD17fSkpO2NsYXNzIFhDdHtjb25zdHJ1Y3Rvcigpe3RoaXMuZGVmYXVsdEZvcm1hdHRlcj1qQ3R9dHJhbnNmb3JtKHQsZSxuKXtjb25zdFtpLHJdPXQsbz1yLWksW2Esc109ZTtyZXR1cm4gMD09PW8/YToocy1hKS9vKihuLWkpK2F9Zm9yd2FyZCh0LGUsbil7cmV0dXJuIHRoaXMudHJhbnNmb3JtKHQsZSxuKX1yZXZlcnNlKHQsZSxuKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0oZSx0LG4pfW5pY2VEb21haW4odCl7bGV0W2Usbl09dDtpZihuPGUpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIGlucHV0OiBtaW4gaXMgbGFyZ2VyIHRoYW4gbWF4Iik7aWYobj09PWUpcmV0dXJuIDA9PT1lP1stMSwxXTplPDA/WzIqZSwwXTpbMCwyKmVdO2NvbnN0IGk9Y0UoKSxyPS4wNSoobi1lK051bWJlci5FUFNJTE9OKSxbbyxhXT1pLmRvbWFpbihbZS1yLG4rcl0pLm5pY2UoKS5kb21haW4oKTtyZXR1cm5bbyxhXX10aWNrcyh0LGUpe3JldHVybiBjRSgpLmRvbWFpbih0KS50aWNrcyhlKX1pc1NhZmVOdW1iZXIodCl7cmV0dXJuIE51bWJlci5pc0Zpbml0ZSh0KX19Y2xhc3MgJEN0e2NvbnN0cnVjdG9yKCl7dGhpcy5kZWZhdWx0Rm9ybWF0dGVyPWpDdH10cmFuc2Zvcm0odCl7cmV0dXJuIE1hdGgubG9nMTAodD4wP3Q6TnVtYmVyLk1JTl9WQUxVRSl9dW50cmFuc2Zvcm0odCl7cmV0dXJuIE1hdGguZXhwKHQvTWF0aC5MT0cxMEUpfWZvcndhcmQodCxlLG4pe2lmKG48PTApcmV0dXJuIGVbMF07Y29uc3RbaSxyXT10LFtvLGFdPWUscz10aGlzLnRyYW5zZm9ybShpKSxsPXRoaXMudHJhbnNmb3JtKHIpLXMsYz1hLW87cmV0dXJuIG49dGhpcy50cmFuc2Zvcm0obiksYy8obCtOdW1iZXIuRVBTSUxPTikqKG4tcykrb31yZXZlcnNlKHQsZSxuKXtjb25zdFtpLHJdPXQsW28sYV09ZSxzPXRoaXMudHJhbnNmb3JtKGkpLGw9dGhpcy50cmFuc2Zvcm0ocik7cmV0dXJuIHRoaXMudW50cmFuc2Zvcm0oKGwtcykvKGEtbytOdW1iZXIuRVBTSUxPTikqKG4tbykrcyl9bmljZURvbWFpbih0KXtjb25zdFtlLG5dPXQ7aWYoZT5uKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBpbnB1dDogbWluIGlzIGxhcmdlciB0aGFuIG1heCIpO2NvbnN0IGk9TWF0aC5tYXgoZSxOdW1iZXIuTUlOX1ZBTFVFKSxyPU1hdGgubWF4KG4sTnVtYmVyLk1JTl9WQUxVRSk7cmV0dXJuIG48PTA/W051bWJlci5NSU5fVkFMVUUsMV06W01hdGgubWF4KE51bWJlci5NSU5fVkFMVUUsLjUqaSksMipyXX10aWNrcyh0LGUpe2NvbnN0IG49dFswXTw9MD9OdW1iZXIuTUlOX1ZBTFVFOnRbMF0saT10WzFdPD0wP051bWJlci5NSU5fVkFMVUU6dFsxXSxyPXlFKCkuZG9tYWluKFtuLGldKS50aWNrcyhlKTtyZXR1cm4gci5sZW5ndGg/cjp0fWlzU2FmZU51bWJlcih0KXtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKHQpJiZ0PjB9fWNsYXNzIEtDdHtjb25zdHJ1Y3Rvcigpe3RoaXMuc2NhbGU9ekEoKSx0aGlzLmRlZmF1bHRGb3JtYXR0ZXI9cUN0fWZvcndhcmQodCxlLG4pe3JldHVybiB0aGlzLnNjYWxlLmRvbWFpbih0KS5yYW5nZShlKShuKX1yZXZlcnNlKHQsZSxuKXtyZXR1cm4gdGhpcy5zY2FsZS5kb21haW4odCkucmFuZ2UoZSkuaW52ZXJ0KG4pLmdldFRpbWUoKX1uaWNlRG9tYWluKHQpe2NvbnN0W2Usbl09dGhpcy5zY2FsZS5kb21haW4odCkubmljZSgpLmRvbWFpbigpO3JldHVybltlLmdldFRpbWUoKSxuLmdldFRpbWUoKV19dGlja3ModCxlKXtyZXR1cm4gdGhpcy5zY2FsZS5kb21haW4odCkudGlja3MoZSkubWFwKCh0PT50LmdldFRpbWUoKSkpfWlzU2FmZU51bWJlcih0KXtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKHQpfX1jbGFzcyBaQ3QgZXh0ZW5kcyBOTy5TY2FsZXMuTGluZWFye2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9pZ25vcmVPdXRsaWVyPSExLHRoaXMucGFkUHJvcG9ydGlvbiguMil9c2V0VmFsdWVQcm92aWRlckZvckRvbWFpbih0KXtyZXR1cm4gdGhpcy5fdmFsdWVQcm92aWRlckZvckRvbWFpbj10LHRoaXN9X25pY2VEb21haW4odCxlKXtjb25zdFtuLGldPXQ7cmV0dXJuKGZ1bmN0aW9uIHIodCl7c3dpdGNoKHQpe2Nhc2UgWUN0LkxJTkVBUjpyZXR1cm4gbmV3IFhDdDtjYXNlIFlDdC5MT0cxMDpyZXR1cm4gbmV3ICRDdDtjYXNlIFlDdC5USU1FOnJldHVybiBuZXcgS0N0O2RlZmF1bHQ6dGhyb3cgbmV3IFJhbmdlRXJyb3IoYFNjYWxlVHlwZSAke3R9IG5vdCBzdXBwb3J0ZWQuYCl9fSkoWUN0LkxJTkVBUikubmljZURvbWFpbihbbixpXSl9X2dldFVuYm91bmRlZEV4dGVudCh0KXtjb25zdCBlPXRoaXMuX2dldEFsbEluY2x1ZGVkVmFsdWVzKHQpO2xldCBuPXRoaXMuX2RlZmF1bHRFeHRlbnQoKTtpZigwIT09ZS5sZW5ndGgpe2NvbnN0IHQ9W05PLlV0aWxzLk1hdGgubWluKGUsblswXSksTk8uVXRpbHMuTWF0aC5tYXgoZSxuWzFdKV07bj10aGlzLl9uaWNlRG9tYWluKHQpfXJldHVybiBufV9nZXRBbGxJbmNsdWRlZFZhbHVlcyh0PSExKXtjb25zdCBlPXRoaXMuX3ZhbHVlUHJvdmlkZXJGb3JEb21haW4/dGhpcy5fdmFsdWVQcm92aWRlckZvckRvbWFpbigpOltdO3JldHVybiB0aGlzLmV4dGVudE9mVmFsdWVzKGUpfWV4dGVudE9mVmFsdWVzKHQpe2NvbnN0IGU9dC5maWx0ZXIoKHQ9Pk5PLlV0aWxzLk1hdGguaXNWYWxpZE51bWJlcih0KSkpO2xldCBuPWU7aWYodGhpcy5pZ25vcmVPdXRsaWVyKCkpe2NvbnN0IHQ9ZS5zb3J0KCgodCxlKT0+dC1lKSksaT1yYyh0LC4wNSkscj1yYyh0LC45NSk7bj1lLmZpbHRlcigodD0+dD49aSYmdDw9cikpfWNvbnN0IGk9R2wobik7cmV0dXJuIG51bGw9PWlbMF18fG51bGw9PWlbMV0/W106aX1pZ25vcmVPdXRsaWVyKHQpe3JldHVybiJib29sZWFuIj09dHlwZW9mIHQ/KHRoaXMuX2lnbm9yZU91dGxpZXI9dCx0aGlzKTp0aGlzLl9pZ25vcmVPdXRsaWVyfX1jbGFzcyBKQ3QgZXh0ZW5kcyBOTy5RdWFudGl0YXRpdmVTY2FsZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5faWdub3JlT3V0bGllcj0hMX1zZXRWYWx1ZVByb3ZpZGVyRm9yRG9tYWluKHQpe3JldHVybiB0aGlzLl92YWx1ZVByb3ZpZGVyRm9yRG9tYWluPXQsdGhpc31pZ25vcmVPdXRsaWVyKHQpe3JldHVybiJib29sZWFuIj09dHlwZW9mIHQ/KHRoaXMuX2lnbm9yZU91dGxpZXI9dCx0aGlzKTp0aGlzLl9pZ25vcmVPdXRsaWVyfV9nZXRBbGxJbmNsdWRlZFZhbHVlcyh0PSExKXtjb25zdCBlPXRoaXMuX3ZhbHVlUHJvdmlkZXJGb3JEb21haW4/dGhpcy5fdmFsdWVQcm92aWRlckZvckRvbWFpbigpOltdO3JldHVybiB0aGlzLmV4dGVudE9mVmFsdWVzKGUpfX1jb25zdCBRQ3Q9TWF0aC5wb3coMiwtMTA3NCk7ZnVuY3Rpb24gdEF0KHQpe3JldHVybiBNYXRoLmxvZzEwKHQpfWZ1bmN0aW9uIGVBdCh0KXtyZXR1cm4gTWF0aC5wb3coMTAsdCl9Y2xhc3MgbkF0IGV4dGVuZHMgSkN0e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9kM0xvZ1NjYWxlPXlFKCksdGhpcy5wYWRQcm9wb3J0aW9uKC4yKX1zY2FsZSh0KXtyZXR1cm4gdDw9MD9OYU46dGhpcy5fZDNMb2dTY2FsZSh0KX1pbnZlcnQodCl7cmV0dXJuIHRoaXMuX2QzTG9nU2NhbGUuaW52ZXJ0KHQpfXNjYWxlVHJhbnNmb3JtYXRpb24odCl7cmV0dXJuIHRoaXMuc2NhbGUodCl9aW52ZXJ0ZWRUcmFuc2Zvcm1hdGlvbih0KXtyZXR1cm4gdGhpcy5pbnZlcnQodCl9Z2V0VHJhbnNmb3JtYXRpb25Eb21haW4oKXtyZXR1cm4gdGhpcy5kb21haW4oKX1zZXRUcmFuc2Zvcm1hdGlvbkRvbWFpbih0KXt0aGlzLmRvbWFpbih0KX1nZXRUcmFuc2Zvcm1hdGlvbkV4dGVudCgpe3JldHVybiB0aGlzLl9nZXRVbmJvdW5kZWRFeHRlbnQoITApfV9nZXREb21haW4oKXtyZXR1cm4gdGhpcy5fdW50cmFuc2Zvcm1lZERvbWFpbn1fc2V0RG9tYWluKHQpe3RoaXMuX3VudHJhbnNmb3JtZWREb21haW49dDtjb25zdFtlLG5dPXQ7c3VwZXIuX3NldERvbWFpbihbTWF0aC5tYXgoUUN0LGUpLG5dKX1fbmljZURvbWFpbih0LGUpe2NvbnN0W24saV09dCxyPU1hdGgubWF4KHRBdChRQ3QpLHRBdChuKSksbz10QXQoaSksYT1vLXIscz1hP2EqdGhpcy5wYWRQcm9wb3J0aW9uKCk6MTtyZXR1cm5bZUF0KE1hdGgubWF4KHRBdChRQ3QpLHItcykpLGVBdChvK3MpXX1fZ2V0VW5ib3VuZGVkRXh0ZW50KHQpe2NvbnN0IGU9dGhpcy5fZ2V0QWxsSW5jbHVkZWRWYWx1ZXModCk7bGV0IG49dGhpcy5fZGVmYXVsdEV4dGVudCgpO2lmKDAhPT1lLmxlbmd0aCl7Y29uc3QgdD1bTk8uVXRpbHMuTWF0aC5taW4oZSxuWzBdKSxOTy5VdGlscy5NYXRoLm1heChlLG5bMV0pXTtuPXRoaXMuX25pY2VEb21haW4odCl9cmV0dXJuIG59X2dldEFsbEluY2x1ZGVkVmFsdWVzKHQ9ITEpe3JldHVybiBzdXBlci5fZ2V0QWxsSW5jbHVkZWRWYWx1ZXMoKS5tYXAoKHQ9PnQ+MD90OlFDdCkpfV9kZWZhdWx0RXh0ZW50KCl7cmV0dXJuWzEsMTBdfV9iYWNraW5nU2NhbGVEb21haW4odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5fZDNMb2dTY2FsZS5kb21haW4oKToodGhpcy5fZDNMb2dTY2FsZS5kb21haW4odCksdGhpcyl9X2dldFJhbmdlKCl7cmV0dXJuIHRoaXMuX2QzTG9nU2NhbGUucmFuZ2UoKX1fc2V0UmFuZ2UodCl7dGhpcy5fZDNMb2dTY2FsZS5yYW5nZSh0KX1kZWZhdWx0VGlja3MoKXtyZXR1cm4gdGhpcy5fZDNMb2dTY2FsZS50aWNrcygxKX10aWNrcygpe3JldHVybiB0aGlzLl9kM0xvZ1NjYWxlLnRpY2tzKCl9ZXh0ZW50T2ZWYWx1ZXModCl7Y29uc3QgZT10LmZpbHRlcigodD0+Tk8uVXRpbHMuTWF0aC5pc1ZhbGlkTnVtYmVyKHQpJiZ0PjApKTtsZXQgbj1lO2lmKHRoaXMuaWdub3JlT3V0bGllcigpKXtjb25zdCB0PWUubWFwKHRBdCkuc29ydCgoKHQsZSk9PnQtZSkpLGk9cmModCwuMDUpLHI9cmModCwuOTUpO249dC5maWx0ZXIoKHQ9PnQ+PWkmJnQ8PXIpKS5tYXAoZUF0KX1jb25zdCBpPUdsKG4pO3JldHVybiBudWxsPT1pWzBdfHxudWxsPT1pWzFdP1tdOml9fWNsYXNzIGlBdCBleHRlbmRzIE5PLkNvbXBvbmVudHMuU2VsZWN0aW9uQm94TGF5ZXJ7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKCksdGhpcy5lYXNlRm49cWYsdGhpcy5fYW5pbWF0aW9uVGltZT03NTAsdGhpcy54U2NhbGUodCksdGhpcy55U2NhbGUoZSksdGhpcy5fZHJhZ0ludGVyYWN0aW9uPW5ldyBOTy5JbnRlcmFjdGlvbnMuRHJhZyx0aGlzLl9kb3VibGVDbGlja0ludGVyYWN0aW9uPW5ldyBOTy5JbnRlcmFjdGlvbnMuQ2xpY2ssdGhpcy5zZXR1cENhbGxiYWNrcygpLHRoaXMudW56b29tTWV0aG9kPW4sdGhpcy5vbkRldGFjaCgoKCk9Pnt0aGlzLl9kb3VibGVDbGlja0ludGVyYWN0aW9uLmRldGFjaEZyb20odGhpcyksdGhpcy5fZHJhZ0ludGVyYWN0aW9uLmRldGFjaEZyb20odGhpcyl9KSksdGhpcy5vbkFuY2hvcigoKCk9Pnt0aGlzLl9kb3VibGVDbGlja0ludGVyYWN0aW9uLmF0dGFjaFRvKHRoaXMpLHRoaXMuX2RyYWdJbnRlcmFjdGlvbi5hdHRhY2hUbyh0aGlzKX0pKX1pbnRlcmFjdGlvblN0YXJ0KHQpe3RoaXMub25TdGFydD10fWludGVyYWN0aW9uRW5kKHQpe3RoaXMub25FbmQ9dH1kcmFnSW50ZXJhY3Rpb24oKXtyZXR1cm4gdGhpcy5fZHJhZ0ludGVyYWN0aW9ufXNldHVwQ2FsbGJhY2tzKCl7bGV0IHQ9ITE7dGhpcy5fZHJhZ0ludGVyYWN0aW9uLm9uRHJhZ1N0YXJ0KCh0PT57dGhpcy5ib3VuZHMoe3RvcExlZnQ6dCxib3R0b21SaWdodDp0fSksdGhpcy5vblN0YXJ0KCl9KSksdGhpcy5fZHJhZ0ludGVyYWN0aW9uLm9uRHJhZygoKGUsbik9Pnt0aGlzLmJvdW5kcyh7dG9wTGVmdDplLGJvdHRvbVJpZ2h0Om59KSx0aGlzLmJveFZpc2libGUoITApLHQ9ITB9KSksdGhpcy5fZHJhZ0ludGVyYWN0aW9uLm9uRHJhZ0VuZCgoKGUsbik9Pnt0aGlzLmJveFZpc2libGUoITEpLHRoaXMuYm91bmRzKHt0b3BMZWZ0OmUsYm90dG9tUmlnaHQ6bn0pLHQ/dGhpcy56b29tKCk6dGhpcy5vbkVuZCgpLHQ9ITF9KSksdGhpcy5fZG91YmxlQ2xpY2tJbnRlcmFjdGlvbi5vbkRvdWJsZUNsaWNrKHRoaXMudW56b29tLmJpbmQodGhpcykpfWFuaW1hdGlvblRpbWUodCl7aWYobnVsbD09dClyZXR1cm4gdGhpcy5fYW5pbWF0aW9uVGltZTtpZih0PDApdGhyb3cgbmV3IEVycm9yKCJhbmltYXRpb25UaW1lIGNhbm5vdCBiZSBuZWdhdGl2ZSIpO3JldHVybiB0aGlzLl9hbmltYXRpb25UaW1lPXQsdGhpc31lYXNlKHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiZWFzZSBmdW5jdGlvbiBtdXN0IGJlIGEgZnVuY3Rpb24iKTtyZXR1cm4gMD09PXQoMCkmJjE9PT10KDEpfHxOTy5VdGlscy5XaW5kb3cud2FybigiRWFzaW5nIGZ1bmN0aW9uIGRvZXMgbm90IG1haW50YWluIGludmFyaWFudCBmKDApPT0wICYmIGYoMSk9PTEuIEJhZCBiZWhhdmlvciBtYXkgcmVzdWx0LiIpLHRoaXMuZWFzZUZuPXQsdGhpc316b29tKCl7bGV0IHQ9dGhpcy54RXh0ZW50KClbMF0udmFsdWVPZigpLGU9dGhpcy54RXh0ZW50KClbMV0udmFsdWVPZigpLG49dGhpcy55RXh0ZW50KClbMV0udmFsdWVPZigpLGk9dGhpcy55RXh0ZW50KClbMF0udmFsdWVPZigpO3QhPT1lJiZuIT09aSYmdGhpcy5pbnRlcnBvbGF0ZVpvb20odCxlLG4saSl9dW56b29tKCl7bGV0IHQ9dGhpcy54U2NhbGUoKTt0Ll9kb21haW5NaW49bnVsbCx0Ll9kb21haW5NYXg9bnVsbDtsZXQgZT10Ll9nZXRFeHRlbnQoKTt0aGlzLnhTY2FsZSgpLmRvbWFpbihlKSx0aGlzLnVuem9vbU1ldGhvZCgpfWlzWm9vbWluZyh0KXt0aGlzLl9kcmFnSW50ZXJhY3Rpb24uZW5hYmxlZCghdCksdGhpcy5fZG91YmxlQ2xpY2tJbnRlcmFjdGlvbi5lbmFibGVkKCF0KX1pbnRlcnBvbGF0ZVpvb20odCxlLG4saSl7bGV0IHI9dGhpcy54U2NhbGUoKS5kb21haW4oKVswXS52YWx1ZU9mKCksbz10aGlzLnhTY2FsZSgpLmRvbWFpbigpWzFdLnZhbHVlT2YoKSxhPXRoaXMueVNjYWxlKCkuZG9tYWluKClbMF0udmFsdWVPZigpLHM9dGhpcy55U2NhbGUoKS5kb21haW4oKVsxXS52YWx1ZU9mKCksbD10aGlzLmVhc2VGbixjPSh0LGUsbik9PnJwKHQsZSkobChuKSk7dGhpcy5pc1pvb21pbmcoITApO2xldCB1PURhdGUubm93KCksaD0oKT0+e2xldCBsPURhdGUubm93KCksZD0wPT09dGhpcy5fYW5pbWF0aW9uVGltZT8xOk1hdGgubWluKDEsKGwtdSkvdGhpcy5fYW5pbWF0aW9uVGltZSkscD1jKHIsdCxkKSxmPWMobyxlLGQpLG09YyhhLG4sZCksZz1jKHMsaSxkKTt0aGlzLnhTY2FsZSgpLmRvbWFpbihbcCxmXSksdGhpcy55U2NhbGUoKS5kb21haW4oW20sZ10pLGQ8MT9OTy5VdGlscy5ET00ucmVxdWVzdEFuaW1hdGlvbkZyYW1lUG9seWZpbGwoaCk6KHRoaXMub25FbmQoKSx0aGlzLmlzWm9vbWluZyghMSkpfTtoKCl9fXZhciByQXQsb0F0LGFBdDshKGZ1bmN0aW9uKHQpe3RbdC5OT05FPTBdPSJOT05FIix0W3QuRFJBR19aT09NSU5HPTFdPSJEUkFHX1pPT01JTkciLHRbdC5QQU5OSU5HPTJdPSJQQU5OSU5HIn0pKHJBdHx8KHJBdD17fSkpO2NsYXNzIHNBdCBleHRlbmRzIE5PLkNvbXBvbmVudHMuR3JvdXB7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKCksdGhpcy5zdGF0ZT1yQXQuTk9ORSx0aGlzLnBhblN0YXJ0Q2FsbGJhY2s9bmV3IE5PLlV0aWxzLkNhbGxiYWNrU2V0LHRoaXMucGFuRW5kQ2FsbGJhY2s9bmV3IE5PLlV0aWxzLkNhbGxiYWNrU2V0LHRoaXMucGFuWm9vbT1uZXcgTk8uSW50ZXJhY3Rpb25zLlBhblpvb20odCxlKSx0aGlzLnBhblpvb20uZHJhZ0ludGVyYWN0aW9uKCkubW91c2VGaWx0ZXIoKHQ9PnNBdC5pc1BhbktleSh0KSYmMD09PXQuYnV0dG9uKSksdGhpcy5wYW5ab29tLndoZWVsRmlsdGVyKHRoaXMuY2FuU2Nyb2xsWm9vbSksdGhpcy5kcmFnWm9vbUxheWVyPW5ldyBpQXQodCxlLG4pLHRoaXMuZHJhZ1pvb21MYXllci5kcmFnSW50ZXJhY3Rpb24oKS5tb3VzZUZpbHRlcigodD0+IXNBdC5pc1BhbktleSh0KSYmMD09PXQuYnV0dG9uKSksdGhpcy5hcHBlbmQodGhpcy5kcmFnWm9vbUxheWVyKTtjb25zdCBpPXRoaXMub25XaGVlbC5iaW5kKHRoaXMpO3RoaXMub25BbmNob3IoKCgpPT57dGhpcy5fbW91c2VEaXNwYXRjaGVyPU5PLkRpc3BhdGNoZXJzLk1vdXNlLmdldERpc3BhdGNoZXIodGhpcyksdGhpcy5fbW91c2VEaXNwYXRjaGVyLm9uV2hlZWwoaSksdGhpcy5wYW5ab29tLmF0dGFjaFRvKHRoaXMpfSkpLHRoaXMub25EZXRhY2goKCgpPT57dGhpcy5wYW5ab29tLmRldGFjaEZyb20odGhpcyksdGhpcy5fbW91c2VEaXNwYXRjaGVyJiYodGhpcy5fbW91c2VEaXNwYXRjaGVyLm9mZldoZWVsKGkpLHRoaXMuX21vdXNlRGlzcGF0Y2hlcj1udWxsKX0pKSx0aGlzLnBhblpvb20uZHJhZ0ludGVyYWN0aW9uKCkub25EcmFnU3RhcnQoKCgpPT57dGhpcy5zdGF0ZT09ckF0Lk5PTkUmJnRoaXMuc2V0U3RhdGUockF0LlBBTk5JTkcpfSkpLHRoaXMucGFuWm9vbS5kcmFnSW50ZXJhY3Rpb24oKS5vbkRyYWdFbmQoKCgpPT57dGhpcy5zdGF0ZT09ckF0LlBBTk5JTkcmJnRoaXMuc2V0U3RhdGUockF0Lk5PTkUpfSkpLHRoaXMuZHJhZ1pvb21MYXllci5kcmFnSW50ZXJhY3Rpb24oKS5vbkRyYWdTdGFydCgoKCk9Pnt0aGlzLnN0YXRlPT1yQXQuTk9ORSYmdGhpcy5zZXRTdGF0ZShyQXQuRFJBR19aT09NSU5HKX0pKSx0aGlzLmRyYWdab29tTGF5ZXIuZHJhZ0ludGVyYWN0aW9uKCkub25EcmFnRW5kKCgoKT0+e3RoaXMuc3RhdGU9PXJBdC5EUkFHX1pPT01JTkcmJnRoaXMuc2V0U3RhdGUockF0Lk5PTkUpfSkpfW9uV2hlZWwodCxlKXtpZih0aGlzLmNhblNjcm9sbFpvb20oZSkpcmV0dXJuO2NvbnN0IG49dGhpcy5lbGVtZW50KCk7aWYoIW4uc2VsZWN0KCIuaGVscCIpLmVtcHR5KCkpcmV0dXJuO2NvbnN0IGk9bi5hcHBlbmQoImRpdiIpLmNsYXNzZWQoImhlbHAiLCEwKTtpLmFwcGVuZCgic3BhbiIpLnRleHQoIkFsdCArIFNjcm9sbCB0byBab29tIiksaS5vbigiYW5pbWF0aW9uZW5kIiwoKCk9PntpLnJlbW92ZSgpfSkpfXN0YXRpYyBpc1BhbktleSh0KXtyZXR1cm4gQm9vbGVhbih0LmFsdEtleSl8fEJvb2xlYW4odC5zaGlmdEtleSl9Y2FuU2Nyb2xsWm9vbSh0KXtyZXR1cm4gdC5hbHRLZXl9c2V0U3RhdGUodCl7aWYodGhpcy5zdGF0ZT09dClyZXR1cm47Y29uc3QgZT10aGlzLnN0YXRlO3RoaXMuc3RhdGU9dCx0aGlzLnJvb3QoKS5yZW1vdmVDbGFzcyh0aGlzLnN0YXRlQ2xhc3NOYW1lKGUpKSx0aGlzLnJvb3QoKS5hZGRDbGFzcyh0aGlzLnN0YXRlQ2xhc3NOYW1lKHQpKSxlPT1yQXQuUEFOTklORyYmdGhpcy5wYW5FbmRDYWxsYmFjay5jYWxsQ2FsbGJhY2tzKCksdD09ckF0LlBBTk5JTkcmJnRoaXMucGFuU3RhcnRDYWxsYmFjay5jYWxsQ2FsbGJhY2tzKCl9c3RhdGVDbGFzc05hbWUodCl7c3dpdGNoKHQpe2Nhc2UgckF0LlBBTk5JTkc6cmV0dXJuInBhbm5pbmciO2Nhc2UgckF0LkRSQUdfWk9PTUlORzpyZXR1cm4iZHJhZy16b29taW5nIjtjYXNlIHJBdC5OT05FOmRlZmF1bHQ6cmV0dXJuIiJ9fW9uUGFuU3RhcnQodCl7dGhpcy5wYW5TdGFydENhbGxiYWNrLmFkZCh0KX1vblBhbkVuZCh0KXt0aGlzLnBhbkVuZENhbGxiYWNrLmFkZCh0KX1vblNjcm9sbFpvb20odCl7dGhpcy5wYW5ab29tLm9uWm9vbUVuZCh0KX1vbkRyYWdab29tU3RhcnQodCl7dGhpcy5kcmFnWm9vbUxheWVyLmludGVyYWN0aW9uU3RhcnQodCl9b25EcmFnWm9vbUVuZCh0KXt0aGlzLmRyYWdab29tTGF5ZXIuaW50ZXJhY3Rpb25FbmQodCl9fSEoZnVuY3Rpb24odCl7dFt0LlRFWFQ9MF09IlRFWFQiLHRbdC5ET009MV09IkRPTSJ9KShvQXR8fChvQXQ9e30pKSwoZnVuY3Rpb24odCl7dC5MT0c9ImxvZyIsdC5MSU5FQVI9ImxpbmVhciJ9KShhQXR8fChhQXQ9e30pKTtjbGFzcyBsQXR7Y29uc3RydWN0b3IodCxlLG4saSxyLG8sYSxzLGwsYyx1KXt0aGlzLmRpcnR5RGF0YXNldHM9bmV3IFNldCx0aGlzLnNlcmllc05hbWVzPVtdLHRoaXMubmFtZTJkYXRhc2V0cz17fSx0aGlzLmNvbG9yU2NhbGU9aSx0aGlzLnRvb2x0aXA9cix0aGlzLmRhdGFzZXRzPVtdLHRoaXMuX2lnbm9yZVlPdXRsaWVycz0hMSx0aGlzLmxhc3RQb2ludHNEYXRhc2V0PW5ldyBOTy5EYXRhc2V0LHRoaXMubmFuRGF0YXNldD1uZXcgTk8uRGF0YXNldCx0aGlzLnlWYWx1ZUFjY2Vzc29yPWUsdGhpcy5zeW1ib2xGdW5jdGlvbj1jLHRoaXMuX2RlZmF1bHRYUmFuZ2U9cyx0aGlzLl9kZWZhdWx0WVJhbmdlPWwsdGhpcy50b29sdGlwQ29sdW1ucz1vLHRoaXMuYnVpbGRDaGFydCh0LGUsbixhLHUpfWJ1aWxkQ2hhcnQodCxlLG4saSxyKXt0aGlzLmRlc3Ryb3koKTtjb25zdCBvPXQoKTt0aGlzLnhBY2Nlc3Nvcj1vLmFjY2Vzc29yLHRoaXMueFNjYWxlPW8uc2NhbGUsdGhpcy54QXhpcz1vLmF4aXMsdGhpcy54QXhpcy5tYXJnaW4oMSkudGlja0xhYmVsUGFkZGluZygzKSxyJiZ0aGlzLnhBeGlzLmZvcm1hdHRlcihyKSx0aGlzLnlTY2FsZT1sQXQuZ2V0WVNjYWxlRnJvbVR5cGUobiksdGhpcy55U2NhbGUuc2V0VmFsdWVQcm92aWRlckZvckRvbWFpbigoKCk9PnRoaXMuZ2V0VmFsdWVzRm9yWUF4aXNEb21haW5Db21wdXRlKCkpKSx0aGlzLnlBeGlzPW5ldyBOTy5BeGVzLk51bWVyaWModGhpcy55U2NhbGUsImxlZnQiKTtsZXQgYT1TQ3QoMyk7dGhpcy55QXhpcy5tYXJnaW4oMCkudGlja0xhYmVsUGFkZGluZyg1KS5mb3JtYXR0ZXIoYSksdGhpcy55QXhpcy51c2VzVGV4dFdpZHRoQXBwcm94aW1hdGlvbighMCksdGhpcy5maWxsQXJlYT1pO2NvbnN0IHM9bmV3IHNBdCh0aGlzLnhTY2FsZSx0aGlzLnlTY2FsZSwoKCk9PnRoaXMucmVzZXREb21haW4oKSkpO3RoaXMudG9vbHRpcEludGVyYWN0aW9uPXRoaXMuY3JlYXRlVG9vbHRpcEludGVyYWN0aW9uKHMpLHRoaXMudG9vbHRpcFBvaW50c0NvbXBvbmVudD1uZXcgTk8uQ29tcG9uZW50O2NvbnN0IGw9dGhpcy5idWlsZFBsb3QodGhpcy54U2NhbGUsdGhpcy55U2NhbGUsaSk7dGhpcy5ncmlkbGluZXM9bmV3IE5PLkNvbXBvbmVudHMuR3JpZGxpbmVzKHRoaXMueFNjYWxlLHRoaXMueVNjYWxlKTtsZXQgYz1udWxsO24hPT1hQXQuTE9HJiYoYz1uZXcgTk8uQ29tcG9uZW50cy5HdWlkZUxpbmVMYXllcigiaG9yaXpvbnRhbCIpLGMuc2NhbGUodGhpcy55U2NhbGUpLnZhbHVlKDApKTtsZXQgdT1uZXcgTk8uQ29tcG9uZW50cy5HdWlkZUxpbmVMYXllcigidmVydGljYWwiKTt1LnNjYWxlKHRoaXMueFNjYWxlKS52YWx1ZSgwKSx0aGlzLmNlbnRlcj1uZXcgTk8uQ29tcG9uZW50cy5Hcm91cChbdGhpcy5ncmlkbGluZXMsYyx1LGwsdGhpcy50b29sdGlwUG9pbnRzQ29tcG9uZW50LHNdKSx0aGlzLmNlbnRlci5hZGRDbGFzcygibWFpbiIpLHRoaXMub3V0ZXI9bmV3IE5PLkNvbXBvbmVudHMuVGFibGUoW1t0aGlzLnlBeGlzLHRoaXMuY2VudGVyXSxbbnVsbCx0aGlzLnhBeGlzXV0pfWJ1aWxkUGxvdCh0LGUsbil7biYmKHRoaXMubWFyZ2luQXJlYVBsb3Q9bmV3IE5PLlBsb3RzLkFyZWEsdGhpcy5tYXJnaW5BcmVhUGxvdC54KHRoaXMueEFjY2Vzc29yLHQpLHRoaXMubWFyZ2luQXJlYVBsb3QueShuLmhpZ2hlckFjY2Vzc29yLGUpLHRoaXMubWFyZ2luQXJlYVBsb3QueTAobi5sb3dlckFjY2Vzc29yKSx0aGlzLm1hcmdpbkFyZWFQbG90LmF0dHIoImZpbGwiLCgodCxlLG4pPT50aGlzLmNvbG9yU2NhbGUuc2NhbGUobi5tZXRhZGF0YSgpLm5hbWUpKSksdGhpcy5tYXJnaW5BcmVhUGxvdC5hdHRyKCJmaWxsLW9wYWNpdHkiLC4zKSx0aGlzLm1hcmdpbkFyZWFQbG90LmF0dHIoInN0cm9rZS13aWR0aCIsMCkpLHRoaXMuc21vb3RoZWRBY2Nlc3Nvcj10PT50LnNtb290aGVkO2xldCBpPW5ldyBOTy5QbG90cy5MaW5lO2kueCh0aGlzLnhBY2Nlc3Nvcix0KSxpLnkodGhpcy55VmFsdWVBY2Nlc3NvcixlKSxpLmF0dHIoInN0cm9rZSIsKCh0LGUsbik9PnRoaXMuY29sb3JTY2FsZS5zY2FsZShuLm1ldGFkYXRhKCkubmFtZSkpKSx0aGlzLmxpbmVQbG90PWksdGhpcy5zZXR1cFRvb2x0aXBzKGkpO2xldCByPW5ldyBOTy5QbG90cy5MaW5lO2lmKHIueCh0aGlzLnhBY2Nlc3Nvcix0KSxyLnkodGhpcy5zbW9vdGhlZEFjY2Vzc29yLGUpLHIuYXR0cigic3Ryb2tlIiwoKHQsZSxuKT0+dGhpcy5jb2xvclNjYWxlLnNjYWxlKG4ubWV0YWRhdGEoKS5uYW1lKSkpLHRoaXMuc21vb3RoTGluZVBsb3Q9cix0aGlzLnN5bWJvbEZ1bmN0aW9uKXtjb25zdCBuPW5ldyBOTy5QbG90cy5TY2F0dGVyO24ueCh0aGlzLnhBY2Nlc3Nvcix0KSxuLnkodGhpcy55VmFsdWVBY2Nlc3NvcixlKSxuLmF0dHIoImZpbGwiLCgodCxlLG4pPT50aGlzLmNvbG9yU2NhbGUuc2NhbGUobi5tZXRhZGF0YSgpLm5hbWUpKSksbi5hdHRyKCJvcGFjaXR5IiwxKSxuLnNpemUoOCksbi5zeW1ib2woKCh0LGUsbik9PnRoaXMuc3ltYm9sRnVuY3Rpb24obi5tZXRhZGF0YSgpLm5hbWUpKSksdGhpcy5tYXJrZXJzU2NhdHRlclBsb3Q9bn1sZXQgbz1uZXcgTk8uUGxvdHMuU2NhdHRlcjtvLngodGhpcy54QWNjZXNzb3IsdCksby55KHRoaXMueVZhbHVlQWNjZXNzb3IsZSksby5hdHRyKCJmaWxsIiwodD0+dGhpcy5jb2xvclNjYWxlLnNjYWxlKHQubmFtZSkpKSxvLmF0dHIoIm9wYWNpdHkiLDEpLG8uc2l6ZSg4KSxvLmRhdGFzZXRzKFt0aGlzLmxhc3RQb2ludHNEYXRhc2V0XSksdGhpcy5zY2F0dGVyUGxvdD1vO2xldCBhPW5ldyBOTy5QbG90cy5TY2F0dGVyO2EueCh0aGlzLnhBY2Nlc3Nvcix0KSxhLnkoKHQ9PnQuZGlzcGxheVkpLGUpLGEuYXR0cigiZmlsbCIsKHQ9PnRoaXMuY29sb3JTY2FsZS5zY2FsZSh0Lm5hbWUpKSksYS5hdHRyKCJvcGFjaXR5IiwxKSxhLnNpemUoMTIpLGEuZGF0YXNldHMoW3RoaXMubmFuRGF0YXNldF0pLGEuc3ltYm9sKE5PLlN5bWJvbEZhY3Rvcmllcy50cmlhbmdsZSksdGhpcy5uYW5EaXNwbGF5PWE7Y29uc3Qgcz1bYSxvLHIsaV07cmV0dXJuIHRoaXMubWFyZ2luQXJlYVBsb3QmJnMucHVzaCh0aGlzLm1hcmdpbkFyZWFQbG90KSx0aGlzLm1hcmtlcnNTY2F0dGVyUGxvdCYmcy5wdXNoKHRoaXMubWFya2Vyc1NjYXR0ZXJQbG90KSxuZXcgTk8uQ29tcG9uZW50cy5Hcm91cChzKX1pZ25vcmVZT3V0bGllcnModCl7dCE9PXRoaXMuX2lnbm9yZVlPdXRsaWVycyYmKHRoaXMuX2lnbm9yZVlPdXRsaWVycz10LHRoaXMudXBkYXRlU3BlY2lhbERhdGFzZXRzKCksdGhpcy55U2NhbGUuaWdub3JlT3V0bGllcih0KSx0aGlzLnJlc2V0WURvbWFpbigpKX1nZXRWYWx1ZXNGb3JZQXhpc0RvbWFpbkNvbXB1dGUoKXtjb25zdCB0PXRoaXMuZ2V0QWNjZXNzb3JzRm9yQ29tcHV0aW5nWVJhbmdlKCk7cmV0dXJuIENlLmV4cG9ydHMuZmxhdHRlbkRlZXAodGhpcy5kYXRhc2V0cy5tYXAoKGU9PnQubWFwKCh0PT5lLmRhdGEoKS5tYXAoKG49PnQobiwtMSxlKSkpKSkpKSkuZmlsdGVyKGlzRmluaXRlKX11cGRhdGVTcGVjaWFsRGF0YXNldHMoKXtjb25zdCB0PXRoaXMuZ2V0WUF4aXNBY2Nlc3NvcigpO2xldCBlPXRoaXMuZGF0YXNldHMubWFwKChlPT57bGV0IG49bnVsbCxpPWUuZGF0YSgpLmZpbHRlcigobj0+IWlzTmFOKHQobiwtMSxlKSkpKTtpZihpLmxlbmd0aD4wKXtuPWlbaS5sZW5ndGgtMV0sbi5uYW1lPWUubWV0YWRhdGEoKS5uYW1lLG4ucmVsYXRpdmU9Q0N0KG4sMCxlKX1yZXR1cm4gbn0pKS5maWx0ZXIoKHQ9Pm51bGwhPXQpKTt0aGlzLmxhc3RQb2ludHNEYXRhc2V0LmRhdGEoZSksdGhpcy5tYXJrZXJzU2NhdHRlclBsb3QmJnRoaXMubWFya2Vyc1NjYXR0ZXJQbG90LmRhdGFzZXRzKHRoaXMuZGF0YXNldHMubWFwKHRoaXMuY3JlYXRlU2FtcGxlZERhdGFzZXRGb3JNYXJrZXJzKSk7bGV0IG49Q2UuZXhwb3J0cy5mbGF0dGVuKHRoaXMuZGF0YXNldHMubWFwKChlPT57bGV0IG49bnVsbCxpPWUuZGF0YSgpLHI9MDtmb3IoO3I8aS5sZW5ndGgmJm51bGw9PW47KWlzTmFOKHQoaVtyXSwtMSxlKSl8fChuPXQoaVtyXSwtMSxlKSkscisrO251bGw9PW4mJihuPTApO2xldCBvPVtdO2ZvcihyPTA7cjxpLmxlbmd0aDtyKyspaXNOYU4odChpW3JdLC0xLGUpKT8oaVtyXS5uYW1lPWUubWV0YWRhdGEoKS5uYW1lLGlbcl0uZGlzcGxheVk9bixpW3JdLnJlbGF0aXZlPUNDdChpW3JdLDAsZSksby5wdXNoKGlbcl0pKTpuPXQoaVtyXSwtMSxlKTtyZXR1cm4gb30pKSk7dGhpcy5uYW5EYXRhc2V0LmRhdGEobil9cmVzZXREb21haW4oKXt0aGlzLnJlc2V0WERvbWFpbigpLHRoaXMucmVzZXRZRG9tYWluKCl9cmVzZXRYRG9tYWluKCl7bGV0IHQ7aWYobnVsbCE9dGhpcy5fZGVmYXVsdFhSYW5nZSl0PXRoaXMuX2RlZmF1bHRYUmFuZ2U7ZWxzZXtjb25zdCBlPXRoaXMueFNjYWxlO2UuX2RvbWFpbk1pbj1udWxsLGUuX2RvbWFpbk1heD1udWxsLHQ9ZS5fZ2V0RXh0ZW50KCl9dGhpcy54U2NhbGUuZG9tYWluKHQpfXJlc2V0WURvbWFpbigpe251bGwhPXRoaXMuX2RlZmF1bHRZUmFuZ2U/dGhpcy55U2NhbGUuZG9tYWluKHRoaXMuX2RlZmF1bHRZUmFuZ2UpOih0aGlzLnlTY2FsZS5hdXRvRG9tYWluKCksdGhpcy55U2NhbGUuZG9tYWluKHRoaXMueVNjYWxlLmRvbWFpbigpKSl9Z2V0QWNjZXNzb3JzRm9yQ29tcHV0aW5nWVJhbmdlKCl7Y29uc3QgdD1bdGhpcy5nZXRZQXhpc0FjY2Vzc29yKCldO3JldHVybiB0aGlzLmZpbGxBcmVhJiZ0LnB1c2godGhpcy5maWxsQXJlYS5sb3dlckFjY2Vzc29yLHRoaXMuZmlsbEFyZWEuaGlnaGVyQWNjZXNzb3IpLHR9Z2V0WUF4aXNBY2Nlc3Nvcigpe3JldHVybiB0aGlzLnNtb290aGluZ0VuYWJsZWQ/dGhpcy5zbW9vdGhlZEFjY2Vzc29yOnRoaXMueVZhbHVlQWNjZXNzb3J9Y3JlYXRlVG9vbHRpcEludGVyYWN0aW9uKHQpe2NvbnN0IGU9bmV3IE9DdCxuPSgpPT57ZS5lbmFibGVkKCExKSx0aGlzLmhpZGVUb29sdGlwcygpfSxpPSgpPT5lLmVuYWJsZWQoITApO3JldHVybiB0Lm9uUGFuU3RhcnQobiksdC5vbkRyYWdab29tU3RhcnQobiksdC5vblBhbkVuZChpKSx0Lm9uRHJhZ1pvb21FbmQoaSksdC5vblNjcm9sbFpvb20oKCgpPT50aGlzLnVwZGF0ZVRvb2x0aXBDb250ZW50KHRoaXMuX2xhc3RNb3VzZVBvc2l0aW9uKSkpLGUub25Qb2ludGVyTW92ZSgodD0+e3RoaXMuX2xhc3RNb3VzZVBvc2l0aW9uPXQsdGhpcy51cGRhdGVUb29sdGlwQ29udGVudCh0KX0pKSxlLm9uUG9pbnRlckV4aXQoKCgpPT50aGlzLmhpZGVUb29sdGlwcygpKSksZX11cGRhdGVUb29sdGlwQ29udGVudCh0KXt0aGlzLmxpbmVQbG90JiYod2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3Rvb2x0aXBVcGRhdGVBbmltYXRpb25GcmFtZSksdGhpcy5fdG9vbHRpcFVwZGF0ZUFuaW1hdGlvbkZyYW1lPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57bGV0IGU9e3g6dC54LHk6dC55LGRhdHVtOm51bGwsZGF0YXNldDpudWxsfSxuPXRoaXMuZ3JpZGxpbmVzLmNvbnRlbnQoKS5ub2RlKCkuZ2V0QkJveCgpLGk9dGhpcy5saW5lUGxvdC5kYXRhc2V0cygpLm1hcCgodD0+dGhpcy5maW5kQ2xvc2VzdFBvaW50KGUsdCkpKS5maWx0ZXIoQm9vbGVhbikscj1OTy5VdGlscy5ET00uaW50ZXJzZWN0c0JCb3gsbz1pLmZpbHRlcigodD0+cih0LngsdC55LG4pfHxpc05hTih0aGlzLnlWYWx1ZUFjY2Vzc29yKHQuZGF0dW0sMCx0LmRhdGFzZXQpKSkpLGE9by5maWx0ZXIoKHQ9PiFpc05hTih0aGlzLnlWYWx1ZUFjY2Vzc29yKHQuZGF0dW0sMCx0LmRhdGFzZXQpKSkpO2lmKDAhPT1pLmxlbmd0aCl7dGhpcy5zY2F0dGVyUGxvdC5hdHRyKCJkaXNwbGF5Iiwibm9uZSIpO2NvbnN0IHQ9dGhpcy50b29sdGlwUG9pbnRzQ29tcG9uZW50LmNvbnRlbnQoKS5zZWxlY3RBbGwoIi5wb2ludCIpLmRhdGEoYSwodD0+dC5kYXRhc2V0Lm1ldGFkYXRhKCkubmFtZSkpO3QuZW50ZXIoKS5hcHBlbmQoImNpcmNsZSIpLmNsYXNzZWQoInBvaW50IiwhMCksdC5hdHRyKCJyIiw0KS5hdHRyKCJjeCIsKHQ9PnQueCkpLmF0dHIoImN5IiwodD0+dC55KSkuc3R5bGUoInN0cm9rZSIsIm5vbmUiKS5hdHRyKCJmaWxsIiwodD0+dGhpcy5jb2xvclNjYWxlLnNjYWxlKHQuZGF0YXNldC5tZXRhZGF0YSgpLm5hbWUpKSksdC5leGl0KCkucmVtb3ZlKCksdGhpcy5kcmF3VG9vbHRpcHMobyxlLHRoaXMudG9vbHRpcENvbHVtbnMpfWVsc2UgdGhpcy5oaWRlVG9vbHRpcHMoKX0pKSl9aGlkZVRvb2x0aXBzKCl7d2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3Rvb2x0aXBVcGRhdGVBbmltYXRpb25GcmFtZSksdGhpcy50b29sdGlwLmhpZGUoKSx0aGlzLnNjYXR0ZXJQbG90LmF0dHIoImRpc3BsYXkiLCJibG9jayIpLHRoaXMudG9vbHRpcFBvaW50c0NvbXBvbmVudC5jb250ZW50KCkuc2VsZWN0QWxsKCIucG9pbnQiKS5yZW1vdmUoKX1zZXR1cFRvb2x0aXBzKHQpe3Qub25EZXRhY2goKCgpPT57dGhpcy50b29sdGlwSW50ZXJhY3Rpb24uZGV0YWNoRnJvbSh0KSx0aGlzLnRvb2x0aXBJbnRlcmFjdGlvbi5lbmFibGVkKCExKX0pKSx0Lm9uQW5jaG9yKCgoKT0+e3RoaXMudG9vbHRpcEludGVyYWN0aW9uLmF0dGFjaFRvKHQpLHRoaXMudG9vbHRpcEludGVyYWN0aW9uLmVuYWJsZWQoITApfSkpfWRyYXdUb29sdGlwcyh0LGUsbil7aWYoIXQubGVuZ3RoKXJldHVybiB2b2lkIHRoaXMudG9vbHRpcC5oaWRlKCk7Y29uc3R7Y29sb3JTY2FsZTppfT10aGlzO249W3t0aXRsZToiIixzdGF0aWM6ITEsZXZhbFR5cGU6b0F0LkRPTSxldmFsdWF0ZSh0KXtyZXR1cm4gRHUodGhpcykuc2VsZWN0KCJzcGFuIikuc3R5bGUoImJhY2tncm91bmQtY29sb3IiLCgoKT0+aS5zY2FsZSh0LmRhdGFzZXQubWV0YWRhdGEoKS5uYW1lKSkpLCIifSxlbnRlcih0KXtEdSh0aGlzKS5hcHBlbmQoInNwYW4iKS5jbGFzc2VkKCJzd2F0Y2giLCEwKS5zdHlsZSgiYmFja2dyb3VuZC1jb2xvciIsKCgpPT5pLnNjYWxlKHQuZGF0YXNldC5tZXRhZGF0YSgpLm5hbWUpKSl9fSwuLi5uXTtjb25zdCByPXQ9Pk1hdGgucG93KHQueC1lLngsMikrTWF0aC5wb3codC55LWUueSwyKSxvPUNlLmV4cG9ydHMubWluKHQubWFwKHIpKSxhPXRoaXMuc21vb3RoaW5nRW5hYmxlZD90aGlzLnNtb290aGVkQWNjZXNzb3I6dGhpcy55VmFsdWVBY2Nlc3Nvcjt0PSJhc2NlbmRpbmciPT09dGhpcy50b29sdGlwU29ydGluZ01ldGhvZD9DZS5leHBvcnRzLnNvcnRCeSh0LCh0PT5hKHQuZGF0dW0sLTEsdC5kYXRhc2V0KSkpOiJkZXNjZW5kaW5nIj09PXRoaXMudG9vbHRpcFNvcnRpbmdNZXRob2Q/Q2UuZXhwb3J0cy5zb3J0QnkodCwodD0+YSh0LmRhdHVtLC0xLHQuZGF0YXNldCkpKS5yZXZlcnNlKCk6Im5lYXJlc3QiPT09dGhpcy50b29sdGlwU29ydGluZ01ldGhvZD9DZS5leHBvcnRzLnNvcnRCeSh0LHIpOnQuc2xpY2UoMCkucmV2ZXJzZSgpO2NvbnN0IHM9dGhpcyxsPUR1KHRoaXMudG9vbHRpcC5jb250ZW50KCkpLnNlbGVjdCgidGFibGUiKSxjPWwuc2VsZWN0KCJ0aGVhZCIpLnNlbGVjdEFsbCgidGgiKS5kYXRhKG4sKCh0LGUsbik9PnQudGl0bGUpKTtjLmVudGVyKCkuYXBwZW5kKCJ0aCIpLnRleHQoKHQ9PnQudGl0bGUpKS5ub2RlcygpLGMuZXhpdCgpLnJlbW92ZSgpO2NvbnN0IHU9bC5zZWxlY3QoInRib2R5Iikuc2VsZWN0QWxsKCJ0ciIpLmRhdGEodCwoKHQsZSxuKT0+dC5kYXRhc2V0Lm1ldGFkYXRhKCkubmFtZSkpO3UuY2xhc3NlZCgiZGlzdGFudCIsKHQ9PntsZXQgbj10LmRhdGFzZXQuZGF0YSgpWzBdLGk9Q2UuZXhwb3J0cy5sYXN0KHQuZGF0YXNldC5kYXRhKCkpLHI9dGhpcy54U2NhbGUuc2NhbGUodGhpcy54QWNjZXNzb3IobiwwLHQuZGF0YXNldCkpLG89dGhpcy54U2NhbGUuc2NhbGUodGhpcy54QWNjZXNzb3IoaSwwLHQuZGF0YXNldCkpLGE9dGhpcy5zbW9vdGhpbmdFbmFibGVkP3QuZGF0dW0uc21vb3RoZWQ6dGhpcy55VmFsdWVBY2Nlc3Nvcih0LmRhdHVtLDAsdC5kYXRhc2V0KTtyZXR1cm4gZS54PHJ8fGUueD5vfHxpc05hTihhKX0pKS5jbGFzc2VkKCJjbG9zZXN0IiwodD0+cih0KT09PW8pKS5lYWNoKChmdW5jdGlvbih0KXtzLmRyYXdUb29sdGlwUm93KHRoaXMsbix0KX0pKS5vcmRlcigpLHUuZXhpdCgpLnJlbW92ZSgpLHUuZW50ZXIoKS5hcHBlbmQoInRyIikuZWFjaCgoZnVuY3Rpb24odCl7cy5kcmF3VG9vbHRpcFJvdyh0aGlzLG4sdCl9KSkubm9kZXMoKSx0aGlzLnRvb2x0aXAudXBkYXRlQW5kUG9zaXRpb24odGhpcy50YXJnZXRTVkcubm9kZSgpKX1kcmF3VG9vbHRpcFJvdyh0LGUsbil7Y29uc3QgaT10aGlzLHI9RHUodCkuc2VsZWN0QWxsKCJ0ZCIpLmRhdGEoZSk7ci5lYWNoKChmdW5jdGlvbih0KXt0LnN0YXRpY3x8aS5kcmF3VG9vbHRpcENvbHVtbi5jYWxsKGksdGhpcyx0LG4pfSkpLHIuZXhpdCgpLnJlbW92ZSgpLHIuZW50ZXIoKS5hcHBlbmQoInRkIikuZWFjaCgoZnVuY3Rpb24odCl7aWYoImVudGVyImluIHQmJnQuZW50ZXIpe3QuZW50ZXIuY2FsbCh0aGlzLG4pfWkuZHJhd1Rvb2x0aXBDb2x1bW4uY2FsbChpLHRoaXMsdCxuKX0pKX1kcmF3VG9vbHRpcENvbHVtbih0LGUsbil7Y29uc3R7c21vb3RoaW5nRW5hYmxlZDppfT10aGlzOyJldmFsVHlwZSJpbiBlJiZlLmV2YWxUeXBlPT1vQXQuRE9NP2UuZXZhbHVhdGUuY2FsbCh0LG4se3Ntb290aGluZ0VuYWJsZWQ6aX0pOkR1KHQpLnRleHQoZS5ldmFsdWF0ZS5jYWxsKHQsbix7c21vb3RoaW5nRW5hYmxlZDppfSkpfWZpbmRDbG9zZXN0UG9pbnQodCxlKXtjb25zdCBuPWUuZGF0YSgpLm1hcCgoKHQsbik9PnRoaXMueFNjYWxlLnNjYWxlKHRoaXMueEFjY2Vzc29yKHQsbixlKSkpKTtsZXQgaT1DZS5leHBvcnRzLnNvcnRlZEluZGV4KG4sdC54KTtpZigwPT1uLmxlbmd0aClyZXR1cm4gbnVsbDtpZihpPT09bi5sZW5ndGgpaS09MTtlbHNlIGlmKDAhPT1pKXtpPU1hdGguYWJzKG5baS0xXS10LngpPE1hdGguYWJzKG5baV0tdC54KT9pLTE6aX1jb25zdCByPWUuZGF0YSgpW2ldLG89dGhpcy5zbW9vdGhpbmdFbmFibGVkP3RoaXMuc21vb3RoZWRBY2Nlc3NvcihyLGksZSk6dGhpcy55VmFsdWVBY2Nlc3NvcihyLGksZSk7cmV0dXJue3g6bltpXSx5OnRoaXMueVNjYWxlLnNjYWxlKG8pLGRhdHVtOnIsZGF0YXNldDplfX1yZXNtb290aERhdGFzZXQodCl7bGV0IGU9dC5kYXRhKCk7Y29uc3Qgbj10aGlzLnNtb290aGluZ1dlaWdodDtsZXQgaT1lLmxlbmd0aD4wPzA6TmFOLHI9MDtjb25zdCBvPWUubWFwKCgoZSxuKT0+dGhpcy55VmFsdWVBY2Nlc3NvcihlLG4sdCkpKSxhPW8uZXZlcnkoKHQ9PnQ9PW9bMF0pKTtlLmZvckVhY2goKCh0LGUpPT57Y29uc3Qgcz1vW2VdO2lmKGF8fCFOdW1iZXIuaXNGaW5pdGUocykpdC5zbW9vdGhlZD1zO2Vsc2V7aT1pKm4rKDEtbikqcyxyKys7bGV0IGU9MTsxIT09biYmKGU9MS1NYXRoLnBvdyhuLHIpKSx0LnNtb290aGVkPWkvZX19KSl9Z2V0RGF0YXNldCh0KXtyZXR1cm4gdm9pZCAwPT09dGhpcy5uYW1lMmRhdGFzZXRzW3RdJiYodGhpcy5uYW1lMmRhdGFzZXRzW3RdPW5ldyBOTy5EYXRhc2V0KFtdLHtuYW1lOnQsbWV0YTpudWxsfSkpLHRoaXMubmFtZTJkYXRhc2V0c1t0XX1zdGF0aWMgZ2V0WVNjYWxlRnJvbVR5cGUodCl7aWYodD09PWFBdC5MT0cpcmV0dXJuIG5ldyBuQXQ7aWYodD09PWFBdC5MSU5FQVIpcmV0dXJuIG5ldyBaQ3Q7dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgeVNjYWxlIHR5cGUgIit0KX1zZXRWaXNpYmxlU2VyaWVzKHQpe3RoaXMuZGlzYWJsZUNoYW5nZXMoKSwodD10LnNvcnQoKSkucmV2ZXJzZSgpLHRoaXMuc2VyaWVzTmFtZXM9dH1kaXNhYmxlQ2hhbmdlcygpe3RoaXMuZGlydHlEYXRhc2V0cy5zaXplfHwodGhpcy5saW5lUGxvdC5kYXRhc2V0cyhbXSksdGhpcy5zbW9vdGhMaW5lUGxvdCYmdGhpcy5zbW9vdGhMaW5lUGxvdC5kYXRhc2V0cyhbXSksdGhpcy5tYXJnaW5BcmVhUGxvdCYmdGhpcy5tYXJnaW5BcmVhUGxvdC5kYXRhc2V0cyhbXSkpfWNvbW1pdENoYW5nZXMoKXt0aGlzLmRhdGFzZXRzPXRoaXMuc2VyaWVzTmFtZXMubWFwKCh0PT50aGlzLmdldERhdGFzZXQodCkpKSxbLi4udGhpcy5kaXJ0eURhdGFzZXRzXS5mb3JFYWNoKCh0PT57dGhpcy5zbW9vdGhpbmdFbmFibGVkJiZ0aGlzLnJlc21vb3RoRGF0YXNldCh0aGlzLmdldERhdGFzZXQodCkpfSkpLHRoaXMudXBkYXRlU3BlY2lhbERhdGFzZXRzKCksdGhpcy5saW5lUGxvdC5kYXRhc2V0cyh0aGlzLmRhdGFzZXRzKSx0aGlzLnNtb290aGluZ0VuYWJsZWQmJnRoaXMuc21vb3RoTGluZVBsb3QuZGF0YXNldHModGhpcy5kYXRhc2V0cyksdGhpcy5tYXJnaW5BcmVhUGxvdCYmdGhpcy5tYXJnaW5BcmVhUGxvdC5kYXRhc2V0cyh0aGlzLmRhdGFzZXRzKSx0aGlzLm1lYXN1cmVCQm94QW5kTWF5YmVJbnZhbGlkYXRlTGF5b3V0SW5SYWYoKSx0aGlzLmRpcnR5RGF0YXNldHMuY2xlYXIoKX1jcmVhdGVTYW1wbGVkRGF0YXNldEZvck1hcmtlcnModCl7Y29uc3QgZT10LmRhdGEoKTtpZihlLmxlbmd0aDw9MjApcmV0dXJuIHQ7Y29uc3Qgbj1NYXRoLmNlaWwoZS5sZW5ndGgvMjApLGk9bmV3IEFycmF5KE1hdGguZmxvb3IoZS5sZW5ndGgvbikpO2ZvcihsZXQgdD0wLHI9MDt0PGkubGVuZ3RoO3QrKyxyKz1uKWlbdF09ZVtyXTtyZXR1cm4gbmV3IE5PLkRhdGFzZXQoaSx0Lm1ldGFkYXRhKCkpfXNldFNlcmllc0RhdGEodCxlKXt0aGlzLmRpc2FibGVDaGFuZ2VzKCksdGhpcy5nZXREYXRhc2V0KHQpLmRhdGEoZSksdGhpcy5kaXJ0eURhdGFzZXRzLmFkZCh0KX1zZXRTZXJpZXNNZXRhZGF0YSh0LGUpe3RoaXMuZGlzYWJsZUNoYW5nZXMoKSx0aGlzLmdldERhdGFzZXQodCkubWV0YWRhdGEoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMuZ2V0RGF0YXNldCh0KS5tZXRhZGF0YSgpKSx7bWV0YTplfSkpLHRoaXMuZGlydHlEYXRhc2V0cy5hZGQodCl9c21vb3RoaW5nVXBkYXRlKHQpe3RoaXMuc21vb3RoaW5nV2VpZ2h0PXQsdGhpcy5kYXRhc2V0cy5mb3JFYWNoKCh0PT50aGlzLnJlc21vb3RoRGF0YXNldCh0KSkpLHRoaXMuc21vb3RoaW5nRW5hYmxlZHx8KHRoaXMubGluZVBsb3QuYWRkQ2xhc3MoImdob3N0IiksdGhpcy5zY2F0dGVyUGxvdC55KHRoaXMuc21vb3RoZWRBY2Nlc3Nvcix0aGlzLnlTY2FsZSksdGhpcy5zbW9vdGhpbmdFbmFibGVkPSEwLHRoaXMuc21vb3RoTGluZVBsb3QuZGF0YXNldHModGhpcy5kYXRhc2V0cykpLHRoaXMubWFya2Vyc1NjYXR0ZXJQbG90JiZ0aGlzLm1hcmtlcnNTY2F0dGVyUGxvdC55KHRoaXMuZ2V0WUF4aXNBY2Nlc3NvcigpLHRoaXMueVNjYWxlKSx0aGlzLnVwZGF0ZVNwZWNpYWxEYXRhc2V0cygpfXNtb290aGluZ0Rpc2FibGUoKXt0aGlzLnNtb290aGluZ0VuYWJsZWQmJih0aGlzLmxpbmVQbG90LnJlbW92ZUNsYXNzKCJnaG9zdCIpLHRoaXMuc2NhdHRlclBsb3QueSh0aGlzLnlWYWx1ZUFjY2Vzc29yLHRoaXMueVNjYWxlKSx0aGlzLnNtb290aExpbmVQbG90LmRhdGFzZXRzKFtdKSx0aGlzLnNtb290aGluZ0VuYWJsZWQ9ITEsdGhpcy51cGRhdGVTcGVjaWFsRGF0YXNldHMoKSksdGhpcy5tYXJrZXJzU2NhdHRlclBsb3QmJnRoaXMubWFya2Vyc1NjYXR0ZXJQbG90LnkodGhpcy5nZXRZQXhpc0FjY2Vzc29yKCksdGhpcy55U2NhbGUpfXNldENvbG9yU2NhbGUodCl7dGhpcy5jb2xvclNjYWxlPXR9c2V0VG9vbHRpcENvbHVtbnModCl7dGhpcy50b29sdGlwQ29sdW1ucz10fXNldFRvb2x0aXBTb3J0aW5nTWV0aG9kKHQpe3RoaXMudG9vbHRpcFNvcnRpbmdNZXRob2Q9dH1yZW5kZXJUbyh0KXt0aGlzLnRhcmdldFNWRz10LHRoaXMub3V0ZXIucmVuZGVyVG8odCksbnVsbCE9dGhpcy5fZGVmYXVsdFhSYW5nZSYmdGhpcy5yZXNldFhEb21haW4oKSxudWxsIT10aGlzLl9kZWZhdWx0WVJhbmdlJiZ0aGlzLnJlc2V0WURvbWFpbigpLHRoaXMubWVhc3VyZUJCb3hBbmRNYXliZUludmFsaWRhdGVMYXlvdXRJblJhZigpfXJlZHJhdygpe3dpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9yZWRyYXdSYWYpLHRoaXMuX3JlZHJhd1JhZj13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e3RoaXMubWVhc3VyZUJCb3hBbmRNYXliZUludmFsaWRhdGVMYXlvdXQoKSx0aGlzLm91dGVyLnJlZHJhdygpfSkpfW1lYXN1cmVCQm94QW5kTWF5YmVJbnZhbGlkYXRlTGF5b3V0SW5SYWYoKXt3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5faW52YWxpZGF0ZUxheW91dFJhZiksdGhpcy5faW52YWxpZGF0ZUxheW91dFJhZj13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e3RoaXMubWVhc3VyZUJCb3hBbmRNYXliZUludmFsaWRhdGVMYXlvdXQoKX0pKX1tZWFzdXJlQkJveEFuZE1heWJlSW52YWxpZGF0ZUxheW91dCgpe2lmKHRoaXMuX2xhc3REcmF3QkJveCl7Y29uc3R7d2lkdGg6dH09dGhpcy5fbGFzdERyYXdCQm94LHt3aWR0aDplfT10aGlzLnRhcmdldFNWRy5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7MD09dCYmdDxlJiZ0aGlzLm91dGVyLmludmFsaWRhdGVDYWNoZSgpfXRoaXMuX2xhc3REcmF3QkJveD10aGlzLnRhcmdldFNWRy5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9ZGVzdHJveSgpe3dpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9yZWRyYXdSYWYpLHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9pbnZhbGlkYXRlTGF5b3V0UmFmKSx0aGlzLm91dGVyJiZ0aGlzLm91dGVyLmRlc3Ryb3koKX1vbkFuY2hvcih0KXt0aGlzLm91dGVyJiZ0aGlzLm91dGVyLm9uQW5jaG9yKHQpfWlzRGF0YUZpdFRvRG9tYWluKCl7cmV0dXJuIHQodGhpcy54QXhpcy5nZXRTY2FsZSgpKSYmdCh0aGlzLnlBeGlzLmdldFNjYWxlKCkpO2Z1bmN0aW9uIHQodCl7Y29uc3QgZT10LmdldFRyYW5zZm9ybWF0aW9uRG9tYWluKCksbj10LmdldFRyYW5zZm9ybWF0aW9uRXh0ZW50KCk7cmV0dXJuIG5bMF09PT1lWzBdJiZuWzFdPT09ZVsxXX19fXZhciBjQXQ7bWwoe21vZHVsZU5hbWU6InBsb3R0YWJsZS1zdHlsZSIsc3R5bGVDb250ZW50OiJcbiAgICBcbi5wbG90dGFibGUtY29sb3JzLTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTI3OWM3OyAvKiBJTkRJR08gKi9cbn1cblxuLnBsb3R0YWJsZS1jb2xvcnMtMSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZDM3M2U7IC8qIENPUkFMX1JFRCAqL1xufVxuXG4ucGxvdHRhYmxlLWNvbG9ycy0yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYzYzI2MTsgLyogRkVSTiAqL1xufVxuXG4ucGxvdHRhYmxlLWNvbG9ycy0zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZDQxOTsgLyogQlJJR0hUX1NVTiAqL1xufVxuXG4ucGxvdHRhYmxlLWNvbG9ycy00IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjMmI2ZjsgLyogSkFDQVJUQSAqL1xufVxuXG4ucGxvdHRhYmxlLWNvbG9ycy01IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNzkzOTsgLyogQlVSTklOR19PUkFOR0UgKi9cbn1cblxuLnBsb3R0YWJsZS1jb2xvcnMtNiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYjJlNjU7IC8qIENFUklTRV9SRUQgKi9cbn1cblxuLnBsb3R0YWJsZS1jb2xvcnMtNyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5OWNlNTA7IC8qIENPTklGRVIgKi9cbn1cblxuLnBsb3R0YWJsZS1jb2xvcnMtOCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NjI1NjU7IC8qIFJPWUFMX0hFQVRIICovXG59XG5cbi5wbG90dGFibGUtY29sb3JzLTkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDZjY2NjOyAvKiBST0JJTlNfRUdHX0JMVUUgKi9cbn1cblxuLyoqXG4gKiBVc2VyLXN1cHBsaWVkIHJlbmRlclRvIGVsZW1lbnQuXG4gKi9cbi5wbG90dGFibGUge1xuICBkaXNwbGF5OiBibG9jazsgLyogbXVzdCBiZSBibG9jayBlbGVtZW50cyBmb3Igd2lkdGgvaGVpZ2h0IGNhbGN1bGF0aW9ucyB0byB3b3JrIGluIEZpcmVmb3guICovXG4gIHBvaW50ZXItZXZlbnRzOiB2aXNpYmxlRmlsbDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvKipcbiAgICogUHJlIDMuMCwgdXNlcnMgY291bGQgc2V0IHRoZSBkaW1lbnNpb24gb2YgdGhlIHJvb3QgZWxlbWVudCBpbiB0d28gd2F5czogZWl0aGVyIHVzaW5nIENTU1xuICAgKiAoaW5saW5lIG9yIHRocm91Z2ggYSBzdHlsZXNoZWV0KSwgb3IgdXNpbmcgdGhlIFNWRyB3aWR0aC9oZWlnaHQgYXR0cmlidXRlcy4gQnkgZGVmYXVsdCwgd2VcbiAgICogc2V0IHRoZSBTVkcgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZXMgdG8gMTAwJS5cbiAgICpcbiAgICogUG9zdCAzLjAgdGhlIHJvb3QgZWxlbWVudCBpcyBhbHdheXMgYSBub3JtYWwgZGl2IGFuZCB0aGUgb25seSB3YXkgdG8gc2V0IHRoZSBkaW1lbnNpb25zIGlzXG4gICAqIHRvIHVzZSBDU1MuIFRvIHJlcGxpY2F0ZSB0aGUgXCIxMDAlLWJ5LWRlZmF1bHRcIiBiZWhhdmlvciwgd2UgYXBwbHkgd2lkdGgvaGVpZ2h0IDEwMCUuXG4gICAqL1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4vKipcbiAqIFRoZSBfZWxlbWVudCB0aGF0IHJvb3RzIGVhY2ggQ29tcG9uZW50J3MgRE9NLlxuICovXG4ucGxvdHRhYmxlIC5jb21wb25lbnQge1xuICAvKiBBbGxvdyBjb21wb25lbnRzIHRvIGJlIHBvc2l0aW9uZWQgd2l0aCBleHBsaWNpdCBsZWZ0L3RvcC93aWR0aC9oZWlnaHQgc3R5bGVzICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLnBsb3R0YWJsZSAuYmFja2dyb3VuZC1jb250YWluZXIsXG4ucGxvdHRhYmxlIC5jb250ZW50LFxuLnBsb3R0YWJsZSAuZm9yZWdyb3VuZC1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi8qKlxuICogRG9uJ3QgYWxsb3cgc3ZnIGVsZW1lbnRzIGFib3ZlIHRoZSBjb250ZW50IHRvIHN0ZWFsIGV2ZW50c1xuICovXG4ucGxvdHRhYmxlIC5mb3JlZ3JvdW5kLWNvbnRhaW5lciB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ucGxvdHRhYmxlIC5jb21wb25lbnQtb3ZlcmZsb3ctaGlkZGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnBsb3R0YWJsZSAuY29tcG9uZW50LW92ZXJmbG93LXZpc2libGUge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLnBsb3R0YWJsZSAucGxvdC1jYW52YXMtY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnBsb3R0YWJsZSAucGxvdC1jYW52YXMge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICAvKipcbiAgICogUGxheSB3ZWxsIHdpdGggZGVmZXJyZWQgcmVuZGVyaW5nLlxuICAgKi9cbiAgdHJhbnNmb3JtLW9yaWdpbjogMHB4IDBweCAwcHg7XG59XG5cbi5wbG90dGFibGUgdGV4dCB7XG4gIHRleHQtcmVuZGVyaW5nOiBnZW9tZXRyaWNQcmVjaXNpb247XG59XG5cbi5wbG90dGFibGUgLmxhYmVsIHRleHQge1xuICBmaWxsOiAjMzIzMTNGO1xufVxuXG4ucGxvdHRhYmxlIC5iYXItbGFiZWwtdGV4dC1hcmVhIHRleHQsXG4ucGxvdHRhYmxlIC5zY2F0dGVyLWxhYmVsLXRleHQtYXJlYSB0ZXh0IHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4ucGxvdHRhYmxlIC5sYWJlbC1hcmVhIHRleHQge1xuICBmaWxsOiAjMzIzMTNGO1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5wbG90dGFibGUgLmxpZ2h0LWxhYmVsIHRleHQge1xuICBmaWxsOiB3aGl0ZTtcbn1cblxuLnBsb3R0YWJsZSAuZGFyay1sYWJlbCB0ZXh0IHtcbiAgZmlsbDogIzMyMzEzRjtcbn1cblxuLnBsb3R0YWJsZSAub2ZmLWJhci1sYWJlbCB0ZXh0IHtcbiAgZmlsbDogIzMyMzEzRjtcbn1cblxuLnBsb3R0YWJsZSAuc3RhY2tlZC1iYXItbGFiZWwgdGV4dCB7XG4gIGZpbGw6ICMzMjMxM0Y7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLnBsb3R0YWJsZSAuc3RhY2tlZC1iYXItcGxvdCAub2ZmLWJhci1sYWJlbCB7XG4gIC8qIEhBQ0tIQUNLICMyNzk1OiBjb3JyZWN0IG9mZi1iYXIgbGFiZWwgbG9naWMgdG8gYmUgaW1wbGVtZW50ZWQgb24gU3RhY2tlZEJhciAqL1xuICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLnBsb3R0YWJsZSAuYXhpcy1sYWJlbCB0ZXh0IHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLnBsb3R0YWJsZSAudGl0bGUtbGFiZWwgdGV4dCB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5wbG90dGFibGUgLmF4aXMgbGluZS5iYXNlbGluZSB7XG4gIHN0cm9rZTogI0NDQztcbiAgc3Ryb2tlLXdpZHRoOiAxcHg7XG59XG5cbi5wbG90dGFibGUgLmF4aXMgbGluZS50aWNrLW1hcmsge1xuICBzdHJva2U6ICNDQ0M7XG4gIHN0cm9rZS13aWR0aDogMXB4O1xufVxuXG4ucGxvdHRhYmxlIC5heGlzIHRleHQge1xuICBmaWxsOiAjMzIzMTNGO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiAyMDA7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi5wbG90dGFibGUgLmF4aXMgLmFubm90YXRpb24tY2lyY2xlIHtcbiAgZmlsbDogd2hpdGU7XG4gIHN0cm9rZS13aWR0aDogMXB4O1xuICBzdHJva2U6ICNDQ0M7XG59XG5cbi5wbG90dGFibGUgLmF4aXMgLmFubm90YXRpb24tbGluZSB7XG4gIHN0cm9rZTogI0NDQztcbiAgc3Ryb2tlLXdpZHRoOiAxcHg7XG59XG5cbi5wbG90dGFibGUgLmF4aXMgLmFubm90YXRpb24tcmVjdCB7XG4gIHN0cm9rZTogI0NDQztcbiAgc3Ryb2tlLXdpZHRoOiAxcHg7XG4gIGZpbGw6IHdoaXRlO1xufVxuXG4ucGxvdHRhYmxlIC5iYXItcGxvdCAuYmFzZWxpbmUge1xuICBzdHJva2U6ICM5OTk7XG59XG5cbi5wbG90dGFibGUgLmdyaWRsaW5lcyBsaW5lIHtcbiAgc3Ryb2tlOiAjM0MzQzNDOyAvKiBoYWNraGFjazogZ3JpZGxpbmVzIHNob3VsZCBiZSBzb2xpZDsgc2VlICM4MjAgKi9cbiAgb3BhY2l0eTogMC4yNTtcbiAgc3Ryb2tlLXdpZHRoOiAxcHg7XG59XG5cbi5wbG90dGFibGUgLnNlbGVjdGlvbi1ib3gtbGF5ZXIgLnNlbGVjdGlvbi1hcmVhIHtcbiAgZmlsbDogYmxhY2s7XG4gIGZpbGwtb3BhY2l0eTogMC4wMztcbiAgc3Ryb2tlOiAjQ0NDO1xufVxuLyogRHJhZ0JveExheWVyICovXG4ucGxvdHRhYmxlIC5kcmFnLWJveC1sYXllci54LXJlc2l6YWJsZSAuZHJhZy1lZGdlLWxyIHtcbiAgY3Vyc29yOiBldy1yZXNpemU7XG59XG4ucGxvdHRhYmxlIC5kcmFnLWJveC1sYXllci55LXJlc2l6YWJsZSAuZHJhZy1lZGdlLXRiIHtcbiAgY3Vyc29yOiBucy1yZXNpemU7XG59XG5cbi5wbG90dGFibGUgLmRyYWctYm94LWxheWVyLngtcmVzaXphYmxlLnktcmVzaXphYmxlIC5kcmFnLWNvcm5lci10bCB7XG4gIGN1cnNvcjogbndzZS1yZXNpemU7XG59XG4ucGxvdHRhYmxlIC5kcmFnLWJveC1sYXllci54LXJlc2l6YWJsZS55LXJlc2l6YWJsZSAuZHJhZy1jb3JuZXItdHIge1xuICBjdXJzb3I6IG5lc3ctcmVzaXplO1xufVxuLnBsb3R0YWJsZSAuZHJhZy1ib3gtbGF5ZXIueC1yZXNpemFibGUueS1yZXNpemFibGUgLmRyYWctY29ybmVyLWJsIHtcbiAgY3Vyc29yOiBuZXN3LXJlc2l6ZTtcbn1cbi5wbG90dGFibGUgLmRyYWctYm94LWxheWVyLngtcmVzaXphYmxlLnktcmVzaXphYmxlIC5kcmFnLWNvcm5lci1iciB7XG4gIGN1cnNvcjogbndzZS1yZXNpemU7XG59XG5cbi5wbG90dGFibGUgLmRyYWctYm94LWxheWVyLm1vdmFibGUgLnNlbGVjdGlvbi1hcmVhIHtcbiAgY3Vyc29yOiBtb3ZlOyAvKiBJRSBmYWxsYmFjayAqL1xuICBjdXJzb3I6IC1tb3otZ3JhYjtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWI7XG4gIGN1cnNvcjogZ3JhYjtcbn1cblxuLnBsb3R0YWJsZSAuZHJhZy1ib3gtbGF5ZXIubW92YWJsZSAuc2VsZWN0aW9uLWFyZWE6YWN0aXZlIHtcbiAgY3Vyc29yOiAtbW96LWdyYWJiaW5nO1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYmJpbmc7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG59XG4vKiAvRHJhZ0JveExheWVyICovXG5cbi5wbG90dGFibGUgLmd1aWRlLWxpbmUtbGF5ZXIgbGluZS5ndWlkZS1saW5lIHtcbiAgc3Ryb2tlOiAjQ0NDO1xuICBzdHJva2Utd2lkdGg6IDFweDtcbn1cblxuLnBsb3R0YWJsZSAuZHJhZy1saW5lLWxheWVyLmVuYWJsZWQudmVydGljYWwgbGluZS5kcmFnLWVkZ2Uge1xuICBjdXJzb3I6IGV3LXJlc2l6ZTtcbn1cblxuLnBsb3R0YWJsZSAuZHJhZy1saW5lLWxheWVyLmVuYWJsZWQuaG9yaXpvbnRhbCBsaW5lLmRyYWctZWRnZSB7XG4gIGN1cnNvcjogbnMtcmVzaXplO1xufVxuXG4ucGxvdHRhYmxlIC5sZWdlbmQgdGV4dCB7XG4gIGZpbGw6ICMzMjMxM0Y7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi5wbG90dGFibGUgLmludGVycG9sYXRlZC1jb2xvci1sZWdlbmQgcmVjdC5zd2F0Y2gtYm91bmRpbmctYm94IHtcbiAgZmlsbDogbm9uZTtcbiAgc3Ryb2tlOiAjQ0NDO1xuICBzdHJva2Utd2lkdGg6IDFweDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5wbG90dGFibGUgLndhdGVyZmFsbC1wbG90IGxpbmUuY29ubmVjdG9yIHtcbiAgc3Ryb2tlOiAjQ0NDO1xuICBzdHJva2Utd2lkdGg6IDFweDtcbn1cblxuLnBsb3R0YWJsZSAucGllLXBsb3QgLmFyYy5vdXRsaW5lIHtcbiAgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDtcbn1cblxuIn0pLChmdW5jdGlvbih0KXt0LkdST1VQPSJHIix0LkRJVj0iRElWIix0LlNWRz0iU1ZHIix0LlRFWFQ9IlRFWFQifSkoY0F0fHwoY0F0PXt9KSk7Y2xhc3MgdUF0IGV4dGVuZHMgY2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy51bmlxdWVJZD0wLHRoaXMucm9vdD10fWV4cG9ydEFzU3RyaW5nKCl7Y29uc3QgdD10aGlzLmNvbnZlcnQodGhpcy5yb290KTtpZighdClyZXR1cm4iIjtjb25zdCBlPXRoaXMuY3JlYXRlUm9vdFN2ZygpO3JldHVybiBlLmFwcGVuZENoaWxkKHQpLGUub3V0ZXJIVE1MfWNyZWF0ZVVuaXF1ZUlkKHQpe3JldHVybmAke3R9XyR7dGhpcy51bmlxdWVJZCsrfWB9Z2V0U2l6ZSgpe3JldHVybiB0aGlzLnJvb3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9Y3JlYXRlUm9vdFN2Zygpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3ZnIiksZT10aGlzLmdldFNpemUoKTtyZXR1cm4gdC5zZXRBdHRyaWJ1dGVOUygic3ZnIiwidmlld0JveCIsYDAgMCAke2Uud2lkdGh9ICR7ZS5oZWlnaHR9YCksdC5zZXRBdHRyaWJ1dGUoInhtbG5zIiwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciKSx0fWNvbnZlcnQodCl7bGV0IGU9bnVsbDtjb25zdCBuPXQubm9kZU5hbWUudG9VcHBlckNhc2UoKTtpZih0Lm5vZGVUeXBlIT1Ob2RlLkVMRU1FTlRfTk9ERXx8biE9Y0F0LkRJViYmbiE9Y0F0LlNWRyllPXQuY2xvbmVOb2RlKCk7ZWxzZXtlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoY0F0LkdST1VQKTtjb25zdCBuPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLGk9cGFyc2VJbnQobi5sZWZ0LDEwKSxyPXBhcnNlSW50KG4udG9wLDEwKTtpZihpfHxyKXtjb25zdCB0PXRoaXMuY3JlYXRlVW5pcXVlSWQoImNsaXAiKTtlLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIixgdHJhbnNsYXRlKCR7aX0sICR7cn0pYCksZS5zZXRBdHRyaWJ1dGUoImNsaXAtcGF0aCIsYHVybCgjJHt0fSlgKTtjb25zdCBvPXBhcnNlSW50KG4ud2lkdGgsMTApLGE9cGFyc2VJbnQobi5oZWlnaHQsMTApLHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicmVjdCIpO3Muc2V0QXR0cmlidXRlKCJ3aWR0aCIsU3RyaW5nKG8pKSxzLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IixTdHJpbmcoYSkpO2NvbnN0IGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJzdmciLCJjbGlwUGF0aCIpO2wuaWQ9dCxsLmFwcGVuZENoaWxkKHMpLGUuYXBwZW5kQ2hpbGQobCl9fUFycmF5LmZyb20odC5jaGlsZE5vZGVzKS5tYXAoKHQ9PnRoaXMuY29udmVydCh0KSkpLmZpbHRlcihCb29sZWFuKS5mb3JFYWNoKCh0PT5lLmFwcGVuZENoaWxkKHQpKSk7cmV0dXJuIGUubm9kZU5hbWUudG9VcHBlckNhc2UoKT09Y0F0LkdST1VQJiYhZS5oYXNDaGlsZE5vZGVzKCl8fHRoaXMuc2hvdWxkT21pdE5vZGUodCk/bnVsbDp0aGlzLnN0cmlwQ2xhc3ModGhpcy50cmFuc2ZlclN0eWxlKHQsZSkpfXN0cmlwQ2xhc3ModCl7cmV0dXJuIHQubm9kZVR5cGU9PU5vZGUuRUxFTUVOVF9OT0RFJiZ0LnJlbW92ZUF0dHJpYnV0ZSgiY2xhc3MiKSx0fXRyYW5zZmVyU3R5bGUodCxlKXtpZihlLm5vZGVUeXBlIT1Ob2RlLkVMRU1FTlRfTk9ERSlyZXR1cm4gZTtjb25zdCBuPWUsaT1lLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCkscj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KTtyZXR1cm4gaT09Y0F0LlRFWFQmJk9iamVjdC5hc3NpZ24obi5zdHlsZSx7Zm9udEZhbWlseTpyLmZvbnRGYW1pbHksZm9udFNpemU6ci5mb250U2l6ZSxmb250V2VpZ2h0OnIuZm9udFdlaWdodH0pLGkhPWNBdC5HUk9VUCYmKG4uc2V0QXR0cmlidXRlKCJmaWxsIixyLmZpbGwpLG4uc2V0QXR0cmlidXRlKCJzdHJva2UiLHIuc3Ryb2tlKSxuLnNldEF0dHJpYnV0ZSgic3Ryb2tlLXdpZHRoIixyLnN0cm9rZVdpZHRoKSksIjEiIT1yLm9wYWNpdHkmJm4uc2V0QXR0cmlidXRlKCJvcGFjaXR5IixyLm9wYWNpdHkpLGV9c2hvdWxkT21pdE5vZGUodCl7cmV0dXJuITF9fXtzaG91bGRPbWl0Tm9kZSh0KXtyZXR1cm4gdC5ub2RlVHlwZT09Tm9kZS5FTEVNRU5UX05PREUmJnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJzY2F0dGVyLXBsb3QiKX19bWwoe21vZHVsZU5hbWU6InZ6LXBhbi16b29tLXN0eWxlIixzdHlsZUNvbnRlbnQ6IlxuICAgIC5oZWxwIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBhbmltYXRpb24tZGVsYXk6IDFzO1xuICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgIGFuaW1hdGlvbi1uYW1lOiBmYWRlLW91dDtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzAsIDMwLCAzMCwgMC42KTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgbGVmdDogMDtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAuaGVscCA+IHNwYW4ge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIGZhZGUtb3V0IHtcbiAgICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICAifSk7Y29uc3QgaEF0PVNDdCg0KSxkQXQ9dD0+aXNOYU4odCk/Ik5hTiI6aEF0KHQpLHBBdD1be3RpdGxlOiJOYW1lIixldmFsdWF0ZTp0PT50LmRhdGFzZXQubWV0YWRhdGEoKS5uYW1lfSx7dGl0bGU6IlNtb290aGVkIixldmFsdWF0ZSh0LGUpe2NvbnN0e3Ntb290aGluZ0VuYWJsZWQ6bn09ZTtyZXR1cm4gZEF0KG4/dC5kYXR1bS5zbW9vdGhlZDp0LmRhdHVtLnNjYWxhcil9fSx7dGl0bGU6IlZhbHVlIixldmFsdWF0ZTp0PT5kQXQodC5kYXR1bS5zY2FsYXIpfSx7dGl0bGU6IlN0ZXAiLGV2YWx1YXRlOnQ9Pk1DdCh0LmRhdHVtLnN0ZXApfSx7dGl0bGU6IlRpbWUiLGV2YWx1YXRlOnQ9PlRDdCh0LmRhdHVtLndhbGxfdGltZSl9LHt0aXRsZToiUmVsYXRpdmUiLGV2YWx1YXRlOnQ9PkFDdChDQ3QodC5kYXR1bSwwLHQuZGF0YXNldCkpfV07bGV0IGZBdD1jbGFzcyBleHRlbmRzKGNyKHdlKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuY29sb3JTY2FsZT0obmV3IE5PLlNjYWxlcy5Db2xvcikucmFuZ2UoakEuc2xpY2UoMCkpLHRoaXMuc21vb3RoaW5nRW5hYmxlZD0hMSx0aGlzLnNtb290aGluZ1dlaWdodD0uNix0aGlzLnhUeXBlPW51bGwsdGhpcy54Q29tcG9uZW50c0NyZWF0aW9uTWV0aG9kPW51bGwsdGhpcy55VmFsdWVBY2Nlc3Nvcj10PT50LnNjYWxhcix0aGlzLnRvb2x0aXBDb2x1bW5zPXBBdCx0aGlzLnlTY2FsZVR5cGU9YUF0LkxJTkVBUix0aGlzLmlnbm9yZVlPdXRsaWVycz0hMSx0aGlzLnRvb2x0aXBTb3J0aW5nTWV0aG9kPSJkZWZhdWx0Iix0aGlzLnRvb2x0aXBQb3NpdGlvbj16Q3QuQk9UVE9NLHRoaXMuX3Zpc2libGVTZXJpZXNDYWNoZT1bXSx0aGlzLl9zZXJpZXNEYXRhQ2FjaGU9e30sdGhpcy5fc2VyaWVzTWV0YWRhdGFDYWNoZT17fSx0aGlzLl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQ9bnVsbH1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5zY29wZVN1YnRyZWUodGhpcy4kLmNoYXJ0ZGl2LCEwKX1hdHRhY2hlZCgpe2NvbnN0IHQ9e2NhcHR1cmU6ITAscGFzc2l2ZTohMH07dGhpcy5fbGlzdGVuKHRoaXMsIm1vdXNlZG93biIsdGhpcy5fb25Nb3VzZURvd24uYmluZCh0aGlzKSx0KSx0aGlzLl9saXN0ZW4odGhpcywibW91c2V1cCIsdGhpcy5fb25Nb3VzZVVwLmJpbmQodGhpcyksdCksdGhpcy5fbGlzdGVuKHdpbmRvdywia2V5ZG93biIsdGhpcy5fb25LZXlEb3duLmJpbmQodGhpcyksdCksdGhpcy5fbGlzdGVuKHdpbmRvdywia2V5dXAiLHRoaXMuX29uS2V5VXAuYmluZCh0aGlzKSx0KX1kZXRhY2hlZCgpe3RoaXMuY2FuY2VsQXN5bmModGhpcy5fbWFrZUNoYXJ0QXN5bmNDYWxsYmFja0lkKSx0aGlzLl9jaGFydCYmKHRoaXMuX2NoYXJ0LmRlc3Ryb3koKSx0aGlzLl9jaGFydD12b2lkIDApLHRoaXMuX2xpc3RlbmVycyYmKHRoaXMuX2xpc3RlbmVycy5mb3JFYWNoKCgoe25vZGU6dCxldmVudE5hbWU6ZSxmdW5jOm4sb3B0aW9uOml9KT0+e3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLG4saSl9KSksdGhpcy5fbGlzdGVuZXJzLmNsZWFyKCkpfV9saXN0ZW4odCxlLG4saT17fSl7dGhpcy5fbGlzdGVuZXJzfHwodGhpcy5fbGlzdGVuZXJzPW5ldyBTZXQpLHRoaXMuX2xpc3RlbmVycy5hZGQoe25vZGU6dCxldmVudE5hbWU6ZSxmdW5jOm4sb3B0aW9uOml9KSx0LmFkZEV2ZW50TGlzdGVuZXIoZSxuLGkpfV9vbktleURvd24odCl7dGhpcy50b2dnbGVDbGFzcygicGFua2V5IixzQXQuaXNQYW5LZXkodCkpfV9vbktleVVwKHQpe3RoaXMudG9nZ2xlQ2xhc3MoInBhbmtleSIsc0F0LmlzUGFuS2V5KHQpKX1fb25Nb3VzZURvd24odCl7dGhpcy50b2dnbGVDbGFzcygibW91c2Vkb3duIiwhMCl9X29uTW91c2VVcCh0KXt0aGlzLnRvZ2dsZUNsYXNzKCJtb3VzZWRvd24iLCExKX1pc0RhdGFGaXRUb0RvbWFpbigpe3JldHVybiF0aGlzLl9jaGFydHx8dGhpcy5fY2hhcnQuaXNEYXRhRml0VG9Eb21haW4oKX1zZXRWaXNpYmxlU2VyaWVzKHQpe0NlLmV4cG9ydHMuaXNFcXVhbCh0aGlzLl92aXNpYmxlU2VyaWVzQ2FjaGUsdCl8fCh0aGlzLl92aXNpYmxlU2VyaWVzQ2FjaGU9dCl9c2V0U2VyaWVzRGF0YSh0LGUpe3RoaXMuX3Nlcmllc0RhdGFDYWNoZVt0XT1lLHRoaXMuX2NoYXJ0JiZ0aGlzLl9jaGFydC5zZXRTZXJpZXNEYXRhKHQsZSl9c2V0U2VyaWVzTWV0YWRhdGEodCxlKXt0aGlzLl9zZXJpZXNNZXRhZGF0YUNhY2hlW3RdPWUsdGhpcy5fY2hhcnQmJnRoaXMuX2NoYXJ0LnNldFNlcmllc01ldGFkYXRhKHQsZSl9Y29tbWl0Q2hhbmdlcygpe3RoaXMuX2NoYXJ0JiZ0aGlzLl9jaGFydC5jb21taXRDaGFuZ2VzKCl9cmVzZXREb21haW4oKXt0aGlzLl9jaGFydCYmdGhpcy5fY2hhcnQucmVzZXREb21haW4oKX1yZWRyYXcoKXt0aGlzLl9jaGFydCYmdGhpcy5fY2hhcnQucmVkcmF3KCl9X21ha2VDaGFydCgpe251bGwhPT10aGlzLl9tYWtlQ2hhcnRBc3luY0NhbGxiYWNrSWQmJih0aGlzLmNhbmNlbEFzeW5jKHRoaXMuX21ha2VDaGFydEFzeW5jQ2FsbGJhY2tJZCksdGhpcy5fbWFrZUNoYXJ0QXN5bmNDYWxsYmFja0lkPW51bGwpLHRoaXMuX21ha2VDaGFydEFzeW5jQ2FsbGJhY2tJZD10aGlzLmFzeW5jKChmdW5jdGlvbigpe3RoaXMuX21ha2VDaGFydEFzeW5jQ2FsbGJhY2tJZD1udWxsO2xldCB0PXRoaXMueENvbXBvbmVudHNDcmVhdGlvbk1ldGhvZDtpZih0aGlzLnhUeXBlfHx0P3RoaXMueFR5cGUmJih0PSgpPT5rQ3QodGhpcy54VHlwZSkpOnQ9RUN0LHQmJnRoaXMueVZhbHVlQWNjZXNzb3ImJnRoaXMudG9vbHRpcENvbHVtbnMpe3ZhciBlPW5ldyBsQXQodCx0aGlzLnlWYWx1ZUFjY2Vzc29yLHRoaXMueVNjYWxlVHlwZSx0aGlzLmNvbG9yU2NhbGUsdGhpcy4kLnRvb2x0aXAsdGhpcy50b29sdGlwQ29sdW1ucyx0aGlzLmZpbGxBcmVhLHRoaXMuZGVmYXVsdFhSYW5nZSx0aGlzLmRlZmF1bHRZUmFuZ2UsdGhpcy5zeW1ib2xGdW5jdGlvbix0aGlzLnhBeGlzRm9ybWF0dGVyKSxuPUR1KHRoaXMuJC5jaGFydGRpdik7ZS5yZW5kZXJUbyhuKSx0aGlzLl9jaGFydCYmdGhpcy5fY2hhcnQuZGVzdHJveSgpLHRoaXMuX2NoYXJ0PWUsdGhpcy5fY2hhcnQub25BbmNob3IoKCgpPT50aGlzLmZpcmUoImNoYXJ0LWF0dGFjaGVkIikpKX19KSwzNTApfV9yZWxvYWRGcm9tQ2FjaGUoKXt0aGlzLl9jaGFydCYmKHRoaXMuX3Zpc2libGVTZXJpZXNDYWNoZS5mb3JFYWNoKCh0PT57dGhpcy5fY2hhcnQuc2V0U2VyaWVzRGF0YSh0LHRoaXMuX3Nlcmllc0RhdGFDYWNoZVt0XXx8W10pfSkpLHRoaXMuX3Zpc2libGVTZXJpZXNDYWNoZS5maWx0ZXIoKHQ9PnRoaXMuX3Nlcmllc01ldGFkYXRhQ2FjaGVbdF0pKS5mb3JFYWNoKCh0PT57dGhpcy5fY2hhcnQuc2V0U2VyaWVzTWV0YWRhdGEodCx0aGlzLl9zZXJpZXNNZXRhZGF0YUNhY2hlW3RdKX0pKSx0aGlzLl9jaGFydC5zZXRWaXNpYmxlU2VyaWVzKHRoaXMuX3Zpc2libGVTZXJpZXNDYWNoZSksdGhpcy5fY2hhcnQuY29tbWl0Q2hhbmdlcygpKX1fc21vb3RoaW5nQ2hhbmdlZCgpe3RoaXMuX2NoYXJ0JiYodGhpcy5zbW9vdGhpbmdFbmFibGVkP3RoaXMuX2NoYXJ0LnNtb290aGluZ1VwZGF0ZSh0aGlzLnNtb290aGluZ1dlaWdodCk6dGhpcy5fY2hhcnQuc21vb3RoaW5nRGlzYWJsZSgpKX1fb3V0bGllcnNDaGFuZ2VkKCl7dGhpcy5fY2hhcnQmJnRoaXMuX2NoYXJ0Lmlnbm9yZVlPdXRsaWVycyh0aGlzLmlnbm9yZVlPdXRsaWVycyl9X2NvbG9yU2NhbGVDaGFuZ2VkKCl7dGhpcy5fY2hhcnQmJih0aGlzLl9jaGFydC5zZXRDb2xvclNjYWxlKHRoaXMuY29sb3JTY2FsZSksdGhpcy5fY2hhcnQucmVkcmF3KCkpfV90b29sdGlwQ29sdW1uc0NoYW5nZWQoKXt0aGlzLl9jaGFydCYmdGhpcy5fY2hhcnQuc2V0VG9vbHRpcENvbHVtbnModGhpcy50b29sdGlwQ29sdW1ucyl9X3Rvb2x0aXBTb3J0aW5nTWV0aG9kQ2hhbmdlZCgpe3RoaXMuX2NoYXJ0JiZ0aGlzLl9jaGFydC5zZXRUb29sdGlwU29ydGluZ01ldGhvZCh0aGlzLnRvb2x0aXBTb3J0aW5nTWV0aG9kKX1nZXRFeHBvcnRlcigpe3JldHVybiBuZXcgdUF0KHRoaXMuJC5jaGFydGRpdil9fTtmQXQudGVtcGxhdGU9eGVgCiAgICA8ZGl2IGlkPSJjaGFydGRpdiI+PC9kaXY+CiAgICA8dnotY2hhcnQtdG9vbHRpcAogICAgICBpZD0idG9vbHRpcCIKICAgICAgcG9zaXRpb249IltbdG9vbHRpcFBvc2l0aW9uXV0iCiAgICAgIGNvbnRlbnQtY29tcG9uZW50LW5hbWU9InZ6LWxpbmUtY2hhcnQtdG9vbHRpcCIKICAgID48L3Z6LWNoYXJ0LXRvb2x0aXA+CiAgICA8c3R5bGUgaW5jbHVkZT0icGxvdHRhYmxlLXN0eWxlIj48L3N0eWxlPgogICAgPHN0eWxlIGluY2x1ZGU9InZ6LXBhbi16b29tLXN0eWxlIj48L3N0eWxlPgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQogICAgICBkaXYgewogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgIH0KCiAgICAgICNjaGFydGRpdiAubWFpbiB7CiAgICAgICAgY29udGFpbjogc3RyaWN0OwogICAgICAgIGN1cnNvcjogY3Jvc3NoYWlyOwogICAgICB9CgogICAgICA6aG9zdCgucGFua2V5KSAjY2hhcnRkaXYgOm5vdCguZHJhZy16b29taW5nKSAubWFpbiB7CiAgICAgICAgY3Vyc29yOiAtd2Via2l0LWdyYWI7CiAgICAgICAgY3Vyc29yOiBncmFiOwogICAgICB9CgogICAgICA6aG9zdCgubW91c2Vkb3duKSAjY2hhcnRkaXYgLnBhbm5pbmcgLm1haW4gewogICAgICAgIGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZzsKICAgICAgICBjdXJzb3I6IGdyYWJiaW5nOwogICAgICB9CgogICAgICAjY2hhcnRkaXYgewogICAgICAgIGNvbnRhaW46IHN0cmljdDsKICAgICAgfQoKICAgICAgI2NoYXJ0ZGl2IGxpbmUuZ3VpZGUtbGluZSB7CiAgICAgICAgc3Ryb2tlOiAjOTk5OwogICAgICAgIHN0cm9rZS13aWR0aDogMS41cHg7CiAgICAgIH0KICAgICAgI2NoYXJ0ZGl2OmhvdmVyIC5tYWluIHsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICB9CgogICAgICAuZ2hvc3QgewogICAgICAgIG9wYWNpdHk6IDAuMjsKICAgICAgICBzdHJva2Utd2lkdGg6IDFweDsKICAgICAgfQoKICAgICAgLnBsb3R0YWJsZSAuYXhpcyB0ZXh0IHsKICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7CiAgICAgIH0KCiAgICAgIC5wbG90dGFibGUgLmdyaWRsaW5lcyBsaW5lIHsKICAgICAgICBzdHJva2U6IHZhcigtLXRiLXNlY29uZGFyeS10ZXh0LWNvbG9yKTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE5PLlNjYWxlcy5Db2xvcildLGZBdC5wcm90b3R5cGUsImNvbG9yU2NhbGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSxmQXQucHJvdG90eXBlLCJzeW1ib2xGdW5jdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxmQXQucHJvdG90eXBlLCJzbW9vdGhpbmdFbmFibGVkIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLGZBdC5wcm90b3R5cGUsInNtb290aGluZ1dlaWdodCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxmQXQucHJvdG90eXBlLCJ4VHlwZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLGZBdC5wcm90b3R5cGUsInhDb21wb25lbnRzQ3JlYXRpb25NZXRob2QiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSxmQXQucHJvdG90eXBlLCJ4QXhpc0Zvcm1hdHRlciIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLGZBdC5wcm90b3R5cGUsInlWYWx1ZUFjY2Vzc29yIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxmQXQucHJvdG90eXBlLCJ0b29sdGlwQ29sdW1ucyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxmQXQucHJvdG90eXBlLCJmaWxsQXJlYSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sZkF0LnByb3RvdHlwZSwiZGVmYXVsdFhSYW5nZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sZkF0LnByb3RvdHlwZSwiZGVmYXVsdFlSYW5nZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxmQXQucHJvdG90eXBlLCJ5U2NhbGVUeXBlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sZkF0LnByb3RvdHlwZSwiaWdub3JlWU91dGxpZXJzIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGZBdC5wcm90b3R5cGUsInRvb2x0aXBTb3J0aW5nTWV0aG9kIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGZBdC5wcm90b3R5cGUsInRvb2x0aXBQb3NpdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxmQXQucHJvdG90eXBlLCJfY2hhcnQiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLGZBdC5wcm90b3R5cGUsIl92aXNpYmxlU2VyaWVzQ2FjaGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZkF0LnByb3RvdHlwZSwiX3Nlcmllc0RhdGFDYWNoZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxmQXQucHJvdG90eXBlLCJfc2VyaWVzTWV0YWRhdGFDYWNoZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxmQXQucHJvdG90eXBlLCJfbWFrZUNoYXJ0QXN5bmNDYWxsYmFja0lkIix2b2lkIDApLHQoW2EoInhDb21wb25lbnRzQ3JlYXRpb25NZXRob2QiLCJ4VHlwZSIsInlWYWx1ZUFjY2Vzc29yIiwieVNjYWxlVHlwZSIsImlzQXR0YWNoZWQiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGZBdC5wcm90b3R5cGUsIl9tYWtlQ2hhcnQiLG51bGwpLHQoW2EoIl9jaGFydCIsIl92aXNpYmxlU2VyaWVzQ2FjaGUiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGZBdC5wcm90b3R5cGUsIl9yZWxvYWRGcm9tQ2FjaGUiLG51bGwpLHQoW2EoInNtb290aGluZ0VuYWJsZWQiLCJzbW9vdGhpbmdXZWlnaHQiLCJfY2hhcnQiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGZBdC5wcm90b3R5cGUsIl9zbW9vdGhpbmdDaGFuZ2VkIixudWxsKSx0KFthKCJpZ25vcmVZT3V0bGllcnMiLCJfY2hhcnQiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGZBdC5wcm90b3R5cGUsIl9vdXRsaWVyc0NoYW5nZWQiLG51bGwpLHQoW2EoImNvbG9yU2NhbGUiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGZBdC5wcm90b3R5cGUsIl9jb2xvclNjYWxlQ2hhbmdlZCIsbnVsbCksdChbYSgidG9vbHRpcENvbHVtbnMiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGZBdC5wcm90b3R5cGUsIl90b29sdGlwQ29sdW1uc0NoYW5nZWQiLG51bGwpLHQoW2EoInRvb2x0aXBTb3J0aW5nTWV0aG9kIiwiX2NoYXJ0IiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxmQXQucHJvdG90eXBlLCJfdG9vbHRpcFNvcnRpbmdNZXRob2RDaGFuZ2VkIixudWxsKSxmQXQ9dChbaSgidnotbGluZS1jaGFydDIiKV0sZkF0KTtsZXQgbUF0PWNsYXNzIGV4dGVuZHMgd2V7fTttQXQudGVtcGxhdGU9eGVgCiAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgPHRhYmxlPgogICAgICAgIDx0aGVhZD48L3RoZWFkPgogICAgICAgIDx0Ym9keT48L3Rib2R5PgogICAgICA8L3RhYmxlPgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmNvbnRlbnQgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44KTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgdGFibGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS40ZW07CiAgICAgICAgbWFyZ2luLXRvcDogMTBweDsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgIH0KCiAgICAgIHRoZWFkIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIHRib2R5IHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIxcHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgdGQgewogICAgICAgIHBhZGRpbmc6IDAgNXB4OwogICAgICB9CgogICAgICAuc3dhdGNoIHsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICB9CgogICAgICAuY2xvc2VzdCAuc3dhdGNoIHsKICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggI2ZmZjsKICAgICAgfQoKICAgICAgdGggewogICAgICAgIHBhZGRpbmc6IDAgNXB4OwogICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgIH0KCiAgICAgIC5kaXN0YW50IHRkOm5vdCguc3dhdGNoKSB7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CgogICAgICAuZ2hvc3QgewogICAgICAgIG9wYWNpdHk6IDAuMjsKICAgICAgICBzdHJva2Utd2lkdGg6IDFweDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLG1BdD10KFtpKCJ2ei1saW5lLWNoYXJ0LXRvb2x0aXAiKV0sbUF0KTtjb25zdCBnQXQ9W107Y29uc3QgX0F0PUNlLmV4cG9ydHMudGhyb3R0bGUoKGZ1bmN0aW9uIHQoKXtpZigwPT1nQXQubGVuZ3RoKXJldHVybjtjb25zdCBlPWdBdC5zaGlmdCgpO2UmJmUuYWN0aXZlJiYoZS5yZWRyYXcoKSxlLl9tYXliZVJlbmRlcmVkSW5CYWRTdGF0ZT0hMSksd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKDApLHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCl9KSwxMDApO2xldCB5QXQ9Y2xhc3MgZXh0ZW5kcyhiQ3QoY3Iod2UpKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3JlZHJhd1JhZj1udWxsLHRoaXMuYWN0aXZlPSExLHRoaXMubG9nU2NhbGVBY3RpdmU9ITEsdGhpcy5jb2xvclNjYWxlPXtzY2FsZTpfT30sdGhpcy5fcmVzZXREb21haW5Pbk5leHRMb2FkPSEwLHRoaXMuX21heWJlUmVuZGVyZWRJbkJhZFN0YXRlPSExfW9uTG9hZEZpbmlzaCgpe3RoaXMuY29tbWl0Q2hhbmdlcygpLHRoaXMuZGF0YVRvTG9hZC5sZW5ndGg+MCYmdGhpcy5fcmVzZXREb21haW5Pbk5leHRMb2FkJiYodGhpcy5fcmVzZXREb21haW5Pbk5leHRMb2FkPSExLHRoaXMuZ2V0Q2hhcnQoKS5yZXNldERvbWFpbigpKSx0aGlzLnJlZHJhdygpfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxudWxsIT09dGhpcy5fcmVkcmF3UmFmJiZjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9yZWRyYXdSYWYpfWV4cG9ydEFzU3ZnU3RyaW5nKCl7cmV0dXJuIHRoaXMuZ2V0Q2hhcnQoKS5nZXRFeHBvcnRlcigpLmV4cG9ydEFzU3RyaW5nKCl9Z2V0Q2hhcnQoKXtyZXR1cm4gdGhpcy4kLmNoYXJ0fXJlc2V0RG9tYWluKCl7dGhpcy5nZXRDaGFydCgpLnJlc2V0RG9tYWluKCl9c2V0U2VyaWVzRGF0YSh0LGUpe3RoaXMuZ2V0Q2hhcnQoKS5zZXRTZXJpZXNEYXRhKHQsZSl9c2V0U2VyaWVzTWV0YWRhdGEodCxlKXt0aGlzLmdldENoYXJ0KCkuc2V0U2VyaWVzTWV0YWRhdGEodCxlKX1jb21taXRDaGFuZ2VzKCl7dGhpcy5nZXRDaGFydCgpLmNvbW1pdENoYW5nZXMoKX1yZWRyYXcoKXtudWxsIT09dGhpcy5fcmVkcmF3UmFmJiZjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9yZWRyYXdSYWYpLHRoaXMuX3JlZHJhd1JhZj13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e3RoaXMuYWN0aXZlP3RoaXMuZ2V0Q2hhcnQoKS5yZWRyYXcoKTp0aGlzLl9tYXliZVJlbmRlcmVkSW5CYWRTdGF0ZT0hMH0pKX1fbG9hZEtleUNoYW5nZWQoKXt0aGlzLnJlc2V0KCksdGhpcy5fcmVzZXREb21haW5Pbk5leHRMb2FkPSEwfV9kYXRhU2VyaWVzQ2hhbmdlZCgpe3RoaXMuZ2V0Q2hhcnQoKS5zZXRWaXNpYmxlU2VyaWVzKHRoaXMuZGF0YVNlcmllcyl9X2xvZ1NjYWxlQ2hhbmdlZCh0KXt0aGlzLmdldENoYXJ0KCkueVNjYWxlVHlwZT10P2FBdC5MT0c6YUF0LkxJTkVBUix0aGlzLnJlZHJhdygpfV9maXhCYWRTdGF0ZVdoZW5BY3RpdmUoKXt0aGlzLmFjdGl2ZSYmdGhpcy5fbWF5YmVSZW5kZXJlZEluQmFkU3RhdGUmJihnQXQucHVzaCh0aGlzKSxfQXQoKSl9X29uQ2hhcnRBdHRhY2hlZCgpe3RoaXMuYWN0aXZlfHwodGhpcy5fbWF5YmVSZW5kZXJlZEluQmFkU3RhdGU9ITApfX07eUF0LnRlbXBsYXRlPXhlYAogICAgPGRpdiBpZD0iY2hhcnQtYW5kLXNwaW5uZXItY29udGFpbmVyIj4KICAgICAgPHZ6LWxpbmUtY2hhcnQyCiAgICAgICAgaWQ9ImNoYXJ0IgogICAgICAgIGRhdGEtbG9hZGluZyQ9IltbZGF0YUxvYWRpbmddXSIKICAgICAgICBkYXRhLWxvYWRlZC1vbmNlJD0iW1tkYXRhTG9hZGVkQXRMZWFzdE9uY2VdXSIKICAgICAgICBjb2xvci1zY2FsZT0iW1tjb2xvclNjYWxlXV0iCiAgICAgICAgZGVmYXVsdC14LXJhbmdlPSJbW2RlZmF1bHRYUmFuZ2VdXSIKICAgICAgICBkZWZhdWx0LXktcmFuZ2U9IltbZGVmYXVsdFlSYW5nZV1dIgogICAgICAgIGZpbGwtYXJlYT0iW1tmaWxsQXJlYV1dIgogICAgICAgIGlnbm9yZS15LW91dGxpZXJzPSJbW2lnbm9yZVlPdXRsaWVyc11dIgogICAgICAgIG9uLWNoYXJ0LWF0dGFjaGVkPSJfb25DaGFydEF0dGFjaGVkIgogICAgICAgIHNtb290aGluZy1lbmFibGVkPSJbW3Ntb290aGluZ0VuYWJsZWRdXSIKICAgICAgICBzbW9vdGhpbmctd2VpZ2h0PSJbW3Ntb290aGluZ1dlaWdodF1dIgogICAgICAgIHN5bWJvbC1mdW5jdGlvbj0iW1tzeW1ib2xGdW5jdGlvbl1dIgogICAgICAgIHRvb2x0aXAtY29sdW1ucz0iW1t0b29sdGlwQ29sdW1uc11dIgogICAgICAgIHRvb2x0aXAtcG9zaXRpb249IltbdG9vbHRpcFBvc2l0aW9uXV0iCiAgICAgICAgdG9vbHRpcC1zb3J0aW5nLW1ldGhvZD0iW1t0b29sdGlwU29ydGluZ01ldGhvZF1dIgogICAgICAgIHgtY29tcG9uZW50cy1jcmVhdGlvbi1tZXRob2Q9IltbeENvbXBvbmVudHNDcmVhdGlvbk1ldGhvZF1dIgogICAgICAgIHgtdHlwZT0iW1t4VHlwZV1dIgogICAgICAgIHktdmFsdWUtYWNjZXNzb3I9IltbeVZhbHVlQWNjZXNzb3JdXSIKICAgICAgPjwvdnotbGluZS1jaGFydDI+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tkYXRhTG9hZGluZ11dIj4KICAgICAgICA8ZGl2IGlkPSJsb2FkaW5nLXNwaW5uZXItY29udGFpbmVyIj4KICAgICAgICAgIDxwYXBlci1zcGlubmVyLWxpdGUgYWN0aXZlPSIiPjwvcGFwZXItc3Bpbm5lci1saXRlPgogICAgICAgIDwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB9CgogICAgICA6aG9zdChbX21heWJlLXJlbmRlcmVkLWluLWJhZC1zdGF0ZV0pIHZ6LWxpbmUtY2hhcnQgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgI2NoYXJ0LWFuZC1zcGlubmVyLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAjbG9hZGluZy1zcGlubmVyLWNvbnRhaW5lciB7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgfQoKICAgICAgdnotbGluZS1jaGFydDIgewogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgdnotbGluZS1jaGFydDJbZGF0YS1sb2FkaW5nXSB7CiAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpCb29sZWFuLG9ic2VydmVyOiJfZml4QmFkU3RhdGVXaGVuQWN0aXZlIn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0seUF0LnByb3RvdHlwZSwiYWN0aXZlIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSx5QXQucHJvdG90eXBlLCJkYXRhU2VyaWVzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLGJyKV0seUF0LnByb3RvdHlwZSwicmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFuLG9ic2VydmVyOiJfbG9nU2NhbGVDaGFuZ2VkIn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0seUF0LnByb3RvdHlwZSwibG9nU2NhbGVBY3RpdmUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0seUF0LnByb3RvdHlwZSwieENvbXBvbmVudHNDcmVhdGlvbk1ldGhvZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx5QXQucHJvdG90eXBlLCJ4VHlwZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLHlBdC5wcm90b3R5cGUsInlWYWx1ZUFjY2Vzc29yIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHlBdC5wcm90b3R5cGUsImZpbGxBcmVhIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0seUF0LnByb3RvdHlwZSwic21vb3RoaW5nRW5hYmxlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSx5QXQucHJvdG90eXBlLCJzbW9vdGhpbmdXZWlnaHQiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLHlBdC5wcm90b3R5cGUsInRvb2x0aXBDb2x1bW5zIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHlBdC5wcm90b3R5cGUsInRvb2x0aXBTb3J0aW5nTWV0aG9kIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHlBdC5wcm90b3R5cGUsInRvb2x0aXBQb3NpdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHlBdC5wcm90b3R5cGUsImlnbm9yZVlPdXRsaWVycyIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0seUF0LnByb3RvdHlwZSwiZGVmYXVsdFhSYW5nZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0seUF0LnByb3RvdHlwZSwiZGVmYXVsdFlSYW5nZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLHlBdC5wcm90b3R5cGUsInN5bWJvbEZ1bmN0aW9uIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHlBdC5wcm90b3R5cGUsImNvbG9yU2NhbGUiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSx5QXQucHJvdG90eXBlLCJfcmVzZXREb21haW5Pbk5leHRMb2FkIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHlBdC5wcm90b3R5cGUsIl9tYXliZVJlbmRlcmVkSW5CYWRTdGF0ZSIsdm9pZCAwKSx0KFthKCJsb2FkS2V5IiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSx5QXQucHJvdG90eXBlLCJfbG9hZEtleUNoYW5nZWQiLG51bGwpLHQoW2EoImRhdGFTZXJpZXMuKiIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0seUF0LnByb3RvdHlwZSwiX2RhdGFTZXJpZXNDaGFuZ2VkIixudWxsKSx5QXQ9dChbaSgidGYtbGluZS1jaGFydC1kYXRhLWxvYWRlciIpXSx5QXQpLG1sKHttb2R1bGVOYW1lOiJ0Zi1jdXN0b20tc2NhbGFyLWNhcmQtc3R5bGUiLHN0eWxlQ29udGVudDoiXG4gICAgOmhvc3Qge1xuICAgICAgbWFyZ2luOiA1cHggMTBweDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiAzMzBweDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbiAgICB9XG5cbiAgICA6aG9zdChbX2V4cGFuZGVkXSkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgOmhvc3QoW19leHBhbmRlZF0pICN0Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyLWNvbnRhaW5lciB7XG4gICAgICBoZWlnaHQ6IDQwMHB4O1xuICAgIH1cblxuICAgIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgfVxuXG4gICAgI3RmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXItY29udGFpbmVyIHtcbiAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAjYnV0dG9ucyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG5cbiAgICBwYXBlci1pY29uLWJ1dHRvbiB7XG4gICAgICBjb2xvcjogIzIxOTZmMztcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICB3aWR0aDogMzJweDtcbiAgICAgIGhlaWdodDogMzJweDtcbiAgICAgIHBhZGRpbmc6IDRweDtcbiAgICB9XG5cbiAgICBwYXBlci1pY29uLWJ1dHRvbltzZWxlY3RlZF0ge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGItdWktbGlnaHQtYWNjZW50KTtcbiAgICB9XG5cbiAgICAuZG93bmxvYWQtbGlua3Mge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGhlaWdodDogMzJweDtcbiAgICB9XG5cbiAgICAuZG93bmxvYWQtbGlua3MgYSB7XG4gICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICBtYXJnaW46IDJweDtcbiAgICB9XG5cbiAgICAuZG93bmxvYWQtbGlua3MgcGFwZXItZHJvcGRvd24tbWVudSB7XG4gICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1sYWJlbDoge1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICB9XG4gICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dDoge1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICB9XG4gICAgfVxuICAifSk7Y2xhc3MgdkF0e2NvbnN0cnVjdG9yKHQsZSxuLGkscil7dGhpcy5ydW49dCx0aGlzLnRhZz1lLHRoaXMubmFtZT1uLHRoaXMuc2NhbGFyRGF0YT1pLHRoaXMuc3ltYm9sPXJ9Z2V0TmFtZSgpe3JldHVybiB0aGlzLm5hbWV9c2V0RGF0YSh0KXt0aGlzLnNjYWxhckRhdGE9dH1nZXREYXRhKCl7cmV0dXJuIHRoaXMuc2NhbGFyRGF0YX1nZXRSdW4oKXtyZXR1cm4gdGhpcy5ydW59Z2V0VGFnKCl7cmV0dXJuIHRoaXMudGFnfWdldFN5bWJvbCgpe3JldHVybiB0aGlzLnN5bWJvbH19ZnVuY3Rpb24gYkF0KHQsZSl7cmV0dXJuYCR7ZX0gKCR7dH0pYH1jbGFzcyB4QXR7Y29uc3RydWN0b3IodCl7dGhpcy5ydW5CYXNlZENvbG9yU2NhbGU9dH1zY2FsZSh0KXtyZXR1cm4gdGhpcy5ydW5CYXNlZENvbG9yU2NhbGUuc2NhbGUodGhpcy5wYXJzZVJ1bk5hbWUodCkpfXBhcnNlUnVuTmFtZSh0KXtjb25zdCBlPXQubWF0Y2goL1woKC4qKVwpJC8pO3JldHVybiBlP2VbMV06IiJ9fWxldCB3QXQ9Y2xhc3MgZXh0ZW5kcyhjcih3ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmFjdGl2ZT0hMCx0aGlzLl9jb2xvclNjYWxlPW5ldyB4QXQoe3NjYWxlOl9PfSksdGhpcy5fbmFtZVRvRGF0YVNlcmllcz17fSx0aGlzLl9leHBhbmRlZD0hMSx0aGlzLl9yZXF1ZXN0RGF0YT0odCxlLG4pPT57Y29uc3QgaT1FcigpLnBsdWdpblJvdXRlKCJjdXN0b21fc2NhbGFycyIsIi9zY2FsYXJzIik7UHJvbWlzZS5hbGwodC5tYXAoKHQ9Pntjb25zdCBuPVBPKGkse3RhZzp0aGlzLl90YWdGaWx0ZXIscnVuOnR9KTtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KG4pLnRoZW4oKG49PntlKHtpdGVtOnQsZGF0YTpufSl9KSl9KSkpLmZpbmFsbHkoKCgpPT57bigpfSkpfSx0aGlzLl9ydW5Ub05leHRBdmFpbGFibGVTeW1ib2xJbmRleD17fSx0aGlzLl9tYXRjaGVzTGlzdE9wZW5lZD0hMSx0aGlzLl9maWxsQXJlYT17bG93ZXJBY2Nlc3Nvcjp0PT50Lmxvd2VyLGhpZ2hlckFjY2Vzc29yOnQ9PnQudXBwZXJ9LHRoaXMuX3Rvb2x0aXBDb2x1bW5zPSgoKT0+e2NvbnN0IHQ9U0N0KDQpLGU9ZT0+aXNOYU4oZSk/Ik5hTiI6dChlKTtyZXR1cm5be3RpdGxlOiJOYW1lIixldmFsdWF0ZTp0PT50LmRhdGFzZXQubWV0YWRhdGEoKS5uYW1lfSx7dGl0bGU6IlZhbHVlIixldmFsdWF0ZTp0PT5lKHQuZGF0dW0uc2NhbGFyKX0se3RpdGxlOiJMb3dlciBNYXJnaW4iLGV2YWx1YXRlOnQ9PmUodC5kYXR1bS5sb3dlcil9LHt0aXRsZToiVXBwZXIgTWFyZ2luIixldmFsdWF0ZTp0PT5lKHQuZGF0dW0udXBwZXIpfSx7dGl0bGU6IlN0ZXAiLGV2YWx1YXRlOnQ9Pk1DdCh0LmRhdHVtLnN0ZXApfSx7dGl0bGU6IlRpbWUiLGV2YWx1YXRlOnQ9PlRDdCh0LmRhdHVtLndhbGxfdGltZSl9LHt0aXRsZToiUmVsYXRpdmUiLGV2YWx1YXRlOnQ9PkFDdChDQ3QodC5kYXR1bSwwLHQuZGF0YXNldCkpfV19KSgpLHRoaXMuX21pc3NpbmdUYWdzPVtdLHRoaXMuX21pc3NpbmdUYWdzQ29sbGFwc2libGVPcGVuZWQ9ITF9cmVsb2FkKCl7dGhpcy4kLmxvYWRlci5yZWxvYWQoKX1yZWRyYXcoKXt0aGlzLiQubG9hZGVyLnJlZHJhdygpfV90b2dnbGVFeHBhbmRlZCh0KXt0aGlzLnNldCgiX2V4cGFuZGVkIiwhdGhpcy5fZXhwYW5kZWQpLHRoaXMucmVkcmF3KCl9X3RvZ2dsZUxvZ1NjYWxlKCl7dGhpcy5zZXQoIl9sb2dTY2FsZUFjdGl2ZSIsIXRoaXMuX2xvZ1NjYWxlQWN0aXZlKX1fcmVzZXREb21haW4oKXtjb25zdCB0PXRoaXMuJC5sb2FkZXI7dCYmdC5yZXNldERvbWFpbigpfV9jc3ZVcmwodCxlKXtpZighZSlyZXR1cm4iIjtyZXR1cm4gUE8odGhpcy5fZG93bmxvYWREYXRhVXJsKHQsZSkse2Zvcm1hdDoiY3N2In0pfV9qc29uVXJsKHQsZSl7aWYoIWUpcmV0dXJuIiI7cmV0dXJuIFBPKHRoaXMuX2Rvd25sb2FkRGF0YVVybCh0LGUpLHtmb3JtYXQ6Impzb24ifSl9X2Rvd25sb2FkRGF0YVVybCh0LGUpe2NvbnN0IG49dFtlXSxpPXt0YWc6bi5nZXRUYWcoKSxydW46bi5nZXRSdW4oKX07cmV0dXJuIFBPKEVyKCkucGx1Z2luUm91dGUoImN1c3RvbV9zY2FsYXJzIiwiL2Rvd25sb2FkX2RhdGEiKSxpKX1fY3JlYXRlUHJvY2Vzc0RhdGFGdW5jdGlvbih0KXtyZXR1cm4oZSxuLGkpPT57aWYoIWkucmVnZXhfdmFsaWQpcmV0dXJuIHZvaWQgdGhpcy5zZXQoIl90YWdGaWx0ZXJJbnZhbGlkIiwhMCk7Y29uc3Qgcj1DZS5leHBvcnRzLmNsb25lKHRoaXMuX25hbWVUb0RhdGFTZXJpZXMpLG89W107Q2UuZXhwb3J0cy5mb3JFYWNoKHQsKHQ9PntsZXQgZT0hMTtjb25zdCBhPWkudGFnX3RvX2V2ZW50c1t0LnZhbHVlXSxzPWkudGFnX3RvX2V2ZW50c1t0Lmxvd2VyXSxsPWkudGFnX3RvX2V2ZW50c1t0LnVwcGVyXTtpZihDZS5leHBvcnRzLmlzVW5kZWZpbmVkKGEpJiYoby5wdXNoKHQudmFsdWUpLGU9ITApLENlLmV4cG9ydHMuaXNVbmRlZmluZWQocykmJihvLnB1c2godC5sb3dlciksZT0hMCksQ2UuZXhwb3J0cy5pc1VuZGVmaW5lZChsKSYmKG8ucHVzaCh0LnVwcGVyKSxlPSEwKSxlKXJldHVybjtjb25zdCBjPXQ9PnRbMV0sdT10aGlzLl9maW5kU3RlcE1pc21hdGNoKHQsYS5tYXAoYykscy5tYXAoYyksbC5tYXAoYykpO2lmKHUpcmV0dXJuIHZvaWQgdGhpcy5zZXQoIl9zdGVwc01pc21hdGNoIix1KTtjb25zdCBoPXQ9PnRbMl0sZD1hLm1hcCgoKHQsZSk9Pih7d2FsbF90aW1lOm5ldyBEYXRlKDFlMyp0WzBdKSxzdGVwOmModCksc2NhbGFyOmgodCksbG93ZXI6aChzW2VdKSx1cHBlcjpoKGxbZV0pfSkpKSxwPWJBdChuLHQudmFsdWUpLGY9cltwXTtpZihmKWYuc2V0RGF0YShkKTtlbHNle2NvbnN0IGU9dGhpcy5fY3JlYXRlTmV3RGF0YVNlcmllcyhuLHQudmFsdWUscCxkKTtyW3BdPWV9fSkpLHRoaXMuc2V0KCJfbmFtZVRvRGF0YVNlcmllcyIscik7Y29uc3QgYT1DZS5leHBvcnRzLmZpbmRJbmRleCh0aGlzLl9taXNzaW5nVGFncywodD0+dC5ydW49PT1uKSk7aWYoby5sZW5ndGgmJjMhPW8ubGVuZ3RoKXtjb25zdCB0PXtydW46bix0YWdzOm99O2E+PTA/dGhpcy5zcGxpY2UoIl9taXNzaW5nVGFncyIsYSwxLHQpOnRoaXMucHVzaCgiX21pc3NpbmdUYWdzIix0KX1lbHNlIGE+PTAmJnRoaXMuc3BsaWNlKCJfbWlzc2luZ1RhZ3MiLGEsMSl9fV9maW5kU3RlcE1pc21hdGNoKHQsZSxuLGkpe3JldHVybiBDZS5leHBvcnRzLmlzRXF1YWwobixlKSYmQ2UuZXhwb3J0cy5pc0VxdWFsKGksZSk/bnVsbDp7c2VyaWVzT2JqZWN0OnQsdmFsdWVTdGVwczplLGxvd2VyU3RlcHM6bix1cHBlclN0ZXBzOml9fV9jcmVhdGVOZXdEYXRhU2VyaWVzKHQsZSxuLGkpe3RoaXMuX3J1blRvTmV4dEF2YWlsYWJsZVN5bWJvbEluZGV4W3RdfD0wO2NvbnN0IHI9bmV3IHZBdCh0LGUsbixpLHhDdFt0aGlzLl9ydW5Ub05leHRBdmFpbGFibGVTeW1ib2xJbmRleFt0XV0pO3JldHVybiB0aGlzLl9ydW5Ub05leHRBdmFpbGFibGVTeW1ib2xJbmRleFt0XT0odGhpcy5fcnVuVG9OZXh0QXZhaWxhYmxlU3ltYm9sSW5kZXhbdF0rMSkleEN0Lmxlbmd0aCxyfV91cGRhdGVDaGFydCgpe0NlLmV4cG9ydHMuZm9yT3duKHRoaXMuX25hbWVUb0RhdGFTZXJpZXMsKHQ9Pnt0aGlzLiQubG9hZGVyLnNldFNlcmllc0RhdGEodC5nZXROYW1lKCksdC5nZXREYXRhKCkpfSkpLHRoaXMuJC5sb2FkZXIuY29tbWl0Q2hhbmdlcygpfWdldCBfc2VyaWVzTmFtZXMoKXtjb25zdCB0PW5ldyBTZXQodGhpcy5ydW5zKTtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy5fbmFtZVRvRGF0YVNlcmllcykuZmlsdGVyKCgoW2Usbl0pPT50LmhhcyhuLnJ1bikpKS5tYXAoKChbdF0pPT50KSl9X2RldGVybWluZUNvbG9yKHQsZSl7cmV0dXJuIHQuc2NhbGUoZSl9X3JlZnJlc2hEYXRhU2VyaWVzKCl7dGhpcy5zZXQoIl9uYW1lVG9EYXRhU2VyaWVzIix7fSl9X2NyZWF0ZVN5bWJvbEZ1bmN0aW9uKCl7cmV0dXJuIHQ9PnRoaXMuX25hbWVUb0RhdGFTZXJpZXNbdF0uZ2V0U3ltYm9sKCkubWV0aG9kKCl9X2RldGVybWluZVN5bWJvbCh0LGUpe3JldHVybiB0W2VdLmdldFN5bWJvbCgpLmNoYXJhY3Rlcn1nZXQgX3RhZ0ZpbHRlcigpe3JldHVybiBDZS5leHBvcnRzLmZsYXR0ZW4odGhpcy5tYXJnaW5DaGFydFNlcmllcy5tYXAoKHQ9Plt0LnZhbHVlLHQubG93ZXIsdC51cHBlcl0pKSkubWFwKCh0PT4iKCIrdGhpcy5fZXNjYXBlUmVnZXhDaGFyYWN0ZXJzKHQpKyIpIikpLmpvaW4oInwiKX1fZXNjYXBlUmVnZXhDaGFyYWN0ZXJzKHQpe3JldHVybiB0LnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLCJcXCQmIil9X2dldFRvZ2dsZUNvbGxhcHNpYmxlSWNvbih0KXtyZXR1cm4gdD8iZXhwYW5kLWxlc3MiOiJleHBhbmQtbW9yZSJ9X3RvZ2dsZU1hdGNoZXNPcGVuKCl7dGhpcy5zZXQoIl9tYXRjaGVzTGlzdE9wZW5lZCIsIXRoaXMuX21hdGNoZXNMaXN0T3BlbmVkKX1nZXQgX3RpdGxlRGlzcGxheVN0cmluZygpe3JldHVybiB0aGlzLnRpdGxlfHwidW50aXRsZWQifV9zZXBhcmF0ZVdpdGhDb21tYXModCl7cmV0dXJuIHQuam9pbigiLCAiKX1fdG9nZ2xlTWlzc2luZ1RhZ3NDb2xsYXBzaWJsZU9wZW4oKXt0aGlzLnNldCgiX21pc3NpbmdUYWdzQ29sbGFwc2libGVPcGVuZWQiLCF0aGlzLl9taXNzaW5nVGFnc0NvbGxhcHNpYmxlT3BlbmVkKX1fbWF0Y2hMaXN0RW50cnlDb2xvclVwZGF0ZWQoKXtjb25zdCB0PXRoaXMuJCQoIiNtYXRjaC1saXN0LXJlcGVhdCIpO3QmJnRoaXMucm9vdC5xdWVyeVNlbGVjdG9yQWxsKCIubWF0Y2gtbGlzdC1lbnRyeSIpLmZvckVhY2goKGU9Pntjb25zdCBuPXQuaXRlbUZvckVsZW1lbnQoZSk7ZS5zdHlsZS5jb2xvcj10aGlzLl9kZXRlcm1pbmVDb2xvcih0aGlzLl9jb2xvclNjYWxlLG4pfSkpfX07d0F0LnRlbXBsYXRlPXhlYAogICAgPHRmLWNhcmQtaGVhZGluZyBkaXNwbGF5LW5hbWU9IltbX3RpdGxlRGlzcGxheVN0cmluZ11dIj48L3RmLWNhcmQtaGVhZGluZz4KICAgIDxkaXYgaWQ9InRmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXItY29udGFpbmVyIj4KICAgICAgPHRmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXIKICAgICAgICBpZD0ibG9hZGVyIgogICAgICAgIGFjdGl2ZT0iW1thY3RpdmVdXSIKICAgICAgICBjb2xvci1zY2FsZT0iW1tfY29sb3JTY2FsZV1dIgogICAgICAgIGRhdGEtc2VyaWVzPSJbW19zZXJpZXNOYW1lc11dIgogICAgICAgIGZpbGwtYXJlYT0iW1tfZmlsbEFyZWFdXSIKICAgICAgICBpZ25vcmUteS1vdXRsaWVycz0iW1tpZ25vcmVZT3V0bGllcnNdXSIKICAgICAgICBsb2FkLWtleT0iW1tfdGFnRmlsdGVyXV0iCiAgICAgICAgZGF0YS10by1sb2FkPSJbW3J1bnNdXSIKICAgICAgICByZXF1ZXN0LWRhdGE9IltbX3JlcXVlc3REYXRhXV0iCiAgICAgICAgbG9nLXNjYWxlLWFjdGl2ZT0iW1tfbG9nU2NhbGVBY3RpdmVdXSIKICAgICAgICBsb2FkLWRhdGEtY2FsbGJhY2s9IltbX2NyZWF0ZVByb2Nlc3NEYXRhRnVuY3Rpb24obWFyZ2luQ2hhcnRTZXJpZXMpXV0iCiAgICAgICAgcmVxdWVzdC1tYW5hZ2VyPSJbW3JlcXVlc3RNYW5hZ2VyXV0iCiAgICAgICAgc3ltYm9sLWZ1bmN0aW9uPSJbW19jcmVhdGVTeW1ib2xGdW5jdGlvbigpXV0iCiAgICAgICAgdG9vbHRpcC1jb2x1bW5zPSJbW190b29sdGlwQ29sdW1uc11dIgogICAgICAgIHRvb2x0aXAtc29ydGluZy1tZXRob2Q9IltbdG9vbHRpcFNvcnRpbmdNZXRob2RdXSIKICAgICAgICB4LXR5cGU9IltbeFR5cGVdXSIKICAgICAgPgogICAgICA8L3RmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXI+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9ImJ1dHRvbnMiPgogICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICBzZWxlY3RlZCQ9IltbX2V4cGFuZGVkXV0iCiAgICAgICAgaWNvbj0iZnVsbHNjcmVlbiIKICAgICAgICBvbi10YXA9Il90b2dnbGVFeHBhbmRlZCIKICAgICAgPjwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgIHNlbGVjdGVkJD0iW1tfbG9nU2NhbGVBY3RpdmVdXSIKICAgICAgICBpY29uPSJsaW5lLXdlaWdodCIKICAgICAgICBvbi10YXA9Il90b2dnbGVMb2dTY2FsZSIKICAgICAgICB0aXRsZT0iVG9nZ2xlIHktYXhpcyBsb2cgc2NhbGUiCiAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPgogICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICBpY29uPSJzZXR0aW5ncy1vdmVyc2NhbiIKICAgICAgICBvbi10YXA9Il9yZXNldERvbWFpbiIKICAgICAgICB0aXRsZT0iRml0IGRvbWFpbiB0byBkYXRhIgogICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgPHNwYW4gc3R5bGU9ImZsZXgtZ3JvdzogMSI+PC9zcGFuPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9Iltbc2hvd0Rvd25sb2FkTGlua3NdXSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZG93bmxvYWQtbGlua3MiPgogICAgICAgICAgPHBhcGVyLWRyb3Bkb3duLW1lbnUKICAgICAgICAgICAgbm8tbGFiZWwtZmxvYXQ9InRydWUiCiAgICAgICAgICAgIGxhYmVsPSJzZXJpZXMgdG8gZG93bmxvYWQiCiAgICAgICAgICAgIHNlbGVjdGVkLWl0ZW0tbGFiZWw9Int7X2RhdGFTZXJpZXNOYW1lVG9Eb3dubG9hZH19IgogICAgICAgICAgPgogICAgICAgICAgICA8cGFwZXItbGlzdGJveCBjbGFzcz0iZHJvcGRvd24tY29udGVudCIgc2xvdD0iZHJvcGRvd24tY29udGVudCI+CiAgICAgICAgICAgICAgPHRlbXBsYXRlCiAgICAgICAgICAgICAgICBpcz0iZG9tLXJlcGVhdCIKICAgICAgICAgICAgICAgIGl0ZW1zPSJbW19zZXJpZXNOYW1lc11dIgogICAgICAgICAgICAgICAgYXM9ImRhdGFTZXJpZXNOYW1lIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxwYXBlci1pdGVtIG5vLWxhYmVsLWZsb2F0PSJ0cnVlIgogICAgICAgICAgICAgICAgICA+W1tkYXRhU2VyaWVzTmFtZV1dPC9wYXBlci1pdGVtCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC9wYXBlci1saXN0Ym94PgogICAgICAgICAgPC9wYXBlci1kcm9wZG93bi1tZW51PgogICAgICAgICAgPGEKICAgICAgICAgICAgZG93bmxvYWQ9IltbX2RhdGFTZXJpZXNOYW1lVG9Eb3dubG9hZF1dLmNzdiIKICAgICAgICAgICAgaHJlZj0iW1tfY3N2VXJsKF9uYW1lVG9EYXRhU2VyaWVzLCBfZGF0YVNlcmllc05hbWVUb0Rvd25sb2FkKV1dIgogICAgICAgICAgICA+Q1NWPC9hCiAgICAgICAgICA+CiAgICAgICAgICA8YQogICAgICAgICAgICBkb3dubG9hZD0iW1tfZGF0YVNlcmllc05hbWVUb0Rvd25sb2FkXV0uanNvbiIKICAgICAgICAgICAgaHJlZj0iW1tfanNvblVybChfbmFtZVRvRGF0YVNlcmllcywgX2RhdGFTZXJpZXNOYW1lVG9Eb3dubG9hZCldXSIKICAgICAgICAgICAgPkpTT048L2EKICAgICAgICAgID4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvZGl2PgoKICAgIDwhLS0gaGVyZSAtLT4KICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfbWlzc2luZ1RhZ3MubGVuZ3RoXV0iPgogICAgICA8ZGl2IGNsYXNzPSJjb2xsYXBzaWJsZS1saXN0LXRpdGxlIj4KICAgICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICAgIGljb249IltbX2dldFRvZ2dsZUNvbGxhcHNpYmxlSWNvbihfbWlzc2luZ1RhZ3NDb2xsYXBzaWJsZU9wZW5lZCldXSIKICAgICAgICAgIG9uLWNsaWNrPSJfdG9nZ2xlTWlzc2luZ1RhZ3NDb2xsYXBzaWJsZU9wZW4iCiAgICAgICAgICBjbGFzcz0idG9nZ2xlLWNvbGxhcHNpYmxlLWJ1dHRvbiIKICAgICAgICA+CiAgICAgICAgPC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgICA8c3BhbiBjbGFzcz0iY29sbGFwc2libGUtdGl0bGUtdGV4dCI+CiAgICAgICAgICA8aXJvbi1pY29uIGljb249Imljb25zOmVycm9yIj48L2lyb24taWNvbj4gTWlzc2luZyBUYWdzCiAgICAgICAgPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGlyb24tY29sbGFwc2Ugb3BlbmVkPSJbW19taXNzaW5nVGFnc0NvbGxhcHNpYmxlT3BlbmVkXV0iPgogICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLWNvbnRlbnQiPgogICAgICAgICAgPGlyb24taWNvbiBjbGFzcz0iZXJyb3ItaWNvbiIgaWNvbj0iaWNvbnM6ZXJyb3IiPjwvaXJvbi1pY29uPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfbWlzc2luZ1RhZ3NdXSIgYXM9Im1pc3NpbmdFbnRyeSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1pc3NpbmctdGFncy1mb3ItcnVuLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgUnVuICJbW21pc3NpbmdFbnRyeS5ydW5dXSIgbGFja3MgZGF0YSBmb3IgdGFncwogICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZQogICAgICAgICAgICAgICAgICBpcz0iZG9tLXJlcGVhdCIKICAgICAgICAgICAgICAgICAgaXRlbXM9IltbbWlzc2luZ0VudHJ5LnRhZ3NdXSIKICAgICAgICAgICAgICAgICAgYXM9InRhZyIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPGxpPltbdGFnXV08L2xpPgogICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvaXJvbi1jb2xsYXBzZT4KICAgIDwvdGVtcGxhdGU+CgogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW190YWdGaWx0ZXJJbnZhbGlkXV0iPgogICAgICA8ZGl2IGNsYXNzPSJlcnJvci1jb250ZW50Ij4KICAgICAgICA8aXJvbi1pY29uIGNsYXNzPSJlcnJvci1pY29uIiBpY29uPSJpY29uczplcnJvciI+PC9pcm9uLWljb24+CiAgICAgICAgVGhpcyByZWd1bGFyIGV4cHJlc2lvbiBpcyBpbnZhbGlkOjxiciAvPgogICAgICAgIDxzcGFuIGNsYXNzPSJpbnZhbGlkLXJlZ2V4Ij5bW190YWdGaWx0ZXJdXTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICA8L3RlbXBsYXRlPgoKICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfc3RlcHNNaXNtYXRjaF1dIj4KICAgICAgPGRpdiBjbGFzcz0iZXJyb3ItY29udGVudCI+CiAgICAgICAgPGlyb24taWNvbiBjbGFzcz0iZXJyb3ItaWNvbiIgaWNvbj0iaWNvbnM6ZXJyb3IiPjwvaXJvbi1pY29uPgogICAgICAgIFRoZSBzdGVwcyBmb3IgdmFsdWUsIGxvd2VyLCBhbmQgdXBwZXIgdGFncyBkbyBub3QgbWF0Y2g6CiAgICAgICAgPHVsPgogICAgICAgICAgPGxpPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFnLW5hbWUiPltbX3N0ZXBzTWlzbWF0Y2guc2VyaWVzT2JqZWN0LnZhbHVlXV08L3NwYW4+OgogICAgICAgICAgICBbW19zZXBhcmF0ZVdpdGhDb21tYXMoX3N0ZXBzTWlzbWF0Y2gudmFsdWVTdGVwcyldXQogICAgICAgICAgPC9saT4KICAgICAgICAgIDxsaT4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhZy1uYW1lIj5bW19zdGVwc01pc21hdGNoLnNlcmllc09iamVjdC5sb3dlcl1dPC9zcGFuPjoKICAgICAgICAgICAgW1tfc2VwYXJhdGVXaXRoQ29tbWFzKF9zdGVwc01pc21hdGNoLmxvd2VyU3RlcHMpXV0KICAgICAgICAgIDwvbGk+CiAgICAgICAgICA8bGk+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWctbmFtZSI+W1tfc3RlcHNNaXNtYXRjaC5zZXJpZXNPYmplY3QudXBwZXJdXTwvc3Bhbj46CiAgICAgICAgICAgIFtbX3NlcGFyYXRlV2l0aENvbW1hcyhfc3RlcHNNaXNtYXRjaC51cHBlclN0ZXBzKV1dCiAgICAgICAgICA8L2xpPgogICAgICAgIDwvdWw+CiAgICAgIDwvZGl2PgogICAgPC90ZW1wbGF0ZT4KCiAgICA8ZGl2IGlkPSJtYXRjaGVzLWNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9ImNvbGxhcHNpYmxlLWxpc3QtdGl0bGUiPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfc2VyaWVzTmFtZXMubGVuZ3RoXV0iPgogICAgICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgICAgIGljb249IltbX2dldFRvZ2dsZUNvbGxhcHNpYmxlSWNvbihfbWF0Y2hlc0xpc3RPcGVuZWQpXV0iCiAgICAgICAgICAgIG9uLWNsaWNrPSJfdG9nZ2xlTWF0Y2hlc09wZW4iCiAgICAgICAgICAgIGNsYXNzPSJ0b2dnbGUtbWF0Y2hlcy1idXR0b24iCiAgICAgICAgICA+CiAgICAgICAgICA8L3BhcGVyLWljb24tYnV0dG9uPgogICAgICAgIDwvdGVtcGxhdGU+CgogICAgICAgIDxzcGFuIGNsYXNzPSJjb2xsYXBzaWJsZS10aXRsZS10ZXh0Ij4KICAgICAgICAgIE1hdGNoZXMgKFtbX3Nlcmllc05hbWVzLmxlbmd0aF1dKQogICAgICAgIDwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfc2VyaWVzTmFtZXMubGVuZ3RoXV0iPgogICAgICAgIDxpcm9uLWNvbGxhcHNlIG9wZW5lZD0iW1tfbWF0Y2hlc0xpc3RPcGVuZWRdXSI+CiAgICAgICAgICA8ZGl2IGlkPSJtYXRjaGVzLWxpc3QiPgogICAgICAgICAgICA8dGVtcGxhdGUKICAgICAgICAgICAgICBpcz0iZG9tLXJlcGVhdCIKICAgICAgICAgICAgICBpdGVtcz0iW1tfc2VyaWVzTmFtZXNdXSIKICAgICAgICAgICAgICBhcz0ic2VyaWVzTmFtZSIKICAgICAgICAgICAgICBpZD0ibWF0Y2gtbGlzdC1yZXBlYXQiCiAgICAgICAgICAgICAgb24tZG9tLWNoYW5nZT0iX21hdGNoTGlzdEVudHJ5Q29sb3JVcGRhdGVkIgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWF0Y2gtbGlzdC1lbnRyeSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWF0Y2gtZW50cnktc3ltYm9sIj4KICAgICAgICAgICAgICAgICAgW1tfZGV0ZXJtaW5lU3ltYm9sKF9uYW1lVG9EYXRhU2VyaWVzLCBzZXJpZXNOYW1lKV1dCiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICBbW3Nlcmllc05hbWVdXQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9pcm9uLWNvbGxhcHNlPgogICAgICA8L3RlbXBsYXRlPgogICAgPC9kaXY+CgogICAgPHN0eWxlIGluY2x1ZGU9InRmLWN1c3RvbS1zY2FsYXItY2FyZC1zdHlsZSI+PC9zdHlsZT4KICAgIDxzdHlsZT4KICAgICAgLmVycm9yLWNvbnRlbnQgewogICAgICAgIGJhY2tncm91bmQ6ICNmMDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIG1hcmdpbjogMTBweCAwIDAgMDsKICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICB9CgogICAgICAuZXJyb3ItaWNvbiB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZmlsbDogI2ZmZjsKICAgICAgICBtYXJnaW46IDAgYXV0byA1cHggYXV0bzsKICAgICAgfQoKICAgICAgLmludmFsaWQtcmVnZXggewogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICB9CgogICAgICAuZXJyb3ItY29udGVudCB1bCB7CiAgICAgICAgbWFyZ2luOiAxcHggMCAwIDA7CiAgICAgICAgcGFkZGluZzogMCAwIDAgMTlweDsKICAgICAgfQoKICAgICAgLnRhZy1uYW1lIHsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgfQoKICAgICAgLmNvbGxhcHNpYmxlLWxpc3QtdGl0bGUgewogICAgICAgIG1hcmdpbjogMTBweCAwIDVweCAwOwogICAgICB9CgogICAgICAuY29sbGFwc2libGUtdGl0bGUtdGV4dCB7CiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgICAgfQoKICAgICAgI21hdGNoZXMtbGlzdCB7CiAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgLm1hdGNoLWxpc3QtZW50cnkgewogICAgICAgIG1hcmdpbjogMCAwIDVweCAwOwogICAgICB9CgogICAgICAubWF0Y2gtZW50cnktc3ltYm9sIHsKICAgICAgICBmb250LWZhbWlseTogYXJpYWwsIHNhbnMtc2VyaWY7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICB9CgogICAgICAubWlzc2luZy10YWdzLWZvci1ydW4tY29udGFpbmVyIHsKICAgICAgICBtYXJnaW46IDhweCAwIDAgMDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSx3QXQucHJvdG90eXBlLCJydW5zIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHdBdC5wcm90b3R5cGUsInhUeXBlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sd0F0LnByb3RvdHlwZSwiYWN0aXZlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHdBdC5wcm90b3R5cGUsInRpdGxlIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSx3QXQucHJvdG90eXBlLCJtYXJnaW5DaGFydFNlcmllcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHdBdC5wcm90b3R5cGUsImlnbm9yZVlPdXRsaWVycyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixicildLHdBdC5wcm90b3R5cGUsInJlcXVlc3RNYW5hZ2VyIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sd0F0LnByb3RvdHlwZSwic2hvd0Rvd25sb2FkTGlua3MiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sd0F0LnByb3RvdHlwZSwidGFnTWV0YWRhdGEiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sd0F0LnByb3RvdHlwZSwidG9vbHRpcFNvcnRpbmdNZXRob2QiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sd0F0LnByb3RvdHlwZSwiX2NvbG9yU2NhbGUiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSx3QXQucHJvdG90eXBlLCJfdGFnRmlsdGVySW52YWxpZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSx3QXQucHJvdG90eXBlLCJfbmFtZVRvRGF0YVNlcmllcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4scmVmbGVjdFRvQXR0cmlidXRlOiEwfSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSx3QXQucHJvdG90eXBlLCJfZXhwYW5kZWQiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSx3QXQucHJvdG90eXBlLCJfbG9nU2NhbGVBY3RpdmUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSx3QXQucHJvdG90eXBlLCJfcmVxdWVzdERhdGEiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sd0F0LnByb3RvdHlwZSwiX3J1blRvTmV4dEF2YWlsYWJsZVN5bWJvbEluZGV4Iix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sd0F0LnByb3RvdHlwZSwiX21hdGNoZXNMaXN0T3BlbmVkIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHdBdC5wcm90b3R5cGUsIl9maWxsQXJlYSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sd0F0LnByb3RvdHlwZSwiX3Rvb2x0aXBDb2x1bW5zIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSx3QXQucHJvdG90eXBlLCJfbWlzc2luZ1RhZ3MiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSx3QXQucHJvdG90eXBlLCJfbWlzc2luZ1RhZ3NDb2xsYXBzaWJsZU9wZW5lZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSx3QXQucHJvdG90eXBlLCJfc3RlcHNNaXNtYXRjaCIsdm9pZCAwKSx0KFthKCJfbmFtZVRvRGF0YVNlcmllcyIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sd0F0LnByb3RvdHlwZSwiX3VwZGF0ZUNoYXJ0IixudWxsKSx0KFtzKCJfbmFtZVRvRGF0YVNlcmllcyIsInJ1bnMiKSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSx3QXQucHJvdG90eXBlLCJfc2VyaWVzTmFtZXMiLG51bGwpLHQoW2EoIl90YWdGaWx0ZXIiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLHdBdC5wcm90b3R5cGUsIl9yZWZyZXNoRGF0YVNlcmllcyIsbnVsbCksdChbcygibWFyZ2luQ2hhcnRTZXJpZXMiKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSx3QXQucHJvdG90eXBlLCJfdGFnRmlsdGVyIixudWxsKSx0KFtzKCJ0aXRsZSIpLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLHdBdC5wcm90b3R5cGUsIl90aXRsZURpc3BsYXlTdHJpbmciLG51bGwpLHdBdD10KFtpKCJ0Zi1jdXN0b20tc2NhbGFyLW1hcmdpbi1jaGFydC1jYXJkIildLHdBdCk7dmFyIFNBdD1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxUWVBFUzpbXSxnZXRSdW5zTmFtZWQ6ZnVuY3Rpb24gTUF0KHQpe3JldHVybiBDZS5leHBvcnRzLmtleXModCkuc29ydCh1cil9LGdldFRhZ3M6ZnIsZmlsdGVyVGFnczpmdW5jdGlvbiBFQXQodCxlKXtsZXQgbj1bXTtyZXR1cm4gZS5mb3JFYWNoKChlPT5uPW4uY29uY2F0KHRbZV0pKSksQ2UuZXhwb3J0cy51bmlxKG4pLnNvcnQodXIpfSxMaXN0ZW5LZXk6QWwsQmFzZVN0b3JlOmtsLENhbmNlbGxlcjp4TyxFbnZpcm9ubWVudFN0b3JlOkxsLGVudmlyb25tZW50U3RvcmU6UGwsRXhwZXJpbWVudHNTdG9yZTpkTyxleHBlcmltZW50c1N0b3JlOnBPLFJlcXVlc3RDYW5jZWxsYXRpb25FcnJvcjptcixJbnZhbGlkUmVxdWVzdE9wdGlvbnNFcnJvcjpncixSZXF1ZXN0TmV0d29ya0Vycm9yOl9yLGdldCBIdHRwTWV0aG9kVHlwZSgpe3JldHVybiB5cn0sUmVxdWVzdE9wdGlvbnM6dnIsUmVxdWVzdE1hbmFnZXI6YnIsY3JlYXRlUm91dGVyOk1yLGdldFJvdXRlcjpFcixzZXRSb3V0ZXI6ZnVuY3Rpb24gVEF0KHQpe2lmKG51bGw9PXQpdGhyb3cgbmV3IEVycm9yKCJSb3V0ZXIgcmVxdWlyZWQsIGJ1dCBnb3Q6ICIrdCk7U3I9dH0sY3JlYXRlU2VhcmNoUGFyYW06Q3IsUnVuc1N0b3JlOk5sLHJ1bnNTdG9yZTpJbCxhZGRQYXJhbXM6UE99KTtsZXQgQ0F0PWNsYXNzIGV4dGVuZHMoY3Iod2UpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5hY3RpdmU9ITAsdGhpcy5fY29sb3JTY2FsZT1uZXcgeEF0KHtzY2FsZTpfT30pLHRoaXMuX25hbWVUb0RhdGFTZXJpZXM9e30sdGhpcy5fZXhwYW5kZWQ9ITEsdGhpcy5fcmVxdWVzdERhdGE9KHQsZSxuKT0+e2NvbnN0IGk9RXIoKS5wbHVnaW5Sb3V0ZSgiY3VzdG9tX3NjYWxhcnMiLCIvc2NhbGFycyIpO1Byb21pc2UuYWxsKHQubWFwKCh0PT57Y29uc3Qgbj1QTyhpLHt0YWc6dGhpcy5fdGFnRmlsdGVyLHJ1bjp0fSk7cmV0dXJuIHRoaXMucmVxdWVzdE1hbmFnZXIucmVxdWVzdChuKS50aGVuKChuPT57ZSh7aXRlbTp0LGRhdGE6bn0pfSkpfSkpKS5maW5hbGx5KCgoKT0+e24oKX0pKX0sdGhpcy5fcnVuVG9OZXh0QXZhaWxhYmxlU3ltYm9sSW5kZXg9e30sdGhpcy5fbWF0Y2hlc0xpc3RPcGVuZWQ9ITF9cmVsb2FkKCl7dGhpcy4kLmxvYWRlci5yZWxvYWQoKX1yZWRyYXcoKXt0aGlzLiQubG9hZGVyLnJlZHJhdygpfV90b2dnbGVFeHBhbmRlZCh0KXt0aGlzLnNldCgiX2V4cGFuZGVkIiwhdGhpcy5fZXhwYW5kZWQpLHRoaXMucmVkcmF3KCl9X3RvZ2dsZUxvZ1NjYWxlKCl7dGhpcy5zZXQoIl9sb2dTY2FsZUFjdGl2ZSIsIXRoaXMuX2xvZ1NjYWxlQWN0aXZlKX1fcmVzZXREb21haW4oKXtjb25zdCB0PXRoaXMuJC5sb2FkZXI7dCYmdC5yZXNldERvbWFpbigpfV9jc3ZVcmwodCxlKXtpZighZSlyZXR1cm4iIjtyZXR1cm4gUE8odGhpcy5fZG93bmxvYWREYXRhVXJsKHQsZSkse2Zvcm1hdDoiY3N2In0pfV9qc29uVXJsKHQsZSl7aWYoIWUpcmV0dXJuIiI7cmV0dXJuIFBPKHRoaXMuX2Rvd25sb2FkRGF0YVVybCh0LGUpLHtmb3JtYXQ6Impzb24ifSl9X2Rvd25sb2FkRGF0YVVybCh0LGUpe2NvbnN0IG49dFtlXSxpPXt0YWc6bi5nZXRUYWcoKSxydW46bi5nZXRSdW4oKX07cmV0dXJuIFBPKEVyKCkucGx1Z2luUm91dGUoImN1c3RvbV9zY2FsYXJzIiwiL2Rvd25sb2FkX2RhdGEiKSxpKX1fY3JlYXRlUHJvY2Vzc0RhdGFGdW5jdGlvbigpe3JldHVybih0LGUsbik9PntpZihuLnJlZ2V4X3ZhbGlkKXtjb25zdCB0PUNlLmV4cG9ydHMuY2xvbmUodGhpcy5fbmFtZVRvRGF0YVNlcmllcyk7Q2UuZXhwb3J0cy5mb3JPd24obi50YWdfdG9fZXZlbnRzLCgobixpKT0+e2NvbnN0IHI9bi5tYXAoKHQ9Pih7d2FsbF90aW1lOm5ldyBEYXRlKDFlMyp0WzBdKSxzdGVwOnRbMV0sc2NhbGFyOnRbMl19KSkpLG89YkF0KGUsaSksYT10W29dO2lmKGEpYS5zZXREYXRhKHIpO2Vsc2V7Q2UuZXhwb3J0cy5pc1VuZGVmaW5lZCh0aGlzLl9ydW5Ub05leHRBdmFpbGFibGVTeW1ib2xJbmRleFtlXSkmJih0aGlzLl9ydW5Ub05leHRBdmFpbGFibGVTeW1ib2xJbmRleFtlXT0wKTtjb25zdCBuPW5ldyB2QXQoZSxpLG8scix4Q3RbdGhpcy5fcnVuVG9OZXh0QXZhaWxhYmxlU3ltYm9sSW5kZXhbZV1dKTt0W29dPW47dGhpcy5fcnVuVG9OZXh0QXZhaWxhYmxlU3ltYm9sSW5kZXhbZV09KHRoaXMuX3J1blRvTmV4dEF2YWlsYWJsZVN5bWJvbEluZGV4W2VdKzEpJXhDdC5sZW5ndGh9fSkpLHRoaXMuc2V0KCJfbmFtZVRvRGF0YVNlcmllcyIsdCl9fX1fdXBkYXRlQ2hhcnQoKXtPYmplY3QuZW50cmllcyh0aGlzLl9uYW1lVG9EYXRhU2VyaWVzKS5mb3JFYWNoKCgoW3QsZV0pPT57dGhpcy4kLmxvYWRlci5zZXRTZXJpZXNEYXRhKHQsZS5nZXREYXRhKCkpfSkpLHRoaXMuJC5sb2FkZXIuY29tbWl0Q2hhbmdlcygpfV9jb21wdXRlU2VsZWN0ZWRSdW5zU2V0KHQpe2NvbnN0IGU9e307cmV0dXJuIENlLmV4cG9ydHMuZm9yRWFjaCh0LCh0PT57ZVt0XT0xfSkpLGV9Z2V0IF9zZXJpZXNOYW1lcygpe2NvbnN0IHQ9bmV3IFNldCh0aGlzLnJ1bnMpO3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLl9uYW1lVG9EYXRhU2VyaWVzKS5maWx0ZXIoKChbZSxuXSk9PnQuaGFzKG4ucnVuKSkpLm1hcCgoKFt0XSk9PnQpKX1fZGV0ZXJtaW5lQ29sb3IodCxlKXtyZXR1cm4gdC5zY2FsZShlKX1fcmVmcmVzaERhdGFTZXJpZXMoKXt0aGlzLnNldCgiX25hbWVUb0RhdGFTZXJpZXMiLHt9KX1fY3JlYXRlU3ltYm9sRnVuY3Rpb24oKXtyZXR1cm4gdD0+dGhpcy5fbmFtZVRvRGF0YVNlcmllc1t0XS5nZXRTeW1ib2woKS5tZXRob2QoKX1fZGV0ZXJtaW5lU3ltYm9sKHQsZSl7cmV0dXJuIHRbZV0uZ2V0U3ltYm9sKCkuY2hhcmFjdGVyfWdldCBfdGFnRmlsdGVyKCl7dmFyIHQ9dGhpcy50YWdSZWdleGVzO3JldHVybiAxPT09dC5sZW5ndGg/dFswXTp0Lm1hcCgodD0+IigiK3QrIikiKSkuam9pbigifCIpfV9nZXRUb2dnbGVNYXRjaGVzSWNvbih0KXtyZXR1cm4gdD8iZXhwYW5kLWxlc3MiOiJleHBhbmQtbW9yZSJ9X3RvZ2dsZU1hdGNoZXNPcGVuKCl7dGhpcy5zZXQoIl9tYXRjaGVzTGlzdE9wZW5lZCIsIXRoaXMuX21hdGNoZXNMaXN0T3BlbmVkKX1nZXQgX3RpdGxlRGlzcGxheVN0cmluZygpe3JldHVybiB0aGlzLnRpdGxlfHwidW50aXRsZWQifV9tYXRjaExpc3RFbnRyeUNvbG9yVXBkYXRlZCh0KXtjb25zdCBlPXRoaXMuJCQoIiNtYXRjaC1saXN0LXJlcGVhdCIpO2UmJnRoaXMucm9vdC5xdWVyeVNlbGVjdG9yQWxsKCIubWF0Y2gtbGlzdC1lbnRyeSIpLmZvckVhY2goKHQ9Pntjb25zdCBuPWUuaXRlbUZvckVsZW1lbnQodCk7dC5zdHlsZS5jb2xvcj10aGlzLl9kZXRlcm1pbmVDb2xvcih0aGlzLl9jb2xvclNjYWxlLG4pfSkpfX07Q0F0LnRlbXBsYXRlPXhlYAogICAgPHRmLWNhcmQtaGVhZGluZyBkaXNwbGF5LW5hbWU9IltbX3RpdGxlRGlzcGxheVN0cmluZ11dIj48L3RmLWNhcmQtaGVhZGluZz4KICAgIDxkaXYgaWQ9InRmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXItY29udGFpbmVyIj4KICAgICAgPHRmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXIKICAgICAgICBpZD0ibG9hZGVyIgogICAgICAgIGFjdGl2ZT0iW1thY3RpdmVdXSIKICAgICAgICBjb2xvci1zY2FsZT0iW1tfY29sb3JTY2FsZV1dIgogICAgICAgIGRhdGEtc2VyaWVzPSJbW19zZXJpZXNOYW1lc11dIgogICAgICAgIGlnbm9yZS15LW91dGxpZXJzPSJbW2lnbm9yZVlPdXRsaWVyc11dIgogICAgICAgIGxvYWQta2V5PSJbW190YWdGaWx0ZXJdXSIKICAgICAgICBkYXRhLXRvLWxvYWQ9IltbcnVuc11dIgogICAgICAgIHJlcXVlc3QtZGF0YT0iW1tfcmVxdWVzdERhdGFdXSIKICAgICAgICBsb2ctc2NhbGUtYWN0aXZlPSJbW19sb2dTY2FsZUFjdGl2ZV1dIgogICAgICAgIGxvYWQtZGF0YS1jYWxsYmFjaz0iW1tfY3JlYXRlUHJvY2Vzc0RhdGFGdW5jdGlvbigpXV0iCiAgICAgICAgcmVxdWVzdC1tYW5hZ2VyPSJbW3JlcXVlc3RNYW5hZ2VyXV0iCiAgICAgICAgc21vb3RoaW5nLWVuYWJsZWQ9Iltbc21vb3RoaW5nRW5hYmxlZF1dIgogICAgICAgIHNtb290aGluZy13ZWlnaHQ9Iltbc21vb3RoaW5nV2VpZ2h0XV0iCiAgICAgICAgc3ltYm9sLWZ1bmN0aW9uPSJbW19jcmVhdGVTeW1ib2xGdW5jdGlvbigpXV0iCiAgICAgICAgdG9vbHRpcC1zb3J0aW5nLW1ldGhvZD0iW1t0b29sdGlwU29ydGluZ01ldGhvZF1dIgogICAgICAgIHgtdHlwZT0iW1t4VHlwZV1dIgogICAgICA+CiAgICAgIDwvdGYtbGluZS1jaGFydC1kYXRhLWxvYWRlcj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0iYnV0dG9ucyI+CiAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgIHNlbGVjdGVkJD0iW1tfZXhwYW5kZWRdXSIKICAgICAgICBpY29uPSJmdWxsc2NyZWVuIgogICAgICAgIG9uLXRhcD0iX3RvZ2dsZUV4cGFuZGVkIgogICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgc2VsZWN0ZWQkPSJbW19sb2dTY2FsZUFjdGl2ZV1dIgogICAgICAgIGljb249ImxpbmUtd2VpZ2h0IgogICAgICAgIG9uLXRhcD0iX3RvZ2dsZUxvZ1NjYWxlIgogICAgICAgIHRpdGxlPSJUb2dnbGUgeS1heGlzIGxvZyBzY2FsZSIKICAgICAgPjwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgIGljb249InNldHRpbmdzLW92ZXJzY2FuIgogICAgICAgIG9uLXRhcD0iX3Jlc2V0RG9tYWluIgogICAgICAgIHRpdGxlPSJGaXQgZG9tYWluIHRvIGRhdGEiCiAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPgogICAgICA8c3BhbiBzdHlsZT0iZmxleC1ncm93OiAxIj48L3NwYW4+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tzaG93RG93bmxvYWRMaW5rc11dIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkb3dubG9hZC1saW5rcyI+CiAgICAgICAgICA8cGFwZXItZHJvcGRvd24tbWVudQogICAgICAgICAgICBuby1sYWJlbC1mbG9hdD0idHJ1ZSIKICAgICAgICAgICAgbGFiZWw9InNlcmllcyB0byBkb3dubG9hZCIKICAgICAgICAgICAgc2VsZWN0ZWQtaXRlbS1sYWJlbD0ie3tfZGF0YVNlcmllc05hbWVUb0Rvd25sb2FkfX0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxwYXBlci1saXN0Ym94IGNsYXNzPSJkcm9wZG93bi1jb250ZW50IiBzbG90PSJkcm9wZG93bi1jb250ZW50Ij4KICAgICAgICAgICAgICA8dGVtcGxhdGUKICAgICAgICAgICAgICAgIGlzPSJkb20tcmVwZWF0IgogICAgICAgICAgICAgICAgaXRlbXM9IltbX3Nlcmllc05hbWVzXV0iCiAgICAgICAgICAgICAgICBhcz0iZGF0YVNlcmllc05hbWUiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPHBhcGVyLWl0ZW0gbm8tbGFiZWwtZmxvYXQ9InRydWUiCiAgICAgICAgICAgICAgICAgID5bW2RhdGFTZXJpZXNOYW1lXV08L3BhcGVyLWl0ZW0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L3BhcGVyLWxpc3Rib3g+CiAgICAgICAgICA8L3BhcGVyLWRyb3Bkb3duLW1lbnU+CiAgICAgICAgICA8YQogICAgICAgICAgICBkb3dubG9hZD0iW1tfZGF0YVNlcmllc05hbWVUb0Rvd25sb2FkXV0uY3N2IgogICAgICAgICAgICBocmVmPSJbW19jc3ZVcmwoX25hbWVUb0RhdGFTZXJpZXMsIF9kYXRhU2VyaWVzTmFtZVRvRG93bmxvYWQpXV0iCiAgICAgICAgICAgID5DU1Y8L2EKICAgICAgICAgID4KICAgICAgICAgIDxhCiAgICAgICAgICAgIGRvd25sb2FkPSJbW19kYXRhU2VyaWVzTmFtZVRvRG93bmxvYWRdXS5qc29uIgogICAgICAgICAgICBocmVmPSJbW19qc29uVXJsKF9uYW1lVG9EYXRhU2VyaWVzLCBfZGF0YVNlcmllc05hbWVUb0Rvd25sb2FkKV1dIgogICAgICAgICAgICA+SlNPTjwvYQogICAgICAgICAgPgogICAgICAgIDwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJtYXRjaGVzLWNvbnRhaW5lciI+CiAgICAgIDxkaXYgaWQ9Im1hdGNoZXMtbGlzdC10aXRsZSI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19zZXJpZXNOYW1lcy5sZW5ndGhdXSI+CiAgICAgICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICAgICAgaWNvbj0iW1tfZ2V0VG9nZ2xlTWF0Y2hlc0ljb24oX21hdGNoZXNMaXN0T3BlbmVkKV1dIgogICAgICAgICAgICBvbi1jbGljaz0iX3RvZ2dsZU1hdGNoZXNPcGVuIgogICAgICAgICAgICBjbGFzcz0idG9nZ2xlLW1hdGNoZXMtYnV0dG9uIgogICAgICAgICAgPgogICAgICAgICAgPC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgICA8L3RlbXBsYXRlPgoKICAgICAgICA8c3BhbiBjbGFzcz0ibWF0Y2hlcy10ZXh0Ij4gTWF0Y2hlcyAoW1tfc2VyaWVzTmFtZXMubGVuZ3RoXV0pIDwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfc2VyaWVzTmFtZXMubGVuZ3RoXV0iPgogICAgICAgIDxpcm9uLWNvbGxhcHNlIG9wZW5lZD0iW1tfbWF0Y2hlc0xpc3RPcGVuZWRdXSI+CiAgICAgICAgICA8ZGl2IGlkPSJtYXRjaGVzLWxpc3QiPgogICAgICAgICAgICA8dGVtcGxhdGUKICAgICAgICAgICAgICBpcz0iZG9tLXJlcGVhdCIKICAgICAgICAgICAgICBpdGVtcz0iW1tfc2VyaWVzTmFtZXNdXSIKICAgICAgICAgICAgICBhcz0ic2VyaWVzTmFtZSIKICAgICAgICAgICAgICBpZD0ibWF0Y2gtbGlzdC1yZXBlYXQiCiAgICAgICAgICAgICAgb24tZG9tLWNoYW5nZT0iX21hdGNoTGlzdEVudHJ5Q29sb3JVcGRhdGVkIgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWF0Y2gtbGlzdC1lbnRyeSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWF0Y2gtZW50cnktc3ltYm9sIj4KICAgICAgICAgICAgICAgICAgW1tfZGV0ZXJtaW5lU3ltYm9sKF9uYW1lVG9EYXRhU2VyaWVzLCBzZXJpZXNOYW1lKV1dCiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICBbW3Nlcmllc05hbWVdXQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9pcm9uLWNvbGxhcHNlPgogICAgICA8L3RlbXBsYXRlPgogICAgPC9kaXY+CgogICAgPHN0eWxlIGluY2x1ZGU9InRmLWN1c3RvbS1zY2FsYXItY2FyZC1zdHlsZSI+PC9zdHlsZT4KICAgIDxzdHlsZT4KICAgICAgI21hdGNoZXMtbGlzdC10aXRsZSB7CiAgICAgICAgbWFyZ2luOiAxMHB4IDAgNXB4IDA7CiAgICAgIH0KCiAgICAgICNtYXRjaGVzLWxpc3QgewogICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KCiAgICAgIC5tYXRjaC1saXN0LWVudHJ5IHsKICAgICAgICBtYXJnaW46IDAgMCA1cHggMDsKICAgICAgfQoKICAgICAgLm1hdGNoLWVudHJ5LXN5bWJvbCB7CiAgICAgICAgZm9udC1mYW1pbHk6IGFyaWFsLCBzYW5zLXNlcmlmOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB3aWR0aDogMTBweDsKICAgICAgfQoKICAgICAgLm1hdGNoZXMtdGV4dCB7CiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxDQXQucHJvdG90eXBlLCJydW5zIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLENBdC5wcm90b3R5cGUsInhUeXBlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sQ0F0LnByb3RvdHlwZSwiYWN0aXZlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLENBdC5wcm90b3R5cGUsInRpdGxlIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxDQXQucHJvdG90eXBlLCJ0YWdSZWdleGVzIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sQ0F0LnByb3RvdHlwZSwiaWdub3JlWU91dGxpZXJzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLGJyKV0sQ0F0LnByb3RvdHlwZSwicmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxDQXQucHJvdG90eXBlLCJzaG93RG93bmxvYWRMaW5rcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLENBdC5wcm90b3R5cGUsInNtb290aGluZ0VuYWJsZWQiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sQ0F0LnByb3RvdHlwZSwic21vb3RoaW5nV2VpZ2h0Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLENBdC5wcm90b3R5cGUsInRhZ01ldGFkYXRhIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLENBdC5wcm90b3R5cGUsInRvb2x0aXBTb3J0aW5nTWV0aG9kIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLHhBdCldLENBdC5wcm90b3R5cGUsIl9jb2xvclNjYWxlIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLENBdC5wcm90b3R5cGUsIl9uYW1lVG9EYXRhU2VyaWVzIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLENBdC5wcm90b3R5cGUsIl9leHBhbmRlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLENBdC5wcm90b3R5cGUsIl9sb2dTY2FsZUFjdGl2ZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLENBdC5wcm90b3R5cGUsIl9yZXF1ZXN0RGF0YSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxDQXQucHJvdG90eXBlLCJfcnVuVG9OZXh0QXZhaWxhYmxlU3ltYm9sSW5kZXgiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxDQXQucHJvdG90eXBlLCJfbWF0Y2hlc0xpc3RPcGVuZWQiLHZvaWQgMCksdChbYSgiX25hbWVUb0RhdGFTZXJpZXMiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLENBdC5wcm90b3R5cGUsIl91cGRhdGVDaGFydCIsbnVsbCksdChbcygiX25hbWVUb0RhdGFTZXJpZXMiLCJydW5zIiksZSgiZGVzaWduOnR5cGUiLE9iamVjdCksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sQ0F0LnByb3RvdHlwZSwiX3Nlcmllc05hbWVzIixudWxsKSx0KFthKCJfdGFnRmlsdGVyIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxDQXQucHJvdG90eXBlLCJfcmVmcmVzaERhdGFTZXJpZXMiLG51bGwpLHQoW3MoInRhZ1JlZ2V4ZXMiKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxDQXQucHJvdG90eXBlLCJfdGFnRmlsdGVyIixudWxsKSx0KFtzKCJ0aXRsZSIpLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLENBdC5wcm90b3R5cGUsIl90aXRsZURpc3BsYXlTdHJpbmciLG51bGwpLENBdD10KFtpKCJ0Zi1jdXN0b20tc2NhbGFyLW11bHRpLWxpbmUtY2hhcnQtY2FyZCIpXSxDQXQpO2xldCBBQXQ9Y2xhc3MgZXh0ZW5kcyB3ZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fcmVxdWVzdE1hbmFnZXI9bmV3IGJyKDUwKSx0aGlzLl9jYW5jZWxsZXI9bmV3IHhPLHRoaXMuX3Nob3dEb3dubG9hZExpbmtzPVFzKCJfc2hvd0Rvd25sb2FkTGlua3MiLHtkZWZhdWx0VmFsdWU6ITEsdXNlTG9jYWxTdG9yYWdlOiEwfSkuY2FsbCh0aGlzKSx0aGlzLl9zbW9vdGhpbmdXZWlnaHQ9cmwoIl9zbW9vdGhpbmdXZWlnaHQiLHtkZWZhdWx0VmFsdWU6LjZ9KS5jYWxsKHRoaXMpLHRoaXMuX2lnbm9yZVlPdXRsaWVycz1RcygiX2lnbm9yZVlPdXRsaWVycyIse2RlZmF1bHRWYWx1ZTohMCx1c2VMb2NhbFN0b3JhZ2U6ITB9KS5jYWxsKHRoaXMpLHRoaXMuX3hUeXBlPSJzdGVwIix0aGlzLl9hY3RpdmU9ITAsdGhpcy5yZWxvYWRPblJlYWR5PSEwLHRoaXMuX3Nob3dEb3dubG9hZExpbmtzT2JzZXJ2ZXI9dGwoIl9zaG93RG93bmxvYWRMaW5rcyIse2RlZmF1bHRWYWx1ZTohMSx1c2VMb2NhbFN0b3JhZ2U6ITB9KSx0aGlzLl9zbW9vdGhpbmdXZWlnaHRPYnNlcnZlcj1vbCgiX3Ntb290aGluZ1dlaWdodCIse2RlZmF1bHRWYWx1ZTouNn0pLHRoaXMuX2lnbm9yZVlPdXRsaWVyc09ic2VydmVyPXRsKCJfaWdub3JlWU91dGxpZXJzIix7ZGVmYXVsdFZhbHVlOiEwLHVzZUxvY2FsU3RvcmFnZTohMH0pfXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLnJlbG9hZE9uUmVhZHkmJnRoaXMucmVsb2FkKCl9cmVsb2FkKCl7Y29uc3QgdD1FcigpLnBsdWdpbnNMaXN0aW5nKCksZT10aGlzLl9jYW5jZWxsZXIuY2FuY2VsbGFibGUoKHQ9Pnt0LmNhbmNlbGxlZHx8KHRoaXMuc2V0KCJfZGF0YU5vdEZvdW5kIiwhdC52YWx1ZS5jdXN0b21fc2NhbGFycyksdGhpcy5fZGF0YU5vdEZvdW5kfHx0aGlzLl9yZXRyaWV2ZUxheW91dEFuZERhdGEoKSl9KSk7dGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKGUpfV9yZWxvYWRDaGFydHMoKXt0aGlzLnJvb3QucXVlcnlTZWxlY3RvckFsbCgidGYtY3VzdG9tLXNjYWxhci1tYXJnaW4tY2hhcnQtY2FyZCwgdGYtY3VzdG9tLXNjYWxhci1tdWx0aS1saW5lLWNoYXJ0LWNhcmQiKS5mb3JFYWNoKCh0PT57dC5yZWxvYWQoKX0pKX1fcmV0cmlldmVMYXlvdXRBbmREYXRhKCl7Y29uc3QgdD1FcigpLnBsdWdpblJvdXRlKCJjdXN0b21fc2NhbGFycyIsIi9sYXlvdXQiKSxlPXRoaXMuX2NhbmNlbGxlci5jYW5jZWxsYWJsZSgodD0+e3QuY2FuY2VsbGVkfHwodGhpcy5zZXQoIl9sYXlvdXQiLHQudmFsdWUpLHRoaXMuX2RhdGFOb3RGb3VuZHx8dGhpcy5fcmVsb2FkQ2hhcnRzKCkpfSkpO3RoaXMuX3JlcXVlc3RNYW5hZ2VyLnJlcXVlc3QodCkudGhlbihlKX1nZXQgX3Ntb290aGluZ0VuYWJsZWQoKXtyZXR1cm4gdGhpcy5fc21vb3RoaW5nV2VpZ2h0PjB9Z2V0IF9jYXRlZ29yaWVzKCl7dmFyIHQ9dGhpcy5fbGF5b3V0O2lmKCF0LmNhdGVnb3J5KXJldHVybltdO2xldCBlPSExO3RoaXMuX29wZW5lZENhdGVnb3JpZXN8fChlPSEwLHRoaXMuX29wZW5lZENhdGVnb3JpZXM9e30pO3JldHVybiB0LmNhdGVnb3J5Lm1hcCgodD0+KGUmJiF0LmNsb3NlZCYmKHRoaXMuX29wZW5lZENhdGVnb3JpZXNbdC50aXRsZV09ITApLHtuYW1lOnQudGl0bGUsaXRlbXM6dC5jaGFydCxtZXRhZGF0YTp7dHlwZTpBci5QUkVGSVhfR1JPVVAsb3BlbmVkOiEhdGhpcy5fb3BlbmVkQ2F0ZWdvcmllc1t0LnRpdGxlXX19KSkpfV9jYXRlZ29yeU9wZW5lZFRvZ2dsZWQodCl7Y29uc3QgZT10LnRhcmdldDtlLm9wZW5lZD90aGlzLl9vcGVuZWRDYXRlZ29yaWVzW2UuY2F0ZWdvcnkubmFtZV09ITA6ZGVsZXRlIHRoaXMuX29wZW5lZENhdGVnb3JpZXNbZS5jYXRlZ29yeS5uYW1lXX19O0FBdC50ZW1wbGF0ZT14ZWAKICAgIDx0Zi1kYXNoYm9hcmQtbGF5b3V0PgogICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyIiBzbG90PSJzaWRlYmFyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lLWl0ZW0iPgogICAgICAgICAgICAgIDxwYXBlci1jaGVja2JveCBjaGVja2VkPSJ7e19zaG93RG93bmxvYWRMaW5rc319IgogICAgICAgICAgICAgICAgPlNob3cgZGF0YSBkb3dubG9hZCBsaW5rczwvcGFwZXItY2hlY2tib3gKICAgICAgICAgICAgICA+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lLWl0ZW0iPgogICAgICAgICAgICAgIDxwYXBlci1jaGVja2JveCBjaGVja2VkPSJ7e19pZ25vcmVZT3V0bGllcnN9fSIKICAgICAgICAgICAgICAgID5JZ25vcmUgb3V0bGllcnMgaW4gY2hhcnQgc2NhbGluZzwvcGFwZXItY2hlY2tib3gKICAgICAgICAgICAgICA+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGlkPSJ0b29sdGlwLXNvcnRpbmciPgogICAgICAgICAgICAgIDxkaXYgaWQ9InRvb2x0aXAtc29ydGluZy1sYWJlbCI+VG9vbHRpcCBzb3J0aW5nIG1ldGhvZDo8L2Rpdj4KICAgICAgICAgICAgICA8cGFwZXItZHJvcGRvd24tbWVudQogICAgICAgICAgICAgICAgbm8tbGFiZWwtZmxvYXQ9IiIKICAgICAgICAgICAgICAgIHNlbGVjdGVkLWl0ZW0tbGFiZWw9Int7X3Rvb2x0aXBTb3J0aW5nTWV0aG9kfX0iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPHBhcGVyLWxpc3Rib3gKICAgICAgICAgICAgICAgICAgY2xhc3M9ImRyb3Bkb3duLWNvbnRlbnQiCiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkPSIwIgogICAgICAgICAgICAgICAgICBzbG90PSJkcm9wZG93bi1jb250ZW50IgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8cGFwZXItaXRlbT5kZWZhdWx0PC9wYXBlci1pdGVtPgogICAgICAgICAgICAgICAgICA8cGFwZXItaXRlbT5kZXNjZW5kaW5nPC9wYXBlci1pdGVtPgogICAgICAgICAgICAgICAgICA8cGFwZXItaXRlbT5hc2NlbmRpbmc8L3BhcGVyLWl0ZW0+CiAgICAgICAgICAgICAgICAgIDxwYXBlci1pdGVtPm5lYXJlc3Q8L3BhcGVyLWl0ZW0+CiAgICAgICAgICAgICAgICA8L3BhcGVyLWxpc3Rib3g+CiAgICAgICAgICAgICAgPC9wYXBlci1kcm9wZG93bi1tZW51PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIj4KICAgICAgICAgICAgPHRmLXNtb290aGluZy1pbnB1dAogICAgICAgICAgICAgIHdlaWdodD0ie3tfc21vb3RoaW5nV2VpZ2h0fX0iCiAgICAgICAgICAgICAgc3RlcD0iMC4wMDEiCiAgICAgICAgICAgICAgbWluPSIwIgogICAgICAgICAgICAgIG1heD0iMSIKICAgICAgICAgICAgPjwvdGYtc21vb3RoaW5nLWlucHV0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgICA8dGYtb3B0aW9uLXNlbGVjdG9yCiAgICAgICAgICAgICAgaWQ9IngtdHlwZS1zZWxlY3RvciIKICAgICAgICAgICAgICBuYW1lPSJIb3Jpem9udGFsIEF4aXMiCiAgICAgICAgICAgICAgc2VsZWN0ZWQtaWQ9Int7X3hUeXBlfX0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uIGlkPSJzdGVwIj5zdGVwPC9wYXBlci1idXR0b24KICAgICAgICAgICAgICA+PCEtLQogICAgICAgICAgICAtLT48cGFwZXItYnV0dG9uIGlkPSJyZWxhdGl2ZSI+cmVsYXRpdmU8L3BhcGVyLWJ1dHRvbgogICAgICAgICAgICAgID48IS0tCiAgICAgICAgICAgIC0tPjxwYXBlci1idXR0b24gaWQ9IndhbGxfdGltZSI+d2FsbDwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICA8L3RmLW9wdGlvbi1zZWxlY3Rvcj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiBydW5zLXNlbGVjdG9yIj4KICAgICAgICAgIDx0Zi1ydW5zLXNlbGVjdG9yIHNlbGVjdGVkLXJ1bnM9Int7X3NlbGVjdGVkUnVuc319Ij4KICAgICAgICAgIDwvdGYtcnVucy1zZWxlY3Rvcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNlbnRlciIgc2xvdD0iY2VudGVyIiBpZD0iY2F0ZWdvcmllcy1jb250YWluZXIiPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfZGF0YU5vdEZvdW5kXV0iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibm8tZGF0YS13YXJuaW5nIj4KICAgICAgICAgICAgPGgzPlRoZSBjdXN0b20gc2NhbGFycyBkYXNoYm9hcmQgaXMgaW5hY3RpdmUuPC9oMz4KICAgICAgICAgICAgPHA+UHJvYmFibGUgY2F1c2VzOjwvcD4KICAgICAgICAgICAgPG9sPgogICAgICAgICAgICAgIDxsaT5Zb3UgaGF2ZW4ndCBsYWlkIG91dCB0aGUgZGFzaGJvYXJkLjwvbGk+CiAgICAgICAgICAgICAgPGxpPllvdSBoYXZlbuKAmXQgd3JpdHRlbiBhbnkgc2NhbGFyIGRhdGEgdG8geW91ciBldmVudCBmaWxlcy48L2xpPgogICAgICAgICAgICA8L29sPgoKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgVG8gbGF5IG91dCB0aGUgZGFzaGJvYXJkLCBwYXNzIGEgPGNvZGU+TGF5b3V0PC9jb2RlPiBwcm90b2J1ZmZlcgogICAgICAgICAgICAgIHRvIHRoZSA8Y29kZT5zZXRfbGF5b3V0PC9jb2RlPiBtZXRob2QuIEZvciBleGFtcGxlLAogICAgICAgICAgICA8L3A+CiAgICAgICAgICAgIDxwcmU+CmZyb20gdGVuc29yYm9hcmQgaW1wb3J0IHN1bW1hcnkKZnJvbSB0ZW5zb3Jib2FyZC5wbHVnaW5zLmN1c3RvbV9zY2FsYXIgaW1wb3J0IGxheW91dF9wYjIKLi4uCiMgVGhpcyBhY3Rpb24gZG9lcyBub3QgaGF2ZSB0byBiZSBwZXJmb3JtZWQgYXQgZXZlcnkgc3RlcCwgc28gdGhlIGFjdGlvbiBpcyBub3QKIyB0YWtlbiBjYXJlIG9mIGJ5IGFuIG9wIGluIHRoZSBncmFwaC4gV2Ugb25seSBuZWVkIHRvIHNwZWNpZnkgdGhlIGxheW91dCBvbmNlCiMgKGluc3RlYWQgb2YgcGVyIHN0ZXApLgpsYXlvdXRfc3VtbWFyeSA9IHN1bW1hcnlfbGliLmN1c3RvbV9zY2FsYXJfcGIobGF5b3V0X3BiMi5MYXlvdXQoCiAgY2F0ZWdvcnk9WwogICAgbGF5b3V0X3BiMi5DYXRlZ29yeSgKICAgICAgdGl0bGU9J2xvc3NlcycsCiAgICAgIGNoYXJ0PVsKICAgICAgICAgIGxheW91dF9wYjIuQ2hhcnQoCiAgICAgICAgICAgICAgdGl0bGU9J2xvc3NlcycsCiAgICAgICAgICAgICAgbXVsdGlsaW5lPWxheW91dF9wYjIuTXVsdGlsaW5lQ2hhcnRDb250ZW50KAogICAgICAgICAgICAgICAgdGFnPVtyJ2xvc3MuKiddLAogICAgICAgICAgICAgICkpLAogICAgICAgICAgbGF5b3V0X3BiMi5DaGFydCgKICAgICAgICAgICAgICB0aXRsZT0nYmF6JywKICAgICAgICAgICAgICBtYXJnaW49bGF5b3V0X3BiMi5NYXJnaW5DaGFydENvbnRlbnQoCiAgICAgICAgICAgICAgICBzZXJpZXM9WwogICAgICAgICAgICAgICAgICBsYXlvdXRfcGIyLk1hcmdpbkNoYXJ0Q29udGVudC5TZXJpZXMoCiAgICAgICAgICAgICAgICAgICAgdmFsdWU9J2xvc3MvYmF6L3NjYWxhcl9zdW1tYXJ5JywKICAgICAgICAgICAgICAgICAgICBsb3dlcj0nYmF6X2xvd2VyL2Jhei9zY2FsYXJfc3VtbWFyeScsCiAgICAgICAgICAgICAgICAgICAgdXBwZXI9J2Jhel91cHBlci9iYXovc2NhbGFyX3N1bW1hcnknKSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgKSksCiAgICAgIF0pLAogICAgbGF5b3V0X3BiMi5DYXRlZ29yeSgKICAgICAgdGl0bGU9J3RyaWcgZnVuY3Rpb25zJywKICAgICAgY2hhcnQ9WwogICAgICAgICAgbGF5b3V0X3BiMi5DaGFydCgKICAgICAgICAgICAgICB0aXRsZT0nd2F2ZSB0cmlnIGZ1bmN0aW9ucycsCiAgICAgICAgICAgICAgbXVsdGlsaW5lPWxheW91dF9wYjIuTXVsdGlsaW5lQ2hhcnRDb250ZW50KAogICAgICAgICAgICAgICAgdGFnPVtyJ3RyaWdGdW5jdGlvbnMvY29zaW5lJywgcid0cmlnRnVuY3Rpb25zL3NpbmUnXSwKICAgICAgICAgICAgICApKSwKICAgICAgICAgICMgVGhlIHJhbmdlIG9mIHRhbmdlbnQgaXMgZGlmZmVyZW50LiBMZXQncyBnaXZlIGl0IGl0cyBvd24gY2hhcnQuCiAgICAgICAgICBsYXlvdXRfcGIyLkNoYXJ0KAogICAgICAgICAgICAgIHRpdGxlPSd0YW4nLAogICAgICAgICAgICAgIG11bHRpbGluZT1sYXlvdXRfcGIyLk11bHRpbGluZUNoYXJ0Q29udGVudCgKICAgICAgICAgICAgICAgIHRhZz1bcid0cmlnRnVuY3Rpb25zL3RhbmdlbnQnXSwKICAgICAgICAgICAgICApKSwKICAgICAgXSwKICAgICAgIyBUaGlzIGNhdGVnb3J5IHdlIGNhcmUgbGVzcyBhYm91dC4gTGV0J3MgbWFrZSBpdCBpbml0aWFsbHkgY2xvc2VkLgogICAgICBjbG9zZWQ9VHJ1ZSksCiAgXSkpCndyaXRlci5hZGRfc3VtbWFyeShsYXlvdXRfc3VtbWFyeSkKPC9wcmUKICAgICAgICAgICAgPgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3XigJlyZSBuZXcgdG8gdXNpbmcgVGVuc29yQm9hcmQsIGFuZCB3YW50IHRvIGZpbmQgb3V0IGhvdyB0bwogICAgICAgICAgICAgIGFkZCBkYXRhIGFuZCBzZXQgdXAgeW91ciBldmVudCBmaWxlcywgY2hlY2sgb3V0IHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQiCiAgICAgICAgICAgICAgICA+UkVBRE1FPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIGFuZCBwZXJoYXBzIHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3d3dy50ZW5zb3JmbG93Lm9yZy9nZXRfc3RhcnRlZC9zdW1tYXJpZXNfYW5kX3RlbnNvcmJvYXJkIgogICAgICAgICAgICAgICAgPlRlbnNvckJvYXJkIHR1dG9yaWFsPC9hCiAgICAgICAgICAgICAgPi4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIV9kYXRhTm90Rm91bmRdXSI+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19jYXRlZ29yaWVzXV0iIGFzPSJjYXRlZ29yeSI+CiAgICAgICAgICAgIDx0Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldwogICAgICAgICAgICAgIGFzPSJjaGFydCIKICAgICAgICAgICAgICBjYXRlZ29yeT0iW1tjYXRlZ29yeV1dIgogICAgICAgICAgICAgIGRpc2FibGUtcGFnaW5hdGlvbgogICAgICAgICAgICAgIGluaXRpYWwtb3BlbmVkPSJbW2NhdGVnb3J5Lm1ldGFkYXRhLm9wZW5lZF1dIgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHRlbXBsYXRlPgogICAgICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2NoYXJ0Lm11bHRpbGluZV1dIj4KICAgICAgICAgICAgICAgICAgPHRmLWN1c3RvbS1zY2FsYXItbXVsdGktbGluZS1jaGFydC1jYXJkCiAgICAgICAgICAgICAgICAgICAgYWN0aXZlPSJbW2FjdGl2ZV1dIgogICAgICAgICAgICAgICAgICAgIHJlcXVlc3QtbWFuYWdlcj0iW1tfcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgICAgICAgICAgICAgICBydW5zPSJbW19zZWxlY3RlZFJ1bnNdXSIKICAgICAgICAgICAgICAgICAgICB0aXRsZT0iW1tjaGFydC50aXRsZV1dIgogICAgICAgICAgICAgICAgICAgIHgtdHlwZT0iW1tfeFR5cGVdXSIKICAgICAgICAgICAgICAgICAgICBzbW9vdGhpbmctZW5hYmxlZD0iW1tfc21vb3RoaW5nRW5hYmxlZF1dIgogICAgICAgICAgICAgICAgICAgIHNtb290aGluZy13ZWlnaHQ9IltbX3Ntb290aGluZ1dlaWdodF1dIgogICAgICAgICAgICAgICAgICAgIHRvb2x0aXAtc29ydGluZy1tZXRob2Q9IltbdG9vbHRpcFNvcnRpbmdNZXRob2RdXSIKICAgICAgICAgICAgICAgICAgICBpZ25vcmUteS1vdXRsaWVycz0iW1tfaWdub3JlWU91dGxpZXJzXV0iCiAgICAgICAgICAgICAgICAgICAgc2hvdy1kb3dubG9hZC1saW5rcz0iW1tfc2hvd0Rvd25sb2FkTGlua3NdXSIKICAgICAgICAgICAgICAgICAgICB0YWctcmVnZXhlcz0iW1tjaGFydC5tdWx0aWxpbmUudGFnXV0iCiAgICAgICAgICAgICAgICAgID48L3RmLWN1c3RvbS1zY2FsYXItbXVsdGktbGluZS1jaGFydC1jYXJkPgogICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tjaGFydC5tYXJnaW5dXSI+CiAgICAgICAgICAgICAgICAgIDx0Zi1jdXN0b20tc2NhbGFyLW1hcmdpbi1jaGFydC1jYXJkCiAgICAgICAgICAgICAgICAgICAgYWN0aXZlPSJbW2FjdGl2ZV1dIgogICAgICAgICAgICAgICAgICAgIHJlcXVlc3QtbWFuYWdlcj0iW1tfcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgICAgICAgICAgICAgICBydW5zPSJbW19zZWxlY3RlZFJ1bnNdXSIKICAgICAgICAgICAgICAgICAgICB0aXRsZT0iW1tjaGFydC50aXRsZV1dIgogICAgICAgICAgICAgICAgICAgIHgtdHlwZT0iW1tfeFR5cGVdXSIKICAgICAgICAgICAgICAgICAgICB0b29sdGlwLXNvcnRpbmctbWV0aG9kPSJbW3Rvb2x0aXBTb3J0aW5nTWV0aG9kXV0iCiAgICAgICAgICAgICAgICAgICAgaWdub3JlLXktb3V0bGllcnM9IltbX2lnbm9yZVlPdXRsaWVyc11dIgogICAgICAgICAgICAgICAgICAgIHNob3ctZG93bmxvYWQtbGlua3M9IltbX3Nob3dEb3dubG9hZExpbmtzXV0iCiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWNoYXJ0LXNlcmllcz0iW1tjaGFydC5tYXJnaW4uc2VyaWVzXV0iCiAgICAgICAgICAgICAgICAgID48L3RmLWN1c3RvbS1zY2FsYXItbWFyZ2luLWNoYXJ0LWNhcmQ+CiAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvdGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXc+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDwvZGl2PgogICAgPC90Zi1kYXNoYm9hcmQtbGF5b3V0PgoKICAgIDxzdHlsZSBpbmNsdWRlPSJkYXNoYm9hcmQtc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgICN0b29sdGlwLXNvcnRpbmcgewogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTVweDsKICAgICAgfQogICAgICAjdG9vbHRpcC1zb3J0aW5nIHBhcGVyLWRyb3Bkb3duLW1lbnUgewogICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4OwogICAgICAgIC0tcGFwZXItaW5wdXQtY29udGFpbmVyLWZvY3VzLWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICB3aWR0aDogMTA1cHg7CiAgICAgIH0KICAgICAgLmxpbmUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZy10b3A6IDVweDsKICAgICAgfQogICAgICAubm8tZGF0YS13YXJuaW5nIHsKICAgICAgICBtYXgtd2lkdGg6IDU0MHB4OwogICAgICAgIG1hcmdpbjogODBweCBhdXRvIDAgYXV0bzsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLGJyKV0sQUF0LnByb3RvdHlwZSwiX3JlcXVlc3RNYW5hZ2VyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLHhPKV0sQUF0LnByb3RvdHlwZSwiX2NhbmNlbGxlciIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sQUF0LnByb3RvdHlwZSwiX3NlbGVjdGVkUnVucyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwLG9ic2VydmVyOiJfc2hvd0Rvd25sb2FkTGlua3NPYnNlcnZlciJ9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLEFBdC5wcm90b3R5cGUsIl9zaG93RG93bmxvYWRMaW5rcyIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcixub3RpZnk6ITAsb2JzZXJ2ZXI6Il9zbW9vdGhpbmdXZWlnaHRPYnNlcnZlciJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sQUF0LnByb3RvdHlwZSwiX3Ntb290aGluZ1dlaWdodCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sb2JzZXJ2ZXI6Il9pZ25vcmVZT3V0bGllcnNPYnNlcnZlciJ9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLEFBdC5wcm90b3R5cGUsIl9pZ25vcmVZT3V0bGllcnMiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sQUF0LnByb3RvdHlwZSwiX3hUeXBlIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEFBdC5wcm90b3R5cGUsIl9sYXlvdXQiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxBQXQucHJvdG90eXBlLCJfZGF0YU5vdEZvdW5kIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEFBdC5wcm90b3R5cGUsIl9vcGVuZWRDYXRlZ29yaWVzIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sQUF0LnByb3RvdHlwZSwiX2FjdGl2ZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLEFBdC5wcm90b3R5cGUsInJlbG9hZE9uUmVhZHkiLHZvaWQgMCksdChbcygiX3Ntb290aGluZ1dlaWdodCIpLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxBQXQucHJvdG90eXBlLCJfc21vb3RoaW5nRW5hYmxlZCIsbnVsbCksdChbcygiX2xheW91dCIpLGUoImRlc2lnbjp0eXBlIixBcnJheSksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sQUF0LnByb3RvdHlwZSwiX2NhdGVnb3JpZXMiLG51bGwpLEFBdD10KFtpKCJ0Zi1jdXN0b20tc2NhbGFyLWRhc2hib2FyZCIpXSxBQXQpO2NsYXNzIGtBdHtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMucnVuMmRhdGFzZXRzPXt9LHRoaXMuY29sb3JTY2FsZT1lLHRoaXMuYnVpbGRDaGFydCh0KX1nZXREYXRhc2V0KHQpe3JldHVybiB2b2lkIDA9PT10aGlzLnJ1bjJkYXRhc2V0c1t0XSYmKHRoaXMucnVuMmRhdGFzZXRzW3RdPW5ldyBOTy5EYXRhc2V0KFtdLHtydW46dH0pKSx0aGlzLnJ1bjJkYXRhc2V0c1t0XX1idWlsZENoYXJ0KHQpe3RoaXMub3V0ZXImJnRoaXMub3V0ZXIuZGVzdHJveSgpO2xldCBlPWtDdCh0KTt0aGlzLnhBY2Nlc3Nvcj1lLmFjY2Vzc29yLHRoaXMueFNjYWxlPWUuc2NhbGUsdGhpcy54QXhpcz1lLmF4aXMsdGhpcy54QXhpcy5tYXJnaW4oMCksdGhpcy54QXhpcy50aWNrTGFiZWxQYWRkaW5nKDMpLHRoaXMueVNjYWxlPW5ldyBOTy5TY2FsZXMuTGluZWFyLHRoaXMueUF4aXM9bmV3IE5PLkF4ZXMuTnVtZXJpYyh0aGlzLnlTY2FsZSwibGVmdCIpO2xldCBuPVNDdCgzKTt0aGlzLnlBeGlzLm1hcmdpbigwKS50aWNrTGFiZWxQYWRkaW5nKDUpLmZvcm1hdHRlcihuKSx0aGlzLnlBeGlzLnVzZXNUZXh0V2lkdGhBcHByb3hpbWF0aW9uKCEwKTtsZXQgaT10aGlzLmJ1aWxkUGxvdCh0aGlzLnhBY2Nlc3Nvcix0aGlzLnhTY2FsZSx0aGlzLnlTY2FsZSk7dGhpcy5ncmlkbGluZXM9bmV3IE5PLkNvbXBvbmVudHMuR3JpZGxpbmVzKHRoaXMueFNjYWxlLHRoaXMueVNjYWxlKSx0aGlzLmNlbnRlcj1uZXcgTk8uQ29tcG9uZW50cy5Hcm91cChbdGhpcy5ncmlkbGluZXMsaV0pLHRoaXMub3V0ZXI9bmV3IE5PLkNvbXBvbmVudHMuVGFibGUoW1t0aGlzLnlBeGlzLHRoaXMuY2VudGVyXSxbbnVsbCx0aGlzLnhBeGlzXV0pfWJ1aWxkUGxvdCh0LGUsbil7bGV0IGk9WzAsMjI4LDE1ODcsMzA4NSw1ZTMsNjkxNSw4NDEzLDk3NzIsMWU0XSxyPUNlLmV4cG9ydHMucmFuZ2UoaS5sZW5ndGgtMSkubWFwKCh0PT4oaVt0KzFdLWlbdF0pLzI1MDApKSxvPWkubWFwKCgodCxlKT0+dD0+dFtlXVsxXSkpLGE9b1s0XSxzPUNlLmV4cG9ydHMucmFuZ2Uoby5sZW5ndGgtMSkubWFwKChpPT57bGV0IGE9bmV3IE5PLlBsb3RzLkFyZWE7YS54KHQsZSk7bGV0IHM9aT40P29baV06b1tpKzFdO3JldHVybiBhLnkoaT40P29baSsxXTpvW2ldLG4pLGEueTAocyksYS5hdHRyKCJmaWxsIiwoKHQsZSxuKT0+dGhpcy5jb2xvclNjYWxlLnNjYWxlKG4ubWV0YWRhdGEoKS5ydW4pKSksYS5hdHRyKCJzdHJva2UiLCgodCxlLG4pPT50aGlzLmNvbG9yU2NhbGUuc2NhbGUobi5tZXRhZGF0YSgpLnJ1bikpKSxhLmF0dHIoInN0cm9rZS13ZWlnaHQiLCgodCxlLG4pPT4iMC41cHgiKSksYS5hdHRyKCJzdHJva2Utb3BhY2l0eSIsKCgpPT5yW2ldKSksYS5hdHRyKCJmaWxsLW9wYWNpdHkiLCgoKT0+cltpXSkpLGF9KSksbD1uZXcgTk8uUGxvdHMuTGluZTtyZXR1cm4gbC54KHQsZSksbC55KGEsbiksbC5hdHRyKCJzdHJva2UiLCgodCxlLG4pPT50aGlzLmNvbG9yU2NhbGUuc2NhbGUobi5ydW4pKSksdGhpcy5wbG90cz1zLG5ldyBOTy5Db21wb25lbnRzLkdyb3VwKHMpfXNldFZpc2libGVTZXJpZXModCl7dGhpcy5ydW5zPXQ7bGV0IGU9dC5tYXAoKHQ9PnRoaXMuZ2V0RGF0YXNldCh0KSkpO3RoaXMucGxvdHMuZm9yRWFjaCgodD0+dC5kYXRhc2V0cyhlKSkpfXNldFNlcmllc0RhdGEodCxlKXt0aGlzLmdldERhdGFzZXQodCkuZGF0YShlKX1yZW5kZXJUbyh0KXt0aGlzLnRhcmdldFNWRz10LHRoaXMub3V0ZXIucmVuZGVyVG8odCl9cmVkcmF3KCl7dGhpcy5vdXRlci5yZWRyYXcoKX1kZXN0cm95KCl7dGhpcy5vdXRlci5kZXN0cm95KCl9fWxldCBMQXQ9Y2xhc3MgZXh0ZW5kcyhjcih3ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmNvbG9yU2NhbGU9KG5ldyBOTy5TY2FsZXMuQ29sb3IpLnJhbmdlKGpBLnNsaWNlKCkpLHRoaXMueFR5cGU9InN0ZXAiLHRoaXMuX3Zpc2libGVTZXJpZXNDYWNoZT1bXSx0aGlzLl9zZXJpZXNEYXRhQ2FjaGU9e30sdGhpcy5fbWFrZUNoYXJ0QXN5bmNDYWxsYmFja0lkPW51bGx9c2V0VmlzaWJsZVNlcmllcyh0KXt0aGlzLl92aXNpYmxlU2VyaWVzQ2FjaGU9dCx0aGlzLl9jaGFydCYmKHRoaXMuX2NoYXJ0LnNldFZpc2libGVTZXJpZXModCksdGhpcy5yZWRyYXcoKSl9c2V0U2VyaWVzRGF0YSh0LGUpe3RoaXMuX3Nlcmllc0RhdGFDYWNoZVt0XT1lLHRoaXMuX2NoYXJ0JiZ0aGlzLl9jaGFydC5zZXRTZXJpZXNEYXRhKHQsZSl9cmVkcmF3KCl7dGhpcy5fY2hhcnQucmVkcmF3KCl9X21ha2VDaGFydCgpe3ZhciB0PXRoaXMueFR5cGUsZT10aGlzLmNvbG9yU2NhbGUsbj10aGlzLl9hdHRhY2hlZDtudWxsPT09dGhpcy5fbWFrZUNoYXJ0QXN5bmNDYWxsYmFja0lkJiZ0aGlzLmNhbmNlbEFzeW5jKHRoaXMuX21ha2VDaGFydEFzeW5jQ2FsbGJhY2tJZCksdGhpcy5fbWFrZUNoYXJ0QXN5bmNDYWxsYmFja0lkPXRoaXMuYXN5bmMoKGZ1bmN0aW9uKCl7aWYodGhpcy5fbWFrZUNoYXJ0QXN5bmNDYWxsYmFja0lkPW51bGwsbil7dGhpcy5fY2hhcnQmJnRoaXMuX2NoYXJ0LmRlc3Ryb3koKTt2YXIgaT1uZXcga0F0KHQsZSkscj1EdSh0aGlzLiQuY2hhcnRkaXYpO2kucmVuZGVyVG8ociksdGhpcy5fY2hhcnQ9aX19KSwzNTApfV9yZWxvYWRGcm9tQ2FjaGUoKXt0aGlzLl9jaGFydCYmKHRoaXMuX2NoYXJ0LnNldFZpc2libGVTZXJpZXModGhpcy5fdmlzaWJsZVNlcmllc0NhY2hlKSx0aGlzLl92aXNpYmxlU2VyaWVzQ2FjaGUuZm9yRWFjaChmdW5jdGlvbih0KXt0aGlzLl9jaGFydC5zZXRTZXJpZXNEYXRhKHQsdGhpcy5fc2VyaWVzRGF0YUNhY2hlW3RdfHxbXSl9LmJpbmQodGhpcykpKX1hdHRhY2hlZCgpe3RoaXMuX2F0dGFjaGVkPSEwfWRldGFjaGVkKCl7dGhpcy5fYXR0YWNoZWQ9ITF9fTtMQXQudGVtcGxhdGU9eGVgCiAgICA8c3R5bGUgaW5jbHVkZT0icGxvdHRhYmxlLXN0eWxlIj48L3N0eWxlPgogICAgPGRpdiBpZD0iY2hhcnRkaXYiPjwvZGl2PgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CiAgICAgICNjaGFydGRpdiB7CiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgICAgfQogICAgICAucGxvdHRhYmxlIC5heGlzIHRleHQgewogICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE5PLlNjYWxlcy5Db2xvcildLExBdC5wcm90b3R5cGUsImNvbG9yU2NhbGUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sTEF0LnByb3RvdHlwZSwieFR5cGUiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxMQXQucHJvdG90eXBlLCJfYXR0YWNoZWQiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsa0F0KV0sTEF0LnByb3RvdHlwZSwiX2NoYXJ0Iix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxMQXQucHJvdG90eXBlLCJfdmlzaWJsZVNlcmllc0NhY2hlIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLExBdC5wcm90b3R5cGUsIl9zZXJpZXNEYXRhQ2FjaGUiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sTEF0LnByb3RvdHlwZSwiX21ha2VDaGFydEFzeW5jQ2FsbGJhY2tJZCIsdm9pZCAwKSx0KFthKCJ4VHlwZSIsImNvbG9yU2NhbGUiLCJfYXR0YWNoZWQiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLExBdC5wcm90b3R5cGUsIl9tYWtlQ2hhcnQiLG51bGwpLHQoW2EoIl9jaGFydCIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sTEF0LnByb3RvdHlwZSwiX3JlbG9hZEZyb21DYWNoZSIsbnVsbCksTEF0PXQoW2koInZ6LWRpc3RyaWJ1dGlvbi1jaGFydCIpXSxMQXQpO2xldCBQQXQ9Y2xhc3MgZXh0ZW5kcyhiQ3QoY3Iod2UpKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuZ2V0RGF0YUxvYWROYW1lPSh7cnVuOnR9KT0+dCx0aGlzLnJlcXVlc3REYXRhPSh0LGUsbik9Pntjb25zdCBpPUVyKCkucGx1Z2luUm91dGUoImRpc3RyaWJ1dGlvbnMiLCIvZGlzdHJpYnV0aW9ucyIpO1Byb21pc2UuYWxsKHQubWFwKCh0PT57Y29uc3Qgbj1QTyhpLHt0YWc6dC50YWcscnVuOnQucnVufSk7cmV0dXJuIHRoaXMucmVxdWVzdE1hbmFnZXIucmVxdWVzdChuKS50aGVuKChuPT57ZSh7aXRlbTp0LGRhdGE6bn0pfSkpfSkpKS5maW5hbGx5KCgoKT0+e24oKX0pKX0sdGhpcy5sb2FkRGF0YUNhbGxiYWNrPSh0LGUsbik9Pntjb25zdCBpPW4ubWFwKCh0PT57Y29uc3RbZSxuLGldPXQ7cmV0dXJuIGkud2FsbF90aW1lPW5ldyBEYXRlKDFlMyplKSxpLnN0ZXA9bixpfSkpLHI9dGhpcy5nZXREYXRhTG9hZE5hbWUoZSk7dGhpcy4kLmNoYXJ0LnNldFNlcmllc0RhdGEocixpKSx0aGlzLiQuY2hhcnQuc2V0VmlzaWJsZVNlcmllcyhbcl0pfSx0aGlzLl9jb2xvclNjYWxlPXtzY2FsZTpfT30sdGhpcy5fZXhwYW5kZWQ9ITEsdGhpcy5fY2FuY2VsbGVyPW5ldyB4T31fcmVsb2FkT25SdW5UYWdDaGFuZ2UoKXt0aGlzLnJlbG9hZCgpfV91cGRhdGVEYXRhVG9Mb2FkKCl7dGhpcy5kYXRhVG9Mb2FkPVt7cnVuOnRoaXMucnVuLHRhZzp0aGlzLnRhZ31dfWdldCBfcnVuQ29sb3IoKXtyZXR1cm4gdGhpcy5fY29sb3JTY2FsZS5zY2FsZSh0aGlzLnJ1bil9cmVkcmF3KCl7dGhpcy4kLmNoYXJ0LnJlZHJhdygpfV90b2dnbGVFeHBhbmRlZCh0KXt0aGlzLnNldCgiX2V4cGFuZGVkIiwhdGhpcy5fZXhwYW5kZWQpLHRoaXMucmVkcmF3KCl9fTtQQXQudGVtcGxhdGU9eGVgCiAgICA8dGYtY2FyZC1oZWFkaW5nCiAgICAgIHRhZz0iW1t0YWddXSIKICAgICAgcnVuPSJbW3J1bl1dIgogICAgICBkaXNwbGF5LW5hbWU9IltbdGFnTWV0YWRhdGEuZGlzcGxheU5hbWVdXSIKICAgICAgZGVzY3JpcHRpb249IltbdGFnTWV0YWRhdGEuZGVzY3JpcHRpb25dXSIKICAgICAgY29sb3I9IltbX3J1bkNvbG9yXV0iCiAgICA+PC90Zi1jYXJkLWhlYWRpbmc+CiAgICA8IS0tCiAgICAgIFRoZSBtYWluIGRpc3RyaWJ1dGlvbiB0aGF0IHdlIHJlbmRlci4gRGF0YSBpcyBzZXQgZGlyZWN0bHkgd2l0aAogICAgICBcYHNldFNlcmllc0RhdGFcYCwgbm90IHdpdGggYSBib3VuZCBwcm9wZXJ0eS4KICAgIC0tPgogICAgPHZ6LWRpc3RyaWJ1dGlvbi1jaGFydAogICAgICBpZD0iY2hhcnQiCiAgICAgIHgtdHlwZT0iW1t4VHlwZV1dIgogICAgICBjb2xvci1zY2FsZT0iW1tfY29sb3JTY2FsZV1dIgogICAgPjwvdnotZGlzdHJpYnV0aW9uLWNoYXJ0PgogICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IHJvdzsiPgogICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICBzZWxlY3RlZCQ9IltbX2V4cGFuZGVkXV0iCiAgICAgICAgaWNvbj0iZnVsbHNjcmVlbiIKICAgICAgICBvbi10YXA9Il90b2dnbGVFeHBhbmRlZCIKICAgICAgPjwvcGFwZXItaWNvbi1idXR0b24+CiAgICA8L2Rpdj4KICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICB3aWR0aDogMzMwcHg7CiAgICAgICAgaGVpZ2h0OiAyMzVweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgICAgfQogICAgICA6aG9zdChbX2V4cGFuZGVkXSkgewogICAgICAgIHdpZHRoOiA3MDBweDsKICAgICAgICBoZWlnaHQ6IDUwMHB4OwogICAgICB9CgogICAgICB2ei1oaXN0b2dyYW0tdGltZXNlcmllcyB7CiAgICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICBwYXBlci1pY29uLWJ1dHRvbiB7CiAgICAgICAgY29sb3I6ICMyMTk2ZjM7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICB9CiAgICAgIHBhcGVyLWljb24tYnV0dG9uW3NlbGVjdGVkXSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGItdWktbGlnaHQtYWNjZW50KTsKICAgICAgfQoKICAgICAgdGYtY2FyZC1oZWFkaW5nIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sUEF0LnByb3RvdHlwZSwicnVuIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFBBdC5wcm90b3R5cGUsInRhZyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxQQXQucHJvdG90eXBlLCJ0YWdNZXRhZGF0YSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxQQXQucHJvdG90eXBlLCJ4VHlwZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxQQXQucHJvdG90eXBlLCJnZXREYXRhTG9hZE5hbWUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sUEF0LnByb3RvdHlwZSwibG9hZERhdGFDYWxsYmFjayIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxQQXQucHJvdG90eXBlLCJfY29sb3JTY2FsZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4scmVmbGVjdFRvQXR0cmlidXRlOiEwfSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxQQXQucHJvdG90eXBlLCJfZXhwYW5kZWQiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsYnIpXSxQQXQucHJvdG90eXBlLCJyZXF1ZXN0TWFuYWdlciIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIix4TyldLFBBdC5wcm90b3R5cGUsIl9jYW5jZWxsZXIiLHZvaWQgMCksdChbYSgicnVuIiwidGFnIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxQQXQucHJvdG90eXBlLCJfcmVsb2FkT25SdW5UYWdDaGFuZ2UiLG51bGwpLHQoW2EoInJ1biIsInRhZyIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sUEF0LnByb3RvdHlwZSwiX3VwZGF0ZURhdGFUb0xvYWQiLG51bGwpLHQoW3MoInJ1biIpLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFBBdC5wcm90b3R5cGUsIl9ydW5Db2xvciIsbnVsbCksUEF0PXQoW2koInRmLWRpc3RyaWJ1dGlvbi1sb2FkZXIiKV0sUEF0KTtsZXQgTkF0PWNsYXNzIGV4dGVuZHMoY3Iod2UpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5yZWxvYWRPblJlYWR5PSEwLHRoaXMuX3hUeXBlPSJzdGVwIix0aGlzLl9yZXF1ZXN0TWFuYWdlcj1uZXcgYnJ9cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMucmVsb2FkT25SZWFkeSYmdGhpcy5yZWxvYWQoKX1yZWxvYWQoKXt0aGlzLl9mZXRjaFRhZ3MoKS50aGVuKCgoKT0+e3RoaXMuX3JlbG9hZERpc3RyaWJ1dGlvbnMoKX0pKX1fZmV0Y2hUYWdzKCl7Y29uc3QgdD1FcigpLnBsdWdpblJvdXRlKCJkaXN0cmlidXRpb25zIiwiL3RhZ3MiKTtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKCh0PT57aWYoQ2UuZXhwb3J0cy5pc0VxdWFsKHQsdGhpcy5fcnVuVG9UYWdJbmZvKSlyZXR1cm47Y29uc3QgZT1DZS5leHBvcnRzLm1hcFZhbHVlcyh0LCh0PT5PYmplY3Qua2V5cyh0KSkpLG49ZnIoZSk7dGhpcy5zZXQoIl9kYXRhTm90Rm91bmQiLDA9PT1uLmxlbmd0aCksdGhpcy5zZXQoIl9ydW5Ub1RhZyIsZSksdGhpcy5zZXQoIl9ydW5Ub1RhZ0luZm8iLHQpLHRoaXMuYXN5bmMoKCgpPT57dGhpcy5zZXQoIl9jYXRlZ29yaWVzRG9tUmVhZHkiLCEwKX0pKX0pKX1fcmVsb2FkRGlzdHJpYnV0aW9ucygpe3RoaXMucm9vdC5xdWVyeVNlbGVjdG9yQWxsKCJ0Zi1kaXN0cmlidXRpb24tbG9hZGVyIikuZm9yRWFjaCgodD0+e3QucmVsb2FkKCl9KSl9X3Nob3VsZE9wZW4odCl7cmV0dXJuIHQ8PTJ9Z2V0IF9jYXRlZ29yaWVzKCl7cmV0dXJuIElyKHRoaXMuX3J1blRvVGFnLHRoaXMuX3NlbGVjdGVkUnVucyx0aGlzLl90YWdGaWx0ZXIpfV90YWdNZXRhZGF0YSh0LGUsbil7cmV0dXJuIHRbZV1bbl19fTtOQXQudGVtcGxhdGU9eGVgCiAgICA8dGYtZGFzaGJvYXJkLWxheW91dD4KICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhciIgc2xvdD0ic2lkZWJhciI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3MiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIj4KICAgICAgICAgICAgPHRmLW9wdGlvbi1zZWxlY3RvcgogICAgICAgICAgICAgIGlkPSJ4VHlwZVNlbGVjdG9yIgogICAgICAgICAgICAgIG5hbWU9Ikhvcml6b250YWwgYXhpcyIKICAgICAgICAgICAgICBzZWxlY3RlZC1pZD0ie3tfeFR5cGV9fSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24gaWQ9InN0ZXAiPnN0ZXA8L3BhcGVyLWJ1dHRvbj4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uIGlkPSJyZWxhdGl2ZSI+cmVsYXRpdmU8L3BhcGVyLWJ1dHRvbj4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uIGlkPSJ3YWxsX3RpbWUiPndhbGw8L3BhcGVyLWJ1dHRvbj4KICAgICAgICAgICAgPC90Zi1vcHRpb24tc2VsZWN0b3I+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24gcnVucy1zZWxlY3RvciI+CiAgICAgICAgICA8dGYtcnVucy1zZWxlY3RvciBzZWxlY3RlZC1ydW5zPSJ7e19zZWxlY3RlZFJ1bnN9fSI+CiAgICAgICAgICA8L3RmLXJ1bnMtc2VsZWN0b3I+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iY2VudGVyIiBzbG90PSJjZW50ZXIiPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfZGF0YU5vdEZvdW5kXV0iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibm8tZGF0YS13YXJuaW5nIj4KICAgICAgICAgICAgPGgzPk5vIGRpc3RyaWJ1dGlvbiBkYXRhIHdhcyBmb3VuZC48L2gzPgogICAgICAgICAgICA8cD5Qcm9iYWJsZSBjYXVzZXM6PC9wPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgWW91IGhhdmVu4oCZdCB3cml0dGVuIGFueSBoaXN0b2dyYW0gZGF0YSB0byB5b3VyIGV2ZW50IGZpbGVzLgogICAgICAgICAgICAgICAgKEhpc3RvZ3JhbXMgYW5kIGRpc3RyaWJ1dGlvbnMgYm90aCB1c2UgdGhlIGhpc3RvZ3JhbSBzdW1tYXJ5CiAgICAgICAgICAgICAgICBvcGVyYXRpb24uKQogICAgICAgICAgICAgIDwvbGk+CgogICAgICAgICAgICAgIDxsaT5UZW5zb3JCb2FyZCBjYW7igJl0IGZpbmQgeW91ciBldmVudCBmaWxlcy48L2xpPgogICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgSWYgeW914oCZcmUgbmV3IHRvIHVzaW5nIFRlbnNvckJvYXJkLCBhbmQgd2FudCB0byBmaW5kIG91dCBob3cgdG8KICAgICAgICAgICAgICBhZGQgZGF0YSBhbmQgc2V0IHVwIHlvdXIgZXZlbnQgZmlsZXMsIGNoZWNrIG91dCB0aGUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIgogICAgICAgICAgICAgICAgPlJFQURNRTwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBhbmQgcGVyaGFwcyB0aGUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly93d3cudGVuc29yZmxvdy5vcmcvZ2V0X3N0YXJ0ZWQvc3VtbWFyaWVzX2FuZF90ZW5zb3Jib2FyZCIKICAgICAgICAgICAgICAgID5UZW5zb3JCb2FyZCB0dXRvcmlhbDwvYQogICAgICAgICAgICAgID4uCiAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdSB0aGluayBUZW5zb3JCb2FyZCBpcyBjb25maWd1cmVkIHByb3Blcmx5LCBwbGVhc2Ugc2VlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCNteS10ZW5zb3Jib2FyZC1pc250LXNob3dpbmctYW55LWRhdGEtd2hhdHMtd3JvbmciCiAgICAgICAgICAgICAgICA+dGhlIHNlY3Rpb24gb2YgdGhlIFJFQURNRSBkZXZvdGVkIHRvIG1pc3NpbmcgZGF0YSBwcm9ibGVtczwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBhbmQgY29uc2lkZXIgZmlsaW5nIGFuIGlzc3VlIG9uIEdpdEh1Yi4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIV9kYXRhTm90Rm91bmRdXSI+CiAgICAgICAgICA8dGYtdGFnLWZpbHRlcmVyIHRhZy1maWx0ZXI9Int7X3RhZ0ZpbHRlcn19Ij48L3RmLXRhZy1maWx0ZXJlcj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX2NhdGVnb3JpZXNdXSIgYXM9ImNhdGVnb3J5Ij4KICAgICAgICAgICAgPHRmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3CiAgICAgICAgICAgICAgY2F0ZWdvcnk9IltbY2F0ZWdvcnldXSIKICAgICAgICAgICAgICBpbml0aWFsLW9wZW5lZD0iW1tfc2hvdWxkT3BlbihpbmRleCldXSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDx0Zi1kaXN0cmlidXRpb24tbG9hZGVyCiAgICAgICAgICAgICAgICAgIGFjdGl2ZT0iW1thY3RpdmVdXSIKICAgICAgICAgICAgICAgICAgcnVuPSJbW2l0ZW0ucnVuXV0iCiAgICAgICAgICAgICAgICAgIHRhZz0iW1tpdGVtLnRhZ11dIgogICAgICAgICAgICAgICAgICB0YWctbWV0YWRhdGE9IltbX3RhZ01ldGFkYXRhKF9ydW5Ub1RhZ0luZm8sIGl0ZW0ucnVuLCBpdGVtLnRhZyldXSIKICAgICAgICAgICAgICAgICAgeC10eXBlPSJbW194VHlwZV1dIgogICAgICAgICAgICAgICAgICByZXF1ZXN0LW1hbmFnZXI9IltbX3JlcXVlc3RNYW5hZ2VyXV0iCiAgICAgICAgICAgICAgICA+PC90Zi1kaXN0cmlidXRpb24tbG9hZGVyPgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvdGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXc+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDwvZGl2PgogICAgPC90Zi1kYXNoYm9hcmQtbGF5b3V0PgoKICAgIDxzdHlsZSBpbmNsdWRlPSJkYXNoYm9hcmQtc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgIC5uby1kYXRhLXdhcm5pbmcgewogICAgICAgIG1heC13aWR0aDogNTQwcHg7CiAgICAgICAgbWFyZ2luOiA4MHB4IGF1dG8gMCBhdXRvOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxOQXQucHJvdG90eXBlLCJyZWxvYWRPblJlYWR5Iix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLE5BdC5wcm90b3R5cGUsIl94VHlwZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sTkF0LnByb3RvdHlwZSwiX3NlbGVjdGVkUnVucyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxOQXQucHJvdG90eXBlLCJfcnVuVG9UYWciLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sTkF0LnByb3RvdHlwZSwiX3J1blRvVGFnSW5mbyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLE5BdC5wcm90b3R5cGUsIl9kYXRhTm90Rm91bmQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sTkF0LnByb3RvdHlwZSwiX3RhZ0ZpbHRlciIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLE5BdC5wcm90b3R5cGUsIl9jYXRlZ29yaWVzRG9tUmVhZHkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsYnIpXSxOQXQucHJvdG90eXBlLCJfcmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbcygiX3J1blRvVGFnIiwiX3NlbGVjdGVkUnVucyIsIl90YWdGaWx0ZXIiLCJfY2F0ZWdvcmllc0RvbVJlYWR5IiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxOQXQucHJvdG90eXBlLCJfY2F0ZWdvcmllcyIsbnVsbCksTkF0PXQoW2koInRmLWRpc3RyaWJ1dGlvbi1kYXNoYm9hcmQiKV0sTkF0KTt2YXIgSUF0PU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLExpc3RlbktleTpNcyxhZGRIYXNoTGlzdGVuZXI6Q3MsYWRkU3RvcmFnZUxpc3RlbmVyOkFzLGZpcmVTdG9yYWdlQ2hhbmdlZDprcyxyZW1vdmVIYXNoTGlzdGVuZXJCeUtleTpMcyxyZW1vdmVTdG9yYWdlTGlzdGVuZXJCeUtleTpQcyxnZXRVcmxIYXNoRGljdDpmdW5jdGlvbiBSQXQoKXtyZXR1cm4gRnN9LERJU0FNQklHVUFUT1I6V3MsZ2V0U3RyaW5nOnFzLHNldFN0cmluZzpZcyxnZXRTdHJpbmdJbml0aWFsaXplcjpYcyxnZXRTdHJpbmdPYnNlcnZlcjokcyxkaXNwb3NlU3RyaW5nQmluZGluZzpLcyxnZXRCb29sZWFuOlpzLHNldEJvb2xlYW46SnMsZ2V0Qm9vbGVhbkluaXRpYWxpemVyOlFzLGdldEJvb2xlYW5PYnNlcnZlcjp0bCxkaXNwb3NlQm9vbGVhbkJpbmRpbmc6ZWwsZ2V0TnVtYmVyOm5sLHNldE51bWJlcjppbCxnZXROdW1iZXJJbml0aWFsaXplcjpybCxnZXROdW1iZXJPYnNlcnZlcjpvbCxkaXNwb3NlTnVtYmVyQmluZGluZzphbCxnZXRPYmplY3Q6c2wsc2V0T2JqZWN0OmxsLGdldE9iamVjdEluaXRpYWxpemVyOmNsLGdldE9iamVjdE9ic2VydmVyOnVsLGRpc3Bvc2VPYmplY3RCaW5kaW5nOmhsLG1ha2VCaW5kaW5nczpkbCxtaWdyYXRlTGVnYWN5VVJMU2NoZW1lOmZ1bmN0aW9uIE9BdCgpe2NvbnN0IHQ9bmV3IFNldChbImV4YW1wbGVzUGF0aCIsImhpZGVNb2RlbFBhbmUyIiwibW9kZWxOYW1lMSIsIm1vZGVsTmFtZTIiLCJpbmZlcmVuY2VBZGRyZXNzMSIsImluZmVyZW5jZUFkZHJlc3MyIiwibW9kZWxUeXBlIiwibW9kZWxWZXJzaW9uMSIsIm1vZGVsVmVyc2lvbjIiLCJtb2RlbFNpZ25hdHVyZTEiLCJtb2RlbFNpZ25hdHVyZTIiLCJtYXhFeGFtcGxlcyIsImxhYmVsVm9jYWJQYXRoIiwibXVsdGlDbGFzcyIsInNlcXVlbmNlRXhhbXBsZXMiLCJtYXhDbGFzc2VzVG9EaXNwbGF5Iiwic2FtcGxpbmdPZGRzIiwidXNlUHJlZGljdEFwaSIsInByZWRpY3RJbnB1dFRlbnNvciIsInByZWRpY3RPdXRwdXRUZW5zb3IiXSksZT1VcyhWcygpKTtpZigid2hhdGlmIj09PWUuX190YWJfXylmb3IobGV0IG4gb2YgdClpZihuIGluIGUpe2VbYHAud2hhdGlmLiR7bn1gXT1lW25dfWpzKEdzKGUpKSwoZnVuY3Rpb24gbih0KXtGcz10fSkoZSl9fSk7dmFyIHpBdCxEQXQ7IShmdW5jdGlvbih0KXt0LkZFVENIX1BCVFhUX0JZVEVTPSJGRVRDSF9QQlRYVF9CWVRFUyIsdC5GRVRDSF9QQlRYVF9CWVRFU19GUk9NX0ZJTEVTWVNURU09IkZFVENIX1BCVFhUX0JZVEVTX0ZST01fRklMRVNZU1RFTSIsdC5GRVRDSF9QQlRYVF9CWVRFU19GUk9NX1NFUlZFUj0iRkVUQ0hfUEJUWFRfQllURVNfRlJPTV9TRVJWRVIiLHQuUEFSU0VfUEJUWFRfSU5UT19PQkpFQ1Q9IlBBUlNFX1BCVFhUX0lOVE9fT0JKRUNUIix0LkZFVENIX01FVEFEQVRBX1BCVFhUX0JZVEVTPSJGRVRDSF9NRVRBREFUQV9QQlRYVF9CWVRFUyIsdC5QQVJTRV9NRVRBREFUQV9QQlRYVF9JTlRPX09CSkVDVD0iUEFSU0VfTUVUQURBVEFfUEJUWFRfSU5UT19PQkpFQ1QiLHQuTk9STUFMSVpJTkdfTkFNRVM9Ik5PUk1BTElaSU5HX05BTUVTIix0LkJVSUxEX1NMSU1fR1JBUEg9IkJVSUxEX1NMSU1fR1JBUEgiLHQuSElFUkFSQ0hZX0FERF9OT0RFUz0iSElFUkFSQ0hZX0FERF9OT0RFUyIsdC5ISUVSQVJDSFlfREVURUNUX1NFUklFUz0iSElFUkFSQ0hZX0RFVEVDVF9TRVJJRVMiLHQuSElFUkFSQ0hZX0FERF9FREdFUz0iSElFUkFSQ0hZX0FERF9FREdFUyIsdC5ISUVSQVJDSFlfRklORF9TSU1JTEFSX1NVQkdSQVBIUz0iSElFUkFSQ0hZX0ZJTkRfU0lNSUxBUl9TVUJHUkFQSFMiLHQuUkVOREVSX0JVSUxEX0hJRVJBUkNIWT0iUkVOREVSX0JVSUxEX0hJRVJBUkNIWSIsdC5SRU5ERVJfU0NFTkVfTEFZT1VUPSJSRU5ERVJfU0NFTkVfTEFZT1VUIix0LlJFTkRFUl9TQ0VORV9CVUlMRF9TQ0VORT0iUkVOREVSX1NDRU5FX0JVSUxEX1NDRU5FIix0LkdSQVBIX0xPQURfU1VDQ0VFREVEPSJHUkFQSF9MT0FEX1NVQ0NFRURFRCIsdC5HUkFQSF9MT0FEX0ZBSUxFRD0iR1JBUEhfTE9BRF9GQUlMRUQifSkoekF0fHwoekF0PXt9KSksKGZ1bmN0aW9uKHQpe3QuTk9ERV9FWFBBTlNJT05fVE9HR0xFRD0iTk9ERV9FWFBBTlNJT05fVE9HR0xFRCIsdC5OT0RFX1NFQVJDSF9SRVNVTFRfRk9DVVNFRD0iTk9ERV9TRUFSQ0hfUkVTVUxUX0ZPQ1VTRUQiLHQuTk9ERV9BVVhJTElBUllfRVhUUkFDVElPTl9DSEFOR0VEPSJOT0RFX0FVWElMSUFSWV9FWFRSQUNUSU9OX0NIQU5HRUQiLHQuR1JBUEhfVFlQRV9DSEFOR0VEPSJHUkFQSF9UWVBFX0NIQU5HRUQiLHQuVFJBQ0VfSU5QVVRfTU9ERV9UT0dHTEVEPSJUUkFDRV9JTlBVVF9NT0RFX1RPR0dMRUQiLHQuTk9ERV9DT0xPUl9NT0RFX0NIQU5HRUQ9Ik5PREVfQ09MT1JfTU9ERV9DSEFOR0VEIix0LlVQTE9BREVEX0dSQVBIX0ZST01fRklMRVNZU1RFTT0iVVBMT0FERURfR1JBUEhfRlJPTV9GSUxFU1lTVEVNIn0pKERBdHx8KERBdD17fSkpO2NvbnN0IEJBdD1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sekF0KSxEQXQpO3ZhciBIQXQ9ZnVuY3Rpb24gRkF0KHQsZSl7cmV0dXJuIHQ9PT1lfHx0IT10JiZlIT1lfSxWQXQ9SEF0O3ZhciBVQXQ9ZnVuY3Rpb24gakF0KHQsZSl7Zm9yKHZhciBuPXQubGVuZ3RoO24tLTspaWYoVkF0KHRbbl1bMF0sZSkpcmV0dXJuIG47cmV0dXJuLTF9LEdBdD1VQXQsV0F0PUFycmF5LnByb3RvdHlwZS5zcGxpY2U7dmFyIHFBdD1VQXQ7dmFyIFlBdD1VQXQ7dmFyIFhBdD1VQXQ7dmFyICRBdD1mdW5jdGlvbiBLQXQodCl7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPUdBdChlLHQpO3JldHVybiEobjwwKSYmKG49PWUubGVuZ3RoLTE/ZS5wb3AoKTpXQXQuY2FsbChlLG4sMSksLS10aGlzLnNpemUsITApfSxaQXQ9ZnVuY3Rpb24gSkF0KHQpe3ZhciBlPXRoaXMuX19kYXRhX18sbj1xQXQoZSx0KTtyZXR1cm4gbjwwP3ZvaWQgMDplW25dWzFdfSxRQXQ9ZnVuY3Rpb24gdGt0KHQpe3JldHVybiBZQXQodGhpcy5fX2RhdGFfXyx0KT4tMX0sZWt0PWZ1bmN0aW9uIG5rdCh0LGUpe3ZhciBuPXRoaXMuX19kYXRhX18saT1YQXQobix0KTtyZXR1cm4gaTwwPygrK3RoaXMuc2l6ZSxuLnB1c2goW3QsZV0pKTpuW2ldWzFdPWUsdGhpc307ZnVuY3Rpb24gaWt0KHQpe3ZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytlPG47KXt2YXIgaT10W2VdO3RoaXMuc2V0KGlbMF0saVsxXSl9fWlrdC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24gcmt0KCl7dGhpcy5fX2RhdGFfXz1bXSx0aGlzLnNpemU9MH0saWt0LnByb3RvdHlwZS5kZWxldGU9JEF0LGlrdC5wcm90b3R5cGUuZ2V0PVpBdCxpa3QucHJvdG90eXBlLmhhcz1RQXQsaWt0LnByb3RvdHlwZS5zZXQ9ZWt0O3ZhciBva3Q9aWt0LGFrdD1va3Q7dmFyIHNrdD1mdW5jdGlvbiBsa3QoKXt0aGlzLl9fZGF0YV9fPW5ldyBha3QsdGhpcy5zaXplPTB9O3ZhciBja3Q9ZnVuY3Rpb24gdWt0KHQpe3ZhciBlPXRoaXMuX19kYXRhX18sbj1lLmRlbGV0ZSh0KTtyZXR1cm4gdGhpcy5zaXplPWUuc2l6ZSxufTt2YXIgaGt0PWZ1bmN0aW9uIGRrdCh0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5nZXQodCl9O3ZhciBwa3Q9ZnVuY3Rpb24gZmt0KHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyh0KX0sbWt0PSJvYmplY3QiPT10eXBlb2YgU2UmJlNlJiZTZS5PYmplY3Q9PT1PYmplY3QmJlNlLGdrdD0ib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYmJnNlbGYuT2JqZWN0PT09T2JqZWN0JiZzZWxmLF9rdD1ta3R8fGdrdHx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSx5a3Q9X2t0LlN5bWJvbCx2a3Q9T2JqZWN0LnByb3RvdHlwZSxia3Q9dmt0Lmhhc093blByb3BlcnR5LHhrdD12a3QudG9TdHJpbmcsd2t0PXlrdD95a3QudG9TdHJpbmdUYWc6dm9pZCAwO3ZhciBTa3Q9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzt2YXIgTWt0PWZ1bmN0aW9uIEVrdCh0KXt2YXIgZT1ia3QuY2FsbCh0LHdrdCksbj10W3drdF07dHJ5e3Rbd2t0XT12b2lkIDA7dmFyIGk9ITB9Y2F0Y2godCl7fXZhciByPXhrdC5jYWxsKHQpO3JldHVybiBpJiYoZT90W3drdF09bjpkZWxldGUgdFt3a3RdKSxyfSxUa3Q9ZnVuY3Rpb24gQ2t0KHQpe3JldHVybiBTa3QuY2FsbCh0KX0sQWt0PXlrdD95a3QudG9TdHJpbmdUYWc6dm9pZCAwO3ZhciBra3Q9ZnVuY3Rpb24gTGt0KHQpe3JldHVybiBudWxsPT10P3ZvaWQgMD09PXQ/IltvYmplY3QgVW5kZWZpbmVkXSI6IltvYmplY3QgTnVsbF0iOkFrdCYmQWt0IGluIE9iamVjdCh0KT9Na3QodCk6VGt0KHQpfTt2YXIgUGt0PWZ1bmN0aW9uIE5rdCh0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4gbnVsbCE9dCYmKCJvYmplY3QiPT1lfHwiZnVuY3Rpb24iPT1lKX0sSWt0PWtrdCxSa3Q9UGt0O3ZhciBPa3Qsemt0PWZ1bmN0aW9uIERrdCh0KXtpZighUmt0KHQpKXJldHVybiExO3ZhciBlPUlrdCh0KTtyZXR1cm4iW29iamVjdCBGdW5jdGlvbl0iPT1lfHwiW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iPT1lfHwiW29iamVjdCBBc3luY0Z1bmN0aW9uXSI9PWV8fCJbb2JqZWN0IFByb3h5XSI9PWV9LEJrdD1fa3RbIl9fY29yZS1qc19zaGFyZWRfXyJdLEhrdD0oT2t0PS9bXi5dKyQvLmV4ZWMoQmt0JiZCa3Qua2V5cyYmQmt0LmtleXMuSUVfUFJPVE98fCIiKSk/IlN5bWJvbChzcmMpXzEuIitPa3Q6IiI7dmFyIEZrdD1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc7dmFyIFZrdD1mdW5jdGlvbiBVa3QodCl7aWYobnVsbCE9dCl7dHJ5e3JldHVybiBGa3QuY2FsbCh0KX1jYXRjaCh0KXt9dHJ5e3JldHVybiB0KyIifWNhdGNoKHQpe319cmV0dXJuIiJ9LGprdD16a3QsR2t0PWZ1bmN0aW9uIFdrdCh0KXtyZXR1cm4hIUhrdCYmSGt0IGluIHR9LHFrdD1Qa3QsWWt0PVZrdCxYa3Q9L15cW29iamVjdCAuKz9Db25zdHJ1Y3RvclxdJC8sJGt0PVJlZ0V4cCgiXiIrRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSkucmVwbGFjZSgvW1xcXiQuKis/KClbXF17fXxdL2csIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIik7dmFyIEtrdD1mdW5jdGlvbiBaa3QodCl7cmV0dXJuISghcWt0KHQpfHxHa3QodCkpJiYoamt0KHQpPyRrdDpYa3QpLnRlc3QoWWt0KHQpKX0sSmt0PWZ1bmN0aW9uIFFrdCh0LGUpe3JldHVybiBudWxsPT10P3ZvaWQgMDp0W2VdfTt2YXIgdEx0PWZ1bmN0aW9uIGVMdCh0LGUpe3ZhciBuPUprdCh0LGUpO3JldHVybiBLa3Qobik/bjp2b2lkIDB9LG5MdD10THQoX2t0LCJNYXAiKSxpTHQ9dEx0KE9iamVjdCwiY3JlYXRlIiksckx0PWlMdDt2YXIgb0x0PWlMdCxhTHQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgc0x0PWlMdCxsTHQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgY0x0PWlMdDt2YXIgdUx0PWZ1bmN0aW9uIGhMdCh0KXt2YXIgZT10aGlzLmhhcyh0KSYmZGVsZXRlIHRoaXMuX19kYXRhX19bdF07cmV0dXJuIHRoaXMuc2l6ZS09ZT8xOjAsZX0sZEx0PWZ1bmN0aW9uIHBMdCh0KXt2YXIgZT10aGlzLl9fZGF0YV9fO2lmKG9MdCl7dmFyIG49ZVt0XTtyZXR1cm4iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI9PT1uP3ZvaWQgMDpufXJldHVybiBhTHQuY2FsbChlLHQpP2VbdF06dm9pZCAwfSxmTHQ9ZnVuY3Rpb24gbUx0KHQpe3ZhciBlPXRoaXMuX19kYXRhX187cmV0dXJuIHNMdD92b2lkIDAhPT1lW3RdOmxMdC5jYWxsKGUsdCl9LGdMdD1mdW5jdGlvbiBfTHQodCxlKXt2YXIgbj10aGlzLl9fZGF0YV9fO3JldHVybiB0aGlzLnNpemUrPXRoaXMuaGFzKHQpPzA6MSxuW3RdPWNMdCYmdm9pZCAwPT09ZT8iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI6ZSx0aGlzfTtmdW5jdGlvbiB5THQodCl7dmFyIGU9LTEsbj1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2U8bjspe3ZhciBpPXRbZV07dGhpcy5zZXQoaVswXSxpWzFdKX19eUx0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbiB2THQoKXt0aGlzLl9fZGF0YV9fPXJMdD9yTHQobnVsbCk6e30sdGhpcy5zaXplPTB9LHlMdC5wcm90b3R5cGUuZGVsZXRlPXVMdCx5THQucHJvdG90eXBlLmdldD1kTHQseUx0LnByb3RvdHlwZS5oYXM9Zkx0LHlMdC5wcm90b3R5cGUuc2V0PWdMdDt2YXIgYkx0PXlMdCx4THQ9b2t0LHdMdD1uTHQ7dmFyIFNMdD1mdW5jdGlvbiBNTHQodCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuInN0cmluZyI9PWV8fCJudW1iZXIiPT1lfHwic3ltYm9sIj09ZXx8ImJvb2xlYW4iPT1lPyJfX3Byb3RvX18iIT09dDpudWxsPT09dH07dmFyIEVMdD1mdW5jdGlvbiBUTHQodCxlKXt2YXIgbj10Ll9fZGF0YV9fO3JldHVybiBTTHQoZSk/blsic3RyaW5nIj09dHlwZW9mIGU/InN0cmluZyI6Imhhc2giXTpuLm1hcH0sQ0x0PUVMdDt2YXIgQUx0PUVMdDt2YXIga0x0PUVMdDt2YXIgTEx0PUVMdDt2YXIgUEx0PWZ1bmN0aW9uIE5MdCh0KXt2YXIgZT1DTHQodGhpcyx0KS5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZS09ZT8xOjAsZX0sSUx0PWZ1bmN0aW9uIFJMdCh0KXtyZXR1cm4gQUx0KHRoaXMsdCkuZ2V0KHQpfSxPTHQ9ZnVuY3Rpb24gekx0KHQpe3JldHVybiBrTHQodGhpcyx0KS5oYXModCl9LERMdD1mdW5jdGlvbiBCTHQodCxlKXt2YXIgbj1MTHQodGhpcyx0KSxpPW4uc2l6ZTtyZXR1cm4gbi5zZXQodCxlKSx0aGlzLnNpemUrPW4uc2l6ZT09aT8wOjEsdGhpc307ZnVuY3Rpb24gSEx0KHQpe3ZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytlPG47KXt2YXIgaT10W2VdO3RoaXMuc2V0KGlbMF0saVsxXSl9fUhMdC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24gRkx0KCl7dGhpcy5zaXplPTAsdGhpcy5fX2RhdGFfXz17aGFzaDpuZXcgYkx0LG1hcDpuZXcod0x0fHx4THQpLHN0cmluZzpuZXcgYkx0fX0sSEx0LnByb3RvdHlwZS5kZWxldGU9UEx0LEhMdC5wcm90b3R5cGUuZ2V0PUlMdCxITHQucHJvdG90eXBlLmhhcz1PTHQsSEx0LnByb3RvdHlwZS5zZXQ9REx0O3ZhciBWTHQ9SEx0LFVMdD1va3Qsakx0PW5MdCxHTHQ9Vkx0O3ZhciBXTHQ9b2t0LHFMdD1ja3QsWUx0PWhrdCxYTHQ9cGt0LCRMdD1mdW5jdGlvbiBLTHQodCxlKXt2YXIgbj10aGlzLl9fZGF0YV9fO2lmKG4gaW5zdGFuY2VvZiBVTHQpe3ZhciBpPW4uX19kYXRhX187aWYoIWpMdHx8aS5sZW5ndGg8MTk5KXJldHVybiBpLnB1c2goW3QsZV0pLHRoaXMuc2l6ZT0rK24uc2l6ZSx0aGlzO249dGhpcy5fX2RhdGFfXz1uZXcgR0x0KGkpfXJldHVybiBuLnNldCh0LGUpLHRoaXMuc2l6ZT1uLnNpemUsdGhpc307ZnVuY3Rpb24gWkx0KHQpe3ZhciBlPXRoaXMuX19kYXRhX189bmV3IFdMdCh0KTt0aGlzLnNpemU9ZS5zaXplfVpMdC5wcm90b3R5cGUuY2xlYXI9c2t0LFpMdC5wcm90b3R5cGUuZGVsZXRlPXFMdCxaTHQucHJvdG90eXBlLmdldD1ZTHQsWkx0LnByb3RvdHlwZS5oYXM9WEx0LFpMdC5wcm90b3R5cGUuc2V0PSRMdDt2YXIgSkx0PVpMdDt2YXIgUUx0PWZ1bmN0aW9uIHRQdCh0LGUpe2Zvcih2YXIgbj0tMSxpPW51bGw9PXQ/MDp0Lmxlbmd0aDsrK248aSYmITEhPT1lKHRbbl0sbix0KTspO3JldHVybiB0fSxlUHQ9dEx0LG5QdD0oZnVuY3Rpb24oKXt0cnl7dmFyIHQ9ZVB0KE9iamVjdCwiZGVmaW5lUHJvcGVydHkiKTtyZXR1cm4gdCh7fSwiIix7fSksdH1jYXRjaCh0KXt9fSkoKSxpUHQ9blB0O3ZhciByUHQ9ZnVuY3Rpb24gb1B0KHQsZSxuKXsiX19wcm90b19fIj09ZSYmaVB0P2lQdCh0LGUse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOm4sd3JpdGFibGU6ITB9KTp0W2VdPW59LGFQdD1yUHQsc1B0PUhBdCxsUHQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgY1B0PWZ1bmN0aW9uIHVQdCh0LGUsbil7dmFyIGk9dFtlXTtsUHQuY2FsbCh0LGUpJiZzUHQoaSxuKSYmKHZvaWQgMCE9PW58fGUgaW4gdCl8fGFQdCh0LGUsbil9LGhQdD1jUHQsZFB0PXJQdDt2YXIgcFB0PWZ1bmN0aW9uIGZQdCh0LGUsbixpKXt2YXIgcj0hbjtufHwobj17fSk7Zm9yKHZhciBvPS0xLGE9ZS5sZW5ndGg7KytvPGE7KXt2YXIgcz1lW29dLGw9aT9pKG5bc10sdFtzXSxzLG4sdCk6dm9pZCAwO3ZvaWQgMD09PWwmJihsPXRbc10pLHI/ZFB0KG4scyxsKTpoUHQobixzLGwpfXJldHVybiBufTt2YXIgbVB0PWZ1bmN0aW9uIGdQdCh0LGUpe2Zvcih2YXIgbj0tMSxpPUFycmF5KHQpOysrbjx0OylpW25dPWUobik7cmV0dXJuIGl9O3ZhciBfUHQ9ZnVuY3Rpb24geVB0KHQpe3JldHVybiBudWxsIT10JiYib2JqZWN0Ij09dHlwZW9mIHR9LHZQdD1ra3QsYlB0PV9QdDt2YXIgeFB0PWZ1bmN0aW9uIHdQdCh0KXtyZXR1cm4gYlB0KHQpJiYiW29iamVjdCBBcmd1bWVudHNdIj09dlB0KHQpfSxTUHQ9X1B0LE1QdD1PYmplY3QucHJvdG90eXBlLEVQdD1NUHQuaGFzT3duUHJvcGVydHksVFB0PU1QdC5wcm9wZXJ0eUlzRW51bWVyYWJsZSxDUHQ9eFB0KChmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KSgpKT94UHQ6ZnVuY3Rpb24odCl7cmV0dXJuIFNQdCh0KSYmRVB0LmNhbGwodCwiY2FsbGVlIikmJiFUUHQuY2FsbCh0LCJjYWxsZWUiKX0sQVB0PUFycmF5LmlzQXJyYXksa1B0PXtleHBvcnRzOnt9fTt2YXIgTFB0PWZ1bmN0aW9uIFBQdCgpe3JldHVybiExfTshKGZ1bmN0aW9uKHQsZSl7dmFyIG49ZSYmIWUubm9kZVR5cGUmJmUsaT1uJiZ0JiYhdC5ub2RlVHlwZSYmdCxyPWkmJmkuZXhwb3J0cz09PW4/X2t0LkJ1ZmZlcjp2b2lkIDA7dC5leHBvcnRzPShyP3IuaXNCdWZmZXI6dm9pZCAwKXx8TFB0fSkoa1B0LGtQdC5leHBvcnRzKTt2YXIgTlB0PS9eKD86MHxbMS05XVxkKikkLzt2YXIgSVB0PWZ1bmN0aW9uIFJQdCh0LGUpe3ZhciBuPXR5cGVvZiB0O3JldHVybiEhKGU9bnVsbD09ZT85MDA3MTk5MjU0NzQwOTkxOmUpJiYoIm51bWJlciI9PW58fCJzeW1ib2wiIT1uJiZOUHQudGVzdCh0KSkmJnQ+LTEmJnQlMT09MCYmdDxlfTt2YXIgT1B0PWZ1bmN0aW9uIHpQdCh0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJnQ+LTEmJnQlMT09MCYmdDw9OTAwNzE5OTI1NDc0MDk5MX0sRFB0PWtrdCxCUHQ9T1B0LEhQdD1fUHQsRlB0PXt9O0ZQdFsiW29iamVjdCBGbG9hdDMyQXJyYXldIl09RlB0WyJbb2JqZWN0IEZsb2F0NjRBcnJheV0iXT1GUHRbIltvYmplY3QgSW50OEFycmF5XSJdPUZQdFsiW29iamVjdCBJbnQxNkFycmF5XSJdPUZQdFsiW29iamVjdCBJbnQzMkFycmF5XSJdPUZQdFsiW29iamVjdCBVaW50OEFycmF5XSJdPUZQdFsiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iXT1GUHRbIltvYmplY3QgVWludDE2QXJyYXldIl09RlB0WyJbb2JqZWN0IFVpbnQzMkFycmF5XSJdPSEwLEZQdFsiW29iamVjdCBBcmd1bWVudHNdIl09RlB0WyJbb2JqZWN0IEFycmF5XSJdPUZQdFsiW29iamVjdCBBcnJheUJ1ZmZlcl0iXT1GUHRbIltvYmplY3QgQm9vbGVhbl0iXT1GUHRbIltvYmplY3QgRGF0YVZpZXddIl09RlB0WyJbb2JqZWN0IERhdGVdIl09RlB0WyJbb2JqZWN0IEVycm9yXSJdPUZQdFsiW29iamVjdCBGdW5jdGlvbl0iXT1GUHRbIltvYmplY3QgTWFwXSJdPUZQdFsiW29iamVjdCBOdW1iZXJdIl09RlB0WyJbb2JqZWN0IE9iamVjdF0iXT1GUHRbIltvYmplY3QgUmVnRXhwXSJdPUZQdFsiW29iamVjdCBTZXRdIl09RlB0WyJbb2JqZWN0IFN0cmluZ10iXT1GUHRbIltvYmplY3QgV2Vha01hcF0iXT0hMTt2YXIgVlB0PWZ1bmN0aW9uIFVQdCh0KXtyZXR1cm4gSFB0KHQpJiZCUHQodC5sZW5ndGgpJiYhIUZQdFtEUHQodCldfTt2YXIgalB0PWZ1bmN0aW9uIEdQdCh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSl9fSxXUHQ9e2V4cG9ydHM6e319OyEoZnVuY3Rpb24odCxlKXt2YXIgbj1lJiYhZS5ub2RlVHlwZSYmZSxpPW4mJnQmJiF0Lm5vZGVUeXBlJiZ0LHI9aSYmaS5leHBvcnRzPT09biYmbWt0LnByb2Nlc3Msbz0oZnVuY3Rpb24oKXt0cnl7dmFyIHQ9aSYmaS5yZXF1aXJlJiZpLnJlcXVpcmUoInV0aWwiKS50eXBlcztyZXR1cm4gdHx8ciYmci5iaW5kaW5nJiZyLmJpbmRpbmcoInV0aWwiKX1jYXRjaCh0KXt9fSkoKTt0LmV4cG9ydHM9b30pKFdQdCxXUHQuZXhwb3J0cyk7dmFyIHFQdD1WUHQsWVB0PVdQdC5leHBvcnRzLFhQdD1ZUHQmJllQdC5pc1R5cGVkQXJyYXksJFB0PVhQdD9qUHQoWFB0KTpxUHQsS1B0PW1QdCxaUHQ9Q1B0LEpQdD1BUHQsUVB0PWtQdC5leHBvcnRzLHROdD1JUHQsZU50PSRQdCxuTnQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgaU50PWZ1bmN0aW9uIHJOdCh0LGUpe3ZhciBuPUpQdCh0KSxpPSFuJiZaUHQodCkscj0hbiYmIWkmJlFQdCh0KSxvPSFuJiYhaSYmIXImJmVOdCh0KSxhPW58fGl8fHJ8fG8scz1hP0tQdCh0Lmxlbmd0aCxTdHJpbmcpOltdLGw9cy5sZW5ndGg7Zm9yKHZhciBjIGluIHQpIWUmJiFuTnQuY2FsbCh0LGMpfHxhJiYoImxlbmd0aCI9PWN8fHImJigib2Zmc2V0Ij09Y3x8InBhcmVudCI9PWMpfHxvJiYoImJ1ZmZlciI9PWN8fCJieXRlTGVuZ3RoIj09Y3x8ImJ5dGVPZmZzZXQiPT1jKXx8dE50KGMsbCkpfHxzLnB1c2goYyk7cmV0dXJuIHN9LG9OdD1PYmplY3QucHJvdG90eXBlO3ZhciBhTnQ9ZnVuY3Rpb24gc050KHQpe3ZhciBlPXQmJnQuY29uc3RydWN0b3I7cmV0dXJuIHQ9PT0oImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUucHJvdG90eXBlfHxvTnQpfTt2YXIgbE50PWZ1bmN0aW9uIGNOdCh0LGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdChlKG4pKX19LHVOdD1sTnQoT2JqZWN0LmtleXMsT2JqZWN0KSxoTnQ9YU50LGROdD11TnQscE50PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIGZOdD1mdW5jdGlvbiBtTnQodCl7aWYoIWhOdCh0KSlyZXR1cm4gZE50KHQpO3ZhciBlPVtdO2Zvcih2YXIgbiBpbiBPYmplY3QodCkpcE50LmNhbGwodCxuKSYmImNvbnN0cnVjdG9yIiE9biYmZS5wdXNoKG4pO3JldHVybiBlfSxnTnQ9emt0LF9OdD1PUHQ7dmFyIHlOdD1mdW5jdGlvbiB2TnQodCl7cmV0dXJuIG51bGwhPXQmJl9OdCh0Lmxlbmd0aCkmJiFnTnQodCl9LGJOdD1pTnQseE50PWZOdCx3TnQ9eU50O3ZhciBTTnQ9ZnVuY3Rpb24gTU50KHQpe3JldHVybiB3TnQodCk/Yk50KHQpOnhOdCh0KX0sRU50PXBQdCxUTnQ9U050O3ZhciBDTnQ9ZnVuY3Rpb24gQU50KHQsZSl7cmV0dXJuIHQmJkVOdChlLFROdChlKSx0KX07dmFyIGtOdD1Qa3QsTE50PWFOdCxQTnQ9ZnVuY3Rpb24gTk50KHQpe3ZhciBlPVtdO2lmKG51bGwhPXQpZm9yKHZhciBuIGluIE9iamVjdCh0KSllLnB1c2gobik7cmV0dXJuIGV9LElOdD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBSTnQ9aU50LE9OdD1mdW5jdGlvbiB6TnQodCl7aWYoIWtOdCh0KSlyZXR1cm4gUE50KHQpO3ZhciBlPUxOdCh0KSxuPVtdO2Zvcih2YXIgaSBpbiB0KSgiY29uc3RydWN0b3IiIT1pfHwhZSYmSU50LmNhbGwodCxpKSkmJm4ucHVzaChpKTtyZXR1cm4gbn0sRE50PXlOdDt2YXIgQk50PWZ1bmN0aW9uIEhOdCh0KXtyZXR1cm4gRE50KHQpP1JOdCh0LCEwKTpPTnQodCl9LEZOdD1wUHQsVk50PUJOdDt2YXIgVU50PWZ1bmN0aW9uIGpOdCh0LGUpe3JldHVybiB0JiZGTnQoZSxWTnQoZSksdCl9LEdOdD17ZXhwb3J0czp7fX07IShmdW5jdGlvbih0LGUpe3ZhciBuPWUmJiFlLm5vZGVUeXBlJiZlLGk9biYmdCYmIXQubm9kZVR5cGUmJnQscj1pJiZpLmV4cG9ydHM9PT1uP19rdC5CdWZmZXI6dm9pZCAwLG89cj9yLmFsbG9jVW5zYWZlOnZvaWQgMDt0LmV4cG9ydHM9ZnVuY3Rpb24gYSh0LGUpe2lmKGUpcmV0dXJuIHQuc2xpY2UoKTt2YXIgbj10Lmxlbmd0aCxpPW8/byhuKTpuZXcgdC5jb25zdHJ1Y3RvcihuKTtyZXR1cm4gdC5jb3B5KGkpLGl9fSkoR050LEdOdC5leHBvcnRzKTt2YXIgV050PWZ1bmN0aW9uIHFOdCh0LGUpe3ZhciBuPS0xLGk9dC5sZW5ndGg7Zm9yKGV8fChlPUFycmF5KGkpKTsrK248aTspZVtuXT10W25dO3JldHVybiBlfTt2YXIgWU50PWZ1bmN0aW9uIFhOdCh0LGUpe2Zvcih2YXIgbj0tMSxpPW51bGw9PXQ/MDp0Lmxlbmd0aCxyPTAsbz1bXTsrK248aTspe3ZhciBhPXRbbl07ZShhLG4sdCkmJihvW3IrK109YSl9cmV0dXJuIG99O3ZhciAkTnQ9ZnVuY3Rpb24gS050KCl7cmV0dXJuW119LFpOdD1ZTnQsSk50PU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUsUU50PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMsdEl0PVFOdD9mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9bXToodD1PYmplY3QodCksWk50KFFOdCh0KSwoZnVuY3Rpb24oZSl7cmV0dXJuIEpOdC5jYWxsKHQsZSl9KSkpfTokTnQsZUl0PXBQdCxuSXQ9dEl0O3ZhciBpSXQ9ZnVuY3Rpb24gckl0KHQsZSl7cmV0dXJuIGVJdCh0LG5JdCh0KSxlKX07dmFyIG9JdD1mdW5jdGlvbiBhSXQodCxlKXtmb3IodmFyIG49LTEsaT1lLmxlbmd0aCxyPXQubGVuZ3RoOysrbjxpOyl0W3Irbl09ZVtuXTtyZXR1cm4gdH0sc0l0PWxOdChPYmplY3QuZ2V0UHJvdG90eXBlT2YsT2JqZWN0KSxsSXQ9b0l0LGNJdD1zSXQsdUl0PXRJdCxoSXQ9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz9mdW5jdGlvbih0KXtmb3IodmFyIGU9W107dDspbEl0KGUsdUl0KHQpKSx0PWNJdCh0KTtyZXR1cm4gZX06JE50LGRJdD1wUHQscEl0PWhJdDt2YXIgZkl0PWZ1bmN0aW9uIG1JdCh0LGUpe3JldHVybiBkSXQodCxwSXQodCksZSl9LGdJdD1vSXQsX0l0PUFQdDt2YXIgeUl0PWZ1bmN0aW9uIHZJdCh0LGUsbil7dmFyIGk9ZSh0KTtyZXR1cm4gX0l0KHQpP2k6Z0l0KGksbih0KSl9LGJJdD15SXQseEl0PXRJdCx3SXQ9U050O3ZhciBTSXQ9ZnVuY3Rpb24gTUl0KHQpe3JldHVybiBiSXQodCx3SXQseEl0KX0sRUl0PXlJdCxUSXQ9aEl0LENJdD1CTnQ7dmFyIEFJdD1mdW5jdGlvbiBrSXQodCl7cmV0dXJuIEVJdCh0LENJdCxUSXQpfSxMSXQ9dEx0KF9rdCwiRGF0YVZpZXciKSxQSXQ9dEx0KF9rdCwiUHJvbWlzZSIpLE5JdD10THQoX2t0LCJTZXQiKSxJSXQ9TEl0LFJJdD1uTHQsT0l0PVBJdCx6SXQ9Tkl0LERJdD10THQoX2t0LCJXZWFrTWFwIiksQkl0PWtrdCxISXQ9Vmt0LEZJdD0iW29iamVjdCBNYXBdIixWSXQ9IltvYmplY3QgUHJvbWlzZV0iLFVJdD0iW29iamVjdCBTZXRdIixqSXQ9IltvYmplY3QgV2Vha01hcF0iLEdJdD0iW29iamVjdCBEYXRhVmlld10iLFdJdD1ISXQoSUl0KSxxSXQ9SEl0KFJJdCksWUl0PUhJdChPSXQpLFhJdD1ISXQoekl0KSwkSXQ9SEl0KERJdCksS0l0PUJJdDsoSUl0JiZLSXQobmV3IElJdChuZXcgQXJyYXlCdWZmZXIoMSkpKSE9R0l0fHxSSXQmJktJdChuZXcgUkl0KSE9Rkl0fHxPSXQmJktJdChPSXQucmVzb2x2ZSgpKSE9Vkl0fHx6SXQmJktJdChuZXcgekl0KSE9VUl0fHxESXQmJktJdChuZXcgREl0KSE9akl0KSYmKEtJdD1mdW5jdGlvbih0KXt2YXIgZT1CSXQodCksbj0iW29iamVjdCBPYmplY3RdIj09ZT90LmNvbnN0cnVjdG9yOnZvaWQgMCxpPW4/SEl0KG4pOiIiO2lmKGkpc3dpdGNoKGkpe2Nhc2UgV0l0OnJldHVybiBHSXQ7Y2FzZSBxSXQ6cmV0dXJuIEZJdDtjYXNlIFlJdDpyZXR1cm4gVkl0O2Nhc2UgWEl0OnJldHVybiBVSXQ7Y2FzZSAkSXQ6cmV0dXJuIGpJdH1yZXR1cm4gZX0pO3ZhciBaSXQ9S0l0LEpJdD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBRSXQ9ZnVuY3Rpb24gdFJ0KHQpe3ZhciBlPXQubGVuZ3RoLG49bmV3IHQuY29uc3RydWN0b3IoZSk7cmV0dXJuIGUmJiJzdHJpbmciPT10eXBlb2YgdFswXSYmSkl0LmNhbGwodCwiaW5kZXgiKSYmKG4uaW5kZXg9dC5pbmRleCxuLmlucHV0PXQuaW5wdXQpLG59LGVSdD1fa3QuVWludDhBcnJheSxuUnQ9ZVJ0O3ZhciBpUnQ9ZnVuY3Rpb24gclJ0KHQpe3ZhciBlPW5ldyB0LmNvbnN0cnVjdG9yKHQuYnl0ZUxlbmd0aCk7cmV0dXJuIG5ldyBuUnQoZSkuc2V0KG5ldyBuUnQodCkpLGV9LG9SdD1pUnQ7dmFyIGFSdD0vXHcqJC87dmFyIHNSdD15a3Q/eWt0LnByb3RvdHlwZTp2b2lkIDAsbFJ0PXNSdD9zUnQudmFsdWVPZjp2b2lkIDA7dmFyIGNSdD1pUnQ7dmFyIHVSdD1mdW5jdGlvbiBoUnQodCxlKXt2YXIgbj1lP2NSdCh0LmJ1ZmZlcik6dC5idWZmZXI7cmV0dXJuIG5ldyB0LmNvbnN0cnVjdG9yKG4sdC5ieXRlT2Zmc2V0LHQubGVuZ3RoKX0sZFJ0PWlSdCxwUnQ9ZnVuY3Rpb24gZlJ0KHQsZSl7dmFyIG49ZT9vUnQodC5idWZmZXIpOnQuYnVmZmVyO3JldHVybiBuZXcgdC5jb25zdHJ1Y3RvcihuLHQuYnl0ZU9mZnNldCx0LmJ5dGVMZW5ndGgpfSxtUnQ9ZnVuY3Rpb24gZ1J0KHQpe3ZhciBlPW5ldyB0LmNvbnN0cnVjdG9yKHQuc291cmNlLGFSdC5leGVjKHQpKTtyZXR1cm4gZS5sYXN0SW5kZXg9dC5sYXN0SW5kZXgsZX0sX1J0PWZ1bmN0aW9uIHlSdCh0KXtyZXR1cm4gbFJ0P09iamVjdChsUnQuY2FsbCh0KSk6e319LHZSdD11UnQ7dmFyIGJSdD1mdW5jdGlvbiB4UnQodCxlLG4pe3ZhciBpPXQuY29uc3RydWN0b3I7c3dpdGNoKGUpe2Nhc2UiW29iamVjdCBBcnJheUJ1ZmZlcl0iOnJldHVybiBkUnQodCk7Y2FzZSJbb2JqZWN0IEJvb2xlYW5dIjpjYXNlIltvYmplY3QgRGF0ZV0iOnJldHVybiBuZXcgaSgrdCk7Y2FzZSJbb2JqZWN0IERhdGFWaWV3XSI6cmV0dXJuIHBSdCh0LG4pO2Nhc2UiW29iamVjdCBGbG9hdDMyQXJyYXldIjpjYXNlIltvYmplY3QgRmxvYXQ2NEFycmF5XSI6Y2FzZSJbb2JqZWN0IEludDhBcnJheV0iOmNhc2UiW29iamVjdCBJbnQxNkFycmF5XSI6Y2FzZSJbb2JqZWN0IEludDMyQXJyYXldIjpjYXNlIltvYmplY3QgVWludDhBcnJheV0iOmNhc2UiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iOmNhc2UiW29iamVjdCBVaW50MTZBcnJheV0iOmNhc2UiW29iamVjdCBVaW50MzJBcnJheV0iOnJldHVybiB2UnQodCxuKTtjYXNlIltvYmplY3QgTWFwXSI6cmV0dXJuIG5ldyBpO2Nhc2UiW29iamVjdCBOdW1iZXJdIjpjYXNlIltvYmplY3QgU3RyaW5nXSI6cmV0dXJuIG5ldyBpKHQpO2Nhc2UiW29iamVjdCBSZWdFeHBdIjpyZXR1cm4gbVJ0KHQpO2Nhc2UiW29iamVjdCBTZXRdIjpyZXR1cm4gbmV3IGk7Y2FzZSJbb2JqZWN0IFN5bWJvbF0iOnJldHVybiBfUnQodCl9fSx3UnQ9UGt0LFNSdD1PYmplY3QuY3JlYXRlLE1SdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiBmdW5jdGlvbihlKXtpZighd1J0KGUpKXJldHVybnt9O2lmKFNSdClyZXR1cm4gU1J0KGUpO3QucHJvdG90eXBlPWU7dmFyIG49bmV3IHQ7cmV0dXJuIHQucHJvdG90eXBlPXZvaWQgMCxufX0pKCksRVJ0PU1SdCxUUnQ9c0l0LENSdD1hTnQ7dmFyIEFSdD1mdW5jdGlvbiBrUnQodCl7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHQuY29uc3RydWN0b3J8fENSdCh0KT97fTpFUnQoVFJ0KHQpKX0sTFJ0PVpJdCxQUnQ9X1B0O3ZhciBOUnQ9ZnVuY3Rpb24gSVJ0KHQpe3JldHVybiBQUnQodCkmJiJbb2JqZWN0IE1hcF0iPT1MUnQodCl9LFJSdD1XUHQuZXhwb3J0cyxPUnQ9UlJ0JiZSUnQuaXNNYXAselJ0PU9SdD9qUHQoT1J0KTpOUnQsRFJ0PVpJdCxCUnQ9X1B0O3ZhciBIUnQ9ZnVuY3Rpb24gRlJ0KHQpe3JldHVybiBCUnQodCkmJiJbb2JqZWN0IFNldF0iPT1EUnQodCl9LFZSdD1XUHQuZXhwb3J0cyxVUnQ9VlJ0JiZWUnQuaXNTZXQsalJ0PVVSdD9qUHQoVVJ0KTpIUnQsR1J0PUpMdCxXUnQ9UUx0LHFSdD1jUHQsWVJ0PUNOdCxYUnQ9VU50LCRSdD1HTnQuZXhwb3J0cyxLUnQ9V050LFpSdD1pSXQsSlJ0PWZJdCxRUnQ9U0l0LHRPdD1BSXQsZU90PVpJdCxuT3Q9UUl0LGlPdD1iUnQsck90PUFSdCxvT3Q9QVB0LGFPdD1rUHQuZXhwb3J0cyxzT3Q9elJ0LGxPdD1Qa3QsY090PWpSdCx1T3Q9U050LGhPdD1CTnQsZE90PSJbb2JqZWN0IEFyZ3VtZW50c10iLHBPdD0iW29iamVjdCBGdW5jdGlvbl0iLGZPdD0iW29iamVjdCBPYmplY3RdIixtT3Q9e307bU90W2RPdF09bU90WyJbb2JqZWN0IEFycmF5XSJdPW1PdFsiW29iamVjdCBBcnJheUJ1ZmZlcl0iXT1tT3RbIltvYmplY3QgRGF0YVZpZXddIl09bU90WyJbb2JqZWN0IEJvb2xlYW5dIl09bU90WyJbb2JqZWN0IERhdGVdIl09bU90WyJbb2JqZWN0IEZsb2F0MzJBcnJheV0iXT1tT3RbIltvYmplY3QgRmxvYXQ2NEFycmF5XSJdPW1PdFsiW29iamVjdCBJbnQ4QXJyYXldIl09bU90WyJbb2JqZWN0IEludDE2QXJyYXldIl09bU90WyJbb2JqZWN0IEludDMyQXJyYXldIl09bU90WyJbb2JqZWN0IE1hcF0iXT1tT3RbIltvYmplY3QgTnVtYmVyXSJdPW1PdFtmT3RdPW1PdFsiW29iamVjdCBSZWdFeHBdIl09bU90WyJbb2JqZWN0IFNldF0iXT1tT3RbIltvYmplY3QgU3RyaW5nXSJdPW1PdFsiW29iamVjdCBTeW1ib2xdIl09bU90WyJbb2JqZWN0IFVpbnQ4QXJyYXldIl09bU90WyJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSJdPW1PdFsiW29iamVjdCBVaW50MTZBcnJheV0iXT1tT3RbIltvYmplY3QgVWludDMyQXJyYXldIl09ITAsbU90WyJbb2JqZWN0IEVycm9yXSJdPW1PdFtwT3RdPW1PdFsiW29iamVjdCBXZWFrTWFwXSJdPSExO3ZhciBnT3Q9ZnVuY3Rpb24gdChlLG4saSxyLG8sYSl7dmFyIHMsbD0xJm4sYz0yJm4sdT00Jm47aWYoaSYmKHM9bz9pKGUscixvLGEpOmkoZSkpLHZvaWQgMCE9PXMpcmV0dXJuIHM7aWYoIWxPdChlKSlyZXR1cm4gZTt2YXIgaD1vT3QoZSk7aWYoaCl7aWYocz1uT3QoZSksIWwpcmV0dXJuIEtSdChlLHMpfWVsc2V7dmFyIGQ9ZU90KGUpLHA9ZD09cE90fHwiW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iPT1kO2lmKGFPdChlKSlyZXR1cm4gJFJ0KGUsbCk7aWYoZD09Zk90fHxkPT1kT3R8fHAmJiFvKXtpZihzPWN8fHA/e306ck90KGUpLCFsKXJldHVybiBjP0pSdChlLFhSdChzLGUpKTpaUnQoZSxZUnQocyxlKSl9ZWxzZXtpZighbU90W2RdKXJldHVybiBvP2U6e307cz1pT3QoZSxkLGwpfX1hfHwoYT1uZXcgR1J0KTt2YXIgZj1hLmdldChlKTtpZihmKXJldHVybiBmO2Euc2V0KGUscyksY090KGUpP2UuZm9yRWFjaCgoZnVuY3Rpb24ocil7cy5hZGQodChyLG4saSxyLGUsYSkpfSkpOnNPdChlKSYmZS5mb3JFYWNoKChmdW5jdGlvbihyLG8pe3Muc2V0KG8sdChyLG4saSxvLGUsYSkpfSkpO3ZhciBtPWg/dm9pZCAwOih1P2M/dE90OlFSdDpjP2hPdDp1T3QpKGUpO3JldHVybiBXUnQobXx8ZSwoZnVuY3Rpb24ocixvKXttJiYocj1lW289cl0pLHFSdChzLG8sdChyLG4saSxvLGUsYSkpfSkpLHN9LF9PdD1nT3Q7dmFyIHlPdD1mdW5jdGlvbiB2T3QodCl7cmV0dXJuIF9PdCh0LDQpfTt2YXIgYk90PWZ1bmN0aW9uIHhPdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19O3ZhciB3T3Q9KGZ1bmN0aW9uIFNPdCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLGkpe2Zvcih2YXIgcj0tMSxvPU9iamVjdChlKSxhPWkoZSkscz1hLmxlbmd0aDtzLS07KXt2YXIgbD1hW3Q/czorK3JdO2lmKCExPT09bihvW2xdLGwsbykpYnJlYWt9cmV0dXJuIGV9fSkoKSxNT3Q9d090LEVPdD1TTnQ7dmFyIFRPdD1mdW5jdGlvbiBDT3QodCxlKXtyZXR1cm4gdCYmTU90KHQsZSxFT3QpfSxBT3Q9eU50O3ZhciBrT3Q9KGZ1bmN0aW9uIExPdCh0LGUpe3JldHVybiBmdW5jdGlvbihuLGkpe2lmKG51bGw9PW4pcmV0dXJuIG47aWYoIUFPdChuKSlyZXR1cm4gdChuLGkpO2Zvcih2YXIgcj1uLmxlbmd0aCxvPWU/cjotMSxhPU9iamVjdChuKTsoZT9vLS06KytvPHIpJiYhMSE9PWkoYVtvXSxvLGEpOyk7cmV0dXJuIG59fSkoVE90KTt2YXIgUE90PWZ1bmN0aW9uIE5PdCh0KXtyZXR1cm4gdH0sSU90PVBPdDt2YXIgUk90PWZ1bmN0aW9uIE9PdCh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90OklPdH0sek90PVFMdCxET3Q9a090LEJPdD1ST3QsSE90PUFQdDt2YXIgRk90PWZ1bmN0aW9uIFZPdCh0LGUpe3JldHVybihIT3QodCk/ek90OkRPdCkodCxCT3QoZSkpfSxVT3Q9Rk90LGpPdD1rT3Q7dmFyIEdPdD1mdW5jdGlvbiBXT3QodCxlKXt2YXIgbj1bXTtyZXR1cm4gak90KHQsKGZ1bmN0aW9uKHQsaSxyKXtlKHQsaSxyKSYmbi5wdXNoKHQpfSkpLG59O3ZhciBxT3Q9Vkx0LFlPdD1mdW5jdGlvbiBYT3QodCl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHQpfTtmdW5jdGlvbiAkT3QodCl7dmFyIGU9LTEsbj1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuX19kYXRhX189bmV3IHFPdDsrK2U8bjspdGhpcy5hZGQodFtlXSl9JE90LnByb3RvdHlwZS5hZGQ9JE90LnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uIEtPdCh0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5zZXQodCwiX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyIpLHRoaXN9LCRPdC5wcm90b3R5cGUuaGFzPVlPdDt2YXIgWk90PSRPdDt2YXIgSk90PWZ1bmN0aW9uIFFPdCh0LGUpe3JldHVybiB0LmhhcyhlKX0sdHp0PVpPdCxlenQ9ZnVuY3Rpb24gbnp0KHQsZSl7Zm9yKHZhciBuPS0xLGk9bnVsbD09dD8wOnQubGVuZ3RoOysrbjxpOylpZihlKHRbbl0sbix0KSlyZXR1cm4hMDtyZXR1cm4hMX0saXp0PUpPdDt2YXIgcnp0PWZ1bmN0aW9uIG96dCh0LGUsbixpLHIsbyl7dmFyIGE9MSZuLHM9dC5sZW5ndGgsbD1lLmxlbmd0aDtpZihzIT1sJiYhKGEmJmw+cykpcmV0dXJuITE7dmFyIGM9by5nZXQodCksdT1vLmdldChlKTtpZihjJiZ1KXJldHVybiBjPT1lJiZ1PT10O3ZhciBoPS0xLGQ9ITAscD0yJm4/bmV3IHR6dDp2b2lkIDA7Zm9yKG8uc2V0KHQsZSksby5zZXQoZSx0KTsrK2g8czspe3ZhciBmPXRbaF0sbT1lW2hdO2lmKGkpdmFyIGc9YT9pKG0sZixoLGUsdCxvKTppKGYsbSxoLHQsZSxvKTtpZih2b2lkIDAhPT1nKXtpZihnKWNvbnRpbnVlO2Q9ITE7YnJlYWt9aWYocCl7aWYoIWV6dChlLChmdW5jdGlvbih0LGUpe2lmKCFpenQocCxlKSYmKGY9PT10fHxyKGYsdCxuLGksbykpKXJldHVybiBwLnB1c2goZSl9KSkpe2Q9ITE7YnJlYWt9fWVsc2UgaWYoZiE9PW0mJiFyKGYsbSxuLGksbykpe2Q9ITE7YnJlYWt9fXJldHVybiBvLmRlbGV0ZSh0KSxvLmRlbGV0ZShlKSxkfTt2YXIgYXp0PWZ1bmN0aW9uIHN6dCh0KXt2YXIgZT0tMSxuPUFycmF5KHQuc2l6ZSk7cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7blsrK2VdPXR9KSksbn0sbHp0PWVSdCxjenQ9SEF0LHV6dD1yenQsaHp0PWZ1bmN0aW9uIGR6dCh0KXt2YXIgZT0tMSxuPUFycmF5KHQuc2l6ZSk7cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCxpKXtuWysrZV09W2ksdF19KSksbn0scHp0PWF6dCxmenQ9eWt0P3lrdC5wcm90b3R5cGU6dm9pZCAwLG16dD1menQ/Znp0LnZhbHVlT2Y6dm9pZCAwO3ZhciBnenQ9U0l0LF96dD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciB5enQ9Skx0LHZ6dD1yenQsYnp0PWZ1bmN0aW9uIHh6dCh0LGUsbixpLHIsbyxhKXtzd2l0Y2gobil7Y2FzZSJbb2JqZWN0IERhdGFWaWV3XSI6aWYodC5ieXRlTGVuZ3RoIT1lLmJ5dGVMZW5ndGh8fHQuYnl0ZU9mZnNldCE9ZS5ieXRlT2Zmc2V0KXJldHVybiExO3Q9dC5idWZmZXIsZT1lLmJ1ZmZlcjtjYXNlIltvYmplY3QgQXJyYXlCdWZmZXJdIjpyZXR1cm4hKHQuYnl0ZUxlbmd0aCE9ZS5ieXRlTGVuZ3RofHwhbyhuZXcgbHp0KHQpLG5ldyBsenQoZSkpKTtjYXNlIltvYmplY3QgQm9vbGVhbl0iOmNhc2UiW29iamVjdCBEYXRlXSI6Y2FzZSJbb2JqZWN0IE51bWJlcl0iOnJldHVybiBjenQoK3QsK2UpO2Nhc2UiW29iamVjdCBFcnJvcl0iOnJldHVybiB0Lm5hbWU9PWUubmFtZSYmdC5tZXNzYWdlPT1lLm1lc3NhZ2U7Y2FzZSJbb2JqZWN0IFJlZ0V4cF0iOmNhc2UiW29iamVjdCBTdHJpbmddIjpyZXR1cm4gdD09ZSsiIjtjYXNlIltvYmplY3QgTWFwXSI6dmFyIHM9aHp0O2Nhc2UiW29iamVjdCBTZXRdIjppZihzfHwocz1wenQpLHQuc2l6ZSE9ZS5zaXplJiYhKDEmaSkpcmV0dXJuITE7dmFyIGw9YS5nZXQodCk7aWYobClyZXR1cm4gbD09ZTtpfD0yLGEuc2V0KHQsZSk7dmFyIGM9dXp0KHModCkscyhlKSxpLHIsbyxhKTtyZXR1cm4gYS5kZWxldGUodCksYztjYXNlIltvYmplY3QgU3ltYm9sXSI6aWYobXp0KXJldHVybiBtenQuY2FsbCh0KT09bXp0LmNhbGwoZSl9cmV0dXJuITF9LHd6dD1mdW5jdGlvbiBTenQodCxlLG4saSxyLG8pe3ZhciBhPTEmbixzPWd6dCh0KSxsPXMubGVuZ3RoO2lmKGwhPWd6dChlKS5sZW5ndGgmJiFhKXJldHVybiExO2Zvcih2YXIgYz1sO2MtLTspe3ZhciB1PXNbY107aWYoIShhP3UgaW4gZTpfenQuY2FsbChlLHUpKSlyZXR1cm4hMX12YXIgaD1vLmdldCh0KSxkPW8uZ2V0KGUpO2lmKGgmJmQpcmV0dXJuIGg9PWUmJmQ9PXQ7dmFyIHA9ITA7by5zZXQodCxlKSxvLnNldChlLHQpO2Zvcih2YXIgZj1hOysrYzxsOyl7dmFyIG09dFt1PXNbY11dLGc9ZVt1XTtpZihpKXZhciBfPWE/aShnLG0sdSxlLHQsbyk6aShtLGcsdSx0LGUsbyk7aWYoISh2b2lkIDA9PT1fP209PT1nfHxyKG0sZyxuLGksbyk6Xykpe3A9ITE7YnJlYWt9Znx8KGY9ImNvbnN0cnVjdG9yIj09dSl9aWYocCYmIWYpe3ZhciB5PXQuY29uc3RydWN0b3Isdj1lLmNvbnN0cnVjdG9yO3k9PXZ8fCEoImNvbnN0cnVjdG9yImluIHQpfHwhKCJjb25zdHJ1Y3RvciJpbiBlKXx8ImZ1bmN0aW9uIj09dHlwZW9mIHkmJnkgaW5zdGFuY2VvZiB5JiYiZnVuY3Rpb24iPT10eXBlb2YgdiYmdiBpbnN0YW5jZW9mIHZ8fChwPSExKX1yZXR1cm4gby5kZWxldGUodCksby5kZWxldGUoZSkscH0sTXp0PVpJdCxFenQ9QVB0LFR6dD1rUHQuZXhwb3J0cyxDenQ9JFB0LEF6dD0iW29iamVjdCBBcmd1bWVudHNdIixrenQ9IltvYmplY3QgQXJyYXldIixMenQ9IltvYmplY3QgT2JqZWN0XSIsUHp0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIE56dD1mdW5jdGlvbiBJenQodCxlLG4saSxyLG8pe3ZhciBhPUV6dCh0KSxzPUV6dChlKSxsPWE/a3p0Ok16dCh0KSxjPXM/a3p0Ok16dChlKSx1PShsPWw9PUF6dD9MenQ6bCk9PUx6dCxoPShjPWM9PUF6dD9MenQ6Yyk9PUx6dCxkPWw9PWM7aWYoZCYmVHp0KHQpKXtpZighVHp0KGUpKXJldHVybiExO2E9ITAsdT0hMX1pZihkJiYhdSlyZXR1cm4gb3x8KG89bmV3IHl6dCksYXx8Q3p0KHQpP3Z6dCh0LGUsbixpLHIsbyk6Ynp0KHQsZSxsLG4saSxyLG8pO2lmKCEoMSZuKSl7dmFyIHA9dSYmUHp0LmNhbGwodCwiX193cmFwcGVkX18iKSxmPWgmJlB6dC5jYWxsKGUsIl9fd3JhcHBlZF9fIik7aWYocHx8Zil7dmFyIG09cD90LnZhbHVlKCk6dCxnPWY/ZS52YWx1ZSgpOmU7cmV0dXJuIG98fChvPW5ldyB5enQpLHIobSxnLG4saSxvKX19cmV0dXJuISFkJiYob3x8KG89bmV3IHl6dCksd3p0KHQsZSxuLGkscixvKSl9LFJ6dD1fUHQ7dmFyIE96dD1mdW5jdGlvbiB0KGUsbixpLHIsbyl7cmV0dXJuIGU9PT1ufHwobnVsbD09ZXx8bnVsbD09bnx8IVJ6dChlKSYmIVJ6dChuKT9lIT1lJiZuIT1uOk56dChlLG4saSxyLHQsbykpfSx6enQ9Skx0LER6dD1PenQ7dmFyIEJ6dD1Qa3Q7dmFyIEh6dD1mdW5jdGlvbiBGenQodCl7cmV0dXJuIHQ9PXQmJiFCenQodCl9LFZ6dD1IenQsVXp0PVNOdDt2YXIganp0PWZ1bmN0aW9uIEd6dCh0LGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gbnVsbCE9biYmKG5bdF09PT1lJiYodm9pZCAwIT09ZXx8dCBpbiBPYmplY3QobikpKX19LFd6dD1mdW5jdGlvbiBxenQodCxlLG4saSl7dmFyIHI9bi5sZW5ndGgsbz1yLGE9IWk7aWYobnVsbD09dClyZXR1cm4hbztmb3IodD1PYmplY3QodCk7ci0tOyl7dmFyIHM9bltyXTtpZihhJiZzWzJdP3NbMV0hPT10W3NbMF1dOiEoc1swXWluIHQpKXJldHVybiExfWZvcig7KytyPG87KXt2YXIgbD0ocz1uW3JdKVswXSxjPXRbbF0sdT1zWzFdO2lmKGEmJnNbMl0pe2lmKHZvaWQgMD09PWMmJiEobCBpbiB0KSlyZXR1cm4hMX1lbHNle3ZhciBoPW5ldyB6enQ7aWYoaSl2YXIgZD1pKGMsdSxsLHQsZSxoKTtpZighKHZvaWQgMD09PWQ/RHp0KHUsYywzLGksaCk6ZCkpcmV0dXJuITF9fXJldHVybiEwfSxZenQ9ZnVuY3Rpb24gWHp0KHQpe2Zvcih2YXIgZT1VenQodCksbj1lLmxlbmd0aDtuLS07KXt2YXIgaT1lW25dLHI9dFtpXTtlW25dPVtpLHIsVnp0KHIpXX1yZXR1cm4gZX0sJHp0PWp6dDt2YXIgS3p0PWZ1bmN0aW9uIFp6dCh0KXt2YXIgZT1ZenQodCk7cmV0dXJuIDE9PWUubGVuZ3RoJiZlWzBdWzJdPyR6dChlWzBdWzBdLGVbMF1bMV0pOmZ1bmN0aW9uKG4pe3JldHVybiBuPT09dHx8V3p0KG4sdCxlKX19LEp6dD1ra3QsUXp0PV9QdDt2YXIgdER0PWZ1bmN0aW9uIGVEdCh0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR8fFF6dCh0KSYmIltvYmplY3QgU3ltYm9sXSI9PUp6dCh0KX0sbkR0PUFQdCxpRHQ9dER0LHJEdD0vXC58XFsoPzpbXltcXV0qfChbIiddKSg/Oig/IVwxKVteXFxdfFxcLikqP1wxKVxdLyxvRHQ9L15cdyokLzt2YXIgYUR0PWZ1bmN0aW9uIHNEdCh0LGUpe2lmKG5EdCh0KSlyZXR1cm4hMTt2YXIgbj10eXBlb2YgdDtyZXR1cm4hKCJudW1iZXIiIT1uJiYic3ltYm9sIiE9biYmImJvb2xlYW4iIT1uJiZudWxsIT10JiYhaUR0KHQpKXx8KG9EdC50ZXN0KHQpfHwhckR0LnRlc3QodCl8fG51bGwhPWUmJnQgaW4gT2JqZWN0KGUpKX0sbER0PVZMdDtmdW5jdGlvbiBjRHQodCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdHx8bnVsbCE9ZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBmdW5jdGlvbiIpO3ZhciBuPWZ1bmN0aW9uKCl7dmFyIGk9YXJndW1lbnRzLHI9ZT9lLmFwcGx5KHRoaXMsaSk6aVswXSxvPW4uY2FjaGU7aWYoby5oYXMocikpcmV0dXJuIG8uZ2V0KHIpO3ZhciBhPXQuYXBwbHkodGhpcyxpKTtyZXR1cm4gbi5jYWNoZT1vLnNldChyLGEpfHxvLGF9O3JldHVybiBuLmNhY2hlPW5ldyhjRHQuQ2FjaGV8fGxEdCksbn1jRHQuQ2FjaGU9bER0O3ZhciB1RHQ9Y0R0O3ZhciBoRHQ9L1teLltcXV0rfFxbKD86KC0/XGQrKD86XC5cZCspPyl8KFsiJ10pKCg/Oig/IVwyKVteXFxdfFxcLikqPylcMilcXXwoPz0oPzpcLnxcW1xdKSg/OlwufFxbXF18JCkpL2csZER0PS9cXChcXCk/L2cscER0PShmdW5jdGlvbiBmRHQodCl7dmFyIGU9dUR0KHQsKGZ1bmN0aW9uKHQpe3JldHVybiA1MDA9PT1uLnNpemUmJm4uY2xlYXIoKSx0fSkpLG49ZS5jYWNoZTtyZXR1cm4gZX0pKChmdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gNDY9PT10LmNoYXJDb2RlQXQoMCkmJmUucHVzaCgiIiksdC5yZXBsYWNlKGhEdCwoZnVuY3Rpb24odCxuLGkscil7ZS5wdXNoKGk/ci5yZXBsYWNlKGREdCwiJDEiKTpufHx0KX0pKSxlfSkpO3ZhciBtRHQ9ZnVuY3Rpb24gZ0R0KHQsZSl7Zm9yKHZhciBuPS0xLGk9bnVsbD09dD8wOnQubGVuZ3RoLHI9QXJyYXkoaSk7KytuPGk7KXJbbl09ZSh0W25dLG4sdCk7cmV0dXJuIHJ9LF9EdD1tRHQseUR0PUFQdCx2RHQ9dER0LGJEdD15a3Q/eWt0LnByb3RvdHlwZTp2b2lkIDAseER0PWJEdD9iRHQudG9TdHJpbmc6dm9pZCAwO3ZhciB3RHQ9ZnVuY3Rpb24gdChlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIGU7aWYoeUR0KGUpKXJldHVybiBfRHQoZSx0KSsiIjtpZih2RHQoZSkpcmV0dXJuIHhEdD94RHQuY2FsbChlKToiIjt2YXIgbj1lKyIiO3JldHVybiIwIj09biYmMS9lPT0tSW5maW5pdHk/Ii0wIjpufTt2YXIgU0R0PWZ1bmN0aW9uIE1EdCh0KXtyZXR1cm4gbnVsbD09dD8iIjp3RHQodCl9LEVEdD1BUHQsVER0PWFEdCxDRHQ9cER0LEFEdD1TRHQ7dmFyIGtEdD1mdW5jdGlvbiBMRHQodCxlKXtyZXR1cm4gRUR0KHQpP3Q6VER0KHQsZSk/W3RdOkNEdChBRHQodCkpfSxQRHQ9dER0O3ZhciBORHQ9ZnVuY3Rpb24gSUR0KHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdHx8UER0KHQpKXJldHVybiB0O3ZhciBlPXQrIiI7cmV0dXJuIjAiPT1lJiYxL3Q9PS1JbmZpbml0eT8iLTAiOmV9LFJEdD1rRHQsT0R0PU5EdDt2YXIgekR0PWZ1bmN0aW9uIEREdCh0LGUpe2Zvcih2YXIgbj0wLGk9KGU9UkR0KGUsdCkpLmxlbmd0aDtudWxsIT10JiZuPGk7KXQ9dFtPRHQoZVtuKytdKV07cmV0dXJuIG4mJm49PWk/dDp2b2lkIDB9LEJEdD16RHQ7dmFyIEhEdD1rRHQsRkR0PUNQdCxWRHQ9QVB0LFVEdD1JUHQsakR0PU9QdCxHRHQ9TkR0O3ZhciBXRHQ9ZnVuY3Rpb24gcUR0KHQsZSxuKXtmb3IodmFyIGk9LTEscj0oZT1IRHQoZSx0KSkubGVuZ3RoLG89ITE7KytpPHI7KXt2YXIgYT1HRHQoZVtpXSk7aWYoIShvPW51bGwhPXQmJm4odCxhKSkpYnJlYWs7dD10W2FdfXJldHVybiBvfHwrK2khPXI/bzohIShyPW51bGw9PXQ/MDp0Lmxlbmd0aCkmJmpEdChyKSYmVUR0KGEscikmJihWRHQodCl8fEZEdCh0KSl9LFlEdD1mdW5jdGlvbiBYRHQodCxlKXtyZXR1cm4gbnVsbCE9dCYmZSBpbiBPYmplY3QodCl9LCREdD1XRHQ7dmFyIEtEdD1mdW5jdGlvbiBaRHQodCxlKXtyZXR1cm4gbnVsbCE9dCYmJER0KHQsZSxZRHQpfSxKRHQ9T3p0LFFEdD1mdW5jdGlvbiB0QnQodCxlLG4pe3ZhciBpPW51bGw9PXQ/dm9pZCAwOkJEdCh0LGUpO3JldHVybiB2b2lkIDA9PT1pP246aX0sZUJ0PUtEdCxuQnQ9YUR0LGlCdD1IenQsckJ0PWp6dCxvQnQ9TkR0O3ZhciBhQnQ9ZnVuY3Rpb24gc0J0KHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZT92b2lkIDA6ZVt0XX19LGxCdD16RHQ7dmFyIGNCdD1hQnQsdUJ0PWZ1bmN0aW9uIGhCdCh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGxCdChlLHQpfX0sZEJ0PWFEdCxwQnQ9TkR0O3ZhciBmQnQ9S3p0LG1CdD1mdW5jdGlvbiBnQnQodCxlKXtyZXR1cm4gbkJ0KHQpJiZpQnQoZSk/ckJ0KG9CdCh0KSxlKTpmdW5jdGlvbihuKXt2YXIgaT1RRHQobix0KTtyZXR1cm4gdm9pZCAwPT09aSYmaT09PWU/ZUJ0KG4sdCk6SkR0KGUsaSwzKX19LF9CdD1QT3QseUJ0PUFQdCx2QnQ9ZnVuY3Rpb24gYkJ0KHQpe3JldHVybiBkQnQodCk/Y0J0KHBCdCh0KSk6dUJ0KHQpfTt2YXIgeEJ0PWZ1bmN0aW9uIHdCdCh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90Om51bGw9PXQ/X0J0OiJvYmplY3QiPT10eXBlb2YgdD95QnQodCk/bUJ0KHRbMF0sdFsxXSk6ZkJ0KHQpOnZCdCh0KX0sU0J0PVlOdCxNQnQ9R090LEVCdD14QnQsVEJ0PUFQdDt2YXIgQ0J0PWZ1bmN0aW9uIEFCdCh0LGUpe3JldHVybihUQnQodCk/U0J0Ok1CdCkodCxFQnQoZSkpfSxrQnQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgTEJ0PWZ1bmN0aW9uIFBCdCh0LGUpe3JldHVybiBudWxsIT10JiZrQnQuY2FsbCh0LGUpfSxOQnQ9V0R0O3ZhciBJQnQ9ZnVuY3Rpb24gUkJ0KHQsZSl7cmV0dXJuIG51bGwhPXQmJk5CdCh0LGUsTEJ0KX0sT0J0PWZOdCx6QnQ9Wkl0LERCdD1DUHQsQkJ0PUFQdCxIQnQ9eU50LEZCdD1rUHQuZXhwb3J0cyxWQnQ9YU50LFVCdD0kUHQsakJ0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIEdCdD1mdW5jdGlvbiBXQnQodCl7aWYobnVsbD09dClyZXR1cm4hMDtpZihIQnQodCkmJihCQnQodCl8fCJzdHJpbmciPT10eXBlb2YgdHx8ImZ1bmN0aW9uIj09dHlwZW9mIHQuc3BsaWNlfHxGQnQodCl8fFVCdCh0KXx8REJ0KHQpKSlyZXR1cm4hdC5sZW5ndGg7dmFyIGU9ekJ0KHQpO2lmKCJbb2JqZWN0IE1hcF0iPT1lfHwiW29iamVjdCBTZXRdIj09ZSlyZXR1cm4hdC5zaXplO2lmKFZCdCh0KSlyZXR1cm4hT0J0KHQpLmxlbmd0aDtmb3IodmFyIG4gaW4gdClpZihqQnQuY2FsbCh0LG4pKXJldHVybiExO3JldHVybiEwfTt2YXIgcUJ0PWZ1bmN0aW9uIFlCdCh0KXtyZXR1cm4gdm9pZCAwPT09dH0sWEJ0PWtPdCwkQnQ9eU50O3ZhciBLQnQ9ZnVuY3Rpb24gWkJ0KHQsZSl7dmFyIG49LTEsaT0kQnQodCk/QXJyYXkodC5sZW5ndGgpOltdO3JldHVybiBYQnQodCwoZnVuY3Rpb24odCxyLG8pe2lbKytuXT1lKHQscixvKX0pKSxpfSxKQnQ9bUR0LFFCdD14QnQsdEh0PUtCdCxlSHQ9QVB0O3ZhciBuSHQ9ZnVuY3Rpb24gaUh0KHQsZSl7cmV0dXJuKGVIdCh0KT9KQnQ6dEh0KSh0LFFCdChlKSl9O3ZhciBySHQ9ZnVuY3Rpb24gb0h0KHQsZSxuLGkpe3ZhciByPS0xLG89bnVsbD09dD8wOnQubGVuZ3RoO2ZvcihpJiZvJiYobj10Wysrcl0pOysrcjxvOyluPWUobix0W3JdLHIsdCk7cmV0dXJuIG59LGFIdD1rT3Qsc0h0PXhCdCxsSHQ9ZnVuY3Rpb24gY0h0KHQsZSxuLGkscil7cmV0dXJuIHIodCwoZnVuY3Rpb24odCxyLG8pe249aT8oaT0hMSx0KTplKG4sdCxyLG8pfSkpLG59LHVIdD1BUHQ7dmFyIGhIdD1mdW5jdGlvbiBkSHQodCxlLG4pe3ZhciBpPXVIdCh0KT9ySHQ6bEh0LHI9YXJndW1lbnRzLmxlbmd0aDwzO3JldHVybiBpKHQsc0h0KGUpLG4scixhSHQpfSxwSHQ9a2t0LGZIdD1BUHQsbUh0PV9QdDt2YXIgZ0h0PWZ1bmN0aW9uIF9IdCh0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHR8fCFmSHQodCkmJm1IdCh0KSYmIltvYmplY3QgU3RyaW5nXSI9PXBIdCh0KX0seUh0PWFCdCgibGVuZ3RoIiksdkh0PVJlZ0V4cCgiW1xcdTIwMGRcXHVkODAwLVxcdWRmZmZcXHUwMzAwLVxcdTAzNmZcXHVmZTIwLVxcdWZlMmZcXHUyMGQwLVxcdTIwZmZcXHVmZTBlXFx1ZmUwZl0iKTt2YXIgYkh0PWZ1bmN0aW9uIHhIdCh0KXtyZXR1cm4gdkh0LnRlc3QodCl9LHdIdD0iW1xcdWQ4MDAtXFx1ZGZmZl0iLFNIdD0iW1xcdTAzMDAtXFx1MDM2ZlxcdWZlMjAtXFx1ZmUyZlxcdTIwZDAtXFx1MjBmZl0iLE1IdD0iXFx1ZDgzY1tcXHVkZmZiLVxcdWRmZmZdIixFSHQ9IlteXFx1ZDgwMC1cXHVkZmZmXSIsVEh0PSIoPzpcXHVkODNjW1xcdWRkZTYtXFx1ZGRmZl0pezJ9IixDSHQ9IltcXHVkODAwLVxcdWRiZmZdW1xcdWRjMDAtXFx1ZGZmZl0iLEFIdD0iKD86IitTSHQrInwiK01IdCsiKSIrIj8iLGtIdD0iW1xcdWZlMGVcXHVmZTBmXT8iLExIdD1rSHQrQUh0KygiKD86XFx1MjAwZCg/OiIrW0VIdCxUSHQsQ0h0XS5qb2luKCJ8IikrIikiK2tIdCtBSHQrIikqIiksUEh0PSIoPzoiK1tFSHQrU0h0KyI/IixTSHQsVEh0LENIdCx3SHRdLmpvaW4oInwiKSsiKSIsTkh0PVJlZ0V4cChNSHQrIig/PSIrTUh0KyIpfCIrUEh0K0xIdCwiZyIpO3ZhciBJSHQ9eUh0LFJIdD1iSHQsT0h0PWZ1bmN0aW9uIHpIdCh0KXtmb3IodmFyIGU9Tkh0Lmxhc3RJbmRleD0wO05IdC50ZXN0KHQpOykrK2U7cmV0dXJuIGV9O3ZhciBESHQ9Zk50LEJIdD1aSXQsSEh0PXlOdCxGSHQ9Z0h0LFZIdD1mdW5jdGlvbiBVSHQodCl7cmV0dXJuIFJIdCh0KT9PSHQodCk6SUh0KHQpfTt2YXIgakh0PWZ1bmN0aW9uIEdIdCh0KXtpZihudWxsPT10KXJldHVybiAwO2lmKEhIdCh0KSlyZXR1cm4gRkh0KHQpP1ZIdCh0KTp0Lmxlbmd0aDt2YXIgZT1CSHQodCk7cmV0dXJuIltvYmplY3QgTWFwXSI9PWV8fCJbb2JqZWN0IFNldF0iPT1lP3Quc2l6ZTpESHQodCkubGVuZ3RofSxXSHQ9UUx0LHFIdD1NUnQsWUh0PVRPdCxYSHQ9eEJ0LCRIdD1zSXQsS0h0PUFQdCxaSHQ9a1B0LmV4cG9ydHMsSkh0PXprdCxRSHQ9UGt0LHRGdD0kUHQ7dmFyIGVGdD1mdW5jdGlvbiBuRnQodCxlLG4pe3ZhciBpPUtIdCh0KSxyPWl8fFpIdCh0KXx8dEZ0KHQpO2lmKGU9WEh0KGUpLG51bGw9PW4pe3ZhciBvPXQmJnQuY29uc3RydWN0b3I7bj1yP2k/bmV3IG86W106UUh0KHQpJiZKSHQobyk/cUh0KCRIdCh0KSk6e319cmV0dXJuKHI/V0h0OllIdCkodCwoZnVuY3Rpb24odCxpLHIpe3JldHVybiBlKG4sdCxpLHIpfSkpLG59LGlGdD1DUHQsckZ0PUFQdCxvRnQ9eWt0P3lrdC5pc0NvbmNhdFNwcmVhZGFibGU6dm9pZCAwO3ZhciBhRnQ9b0l0LHNGdD1mdW5jdGlvbiBsRnQodCl7cmV0dXJuIHJGdCh0KXx8aUZ0KHQpfHwhIShvRnQmJnQmJnRbb0Z0XSl9O3ZhciBjRnQ9ZnVuY3Rpb24gdChlLG4saSxyLG8pe3ZhciBhPS0xLHM9ZS5sZW5ndGg7Zm9yKGl8fChpPXNGdCksb3x8KG89W10pOysrYTxzOyl7dmFyIGw9ZVthXTtuPjAmJmkobCk/bj4xP3QobCxuLTEsaSxyLG8pOmFGdChvLGwpOnJ8fChvW28ubGVuZ3RoXT1sKX1yZXR1cm4gb307dmFyIHVGdD1mdW5jdGlvbiBoRnQodCxlLG4pe3N3aXRjaChuLmxlbmd0aCl7Y2FzZSAwOnJldHVybiB0LmNhbGwoZSk7Y2FzZSAxOnJldHVybiB0LmNhbGwoZSxuWzBdKTtjYXNlIDI6cmV0dXJuIHQuY2FsbChlLG5bMF0sblsxXSk7Y2FzZSAzOnJldHVybiB0LmNhbGwoZSxuWzBdLG5bMV0sblsyXSl9cmV0dXJuIHQuYXBwbHkoZSxuKX0sZEZ0PU1hdGgubWF4O3ZhciBwRnQ9ZnVuY3Rpb24gZkZ0KHQsZSxuKXtyZXR1cm4gZT1kRnQodm9pZCAwPT09ZT90Lmxlbmd0aC0xOmUsMCksZnVuY3Rpb24oKXtmb3IodmFyIGk9YXJndW1lbnRzLHI9LTEsbz1kRnQoaS5sZW5ndGgtZSwwKSxhPUFycmF5KG8pOysrcjxvOylhW3JdPWlbZStyXTtyPS0xO2Zvcih2YXIgcz1BcnJheShlKzEpOysrcjxlOylzW3JdPWlbcl07cmV0dXJuIHNbZV09bihhKSx1RnQodCx0aGlzLHMpfX0sbUZ0PWJPdCxnRnQ9blB0LF9GdD1EYXRlLm5vdzt2YXIgeUZ0PShmdW5jdGlvbiB2RnQodCl7dmFyIGU9MCxuPTA7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGk9X0Z0KCkscj0xNi0oaS1uKTtpZihuPWkscj4wKXtpZigrK2U+PTgwMClyZXR1cm4gYXJndW1lbnRzWzBdfWVsc2UgZT0wO3JldHVybiB0LmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfX0pKGdGdD9mdW5jdGlvbih0LGUpe3JldHVybiBnRnQodCwidG9TdHJpbmciLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMSx2YWx1ZTptRnQoZSksd3JpdGFibGU6ITB9KX06UE90KSxiRnQ9UE90LHhGdD1wRnQsd0Z0PXlGdDt2YXIgU0Z0PWZ1bmN0aW9uIE1GdCh0LGUpe3JldHVybiB3RnQoeEZ0KHQsZSxiRnQpLHQrIiIpfTt2YXIgRUZ0PWZ1bmN0aW9uIFRGdCh0LGUsbixpKXtmb3IodmFyIHI9dC5sZW5ndGgsbz1uKyhpPzE6LTEpO2k/by0tOisrbzxyOylpZihlKHRbb10sbyx0KSlyZXR1cm4gbztyZXR1cm4tMX07dmFyIENGdD1FRnQsQUZ0PWZ1bmN0aW9uIGtGdCh0KXtyZXR1cm4gdCE9dH0sTEZ0PWZ1bmN0aW9uIFBGdCh0LGUsbil7Zm9yKHZhciBpPW4tMSxyPXQubGVuZ3RoOysraTxyOylpZih0W2ldPT09ZSlyZXR1cm4gaTtyZXR1cm4tMX07dmFyIE5GdD1mdW5jdGlvbiBJRnQodCxlLG4pe3JldHVybiBlPT1lP0xGdCh0LGUsbik6Q0Z0KHQsQUZ0LG4pfTt2YXIgUkZ0PWZ1bmN0aW9uIE9GdCh0LGUpe3JldHVybiEhKG51bGw9PXQ/MDp0Lmxlbmd0aCkmJk5GdCh0LGUsMCk+LTF9O3ZhciB6RnQ9ZnVuY3Rpb24gREZ0KHQsZSxuKXtmb3IodmFyIGk9LTEscj1udWxsPT10PzA6dC5sZW5ndGg7KytpPHI7KWlmKG4oZSx0W2ldKSlyZXR1cm4hMDtyZXR1cm4hMX07dmFyIEJGdD1OSXQsSEZ0PWZ1bmN0aW9uIEZGdCgpe30sVkZ0PUJGdCYmMS9henQobmV3IEJGdChbLC0wXSkpWzFdPT0xLzA/ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBCRnQodCl9OkhGdCxVRnQ9Wk90LGpGdD1SRnQsR0Z0PXpGdCxXRnQ9Sk90LHFGdD1WRnQsWUZ0PWF6dDt2YXIgWEZ0PXlOdCwkRnQ9X1B0O3ZhciBLRnQ9ZnVuY3Rpb24gWkZ0KHQpe3JldHVybiAkRnQodCkmJlhGdCh0KX0sSkZ0PWNGdCxRRnQ9ZnVuY3Rpb24gdFZ0KHQsZSxuKXt2YXIgaT0tMSxyPWpGdCxvPXQubGVuZ3RoLGE9ITAscz1bXSxsPXM7aWYobilhPSExLHI9R0Z0O2Vsc2UgaWYobz49MjAwKXt2YXIgYz1lP251bGw6cUZ0KHQpO2lmKGMpcmV0dXJuIFlGdChjKTthPSExLHI9V0Z0LGw9bmV3IFVGdH1lbHNlIGw9ZT9bXTpzO3Q6Zm9yKDsrK2k8bzspe3ZhciB1PXRbaV0saD1lP2UodSk6dTtpZih1PW58fDAhPT11P3U6MCxhJiZoPT1oKXtmb3IodmFyIGQ9bC5sZW5ndGg7ZC0tOylpZihsW2RdPT09aCljb250aW51ZSB0O2UmJmwucHVzaChoKSxzLnB1c2godSl9ZWxzZSByKGwsaCxuKXx8KGwhPT1zJiZsLnB1c2goaCkscy5wdXNoKHUpKX1yZXR1cm4gc30sZVZ0PUtGdCxuVnQ9U0Z0KChmdW5jdGlvbih0KXtyZXR1cm4gUUZ0KEpGdCh0LDEsZVZ0LCEwKSl9KSksaVZ0PW1EdDt2YXIgclZ0PWZ1bmN0aW9uIG9WdCh0LGUpe3JldHVybiBpVnQoZSwoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KSl9LGFWdD1TTnQ7dmFyIHNWdCxsVnQ9ZnVuY3Rpb24gY1Z0KHQpe3JldHVybiBudWxsPT10P1tdOnJWdCh0LGFWdCh0KSl9O3RyeXtzVnQ9e2Nsb25lOnlPdCxjb25zdGFudDpiT3QsZWFjaDpVT3QsZmlsdGVyOkNCdCxoYXM6SUJ0LGlzQXJyYXk6QVB0LGlzRW1wdHk6R0J0LGlzRnVuY3Rpb246emt0LGlzVW5kZWZpbmVkOnFCdCxrZXlzOlNOdCxtYXA6bkh0LHJlZHVjZTpoSHQsc2l6ZTpqSHQsdHJhbnNmb3JtOmVGdCx1bmlvbjpuVnQsdmFsdWVzOmxWdH19Y2F0Y2godCl7fXNWdHx8KHNWdD13aW5kb3cuXyk7dmFyIHVWdD1zVnQsaFZ0PXVWdCxkVnQ9ZlZ0LHBWdD0iXDAiO2Z1bmN0aW9uIGZWdCh0KXt0aGlzLl9pc0RpcmVjdGVkPSFoVnQuaGFzKHQsImRpcmVjdGVkIil8fHQuZGlyZWN0ZWQsdGhpcy5faXNNdWx0aWdyYXBoPSEhaFZ0Lmhhcyh0LCJtdWx0aWdyYXBoIikmJnQubXVsdGlncmFwaCx0aGlzLl9pc0NvbXBvdW5kPSEhaFZ0Lmhhcyh0LCJjb21wb3VuZCIpJiZ0LmNvbXBvdW5kLHRoaXMuX2xhYmVsPXZvaWQgMCx0aGlzLl9kZWZhdWx0Tm9kZUxhYmVsRm49aFZ0LmNvbnN0YW50KHZvaWQgMCksdGhpcy5fZGVmYXVsdEVkZ2VMYWJlbEZuPWhWdC5jb25zdGFudCh2b2lkIDApLHRoaXMuX25vZGVzPXt9LHRoaXMuX2lzQ29tcG91bmQmJih0aGlzLl9wYXJlbnQ9e30sdGhpcy5fY2hpbGRyZW49e30sdGhpcy5fY2hpbGRyZW5bIlwwIl09e30pLHRoaXMuX2luPXt9LHRoaXMuX3ByZWRzPXt9LHRoaXMuX291dD17fSx0aGlzLl9zdWNzPXt9LHRoaXMuX2VkZ2VPYmpzPXt9LHRoaXMuX2VkZ2VMYWJlbHM9e319ZnVuY3Rpb24gbVZ0KHQsZSl7dFtlXT90W2VdKys6dFtlXT0xfWZ1bmN0aW9uIGdWdCh0LGUpey0tdFtlXXx8ZGVsZXRlIHRbZV19ZnVuY3Rpb24gX1Z0KHQsZSxuLGkpe3ZhciByPSIiK2Usbz0iIituO2lmKCF0JiZyPm8pe3ZhciBhPXI7cj1vLG89YX1yZXR1cm4gcisiASIrbysiASIrKGhWdC5pc1VuZGVmaW5lZChpKT8iXDAiOmkpfWZ1bmN0aW9uIHlWdCh0LGUsbixpKXt2YXIgcj0iIitlLG89IiIrbjtpZighdCYmcj5vKXt2YXIgYT1yO3I9byxvPWF9dmFyIHM9e3Y6cix3Om99O3JldHVybiBpJiYocy5uYW1lPWkpLHN9ZnVuY3Rpb24gdlZ0KHQsZSl7cmV0dXJuIF9WdCh0LGUudixlLncsZS5uYW1lKX1mVnQucHJvdG90eXBlLl9ub2RlQ291bnQ9MCxmVnQucHJvdG90eXBlLl9lZGdlQ291bnQ9MCxmVnQucHJvdG90eXBlLmlzRGlyZWN0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faXNEaXJlY3RlZH0sZlZ0LnByb3RvdHlwZS5pc011bHRpZ3JhcGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faXNNdWx0aWdyYXBofSxmVnQucHJvdG90eXBlLmlzQ29tcG91bmQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faXNDb21wb3VuZH0sZlZ0LnByb3RvdHlwZS5zZXRHcmFwaD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbGFiZWw9dCx0aGlzfSxmVnQucHJvdG90eXBlLmdyYXBoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xhYmVsfSxmVnQucHJvdG90eXBlLnNldERlZmF1bHROb2RlTGFiZWw9ZnVuY3Rpb24odCl7cmV0dXJuIGhWdC5pc0Z1bmN0aW9uKHQpfHwodD1oVnQuY29uc3RhbnQodCkpLHRoaXMuX2RlZmF1bHROb2RlTGFiZWxGbj10LHRoaXN9LGZWdC5wcm90b3R5cGUubm9kZUNvdW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25vZGVDb3VudH0sZlZ0LnByb3RvdHlwZS5ub2Rlcz1mdW5jdGlvbigpe3JldHVybiBoVnQua2V5cyh0aGlzLl9ub2Rlcyl9LGZWdC5wcm90b3R5cGUuc291cmNlcz1mdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIGhWdC5maWx0ZXIodGhpcy5ub2RlcygpLChmdW5jdGlvbihlKXtyZXR1cm4gaFZ0LmlzRW1wdHkodC5faW5bZV0pfSkpfSxmVnQucHJvdG90eXBlLnNpbmtzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gaFZ0LmZpbHRlcih0aGlzLm5vZGVzKCksKGZ1bmN0aW9uKGUpe3JldHVybiBoVnQuaXNFbXB0eSh0Ll9vdXRbZV0pfSkpfSxmVnQucHJvdG90eXBlLnNldE5vZGVzPWZ1bmN0aW9uKHQsZSl7dmFyIG49YXJndW1lbnRzLGk9dGhpcztyZXR1cm4gaFZ0LmVhY2godCwoZnVuY3Rpb24odCl7bi5sZW5ndGg+MT9pLnNldE5vZGUodCxlKTppLnNldE5vZGUodCl9KSksdGhpc30sZlZ0LnByb3RvdHlwZS5zZXROb2RlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGhWdC5oYXModGhpcy5fbm9kZXMsdCk/KGFyZ3VtZW50cy5sZW5ndGg+MSYmKHRoaXMuX25vZGVzW3RdPWUpLHRoaXMpOih0aGlzLl9ub2Rlc1t0XT1hcmd1bWVudHMubGVuZ3RoPjE/ZTp0aGlzLl9kZWZhdWx0Tm9kZUxhYmVsRm4odCksdGhpcy5faXNDb21wb3VuZCYmKHRoaXMuX3BhcmVudFt0XT1wVnQsdGhpcy5fY2hpbGRyZW5bdF09e30sdGhpcy5fY2hpbGRyZW5bIlwwIl1bdF09ITApLHRoaXMuX2luW3RdPXt9LHRoaXMuX3ByZWRzW3RdPXt9LHRoaXMuX291dFt0XT17fSx0aGlzLl9zdWNzW3RdPXt9LCsrdGhpcy5fbm9kZUNvdW50LHRoaXMpfSxmVnQucHJvdG90eXBlLm5vZGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX25vZGVzW3RdfSxmVnQucHJvdG90eXBlLmhhc05vZGU9ZnVuY3Rpb24odCl7cmV0dXJuIGhWdC5oYXModGhpcy5fbm9kZXMsdCl9LGZWdC5wcm90b3R5cGUucmVtb3ZlTm9kZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKGhWdC5oYXModGhpcy5fbm9kZXMsdCkpe3ZhciBuPWZ1bmN0aW9uKHQpe2UucmVtb3ZlRWRnZShlLl9lZGdlT2Jqc1t0XSl9O2RlbGV0ZSB0aGlzLl9ub2Rlc1t0XSx0aGlzLl9pc0NvbXBvdW5kJiYodGhpcy5fcmVtb3ZlRnJvbVBhcmVudHNDaGlsZExpc3QodCksZGVsZXRlIHRoaXMuX3BhcmVudFt0XSxoVnQuZWFjaCh0aGlzLmNoaWxkcmVuKHQpLChmdW5jdGlvbih0KXtlLnNldFBhcmVudCh0KX0pKSxkZWxldGUgdGhpcy5fY2hpbGRyZW5bdF0pLGhWdC5lYWNoKGhWdC5rZXlzKHRoaXMuX2luW3RdKSxuKSxkZWxldGUgdGhpcy5faW5bdF0sZGVsZXRlIHRoaXMuX3ByZWRzW3RdLGhWdC5lYWNoKGhWdC5rZXlzKHRoaXMuX291dFt0XSksbiksZGVsZXRlIHRoaXMuX291dFt0XSxkZWxldGUgdGhpcy5fc3Vjc1t0XSwtLXRoaXMuX25vZGVDb3VudH1yZXR1cm4gdGhpc30sZlZ0LnByb3RvdHlwZS5zZXRQYXJlbnQ9ZnVuY3Rpb24odCxlKXtpZighdGhpcy5faXNDb21wb3VuZCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXQgcGFyZW50IGluIGEgbm9uLWNvbXBvdW5kIGdyYXBoIik7aWYoaFZ0LmlzVW5kZWZpbmVkKGUpKWU9cFZ0O2Vsc2V7Zm9yKHZhciBuPWUrPSIiOyFoVnQuaXNVbmRlZmluZWQobik7bj10aGlzLnBhcmVudChuKSlpZihuPT09dCl0aHJvdyBuZXcgRXJyb3IoIlNldHRpbmcgIitlKyIgYXMgcGFyZW50IG9mICIrdCsiIHdvdWxkIGNyZWF0ZSBhIGN5Y2xlIik7dGhpcy5zZXROb2RlKGUpfXJldHVybiB0aGlzLnNldE5vZGUodCksdGhpcy5fcmVtb3ZlRnJvbVBhcmVudHNDaGlsZExpc3QodCksdGhpcy5fcGFyZW50W3RdPWUsdGhpcy5fY2hpbGRyZW5bZV1bdF09ITAsdGhpc30sZlZ0LnByb3RvdHlwZS5fcmVtb3ZlRnJvbVBhcmVudHNDaGlsZExpc3Q9ZnVuY3Rpb24odCl7ZGVsZXRlIHRoaXMuX2NoaWxkcmVuW3RoaXMuX3BhcmVudFt0XV1bdF19LGZWdC5wcm90b3R5cGUucGFyZW50PWZ1bmN0aW9uKHQpe2lmKHRoaXMuX2lzQ29tcG91bmQpe3ZhciBlPXRoaXMuX3BhcmVudFt0XTtpZihlIT09cFZ0KXJldHVybiBlfX0sZlZ0LnByb3RvdHlwZS5jaGlsZHJlbj1mdW5jdGlvbih0KXtpZihoVnQuaXNVbmRlZmluZWQodCkmJih0PXBWdCksdGhpcy5faXNDb21wb3VuZCl7dmFyIGU9dGhpcy5fY2hpbGRyZW5bdF07aWYoZSlyZXR1cm4gaFZ0LmtleXMoZSl9ZWxzZXtpZih0PT09cFZ0KXJldHVybiB0aGlzLm5vZGVzKCk7aWYodGhpcy5oYXNOb2RlKHQpKXJldHVybltdfX0sZlZ0LnByb3RvdHlwZS5wcmVkZWNlc3NvcnM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcHJlZHNbdF07aWYoZSlyZXR1cm4gaFZ0LmtleXMoZSl9LGZWdC5wcm90b3R5cGUuc3VjY2Vzc29ycz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9zdWNzW3RdO2lmKGUpcmV0dXJuIGhWdC5rZXlzKGUpfSxmVnQucHJvdG90eXBlLm5laWdoYm9ycz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnByZWRlY2Vzc29ycyh0KTtpZihlKXJldHVybiBoVnQudW5pb24oZSx0aGlzLnN1Y2Nlc3NvcnModCkpfSxmVnQucHJvdG90eXBlLmlzTGVhZj1mdW5jdGlvbih0KXtyZXR1cm4gMD09PSh0aGlzLmlzRGlyZWN0ZWQoKT90aGlzLnN1Y2Nlc3NvcnModCk6dGhpcy5uZWlnaGJvcnModCkpLmxlbmd0aH0sZlZ0LnByb3RvdHlwZS5maWx0ZXJOb2Rlcz1mdW5jdGlvbih0KXt2YXIgZT1uZXcgdGhpcy5jb25zdHJ1Y3Rvcih7ZGlyZWN0ZWQ6dGhpcy5faXNEaXJlY3RlZCxtdWx0aWdyYXBoOnRoaXMuX2lzTXVsdGlncmFwaCxjb21wb3VuZDp0aGlzLl9pc0NvbXBvdW5kfSk7ZS5zZXRHcmFwaCh0aGlzLmdyYXBoKCkpO3ZhciBuPXRoaXM7aFZ0LmVhY2godGhpcy5fbm9kZXMsKGZ1bmN0aW9uKG4saSl7dChpKSYmZS5zZXROb2RlKGksbil9KSksaFZ0LmVhY2godGhpcy5fZWRnZU9ianMsKGZ1bmN0aW9uKHQpe2UuaGFzTm9kZSh0LnYpJiZlLmhhc05vZGUodC53KSYmZS5zZXRFZGdlKHQsbi5lZGdlKHQpKX0pKTt2YXIgaT17fTtmdW5jdGlvbiByKHQpe3ZhciBvPW4ucGFyZW50KHQpO3JldHVybiB2b2lkIDA9PT1vfHxlLmhhc05vZGUobyk/KGlbdF09byxvKTpvIGluIGk/aVtvXTpyKG8pfXJldHVybiB0aGlzLl9pc0NvbXBvdW5kJiZoVnQuZWFjaChlLm5vZGVzKCksKGZ1bmN0aW9uKHQpe2Uuc2V0UGFyZW50KHQscih0KSl9KSksZX0sZlZ0LnByb3RvdHlwZS5zZXREZWZhdWx0RWRnZUxhYmVsPWZ1bmN0aW9uKHQpe3JldHVybiBoVnQuaXNGdW5jdGlvbih0KXx8KHQ9aFZ0LmNvbnN0YW50KHQpKSx0aGlzLl9kZWZhdWx0RWRnZUxhYmVsRm49dCx0aGlzfSxmVnQucHJvdG90eXBlLmVkZ2VDb3VudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9lZGdlQ291bnR9LGZWdC5wcm90b3R5cGUuZWRnZXM9ZnVuY3Rpb24oKXtyZXR1cm4gaFZ0LnZhbHVlcyh0aGlzLl9lZGdlT2Jqcyl9LGZWdC5wcm90b3R5cGUuc2V0UGF0aD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMsaT1hcmd1bWVudHM7cmV0dXJuIGhWdC5yZWR1Y2UodCwoZnVuY3Rpb24odCxyKXtyZXR1cm4gaS5sZW5ndGg+MT9uLnNldEVkZ2UodCxyLGUpOm4uc2V0RWRnZSh0LHIpLHJ9KSksdGhpc30sZlZ0LnByb3RvdHlwZS5zZXRFZGdlPWZ1bmN0aW9uKCl7dmFyIHQsZSxuLGkscj0hMSxvPWFyZ3VtZW50c1swXTsib2JqZWN0Ij09dHlwZW9mIG8mJm51bGwhPT1vJiYidiJpbiBvPyh0PW8udixlPW8udyxuPW8ubmFtZSwyPT09YXJndW1lbnRzLmxlbmd0aCYmKGk9YXJndW1lbnRzWzFdLHI9ITApKToodD1vLGU9YXJndW1lbnRzWzFdLG49YXJndW1lbnRzWzNdLGFyZ3VtZW50cy5sZW5ndGg+MiYmKGk9YXJndW1lbnRzWzJdLHI9ITApKSx0PSIiK3QsZT0iIitlLGhWdC5pc1VuZGVmaW5lZChuKXx8KG49IiIrbik7dmFyIGE9X1Z0KHRoaXMuX2lzRGlyZWN0ZWQsdCxlLG4pO2lmKGhWdC5oYXModGhpcy5fZWRnZUxhYmVscyxhKSlyZXR1cm4gciYmKHRoaXMuX2VkZ2VMYWJlbHNbYV09aSksdGhpcztpZighaFZ0LmlzVW5kZWZpbmVkKG4pJiYhdGhpcy5faXNNdWx0aWdyYXBoKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNldCBhIG5hbWVkIGVkZ2Ugd2hlbiBpc011bHRpZ3JhcGggPSBmYWxzZSIpO3RoaXMuc2V0Tm9kZSh0KSx0aGlzLnNldE5vZGUoZSksdGhpcy5fZWRnZUxhYmVsc1thXT1yP2k6dGhpcy5fZGVmYXVsdEVkZ2VMYWJlbEZuKHQsZSxuKTt2YXIgcz15VnQodGhpcy5faXNEaXJlY3RlZCx0LGUsbik7cmV0dXJuIHQ9cy52LGU9cy53LE9iamVjdC5mcmVlemUocyksdGhpcy5fZWRnZU9ianNbYV09cyxtVnQodGhpcy5fcHJlZHNbZV0sdCksbVZ0KHRoaXMuX3N1Y3NbdF0sZSksdGhpcy5faW5bZV1bYV09cyx0aGlzLl9vdXRbdF1bYV09cyx0aGlzLl9lZGdlQ291bnQrKyx0aGlzfSxmVnQucHJvdG90eXBlLmVkZ2U9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPTE9PT1hcmd1bWVudHMubGVuZ3RoP3ZWdCh0aGlzLl9pc0RpcmVjdGVkLGFyZ3VtZW50c1swXSk6X1Z0KHRoaXMuX2lzRGlyZWN0ZWQsdCxlLG4pO3JldHVybiB0aGlzLl9lZGdlTGFiZWxzW2ldfSxmVnQucHJvdG90eXBlLmhhc0VkZ2U9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPTE9PT1hcmd1bWVudHMubGVuZ3RoP3ZWdCh0aGlzLl9pc0RpcmVjdGVkLGFyZ3VtZW50c1swXSk6X1Z0KHRoaXMuX2lzRGlyZWN0ZWQsdCxlLG4pO3JldHVybiBoVnQuaGFzKHRoaXMuX2VkZ2VMYWJlbHMsaSl9LGZWdC5wcm90b3R5cGUucmVtb3ZlRWRnZT1mdW5jdGlvbih0LGUsbil7dmFyIGk9MT09PWFyZ3VtZW50cy5sZW5ndGg/dlZ0KHRoaXMuX2lzRGlyZWN0ZWQsYXJndW1lbnRzWzBdKTpfVnQodGhpcy5faXNEaXJlY3RlZCx0LGUsbikscj10aGlzLl9lZGdlT2Jqc1tpXTtyZXR1cm4gciYmKHQ9ci52LGU9ci53LGRlbGV0ZSB0aGlzLl9lZGdlTGFiZWxzW2ldLGRlbGV0ZSB0aGlzLl9lZGdlT2Jqc1tpXSxnVnQodGhpcy5fcHJlZHNbZV0sdCksZ1Z0KHRoaXMuX3N1Y3NbdF0sZSksZGVsZXRlIHRoaXMuX2luW2VdW2ldLGRlbGV0ZSB0aGlzLl9vdXRbdF1baV0sdGhpcy5fZWRnZUNvdW50LS0pLHRoaXN9LGZWdC5wcm90b3R5cGUuaW5FZGdlcz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2luW3RdO2lmKG4pe3ZhciBpPWhWdC52YWx1ZXMobik7cmV0dXJuIGU/aFZ0LmZpbHRlcihpLChmdW5jdGlvbih0KXtyZXR1cm4gdC52PT09ZX0pKTppfX0sZlZ0LnByb3RvdHlwZS5vdXRFZGdlcz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX291dFt0XTtpZihuKXt2YXIgaT1oVnQudmFsdWVzKG4pO3JldHVybiBlP2hWdC5maWx0ZXIoaSwoZnVuY3Rpb24odCl7cmV0dXJuIHQudz09PWV9KSk6aX19LGZWdC5wcm90b3R5cGUubm9kZUVkZ2VzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5pbkVkZ2VzKHQsZSk7aWYobilyZXR1cm4gbi5jb25jYXQodGhpcy5vdXRFZGdlcyh0LGUpKX07dmFyIGJWdD17R3JhcGg6ZFZ0LHZlcnNpb246IjIuMS44In0seFZ0PXVWdCx3VnQ9ZFZ0LFNWdD17d3JpdGU6ZnVuY3Rpb24gTVZ0KHQpe3ZhciBlPXtvcHRpb25zOntkaXJlY3RlZDp0LmlzRGlyZWN0ZWQoKSxtdWx0aWdyYXBoOnQuaXNNdWx0aWdyYXBoKCksY29tcG91bmQ6dC5pc0NvbXBvdW5kKCl9LG5vZGVzOlRWdCh0KSxlZGdlczpDVnQodCl9O3hWdC5pc1VuZGVmaW5lZCh0LmdyYXBoKCkpfHwoZS52YWx1ZT14VnQuY2xvbmUodC5ncmFwaCgpKSk7cmV0dXJuIGV9LHJlYWQ6ZnVuY3Rpb24gRVZ0KHQpe3ZhciBlPW5ldyB3VnQodC5vcHRpb25zKS5zZXRHcmFwaCh0LnZhbHVlKTtyZXR1cm4geFZ0LmVhY2godC5ub2RlcywoZnVuY3Rpb24odCl7ZS5zZXROb2RlKHQudix0LnZhbHVlKSx0LnBhcmVudCYmZS5zZXRQYXJlbnQodC52LHQucGFyZW50KX0pKSx4VnQuZWFjaCh0LmVkZ2VzLChmdW5jdGlvbih0KXtlLnNldEVkZ2Uoe3Y6dC52LHc6dC53LG5hbWU6dC5uYW1lfSx0LnZhbHVlKX0pKSxlfX07ZnVuY3Rpb24gVFZ0KHQpe3JldHVybiB4VnQubWFwKHQubm9kZXMoKSwoZnVuY3Rpb24oZSl7dmFyIG49dC5ub2RlKGUpLGk9dC5wYXJlbnQoZSkscj17djplfTtyZXR1cm4geFZ0LmlzVW5kZWZpbmVkKG4pfHwoci52YWx1ZT1uKSx4VnQuaXNVbmRlZmluZWQoaSl8fChyLnBhcmVudD1pKSxyfSkpfWZ1bmN0aW9uIENWdCh0KXtyZXR1cm4geFZ0Lm1hcCh0LmVkZ2VzKCksKGZ1bmN0aW9uKGUpe3ZhciBuPXQuZWRnZShlKSxpPXt2OmUudix3OmUud307cmV0dXJuIHhWdC5pc1VuZGVmaW5lZChlLm5hbWUpfHwoaS5uYW1lPWUubmFtZSkseFZ0LmlzVW5kZWZpbmVkKG4pfHwoaS52YWx1ZT1uKSxpfSkpfXZhciBBVnQ9dVZ0LGtWdD1mdW5jdGlvbiBMVnQodCl7dmFyIGUsbj17fSxpPVtdO2Z1bmN0aW9uIHIoaSl7QVZ0LmhhcyhuLGkpfHwobltpXT0hMCxlLnB1c2goaSksQVZ0LmVhY2godC5zdWNjZXNzb3JzKGkpLHIpLEFWdC5lYWNoKHQucHJlZGVjZXNzb3JzKGkpLHIpKX1yZXR1cm4gQVZ0LmVhY2godC5ub2RlcygpLChmdW5jdGlvbih0KXtlPVtdLHIodCksZS5sZW5ndGgmJmkucHVzaChlKX0pKSxpfTt2YXIgUFZ0PXVWdCxOVnQ9SVZ0O2Z1bmN0aW9uIElWdCgpe3RoaXMuX2Fycj1bXSx0aGlzLl9rZXlJbmRpY2VzPXt9fUlWdC5wcm90b3R5cGUuc2l6ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcnIubGVuZ3RofSxJVnQucHJvdG90eXBlLmtleXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXJyLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQua2V5fSkpfSxJVnQucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gUFZ0Lmhhcyh0aGlzLl9rZXlJbmRpY2VzLHQpfSxJVnQucHJvdG90eXBlLnByaW9yaXR5PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2tleUluZGljZXNbdF07aWYodm9pZCAwIT09ZSlyZXR1cm4gdGhpcy5fYXJyW2VdLnByaW9yaXR5fSxJVnQucHJvdG90eXBlLm1pbj1mdW5jdGlvbigpe2lmKDA9PT10aGlzLnNpemUoKSl0aHJvdyBuZXcgRXJyb3IoIlF1ZXVlIHVuZGVyZmxvdyIpO3JldHVybiB0aGlzLl9hcnJbMF0ua2V5fSxJVnQucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2tleUluZGljZXM7aWYodD1TdHJpbmcodCksIVBWdC5oYXMobix0KSl7dmFyIGk9dGhpcy5fYXJyLHI9aS5sZW5ndGg7cmV0dXJuIG5bdF09cixpLnB1c2goe2tleTp0LHByaW9yaXR5OmV9KSx0aGlzLl9kZWNyZWFzZShyKSwhMH1yZXR1cm4hMX0sSVZ0LnByb3RvdHlwZS5yZW1vdmVNaW49ZnVuY3Rpb24oKXt0aGlzLl9zd2FwKDAsdGhpcy5fYXJyLmxlbmd0aC0xKTt2YXIgdD10aGlzLl9hcnIucG9wKCk7cmV0dXJuIGRlbGV0ZSB0aGlzLl9rZXlJbmRpY2VzW3Qua2V5XSx0aGlzLl9oZWFwaWZ5KDApLHQua2V5fSxJVnQucHJvdG90eXBlLmRlY3JlYXNlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fa2V5SW5kaWNlc1t0XTtpZihlPnRoaXMuX2FycltuXS5wcmlvcml0eSl0aHJvdyBuZXcgRXJyb3IoIk5ldyBwcmlvcml0eSBpcyBncmVhdGVyIHRoYW4gY3VycmVudCBwcmlvcml0eS4gS2V5OiAiK3QrIiBPbGQ6ICIrdGhpcy5fYXJyW25dLnByaW9yaXR5KyIgTmV3OiAiK2UpO3RoaXMuX2FycltuXS5wcmlvcml0eT1lLHRoaXMuX2RlY3JlYXNlKG4pfSxJVnQucHJvdG90eXBlLl9oZWFwaWZ5PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2FycixuPTIqdCxpPW4rMSxyPXQ7bjxlLmxlbmd0aCYmKHI9ZVtuXS5wcmlvcml0eTxlW3JdLnByaW9yaXR5P246cixpPGUubGVuZ3RoJiYocj1lW2ldLnByaW9yaXR5PGVbcl0ucHJpb3JpdHk/aTpyKSxyIT09dCYmKHRoaXMuX3N3YXAodCxyKSx0aGlzLl9oZWFwaWZ5KHIpKSl9LElWdC5wcm90b3R5cGUuX2RlY3JlYXNlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPXRoaXMuX2FycixpPW5bdF0ucHJpb3JpdHk7MCE9PXQmJiEobltlPXQ+PjFdLnByaW9yaXR5PGkpOyl0aGlzLl9zd2FwKHQsZSksdD1lfSxJVnQucHJvdG90eXBlLl9zd2FwPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fYXJyLGk9dGhpcy5fa2V5SW5kaWNlcyxyPW5bdF0sbz1uW2VdO25bdF09byxuW2VdPXIsaVtvLmtleV09dCxpW3Iua2V5XT1lfTt2YXIgUlZ0PU5WdCxPVnQ9ZnVuY3Rpb24gelZ0KHQsZSxuLGkpe3JldHVybihmdW5jdGlvbiByKHQsZSxuLGkpe3ZhciByLG8sYT17fSxzPW5ldyBSVnQsbD1mdW5jdGlvbih0KXt2YXIgZT10LnYhPT1yP3Qudjp0LncsaT1hW2VdLGw9bih0KSxjPW8uZGlzdGFuY2UrbDtpZihsPDApdGhyb3cgbmV3IEVycm9yKCJkaWprc3RyYSBkb2VzIG5vdCBhbGxvdyBuZWdhdGl2ZSBlZGdlIHdlaWdodHMuIEJhZCBlZGdlOiAiK3QrIiBXZWlnaHQ6ICIrbCk7YzxpLmRpc3RhbmNlJiYoaS5kaXN0YW5jZT1jLGkucHJlZGVjZXNzb3I9cixzLmRlY3JlYXNlKGUsYykpfTt0Lm5vZGVzKCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIG49dD09PWU/MDpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7YVt0XT17ZGlzdGFuY2U6bn0scy5hZGQodCxuKX0pKTtmb3IoO3Muc2l6ZSgpPjAmJihyPXMucmVtb3ZlTWluKCksKG89YVtyXSkuZGlzdGFuY2UhPT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpOylpKHIpLmZvckVhY2gobCk7cmV0dXJuIGF9KSh0LFN0cmluZyhlKSxufHxEVnQsaXx8ZnVuY3Rpb24oZSl7cmV0dXJuIHQub3V0RWRnZXMoZSl9KX0sRFZ0PXVWdC5jb25zdGFudCgxKTt2YXIgQlZ0PU9WdCxIVnQ9dVZ0LEZWdD1mdW5jdGlvbiBWVnQodCxlLG4pe3JldHVybiBIVnQudHJhbnNmb3JtKHQubm9kZXMoKSwoZnVuY3Rpb24oaSxyKXtpW3JdPUJWdCh0LHIsZSxuKX0pLHt9KX07dmFyIFVWdD11VnQsalZ0PWZ1bmN0aW9uIEdWdCh0KXt2YXIgZT0wLG49W10saT17fSxyPVtdO2Z1bmN0aW9uIG8oYSl7dmFyIHM9aVthXT17b25TdGFjazohMCxsb3dsaW5rOmUsaW5kZXg6ZSsrfTtpZihuLnB1c2goYSksdC5zdWNjZXNzb3JzKGEpLmZvckVhY2goKGZ1bmN0aW9uKHQpe1VWdC5oYXMoaSx0KT9pW3RdLm9uU3RhY2smJihzLmxvd2xpbms9TWF0aC5taW4ocy5sb3dsaW5rLGlbdF0uaW5kZXgpKToobyh0KSxzLmxvd2xpbms9TWF0aC5taW4ocy5sb3dsaW5rLGlbdF0ubG93bGluaykpfSkpLHMubG93bGluaz09PXMuaW5kZXgpe3ZhciBsLGM9W107ZG97bD1uLnBvcCgpLGlbbF0ub25TdGFjaz0hMSxjLnB1c2gobCl9d2hpbGUoYSE9PWwpO3IucHVzaChjKX19cmV0dXJuIHQubm9kZXMoKS5mb3JFYWNoKChmdW5jdGlvbih0KXtVVnQuaGFzKGksdCl8fG8odCl9KSkscn07dmFyIFdWdD11VnQscVZ0PWpWdCxZVnQ9ZnVuY3Rpb24gWFZ0KHQpe3JldHVybiBXVnQuZmlsdGVyKHFWdCh0KSwoZnVuY3Rpb24oZSl7cmV0dXJuIGUubGVuZ3RoPjF8fDE9PT1lLmxlbmd0aCYmdC5oYXNFZGdlKGVbMF0sZVswXSl9KSl9O3ZhciAkVnQ9ZnVuY3Rpb24gS1Z0KHQsZSxuKXtyZXR1cm4oZnVuY3Rpb24gaSh0LGUsbil7dmFyIGk9e30scj10Lm5vZGVzKCk7cmV0dXJuIHIuZm9yRWFjaCgoZnVuY3Rpb24odCl7aVt0XT17fSxpW3RdW3RdPXtkaXN0YW5jZTowfSxyLmZvckVhY2goKGZ1bmN0aW9uKGUpe3QhPT1lJiYoaVt0XVtlXT17ZGlzdGFuY2U6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZfSl9KSksbih0KS5mb3JFYWNoKChmdW5jdGlvbihuKXt2YXIgcj1uLnY9PT10P24udzpuLnYsbz1lKG4pO2lbdF1bcl09e2Rpc3RhbmNlOm8scHJlZGVjZXNzb3I6dH19KSl9KSksci5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT1pW3RdO3IuZm9yRWFjaCgoZnVuY3Rpb24obil7dmFyIG89aVtuXTtyLmZvckVhY2goKGZ1bmN0aW9uKG4pe3ZhciBpPWVbbl0scj1vW25dLGE9b1t0XS5kaXN0YW5jZStpLmRpc3RhbmNlO2E8ci5kaXN0YW5jZSYmKHIuZGlzdGFuY2U9YSxyLnByZWRlY2Vzc29yPWkucHJlZGVjZXNzb3IpfSkpfSkpfSkpLGl9KSh0LGV8fFpWdCxufHxmdW5jdGlvbihlKXtyZXR1cm4gdC5vdXRFZGdlcyhlKX0pfSxaVnQ9dVZ0LmNvbnN0YW50KDEpO3ZhciBKVnQ9dVZ0LFFWdD10VXQ7ZnVuY3Rpb24gdFV0KHQpe3ZhciBlPXt9LG49e30saT1bXTtpZihKVnQuZWFjaCh0LnNpbmtzKCksKGZ1bmN0aW9uIHIobyl7aWYoSlZ0LmhhcyhuLG8pKXRocm93IG5ldyBlVXQ7SlZ0LmhhcyhlLG8pfHwobltvXT0hMCxlW29dPSEwLEpWdC5lYWNoKHQucHJlZGVjZXNzb3JzKG8pLHIpLGRlbGV0ZSBuW29dLGkucHVzaChvKSl9KSksSlZ0LnNpemUoZSkhPT10Lm5vZGVDb3VudCgpKXRocm93IG5ldyBlVXQ7cmV0dXJuIGl9ZnVuY3Rpb24gZVV0KCl7fXRVdC5DeWNsZUV4Y2VwdGlvbj1lVXQsZVV0LnByb3RvdHlwZT1uZXcgRXJyb3I7dmFyIG5VdD1RVnQ7dmFyIGlVdD11VnQsclV0PWZ1bmN0aW9uIG9VdCh0LGUsbil7aVV0LmlzQXJyYXkoZSl8fChlPVtlXSk7dmFyIGk9KHQuaXNEaXJlY3RlZCgpP3Quc3VjY2Vzc29yczp0Lm5laWdoYm9ycykuYmluZCh0KSxyPVtdLG89e307cmV0dXJuIGlVdC5lYWNoKGUsKGZ1bmN0aW9uKGUpe2lmKCF0Lmhhc05vZGUoZSkpdGhyb3cgbmV3IEVycm9yKCJHcmFwaCBkb2VzIG5vdCBoYXZlIG5vZGU6ICIrZSk7YVV0KHQsZSwicG9zdCI9PT1uLG8saSxyKX0pKSxyfTtmdW5jdGlvbiBhVXQodCxlLG4saSxyLG8pe2lVdC5oYXMoaSxlKXx8KGlbZV09ITAsbnx8by5wdXNoKGUpLGlVdC5lYWNoKHIoZSksKGZ1bmN0aW9uKGUpe2FVdCh0LGUsbixpLHIsbyl9KSksbiYmby5wdXNoKGUpKX12YXIgc1V0PXJVdDt2YXIgbFV0PXJVdDt2YXIgY1V0PXVWdCx1VXQ9ZFZ0LGhVdD1OVnQ7dmFyIGRVdCxwVXQ9e0dyYXBoOmJWdC5HcmFwaCxqc29uOlNWdCxhbGc6e2NvbXBvbmVudHM6a1Z0LGRpamtzdHJhOk9WdCxkaWprc3RyYUFsbDpGVnQsZmluZEN5Y2xlczpZVnQsZmxveWRXYXJzaGFsbDokVnQsaXNBY3ljbGljOmZ1bmN0aW9uIGZVdCh0KXt0cnl7blV0KHQpfWNhdGNoKHQpe2lmKHQgaW5zdGFuY2VvZiBuVXQuQ3ljbGVFeGNlcHRpb24pcmV0dXJuITE7dGhyb3cgdH1yZXR1cm4hMH0scG9zdG9yZGVyOmZ1bmN0aW9uIG1VdCh0LGUpe3JldHVybiBzVXQodCxlLCJwb3N0Iil9LHByZW9yZGVyOmZ1bmN0aW9uIGdVdCh0LGUpe3JldHVybiBsVXQodCxlLCJwcmUiKX0scHJpbTpmdW5jdGlvbiBfVXQodCxlKXt2YXIgbixpPW5ldyB1VXQscj17fSxvPW5ldyBoVXQ7ZnVuY3Rpb24gYSh0KXt2YXIgaT10LnY9PT1uP3Qudzp0LnYsYT1vLnByaW9yaXR5KGkpO2lmKHZvaWQgMCE9PWEpe3ZhciBzPWUodCk7czxhJiYocltpXT1uLG8uZGVjcmVhc2UoaSxzKSl9fWlmKDA9PT10Lm5vZGVDb3VudCgpKXJldHVybiBpO2NVdC5lYWNoKHQubm9kZXMoKSwoZnVuY3Rpb24odCl7by5hZGQodCxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLGkuc2V0Tm9kZSh0KX0pKSxvLmRlY3JlYXNlKHQubm9kZXMoKVswXSwwKTt2YXIgcz0hMTtmb3IoO28uc2l6ZSgpPjA7KXtpZihuPW8ucmVtb3ZlTWluKCksY1V0LmhhcyhyLG4pKWkuc2V0RWRnZShuLHJbbl0pO2Vsc2V7aWYocyl0aHJvdyBuZXcgRXJyb3IoIklucHV0IGdyYXBoIGlzIG5vdCBjb25uZWN0ZWQ6ICIrdCk7cz0hMH10Lm5vZGVFZGdlcyhuKS5mb3JFYWNoKGEpfXJldHVybiBpfSx0YXJqYW46alZ0LHRvcHNvcnQ6UVZ0fSx2ZXJzaW9uOmJWdC52ZXJzaW9ufTt0cnl7ZFV0PXBVdH1jYXRjaCh0KXt9ZFV0fHwoZFV0PXdpbmRvdy5ncmFwaGxpYik7dmFyIHlVdD1kVXQsdlV0PWdPdDt2YXIgYlV0PWZ1bmN0aW9uIHhVdCh0KXtyZXR1cm4gdlV0KHQsNSl9LHdVdD1IQXQsU1V0PXlOdCxNVXQ9SVB0LEVVdD1Qa3Q7dmFyIFRVdD1mdW5jdGlvbiBDVXQodCxlLG4pe2lmKCFFVXQobikpcmV0dXJuITE7dmFyIGk9dHlwZW9mIGU7cmV0dXJuISEoIm51bWJlciI9PWk/U1V0KG4pJiZNVXQoZSxuLmxlbmd0aCk6InN0cmluZyI9PWkmJmUgaW4gbikmJndVdChuW2VdLHQpfSxBVXQ9SEF0LGtVdD1UVXQsTFV0PUJOdCxQVXQ9T2JqZWN0LnByb3RvdHlwZSxOVXQ9UFV0Lmhhc093blByb3BlcnR5LElVdD1TRnQoKGZ1bmN0aW9uKHQsZSl7dD1PYmplY3QodCk7dmFyIG49LTEsaT1lLmxlbmd0aCxyPWk+Mj9lWzJdOnZvaWQgMDtmb3IociYma1V0KGVbMF0sZVsxXSxyKSYmKGk9MSk7KytuPGk7KWZvcih2YXIgbz1lW25dLGE9TFV0KG8pLHM9LTEsbD1hLmxlbmd0aDsrK3M8bDspe3ZhciBjPWFbc10sdT10W2NdOyh2b2lkIDA9PT11fHxBVXQodSxQVXRbY10pJiYhTlV0LmNhbGwodCxjKSkmJih0W2NdPW9bY10pfXJldHVybiB0fSkpLFJVdD14QnQsT1V0PXlOdCx6VXQ9U050O3ZhciBEVXQ9L1xzLzt2YXIgQlV0PWZ1bmN0aW9uIEhVdCh0KXtmb3IodmFyIGU9dC5sZW5ndGg7ZS0tJiZEVXQudGVzdCh0LmNoYXJBdChlKSk7KTtyZXR1cm4gZX0sRlV0PS9eXHMrLzt2YXIgVlV0PWZ1bmN0aW9uIFVVdCh0KXtyZXR1cm4gdD90LnNsaWNlKDAsQlV0KHQpKzEpLnJlcGxhY2UoRlV0LCIiKTp0fSxqVXQ9UGt0LEdVdD10RHQsV1V0PS9eWy0rXTB4WzAtOWEtZl0rJC9pLHFVdD0vXjBiWzAxXSskL2ksWVV0PS9eMG9bMC03XSskL2ksWFV0PXBhcnNlSW50O3ZhciAkVXQ9ZnVuY3Rpb24gS1V0KHQpe2lmKCJudW1iZXIiPT10eXBlb2YgdClyZXR1cm4gdDtpZihHVXQodCkpcmV0dXJuIE5hTjtpZihqVXQodCkpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PWpVdChlKT9lKyIiOmV9aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVybiAwPT09dD90Oit0O3Q9VlV0KHQpO3ZhciBuPXFVdC50ZXN0KHQpO3JldHVybiBufHxZVXQudGVzdCh0KT9YVXQodC5zbGljZSgyKSxuPzI6OCk6V1V0LnRlc3QodCk/TmFOOit0fSxaVXQ9MS8wO3ZhciBKVXQ9ZnVuY3Rpb24gUVV0KHQpe3JldHVybiB0Pyh0PSRVdCh0KSk9PT1aVXR8fHQ9PT0tMS8wPzE3OTc2OTMxMzQ4NjIzMTU3ZTI5MioodDwwPy0xOjEpOnQ9PXQ/dDowOjA9PT10P3Q6MH0sdGp0PUpVdDt2YXIgZWp0PUVGdCxuanQ9eEJ0LGlqdD1mdW5jdGlvbiByanQodCl7dmFyIGU9dGp0KHQpLG49ZSUxO3JldHVybiBlPT1lP24/ZS1uOmU6MH0sb2p0PU1hdGgubWF4O3ZhciBhanQ9KGZ1bmN0aW9uIGxqdCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLGkpe3ZhciByPU9iamVjdChlKTtpZighT1V0KGUpKXt2YXIgbz1SVXQobik7ZT16VXQoZSksbj1mdW5jdGlvbih0KXtyZXR1cm4gbyhyW3RdLHQscil9fXZhciBhPXQoZSxuLGkpO3JldHVybiBhPi0xP3Jbbz9lW2FdOmFdOnZvaWQgMH19KSgoZnVuY3Rpb24gc2p0KHQsZSxuKXt2YXIgaT1udWxsPT10PzA6dC5sZW5ndGg7aWYoIWkpcmV0dXJuLTE7dmFyIHI9bnVsbD09bj8wOmlqdChuKTtyZXR1cm4gcjwwJiYocj1vanQoaStyLDApKSxlanQodCxuanQoZSkscil9KSksY2p0PWNGdDt2YXIgdWp0PWZ1bmN0aW9uIGhqdCh0KXtyZXR1cm4obnVsbD09dD8wOnQubGVuZ3RoKT9janQodCwxKTpbXX0sZGp0PXdPdCxwanQ9Uk90LGZqdD1CTnQ7dmFyIG1qdD1mdW5jdGlvbiBnanQodCxlKXtyZXR1cm4gbnVsbD09dD90OmRqdCh0LHBqdChlKSxmanQpfTt2YXIgX2p0PWZ1bmN0aW9uIHlqdCh0KXt2YXIgZT1udWxsPT10PzA6dC5sZW5ndGg7cmV0dXJuIGU/dFtlLTFdOnZvaWQgMH0sdmp0PXJQdCxianQ9VE90LHhqdD14QnQ7dmFyIHdqdD1mdW5jdGlvbiBTanQodCxlKXt2YXIgbj17fTtyZXR1cm4gZT14anQoZSksYmp0KHQsKGZ1bmN0aW9uKHQsaSxyKXt2anQobixpLGUodCxpLHIpKX0pKSxufSxNanQ9dER0O3ZhciBFanQ9ZnVuY3Rpb24gVGp0KHQsZSxuKXtmb3IodmFyIGk9LTEscj10Lmxlbmd0aDsrK2k8cjspe3ZhciBvPXRbaV0sYT1lKG8pO2lmKG51bGwhPWEmJih2b2lkIDA9PT1zP2E9PWEmJiFNanQoYSk6bihhLHMpKSl2YXIgcz1hLGw9b31yZXR1cm4gbH07dmFyIENqdD1FanQsQWp0PWZ1bmN0aW9uIGtqdCh0LGUpe3JldHVybiB0PmV9LExqdD1QT3Q7dmFyIFBqdD1mdW5jdGlvbiBOanQodCl7cmV0dXJuIHQmJnQubGVuZ3RoP0NqdCh0LExqdCxBanQpOnZvaWQgMH0sSWp0PXJQdCxSanQ9SEF0O3ZhciBPanQ9ZnVuY3Rpb24gemp0KHQsZSxuKXsodm9pZCAwIT09biYmIVJqdCh0W2VdLG4pfHx2b2lkIDA9PT1uJiYhKGUgaW4gdCkpJiZJanQodCxlLG4pfSxEanQ9a2t0LEJqdD1zSXQsSGp0PV9QdCxGanQ9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLFZqdD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LFVqdD1GanQuY2FsbChPYmplY3QpO3ZhciBqanQ9ZnVuY3Rpb24gR2p0KHQsZSl7aWYoKCJjb25zdHJ1Y3RvciIhPT1lfHwiZnVuY3Rpb24iIT10eXBlb2YgdFtlXSkmJiJfX3Byb3RvX18iIT1lKXJldHVybiB0W2VdfSxXanQ9cFB0LHFqdD1CTnQ7dmFyIFlqdD1PanQsWGp0PUdOdC5leHBvcnRzLCRqdD11UnQsS2p0PVdOdCxaanQ9QVJ0LEpqdD1DUHQsUWp0PUFQdCx0R3Q9S0Z0LGVHdD1rUHQuZXhwb3J0cyxuR3Q9emt0LGlHdD1Qa3Qsckd0PWZ1bmN0aW9uIG9HdCh0KXtpZighSGp0KHQpfHwiW29iamVjdCBPYmplY3RdIiE9RGp0KHQpKXJldHVybiExO3ZhciBlPUJqdCh0KTtpZihudWxsPT09ZSlyZXR1cm4hMDt2YXIgbj1WanQuY2FsbChlLCJjb25zdHJ1Y3RvciIpJiZlLmNvbnN0cnVjdG9yO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBuJiZuIGluc3RhbmNlb2YgbiYmRmp0LmNhbGwobik9PVVqdH0sYUd0PSRQdCxzR3Q9amp0LGxHdD1mdW5jdGlvbiBjR3QodCl7cmV0dXJuIFdqdCh0LHFqdCh0KSl9O3ZhciB1R3Q9Skx0LGhHdD1PanQsZEd0PXdPdCxwR3Q9ZnVuY3Rpb24gZkd0KHQsZSxuLGkscixvLGEpe3ZhciBzPXNHdCh0LG4pLGw9c0d0KGUsbiksYz1hLmdldChsKTtpZihjKVlqdCh0LG4sYyk7ZWxzZXt2YXIgdT1vP28ocyxsLG4rIiIsdCxlLGEpOnZvaWQgMCxoPXZvaWQgMD09PXU7aWYoaCl7dmFyIGQ9UWp0KGwpLHA9IWQmJmVHdChsKSxmPSFkJiYhcCYmYUd0KGwpO3U9bCxkfHxwfHxmP1FqdChzKT91PXM6dEd0KHMpP3U9S2p0KHMpOnA/KGg9ITEsdT1YanQobCwhMCkpOmY/KGg9ITEsdT0kanQobCwhMCkpOnU9W106ckd0KGwpfHxKanQobCk/KHU9cyxKanQocyk/dT1sR3Qocyk6aUd0KHMpJiYhbkd0KHMpfHwodT1aanQobCkpKTpoPSExfWgmJihhLnNldChsLHUpLHIodSxsLGksbyxhKSxhLmRlbGV0ZShsKSksWWp0KHQsbix1KX19LG1HdD1Qa3QsZ0d0PUJOdCxfR3Q9amp0O3ZhciB5R3Q9U0Z0LHZHdD1UVXQ7dmFyIGJHdD1mdW5jdGlvbiB0KGUsbixpLHIsbyl7ZSE9PW4mJmRHdChuLChmdW5jdGlvbihhLHMpe2lmKG98fChvPW5ldyB1R3QpLG1HdChhKSlwR3QoZSxuLHMsaSx0LHIsbyk7ZWxzZXt2YXIgbD1yP3IoX0d0KGUscyksYSxzKyIiLGUsbixvKTp2b2lkIDA7dm9pZCAwPT09bCYmKGw9YSksaEd0KGUscyxsKX19KSxnR3QpfSx4R3Q9KGZ1bmN0aW9uIHdHdCh0KXtyZXR1cm4geUd0KChmdW5jdGlvbihlLG4pe3ZhciBpPS0xLHI9bi5sZW5ndGgsbz1yPjE/bltyLTFdOnZvaWQgMCxhPXI+Mj9uWzJdOnZvaWQgMDtmb3Iobz10Lmxlbmd0aD4zJiYiZnVuY3Rpb24iPT10eXBlb2Ygbz8oci0tLG8pOnZvaWQgMCxhJiZ2R3QoblswXSxuWzFdLGEpJiYobz1yPDM/dm9pZCAwOm8scj0xKSxlPU9iamVjdChlKTsrK2k8cjspe3ZhciBzPW5baV07cyYmdChlLHMsaSxvKX1yZXR1cm4gZX0pKX0pKChmdW5jdGlvbih0LGUsbil7Ykd0KHQsZSxuKX0pKTt2YXIgU0d0PWZ1bmN0aW9uIE1HdCh0LGUpe3JldHVybiB0PGV9LEVHdD1FanQsVEd0PVNHdCxDR3Q9UE90O3ZhciBBR3Q9ZnVuY3Rpb24ga0d0KHQpe3JldHVybiB0JiZ0Lmxlbmd0aD9FR3QodCxDR3QsVEd0KTp2b2lkIDB9LExHdD1FanQsUEd0PXhCdCxOR3Q9U0d0O3ZhciBJR3Q9ZnVuY3Rpb24gUkd0KHQsZSl7cmV0dXJuIHQmJnQubGVuZ3RoP0xHdCh0LFBHdChlKSxOR3QpOnZvaWQgMH0sT0d0PV9rdCx6R3Q9ZnVuY3Rpb24oKXtyZXR1cm4gT0d0LkRhdGUubm93KCl9LERHdD1jUHQsQkd0PWtEdCxIR3Q9SVB0LEZHdD1Qa3QsVkd0PU5EdDt2YXIgVUd0PXpEdCxqR3Q9ZnVuY3Rpb24gR0d0KHQsZSxuLGkpe2lmKCFGR3QodCkpcmV0dXJuIHQ7Zm9yKHZhciByPS0xLG89KGU9Qkd0KGUsdCkpLmxlbmd0aCxhPW8tMSxzPXQ7bnVsbCE9cyYmKytyPG87KXt2YXIgbD1WR3QoZVtyXSksYz1uO2lmKCJfX3Byb3RvX18iPT09bHx8ImNvbnN0cnVjdG9yIj09PWx8fCJwcm90b3R5cGUiPT09bClyZXR1cm4gdDtpZihyIT1hKXt2YXIgdT1zW2xdO3ZvaWQgMD09PShjPWk/aSh1LGwscyk6dm9pZCAwKSYmKGM9Rkd0KHUpP3U6SEd0KGVbcisxXSk/W106e30pfURHdChzLGwsYykscz1zW2xdfXJldHVybiB0fSxXR3Q9a0R0O3ZhciBxR3Q9ZnVuY3Rpb24gWUd0KHQsZSxuKXtmb3IodmFyIGk9LTEscj1lLmxlbmd0aCxvPXt9OysraTxyOyl7dmFyIGE9ZVtpXSxzPVVHdCh0LGEpO24ocyxhKSYmakd0KG8sV0d0KGEsdCkscyl9cmV0dXJuIG99LFhHdD1LRHQ7dmFyICRHdD11anQsS0d0PXBGdCxaR3Q9eUZ0O3ZhciBKR3Q9ZnVuY3Rpb24gUUd0KHQsZSl7cmV0dXJuIHFHdCh0LGUsKGZ1bmN0aW9uKGUsbil7cmV0dXJuIFhHdCh0LG4pfSkpfSx0V3Q9KGZ1bmN0aW9uIGVXdCh0KXtyZXR1cm4gWkd0KEtHdCh0LHZvaWQgMCwkR3QpLHQrIiIpfSkoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PXQ/e306Skd0KHQsZSl9KSksbld0PU1hdGguY2VpbCxpV3Q9TWF0aC5tYXg7dmFyIHJXdD1mdW5jdGlvbiBvV3QodCxlLG4saSl7Zm9yKHZhciByPS0xLG89aVd0KG5XdCgoZS10KS8obnx8MSkpLDApLGE9QXJyYXkobyk7by0tOylhW2k/bzorK3JdPXQsdCs9bjtyZXR1cm4gYX0sYVd0PVRVdCxzV3Q9SlV0O3ZhciBsV3Q9KGZ1bmN0aW9uIGNXdCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLGkpe3JldHVybiBpJiYibnVtYmVyIiE9dHlwZW9mIGkmJmFXdChlLG4saSkmJihuPWk9dm9pZCAwKSxlPXNXdChlKSx2b2lkIDA9PT1uPyhuPWUsZT0wKTpuPXNXdChuKSxpPXZvaWQgMD09PWk/ZTxuPzE6LTE6c1d0KGkpLHJXdChlLG4saSx0KX19KSgpO3ZhciB1V3Q9dER0O3ZhciBoV3Q9ZnVuY3Rpb24gZFd0KHQsZSl7aWYodCE9PWUpe3ZhciBuPXZvaWQgMCE9PXQsaT1udWxsPT09dCxyPXQ9PXQsbz11V3QodCksYT12b2lkIDAhPT1lLHM9bnVsbD09PWUsbD1lPT1lLGM9dVd0KGUpO2lmKCFzJiYhYyYmIW8mJnQ+ZXx8byYmYSYmbCYmIXMmJiFjfHxpJiZhJiZsfHwhbiYmbHx8IXIpcmV0dXJuIDE7aWYoIWkmJiFvJiYhYyYmdDxlfHxjJiZuJiZyJiYhaSYmIW98fHMmJm4mJnJ8fCFhJiZyfHwhbClyZXR1cm4tMX1yZXR1cm4gMH07dmFyIHBXdD1tRHQsZld0PXpEdCxtV3Q9eEJ0LGdXdD1LQnQsX1d0PWZ1bmN0aW9uIHlXdCh0LGUpe3ZhciBuPXQubGVuZ3RoO2Zvcih0LnNvcnQoZSk7bi0tOyl0W25dPXRbbl0udmFsdWU7cmV0dXJuIHR9LHZXdD1qUHQsYld0PWZ1bmN0aW9uIHhXdCh0LGUsbil7Zm9yKHZhciBpPS0xLHI9dC5jcml0ZXJpYSxvPWUuY3JpdGVyaWEsYT1yLmxlbmd0aCxzPW4ubGVuZ3RoOysraTxhOyl7dmFyIGw9aFd0KHJbaV0sb1tpXSk7aWYobClyZXR1cm4gaT49cz9sOmwqKCJkZXNjIj09bltpXT8tMToxKX1yZXR1cm4gdC5pbmRleC1lLmluZGV4fSx3V3Q9UE90LFNXdD1BUHQ7dmFyIE1XdD1jRnQsRVd0PWZ1bmN0aW9uIFRXdCh0LGUsbil7ZT1lLmxlbmd0aD9wV3QoZSwoZnVuY3Rpb24odCl7cmV0dXJuIFNXdCh0KT9mdW5jdGlvbihlKXtyZXR1cm4gZld0KGUsMT09PXQubGVuZ3RoP3RbMF06dCl9OnR9KSk6W3dXdF07dmFyIGk9LTE7ZT1wV3QoZSx2V3QobVd0KSk7dmFyIHI9Z1d0KHQsKGZ1bmN0aW9uKHQsbixyKXtyZXR1cm57Y3JpdGVyaWE6cFd0KGUsKGZ1bmN0aW9uKGUpe3JldHVybiBlKHQpfSkpLGluZGV4OisraSx2YWx1ZTp0fX0pKTtyZXR1cm4gX1d0KHIsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGJXdCh0LGUsbil9KSl9LENXdD1UVXQsQVd0PVNGdCgoZnVuY3Rpb24odCxlKXtpZihudWxsPT10KXJldHVybltdO3ZhciBuPWUubGVuZ3RoO3JldHVybiBuPjEmJkNXdCh0LGVbMF0sZVsxXSk/ZT1bXTpuPjImJkNXdChlWzBdLGVbMV0sZVsyXSkmJihlPVtlWzBdXSksRVd0KHQsTVd0KGUsMSksW10pfSkpLGtXdD1TRHQsTFd0PTA7dmFyIFBXdD1mdW5jdGlvbiBOV3QodCl7dmFyIGU9KytMV3Q7cmV0dXJuIGtXdCh0KStlfTt2YXIgSVd0PWNQdCxSV3Q9ZnVuY3Rpb24gT1d0KHQsZSxuKXtmb3IodmFyIGk9LTEscj10Lmxlbmd0aCxvPWUubGVuZ3RoLGE9e307KytpPHI7KXtuKGEsdFtpXSxpPG8/ZVtpXTp2b2lkIDApfXJldHVybiBhfTt2YXIgeld0LERXdD1mdW5jdGlvbiBCV3QodCxlKXtyZXR1cm4gUld0KHR8fFtdLGV8fFtdLElXdCl9O3RyeXt6V3Q9e2Nsb25lRGVlcDpiVXQsY29uc3RhbnQ6Yk90LGRlZmF1bHRzOklVdCxlYWNoOlVPdCxmaWx0ZXI6Q0J0LGZpbmQ6YWp0LGZsYXR0ZW46dWp0LGZvckVhY2g6Rk90LGZvckluOm1qdCxoYXM6SUJ0LGlzVW5kZWZpbmVkOnFCdCxsYXN0Ol9qdCxtYXA6bkh0LG1hcFZhbHVlczp3anQsbWF4OlBqdCxtZXJnZTp4R3QsbWluOkFHdCxtaW5CeTpJR3Qsbm93OnpHdCxwaWNrOnRXdCxyYW5nZTpsV3QscmVkdWNlOmhIdCxzb3J0Qnk6QVd0LHVuaXF1ZUlkOlBXdCx2YWx1ZXM6bFZ0LHppcE9iamVjdDpEV3R9fWNhdGNoKHQpe316V3R8fCh6V3Q9d2luZG93Ll8pO3ZhciBIV3Q9eld0LEZXdD1WV3Q7ZnVuY3Rpb24gVld0KCl7dmFyIHQ9e307dC5fbmV4dD10Ll9wcmV2PXQsdGhpcy5fc2VudGluZWw9dH1mdW5jdGlvbiBVV3QodCl7dC5fcHJldi5fbmV4dD10Ll9uZXh0LHQuX25leHQuX3ByZXY9dC5fcHJldixkZWxldGUgdC5fbmV4dCxkZWxldGUgdC5fcHJldn1mdW5jdGlvbiBqV3QodCxlKXtpZigiX25leHQiIT09dCYmIl9wcmV2IiE9PXQpcmV0dXJuIGV9Vld0LnByb3RvdHlwZS5kZXF1ZXVlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fc2VudGluZWwsZT10Ll9wcmV2O2lmKGUhPT10KXJldHVybiBVV3QoZSksZX0sVld0LnByb3RvdHlwZS5lbnF1ZXVlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3NlbnRpbmVsO3QuX3ByZXYmJnQuX25leHQmJlVXdCh0KSx0Ll9uZXh0PWUuX25leHQsZS5fbmV4dC5fcHJldj10LGUuX25leHQ9dCx0Ll9wcmV2PWV9LFZXdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT10aGlzLl9zZW50aW5lbCxuPWUuX3ByZXY7biE9PWU7KXQucHVzaChKU09OLnN0cmluZ2lmeShuLGpXdCkpLG49bi5fcHJldjtyZXR1cm4iWyIrdC5qb2luKCIsICIpKyJdIn07dmFyIEdXdD1IV3QsV1d0PXlVdC5HcmFwaCxxV3Q9Rld0LFlXdD1mdW5jdGlvbiBYV3QodCxlKXtpZih0Lm5vZGVDb3VudCgpPD0xKXJldHVybltdO3ZhciBuPShmdW5jdGlvbiBpKHQsZSl7dmFyIG49bmV3IFdXdCxpPTAscj0wO0dXdC5mb3JFYWNoKHQubm9kZXMoKSwoZnVuY3Rpb24odCl7bi5zZXROb2RlKHQse3Y6dCxpbjowLG91dDowfSl9KSksR1d0LmZvckVhY2godC5lZGdlcygpLChmdW5jdGlvbih0KXt2YXIgbz1uLmVkZ2UodC52LHQudyl8fDAsYT1lKHQpO24uc2V0RWRnZSh0LnYsdC53LG8rYSkscj1NYXRoLm1heChyLG4ubm9kZSh0LnYpLm91dCs9YSksaT1NYXRoLm1heChpLG4ubm9kZSh0LncpLmluKz1hKX0pKTt2YXIgbz1HV3QucmFuZ2UocitpKzMpLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHFXdH0pKSxhPWkrMTtyZXR1cm4gR1d0LmZvckVhY2gobi5ub2RlcygpLChmdW5jdGlvbih0KXtaV3QobyxhLG4ubm9kZSh0KSl9KSkse2dyYXBoOm4sYnVja2V0czpvLHplcm9JZHg6YX19KSh0LGV8fCRXdCkscj0oZnVuY3Rpb24gbyh0LGUsbil7dmFyIGkscj1bXSxvPWVbZS5sZW5ndGgtMV0sYT1lWzBdO2Zvcig7dC5ub2RlQ291bnQoKTspe2Zvcig7aT1hLmRlcXVldWUoKTspS1d0KHQsZSxuLGkpO2Zvcig7aT1vLmRlcXVldWUoKTspS1d0KHQsZSxuLGkpO2lmKHQubm9kZUNvdW50KCkpZm9yKHZhciBzPWUubGVuZ3RoLTI7cz4wOy0tcylpZihpPWVbc10uZGVxdWV1ZSgpKXtyPXIuY29uY2F0KEtXdCh0LGUsbixpLCEwKSk7YnJlYWt9fXJldHVybiByfSkobi5ncmFwaCxuLmJ1Y2tldHMsbi56ZXJvSWR4KTtyZXR1cm4gR1d0LmZsYXR0ZW4oR1d0Lm1hcChyLChmdW5jdGlvbihlKXtyZXR1cm4gdC5vdXRFZGdlcyhlLnYsZS53KX0pKSwhMCl9LCRXdD1HV3QuY29uc3RhbnQoMSk7ZnVuY3Rpb24gS1d0KHQsZSxuLGkscil7dmFyIG89cj9bXTp2b2lkIDA7cmV0dXJuIEdXdC5mb3JFYWNoKHQuaW5FZGdlcyhpLnYpLChmdW5jdGlvbihpKXt2YXIgYT10LmVkZ2UoaSkscz10Lm5vZGUoaS52KTtyJiZvLnB1c2goe3Y6aS52LHc6aS53fSkscy5vdXQtPWEsWld0KGUsbixzKX0pKSxHV3QuZm9yRWFjaCh0Lm91dEVkZ2VzKGkudiksKGZ1bmN0aW9uKGkpe3ZhciByPXQuZWRnZShpKSxvPXQubm9kZShpLncpO28uaW4tPXIsWld0KGUsbixvKX0pKSx0LnJlbW92ZU5vZGUoaS52KSxvfWZ1bmN0aW9uIFpXdCh0LGUsbil7bi5vdXQ/bi5pbj90W24ub3V0LW4uaW4rZV0uZW5xdWV1ZShuKTp0W3QubGVuZ3RoLTFdLmVucXVldWUobik6dFswXS5lbnF1ZXVlKG4pfXZhciBKV3Q9SFd0LFFXdD1ZV3QsdHF0PXtydW46ZnVuY3Rpb24gZXF0KHQpe3ZhciBlPSJncmVlZHkiPT09dC5ncmFwaCgpLmFjeWNsaWNlcj9RV3QodCwoZnVuY3Rpb24gbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQuZWRnZShlKS53ZWlnaHR9fSkodCkpOihmdW5jdGlvbiBpKHQpe3ZhciBlPVtdLG49e30saT17fTtmdW5jdGlvbiByKG8pe0pXdC5oYXMoaSxvKXx8KGlbb109ITAsbltvXT0hMCxKV3QuZm9yRWFjaCh0Lm91dEVkZ2VzKG8pLChmdW5jdGlvbih0KXtKV3QuaGFzKG4sdC53KT9lLnB1c2godCk6cih0LncpfSkpLGRlbGV0ZSBuW29dKX1yZXR1cm4gSld0LmZvckVhY2godC5ub2RlcygpLHIpLGV9KSh0KTtKV3QuZm9yRWFjaChlLChmdW5jdGlvbihlKXt2YXIgbj10LmVkZ2UoZSk7dC5yZW1vdmVFZGdlKGUpLG4uZm9yd2FyZE5hbWU9ZS5uYW1lLG4ucmV2ZXJzZWQ9ITAsdC5zZXRFZGdlKGUudyxlLnYsbixKV3QudW5pcXVlSWQoInJldiIpKX0pKX0sdW5kbzpmdW5jdGlvbiBucXQodCl7Sld0LmZvckVhY2godC5lZGdlcygpLChmdW5jdGlvbihlKXt2YXIgbj10LmVkZ2UoZSk7aWYobi5yZXZlcnNlZCl7dC5yZW1vdmVFZGdlKGUpO3ZhciBpPW4uZm9yd2FyZE5hbWU7ZGVsZXRlIG4ucmV2ZXJzZWQsZGVsZXRlIG4uZm9yd2FyZE5hbWUsdC5zZXRFZGdlKGUudyxlLnYsbixpKX19KSl9fTt2YXIgaXF0PUhXdCxycXQ9eVV0LkdyYXBoLG9xdD17YWRkRHVtbXlOb2RlOnlxdCxzaW1wbGlmeTpmdW5jdGlvbiBhcXQodCl7dmFyIGU9KG5ldyBycXQpLnNldEdyYXBoKHQuZ3JhcGgoKSk7cmV0dXJuIGlxdC5mb3JFYWNoKHQubm9kZXMoKSwoZnVuY3Rpb24obil7ZS5zZXROb2RlKG4sdC5ub2RlKG4pKX0pKSxpcXQuZm9yRWFjaCh0LmVkZ2VzKCksKGZ1bmN0aW9uKG4pe3ZhciBpPWUuZWRnZShuLnYsbi53KXx8e3dlaWdodDowLG1pbmxlbjoxfSxyPXQuZWRnZShuKTtlLnNldEVkZ2Uobi52LG4udyx7d2VpZ2h0Omkud2VpZ2h0K3Iud2VpZ2h0LG1pbmxlbjpNYXRoLm1heChpLm1pbmxlbixyLm1pbmxlbil9KX0pKSxlfSxhc05vbkNvbXBvdW5kR3JhcGg6ZnVuY3Rpb24gc3F0KHQpe3ZhciBlPW5ldyBycXQoe211bHRpZ3JhcGg6dC5pc011bHRpZ3JhcGgoKX0pLnNldEdyYXBoKHQuZ3JhcGgoKSk7cmV0dXJuIGlxdC5mb3JFYWNoKHQubm9kZXMoKSwoZnVuY3Rpb24obil7dC5jaGlsZHJlbihuKS5sZW5ndGh8fGUuc2V0Tm9kZShuLHQubm9kZShuKSl9KSksaXF0LmZvckVhY2godC5lZGdlcygpLChmdW5jdGlvbihuKXtlLnNldEVkZ2Uobix0LmVkZ2UobikpfSkpLGV9LHN1Y2Nlc3NvcldlaWdodHM6ZnVuY3Rpb24gbHF0KHQpe3ZhciBlPWlxdC5tYXAodC5ub2RlcygpLChmdW5jdGlvbihlKXt2YXIgbj17fTtyZXR1cm4gaXF0LmZvckVhY2godC5vdXRFZGdlcyhlKSwoZnVuY3Rpb24oZSl7bltlLnddPShuW2Uud118fDApK3QuZWRnZShlKS53ZWlnaHR9KSksbn0pKTtyZXR1cm4gaXF0LnppcE9iamVjdCh0Lm5vZGVzKCksZSl9LHByZWRlY2Vzc29yV2VpZ2h0czpmdW5jdGlvbiBjcXQodCl7dmFyIGU9aXF0Lm1hcCh0Lm5vZGVzKCksKGZ1bmN0aW9uKGUpe3ZhciBuPXt9O3JldHVybiBpcXQuZm9yRWFjaCh0LmluRWRnZXMoZSksKGZ1bmN0aW9uKGUpe25bZS52XT0obltlLnZdfHwwKSt0LmVkZ2UoZSkud2VpZ2h0fSkpLG59KSk7cmV0dXJuIGlxdC56aXBPYmplY3QodC5ub2RlcygpLGUpfSxpbnRlcnNlY3RSZWN0OmZ1bmN0aW9uIHVxdCh0LGUpe3ZhciBuLGkscj10Lngsbz10LnksYT1lLngtcixzPWUueS1vLGw9dC53aWR0aC8yLGM9dC5oZWlnaHQvMjtpZighYSYmIXMpdGhyb3cgbmV3IEVycm9yKCJOb3QgcG9zc2libGUgdG8gZmluZCBpbnRlcnNlY3Rpb24gaW5zaWRlIG9mIHRoZSByZWN0YW5nbGUiKTtNYXRoLmFicyhzKSpsPk1hdGguYWJzKGEpKmM/KHM8MCYmKGM9LWMpLG49YyphL3MsaT1jKTooYTwwJiYobD0tbCksbj1sLGk9bCpzL2EpO3JldHVybnt4OnIrbix5Om8raX19LGJ1aWxkTGF5ZXJNYXRyaXg6ZnVuY3Rpb24gaHF0KHQpe3ZhciBlPWlxdC5tYXAoaXF0LnJhbmdlKHZxdCh0KSsxKSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pKTtyZXR1cm4gaXF0LmZvckVhY2godC5ub2RlcygpLChmdW5jdGlvbihuKXt2YXIgaT10Lm5vZGUobikscj1pLnJhbms7aXF0LmlzVW5kZWZpbmVkKHIpfHwoZVtyXVtpLm9yZGVyXT1uKX0pKSxlfSxub3JtYWxpemVSYW5rczpmdW5jdGlvbiBkcXQodCl7dmFyIGU9aXF0Lm1pbihpcXQubWFwKHQubm9kZXMoKSwoZnVuY3Rpb24oZSl7cmV0dXJuIHQubm9kZShlKS5yYW5rfSkpKTtpcXQuZm9yRWFjaCh0Lm5vZGVzKCksKGZ1bmN0aW9uKG4pe3ZhciBpPXQubm9kZShuKTtpcXQuaGFzKGksInJhbmsiKSYmKGkucmFuay09ZSl9KSl9LHJlbW92ZUVtcHR5UmFua3M6ZnVuY3Rpb24gcHF0KHQpe3ZhciBlPWlxdC5taW4oaXF0Lm1hcCh0Lm5vZGVzKCksKGZ1bmN0aW9uKGUpe3JldHVybiB0Lm5vZGUoZSkucmFua30pKSksbj1bXTtpcXQuZm9yRWFjaCh0Lm5vZGVzKCksKGZ1bmN0aW9uKGkpe3ZhciByPXQubm9kZShpKS5yYW5rLWU7bltyXXx8KG5bcl09W10pLG5bcl0ucHVzaChpKX0pKTt2YXIgaT0wLHI9dC5ncmFwaCgpLm5vZGVSYW5rRmFjdG9yO2lxdC5mb3JFYWNoKG4sKGZ1bmN0aW9uKGUsbil7aXF0LmlzVW5kZWZpbmVkKGUpJiZuJXIhPTA/LS1pOmkmJmlxdC5mb3JFYWNoKGUsKGZ1bmN0aW9uKGUpe3Qubm9kZShlKS5yYW5rKz1pfSkpfSkpfSxhZGRCb3JkZXJOb2RlOmZ1bmN0aW9uIGZxdCh0LGUsbixpKXt2YXIgcj17d2lkdGg6MCxoZWlnaHQ6MH07YXJndW1lbnRzLmxlbmd0aD49NCYmKHIucmFuaz1uLHIub3JkZXI9aSk7cmV0dXJuIHlxdCh0LCJib3JkZXIiLHIsZSl9LG1heFJhbms6dnF0LHBhcnRpdGlvbjpmdW5jdGlvbiBtcXQodCxlKXt2YXIgbj17bGhzOltdLHJoczpbXX07cmV0dXJuIGlxdC5mb3JFYWNoKHQsKGZ1bmN0aW9uKHQpe2UodCk/bi5saHMucHVzaCh0KTpuLnJocy5wdXNoKHQpfSkpLG59LHRpbWU6ZnVuY3Rpb24gZ3F0KHQsZSl7dmFyIG49aXF0Lm5vdygpO3RyeXtyZXR1cm4gZSgpfWZpbmFsbHl7Y29uc29sZS5sb2codCsiIHRpbWU6ICIrKGlxdC5ub3coKS1uKSsibXMiKX19LG5vdGltZTpmdW5jdGlvbiBfcXQodCxlKXtyZXR1cm4gZSgpfX07ZnVuY3Rpb24geXF0KHQsZSxuLGkpe3ZhciByO2Rve3I9aXF0LnVuaXF1ZUlkKGkpfXdoaWxlKHQuaGFzTm9kZShyKSk7cmV0dXJuIG4uZHVtbXk9ZSx0LnNldE5vZGUocixuKSxyfWZ1bmN0aW9uIHZxdCh0KXtyZXR1cm4gaXF0Lm1heChpcXQubWFwKHQubm9kZXMoKSwoZnVuY3Rpb24oZSl7dmFyIG49dC5ub2RlKGUpLnJhbms7aWYoIWlxdC5pc1VuZGVmaW5lZChuKSlyZXR1cm4gbn0pKSl9dmFyIGJxdD1IV3QseHF0PW9xdCx3cXQ9e3J1bjpmdW5jdGlvbiBTcXQodCl7dC5ncmFwaCgpLmR1bW15Q2hhaW5zPVtdLGJxdC5mb3JFYWNoKHQuZWRnZXMoKSwoZnVuY3Rpb24oZSl7IShmdW5jdGlvbiBuKHQsZSl7dmFyIG4saSxyLG89ZS52LGE9dC5ub2RlKG8pLnJhbmsscz1lLncsbD10Lm5vZGUocykucmFuayxjPWUubmFtZSx1PXQuZWRnZShlKSxoPXUubGFiZWxSYW5rO2lmKGw9PT1hKzEpcmV0dXJuO2Zvcih0LnJlbW92ZUVkZ2UoZSkscj0wLCsrYTthPGw7KytyLCsrYSl1LnBvaW50cz1bXSxuPXhxdC5hZGREdW1teU5vZGUodCwiZWRnZSIsaT17d2lkdGg6MCxoZWlnaHQ6MCxlZGdlTGFiZWw6dSxlZGdlT2JqOmUscmFuazphfSwiX2QiKSxhPT09aCYmKGkud2lkdGg9dS53aWR0aCxpLmhlaWdodD11LmhlaWdodCxpLmR1bW15PSJlZGdlLWxhYmVsIixpLmxhYmVscG9zPXUubGFiZWxwb3MpLHQuc2V0RWRnZShvLG4se3dlaWdodDp1LndlaWdodH0sYyksMD09PXImJnQuZ3JhcGgoKS5kdW1teUNoYWlucy5wdXNoKG4pLG89bjt0LnNldEVkZ2UobyxzLHt3ZWlnaHQ6dS53ZWlnaHR9LGMpfSkodCxlKX0pKX0sdW5kbzpmdW5jdGlvbiBNcXQodCl7YnF0LmZvckVhY2godC5ncmFwaCgpLmR1bW15Q2hhaW5zLChmdW5jdGlvbihlKXt2YXIgbixpPXQubm9kZShlKSxyPWkuZWRnZUxhYmVsO2Zvcih0LnNldEVkZ2UoaS5lZGdlT2JqLHIpO2kuZHVtbXk7KW49dC5zdWNjZXNzb3JzKGUpWzBdLHQucmVtb3ZlTm9kZShlKSxyLnBvaW50cy5wdXNoKHt4OmkueCx5OmkueX0pLCJlZGdlLWxhYmVsIj09PWkuZHVtbXkmJihyLng9aS54LHIueT1pLnksci53aWR0aD1pLndpZHRoLHIuaGVpZ2h0PWkuaGVpZ2h0KSxpPXQubm9kZShlPW4pfSkpfX07dmFyIEVxdD1IV3QsVHF0PXtsb25nZXN0UGF0aDpmdW5jdGlvbiBDcXQodCl7dmFyIGU9e307RXF0LmZvckVhY2godC5zb3VyY2VzKCksKGZ1bmN0aW9uIG4oaSl7dmFyIHI9dC5ub2RlKGkpO2lmKEVxdC5oYXMoZSxpKSlyZXR1cm4gci5yYW5rO2VbaV09ITA7dmFyIG89RXF0Lm1pbihFcXQubWFwKHQub3V0RWRnZXMoaSksKGZ1bmN0aW9uKGUpe3JldHVybiBuKGUudyktdC5lZGdlKGUpLm1pbmxlbn0pKSk7cmV0dXJuIG8hPT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkmJm51bGwhPW98fChvPTApLHIucmFuaz1vfSkpfSxzbGFjazpmdW5jdGlvbiBBcXQodCxlKXtyZXR1cm4gdC5ub2RlKGUudykucmFuay10Lm5vZGUoZS52KS5yYW5rLXQuZWRnZShlKS5taW5sZW59fTt2YXIga3F0PUhXdCxMcXQ9eVV0LkdyYXBoLFBxdD1UcXQuc2xhY2ssTnF0PWZ1bmN0aW9uIElxdCh0KXt2YXIgZSxuLGk9bmV3IExxdCh7ZGlyZWN0ZWQ6ITF9KSxyPXQubm9kZXMoKVswXSxvPXQubm9kZUNvdW50KCk7aS5zZXROb2RlKHIse30pO2Zvcig7UnF0KGksdCk8bzspZT1PcXQoaSx0KSxuPWkuaGFzTm9kZShlLnYpP1BxdCh0LGUpOi1QcXQodCxlKSx6cXQoaSx0LG4pO3JldHVybiBpfTtmdW5jdGlvbiBScXQodCxlKXtyZXR1cm4ga3F0LmZvckVhY2godC5ub2RlcygpLChmdW5jdGlvbiBuKGkpe2txdC5mb3JFYWNoKGUubm9kZUVkZ2VzKGkpLChmdW5jdGlvbihyKXt2YXIgbz1yLnYsYT1pPT09bz9yLnc6bzt0Lmhhc05vZGUoYSl8fFBxdChlLHIpfHwodC5zZXROb2RlKGEse30pLHQuc2V0RWRnZShpLGEse30pLG4oYSkpfSkpfSkpLHQubm9kZUNvdW50KCl9ZnVuY3Rpb24gT3F0KHQsZSl7cmV0dXJuIGtxdC5taW5CeShlLmVkZ2VzKCksKGZ1bmN0aW9uKG4pe2lmKHQuaGFzTm9kZShuLnYpIT09dC5oYXNOb2RlKG4udykpcmV0dXJuIFBxdChlLG4pfSkpfWZ1bmN0aW9uIHpxdCh0LGUsbil7a3F0LmZvckVhY2godC5ub2RlcygpLChmdW5jdGlvbih0KXtlLm5vZGUodCkucmFuays9bn0pKX12YXIgRHF0PUhXdCxCcXQ9TnF0LEhxdD1UcXQuc2xhY2ssRnF0PVRxdC5sb25nZXN0UGF0aCxWcXQ9eVV0LmFsZy5wcmVvcmRlcixVcXQ9eVV0LmFsZy5wb3N0b3JkZXIsanF0PW9xdC5zaW1wbGlmeSxHcXQ9V3F0O2Z1bmN0aW9uIFdxdCh0KXt0PWpxdCh0KSxGcXQodCk7dmFyIGUsbj1CcXQodCk7Zm9yKFhxdChuKSxxcXQobix0KTtlPUtxdChuKTspSnF0KG4sdCxlLFpxdChuLHQsZSkpfWZ1bmN0aW9uIHFxdCh0LGUpe3ZhciBuPVVxdCh0LHQubm9kZXMoKSk7bj1uLnNsaWNlKDAsbi5sZW5ndGgtMSksRHF0LmZvckVhY2gobiwoZnVuY3Rpb24obil7IShmdW5jdGlvbiBpKHQsZSxuKXt2YXIgaT10Lm5vZGUobik7dC5lZGdlKG4saS5wYXJlbnQpLmN1dHZhbHVlPVlxdCh0LGUsbil9KSh0LGUsbil9KSl9ZnVuY3Rpb24gWXF0KHQsZSxuKXt2YXIgaT10Lm5vZGUobikucGFyZW50LHI9ITAsbz1lLmVkZ2UobixpKSxhPTA7cmV0dXJuIG98fChyPSExLG89ZS5lZGdlKGksbikpLGE9by53ZWlnaHQsRHF0LmZvckVhY2goZS5ub2RlRWRnZXMobiksKGZ1bmN0aW9uKG8pe3ZhciBzPW8udj09PW4sbD1zP28udzpvLnY7aWYobCE9PWkpe3ZhciBjPXM9PT1yLHU9ZS5lZGdlKG8pLndlaWdodDtpZihhKz1jP3U6LXUsKGZ1bmN0aW9uIGgodCxlLG4pe3JldHVybiB0Lmhhc0VkZ2UoZSxuKX0pKHQsbixsKSl7dmFyIGQ9dC5lZGdlKG4sbCkuY3V0dmFsdWU7YSs9Yz8tZDpkfX19KSksYX1mdW5jdGlvbiBYcXQodCxlKXthcmd1bWVudHMubGVuZ3RoPDImJihlPXQubm9kZXMoKVswXSksJHF0KHQse30sMSxlKX1mdW5jdGlvbiAkcXQodCxlLG4saSxyKXt2YXIgbz1uLGE9dC5ub2RlKGkpO3JldHVybiBlW2ldPSEwLERxdC5mb3JFYWNoKHQubmVpZ2hib3JzKGkpLChmdW5jdGlvbihyKXtEcXQuaGFzKGUscil8fChuPSRxdCh0LGUsbixyLGkpKX0pKSxhLmxvdz1vLGEubGltPW4rKyxyP2EucGFyZW50PXI6ZGVsZXRlIGEucGFyZW50LG59ZnVuY3Rpb24gS3F0KHQpe3JldHVybiBEcXQuZmluZCh0LmVkZ2VzKCksKGZ1bmN0aW9uKGUpe3JldHVybiB0LmVkZ2UoZSkuY3V0dmFsdWU8MH0pKX1mdW5jdGlvbiBacXQodCxlLG4pe3ZhciBpPW4udixyPW4udztlLmhhc0VkZ2UoaSxyKXx8KGk9bi53LHI9bi52KTt2YXIgbz10Lm5vZGUoaSksYT10Lm5vZGUocikscz1vLGw9ITE7by5saW0+YS5saW0mJihzPWEsbD0hMCk7dmFyIGM9RHF0LmZpbHRlcihlLmVkZ2VzKCksKGZ1bmN0aW9uKGUpe3JldHVybiBsPT09UXF0KHQsdC5ub2RlKGUudikscykmJmwhPT1RcXQodCx0Lm5vZGUoZS53KSxzKX0pKTtyZXR1cm4gRHF0Lm1pbkJ5KGMsKGZ1bmN0aW9uKHQpe3JldHVybiBIcXQoZSx0KX0pKX1mdW5jdGlvbiBKcXQodCxlLG4saSl7dC5yZW1vdmVFZGdlKG4udixuLncpLHQuc2V0RWRnZShpLnYsaS53LHt9KSxYcXQodCkscXF0KHQsZSksKGZ1bmN0aW9uIHIodCxlKXt2YXIgbj1EcXQuZmluZCh0Lm5vZGVzKCksKGZ1bmN0aW9uKHQpe3JldHVybiFlLm5vZGUodCkucGFyZW50fSkpLGk9VnF0KHQsbik7aT1pLnNsaWNlKDEpLERxdC5mb3JFYWNoKGksKGZ1bmN0aW9uKG4pe3ZhciBpPXQubm9kZShuKS5wYXJlbnQscj1lLmVkZ2UobixpKSxvPSExO3J8fChyPWUuZWRnZShpLG4pLG89ITApLGUubm9kZShuKS5yYW5rPWUubm9kZShpKS5yYW5rKyhvP3IubWlubGVuOi1yLm1pbmxlbil9KSl9KSh0LGUpfWZ1bmN0aW9uIFFxdCh0LGUsbil7cmV0dXJuIG4ubG93PD1lLmxpbSYmZS5saW08PW4ubGltfVdxdC5pbml0TG93TGltVmFsdWVzPVhxdCxXcXQuaW5pdEN1dFZhbHVlcz1xcXQsV3F0LmNhbGNDdXRWYWx1ZT1ZcXQsV3F0LmxlYXZlRWRnZT1LcXQsV3F0LmVudGVyRWRnZT1acXQsV3F0LmV4Y2hhbmdlRWRnZXM9SnF0O3ZhciB0WXQ9VHF0Lmxvbmdlc3RQYXRoLGVZdD1OcXQsbll0PUdxdCxpWXQ9ZnVuY3Rpb24gcll0KHQpe3N3aXRjaCh0LmdyYXBoKCkucmFua2VyKXtjYXNlIm5ldHdvcmstc2ltcGxleCI6YVl0KHQpO2JyZWFrO2Nhc2UidGlnaHQtdHJlZSI6IShmdW5jdGlvbiBlKHQpe3RZdCh0KSxlWXQodCl9KSh0KTticmVhaztjYXNlImxvbmdlc3QtcGF0aCI6b1l0KHQpO2JyZWFrO2RlZmF1bHQ6YVl0KHQpfX07dmFyIG9ZdD10WXQ7ZnVuY3Rpb24gYVl0KHQpe25ZdCh0KX12YXIgc1l0PUhXdDt2YXIgbFl0PUhXdCxjWXQ9b3F0O2Z1bmN0aW9uIHVZdCh0LGUsbixpLHIsbyxhKXt2YXIgcz10LmNoaWxkcmVuKGEpO2lmKHMubGVuZ3RoKXt2YXIgbD1jWXQuYWRkQm9yZGVyTm9kZSh0LCJfYnQiKSxjPWNZdC5hZGRCb3JkZXJOb2RlKHQsIl9iYiIpLHU9dC5ub2RlKGEpO3Quc2V0UGFyZW50KGwsYSksdS5ib3JkZXJUb3A9bCx0LnNldFBhcmVudChjLGEpLHUuYm9yZGVyQm90dG9tPWMsbFl0LmZvckVhY2gocywoZnVuY3Rpb24ocyl7dVl0KHQsZSxuLGkscixvLHMpO3ZhciB1PXQubm9kZShzKSxoPXUuYm9yZGVyVG9wP3UuYm9yZGVyVG9wOnMsZD11LmJvcmRlckJvdHRvbT91LmJvcmRlckJvdHRvbTpzLHA9dS5ib3JkZXJUb3A/aToyKmksZj1oIT09ZD8xOnItb1thXSsxO3Quc2V0RWRnZShsLGgse3dlaWdodDpwLG1pbmxlbjpmLG5lc3RpbmdFZGdlOiEwfSksdC5zZXRFZGdlKGQsYyx7d2VpZ2h0OnAsbWlubGVuOmYsbmVzdGluZ0VkZ2U6ITB9KX0pKSx0LnBhcmVudChhKXx8dC5zZXRFZGdlKGUsbCx7d2VpZ2h0OjAsbWlubGVuOnIrb1thXX0pfWVsc2UgYSE9PWUmJnQuc2V0RWRnZShlLGEse3dlaWdodDowLG1pbmxlbjpufSl9dmFyIGhZdD1IV3QsZFl0PW9xdCxwWXQ9ZnVuY3Rpb24gZll0KHQpe2hZdC5mb3JFYWNoKHQuY2hpbGRyZW4oKSwoZnVuY3Rpb24gZShuKXt2YXIgaT10LmNoaWxkcmVuKG4pLHI9dC5ub2RlKG4pO2lmKGkubGVuZ3RoJiZoWXQuZm9yRWFjaChpLGUpLGhZdC5oYXMociwibWluUmFuayIpKXtyLmJvcmRlckxlZnQ9W10sci5ib3JkZXJSaWdodD1bXTtmb3IodmFyIG89ci5taW5SYW5rLGE9ci5tYXhSYW5rKzE7bzxhOysrbyltWXQodCwiYm9yZGVyTGVmdCIsIl9ibCIsbixyLG8pLG1ZdCh0LCJib3JkZXJSaWdodCIsIl9iciIsbixyLG8pfX0pKX07ZnVuY3Rpb24gbVl0KHQsZSxuLGkscixvKXt2YXIgYT1yW2VdW28tMV0scz1kWXQuYWRkRHVtbXlOb2RlKHQsImJvcmRlciIse3dpZHRoOjAsaGVpZ2h0OjAscmFuazpvLGJvcmRlclR5cGU6ZX0sbik7cltlXVtvXT1zLHQuc2V0UGFyZW50KHMsaSksYSYmdC5zZXRFZGdlKGEscyx7d2VpZ2h0OjF9KX12YXIgZ1l0PUhXdDtmdW5jdGlvbiBfWXQodCl7Z1l0LmZvckVhY2godC5ub2RlcygpLChmdW5jdGlvbihlKXt5WXQodC5ub2RlKGUpKX0pKSxnWXQuZm9yRWFjaCh0LmVkZ2VzKCksKGZ1bmN0aW9uKGUpe3lZdCh0LmVkZ2UoZSkpfSkpfWZ1bmN0aW9uIHlZdCh0KXt2YXIgZT10LndpZHRoO3Qud2lkdGg9dC5oZWlnaHQsdC5oZWlnaHQ9ZX1mdW5jdGlvbiB2WXQodCl7dC55PS10Lnl9ZnVuY3Rpb24gYll0KHQpe3ZhciBlPXQueDt0Lng9dC55LHQueT1lfXZhciB4WXQ9SFd0O3ZhciB3WXQ9SFd0O2Z1bmN0aW9uIFNZdCh0LGUsbil7Zm9yKHZhciBpPXdZdC56aXBPYmplY3Qobix3WXQubWFwKG4sKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV9KSkpLHI9d1l0LmZsYXR0ZW4od1l0Lm1hcChlLChmdW5jdGlvbihlKXtyZXR1cm4gd1l0LnNvcnRCeSh3WXQubWFwKHQub3V0RWRnZXMoZSksKGZ1bmN0aW9uKGUpe3JldHVybntwb3M6aVtlLnddLHdlaWdodDp0LmVkZ2UoZSkud2VpZ2h0fX0pKSwicG9zIil9KSksITApLG89MTtvPG4ubGVuZ3RoOylvPDw9MTt2YXIgYT0yKm8tMTtvLT0xO3ZhciBzPXdZdC5tYXAobmV3IEFycmF5KGEpLChmdW5jdGlvbigpe3JldHVybiAwfSkpLGw9MDtyZXR1cm4gd1l0LmZvckVhY2goci5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10LnBvcytvO3NbZV0rPXQud2VpZ2h0O2Zvcih2YXIgbj0wO2U+MDspZSUyJiYobis9c1tlKzFdKSxzW2U9ZS0xPj4xXSs9dC53ZWlnaHQ7bCs9dC53ZWlnaHQqbn0pKSksbH12YXIgTVl0PUhXdDt2YXIgRVl0PUhXdDt2YXIgVFl0PUhXdCxDWXQ9b3F0O2Z1bmN0aW9uIEFZdCh0LGUsbil7Zm9yKHZhciBpO2UubGVuZ3RoJiYoaT1UWXQubGFzdChlKSkuaTw9bjspZS5wb3AoKSx0LnB1c2goaS52cyksbisrO3JldHVybiBufXZhciBrWXQ9SFd0LExZdD1mdW5jdGlvbiBQWXQodCxlKXtyZXR1cm4gTVl0Lm1hcChlLChmdW5jdGlvbihlKXt2YXIgbj10LmluRWRnZXMoZSk7aWYobi5sZW5ndGgpe3ZhciBpPU1ZdC5yZWR1Y2UobiwoZnVuY3Rpb24oZSxuKXt2YXIgaT10LmVkZ2Uobikscj10Lm5vZGUobi52KTtyZXR1cm57c3VtOmUuc3VtK2kud2VpZ2h0KnIub3JkZXIsd2VpZ2h0OmUud2VpZ2h0K2kud2VpZ2h0fX0pLHtzdW06MCx3ZWlnaHQ6MH0pO3JldHVybnt2OmUsYmFyeWNlbnRlcjppLnN1bS9pLndlaWdodCx3ZWlnaHQ6aS53ZWlnaHR9fXJldHVybnt2OmV9fSkpfSxOWXQ9ZnVuY3Rpb24gSVl0KHQsZSl7dmFyIG49e307cmV0dXJuIEVZdC5mb3JFYWNoKHQsKGZ1bmN0aW9uKHQsZSl7dmFyIGk9blt0LnZdPXtpbmRlZ3JlZTowLGluOltdLG91dDpbXSx2czpbdC52XSxpOmV9O0VZdC5pc1VuZGVmaW5lZCh0LmJhcnljZW50ZXIpfHwoaS5iYXJ5Y2VudGVyPXQuYmFyeWNlbnRlcixpLndlaWdodD10LndlaWdodCl9KSksRVl0LmZvckVhY2goZS5lZGdlcygpLChmdW5jdGlvbih0KXt2YXIgZT1uW3Qudl0saT1uW3Qud107RVl0LmlzVW5kZWZpbmVkKGUpfHxFWXQuaXNVbmRlZmluZWQoaSl8fChpLmluZGVncmVlKyssZS5vdXQucHVzaChuW3Qud10pKX0pKSwoZnVuY3Rpb24gaSh0KXt2YXIgZT1bXTtmdW5jdGlvbiBuKHQpe3JldHVybiBmdW5jdGlvbihlKXtlLm1lcmdlZHx8KEVZdC5pc1VuZGVmaW5lZChlLmJhcnljZW50ZXIpfHxFWXQuaXNVbmRlZmluZWQodC5iYXJ5Y2VudGVyKXx8ZS5iYXJ5Y2VudGVyPj10LmJhcnljZW50ZXIpJiYoZnVuY3Rpb24gbih0LGUpe3ZhciBuPTAsaT0wO3Qud2VpZ2h0JiYobis9dC5iYXJ5Y2VudGVyKnQud2VpZ2h0LGkrPXQud2VpZ2h0KTtlLndlaWdodCYmKG4rPWUuYmFyeWNlbnRlciplLndlaWdodCxpKz1lLndlaWdodCk7dC52cz1lLnZzLmNvbmNhdCh0LnZzKSx0LmJhcnljZW50ZXI9bi9pLHQud2VpZ2h0PWksdC5pPU1hdGgubWluKGUuaSx0LmkpLGUubWVyZ2VkPSEwfSkodCxlKX19ZnVuY3Rpb24gaShlKXtyZXR1cm4gZnVuY3Rpb24obil7bi5pbi5wdXNoKGUpLDA9PS0tbi5pbmRlZ3JlZSYmdC5wdXNoKG4pfX1mb3IoO3QubGVuZ3RoOyl7dmFyIHI9dC5wb3AoKTtlLnB1c2gociksRVl0LmZvckVhY2goci5pbi5yZXZlcnNlKCksbihyKSksRVl0LmZvckVhY2goci5vdXQsaShyKSl9cmV0dXJuIEVZdC5tYXAoRVl0LmZpbHRlcihlLChmdW5jdGlvbih0KXtyZXR1cm4hdC5tZXJnZWR9KSksKGZ1bmN0aW9uKHQpe3JldHVybiBFWXQucGljayh0LFsidnMiLCJpIiwiYmFyeWNlbnRlciIsIndlaWdodCJdKX0pKX0pKEVZdC5maWx0ZXIobiwoZnVuY3Rpb24odCl7cmV0dXJuIXQuaW5kZWdyZWV9KSkpfSxSWXQ9ZnVuY3Rpb24gT1l0KHQsZSl7dmFyIG49Q1l0LnBhcnRpdGlvbih0LChmdW5jdGlvbih0KXtyZXR1cm4gVFl0Lmhhcyh0LCJiYXJ5Y2VudGVyIil9KSksaT1uLmxocyxyPVRZdC5zb3J0Qnkobi5yaHMsKGZ1bmN0aW9uKHQpe3JldHVybi10Lml9KSksbz1bXSxhPTAscz0wLGw9MDtpLnNvcnQoKGZ1bmN0aW9uIGModCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7cmV0dXJuIGUuYmFyeWNlbnRlcjxuLmJhcnljZW50ZXI/LTE6ZS5iYXJ5Y2VudGVyPm4uYmFyeWNlbnRlcj8xOnQ/bi5pLWUuaTplLmktbi5pfX0pKCEhZSkpLGw9QVl0KG8scixsKSxUWXQuZm9yRWFjaChpLChmdW5jdGlvbih0KXtsKz10LnZzLmxlbmd0aCxvLnB1c2godC52cyksYSs9dC5iYXJ5Y2VudGVyKnQud2VpZ2h0LHMrPXQud2VpZ2h0LGw9QVl0KG8scixsKX0pKTt2YXIgdT17dnM6VFl0LmZsYXR0ZW4obywhMCl9O3MmJih1LmJhcnljZW50ZXI9YS9zLHUud2VpZ2h0PXMpO3JldHVybiB1fTt2YXIgell0PUhXdCxEWXQ9eVV0LkdyYXBoO3ZhciBCWXQ9SFd0O3ZhciBIWXQ9SFd0LEZZdD1mdW5jdGlvbiBWWXQodCl7dmFyIGU9e30sbj14WXQuZmlsdGVyKHQubm9kZXMoKSwoZnVuY3Rpb24oZSl7cmV0dXJuIXQuY2hpbGRyZW4oZSkubGVuZ3RofSkpLGk9eFl0Lm1heCh4WXQubWFwKG4sKGZ1bmN0aW9uKGUpe3JldHVybiB0Lm5vZGUoZSkucmFua30pKSkscj14WXQubWFwKHhZdC5yYW5nZShpKzEpLChmdW5jdGlvbigpe3JldHVybltdfSkpO2Z1bmN0aW9uIG8obil7aWYoIXhZdC5oYXMoZSxuKSl7ZVtuXT0hMDt2YXIgaT10Lm5vZGUobik7cltpLnJhbmtdLnB1c2gobikseFl0LmZvckVhY2godC5zdWNjZXNzb3JzKG4pLG8pfX12YXIgYT14WXQuc29ydEJ5KG4sKGZ1bmN0aW9uKGUpe3JldHVybiB0Lm5vZGUoZSkucmFua30pKTtyZXR1cm4geFl0LmZvckVhY2goYSxvKSxyfSxVWXQ9ZnVuY3Rpb24gall0KHQsZSl7Zm9yKHZhciBuPTAsaT0xO2k8ZS5sZW5ndGg7KytpKW4rPVNZdCh0LGVbaS0xXSxlW2ldKTtyZXR1cm4gbn0sR1l0PWZ1bmN0aW9uIHQoZSxuLGkscil7dmFyIG89ZS5jaGlsZHJlbihuKSxhPWUubm9kZShuKSxzPWE/YS5ib3JkZXJMZWZ0OnZvaWQgMCxsPWE/YS5ib3JkZXJSaWdodDp2b2lkIDAsYz17fTtzJiYobz1rWXQuZmlsdGVyKG8sKGZ1bmN0aW9uKHQpe3JldHVybiB0IT09cyYmdCE9PWx9KSkpO3ZhciB1PUxZdChlLG8pO2tZdC5mb3JFYWNoKHUsKGZ1bmN0aW9uKG4pe2lmKGUuY2hpbGRyZW4obi52KS5sZW5ndGgpe3ZhciBvPXQoZSxuLnYsaSxyKTtjW24udl09byxrWXQuaGFzKG8sImJhcnljZW50ZXIiKSYmKGZ1bmN0aW9uIGEodCxlKXtrWXQuaXNVbmRlZmluZWQodC5iYXJ5Y2VudGVyKT8odC5iYXJ5Y2VudGVyPWUuYmFyeWNlbnRlcix0LndlaWdodD1lLndlaWdodCk6KHQuYmFyeWNlbnRlcj0odC5iYXJ5Y2VudGVyKnQud2VpZ2h0K2UuYmFyeWNlbnRlciplLndlaWdodCkvKHQud2VpZ2h0K2Uud2VpZ2h0KSx0LndlaWdodCs9ZS53ZWlnaHQpfSkobixvKX19KSk7dmFyIGg9Tll0KHUsaSk7IShmdW5jdGlvbiBkKHQsZSl7a1l0LmZvckVhY2godCwoZnVuY3Rpb24odCl7dC52cz1rWXQuZmxhdHRlbih0LnZzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGVbdF0/ZVt0XS52czp0fSkpLCEwKX0pKX0pKGgsYyk7dmFyIHA9Ull0KGgscik7aWYocyYmKHAudnM9a1l0LmZsYXR0ZW4oW3MscC52cyxsXSwhMCksZS5wcmVkZWNlc3NvcnMocykubGVuZ3RoKSl7dmFyIGY9ZS5ub2RlKGUucHJlZGVjZXNzb3JzKHMpWzBdKSxtPWUubm9kZShlLnByZWRlY2Vzc29ycyhsKVswXSk7a1l0LmhhcyhwLCJiYXJ5Y2VudGVyIil8fChwLmJhcnljZW50ZXI9MCxwLndlaWdodD0wKSxwLmJhcnljZW50ZXI9KHAuYmFyeWNlbnRlcipwLndlaWdodCtmLm9yZGVyK20ub3JkZXIpLyhwLndlaWdodCsyKSxwLndlaWdodCs9Mn1yZXR1cm4gcH0sV1l0PWZ1bmN0aW9uIHFZdCh0LGUsbil7dmFyIGk9KGZ1bmN0aW9uIHIodCl7dmFyIGU7Zm9yKDt0Lmhhc05vZGUoZT16WXQudW5pcXVlSWQoIl9yb290IikpOyk7cmV0dXJuIGV9KSh0KSxvPW5ldyBEWXQoe2NvbXBvdW5kOiEwfSkuc2V0R3JhcGgoe3Jvb3Q6aX0pLnNldERlZmF1bHROb2RlTGFiZWwoKGZ1bmN0aW9uKGUpe3JldHVybiB0Lm5vZGUoZSl9KSk7cmV0dXJuIHpZdC5mb3JFYWNoKHQubm9kZXMoKSwoZnVuY3Rpb24ocil7dmFyIGE9dC5ub2RlKHIpLHM9dC5wYXJlbnQocik7KGEucmFuaz09PWV8fGEubWluUmFuazw9ZSYmZTw9YS5tYXhSYW5rKSYmKG8uc2V0Tm9kZShyKSxvLnNldFBhcmVudChyLHN8fGkpLHpZdC5mb3JFYWNoKHRbbl0ociksKGZ1bmN0aW9uKGUpe3ZhciBuPWUudj09PXI/ZS53OmUudixpPW8uZWRnZShuLHIpLGE9ell0LmlzVW5kZWZpbmVkKGkpPzA6aS53ZWlnaHQ7by5zZXRFZGdlKG4scix7d2VpZ2h0OnQuZWRnZShlKS53ZWlnaHQrYX0pfSkpLHpZdC5oYXMoYSwibWluUmFuayIpJiZvLnNldE5vZGUocix7Ym9yZGVyTGVmdDphLmJvcmRlckxlZnRbZV0sYm9yZGVyUmlnaHQ6YS5ib3JkZXJSaWdodFtlXX0pKX0pKSxvfSxZWXQ9ZnVuY3Rpb24gWFl0KHQsZSxuKXt2YXIgaSxyPXt9O0JZdC5mb3JFYWNoKG4sKGZ1bmN0aW9uKG4pe2Zvcih2YXIgbyxhLHM9dC5wYXJlbnQobik7czspe2lmKChvPXQucGFyZW50KHMpKT8oYT1yW29dLHJbb109cyk6KGE9aSxpPXMpLGEmJmEhPT1zKXJldHVybiB2b2lkIGUuc2V0RWRnZShhLHMpO3M9b319KSl9LCRZdD15VXQuR3JhcGgsS1l0PW9xdDtmdW5jdGlvbiBaWXQodCxlLG4pe3JldHVybiBIWXQubWFwKGUsKGZ1bmN0aW9uKGUpe3JldHVybiBXWXQodCxlLG4pfSkpfWZ1bmN0aW9uIEpZdCh0LGUpe3ZhciBuPW5ldyAkWXQ7SFl0LmZvckVhY2godCwoZnVuY3Rpb24odCl7dmFyIGk9dC5ncmFwaCgpLnJvb3Qscj1HWXQodCxpLG4sZSk7SFl0LmZvckVhY2goci52cywoZnVuY3Rpb24oZSxuKXt0Lm5vZGUoZSkub3JkZXI9bn0pKSxZWXQodCxuLHIudnMpfSkpfWZ1bmN0aW9uIFFZdCh0LGUpe0hZdC5mb3JFYWNoKGUsKGZ1bmN0aW9uKGUpe0hZdC5mb3JFYWNoKGUsKGZ1bmN0aW9uKGUsbil7dC5ub2RlKGUpLm9yZGVyPW59KSl9KSl9dmFyIHRYdD1IV3QsZVh0PXlVdC5HcmFwaCxuWHQ9b3F0LGlYdD1mdW5jdGlvbiByWHQodCl7dmFyIGUsbj1uWHQuYnVpbGRMYXllck1hdHJpeCh0KSxpPXRYdC5tZXJnZShvWHQodCxuKSxhWHQodCxuKSkscj17fTt0WHQuZm9yRWFjaChbInUiLCJkIl0sKGZ1bmN0aW9uKG8pe2U9InUiPT09bz9uOnRYdC52YWx1ZXMobikucmV2ZXJzZSgpLHRYdC5mb3JFYWNoKFsibCIsInIiXSwoZnVuY3Rpb24obil7InIiPT09biYmKGU9dFh0Lm1hcChlLChmdW5jdGlvbih0KXtyZXR1cm4gdFh0LnZhbHVlcyh0KS5yZXZlcnNlKCl9KSkpO3ZhciBhPSgidSI9PT1vP3QucHJlZGVjZXNzb3JzOnQuc3VjY2Vzc29ycykuYmluZCh0KSxzPWNYdCh0LGUsaSxhKSxsPXVYdCh0LGUscy5yb290LHMuYWxpZ24sInIiPT09bik7InIiPT09biYmKGw9dFh0Lm1hcFZhbHVlcyhsLChmdW5jdGlvbih0KXtyZXR1cm4tdH0pKSkscltvK25dPWx9KSl9KSk7dmFyIG89aFh0KHQscik7cmV0dXJuIGRYdChyLG8pLHBYdChyLHQuZ3JhcGgoKS5hbGlnbil9O2Z1bmN0aW9uIG9YdCh0LGUpe3ZhciBuPXt9O3JldHVybiB0WHQucmVkdWNlKGUsKGZ1bmN0aW9uIGkoZSxyKXt2YXIgbz0wLGE9MCxzPWUubGVuZ3RoLGw9dFh0Lmxhc3Qocik7cmV0dXJuIHRYdC5mb3JFYWNoKHIsKGZ1bmN0aW9uKGUsaSl7dmFyIGM9KGZ1bmN0aW9uIHUodCxlKXtpZih0Lm5vZGUoZSkuZHVtbXkpcmV0dXJuIHRYdC5maW5kKHQucHJlZGVjZXNzb3JzKGUpLChmdW5jdGlvbihlKXtyZXR1cm4gdC5ub2RlKGUpLmR1bW15fSkpfSkodCxlKSxoPWM/dC5ub2RlKGMpLm9yZGVyOnM7KGN8fGU9PT1sKSYmKHRYdC5mb3JFYWNoKHIuc2xpY2UoYSxpKzEpLChmdW5jdGlvbihlKXt0WHQuZm9yRWFjaCh0LnByZWRlY2Vzc29ycyhlKSwoZnVuY3Rpb24oaSl7dmFyIHI9dC5ub2RlKGkpLGE9ci5vcmRlcjshKGE8b3x8aDxhKXx8ci5kdW1teSYmdC5ub2RlKGUpLmR1bW15fHxzWHQobixpLGUpfSkpfSkpLGE9aSsxLG89aCl9KSkscn0pKSxufWZ1bmN0aW9uIGFYdCh0LGUpe3ZhciBuPXt9O2Z1bmN0aW9uIGkoZSxpLHIsbyxhKXt2YXIgczt0WHQuZm9yRWFjaCh0WHQucmFuZ2UoaSxyKSwoZnVuY3Rpb24oaSl7dC5ub2RlKHM9ZVtpXSkuZHVtbXkmJnRYdC5mb3JFYWNoKHQucHJlZGVjZXNzb3JzKHMpLChmdW5jdGlvbihlKXt2YXIgaT10Lm5vZGUoZSk7aS5kdW1teSYmKGkub3JkZXI8b3x8aS5vcmRlcj5hKSYmc1h0KG4sZSxzKX0pKX0pKX1yZXR1cm4gdFh0LnJlZHVjZShlLChmdW5jdGlvbiByKGUsbil7dmFyIHIsbz0tMSxhPTA7cmV0dXJuIHRYdC5mb3JFYWNoKG4sKGZ1bmN0aW9uKHMsbCl7aWYoImJvcmRlciI9PT10Lm5vZGUocykuZHVtbXkpe3ZhciBjPXQucHJlZGVjZXNzb3JzKHMpO2MubGVuZ3RoJiYocj10Lm5vZGUoY1swXSkub3JkZXIsaShuLGEsbCxvLHIpLGE9bCxvPXIpfWkobixhLG4ubGVuZ3RoLHIsZS5sZW5ndGgpfSkpLG59KSksbn1mdW5jdGlvbiBzWHQodCxlLG4pe2lmKGU+bil7dmFyIGk9ZTtlPW4sbj1pfXZhciByPXRbZV07cnx8KHRbZV09cj17fSkscltuXT0hMH1mdW5jdGlvbiBsWHQodCxlLG4pe2lmKGU+bil7dmFyIGk9ZTtlPW4sbj1pfXJldHVybiB0WHQuaGFzKHRbZV0sbil9ZnVuY3Rpb24gY1h0KHQsZSxuLGkpe3ZhciByPXt9LG89e30sYT17fTtyZXR1cm4gdFh0LmZvckVhY2goZSwoZnVuY3Rpb24odCl7dFh0LmZvckVhY2godCwoZnVuY3Rpb24odCxlKXtyW3RdPXQsb1t0XT10LGFbdF09ZX0pKX0pKSx0WHQuZm9yRWFjaChlLChmdW5jdGlvbih0KXt2YXIgZT0tMTt0WHQuZm9yRWFjaCh0LChmdW5jdGlvbih0KXt2YXIgcz1pKHQpO2lmKHMubGVuZ3RoKWZvcih2YXIgbD0oKHM9dFh0LnNvcnRCeShzLChmdW5jdGlvbih0KXtyZXR1cm4gYVt0XX0pKSkubGVuZ3RoLTEpLzIsYz1NYXRoLmZsb29yKGwpLHU9TWF0aC5jZWlsKGwpO2M8PXU7KytjKXt2YXIgaD1zW2NdO29bdF09PT10JiZlPGFbaF0mJiFsWHQobix0LGgpJiYob1toXT10LG9bdF09clt0XT1yW2hdLGU9YVtoXSl9fSkpfSkpLHtyb290OnIsYWxpZ246b319ZnVuY3Rpb24gdVh0KHQsZSxuLGkscil7dmFyIG89e30sYT0oZnVuY3Rpb24gcyh0LGUsbixpKXt2YXIgcj1uZXcgZVh0LG89dC5ncmFwaCgpLGE9KGZ1bmN0aW9uIHModCxlLG4pe3JldHVybiBmdW5jdGlvbihpLHIsbyl7dmFyIGEscz1pLm5vZGUociksbD1pLm5vZGUobyksYz0wO2lmKGMrPXMud2lkdGgvMix0WHQuaGFzKHMsImxhYmVscG9zIikpc3dpdGNoKHMubGFiZWxwb3MudG9Mb3dlckNhc2UoKSl7Y2FzZSJsIjphPS1zLndpZHRoLzI7YnJlYWs7Y2FzZSJyIjphPXMud2lkdGgvMn1pZihhJiYoYys9bj9hOi1hKSxhPTAsYys9KHMuZHVtbXk/ZTp0KS8yLGMrPShsLmR1bW15P2U6dCkvMixjKz1sLndpZHRoLzIsdFh0LmhhcyhsLCJsYWJlbHBvcyIpKXN3aXRjaChsLmxhYmVscG9zLnRvTG93ZXJDYXNlKCkpe2Nhc2UibCI6YT1sLndpZHRoLzI7YnJlYWs7Y2FzZSJyIjphPS1sLndpZHRoLzJ9cmV0dXJuIGEmJihjKz1uP2E6LWEpLGE9MCxjfX0pKG8ubm9kZXNlcCxvLmVkZ2VzZXAsaSk7cmV0dXJuIHRYdC5mb3JFYWNoKGUsKGZ1bmN0aW9uKGUpe3ZhciBpO3RYdC5mb3JFYWNoKGUsKGZ1bmN0aW9uKGUpe3ZhciBvPW5bZV07aWYoci5zZXROb2RlKG8pLGkpe3ZhciBzPW5baV0sbD1yLmVkZ2UocyxvKTtyLnNldEVkZ2UocyxvLE1hdGgubWF4KGEodCxlLGkpLGx8fDApKX1pPWV9KSl9KSkscn0pKHQsZSxuLHIpLGw9cj8iYm9yZGVyTGVmdCI6ImJvcmRlclJpZ2h0IjtmdW5jdGlvbiBjKHQsZSl7Zm9yKHZhciBuPWEubm9kZXMoKSxpPW4ucG9wKCkscj17fTtpOylyW2ldP3QoaSk6KHJbaV09ITAsbi5wdXNoKGkpLG49bi5jb25jYXQoZShpKSkpLGk9bi5wb3AoKX1yZXR1cm4gYygoZnVuY3Rpb24gdSh0KXtvW3RdPWEuaW5FZGdlcyh0KS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGgubWF4KHQsb1tlLnZdK2EuZWRnZShlKSl9KSwwKX0pLGEucHJlZGVjZXNzb3JzLmJpbmQoYSkpLGMoKGZ1bmN0aW9uIGgoZSl7dmFyIG49YS5vdXRFZGdlcyhlKS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGgubWluKHQsb1tlLnddLWEuZWRnZShlKSl9KSxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLGk9dC5ub2RlKGUpO24hPT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkmJmkuYm9yZGVyVHlwZSE9PWwmJihvW2VdPU1hdGgubWF4KG9bZV0sbikpfSksYS5zdWNjZXNzb3JzLmJpbmQoYSkpLHRYdC5mb3JFYWNoKGksKGZ1bmN0aW9uKHQpe29bdF09b1tuW3RdXX0pKSxvfWZ1bmN0aW9uIGhYdCh0LGUpe3JldHVybiB0WHQubWluQnkodFh0LnZhbHVlcyhlKSwoZnVuY3Rpb24oZSl7dmFyIG49TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLGk9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO3JldHVybiB0WHQuZm9ySW4oZSwoZnVuY3Rpb24oZSxyKXt2YXIgbz0oZnVuY3Rpb24gYSh0LGUpe3JldHVybiB0Lm5vZGUoZSkud2lkdGh9KSh0LHIpLzI7bj1NYXRoLm1heChlK28sbiksaT1NYXRoLm1pbihlLW8saSl9KSksbi1pfSkpfWZ1bmN0aW9uIGRYdCh0LGUpe3ZhciBuPXRYdC52YWx1ZXMoZSksaT10WHQubWluKG4pLHI9dFh0Lm1heChuKTt0WHQuZm9yRWFjaChbInUiLCJkIl0sKGZ1bmN0aW9uKG4pe3RYdC5mb3JFYWNoKFsibCIsInIiXSwoZnVuY3Rpb24obyl7dmFyIGEscz1uK28sbD10W3NdO2lmKGwhPT1lKXt2YXIgYz10WHQudmFsdWVzKGwpOyhhPSJsIj09PW8/aS10WHQubWluKGMpOnItdFh0Lm1heChjKSkmJih0W3NdPXRYdC5tYXBWYWx1ZXMobCwoZnVuY3Rpb24odCl7cmV0dXJuIHQrYX0pKSl9fSkpfSkpfWZ1bmN0aW9uIHBYdCh0LGUpe3JldHVybiB0WHQubWFwVmFsdWVzKHQudWwsKGZ1bmN0aW9uKG4saSl7aWYoZSlyZXR1cm4gdFtlLnRvTG93ZXJDYXNlKCldW2ldO3ZhciByPXRYdC5zb3J0QnkodFh0Lm1hcCh0LGkpKTtyZXR1cm4oclsxXStyWzJdKS8yfSkpfXZhciBmWHQ9SFd0LG1YdD1vcXQsZ1h0PWlYdDt2YXIgX1h0PUhXdCx5WHQ9dHF0LHZYdD13cXQsYlh0PWlZdCx4WHQ9b3F0Lm5vcm1hbGl6ZVJhbmtzLHdYdD1mdW5jdGlvbiBTWHQodCl7dmFyIGU9KGZ1bmN0aW9uIG4odCl7dmFyIGU9e30sbj0wO2Z1bmN0aW9uIGkocil7dmFyIG89bjtzWXQuZm9yRWFjaCh0LmNoaWxkcmVuKHIpLGkpLGVbcl09e2xvdzpvLGxpbTpuKyt9fXJldHVybiBzWXQuZm9yRWFjaCh0LmNoaWxkcmVuKCksaSksZX0pKHQpO3NZdC5mb3JFYWNoKHQuZ3JhcGgoKS5kdW1teUNoYWlucywoZnVuY3Rpb24obil7Zm9yKHZhciBpPXQubm9kZShuKSxyPWkuZWRnZU9iaixvPShmdW5jdGlvbiBhKHQsZSxuLGkpe3ZhciByLG8sYT1bXSxzPVtdLGw9TWF0aC5taW4oZVtuXS5sb3csZVtpXS5sb3cpLGM9TWF0aC5tYXgoZVtuXS5saW0sZVtpXS5saW0pO3I9bjtkb3tyPXQucGFyZW50KHIpLGEucHVzaChyKX13aGlsZShyJiYoZVtyXS5sb3c+bHx8Yz5lW3JdLmxpbSkpO289cixyPWk7Zm9yKDsocj10LnBhcmVudChyKSkhPT1vOylzLnB1c2gocik7cmV0dXJue3BhdGg6YS5jb25jYXQocy5yZXZlcnNlKCkpLGxjYTpvfX0pKHQsZSxyLnYsci53KSxzPW8ucGF0aCxsPW8ubGNhLGM9MCx1PXNbY10saD0hMDtuIT09ci53Oyl7aWYoaT10Lm5vZGUobiksaCl7Zm9yKDsodT1zW2NdKSE9PWwmJnQubm9kZSh1KS5tYXhSYW5rPGkucmFuazspYysrO3U9PT1sJiYoaD0hMSl9aWYoIWgpe2Zvcig7YzxzLmxlbmd0aC0xJiZ0Lm5vZGUodT1zW2MrMV0pLm1pblJhbms8PWkucmFuazspYysrO3U9c1tjXX10LnNldFBhcmVudChuLHUpLG49dC5zdWNjZXNzb3JzKG4pWzBdfX0pKX0sTVh0PW9xdC5yZW1vdmVFbXB0eVJhbmtzLEVYdD17cnVuOmZ1bmN0aW9uIFRYdCh0KXt2YXIgZT1jWXQuYWRkRHVtbXlOb2RlKHQsInJvb3QiLHt9LCJfcm9vdCIpLG49KGZ1bmN0aW9uIGkodCl7dmFyIGU9e307ZnVuY3Rpb24gbihpLHIpe3ZhciBvPXQuY2hpbGRyZW4oaSk7byYmby5sZW5ndGgmJmxZdC5mb3JFYWNoKG8sKGZ1bmN0aW9uKHQpe24odCxyKzEpfSkpLGVbaV09cn1yZXR1cm4gbFl0LmZvckVhY2godC5jaGlsZHJlbigpLChmdW5jdGlvbih0KXtuKHQsMSl9KSksZX0pKHQpLHI9bFl0Lm1heChsWXQudmFsdWVzKG4pKS0xLG89MipyKzE7dC5ncmFwaCgpLm5lc3RpbmdSb290PWUsbFl0LmZvckVhY2godC5lZGdlcygpLChmdW5jdGlvbihlKXt0LmVkZ2UoZSkubWlubGVuKj1vfSkpO3ZhciBhPShmdW5jdGlvbiBzKHQpe3JldHVybiBsWXQucmVkdWNlKHQuZWRnZXMoKSwoZnVuY3Rpb24oZSxuKXtyZXR1cm4gZSt0LmVkZ2Uobikud2VpZ2h0fSksMCl9KSh0KSsxO2xZdC5mb3JFYWNoKHQuY2hpbGRyZW4oKSwoZnVuY3Rpb24oaSl7dVl0KHQsZSxvLGEscixuLGkpfSkpLHQuZ3JhcGgoKS5ub2RlUmFua0ZhY3Rvcj1vfSxjbGVhbnVwOmZ1bmN0aW9uIENYdCh0KXt2YXIgZT10LmdyYXBoKCk7dC5yZW1vdmVOb2RlKGUubmVzdGluZ1Jvb3QpLGRlbGV0ZSBlLm5lc3RpbmdSb290LGxZdC5mb3JFYWNoKHQuZWRnZXMoKSwoZnVuY3Rpb24oZSl7dC5lZGdlKGUpLm5lc3RpbmdFZGdlJiZ0LnJlbW92ZUVkZ2UoZSl9KSl9fSxBWHQ9cFl0LGtYdD17YWRqdXN0OmZ1bmN0aW9uIExYdCh0KXt2YXIgZT10LmdyYXBoKCkucmFua2Rpci50b0xvd2VyQ2FzZSgpOyJsciIhPT1lJiYicmwiIT09ZXx8X1l0KHQpfSx1bmRvOmZ1bmN0aW9uIFBYdCh0KXt2YXIgZT10LmdyYXBoKCkucmFua2Rpci50b0xvd2VyQ2FzZSgpOyJidCIhPT1lJiYicmwiIT09ZXx8KGZ1bmN0aW9uIG4odCl7Z1l0LmZvckVhY2godC5ub2RlcygpLChmdW5jdGlvbihlKXt2WXQodC5ub2RlKGUpKX0pKSxnWXQuZm9yRWFjaCh0LmVkZ2VzKCksKGZ1bmN0aW9uKGUpe3ZhciBuPXQuZWRnZShlKTtnWXQuZm9yRWFjaChuLnBvaW50cyx2WXQpLGdZdC5oYXMobiwieSIpJiZ2WXQobil9KSl9KSh0KTsibHIiIT09ZSYmInJsIiE9PWV8fCghKGZ1bmN0aW9uIGkodCl7Z1l0LmZvckVhY2godC5ub2RlcygpLChmdW5jdGlvbihlKXtiWXQodC5ub2RlKGUpKX0pKSxnWXQuZm9yRWFjaCh0LmVkZ2VzKCksKGZ1bmN0aW9uKGUpe3ZhciBuPXQuZWRnZShlKTtnWXQuZm9yRWFjaChuLnBvaW50cyxiWXQpLGdZdC5oYXMobiwieCIpJiZiWXQobil9KSl9KSh0KSxfWXQodCkpfX0sTlh0PWZ1bmN0aW9uIElYdCh0KXt2YXIgZT1LWXQubWF4UmFuayh0KSxuPVpZdCh0LEhZdC5yYW5nZSgxLGUrMSksImluRWRnZXMiKSxpPVpZdCh0LEhZdC5yYW5nZShlLTEsLTEsLTEpLCJvdXRFZGdlcyIpLHI9Rll0KHQpO1FZdCh0LHIpO2Zvcih2YXIgbyxhPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxzPTAsbD0wO2w8NDsrK3MsKytsKXtKWXQocyUyP246aSxzJTQ+PTIpLHI9S1l0LmJ1aWxkTGF5ZXJNYXRyaXgodCk7dmFyIGM9VVl0KHQscik7YzxhJiYobD0wLG89SFl0LmNsb25lRGVlcChyKSxhPWMpfVFZdCh0LG8pfSxSWHQ9ZnVuY3Rpb24gT1h0KHQpeyhmdW5jdGlvbiBlKHQpe3ZhciBlPW1YdC5idWlsZExheWVyTWF0cml4KHQpLG49dC5ncmFwaCgpLnJhbmtzZXAsaT0wO2ZYdC5mb3JFYWNoKGUsKGZ1bmN0aW9uKGUpe3ZhciByPWZYdC5tYXgoZlh0Lm1hcChlLChmdW5jdGlvbihlKXtyZXR1cm4gdC5ub2RlKGUpLmhlaWdodH0pKSk7Zlh0LmZvckVhY2goZSwoZnVuY3Rpb24oZSl7dC5ub2RlKGUpLnk9aStyLzJ9KSksaSs9citufSkpfSkodD1tWHQuYXNOb25Db21wb3VuZEdyYXBoKHQpKSxmWHQuZm9yRWFjaChnWHQodCksKGZ1bmN0aW9uKGUsbil7dC5ub2RlKG4pLng9ZX0pKX0selh0PW9xdCxEWHQ9eVV0LkdyYXBoLEJYdD1mdW5jdGlvbiBIWHQodCxlKXt2YXIgbj1lJiZlLmRlYnVnVGltaW5nP3pYdC50aW1lOnpYdC5ub3RpbWU7bigibGF5b3V0IiwoZnVuY3Rpb24oKXt2YXIgZT1uKCIgIGJ1aWxkTGF5b3V0R3JhcGgiLChmdW5jdGlvbigpe3JldHVybihmdW5jdGlvbiBlKHQpe3ZhciBlPW5ldyBEWHQoe211bHRpZ3JhcGg6ITAsY29tcG91bmQ6ITB9KSxuPSRYdCh0LmdyYXBoKCkpO3JldHVybiBlLnNldEdyYXBoKF9YdC5tZXJnZSh7fSxWWHQsWFh0KG4sRlh0KSxfWHQucGljayhuLFVYdCkpKSxfWHQuZm9yRWFjaCh0Lm5vZGVzKCksKGZ1bmN0aW9uKG4pe3ZhciBpPSRYdCh0Lm5vZGUobikpO2Uuc2V0Tm9kZShuLF9YdC5kZWZhdWx0cyhYWHQoaSxqWHQpLEdYdCkpLGUuc2V0UGFyZW50KG4sdC5wYXJlbnQobikpfSkpLF9YdC5mb3JFYWNoKHQuZWRnZXMoKSwoZnVuY3Rpb24obil7dmFyIGk9JFh0KHQuZWRnZShuKSk7ZS5zZXRFZGdlKG4sX1h0Lm1lcmdlKHt9LHFYdCxYWHQoaSxXWHQpLF9YdC5waWNrKGksWVh0KSkpfSkpLGV9KSh0KX0pKTtuKCIgIHJ1bkxheW91dCIsKGZ1bmN0aW9uKCl7IShmdW5jdGlvbiB0KGUsbil7bigiICAgIG1ha2VTcGFjZUZvckVkZ2VMYWJlbHMiLChmdW5jdGlvbigpeyEoZnVuY3Rpb24gdChlKXt2YXIgbj1lLmdyYXBoKCk7bi5yYW5rc2VwLz0yLF9YdC5mb3JFYWNoKGUuZWRnZXMoKSwoZnVuY3Rpb24odCl7dmFyIGk9ZS5lZGdlKHQpO2kubWlubGVuKj0yLCJjIiE9PWkubGFiZWxwb3MudG9Mb3dlckNhc2UoKSYmKCJUQiI9PT1uLnJhbmtkaXJ8fCJCVCI9PT1uLnJhbmtkaXI/aS53aWR0aCs9aS5sYWJlbG9mZnNldDppLmhlaWdodCs9aS5sYWJlbG9mZnNldCl9KSl9KShlKX0pKSxuKCIgICAgcmVtb3ZlU2VsZkVkZ2VzIiwoZnVuY3Rpb24oKXshKGZ1bmN0aW9uIHQoZSl7X1h0LmZvckVhY2goZS5lZGdlcygpLChmdW5jdGlvbih0KXtpZih0LnY9PT10Lncpe3ZhciBuPWUubm9kZSh0LnYpO24uc2VsZkVkZ2VzfHwobi5zZWxmRWRnZXM9W10pLG4uc2VsZkVkZ2VzLnB1c2goe2U6dCxsYWJlbDplLmVkZ2UodCl9KSxlLnJlbW92ZUVkZ2UodCl9fSkpfSkoZSl9KSksbigiICAgIGFjeWNsaWMiLChmdW5jdGlvbigpe3lYdC5ydW4oZSl9KSksbigiICAgIG5lc3RpbmdHcmFwaC5ydW4iLChmdW5jdGlvbigpe0VYdC5ydW4oZSl9KSksbigiICAgIHJhbmsiLChmdW5jdGlvbigpe2JYdCh6WHQuYXNOb25Db21wb3VuZEdyYXBoKGUpKX0pKSxuKCIgICAgaW5qZWN0RWRnZUxhYmVsUHJveGllcyIsKGZ1bmN0aW9uKCl7IShmdW5jdGlvbiB0KGUpe19YdC5mb3JFYWNoKGUuZWRnZXMoKSwoZnVuY3Rpb24odCl7dmFyIG49ZS5lZGdlKHQpO2lmKG4ud2lkdGgmJm4uaGVpZ2h0KXt2YXIgaT1lLm5vZGUodC52KSxyPWUubm9kZSh0LncpO3pYdC5hZGREdW1teU5vZGUoZSwiZWRnZS1wcm94eSIse3Jhbms6KHIucmFuay1pLnJhbmspLzIraS5yYW5rLGU6dH0sIl9lcCIpfX0pKX0pKGUpfSkpLG4oIiAgICByZW1vdmVFbXB0eVJhbmtzIiwoZnVuY3Rpb24oKXtNWHQoZSl9KSksbigiICAgIG5lc3RpbmdHcmFwaC5jbGVhbnVwIiwoZnVuY3Rpb24oKXtFWHQuY2xlYW51cChlKX0pKSxuKCIgICAgbm9ybWFsaXplUmFua3MiLChmdW5jdGlvbigpe3hYdChlKX0pKSxuKCIgICAgYXNzaWduUmFua01pbk1heCIsKGZ1bmN0aW9uKCl7IShmdW5jdGlvbiB0KGUpe3ZhciBuPTA7X1h0LmZvckVhY2goZS5ub2RlcygpLChmdW5jdGlvbih0KXt2YXIgaT1lLm5vZGUodCk7aS5ib3JkZXJUb3AmJihpLm1pblJhbms9ZS5ub2RlKGkuYm9yZGVyVG9wKS5yYW5rLGkubWF4UmFuaz1lLm5vZGUoaS5ib3JkZXJCb3R0b20pLnJhbmssbj1fWHQubWF4KG4saS5tYXhSYW5rKSl9KSksZS5ncmFwaCgpLm1heFJhbms9bn0pKGUpfSkpLG4oIiAgICByZW1vdmVFZGdlTGFiZWxQcm94aWVzIiwoZnVuY3Rpb24oKXshKGZ1bmN0aW9uIHQoZSl7X1h0LmZvckVhY2goZS5ub2RlcygpLChmdW5jdGlvbih0KXt2YXIgbj1lLm5vZGUodCk7ImVkZ2UtcHJveHkiPT09bi5kdW1teSYmKGUuZWRnZShuLmUpLmxhYmVsUmFuaz1uLnJhbmssZS5yZW1vdmVOb2RlKHQpKX0pKX0pKGUpfSkpLG4oIiAgICBub3JtYWxpemUucnVuIiwoZnVuY3Rpb24oKXt2WHQucnVuKGUpfSkpLG4oIiAgICBwYXJlbnREdW1teUNoYWlucyIsKGZ1bmN0aW9uKCl7d1h0KGUpfSkpLG4oIiAgICBhZGRCb3JkZXJTZWdtZW50cyIsKGZ1bmN0aW9uKCl7QVh0KGUpfSkpLG4oIiAgICBvcmRlciIsKGZ1bmN0aW9uKCl7Tlh0KGUpfSkpLG4oIiAgICBpbnNlcnRTZWxmRWRnZXMiLChmdW5jdGlvbigpeyEoZnVuY3Rpb24gdChlKXt2YXIgbj16WHQuYnVpbGRMYXllck1hdHJpeChlKTtfWHQuZm9yRWFjaChuLChmdW5jdGlvbih0KXt2YXIgbj0wO19YdC5mb3JFYWNoKHQsKGZ1bmN0aW9uKHQsaSl7dmFyIHI9ZS5ub2RlKHQpO3Iub3JkZXI9aStuLF9YdC5mb3JFYWNoKHIuc2VsZkVkZ2VzLChmdW5jdGlvbih0KXt6WHQuYWRkRHVtbXlOb2RlKGUsInNlbGZlZGdlIix7d2lkdGg6dC5sYWJlbC53aWR0aCxoZWlnaHQ6dC5sYWJlbC5oZWlnaHQscmFuazpyLnJhbmssb3JkZXI6aSsgKytuLGU6dC5lLGxhYmVsOnQubGFiZWx9LCJfc2UiKX0pKSxkZWxldGUgci5zZWxmRWRnZXN9KSl9KSl9KShlKX0pKSxuKCIgICAgYWRqdXN0Q29vcmRpbmF0ZVN5c3RlbSIsKGZ1bmN0aW9uKCl7a1h0LmFkanVzdChlKX0pKSxuKCIgICAgcG9zaXRpb24iLChmdW5jdGlvbigpe1JYdChlKX0pKSxuKCIgICAgcG9zaXRpb25TZWxmRWRnZXMiLChmdW5jdGlvbigpeyEoZnVuY3Rpb24gdChlKXtfWHQuZm9yRWFjaChlLm5vZGVzKCksKGZ1bmN0aW9uKHQpe3ZhciBuPWUubm9kZSh0KTtpZigic2VsZmVkZ2UiPT09bi5kdW1teSl7dmFyIGk9ZS5ub2RlKG4uZS52KSxyPWkueCtpLndpZHRoLzIsbz1pLnksYT1uLngtcixzPWkuaGVpZ2h0LzI7ZS5zZXRFZGdlKG4uZSxuLmxhYmVsKSxlLnJlbW92ZU5vZGUodCksbi5sYWJlbC5wb2ludHM9W3t4OnIrMiphLzMseTpvLXN9LHt4OnIrNSphLzYseTpvLXN9LHt4OnIrYSx5Om99LHt4OnIrNSphLzYseTpvK3N9LHt4OnIrMiphLzMseTpvK3N9XSxuLmxhYmVsLng9bi54LG4ubGFiZWwueT1uLnl9fSkpfSkoZSl9KSksbigiICAgIHJlbW92ZUJvcmRlck5vZGVzIiwoZnVuY3Rpb24oKXshKGZ1bmN0aW9uIHQoZSl7X1h0LmZvckVhY2goZS5ub2RlcygpLChmdW5jdGlvbih0KXtpZihlLmNoaWxkcmVuKHQpLmxlbmd0aCl7dmFyIG49ZS5ub2RlKHQpLGk9ZS5ub2RlKG4uYm9yZGVyVG9wKSxyPWUubm9kZShuLmJvcmRlckJvdHRvbSksbz1lLm5vZGUoX1h0Lmxhc3Qobi5ib3JkZXJMZWZ0KSksYT1lLm5vZGUoX1h0Lmxhc3Qobi5ib3JkZXJSaWdodCkpO24ud2lkdGg9TWF0aC5hYnMoYS54LW8ueCksbi5oZWlnaHQ9TWF0aC5hYnMoci55LWkueSksbi54PW8ueCtuLndpZHRoLzIsbi55PWkueStuLmhlaWdodC8yfX0pKSxfWHQuZm9yRWFjaChlLm5vZGVzKCksKGZ1bmN0aW9uKHQpeyJib3JkZXIiPT09ZS5ub2RlKHQpLmR1bW15JiZlLnJlbW92ZU5vZGUodCl9KSl9KShlKX0pKSxuKCIgICAgbm9ybWFsaXplLnVuZG8iLChmdW5jdGlvbigpe3ZYdC51bmRvKGUpfSkpLG4oIiAgICBmaXh1cEVkZ2VMYWJlbENvb3JkcyIsKGZ1bmN0aW9uKCl7IShmdW5jdGlvbiB0KGUpe19YdC5mb3JFYWNoKGUuZWRnZXMoKSwoZnVuY3Rpb24odCl7dmFyIG49ZS5lZGdlKHQpO2lmKF9YdC5oYXMobiwieCIpKXN3aXRjaCgibCIhPT1uLmxhYmVscG9zJiYiciIhPT1uLmxhYmVscG9zfHwobi53aWR0aC09bi5sYWJlbG9mZnNldCksbi5sYWJlbHBvcyl7Y2FzZSJsIjpuLngtPW4ud2lkdGgvMituLmxhYmVsb2Zmc2V0O2JyZWFrO2Nhc2UiciI6bi54Kz1uLndpZHRoLzIrbi5sYWJlbG9mZnNldH19KSl9KShlKX0pKSxuKCIgICAgdW5kb0Nvb3JkaW5hdGVTeXN0ZW0iLChmdW5jdGlvbigpe2tYdC51bmRvKGUpfSkpLG4oIiAgICB0cmFuc2xhdGVHcmFwaCIsKGZ1bmN0aW9uKCl7IShmdW5jdGlvbiB0KGUpe3ZhciBuPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxpPTAscj1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksbz0wLGE9ZS5ncmFwaCgpLHM9YS5tYXJnaW54fHwwLGw9YS5tYXJnaW55fHwwO2Z1bmN0aW9uIGModCl7dmFyIGU9dC54LGE9dC55LHM9dC53aWR0aCxsPXQuaGVpZ2h0O249TWF0aC5taW4obixlLXMvMiksaT1NYXRoLm1heChpLGUrcy8yKSxyPU1hdGgubWluKHIsYS1sLzIpLG89TWF0aC5tYXgobyxhK2wvMil9X1h0LmZvckVhY2goZS5ub2RlcygpLChmdW5jdGlvbih0KXtjKGUubm9kZSh0KSl9KSksX1h0LmZvckVhY2goZS5lZGdlcygpLChmdW5jdGlvbih0KXt2YXIgbj1lLmVkZ2UodCk7X1h0LmhhcyhuLCJ4IikmJmMobil9KSksbi09cyxyLT1sLF9YdC5mb3JFYWNoKGUubm9kZXMoKSwoZnVuY3Rpb24odCl7dmFyIGk9ZS5ub2RlKHQpO2kueC09bixpLnktPXJ9KSksX1h0LmZvckVhY2goZS5lZGdlcygpLChmdW5jdGlvbih0KXt2YXIgaT1lLmVkZ2UodCk7X1h0LmZvckVhY2goaS5wb2ludHMsKGZ1bmN0aW9uKHQpe3QueC09bix0LnktPXJ9KSksX1h0LmhhcyhpLCJ4IikmJihpLngtPW4pLF9YdC5oYXMoaSwieSIpJiYoaS55LT1yKX0pKSxhLndpZHRoPWktbitzLGEuaGVpZ2h0PW8tcitsfSkoZSl9KSksbigiICAgIGFzc2lnbk5vZGVJbnRlcnNlY3RzIiwoZnVuY3Rpb24oKXshKGZ1bmN0aW9uIHQoZSl7X1h0LmZvckVhY2goZS5lZGdlcygpLChmdW5jdGlvbih0KXt2YXIgbixpLHI9ZS5lZGdlKHQpLG89ZS5ub2RlKHQudiksYT1lLm5vZGUodC53KTtyLnBvaW50cz8obj1yLnBvaW50c1swXSxpPXIucG9pbnRzW3IucG9pbnRzLmxlbmd0aC0xXSk6KHIucG9pbnRzPVtdLG49YSxpPW8pLHIucG9pbnRzLnVuc2hpZnQoelh0LmludGVyc2VjdFJlY3QobyxuKSksci5wb2ludHMucHVzaCh6WHQuaW50ZXJzZWN0UmVjdChhLGkpKX0pKX0pKGUpfSkpLG4oIiAgICByZXZlcnNlUG9pbnRzIiwoZnVuY3Rpb24oKXshKGZ1bmN0aW9uIHQoZSl7X1h0LmZvckVhY2goZS5lZGdlcygpLChmdW5jdGlvbih0KXt2YXIgbj1lLmVkZ2UodCk7bi5yZXZlcnNlZCYmbi5wb2ludHMucmV2ZXJzZSgpfSkpfSkoZSl9KSksbigiICAgIGFjeWNsaWMudW5kbyIsKGZ1bmN0aW9uKCl7eVh0LnVuZG8oZSl9KSl9KShlLG4pfSkpLG4oIiAgdXBkYXRlSW5wdXRHcmFwaCIsKGZ1bmN0aW9uKCl7IShmdW5jdGlvbiBuKHQsZSl7X1h0LmZvckVhY2godC5ub2RlcygpLChmdW5jdGlvbihuKXt2YXIgaT10Lm5vZGUobikscj1lLm5vZGUobik7aSYmKGkueD1yLngsaS55PXIueSxlLmNoaWxkcmVuKG4pLmxlbmd0aCYmKGkud2lkdGg9ci53aWR0aCxpLmhlaWdodD1yLmhlaWdodCkpfSkpLF9YdC5mb3JFYWNoKHQuZWRnZXMoKSwoZnVuY3Rpb24obil7dmFyIGk9dC5lZGdlKG4pLHI9ZS5lZGdlKG4pO2kucG9pbnRzPXIucG9pbnRzLF9YdC5oYXMociwieCIpJiYoaS54PXIueCxpLnk9ci55KX0pKSx0LmdyYXBoKCkud2lkdGg9ZS5ncmFwaCgpLndpZHRoLHQuZ3JhcGgoKS5oZWlnaHQ9ZS5ncmFwaCgpLmhlaWdodH0pKHQsZSl9KSl9KSl9O3ZhciBGWHQ9WyJub2Rlc2VwIiwiZWRnZXNlcCIsInJhbmtzZXAiLCJtYXJnaW54IiwibWFyZ2lueSJdLFZYdD17cmFua3NlcDo1MCxlZGdlc2VwOjIwLG5vZGVzZXA6NTAscmFua2RpcjoidGIifSxVWHQ9WyJhY3ljbGljZXIiLCJyYW5rZXIiLCJyYW5rZGlyIiwiYWxpZ24iXSxqWHQ9WyJ3aWR0aCIsImhlaWdodCJdLEdYdD17d2lkdGg6MCxoZWlnaHQ6MH0sV1h0PVsibWlubGVuIiwid2VpZ2h0Iiwid2lkdGgiLCJoZWlnaHQiLCJsYWJlbG9mZnNldCJdLHFYdD17bWlubGVuOjEsd2VpZ2h0OjEsd2lkdGg6MCxoZWlnaHQ6MCxsYWJlbG9mZnNldDoxMCxsYWJlbHBvczoiciJ9LFlYdD1bImxhYmVscG9zIl07ZnVuY3Rpb24gWFh0KHQsZSl7cmV0dXJuIF9YdC5tYXBWYWx1ZXMoX1h0LnBpY2sodCxlKSxOdW1iZXIpfWZ1bmN0aW9uICRYdCh0KXt2YXIgZT17fTtyZXR1cm4gX1h0LmZvckVhY2godCwoZnVuY3Rpb24odCxuKXtlW24udG9Mb3dlckNhc2UoKV09dH0pKSxlfXZhciBLWHQ9SFd0LFpYdD1vcXQsSlh0PXlVdC5HcmFwaDt2YXIgUVh0LHQkdD17Z3JhcGhsaWI6eVV0LGxheW91dDpCWHQsZGVidWc6e2RlYnVnT3JkZXJpbmc6ZnVuY3Rpb24gZSR0KHQpe3ZhciBlPVpYdC5idWlsZExheWVyTWF0cml4KHQpLG49bmV3IEpYdCh7Y29tcG91bmQ6ITAsbXVsdGlncmFwaDohMH0pLnNldEdyYXBoKHt9KTtyZXR1cm4gS1h0LmZvckVhY2godC5ub2RlcygpLChmdW5jdGlvbihlKXtuLnNldE5vZGUoZSx7bGFiZWw6ZX0pLG4uc2V0UGFyZW50KGUsImxheWVyIit0Lm5vZGUoZSkucmFuayl9KSksS1h0LmZvckVhY2godC5lZGdlcygpLChmdW5jdGlvbih0KXtuLnNldEVkZ2UodC52LHQudyx7fSx0Lm5hbWUpfSkpLEtYdC5mb3JFYWNoKGUsKGZ1bmN0aW9uKHQsZSl7bi5zZXROb2RlKCJsYXllciIrZSx7cmFuazoic2FtZSJ9KSxLWHQucmVkdWNlKHQsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4uc2V0RWRnZSh0LGUse3N0eWxlOiJpbnZpcyJ9KSxlfSkpfSkpLG59fSx1dGlsOnt0aW1lOm9xdC50aW1lLG5vdGltZTpvcXQubm90aW1lfSx2ZXJzaW9uOiIwLjguNSJ9OyEoZnVuY3Rpb24odCl7dC5PUF9HUkFQSD0ib3BfZ3JhcGgiLHQuQ09OQ0VQVFVBTF9HUkFQSD0iY29uY2VwdHVhbF9ncmFwaCIsdC5QUk9GSUxFPSJwcm9maWxlIn0pKFFYdHx8KFFYdD17fSkpO2xldCBuJHQ9e05vZGU6e0NPTlRBSU5FUjoibm9kZXMiLEdST1VQOiJub2RlIixTSEFQRToibm9kZXNoYXBlIixDT0xPUl9UQVJHRVQ6Im5vZGVjb2xvcnRhcmdldCIsTEFCRUw6Im5vZGVsYWJlbCIsQlVUVE9OX0NPTlRBSU5FUjoiYnV0dG9uY29udGFpbmVyIixCVVRUT05fQ0lSQ0xFOiJidXR0b25jaXJjbGUiLEVYUEFORF9CVVRUT046ImV4cGFuZGJ1dHRvbiIsQ09MTEFQU0VfQlVUVE9OOiJjb2xsYXBzZWJ1dHRvbiJ9LEVkZ2U6e0NPTlRBSU5FUjoiZWRnZXMiLEdST1VQOiJlZGdlIixMSU5FOiJlZGdlbGluZSIsUkVGRVJFTkNFX0VER0U6InJlZmVyZW5jZWVkZ2UiLFJFRl9MSU5FOiJyZWZsaW5lIixTRUxFQ1RBQkxFOiJzZWxlY3RhYmxlZWRnZSIsU0VMRUNURUQ6InNlbGVjdGVkZWRnZSIsU1RSVUNUVVJBTDoic3RydWN0dXJhbCJ9LEFubm90YXRpb246e09VVEJPWDoib3V0LWFubm90YXRpb25zIixJTkJPWDoiaW4tYW5ub3RhdGlvbnMiLEdST1VQOiJhbm5vdGF0aW9uIixOT0RFOiJhbm5vdGF0aW9uLW5vZGUiLEVER0U6ImFubm90YXRpb24tZWRnZSIsQ09OVFJPTF9FREdFOiJhbm5vdGF0aW9uLWNvbnRyb2wtZWRnZSIsTEFCRUw6ImFubm90YXRpb24tbGFiZWwiLEVMTElQU0lTOiJhbm5vdGF0aW9uLWVsbGlwc2lzIn0sU2NlbmU6e0dST1VQOiJzY2VuZSIsQ09SRToiY29yZSIsRlVOQ1RJT05fTElCUkFSWToiZnVuY3Rpb24tbGlicmFyeSIsSU5FWFRSQUNUOiJpbi1leHRyYWN0IixPVVRFWFRSQUNUOiJvdXQtZXh0cmFjdCJ9LFN1YnNjZW5lOntHUk9VUDoic3Vic2NlbmUifSxPUE5PREU6Im9wIixNRVRBTk9ERToibWV0YSIsU0VSSUVTTk9ERToic2VyaWVzIixCUklER0VOT0RFOiJicmlkZ2UiLEVMTElQU0lTTk9ERToiZWxsaXBzaXMifTtjb25zdCBpJHQ9e0xBQkVMOjV9LHIkdD17RVhQQU5ERURfTEFCRUw6OSxTRVJJRVNfTEFCRUw6OCxPUF9MQUJFTDo2LEhFQUxUSF9QSUxMX1NUQVRfTEFCRUw6NH0sbyR0PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI7ZnVuY3Rpb24gYSR0KHQsZSxuKXtsZXQgaT10Lm5vZGUoKS5jaGlsZE5vZGVzO2ZvcihsZXQgdD0wO3Q8aS5sZW5ndGg7dCsrKXtsZXQgcj1pW3RdO2lmKHIudGFnTmFtZT09PWUpaWYobiBpbnN0YW5jZW9mIEFycmF5KXtsZXQgdD0hMDtmb3IobGV0IGU9MDtlPG4ubGVuZ3RoO2UrKyl0PXQmJnIuY2xhc3NMaXN0LmNvbnRhaW5zKG5bZV0pO2lmKHQpcmV0dXJuIER1KHIpfWVsc2UgaWYoIW58fHIuY2xhc3NMaXN0LmNvbnRhaW5zKG4pKXJldHVybiBEdShyKX1yZXR1cm4gRHUobnVsbCl9ZnVuY3Rpb24gcyR0KHQsZSxuLGkpe2xldCByPWEkdCh0LGUsbik7aWYoIXIuZW1wdHkoKSlyZXR1cm4gcjtsZXQgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixlKTtpZihuIGluc3RhbmNlb2YgQXJyYXkpZm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kyspby5jbGFzc0xpc3QuYWRkKG5bdF0pO2Vsc2Ugby5jbGFzc0xpc3QuYWRkKG4pO3JldHVybiBpP3Qubm9kZSgpLmluc2VydEJlZm9yZShvLGkpOnQubm9kZSgpLmFwcGVuZENoaWxkKG8pLER1KG8pLmRhdHVtKHQuZGF0dW0oKSl9Y2xhc3MgbCR0e2NvbnN0cnVjdG9yKHQpe3RoaXMudG90YWxCeXRlcz0wLHRoaXMub3V0cHV0U2l6ZT10fWFkZEV4ZWN1dGlvblRpbWUodCxlKXt0aGlzLnN0YXJ0VGltZT1udWxsIT10aGlzLnN0YXJ0VGltZT9NYXRoLm1pbih0aGlzLnN0YXJ0VGltZSx0KTp0LHRoaXMuZW5kVGltZT1udWxsIT10aGlzLmVuZFRpbWU/TWF0aC5tYXgodGhpcy5lbmRUaW1lLGUpOmV9YWRkQnl0ZXNBbGxvY2F0aW9uKHQpe3RoaXMudG90YWxCeXRlcz1udWxsIT10aGlzLnRvdGFsQnl0ZXM/TWF0aC5tYXgodGhpcy50b3RhbEJ5dGVzLHQpOnR9Y29tYmluZSh0KXtudWxsIT10LnRvdGFsQnl0ZXMmJih0aGlzLnRvdGFsQnl0ZXMrPXQudG90YWxCeXRlcyksbnVsbCE9dC5nZXRUb3RhbE1pY3JvcygpJiZ0aGlzLmFkZEV4ZWN1dGlvblRpbWUodC5zdGFydFRpbWUsdC5lbmRUaW1lKX1nZXRUb3RhbE1pY3Jvcygpe3JldHVybiBudWxsPT10aGlzLnN0YXJ0VGltZXx8bnVsbD09dGhpcy5lbmRUaW1lP251bGw6dGhpcy5lbmRUaW1lLXRoaXMuc3RhcnRUaW1lfX1jb25zdCBjJHQ9Ljc1LHUkdD1URSgpLmV4cG9uZW50KC4zKS5kb21haW4oWzEsNWU2XSkucmFuZ2UoW2MkdCwxMl0pLmNsYW1wKCEwKTtmdW5jdGlvbiBoJHQodCl7IShmdW5jdGlvbiBlKHQpe3JldHVybiB0Lmhhc093blByb3BlcnR5KCJ0aW1pbmdJZCIpfSkodCl9ZnVuY3Rpb24gZCR0KHQsZSxuKXtsZXQgaT1EYXRlLm5vdygpLHI9ZSgpO2NvbnN0IG89RGF0ZS5ub3coKS1pO3JldHVybiBjb25zb2xlLmxvZyh0LCI6IixvLCJtcyIpLG4mJmgkdCh7dGltaW5nSWQ6bixldmVudFZhbHVlOm99KSxyfWZ1bmN0aW9uIHAkdCh0KXtyZXR1cm57c2V0TWVzc2FnZTpmdW5jdGlvbihlKXt0LnNldCgicHJvZ3Jlc3MiLHt2YWx1ZTp0LnByb2dyZXNzLnZhbHVlLG1zZzplfSl9LHVwZGF0ZVByb2dyZXNzOmZ1bmN0aW9uKGUpe3Quc2V0KCJwcm9ncmVzcyIse3ZhbHVlOnQucHJvZ3Jlc3MudmFsdWUrZSxtc2c6dC5wcm9ncmVzcy5tc2d9KX0scmVwb3J0RXJyb3I6ZnVuY3Rpb24oZSxuKXtjb25zb2xlLmVycm9yKG4uc3RhY2spLHQuc2V0KCJwcm9ncmVzcyIse3ZhbHVlOnQucHJvZ3Jlc3MudmFsdWUsbXNnOmUsZXJyb3I6ITB9KX19fWZ1bmN0aW9uIGYkdCh0LGUsbil7cmV0dXJue3NldE1lc3NhZ2U6ZnVuY3Rpb24oZSl7dC5zZXRNZXNzYWdlKG4rIjogIitlKX0sdXBkYXRlUHJvZ3Jlc3M6ZnVuY3Rpb24obil7dC51cGRhdGVQcm9ncmVzcyhuKmUvMTAwKX0scmVwb3J0RXJyb3I6ZnVuY3Rpb24oZSxpKXt0LnJlcG9ydEVycm9yKG4rIjogIitlLGkpfX19ZnVuY3Rpb24gbSR0KHQsZSxuLGkscil7cmV0dXJuIG5ldyBQcm9taXNlKCgobyxhKT0+e2kuc2V0TWVzc2FnZSh0KSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3RyeXtsZXQgYT1kJHQodCxuLHIpO2kudXBkYXRlUHJvZ3Jlc3MoZSksbyhhKX1jYXRjaChlKXtpLnJlcG9ydEVycm9yKCJGYWlsZWQgIit0LGUpfX0pLDIwKX0pKX1mdW5jdGlvbiBnJHQodCxlLG4saSxyKXtyZXR1cm4gbmV3IFByb21pc2UoKChvLGEpPT57bGV0IHM9ZnVuY3Rpb24oZSl7aS5yZXBvcnRFcnJvcigiRmFpbGVkICIrdCxlKSxhKGUpfTtpLnNldE1lc3NhZ2UodCksc2V0VGltZW91dCgoZnVuY3Rpb24oKXt0cnl7bGV0IGE9RGF0ZS5ub3coKTtuKCkudGhlbigoZnVuY3Rpb24obil7Y29uc3Qgcz1EYXRlLm5vdygpLWE7Y29uc29sZS5sb2codCwiOiIscywibXMiKSxpLnVwZGF0ZVByb2dyZXNzKGUpLGgkdCh7dGltaW5nSWQ6cixldmVudFZhbHVlOnN9KSxvKG4pfSkpLmNhdGNoKHMpfWNhdGNoKHQpe3ModCl9fSksMjApfSkpfWNvbnN0IF8kdD1be3N5bWJvbDoiQiJ9LHtzeW1ib2w6IktCIixudW1Vbml0czoxMDI0fSx7c3ltYm9sOiJNQiIsbnVtVW5pdHM6MTAyNH0se3N5bWJvbDoiR0IiLG51bVVuaXRzOjEwMjR9LHtzeW1ib2w6IlRCIixudW1Vbml0czoxMDI0fSx7c3ltYm9sOiJQQiIsbnVtVW5pdHM6MTAyNH1dLHkkdD1be3N5bWJvbDoiwrVzIn0se3N5bWJvbDoibXMiLG51bVVuaXRzOjFlM30se3N5bWJvbDoicyIsbnVtVW5pdHM6MWUzfSx7c3ltYm9sOiJtaW4iLG51bVVuaXRzOjYwfSx7c3ltYm9sOiJociIsbnVtVW5pdHM6NjB9LHtzeW1ib2w6ImRheXMiLG51bVVuaXRzOjI0fV07ZnVuY3Rpb24gdiR0KHQsZSxuPTApe3JldHVybiBuKzE8ZS5sZW5ndGgmJnQ+PWVbbisxXS5udW1Vbml0cz92JHQodC9lW24rMV0ubnVtVW5pdHMsZSxuKzEpOk51bWJlcih0LnRvUHJlY2lzaW9uKDMpKSsiICIrZVtuXS5zeW1ib2x9ZnVuY3Rpb24gYiR0KHQpe3JldHVybiEoIXR8fCEodC50b3RhbEJ5dGVzPjB8fHQuZ2V0VG90YWxNaWNyb3MoKT4wfHx0Lm91dHB1dFNpemUpKX1mdW5jdGlvbiB4JHQodCl7aWYodC5sZW5ndGg8MilyZXR1cm4gdDtsZXQgZT0wLG49MCxpPUNlLmV4cG9ydHMubWluKENlLmV4cG9ydHMubWFwKHQsKHQ9PnQubGVuZ3RoKSkpO2Zvcig7Oyl7ZSsrO2xldCByPUNlLmV4cG9ydHMubWFwKHQsKHQ9PnQuc3Vic3RyaW5nKDAsZSkpKTtpZighci5ldmVyeSgoKHQsZSk9PjA9PT1lfHx0PT09cltlLTFdKSkpYnJlYWs7aWYoZT49aSlyZXR1cm4gdDtuPWV9cmV0dXJuIENlLmV4cG9ydHMubWFwKHQsKHQ9PnQuc3Vic3RyaW5nKG4pKSl9Y29uc3QgdyR0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIik7ZnVuY3Rpb24gUyR0KHQsZSl7cmV0dXJuIHckdC5mb250PWAke2V9cHggUm9ib3RvLCBzYW5zLXNlcmlmYCx3JHQubWVhc3VyZVRleHQodCkud2lkdGh9Y29uc3QgTSR0PSIvIixFJHQ9Il9fcm9vdF9fIixUJHQ9Il9fZnVuY3Rpb25fbGlicmFyeV9fIjt2YXIgQyR0LEEkdCxrJHQsTCR0OyEoZnVuY3Rpb24odCl7dFt0LkZVTEw9MF09IkZVTEwiLHRbdC5FTUJFRERFRD0xXT0iRU1CRURERUQiLHRbdC5NRVRBPTJdPSJNRVRBIix0W3QuU0VSSUVTPTNdPSJTRVJJRVMiLHRbdC5DT1JFPTRdPSJDT1JFIix0W3QuU0hBRE9XPTVdPSJTSEFET1ciLHRbdC5CUklER0U9Nl09IkJSSURHRSIsdFt0LkVER0U9N109IkVER0UifSkoQyR0fHwoQyR0PXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5NRVRBPTBdPSJNRVRBIix0W3QuT1A9MV09Ik9QIix0W3QuU0VSSUVTPTJdPSJTRVJJRVMiLHRbdC5CUklER0U9M109IkJSSURHRSIsdFt0LkVMTElQU0lTPTRdPSJFTExJUFNJUyJ9KShBJHR8fChBJHQ9e30pKSwoZnVuY3Rpb24odCl7dFt0LklOQ0xVREU9MF09IklOQ0xVREUiLHRbdC5FWENMVURFPTFdPSJFWENMVURFIix0W3QuVU5TUEVDSUZJRUQ9Ml09IlVOU1BFQ0lGSUVEIn0pKGskdHx8KGskdD17fSkpLChmdW5jdGlvbih0KXt0W3QuR1JPVVA9MF09IkdST1VQIix0W3QuVU5HUk9VUD0xXT0iVU5HUk9VUCJ9KShMJHR8fChMJHQ9e30pKTtjb25zdCBQJHQ9Il9vdXRwdXRfc2hhcGVzIixOJHQ9Il9YbGFDbHVzdGVyIjtjbGFzcyBJJHR7Y29uc3RydWN0b3IoKXt0aGlzLm5vZGVzPXt9LHRoaXMuZWRnZXM9W119fWNsYXNzIFIkdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnR5cGU9QSR0LkVMTElQU0lTLHRoaXMuaXNHcm91cE5vZGU9ITEsdGhpcy5jYXJkaW5hbGl0eT0xLHRoaXMucGFyZW50Tm9kZT1udWxsLHRoaXMuc3RhdHM9bnVsbCx0aGlzLnNldE51bU1vcmVOb2Rlcyh0KSx0aGlzLmluY2x1ZGU9ayR0LlVOU1BFQ0lGSUVEfXNldE51bU1vcmVOb2Rlcyh0KXt0aGlzLm51bU1vcmVOb2Rlcz10LHRoaXMubmFtZT0iLi4uICIrdCsiIG1vcmUifX1jbGFzcyBPJHR7Y29uc3RydWN0b3IodCl7dGhpcy5vcD10Lm9wLHRoaXMubmFtZT10Lm5hbWUsdGhpcy5kZXZpY2U9dC5kZXZpY2UsdGhpcy5hdHRyPXQuYXR0cix0aGlzLmlucHV0cz0oZnVuY3Rpb24gZSh0KXtjb25zdCBlPVtdO2xldCBuPW51bGw7Zm9yKGxldCBpIG9mIHR8fFtdKXtjb25zdCB0PWkuc3RhcnRzV2l0aCgiXiIpO3QmJihpPWkuc3Vic3RyaW5nKDEpKTtsZXQgcj1pLG89IjAiO2NvbnN0IGE9aS5pbmNsdWRlcygiOiIpJiZpLm1hdGNoKGokdCk7YSYmKHI9YVsxXSxvPWFbMl0pLG4hPT1yJiYobj1yLGUucHVzaCh7bmFtZTpyLG91dHB1dFRlbnNvcktleTpvLGlzQ29udHJvbERlcGVuZGVuY3k6dH0pKX1yZXR1cm4gZX0pKHQuaW5wdXQpLHRoaXMub3V0cHV0U2hhcGVzPShmdW5jdGlvbiBuKHQpe2lmKCF0KXJldHVybiBudWxsO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtsZXR7a2V5Om4sdmFsdWU6aX09dFtlXTtpZihuPT09UCR0KXtpZighaS5saXN0fHwhaS5saXN0LnNoYXBlKXJldHVybiBudWxsO2xldCBuPWkubGlzdC5zaGFwZS5tYXAoKHQ9PnQudW5rbm93bl9yYW5rP251bGw6bnVsbD09dC5kaW18fDE9PT10LmRpbS5sZW5ndGgmJm51bGw9PXQuZGltWzBdLnNpemU/W106dC5kaW0ubWFwKCh0PT50LnNpemUpKSkpO3JldHVybiB0LnNwbGljZShlLDEpLG59fXJldHVybiBudWxsfSkodC5hdHRyKSx0aGlzLnhsYUNsdXN0ZXI9KGZ1bmN0aW9uIGkodCl7aWYoIXQpcmV0dXJuIG51bGw7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspaWYodFtlXS5rZXk9PT1OJHQpcmV0dXJuIHRbZV0udmFsdWUuc3x8bnVsbDtyZXR1cm4gbnVsbH0pKHQuYXR0ciksdGhpcy5jb21wYXRpYmxlPSExLHRoaXMudHlwZT1BJHQuT1AsdGhpcy5pc0dyb3VwTm9kZT0hMSx0aGlzLmNhcmRpbmFsaXR5PTEsdGhpcy5pbkVtYmVkZGluZ3M9W10sdGhpcy5vdXRFbWJlZGRpbmdzPVtdLHRoaXMucGFyZW50Tm9kZT1udWxsLHRoaXMuaW5jbHVkZT1rJHQuVU5TUEVDSUZJRUQsdGhpcy5vd25pbmdTZXJpZXM9bnVsbH19ZnVuY3Rpb24geiR0KHQsZT17fSl7cmV0dXJuIG5ldyBEJHQodCxlKX1jbGFzcyBEJHR7Y29uc3RydWN0b3IodCxlPXt9KXt0aGlzLm5hbWU9dCx0aGlzLnR5cGU9QSR0Lk1FVEEsdGhpcy5kZXB0aD0xLHRoaXMuaXNHcm91cE5vZGU9ITAsdGhpcy5jYXJkaW5hbGl0eT0wLHRoaXMubWV0YWdyYXBoPVkkdCh0LEMkdC5NRVRBLGUpLHRoaXMuYnJpZGdlZ3JhcGg9bnVsbCx0aGlzLm9wSGlzdG9ncmFtPXt9LHRoaXMuZGV2aWNlSGlzdG9ncmFtPXt9LHRoaXMueGxhQ2x1c3Rlckhpc3RvZ3JhbT17fSx0aGlzLmNvbXBhdGliaWxpdHlIaXN0b2dyYW09e2NvbXBhdGlibGU6MCxpbmNvbXBhdGlibGU6MH0sdGhpcy50ZW1wbGF0ZUlkPW51bGwsdGhpcy5wYXJlbnROb2RlPW51bGwsdGhpcy5oYXNOb25Db250cm9sRWRnZXM9ITEsdGhpcy5pbmNsdWRlPWskdC5VTlNQRUNJRklFRCx0aGlzLmFzc29jaWF0ZWRGdW5jdGlvbj0iIn1nZXRGaXJzdENoaWxkKCl7cmV0dXJuIHRoaXMubWV0YWdyYXBoLm5vZGUodGhpcy5tZXRhZ3JhcGgubm9kZXMoKVswXSl9Z2V0Um9vdE9wKCl7bGV0IHQ9dGhpcy5uYW1lLnNwbGl0KCIvIik7cmV0dXJuIHRoaXMubWV0YWdyYXBoLm5vZGUodGhpcy5uYW1lKyIvKCIrdFt0Lmxlbmd0aC0xXSsiKSIpfWxlYXZlcygpe2xldCB0LGU9W10sbj1bdGhpc107Zm9yKDtuLmxlbmd0aDspe2xldCBpPW4uc2hpZnQoKTtpLmlzR3JvdXBOb2RlPyh0PWkubWV0YWdyYXBoLENlLmV4cG9ydHMuZWFjaCh0Lm5vZGVzKCksKGU9Pm4ucHVzaCh0Lm5vZGUoZSkpKSkpOmUucHVzaChpLm5hbWUpfXJldHVybiBlfX1mdW5jdGlvbiBCJHQodCxlKXtyZXR1cm4gbmV3IEgkdCh0LGUpfWNsYXNzIEgkdHtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMudj10LHRoaXMudz1lLHRoaXMuYmFzZUVkZ2VMaXN0PVtdLHRoaXMuaW5ib3VuZD1udWxsLHRoaXMubnVtUmVndWxhckVkZ2VzPTAsdGhpcy5udW1Db250cm9sRWRnZXM9MCx0aGlzLm51bVJlZkVkZ2VzPTAsdGhpcy50b3RhbFNpemU9MH1hZGRCYXNlRWRnZSh0LGUpe3RoaXMuYmFzZUVkZ2VMaXN0LnB1c2godCksdC5pc0NvbnRyb2xEZXBlbmRlbmN5P3RoaXMubnVtQ29udHJvbEVkZ2VzKz0xOnRoaXMubnVtUmVndWxhckVkZ2VzKz0xLHQuaXNSZWZlcmVuY2VFZGdlJiYodGhpcy5udW1SZWZFZGdlcys9MSksdGhpcy50b3RhbFNpemUrPUgkdC5jb21wdXRlU2l6ZU9mRWRnZSh0LGUpLGUubWF4TWV0YUVkZ2VTaXplPU1hdGgubWF4KGUubWF4TWV0YUVkZ2VTaXplLHRoaXMudG90YWxTaXplKX1zdGF0aWMgY29tcHV0ZVNpemVPZkVkZ2UodCxlKXtsZXQgbj1lLm5vZGUodC52KTtpZighbi5vdXRwdXRTaGFwZXMpcmV0dXJuIDE7ZS5oYXNTaGFwZUluZm89ITA7Y29uc3QgaT1PYmplY3Qua2V5cyhuLm91dHB1dFNoYXBlcykubWFwKCh0PT5uLm91dHB1dFNoYXBlc1t0XSkpLm1hcCgodD0+bnVsbD09dD8xOnQucmVkdWNlKCgodCxlKT0+KC0xPT09ZSYmKGU9MSksdCplKSksMSkpKTtyZXR1cm4gQ2UuZXhwb3J0cy5zdW0oaSl9fWZ1bmN0aW9uIEYkdCh0LGUsbixpLHIsbyl7cmV0dXJuIG5ldyBVJHQodCxlLG4saSxyLG8pfWZ1bmN0aW9uIFYkdCh0LGUsbixpLHIpe3JldHVybihuP24rIi8iOiIiKSsodCsodm9pZCAwIT09aSYmdm9pZCAwIT09cj8iWyIraSsiLSIrcisiXSI6IiMiKStlKX1jbGFzcyBVJHR7Y29uc3RydWN0b3IodCxlLG4saSxyLG8pe3RoaXMubmFtZT1yfHxWJHQodCxlLG4pLHRoaXMudHlwZT1BJHQuU0VSSUVTLHRoaXMuaGFzTG9vcD0hMSx0aGlzLnByZWZpeD10LHRoaXMuc3VmZml4PWUsdGhpcy5jbHVzdGVySWQ9aSx0aGlzLmlkcz1bXSx0aGlzLnBhcmVudD1uLHRoaXMuaXNHcm91cE5vZGU9ITAsdGhpcy5jYXJkaW5hbGl0eT0wLHRoaXMubWV0YWdyYXBoPVkkdChyLEMkdC5TRVJJRVMsbyksdGhpcy5icmlkZ2VncmFwaD1udWxsLHRoaXMucGFyZW50Tm9kZT1udWxsLHRoaXMuZGV2aWNlSGlzdG9ncmFtPXt9LHRoaXMueGxhQ2x1c3Rlckhpc3RvZ3JhbT17fSx0aGlzLmNvbXBhdGliaWxpdHlIaXN0b2dyYW09e2NvbXBhdGlibGU6MCxpbmNvbXBhdGlibGU6MH0sdGhpcy5oYXNOb25Db250cm9sRWRnZXM9ITEsdGhpcy5pbmNsdWRlPWskdC5VTlNQRUNJRklFRH19Y29uc3QgaiR0PS9eKFteOl0rKTooKFx3Kzp8KVxkKykkLztmdW5jdGlvbiBHJHQodCxlLG4saSxyLG8pe2lmKGU9PT1uLm5hbWUpcmV0dXJuO3QuZWRnZXMucHVzaCh7djplLHc6bi5uYW1lLG91dHB1dFRlbnNvcktleTppLm91dHB1dFRlbnNvcktleSxpc0NvbnRyb2xEZXBlbmRlbmN5OmkuaXNDb250cm9sRGVwZW5kZW5jeSxpc1JlZmVyZW5jZUVkZ2U6ITA9PT1yLnJlZkVkZ2VzW24ub3ArIiAiK29dfSl9Y29uc3QgVyR0PXtlbmFibGVFbWJlZGRpbmc6ITAsaW5FbWJlZGRpbmdUeXBlczpbIkNvbnN0Il0sb3V0RW1iZWRkaW5nVHlwZXM6WyJeW2EtekEtWl0rU3VtbWFyeSQiXSxyZWZFZGdlczp7IkFzc2lnbiAwIjohMCwiQXNzaWduQWRkIDAiOiEwLCJBc3NpZ25TdWIgMCI6ITAsImFzc2lnbiAwIjohMCwiYXNzaWduX2FkZCAwIjohMCwiYXNzaWduX3N1YiAwIjohMCwiY291bnRfdXBfdG8gMCI6ITAsIlNjYXR0ZXJBZGQgMCI6ITAsIlNjYXR0ZXJTdWIgMCI6ITAsIlNjYXR0ZXJVcGRhdGUgMCI6ITAsInNjYXR0ZXJfYWRkIDAiOiEwLCJzY2F0dGVyX3N1YiAwIjohMCwic2NhdHRlcl91cGRhdGUgMCI6ITB9fTtmdW5jdGlvbiBxJHQodCxlLG4pe2xldCBpPXt9LHI9e30sbz17fSxhPVgkdChlLmluRW1iZWRkaW5nVHlwZXMpLHM9WCR0KGUub3V0RW1iZWRkaW5nVHlwZXMpLGw9W10sYz10Lm5vZGUsdT1uZXcgQXJyYXkoYy5sZW5ndGgpO3JldHVybiBtJHQoIk5vcm1hbGl6aW5nIG5hbWVzIiwzMCwoKCk9PntsZXQgZT1uZXcgQXJyYXkoYy5sZW5ndGgpLG49MDtjb25zdCBoPXQ9PntsZXQgYz1uZXcgTyR0KHQpO3JldHVybiBhKGMpPyhsLnB1c2goYy5uYW1lKSxpW2MubmFtZV09YyxjKTpzKGMpPyhsLnB1c2goYy5uYW1lKSxyW2MubmFtZV09YyxDZS5leHBvcnRzLmVhY2goYy5pbnB1dHMsKHQ9PntsZXQgZT10Lm5hbWU7b1tlXT1vW2VdfHxbXSxvW2VdLnB1c2goYyl9KSksYyk6KGVbbl09Yyx1W25dPWMubmFtZSxuKyssYyl9O0NlLmV4cG9ydHMuZWFjaChjLGgpO2NvbnN0IGQ9dD0+e2NvbnN0IGU9VCR0K3Quc2lnbmF0dXJlLm5hbWU7aWYoaCh7bmFtZTplLGlucHV0OltdLGRldmljZToiIixvcDoiIixhdHRyOltdfSksdC5zaWduYXR1cmUuaW5wdXRfYXJnKXtsZXQgbj0wO2NvbnN0IGk9dD0+e2goe25hbWU6ZStNJHQrdC5uYW1lLGlucHV0OltdLGRldmljZToiIixvcDoiaW5wdXRfYXJnIixhdHRyOlt7a2V5OiJUIix2YWx1ZTp7dHlwZTp0LnR5cGV9fV19KS5mdW5jdGlvbklucHV0SW5kZXg9bixuKyt9O3Quc2lnbmF0dXJlLmlucHV0X2FyZy5uYW1lP2kodC5zaWduYXR1cmUuaW5wdXRfYXJnKTpDZS5leHBvcnRzLmVhY2godC5zaWduYXR1cmUuaW5wdXRfYXJnLGkpfWxldCBuPTA7Y29uc3QgaT17fTtpZih0LnNpZ25hdHVyZS5vdXRwdXRfYXJnKXtjb25zdCByPXQ9PntpW2UrTSR0K3QubmFtZV09bixuKyt9O3Quc2lnbmF0dXJlLm91dHB1dF9hcmcubmFtZT9yKHQuc2lnbmF0dXJlLm91dHB1dF9hcmcpOkNlLmV4cG9ydHMuZWFjaCh0LnNpZ25hdHVyZS5vdXRwdXRfYXJnLHIpfUNlLmV4cG9ydHMuZWFjaCh0Lm5vZGVfZGVmLCh0PT57dC5uYW1lPWUrIi8iK3QubmFtZSwic3RyaW5nIj09dHlwZW9mIHQuaW5wdXQmJih0LmlucHV0PVt0LmlucHV0XSk7Y29uc3Qgbj1oKHQpO0NlLmV4cG9ydHMuaXNOdW1iZXIoaVt0Lm5hbWVdKSYmKG4uZnVuY3Rpb25PdXRwdXRJbmRleD1pW3QubmFtZV0pLENlLmV4cG9ydHMuZWFjaChuLmlucHV0cywodD0+e3QubmFtZT1lK00kdCt0Lm5hbWV9KSl9KSl9O3JldHVybiB0LmxpYnJhcnkmJnQubGlicmFyeS5mdW5jdGlvbiYmQ2UuZXhwb3J0cy5lYWNoKHQubGlicmFyeS5mdW5jdGlvbixkKSxlLnNwbGljZShuKSx1LnNwbGljZShuKSxlfSksbixCQXQuTk9STUFMSVpJTkdfTkFNRVMpLnRoZW4oKHQ9Pm0kdCgiQnVpbGRpbmcgdGhlIGRhdGEgc3RydWN0dXJlIiw3MCwoKCk9PntsZXQgbj0oZnVuY3Rpb24gYSh0LGUpe2xldCBuPXt9LGk9e307dC5zb3J0KCk7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aC0xOysrZSl7bGV0IHI9dFtlXTtDZS5leHBvcnRzLmVhY2goWiR0KHIpLnNsaWNlKDAsLTEpLCh0PT57aVt0XT0hMH0pKTtmb3IobGV0IGk9ZSsxO2k8dC5sZW5ndGg7KytpKXtsZXQgZT10W2ldO2lmKCFDZS5leHBvcnRzLnN0YXJ0c1dpdGgoZSxyKSlicmVhaztpZihlLmxlbmd0aD5yLmxlbmd0aCYmZS5jaGFyQXQoci5sZW5ndGgpPT09TSR0KXtuW3JdPSQkdChyKTticmVha319fXJldHVybiBDZS5leHBvcnRzLmVhY2goZSwodD0+e3QgaW4gaSYmKG5bdF09JCR0KHQpKX0pKSxufSkodSxsKSxzPW5ldyBJJHQ7cmV0dXJuIENlLmV4cG9ydHMuZWFjaCh0LCh0PT57bGV0IGU9blt0Lm5hbWVdfHx0Lm5hbWU7cy5ub2Rlc1tlXT10LHQubmFtZSBpbiBvJiYodC5vdXRFbWJlZGRpbmdzPW9bdC5uYW1lXSxDZS5leHBvcnRzLmVhY2godC5vdXRFbWJlZGRpbmdzLCh0PT57dC5uYW1lPW5bdC5uYW1lXXx8dC5uYW1lfSkpKSx0Lm5hbWU9ZX0pKSxDZS5leHBvcnRzLmVhY2godCwodD0+e0NlLmV4cG9ydHMuZWFjaCh0LmlucHV0cywoKG8sYSk9PntsZXQgbD1vLm5hbWU7aWYobCBpbiBpKXtsZXQgcj1pW2xdO3QuaW5FbWJlZGRpbmdzLnB1c2gocik7Zm9yKGxldCBpIG9mIHIuaW5wdXRzKUckdChzLG5baS5uYW1lXXx8aS5uYW1lLHQsaSxlLGEpfWVsc2UgaWYobCBpbiByKXtsZXQgaT1yW2xdO2ZvcihsZXQgciBvZiBpLmlucHV0cylHJHQocyxuW3IubmFtZV18fHIubmFtZSx0LG8sZSxhKX1lbHNlIEckdChzLG5bbF18fGwsdCxvLGUsYSl9KSl9KSksQ2UuZXhwb3J0cy5lYWNoKGksKCh0LGUpPT57dC5uYW1lPW5bdC5uYW1lXXx8dC5uYW1lfSkpLHN9KSxuLEJBdC5CVUlMRF9TTElNX0dSQVBIKSkpfWZ1bmN0aW9uIFkkdCh0LGUsbj17fSl7Y29uc3QgaT1uZXcgdCR0LmdyYXBobGliLkdyYXBoKG4pO3JldHVybiBpLnNldEdyYXBoKHtuYW1lOnQscmFua2RpcjpuLnJhbmtkaXJ8fCJCVCIsdHlwZTplfSksaX1mdW5jdGlvbiBYJHQodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKXtsZXQgaT1uZXcgUmVnRXhwKHRbbl0pO2lmKCJzdHJpbmciPT10eXBlb2YgZS5vcCYmZS5vcC5tYXRjaChpKSlyZXR1cm4hMH1yZXR1cm4hMX19ZnVuY3Rpb24gJCR0KHQpe2xldCBlPXQuc3BsaXQoTSR0KTtyZXR1cm4gdCtNJHQrIigiK2VbZS5sZW5ndGgtMV0rIikifWZ1bmN0aW9uIEskdCh0KXtsZXQgZT10Lm5vZGVzKCkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdC5uZWlnaGJvcnMoZSkubGVuZ3RofSkpO3JldHVybiBlLnNvcnQoKSxlfWZ1bmN0aW9uIFokdCh0LGUpe2xldCBuPVtdLGk9dC5pbmRleE9mKE0kdCk7Zm9yKDtpPj0wOyluLnB1c2godC5zdWJzdHJpbmcoMCxpKSksaT10LmluZGV4T2YoTSR0LGkrMSk7aWYoZSl7bGV0IGk9ZVt0XTtpJiZuLnB1c2goaSl9cmV0dXJuIG4ucHVzaCh0KSxufWZ1bmN0aW9uIEokdCh0KXtyZXR1cm4gdD09PWskdC5FWENMVURFPyJBZGQgdG8gbWFpbiBncmFwaCI6IlJlbW92ZSBmcm9tIG1haW4gZ3JhcGgifWZ1bmN0aW9uIFEkdCh0LGUpe2xldCBuPShmdW5jdGlvbiByKHQsZSl7cmV0dXJuIENlLmV4cG9ydHMucmVkdWNlKHQsKGZ1bmN0aW9uKHQsbil7bGV0IGk9blswXSxyPVtdO3JldHVybiBuWzFdLm5vZGVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe2ZvcihsZXQgbj0wO248ci5sZW5ndGg7bisrKXtpZighZXx8ZUt0KHJbbl0ubWV0YW5vZGUubWV0YWdyYXBoLHQubWV0YWdyYXBoKSlyZXR1cm4gdC50ZW1wbGF0ZUlkPXJbbl0ubWV0YW5vZGUudGVtcGxhdGVJZCx2b2lkIHJbbl0ubWVtYmVycy5wdXNoKHQubmFtZSl9dC50ZW1wbGF0ZUlkPWkrIlsiK3IubGVuZ3RoKyJdIixyLnB1c2goe21ldGFub2RlOnQsbWVtYmVyczpbdC5uYW1lXX0pfSkpLHIuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dFtlLm1ldGFub2RlLnRlbXBsYXRlSWRdPXtsZXZlbDpuWzFdLmxldmVsLG5vZGVzOmUubWVtYmVyc319KSksdH0pLHt9KX0pKChmdW5jdGlvbiBpKHQpe2NvbnN0IGU9dC5nZXROb2RlTWFwKCk7bGV0IG49T2JqZWN0LmtleXMoZSkucmVkdWNlKCgodCxuKT0+e2NvbnN0IGk9ZVtuXTtpZihpLnR5cGUhPT1BJHQuTUVUQSlyZXR1cm4gdDtsZXQgcj1uLnNwbGl0KCIvIikubGVuZ3RoLTEsbz0oZnVuY3Rpb24gYSh0KXtsZXQgZT1DZS5leHBvcnRzLm1hcCh7ZGVwdGg6dC5kZXB0aCwifFZ8Ijp0Lm1ldGFncmFwaC5ub2RlcygpLmxlbmd0aCwifEV8Ijp0Lm1ldGFncmFwaC5lZGdlcygpLmxlbmd0aH0sKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUrIj0iK3R9KSkuam9pbigiICIpLG49Q2UuZXhwb3J0cy5tYXAodC5vcEhpc3RvZ3JhbSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZSsiPSIrdH0pKS5qb2luKCIsIik7cmV0dXJuIGUrIiBbb3BzXSAiK259KShpKSxzPXRbb118fHtub2RlczpbXSxsZXZlbDpyfTtyZXR1cm4gdFtvXT1zLHMubm9kZXMucHVzaChpKSxzLmxldmVsPnImJihzLmxldmVsPXIpLHR9KSx7fSk7cmV0dXJuIE9iamVjdC5rZXlzKG4pLm1hcCgodD0+W3Qsblt0XV0pKS5maWx0ZXIoKChbdCxlXSk9Pntjb25zdHtub2RlczpufT1lO2lmKG4ubGVuZ3RoPjEpcmV0dXJuITA7Y29uc3QgaT1uWzBdO3JldHVybiBpLnR5cGU9PT1BJHQuTUVUQSYmaS5hc3NvY2lhdGVkRnVuY3Rpb259KSkuc29ydCgoKFt0LGVdKT0+ZS5ub2Rlc1swXS5kZXB0aCkpfSkodCksZSk7cmV0dXJuIE9iamVjdC5rZXlzKG4pLnNvcnQoKHQ9Pm5bdF0ubGV2ZWwpKS5yZWR1Y2UoKCh0LGUpPT4odFtlXT1uW2VdLHQpKSx7fSl9ZnVuY3Rpb24gdEt0KHQsZSxuKXtyZXR1cm4gQ2UuZXhwb3J0cy5zb3J0QnkodCxbdD0+ZS5ub2RlKHQpLm9wLHQ9PmUubm9kZSh0KS50ZW1wbGF0ZUlkLHQ9PmUubmVpZ2hib3JzKHQpLmxlbmd0aCx0PT5lLnByZWRlY2Vzc29ycyh0KS5sZW5ndGgsdD0+ZS5zdWNjZXNzb3JzKHQpLmxlbmd0aCx0PT50LnN1YnN0cihuLmxlbmd0aCldKX1mdW5jdGlvbiBlS3QodCxlKXtpZighKGZ1bmN0aW9uIG4odCxlKXtsZXQgbj1LJHQodCksaT1LJHQoZSk7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0KyspaWYoblt0XSE9PWlbdF0pcmV0dXJuITE7cmV0dXJuITB9KSh0LGUpKXJldHVybiExO2xldCBpPXQuZ3JhcGgoKS5uYW1lLHI9ZS5ncmFwaCgpLm5hbWUsbz17fSxhPXt9LHM9W107ZnVuY3Rpb24gbCh0LGUpe2xldCBuPXQuc3Vic3RyKGkubGVuZ3RoKSxsPWUuc3Vic3RyKHIubGVuZ3RoKTtyZXR1cm4gb1tuXV5hW2xdPyhjb25zb2xlLndhcm4oImRpZmZlcmVudCB2aXNpdCBwYXR0ZXJuIiwiWyIraSsiXSIsbiwiWyIrcisiXSIsbCksITApOihvW25dfHwob1tuXT1hW2xdPSEwLHMucHVzaCh7bjE6dCxuMjplfSkpLCExKX1sZXQgYz10LnNvdXJjZXMoKSx1PWUuc291cmNlcygpO2lmKGMubGVuZ3RoIT09dS5sZW5ndGgpcmV0dXJuIGNvbnNvbGUubG9nKCJkaWZmZXJlbnQgc291cmNlIGxlbmd0aCIpLCExO2M9dEt0KGMsdCxpKSx1PXRLdCh1LGUscik7Zm9yKGxldCB0PTA7dDxjLmxlbmd0aDt0Kyspe2lmKGwoY1t0XSx1W3RdKSlyZXR1cm4hMX1mb3IoO3MubGVuZ3RoPjA7KXtsZXQgbj1zLnBvcCgpO2lmKCFuS3QodC5ub2RlKG4ubjEpLGUubm9kZShuLm4yKSkpcmV0dXJuITE7bGV0IG89dC5zdWNjZXNzb3JzKG4ubjEpLGE9ZS5zdWNjZXNzb3JzKG4ubjIpO2lmKG8ubGVuZ3RoIT09YS5sZW5ndGgpcmV0dXJuIGNvbnNvbGUubG9nKCIjIG9mIHN1Y2Nlc3NvcnMgbWlzbWF0Y2giLG8sYSksITE7bz10S3Qobyx0LGkpLGE9dEt0KGEsZSxyKTtmb3IobGV0IHQ9MDt0PG8ubGVuZ3RoO3QrKyl7aWYobChvW3RdLGFbdF0pKXJldHVybiExfX1yZXR1cm4hMH1mdW5jdGlvbiBuS3QodCxlKXtpZih0LnR5cGU9PT1BJHQuTUVUQSl7bGV0IG49dCxpPWU7cmV0dXJuIG4udGVtcGxhdGVJZCYmaS50ZW1wbGF0ZUlkJiZuLnRlbXBsYXRlSWQ9PT1pLnRlbXBsYXRlSWR9aWYodC50eXBlPT09QSR0Lk9QJiZlLnR5cGU9PT1BJHQuT1ApcmV0dXJuIHQub3A9PT1lLm9wO2lmKHQudHlwZT09PUEkdC5TRVJJRVMmJmUudHlwZT09PUEkdC5TRVJJRVMpe2xldCBuPXQsaT1lLHI9bi5tZXRhZ3JhcGgubm9kZUNvdW50KCk7cmV0dXJuIHI9PT1pLm1ldGFncmFwaC5ub2RlQ291bnQoKSYmKDA9PT1yfHxuLm1ldGFncmFwaC5ub2RlKG4ubWV0YWdyYXBoLm5vZGVzKClbMF0pLm9wPT09aS5tZXRhZ3JhcGgubm9kZShpLm1ldGFncmFwaC5ub2RlcygpWzBdKS5vcCl9cmV0dXJuITF9dmFyIGlLdDshKGZ1bmN0aW9uKHQpe3RbdC5URU1QTEFURVNfVVBEQVRFRD0wXT0iVEVNUExBVEVTX1VQREFURUQifSkoaUt0fHwoaUt0PXt9KSk7Y2xhc3Mgckt0IGV4dGVuZHMgY2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmV2ZW50VHlwZVRvTGlzdGVuZXJzPW5ldyBNYXB9Z2V0TGlzdGVuZXJzKHQpe3JldHVybiB0aGlzLmV2ZW50VHlwZVRvTGlzdGVuZXJzLmhhcyh0KXx8dGhpcy5ldmVudFR5cGVUb0xpc3RlbmVycy5zZXQodCxbXSksdGhpcy5ldmVudFR5cGVUb0xpc3RlbmVycy5nZXQodCl9YWRkTGlzdGVuZXIodCxlKXt0aGlzLmdldExpc3RlbmVycyh0KS5wdXNoKGUpfXJlbW92ZUxpc3RlbmVyKHQsZSl7Y29uc3Qgbj10aGlzLmdldExpc3RlbmVycyh0KS5maWx0ZXIoKHQ9PnQhPT1lKSk7dGhpcy5ldmVudFR5cGVUb0xpc3RlbmVycy5zZXQodCxuKX1kaXNwYXRjaEV2ZW50KHQsZSl7Zm9yKGNvbnN0IG4gb2YgdGhpcy5nZXRMaXN0ZW5lcnModCkpbihlKX19e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5oYXNTaGFwZUluZm89ITEsdGhpcy5tYXhNZXRhRWRnZVNpemU9MSx0aGlzLmdyYXBoT3B0aW9ucz17fSx0aGlzLnRlbXBsYXRlcz1udWxsLHRoaXMuZ3JhcGhPcHRpb25zLmNvbXBvdW5kPSEwLHRoaXMuZ3JhcGhPcHRpb25zLnJhbmtkaXI9dC5yYW5rRGlyZWN0aW9uLHRoaXMucm9vdD16JHQoRSR0LHRoaXMuZ3JhcGhPcHRpb25zKSx0aGlzLmxpYnJhcnlGdW5jdGlvbnM9e30sdGhpcy5zZXJpZXNHcm91cE1hcD1uZXcgTWFwKHQuc2VyaWVzTWFwKSx0aGlzLmRldmljZXM9bnVsbCx0aGlzLnhsYUNsdXN0ZXJzPW51bGwsdGhpcy52ZXJpZnlUZW1wbGF0ZT10LnZlcmlmeVRlbXBsYXRlLHRoaXMuaW5kZXg9e30sdGhpcy5pbmRleC5fX3Jvb3RfXz10aGlzLnJvb3QsdGhpcy5vcmRlcmluZ3M9e319Z2V0U2VyaWVzR3JvdXBUeXBlKHQpe3ZhciBlO3JldHVybiBudWxsIT09KGU9dGhpcy5zZXJpZXNHcm91cE1hcC5nZXQodCkpJiZ2b2lkIDAhPT1lP2U6TCR0LkdST1VQfXNldFNlcmllc0dyb3VwVHlwZSh0LGUpe3JldHVybiB0aGlzLnNlcmllc0dyb3VwTWFwLnNldCh0LGUpfWJ1aWxkU2VyaWVzR3JvdXBNYXBUb2dnbGVkKHQpe2NvbnN0IGU9dGhpcy5nZXRTZXJpZXNHcm91cFR5cGUodCk9PT1MJHQuR1JPVVA/TCR0LlVOR1JPVVA6TCR0LkdST1VQO3JldHVybiBuZXcgTWFwKFsuLi50aGlzLnNlcmllc0dyb3VwTWFwLFt0LGVdXSl9Z2V0Tm9kZU1hcCgpe3JldHVybiB0aGlzLmluZGV4fW5vZGUodCl7cmV0dXJuIHRoaXMuaW5kZXhbdF19c2V0Tm9kZSh0LGUpe3RoaXMuaW5kZXhbdF09ZX1nZXRCcmlkZ2VncmFwaCh0KXtsZXQgZT10aGlzLmluZGV4W3RdO2lmKCFlKXRocm93IEVycm9yKCJDb3VsZCBub3QgZmluZCBub2RlIGluIGhpZXJhcmNoeTogIit0KTtpZighKCJtZXRhZ3JhcGgiaW4gZSkpcmV0dXJuIG51bGw7aWYoZS5icmlkZ2VncmFwaClyZXR1cm4gZS5icmlkZ2VncmFwaDtsZXQgbj1lLmJyaWRnZWdyYXBoPVkkdCgiQlJJREdFR1JBUEgiLEMkdC5CUklER0UsdGhpcy5ncmFwaE9wdGlvbnMpO2lmKCFlLnBhcmVudE5vZGV8fCEoIm1ldGFncmFwaCJpbiBlLnBhcmVudE5vZGUpKXJldHVybiBuO2xldCBpPWUucGFyZW50Tm9kZSxyPWkubWV0YWdyYXBoLG89dGhpcy5nZXRCcmlkZ2VncmFwaChpLm5hbWUpO3JldHVybiBDZS5leHBvcnRzLmVhY2goW3Isb10sKGU9PntlLmVkZ2VzKCkuZmlsdGVyKChlPT5lLnY9PT10fHxlLnc9PT10KSkuZm9yRWFjaCgoaT0+e2xldCByPWkudz09PXQsbz1lLmVkZ2UoaSk7Q2UuZXhwb3J0cy5lYWNoKG8uYmFzZUVkZ2VMaXN0LChlPT57bGV0W28sYV09cj9bZS53LGkudl06W2UudixpLnddLHM9dGhpcy5nZXRDaGlsZE5hbWUodCxvKSxsPXt2OnI/YTpzLHc6cj9zOmF9LGM9bi5lZGdlKGwpO2N8fChjPUIkdChsLnYsbC53KSxjLmluYm91bmQ9cixuLnNldEVkZ2UobC52LGwudyxjKSksYy5hZGRCYXNlRWRnZShlLHRoaXMpfSkpfSkpfSkpLG59Z2V0Q2hpbGROYW1lKHQsZSl7bGV0IG49dGhpcy5pbmRleFtlXTtmb3IoO247KXtpZihuLnBhcmVudE5vZGUmJm4ucGFyZW50Tm9kZS5uYW1lPT09dClyZXR1cm4gbi5uYW1lO249bi5wYXJlbnROb2RlfXRocm93IEVycm9yKCJDb3VsZCBub3QgZmluZCBpbW1lZGlhdGUgY2hpbGQgZm9yIGRlc2NlbmRhbnQ6ICIrZSl9Z2V0UHJlZGVjZXNzb3JzKHQpe2xldCBlPXRoaXMuaW5kZXhbdF07aWYoIWUpdGhyb3cgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIG5vZGUgd2l0aCBuYW1lOiAiK3QpO2xldCBuPXRoaXMuZ2V0T25lV2F5RWRnZXMoZSwhMCk7cmV0dXJuIGUuaXNHcm91cE5vZGV8fENlLmV4cG9ydHMuZWFjaChlLmluRW1iZWRkaW5ncywoaT0+e0NlLmV4cG9ydHMuZWFjaChlLmlucHV0cywoZT0+e2lmKGUubmFtZT09PWkubmFtZSl7bGV0IHI9bmV3IEgkdChpLm5hbWUsdCk7ci5hZGRCYXNlRWRnZSh7aXNDb250cm9sRGVwZW5kZW5jeTplLmlzQ29udHJvbERlcGVuZGVuY3ksb3V0cHV0VGVuc29yS2V5OmUub3V0cHV0VGVuc29yS2V5LGlzUmVmZXJlbmNlRWRnZTohMSx2OmkubmFtZSx3OnR9LHRoaXMpLG4ucmVndWxhci5wdXNoKHIpfX0pKX0pKSxufWdldFN1Y2Nlc3NvcnModCl7bGV0IGU9dGhpcy5pbmRleFt0XTtpZighZSl0aHJvdyBFcnJvcigiQ291bGQgbm90IGZpbmQgbm9kZSB3aXRoIG5hbWU6ICIrdCk7bGV0IG49dGhpcy5nZXRPbmVXYXlFZGdlcyhlLCExKTtyZXR1cm4gZS5pc0dyb3VwTm9kZXx8Q2UuZXhwb3J0cy5lYWNoKGUub3V0RW1iZWRkaW5ncywoZT0+e0NlLmV4cG9ydHMuZWFjaChlLmlucHV0cywoaT0+e2lmKGkubmFtZT09PXQpe2xldCByPW5ldyBIJHQodCxlLm5hbWUpO3IuYWRkQmFzZUVkZ2Uoe2lzQ29udHJvbERlcGVuZGVuY3k6aS5pc0NvbnRyb2xEZXBlbmRlbmN5LG91dHB1dFRlbnNvcktleTppLm91dHB1dFRlbnNvcktleSxpc1JlZmVyZW5jZUVkZ2U6ITEsdjp0LHc6ZS5uYW1lfSx0aGlzKSxuLnJlZ3VsYXIucHVzaChyKX19KSl9KSksbn1nZXRPbmVXYXlFZGdlcyh0LGUpe2xldCBuPXtjb250cm9sOltdLHJlZ3VsYXI6W119O2lmKCF0LnBhcmVudE5vZGV8fCF0LnBhcmVudE5vZGUuaXNHcm91cE5vZGUpcmV0dXJuIG47bGV0IGk9dC5wYXJlbnROb2RlLHI9aS5tZXRhZ3JhcGgsbz10aGlzLmdldEJyaWRnZWdyYXBoKGkubmFtZSk7cmV0dXJuIG9LdChyLHQsZSxuKSxvS3Qobyx0LGUsbiksbn1nZXRUb3BvbG9naWNhbE9yZGVyaW5nKHQpe2xldCBlPXRoaXMuaW5kZXhbdF07aWYoIWUpdGhyb3cgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIG5vZGUgd2l0aCBuYW1lOiAiK3QpO2lmKCFlLmlzR3JvdXBOb2RlKXJldHVybiBudWxsO2lmKHQgaW4gdGhpcy5vcmRlcmluZ3MpcmV0dXJuIHRoaXMub3JkZXJpbmdzW3RdO2xldCBuPXt9LGk9e30scj1lLm1ldGFncmFwaDtDZS5leHBvcnRzLmVhY2goci5lZGdlcygpLCh0PT57ci5lZGdlKHQpLm51bVJlZ3VsYXJFZGdlcyYmKHQudiBpbiBufHwoblt0LnZdPVtdKSxuW3Qudl0ucHVzaCh0LncpLGlbdC53XT0hMCl9KSk7bGV0IG89Q2UuZXhwb3J0cy5kaWZmZXJlbmNlKENlLmV4cG9ydHMua2V5cyhuKSxDZS5leHBvcnRzLmtleXMoaSkpLGE9dGhpcy5vcmRlcmluZ3NbdF09e30scz0wO2Zvcig7by5sZW5ndGg7KXtsZXQgdD1vLnNoaWZ0KCk7YVt0XT1zKyssQ2UuZXhwb3J0cy5lYWNoKG5bdF0sKHQ9Pm8ucHVzaCh0KSkpLGRlbGV0ZSBuW3RdfXJldHVybiBhfWdldFRlbXBsYXRlSW5kZXgoKXtpZighdGhpcy50ZW1wbGF0ZXMpcmV0dXJuIG51bGw7bGV0IHQ9WmcodGhpcy50ZW1wbGF0ZXMpO2lmKCF0Lmxlbmd0aClyZXR1cm4gbnVsbDtsZXQgZT1ZTSgpLmRvbWFpbih0KS5yYW5nZShLbCgwLHQubGVuZ3RoKSk7cmV0dXJuIHQ9PmUodCl9dXBkYXRlVGVtcGxhdGVzKCl7ZCR0KCJGaW5kaW5nIHNpbWlsYXIgc3ViZ3JhcGhzIiwoKCk9Pnt0aGlzLnRlbXBsYXRlcz1RJHQodGhpcyx0aGlzLnZlcmlmeVRlbXBsYXRlKSx0aGlzLmRpc3BhdGNoRXZlbnQoaUt0LlRFTVBMQVRFU19VUERBVEVEKX0pLEJBdC5ISUVSQVJDSFlfRklORF9TSU1JTEFSX1NVQkdSQVBIUyl9fWZ1bmN0aW9uIG9LdCh0LGUsbixpKXtsZXQgcj1uP3QuaW5FZGdlcyhlLm5hbWUpOnQub3V0RWRnZXMoZS5uYW1lKTtDZS5leHBvcnRzLmVhY2gociwoZT0+e2xldCBuPXQuZWRnZShlKTsobi5udW1SZWd1bGFyRWRnZXM/aS5yZWd1bGFyOmkuY29udHJvbCkucHVzaChuKX0pKX1jb25zdCBhS3Q9e3ZlcmlmeVRlbXBsYXRlOiEwLHNlcmllc05vZGVNaW5TaXplOjUsc2VyaWVzTWFwOm5ldyBNYXAscmFua0RpcmVjdGlvbjoiQlQiLHVzZUdlbmVyYWxpemVkU2VyaWVzUGF0dGVybnM6ITF9O2Z1bmN0aW9uIHNLdCh0LGUsbil7Y29uc3QgaT1uZXcgckt0KGUpLHI9e307cmV0dXJuIG0kdCgiQWRkaW5nIG5vZGVzIiwzMCwoKCk9PntsZXQgZT17fSxuPXt9O0NlLmV4cG9ydHMuZWFjaCh0Lm5vZGVzLCgodCxpKT0+e3QuZGV2aWNlJiYoZVt0LmRldmljZV09ITApLHQueGxhQ2x1c3RlciYmKG5bdC54bGFDbHVzdGVyXT0hMCl9KSksaS5kZXZpY2VzPUNlLmV4cG9ydHMua2V5cyhlKSxpLnhsYUNsdXN0ZXJzPUNlLmV4cG9ydHMua2V5cyhuKSwoZnVuY3Rpb24gcih0LGUpe2NvbnN0IG49e307Q2UuZXhwb3J0cy5lYWNoKGUubm9kZXMsKChlLGkpPT57bGV0IHI9WiR0KGUubmFtZSksbz10LnJvb3Q7by5kZXB0aD1NYXRoLm1heChyLmxlbmd0aCxvLmRlcHRoKSxuW2Uub3BdfHwobltlLm9wXT1bXSksbltlLm9wXS5wdXNoKGUpO2ZvcihsZXQgaT0wO2k8ci5sZW5ndGgmJihvLmRlcHRoPU1hdGgubWF4KG8uZGVwdGgsci5sZW5ndGgtaSksby5jYXJkaW5hbGl0eSs9ZS5jYXJkaW5hbGl0eSxvLm9wSGlzdG9ncmFtW2Uub3BdPShvLm9wSGlzdG9ncmFtW2Uub3BdfHwwKSsxLG51bGwhPWUuZGV2aWNlJiYoby5kZXZpY2VIaXN0b2dyYW1bZS5kZXZpY2VdPShvLmRldmljZUhpc3RvZ3JhbVtlLmRldmljZV18fDApKzEpLG51bGwhPWUueGxhQ2x1c3RlciYmKG8ueGxhQ2x1c3Rlckhpc3RvZ3JhbVtlLnhsYUNsdXN0ZXJdPShvLnhsYUNsdXN0ZXJIaXN0b2dyYW1bZS54bGFDbHVzdGVyXXx8MCkrMSksZS5jb21wYXRpYmxlP28uY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5jb21wYXRpYmxlPShvLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZXx8MCkrMTpvLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uaW5jb21wYXRpYmxlPShvLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uaW5jb21wYXRpYmxlfHwwKSsxLENlLmV4cG9ydHMuZWFjaChlLmluRW1iZWRkaW5ncywodD0+e3QuY29tcGF0aWJsZT9vLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZT0oby5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmNvbXBhdGlibGV8fDApKzE6by5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmluY29tcGF0aWJsZT0oby5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmluY29tcGF0aWJsZXx8MCkrMX0pKSxDZS5leHBvcnRzLmVhY2goZS5vdXRFbWJlZGRpbmdzLCh0PT57dC5jb21wYXRpYmxlP28uY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5jb21wYXRpYmxlPShvLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZXx8MCkrMTpvLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uaW5jb21wYXRpYmxlPShvLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uaW5jb21wYXRpYmxlfHwwKSsxfSkpLGkhPT1yLmxlbmd0aC0xKTtpKyspe2xldCBlPXJbaV0sYT10Lm5vZGUoZSk7aWYoIWEmJihhPXokdChlLHQuZ3JhcGhPcHRpb25zKSxhLnBhcmVudE5vZGU9byx0LnNldE5vZGUoZSxhKSxvLm1ldGFncmFwaC5zZXROb2RlKGUsYSksMD09PWUuaW5kZXhPZihUJHQpJiZvLm5hbWU9PT1FJHQpKXtjb25zdCBpPWUuc3Vic3RyaW5nKFQkdC5sZW5ndGgpO25baV18fChuW2ldPVtdKSx0LmxpYnJhcnlGdW5jdGlvbnNbaV09e25vZGU6YSx1c2FnZXM6bltpXX0sYS5hc3NvY2lhdGVkRnVuY3Rpb249aX1vPWF9dC5zZXROb2RlKGUubmFtZSxlKSxlLnBhcmVudE5vZGU9byxvLm1ldGFncmFwaC5zZXROb2RlKGUubmFtZSxlKSxDZS5leHBvcnRzLmVhY2goZS5pbkVtYmVkZGluZ3MsKGZ1bmN0aW9uKG4pe3Quc2V0Tm9kZShuLm5hbWUsbiksbi5wYXJlbnROb2RlPWV9KSksQ2UuZXhwb3J0cy5lYWNoKGUub3V0RW1iZWRkaW5ncywoZnVuY3Rpb24obil7dC5zZXROb2RlKG4ubmFtZSxuKSxuLnBhcmVudE5vZGU9ZX0pKX0pKX0pKGksdCl9KSxuLEJBdC5ISUVSQVJDSFlfQUREX05PREVTKS50aGVuKCgoKT0+bSR0KCJEZXRlY3Qgc2VyaWVzIiwzMCwoKCk9PntlLnNlcmllc05vZGVNaW5TaXplPjAmJmxLdChpLnJvb3QsaSxyLGUuc2VyaWVzTm9kZU1pblNpemUsZS5zZXJpZXNNYXAsZS51c2VHZW5lcmFsaXplZFNlcmllc1BhdHRlcm5zKX0pLG4sQkF0LkhJRVJBUkNIWV9ERVRFQ1RfU0VSSUVTKSkpLnRoZW4oKCgpPT5tJHQoIkFkZGluZyBlZGdlcyIsNDAsKCgpPT57IShmdW5jdGlvbiBlKHQsbixpKXtsZXQgcj10LmdldE5vZGVNYXAoKSxvPVtdLGE9W10scz0odCxlKT0+e2xldCBuPTA7Zm9yKDt0OyllW24rK109dC5uYW1lLHQ9dC5wYXJlbnROb2RlO3JldHVybiBuLTF9O0NlLmV4cG9ydHMuZWFjaChuLmVkZ2VzLChlPT57bGV0IGk9cyhuLm5vZGVzW2Uudl0sbyksbD1zKG4ubm9kZXNbZS53XSxhKTtpZigtMT09PWl8fC0xPT09bClyZXR1cm47Zm9yKDtvW2ldPT09YVtsXTspaWYoaS0tLGwtLSxpPDB8fGw8MCl0aHJvdyBFcnJvcigiTm8gZGlmZmVyZW5jZSBmb3VuZCBiZXR3ZWVuIGFuY2VzdG9yIHBhdGhzLiIpO2xldCBjPXJbb1tpKzFdXSx1PW9baV0saD1hW2xdLGQ9Yy5tZXRhZ3JhcGguZWRnZSh1LGgpO2R8fChkPUIkdCh1LGgpLGMubWV0YWdyYXBoLnNldEVkZ2UodSxoLGQpKSxjLmhhc05vbkNvbnRyb2xFZGdlc3x8ZS5pc0NvbnRyb2xEZXBlbmRlbmN5fHwoYy5oYXNOb25Db250cm9sRWRnZXM9ITApLGQuYWRkQmFzZUVkZ2UoZSx0KX0pKX0pKGksdCl9KSxuLEJBdC5ISUVSQVJDSFlfQUREX0VER0VTKSkpLnRoZW4oKCgpPT5pKSl9ZnVuY3Rpb24gbEt0KHQsZSxuLGkscixvKXtsZXQgYT10Lm1ldGFncmFwaDtDZS5leHBvcnRzLmVhY2goYS5ub2RlcygpLCh0PT57bGV0IHM9YS5ub2RlKHQpO3MudHlwZT09PUEkdC5NRVRBJiZsS3QocyxlLG4saSxyLG8pfSkpO2xldCBzPShmdW5jdGlvbiBsKHQpe2xldCBlPXt9O3JldHVybiBDZS5leHBvcnRzLnJlZHVjZSh0Lm5vZGVzKCksKChlLG4pPT57bGV0IGk9dC5ub2RlKG4pO2lmKGkudHlwZT09PUEkdC5NRVRBKXJldHVybiBlO2xldCByPWkub3A7cmV0dXJuIHImJihlW3JdPWVbcl18fFtdLGVbcl0ucHVzaChpLm5hbWUpKSxlfSksZSl9KShhKTtsZXQgYz0obz91S3Q6Y0t0KShzLGEsZS5ncmFwaE9wdGlvbnMpO0NlLmV4cG9ydHMuZWFjaChjLChmdW5jdGlvbih0LHIpe2xldCBvPXQubWV0YWdyYXBoLm5vZGVzKCk7Q2UuZXhwb3J0cy5lYWNoKG8sKHQ9PntsZXQgZT1hLm5vZGUodCk7ZS5vd25pbmdTZXJpZXN8fChlLm93bmluZ1Nlcmllcz1yKX0pKSxvLmxlbmd0aDxpJiZlLmdldFNlcmllc0dyb3VwVHlwZSh0Lm5hbWUpPT09TCR0LkdST1VQJiZlLnNldFNlcmllc0dyb3VwVHlwZSh0Lm5hbWUsTCR0LlVOR1JPVVApLGUuZ2V0U2VyaWVzR3JvdXBUeXBlKHQubmFtZSkhPT1MJHQuVU5HUk9VUCYmKGUuc2V0Tm9kZShyLHQpLGEuc2V0Tm9kZShyLHQpLENlLmV4cG9ydHMuZWFjaChvLChlPT57bGV0IGk9YS5ub2RlKGUpO3QubWV0YWdyYXBoLnNldE5vZGUoZSxpKSx0LnBhcmVudE5vZGU9aS5wYXJlbnROb2RlLHQuY2FyZGluYWxpdHkrKyxudWxsIT1pLmRldmljZSYmKHQuZGV2aWNlSGlzdG9ncmFtW2kuZGV2aWNlXT0odC5kZXZpY2VIaXN0b2dyYW1baS5kZXZpY2VdfHwwKSsxKSxudWxsIT1pLnhsYUNsdXN0ZXImJih0LnhsYUNsdXN0ZXJIaXN0b2dyYW1baS54bGFDbHVzdGVyXT0odC54bGFDbHVzdGVySGlzdG9ncmFtW2kueGxhQ2x1c3Rlcl18fDApKzEpLGkuY29tcGF0aWJsZT90LmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZT0odC5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmNvbXBhdGlibGV8fDApKzE6dC5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmluY29tcGF0aWJsZT0odC5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmluY29tcGF0aWJsZXx8MCkrMSxDZS5leHBvcnRzLmVhY2goaS5pbkVtYmVkZGluZ3MsKGU9PntlLmNvbXBhdGlibGU/dC5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmNvbXBhdGlibGU9KHQuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5jb21wYXRpYmxlfHwwKSsxOnQuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5pbmNvbXBhdGlibGU9KHQuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5pbmNvbXBhdGlibGV8fDApKzF9KSksQ2UuZXhwb3J0cy5lYWNoKGkub3V0RW1iZWRkaW5ncywoZT0+e2UuY29tcGF0aWJsZT90LmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZT0odC5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmNvbXBhdGlibGV8fDApKzE6dC5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmluY29tcGF0aWJsZT0odC5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmluY29tcGF0aWJsZXx8MCkrMX0pKSxpLnBhcmVudE5vZGU9dCxuW2VdPXIsYS5yZW1vdmVOb2RlKGUpfSkpKX0pKX1mdW5jdGlvbiBjS3QodCxlLG4pe2xldCBpPXt9O3JldHVybiBDZS5leHBvcnRzLmVhY2godCwoZnVuY3Rpb24odCxyKXtpZih0Lmxlbmd0aDw9MSlyZXR1cm47bGV0IG89e307Q2UuZXhwb3J0cy5lYWNoKHQsKGZ1bmN0aW9uKHQpe2NvbnN0IGU9IioiPT09dC5jaGFyQXQodC5sZW5ndGgtMSksaT10LnNwbGl0KCIvIikscj1pW2kubGVuZ3RoLTFdLGE9aS5zbGljZSgwLGkubGVuZ3RoLTEpLmpvaW4oIi8iKSxzPXIubWF0Y2goL14oXEQqKShcZCspJC8pO2xldCBsLGMsdT0iIjtzPyhsPXNbMV0sYz1zWzJdKToobD1lP3Iuc3Vic3RyKDAsci5sZW5ndGgtMSk6cixjPTAsdT1lPyIqIjoiIik7Y29uc3QgaD1WJHQobCx1LGEpO29baF09b1toXXx8W107Y29uc3QgZD1GJHQobCx1LGEsK2MsdCxuKTtvW2hdLnB1c2goZCl9KSksQ2UuZXhwb3J0cy5lYWNoKG8sKGZ1bmN0aW9uKHQsbyl7aWYodC5sZW5ndGg8MilyZXR1cm47dC5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybit0LmNsdXN0ZXJJZC0rZS5jbHVzdGVySWR9KSk7bGV0IGE9W3RbMF1dO2ZvcihsZXQgbz0xO288dC5sZW5ndGg7bysrKXtsZXQgcz10W29dO3MuY2x1c3RlcklkIT09YVthLmxlbmd0aC0xXS5jbHVzdGVySWQrMT8oaEt0KGEsaSwrcixlLG4pLGE9W3NdKTphLnB1c2gocyl9aEt0KGEsaSwrcixlLG4pfSkpfSkpLGl9ZnVuY3Rpb24gdUt0KHQsZSxuKXtsZXQgaT17fTtyZXR1cm4gQ2UuZXhwb3J0cy5lYWNoKHQsKGZ1bmN0aW9uKHQscil7aWYodC5sZW5ndGg8PTEpcmV0dXJuO2xldCBvPXt9LGE9e307Q2UuZXhwb3J0cy5lYWNoKHQsKGZ1bmN0aW9uKHQpe2xldCBlPSIqIj09PXQuY2hhckF0KHQubGVuZ3RoLTEpLGk9dC5zcGxpdCgiLyIpLHI9aVtpLmxlbmd0aC0xXSxzPWkuc2xpY2UoMCxpLmxlbmd0aC0xKS5qb2luKCIvIik7Y29uc3QgbD0vKFxkKykvZztsZXQgYyx1LGgsZCxwLGY9MDtmb3IoO2M9bC5leGVjKHIpOykrK2YsdT1yLnNsaWNlKDAsYy5pbmRleCksaD1jWzBdLGQ9ci5zbGljZShjLmluZGV4K2NbMF0ubGVuZ3RoKSxwPVYkdCh1LGQscyksb1twXT1vW3BdLG9bcF18fChvW3BdPUYkdCh1LGQscywraCx0LG4pKSxvW3BdLmlkcy5wdXNoKGgpLGFbdF09YVt0XXx8W10sYVt0XS5wdXNoKFtwLGhdKTtmPDEmJih1PWU/ci5zdWJzdHIoMCxyLmxlbmd0aC0xKTpyLGg9MCxkPWU/IioiOiIiLHA9ViR0KHUsZCxzKSxvW3BdPW9bcF0sb1twXXx8KG9bcF09RiR0KHUsZCxzLCtoLHQsbikpLG9bcF0uaWRzLnB1c2goaCksYVt0XT1hW3RdfHxbXSxhW3RdLnB1c2goW3AsaF0pKX0pKTt2YXIgcz17fTtDZS5leHBvcnRzLmVhY2goYSwoZnVuY3Rpb24odCxlKXt0LnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG9bZVswXV0uaWRzLmxlbmd0aC1vW3RbMF1dLmlkcy5sZW5ndGh9KSk7dmFyIGk9dFswXVswXSxyPXRbMF1bMV07c1tpXT1zW2ldfHxbXTtjb25zdCBhPWUuc3BsaXQoIi8iKSxsPWEuc2xpY2UoMCxhLmxlbmd0aC0xKS5qb2luKCIvIik7dmFyIGM9RiR0KG9baV0ucHJlZml4LG9baV0uc3VmZml4LGwsK3IsZSxuKTtzW2ldLnB1c2goYyl9KSksQ2UuZXhwb3J0cy5lYWNoKHMsKGZ1bmN0aW9uKHQsbyl7aWYodC5sZW5ndGg8MilyZXR1cm47dC5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybit0LmNsdXN0ZXJJZC0rZS5jbHVzdGVySWR9KSk7bGV0IGE9W3RbMF1dO2ZvcihsZXQgbz0xO288dC5sZW5ndGg7bysrKXtsZXQgcz10W29dO3MuY2x1c3RlcklkIT09YVthLmxlbmd0aC0xXS5jbHVzdGVySWQrMT8oaEt0KGEsaSwrcixlLG4pLGE9W3NdKTphLnB1c2gocyl9aEt0KGEsaSwrcixlLG4pfSkpfSkpLGl9ZnVuY3Rpb24gaEt0KHQsZSxuLGkscil7aWYodC5sZW5ndGg+MSl7bGV0IG89ViR0KHRbMF0ucHJlZml4LHRbMF0uc3VmZml4LHRbMF0ucGFyZW50LHRbMF0uY2x1c3RlcklkLHRbdC5sZW5ndGgtMV0uY2x1c3RlcklkKSxhPUYkdCh0WzBdLnByZWZpeCx0WzBdLnN1ZmZpeCx0WzBdLnBhcmVudCxuLG8scik7Q2UuZXhwb3J0cy5lYWNoKHQsKGZ1bmN0aW9uKHQpe2EuaWRzLnB1c2godC5jbHVzdGVySWQpLGEubWV0YWdyYXBoLnNldE5vZGUodC5uYW1lLGkubm9kZSh0Lm5hbWUpKX0pKSxlW29dPWF9fWxldCBkS3Q9IiNmZmZmZmYiLHBLdD0iI2IyYjJiMiIsZkt0PSIjMGY5ZDU4IixtS3Q9IiNkYjQ0MzciLGdLdD17REVGQVVMVF9GSUxMOiIjZDlkOWQ5IixERUZBVUxUX1NUUk9LRToiI2E2YTZhNiIsU0FUVVJBVElPTjouNixMSUdIVE5FU1M6Ljg1LEVYUEFOREVEX0NPTE9SOiIjZjBmMGYwIixIVUVTOlsyMjAsMTAwLDE4MCw0MCwyMCwzNDAsMjYwLDMwMCwxNDAsNjBdLFNUUlVDVFVSRV9QQUxFVFRFKHQsZSl7bGV0IG49Z0t0LkhVRVMsaT1uW3Qlbi5sZW5ndGhdLHI9TWF0aC5zaW4oaSpNYXRoLlBJLzM2MCk7cmV0dXJuIGNkKGksLjAxKihlPzMwOjkwLTYwKnIpLC4wMSooZT85NTo4MCkpLnRvU3RyaW5nKCl9LERFVklDRV9QQUxFVFRFOnQ9PmdLdC5TVFJVQ1RVUkVfUEFMRVRURSh0KSxYTEFfQ0xVU1RFUl9QQUxFVFRFOnQ9PmdLdC5TVFJVQ1RVUkVfUEFMRVRURSh0KSxVTktOT1dOOiIjZWVlIixHUkFESUVOVF9PVVRMSU5FOiIjODg4In0sX0t0PSJ3aGl0ZSIseUt0PSIjYjJiMmIyIjtjb25zdCB2S3Q9MTUsYkt0PTUseEt0PTQsd0t0PTQsU0t0PVsiTm9PcCJdLE1LdD1bXSxFS3Q9WyIjZmZmNWYwIiwiI2ZiNmE0YSJdLFRLdD01LENLdD1uZXcgUmVnRXhwKCJeKD86X19mdW5jdGlvbl9saWJyYXJ5X18pPyhcXHcrKV9bYS16MC05XXs4fSg/Ol9cXGQrKT8kIik7Y2xhc3MgQUt0e2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLmhpZXJhcmNoeT10LHRoaXMuZGlzcGxheWluZ1N0YXRzPWUsdGhpcy5hdXRvRXh0cmFjdE5vZGVzPW4sdGhpcy5pbmRleD17fSx0aGlzLnJlbmRlcmVkT3BOYW1lcz1bXSx0aGlzLmNvbXB1dGVTY2FsZXMoKSx0aGlzLmhhc1N1YmhpZXJhcmNoeT17fSx0aGlzLnJvb3Q9bmV3IHpLdCh0LnJvb3QsdC5ncmFwaE9wdGlvbnMpLHRoaXMuaW5kZXhbdC5yb290Lm5hbWVdPXRoaXMucm9vdCx0aGlzLnJlbmRlcmVkT3BOYW1lcy5wdXNoKHQucm9vdC5uYW1lKSx0aGlzLmJ1aWxkU3ViaGllcmFyY2h5KHQucm9vdC5uYW1lKSx0aGlzLnJvb3QuZXhwYW5kZWQ9ITAsdGhpcy50cmFjZUlucHV0cz0hMX1jb21wdXRlU2NhbGVzKCl7dGhpcy5kZXZpY2VDb2xvck1hcD1ZTSgpLmRvbWFpbih0aGlzLmhpZXJhcmNoeS5kZXZpY2VzKS5yYW5nZShDZS5leHBvcnRzLm1hcChLbCh0aGlzLmhpZXJhcmNoeS5kZXZpY2VzLmxlbmd0aCksZ0t0LkRFVklDRV9QQUxFVFRFKSksdGhpcy54bGFDbHVzdGVyQ29sb3JNYXA9WU0oKS5kb21haW4odGhpcy5oaWVyYXJjaHkueGxhQ2x1c3RlcnMpLnJhbmdlKENlLmV4cG9ydHMubWFwKEtsKHRoaXMuaGllcmFyY2h5LnhsYUNsdXN0ZXJzLmxlbmd0aCksZ0t0LlhMQV9DTFVTVEVSX1BBTEVUVEUpKTtsZXQgdD10aGlzLmhpZXJhcmNoeS5yb290Lm1ldGFncmFwaCxlPW9jKHQubm9kZXMoKSwoKGUsbik9PntsZXQgaT10Lm5vZGUoZSk7aWYobnVsbCE9aS5zdGF0cylyZXR1cm4gaS5zdGF0cy50b3RhbEJ5dGVzfSkpO3RoaXMubWVtb3J5VXNhZ2VTY2FsZT1jRSgpLmRvbWFpbihbMCxlXSkucmFuZ2UoRUt0KTtsZXQgbj1vYyh0Lm5vZGVzKCksKChlLG4pPT57bGV0IGk9dC5ub2RlKGUpO2lmKG51bGwhPWkuc3RhdHMpcmV0dXJuIGkuc3RhdHMuZ2V0VG90YWxNaWNyb3MoKX0pKTt0aGlzLmNvbXB1dGVUaW1lU2NhbGU9Y0UoKS5kb21haW4oWzAsbl0pLnJhbmdlKEVLdCksdGhpcy5lZGdlV2lkdGhTaXplZEJhc2VkU2NhbGU9dGhpcy5oaWVyYXJjaHkuaGFzU2hhcGVJbmZvP3UkdDpjRSgpLmRvbWFpbihbMSx0aGlzLmhpZXJhcmNoeS5tYXhNZXRhRWRnZVNpemVdKS5yYW5nZShbYyR0LDEyXSl9Z2V0UmVuZGVyTm9kZUJ5TmFtZSh0KXtyZXR1cm4gdGhpcy5pbmRleFt0XX1nZXROb2RlQnlOYW1lKHQpe3JldHVybiB0aGlzLmhpZXJhcmNoeS5ub2RlKHQpfWNvbG9ySGlzdG9ncmFtKHQsZSl7aWYoT2JqZWN0LmtleXModCkubGVuZ3RoPjApe2NvbnN0IG49Q2UuZXhwb3J0cy5zdW0oT2JqZWN0LmtleXModCkubWFwKChlPT50W2VdKSkpO3JldHVybiBPYmplY3Qua2V5cyh0KS5tYXAoKGk9Pih7Y29sb3I6ZShpKSxwcm9wb3J0aW9uOnRbaV0vbn0pKSl9cmV0dXJuIG51bGx9Z2V0T3JDcmVhdGVSZW5kZXJOb2RlQnlOYW1lKHQpe2lmKCF0KXJldHVybiBudWxsO2lmKHQgaW4gdGhpcy5pbmRleClyZXR1cm4gdGhpcy5pbmRleFt0XTtsZXQgZT10aGlzLmhpZXJhcmNoeS5ub2RlKHQpO2lmKCFlKXJldHVybiBudWxsO2xldCBuPWUuaXNHcm91cE5vZGU/bmV3IHpLdChlLHRoaXMuaGllcmFyY2h5LmdyYXBoT3B0aW9ucyk6bmV3IE5LdChlKTt0aGlzLmluZGV4W3RdPW4sdGhpcy5yZW5kZXJlZE9wTmFtZXMucHVzaCh0KSxlLnN0YXRzJiYobi5tZW1vcnlDb2xvcj10aGlzLm1lbW9yeVVzYWdlU2NhbGUoZS5zdGF0cy50b3RhbEJ5dGVzKSxuLmNvbXB1dGVUaW1lQ29sb3I9dGhpcy5jb21wdXRlVGltZVNjYWxlKGUuc3RhdHMuZ2V0VG90YWxNaWNyb3MoKSkpLG4uaXNGYWRlZE91dD10aGlzLmRpc3BsYXlpbmdTdGF0cyYmIWIkdChlLnN0YXRzKTt2YXIgaT1udWxsLHI9bnVsbCxvPW51bGw7aWYoZS5pc0dyb3VwTm9kZSl7aT1lLmRldmljZUhpc3RvZ3JhbSxyPWUueGxhQ2x1c3Rlckhpc3RvZ3JhbTtsZXQgdD1lLmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uY29tcGF0aWJsZSxuPWUuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5pbmNvbXBhdGlibGU7MD09dCYmMD09bnx8KG89dC8odCtuKSl9ZWxzZXtsZXQgdD1uLm5vZGUuZGV2aWNlO3QmJihpPXtbdF06MX0pO2xldCBlPW4ubm9kZS54bGFDbHVzdGVyO2UmJihyPXtbZV06MX0pLG4ubm9kZS50eXBlPT09QSR0Lk9QJiYobz1uLm5vZGUuY29tcGF0aWJsZT8xOjApfXJldHVybiBpJiYobi5kZXZpY2VDb2xvcnM9dGhpcy5jb2xvckhpc3RvZ3JhbShpLHRoaXMuZGV2aWNlQ29sb3JNYXApKSxyJiYobi54bGFDbHVzdGVyQ29sb3JzPXRoaXMuY29sb3JIaXN0b2dyYW0ocix0aGlzLnhsYUNsdXN0ZXJDb2xvck1hcCkpLG51bGwhPW8mJihuLmNvbXBhdGliaWxpdHlDb2xvcnM9W3tjb2xvcjpmS3QscHJvcG9ydGlvbjpvfSx7Y29sb3I6bUt0LHByb3BvcnRpb246MS1vfV0pLHRoaXMuaW5kZXhbdF19Z2V0TmVhcmVzdFZpc2libGVBbmNlc3Rvcih0KXtsZXQgZT1aJHQodCksbj0wLGk9bnVsbCxyPXQ7Zm9yKDtuPGUubGVuZ3RoJiYocj1lW25dLGk9dGhpcy5nZXRSZW5kZXJOb2RlQnlOYW1lKHIpLGkuZXhwYW5kZWQpO24rKyk7aWYobj09ZS5sZW5ndGgtMil7bGV0IHQ9ZVtuKzFdO2lmKGkuaW5Bbm5vdGF0aW9ucy5ub2RlTmFtZXNbdF0pcmV0dXJuIHQ7aWYoaS5vdXRBbm5vdGF0aW9ucy5ub2RlTmFtZXNbdF0pcmV0dXJuIHR9cmV0dXJuIHJ9c2V0RGVwdGgodCl7REt0KHRoaXMucm9vdCwrdCl9aXNOb2RlQXV4aWxpYXJ5KHQpe2xldCBlPXRoaXMuZ2V0UmVuZGVyTm9kZUJ5TmFtZSh0Lm5vZGUucGFyZW50Tm9kZS5uYW1lKSxuPUNlLmV4cG9ydHMuZmluZChlLmlzb2xhdGVkSW5FeHRyYWN0LChlPT5lLm5vZGUubmFtZT09PXQubm9kZS5uYW1lKSk7cmV0dXJuISFufHwobj1DZS5leHBvcnRzLmZpbmQoZS5pc29sYXRlZE91dEV4dHJhY3QsKGU9PmUubm9kZS5uYW1lPT09dC5ub2RlLm5hbWUpKSwhIW4pfWdldE5hbWVzT2ZSZW5kZXJlZE9wcygpe3JldHVybiB0aGlzLnJlbmRlcmVkT3BOYW1lc31jbG9uZUFuZEFkZEZ1bmN0aW9uT3BOb2RlKHQsZSxuLGkpe2NvbnN0IHI9bi5uYW1lLnJlcGxhY2UoZSxpKTtsZXQgbz10Lm1ldGFncmFwaC5ub2RlKHIpO2lmKG8pcmV0dXJuIG87bz1uZXcgTyR0KHtuYW1lOnIsaW5wdXQ6W10sZGV2aWNlOm4uZGV2aWNlLG9wOm4ub3AsYXR0cjpDZS5leHBvcnRzLmNsb25lRGVlcChuLmF0dHIpfSksby5jYXJkaW5hbGl0eT1uLmNhcmRpbmFsaXR5LG8uaW5jbHVkZT1uLmluY2x1ZGUsby5vdXRwdXRTaGFwZXM9Q2UuZXhwb3J0cy5jbG9uZURlZXAobi5vdXRwdXRTaGFwZXMpLG8ueGxhQ2x1c3Rlcj1uLnhsYUNsdXN0ZXIsby5mdW5jdGlvbklucHV0SW5kZXg9bi5mdW5jdGlvbklucHV0SW5kZXgsby5mdW5jdGlvbk91dHB1dEluZGV4PW4uZnVuY3Rpb25PdXRwdXRJbmRleCxvLmlucHV0cz1uLmlucHV0cy5tYXAoKHQ9Pntjb25zdCBuPUNlLmV4cG9ydHMuY2xvbmUodCk7cmV0dXJuIG4ubmFtZT10Lm5hbWUucmVwbGFjZShlLGkpLG59KSksby5wYXJlbnROb2RlPXQsdC5tZXRhZ3JhcGguc2V0Tm9kZShvLm5hbWUsbyksdGhpcy5oaWVyYXJjaHkuc2V0Tm9kZShvLm5hbWUsbyk7Y29uc3QgYT1uPT50aGlzLmNsb25lQW5kQWRkRnVuY3Rpb25PcE5vZGUodCxlLG4saSk7cmV0dXJuIG8uaW5FbWJlZGRpbmdzPW4uaW5FbWJlZGRpbmdzLm1hcChhKSxvLm91dEVtYmVkZGluZ3M9bi5vdXRFbWJlZGRpbmdzLm1hcChhKSxvfWNsb25lRnVuY3Rpb25MaWJyYXJ5TWV0YW5vZGUodCxlLG4saSxyKXtjb25zdCBvPXt9LGE9dGhpcy5jbG9uZUZ1bmN0aW9uTGlicmFyeU1ldGFub2RlSGVscGVyKHQsZSxuLGkscixvKTtyZXR1cm4gQ2UuZXhwb3J0cy5pc0VtcHR5KG8pfHx0aGlzLnBhdGNoRWRnZXNGcm9tRnVuY3Rpb25PdXRwdXRzKGUsbyksYX1jbG9uZUZ1bmN0aW9uTGlicmFyeU1ldGFub2RlSGVscGVyKHQsZSxuLGkscixvKXtjb25zdCBhPXokdChuLm5hbWUucmVwbGFjZShpLHIpKTtyZXR1cm4gYS5kZXB0aD1uLmRlcHRoLGEuY2FyZGluYWxpdHk9bi5jYXJkaW5hbGl0eSxhLnRlbXBsYXRlSWQ9bi50ZW1wbGF0ZUlkLGEub3BIaXN0b2dyYW09Q2UuZXhwb3J0cy5jbG9uZShuLm9wSGlzdG9ncmFtKSxhLmRldmljZUhpc3RvZ3JhbT1DZS5leHBvcnRzLmNsb25lKG4uZGV2aWNlSGlzdG9ncmFtKSxhLnhsYUNsdXN0ZXJIaXN0b2dyYW09Q2UuZXhwb3J0cy5jbG9uZShuLnhsYUNsdXN0ZXJIaXN0b2dyYW0pLGEuaGFzTm9uQ29udHJvbEVkZ2VzPW4uaGFzTm9uQ29udHJvbEVkZ2VzLGEuaW5jbHVkZT1uLmluY2x1ZGUsYS5ub2RlQXR0cmlidXRlcz1DZS5leHBvcnRzLmNsb25lKG4ubm9kZUF0dHJpYnV0ZXMpLGEuYXNzb2NpYXRlZEZ1bmN0aW9uPW4uYXNzb2NpYXRlZEZ1bmN0aW9uLENlLmV4cG9ydHMuZWFjaChuLm1ldGFncmFwaC5ub2RlcygpLChzPT57Y29uc3QgbD1uLm1ldGFncmFwaC5ub2RlKHMpO3N3aXRjaChsLnR5cGUpe2Nhc2UgQSR0Lk1FVEE6Y29uc3Qgbj10aGlzLmNsb25lRnVuY3Rpb25MaWJyYXJ5TWV0YW5vZGVIZWxwZXIodCxlLGwsaSxyLG8pO24ucGFyZW50Tm9kZT1hLGEubWV0YWdyYXBoLnNldE5vZGUobi5uYW1lLG4pLHRoaXMuaGllcmFyY2h5LnNldE5vZGUobi5uYW1lLG4pO2JyZWFrO2Nhc2UgQSR0Lk9QOmNvbnN0IHM9dGhpcy5jbG9uZUFuZEFkZEZ1bmN0aW9uT3BOb2RlKGEsaSxsLHIpO0NlLmV4cG9ydHMuaXNOdW1iZXIocy5mdW5jdGlvbklucHV0SW5kZXgpJiZ0aGlzLnBhdGNoRWRnZXNJbnRvRnVuY3Rpb25JbnB1dHMoZSxzKSxDZS5leHBvcnRzLmlzTnVtYmVyKHMuZnVuY3Rpb25PdXRwdXRJbmRleCkmJihvW3MuZnVuY3Rpb25PdXRwdXRJbmRleF09cyk7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLndhcm4obC5uYW1lKyIgaXMgb2RkbHkgbmVpdGhlciBhIG1ldGFub2RlIG5vciBhbiBvcG5vZGUuIil9fSkpLHRoaXMuY2xvbmVMaWJyYXJ5TWV0YW5vZGVFZGdlcyhuLGEsaSxyKSxhfWNsb25lTGlicmFyeU1ldGFub2RlRWRnZXModCxlLG4saSl7Q2UuZXhwb3J0cy5lYWNoKHQubWV0YWdyYXBoLmVkZ2VzKCksKHI9Pntjb25zdCBvPXQubWV0YWdyYXBoLmVkZ2UociksYT1vLnYucmVwbGFjZShuLGkpLHM9by53LnJlcGxhY2UobixpKSxsPW5ldyBIJHQoYSxzKTtsLmluYm91bmQ9by5pbmJvdW5kLGwubnVtUmVndWxhckVkZ2VzPW8ubnVtUmVndWxhckVkZ2VzLGwubnVtQ29udHJvbEVkZ2VzPW8ubnVtQ29udHJvbEVkZ2VzLGwubnVtUmVmRWRnZXM9by5udW1SZWZFZGdlcyxsLnRvdGFsU2l6ZT1vLnRvdGFsU2l6ZSxvLmJhc2VFZGdlTGlzdCYmKGwuYmFzZUVkZ2VMaXN0PW8uYmFzZUVkZ2VMaXN0Lm1hcCgodD0+e2NvbnN0IGU9Q2UuZXhwb3J0cy5jbG9uZSh0KTtyZXR1cm4gZS52PXQudi5yZXBsYWNlKG4saSksZS53PXQudy5yZXBsYWNlKG4saSksZX0pKSksZS5tZXRhZ3JhcGgubm9kZShzKT9lLm1ldGFncmFwaC5zZXRFZGdlKGEscyxsKTplLm1ldGFncmFwaC5zZXRFZGdlKHMsYSxsKX0pKX1wYXRjaEVkZ2VzSW50b0Z1bmN0aW9uSW5wdXRzKHQsZSl7bGV0IG49TWF0aC5taW4oZS5mdW5jdGlvbklucHV0SW5kZXgsdC5pbnB1dHMubGVuZ3RoLTEpLGk9Q2UuZXhwb3J0cy5jbG9uZSh0LmlucHV0c1tuXSk7Zm9yKDtpLmlzQ29udHJvbERlcGVuZGVuY3k7KW4rKyxpPXQuaW5wdXRzW25dO2UuaW5wdXRzLnB1c2goaSk7Y29uc3Qgcj10aGlzLmhpZXJhcmNoeS5nZXRQcmVkZWNlc3NvcnModC5uYW1lKTtsZXQgbyxhPTA7Q2UuZXhwb3J0cy5lYWNoKHIucmVndWxhciwodD0+e2lmKGErPXQubnVtUmVndWxhckVkZ2VzLGE+bilyZXR1cm4gbz10LCExfSkpLENlLmV4cG9ydHMuZWFjaChvLmJhc2VFZGdlTGlzdCwobj0+e24udz09PXQubmFtZSYmKG4udz1lLm5hbWUpLG4udj09PXQubmFtZSYmKG4udj1lLm5hbWUpfSkpfXBhdGNoRWRnZXNGcm9tRnVuY3Rpb25PdXRwdXRzKHQsZSl7Y29uc3Qgbj10aGlzLmhpZXJhcmNoeS5nZXRTdWNjZXNzb3JzKHQubmFtZSk7Q2UuZXhwb3J0cy5lYWNoKG4ucmVndWxhciwobj0+e0NlLmV4cG9ydHMuZWFjaChuLmJhc2VFZGdlTGlzdCwobj0+e2NvbnN0IGk9dGhpcy5oaWVyYXJjaHkubm9kZShuLncpO0NlLmV4cG9ydHMuZWFjaChpLmlucHV0cywoaT0+e2lmKGkubmFtZT09PXQubmFtZSl7aS5uYW1lPWVbaS5vdXRwdXRUZW5zb3JLZXldLm5hbWUsaS5vdXRwdXRUZW5zb3JLZXk9bi5vdXRwdXRUZW5zb3JLZXl9fSkpfSkpLENlLmV4cG9ydHMuZWFjaChuLmJhc2VFZGdlTGlzdCwodD0+e3Qudj1lW3Qub3V0cHV0VGVuc29yS2V5XS5uYW1lLHQub3V0cHV0VGVuc29yS2V5PSIwIn0pKX0pKX1idWlsZFN1YmhpZXJhcmNoeSh0KXtpZih0IGluIHRoaXMuaGFzU3ViaGllcmFyY2h5KXJldHVybjt0aGlzLmhhc1N1YmhpZXJhcmNoeVt0XT0hMDtsZXQgZT10aGlzLmluZGV4W3RdO2lmKGUubm9kZS50eXBlIT09QSR0Lk1FVEEmJmUubm9kZS50eXBlIT09QSR0LlNFUklFUylyZXR1cm47bGV0IG49ZSxpPW4ubm9kZS5tZXRhZ3JhcGgscj1uLmNvcmVHcmFwaDtjb25zdCBvPVtdLGE9W107Q2UuZXhwb3J0cy5pc0VtcHR5KHRoaXMuaGllcmFyY2h5LmxpYnJhcnlGdW5jdGlvbnMpfHwoQ2UuZXhwb3J0cy5lYWNoKGkubm9kZXMoKSwodD0+e2NvbnN0IGU9aS5ub2RlKHQpLG49dGhpcy5oaWVyYXJjaHkubGlicmFyeUZ1bmN0aW9uc1tlLm9wXTtpZighbilyZXR1cm47aWYoMD09PXQuaW5kZXhPZihUJHQpKXJldHVybjtjb25zdCByPXRoaXMuY2xvbmVGdW5jdGlvbkxpYnJhcnlNZXRhbm9kZShpLGUsbi5ub2RlLG4ubm9kZS5uYW1lLGUubmFtZSk7by5wdXNoKGUpLGEucHVzaChyKX0pKSxDZS5leHBvcnRzLmVhY2goYSwoKHQsZSk9Pntjb25zdCBuPW9bZV07dC5wYXJlbnROb2RlPW4ucGFyZW50Tm9kZSxpLnNldE5vZGUobi5uYW1lLHQpLHRoaXMuaGllcmFyY2h5LnNldE5vZGUobi5uYW1lLHQpfSkpKSxDZS5leHBvcnRzLmVhY2goaS5ub2RlcygpLCh0PT57bGV0IGU9dGhpcy5nZXRPckNyZWF0ZVJlbmRlck5vZGVCeU5hbWUodCksbj1lLm5vZGU7ci5zZXROb2RlKHQsZSksbi5pc0dyb3VwTm9kZXx8KENlLmV4cG9ydHMuZWFjaChuLmluRW1iZWRkaW5ncywodD0+e2xldCBuPW5ldyBJS3QobnVsbCksaT1uZXcgTkt0KHQpO1JLdChlLHQsaSxuLExLdC5DT05TVEFOVCksdGhpcy5pbmRleFt0Lm5hbWVdPWl9KSksQ2UuZXhwb3J0cy5lYWNoKG4ub3V0RW1iZWRkaW5ncywodD0+e2xldCBuPW5ldyBJS3QobnVsbCksaT1uZXcgTkt0KHQpO09LdChlLHQsaSxuLExLdC5TVU1NQVJZKSx0aGlzLmluZGV4W3QubmFtZV09aX0pKSl9KSksQ2UuZXhwb3J0cy5lYWNoKGkuZWRnZXMoKSwodD0+e2xldCBlPWkuZWRnZSh0KSxuPW5ldyBJS3QoZSk7bi5pc0ZhZGVkT3V0PXRoaXMuaW5kZXhbdC52XS5pc0ZhZGVkT3V0fHx0aGlzLmluZGV4W3Qud10uaXNGYWRlZE91dCxyLnNldEVkZ2UodC52LHQudyxuKX0pKSxuLm5vZGUudHlwZT09PUEkdC5NRVRBJiYoZnVuY3Rpb24gcyh0LGUpeyhmdW5jdGlvbiBuKHQpe2xldCBlPXQuY29yZUdyYXBoO0NlLmV4cG9ydHMuZWFjaChlLm5vZGVzKCksKG49PntlLm5vZGUobikubm9kZS5pbmNsdWRlIT09ayR0LkVYQ0xVREV8fG4uc3RhcnRzV2l0aChUJHQpfHwodC5jb3JlR3JhcGgub3V0RWRnZXMobikubGVuZ3RoPnQuY29yZUdyYXBoLmluRWRnZXMobikubGVuZ3RoP0hLdCh0LG4pOkZLdCh0LG4pKX0pKX0pKHQpLFNLdC5sZW5ndGgmJihmdW5jdGlvbiBpKHQpe2xldCBlPXQuY29yZUdyYXBoO0NlLmV4cG9ydHMuZWFjaChlLm5vZGVzKCksKG49PntsZXQgaT1lLm5vZGUobik7aS5ub2RlLmluY2x1ZGU9PT1rJHQuVU5TUEVDSUZJRUQmJlZLdChpLm5vZGUsU0t0KSYmSEt0KHQsbil9KSl9KSh0KTtNS3QubGVuZ3RoJiYoZnVuY3Rpb24gcih0KXtsZXQgZT10LmNvcmVHcmFwaDtDZS5leHBvcnRzLmVhY2goZS5ub2RlcygpLChuPT57bGV0IGk9ZS5ub2RlKG4pO2kubm9kZS5pbmNsdWRlPT09ayR0LlVOU1BFQ0lGSUVEJiZWS3QoaS5ub2RlLE1LdCkmJkZLdCh0LG4pfSkpfSkodCk7ZSYmKGZ1bmN0aW9uIG8odCl7bGV0IGU9dC5jb3JlR3JhcGgsbj17fSxpPXt9LHI9MDtpZihDZS5leHBvcnRzLmVhY2goZS5ub2RlcygpLCh0PT57aWYoZS5ub2RlKHQpLm5vZGUuaW5jbHVkZSE9PWskdC5VTlNQRUNJRklFRClyZXR1cm47bGV0IG89Q2UuZXhwb3J0cy5yZWR1Y2UoZS5wcmVkZWNlc3NvcnModCksKChuLGkpPT5uKyhlLmVkZ2UoaSx0KS5tZXRhZWRnZS5udW1SZWd1bGFyRWRnZXM/MTowKSksMCk7MD09PW8mJmUucHJlZGVjZXNzb3JzKHQpLmxlbmd0aD4wJiYobz1lLnByZWRlY2Vzc29ycyh0KS5sZW5ndGgpO2xldCBhPUNlLmV4cG9ydHMucmVkdWNlKGUuc3VjY2Vzc29ycyh0KSwoKG4saSk9Pm4rKGUuZWRnZSh0LGkpLm1ldGFlZGdlLm51bVJlZ3VsYXJFZGdlcz8xOjApKSwwKTswPT09YSYmZS5zdWNjZXNzb3JzKHQpLmxlbmd0aD4wJiYoYT1lLnN1Y2Nlc3NvcnModCkubGVuZ3RoKSxuW3RdPW8saVt0XT1hLHIrK30pKSxyPHZLdClyZXR1cm47bGV0IG89Ykt0LTEsYT1NYXRoLnJvdW5kKC43NSpyKSxzPU1hdGgucm91bmQoLjI1KnIpLGw9T2JqZWN0LmtleXMobikuc29ydCgoKHQsZSk9Pm5bdF0tbltlXSkpLGM9bltsW2FdXSx1PWMrYy1uW2xbc11dO3U9TWF0aC5tYXgodSxvKTtmb3IobGV0IGU9ci0xO25bbFtlXV0+dTtlLS0pRkt0KHQsbFtlXSk7bGV0IGg9T2JqZWN0LmtleXMoaSkuc29ydCgoKHQsZSk9PmlbdF0taVtlXSkpLGQ9aVtoW2FdXSxwPWQrNCooZC1pW2hbc11dKTtwPU1hdGgubWF4KHAsbyk7Zm9yKGxldCBuPXItMTtpW2hbbl1dPnA7bi0tKXtsZXQgaT1lLm5vZGUoaFtuXSk7aSYmIWkuaXNJbkV4dHJhY3QmJkhLdCh0LGhbbl0pfX0pKHQpOyEoZnVuY3Rpb24gYSh0KXtsZXQgZT10LmNvcmVHcmFwaCxuPXt9O0NlLmV4cG9ydHMuZWFjaChlLmVkZ2VzKCksKHQ9PntlLmVkZ2UodCkubWV0YWVkZ2UubnVtUmVndWxhckVkZ2VzfHwoKG5bdC52XT1uW3Qudl18fFtdKS5wdXNoKHQpLChuW3Qud109blt0LnddfHxbXSkucHVzaCh0KSl9KSksQ2UuZXhwb3J0cy5lYWNoKG4sKCh0LG4pPT57dC5sZW5ndGg+eEt0JiZDZS5leHBvcnRzLmVhY2godCwodD0+Qkt0KGUsdC52LHQudykpKX0pKX0pKHQpO2xldCBzPXQuY29yZUdyYXBoO0NlLmV4cG9ydHMuZWFjaChzLm5vZGVzKCksKGU9PntsZXQgbj1zLm5vZGUoZSksaT1zLm5laWdoYm9ycyhlKS5sZW5ndGg7aWYobi5ub2RlLmluY2x1ZGU9PT1rJHQuVU5TUEVDSUZJRUQmJjA9PT1pKXtsZXQgaT1uLm91dEFubm90YXRpb25zLmxpc3QubGVuZ3RoPjAscj1uLmluQW5ub3RhdGlvbnMubGlzdC5sZW5ndGg+MDtuLmlzSW5FeHRyYWN0Pyh0Lmlzb2xhdGVkSW5FeHRyYWN0LnB1c2gobiksbi5ub2RlLmluY2x1ZGU9ayR0LkVYQ0xVREUscy5yZW1vdmVOb2RlKGUpKTpuLmlzT3V0RXh0cmFjdD8odC5pc29sYXRlZE91dEV4dHJhY3QucHVzaChuKSxuLm5vZGUuaW5jbHVkZT1rJHQuRVhDTFVERSxzLnJlbW92ZU5vZGUoZSkpOmkmJiFyPyhuLmlzSW5FeHRyYWN0PSEwLHQuaXNvbGF0ZWRJbkV4dHJhY3QucHVzaChuKSxuLm5vZGUuaW5jbHVkZT1rJHQuRVhDTFVERSxzLnJlbW92ZU5vZGUoZSkpOnImJiFpJiYobi5pc091dEV4dHJhY3Q9ITAsdC5pc29sYXRlZE91dEV4dHJhY3QucHVzaChuKSxuLm5vZGUuaW5jbHVkZT1rJHQuRVhDTFVERSxzLnJlbW92ZU5vZGUoZSkpfX0pKX0pKG4sdGhpcy5hdXRvRXh0cmFjdE5vZGVzKSxDZS5leHBvcnRzLmlzRW1wdHkodGhpcy5oaWVyYXJjaHkubGlicmFyeUZ1bmN0aW9ucyl8fHRoaXMuYnVpbGRTdWJoaWVyYXJjaGllc0Zvck5lZWRlZEZ1bmN0aW9ucyhpKSx0PT09RSR0JiZDZS5leHBvcnRzLmZvck93bih0aGlzLmhpZXJhcmNoeS5saWJyYXJ5RnVuY3Rpb25zLCgodCxlKT0+e2NvbnN0IGk9dC5ub2RlLG89dGhpcy5nZXRPckNyZWF0ZVJlbmRlck5vZGVCeU5hbWUoaS5uYW1lKTtuLmxpYnJhcnlGdW5jdGlvbnNFeHRyYWN0LnB1c2gobyksby5ub2RlLmluY2x1ZGU9ayR0LkVYQ0xVREUsci5yZW1vdmVOb2RlKGkubmFtZSl9KSk7bGV0IGw9bi5ub2RlLnBhcmVudE5vZGU7aWYoIWwpcmV0dXJuO2xldCBjPXRoaXMuaW5kZXhbbC5uYW1lXSx1PSh0LC4uLmUpPT5lLmNvbmNhdChbdD8iSU4iOiJPVVQiXSkuam9pbigifn4iKSxoPXRoaXMuaGllcmFyY2h5LmdldEJyaWRnZWdyYXBoKHQpLGQ9e2luOnt9LG91dDp7fSxjb250cm9sOnt9fTtDZS5leHBvcnRzLmVhY2goaC5lZGdlcygpLCh0PT57bGV0IGU9ISFpLm5vZGUodC53KSxuPWU/dC52OnQudztoLmVkZ2UodCkubnVtUmVndWxhckVkZ2VzP2U/ZC5vdXRbbl09KGQub3V0W25dfHwwKSsxOmQuaW5bbl09KGQuaW5bbl18fDApKzE6ZC5jb250cm9sW25dPShkLmNvbnRyb2xbbl18fDApKzF9KSk7bGV0IHA9dGhpcy5oaWVyYXJjaHkuZ2V0Tm9kZU1hcCgpO0NlLmV4cG9ydHMuZWFjaChoLmVkZ2VzKCksKG49PntsZXQgbz1oLmVkZ2UobiksYT0hIWkubm9kZShuLncpLFtzLGZdPWE/W24udyxuLnZdOltuLnYsbi53XSxtPXRoaXMuaW5kZXhbc10sZz10aGlzLmluZGV4W2ZdLF89Zz9nLm5vZGU6cFtmXSx5PSFvLm51bVJlZ3VsYXJFZGdlcyYmZC5jb250cm9sW2ZdPnhLdCxbLHZdPWE/W2UuaW5Bbm5vdGF0aW9ucyxtLmluQW5ub3RhdGlvbnNdOltlLm91dEFubm90YXRpb25zLG0ub3V0QW5ub3RhdGlvbnNdLGI9bnVsbCx4PSExO2lmKCEoKGE/ZC5vdXQ6ZC5pbilbZl0+d0t0KSYmIXkmJm0uaXNJbkNvcmUoKSl7bGV0IGU9ZT0+Yy5jb3JlR3JhcGguZWRnZShhP3t2OmUsdzp0fTp7djp0LHc6ZX0pO2I9ZShmKSxifHwoYj1lKHUoYSxmLGwubmFtZSkpKSx4PSEhYn1sZXQgdz0hMTtpZihiJiYhby5udW1SZWd1bGFyRWRnZXMpe2xldCB0PWIsZT1jLm5vZGU7Zm9yKDt0LmFkam9pbmluZ01ldGFlZGdlOyl0PXQuYWRqb2luaW5nTWV0YWVkZ2UsZT1lLnBhcmVudE5vZGU7bGV0IG49dGhpcy5oaWVyYXJjaHkuZ2V0VG9wb2xvZ2ljYWxPcmRlcmluZyhlLm5hbWUpLGk9dC5tZXRhZWRnZTt3PW5baS52XT5uW2kud119aWYoeD14JiYhdywheClyZXR1cm4gdm9pZCB2LnB1c2gobmV3IGtLdChfLGcsbmV3IElLdChvKSxMS3QuU0hPUlRDVVQsYSkpO2xldCBTPXUoYSx0KSxNPXUoYSxmLHQpLEU9ci5ub2RlKE0pO2lmKCFFKXtsZXQgdD1yLm5vZGUoUyk7aWYoIXQpe3Q9bmV3IE5LdCh7bmFtZTpTLHR5cGU6QSR0LkJSSURHRSxpc0dyb3VwTm9kZTohMSxjYXJkaW5hbGl0eTowLHBhcmVudE5vZGU6bnVsbCxzdGF0czpudWxsLGluY2x1ZGU6ayR0LlVOU1BFQ0lGSUVELGluYm91bmQ6YSxub2RlQXR0cmlidXRlczp7fX0pLHRoaXMuaW5kZXhbU109dCxyLnNldE5vZGUoUyx0KX1FPW5ldyBOS3Qoe25hbWU6TSx0eXBlOkEkdC5CUklER0UsaXNHcm91cE5vZGU6ITEsY2FyZGluYWxpdHk6MSxwYXJlbnROb2RlOm51bGwsc3RhdHM6bnVsbCxpbmNsdWRlOmskdC5VTlNQRUNJRklFRCxpbmJvdW5kOmEsbm9kZUF0dHJpYnV0ZXM6e319KSx0aGlzLmluZGV4W01dPUUsci5zZXROb2RlKE0sRSksci5zZXRQYXJlbnQoTSxTKSx0Lm5vZGUuY2FyZGluYWxpdHkrK31sZXQgVD1uZXcgSUt0KG8pO1QuYWRqb2luaW5nTWV0YWVkZ2U9YixhP3Iuc2V0RWRnZShNLHMsVCk6ci5zZXRFZGdlKHMsTSxUKX0pKSxDZS5leHBvcnRzLmVhY2goWyEwLCExXSwoZT0+e2xldCBuPXUoZSx0KSxpPXIubm9kZShuKTtpJiZDZS5leHBvcnRzLmVhY2goci5ub2RlcygpLChvPT57aWYoci5ub2RlKG8pLm5vZGUudHlwZT09PUEkdC5CUklER0UpcmV0dXJuO2lmKCEoZT8hci5wcmVkZWNlc3NvcnMobykubGVuZ3RoOiFyLnN1Y2Nlc3NvcnMobykubGVuZ3RoKSlyZXR1cm47bGV0IGE9dShlLHQsIlNUUlVDVFVSQUxfVEFSR0VUIikscz1yLm5vZGUoYSk7aWYoIXMpe3M9bmV3IE5LdCh7bmFtZTphLHR5cGU6QSR0LkJSSURHRSxpc0dyb3VwTm9kZTohMSxjYXJkaW5hbGl0eToxLHBhcmVudE5vZGU6bnVsbCxzdGF0czpudWxsLGluY2x1ZGU6ayR0LlVOU1BFQ0lGSUVELGluYm91bmQ6ZSxub2RlQXR0cmlidXRlczp7fX0pLHMuc3RydWN0dXJhbD0hMCx0aGlzLmluZGV4W2FdPXMsci5zZXROb2RlKGEscyksaS5ub2RlLmNhcmRpbmFsaXR5Kyssci5zZXRQYXJlbnQoYSxuKX1sZXQgbD1uZXcgSUt0KG51bGwpO2wuc3RydWN0dXJhbD0hMCxsLndlaWdodC0tLGU/ci5zZXRFZGdlKGEsbyxsKTpyLnNldEVkZ2UobyxhLGwpfSkpfSkpfWJ1aWxkU3ViaGllcmFyY2hpZXNGb3JOZWVkZWRGdW5jdGlvbnModCl7Q2UuZXhwb3J0cy5lYWNoKHQuZWRnZXMoKSwoZT0+e2xldCBuPXQuZWRnZShlKSxpPW5ldyBJS3Qobik7Q2UuZXhwb3J0cy5mb3JFYWNoKGkubWV0YWVkZ2UuYmFzZUVkZ2VMaXN0LCh0PT57Y29uc3QgZT10LnYuc3BsaXQoTSR0KTtmb3IobGV0IHQ9ZS5sZW5ndGg7dD49MDt0LS0pe2NvbnN0IG49ZS5zbGljZSgwLHQpLGk9dGhpcy5oaWVyYXJjaHkubm9kZShuLmpvaW4oTSR0KSk7aWYoaSl7aWYoaS50eXBlPT09QSR0Lk9QJiZ0aGlzLmhpZXJhcmNoeS5saWJyYXJ5RnVuY3Rpb25zW2kub3BdKWZvcihsZXQgdD0xO3Q8bi5sZW5ndGg7dCsrKXtjb25zdCBlPW4uc2xpY2UoMCx0KS5qb2luKE0kdCk7ZSYmdGhpcy5idWlsZFN1YmhpZXJhcmNoeShlKX1icmVha319fSkpfSkpfX1jbGFzcyBrS3R7Y29uc3RydWN0b3IodCxlLG4saSxyKXt0aGlzLm5vZGU9dCx0aGlzLnJlbmRlck5vZGVJbmZvPWUsdGhpcy5yZW5kZXJNZXRhZWRnZUluZm89bix0aGlzLmFubm90YXRpb25UeXBlPWksdGhpcy5keD0wLHRoaXMuZHk9MCx0aGlzLndpZHRoPTAsdGhpcy5oZWlnaHQ9MCxuJiZuLm1ldGFlZGdlJiYodGhpcy52PW4ubWV0YWVkZ2Uudix0aGlzLnc9bi5tZXRhZWRnZS53KSx0aGlzLmlzSW49cix0aGlzLnBvaW50cz1bXX19dmFyIExLdDshKGZ1bmN0aW9uKHQpe3RbdC5TSE9SVENVVD0wXT0iU0hPUlRDVVQiLHRbdC5DT05TVEFOVD0xXT0iQ09OU1RBTlQiLHRbdC5TVU1NQVJZPTJdPSJTVU1NQVJZIix0W3QuRUxMSVBTSVM9M109IkVMTElQU0lTIn0pKExLdHx8KExLdD17fSkpO2NsYXNzIFBLdHtjb25zdHJ1Y3Rvcigpe3RoaXMubGlzdD1bXSx0aGlzLm5vZGVOYW1lcz17fX1wdXNoKHQpe2lmKHQubm9kZS5uYW1lIGluIHRoaXMubm9kZU5hbWVzKXJldHVybjtpZih0aGlzLm5vZGVOYW1lc1t0Lm5vZGUubmFtZV09ITAsdGhpcy5saXN0Lmxlbmd0aDxUS3QpcmV0dXJuIHZvaWQgdGhpcy5saXN0LnB1c2godCk7bGV0IGU9dGhpcy5saXN0W3RoaXMubGlzdC5sZW5ndGgtMV07aWYoZS5hbm5vdGF0aW9uVHlwZT09PUxLdC5FTExJUFNJUyl7bGV0IHQ9ZS5ub2RlO3JldHVybiB2b2lkIHQuc2V0TnVtTW9yZU5vZGVzKCsrdC5udW1Nb3JlTm9kZXMpfWxldCBuPW5ldyBSJHQoMSk7dGhpcy5saXN0LnB1c2gobmV3IGtLdChuLG5ldyBOS3QobiksbnVsbCxMS3QuRUxMSVBTSVMsdC5pc0luKSl9fWNsYXNzIE5LdHtjb25zdHJ1Y3Rvcih0KXtpZih0aGlzLm5vZGU9dCx0aGlzLmV4cGFuZGVkPSExLHRoaXMuaW5Bbm5vdGF0aW9ucz1uZXcgUEt0LHRoaXMub3V0QW5ub3RhdGlvbnM9bmV3IFBLdCx0aGlzLng9MCx0aGlzLnk9MCx0aGlzLndpZHRoPTAsdGhpcy5oZWlnaHQ9MCx0aGlzLmluYm94V2lkdGg9MCx0aGlzLm91dGJveFdpZHRoPTAsdGhpcy5leGNsdWRlZD0hMSx0aGlzLnN0cnVjdHVyYWw9ITEsdGhpcy5sYWJlbE9mZnNldD0wLHRoaXMucmFkaXVzPTAsdGhpcy5sYWJlbEhlaWdodD0wLHRoaXMucGFkZGluZ1RvcD0wLHRoaXMucGFkZGluZ0xlZnQ9MCx0aGlzLnBhZGRpbmdSaWdodD0wLHRoaXMucGFkZGluZ0JvdHRvbT0wLHRoaXMuaXNJbkV4dHJhY3Q9ITEsdGhpcy5pc091dEV4dHJhY3Q9ITEsdGhpcy5jb3JlQm94PXt3aWR0aDowLGhlaWdodDowfSx0aGlzLmlzRmFkZWRPdXQ9ITEsdGhpcy5kaXNwbGF5TmFtZT10Lm5hbWUuc3Vic3RyaW5nKHQubmFtZS5sYXN0SW5kZXhPZihNJHQpKzEpLHQudHlwZT09PUEkdC5NRVRBJiZ0LmFzc29jaWF0ZWRGdW5jdGlvbil7Y29uc3QgdD10aGlzLmRpc3BsYXlOYW1lLm1hdGNoKENLdCk7dD90aGlzLmRpc3BsYXlOYW1lPXRbMV06Q2UuZXhwb3J0cy5zdGFydHNXaXRoKHRoaXMuZGlzcGxheU5hbWUsVCR0KSYmKHRoaXMuZGlzcGxheU5hbWU9dGhpcy5kaXNwbGF5TmFtZS5zdWJzdHJpbmcoVCR0Lmxlbmd0aCkpfX1pc0luQ29yZSgpe3JldHVybiF0aGlzLmlzSW5FeHRyYWN0JiYhdGhpcy5pc091dEV4dHJhY3QmJiF0aGlzLmlzTGlicmFyeUZ1bmN0aW9ufX1jbGFzcyBJS3R7Y29uc3RydWN0b3IodCl7dGhpcy5tZXRhZWRnZT10LHRoaXMuYWRqb2luaW5nTWV0YWVkZ2U9bnVsbCx0aGlzLnN0cnVjdHVyYWw9ITEsdGhpcy53ZWlnaHQ9MSx0aGlzLmlzRmFkZWRPdXQ9ITF9fWZ1bmN0aW9uIFJLdCh0LGUsbixpLHIpe2xldCBvPW5ldyBrS3QoZSxuLGksciwhMCk7dC5pbkFubm90YXRpb25zLnB1c2gobyl9ZnVuY3Rpb24gT0t0KHQsZSxuLGkscil7bGV0IG89bmV3IGtLdChlLG4saSxyLCExKTt0Lm91dEFubm90YXRpb25zLnB1c2gobyl9Y2xhc3Mgekt0IGV4dGVuZHMgTkt0e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCk7bGV0IG49dC5tZXRhZ3JhcGguZ3JhcGgoKTt0aGlzLmNvcmVHcmFwaD1ZJHQobi5uYW1lLEMkdC5DT1JFLGUpLHRoaXMuaW5FeHRyYWN0Qm94PXt3aWR0aDowLGhlaWdodDowfSx0aGlzLm91dEV4dHJhY3RCb3g9e3dpZHRoOjAsaGVpZ2h0OjB9LHRoaXMubGlicmFyeUZ1bmN0aW9uc0JveD17d2lkdGg6MCxoZWlnaHQ6MH0sdGhpcy5pc29sYXRlZEluRXh0cmFjdD1bXSx0aGlzLmlzb2xhdGVkT3V0RXh0cmFjdD1bXSx0aGlzLmxpYnJhcnlGdW5jdGlvbnNFeHRyYWN0PVtdfX1mdW5jdGlvbiBES3QodCxlKXt0LmNvcmVHcmFwaCYmKGZ1bmN0aW9uIG4odCxlKXtDZS5leHBvcnRzLmVhY2godC5ub2RlcygpLChuPT57bGV0IGk9dC5ub2RlKG4pO2lmKGkuZXhwYW5kZWQ9ZT4xLGU+MClzd2l0Y2goaS5ub2RlLnR5cGUpe2Nhc2UgQSR0Lk1FVEE6Y2FzZSBBJHQuU0VSSUVTOkRLdChpLGUtMSl9fSkpfSkodC5jb3JlR3JhcGgsZSl9ZnVuY3Rpb24gQkt0KHQsZSxuKXtsZXQgaT10Lm5vZGUoZSkscj10Lm5vZGUobiksbz10LmVkZ2UoZSxuKTsoaS5ub2RlLmluY2x1ZGUhPT1rJHQuSU5DTFVERSYmci5ub2RlLmluY2x1ZGUhPT1rJHQuSU5DTFVERXx8aS5ub2RlLmluY2x1ZGU9PT1rJHQuRVhDTFVERXx8ci5ub2RlLmluY2x1ZGU9PT1rJHQuRVhDTFVERSkmJihPS3QoaSxyLm5vZGUscixvLExLdC5TSE9SVENVVCksUkt0KHIsaS5ub2RlLGksbyxMS3QuU0hPUlRDVVQpLHQucmVtb3ZlRWRnZShlLG4pKX1mdW5jdGlvbiBIS3QodCxlLG4pe2xldCBpPXQuY29yZUdyYXBoLHI9aS5ub2RlKGUpO3IuaXNPdXRFeHRyYWN0PSEwLENlLmV4cG9ydHMuZWFjaChpLnByZWRlY2Vzc29ycyhlKSwoKHQsbik9PntCS3QoaSx0LGUpfSkpLENlLmV4cG9ydHMuZWFjaChpLnN1Y2Nlc3NvcnMoZSksKCh0LG4pPT57Qkt0KGksZSx0KX0pKSwwPT09aS5uZWlnaGJvcnMoZSkubGVuZ3RoJiYoci5ub2RlLmluY2x1ZGU9ayR0LkVYQ0xVREUsdC5pc29sYXRlZE91dEV4dHJhY3QucHVzaChyKSxpLnJlbW92ZU5vZGUoZSkpfWZ1bmN0aW9uIEZLdCh0LGUsbil7bGV0IGk9dC5jb3JlR3JhcGgscj1pLm5vZGUoZSk7ci5pc0luRXh0cmFjdD0hMCxDZS5leHBvcnRzLmVhY2goaS5zdWNjZXNzb3JzKGUpLCgodCxuKT0+e0JLdChpLGUsdCl9KSksQ2UuZXhwb3J0cy5lYWNoKGkucHJlZGVjZXNzb3JzKGUpLCgodCxuKT0+e0JLdChpLHQsZSl9KSksMD09PWkubmVpZ2hib3JzKGUpLmxlbmd0aCYmKHIubm9kZS5pbmNsdWRlPWskdC5FWENMVURFLHQuaXNvbGF0ZWRJbkV4dHJhY3QucHVzaChyKSxpLnJlbW92ZU5vZGUoZSkpfWZ1bmN0aW9uIFZLdCh0LGUpe2lmKHQudHlwZT09PUEkdC5PUCl7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspaWYodC5vcD09PWVbbl0pcmV0dXJuITB9ZWxzZSBpZih0LnR5cGU9PT1BJHQuTUVUQSl7bGV0IG49dC5nZXRSb290T3AoKTtpZihuKWZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWlmKG4ub3A9PT1lW3RdKXJldHVybiEwfXJldHVybiExfWNvbnN0IFVLdD17YW5pbWF0aW9uOntkdXJhdGlvbjoyNTB9LGdyYXBoOnttZXRhOntub2RlU2VwOjUscmFua1NlcDoyNSxlZGdlU2VwOjV9LHNlcmllczp7bm9kZVNlcDo1LHJhbmtTZXA6MjUsZWRnZVNlcDo1fSxwYWRkaW5nOntwYWRkaW5nVG9wOjQwLHBhZGRpbmdMZWZ0OjIwfX0sc3Vic2NlbmU6e21ldGE6e3BhZGRpbmdUb3A6MTAscGFkZGluZ0JvdHRvbToxMCxwYWRkaW5nTGVmdDoxMCxwYWRkaW5nUmlnaHQ6MTAsbGFiZWxIZWlnaHQ6MjAsZXh0cmFjdFhPZmZzZXQ6MTUsZXh0cmFjdFlPZmZzZXQ6MjB9LHNlcmllczp7cGFkZGluZ1RvcDoxMCxwYWRkaW5nQm90dG9tOjEwLHBhZGRpbmdMZWZ0OjEwLHBhZGRpbmdSaWdodDoxMCxsYWJlbEhlaWdodDoxMH19LG5vZGVTaXplOnttZXRhOntyYWRpdXM6NSx3aWR0aDo2MCxtYXhMYWJlbFdpZHRoOjUyLGhlaWdodDpjRSgpLmRvbWFpbihbMSwyMDBdKS5yYW5nZShbMTUsNjBdKS5jbGFtcCghMCksZXhwYW5kQnV0dG9uUmFkaXVzOjN9LG9wOnt3aWR0aDoxNSxoZWlnaHQ6NixyYWRpdXM6MyxsYWJlbE9mZnNldDotOCxtYXhMYWJlbFdpZHRoOjMwfSxzZXJpZXM6e2V4cGFuZGVkOntyYWRpdXM6MTAsbGFiZWxPZmZzZXQ6MH0sdmVydGljYWw6e3dpZHRoOjE2LGhlaWdodDoxMyxsYWJlbE9mZnNldDotMTN9LGhvcml6b250YWw6e3dpZHRoOjI0LGhlaWdodDo4LHJhZGl1czoxMCxsYWJlbE9mZnNldDotMTB9fSxicmlkZ2U6e3dpZHRoOjIwLGhlaWdodDoyMCxyYWRpdXM6MixsYWJlbE9mZnNldDowfX0sc2hvcnRjdXRTaXplOntvcDp7d2lkdGg6MTAsaGVpZ2h0OjR9LG1ldGE6e3dpZHRoOjEyLGhlaWdodDo0LHJhZGl1czoxfSxzZXJpZXM6e3dpZHRoOjE0LGhlaWdodDo0fX0sYW5ub3RhdGlvbnM6e2luYm94V2lkdGg6NTAsb3V0Ym94V2lkdGg6NTAseE9mZnNldDoxMCx5T2Zmc2V0OjMsbGFiZWxPZmZzZXQ6MixtYXhMYWJlbFdpZHRoOjQwfSxjb25zdGFudDp7c2l6ZTp7d2lkdGg6NCxoZWlnaHQ6NH19LHNlcmllczp7bWF4U3RhY2tDb3VudDozLHBhcmFsbGVsU3RhY2tPZmZzZXRSYXRpbzouMix0b3dlclN0YWNrT2Zmc2V0UmF0aW86LjV9LG1pbmltYXA6e3NpemU6MTUwfX0sakt0PTE0MDtmdW5jdGlvbiBHS3QodCl7dC5ub2RlLmlzR3JvdXBOb2RlJiYoZnVuY3Rpb24gZSh0KXtsZXQgZT10LmNvcmVHcmFwaC5ub2RlcygpLm1hcCgoZT0+dC5jb3JlR3JhcGgubm9kZShlKSkpLmNvbmNhdCh0Lmlzb2xhdGVkSW5FeHRyYWN0LHQuaXNvbGF0ZWRPdXRFeHRyYWN0LHQubGlicmFyeUZ1bmN0aW9uc0V4dHJhY3QpO0NlLmV4cG9ydHMuZWFjaChlLCh0PT57c3dpdGNoKHQubm9kZS50eXBlKXtjYXNlIEEkdC5PUDpDZS5leHBvcnRzLmV4dGVuZCh0LFVLdC5ub2RlU2l6ZS5vcCk7YnJlYWs7Y2FzZSBBJHQuQlJJREdFOkNlLmV4cG9ydHMuZXh0ZW5kKHQsVUt0Lm5vZGVTaXplLmJyaWRnZSk7YnJlYWs7Y2FzZSBBJHQuTUVUQTppZih0LmV4cGFuZGVkKXtHS3QodCl9ZWxzZSBDZS5leHBvcnRzLmV4dGVuZCh0LFVLdC5ub2RlU2l6ZS5tZXRhKSx0LmhlaWdodD1VS3Qubm9kZVNpemUubWV0YS5oZWlnaHQodC5ub2RlLmNhcmRpbmFsaXR5KTticmVhaztjYXNlIEEkdC5TRVJJRVM6aWYodC5leHBhbmRlZCl7Q2UuZXhwb3J0cy5leHRlbmQodCxVS3Qubm9kZVNpemUuc2VyaWVzLmV4cGFuZGVkKSxHS3QodCl9ZWxzZXtDZS5leHBvcnRzLmV4dGVuZCh0LHQubm9kZS5oYXNOb25Db250cm9sRWRnZXM/VUt0Lm5vZGVTaXplLnNlcmllcy52ZXJ0aWNhbDpVS3Qubm9kZVNpemUuc2VyaWVzLmhvcml6b250YWwpfWJyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIlVucmVjb2duaXplZCBub2RlIHR5cGU6ICIrdC5ub2RlLnR5cGUpfXQuZXhwYW5kZWR8fChmdW5jdGlvbiBlKHQpe3QuaW5ib3hXaWR0aD10LmluQW5ub3RhdGlvbnMubGlzdC5sZW5ndGg+MD9VS3QuYW5ub3RhdGlvbnMuaW5ib3hXaWR0aDowLHQub3V0Ym94V2lkdGg9dC5vdXRBbm5vdGF0aW9ucy5saXN0Lmxlbmd0aD4wP1VLdC5hbm5vdGF0aW9ucy5vdXRib3hXaWR0aDowLHQuY29yZUJveC53aWR0aD10LndpZHRoLHQuY29yZUJveC5oZWlnaHQ9dC5oZWlnaHQsdC53aWR0aD1NYXRoLm1heCh0LmNvcmVCb3gud2lkdGgrdC5pbmJveFdpZHRoK3Qub3V0Ym94V2lkdGgsMyp0LmRpc3BsYXlOYW1lLmxlbmd0aCl9KSh0KSwoZnVuY3Rpb24gbih0KXtpZih0LmV4cGFuZGVkKXJldHVybjtsZXQgZT10LmluQW5ub3RhdGlvbnMubGlzdCxuPXQub3V0QW5ub3RhdGlvbnMubGlzdDtDZS5leHBvcnRzLmVhY2goZSwodD0+cUt0KHQpKSksQ2UuZXhwb3J0cy5lYWNoKG4sKHQ9PnFLdCh0KSkpO2xldCBpPVVLdC5hbm5vdGF0aW9ucyxyPUNlLmV4cG9ydHMucmVkdWNlKGUsKChlLG4scik9PntsZXQgbz1yPjA/aS55T2Zmc2V0OjA7cmV0dXJuIG4uZHg9LSh0LmNvcmVCb3gud2lkdGgrbi53aWR0aCkvMi1pLnhPZmZzZXQsbi5keT1lK28rbi5oZWlnaHQvMixlK28rbi5oZWlnaHR9KSwwKTtDZS5leHBvcnRzLmVhY2goZSwodD0+e3QuZHktPXIvMix0LmxhYmVsT2Zmc2V0PWkubGFiZWxPZmZzZXR9KSk7bGV0IG89Q2UuZXhwb3J0cy5yZWR1Y2UobiwoKGUsbixyKT0+e2xldCBvPXI+MD9pLnlPZmZzZXQ6MDtyZXR1cm4gbi5keD0odC5jb3JlQm94LndpZHRoK24ud2lkdGgpLzIraS54T2Zmc2V0LG4uZHk9ZStvK24uaGVpZ2h0LzIsZStvK24uaGVpZ2h0fSksMCk7Q2UuZXhwb3J0cy5lYWNoKG4sKHQ9Pnt0LmR5LT1vLzIsdC5sYWJlbE9mZnNldD1pLmxhYmVsT2Zmc2V0fSkpO2xldCBhPU1hdGgubWluKHQuaGVpZ2h0LzItdC5yYWRpdXMsci8yKTthPWE8MD8wOmE7bGV0IHM9Y0UoKS5kb21haW4oWzAsZS5sZW5ndGgtMV0pLnJhbmdlKFstYSxhXSk7Q2UuZXhwb3J0cy5lYWNoKGUsKChuLGkpPT57bi5wb2ludHM9W3tkeDpuLmR4K24ud2lkdGgvMixkeTpuLmR5fSx7ZHg6LXQuY29yZUJveC53aWR0aC8yLGR5OmUubGVuZ3RoPjE/cyhpKTowfV19KSk7bGV0IGw9TWF0aC5taW4odC5oZWlnaHQvMi10LnJhZGl1cyxvLzIpO2w9bDwwPzA6bDtsZXQgYz1jRSgpLmRvbWFpbihbMCxuLmxlbmd0aC0xXSkucmFuZ2UoWy1sLGxdKTtDZS5leHBvcnRzLmVhY2gobiwoKGUsaSk9PntlLnBvaW50cz1be2R4OnQuY29yZUJveC53aWR0aC8yLGR5Om4ubGVuZ3RoPjE/YyhpKTowfSx7ZHg6ZS5keC1lLndpZHRoLzIsZHk6ZS5keX1dfSkpLHQuaGVpZ2h0PU1hdGgubWF4KHQuaGVpZ2h0LHIsbyl9KSh0KX0pKX0pKHQpLHQubm9kZS50eXBlPT09QSR0Lk1FVEE/KGZ1bmN0aW9uIG4odCl7bGV0IGU9VUt0LnN1YnNjZW5lLm1ldGE7Q2UuZXhwb3J0cy5leHRlbmQodCxlKSxDZS5leHBvcnRzLmV4dGVuZCh0LmNvcmVCb3gsV0t0KHQuY29yZUdyYXBoLFVLdC5ncmFwaC5tZXRhKSk7bGV0IG49dC5pc29sYXRlZEluRXh0cmFjdC5sZW5ndGg/Q2UuZXhwb3J0cy5tYXhCeSh0Lmlzb2xhdGVkSW5FeHRyYWN0LCh0PT50LndpZHRoKSkud2lkdGg6bnVsbDt0LmluRXh0cmFjdEJveC53aWR0aD1udWxsIT1uP246MCx0LmluRXh0cmFjdEJveC5oZWlnaHQ9Q2UuZXhwb3J0cy5yZWR1Y2UodC5pc29sYXRlZEluRXh0cmFjdCwoKHQsbixpKT0+e2xldCByPWk+MD9lLmV4dHJhY3RZT2Zmc2V0OjA7cmV0dXJuIG4ueD0wLG4ueT10K3Irbi5oZWlnaHQvMix0K3Irbi5oZWlnaHR9KSwwKTtsZXQgaT10Lmlzb2xhdGVkT3V0RXh0cmFjdC5sZW5ndGg/Q2UuZXhwb3J0cy5tYXhCeSh0Lmlzb2xhdGVkT3V0RXh0cmFjdCwodD0+dC53aWR0aCkpLndpZHRoOm51bGw7dC5vdXRFeHRyYWN0Qm94LndpZHRoPW51bGwhPWk/aTowLHQub3V0RXh0cmFjdEJveC5oZWlnaHQ9Q2UuZXhwb3J0cy5yZWR1Y2UodC5pc29sYXRlZE91dEV4dHJhY3QsKCh0LG4saSk9PntsZXQgcj1pPjA/ZS5leHRyYWN0WU9mZnNldDowO3JldHVybiBuLng9MCxuLnk9dCtyK24uaGVpZ2h0LzIsdCtyK24uaGVpZ2h0fSksMCk7bGV0IHI9dC5saWJyYXJ5RnVuY3Rpb25zRXh0cmFjdC5sZW5ndGg/Q2UuZXhwb3J0cy5tYXhCeSh0LmxpYnJhcnlGdW5jdGlvbnNFeHRyYWN0LCh0PT50LndpZHRoKSkud2lkdGg6bnVsbDt0LmxpYnJhcnlGdW5jdGlvbnNCb3gud2lkdGg9bnVsbCE9cj9yOjAsdC5saWJyYXJ5RnVuY3Rpb25zQm94LmhlaWdodD1DZS5leHBvcnRzLnJlZHVjZSh0LmxpYnJhcnlGdW5jdGlvbnNFeHRyYWN0LCgodCxuLGkpPT57bGV0IHI9aT4wP2UuZXh0cmFjdFlPZmZzZXQ6MDtyZXR1cm4gbi54PTAsbi55PXQrcituLmhlaWdodC8yLHQrcituLmhlaWdodH0pLDApO2xldCBvPTA7dC5pc29sYXRlZEluRXh0cmFjdC5sZW5ndGg+MCYmbysrO3QuaXNvbGF0ZWRPdXRFeHRyYWN0Lmxlbmd0aD4wJiZvKys7dC5saWJyYXJ5RnVuY3Rpb25zRXh0cmFjdC5sZW5ndGg+MCYmbysrO3QuY29yZUdyYXBoLm5vZGVDb3VudCgpPjAmJm8rKztsZXQgYT1VS3Quc3Vic2NlbmUubWV0YS5leHRyYWN0WE9mZnNldCxzPW88PTE/MDpvKmE7Y29uc3QgbD1NYXRoLm1heChqS3QsdC5pbkV4dHJhY3RCb3gud2lkdGgrdC5vdXRFeHRyYWN0Qm94LndpZHRoKTt0LmNvcmVCb3gud2lkdGgrPWwrcyt0LmxpYnJhcnlGdW5jdGlvbnNCb3gud2lkdGgrcyx0LmNvcmVCb3guaGVpZ2h0PWUubGFiZWxIZWlnaHQrTWF0aC5tYXgodC5pbkV4dHJhY3RCb3guaGVpZ2h0LHQuY29yZUJveC5oZWlnaHQsdC5saWJyYXJ5RnVuY3Rpb25zQm94LmhlaWdodCx0Lm91dEV4dHJhY3RCb3guaGVpZ2h0KSx0LndpZHRoPXQuY29yZUJveC53aWR0aCtlLnBhZGRpbmdMZWZ0K2UucGFkZGluZ1JpZ2h0LHQuaGVpZ2h0PXQucGFkZGluZ1RvcCt0LmNvcmVCb3guaGVpZ2h0K3QucGFkZGluZ0JvdHRvbX0pKHQpOnQubm9kZS50eXBlPT09QSR0LlNFUklFUyYmKGZ1bmN0aW9uIGkodCl7bGV0IGU9dC5jb3JlR3JhcGgsbj1VS3Quc3Vic2NlbmUuc2VyaWVzO0NlLmV4cG9ydHMuZXh0ZW5kKHQsbiksQ2UuZXhwb3J0cy5leHRlbmQodC5jb3JlQm94LFdLdCh0LmNvcmVHcmFwaCxVS3QuZ3JhcGguc2VyaWVzKSksQ2UuZXhwb3J0cy5lYWNoKGUubm9kZXMoKSwodD0+e2Uubm9kZSh0KS5leGNsdWRlZD0hMX0pKSx0LndpZHRoPXQuY29yZUJveC53aWR0aCtuLnBhZGRpbmdMZWZ0K24ucGFkZGluZ1JpZ2h0LHQuaGVpZ2h0PXQuY29yZUJveC5oZWlnaHQrbi5wYWRkaW5nVG9wK24ucGFkZGluZ0JvdHRvbX0pKHQpfWZ1bmN0aW9uIFdLdCh0LGUpe0NlLmV4cG9ydHMuZXh0ZW5kKHQuZ3JhcGgoKSx7bm9kZXNlcDplLm5vZGVTZXAscmFua3NlcDplLnJhbmtTZXAsZWRnZXNlcDplLmVkZ2VTZXB9KTtsZXQgbj1bXTtpZihDZS5leHBvcnRzLmVhY2godC5ub2RlcygpLChlPT57dC5ub2RlKGUpLm5vZGUudHlwZT09PUEkdC5CUklER0V8fG4ucHVzaChlKX0pKSwhbi5sZW5ndGgpcmV0dXJue3dpZHRoOjAsaGVpZ2h0OjB9O3QkdC5sYXlvdXQodCk7bGV0IGk9MS8wLHI9MS8wLG89LTEvMCxhPS0xLzA7cmV0dXJuIENlLmV4cG9ydHMuZWFjaChuLChlPT57bGV0IG49dC5ub2RlKGUpLHM9LjUqbi53aWR0aCxsPW4ueC1zLGM9bi54K3M7aT1sPGk/bDppLG89Yz5vP2M6bztsZXQgdT0uNSpuLmhlaWdodCxoPW4ueS11LGQ9bi55K3U7cj1oPHI/aDpyLGE9ZD5hP2Q6YX0pKSxDZS5leHBvcnRzLmVhY2godC5lZGdlcygpLChlPT57bGV0IG49dC5lZGdlKGUpO2lmKG4uc3RydWN0dXJhbClyZXR1cm47bGV0IHM9dC5ub2RlKG4ubWV0YWVkZ2UudiksbD10Lm5vZGUobi5tZXRhZWRnZS53KTtpZigzPT09bi5wb2ludHMubGVuZ3RoJiYoZnVuY3Rpb24gYyh0KXtsZXQgZT1YS3QodFswXSx0WzFdKTtmb3IobGV0IG49MTtuPHQubGVuZ3RoLTE7bisrKXtsZXQgaT1YS3QodFtuXSx0W24rMV0pO2lmKE1hdGguYWJzKGktZSk+MSlyZXR1cm4hMTtlPWl9cmV0dXJuITB9KShuLnBvaW50cykpe2lmKG51bGwhPXMpe2xldCB0PXMuZXhwYW5kZWQ/cy54OllLdChzKTtuLnBvaW50c1swXS54PXR9aWYobnVsbCE9bCl7bGV0IHQ9bC5leHBhbmRlZD9sLng6WUt0KGwpO24ucG9pbnRzWzJdLng9dH1uLnBvaW50cz1bbi5wb2ludHNbMF0sbi5wb2ludHNbMV1dfW51bGwhPWwmJihuLnBvaW50c1tuLnBvaW50cy5sZW5ndGgtMV09JEt0KG4ucG9pbnRzW24ucG9pbnRzLmxlbmd0aC0yXSxsKSksbnVsbCE9cyYmKG4ucG9pbnRzWzBdPSRLdChuLnBvaW50c1sxXSxzKSksQ2UuZXhwb3J0cy5lYWNoKG4ucG9pbnRzLCh0PT57aT10Lng8aT90Lng6aSxvPXQueD5vP3QueDpvLHI9dC55PHI/dC55OnIsYT10Lnk+YT90Lnk6YX0pKX0pKSxDZS5leHBvcnRzLmVhY2godC5ub2RlcygpLChlPT57bGV0IG49dC5ub2RlKGUpO24ueC09aSxuLnktPXJ9KSksQ2UuZXhwb3J0cy5lYWNoKHQuZWRnZXMoKSwoZT0+e0NlLmV4cG9ydHMuZWFjaCh0LmVkZ2UoZSkucG9pbnRzLCh0PT57dC54LT1pLHQueS09cn0pKX0pKSx7d2lkdGg6by1pLGhlaWdodDphLXJ9fWZ1bmN0aW9uIHFLdCh0KXtzd2l0Y2godC5hbm5vdGF0aW9uVHlwZSl7Y2FzZSBMS3QuQ09OU1RBTlQ6Q2UuZXhwb3J0cy5leHRlbmQodCxVS3QuY29uc3RhbnQuc2l6ZSk7YnJlYWs7Y2FzZSBMS3QuU0hPUlRDVVQ6aWYodC5ub2RlLnR5cGU9PT1BJHQuT1ApQ2UuZXhwb3J0cy5leHRlbmQodCxVS3Quc2hvcnRjdXRTaXplLm9wKTtlbHNlIGlmKHQubm9kZS50eXBlPT09QSR0Lk1FVEEpQ2UuZXhwb3J0cy5leHRlbmQodCxVS3Quc2hvcnRjdXRTaXplLm1ldGEpO2Vsc2V7aWYodC5ub2RlLnR5cGUhPT1BJHQuU0VSSUVTKXRocm93IEVycm9yKCJJbnZhbGlkIG5vZGUgdHlwZTogIit0Lm5vZGUudHlwZSk7Q2UuZXhwb3J0cy5leHRlbmQodCxVS3Quc2hvcnRjdXRTaXplLnNlcmllcyl9YnJlYWs7Y2FzZSBMS3QuU1VNTUFSWTpDZS5leHBvcnRzLmV4dGVuZCh0LFVLdC5jb25zdGFudC5zaXplKX19ZnVuY3Rpb24gWUt0KHQpe2lmKHQuZXhwYW5kZWQpcmV0dXJuIHQueDtyZXR1cm4gdC54LXQud2lkdGgvMisodC5pbkFubm90YXRpb25zLmxpc3QubGVuZ3RoP3QuaW5ib3hXaWR0aDowKSt0LmNvcmVCb3gud2lkdGgvMn1mdW5jdGlvbiBYS3QodCxlKXtyZXR1cm4gMTgwKk1hdGguYXRhbigoZS55LXQueSkvKGUueC10LngpKS9NYXRoLlBJfWZ1bmN0aW9uICRLdCh0LGUpe2xldCBuLGkscj1lLmV4cGFuZGVkP2UueDpZS3QoZSksbz1lLnksYT10LngtcixzPXQueS1vLGw9ZS5leHBhbmRlZD9lLndpZHRoOmUuY29yZUJveC53aWR0aCxjPWUuZXhwYW5kZWQ/ZS5oZWlnaHQ6ZS5jb3JlQm94LmhlaWdodDtyZXR1cm4gTWF0aC5hYnMocykqbC8yPk1hdGguYWJzKGEpKmMvMj8oczwwJiYoYz0tYyksbj0wPT09cz8wOmMvMiphL3MsaT1jLzIpOihhPDAmJihsPS1sKSxuPWwvMixpPTA9PT1hPzA6bC8yKnMvYSkse3g6cituLHk6bytpfX1jb25zdCBLS3Q9YSR0LFpLdD1uJHQ7bGV0IEpLdD1be2JhY2tncm91bmRfY29sb3I6IiNDQzJGMkMiLGxhYmVsOiJOYU4ifSx7YmFja2dyb3VuZF9jb2xvcjoiI0ZGOEQwMCIsbGFiZWw6Ii3iiJ4ifSx7YmFja2dyb3VuZF9jb2xvcjoiI0VBRUFFQSIsbGFiZWw6Ii0ifSx7YmFja2dyb3VuZF9jb2xvcjoiI0E1QTVBNSIsbGFiZWw6IjAifSx7YmFja2dyb3VuZF9jb2xvcjoiIzI2MjYyNiIsbGFiZWw6IisifSx7YmFja2dyb3VuZF9jb2xvcjoiIzAwM0VENCIsbGFiZWw6IiviiJ4ifV07ZnVuY3Rpb24gUUt0KHQsZSxuKXtudWxsIT10LmF0dHIoInRyYW5zZm9ybSIpJiYodD10LnRyYW5zaXRpb24oInBvc2l0aW9uIikpLHQuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrZSsiLCIrbisiKSIpfWZ1bmN0aW9uIHRadCh0LGUsbixpLHIpe3QudHJhbnNpdGlvbigpLmF0dHIoIngiLGUtaS8yKS5hdHRyKCJ5IixuLXIvMikuYXR0cigid2lkdGgiLGkpLmF0dHIoImhlaWdodCIscil9ZnVuY3Rpb24gZVp0KHQsZSxuLGkscil7dC50cmFuc2l0aW9uKCkuYXR0cigiY3giLGUpLmF0dHIoImN5IixuKS5hdHRyKCJyeCIsaS8yKS5hdHRyKCJyeSIsci8yKX1mdW5jdGlvbiBuWnQodCxlKXtyZXR1cm4gZT90LnRvRml4ZWQoMCk6TWF0aC5hYnModCk+PTE/dC50b0ZpeGVkKDEpOnQudG9FeHBvbmVudGlhbCgxKX1mdW5jdGlvbiBpWnQodCxlLG4saSxyPTYwLG89MTAsYT0wLHMpe2lmKER1KHQucGFyZW50Tm9kZSkuc2VsZWN0QWxsKCIuaGVhbHRoLXBpbGwiKS5yZW1vdmUoKSwhZSlyZXR1cm47Y29uc3QgbD1lLnZhbHVlLGM9bC5zbGljZSgyLDgpLHU9Y1swXSxoPWNbMV0sZD1jWzVdO2xldCBwPWxbMV07Y29uc3QgZj17bWluOmxbOF0sbWF4OmxbOV0sbWVhbjpsWzEwXSxzdGRkZXY6TWF0aC5zcXJ0KGxbMTFdKX07bnVsbD09ciYmKHI9NjApLG51bGw9PW8mJihvPTEwKSxudWxsPT1hJiYoYT0wKSxudWxsIT1uJiZuLm5vZGUudHlwZT09PUEkdC5PUCYmKHIvPTIsby89Mik7bGV0IG09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKG8kdCwiZyIpO20uY2xhc3NMaXN0LmFkZCgiaGVhbHRoLXBpbGwiKTtsZXQgZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobyR0LCJkZWZzIik7bS5hcHBlbmRDaGlsZChnKTtsZXQgXz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobyR0LCJsaW5lYXJHcmFkaWVudCIpO2NvbnN0IHk9ImhlYWx0aC1waWxsLWdyYWRpZW50LSIraTtfLnNldEF0dHJpYnV0ZSgiaWQiLHkpO2xldCB2PTAsYj0iMCUiO2ZvcihsZXQgdD0wO3Q8Yy5sZW5ndGg7dCsrKXtpZighY1t0XSljb250aW51ZTt2Kz1jW3RdO2xldCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhvJHQsInN0b3AiKTtlLnNldEF0dHJpYnV0ZSgib2Zmc2V0IixiKSxlLnNldEF0dHJpYnV0ZSgic3RvcC1jb2xvciIsSkt0W3RdLmJhY2tncm91bmRfY29sb3IpLF8uYXBwZW5kQ2hpbGQoZSk7bGV0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKG8kdCwic3RvcCIpLGk9MTAwKnYvcCsiJSI7bi5zZXRBdHRyaWJ1dGUoIm9mZnNldCIsaSksbi5zZXRBdHRyaWJ1dGUoInN0b3AtY29sb3IiLEpLdFt0XS5iYWNrZ3JvdW5kX2NvbG9yKSxfLmFwcGVuZENoaWxkKG4pLGI9aX1nLmFwcGVuZENoaWxkKF8pO2xldCB4PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhvJHQsInJlY3QiKTt4LnNldEF0dHJpYnV0ZSgiZmlsbCIsInVybCgjIit5KyIpIikseC5zZXRBdHRyaWJ1dGUoIndpZHRoIixTdHJpbmcocikpLHguc2V0QXR0cmlidXRlKCJoZWlnaHQiLFN0cmluZyhvKSkseC5zZXRBdHRyaWJ1dGUoInkiLFN0cmluZyhhKSksbS5hcHBlbmRDaGlsZCh4KTtsZXQgdz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobyR0LCJ0aXRsZSIpO3cudGV4dENvbnRlbnQ9KGZ1bmN0aW9uIFModCxlLG4saSl7bGV0IHI9IkRldmljZTogIit0LmRldmljZV9uYW1lKyJcbiI7cis9ImR0eXBlOiAiK3QuZHR5cGUrIlxuIjtsZXQgbz0iKHNjYWxhcikiO3Quc2hhcGUubGVuZ3RoPjAmJihvPSIoIit0LnNoYXBlLmpvaW4oIiwiKSsiKSIpLHIrPSJcbnNoYXBlOiAiK28rIlxuXG4iLHIrPSIjKGVsZW1lbnRzKTogIitlKyJcbiI7Y29uc3QgYT1bXTtmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoO3QrKyluW3RdPjAmJmEucHVzaCgiIygiK0pLdFt0XS5sYWJlbCsiKTogIituW3RdKTtyZXR1cm4gcis9YS5qb2luKCIsICIpKyJcblxuIixpLm1heD49aS5taW4mJihyKz0ibWluOiAiK2kubWluKyIsIG1heDogIitpLm1heCsiXG4iLHIrPSJtZWFuOiAiK2kubWVhbisiLCBzdGRkZXY6ICIraS5zdGRkZXYpLHJ9KShlLHAsYyxmKSxtLmFwcGVuZENoaWxkKHcpO2xldCBNPSExO2lmKG51bGwhPW4pe2xldCB0PW4ueS1vLW4uaGVpZ2h0LzItMjtpZihuLmxhYmVsT2Zmc2V0PDAmJih0Kz1uLmxhYmVsT2Zmc2V0KSxtLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrKG4ueC1yLzIpKyIsICIrdCsiKSIpLGNbMl18fGNbM118fGNbNF0pe2xldCB0PW4ubm9kZS5hdHRyO2lmKHQmJnQubGVuZ3RoKWZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKWlmKCJUIj09PXRbZV0ua2V5KXtsZXQgbj10W2VdLnZhbHVlLnR5cGU7TT1uJiYvXkRUXyhCT09MfElOVHxVSU5UKS8udGVzdChuKTticmVha319fWxldCBFPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhvJHQsInRleHQiKTtpZihOdW1iZXIuaXNGaW5pdGUoZi5taW4pJiZOdW1iZXIuaXNGaW5pdGUoZi5tYXgpKXtjb25zdCB0PW5adChmLm1pbixNKSxlPW5adChmLm1heCxNKTtpZihFLnRleHRDb250ZW50PXA+MT90KyIgfiAiK2U6dCx1PjB8fGg+MHx8ZD4wKXtFLnRleHRDb250ZW50Kz0iICgiO2NvbnN0IHQ9W107dT4wJiZ0LnB1c2goYE5hTsOXJHt1fWApLGg+MCYmdC5wdXNoKGAt4oiew5cke2h9YCksZD4wJiZ0LnB1c2goYCviiJ7DlyR7ZH1gKSxFLnRleHRDb250ZW50Kz10LmpvaW4oIjsgIikrIikifX1lbHNlIEUudGV4dENvbnRlbnQ9IihObyBmaW5pdGUgZWxlbWVudHMpIjtFLmNsYXNzTGlzdC5hZGQoImhlYWx0aC1waWxsLXN0YXRzIiksbnVsbD09cyYmKHM9ci8yKSxFLnNldEF0dHJpYnV0ZSgieCIsU3RyaW5nKHMpKSxFLnNldEF0dHJpYnV0ZSgieSIsU3RyaW5nKGEtMikpLG0uYXBwZW5kQ2hpbGQoRSksZXIodC5wYXJlbnROb2RlKS5hcHBlbmRDaGlsZChtKX12YXIgclp0O2Z1bmN0aW9uIG9adCh0LGUpe2NvbnN0IG49dC5nZXRDb250ZXh0TWVudSgpLGk9RHUodC5nZXRDb250ZXh0TWVudSgpKTtyZXR1cm4gZnVuY3Rpb24ocixvKXtsZXQgYT1NdTtjb25zdCBzPShmdW5jdGlvbiBsKHQpe2xldCBlPTAsbj0wLGk9dDtmb3IoO2kmJmkub2Zmc2V0TGVmdD49MCYmaS5vZmZzZXRUb3A+PTA7KWUrPWkub2Zmc2V0TGVmdC1pLnNjcm9sbExlZnQsbis9aS5vZmZzZXRUb3AtaS5zY3JvbGxUb3AsaT1pLm9mZnNldFBhcmVudDtyZXR1cm57bGVmdDplLHRvcDpufX0pKHQpO2Z1bmN0aW9uIGModCl7dCYmdC5jb21wb3NlZFBhdGgoKS5pbmNsdWRlcyhuKXx8KGkuc3R5bGUoImRpc3BsYXkiLCJub25lIiksZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGMse2NhcHR1cmU6ITB9KSl9aS5zdHlsZSgiZGlzcGxheSIsImJsb2NrIikuc3R5bGUoImxlZnQiLGEuY2xpZW50WC1zLmxlZnQrMSsicHgiKS5zdHlsZSgidG9wIixhLmNsaWVudFktcy50b3ArMSsicHgiKSxhLnByZXZlbnREZWZhdWx0KCksYS5zdG9wUHJvcGFnYXRpb24oKSxkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsYyx7Y2FwdHVyZTohMH0pLGkuaHRtbCgiIiksaS5hcHBlbmQoInVsIikuc2VsZWN0QWxsKCJsaSIpLmRhdGEoZSkuZW50ZXIoKS5hcHBlbmQoImxpIikub24oImNsaWNrIiwoKHQsZSk9Pnt0LmFjdGlvbih0aGlzLHIsbyksYygpfSkpLmh0bWwoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRpdGxlKHIpfSkpfX0hKGZ1bmN0aW9uKHQpe3QuTk9ORT0ibm9uZSIsdC5DT01QVVRFX1RJTUU9ImNvbXB1dGVfdGltZSIsdC5ERVZJQ0U9ImRldmljZSIsdC5NRU1PUlk9Im1lbW9yeSIsdC5PUF9DT01QQVRJQklMSVRZPSJvcF9jb21wYXRpYmlsaXR5Iix0LlNUUlVDVFVSRT0ic3RydWN0dXJlIix0LlhMQV9DTFVTVEVSPSJ4bGFfY2x1c3RlciJ9KShyWnR8fChyWnQ9e30pKTtsZXQgYVp0PUFFKCkuZG9tYWluKFtjJHQsMTJdKS5yYW5nZShbInNtYWxsIiwibWVkaXVtIiwibGFyZ2UiLCJ4bGFyZ2UiXSk7ZnVuY3Rpb24gc1p0KHQpe3JldHVybiB0LnYrIi0tIit0Lnd9ZnVuY3Rpb24gbFp0KHQsZSxuKXtjb25zdCBpPW47bGV0IHI9W107cj1DZS5leHBvcnRzLnJlZHVjZShlLmVkZ2VzKCksKCh0LG4pPT57bGV0IGk9ZS5lZGdlKG4pO3JldHVybiB0LnB1c2goe3Y6bi52LHc6bi53LGxhYmVsOml9KSx0fSkscik7bGV0IG89cyR0KHQsImciLG4kdC5FZGdlLkNPTlRBSU5FUikuc2VsZWN0QWxsKChmdW5jdGlvbigpe3JldHVybiB0aGlzLmNoaWxkTm9kZXN9KSkuZGF0YShyLHNadCk7cmV0dXJuIG8uZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsbiR0LkVkZ2UuR1JPVVApLmF0dHIoImRhdGEtZWRnZSIsc1p0KS5lYWNoKChmdW5jdGlvbih0KXtsZXQgZT1EdSh0aGlzKTt0LmxhYmVsLmVkZ2VHcm91cD1lLGkuX2VkZ2VHcm91cEluZGV4W3NadCh0KV09ZSxpLmhhbmRsZUVkZ2VTZWxlY3RlZCYmZS5vbigiY2xpY2siLCh0PT57TXUuc3RvcFByb3BhZ2F0aW9uKCksaS5maXJlKCJlZGdlLXNlbGVjdCIse2VkZ2VEYXRhOnQsZWRnZUdyb3VwOmV9KX0pKSxwWnQoZSx0LGkpfSkpLm1lcmdlKG8pLmVhY2goKGZ1bmN0aW9uKCl7IShmdW5jdGlvbiB0KGUsbil7RHUobikuc2VsZWN0KCJwYXRoLiIrbiR0LkVkZ2UuTElORSkudHJhbnNpdGlvbigpLmF0dHJUd2VlbigiZCIsKGZ1bmN0aW9uKHQsbixpKXtyZXR1cm4oZnVuY3Rpb24gcih0LGUsbixpLG8pe2xldCBhPW4ubGFiZWwscz1hLmFkam9pbmluZ01ldGFlZGdlLGw9YS5wb2ludHM7Y29uc3R7c2hhZG93Um9vdDpjfT10O24ubGFiZWwuc3RhcnRNYXJrZXJJZCYmKGw9ZFp0KGwsRHUoYy5xdWVyeVNlbGVjdG9yKCIjIituLmxhYmVsLnN0YXJ0TWFya2VySWQpKSwhMCkpO24ubGFiZWwuZW5kTWFya2VySWQmJihsPWRadChsLER1KGMucXVlcnlTZWxlY3RvcigiIyIrbi5sYWJlbC5lbmRNYXJrZXJJZCkpLCExKSk7aWYoIXMpcmV0dXJuIGNwKG8sZlp0KGwpKTtsZXQgdT1zLmVkZ2VHcm91cC5ub2RlKCkuZmlyc3RDaGlsZCxoPWEubWV0YWVkZ2UuaW5ib3VuZDtyZXR1cm4gZnVuY3Rpb24odCl7bGV0IG49dS5nZXRQb2ludEF0TGVuZ3RoKGg/dS5nZXRUb3RhbExlbmd0aCgpOjApLm1hdHJpeFRyYW5zZm9ybSh1LmdldENUTSgpKS5tYXRyaXhUcmFuc2Zvcm0oZS5nZXRDVE0oKS5pbnZlcnNlKCkpLGk9aD8wOmwubGVuZ3RoLTE7cmV0dXJuIGxbaV0ueD1uLngsbFtpXS55PW4ueSxmWnQobCl9fSkoZSx0aGlzLHQsMCxpKX0pKX0pKG4sdGhpcyl9KSkuZWFjaCgoZnVuY3Rpb24odCl7IShmdW5jdGlvbiBlKHQsbixpKXt0LmNsYXNzZWQoImZhZGVkIixuLmxhYmVsLmlzRmFkZWRPdXQpO2xldCByPW4ubGFiZWwubWV0YWVkZ2U7dC5zZWxlY3QoInBhdGguIituJHQuRWRnZS5MSU5FKS5jbGFzc2VkKCJjb250cm9sLWRlcCIsciYmIXIubnVtUmVndWxhckVkZ2VzKX0pKER1KHRoaXMpLHQpfSkpLG8uZXhpdCgpLmVhY2goKHQ9PntkZWxldGUgaS5fZWRnZUdyb3VwSW5kZXhbc1p0KHQpXX0pKS5yZW1vdmUoKSxvfWZ1bmN0aW9uIGNadCh0LGUpe2xldCBuPWUuZ2V0Tm9kZUJ5TmFtZSh0LnYpO2lmKG51bGw9PW4ub3V0cHV0U2hhcGVzfHxDZS5leHBvcnRzLmlzRW1wdHkobi5vdXRwdXRTaGFwZXMpKXJldHVybiBudWxsO2xldCBpPW4ub3V0cHV0U2hhcGVzW3Qub3V0cHV0VGVuc29yS2V5XTtyZXR1cm4gbnVsbD09aT9udWxsOjA9PT1pLmxlbmd0aD8ic2NhbGFyIjppLm1hcCgodD0+LTE9PT10PyI/Ijp0KSkuam9pbigiw5ciKX1mdW5jdGlvbiB1WnQodCxlKXtpZihlLmVkZ2VMYWJlbEZ1bmN0aW9uKXJldHVybiBlLmVkZ2VMYWJlbEZ1bmN0aW9uKHQsZSk7cmV0dXJuIHQuYmFzZUVkZ2VMaXN0Lmxlbmd0aD4xP3QuYmFzZUVkZ2VMaXN0Lmxlbmd0aCsiIHRlbnNvcnMiOmNadCh0LmJhc2VFZGdlTGlzdFswXSxlKX1mdW5jdGlvbiBoWnQodCxlLG4pe2NvbnN0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKG8kdCwicGF0aCIpO2ZvcihsZXQgcj0xO3I8dC5sZW5ndGg7cisrKWlmKGkuc2V0QXR0cmlidXRlKCJkIixuKHQuc2xpY2UoMCxyKSkpLGkuZ2V0VG90YWxMZW5ndGgoKT5lKXJldHVybiByLTE7cmV0dXJuIHQubGVuZ3RoLTF9ZnVuY3Rpb24gZFp0KHQsZSxuKXtsZXQgaT1ETCgpLngoKHQ9PnQueCkpLnkoKHQ9PnQueSkpLHI9RHUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInBhdGgiKSkuYXR0cigiZCIsaSh0KSksbz0rZS5hdHRyKCJtYXJrZXJXaWR0aCIpLGE9ZS5hdHRyKCJ2aWV3Qm94Iikuc3BsaXQoIiAiKS5tYXAoTnVtYmVyKSxzPWFbMl0tYVswXSxsPStlLmF0dHIoInJlZlgiKSxjPXIubm9kZSgpO2lmKG4pe2NvbnN0IGU9byooMS1sL3MpLG49Yy5nZXRQb2ludEF0TGVuZ3RoKGUpLHI9aFp0KHQsZSxpKTtyZXR1cm4gdFtyLTFdPXt4Om4ueCx5Om4ueX0sdC5zbGljZShyLTEpfXtjb25zdCBlPTEtbC9zLG49Yy5nZXRUb3RhbExlbmd0aCgpLW8qZSxyPWMuZ2V0UG9pbnRBdExlbmd0aChuKSxhPWhadCh0LG4saSk7cmV0dXJuIHRbYV09e3g6ci54LHk6ci55fSx0LnNsaWNlKDAsYSsxKX19ZnVuY3Rpb24gcFp0KHQsZSxuLGkpe2k9aXx8biR0LkVkZ2UuTElORSxlLmxhYmVsJiZlLmxhYmVsLnN0cnVjdHVyYWwmJihpKz0iICIrbiR0LkVkZ2UuU1RSVUNUVVJBTCksZS5sYWJlbCYmZS5sYWJlbC5tZXRhZWRnZSYmZS5sYWJlbC5tZXRhZWRnZS5udW1SZWZFZGdlcyYmKGkrPSIgIituJHQuRWRnZS5SRUZFUkVOQ0VfRURHRSksbi5oYW5kbGVFZGdlU2VsZWN0ZWQmJihpKz0iICIrbiR0LkVkZ2UuU0VMRUNUQUJMRSk7bGV0IHIsbz0icGF0aF8iK3NadChlKTtpZihuLnJlbmRlckhpZXJhcmNoeS5lZGdlV2lkdGhGdW5jdGlvbilyPW4ucmVuZGVySGllcmFyY2h5LmVkZ2VXaWR0aEZ1bmN0aW9uKGUsaSk7ZWxzZXtsZXQgdD0xO251bGwhPWUubGFiZWwmJm51bGwhPWUubGFiZWwubWV0YWVkZ2UmJih0PWUubGFiZWwubWV0YWVkZ2UudG90YWxTaXplKSxyPW4ucmVuZGVySGllcmFyY2h5LmVkZ2VXaWR0aFNpemVkQmFzZWRTY2FsZSh0KX1sZXQgYT10LmFwcGVuZCgicGF0aCIpLmF0dHIoImlkIixvKS5hdHRyKCJjbGFzcyIsaSkuc3R5bGUoInN0cm9rZS13aWR0aCIscisicHgiKTtpZihlLmxhYmVsJiZlLmxhYmVsLm1ldGFlZGdlKWlmKGUubGFiZWwubWV0YWVkZ2UubnVtUmVmRWRnZXMpe2NvbnN0IHQ9YHJlZmVyZW5jZS1hcnJvd2hlYWQtJHthWnQocil9YDthLnN0eWxlKCJtYXJrZXItc3RhcnQiLGB1cmwoIyR7dH0pYCksZS5sYWJlbC5zdGFydE1hcmtlcklkPXR9ZWxzZXtjb25zdCB0PWBkYXRhZmxvdy1hcnJvd2hlYWQtJHthWnQocil9YDthLnN0eWxlKCJtYXJrZXItZW5kIixgdXJsKCMke3R9KWApLGUubGFiZWwuZW5kTWFya2VySWQ9dH1pZihudWxsPT1lLmxhYmVsfHxudWxsPT1lLmxhYmVsLm1ldGFlZGdlKXJldHVybjtsZXQgcz11WnQoZS5sYWJlbC5tZXRhZWRnZSxuLnJlbmRlckhpZXJhcmNoeSk7bnVsbCE9cyYmdC5hcHBlbmQoInRleHQiKS5hcHBlbmQoInRleHRQYXRoIikuYXR0cigieGxpbms6aHJlZiIsIiMiK28pLmF0dHIoInN0YXJ0T2Zmc2V0IiwiNTAlIikuYXR0cigidGV4dC1hbmNob3IiLCJtaWRkbGUiKS5hdHRyKCJkb21pbmFudC1iYXNlbGluZSIsImNlbnRyYWwiKS50ZXh0KHMpfWxldCBmWnQ9REwoKS5jdXJ2ZSh3UCkueCgodD0+dC54KSkueSgodD0+dC55KSk7ZnVuY3Rpb24gbVp0KHQsZSxuKXtsZXQgaT1zJHQodCwiZyIsbiR0Lk5vZGUuQ09OVEFJTkVSKS5zZWxlY3RBbGwoKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hpbGROb2Rlc30pKS5kYXRhKGUsKHQ9PnQubm9kZS5uYW1lKyI6Iit0Lm5vZGUudHlwZSkpO3JldHVybiBpLmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiZGF0YS1uYW1lIiwodD0+dC5ub2RlLm5hbWUpKS5lYWNoKChmdW5jdGlvbih0KXtsZXQgZT1EdSh0aGlzKTtuLmFkZE5vZGVHcm91cCh0Lm5vZGUubmFtZSxlKX0pKS5tZXJnZShpKS5hdHRyKCJjbGFzcyIsKHQ9Pm4kdC5Ob2RlLkdST1VQKyIgIitUWnQodCkpKS5lYWNoKChmdW5jdGlvbih0KXtsZXQgZT1EdSh0aGlzKTt6WnQocyR0KGUsImciLG4kdC5Bbm5vdGF0aW9uLklOQk9YKSx0LmluQW5ub3RhdGlvbnMsdCxuKSx6WnQocyR0KGUsImciLG4kdC5Bbm5vdGF0aW9uLk9VVEJPWCksdC5vdXRBbm5vdGF0aW9ucyx0LG4pO2xldCBpPUVadChlLHQsbiR0Lk5vZGUuU0hBUEUpO3Qubm9kZS5pc0dyb3VwTm9kZSYmKGZ1bmN0aW9uIHIodCxlLG4pe2xldCBpPXMkdCh0LCJnIixuJHQuTm9kZS5CVVRUT05fQ09OVEFJTkVSKTtzJHQoaSwiY2lyY2xlIixuJHQuTm9kZS5CVVRUT05fQ0lSQ0xFKSxzJHQoaSwicGF0aCIsbiR0Lk5vZGUuRVhQQU5EX0JVVFRPTikuYXR0cigiZCIsIk0wLC0yLjIgVjIuMiBNLTIuMiwwIEgyLjIiKSxzJHQoaSwicGF0aCIsbiR0Lk5vZGUuQ09MTEFQU0VfQlVUVE9OKS5hdHRyKCJkIiwiTS0yLjIsMCBIMi4yIiksaS5vbigiY2xpY2siLCh0PT57TXUuc3RvcFByb3BhZ2F0aW9uKCksbi5maXJlKCJub2RlLXRvZ2dsZS1leHBhbmQiLHtuYW1lOnQubm9kZS5uYW1lfSl9KSksKGZ1bmN0aW9uIHIodCxlKXtsZXQgbj1ZS3QoZSkrKGUuZXhwYW5kZWQ/ZS53aWR0aDplLmNvcmVCb3gud2lkdGgpLzItNixpPWUueS0oZS5leHBhbmRlZD9lLmhlaWdodDplLmNvcmVCb3guaGVpZ2h0KS8yKzY7ZS5ub2RlLnR5cGUhPT1BJHQuU0VSSUVTfHxlLmV4cGFuZGVkfHwobis9MTAsaS09Mik7bGV0IHI9InRyYW5zbGF0ZSgiK24rIiwiK2krIikiO3Quc2VsZWN0QWxsKCJwYXRoIikudHJhbnNpdGlvbigpLmF0dHIoInRyYW5zZm9ybSIsciksdC5zZWxlY3QoImNpcmNsZSIpLnRyYW5zaXRpb24oKS5hdHRyKHtjeDpuLGN5OmkscjpVS3Qubm9kZVNpemUubWV0YS5leHBhbmRCdXR0b25SYWRpdXN9KX0pKGksZSl9KShpLHQsbiksX1p0KGksdCxuKSwoZnVuY3Rpb24gbyh0LGUsbil7aWYoZS5ub2RlLmlzR3JvdXBOb2RlKXtpZihlLmV4cGFuZGVkKXJldHVybiBCWnQodCxlLG4sbiR0LlN1YnNjZW5lLkdST1VQKTtLS3QodCwiZyIsbiR0LlN1YnNjZW5lLkdST1VQKS5yZW1vdmUoKX1yZXR1cm4gbnVsbH0pKGUsdCxuKSxfWnQoKGZ1bmN0aW9uIGEodCxlLG4pe2xldCBpPWUuZGlzcGxheU5hbWUscj1lLm5vZGUudHlwZT09PUEkdC5NRVRBJiYhZS5leHBhbmRlZCxvPXMkdCh0LCJ0ZXh0IixuJHQuTm9kZS5MQUJFTCksYT1vLm5vZGUoKTthLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoYSksby5hdHRyKCJkeSIsIi4zNWVtIikuYXR0cigidGV4dC1hbmNob3IiLCJtaWRkbGUiKTtsZXQgcz04O3N3aXRjaChlLm5vZGUudHlwZSl7Y2FzZSBBJHQuTUVUQTpzPWUuZXhwYW5kZWQ/ciR0LkVYUEFOREVEX0xBQkVMOnIkdC5TRVJJRVNfTEFCRUw7YnJlYWs7Y2FzZSBBJHQuT1A6cz1yJHQuT1BfTEFCRUx9aWYocil7aS5sZW5ndGg+bi5tYXhNZXRhbm9kZUxhYmVsTGVuZ3RoJiYoaT1pLnN1YnN0cigwLG4ubWF4TWV0YW5vZGVMYWJlbExlbmd0aC0yKSsi4oCmIik7bGV0IHQ9KGZ1bmN0aW9uIGwodCl7U1p0fHwoU1p0PWNFKCkuZG9tYWluKFt0Lm1heE1ldGFub2RlTGFiZWxMZW5ndGhMYXJnZUZvbnQsdC5tYXhNZXRhbm9kZUxhYmVsTGVuZ3RoXSkucmFuZ2UoW3QubWF4TWV0YW5vZGVMYWJlbExlbmd0aEZvbnRTaXplLHQubWluTWV0YW5vZGVMYWJlbExlbmd0aEZvbnRTaXplXSkuY2xhbXAoITApKTtyZXR1cm4gU1p0fSkobik7by5hdHRyKCJmb250LXNpemUiLHQoaS5sZW5ndGgpKyJweCIpLHM9dChpLmxlbmd0aCl9cmV0dXJuIHdadChvLnRleHQoaSksZS5ub2RlLnR5cGUscyxlKSxvfSkoZSx0LG4pLHQsbix0Lm5vZGUudHlwZT09PUEkdC5NRVRBKSxMWnQoZSx0LG4pLChmdW5jdGlvbiBzKHQsZSl7bGV0IG49S0t0KHQsImciLG4kdC5Ob2RlLlNIQVBFKSxpPVlLdChlKTtzd2l0Y2goZS5ub2RlLnR5cGUpe2Nhc2UgQSR0Lk9QOntjb25zdCByPWUubm9kZTtpZihDZS5leHBvcnRzLmlzTnVtYmVyKHIuZnVuY3Rpb25JbnB1dEluZGV4KXx8Q2UuZXhwb3J0cy5pc051bWJlcihyLmZ1bmN0aW9uT3V0cHV0SW5kZXgpKXshKGZ1bmN0aW9uIHIodCxlLG4saSxvKXtjb25zdCBhPW8vMixzPWkvMixsPVtbZSxuLWFdLFtlK3MsbithXSxbZS1zLG4rYV1dO3QudHJhbnNpdGlvbigpLmF0dHIoInBvaW50cyIsbC5tYXAoKHQ9PnQuam9pbigiLCIpKSkuam9pbigiICIpKX0pKEtLdChuLCJwb2x5Z29uIiksZS54LGUueSxlLmNvcmVCb3gud2lkdGgsZS5jb3JlQm94LmhlaWdodCl9ZWxzZXtlWnQoS0t0KG4sImVsbGlwc2UiKSxpLGUueSxlLmNvcmVCb3gud2lkdGgsZS5jb3JlQm94LmhlaWdodCl9TVp0KHQsaSxlLnksZS5sYWJlbE9mZnNldCk7YnJlYWt9Y2FzZSBBJHQuTUVUQTp7bGV0IHI9bi5zZWxlY3RBbGwoInJlY3QiKTtlLmV4cGFuZGVkPyh0WnQocixlLngsZS55LGUud2lkdGgsZS5oZWlnaHQpLGdadCh0LGUpLE1adCh0LGksZS55LC1lLmhlaWdodC8yK2UubGFiZWxIZWlnaHQvMikpOih0WnQocixpLGUueSxlLmNvcmVCb3gud2lkdGgsZS5jb3JlQm94LmhlaWdodCksTVp0KHQsaSxlLnksMCkpO2JyZWFrfWNhc2UgQSR0LlNFUklFUzp7bGV0IHI9S0t0KG4sInVzZSIpO2UuZXhwYW5kZWQ/KHRadChyLGUueCxlLnksZS53aWR0aCxlLmhlaWdodCksZ1p0KHQsZSksTVp0KHQsaSxlLnksLWUuaGVpZ2h0LzIrZS5sYWJlbEhlaWdodC8yKSk6KHRadChyLGksZS55LGUuY29yZUJveC53aWR0aCxlLmNvcmVCb3guaGVpZ2h0KSxNWnQodCxpLGUueSxlLmxhYmVsT2Zmc2V0KSk7YnJlYWt9Y2FzZSBBJHQuQlJJREdFOnRadChLS3QobiwicmVjdCIpLGUueCxlLnksZS53aWR0aCxlLmhlaWdodCk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5yZWNvZ25pemVkIG5vZGUgdHlwZTogIitlLm5vZGUudHlwZSl9fSkoZSx0KX0pKSxpLmV4aXQoKS5lYWNoKChmdW5jdGlvbih0KXtuLnJlbW92ZU5vZGVHcm91cCh0Lm5vZGUubmFtZSk7bGV0IGU9RHUodGhpcyk7dC5pbkFubm90YXRpb25zLmxpc3QubGVuZ3RoPjAmJmUuc2VsZWN0KCIuIituJHQuQW5ub3RhdGlvbi5JTkJPWCkuc2VsZWN0QWxsKCIuIituJHQuQW5ub3RhdGlvbi5HUk9VUCkuZWFjaCgoZT0+e24ucmVtb3ZlQW5ub3RhdGlvbkdyb3VwKGUsdCl9KSksdC5vdXRBbm5vdGF0aW9ucy5saXN0Lmxlbmd0aD4wJiZlLnNlbGVjdCgiLiIrbiR0LkFubm90YXRpb24uT1VUQk9YKS5zZWxlY3RBbGwoIi4iK24kdC5Bbm5vdGF0aW9uLkdST1VQKS5lYWNoKChlPT57bi5yZW1vdmVBbm5vdGF0aW9uR3JvdXAoZSx0KX0pKX0pKS5yZW1vdmUoKSxpfWZ1bmN0aW9uIGdadCh0LGUpe2xldCBuPWUueC1lLndpZHRoLzIrZS5wYWRkaW5nTGVmdCxpPWUueS1lLmhlaWdodC8yK2UucGFkZGluZ1RvcDtRS3QoS0t0KHQsImciLG4kdC5TdWJzY2VuZS5HUk9VUCksbixpKX1mdW5jdGlvbiBfWnQodCxlLG4saSl7aWYoaSlyZXR1cm4gdm9pZCB0LmF0dHIoInBvaW50ZXItZXZlbnRzIiwibm9uZSIpO2xldCByPW9adChuLHladChlLm5vZGUsbikpO3Qub24oImRibGNsaWNrIiwodD0+e24uZmlyZSgibm9kZS10b2dnbGUtZXhwYW5kIix7bmFtZTp0Lm5vZGUubmFtZX0pfSkpLm9uKCJtb3VzZW92ZXIiLCh0PT57bi5pc05vZGVFeHBhbmRlZCh0KXx8bi5maXJlKCJub2RlLWhpZ2hsaWdodCIse25hbWU6dC5ub2RlLm5hbWV9KX0pKS5vbigibW91c2VvdXQiLCh0PT57bi5pc05vZGVFeHBhbmRlZCh0KXx8bi5maXJlKCJub2RlLXVuaGlnaGxpZ2h0Iix7bmFtZTp0Lm5vZGUubmFtZX0pfSkpLm9uKCJjbGljayIsKHQ9PntNdS5zdG9wUHJvcGFnYXRpb24oKSxuLmZpcmUoIm5vZGUtc2VsZWN0Iix7bmFtZTp0Lm5vZGUubmFtZX0pfSkpLm9uKCJjb250ZXh0bWVudSIsKCh0LGUpPT57bi5maXJlKCJub2RlLXNlbGVjdCIse25hbWU6dC5ub2RlLm5hbWV9KSxyLmNhbGwodCxlKX0pKX1mdW5jdGlvbiB5WnQodCxlKXtsZXQgbj1be3RpdGxlOmU9PkokdCh0LmluY2x1ZGUpLGFjdGlvbjoobixpLHIpPT57ZS5maXJlKCJub2RlLXRvZ2dsZS1leHRyYWN0Iix7bmFtZTp0Lm5hbWV9KX19XTtyZXR1cm4gZS5ub2RlQ29udGV4dE1lbnVJdGVtcyYmKG49bi5jb25jYXQoZS5ub2RlQ29udGV4dE1lbnVJdGVtcykpLHZadCh0KSYmbi5wdXNoKHt0aXRsZTplPT54WnQodCksYWN0aW9uOihuLGkscik9PntlLmZpcmUoIm5vZGUtdG9nZ2xlLXNlcmllc2dyb3VwIix7bmFtZTpiWnQodCl9KX19KSxufWZ1bmN0aW9uIHZadCh0KXtyZXR1cm4gbnVsbCE9PWJadCh0KX1mdW5jdGlvbiBiWnQodCl7aWYoIXQpcmV0dXJuIG51bGw7aWYodC50eXBlPT09QSR0LlNFUklFUylyZXR1cm4gdC5uYW1lO2lmKHQudHlwZT09PUEkdC5PUCl7cmV0dXJuIHQub3duaW5nU2VyaWVzfXJldHVybiBudWxsfWZ1bmN0aW9uIHhadCh0KXtyZXR1cm4oZnVuY3Rpb24gbih0KXtyZXR1cm4gdD09PUwkdC5HUk9VUD8iVW5ncm91cCB0aGlzIHNlcmllcyBvZiBub2RlcyI6Ikdyb3VwIHRoaXMgc2VyaWVzIG9mIG5vZGVzIn0pKG51bGwhPT0oZnVuY3Rpb24gZSh0KXtsZXQgZT1udWxsO3JldHVybiB0Pyh0LnR5cGU9PT1BJHQuU0VSSUVTP2U9dDp0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS50eXBlPT09QSR0LlNFUklFUyYmKGU9dC5wYXJlbnROb2RlKSxlKTpudWxsfSkodCk/TCR0LkdST1VQOkwkdC5VTkdST1VQKX1mdW5jdGlvbiB3WnQodCxlLG4saSl7bGV0IHI9dC5ub2RlKCksbz1yLnRleHRDb250ZW50LGE9bnVsbDtzd2l0Y2goZSl7Y2FzZSBBJHQuTUVUQTppJiYhaS5leHBhbmRlZCYmKGE9VUt0Lm5vZGVTaXplLm1ldGEubWF4TGFiZWxXaWR0aCk7YnJlYWs7Y2FzZSBBJHQuT1A6YT1VS3Qubm9kZVNpemUub3AubWF4TGFiZWxXaWR0aDticmVhaztjYXNlLTE6YT1VS3QuYW5ub3RhdGlvbnMubWF4TGFiZWxXaWR0aH1pZihudWxsIT09YSlyZXR1cm4gci50ZXh0Q29udGVudD0oZnVuY3Rpb24gcyh0LGUsbil7aWYoIXQpcmV0dXJuIiI7aWYoUyR0KHQsZSk8PW4pcmV0dXJuIHQ7bGV0IGk9MCxyPXQubGVuZ3RoO2Zvcig7aTxyOyl7Y29uc3Qgbz1pK01hdGgucm91bmQoKHItaSkvMik7UyR0KHQuc2xpY2UoMCxvKSsi4oCmIixlKTw9bj9pPW86cj1vLTF9cmV0dXJuIDA9PT1pP3RbMF06dC5zbGljZSgwLGkpKyLigKYifSkoci50ZXh0Q29udGVudCxuLGEpLHQuYXBwZW5kKCJ0aXRsZSIpLnRleHQobyl9bGV0IFNadD1udWxsO2Z1bmN0aW9uIE1adCh0LGUsbixpKXtLS3QodCwidGV4dCIsbiR0Lk5vZGUuTEFCRUwpLnRyYW5zaXRpb24oKS5hdHRyKCJ4IixlKS5hdHRyKCJ5IixuK2kpfWZ1bmN0aW9uIEVadCh0LGUsbil7bGV0IGk9cyR0KHQsImciLG4pO3N3aXRjaChlLm5vZGUudHlwZSl7Y2FzZSBBJHQuT1A6Y29uc3QgdD1lLm5vZGU7aWYoQ2UuZXhwb3J0cy5pc051bWJlcih0LmZ1bmN0aW9uSW5wdXRJbmRleCl8fENlLmV4cG9ydHMuaXNOdW1iZXIodC5mdW5jdGlvbk91dHB1dEluZGV4KSl7cyR0KGksInBvbHlnb24iLG4kdC5Ob2RlLkNPTE9SX1RBUkdFVCk7YnJlYWt9cyR0KGksImVsbGlwc2UiLG4kdC5Ob2RlLkNPTE9SX1RBUkdFVCk7YnJlYWs7Y2FzZSBBJHQuU0VSSUVTOmxldCBuPSJhbm5vdGF0aW9uIixyPWU7ci5jb3JlR3JhcGgmJihuPXIubm9kZS5oYXNOb25Db250cm9sRWRnZXM/InZlcnRpY2FsIjoiaG9yaXpvbnRhbCIpO2xldCBvPVtuJHQuTm9kZS5DT0xPUl9UQVJHRVRdO3IuaXNGYWRlZE91dCYmby5wdXNoKCJmYWRlZC1lbGxpcHNlIikscyR0KGksInVzZSIsbykuYXR0cigieGxpbms6aHJlZiIsIiNvcC1zZXJpZXMtIituKyItc3RhbXAiKSxzJHQoaSwicmVjdCIsbiR0Lk5vZGUuQ09MT1JfVEFSR0VUKS5hdHRyKCJyeCIsZS5yYWRpdXMpLmF0dHIoInJ5IixlLnJhZGl1cyk7YnJlYWs7Y2FzZSBBJHQuQlJJREdFOmNhc2UgQSR0Lk1FVEE6cyR0KGksInJlY3QiLG4kdC5Ob2RlLkNPTE9SX1RBUkdFVCkuYXR0cigicngiLGUucmFkaXVzKS5hdHRyKCJyeSIsZS5yYWRpdXMpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIlVucmVjb2duaXplZCBub2RlIHR5cGU6ICIrZS5ub2RlLnR5cGUpfXJldHVybiBpfWZ1bmN0aW9uIFRadCh0KXtzd2l0Y2godC5ub2RlLnR5cGUpe2Nhc2UgQSR0Lk9QOnJldHVybiBuJHQuT1BOT0RFO2Nhc2UgQSR0Lk1FVEE6cmV0dXJuIG4kdC5NRVRBTk9ERTtjYXNlIEEkdC5TRVJJRVM6cmV0dXJuIG4kdC5TRVJJRVNOT0RFO2Nhc2UgQSR0LkJSSURHRTpyZXR1cm4gbiR0LkJSSURHRU5PREU7Y2FzZSBBJHQuRUxMSVBTSVM6cmV0dXJuIG4kdC5FTExJUFNJU05PREV9dGhyb3cgRXJyb3IoIlVucmVjb2duaXplZCBub2RlIHR5cGU6ICIrdC5ub2RlLnR5cGUpfWZ1bmN0aW9uIENadCh0LGUsbil7bGV0IGk9KGZ1bmN0aW9uIHIodCl7cmV0dXJuIHQucmVwbGFjZSgvKFs6LlxbXF0sL1xcXChcKV0pL2csIlxcJDEiKX0pKHQpO2lmKCFuKXJldHVybmB1cmwoIyR7aX0pYDtsZXQgbz1EdShuKSxhPW8uc2VsZWN0KCJkZWZzI19ncmFwaC1ncmFkaWVudHMiKTthLmVtcHR5KCkmJihhPW8uYXBwZW5kKCJkZWZzIikuYXR0cigiaWQiLCJfZ3JhcGgtZ3JhZGllbnRzIikpO2xldCBzPWEuc2VsZWN0KCJsaW5lYXJHcmFkaWVudCMiK2kpO2lmKHMuZW1wdHkoKSl7cz1hLmFwcGVuZCgibGluZWFyR3JhZGllbnQiKS5hdHRyKCJpZCIsdCkscy5zZWxlY3RBbGwoIioiKS5yZW1vdmUoKTtsZXQgbj0wO0NlLmV4cG9ydHMuZWFjaChlLCh0PT57bGV0IGU9dC5jb2xvcjtzLmFwcGVuZCgic3RvcCIpLmF0dHIoIm9mZnNldCIsbikuYXR0cigic3RvcC1jb2xvciIsZSkscy5hcHBlbmQoInN0b3AiKS5hdHRyKCJvZmZzZXQiLG4rdC5wcm9wb3J0aW9uKS5hdHRyKCJzdG9wLWNvbG9yIixlKSxuKz10LnByb3BvcnRpb259KSl9cmV0dXJuYHVybCgjJHtpfSlgfWZ1bmN0aW9uIEFadCh0KXtEdSh0KS5zZWxlY3QoImRlZnMjX2dyYXBoLWdyYWRpZW50cyIpLnJlbW92ZSgpfWZ1bmN0aW9uIGtadCh0LGUsbixpLHIpe2xldCBvPWdLdDtzd2l0Y2godD10fHwoKCk9PjApLGUpe2Nhc2Ugclp0Lk5PTkU6Y2FzZSByWnQuU1RSVUNUVVJFOmlmKG4ubm9kZS50eXBlPT09QSR0Lk1FVEEpe2xldCByPW4ubm9kZS50ZW1wbGF0ZUlkO3JldHVybiBlPT09clp0LlNUUlVDVFVSRSYmbnVsbCE9PXI/by5TVFJVQ1RVUkVfUEFMRVRURSh0KHIpLGkpOm8uVU5LTk9XTn1yZXR1cm4gbi5ub2RlLnR5cGU9PT1BJHQuU0VSSUVTP2k/by5FWFBBTkRFRF9DT0xPUjoid2hpdGUiOm4ubm9kZS50eXBlPT09QSR0LkJSSURHRT9uLnN0cnVjdHVyYWw/IiNmMGUiOm4ubm9kZS5pbmJvdW5kPyIjMGVmIjoiI2ZlMCI6Q2UuZXhwb3J0cy5pc051bWJlcihuLm5vZGUuZnVuY3Rpb25JbnB1dEluZGV4KT8iIzc5NTU0OCI6Q2UuZXhwb3J0cy5pc051bWJlcihuLm5vZGUuZnVuY3Rpb25PdXRwdXRJbmRleCk/IiMwMDk2ODgiOiJ3aGl0ZSI7Y2FzZSByWnQuREVWSUNFOnJldHVybiBudWxsPT1uLmRldmljZUNvbG9ycz9vLlVOS05PV046aT9vLkVYUEFOREVEX0NPTE9SOkNadCgiZGV2aWNlLSIrbi5ub2RlLm5hbWUsbi5kZXZpY2VDb2xvcnMscik7Y2FzZSByWnQuWExBX0NMVVNURVI6cmV0dXJuIG51bGw9PW4ueGxhQ2x1c3RlckNvbG9ycz9vLlVOS05PV046aT9vLkVYUEFOREVEX0NPTE9SOkNadCgieGxhLSIrbi5ub2RlLm5hbWUsbi54bGFDbHVzdGVyQ29sb3JzLHIpO2Nhc2Ugclp0LkNPTVBVVEVfVElNRTpyZXR1cm4gaT9vLkVYUEFOREVEX0NPTE9SOm4uY29tcHV0ZVRpbWVDb2xvcnx8by5VTktOT1dOO2Nhc2Ugclp0Lk1FTU9SWTpyZXR1cm4gaT9vLkVYUEFOREVEX0NPTE9SOm4ubWVtb3J5Q29sb3J8fG8uVU5LTk9XTjtjYXNlIHJadC5PUF9DT01QQVRJQklMSVRZOnJldHVybiBudWxsPT1uLmNvbXBhdGliaWxpdHlDb2xvcnM/by5VTktOT1dOOmk/by5FWFBBTkRFRF9DT0xPUjpDWnQoIm9wLWNvbXBhdC0iK24ubm9kZS5uYW1lLG4uY29tcGF0aWJpbGl0eUNvbG9ycyxyKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5rbm93biBjYXNlIHRvIGNvbG9yIG5vZGVzIGJ5Iil9fWZ1bmN0aW9uIExadCh0LGUsbixpKXtpPWl8fG4kdC5Ob2RlLlNIQVBFO2NvbnN0IHI9bi5pc05vZGVIaWdobGlnaHRlZChlLm5vZGUubmFtZSksbz1uLmlzTm9kZVNlbGVjdGVkKGUubm9kZS5uYW1lKSxhPWUuaXNJbkV4dHJhY3R8fGUuaXNPdXRFeHRyYWN0fHxlLmlzTGlicmFyeUZ1bmN0aW9uLHM9ZS5leHBhbmRlZCYmaSE9PW4kdC5Bbm5vdGF0aW9uLk5PREUsbD1lLmlzRmFkZWRPdXQ7dC5jbGFzc2VkKCJoaWdobGlnaHRlZCIsciksdC5jbGFzc2VkKCJzZWxlY3RlZCIsbyksdC5jbGFzc2VkKCJleHRyYWN0IixhKSx0LmNsYXNzZWQoImV4cGFuZGVkIixzKSx0LmNsYXNzZWQoImZhZGVkIixsKTtjb25zdCBjPXQuc2VsZWN0KCIuIitpKyIgLiIrbiR0Lk5vZGUuQ09MT1JfVEFSR0VUKSx1PWtadChuLnRlbXBsYXRlSW5kZXgsbi5jb2xvckJ5LGUscyxuLmdldEdyYXBoU3ZnUm9vdCgpKTtjLnN0eWxlKCJmaWxsIix1KSxjLnN0eWxlKCJzdHJva2UiLG8/bnVsbDpQWnQodSkpfWZ1bmN0aW9uIFBadCh0KXtyZXR1cm4idXJsIj09PXQuc3Vic3RyaW5nKDAsMyk/Z0t0LkdSQURJRU5UX09VVExJTkU6bmQodCkuZGFya2VyKCkudG9TdHJpbmcoKX1mdW5jdGlvbiBOWnQodCxlLG4saSl7Y29uc3Qgcj1EdSh0KTtpZihyLnNlbGVjdEFsbCgiLmlucHV0LWhpZ2hsaWdodCIpLmNsYXNzZWQoImlucHV0LWhpZ2hsaWdodCIsITEpLHIuc2VsZWN0QWxsKCIubm9uLWlucHV0IikuY2xhc3NlZCgibm9uLWlucHV0IiwhMSksci5zZWxlY3RBbGwoIi5pbnB1dC1wYXJlbnQiKS5jbGFzc2VkKCJpbnB1dC1wYXJlbnQiLCExKSxyLnNlbGVjdEFsbCgiLmlucHV0LWNoaWxkIikuY2xhc3NlZCgiaW5wdXQtY2hpbGQiLCExKSxyLnNlbGVjdEFsbCgiLmlucHV0LWVkZ2UtaGlnaGxpZ2h0IikuY2xhc3NlZCgiaW5wdXQtZWRnZS1oaWdobGlnaHQiLCExKSxyLnNlbGVjdEFsbCgiLm5vbi1pbnB1dC1lZGdlLWhpZ2hsaWdodCIpLmNsYXNzZWQoIm5vbi1pbnB1dC1lZGdlLWhpZ2hsaWdodCIsITEpLHIuc2VsZWN0QWxsKCIuaW5wdXQtaGlnaGxpZ2h0LXNlbGVjdGVkIikuY2xhc3NlZCgiaW5wdXQtaGlnaGxpZ2h0LXNlbGVjdGVkIiwhMSksIWV8fCFpfHwhbilyZXR1cm47bGV0IG89SVp0KG4sZSksYT17fTtDZS5leHBvcnRzLmVhY2gobywoZnVuY3Rpb24obil7YT1SWnQodCxlLG4sYSl9KSk7bGV0IHM9T2JqZWN0LmtleXMoYSksbD0oZnVuY3Rpb24gYyh0LGUpe2xldCBuPXt9O3JldHVybiBDZS5leHBvcnRzLmVhY2goZSwoZnVuY3Rpb24oZSl7bGV0IGk9dC5nZXROb2RlQnlOYW1lKGUpLHI9T1p0KHQsaSk7bltyLm5hbWVdPXJ9KSksbn0pKGUscyk7IShmdW5jdGlvbiB1KHQsZSl7Q2UuZXhwb3J0cy5mb3JPd24oZSwoZnVuY3Rpb24oZSl7bGV0IG49ZTtmb3IoO24ubmFtZSE9PUUkdDspe2NvbnN0IGU9RHUodCkuc2VsZWN0KGAubm9kZVtkYXRhLW5hbWU9IiR7bi5uYW1lfSJdYCk7IWUubm9kZXMoKS5sZW5ndGh8fGUuY2xhc3NlZCgiaW5wdXQtaGlnaGxpZ2h0Iil8fGUuY2xhc3NlZCgic2VsZWN0ZWQiKXx8ZS5jbGFzc2VkKCJvcCIpfHxlLmNsYXNzZWQoImlucHV0LXBhcmVudCIsITApLG49bi5wYXJlbnROb2RlfX0pKX0pKHQsbCksci5zZWxlY3RBbGwoImcubm9kZTpub3QoLnNlbGVjdGVkKTpub3QoLmlucHV0LWhpZ2hsaWdodCk6bm90KC5pbnB1dC1wYXJlbnQpOm5vdCguaW5wdXQtY2hpbGRyZW4pIikuY2xhc3NlZCgibm9uLWlucHV0IiwhMCkuZWFjaCgoZnVuY3Rpb24odCl7ci5zZWxlY3RBbGwoYFtkYXRhLW5hbWU9IiR7dC5ub2RlLm5hbWV9Il1gKS5jbGFzc2VkKCJub24taW5wdXQiLCEwKX0pKSxyLnNlbGVjdEFsbCgiZy5lZGdlOm5vdCguaW5wdXQtZWRnZS1oaWdobGlnaHQpIikuY2xhc3NlZCgibm9uLWlucHV0LWVkZ2UtaGlnaGxpZ2h0IiwhMCl9ZnVuY3Rpb24gSVp0KHQsZSl7bGV0IG49W10saT1lLmdldE5vZGVCeU5hbWUodCk7aWYoaSBpbnN0YW5jZW9mIE8kdClyZXR1cm5baV0uY29uY2F0KGkuaW5FbWJlZGRpbmdzKTtsZXQgcj1pLm1ldGFncmFwaC5ub2RlcygpO3JldHVybiBDZS5leHBvcnRzLmVhY2gociwoZnVuY3Rpb24odCl7bj1uLmNvbmNhdChJWnQodCxlKSl9KSksbn1mdW5jdGlvbiBSWnQodCxlLG4saSl7aWYoaVtuLm5hbWVdKXJldHVybiBpO2lbbi5uYW1lXT0hMDtsZXQgcj1uLmlucHV0cyxvPU9adChlLG4pO0R1KHQpLnNlbGVjdChgLm5vZGVbZGF0YS1uYW1lPSIke28ubmFtZX0iXWApLmNsYXNzZWQoImlucHV0LWhpZ2hsaWdodCIsITApO2xldCBhPXt9O0NlLmV4cG9ydHMuZWFjaChyLChmdW5jdGlvbih0KXtsZXQgbj1lLmdldE5vZGVCeU5hbWUodC5uYW1lKTtpZih2b2lkIDA9PT1uKXJldHVybjtpZihuIGluc3RhbmNlb2YgRCR0KXtsZXQgdD0kJHQobi5uYW1lKTtuPWUuZ2V0Tm9kZUJ5TmFtZSh0KX1sZXQgaT1PWnQoZSxuKSxyPWFbaS5uYW1lXTtyP3Iub3BOb2Rlcy5wdXNoKG4pOmFbaS5uYW1lXT17dmlzaWJsZVBhcmVudDppLG9wTm9kZXM6W25dfX0pKTtsZXQgcz17fSxsPVtvXTtzW28ubmFtZV09e3RyYWNlZDohMSxpbmRleDowLGNvbm5lY3Rpb25FbmRwb2ludHM6W119O2xldCBjPW87Zm9yKGxldCB0PTE7Yy5uYW1lIT09RSR0O3QrKyljPWMucGFyZW50Tm9kZSxzW2MubmFtZV09e3RyYWNlZDohMSxpbmRleDp0LGNvbm5lY3Rpb25FbmRwb2ludHM6W119LGxbdF09YztyZXR1cm4gQ2UuZXhwb3J0cy5mb3JPd24oYSwoZnVuY3Rpb24obixyKXtsZXQgYT1uLnZpc2libGVQYXJlbnQ7Q2UuZXhwb3J0cy5lYWNoKG4ub3BOb2RlcywoZnVuY3Rpb24obil7aT1SWnQodCxlLG4saSl9KSksYS5uYW1lIT09by5uYW1lJiYoZnVuY3Rpb24gYyh0LGUsbixpKXtsZXQgcj1lLG89ZSxhPVtdO2Zvcig7IW5bci5uYW1lXTspby5uYW1lIT09ci5uYW1lJiZhLnB1c2goW28scl0pLG89cixyPXIucGFyZW50Tm9kZTtsZXQgcz1uW3IubmFtZV0uaW5kZXgsbD1pW01hdGgubWF4KHMtMSwwKV0ubmFtZSxjPWwsdT1vLm5hbWUsaD1vLm5hbWU7Y29uc3QgZD1EdSh0KTtkLnNlbGVjdEFsbChgW2RhdGEtZWRnZT0iJHtofS0tJHtsfSJdYCkuY2xhc3NlZCgiaW5wdXQtZWRnZS1oaWdobGlnaHQiLCEwKSxDZS5leHBvcnRzLmVhY2goYSwoZnVuY3Rpb24odCl7ZC5zZWxlY3RBbGwoYFtkYXRhLWVkZ2U9IiR7dFswXS5uYW1lfS0tJHtjfX5+JHt0WzFdLm5hbWV9fn5PVVQiXWApLmNsYXNzZWQoImlucHV0LWVkZ2UtaGlnaGxpZ2h0IiwhMCl9KSk7Zm9yKGxldCB0PTE7dDxzO3QrKyl7ZC5zZWxlY3RBbGwoYFtkYXRhLWVkZ2U9IiR7dX1+fiR7aVt0XS5uYW1lfX5+SU4tLSR7aVt0LTFdLm5hbWV9Il1gKS5jbGFzc2VkKCJpbnB1dC1lZGdlLWhpZ2hsaWdodCIsITApfX0pKHQsYSxzLGwpfSkpLGl9ZnVuY3Rpb24gT1p0KHQsZSl7bGV0IG49ITEsaT1lO2Zvcig7IW47KWlmKGk9KGU9aSkucGFyZW50Tm9kZSx2b2lkIDA9PT1pKW49ITA7ZWxzZXtsZXQgZT10LmdldFJlbmRlck5vZGVCeU5hbWUoaS5uYW1lKTtlJiYoZS5leHBhbmRlZHx8aSBpbnN0YW5jZW9mIE8kdCkmJihuPSEwKX1yZXR1cm4gZX1mdW5jdGlvbiB6WnQodCxlLG4saSl7bGV0IHI9dC5zZWxlY3RBbGwoKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hpbGROb2Rlc30pKS5kYXRhKGUubGlzdCwodD0+dC5ub2RlLm5hbWUpKTtyZXR1cm4gci5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImRhdGEtbmFtZSIsKHQ9PnQubm9kZS5uYW1lKSkuZWFjaCgoZnVuY3Rpb24odCl7bGV0IGU9RHUodGhpcyk7aS5hZGRBbm5vdGF0aW9uR3JvdXAodCxuLGUpO2xldCByPW4kdC5Bbm5vdGF0aW9uLkVER0Usbz10LnJlbmRlck1ldGFlZGdlSW5mbyYmdC5yZW5kZXJNZXRhZWRnZUluZm8ubWV0YWVkZ2U7byYmIW8ubnVtUmVndWxhckVkZ2VzJiYocis9IiAiK24kdC5Bbm5vdGF0aW9uLkNPTlRST0xfRURHRSksbyYmby5udW1SZWZFZGdlcyYmKHIrPSIgIituJHQuRWRnZS5SRUZfTElORSkscFp0KGUsdCxpLHIpLHQuYW5ub3RhdGlvblR5cGUhPT1MS3QuRUxMSVBTSVM/KCEoZnVuY3Rpb24gYSh0LGUpe2xldCBuPWUubm9kZS5uYW1lLnNwbGl0KCIvIik7cmV0dXJuIERadCh0LG5bbi5sZW5ndGgtMV0sZSxudWxsKX0pKGUsdCksKGZ1bmN0aW9uIHModCxlKXtpZihlLmFubm90YXRpb25UeXBlPT09TEt0LlNVTU1BUlkpe3MkdCh0LCJ1c2UiKS5hdHRyKCJjbGFzcyIsInN1bW1hcnkiKS5hdHRyKCJ4bGluazpocmVmIiwiI3N1bW1hcnktaWNvbiIpLmF0dHIoImN1cnNvciIsInBvaW50ZXIiKX1lbHNle3MkdChFWnQodCxlLG4kdC5Bbm5vdGF0aW9uLk5PREUpLCJ0aXRsZSIpLnRleHQoZS5ub2RlLm5hbWUpfX0pKGUsdCkpOkRadChlLHQubm9kZS5uYW1lLHQsbiR0LkFubm90YXRpb24uRUxMSVBTSVMpfSkpLm1lcmdlKHIpLmF0dHIoImNsYXNzIiwodD0+biR0LkFubm90YXRpb24uR1JPVVArIiAiKyhmdW5jdGlvbiBlKHQpe3JldHVybihMS3RbdF18fCIiKS50b0xvd2VyQ2FzZSgpfHxudWxsfSkodC5hbm5vdGF0aW9uVHlwZSkrIiAiK1RadCh0KSkpLmVhY2goKGZ1bmN0aW9uKHQpe2xldCBlPUR1KHRoaXMpOyEoZnVuY3Rpb24gcih0LGUsbixpKXtsZXQgcj1ZS3QoZSk7bi5yZW5kZXJOb2RlSW5mbyYmbi5hbm5vdGF0aW9uVHlwZSE9PUxLdC5FTExJUFNJUyYmTFp0KHQsbi5yZW5kZXJOb2RlSW5mbyxpLG4kdC5Bbm5vdGF0aW9uLk5PREUpO24uYW5ub3RhdGlvblR5cGU9PT1MS3QuU1VNTUFSWSYmKG4ud2lkdGgrPTEwKTt0LnNlbGVjdCgidGV4dC4iK24kdC5Bbm5vdGF0aW9uLkxBQkVMKS50cmFuc2l0aW9uKCkuYXR0cigieCIscituLmR4KyhuLmlzSW4/LTE6MSkqKG4ud2lkdGgvMituLmxhYmVsT2Zmc2V0KSkuYXR0cigieSIsZS55K24uZHkpLHQuc2VsZWN0KCJ1c2Uuc3VtbWFyeSIpLnRyYW5zaXRpb24oKS5hdHRyKCJ4IixyK24uZHgtMykuYXR0cigieSIsZS55K24uZHktNiksZVp0KHQuc2VsZWN0KCIuIituJHQuQW5ub3RhdGlvbi5OT0RFKyIgZWxsaXBzZSIpLHIrbi5keCxlLnkrbi5keSxuLndpZHRoLG4uaGVpZ2h0KSx0WnQodC5zZWxlY3QoIi4iK24kdC5Bbm5vdGF0aW9uLk5PREUrIiByZWN0IikscituLmR4LGUueStuLmR5LG4ud2lkdGgsbi5oZWlnaHQpLHRadCh0LnNlbGVjdCgiLiIrbiR0LkFubm90YXRpb24uTk9ERSsiIHVzZSIpLHIrbi5keCxlLnkrbi5keSxuLndpZHRoLG4uaGVpZ2h0KSx0LnNlbGVjdCgicGF0aC4iK24kdC5Bbm5vdGF0aW9uLkVER0UpLnRyYW5zaXRpb24oKS5hdHRyKCJkIiwodD0+e2xldCBuPXQucG9pbnRzLm1hcCgodD0+KHt4OnQuZHgrcix5OnQuZHkrZS55fSkpKTtyZXR1cm4gZlp0KG4pfSkpfSkoZSxuLHQsaSksdC5hbm5vdGF0aW9uVHlwZSE9PUxLdC5FTExJUFNJUyYmKGZ1bmN0aW9uIG8odCxlLG4saSl7dC5vbigibW91c2VvdmVyIiwodD0+e2kuZmlyZSgiYW5ub3RhdGlvbi1oaWdobGlnaHQiLHtuYW1lOnQubm9kZS5uYW1lLGhvc3ROYW1lOmUubm9kZS5uYW1lfSl9KSkub24oIm1vdXNlb3V0IiwodD0+e2kuZmlyZSgiYW5ub3RhdGlvbi11bmhpZ2hsaWdodCIse25hbWU6dC5ub2RlLm5hbWUsaG9zdE5hbWU6ZS5ub2RlLm5hbWV9KX0pKS5vbigiY2xpY2siLCh0PT57TXUuc3RvcFByb3BhZ2F0aW9uKCksaS5maXJlKCJhbm5vdGF0aW9uLXNlbGVjdCIse25hbWU6dC5ub2RlLm5hbWUsaG9zdE5hbWU6ZS5ub2RlLm5hbWV9KX0pKSxuLmFubm90YXRpb25UeXBlIT09TEt0LlNVTU1BUlkmJm4uYW5ub3RhdGlvblR5cGUhPT1MS3QuQ09OU1RBTlQmJnQub24oImNvbnRleHRtZW51IixvWnQoaSx5WnQobi5ub2RlLGkpKSl9KShlLG4sdCxpKX0pKSxyLmV4aXQoKS5lYWNoKChmdW5jdGlvbih0KXtpLnJlbW92ZUFubm90YXRpb25Hcm91cCh0LG4pfSkpLnJlbW92ZSgpLHJ9ZnVuY3Rpb24gRFp0KHQsZSxuLGkpe2xldCByPW4kdC5Bbm5vdGF0aW9uLkxBQkVMO3JldHVybiBpJiYocis9IiAiK2kpLHdadCh0LmFwcGVuZCgidGV4dCIpLmF0dHIoImNsYXNzIixyKS5hdHRyKCJkeSIsIi4zNWVtIikuYXR0cigidGV4dC1hbmNob3IiLG4uaXNJbj8iZW5kIjoic3RhcnQiKS50ZXh0KGUpLC0xLGkkdC5MQUJFTCl9ZnVuY3Rpb24gQlp0KHQsZSxuLGkpe2xldCByPWEkdCh0LCJnIixpPWl8fG4kdC5TY2VuZS5HUk9VUCkuZW1wdHkoKSxvPXMkdCh0LCJnIixpKSxhPXMkdChvLCJnIixuJHQuU2NlbmUuQ09SRSkscz1DZS5leHBvcnRzLnJlZHVjZShlLmNvcmVHcmFwaC5ub2RlcygpLCgodCxuKT0+e2xldCBpPWUuY29yZUdyYXBoLm5vZGUobik7cmV0dXJuIGkuZXhjbHVkZWR8fHQucHVzaChpKSx0fSksW10pO2lmKGUubm9kZS50eXBlPT09QSR0LlNFUklFUyYmcy5yZXZlcnNlKCksbFp0KGEsZS5jb3JlR3JhcGgsbiksbVp0KGEscyxuKSxlLmlzb2xhdGVkSW5FeHRyYWN0Lmxlbmd0aD4wKXttWnQocyR0KG8sImciLG4kdC5TY2VuZS5JTkVYVFJBQ1QpLGUuaXNvbGF0ZWRJbkV4dHJhY3Qsbil9ZWxzZSBhJHQobywiZyIsbiR0LlNjZW5lLklORVhUUkFDVCkucmVtb3ZlKCk7aWYoZS5pc29sYXRlZE91dEV4dHJhY3QubGVuZ3RoPjApe21adChzJHQobywiZyIsbiR0LlNjZW5lLk9VVEVYVFJBQ1QpLGUuaXNvbGF0ZWRPdXRFeHRyYWN0LG4pfWVsc2UgYSR0KG8sImciLG4kdC5TY2VuZS5PVVRFWFRSQUNUKS5yZW1vdmUoKTtpZihlLmxpYnJhcnlGdW5jdGlvbnNFeHRyYWN0Lmxlbmd0aD4wKXttWnQocyR0KG8sImciLG4kdC5TY2VuZS5GVU5DVElPTl9MSUJSQVJZKSxlLmxpYnJhcnlGdW5jdGlvbnNFeHRyYWN0LG4pfWVsc2UgYSR0KG8sImciLG4kdC5TY2VuZS5GVU5DVElPTl9MSUJSQVJZKS5yZW1vdmUoKTtyZXR1cm4oZnVuY3Rpb24gbCh0LGUpe2xldCBuPWUubm9kZS50eXBlPT09QSR0LlNFUklFUz8wOlVLdC5zdWJzY2VuZS5tZXRhLmxhYmVsSGVpZ2h0O1FLdChLS3QodCwiZyIsWkt0LlNjZW5lLkNPUkUpLDAsbik7bGV0IGk9ZS5pc29sYXRlZEluRXh0cmFjdC5sZW5ndGg+MCxyPWUuaXNvbGF0ZWRPdXRFeHRyYWN0Lmxlbmd0aD4wLG89ZS5saWJyYXJ5RnVuY3Rpb25zRXh0cmFjdC5sZW5ndGg+MCxhPVVLdC5zdWJzY2VuZS5tZXRhLmV4dHJhY3RYT2Zmc2V0LHM9MDtpZihpJiYocys9ZS5vdXRFeHRyYWN0Qm94LndpZHRoKSxyJiYocys9ZS5vdXRFeHRyYWN0Qm94LndpZHRoKSxpKXtsZXQgaT1lLmNvcmVCb3gud2lkdGg7aT1zPGpLdD9pLWpLdCtlLmluRXh0cmFjdEJveC53aWR0aC8yOmktZS5pbkV4dHJhY3RCb3gud2lkdGgvMi1lLm91dEV4dHJhY3RCb3gud2lkdGgtKHI/YTowKSxpPWktZS5saWJyYXJ5RnVuY3Rpb25zQm94LndpZHRoLShvP2E6MCksUUt0KEtLdCh0LCJnIixaS3QuU2NlbmUuSU5FWFRSQUNUKSxpLG4pfWlmKHIpe2xldCBpPWUuY29yZUJveC53aWR0aDtzPGpLdD9pPWktakt0K2Uub3V0RXh0cmFjdEJveC53aWR0aC8yOmktPWUub3V0RXh0cmFjdEJveC53aWR0aC8yLGk9aS1lLmxpYnJhcnlGdW5jdGlvbnNCb3gud2lkdGgtKG8/YTowKSxRS3QoS0t0KHQsImciLFpLdC5TY2VuZS5PVVRFWFRSQUNUKSxpLG4pfWlmKG8pe2xldCBpPWUuY29yZUJveC53aWR0aC1lLmxpYnJhcnlGdW5jdGlvbnNCb3gud2lkdGgvMjtRS3QoS0t0KHQsImciLFpLdC5TY2VuZS5GVU5DVElPTl9MSUJSQVJZKSxpLG4pfX0pKG8sZSksciYmby5hdHRyKCJvcGFjaXR5IiwwKS50cmFuc2l0aW9uKCkuYXR0cigib3BhY2l0eSIsMSksb31jbGFzcyBIWnR7Y29uc3RydWN0b3IodCxlLG4saSxyLG8pe3RoaXMuc3ZnPXQsdGhpcy5sYWJlbFBhZGRpbmc9byx0aGlzLnpvb21HPWUsdGhpcy5tYWluWm9vbT1uLHRoaXMubWF4V2FuZEg9cjtsZXQgYT1EdShpLnNoYWRvd1Jvb3QpLHM9YS5zZWxlY3QoInN2ZyIpLGw9cy5zZWxlY3QoInJlY3QiKTt0aGlzLnZpZXdwb2ludENvb3JkPXt4OjAseTowfTtsZXQgYz1JaCgpLnN1YmplY3QoT2JqZWN0KS5vbigiZHJhZyIsKHQ9Pnt0aGlzLnZpZXdwb2ludENvb3JkLng9TXUueCx0aGlzLnZpZXdwb2ludENvb3JkLnk9TXUueSx0aGlzLnVwZGF0ZVZpZXdwb2ludCgpfSkpO2wuZGF0dW0odGhpcy52aWV3cG9pbnRDb29yZCkuY2FsbChjKSxzLm9uKCJjbGljayIsKCgpPT57aWYoTXUuZGVmYXVsdFByZXZlbnRlZClyZXR1cm47bGV0IHQ9TnVtYmVyKGwuYXR0cigid2lkdGgiKSksZT1OdW1iZXIobC5hdHRyKCJoZWlnaHQiKSksbj1iaChzLm5vZGUoKSk7dGhpcy52aWV3cG9pbnRDb29yZC54PW5bMF0tdC8yLHRoaXMudmlld3BvaW50Q29vcmQueT1uWzFdLWUvMix0aGlzLnVwZGF0ZVZpZXdwb2ludCgpfSkpLHRoaXMudmlld3BvaW50PWwubm9kZSgpLHRoaXMubWluaW1hcFN2Zz1zLm5vZGUoKSx0aGlzLm1pbmltYXA9aSx0aGlzLmNhbnZhcz1hLnNlbGVjdCgiY2FudmFzLmZpcnN0Iikubm9kZSgpLHRoaXMuY2FudmFzQnVmZmVyPWEuc2VsZWN0KCJjYW52YXMuc2Vjb25kIikubm9kZSgpLHRoaXMuZG93bmxvYWRDYW52YXM9YS5zZWxlY3QoImNhbnZhcy5kb3dubG9hZCIpLm5vZGUoKSxEdSh0aGlzLmRvd25sb2FkQ2FudmFzKS5zdHlsZSgiZGlzcGxheSIsIm5vbmUiKSx0aGlzLnVwZGF0ZSgpfXVwZGF0ZVZpZXdwb2ludCgpe0R1KHRoaXMudmlld3BvaW50KS5hdHRyKCJ4Iix0aGlzLnZpZXdwb2ludENvb3JkLngpLmF0dHIoInkiLHRoaXMudmlld3BvaW50Q29vcmQueSk7bGV0IHQ9LXRoaXMudmlld3BvaW50Q29vcmQueCp0aGlzLnNjYWxlTWFpbi90aGlzLnNjYWxlTWluaW1hcCxlPS10aGlzLnZpZXdwb2ludENvb3JkLnkqdGhpcy5zY2FsZU1haW4vdGhpcy5zY2FsZU1pbmltYXA7RHUodGhpcy5zdmcpLmNhbGwodGhpcy5tYWluWm9vbS50cmFuc2Zvcm0scU4udHJhbnNsYXRlKHQsZSkuc2NhbGUodGhpcy5zY2FsZU1haW4pKX1nZXRJbWFnZUJsb2IoKXtyZXR1cm4gbmV3IFByb21pc2UoKHQ9Pnt0aGlzLmRvd25sb2FkQ2FudmFzLnRvQmxvYigoZT0+e3QoZSl9KSwiaW1hZ2UvcG5nIil9KSl9dXBkYXRlKCl7bGV0IHQ9bnVsbDt0cnl7aWYodD10aGlzLnpvb21HLmdldEJCb3goKSwwPT09dC53aWR0aClyZXR1cm59Y2F0Y2godCl7cmV0dXJufWxldCBlPUR1KHRoaXMuc3ZnKSxuPSIiO2NvbnN0IGk9dGhpcy5zdmcscj0oaS5nZXRSb290Tm9kZT9pLmdldFJvb3ROb2RlKCk6dGhpcy5zdmcucGFyZW50Tm9kZSkuc3R5bGVTaGVldHM7Zm9yKGxldCB0PTA7dDxyLmxlbmd0aDt0KyspdHJ5e2xldCBlPXJbdF0uY3NzUnVsZXN8fHJbdF0ucnVsZXM7aWYobnVsbD09ZSljb250aW51ZTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyluKz1lW3RdLmNzc1RleHQucmVwbGFjZSgvID90Zi1bXHctXSsgPy9nLCIiKSsiXG4ifWNhdGNoKHQpe2lmKCJTZWN1cml0eUVycm9yIiE9PXQubmFtZSl0aHJvdyB0fWxldCBvPWUuYXBwZW5kKCJzdHlsZSIpO28udGV4dChuKTtsZXQgYT1EdSh0aGlzLnpvb21HKSxzPWEuYXR0cigidHJhbnNmb3JtIik7YS5hdHRyKCJ0cmFuc2Zvcm0iLG51bGwpLHQuaGVpZ2h0Kz10LnksdC53aWR0aCs9dC54LHQuaGVpZ2h0Kz0yKnRoaXMubGFiZWxQYWRkaW5nLHQud2lkdGgrPTIqdGhpcy5sYWJlbFBhZGRpbmcsZS5hdHRyKCJ3aWR0aCIsdC53aWR0aCkuYXR0cigiaGVpZ2h0Iix0LmhlaWdodCksdGhpcy5zY2FsZU1pbmltYXA9dGhpcy5tYXhXYW5kSC9NYXRoLm1heCh0LndpZHRoLHQuaGVpZ2h0KSx0aGlzLm1pbmltYXBTaXplPXt3aWR0aDp0LndpZHRoKnRoaXMuc2NhbGVNaW5pbWFwLGhlaWdodDp0LmhlaWdodCp0aGlzLnNjYWxlTWluaW1hcH0sRHUodGhpcy5taW5pbWFwU3ZnKS5hdHRyKHRoaXMubWluaW1hcFNpemUpLER1KHRoaXMuY2FudmFzQnVmZmVyKS5hdHRyKHRoaXMubWluaW1hcFNpemUpO2NvbnN0IGw9RHUodGhpcy5kb3dubG9hZENhbnZhcyk7bC5zdHlsZSgid2lkdGgiLHQud2lkdGgpLGwuc3R5bGUoImhlaWdodCIsdC5oZWlnaHQpLGwuYXR0cigid2lkdGgiLDMqdC53aWR0aCksbC5hdHRyKCJoZWlnaHQiLDMqdC5oZWlnaHQpLG51bGwhPXRoaXMudHJhbnNsYXRlJiZudWxsIT10aGlzLnpvb20mJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9PnRoaXMuem9vbSgpKSk7bGV0IGM9KG5ldyBYTUxTZXJpYWxpemVyKS5zZXJpYWxpemVUb1N0cmluZyh0aGlzLnN2Zyk7by5yZW1vdmUoKSxlLmF0dHIoIndpZHRoIixudWxsKS5hdHRyKCJoZWlnaHQiLG51bGwpLGEuYXR0cigidHJhbnNmb3JtIixzKTtsZXQgdT1uZXcgSW1hZ2U7dS5vbmxvYWQ9KCk9PntsZXQgdD10aGlzLmNhbnZhc0J1ZmZlci5nZXRDb250ZXh0KCIyZCIpO3QuY2xlYXJSZWN0KDAsMCx0aGlzLmNhbnZhc0J1ZmZlci53aWR0aCx0aGlzLmNhbnZhc0J1ZmZlci5oZWlnaHQpLHQuZHJhd0ltYWdlKHUsMCwwLHRoaXMubWluaW1hcFNpemUud2lkdGgsdGhpcy5taW5pbWFwU2l6ZS5oZWlnaHQpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9PntEdSh0aGlzLmNhbnZhc0J1ZmZlcikuc3R5bGUoImRpc3BsYXkiLG51bGwpLER1KHRoaXMuY2FudmFzKS5zdHlsZSgiZGlzcGxheSIsIm5vbmUiKSxbdGhpcy5jYW52YXMsdGhpcy5jYW52YXNCdWZmZXJdPVt0aGlzLmNhbnZhc0J1ZmZlcix0aGlzLmNhbnZhc119KSk7bGV0IGU9dGhpcy5kb3dubG9hZENhbnZhcy5nZXRDb250ZXh0KCIyZCIpO2UuY2xlYXJSZWN0KDAsMCx0aGlzLmRvd25sb2FkQ2FudmFzLndpZHRoLHRoaXMuZG93bmxvYWRDYW52YXMuaGVpZ2h0KSxlLmRyYXdJbWFnZSh1LDAsMCx0aGlzLmRvd25sb2FkQ2FudmFzLndpZHRoLHRoaXMuZG93bmxvYWRDYW52YXMuaGVpZ2h0KX0sdS5vbmVycm9yPSgpPT57bGV0IHQ9bmV3IEJsb2IoW2NdLHt0eXBlOiJpbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgifSk7dS5zcmM9VVJMLmNyZWF0ZU9iamVjdFVSTCh0KX0sdS5zcmM9ImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCIrZW5jb2RlVVJJQ29tcG9uZW50KGMpfXpvb20odCl7aWYobnVsbD09dGhpcy5zY2FsZU1pbmltYXApcmV0dXJuO3QmJih0aGlzLnRyYW5zbGF0ZT1bdC54LHQueV0sdGhpcy5zY2FsZU1haW49dC5rKTtsZXQgZT10aGlzLnN2Zy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPUR1KHRoaXMudmlld3BvaW50KTt0aGlzLnZpZXdwb2ludENvb3JkLng9LXRoaXMudHJhbnNsYXRlWzBdKnRoaXMuc2NhbGVNaW5pbWFwL3RoaXMuc2NhbGVNYWluLHRoaXMudmlld3BvaW50Q29vcmQueT0tdGhpcy50cmFuc2xhdGVbMV0qdGhpcy5zY2FsZU1pbmltYXAvdGhpcy5zY2FsZU1haW47bGV0IGk9ZS53aWR0aCp0aGlzLnNjYWxlTWluaW1hcC90aGlzLnNjYWxlTWFpbixyPWUuaGVpZ2h0KnRoaXMuc2NhbGVNaW5pbWFwL3RoaXMuc2NhbGVNYWluO24uYXR0cigieCIsdGhpcy52aWV3cG9pbnRDb29yZC54KS5hdHRyKCJ5Iix0aGlzLnZpZXdwb2ludENvb3JkLnkpLmF0dHIoIndpZHRoIixpKS5hdHRyKCJoZWlnaHQiLHIpO2xldCBvPXRoaXMubWluaW1hcFNpemUud2lkdGgsYT10aGlzLm1pbmltYXBTaXplLmhlaWdodCxzPXRoaXMudmlld3BvaW50Q29vcmQueCxsPXRoaXMudmlld3BvaW50Q29vcmQueTsoTWF0aC5taW4oTWF0aC5tYXgoMCxzK2kpLG8pLU1hdGgubWluKE1hdGgubWF4KDAscyksbykpKihNYXRoLm1pbihNYXRoLm1heCgwLGwrciksYSktTWF0aC5taW4oTWF0aC5tYXgoMCxsKSxhKSkvKG8qYSk8Ljg/dGhpcy5taW5pbWFwLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOnRoaXMubWluaW1hcC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX19bGV0IEZadD1jbGFzcyBleHRlbmRzIHdle2luaXQodCxlLG4saSxyKXtyZXR1cm4gbmV3IEhadCh0LGUsbix0aGlzLGkscil9fTtGWnQudGVtcGxhdGU9eGVgCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgbGluZWFyOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICB9CgogICAgICA6aG9zdCguaGlkZGVuKSB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgY2FudmFzIHsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjOTk5OwogICAgICB9CgogICAgICByZWN0IHsKICAgICAgICBmaWxsOiB3aGl0ZTsKICAgICAgICBzdHJva2U6ICMxMTExMTE7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiAxcHg7CiAgICAgICAgZmlsbC1vcGFjaXR5OiAwOwogICAgICAgIGZpbHRlcjogdXJsKCNtaW5pbWFwRHJvcFNoYWRvdyk7CiAgICAgICAgY3Vyc29yOiBtb3ZlOwogICAgICB9CgogICAgICBzdmcgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxzdmc+CiAgICAgIDxkZWZzPgogICAgICAgIDxmaWx0ZXIKICAgICAgICAgIGlkPSJtaW5pbWFwRHJvcFNoYWRvdyIKICAgICAgICAgIHg9Ii0yMCUiCiAgICAgICAgICB5PSItMjAlIgogICAgICAgICAgd2lkdGg9IjE1MCUiCiAgICAgICAgICBoZWlnaHQ9IjE1MCUiCiAgICAgICAgPgogICAgICAgICAgPGZlT2Zmc2V0IHJlc3VsdD0ib2ZmT3V0IiBpbj0iU291cmNlR3JhcGhpYyIgZHg9IjEiIGR5PSIxIj48L2ZlT2Zmc2V0PgogICAgICAgICAgPGZlQ29sb3JNYXRyaXgKICAgICAgICAgICAgcmVzdWx0PSJtYXRyaXhPdXQiCiAgICAgICAgICAgIGluPSJvZmZPdXQiCiAgICAgICAgICAgIHR5cGU9Im1hdHJpeCIKICAgICAgICAgICAgdmFsdWVzPSIwLjEgMCAwIDAgMCAwIDAuMSAwIDAgMCAwIDAgMC4xIDAgMCAwIDAgMCAwLjUgMCIKICAgICAgICAgID48L2ZlQ29sb3JNYXRyaXg+CiAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIKICAgICAgICAgICAgcmVzdWx0PSJibHVyT3V0IgogICAgICAgICAgICBpbj0ibWF0cml4T3V0IgogICAgICAgICAgICBzdGREZXZpYXRpb249IjIiCiAgICAgICAgICA+PC9mZUdhdXNzaWFuQmx1cj4KICAgICAgICAgIDxmZUJsZW5kIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImJsdXJPdXQiIG1vZGU9Im5vcm1hbCI+PC9mZUJsZW5kPgogICAgICAgIDwvZmlsdGVyPgogICAgICA8L2RlZnM+CiAgICAgIDxyZWN0PjwvcmVjdD4KICAgIDwvc3ZnPgogICAgPGNhbnZhcyBjbGFzcz0iZmlyc3QiPjwvY2FudmFzPgogICAgPCEtLSBBZGRpdGlvbmFsIGNhbnZhcyB0byB1c2UgYXMgYnVmZmVyIHRvIGF2b2lkIGZsaWNrZXJpbmcgYmV0d2VlbiB1cGRhdGVzIC0tPgogICAgPGNhbnZhcyBjbGFzcz0ic2Vjb25kIj48L2NhbnZhcz4KICAgIDxjYW52YXMgY2xhc3M9ImRvd25sb2FkIj48L2NhbnZhcz4KICBgLEZadD10KFtpKCJ0Zi1ncmFwaC1taW5pbWFwIildLEZadCk7Y29uc3QgVlp0PXhlYAogIDxzdHlsZT4KICAgIDpob3N0KC5kYXJrLW1vZGUpIHsKICAgICAgZmlsdGVyOiBpbnZlcnQoMSk7CiAgICB9CgogICAgOmhvc3QgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICB9CgogICAgI3N2ZyB7CiAgICAgIGZsZXg6IDE7CiAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgd2lkdGg6IDEwMCU7CiAgICB9CgogICAgI2hpZGRlbiB7CiAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgdG9wOiAwcHg7CiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgIH0KCiAgICB0ZXh0IHsKICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICB9CgogICAgLyogLS0tIE5vZGUgYW5kIGFubm90YXRpb24tbm9kZSBmb3IgTWV0YW5vZGUgLS0tICovCgogICAgLm1ldGEgPiAubm9kZXNoYXBlID4gcmVjdCwKICAgIC5tZXRhID4gLmFubm90YXRpb24tbm9kZSA+IHJlY3QgewogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGZpbGw6IGhzbCgwLCAwJSwgNzAlKTsKICAgIH0KICAgIC5ub2RlLm1ldGEuaGlnaGxpZ2h0ZWQgPiAubm9kZXNoYXBlID4gcmVjdCwKICAgIC5ub2RlLm1ldGEuaGlnaGxpZ2h0ZWQgPiAuYW5ub3RhdGlvbi1ub2RlID4gcmVjdCB7CiAgICAgIHN0cm9rZS13aWR0aDogMjsKICAgIH0KICAgIC5hbm5vdGF0aW9uLm1ldGEuaGlnaGxpZ2h0ZWQgPiAubm9kZXNoYXBlID4gcmVjdCwKICAgIC5hbm5vdGF0aW9uLm1ldGEuaGlnaGxpZ2h0ZWQgPiAuYW5ub3RhdGlvbi1ub2RlID4gcmVjdCB7CiAgICAgIHN0cm9rZS13aWR0aDogMTsKICAgIH0KICAgIC5tZXRhLnNlbGVjdGVkID4gLm5vZGVzaGFwZSA+IHJlY3QsCiAgICAubWV0YS5zZWxlY3RlZCA+IC5hbm5vdGF0aW9uLW5vZGUgPiByZWN0IHsKICAgICAgc3Ryb2tlOiByZWQ7CiAgICAgIHN0cm9rZS13aWR0aDogMjsKICAgIH0KICAgIC5ub2RlLm1ldGEuc2VsZWN0ZWQuZXhwYW5kZWQgPiAubm9kZXNoYXBlID4gcmVjdCwKICAgIC5ub2RlLm1ldGEuc2VsZWN0ZWQuZXhwYW5kZWQgPiAuYW5ub3RhdGlvbi1ub2RlID4gcmVjdCB7CiAgICAgIHN0cm9rZTogcmVkOwogICAgICBzdHJva2Utd2lkdGg6IDM7CiAgICB9CiAgICAuYW5ub3RhdGlvbi5tZXRhLnNlbGVjdGVkID4gLm5vZGVzaGFwZSA+IHJlY3QsCiAgICAuYW5ub3RhdGlvbi5tZXRhLnNlbGVjdGVkID4gLmFubm90YXRpb24tbm9kZSA+IHJlY3QgewogICAgICBzdHJva2U6IHJlZDsKICAgICAgc3Ryb2tlLXdpZHRoOiAyOwogICAgfQogICAgLm5vZGUubWV0YS5zZWxlY3RlZC5leHBhbmRlZC5oaWdobGlnaHRlZCA+IC5ub2Rlc2hhcGUgPiByZWN0LAogICAgLm5vZGUubWV0YS5zZWxlY3RlZC5leHBhbmRlZC5oaWdobGlnaHRlZCA+IC5hbm5vdGF0aW9uLW5vZGUgPiByZWN0IHsKICAgICAgc3Ryb2tlOiByZWQ7CiAgICAgIHN0cm9rZS13aWR0aDogNDsKICAgIH0KCiAgICAuZmFkZWQsCiAgICAuZmFkZWQgcmVjdCwKICAgIC5mYWRlZCBlbGxpcHNlLAogICAgLmZhZGVkIHBhdGgsCiAgICAuZmFkZWQgdXNlLAogICAgI3JlY3RIYXRjaCBsaW5lLAogICAgI2VsbGlwc2VIYXRjaCBsaW5lIHsKICAgICAgY29sb3I6ICNlMGQ0YjMgIWltcG9ydGFudDsKICAgICAgZmlsbDogd2hpdGU7CiAgICAgIHN0cm9rZTogI2UwZDRiMyAhaW1wb3J0YW50OwogICAgfQoKICAgIC5mYWRlZCBwYXRoIHsKICAgICAgc3Ryb2tlLXdpZHRoOiAxcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuZmFkZWQgcmVjdCB7CiAgICAgIGZpbGw6IHVybCgjcmVjdEhhdGNoKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5mYWRlZCBlbGxpcHNlLAogICAgLmZhZGVkIHVzZSB7CiAgICAgIGZpbGw6IHVybCgjZWxsaXBzZUhhdGNoKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5mYWRlZCB0ZXh0IHsKICAgICAgb3BhY2l0eTogMDsKICAgIH0KCiAgICAvKiBSdWxlcyB1c2VkIGZvciBpbnB1dC10cmFjaW5nLiAqLwogICAgLmlucHV0LWhpZ2hsaWdodCA+ICogPiByZWN0LAogICAgLmlucHV0LWhpZ2hsaWdodCA+ICogPiBlbGxpcHNlLAogICAgLmlucHV0LWhpZ2hsaWdodCA+ICogPiB1c2UgewogICAgICBmaWxsOiB3aGl0ZTsKICAgICAgc3Ryb2tlOiAjZmY5ODAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLyogIC0gRmFkZWQgbm9uLWlucHV0IHN0eWxpbmcgKi8KICAgIC5ub24taW5wdXQgPiAqID4gcmVjdCwKLm5vbi1pbnB1dCA+ICogPiBlbGxpcHNlLAoubm9uLWlucHV0ID4gKiA+IHVzZSwKLyogRm9yIENvbnN0IG5vZGVzLiAqLwoubm9uLWlucHV0ID4gKiA+IC5jb25zdGFudDpub3QoW2NsYXNzKj0iaW5wdXQtaGlnaGxpZ2h0Il0pID4KICAuYW5ub3RhdGlvbi1ub2RlID4gZWxsaXBzZSwKLyogRm9yIHN0eWxpbmcgb2YgYW5ub3RhdGlvbiBub2RlcyBvZiBub24taW5wdXQgbm9kZXMuICovCi5ub24taW5wdXQgPiBnID4gLmFubm90YXRpb24gPiAuYW5ub3RhdGlvbi1ub2RlID4gcmVjdCB7CiAgICAgIHN0cm9rZTogI2UwZDRiMyAhaW1wb3J0YW50OwogICAgICBzdHJva2Utd2lkdGg6IGluaGVyaXQ7CiAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IGluaGVyaXQ7CiAgICB9CgogICAgLm5vbi1pbnB1dCBwYXRoIHsKICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgfQoKICAgIC5ub24taW5wdXQgPiAubm9kZXNoYXBlID4gcmVjdCwKLm5vbi1pbnB1dCA+IC5hbm5vdGF0aW9uLW5vZGUgPiByZWN0LAovKiBGb3Igc3R5bGluZyBvZiBhbm5vdGF0aW9uIG5vZGVzIG9mIG5vbi1pbnB1dCBub2Rlcy4gKi8KLm5vbi1pbnB1dCA+IGcgPiAuYW5ub3RhdGlvbiA+IC5hbm5vdGF0aW9uLW5vZGUgPiByZWN0IHsKICAgICAgZmlsbDogdXJsKCNyZWN0SGF0Y2gpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLm5vbi1pbnB1dCBlbGxpcHNlLAogICAgLm5vbi1pbnB1dCB1c2UgewogICAgICBmaWxsOiB1cmwoI2VsbGlwc2VIYXRjaCkgIWltcG9ydGFudDsKICAgIH0KCiAgICAubm9uLWlucHV0ID4gdGV4dCB7CiAgICAgIG9wYWNpdHk6IDA7CiAgICB9CgogICAgLm5vbi1pbnB1dCAuYW5ub3RhdGlvbiA+IC5hbm5vdGF0aW9uLWVkZ2UgewogICAgICBtYXJrZXItZW5kOiB1cmwoI2Fubm90YXRpb24tYXJyb3doZWFkLWZhZGVkKTsKICAgIH0KCiAgICAubm9uLWlucHV0IC5hbm5vdGF0aW9uID4gLmFubm90YXRpb24tZWRnZS5yZWZsaW5lIHsKICAgICAgbWFya2VyLXN0YXJ0OiB1cmwoI3JlZi1hbm5vdGF0aW9uLWFycm93aGVhZC1mYWRlZCk7CiAgICB9CgogICAgLyogSW5wdXQgZWRnZXMuICovCiAgICAuaW5wdXQtZWRnZS1oaWdobGlnaHQgPiB0ZXh0IHsKICAgICAgZmlsbDogYmxhY2sgIWltcG9ydGFudDsKICAgIH0KICAgIC5pbnB1dC1oaWdobGlnaHQgPiAuaW4tYW5ub3RhdGlvbnMgPiAuYW5ub3RhdGlvbiA+IC5hbm5vdGF0aW9uLWVkZ2UsCiAgICAuaW5wdXQtaGlnaGxpZ2h0LXNlbGVjdGVkCiAgICAgID4gLmluLWFubm90YXRpb25zCiAgICAgID4gLmFubm90YXRpb24KICAgICAgPiAuYW5ub3RhdGlvbi1lZGdlIHsKICAgICAgc3Ryb2tlOiAjOTk5ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLyogTm9uLWlucHV0IGVkZ2VzLiAqLwogICAgLm5vbi1pbnB1dC1lZGdlLWhpZ2hsaWdodCwKLm5vbi1pbnB1dCA+IGcgPiAuYW5ub3RhdGlvbiA+IHBhdGgsCi8qIEFubm90YXRpb24gc3R5bGVzIChsYWJlbCBhbmQgZWRnZXMgcmVzcGVjdGl2ZWx5KS4gKi8KLm5vbi1pbnB1dCA+IGcgPgouYW5ub3RhdGlvbjpub3QoLmlucHV0LWhpZ2hsaWdodCk6bm90KC5pbnB1dC1oaWdobGlnaHQtc2VsZWN0ZWQpID4KLmFubm90YXRpb24tbGFiZWwKLyouYW5ub3RhdGlvbi1lZGdlKi8gewogICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICB9CgogICAgLyogLS0tIE9wIE5vZGUgLS0tICovCgogICAgLm9wID4gLm5vZGVzaGFwZSA+IC5ub2RlY29sb3J0YXJnZXQsCiAgICAub3AgPiAuYW5ub3RhdGlvbi1ub2RlID4gLm5vZGVjb2xvcnRhcmdldCB7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZmlsbDogI2ZmZjsKICAgICAgc3Ryb2tlOiAjY2NjOwogICAgfQoKICAgIC5vcC5zZWxlY3RlZCA+IC5ub2Rlc2hhcGUgPiAubm9kZWNvbG9ydGFyZ2V0LAogICAgLm9wLnNlbGVjdGVkID4gLmFubm90YXRpb24tbm9kZSA+IC5ub2RlY29sb3J0YXJnZXQgewogICAgICBzdHJva2U6IHJlZDsKICAgICAgc3Ryb2tlLXdpZHRoOiAyOwogICAgfQoKICAgIC5vcC5oaWdobGlnaHRlZCA+IC5ub2Rlc2hhcGUgPiAubm9kZWNvbG9ydGFyZ2V0LAogICAgLm9wLmhpZ2hsaWdodGVkID4gLmFubm90YXRpb24tbm9kZSA+IC5ub2RlY29sb3J0YXJnZXQgewogICAgICBzdHJva2Utd2lkdGg6IDI7CiAgICB9CgogICAgLyogLS0tIFNlcmllcyBOb2RlIC0tLSAqLwoKICAgIC8qIEJ5IGRlZmF1bHQsIGRvbid0IHNob3cgdGhlIHNlcmllcyBiYWNrZ3JvdW5kIDxyZWN0Pi4gKi8KICAgIC5zZXJpZXMgPiAubm9kZXNoYXBlID4gcmVjdCB7CiAgICAgIGZpbGw6IGhzbCgwLCAwJSwgNzAlKTsKICAgICAgZmlsbC1vcGFjaXR5OiAwOwogICAgICBzdHJva2UtZGFzaGFycmF5OiA1LCA1OwogICAgICBzdHJva2Utb3BhY2l0eTogMDsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgfQoKICAgIC8qIE9uY2UgZXhwYW5kZWQsIHNob3cgdGhlIHNlcmllcyBiYWNrZ3JvdW5kIDxyZWN0PiBhbmQgaGlkZSB0aGUgPHVzZT4uICovCiAgICAuc2VyaWVzLmV4cGFuZGVkID4gLm5vZGVzaGFwZSA+IHJlY3QgewogICAgICBmaWxsLW9wYWNpdHk6IDAuMTU7CiAgICAgIHN0cm9rZTogaHNsKDAsIDAlLCA3MCUpOwogICAgICBzdHJva2Utb3BhY2l0eTogMTsKICAgIH0KICAgIC5zZXJpZXMuZXhwYW5kZWQgPiAubm9kZXNoYXBlID4gdXNlIHsKICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgfQoKICAgIC8qKgogKiBUT0RPOiBTaW1wbGlmeSB0aGlzIGJ5IGFwcGx5aW5nIGEgc3RhYmxlIGNsYXNzIG5hbWUgdG8gYWxsIDxnPgogKiBlbGVtZW50cyB0aGF0IGN1cnJlbnRseSBoYXZlIGVpdGhlciB0aGUgbm9kZXNoYXBlIG9yIGFubm90YXRpb24tbm9kZSBjbGFzc2VzLgogKi8KICAgIC5zZXJpZXMgPiAubm9kZXNoYXBlID4gdXNlLAogICAgLnNlcmllcyA+IC5hbm5vdGF0aW9uLW5vZGUgPiB1c2UgewogICAgICBzdHJva2U6ICNjY2M7CiAgICB9CiAgICAuc2VyaWVzLmhpZ2hsaWdodGVkID4gLm5vZGVzaGFwZSA+IHVzZSwKICAgIC5zZXJpZXMuaGlnaGxpZ2h0ZWQgPiAuYW5ub3RhdGlvbi1ub2RlID4gdXNlIHsKICAgICAgc3Ryb2tlLXdpZHRoOiAyOwogICAgfQogICAgLnNlcmllcy5zZWxlY3RlZCA+IC5ub2Rlc2hhcGUgPiB1c2UsCiAgICAuc2VyaWVzLnNlbGVjdGVkID4gLmFubm90YXRpb24tbm9kZSA+IHVzZSB7CiAgICAgIHN0cm9rZTogcmVkOwogICAgICBzdHJva2Utd2lkdGg6IDI7CiAgICB9CgogICAgLnNlcmllcy5zZWxlY3RlZCA+IC5ub2Rlc2hhcGUgPiByZWN0IHsKICAgICAgc3Ryb2tlOiByZWQ7CiAgICAgIHN0cm9rZS13aWR0aDogMjsKICAgIH0KCiAgICAuYW5ub3RhdGlvbi5zZXJpZXMuc2VsZWN0ZWQgPiAuYW5ub3RhdGlvbi1ub2RlID4gdXNlIHsKICAgICAgc3Ryb2tlOiByZWQ7CiAgICAgIHN0cm9rZS13aWR0aDogMjsKICAgIH0KCiAgICAvKiAtLS0gQnJpZGdlIE5vZGUgLS0tICovCiAgICAuYnJpZGdlID4gLm5vZGVzaGFwZSA+IHJlY3QgewogICAgICBzdHJva2U6ICNmMGY7CiAgICAgIG9wYWNpdHk6IDAuMjsKICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KCiAgICAvKiAtLS0gU3RydWN0dXJhbCBFbGVtZW50cyAtLS0gKi8KICAgIC5lZGdlID4gcGF0aC5lZGdlbGluZS5zdHJ1Y3R1cmFsIHsKICAgICAgc3Ryb2tlOiAjZjBmOwogICAgICBvcGFjaXR5OiAwLjI7CiAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CgogICAgLyogUmVmZXJlbmNlIEVkZ2UgKi8KICAgIC5lZGdlID4gcGF0aC5lZGdlbGluZS5yZWZlcmVuY2VlZGdlIHsKICAgICAgc3Ryb2tlOiAjZmZiNzRkOwogICAgICBvcGFjaXR5OiAxOwogICAgfQoKICAgIC8qIC0tLSBTZXJpZXMgTm9kZXMgLS0tICovCgogICAgLyogSGlkZSB0aGUgcmVjdCBmb3IgYSBzZXJpZXMnIGFubm90YXRpb24uICovCiAgICAuc2VyaWVzID4gLmFubm90YXRpb24tbm9kZSA+IHJlY3QgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoKICAgIC8qIC0tLSBOb2RlIGxhYmVsIC0tLSAqLwoKICAgIC5ub2RlIHsKICAgICAgLyogUHJvdmlkZSBhIGhpbnQgdG8gYnJvd3NlcnMgdG8gYXZvaWQgdXNpbmcgdGhlaXIgc3RhdGljIHJhc3Rlcml6YXRpb24KICAgICAgYXQgaW5pdGlhbCBzY2FsZSwgd2hpY2ggbG9va3MgdmVyeSBwaXhlbGF0ZWQgb24gQ2hyb21pdW0gd2hlbiB6b29tZWQgaW4uCiAgICAgIE5vdGUgdGhhdCB3ZSBpbnRlbnRpb25hbGx5IGRvICpub3QqIHVzZSAnd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybScgYW5kCiAgICAgICd0cmFuc2xhdGVaKDApIGhlcmUsIHdoaWNoIGludHJvZHVjZSBibHVycmluZXNzIG9uIEZpcmVmb3guCiAgICAgIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9pc3N1ZXMvNDc0NCAqLwogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMXB4KTsKICAgIH0KCiAgICAubm9kZSA+IHRleHQubm9kZWxhYmVsIHsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBmaWxsOiAjNDQ0OwogICAgfQoKICAgIC5tZXRhLmV4cGFuZGVkID4gdGV4dC5ub2RlbGFiZWwgewogICAgICBmb250LXNpemU6IDlweDsKICAgIH0KCiAgICAuc2VyaWVzID4gdGV4dC5ub2RlbGFiZWwgewogICAgICBmb250LXNpemU6IDhweDsKICAgIH0KCiAgICAub3AgPiB0ZXh0Lm5vZGVsYWJlbCB7CiAgICAgIGZvbnQtc2l6ZTogNnB4OwogICAgfQoKICAgIC5icmlkZ2UgPiB0ZXh0Lm5vZGVsYWJlbCB7CiAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CgogICAgLm5vZGUubWV0YS5leHBhbmRlZCA+IHRleHQubm9kZWxhYmVsIHsKICAgICAgY3Vyc29yOiBub3JtYWw7CiAgICB9CgogICAgLmFubm90YXRpb24ubWV0YS5oaWdobGlnaHRlZCA+IHRleHQuYW5ub3RhdGlvbi1sYWJlbCB7CiAgICAgIGZpbGw6ICM1MGEzZjc7CiAgICB9CgogICAgLmFubm90YXRpb24ubWV0YS5zZWxlY3RlZCA+IHRleHQuYW5ub3RhdGlvbi1sYWJlbCB7CiAgICAgIGZpbGw6ICM0Mjg1ZjQ7CiAgICB9CgogICAgLyogLS0tIEFubm90YXRpb24gLS0tICovCgogICAgLyogb25seSBhcHBsaWVkIGZvciBhbm5vdGF0aW9ucyB0aGF0IGFyZSBub3Qgc3VtbWFyeSBvciBjb25zdGFudC4KKC5zdW1tYXJ5LCAuY29uc3RhbnQgZ2V0cyBvdmVycmlkZGVuIGJlbG93KSAqLwogICAgLmFubm90YXRpb24gPiAuYW5ub3RhdGlvbi1ub2RlID4gKiB7CiAgICAgIHN0cm9rZS13aWR0aDogMC41OwogICAgICBzdHJva2UtZGFzaGFycmF5OiAxLCAxOwogICAgfQoKICAgIC5hbm5vdGF0aW9uLnN1bW1hcnkgPiAuYW5ub3RhdGlvbi1ub2RlID4gKiwKICAgIC5hbm5vdGF0aW9uLmNvbnN0YW50ID4gLmFubm90YXRpb24tbm9kZSA+ICogewogICAgICBzdHJva2Utd2lkdGg6IDE7CiAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7CiAgICB9CgogICAgLmFubm90YXRpb24gPiAuYW5ub3RhdGlvbi1lZGdlIHsKICAgICAgZmlsbDogbm9uZTsKICAgICAgc3Ryb2tlOiAjYWFhOwogICAgICBzdHJva2Utd2lkdGg6IDAuNTsKICAgICAgbWFya2VyLWVuZDogdXJsKCNhbm5vdGF0aW9uLWFycm93aGVhZCk7CiAgICB9CgogICAgLmZhZGVkIC5hbm5vdGF0aW9uID4gLmFubm90YXRpb24tZWRnZSB7CiAgICAgIG1hcmtlci1lbmQ6IHVybCgjYW5ub3RhdGlvbi1hcnJvd2hlYWQtZmFkZWQpOwogICAgfQoKICAgIC5hbm5vdGF0aW9uID4gLmFubm90YXRpb24tZWRnZS5yZWZsaW5lIHsKICAgICAgbWFya2VyLXN0YXJ0OiB1cmwoI3JlZi1hbm5vdGF0aW9uLWFycm93aGVhZCk7CiAgICB9CgogICAgLmZhZGVkIC5hbm5vdGF0aW9uID4gLmFubm90YXRpb24tZWRnZS5yZWZsaW5lIHsKICAgICAgbWFya2VyLXN0YXJ0OiB1cmwoI3JlZi1hbm5vdGF0aW9uLWFycm93aGVhZC1mYWRlZCk7CiAgICB9CgogICAgLmFubm90YXRpb24gPiAuYW5ub3RhdGlvbi1jb250cm9sLWVkZ2UgewogICAgICBzdHJva2UtZGFzaGFycmF5OiAxLCAxOwogICAgfQoKICAgICNhbm5vdGF0aW9uLWFycm93aGVhZCB7CiAgICAgIGZpbGw6ICNhYWE7CiAgICB9CgogICAgI2Fubm90YXRpb24tYXJyb3doZWFkLWZhZGVkIHsKICAgICAgZmlsbDogI2UwZDRiMzsKICAgIH0KCiAgICAjcmVmLWFubm90YXRpb24tYXJyb3doZWFkIHsKICAgICAgZmlsbDogI2FhYTsKICAgIH0KCiAgICAjcmVmLWFubm90YXRpb24tYXJyb3doZWFkLWZhZGVkIHsKICAgICAgZmlsbDogI2UwZDRiMzsKICAgIH0KCiAgICAuYW5ub3RhdGlvbiA+IC5hbm5vdGF0aW9uLWxhYmVsIHsKICAgICAgZm9udC1zaXplOiA1cHg7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIH0KICAgIC5hbm5vdGF0aW9uID4gLmFubm90YXRpb24tbGFiZWwuYW5ub3RhdGlvbi1lbGxpcHNpcyB7CiAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgIH0KCiAgICAvKiBIaWRlIGFubm90YXRpb25zIG9uIGV4cGFuZGVkIG1ldGEgbm9kZXMgc2luY2UgdGhleSdyZSByZWR1bmRhbnQuICovCiAgICAuZXhwYW5kZWQgPiAuaW4tYW5ub3RhdGlvbnMsCiAgICAuZXhwYW5kZWQgPiAub3V0LWFubm90YXRpb25zIHsKICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KCiAgICAvKiAtLS0gQW5ub3RhdGlvbjogQ29uc3RhbnQgLS0tICovCgogICAgLmNvbnN0YW50ID4gLmFubm90YXRpb24tbm9kZSA+IGVsbGlwc2UgewogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGZpbGw6IHdoaXRlOwogICAgICBzdHJva2U6ICM4NDg0ODQ7CiAgICB9CgogICAgLmNvbnN0YW50LnNlbGVjdGVkID4gLmFubm90YXRpb24tbm9kZSA+IGVsbGlwc2UgewogICAgICBmaWxsOiB3aGl0ZTsKICAgICAgc3Ryb2tlOiByZWQ7CiAgICB9CgogICAgLmNvbnN0YW50LmhpZ2hsaWdodGVkID4gLmFubm90YXRpb24tbm9kZSA+IGVsbGlwc2UgewogICAgICBzdHJva2Utd2lkdGg6IDEuNTsKICAgIH0KCiAgICAvKiAtLS0gQW5ub3RhdGlvbjogU3VtbWFyeSAtLS0gKi8KCiAgICAuc3VtbWFyeSA+IC5hbm5vdGF0aW9uLW5vZGUgPiBlbGxpcHNlIHsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBmaWxsOiAjZGI0NDM3OwogICAgICBzdHJva2U6ICNkYjQ0Mzc7CiAgICB9CgogICAgLnN1bW1hcnkuc2VsZWN0ZWQgPiAuYW5ub3RhdGlvbi1ub2RlID4gZWxsaXBzZSB7CiAgICAgIGZpbGw6ICNhNTI3MTQ7CiAgICAgIHN0cm9rZTogI2E1MjcxNDsKICAgIH0KCiAgICAuc3VtbWFyeS5oaWdobGlnaHRlZCA+IC5hbm5vdGF0aW9uLW5vZGUgPiBlbGxpcHNlIHsKICAgICAgc3Ryb2tlLXdpZHRoOiAxLjU7CiAgICB9CgogICAgLyogLS0tIEVkZ2UgLS0tICovCgogICAgLmVkZ2UgPiBwYXRoLmVkZ2VsaW5lIHsKICAgICAgZmlsbDogbm9uZTsKICAgICAgc3Ryb2tlOiAjYmJiOwogICAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7CiAgICAgIHN0cm9rZS13aWR0aDogMC43NTsKICAgIH0KCiAgICAuZWRnZSAuc2VsZWN0YWJsZWVkZ2UgewogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB9CgogICAgLnNlbGVjdGVkZWRnZSA+IHBhdGguZWRnZWxpbmUgewogICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIHN0cm9rZTogI2YwMDsKICAgIH0KCiAgICAuZWRnZS5zZWxlY3RlZGVkZ2UgdGV4dCB7CiAgICAgIGZpbGw6ICMwMDA7CiAgICB9CgogICAgLyogTGFiZWxzIHNob3dpbmcgdGVuc29yIHNoYXBlcyBvbiBlZGdlcyAqLwogICAgLmVkZ2UgPiB0ZXh0IHsKICAgICAgZm9udC1zaXplOiAzLjVweDsKICAgICAgZmlsbDogIzY2NjsKICAgIH0KCiAgICAuZGF0YWZsb3ctYXJyb3doZWFkIHsKICAgICAgZmlsbDogI2JiYjsKICAgIH0KCiAgICAucmVmZXJlbmNlLWFycm93aGVhZCB7CiAgICAgIGZpbGw6ICNmZmI3NGQ7CiAgICB9CgogICAgLnNlbGVjdGVkLWFycm93aGVhZCB7CiAgICAgIGZpbGw6ICNmMDA7CiAgICB9CgogICAgLmVkZ2UgLmNvbnRyb2wtZGVwIHsKICAgICAgc3Ryb2tlLWRhc2hhcnJheTogMiwgMjsKICAgIH0KCiAgICAvKiAtLS0gR3JvdXAgbm9kZSBleHBhbmQvY29sbGFwc2UgYnV0dG9uIC0tLSAqLwoKICAgIC8qIEhpZGVzIGV4cGFuZC9jb2xsYXBzZSBidXR0b25zIHdoZW4gYSBub2RlIGlzbid0IGV4cGFuZGVkIG9yIGhpZ2hsaWdodGVkLiBVc2luZwogICBpbmNyZWRpYmx5IHNtYWxsIG9wYWNpdHkgc28gdGhhdCB0aGUgYm91bmRpbmcgYm94IG9mIHRoZSA8Zz4gcGFyZW50IHN0aWxsIHRha2VzCiAgIHRoaXMgY29udGFpbmVyIGludG8gYWNjb3VudCBldmVuIHdoZW4gaXQgaXNuJ3QgdmlzaWJsZSAqLwogICAgLm5vZGU6bm90KC5oaWdobGlnaHRlZCk6bm90KC5leHBhbmRlZCkgPiAubm9kZXNoYXBlID4gLmJ1dHRvbmNvbnRhaW5lciB7CiAgICAgIG9wYWNpdHk6IDAuMDE7CiAgICB9CiAgICAubm9kZS5oaWdobGlnaHRlZCA+IC5ub2Rlc2hhcGUgPiAuYnV0dG9uY29udGFpbmVyIHsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgfQogICAgLmJ1dHRvbmNpcmNsZSB7CiAgICAgIGZpbGw6ICNlNzgxMWQ7CiAgICB9CiAgICAuYnV0dG9uY2lyY2xlOmhvdmVyIHsKICAgICAgZmlsbDogI2I5NjcxNzsKICAgIH0KICAgIC5leHBhbmRidXR0b24sCiAgICAuY29sbGFwc2VidXR0b24gewogICAgICBzdHJva2U6IHdoaXRlOwogICAgfQogICAgLyogRG8gbm90IGxldCB0aGUgcGF0aCBlbGVtZW50cyBpbiB0aGUgYnV0dG9uIHRha2UgcG9pbnRlciBmb2N1cyAqLwogICAgLm5vZGUgPiAubm9kZXNoYXBlID4gLmJ1dHRvbmNvbnRhaW5lciA+IC5leHBhbmRidXR0b24sCiAgICAubm9kZSA+IC5ub2Rlc2hhcGUgPiAuYnV0dG9uY29udGFpbmVyID4gLmNvbGxhcHNlYnV0dG9uIHsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB9CiAgICAvKiBPbmx5IHNob3cgdGhlIGV4cGFuZCBidXR0b24gd2hlbiBhIG5vZGUgaXMgY29sbGFwc2VkIGFuZCBvbmx5IHNob3cgdGhlCiAgIGNvbGxhcHNlIGJ1dHRvbiB3aGVuIGEgbm9kZSBpcyBleHBhbmRlZC4gKi8KICAgIC5ub2RlLmV4cGFuZGVkID4gLm5vZGVzaGFwZSA+IC5idXR0b25jb250YWluZXIgPiAuZXhwYW5kYnV0dG9uIHsKICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KICAgIC5ub2RlOm5vdCguZXhwYW5kZWQpID4gLm5vZGVzaGFwZSA+IC5idXR0b25jb250YWluZXIgPiAuY29sbGFwc2VidXR0b24gewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoKICAgIC5oZWFsdGgtcGlsbC1zdGF0cyB7CiAgICAgIGZvbnQtc2l6ZTogNHB4OwogICAgICB0ZXh0LWFuY2hvcjogbWlkZGxlOwogICAgfQoKICAgIC5oZWFsdGgtcGlsbCByZWN0IHsKICAgICAgZmlsdGVyOiB1cmwoI2hlYWx0aC1waWxsLXNoYWRvdyk7CiAgICAgIHJ4OiAzOwogICAgICByeTogMzsKICAgIH0KCiAgICAudGl0bGVDb250YWluZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRvcDogMjBweDsKICAgIH0KCiAgICAudGl0bGUsCiAgICAuYXV4VGl0bGUsCiAgICAuZnVuY3Rpb25MaWJyYXJ5VGl0bGUgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB9CgogICAgI21pbmltYXAgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHJpZ2h0OiAyMHB4OwogICAgICBib3R0b206IDIwcHg7CiAgICB9CgogICAgLmNvbnRleHQtbWVudSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UyZTJlMjsKICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIG1pbi13aWR0aDogMTUwcHg7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNGQ0ZDQ7CiAgICB9CgogICAgLmNvbnRleHQtbWVudSB1bCB7CiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKICAgICAgbWFyZ2luOiAwOwogICAgICBwYWRkaW5nOiAwOwogICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICB9CgogICAgLmNvbnRleHQtbWVudSB1bCBsaSB7CiAgICAgIHBhZGRpbmc6IDRweCAxNnB4OwogICAgfQoKICAgIC5jb250ZXh0LW1lbnUgdWwgbGk6aG92ZXIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjM5MTNlOwogICAgICBjb2xvcjogd2hpdGU7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJ0aXRsZUNvbnRhaW5lciI+CiAgICA8ZGl2IGlkPSJ0aXRsZSIgY2xhc3M9InRpdGxlIj5NYWluIEdyYXBoPC9kaXY+CiAgICA8ZGl2IGlkPSJhdXhUaXRsZSIgY2xhc3M9ImF1eFRpdGxlIj5BdXhpbGlhcnkgTm9kZXM8L2Rpdj4KICAgIDxkaXYgaWQ9ImZ1bmN0aW9uTGlicmFyeVRpdGxlIiBjbGFzcz0iZnVuY3Rpb25MaWJyYXJ5VGl0bGUiPkZ1bmN0aW9uczwvZGl2PgogIDwvZGl2PgogIDxzdmcgaWQ9InN2ZyI+CiAgICA8ZGVmcz4KICAgICAgPCEtLSBBcnJvdyBoZWFkcyBmb3IgcmVmZXJlbmNlIGVkZ2UgcGF0aHMgb2YgZGlmZmVyZW50IHByZWRlZmluZWQgc2l6ZXMgcGVyIGNvbG9yLiAtLT4KICAgICAgPHBhdGgKICAgICAgICBpZD0icmVmZXJlbmNlLWFycm93aGVhZC1wYXRoIgogICAgICAgIGQ9Ik0gMCwwIEwgMTAsNSBMIDAsMTAgQyAzLDcgMywzIDAsMCIKICAgICAgPjwvcGF0aD4KICAgICAgPG1hcmtlcgogICAgICAgIGNsYXNzPSJyZWZlcmVuY2UtYXJyb3doZWFkIgogICAgICAgIGlkPSJyZWZlcmVuY2UtYXJyb3doZWFkLXNtYWxsIgogICAgICAgIHZpZXdCb3g9IjAgMCAxMCAxMCIKICAgICAgICBtYXJrZXJXaWR0aD0iNSIKICAgICAgICBtYXJrZXJIZWlnaHQ9IjUiCiAgICAgICAgcmVmWD0iMiIKICAgICAgICByZWZZPSI1IgogICAgICAgIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIgogICAgICAgIG1hcmtlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3JlZmVyZW5jZS1hcnJvd2hlYWQtcGF0aCI+PC91c2U+CiAgICAgIDwvbWFya2VyPgogICAgICA8bWFya2VyCiAgICAgICAgY2xhc3M9InJlZmVyZW5jZS1hcnJvd2hlYWQiCiAgICAgICAgaWQ9InJlZmVyZW5jZS1hcnJvd2hlYWQtbWVkaXVtIgogICAgICAgIHZpZXdCb3g9IjAgMCAxMCAxMCIKICAgICAgICBtYXJrZXJXaWR0aD0iMTMiCiAgICAgICAgbWFya2VySGVpZ2h0PSIxMyIKICAgICAgICByZWZYPSIyIgogICAgICAgIHJlZlk9IjUiCiAgICAgICAgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiCiAgICAgICAgbWFya2VyVW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICA+CiAgICAgICAgPHVzZSB4bGluazpocmVmPSIjcmVmZXJlbmNlLWFycm93aGVhZC1wYXRoIj48L3VzZT4KICAgICAgPC9tYXJrZXI+CiAgICAgIDxtYXJrZXIKICAgICAgICBjbGFzcz0icmVmZXJlbmNlLWFycm93aGVhZCIKICAgICAgICBpZD0icmVmZXJlbmNlLWFycm93aGVhZC1sYXJnZSIKICAgICAgICB2aWV3Qm94PSIwIDAgMTAgMTAiCiAgICAgICAgbWFya2VyV2lkdGg9IjE2IgogICAgICAgIG1hcmtlckhlaWdodD0iMTYiCiAgICAgICAgcmVmWD0iMiIKICAgICAgICByZWZZPSI1IgogICAgICAgIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIgogICAgICAgIG1hcmtlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3JlZmVyZW5jZS1hcnJvd2hlYWQtcGF0aCI+PC91c2U+CiAgICAgIDwvbWFya2VyPgogICAgICA8bWFya2VyCiAgICAgICAgY2xhc3M9InJlZmVyZW5jZS1hcnJvd2hlYWQiCiAgICAgICAgaWQ9InJlZmVyZW5jZS1hcnJvd2hlYWQteGxhcmdlIgogICAgICAgIHZpZXdCb3g9IjAgMCAxMCAxMCIKICAgICAgICBtYXJrZXJXaWR0aD0iMjAiCiAgICAgICAgbWFya2VySGVpZ2h0PSIyMCIKICAgICAgICByZWZYPSIyIgogICAgICAgIHJlZlk9IjUiCiAgICAgICAgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiCiAgICAgICAgbWFya2VyVW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICA+CiAgICAgICAgPHVzZSB4bGluazpocmVmPSIjcmVmZXJlbmNlLWFycm93aGVhZC1wYXRoIj48L3VzZT4KICAgICAgPC9tYXJrZXI+CgogICAgICA8IS0tIEFycm93IGhlYWRzIGZvciBkYXRhZmxvdyBlZGdlIHBhdGhzIG9mIGRpZmZlcmVudCBwcmVkZWZpbmVkIHNpemVzIHBlciBjb2xvci4gLS0+CiAgICAgIDxwYXRoCiAgICAgICAgaWQ9ImRhdGFmbG93LWFycm93aGVhZC1wYXRoIgogICAgICAgIGQ9Ik0gMCwwIEwgMTAsNSBMIDAsMTAgQyAzLDcgMywzIDAsMCIKICAgICAgPjwvcGF0aD4KICAgICAgPG1hcmtlcgogICAgICAgIGNsYXNzPSJkYXRhZmxvdy1hcnJvd2hlYWQiCiAgICAgICAgaWQ9ImRhdGFmbG93LWFycm93aGVhZC1zbWFsbCIKICAgICAgICB2aWV3Qm94PSIwIDAgMTAgMTAiCiAgICAgICAgbWFya2VyV2lkdGg9IjUiCiAgICAgICAgbWFya2VySGVpZ2h0PSI1IgogICAgICAgIHJlZlg9IjIiCiAgICAgICAgcmVmWT0iNSIKICAgICAgICBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSIKICAgICAgICBtYXJrZXJVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgID4KICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNkYXRhZmxvdy1hcnJvd2hlYWQtcGF0aCI+PC91c2U+CiAgICAgIDwvbWFya2VyPgogICAgICA8bWFya2VyCiAgICAgICAgY2xhc3M9ImRhdGFmbG93LWFycm93aGVhZCIKICAgICAgICBpZD0iZGF0YWZsb3ctYXJyb3doZWFkLW1lZGl1bSIKICAgICAgICB2aWV3Qm94PSIwIDAgMTAgMTAiCiAgICAgICAgbWFya2VyV2lkdGg9IjEzIgogICAgICAgIG1hcmtlckhlaWdodD0iMTMiCiAgICAgICAgcmVmWD0iMiIKICAgICAgICByZWZZPSI1IgogICAgICAgIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIgogICAgICAgIG1hcmtlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2RhdGFmbG93LWFycm93aGVhZC1wYXRoIj48L3VzZT4KICAgICAgPC9tYXJrZXI+CiAgICAgIDxtYXJrZXIKICAgICAgICBjbGFzcz0iZGF0YWZsb3ctYXJyb3doZWFkIgogICAgICAgIGlkPSJkYXRhZmxvdy1hcnJvd2hlYWQtbGFyZ2UiCiAgICAgICAgdmlld0JveD0iMCAwIDEwIDEwIgogICAgICAgIG1hcmtlcldpZHRoPSIxNiIKICAgICAgICBtYXJrZXJIZWlnaHQ9IjE2IgogICAgICAgIHJlZlg9IjIiCiAgICAgICAgcmVmWT0iNSIKICAgICAgICBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSIKICAgICAgICBtYXJrZXJVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgID4KICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNkYXRhZmxvdy1hcnJvd2hlYWQtcGF0aCI+PC91c2U+CiAgICAgIDwvbWFya2VyPgogICAgICA8bWFya2VyCiAgICAgICAgY2xhc3M9ImRhdGFmbG93LWFycm93aGVhZCIKICAgICAgICBpZD0iZGF0YWZsb3ctYXJyb3doZWFkLXhsYXJnZSIKICAgICAgICB2aWV3Qm94PSIwIDAgMTAgMTAiCiAgICAgICAgbWFya2VyV2lkdGg9IjIwIgogICAgICAgIG1hcmtlckhlaWdodD0iMjAiCiAgICAgICAgcmVmWD0iMiIKICAgICAgICByZWZZPSI1IgogICAgICAgIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIgogICAgICAgIG1hcmtlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2RhdGFmbG93LWFycm93aGVhZC1wYXRoIj48L3VzZT4KICAgICAgPC9tYXJrZXI+CgogICAgICA8IS0tIEFycm93IGhlYWQgZm9yIGFubm90YXRpb24gZWRnZSBwYXRocy4gLS0+CiAgICAgIDxtYXJrZXIKICAgICAgICBpZD0iYW5ub3RhdGlvbi1hcnJvd2hlYWQiCiAgICAgICAgbWFya2VyV2lkdGg9IjUiCiAgICAgICAgbWFya2VySGVpZ2h0PSI1IgogICAgICAgIHJlZlg9IjUiCiAgICAgICAgcmVmWT0iMi41IgogICAgICAgIG9yaWVudD0iYXV0byIKICAgICAgPgogICAgICAgIDxwYXRoIGQ9Ik0gMCwwIEwgNSwyLjUgTCAwLDUgTCAwLDAiPjwvcGF0aD4KICAgICAgPC9tYXJrZXI+CiAgICAgIDxtYXJrZXIKICAgICAgICBpZD0iYW5ub3RhdGlvbi1hcnJvd2hlYWQtZmFkZWQiCiAgICAgICAgbWFya2VyV2lkdGg9IjUiCiAgICAgICAgbWFya2VySGVpZ2h0PSI1IgogICAgICAgIHJlZlg9IjUiCiAgICAgICAgcmVmWT0iMi41IgogICAgICAgIG9yaWVudD0iYXV0byIKICAgICAgPgogICAgICAgIDxwYXRoIGQ9Ik0gMCwwIEwgNSwyLjUgTCAwLDUgTCAwLDAiPjwvcGF0aD4KICAgICAgPC9tYXJrZXI+CiAgICAgIDxtYXJrZXIKICAgICAgICBpZD0icmVmLWFubm90YXRpb24tYXJyb3doZWFkIgogICAgICAgIG1hcmtlcldpZHRoPSI1IgogICAgICAgIG1hcmtlckhlaWdodD0iNSIKICAgICAgICByZWZYPSIwIgogICAgICAgIHJlZlk9IjIuNSIKICAgICAgICBvcmllbnQ9ImF1dG8iCiAgICAgID4KICAgICAgICA8cGF0aCBkPSJNIDUsMCBMIDAsMi41IEwgNSw1IEwgNSwwIj48L3BhdGg+CiAgICAgIDwvbWFya2VyPgogICAgICA8bWFya2VyCiAgICAgICAgaWQ9InJlZi1hbm5vdGF0aW9uLWFycm93aGVhZC1mYWRlZCIKICAgICAgICBtYXJrZXJXaWR0aD0iNSIKICAgICAgICBtYXJrZXJIZWlnaHQ9IjUiCiAgICAgICAgcmVmWD0iMCIKICAgICAgICByZWZZPSIyLjUiCiAgICAgICAgb3JpZW50PSJhdXRvIgogICAgICA+CiAgICAgICAgPHBhdGggZD0iTSA1LDAgTCAwLDIuNSBMIDUsNSBMIDUsMCI+PC9wYXRoPgogICAgICA8L21hcmtlcj4KICAgICAgPCEtLSBUZW1wbGF0ZSBmb3IgYW4gT3Agbm9kZSBlbGxpcHNlLiAtLT4KICAgICAgPGVsbGlwc2UKICAgICAgICBpZD0ib3Atbm9kZS1zdGFtcCIKICAgICAgICByeD0iNy41IgogICAgICAgIHJ5PSIzIgogICAgICAgIHN0cm9rZT0iaW5oZXJpdCIKICAgICAgICBmaWxsPSJpbmhlcml0IgogICAgICA+PC9lbGxpcHNlPgogICAgICA8IS0tIFRlbXBsYXRlIGZvciBhbiBPcCBub2RlIGFubm90YXRpb24gZWxsaXBzZSAoc21hbGxlcikuIC0tPgogICAgICA8ZWxsaXBzZQogICAgICAgIGlkPSJvcC1ub2RlLWFubm90YXRpb24tc3RhbXAiCiAgICAgICAgcng9IjUiCiAgICAgICAgcnk9IjIiCiAgICAgICAgc3Ryb2tlPSJpbmhlcml0IgogICAgICAgIGZpbGw9ImluaGVyaXQiCiAgICAgID48L2VsbGlwc2U+CiAgICAgIDwhLS0gVmVydGljYWxseSBzdGFja2VkIHNlcmllcyBvZiBPcCBub2RlcyB3aGVuIHVuZXhwYW5kZWQuIC0tPgogICAgICA8ZyBpZD0ib3Atc2VyaWVzLXZlcnRpY2FsLXN0YW1wIj4KICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLXN0YW1wIiB4PSI4IiB5PSI5Ij48L3VzZT4KICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLXN0YW1wIiB4PSI4IiB5PSI2Ij48L3VzZT4KICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLXN0YW1wIiB4PSI4IiB5PSIzIj48L3VzZT4KICAgICAgPC9nPgogICAgICA8IS0tIEhvcml6b250YWxseSBzdGFja2VkIHNlcmllcyBvZiBPcCBub2RlcyB3aGVuIHVuZXhwYW5kZWQuIC0tPgogICAgICA8ZyBpZD0ib3Atc2VyaWVzLWhvcml6b250YWwtc3RhbXAiPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI29wLW5vZGUtc3RhbXAiIHg9IjE2IiB5PSI0Ij48L3VzZT4KICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLXN0YW1wIiB4PSIxMiIgeT0iNCI+PC91c2U+CiAgICAgICAgPHVzZSB4bGluazpocmVmPSIjb3Atbm9kZS1zdGFtcCIgeD0iOCIgeT0iNCI+PC91c2U+CiAgICAgIDwvZz4KICAgICAgPCEtLSBIb3Jpem9udGFsbHkgc3RhY2tlZCBzZXJpZXMgb2YgT3Agbm9kZXMgZm9yIGFubm90YXRpb24uIC0tPgogICAgICA8ZyBpZD0ib3Atc2VyaWVzLWFubm90YXRpb24tc3RhbXAiPgogICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI29wLW5vZGUtYW5ub3RhdGlvbi1zdGFtcCIgeD0iOSIgeT0iMiI+PC91c2U+CiAgICAgICAgPHVzZSB4bGluazpocmVmPSIjb3Atbm9kZS1hbm5vdGF0aW9uLXN0YW1wIiB4PSI3IiB5PSIyIj48L3VzZT4KICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLWFubm90YXRpb24tc3RhbXAiIHg9IjUiIHk9IjIiPjwvdXNlPgogICAgICA8L2c+CiAgICAgIDxzdmcKICAgICAgICBpZD0ic3VtbWFyeS1pY29uIgogICAgICAgIGZpbGw9IiM4NDg0ODQiCiAgICAgICAgaGVpZ2h0PSIxMiIKICAgICAgICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgICAgICAgd2lkdGg9IjEyIgogICAgICA+CiAgICAgICAgPHBhdGgKICAgICAgICAgIGQ9Ik0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNOSAxN0g3di03aDJ2N3ptNCAwaC0yVjdoMnYxMHptNCAwaC0ydi00aDJ2NHoiCiAgICAgICAgPjwvcGF0aD4KICAgICAgPC9zdmc+CgogICAgICA8IS0tIEhhdGNoIHBhdHRlcm5zIGZvciBmYWRlZCBvdXQgbm9kZXMuIC0tPgogICAgICA8cGF0dGVybgogICAgICAgIGlkPSJyZWN0SGF0Y2giCiAgICAgICAgcGF0dGVyblRyYW5zZm9ybT0icm90YXRlKDQ1IDAgMCkiCiAgICAgICAgd2lkdGg9IjUiCiAgICAgICAgaGVpZ2h0PSI1IgogICAgICAgIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgID4KICAgICAgICA8bGluZSB4MT0iMCIgeTE9IjAiIHgyPSIwIiB5Mj0iNSIgc3R5bGU9InN0cm9rZS13aWR0aDogMSI+PC9saW5lPgogICAgICA8L3BhdHRlcm4+CiAgICAgIDxwYXR0ZXJuCiAgICAgICAgaWQ9ImVsbGlwc2VIYXRjaCIKICAgICAgICBwYXR0ZXJuVHJhbnNmb3JtPSJyb3RhdGUoNDUgMCAwKSIKICAgICAgICB3aWR0aD0iMiIKICAgICAgICBoZWlnaHQ9IjIiCiAgICAgICAgcGF0dGVyblVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgPgogICAgICAgIDxsaW5lIHgxPSIwIiB5MT0iMCIgeDI9IjAiIHkyPSIyIiBzdHlsZT0ic3Ryb2tlLXdpZHRoOiAxIj48L2xpbmU+CiAgICAgIDwvcGF0dGVybj4KCiAgICAgIDwhLS0gQSBzaGFkb3cgZm9yIGhlYWx0aCBwaWxscy4gLS0+CiAgICAgIDxmaWx0ZXIKICAgICAgICBpZD0iaGVhbHRoLXBpbGwtc2hhZG93IgogICAgICAgIHg9Ii00MCUiCiAgICAgICAgeT0iLTQwJSIKICAgICAgICB3aWR0aD0iMTgwJSIKICAgICAgICBoZWlnaHQ9IjE4MCUiCiAgICAgID4KICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgaW49IlNvdXJjZUFscGhhIiBzdGREZXZpYXRpb249IjAuOCI+PC9mZUdhdXNzaWFuQmx1cj4KICAgICAgICA8ZmVPZmZzZXQgZHg9IjAiIGR5PSIwIiByZXN1bHQ9Im9mZnNldGJsdXIiPjwvZmVPZmZzZXQ+CiAgICAgICAgPGZlRmxvb2QgZmxvb2QtY29sb3I9IiMwMDAwMDAiPjwvZmVGbG9vZD4KICAgICAgICA8ZmVDb21wb3NpdGUgaW4yPSJvZmZzZXRibHVyIiBvcGVyYXRvcj0iaW4iPjwvZmVDb21wb3NpdGU+CiAgICAgICAgPGZlTWVyZ2U+CiAgICAgICAgICA8ZmVNZXJnZU5vZGU+PC9mZU1lcmdlTm9kZT4KICAgICAgICAgIDxmZU1lcmdlTm9kZSBpbj0iU291cmNlR3JhcGhpYyI+PC9mZU1lcmdlTm9kZT4KICAgICAgICA8L2ZlTWVyZ2U+CiAgICAgIDwvZmlsdGVyPgogICAgPC9kZWZzPgogICAgPCEtLSBNYWtlIGEgbGFyZ2UgcmVjdGFuZ2xlIHRoYXQgZmlsbHMgdGhlIHN2ZyBzcGFjZSBzbyB0aGF0CiAgem9vbSBldmVudHMgZ2V0IGNhcHR1cmVkIG9uIHNhZmFyaSAtLT4KICAgIDxyZWN0IGZpbGw9IndoaXRlIiB3aWR0aD0iMTAwMDAiIGhlaWdodD0iMTAwMDAiPjwvcmVjdD4KICAgIDxnIGlkPSJyb290Ij48L2c+CiAgPC9zdmc+CiAgPHRmLWdyYXBoLW1pbmltYXAgaWQ9Im1pbmltYXAiPjwvdGYtZ3JhcGgtbWluaW1hcD4KICA8ZGl2IGlkPSJjb250ZXh0TWVudSIgY2xhc3M9ImNvbnRleHQtbWVudSI+PC9kaXY+CmA7bGV0IFVadD1jbGFzcyBleHRlbmRzKGNyKGdsKHdlKSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl96b29tZWQ9ITEsdGhpcy5fem9vbVN0YXJ0Q29vcmRzPW51bGwsdGhpcy5fem9vbVRyYW5zZm9ybT1udWxsLHRoaXMuX21heFpvb21EaXN0YW5jZUZvckNsaWNrPTIwLHRoaXMuX25vZGVHcm91cEluZGV4PXt9LHRoaXMuX2Fubm90YXRpb25Hcm91cEluZGV4PXt9LHRoaXMuX2VkZ2VHcm91cEluZGV4PXt9LHRoaXMubWF4TWV0YW5vZGVMYWJlbExlbmd0aEZvbnRTaXplPTksdGhpcy5taW5NZXRhbm9kZUxhYmVsTGVuZ3RoRm9udFNpemU9Nix0aGlzLm1heE1ldGFub2RlTGFiZWxMZW5ndGhMYXJnZUZvbnQ9MTEsdGhpcy5tYXhNZXRhbm9kZUxhYmVsTGVuZ3RoPTE4fWdldE5vZGUodCl7cmV0dXJuIHRoaXMucmVuZGVySGllcmFyY2h5LmdldFJlbmRlck5vZGVCeU5hbWUodCl9aXNOb2RlRXhwYW5kZWQodCl7cmV0dXJuIHQuZXhwYW5kZWR9c2V0Tm9kZUV4cGFuZGVkKHQpe3RoaXMuX2J1aWxkKHRoaXMucmVuZGVySGllcmFyY2h5KSx0aGlzLl91cGRhdGVMYWJlbHMoIXRoaXMuX3pvb21lZCl9cGFuVG9Ob2RlKHQpeyhmdW5jdGlvbiBlKHQsbixpLHIpe2NvbnN0IG89RHUobikuc2VsZWN0KGBbZGF0YS1uYW1lPSIke3R9Il1gKS5ub2RlKCk7aWYoIW8pcmV0dXJuIGNvbnNvbGUud2FybihgcGFuVG9Ob2RlKCkgZmFpbGVkIGZvciBub2RlIG5hbWUgIiR7dH0iYCksITE7bGV0IGE9by5nZXRCQm94KCkscz1vLmdldFNjcmVlbkNUTSgpLGw9bi5jcmVhdGVTVkdQb2ludCgpLGM9bi5jcmVhdGVTVkdQb2ludCgpO2wueD1hLngsbC55PWEueSxjLng9YS54K2Eud2lkdGgsYy55PWEueSthLmhlaWdodCxsPWwubWF0cml4VHJhbnNmb3JtKHMpLGM9Yy5tYXRyaXhUcmFuc2Zvcm0ocyk7bGV0IHU9KHQsZSxuLGkpPT4hKHQ+biYmZTxpKSxoPW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Y29uc3QgZD1oLnRvcCtoLmhlaWdodC0xNTA7aWYodShsLngsYy54LGgubGVmdCxoLmxlZnQraC53aWR0aC0zMjApfHx1KGwueSxjLnksaC50b3AsZCkpe2xldCB0PWgubGVmdCtoLndpZHRoLzItKGwueCtjLngpLzIsZT1oLnRvcCtoLmhlaWdodC8yLShsLnkrYy55KS8yO2NvbnN0IGk9WU4obik7cmV0dXJuIER1KG4pLnRyYW5zaXRpb24oKS5kdXJhdGlvbig1MDApLmNhbGwoci50cmFuc2xhdGVCeSx0L2kuayxlL2kuayksITB9cmV0dXJuITF9KSh0LHRoaXMuJC5zdmcsMCx0aGlzLl96b29tKSYmKHRoaXMuX3pvb21lZD0hMCl9Z2V0R3JhcGhTdmdSb290KCl7cmV0dXJuIHRoaXMuJC5zdmd9Z2V0Q29udGV4dE1lbnUoKXtyZXR1cm4gdGhpcy4kLmNvbnRleHRNZW51fV9yZXNldFN0YXRlKCl7dGhpcy5fbm9kZUdyb3VwSW5kZXg9e30sdGhpcy5fYW5ub3RhdGlvbkdyb3VwSW5kZXg9e30sdGhpcy5fZWRnZUdyb3VwSW5kZXg9e30sdGhpcy5fdXBkYXRlTGFiZWxzKCExKSxEdSh0aGlzLiQuc3ZnKS5zZWxlY3QoIiNyb290Iikuc2VsZWN0QWxsKCIqIikucmVtb3ZlKCksQVp0KHRoaXMuJC5zdmcpfV9idWlsZCh0KXt0aGlzLnRlbXBsYXRlSW5kZXg9dC5oaWVyYXJjaHkuZ2V0VGVtcGxhdGVJbmRleCgpLGQkdCgidGYtZ3JhcGgtc2NlbmUgKGxheW91dCk6IixmdW5jdGlvbigpe0dLdCh0LnJvb3QpfS5iaW5kKHRoaXMpLEJBdC5SRU5ERVJfU0NFTkVfTEFZT1VUKSxkJHQoInRmLWdyYXBoLXNjZW5lIChidWlsZCBzY2VuZSk6IixmdW5jdGlvbigpe0JadChEdSh0aGlzLiQucm9vdCksdC5yb290LHRoaXMpLChmdW5jdGlvbiBlKHQsbil7RHUodCkub24oImNsaWNrIiwoKCk9PntuLmZpcmUoImdyYXBoLXNlbGVjdCIpfSkpfSkodGhpcy4kLnN2Zyx0aGlzKSx0aGlzLl91cGRhdGVJbnB1dFRyYWNlKCl9LmJpbmQodGhpcyksQkF0LlJFTkRFUl9TQ0VORV9CVUlMRF9TQ0VORSksc2V0VGltZW91dChmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZUhlYWx0aFBpbGxzKHRoaXMubm9kZU5hbWVzVG9IZWFsdGhQaWxscyx0aGlzLmhlYWx0aFBpbGxTdGVwSW5kZXgpLHRoaXMubWluaW1hcC51cGRhdGUoKX0uYmluZCh0aGlzKSxVS3QuYW5pbWF0aW9uLmR1cmF0aW9uKX1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5fem9vbT1uSSgpLm9uKCJlbmQiLGZ1bmN0aW9uKCl7dGhpcy5fem9vbVN0YXJ0Q29vcmRzJiYoTWF0aC5zcXJ0KE1hdGgucG93KHRoaXMuX3pvb21TdGFydENvb3Jkcy54LXRoaXMuX3pvb21UcmFuc2Zvcm0ueCwyKStNYXRoLnBvdyh0aGlzLl96b29tU3RhcnRDb29yZHMueS10aGlzLl96b29tVHJhbnNmb3JtLnksMikpPHRoaXMuX21heFpvb21EaXN0YW5jZUZvckNsaWNrP3RoaXMuX2ZpcmVFbmFibGVDbGljaygpOnNldFRpbWVvdXQodGhpcy5fZmlyZUVuYWJsZUNsaWNrLmJpbmQodGhpcyksNTApKTt0aGlzLl96b29tU3RhcnRDb29yZHM9bnVsbH0uYmluZCh0aGlzKSkub24oInpvb20iLGZ1bmN0aW9uKCl7dGhpcy5fem9vbVRyYW5zZm9ybT1NdS50cmFuc2Zvcm0sdGhpcy5fem9vbVN0YXJ0Q29vcmRzfHwodGhpcy5fem9vbVN0YXJ0Q29vcmRzPXRoaXMuX3pvb21UcmFuc2Zvcm0sdGhpcy5maXJlKCJkaXNhYmxlLWNsaWNrIikpLHRoaXMuX3pvb21lZD0hMCxEdSh0aGlzLiQucm9vdCkuYXR0cigidHJhbnNmb3JtIixNdS50cmFuc2Zvcm0pLHRoaXMubWluaW1hcC56b29tKE11LnRyYW5zZm9ybSl9LmJpbmQodGhpcykpLER1KHRoaXMuJC5zdmcpLmNhbGwodGhpcy5fem9vbSkub24oImRibGNsaWNrLnpvb20iLG51bGwpLER1KHdpbmRvdykub24oInJlc2l6ZSIsZnVuY3Rpb24oKXt0aGlzLm1pbmltYXAuem9vbSgpfS5iaW5kKHRoaXMpKSx0aGlzLm1pbmltYXA9dGhpcy4kLm1pbmltYXAuaW5pdCh0aGlzLiQuc3ZnLHRoaXMuJC5yb290LHRoaXMuX3pvb20sVUt0Lm1pbmltYXAuc2l6ZSxVS3Quc3Vic2NlbmUubWV0YS5sYWJlbEhlaWdodCl9YXR0YWNoZWQoKXt0aGlzLnNldCgiX2lzQXR0YWNoZWQiLCEwKX1kZXRhY2hlZCgpe3RoaXMuc2V0KCJfaXNBdHRhY2hlZCIsITEpfV9yZW5kZXJIaWVyYXJjaHlDaGFuZ2VkKCl7dmFyIHQ9dGhpcy5yZW5kZXJIaWVyYXJjaHk7dGhpcy5faGFzUmVuZGVySGllcmFyY2h5QmVlbkZpdE9uY2U9ITEsdGhpcy5fcmVzZXRTdGF0ZSgpLHRoaXMuX2J1aWxkKHQpfV9hbmltYXRlQW5kRml0KCl7IXRoaXMuX2hhc1JlbmRlckhpZXJhcmNoeUJlZW5GaXRPbmNlJiZ0aGlzLl9pc0F0dGFjaGVkJiZzZXRUaW1lb3V0KHRoaXMuZml0LmJpbmQodGhpcyksVUt0LmFuaW1hdGlvbi5kdXJhdGlvbil9X3VwZGF0ZUxhYmVscyh0KXt2YXIgZT10aGlzLiQkKCIudGl0bGUiKSxuPWUuc3R5bGUsaT10aGlzLiQkKCIuYXV4VGl0bGUiKSxyPWkuc3R5bGUsbz10aGlzLiQkKCIuZnVuY3Rpb25MaWJyYXJ5VGl0bGUiKS5zdHlsZTtjb25zdCBhPUR1KHRoaXMuJC5zdmcpO3ZhciBzPWEuc2VsZWN0KCIuIitaS3QuU2NlbmUuR1JPVVArIj4uIitaS3QuU2NlbmUuQ09SRSkubm9kZSgpO2lmKHQmJnMmJnRoaXMucHJvZ3Jlc3MmJjEwMD09PXRoaXMucHJvZ3Jlc3MudmFsdWUpe3ZhciBsPWEuc2VsZWN0KCIuIitaS3QuU2NlbmUuR1JPVVArIj4uIitaS3QuU2NlbmUuSU5FWFRSQUNUKS5ub2RlKCl8fGEuc2VsZWN0KCIuIitaS3QuU2NlbmUuR1JPVVArIj4uIitaS3QuU2NlbmUuT1VURVhUUkFDVCkubm9kZSgpLGM9cy5nZXRDVE0oKS5lLHU9bD9sLmdldENUTSgpLmU6bnVsbDtuLmRpc3BsYXk9ImlubGluZSIsbi5sZWZ0PWMrInB4IixudWxsIT09dSYmdSE9PWM/KHIuZGlzcGxheT0iaW5saW5lIix1PU1hdGgubWF4KGMrZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCx1KSxyLmxlZnQ9dSsicHgiKTpyLmRpc3BsYXk9Im5vbmUiO2xldCB0PWEuc2VsZWN0KCIuIitaS3QuU2NlbmUuR1JPVVArIj4uIitaS3QuU2NlbmUuRlVOQ1RJT05fTElCUkFSWSkubm9kZSgpLGg9dD90LmdldENUTSgpLmU6bnVsbDtudWxsIT09aCYmaCE9PXU/KG8uZGlzcGxheT0iaW5saW5lIixoPU1hdGgubWF4KHUraS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCxoKSxvLmxlZnQ9aCsicHgiKTpvLmRpc3BsYXk9Im5vbmUifWVsc2Ugbi5kaXNwbGF5PSJub25lIixyLmRpc3BsYXk9Im5vbmUiLG8uZGlzcGxheT0ibm9uZSJ9bm9kZUNvbG9yc0NoYW5nZWQoKXtudWxsIT10aGlzLnJlbmRlckhpZXJhcmNoeSYmKHRoaXMudGVtcGxhdGVJbmRleD10aGlzLnJlbmRlckhpZXJhcmNoeS5oaWVyYXJjaHkuZ2V0VGVtcGxhdGVJbmRleCgpLENlLmV4cG9ydHMuZWFjaCh0aGlzLl9ub2RlR3JvdXBJbmRleCwoKHQsZSk9Pnt0aGlzLl91cGRhdGVOb2RlU3RhdGUoZSl9KSksdGhpcy5taW5pbWFwLnVwZGF0ZSgpKX1maXQoKXt0aGlzLl9oYXNSZW5kZXJIaWVyYXJjaHlCZWVuRml0T25jZT0hMCwoZnVuY3Rpb24gdChlLG4saSxyKXtsZXQgbz1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGE9bnVsbDt0cnl7aWYoYT1uLmdldEJCb3goKSwwPT09YS53aWR0aClyZXR1cm59Y2F0Y2godCl7cmV0dXJufWxldCBzPS45Kk1hdGgubWluKG8ud2lkdGgvYS53aWR0aCxvLmhlaWdodC9hLmhlaWdodCwyKSxsPVVLdC5ncmFwaDtjb25zdCBjPXFOLnNjYWxlKHMpLnRyYW5zbGF0ZShsLnBhZGRpbmcucGFkZGluZ0xlZnQsbC5wYWRkaW5nLnBhZGRpbmdUb3ApO0R1KGUpLnRyYW5zaXRpb24oKS5kdXJhdGlvbig1MDApLmNhbGwoaS50cmFuc2Zvcm0sYykub24oImVuZC5maXR0ZWQiLCgoKT0+e2kub24oImVuZC5maXR0ZWQiLG51bGwpLHIoKX0pKX0pKHRoaXMuJC5zdmcsdGhpcy4kLnJvb3QsdGhpcy5fem9vbSxmdW5jdGlvbigpe3RoaXMuX3pvb21lZD0hMX0uYmluZCh0aGlzKSl9Z2V0SW1hZ2VCbG9iKCl7cmV0dXJuIHRoaXMubWluaW1hcC5nZXRJbWFnZUJsb2IoKX1pc05vZGVTZWxlY3RlZCh0KXtyZXR1cm4gdD09PXRoaXMuc2VsZWN0ZWROb2RlfWlzTm9kZUhpZ2hsaWdodGVkKHQpe3JldHVybiB0PT09dGhpcy5oaWdobGlnaHRlZE5vZGV9YWRkQW5ub3RhdGlvbkdyb3VwKHQsZSxuKXt2YXIgaT10Lm5vZGUubmFtZTt0aGlzLl9hbm5vdGF0aW9uR3JvdXBJbmRleFtpXT10aGlzLl9hbm5vdGF0aW9uR3JvdXBJbmRleFtpXXx8e30sdGhpcy5fYW5ub3RhdGlvbkdyb3VwSW5kZXhbaV1bZS5ub2RlLm5hbWVdPW59Z2V0QW5ub3RhdGlvbkdyb3Vwc0luZGV4KHQpe3JldHVybiB0aGlzLl9hbm5vdGF0aW9uR3JvdXBJbmRleFt0XX1yZW1vdmVBbm5vdGF0aW9uR3JvdXAodCxlKXtkZWxldGUgdGhpcy5fYW5ub3RhdGlvbkdyb3VwSW5kZXhbdC5ub2RlLm5hbWVdW2Uubm9kZS5uYW1lXX1hZGROb2RlR3JvdXAodCxlKXt0aGlzLl9ub2RlR3JvdXBJbmRleFt0XT1lfWdldE5vZGVHcm91cCh0KXtyZXR1cm4gdGhpcy5fbm9kZUdyb3VwSW5kZXhbdF19cmVtb3ZlTm9kZUdyb3VwKHQpe2RlbGV0ZSB0aGlzLl9ub2RlR3JvdXBJbmRleFt0XX1hZGRFZGdlR3JvdXAodCxlKXt0aGlzLl9lZGdlR3JvdXBJbmRleFt0XT1lfWdldEVkZ2VHcm91cCh0KXtyZXR1cm4gdGhpcy5fZWRnZUdyb3VwSW5kZXhbdF19X3VwZGF0ZUhlYWx0aFBpbGxzKCl7IShmdW5jdGlvbiB0KGUsbixpKXtpZighbilyZXR1cm47bGV0IHI9MTtEdShlKS5zZWxlY3RBbGwoImcubm9kZXNoYXBlIikuZWFjaCgoZnVuY3Rpb24odCl7Y29uc3QgZT1uW3Qubm9kZS5uYW1lXTtpWnQodGhpcyxlP2VbaV06bnVsbCx0LHIrKyl9KSl9KSh0aGlzLiQuc3ZnLHRoaXMubm9kZU5hbWVzVG9IZWFsdGhQaWxscyx0aGlzLmhlYWx0aFBpbGxTdGVwSW5kZXgpfV91cGRhdGVOb2RlU3RhdGUodCl7dmFyIGU9dGhpcy5nZXROb2RlKHQpLG49dGhpcy5nZXROb2RlR3JvdXAodCk7KG4mJkxadChuLGUsdGhpcyksZS5ub2RlLnR5cGU9PT1BJHQuTUVUQSYmZS5ub2RlLmFzc29jaWF0ZWRGdW5jdGlvbiYmIWUuaXNMaWJyYXJ5RnVuY3Rpb24pJiZMWnQoRHUoIi4iK1pLdC5TY2VuZS5HUk9VUCsiPi4iK1pLdC5TY2VuZS5GVU5DVElPTl9MSUJSQVJZKycgZ1tkYXRhLW5hbWU9IicrKFQkdCtlLm5vZGUuYXNzb2NpYXRlZEZ1bmN0aW9uKSsnIl0nKSxlLHRoaXMpO3ZhciBpPXRoaXMuZ2V0QW5ub3RhdGlvbkdyb3Vwc0luZGV4KHQpO0NlLmV4cG9ydHMuZWFjaChpLCgodCxuKT0+e0xadCh0LGUsdGhpcyxaS3QuQW5ub3RhdGlvbi5OT0RFKX0pKX1fc2VsZWN0ZWROb2RlQ2hhbmdlZCh0LGUpe2lmKHQhPT1lJiYoZSYmdGhpcy5fdXBkYXRlTm9kZVN0YXRlKGUpLHQpKXt0aGlzLm1pbmltYXAudXBkYXRlKCk7Zm9yKHZhciBuLGk9dGhpcy5yZW5kZXJIaWVyYXJjaHkuaGllcmFyY2h5Lm5vZGUodCkscj1bXTtudWxsIT1pLnBhcmVudE5vZGUmJmkucGFyZW50Tm9kZS5uYW1lIT1FJHQ7KXIucHVzaCgoaT1pLnBhcmVudE5vZGUpLm5hbWUpO0NlLmV4cG9ydHMuZm9yRWFjaFJpZ2h0KHIsKHQ9Pnt0aGlzLnJlbmRlckhpZXJhcmNoeS5idWlsZFN1YmhpZXJhcmNoeSh0KTt2YXIgZT10aGlzLnJlbmRlckhpZXJhcmNoeS5nZXRSZW5kZXJOb2RlQnlOYW1lKHQpO2Uubm9kZS5pc0dyb3VwTm9kZSYmIWUuZXhwYW5kZWQmJihlLmV4cGFuZGVkPSEwLG58fChuPWUpKX0pKSxuJiYodGhpcy5zZXROb2RlRXhwYW5kZWQobiksdGhpcy5fem9vbWVkPSEwKSx0JiZ0aGlzLl91cGRhdGVOb2RlU3RhdGUodCksc2V0VGltZW91dCgoKCk9Pnt0aGlzLnBhblRvTm9kZSh0KX0pLFVLdC5hbmltYXRpb24uZHVyYXRpb24pfX1faGlnaGxpZ2h0ZWROb2RlQ2hhbmdlZCh0LGUpe3QhPT1lJiYodCYmdGhpcy5fdXBkYXRlTm9kZVN0YXRlKHQpLGUmJnRoaXMuX3VwZGF0ZU5vZGVTdGF0ZShlKSl9X29uWm9vbUNoYW5nZWQoKXt0aGlzLl91cGRhdGVMYWJlbHMoIXRoaXMuX3pvb21lZCl9X2ZpcmVFbmFibGVDbGljaygpe3RoaXMuZmlyZSgiZW5hYmxlLWNsaWNrIil9X3VwZGF0ZUlucHV0VHJhY2UoKXtOWnQodGhpcy5nZXRHcmFwaFN2Z1Jvb3QoKSx0aGlzLnJlbmRlckhpZXJhcmNoeSx0aGlzLnNlbGVjdGVkTm9kZSx0aGlzLnRyYWNlSW5wdXRzKX19O1VadC50ZW1wbGF0ZT1WWnQsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsQUt0KV0sVVp0LnByb3RvdHlwZSwicmVuZGVySGllcmFyY2h5Iix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFVadC5wcm90b3R5cGUsIm5hbWUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sVVp0LnByb3RvdHlwZSwiY29sb3JCeSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFVadC5wcm90b3R5cGUsInRyYWNlSW5wdXRzIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sVVp0LnByb3RvdHlwZSwiX2hhc1JlbmRlckhpZXJhcmNoeUJlZW5GaXRPbmNlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sVVp0LnByb3RvdHlwZSwiX2lzQXR0YWNoZWQiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sVVp0LnByb3RvdHlwZSwiX3pvb20iLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsb2JzZXJ2ZXI6Il9oaWdobGlnaHRlZE5vZGVDaGFuZ2VkIn0pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxVWnQucHJvdG90eXBlLCJoaWdobGlnaHRlZE5vZGUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsb2JzZXJ2ZXI6Il9zZWxlY3RlZE5vZGVDaGFuZ2VkIn0pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxVWnQucHJvdG90eXBlLCJzZWxlY3RlZE5vZGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sVVp0LnByb3RvdHlwZSwiaGFuZGxlRWRnZVNlbGVjdGVkIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixvYnNlcnZlcjoiX29uWm9vbUNoYW5nZWQifSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxVWnQucHJvdG90eXBlLCJfem9vbWVkIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFVadC5wcm90b3R5cGUsIl96b29tU3RhcnRDb29yZHMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sVVp0LnByb3RvdHlwZSwiX3pvb21UcmFuc2Zvcm0iLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sVVp0LnByb3RvdHlwZSwiX21heFpvb21EaXN0YW5jZUZvckNsaWNrIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKV0sVVp0LnByb3RvdHlwZSwidGVtcGxhdGVJbmRleCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxVWnQucHJvdG90eXBlLCJfbm9kZUdyb3VwSW5kZXgiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sVVp0LnByb3RvdHlwZSwiX2Fubm90YXRpb25Hcm91cEluZGV4Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFVadC5wcm90b3R5cGUsIl9lZGdlR3JvdXBJbmRleCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxVWnQucHJvdG90eXBlLCJtYXhNZXRhbm9kZUxhYmVsTGVuZ3RoRm9udFNpemUiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sVVp0LnByb3RvdHlwZSwibWluTWV0YW5vZGVMYWJlbExlbmd0aEZvbnRTaXplIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLFVadC5wcm90b3R5cGUsIm1heE1ldGFub2RlTGFiZWxMZW5ndGhMYXJnZUZvbnQiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sVVp0LnByb3RvdHlwZSwibWF4TWV0YW5vZGVMYWJlbExlbmd0aCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxVWnQucHJvdG90eXBlLCJwcm9ncmVzcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sVVp0LnByb3RvdHlwZSwibm9kZUNvbnRleHRNZW51SXRlbXMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sVVp0LnByb3RvdHlwZSwibm9kZU5hbWVzVG9IZWFsdGhQaWxscyIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxVWnQucHJvdG90eXBlLCJoZWFsdGhQaWxsU3RlcEluZGV4Iix2b2lkIDApLHQoW2EoInJlbmRlckhpZXJhcmNoeSIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sVVp0LnByb3RvdHlwZSwiX3JlbmRlckhpZXJhcmNoeUNoYW5nZWQiLG51bGwpLHQoW2EoIl9pc0F0dGFjaGVkIiwicmVuZGVySGllcmFyY2h5IiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxVWnQucHJvdG90eXBlLCJfYW5pbWF0ZUFuZEZpdCIsbnVsbCksdChbYSgiY29sb3JCeSIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sVVp0LnByb3RvdHlwZSwibm9kZUNvbG9yc0NoYW5nZWQiLG51bGwpLHQoW2EoIm5vZGVOYW1lc1RvSGVhbHRoUGlsbHMiLCJoZWFsdGhQaWxsU3RlcEluZGV4IiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxVWnQucHJvdG90eXBlLCJfdXBkYXRlSGVhbHRoUGlsbHMiLG51bGwpLHQoW2EoInRyYWNlSW5wdXRzIiwic2VsZWN0ZWROb2RlIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxVWnQucHJvdG90eXBlLCJfdXBkYXRlSW5wdXRUcmFjZSIsbnVsbCksVVp0PXQoW2koInRmLWdyYXBoLXNjZW5lIildLFVadCk7bGV0IGpadD1jbGFzcyBleHRlbmRzKGNyKHdlKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3JlbmRlckRlcHRoPTEsdGhpcy5fYWxsb3dHcmFwaFNlbGVjdD0hMCx0aGlzLmVkZ2VXaWR0aEZ1bmN0aW9uPSIiLHRoaXMuaGFuZGxlTm9kZVNlbGVjdGVkPSIiLHRoaXMuZWRnZUxhYmVsRnVuY3Rpb249IiIsdGhpcy5oYW5kbGVFZGdlU2VsZWN0ZWQ9IiJ9cGFuVG9Ob2RlKHQpe3RoaXMuJCQoInRmLWdyYXBoLXNjZW5lIikucGFuVG9Ob2RlKHQpfV9hdXRvRXh0cmFjdE5vZGVzQ2hhbmdlZCgpe3ZhciB0PXRoaXMuZ3JhcGhIaWVyYXJjaHk7aWYodCl7Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LnZhbHVlcyh0LmdldE5vZGVNYXAoKSkpZS5pbmNsdWRlPWskdC5VTlNQRUNJRklFRDt0aGlzLl9idWlsZFJlbmRlckhpZXJhcmNoeSh0KX19X2J1aWxkTmV3UmVuZGVySGllcmFyY2h5KCl7dmFyIHQ9dGhpcy5ncmFwaEhpZXJhcmNoeTt0JiZ0aGlzLl9idWlsZFJlbmRlckhpZXJhcmNoeSh0KX1fc3RhdHNDaGFuZ2VkKCl7dmFyIHQ9dGhpcy5zdGF0cyxlPXRoaXMuZGV2aWNlc0ZvclN0YXRzO3RoaXMuZ3JhcGhIaWVyYXJjaHkmJih0JiZlJiYoIShmdW5jdGlvbiBuKHQsZSxpKXtDZS5leHBvcnRzLmVhY2godC5ub2RlcywodD0+e3Quc3RhdHM9bnVsbH0pKSxDZS5leHBvcnRzLmVhY2goZS5kZXZfc3RhdHMsKGU9PntpJiYhaVtlLmRldmljZV18fENlLmV4cG9ydHMuZWFjaChlLm5vZGVfc3RhdHMsKG49PntsZXQgaT1uLm5vZGVfbmFtZSBpbiB0Lm5vZGVzP24ubm9kZV9uYW1lOiQkdChuLm5vZGVfbmFtZSk7aWYoIShpIGluIHQubm9kZXMpKXJldHVybjtsZXQgcj0wO24ubWVtb3J5JiZDZS5leHBvcnRzLmVhY2gobi5tZW1vcnksKHQ9Pnt0LnRvdGFsX2J5dGVzJiYodC50b3RhbF9ieXRlcz4wP3IrPU51bWJlcih0LnRvdGFsX2J5dGVzKTpjb25zb2xlLmxvZygiaWdub3JpbmcgbmVnYXRpdmUgbWVtb3J5IGFsbG9jYXRpb24gZm9yICIraSkpfSkpO2xldCBvPW51bGw7bi5vdXRwdXQmJihvPUNlLmV4cG9ydHMubWFwKG4ub3V0cHV0LCh0PT5DZS5leHBvcnRzLm1hcCh0LnRlbnNvcl9kZXNjcmlwdGlvbi5zaGFwZS5kaW0sKHQ9Pk51bWJlcih0LnNpemUpKSkpKSksdC5ub2Rlc1tpXS5kZXZpY2U9ZS5kZXZpY2UsbnVsbD09dC5ub2Rlc1tpXS5zdGF0cyYmKHQubm9kZXNbaV0uc3RhdHM9bmV3IGwkdChvKSksdC5ub2Rlc1tpXS5zdGF0cy5hZGRCeXRlc0FsbG9jYXRpb24ociksbi5hbGxfZW5kX3JlbF9taWNyb3MmJihuLmFsbF9lbmRfcmVsX21pY3Jvcz4wP3Qubm9kZXNbaV0uc3RhdHMuYWRkRXhlY3V0aW9uVGltZShuLmFsbF9zdGFydF9taWNyb3Msbi5hbGxfc3RhcnRfbWljcm9zK24uYWxsX2VuZF9yZWxfbWljcm9zKTpjb25zb2xlLmxvZygiaWdub3JpbmcgbmVnYXRpdmUgcnVudGltZSBmb3IgIitpKSl9KSl9KSl9KSh0aGlzLmJhc2ljR3JhcGgsdCxlKSwoZnVuY3Rpb24gaSh0LGUpe2xldCBuPXt9LGk9e307Q2UuZXhwb3J0cy5lYWNoKHQucm9vdC5sZWF2ZXMoKSwoZT0+e2xldCByPXQubm9kZShlKTtudWxsIT1yLmRldmljZSYmKG5bci5kZXZpY2VdPSEwKSxudWxsIT1yLnhsYUNsdXN0ZXImJihpW3IueGxhQ2x1c3Rlcl09ITApfSkpLHQuZGV2aWNlcz1DZS5leHBvcnRzLmtleXMobiksdC54bGFDbHVzdGVycz1DZS5leHBvcnRzLmtleXMoaSksQ2UuZXhwb3J0cy5lYWNoKHQuZ2V0Tm9kZU1hcCgpLCgodCxlKT0+e3QuaXNHcm91cE5vZGUmJih0LnN0YXRzPW5ldyBsJHQobnVsbCksdC5kZXZpY2VIaXN0b2dyYW09e30pfSkpLENlLmV4cG9ydHMuZWFjaCh0LnJvb3QubGVhdmVzKCksKGU9PntsZXQgbj10Lm5vZGUoZSksaT1uO2Zvcig7bnVsbCE9aS5wYXJlbnROb2RlOyl7aWYobnVsbCE9bi5kZXZpY2Upe2xldCB0PWkucGFyZW50Tm9kZS5kZXZpY2VIaXN0b2dyYW07dFtuLmRldmljZV09KHRbbi5kZXZpY2VdfHwwKSsxfWlmKG51bGwhPW4ueGxhQ2x1c3Rlcil7bGV0IHQ9aS5wYXJlbnROb2RlLnhsYUNsdXN0ZXJIaXN0b2dyYW07dFtuLnhsYUNsdXN0ZXJdPSh0W24ueGxhQ2x1c3Rlcl18fDApKzF9bnVsbCE9bi5zdGF0cyYmaS5wYXJlbnROb2RlLnN0YXRzLmNvbWJpbmUobi5zdGF0cyksaT1pLnBhcmVudE5vZGV9fSkpfSkodGhpcy5ncmFwaEhpZXJhcmNoeSkpLHRoaXMuX2J1aWxkUmVuZGVySGllcmFyY2h5KHRoaXMuZ3JhcGhIaWVyYXJjaHkpKX1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJncmFwaC1zZWxlY3QiLHRoaXMuX2dyYXBoU2VsZWN0ZWQuYmluZCh0aGlzKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJkaXNhYmxlLWNsaWNrIix0aGlzLl9kaXNhYmxlQ2xpY2suYmluZCh0aGlzKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJlbmFibGUtY2xpY2siLHRoaXMuX2VuYWJsZUNsaWNrLmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibm9kZS10b2dnbGUtZXhwYW5kIix0aGlzLl9ub2RlVG9nZ2xlRXhwYW5kLmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibm9kZS1zZWxlY3QiLHRoaXMuX25vZGVTZWxlY3RlZC5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm5vZGUtaGlnaGxpZ2h0Iix0aGlzLl9ub2RlSGlnaGxpZ2h0ZWQuYmluZCh0aGlzKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJub2RlLXVuaGlnaGxpZ2h0Iix0aGlzLl9ub2RlVW5oaWdobGlnaHRlZC5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm5vZGUtdG9nZ2xlLWV4dHJhY3QiLHRoaXMuX25vZGVUb2dnbGVFeHRyYWN0LmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibm9kZS10b2dnbGUtc2VyaWVzZ3JvdXAiLHRoaXMuX25vZGVUb2dnbGVTZXJpZXNHcm91cC5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImVkZ2Utc2VsZWN0Iix0aGlzLl9lZGdlU2VsZWN0ZWQuYmluZCh0aGlzKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJhbm5vdGF0aW9uLXNlbGVjdCIsdGhpcy5fbm9kZVNlbGVjdGVkLmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiYW5ub3RhdGlvbi1oaWdobGlnaHQiLHRoaXMuX25vZGVIaWdobGlnaHRlZC5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImFubm90YXRpb24tdW5oaWdobGlnaHQiLHRoaXMuX25vZGVVbmhpZ2hsaWdodGVkLmJpbmQodGhpcykpfV9idWlsZFJlbmRlckhpZXJhcmNoeSh0KXtpZih0LnJvb3QudHlwZSE9PUEkdC5NRVRBKXJldHVybjtjb25zdCBlPXRoaXMsbj1kJHQoIm5ldyB0Zl9ncmFwaF9yZW5kZXIuSGllcmFyY2h5IiwoKCk9Pntjb25zdCBuPW5ldyBBS3QodCwhIXRoaXMuc3RhdHMsdGhpcy5hdXRvRXh0cmFjdE5vZGVzKTtmdW5jdGlvbiBpKHQpe3JldHVybnttaW5WYWx1ZTp0LmRvbWFpbigpWzBdLG1heFZhbHVlOnQuZG9tYWluKClbMV0sc3RhcnRDb2xvcjp0LnJhbmdlKClbMF0sZW5kQ29sb3I6dC5yYW5nZSgpWzFdfX1yZXR1cm4gbi5lZGdlTGFiZWxGdW5jdGlvbj10aGlzLmVkZ2VMYWJlbEZ1bmN0aW9uLG4uZWRnZVdpZHRoRnVuY3Rpb249dGhpcy5lZGdlV2lkdGhGdW5jdGlvbixlLl9zZXRDb2xvckJ5UGFyYW1zKHtjb21wdXRlX3RpbWU6aShuLmNvbXB1dGVUaW1lU2NhbGUpLG1lbW9yeTppKG4ubWVtb3J5VXNhZ2VTY2FsZSksZGV2aWNlOkNlLmV4cG9ydHMubWFwKG4uZGV2aWNlQ29sb3JNYXAuZG9tYWluKCksKGZ1bmN0aW9uKHQpe3JldHVybntkZXZpY2U6dCxjb2xvcjpuLmRldmljZUNvbG9yTWFwKHQpfX0pKSx4bGFfY2x1c3RlcjpDZS5leHBvcnRzLm1hcChuLnhsYUNsdXN0ZXJDb2xvck1hcC5kb21haW4oKSwoZnVuY3Rpb24odCl7cmV0dXJue3hsYV9jbHVzdGVyOnQsY29sb3I6bi54bGFDbHVzdGVyQ29sb3JNYXAodCl9fSkpfSksbn0pLEJBdC5SRU5ERVJfQlVJTERfSElFUkFSQ0hZKTtlLl9zZXRSZW5kZXJIaWVyYXJjaHkobil9X2dldFZpc2libGUodCl7cmV0dXJuIHQ/dGhpcy5yZW5kZXJIaWVyYXJjaHkuZ2V0TmVhcmVzdFZpc2libGVBbmNlc3Rvcih0KTp0fWZpdCgpe3RoaXMuJC5zY2VuZS5maXQoKX1nZXRJbWFnZUJsb2IoKXtyZXR1cm4gdGhpcy4kLnNjZW5lLmdldEltYWdlQmxvYigpfV9ncmFwaENoYW5nZWQoKXt0aGlzLmdyYXBoSGllcmFyY2h5JiYodGhpcy5ncmFwaEhpZXJhcmNoeS5hZGRMaXN0ZW5lcihpS3QuVEVNUExBVEVTX1VQREFURUQsKCgpPT57dGhpcy4kLnNjZW5lLm5vZGVDb2xvcnNDaGFuZ2VkKCl9KSksdGhpcy5maXJlKCJncmFwaC1zZWxlY3QiKSl9X2dyYXBoU2VsZWN0ZWQodCl7dGhpcy5fYWxsb3dHcmFwaFNlbGVjdCYmKHRoaXMuc2V0KCJzZWxlY3RlZE5vZGUiLG51bGwpLHRoaXMuc2V0KCJzZWxlY3RlZEVkZ2UiLG51bGwpKSx0aGlzLl9hbGxvd0dyYXBoU2VsZWN0PSEwfV9kaXNhYmxlQ2xpY2sodCl7dGhpcy5fYWxsb3dHcmFwaFNlbGVjdD0hMX1fZW5hYmxlQ2xpY2sodCl7dGhpcy5fYWxsb3dHcmFwaFNlbGVjdD0hMH1fc2VsZWN0ZWROb2RlQ2hhbmdlZCgpe3RoaXMuaGFuZGxlTm9kZVNlbGVjdGVkJiZ0aGlzLmhhbmRsZU5vZGVTZWxlY3RlZCh0aGlzLnNlbGVjdGVkTm9kZSl9X3NlbGVjdGVkRWRnZUNoYW5nZWQoKXt2YXIgdD10aGlzLnNlbGVjdGVkRWRnZTt0aGlzLl9kZXNlbGVjdFByZXZpb3VzRWRnZSgpLHQmJih0aGlzLl9sYXN0U2VsZWN0ZWRFZGdlR3JvdXAuY2xhc3NlZChaS3QuRWRnZS5TRUxFQ1RFRCwhMCksdGhpcy5fdXBkYXRlTWFya2VyT2ZTZWxlY3RlZEVkZ2UodCkpLHRoaXMuaGFuZGxlRWRnZVNlbGVjdGVkJiZ0aGlzLmhhbmRsZUVkZ2VTZWxlY3RlZCh0KX1fbm9kZVNlbGVjdGVkKHQpe3RoaXMuX2FsbG93R3JhcGhTZWxlY3QmJnRoaXMuc2V0KCJzZWxlY3RlZE5vZGUiLHQuZGV0YWlsLm5hbWUpLHRoaXMuX2FsbG93R3JhcGhTZWxlY3Q9ITB9X2VkZ2VTZWxlY3RlZCh0KXt0aGlzLl9hbGxvd0dyYXBoU2VsZWN0JiYodGhpcy5zZXQoIl9sYXN0U2VsZWN0ZWRFZGdlR3JvdXAiLHQuZGV0YWlsLmVkZ2VHcm91cCksdGhpcy5zZXQoInNlbGVjdGVkRWRnZSIsdC5kZXRhaWwuZWRnZURhdGEpKSx0aGlzLl9hbGxvd0dyYXBoU2VsZWN0PSEwfV9ub2RlSGlnaGxpZ2h0ZWQodCl7dGhpcy5zZXQoImhpZ2hsaWdodGVkTm9kZSIsdC5kZXRhaWwubmFtZSl9X25vZGVVbmhpZ2hsaWdodGVkKHQpe3RoaXMuc2V0KCJoaWdobGlnaHRlZE5vZGUiLG51bGwpfV9ub2RlVG9nZ2xlRXhwYW5kKHQpe3RoaXMuX25vZGVTZWxlY3RlZCh0KTt2YXIgZT10LmRldGFpbC5uYW1lLG49dGhpcy5yZW5kZXJIaWVyYXJjaHkuZ2V0UmVuZGVyTm9kZUJ5TmFtZShlKTtuLm5vZGUudHlwZSE9PUEkdC5PUCYmKHRoaXMucmVuZGVySGllcmFyY2h5LmJ1aWxkU3ViaGllcmFyY2h5KGUpLG4uZXhwYW5kZWQ9IW4uZXhwYW5kZWQsdGhpcy5hc3luYygoZnVuY3Rpb24oKXt0aGlzLiQuc2NlbmUuc2V0Tm9kZUV4cGFuZGVkKG4pfSksNzUpLGgkdCh7YWN0aW9uSWQ6QkF0Lk5PREVfRVhQQU5TSU9OX1RPR0dMRUQsZXZlbnRMYWJlbDpuLmV4cGFuZGVkPyJleHBhbmRlZCI6ImNvbGxhcHNlZCJ9KSl9X25vZGVUb2dnbGVFeHRyYWN0KHQpe3RoaXMubm9kZVRvZ2dsZUV4dHJhY3QodC5kZXRhaWwubmFtZSl9bm9kZVRvZ2dsZUV4dHJhY3QodCl7Y29uc3QgZT10aGlzLnJlbmRlckhpZXJhcmNoeS5nZXRSZW5kZXJOb2RlQnlOYW1lKHQpO2Uubm9kZS5pbmNsdWRlPWUubm9kZS5pbmNsdWRlPT1rJHQuSU5DTFVERT9rJHQuRVhDTFVERTplLm5vZGUuaW5jbHVkZT09ayR0LkVYQ0xVREV8fHRoaXMucmVuZGVySGllcmFyY2h5LmlzTm9kZUF1eGlsaWFyeShlKT9rJHQuSU5DTFVERTprJHQuRVhDTFVERSx0aGlzLl9idWlsZFJlbmRlckhpZXJhcmNoeSh0aGlzLmdyYXBoSGllcmFyY2h5KSxoJHQoe2FjdGlvbklkOkJBdC5OT0RFX0FVWElMSUFSWV9FWFRSQUNUSU9OX0NIQU5HRUQsZXZlbnRMYWJlbDplLm5vZGUuaW5jbHVkZT09PWskdC5JTkNMVURFPyJBdXhpbGlhcnkgdG8gTWFpbiI6Ik1haW4gdG8gQXV4aWxpYXJ5In0pfV9ub2RlVG9nZ2xlU2VyaWVzR3JvdXAodCl7dGhpcy5ub2RlVG9nZ2xlU2VyaWVzR3JvdXAodC5kZXRhaWwubmFtZSl9bm9kZVRvZ2dsZVNlcmllc0dyb3VwKHQpe3RoaXMuc2V0KCJwcm9ncmVzcyIse3ZhbHVlOjAsbXNnOiIifSk7dmFyIGU9ZiR0KHAkdCh0aGlzKSwxMDAsIk5hbWVzcGFjZSBoaWVyYXJjaHkiKTtjb25zdCBuPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLmhpZXJhcmNoeVBhcmFtcykse3Nlcmllc01hcDp0aGlzLmdyYXBoSGllcmFyY2h5LmJ1aWxkU2VyaWVzR3JvdXBNYXBUb2dnbGVkKHQpfSk7c0t0KHRoaXMuYmFzaWNHcmFwaCxuLGUpLnRoZW4oZnVuY3Rpb24odCl7dGhpcy5zZXQoImdyYXBoSGllcmFyY2h5Iix0KSx0aGlzLl9idWlsZFJlbmRlckhpZXJhcmNoeSh0aGlzLmdyYXBoSGllcmFyY2h5KX0uYmluZCh0aGlzKSl9X2Rlc2VsZWN0UHJldmlvdXNFZGdlKCl7RHUoIi4iK1pLdC5FZGdlLlNFTEVDVEVEKS5jbGFzc2VkKFpLdC5FZGdlLlNFTEVDVEVELCExKS5lYWNoKCgodCxlKT0+e2lmKHQubGFiZWwpe2NvbnN0IGU9RHUodGhpcykuc2VsZWN0QWxsKCJwYXRoLmVkZ2VsaW5lIik7dC5sYWJlbC5zdGFydE1hcmtlcklkJiZlLnN0eWxlKCJtYXJrZXItc3RhcnQiLGB1cmwoIyR7dC5sYWJlbC5zdGFydE1hcmtlcklkfSlgKSx0LmxhYmVsLmVuZE1hcmtlcklkJiZlLnN0eWxlKCJtYXJrZXItZW5kIixgdXJsKCMke3QubGFiZWwuZW5kTWFya2VySWR9KWApfX0pKX1fdXBkYXRlTWFya2VyT2ZTZWxlY3RlZEVkZ2UodCl7aWYodC5sYWJlbCl7Y29uc3QgZT10LmxhYmVsLnN0YXJ0TWFya2VySWR8fHQubGFiZWwuZW5kTWFya2VySWQ7aWYoZSl7Y29uc3Qgbj1lLnJlcGxhY2UoImRhdGFmbG93LSIsInNlbGVjdGVkLSIpO2xldCBpPXRoaXMuJCQoIiMiK24pO2lmKCFpKXtjb25zdCB0PXRoaXMuJC5zY2VuZS5xdWVyeVNlbGVjdG9yKCIjIitlKTtpPXQuY2xvbmVOb2RlKCEwKSxpLnNldEF0dHJpYnV0ZSgiaWQiLG4pLGkuY2xhc3NMaXN0LmFkZCgic2VsZWN0ZWQtYXJyb3doZWFkIiksdC5wYXJlbnROb2RlLmFwcGVuZENoaWxkKGkpfWNvbnN0IHI9dC5sYWJlbC5zdGFydE1hcmtlcklkPyJtYXJrZXItc3RhcnQiOiJtYXJrZXItZW5kIjt0aGlzLl9sYXN0U2VsZWN0ZWRFZGdlR3JvdXAuc2VsZWN0QWxsKCJwYXRoLmVkZ2VsaW5lIikuc3R5bGUocixgdXJsKCMke259KWApfX19bm90KHQpe3JldHVybiF0fX07alp0LnRlbXBsYXRlPXhlYAogICAgPHN0eWxlPgogICAgICAuY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4yKTsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LXZlcnRpY2FsOwogICAgICB9CgogICAgICAuYXV0byB7CiAgICAgICAgQGFwcGx5IC0tbGF5b3V0LWZsZXgtYXV0bzsKICAgICAgICBAYXBwbHkgLS1sYXlvdXQtdmVydGljYWw7CiAgICAgIH0KCiAgICAgIGgyIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIHBhcGVyLWJ1dHRvbiB7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW3RpdGxlXV0iPgogICAgICAgICAgPGgyPltbdGl0bGVdXTwvaDI+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8dGYtZ3JhcGgtc2NlbmUKICAgICAgICAgIGlkPSJzY2VuZSIKICAgICAgICAgIGNsYXNzPSJhdXRvIgogICAgICAgICAgcmVuZGVyLWhpZXJhcmNoeT0iW1tyZW5kZXJIaWVyYXJjaHldXSIKICAgICAgICAgIGhpZ2hsaWdodGVkLW5vZGU9IltbX2dldFZpc2libGUoaGlnaGxpZ2h0ZWROb2RlKV1dIgogICAgICAgICAgc2VsZWN0ZWQtbm9kZT0ie3tzZWxlY3RlZE5vZGV9fSIKICAgICAgICAgIHNlbGVjdGVkLWVkZ2U9Int7c2VsZWN0ZWRFZGdlfX0iCiAgICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgICBwcm9ncmVzcz0iW1twcm9ncmVzc11dIgogICAgICAgICAgbm9kZS1jb250ZXh0LW1lbnUtaXRlbXM9Iltbbm9kZUNvbnRleHRNZW51SXRlbXNdXSIKICAgICAgICAgIG5vZGUtbmFtZXMtdG8taGVhbHRoLXBpbGxzPSJbW25vZGVOYW1lc1RvSGVhbHRoUGlsbHNdXSIKICAgICAgICAgIGhlYWx0aC1waWxsLXN0ZXAtaW5kZXg9Int7aGVhbHRoUGlsbFN0ZXBJbmRleH19IgogICAgICAgICAgaGFuZGxlLWVkZ2Utc2VsZWN0ZWQ9IltbaGFuZGxlRWRnZVNlbGVjdGVkXV0iCiAgICAgICAgICB0cmFjZS1pbnB1dHM9IltbdHJhY2VJbnB1dHNdXSIKICAgICAgICA+PC90Zi1ncmFwaC1zY2VuZT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgLHQoW28oe3R5cGU6T2JqZWN0LG5vdGlmeTohMCxvYnNlcnZlcjoiX2dyYXBoQ2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIsckt0KV0salp0LnByb3RvdHlwZSwiZ3JhcGhIaWVyYXJjaHkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsSSR0KV0salp0LnByb3RvdHlwZSwiYmFzaWNHcmFwaCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxqWnQucHJvdG90eXBlLCJzdGF0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxqWnQucHJvdG90eXBlLCJkZXZpY2VzRm9yU3RhdHMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0salp0LnByb3RvdHlwZSwiaGllcmFyY2h5UGFyYW1zIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxqWnQucHJvdG90eXBlLCJwcm9ncmVzcyIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxqWnQucHJvdG90eXBlLCJ0aXRsZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0salp0LnByb3RvdHlwZSwic2VsZWN0ZWROb2RlIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxqWnQucHJvdG90eXBlLCJzZWxlY3RlZEVkZ2UiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0salp0LnByb3RvdHlwZSwiX2xhc3RTZWxlY3RlZEVkZ2VHcm91cCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0salp0LnByb3RvdHlwZSwiaGlnaGxpZ2h0ZWROb2RlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGpadC5wcm90b3R5cGUsImNvbG9yQnkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwLHJlYWRPbmx5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGpadC5wcm90b3R5cGUsImNvbG9yQnlQYXJhbXMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3QscmVhZE9ubHk6ITAsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLEFLdCldLGpadC5wcm90b3R5cGUsInJlbmRlckhpZXJhcmNoeSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGpadC5wcm90b3R5cGUsInRyYWNlSW5wdXRzIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0salp0LnByb3RvdHlwZSwiYXV0b0V4dHJhY3ROb2RlcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0salp0LnByb3RvdHlwZSwibm9kZUNvbnRleHRNZW51SXRlbXMiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0salp0LnByb3RvdHlwZSwiX3JlbmRlckRlcHRoIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0salp0LnByb3RvdHlwZSwiX2FsbG93R3JhcGhTZWxlY3QiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0salp0LnByb3RvdHlwZSwibm9kZU5hbWVzVG9IZWFsdGhQaWxscyIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxqWnQucHJvdG90eXBlLCJoZWFsdGhQaWxsU3RlcEluZGV4Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGpadC5wcm90b3R5cGUsImVkZ2VXaWR0aEZ1bmN0aW9uIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGpadC5wcm90b3R5cGUsImhhbmRsZU5vZGVTZWxlY3RlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxqWnQucHJvdG90eXBlLCJlZGdlTGFiZWxGdW5jdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxqWnQucHJvdG90eXBlLCJoYW5kbGVFZGdlU2VsZWN0ZWQiLHZvaWQgMCksdChbYSgiYXV0b0V4dHJhY3ROb2RlcyIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0salp0LnByb3RvdHlwZSwiX2F1dG9FeHRyYWN0Tm9kZXNDaGFuZ2VkIixudWxsKSx0KFthKCJncmFwaEhpZXJhcmNoeSIsImVkZ2VXaWR0aEZ1bmN0aW9uIiwiaGFuZGxlTm9kZVNlbGVjdGVkIiwiZWRnZUxhYmVsRnVuY3Rpb24iLCJoYW5kbGVFZGdlU2VsZWN0ZWQiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGpadC5wcm90b3R5cGUsIl9idWlsZE5ld1JlbmRlckhpZXJhcmNoeSIsbnVsbCksdChbYSgic3RhdHMiLCJkZXZpY2VzRm9yU3RhdHMiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGpadC5wcm90b3R5cGUsIl9zdGF0c0NoYW5nZWQiLG51bGwpLHQoW2EoInNlbGVjdGVkTm9kZSIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0salp0LnByb3RvdHlwZSwiX3NlbGVjdGVkTm9kZUNoYW5nZWQiLG51bGwpLHQoW2EoInNlbGVjdGVkRWRnZSIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0salp0LnByb3RvdHlwZSwiX3NlbGVjdGVkRWRnZUNoYW5nZWQiLG51bGwpLGpadD10KFtpKCJ0Zi1ncmFwaCIpXSxqWnQpO2xldCBHWnQ9Y2xhc3MgZXh0ZW5kcyhjcih3ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnNwZWNpZmljSGVhbHRoUGlsbFN0ZXA9MCx0aGlzLmhlYWx0aFBpbGxFbnRyaWVzPUpLdH1yZWFkeSgpe3N1cGVyLnJlYWR5KCk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW5Db250YWluZXIiKSxlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInRmLWRhc2hib2FyZC1sYXlvdXQgLnNjcm9sbGJhciIpO3QmJmUmJih0LnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iLGUuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIpfV9oZWFsdGhQaWxsc0F2YWlsYWJsZSh0LGUpe3JldHVybiB0JiZlfV9jb21wdXRlVGVuc29yQ291bnRTdHJpbmcodCxlKXtyZXR1cm4gdD90W2VdLnRvRml4ZWQoMCk6IiJ9Z2V0IGhlYWx0aFBpbGxWYWx1ZXNGb3JTZWxlY3RlZE5vZGUoKXt2YXIgdD10aGlzLnNlbGVjdGVkTm9kZTtpZih0aGlzLmFyZUhlYWx0aFBpbGxzTG9hZGluZylyZXR1cm4gbnVsbDtpZighdClyZXR1cm4gbnVsbDtjb25zdCBlPXRoaXMubm9kZU5hbWVzVG9IZWFsdGhQaWxsc1t0XTtpZighZSlyZXR1cm4gbnVsbDtjb25zdCBuPWVbdGhpcy5hbGxTdGVwc01vZGVFbmFibGVkPzA6dGhpcy5oZWFsdGhQaWxsU3RlcEluZGV4XTtyZXR1cm4gbj9uLnZhbHVlLnNsaWNlKDIsOCk6bnVsbH1nZXQgX2N1cnJlbnRTdGVwRGlzcGxheVZhbHVlKCl7dmFyIHQ9dGhpcy5ub2RlTmFtZXNUb0hlYWx0aFBpbGxzLGU9dGhpcy5oZWFsdGhQaWxsU3RlcEluZGV4LG49dGhpcy5hcmVIZWFsdGhQaWxsc0xvYWRpbmc7aWYodGhpcy5hbGxTdGVwc01vZGVFbmFibGVkKXJldHVybiB0aGlzLnNwZWNpZmljSGVhbHRoUGlsbFN0ZXAudG9GaXhlZCgwKTtpZihuKXJldHVybiAwO2ZvcihsZXQgbiBpbiB0KXJldHVybiB0W25dW2VdLnN0ZXAudG9GaXhlZCgwKTtyZXR1cm4gMH1nZXQgX2JpZ2dlc3RTdGVwRXZlclNlZW4oKXt2YXIgdD10aGlzLm5vZGVOYW1lc1RvSGVhbHRoUGlsbHM7Zm9yKGxldCBuIGluIHQpe3ZhciBlPXRbbl07cmV0dXJuIE1hdGgubWF4KHRoaXMuX2JpZ2dlc3RTdGVwRXZlclNlZW4sZVtlLmxlbmd0aC0xXS5zdGVwKX1yZXR1cm4gdGhpcy5fYmlnZ2VzdFN0ZXBFdmVyU2Vlbnx8MH1nZXQgX21heFN0ZXBJbmRleCgpe3ZhciB0PXRoaXMubm9kZU5hbWVzVG9IZWFsdGhQaWxscztmb3IobGV0IGUgaW4gdClyZXR1cm4gdFtlXS5sZW5ndGgtMTtyZXR1cm4gMH1faGFzRGVidWdnZXJOdW1lcmljQWxlcnRzKHQpe3JldHVybiB0JiZ0Lmxlbmd0aH1fdXBkYXRlQWxlcnRzTGlzdCgpe3ZhciB0PXRoaXMuZGVidWdnZXJOdW1lcmljQWxlcnRzLGU9dGhpcy4kJCgiI251bWVyaWMtYWxlcnRzLWJvZHkiKTtpZihlKXtlLmlubmVyVGV4dD0iIjtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXSxyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIiksbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpO28uaW5uZXJUZXh0PShmPWkuZmlyc3RfdGltZXN0YW1wLG09dm9pZCAwLChtPStuZXcgRGF0ZS0rbmV3IERhdGUoZi8xZTMpKTwzZTQ/Imp1c3Qgbm93IjptPDZlND9NYXRoLmZsb29yKG0vMWUzKSsiIHNlY29uZHMgYWdvIjptPDEyZTQ/ImEgbWludXRlIGFnbyI6bTwzNmU1P01hdGguZmxvb3IobS82ZTQpKyIgbWludXRlcyBhZ28iOjE9PU1hdGguZmxvb3IobS8zNmU1KT8iYW4gaG91ciBhZ28iOm08ODY0ZTU/TWF0aC5mbG9vcihtLzM2ZTUpKyIgaG91cnMgYWdvIjptPDE3MjhlNT8ieWVzdGVyZGF5IjpNYXRoLmZsb29yKG0vODY0ZTUpKyIgZGF5cyBhZ28iKSxvLmNsYXNzTGlzdC5hZGQoImZpcnN0LW9mZmVuc2UtdGQiKSxyLmFwcGVuZENoaWxkKG8pO3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7YS5jbGFzc0xpc3QuYWRkKCJ0ZW5zb3ItZGV2aWNlLXRkIik7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cy5jbGFzc0xpc3QuYWRkKCJ0ZW5zb3Itc2VjdGlvbi13aXRoaW4tdGFibGUiKSxzLmlubmVyVGV4dD1pLnRlbnNvcl9uYW1lLHRoaXMuX2FkZE9wRXhwYW5zaW9uTGlzdGVuZXIocyxpLnRlbnNvcl9uYW1lKSxhLmFwcGVuZENoaWxkKHMpO3ZhciBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2wuY2xhc3NMaXN0LmFkZCgiZGV2aWNlLXNlY3Rpb24td2l0aGluLXRhYmxlIiksbC5pbm5lclRleHQ9IigiK2kuZGV2aWNlX25hbWUrIikiLGEuYXBwZW5kQ2hpbGQobCksci5hcHBlbmRDaGlsZChhKTt2YXIgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtjLmNsYXNzTGlzdC5hZGQoIm1pbmktaGVhbHRoLXBpbGwiKTt2YXIgdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpO2lmKHUuY2xhc3NMaXN0LmFkZCgibWluaS1oZWFsdGgtcGlsbC10ZCIpLHUuYXBwZW5kQ2hpbGQoYyksci5hcHBlbmRDaGlsZCh1KSxpLm5lZ19pbmZfZXZlbnRfY291bnQpe3ZhciBoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2guY2xhc3NMaXN0LmFkZCgibmVnYXRpdmUtaW5mLW1pbmktaGVhbHRoLXBpbGwtc2VjdGlvbiIpLGguaW5uZXJUZXh0PWkubmVnX2luZl9ldmVudF9jb3VudCxoLnNldEF0dHJpYnV0ZSgidGl0bGUiLGkubmVnX2luZl9ldmVudF9jb3VudCsiIGV2ZW50cyB3aXRoIC3iiJ4iKSxjLmFwcGVuZENoaWxkKGgpfWlmKGkucG9zX2luZl9ldmVudF9jb3VudCl7dmFyIGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZC5jbGFzc0xpc3QuYWRkKCJwb3NpdGl2ZS1pbmYtbWluaS1oZWFsdGgtcGlsbC1zZWN0aW9uIiksZC5pbm5lclRleHQ9aS5wb3NfaW5mX2V2ZW50X2NvdW50LGQuc2V0QXR0cmlidXRlKCJ0aXRsZSIsaS5wb3NfaW5mX2V2ZW50X2NvdW50KyIgZXZlbnRzIHdpdGggK+KIniIpLGMuYXBwZW5kQ2hpbGQoZCl9aWYoaS5uYW5fZXZlbnRfY291bnQpe3ZhciBwPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3AuY2xhc3NMaXN0LmFkZCgibmFuLW1pbmktaGVhbHRoLXBpbGwtc2VjdGlvbiIpLHAuaW5uZXJUZXh0PWkubmFuX2V2ZW50X2NvdW50LHAuc2V0QXR0cmlidXRlKCJ0aXRsZSIsaS5uYW5fZXZlbnRfY291bnQrIiBldmVudHMgd2l0aCBOYU4iKSxjLmFwcGVuZENoaWxkKHApfWVyKGUpLmFwcGVuZENoaWxkKHIpfXZhciBmLG19fV9hZGRPcEV4cGFuc2lvbkxpc3RlbmVyKHQsZSl7dC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCgpPT57dmFyIHQsbj0oZnVuY3Rpb24gaSh0LGUsbil7Y29uc3QgaT1uLnNwbGl0KCIvIikscj1pW2kubGVuZ3RoLTFdLm1hdGNoKC8oLiopOlx3Ky8pOzI9PT1yLmxlbmd0aCYmKGlbaS5sZW5ndGgtMV09clsxXSk7bGV0IG89aVswXSxhPWUuZ2V0UmVuZGVyTm9kZUJ5TmFtZShvKTtmb3IobGV0IG49MTtuPGkubGVuZ3RoJiZhLm5vZGUudHlwZSE9PUEkdC5PUDtuKyspZS5idWlsZFN1YmhpZXJhcmNoeShvKSxhLmV4cGFuZGVkPSEwLHQuc2V0Tm9kZUV4cGFuZGVkKGEpLG8rPSIvIitpW25dLGE9ZS5nZXRSZW5kZXJOb2RlQnlOYW1lKG8pO3JldHVybiBhLm5vZGUubmFtZX0pKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY2VuZSIpLHRoaXMucmVuZGVySGllcmFyY2h5LGUpLHI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidGYtZ3JhcGgtaW5mbyNncmFwaC1pbmZvIik7ciYmKHQ9ci5zY3JvbGxIZWlnaHQtci5zY3JvbGxUb3ApO3ZhciBvPXRoaXMuc2VsZWN0ZWROb2RlO3RoaXMuc2V0KCJzZWxlY3RlZE5vZGUiLG4pO3ZhciBhPSgpPT57ci5zY3JvbGxUb3A9ci5zY3JvbGxIZWlnaHQtdH07ciYmKG8/YSgpOndpbmRvdy5zZXRUaW1lb3V0KGEsMjApKX0pKX19O3ZhciBXWnQ7R1p0LnRlbXBsYXRlPXhlYAogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICBoMiB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICAuaGVhbHRoLXBpbGwtbGVnZW5kIHsKICAgICAgICBwYWRkaW5nOiAxNXB4OwogICAgICB9CgogICAgICAuaGVhbHRoLXBpbGwtbGVnZW5kIGgyIHsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICB9CgogICAgICAuaGVhbHRoLXBpbGwtZW50cnkgewogICAgICAgIG1hcmdpbjogMTBweCAxMHB4IDEwcHggMDsKICAgICAgfQoKICAgICAgLmhlYWx0aC1waWxsLWVudHJ5IC5jb2xvci1wcmV2aWV3IHsKICAgICAgICB3aWR0aDogMjZweDsKICAgICAgICBoZWlnaHQ6IDI2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBtYXJnaW46IDAgMTBweCAwIDA7CiAgICAgIH0KCiAgICAgIC5oZWFsdGgtcGlsbC1lbnRyeSAuY29sb3ItbGFiZWwsCiAgICAgIC5oZWFsdGgtcGlsbC1lbnRyeSAudGVuc29yLWNvdW50IHsKICAgICAgICBjb2xvcjogIzc3NzsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAyNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMjJweDsKICAgICAgICBsaW5lLWhlaWdodDogMjZweDsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogICAgICB9CgogICAgICAuaGVhbHRoLXBpbGwtZW50cnkgLnRlbnNvci1jb3VudCB7CiAgICAgICAgZmxvYXQ6IHJpZ2h0OwogICAgICB9CgogICAgICAjaGVhbHRoLXBpbGwtc3RlcC1zbGlkZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbjogMCAwIDAgLTE1cHg7CiAgICAgICAgLyogMzEgY29tZXMgZnJvbSBhZGRpbmcgYSBwYWRkaW5nIG9mIDE1cHggZnJvbSBib3RoIHNpZGVzIG9mIHRoZSBwYXBlci1zbGlkZXIsIHN1YnRyYWN0aW5nCiAgICogMXB4IHNvIHRoYXQgdGhlIHNsaWRlciB3aWR0aCBhbGlnbnMgd2l0aCB0aGUgaW1hZ2UgKHRoZSBsYXN0IHNsaWRlciBtYXJrZXIgdGFrZXMgdXAgMXB4KSwKICAgKiBhbmQgYWRkaW5nIDJweCB0byBhY2NvdW50IGZvciBhIGJvcmRlciBvZiAxcHggb24gYm90aCBzaWRlcyBvZiB0aGUgaW1hZ2UuIDMwIC0gMSArIDIuCiAgICogQXBwYXJlbnRseSwgdGhlIHBhcGVyLXNsaWRlciBsYWNrcyBhIG1peGluIGZvciB0aG9zZSBwYWRkaW5nIHZhbHVlcy4gKi8KICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMzFweCk7CiAgICAgIH0KCiAgICAgICNoZWFsdGgtcGlsbHMtbG9hZGluZy1zcGlubmVyIHsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKICAgICAgfQoKICAgICAgI2hlYWx0aC1waWxsLXN0ZXAtbnVtYmVyLWlucHV0IHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKICAgICAgfQoKICAgICAgI251bWVyaWMtYWxlcnRzLXRhYmxlLWNvbnRhaW5lciB7CiAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KCiAgICAgICNudW1lcmljLWFsZXJ0cy10YWJsZSB7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgfQoKICAgICAgI251bWVyaWMtYWxlcnRzLXRhYmxlIHRkIHsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogICAgICB9CgogICAgICAjbnVtZXJpYy1hbGVydHMtdGFibGUgLmZpcnN0LW9mZmVuc2UtdGQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgLmZpcnN0LW9mZmVuc2UtdGQgewogICAgICAgIHdpZHRoOiA4MHB4OwogICAgICB9CgogICAgICAudGVuc29yLWRldmljZS10ZCB7CiAgICAgICAgbWF4LXdpZHRoOiAxNDBweDsKICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgIH0KCiAgICAgIC50ZW5zb3Itc2VjdGlvbi13aXRoaW4tdGFibGUgewogICAgICAgIGNvbG9yOiAjMjY2MjM2OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC50ZW5zb3Itc2VjdGlvbi13aXRoaW4tdGFibGU6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5kZXZpY2Utc2VjdGlvbi13aXRoaW4tdGFibGUgewogICAgICAgIGNvbG9yOiAjNjY2OwogICAgICB9CgogICAgICAubWluaS1oZWFsdGgtcGlsbCB7CiAgICAgICAgd2lkdGg6IDEzMHB4OwogICAgICB9CgogICAgICAubWluaS1oZWFsdGgtcGlsbCA+IGRpdiB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiA2MHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgI2V2ZW50LWNvdW50cy10aCB7CiAgICAgICAgcGFkZGluZzogMCAwIDAgMTBweDsKICAgICAgfQoKICAgICAgLm5lZ2F0aXZlLWluZi1taW5pLWhlYWx0aC1waWxsLXNlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6IHJnYigyNTUsIDE0MSwgMCk7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5wb3NpdGl2ZS1pbmYtbWluaS1oZWFsdGgtcGlsbC1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2IoMCwgNjIsIDIxMik7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5uYW4tbWluaS1oZWFsdGgtcGlsbC1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2IoMjA0LCA0NywgNDQpOwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICB9CgogICAgICAubmVnYXRpdmUtaW5mLW1pbmktaGVhbHRoLXBpbGwtc2VjdGlvbiwKICAgICAgLnBvc2l0aXZlLWluZi1taW5pLWhlYWx0aC1waWxsLXNlY3Rpb24sCiAgICAgIC5uYW4tbWluaS1oZWFsdGgtcGlsbC1zZWN0aW9uIHsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgIG1hcmdpbjogMCAwIDAgMTBweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5uby1udW1lcmljLWFsZXJ0cy1ub3RpZmljYXRpb24gewogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxwYXBlci1tYXRlcmlhbCBlbGV2YXRpb249IjEiIGNsYXNzPSJjYXJkIGhlYWx0aC1waWxsLWxlZ2VuZCI+CiAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj4KICAgICAgICBFbmFibGUgYWxsIChub3QganVzdCBzYW1wbGVkKSBzdGVwcy4gUmVxdWlyZXMgc2xvdyBkaXNrIHJlYWQuCiAgICAgIDwvZGl2PgogICAgICA8cGFwZXItdG9nZ2xlLWJ1dHRvbgogICAgICAgIGlkPSJlbmFibGVBbGxTdGVwc01vZGVUb2dnbGUiCiAgICAgICAgY2hlY2tlZD0ie3thbGxTdGVwc01vZGVFbmFibGVkfX0iCiAgICAgID4KICAgICAgPC9wYXBlci10b2dnbGUtYnV0dG9uPgogICAgICA8aDI+CiAgICAgICAgU3RlcCBvZiBIZWFsdGggUGlsbHM6CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2FsbFN0ZXBzTW9kZUVuYWJsZWRdXSI+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0ibnVtYmVyIgogICAgICAgICAgICBpZD0iaGVhbHRoLXBpbGwtc3RlcC1udW1iZXItaW5wdXQiCiAgICAgICAgICAgIG1pbj0iMCIKICAgICAgICAgICAgbWF4PSJbW19iaWdnZXN0U3RlcEV2ZXJTZWVuXV0iCiAgICAgICAgICAgIHZhbHVlPSJ7e3NwZWNpZmljSGVhbHRoUGlsbFN0ZXA6OmlucHV0fX0iCiAgICAgICAgICAvPgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbWyFhbGxTdGVwc01vZGVFbmFibGVkXV0iPgogICAgICAgICAgW1tfY3VycmVudFN0ZXBEaXNwbGF5VmFsdWVdXQogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPHBhcGVyLXNwaW5uZXItbGl0ZQogICAgICAgICAgYWN0aXZlCiAgICAgICAgICBoaWRkZW4kPSJbWyFhcmVIZWFsdGhQaWxsc0xvYWRpbmddXSIKICAgICAgICAgIGlkPSJoZWFsdGgtcGlsbHMtbG9hZGluZy1zcGlubmVyIgogICAgICAgID48L3BhcGVyLXNwaW5uZXItbGl0ZT4KICAgICAgPC9oMj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2FsbFN0ZXBzTW9kZUVuYWJsZWRdXSI+CiAgICAgICAgPHBhcGVyLXNsaWRlcgogICAgICAgICAgaWQ9ImhlYWx0aC1waWxsLXN0ZXAtc2xpZGVyIgogICAgICAgICAgaW1tZWRpYXRlLXZhbHVlPSJ7e3NwZWNpZmljSGVhbHRoUGlsbFN0ZXB9fSIKICAgICAgICAgIG1heD0iW1tfYmlnZ2VzdFN0ZXBFdmVyU2Vlbl1dIgogICAgICAgICAgc25hcHMKICAgICAgICAgIHN0ZXA9IjEiCiAgICAgICAgICB2YWx1ZT0ie3tzcGVjaWZpY0hlYWx0aFBpbGxTdGVwfX0iCiAgICAgICAgPjwvcGFwZXItc2xpZGVyPgogICAgICA8L3RlbXBsYXRlPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIWFsbFN0ZXBzTW9kZUVuYWJsZWRdXSI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19tYXhTdGVwSW5kZXhdXSI+CiAgICAgICAgICA8cGFwZXItc2xpZGVyCiAgICAgICAgICAgIGlkPSJoZWFsdGgtcGlsbC1zdGVwLXNsaWRlciIKICAgICAgICAgICAgaW1tZWRpYXRlLXZhbHVlPSJ7e2hlYWx0aFBpbGxTdGVwSW5kZXh9fSIKICAgICAgICAgICAgbWF4PSJbW19tYXhTdGVwSW5kZXhdXSIKICAgICAgICAgICAgc25hcHMKICAgICAgICAgICAgc3RlcD0iMSIKICAgICAgICAgICAgdmFsdWU9Int7aGVhbHRoUGlsbFN0ZXBJbmRleH19IgogICAgICAgICAgPjwvcGFwZXItc2xpZGVyPgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDxoMj4KICAgICAgICBIZWFsdGggUGlsbAogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1toZWFsdGhQaWxsVmFsdWVzRm9yU2VsZWN0ZWROb2RlXV0iPgogICAgICAgICAgQ291bnRzIGZvciBTZWxlY3RlZCBOb2RlCiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIWhlYWx0aFBpbGxWYWx1ZXNGb3JTZWxlY3RlZE5vZGVdXSI+CiAgICAgICAgICBMZWdlbmQKICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2gyPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW2hlYWx0aFBpbGxFbnRyaWVzXV0iPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWx0aC1waWxsLWVudHJ5Ij4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9ImNvbG9yLXByZXZpZXciCiAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kOltbaXRlbS5iYWNrZ3JvdW5kX2NvbG9yXV0iCiAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1sYWJlbCI+W1tpdGVtLmxhYmVsXV08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRlbnNvci1jb3VudCI+CiAgICAgICAgICAgIFtbX2NvbXB1dGVUZW5zb3JDb3VudFN0cmluZyhoZWFsdGhQaWxsVmFsdWVzRm9yU2VsZWN0ZWROb2RlLAogICAgICAgICAgICBpbmRleCldXQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDxkaXYgaGlkZGVuJD0iW1shX2hhc0RlYnVnZ2VyTnVtZXJpY0FsZXJ0cyhkZWJ1Z2dlck51bWVyaWNBbGVydHMpXV0iPgogICAgICAgIDxoMiBpZD0ibnVtZXJpYy1hbGVydHMtaGVhZGVyIj5OdW1lcmljIEFsZXJ0czwvaDI+CiAgICAgICAgPHA+QWxlcnRzIGFyZSBzb3J0ZWQgZnJvbSB0b3AgdG8gYm90dG9tIGJ5IGluY3JlYXNpbmcgdGltZXN0YW1wLjwvcD4KICAgICAgICA8ZGl2IGlkPSJudW1lcmljLWFsZXJ0cy10YWJsZS1jb250YWluZXIiPgogICAgICAgICAgPHRhYmxlIGlkPSJudW1lcmljLWFsZXJ0cy10YWJsZSI+CiAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGg+Rmlyc3QgT2ZmZW5zZTwvdGg+CiAgICAgICAgICAgICAgICA8dGg+VGVuc29yIChEZXZpY2UpPC90aD4KICAgICAgICAgICAgICAgIDx0aCBpZD0iZXZlbnQtY291bnRzLXRoIj5FdmVudCBDb3VudHM8L3RoPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgIDx0Ym9keSBpZD0ibnVtZXJpYy1hbGVydHMtYm9keSI+PC90Ym9keT4KICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8dGVtcGxhdGUKICAgICAgICBpcz0iZG9tLWlmIgogICAgICAgIGlmPSJbWyFfaGFzRGVidWdnZXJOdW1lcmljQWxlcnRzKGRlYnVnZ2VyTnVtZXJpY0FsZXJ0cyldXSIKICAgICAgPgogICAgICAgIDxwIGNsYXNzPSJuby1udW1lcmljLWFsZXJ0cy1ub3RpZmljYXRpb24iPgogICAgICAgICAgTm8gbnVtZXJpYyBhbGVydHMgc28gZmFyLiBUaGF0IGlzIGxpa2VseSBnb29kLiBBbGVydHMgaW5kaWNhdGUgdGhlCiAgICAgICAgICBwcmVzZW5jZSBvZiBOYU4gb3IgKCsvLSkgSW5maW5pdHkgdmFsdWVzLCB3aGljaCBtYXkgYmUgY29uY2VybmluZy4KICAgICAgICA8L3A+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L3BhcGVyLW1hdGVyaWFsPgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsQUt0KV0sR1p0LnByb3RvdHlwZSwicmVuZGVySGllcmFyY2h5Iix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXksbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEdadC5wcm90b3R5cGUsImRlYnVnZ2VyTnVtZXJpY0FsZXJ0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxHWnQucHJvdG90eXBlLCJub2RlTmFtZXNUb0hlYWx0aFBpbGxzIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxHWnQucHJvdG90eXBlLCJoZWFsdGhQaWxsU3RlcEluZGV4Iix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxHWnQucHJvdG90eXBlLCJzcGVjaWZpY0hlYWx0aFBpbGxTdGVwIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxHWnQucHJvdG90eXBlLCJzZWxlY3RlZE5vZGUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEdadC5wcm90b3R5cGUsImhpZ2hsaWdodGVkTm9kZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcixub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sR1p0LnByb3RvdHlwZSwic2VsZWN0ZWROb2RlSW5jbHVkZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sR1p0LnByb3RvdHlwZSwiYXJlSGVhbHRoUGlsbHNMb2FkaW5nIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxHWnQucHJvdG90eXBlLCJoZWFsdGhQaWxsRW50cmllcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEdadC5wcm90b3R5cGUsImFsbFN0ZXBzTW9kZUVuYWJsZWQiLHZvaWQgMCksdChbcygibm9kZU5hbWVzVG9IZWFsdGhQaWxscyIsImhlYWx0aFBpbGxTdGVwSW5kZXgiLCJzZWxlY3RlZE5vZGUiLCJhbGxTdGVwc01vZGVFbmFibGVkIiwiYXJlSGVhbHRoUGlsbHNMb2FkaW5nIiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxHWnQucHJvdG90eXBlLCJoZWFsdGhQaWxsVmFsdWVzRm9yU2VsZWN0ZWROb2RlIixudWxsKSx0KFtzKCJub2RlTmFtZXNUb0hlYWx0aFBpbGxzIiwiaGVhbHRoUGlsbFN0ZXBJbmRleCIsImFsbFN0ZXBzTW9kZUVuYWJsZWQiLCJzcGVjaWZpY0hlYWx0aFBpbGxTdGVwIiwiYXJlSGVhbHRoUGlsbHNMb2FkaW5nIiksZSgiZGVzaWduOnR5cGUiLE9iamVjdCksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sR1p0LnByb3RvdHlwZSwiX2N1cnJlbnRTdGVwRGlzcGxheVZhbHVlIixudWxsKSx0KFtzKCJub2RlTmFtZXNUb0hlYWx0aFBpbGxzIiksZSgiZGVzaWduOnR5cGUiLE51bWJlciksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sR1p0LnByb3RvdHlwZSwiX2JpZ2dlc3RTdGVwRXZlclNlZW4iLG51bGwpLHQoW3MoIm5vZGVOYW1lc1RvSGVhbHRoUGlsbHMiKSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxHWnQucHJvdG90eXBlLCJfbWF4U3RlcEluZGV4IixudWxsKSx0KFthKCJkZWJ1Z2dlck51bWVyaWNBbGVydHMiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLEdadC5wcm90b3R5cGUsIl91cGRhdGVBbGVydHNMaXN0IixudWxsKSxHWnQ9dChbaSgidGYtZ3JhcGgtZGVidWdnZXItZGF0YS1jYXJkIildLEdadCksKGZ1bmN0aW9uKHQpe3QuQ09OU1Q9IkNPTlNUIix0Lk1FVEE9Ik1FVEEiLHQuT1A9Ik9QIix0LlNFUklFUz0iU0VSSUVTIix0LlNVTU1BUlk9IlNVTU1BUlkifSkoV1p0fHwoV1p0PXt9KSk7bGV0IHFadD1jbGFzcyBleHRlbmRzKGNyKGdsKHdlKSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnZlcnRpY2FsPSExLHRoaXMuZmlsbE92ZXJyaWRlPW51bGwsdGhpcy5zdHJva2VPdmVycmlkZT1udWxsLHRoaXMuaGVpZ2h0PTIwLHRoaXMuZmFkZWQ9ITF9Z2V0U3ZnRGVmaW5hYmxlRWxlbWVudCgpe3JldHVybiB0aGlzLiQuc3ZnRGVmc31nZXQgX2ZpbGwoKXt2YXIgdD10aGlzLmZpbGxPdmVycmlkZTtpZihudWxsIT10KXJldHVybiB0O3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UgV1p0Lk1FVEE6cmV0dXJuIGdLdC5ERUZBVUxUX0ZJTEw7Y2FzZSBXWnQuU0VSSUVTOnJldHVybiBfS3Q7ZGVmYXVsdDpyZXR1cm4gZEt0fX1nZXQgX3N0cm9rZSgpe3ZhciB0PXRoaXMuc3Ryb2tlT3ZlcnJpZGU7aWYobnVsbCE9dClyZXR1cm4gdDtzd2l0Y2godGhpcy50eXBlKXtjYXNlIFdadC5NRVRBOnJldHVybiBnS3QuREVGQVVMVF9TVFJPS0U7Y2FzZSBXWnQuU0VSSUVTOnJldHVybiB5S3Q7ZGVmYXVsdDpyZXR1cm4gcEt0fX1faXNUeXBlKHQsZSl7cmV0dXJuIHQ9PT1lfV9mYWRlZENsYXNzKHQsZSl7cmV0dXJuIHQ/ImZhZGVkLSIrZToiIn19O3FadC50ZW1wbGF0ZT14ZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtc2l6ZTogMDsKICAgICAgfQoKICAgICAgOmhvc3QoLmRhcmstbW9kZSkgc3ZnIHsKICAgICAgICBmaWx0ZXI6IGludmVydCgxKTsKICAgICAgfQoKICAgICAgLmZhZGVkLXJlY3QgewogICAgICAgIGZpbGw6IHVybCgjcmVjdEhhdGNoKTsKICAgICAgfQoKICAgICAgLmZhZGVkLWVsbGlwc2UgewogICAgICAgIGZpbGw6IHVybCgjZWxsaXBzZUhhdGNoKTsKICAgICAgfQoKICAgICAgLmZhZGVkLXJlY3QsCiAgICAgIC5mYWRlZC1lbGxpcHNlLAogICAgICAuZmFkZWQtc2VyaWVzIHsKICAgICAgICBzdHJva2U6IHZhcigtLXRiLWdyYXBoLWZhZGVkKSAhaW1wb3J0YW50OwogICAgICB9CiAgICAgICNyZWN0SGF0Y2ggbGluZSwKICAgICAgI2VsbGlwc2VIYXRjaCBsaW5lIHsKICAgICAgICBjb2xvcjogI2UwZDRiMyAhaW1wb3J0YW50OwogICAgICAgIGZpbGw6IHdoaXRlOwogICAgICAgIHN0cm9rZTogI2UwZDRiMyAhaW1wb3J0YW50OwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPCEtLSBTVkcgZm9yIGRlZmluaXRpb25zIC0tPgogICAgPHN2ZyBoZWlnaHQ9IjAiIHdpZHRoPSIwIiBpZD0ic3ZnRGVmcyI+CiAgICAgIDxkZWZzPgogICAgICAgIDwhLS0gSGF0Y2ggcGF0dGVybnMgZm9yIGZhZGVkIG91dCBub2Rlcy4gLS0+CiAgICAgICAgPHBhdHRlcm4KICAgICAgICAgIGlkPSJyZWN0SGF0Y2giCiAgICAgICAgICBwYXR0ZXJuVHJhbnNmb3JtPSJyb3RhdGUoNDUgMCAwKSIKICAgICAgICAgIHdpZHRoPSI1IgogICAgICAgICAgaGVpZ2h0PSI1IgogICAgICAgICAgcGF0dGVyblVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgICA+CiAgICAgICAgICA8bGluZSB4MT0iMCIgeTE9IjAiIHgyPSIwIiB5Mj0iNSIgc3R5bGU9InN0cm9rZS13aWR0aDogMSI+PC9saW5lPgogICAgICAgIDwvcGF0dGVybj4KICAgICAgICA8cGF0dGVybgogICAgICAgICAgaWQ9ImVsbGlwc2VIYXRjaCIKICAgICAgICAgIHBhdHRlcm5UcmFuc2Zvcm09InJvdGF0ZSg0NSAwIDApIgogICAgICAgICAgd2lkdGg9IjIiCiAgICAgICAgICBoZWlnaHQ9IjIiCiAgICAgICAgICBwYXR0ZXJuVW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgID4KICAgICAgICAgIDxsaW5lIHgxPSIwIiB5MT0iMCIgeDI9IjAiIHkyPSIyIiBzdHlsZT0ic3Ryb2tlLXdpZHRoOiAxIj48L2xpbmU+CiAgICAgICAgPC9wYXR0ZXJuPgogICAgICAgIDwhLS0gVGVtcGxhdGUgZm9yIGFuIE9wIG5vZGUgZWxsaXBzZS4gLS0+CiAgICAgICAgPGVsbGlwc2UKICAgICAgICAgIGlkPSJvcC1ub2RlLXN0YW1wIgogICAgICAgICAgcng9IjcuNSIKICAgICAgICAgIHJ5PSIzIgogICAgICAgICAgc3Ryb2tlPSJpbmhlcml0IgogICAgICAgICAgZmlsbD0iaW5oZXJpdCIKICAgICAgICA+PC9lbGxpcHNlPgogICAgICAgIDwhLS0gVGVtcGxhdGUgZm9yIGFuIE9wIG5vZGUgYW5ub3RhdGlvbiBlbGxpcHNlIChzbWFsbGVyKS4gLS0+CiAgICAgICAgPGVsbGlwc2UKICAgICAgICAgIGlkPSJvcC1ub2RlLWFubm90YXRpb24tc3RhbXAiCiAgICAgICAgICByeD0iNSIKICAgICAgICAgIHJ5PSIyIgogICAgICAgICAgc3Ryb2tlPSJpbmhlcml0IgogICAgICAgICAgZmlsbD0iaW5oZXJpdCIKICAgICAgICA+PC9lbGxpcHNlPgogICAgICAgIDwhLS0gVmVydGljYWxseSBzdGFja2VkIHNlcmllcyBvZiBPcCBub2RlcyB3aGVuIHVuZXhwYW5kZWQuIC0tPgogICAgICAgIDxnIGlkPSJvcC1zZXJpZXMtdmVydGljYWwtc3RhbXAiPgogICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjb3Atbm9kZS1zdGFtcCIgeD0iOCIgeT0iOSI+PC91c2U+CiAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNvcC1ub2RlLXN0YW1wIiB4PSI4IiB5PSI2Ij48L3VzZT4KICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI29wLW5vZGUtc3RhbXAiIHg9IjgiIHk9IjMiPjwvdXNlPgogICAgICAgIDwvZz4KICAgICAgICA8ZyBpZD0ib3Atc2VyaWVzLWhvcml6b250YWwtc3RhbXAiPgogICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjb3Atbm9kZS1zdGFtcCIgeD0iMTYiIHk9IjQiPjwvdXNlPgogICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjb3Atbm9kZS1zdGFtcCIgeD0iMTIiIHk9IjQiPjwvdXNlPgogICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjb3Atbm9kZS1zdGFtcCIgeD0iOCIgeT0iNCI+PC91c2U+CiAgICAgICAgPC9nPgogICAgICAgIDxnCiAgICAgICAgICBpZD0ic3VtbWFyeS1pY29uIgogICAgICAgICAgZmlsbD0iIzg0ODQ4NCIKICAgICAgICAgIGhlaWdodD0iMTIiCiAgICAgICAgICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgICAgICAgICB3aWR0aD0iMTIiCiAgICAgICAgPgogICAgICAgICAgPHBhdGgKICAgICAgICAgICAgZD0iTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek05IDE3SDd2LTdoMnY3em00IDBoLTJWN2gydjEwem00IDBoLTJ2LTRoMnY0eiIKICAgICAgICAgID48L3BhdGg+CiAgICAgICAgPC9nPgogICAgICA8L2RlZnM+CiAgICA8L3N2Zz4KICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaXNUeXBlKHR5cGUsICdDT05TVCcpXV0iPgogICAgICA8c3ZnCiAgICAgICAgaGVpZ2h0JD0iW1toZWlnaHRdXSIKICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pZCBtZWV0IgogICAgICAgIHZpZXdCb3g9IjAgMCAxMCAxMCIKICAgICAgPgogICAgICAgIDxjaXJjbGUKICAgICAgICAgIGN4PSI1IgogICAgICAgICAgY3k9IjUiCiAgICAgICAgICByPSIzIgogICAgICAgICAgZmlsbCQ9IltbX2ZpbGxdXSIKICAgICAgICAgIHN0cm9rZSQ9IltbX3N0cm9rZV1dIgogICAgICAgID48L2NpcmNsZT4KICAgICAgPC9zdmc+CiAgICA8L3RlbXBsYXRlPgogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19pc1R5cGUodHlwZSwgJ1NVTU1BUlknKV1dIj4KICAgICAgPHN2ZwogICAgICAgIHdpZHRoJD0iW1toZWlnaHRdXSIKICAgICAgICBoZWlnaHQkPSJbW2hlaWdodF1dIgogICAgICAgIHZpZXdCb3g9IjAgMCAyNCAyNCIKICAgICAgICBmaWxsPSIjODQ4NDg0IgogICAgICA+CiAgICAgICAgPHBhdGgKICAgICAgICAgIGQ9Ik0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNOSAxN0g3di03aDJ2N3ptNCAwaC0yVjdoMnYxMHptNCAwaC0ydi00aDJ2NHoiCiAgICAgICAgPjwvcGF0aD4KICAgICAgPC9zdmc+CiAgICA8L3RlbXBsYXRlPgogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19pc1R5cGUodHlwZSwgJ09QJyldXSI+CiAgICAgIDxzdmcKICAgICAgICBoZWlnaHQkPSJbW2hlaWdodF1dIgogICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaW5ZTWlkIG1lZXQiCiAgICAgICAgdmlld0JveD0iMCAwIDE2IDgiCiAgICAgID4KICAgICAgICA8dXNlCiAgICAgICAgICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgICAgICAgIHhsaW5rOmhyZWY9IiNvcC1ub2RlLXN0YW1wIgogICAgICAgICAgZmlsbCQ9IltbX2ZpbGxdXSIKICAgICAgICAgIHN0cm9rZSQ9IltbX3N0cm9rZV1dIgogICAgICAgICAgY2xhc3MkPSJ7e19mYWRlZENsYXNzKGZhZGVkLCAnZWxsaXBzZScpfX0iCiAgICAgICAgICB4PSI4IgogICAgICAgICAgeT0iNCIKICAgICAgICA+PC91c2U+CiAgICAgIDwvc3ZnPgogICAgPC90ZW1wbGF0ZT4KICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaXNUeXBlKHR5cGUsICdNRVRBJyldXSI+CiAgICAgIDxzdmcKICAgICAgICBoZWlnaHQkPSJbW2hlaWdodF1dIgogICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaW5ZTWlkIG1lZXQiCiAgICAgICAgdmlld0JveD0iMCAwIDM3IDE2IgogICAgICA+CiAgICAgICAgPHJlY3QKICAgICAgICAgIHg9IjEiCiAgICAgICAgICB5PSIxIgogICAgICAgICAgZmlsbCQ9IltbX2ZpbGxdXSIKICAgICAgICAgIHN0cm9rZSQ9IltbX3N0cm9rZV1dIgogICAgICAgICAgY2xhc3MkPSJ7e19mYWRlZENsYXNzKGZhZGVkLCAncmVjdCcpfX0iCiAgICAgICAgICBzdHJva2Utd2lkdGg9IjJweCIKICAgICAgICAgIGhlaWdodD0iMTQiCiAgICAgICAgICB3aWR0aD0iMzUiCiAgICAgICAgICByeD0iNSIKICAgICAgICAgIHJ5PSI1IgogICAgICAgID48L3JlY3Q+CiAgICAgIDwvc3ZnPgogICAgPC90ZW1wbGF0ZT4KICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaXNUeXBlKHR5cGUsICdTRVJJRVMnKV1dIj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW3ZlcnRpY2FsXV0iPgogICAgICAgIDxzdmcKICAgICAgICAgIGhlaWdodCQ9IltbaGVpZ2h0XV0iCiAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pZCBtZWV0IgogICAgICAgICAgdmlld0JveD0iMCAwIDE2IDE1IgogICAgICAgID4KICAgICAgICAgIDx1c2UKICAgICAgICAgICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgICAgICAgICAgIHhsaW5rOmhyZWY9IiNvcC1zZXJpZXMtdmVydGljYWwtc3RhbXAiCiAgICAgICAgICAgIGZpbGwkPSJbW19maWxsXV0iCiAgICAgICAgICAgIHN0cm9rZSQ9IltbX3N0cm9rZV1dIgogICAgICAgICAgICBjbGFzcyQ9Int7X2ZhZGVkQ2xhc3MoZmFkZWQsICdzZXJpZXMnKX19IgogICAgICAgICAgICB4PSIwIgogICAgICAgICAgICB5PSIyIgogICAgICAgICAgPjwvdXNlPgogICAgICAgIDwvc3ZnPgogICAgICA8L3RlbXBsYXRlPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIXZlcnRpY2FsXV0iPgogICAgICAgIDxzdmcKICAgICAgICAgIGhlaWdodCQ9IltbaGVpZ2h0XV0iCiAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pZCBtZWV0IgogICAgICAgICAgdmlld0JveD0iMCAwIDI0IDEwIgogICAgICAgID4KICAgICAgICAgIDx1c2UKICAgICAgICAgICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgICAgICAgICAgIHhsaW5rOmhyZWY9IiNvcC1zZXJpZXMtaG9yaXpvbnRhbC1zdGFtcCIKICAgICAgICAgICAgZmlsbCQ9IltbX2ZpbGxdXSIKICAgICAgICAgICAgc3Ryb2tlJD0iW1tfc3Ryb2tlXV0iCiAgICAgICAgICAgIGNsYXNzJD0ie3tfZmFkZWRDbGFzcyhmYWRlZCwgJ3NlcmllcycpfX0iCiAgICAgICAgICAgIHg9IjAiCiAgICAgICAgICAgIHk9IjEiCiAgICAgICAgICA+PC91c2U+CiAgICAgICAgPC9zdmc+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L3RlbXBsYXRlPgogIGAsdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0scVp0LnByb3RvdHlwZSwidHlwZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHFadC5wcm90b3R5cGUsInZlcnRpY2FsIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHFadC5wcm90b3R5cGUsImZpbGxPdmVycmlkZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxxWnQucHJvdG90eXBlLCJzdHJva2VPdmVycmlkZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxxWnQucHJvdG90eXBlLCJoZWlnaHQiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxxWnQucHJvdG90eXBlLCJmYWRlZCIsdm9pZCAwKSx0KFtzKCJ0eXBlIiwiZmlsbE92ZXJyaWRlIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0scVp0LnByb3RvdHlwZSwiX2ZpbGwiLG51bGwpLHQoW3MoInR5cGUiLCJzdHJva2VPdmVycmlkZSIpLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLHFadC5wcm90b3R5cGUsIl9zdHJva2UiLG51bGwpLHFadD10KFtpKCJ0Zi1ncmFwaC1pY29uIildLHFadCk7dmFyIFladD1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxnZXQgR3JhcGhJY29uVHlwZSgpe3JldHVybiBXWnR9fSk7bGV0IFhadD1jbGFzcyBleHRlbmRzKGNyKHdlKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMubm9kZT1udWxsLHRoaXMucmVuZGVySW5mbz1udWxsLHRoaXMuY29sb3JCeT1yWnQuU1RSVUNUVVJFLHRoaXMudGVtcGxhdGVJbmRleD1udWxsLHRoaXMudHlwZT1udWxsLHRoaXMudmVydGljYWw9ITEsdGhpcy5jb25zdD0hMSx0aGlzLnN1bW1hcnk9ITEsdGhpcy5maWxsPW51bGwsdGhpcy5oZWlnaHQ9MjB9X2NvbXB1dGVGaWxsT3ZlcnJpZGUodCxlLG4saSxyKXtyZXR1cm4gdCYmZSYmaT9rWnQoaSxuLGUsITEpOnJ9X2dldFN0cm9rZU92ZXJyaWRlKHQpe3JldHVybiB0P1BadCh0KTpudWxsfV9nZXRUeXBlKHQsZSxuLGkpe2NvbnN0e0dyYXBoSWNvblR5cGU6cn09WVp0O2lmKHQpc3dpdGNoKHQudHlwZSl7Y2FzZSBBJHQuT1A6e2NvbnN0IGk9dC5vcDtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGk/ci5PUDoiQ29uc3QiPT09aXx8bj9yLkNPTlNUOmkuZW5kc1dpdGgoIlN1bW1hcnkiKXx8ZT9yLlNVTU1BUlk6ci5PUH1jYXNlIEEkdC5NRVRBOnJldHVybiByLk1FVEE7Y2FzZSBBJHQuU0VSSUVTOnJldHVybiByLlNFUklFU31yZXR1cm4gaX1faXNWZXJ0aWNhbCh0LGUpe3JldHVybiB0P3QuaGFzTm9uQ29udHJvbEVkZ2VzOiEhZX1fZ2V0RmFkZWQodCl7cmV0dXJuIHQmJnQuaXNGYWRlZE91dH1fb25GaWxsT3ZlcnJpZGVDaGFuZ2VkKHQsZSl7Y29uc3R7bm9kZTpuLHJlbmRlckluZm86aSxjb2xvckJ5OnIsdGVtcGxhdGVJbmRleDpvfT10aGlzO3QhPT1lJiZBWnQodGhpcy4kLmljb24uZ2V0U3ZnRGVmaW5hYmxlRWxlbWVudCgpKSxuJiZpJiZvJiZrWnQobyxyLGksITEsdGhpcy4kLmljb24uZ2V0U3ZnRGVmaW5hYmxlRWxlbWVudCgpKX19O1hadC50ZW1wbGF0ZT14ZWAKICAgIDxzdHlsZT4KICAgICAgdGYtZ3JhcGgtaWNvbiB7CiAgICAgICAgLS10Yi1ncmFwaC1mYWRlZDogdmFyKC0tdGItZ3JhcGgtZmFkZWQpOwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPHRmLWdyYXBoLWljb24KICAgICAgaWQ9Imljb24iCiAgICAgIHR5cGU9IltbX2dldFR5cGUobm9kZSwgc3VtbWFyeSwgY29uc3QsIHR5cGUpXV0iCiAgICAgIGhlaWdodD0iW1toZWlnaHRdXSIKICAgICAgZmlsbC1vdmVycmlkZT0iW1tfZmlsbE92ZXJyaWRlXV0iCiAgICAgIHN0cm9rZS1vdmVycmlkZT0iW1tfZ2V0U3Ryb2tlT3ZlcnJpZGUoX2ZpbGxPdmVycmlkZSldXSIKICAgICAgZmFkZWQ9IltbX2dldEZhZGVkKHJlbmRlckluZm8pXV0iCiAgICAgIHZlcnRpY2FsPSJbW19pc1ZlcnRpY2FsKG5vZGUsIHZlcnRpY2FsKV1dIgogICAgPjwvdGYtZ3JhcGgtaWNvbj4KICBgLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFhadC5wcm90b3R5cGUsIm5vZGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sWFp0LnByb3RvdHlwZSwicmVuZGVySW5mbyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxYWnQucHJvdG90eXBlLCJjb2xvckJ5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKV0sWFp0LnByb3RvdHlwZSwidGVtcGxhdGVJbmRleCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxYWnQucHJvdG90eXBlLCJ0eXBlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sWFp0LnByb3RvdHlwZSwidmVydGljYWwiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxYWnQucHJvdG90eXBlLCJjb25zdCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFhadC5wcm90b3R5cGUsInN1bW1hcnkiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sWFp0LnByb3RvdHlwZSwiZmlsbCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxYWnQucHJvdG90eXBlLCJoZWlnaHQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsY29tcHV0ZWQ6Il9jb21wdXRlRmlsbE92ZXJyaWRlKG5vZGUsIHJlbmRlckluZm8sIGNvbG9yQnksIHRlbXBsYXRlSW5kZXgsIGZpbGwpIixvYnNlcnZlcjoiX29uRmlsbE92ZXJyaWRlQ2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sWFp0LnByb3RvdHlwZSwiX2ZpbGxPdmVycmlkZSIsdm9pZCAwKSxYWnQ9dChbaSgidGYtbm9kZS1pY29uIildLFhadCk7bGV0ICRadD1jbGFzcyBleHRlbmRzKGNyKHdlKSl7X2l0ZW1UeXBlQ2hhbmdlZCgpeyJzdWJub2RlIiE9PXRoaXMuaXRlbVR5cGU/dGhpcy4kWyJsaXN0LWl0ZW0iXS5jbGFzc0xpc3QuYWRkKCJjbGlja2FibGUiKTp0aGlzLiRbImxpc3QtaXRlbSJdLmNsYXNzTGlzdC5yZW1vdmUoImNsaWNrYWJsZSIpfV9ub2RlTGlzdGVuZXIodCl7dGhpcy5maXJlKCJub2RlLWxpc3QtaXRlbS0iK3QudHlwZSx7bm9kZU5hbWU6dGhpcy5uYW1lLHR5cGU6dGhpcy5pdGVtVHlwZX0pfV9mYWRlZENsYXNzKHQpe3JldHVybiB0JiZ0LmlzRmFkZWRPdXQ/ImZhZGVkIjoiIn19OyRadC50ZW1wbGF0ZT14ZWAKICAgIDxzdHlsZT4KICAgICAgI2xpc3QtaXRlbSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS10ZXh0LWNvbG9yKTsKICAgICAgICBmb250LXNpemU6IDExcHQ7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICAjbGlzdC1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1nb29nbGUteWVsbG93LTEwMCk7CiAgICAgIH0KCiAgICAgIC5jbGlja2FibGUgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgI2xpc3QtaXRlbSBzcGFuIHsKICAgICAgICBtYXJnaW4tbGVmdDogNDBweDsKICAgICAgfQoKICAgICAgI2xpc3QtaXRlbS5leGNsdWRlZCBzcGFuIHsKICAgICAgICBjb2xvcjogIzk5OTsKICAgICAgfQoKICAgICAgI2xpc3QtaXRlbSBzcGFuLmVkZ2UtbGFiZWwgewogICAgICAgIGZsb2F0OiByaWdodDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDNweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDsKICAgICAgfQoKICAgICAgLm5vZGUtaWNvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMXB4OwogICAgICAgIGxlZnQ6IDJweDsKICAgICAgfQoKICAgICAgLmZhZGVkIHNwYW4gewogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1ncmFwaC1mYWRlZCk7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdgogICAgICBpZD0ibGlzdC1pdGVtIgogICAgICBvbi1tb3VzZW92ZXI9Il9ub2RlTGlzdGVuZXIiCiAgICAgIG9uLW1vdXNlb3V0PSJfbm9kZUxpc3RlbmVyIgogICAgICBvbi1jbGljaz0iX25vZGVMaXN0ZW5lciIKICAgID4KICAgICAgPGRpdiBjbGFzcyQ9Int7X2ZhZGVkQ2xhc3MoaXRlbVJlbmRlckluZm8pfX0iPgogICAgICAgIDx0Zi1ub2RlLWljb24KICAgICAgICAgIGNsYXNzPSJub2RlLWljb24iCiAgICAgICAgICBoZWlnaHQ9IjEyIgogICAgICAgICAgY29sb3ItYnk9IltbY29sb3JCeV1dIgogICAgICAgICAgY29sb3ItYnktcGFyYW1zPSJbW2NvbG9yQnlQYXJhbXNdXSIKICAgICAgICAgIG5vZGU9IltbaXRlbU5vZGVdXSIKICAgICAgICAgIHJlbmRlci1pbmZvPSJbW2l0ZW1SZW5kZXJJbmZvXV0iCiAgICAgICAgICB0ZW1wbGF0ZS1pbmRleD0iW1t0ZW1wbGF0ZUluZGV4XV0iCiAgICAgICAgPgogICAgICAgIDwvdGYtbm9kZS1pY29uPgogICAgICAgIDxzcGFuIHRpdGxlJD0iW1tuYW1lXV0iPltbbmFtZV1dPC9zcGFuPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sJFp0LnByb3RvdHlwZSwiY2FyZE5vZGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sJFp0LnByb3RvdHlwZSwiaXRlbU5vZGUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sJFp0LnByb3RvdHlwZSwiZWRnZUxhYmVsIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLCRadC5wcm90b3R5cGUsIml0ZW1SZW5kZXJJbmZvIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLCRadC5wcm90b3R5cGUsIm5hbWUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsb2JzZXJ2ZXI6Il9pdGVtVHlwZUNoYW5nZWQifSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLCRadC5wcm90b3R5cGUsIml0ZW1UeXBlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLCRadC5wcm90b3R5cGUsImNvbG9yQnkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sJFp0LnByb3RvdHlwZSwiY29sb3JCeVBhcmFtcyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLCRadC5wcm90b3R5cGUsInRlbXBsYXRlSW5kZXgiLHZvaWQgMCksJFp0PXQoW2koInRmLWdyYXBoLW9wLWNvbXBhdC1saXN0LWl0ZW0iKV0sJFp0KTtsZXQgS1p0PWNsYXNzIGV4dGVuZHMoY3IoZ2wod2UpKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2V4cGFuZGVkPSEwLHRoaXMuX29wQ29tcGF0Q29sb3I9Zkt0LHRoaXMuX29wSW5jb21wYXRDb2xvcj1tS3QsdGhpcy5fdGVtcGxhdGVJbmRleD1udWxsfV9nZXROb2RlKHQsZSl7cmV0dXJuIGUubm9kZSh0KX1fZ2V0UmVuZGVySW5mbyh0LGUpe3JldHVybiB0aGlzLnJlbmRlckhpZXJhcmNoeS5nZXRPckNyZWF0ZVJlbmRlck5vZGVCeU5hbWUodCl9X3RvZ2dsZUV4cGFuZGVkKCl7dGhpcy5fZXhwYW5kZWQ9IXRoaXMuX2V4cGFuZGVkfV9nZXRUb2dnbGVJY29uKHQpe3JldHVybiB0PyJleHBhbmQtbGVzcyI6ImV4cGFuZC1tb3JlIn1fcmVzaXplTGlzdCh0KXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpO2UmJmUuZmlyZSgiaXJvbi1yZXNpemUiKX1nZXQgX2luY29tcGF0aWJsZU9wTm9kZXMoKXtjb25zdCB0PXRoaXMuZ3JhcGhIaWVyYXJjaHk7cmV0dXJuIHQmJnQucm9vdD8odGhpcy5hc3luYyh0aGlzLl9yZXNpemVMaXN0LmJpbmQodGhpcywiI2luY29tcGF0aWJsZU9wc0xpc3QiKSksKGZ1bmN0aW9uIGUodCl7Y29uc3QgZT1bXSxuPXt9O3JldHVybiBDZS5leHBvcnRzLmVhY2godC5yb290LmxlYXZlcygpLChpPT57bGV0IHI9dC5ub2RlKGkpO2lmKHIudHlwZT09QSR0Lk9QKXtsZXQgaT1yO2lmKCFpLmNvbXBhdGlibGUpaWYoaS5vd25pbmdTZXJpZXMpe2lmKHQuZ2V0U2VyaWVzR3JvdXBUeXBlKGkub3duaW5nU2VyaWVzKT09PUwkdC5VTkdST1VQKWUucHVzaChpKTtlbHNlIGlmKCFuW2kub3duaW5nU2VyaWVzXSl7bGV0IHI9dC5ub2RlKGkub3duaW5nU2VyaWVzKTtyJiYobltpLm93bmluZ1Nlcmllc109cixlLnB1c2gocikpfX1lbHNlIGUucHVzaChpKTtDZS5leHBvcnRzLmVhY2goaS5pbkVtYmVkZGluZ3MsKHQ9Pnt0LmNvbXBhdGlibGV8fGUucHVzaCh0KX0pKSxDZS5leHBvcnRzLmVhY2goaS5vdXRFbWJlZGRpbmdzLCh0PT57dC5jb21wYXRpYmxlfHxlLnB1c2godCl9KSl9fSkpLGV9KSh0KSk6W119Z2V0IF9vcENvbXBhdFNjb3JlKCl7dmFyIHQ9dGhpcy5ncmFwaEhpZXJhcmNoeTtpZih0JiZ0LnJvb3Qpe3ZhciBlPXQucm9vdCxuPWUuY29tcGF0aWJpbGl0eUhpc3RvZ3JhbS5jb21wYXRpYmxlLGk9ZS5jb21wYXRpYmlsaXR5SGlzdG9ncmFtLmluY29tcGF0aWJsZTtyZXR1cm4gMD09biYmMD09aT8wOk1hdGguZmxvb3IoMTAwKm4vKG4raSkpLzEwMH1yZXR1cm4gMH1nZXQgX29wQ29tcGF0U2NvcmVMYWJlbCgpe3ZhciB0PXRoaXMuX29wQ29tcGF0U2NvcmU7cmV0dXJuIER5KCIuMCUiKSh0KX1nZXQgX3RvdGFsSW5jb21wYXRPcHMoKXt2YXIgdD10aGlzLmdyYXBoSGllcmFyY2h5O3JldHVybiB0JiZ0LnJvb3Q/dC5yb290LmNvbXBhdGliaWxpdHlIaXN0b2dyYW0uaW5jb21wYXRpYmxlOjB9X2dyYXBoSGllcmFyY2h5Q2hhbmdlZCgpe3RoaXMuX3RlbXBsYXRlSW5kZXg9dGhpcy5ncmFwaEhpZXJhcmNoeS5nZXRUZW1wbGF0ZUluZGV4KCksdGhpcy5ncmFwaEhpZXJhcmNoeS5hZGRMaXN0ZW5lcihpS3QuVEVNUExBVEVTX1VQREFURUQsKCgpPT57dGhpcy5fdGVtcGxhdGVJbmRleD10aGlzLmdyYXBoSGllcmFyY2h5LmdldFRlbXBsYXRlSW5kZXgoKX0pKX19O0tadC50ZW1wbGF0ZT14ZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIG1heC1oZWlnaHQ6IDUwMHB4OwogICAgICB9CgogICAgICAuaW5jb21wYXRpYmxlLW9wcy1saXN0IHsKICAgICAgICBoZWlnaHQ6IDM1MHB4OwogICAgICAgIG1heC1oZWlnaHQ6IDQwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KCiAgICAgIGlyb24tbGlzdCB7CiAgICAgICAgZmxleDogMSAxIGF1dG87CiAgICAgIH0KCiAgICAgIHBhcGVyLWl0ZW0gewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3IpOwogICAgICB9CgogICAgICBwYXBlci1pdGVtLWJvZHlbdHdvLWxpbmVdIHsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4IDRweDsKICAgICAgfQoKICAgICAgLmV4cGFuZGVkSW5mbyB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDEycHQ7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5ub2RlLW5hbWUgewogICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgIGZvbnQtc2l6ZTogMTRwdDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuc3VidGl0bGUgewogICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktdGV4dC1jb2xvcik7CiAgICAgICAgZm9udC1zaXplOiAxMnB0OwogICAgICB9CgogICAgICAudG9nZ2xlLWJ1dHRvbiB7CiAgICAgICAgZmxvYXQ6IHJpZ2h0OwogICAgICAgIG1heC1oZWlnaHQ6IDIwcHg7CiAgICAgICAgbWF4LXdpZHRoOiAyMHB4OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC5ub24tY29udHJvbC1saXN0LWl0ZW0gewogICAgICAgIHBhZGRpbmctbGVmdDogMTBweDsKICAgICAgfQoKICAgICAgZGl2Lm9wLWNvbXBhdC1kaXNwbGF5IHsKICAgICAgICBtYXJnaW4tdG9wOiAxMHB4OwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgLyoqCiAgICAgICAqIFNhZGx5LCBiZWNhdXNlIHRoZSB3aG9sZSBib2R5IGlzIGludmVydGVkIGluIGNvbG9yLCBsZWdlbmRzIGFsc28gbmVlZAogICAgICAgKiB0byBiZSBpbnZlcnRlZC4KICAgICAgICoqLwogICAgICA6aG9zdCguZGFyay1tb2RlKSBkaXYub3AtY29tcGF0LWRpc3BsYXkgewogICAgICAgIGZpbHRlcjogaW52ZXJ0KDEpOwogICAgICB9CgogICAgICBzdmcub3AtY29tcGF0IHsKICAgICAgICB3aWR0aDogMjUwcHg7CiAgICAgICAgaGVpZ2h0OiAyNXB4OwogICAgICAgIGZsb2F0OiBsZWZ0OwogICAgICB9CgogICAgICBkaXYub3AtY29tcGF0LXZhbHVlIHsKICAgICAgICBmbG9hdDogcmlnaHQ7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogYmxhY2s7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPHBhcGVyLWl0ZW0+CiAgICAgIDxwYXBlci1pdGVtLWJvZHkgdHdvLWxpbmU+CiAgICAgICAgPGRpdj4KICAgICAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgICAgICBpY29uPSJ7e19nZXRUb2dnbGVJY29uKF9leHBhbmRlZCl9fSIKICAgICAgICAgICAgb24tY2xpY2s9Il90b2dnbGVFeHBhbmRlZCIKICAgICAgICAgICAgY2xhc3M9InRvZ2dsZS1idXR0b24iCiAgICAgICAgICA+CiAgICAgICAgICA8L3BhcGVyLWljb24tYnV0dG9uPgogICAgICAgICAgPGRpdiBjbGFzcz0ibm9kZS1uYW1lIiBpZD0ibm9kZXRpdGxlIj5bW25vZGVUaXRsZV1dPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzZWNvbmRhcnk+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJ0aXRsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9wLWNvbXBhdC1kaXNwbGF5Ij4KICAgICAgICAgICAgICA8c3ZnCiAgICAgICAgICAgICAgICBjbGFzcz0ib3AtY29tcGF0IgogICAgICAgICAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaWQgbWVldCIKICAgICAgICAgICAgICAgIHZpZXdCb3g9IjAgMCAyNTAgMjUiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZnM+CiAgICAgICAgICAgICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ib3AtY29tcGF0LWZpbGwiPgogICAgICAgICAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvciQ9IltbX29wQ29tcGF0Q29sb3JdXSI+PC9zdG9wPgogICAgICAgICAgICAgICAgICAgIDxzdG9wCiAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQkPSJbW19vcENvbXBhdFNjb3JlXV0iCiAgICAgICAgICAgICAgICAgICAgICBzdG9wLWNvbG9yJD0iW1tfb3BDb21wYXRDb2xvcl1dIgogICAgICAgICAgICAgICAgICAgID48L3N0b3A+CiAgICAgICAgICAgICAgICAgICAgPHN0b3AKICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCQ9IltbX29wQ29tcGF0U2NvcmVdXSIKICAgICAgICAgICAgICAgICAgICAgIHN0b3AtY29sb3IkPSJbW19vcEluY29tcGF0Q29sb3JdXSIKICAgICAgICAgICAgICAgICAgICA+PC9zdG9wPgogICAgICAgICAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvciQ9IltbX29wSW5jb21wYXRDb2xvciBdXSI+PC9zdG9wPgogICAgICAgICAgICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICAgICAgICAgICAgPC9kZWZzPgogICAgICAgICAgICAgICAgPHJlY3QKICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIyNSIKICAgICAgICAgICAgICAgICAgd2lkdGg9IjI1MCIKICAgICAgICAgICAgICAgICAgcng9IjUiCiAgICAgICAgICAgICAgICAgIHJ5PSI1IgogICAgICAgICAgICAgICAgICBzdHlsZT0iZmlsbDogdXJsKCcjb3AtY29tcGF0LWZpbGwnKTsiCiAgICAgICAgICAgICAgICA+PC9yZWN0PgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9wLWNvbXBhdC12YWx1ZSI+W1tfb3BDb21wYXRTY29yZUxhYmVsXV08L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9wYXBlci1pdGVtLWJvZHk+CiAgICA8L3BhcGVyLWl0ZW0+CgogICAgPGlyb24tY29sbGFwc2Ugb3BlbmVkPSJ7e19leHBhbmRlZH19Ij4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJ7e19leHBhbmRlZH19IiByZXN0YW1wPSJ0cnVlIj4KICAgICAgICA8ZGl2IGNsYXNzPSJleHBhbmRlZEluZm8iPgogICAgICAgICAgSW5jb21wYXRpYmxlIE9wZXJhdGlvbnM6ICg8c3Bhbj5bW190b3RhbEluY29tcGF0T3BzXV08L3NwYW4+KQogICAgICAgICAgPGlyb24tbGlzdAogICAgICAgICAgICBjbGFzcz0iaW5jb21wYXRpYmxlLW9wcy1saXN0IgogICAgICAgICAgICBpZD0iaW5jb21wYXRpYmxlT3BzTGlzdCIKICAgICAgICAgICAgaXRlbXM9IltbX2luY29tcGF0aWJsZU9wTm9kZXNdXSIKICAgICAgICAgID4KICAgICAgICAgICAgPHRlbXBsYXRlPgogICAgICAgICAgICAgIDx0Zi1ncmFwaC1vcC1jb21wYXQtbGlzdC1pdGVtCiAgICAgICAgICAgICAgICBjbGFzcz0ibm9uLWNvbnRyb2wtbGlzdC1pdGVtIgogICAgICAgICAgICAgICAgaXRlbS1ub2RlPSJbW2l0ZW1dXSIKICAgICAgICAgICAgICAgIGl0ZW0tcmVuZGVyLWluZm89IltbX2dldFJlbmRlckluZm8oaXRlbS5uYW1lLCByZW5kZXJIaWVyYXJjaHkpXV0iCiAgICAgICAgICAgICAgICBuYW1lPSJbW2l0ZW0ubmFtZV1dIgogICAgICAgICAgICAgICAgdGVtcGxhdGUtaW5kZXg9IltbX3RlbXBsYXRlSW5kZXhdXSIKICAgICAgICAgICAgICAgIGNvbG9yLWJ5PSJbW2NvbG9yQnldXSIKICAgICAgICAgICAgICAgIGl0ZW0tdHlwZT0iaW5jb21wYXRpYmxlLW9wcyIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPC90Zi1ncmFwaC1vcC1jb21wYXQtbGlzdC1pdGVtPgogICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPC9pcm9uLWxpc3Q+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L2lyb24tY29sbGFwc2U+CiAgYCx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixyS3QpXSxLWnQucHJvdG90eXBlLCJncmFwaEhpZXJhcmNoeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixBS3QpXSxLWnQucHJvdG90eXBlLCJyZW5kZXJIaWVyYXJjaHkiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sS1p0LnByb3RvdHlwZSwibm9kZVRpdGxlIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sS1p0LnByb3RvdHlwZSwiX2V4cGFuZGVkIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLEtadC5wcm90b3R5cGUsIl9vcENvbXBhdENvbG9yIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLEtadC5wcm90b3R5cGUsIl9vcEluY29tcGF0Q29sb3IiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSxLWnQucHJvdG90eXBlLCJfdGVtcGxhdGVJbmRleCIsdm9pZCAwKSx0KFtzKCJncmFwaEhpZXJhcmNoeSIpLGUoImRlc2lnbjp0eXBlIixBcnJheSksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sS1p0LnByb3RvdHlwZSwiX2luY29tcGF0aWJsZU9wTm9kZXMiLG51bGwpLHQoW3MoImdyYXBoSGllcmFyY2h5IiksZSgiZGVzaWduOnR5cGUiLE51bWJlciksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sS1p0LnByb3RvdHlwZSwiX29wQ29tcGF0U2NvcmUiLG51bGwpLHQoW3MoIl9vcENvbXBhdFNjb3JlIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sS1p0LnByb3RvdHlwZSwiX29wQ29tcGF0U2NvcmVMYWJlbCIsbnVsbCksdChbcygiZ3JhcGhIaWVyYXJjaHkiKSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxLWnQucHJvdG90eXBlLCJfdG90YWxJbmNvbXBhdE9wcyIsbnVsbCksdChbYSgiZ3JhcGhIaWVyYXJjaHkiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLEtadC5wcm90b3R5cGUsIl9ncmFwaEhpZXJhcmNoeUNoYW5nZWQiLG51bGwpLEtadD10KFtpKCJ0Zi1ncmFwaC1vcC1jb21wYXQtY2FyZCIpXSxLWnQpO2xldCBaWnQ9Y2xhc3MgZXh0ZW5kcyhjcihnbCh3ZSkpKXtfaXRlbVR5cGVDaGFuZ2VkKCl7InN1Ym5vZGUiIT09dGhpcy5pdGVtVHlwZT90aGlzLiRbImxpc3QtaXRlbSJdLmNsYXNzTGlzdC5hZGQoImNsaWNrYWJsZSIpOnRoaXMuJFsibGlzdC1pdGVtIl0uY2xhc3NMaXN0LnJlbW92ZSgiY2xpY2thYmxlIil9X25vZGVMaXN0ZW5lcih0KXt0aGlzLmZpcmUoIm5vZGUtbGlzdC1pdGVtLSIrdC50eXBlLHtjYXJkTm9kZTp0aGlzLmNhcmROb2RlLm5hbWUsbm9kZU5hbWU6dGhpcy5uYW1lLHR5cGU6dGhpcy5pdGVtVHlwZX0pfV9mYWRlZENsYXNzKHQpe3JldHVybiB0JiZ0LmlzRmFkZWRPdXQ/ImZhZGVkIjoiIn19O1padC50ZW1wbGF0ZT14ZWAKICAgIDxzdHlsZT4KICAgICAgI2xpc3QtaXRlbSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS10ZXh0LWNvbG9yKTsKICAgICAgICBmb250LXNpemU6IDExcHQ7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICAjbGlzdC1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1nb29nbGUteWVsbG93LTEwMCk7CiAgICAgIH0KCiAgICAgIDpob3N0KC5kYXJrLW1vZGUpICNsaXN0LWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhcGVyLXllbGxvdy05MDApOwogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICB9CgogICAgICAuY2xpY2thYmxlIHsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgICNsaXN0LWl0ZW0gc3BhbiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7CiAgICAgIH0KCiAgICAgICNsaXN0LWl0ZW0uZXhjbHVkZWQgc3BhbiB7CiAgICAgICAgY29sb3I6ICM5OTk7CiAgICAgIH0KCiAgICAgICNsaXN0LWl0ZW0gc3Bhbi5lZGdlLWxhYmVsIHsKICAgICAgICBmbG9hdDogcmlnaHQ7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiAzcHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7CiAgICAgIH0KCiAgICAgIC5ub2RlLWljb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDFweDsKICAgICAgICBsZWZ0OiAycHg7CiAgICAgIH0KCiAgICAgIC5mYWRlZCBzcGFuIHsKICAgICAgICBjb2xvcjogdmFyKC0tdGItZ3JhcGgtZmFkZWQpOwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPGRpdgogICAgICBpZD0ibGlzdC1pdGVtIgogICAgICBvbi1tb3VzZW92ZXI9Il9ub2RlTGlzdGVuZXIiCiAgICAgIG9uLW1vdXNlb3V0PSJfbm9kZUxpc3RlbmVyIgogICAgICBvbi1jbGljaz0iX25vZGVMaXN0ZW5lciIKICAgID4KICAgICAgPGRpdiBjbGFzcyQ9Int7X2ZhZGVkQ2xhc3MoaXRlbVJlbmRlckluZm8pfX0iPgogICAgICAgIDx0Zi1ub2RlLWljb24KICAgICAgICAgIGNsYXNzPSJub2RlLWljb24iCiAgICAgICAgICBoZWlnaHQ9IjEyIgogICAgICAgICAgY29sb3ItYnk9IltbY29sb3JCeV1dIgogICAgICAgICAgY29sb3ItYnktcGFyYW1zPSJbW2NvbG9yQnlQYXJhbXNdXSIKICAgICAgICAgIG5vZGU9IltbaXRlbU5vZGVdXSIKICAgICAgICAgIHJlbmRlci1pbmZvPSJbW2l0ZW1SZW5kZXJJbmZvXV0iCiAgICAgICAgICB0ZW1wbGF0ZS1pbmRleD0iW1t0ZW1wbGF0ZUluZGV4XV0iCiAgICAgICAgPjwvdGYtbm9kZS1pY29uPgogICAgICAgIDxzcGFuIHRpdGxlJD0iW1tuYW1lXV0iPltbbmFtZV1dPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJlZGdlLWxhYmVsIj5bW2VkZ2VMYWJlbF1dPC9zcGFuPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sWlp0LnByb3RvdHlwZSwiY2FyZE5vZGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sWlp0LnByb3RvdHlwZSwiaXRlbU5vZGUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sWlp0LnByb3RvdHlwZSwiZWRnZUxhYmVsIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFpadC5wcm90b3R5cGUsIml0ZW1SZW5kZXJJbmZvIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFpadC5wcm90b3R5cGUsIm5hbWUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsb2JzZXJ2ZXI6Il9pdGVtVHlwZUNoYW5nZWQifSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFpadC5wcm90b3R5cGUsIml0ZW1UeXBlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFpadC5wcm90b3R5cGUsImNvbG9yQnkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sWlp0LnByb3RvdHlwZSwiY29sb3JCeVBhcmFtcyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxaWnQucHJvdG90eXBlLCJ0ZW1wbGF0ZUluZGV4Iix2b2lkIDApLFpadD10KFtpKCJ0Zi1ub2RlLWxpc3QtaXRlbSIpXSxaWnQpO2xldCBKWnQ9Y2xhc3MgZXh0ZW5kcyhjcih3ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9leHBhbmRlZD0hMCx0aGlzLl9vcGVuZWRDb250cm9sUHJlZD0hMSx0aGlzLl9vcGVuZWRDb250cm9sU3VjYz0hMSx0aGlzLl90ZW1wbGF0ZUluZGV4PW51bGx9ZXhwYW5kTm9kZSgpe3RoaXMuZmlyZSgiX25vZGUuZXhwYW5kIix0aGlzLm5vZGUpfV9nZXROb2RlKHQsZSl7cmV0dXJuIGUubm9kZSh0KX1fZ2V0Tm9kZVN0YXRzKHQsZSl7dmFyIG49dGhpcy5fZ2V0Tm9kZSh0LGUpO3JldHVybiBuP24uc3RhdHM6bnVsbH1fZ2V0VG90YWxNaWNyb3ModCl7cmV0dXJuIHQ/dC5nZXRUb3RhbE1pY3JvcygpOjB9Z2V0IF9oYXNEaXNwbGF5YWJsZU5vZGVTdGF0cygpe3JldHVybiBiJHQodGhpcy5fbm9kZVN0YXRzKX1nZXQgX25vZGVTdGF0c0Zvcm1hdHRlZEJ5dGVzKCl7dmFyIHQ9dGhpcy5fbm9kZVN0YXRzO2lmKHQmJnQudG90YWxCeXRlcylyZXR1cm4gdiR0KHQudG90YWxCeXRlcyxfJHQpfWdldCBfbm9kZVN0YXRzRm9ybWF0dGVkQ29tcHV0ZVRpbWUoKXt2YXIgdD10aGlzLl9ub2RlU3RhdHM7aWYodCYmdC5nZXRUb3RhbE1pY3JvcygpKXJldHVybiB2JHQodC5nZXRUb3RhbE1pY3JvcygpLHkkdCl9Z2V0IF9ub2RlU3RhdHNGb3JtYXR0ZWRPdXRwdXRTaXplcygpe3ZhciB0PXRoaXMuX25vZGVTdGF0cztpZih0JiZ0Lm91dHB1dFNpemUmJnQub3V0cHV0U2l6ZS5sZW5ndGgpcmV0dXJuIENlLmV4cG9ydHMubWFwKHQub3V0cHV0U2l6ZSwoZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10Lmxlbmd0aD8ic2NhbGFyIjoiWyIrdC5qb2luKCIsICIpKyJdIn0pKX1fZ2V0UmVuZGVySW5mbyh0LGUpe3JldHVybiB0aGlzLnJlbmRlckhpZXJhcmNoeS5nZXRPckNyZWF0ZVJlbmRlck5vZGVCeU5hbWUodCl9Z2V0IF9hdHRyaWJ1dGVzKCl7dmFyIHQ9dGhpcy5fbm9kZTtpZih0aGlzLmFzeW5jKHRoaXMuX3Jlc2l6ZUxpc3QuYmluZCh0aGlzLCIjYXR0cmlidXRlc0xpc3QiKSksIXR8fCF0LmF0dHIpcmV0dXJuW107dmFyIGU9W107cmV0dXJuIENlLmV4cG9ydHMuZWFjaCh0LmF0dHIsKGZ1bmN0aW9uKHQpeyJfdG9vX2xhcmdlX2F0dHJzIj09PXQua2V5P2U9ZS5jb25jYXQodC52YWx1ZS5saXN0LnMubWFwKChmdW5jdGlvbih0KXtyZXR1cm57a2V5OnQsdmFsdWU6IlRvbyBsYXJnZSB0byBzaG93Li4uIn19KSkpOmUucHVzaCh7a2V5OnQua2V5LHZhbHVlOkpTT04uc3RyaW5naWZ5KHQudmFsdWUpfSl9KSksZX1nZXQgX2RldmljZSgpe3ZhciB0PXRoaXMuX25vZGU7cmV0dXJuIHQ/dC5kZXZpY2U6bnVsbH1nZXQgX3N1Y2Nlc3NvcnMoKXt2YXIgdD10aGlzLl9ub2RlLGU9dGhpcy5ncmFwaEhpZXJhcmNoeTtyZXR1cm4gdGhpcy5fcmVmcmVzaE5vZGVJdGVtTGlzdCgiaW5wdXRzTGlzdCIpLHQ/dGhpcy5fY29udmVydEVkZ2VMaXN0VG9FZGdlSW5mb0xpc3QoZS5nZXRTdWNjZXNzb3JzKHQubmFtZSksITEsdC5pc0dyb3VwTm9kZSk6e3JlZ3VsYXI6W10sY29udHJvbDpbXX19Z2V0IF9wcmVkZWNlc3NvcnMoKXt2YXIgdD10aGlzLl9ub2RlLGU9dGhpcy5ncmFwaEhpZXJhcmNoeTtyZXR1cm4gdGhpcy5fcmVmcmVzaE5vZGVJdGVtTGlzdCgib3V0cHV0c0xpc3QiKSx0P3RoaXMuX2NvbnZlcnRFZGdlTGlzdFRvRWRnZUluZm9MaXN0KGUuZ2V0UHJlZGVjZXNzb3JzKHQubmFtZSksITAsdC5pc0dyb3VwTm9kZSk6e3JlZ3VsYXI6W10sY29udHJvbDpbXX19Z2V0IF9mdW5jdGlvblVzYWdlcygpe3ZhciB0PXRoaXMuX25vZGUsZT10aGlzLmdyYXBoSGllcmFyY2h5O2lmKHRoaXMuX3JlZnJlc2hOb2RlSXRlbUxpc3QoImZ1bmN0aW9uVXNhZ2VzTGlzdCIpLCF0fHx0LnR5cGUhPT1BJHQuTUVUQSlyZXR1cm5bXTtjb25zdCBuPWUubGlicmFyeUZ1bmN0aW9uc1t0LmFzc29jaWF0ZWRGdW5jdGlvbl07cmV0dXJuIG4/bi51c2FnZXM6W119X3JlZnJlc2hOb2RlSXRlbUxpc3QodCl7dGhpcy5hc3luYyh0aGlzLl9yZXNpemVMaXN0LmJpbmQodGhpcyxgIyR7dH1gKSl9X2NvbnZlcnRFZGdlTGlzdFRvRWRnZUluZm9MaXN0KHQsZSxuKXt2YXIgaT10PT5DZS5leHBvcnRzLm1hcCh0LmJhc2VFZGdlTGlzdCwodD0+e3ZhciBuPWU/dC52OnQudztyZXR1cm57bmFtZTpuLG5vZGU6dGhpcy5fZ2V0Tm9kZShuLHRoaXMuZ3JhcGhIaWVyYXJjaHkpLGVkZ2VMYWJlbDpjWnQodCx0aGlzLnJlbmRlckhpZXJhcmNoeSkscmVuZGVySW5mbzp0aGlzLl9nZXRSZW5kZXJJbmZvKG4sdGhpcy5yZW5kZXJIaWVyYXJjaHkpfX0pKSxyPWZ1bmN0aW9uKHQpe3ZhciByPVtdO3JldHVybiBDZS5leHBvcnRzLmVhY2godCwodD0+e3ZhciBvPWU/dC52OnQudztuJiYxIT10LmJhc2VFZGdlTGlzdC5sZW5ndGg/ci5wdXNoKHtuYW1lOm8sbm9kZTp0aGlzLl9nZXROb2RlKG8sdGhpcy5ncmFwaEhpZXJhcmNoeSksZWRnZUxhYmVsOnVadCh0LHRoaXMucmVuZGVySGllcmFyY2h5KSxyZW5kZXJJbmZvOnRoaXMuX2dldFJlbmRlckluZm8obyx0aGlzLnJlbmRlckhpZXJhcmNoeSl9KTpyPXIuY29uY2F0KGkodCkpfSkpLHJ9LmJpbmQodGhpcyk7cmV0dXJue3JlZ3VsYXI6cih0LnJlZ3VsYXIpLGNvbnRyb2w6cih0LmNvbnRyb2wpfX1nZXQgX3N1Ym5vZGVzKCl7dmFyIHQ9dGhpcy5fbm9kZTtyZXR1cm4gdCYmdC5tZXRhZ3JhcGg/dC5tZXRhZ3JhcGgubm9kZXMoKTpudWxsfWdldCBfdG90YWxQcmVkZWNlc3NvcnMoKXt2YXIgdD10aGlzLl9wcmVkZWNlc3NvcnM7cmV0dXJuIHQucmVndWxhci5sZW5ndGgrdC5jb250cm9sLmxlbmd0aH1nZXQgX3RvdGFsU3VjY2Vzc29ycygpe3ZhciB0PXRoaXMuX3N1Y2Nlc3NvcnM7cmV0dXJuIHQucmVndWxhci5sZW5ndGgrdC5jb250cm9sLmxlbmd0aH1fdG9nZ2xlQ29udHJvbFByZWQoKXt0aGlzLl9vcGVuZWRDb250cm9sUHJlZD0hdGhpcy5fb3BlbmVkQ29udHJvbFByZWR9X3RvZ2dsZUNvbnRyb2xTdWNjKCl7dGhpcy5fb3BlbmVkQ29udHJvbFN1Y2M9IXRoaXMuX29wZW5lZENvbnRyb2xTdWNjfV90b2dnbGVFeHBhbmRlZCgpe3RoaXMuX2V4cGFuZGVkPSF0aGlzLl9leHBhbmRlZH1fZ2V0VG9nZ2xlSWNvbih0KXtyZXR1cm4gdD8iZXhwYW5kLWxlc3MiOiJleHBhbmQtbW9yZSJ9X3Jlc2V0U3RhdGUoKXt0aGlzLl9vcGVuZWRDb250cm9sUHJlZD0hMSx0aGlzLl9vcGVuZWRDb250cm9sU3VjYz0hMSx0aGlzLnNldCgiX2dyb3VwQnV0dG9uVGV4dCIseFp0KHRoaXMuX25vZGUpKX1fcmVzaXplTGlzdCh0KXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpO2UmJmUuZmlyZSgiaXJvbi1yZXNpemUiKX1fdG9nZ2xlSW5jbHVkZSgpe3RoaXMuZmlyZSgibm9kZS10b2dnbGUtaW5jbHVzaW9uIix7bmFtZTp0aGlzLmdyYXBoTm9kZU5hbWV9KX1fbm9kZUluY2x1ZGVTdGF0ZUNoYW5nZWQodCxlKXt0aGlzLnNldCgiX2F1eEJ1dHRvblRleHQiLEokdCh0KSl9X3RvZ2dsZUdyb3VwKCl7dmFyIHQ9Ylp0KHRoaXMuX25vZGUpO3RoaXMuZmlyZSgibm9kZS10b2dnbGUtc2VyaWVzZ3JvdXAiLHtuYW1lOnR9KX1faXNMaWJyYXJ5RnVuY3Rpb24odCl7cmV0dXJuIHQmJnQubmFtZS5zdGFydHNXaXRoKFQkdCl9X2lzSW5TZXJpZXModCl7cmV0dXJuIHZadCh0KX1fZ3JhcGhIaWVyYXJjaHlDaGFuZ2VkKCl7dGhpcy5fdGVtcGxhdGVJbmRleD10aGlzLmdyYXBoSGllcmFyY2h5LmdldFRlbXBsYXRlSW5kZXgoKSx0aGlzLmdyYXBoSGllcmFyY2h5LmFkZExpc3RlbmVyKGlLdC5URU1QTEFURVNfVVBEQVRFRCwoKCk9Pnt0aGlzLl90ZW1wbGF0ZUluZGV4PXRoaXMuZ3JhcGhIaWVyYXJjaHkuZ2V0VGVtcGxhdGVJbmRleCgpfSkpfX07Slp0LnRlbXBsYXRlPXhlYAogICAgPHN0eWxlPgogICAgICAuc3ViLWxpc3QtZ3JvdXAgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxMnB0OwogICAgICAgIHBhZGRpbmctYm90dG9tOiA4cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5zdWItbGlzdCB7CiAgICAgICAgbWF4LWhlaWdodDogMzAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwogICAgICB9CgogICAgICAuYXR0ci1sZWZ0IHsKICAgICAgICBmbG9hdDogbGVmdDsKICAgICAgICB3aWR0aDogMzAlOwogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LXRleHQtY29sb3IpOwogICAgICAgIGZvbnQtc2l6ZTogMTFwdDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICB9CgogICAgICAuYXR0ci1yaWdodCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDMwJTsKICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS10ZXh0LWNvbG9yKTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICB9CgogICAgICAuc3ViLWxpc3QtdGFibGUgewogICAgICAgIGRpc3BsYXk6IHRhYmxlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAuc3ViLWxpc3QtdGFibGUtcm93IHsKICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3c7CiAgICAgIH0KCiAgICAgIC5zdWItbGlzdC10YWJsZS1yb3cgLnN1Yi1saXN0LXRhYmxlLWNlbGw6bGFzdC1jaGlsZCB7CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgIH0KCiAgICAgIC5zdWItbGlzdC10YWJsZS1jZWxsIHsKICAgICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LXRleHQtY29sb3IpOwogICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7CiAgICAgICAgZm9udC1zaXplOiAxMXB0OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbWF4LXdpZHRoOiAyMDBweDsKICAgICAgICBwYWRkaW5nOiAwIDRweDsKICAgICAgfQoKICAgICAgcGFwZXItaXRlbSB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmltYXJ5LWJhY2tncm91bmQtY29sb3IpOwogICAgICB9CgogICAgICBwYXBlci1pdGVtLWJvZHlbdHdvLWxpbmVdIHsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4IDRweDsKICAgICAgfQoKICAgICAgLmV4cGFuZGVkSW5mbyB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgIH0KCiAgICAgIC5jb250cm9sRGVwcyB7CiAgICAgICAgcGFkZGluZzogMCAwIDAgOHB4OwogICAgICB9CgogICAgICAubm9kZS1uYW1lIHsKICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOwogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgICBmb250LXNpemU6IDE0cHQ7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLm5vZGUtaWNvbiB7CiAgICAgICAgZmxvYXQ6IHJpZ2h0OwogICAgICB9CgogICAgICAuc3VidGl0bGUgewogICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktdGV4dC1jb2xvcik7CiAgICAgICAgZm9udC1zaXplOiAxMnB0OwogICAgICB9CgogICAgICAuY29udHJvbExpbmUgewogICAgICAgIGZvbnQtc2l6ZTogMTFwdDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICB9CgogICAgICAudG9nZ2xlLWJ1dHRvbiB7CiAgICAgICAgZmxvYXQ6IHJpZ2h0OwogICAgICAgIG1heC1oZWlnaHQ6IDIwcHg7CiAgICAgICAgbWF4LXdpZHRoOiAyMHB4OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC5jb250cm9sLXRvZ2dsZS1idXR0b24gewogICAgICAgIGZsb2F0OiBsZWZ0OwogICAgICAgIG1heC1oZWlnaHQ6IDIwcHg7CiAgICAgICAgbWF4LXdpZHRoOiAyMHB4OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtaW5jbHVkZS1ncm91cCB7CiAgICAgICAgcGFkZGluZy10b3A6IDRweDsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1pbmNsdWRlIHsKICAgICAgICBtYXJnaW46IDVweCA2cHg7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CiAgICAgICAgcGFkZGluZzogNHB4IDZweDsKICAgICAgICBmb250LXNpemU6IDEwcHQ7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsKICAgICAgICBjb2xvcjogIzY2NjsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1pbmNsdWRlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1nb29nbGUteWVsbG93LTEwMCk7CiAgICAgIH0KCiAgICAgIC5ub24tY29udHJvbC1saXN0LWl0ZW0gewogICAgICAgIHBhZGRpbmctbGVmdDogMTBweDsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxwYXBlci1pdGVtPgogICAgICA8cGFwZXItaXRlbS1ib2R5IHR3by1saW5lPgogICAgICAgIDxkaXY+CiAgICAgICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICAgICAgaWNvbj0ie3tfZ2V0VG9nZ2xlSWNvbihfZXhwYW5kZWQpfX0iCiAgICAgICAgICAgIG9uLWNsaWNrPSJfdG9nZ2xlRXhwYW5kZWQiCiAgICAgICAgICAgIGNsYXNzPSJ0b2dnbGUtYnV0dG9uIgogICAgICAgICAgPgogICAgICAgICAgPC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im5vZGUtbmFtZSI+CiAgICAgICAgICAgIDx0Zi13YnItc3RyaW5nIHZhbHVlPSJbW19ub2RlLm5hbWVdXSIgZGVsaW1pdGVyLXBhdHRlcm49Ii8iPgogICAgICAgICAgICA8L3RmLXdici1zdHJpbmc+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHNlY29uZGFyeT4KICAgICAgICAgIDx0Zi1ub2RlLWljb24KICAgICAgICAgICAgY2xhc3M9Im5vZGUtaWNvbiIKICAgICAgICAgICAgbm9kZT0iW1tfbm9kZV1dIgogICAgICAgICAgICByZW5kZXItaW5mbz0iW1tfZ2V0UmVuZGVySW5mbyhncmFwaE5vZGVOYW1lLCByZW5kZXJIaWVyYXJjaHkpXV0iCiAgICAgICAgICAgIGNvbG9yLWJ5PSJbW2NvbG9yQnldXSIKICAgICAgICAgICAgdGVtcGxhdGUtaW5kZXg9IltbX3RlbXBsYXRlSW5kZXhdXSIKICAgICAgICAgID48L3RmLW5vZGUtaWNvbj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tfbm9kZS5vcH19Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VidGl0bGUiPgogICAgICAgICAgICAgIE9wZXJhdGlvbjoKICAgICAgICAgICAgICA8c3Bhbj5bW19ub2RlLm9wXV08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tfbm9kZS5tZXRhZ3JhcGh9fSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnRpdGxlIj4KICAgICAgICAgICAgICBTdWJncmFwaDoKICAgICAgICAgICAgICA8c3Bhbj5bW19ub2RlLmNhcmRpbmFsaXR5XV08L3NwYW4+IG5vZGVzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9wYXBlci1pdGVtLWJvZHk+CiAgICA8L3BhcGVyLWl0ZW0+CiAgICA8aXJvbi1jb2xsYXBzZSBvcGVuZWQ9Int7X2V4cGFuZGVkfX0iPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9Int7X2V4cGFuZGVkfX0iIHJlc3RhbXA9InRydWUiPgogICAgICAgIDxkaXYgY2xhc3M9ImV4cGFuZGVkSW5mbyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWItbGlzdC1ncm91cCBhdHRyaWJ1dGVzIj4KICAgICAgICAgICAgQXR0cmlidXRlcyAoPHNwYW4+W1tfYXR0cmlidXRlcy5sZW5ndGhdXTwvc3Bhbj4pCiAgICAgICAgICAgIDxpcm9uLWxpc3QKICAgICAgICAgICAgICBjbGFzcz0ic3ViLWxpc3QiCiAgICAgICAgICAgICAgaWQ9ImF0dHJpYnV0ZXNMaXN0IgogICAgICAgICAgICAgIGl0ZW1zPSJbW19hdHRyaWJ1dGVzXV0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhdHRyLWxlZnQiPltbaXRlbS5rZXldXTwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhdHRyLXJpZ2h0Ij5bW2l0ZW0udmFsdWVdXTwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC9pcm9uLWxpc3Q+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9Int7X2RldmljZX19Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViLWxpc3QtZ3JvdXAgZGV2aWNlIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhdHRyLWxlZnQiPkRldmljZTwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF0dHItcmlnaHQiPltbX2RldmljZV1dPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWItbGlzdC1ncm91cCBwcmVkZWNlc3NvcnMiPgogICAgICAgICAgICBJbnB1dHMgKDxzcGFuPltbX3RvdGFsUHJlZGVjZXNzb3JzXV08L3NwYW4+KQogICAgICAgICAgICA8aXJvbi1saXN0CiAgICAgICAgICAgICAgY2xhc3M9InN1Yi1saXN0IgogICAgICAgICAgICAgIGlkPSJpbnB1dHNMaXN0IgogICAgICAgICAgICAgIGl0ZW1zPSJbW19wcmVkZWNlc3NvcnMucmVndWxhcl1dIgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHRlbXBsYXRlPgogICAgICAgICAgICAgICAgPHRmLW5vZGUtbGlzdC1pdGVtCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJub24tY29udHJvbC1saXN0LWl0ZW0iCiAgICAgICAgICAgICAgICAgIGNhcmQtbm9kZT0iW1tfbm9kZV1dIgogICAgICAgICAgICAgICAgICBpdGVtLW5vZGU9IltbaXRlbS5ub2RlXV0iCiAgICAgICAgICAgICAgICAgIGVkZ2UtbGFiZWw9IltbaXRlbS5lZGdlTGFiZWxdXSIKICAgICAgICAgICAgICAgICAgaXRlbS1yZW5kZXItaW5mbz0iW1tpdGVtLnJlbmRlckluZm9dXSIKICAgICAgICAgICAgICAgICAgbmFtZT0iW1tpdGVtLm5hbWVdXSIKICAgICAgICAgICAgICAgICAgaXRlbS10eXBlPSJwcmVkZWNlc3NvcnMiCiAgICAgICAgICAgICAgICAgIGNvbG9yLWJ5PSJbW2NvbG9yQnldXSIKICAgICAgICAgICAgICAgICAgdGVtcGxhdGUtaW5kZXg9IltbX3RlbXBsYXRlSW5kZXhdXSIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDwvdGYtbm9kZS1saXN0LWl0ZW0+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC9pcm9uLWxpc3Q+CiAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfcHJlZGVjZXNzb3JzLmNvbnRyb2wubGVuZ3RoXV0iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xEZXBzIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xMaW5lIj4KICAgICAgICAgICAgICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgICAgICAgICAgICAgaWNvbj0ie3tfZ2V0VG9nZ2xlSWNvbihfb3BlbmVkQ29udHJvbFByZWQpfX0iCiAgICAgICAgICAgICAgICAgICAgb24tY2xpY2s9Il90b2dnbGVDb250cm9sUHJlZCIKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iY29udHJvbC10b2dnbGUtYnV0dG9uIgogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgICAgICAgICAgICAgIENvbnRyb2wgZGVwZW5kZW5jaWVzCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxpcm9uLWNvbGxhcHNlIG9wZW5lZD0ie3tfb3BlbmVkQ29udHJvbFByZWR9fSIgbm8tYW5pbWF0aW9uPgogICAgICAgICAgICAgICAgICA8dGVtcGxhdGUKICAgICAgICAgICAgICAgICAgICBpcz0iZG9tLWlmIgogICAgICAgICAgICAgICAgICAgIGlmPSJ7e19vcGVuZWRDb250cm9sUHJlZH19IgogICAgICAgICAgICAgICAgICAgIHJlc3RhbXA9InRydWUiCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICA8aXJvbi1saXN0CiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ic3ViLWxpc3QiCiAgICAgICAgICAgICAgICAgICAgICBpdGVtcz0iW1tfcHJlZGVjZXNzb3JzLmNvbnRyb2xdXSIKICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Zi1ub2RlLWxpc3QtaXRlbQogICAgICAgICAgICAgICAgICAgICAgICAgIGNhcmQtbm9kZT0iW1tfbm9kZV1dIgogICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0tbm9kZT0iW1tpdGVtLm5vZGVdXSIKICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLXJlbmRlci1pbmZvPSJbW2l0ZW0ucmVuZGVySW5mb11dIgogICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9IltbaXRlbS5uYW1lXV0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS10eXBlPSJwcmVkZWNlc3NvcnMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3ItYnk9IltbY29sb3JCeV1dIgogICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlLWluZGV4PSJbW190ZW1wbGF0ZUluZGV4XV0iCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgPC90Zi1ub2RlLWxpc3QtaXRlbT4KICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgICAgICAgICAgPC9pcm9uLWxpc3Q+CiAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgICAgICA8L2lyb24tY29sbGFwc2U+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWItbGlzdC1ncm91cCBzdWNjZXNzb3JzIj4KICAgICAgICAgICAgT3V0cHV0cyAoPHNwYW4+W1tfdG90YWxTdWNjZXNzb3JzXV08L3NwYW4+KQogICAgICAgICAgICA8aXJvbi1saXN0CiAgICAgICAgICAgICAgY2xhc3M9InN1Yi1saXN0IgogICAgICAgICAgICAgIGlkPSJvdXRwdXRzTGlzdCIKICAgICAgICAgICAgICBpdGVtcz0iW1tfc3VjY2Vzc29ycy5yZWd1bGFyXV0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgICAgICA8dGYtbm9kZS1saXN0LWl0ZW0KICAgICAgICAgICAgICAgICAgY2xhc3M9Im5vbi1jb250cm9sLWxpc3QtaXRlbSIKICAgICAgICAgICAgICAgICAgY2FyZC1ub2RlPSJbW19ub2RlXV0iCiAgICAgICAgICAgICAgICAgIGl0ZW0tbm9kZT0iW1tpdGVtLm5vZGVdXSIKICAgICAgICAgICAgICAgICAgZWRnZS1sYWJlbD0iW1tpdGVtLmVkZ2VMYWJlbF1dIgogICAgICAgICAgICAgICAgICBpdGVtLXJlbmRlci1pbmZvPSJbW2l0ZW0ucmVuZGVySW5mb11dIgogICAgICAgICAgICAgICAgICBuYW1lPSJbW2l0ZW0ubmFtZV1dIgogICAgICAgICAgICAgICAgICBpdGVtLXR5cGU9InN1Y2Nlc3NvciIKICAgICAgICAgICAgICAgICAgY29sb3ItYnk9IltbY29sb3JCeV1dIgogICAgICAgICAgICAgICAgICB0ZW1wbGF0ZS1pbmRleD0iW1tfdGVtcGxhdGVJbmRleF1dIgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPC90Zi1ub2RlLWxpc3QtaXRlbT4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L2lyb24tbGlzdD4KICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19zdWNjZXNzb3JzLmNvbnRyb2wubGVuZ3RoXV0iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xEZXBzIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xMaW5lIj4KICAgICAgICAgICAgICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgICAgICAgICAgICAgaWNvbj0ie3tfZ2V0VG9nZ2xlSWNvbihfb3BlbmVkQ29udHJvbFN1Y2MpfX0iCiAgICAgICAgICAgICAgICAgICAgb24tY2xpY2s9Il90b2dnbGVDb250cm9sU3VjYyIKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iY29udHJvbC10b2dnbGUtYnV0dG9uIgogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgICAgICAgICAgICAgIENvbnRyb2wgZGVwZW5kZW5jaWVzCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxpcm9uLWNvbGxhcHNlIG9wZW5lZD0ie3tfb3BlbmVkQ29udHJvbFN1Y2N9fSIgbm8tYW5pbWF0aW9uPgogICAgICAgICAgICAgICAgICA8dGVtcGxhdGUKICAgICAgICAgICAgICAgICAgICBpcz0iZG9tLWlmIgogICAgICAgICAgICAgICAgICAgIGlmPSJ7e19vcGVuZWRDb250cm9sU3VjY319IgogICAgICAgICAgICAgICAgICAgIHJlc3RhbXA9InRydWUiCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICA8aXJvbi1saXN0IGNsYXNzPSJzdWItbGlzdCIgaXRlbXM9IltbX3N1Y2Nlc3NvcnMuY29udHJvbF1dIj4KICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHRmLW5vZGUtbGlzdC1pdGVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FyZC1ub2RlPSJbW19ub2RlXV0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS1ub2RlPSJbW2l0ZW0ubm9kZV1dIgogICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0tcmVuZGVyLWluZm89IltbaXRlbS5yZW5kZXJJbmZvXV0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iW1tpdGVtLm5hbWVdXSIKICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLXR5cGU9InN1Y2Nlc3NvcnMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3ItYnk9IltbY29sb3JCeV1dIgogICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlLWluZGV4PSJbW190ZW1wbGF0ZUluZGV4XV0iCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgPC90Zi1ub2RlLWxpc3QtaXRlbT4KICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgICAgICAgICAgPC9pcm9uLWxpc3Q+CiAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgICAgICA8L2lyb24tY29sbGFwc2U+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0ie3tfaGFzRGlzcGxheWFibGVOb2RlU3RhdHN9fSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LWdyb3VwIG5vZGUtc3RhdHMiPgogICAgICAgICAgICAgIE5vZGUgU3RhdHMKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWItbGlzdC10YWJsZSI+CiAgICAgICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9Int7X25vZGVTdGF0cy50b3RhbEJ5dGVzfX0iPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWItbGlzdC10YWJsZS1yb3ciPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LXRhYmxlLWNlbGwiPk1lbW9yeTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LXRhYmxlLWNlbGwiPgogICAgICAgICAgICAgICAgICAgICAgW1tfbm9kZVN0YXRzRm9ybWF0dGVkQnl0ZXNdXQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9Int7X2dldFRvdGFsTWljcm9zKF9ub2RlU3RhdHMpfX0iPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWItbGlzdC10YWJsZS1yb3ciPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LXRhYmxlLWNlbGwiPkNvbXB1dGUgVGltZTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LXRhYmxlLWNlbGwiPgogICAgICAgICAgICAgICAgICAgICAgW1tfbm9kZVN0YXRzRm9ybWF0dGVkQ29tcHV0ZVRpbWVdXQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9Int7X25vZGVTdGF0cy5vdXRwdXRTaXplfX0iPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWItbGlzdC10YWJsZS1yb3ciPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LXRhYmxlLWNlbGwiPlRlbnNvciBPdXRwdXQgU2l6ZXM8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWItbGlzdC10YWJsZS1jZWxsIj4KICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZQogICAgICAgICAgICAgICAgICAgICAgICBpcz0iZG9tLXJlcGVhdCIKICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXM9Int7X25vZGVTdGF0c0Zvcm1hdHRlZE91dHB1dFNpemVzfX0iCiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgIFtbaXRlbV1dIDxiciAvPgogICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19mdW5jdGlvblVzYWdlcy5sZW5ndGhdXSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yi1saXN0LWdyb3VwIHByZWRlY2Vzc29ycyI+CiAgICAgICAgICAgICAgVXNhZ2VzIG9mIHRoZSBGdW5jdGlvbiAoPHNwYW4+W1tfZnVuY3Rpb25Vc2FnZXMubGVuZ3RoXV08L3NwYW4+KQogICAgICAgICAgICAgIDxpcm9uLWxpc3QKICAgICAgICAgICAgICAgIGNsYXNzPSJzdWItbGlzdCIKICAgICAgICAgICAgICAgIGlkPSJmdW5jdGlvblVzYWdlc0xpc3QiCiAgICAgICAgICAgICAgICBpdGVtcz0iW1tfZnVuY3Rpb25Vc2FnZXNdXSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgICAgICAgIDx0Zi1ub2RlLWxpc3QtaXRlbQogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJub24tY29udHJvbC1saXN0LWl0ZW0iCiAgICAgICAgICAgICAgICAgICAgY2FyZC1ub2RlPSJbW19ub2RlXV0iCiAgICAgICAgICAgICAgICAgICAgaXRlbS1ub2RlPSJbW2l0ZW1dXSIKICAgICAgICAgICAgICAgICAgICBuYW1lPSJbW2l0ZW0ubmFtZV1dIgogICAgICAgICAgICAgICAgICAgIGl0ZW0tdHlwZT0iZnVuY3Rpb25Vc2FnZXMiCiAgICAgICAgICAgICAgICAgICAgY29sb3ItYnk9IltbY29sb3JCeV1dIgogICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlLWluZGV4PSJbW190ZW1wbGF0ZUluZGV4XV0iCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPC90Zi1ub2RlLWxpc3QtaXRlbT4KICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgICAgPC9pcm9uLWxpc3Q+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KCiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIV9pc0xpYnJhcnlGdW5jdGlvbihfbm9kZSldXSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvZ2dsZS1pbmNsdWRlLWdyb3VwIj4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgICByYWlzZWQKICAgICAgICAgICAgICAgIGNsYXNzPSJ0b2dnbGUtaW5jbHVkZSIKICAgICAgICAgICAgICAgIG9uLWNsaWNrPSJfdG9nZ2xlSW5jbHVkZSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8c3Bhbj5bW19hdXhCdXR0b25UZXh0XV08L3NwYW4+CiAgICAgICAgICAgICAgPC9wYXBlci1idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KCiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9Int7X2lzSW5TZXJpZXMoX25vZGUpfX0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2dnbGUtaW5jbHVkZS1ncm91cCI+CiAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbgogICAgICAgICAgICAgICAgcmFpc2VkCiAgICAgICAgICAgICAgICBjbGFzcz0idG9nZ2xlLWluY2x1ZGUiCiAgICAgICAgICAgICAgICBvbi1jbGljaz0iX3RvZ2dsZUdyb3VwIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxzcGFuPltbX2dyb3VwQnV0dG9uVGV4dF1dPC9zcGFuPgogICAgICAgICAgICAgIDwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L2lyb24tY29sbGFwc2U+CiAgYCx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxKWnQucHJvdG90eXBlLCJncmFwaE5vZGVOYW1lIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLHJLdCldLEpadC5wcm90b3R5cGUsImdyYXBoSGllcmFyY2h5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEpadC5wcm90b3R5cGUsInJlbmRlckhpZXJhcmNoeSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxKWnQucHJvdG90eXBlLCJjb2xvckJ5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LGNvbXB1dGVkOiJfZ2V0Tm9kZShncmFwaE5vZGVOYW1lLCBncmFwaEhpZXJhcmNoeSkiLG9ic2VydmVyOiJfcmVzZXRTdGF0ZSJ9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sSlp0LnByb3RvdHlwZSwiX25vZGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3QsY29tcHV0ZWQ6Il9nZXROb2RlU3RhdHMoZ3JhcGhOb2RlTmFtZSwgZ3JhcGhIaWVyYXJjaHkpIixvYnNlcnZlcjoiX3Jlc2V0U3RhdGUifSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEpadC5wcm90b3R5cGUsIl9ub2RlU3RhdHMiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXIsb2JzZXJ2ZXI6Il9ub2RlSW5jbHVkZVN0YXRlQ2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sSlp0LnByb3RvdHlwZSwibm9kZUluY2x1ZGUiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxKWnQucHJvdG90eXBlLCJfZXhwYW5kZWQiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxKWnQucHJvdG90eXBlLCJfb3BlbmVkQ29udHJvbFByZWQiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxKWnQucHJvdG90eXBlLCJfb3BlbmVkQ29udHJvbFN1Y2MiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sSlp0LnByb3RvdHlwZSwiX2F1eEJ1dHRvblRleHQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sSlp0LnByb3RvdHlwZSwiX2dyb3VwQnV0dG9uVGV4dCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLEpadC5wcm90b3R5cGUsIl90ZW1wbGF0ZUluZGV4Iix2b2lkIDApLHQoW3MoIl9ub2RlU3RhdHMiKSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSlp0LnByb3RvdHlwZSwiX2hhc0Rpc3BsYXlhYmxlTm9kZVN0YXRzIixudWxsKSx0KFtzKCJfbm9kZVN0YXRzIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSlp0LnByb3RvdHlwZSwiX25vZGVTdGF0c0Zvcm1hdHRlZEJ5dGVzIixudWxsKSx0KFtzKCJfbm9kZVN0YXRzIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSlp0LnByb3RvdHlwZSwiX25vZGVTdGF0c0Zvcm1hdHRlZENvbXB1dGVUaW1lIixudWxsKSx0KFtzKCJfbm9kZVN0YXRzIiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxKWnQucHJvdG90eXBlLCJfbm9kZVN0YXRzRm9ybWF0dGVkT3V0cHV0U2l6ZXMiLG51bGwpLHQoW3MoIl9ub2RlIiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxKWnQucHJvdG90eXBlLCJfYXR0cmlidXRlcyIsbnVsbCksdChbcygiX25vZGUiKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxKWnQucHJvdG90eXBlLCJfZGV2aWNlIixudWxsKSx0KFtzKCJfbm9kZSIsImdyYXBoSGllcmFyY2h5IiksZSgiZGVzaWduOnR5cGUiLE9iamVjdCksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSlp0LnByb3RvdHlwZSwiX3N1Y2Nlc3NvcnMiLG51bGwpLHQoW3MoIl9ub2RlIiwiZ3JhcGhIaWVyYXJjaHkiKSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxKWnQucHJvdG90eXBlLCJfcHJlZGVjZXNzb3JzIixudWxsKSx0KFtzKCJfbm9kZSIsImdyYXBoSGllcmFyY2h5IiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxKWnQucHJvdG90eXBlLCJfZnVuY3Rpb25Vc2FnZXMiLG51bGwpLHQoW3MoIl9ub2RlIiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxKWnQucHJvdG90eXBlLCJfc3Vibm9kZXMiLG51bGwpLHQoW3MoIl9wcmVkZWNlc3NvcnMiKSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxKWnQucHJvdG90eXBlLCJfdG90YWxQcmVkZWNlc3NvcnMiLG51bGwpLHQoW3MoIl9zdWNjZXNzb3JzIiksZSgiZGVzaWduOnR5cGUiLE51bWJlciksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sSlp0LnByb3RvdHlwZSwiX3RvdGFsU3VjY2Vzc29ycyIsbnVsbCksdChbYSgiZ3JhcGhIaWVyYXJjaHkiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLEpadC5wcm90b3R5cGUsIl9ncmFwaEhpZXJhcmNoeUNoYW5nZWQiLG51bGwpLEpadD10KFtpKCJ0Zi1ub2RlLWluZm8iKV0sSlp0KTtsZXQgUVp0PWNsYXNzIGV4dGVuZHMoY3Iod2UpKXtyZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJub2RlLWxpc3QtaXRlbS1jbGljayIsdGhpcy5fbm9kZUxpc3RJdGVtQ2xpY2tlZC5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm5vZGUtbGlzdC1pdGVtLW1vdXNlb3ZlciIsdGhpcy5fbm9kZUxpc3RJdGVtTW91c2VvdmVyLmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibm9kZS1saXN0LWl0ZW0tbW91c2VvdXQiLHRoaXMuX25vZGVMaXN0SXRlbU1vdXNlb3V0LmJpbmQodGhpcykpfV9ub2RlTGlzdEl0ZW1DbGlja2VkKHQpe3RoaXMuc2VsZWN0ZWROb2RlPXQuZGV0YWlsLm5vZGVOYW1lfV9ub2RlTGlzdEl0ZW1Nb3VzZW92ZXIodCl7dGhpcy5oaWdobGlnaHRlZE5vZGU9dC5kZXRhaWwubm9kZU5hbWV9X25vZGVMaXN0SXRlbU1vdXNlb3V0KCl7dGhpcy5oaWdobGlnaHRlZE5vZGU9bnVsbH1faGVhbHRoUGlsbHNBdmFpbGFibGUodCxlKXtyZXR1cm4gdCYmZSYmT2JqZWN0LmtleXMoZSkubGVuZ3RoPjB9X2VxdWFscyh0LGUpe3JldHVybiB0PT09ZX19O1FadC50ZW1wbGF0ZT14ZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yKTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWF4LWhlaWdodDogNjUwcHg7CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KCiAgICAgIGgyIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9Int7c2VsZWN0ZWROb2RlfX0iPgogICAgICA8cGFwZXItbWF0ZXJpYWwgZWxldmF0aW9uPSIxIiBjbGFzcz0iY2FyZCI+CiAgICAgICAgPHRmLW5vZGUtaW5mbwogICAgICAgICAgZ3JhcGgtaGllcmFyY2h5PSJbW2dyYXBoSGllcmFyY2h5XV0iCiAgICAgICAgICByZW5kZXItaGllcmFyY2h5PSJbW3JlbmRlckhpZXJhcmNoeV1dIgogICAgICAgICAgZmxhdC1ncmFwaD0iW1tncmFwaF1dIgogICAgICAgICAgZ3JhcGgtbm9kZS1uYW1lPSJbW3NlbGVjdGVkTm9kZV1dIgogICAgICAgICAgbm9kZS1pbmNsdWRlPSJbW3NlbGVjdGVkTm9kZUluY2x1ZGVdXSIKICAgICAgICAgIGhpZ2hsaWdodGVkLW5vZGU9Int7aGlnaGxpZ2h0ZWROb2RlfX0iCiAgICAgICAgICBjb2xvci1ieT0iW1tjb2xvckJ5XV0iCiAgICAgICAgPgogICAgICAgIDwvdGYtbm9kZS1pbmZvPgogICAgICA8L3BhcGVyLW1hdGVyaWFsPgogICAgPC90ZW1wbGF0ZT4KICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfZXF1YWxzKGNvbG9yQnksICdvcF9jb21wYXRpYmlsaXR5JyldXSI+CiAgICAgIDx0Zi1ncmFwaC1vcC1jb21wYXQtY2FyZAogICAgICAgIGdyYXBoLWhpZXJhcmNoeT0iW1tncmFwaEhpZXJhcmNoeV1dIgogICAgICAgIHJlbmRlci1oaWVyYXJjaHk9IltbcmVuZGVySGllcmFyY2h5XV0iCiAgICAgICAgY29sb3ItYnk9IltbY29sb3JCeV1dIgogICAgICAgIG5vZGUtdGl0bGU9IltbY29tcGF0Tm9kZVRpdGxlXV0iCiAgICAgID4KICAgICAgPC90Zi1ncmFwaC1vcC1jb21wYXQtY2FyZD4KICAgIDwvdGVtcGxhdGU+CiAgICA8dGVtcGxhdGUKICAgICAgaXM9ImRvbS1pZiIKICAgICAgaWY9IltbX2hlYWx0aFBpbGxzQXZhaWxhYmxlKGRlYnVnZ2VyRGF0YUVuYWJsZWQsIG5vZGVOYW1lc1RvSGVhbHRoUGlsbHMpXV0iCiAgICA+CiAgICAgIDx0Zi1ncmFwaC1kZWJ1Z2dlci1kYXRhLWNhcmQKICAgICAgICByZW5kZXItaGllcmFyY2h5PSJbW3JlbmRlckhpZXJhcmNoeV1dIgogICAgICAgIGRlYnVnZ2VyLW51bWVyaWMtYWxlcnRzPSJbW2RlYnVnZ2VyTnVtZXJpY0FsZXJ0c11dIgogICAgICAgIG5vZGUtbmFtZXMtdG8taGVhbHRoLXBpbGxzPSJbW25vZGVOYW1lc1RvSGVhbHRoUGlsbHNdXSIKICAgICAgICBzZWxlY3RlZC1ub2RlPSJ7e3NlbGVjdGVkTm9kZX19IgogICAgICAgIGhpZ2hsaWdodGVkLW5vZGU9Int7aGlnaGxpZ2h0ZWROb2RlfX0iCiAgICAgICAgYXJlLWhlYWx0aC1waWxscy1sb2FkaW5nPSJbW2FyZUhlYWx0aFBpbGxzTG9hZGluZ11dIgogICAgICAgIGFsbC1zdGVwcy1tb2RlLWVuYWJsZWQ9Int7YWxsU3RlcHNNb2RlRW5hYmxlZH19IgogICAgICAgIHNwZWNpZmljLWhlYWx0aC1waWxsLXN0ZXA9Int7c3BlY2lmaWNIZWFsdGhQaWxsU3RlcH19IgogICAgICAgIGhlYWx0aC1waWxsLXN0ZXAtaW5kZXg9Int7aGVhbHRoUGlsbFN0ZXBJbmRleH19IgogICAgICA+CiAgICAgIDwvdGYtZ3JhcGgtZGVidWdnZXItZGF0YS1jYXJkPgogICAgPC90ZW1wbGF0ZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFFadC5wcm90b3R5cGUsInRpdGxlIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLHJLdCldLFFadC5wcm90b3R5cGUsImdyYXBoSGllcmFyY2h5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLEkkdCldLFFadC5wcm90b3R5cGUsImdyYXBoIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLEFLdCldLFFadC5wcm90b3R5cGUsInJlbmRlckhpZXJhcmNoeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxRWnQucHJvdG90eXBlLCJub2RlTmFtZXNUb0hlYWx0aFBpbGxzIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxRWnQucHJvdG90eXBlLCJoZWFsdGhQaWxsU3RlcEluZGV4Iix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFFadC5wcm90b3R5cGUsImNvbG9yQnkiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sUVp0LnByb3RvdHlwZSwiY29tcGF0Tm9kZVRpdGxlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxRWnQucHJvdG90eXBlLCJzZWxlY3RlZE5vZGUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFFadC5wcm90b3R5cGUsImhpZ2hsaWdodGVkTm9kZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcixub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sUVp0LnByb3RvdHlwZSwic2VsZWN0ZWROb2RlSW5jbHVkZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFFadC5wcm90b3R5cGUsImRlYnVnZ2VyRGF0YUVuYWJsZWQiLHZvaWQgMCksUVp0PXQoW2koInRmLWdyYXBoLWluZm8iKV0sUVp0KTtjb25zdCB0SnQ9e01BWF9OT0RFX0NPVU5UOjFlNCxNQVhfRURHRV9DT1VOVDoxZTR9O2xldCBlSnQ9Y2xhc3MgZXh0ZW5kcyhjcih3ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmhpZXJhcmNoeVBhcmFtcz1hS3QsdGhpcy5hbGxTdGVwc01vZGVFbmFibGVkPSExLHRoaXMuc3BlY2lmaWNIZWFsdGhQaWxsU3RlcD0wLHRoaXMuY29tcGF0Tm9kZVRpdGxlPSJUUFUgQ29tcGF0aWJpbGl0eSJ9Zml0KCl7dGhpcy4kLmdyYXBoLmZpdCgpfWRvd25sb2FkQXNJbWFnZSh0KXtyZXR1cm4gbih0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IGU9eWllbGQgdGhpcy4kLmdyYXBoLmdldEltYWdlQmxvYigpLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO24uaHJlZj1VUkwuY3JlYXRlT2JqZWN0VVJMKGUpLG4uZG93bmxvYWQ9dCxuLmNsaWNrKCksVVJMLnJldm9rZU9iamVjdFVSTChuLmhyZWYpfSkpfV9pc05vdENvbXBsZXRlKHQpe3JldHVybiB0LnZhbHVlPDEwMH1fZ2V0Q29udGFpbmVyQ2xhc3ModCl7dmFyIGU9ImNvbnRhaW5lciI7cmV0dXJuIHQuZXJyb3ImJihlKz0iIGVycm9yIiksdGhpcy5faXNOb3RDb21wbGV0ZSh0KSYmKGUrPSIgbG9hZGluZyIpLGV9X29uTm9kZUluY2x1c2lvblRvZ2dsZWQodCl7dGhpcy4kLmdyYXBoLm5vZGVUb2dnbGVFeHRyYWN0KHQuZGV0YWlsLm5hbWUpfV9vbk5vZGVTZXJpZXNHcm91cFRvZ2dsZWQodCl7dGhpcy4kLmdyYXBoLm5vZGVUb2dnbGVTZXJpZXNHcm91cCh0LmRldGFpbC5uYW1lKX1fdXBkYXRlTm9kZUluY2x1ZGUoKXtjb25zdCB0PXRoaXMucmVuZGVySGllcmFyY2h5P3RoaXMucmVuZGVySGllcmFyY2h5LmdldE5vZGVCeU5hbWUodGhpcy5zZWxlY3RlZE5vZGUpOm51bGw7dGhpcy5fc2VsZWN0ZWROb2RlSW5jbHVkZT10P3QuaW5jbHVkZTprJHQuVU5TUEVDSUZJRUR9X3NsaW1HcmFwaENoYW5nZWQoKXtpZighdGhpcy5ncmFwaClyZXR1cm47Y29uc3R7TUFYX05PREVfQ09VTlQ6dCxNQVhfRURHRV9DT1VOVDplfT10SnQ7T2JqZWN0LmtleXModGhpcy5ncmFwaC5ub2RlcykubGVuZ3RoPnQmJnRoaXMuZ3JhcGguZWRnZXMubGVuZ3RoPmUmJnRoaXMuY29sb3JCeT09PXJadC5TVFJVQ1RVUkUmJih0aGlzLmNvbG9yQnk9clp0Lk5PTkUpfV9lbnN1cmVUZW1wbGF0ZXMoKXt0aGlzLmdyYXBoSGllcmFyY2h5JiZ0aGlzLmNvbG9yQnk9PT1yWnQuU1RSVUNUVVJFJiYodGhpcy5ncmFwaEhpZXJhcmNoeS5nZXRUZW1wbGF0ZUluZGV4KCl8fHRoaXMuZ3JhcGhIaWVyYXJjaHkudXBkYXRlVGVtcGxhdGVzKCkpfX07ZUp0LnRlbXBsYXRlPXhlYAogICAgPHN0eWxlPgogICAgICA6Omhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAvZGVlcC8gLmNsb3NlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGxlZnQ6IDE1cHg7CiAgICAgICAgYm90dG9tOiAxNXB4OwogICAgICB9CgogICAgICAuY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmNvbnRhaW5lci5sb2FkaW5nIHsKICAgICAgICBjdXJzb3I6IHByb2dyZXNzOwogICAgICAgIG9wYWNpdHk6IDAuMTsKICAgICAgfQoKICAgICAgLmNvbnRhaW5lci5sb2FkaW5nLmVycm9yIHsKICAgICAgICBjdXJzb3I6IGF1dG87CiAgICAgIH0KCiAgICAgICNpbmZvIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDVweDsKICAgICAgICB0b3A6IDVweDsKICAgICAgICBwYWRkaW5nOiAwcHg7CiAgICAgICAgbWF4LXdpZHRoOiAzODBweDsKICAgICAgICBtaW4td2lkdGg6IDMyMHB4OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTsKICAgICAgICBAYXBwbHkgLS1zaGFkb3ctZWxldmF0aW9uLTJkcDsKICAgICAgfQoKICAgICAgI21haW4gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgI3Byb2dyZXNzLWJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNDBweDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgI3Byb2dyZXNzLW1zZyB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICB3aWR0aDogNDAwcHg7CiAgICAgIH0KCiAgICAgIHBhcGVyLXByb2dyZXNzIHsKICAgICAgICB3aWR0aDogNDAwcHg7CiAgICAgICAgLS1wYXBlci1wcm9ncmVzcy1oZWlnaHQ6IDZweDsKICAgICAgICAtLXBhcGVyLXByb2dyZXNzLWFjdGl2ZS1jb2xvcjogI2YzOTEzZTsKICAgICAgfQoKICAgICAgLmNvbnRleHQtbWVudSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UyZTJlMjsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG1pbi13aWR0aDogMTUwcHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2Q0ZDRkNDsKICAgICAgfQoKICAgICAgL2RlZXAvIC5jb250ZXh0LW1lbnUgdWwgewogICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC9kZWVwLyAuY29udGV4dC1tZW51IHVsIGxpIHsKICAgICAgICBwYWRkaW5nOiA0cHggMTZweDsKICAgICAgfQoKICAgICAgL2RlZXAvIC5jb250ZXh0LW1lbnUgdWwgbGk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMzkxM2U7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19pc05vdENvbXBsZXRlKHByb2dyZXNzKV1dIj4KICAgICAgPGRpdiBpZD0icHJvZ3Jlc3MtYmFyIj4KICAgICAgICA8ZGl2IGlkPSJwcm9ncmVzcy1tc2ciPltbcHJvZ3Jlc3MubXNnXV08L2Rpdj4KICAgICAgICA8cGFwZXItcHJvZ3Jlc3MgdmFsdWU9IltbcHJvZ3Jlc3MudmFsdWVdXSI+PC9wYXBlci1wcm9ncmVzcz4KICAgICAgPC9kaXY+CiAgICA8L3RlbXBsYXRlPgogICAgPGRpdiBjbGFzcyQ9IltbX2dldENvbnRhaW5lckNsYXNzKHByb2dyZXNzKV1dIj4KICAgICAgPGRpdiBpZD0ibWFpbiI+CiAgICAgICAgPHRmLWdyYXBoCiAgICAgICAgICBpZD0iZ3JhcGgiCiAgICAgICAgICBncmFwaC1oaWVyYXJjaHk9Int7Z3JhcGhIaWVyYXJjaHl9fSIKICAgICAgICAgIGJhc2ljLWdyYXBoPSJbW2dyYXBoXV0iCiAgICAgICAgICBoaWVyYXJjaHktcGFyYW1zPSJbW2hpZXJhcmNoeVBhcmFtc11dIgogICAgICAgICAgcmVuZGVyLWhpZXJhcmNoeT0ie3tyZW5kZXJIaWVyYXJjaHl9fSIKICAgICAgICAgIGRldmljZXMtZm9yLXN0YXRzPSJbW2RldmljZXNGb3JTdGF0c11dIgogICAgICAgICAgc3RhdHM9Iltbc3RhdHNdXSIKICAgICAgICAgIHNlbGVjdGVkLW5vZGU9Int7c2VsZWN0ZWROb2RlfX0iCiAgICAgICAgICBoaWdobGlnaHRlZC1ub2RlPSJ7e19oaWdobGlnaHRlZE5vZGV9fSIKICAgICAgICAgIGNvbG9yLWJ5PSJbW2NvbG9yQnldXSIKICAgICAgICAgIGNvbG9yLWJ5LXBhcmFtcz0ie3tjb2xvckJ5UGFyYW1zfX0iCiAgICAgICAgICBwcm9ncmVzcz0ie3twcm9ncmVzc319IgogICAgICAgICAgZWRnZS1sYWJlbC1mdW5jdGlvbj0iW1tlZGdlTGFiZWxGdW5jdGlvbl1dIgogICAgICAgICAgZWRnZS13aWR0aC1mdW5jdGlvbj0iW1tlZGdlV2lkdGhGdW5jdGlvbl1dIgogICAgICAgICAgbm9kZS1uYW1lcy10by1oZWFsdGgtcGlsbHM9Iltbbm9kZU5hbWVzVG9IZWFsdGhQaWxsc11dIgogICAgICAgICAgaGVhbHRoLXBpbGwtc3RlcC1pbmRleD0iW1toZWFsdGhQaWxsU3RlcEluZGV4XV0iCiAgICAgICAgICBoYW5kbGUtbm9kZS1zZWxlY3RlZD0iW1toYW5kbGVOb2RlU2VsZWN0ZWRdXSIKICAgICAgICAgIGhhbmRsZS1lZGdlLXNlbGVjdGVkPSJbW2hhbmRsZUVkZ2VTZWxlY3RlZF1dIgogICAgICAgICAgdHJhY2UtaW5wdXRzPSJbW3RyYWNlSW5wdXRzXV0iCiAgICAgICAgICBhdXRvLWV4dHJhY3Qtbm9kZXM9IltbYXV0b0V4dHJhY3ROb2Rlc11dIgogICAgICAgID48L3RmLWdyYXBoPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBpZD0iaW5mbyI+CiAgICAgICAgPHRmLWdyYXBoLWluZm8KICAgICAgICAgIGlkPSJncmFwaC1pbmZvIgogICAgICAgICAgdGl0bGU9InNlbGVjdGVkIgogICAgICAgICAgZ3JhcGgtaGllcmFyY2h5PSJbW2dyYXBoSGllcmFyY2h5XV0iCiAgICAgICAgICByZW5kZXItaGllcmFyY2h5PSJbW3JlbmRlckhpZXJhcmNoeV1dIgogICAgICAgICAgZ3JhcGg9IltbZ3JhcGhdXSIKICAgICAgICAgIHNlbGVjdGVkLW5vZGU9Int7c2VsZWN0ZWROb2RlfX0iCiAgICAgICAgICBzZWxlY3RlZC1ub2RlLWluY2x1ZGU9Int7X3NlbGVjdGVkTm9kZUluY2x1ZGV9fSIKICAgICAgICAgIGhpZ2hsaWdodGVkLW5vZGU9Int7X2hpZ2hsaWdodGVkTm9kZX19IgogICAgICAgICAgY29sb3ItYnk9IltbY29sb3JCeV1dIgogICAgICAgICAgY29sb3ItYnktcGFyYW1zPSJbW2NvbG9yQnlQYXJhbXNdXSIKICAgICAgICAgIGRlYnVnZ2VyLWRhdGEtZW5hYmxlZD0iW1tkZWJ1Z2dlckRhdGFFbmFibGVkXV0iCiAgICAgICAgICBhcmUtaGVhbHRoLXBpbGxzLWxvYWRpbmc9IltbYXJlSGVhbHRoUGlsbHNMb2FkaW5nXV0iCiAgICAgICAgICBkZWJ1Z2dlci1udW1lcmljLWFsZXJ0cz0iW1tkZWJ1Z2dlck51bWVyaWNBbGVydHNdXSIKICAgICAgICAgIG5vZGUtbmFtZXMtdG8taGVhbHRoLXBpbGxzPSJbW25vZGVOYW1lc1RvSGVhbHRoUGlsbHNdXSIKICAgICAgICAgIGFsbC1zdGVwcy1tb2RlLWVuYWJsZWQ9Int7YWxsU3RlcHNNb2RlRW5hYmxlZH19IgogICAgICAgICAgc3BlY2lmaWMtaGVhbHRoLXBpbGwtc3RlcD0ie3tzcGVjaWZpY0hlYWx0aFBpbGxTdGVwfX0iCiAgICAgICAgICBoZWFsdGgtcGlsbC1zdGVwLWluZGV4PSJ7e2hlYWx0aFBpbGxTdGVwSW5kZXh9fSIKICAgICAgICAgIGNvbXBhdC1ub2RlLXRpdGxlPSJbW2NvbXBhdE5vZGVUaXRsZV1dIgogICAgICAgICAgb24tbm9kZS10b2dnbGUtaW5jbHVzaW9uPSJfb25Ob2RlSW5jbHVzaW9uVG9nZ2xlZCIKICAgICAgICAgIG9uLW5vZGUtdG9nZ2xlLXNlcmllc2dyb3VwPSJfb25Ob2RlU2VyaWVzR3JvdXBUb2dnbGVkIgogICAgICAgID48L3RmLWdyYXBoLWluZm8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYCx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixyS3QpXSxlSnQucHJvdG90eXBlLCJncmFwaEhpZXJhcmNoeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixJJHQpXSxlSnQucHJvdG90eXBlLCJncmFwaCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxlSnQucHJvdG90eXBlLCJoaWVyYXJjaHlQYXJhbXMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZUp0LnByb3RvdHlwZSwic3RhdHMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZUp0LnByb3RvdHlwZSwicHJvZ3Jlc3MiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxlSnQucHJvdG90eXBlLCJ0cmFjZUlucHV0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGVKdC5wcm90b3R5cGUsImF1dG9FeHRyYWN0Tm9kZXMiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGVKdC5wcm90b3R5cGUsImNvbG9yQnkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGVKdC5wcm90b3R5cGUsImNvbG9yQnlQYXJhbXMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLEFLdCldLGVKdC5wcm90b3R5cGUsInJlbmRlckhpZXJhcmNoeSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGVKdC5wcm90b3R5cGUsImRlYnVnZ2VyRGF0YUVuYWJsZWQiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxlSnQucHJvdG90eXBlLCJhcmVIZWFsdGhQaWxsc0xvYWRpbmciLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheSxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxlSnQucHJvdG90eXBlLCJkZWJ1Z2dlck51bWVyaWNBbGVydHMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZUp0LnByb3RvdHlwZSwibm9kZU5hbWVzVG9IZWFsdGhQaWxscyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxlSnQucHJvdG90eXBlLCJhbGxTdGVwc01vZGVFbmFibGVkIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxlSnQucHJvdG90eXBlLCJzcGVjaWZpY0hlYWx0aFBpbGxTdGVwIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLGVKdC5wcm90b3R5cGUsImhlYWx0aFBpbGxTdGVwSW5kZXgiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGVKdC5wcm90b3R5cGUsInNlbGVjdGVkTm9kZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxlSnQucHJvdG90eXBlLCJjb21wYXROb2RlVGl0bGUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZUp0LnByb3RvdHlwZSwiZWRnZVdpZHRoRnVuY3Rpb24iLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sZUp0LnByb3RvdHlwZSwiX3NlbGVjdGVkTm9kZUluY2x1ZGUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sZUp0LnByb3RvdHlwZSwiX2hpZ2hsaWdodGVkTm9kZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxlSnQucHJvdG90eXBlLCJoYW5kbGVOb2RlU2VsZWN0ZWQiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZUp0LnByb3RvdHlwZSwiZWRnZUxhYmVsRnVuY3Rpb24iLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZUp0LnByb3RvdHlwZSwiaGFuZGxlRWRnZVNlbGVjdGVkIix2b2lkIDApLHQoW2EoInNlbGVjdGVkTm9kZSIsInJlbmRlckhpZXJhcmNoeSIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sZUp0LnByb3RvdHlwZSwiX3VwZGF0ZU5vZGVJbmNsdWRlIixudWxsKSx0KFthKCJncmFwaCIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sZUp0LnByb3RvdHlwZSwiX3NsaW1HcmFwaENoYW5nZWQiLG51bGwpLHQoW2EoImNvbG9yQnkiLCJncmFwaEhpZXJhcmNoeSIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sZUp0LnByb3RvdHlwZSwiX2Vuc3VyZVRlbXBsYXRlcyIsbnVsbCksZUp0PXQoW2koInRmLWdyYXBoLWJvYXJkIildLGVKdCk7Y2xhc3Mgbkp0e2lzTm90VHB1T3AodCl7cmV0dXJuLTEhPXQudG9Mb3dlckNhc2UoKS5zZWFyY2goImNwdToiKXx8KC0xIT10LnRvTG93ZXJDYXNlKCkuc2VhcmNoKCJncHU6Iil8fC0xPT10LnRvTG93ZXJDYXNlKCkuc2VhcmNoKCJ0cHUiKSl9b3BWYWxpZCh0KXtyZXR1cm4gMD09dC5uYW1lLnNlYXJjaChUJHQpfHwoIXQub3B8fCghKCF0LmRldmljZXx8IXRoaXMuaXNOb3RUcHVPcCh0LmRldmljZSkpfHwoISghdC5kZXZpY2V8fC0xPT10LmRldmljZS5zZWFyY2goIlRQVV9TWVNURU0iKSl8fENlLmV4cG9ydHMuaW5jbHVkZXMobkp0LldISVRFTElTVCx0Lm9wKSkpKX19bkp0LldISVRFTElTVD1bIkFicyIsIkFjb3MiLCJBY29zaCIsIkFkZCIsIkFkZE4iLCJBZGRWMiIsIkFkanVzdENvbnRyYXN0djIiLCJBZGp1c3RIdWUiLCJBZGp1c3RTYXR1cmF0aW9uIiwiQWxsIiwiQWxsVG9BbGwiLCJBbmdsZSIsIkFueSIsIkFwcHJveGltYXRlRXF1YWwiLCJBcmdNYXgiLCJBcmdNaW4iLCJBc2luIiwiQXNpbmgiLCJBc3NlcnQiLCJBc3NpZ25BZGRWYXJpYWJsZU9wIiwiQXNzaWduU3ViVmFyaWFibGVPcCIsIkFzc2lnblZhcmlhYmxlT3AiLCJBdGFuIiwiQXRhbjIiLCJBdGFuaCIsIkF2Z1Bvb2wiLCJBdmdQb29sM0QiLCJBdmdQb29sM0RHcmFkIiwiQXZnUG9vbEdyYWQiLCJCYXRjaE1hdE11bCIsIkJhdGNoTWF0TXVsVjIiLCJCYXRjaFRvU3BhY2UiLCJCYXRjaFRvU3BhY2VORCIsIkJlc3NlbEkwZSIsIkJlc3NlbEkxZSIsIkJldGFpbmMiLCJCaWFzQWRkIiwiQmlhc0FkZEdyYWQiLCJCaWFzQWRkVjEiLCJCaXRjYXN0IiwiQml0d2lzZUFuZCIsIkJpdHdpc2VPciIsIkJpdHdpc2VYb3IiLCJCcm9hZGNhc3RBcmdzIiwiQnJvYWRjYXN0R3JhZGllbnRBcmdzIiwiQnJvYWRjYXN0VG8iLCJCdWNrZXRpemUiLCJDYXNlIiwiQ2FzdCIsIkNlaWwiLCJDaGVja051bWVyaWNzIiwiQ2hvbGVza3kiLCJDbGlwQnlWYWx1ZSIsIkNvbGxlY3RpdmVQZXJtdXRlIiwiQ29sbGVjdGl2ZVJlZHVjZVYyIiwiQ29tcGxleCIsIkNvbXBsZXhBYnMiLCJDb25jYXQiLCJDb25jYXRPZmZzZXQiLCJDb25jYXRWMiIsIkNvbmoiLCJDb25qdWdhdGVUcmFuc3Bvc2UiLCJDb25zdCIsIkNvbnRyb2xUcmlnZ2VyIiwiQ29udjJEIiwiQ29udjJEQmFja3Byb3BGaWx0ZXIiLCJDb252MkRCYWNrcHJvcElucHV0IiwiQ29udjNEIiwiQ29udjNEQmFja3Byb3BGaWx0ZXJWMiIsIkNvbnYzREJhY2twcm9wSW5wdXRWMiIsIkNvcyIsIkNvc2giLCJDcm9zcyIsIkNyb3NzUmVwbGljYVN1bSIsIkN1bXByb2QiLCJDdW1zdW0iLCJEYXRhRm9ybWF0RGltTWFwIiwiRGF0YUZvcm1hdFZlY1Blcm11dGUiLCJEZXB0aFRvU3BhY2UiLCJEZXB0aHdpc2VDb252MmROYXRpdmUiLCJEZXB0aHdpc2VDb252MmROYXRpdmVCYWNrcHJvcEZpbHRlciIsIkRlcHRod2lzZUNvbnYyZE5hdGl2ZUJhY2twcm9wSW5wdXQiLCJEZXF1YW50aXplIiwiRGV2aWNlSW5kZXgiLCJEaWFnIiwiRGlhZ1BhcnQiLCJEaWdhbW1hIiwiRGl2IiwiRGl2Tm9OYW4iLCJEeW5hbWljU3RpdGNoIiwiRWluc3VtIiwiRWx1IiwiRWx1R3JhZCIsIkVtcHR5IiwiRW1wdHlUZW5zb3JMaXN0IiwiRW5zdXJlU2hhcGUiLCJFcXVhbCIsIkVyZiIsIkVyZmMiLCJFcmZpbnYiLCJFeHAiLCJFeHBhbmREaW1zIiwiRXhwbTEiLCJFeHRyYWN0SW1hZ2VQYXRjaGVzIiwiRkZUIiwiRkZUMkQiLCJGRlQzRCIsIkZha2VQYXJhbSIsIkZha2VRdWFudFdpdGhNaW5NYXhBcmdzIiwiRmFrZVF1YW50V2l0aE1pbk1heEFyZ3NHcmFkaWVudCIsIkZha2VRdWFudFdpdGhNaW5NYXhWYXJzIiwiRmFrZVF1YW50V2l0aE1pbk1heFZhcnNHcmFkaWVudCIsIkZpbGwiLCJGbG9vciIsIkZsb29yRGl2IiwiRmxvb3JNb2QiLCJGdXNlZEJhdGNoTm9ybSIsIkZ1c2VkQmF0Y2hOb3JtR3JhZCIsIkZ1c2VkQmF0Y2hOb3JtR3JhZFYyIiwiRnVzZWRCYXRjaE5vcm1HcmFkVjMiLCJGdXNlZEJhdGNoTm9ybVYyIiwiRnVzZWRCYXRjaE5vcm1WMyIsIkdhdGhlciIsIkdhdGhlck5kIiwiR2F0aGVyVjIiLCJHZXRJdGVtIiwiR3JlYXRlciIsIkdyZWF0ZXJFcXVhbCIsIkhTVlRvUkdCIiwiSUZGVCIsIklGRlQyRCIsIklGRlQzRCIsIklSRkZUIiwiSVJGRlQyRCIsIklSRkZUM0QiLCJJZGVudGl0eSIsIklkZW50aXR5TiIsIklmIiwiSWdhbW1hIiwiSWdhbW1hR3JhZEEiLCJJZ2FtbWFjIiwiSW1hZyIsIkluVG9wS1YyIiwiSW5mZWVkRGVxdWV1ZSIsIkluZmVlZERlcXVldWVUdXBsZSIsIklucGxhY2VBZGQiLCJJbnBsYWNlVXBkYXRlIiwiSW52IiwiSW52ZXJ0IiwiSW52ZXJ0UGVybXV0YXRpb24iLCJJc0Zpbml0ZSIsIklzSW5mIiwiSXNOYW4iLCJLdGhPcmRlclN0YXRpc3RpYyIsIkwyTG9zcyIsIkxSTiIsIkxSTkdyYWQiLCJMZWFreVJlbHUiLCJMZWFreVJlbHVHcmFkIiwiTGVmdFNoaWZ0IiwiTGVzcyIsIkxlc3NFcXVhbCIsIkxnYW1tYSIsIkxpblNwYWNlIiwiTGlzdERpZmYiLCJMb2ciLCJMb2cxcCIsIkxvZ1NvZnRtYXgiLCJMb2dpY2FsQW5kIiwiTG9naWNhbE5vdCIsIkxvZ2ljYWxPciIsIkxvd2VyQm91bmQiLCJNYWtlVW5pcXVlIiwiTWF0TXVsIiwiTWF0cml4QmFuZFBhcnQiLCJNYXRyaXhEaWFnIiwiTWF0cml4RGlhZ1BhcnQiLCJNYXRyaXhEaWFnUGFydFYyIiwiTWF0cml4RGlhZ1BhcnRWMyIsIk1hdHJpeERpYWdWMiIsIk1hdHJpeERpYWdWMyIsIk1hdHJpeEludmVyc2UiLCJNYXRyaXhTZXREaWFnIiwiTWF0cml4U2V0RGlhZ1YyIiwiTWF0cml4U2V0RGlhZ1YzIiwiTWF0cml4U29sdmUiLCJNYXRyaXhUcmlhbmd1bGFyU29sdmUiLCJNYXgiLCJNYXhQb29sIiwiTWF4UG9vbDNEIiwiTWF4UG9vbDNER3JhZCIsIk1heFBvb2wzREdyYWRHcmFkIiwiTWF4UG9vbEdyYWQiLCJNYXhQb29sR3JhZEdyYWQiLCJNYXhQb29sR3JhZEdyYWRWMiIsIk1heFBvb2xHcmFkVjIiLCJNYXhQb29sVjIiLCJNYXhpbXVtIiwiTWVhbiIsIk1pbiIsIk1pbmltdW0iLCJNaXJyb3JQYWQiLCJNaXJyb3JQYWRHcmFkIiwiTW9kIiwiTXVsIiwiTXVsTm9OYW4iLCJNdWx0aW5vbWlhbCIsIk5kdHJpIiwiTmVnIiwiTmV4dEFmdGVyIiwiTm9PcCIsIk5vbk1heFN1cHByZXNzaW9uVjQiLCJOb3RFcXVhbCIsIk9uZUhvdCIsIk9uZXNMaWtlIiwiT3V0ZmVlZEVucXVldWUiLCJPdXRmZWVkRW5xdWV1ZVR1cGxlIiwiUGFjayIsIlBhZCIsIlBhZFYyIiwiUGFyYWxsZWxEeW5hbWljU3RpdGNoIiwiUGFyYW1ldGVyaXplZFRydW5jYXRlZE5vcm1hbCIsIlBhcnRpdGlvbmVkQ2FsbCIsIlBsYWNlaG9sZGVyV2l0aERlZmF1bHQiLCJQb2x5Z2FtbWEiLCJQb3B1bGF0aW9uQ291bnQiLCJQb3ciLCJQcmV2ZW50R3JhZGllbnQiLCJQcm9kIiwiUXIiLCJRdWFudGl6ZUFuZERlcXVhbnRpemVWMiIsIlF1YW50aXplQW5kRGVxdWFudGl6ZVYzIiwiUkZGVCIsIlJGRlQyRCIsIlJGRlQzRCIsIlJHQlRvSFNWIiwiUmFuZG9tR2FtbWFHcmFkIiwiUmFuZG9tU2h1ZmZsZSIsIlJhbmRvbVN0YW5kYXJkTm9ybWFsIiwiUmFuZG9tVW5pZm9ybSIsIlJhbmRvbVVuaWZvcm1JbnQiLCJSYW5nZSIsIlJhbmsiLCJSZWFkVmFyaWFibGVPcCIsIlJlYWwiLCJSZWFsRGl2IiwiUmVjaXByb2NhbCIsIlJlY2lwcm9jYWxHcmFkIiwiUmVsdSIsIlJlbHU2IiwiUmVsdTZHcmFkIiwiUmVsdUdyYWQiLCJSZXNoYXBlIiwiUmVzaXplQmlsaW5lYXIiLCJSZXNpemVCaWxpbmVhckdyYWQiLCJSZXNpemVOZWFyZXN0TmVpZ2hib3IiLCJSZXNpemVOZWFyZXN0TmVpZ2hib3JHcmFkIiwiUmVzb3VyY2VBcHBseUFkYU1heCIsIlJlc291cmNlQXBwbHlBZGFkZWx0YSIsIlJlc291cmNlQXBwbHlBZGFncmFkIiwiUmVzb3VyY2VBcHBseUFkYWdyYWREQSIsIlJlc291cmNlQXBwbHlBZGFncmFkVjIiLCJSZXNvdXJjZUFwcGx5QWRhbSIsIlJlc291cmNlQXBwbHlBZGRTaWduIiwiUmVzb3VyY2VBcHBseUNlbnRlcmVkUk1TUHJvcCIsIlJlc291cmNlQXBwbHlGdHJsIiwiUmVzb3VyY2VBcHBseUZ0cmxWMiIsIlJlc291cmNlQXBwbHlHcmFkaWVudERlc2NlbnQiLCJSZXNvdXJjZUFwcGx5S2VyYXNNb21lbnR1bSIsIlJlc291cmNlQXBwbHlNb21lbnR1bSIsIlJlc291cmNlQXBwbHlQb3dlclNpZ24iLCJSZXNvdXJjZUFwcGx5UHJveGltYWxBZGFncmFkIiwiUmVzb3VyY2VBcHBseVByb3hpbWFsR3JhZGllbnREZXNjZW50IiwiUmVzb3VyY2VBcHBseVJNU1Byb3AiLCJSZXNvdXJjZUdhdGhlciIsIlJlc291cmNlU2NhdHRlckFkZCIsIlJlc291cmNlU2NhdHRlckRpdiIsIlJlc291cmNlU2NhdHRlck1heCIsIlJlc291cmNlU2NhdHRlck1pbiIsIlJlc291cmNlU2NhdHRlck11bCIsIlJlc291cmNlU2NhdHRlck5kQWRkIiwiUmVzb3VyY2VTY2F0dGVyTmRTdWIiLCJSZXNvdXJjZVNjYXR0ZXJOZFVwZGF0ZSIsIlJlc291cmNlU2NhdHRlclN1YiIsIlJlc291cmNlU2NhdHRlclVwZGF0ZSIsIlJlc291cmNlU3RyaWRlZFNsaWNlQXNzaWduIiwiUmV2ZXJzZSIsIlJldmVyc2VTZXF1ZW5jZSIsIlJldmVyc2VWMiIsIlJpZ2h0U2hpZnQiLCJSaW50IiwiUm5nUmVhZEFuZFNraXAiLCJSbmdTa2lwIiwiUm9sbCIsIlJvdW5kIiwiUnNxcnQiLCJSc3FydEdyYWQiLCJTY2F0dGVyTmQiLCJTZWxlY3QiLCJTZWxlY3RWMiIsIlNlbGZBZGpvaW50RWlnVjIiLCJTZWx1IiwiU2VsdUdyYWQiLCJTaGFwZSIsIlNoYXBlTiIsIlNpZ21vaWQiLCJTaWdtb2lkR3JhZCIsIlNpZ24iLCJTaW4iLCJTaW5oIiwiU2l6ZSIsIlNsaWNlIiwiU25hcHNob3QiLCJTb2Z0bWF4IiwiU29mdG1heENyb3NzRW50cm9weVdpdGhMb2dpdHMiLCJTb2Z0cGx1cyIsIlNvZnRwbHVzR3JhZCIsIlNvZnRzaWduIiwiU29mdHNpZ25HcmFkIiwiU3BhY2VUb0JhdGNoIiwiU3BhY2VUb0JhdGNoTkQiLCJTcGFjZVRvRGVwdGgiLCJTcGFyc2VNYXRNdWwiLCJTcGFyc2VTb2Z0bWF4Q3Jvc3NFbnRyb3B5V2l0aExvZ2l0cyIsIlNwYXJzZVRvRGVuc2UiLCJTcGxpdCIsIlNwbGl0ViIsIlNxcnQiLCJTcXJ0R3JhZCIsIlNxdWFyZSIsIlNxdWFyZWREaWZmZXJlbmNlIiwiU3F1ZWV6ZSIsIlN0YWNrQ2xvc2VWMiIsIlN0YWNrUG9wVjIiLCJTdGFja1B1c2hWMiIsIlN0YWNrVjIiLCJTdGF0ZWZ1bFBhcnRpdGlvbmVkQ2FsbCIsIlN0YXRlZnVsU3RhbmRhcmROb3JtYWxWMiIsIlN0YXRlZnVsVHJ1bmNhdGVkTm9ybWFsIiwiU3RhdGVmdWxVbmlmb3JtIiwiU3RhdGVmdWxVbmlmb3JtRnVsbEludCIsIlN0YXRlZnVsVW5pZm9ybUludCIsIlN0YXRlbGVzc0Nhc2UiLCJTdGF0ZWxlc3NJZiIsIlN0YXRlbGVzc011bHRpbm9taWFsIiwiU3RhdGVsZXNzUmFuZG9tR2V0QWxnIiwiU3RhdGVsZXNzUmFuZG9tR2V0S2V5Q291bnRlciIsIlN0YXRlbGVzc1JhbmRvbUdldEtleUNvdW50ZXJBbGciLCJTdGF0ZWxlc3NSYW5kb21Ob3JtYWwiLCJTdGF0ZWxlc3NSYW5kb21Ob3JtYWxWMiIsIlN0YXRlbGVzc1JhbmRvbVVuaWZvcm0iLCJTdGF0ZWxlc3NSYW5kb21Vbmlmb3JtRnVsbEludCIsIlN0YXRlbGVzc1JhbmRvbVVuaWZvcm1GdWxsSW50VjIiLCJTdGF0ZWxlc3NSYW5kb21Vbmlmb3JtSW50IiwiU3RhdGVsZXNzUmFuZG9tVW5pZm9ybUludFYyIiwiU3RhdGVsZXNzUmFuZG9tVW5pZm9ybVYyIiwiU3RhdGVsZXNzVHJ1bmNhdGVkTm9ybWFsIiwiU3RhdGVsZXNzVHJ1bmNhdGVkTm9ybWFsVjIiLCJTdGF0ZWxlc3NXaGlsZSIsIlN0b3BHcmFkaWVudCIsIlN0cmlkZWRTbGljZSIsIlN0cmlkZWRTbGljZUdyYWQiLCJTdWIiLCJTdW0iLCJTdmQiLCJTeW1ib2xpY0dyYWRpZW50IiwiVFBVRW1iZWRkaW5nQWN0aXZhdGlvbnMiLCJUYW4iLCJUYW5oIiwiVGFuaEdyYWQiLCJUZW5zb3JBcnJheUNsb3NlVjMiLCJUZW5zb3JBcnJheUNvbmNhdFYzIiwiVGVuc29yQXJyYXlHYXRoZXJWMyIsIlRlbnNvckFycmF5R3JhZFYzIiwiVGVuc29yQXJyYXlSZWFkVjMiLCJUZW5zb3JBcnJheVNjYXR0ZXJWMyIsIlRlbnNvckFycmF5U2l6ZVYzIiwiVGVuc29yQXJyYXlTcGxpdFYzIiwiVGVuc29yQXJyYXlWMyIsIlRlbnNvckFycmF5V3JpdGVWMyIsIlRlbnNvckxpc3RDb25jYXRWMiIsIlRlbnNvckxpc3RFbGVtZW50U2hhcGUiLCJUZW5zb3JMaXN0RnJvbVRlbnNvciIsIlRlbnNvckxpc3RHYXRoZXIiLCJUZW5zb3JMaXN0R2V0SXRlbSIsIlRlbnNvckxpc3RMZW5ndGgiLCJUZW5zb3JMaXN0UG9wQmFjayIsIlRlbnNvckxpc3RQdXNoQmFjayIsIlRlbnNvckxpc3RSZXNlcnZlIiwiVGVuc29yTGlzdFNldEl0ZW0iLCJUZW5zb3JMaXN0U3BsaXQiLCJUZW5zb3JMaXN0U3RhY2siLCJUZW5zb3JTY2F0dGVyQWRkIiwiVGVuc29yU2NhdHRlck1heCIsIlRlbnNvclNjYXR0ZXJNaW4iLCJUZW5zb3JTY2F0dGVyU3ViIiwiVGVuc29yU2NhdHRlclVwZGF0ZSIsIlRlbnNvclN0cmlkZWRTbGljZVVwZGF0ZSIsIlRpbGUiLCJUb3BLVW5pcXVlIiwiVG9wS1YyIiwiVG9wS1dpdGhVbmlxdWUiLCJUcmFuc3Bvc2UiLCJUcmlkaWFnb25hbFNvbHZlIiwiVHJ1bmNhdGVEaXYiLCJUcnVuY2F0ZU1vZCIsIlRydW5jYXRlZE5vcm1hbCIsIlVuaXF1ZSIsIlVucGFjayIsIlVuc29ydGVkU2VnbWVudE1heCIsIlVuc29ydGVkU2VnbWVudE1pbiIsIlVuc29ydGVkU2VnbWVudFByb2QiLCJVbnNvcnRlZFNlZ21lbnRTdW0iLCJVcHBlckJvdW5kIiwiVmFySXNJbml0aWFsaXplZE9wIiwiVmFyaWFibGVTaGFwZSIsIldoZXJlIiwiV2hpbGUiLCJYZGl2eSIsIlhsYUJyb2FkY2FzdEhlbHBlciIsIlhsYUNvbnYiLCJYbGFDb252VjIiLCJYbGFEZXF1YW50aXplIiwiWGxhRG90IiwiWGxhRG90VjIiLCJYbGFEeW5hbWljU2xpY2UiLCJYbGFEeW5hbWljVXBkYXRlU2xpY2UiLCJYbGFFaW5zdW0iLCJYbGFHYXRoZXIiLCJYbGFIb3N0Q29tcHV0ZSIsIlhsYUlmIiwiWGxhS2V5VmFsdWVTb3J0IiwiWGxhUGFkIiwiWGxhUmVjdiIsIlhsYVJlY3ZGcm9tSG9zdCIsIlhsYVJlZHVjZSIsIlhsYVJlZHVjZVdpbmRvdyIsIlhsYVJlcGxpY2FJZCIsIlhsYVNjYXR0ZXIiLCJYbGFTZWxlY3RBbmRTY2F0dGVyIiwiWGxhU2VsZkFkam9pbnRFaWciLCJYbGFTZW5kIiwiWGxhU2VuZFRvSG9zdCIsIlhsYVNldEJvdW5kIiwiWGxhU2V0RHluYW1pY0RpbWVuc2lvblNpemUiLCJYbGFTaGFyZGluZyIsIlhsYVNvcnQiLCJYbGFTcG1kRnVsbFRvU2hhcmRTaGFwZSIsIlhsYVNwbWRTaGFyZFRvRnVsbFNoYXBlIiwiWGxhU3ZkIiwiWGxhVmFyaWFkaWNSZWR1Y2UiLCJYbGFWYXJpYWRpY1NvcnQiLCJYbGFXaGlsZSIsIlhsb2cxcHkiLCJYbG9neSIsIlplcm9zTGlrZSIsIlpldGEiLCJFbnRlciIsIkV4aXQiLCJMb29wQ29uZCIsIk1lcmdlIiwiTmV4dEl0ZXJhdGlvbiIsIlN3aXRjaCIsIl9BcmciLCJfQXJyYXlUb0xpc3QiLCJfRnVzZWRCYXRjaE5vcm1FeCIsIl9MaXN0VG9BcnJheSIsIl9QYXJhbGxlbENvbmNhdFVwZGF0ZSIsIl9SZWN2VFBVRW1iZWRkaW5nQWN0aXZhdGlvbnMiLCJfUmVjdlRQVUVtYmVkZGluZ0RlZHVwbGljYXRpb25EYXRhIiwiX1JldHZhbCIsIl9TZW5kVFBVRW1iZWRkaW5nR3JhZGllbnRzIiwiX1RQVUNvbXBpbGUiLCJfVFBVRXhlY3V0ZSIsIl9VbmFyeU9wc0NvbXBvc2l0aW9uIiwiVFBVQ29tcGlsYXRpb25SZXN1bHQiLCJUUFVSZXBsaWNhdGVkSW5wdXQiLCJUUFVSZXBsaWNhdGVkT3V0cHV0IiwiVFBVUmVwbGljYXRlTWV0YWRhdGEiLCJNZXJnZVYyQ2hlY2twb2ludHMiLCJSZXN0b3JlVjIiLCJTYXZlVjIiLCJBYm9ydCIsIkFzc2VydCIsIkFzc2lnbiIsIlBsYWNlaG9sZGVyIiwiUGxhY2Vob2xkZXJWMiIsIlNoYXJkZWRGaWxlbmFtZSIsIlN0cmluZ0pvaW4iLCJWYXJpYWJsZSIsIlZhcmlhYmxlVjIiLCJWYXJIYW5kbGVPcCIsIkF1ZGlvU3VtbWFyeSIsIkF1ZGlvU3VtbWFyeVYyIiwiRGVidWdOdW1lcmljU3VtbWFyeSIsIkhpc3RvZ3JhbVN1bW1hcnkiLCJJbWFnZVN1bW1hcnkiLCJNZXJnZVN1bW1hcnkiLCJTY2FsYXJTdW1tYXJ5IiwiU3RhdHNBZ2dyZWdhdG9yU3VtbWFyeSJdO2xldCBpSnQ9Y2xhc3MgZXh0ZW5kcyhjcih3ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9yYXdSZWdleElucHV0PSIiLHRoaXMuX3ByZXZpb3VzUmVnZXhJbnB1dD0iIix0aGlzLl9zZWFyY2hUaW1lb3V0RGVsYXk9MTUwLHRoaXMuX21heFJlZ2V4UmVzdWx0cz00Mn1nZXQgX3JlZ2V4SW5wdXQoKXtyZXR1cm4gdGhpcy5fcmF3UmVnZXhJbnB1dC50cmltKCl9X3JlZ2V4SW5wdXRDaGFuZ2VkKCl7dGhpcy5fcmVxdWVzdFNlYXJjaCgpfV9jbGVhclNlYXJjaFJlc3VsdHMoKXt0aGlzLnNldCgiX3JlZ2V4TWF0Y2hlcyIsW10pfV9yZXF1ZXN0U2VhcmNoKCl7dGhpcy5fc2VhcmNoUGVuZGluZ3x8KHRoaXMuX3JlZ2V4SW5wdXQhPT10aGlzLl9wcmV2aW91c1JlZ2V4SW5wdXQ/KHRoaXMuX3NlYXJjaFBlbmRpbmc9ITAsdGhpcy5fZXhlY3V0ZVNlYXJjaCgpLHRoaXMuYXN5bmMoKCgpPT57dGhpcy5fc2VhcmNoUGVuZGluZz0hMSx0aGlzLl9yZXF1ZXN0U2VhcmNoKCl9KSx0aGlzLl9zZWFyY2hUaW1lb3V0RGVsYXkpKTp0aGlzLl9zZWFyY2hQZW5kaW5nPSExKX1fZXhlY3V0ZVNlYXJjaCgpe2lmKHRoaXMuX3ByZXZpb3VzUmVnZXhJbnB1dD10aGlzLl9yZWdleElucHV0LCF0aGlzLl9yZWdleElucHV0KXJldHVybiB2b2lkIHRoaXMuX2NsZWFyU2VhcmNoUmVzdWx0cygpO3RyeXt2YXIgdD1uZXcgUmVnRXhwKHRoaXMuX3JlZ2V4SW5wdXQpfWNhdGNoKHQpe3JldHVybiB2b2lkIHRoaXMuX2NsZWFyU2VhcmNoUmVzdWx0cygpfWNvbnN0IGU9W10sbj10aGlzLnJlbmRlckhpZXJhcmNoeS5oaWVyYXJjaHkuZ2V0Tm9kZU1hcCgpO0NlLmV4cG9ydHMuZWFjaChuLCgobixpKT0+e2lmKGUubGVuZ3RoPj10aGlzLl9tYXhSZWdleFJlc3VsdHMpcmV0dXJuITE7dC50ZXN0KGkpJiZlLnB1c2goaSl9KSksdGhpcy5zZXQoIl9yZWdleE1hdGNoZXMiLGUpfV9tYXRjaENsaWNrZWQodCl7dGhpcy5zZXQoInNlbGVjdGVkTm9kZSIsdC5tb2RlbC5pdGVtKSxoJHQoe2FjdGlvbklkOkJBdC5OT0RFX1NFQVJDSF9SRVNVTFRfRk9DVVNFRH0pfX07aUp0LnRlbXBsYXRlPXhlYAogICAgPGRpdiBpZD0ic2VhcmNoLWNvbnRhaW5lciI+CiAgICAgIDxwYXBlci1pbnB1dAogICAgICAgIGlkPSJydW5zLXJlZ2V4IgogICAgICAgIGxhYmVsPSJTZWFyY2ggbm9kZXMgKHJlZ2V4KSIKICAgICAgICB2YWx1ZT0ie3tfcmF3UmVnZXhJbnB1dH19IgogICAgICA+CiAgICAgIDwvcGFwZXItaW5wdXQ+CiAgICAgIDxkaXYgaWQ9InNlYXJjaC1yZXN1bHRzLWFuY2hvciI+CiAgICAgICAgPGRpdiBpZD0ic2VhcmNoLXJlc3VsdHMiPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfcmVnZXhNYXRjaGVzXV0iPgogICAgICAgICAgICA8ZGl2IGlkPSJzZWFyY2gtbWF0Y2giIG9uLWNsaWNrPSJfbWF0Y2hDbGlja2VkIj5bW2l0ZW1dXTwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxzdHlsZT4KICAgICAgI3NlYXJjaC1jb250YWluZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgICB9CgogICAgICAjcnVucy1yZWdleCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgICNzZWFyY2gtcmVzdWx0cy1hbmNob3IgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgI3NlYXJjaC1yZXN1bHRzIHsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgICNzZWFyY2gtbWF0Y2ggewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIHBhZGRpbmc6IDNweDsKICAgICAgICBmbG9hdDogcmlnaHQ7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBkaXJlY3Rpb246IHJ0bDsKICAgICAgfQoKICAgICAgI3NlYXJjaC1tYXRjaDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGItb3JhbmdlLXdlYWspOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGlKdC5wcm90b3R5cGUsInJlbmRlckhpZXJhcmNoeSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZyxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0saUp0LnByb3RvdHlwZSwic2VsZWN0ZWROb2RlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGlKdC5wcm90b3R5cGUsIl9yYXdSZWdleElucHV0Iix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGlKdC5wcm90b3R5cGUsIl9wcmV2aW91c1JlZ2V4SW5wdXQiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0saUp0LnByb3RvdHlwZSwiX3NlYXJjaFRpbWVvdXREZWxheSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGlKdC5wcm90b3R5cGUsIl9zZWFyY2hQZW5kaW5nIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLGlKdC5wcm90b3R5cGUsIl9tYXhSZWdleFJlc3VsdHMiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLGlKdC5wcm90b3R5cGUsIl9yZWdleE1hdGNoZXMiLHZvaWQgMCksdChbcygicmVuZGVySGllcmFyY2h5IiwiX3Jhd1JlZ2V4SW5wdXQiKSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxpSnQucHJvdG90eXBlLCJfcmVnZXhJbnB1dCIsbnVsbCksdChbYSgiX3JlZ2V4SW5wdXQiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGlKdC5wcm90b3R5cGUsIl9yZWdleElucHV0Q2hhbmdlZCIsbnVsbCksaUp0PXQoW2koInRmLWdyYXBoLW5vZGUtc2VhcmNoIildLGlKdCk7Y29uc3Qgckp0PS9kZXZpY2U6KFteOl0rOlswLTldKykkLyxvSnQ9W3tyZWdleDpySnR9XSxhSnQ9W10sc0p0PW5ldyBTZXQoW3JadC5DT01QVVRFX1RJTUUsclp0Lk1FTU9SWV0pO2xldCBsSnQ9Y2xhc3MgZXh0ZW5kcyhjcihnbCh3ZSkpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5Db2xvckJ5PXJadCx0aGlzLnN0YXRzPW51bGwsdGhpcy5kZXZpY2VzRm9yU3RhdHM9bnVsbCx0aGlzLmNvbG9yQnk9clp0LlNUUlVDVFVSRSx0aGlzLmRhdGFzZXRzPVtdLHRoaXMuX3NlbGVjdGVkUnVuSW5kZXg9MCx0aGlzLnRyYWNlSW5wdXRzPSExLHRoaXMuYXV0b0V4dHJhY3ROb2Rlcz0hMCx0aGlzLl9zZWxlY3RlZFRhZ0luZGV4PTAsdGhpcy5fc2VsZWN0ZWRHcmFwaFR5cGU9UVh0Lk9QX0dSQVBILHRoaXMuc2hvd1Nlc3Npb25SdW5zRHJvcGRvd249ITAsdGhpcy5zaG93VXBsb2FkQnV0dG9uPSEwLHRoaXMuX2xlZ2VuZE9wZW5lZD0hMCx0aGlzLl9kb3dubG9hZEZpbGVuYW1lPSJncmFwaC5wbmcifV9vbkdyYXBoVHlwZUNoYW5nZWRCeVVzZXJHZXN0dXJlKCl7aCR0KHthY3Rpb25JZDpCQXQuR1JBUEhfVFlQRV9DSEFOR0VELGV2ZW50TGFiZWw6dGhpcy5fc2VsZWN0ZWRHcmFwaFR5cGV9KX1fb25Db2xvckJ5Q2hhbmdlZEJ5VXNlckdlc3R1cmUoKXtoJHQoe2FjdGlvbklkOkJBdC5OT0RFX0NPTE9SX01PREVfQ0hBTkdFRCxldmVudExhYmVsOnRoaXMuY29sb3JCeX0pfV9vblRyYWNlSW5wdXRzQ2hhbmdlZEJ5VXNlckdlc3R1cmUoKXtoJHQoe2FjdGlvbklkOkJBdC5UUkFDRV9JTlBVVF9NT0RFX1RPR0dMRUR9KX1feGxhQ2x1c3RlcnNQcm92aWRlZCh0KXtyZXR1cm4gdCYmdC5oaWVyYXJjaHkmJnQuaGllcmFyY2h5LnhsYUNsdXN0ZXJzLmxlbmd0aD4wfV9zdGF0c0NoYW5nZWQodCl7aWYobnVsbCE9dCl7dmFyIGU9e307Q2UuZXhwb3J0cy5lYWNoKHQuZGV2X3N0YXRzLChmdW5jdGlvbih0KXt2YXIgbj1DZS5leHBvcnRzLnNvbWUob0p0LChmdW5jdGlvbihlKXtyZXR1cm4gZS5yZWdleC50ZXN0KHQuZGV2aWNlKX0pKSxpPUNlLmV4cG9ydHMuc29tZShhSnQsKGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlZ2V4LnRlc3QodC5kZXZpY2UpfSkpO24mJiFpJiYoZVt0LmRldmljZV09ITApfSkpLHRoaXMuc2V0KCJkZXZpY2VzRm9yU3RhdHMiLGUpfX1nZXQgX2N1cnJlbnREZXZpY2VzKCl7dmFyIHQ9dGhpcy5kZXZpY2VzRm9yU3RhdHM7Y29uc3QgZT10aGlzLnN0YXRzLG49KGU/ZS5kZXZfc3RhdHM6W10pLm1hcCgodD0+dC5kZXZpY2UpKS5maWx0ZXIoKHQ9Pm9KdC5zb21lKChlPT5lLnJlZ2V4LnRlc3QodCkpKSkpLGk9eCR0KG4pO2lmKDE9PWkubGVuZ3RoKXtjb25zdCB0PWlbMF0ubWF0Y2gockp0KTt0JiYoaVswXT10WzFdKX1yZXR1cm4gbi5tYXAoKChlLG4pPT57bGV0IHI9bnVsbDtyZXR1cm4gYUp0LmZvckVhY2goKHQ9Pnt0LnJlZ2V4LnRlc3QoZSkmJihyPXQubXNnKX0pKSx7ZGV2aWNlOmUsc3VmZml4Omlbbl0sdXNlZDp0W2VdLGlnbm9yZWRNc2c6cn19KSl9X2RldmljZUNoZWNrYm94Q2xpY2tlZCh0KXtjb25zdCBlPXQudGFyZ2V0LG49T2JqZWN0LmFzc2lnbih7fSx0aGlzLmRldmljZXNGb3JTdGF0cyksaT1lLnZhbHVlO2UuY2hlY2tlZD9uW2ldPSEwOmRlbGV0ZSBuW2ldLHRoaXMuc2V0KCJkZXZpY2VzRm9yU3RhdHMiLG4pfV9udW1UYWdzKHQsZSl7cmV0dXJuIHRoaXMuX2dldFRhZ3ModCxlKS5sZW5ndGh9X2dldFRhZ3ModCxlKXtyZXR1cm4gdCYmdFtlXT90W2VdLnRhZ3M6W119X2ZpdCgpe3RoaXMuZmlyZSgiZml0LXRhcCIpfV9pc0dyYWRpZW50Q29sb3JpbmcodCxlKXtyZXR1cm4gc0p0LmhhcyhlKSYmbnVsbCE9dH1fZXF1YWxzKHQsZSl7cmV0dXJuIHQ9PT1lfWdldCBfY3VycmVudERldmljZVBhcmFtcygpe2NvbnN0IHQ9dGhpcy5jb2xvckJ5UGFyYW1zLmRldmljZS5maWx0ZXIoKHQ9Pm9KdC5zb21lKChlPT5lLnJlZ2V4LnRlc3QodC5kZXZpY2UpKSkpKSxlPXgkdCh0Lm1hcCgodD0+dC5kZXZpY2UpKSk7aWYoMT09ZS5sZW5ndGgpe3ZhciBuPWVbMF0ubWF0Y2gockp0KTtuJiYoZVswXT1uWzFdKX1yZXR1cm4gdC5tYXAoKCh0LG4pPT4oe2RldmljZTplW25dLGNvbG9yOnQuY29sb3J9KSkpfWdldCBfY3VycmVudFhsYUNsdXN0ZXJQYXJhbXMoKXtyZXR1cm4gdGhpcy5jb2xvckJ5UGFyYW1zLnhsYV9jbHVzdGVyfWdldCBfY3VycmVudEdyYWRpZW50UGFyYW1zKCl7dmFyIHQ9dGhpcy5jb2xvckJ5UGFyYW1zLGU9dGhpcy5jb2xvckJ5O2lmKCF0aGlzLl9pc0dyYWRpZW50Q29sb3JpbmcodGhpcy5zdGF0cyxlKSlyZXR1cm47Y29uc3Qgbj10W2VdO2xldCBpPW4ubWluVmFsdWUscj1uLm1heFZhbHVlO3JldHVybiBlPT09clp0Lk1FTU9SWT8oaT12JHQoaSxfJHQpLHI9diR0KHIsXyR0KSk6ZT09PXJadC5DT01QVVRFX1RJTUUmJihpPXYkdChpLHkkdCkscj12JHQocix5JHQpKSx7bWluVmFsdWU6aSxtYXhWYWx1ZTpyLHN0YXJ0Q29sb3I6bi5zdGFydENvbG9yLGVuZENvbG9yOm4uZW5kQ29sb3J9fWRvd25sb2FkKCl7dGhpcy5maXJlKCJkb3dubG9hZC1pbWFnZS1yZXF1ZXN0ZWQiLHRoaXMuX2Rvd25sb2FkRmlsZW5hbWUpfV91cGRhdGVGaWxlSW5wdXQodCl7Y29uc3QgZT10LnRhcmdldC5maWxlc1swXTtpZighZSlyZXR1cm47bGV0IG49ZS5uYW1lO2NvbnN0IGk9bi5sYXN0SW5kZXhPZigiLiIpO2k+PTAmJihuPW4uc3Vic3RyaW5nKDAsaSkpO2NvbnN0IHI9bi5sYXN0SW5kZXhPZigiLyIpO3I+PTAmJihuPW4uc3Vic3RyaW5nKHIrMSkpLHRoaXMuX3NldERvd25sb2FkRmlsZW5hbWUobiksdGhpcy5zZXQoInNlbGVjdGVkRmlsZSIsdCksaCR0KHthY3Rpb25JZDpCQXQuVVBMT0FERURfR1JBUEhfRlJPTV9GSUxFU1lTVEVNfSl9X2RhdGFzZXRzQ2hhbmdlZCh0LGUpe3ZhciBuO251bGwhPWUmJih0aGlzLl9zZWxlY3RlZFJ1bkluZGV4PTApLHRoaXMuX3NldERvd25sb2FkRmlsZW5hbWUobnVsbD09PShuPXRoaXMuZGF0YXNldHNbdGhpcy5fc2VsZWN0ZWRSdW5JbmRleF0pfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLm5hbWUpfV9jb21wdXRlU2VsZWN0aW9uKHQsZSxuLGkpe3JldHVybiB0W2VdJiZ0W2VdLnRhZ3Nbbl0/e3J1bjp0W2VdLm5hbWUsdGFnOnRbZV0udGFnc1tuXS50YWcsdHlwZTppfTpudWxsfV9zZWxlY3RlZFJ1bkluZGV4Q2hhbmdlZCh0KXt2YXIgZTt0aGlzLmRhdGFzZXRzJiYodGhpcy5jb2xvckJ5PXJadC5TVFJVQ1RVUkUsdGhpcy5fc2VsZWN0ZWRUYWdJbmRleD0wLHRoaXMuX3NlbGVjdGVkR3JhcGhUeXBlPXRoaXMuX2dldERlZmF1bHRTZWxlY3Rpb25UeXBlKCksdGhpcy50cmFjZUlucHV0cz0hMSx0aGlzLl9zZXREb3dubG9hZEZpbGVuYW1lKG51bGw9PT0oZT10aGlzLmRhdGFzZXRzW3RdKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5uYW1lKSl9X3NlbGVjdGVkVGFnSW5kZXhDaGFuZ2VkKCl7dGhpcy5fc2VsZWN0ZWRHcmFwaFR5cGU9dGhpcy5fZ2V0RGVmYXVsdFNlbGVjdGlvblR5cGUoKX1fZ2V0RGVmYXVsdFNlbGVjdGlvblR5cGUoKXtjb25zdHtkYXRhc2V0czp0LF9zZWxlY3RlZFJ1bkluZGV4OmUsX3NlbGVjdGVkVGFnSW5kZXg6bn09dGhpcztpZighdHx8IXRbZV18fCF0W2VdLnRhZ3Nbbl18fHRbZV0udGFnc1tuXS5vcEdyYXBoKXJldHVybiBRWHQuT1BfR1JBUEg7Y29uc3QgaT10W2VdO3JldHVybiBpLnRhZ3Nbbl0ucHJvZmlsZT9RWHQuUFJPRklMRTppLnRhZ3Nbbl0uY29uY2VwdHVhbEdyYXBoP1FYdC5DT05DRVBUVUFMX0dSQVBIOlFYdC5PUF9HUkFQSH1fZ2V0RmlsZSgpe3RoaXMuJCQoIiNmaWxlIikuY2xpY2soKX1fc2V0RG93bmxvYWRGaWxlbmFtZSh0KXt0aGlzLl9kb3dubG9hZEZpbGVuYW1lPSh0fHwiZ3JhcGgiKSsiLnBuZyJ9X3N0YXRzTm90TnVsbCh0KXtyZXR1cm4gbnVsbCE9PXR9X3RvZ2dsZUxlZ2VuZE9wZW4oKXt0aGlzLnNldCgiX2xlZ2VuZE9wZW5lZCIsIXRoaXMuX2xlZ2VuZE9wZW5lZCl9X2dldFRvZ2dsZUxlZ2VuZEljb24odCl7cmV0dXJuIHQ/ImV4cGFuZC1tb3JlIjoiZXhwYW5kLWxlc3MifV9nZXRTZWxlY3Rpb25PcEdyYXBoRGlzYWJsZWQodCxlLG4pe3JldHVybiF0W2VdfHwhdFtlXS50YWdzW25dfHwhdFtlXS50YWdzW25dLm9wR3JhcGh9X2dldFNlbGVjdGlvblByb2ZpbGVEaXNhYmxlZCh0LGUsbil7cmV0dXJuIXRbZV18fCF0W2VdLnRhZ3Nbbl18fCF0W2VdLnRhZ3Nbbl0ucHJvZmlsZX1fZ2V0U2VsZWN0aW9uQ29uY2VwdHVhbEdyYXBoRGlzYWJsZWQodCxlLG4pe3JldHVybiF0W2VdfHwhdFtlXS50YWdzW25dfHwhdFtlXS50YWdzW25dLmNvbmNlcHR1YWxHcmFwaH19O2Z1bmN0aW9uIGNKdCh0KXtyZXR1cm4gbmV3IFByb21pc2UoKChlLG4pPT57ZmV0Y2godCkudGhlbigodD0+e3Qub2s/dC5hcnJheUJ1ZmZlcigpLnRoZW4oZSxuKTp0LnRleHQoKS50aGVuKG4sbil9KSl9KSl9ZnVuY3Rpb24gdUp0KHQsZSl7cmV0dXJuKGZ1bmN0aW9uIG4odCxlLGkscixvKXtyLnNldE1lc3NhZ2UodCk7dHJ5e2xldCBuPWQkdCh0LGksbyk7cmV0dXJuIHIudXBkYXRlUHJvZ3Jlc3MoZSksbn1jYXRjaChlKXtyLnJlcG9ydEVycm9yKCJGYWlsZWQgIit0LGUpfX0pKCJSZWFkaW5nIG1ldGFkYXRhIHBidHh0Iiw0MCwoKCk9Pm51bGw9PXQ/UHJvbWlzZS5yZXNvbHZlKG51bGwpOmNKdCh0KSksZSxCQXQuRkVUQ0hfTUVUQURBVEFfUEJUWFRfQllURVMpLnRoZW4oKHQ9PmckdCgiUGFyc2luZyBtZXRhZGF0YS5wYnR4dCIsNjAsKCgpPT5udWxsIT10PyhmdW5jdGlvbiBlKHQpe3JldHVybiBmSnQodCxwSnQpLnRoZW4oKHQ9PnQuc3RlcF9zdGF0cykpfSkodCk6UHJvbWlzZS5yZXNvbHZlKG51bGwpKSxlLEJBdC5QQVJTRV9NRVRBREFUQV9QQlRYVF9JTlRPX09CSkVDVCkpKX1mdW5jdGlvbiBoSnQodCxlLGkpe3JldHVybiBnJHQoIlJlYWRpbmcgZ3JhcGggcGJ0eHQiLDQwLCgoKT0+bih0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IG49RGF0ZS5ub3coKTtpZihlKXtjb25zdCB0PXlpZWxkIG5ldyBQcm9taXNlKChmdW5jdGlvbih0LG4pe2xldCBpPW5ldyBGaWxlUmVhZGVyO2kub25sb2FkPSgpPT50KGkucmVzdWx0KSxpLm9uZXJyb3I9KCk9Pm4oaS5lcnJvciksaS5yZWFkQXNBcnJheUJ1ZmZlcihlKX0pKTtyZXR1cm4gaCR0KHt0aW1pbmdJZDpCQXQuRkVUQ0hfUEJUWFRfQllURVNfRlJPTV9GSUxFU1lTVEVNLGV2ZW50VmFsdWU6RGF0ZS5ub3coKS1ufSksdH1jb25zdCBpPXlpZWxkIGNKdCh0KTtyZXR1cm4gaCR0KHt0aW1pbmdJZDpCQXQuRkVUQ0hfUEJUWFRfQllURVNfRlJPTV9TRVJWRVIsZXZlbnRWYWx1ZTpEYXRlLm5vdygpLW59KSxpfSkpKSxpLEJBdC5GRVRDSF9QQlRYVF9CWVRFUykudGhlbigodD0+ZyR0KCJQYXJzaW5nIGdyYXBoLnBidHh0Iiw2MCwoKCk9PihmdW5jdGlvbiBlKHQpe3JldHVybiBmSnQodCxkSnQpfSkodCkpLGksQkF0LlBBUlNFX1BCVFhUX0lOVE9fT0JKRUNUKSkpfWxKdC50ZW1wbGF0ZT14ZWAKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiAjNTU1OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgLS10Yi1ncmFwaC1jb250cm9scy10aXRsZS1jb2xvcjogIzAwMDsKICAgICAgICAtLXRiLWdyYXBoLWNvbnRyb2xzLWxlZ2VuZC10ZXh0LWNvbG9yOiAjMDAwOwogICAgICAgIC0tdGItZ3JhcGgtY29udHJvbHMtdGV4dC1jb2xvcjogIzU1NTsKICAgICAgICAtLXRiLWdyYXBoLWNvbnRyb2xzLXRpdGxlLWZvbnQtc2l6ZTogMTRweDsKICAgICAgICAtLXRiLWdyYXBoLWNvbnRyb2xzLXN1YnRpdGxlLWZvbnQtc2l6ZTogMTRweDsKICAgICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1zaGFyZWQtaW5wdXQtc3R5bGVfLV9mb250LXNpemU6IDE0cHg7CiAgICAgICAgLS1wYXBlci1mb250LXN1YmhlYWRfLV9mb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KC5kYXJrLW1vZGUpIHsKICAgICAgICAtLXRiLWdyYXBoLWNvbnRyb2xzLXRpdGxlLWNvbG9yOiAjZmZmOwogICAgICAgIC0tdGItZ3JhcGgtY29udHJvbHMtbGVnZW5kLXRleHQtY29sb3I6ICNmM2YzZjM7CiAgICAgICAgLS10Yi1ncmFwaC1jb250cm9scy10ZXh0LWNvbG9yOiAjZWVlOwogICAgICB9CgogICAgICBwYXBlci1kcm9wZG93bi1tZW51IHsKICAgICAgICAtLXBhcGVyLWRyb3Bkb3duLW1lbnUtaW5wdXQ6IHsKICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgICBjb2xvcjogZ3JheTsKICAgICAgICB9CiAgICAgICAgLS1pcm9uLWljb24td2lkdGg6IDE1cHg7CiAgICAgICAgLS1pcm9uLWljb24taGVpZ2h0OiAxNXB4OwogICAgICAgIC0tcHJpbWFyeS10ZXh0LWNvbG9yOiBncmF5OwogICAgICAgIC0tcGFwZXItaXRlbS1taW4taGVpZ2h0OiAzMHB4OwogICAgICB9CgogICAgICBwYXBlci1idXR0b25bcmFpc2VkXS5rZXlib2FyZC1mb2N1cyB7CiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgICAgfQoKICAgICAgLnJ1bi1kcm9wZG93biB7CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXI6IHsKICAgICAgICAgIHBhZGRpbmc6IDVweCAwIDVweCA1cHg7CiAgICAgICAgfQogICAgICB9CgogICAgICB0YWJsZSB7CiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKICAgICAgICBib3JkZXItc3BhY2luZzogMDsKICAgICAgfQoKICAgICAgdGFibGUgdHIgewogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgfQoKICAgICAgdGFibGUgdGQgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICAuYWxsY29udHJvbHMgewogICAgICAgIHBhZGRpbmc6IDAgMjBweCAyMHB4OwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICB9CgogICAgICAubGVnZW5kLWhvbGRlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3IpOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgY29sb3I6IHZhcigtLXRiLWdyYXBoLWNvbnRyb2xzLXRleHQtY29sb3IpOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAubGVnZW5kLXRvb2xiYXIgewogICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYzsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsKICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1ncmFwaC1jb250cm9scy1sZWdlbmQtdGV4dC1jb2xvcik7CiAgICAgICAgZm9udDogaW5oZXJpdDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAubGVnZW5kLXRvb2xiYXIsCiAgICAgIC5sZWdlbmQtY29udGVudCB7CiAgICAgICAgcGFkZGluZzogOHB4IDIwcHg7CiAgICAgIH0KCiAgICAgIC50b2dnbGUtbGVnZW5kLWJ1dHRvbiB7CiAgICAgICAgbWF4LWhlaWdodDogMjBweDsKICAgICAgICBtYXgtd2lkdGg6IDIwcHg7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1sZWdlbmQtdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS10Yi1ncmFwaC1jb250cm9scy1zdWJ0aXRsZS1mb250LXNpemUpOwogICAgICB9CgogICAgICBwYXBlci1yYWRpby1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDVweDsKICAgICAgfQogICAgICBzdmcuaWNvbiwKICAgICAgdGYtZ3JhcGgtaWNvbiB7CiAgICAgICAgd2lkdGg6IDYwcHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICB9CiAgICAgIC5kb21haW5WYWx1ZXMgewogICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgd2lkdGg6IDE2NXB4OwogICAgICB9CiAgICAgIC5kb21haW5TdGFydCB7CiAgICAgICAgZmxvYXQ6IGxlZnQ7CiAgICAgIH0KICAgICAgLmRvbWFpbkVuZCB7CiAgICAgICAgZmxvYXQ6IHJpZ2h0OwogICAgICB9CiAgICAgIC5jb2xvckJveCB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5pbWFnZS1pY29uIHsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5oZWxwLWljb24gewogICAgICAgIGhlaWdodDogMTVweDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLmdyYXkgewogICAgICAgIGNvbG9yOiAjNjY2OwogICAgICB9CgogICAgICAudGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdGItZ3JhcGgtY29udHJvbHMtdGl0bGUtZm9udC1zaXplKTsKICAgICAgICBtYXJnaW46IDhweCA1cHggOHB4IDA7CiAgICAgICAgY29sb3I6IHZhcigtLXRiLWdyYXBoLWNvbnRyb2xzLXRpdGxlLWNvbG9yKTsKICAgICAgfQogICAgICAudGl0bGUgc21hbGwgewogICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICAgIH0KICAgICAgLmRldmljZUxpc3QsCiAgICAgIC54bGFDbHVzdGVyTGlzdCB7CiAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgI2ZpbGUgewogICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICB9CgogICAgICAuY29sb3ItbGVnZW5kLXJvdyB7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBjbGVhcjogYm90aDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBtYXJnaW4tdG9wOiA1cHg7CiAgICAgIH0KCiAgICAgIC5jb2xvci1sZWdlbmQtcm93IC5sYWJlbCwKICAgICAgLmNvbG9yLWxlZ2VuZC1yb3cgc3ZnLAogICAgICAuY29sb3ItbGVnZW5kLXJvdyB0Zi1ncmFwaC1pY29uIHsKICAgICAgICBmbGV4OiAwIDAgNDBweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5kZXZpY2VzLWNoZWNrYm94IGlucHV0IHsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgIH0KCiAgICAgIC5jb250cm9sLWhvbGRlciAuaWNvbi1idXR0b24gewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdGItZ3JhcGgtY29udHJvbHMtc3VidGl0bGUtZm9udC1zaXplKTsKICAgICAgICBtYXJnaW46IDAgLTVweDsKICAgICAgICBwYWRkaW5nOiA1cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICAgICAgY29sb3I6IHZhcigtLXRiLWdyYXBoLWNvbnRyb2xzLXRleHQtY29sb3IpOwogICAgICB9CgogICAgICAuYnV0dG9uLXRleHQgewogICAgICAgIHBhZGRpbmctbGVmdDogMjBweDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsKICAgICAgfQoKICAgICAgLnVwbG9hZC1idXR0b24gewogICAgICAgIHdpZHRoOiAxNjVweDsKICAgICAgICBoZWlnaHQ6IDI1cHg7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICB9CgogICAgICAuYnV0dG9uLWljb24gewogICAgICAgIHdpZHRoOiAyNnB4OwogICAgICAgIGhlaWdodDogMjZweDsKICAgICAgICBjb2xvcjogdmFyKC0tcGFwZXItb3JhbmdlLTUwMCk7CiAgICAgIH0KCiAgICAgIC5oaWRkZW4taW5wdXQgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5hbGxjb250cm9scyAuY29udHJvbC1ob2xkZXIgewogICAgICAgIGNsZWFyOiBib3RoOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICB9CgogICAgICAuYWxsY29udHJvbHMgLmNvbnRyb2wtaG9sZGVyLmNvbnRyb2wtb3B0aW9ucyB7CiAgICAgICAgcGFkZGluZzogMCAwIDE1cHggMTVweDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB9CgogICAgICAuYWxsY29udHJvbHMgLmNvbnRyb2wtaG9sZGVyIHBhcGVyLXRvZ2dsZS1idXR0b24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsKICAgICAgfQoKICAgICAgc3Bhbi5jb3VudGVyIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXRiLWdyYXBoLWNvbnRyb2xzLXN1YnRpdGxlLWZvbnQtc2l6ZSk7CiAgICAgICAgY29sb3I6IGdyYXk7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDsKICAgICAgfQoKICAgICAgLnJ1bnMtcm93IC50aXRsZSwKICAgICAgLnRhZ3Mtcm93IC50aXRsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgIH0KCiAgICAgIC5ydW5zLXJvdyBwYXBlci1pdGVtLAogICAgICAudGFncy1yb3cgcGFwZXItaXRlbSB7CiAgICAgICAgLS1wYXBlci1pdGVtOiB7CiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIH0KICAgICAgfQoKICAgICAgdGFibGUuY29udHJvbC1ob2xkZXIgewogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICB9CgogICAgICB0YWJsZS50Zi1ncmFwaC1jb250cm9scyB0ZC5pbnB1dC1lbGVtZW50LXRhYmxlLWRhdGEgewogICAgICAgIHBhZGRpbmc6IDAgMCAwIDIwcHg7CiAgICAgIH0KCiAgICAgIC5zcGFjZXIgewogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgfQoKICAgICAgLmNvbG9yLXRleHQgewogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5jb2xvci10ZXh0LmdyYWRpZW50LWNvbnRhaW5lciB7CiAgICAgICAgbWFyZ2luOiAwIDVweDsKICAgICAgfQoKICAgICAgLyoqIE92ZXJyaWRlIGlubGluZSBzdHlsZXMgdGhhdCBzdXBwcmVzcyBwb2ludGVyIGV2ZW50cyBmb3IgZGlzYWJsZWQgYnV0dG9ucy4gT3RoZXJ3aXNlLCB0aGUgKi8KICAgICAgLyogIHRvb2x0aXBzIGRvIG5vdCBhcHBlYXIuICovCiAgICAgIHBhcGVyLXJhZGlvLWdyb3VwIHBhcGVyLXJhZGlvLWJ1dHRvbiB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmxlZ2VuZC1jbGFyaWZpZXIgewogICAgICAgIGNvbG9yOiAjMjY2MjM2OwogICAgICAgIGN1cnNvcjogaGVscDsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5sZWdlbmQtY2xhcmlmaWVyIHBhcGVyLXRvb2x0aXAgewogICAgICAgIHdpZHRoOiAxNTBweDsKICAgICAgfQoKICAgICAgLyoqIE90aGVyd2lzZSwgcG9seW1lciBVSSBjb250cm9scyBhcHBlYXIgYXRvcCBub2RlIHNlYXJjaC4gKi8KICAgICAgdGYtZ3JhcGgtbm9kZS1zZWFyY2ggewogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIHBhcGVyLWRyb3Bkb3duLW1lbnUgewogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJhbGxjb250cm9scyI+CiAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtaG9sZGVyIj4KICAgICAgICA8dGYtZ3JhcGgtbm9kZS1zZWFyY2gKICAgICAgICAgIHNlbGVjdGVkLW5vZGU9Int7c2VsZWN0ZWROb2RlfX0iCiAgICAgICAgICByZW5kZXItaGllcmFyY2h5PSJbW3JlbmRlckhpZXJhcmNoeV1dIgogICAgICAgID48L3RmLWdyYXBoLW5vZGUtc2VhcmNoPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ob2xkZXIiPgogICAgICAgIDxwYXBlci1idXR0b24gY2xhc3M9Imljb24tYnV0dG9uIiBvbi10YXA9Il9maXQiIGFsdD0iRml0IHRvIHNjcmVlbiI+CiAgICAgICAgICA8aXJvbi1pY29uIGljb249ImFzcGVjdC1yYXRpbyIgY2xhc3M9ImJ1dHRvbi1pY29uIj48L2lyb24taWNvbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJidXR0b24tdGV4dCI+Rml0IHRvIHNjcmVlbjwvc3Bhbj4KICAgICAgICA8L3BhcGVyLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtaG9sZGVyIj4KICAgICAgICA8cGFwZXItYnV0dG9uCiAgICAgICAgICBjbGFzcz0iaWNvbi1idXR0b24iCiAgICAgICAgICBvbi1jbGljaz0iZG93bmxvYWQiCiAgICAgICAgICBhbHQ9IkRvd25sb2FkIFBORyIKICAgICAgICA+CiAgICAgICAgICA8aXJvbi1pY29uIGljb249ImZpbGUtZG93bmxvYWQiIGNsYXNzPSJidXR0b24taWNvbiI+PC9pcm9uLWljb24+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYnV0dG9uLXRleHQiPkRvd25sb2FkIFBORzwvc3Bhbj4KICAgICAgICA8L3BhcGVyLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tzaG93VXBsb2FkQnV0dG9uXV0iPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtaG9sZGVyIj4KICAgICAgICAgIDxwYXBlci1idXR0b24KICAgICAgICAgICAgY2xhc3M9Imljb24tYnV0dG9uIgogICAgICAgICAgICBvbi1jbGljaz0iX2dldEZpbGUiCiAgICAgICAgICAgIGFsdD0iVXBsb2FkIGZpbGUiCiAgICAgICAgICAgIHRpdGxlPSJVcGxvYWQgYSBwYnR4dCBmaWxlIHRvIHZpZXcgYSBncmFwaCBmcm9tIHRoZSBsb2NhbCBmaWxlc3lzdGVtIgogICAgICAgICAgPgogICAgICAgICAgICA8aXJvbi1pY29uIGljb249ImZpbGUtdXBsb2FkIiBjbGFzcz0iYnV0dG9uLWljb24iPjwvaXJvbi1pY29uPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYnV0dG9uLXRleHQiPlVwbG9hZCBmaWxlPC9zcGFuPgogICAgICAgICAgPC9wYXBlci1idXR0b24+CgogICAgICAgICAgPGRpdiBjbGFzcz0iaGlkZGVuLWlucHV0Ij4KICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgdHlwZT0iZmlsZSIKICAgICAgICAgICAgICBpZD0iZmlsZSIKICAgICAgICAgICAgICBuYW1lPSJmaWxlIgogICAgICAgICAgICAgIG9uLWNoYW5nZT0iX3VwZGF0ZUZpbGVJbnB1dCIKICAgICAgICAgICAgICBhY2NlcHQ9Ii5wYnR4dCIKICAgICAgICAgICAgLz4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWhvbGRlciBydW5zLXJvdyI+CiAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPgogICAgICAgICAgUnVuIDxzcGFuIGNsYXNzPSJjb3VudGVyIj4oW1tkYXRhc2V0cy5sZW5ndGhdXSk8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPHBhcGVyLWRyb3Bkb3duLW1lbnUKICAgICAgICAgIG5vLWxhYmVsLWZsb2F0CiAgICAgICAgICBuby1hbmltYXRpb25zCiAgICAgICAgICBub2luawogICAgICAgICAgaG9yaXpvbnRhbC1hbGlnbj0ibGVmdCIKICAgICAgICAgIGNsYXNzPSJydW4tZHJvcGRvd24iCiAgICAgICAgPgogICAgICAgICAgPHBhcGVyLWxpc3Rib3gKICAgICAgICAgICAgY2xhc3M9ImRyb3Bkb3duLWNvbnRlbnQiCiAgICAgICAgICAgIHNlbGVjdGVkPSJ7e19zZWxlY3RlZFJ1bkluZGV4fX0iCiAgICAgICAgICAgIHNsb3Q9ImRyb3Bkb3duLWNvbnRlbnQiCiAgICAgICAgICA+CiAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbZGF0YXNldHNdXSI+CiAgICAgICAgICAgICAgPHBhcGVyLWl0ZW0+W1tpdGVtLm5hbWVdXTwvcGFwZXItaXRlbT4KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgICAgICA8L3BhcGVyLWRyb3Bkb3duLW1lbnU+CiAgICAgIDwvZGl2PgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9Iltbc2hvd1Nlc3Npb25SdW5zRHJvcGRvd25dXSI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ob2xkZXIgdGFncy1yb3ciPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPgogICAgICAgICAgICBUYWcKICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvdW50ZXIiCiAgICAgICAgICAgICAgPihbW19udW1UYWdzKGRhdGFzZXRzLCBfc2VsZWN0ZWRSdW5JbmRleCldXSk8L3NwYW4KICAgICAgICAgICAgPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cGFwZXItZHJvcGRvd24tbWVudQogICAgICAgICAgICBuby1sYWJlbC1mbG9hdAogICAgICAgICAgICBuby1hbmltYXRpb25zCiAgICAgICAgICAgIGhvcml6b250YWwtYWxpZ249ImxlZnQiCiAgICAgICAgICAgIG5vaW5rCiAgICAgICAgICAgIGNsYXNzPSJydW4tZHJvcGRvd24iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxwYXBlci1saXN0Ym94CiAgICAgICAgICAgICAgY2xhc3M9ImRyb3Bkb3duLWNvbnRlbnQiCiAgICAgICAgICAgICAgc2VsZWN0ZWQ9Int7X3NlbGVjdGVkVGFnSW5kZXh9fSIKICAgICAgICAgICAgICBzbG90PSJkcm9wZG93bi1jb250ZW50IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHRlbXBsYXRlCiAgICAgICAgICAgICAgICBpcz0iZG9tLXJlcGVhdCIKICAgICAgICAgICAgICAgIGl0ZW1zPSJbW19nZXRUYWdzKGRhdGFzZXRzLCBfc2VsZWN0ZWRSdW5JbmRleCldXSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8cGFwZXItaXRlbT5bW2l0ZW0uZGlzcGxheU5hbWVdXTwvcGFwZXItaXRlbT4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L3BhcGVyLWxpc3Rib3g+CiAgICAgICAgICA8L3BhcGVyLWRyb3Bkb3duLW1lbnU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj5HcmFwaCB0eXBlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtaG9sZGVyIGNvbnRyb2wtb3B0aW9ucyI+CiAgICAgICAgPHBhcGVyLXJhZGlvLWdyb3VwCiAgICAgICAgICBzZWxlY3RlZD0ie3tfc2VsZWN0ZWRHcmFwaFR5cGV9fSIKICAgICAgICAgIG9uLXBhcGVyLXJhZGlvLWdyb3VwLWNoYW5nZWQ9Il9vbkdyYXBoVHlwZUNoYW5nZWRCeVVzZXJHZXN0dXJlIgogICAgICAgID4KICAgICAgICAgIDwhLS0gTm90ZSB0aGF0IHRoZSBuYW1lIGhhcyB0byBtYXRjaCB0aGF0IG9mIHRmX2dyYXBoX2NvbW1vbi5TZWxlY3Rpb25UeXBlLiAtLT4KICAgICAgICAgIDxwYXBlci1yYWRpby1idXR0b24KICAgICAgICAgICAgbmFtZT0ib3BfZ3JhcGgiCiAgICAgICAgICAgIGRpc2FibGVkPSJbW19nZXRTZWxlY3Rpb25PcEdyYXBoRGlzYWJsZWQoZGF0YXNldHMsIF9zZWxlY3RlZFJ1bkluZGV4LCBfc2VsZWN0ZWRUYWdJbmRleCldXSIKICAgICAgICAgICAgPk9wIGdyYXBoPC9wYXBlci1yYWRpby1idXR0b24KICAgICAgICAgID4KICAgICAgICAgIDxwYXBlci1yYWRpby1idXR0b24KICAgICAgICAgICAgbmFtZT0iY29uY2VwdHVhbF9ncmFwaCIKICAgICAgICAgICAgZGlzYWJsZWQ9IltbX2dldFNlbGVjdGlvbkNvbmNlcHR1YWxHcmFwaERpc2FibGVkKGRhdGFzZXRzLCBfc2VsZWN0ZWRSdW5JbmRleCwgX3NlbGVjdGVkVGFnSW5kZXgpXV0iCiAgICAgICAgICAgID5Db25jZXB0dWFsIGdyYXBoPC9wYXBlci1yYWRpby1idXR0b24KICAgICAgICAgID4KICAgICAgICAgIDxwYXBlci1yYWRpby1idXR0b24KICAgICAgICAgICAgbmFtZT0icHJvZmlsZSIKICAgICAgICAgICAgZGlzYWJsZWQ9IltbX2dldFNlbGVjdGlvblByb2ZpbGVEaXNhYmxlZChkYXRhc2V0cywgX3NlbGVjdGVkUnVuSW5kZXgsIF9zZWxlY3RlZFRhZ0luZGV4KV1dIgogICAgICAgICAgICA+UHJvZmlsZTwvcGFwZXItcmFkaW8tYnV0dG9uCiAgICAgICAgICA+CiAgICAgICAgPC9wYXBlci1yYWRpby1ncm91cD4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj5Ob2RlIG9wdGlvbnM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ob2xkZXIgY29udHJvbC1vcHRpb25zIj4KICAgICAgICA8cGFwZXItdG9nZ2xlLWJ1dHRvbgogICAgICAgICAgY2hlY2tlZD0ie3t0cmFjZUlucHV0c319IgogICAgICAgICAgb24tY2hhbmdlPSJfb25UcmFjZUlucHV0c0NoYW5nZWRCeVVzZXJHZXN0dXJlIgogICAgICAgID4KICAgICAgICAgIFRyYWNlIGlucHV0cwogICAgICAgIDwvcGFwZXItdG9nZ2xlLWJ1dHRvbj4KICAgICAgICA8cGFwZXItdG9nZ2xlLWJ1dHRvbiBjaGVja2VkPSJ7e2F1dG9FeHRyYWN0Tm9kZXN9fSI+CiAgICAgICAgICBBdXRvLWV4dHJhY3QgaGlnaC1kZWdyZWUgbm9kZXMKICAgICAgICA8L3BhcGVyLXRvZ2dsZS1idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbaGVhbHRoUGlsbHNGZWF0dXJlRW5hYmxlZF1dIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWhvbGRlciI+CiAgICAgICAgICA8cGFwZXItdG9nZ2xlLWJ1dHRvbiBjaGVja2VkPSJ7e2hlYWx0aFBpbGxzVG9nZ2xlZE9ufX0iCiAgICAgICAgICAgID5TaG93IGhlYWx0aCBwaWxsczwvcGFwZXItdG9nZ2xlLWJ1dHRvbgogICAgICAgICAgPgogICAgICAgIDwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+Q29sb3IgYnk8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ob2xkZXIgY29udHJvbC1vcHRpb25zIj4KICAgICAgICA8cGFwZXItcmFkaW8tZ3JvdXAKICAgICAgICAgIHNlbGVjdGVkPSJ7e2NvbG9yQnl9fSIKICAgICAgICAgIG9uLXBhcGVyLXJhZGlvLWdyb3VwLWNoYW5nZWQ9Il9vbkNvbG9yQnlDaGFuZ2VkQnlVc2VyR2VzdHVyZSIKICAgICAgICA+CiAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uIG5hbWU9IltbQ29sb3JCeS5OT05FXV0iPk5vbmU8L3BhcGVyLXJhZGlvLWJ1dHRvbj4KCiAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uIG5hbWU9IltbQ29sb3JCeS5TVFJVQ1RVUkVdXSIKICAgICAgICAgICAgPlN0cnVjdHVyZTwvcGFwZXItcmFkaW8tYnV0dG9uCiAgICAgICAgICA+CgogICAgICAgICAgPHBhcGVyLXJhZGlvLWJ1dHRvbiBuYW1lPSJbW0NvbG9yQnkuREVWSUNFXV0iCiAgICAgICAgICAgID5EZXZpY2U8L3BhcGVyLXJhZGlvLWJ1dHRvbgogICAgICAgICAgPgoKICAgICAgICAgIDxwYXBlci1yYWRpby1idXR0b24KICAgICAgICAgICAgaWQ9InhsYS1jbHVzdGVyLXJhZGlvLWJ1dHRvbiIKICAgICAgICAgICAgbmFtZT0iW1tDb2xvckJ5LlhMQV9DTFVTVEVSXV0iCiAgICAgICAgICAgIGRpc2FibGVkPSJbWyFfeGxhQ2x1c3RlcnNQcm92aWRlZChyZW5kZXJIaWVyYXJjaHkpXV0iCiAgICAgICAgICA+CiAgICAgICAgICAgIFhMQSBjbHVzdGVyCiAgICAgICAgICA8L3BhcGVyLXJhZGlvLWJ1dHRvbj4KICAgICAgICAgIDxwYXBlci10b29sdGlwCiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheT0iMCIKICAgICAgICAgICAgZm9yPSJ4bGEtY2x1c3Rlci1yYWRpby1idXR0b24iCiAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICAgPgogICAgICAgICAgICBDb2xvcmluZyBieSBYTEEgY2x1c3RlciBpcyBvbmx5IGVuYWJsZWQgaWYgYXQgbGVhc3QgMSBvcCBzcGVjaWZpZXMKICAgICAgICAgICAgYW4gWExBIGNsdXN0ZXIuCiAgICAgICAgICA8L3BhcGVyLXRvb2x0aXA+CgogICAgICAgICAgPHBhcGVyLXJhZGlvLWJ1dHRvbgogICAgICAgICAgICBpZD0iY29tcHV0ZS10aW1lLXJhZGlvLWJ1dHRvbiIKICAgICAgICAgICAgbmFtZT0iW1tDb2xvckJ5LkNPTVBVVEVfVElNRV1dIgogICAgICAgICAgICBkaXNhYmxlZD0iW1shc3RhdHNdXSIKICAgICAgICAgID4KICAgICAgICAgICAgQ29tcHV0ZSB0aW1lCiAgICAgICAgICA8L3BhcGVyLXJhZGlvLWJ1dHRvbj4KICAgICAgICAgIDxwYXBlci10b29sdGlwCiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheT0iMCIKICAgICAgICAgICAgZm9yPSJjb21wdXRlLXRpbWUtcmFkaW8tYnV0dG9uIgogICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgID4KICAgICAgICAgICAgQ29sb3JpbmcgYnkgY29tcHV0ZSB0aW1lIGlzIG9ubHkgZW5hYmxlZCBpZiB0aGUgUnVuTWV0YWRhdGEgcHJvdG8gaXMKICAgICAgICAgICAgcGFzc2VkIHRvIHRoZSBGaWxlV3JpdGVyIHdoZW4gYSBzcGVjaWZpYyBzZXNzaW9uIGlzIHJ1bi4KICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KCiAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uCiAgICAgICAgICAgIGlkPSJtZW1vcnktcmFkaW8tYnV0dG9uIgogICAgICAgICAgICBuYW1lPSJbW0NvbG9yQnkuTUVNT1JZXV0iCiAgICAgICAgICAgIGRpc2FibGVkPSJbWyFzdGF0c11dIgogICAgICAgICAgPgogICAgICAgICAgICBNZW1vcnkKICAgICAgICAgIDwvcGFwZXItcmFkaW8tYnV0dG9uPgogICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5PSIwIgogICAgICAgICAgICBmb3I9Im1lbW9yeS1yYWRpby1idXR0b24iCiAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICAgPgogICAgICAgICAgICBDb2xvcmluZyBieSBtZW1vcnkgaXMgb25seSBlbmFibGVkIGlmIHRoZSBSdW5NZXRhZGF0YSBwcm90byBpcwogICAgICAgICAgICBwYXNzZWQgdG8gdGhlIEZpbGVXcml0ZXIgd2hlbiBhIHNwZWNpZmljIHNlc3Npb24gaXMgcnVuLgogICAgICAgICAgPC9wYXBlci10b29sdGlwPgoKICAgICAgICAgIDxwYXBlci1yYWRpby1idXR0b24KICAgICAgICAgICAgaWQ9InRwdS1jb21wYXRpYmlsaXR5LXJhZGlvLWJ1dHRvbiIKICAgICAgICAgICAgbmFtZT0iW1tDb2xvckJ5Lk9QX0NPTVBBVElCSUxJVFldXSIKICAgICAgICAgID4KICAgICAgICAgICAgVFBVIGNvbXBhdGliaWxpdHkKICAgICAgICAgIDwvcGFwZXItcmFkaW8tYnV0dG9uPgogICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5PSIwIgogICAgICAgICAgICBmb3I9InRwdS1jb21wYXRpYmlsaXR5LXJhZGlvLWJ1dHRvbiIKICAgICAgICAgICAgcG9zaXRpb249InJpZ2h0IgogICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICA+CiAgICAgICAgICAgIENvbG9yaW5nIGJ5IHdoZXRoZXIgYW4gb3BlcmF0aW9uIGlzIGNvbXBhdGlibGUgZm9yIHRoZSBUUFUgZGV2aWNlLgogICAgICAgICAgPC9wYXBlci10b29sdGlwPgogICAgICAgIDwvcGFwZXItcmFkaW8tZ3JvdXA+CiAgICAgICAgPHNwYW4gY2xhc3M9InNwYWNlciI+PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0ibGVnZW5kLWhvbGRlciI+CiAgICAgIDxidXR0b24gY2xhc3M9ImxlZ2VuZC10b29sYmFyIiBvbi1jbGljaz0iX3RvZ2dsZUxlZ2VuZE9wZW4iPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0b2dnbGUtbGVnZW5kLXRleHQiPkxlZ2VuZDwvc3Bhbj4KICAgICAgICA8aXJvbi1pY29uCiAgICAgICAgICBpY29uPSJbW19nZXRUb2dnbGVMZWdlbmRJY29uKF9sZWdlbmRPcGVuZWQpXV0iCiAgICAgICAgICBjbGFzcz0idG9nZ2xlLWxlZ2VuZC1idXR0b24iCiAgICAgICAgPgogICAgICAgIDwvaXJvbi1pY29uPgogICAgICA8L2J1dHRvbj4KICAgICAgPGlyb24tY29sbGFwc2Ugb3BlbmVkPSJbW19sZWdlbmRPcGVuZWRdXSIgY2xhc3M9ImxlZ2VuZC1jb250ZW50Ij4KICAgICAgICA8IS0tIENvbG9yLW1vZGUtc3BlY2lmaWMgbGVnZW5kIGl0ZW1zIC0tPgogICAgICAgIDxkaXY+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2lzR3JhZGllbnRDb2xvcmluZyhzdGF0cywgY29sb3JCeSldXSI+CiAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE0MCIgaGVpZ2h0PSIyMCIgY2xhc3M9ImNvbG9yLXRleHQgZ3JhZGllbnQtY29udGFpbmVyIj4KICAgICAgICAgICAgICA8ZGVmcz4KICAgICAgICAgICAgICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgICAgICAgICAgICBpZD0ibGluZWFyR3JhZGllbnQiCiAgICAgICAgICAgICAgICAgIHgxPSIwJSIKICAgICAgICAgICAgICAgICAgeTE9IjAlIgogICAgICAgICAgICAgICAgICB4Mj0iMTAwJSIKICAgICAgICAgICAgICAgICAgeTI9IjAlIgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8c3RvcAogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJzdGFydCIKICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9IjAlIgogICAgICAgICAgICAgICAgICAgIHN0b3AtY29sb3IkPSJbW19jdXJyZW50R3JhZGllbnRQYXJhbXMuc3RhcnRDb2xvcl1dIgogICAgICAgICAgICAgICAgICA+PC9zdG9wPgogICAgICAgICAgICAgICAgICA8c3RvcAogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJlbmQiCiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0PSIxMDAlIgogICAgICAgICAgICAgICAgICAgIHN0b3AtY29sb3IkPSJbW19jdXJyZW50R3JhZGllbnRQYXJhbXMuZW5kQ29sb3JdXSIKICAgICAgICAgICAgICAgICAgPjwvc3RvcD4KICAgICAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgICAgICAgPC9kZWZzPgogICAgICAgICAgICAgIDxyZWN0CiAgICAgICAgICAgICAgICB4PSIwIgogICAgICAgICAgICAgICAgeT0iMCIKICAgICAgICAgICAgICAgIHdpZHRoPSIxMzUiCiAgICAgICAgICAgICAgICBoZWlnaHQ9IjIwIgogICAgICAgICAgICAgICAgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudCkiCiAgICAgICAgICAgICAgICBzdHJva2U9ImJsYWNrIgogICAgICAgICAgICAgID48L3JlY3Q+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkb21haW5WYWx1ZXMgY29sb3ItdGV4dCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG9tYWluU3RhcnQiPltbX2N1cnJlbnRHcmFkaWVudFBhcmFtcy5taW5WYWx1ZV1dPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG9tYWluRW5kIj5bW19jdXJyZW50R3JhZGllbnRQYXJhbXMubWF4VmFsdWVdXTwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGJyIHN0eWxlPSJjbGVhcjogYm90aCIgLz4KICAgICAgICAgICAgPGRpdj5EZXZpY2VzIGluY2x1ZGVkIGluIHN0YXRzOjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXZpY2VMaXN0Ij4KICAgICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19jdXJyZW50RGV2aWNlc11dIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLWxlZ2VuZC1yb3cgZGV2aWNlcy1jaGVja2JveCI+CiAgICAgICAgICAgICAgICAgIDxzcGFuCiAgICAgICAgICAgICAgICAgICAgPjxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgdHlwZT0iY2hlY2tib3giCiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSQ9IltbaXRlbS5kZXZpY2VdXSIKICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQkPSJbW2l0ZW0udXNlZF1dIgogICAgICAgICAgICAgICAgICAgICAgb24tY2xpY2s9Il9kZXZpY2VDaGVja2JveENsaWNrZWQiCiAgICAgICAgICAgICAgICAgIC8+PC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3Bhbj5bW2l0ZW0uc3VmZml4XV08L3NwYW4+CiAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tpdGVtLmlnbm9yZWRNc2ddXSI+CiAgICAgICAgICAgICAgICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICBpY29uPSJoZWxwIgogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImhlbHAtaWNvbiIKICAgICAgICAgICAgICAgICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8cGFwZXItdG9vbHRpcAogICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249InJpZ2h0IgogICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5PSIwIgogICAgICAgICAgICAgICAgICAgICAgPltbaXRlbS5pZ25vcmVkTXNnXV08L3BhcGVyLXRvb2x0aXAKICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2VxdWFscyhjb2xvckJ5LCAnc3RydWN0dXJlJyldXSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLXRleHQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLWxlZ2VuZC1yb3ciPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxhYmVsIj4gY29sb3JzIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb2xvci1sZWdlbmQtdmFsdWUiPnNhbWUgc3Vic3RydWN0dXJlPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLWxlZ2VuZC1yb3ciPgogICAgICAgICAgICAgICAgPHRmLWdyYXBoLWljb24KICAgICAgICAgICAgICAgICAgdHlwZT0iTUVUQSIKICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxNiIKICAgICAgICAgICAgICAgICAgZmlsbC1vdmVycmlkZT0iI2VlZSIKICAgICAgICAgICAgICAgICAgc3Ryb2tlLW92ZXJyaWRlPSIjYTZhNmE2IgogICAgICAgICAgICAgICAgPjwvdGYtZ3JhcGgtaWNvbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb2xvci1sZWdlbmQtdmFsdWUiPnVuaXF1ZSBzdWJzdHJ1Y3R1cmU8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfZXF1YWxzKGNvbG9yQnksICdkZXZpY2UnKV1dIj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19jdXJyZW50RGV2aWNlUGFyYW1zXV0iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sb3ItbGVnZW5kLXJvdyI+CiAgICAgICAgICAgICAgICAgIDx0Zi1ncmFwaC1pY29uCiAgICAgICAgICAgICAgICAgICAgdHlwZT0iTUVUQSIKICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9IjE2IgogICAgICAgICAgICAgICAgICAgIGZpbGwtb3ZlcnJpZGU9IltbaXRlbS5jb2xvcl1dIgogICAgICAgICAgICAgICAgICAgIHN0cm9rZS1vdmVycmlkZT0iI2E2YTZhNiIKICAgICAgICAgICAgICAgICAgPjwvdGYtZ3JhcGgtaWNvbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbG9yLWxlZ2VuZC12YWx1ZSI+W1tpdGVtLmRldmljZV1dPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1sZWdlbmQtcm93Ij4KICAgICAgICAgICAgICAgIDx0Zi1ncmFwaC1pY29uCiAgICAgICAgICAgICAgICAgIHR5cGU9Ik1FVEEiCiAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTYiCiAgICAgICAgICAgICAgICAgIGZpbGwtb3ZlcnJpZGU9IiNlZWUiCiAgICAgICAgICAgICAgICAgIHN0cm9rZS1vdmVycmlkZT0iI2E2YTZhNiIKICAgICAgICAgICAgICAgID48L3RmLWdyYXBoLWljb24+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29sb3ItbGVnZW5kLXZhbHVlIj51bmtub3duIGRldmljZTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19lcXVhbHMoY29sb3JCeSwgJ3hsYV9jbHVzdGVyJyldXSI+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfY3VycmVudFhsYUNsdXN0ZXJQYXJhbXNdXSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xvci1sZWdlbmQtcm93Ij4KICAgICAgICAgICAgICAgICAgPHN2Zz4KICAgICAgICAgICAgICAgICAgICA8dXNlCiAgICAgICAgICAgICAgICAgICAgICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgICAgICAgICAgICAgICAgICAgIHhsaW5rOmhyZWY9IiN1bmZpbGxlZC1yZWN0IgogICAgICAgICAgICAgICAgICAgICAgeD0iMCIKICAgICAgICAgICAgICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0iZmlsbDpbW2l0ZW0uY29sb3JdXSIKICAgICAgICAgICAgICAgICAgICA+PC91c2U+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29sb3ItbGVnZW5kLXZhbHVlIj5bW2l0ZW0ueGxhX2NsdXN0ZXJdXTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sb3ItbGVnZW5kLXJvdyI+CiAgICAgICAgICAgICAgICA8c3ZnPgogICAgICAgICAgICAgICAgICA8dXNlCiAgICAgICAgICAgICAgICAgICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgICAgICAgICAgICAgICAgICAgeGxpbms6aHJlZj0iI2dyZXktcmVjdCIKICAgICAgICAgICAgICAgICAgICB4PSIwIgogICAgICAgICAgICAgICAgICAgIHk9IjAiCiAgICAgICAgICAgICAgICAgID48L3VzZT4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbG9yLWxlZ2VuZC12YWx1ZSI+dW5rbm93biBYTEEgY2x1c3Rlcjwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19lcXVhbHMoY29sb3JCeSwgJ29wX2NvbXBhdGliaWxpdHknKV1dIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sb3ItdGV4dCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sb3ItbGVnZW5kLXJvdyI+CiAgICAgICAgICAgICAgICA8dGYtZ3JhcGgtaWNvbgogICAgICAgICAgICAgICAgICB0eXBlPSJPUCIKICAgICAgICAgICAgICAgICAgaGVpZ2h0PSIxNiIKICAgICAgICAgICAgICAgICAgZmlsbC1vdmVycmlkZT0iIzBmOWQ1OCIKICAgICAgICAgICAgICAgICAgc3Ryb2tlLW92ZXJyaWRlPSIjY2NjIgogICAgICAgICAgICAgICAgPjwvdGYtZ3JhcGgtaWNvbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb2xvci1sZWdlbmQtdmFsdWUiPlZhbGlkIE9wPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLWxlZ2VuZC1yb3ciPgogICAgICAgICAgICAgICAgPHRmLWdyYXBoLWljb24KICAgICAgICAgICAgICAgICAgdHlwZT0iT1AiCiAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTYiCiAgICAgICAgICAgICAgICAgIGZpbGwtb3ZlcnJpZGU9IiNkYjQ0MzciCiAgICAgICAgICAgICAgICAgIHN0cm9rZS1vdmVycmlkZT0iI2NjYyIKICAgICAgICAgICAgICAgID48L3RmLWdyYXBoLWljb24+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29sb3ItbGVnZW5kLXZhbHVlIj5JbnZhbGlkIE9wPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX3N0YXRzTm90TnVsbChzdGF0cyldXSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbG9yLWxlZ2VuZC1yb3ciPgogICAgICAgICAgICAgIDx0Zi1ncmFwaC1pY29uIHR5cGU9Ik1FVEEiIGhlaWdodD0iMTYiIGZhZGVkPjwvdGYtZ3JhcGgtaWNvbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29sb3ItbGVnZW5kLXZhbHVlIj51bnVzZWQgc3Vic3RydWN0dXJlPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gQ29tbW9uIGxlZ2VuZCBpdGVtcyAtLT4KICAgICAgICA8ZGl2PgogICAgICAgICAgPHRhYmxlPgogICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+KCogPSBleHBhbmRhYmxlKTwvdGQ+CiAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIDx0Zi1ncmFwaC1pY29uCiAgICAgICAgICAgICAgICAgICAgdHlwZT0iTUVUQSIKICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9IjE2IgogICAgICAgICAgICAgICAgICAgIGZpbGwtb3ZlcnJpZGU9IiNkOWQ5ZDkiCiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLW92ZXJyaWRlPSIjY2NjIgogICAgICAgICAgICAgICAgICA+PC90Zi1ncmFwaC1pY29uPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgTmFtZXNwYWNlPHNwYW4gY2xhc3M9ImdyYXkiPio8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxlZ2VuZC1jbGFyaWZpZXIiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPj88L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheT0iMCIKICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICBFbmNhcHN1bGF0ZXMgYSBzZXQgb2Ygbm9kZXMuIE5hbWVzcGFjZSBpcyBoaWVyYXJjaGljYWwgYW5kCiAgICAgICAgICAgICAgICAgICAgICBiYXNlZCBvbiBzY29wZS4KICAgICAgICAgICAgICAgICAgICA8L3BhcGVyLXRvb2x0aXA+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgPHRmLWdyYXBoLWljb24gdHlwZT0iT1AiIGhlaWdodD0iMTYiPjwvdGYtZ3JhcGgtaWNvbj4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIE9wTm9kZQogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsZWdlbmQtY2xhcmlmaWVyIj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj4/PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxwYXBlci10b29sdGlwCiAgICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk9IjAiCiAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgTm9kZSB0aGF0IHBlcmZvcm1zIGFuIG9wZXJhdGlvbi4gVGhlc2Ugbm9kZXMgY2Fubm90CiAgICAgICAgICAgICAgICAgICAgICBleHBhbmQuCiAgICAgICAgICAgICAgICAgICAgPC9wYXBlci10b29sdGlwPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIDx0Zi1ncmFwaC1pY29uIHR5cGU9IlNFUklFUyIgaGVpZ2h0PSIxNiI+PC90Zi1ncmFwaC1pY29uPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgVW5jb25uZWN0ZWQgc2VyaWVzPHNwYW4gY2xhc3M9ImdyYXkiPio8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxlZ2VuZC1jbGFyaWZpZXIiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPj88L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheT0iMCIKICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICBTZXF1ZW5jZSBvZiBudW1iZXJlZCBub2RlcyB0aGF0IGFyZSBub3QgY29ubmVjdGVkIHRvIGVhY2gKICAgICAgICAgICAgICAgICAgICAgIG90aGVyLgogICAgICAgICAgICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICA8dGYtZ3JhcGgtaWNvbgogICAgICAgICAgICAgICAgICAgIHR5cGU9IlNFUklFUyIKICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9IjE2IgogICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsCiAgICAgICAgICAgICAgICAgID48L3RmLWdyYXBoLWljb24+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICBDb25uZWN0ZWQgc2VyaWVzPHNwYW4gY2xhc3M9ImdyYXkiPio8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxlZ2VuZC1jbGFyaWZpZXIiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPj88L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheT0iMCIKICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICBTZXF1ZW5jZSBvZiBudW1iZXJlZCBub2RlcyB0aGF0IGFyZSBjb25uZWN0ZWQgdG8gZWFjaAogICAgICAgICAgICAgICAgICAgICAgb3RoZXIuCiAgICAgICAgICAgICAgICAgICAgPC9wYXBlci10b29sdGlwPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24iPgogICAgICAgICAgICAgICAgICAgIDxjaXJjbGUKICAgICAgICAgICAgICAgICAgICAgIGZpbGw9IndoaXRlIgogICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPSIjODQ4NDg0IgogICAgICAgICAgICAgICAgICAgICAgY3g9IjEwIgogICAgICAgICAgICAgICAgICAgICAgY3k9IjEwIgogICAgICAgICAgICAgICAgICAgICAgcj0iNSIKICAgICAgICAgICAgICAgICAgICA+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgQ29uc3RhbnQKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGVnZW5kLWNsYXJpZmllciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+Pzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8cGFwZXItdG9vbHRpcAogICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5PSIwIgogICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249InJpZ2h0IgogICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIE5vZGUgdGhhdCBvdXRwdXRzIGEgY29uc3RhbnQgdmFsdWUuCiAgICAgICAgICAgICAgICAgICAgPC9wYXBlci10b29sdGlwPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIDx0Zi1ncmFwaC1pY29uIHR5cGU9IlNVTU1BUlkiIGhlaWdodD0iMjAiPjwvdGYtZ3JhcGgtaWNvbj4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIFN1bW1hcnkKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGVnZW5kLWNsYXJpZmllciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+Pzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8cGFwZXItdG9vbHRpcAogICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5PSIwIgogICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249InJpZ2h0IgogICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIE5vZGUgdGhhdCBjb2xsZWN0cyBkYXRhIGZvciB2aXN1YWxpemF0aW9uIHdpdGhpbgogICAgICAgICAgICAgICAgICAgICAgVGVuc29yQm9hcmQuCiAgICAgICAgICAgICAgICAgICAgPC9wYXBlci10b29sdGlwPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIDxzdmcKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaWNvbiIKICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9IjE1cHgiCiAgICAgICAgICAgICAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaWQgbWVldCIKICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PSIwIDAgMTUgMTUiCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICA8ZGVmcz4KICAgICAgICAgICAgICAgICAgICAgIDxtYXJrZXIKICAgICAgICAgICAgICAgICAgICAgICAgaWQ9ImRhdGFmbG93LWFycm93aGVhZC1sZWdlbmQiCiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9IiNiYmIiCiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtlcldpZHRoPSIxMCIKICAgICAgICAgICAgICAgICAgICAgICAgbWFya2VySGVpZ2h0PSIxMCIKICAgICAgICAgICAgICAgICAgICAgICAgcmVmWD0iOSIKICAgICAgICAgICAgICAgICAgICAgICAgcmVmWT0iNSIKICAgICAgICAgICAgICAgICAgICAgICAgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiCiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0gMCwwIEwgMTAsNSBMIDAsMTAgQyAzLDcgMywzIDAsMCI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgPC9tYXJrZXI+CiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPgogICAgICAgICAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgICAgICAgICBtYXJrZXItZW5kPSJ1cmwoI2RhdGFmbG93LWFycm93aGVhZC1sZWdlbmQpIgogICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPSIjYmJiIgogICAgICAgICAgICAgICAgICAgICAgZD0iTTIgOSBsIDI5IDAiCiAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiCiAgICAgICAgICAgICAgICAgICAgPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICBEYXRhZmxvdyBlZGdlCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxlZ2VuZC1jbGFyaWZpZXIiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPj88L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheT0iMCIKICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICBFZGdlIHNob3dpbmcgdGhlIGRhdGEgZmxvdyBiZXR3ZWVuIG9wZXJhdGlvbnMuIEVkZ2VzIGZsb3cKICAgICAgICAgICAgICAgICAgICAgIHVwd2FyZHMgdW5sZXNzIGFycm93aGVhZHMgc3BlY2lmeSBvdGhlcndpc2UuCiAgICAgICAgICAgICAgICAgICAgPC9wYXBlci10b29sdGlwPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgIDxzdmcKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaWNvbiIKICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9IjE1cHgiCiAgICAgICAgICAgICAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaWQgbWVldCIKICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PSIwIDAgMTUgMTUiCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPSIjYmJiIgogICAgICAgICAgICAgICAgICAgICAgZD0iTTIgOSBsIDI5IDAiCiAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiCiAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtZGFzaGFycmF5PSIyLCAyIgogICAgICAgICAgICAgICAgICAgID48L3BhdGg+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgQ29udHJvbCBkZXBlbmRlbmN5IGVkZ2UKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGVnZW5kLWNsYXJpZmllciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+Pzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8cGFwZXItdG9vbHRpcAogICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5PSIwIgogICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249InJpZ2h0IgogICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIEVkZ2Ugc2hvd2luZyB0aGUgY29udHJvbCBkZXBlbmRlbmN5IGJldHdlZW4gb3BlcmF0aW9ucy4KICAgICAgICAgICAgICAgICAgICA8L3BhcGVyLXRvb2x0aXA+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgPHN2ZwogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpY29uIgogICAgICAgICAgICAgICAgICAgIGhlaWdodD0iMTVweCIKICAgICAgICAgICAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pZCBtZWV0IgogICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9IjAgMCAxNSAxNSIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgIDxkZWZzPgogICAgICAgICAgICAgICAgICAgICAgPG1hcmtlcgogICAgICAgICAgICAgICAgICAgICAgICBpZD0icmVmZXJlbmNlLWFycm93aGVhZC1sZWdlbmQiCiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9IiNGRkI3NEQiCiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtlcldpZHRoPSIxMCIKICAgICAgICAgICAgICAgICAgICAgICAgbWFya2VySGVpZ2h0PSIxMCIKICAgICAgICAgICAgICAgICAgICAgICAgcmVmWD0iOSIKICAgICAgICAgICAgICAgICAgICAgICAgcmVmWT0iNSIKICAgICAgICAgICAgICAgICAgICAgICAgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiCiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0gMCwwIEwgMTAsNSBMIDAsMTAgQyAzLDcgMywzIDAsMCI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgPC9tYXJrZXI+CiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPgogICAgICAgICAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgICAgICAgICBtYXJrZXItZW5kPSJ1cmwoI3JlZmVyZW5jZS1hcnJvd2hlYWQtbGVnZW5kKSIKICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT0iI0ZGQjc0RCIKICAgICAgICAgICAgICAgICAgICAgIGQ9Ik0yIDkgbCAyOSAwIgogICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogICAgICAgICAgICAgICAgICAgID48L3BhdGg+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlIGVkZ2UKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGVnZW5kLWNsYXJpZmllciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+Pzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8cGFwZXItdG9vbHRpcAogICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5PSIwIgogICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249InJpZ2h0IgogICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIEVkZ2Ugc2hvd2luZyB0aGF0IHRoZSBvdXRnb2luZyBvcGVyYXRpb24gbm9kZSBjYW4gbXV0YXRlCiAgICAgICAgICAgICAgICAgICAgICB0aGUgaW5jb21pbmcgdGVuc29yLgogICAgICAgICAgICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvZGl2PgogICAgICA8L2lyb24tY29sbGFwc2U+CiAgICA8L2Rpdj4KICBgLHQoW28oe3R5cGU6T2JqZWN0LG9ic2VydmVyOiJfc3RhdHNDaGFuZ2VkIn0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxsSnQucHJvdG90eXBlLCJzdGF0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdCxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sbEp0LnByb3RvdHlwZSwiZGV2aWNlc0ZvclN0YXRzIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxsSnQucHJvdG90eXBlLCJjb2xvckJ5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxsSnQucHJvdG90eXBlLCJjb2xvckJ5UGFyYW1zIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXksb2JzZXJ2ZXI6Il9kYXRhc2V0c0NoYW5nZWQifSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGxKdC5wcm90b3R5cGUsImRhdGFzZXRzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLEFLdCldLGxKdC5wcm90b3R5cGUsInJlbmRlckhpZXJhcmNoeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdCxub3RpZnk6ITAscmVhZE9ubHk6ITAsY29tcHV0ZWQ6Il9jb21wdXRlU2VsZWN0aW9uKGRhdGFzZXRzLCBfc2VsZWN0ZWRSdW5JbmRleCwgX3NlbGVjdGVkVGFnSW5kZXgsIF9zZWxlY3RlZEdyYXBoVHlwZSkifSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGxKdC5wcm90b3R5cGUsInNlbGVjdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdCxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sbEp0LnByb3RvdHlwZSwic2VsZWN0ZWRGaWxlIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLG9ic2VydmVyOiJfc2VsZWN0ZWRSdW5JbmRleENoYW5nZWQifSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLGxKdC5wcm90b3R5cGUsIl9zZWxlY3RlZFJ1bkluZGV4Iix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGxKdC5wcm90b3R5cGUsInRyYWNlSW5wdXRzIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGxKdC5wcm90b3R5cGUsImF1dG9FeHRyYWN0Tm9kZXMiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXIsb2JzZXJ2ZXI6Il9zZWxlY3RlZFRhZ0luZGV4Q2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sbEp0LnByb3RvdHlwZSwiX3NlbGVjdGVkVGFnSW5kZXgiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sbEp0LnByb3RvdHlwZSwiX3NlbGVjdGVkR3JhcGhUeXBlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxsSnQucHJvdG90eXBlLCJzZWxlY3RlZE5vZGUiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxsSnQucHJvdG90eXBlLCJzaG93U2Vzc2lvblJ1bnNEcm9wZG93biIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGxKdC5wcm90b3R5cGUsInNob3dVcGxvYWRCdXR0b24iLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxsSnQucHJvdG90eXBlLCJoZWFsdGhQaWxsc0ZlYXR1cmVFbmFibGVkIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLGxKdC5wcm90b3R5cGUsImhlYWx0aFBpbGxzVG9nZ2xlZE9uIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sbEp0LnByb3RvdHlwZSwiX2xlZ2VuZE9wZW5lZCIsdm9pZCAwKSx0KFtzKCJkZXZpY2VzRm9yU3RhdHMiKSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGxKdC5wcm90b3R5cGUsIl9jdXJyZW50RGV2aWNlcyIsbnVsbCksdChbcygiY29sb3JCeVBhcmFtcyIpLGUoImRlc2lnbjp0eXBlIixBcnJheSksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sbEp0LnByb3RvdHlwZSwiX2N1cnJlbnREZXZpY2VQYXJhbXMiLG51bGwpLHQoW3MoImNvbG9yQnlQYXJhbXMiKSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGxKdC5wcm90b3R5cGUsIl9jdXJyZW50WGxhQ2x1c3RlclBhcmFtcyIsbnVsbCksdChbcygiY29sb3JCeVBhcmFtcyIsImNvbG9yQnkiKSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxsSnQucHJvdG90eXBlLCJfY3VycmVudEdyYWRpZW50UGFyYW1zIixudWxsKSxsSnQ9dChbaSgidGYtZ3JhcGgtY29udHJvbHMiKV0sbEp0KTtjb25zdCBkSnQ9eyJsaWJyYXJ5LmZ1bmN0aW9uIjohMCwibGlicmFyeS5mdW5jdGlvbi5ub2RlX2RlZiI6ITAsImxpYnJhcnkuZnVuY3Rpb24ubm9kZV9kZWYuaW5wdXQiOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLm5vZGVfZGVmLmF0dHIiOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLm5vZGVfZGVmLmF0dHIudmFsdWUubGlzdC5iIjohMCwibGlicmFyeS5mdW5jdGlvbi5ub2RlX2RlZi5hdHRyLnZhbHVlLmxpc3QuZiI6ITAsImxpYnJhcnkuZnVuY3Rpb24ubm9kZV9kZWYuYXR0ci52YWx1ZS5saXN0LmZ1bmMiOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLm5vZGVfZGVmLmF0dHIudmFsdWUubGlzdC5pIjohMCwibGlicmFyeS5mdW5jdGlvbi5ub2RlX2RlZi5hdHRyLnZhbHVlLmxpc3QucyI6ITAsImxpYnJhcnkuZnVuY3Rpb24ubm9kZV9kZWYuYXR0ci52YWx1ZS5saXN0LnNoYXBlIjohMCwibGlicmFyeS5mdW5jdGlvbi5ub2RlX2RlZi5hdHRyLnZhbHVlLmxpc3Quc2hhcGUuZGltIjohMCwibGlicmFyeS5mdW5jdGlvbi5ub2RlX2RlZi5hdHRyLnZhbHVlLmxpc3QudGVuc29yIjohMCwibGlicmFyeS5mdW5jdGlvbi5ub2RlX2RlZi5hdHRyLnZhbHVlLmxpc3QudHlwZSI6ITAsImxpYnJhcnkuZnVuY3Rpb24ubm9kZV9kZWYuYXR0ci52YWx1ZS5zaGFwZS5kaW0iOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLm5vZGVfZGVmLmF0dHIudmFsdWUudGVuc29yLnN0cmluZ192YWwiOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLm5vZGVfZGVmLmF0dHIudmFsdWUudGVuc29yLnRlbnNvcl9zaGFwZS5kaW0iOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLnNpZ25hdHVyZS5pbnB1dF9hcmciOiEwLCJsaWJyYXJ5LmZ1bmN0aW9uLnNpZ25hdHVyZS5vdXRwdXRfYXJnIjohMCwibGlicmFyeS52ZXJzaW9ucyI6ITAsbm9kZTohMCwibm9kZS5pbnB1dCI6ITAsIm5vZGUuYXR0ciI6ITAsIm5vZGUuYXR0ci52YWx1ZS5saXN0LmIiOiEwLCJub2RlLmF0dHIudmFsdWUubGlzdC5mIjohMCwibm9kZS5hdHRyLnZhbHVlLmxpc3QuZnVuYyI6ITAsIm5vZGUuYXR0ci52YWx1ZS5saXN0LmkiOiEwLCJub2RlLmF0dHIudmFsdWUubGlzdC5zIjohMCwibm9kZS5hdHRyLnZhbHVlLmxpc3Quc2hhcGUiOiEwLCJub2RlLmF0dHIudmFsdWUubGlzdC5zaGFwZS5kaW0iOiEwLCJub2RlLmF0dHIudmFsdWUubGlzdC50ZW5zb3IiOiEwLCJub2RlLmF0dHIudmFsdWUubGlzdC50eXBlIjohMCwibm9kZS5hdHRyLnZhbHVlLnNoYXBlLmRpbSI6ITAsIm5vZGUuYXR0ci52YWx1ZS50ZW5zb3Iuc3RyaW5nX3ZhbCI6ITAsIm5vZGUuYXR0ci52YWx1ZS50ZW5zb3IudGVuc29yX3NoYXBlLmRpbSI6ITB9LHBKdD17InN0ZXBfc3RhdHMuZGV2X3N0YXRzIjohMCwic3RlcF9zdGF0cy5kZXZfc3RhdHMubm9kZV9zdGF0cyI6ITAsInN0ZXBfc3RhdHMuZGV2X3N0YXRzLm5vZGVfc3RhdHMub3V0cHV0IjohMCwic3RlcF9zdGF0cy5kZXZfc3RhdHMubm9kZV9zdGF0cy5tZW1vcnkiOiEwLCJzdGVwX3N0YXRzLmRldl9zdGF0cy5ub2RlX3N0YXRzLm91dHB1dC50ZW5zb3JfZGVzY3JpcHRpb24uc2hhcGUuZGltIjohMH07ZnVuY3Rpb24gZkp0KHQsZSl7bGV0IG49e30saT1bXSxyPVtdLG89bjtmdW5jdGlvbiBhKHQpe2xldCBlPXQuaW5kZXhPZigiOiIpO3JldHVybntuYW1lOnQuc3Vic3RyaW5nKDAsZSkudHJpbSgpLHZhbHVlOihmdW5jdGlvbiBuKHQpe2lmKCJ0cnVlIj09PXQpcmV0dXJuITA7aWYoImZhbHNlIj09PXQpcmV0dXJuITE7aWYoJyInPT09dFswXSlyZXR1cm4gdC5zdWJzdHJpbmcoMSx0Lmxlbmd0aC0xKTtsZXQgZT1wYXJzZUZsb2F0KHQpO3JldHVybiBpc05hTihlKT90OmV9KSh0LnN1YnN0cmluZyhlKzIpLnRyaW0oKSl9fWZ1bmN0aW9uIHModCxuLGkscil7bGV0IG89dFtuXTtudWxsPT1vP3Rbbl09ci5qb2luKCIuIilpbiBlP1tpXTppOkFycmF5LmlzQXJyYXkobyk/by5wdXNoKGkpOnRbbl09W28saV19cmV0dXJuKGZ1bmN0aW9uIGwodCxlLG49MWU2LGk9IlxuIil7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihyLG8peyEoZnVuY3Rpb24gYShzLGwsYyl7Y29uc3QgdT1jPj10LmJ5dGVMZW5ndGgsaD1sLnNwbGl0KGkpO2hbMF09cytoWzBdO2NvbnN0IGQ9dT8iIjpoLnBvcCgpO2ZvcihsZXQgdCBvZiBoKXRyeXtlKHQpfWNhdGNoKHQpe3JldHVybiB2b2lkIG8odCl9aWYodSlyZXR1cm4gdm9pZCByKCEwKTtjb25zdCBwPW5ldyBCbG9iKFt0LnNsaWNlKGMsYytuKV0pLGY9bmV3IEZpbGVSZWFkZXI7Zi5vbmxvYWQ9ZnVuY3Rpb24odCl7YShkLHQudGFyZ2V0LnJlc3VsdCxjK24pfSxmLnJlYWRBc1RleHQocCl9KSgiIiwiIiwwKX0pKX0pKHQsKGZ1bmN0aW9uKHQpe2lmKHQ9dC50cmltKCkpc3dpdGNoKHRbdC5sZW5ndGgtMV0pe2Nhc2UieyI6bGV0IGU9dC5zdWJzdHJpbmcoMCx0Lmxlbmd0aC0yKS50cmltKCksbj17fTtpLnB1c2gobyksci5wdXNoKGUpLHMobyxlLG4sciksbz1uO2JyZWFrO2Nhc2UifSI6bz1pLnBvcCgpLHIucG9wKCk7YnJlYWs7ZGVmYXVsdDpsZXQgbD1hKHQpO3MobyxsLm5hbWUsbC52YWx1ZSxyLmNvbmNhdChsLm5hbWUpKX19KSkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gbn0pKX1mdW5jdGlvbiBtSnQodCxlLGkscj1uZXcgbkp0LG89YUt0KXtjb25zdCBhPWYkdCh0LDMwLCJEYXRhIikscz1mJHQodCwyMCwiR3JhcGgiKSxsPWYkdCh0LDUwLCJOYW1lc3BhY2UgaGllcmFyY2h5IiksYz1EYXRlLm5vdygpO3JldHVybiBoSnQoZSxpLGEpLnRoZW4oKGZ1bmN0aW9uKHQpe2lmKCF0Lm5vZGUpdGhyb3cgbmV3IEVycm9yKCJUaGUgZ3JhcGggaXMgZW1wdHkuIFRoaXMgY2FuIGhhcHBlbiB3aGVuIFRlbnNvckZsb3cgY291bGQgbm90IHRyYWNlIGFueSBncmFwaC4gUGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2lzc3Vlcy8xOTYxIGZvciBtb3JlIGluZm9ybWF0aW9uLiIpO3JldHVybiBxJHQodCxXJHQscyl9KSwoKCk9Pnt0aHJvdyBuZXcgRXJyb3IoIk1hbGZvcm1lZCBHcmFwaERlZi4gVGhpcyBjYW4gc29tZXRpbWVzIGJlIGNhdXNlZCBieSBhIGJhZCBuZXR3b3JrIGNvbm5lY3Rpb24gb3IgZGlmZmljdWx0eSByZWNvbmNpbGluZyBtdWx0aXBsZSBHcmFwaERlZnM7IGZvciB0aGUgbGF0dGVyIGNhc2UsIHBsZWFzZSByZWZlciB0byBodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9pc3N1ZXMvMTkyOS4iKX0pKS50aGVuKCh0PT5uKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7IShmdW5jdGlvbiBlKHQsbil7aWYobnVsbD09PW4pdGhyb3cgbmV3IEVycm9yKCJDb21wYXRpYmlsaXR5IHByb3ZpZGVyIHJlcXVpcmVkLCBidXQgZ290OiAiK24pO0NlLmV4cG9ydHMuZWFjaCh0Lm5vZGVzLCh0PT57dC5jb21wYXRpYmxlPW4ub3BWYWxpZCh0KSxDZS5leHBvcnRzLmVhY2godC5pbkVtYmVkZGluZ3MsKHQ9Pnt0LmNvbXBhdGlibGU9bi5vcFZhbGlkKHQpfSkpLENlLmV4cG9ydHMuZWFjaCh0Lm91dEVtYmVkZGluZ3MsKHQ9Pnt0LmNvbXBhdGlibGU9bi5vcFZhbGlkKHQpfSkpfSkpfSkodCxyKTtjb25zdCBuPXlpZWxkIHNLdCh0LG8sbCk7cmV0dXJuIGgkdCh7dGltaW5nSWQ6QkF0LkdSQVBIX0xPQURfU1VDQ0VFREVELGV2ZW50VmFsdWU6RGF0ZS5ub3coKS1jfSkse2dyYXBoOnQsZ3JhcGhIaWVyYXJjaHk6bn19KSkpKS5jYXRjaCgoZT0+e3Rocm93IHQucmVwb3J0RXJyb3IoYEdyYXBoIHZpc3VhbGl6YXRpb24gZmFpbGVkLlxuXG4ke2V9YCxlKSxoJHQoe3RpbWluZ0lkOkJBdC5HUkFQSF9MT0FEX0ZBSUxFRCxldmVudFZhbHVlOkRhdGUubm93KCktY30pLGV9KSl9bGV0IGdKdD1jbGFzcyBleHRlbmRzKGNyKHdlKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuY29tcGF0aWJpbGl0eVByb3ZpZGVyPW5ldyBuSnQsdGhpcy5oaWVyYXJjaHlQYXJhbXM9YUt0LHRoaXMuX3RlbXBsYXRlPW51bGx9X3NlbGVjdGlvbkNoYW5nZWQoKXt0aGlzLnNlbGVjdGlvbiYmdGhpcy5kZWJvdW5jZSgic2VsZWN0aW9uY2hhbmdlIiwoKCk9Pnt0aGlzLl9sb2FkKHRoaXMuc2VsZWN0aW9uKX0pKX1fbG9hZCh0KXtjb25zdHtydW46ZSx0YWc6bix0eXBlOml9PXQ7c3dpdGNoKGkpe2Nhc2UgUVh0Lk9QX0dSQVBIOmNhc2UgUVh0LkNPTkNFUFRVQUxfR1JBUEg6eyhmdW5jdGlvbigpe3RoaXMuX3NldE91dFN0YXRzKG51bGwpfSkuYmluZCh0aGlzKSgpO2NvbnN0IHQ9bmV3IFVSTFNlYXJjaFBhcmFtczt0LnNldCgicnVuIixlKSx0LnNldCgiY29uY2VwdHVhbCIsU3RyaW5nKGk9PT1RWHQuQ09OQ0VQVFVBTF9HUkFQSCkpLG4mJnQuc2V0KCJ0YWciLG4pO2NvbnN0IHI9RXIoKS5wbHVnaW5Sb3V0ZSgiZ3JhcGhzIiwiL2dyYXBoIix0KTtyZXR1cm4gdGhpcy5fZmV0Y2hBbmRDb25zdHJ1Y3RIaWVyYXJjaGljYWxHcmFwaChyKS50aGVuKCgoKT0+e3RoaXMuX2dyYXBoUnVuVGFnPXtydW46ZSx0YWc6bn19KSl9Y2FzZSBRWHQuUFJPRklMRTp7Y29uc3R7dGFnczp0fT10aGlzLmRhdGFzZXRzLmZpbmQoKCh7bmFtZTp0fSk9PnQ9PT1lKSksaT10LmZpbmQoKHQ9PnQudGFnPT09bikpLm9wR3JhcGg/bjpudWxsO2NvbnNvbGUuYXNzZXJ0KHQuZmluZCgodD0+dC50YWc9PT1pKSksYFJlcXVpcmVkIHRhZyAoJHtpfSkgaXMgbWlzc2luZy5gKTtjb25zdCByPSF0aGlzLl9ncmFwaFJ1blRhZ3x8dGhpcy5fZ3JhcGhSdW5UYWcucnVuIT09ZXx8dGhpcy5fZ3JhcGhSdW5UYWcudGFnIT09aT90aGlzLl9sb2FkKHtydW46ZSx0YWc6aSx0eXBlOlFYdC5PUF9HUkFQSH0pOlByb21pc2UucmVzb2x2ZSgpLG89bmV3IFVSTFNlYXJjaFBhcmFtcztvLnNldCgidGFnIixuKSxvLnNldCgicnVuIixlKTtjb25zdCBhPUVyKCkucGx1Z2luUm91dGUoImdyYXBocyIsIi9ydW5fbWV0YWRhdGEiLG8pO3JldHVybiByLnRoZW4oKCgpPT50aGlzLl9yZWFkQW5kUGFyc2VNZXRhZGF0YShhKSkpfWRlZmF1bHQ6cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcihgVW5rbm93biBzZWxlY3Rpb24gdHlwZTogJHtpfWApKX19X3JlYWRBbmRQYXJzZU1ldGFkYXRhKHQpe3RoaXMuc2V0KCJwcm9ncmVzcyIse3ZhbHVlOjAsbXNnOiIifSksdUp0KHQscCR0KHRoaXMpKS50aGVuKGZ1bmN0aW9uKHQpe3RoaXMuX3NldE91dFN0YXRzKHQpfS5iaW5kKHRoaXMpKX1fZmV0Y2hBbmRDb25zdHJ1Y3RIaWVyYXJjaGljYWxHcmFwaCh0LGUpe3RoaXMuc2V0KCJwcm9ncmVzcyIse3ZhbHVlOjAsbXNnOiIifSk7cmV0dXJuIG1KdChwJHQodGhpcyksdCxlLHRoaXMuY29tcGF0aWJpbGl0eVByb3ZpZGVyLHRoaXMuaGllcmFyY2h5UGFyYW1zKS50aGVuKGZ1bmN0aW9uKHtncmFwaDp0LGdyYXBoSGllcmFyY2h5OmV9KXt0aGlzLl9zZXRPdXRHcmFwaCh0KSx0aGlzLl9zZXRPdXRHcmFwaEhpZXJhcmNoeShlKX0uYmluZCh0aGlzKSl9X3NlbGVjdGVkRmlsZUNoYW5nZWQoKXt2YXIgdD10aGlzLnNlbGVjdGVkRmlsZTtpZighdClyZXR1cm47Y29uc3QgZT10LnRhcmdldCxuPWUuZmlsZXNbMF07biYmKGUudmFsdWU9IiIsdGhpcy5fZmV0Y2hBbmRDb25zdHJ1Y3RIaWVyYXJjaGljYWxHcmFwaChudWxsLG4pKX19O3QoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxnSnQucHJvdG90eXBlLCJkYXRhc2V0cyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdCxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZ0p0LnByb3RvdHlwZSwicHJvZ3Jlc3MiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZ0p0LnByb3RvdHlwZSwic2VsZWN0aW9uIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGdKdC5wcm90b3R5cGUsInNlbGVjdGVkRmlsZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxnSnQucHJvdG90eXBlLCJjb21wYXRpYmlsaXR5UHJvdmlkZXIiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZ0p0LnByb3RvdHlwZSwiaGllcmFyY2h5UGFyYW1zIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LHJlYWRPbmx5OiEwLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixyS3QpXSxnSnQucHJvdG90eXBlLCJvdXRHcmFwaEhpZXJhcmNoeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdCxyZWFkT25seTohMCxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsSSR0KV0sZ0p0LnByb3RvdHlwZSwib3V0R3JhcGgiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3QscmVhZE9ubHk6ITAsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGdKdC5wcm90b3R5cGUsIm91dFN0YXRzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGdKdC5wcm90b3R5cGUsIl9ncmFwaFJ1blRhZyIsdm9pZCAwKSx0KFthKCJzZWxlY3Rpb24iLCJjb21wYXRpYmlsaXR5UHJvdmlkZXIiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGdKdC5wcm90b3R5cGUsIl9zZWxlY3Rpb25DaGFuZ2VkIixudWxsKSx0KFthKCJzZWxlY3RlZEZpbGUiLCJjb21wYXRpYmlsaXR5UHJvdmlkZXIiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGdKdC5wcm90b3R5cGUsIl9zZWxlY3RlZEZpbGVDaGFuZ2VkIixudWxsKSxnSnQ9dChbaSgidGYtZ3JhcGgtZGFzaGJvYXJkLWxvYWRlciIpXSxnSnQpO2xldCBfSnQ9Y2xhc3MgZXh0ZW5kcyhjcih3ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9kYXRhc2V0cz1bXSx0aGlzLl9kYXRhc2V0c0ZldGNoZWQ9ITEsdGhpcy5fc2VsZWN0ZWREYXRhc2V0PTAsdGhpcy5fcmVxdWVzdE1hbmFnZXI9bmV3IGJyLHRoaXMuX2NhbmNlbGxlcj1uZXcgeE8sdGhpcy5zcGVjaWZpY0hlYWx0aFBpbGxTdGVwPTAsdGhpcy5oZWFsdGhQaWxsc1RvZ2dsZWRPbj0hMSx0aGlzLl9kZWJ1Z2dlck51bWVyaWNBbGVydHM9W10sdGhpcy5fbm9kZU5hbWVzVG9IZWFsdGhQaWxscz17fSx0aGlzLl9oZWFsdGhQaWxsUmVxdWVzdElkPTEsdGhpcy5faGVhbHRoUGlsbFN0ZXBSZXF1ZXN0VGltZXJEZWxheT01MDAsdGhpcy5ydW49WHMoInJ1biIse2RlZmF1bHRWYWx1ZToiIix1c2VMb2NhbFN0b3JhZ2U6ITF9KS5jYWxsKHRoaXMpLHRoaXMuX3J1bk9ic2VydmVyPSRzKCJydW4iLHtkZWZhdWx0VmFsdWU6IiIscG9seW1lclByb3BlcnR5OiJydW4iLHVzZUxvY2FsU3RvcmFnZTohMX0pfWF0dGFjaGVkKCl7dGhpcy5zZXQoIl9pc0F0dGFjaGVkIiwhMCl9ZGV0YWNoZWQoKXt0aGlzLnNldCgiX2lzQXR0YWNoZWQiLCExKX1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJub2RlLXRvZ2dsZS1leHBhbmQiLHRoaXMuX2hhbmRsZU5vZGVUb2dnbGVFeHBhbmQuYmluZCh0aGlzKSl9cmVsb2FkKCl7dGhpcy5fZGVidWdnZXJEYXRhRW5hYmxlZHx8dGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdChFcigpLnBsdWdpbnNMaXN0aW5nKCkpLnRoZW4odGhpcy5fY2FuY2VsbGVyLmNhbmNlbGxhYmxlKCh0PT57dC5jYW5jZWxsZWR8fHQudmFsdWUuZGVidWdnZXImJnRoaXMuc2V0KCJfZGVidWdnZXJEYXRhRW5hYmxlZCIsITApfSkpKSx0aGlzLl9tYXliZUZldGNoSGVhbHRoUGlsbHMoKX1fZml0KCl7dGhpcy4kJCgiI2dyYXBoYm9hcmQiKS5maXQoKX1fb25Eb3dubG9hZEltYWdlUmVxdWVzdGVkKHQpe3RoaXMuJCQoIiNncmFwaGJvYXJkIikuZG93bmxvYWRBc0ltYWdlKHQuZGV0YWlsKX1fZ2V0R3JhcGhEaXNwbGF5Q2xhc3NOYW1lKHQsZSl7cmV0dXJuIHR8fGUubGVuZ3RoPyIiOiJuby1ncmFwaCJ9X2ZldGNoRGF0YXNldCgpe3JldHVybiB0aGlzLl9yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KEVyKCkucGx1Z2luUm91dGUoImdyYXBocyIsIi9pbmZvIikpfV9mZXRjaEhlYWx0aFBpbGxzKHQsZSl7Y29uc3Qgbj17bm9kZV9uYW1lczpKU09OLnN0cmluZ2lmeSh0KSxydW46Il9fZGVidWdnZXJfZGF0YV9fIn07dm9pZCAwIT09ZSYmKG4uc3RlcD1lKTtjb25zdCBpPUVyKCkucGx1Z2luUm91dGUoImRlYnVnZ2VyIiwiL2hlYWx0aF9waWxscyIpO3JldHVybiB0aGlzLl9yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KGksbil9X2ZldGNoRGVidWdnZXJOdW1lcmljc0FsZXJ0cygpe3JldHVybiB0aGlzLl9yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KEVyKCkucGx1Z2luUm91dGUoImRlYnVnZ2VyIiwiL251bWVyaWNzX2FsZXJ0X3JlcG9ydCIpKX1fZ3JhcGhVcmwodCxlLG4pe3JldHVybiBFcigpLnBsdWdpblJvdXRlKCJncmFwaHMiLCIvZ3JhcGgiLG5ldyBVUkxTZWFyY2hQYXJhbXMoe3J1bjp0LGxpbWl0X2F0dHJfc2l6ZTplLGxhcmdlX2F0dHJzX2tleTpufSkpfV9zaG91bGRSZXF1ZXN0SGVhbHRoUGlsbHMoKXtyZXR1cm4gdGhpcy5fZGVidWdnZXJEYXRhRW5hYmxlZCYmdGhpcy5oZWFsdGhQaWxsc1RvZ2dsZWRPbiYmdGhpcy5fcmVuZGVySGllcmFyY2h5JiZ0aGlzLl9kYXRhc2V0c1N0YXRlKHRoaXMuX2RhdGFzZXRzRmV0Y2hlZCx0aGlzLl9kYXRhc2V0cywiUFJFU0VOVCIpfV9tYXliZUluaXRpYWxpemVEYXNoYm9hcmQoKXshdGhpcy5faW5pdGlhbGl6ZWQmJnRoaXMuX2lzQXR0YWNoZWQmJih0aGlzLnNldCgiX2NvbXBhdGliaWxpdHlQcm92aWRlciIsbmV3IG5KdCksdGhpcy5faW5pdGlhbGl6ZWQ9ITAsdGhpcy5fZmV0Y2hEYXRhc2V0KCkudGhlbigodD0+e2NvbnN0IGU9T2JqZWN0LmtleXModCk7dGhpcy5fZGF0YXNldHM9ZS5zb3J0KHVyKS5tYXAoKGU9Pntjb25zdCBuPXRbZV0saT1PYmplY3Qua2V5cyhuLnRhZ3MpLnNvcnQodXIpLm1hcCgodD0+bi50YWdzW3RdKSkubWFwKCgoe3RhZzp0LGNvbmNlcHR1YWxfZ3JhcGg6ZSxvcF9ncmFwaDpuLHByb2ZpbGU6aX0pPT4oe3RhZzp0LGRpc3BsYXlOYW1lOnQsY29uY2VwdHVhbEdyYXBoOmUsb3BHcmFwaDpuLHByb2ZpbGU6aX0pKSk7cmV0dXJue25hbWU6ZSx0YWdzOm4ucnVuX2dyYXBoP1t7dGFnOm51bGwsZGlzcGxheU5hbWU6IkRlZmF1bHQiLGNvbmNlcHR1YWxHcmFwaDohMSxvcEdyYXBoOiEwLHByb2ZpbGU6ITF9LC4uLmldOml9fSkpLHRoaXMuX2RhdGFzZXRzRmV0Y2hlZD0hMH0pKSl9X2RldGVybWluZVNlbGVjdGVkRGF0YXNldCgpe3ZhciB0PXRoaXMuX2RhdGFzZXRzRmV0Y2hlZCxlPXRoaXMuX2RhdGFzZXRzLG49dGhpcy5ydW47aWYoIW4pcmV0dXJuIHZvaWQgdGhpcy5zZXQoIl9zZWxlY3RlZERhdGFzZXQiLDApO2NvbnN0IGk9ZS5maW5kSW5kZXgoKHQ9PnQubmFtZT09PW4pKTtpZigtMSE9PWkpdGhpcy5zZXQoIl9zZWxlY3RlZERhdGFzZXQiLGkpO2Vsc2UgaWYodCl7Y29uc3QgdD10aGlzLiQkKCIjZXJyb3ItZGlhbG9nIik7dC50ZXh0Q29udGVudD1gTm8gZGF0YXNldCBuYW1lZCAiJHtufSIgY291bGQgYmUgZm91bmQuYCx0Lm9wZW4oKX19X3VwZGF0ZVNlbGVjdGVkRGF0YXNldE5hbWUoKXt2YXIgdD10aGlzLl9kYXRhc2V0cyxlPXRoaXMuX3NlbGVjdGVkRGF0YXNldDt0aGlzLl9kYXRhc2V0c0ZldGNoZWQmJih0Lmxlbmd0aDw9ZXx8dGhpcy5zZXQoInJ1biIsdFtlXS5uYW1lKSl9X3JlcXVlc3RIZWFsdGhQaWxscygpe3RoaXMuc2V0KCJfYXJlSGVhbHRoUGlsbHNMb2FkaW5nIiwhMCk7dmFyIHQ9Kyt0aGlzLl9oZWFsdGhQaWxsUmVxdWVzdElkO251bGwhPT10aGlzLl9oZWFsdGhQaWxsU3RlcFJlcXVlc3RUaW1lcklkJiYod2luZG93LmNsZWFyVGltZW91dCh0aGlzLl9oZWFsdGhQaWxsU3RlcFJlcXVlc3RUaW1lcklkKSx0aGlzLl9oZWFsdGhQaWxsU3RlcFJlcXVlc3RUaW1lcklkPW51bGwpLHRoaXMuYWxsU3RlcHNNb2RlRW5hYmxlZD90aGlzLl9oZWFsdGhQaWxsU3RlcFJlcXVlc3RUaW1lcklkPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aGlzLl9oZWFsdGhQaWxsU3RlcFJlcXVlc3RUaW1lcklkPW51bGwsdGhpcy5faW5pdGlhdGVOZXR3b3JrUmVxdWVzdEZvckhlYWx0aFBpbGxzKHQpfS5iaW5kKHRoaXMpLHRoaXMuX2hlYWx0aFBpbGxTdGVwUmVxdWVzdFRpbWVyRGVsYXkpOnRoaXMuX2luaXRpYXRlTmV0d29ya1JlcXVlc3RGb3JIZWFsdGhQaWxscyh0KX1faW5pdGlhdGVOZXR3b3JrUmVxdWVzdEZvckhlYWx0aFBpbGxzKHQpe2lmKHRoaXMuX2hlYWx0aFBpbGxSZXF1ZXN0SWQhPT10KXJldHVybjtjb25zdCBlPXRoaXMuYWxsU3RlcHNNb2RlRW5hYmxlZD90aGlzLnNwZWNpZmljSGVhbHRoUGlsbFN0ZXA6dm9pZCAwLG49dGhpcy5fZmV0Y2hIZWFsdGhQaWxscyh0aGlzLl9yZW5kZXJIaWVyYXJjaHkuZ2V0TmFtZXNPZlJlbmRlcmVkT3BzKCksZSksaT10aGlzLl9mZXRjaERlYnVnZ2VyTnVtZXJpY3NBbGVydHMoKTtQcm9taXNlLmFsbChbbixpXSkudGhlbihmdW5jdGlvbihlKXt2YXIgbj1lWzBdLGk9ZVsxXTtpZih0aGlzLmhlYWx0aFBpbGxzVG9nZ2xlZE9uJiZ0PT09dGhpcy5faGVhbHRoUGlsbFJlcXVlc3RJZCl7Zm9yKHZhciByIGluIG4pe3RoaXMuc2V0KCJfaGVhbHRoUGlsbFN0ZXBJbmRleCIsbltyXS5sZW5ndGgtMSk7YnJlYWt9dGhpcy5zZXQoIl9kZWJ1Z2dlck51bWVyaWNBbGVydHMiLGkpLHRoaXMuc2V0KCJfbm9kZU5hbWVzVG9IZWFsdGhQaWxscyIsbiksdGhpcy5zZXQoIl9hcmVIZWFsdGhQaWxsc0xvYWRpbmciLCExKSx0aGlzLnNldCgiX2hlYWx0aFBpbGxTdGVwUmVxdWVzdFRpbWVySWQiLG51bGwpfX0uYmluZCh0aGlzKSl9X2RhdGFzZXRzU3RhdGUodCxlLG4pe3JldHVybiB0P2UmJmUubGVuZ3RoPyJQUkVTRU5UIj09PW46IkVNUFRZIj09PW46Ik5PVF9MT0FERUQiPT09bn1fcmVuZGVySGllcmFyY2h5Q2hhbmdlZCh0KXt0aGlzLnJlbG9hZCgpfV9oYW5kbGVOb2RlVG9nZ2xlRXhwYW5kKCl7dGhpcy5fbWF5YmVGZXRjaEhlYWx0aFBpbGxzKCl9X2hlYWx0aFBpbGxzVG9nZ2xlZE9uQ2hhbmdlZCh0KXt0P3RoaXMucmVsb2FkKCk6dGhpcy5zZXQoIl9ub2RlTmFtZXNUb0hlYWx0aFBpbGxzIix7fSl9X21heWJlRmV0Y2hIZWFsdGhQaWxscygpe3RoaXMuX3Nob3VsZFJlcXVlc3RIZWFsdGhQaWxscygpJiZ0aGlzLl9yZXF1ZXN0SGVhbHRoUGlsbHMoKX19O19KdC50ZW1wbGF0ZT14ZWAKICAgIDxwYXBlci1kaWFsb2cgaWQ9ImVycm9yLWRpYWxvZyIgd2l0aC1iYWNrZHJvcD48L3BhcGVyLWRpYWxvZz4KICAgIDx0Zi1kYXNoYm9hcmQtbGF5b3V0PgogICAgICA8dGYtZ3JhcGgtY29udHJvbHMKICAgICAgICBpZD0iY29udHJvbHMiCiAgICAgICAgY2xhc3M9InNpZGViYXIiCiAgICAgICAgc2xvdD0ic2lkZWJhciIKICAgICAgICBkZXZpY2VzLWZvci1zdGF0cz0ie3tfZGV2aWNlc0ZvclN0YXRzfX0iCiAgICAgICAgY29sb3ItYnktcGFyYW1zPSJbW19jb2xvckJ5UGFyYW1zXV0iCiAgICAgICAgc3RhdHM9IltbX3N0YXRzXV0iCiAgICAgICAgY29sb3ItYnk9Int7X2NvbG9yQnl9fSIKICAgICAgICBkYXRhc2V0cz0iW1tfZGF0YXNldHNdXSIKICAgICAgICByZW5kZXItaGllcmFyY2h5PSJbW19yZW5kZXJIaWVyYXJjaHldXSIKICAgICAgICBzZWxlY3Rpb249Int7X3NlbGVjdGlvbn19IgogICAgICAgIHNlbGVjdGVkLWZpbGU9Int7X3NlbGVjdGVkRmlsZX19IgogICAgICAgIHNlbGVjdGVkLW5vZGU9Int7X3NlbGVjdGVkTm9kZX19IgogICAgICAgIGhlYWx0aC1waWxscy1mZWF0dXJlLWVuYWJsZWQ9IltbX2RlYnVnZ2VyRGF0YUVuYWJsZWRdXSIKICAgICAgICBoZWFsdGgtcGlsbHMtdG9nZ2xlZC1vbj0ie3toZWFsdGhQaWxsc1RvZ2dsZWRPbn19IgogICAgICAgIG9uLWZpdC10YXA9Il9maXQiCiAgICAgICAgdHJhY2UtaW5wdXRzPSJ7e190cmFjZUlucHV0c319IgogICAgICAgIGF1dG8tZXh0cmFjdC1ub2Rlcz0ie3tfYXV0b0V4dHJhY3ROb2Rlc319IgogICAgICAgIG9uLWRvd25sb2FkLWltYWdlLXJlcXVlc3RlZD0iX29uRG93bmxvYWRJbWFnZVJlcXVlc3RlZCIKICAgICAgPjwvdGYtZ3JhcGgtY29udHJvbHM+CiAgICAgIDxkaXYKICAgICAgICBjbGFzcyQ9ImNlbnRlciBbW19nZXRHcmFwaERpc3BsYXlDbGFzc05hbWUoX3NlbGVjdGVkRmlsZSwgX2RhdGFzZXRzKV1dIgogICAgICAgIHNsb3Q9ImNlbnRlciIKICAgICAgPgogICAgICAgIDx0Zi1ncmFwaC1kYXNoYm9hcmQtbG9hZGVyCiAgICAgICAgICBpZD0ibG9hZGVyIgogICAgICAgICAgZGF0YXNldHM9IltbX2RhdGFzZXRzXV0iCiAgICAgICAgICBzZWxlY3Rpb249IltbX3NlbGVjdGlvbl1dIgogICAgICAgICAgc2VsZWN0ZWQtZmlsZT0iW1tfc2VsZWN0ZWRGaWxlXV0iCiAgICAgICAgICBvdXQtZ3JhcGgtaGllcmFyY2h5PSJ7e19ncmFwaEhpZXJhcmNoeX19IgogICAgICAgICAgb3V0LWdyYXBoPSJ7e19ncmFwaH19IgogICAgICAgICAgb3V0LXN0YXRzPSJ7e19zdGF0c319IgogICAgICAgICAgcHJvZ3Jlc3M9Int7X3Byb2dyZXNzfX0iCiAgICAgICAgICBoaWVyYXJjaHktcGFyYW1zPSJbW19oaWVyYXJjaHlQYXJhbXNdXSIKICAgICAgICAgIGNvbXBhdGliaWxpdHktcHJvdmlkZXI9IltbX2NvbXBhdGliaWxpdHlQcm92aWRlcl1dIgogICAgICAgID48L3RmLWdyYXBoLWRhc2hib2FyZC1sb2FkZXI+CiAgICAgICAgPGRpdiBjbGFzcz0ibm8tZGF0YS1tZXNzYWdlIj4KICAgICAgICAgIDxoMz5ObyBncmFwaCBkZWZpbml0aW9uIGZpbGVzIHdlcmUgZm91bmQuPC9oMz4KICAgICAgICAgIDxwPgogICAgICAgICAgICBUbyBzdG9yZSBhIGdyYXBoLCBjcmVhdGUgYQogICAgICAgICAgICA8Y29kZT50Zi5zdW1tYXJ5LkZpbGVXcml0ZXI8L2NvZGU+CiAgICAgICAgICAgIGFuZCBwYXNzIHRoZSBncmFwaCBlaXRoZXIgdmlhIHRoZSBjb25zdHJ1Y3Rvciwgb3IgYnkgY2FsbGluZyBpdHMKICAgICAgICAgICAgPGNvZGU+YWRkX2dyYXBoKCk8L2NvZGU+IG1ldGhvZC4gWW91IG1heSB3YW50IHRvIGNoZWNrIG91dCB0aGUKICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cudGVuc29yZmxvdy5vcmcvdGVuc29yYm9hcmQvZ3JhcGhzIgogICAgICAgICAgICAgID5leGFtaW5pbmcgdGhlIFRlbnNvckZsb3cgZ3JhcGggdHV0b3JpYWw8L2EKICAgICAgICAgICAgPi4KICAgICAgICAgIDwvcD4KCiAgICAgICAgICA8cD4KICAgICAgICAgICAgSWYgeW914oCZcmUgbmV3IHRvIHVzaW5nIFRlbnNvckJvYXJkLCBhbmQgd2FudCB0byBmaW5kIG91dCBob3cgdG8gYWRkCiAgICAgICAgICAgIGRhdGEgYW5kIHNldCB1cCB5b3VyIGV2ZW50IGZpbGVzLCBjaGVjayBvdXQgdGhlCiAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIgogICAgICAgICAgICAgID5SRUFETUU8L2EKICAgICAgICAgICAgPgogICAgICAgICAgICBhbmQgcGVyaGFwcyB0aGUKICAgICAgICAgICAgPGEKICAgICAgICAgICAgICBocmVmPSJodHRwczovL3d3dy50ZW5zb3JmbG93Lm9yZy9nZXRfc3RhcnRlZC9zdW1tYXJpZXNfYW5kX3RlbnNvcmJvYXJkIgogICAgICAgICAgICAgID5UZW5zb3JCb2FyZCB0dXRvcmlhbDwvYQogICAgICAgICAgICA+LgogICAgICAgICAgPC9wPgoKICAgICAgICAgIDxwPgogICAgICAgICAgICBJZiB5b3UgdGhpbmsgVGVuc29yQm9hcmQgaXMgY29uZmlndXJlZCBwcm9wZXJseSwgcGxlYXNlIHNlZQogICAgICAgICAgICA8YQogICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCNteS10ZW5zb3Jib2FyZC1pc250LXNob3dpbmctYW55LWRhdGEtd2hhdHMtd3JvbmciCiAgICAgICAgICAgICAgPnRoZSBzZWN0aW9uIG9mIHRoZSBSRUFETUUgZGV2b3RlZCB0byBtaXNzaW5nIGRhdGEgcHJvYmxlbXM8L2EKICAgICAgICAgICAgPgogICAgICAgICAgICBhbmQgY29uc2lkZXIgZmlsaW5nIGFuIGlzc3VlIG9uIEdpdEh1Yi4KICAgICAgICAgIDwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJncmFwaGJvYXJkIj4KICAgICAgICAgIDx0Zi1ncmFwaC1ib2FyZAogICAgICAgICAgICBpZD0iZ3JhcGhib2FyZCIKICAgICAgICAgICAgZGV2aWNlcy1mb3Itc3RhdHM9IltbX2RldmljZXNGb3JTdGF0c11dIgogICAgICAgICAgICBjb2xvci1ieT0ie3tfY29sb3JCeX19IgogICAgICAgICAgICBjb2xvci1ieS1wYXJhbXM9Int7X2NvbG9yQnlQYXJhbXN9fSIKICAgICAgICAgICAgZ3JhcGgtaGllcmFyY2h5PSJbW19ncmFwaEhpZXJhcmNoeV1dIgogICAgICAgICAgICBncmFwaD0iW1tfZ3JhcGhdXSIKICAgICAgICAgICAgaGllcmFyY2h5LXBhcmFtcz0iW1tfaGllcmFyY2h5UGFyYW1zXV0iCiAgICAgICAgICAgIHByb2dyZXNzPSJbW19wcm9ncmVzc11dIgogICAgICAgICAgICBkZWJ1Z2dlci1kYXRhLWVuYWJsZWQ9IltbX2RlYnVnZ2VyRGF0YUVuYWJsZWRdXSIKICAgICAgICAgICAgYXJlLWhlYWx0aC1waWxscy1sb2FkaW5nPSJbW19hcmVIZWFsdGhQaWxsc0xvYWRpbmddXSIKICAgICAgICAgICAgZGVidWdnZXItbnVtZXJpYy1hbGVydHM9IltbX2RlYnVnZ2VyTnVtZXJpY0FsZXJ0c11dIgogICAgICAgICAgICBub2RlLW5hbWVzLXRvLWhlYWx0aC1waWxscz0iW1tfbm9kZU5hbWVzVG9IZWFsdGhQaWxsc11dIgogICAgICAgICAgICBhbGwtc3RlcHMtbW9kZS1lbmFibGVkPSJ7e2FsbFN0ZXBzTW9kZUVuYWJsZWR9fSIKICAgICAgICAgICAgc3BlY2lmaWMtaGVhbHRoLXBpbGwtc3RlcD0ie3tzcGVjaWZpY0hlYWx0aFBpbGxTdGVwfX0iCiAgICAgICAgICAgIGhlYWx0aC1waWxsLXN0ZXAtaW5kZXg9IltbX2hlYWx0aFBpbGxTdGVwSW5kZXhdXSIKICAgICAgICAgICAgcmVuZGVyLWhpZXJhcmNoeT0ie3tfcmVuZGVySGllcmFyY2h5fX0iCiAgICAgICAgICAgIHNlbGVjdGVkLW5vZGU9Int7X3NlbGVjdGVkTm9kZX19IgogICAgICAgICAgICBzdGF0cz0iW1tfc3RhdHNdXSIKICAgICAgICAgICAgdHJhY2UtaW5wdXRzPSJbW190cmFjZUlucHV0c11dIgogICAgICAgICAgICBhdXRvLWV4dHJhY3Qtbm9kZXM9IltbX2F1dG9FeHRyYWN0Tm9kZXNdXSIKICAgICAgICAgID48L3RmLWdyYXBoLWJvYXJkPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvdGYtZGFzaGJvYXJkLWxheW91dD4KICAgIDxzdHlsZT4KICAgICAgOmhvc3QgL2RlZXAvIHsKICAgICAgICBmb250LWZhbWlseTogJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5zaWRlYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmNlbnRlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgcGFwZXItZGlhbG9nIHsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICB9CgogICAgICAubm8tZGF0YS1tZXNzYWdlIHsKICAgICAgICBtYXgtd2lkdGg6IDU0MHB4OwogICAgICAgIG1hcmdpbjogODBweCBhdXRvIDAgYXV0bzsKICAgICAgfQoKICAgICAgLmdyYXBoYm9hcmQgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLm5vLWdyYXBoIC5ncmFwaGJvYXJkIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAuY2VudGVyOm5vdCgubm8tZ3JhcGgpIC5uby1kYXRhLW1lc3NhZ2UgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIGEgewogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1saW5rKTsKICAgICAgfQoKICAgICAgYTp2aXNpdGVkIHsKICAgICAgICBjb2xvcjogdmFyKC0tdGItbGluay12aXNpdGVkKTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxfSnQucHJvdG90eXBlLCJfZGF0YXNldHMiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxfSnQucHJvdG90eXBlLCJfZGF0YXNldHNGZXRjaGVkIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLF9KdC5wcm90b3R5cGUsIl9zZWxlY3RlZERhdGFzZXQiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsb2JzZXJ2ZXI6Il9yZW5kZXJIaWVyYXJjaHlDaGFuZ2VkIn0pLGUoImRlc2lnbjp0eXBlIixBS3QpXSxfSnQucHJvdG90eXBlLCJfcmVuZGVySGllcmFyY2h5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLGJyKV0sX0p0LnByb3RvdHlwZSwiX3JlcXVlc3RNYW5hZ2VyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLHhPKV0sX0p0LnByb3RvdHlwZSwiX2NhbmNlbGxlciIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLF9KdC5wcm90b3R5cGUsIl9kZWJ1Z2dlckRhdGFFbmFibGVkIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sX0p0LnByb3RvdHlwZSwiYWxsU3RlcHNNb2RlRW5hYmxlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxfSnQucHJvdG90eXBlLCJzcGVjaWZpY0hlYWx0aFBpbGxTdGVwIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixvYnNlcnZlcjoiX2hlYWx0aFBpbGxzVG9nZ2xlZE9uQ2hhbmdlZCJ9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLF9KdC5wcm90b3R5cGUsImhlYWx0aFBpbGxzVG9nZ2xlZE9uIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxfSnQucHJvdG90eXBlLCJzZWxlY3RlZE5vZGUiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxfSnQucHJvdG90eXBlLCJfaXNBdHRhY2hlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLF9KdC5wcm90b3R5cGUsIl9pbml0aWFsaXplZCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLF9KdC5wcm90b3R5cGUsIl9hcmVIZWFsdGhQaWxsc0xvYWRpbmciLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheSxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxfSnQucHJvdG90eXBlLCJfZGVidWdnZXJOdW1lcmljQWxlcnRzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLF9KdC5wcm90b3R5cGUsIl9ub2RlTmFtZXNUb0hlYWx0aFBpbGxzIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLF9KdC5wcm90b3R5cGUsIl9oZWFsdGhQaWxsU3RlcEluZGV4Iix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLF9KdC5wcm90b3R5cGUsIl9oZWFsdGhQaWxsUmVxdWVzdElkIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLF9KdC5wcm90b3R5cGUsIl9oZWFsdGhQaWxsU3RlcFJlcXVlc3RUaW1lcklkIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLF9KdC5wcm90b3R5cGUsIl9oZWFsdGhQaWxsU3RlcFJlcXVlc3RUaW1lckRlbGF5Iix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxfSnQucHJvdG90eXBlLCJydW5zIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nLG5vdGlmeTohMCxvYnNlcnZlcjoiX3J1bk9ic2VydmVyIn0pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxfSnQucHJvdG90eXBlLCJydW4iLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sX0p0LnByb3RvdHlwZSwiX3NlbGVjdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxfSnQucHJvdG90eXBlLCJfY29tcGF0aWJpbGl0eVByb3ZpZGVyIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sX0p0LnByb3RvdHlwZSwiX3RyYWNlSW5wdXRzIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sX0p0LnByb3RvdHlwZSwiX2F1dG9FeHRyYWN0Tm9kZXMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sX0p0LnByb3RvdHlwZSwiX3NlbGVjdGVkRmlsZSIsdm9pZCAwKSx0KFthKCJfaXNBdHRhY2hlZCIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sX0p0LnByb3RvdHlwZSwiX21heWJlSW5pdGlhbGl6ZURhc2hib2FyZCIsbnVsbCksdChbYSgiX2RhdGFzZXRzRmV0Y2hlZCIsIl9kYXRhc2V0cyIsInJ1biIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sX0p0LnByb3RvdHlwZSwiX2RldGVybWluZVNlbGVjdGVkRGF0YXNldCIsbnVsbCksdChbYSgiX2RhdGFzZXRzRmV0Y2hlZCIsIl9kYXRhc2V0cyIsIl9zZWxlY3RlZERhdGFzZXQiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLF9KdC5wcm90b3R5cGUsIl91cGRhdGVTZWxlY3RlZERhdGFzZXROYW1lIixudWxsKSxfSnQ9dChbaSgidGYtZ3JhcGgtZGFzaGJvYXJkIildLF9KdCk7Y29uc3QgeUp0PWlJO2xldCB2SnQ9Y2xhc3MgZXh0ZW5kcyhjcihnbCh3ZSkpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5tb2RlPSJvZmZzZXQiLHRoaXMudGltZVByb3BlcnR5PSJzdGVwIix0aGlzLmJpbnM9ImJpbnMiLHRoaXMueD0ieCIsdGhpcy5keD0iZHgiLHRoaXMueT0ieSIsdGhpcy5jb2xvclNjYWxlPXlKdC5zY2FsZU9yZGluYWwoeUp0LnNjaGVtZUNhdGVnb3J5MTApLHRoaXMubW9kZVRyYW5zaXRpb25EdXJhdGlvbj01MDAsdGhpcy5fbmFtZT1udWxsLHRoaXMuX2RhdGE9bnVsbH1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5zY29wZVN1YnRyZWUodGhpcy4kLnN2ZywhMCl9YXR0YWNoZWQoKXt0aGlzLl9hdHRhY2hlZD0hMH1kZXRhY2hlZCgpe3RoaXMuX2F0dGFjaGVkPSExfXNldFNlcmllc0RhdGEodCxlKXt0aGlzLl9uYW1lPXQsdGhpcy5fZGF0YT1lLHRoaXMucmVkcmF3KCl9X3JlZHJhd09uQ2hhbmdlKCl7dGhpcy5yZWRyYXcoKX1yZWRyYXcoKXt0aGlzLl9kcmF3KDApfV9tb2RlUmVkcmF3KCl7dGhpcy5fZHJhdyh0aGlzLm1vZGVUcmFuc2l0aW9uRHVyYXRpb24pfV9kcmF3KHQpe2lmKCF0aGlzLl9hdHRhY2hlZHx8IXRoaXMuX2RhdGEpcmV0dXJuO2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IEVycm9yKCJ2ei1oaXN0b2dyYW0tdGltZXNlcmllcyBfZHJhdyBuZWVkcyBkdXJhdGlvbiIpO2lmKHRoaXMuX2RhdGEubGVuZ3RoPD0wKXRocm93IG5ldyBFcnJvcigiTm90IGVub3VnaCBzdGVwcyBpbiB0aGUgZGF0YSIpO2lmKCF0aGlzLl9kYXRhWzBdLmhhc093blByb3BlcnR5KHRoaXMuYmlucykpdGhyb3cgbmV3IEVycm9yKCJObyBiaW5zIHByb3BlcnR5IG9mICciK3RoaXMuYmlucysiJyBpbiBkYXRhIik7aWYodGhpcy5fZGF0YVswXVt0aGlzLmJpbnNdLmxlbmd0aDw9MCl0aHJvdyBuZXcgRXJyb3IoIk11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgYmluIGluIGJpbnMgaW4gZGF0YSIpO2lmKCF0aGlzLl9kYXRhWzBdW3RoaXMuYmluc11bMF0uaGFzT3duUHJvcGVydHkodGhpcy54KSl0aHJvdyBuZXcgRXJyb3IoIk5vIHggcHJvcGVydHkgJyIrdGhpcy54KyInIG9uIGJpbnMgZGF0YSIpO2lmKCF0aGlzLl9kYXRhWzBdW3RoaXMuYmluc11bMF0uaGFzT3duUHJvcGVydHkodGhpcy5keCkpdGhyb3cgbmV3IEVycm9yKCJObyBkeCBwcm9wZXJ0eSAnIit0aGlzLmR4KyInIG9uIGJpbnMgZGF0YSIpO2lmKCF0aGlzLl9kYXRhWzBdW3RoaXMuYmluc11bMF0uaGFzT3duUHJvcGVydHkodGhpcy55KSl0aHJvdyBuZXcgRXJyb3IoIk5vIHkgcHJvcGVydHkgJyIrdGhpcy55KyInIG9uIGJpbnMgZGF0YSIpO3ZhciBlPXRoaXMudGltZVByb3BlcnR5LG49dGhpcy54LGk9dGhpcy5iaW5zLHI9dGhpcy5keCxvPXRoaXMueSxhPXRoaXMuX2RhdGEscz10aGlzLm1vZGUsbD15SnQuaGNsKHRoaXMuY29sb3JTY2FsZSh0aGlzLl9uYW1lKSksYz15SnQuc2VsZWN0KHRoaXMuJC50b29sdGlwKSx1PWZ1bmN0aW9uKHQpe3JldHVybiB0W25dfSxoPWZ1bmN0aW9uKHQpe3JldHVybiB0W29dfSxkPWZ1bmN0aW9uKHQpe3JldHVybiB0W25dK3Rbcl19LHA9ZnVuY3Rpb24odCl7cmV0dXJuIHRbZV19OyJyZWxhdGl2ZSI9PT1lJiYocD1mdW5jdGlvbih0KXtyZXR1cm4gdC53YWxsX3RpbWUtYVswXS53YWxsX3RpbWV9KTt2YXIgZixtPXRoaXMuJC5zdmcuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZz1tLndpZHRoLF89bS5oZWlnaHQseT17dG9wOjUscmlnaHQ6NjAsYm90dG9tOjIwLGxlZnQ6MjR9OyJvZmZzZXQiPT09cz95LnRvcD0oZj1fLzIuNSkrNTpmPV8teS50b3AteS5ib3R0b207dmFyIHY9Zy15LmxlZnQteS5yaWdodCxiPV8teS50b3AteS5ib3R0b207eUp0Lm1pbihhLHUpLHlKdC5tYXgoYSxkKTt2YXIgeD15SnQuZm9ybWF0KCIuM24iKSx3PXlKdC5mb3JtYXQoIi4wZiIpOyJ3YWxsX3RpbWUiPT09ZT93PXlKdC50aW1lRm9ybWF0KCIlbS8lZCAlWCIpOiJyZWxhdGl2ZSI9PT1lJiYodz1mdW5jdGlvbih0KXtyZXR1cm4geUp0LmZvcm1hdCgiLjFyIikodC8zNmU1KSsiaCJ9KTt2YXIgUz1hLm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm5beUp0Lm1pbih0W2ldLHUpLHlKdC5tYXgodFtpXSxkKV19KSksTT1hLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHlKdC5leHRlbnQodFtpXSxoKX0pKSxFPTUwMCxUPXlKdC5leHRlbnQoYSxwKSxDPSgid2FsbF90aW1lIj09PWU/eUp0LnNjYWxlVGltZSgpOnlKdC5zY2FsZUxpbmVhcigpKS5kb21haW4oVCkucmFuZ2UoWzAsIm9mZnNldCI9PT1zP2I6MF0pLEE9eUp0LnNjYWxlTGluZWFyKCkuZG9tYWluKFswLHlKdC5tYXgoYSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gTVtlXVsxXX0pKV0pLnJhbmdlKFtmLDBdKSxrPXlKdC5zY2FsZUxpbmVhcigpLmRvbWFpbihBLmRvbWFpbigpKS5yYW5nZShbRSwwXSksTD15SnQuc2NhbGVMaW5lYXIoKS5kb21haW4oW3lKdC5taW4oYSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gU1tlXVswXX0pKSx5SnQubWF4KGEsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIFNbZV1bMV19KSldKS5uaWNlKCkucmFuZ2UoWzAsdl0pLFA9eUp0LnNjYWxlTGluZWFyKCkuZG9tYWluKEwuZG9tYWluKCkpLnJhbmdlKFswLEVdKTtjb25zdCBOPXlKdC5zY2FsZUxpbmVhcigpLmRvbWFpbih5SnQuZXh0ZW50KGEscCkpLnJhbmdlKFtsLmJyaWdodGVyKCksbC5kYXJrZXIoKV0pLmludGVycG9sYXRlKHlKdC5pbnRlcnBvbGF0ZUhjbCk7dmFyIEk9eUp0LmF4aXNCb3R0b20oTCkudGlja3MoTWF0aC5tYXgoMix2LzIwKSksUj15SnQuYXhpc1JpZ2h0KEMpLnRpY2tzKE1hdGgubWF4KDIsYi8xNSkpLnRpY2tGb3JtYXQodyksTz15SnQuYXhpc1JpZ2h0KEEpLnRpY2tzKE1hdGgubWF4KDIsYi8xNSkpLnRpY2tTaXplKHYrNSkudGlja0Zvcm1hdCh4KSx6PWZ1bmN0aW9uKHQpe3JldHVybiB0W25dK3Rbcl0vMn0sRD15SnQubGluZSgpLngoKGZ1bmN0aW9uKHQpe3JldHVybiBQKHoodCkpfSkpLnkoKGZ1bmN0aW9uKHQpe3JldHVybiBrKHRbb10pfSkpLEI9dGhpcy4kLnN2ZyxIPXlKdC5zZWxlY3QoQiksRj1ILnRyYW5zaXRpb24oKS5kdXJhdGlvbih0KSxWPUguc2VsZWN0KCJnIikuY2xhc3NlZCgic21hbGwiLChmdW5jdGlvbigpe3JldHVybiB2PjAmJnY8PTE1MH0pKS5jbGFzc2VkKCJtZWRpdW0iLChmdW5jdGlvbigpe3JldHVybiB2PjE1MCYmdjw9MzAwfSkpLmNsYXNzZWQoImxhcmdlIiwoZnVuY3Rpb24oKXtyZXR1cm4gdj4zMDB9KSksVT1GLnNlbGVjdCgiZyIpLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK3kubGVmdCsiLCIreS50b3ArIikiKSxqPXlKdC5iaXNlY3RvcihkKS5sZWZ0LEc9Vi5zZWxlY3QoIi5zdGFnZSIpLm9uKCJtb3VzZW92ZXIiLChmdW5jdGlvbigpe0ouc3R5bGUoIm9wYWNpdHkiLDEpLGV0LnN0eWxlKCJvcGFjaXR5IiwxKSxydC5zdHlsZSgib3BhY2l0eSIsMSksc3Quc3R5bGUoIm9wYWNpdHkiLDEpLGMuc3R5bGUoIm9wYWNpdHkiLDEpfSkpLm9uKCJtb3VzZW91dCIsKGZ1bmN0aW9uKCl7Si5zdHlsZSgib3BhY2l0eSIsMCksZXQuc3R5bGUoIm9wYWNpdHkiLDApLHJ0LnN0eWxlKCJvcGFjaXR5IiwwKSxzdC5zdHlsZSgib3BhY2l0eSIsMCksSi5jbGFzc2VkKCJob3Zlci1jbG9zZXN0IiwhMSksSy5jbGFzc2VkKCJvdXRsaW5lLWhvdmVyIiwhMSksYy5zdHlsZSgib3BhY2l0eSIsMCl9KSkub24oIm1vdXNlbW92ZSIsKGZ1bmN0aW9uIFcoKXt2YXIgdCxhPXlKdC5tb3VzZSh0aGlzKSxsPUwuaW52ZXJ0KGFbMF0pO2Z1bmN0aW9uIHUodCl7cmV0dXJuIE1hdGgubWluKHRbaV0ubGVuZ3RoLTEsaih0W2ldLGwpKX1DLmludmVydChhWzFdKTt2YXIgaCxkPTEvMDtKLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKGUsbCl7dmFyIGM9dShlKTtoPWU7dmFyIG09TChlW2ldW2NdW25dK2VbaV1bY11bcl0vMiksZz1BKGVbaV1bY11bb10pLF89Im9mZnNldCI9PT1zP0MocChlKSktKGYtZyk6Zyx5PU1hdGguYWJzKGFbMV0tXyk7cmV0dXJuIHk8ZCYmKGQ9eSx0PWUpLCJ0cmFuc2xhdGUoIittKyIsIitnKyIpIn0pKSxKLnNlbGVjdCgidGV4dCIpLnRleHQoKGZ1bmN0aW9uKHQpe3ZhciBlPXUodCk7cmV0dXJuIHRbaV1bZV1bb119KSksSi5jbGFzc2VkKCJob3Zlci1jbG9zZXN0IiwoZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT10fSkpLEsuY2xhc3NlZCgib3V0bGluZS1ob3ZlciIsKGZ1bmN0aW9uKGUpe3JldHVybiBlPT09dH0pKTt2YXIgbT11KGgpO2V0LmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiJ0cmFuc2xhdGUoIitMKGhbaV1bbV1bbl0raFtpXVttXVtyXS8yKSsiLCAiK2IrIikifSkpLnNlbGVjdCgidGV4dCIpLnRleHQoKGZ1bmN0aW9uKHQpe3JldHVybiB4KGhbaV1bbV1bbl0raFtpXVttXVtyXS8yKX0pKTt2YXIgZz1SLnRpY2tGb3JtYXQoKTtydC5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbihlKXtyZXR1cm4idHJhbnNsYXRlKCIrdisiLCAiKygib2Zmc2V0Ij09PXM/QyhwKHQpKTowKSsiKSJ9KSkuc3R5bGUoImRpc3BsYXkiLCJvZmZzZXQiPT09cz8iIjoibm9uZSIpLnNlbGVjdCgidGV4dCIpLnRleHQoKGZ1bmN0aW9uKGUpe3JldHVybiBnKHAodCkpfSkpO3ZhciBfPU8udGlja0Zvcm1hdCgpO3N0LmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKGUpe3JldHVybiJ0cmFuc2xhdGUoIit2KyIsICIrKCJvZmZzZXQiPT09cz8wOkEodFtpXVttXVtvXSkpKyIpIn0pKS5zdHlsZSgiZGlzcGxheSIsIm9mZnNldCI9PT1zPyJub25lIjoiIikuc2VsZWN0KCJ0ZXh0IikudGV4dCgoZnVuY3Rpb24oZSl7cmV0dXJuIF8odFtpXVttXVtvXSl9KSk7dmFyIHk9eUp0Lm1vdXNlKEIpO2Muc3R5bGUoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiKyh5WzBdKzE1KSsicHgsIisoeVsxXS0xNSkrInB4KSIpLnNlbGVjdCgic3BhbiIpLnRleHQoIm9mZnNldCI9PT1zP18odFtpXVttXVtvXSk6KCJzdGVwIj09PWU/InN0ZXAgIjoiIikrZyhwKHQpKSl9KSk7Ry5zZWxlY3QoIi5iYWNrZ3JvdW5kIikuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrLXkubGVmdCsiLCIrLXkudG9wKyIpIikuYXR0cigid2lkdGgiLGcpLmF0dHIoImhlaWdodCIsXyk7dmFyIHE9Ry5zZWxlY3RBbGwoIi5oaXN0b2dyYW0iKS5kYXRhKGEpO3EuZXhpdCgpLnJlbW92ZSgpO3ZhciBZPXEuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsImhpc3RvZ3JhbSIpLFg9WS5tZXJnZShxKS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBwKHQpLXAoZSl9KSksJD1VLnNlbGVjdEFsbCgiLmhpc3RvZ3JhbSIpLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiJ0cmFuc2xhdGUoMCwgIisoIm9mZnNldCI9PT1zP0MocCh0KSktZjowKSsiKSJ9KSk7WS5hcHBlbmQoImxpbmUiKS5hdHRyKCJjbGFzcyIsImJhc2VsaW5lIiksJC5zZWxlY3QoIi5iYXNlbGluZSIpLnN0eWxlKCJzdHJva2Utb3BhY2l0eSIsKGZ1bmN0aW9uKHQpe3JldHVybiJvZmZzZXQiPT09cz8uMTowfSkpLmF0dHIoInkxIixmKS5hdHRyKCJ5MiIsZikuYXR0cigieDIiLHYpLFkuYXBwZW5kKCJwYXRoIikuYXR0cigiY2xhc3MiLCJvdXRsaW5lIik7dmFyIEs9WC5zZWxlY3QoIi5vdXRsaW5lIikuYXR0cigidmVjdG9yLWVmZmVjdCIsIm5vbi1zY2FsaW5nLXN0cm9rZSIpLmF0dHIoImQiLChmdW5jdGlvbih0KXtyZXR1cm4oZnVuY3Rpb24odCl7cmV0dXJuIk0iK1Aoeih0WzBdKSkrIiwiK2soMCkrIkwiK0QodCkuc2xpY2UoMSkrIkwiK1Aoeih0W3QubGVuZ3RoLTFdKSkrIiwiK2soMCl9KSh0W2ldKX0pKS5zdHlsZSgic3Ryb2tlLXdpZHRoIiwxKTskLnNlbGVjdCgiLm91dGxpbmUiKS5hdHRyKCJ0cmFuc2Zvcm0iLCJzY2FsZSgiK3YvRSsiLCAiK2YvRSsiKSIpLnN0eWxlKCJzdHJva2UiLChmdW5jdGlvbih0KXtyZXR1cm4ib2Zmc2V0Ij09PXM/IiI6TihwKHQpKX0pKS5zdHlsZSgiZmlsbC1vcGFjaXR5IiwoZnVuY3Rpb24odCl7cmV0dXJuIm9mZnNldCI9PT1zPzE6MH0pKS5zdHlsZSgiZmlsbCIsKGZ1bmN0aW9uKHQpe3JldHVybiBOKHAodCkpfSkpO3ZhciBaPVkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJob3ZlciIpLEo9WC5zZWxlY3QoIi5ob3ZlciIpLnN0eWxlKCJmaWxsIiwoZnVuY3Rpb24odCl7cmV0dXJuIE4ocCh0KSl9KSk7Wi5hcHBlbmQoImNpcmNsZSIpLmF0dHIoInIiLDIpLFouYXBwZW5kKCJ0ZXh0Iikuc3R5bGUoImRpc3BsYXkiLCJub25lIikuYXR0cigiZHgiLDQpO3ZhciBRPVYuc2VsZWN0KCIueC1heGlzLWhvdmVyIikuc2VsZWN0QWxsKCIubGFiZWwiKS5kYXRhKFsieCJdKSx0dD1RLmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJsYWJlbCIpLGV0PVEubWVyZ2UodHQpO3R0LmFwcGVuZCgicmVjdCIpLmF0dHIoIngiLC0yMCkuYXR0cigieSIsNikuYXR0cigid2lkdGgiLDQwKS5hdHRyKCJoZWlnaHQiLDE0KSx0dC5hcHBlbmQoImxpbmUiKS5hdHRyKCJ4MSIsMCkuYXR0cigieDIiLDApLmF0dHIoInkxIiwwKS5hdHRyKCJ5MiIsNiksdHQuYXBwZW5kKCJ0ZXh0IikuYXR0cigiZHkiLDE4KTt2YXIgbnQ9Vi5zZWxlY3QoIi55LWF4aXMtaG92ZXIiKS5zZWxlY3RBbGwoIi5sYWJlbCIpLmRhdGEoWyJ5Il0pLGl0PW50LmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJsYWJlbCIpLHJ0PW50Lm1lcmdlKGl0KTtpdC5hcHBlbmQoInJlY3QiKS5hdHRyKCJ4Iiw4KS5hdHRyKCJ5IiwtNikuYXR0cigid2lkdGgiLDQwKS5hdHRyKCJoZWlnaHQiLDE0KSxpdC5hcHBlbmQoImxpbmUiKS5hdHRyKCJ4MSIsMCkuYXR0cigieDIiLDYpLmF0dHIoInkxIiwwKS5hdHRyKCJ5MiIsMCksaXQuYXBwZW5kKCJ0ZXh0IikuYXR0cigiZHgiLDgpLmF0dHIoImR5Iiw0KTt2YXIgb3Q9Vi5zZWxlY3QoIi55LXNsaWNlLWF4aXMtaG92ZXIiKS5zZWxlY3RBbGwoIi5sYWJlbCIpLmRhdGEoWyJ5Il0pLGF0PW90LmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJsYWJlbCIpLHN0PW90Lm1lcmdlKGF0KTthdC5hcHBlbmQoInJlY3QiKS5hdHRyKCJ4Iiw4KS5hdHRyKCJ5IiwtNikuYXR0cigid2lkdGgiLDQwKS5hdHRyKCJoZWlnaHQiLDE0KSxhdC5hcHBlbmQoImxpbmUiKS5hdHRyKCJ4MSIsMCkuYXR0cigieDIiLDYpLmF0dHIoInkxIiwwKS5hdHRyKCJ5MiIsMCksYXQuYXBwZW5kKCJ0ZXh0IikuYXR0cigiZHgiLDgpLmF0dHIoImR5Iiw0KSxVLnNlbGVjdCgiLnkuYXhpcy5zbGljZSIpLnN0eWxlKCJvcGFjaXR5Iiwib2Zmc2V0Ij09PXM/MDoxKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoMCwgIisoIm9mZnNldCI9PT1zPy1mOjApKyIpIikuY2FsbChPKSxVLnNlbGVjdCgiLnguYXhpcyIpLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgwLCAiK2IrIikiKS5jYWxsKEkpLFUuc2VsZWN0KCIueS5heGlzIikuc3R5bGUoIm9wYWNpdHkiLCJvZmZzZXQiPT09cz8xOjApLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK3YrIiwgIisoIm9mZnNldCI9PT1zPzA6YikrIikiKS5jYWxsKFIpLFUuc2VsZWN0QWxsKCIudGljayB0ZXh0IikuYXR0cigiZmlsbCIsIiNhYWEiKSxVLnNlbGVjdEFsbCgiLmF4aXMgcGF0aC5kb21haW4iKS5hdHRyKCJzdHJva2UiLCJub25lIil9fTtmdW5jdGlvbiBiSnQodCl7Y29uc3RbZSxuLGldPXQ7cmV0dXJue3dhbGxfdGltZTplLHN0ZXA6bixtaW46c2MoaS5tYXAoKChbdCwsXSk9PnQpKSksbWF4Om9jKGkubWFwKCgoWyx0XSk9PnQpKSksYnVja2V0czppLm1hcCgoKFt0LGUsbl0pPT4oe2xlZnQ6dCxyaWdodDplLGNvdW50Om59KSkpfX1mdW5jdGlvbiB4SnQodCxlLG4saT0zMCl7dm9pZCAwIT09ZSYmbnVsbCE9bnx8KGU9MCxuPTApLG49PT1lJiYobj0xLjEqZSsxLGU9ZS8xLjEtMSk7Y29uc3Qgcj0obi1lKS9pO2xldCBvPTA7Y29uc3QgYT1bXTtmb3IobGV0IHM9MDtzPGk7cysrKXtjb25zdCBpPWUrcypyLGw9aStyO2xldCBjPTA7Zm9yKDtvPHQuYnVja2V0cy5sZW5ndGg7KXtjb25zdCByPU1hdGgubWluKG4sdC5idWNrZXRzW29dLnJpZ2h0KSxhPU1hdGgubWF4KGUsdC5idWNrZXRzW29dLmxlZnQpO2lmKHItYT4wKXtjb25zdCBlPU1hdGgubWluKHIsbCktTWF0aC5tYXgoYSxpKSxuPWUvKHItYSkqdC5idWNrZXRzW29dLmNvdW50O2MrPWU+MD9uOjB9ZWxzZXtjb25zdCBlPWw+PW47Yys9aTw9YSYmKGU/cjw9bDpyPGwpP3QuYnVja2V0c1tvXS5jb3VudDowfWlmKHI+bClicmVhaztvKyt9YS5wdXNoKHt4OmksZHg6cix5OmN9KX1yZXR1cm4gYX12SnQudGVtcGxhdGU9eGVgCiAgICA8ZGl2IGlkPSJ0b29sdGlwIj48c3Bhbj48L3NwYW4+PC9kaXY+CiAgICA8c3ZnIGlkPSJzdmciPgogICAgICA8Zz4KICAgICAgICA8ZyBjbGFzcz0iYXhpcyB4Ij48L2c+CiAgICAgICAgPGcgY2xhc3M9ImF4aXMgeSI+PC9nPgogICAgICAgIDxnIGNsYXNzPSJheGlzIHkgc2xpY2UiPjwvZz4KICAgICAgICA8ZyBjbGFzcz0ic3RhZ2UiPgogICAgICAgICAgPHJlY3QgY2xhc3M9ImJhY2tncm91bmQiPjwvcmVjdD4KICAgICAgICA8L2c+CiAgICAgICAgPGcgY2xhc3M9IngtYXhpcy1ob3ZlciI+PC9nPgogICAgICAgIDxnIGNsYXNzPSJ5LWF4aXMtaG92ZXIiPjwvZz4KICAgICAgICA8ZyBjbGFzcz0ieS1zbGljZS1heGlzLWhvdmVyIj48L2c+CiAgICAgIDwvZz4KICAgIDwvc3ZnPgoKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiAjYWFhOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIC0tdnotaGlzdG9ncmFtLXRpbWVzZXJpZXMtaG92ZXItYmctY29sb3I6ICNmZmY7CiAgICAgICAgLS12ei1oaXN0b2dyYW0tdGltZXNlcmllcy1vdXRsaW5lLWNvbG9yOiAjZmZmOwogICAgICAgIC0tdnotaGlzdG9ncmFtLXRpbWVzZXJpZXMtaG92ZXItb3V0bGluZS1jb2xvcjogIzAwMDsKICAgICAgfQoKICAgICAgOmhvc3QoLmRhcmstbW9kZSkgewogICAgICAgIC0tdnotaGlzdG9ncmFtLXRpbWVzZXJpZXMtaG92ZXItYmctY29sb3I6IHZhcigKICAgICAgICAgIC0tcHJpbWFyeS1iYWNrZ3JvdW5kLWNvbG9yCiAgICAgICAgKTsKICAgICAgICAtLXZ6LWhpc3RvZ3JhbS10aW1lc2VyaWVzLW91dGxpbmUtY29sb3I6IHZhcigtLXBhcGVyLWdyZXktNjAwKTsKICAgICAgICAtLXZ6LWhpc3RvZ3JhbS10aW1lc2VyaWVzLWhvdmVyLW91dGxpbmUtY29sb3I6ICNmZmY7CiAgICAgIH0KCiAgICAgIHN2ZyB7CiAgICAgICAgZm9udC1mYW1pbHk6IHJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgIH0KCiAgICAgIHRleHQgewogICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsKICAgICAgfQoKICAgICAgI3Rvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgfQoKICAgICAgLmJhY2tncm91bmQgewogICAgICAgIGZpbGwtb3BhY2l0eTogMDsKICAgICAgICBmaWxsOiByZWQ7CiAgICAgIH0KCiAgICAgIC5oaXN0b2dyYW0gewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuaG92ZXIgewogICAgICAgIGZvbnQtc2l6ZTogOXB4OwogICAgICAgIGRvbWluYW50LWJhc2VsaW5lOiBtaWRkbGU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLmhvdmVyIGNpcmNsZSB7CiAgICAgICAgc3Ryb2tlOiB3aGl0ZTsKICAgICAgICBzdHJva2Utb3BhY2l0eTogMC41OwogICAgICAgIHN0cm9rZS13aWR0aDogMXB4OwogICAgICB9CgogICAgICAuaG92ZXIgdGV4dCB7CiAgICAgICAgZmlsbDogYmxhY2s7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLmhvdmVyLmhvdmVyLWNsb3Nlc3QgY2lyY2xlIHsKICAgICAgICBmaWxsOiB2YXIoLS12ei1oaXN0b2dyYW0tdGltZXNlcmllcy1ob3Zlci1vdXRsaW5lLWNvbG9yKSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuaG92ZXIuaG92ZXItY2xvc2VzdCB0ZXh0IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuYmFzZWxpbmUgewogICAgICAgIHN0cm9rZTogYmxhY2s7CiAgICAgICAgc3Ryb2tlLW9wYWNpdHk6IDAuMTsKICAgICAgfQoKICAgICAgLm91dGxpbmUgewogICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgc3Ryb2tlOiB2YXIoLS12ei1oaXN0b2dyYW0tdGltZXNlcmllcy1vdXRsaW5lLWNvbG9yKTsKICAgICAgICBzdHJva2Utb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAub3V0bGluZS5vdXRsaW5lLWhvdmVyIHsKICAgICAgICBzdHJva2U6IHZhcigtLXZ6LWhpc3RvZ3JhbS10aW1lc2VyaWVzLWhvdmVyLW91dGxpbmUtY29sb3IpICFpbXBvcnRhbnQ7CiAgICAgICAgc3Ryb2tlLW9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC54LWF4aXMtaG92ZXIsCiAgICAgIC55LWF4aXMtaG92ZXIsCiAgICAgIC55LXNsaWNlLWF4aXMtaG92ZXIgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAueC1heGlzLWhvdmVyIC5sYWJlbCwKICAgICAgLnktYXhpcy1ob3ZlciAubGFiZWwsCiAgICAgIC55LXNsaWNlLWF4aXMtaG92ZXIgLmxhYmVsIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICB0ZXh0LWFuY2hvcjogZW5kOwogICAgICB9CgogICAgICAueC1heGlzLWhvdmVyIHRleHQgewogICAgICAgIHRleHQtYW5jaG9yOiBtaWRkbGU7CiAgICAgIH0KCiAgICAgIC55LWF4aXMtaG92ZXIgdGV4dCwKICAgICAgLnktc2xpY2UtYXhpcy1ob3ZlciB0ZXh0IHsKICAgICAgICB0ZXh0LWFuY2hvcjogc3RhcnQ7CiAgICAgIH0KCiAgICAgIC54LWF4aXMtaG92ZXIgbGluZSwKICAgICAgLnktYXhpcy1ob3ZlciBsaW5lLAogICAgICAueS1zbGljZS1heGlzLWhvdmVyIGxpbmUgewogICAgICAgIHN0cm9rZTogY3VycmVudENvbG9yOwogICAgICB9CgogICAgICAueC1heGlzLWhvdmVyIHJlY3QsCiAgICAgIC55LWF4aXMtaG92ZXIgcmVjdCwKICAgICAgLnktc2xpY2UtYXhpcy1ob3ZlciByZWN0IHsKICAgICAgICBmaWxsOiB2YXIoLS12ei1oaXN0b2dyYW0tdGltZXNlcmllcy1ob3Zlci1iZy1jb2xvcik7CiAgICAgIH0KCiAgICAgICN0b29sdGlwLAogICAgICAueC1heGlzLWhvdmVyIHRleHQsCiAgICAgIC55LWF4aXMtaG92ZXIgdGV4dCwKICAgICAgLnktc2xpY2UtYXhpcy1ob3ZlciB0ZXh0IHsKICAgICAgICBjb2xvcjogdmFyKC0tdnotaGlzdG9ncmFtLXRpbWVzZXJpZXMtaG92ZXItb3V0bGluZS1jb2xvcik7CiAgICAgIH0KCiAgICAgIC5heGlzIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIH0KCiAgICAgIC5heGlzIHBhdGguZG9tYWluIHsKICAgICAgICBmaWxsOiBub25lOwogICAgICB9CgogICAgICAuYXhpcyAudGljayBsaW5lIHsKICAgICAgICBzdHJva2U6ICNkZGQ7CiAgICAgIH0KCiAgICAgIC5heGlzLnNsaWNlIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICB9CgogICAgICAuYXhpcy5zbGljZSAudGljayBsaW5lIHsKICAgICAgICBzdHJva2UtZGFzaGFycmF5OiAyOwogICAgICB9CgogICAgICAuc21hbGwgLmF4aXMgdGV4dCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgICAuc21hbGwgLmF4aXMgLnRpY2s6Zmlyc3Qtb2YtdHlwZSB0ZXh0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICAuc21hbGwgLmF4aXMgLnRpY2s6bGFzdC1vZi10eXBlIHRleHQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICAgIC5tZWRpdW0gLmF4aXMgdGV4dCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgICAubWVkaXVtIC5heGlzIC50aWNrOm50aC1jaGlsZCgybiArIDEpIHRleHQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICAgIC5sYXJnZSAuYXhpcyB0ZXh0IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICAgIC5sYXJnZSAuYXhpcyAudGljazpudGgtY2hpbGQoMm4gKyAxKSB0ZXh0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHZKdC5wcm90b3R5cGUsIm1vZGUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sdkp0LnByb3RvdHlwZSwidGltZVByb3BlcnR5Iix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHZKdC5wcm90b3R5cGUsImJpbnMiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sdkp0LnByb3RvdHlwZSwieCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx2SnQucHJvdG90eXBlLCJkeCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx2SnQucHJvdG90eXBlLCJ5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHZKdC5wcm90b3R5cGUsImNvbG9yU2NhbGUiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sdkp0LnByb3RvdHlwZSwibW9kZVRyYW5zaXRpb25EdXJhdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHZKdC5wcm90b3R5cGUsIl9hdHRhY2hlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx2SnQucHJvdG90eXBlLCJfbmFtZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sdkp0LnByb3RvdHlwZSwiX2RhdGEiLHZvaWQgMCksdChbYSgidGltZVByb3BlcnR5IiwiY29sb3JTY2FsZSIsIl9hdHRhY2hlZCIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sdkp0LnByb3RvdHlwZSwiX3JlZHJhd09uQ2hhbmdlIixudWxsKSx0KFthKCJtb2RlIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSx2SnQucHJvdG90eXBlLCJfbW9kZVJlZHJhdyIsbnVsbCksdkp0PXQoW2koInZ6LWhpc3RvZ3JhbS10aW1lc2VyaWVzIildLHZKdCk7bGV0IHdKdD1jbGFzcyBleHRlbmRzKGJDdChjcih3ZSkpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5nZXREYXRhTG9hZE5hbWU9KHtydW46dH0pPT50LHRoaXMucmVxdWVzdERhdGE9KHQsZSxuKT0+e2NvbnN0IGk9RXIoKS5wbHVnaW5Sb3V0ZSgiaGlzdG9ncmFtcyIsIi9oaXN0b2dyYW1zIik7UHJvbWlzZS5hbGwodC5tYXAoKHQ9Pntjb25zdCBuPVBPKGkse3RhZzp0LnRhZyxydW46dC5ydW59KTtyZXR1cm4gdGhpcy5yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KG4pLnRoZW4oKG49PntlKHtpdGVtOnQsZGF0YTpufSl9KSl9KSkpLmZpbmFsbHkoKCgpPT57bigpfSkpfSx0aGlzLmxvYWREYXRhQ2FsbGJhY2s9KHQsZSxuKT0+e2NvbnN0IGk9KGZ1bmN0aW9uIHIodCl7Y29uc3QgZT10Lm1hcChiSnQpLG49c2MoZSwodD0+dC5taW4pKSxpPW9jKGUsKHQ9PnQubWF4KSk7cmV0dXJuIGUubWFwKCh0PT4oe3dhbGxfdGltZTp0LndhbGxfdGltZSxzdGVwOnQuc3RlcCxiaW5zOnhKdCh0LG4saSl9KSkpfSkobiksbz10aGlzLmdldERhdGFMb2FkTmFtZShlKTt0aGlzLiQuY2hhcnQuc2V0U2VyaWVzRGF0YShvLGkpfSx0aGlzLl9jb2xvclNjYWxlRnVuY3Rpb249X08sdGhpcy5fZXhwYW5kZWQ9ITF9X3JlbG9hZE9uUnVuVGFnUmVxdWVzdE1hbmFnZXJDaGFuZ2UoKXt0aGlzLnJlbG9hZCgpfV91cGRhdGVEYXRhVG9Mb2FkKCl7dGhpcy5kYXRhVG9Mb2FkPVt7cnVuOnRoaXMucnVuLHRhZzp0aGlzLnRhZ31dfWdldCBfcnVuQ29sb3IoKXtyZXR1cm4gdGhpcy5fY29sb3JTY2FsZUZ1bmN0aW9uKHRoaXMucnVuKX1yZWRyYXcoKXt0aGlzLiQuY2hhcnQucmVkcmF3KCl9X3RvZ2dsZUV4cGFuZGVkKHQpe3RoaXMuc2V0KCJfZXhwYW5kZWQiLCF0aGlzLl9leHBhbmRlZCksdGhpcy5yZWRyYXcoKX19O3dKdC50ZW1wbGF0ZT14ZWAKICAgIDx0Zi1jYXJkLWhlYWRpbmcKICAgICAgdGFnPSJbW3RhZ11dIgogICAgICBydW49IltbcnVuXV0iCiAgICAgIGRpc3BsYXktbmFtZT0iW1t0YWdNZXRhZGF0YS5kaXNwbGF5TmFtZV1dIgogICAgICBkZXNjcmlwdGlvbj0iW1t0YWdNZXRhZGF0YS5kZXNjcmlwdGlvbl1dIgogICAgICBjb2xvcj0iW1tfcnVuQ29sb3JdXSIKICAgID48L3RmLWNhcmQtaGVhZGluZz4KICAgIDwhLS0KICAgICAgVGhlIG1haW4gaGlzdG9ncmFtIHRoYXQgd2UgcmVuZGVyLiBEYXRhIGlzIHNldCBkaXJlY3RseSB3aXRoCiAgICAgIFxgc2V0U2VyaWVzRGF0YVxgLCBub3Qgd2l0aCBhIGJvdW5kIHByb3BlcnR5LgogICAgLS0+CiAgICA8dnotaGlzdG9ncmFtLXRpbWVzZXJpZXMKICAgICAgaWQ9ImNoYXJ0IgogICAgICB0aW1lLXByb3BlcnR5PSJbW3RpbWVQcm9wZXJ0eV1dIgogICAgICBtb2RlPSJbW2hpc3RvZ3JhbU1vZGVdXSIKICAgICAgY29sb3Itc2NhbGU9IltbX2NvbG9yU2NhbGVGdW5jdGlvbl1dIgogICAgPjwvdnotaGlzdG9ncmFtLXRpbWVzZXJpZXM+CiAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogcm93OyI+CiAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgIHNlbGVjdGVkJD0iW1tfZXhwYW5kZWRdXSIKICAgICAgICBpY29uPSJmdWxsc2NyZWVuIgogICAgICAgIG9uLXRhcD0iX3RvZ2dsZUV4cGFuZGVkIgogICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgIDwvZGl2PgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIHdpZHRoOiAzMzBweDsKICAgICAgICBoZWlnaHQ6IDIzNXB4OwogICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICB9CiAgICAgIDpob3N0KFtfZXhwYW5kZWRdKSB7CiAgICAgICAgd2lkdGg6IDcwMHB4OwogICAgICAgIGhlaWdodDogNTAwcHg7CiAgICAgIH0KCiAgICAgIHZ6LWhpc3RvZ3JhbS10aW1lc2VyaWVzIHsKICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgfQoKICAgICAgcGFwZXItaWNvbi1idXR0b24gewogICAgICAgIGNvbG9yOiAjMjE5NmYzOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgfQoKICAgICAgcGFwZXItaWNvbi1idXR0b25bc2VsZWN0ZWRdIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Yi11aS1saWdodC1hY2NlbnQpOwogICAgICB9CgogICAgICB0Zi1jYXJkLWhlYWRpbmcgewogICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgd2lkdGg6IDkwJTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHdKdC5wcm90b3R5cGUsInJ1biIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx3SnQucHJvdG90eXBlLCJ0YWciLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sd0p0LnByb3RvdHlwZSwiZ2V0RGF0YUxvYWROYW1lIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLGJyKV0sd0p0LnByb3RvdHlwZSwicmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sd0p0LnByb3RvdHlwZSwibG9hZERhdGFDYWxsYmFjayIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSx3SnQucHJvdG90eXBlLCJ0YWdNZXRhZGF0YSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx3SnQucHJvdG90eXBlLCJ0aW1lUHJvcGVydHkiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sd0p0LnByb3RvdHlwZSwiaGlzdG9ncmFtTW9kZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLHdKdC5wcm90b3R5cGUsIl9jb2xvclNjYWxlRnVuY3Rpb24iLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFuLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sd0p0LnByb3RvdHlwZSwiX2V4cGFuZGVkIix2b2lkIDApLHQoW2EoInJ1biIsInRhZyIsInJlcXVlc3RNYW5hZ2VyIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSx3SnQucHJvdG90eXBlLCJfcmVsb2FkT25SdW5UYWdSZXF1ZXN0TWFuYWdlckNoYW5nZSIsbnVsbCksdChbYSgicnVuIiwidGFnIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSx3SnQucHJvdG90eXBlLCJfdXBkYXRlRGF0YVRvTG9hZCIsbnVsbCksdChbcygicnVuIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sd0p0LnByb3RvdHlwZSwiX3J1bkNvbG9yIixudWxsKSx3SnQ9dChbaSgidGYtaGlzdG9ncmFtLWxvYWRlciIpXSx3SnQpO2xldCBTSnQ9Y2xhc3MgZXh0ZW5kcyhjcih3ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnJlbG9hZE9uUmVhZHk9ITAsdGhpcy5faGlzdG9ncmFtTW9kZT0ib2Zmc2V0Iix0aGlzLl90aW1lUHJvcGVydHk9InN0ZXAiLHRoaXMuX3Jlc3RhbXA9ITEsdGhpcy5fcmVxdWVzdE1hbmFnZXI9bmV3IGJyfV9yZWRyYXdDYXRlZ29yeVBhbmUodCxlKXtlJiZ0LnRhcmdldC5xdWVyeVNlbGVjdG9yQWxsKCJ0Zi1oaXN0b2dyYW0tbG9hZGVyIikuZm9yRWFjaCgodD0+dC5yZWRyYXcoKSkpfXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLnJlbG9hZE9uUmVhZHkmJnRoaXMucmVsb2FkKCl9cmVsb2FkKCl7dGhpcy5fZmV0Y2hUYWdzKCkudGhlbigoKCk9Pnt0aGlzLl9yZWxvYWRIaXN0b2dyYW1zKCl9KSl9X2ZldGNoVGFncygpe2NvbnN0IHQ9RXIoKS5wbHVnaW5Sb3V0ZSgiaGlzdG9ncmFtcyIsIi90YWdzIik7cmV0dXJuIHRoaXMuX3JlcXVlc3RNYW5hZ2VyLnJlcXVlc3QodCkudGhlbigodD0+e2lmKENlLmV4cG9ydHMuaXNFcXVhbCh0LHRoaXMuX3J1blRvVGFnSW5mbykpcmV0dXJuO2NvbnN0IGU9Q2UuZXhwb3J0cy5tYXBWYWx1ZXModCwodD0+T2JqZWN0LmtleXModCkpKSxuPWZyKGUpO3RoaXMuc2V0KCJfZGF0YU5vdEZvdW5kIiwwPT09bi5sZW5ndGgpLHRoaXMuc2V0KCJfcnVuVG9UYWciLGUpLHRoaXMuc2V0KCJfcnVuVG9UYWdJbmZvIix0KSx0aGlzLmFzeW5jKCgoKT0+e3RoaXMuc2V0KCJfY2F0ZWdvcmllc0RvbVJlYWR5IiwhMCl9KSl9KSl9X3JlbG9hZEhpc3RvZ3JhbXMoKXt0aGlzLnJvb3QucXVlcnlTZWxlY3RvckFsbCgidGYtaGlzdG9ncmFtLWxvYWRlciIpLmZvckVhY2goKHQ9Pnt0LnJlbG9hZCgpfSkpfV9zaG91bGRPcGVuKHQpe3JldHVybiB0PD0yfWdldCBfY2F0ZWdvcmllcygpe3JldHVybiBJcih0aGlzLl9ydW5Ub1RhZyx0aGlzLl9zZWxlY3RlZFJ1bnMsdGhpcy5fdGFnRmlsdGVyKX1fdGFnTWV0YWRhdGEodCxlLG4pe3JldHVybiB0W2VdW25dfX07U0p0LnRlbXBsYXRlPXhlYAogICAgPHRmLWRhc2hib2FyZC1sYXlvdXQ+CiAgICAgIDxkaXYgc2xvdD0ic2lkZWJhciI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3MiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIj4KICAgICAgICAgICAgPHRmLW9wdGlvbi1zZWxlY3RvcgogICAgICAgICAgICAgIGlkPSJoaXN0b2dyYW1Nb2RlU2VsZWN0b3IiCiAgICAgICAgICAgICAgbmFtZT0iSGlzdG9ncmFtIG1vZGUiCiAgICAgICAgICAgICAgc2VsZWN0ZWQtaWQ9Int7X2hpc3RvZ3JhbU1vZGV9fSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24gaWQ9Im92ZXJsYXkiPm92ZXJsYXk8L3BhcGVyLWJ1dHRvbj4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uIGlkPSJvZmZzZXQiPm9mZnNldDwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICA8L3RmLW9wdGlvbi1zZWxlY3Rvcj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIj4KICAgICAgICAgICAgPHRmLW9wdGlvbi1zZWxlY3RvcgogICAgICAgICAgICAgIGlkPSJ0aW1lUHJvcGVydHlTZWxlY3RvciIKICAgICAgICAgICAgICBuYW1lPSJPZmZzZXQgdGltZSBheGlzIgogICAgICAgICAgICAgIHNlbGVjdGVkLWlkPSJ7e190aW1lUHJvcGVydHl9fSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxwYXBlci1idXR0b24gaWQ9InN0ZXAiPnN0ZXA8L3BhcGVyLWJ1dHRvbj4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uIGlkPSJyZWxhdGl2ZSI+cmVsYXRpdmU8L3BhcGVyLWJ1dHRvbj4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uIGlkPSJ3YWxsX3RpbWUiPndhbGw8L3BhcGVyLWJ1dHRvbj4KICAgICAgICAgICAgPC90Zi1vcHRpb24tc2VsZWN0b3I+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24gcnVucy1zZWxlY3RvciI+CiAgICAgICAgICA8dGYtcnVucy1zZWxlY3RvciBzZWxlY3RlZC1ydW5zPSJ7e19zZWxlY3RlZFJ1bnN9fSI+CiAgICAgICAgICA8L3RmLXJ1bnMtc2VsZWN0b3I+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IHNsb3Q9ImNlbnRlciI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19kYXRhTm90Rm91bmRdXSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuby1kYXRhLXdhcm5pbmciPgogICAgICAgICAgICA8aDM+Tm8gaGlzdG9ncmFtIGRhdGEgd2FzIGZvdW5kLjwvaDM+CiAgICAgICAgICAgIDxwPlByb2JhYmxlIGNhdXNlczo8L3A+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICBZb3UgaGF2ZW7igJl0IHdyaXR0ZW4gYW55IGhpc3RvZ3JhbSBkYXRhIHRvIHlvdXIgZXZlbnQgZmlsZXMuCiAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICA8bGk+VGVuc29yQm9hcmQgY2Fu4oCZdCBmaW5kIHlvdXIgZXZlbnQgZmlsZXMuPC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdeKAmXJlIG5ldyB0byB1c2luZyBUZW5zb3JCb2FyZCwgYW5kIHdhbnQgdG8gZmluZCBvdXQgaG93IHRvCiAgICAgICAgICAgICAgYWRkIGRhdGEgYW5kIHNldCB1cCB5b3VyIGV2ZW50IGZpbGVzLCBjaGVjayBvdXQgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCIKICAgICAgICAgICAgICAgID5SRUFETUU8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIHBlcmhhcHMgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL2dldF9zdGFydGVkL3N1bW1hcmllc19hbmRfdGVuc29yYm9hcmQiCiAgICAgICAgICAgICAgICA+VGVuc29yQm9hcmQgdHV0b3JpYWw8L2EKICAgICAgICAgICAgICA+LgogICAgICAgICAgICA8L3A+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3UgdGhpbmsgVGVuc29yQm9hcmQgaXMgY29uZmlndXJlZCBwcm9wZXJseSwgcGxlYXNlIHNlZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQjbXktdGVuc29yYm9hcmQtaXNudC1zaG93aW5nLWFueS1kYXRhLXdoYXRzLXdyb25nIgogICAgICAgICAgICAgICAgPnRoZSBzZWN0aW9uIG9mIHRoZSBSRUFETUUgZGV2b3RlZCB0byBtaXNzaW5nIGRhdGEgcHJvYmxlbXM8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIGNvbnNpZGVyIGZpbGluZyBhbiBpc3N1ZSBvbiBHaXRIdWIuCiAgICAgICAgICAgIDwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbWyFfZGF0YU5vdEZvdW5kXV0iPgogICAgICAgICAgPHRmLXRhZy1maWx0ZXJlciB0YWctZmlsdGVyPSJ7e190YWdGaWx0ZXJ9fSI+PC90Zi10YWctZmlsdGVyZXI+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19jYXRlZ29yaWVzXV0iIGFzPSJjYXRlZ29yeSI+CiAgICAgICAgICAgIDx0Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldwogICAgICAgICAgICAgIGNhdGVnb3J5PSJbW2NhdGVnb3J5XV0iCiAgICAgICAgICAgICAgaW5pdGlhbC1vcGVuZWQ9IltbX3Nob3VsZE9wZW4oaW5kZXgpXV0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgICAgICA8dGYtaGlzdG9ncmFtLWxvYWRlcgogICAgICAgICAgICAgICAgICBydW49IltbaXRlbS5ydW5dXSIKICAgICAgICAgICAgICAgICAgdGFnPSJbW2l0ZW0udGFnXV0iCiAgICAgICAgICAgICAgICAgIGFjdGl2ZT0iW1thY3RpdmVdXSIKICAgICAgICAgICAgICAgICAgdGFnLW1ldGFkYXRhPSJbW190YWdNZXRhZGF0YShfcnVuVG9UYWdJbmZvLCBpdGVtLnJ1biwgaXRlbS50YWcpXV0iCiAgICAgICAgICAgICAgICAgIHRpbWUtcHJvcGVydHk9IltbX3RpbWVQcm9wZXJ0eV1dIgogICAgICAgICAgICAgICAgICBoaXN0b2dyYW0tbW9kZT0iW1tfaGlzdG9ncmFtTW9kZV1dIgogICAgICAgICAgICAgICAgICByZXF1ZXN0LW1hbmFnZXI9IltbX3JlcXVlc3RNYW5hZ2VyXV0iCiAgICAgICAgICAgICAgICA+PC90Zi1oaXN0b2dyYW0tbG9hZGVyPgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvdGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXc+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDwvZGl2PgogICAgPC90Zi1kYXNoYm9hcmQtbGF5b3V0PgoKICAgIDxzdHlsZSBpbmNsdWRlPSJkYXNoYm9hcmQtc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgIC5uby1kYXRhLXdhcm5pbmcgewogICAgICAgIG1heC13aWR0aDogNTQwcHg7CiAgICAgICAgbWFyZ2luOiA4MHB4IGF1dG8gMCBhdXRvOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxTSnQucHJvdG90eXBlLCJyZWxvYWRPblJlYWR5Iix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFNKdC5wcm90b3R5cGUsIl9oaXN0b2dyYW1Nb2RlIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFNKdC5wcm90b3R5cGUsIl90aW1lUHJvcGVydHkiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLFNKdC5wcm90b3R5cGUsIl9zZWxlY3RlZFJ1bnMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sU0p0LnByb3RvdHlwZSwiX3J1blRvVGFnIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFNKdC5wcm90b3R5cGUsIl9ydW5Ub1RhZ0luZm8iLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxTSnQucHJvdG90eXBlLCJfZGF0YU5vdEZvdW5kIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFNKdC5wcm90b3R5cGUsIl90YWdGaWx0ZXIiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxTSnQucHJvdG90eXBlLCJfcmVzdGFtcCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFNKdC5wcm90b3R5cGUsIl9jYXRlZ29yaWVzRG9tUmVhZHkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsYnIpXSxTSnQucHJvdG90eXBlLCJfcmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbcygiX3J1blRvVGFnIiwiX3NlbGVjdGVkUnVucyIsIl90YWdGaWx0ZXIiLCJfY2F0ZWdvcmllc0RvbVJlYWR5IiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxTSnQucHJvdG90eXBlLCJfY2F0ZWdvcmllcyIsbnVsbCksU0p0PXQoW2koInRmLWhpc3RvZ3JhbS1kYXNoYm9hcmQiKV0sU0p0KTtjbGFzcyBNSnR7Y29uc3RydWN0b3IodCxlLG49ITApe3RoaXMuX2FwaVVybD10LHRoaXMuX3JlcXVlc3RNYW5hZ2VyPWUsdGhpcy5fdXNlSHR0cEdldD1ufWdldEV4cGVyaW1lbnQodCl7cmV0dXJuIHRoaXMuX3NlbmRSZXF1ZXN0KCJleHBlcmltZW50Iix0KX1nZXREb3dubG9hZFVybCh0LGUsbil7cmV0dXJuIHRoaXMuX2FwaVVybCsiL2Rvd25sb2FkX2RhdGE/IituZXcgVVJMU2VhcmNoUGFyYW1zKHtmb3JtYXQ6dCxjb2x1bW5zVmlzaWJpbGl0eTpKU09OLnN0cmluZ2lmeShuKSxyZXF1ZXN0OkpTT04uc3RyaW5naWZ5KGUpfSl9bGlzdFNlc3Npb25Hcm91cHModCl7cmV0dXJuIHRoaXMuX3NlbmRSZXF1ZXN0KCJzZXNzaW9uX2dyb3VwcyIsdCl9bGlzdE1ldHJpY0V2YWxzKHQpe3JldHVybiB0aGlzLl9zZW5kUmVxdWVzdCgibWV0cmljX2V2YWxzIix0KX1fc2VuZFJlcXVlc3QodCxlKXtpZih0aGlzLl91c2VIdHRwR2V0KXtjb25zdCBuPWVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShlKSk7cmV0dXJuIHRoaXMuX3JlcXVlc3RNYW5hZ2VyLnJlcXVlc3QodGhpcy5fYXBpVXJsKyIvIit0KyI/cmVxdWVzdD0iK24pfWNvbnN0IG49bmV3IHZyO24ud2l0aENyZWRlbnRpYWxzPSEwLG4ubWV0aG9kVHlwZT15ci5QT1NULG4uY29udGVudFR5cGU9InRleHQvcGxhaW4iLG4uYm9keT1KU09OLnN0cmluZ2lmeShlKTtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdFdpdGhPcHRpb25zKHRoaXMuX2FwaVVybCsiLyIrdCxuKX19bGV0IEVKdD1jbGFzcyBleHRlbmRzIHdle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLm9yaWVudGF0aW9uPSJob3Jpem9udGFsIn19O2Z1bmN0aW9uIFRKdCh0KXtyZXR1cm4iIiE9PXQuZGlzcGxheU5hbWUmJnZvaWQgMCE9PXQuZGlzcGxheU5hbWU/dC5kaXNwbGF5TmFtZTp0Lm5hbWV9ZnVuY3Rpb24gQ0p0KHQpe2lmKCIiIT09dC5kaXNwbGF5TmFtZSYmdm9pZCAwIT09dC5kaXNwbGF5TmFtZSlyZXR1cm4gdC5kaXNwbGF5TmFtZTtsZXQgZT10Lm5hbWUuZ3JvdXAsbj10Lm5hbWUudGFnO3JldHVybiB2b2lkIDA9PT1lJiYoZT0iIiksdm9pZCAwPT09biYmKG49IiIpLCIiPT09ZT9uOmUrIi4iK259ZnVuY3Rpb24gQUp0KHQsZSl7aWYoZTx0LmhwYXJhbUNvbHVtbnMubGVuZ3RoKXJldHVybiBUSnQodC5ocGFyYW1Db2x1bW5zW2VdLmhwYXJhbUluZm8pO3JldHVybiBDSnQodC5tZXRyaWNDb2x1bW5zW2UtdC5ocGFyYW1Db2x1bW5zLmxlbmd0aF0ubWV0cmljSW5mbyl9ZnVuY3Rpb24ga0p0KHQpe3JldHVybiB0LmhwYXJhbUNvbHVtbnMubGVuZ3RofWZ1bmN0aW9uIExKdCh0KXtyZXR1cm4gdC5tZXRyaWNDb2x1bW5zLmxlbmd0aH1mdW5jdGlvbiBQSnQodCl7cmV0dXJuIGtKdCh0KStMSnQodCl9ZnVuY3Rpb24gTkp0KHQsZSl7cmV0dXJuIHRbZV19ZnVuY3Rpb24gSUp0KHQsZSl7cmV0dXJuIHQuZmluZCgodD0+Q2UuZXhwb3J0cy5pc0VxdWFsKHQubmFtZSxlKSkpfWZ1bmN0aW9uIFJKdCh0LGUsbil7cmV0dXJuIGUuaHBhcmFtc1t0LmhwYXJhbUNvbHVtbnNbbl0uaHBhcmFtSW5mby5uYW1lXX1mdW5jdGlvbiBPSnQodCxlLG4pe2NvbnN0IGk9SUp0KGUubWV0cmljVmFsdWVzLHQubWV0cmljQ29sdW1uc1tuXS5tZXRyaWNJbmZvLm5hbWUpO3JldHVybiB2b2lkIDA9PT1pP3ZvaWQgMDppLnZhbHVlfWZ1bmN0aW9uIHpKdCh0LGUsbil7cmV0dXJuIG48dC5ocGFyYW1Db2x1bW5zLmxlbmd0aD9SSnQodCxlLG4pOk9KdCh0LGUsbi10LmhwYXJhbUNvbHVtbnMubGVuZ3RoKX1mdW5jdGlvbiBESnQodCxlLG4pe3JldHVybiBHbChlLChlPT56SnQodCxlLG4pKSl9ZnVuY3Rpb24gQkp0KHQsZSxuKXtsZXQgaTtpZihuPGUuaHBhcmFtSW5mb3MubGVuZ3RoKWk9dC5ocGFyYW1Db2x1bW5zLmZpbmRJbmRleCgodD0+dC5ocGFyYW1JbmZvLm5hbWU9PT1lLmhwYXJhbUluZm9zW25dLm5hbWUpKTtlbHNle2NvbnN0IHI9ZS5tZXRyaWNJbmZvc1tuLWUuaHBhcmFtSW5mb3MubGVuZ3RoXS5uYW1lO2k9dC5ocGFyYW1Db2x1bW5zLmxlbmd0aCt0Lm1ldHJpY0NvbHVtbnMuZmluZEluZGV4KCh0PT50Lm1ldHJpY0luZm8ubmFtZT09PXIpKX1yZXR1cm4gY29uc29sZS5hc3NlcnQoLTEhPT1pKSxpfWZ1bmN0aW9uIEhKdCh0KXtyZXR1cm4gdC5ocGFyYW1JbmZvcy5sZW5ndGh9ZnVuY3Rpb24gRkp0KHQpe3JldHVybiB0Lm1ldHJpY0luZm9zLmxlbmd0aH1mdW5jdGlvbiBWSnQodCxlLG4pe3JldHVybiBHbChlLChlPT5XSnQodCxlLG4pKSl9ZnVuY3Rpb24gVUp0KHQsZSl7cmV0dXJuIHQuZmluZCgodD0+dC5uYW1lPT09ZSkpfWZ1bmN0aW9uIGpKdCh0LGUsbil7cmV0dXJuIGUuaHBhcmFtc1t0LmhwYXJhbUluZm9zW25dLm5hbWVdfWZ1bmN0aW9uIEdKdCh0LGUsbil7Y29uc3QgaT1JSnQoZS5tZXRyaWNWYWx1ZXMsdC5tZXRyaWNJbmZvc1tuXS5uYW1lKTtyZXR1cm4gdm9pZCAwPT09aT92b2lkIDA6aS52YWx1ZX1mdW5jdGlvbiBXSnQodCxlLG4pe3JldHVybiBuPHQuaHBhcmFtSW5mb3MubGVuZ3RoP2pKdCh0LGUsbik6R0p0KHQsZSxuLXQuaHBhcmFtSW5mb3MubGVuZ3RoKX1mdW5jdGlvbiBxSnQodCl7cmV0dXJuIENlLmV4cG9ydHMuaXNOdW1iZXIodCk/dC50b1ByZWNpc2lvbig1KTp2b2lkIDA9PT10PyIiOnQudG9TdHJpbmcoKX1mdW5jdGlvbiBZSnQodCxlKXtyZXR1cm4gdCp0K2UqZX1mdW5jdGlvbiBYSnQodCxlLG4saSl7cmV0dXJuIE1hdGguc3FydChZSnQodC1uLGUtaSkpfWZ1bmN0aW9uICRKdCh0LGUsbixpLHIsbyl7aWYodDxuJiZlPGkpcmV0dXJuIFhKdCh0LGUsbixpKTtpZihuPD10JiZ0PHImJmU8aSlyZXR1cm4gaS1lO2lmKHI8PXQmJmU8aSlyZXR1cm4gWEp0KHQsZSxyLGkpO2lmKHQ8biYmaTw9ZSYmZTxvKXJldHVybiBuLXQ7aWYobjw9dCYmdDxyJiZpPD1lJiZlPG8pcmV0dXJuIDA7aWYocjw9dCYmaTw9ZSYmZTxvKXJldHVybiB0LXI7aWYodDxuJiZvPD1lKXJldHVybiBYSnQodCxlLG4sbyk7aWYobjw9dCYmdDxyJiZvPD1lKXJldHVybiBlLW87aWYocjw9dCYmbzw9ZSlyZXR1cm4gWEp0KHQsZSxyLG8pO3Rocm93IlBvaW50ICh4LHkpIG11c3QgYmUgaW4gb25lIG9mIHRoZSByZWdpb25zIGRlZmluZWQgYWJvdmUuIn1mdW5jdGlvbiBLSnQodCxlKXtyZXR1cm4gdm9pZCAwPT09ZT8idHJhbnNsYXRlKCIrdCsiKSI6InRyYW5zbGF0ZSgiK3QrIiwiK2UrIikifWZ1bmN0aW9uIFpKdCh0LGUsbil7Y29uc3QgaT10LmdldChlLHQpO0FycmF5LmlzQXJyYXkoaSk/dC5zcGxpY2UuYXBwbHkodCxbZSwwLGkubGVuZ3RoXS5jb25jYXQobikpOnQuc2V0KGUsbil9ZnVuY3Rpb24gSkp0KHQpe2xldCBlPTA7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDsrK24pZT0zMSplK3QuY2hhckNvZGVBdChuKSY0Mjk0OTY3Mjk1O3JldHVybiBlK01hdGgucG93KDIsMzEpfUVKdC50ZW1wbGF0ZT14ZWAKICAgIDxzbG90IG5hbWU9ImNvbnRlbnQiPjwvc2xvdD4KCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgOmhvc3Qgc2xvdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIDpob3N0IDo6c2xvdHRlZCgqKSB7CiAgICAgICAgZmxleDogMCAwIGF1dG87CiAgICAgIH0KCiAgICAgIDpob3N0KFtvcmllbnRhdGlvbj0naG9yaXpvbnRhbCddKSBzbG90IHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgIH0KCiAgICAgIDpob3N0KFtvcmllbnRhdGlvbj0ndmVydGljYWwnXSkgc2xvdCB7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICB9CgogICAgICA6aG9zdCA6OnNsb3R0ZWQoKjpub3QoOmxhc3QtY2hpbGQpKSB7CiAgICAgICAgYm9yZGVyOiAwIHNvbGlkIHZhcigtLWRpdmlkZXItY29sb3IsICNjY2MpOwogICAgICB9CgogICAgICA6aG9zdChbb3JpZW50YXRpb249J3ZlcnRpY2FsJ10pIDo6c2xvdHRlZCgqOm5vdCg6bGFzdC1jaGlsZCkpIHsKICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiA1cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtvcmllbnRhdGlvbj0naG9yaXpvbnRhbCddKSA6OnNsb3R0ZWQoKjpub3QoOmxhc3QtY2hpbGQpKSB7CiAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiA1cHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOlN0cmluZyxyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sRUp0LnByb3RvdHlwZSwib3JpZW50YXRpb24iLHZvaWQgMCksRUp0PXQoW2koImhwYXJhbXMtc3BsaXQtbGF5b3V0IildLEVKdCk7dmFyIFFKdD1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxocGFyYW1OYW1lOlRKdCxtZXRyaWNOYW1lOkNKdCxzY2hlbWFDb2x1bW5OYW1lOkFKdCxudW1IUGFyYW1zOmtKdCxudW1NZXRyaWNzOkxKdCxudW1Db2x1bW5zOlBKdCxocGFyYW1WYWx1ZUJ5TmFtZTpOSnQsbWV0cmljVmFsdWVCeU5hbWU6SUp0LGhwYXJhbVZhbHVlQnlJbmRleDpSSnQsbWV0cmljVmFsdWVCeUluZGV4Ok9KdCxjb2x1bW5WYWx1ZUJ5SW5kZXg6ekp0LG51bWVyaWNDb2x1bW5FeHRlbnQ6REp0LGdldEFic29sdXRlQ29sdW1uSW5kZXg6Qkp0LHNjaGVtYVZpc2libGVDb2x1bW5OYW1lOmZ1bmN0aW9uIHRRdCh0LGUpe3JldHVybiBlPHQuaHBhcmFtSW5mb3MubGVuZ3RoP1RKdCh0LmhwYXJhbUluZm9zW2VdKTpDSnQodC5tZXRyaWNJbmZvc1tlLXQuaHBhcmFtSW5mb3MubGVuZ3RoXSl9LG51bVZpc2libGVIUGFyYW1zOkhKdCxudW1WaXNpYmxlTWV0cmljczpGSnQsbnVtVmlzaWJsZUNvbHVtbnM6ZnVuY3Rpb24gZVF0KHQpe3JldHVybiBISnQodCkrRkp0KHQpfSx2aXNpYmxlTnVtZXJpY0NvbHVtbkV4dGVudDpWSnQscHJldHR5UHJpbnRIUGFyYW1WYWx1ZUJ5TmFtZTpmdW5jdGlvbiBuUXQodCxlKXtyZXR1cm4gcUp0KE5KdCh0LGUpKX0scHJldHR5UHJpbnRNZXRyaWNWYWx1ZUJ5TmFtZTpmdW5jdGlvbiBpUXQodCxlKXtyZXR1cm4gcUp0KElKdCh0LGUpKX0sc2Vzc2lvbkdyb3VwV2l0aE5hbWU6VUp0LGhwYXJhbVZhbHVlQnlWaXNpYmxlSW5kZXg6akp0LG1ldHJpY1ZhbHVlQnlWaXNpYmxlSW5kZXg6R0p0LGNvbHVtblZhbHVlQnlWaXNpYmxlSW5kZXg6V0p0LHByZXR0eVByaW50OnFKdCxsMk5vcm1TcXVhcmVkOllKdCxldWNsaWRlYW5EaXN0OlhKdCxwb2ludFRvUmVjdGFuZ2xlRGlzdDokSnQsdHJhbnNsYXRlU3RyOktKdCxyb3RhdGVTdHI6ZnVuY3Rpb24gclF0KHQsZSxuKXtsZXQgaT0icm90YXRlKCIrdDtyZXR1cm4gdm9pZCAwIT09ZSYmdm9pZCAwIT09biYmKGk9aSsiLCIrZSsiLCIrbiksaSs9IikiLGl9LGlzTnVsbE9yVW5kZWZpbmVkOmZ1bmN0aW9uIG9RdCh0KXtyZXR1cm4gbnVsbD09dH0scXVhZFRyZWVWaXNpdFBvaW50c0luUmVjdDpmdW5jdGlvbiBhUXQodCxlLG4saSxyLG8pe3QudmlzaXQoKChhLHMsbCxjLHUpPT57aWYodm9pZCAwPT09YS5sZW5ndGgpe2Rve2NvbnN0IHM9dC54KCkoYS5kYXRhKSxsPXQueSgpKGEuZGF0YSk7ZTw9cyYmczxpJiZuPD1sJiZsPHImJm8oYS5kYXRhKX13aGlsZShhPWEubmV4dCk7cmV0dXJuITB9cmV0dXJuIHM+PWl8fGM8PWV8fGw+PXJ8fHU8PW59KSl9LHF1YWRUcmVlVmlzaXRQb2ludHNJbkRpc2s6ZnVuY3Rpb24gc1F0KHQsZSxuLGkscil7dC52aXNpdCgoKG8sYSxzLGwsYyk9PntpZih2b2lkIDA9PT1vLmxlbmd0aCl7ZG97Y29uc3QgYT10LngoKShvLmRhdGEpLHM9dC55KCkoby5kYXRhKSxsPVhKdChlLG4sYSxzKTtsPD1pJiZyKG8uZGF0YSxsKX13aGlsZShvPW8ubmV4dCk7cmV0dXJuITB9cmV0dXJuICRKdChlLG4sYSxzLGwsYyk+aX0pKX0sZmlsdGVyU2V0OmZ1bmN0aW9uIGxRdCh0LGUpe2NvbnN0IG49bmV3IFNldDtyZXR1cm4gdC5mb3JFYWNoKCh0PT57ZSh0KSYmbi5hZGQodCl9KSksbn0sc2V0QXJyYXlPYnNlcnZhYmx5OlpKdCxoYXNoT2ZTdHJpbmc6Skp0fSk7bGV0IGNRdD1jbGFzcyBleHRlbmRzKGNyKHdlKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuY29uZmlndXJhdGlvbj17c2NoZW1hOntocGFyYW1Db2x1bW5zOltdLG1ldHJpY0NvbHVtbnM6W119LGNvbHVtbnNWaXNpYmlsaXR5OltdLHZpc2libGVTY2hlbWE6e2hwYXJhbUluZm9zOltdLG1ldHJpY0luZm9zOltdfX0sdGhpcy5zZXNzaW9uR3JvdXBzPVtdLHRoaXMuZGF0YUxvYWRlZFdpdGhOb25FbXB0eUhwYXJhbXM9ITEsdGhpcy5kYXRhTG9hZGVkV2l0aEVtcHR5SHBhcmFtcz0hMSx0aGlzLl9zdGF0dXNlcz1be3ZhbHVlOiJTVEFUVVNfVU5LTk9XTiIsZGlzcGxheU5hbWU6IlVua25vd24iLGFsbG93ZWQ6ITB9LHt2YWx1ZToiU1RBVFVTX1NVQ0NFU1MiLGRpc3BsYXlOYW1lOiJTdWNjZXNzIixhbGxvd2VkOiEwfSx7dmFsdWU6IlNUQVRVU19GQUlMVVJFIixkaXNwbGF5TmFtZToiRmFpbHVyZSIsYWxsb3dlZDohMH0se3ZhbHVlOiJTVEFUVVNfUlVOTklORyIsZGlzcGxheU5hbWU6IlJ1bm5pbmciLGFsbG93ZWQ6ITB9XSx0aGlzLl9nZXRFeHBlcmltZW50UmVzb2x2ZWQ9bmV3IFByb21pc2UoKHQ9Pnt0aGlzLl9yZXNvbHZlR2V0RXhwZXJpbWVudD10fSkpLHRoaXMuX2xpc3RTZXNzaW9uR3JvdXBzQ2FuY2VsbGVyPW5ldyB4Tyx0aGlzLl9wYWdlU2l6ZUlucHV0PXt2YWx1ZToiMTAwIixpbnZhbGlkOiExfSx0aGlzLl9wYWdlTnVtYmVySW5wdXQ9e3ZhbHVlOiIxIixpbnZhbGlkOiExfSx0aGlzLl9wYWdlQ291bnRTdHI9Ij8iLHRoaXMuX2hwYXJhbU5hbWU9VEp0LHRoaXMuX21ldHJpY05hbWU9Q0p0LHRoaXMuX3ByZXR0eVByaW50PXFKdH1yZWxvYWQoKXt0aGlzLl9xdWVyeVNlcnZlcigpfV9jc3ZVcmwodCxlKXtyZXR1cm4gdGhpcy5fZG93bmxvYWREYXRhVXJsKHQsZSwiY3N2Iil9X2pzb25VcmwodCxlKXtyZXR1cm4gdGhpcy5fZG93bmxvYWREYXRhVXJsKHQsZSwianNvbiIpfV9sYXRleFVybCh0LGUpe3JldHVybiB0aGlzLl9kb3dubG9hZERhdGFVcmwodCxlLCJsYXRleCIpfV9kb3dubG9hZERhdGFVcmwodCxlLG4pe3JldHVybiB0aGlzLmJhY2tlbmQuZ2V0RG93bmxvYWRVcmwobix0LGUuY29sdW1uc1Zpc2liaWxpdHkpfV9jb21wdXRlRXhwZXJpbWVudEFuZFJlbGF0ZWRQcm9wcygpe2NvbnN0IHQ9UUp0O2lmKHQuaXNOdWxsT3JVbmRlZmluZWQodGhpcy5iYWNrZW5kKXx8dC5pc051bGxPclVuZGVmaW5lZCh0aGlzLmV4cGVyaW1lbnROYW1lKSlyZXR1cm47dGhpcy5iYWNrZW5kLmdldEV4cGVyaW1lbnQoe2V4cGVyaW1lbnROYW1lOnRoaXMuZXhwZXJpbWVudE5hbWV9KS50aGVuKCh0PT57Q2UuZXhwb3J0cy5pc0VxdWFsKHQsdGhpcy5fZXhwZXJpbWVudCl8fCh0aGlzLnNldCgiX2V4cGVyaW1lbnQiLHQpLHRoaXMuX2NvbXB1dGVIUGFyYW1zKCksdGhpcy5fY29tcHV0ZU1ldHJpY3MoKSx0aGlzLl9xdWVyeVNlcnZlcigpLHRoaXMuX3Jlc29sdmVHZXRFeHBlcmltZW50KCkpfSkpLmZpbmFsbHkoKCgpPT57dGhpcy5fY29tcHV0ZURhdGFGb3VuZCgpfSkpfV9jb21wdXRlRGF0YUZvdW5kKCl7Y29uc3QgdD1Cb29sZWFuKHRoaXMuX2V4cGVyaW1lbnQmJnRoaXMuX2V4cGVyaW1lbnQuaHBhcmFtSW5mb3MmJnRoaXMuX2V4cGVyaW1lbnQuaHBhcmFtSW5mb3MubGVuZ3RoPjAmJnRoaXMuX2V4cGVyaW1lbnQubWV0cmljSW5mb3MmJnRoaXMuX2V4cGVyaW1lbnQubWV0cmljSW5mb3MubGVuZ3RoPjApO3RoaXMuc2V0KCJkYXRhTG9hZGVkV2l0aE5vbkVtcHR5SHBhcmFtcyIsdCksdGhpcy5zZXQoImRhdGFMb2FkZWRXaXRoRW1wdHlIcGFyYW1zIiwhdCl9X2NvbXB1dGVIUGFyYW1zKCl7Y29uc3QgdD1bXTt0aGlzLl9leHBlcmltZW50LmhwYXJhbUluZm9zLmZvckVhY2goKChlLG4pPT57Y29uc3QgaT17aW5mbzplLGRpc3BsYXllZDpuPDUsZmlsdGVyOnt9fTtpLmluZm8uaGFzT3duUHJvcGVydHkoImRvbWFpbkRpc2NyZXRlIik/KGkuZmlsdGVyLmRvbWFpbkRpc2NyZXRlPVtdLGkuaW5mby5kb21haW5EaXNjcmV0ZS5mb3JFYWNoKCh0PT57aS5maWx0ZXIuZG9tYWluRGlzY3JldGUucHVzaCh7dmFsdWU6dCxjaGVja2VkOiEwfSl9KSkpOiJEQVRBX1RZUEVfQk9PTCI9PT1pLmluZm8udHlwZT9pLmZpbHRlci5kb21haW5EaXNjcmV0ZT1be3ZhbHVlOiExLGNoZWNrZWQ6ITB9LHt2YWx1ZTohMCxjaGVja2VkOiEwfV06IkRBVEFfVFlQRV9GTE9BVDY0Ij09PWkuaW5mby50eXBlP2kuZmlsdGVyLmludGVydmFsPXttaW46e3ZhbHVlOiIiLGludmFsaWQ6ITF9LG1heDp7dmFsdWU6IiIsaW52YWxpZDohMX19OiJEQVRBX1RZUEVfU1RSSU5HIj09PWkuaW5mby50eXBlP2kuZmlsdGVyLnJlZ2V4cD0iIjpjb25zb2xlLndhcm4oInVua25vd24gaHBhcmFtLmluZm8udHlwZTogJXMiLGkuaW5mby50eXBlKSx0LnB1c2goaSl9KSksdGhpcy5zZXQoIl9ocGFyYW1zIix0KX1fY29tcHV0ZU1ldHJpY3MoKXtjb25zdCB0PVtdO3RoaXMuX2V4cGVyaW1lbnQubWV0cmljSW5mb3MuZm9yRWFjaCgoKGUsbik9Pnt0LnB1c2goe2luZm86ZSxmaWx0ZXI6e2ludGVydmFsOnttaW46e3ZhbHVlOiIiLGludmFsaWQ6ITF9LG1heDp7dmFsdWU6IiIsaW52YWxpZDohMX19fSxkaXNwbGF5ZWQ6bjw1fSl9KSksdGhpcy5zZXQoIl9tZXRyaWNzIix0KX1fY29tcHV0ZVNjaGVtYSgpe3JldHVybiB0aGlzLl9ocGFyYW1zJiZ0aGlzLl9tZXRyaWNzP3tocGFyYW1Db2x1bW5zOnRoaXMuX2hwYXJhbXMubWFwKCh0PT4oe2hwYXJhbUluZm86dC5pbmZvfSkpKSxtZXRyaWNDb2x1bW5zOnRoaXMuX21ldHJpY3MubWFwKCh0PT4oe21ldHJpY0luZm86dC5pbmZvfSkpKX06e2hwYXJhbUNvbHVtbnM6W10sbWV0cmljQ29sdW1uczpbXX19X3VwZGF0ZUNvbmZpZ3VyYXRpb24oKXt0aGlzLmRlYm91bmNlKCJfdXBkYXRlQ29uZmlndXJhdGlvbiIsKCgpPT57dGhpcy5jb25maWd1cmF0aW9uPXtzY2hlbWE6dGhpcy5fY29tcHV0ZVNjaGVtYSgpLGNvbHVtbnNWaXNpYmlsaXR5OnRoaXMuX2NvbXB1dGVDb2x1bW5zVmlzaWJpbGl0eSgpLHZpc2libGVTY2hlbWE6dGhpcy5fY29tcHV0ZVZpc2libGVTY2hlbWEoKX19KSl9X2NvbXB1dGVDb2x1bW5zVmlzaWJpbGl0eSgpe3JldHVybiB0aGlzLl9ocGFyYW1zJiZ0aGlzLl9tZXRyaWNzP3RoaXMuX2hwYXJhbXMubWFwKCh0PT50LmRpc3BsYXllZCkpLmNvbmNhdCh0aGlzLl9tZXRyaWNzLm1hcCgodD0+dC5kaXNwbGF5ZWQpKSk6W119X2NvbXB1dGVWaXNpYmxlU2NoZW1hKCl7aWYoIXRoaXMuX2hwYXJhbXN8fCF0aGlzLl9tZXRyaWNzKXJldHVybntocGFyYW1JbmZvczpbXSxtZXRyaWNJbmZvczpbXX07cmV0dXJue2hwYXJhbUluZm9zOnRoaXMuX2hwYXJhbXMuZmlsdGVyKCh0PT50LmRpc3BsYXllZCkpLm1hcCgodD0+dC5pbmZvKSksbWV0cmljSW5mb3M6dGhpcy5fbWV0cmljcy5maWx0ZXIoKHQ9PnQuZGlzcGxheWVkKSkubWFwKCh0PT50LmluZm8pKX19X3F1ZXJ5U2VydmVyKCl7dGhpcy5kZWJvdW5jZSgicXVlcnlTZXJ2ZXIiLCgoKT0+dGhpcy5fcXVlcnlTZXJ2ZXJOb0RlYm91bmNlKCkpLDEwMCl9X3F1ZXJ5U2VydmVyTm9EZWJvdW5jZSgpe2lmKHRoaXMuX2hwYXJhbXMmJnRoaXMuX21ldHJpY3MpcmV0dXJuIHRoaXMuX3NlbmRMaXN0U2Vzc2lvbkdyb3Vwc1JlcXVlc3QoKS50aGVuKHRoaXMuX2xpc3RTZXNzaW9uR3JvdXBzQ2FuY2VsbGVyLmNhbmNlbGxhYmxlKCgoe3ZhbHVlOnQsY2FuY2VsbGVkOmV9KT0+e2lmKCFlKXtpZih0LnRvdGFsU2l6ZT49MCl7dGhpcy5zZXQoIl9wYWdlQ291bnRTdHIiLFN0cmluZyhNYXRoLmNlaWwodC50b3RhbFNpemUvK3RoaXMuX3BhZ2VTaXplSW5wdXQudmFsdWUpKSksdGhpcy5zZXQoIl90b3RhbFNlc3Npb25Hcm91cHNDb3VudFN0ciIsdC50b3RhbFNpemUpfWVsc2UgdGhpcy5zZXQoIl9wYWdlQ291bnRTdHIiLCI/IiksdGhpcy5zZXQoIl90b3RhbFNlc3Npb25Hcm91cHNDb3VudFN0ciIsIlVua25vd24iKTtaSnQodGhpcywic2Vzc2lvbkdyb3VwcyIsdC5zZXNzaW9uR3JvdXBzKX19KSkpfV9zZW5kTGlzdFNlc3Npb25Hcm91cHNSZXF1ZXN0KCl7Y29uc3QgdD10aGlzLl9idWlsZExpc3RTZXNzaW9uR3JvdXBzUmVxdWVzdCgpO2lmKG51bGwhPT10KXJldHVybiB0aGlzLnNldCgiX3Nlc3Npb25Hcm91cHNSZXF1ZXN0Iix0KSx0aGlzLl9saXN0U2Vzc2lvbkdyb3Vwc0NhbmNlbGxlci5jYW5jZWxBbGwoKSx0aGlzLmJhY2tlbmQubGlzdFNlc3Npb25Hcm91cHModCl9X2J1aWxkTGlzdFNlc3Npb25Hcm91cHNSZXF1ZXN0KCl7Y29uc3QgdD10aGlzO2xldCBlPSEwO2Z1bmN0aW9uIG4obil7Y29uc3QgaT10LmdldChuKyIubWluLnZhbHVlIik7Y29uc29sZS5hc3NlcnQodm9pZCAwIT09aSk7Y29uc3Qgcj0iIj09PWk/Ii1JbmZpbml0eSI6K2k7dC5zZXQobisiLm1pbi5pbnZhbGlkIixpc05hTihyKSksZT1lJiYhaXNOYU4ocik7Y29uc3Qgbz10LmdldChuKyIubWF4LnZhbHVlIik7Y29uc29sZS5hc3NlcnQodm9pZCAwIT09byk7Y29uc3QgYT0iIj09PW8/IkluZmluaXR5IjorbztyZXR1cm4gdC5zZXQobisiLm1heC5pbnZhbGlkIixpc05hTihhKSksZT1lJiYhaXNOYU4oYSksaXNOYU4ocil8fGlzTmFOKGEpP251bGw6e21pblZhbHVlOnIsbWF4VmFsdWU6YX19ZnVuY3Rpb24gaShuKXtjb25zdCBpPXQuZ2V0KG4rIi52YWx1ZSIpO2NvbnNvbGUuYXNzZXJ0KHZvaWQgMCE9PWkpO2NvbnN0IHI9K2ksbz1OdW1iZXIuaXNJbnRlZ2VyKHIpJiZyPjA7cmV0dXJuIHQuc2V0KG4rIi5pbnZhbGlkIiwhbyksZT1lJiZvLG8/cjpudWxsfWNvbnN0IHI9dGhpcy5fc3RhdHVzZXMuZmlsdGVyKCh0PT50LmFsbG93ZWQpKS5tYXAoKHQ9PnQudmFsdWUpKTtsZXQgbz1bXTtpZih0aGlzLl9ocGFyYW1zLmZvckVhY2goKCh0LGUpPT57bGV0IGk9e2hwYXJhbTp0LmluZm8ubmFtZX07aWYodC5maWx0ZXIuZG9tYWluRGlzY3JldGUpaS5maWx0ZXJEaXNjcmV0ZT1bXSx0LmZpbHRlci5kb21haW5EaXNjcmV0ZS5mb3JFYWNoKCh0PT57dC5jaGVja2VkJiZpLmZpbHRlckRpc2NyZXRlLnB1c2godC52YWx1ZSl9KSk7ZWxzZSBpZih0LmZpbHRlci5pbnRlcnZhbClpLmZpbHRlckludGVydmFsPW4oIl9ocGFyYW1zLiIrZSsiLmZpbHRlci5pbnRlcnZhbCIpO2Vsc2V7aWYoIXQuZmlsdGVyLnJlZ2V4cClyZXR1cm4gY29uc29sZS5lcnJvcigiaHBhcmFtLmZpbHRlciB3aXRoIG5vIGRvbWFpbkRpc2NyZXRlLCBpbnRlcnZhbCBvciByZWdleHAgcHJvcGVydGllcyBzZXQ6ICVzIix0KSxudWxsO2kuZmlsdGVyUmVnZXhwPXQuZmlsdGVyLnJlZ2V4cH1vLnB1c2goaSl9KSksdGhpcy5fbWV0cmljcy5mb3JFYWNoKCgodCxlKT0+e2xldCBpPXttZXRyaWM6dC5pbmZvLm5hbWUsZmlsdGVySW50ZXJ2YWw6bigiX21ldHJpY3MuIitlKyIuZmlsdGVyLmludGVydmFsIil9O28ucHVzaChpKX0pKSx2b2lkIDAhPT10aGlzLl9zb3J0QnlJbmRleCYmdm9pZCAwIT09dGhpcy5fc29ydERpcmVjdGlvbil7aWYoISh0aGlzLl9zb3J0QnlJbmRleCBpbiBvKSlyZXR1cm4gY29uc29sZS5lcnJvcigiTm8gY29sdW1uIGluIGNvbFBhcmFtcyB3aXRoIGluZGV4IHNvcnRCeUluZGV4OiAlcyIsdGhpcy5fc29ydEJ5SW5kZXgpLG51bGw7b1t0aGlzLl9zb3J0QnlJbmRleF0ub3JkZXI9MD09PXRoaXMuX3NvcnREaXJlY3Rpb24/Ik9SREVSX0FTQyI6Ik9SREVSX0RFU0MifWNvbnN0IGE9aSgiX3BhZ2VOdW1iZXJJbnB1dCIpLHM9aSgiX3BhZ2VTaXplSW5wdXQiKTtpZighZSlyZXR1cm4gbnVsbDtyZXR1cm57ZXhwZXJpbWVudE5hbWU6dGhpcy5leHBlcmltZW50TmFtZSxhbGxvd2VkU3RhdHVzZXM6cixjb2xQYXJhbXM6byxzdGFydEluZGV4OnMqKGEtMSksc2xpY2VTaXplOnN9fV9tZXRyaWNTb3J0QnlJbmRleCh0KXtyZXR1cm4gdCt0aGlzLl9ocGFyYW1zLmxlbmd0aH19O2NRdC50ZW1wbGF0ZT14ZWAKICAgIDxocGFyYW1zLXNwbGl0LWxheW91dCBvcmllbnRhdGlvbj0idmVydGljYWwiPgogICAgICA8ZGl2IHNsb3Q9ImNvbnRlbnQiIGNsYXNzPSJzZWN0aW9uIGh5cGVycGFyYW1ldGVycyI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SHlwZXJwYXJhbWV0ZXJzPC9kaXY+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0ie3tfaHBhcmFtc319IiBhcz0iaHBhcmFtIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhwYXJhbSI+CiAgICAgICAgICAgIDxwYXBlci1jaGVja2JveAogICAgICAgICAgICAgIGNoZWNrZWQ9Int7aHBhcmFtLmRpc3BsYXllZH19IgogICAgICAgICAgICAgIGNsYXNzPSJocGFyYW0tY2hlY2tib3giCiAgICAgICAgICAgID4KICAgICAgICAgICAgICBbW19ocGFyYW1OYW1lKGhwYXJhbS5pbmZvKV1dCiAgICAgICAgICAgIDwvcGFwZXItY2hlY2tib3g+CiAgICAgICAgICAgIDwhLS0gUHJlY2lzZWx5IG9uZSBvZiB0aGUgdGVtcGxhdGVzIGJlbG93IHdpbGwgYmUgc3RhbXBlZC4tLT4KICAgICAgICAgICAgPCEtLSAxLiBBIGxpc3Qgb2YgY2hlY2tib3hlcyAtLT4KICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2hwYXJhbS5maWx0ZXIuZG9tYWluRGlzY3JldGVdXSI+CiAgICAgICAgICAgICAgPHRlbXBsYXRlCiAgICAgICAgICAgICAgICBpcz0iZG9tLXJlcGVhdCIKICAgICAgICAgICAgICAgIGl0ZW1zPSJbW2hwYXJhbS5maWx0ZXIuZG9tYWluRGlzY3JldGVdXSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8cGFwZXItY2hlY2tib3gKICAgICAgICAgICAgICAgICAgY2hlY2tlZD0ie3tpdGVtLmNoZWNrZWR9fSIKICAgICAgICAgICAgICAgICAgY2xhc3M9ImRpc2NyZXRlLXZhbHVlLWNoZWNrYm94IgogICAgICAgICAgICAgICAgICBvbi1jaGFuZ2U9Il9xdWVyeVNlcnZlciIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgW1tfcHJldHR5UHJpbnQoaXRlbS52YWx1ZSldXQogICAgICAgICAgICAgICAgPC9wYXBlci1jaGVja2JveD4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8IS0tIDIuIEEgbnVtZXJpYyBpbnRlcnZhbCAtLT4KICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2hwYXJhbS5maWx0ZXIuaW50ZXJ2YWxdXSI+CiAgICAgICAgICAgICAgPHBhcGVyLWlucHV0CiAgICAgICAgICAgICAgICBsYWJlbD0iTWluIgogICAgICAgICAgICAgICAgdmFsdWU9Int7aHBhcmFtLmZpbHRlci5pbnRlcnZhbC5taW4udmFsdWV9fSIKICAgICAgICAgICAgICAgIGFsbG93ZWRfcGF0dGVybj0iWzAtOS5lXFwtXSIKICAgICAgICAgICAgICAgIG9uLXZhbHVlLWNoYW5nZWQ9Il9xdWVyeVNlcnZlciIKICAgICAgICAgICAgICAgIGVycm9yLW1lc3NhZ2U9IkludmFsaWQgaW5wdXQiCiAgICAgICAgICAgICAgICBpbnZhbGlkPSJbW2hwYXJhbS5maWx0ZXIuaW50ZXJ2YWwubWluLmludmFsaWRdXSIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSItaW5maW5pdHkiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvcGFwZXItaW5wdXQ+CiAgICAgICAgICAgICAgPHBhcGVyLWlucHV0CiAgICAgICAgICAgICAgICBsYWJlbD0iTWF4IgogICAgICAgICAgICAgICAgdmFsdWU9Int7aHBhcmFtLmZpbHRlci5pbnRlcnZhbC5tYXgudmFsdWV9fSIKICAgICAgICAgICAgICAgIGFsbG93ZWRfcGF0dGVybj0iWzAtOS5lXFwtXSIKICAgICAgICAgICAgICAgIG9uLXZhbHVlLWNoYW5nZWQ9Il9xdWVyeVNlcnZlciIKICAgICAgICAgICAgICAgIGVycm9yLW1lc3NhZ2U9IkludmFsaWQgaW5wdXQiCiAgICAgICAgICAgICAgICBpbnZhbGlkPSJbW2hwYXJhbS5maWx0ZXIuaW50ZXJ2YWwubWF4LmludmFsaWRdXSIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSIraW5maW5pdHkiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvcGFwZXItaW5wdXQ+CiAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwhLS0gMy4gQSByZWdleHAgLS0+CiAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tocGFyYW0uZmlsdGVyLnJlZ2V4cF1dIj4KICAgICAgICAgICAgICA8cGFwZXItaW5wdXQKICAgICAgICAgICAgICAgIGxhYmVsPSJSZWd1bGFyIGV4cHJlc3Npb24iCiAgICAgICAgICAgICAgICB2YWx1ZT0ie3tocGFyYW0uZmlsdGVyLnJlZ2V4cH19IgogICAgICAgICAgICAgICAgb24tdmFsdWUtY2hhbmdlZD0iX3F1ZXJ5U2VydmVyIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8L3BhcGVyLWlucHV0PgogICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgc2xvdD0iY29udGVudCIgY2xhc3M9InNlY3Rpb24gbWV0cmljcyI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TWV0cmljczwvZGl2PgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9Int7X21ldHJpY3N9fSIgYXM9Im1ldHJpYyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMiPgogICAgICAgICAgICA8IS0tIFRPRE8oZXJleik6IE1ha2UgaXQgZWFzaWVyIHRvIGhhbmRsZSBhIGxhcmdlIG51bWJlciBvZgogICAgICAgICAgICAgICAgICBtZXRyaWNzOgogICAgICAgICAgICAgICAgICAxLiBBZGQgYW4gJ2lzb2xhdG9yJyByYWRpby1idXR0b24gdG8gc2VsZWN0IGp1c3Qgb25lCiAgICAgICAgICAgICAgICAgIG1ldHJpYyBhbmQKICAgICAgICAgICAgICAgICAgaGlkZSBhbGwgdGhlIHJlc3QKICAgICAgICAgICAgICAgICAgMi4gQWRkIGEgJ3RvZ2dsZS1hbGwnIGJ1dHRvbiB0aGF0IHdpbGwgaGlkZS91bmhpZGUKICAgICAgICAgICAgICAgICAgICBhbGwgdGhlCiAgICAgICAgICAgICAgICAgIG1ldHJpY3MuCiAgICAgICAgICAgICAgICAgIFVzZSBzaW1pbGFyIGxvZ2ljL2FwcGVhcmFuY2UgdG8gdGhlIHJ1bi1zZWxlY3RvciBvZgogICAgICAgICAgICAgICAgICBzY2FsYXJzLi0tPgogICAgICAgICAgICA8cGFwZXItY2hlY2tib3gKICAgICAgICAgICAgICBjaGVja2VkPSJ7e21ldHJpYy5kaXNwbGF5ZWR9fSIKICAgICAgICAgICAgICBjbGFzcz0ibWV0cmljLWNoZWNrYm94IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgW1tfbWV0cmljTmFtZShtZXRyaWMuaW5mbyldXQogICAgICAgICAgICA8L3BhcGVyLWNoZWNrYm94PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmxpbmUtZWxlbWVudCI+CiAgICAgICAgICAgICAgPHBhcGVyLWlucHV0CiAgICAgICAgICAgICAgICBsYWJlbD0iTWluIgogICAgICAgICAgICAgICAgdmFsdWU9Int7bWV0cmljLmZpbHRlci5pbnRlcnZhbC5taW4udmFsdWV9fSIKICAgICAgICAgICAgICAgIGFsbG93ZWQtcGF0dGVybj0iWzAtOS5lXFwtXSIKICAgICAgICAgICAgICAgIG9uLXZhbHVlLWNoYW5nZWQ9Il9xdWVyeVNlcnZlciIKICAgICAgICAgICAgICAgIGVycm9yLW1lc3NhZ2U9IkludmFsaWQgaW5wdXQiCiAgICAgICAgICAgICAgICBpbnZhbGlkPSJ7e21ldHJpYy5maWx0ZXIuaW50ZXJ2YWwubWluLmludmFsaWR9fSIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSItaW5maW5pdHkiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvcGFwZXItaW5wdXQ+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmxpbmUtZWxlbWVudCI+CiAgICAgICAgICAgICAgPHBhcGVyLWlucHV0CiAgICAgICAgICAgICAgICBsYWJlbD0iTWF4IgogICAgICAgICAgICAgICAgYWxsb3dlZC1wYXR0ZXJuPSJbMC05LmVcXC1dIgogICAgICAgICAgICAgICAgdmFsdWU9Int7bWV0cmljLmZpbHRlci5pbnRlcnZhbC5tYXgudmFsdWV9fSIKICAgICAgICAgICAgICAgIG9uLXZhbHVlLWNoYW5nZWQ9Il9xdWVyeVNlcnZlciIKICAgICAgICAgICAgICAgIGVycm9yLW1lc3NhZ2U9IkludmFsaWQgaW5wdXQiCiAgICAgICAgICAgICAgICBpbnZhbGlkPSJ7e21ldHJpYy5maWx0ZXIuaW50ZXJ2YWwubWF4LmludmFsaWR9fSIKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSIraW5maW5pdHkiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvcGFwZXItaW5wdXQ+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgc2xvdD0iY29udGVudCIgY2xhc3M9InNlY3Rpb24gc3RhdHVzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TdGF0dXM8L2Rpdj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19zdGF0dXNlc11dIiBhcz0ic3RhdHVzIj4KICAgICAgICAgIDxwYXBlci1jaGVja2JveCBjaGVja2VkPSJ7e3N0YXR1cy5hbGxvd2VkfX0iIG9uLWNoYW5nZT0iX3F1ZXJ5U2VydmVyIj4KICAgICAgICAgICAgW1tzdGF0dXMuZGlzcGxheU5hbWVdXQogICAgICAgICAgPC9wYXBlci1jaGVja2JveD4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBzbG90PSJjb250ZW50IiBjbGFzcz0ic2VjdGlvbiBzb3J0aW5nIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Tb3J0aW5nPC9kaXY+CiAgICAgICAgPHBhcGVyLWRyb3Bkb3duLW1lbnUKICAgICAgICAgIGxhYmVsPSJTb3J0IGJ5IgogICAgICAgICAgb24tc2VsZWN0ZWQtaXRlbS1jaGFuZ2VkPSJfcXVlcnlTZXJ2ZXIiCiAgICAgICAgICBob3Jpem9udGFsLWFsaWduPSJsZWZ0IgogICAgICAgID4KICAgICAgICAgIDxwYXBlci1saXN0Ym94CiAgICAgICAgICAgIGNsYXNzPSJkcm9wZG93bi1jb250ZW50IgogICAgICAgICAgICBzbG90PSJkcm9wZG93bi1jb250ZW50IgogICAgICAgICAgICBzZWxlY3RlZD0ie3tfc29ydEJ5SW5kZXh9fSIKICAgICAgICAgICAgb24tc2VsZWN0ZWQtaXRlbS1jaGFuZ2VkPSJfcXVlcnlTZXJ2ZXIiCiAgICAgICAgICA+CiAgICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX2hwYXJhbXNdXSIgYXM9ImhwYXJhbSI+CiAgICAgICAgICAgICAgPHBhcGVyLWl0ZW0+IFtbX2hwYXJhbU5hbWUoaHBhcmFtLmluZm8pXV0gPC9wYXBlci1pdGVtPgogICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19tZXRyaWNzXV0iIGFzPSJtZXRyaWMiPgogICAgICAgICAgICAgIDxwYXBlci1pdGVtPiBbW19tZXRyaWNOYW1lKG1ldHJpYy5pbmZvKV1dIDwvcGFwZXItaXRlbT4KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgICAgICA8L3BhcGVyLWRyb3Bkb3duLW1lbnU+CiAgICAgICAgPHBhcGVyLWRyb3Bkb3duLW1lbnUKICAgICAgICAgIGxhYmVsPSJEaXJlY3Rpb24iCiAgICAgICAgICBvbi1zZWxlY3RlZC1pdGVtLWNoYW5nZWQ9Il9xdWVyeVNlcnZlciIKICAgICAgICAgIGhvcml6b250YWwtYWxpZ249ImxlZnQiCiAgICAgICAgPgogICAgICAgICAgPHBhcGVyLWxpc3Rib3gKICAgICAgICAgICAgY2xhc3M9ImRyb3Bkb3duLWNvbnRlbnQiCiAgICAgICAgICAgIHNsb3Q9ImRyb3Bkb3duLWNvbnRlbnQiCiAgICAgICAgICAgIHNlbGVjdGVkPSJ7e19zb3J0RGlyZWN0aW9ufX0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxwYXBlci1pdGVtPkFzY2VuZGluZzwvcGFwZXItaXRlbT4KICAgICAgICAgICAgPHBhcGVyLWl0ZW0+RGVzY2VuZGluZzwvcGFwZXItaXRlbT4KICAgICAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgICAgICA8L3BhcGVyLWRyb3Bkb3duLW1lbnU+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IHNsb3Q9ImNvbnRlbnQiIGNsYXNzPSJzZWN0aW9uIHBhZ2luZyI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UGFnaW5nPC9kaXY+CiAgICAgICAgPGRpdj4KICAgICAgICAgIE51bWJlciBvZiBtYXRjaGluZyBzZXNzaW9uIGdyb3VwczogW1tfdG90YWxTZXNzaW9uR3JvdXBzQ291bnRTdHJdXQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImlubGluZS1lbGVtZW50IHBhZ2UtbnVtYmVyLWlucHV0Ij4KICAgICAgICAgIDxwYXBlci1pbnB1dAogICAgICAgICAgICBsYWJlbD0iUGFnZSAjIgogICAgICAgICAgICB2YWx1ZT0ie3tfcGFnZU51bWJlcklucHV0LnZhbHVlfX0iCiAgICAgICAgICAgIGFsbG93ZWQtcGF0dGVybj0iWzAtOV0iCiAgICAgICAgICAgIGVycm9yLW1lc3NhZ2U9IkludmFsaWQgaW5wdXQiCiAgICAgICAgICAgIGludmFsaWQ9IltbX3BhZ2VOdW1iZXJJbnB1dC5pbnZhbGlkXV0iCiAgICAgICAgICAgIG9uLXZhbHVlLWNoYW5nZWQ9Il9xdWVyeVNlcnZlciIKICAgICAgICAgID4KICAgICAgICAgICAgPGRpdiBzbG90PSJzdWZmaXgiIGNsYXNzPSJwYWdlLXN1ZmZpeCI+LyBbW19wYWdlQ291bnRTdHJdXTwvZGl2PgogICAgICAgICAgPC9wYXBlci1pbnB1dD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJpbmxpbmUtZWxlbWVudCBwYWdlLXNpemUtaW5wdXQiPgogICAgICAgICAgPHBhcGVyLWlucHV0CiAgICAgICAgICAgIGxhYmVsPSJNYXggIyBvZiBzZXNzaW9uIGdyb3VwcyBwZXIgcGFnZToiCiAgICAgICAgICAgIHZhbHVlPSJ7e19wYWdlU2l6ZUlucHV0LnZhbHVlfX0iCiAgICAgICAgICAgIGFsbG93ZWQtcGF0dGVybj0iWzAtOV0iCiAgICAgICAgICAgIGVycm9yLW1lc3NhZ2U9IkludmFsaWQgaW5wdXQiCiAgICAgICAgICAgIGludmFsaWQ9IltbX3BhZ2VTaXplSW5wdXQuaW52YWxpZF1dIgogICAgICAgICAgICBvbi12YWx1ZS1jaGFuZ2VkPSJfcXVlcnlTZXJ2ZXIiCiAgICAgICAgICA+CiAgICAgICAgICA8L3BhcGVyLWlucHV0PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBzbG90PSJjb250ZW50IiBjbGFzcz0ic2VjdGlvbiBkb3dubG9hZCI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19zZXNzaW9uR3JvdXBzUmVxdWVzdF1dIj4KICAgICAgICAgIERvd25sb2FkIGRhdGEgYXMKICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICA8YQogICAgICAgICAgICAgIGlkPSJjc3ZMaW5rIgogICAgICAgICAgICAgIGRvd25sb2FkPSJocGFyYW1zX3RhYmxlLmNzdiIKICAgICAgICAgICAgICBocmVmPSJbW19jc3ZVcmwoX3Nlc3Npb25Hcm91cHNSZXF1ZXN0LCBjb25maWd1cmF0aW9uKV1dIgogICAgICAgICAgICAgID5DU1Y8L2EKICAgICAgICAgICAgPgogICAgICAgICAgICA8YQogICAgICAgICAgICAgIGlkPSJqc29uTGluayIKICAgICAgICAgICAgICBkb3dubG9hZD0iaHBhcmFtc190YWJsZS5qc29uIgogICAgICAgICAgICAgIGhyZWY9IltbX2pzb25VcmwoX3Nlc3Npb25Hcm91cHNSZXF1ZXN0LCBjb25maWd1cmF0aW9uKV1dIgogICAgICAgICAgICAgID5KU09OPC9hCiAgICAgICAgICAgID4KICAgICAgICAgICAgPGEKICAgICAgICAgICAgICBpZD0ibGF0ZXhMaW5rIgogICAgICAgICAgICAgIGRvd25sb2FkPSJocGFyYW1zX3RhYmxlLnRleCIKICAgICAgICAgICAgICBocmVmPSJbW19sYXRleFVybChfc2Vzc2lvbkdyb3Vwc1JlcXVlc3QsIGNvbmZpZ3VyYXRpb24pXV0iCiAgICAgICAgICAgICAgPkxhVGVYPC9hCiAgICAgICAgICAgID4KICAgICAgICAgIDwvc3Bhbj4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvaHBhcmFtcy1zcGxpdC1sYXlvdXQ+CiAgICA8c3R5bGU+CiAgICAgIC5zZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICB9CiAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA3cHg7CiAgICAgIH0KICAgICAgLmRpc2NyZXRlLXZhbHVlLWNoZWNrYm94LAogICAgICAubWV0cmljLWNoZWNrYm94LAogICAgICAuaHBhcmFtLWNoZWNrYm94IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICAuZGlzY3JldGUtdmFsdWUtY2hlY2tib3ggewogICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4OwogICAgICB9CiAgICAgIC5ocGFyYW0sCiAgICAgIC5tZXRyaWMgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICAgIC5pbmxpbmUtZWxlbWVudCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHdpZHRoOiA0MCU7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7CiAgICAgIH0KICAgICAgLnBhZ2UtbnVtYmVyLWlucHV0IHsKICAgICAgICB3aWR0aDogMjAlOwogICAgICB9CiAgICAgIC5wYWdlLXNpemUtaW5wdXQgewogICAgICAgIHdpZHRoOiA2MCU7CiAgICAgIH0KICAgICAgdmFhZGluLXNwbGl0LWxheW91dCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CiAgICAgIHBhcGVyLWxpc3Rib3ggewogICAgICAgIG1heC1oZWlnaHQ6IDE1ZW07CiAgICAgIH0KICAgICAgLnBhZ2Utc3VmZml4IHsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sY1F0LnByb3RvdHlwZSwiZXhwZXJpbWVudE5hbWUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGNRdC5wcm90b3R5cGUsImNvbmZpZ3VyYXRpb24iLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheSxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sY1F0LnByb3RvdHlwZSwic2Vzc2lvbkdyb3VwcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxjUXQucHJvdG90eXBlLCJkYXRhTG9hZGVkV2l0aE5vbkVtcHR5SHBhcmFtcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4sbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxjUXQucHJvdG90eXBlLCJkYXRhTG9hZGVkV2l0aEVtcHR5SHBhcmFtcyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxjUXQucHJvdG90eXBlLCJfZXhwZXJpbWVudCIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sY1F0LnByb3RvdHlwZSwiX2hwYXJhbXMiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLGNRdC5wcm90b3R5cGUsIl9tZXRyaWNzIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sY1F0LnByb3RvdHlwZSwiX3N0YXR1c2VzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGNRdC5wcm90b3R5cGUsIl9nZXRFeHBlcmltZW50UmVzb2x2ZWQiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSxjUXQucHJvdG90eXBlLCJfcmVzb2x2ZUdldEV4cGVyaW1lbnQiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sY1F0LnByb3RvdHlwZSwiX2xpc3RTZXNzaW9uR3JvdXBzQ2FuY2VsbGVyIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLGNRdC5wcm90b3R5cGUsIl9zb3J0QnlJbmRleCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxjUXQucHJvdG90eXBlLCJfc29ydERpcmVjdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxjUXQucHJvdG90eXBlLCJfcGFnZVNpemVJbnB1dCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxjUXQucHJvdG90eXBlLCJfcGFnZU51bWJlcklucHV0Iix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGNRdC5wcm90b3R5cGUsIl9wYWdlQ291bnRTdHIiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sY1F0LnByb3RvdHlwZSwiX3RvdGFsU2Vzc2lvbkdyb3Vwc0NvdW50U3RyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGNRdC5wcm90b3R5cGUsIl9zZXNzaW9uR3JvdXBzUmVxdWVzdCIsdm9pZCAwKSx0KFthKCJiYWNrZW5kIiwiZXhwZXJpbWVudE5hbWUiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGNRdC5wcm90b3R5cGUsIl9jb21wdXRlRXhwZXJpbWVudEFuZFJlbGF0ZWRQcm9wcyIsbnVsbCksdChbYSgiX2hwYXJhbXMuKiIsIl9tZXRyaWNzLioiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGNRdC5wcm90b3R5cGUsIl91cGRhdGVDb25maWd1cmF0aW9uIixudWxsKSxjUXQ9dChbaSgidGYtaHBhcmFtcy1xdWVyeS1wYW5lIildLGNRdCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICAgKiBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgICogVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICAgKiBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICAgKiBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgICogc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAgKi8KY29uc3QgdVF0PSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZudWxsIT13aW5kb3cuY3VzdG9tRWxlbWVudHMmJnZvaWQgMCE9PXdpbmRvdy5jdXN0b21FbGVtZW50cy5wb2x5ZmlsbFdyYXBGbHVzaENhbGxiYWNrLGhRdD0odCxlLG49bnVsbCk9Pntmb3IoO2UhPT1uOyl7Y29uc3Qgbj1lLm5leHRTaWJsaW5nO3QucmVtb3ZlQ2hpbGQoZSksZT1ufX0sZFF0PWB7e2xpdC0ke1N0cmluZyhNYXRoLnJhbmRvbSgpKS5zbGljZSgyKX19fWAscFF0PWBceDNjIS0tJHtkUXR9LS1ceDNlYCxmUXQ9bmV3IFJlZ0V4cChgJHtkUXR9fCR7cFF0fWApLG1RdD0iJGxpdCQiO2NsYXNzIGdRdHtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMucGFydHM9W10sdGhpcy5lbGVtZW50PWU7Y29uc3Qgbj1bXSxpPVtdLHI9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihlLmNvbnRlbnQsMTMzLG51bGwsITEpO2xldCBvPTAsYT0tMSxzPTA7Y29uc3R7c3RyaW5nczpsLHZhbHVlczp7bGVuZ3RoOmN9fT10O2Zvcig7czxjOyl7Y29uc3QgdD1yLm5leHROb2RlKCk7aWYobnVsbCE9PXQpe2lmKGErKywxPT09dC5ub2RlVHlwZSl7aWYodC5oYXNBdHRyaWJ1dGVzKCkpe2NvbnN0IGU9dC5hdHRyaWJ1dGVzLHtsZW5ndGg6bn09ZTtsZXQgaT0wO2ZvcihsZXQgdD0wO3Q8bjt0KyspX1F0KGVbdF0ubmFtZSxtUXQpJiZpKys7Zm9yKDtpLS0gPjA7KXtjb25zdCBlPWJRdC5leGVjKGxbc10pWzJdLG49ZS50b0xvd2VyQ2FzZSgpK21RdCxpPXQuZ2V0QXR0cmlidXRlKG4pO3QucmVtb3ZlQXR0cmlidXRlKG4pO2NvbnN0IHI9aS5zcGxpdChmUXQpO3RoaXMucGFydHMucHVzaCh7dHlwZToiYXR0cmlidXRlIixpbmRleDphLG5hbWU6ZSxzdHJpbmdzOnJ9KSxzKz1yLmxlbmd0aC0xfX0iVEVNUExBVEUiPT09dC50YWdOYW1lJiYoaS5wdXNoKHQpLHIuY3VycmVudE5vZGU9dC5jb250ZW50KX1lbHNlIGlmKDM9PT10Lm5vZGVUeXBlKXtjb25zdCBlPXQuZGF0YTtpZihlLmluZGV4T2YoZFF0KT49MCl7Y29uc3QgaT10LnBhcmVudE5vZGUscj1lLnNwbGl0KGZRdCksbz1yLmxlbmd0aC0xO2ZvcihsZXQgZT0wO2U8bztlKyspe2xldCBuLG89cltlXTtpZigiIj09PW8pbj12UXQoKTtlbHNle2NvbnN0IHQ9YlF0LmV4ZWMobyk7bnVsbCE9PXQmJl9RdCh0WzJdLG1RdCkmJihvPW8uc2xpY2UoMCx0LmluZGV4KSt0WzFdK3RbMl0uc2xpY2UoMCwtbVF0Lmxlbmd0aCkrdFszXSksbj1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShvKX1pLmluc2VydEJlZm9yZShuLHQpLHRoaXMucGFydHMucHVzaCh7dHlwZToibm9kZSIsaW5kZXg6KythfSl9IiI9PT1yW29dPyhpLmluc2VydEJlZm9yZSh2UXQoKSx0KSxuLnB1c2godCkpOnQuZGF0YT1yW29dLHMrPW99fWVsc2UgaWYoOD09PXQubm9kZVR5cGUpaWYodC5kYXRhPT09ZFF0KXtjb25zdCBlPXQucGFyZW50Tm9kZTtudWxsIT09dC5wcmV2aW91c1NpYmxpbmcmJmEhPT1vfHwoYSsrLGUuaW5zZXJ0QmVmb3JlKHZRdCgpLHQpKSxvPWEsdGhpcy5wYXJ0cy5wdXNoKHt0eXBlOiJub2RlIixpbmRleDphfSksbnVsbD09PXQubmV4dFNpYmxpbmc/dC5kYXRhPSIiOihuLnB1c2godCksYS0tKSxzKyt9ZWxzZXtsZXQgZT0tMTtmb3IoOy0xIT09KGU9dC5kYXRhLmluZGV4T2YoZFF0LGUrMSkpOyl0aGlzLnBhcnRzLnB1c2goe3R5cGU6Im5vZGUiLGluZGV4Oi0xfSkscysrfX1lbHNlIHIuY3VycmVudE5vZGU9aS5wb3AoKX1mb3IoY29uc3QgdCBvZiBuKXQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KX19Y29uc3QgX1F0PSh0LGUpPT57Y29uc3Qgbj10Lmxlbmd0aC1lLmxlbmd0aDtyZXR1cm4gbj49MCYmdC5zbGljZShuKT09PWV9LHlRdD10PT4tMSE9PXQuaW5kZXgsdlF0PSgpPT5kb2N1bWVudC5jcmVhdGVDb21tZW50KCIiKSxiUXQ9LyhbIFx4MDlceDBhXHgwY1x4MGRdKShbXlwwLVx4MUZceDdGLVx4OUYgIic+PS9dKykoWyBceDA5XHgwYVx4MGNceDBkXSo9WyBceDA5XHgwYVx4MGNceDBkXSooPzpbXiBceDA5XHgwYVx4MGNceDBkIidgPD49XSp8IlteIl0qfCdbXiddKikpJC87ZnVuY3Rpb24geFF0KHQsZSl7Y29uc3R7ZWxlbWVudDp7Y29udGVudDpufSxwYXJ0czppfT10LHI9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihuLDEzMyxudWxsLCExKTtsZXQgbz1TUXQoaSksYT1pW29dLHM9LTEsbD0wO2NvbnN0IGM9W107bGV0IHU9bnVsbDtmb3IoO3IubmV4dE5vZGUoKTspe3MrKztjb25zdCB0PXIuY3VycmVudE5vZGU7Zm9yKHQucHJldmlvdXNTaWJsaW5nPT09dSYmKHU9bnVsbCksZS5oYXModCkmJihjLnB1c2godCksbnVsbD09PXUmJih1PXQpKSxudWxsIT09dSYmbCsrO3ZvaWQgMCE9PWEmJmEuaW5kZXg9PT1zOylhLmluZGV4PW51bGwhPT11Py0xOmEuaW5kZXgtbCxvPVNRdChpLG8pLGE9aVtvXX1jLmZvckVhY2goKHQ9PnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSkpfWNvbnN0IHdRdD10PT57bGV0IGU9MTE9PT10Lm5vZGVUeXBlPzA6MTtjb25zdCBuPWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodCwxMzMsbnVsbCwhMSk7Zm9yKDtuLm5leHROb2RlKCk7KWUrKztyZXR1cm4gZX0sU1F0PSh0LGU9LTEpPT57Zm9yKGxldCBuPWUrMTtuPHQubGVuZ3RoO24rKyl7aWYoeVF0KHRbbl0pKXJldHVybiBufXJldHVybi0xfTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgICAqIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICAgKiBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgICAqIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgICAqIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICAgKiBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICAqLwpjb25zdCBNUXQ9bmV3IFdlYWtNYXAsRVF0PXt9LFRRdD17fTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgICAqIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICAgKiBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgICAqIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgICAqIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICAgKiBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICAqLwpjbGFzcyBDUXR7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuX19wYXJ0cz1bXSx0aGlzLnRlbXBsYXRlPXQsdGhpcy5wcm9jZXNzb3I9ZSx0aGlzLm9wdGlvbnM9bn11cGRhdGUodCl7bGV0IGU9MDtmb3IoY29uc3QgbiBvZiB0aGlzLl9fcGFydHMpdm9pZCAwIT09biYmbi5zZXRWYWx1ZSh0W2VdKSxlKys7Zm9yKGNvbnN0IHQgb2YgdGhpcy5fX3BhcnRzKXZvaWQgMCE9PXQmJnQuY29tbWl0KCl9X2Nsb25lKCl7Y29uc3QgdD11UXQ/dGhpcy50ZW1wbGF0ZS5lbGVtZW50LmNvbnRlbnQuY2xvbmVOb2RlKCEwKTpkb2N1bWVudC5pbXBvcnROb2RlKHRoaXMudGVtcGxhdGUuZWxlbWVudC5jb250ZW50LCEwKSxlPVtdLG49dGhpcy50ZW1wbGF0ZS5wYXJ0cyxpPWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodCwxMzMsbnVsbCwhMSk7bGV0IHIsbz0wLGE9MCxzPWkubmV4dE5vZGUoKTtmb3IoO288bi5sZW5ndGg7KWlmKHI9bltvXSx5UXQocikpe2Zvcig7YTxyLmluZGV4OylhKyssIlRFTVBMQVRFIj09PXMubm9kZU5hbWUmJihlLnB1c2gocyksaS5jdXJyZW50Tm9kZT1zLmNvbnRlbnQpLG51bGw9PT0ocz1pLm5leHROb2RlKCkpJiYoaS5jdXJyZW50Tm9kZT1lLnBvcCgpLHM9aS5uZXh0Tm9kZSgpKTtpZigibm9kZSI9PT1yLnR5cGUpe2NvbnN0IHQ9dGhpcy5wcm9jZXNzb3IuaGFuZGxlVGV4dEV4cHJlc3Npb24odGhpcy5vcHRpb25zKTt0Lmluc2VydEFmdGVyTm9kZShzLnByZXZpb3VzU2libGluZyksdGhpcy5fX3BhcnRzLnB1c2godCl9ZWxzZSB0aGlzLl9fcGFydHMucHVzaCguLi50aGlzLnByb2Nlc3Nvci5oYW5kbGVBdHRyaWJ1dGVFeHByZXNzaW9ucyhzLHIubmFtZSxyLnN0cmluZ3MsdGhpcy5vcHRpb25zKSk7bysrfWVsc2UgdGhpcy5fX3BhcnRzLnB1c2godm9pZCAwKSxvKys7cmV0dXJuIHVRdCYmKGRvY3VtZW50LmFkb3B0Tm9kZSh0KSxjdXN0b21FbGVtZW50cy51cGdyYWRlKHQpKSx0fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgICAqIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0CiAgICAgKiBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQKICAgICAqIFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgICAqIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICAgKiBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHQKICAgICAqL2NvbnN0IEFRdD13aW5kb3cudHJ1c3RlZFR5cGVzJiZ0cnVzdGVkVHlwZXMuY3JlYXRlUG9saWN5KCJsaXQtaHRtbCIse2NyZWF0ZUhUTUw6dD0+dH0pLGtRdD1gICR7ZFF0fSBgO2NsYXNzIExRdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnZhbHVlPXZvaWQgMCx0aGlzLl9fcGVuZGluZ1ZhbHVlPXZvaWQgMCx0aGlzLm9wdGlvbnM9dH1hcHBlbmRJbnRvKHQpe3RoaXMuc3RhcnROb2RlPXQuYXBwZW5kQ2hpbGQodlF0KCkpLHRoaXMuZW5kTm9kZT10LmFwcGVuZENoaWxkKHZRdCgpKX1pbnNlcnRBZnRlck5vZGUodCl7dGhpcy5zdGFydE5vZGU9dCx0aGlzLmVuZE5vZGU9dC5uZXh0U2libGluZ31hcHBlbmRJbnRvUGFydCh0KXt0Ll9faW5zZXJ0KHRoaXMuc3RhcnROb2RlPXZRdCgpKSx0Ll9faW5zZXJ0KHRoaXMuZW5kTm9kZT12UXQoKSl9aW5zZXJ0QWZ0ZXJQYXJ0KHQpe3QuX19pbnNlcnQodGhpcy5zdGFydE5vZGU9dlF0KCkpLHRoaXMuZW5kTm9kZT10LmVuZE5vZGUsdC5lbmROb2RlPXRoaXMuc3RhcnROb2RlfXNldFZhbHVlKHQpe3RoaXMuX19wZW5kaW5nVmFsdWU9dH1jb21taXQoKXtpZihudWxsPT09dGhpcy5zdGFydE5vZGUucGFyZW50Tm9kZSlyZXR1cm47Zm9yKDsiZnVuY3Rpb24iPT10eXBlb2YodD10aGlzLl9fcGVuZGluZ1ZhbHVlKSYmTVF0Lmhhcyh0KTspe2NvbnN0IHQ9dGhpcy5fX3BlbmRpbmdWYWx1ZTt0aGlzLl9fcGVuZGluZ1ZhbHVlPUVRdCx0KHRoaXMpfXZhciB0O2NvbnN0IGU9dGhpcy5fX3BlbmRpbmdWYWx1ZTtlIT09RVF0JiYoKHQ9Pm51bGw9PT10fHwhKCJvYmplY3QiPT10eXBlb2YgdHx8ImZ1bmN0aW9uIj09dHlwZW9mIHQpKShlKT9lIT09dGhpcy52YWx1ZSYmdGhpcy5fX2NvbW1pdFRleHQoZSk6ZSBpbnN0YW5jZW9mIGNsYXNze2NvbnN0cnVjdG9yKHQsZSxuLGkpe3RoaXMuc3RyaW5ncz10LHRoaXMudmFsdWVzPWUsdGhpcy50eXBlPW4sdGhpcy5wcm9jZXNzb3I9aX1nZXRIVE1MKCl7Y29uc3QgdD10aGlzLnN0cmluZ3MubGVuZ3RoLTE7bGV0IGU9IiIsbj0hMTtmb3IobGV0IGk9MDtpPHQ7aSsrKXtjb25zdCB0PXRoaXMuc3RyaW5nc1tpXSxyPXQubGFzdEluZGV4T2YoIlx4M2MhLS0iKTtuPShyPi0xfHxuKSYmLTE9PT10LmluZGV4T2YoIi0tXHgzZSIscisxKTtjb25zdCBvPWJRdC5leGVjKHQpO2UrPW51bGw9PT1vP3QrKG4/a1F0OnBRdCk6dC5zdWJzdHIoMCxvLmluZGV4KStvWzFdK29bMl0rbVF0K29bM10rZFF0fXJldHVybiBlKz10aGlzLnN0cmluZ3NbdF0sZX1nZXRUZW1wbGF0ZUVsZW1lbnQoKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7bGV0IGU9dGhpcy5nZXRIVE1MKCk7cmV0dXJuIHZvaWQgMCE9PUFRdCYmKGU9QVF0LmNyZWF0ZUhUTUwoZSkpLHQuaW5uZXJIVE1MPWUsdH19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICAgKiBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgICogVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICAgKiBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICAgKiBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgICogc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAgKi8/dGhpcy5fX2NvbW1pdFRlbXBsYXRlUmVzdWx0KGUpOmUgaW5zdGFuY2VvZiBOb2RlP3RoaXMuX19jb21taXROb2RlKGUpOih0PT5BcnJheS5pc0FycmF5KHQpfHwhKCF0fHwhdFtTeW1ib2wuaXRlcmF0b3JdKSkoZSk/dGhpcy5fX2NvbW1pdEl0ZXJhYmxlKGUpOmU9PT1UUXQ/KHRoaXMudmFsdWU9VFF0LHRoaXMuY2xlYXIoKSk6dGhpcy5fX2NvbW1pdFRleHQoZSkpfV9faW5zZXJ0KHQpe3RoaXMuZW5kTm9kZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LHRoaXMuZW5kTm9kZSl9X19jb21taXROb2RlKHQpe3RoaXMudmFsdWUhPT10JiYodGhpcy5jbGVhcigpLHRoaXMuX19pbnNlcnQodCksdGhpcy52YWx1ZT10KX1fX2NvbW1pdFRleHQodCl7Y29uc3QgZT10aGlzLnN0YXJ0Tm9kZS5uZXh0U2libGluZyxuPSJzdHJpbmciPT10eXBlb2YodD1udWxsPT10PyIiOnQpP3Q6U3RyaW5nKHQpO2U9PT10aGlzLmVuZE5vZGUucHJldmlvdXNTaWJsaW5nJiYzPT09ZS5ub2RlVHlwZT9lLmRhdGE9bjp0aGlzLl9fY29tbWl0Tm9kZShkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShuKSksdGhpcy52YWx1ZT10fV9fY29tbWl0VGVtcGxhdGVSZXN1bHQodCl7Y29uc3QgZT10aGlzLm9wdGlvbnMudGVtcGxhdGVGYWN0b3J5KHQpO2lmKHRoaXMudmFsdWUgaW5zdGFuY2VvZiBDUXQmJnRoaXMudmFsdWUudGVtcGxhdGU9PT1lKXRoaXMudmFsdWUudXBkYXRlKHQudmFsdWVzKTtlbHNle2NvbnN0IG49bmV3IENRdChlLHQucHJvY2Vzc29yLHRoaXMub3B0aW9ucyksaT1uLl9jbG9uZSgpO24udXBkYXRlKHQudmFsdWVzKSx0aGlzLl9fY29tbWl0Tm9kZShpKSx0aGlzLnZhbHVlPW59fV9fY29tbWl0SXRlcmFibGUodCl7QXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKXx8KHRoaXMudmFsdWU9W10sdGhpcy5jbGVhcigpKTtjb25zdCBlPXRoaXMudmFsdWU7bGV0IG4saT0wO2Zvcihjb25zdCByIG9mIHQpbj1lW2ldLHZvaWQgMD09PW4mJihuPW5ldyBMUXQodGhpcy5vcHRpb25zKSxlLnB1c2gobiksMD09PWk/bi5hcHBlbmRJbnRvUGFydCh0aGlzKTpuLmluc2VydEFmdGVyUGFydChlW2ktMV0pKSxuLnNldFZhbHVlKHIpLG4uY29tbWl0KCksaSsrO2k8ZS5sZW5ndGgmJihlLmxlbmd0aD1pLHRoaXMuY2xlYXIobiYmbi5lbmROb2RlKSl9Y2xlYXIodD10aGlzLnN0YXJ0Tm9kZSl7aFF0KHRoaXMuc3RhcnROb2RlLnBhcmVudE5vZGUsdC5uZXh0U2libGluZyx0aGlzLmVuZE5vZGUpfX1sZXQgUFF0PSExOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgICogVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgICAqIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgICogVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgICogQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgICAqIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgICovCmZ1bmN0aW9uIE5RdCh0KXtsZXQgZT1JUXQuZ2V0KHQudHlwZSk7dm9pZCAwPT09ZSYmKGU9e3N0cmluZ3NBcnJheTpuZXcgV2Vha01hcCxrZXlTdHJpbmc6bmV3IE1hcH0sSVF0LnNldCh0LnR5cGUsZSkpO2xldCBuPWUuc3RyaW5nc0FycmF5LmdldCh0LnN0cmluZ3MpO2lmKHZvaWQgMCE9PW4pcmV0dXJuIG47Y29uc3QgaT10LnN0cmluZ3Muam9pbihkUXQpO3JldHVybiBuPWUua2V5U3RyaW5nLmdldChpKSx2b2lkIDA9PT1uJiYobj1uZXcgZ1F0KHQsdC5nZXRUZW1wbGF0ZUVsZW1lbnQoKSksZS5rZXlTdHJpbmcuc2V0KGksbikpLGUuc3RyaW5nc0FycmF5LnNldCh0LnN0cmluZ3Msbiksbn0oKCk9Pnt0cnl7Y29uc3QgdD17Z2V0IGNhcHR1cmUoKXtyZXR1cm4gUFF0PSEwLCExfX07d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLHQsdCksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLHQsdCl9Y2F0Y2godCl7fX0pKCk7Y29uc3QgSVF0PW5ldyBNYXAsUlF0PW5ldyBXZWFrTWFwOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgICogVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgICAqIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgICogVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgICogQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgICAqIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgICovCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICAgKiBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgICogVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICAgKiBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICAgKiBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgICogc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAgKi8KInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJih3aW5kb3cubGl0SHRtbFZlcnNpb25zfHwod2luZG93LmxpdEh0bWxWZXJzaW9ucz1bXSkpLnB1c2goIjEuNC4xIik7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICAgKiBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dAogICAgICogVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICAgKiBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0CiAgICAgKiBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbwogICAgICogc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdAogICAgICogaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAgKi9jb25zdCBPUXQ9KHQsZSk9PmAke3R9LS0ke2V9YDtsZXQgelF0PSEwO3ZvaWQgMD09PXdpbmRvdy5TaGFkeUNTUz96UXQ9ITE6dm9pZCAwPT09d2luZG93LlNoYWR5Q1NTLnByZXBhcmVUZW1wbGF0ZURvbSYmKGNvbnNvbGUud2FybigiSW5jb21wYXRpYmxlIFNoYWR5Q1NTIHZlcnNpb24gZGV0ZWN0ZWQuIFBsZWFzZSB1cGRhdGUgdG8gYXQgbGVhc3QgQHdlYmNvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzQDIuMC4yIGFuZCBAd2ViY29tcG9uZW50cy9zaGFkeWNzc0AxLjMuMS4iKSx6UXQ9ITEpO2NvbnN0IERRdD10PT5lPT57Y29uc3Qgbj1PUXQoZS50eXBlLHQpO2xldCBpPUlRdC5nZXQobik7dm9pZCAwPT09aSYmKGk9e3N0cmluZ3NBcnJheTpuZXcgV2Vha01hcCxrZXlTdHJpbmc6bmV3IE1hcH0sSVF0LnNldChuLGkpKTtsZXQgcj1pLnN0cmluZ3NBcnJheS5nZXQoZS5zdHJpbmdzKTtpZih2b2lkIDAhPT1yKXJldHVybiByO2NvbnN0IG89ZS5zdHJpbmdzLmpvaW4oZFF0KTtpZihyPWkua2V5U3RyaW5nLmdldChvKSx2b2lkIDA9PT1yKXtjb25zdCBuPWUuZ2V0VGVtcGxhdGVFbGVtZW50KCk7elF0JiZ3aW5kb3cuU2hhZHlDU1MucHJlcGFyZVRlbXBsYXRlRG9tKG4sdCkscj1uZXcgZ1F0KGUsbiksaS5rZXlTdHJpbmcuc2V0KG8scil9cmV0dXJuIGkuc3RyaW5nc0FycmF5LnNldChlLnN0cmluZ3Mscikscn0sQlF0PVsiaHRtbCIsInN2ZyJdLEhRdD1uZXcgU2V0LEZRdD0odCxlLG4pPT57SFF0LmFkZCh0KTtjb25zdCBpPW4/bi5lbGVtZW50OmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIikscj1lLnF1ZXJ5U2VsZWN0b3JBbGwoInN0eWxlIikse2xlbmd0aDpvfT1yO2lmKDA9PT1vKXJldHVybiB2b2lkIHdpbmRvdy5TaGFkeUNTUy5wcmVwYXJlVGVtcGxhdGVTdHlsZXMoaSx0KTtjb25zdCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7Zm9yKGxldCB0PTA7dDxvO3QrKyl7Y29uc3QgZT1yW3RdO2UucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKSxhLnRleHRDb250ZW50Kz1lLnRleHRDb250ZW50fSh0PT57QlF0LmZvckVhY2goKGU9Pntjb25zdCBuPUlRdC5nZXQoT1F0KGUsdCkpO3ZvaWQgMCE9PW4mJm4ua2V5U3RyaW5nLmZvckVhY2goKHQ9Pntjb25zdHtlbGVtZW50Ontjb250ZW50OmV9fT10LG49bmV3IFNldDtBcnJheS5mcm9tKGUucXVlcnlTZWxlY3RvckFsbCgic3R5bGUiKSkuZm9yRWFjaCgodD0+e24uYWRkKHQpfSkpLHhRdCh0LG4pfSkpfSkpfSkodCk7Y29uc3Qgcz1pLmNvbnRlbnQ7bj8oZnVuY3Rpb24gbCh0LGUsbj1udWxsKXtjb25zdHtlbGVtZW50Ontjb250ZW50Oml9LHBhcnRzOnJ9PXQ7aWYobnVsbD09bilyZXR1cm4gdm9pZCBpLmFwcGVuZENoaWxkKGUpO2NvbnN0IG89ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihpLDEzMyxudWxsLCExKTtsZXQgYT1TUXQocikscz0wLGw9LTE7Zm9yKDtvLm5leHROb2RlKCk7KWZvcihsKyssby5jdXJyZW50Tm9kZT09PW4mJihzPXdRdChlKSxuLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsbikpOy0xIT09YSYmclthXS5pbmRleD09PWw7KXtpZihzPjApe2Zvcig7LTEhPT1hOylyW2FdLmluZGV4Kz1zLGE9U1F0KHIsYSk7cmV0dXJufWE9U1F0KHIsYSl9fSkobixhLHMuZmlyc3RDaGlsZCk6cy5pbnNlcnRCZWZvcmUoYSxzLmZpcnN0Q2hpbGQpLHdpbmRvdy5TaGFkeUNTUy5wcmVwYXJlVGVtcGxhdGVTdHlsZXMoaSx0KTtjb25zdCBjPXMucXVlcnlTZWxlY3Rvcigic3R5bGUiKTtpZih3aW5kb3cuU2hhZHlDU1MubmF0aXZlU2hhZG93JiZudWxsIT09YyllLmluc2VydEJlZm9yZShjLmNsb25lTm9kZSghMCksZS5maXJzdENoaWxkKTtlbHNlIGlmKG4pe3MuaW5zZXJ0QmVmb3JlKGEscy5maXJzdENoaWxkKTtjb25zdCB0PW5ldyBTZXQ7dC5hZGQoYSkseFF0KG4sdCl9fTt3aW5kb3cuSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eT0odCxlKT0+dDtjb25zdCBWUXQ9e3RvQXR0cmlidXRlKHQsZSl7c3dpdGNoKGUpe2Nhc2UgQm9vbGVhbjpyZXR1cm4gdD8iIjpudWxsO2Nhc2UgT2JqZWN0OmNhc2UgQXJyYXk6cmV0dXJuIG51bGw9PXQ/dDpKU09OLnN0cmluZ2lmeSh0KX1yZXR1cm4gdH0sZnJvbUF0dHJpYnV0ZSh0LGUpe3N3aXRjaChlKXtjYXNlIEJvb2xlYW46cmV0dXJuIG51bGwhPT10O2Nhc2UgTnVtYmVyOnJldHVybiBudWxsPT09dD9udWxsOk51bWJlcih0KTtjYXNlIE9iamVjdDpjYXNlIEFycmF5OnJldHVybiBKU09OLnBhcnNlKHQpfXJldHVybiB0fX0sVVF0PSh0LGUpPT5lIT09dCYmKGU9PWV8fHQ9PXQpLGpRdD17YXR0cmlidXRlOiEwLHR5cGU6U3RyaW5nLGNvbnZlcnRlcjpWUXQscmVmbGVjdDohMSxoYXNDaGFuZ2VkOlVRdH0sR1F0PSJmaW5hbGl6ZWQiO2NsYXNzIFdRdCBleHRlbmRzIEhUTUxFbGVtZW50e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmluaXRpYWxpemUoKX1zdGF0aWMgZ2V0IG9ic2VydmVkQXR0cmlidXRlcygpe3RoaXMuZmluYWxpemUoKTtjb25zdCB0PVtdO3JldHVybiB0aGlzLl9jbGFzc1Byb3BlcnRpZXMuZm9yRWFjaCgoKGUsbik9Pntjb25zdCBpPXRoaXMuX2F0dHJpYnV0ZU5hbWVGb3JQcm9wZXJ0eShuLGUpO3ZvaWQgMCE9PWkmJih0aGlzLl9hdHRyaWJ1dGVUb1Byb3BlcnR5TWFwLnNldChpLG4pLHQucHVzaChpKSl9KSksdH1zdGF0aWMgX2Vuc3VyZUNsYXNzUHJvcGVydGllcygpe2lmKCF0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoIl9jbGFzc1Byb3BlcnRpZXMiLHRoaXMpKSl7dGhpcy5fY2xhc3NQcm9wZXJ0aWVzPW5ldyBNYXA7Y29uc3QgdD1PYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykuX2NsYXNzUHJvcGVydGllczt2b2lkIDAhPT10JiZ0LmZvckVhY2goKCh0LGUpPT50aGlzLl9jbGFzc1Byb3BlcnRpZXMuc2V0KGUsdCkpKX19c3RhdGljIGNyZWF0ZVByb3BlcnR5KHQsZT1qUXQpe2lmKHRoaXMuX2Vuc3VyZUNsYXNzUHJvcGVydGllcygpLHRoaXMuX2NsYXNzUHJvcGVydGllcy5zZXQodCxlKSxlLm5vQWNjZXNzb3J8fHRoaXMucHJvdG90eXBlLmhhc093blByb3BlcnR5KHQpKXJldHVybjtjb25zdCBuPSJzeW1ib2wiPT10eXBlb2YgdD9TeW1ib2woKTpgX18ke3R9YCxpPXRoaXMuZ2V0UHJvcGVydHlEZXNjcmlwdG9yKHQsbixlKTt2b2lkIDAhPT1pJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcy5wcm90b3R5cGUsdCxpKX1zdGF0aWMgZ2V0UHJvcGVydHlEZXNjcmlwdG9yKHQsZSxuKXtyZXR1cm57Z2V0KCl7cmV0dXJuIHRoaXNbZV19LHNldChpKXtjb25zdCByPXRoaXNbdF07dGhpc1tlXT1pLHRoaXMucmVxdWVzdFVwZGF0ZUludGVybmFsKHQscixuKX0sY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITB9fXN0YXRpYyBnZXRQcm9wZXJ0eU9wdGlvbnModCl7cmV0dXJuIHRoaXMuX2NsYXNzUHJvcGVydGllcyYmdGhpcy5fY2xhc3NQcm9wZXJ0aWVzLmdldCh0KXx8alF0fXN0YXRpYyBmaW5hbGl6ZSgpe2NvbnN0IHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpO2lmKHQuaGFzT3duUHJvcGVydHkoR1F0KXx8dC5maW5hbGl6ZSgpLHRoaXMuZmluYWxpemVkPSEwLHRoaXMuX2Vuc3VyZUNsYXNzUHJvcGVydGllcygpLHRoaXMuX2F0dHJpYnV0ZVRvUHJvcGVydHlNYXA9bmV3IE1hcCx0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoInByb3BlcnRpZXMiLHRoaXMpKSl7Y29uc3QgdD10aGlzLnByb3BlcnRpZXMsZT1bLi4uT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModCksLi4uImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM/T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTpbXV07Zm9yKGNvbnN0IG4gb2YgZSl0aGlzLmNyZWF0ZVByb3BlcnR5KG4sdFtuXSl9fXN0YXRpYyBfYXR0cmlidXRlTmFtZUZvclByb3BlcnR5KHQsZSl7Y29uc3Qgbj1lLmF0dHJpYnV0ZTtyZXR1cm4hMT09PW4/dm9pZCAwOiJzdHJpbmciPT10eXBlb2Ygbj9uOiJzdHJpbmciPT10eXBlb2YgdD90LnRvTG93ZXJDYXNlKCk6dm9pZCAwfXN0YXRpYyBfdmFsdWVIYXNDaGFuZ2VkKHQsZSxuPVVRdCl7cmV0dXJuIG4odCxlKX1zdGF0aWMgX3Byb3BlcnR5VmFsdWVGcm9tQXR0cmlidXRlKHQsZSl7Y29uc3Qgbj1lLmNvbnZlcnRlcnx8VlF0LGk9ImZ1bmN0aW9uIj09dHlwZW9mIG4/bjpuLmZyb21BdHRyaWJ1dGU7cmV0dXJuIGk/aSh0LGUudHlwZSk6dH1zdGF0aWMgX3Byb3BlcnR5VmFsdWVUb0F0dHJpYnV0ZSh0LGUpe2lmKHZvaWQgMD09PWUucmVmbGVjdClyZXR1cm47Y29uc3Qgbj1lLmNvbnZlcnRlcjtyZXR1cm4obiYmbi50b0F0dHJpYnV0ZXx8VlF0LnRvQXR0cmlidXRlKSh0LGUudHlwZSl9aW5pdGlhbGl6ZSgpe3RoaXMuX3VwZGF0ZVN0YXRlPTAsdGhpcy5fdXBkYXRlUHJvbWlzZT1uZXcgUHJvbWlzZSgodD0+dGhpcy5fZW5hYmxlVXBkYXRpbmdSZXNvbHZlcj10KSksdGhpcy5fY2hhbmdlZFByb3BlcnRpZXM9bmV3IE1hcCx0aGlzLl9zYXZlSW5zdGFuY2VQcm9wZXJ0aWVzKCksdGhpcy5yZXF1ZXN0VXBkYXRlSW50ZXJuYWwoKX1fc2F2ZUluc3RhbmNlUHJvcGVydGllcygpe3RoaXMuY29uc3RydWN0b3IuX2NsYXNzUHJvcGVydGllcy5mb3JFYWNoKCgodCxlKT0+e2lmKHRoaXMuaGFzT3duUHJvcGVydHkoZSkpe2NvbnN0IHQ9dGhpc1tlXTtkZWxldGUgdGhpc1tlXSx0aGlzLl9pbnN0YW5jZVByb3BlcnRpZXN8fCh0aGlzLl9pbnN0YW5jZVByb3BlcnRpZXM9bmV3IE1hcCksdGhpcy5faW5zdGFuY2VQcm9wZXJ0aWVzLnNldChlLHQpfX0pKX1fYXBwbHlJbnN0YW5jZVByb3BlcnRpZXMoKXt0aGlzLl9pbnN0YW5jZVByb3BlcnRpZXMuZm9yRWFjaCgoKHQsZSk9PnRoaXNbZV09dCkpLHRoaXMuX2luc3RhbmNlUHJvcGVydGllcz12b2lkIDB9Y29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLmVuYWJsZVVwZGF0aW5nKCl9ZW5hYmxlVXBkYXRpbmcoKXt2b2lkIDAhPT10aGlzLl9lbmFibGVVcGRhdGluZ1Jlc29sdmVyJiYodGhpcy5fZW5hYmxlVXBkYXRpbmdSZXNvbHZlcigpLHRoaXMuX2VuYWJsZVVwZGF0aW5nUmVzb2x2ZXI9dm9pZCAwKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe31hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodCxlLG4pe2UhPT1uJiZ0aGlzLl9hdHRyaWJ1dGVUb1Byb3BlcnR5KHQsbil9X3Byb3BlcnR5VG9BdHRyaWJ1dGUodCxlLG49alF0KXtjb25zdCBpPXRoaXMuY29uc3RydWN0b3Iscj1pLl9hdHRyaWJ1dGVOYW1lRm9yUHJvcGVydHkodCxuKTtpZih2b2lkIDAhPT1yKXtjb25zdCB0PWkuX3Byb3BlcnR5VmFsdWVUb0F0dHJpYnV0ZShlLG4pO2lmKHZvaWQgMD09PXQpcmV0dXJuO3RoaXMuX3VwZGF0ZVN0YXRlPTh8dGhpcy5fdXBkYXRlU3RhdGUsbnVsbD09dD90aGlzLnJlbW92ZUF0dHJpYnV0ZShyKTp0aGlzLnNldEF0dHJpYnV0ZShyLHQpLHRoaXMuX3VwZGF0ZVN0YXRlPS05JnRoaXMuX3VwZGF0ZVN0YXRlfX1fYXR0cmlidXRlVG9Qcm9wZXJ0eSh0LGUpe2lmKDgmdGhpcy5fdXBkYXRlU3RhdGUpcmV0dXJuO2NvbnN0IG49dGhpcy5jb25zdHJ1Y3RvcixpPW4uX2F0dHJpYnV0ZVRvUHJvcGVydHlNYXAuZ2V0KHQpO2lmKHZvaWQgMCE9PWkpe2NvbnN0IHQ9bi5nZXRQcm9wZXJ0eU9wdGlvbnMoaSk7dGhpcy5fdXBkYXRlU3RhdGU9MTZ8dGhpcy5fdXBkYXRlU3RhdGUsdGhpc1tpXT1uLl9wcm9wZXJ0eVZhbHVlRnJvbUF0dHJpYnV0ZShlLHQpLHRoaXMuX3VwZGF0ZVN0YXRlPS0xNyZ0aGlzLl91cGRhdGVTdGF0ZX19cmVxdWVzdFVwZGF0ZUludGVybmFsKHQsZSxuKXtsZXQgaT0hMDtpZih2b2lkIDAhPT10KXtjb25zdCByPXRoaXMuY29uc3RydWN0b3I7bj1ufHxyLmdldFByb3BlcnR5T3B0aW9ucyh0KSxyLl92YWx1ZUhhc0NoYW5nZWQodGhpc1t0XSxlLG4uaGFzQ2hhbmdlZCk/KHRoaXMuX2NoYW5nZWRQcm9wZXJ0aWVzLmhhcyh0KXx8dGhpcy5fY2hhbmdlZFByb3BlcnRpZXMuc2V0KHQsZSksITAhPT1uLnJlZmxlY3R8fDE2JnRoaXMuX3VwZGF0ZVN0YXRlfHwodm9pZCAwPT09dGhpcy5fcmVmbGVjdGluZ1Byb3BlcnRpZXMmJih0aGlzLl9yZWZsZWN0aW5nUHJvcGVydGllcz1uZXcgTWFwKSx0aGlzLl9yZWZsZWN0aW5nUHJvcGVydGllcy5zZXQodCxuKSkpOmk9ITF9IXRoaXMuX2hhc1JlcXVlc3RlZFVwZGF0ZSYmaSYmKHRoaXMuX3VwZGF0ZVByb21pc2U9dGhpcy5fZW5xdWV1ZVVwZGF0ZSgpKX1yZXF1ZXN0VXBkYXRlKHQsZSl7cmV0dXJuIHRoaXMucmVxdWVzdFVwZGF0ZUludGVybmFsKHQsZSksdGhpcy51cGRhdGVDb21wbGV0ZX1hc3luYyBfZW5xdWV1ZVVwZGF0ZSgpe3RoaXMuX3VwZGF0ZVN0YXRlPTR8dGhpcy5fdXBkYXRlU3RhdGU7dHJ5e2F3YWl0IHRoaXMuX3VwZGF0ZVByb21pc2V9Y2F0Y2godCl7fWNvbnN0IHQ9dGhpcy5wZXJmb3JtVXBkYXRlKCk7cmV0dXJuIG51bGwhPXQmJmF3YWl0IHQsIXRoaXMuX2hhc1JlcXVlc3RlZFVwZGF0ZX1nZXQgX2hhc1JlcXVlc3RlZFVwZGF0ZSgpe3JldHVybiA0JnRoaXMuX3VwZGF0ZVN0YXRlfWdldCBoYXNVcGRhdGVkKCl7cmV0dXJuIDEmdGhpcy5fdXBkYXRlU3RhdGV9cGVyZm9ybVVwZGF0ZSgpe2lmKCF0aGlzLl9oYXNSZXF1ZXN0ZWRVcGRhdGUpcmV0dXJuO3RoaXMuX2luc3RhbmNlUHJvcGVydGllcyYmdGhpcy5fYXBwbHlJbnN0YW5jZVByb3BlcnRpZXMoKTtsZXQgdD0hMTtjb25zdCBlPXRoaXMuX2NoYW5nZWRQcm9wZXJ0aWVzO3RyeXt0PXRoaXMuc2hvdWxkVXBkYXRlKGUpLHQ/dGhpcy51cGRhdGUoZSk6dGhpcy5fbWFya1VwZGF0ZWQoKX1jYXRjaChlKXt0aHJvdyB0PSExLHRoaXMuX21hcmtVcGRhdGVkKCksZX10JiYoMSZ0aGlzLl91cGRhdGVTdGF0ZXx8KHRoaXMuX3VwZGF0ZVN0YXRlPTF8dGhpcy5fdXBkYXRlU3RhdGUsdGhpcy5maXJzdFVwZGF0ZWQoZSkpLHRoaXMudXBkYXRlZChlKSl9X21hcmtVcGRhdGVkKCl7dGhpcy5fY2hhbmdlZFByb3BlcnRpZXM9bmV3IE1hcCx0aGlzLl91cGRhdGVTdGF0ZT0tNSZ0aGlzLl91cGRhdGVTdGF0ZX1nZXQgdXBkYXRlQ29tcGxldGUoKXtyZXR1cm4gdGhpcy5fZ2V0VXBkYXRlQ29tcGxldGUoKX1fZ2V0VXBkYXRlQ29tcGxldGUoKXtyZXR1cm4gdGhpcy5nZXRVcGRhdGVDb21wbGV0ZSgpfWdldFVwZGF0ZUNvbXBsZXRlKCl7cmV0dXJuIHRoaXMuX3VwZGF0ZVByb21pc2V9c2hvdWxkVXBkYXRlKHQpe3JldHVybiEwfXVwZGF0ZSh0KXt2b2lkIDAhPT10aGlzLl9yZWZsZWN0aW5nUHJvcGVydGllcyYmdGhpcy5fcmVmbGVjdGluZ1Byb3BlcnRpZXMuc2l6ZT4wJiYodGhpcy5fcmVmbGVjdGluZ1Byb3BlcnRpZXMuZm9yRWFjaCgoKHQsZSk9PnRoaXMuX3Byb3BlcnR5VG9BdHRyaWJ1dGUoZSx0aGlzW2VdLHQpKSksdGhpcy5fcmVmbGVjdGluZ1Byb3BlcnRpZXM9dm9pZCAwKSx0aGlzLl9tYXJrVXBkYXRlZCgpfXVwZGF0ZWQodCl7fWZpcnN0VXBkYXRlZCh0KXt9fVdRdC5maW5hbGl6ZWQ9ITA7Ci8qKgogICAgQGxpY2Vuc2UKICAgIENvcHlyaWdodCAoYykgMjAxOSBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQKICAgIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlCiAgICBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcwogICAgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudAogICAgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0CiAgICAqLwpjb25zdCBxUXQ9d2luZG93LlNoYWRvd1Jvb3QmJih2b2lkIDA9PT13aW5kb3cuU2hhZHlDU1N8fHdpbmRvdy5TaGFkeUNTUy5uYXRpdmVTaGFkb3cpJiYiYWRvcHRlZFN0eWxlU2hlZXRzImluIERvY3VtZW50LnByb3RvdHlwZSYmInJlcGxhY2UiaW4gQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUsWVF0PVN5bWJvbCgpO2NsYXNzIFhRdHtjb25zdHJ1Y3Rvcih0LGUpe2lmKGUhPT1ZUXQpdGhyb3cgbmV3IEVycm9yKCJDU1NSZXN1bHQgaXMgbm90IGNvbnN0cnVjdGFibGUuIFVzZSBgdW5zYWZlQ1NTYCBvciBgY3NzYCBpbnN0ZWFkLiIpO3RoaXMuY3NzVGV4dD10fWdldCBzdHlsZVNoZWV0KCl7cmV0dXJuIHZvaWQgMD09PXRoaXMuX3N0eWxlU2hlZXQmJihxUXQ/KHRoaXMuX3N0eWxlU2hlZXQ9bmV3IENTU1N0eWxlU2hlZXQsdGhpcy5fc3R5bGVTaGVldC5yZXBsYWNlU3luYyh0aGlzLmNzc1RleHQpKTp0aGlzLl9zdHlsZVNoZWV0PW51bGwpLHRoaXMuX3N0eWxlU2hlZXR9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5jc3NUZXh0fX1jb25zdCAkUXQ9KHQsLi4uZSk9Pntjb25zdCBuPWUucmVkdWNlKCgoZSxuLGkpPT5lKyh0PT57aWYodCBpbnN0YW5jZW9mIFhRdClyZXR1cm4gdC5jc3NUZXh0O2lmKCJudW1iZXIiPT10eXBlb2YgdClyZXR1cm4gdDt0aHJvdyBuZXcgRXJyb3IoYFZhbHVlIHBhc3NlZCB0byAnY3NzJyBmdW5jdGlvbiBtdXN0IGJlIGEgJ2NzcycgZnVuY3Rpb24gcmVzdWx0OiAke3R9LiBVc2UgJ3Vuc2FmZUNTUycgdG8gcGFzcyBub24tbGl0ZXJhbCB2YWx1ZXMsIGJ1dFxuICAgICAgICAgICAgdGFrZSBjYXJlIHRvIGVuc3VyZSBwYWdlIHNlY3VyaXR5LmApfSkobikrdFtpKzFdKSx0WzBdKTtyZXR1cm4gbmV3IFhRdChuLFlRdCl9OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgICogVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgICAqIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dAogICAgICogVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0CiAgICAgKiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dAogICAgICogQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28KICAgICAqIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQKICAgICAqIGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgICovCih3aW5kb3cubGl0RWxlbWVudFZlcnNpb25zfHwod2luZG93LmxpdEVsZW1lbnRWZXJzaW9ucz1bXSkpLnB1c2goIjIuNS4xIik7Y29uc3QgS1F0PXt9O2NsYXNzIFpRdCBleHRlbmRzIFdRdHtzdGF0aWMgZ2V0U3R5bGVzKCl7cmV0dXJuIHRoaXMuc3R5bGVzfXN0YXRpYyBfZ2V0VW5pcXVlU3R5bGVzKCl7aWYodGhpcy5oYXNPd25Qcm9wZXJ0eShKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCJfc3R5bGVzIix0aGlzKSkpcmV0dXJuO2NvbnN0IHQ9dGhpcy5nZXRTdHlsZXMoKTtpZihBcnJheS5pc0FycmF5KHQpKXtjb25zdCBlPSh0LG4pPT50LnJlZHVjZVJpZ2h0KCgodCxuKT0+QXJyYXkuaXNBcnJheShuKT9lKG4sdCk6KHQuYWRkKG4pLHQpKSxuKSxuPWUodCxuZXcgU2V0KSxpPVtdO24uZm9yRWFjaCgodD0+aS51bnNoaWZ0KHQpKSksdGhpcy5fc3R5bGVzPWl9ZWxzZSB0aGlzLl9zdHlsZXM9dm9pZCAwPT09dD9bXTpbdF07dGhpcy5fc3R5bGVzPXRoaXMuX3N0eWxlcy5tYXAoKHQ9PntpZih0IGluc3RhbmNlb2YgQ1NTU3R5bGVTaGVldCYmIXFRdCl7cmV0dXJuKHQ9Pm5ldyBYUXQoU3RyaW5nKHQpLFlRdCkpKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQuY3NzUnVsZXMpLnJlZHVjZSgoKHQsZSk9PnQrZS5jc3NUZXh0KSwiIikpfXJldHVybiB0fSkpfWluaXRpYWxpemUoKXtzdXBlci5pbml0aWFsaXplKCksdGhpcy5jb25zdHJ1Y3Rvci5fZ2V0VW5pcXVlU3R5bGVzKCksdGhpcy5yZW5kZXJSb290PXRoaXMuY3JlYXRlUmVuZGVyUm9vdCgpLHdpbmRvdy5TaGFkb3dSb290JiZ0aGlzLnJlbmRlclJvb3QgaW5zdGFuY2VvZiB3aW5kb3cuU2hhZG93Um9vdCYmdGhpcy5hZG9wdFN0eWxlcygpfWNyZWF0ZVJlbmRlclJvb3QoKXtyZXR1cm4gdGhpcy5hdHRhY2hTaGFkb3codGhpcy5jb25zdHJ1Y3Rvci5zaGFkb3dSb290T3B0aW9ucyl9YWRvcHRTdHlsZXMoKXtjb25zdCB0PXRoaXMuY29uc3RydWN0b3IuX3N0eWxlczswIT09dC5sZW5ndGgmJih2b2lkIDA9PT13aW5kb3cuU2hhZHlDU1N8fHdpbmRvdy5TaGFkeUNTUy5uYXRpdmVTaGFkb3c/cVF0P3RoaXMucmVuZGVyUm9vdC5hZG9wdGVkU3R5bGVTaGVldHM9dC5tYXAoKHQ9PnQgaW5zdGFuY2VvZiBDU1NTdHlsZVNoZWV0P3Q6dC5zdHlsZVNoZWV0KSk6dGhpcy5fbmVlZHNTaGltQWRvcHRlZFN0eWxlU2hlZXRzPSEwOndpbmRvdy5TaGFkeUNTUy5TY29waW5nU2hpbS5wcmVwYXJlQWRvcHRlZENzc1RleHQodC5tYXAoKHQ9PnQuY3NzVGV4dCkpLHRoaXMubG9jYWxOYW1lKSl9Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuaGFzVXBkYXRlZCYmdm9pZCAwIT09d2luZG93LlNoYWR5Q1NTJiZ3aW5kb3cuU2hhZHlDU1Muc3R5bGVFbGVtZW50KHRoaXMpfXVwZGF0ZSh0KXtjb25zdCBlPXRoaXMucmVuZGVyKCk7c3VwZXIudXBkYXRlKHQpLGUhPT1LUXQmJnRoaXMuY29uc3RydWN0b3IucmVuZGVyKGUsdGhpcy5yZW5kZXJSb290LHtzY29wZU5hbWU6dGhpcy5sb2NhbE5hbWUsZXZlbnRDb250ZXh0OnRoaXN9KSx0aGlzLl9uZWVkc1NoaW1BZG9wdGVkU3R5bGVTaGVldHMmJih0aGlzLl9uZWVkc1NoaW1BZG9wdGVkU3R5bGVTaGVldHM9ITEsdGhpcy5jb25zdHJ1Y3Rvci5fc3R5bGVzLmZvckVhY2goKHQ9Pntjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7ZS50ZXh0Q29udGVudD10LmNzc1RleHQsdGhpcy5yZW5kZXJSb290LmFwcGVuZENoaWxkKGUpfSkpKX1yZW5kZXIoKXtyZXR1cm4gS1F0fX1aUXQuZmluYWxpemVkPSEwLFpRdC5yZW5kZXI9KHQsZSxuKT0+e2lmKCFufHwib2JqZWN0IiE9dHlwZW9mIG58fCFuLnNjb3BlTmFtZSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBgc2NvcGVOYW1lYCBvcHRpb24gaXMgcmVxdWlyZWQuIik7Y29uc3QgaT1uLnNjb3BlTmFtZSxyPVJRdC5oYXMoZSksbz16UXQmJjExPT09ZS5ub2RlVHlwZSYmISFlLmhvc3QsYT1vJiYhSFF0LmhhcyhpKSxzPWE/ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOmU7aWYoKCh0LGUsbik9PntsZXQgaT1SUXQuZ2V0KGUpO3ZvaWQgMD09PWkmJihoUXQoZSxlLmZpcnN0Q2hpbGQpLFJRdC5zZXQoZSxpPW5ldyBMUXQoT2JqZWN0LmFzc2lnbih7dGVtcGxhdGVGYWN0b3J5Ok5RdH0sbikpKSxpLmFwcGVuZEludG8oZSkpLGkuc2V0VmFsdWUodCksaS5jb21taXQoKX0pKHQscyxPYmplY3QuYXNzaWduKHt0ZW1wbGF0ZUZhY3Rvcnk6RFF0KGkpfSxuKSksYSl7Y29uc3QgdD1SUXQuZ2V0KHMpO1JRdC5kZWxldGUocyk7RlF0KGkscyx0LnZhbHVlIGluc3RhbmNlb2YgQ1F0P3QudmFsdWUudGVtcGxhdGU6dm9pZCAwKSxoUXQoZSxlLmZpcnN0Q2hpbGQpLGUuYXBwZW5kQ2hpbGQocyksUlF0LnNldChlLHQpfSFyJiZvJiZ3aW5kb3cuU2hhZHlDU1Muc3R5bGVFbGVtZW50KGUuaG9zdCl9LFpRdC5zaGFkb3dSb290T3B0aW9ucz17bW9kZToib3BlbiJ9O2xldCBKUXQ9MDtjb25zdCBRUXQ9e30sdDF0PSh0LGUsbik9Pntjb25zdCBpPW4mJm4ubW9kdWxlSWR8fCJjdXN0b20tc3R5bGUtbW9kdWxlLSIrSlF0Kys7QXJyYXkuaXNBcnJheShlKXx8KGU9ZT9bZV06W10pLGUuZm9yRWFjaCgodD0+e2lmKCEodCBpbnN0YW5jZW9mIFhRdCkpdGhyb3cgbmV3IEVycm9yKCJBbiBpdGVtIGluIHN0eWxlcyBpcyBub3Qgb2YgdHlwZSBDU1NSZXN1bHQuIFVzZSBgdW5zYWZlQ1NTYCBvciBgY3NzYC4iKTtpZighUVF0W3RdKXtjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRvbS1tb2R1bGUiKTtlLmlubmVySFRNTD1gXG4gICAgICAgIDx0ZW1wbGF0ZT5cbiAgICAgICAgICA8c3R5bGU+JHt0LnRvU3RyaW5nKCl9PC9zdHlsZT5cbiAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgIGA7Y29uc3Qgbj0iY3VzdG9tLXN0eWxlLW1vZHVsZS0iK0pRdCsrO2UucmVnaXN0ZXIobiksUVF0W3RdPW59fSkpO2NvbnN0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZG9tLW1vZHVsZSIpO2lmKHQpe2NvbnN0IGU9Y3VzdG9tRWxlbWVudHMuZ2V0KHQpO2UmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLCJfX2ZpbmFsaXplZCIpJiZjb25zb2xlLndhcm4oYFRoZSBjdXN0b20gZWxlbWVudCBkZWZpbml0aW9uIGZvciAiJHt0fSJcbiAgICAgIHdhcyBmaW5hbGl6ZWQgYmVmb3JlIGEgc3R5bGUgbW9kdWxlIHdhcyByZWdpc3RlcmVkLlxuICAgICAgTWFrZSBzdXJlIHRvIGFkZCBjb21wb25lbnQgc3BlY2lmaWMgc3R5bGUgbW9kdWxlcyBiZWZvcmVcbiAgICAgIGltcG9ydGluZyB0aGUgY29ycmVzcG9uZGluZyBjdXN0b20gZWxlbWVudC5gKSxyLnNldEF0dHJpYnV0ZSgidGhlbWUtZm9yIix0KX1yLmlubmVySFRNTD1gXG4gICAgPHRlbXBsYXRlPlxuICAgICAgJHsobiYmbi5pbmNsdWRlfHxbXSkubWFwKCh0PT5gPHN0eWxlIGluY2x1ZGU9JHt0fT48L3N0eWxlPmApKX1cbiAgICAgICR7ZS5tYXAoKHQ9PmA8c3R5bGUgaW5jbHVkZT0ke1FRdFt0XX0+PC9zdHlsZT5gKSl9XG4gICAgPC90ZW1wbGF0ZT5cbiAgYCxyLnJlZ2lzdGVyKGkpfTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi8KY2xhc3MgZTF0IGV4dGVuZHMgSFRNTEVsZW1lbnR7c3RhdGljIGdldCB2ZXJzaW9uKCl7cmV0dXJuIjIwLjAuMiJ9fWN1c3RvbUVsZW1lbnRzLmRlZmluZSgidmFhZGluLWx1bW8tc3R5bGVzIixlMXQpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLwpjb25zdCBuMXQ9JFF0YAogIDpob3N0IHsKICAgIC8qIEJhc2UgKGJhY2tncm91bmQpICovCiAgICAtLWx1bW8tYmFzZS1jb2xvcjogI2ZmZjsKCiAgICAvKiBUaW50ICovCiAgICAtLWx1bW8tdGludC01cGN0OiBoc2xhKDAsIDAlLCAxMDAlLCAwLjMpOwogICAgLS1sdW1vLXRpbnQtMTBwY3Q6IGhzbGEoMCwgMCUsIDEwMCUsIDAuMzcpOwogICAgLS1sdW1vLXRpbnQtMjBwY3Q6IGhzbGEoMCwgMCUsIDEwMCUsIDAuNDQpOwogICAgLS1sdW1vLXRpbnQtMzBwY3Q6IGhzbGEoMCwgMCUsIDEwMCUsIDAuNSk7CiAgICAtLWx1bW8tdGludC00MHBjdDogaHNsYSgwLCAwJSwgMTAwJSwgMC41Nyk7CiAgICAtLWx1bW8tdGludC01MHBjdDogaHNsYSgwLCAwJSwgMTAwJSwgMC42NCk7CiAgICAtLWx1bW8tdGludC02MHBjdDogaHNsYSgwLCAwJSwgMTAwJSwgMC43KTsKICAgIC0tbHVtby10aW50LTcwcGN0OiBoc2xhKDAsIDAlLCAxMDAlLCAwLjc3KTsKICAgIC0tbHVtby10aW50LTgwcGN0OiBoc2xhKDAsIDAlLCAxMDAlLCAwLjg0KTsKICAgIC0tbHVtby10aW50LTkwcGN0OiBoc2xhKDAsIDAlLCAxMDAlLCAwLjkpOwogICAgLS1sdW1vLXRpbnQ6ICNmZmY7CgogICAgLyogU2hhZGUgKi8KICAgIC0tbHVtby1zaGFkZS01cGN0OiBoc2xhKDIxNCwgNjElLCAyNSUsIDAuMDUpOwogICAgLS1sdW1vLXNoYWRlLTEwcGN0OiBoc2xhKDIxNCwgNTclLCAyNCUsIDAuMSk7CiAgICAtLWx1bW8tc2hhZGUtMjBwY3Q6IGhzbGEoMjE0LCA1MyUsIDIzJSwgMC4xNik7CiAgICAtLWx1bW8tc2hhZGUtMzBwY3Q6IGhzbGEoMjE0LCA1MCUsIDIyJSwgMC4yNik7CiAgICAtLWx1bW8tc2hhZGUtNDBwY3Q6IGhzbGEoMjE0LCA0NyUsIDIxJSwgMC4zOCk7CiAgICAtLWx1bW8tc2hhZGUtNTBwY3Q6IGhzbGEoMjE0LCA0NSUsIDIwJSwgMC41KTsKICAgIC0tbHVtby1zaGFkZS02MHBjdDogaHNsYSgyMTQsIDQzJSwgMTklLCAwLjYxKTsKICAgIC0tbHVtby1zaGFkZS03MHBjdDogaHNsYSgyMTQsIDQyJSwgMTglLCAwLjcyKTsKICAgIC0tbHVtby1zaGFkZS04MHBjdDogaHNsYSgyMTQsIDQxJSwgMTclLCAwLjgzKTsKICAgIC0tbHVtby1zaGFkZS05MHBjdDogaHNsYSgyMTQsIDQwJSwgMTYlLCAwLjk0KTsKICAgIC0tbHVtby1zaGFkZTogaHNsKDIxNCwgMzUlLCAxNSUpOwoKICAgIC8qIENvbnRyYXN0ICovCiAgICAtLWx1bW8tY29udHJhc3QtNXBjdDogdmFyKC0tbHVtby1zaGFkZS01cGN0KTsKICAgIC0tbHVtby1jb250cmFzdC0xMHBjdDogdmFyKC0tbHVtby1zaGFkZS0xMHBjdCk7CiAgICAtLWx1bW8tY29udHJhc3QtMjBwY3Q6IHZhcigtLWx1bW8tc2hhZGUtMjBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTMwcGN0OiB2YXIoLS1sdW1vLXNoYWRlLTMwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC00MHBjdDogdmFyKC0tbHVtby1zaGFkZS00MHBjdCk7CiAgICAtLWx1bW8tY29udHJhc3QtNTBwY3Q6IHZhcigtLWx1bW8tc2hhZGUtNTBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTYwcGN0OiB2YXIoLS1sdW1vLXNoYWRlLTYwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdC03MHBjdDogdmFyKC0tbHVtby1zaGFkZS03MHBjdCk7CiAgICAtLWx1bW8tY29udHJhc3QtODBwY3Q6IHZhcigtLWx1bW8tc2hhZGUtODBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTkwcGN0OiB2YXIoLS1sdW1vLXNoYWRlLTkwcGN0KTsKICAgIC0tbHVtby1jb250cmFzdDogdmFyKC0tbHVtby1zaGFkZSk7CgogICAgLyogVGV4dCAqLwogICAgLS1sdW1vLWhlYWRlci10ZXh0LWNvbG9yOiB2YXIoLS1sdW1vLWNvbnRyYXN0KTsKICAgIC0tbHVtby1ib2R5LXRleHQtY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtOTBwY3QpOwogICAgLS1sdW1vLXNlY29uZGFyeS10ZXh0LWNvbG9yOiB2YXIoLS1sdW1vLWNvbnRyYXN0LTcwcGN0KTsKICAgIC0tbHVtby10ZXJ0aWFyeS10ZXh0LWNvbG9yOiB2YXIoLS1sdW1vLWNvbnRyYXN0LTUwcGN0KTsKICAgIC0tbHVtby1kaXNhYmxlZC10ZXh0LWNvbG9yOiB2YXIoLS1sdW1vLWNvbnRyYXN0LTMwcGN0KTsKCiAgICAvKiBQcmltYXJ5ICovCiAgICAtLWx1bW8tcHJpbWFyeS1jb2xvcjogaHNsKDIxNCwgOTAlLCA1MiUpOwogICAgLS1sdW1vLXByaW1hcnktY29sb3ItNTBwY3Q6IGhzbGEoMjE0LCA5MCUsIDUyJSwgMC41KTsKICAgIC0tbHVtby1wcmltYXJ5LWNvbG9yLTEwcGN0OiBoc2xhKDIxNCwgOTAlLCA1MiUsIDAuMSk7CiAgICAtLWx1bW8tcHJpbWFyeS10ZXh0LWNvbG9yOiB2YXIoLS1sdW1vLXByaW1hcnktY29sb3IpOwogICAgLS1sdW1vLXByaW1hcnktY29udHJhc3QtY29sb3I6ICNmZmY7CgogICAgLyogRXJyb3IgKi8KICAgIC0tbHVtby1lcnJvci1jb2xvcjogaHNsKDMsIDEwMCUsIDYxJSk7CiAgICAtLWx1bW8tZXJyb3ItY29sb3ItNTBwY3Q6IGhzbGEoMywgMTAwJSwgNjAlLCAwLjUpOwogICAgLS1sdW1vLWVycm9yLWNvbG9yLTEwcGN0OiBoc2xhKDMsIDEwMCUsIDYwJSwgMC4xKTsKICAgIC0tbHVtby1lcnJvci10ZXh0LWNvbG9yOiBoc2woMywgOTIlLCA1MyUpOwogICAgLS1sdW1vLWVycm9yLWNvbnRyYXN0LWNvbG9yOiAjZmZmOwoKICAgIC8qIFN1Y2Nlc3MgKi8KICAgIC0tbHVtby1zdWNjZXNzLWNvbG9yOiBoc2woMTQ1LCA4MCUsIDQyJSk7IC8qIGhzbCgxNDQsODIlLDM3JSk7ICovCiAgICAtLWx1bW8tc3VjY2Vzcy1jb2xvci01MHBjdDogaHNsYSgxNDUsIDc2JSwgNDQlLCAwLjU1KTsKICAgIC0tbHVtby1zdWNjZXNzLWNvbG9yLTEwcGN0OiBoc2xhKDE0NSwgNzYlLCA0NCUsIDAuMTIpOwogICAgLS1sdW1vLXN1Y2Nlc3MtdGV4dC1jb2xvcjogaHNsKDE0NSwgMTAwJSwgMzIlKTsKICAgIC0tbHVtby1zdWNjZXNzLWNvbnRyYXN0LWNvbG9yOiAjZmZmOwogIH0KYCxpMXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtpMXQuaW5uZXJIVE1MPWA8c3R5bGU+JHtuMXQudG9TdHJpbmcoKS5yZXBsYWNlKCI6aG9zdCIsImh0bWwiKX08L3N0eWxlPmAsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChpMXQuY29udGVudCk7dDF0KCIiLCRRdGAKICBbdGhlbWV+PSdkYXJrJ10gewogICAgLyogQmFzZSAoYmFja2dyb3VuZCkgKi8KICAgIC0tbHVtby1iYXNlLWNvbG9yOiBoc2woMjE0LCAzNSUsIDIxJSk7CgogICAgLyogVGludCAqLwogICAgLS1sdW1vLXRpbnQtNXBjdDogaHNsYSgyMTQsIDY1JSwgODUlLCAwLjA2KTsKICAgIC0tbHVtby10aW50LTEwcGN0OiBoc2xhKDIxNCwgNjAlLCA4MCUsIDAuMTQpOwogICAgLS1sdW1vLXRpbnQtMjBwY3Q6IGhzbGEoMjE0LCA2NCUsIDgyJSwgMC4yMyk7CiAgICAtLWx1bW8tdGludC0zMHBjdDogaHNsYSgyMTQsIDY5JSwgODQlLCAwLjMyKTsKICAgIC0tbHVtby10aW50LTQwcGN0OiBoc2xhKDIxNCwgNzMlLCA4NiUsIDAuNDEpOwogICAgLS1sdW1vLXRpbnQtNTBwY3Q6IGhzbGEoMjE0LCA3OCUsIDg4JSwgMC41KTsKICAgIC0tbHVtby10aW50LTYwcGN0OiBoc2xhKDIxNCwgODIlLCA5MCUsIDAuNik7CiAgICAtLWx1bW8tdGludC03MHBjdDogaHNsYSgyMTQsIDg3JSwgOTIlLCAwLjcpOwogICAgLS1sdW1vLXRpbnQtODBwY3Q6IGhzbGEoMjE0LCA5MSUsIDk0JSwgMC44KTsKICAgIC0tbHVtby10aW50LTkwcGN0OiBoc2xhKDIxNCwgOTYlLCA5NiUsIDAuOSk7CiAgICAtLWx1bW8tdGludDogaHNsKDIxNCwgMTAwJSwgOTglKTsKCiAgICAvKiBTaGFkZSAqLwogICAgLS1sdW1vLXNoYWRlLTVwY3Q6IGhzbGEoMjE0LCAwJSwgMCUsIDAuMDcpOwogICAgLS1sdW1vLXNoYWRlLTEwcGN0OiBoc2xhKDIxNCwgNCUsIDIlLCAwLjE1KTsKICAgIC0tbHVtby1zaGFkZS0yMHBjdDogaHNsYSgyMTQsIDglLCA0JSwgMC4yMyk7CiAgICAtLWx1bW8tc2hhZGUtMzBwY3Q6IGhzbGEoMjE0LCAxMiUsIDYlLCAwLjMyKTsKICAgIC0tbHVtby1zaGFkZS00MHBjdDogaHNsYSgyMTQsIDE2JSwgOCUsIDAuNDEpOwogICAgLS1sdW1vLXNoYWRlLTUwcGN0OiBoc2xhKDIxNCwgMjAlLCAxMCUsIDAuNSk7CiAgICAtLWx1bW8tc2hhZGUtNjBwY3Q6IGhzbGEoMjE0LCAyNCUsIDEyJSwgMC42KTsKICAgIC0tbHVtby1zaGFkZS03MHBjdDogaHNsYSgyMTQsIDI4JSwgMTMlLCAwLjcpOwogICAgLS1sdW1vLXNoYWRlLTgwcGN0OiBoc2xhKDIxNCwgMzIlLCAxMyUsIDAuOCk7CiAgICAtLWx1bW8tc2hhZGUtOTBwY3Q6IGhzbGEoMjE0LCAzMyUsIDEzJSwgMC45KTsKICAgIC0tbHVtby1zaGFkZTogaHNsKDIxNCwgMzMlLCAxMyUpOwoKICAgIC8qIENvbnRyYXN0ICovCiAgICAtLWx1bW8tY29udHJhc3QtNXBjdDogdmFyKC0tbHVtby10aW50LTVwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTEwcGN0OiB2YXIoLS1sdW1vLXRpbnQtMTBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTIwcGN0OiB2YXIoLS1sdW1vLXRpbnQtMjBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTMwcGN0OiB2YXIoLS1sdW1vLXRpbnQtMzBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTQwcGN0OiB2YXIoLS1sdW1vLXRpbnQtNDBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTUwcGN0OiB2YXIoLS1sdW1vLXRpbnQtNTBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTYwcGN0OiB2YXIoLS1sdW1vLXRpbnQtNjBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTcwcGN0OiB2YXIoLS1sdW1vLXRpbnQtNzBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTgwcGN0OiB2YXIoLS1sdW1vLXRpbnQtODBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0LTkwcGN0OiB2YXIoLS1sdW1vLXRpbnQtOTBwY3QpOwogICAgLS1sdW1vLWNvbnRyYXN0OiB2YXIoLS1sdW1vLXRpbnQpOwoKICAgIC8qIFRleHQgKi8KICAgIC0tbHVtby1oZWFkZXItdGV4dC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdCk7CiAgICAtLWx1bW8tYm9keS10ZXh0LWNvbG9yOiB2YXIoLS1sdW1vLWNvbnRyYXN0LTkwcGN0KTsKICAgIC0tbHVtby1zZWNvbmRhcnktdGV4dC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC03MHBjdCk7CiAgICAtLWx1bW8tdGVydGlhcnktdGV4dC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC01MHBjdCk7CiAgICAtLWx1bW8tZGlzYWJsZWQtdGV4dC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC0zMHBjdCk7CgogICAgLyogUHJpbWFyeSAqLwogICAgLS1sdW1vLXByaW1hcnktY29sb3I6IGhzbCgyMTQsIDg2JSwgNTUlKTsKICAgIC0tbHVtby1wcmltYXJ5LWNvbG9yLTUwcGN0OiBoc2xhKDIxNCwgODYlLCA1NSUsIDAuNSk7CiAgICAtLWx1bW8tcHJpbWFyeS1jb2xvci0xMHBjdDogaHNsYSgyMTQsIDkwJSwgNjMlLCAwLjEpOwogICAgLS1sdW1vLXByaW1hcnktdGV4dC1jb2xvcjogaHNsKDIxNCwgMTAwJSwgNzAlKTsKICAgIC0tbHVtby1wcmltYXJ5LWNvbnRyYXN0LWNvbG9yOiAjZmZmOwoKICAgIC8qIEVycm9yICovCiAgICAtLWx1bW8tZXJyb3ItY29sb3I6IGhzbCgzLCA5MCUsIDYzJSk7CiAgICAtLWx1bW8tZXJyb3ItY29sb3ItNTBwY3Q6IGhzbGEoMywgOTAlLCA2MyUsIDAuNSk7CiAgICAtLWx1bW8tZXJyb3ItY29sb3ItMTBwY3Q6IGhzbGEoMywgOTAlLCA2MyUsIDAuMSk7CiAgICAtLWx1bW8tZXJyb3ItdGV4dC1jb2xvcjogaHNsKDMsIDEwMCUsIDY3JSk7CgogICAgLyogU3VjY2VzcyAqLwogICAgLS1sdW1vLXN1Y2Nlc3MtY29sb3I6IGhzbCgxNDUsIDY1JSwgNDIlKTsKICAgIC0tbHVtby1zdWNjZXNzLWNvbG9yLTUwcGN0OiBoc2xhKDE0NSwgNjUlLCA0MiUsIDAuNSk7CiAgICAtLWx1bW8tc3VjY2Vzcy1jb2xvci0xMHBjdDogaHNsYSgxNDUsIDY1JSwgNDIlLCAwLjEpOwogICAgLS1sdW1vLXN1Y2Nlc3MtdGV4dC1jb2xvcjogaHNsKDE0NSwgODUlLCA0NyUpOwogIH0KCiAgaHRtbCB7CiAgICBjb2xvcjogdmFyKC0tbHVtby1ib2R5LXRleHQtY29sb3IpOwogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbHVtby1iYXNlLWNvbG9yKTsKICB9CgogIFt0aGVtZX49J2RhcmsnXSB7CiAgICBjb2xvcjogdmFyKC0tbHVtby1ib2R5LXRleHQtY29sb3IpOwogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbHVtby1iYXNlLWNvbG9yKTsKICB9CgogIGgxLAogIGgyLAogIGgzLAogIGg0LAogIGg1LAogIGg2IHsKICAgIGNvbG9yOiB2YXIoLS1sdW1vLWhlYWRlci10ZXh0LWNvbG9yKTsKICB9CgogIGEgewogICAgY29sb3I6IHZhcigtLWx1bW8tcHJpbWFyeS10ZXh0LWNvbG9yKTsKICB9CgogIGJsb2NrcXVvdGUgewogICAgY29sb3I6IHZhcigtLWx1bW8tc2Vjb25kYXJ5LXRleHQtY29sb3IpOwogIH0KCiAgY29kZSwKICBwcmUgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC0xMHBjdCk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1sdW1vLWJvcmRlci1yYWRpdXMtbSk7CiAgfQpgLHttb2R1bGVJZDoibHVtby1jb2xvciJ9KTt0MXQoIiIsJFF0YAogIDpob3N0IHsKICAgIGNvbG9yOiB2YXIoLS1sdW1vLWJvZHktdGV4dC1jb2xvcikgIWltcG9ydGFudDsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWx1bW8tYmFzZS1jb2xvcikgIWltcG9ydGFudDsKICB9CmAse21vZHVsZUlkOiJsdW1vLWNvbG9yLWxlZ2FjeSIsaW5jbHVkZTpbImx1bW8tY29sb3IiXX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLwpjb25zdCByMXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtyMXQuaW5uZXJIVE1MPSdcbiAgPHN0eWxlPlxuICAgIEBmb250LWZhY2Uge1xuICAgICAgZm9udC1mYW1pbHk6IFwnbHVtby1pY29uc1wnO1xuICAgICAgc3JjOiB1cmwoZGF0YTphcHBsaWNhdGlvbi9mb250LXdvZmY7Y2hhcnNldD11dGYtODtiYXNlNjQsZDA5R1JnQUJBQUFBQUJFY0FBc0FBQUFBSWl3QUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJIVTFWQ0FBQUJDQUFBQURzQUFBQlVJSXNsZWs5VEx6SUFBQUZFQUFBQVF3QUFBRlpBSVV1S1kyMWhjQUFBQVlnQUFBRDRBQUFEcnNDVThkNW5iSGxtQUFBQ2dBQUFDMk1BQUJkNGg5VG8yV2hsWVdRQUFBM2tBQUFBTUFBQUFEWmEvNlNzYUdobFlRQUFEaFFBQUFBZEFBQUFKQWJwQTM1b2JYUjRBQUFPTkFBQUFCQUFBQUNzcEJBQUFHeHZZMkVBQUE1RUFBQUFXQUFBQUZoNTVJQXNiV0Y0Y0FBQURwd0FBQUFmQUFBQUlBRktBWEJ1WVcxbEFBQU92QUFBQVRFQUFBSXVVVUpaQ0hCdmMzUUFBQS93QUFBQkt3QUFBZWxtOFN6VmVKeGpZR1JnWU9CaU1HQ3dZMkJ5Y2ZNSlllRExTU3pKWTVCaVlHR0FBSkE4TXBzeEp6TTlrWUVEeGdQS3NZQnBEaUJtZzRnQ0FDWTdCVWdBZUp4allHUyt5RGlCZ1pXQmdhbUthUThEQTBNUGhHWjh3R0RJeUFRVVpXQmxac0FLQXRKY1V4Z2NYakcrMG1JTytwL0ZFTVVjeERBTktNd0lrZ01BQm44TUxRQjRuTzNTV1c2RE1BQkYwVXR3Q0VuSVBNL3poTEs4THFoZlhSeWJTUDE0WFVZdEhWOWhHWVF3UUJOSW8zY1VJUGtoUWVNN3JpYjFla3FuWGc5ODFYdUMxcXZ5ODRsem9qbGVoM3B1eEwwaFBqR2pSVTQ3M3RlbG9FZWZBVU5Hakprd1pjYWNCVXRXck5td1pjZWVBMGRPbkxsdzVjYWRCMDllbFBHaEdmK2owTlRJLzY1S2ZYZXJUNkpocUtucFJLdGdPcHVxYVRydEtqUFVscUhtaHRvMjFJN3BMNmk2aGxxWTNxN3FHV3JmVUFlR09qVFVrYUdPRFhWaXFGTkRuUm5xM0ZBWGhybzAxSldocmcxMVk2aGJROTBaNnQ1UUQ0WjZOTlNUb1o0TjlXS29WME85R2VyZFVCK0cralRVbDZHV1J2a0wyNEJrRVhpY3RWaDliRnZWRmIvbnh2YnorN1JmL042ekhjZDJiQ2ZQK1dnYzFaOU4wanBObkVMNmtiUlZTNkhBMmhRWUdoOVRHUjFDYkNxYTJyWHJXT2tRRS9zSE5KZ210WnZvVk5acUUxQjFETkh4elRReENlaFVUWWlKVFF5RU51aTBxU0xlenIzUGR1eVFmZ21SV09mZGU4Kzk1NTF6N3Jubi9PNGpMb0ovYlJQMFVhS1FNTEZKanBCQXZwaExaQzNEazBvazdXQnpSMi91cEpzN1J5dy9uZkZibG4vdXVOL2FwQ3Z3cktMclN2VXFSdWZibTVwbjBmczB3NGdZeG5HVlA2cUhuTzRiV2lEUUdRZ3d0UzZsbTNsQjNRb1gxTTJ2d0VtdXppckYzOXkrRXMyK0RKOGQxcGt5cUJJcW96ZTNEMStaejREckZvYXp4SThkV3dNckRsWjJETXFRQVI5QVJPc0pVKzJjbWxUUGF6VGNvNTJGMXhUYTJhMitLOHZ2cTkyZFZIbXRMb1BlUVgvQVpQUllHdGhEWU9lWmpCaktvRnNWR3VsUjNsV1U5NVdlQ0s0NHFIVTdNaFdVR1VLWkRUM29LVWNHMkdXdWgrRUREZlVZQS9qaEFobDBUT3NKTllTRXU3bVFtaTNVemZYd1pLQTRCc1ZzSExYUVlHZ1JXOTV1RXRwSjFWZm45WGlMcmlSQmxGRXF4c0RqQTA5eUNOVW9ReHh3ZDdLV1NUdDJ5M0dUS2lmbHFIUlNvV1pjM20xMVdhL2ZKZEZnWEQ0c1NZZmxlSkJLZDhHTXo3SjhkWm4vY0dSQ2NLR0RuQTJHZTNmS3pjdmxuVEROdGhHV0xYelgvV2FYdFVBbVJnZUxsSFNyMzByMEc5VVRYTWIwQXRtd3pPb3k3M2ZrU2xIWmtkdXcvVFl1VTljQUQ0WXV0UG94VFRzQTM3OTd3VnI0Wi8xTkM1ekFSSHI0dnR4Smp4SWZpWk1oTWtiV2srMTRCbkpaS3dxR1p3RGZzd0x5eFdEU2cxMXJGTEpGN05vcHhqZDFoMS9RT1Qrb2V6Z2Z1M1lxK0hrK2R1ZjV4KzQwbzFHVGthSWdpa0svSUVuQzZhWXhDVUJhWkpTTjRYVFlGalUvWU1OSUtxSndoREdPQ0NJOEZEWG5YbVhqdEdoR0p5U2hxakFPbkJPa1cySkc5UzdHZ1llTVdBVTVKemhuV21CT2FPTStDS0VQb3FTZkZEQzJVbnErRExsVWdVVlVGRkxaR0pnNmp0bG9qc2RzYThrUE9iUHVKZGk1ZG5CZEJzTEpNR1RXRGE0dDJKdnR3dVBvOXMrWTg2c3V2L1czM1FHMXJBYU9BVVYrdng0SzZmMkQwNFBWS2xDN1dMU3JaekFpNDVaVjZsSUM3V29YcW1SeXZVcW9Wd3J6VW9Wc0lqZVRYV1F2K1JINUdUbEJYaUIvSW44bG4wSWJCQ0FGT2FqQUpyZ1pZeU9IV3FPZlVlL2FIakkxMlI2T1FvMWpDZ3QyMTVsKzRmNlhQYiswTU5vdTBWKzQzbjJGNzd0U2ZSYjI0ZDd6aXRnbkttdllIczY5enVnYVB2Qnd2NmlvWGtiMkxkTDY1QXR3NTF1TGtYbHUxYmhNTVJjWFNQY1lvcUtJUmxoMzRsUVA4LzVKYnVVRnllNHZ4RDYvNk14RkYxMUMwdVZMcjlVbGd3NDR0UzNwTVZpTkxVRXhieWNGZ0xJY3QrUURNaWJSaW14MXlkVXo4RlhaaXVPSURCT01WWDJuVVpjK2h1TkU1WFVKODF1aUpvaWFid3FhVkYwdWFjS2JhdS9wbDRSMlZXMFhYbEpyYTZib1ZyWUc2NDZURjVOWXp3eTR2akVOVnJEbGNOcFpQbDhESDZYWDhYV0N4MG12V1ZaWTZLRkxydnNZNjYvelBpY3Q1Rm54YU5VUi9qdXZaQ00zVHZENjBFMlcxdFppemJYVFBEdWFiY20wbmJienBXS3BtQTFheUJROGdpZWRMVU0rQTBrTmpCalFqbXVZejdZcmdJWFl2bUY2M1pMQndTWHJwbjlUYjl3d2RkL1UxSDBQTVFLM1hjTzh1bDNXVDdQeVBQZHB5MFRlbUt4TlJjSk5hdWlYSm5uVURwVXBwUVdzNFNuVUl5MEVFU0dZcUpZUUxHSHh6YUdXd1ZJYVM2WTdtUUZNOFpqWURRM2F4amY2MVNXalUzM0p3T1pBMXB3YUcxTDltemY3MWFIUmRYMUpIdzZGcDBhWGhOd2JxeWVHTmc0TmJkekdDQnhvejRaWGp5NE51NjlacjZzRFk2dk1yTFU1bkExUDhKa2JkV1hKNkVSZk1yeXZOaDFKZlE5K1Q0ZEloR3ZLOXczZHhqQkJ6YXRzUS9NbE9IVklEbllwRHo2b2RBWGxRMDF0MlBhNUlhZmQ4TU1weEFlREtQMEM2Q2pnVkxUNW9zQjZpY1V4MDFsV2pYeHpUL0d5UkYyd2VsRU01Wi83akczVmpRMVNyTm41SWJ5ek9HNWRvYkIzL1FIeHladnNYY296OElvRXdTN3BsQ2crenhIUWs0MjRxOUJmRXBrRVNKYkZIUXVzREJTV0ZrdUJrb1BPMGtMS3dSVllqeEdYbEhUY1REUU1KL0g2VFg5YWZrTzdtbnJhVE8xZmVUblpBWEx1NGNwN0hBWE1tTkcxeWVGazlUZ1MvTkhoWlIvNFFvQlRyL1pCKzZoQ2d5bDE1TnExVWJONm5FMS9ablAxVTJjaXpDQnB2czhjSlFaSjRMa1l4NU4veVpQQVVaTlFRMFY0ZjNCUWxsV3JLM1lSemwzMGRPVDZSVm4ydXBOdXI2d29TYThDcXBkVC9hS25CTTRvM2pOdXI5ZDl4cXRVVDZ2ZUJFdDlDYTlhdCtFUnpFRWhVa1I4c2E1bVE0YVZ2Sm9WZUVBOHpJNGVpNW1VTFhGR3lVN3ovNlRBZVlMVmNwelNXWlk4UFlZRjV5clRWNjBzVDArWFYxNDF2WCsrV2YxNlYyYkZlR1ZQWlh4RnBrdnllS1RXTGx6ZlcwbW5LeHNZNlkzMjk0LzA5OThTQ2ZYMWJsbTVwYmN2RkdscS9yMDdNUkFNaFlJRGlXNUpGS1dXM3ZkckVwQ3NaU0pHK29tN1p1L1BTU2NaSmhOa0xibVc1V3NyMTJwV3FXNXpLdGx3UlM0YkZPeFV3MTdtQ3p5Nmxza0NEbDFXWU9HV0RZckFEck1BN0JERHdlV1dOZDVrb2lKblIxZHoreXRMUDJxMFNxUEIxbG5LMmNjQjdSWWU0RlNvUGtzM2lCM3Q0dHhUU0hjdGIyc3kxaXZrMHB2SHVDTm02dzFmNnd4djMrT0NnTjc4THFkUW5VVmg3UjBvVEFwMHpPZjJyYlc3NzBWdTVDMmRJeUdkVG5Ibzh6U2ppN2RwcGowVVNvVkN6K2xoUk1UaDUzVGVxOVZiR2ZianVTYkFvb1NkWGF5WTRQWUhnMzc0QzZmN2dsMUIvRFh1SjQvUVh4T0JkSkZKc3BGc0kzZWdwb1dVVUNqbFRJRm5OWU5sK1p5WkttQmVZS0dIa0QxUXlEbGhhS2JLd0tjSUpxSjRUTEoyT21kWS9KV1hhZTREZEdCdzhIWjdlWGNnRkYyenIyU29hbERyeTVpS3FvYTBQdWhlM2hQUTJzM2VsVFlNK01JK24zckswS2dMNy9MYTNHZU1MdDZtN3U5MTJ2R252dE9SaUlhMHFCbWhxVmkrWFc5WE5CbXFiOGVWZ0t6SUhmR0k1Yk5vRzdYMFVDemVJU21xSWNPL25ZOEZIN1U4YXZYOWZ4L1NUK2h4MHNlelB3OVF5OE11bTNHV2YyTjRVeS95SVlHVkJYYkpIV0lacDdkZlRjcHRkTVRyOVFtcTdEYWlLL3VrcUNMNGt0NFJVZlM1WFBuTXRtVDIyL21RRnFGN2VtU3F0cmx1OFNWRWx4RFJKclpPRGtwdXdlMFZmVGZqZEVwMWY3QTd2K2Zvek5CWFVKLzZXVHVLMlR0RmxwRlZaQVozTGNGdlVpMVoycDJZVCtFTUFrR0pWU3RPekxUQVBnNElxV0lBbHpSU2pPQmtsMnp4ajNUS3ljcHpUL01udlgzdWFTTVdNK2dVMHJrWGpvaGhlZlZSTWFwczMva0xNU0t2MjNsVDIzdXhRcmtRanlPSmxlTURzZGhBbkQ2WkdFbFdaNU1qQ1h6Q0UvaGtXWCtXRjRrbnpHaFZPeUsyZVFaZWtWM2V5bzB6TDhrdVlXQ25EQ3ZqamhBa2NUUE9CRFhWZG9hdjNIVmNGblFqTHZ0VjlTMnAwekE2SmVnUHdNUXh0K3lGYjNsbDl6R2xxLzVkUktiM2NFeVFZb2FOWXBoYXJKN3hDQjdBV3hzTFkzampaWFkwWHNaajBXandjOUk2UFAvZEtBQm5DWmFxSHBhWkVBQ3hrNFplTFpTS05nWkFCbCtsWVFYMXNKUU9TWDNuNnI0MTBldmNvdWQ1SmVBR1VYVlA5SDF0Wk9LZWpUcTRPbm8wejBlcnJvMUZybk9wb2h2YTFkL2hUZHRWc1FkS041VzlSbFQzTmpEMG56bnlLTlRnS0FNZldOV2N5b2RWMElHTFBJSE9GMG80SnlxdWZhSzR6NldJSXp1R2gzZDhjOGN3UWc4RVIrT1Z4eXJqZG04dk51aHRzNExvT2loR3hJTXVVZGd6d2lZTjd4aGgxK29abkpOdVRHN2dRWnZ1NFhXWjlHQVpaakdFdWJ3ZVBxWWh0S0RUSCs5VlFrbDE3L2lHeWJzbkorOCtzS3R5UHJjbGw5dHk2NVpzZHN0LzlpcXBFS2g3TTVWZEJ4aDNjc09kTmM2dFczSTF1eU0xUHpPWGVnU09yTEZzRk5JMk8yN00rVEYyQXBuTjlNVXY1dWQ2TGp4SXZFUW5IUnp4SXU0SXNBOU1MRmtKbjJ0Y1pvWjdPTjdkWGU3dWpyYzhIcnVzUEthbWxxWHdkNzdsUVV1THBpbGF1NFBVTWFwdWVCYjdpclU0Um9VWEVZWHVWdUlHbFJHbU9wKzJsTmthUlBWemlPcW1sYVp2YXFHNGRGZ1NqMGp4RUpXcnYxMklVV250bXcrcmZRYXJSRTBBcGg0b2NJNm5sVWxHcXMrdTMvK1QvZXRoVzYyUHBIcDJlSGJac3RuaC93T085NXlEQUhpY1kyQmtZR0FBNHBtSjZRSHgvRFpmR2JpWlh3QkZHR3BVTnpRaTZQK3ZtYWN5M1FKeU9SaVlRS0lBTm9VTFZYaWNZMkJrWUdBTytwOEZKRjh3QUFIelZBWkdCbFNnRFFCVzlnTnZBQUFBZUp4allHQmdZSDR4TkRBQXp3UW1qd0FBQUFBQVRnQ2FBT2dCQ2dFc0FVNEJjQUdhQWNRQjdnSWFBcHdDNkFTYUJMd0UxZ1R5QlE0RktnVjZCZEFGL2daRUJtWUd0Z2NZQjVBSUdBaFNDR29JL2dsR0NiNEoyZ29FQ2p3S2dncTRDdkFMVUF1V0M3eDRuR05nWkdCZzBHWk1ZUkJsQUFFbUlPWUNRZ2FHLzJBK0F3QVlsQUc4QUhpY2JaRTlUc013R0liZjlBL1JTZ2dFWW1IeEFndHErak4yWkdqM0R0M1QxR2xUT1hIa3VCVzlBeWZnRUJ5Q2dUTndDQTdCVy9OSmxWQnR5ZC9qeCs4WEt3bUFhM3dod25GRTZJYjFPQnE0NE82UG02UWI0UmI1UWJpTkhoNkZPL1JENFM2ZU1SSHU0UmFhVDRoYWx6UjNlQlZ1NEFwdndrMzZkK0VXK1VPNGpYdDhDbmZvdjRXN1dPQkh1SWVuNk1Yc0N0dlBVMXZXYzczZW1jU2R4SWtXMnRXNUxkVW9IcDdrVEpmYUpWNnYxUEtnNnYxNjdIMm1NbWNMTmJXbDE4WllWVG03MWFtUE45NVhrOEVnRXgrbnRvREJEZ1VzK3NpUnNwYW9NZWY3cnVrTkVyaXppWE51d1M3SG1vZTl3Z2d4ditlNTVJekpNcVFUZU5ZVjAwc2N1TmJZOCtZeHJVZkdmY2FNWmIvQ05QUWUwNGJUMGxUaGJFdVQwc2ZZaEs2Sy8yM0FtZjNMeCtIMjRoY2o0R1NjQUFBQWVKeHRqdGx1Z3pBUVJia0pVRUpJdXUvN3ZxUjhsR05QQWNXeDBZQWI1ZS9Ma2xSOTZFZ2VuU3VmR1kwMzhQcUt2ZjlyaGdHRzhCRWd4QTRpakJCampBUVRUTEdMUGV6akFJYzR3akZPY0lvem5PTUNsN2pDTlc1d2l6dmM0d0dQZU1Jelh2Q0tON3pqQXpOOGVvblFSV1pTU2FZbWp2dWc2YXNlOThoRmx0ZXhNSm1tVk5tVjJXQnZkTmdaVWMrdWpBV3pYVzNVRG51MXc0M2FzU3RIYzhHcHpBWFgvcHkwanFUUVpKVGdrY3hKTHBhQ0YwbEQzMnhOdCs0M3RBc24yOURmdDAydURLUzJjakdVTmdzazI2cUsybEZ0aFlvVTI3SU5QcW1pRHFnNWdvZTBwcVI1cVNvcU1kZWsvQ1VaRnl3TDQ2ckVzaUltbGVxaXFvTXl0NGJhWGx1LzFHTGRORmY1emJjTm1kcjFZVVdDWmU0N28relVtYi9Eb1N0YnczY1ZzZWY5QUxqamlQUUEpIGZvcm1hdChcJ3dvZmZcJyk7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIH1cblxuICAgIGh0bWwge1xuICAgICAgLS1sdW1vLWljb25zLWFsaWduLWNlbnRlcjogIlxcZWEwMSI7XG4gICAgICAtLWx1bW8taWNvbnMtYWxpZ24tbGVmdDogIlxcZWEwMiI7XG4gICAgICAtLWx1bW8taWNvbnMtYWxpZ24tcmlnaHQ6ICJcXGVhMDMiO1xuICAgICAgLS1sdW1vLWljb25zLWFuZ2xlLWRvd246ICJcXGVhMDQiO1xuICAgICAgLS1sdW1vLWljb25zLWFuZ2xlLWxlZnQ6ICJcXGVhMDUiO1xuICAgICAgLS1sdW1vLWljb25zLWFuZ2xlLXJpZ2h0OiAiXFxlYTA2IjtcbiAgICAgIC0tbHVtby1pY29ucy1hbmdsZS11cDogIlxcZWEwNyI7XG4gICAgICAtLWx1bW8taWNvbnMtYXJyb3ctZG93bjogIlxcZWEwOCI7XG4gICAgICAtLWx1bW8taWNvbnMtYXJyb3ctbGVmdDogIlxcZWEwOSI7XG4gICAgICAtLWx1bW8taWNvbnMtYXJyb3ctcmlnaHQ6ICJcXGVhMGEiO1xuICAgICAgLS1sdW1vLWljb25zLWFycm93LXVwOiAiXFxlYTBiIjtcbiAgICAgIC0tbHVtby1pY29ucy1iYXItY2hhcnQ6ICJcXGVhMGMiO1xuICAgICAgLS1sdW1vLWljb25zLWJlbGw6ICJcXGVhMGQiO1xuICAgICAgLS1sdW1vLWljb25zLWNhbGVuZGFyOiAiXFxlYTBlIjtcbiAgICAgIC0tbHVtby1pY29ucy1jaGVja21hcms6ICJcXGVhMGYiO1xuICAgICAgLS1sdW1vLWljb25zLWNoZXZyb24tZG93bjogIlxcZWExMCI7XG4gICAgICAtLWx1bW8taWNvbnMtY2hldnJvbi1sZWZ0OiAiXFxlYTExIjtcbiAgICAgIC0tbHVtby1pY29ucy1jaGV2cm9uLXJpZ2h0OiAiXFxlYTEyIjtcbiAgICAgIC0tbHVtby1pY29ucy1jaGV2cm9uLXVwOiAiXFxlYTEzIjtcbiAgICAgIC0tbHVtby1pY29ucy1jbG9jazogIlxcZWExNCI7XG4gICAgICAtLWx1bW8taWNvbnMtY29nOiAiXFxlYTE1IjtcbiAgICAgIC0tbHVtby1pY29ucy1jcm9zczogIlxcZWExNiI7XG4gICAgICAtLWx1bW8taWNvbnMtZG93bmxvYWQ6ICJcXGVhMTciO1xuICAgICAgLS1sdW1vLWljb25zLWRyb3Bkb3duOiAiXFxlYTE4IjtcbiAgICAgIC0tbHVtby1pY29ucy1lZGl0OiAiXFxlYTE5IjtcbiAgICAgIC0tbHVtby1pY29ucy1lcnJvcjogIlxcZWExYSI7XG4gICAgICAtLWx1bW8taWNvbnMtZXllOiAiXFxlYTFiIjtcbiAgICAgIC0tbHVtby1pY29ucy1leWUtZGlzYWJsZWQ6ICJcXGVhMWMiO1xuICAgICAgLS1sdW1vLWljb25zLW1lbnU6ICJcXGVhMWQiO1xuICAgICAgLS1sdW1vLWljb25zLW1pbnVzOiAiXFxlYTFlIjtcbiAgICAgIC0tbHVtby1pY29ucy1vcmRlcmVkLWxpc3Q6ICJcXGVhMWYiO1xuICAgICAgLS1sdW1vLWljb25zLXBob25lOiAiXFxlYTIwIjtcbiAgICAgIC0tbHVtby1pY29ucy1waG90bzogIlxcZWEyMSI7XG4gICAgICAtLWx1bW8taWNvbnMtcGxheTogIlxcZWEyMiI7XG4gICAgICAtLWx1bW8taWNvbnMtcGx1czogIlxcZWEyMyI7XG4gICAgICAtLWx1bW8taWNvbnMtcmVkbzogIlxcZWEyNCI7XG4gICAgICAtLWx1bW8taWNvbnMtcmVsb2FkOiAiXFxlYTI1IjtcbiAgICAgIC0tbHVtby1pY29ucy1zZWFyY2g6ICJcXGVhMjYiO1xuICAgICAgLS1sdW1vLWljb25zLXVuZG86ICJcXGVhMjciO1xuICAgICAgLS1sdW1vLWljb25zLXVub3JkZXJlZC1saXN0OiAiXFxlYTI4IjtcbiAgICAgIC0tbHVtby1pY29ucy11cGxvYWQ6ICJcXGVhMjkiO1xuICAgICAgLS1sdW1vLWljb25zLXVzZXI6ICJcXGVhMmEiO1xuICAgIH1cbiAgPC9zdHlsZT5cbicsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChyMXQuY29udGVudCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovCmNvbnN0IG8xdD0kUXRgCiAgOmhvc3QgewogICAgLS1sdW1vLXNpemUteHM6IDEuNjI1cmVtOwogICAgLS1sdW1vLXNpemUtczogMS44NzVyZW07CiAgICAtLWx1bW8tc2l6ZS1tOiAyLjI1cmVtOwogICAgLS1sdW1vLXNpemUtbDogMi43NXJlbTsKICAgIC0tbHVtby1zaXplLXhsOiAzLjVyZW07CgogICAgLyogSWNvbnMgKi8KICAgIC0tbHVtby1pY29uLXNpemUtczogMS4yNWVtOwogICAgLS1sdW1vLWljb24tc2l6ZS1tOiAxLjVlbTsKICAgIC0tbHVtby1pY29uLXNpemUtbDogMi4yNWVtOwogICAgLyogRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5ICovCiAgICAtLWx1bW8taWNvbi1zaXplOiB2YXIoLS1sdW1vLWljb24tc2l6ZS1tKTsKICB9CmAsYTF0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7YTF0LmlubmVySFRNTD1gPHN0eWxlPiR7bzF0LnRvU3RyaW5nKCkucmVwbGFjZSgiOmhvc3QiLCJodG1sIil9PC9zdHlsZT5gLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoYTF0LmNvbnRlbnQpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLwpjb25zdCBzMXQ9JFF0YAogIDpob3N0IHsKICAgIC8qIFNxdWFyZSAqLwogICAgLS1sdW1vLXNwYWNlLXhzOiAwLjI1cmVtOwogICAgLS1sdW1vLXNwYWNlLXM6IDAuNXJlbTsKICAgIC0tbHVtby1zcGFjZS1tOiAxcmVtOwogICAgLS1sdW1vLXNwYWNlLWw6IDEuNXJlbTsKICAgIC0tbHVtby1zcGFjZS14bDogMi41cmVtOwoKICAgIC8qIFdpZGUgKi8KICAgIC0tbHVtby1zcGFjZS13aWRlLXhzOiBjYWxjKHZhcigtLWx1bW8tc3BhY2UteHMpIC8gMikgdmFyKC0tbHVtby1zcGFjZS14cyk7CiAgICAtLWx1bW8tc3BhY2Utd2lkZS1zOiBjYWxjKHZhcigtLWx1bW8tc3BhY2UtcykgLyAyKSB2YXIoLS1sdW1vLXNwYWNlLXMpOwogICAgLS1sdW1vLXNwYWNlLXdpZGUtbTogY2FsYyh2YXIoLS1sdW1vLXNwYWNlLW0pIC8gMikgdmFyKC0tbHVtby1zcGFjZS1tKTsKICAgIC0tbHVtby1zcGFjZS13aWRlLWw6IGNhbGModmFyKC0tbHVtby1zcGFjZS1sKSAvIDIpIHZhcigtLWx1bW8tc3BhY2UtbCk7CiAgICAtLWx1bW8tc3BhY2Utd2lkZS14bDogY2FsYyh2YXIoLS1sdW1vLXNwYWNlLXhsKSAvIDIpIHZhcigtLWx1bW8tc3BhY2UteGwpOwoKICAgIC8qIFRhbGwgKi8KICAgIC0tbHVtby1zcGFjZS10YWxsLXhzOiB2YXIoLS1sdW1vLXNwYWNlLXhzKSBjYWxjKHZhcigtLWx1bW8tc3BhY2UteHMpIC8gMik7CiAgICAtLWx1bW8tc3BhY2UtdGFsbC1zOiB2YXIoLS1sdW1vLXNwYWNlLXMpIGNhbGModmFyKC0tbHVtby1zcGFjZS1zKSAvIDIpOwogICAgLS1sdW1vLXNwYWNlLXRhbGwtbTogdmFyKC0tbHVtby1zcGFjZS1tKSBjYWxjKHZhcigtLWx1bW8tc3BhY2UtbSkgLyAyKTsKICAgIC0tbHVtby1zcGFjZS10YWxsLWw6IHZhcigtLWx1bW8tc3BhY2UtbCkgY2FsYyh2YXIoLS1sdW1vLXNwYWNlLWwpIC8gMik7CiAgICAtLWx1bW8tc3BhY2UtdGFsbC14bDogdmFyKC0tbHVtby1zcGFjZS14bCkgY2FsYyh2YXIoLS1sdW1vLXNwYWNlLXhsKSAvIDIpOwogIH0KYCxsMXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtsMXQuaW5uZXJIVE1MPWA8c3R5bGU+JHtzMXQudG9TdHJpbmcoKS5yZXBsYWNlKCI6aG9zdCIsImh0bWwiKX08L3N0eWxlPmAsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsMXQuY29udGVudCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovCmNvbnN0IGMxdD0kUXRgCiAgOmhvc3QgewogICAgLyogQm9yZGVyIHJhZGl1cyAqLwogICAgLS1sdW1vLWJvcmRlci1yYWRpdXMtczogMC4yNWVtOyAvKiBDaGVja2JveCwgYmFkZ2UsIGRhdGUtcGlja2VyIHllYXIgaW5kaWNhdG9yLCBldGMgKi8KICAgIC0tbHVtby1ib3JkZXItcmFkaXVzLW06IHZhcigtLWx1bW8tYm9yZGVyLXJhZGl1cywgMC4yNWVtKTsgLyogQnV0dG9uLCB0ZXh0IGZpZWxkLCBtZW51IG92ZXJsYXksIGV0YyAqLwogICAgLS1sdW1vLWJvcmRlci1yYWRpdXMtbDogMC41ZW07IC8qIERpYWxvZywgbm90aWZpY2F0aW9uLCBldGMgKi8KICAgIC0tbHVtby1ib3JkZXItcmFkaXVzOiAwLjI1ZW07IC8qIERlcHJlY2F0ZWQgKi8KCiAgICAvKiBTaGFkb3cgKi8KICAgIC0tbHVtby1ib3gtc2hhZG93LXhzOiAwIDFweCA0cHggLTFweCB2YXIoLS1sdW1vLXNoYWRlLTUwcGN0KTsKICAgIC0tbHVtby1ib3gtc2hhZG93LXM6IDAgMnB4IDRweCAtMXB4IHZhcigtLWx1bW8tc2hhZGUtMjBwY3QpLCAwIDNweCAxMnB4IC0xcHggdmFyKC0tbHVtby1zaGFkZS0zMHBjdCk7CiAgICAtLWx1bW8tYm94LXNoYWRvdy1tOiAwIDJweCA2cHggLTFweCB2YXIoLS1sdW1vLXNoYWRlLTIwcGN0KSwgMCA4cHggMjRweCAtNHB4IHZhcigtLWx1bW8tc2hhZGUtNDBwY3QpOwogICAgLS1sdW1vLWJveC1zaGFkb3ctbDogMCAzcHggMThweCAtMnB4IHZhcigtLWx1bW8tc2hhZGUtMjBwY3QpLCAwIDEycHggNDhweCAtNnB4IHZhcigtLWx1bW8tc2hhZGUtNDBwY3QpOwogICAgLS1sdW1vLWJveC1zaGFkb3cteGw6IDAgNHB4IDI0cHggLTNweCB2YXIoLS1sdW1vLXNoYWRlLTIwcGN0KSwgMCAxOHB4IDY0cHggLThweCB2YXIoLS1sdW1vLXNoYWRlLTQwcGN0KTsKCiAgICAvKiBDbGlja2FibGUgZWxlbWVudCBjdXJzb3IgKi8KICAgIC0tbHVtby1jbGlja2FibGUtY3Vyc29yOiBkZWZhdWx0OwogIH0KYCx1MXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTt1MXQuaW5uZXJIVE1MPWA8c3R5bGU+JHtjMXQudG9TdHJpbmcoKS5yZXBsYWNlKCI6aG9zdCIsImh0bWwiKX08L3N0eWxlPmAsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh1MXQuY29udGVudCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovCmNvbnN0IGgxdD0kUXRgCiAgOmhvc3QgewogICAgLyogcHJldHRpZXItaWdub3JlICovCiAgICAtLWx1bW8tZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1JvYm90bycsICdTZWdvZSBVSScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWYsICdBcHBsZSBDb2xvciBFbW9qaScsICdTZWdvZSBVSSBFbW9qaScsICdTZWdvZSBVSSBTeW1ib2wnOwoKICAgIC8qIEZvbnQgc2l6ZXMgKi8KICAgIC0tbHVtby1mb250LXNpemUteHhzOiAwLjc1cmVtOwogICAgLS1sdW1vLWZvbnQtc2l6ZS14czogMC44MTI1cmVtOwogICAgLS1sdW1vLWZvbnQtc2l6ZS1zOiAwLjg3NXJlbTsKICAgIC0tbHVtby1mb250LXNpemUtbTogMXJlbTsKICAgIC0tbHVtby1mb250LXNpemUtbDogMS4xMjVyZW07CiAgICAtLWx1bW8tZm9udC1zaXplLXhsOiAxLjM3NXJlbTsKICAgIC0tbHVtby1mb250LXNpemUteHhsOiAxLjc1cmVtOwogICAgLS1sdW1vLWZvbnQtc2l6ZS14eHhsOiAyLjVyZW07CgogICAgLyogTGluZSBoZWlnaHRzICovCiAgICAtLWx1bW8tbGluZS1oZWlnaHQteHM6IDEuMjU7CiAgICAtLWx1bW8tbGluZS1oZWlnaHQtczogMS4zNzU7CiAgICAtLWx1bW8tbGluZS1oZWlnaHQtbTogMS42MjU7CiAgfQpgLGQxdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO2QxdC5pbm5lckhUTUw9YDxzdHlsZT4ke2gxdC50b1N0cmluZygpLnJlcGxhY2UoIjpob3N0IiwiaHRtbCIpfTwvc3R5bGU+YCxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGQxdC5jb250ZW50KTt0MXQoIiIsJFF0YAogIGh0bWwgewogICAgZm9udC1mYW1pbHk6IHZhcigtLWx1bW8tZm9udC1mYW1pbHkpOwogICAgZm9udC1zaXplOiB2YXIoLS1sdW1vLWZvbnQtc2l6ZSwgdmFyKC0tbHVtby1mb250LXNpemUtbSkpOwogICAgbGluZS1oZWlnaHQ6IHZhcigtLWx1bW8tbGluZS1oZWlnaHQtbSk7CiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7CiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7CiAgfQoKICAvKiBDYW7igJl0IGNvbWJpbmUgd2l0aCB0aGUgYWJvdmUgc2VsZWN0b3IgYmVjYXVzZSB0aGF0IGRvZXNu4oCZdCB3b3JrIGluIGJyb3dzZXJzIHdpdGhvdXQgbmF0aXZlIHNoYWRvdyBkb20gKi8KICA6aG9zdCB7CiAgICBmb250LWZhbWlseTogdmFyKC0tbHVtby1mb250LWZhbWlseSk7CiAgICBmb250LXNpemU6IHZhcigtLWx1bW8tZm9udC1zaXplLCB2YXIoLS1sdW1vLWZvbnQtc2l6ZS1tKSk7CiAgICBsaW5lLWhlaWdodDogdmFyKC0tbHVtby1saW5lLWhlaWdodC1tKTsKICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsKICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKICB9CgogIHNtYWxsLAogIFt0aGVtZX49J2ZvbnQtc2l6ZS1zJ10gewogICAgZm9udC1zaXplOiB2YXIoLS1sdW1vLWZvbnQtc2l6ZS1zKTsKICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1sdW1vLWxpbmUtaGVpZ2h0LXMpOwogIH0KCiAgW3RoZW1lfj0nZm9udC1zaXplLXhzJ10gewogICAgZm9udC1zaXplOiB2YXIoLS1sdW1vLWZvbnQtc2l6ZS14cyk7CiAgICBsaW5lLWhlaWdodDogdmFyKC0tbHVtby1saW5lLWhlaWdodC14cyk7CiAgfQoKICBoMSwKICBoMiwKICBoMywKICBoNCwKICBoNSwKICBoNiB7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgbGluZS1oZWlnaHQ6IHZhcigtLWx1bW8tbGluZS1oZWlnaHQteHMpOwogICAgbWFyZ2luLXRvcDogMS4yNWVtOwogIH0KCiAgaDEgewogICAgZm9udC1zaXplOiB2YXIoLS1sdW1vLWZvbnQtc2l6ZS14eHhsKTsKICAgIG1hcmdpbi1ib3R0b206IDAuNzVlbTsKICB9CgogIGgyIHsKICAgIGZvbnQtc2l6ZTogdmFyKC0tbHVtby1mb250LXNpemUteHhsKTsKICAgIG1hcmdpbi1ib3R0b206IDAuNWVtOwogIH0KCiAgaDMgewogICAgZm9udC1zaXplOiB2YXIoLS1sdW1vLWZvbnQtc2l6ZS14bCk7CiAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKICB9CgogIGg0IHsKICAgIGZvbnQtc2l6ZTogdmFyKC0tbHVtby1mb250LXNpemUtbCk7CiAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKICB9CgogIGg1IHsKICAgIGZvbnQtc2l6ZTogdmFyKC0tbHVtby1mb250LXNpemUtbSk7CiAgICBtYXJnaW4tYm90dG9tOiAwLjI1ZW07CiAgfQoKICBoNiB7CiAgICBmb250LXNpemU6IHZhcigtLWx1bW8tZm9udC1zaXplLXhzKTsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTsKICB9CgogIHAsCiAgYmxvY2txdW90ZSB7CiAgICBtYXJnaW4tdG9wOiAwLjVlbTsKICAgIG1hcmdpbi1ib3R0b206IDAuNzVlbTsKICB9CgogIGEgewogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIH0KCiAgYTpob3ZlciB7CiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICB9CgogIGhyIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKICAgIGhlaWdodDogMXB4OwogICAgYm9yZGVyOiAwOwogICAgcGFkZGluZzogMDsKICAgIG1hcmdpbjogdmFyKC0tbHVtby1zcGFjZS1zKSBjYWxjKHZhcigtLWx1bW8tYm9yZGVyLXJhZGl1cy1tKSAvIDIpOwogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC0xMHBjdCk7CiAgfQoKICBibG9ja3F1b3RlIHsKICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgdmFyKC0tbHVtby1jb250cmFzdC0zMHBjdCk7CiAgfQoKICBiLAogIHN0cm9uZyB7CiAgICBmb250LXdlaWdodDogNjAwOwogIH0KCiAgLyogUlRMIHNwZWNpZmljIHN0eWxlcyAqLwoKICBibG9ja3F1b3RlW2Rpcj0ncnRsJ10gewogICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCB2YXIoLS1sdW1vLWNvbnRyYXN0LTMwcGN0KTsKICB9CmAse21vZHVsZUlkOiJsdW1vLXR5cG9ncmFwaHkifSksdDF0KCJ2YWFkaW4tY2hlY2tib3giLCRRdGAKICAgIDpob3N0IHsKICAgICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgb3V0bGluZTogbm9uZTsKICAgIH0KCiAgICBbcGFydD0nbGFiZWwnXTpub3QoW2VtcHR5XSkgewogICAgICBtYXJnaW46IDAuMTg3NWVtIDAuODc1ZW0gMC4xODc1ZW0gMC4zNzVlbTsKICAgIH0KCiAgICBbcGFydD0nY2hlY2tib3gnXSB7CiAgICAgIHdpZHRoOiBjYWxjKDFlbSArIDJweCk7CiAgICAgIGhlaWdodDogY2FsYygxZW0gKyAycHgpOwogICAgICBtYXJnaW46IDAuMTg3NWVtOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWx1bW8tYm9yZGVyLXJhZGl1cy1zKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC0yMHBjdCk7CiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGN1YmljLWJlemllcigwLjEyLCAwLjMyLCAwLjU0LCAyKSwgYmFja2dyb3VuZC1jb2xvciAwLjE1czsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICB9CgogICAgOmhvc3QoW2luZGV0ZXJtaW5hdGVdKSBbcGFydD0nY2hlY2tib3gnXSwKICAgIDpob3N0KFtjaGVja2VkXSkgW3BhcnQ9J2NoZWNrYm94J10gewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1sdW1vLXByaW1hcnktY29sb3IpOwogICAgfQoKICAgIC8qIE5lZWRlZCB0byBhbGlnbiB0aGUgY2hlY2tib3ggbmljZWx5IG9uIHRoZSBiYXNlbGluZSAqLwogICAgW3BhcnQ9J2NoZWNrYm94J106OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICdcXDIwMDMnOwogICAgfQoKICAgIC8qIENoZWNrbWFyayAqLwogICAgW3BhcnQ9J2NoZWNrYm94J106OmFmdGVyIHsKICAgICAgY29udGVudDogJyc7CiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgd2lkdGg6IDA7CiAgICAgIGhlaWdodDogMDsKICAgICAgYm9yZGVyOiAwIHNvbGlkIHZhcigtLWx1bW8tcHJpbWFyeS1jb250cmFzdC1jb2xvcik7CiAgICAgIGJvcmRlci13aWR0aDogMC4xODc1ZW0gMCAwIDAuMTg3NWVtOwogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwLjgxMjVlbTsKICAgICAgbGVmdDogMC41ZW07CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC41NSkgcm90YXRlKC0xMzVkZWcpOwogICAgICBvcGFjaXR5OiAwOwogICAgfQoKICAgIDpob3N0KFtjaGVja2VkXSkgW3BhcnQ9J2NoZWNrYm94J106OmFmdGVyIHsKICAgICAgb3BhY2l0eTogMTsKICAgICAgd2lkdGg6IDAuNjI1ZW07CiAgICAgIGhlaWdodDogMS4wNjI1ZW07CiAgICB9CgogICAgLyogSW5kZXRlcm1pbmF0ZSBjaGVja21hcmsgKi8KICAgIDpob3N0KFtpbmRldGVybWluYXRlXSkgW3BhcnQ9J2NoZWNrYm94J106OmFmdGVyIHsKICAgICAgdHJhbnNmb3JtOiBub25lOwogICAgICBvcGFjaXR5OiAxOwogICAgICB0b3A6IDQ1JTsKICAgICAgaGVpZ2h0OiAxMCU7CiAgICAgIGxlZnQ6IDIyJTsKICAgICAgcmlnaHQ6IDIyJTsKICAgICAgd2lkdGg6IGF1dG87CiAgICAgIGJvcmRlcjogMDsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbHVtby1wcmltYXJ5LWNvbnRyYXN0LWNvbG9yKTsKICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1czsKICAgIH0KCiAgICAvKiBGb2N1cyByaW5nICovCiAgICA6aG9zdChbZm9jdXMtcmluZ10pIFtwYXJ0PSdjaGVja2JveCddIHsKICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHZhcigtLWx1bW8tcHJpbWFyeS1jb2xvci01MHBjdCk7CiAgICB9CgogICAgLyogRGlzYWJsZWQgKi8KICAgIDpob3N0KFtkaXNhYmxlZF0pIHsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIGNvbG9yOiB2YXIoLS1sdW1vLWRpc2FibGVkLXRleHQtY29sb3IpOwogICAgfQoKICAgIDpob3N0KFtkaXNhYmxlZF0pIFtwYXJ0PSdsYWJlbCddIDo6c2xvdHRlZCgqKSB7CiAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgfQoKICAgIDpob3N0KFtkaXNhYmxlZF0pIFtwYXJ0PSdjaGVja2JveCddIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC0xMHBjdCk7CiAgICB9CgogICAgOmhvc3QoW2Rpc2FibGVkXSkgW3BhcnQ9J2NoZWNrYm94J106OmFmdGVyIHsKICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1sdW1vLWNvbnRyYXN0LTMwcGN0KTsKICAgIH0KCiAgICA6aG9zdChbaW5kZXRlcm1pbmF0ZV1bZGlzYWJsZWRdKSBbcGFydD0nY2hlY2tib3gnXTo6YWZ0ZXIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1sdW1vLWNvbnRyYXN0LTMwcGN0KTsKICAgIH0KCiAgICAvKiBSVEwgc3BlY2lmaWMgc3R5bGVzICovCiAgICA6aG9zdChbZGlyPSdydGwnXSkgW3BhcnQ9J2xhYmVsJ106bm90KFtlbXB0eV0pIHsKICAgICAgbWFyZ2luOiAwLjE4NzVlbSAwLjM3NWVtIDAuMTg3NWVtIDAuODc1ZW07CiAgICB9CgogICAgLyogVHJhbnNpdGlvbiB0aGUgY2hlY2ttYXJrIGlmIGFjdGl2YXRlZCB3aXRoIHRoZSBtb3VzZSAoZGlzYWJsZWQgZm9yIGdyaWQgc2VsZWN0LWFsbCB0aGlzIHdheSkgKi8KICAgIDpob3N0KDpob3ZlcikgW3BhcnQ9J2NoZWNrYm94J106OmFmdGVyIHsKICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4xcywgaGVpZ2h0IDAuMjVzOwogICAgfQoKICAgIC8qIFVzZWQgZm9yIGFjdGl2YXRpb24gImhhbG8iICovCiAgICBbcGFydD0nY2hlY2tib3gnXTo6YmVmb3JlIHsKICAgICAgY29sb3I6IHRyYW5zcGFyZW50OwogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS40KTsKICAgICAgb3BhY2l0eTogMDsKICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMsIG9wYWNpdHkgMC44czsKICAgIH0KCiAgICAvKiBIb3ZlciAqLwogICAgOmhvc3QoOm5vdChbY2hlY2tlZF0pOm5vdChbaW5kZXRlcm1pbmF0ZV0pOm5vdChbZGlzYWJsZWRdKTpob3ZlcikgW3BhcnQ9J2NoZWNrYm94J10gewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1sdW1vLWNvbnRyYXN0LTMwcGN0KTsKICAgIH0KCiAgICAvKiBEaXNhYmxlIGhvdmVyIGZvciB0b3VjaCBkZXZpY2VzICovCiAgICBAbWVkaWEgKHBvaW50ZXI6IGNvYXJzZSkgewogICAgICA6aG9zdCg6bm90KFtjaGVja2VkXSk6bm90KFtpbmRldGVybWluYXRlXSk6bm90KFtkaXNhYmxlZF0pOmhvdmVyKSBbcGFydD0nY2hlY2tib3gnXSB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbHVtby1jb250cmFzdC0yMHBjdCk7CiAgICAgIH0KICAgIH0KCiAgICAvKiBBY3RpdmUgKi8KICAgIDpob3N0KFthY3RpdmVdKSBbcGFydD0nY2hlY2tib3gnXSB7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4wNXM7CiAgICB9CgogICAgOmhvc3QoW2FjdGl2ZV1bY2hlY2tlZF0pIFtwYXJ0PSdjaGVja2JveCddIHsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOwogICAgfQoKICAgIDpob3N0KFthY3RpdmVdOm5vdChbY2hlY2tlZF0pKSBbcGFydD0nY2hlY2tib3gnXTo6YmVmb3JlIHsKICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4wMXMsIDAuMDFzOwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDApOwogICAgICBvcGFjaXR5OiAwLjQ7CiAgICB9CiAgYCx7bW9kdWxlSWQ6Imx1bW8tY2hlY2tib3gifSk7Y29uc3QgcDF0PXQ9PmNsYXNzIGV4dGVuZHMgdHtzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57dGhlbWU6e3R5cGU6U3RyaW5nLHJlYWRPbmx5OiEwfX19YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHQsZSxuKXtzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodCxlLG4pLCJ0aGVtZSI9PT10JiZ0aGlzLl9zZXRUaGVtZShuKX19LGYxdD10PT5jbGFzcyBleHRlbmRzKHAxdCh0KSl7c3RhdGljIGZpbmFsaXplKCl7c3VwZXIuZmluYWxpemUoKTtjb25zdCB0PXRoaXMucHJvdG90eXBlLl90ZW1wbGF0ZSxlPU9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzLnByb3RvdHlwZSkuX3RlbXBsYXRlO2UmJkFycmF5LmZyb20oZS5jb250ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInN0eWxlW2luY2x1ZGVdIikpLmZvckVhY2goKGU9Pnt0aGlzLl9pbmNsdWRlU3R5bGUoZS5nZXRBdHRyaWJ1dGUoImluY2x1ZGUiKSx0KX0pKSx0aGlzLl9pbmNsdWRlTWF0Y2hpbmdUaGVtZXModCl9c3RhdGljIF9pbmNsdWRlTWF0Y2hpbmdUaGVtZXModCl7Y29uc3QgZT1CLnByb3RvdHlwZS5tb2R1bGVzO2xldCBuPSExO2NvbnN0IGk9dGhpcy5pcysiLWRlZmF1bHQtdGhlbWUiO09iamVjdC5rZXlzKGUpLnNvcnQoKCh0LGUpPT57Y29uc3Qgbj0wPT09dC5pbmRleE9mKCJ2YWFkaW4tIiksaT0wPT09ZS5pbmRleE9mKCJ2YWFkaW4tIikscj1bImx1bW8tIiwibWF0ZXJpYWwtIl0sbz1yLmZpbHRlcigoZT0+MD09PXQuaW5kZXhPZihlKSkpLmxlbmd0aD4wLGE9ci5maWx0ZXIoKHQ9PjA9PT1lLmluZGV4T2YodCkpKS5sZW5ndGg+MDtyZXR1cm4gbiE9PWk/bj8tMToxOm8hPT1hP28/LTE6MTowfSkpLmZvckVhY2goKHI9PntpZihyIT09aSl7Y29uc3QgaT1lW3JdLmdldEF0dHJpYnV0ZSgidGhlbWUtZm9yIik7aSYmaS5zcGxpdCgiICIpLmZvckVhY2goKGU9PntuZXcgUmVnRXhwKCJeIitlLnNwbGl0KCIqIikuam9pbigiLioiKSsiJCIpLnRlc3QodGhpcy5pcykmJihuPSEwLHRoaXMuX2luY2x1ZGVTdHlsZShyLHQpKX0pKX19KSksIW4mJmVbaV0mJnRoaXMuX2luY2x1ZGVTdHlsZShpLHQpfXN0YXRpYyBfaW5jbHVkZVN0eWxlKHQsZSl7aWYoZSYmIWUuY29udGVudC5xdWVyeVNlbGVjdG9yKGBzdHlsZVtpbmNsdWRlPSIke3R9Il1gKSl7Y29uc3Qgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO24uc2V0QXR0cmlidXRlKCJpbmNsdWRlIix0KSxlLmNvbnRlbnQuYXBwZW5kQ2hpbGQobil9fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi87bGV0IG0xdD0hMTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsKCgpPT57bTF0PSEwfSkse2NhcHR1cmU6ITB9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwoKCk9PnttMXQ9ITF9KSx7Y2FwdHVyZTohMH0pO2NvbnN0IGcxdD10PT5jbGFzcyBleHRlbmRzKCh0PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue3RhYmluZGV4Ont0eXBlOk51bWJlcix2YWx1ZTowLHJlZmxlY3RUb0F0dHJpYnV0ZTohMCxvYnNlcnZlcjoiX3RhYmluZGV4Q2hhbmdlZCJ9fX19KSh0KSl7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2F1dG9mb2N1czp7dHlwZTpCb29sZWFufSxfcHJldmlvdXNUYWJJbmRleDp7dHlwZTpOdW1iZXJ9LGRpc2FibGVkOnt0eXBlOkJvb2xlYW4sb2JzZXJ2ZXI6Il9kaXNhYmxlZENoYW5nZWQiLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0sX2lzU2hpZnRUYWJiaW5nOnt0eXBlOkJvb2xlYW59fX1yZWFkeSgpe3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNpbiIsKHQ9Pnt0LmNvbXBvc2VkUGF0aCgpWzBdPT09dGhpcz90aGlzLmNvbnRhaW5zKHQucmVsYXRlZFRhcmdldCl8fHRoaXMuX2ZvY3VzKCk6LTE9PT10LmNvbXBvc2VkUGF0aCgpLmluZGV4T2YodGhpcy5mb2N1c0VsZW1lbnQpfHx0aGlzLmRpc2FibGVkfHx0aGlzLl9zZXRGb2N1c2VkKCEwKX0pKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0IiwoKCk9PnRoaXMuX3NldEZvY3VzZWQoITEpKSksc3VwZXIucmVhZHkoKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCh0PT57IXQuZGVmYXVsdFByZXZlbnRlZCYmOT09PXQua2V5Q29kZSYmdC5zaGlmdEtleSYmKHRoaXMuX2lzU2hpZnRUYWJiaW5nPSEwLEhUTUxFbGVtZW50LnByb3RvdHlwZS5mb2N1cy5hcHBseSh0aGlzKSx0aGlzLl9zZXRGb2N1c2VkKCExKSxzZXRUaW1lb3V0KCgoKT0+dGhpcy5faXNTaGlmdFRhYmJpbmc9ITEpLDApKX0pKSx0aGlzLmF1dG9mb2N1cyYmIXRoaXMuZGlzYWJsZWQmJndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy5fZm9jdXMoKSx0aGlzLl9zZXRGb2N1c2VkKCEwKSx0aGlzLnNldEF0dHJpYnV0ZSgiZm9jdXMtcmluZyIsIiIpfSkpfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmhhc0F0dHJpYnV0ZSgiZm9jdXNlZCIpJiZ0aGlzLl9zZXRGb2N1c2VkKCExKX1fc2V0Rm9jdXNlZCh0KXt0P3RoaXMuc2V0QXR0cmlidXRlKCJmb2N1c2VkIiwiIik6dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImZvY3VzZWQiKSx0JiZtMXQ/dGhpcy5zZXRBdHRyaWJ1dGUoImZvY3VzLXJpbmciLCIiKTp0aGlzLnJlbW92ZUF0dHJpYnV0ZSgiZm9jdXMtcmluZyIpfWdldCBmb2N1c0VsZW1lbnQoKXtyZXR1cm4gd2luZG93LmNvbnNvbGUud2FybihgUGxlYXNlIGltcGxlbWVudCB0aGUgJ2ZvY3VzRWxlbWVudCcgcHJvcGVydHkgaW4gPCR7dGhpcy5sb2NhbE5hbWV9PmApLHRoaXN9X2ZvY3VzKCl7dGhpcy5mb2N1c0VsZW1lbnQmJiF0aGlzLl9pc1NoaWZ0VGFiYmluZyYmKHRoaXMuZm9jdXNFbGVtZW50LmZvY3VzKCksdGhpcy5fc2V0Rm9jdXNlZCghMCkpfWZvY3VzKCl7dGhpcy5mb2N1c0VsZW1lbnQmJiF0aGlzLmRpc2FibGVkJiYodGhpcy5mb2N1c0VsZW1lbnQuZm9jdXMoKSx0aGlzLl9zZXRGb2N1c2VkKCEwKSl9Ymx1cigpe3RoaXMuZm9jdXNFbGVtZW50JiYodGhpcy5mb2N1c0VsZW1lbnQuYmx1cigpLHRoaXMuX3NldEZvY3VzZWQoITEpKX1fZGlzYWJsZWRDaGFuZ2VkKHQpe3RoaXMuZm9jdXNFbGVtZW50LmRpc2FibGVkPXQsdD8odGhpcy5ibHVyKCksdGhpcy5fcHJldmlvdXNUYWJJbmRleD10aGlzLnRhYmluZGV4LHRoaXMudGFiaW5kZXg9LTEsdGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtZGlzYWJsZWQiLCJ0cnVlIikpOih2b2lkIDAhPT10aGlzLl9wcmV2aW91c1RhYkluZGV4JiYodGhpcy50YWJpbmRleD10aGlzLl9wcmV2aW91c1RhYkluZGV4KSx0aGlzLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1kaXNhYmxlZCIpKX1fdGFiaW5kZXhDaGFuZ2VkKHQpe3ZvaWQgMCE9PXQmJih0aGlzLmZvY3VzRWxlbWVudC50YWJJbmRleD10KSx0aGlzLmRpc2FibGVkJiZ0aGlzLnRhYmluZGV4JiYoLTEhPT10aGlzLnRhYmluZGV4JiYodGhpcy5fcHJldmlvdXNUYWJJbmRleD10aGlzLnRhYmluZGV4KSx0aGlzLnRhYmluZGV4PXQ9dm9pZCAwKX1jbGljaygpe3RoaXMuZGlzYWJsZWR8fHN1cGVyLmNsaWNrKCl9fSxfMXQ9L1wvXCpcKlxzK3ZhYWRpbi1kZXYtbW9kZTpzdGFydChbXHNcU10qKXZhYWRpbi1kZXYtbW9kZTplbmRccytcKlwqXC8vaSx5MXQ9d2luZG93LlZhYWRpbiYmd2luZG93LlZhYWRpbi5GbG93JiZ3aW5kb3cuVmFhZGluLkZsb3cuY2xpZW50cztmdW5jdGlvbiB2MXQodCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdClyZXR1cm47Y29uc3Qgbj1fMXQuZXhlYyh0LnRvU3RyaW5nKCkpO2lmKG4pdHJ5e3Q9bmV3IEZ1bmN0aW9uKG5bMV0pfWNhdGNoKHQpe2NvbnNvbGUubG9nKCJ2YWFkaW4tZGV2ZWxvcG1lbnQtbW9kZS1kZXRlY3RvcjogdW5jb21tZW50QW5kUnVuKCkgZmFpbGVkIix0KX1yZXR1cm4gdChlKX13aW5kb3cuVmFhZGluPXdpbmRvdy5WYWFkaW58fHt9O2NvbnN0IGIxdD1mdW5jdGlvbih0LGUpe2lmKHdpbmRvdy5WYWFkaW4uZGV2ZWxvcG1lbnRNb2RlKXJldHVybiB2MXQodCxlKX07ZnVuY3Rpb24geDF0KCl7fXZvaWQgMD09PXdpbmRvdy5WYWFkaW4uZGV2ZWxvcG1lbnRNb2RlJiYod2luZG93LlZhYWRpbi5kZXZlbG9wbWVudE1vZGU9KGZ1bmN0aW9uIHcxdCgpe3RyeXtyZXR1cm4hIShmdW5jdGlvbiB0KCl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ2YWFkaW4uZGV2ZWxvcG1lbnRtb2RlLmZvcmNlIil9KSgpfHwhIShmdW5jdGlvbiBlKCl7cmV0dXJuWyJsb2NhbGhvc3QiLCIxMjcuMC4wLjEiXS5pbmRleE9mKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSk+PTB9KSgpJiYoeTF0PyEoZnVuY3Rpb24gbigpe3JldHVybiEhKHkxdCYmT2JqZWN0LmtleXMoeTF0KS5tYXAoKHQ9PnkxdFt0XSkpLmZpbHRlcigodD0+dC5wcm9kdWN0aW9uTW9kZSkpLmxlbmd0aD4wKX0pKCk6IShmdW5jdGlvbiBpKCl7cmV0dXJuIHYxdCgoZnVuY3Rpb24gdCgpe3JldHVybiEwfSkpfSkoKSl9Y2F0Y2godCl7cmV0dXJuITF9fSkoKSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovCmNsYXNzIFMxdHtzdGF0aWMgZGV0ZWN0U2Nyb2xsVHlwZSgpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dC50ZXh0Q29udGVudD0iQUJDRCIsdC5kaXI9InJ0bCIsdC5zdHlsZS5mb250U2l6ZT0iMTRweCIsdC5zdHlsZS53aWR0aD0iNHB4Iix0LnN0eWxlLmhlaWdodD0iMXB4Iix0LnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsdC5zdHlsZS50b3A9Ii0xMDAwcHgiLHQuc3R5bGUub3ZlcmZsb3c9InNjcm9sbCIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0KTtsZXQgZT0icmV2ZXJzZSI7cmV0dXJuIHQuc2Nyb2xsTGVmdD4wP2U9ImRlZmF1bHQiOih0LnNjcm9sbExlZnQ9Mix0LnNjcm9sbExlZnQ8MiYmKGU9Im5lZ2F0aXZlIikpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodCksZX1zdGF0aWMgZ2V0Tm9ybWFsaXplZFNjcm9sbExlZnQodCxlLG4pe2NvbnN0e3Njcm9sbExlZnQ6aX09bjtpZigicnRsIiE9PWV8fCF0KXJldHVybiBpO3N3aXRjaCh0KXtjYXNlIm5lZ2F0aXZlIjpyZXR1cm4gbi5zY3JvbGxXaWR0aC1uLmNsaWVudFdpZHRoK2k7Y2FzZSJyZXZlcnNlIjpyZXR1cm4gbi5zY3JvbGxXaWR0aC1uLmNsaWVudFdpZHRoLWl9cmV0dXJuIGl9c3RhdGljIHNldE5vcm1hbGl6ZWRTY3JvbGxMZWZ0KHQsZSxuLGkpe2lmKCJydGwiPT09ZSYmdClzd2l0Y2godCl7Y2FzZSJuZWdhdGl2ZSI6bi5zY3JvbGxMZWZ0PW4uY2xpZW50V2lkdGgtbi5zY3JvbGxXaWR0aCtpO2JyZWFrO2Nhc2UicmV2ZXJzZSI6bi5zY3JvbGxMZWZ0PW4uc2Nyb2xsV2lkdGgtbi5jbGllbnRXaWR0aC1pO2JyZWFrO2RlZmF1bHQ6bi5zY3JvbGxMZWZ0PWl9ZWxzZSBuLnNjcm9sbExlZnQ9aX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovY29uc3QgTTF0PVtdO2xldCBFMXQ7bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKGZ1bmN0aW9uKCl7Y29uc3QgdD1DMXQoKTtNMXQuZm9yRWFjaCgoZT0+e1QxdChlLHQpfSkpfSkpLm9ic2VydmUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHthdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbImRpciJdfSk7Y29uc3QgVDF0PWZ1bmN0aW9uKHQsZSxuPXQuZ2V0QXR0cmlidXRlKCJkaXIiKSl7ZT90LnNldEF0dHJpYnV0ZSgiZGlyIixlKTpudWxsIT1uJiZ0LnJlbW92ZUF0dHJpYnV0ZSgiZGlyIil9LEMxdD1mdW5jdGlvbigpe3JldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJkaXIiKX0sQTF0PXQ9PmNsYXNzIGV4dGVuZHMgdHtzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57ZGlyOnt0eXBlOlN0cmluZyx2YWx1ZToiIixyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9fX1zdGF0aWMgZmluYWxpemUoKXtzdXBlci5maW5hbGl6ZSgpLEUxdHx8KEUxdD1TMXQuZGV0ZWN0U2Nyb2xsVHlwZSgpKX1jb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5oYXNBdHRyaWJ1dGUoImRpciIpfHwodGhpcy5fX3N1YnNjcmliZSgpLFQxdCh0aGlzLEMxdCgpLG51bGwpKX1hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodCxlLG4pe2lmKHN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0LGUsbiksImRpciIhPT10KXJldHVybjtjb25zdCBpPUMxdCgpLHI9bj09PWkmJi0xPT09TTF0LmluZGV4T2YodGhpcyksbz0hbiYmZSYmLTE9PT1NMXQuaW5kZXhPZih0aGlzKSxhPW4hPT1pJiZlPT09aTtyfHxvPyh0aGlzLl9fc3Vic2NyaWJlKCksVDF0KHRoaXMsaSxuKSk6YSYmdGhpcy5fX3N1YnNjcmliZSghMSl9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuX19zdWJzY3JpYmUoITEpLHRoaXMucmVtb3ZlQXR0cmlidXRlKCJkaXIiKX1fdmFsdWVUb05vZGVBdHRyaWJ1dGUodCxlLG4peygiZGlyIiE9PW58fCIiIT09ZXx8dC5oYXNBdHRyaWJ1dGUoImRpciIpKSYmc3VwZXIuX3ZhbHVlVG9Ob2RlQXR0cmlidXRlKHQsZSxuKX1fYXR0cmlidXRlVG9Qcm9wZXJ0eSh0LGUsbil7ImRpciIhPT10fHxlP3N1cGVyLl9hdHRyaWJ1dGVUb1Byb3BlcnR5KHQsZSxuKTp0aGlzLmRpcj0iIn1fX3N1YnNjcmliZSh0PSEwKXt0Py0xPT09TTF0LmluZGV4T2YodGhpcykmJk0xdC5wdXNoKHRoaXMpOk0xdC5pbmRleE9mKHRoaXMpPi0xJiZNMXQuc3BsaWNlKE0xdC5pbmRleE9mKHRoaXMpLDEpfV9fZ2V0Tm9ybWFsaXplZFNjcm9sbExlZnQodCl7cmV0dXJuIFMxdC5nZXROb3JtYWxpemVkU2Nyb2xsTGVmdChFMXQsdGhpcy5nZXRBdHRyaWJ1dGUoImRpciIpfHwibHRyIix0KX1fX3NldE5vcm1hbGl6ZWRTY3JvbGxMZWZ0KHQsZSl7cmV0dXJuIFMxdC5zZXROb3JtYWxpemVkU2Nyb2xsTGVmdChFMXQsdGhpcy5nZXRBdHRyaWJ1dGUoImRpciIpfHwibHRyIix0LGUpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi87bGV0IGsxdDt3aW5kb3cuVmFhZGluPXdpbmRvdy5WYWFkaW58fHt9LHdpbmRvdy5WYWFkaW4ucmVnaXN0cmF0aW9ucz13aW5kb3cuVmFhZGluLnJlZ2lzdHJhdGlvbnN8fFtdLHdpbmRvdy5WYWFkaW4uZGV2ZWxvcG1lbnRNb2RlQ2FsbGJhY2s9d2luZG93LlZhYWRpbi5kZXZlbG9wbWVudE1vZGVDYWxsYmFja3x8e30sd2luZG93LlZhYWRpbi5kZXZlbG9wbWVudE1vZGVDYWxsYmFja1sidmFhZGluLXVzYWdlLXN0YXRpc3RpY3MiXT1mdW5jdGlvbigpe2IxdCh4MXQpfTtjb25zdCBMMXQ9bmV3IFNldCxQMXQ9dD0+Y2xhc3MgZXh0ZW5kcyhBMXQodCkpe3N0YXRpYyBmaW5hbGl6ZSgpe3N1cGVyLmZpbmFsaXplKCk7Y29uc3R7aXM6dH09dGhpczt0JiYhTDF0Lmhhcyh0KSYmKHdpbmRvdy5WYWFkaW4ucmVnaXN0cmF0aW9ucy5wdXNoKHRoaXMpLEwxdC5hZGQodCksd2luZG93LlZhYWRpbi5kZXZlbG9wbWVudE1vZGVDYWxsYmFjayYmKGsxdD1Obi5kZWJvdW5jZShrMXQseXQsKCgpPT57d2luZG93LlZhYWRpbi5kZXZlbG9wbWVudE1vZGVDYWxsYmFja1sidmFhZGluLXVzYWdlLXN0YXRpc3RpY3MiXSgpfSkpLFJuKGsxdCkpKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksbnVsbD09PWRvY3VtZW50LmRvY3R5cGUmJmNvbnNvbGUud2FybignVmFhZGluIGNvbXBvbmVudHMgcmVxdWlyZSB0aGUgInN0YW5kYXJkcyBtb2RlIiBkZWNsYXJhdGlvbi4gUGxlYXNlIGFkZCA8IURPQ1RZUEUgaHRtbD4gdG8gdGhlIEhUTUwgZG9jdW1lbnQuJyl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLztjbGFzcyBOMXQgZXh0ZW5kcyhQMXQoZzF0KGYxdChiaSh3ZSkpKSkpe3N0YXRpYyBnZXQgdGVtcGxhdGUoKXtyZXR1cm4geGVgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbaGlkZGVuXSkgewogICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICAgIH0KCiAgICAgICAgbGFiZWwgewogICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIH0KCiAgICAgICAgW3BhcnQ9J2NoZWNrYm94J10gewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgZmxleDogbm9uZTsKICAgICAgICB9CgogICAgICAgIGlucHV0W3R5cGU9J2NoZWNrYm94J10gewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgdG9wOiAwOwogICAgICAgICAgbGVmdDogMDsKICAgICAgICAgIHJpZ2h0OiAwOwogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgY3Vyc29yOiBpbmhlcml0OwogICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIH0KCiAgICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgewogICAgICAgICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CgogICAgICA8bGFiZWw+CiAgICAgICAgPHNwYW4gcGFydD0iY2hlY2tib3giPgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9ImNoZWNrYm94IgogICAgICAgICAgICBjaGVja2VkPSJ7e2NoZWNrZWQ6OmNoYW5nZX19IgogICAgICAgICAgICBkaXNhYmxlZCQ9IltbZGlzYWJsZWRdXSIKICAgICAgICAgICAgaW5kZXRlcm1pbmF0ZT0ie3tpbmRldGVybWluYXRlOjpjaGFuZ2V9fSIKICAgICAgICAgICAgcm9sZT0icHJlc2VudGF0aW9uIgogICAgICAgICAgICB0YWJpbmRleD0iLTEiCiAgICAgICAgICAvPgogICAgICAgIDwvc3Bhbj4KCiAgICAgICAgPHNwYW4gcGFydD0ibGFiZWwiPgogICAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9sYWJlbD4KICAgIGB9c3RhdGljIGdldCBpcygpe3JldHVybiJ2YWFkaW4tY2hlY2tib3gifXN0YXRpYyBnZXQgdmVyc2lvbigpe3JldHVybiIyMC4wLjIifXN0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntjaGVja2VkOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITEsbm90aWZ5OiEwLG9ic2VydmVyOiJfY2hlY2tlZENoYW5nZWQiLHJlZmxlY3RUb0F0dHJpYnV0ZTohMH0saW5kZXRlcm1pbmF0ZTp7dHlwZTpCb29sZWFuLG5vdGlmeTohMCxvYnNlcnZlcjoiX2luZGV0ZXJtaW5hdGVDaGFuZ2VkIixyZWZsZWN0VG9BdHRyaWJ1dGU6ITAsdmFsdWU6ITF9LHZhbHVlOnt0eXBlOlN0cmluZyx2YWx1ZToib24ifSxfbmF0aXZlQ2hlY2tib3g6e3R5cGU6T2JqZWN0fX19Y29uc3RydWN0b3IoKXtzdXBlcigpfWdldCBuYW1lKCl7cmV0dXJuIHRoaXMuY2hlY2tlZD90aGlzLl9zdG9yZWROYW1lOiIifXNldCBuYW1lKHQpe3RoaXMuX3N0b3JlZE5hbWU9dH1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5zZXRBdHRyaWJ1dGUoInJvbGUiLCJjaGVja2JveCIpLHRoaXMuX25hdGl2ZUNoZWNrYm94PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPSJjaGVja2JveCJdJyksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5faGFuZGxlQ2xpY2suYmluZCh0aGlzKSksdGhpcy5fYWRkQWN0aXZlTGlzdGVuZXJzKCk7Y29uc3QgdD10aGlzLmdldEF0dHJpYnV0ZSgibmFtZSIpO3QmJih0aGlzLm5hbWU9dCksdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ1twYXJ0fj0ibGFiZWwiXScpLnF1ZXJ5U2VsZWN0b3IoInNsb3QiKS5hZGRFdmVudExpc3RlbmVyKCJzbG90Y2hhbmdlIix0aGlzLl91cGRhdGVMYWJlbEF0dHJpYnV0ZS5iaW5kKHRoaXMpKSx0aGlzLl91cGRhdGVMYWJlbEF0dHJpYnV0ZSgpfV91cGRhdGVMYWJlbEF0dHJpYnV0ZSgpe2NvbnN0IHQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ1twYXJ0fj0ibGFiZWwiXScpLGU9dC5maXJzdEVsZW1lbnRDaGlsZC5hc3NpZ25lZE5vZGVzKCk7dGhpcy5faXNBc3NpZ25lZE5vZGVzRW1wdHkoZSk/dC5zZXRBdHRyaWJ1dGUoImVtcHR5IiwiIik6dC5yZW1vdmVBdHRyaWJ1dGUoImVtcHR5Iil9X2lzQXNzaWduZWROb2Rlc0VtcHR5KHQpe3JldHVybiAwPT09dC5sZW5ndGh8fDE9PXQubGVuZ3RoJiZ0WzBdLm5vZGVUeXBlPT1Ob2RlLlRFWFRfTk9ERSYmIiI9PT10WzBdLnRleHRDb250ZW50LnRyaW0oKX1fY2hlY2tlZENoYW5nZWQodCl7dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtY2hlY2tlZCIsdGhpcy5pbmRldGVybWluYXRlPyJtaXhlZCI6Qm9vbGVhbih0KSl9X2luZGV0ZXJtaW5hdGVDaGFuZ2VkKHQpe3RoaXMuc2V0QXR0cmlidXRlKCJhcmlhLWNoZWNrZWQiLHQ/Im1peGVkIjp0aGlzLmNoZWNrZWQpfV9hZGRBY3RpdmVMaXN0ZW5lcnMoKXt0aGlzLl9hZGRFdmVudExpc3RlbmVyVG9Ob2RlKHRoaXMsImRvd24iLCh0PT57dGhpcy5fX2ludGVyYWN0aW9uc0FsbG93ZWQodCkmJnRoaXMuc2V0QXR0cmlidXRlKCJhY3RpdmUiLCIiKX0pKSx0aGlzLl9hZGRFdmVudExpc3RlbmVyVG9Ob2RlKHRoaXMsInVwIiwoKCk9PnRoaXMucmVtb3ZlQXR0cmlidXRlKCJhY3RpdmUiKSkpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsKHQ9Pnt0aGlzLl9faW50ZXJhY3Rpb25zQWxsb3dlZCh0KSYmMzI9PT10LmtleUNvZGUmJih0LnByZXZlbnREZWZhdWx0KCksdGhpcy5zZXRBdHRyaWJ1dGUoImFjdGl2ZSIsIiIpKX0pKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIiwodD0+e3RoaXMuX19pbnRlcmFjdGlvbnNBbGxvd2VkKHQpJiYzMj09PXQua2V5Q29kZSYmKHQucHJldmVudERlZmF1bHQoKSx0aGlzLl90b2dnbGVDaGVja2VkKCksdGhpcy5yZW1vdmVBdHRyaWJ1dGUoImFjdGl2ZSIpLHRoaXMuaW5kZXRlcm1pbmF0ZSYmKHRoaXMuaW5kZXRlcm1pbmF0ZT0hMSkpfSkpfWdldCBmb2N1c0VsZW1lbnQoKXtyZXR1cm4gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImlucHV0Iil9X19pbnRlcmFjdGlvbnNBbGxvd2VkKHQpe3JldHVybiF0aGlzLmRpc2FibGVkJiYiYSIhPT10LnRhcmdldC5sb2NhbE5hbWV9X2hhbmRsZUNsaWNrKHQpe3RoaXMuX19pbnRlcmFjdGlvbnNBbGxvd2VkKHQpJiYodGhpcy5pbmRldGVybWluYXRlPyh0aGlzLmluZGV0ZXJtaW5hdGU9ITEsdC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX3RvZ2dsZUNoZWNrZWQoKSk6dC5jb21wb3NlZFBhdGgoKVswXSE9PXRoaXMuX25hdGl2ZUNoZWNrYm94JiYodC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX3RvZ2dsZUNoZWNrZWQoKSkpfV90b2dnbGVDaGVja2VkKCl7dGhpcy5jaGVja2VkPSF0aGlzLmNoZWNrZWQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2hhbmdlIix7Y29tcG9zZWQ6ITEsYnViYmxlczohMH0pKX19Y3VzdG9tRWxlbWVudHMuZGVmaW5lKE4xdC5pcyxOMXQpLHQxdCgidmFhZGluLWdyaWQiLCRRdGAKICAgIDpob3N0IHsKICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWx1bW8tZm9udC1mYW1pbHkpOwogICAgICBmb250LXNpemU6IHZhcigtLWx1bW8tZm9udC1zaXplLW0pOwogICAgICBsaW5lLWhlaWdodDogdmFyKC0tbHVtby1saW5lLWhlaWdodC1zKTsKICAgICAgY29sb3I6IHZhcigtLWx1bW8tYm9keS10ZXh0LWNvbG9yKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbHVtby1iYXNlLWNvbG9yKTsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOwogICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKCiAgICAgIC8qIEZvciBpbnRlcm5hbCB1c2Ugb25seSAqLwogICAgICAtLV9sdW1vLWdyaWQtYm9yZGVyLWNvbG9yOiB2YXIoLS1sdW1vLWNvbnRyYXN0LTIwcGN0KTsKICAgICAgLS1fbHVtby1ncmlkLXNlY29uZGFyeS1ib3JkZXItY29sb3I6IHZhcigtLWx1bW8tY29udHJhc3QtMTBwY3QpOwogICAgICAtLV9sdW1vLWdyaWQtYm9yZGVyLXdpZHRoOiAxcHg7CiAgICAgIC0tX2x1bW8tZ3JpZC1zZWxlY3RlZC1yb3ctY29sb3I6IHZhcigtLWx1bW8tcHJpbWFyeS1jb2xvci0xMHBjdCk7CiAgICB9CgogICAgLyogTm8gKG91dGVyKSBib3JkZXIgKi8KCiAgICA6aG9zdCg6bm90KFt0aGVtZX49J25vLWJvcmRlciddKSkgewogICAgICBib3JkZXI6IHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1fbHVtby1ncmlkLWJvcmRlci1jb2xvcik7CiAgICB9CgogICAgLyogQ2VsbCBzdHlsZXMgKi8KCiAgICBbcGFydH49J2NlbGwnXSB7CiAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLWx1bW8tc2l6ZS1tKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbHVtby1iYXNlLWNvbG9yKTsKICAgIH0KCiAgICBbcGFydH49J2NlbGwnXSA6OnNsb3R0ZWQodmFhZGluLWdyaWQtY2VsbC1jb250ZW50KSB7CiAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgcGFkZGluZzogdmFyKC0tbHVtby1zcGFjZS14cykgdmFyKC0tbHVtby1zcGFjZS1tKTsKICAgIH0KCiAgICAvKiBBcHBseSByb3cgYm9yZGVycyBieSBkZWZhdWx0IGFuZCBpbnRyb2R1Y2UgdGhlICJuby1yb3ctYm9yZGVycyIgdmFyaWFudCAqLwogICAgOmhvc3QoOm5vdChbdGhlbWV+PSduby1yb3ctYm9yZGVycyddKSkgW3BhcnR+PSdjZWxsJ106bm90KFtwYXJ0fj0nZGV0YWlscy1jZWxsJ10pIHsKICAgICAgYm9yZGVyLXRvcDogdmFyKC0tX2x1bW8tZ3JpZC1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLV9sdW1vLWdyaWQtc2Vjb25kYXJ5LWJvcmRlci1jb2xvcik7CiAgICB9CgogICAgLyogSGlkZSBmaXJzdCBib2R5IHJvdyB0b3AgYm9yZGVyICovCiAgICA6aG9zdCg6bm90KFt0aGVtZX49J25vLXJvdy1ib3JkZXJzJ10pKSBbcGFydD0ncm93J11bZmlyc3RdIFtwYXJ0fj0nY2VsbCddOm5vdChbcGFydH49J2RldGFpbHMtY2VsbCddKSB7CiAgICAgIGJvcmRlci10b3A6IDA7CiAgICAgIG1pbi1oZWlnaHQ6IGNhbGModmFyKC0tbHVtby1zaXplLW0pIC0gdmFyKC0tX2x1bW8tZ3JpZC1ib3JkZXItd2lkdGgpKTsKICAgIH0KCiAgICAvKiBGb2N1cy1yaW5nICovCgogICAgW3BhcnR+PSdjZWxsJ106Zm9jdXMgewogICAgICBvdXRsaW5lOiBub25lOwogICAgfQoKICAgIDpob3N0KFtuYXZpZ2F0aW5nXSkgW3BhcnR+PSdjZWxsJ106Zm9jdXM6OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICcnOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgcmlnaHQ6IDA7CiAgICAgIGJvdHRvbTogMDsKICAgICAgbGVmdDogMDsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCB2YXIoLS1sdW1vLXByaW1hcnktY29sb3ItNTBwY3QpOwogICAgfQoKICAgIC8qIERyYWcgYW5kIERyb3Agc3R5bGVzICovCiAgICA6aG9zdChbZHJhZ292ZXJdKTo6YWZ0ZXIgewogICAgICBjb250ZW50OiAnJzsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB6LWluZGV4OiAxMDA7CiAgICAgIHRvcDogMDsKICAgICAgcmlnaHQ6IDA7CiAgICAgIGJvdHRvbTogMDsKICAgICAgbGVmdDogMDsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCB2YXIoLS1sdW1vLXByaW1hcnktY29sb3ItNTBwY3QpOwogICAgfQoKICAgIFtwYXJ0fj0ncm93J11bZHJhZ292ZXJdIHsKICAgICAgei1pbmRleDogMTAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgW3BhcnR+PSdyb3cnXVtkcmFnb3Zlcl0gW3BhcnR+PSdjZWxsJ10gewogICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgIH0KCiAgICBbcGFydH49J3JvdyddW2RyYWdvdmVyXSBbcGFydH49J2NlbGwnXTo6YWZ0ZXIgewogICAgICBjb250ZW50OiAnJzsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIHJpZ2h0OiAwOwogICAgICBib3R0b206IDA7CiAgICAgIGxlZnQ6IDA7CiAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1fbHVtby1ncmlkLWJvcmRlci13aWR0aCkgKyAycHgpOwogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tbHVtby1wcmltYXJ5LWNvbG9yLTUwcGN0KTsKICAgIH0KCiAgICA6aG9zdChbdGhlbWV+PSduby1yb3ctYm9yZGVycyddKSBbZHJhZ292ZXJdIFtwYXJ0fj0nY2VsbCddOjphZnRlciB7CiAgICAgIGhlaWdodDogMnB4OwogICAgfQoKICAgIFtwYXJ0fj0ncm93J11bZHJhZ292ZXI9J2JlbG93J10gW3BhcnR+PSdjZWxsJ106OmFmdGVyIHsKICAgICAgdG9wOiAxMDAlOwogICAgICBib3R0b206IGF1dG87CiAgICAgIG1hcmdpbi10b3A6IC0xcHg7CiAgICB9CgogICAgW3BhcnR+PSdyb3cnXVtkcmFnb3Zlcj0nYWJvdmUnXSBbcGFydH49J2NlbGwnXTo6YWZ0ZXIgewogICAgICB0b3A6IGF1dG87CiAgICAgIGJvdHRvbTogMTAwJTsKICAgICAgbWFyZ2luLWJvdHRvbTogLTFweDsKICAgIH0KCiAgICBbcGFydH49J3JvdyddW2RldGFpbHMtb3BlbmVkXVtkcmFnb3Zlcj0nYmVsb3cnXSBbcGFydH49J2NlbGwnXTpub3QoW3BhcnR+PSdkZXRhaWxzLWNlbGwnXSk6OmFmdGVyLAogICAgW3BhcnR+PSdyb3cnXVtkZXRhaWxzLW9wZW5lZF1bZHJhZ292ZXI9J2Fib3ZlJ10gW3BhcnR+PSdkZXRhaWxzLWNlbGwnXTo6YWZ0ZXIgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQoKICAgIFtwYXJ0fj0ncm93J11bZHJhZ292ZXJdW2RyYWdvdmVyPSdvbi10b3AnXSBbcGFydH49J2NlbGwnXTo6YWZ0ZXIgewogICAgICBoZWlnaHQ6IDEwMCU7CiAgICB9CgogICAgW3BhcnR+PSdyb3cnXVtkcmFnc3RhcnRdIHsKICAgICAgLyogQWRkIGJvdHRvbS1zcGFjZSB0byB0aGUgcm93IHNvIHRoZSBkcmFnIG51bWJlciBkb2Vzbid0IGdldCBjbGlwcGVkLiBOZWVkZWQgZm9yIElFL0VkZ2UgKi8KICAgICAgYm9yZGVyLWJvdHRvbTogMTAwcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIHotaW5kZXg6IDEwMCAhaW1wb3J0YW50OwogICAgICBvcGFjaXR5OiAwLjk7CiAgICB9CgogICAgW3BhcnR+PSdyb3cnXVtkcmFnc3RhcnRdIFtwYXJ0fj0nY2VsbCddIHsKICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7CiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsKICAgIH0KCiAgICBbcGFydH49J3JvdyddW2RyYWdzdGFydF0gW3BhcnR+PSdjZWxsJ11bbGFzdC1jb2x1bW5dIHsKICAgICAgYm9yZGVyLXJhZGl1czogMCB2YXIoLS1sdW1vLWJvcmRlci1yYWRpdXMtcykgdmFyKC0tbHVtby1ib3JkZXItcmFkaXVzLXMpIDA7CiAgICB9CgogICAgW3BhcnR+PSdyb3cnXVtkcmFnc3RhcnRdIFtwYXJ0fj0nY2VsbCddW2ZpcnN0LWNvbHVtbl0gewogICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1sdW1vLWJvcmRlci1yYWRpdXMtcykgMCAwIHZhcigtLWx1bW8tYm9yZGVyLXJhZGl1cy1zKTsKICAgIH0KCiAgICBbaW9zXSBbcGFydH49J3JvdyddW2RyYWdzdGFydF0gW3BhcnR+PSdjZWxsJ10gewogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1sdW1vLXByaW1hcnktY29sb3ItNTBwY3QpOwogICAgfQoKICAgICNzY3JvbGxlcjpub3QoW2lvc10pIFtwYXJ0fj0ncm93J11bZHJhZ3N0YXJ0XTpub3QoW2RyYWdzdGFydD0nJ10pOjphZnRlciB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGxlZnQ6IHZhcigtLV9ncmlkLWRyYWctc3RhcnQteCk7CiAgICAgIHRvcDogdmFyKC0tX2dyaWQtZHJhZy1zdGFydC15KTsKICAgICAgei1pbmRleDogMTAwOwogICAgICBjb250ZW50OiBhdHRyKGRyYWdzdGFydCk7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWx1bW8tc3BhY2UteHMpICogMC44KTsKICAgICAgY29sb3I6IHZhcigtLWx1bW8tZXJyb3ItY29udHJhc3QtY29sb3IpOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1sdW1vLWVycm9yLWNvbG9yKTsKICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tbHVtby1ib3JkZXItcmFkaXVzLW0pOwogICAgICBmb250LWZhbWlseTogdmFyKC0tbHVtby1mb250LWZhbWlseSk7CiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbHVtby1mb250LXNpemUteHhzKTsKICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsOwogICAgICBsZXR0ZXItc3BhY2luZzogaW5pdGlhbDsKICAgICAgbWluLXdpZHRoOiBjYWxjKHZhcigtLWx1bW8tc2l6ZS1zKSAqIDAuNyk7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIH0KCiAgICAvKiBIZWFkZXJzIGFuZCBmb290ZXJzICovCgogICAgW3BhcnR+PSdoZWFkZXItY2VsbCddIDo6c2xvdHRlZCh2YWFkaW4tZ3JpZC1jZWxsLWNvbnRlbnQpLAogICAgW3BhcnR+PSdmb290ZXItY2VsbCddIDo6c2xvdHRlZCh2YWFkaW4tZ3JpZC1jZWxsLWNvbnRlbnQpLAogICAgW3BhcnR+PSdyZW9yZGVyLWdob3N0J10gewogICAgICBmb250LXNpemU6IHZhcigtLWx1bW8tZm9udC1zaXplLXMpOwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgfQoKICAgIFtwYXJ0fj0nZm9vdGVyLWNlbGwnXSA6OnNsb3R0ZWQodmFhZGluLWdyaWQtY2VsbC1jb250ZW50KSB7CiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICB9CgogICAgW3BhcnQ9J3JvdyddOm9ubHktY2hpbGQgW3BhcnR+PSdoZWFkZXItY2VsbCddIHsKICAgICAgbWluLWhlaWdodDogdmFyKC0tbHVtby1zaXplLXhsKTsKICAgIH0KCiAgICAvKiBIZWFkZXIgYm9yZGVycyAqLwoKICAgIC8qIEhpZGUgZmlyc3QgaGVhZGVyIHJvdyB0b3AgYm9yZGVyICovCiAgICA6aG9zdCg6bm90KFt0aGVtZX49J25vLXJvdy1ib3JkZXJzJ10pKSBbcGFydD0ncm93J106Zmlyc3QtY2hpbGQgW3BhcnR+PSdoZWFkZXItY2VsbCddIHsKICAgICAgYm9yZGVyLXRvcDogMDsKICAgIH0KCiAgICBbcGFydD0ncm93J106bGFzdC1jaGlsZCBbcGFydH49J2hlYWRlci1jZWxsJ10gewogICAgICBib3JkZXItYm90dG9tOiB2YXIoLS1fbHVtby1ncmlkLWJvcmRlci13aWR0aCkgc29saWQgdHJhbnNwYXJlbnQ7CiAgICB9CgogICAgOmhvc3QoOm5vdChbdGhlbWV+PSduby1yb3ctYm9yZGVycyddKSkgW3BhcnQ9J3JvdyddOmxhc3QtY2hpbGQgW3BhcnR+PSdoZWFkZXItY2VsbCddIHsKICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tX2x1bW8tZ3JpZC1zZWNvbmRhcnktYm9yZGVyLWNvbG9yKTsKICAgIH0KCiAgICAvKiBPdmVyZmxvdyB1c2VzIGEgc3Ryb25nZXIgYm9yZGVyIGNvbG9yICovCiAgICA6aG9zdChbb3ZlcmZsb3d+PSd0b3AnXSkgW3BhcnQ9J3JvdyddOmxhc3QtY2hpbGQgW3BhcnR+PSdoZWFkZXItY2VsbCddIHsKICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tX2x1bW8tZ3JpZC1ib3JkZXItY29sb3IpOwogICAgfQoKICAgIC8qIEZvb3RlciBib3JkZXJzICovCgogICAgW3BhcnQ9J3JvdyddOmZpcnN0LWNoaWxkIFtwYXJ0fj0nZm9vdGVyLWNlbGwnXSB7CiAgICAgIGJvcmRlci10b3A6IHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLXdpZHRoKSBzb2xpZCB0cmFuc3BhcmVudDsKICAgIH0KCiAgICA6aG9zdCg6bm90KFt0aGVtZX49J25vLXJvdy1ib3JkZXJzJ10pKSBbcGFydD0ncm93J106Zmlyc3QtY2hpbGQgW3BhcnR+PSdmb290ZXItY2VsbCddIHsKICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tX2x1bW8tZ3JpZC1zZWNvbmRhcnktYm9yZGVyLWNvbG9yKTsKICAgIH0KCiAgICAvKiBPdmVyZmxvdyB1c2VzIGEgc3Ryb25nZXIgYm9yZGVyIGNvbG9yICovCiAgICA6aG9zdChbb3ZlcmZsb3d+PSdib3R0b20nXSkgW3BhcnQ9J3JvdyddOmZpcnN0LWNoaWxkIFtwYXJ0fj0nZm9vdGVyLWNlbGwnXSB7CiAgICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLWNvbG9yKTsKICAgIH0KCiAgICAvKiBDb2x1bW4gcmVvcmRlcmluZyAqLwoKICAgIDpob3N0KFtyZW9yZGVyaW5nXSkgW3BhcnR+PSdjZWxsJ10gewogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodmFyKC0tbHVtby1zaGFkZS0yMHBjdCksIHZhcigtLWx1bW8tc2hhZGUtMjBwY3QpKSB2YXIoLS1sdW1vLWJhc2UtY29sb3IpOwogICAgfQoKICAgIDpob3N0KFtyZW9yZGVyaW5nXSkgW3BhcnR+PSdjZWxsJ11bcmVvcmRlci1zdGF0dXM9J2FsbG93ZWQnXSB7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWx1bW8tYmFzZS1jb2xvcik7CiAgICB9CgogICAgOmhvc3QoW3Jlb3JkZXJpbmddKSBbcGFydH49J2NlbGwnXVtyZW9yZGVyLXN0YXR1cz0nZHJhZ2dpbmcnXSB7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh2YXIoLS1sdW1vLWNvbnRyYXN0LTVwY3QpLCB2YXIoLS1sdW1vLWNvbnRyYXN0LTVwY3QpKSB2YXIoLS1sdW1vLWJhc2UtY29sb3IpOwogICAgfQoKICAgIFtwYXJ0fj0ncmVvcmRlci1naG9zdCddIHsKICAgICAgb3BhY2l0eTogMC44NTsKICAgICAgYm94LXNoYWRvdzogdmFyKC0tbHVtby1ib3gtc2hhZG93LXMpOwogICAgICAvKiBUT0RPIFVzZSB0aGUgc2FtZSBzdHlsZXMgYXMgZm9yIHRoZSBjZWxsIGVsZW1lbnQgKHJlb3JkZXItZ2hvc3QgY29waWVzIHN0eWxlcyBmcm9tIHRoZSBjZWxsIGVsZW1lbnQpICovCiAgICAgIHBhZGRpbmc6IHZhcigtLWx1bW8tc3BhY2UtcykgdmFyKC0tbHVtby1zcGFjZS1tKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC8qIENvbHVtbiByZXNpemluZyAqLwoKICAgIFtwYXJ0PSdyZXNpemUtaGFuZGxlJ10gewogICAgICB3aWR0aDogM3B4OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1sdW1vLXByaW1hcnktY29sb3ItNTBwY3QpOwogICAgICBvcGFjaXR5OiAwOwogICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7CiAgICB9CgogICAgOmhvc3QoOm5vdChbcmVvcmRlcmluZ10pKSAqOm5vdChbY29sdW1uLXJlc2l6aW5nXSkgW3BhcnR+PSdjZWxsJ106aG92ZXIgW3BhcnQ9J3Jlc2l6ZS1oYW5kbGUnXSwKICAgIFtwYXJ0PSdyZXNpemUtaGFuZGxlJ106YWN0aXZlIHsKICAgICAgb3BhY2l0eTogMTsKICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4xNXM7CiAgICB9CgogICAgLyogQ29sdW1uIGJvcmRlcnMgKi8KCiAgICA6aG9zdChbdGhlbWV+PSdjb2x1bW4tYm9yZGVycyddKSBbcGFydH49J2NlbGwnXTpub3QoW2xhc3QtY29sdW1uXSk6bm90KFtwYXJ0fj0nZGV0YWlscy1jZWxsJ10pIHsKICAgICAgYm9yZGVyLXJpZ2h0OiB2YXIoLS1fbHVtby1ncmlkLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tX2x1bW8tZ3JpZC1zZWNvbmRhcnktYm9yZGVyLWNvbG9yKTsKICAgIH0KCiAgICAvKiBGcm96ZW4gY29sdW1ucyAqLwoKICAgIFtsYXN0LWZyb3plbl0gewogICAgICBib3JkZXItcmlnaHQ6IHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLXdpZHRoKSBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICA6aG9zdChbb3ZlcmZsb3d+PSdsZWZ0J10pIFtwYXJ0fj0nY2VsbCddW2xhc3QtZnJvemVuXTpub3QoW3BhcnR+PSdkZXRhaWxzLWNlbGwnXSkgewogICAgICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLWNvbG9yKTsKICAgIH0KCiAgICAvKiBSb3cgc3RyaXBlcyAqLwoKICAgIDpob3N0KFt0aGVtZX49J3Jvdy1zdHJpcGVzJ10pIFtwYXJ0fj0ncm93J106bm90KFtvZGRdKSBbcGFydH49J2JvZHktY2VsbCddLAogICAgOmhvc3QoW3RoZW1lfj0ncm93LXN0cmlwZXMnXSkgW3BhcnR+PSdyb3cnXTpub3QoW29kZF0pIFtwYXJ0fj0nZGV0YWlscy1jZWxsJ10gewogICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodmFyKC0tbHVtby1jb250cmFzdC01cGN0KSwgdmFyKC0tbHVtby1jb250cmFzdC01cGN0KSk7CiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDsKICAgIH0KCiAgICAvKiBTZWxlY3RlZCByb3cgKi8KCiAgICAvKiBSYWlzZSB0aGUgc2VsZWN0ZWQgcm93cyBhYm92ZSB1bnNlbGVjdGVkIHJvd3MgKHNvIHRoYXQgYm94LXNoYWRvdyBjYW4gY292ZXIgdW5zZWxlY3RlZCByb3dzKSAqLwogICAgOmhvc3QoOm5vdChbcmVvcmRlcmluZ10pKSBbcGFydH49J3JvdyddW3NlbGVjdGVkXSB7CiAgICAgIHotaW5kZXg6IDE7CiAgICB9CgogICAgOmhvc3QoOm5vdChbcmVvcmRlcmluZ10pKSBbcGFydH49J3JvdyddW3NlbGVjdGVkXSBbcGFydH49J2JvZHktY2VsbCddOm5vdChbcGFydH49J2RldGFpbHMtY2VsbCddKSB7CiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh2YXIoLS1fbHVtby1ncmlkLXNlbGVjdGVkLXJvdy1jb2xvciksIHZhcigtLV9sdW1vLWdyaWQtc2VsZWN0ZWQtcm93LWNvbG9yKSk7CiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQ7CiAgICB9CgogICAgLyogQ292ZXIgdGhlIGJvcmRlciBvZiBhbiB1bnNlbGVjdGVkIHJvdyAqLwogICAgOmhvc3QoOm5vdChbdGhlbWV+PSduby1yb3ctYm9yZGVycyddKSkgW3BhcnR+PSdyb3cnXVtzZWxlY3RlZF0gW3BhcnR+PSdjZWxsJ106bm90KFtwYXJ0fj0nZGV0YWlscy1jZWxsJ10pIHsKICAgICAgYm94LXNoYWRvdzogMCB2YXIoLS1fbHVtby1ncmlkLWJvcmRlci13aWR0aCkgMCAwIHZhcigtLV9sdW1vLWdyaWQtc2VsZWN0ZWQtcm93LWNvbG9yKTsKICAgIH0KCiAgICAvKiBDb21wYWN0ICovCgogICAgOmhvc3QoW3RoZW1lfj0nY29tcGFjdCddKSBbcGFydD0ncm93J106b25seS1jaGlsZCBbcGFydH49J2hlYWRlci1jZWxsJ10gewogICAgICBtaW4taGVpZ2h0OiB2YXIoLS1sdW1vLXNpemUtbSk7CiAgICB9CgogICAgOmhvc3QoW3RoZW1lfj0nY29tcGFjdCddKSBbcGFydH49J2NlbGwnXSB7CiAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLWx1bW8tc2l6ZS1zKTsKICAgIH0KCiAgICA6aG9zdChbdGhlbWV+PSdjb21wYWN0J10pIFtwYXJ0PSdyb3cnXVtmaXJzdF0gW3BhcnR+PSdjZWxsJ106bm90KFtwYXJ0fj0nZGV0YWlscy1jZWxsJ10pIHsKICAgICAgbWluLWhlaWdodDogY2FsYyh2YXIoLS1sdW1vLXNpemUtcykgLSB2YXIoLS1fbHVtby1ncmlkLWJvcmRlci13aWR0aCkpOwogICAgfQoKICAgIDpob3N0KFt0aGVtZX49J2NvbXBhY3QnXSkgW3BhcnR+PSdjZWxsJ10gOjpzbG90dGVkKHZhYWRpbi1ncmlkLWNlbGwtY29udGVudCkgewogICAgICBwYWRkaW5nOiB2YXIoLS1sdW1vLXNwYWNlLXhzKSB2YXIoLS1sdW1vLXNwYWNlLXMpOwogICAgfQoKICAgIC8qIFdyYXAgY2VsbCBjb250ZW50cyAqLwoKICAgIDpob3N0KFt0aGVtZX49J3dyYXAtY2VsbC1jb250ZW50J10pIFtwYXJ0fj0nY2VsbCddIDo6c2xvdHRlZCh2YWFkaW4tZ3JpZC1jZWxsLWNvbnRlbnQpIHsKICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKICAgIH0KCiAgICAvKiBSVEwgc3BlY2lmaWMgc3R5bGVzICovCgogICAgOmhvc3QoW2Rpcj0ncnRsJ10pIFtwYXJ0fj0ncm93J11bZHJhZ3N0YXJ0XSBbcGFydH49J2NlbGwnXVtsYXN0LWNvbHVtbl0gewogICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1sdW1vLWJvcmRlci1yYWRpdXMtcykgMCAwIHZhcigtLWx1bW8tYm9yZGVyLXJhZGl1cy1zKTsKICAgIH0KCiAgICA6aG9zdChbZGlyPSdydGwnXSkgW3BhcnR+PSdyb3cnXVtkcmFnc3RhcnRdIFtwYXJ0fj0nY2VsbCddW2ZpcnN0LWNvbHVtbl0gewogICAgICBib3JkZXItcmFkaXVzOiAwIHZhcigtLWx1bW8tYm9yZGVyLXJhZGl1cy1zKSB2YXIoLS1sdW1vLWJvcmRlci1yYWRpdXMtcykgMDsKICAgIH0KCiAgICA6aG9zdChbZGlyPSdydGwnXVt0aGVtZX49J2NvbHVtbi1ib3JkZXJzJ10pIFtwYXJ0fj0nY2VsbCddOm5vdChbbGFzdC1jb2x1bW5dKTpub3QoW3BhcnR+PSdkZXRhaWxzLWNlbGwnXSkgewogICAgICBib3JkZXItcmlnaHQ6IG5vbmU7CiAgICAgIGJvcmRlci1sZWZ0OiB2YXIoLS1fbHVtby1ncmlkLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tX2x1bW8tZ3JpZC1zZWNvbmRhcnktYm9yZGVyLWNvbG9yKTsKICAgIH0KCiAgICA6aG9zdChbZGlyPSdydGwnXSkgW2xhc3QtZnJvemVuXSB7CiAgICAgIGJvcmRlci1yaWdodDogbm9uZTsKICAgICAgYm9yZGVyLWxlZnQ6IHZhcigtLV9sdW1vLWdyaWQtYm9yZGVyLXdpZHRoKSBzb2xpZCB0cmFuc3BhcmVudDsKICAgIH0KCiAgICA6aG9zdChbZGlyPSdydGwnXVtvdmVyZmxvd349J3JpZ2h0J10pIFtwYXJ0fj0nY2VsbCddW2xhc3QtZnJvemVuXTpub3QoW3BhcnR+PSdkZXRhaWxzLWNlbGwnXSkgewogICAgICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tX2x1bW8tZ3JpZC1ib3JkZXItY29sb3IpOwogICAgfQogIGAse21vZHVsZUlkOiJsdW1vLWdyaWQifSksdDF0KCJ2YWFkaW4tY2hlY2tib3giLCRRdGAKICAgIDpob3N0KC52YWFkaW4tZ3JpZC1zZWxlY3QtYWxsLWNoZWNrYm94KSB7CiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbHVtby1mb250LXNpemUtbSk7CiAgICB9CiAgYCx7bW9kdWxlSWQ6InZhYWRpbi1ncmlkLXNlbGVjdC1hbGwtY2hlY2tib3gtbHVtbyJ9KTsKLyoqCiAgICBAbGljZW5zZQogICAgQ29weXJpZ2h0IChjKSAyMDE2IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQKICAgIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0CiAgICBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQKICAgIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvCiAgICBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dAogICAgKi8KY29uc3QgSTF0PW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL2lQKD86aG9uZXxhZDsoPzogVTspPyBDUFUpIE9TIChcZCspLyksUjF0PUkxdCYmSTF0WzFdPj04LE8xdD1Vcih7YmVoYXZpb3JzOltDbywkb10sX3JhdGlvOi41LF9zY3JvbGxlclBhZGRpbmdUb3A6MCxfc2Nyb2xsUG9zaXRpb246MCxfcGh5c2ljYWxTaXplOjAsX3BoeXNpY2FsQXZlcmFnZTowLF9waHlzaWNhbEF2ZXJhZ2VDb3VudDowLF9waHlzaWNhbFRvcDowLF92aXJ0dWFsQ291bnQ6MCxfZXN0U2Nyb2xsSGVpZ2h0OjAsX3Njcm9sbEhlaWdodDowLF92aWV3cG9ydEhlaWdodDowLF92aWV3cG9ydFdpZHRoOjAsX3BoeXNpY2FsSXRlbXM6bnVsbCxfcGh5c2ljYWxTaXplczpudWxsLF9maXJzdFZpc2libGVJbmRleFZhbDpudWxsLF9sYXN0VmlzaWJsZUluZGV4VmFsOm51bGwsX21heFBhZ2VzOjIsX2ZvY3VzZWRWaXJ0dWFsSW5kZXg6LTEsX3RlbXBsYXRlQ29zdDowLGdldCBfcGh5c2ljYWxCb3R0b20oKXtyZXR1cm4gdGhpcy5fcGh5c2ljYWxUb3ArdGhpcy5fcGh5c2ljYWxTaXplfSxnZXQgX3Njcm9sbEJvdHRvbSgpe3JldHVybiB0aGlzLl9zY3JvbGxQb3NpdGlvbit0aGlzLl92aWV3cG9ydEhlaWdodH0sZ2V0IF92aXJ0dWFsRW5kKCl7cmV0dXJuIHRoaXMuX3ZpcnR1YWxTdGFydCt0aGlzLl9waHlzaWNhbENvdW50LTF9LGdldCBfaGlkZGVuQ29udGVudFNpemUoKXtyZXR1cm4gdGhpcy5fcGh5c2ljYWxTaXplLXRoaXMuX3ZpZXdwb3J0SGVpZ2h0fSxnZXQgX21heFNjcm9sbFRvcCgpe3JldHVybiB0aGlzLl9lc3RTY3JvbGxIZWlnaHQtdGhpcy5fdmlld3BvcnRIZWlnaHQrdGhpcy5fc2Nyb2xsT2Zmc2V0fSxnZXQgX21heFZpcnR1YWxTdGFydCgpe3JldHVybiBNYXRoLm1heCgwLHRoaXMuX3ZpcnR1YWxDb3VudC10aGlzLl9waHlzaWNhbENvdW50KX0sc2V0IF92aXJ0dWFsU3RhcnQodCl7dD10aGlzLl9jbGFtcCh0LDAsdGhpcy5fbWF4VmlydHVhbFN0YXJ0KSx0aGlzLl92aXJ0dWFsU3RhcnRWYWw9dH0sZ2V0IF92aXJ0dWFsU3RhcnQoKXtyZXR1cm4gdGhpcy5fdmlydHVhbFN0YXJ0VmFsfHwwfSxzZXQgX3BoeXNpY2FsU3RhcnQodCl7KHQlPXRoaXMuX3BoeXNpY2FsQ291bnQpPDAmJih0PXRoaXMuX3BoeXNpY2FsQ291bnQrdCksdGhpcy5fcGh5c2ljYWxTdGFydFZhbD10fSxnZXQgX3BoeXNpY2FsU3RhcnQoKXtyZXR1cm4gdGhpcy5fcGh5c2ljYWxTdGFydFZhbHx8MH0sZ2V0IF9waHlzaWNhbEVuZCgpe3JldHVybih0aGlzLl9waHlzaWNhbFN0YXJ0K3RoaXMuX3BoeXNpY2FsQ291bnQtMSkldGhpcy5fcGh5c2ljYWxDb3VudH0sc2V0IF9waHlzaWNhbENvdW50KHQpe3RoaXMuX3BoeXNpY2FsQ291bnRWYWw9dH0sZ2V0IF9waHlzaWNhbENvdW50KCl7cmV0dXJuIHRoaXMuX3BoeXNpY2FsQ291bnRWYWx8fDB9LGdldCBfb3B0UGh5c2ljYWxTaXplKCl7cmV0dXJuIDA9PT10aGlzLl92aWV3cG9ydEhlaWdodD8xLzA6dGhpcy5fdmlld3BvcnRIZWlnaHQqdGhpcy5fbWF4UGFnZXN9LGdldCBfaXNWaXNpYmxlKCl7cmV0dXJuIEJvb2xlYW4odGhpcy5vZmZzZXRXaWR0aHx8dGhpcy5vZmZzZXRIZWlnaHQpfSxnZXQgZmlyc3RWaXNpYmxlSW5kZXgoKXtsZXQgdD10aGlzLl9maXJzdFZpc2libGVJbmRleFZhbDtpZihudWxsPT10KXtsZXQgZT10aGlzLl9waHlzaWNhbFRvcCt0aGlzLl9zY3JvbGxPZmZzZXQ7dD10aGlzLl9pdGVyYXRlSXRlbXMoKGZ1bmN0aW9uKHQsbil7aWYoZSs9dGhpcy5fcGh5c2ljYWxTaXplc1t0XSxlPnRoaXMuX3Njcm9sbFBvc2l0aW9uKXJldHVybiBufSkpfHwwLHRoaXMuX2ZpcnN0VmlzaWJsZUluZGV4VmFsPXR9cmV0dXJuIHR9LGdldCBsYXN0VmlzaWJsZUluZGV4KCl7bGV0IHQ9dGhpcy5fbGFzdFZpc2libGVJbmRleFZhbDtpZihudWxsPT10KXtsZXQgZT10aGlzLl9waHlzaWNhbFRvcCt0aGlzLl9zY3JvbGxPZmZzZXQ7dGhpcy5faXRlcmF0ZUl0ZW1zKChmdW5jdGlvbihuLGkpe2U8dGhpcy5fc2Nyb2xsQm90dG9tJiYodD1pKSxlKz10aGlzLl9waHlzaWNhbFNpemVzW25dfSkpLHRoaXMuX2xhc3RWaXNpYmxlSW5kZXhWYWw9dH1yZXR1cm4gdH0sZ2V0IF9zY3JvbGxPZmZzZXQoKXtyZXR1cm4gdGhpcy5fc2Nyb2xsZXJQYWRkaW5nVG9wfSxhdHRhY2hlZDpmdW5jdGlvbigpe3RoaXMuX2RlYm91bmNlKCJfcmVuZGVyIix0aGlzLl9yZW5kZXIsX3QpLHRoaXMubGlzdGVuKHRoaXMsImlyb24tcmVzaXplIiwiX3Jlc2l6ZUhhbmRsZXIiKX0sZGV0YWNoZWQ6ZnVuY3Rpb24oKXt0aGlzLnVubGlzdGVuKHRoaXMsImlyb24tcmVzaXplIiwiX3Jlc2l6ZUhhbmRsZXIiKX0sdXBkYXRlVmlld3BvcnRCb3VuZGFyaWVzOmZ1bmN0aW9uKCl7Y29uc3QgdD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzKTt0aGlzLl9zY3JvbGxlclBhZGRpbmdUb3A9dGhpcy5zY3JvbGxUYXJnZXQ9PT10aGlzPzA6cGFyc2VJbnQodFsicGFkZGluZy10b3AiXSwxMCksdGhpcy5faXNSVEw9Qm9vbGVhbigicnRsIj09PXQuZGlyZWN0aW9uKSx0aGlzLl92aWV3cG9ydFdpZHRoPXRoaXMuJC5pdGVtcy5vZmZzZXRXaWR0aCx0aGlzLl92aWV3cG9ydEhlaWdodD10aGlzLl9zY3JvbGxUYXJnZXRIZWlnaHR9LF9zY3JvbGxIYW5kbGVyOmZ1bmN0aW9uKCl7Y29uc3QgdD1NYXRoLm1heCgwLE1hdGgubWluKHRoaXMuX21heFNjcm9sbFRvcCx0aGlzLl9zY3JvbGxUb3ApKTtsZXQgZT10LXRoaXMuX3Njcm9sbFBvc2l0aW9uO2NvbnN0IG49ZT49MDtpZih0aGlzLl9zY3JvbGxQb3NpdGlvbj10LHRoaXMuX2ZpcnN0VmlzaWJsZUluZGV4VmFsPW51bGwsdGhpcy5fbGFzdFZpc2libGVJbmRleFZhbD1udWxsLE1hdGguYWJzKGUpPnRoaXMuX3BoeXNpY2FsU2l6ZSYmdGhpcy5fcGh5c2ljYWxTaXplPjApe2UtPXRoaXMuX3Njcm9sbE9mZnNldDtjb25zdCB0PU1hdGgucm91bmQoZS90aGlzLl9waHlzaWNhbEF2ZXJhZ2UpO3RoaXMuX3ZpcnR1YWxTdGFydD10aGlzLl92aXJ0dWFsU3RhcnQrdCx0aGlzLl9waHlzaWNhbFN0YXJ0PXRoaXMuX3BoeXNpY2FsU3RhcnQrdCx0aGlzLl9waHlzaWNhbFRvcD1NYXRoLmZsb29yKHRoaXMuX3ZpcnR1YWxTdGFydCkqdGhpcy5fcGh5c2ljYWxBdmVyYWdlLHRoaXMuX3VwZGF0ZSgpfWVsc2UgaWYodGhpcy5fcGh5c2ljYWxDb3VudD4wKXtjb25zdHtwaHlzaWNhbFRvcDp0LGluZGV4ZXM6ZX09dGhpcy5fZ2V0UmV1c2FibGVzKG4pO24/KHRoaXMuX3BoeXNpY2FsVG9wPXQsdGhpcy5fdmlydHVhbFN0YXJ0PXRoaXMuX3ZpcnR1YWxTdGFydCtlLmxlbmd0aCx0aGlzLl9waHlzaWNhbFN0YXJ0PXRoaXMuX3BoeXNpY2FsU3RhcnQrZS5sZW5ndGgpOih0aGlzLl92aXJ0dWFsU3RhcnQ9dGhpcy5fdmlydHVhbFN0YXJ0LWUubGVuZ3RoLHRoaXMuX3BoeXNpY2FsU3RhcnQ9dGhpcy5fcGh5c2ljYWxTdGFydC1lLmxlbmd0aCksdGhpcy5fdXBkYXRlKGUsbj9udWxsOmUpLHRoaXMuX2RlYm91bmNlKCJfaW5jcmVhc2VQb29sSWZOZWVkZWQiLHRoaXMuX2luY3JlYXNlUG9vbElmTmVlZGVkLmJpbmQodGhpcywwKSx2dCl9fSxfZ2V0UmV1c2FibGVzOmZ1bmN0aW9uKHQpe2xldCBlLG4saTtjb25zdCByPVtdLG89dGhpcy5faGlkZGVuQ29udGVudFNpemUqdGhpcy5fcmF0aW8sYT10aGlzLl92aXJ0dWFsU3RhcnQscz10aGlzLl92aXJ0dWFsRW5kLGw9dGhpcy5fcGh5c2ljYWxDb3VudDtsZXQgYz10aGlzLl9waHlzaWNhbFRvcCt0aGlzLl9zY3JvbGxPZmZzZXQ7Y29uc3QgdT10aGlzLl9zY3JvbGxUb3AsaD10aGlzLl9zY3JvbGxCb3R0b207Zm9yKHQ/KGU9dGhpcy5fcGh5c2ljYWxTdGFydCxuPXUtYyk6KGU9dGhpcy5fcGh5c2ljYWxFbmQsbj10aGlzLl9waHlzaWNhbEJvdHRvbSt0aGlzLl9zY3JvbGxPZmZzZXQtaCk7aT10aGlzLl9waHlzaWNhbFNpemVzW2VdLG4tPWksIShyLmxlbmd0aD49bHx8bjw9byk7KWlmKHQpe2lmKHMrci5sZW5ndGgrMT49dGhpcy5fdmlydHVhbENvdW50KWJyZWFrO2lmKGMraT49dS10aGlzLl9zY3JvbGxPZmZzZXQpYnJlYWs7ci5wdXNoKGUpLGMrPWksZT0oZSsxKSVsfWVsc2V7aWYoYS1yLmxlbmd0aDw9MClicmVhaztpZihjK3RoaXMuX3BoeXNpY2FsU2l6ZS1pPD1oKWJyZWFrO3IucHVzaChlKSxjLT1pLGU9MD09PWU/bC0xOmUtMX1yZXR1cm57aW5kZXhlczpyLHBoeXNpY2FsVG9wOmMtdGhpcy5fc2Nyb2xsT2Zmc2V0fX0sX3VwZGF0ZTpmdW5jdGlvbih0LGUpe2lmKCEodCYmMD09PXQubGVuZ3RofHwwPT09dGhpcy5fcGh5c2ljYWxDb3VudCkpe2lmKHRoaXMuX2Fzc2lnbk1vZGVscyh0KSx0aGlzLl91cGRhdGVNZXRyaWNzKHQpLGUpZm9yKDtlLmxlbmd0aDspe2NvbnN0IHQ9ZS5wb3AoKTt0aGlzLl9waHlzaWNhbFRvcC09dGhpcy5fcGh5c2ljYWxTaXplc1t0XX10aGlzLl9wb3NpdGlvbkl0ZW1zKCksdGhpcy5fdXBkYXRlU2Nyb2xsZXJTaXplKCl9fSxfaXNDbGllbnRGdWxsOmZ1bmN0aW9uKCl7cmV0dXJuIDAhPXRoaXMuX3Njcm9sbEJvdHRvbSYmdGhpcy5fcGh5c2ljYWxCb3R0b20tMT49dGhpcy5fc2Nyb2xsQm90dG9tJiZ0aGlzLl9waHlzaWNhbFRvcDw9dGhpcy5fc2Nyb2xsUG9zaXRpb259LF9pbmNyZWFzZVBvb2xJZk5lZWRlZDpmdW5jdGlvbih0KXtjb25zdCBlPXRoaXMuX2NsYW1wKHRoaXMuX3BoeXNpY2FsQ291bnQrdCwzLHRoaXMuX3ZpcnR1YWxDb3VudC10aGlzLl92aXJ0dWFsU3RhcnQpLXRoaXMuX3BoeXNpY2FsQ291bnQ7bGV0IG49TWF0aC5yb3VuZCguNSp0aGlzLl9waHlzaWNhbENvdW50KTtpZighKGU8MCkpe2lmKGU+MCl7Y29uc3QgdD13aW5kb3cucGVyZm9ybWFuY2Uubm93KCk7W10ucHVzaC5hcHBseSh0aGlzLl9waHlzaWNhbEl0ZW1zLHRoaXMuX2NyZWF0ZVBvb2woZSkpO2ZvcihsZXQgdD0wO3Q8ZTt0KyspdGhpcy5fcGh5c2ljYWxTaXplcy5wdXNoKDApO3RoaXMuX3BoeXNpY2FsQ291bnQ9dGhpcy5fcGh5c2ljYWxDb3VudCtlLHRoaXMuX3BoeXNpY2FsU3RhcnQ+dGhpcy5fcGh5c2ljYWxFbmQmJnRoaXMuX2lzSW5kZXhSZW5kZXJlZCh0aGlzLl9mb2N1c2VkVmlydHVhbEluZGV4KSYmdGhpcy5fZ2V0UGh5c2ljYWxJbmRleCh0aGlzLl9mb2N1c2VkVmlydHVhbEluZGV4KTx0aGlzLl9waHlzaWNhbEVuZCYmKHRoaXMuX3BoeXNpY2FsU3RhcnQ9dGhpcy5fcGh5c2ljYWxTdGFydCtlKSx0aGlzLl91cGRhdGUoKSx0aGlzLl90ZW1wbGF0ZUNvc3Q9KHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKS10KS9lLG49TWF0aC5yb3VuZCguNSp0aGlzLl9waHlzaWNhbENvdW50KX10aGlzLl92aXJ0dWFsRW5kPj10aGlzLl92aXJ0dWFsQ291bnQtMXx8MD09PW58fCh0aGlzLl9pc0NsaWVudEZ1bGwoKT90aGlzLl9waHlzaWNhbFNpemU8dGhpcy5fb3B0UGh5c2ljYWxTaXplJiZ0aGlzLl9kZWJvdW5jZSgiX2luY3JlYXNlUG9vbElmTmVlZGVkIix0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZC5iaW5kKHRoaXMsdGhpcy5fY2xhbXAoTWF0aC5yb3VuZCg1MC90aGlzLl90ZW1wbGF0ZUNvc3QpLDEsbikpLHl0KTp0aGlzLl9kZWJvdW5jZSgiX2luY3JlYXNlUG9vbElmTmVlZGVkIix0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZC5iaW5kKHRoaXMsbiksdnQpKX19LF9yZW5kZXI6ZnVuY3Rpb24oKXtpZih0aGlzLmlzQXR0YWNoZWQmJnRoaXMuX2lzVmlzaWJsZSlpZigwIT09dGhpcy5fcGh5c2ljYWxDb3VudCl7Y29uc3R7cGh5c2ljYWxUb3A6dCxpbmRleGVzOmV9PXRoaXMuX2dldFJldXNhYmxlcyghMCk7dGhpcy5fcGh5c2ljYWxUb3A9dCx0aGlzLl92aXJ0dWFsU3RhcnQ9dGhpcy5fdmlydHVhbFN0YXJ0K2UubGVuZ3RoLHRoaXMuX3BoeXNpY2FsU3RhcnQ9dGhpcy5fcGh5c2ljYWxTdGFydCtlLmxlbmd0aCx0aGlzLl91cGRhdGUoZSksdGhpcy5fdXBkYXRlKCksdGhpcy5faW5jcmVhc2VQb29sSWZOZWVkZWQoMCl9ZWxzZSB0aGlzLl92aXJ0dWFsQ291bnQ+MCYmKHRoaXMudXBkYXRlVmlld3BvcnRCb3VuZGFyaWVzKCksdGhpcy5faW5jcmVhc2VQb29sSWZOZWVkZWQoMykpfSxfaXRlbXNDaGFuZ2VkOmZ1bmN0aW9uKHQpeyJpdGVtcyI9PT10LnBhdGgmJih0aGlzLl92aXJ0dWFsU3RhcnQ9MCx0aGlzLl9waHlzaWNhbFRvcD0wLHRoaXMuX3ZpcnR1YWxDb3VudD10aGlzLml0ZW1zP3RoaXMuaXRlbXMubGVuZ3RoOjAsdGhpcy5fcGh5c2ljYWxJbmRleEZvcktleT17fSx0aGlzLl9maXJzdFZpc2libGVJbmRleFZhbD1udWxsLHRoaXMuX2xhc3RWaXNpYmxlSW5kZXhWYWw9bnVsbCx0aGlzLl9waHlzaWNhbENvdW50PXRoaXMuX3BoeXNpY2FsQ291bnR8fDAsdGhpcy5fcGh5c2ljYWxJdGVtcz10aGlzLl9waHlzaWNhbEl0ZW1zfHxbXSx0aGlzLl9waHlzaWNhbFNpemVzPXRoaXMuX3BoeXNpY2FsU2l6ZXN8fFtdLHRoaXMuX3BoeXNpY2FsU3RhcnQ9MCx0aGlzLl9zY3JvbGxUb3A+dGhpcy5fc2Nyb2xsT2Zmc2V0JiZ0aGlzLl9yZXNldFNjcm9sbFBvc2l0aW9uKDApLHRoaXMuX2RlYm91bmNlKCJfcmVuZGVyIix0aGlzLl9yZW5kZXIsX3QpKX0sX2l0ZXJhdGVJdGVtczpmdW5jdGlvbih0LGUpe2xldCBuLGkscixvO2lmKDI9PT1hcmd1bWVudHMubGVuZ3RoJiZlKXtmb3Iobz0wO288ZS5sZW5ndGg7bysrKWlmKG49ZVtvXSxpPXRoaXMuX2NvbXB1dGVWaWR4KG4pLG51bGwhPShyPXQuY2FsbCh0aGlzLG4saSkpKXJldHVybiByfWVsc2V7Zm9yKG49dGhpcy5fcGh5c2ljYWxTdGFydCxpPXRoaXMuX3ZpcnR1YWxTdGFydDtuPHRoaXMuX3BoeXNpY2FsQ291bnQ7bisrLGkrKylpZihudWxsIT0ocj10LmNhbGwodGhpcyxuLGkpKSlyZXR1cm4gcjtmb3Iobj0wO248dGhpcy5fcGh5c2ljYWxTdGFydDtuKyssaSsrKWlmKG51bGwhPShyPXQuY2FsbCh0aGlzLG4saSkpKXJldHVybiByfX0sX2NvbXB1dGVWaWR4OmZ1bmN0aW9uKHQpe3JldHVybiB0Pj10aGlzLl9waHlzaWNhbFN0YXJ0P3RoaXMuX3ZpcnR1YWxTdGFydCsodC10aGlzLl9waHlzaWNhbFN0YXJ0KTp0aGlzLl92aXJ0dWFsU3RhcnQrKHRoaXMuX3BoeXNpY2FsQ291bnQtdGhpcy5fcGh5c2ljYWxTdGFydCkrdH0sX3VwZGF0ZU1ldHJpY3M6ZnVuY3Rpb24odCl7aWYoIXRoaXMuX2lzVmlzaWJsZSlyZXR1cm47V2koKTtsZXQgZT0wLG49MDtjb25zdCBpPXRoaXMuX3BoeXNpY2FsQXZlcmFnZUNvdW50LHI9dGhpcy5fcGh5c2ljYWxBdmVyYWdlO3RoaXMuX2l0ZXJhdGVJdGVtcygoZnVuY3Rpb24odCl7bis9dGhpcy5fcGh5c2ljYWxTaXplc1t0XSx0aGlzLl9waHlzaWNhbFNpemVzW3RdPXRoaXMuX3BoeXNpY2FsSXRlbXNbdF0ub2Zmc2V0SGVpZ2h0LGUrPXRoaXMuX3BoeXNpY2FsU2l6ZXNbdF0sdGhpcy5fcGh5c2ljYWxBdmVyYWdlQ291bnQrPXRoaXMuX3BoeXNpY2FsU2l6ZXNbdF0/MTowfSksdCksdGhpcy5fcGh5c2ljYWxTaXplPXRoaXMuX3BoeXNpY2FsU2l6ZStlLW4sdGhpcy5fcGh5c2ljYWxBdmVyYWdlQ291bnQhPT1pJiYodGhpcy5fcGh5c2ljYWxBdmVyYWdlPU1hdGgucm91bmQoKHIqaStlKS90aGlzLl9waHlzaWNhbEF2ZXJhZ2VDb3VudCkpfSxfcG9zaXRpb25JdGVtczpmdW5jdGlvbigpe3RoaXMuX2FkanVzdFNjcm9sbFBvc2l0aW9uKCk7bGV0IHQ9dGhpcy5fcGh5c2ljYWxUb3A7dGhpcy5faXRlcmF0ZUl0ZW1zKChmdW5jdGlvbihlKXt0aGlzLnRyYW5zbGF0ZTNkKDAsdCsicHgiLDAsdGhpcy5fcGh5c2ljYWxJdGVtc1tlXSksdCs9dGhpcy5fcGh5c2ljYWxTaXplc1tlXX0pKX0sX2FkanVzdFNjcm9sbFBvc2l0aW9uOmZ1bmN0aW9uKCl7Y29uc3QgdD0wPT09dGhpcy5fdmlydHVhbFN0YXJ0P3RoaXMuX3BoeXNpY2FsVG9wOk1hdGgubWluKHRoaXMuX3Njcm9sbFBvc2l0aW9uK3RoaXMuX3BoeXNpY2FsVG9wLDApO2lmKDAhPT10KXt0aGlzLl9waHlzaWNhbFRvcD10aGlzLl9waHlzaWNhbFRvcC10O2NvbnN0IGU9dGhpcy5fc2Nyb2xsVG9wOyFSMXQmJmU+MCYmdGhpcy5fcmVzZXRTY3JvbGxQb3NpdGlvbihlLXQpfX0sX3Jlc2V0U2Nyb2xsUG9zaXRpb246ZnVuY3Rpb24odCl7dGhpcy5zY3JvbGxUYXJnZXQmJnQ+PTAmJih0aGlzLl9zY3JvbGxUb3A9dCx0aGlzLl9zY3JvbGxQb3NpdGlvbj10aGlzLl9zY3JvbGxUb3ApfSxfdXBkYXRlU2Nyb2xsZXJTaXplOmZ1bmN0aW9uKHQpe3RoaXMuX2VzdFNjcm9sbEhlaWdodD10aGlzLl9waHlzaWNhbEJvdHRvbStNYXRoLm1heCh0aGlzLl92aXJ0dWFsQ291bnQtdGhpcy5fcGh5c2ljYWxDb3VudC10aGlzLl92aXJ0dWFsU3RhcnQsMCkqdGhpcy5fcGh5c2ljYWxBdmVyYWdlLCgodD0odD10fHwwPT09dGhpcy5fc2Nyb2xsSGVpZ2h0KXx8dGhpcy5fc2Nyb2xsUG9zaXRpb24+PXRoaXMuX2VzdFNjcm9sbEhlaWdodC10aGlzLl9waHlzaWNhbFNpemUpfHxNYXRoLmFicyh0aGlzLl9lc3RTY3JvbGxIZWlnaHQtdGhpcy5fc2Nyb2xsSGVpZ2h0KT49dGhpcy5fdmlld3BvcnRIZWlnaHQpJiYodGhpcy4kLml0ZW1zLnN0eWxlLmhlaWdodD10aGlzLl9lc3RTY3JvbGxIZWlnaHQrInB4Iix0aGlzLl9zY3JvbGxIZWlnaHQ9dGhpcy5fZXN0U2Nyb2xsSGVpZ2h0KX0sc2Nyb2xsVG9JbmRleDpmdW5jdGlvbih0KXtpZigibnVtYmVyIiE9dHlwZW9mIHR8fHQ8MHx8dD50aGlzLml0ZW1zLmxlbmd0aC0xKXJldHVybjtpZihXaSgpLDA9PT10aGlzLl9waHlzaWNhbENvdW50KXJldHVybjt0PXRoaXMuX2NsYW1wKHQsMCx0aGlzLl92aXJ0dWFsQ291bnQtMSksKCF0aGlzLl9pc0luZGV4UmVuZGVyZWQodCl8fHQ+PXRoaXMuX21heFZpcnR1YWxTdGFydCkmJih0aGlzLl92aXJ0dWFsU3RhcnQ9dC0xKSx0aGlzLl9hc3NpZ25Nb2RlbHMoKSx0aGlzLl91cGRhdGVNZXRyaWNzKCksdGhpcy5fcGh5c2ljYWxUb3A9TWF0aC5mbG9vcih0aGlzLl92aXJ0dWFsU3RhcnQpKnRoaXMuX3BoeXNpY2FsQXZlcmFnZTtsZXQgZT10aGlzLl9waHlzaWNhbFN0YXJ0LG49dGhpcy5fdmlydHVhbFN0YXJ0LGk9MDtjb25zdCByPXRoaXMuX2hpZGRlbkNvbnRlbnRTaXplO2Zvcig7bjx0JiZpPD1yOylpKz10aGlzLl9waHlzaWNhbFNpemVzW2VdLGU9KGUrMSkldGhpcy5fcGh5c2ljYWxDb3VudCxuKys7dGhpcy5fdXBkYXRlU2Nyb2xsZXJTaXplKCEwKSx0aGlzLl9wb3NpdGlvbkl0ZW1zKCksdGhpcy5fcmVzZXRTY3JvbGxQb3NpdGlvbih0aGlzLl9waHlzaWNhbFRvcCt0aGlzLl9zY3JvbGxPZmZzZXQraSksdGhpcy5faW5jcmVhc2VQb29sSWZOZWVkZWQoMCksdGhpcy5fZmlyc3RWaXNpYmxlSW5kZXhWYWw9bnVsbCx0aGlzLl9sYXN0VmlzaWJsZUluZGV4VmFsPW51bGx9LF9yZXNldEF2ZXJhZ2U6ZnVuY3Rpb24oKXt0aGlzLl9waHlzaWNhbEF2ZXJhZ2U9MCx0aGlzLl9waHlzaWNhbEF2ZXJhZ2VDb3VudD0wfSxfcmVzaXplSGFuZGxlcjpmdW5jdGlvbigpe3RoaXMuX2RlYm91bmNlKCJfcmVuZGVyIiwoZnVuY3Rpb24oKXt0aGlzLl9maXJzdFZpc2libGVJbmRleFZhbD1udWxsLHRoaXMuX2xhc3RWaXNpYmxlSW5kZXhWYWw9bnVsbCx0aGlzLnVwZGF0ZVZpZXdwb3J0Qm91bmRhcmllcygpLHRoaXMuX2lzVmlzaWJsZT8odGhpcy50b2dnbGVTY3JvbGxMaXN0ZW5lcighMCksdGhpcy5fcmVzZXRBdmVyYWdlKCksdGhpcy5fcmVuZGVyKCkpOnRoaXMudG9nZ2xlU2Nyb2xsTGlzdGVuZXIoITEpfSksX3QpfSxfaXNJbmRleFJlbmRlcmVkOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj10aGlzLl92aXJ0dWFsU3RhcnQmJnQ8PXRoaXMuX3ZpcnR1YWxFbmR9LF9nZXRQaHlzaWNhbEluZGV4OmZ1bmN0aW9uKHQpe3JldHVybih0aGlzLl9waHlzaWNhbFN0YXJ0Kyh0LXRoaXMuX3ZpcnR1YWxTdGFydCkpJXRoaXMuX3BoeXNpY2FsQ291bnR9LF9jbGFtcDpmdW5jdGlvbih0LGUsbil7cmV0dXJuIE1hdGgubWluKG4sTWF0aC5tYXgoZSx0KSl9LF9kZWJvdW5jZTpmdW5jdGlvbih0LGUsbil7dGhpcy5fZGVib3VuY2Vycz10aGlzLl9kZWJvdW5jZXJzfHx7fSx0aGlzLl9kZWJvdW5jZXJzW3RdPU5uLmRlYm91bmNlKHRoaXMuX2RlYm91bmNlcnNbdF0sbixlLmJpbmQodGhpcykpLFJuKHRoaXMuX2RlYm91bmNlcnNbdF0pfX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLwpjbGFzcyB6MXQgZXh0ZW5kcyBPMXR7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue3NpemU6e3R5cGU6TnVtYmVyLG5vdGlmeTohMH0sX3ZpZHhPZmZzZXQ6e3R5cGU6TnVtYmVyLHZhbHVlOjB9fX1zdGF0aWMgZ2V0IG9ic2VydmVycygpe3JldHVyblsiX2VmZmVjdGl2ZVNpemVDaGFuZ2VkKF9lZmZlY3RpdmVTaXplKSJdfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl9zY3JvbGxIYW5kbGVyKCl9X3VwZGF0ZVNjcm9sbGVySXRlbSgpe31fYWZ0ZXJTY3JvbGwoKXt9X2dldFJvd1RhcmdldCgpe31fY3JlYXRlU2Nyb2xsZXJSb3dzKCl7fV9jYW5Qb3B1bGF0ZSgpe31zY3JvbGxUb0luZGV4KHQpe3RoaXMuX3dhcm5Qcml2YXRlQVBJQWNjZXNzKCJzY3JvbGxUb0luZGV4IiksdGhpcy5fc2Nyb2xsaW5nVG9JbmRleD0hMCx0PU1hdGgubWluKE1hdGgubWF4KHQsMCksdGhpcy5fZWZmZWN0aXZlU2l6ZS0xKSx0aGlzLiQudGFibGUuc2Nyb2xsVG9wPXQvdGhpcy5fZWZmZWN0aXZlU2l6ZSoodGhpcy4kLnRhYmxlLnNjcm9sbEhlaWdodC10aGlzLiQudGFibGUub2Zmc2V0SGVpZ2h0KSx0aGlzLl9zY3JvbGxIYW5kbGVyKCksdGhpcy5fYWNjZXNzSXJvbkxpc3RBUEkoKCgpPT50aGlzLl9tYXhTY3JvbGxUb3ApKSYmdGhpcy5fdmlydHVhbENvdW50PHRoaXMuX2VmZmVjdGl2ZVNpemUmJnRoaXMuX2FkanVzdFZpcnR1YWxJbmRleE9mZnNldCgxZTYpLHRoaXMuX2FjY2Vzc0lyb25MaXN0QVBJKCgoKT0+c3VwZXIuc2Nyb2xsVG9JbmRleCh0LXRoaXMuX3ZpZHhPZmZzZXQpKSksdGhpcy5fc2Nyb2xsSGFuZGxlcigpO2NvbnN0IGU9QXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZpbHRlcigoZT0+ZS5pbmRleD09PXQpKVswXTtpZihlKXtjb25zdCB0PWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wLXRoaXMuJC5oZWFkZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tO01hdGguYWJzKHQpPjEmJih0aGlzLiQudGFibGUuc2Nyb2xsVG9wKz10LHRoaXMuX3Njcm9sbEhhbmRsZXIoKSl9dGhpcy5fc2Nyb2xsaW5nVG9JbmRleD0hMX1fZWZmZWN0aXZlU2l6ZUNoYW5nZWQodCl7bGV0IGUsbj0wO2lmKHRoaXMuX2l0ZXJhdGVJdGVtcygoKHQsaSk9PntpZihpPT09dGhpcy5fZmlyc3RWaXNpYmxlSW5kZXgpe2NvbnN0IGk9dGhpcy5fcGh5c2ljYWxJdGVtc1t0XTtlPWkuaW5kZXgsbj1pLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcH19KSksdGhpcy5pdGVtcyYmdDx0aGlzLml0ZW1zLmxlbmd0aCYmKHRoaXMuX3Njcm9sbFRvcD0wKSwhQXJyYXkuaXNBcnJheSh0aGlzLml0ZW1zKSl7dGhpcy5pdGVtcz17bGVuZ3RoOk1hdGgubWluKHQsMWU1KX19dGhpcy5fYWNjZXNzSXJvbkxpc3RBUEkoKCgpPT5zdXBlci5faXRlbXNDaGFuZ2VkKHtwYXRoOiJpdGVtcyJ9KSkpLHRoaXMuX3ZpcnR1YWxDb3VudD1NYXRoLm1pbih0aGlzLml0ZW1zLmxlbmd0aCx0KXx8MCwwPT09dGhpcy5fc2Nyb2xsVG9wJiYodGhpcy5fYWNjZXNzSXJvbkxpc3RBUEkoKCgpPT50aGlzLl9zY3JvbGxUb0luZGV4KE1hdGgubWluKHQtMSxlKSkpKSx0aGlzLl9pdGVyYXRlSXRlbXMoKHQ9Pntjb25zdCBpPXRoaXMuX3BoeXNpY2FsSXRlbXNbdF07aWYoaS5pbmRleD09PWUmJih0aGlzLiQudGFibGUuc2Nyb2xsVG9wKz1NYXRoLnJvdW5kKGkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wLW4pKSxpLmluZGV4PT09dGhpcy5fZm9jdXNlZEl0ZW1JbmRleCYmdGhpcy5faXRlbXNGb2N1c2FibGUmJnRoaXMuJC5pdGVtcy5jb250YWlucyh0aGlzLnNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCkpe2NvbnN0IHQ9QXJyYXkuZnJvbSh0aGlzLl9pdGVtc0ZvY3VzYWJsZS5wYXJlbnRFbGVtZW50LmNoaWxkcmVuKS5pbmRleE9mKHRoaXMuX2l0ZW1zRm9jdXNhYmxlKTtpLmNoaWxkcmVuW3RdLmZvY3VzKCl9fSkpKSx0aGlzLl9hc3NpZ25Nb2RlbHMoKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT50aGlzLl91cGRhdGUoKSkpLHRoaXMuX191cGRhdGVGb290ZXJQb3NpdGlvbmluZygpfV9wb3NpdGlvbkl0ZW1zKCl7bGV0IHQ7dGhpcy5fYWRqdXN0U2Nyb2xsUG9zaXRpb24oKSxpc05hTih0aGlzLl9waHlzaWNhbFRvcCkmJih0PSEwLHRoaXMuX3BoeXNpY2FsVG9wPTApO2xldCBlPXRoaXMuX3BoeXNpY2FsVG9wO3RoaXMuX2l0ZXJhdGVJdGVtcygodD0+e3RoaXMuX3BoeXNpY2FsSXRlbXNbdF0uc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGVZKCR7ZX1weClgLGUrPXRoaXMuX3BoeXNpY2FsU2l6ZXNbdF19KSksdCYmdGhpcy5fc2Nyb2xsVG9JbmRleCgwKX1faW5jcmVhc2VQb29sSWZOZWVkZWQodCl7MD09PXQmJnRoaXMuX3Njcm9sbGluZ1RvSW5kZXh8fCF0aGlzLl9jYW5Qb3B1bGF0ZSgpfHwhdGhpcy5fZWZmZWN0aXZlU2l6ZXx8KHRoaXMuX2luaXRpYWxQb29sQ3JlYXRlZD90aGlzLl9vcHRQaHlzaWNhbFNpemUhPT0xLzAmJih0aGlzLl9kZWJvdW5jZUluY3JlYXNlUG9vbD1Obi5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZUluY3JlYXNlUG9vbCxfdCwoKCk9Pnt0aGlzLl91cGRhdGVNZXRyaWNzKCk7bGV0IHQ9TWF0aC5jZWlsKCh0aGlzLl9vcHRQaHlzaWNhbFNpemUtdGhpcy5fcGh5c2ljYWxTaXplKS90aGlzLl9waHlzaWNhbEF2ZXJhZ2UpO3RoaXMuX3BoeXNpY2FsQ291bnQrdD50aGlzLl9lZmZlY3RpdmVTaXplJiYodD1NYXRoLm1heCgwLHRoaXMuX2VmZmVjdGl2ZVNpemUtdGhpcy5fcGh5c2ljYWxDb3VudCkpLHRoaXMuX3BoeXNpY2FsU2l6ZSYmdD4wJiZ0aGlzLl9vcHRQaHlzaWNhbFNpemUhPT0xLzAmJihzdXBlci5faW5jcmVhc2VQb29sSWZOZWVkZWQodCksdGhpcy5fX3Jlb3JkZXJDaGlsZE5vZGVzKCkpfSkpKToodGhpcy5faW5pdGlhbFBvb2xDcmVhdGVkPSEwLHN1cGVyLl9pbmNyZWFzZVBvb2xJZk5lZWRlZCgyNSkpKX1fX3Jlb3JkZXJDaGlsZE5vZGVzKCl7Y29uc3QgdD1BcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZE5vZGVzKTshIXQucmVkdWNlKCgodCxlLG4saSk9PntpZigwPT09bnx8aVtuLTFdLmluZGV4PT09ZS5pbmRleC0xKXJldHVybiB0fSksITApfHx0LnNvcnQoKCh0LGUpPT50LmluZGV4LWUuaW5kZXgpKS5mb3JFYWNoKCh0PT50aGlzLiQuaXRlbXMuYXBwZW5kQ2hpbGQodCkpKX1fY3JlYXRlUG9vbCh0KXtjb25zdCBlPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxuPXRoaXMuX2NyZWF0ZVNjcm9sbGVyUm93cyh0KTtuLmZvckVhY2goKHQ9PmUuYXBwZW5kQ2hpbGQodCkpKSx0aGlzLl9nZXRSb3dUYXJnZXQoKS5hcHBlbmRDaGlsZChlKTtjb25zdCBpPXRoaXMucXVlcnlTZWxlY3RvcigiW3Nsb3RdIik7aWYoaSl7Y29uc3QgdD1pLmdldEF0dHJpYnV0ZSgic2xvdCIpO2kuc2V0QXR0cmlidXRlKCJzbG90IiwiZm9vLWJhciIpLGkuc2V0QXR0cmlidXRlKCJzbG90Iix0KX1yZXR1cm4gRGkodGhpcywoKCk9PnRoaXMubm90aWZ5UmVzaXplKCkpKSxufV9hc3NpZ25Nb2RlbHModCl7dGhpcy5faXRlcmF0ZUl0ZW1zKCgodCxlKT0+e2NvbnN0IG49dGhpcy5fcGh5c2ljYWxJdGVtc1t0XTt0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImhpZGRlbiIsZT49dGhpcy5fZWZmZWN0aXZlU2l6ZSxuKSx0aGlzLl91cGRhdGVTY3JvbGxlckl0ZW0obixlKyh0aGlzLl92aWR4T2Zmc2V0fHwwKSl9KSx0KX1fc2Nyb2xsSGFuZGxlcigpe2NvbnN0IHQ9dGhpcy4kLnRhYmxlLnNjcm9sbFRvcC10aGlzLl9zY3JvbGxQb3NpdGlvbjt0aGlzLl9hY2Nlc3NJcm9uTGlzdEFQSShzdXBlci5fc2Nyb2xsSGFuZGxlcik7Y29uc3QgZT10aGlzLl92aWR4T2Zmc2V0O3RoaXMuX2FjY2Vzc0lyb25MaXN0QVBJKCgoKT0+dGhpcy5fbWF4U2Nyb2xsVG9wKSkmJnRoaXMuX3ZpcnR1YWxDb3VudDx0aGlzLl9lZmZlY3RpdmVTaXplP3RoaXMuX2FkanVzdFZpcnR1YWxJbmRleE9mZnNldCh0KTp0aGlzLl92aWR4T2Zmc2V0PTAsdGhpcy5fdmlkeE9mZnNldCE9PWUmJnRoaXMuX3VwZGF0ZSgpLHRoaXMuX2FmdGVyU2Nyb2xsKCl9X2FkanVzdFZpcnR1YWxJbmRleE9mZnNldCh0KXtpZihNYXRoLmFicyh0KT4xZTQpe2lmKHRoaXMuX25vU2NhbGUpcmV0dXJuIHZvaWQodGhpcy5fbm9TY2FsZT0hMSk7Y29uc3QgdD10aGlzLiQudGFibGUuc2Nyb2xsVG9wLyh0aGlzLiQudGFibGUuc2Nyb2xsSGVpZ2h0LXRoaXMuJC50YWJsZS5vZmZzZXRIZWlnaHQpO3RoaXMuX3ZpZHhPZmZzZXQ9TWF0aC5yb3VuZCh0KnRoaXMuX2VmZmVjdGl2ZVNpemUtdCp0aGlzLl92aXJ0dWFsQ291bnQpfWVsc2V7Y29uc3QgdD10aGlzLl92aWR4T2Zmc2V0fHwwLGU9MWUzLG49MTAwOzA9PT10aGlzLl9zY3JvbGxUb3A/KHRoaXMuX3ZpZHhPZmZzZXQ9MCx0IT09dGhpcy5fdmlkeE9mZnNldCYmc3VwZXIuc2Nyb2xsVG9JbmRleCgwKSk6dGhpcy5maXJzdFZpc2libGVJbmRleDxlJiZ0aGlzLl92aWR4T2Zmc2V0PjAmJih0aGlzLl92aWR4T2Zmc2V0LT1NYXRoLm1pbih0aGlzLl92aWR4T2Zmc2V0LG4pLHQhPT10aGlzLl92aWR4T2Zmc2V0JiZzdXBlci5zY3JvbGxUb0luZGV4KHRoaXMuZmlyc3RWaXNpYmxlSW5kZXgrKHQtdGhpcy5fdmlkeE9mZnNldCkpLHRoaXMuX25vU2NhbGU9ITApO2NvbnN0IGk9dGhpcy5fZWZmZWN0aXZlU2l6ZS10aGlzLl92aXJ0dWFsQ291bnQ7dGhpcy5fc2Nyb2xsVG9wPj10aGlzLl9tYXhTY3JvbGxUb3AmJnRoaXMuX21heFNjcm9sbFRvcD4wPyh0aGlzLl92aWR4T2Zmc2V0PWksdCE9PXRoaXMuX3ZpZHhPZmZzZXQmJnN1cGVyLnNjcm9sbFRvSW5kZXgodGhpcy5fdmlydHVhbENvdW50KSk6dGhpcy5maXJzdFZpc2libGVJbmRleD50aGlzLl92aXJ0dWFsQ291bnQtZSYmdGhpcy5fdmlkeE9mZnNldDxpJiYodGhpcy5fdmlkeE9mZnNldCs9TWF0aC5taW4oaS10aGlzLl92aWR4T2Zmc2V0LG4pLHQhPT10aGlzLl92aWR4T2Zmc2V0JiZzdXBlci5zY3JvbGxUb0luZGV4KHRoaXMuZmlyc3RWaXNpYmxlSW5kZXgtKHRoaXMuX3ZpZHhPZmZzZXQtdCkpLHRoaXMuX25vU2NhbGU9ITApfX1fYWNjZXNzSXJvbkxpc3RBUEkodCl7dGhpcy5fd2FyblByaXZhdGVBUElBY2Nlc3NBc3luY0VuYWJsZWQ9ITE7Y29uc3QgZT10LmFwcGx5KHRoaXMpO3JldHVybiB0aGlzLl9kZWJvdW5jZXJXYXJuUHJpdmF0ZUFQSUFjY2Vzcz1Obi5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZXJXYXJuUHJpdmF0ZUFQSUFjY2VzcyxfdCwoKCk9PnRoaXMuX3dhcm5Qcml2YXRlQVBJQWNjZXNzQXN5bmNFbmFibGVkPSEwKSksZX1fZGVib3VuY2VSZW5kZXIodCxlKXtzdXBlci5fZGVib3VuY2VSZW5kZXIoKCgpPT50aGlzLl9hY2Nlc3NJcm9uTGlzdEFQSSh0KSksZSl9X3dhcm5Qcml2YXRlQVBJQWNjZXNzKHQpe3RoaXMuX3dhcm5Qcml2YXRlQVBJQWNjZXNzQXN5bmNFbmFibGVkJiZjb25zb2xlLndhcm4oYEFjY2Vzc2luZyBwcml2YXRlIEFQSSAoJHt0fSkhYCl9X3JlbmRlcigpe3RoaXMuX2FjY2Vzc0lyb25MaXN0QVBJKHN1cGVyLl9yZW5kZXIpfV9pdGVtc0NoYW5nZWQoKXt9Z2V0IF9maXJzdFZpc2libGVJbmRleCgpe3JldHVybiB0aGlzLl9hY2Nlc3NJcm9uTGlzdEFQSSgoKCk9PnN1cGVyLmZpcnN0VmlzaWJsZUluZGV4KSl9Z2V0IF9sYXN0VmlzaWJsZUluZGV4KCl7cmV0dXJuIHRoaXMuX2FjY2Vzc0lyb25MaXN0QVBJKCgoKT0+c3VwZXIubGFzdFZpc2libGVJbmRleCkpfV9zY3JvbGxUb0luZGV4KHQpe3RoaXMuX2FjY2Vzc0lyb25MaXN0QVBJKCgoKT0+dGhpcy5zY3JvbGxUb0luZGV4KHQpKSl9Z2V0IGZpcnN0VmlzaWJsZUluZGV4KCl7cmV0dXJuIHRoaXMuX3dhcm5Qcml2YXRlQVBJQWNjZXNzKCJmaXJzdFZpc2libGVJbmRleCIpLHN1cGVyLmZpcnN0VmlzaWJsZUluZGV4fXNldCBmaXJzdFZpc2libGVJbmRleCh0KXt0aGlzLl93YXJuUHJpdmF0ZUFQSUFjY2VzcygiZmlyc3RWaXNpYmxlSW5kZXgiKSxzdXBlci5maXJzdFZpc2libGVJbmRleD10fWdldCBsYXN0VmlzaWJsZUluZGV4KCl7cmV0dXJuIHRoaXMuX3dhcm5Qcml2YXRlQVBJQWNjZXNzKCJsYXN0VmlzaWJsZUluZGV4Iiksc3VwZXIubGFzdFZpc2libGVJbmRleH1zZXQgbGFzdFZpc2libGVJbmRleCh0KXt0aGlzLl93YXJuUHJpdmF0ZUFQSUFjY2VzcygibGFzdFZpc2libGVJbmRleCIpLHN1cGVyLmxhc3RWaXNpYmxlSW5kZXg9dH11cGRhdGVWaWV3cG9ydEJvdW5kYXJpZXMoKXt0aGlzLl93YXJuUHJpdmF0ZUFQSUFjY2VzcygidXBkYXRlVmlld3BvcnRCb3VuZGFyaWVzIiksc3VwZXIudXBkYXRlVmlld3BvcnRCb3VuZGFyaWVzLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1fcmVzaXplSGFuZGxlcigpe3N1cGVyLl9yZXNpemVIYW5kbGVyKCksV2koKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovY29uc3QgRDF0PXQ9PmNsYXNzIGV4dGVuZHMgdHtzdGF0aWMgZ2V0IG9ic2VydmVycygpe3JldHVyblsiX2ExMXlVcGRhdGVHcmlkU2l6ZShzaXplLCBfY29sdW1uVHJlZSwgX2NvbHVtblRyZWUuKikiXX1fYTExeUdldEhlYWRlclJvd0NvdW50KHQpe3JldHVybiB0LmZpbHRlcigodD0+dC5zb21lKCh0PT50Ll9oZWFkZXJUZW1wbGF0ZXx8dC5oZWFkZXJSZW5kZXJlcnx8dC5wYXRofHx0LmhlYWRlcikpKSkubGVuZ3RofV9hMTF5R2V0Rm9vdGVyUm93Q291bnQodCl7cmV0dXJuIHQuZmlsdGVyKCh0PT50LnNvbWUoKHQ9PnQuX2hlYWRlclRlbXBsYXRlfHx0LmhlYWRlclJlbmRlcmVyKSkpKS5sZW5ndGh9X2ExMXlVcGRhdGVHcmlkU2l6ZSh0LGUpe2lmKHZvaWQgMD09PXR8fHZvaWQgMD09PWUpcmV0dXJuO2NvbnN0IG49ZVtlLmxlbmd0aC0xXTt0aGlzLiQudGFibGUuc2V0QXR0cmlidXRlKCJhcmlhLXJvd2NvdW50Iix0K3RoaXMuX2ExMXlHZXRIZWFkZXJSb3dDb3VudChlKSt0aGlzLl9hMTF5R2V0Rm9vdGVyUm93Q291bnQoZSkpLHRoaXMuJC50YWJsZS5zZXRBdHRyaWJ1dGUoImFyaWEtY29sY291bnQiLG4mJm4ubGVuZ3RofHwwKSx0aGlzLl9hMTF5VXBkYXRlSGVhZGVyUm93cygpLHRoaXMuX2ExMXlVcGRhdGVGb290ZXJSb3dzKCl9X2ExMXlVcGRhdGVIZWFkZXJSb3dzKCl7QXJyYXkuZnJvbSh0aGlzLiQuaGVhZGVyLmNoaWxkcmVuKS5mb3JFYWNoKCgodCxlKT0+dC5zZXRBdHRyaWJ1dGUoImFyaWEtcm93aW5kZXgiLGUrMSkpKX1fYTExeVVwZGF0ZUZvb3RlclJvd3MoKXtBcnJheS5mcm9tKHRoaXMuJC5mb290ZXIuY2hpbGRyZW4pLmZvckVhY2goKCh0LGUpPT50LnNldEF0dHJpYnV0ZSgiYXJpYS1yb3dpbmRleCIsdGhpcy5fYTExeUdldEhlYWRlclJvd0NvdW50KHRoaXMuX2NvbHVtblRyZWUpK3RoaXMuc2l6ZStlKzEpKSl9X2ExMXlVcGRhdGVSb3dSb3dpbmRleCh0LGUpe3Quc2V0QXR0cmlidXRlKCJhcmlhLXJvd2luZGV4IixlK3RoaXMuX2ExMXlHZXRIZWFkZXJSb3dDb3VudCh0aGlzLl9jb2x1bW5UcmVlKSsxKX1fYTExeVVwZGF0ZVJvd1NlbGVjdGVkKHQsZSl7dC5zZXRBdHRyaWJ1dGUoImFyaWEtc2VsZWN0ZWQiLEJvb2xlYW4oZSkpLEFycmF5LmZyb20odC5jaGlsZHJlbikuZm9yRWFjaCgodD0+dC5zZXRBdHRyaWJ1dGUoImFyaWEtc2VsZWN0ZWQiLEJvb2xlYW4oZSkpKSl9X2ExMXlVcGRhdGVSb3dMZXZlbCh0LGUpe3Quc2V0QXR0cmlidXRlKCJhcmlhLWxldmVsIixlKzEpfV9hMTF5VXBkYXRlUm93RGV0YWlsc09wZW5lZCh0LGUpe0FycmF5LmZyb20odC5jaGlsZHJlbikuZm9yRWFjaCgodD0+eyJib29sZWFuIj09dHlwZW9mIGU/dC5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLGUpOnQuaGFzQXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIikmJnQucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIil9KSl9X2ExMXlTZXRSb3dEZXRhaWxzQ2VsbCh0LGUpe0FycmF5LmZyb20odC5jaGlsZHJlbikuZm9yRWFjaCgodD0+e3QhPT1lJiZ0LnNldEF0dHJpYnV0ZSgiYXJpYS1jb250cm9scyIsZS5pZCl9KSl9X2ExMXlVcGRhdGVDZWxsQ29sc3Bhbih0LGUpe3Quc2V0QXR0cmlidXRlKCJhcmlhLWNvbHNwYW4iLE51bWJlcihlKSl9X2ExMXlVcGRhdGVTb3J0ZXJzKCl7QXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoInZhYWRpbi1ncmlkLXNvcnRlciIpKS5mb3JFYWNoKCh0PT57bGV0IGU9dC5wYXJlbnROb2RlO2Zvcig7ZSYmInZhYWRpbi1ncmlkLWNlbGwtY29udGVudCIhPT1lLmxvY2FsTmFtZTspZT1lLnBhcmVudE5vZGU7aWYoZSYmZS5hc3NpZ25lZFNsb3Qpe2UuYXNzaWduZWRTbG90LnBhcmVudE5vZGUuc2V0QXR0cmlidXRlKCJhcmlhLXNvcnQiLHthc2M6ImFzY2VuZGluZyIsZGVzYzoiZGVzY2VuZGluZyJ9W1N0cmluZyh0LmRpcmVjdGlvbildfHwibm9uZSIpfX0pKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovLEIxdD10PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2FjdGl2ZUl0ZW06e3R5cGU6T2JqZWN0LG5vdGlmeTohMCx2YWx1ZTpudWxsfX19cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuJC5zY3JvbGxlci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5fb25DbGljay5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNlbGwtYWN0aXZhdGUiLHRoaXMuX2FjdGl2YXRlSXRlbS5iaW5kKHRoaXMpKX1fYWN0aXZhdGVJdGVtKHQpe2NvbnN0IGU9dC5kZXRhaWwubW9kZWwsbj1lP2UuaXRlbTpudWxsO24mJih0aGlzLmFjdGl2ZUl0ZW09dGhpcy5faXRlbXNFcXVhbCh0aGlzLmFjdGl2ZUl0ZW0sbik/bnVsbDpuKX1fb25DbGljayh0KXtpZih0LmRlZmF1bHRQcmV2ZW50ZWQpcmV0dXJuO2NvbnN0IGU9dC5jb21wb3NlZFBhdGgoKSxuPWVbZS5pbmRleE9mKHRoaXMuJC50YWJsZSktM107aWYoIW58fG4uZ2V0QXR0cmlidXRlKCJwYXJ0IikuaW5kZXhPZigiZGV0YWlscy1jZWxsIik+LTEpcmV0dXJuO2NvbnN0IGk9bi5fY29udGVudCxyPXRoaXMuZ2V0Um9vdE5vZGUoKS5hY3RpdmVFbGVtZW50O2kuY29udGFpbnMocil8fHRoaXMuX2lzRm9jdXNhYmxlKHQudGFyZ2V0KXx8dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2VsbC1hY3RpdmF0ZSIse2RldGFpbDp7bW9kZWw6dGhpcy5fX2dldFJvd01vZGVsKG4ucGFyZW50RWxlbWVudCl9fSkpfV9pc0ZvY3VzYWJsZSh0KXtyZXR1cm4gSDF0KHQpfX0sSDF0PXQ9PntpZighdC5wYXJlbnROb2RlKXJldHVybiExO2NvbnN0IGU9LTEhPT1BcnJheS5mcm9tKHQucGFyZW50Tm9kZS5xdWVyeVNlbGVjdG9yQWxsKCJbdGFiaW5kZXhdLCBidXR0b24sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBvYmplY3QsIGlmcmFtZSwgbGFiZWwsIGFbaHJlZl0sIGFyZWFbaHJlZl0iKSkuZmlsdGVyKCh0PT4iY2VsbCBib2R5LWNlbGwiIT09dC5nZXRBdHRyaWJ1dGUoInBhcnQiKSkpLmluZGV4T2YodCk7cmV0dXJuIXQuZGlzYWJsZWQmJmV9LEYxdD10PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2l0ZW1zOkFycmF5fX1zdGF0aWMgZ2V0IG9ic2VydmVycygpe3JldHVyblsiX2l0ZW1zQ2hhbmdlZChpdGVtcywgaXRlbXMuKiwgaXNBdHRhY2hlZCkiXX1faXRlbXNDaGFuZ2VkKHQsZSxuKXtpZihuKXtpZighQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gbnVsbD09dCYmKHRoaXMuc2l6ZT0wKSx2b2lkKHRoaXMuZGF0YVByb3ZpZGVyPT09dGhpcy5fYXJyYXlEYXRhUHJvdmlkZXImJih0aGlzLmRhdGFQcm92aWRlcj12b2lkIDApKTt0aGlzLnNpemU9dC5sZW5ndGgsdGhpcy5kYXRhUHJvdmlkZXI9dGhpcy5kYXRhUHJvdmlkZXJ8fHRoaXMuX2FycmF5RGF0YVByb3ZpZGVyLHRoaXMuY2xlYXJDYWNoZSgpLHRoaXMuX2Vuc3VyZUZpcnN0UGFnZUxvYWRlZCgpfX1fYXJyYXlEYXRhUHJvdmlkZXIodCxlKXtsZXQgbj0oQXJyYXkuaXNBcnJheSh0aGlzLml0ZW1zKT90aGlzLml0ZW1zOltdKS5zbGljZSgwKTt0aGlzLl9maWx0ZXJzJiZ0aGlzLl9jaGVja1BhdGhzKHRoaXMuX2ZpbHRlcnMsImZpbHRlcmluZyIsbikmJihuPXRoaXMuX2ZpbHRlcihuKSksdGhpcy5zaXplPW4ubGVuZ3RoLHQuc29ydE9yZGVycy5sZW5ndGgmJnRoaXMuX2NoZWNrUGF0aHModGhpcy5fc29ydGVycywic29ydGluZyIsbikmJihuPW4uc29ydCh0aGlzLl9tdWx0aVNvcnQuYmluZCh0aGlzKSkpO2NvbnN0IGk9dC5wYWdlKnQucGFnZVNpemU7ZShuLnNsaWNlKGksaSt0LnBhZ2VTaXplKSxuLmxlbmd0aCl9X2NoZWNrUGF0aHModCxlLG4pe2lmKCFuLmxlbmd0aClyZXR1cm4hMTtsZXQgaT0hMDtmb3IobGV0IHIgaW4gdCl7Y29uc3Qgbz10W3JdLnBhdGg7aWYoIW98fC0xPT09by5pbmRleE9mKCIuIikpY29udGludWU7Y29uc3QgYT1vLnJlcGxhY2UoL1wuW14uXSokLywiIik7dm9pZCAwPT09RW8uZ2V0KGEsblswXSkmJihjb25zb2xlLndhcm4oYFBhdGggIiR7b30iIHVzZWQgZm9yICR7ZX0gZG9lcyBub3QgZXhpc3QgaW4gYWxsIG9mIHRoZSBpdGVtcywgJHtlfSBpcyBkaXNhYmxlZC5gKSxpPSExKX1yZXR1cm4gaX1fbXVsdGlTb3J0KHQsZSl7cmV0dXJuIHRoaXMuX3NvcnRlcnMubWFwKChuPT4iYXNjIj09PW4uZGlyZWN0aW9uP3RoaXMuX2NvbXBhcmUoRW8uZ2V0KG4ucGF0aCx0KSxFby5nZXQobi5wYXRoLGUpKToiZGVzYyI9PT1uLmRpcmVjdGlvbj90aGlzLl9jb21wYXJlKEVvLmdldChuLnBhdGgsZSksRW8uZ2V0KG4ucGF0aCx0KSk6MCkpLnJlZHVjZSgoKHQsZSk9PnR8fGUpLDApfV9ub3JtYWxpemVFbXB0eVZhbHVlKHQpe3JldHVyblt2b2lkIDAsbnVsbF0uaW5kZXhPZih0KT49MD8iIjppc05hTih0KT90LnRvU3RyaW5nKCk6dH1fY29tcGFyZSh0LGUpe3JldHVybih0PXRoaXMuX25vcm1hbGl6ZUVtcHR5VmFsdWUodCkpPChlPXRoaXMuX25vcm1hbGl6ZUVtcHR5VmFsdWUoZSkpPy0xOnQ+ZT8xOjB9X2ZpbHRlcih0KXtyZXR1cm4gdC5maWx0ZXIoKHQ9PjA9PT10aGlzLl9maWx0ZXJzLmZpbHRlcigoZT0+e2NvbnN0IG49dGhpcy5fbm9ybWFsaXplRW1wdHlWYWx1ZShFby5nZXQoZS5wYXRoLHQpKSxpPXRoaXMuX25vcm1hbGl6ZUVtcHR5VmFsdWUoZS52YWx1ZSkudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO3JldHVybi0xPT09bi50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihpKX0pKS5sZW5ndGgpKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovLFYxdD10PT5jbGFzcyBleHRlbmRzKGJpKHQpKXtyZWFkeSgpe3N1cGVyLnJlYWR5KCk7Y29uc3QgdD10aGlzLiQuc2Nyb2xsZXI7Y2kodCwidHJhY2siLHRoaXMuX29uSGVhZGVyVHJhY2suYmluZCh0aGlzKSksdC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLChlPT50Lmhhc0F0dHJpYnV0ZSgiY29sdW1uLXJlc2l6aW5nIikmJmUucHJldmVudERlZmF1bHQoKSkpLHQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLCh0PT4icmVzaXplLWhhbmRsZSI9PXQudGFyZ2V0LmdldEF0dHJpYnV0ZSgicGFydCIpJiZ0LnByZXZlbnREZWZhdWx0KCkpKSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsKHQ9PiJyZXNpemUtaGFuZGxlIj09PXQudGFyZ2V0LmdldEF0dHJpYnV0ZSgicGFydCIpJiZ0LnByZXZlbnREZWZhdWx0KCkpKX1fb25IZWFkZXJUcmFjayh0KXtjb25zdCBlPXQudGFyZ2V0O2lmKCJyZXNpemUtaGFuZGxlIj09PWUuZ2V0QXR0cmlidXRlKCJwYXJ0Iikpe2xldCBuPWUucGFyZW50RWxlbWVudC5fY29sdW1uO2Zvcih0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImNvbHVtbi1yZXNpemluZyIsITAsdGhpcy4kLnNjcm9sbGVyKTsidmFhZGluLWdyaWQtY29sdW1uLWdyb3VwIj09PW4ubG9jYWxOYW1lOyluPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG4uX2NoaWxkQ29sdW1ucywwKS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9vcmRlci1lLl9vcmRlcn0pKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiF0LmhpZGRlbn0pKS5wb3AoKTtjb25zdCBpPUFycmF5LmZyb20odGhpcy4kLmhlYWRlci5xdWVyeVNlbGVjdG9yQWxsKCdbcGFydH49InJvdyJdOmxhc3QtY2hpbGQgW3BhcnR+PSJjZWxsIl0nKSkscj1pLmZpbHRlcigodD0+dC5fY29sdW1uPT09bikpWzBdO2lmKHIub2Zmc2V0V2lkdGgpe2NvbnN0IGU9d2luZG93LmdldENvbXB1dGVkU3R5bGUociksaT0xMCtwYXJzZUludChlLnBhZGRpbmdMZWZ0KStwYXJzZUludChlLnBhZGRpbmdSaWdodCkrcGFyc2VJbnQoZS5ib3JkZXJMZWZ0V2lkdGgpK3BhcnNlSW50KGUuYm9yZGVyUmlnaHRXaWR0aCkrcGFyc2VJbnQoZS5tYXJnaW5MZWZ0KStwYXJzZUludChlLm1hcmdpblJpZ2h0KSxvPXIub2Zmc2V0V2lkdGgrKHRoaXMuX19pc1JUTD9yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQtdC5kZXRhaWwueDp0LmRldGFpbC54LXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQpO24ud2lkdGg9TWF0aC5tYXgoaSxvKSsicHgiLG4uZmxleEdyb3c9MH1pLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX2NvbHVtbi5fb3JkZXItZS5fY29sdW1uLl9vcmRlcn0pKS5mb3JFYWNoKChmdW5jdGlvbih0LGUsbil7ZTxuLmluZGV4T2YocikmJih0Ll9jb2x1bW4ud2lkdGg9dC5vZmZzZXRXaWR0aCsicHgiLHQuX2NvbHVtbi5mbGV4R3Jvdz0wKX0pKSwiZW5kIj09PXQuZGV0YWlsLnN0YXRlJiYodGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJjb2x1bW4tcmVzaXppbmciLCExLHRoaXMuJC5zY3JvbGxlciksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29sdW1uLXJlc2l6ZSIse2RldGFpbDp7cmVzaXplZENvbHVtbjpufX0pKSksdGhpcy5fcmVzaXplSGFuZGxlcigpfX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovLFUxdD1jbGFzcyB0e2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLmdyaWQ9dCx0aGlzLnBhcmVudENhY2hlPWUsdGhpcy5wYXJlbnRJdGVtPW4sdGhpcy5pdGVtQ2FjaGVzPXt9LHRoaXMuaXRlbXM9e30sdGhpcy5lZmZlY3RpdmVTaXplPTAsdGhpcy5zaXplPTAsdGhpcy5wZW5kaW5nUmVxdWVzdHM9e319aXNMb2FkaW5nKCl7cmV0dXJuIEJvb2xlYW4oT2JqZWN0LmtleXModGhpcy5wZW5kaW5nUmVxdWVzdHMpLmxlbmd0aHx8T2JqZWN0LmtleXModGhpcy5pdGVtQ2FjaGVzKS5maWx0ZXIoKHQ9PnRoaXMuaXRlbUNhY2hlc1t0XS5pc0xvYWRpbmcoKSkpWzBdKX1nZXRJdGVtRm9ySW5kZXgodCl7Y29uc3R7Y2FjaGU6ZSxzY2FsZWRJbmRleDpufT10aGlzLmdldENhY2hlQW5kSW5kZXgodCk7cmV0dXJuIGUuaXRlbXNbbl19dXBkYXRlU2l6ZSgpe3RoaXMuZWZmZWN0aXZlU2l6ZT0hdGhpcy5wYXJlbnRJdGVtfHx0aGlzLmdyaWQuX2lzRXhwYW5kZWQodGhpcy5wYXJlbnRJdGVtKT90aGlzLnNpemUrT2JqZWN0LmtleXModGhpcy5pdGVtQ2FjaGVzKS5yZWR1Y2UoKCh0LGUpPT57Y29uc3Qgbj10aGlzLml0ZW1DYWNoZXNbZV07cmV0dXJuIG4udXBkYXRlU2l6ZSgpLHQrbi5lZmZlY3RpdmVTaXplfSksMCk6MH1lbnN1cmVTdWJDYWNoZUZvclNjYWxlZEluZGV4KGUpe2lmKCF0aGlzLml0ZW1DYWNoZXNbZV0pe2NvbnN0IG49bmV3IHQodGhpcy5ncmlkLHRoaXMsdGhpcy5pdGVtc1tlXSk7dGhpcy5pdGVtQ2FjaGVzW2VdPW4sdGhpcy5ncmlkLl9sb2FkUGFnZSgwLG4pfX1nZXRDYWNoZUFuZEluZGV4KHQpe2xldCBlPXQ7Y29uc3Qgbj1PYmplY3Qua2V5cyh0aGlzLml0ZW1DYWNoZXMpO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKXtjb25zdCBpPU51bWJlcihuW3RdKSxyPXRoaXMuaXRlbUNhY2hlc1tpXTtpZihlPD1pKXJldHVybntjYWNoZTp0aGlzLHNjYWxlZEluZGV4OmV9O2lmKGU8PWkrci5lZmZlY3RpdmVTaXplKXJldHVybiByLmdldENhY2hlQW5kSW5kZXgoZS1pLTEpO2UtPXIuZWZmZWN0aXZlU2l6ZX1yZXR1cm57Y2FjaGU6dGhpcyxzY2FsZWRJbmRleDplfX19LGoxdD10PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue3BhZ2VTaXplOnt0eXBlOk51bWJlcix2YWx1ZTo1MCxvYnNlcnZlcjoiX3BhZ2VTaXplQ2hhbmdlZCJ9LGRhdGFQcm92aWRlcjp7dHlwZTpPYmplY3Qsbm90aWZ5OiEwLG9ic2VydmVyOiJfZGF0YVByb3ZpZGVyQ2hhbmdlZCJ9LGxvYWRpbmc6e3R5cGU6Qm9vbGVhbixub3RpZnk6ITAscmVhZE9ubHk6ITAscmVmbGVjdFRvQXR0cmlidXRlOiEwfSxfY2FjaGU6e3R5cGU6T2JqZWN0LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBVMXQodGhpcyl9fSxpdGVtSWRQYXRoOnt0eXBlOlN0cmluZyx2YWx1ZTpudWxsfSxleHBhbmRlZEl0ZW1zOnt0eXBlOk9iamVjdCxub3RpZnk6ITAsdmFsdWU6KCk9PltdfX19c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl9zaXplQ2hhbmdlZChzaXplKSIsIl9pdGVtSWRQYXRoQ2hhbmdlZChpdGVtSWRQYXRoKSIsIl9leHBhbmRlZEl0ZW1zQ2hhbmdlZChleHBhbmRlZEl0ZW1zLiopIl19X3NpemVDaGFuZ2VkKHQpe2NvbnN0IGU9dC10aGlzLl9jYWNoZS5zaXplO3RoaXMuX2NhY2hlLnNpemUrPWUsdGhpcy5fY2FjaGUuZWZmZWN0aXZlU2l6ZSs9ZSx0aGlzLl9lZmZlY3RpdmVTaXplPXRoaXMuX2NhY2hlLmVmZmVjdGl2ZVNpemUsdGhpcy5faW5jcmVhc2VQb29sSWZOZWVkZWQoMCksdGhpcy5fZGVib3VuY2VJbmNyZWFzZVBvb2wmJnRoaXMuX2RlYm91bmNlSW5jcmVhc2VQb29sLmZsdXNoKCl9X2dldEl0ZW0odCxlKXtpZih0Pj10aGlzLl9lZmZlY3RpdmVTaXplKXJldHVybjtlLmluZGV4PXQ7Y29uc3R7Y2FjaGU6bixzY2FsZWRJbmRleDppfT10aGlzLl9jYWNoZS5nZXRDYWNoZUFuZEluZGV4KHQpLHI9bi5pdGVtc1tpXTtyPyh0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImxvYWRpbmciLCExLGUpLHRoaXMuX3VwZGF0ZUl0ZW0oZSxyKSx0aGlzLl9pc0V4cGFuZGVkKHIpJiZuLmVuc3VyZVN1YkNhY2hlRm9yU2NhbGVkSW5kZXgoaSkpOih0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImxvYWRpbmciLCEwLGUpLHRoaXMuX2xvYWRQYWdlKHRoaXMuX2dldFBhZ2VGb3JJbmRleChpKSxuKSl9X2V4cGFuZGVkSW5zdGFuY2VDaGFuZ2VkQ2FsbGJhY2sodCxlKXt2b2lkIDAhPT10Lml0ZW0mJihlP3RoaXMuZXhwYW5kSXRlbSh0Lml0ZW0pOnRoaXMuY29sbGFwc2VJdGVtKHQuaXRlbSkpfWdldEl0ZW1JZCh0KXtyZXR1cm4gdGhpcy5pdGVtSWRQYXRoP3RoaXMuZ2V0KHRoaXMuaXRlbUlkUGF0aCx0KTp0fV9pc0V4cGFuZGVkKHQpe3JldHVybiB0aGlzLl9fZXhwYW5kZWRLZXlzLmhhcyh0aGlzLmdldEl0ZW1JZCh0KSl9X2V4cGFuZGVkSXRlbXNDaGFuZ2VkKCl7dGhpcy5fX2NhY2hlRXhwYW5kZWRLZXlzKCksdGhpcy5fY2FjaGUudXBkYXRlU2l6ZSgpLHRoaXMuX2VmZmVjdGl2ZVNpemU9dGhpcy5fY2FjaGUuZWZmZWN0aXZlU2l6ZSx0aGlzLl9hc3NpZ25Nb2RlbHMoKX1faXRlbUlkUGF0aENoYW5nZWQoKXt0aGlzLl9fY2FjaGVFeHBhbmRlZEtleXMoKX1fX2NhY2hlRXhwYW5kZWRLZXlzKCl7dGhpcy5leHBhbmRlZEl0ZW1zJiYodGhpcy5fX2V4cGFuZGVkS2V5cz1uZXcgU2V0LHRoaXMuZXhwYW5kZWRJdGVtcy5mb3JFYWNoKCh0PT57dGhpcy5fX2V4cGFuZGVkS2V5cy5hZGQodGhpcy5nZXRJdGVtSWQodCkpfSkpKX1leHBhbmRJdGVtKHQpe3RoaXMuX2lzRXhwYW5kZWQodCl8fCh0aGlzLmV4cGFuZGVkSXRlbXM9Wy4uLnRoaXMuZXhwYW5kZWRJdGVtcyx0XSl9Y29sbGFwc2VJdGVtKHQpe3RoaXMuX2lzRXhwYW5kZWQodCkmJih0aGlzLmV4cGFuZGVkSXRlbXM9dGhpcy5leHBhbmRlZEl0ZW1zLmZpbHRlcigoZT0+IXRoaXMuX2l0ZW1zRXF1YWwoZSx0KSkpKX1fZ2V0SW5kZXhMZXZlbCh0KXtsZXR7Y2FjaGU6ZX09dGhpcy5fY2FjaGUuZ2V0Q2FjaGVBbmRJbmRleCh0KSxuPTA7Zm9yKDtlLnBhcmVudENhY2hlOyllPWUucGFyZW50Q2FjaGUsbisrO3JldHVybiBufV9jYW5Qb3B1bGF0ZSgpe3JldHVybiBCb29sZWFuKHRoaXMuX2hhc0RhdGEmJnRoaXMuX2NvbHVtblRyZWUpfV9sb2FkUGFnZSh0LGUpe2lmKCFlLnBlbmRpbmdSZXF1ZXN0c1t0XSYmdGhpcy5kYXRhUHJvdmlkZXIpe3RoaXMuX3NldExvYWRpbmcoITApLGUucGVuZGluZ1JlcXVlc3RzW3RdPSEwO2NvbnN0IG49e3BhZ2U6dCxwYWdlU2l6ZTp0aGlzLnBhZ2VTaXplLHNvcnRPcmRlcnM6dGhpcy5fbWFwU29ydGVycygpLGZpbHRlcnM6dGhpcy5fbWFwRmlsdGVycygpLHBhcmVudEl0ZW06ZS5wYXJlbnRJdGVtfTt0aGlzLl9kZWJvdW5jZUluY3JlYXNlUG9vbCYmdGhpcy5fZGVib3VuY2VJbmNyZWFzZVBvb2wuZmx1c2goKSx0aGlzLmRhdGFQcm92aWRlcihuLCgoaSxyKT0+e3ZvaWQgMCE9PXI/ZS5zaXplPXI6bi5wYXJlbnRJdGVtJiYoZS5zaXplPWkubGVuZ3RoKTtjb25zdCBvPUFycmF5LmZyb20odGhpcy4kLml0ZW1zLmNoaWxkcmVuKS5tYXAoKHQ9PnQuX2l0ZW0pKTtpLmZvckVhY2goKChuLGkpPT57Y29uc3Qgcj10KnRoaXMucGFnZVNpemUraTtlLml0ZW1zW3JdPW4sdGhpcy5faXNFeHBhbmRlZChuKSYmby5pbmRleE9mKG4pPi0xJiZlLmVuc3VyZVN1YkNhY2hlRm9yU2NhbGVkSW5kZXgocil9KSksdGhpcy5faGFzRGF0YT0hMCxkZWxldGUgZS5wZW5kaW5nUmVxdWVzdHNbdF0sdGhpcy5fZGVib3VuY2VyQXBwbHlDYWNoZWREYXRhPU5uLmRlYm91bmNlKHRoaXMuX2RlYm91bmNlckFwcGx5Q2FjaGVkRGF0YSxndC5hZnRlcigwKSwoKCk9Pnt0aGlzLl9zZXRMb2FkaW5nKCExKSx0aGlzLl9jYWNoZS51cGRhdGVTaXplKCksdGhpcy5fZWZmZWN0aXZlU2l6ZT10aGlzLl9jYWNoZS5lZmZlY3RpdmVTaXplLEFycmF5LmZyb20odGhpcy4kLml0ZW1zLmNoaWxkcmVuKS5maWx0ZXIoKHQ9PiF0LmhpZGRlbikpLmZvckVhY2goKHQ9Pnt0aGlzLl9jYWNoZS5nZXRJdGVtRm9ySW5kZXgodC5pbmRleCkmJnRoaXMuX2dldEl0ZW0odC5pbmRleCx0KX0pKSx0aGlzLl9pbmNyZWFzZVBvb2xJZk5lZWRlZCgwKSx0aGlzLl9fc2Nyb2xsVG9QZW5kaW5nSW5kZXgoKX0pKSx0aGlzLl9jYWNoZS5pc0xvYWRpbmcoKXx8dGhpcy5fZGVib3VuY2VyQXBwbHlDYWNoZWREYXRhLmZsdXNoKCksdGhpcy5fX2l0ZW1zUmVjZWl2ZWQoKX0pKX19X2dldFBhZ2VGb3JJbmRleCh0KXtyZXR1cm4gTWF0aC5mbG9vcih0L3RoaXMucGFnZVNpemUpfWNsZWFyQ2FjaGUoKXt0aGlzLl9jYWNoZT1uZXcgVTF0KHRoaXMpLEFycmF5LmZyb20odGhpcy4kLml0ZW1zLmNoaWxkcmVuKS5mb3JFYWNoKCh0PT57QXJyYXkuZnJvbSh0LmNoaWxkcmVuKS5mb3JFYWNoKCh0PT57dC5faW5zdGFuY2UmJnQuX2luc3RhbmNlLl9zZXRQZW5kaW5nUHJvcGVydHkoIml0ZW0iLHt9LCExKX0pKX0pKSx0aGlzLl9jYWNoZS5zaXplPXRoaXMuc2l6ZXx8MCx0aGlzLl9jYWNoZS51cGRhdGVTaXplKCksdGhpcy5faGFzRGF0YT0hMSx0aGlzLl9hc3NpZ25Nb2RlbHMoKSx0aGlzLl9lZmZlY3RpdmVTaXplJiZ0aGlzLl9pbml0aWFsUG9vbENyZWF0ZWR8fHRoaXMuX2xvYWRQYWdlKDAsdGhpcy5fY2FjaGUpfV9wYWdlU2l6ZUNoYW5nZWQodCxlKXt2b2lkIDAhPT1lJiZ0IT09ZSYmdGhpcy5jbGVhckNhY2hlKCl9X2NoZWNrU2l6ZSgpe3ZvaWQgMD09PXRoaXMuc2l6ZSYmMD09PXRoaXMuX2VmZmVjdGl2ZVNpemUmJmNvbnNvbGUud2FybigiVGhlIDx2YWFkaW4tZ3JpZD4gbmVlZHMgdGhlIHRvdGFsIG51bWJlciBvZiBpdGVtcyBpbiBvcmRlciB0byBkaXNwbGF5IHJvd3MuIFNldCB0aGUgdG90YWwgbnVtYmVyIG9mIGl0ZW1zIHRvIHRoZSBgc2l6ZWAgcHJvcGVydHksIG9yIHByb3ZpZGUgdGhlIHRvdGFsIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIHRoZSBgZGF0YVByb3ZpZGVyYOKAmXMgYGNhbGxiYWNrYCBjYWxsLiIpfV9kYXRhUHJvdmlkZXJDaGFuZ2VkKHQsZSl7dm9pZCAwIT09ZSYmdGhpcy5jbGVhckNhY2hlKCksdCYmdGhpcy5pdGVtcyYmdGhpcy5pdGVtcy5sZW5ndGgmJnRoaXMuX3Njcm9sbFRvSW5kZXgodGhpcy5fZmlyc3RWaXNpYmxlSW5kZXgpLHRoaXMuX2Vuc3VyZUZpcnN0UGFnZUxvYWRlZCgpLHRoaXMuX2RlYm91bmNlckNoZWNrU2l6ZT1Obi5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZXJDaGVja1NpemUsZ3QuYWZ0ZXIoMmUzKSx0aGlzLl9jaGVja1NpemUuYmluZCh0aGlzKSksdGhpcy5fc2Nyb2xsSGFuZGxlcigpfV9lbnN1cmVGaXJzdFBhZ2VMb2FkZWQoKXt0aGlzLl9oYXNEYXRhfHx0aGlzLl9sb2FkUGFnZSgwLHRoaXMuX2NhY2hlKX1faXRlbXNFcXVhbCh0LGUpe3JldHVybiB0aGlzLmdldEl0ZW1JZCh0KT09PXRoaXMuZ2V0SXRlbUlkKGUpfV9nZXRJdGVtSW5kZXhJbkFycmF5KHQsZSl7bGV0IG49LTE7cmV0dXJuIGUuZm9yRWFjaCgoKGUsaSk9Pnt0aGlzLl9pdGVtc0VxdWFsKGUsdCkmJihuPWkpfSkpLG59c2Nyb2xsVG9JbmRleCh0KXtzdXBlci5zY3JvbGxUb0luZGV4KHQpLGlzTmFOKHQpfHwhdGhpcy5fY2FjaGUuaXNMb2FkaW5nKCkmJnRoaXMuY2xpZW50SGVpZ2h0fHwodGhpcy5fX3BlbmRpbmdTY3JvbGxUb0luZGV4PXQpfV9fc2Nyb2xsVG9QZW5kaW5nSW5kZXgoKXtpZih0aGlzLl9fcGVuZGluZ1Njcm9sbFRvSW5kZXgmJnRoaXMuJC5pdGVtcy5jaGlsZHJlbi5sZW5ndGgpe2NvbnN0IHQ9dGhpcy5fX3BlbmRpbmdTY3JvbGxUb0luZGV4O2RlbGV0ZSB0aGlzLl9fcGVuZGluZ1Njcm9sbFRvSW5kZXgsdGhpcy5fZGVib3VuY2VJbmNyZWFzZVBvb2wmJnRoaXMuX2RlYm91bmNlSW5jcmVhc2VQb29sLmZsdXNoKCksdGhpcy5zY3JvbGxUb0luZGV4KHQpfX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovLEcxdD10PT5jbGFzcyBleHRlbmRzIHR7cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuX2FkZE5vZGVPYnNlcnZlcigpfV9oYXNDb2x1bW5Hcm91cHModCl7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspaWYoInZhYWRpbi1ncmlkLWNvbHVtbi1ncm91cCI9PT10W2VdLmxvY2FsTmFtZSlyZXR1cm4hMDtyZXR1cm4hMX1fZ2V0Q2hpbGRDb2x1bW5zKHQpe3JldHVybiBHaS5nZXRGbGF0dGVuZWROb2Rlcyh0KS5maWx0ZXIodGhpcy5faXNDb2x1bW5FbGVtZW50KX1fZmxhdHRlbkNvbHVtbkdyb3Vwcyh0KXtyZXR1cm4gdC5tYXAoKHQ9PiJ2YWFkaW4tZ3JpZC1jb2x1bW4tZ3JvdXAiPT09dC5sb2NhbE5hbWU/dGhpcy5fZ2V0Q2hpbGRDb2x1bW5zKHQpOlt0XSkpLnJlZHVjZSgoKHQsZSk9PnQuY29uY2F0KGUpKSxbXSl9X2dldENvbHVtblRyZWUoKXtjb25zdCB0PVtdO2ZvcihsZXQgZT1HaS5nZXRGbGF0dGVuZWROb2Rlcyh0aGlzKS5maWx0ZXIodGhpcy5faXNDb2x1bW5FbGVtZW50KTt0LnB1c2goZSksdGhpcy5faGFzQ29sdW1uR3JvdXBzKGUpOyllPXRoaXMuX2ZsYXR0ZW5Db2x1bW5Hcm91cHMoZSk7cmV0dXJuIHR9X3VwZGF0ZUNvbHVtblRyZWUoKXtjb25zdCB0PXRoaXMuX2dldENvbHVtblRyZWUoKTt0aGlzLl9hcnJheUVxdWFscyh0LHRoaXMuX2NvbHVtblRyZWUpfHwodGhpcy5fY29sdW1uVHJlZT10KX1fYWRkTm9kZU9ic2VydmVyKCl7dGhpcy5fb2JzZXJ2ZXI9bmV3IEdpKHRoaXMsKHQ9Pntjb25zdCBlPXQuYWRkZWROb2Rlcy5maWx0ZXIoKHQ9PiJ0ZW1wbGF0ZSI9PT10LmxvY2FsTmFtZSYmdC5jbGFzc0xpc3QuY29udGFpbnMoInJvdy1kZXRhaWxzIikpKVswXTtlJiZ0aGlzLl9yb3dEZXRhaWxzVGVtcGxhdGUhPT1lJiYodGhpcy5fcm93RGV0YWlsc1RlbXBsYXRlPWUpO2NvbnN0IG49dD0+dC5maWx0ZXIodGhpcy5faXNDb2x1bW5FbGVtZW50KS5sZW5ndGg+MDtpZihuKHQuYWRkZWROb2Rlcyl8fG4odC5yZW1vdmVkTm9kZXMpKXtjb25zdCBlPXQucmVtb3ZlZE5vZGVzLmZsYXRNYXAoKHQ9PnQuX2FsbENlbGxzKSksbj10PT5lLmZpbHRlcigoZT0+ZS5fY29udGVudC5jb250YWlucyh0KSkpLmxlbmd0aDt0aGlzLl9fcmVtb3ZlU29ydGVycyh0aGlzLl9zb3J0ZXJzLmZpbHRlcihuKSksdGhpcy5fX3JlbW92ZUZpbHRlcnModGhpcy5fZmlsdGVycy5maWx0ZXIobikpLHRoaXMuX3VwZGF0ZUNvbHVtblRyZWUoKX10aGlzLl9kZWJvdW5jZXJDaGVja0ltcG9ydHM9Tm4uZGVib3VuY2UodGhpcy5fZGVib3VuY2VyQ2hlY2tJbXBvcnRzLGd0LmFmdGVyKDJlMyksdGhpcy5fY2hlY2tJbXBvcnRzLmJpbmQodGhpcykpLHRoaXMuX2Vuc3VyZUZpcnN0UGFnZUxvYWRlZCgpfSkpfV9hcnJheUVxdWFscyh0LGUpe2lmKCF0fHwhZXx8dC5sZW5ndGghPWUubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgbj0wLGk9dC5sZW5ndGg7bjxpO24rKylpZih0W25daW5zdGFuY2VvZiBBcnJheSYmZVtuXWluc3RhbmNlb2YgQXJyYXkpe2lmKCF0aGlzLl9hcnJheUVxdWFscyh0W25dLGVbbl0pKXJldHVybiExfWVsc2UgaWYodFtuXSE9ZVtuXSlyZXR1cm4hMTtyZXR1cm4hMH1fY2hlY2tJbXBvcnRzKCl7WyJ2YWFkaW4tZ3JpZC1jb2x1bW4tZ3JvdXAiLCJ2YWFkaW4tZ3JpZC1maWx0ZXIiLCJ2YWFkaW4tZ3JpZC1maWx0ZXItY29sdW1uIiwidmFhZGluLWdyaWQtdHJlZS10b2dnbGUiLCJ2YWFkaW4tZ3JpZC1zZWxlY3Rpb24tY29sdW1uIiwidmFhZGluLWdyaWQtc29ydC1jb2x1bW4iLCJ2YWFkaW4tZ3JpZC1zb3J0ZXIiXS5mb3JFYWNoKCh0PT57Y29uc3QgZT10aGlzLnF1ZXJ5U2VsZWN0b3IodCk7IWV8fGUgaW5zdGFuY2VvZiB3ZXx8Y29uc29sZS53YXJuKGBNYWtlIHN1cmUgeW91IGhhdmUgaW1wb3J0ZWQgdGhlIHJlcXVpcmVkIG1vZHVsZSBmb3IgPCR7dH0+IGVsZW1lbnQuYCl9KSl9X3VwZGF0ZUZpcnN0QW5kTGFzdENvbHVtbigpe0FycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoInRyIikpLmZvckVhY2goKHQ9PnRoaXMuX3VwZGF0ZUZpcnN0QW5kTGFzdENvbHVtbkZvclJvdyh0KSkpfV91cGRhdGVGaXJzdEFuZExhc3RDb2x1bW5Gb3JSb3codCl7QXJyYXkuZnJvbSh0LnF1ZXJ5U2VsZWN0b3JBbGwoJ1twYXJ0fj0iY2VsbCJdOm5vdChbcGFydH49ImRldGFpbHMtY2VsbCJdKScpKS5zb3J0KCgodCxlKT0+dC5fY29sdW1uLl9vcmRlci1lLl9jb2x1bW4uX29yZGVyKSkuZm9yRWFjaCgoKHQsZSxuKT0+e3RoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgiZmlyc3QtY29sdW1uIiwwPT09ZSx0KSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImxhc3QtY29sdW1uIixlPT09bi5sZW5ndGgtMSx0KX0pKX1faXNDb2x1bW5FbGVtZW50KHQpe3JldHVybiB0Lm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJi9cYmNvbHVtblxiLy50ZXN0KHQubG9jYWxOYW1lKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovLFcxdD10PT5jbGFzcyBleHRlbmRzIHR7Z2V0RXZlbnRDb250ZXh0KHQpe2NvbnN0IGU9e30sbj10LmNvbXBvc2VkUGF0aCgpLGk9bltuLmluZGV4T2YodGhpcy4kLnRhYmxlKS0zXTtyZXR1cm4gaT8oZS5zZWN0aW9uPVsiYm9keSIsImhlYWRlciIsImZvb3RlciIsImRldGFpbHMiXS5maWx0ZXIoKHQ9PmkuZ2V0QXR0cmlidXRlKCJwYXJ0IikuaW5kZXhPZih0KT4tMSkpWzBdLGkuX2NvbHVtbiYmKGUuY29sdW1uPWkuX2NvbHVtbiksImJvZHkiIT09ZS5zZWN0aW9uJiYiZGV0YWlscyIhPT1lLnNlY3Rpb258fE9iamVjdC5hc3NpZ24oZSx0aGlzLl9fZ2V0Um93TW9kZWwoaS5wYXJlbnRFbGVtZW50KSksZSk6ZX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovLHExdD10PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue19maWx0ZXJzOnt0eXBlOkFycmF5LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuW119fX19cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZmlsdGVyLWNoYW5nZWQiLHRoaXMuX2ZpbHRlckNoYW5nZWQuYmluZCh0aGlzKSl9X2ZpbHRlckNoYW5nZWQodCl7dC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLl9fYWRkRmlsdGVyKHQudGFyZ2V0KSx0aGlzLl9fYXBwbHlGaWx0ZXJzKCl9X19yZW1vdmVGaWx0ZXJzKHQpezAhPXQubGVuZ3RoJiYodGhpcy5fZmlsdGVycz10aGlzLl9maWx0ZXJzLmZpbHRlcigoZT0+dC5pbmRleE9mKGUpPDApKSx0aGlzLl9fYXBwbHlGaWx0ZXJzKCkpfV9fYWRkRmlsdGVyKHQpey0xPT09dGhpcy5fZmlsdGVycy5pbmRleE9mKHQpJiZ0aGlzLl9maWx0ZXJzLnB1c2godCl9X19hcHBseUZpbHRlcnMoKXt0aGlzLmRhdGFQcm92aWRlciYmdGhpcy5pc0F0dGFjaGVkJiZ0aGlzLmNsZWFyQ2FjaGUoKX1fbWFwRmlsdGVycygpe3JldHVybiB0aGlzLl9maWx0ZXJzLm1hcCgodD0+KHtwYXRoOnQucGF0aCx2YWx1ZTp0LnZhbHVlfSkpKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovO2NsYXNzIFkxdCBleHRlbmRzIHdle3N0YXRpYyBnZXQgaXMoKXtyZXR1cm4idmFhZGluLWdyaWQtdGVtcGxhdGl6ZXIifXN0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntkYXRhSG9zdDpPYmplY3QsdGVtcGxhdGU6T2JqZWN0LF90ZW1wbGF0ZUluc3RhbmNlczp7dHlwZTpBcnJheSx2YWx1ZTpmdW5jdGlvbigpe3JldHVybltdfX0sX3BhcmVudFBhdGhWYWx1ZXM6e3ZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue319fSxfZ3JpZDpPYmplY3R9fXN0YXRpYyBnZXQgb2JzZXJ2ZXJzKCl7cmV0dXJuWyJfdGVtcGxhdGVJbnN0YW5jZXNDaGFuZ2VkKF90ZW1wbGF0ZUluc3RhbmNlcy4qLCBfcGFyZW50UGF0aFZhbHVlcy4qKSJdfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9pbnN0YW5jZVByb3BzPXtkZXRhaWxzT3BlbmVkOiEwLGluZGV4OiEwLGl0ZW06ITAsc2VsZWN0ZWQ6ITAsZXhwYW5kZWQ6ITAsbGV2ZWw6ITB9fWNyZWF0ZUluc3RhbmNlKCl7dGhpcy5fZW5zdXJlVGVtcGxhdGl6ZWQoKTtjb25zdCB0PW5ldyB0aGlzLl9UZW1wbGF0ZUNsYXNzKHt9KTtyZXR1cm4gdGhpcy5hZGRJbnN0YW5jZSh0KSx0fWFkZEluc3RhbmNlKHQpey0xPT09dGhpcy5fdGVtcGxhdGVJbnN0YW5jZXMuaW5kZXhPZih0KSYmKHRoaXMuX3RlbXBsYXRlSW5zdGFuY2VzLnB1c2godCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+dGhpcy5ub3RpZnlQYXRoKCJfdGVtcGxhdGVJbnN0YW5jZXMuKiIsdGhpcy5fdGVtcGxhdGVJbnN0YW5jZXMpKSkpfXJlbW92ZUluc3RhbmNlKHQpe2NvbnN0IGU9dGhpcy5fdGVtcGxhdGVJbnN0YW5jZXMuaW5kZXhPZih0KTt0aGlzLnNwbGljZSgiX3RlbXBsYXRlSW5zdGFuY2VzIixlLDEpfV9lbnN1cmVUZW1wbGF0aXplZCgpe3RoaXMuX1RlbXBsYXRlQ2xhc3N8fCh0aGlzLl9UZW1wbGF0ZUNsYXNzPWFvKHRoaXMudGVtcGxhdGUsdGhpcyx7aW5zdGFuY2VQcm9wczp0aGlzLl9pbnN0YW5jZVByb3BzLHBhcmVudE1vZGVsOiEwLGZvcndhcmRIb3N0UHJvcDpmdW5jdGlvbih0LGUpe3RoaXMuX2ZvcndhcmRQYXJlbnRQcm9wKHQsZSksdGhpcy5fdGVtcGxhdGVJbnN0YW5jZXMmJnRoaXMuX3RlbXBsYXRlSW5zdGFuY2VzLmZvckVhY2goKG49Pm4ubm90aWZ5UGF0aCh0LGUpKSl9LG5vdGlmeUluc3RhbmNlUHJvcDpmdW5jdGlvbih0LGUsbil7aWYoImluZGV4Ij09PWV8fCJpdGVtIj09PWUpcmV0dXJuO2NvbnN0IGk9YF9fJHtlfV9fYDtpZih0W2ldPT09bilyZXR1cm47dFtpXT1uO2NvbnN0IHI9QXJyYXkuZnJvbSh0aGlzLl9ncmlkLiQuaXRlbXMuY2hpbGRyZW4pLmZpbHRlcigoZT0+dGhpcy5fZ3JpZC5faXRlbXNFcXVhbChlLl9pdGVtLHQuaXRlbSkpKVswXTtyJiZBcnJheS5mcm9tKHIuY2hpbGRyZW4pLmZvckVhY2goKHQ9Pnt0Ll9pbnN0YW5jZSYmKHQuX2luc3RhbmNlW2ldPW4sdC5faW5zdGFuY2Uubm90aWZ5UGF0aChlLG4pKX0pKTtjb25zdCBvPSJpdGVtLiI7aWYoQXJyYXkuaXNBcnJheSh0aGlzLl9ncmlkLml0ZW1zKSYmMD09PWUuaW5kZXhPZihvKSl7Y29uc3QgaT10aGlzLl9ncmlkLml0ZW1zLmluZGV4T2YodC5pdGVtKSxyPWUuc2xpY2Uoby5sZW5ndGgpO3RoaXMuX2dyaWQubm90aWZ5UGF0aChgaXRlbXMuJHtpfS4ke3J9YCxuKX1jb25zdCBhPWBfJHtlfUluc3RhbmNlQ2hhbmdlZENhbGxiYWNrYDt0aGlzLl9ncmlkJiZ0aGlzLl9ncmlkW2FdJiZ0aGlzLl9ncmlkW2FdKHQsbil9fSkpfV9mb3J3YXJkUGFyZW50UHJvcCh0LGUpe3RoaXMuX3BhcmVudFBhdGhWYWx1ZXNbdF09ZSx0aGlzLl90ZW1wbGF0ZUluc3RhbmNlcy5mb3JFYWNoKChuPT5uLm5vdGlmeVBhdGgodCxlKSkpfV90ZW1wbGF0ZUluc3RhbmNlc0NoYW5nZWQodCl7bGV0IGUsbjtpZigiX3RlbXBsYXRlSW5zdGFuY2VzIj09PXQucGF0aCllPTAsbj10aGlzLl90ZW1wbGF0ZUluc3RhbmNlcy5sZW5ndGg7ZWxzZXtpZigiX3RlbXBsYXRlSW5zdGFuY2VzLnNwbGljZXMiIT09dC5wYXRoKXJldHVybjtlPXQudmFsdWUuaW5kZXgsbj10LnZhbHVlLmFkZGVkQ291bnR9T2JqZWN0LmtleXModGhpcy5fcGFyZW50UGF0aFZhbHVlc3x8e30pLmZvckVhY2goKHQ9Pntmb3IobGV0IGk9ZTtpPGUrbjtpKyspdGhpcy5fdGVtcGxhdGVJbnN0YW5jZXNbaV0uc2V0KHQsdGhpcy5fcGFyZW50UGF0aFZhbHVlc1t0XSl9KSl9fWN1c3RvbUVsZW1lbnRzLmRlZmluZShZMXQuaXMsWTF0KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi8KY29uc3QgWDF0PXQ9PmNsYXNzIGV4dGVuZHMgdHtzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57ZGV0YWlsc09wZW5lZEl0ZW1zOnt0eXBlOkFycmF5LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuW119fSxfcm93RGV0YWlsc1RlbXBsYXRlOk9iamVjdCxyb3dEZXRhaWxzUmVuZGVyZXI6RnVuY3Rpb24sX2RldGFpbHNDZWxsczp7dHlwZTpBcnJheX19fXN0YXRpYyBnZXQgb2JzZXJ2ZXJzKCl7cmV0dXJuWyJfZGV0YWlsc09wZW5lZEl0ZW1zQ2hhbmdlZChkZXRhaWxzT3BlbmVkSXRlbXMuKiwgX3Jvd0RldGFpbHNUZW1wbGF0ZSwgcm93RGV0YWlsc1JlbmRlcmVyKSIsIl9yb3dEZXRhaWxzVGVtcGxhdGVPclJlbmRlcmVyQ2hhbmdlZChfcm93RGV0YWlsc1RlbXBsYXRlLCByb3dEZXRhaWxzUmVuZGVyZXIpIl19X3Jvd0RldGFpbHNUZW1wbGF0ZU9yUmVuZGVyZXJDaGFuZ2VkKHQsZSl7aWYodCYmZSl0aHJvdyBuZXcgRXJyb3IoIllvdSBzaG91bGQgb25seSB1c2UgZWl0aGVyIGEgcmVuZGVyZXIgb3IgYSB0ZW1wbGF0ZSBmb3Igcm93IGRldGFpbHMiKTtpZih0fHxlKXtpZih0JiYhdC50ZW1wbGF0aXplcil7Y29uc3QgZT1uZXcgWTF0O2UuX2dyaWQ9dGhpcyxlLmRhdGFIb3N0PXRoaXMuZGF0YUhvc3QsZS50ZW1wbGF0ZT10LHQudGVtcGxhdGl6ZXI9ZX10aGlzLl9jb2x1bW5UcmVlJiZBcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZm9yRWFjaCgodD0+e3QucXVlcnlTZWxlY3RvcigiW3BhcnR+PWRldGFpbHMtY2VsbF0iKXx8KHRoaXMuX3VwZGF0ZVJvdyh0LHRoaXMuX2NvbHVtblRyZWVbdGhpcy5fY29sdW1uVHJlZS5sZW5ndGgtMV0pLHRoaXMuX2ExMXlVcGRhdGVSb3dEZXRhaWxzT3BlbmVkKHQsITEpKSxkZWxldGUgdC5xdWVyeVNlbGVjdG9yKCJbcGFydH49ZGV0YWlscy1jZWxsXSIpLl9pbnN0YW5jZX0pKSx0aGlzLmRldGFpbHNPcGVuZWRJdGVtcy5sZW5ndGgmJihBcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZm9yRWFjaCh0aGlzLl90b2dnbGVEZXRhaWxzQ2VsbCx0aGlzKSx0aGlzLl91cGRhdGUoKSl9fV9kZXRhaWxzT3BlbmVkSXRlbXNDaGFuZ2VkKHQpeyJkZXRhaWxzT3BlbmVkSXRlbXMubGVuZ3RoIiE9PXQucGF0aCYmdC52YWx1ZSYmQXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZvckVhY2goKHQ9Pnt0aGlzLl90b2dnbGVEZXRhaWxzQ2VsbCh0LHQuX2l0ZW0pLHRoaXMuX2ExMXlVcGRhdGVSb3dEZXRhaWxzT3BlbmVkKHQsdGhpcy5faXNEZXRhaWxzT3BlbmVkKHQuX2l0ZW0pKSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImRldGFpbHMtb3BlbmVkIix0aGlzLl9pc0RldGFpbHNPcGVuZWQodC5faXRlbSksdCl9KSl9X2NvbmZpZ3VyZURldGFpbHNDZWxsKHQpe3Quc2V0QXR0cmlidXRlKCJwYXJ0IiwiY2VsbCBkZXRhaWxzLWNlbGwiKSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImZyb3plbiIsITAsdCl9X3RvZ2dsZURldGFpbHNDZWxsKHQsZSl7Y29uc3Qgbj10LnF1ZXJ5U2VsZWN0b3IoJ1twYXJ0fj0iZGV0YWlscy1jZWxsIl0nKTtpZighbilyZXR1cm47Y29uc3QgaT0hdGhpcy5faXNEZXRhaWxzT3BlbmVkKGUpLHI9ISFuLmhpZGRlbiE9PWk7KG4uX2luc3RhbmNlfHxuLl9yZW5kZXJlcikmJm4uaGlkZGVuPT09aXx8KG4uaGlkZGVuPWksaT90LnN0eWxlLnJlbW92ZVByb3BlcnR5KCJwYWRkaW5nLWJvdHRvbSIpOih0aGlzLnJvd0RldGFpbHNSZW5kZXJlcj8obi5fcmVuZGVyZXI9dGhpcy5yb3dEZXRhaWxzUmVuZGVyZXIsbi5fcmVuZGVyZXIuY2FsbCh0aGlzLG4uX2NvbnRlbnQsdGhpcyx7aW5kZXg6dC5pbmRleCxpdGVtOmV9KSk6dGhpcy5fcm93RGV0YWlsc1RlbXBsYXRlJiYhbi5faW5zdGFuY2UmJihuLl9pbnN0YW5jZT10aGlzLl9yb3dEZXRhaWxzVGVtcGxhdGUudGVtcGxhdGl6ZXIuY3JlYXRlSW5zdGFuY2UoKSxuLl9jb250ZW50LmlubmVySFRNTD0iIixuLl9jb250ZW50LmFwcGVuZENoaWxkKG4uX2luc3RhbmNlLnJvb3QpLHRoaXMuX3VwZGF0ZUl0ZW0odCxlKSksV2koKSx0LnN0eWxlLnNldFByb3BlcnR5KCJwYWRkaW5nLWJvdHRvbSIsYCR7bi5vZmZzZXRIZWlnaHR9cHhgKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT50aGlzLm5vdGlmeVJlc2l6ZSgpKSkpKSxyJiYodGhpcy5fdXBkYXRlTWV0cmljcygpLHRoaXMuX3Bvc2l0aW9uSXRlbXMoKSl9X3VwZGF0ZURldGFpbHNDZWxsSGVpZ2h0cygpe0FycmF5LmZyb20odGhpcy4kLml0ZW1zLnF1ZXJ5U2VsZWN0b3JBbGwoJ1twYXJ0fj0iZGV0YWlscy1jZWxsIl06bm90KFtoaWRkZW5dKScpKS5mb3JFYWNoKCh0PT57dC5wYXJlbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJwYWRkaW5nLWJvdHRvbSIsYCR7dC5vZmZzZXRIZWlnaHR9cHhgKX0pKX1faXNEZXRhaWxzT3BlbmVkKHQpe3JldHVybiB0aGlzLmRldGFpbHNPcGVuZWRJdGVtcyYmLTEhPT10aGlzLl9nZXRJdGVtSW5kZXhJbkFycmF5KHQsdGhpcy5kZXRhaWxzT3BlbmVkSXRlbXMpfW9wZW5JdGVtRGV0YWlscyh0KXt0aGlzLl9pc0RldGFpbHNPcGVuZWQodCl8fCh0aGlzLmRldGFpbHNPcGVuZWRJdGVtcz1bLi4udGhpcy5kZXRhaWxzT3BlbmVkSXRlbXMsdF0pfWNsb3NlSXRlbURldGFpbHModCl7dGhpcy5faXNEZXRhaWxzT3BlbmVkKHQpJiYodGhpcy5kZXRhaWxzT3BlbmVkSXRlbXM9dGhpcy5kZXRhaWxzT3BlbmVkSXRlbXMuZmlsdGVyKChlPT4hdGhpcy5faXRlbXNFcXVhbChlLHQpKSkpfV9kZXRhaWxzT3BlbmVkSW5zdGFuY2VDaGFuZ2VkQ2FsbGJhY2sodCxlKXtlP3RoaXMub3Blbkl0ZW1EZXRhaWxzKHQuaXRlbSk6dGhpcy5jbG9zZUl0ZW1EZXRhaWxzKHQuaXRlbSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLywkMXQ9NTAwLEsxdD01MDAsWjF0PXQ9PmNsYXNzIGV4dGVuZHMgdHtzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57X2Zyb3plbkNlbGxzOnt0eXBlOkFycmF5LHZhbHVlOigpPT5bXX0sX3Jvd1dpdGhGb2N1c2VkRWxlbWVudDpFbGVtZW50LF9kZWx0YVlBY2M6e3R5cGU6TnVtYmVyLHZhbHVlOjB9LF91c2VTdGlja3k6e3R5cGU6Qm9vbGVhbix2YWx1ZTp3aW5kb3cuQ1NTJiZ3aW5kb3cuQ1NTLnN1cHBvcnRzJiYod2luZG93LkNTUy5zdXBwb3J0cygicG9zaXRpb24iLCJzdGlja3kiKXx8d2luZG93LkNTUy5zdXBwb3J0cygicG9zaXRpb24iLCItd2Via2l0LXN0aWNreSIpKX19fXN0YXRpYyBnZXQgb2JzZXJ2ZXJzKCl7cmV0dXJuWyJfc2Nyb2xsVmlld3BvcnRIZWlnaHRVcGRhdGVkKF92aWV3cG9ydEhlaWdodCkiXX1zZXQgX3Njcm9sbFRvcCh0KXt0aGlzLiQudGFibGUuc2Nyb2xsVG9wPXR9Z2V0IF9zY3JvbGxUb3AoKXtyZXR1cm4gdGhpcy4kLnRhYmxlLnNjcm9sbFRvcH1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fc2Nyb2xsTGluZUhlaWdodD10aGlzLl9nZXRTY3JvbGxMaW5lSGVpZ2h0KCl9X2dldFNjcm9sbExpbmVIZWlnaHQoKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3Quc3R5bGUuZm9udFNpemU9ImluaXRpYWwiLHQuc3R5bGUuZGlzcGxheT0ibm9uZSIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0KTtjb25zdCBlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLmZvbnRTaXplO3JldHVybiBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHQpLGU/d2luZG93LnBhcnNlSW50KGUpOnZvaWQgMH1fc2Nyb2xsVmlld3BvcnRIZWlnaHRVcGRhdGVkKHQpe3RoaXMuX3Njcm9sbFBhZ2VIZWlnaHQ9dC10aGlzLiQuaGVhZGVyLmNsaWVudEhlaWdodC10aGlzLiQuZm9vdGVyLmNsaWVudEhlaWdodC10aGlzLl9zY3JvbGxMaW5lSGVpZ2h0fXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLiQub3V0ZXJzY3JvbGxlcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLnNjcm9sbFRhcmdldD10aGlzLiQudGFibGUsdGhpcy5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsdGhpcy5fb25XaGVlbCksdGhpcy4kLml0ZW1zLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLCh0PT57Y29uc3QgZT10LmNvbXBvc2VkUGF0aCgpLmluZGV4T2YodGhpcy4kLml0ZW1zKTt0aGlzLl9yb3dXaXRoRm9jdXNlZEVsZW1lbnQ9dC5jb21wb3NlZFBhdGgoKVtlLTFdfSkpLHRoaXMuJC5pdGVtcy5hZGRFdmVudExpc3RlbmVyKCJmb2N1c291dCIsKCgpPT50aGlzLl9yb3dXaXRoRm9jdXNlZEVsZW1lbnQ9dm9pZCAwKSksdGhpcy5zY3JvbGxUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwoKCk9PnRoaXMuX19tb3VzZURvd249ITApKSx0aGlzLnNjcm9sbFRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwoKCk9Pnt0aGlzLl9fbW91c2VEb3duPSExLHRoaXMuX19wZW5kaW5nUmVvcmRlciYmKHRoaXMuX19wZW5kaW5nUmVvcmRlcj0hMSxzZXRUaW1lb3V0KCgoKT0+dGhpcy5fcmVvcmRlclJvd3MoKSksJDF0KSl9KSl9c2Nyb2xsVG9JbmRleCh0KXt0aGlzLl9hY2Nlc3NJcm9uTGlzdEFQSSgoKCk9PnN1cGVyLnNjcm9sbFRvSW5kZXgodCkpKX1fb25XaGVlbCh0KXtpZih0LmN0cmxLZXl8fHRoaXMuX2hhc1Njcm9sbGVkQW5jZXN0b3IodC50YXJnZXQsdC5kZWx0YVgsdC5kZWx0YVkpKXJldHVybjtjb25zdCBlPXRoaXMuJC50YWJsZTtsZXQgbj10LmRlbHRhWTtpZih0LmRlbHRhTW9kZT09PVdoZWVsRXZlbnQuRE9NX0RFTFRBX0xJTkU/bio9dGhpcy5fc2Nyb2xsTGluZUhlaWdodDp0LmRlbHRhTW9kZT09PVdoZWVsRXZlbnQuRE9NX0RFTFRBX1BBR0UmJihuKj10aGlzLl9zY3JvbGxQYWdlSGVpZ2h0KSx0aGlzLl93aGVlbEFuaW1hdGlvbkZyYW1lKXJldHVybiB0aGlzLl9kZWx0YVlBY2MrPW4sdm9pZCB0LnByZXZlbnREZWZhdWx0KCk7bis9dGhpcy5fZGVsdGFZQWNjLHRoaXMuX2RlbHRhWUFjYz0wLHRoaXMuX3doZWVsQW5pbWF0aW9uRnJhbWU9ITAsdGhpcy5fZGVib3VuY2VyV2hlZWxBbmltYXRpb25GcmFtZT1Obi5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZXJXaGVlbEFuaW1hdGlvbkZyYW1lLF90LCgoKT0+dGhpcy5fd2hlZWxBbmltYXRpb25GcmFtZT0hMSkpO2NvbnN0IGk9TWF0aC5hYnModC5kZWx0YVgpK01hdGguYWJzKG4pO3RoaXMuX2NhblNjcm9sbChlLHQuZGVsdGFYLG4pPyh0LnByZXZlbnREZWZhdWx0KCksZS5zY3JvbGxUb3ArPW4sZS5zY3JvbGxMZWZ0Kz10LmRlbHRhWCx0aGlzLl9zY3JvbGxIYW5kbGVyKCksdGhpcy5faGFzUmVzaWR1YWxNb21lbnR1bT0hMCx0aGlzLl9pZ25vcmVOZXdXaGVlbD0hMCx0aGlzLl9kZWJvdW5jZXJJZ25vcmVOZXdXaGVlbD1Obi5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZXJJZ25vcmVOZXdXaGVlbCxndC5hZnRlcihLMXQpLCgoKT0+dGhpcy5faWdub3JlTmV3V2hlZWw9ITEpKSk6dGhpcy5faGFzUmVzaWR1YWxNb21lbnR1bSYmaTw9dGhpcy5fcHJldmlvdXNNb21lbnR1bXx8dGhpcy5faWdub3JlTmV3V2hlZWw/dC5wcmV2ZW50RGVmYXVsdCgpOmk+dGhpcy5fcHJldmlvdXNNb21lbnR1bSYmKHRoaXMuX2hhc1Jlc2lkdWFsTW9tZW50dW09ITEpLHRoaXMuX3ByZXZpb3VzTW9tZW50dW09aX1faGFzU2Nyb2xsZWRBbmNlc3Rvcih0LGUsbil7cmV0dXJuInZhYWRpbi1ncmlkLWNlbGwtY29udGVudCIhPT10LmxvY2FsTmFtZSYmKCEoIXRoaXMuX2NhblNjcm9sbCh0LGUsbil8fC0xPT09WyJhdXRvIiwic2Nyb2xsIl0uaW5kZXhPZihnZXRDb21wdXRlZFN0eWxlKHQpLm92ZXJmbG93KSl8fCh0IT09dGhpcyYmdC5wYXJlbnRFbGVtZW50P3RoaXMuX2hhc1Njcm9sbGVkQW5jZXN0b3IodC5wYXJlbnRFbGVtZW50LGUsbik6dm9pZCAwKSl9X2NhblNjcm9sbCh0LGUsbil7cmV0dXJuIG4+MCYmdC5zY3JvbGxUb3A8dC5zY3JvbGxIZWlnaHQtdC5vZmZzZXRIZWlnaHR8fG48MCYmdC5zY3JvbGxUb3A+MHx8ZT4wJiZ0LnNjcm9sbExlZnQ8dC5zY3JvbGxXaWR0aC10Lm9mZnNldFdpZHRofHxlPDAmJnQuc2Nyb2xsTGVmdD4wfV9zY2hlZHVsZVNjcm9sbGluZygpe3RoaXMuX3Njcm9sbGluZ0ZyYW1lfHwodGhpcy5fc2Nyb2xsaW5nRnJhbWU9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+dGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJzY3JvbGxpbmciLCEwLHRoaXMuJC5zY3JvbGxlcikpKSksdGhpcy5fZGVib3VuY2VTY3JvbGxpbmc9Tm4uZGVib3VuY2UodGhpcy5fZGVib3VuY2VTY3JvbGxpbmcsZ3QuYWZ0ZXIoJDF0KSwoKCk9PntjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9zY3JvbGxpbmdGcmFtZSksZGVsZXRlIHRoaXMuX3Njcm9sbGluZ0ZyYW1lLHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgic2Nyb2xsaW5nIiwhMSx0aGlzLiQuc2Nyb2xsZXIpLHRoaXMuX3Jlb3JkZXJSb3dzKCl9KSl9X2FmdGVyU2Nyb2xsKCl7dGhpcy5fdHJhbnNsYXRlU3RhdGlvbmFyeUVsZW1lbnRzKCksdGhpcy5oYXNBdHRyaWJ1dGUoInJlb3JkZXJpbmciKXx8dGhpcy5fc2NoZWR1bGVTY3JvbGxpbmcoKSx0aGlzLl91cGRhdGVPdmVyZmxvdygpfV91cGRhdGVPdmVyZmxvdygpe2xldCB0PSIiO2NvbnN0IGU9dGhpcy4kLnRhYmxlO2Uuc2Nyb2xsVG9wPGUuc2Nyb2xsSGVpZ2h0LWUuY2xpZW50SGVpZ2h0JiYodCs9IiBib3R0b20iKSxlLnNjcm9sbFRvcD4wJiYodCs9IiB0b3AiKSxlLnNjcm9sbExlZnQ8ZS5zY3JvbGxXaWR0aC1lLmNsaWVudFdpZHRoJiYodCs9IiByaWdodCIpLGUuc2Nyb2xsTGVmdD4wJiYodCs9IiBsZWZ0IiksdGhpcy5fZGVib3VuY2VPdmVyZmxvdz1Obi5kZWJvdW5jZSh0aGlzLl9kZWJvdW5jZU92ZXJmbG93LF90LCgoKT0+e2NvbnN0IGU9dC50cmltKCk7ZS5sZW5ndGg+MCYmdGhpcy5nZXRBdHRyaWJ1dGUoIm92ZXJmbG93IikhPT1lP3RoaXMuc2V0QXR0cmlidXRlKCJvdmVyZmxvdyIsZSk6MD09ZS5sZW5ndGgmJnRoaXMuaGFzQXR0cmlidXRlKCJvdmVyZmxvdyIpJiZ0aGlzLnJlbW92ZUF0dHJpYnV0ZSgib3ZlcmZsb3ciKX0pKX1fcmVvcmRlclJvd3MoKXtpZih0aGlzLl9fbW91c2VEb3duKXJldHVybiB2b2lkKHRoaXMuX19wZW5kaW5nUmVvcmRlcj0hMCk7Y29uc3QgdD10aGlzLiQuaXRlbXMsZT10LnF1ZXJ5U2VsZWN0b3JBbGwoInRyIik7aWYoIWUubGVuZ3RoKXJldHVybjtjb25zdCBuPXRoaXMuX3ZpcnR1YWxTdGFydCt0aGlzLl92aWR4T2Zmc2V0LGk9dGhpcy5fcm93V2l0aEZvY3VzZWRFbGVtZW50fHxBcnJheS5mcm9tKGUpLmZpbHRlcigodD0+IXQuaGlkZGVuKSlbMF07aWYoIWkpcmV0dXJuO2NvbnN0IHI9aS5pbmRleC1uLG89QXJyYXkuZnJvbShlKS5pbmRleE9mKGkpLXI7aWYobz4wKWZvcihsZXQgbj0wO248bztuKyspdC5hcHBlbmRDaGlsZChlW25dKTtlbHNlIGlmKG88MClmb3IobGV0IG49ZS5sZW5ndGgrbztuPGUubGVuZ3RoO24rKyl0Lmluc2VydEJlZm9yZShlW25dLGVbMF0pO2lmKHRoaXMuX3NhZmFyaSl7Y29uc3R7dHJhbnNmb3JtOnR9PXRoaXMuJC5oZWFkZXIuc3R5bGU7dGhpcy4kLmhlYWRlci5zdHlsZS50cmFuc2Zvcm09IiIsc2V0VGltZW91dCgoKCk9PnRoaXMuJC5oZWFkZXIuc3R5bGUudHJhbnNmb3JtPXQpKX19X2Zyb3plbkNlbGxzQ2hhbmdlZCgpe3RoaXMuX2RlYm91bmNlckNhY2hlRWxlbWVudHM9Tm4uZGVib3VuY2UodGhpcy5fZGVib3VuY2VyQ2FjaGVFbGVtZW50cyx2dCwoKCk9PntBcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdbcGFydH49ImNlbGwiXScpKS5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnN0eWxlLnRyYW5zZm9ybT0iIn0pKSx0aGlzLl9mcm96ZW5DZWxscz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLiQudGFibGUucXVlcnlTZWxlY3RvckFsbCgiW2Zyb3plbl0iKSksdGhpcy5fdXBkYXRlU2Nyb2xsZXJNZWFzdXJlbWVudHMoKSx0aGlzLl90cmFuc2xhdGVTdGF0aW9uYXJ5RWxlbWVudHMoKX0pKSx0aGlzLl91cGRhdGVMYXN0RnJvemVuKCl9X3VwZGF0ZVNjcm9sbGVyTWVhc3VyZW1lbnRzKCl7dGhpcy5fZnJvemVuQ2VsbHMubGVuZ3RoPjAmJnRoaXMuX19pc1JUTCYmKHRoaXMuX19zY3JvbGxlck1ldHJpY3M9e3Njcm9sbFdpZHRoOnRoaXMuJC50YWJsZS5zY3JvbGxXaWR0aCxjbGllbnRXaWR0aDp0aGlzLiQudGFibGUuY2xpZW50V2lkdGh9KX1fdXBkYXRlTGFzdEZyb3plbigpe2lmKCF0aGlzLl9jb2x1bW5UcmVlKXJldHVybjtjb25zdCB0PXRoaXMuX2NvbHVtblRyZWVbdGhpcy5fY29sdW1uVHJlZS5sZW5ndGgtMV0uc2xpY2UoMCk7dC5zb3J0KCgodCxlKT0+dC5fb3JkZXItZS5fb3JkZXIpKTtjb25zdCBlPXQucmVkdWNlKCgodCxlLG4pPT4oZS5fbGFzdEZyb3plbj0hMSxlLmZyb3plbiYmIWUuaGlkZGVuP246dCkpLHZvaWQgMCk7dm9pZCAwIT09ZSYmKHRbZV0uX2xhc3RGcm96ZW49ITApfV90cmFuc2xhdGVTdGF0aW9uYXJ5RWxlbWVudHMoKXtjb25zdCB0PU1hdGgubWF4KDAsdGhpcy5fc2Nyb2xsTGVmdCksZT1NYXRoLm1heCgwLHRoaXMuX3Njcm9sbFRvcCk7bGV0IG49MCxpPTAscj0wO2lmKHRoaXMuX3VzZVN0aWNreXx8KG49dCxpPWUscj10aGlzLiQudGFibGUuY2xpZW50SGVpZ2h0LXRoaXMuJC5mb290ZXIub2Zmc2V0SGVpZ2h0LXRoaXMuJC5mb290ZXIub2Zmc2V0VG9wKSx0aGlzLiQuaGVhZGVyLnN0eWxlLnRyYW5zZm9ybT10aGlzLl9nZXRUcmFuc2xhdGUoLXQrbixpKSx0aGlzLiQuZm9vdGVyLnN0eWxlLnRyYW5zZm9ybT10aGlzLl9nZXRUcmFuc2xhdGUoLXQrbixpK3IpLHRoaXMuJC5pdGVtcy5zdHlsZS50cmFuc2Zvcm09dGhpcy5fZ2V0VHJhbnNsYXRlKC10K24sMCksdGhpcy5fZnJvemVuQ2VsbHMubGVuZ3RoPjApe2NvbnN0IHQ9dGhpcy5fX2lzUlRMP3RoaXMuX19nZXROb3JtYWxpemVkU2Nyb2xsTGVmdCh0aGlzLiQudGFibGUpK3RoaXMuX19zY3JvbGxlck1ldHJpY3MuY2xpZW50V2lkdGgtdGhpcy5fX3Njcm9sbGVyTWV0cmljcy5zY3JvbGxXaWR0aDp0aGlzLl9zY3JvbGxMZWZ0LGU9dGhpcy5fZ2V0VHJhbnNsYXRlKHQsMCk7Zm9yKGxldCB0PTA7dDx0aGlzLl9mcm96ZW5DZWxscy5sZW5ndGg7dCsrKXRoaXMuX2Zyb3plbkNlbGxzW3RdLnN0eWxlLnRyYW5zZm9ybT1lfX1fZ2V0VHJhbnNsYXRlKHQsZSl7cmV0dXJuYHRyYW5zbGF0ZSgke3R9cHgsICR7ZX1weClgfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi8sSjF0PXQ9PmNsYXNzIGV4dGVuZHMgdHtzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57c2VsZWN0ZWRJdGVtczp7dHlwZTpPYmplY3Qsbm90aWZ5OiEwLHZhbHVlOigpPT5bXX19fXN0YXRpYyBnZXQgb2JzZXJ2ZXJzKCl7cmV0dXJuWyJfc2VsZWN0ZWRJdGVtc0NoYW5nZWQoc2VsZWN0ZWRJdGVtcy4qKSJdfV9pc1NlbGVjdGVkKHQpe3JldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMmJnRoaXMuX2dldEl0ZW1JbmRleEluQXJyYXkodCx0aGlzLnNlbGVjdGVkSXRlbXMpPi0xfXNlbGVjdEl0ZW0odCl7dGhpcy5faXNTZWxlY3RlZCh0KXx8KHRoaXMuc2VsZWN0ZWRJdGVtcz1bLi4udGhpcy5zZWxlY3RlZEl0ZW1zLHRdKX1kZXNlbGVjdEl0ZW0odCl7dGhpcy5faXNTZWxlY3RlZCh0KSYmKHRoaXMuc2VsZWN0ZWRJdGVtcz10aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKChlPT4hdGhpcy5faXRlbXNFcXVhbChlLHQpKSkpfV90b2dnbGVJdGVtKHQpey0xPT09dGhpcy5fZ2V0SXRlbUluZGV4SW5BcnJheSh0LHRoaXMuc2VsZWN0ZWRJdGVtcyk/dGhpcy5zZWxlY3RJdGVtKHQpOnRoaXMuZGVzZWxlY3RJdGVtKHQpfV9zZWxlY3RlZEl0ZW1zQ2hhbmdlZCh0KXshdGhpcy4kLml0ZW1zLmNoaWxkcmVuLmxlbmd0aHx8InNlbGVjdGVkSXRlbXMiIT09dC5wYXRoJiYic2VsZWN0ZWRJdGVtcy5zcGxpY2VzIiE9PXQucGF0aHx8QXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZvckVhY2goKHQ9Pnt0aGlzLl91cGRhdGVJdGVtKHQsdC5faXRlbSl9KSl9X3NlbGVjdGVkSW5zdGFuY2VDaGFuZ2VkQ2FsbGJhY2sodCxlKXtlP3RoaXMuc2VsZWN0SXRlbSh0Lml0ZW0pOnRoaXMuZGVzZWxlY3RJdGVtKHQuaXRlbSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLyxRMXQ9dD0+Y2xhc3MgZXh0ZW5kcyB0e3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybnttdWx0aVNvcnQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMX0sX3NvcnRlcnM6e3R5cGU6QXJyYXksdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bXX19LF9wcmV2aW91c1NvcnRlcnM6e3R5cGU6QXJyYXksdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bXX19fX1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJzb3J0ZXItY2hhbmdlZCIsdGhpcy5fb25Tb3J0ZXJDaGFuZ2VkKX1fb25Tb3J0ZXJDaGFuZ2VkKHQpe2NvbnN0IGU9dC50YXJnZXQ7dC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLl9fdXBkYXRlU29ydGVyKGUpLHRoaXMuX19hcHBseVNvcnRlcnMoKX1fX3JlbW92ZVNvcnRlcnModCl7MCE9dC5sZW5ndGgmJih0aGlzLl9zb3J0ZXJzPXRoaXMuX3NvcnRlcnMuZmlsdGVyKChlPT50LmluZGV4T2YoZSk8MCkpLHRoaXMubXVsdGlTb3J0JiZ0aGlzLl9fdXBkYXRlU29ydE9yZGVycygpLHRoaXMuX19hcHBseVNvcnRlcnMoKSl9X191cGRhdGVTb3J0T3JkZXJzKCl7dGhpcy5fc29ydGVycy5mb3JFYWNoKCgodCxlKT0+dC5fb3JkZXI9dGhpcy5fc29ydGVycy5sZW5ndGg+MT9lOm51bGwpLHRoaXMpfV9fdXBkYXRlU29ydGVyKHQpe2lmKHQuZGlyZWN0aW9ufHwtMSE9PXRoaXMuX3NvcnRlcnMuaW5kZXhPZih0KSlpZih0Ll9vcmRlcj1udWxsLHRoaXMubXVsdGlTb3J0KXRoaXMuX3JlbW92ZUFycmF5SXRlbSh0aGlzLl9zb3J0ZXJzLHQpLHQuZGlyZWN0aW9uJiZ0aGlzLl9zb3J0ZXJzLnVuc2hpZnQodCksdGhpcy5fX3VwZGF0ZVNvcnRPcmRlcnMoKTtlbHNlIGlmKHQuZGlyZWN0aW9uKXtjb25zdCBlPXRoaXMuX3NvcnRlcnMuZmlsdGVyKChlPT5lIT10KSk7dGhpcy5fc29ydGVycz1bdF0sZS5mb3JFYWNoKCh0PT57dC5fb3JkZXI9bnVsbCx0LmRpcmVjdGlvbj1udWxsfSkpfX1fX2FwcGx5U29ydGVycygpe3RoaXMuZGF0YVByb3ZpZGVyJiZ0aGlzLmlzQXR0YWNoZWQmJkpTT04uc3RyaW5naWZ5KHRoaXMuX3ByZXZpb3VzU29ydGVycykhPT1KU09OLnN0cmluZ2lmeSh0aGlzLl9tYXBTb3J0ZXJzKCkpJiZ0aGlzLmNsZWFyQ2FjaGUoKSx0aGlzLl9hMTF5VXBkYXRlU29ydGVycygpLHRoaXMuX3ByZXZpb3VzU29ydGVycz10aGlzLl9tYXBTb3J0ZXJzKCl9X21hcFNvcnRlcnMoKXtyZXR1cm4gdGhpcy5fc29ydGVycy5tYXAoKHQ9Pih7cGF0aDp0LnBhdGgsZGlyZWN0aW9uOnQuZGlyZWN0aW9ufSkpKX1fcmVtb3ZlQXJyYXlJdGVtKHQsZSl7Y29uc3Qgbj10LmluZGV4T2YoZSk7bj4tMSYmdC5zcGxpY2UobiwxKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovLHQwdD10PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2NlbGxDbGFzc05hbWVHZW5lcmF0b3I6RnVuY3Rpb259fXN0YXRpYyBnZXQgb2JzZXJ2ZXJzKCl7cmV0dXJuWyJfX2NlbGxDbGFzc05hbWVHZW5lcmF0b3JDaGFuZ2VkKGNlbGxDbGFzc05hbWVHZW5lcmF0b3IpIl19X19jZWxsQ2xhc3NOYW1lR2VuZXJhdG9yQ2hhbmdlZCgpe3RoaXMuZ2VuZXJhdGVDZWxsQ2xhc3NOYW1lcygpfWdlbmVyYXRlQ2VsbENsYXNzTmFtZXMoKXtBcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZmlsdGVyKCh0PT4hdC5oaWRkZW4pKS5mb3JFYWNoKCh0PT50aGlzLl9nZW5lcmF0ZUNlbGxDbGFzc05hbWVzKHQsdGhpcy5fX2dldFJvd01vZGVsKHQpKSkpfV9nZW5lcmF0ZUNlbGxDbGFzc05hbWVzKHQsZSl7QXJyYXkuZnJvbSh0LmNoaWxkcmVuKS5mb3JFYWNoKCh0PT57aWYodC5fX2dlbmVyYXRlZENsYXNzZXMmJnQuX19nZW5lcmF0ZWRDbGFzc2VzLmZvckVhY2goKGU9PnQuY2xhc3NMaXN0LnJlbW92ZShlKSkpLHRoaXMuY2VsbENsYXNzTmFtZUdlbmVyYXRvcil7Y29uc3Qgbj10aGlzLmNlbGxDbGFzc05hbWVHZW5lcmF0b3IodC5fY29sdW1uLGUpO3QuX19nZW5lcmF0ZWRDbGFzc2VzPW4mJm4uc3BsaXQoIiAiKS5maWx0ZXIoKHQ9PnQubGVuZ3RoPjApKSx0Ll9fZ2VuZXJhdGVkQ2xhc3NlcyYmdC5fX2dlbmVyYXRlZENsYXNzZXMuZm9yRWFjaCgoZT0+dC5jbGFzc0xpc3QuYWRkKGUpKSl9fSkpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi8sZTB0PSJiZXR3ZWVuIixuMHQ9Im9uLXRvcC1vci1iZXR3ZWVuIixpMHQ9Im9uLWdyaWQiLHIwdD0ib24tdG9wIixvMHQ9ImFib3ZlIixhMHQ9ImJlbG93IixzMHQ9ImVtcHR5IixsMHQ9dD0+Y2xhc3MgZXh0ZW5kcyB0e3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntkcm9wTW9kZTpTdHJpbmcscm93c0RyYWdnYWJsZTpCb29sZWFuLGRyYWdGaWx0ZXI6RnVuY3Rpb24sZHJvcEZpbHRlcjpGdW5jdGlvbixfX2RuZEF1dG9TY3JvbGxUaHJlc2hvbGQ6e3ZhbHVlOjUwfX19c3RhdGljIGdldCBvYnNlcnZlcnMoKXtyZXR1cm5bIl9kcmFnRHJvcEFjY2Vzc0NoYW5nZWQocm93c0RyYWdnYWJsZSwgZHJvcE1vZGUsIGRyYWdGaWx0ZXIsIGRyb3BGaWx0ZXIpIl19cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuJC50YWJsZS5hZGRFdmVudExpc3RlbmVyKCJkcmFnc3RhcnQiLHRoaXMuX29uRHJhZ1N0YXJ0LmJpbmQodGhpcykpLHRoaXMuJC50YWJsZS5hZGRFdmVudExpc3RlbmVyKCJkcmFnZW5kIix0aGlzLl9vbkRyYWdFbmQuYmluZCh0aGlzKSksdGhpcy4kLnRhYmxlLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIix0aGlzLl9vbkRyYWdPdmVyLmJpbmQodGhpcykpLHRoaXMuJC50YWJsZS5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLHRoaXMuX29uRHJhZ0xlYXZlLmJpbmQodGhpcykpLHRoaXMuJC50YWJsZS5hZGRFdmVudExpc3RlbmVyKCJkcm9wIix0aGlzLl9vbkRyb3AuYmluZCh0aGlzKSksdGhpcy4kLnRhYmxlLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbnRlciIsKHQ9Pnt0aGlzLmRyb3BNb2RlJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCkpfSkpfV9vbkRyYWdTdGFydCh0KXtpZih0aGlzLnJvd3NEcmFnZ2FibGUpe2xldCBlPXQudGFyZ2V0O2lmKCJ2YWFkaW4tZ3JpZC1jZWxsLWNvbnRlbnQiPT09ZS5sb2NhbE5hbWUmJihlPWUuYXNzaWduZWRTbG90LnBhcmVudE5vZGUucGFyZW50Tm9kZSksZS5wYXJlbnROb2RlIT09dGhpcy4kLml0ZW1zKXJldHVybjtpZih0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgiZHJhZ2dpbmctcm93cyIsITAsdGhpcyksdGhpcy5fc2FmYXJpKXtjb25zdCB0PWUuc3R5bGUudHJhbnNmb3JtO2Uuc3R5bGUudG9wPS90cmFuc2xhdGVZXCgoLiopXCkvLmV4ZWModClbMV0sZS5zdHlsZS50cmFuc2Zvcm09Im5vbmUiLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9PntlLnN0eWxlLnRvcD0iIixlLnN0eWxlLnRyYW5zZm9ybT10fSkpfWNvbnN0IG49ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLl9pb3M/dC5kYXRhVHJhbnNmZXIuc2V0RHJhZ0ltYWdlKGUpOnQuZGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZShlLHQuY2xpZW50WC1uLmxlZnQsdC5jbGllbnRZLW4udG9wKTtsZXQgaT1bZV07dGhpcy5faXNTZWxlY3RlZChlLl9pdGVtKSYmKGk9dGhpcy5fX2dldFZpZXdwb3J0Um93cygpLmZpbHRlcigodD0+dGhpcy5faXNTZWxlY3RlZCh0Ll9pdGVtKSkpLmZpbHRlcigodD0+IXRoaXMuZHJhZ0ZpbHRlcnx8dGhpcy5kcmFnRmlsdGVyKHRoaXMuX19nZXRSb3dNb2RlbCh0KSkpKSksdC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgidGV4dCIsdGhpcy5fX2Zvcm1hdERlZmF1bHRUcmFuc2ZlckRhdGEoaSkpLGUuc2V0QXR0cmlidXRlKCJkcmFnc3RhcnQiLGkubGVuZ3RoPjE/aS5sZW5ndGg6IiIpLHRoaXMudXBkYXRlU3R5bGVzKHsiLS1fZ3JpZC1kcmFnLXN0YXJ0LXgiOnQuY2xpZW50WC1uLmxlZnQrMjArInB4IiwiLS1fZ3JpZC1kcmFnLXN0YXJ0LXkiOnQuY2xpZW50WS1uLnRvcCsxMCsicHgifSkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e2UucmVtb3ZlQXR0cmlidXRlKCJkcmFnc3RhcnQiKSx0aGlzLnVwZGF0ZVN0eWxlcyh7Ii0tX2dyaWQtZHJhZy1zdGFydC14IjoiIiwiLS1fZ3JpZC1kcmFnLXN0YXJ0LXkiOiIifSl9KSk7Y29uc3Qgcj1uZXcgQ3VzdG9tRXZlbnQoImdyaWQtZHJhZ3N0YXJ0Iix7ZGV0YWlsOntkcmFnZ2VkSXRlbXM6aS5tYXAoKHQ9PnQuX2l0ZW0pKSxzZXREcmFnRGF0YTooZSxuKT0+dC5kYXRhVHJhbnNmZXIuc2V0RGF0YShlLG4pLHNldERyYWdnZWRJdGVtc0NvdW50OnQ9PmUuc2V0QXR0cmlidXRlKCJkcmFnc3RhcnQiLHQpfX0pO3Iub3JpZ2luYWxFdmVudD10LHRoaXMuZGlzcGF0Y2hFdmVudChyKX19X29uRHJhZ0VuZCh0KXt0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImRyYWdnaW5nLXJvd3MiLCExLHRoaXMpLHQuc3RvcFByb3BhZ2F0aW9uKCk7Y29uc3QgZT1uZXcgQ3VzdG9tRXZlbnQoImdyaWQtZHJhZ2VuZCIpO2Uub3JpZ2luYWxFdmVudD10LHRoaXMuZGlzcGF0Y2hFdmVudChlKX1fb25EcmFnTGVhdmUodCl7dC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLl9jbGVhckRyYWdTdHlsZXMoKX1fb25EcmFnT3Zlcih0KXtpZih0aGlzLmRyb3BNb2RlKXtpZih0aGlzLl9kcm9wTG9jYXRpb249dm9pZCAwLHRoaXMuX2RyYWdPdmVySXRlbT12b2lkIDAsdGhpcy5fX2RuZEF1dG9TY3JvbGwodC5jbGllbnRZKSlyZXR1cm4gdm9pZCB0aGlzLl9jbGVhckRyYWdTdHlsZXMoKTtsZXQgZT10LmNvbXBvc2VkUGF0aCgpLmZpbHRlcigodD0+InRyIj09PXQubG9jYWxOYW1lKSlbMF07aWYodGhpcy5fZWZmZWN0aXZlU2l6ZSYmdGhpcy5kcm9wTW9kZSE9PWkwdClpZihlJiZlLnBhcmVudE5vZGU9PT10aGlzLiQuaXRlbXMpe2NvbnN0IG49ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZih0aGlzLl9kcm9wTG9jYXRpb249cjB0LHRoaXMuZHJvcE1vZGU9PT1lMHQpe3RoaXMuX2Ryb3BMb2NhdGlvbj10LmNsaWVudFktbi50b3A8bi5ib3R0b20tdC5jbGllbnRZP28wdDphMHR9ZWxzZSB0aGlzLmRyb3BNb2RlPT09bjB0JiYodC5jbGllbnRZLW4udG9wPG4uaGVpZ2h0LzM/dGhpcy5fZHJvcExvY2F0aW9uPW8wdDp0LmNsaWVudFktbi50b3A+bi5oZWlnaHQvMyoyJiYodGhpcy5fZHJvcExvY2F0aW9uPWEwdCkpfWVsc2V7aWYoZSlyZXR1cm47aWYodGhpcy5kcm9wTW9kZSE9PWUwdCYmdGhpcy5kcm9wTW9kZSE9PW4wdClyZXR1cm47ZT1BcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZmlsdGVyKCh0PT4hdC5oaWRkZW4pKS5wb3AoKSx0aGlzLl9kcm9wTG9jYXRpb249YTB0fWVsc2UgdGhpcy5fZHJvcExvY2F0aW9uPXMwdDtpZihlJiZlLmhhc0F0dHJpYnV0ZSgiZHJvcC1kaXNhYmxlZCIpKXJldHVybiB2b2lkKHRoaXMuX2Ryb3BMb2NhdGlvbj12b2lkIDApO3Quc3RvcFByb3BhZ2F0aW9uKCksdC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2Ryb3BMb2NhdGlvbj09PXMwdD90aGlzLl90b2dnbGVBdHRyaWJ1dGUoImRyYWdvdmVyIiwhMCx0aGlzKTplPyh0aGlzLl9kcmFnT3Zlckl0ZW09ZS5faXRlbSxlLmdldEF0dHJpYnV0ZSgiZHJhZ292ZXIiKSE9PXRoaXMuX2Ryb3BMb2NhdGlvbiYmZS5zZXRBdHRyaWJ1dGUoImRyYWdvdmVyIix0aGlzLl9kcm9wTG9jYXRpb24pKTp0aGlzLl9jbGVhckRyYWdTdHlsZXMoKX19X19kbmRBdXRvU2Nyb2xsKHQpe2lmKHRoaXMuX19kbmRBdXRvU2Nyb2xsaW5nKXJldHVybiEwO2NvbnN0IGU9dGhpcy4kLmhlYWRlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b20sbj10aGlzLiQuZm9vdGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCxpPWUtdCt0aGlzLl9fZG5kQXV0b1Njcm9sbFRocmVzaG9sZCxyPXQtbit0aGlzLl9fZG5kQXV0b1Njcm9sbFRocmVzaG9sZDtsZXQgbz0wO2lmKHI+MD9vPTIqcjppPjAmJihvPTIqLWkpLG8pe2NvbnN0IHQ9dGhpcy4kLnRhYmxlLnNjcm9sbFRvcDt0aGlzLiQudGFibGUuc2Nyb2xsVG9wKz1vO2lmKHQhPT10aGlzLiQudGFibGUuc2Nyb2xsVG9wKXJldHVybiB0aGlzLl9fZG5kQXV0b1Njcm9sbGluZz0hMCxzZXRUaW1lb3V0KCgoKT0+dGhpcy5fX2RuZEF1dG9TY3JvbGxpbmc9ITEpLDIwKSx0aGlzLl9zY3JvbGxIYW5kbGVyKCksITB9fV9fZ2V0Vmlld3BvcnRSb3dzKCl7Y29uc3QgdD10aGlzLiQuaGVhZGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSxlPXRoaXMuJC5mb290ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO3JldHVybiBBcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZmlsdGVyKChuPT57Y29uc3QgaT1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiBpLmJvdHRvbT50JiZpLnRvcDxlfSkpfV9jbGVhckRyYWdTdHlsZXMoKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZSgiZHJhZ292ZXIiKSxBcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZm9yRWFjaCgodD0+dC5yZW1vdmVBdHRyaWJ1dGUoImRyYWdvdmVyIikpKX1fb25Ecm9wKHQpe2lmKHRoaXMuZHJvcE1vZGUpe3Quc3RvcFByb3BhZ2F0aW9uKCksdC5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IGU9dC5kYXRhVHJhbnNmZXIudHlwZXMmJkFycmF5LmZyb20odC5kYXRhVHJhbnNmZXIudHlwZXMpLm1hcCgoZT0+KHt0eXBlOmUsZGF0YTp0LmRhdGFUcmFuc2Zlci5nZXREYXRhKGUpfSkpKTt0aGlzLl9jbGVhckRyYWdTdHlsZXMoKTtjb25zdCBuPW5ldyBDdXN0b21FdmVudCgiZ3JpZC1kcm9wIix7YnViYmxlczp0LmJ1YmJsZXMsY2FuY2VsYWJsZTp0LmNhbmNlbGFibGUsZGV0YWlsOntkcm9wVGFyZ2V0SXRlbTp0aGlzLl9kcmFnT3Zlckl0ZW0sZHJvcExvY2F0aW9uOnRoaXMuX2Ryb3BMb2NhdGlvbixkcmFnRGF0YTplfX0pO24ub3JpZ2luYWxFdmVudD10LHRoaXMuZGlzcGF0Y2hFdmVudChuKX19X19mb3JtYXREZWZhdWx0VHJhbnNmZXJEYXRhKHQpe3JldHVybiB0Lm1hcCgodD0+QXJyYXkuZnJvbSh0LmNoaWxkcmVuKS5maWx0ZXIoKHQ9PiF0LmhpZGRlbiYmLTE9PT10LmdldEF0dHJpYnV0ZSgicGFydCIpLmluZGV4T2YoImRldGFpbHMtY2VsbCIpKSkuc29ydCgoKHQsZSk9PnQuX2NvbHVtbi5fb3JkZXI+ZS5fY29sdW1uLl9vcmRlcj8xOi0xKSkubWFwKCh0PT50Ll9jb250ZW50LnRleHRDb250ZW50LnRyaW0oKSkpLmZpbHRlcigodD0+dCkpLmpvaW4oIlx0IikpKS5qb2luKCJcbiIpfV9kcmFnRHJvcEFjY2Vzc0NoYW5nZWQoKXt0aGlzLmZpbHRlckRyYWdBbmREcm9wKCl9ZmlsdGVyRHJhZ0FuZERyb3AoKXtBcnJheS5mcm9tKHRoaXMuJC5pdGVtcy5jaGlsZHJlbikuZmlsdGVyKCh0PT4hdC5oaWRkZW4pKS5mb3JFYWNoKCh0PT57dGhpcy5fZmlsdGVyRHJhZ0FuZERyb3AodCx0aGlzLl9fZ2V0Um93TW9kZWwodCkpfSkpfV9maWx0ZXJEcmFnQW5kRHJvcCh0LGUpe2NvbnN0IG49IXRoaXMucm93c0RyYWdnYWJsZXx8dGhpcy5kcmFnRmlsdGVyJiYhdGhpcy5kcmFnRmlsdGVyKGUpLGk9IXRoaXMuZHJvcE1vZGV8fHRoaXMuZHJvcEZpbHRlciYmIXRoaXMuZHJvcEZpbHRlcihlKTtBcnJheS5mcm9tKHQuY2hpbGRyZW4pLm1hcCgodD0+dC5fY29udGVudCkpLmZvckVhY2goKHQ9PntuP3QucmVtb3ZlQXR0cmlidXRlKCJkcmFnZ2FibGUiKTp0LnNldEF0dHJpYnV0ZSgiZHJhZ2dhYmxlIiwhMCl9KSksdGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJkcmFnLWRpc2FibGVkIixuLHQpLHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgiZHJvcC1kaXNhYmxlZCIsaSx0KX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovLGMwdD10PT5jbGFzcyBleHRlbmRzIHR7c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue19oZWFkZXJGb2N1c2FibGU6e3R5cGU6T2JqZWN0LG9ic2VydmVyOiJfZm9jdXNhYmxlQ2hhbmdlZCJ9LF9pdGVtc0ZvY3VzYWJsZTp7dHlwZTpPYmplY3Qsb2JzZXJ2ZXI6Il9mb2N1c2FibGVDaGFuZ2VkIn0sX2Zvb3RlckZvY3VzYWJsZTp7dHlwZTpPYmplY3Qsb2JzZXJ2ZXI6Il9mb2N1c2FibGVDaGFuZ2VkIn0sX25hdmlnYXRpbmdJc0hpZGRlbjpCb29sZWFuLF9mb2N1c2VkSXRlbUluZGV4Ont0eXBlOk51bWJlcix2YWx1ZTowfSxfZm9jdXNlZENvbHVtbk9yZGVyOk51bWJlcixpbnRlcmFjdGluZzp7dHlwZTpCb29sZWFuLHZhbHVlOiExLHJlZmxlY3RUb0F0dHJpYnV0ZTohMCxyZWFkT25seTohMCxvYnNlcnZlcjoiX2ludGVyYWN0aW5nQ2hhbmdlZCJ9fX1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5faW9zfHx0aGlzLl9hbmRyb2lkfHwodGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9vbktleURvd24pLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLHRoaXMuX29uS2V5VXApLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNpbiIsdGhpcy5fb25Gb2N1c0luKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0Iix0aGlzLl9vbkZvY3VzT3V0KSx0aGlzLiQudGFibGUuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNpbiIsdGhpcy5fb25DZWxsRm9jdXNJbi5iaW5kKHRoaXMpKSx0aGlzLiQudGFibGUuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNvdXQiLHRoaXMuX29uQ2VsbEZvY3VzT3V0LmJpbmQodGhpcykpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwoKCk9Pnt0aGlzLl90b2dnbGVBdHRyaWJ1dGUoIm5hdmlnYXRpbmciLCExLHRoaXMpLHRoaXMuX2lzTW91c2Vkb3duPSEwfSkpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsKCgpPT50aGlzLl9pc01vdXNlZG93bj0hMSkpKX1fZm9jdXNhYmxlQ2hhbmdlZCh0LGUpe2UmJmUuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIiksdCYmdGhpcy5fdXBkYXRlR3JpZFNlY3Rpb25Gb2N1c1RhcmdldCh0KX1faW50ZXJhY3RpbmdDaGFuZ2VkKCl7dGhpcy5fdXBkYXRlR3JpZFNlY3Rpb25Gb2N1c1RhcmdldCh0aGlzLl9oZWFkZXJGb2N1c2FibGUpLHRoaXMuX3VwZGF0ZUdyaWRTZWN0aW9uRm9jdXNUYXJnZXQodGhpcy5faXRlbXNGb2N1c2FibGUpLHRoaXMuX3VwZGF0ZUdyaWRTZWN0aW9uRm9jdXNUYXJnZXQodGhpcy5fZm9vdGVyRm9jdXNhYmxlKX1fb25LZXlEb3duKHQpe2NvbnN0IGU9dC5rZXk7bGV0IG47c3dpdGNoKGUpe2Nhc2UiQXJyb3dVcCI6Y2FzZSJBcnJvd0Rvd24iOmNhc2UiQXJyb3dMZWZ0IjpjYXNlIkFycm93UmlnaHQiOmNhc2UiUGFnZVVwIjpjYXNlIlBhZ2VEb3duIjpjYXNlIkhvbWUiOmNhc2UiRW5kIjpuPSJOYXZpZ2F0aW9uIjticmVhaztjYXNlIkVudGVyIjpjYXNlIkVzY2FwZSI6Y2FzZSJGMiI6bj0iSW50ZXJhY3Rpb24iO2JyZWFrO2Nhc2UiVGFiIjpuPSJUYWIiO2JyZWFrO2Nhc2UiICI6bj0iU3BhY2UifXRoaXMuX2RldGVjdEludGVyYWN0aW5nKHQpLHRoaXMuaW50ZXJhY3RpbmcmJiJJbnRlcmFjdGlvbiIhPT1uJiYobj12b2lkIDApLG4mJnRoaXNbYF9vbiR7bn1LZXlEb3duYF0odCxlKX1fZW5zdXJlU2Nyb2xsZWRUb0luZGV4KHQpe0FycmF5LmZyb20odGhpcy4kLml0ZW1zLmNoaWxkcmVuKS5maWx0ZXIoKGU9PmUuaW5kZXg9PT10KSlbMF18fHRoaXMuX3Njcm9sbFRvSW5kZXgodCl9X29uTmF2aWdhdGlvbktleURvd24odCxlKXtmdW5jdGlvbiBuKHQpe3JldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHQucGFyZW50Tm9kZS5jaGlsZHJlbix0KX10aGlzLl9zY3JvbGxIYW5kbGVyKCksdC5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IGk9dGhpcy5fbGFzdFZpc2libGVJbmRleC10aGlzLl9maXJzdFZpc2libGVJbmRleC0xO2xldCByPTAsbz0wO3N3aXRjaChlKXtjYXNlIkFycm93UmlnaHQiOnI9dGhpcy5fX2lzUlRMPy0xOjE7YnJlYWs7Y2FzZSJBcnJvd0xlZnQiOnI9dGhpcy5fX2lzUlRMPzE6LTE7YnJlYWs7Y2FzZSJIb21lIjpyPS0xLzAsdC5jdHJsS2V5JiYobz0tMS8wKTticmVhaztjYXNlIkVuZCI6cj0xLzAsdC5jdHJsS2V5JiYobz0xLzApO2JyZWFrO2Nhc2UiQXJyb3dEb3duIjpvPTE7YnJlYWs7Y2FzZSJBcnJvd1VwIjpvPS0xO2JyZWFrO2Nhc2UiUGFnZURvd24iOm89aTticmVhaztjYXNlIlBhZ2VVcCI6bz0taX1jb25zdCBhPXQuY29tcG9zZWRQYXRoKClbMF0scz1uKGEpLGw9dGhpcy5fZWxlbWVudE1hdGNoZXMoYSwnW3BhcnR+PSJkZXRhaWxzLWNlbGwiXScpLGM9YS5wYXJlbnROb2RlLHU9Yy5wYXJlbnROb2RlLGg9KHU9PT10aGlzLiQuaXRlbXM/dGhpcy5fZWZmZWN0aXZlU2l6ZTp1LmNoaWxkcmVuLmxlbmd0aCktMSxkPXU9PT10aGlzLiQuaXRlbXM/dm9pZCAwIT09dGhpcy5fZm9jdXNlZEl0ZW1JbmRleD90aGlzLl9mb2N1c2VkSXRlbUluZGV4OmMuaW5kZXg6bihjKTtsZXQgcD1NYXRoLm1heCgwLE1hdGgubWluKGQrbyxoKSksZj0hMTtpZih1PT09dGhpcy4kLml0ZW1zKXtjb25zdCB0PWMuX2l0ZW0sZT10aGlzLl9jYWNoZS5nZXRJdGVtRm9ySW5kZXgocCk7Zj1sPzA9PT1vOjE9PT1vJiZ0aGlzLl9pc0RldGFpbHNPcGVuZWQodCl8fC0xPT09byYmcCE9PWQmJnRoaXMuX2lzRGV0YWlsc09wZW5lZChlKSxmIT09bCYmKDE9PT1vJiZmfHwtMT09PW8mJiFmKSYmKHA9ZCl9aWYodSE9PXRoaXMuJC5pdGVtcylpZihwPmQpZm9yKDtwPGgmJnUuY2hpbGRyZW5bcF0uaGlkZGVuOylwKys7ZWxzZSBpZihwPGQpZm9yKDtwPjAmJnUuY2hpbGRyZW5bcF0uaGlkZGVuOylwLS07dm9pZCAwPT09dGhpcy5fZm9jdXNlZENvbHVtbk9yZGVyJiYodGhpcy5fZm9jdXNlZENvbHVtbk9yZGVyPWw/MDp0aGlzLl9nZXRDb2x1bW5zKHUsZCkuZmlsdGVyKCh0PT4hdC5oaWRkZW4pKVtzXS5fb3JkZXIpO2NvbnN0IG09dGhpcy5fZ2V0Q29sdW1ucyh1LHApLmZpbHRlcigodD0+IXQuaGlkZGVuKSksZz1tLm1hcCgodD0+dC5fb3JkZXIpKS5zb3J0KCgodCxlKT0+dC1lKSksXz1nLmxlbmd0aC0xLHk9Zy5pbmRleE9mKGcuc2xpY2UoMCkuc29ydCgoKHQsZSk9Pk1hdGguYWJzKHQtdGhpcy5fZm9jdXNlZENvbHVtbk9yZGVyKS1NYXRoLmFicyhlLXRoaXMuX2ZvY3VzZWRDb2x1bW5PcmRlcikpKVswXSksdj0wPT09byYmbD95Ok1hdGgubWF4KDAsTWF0aC5taW4oeStyLF8pKTt2IT09eSYmKHRoaXMuX2ZvY3VzZWRDb2x1bW5PcmRlcj12b2lkIDApLHU9PT10aGlzLiQuaXRlbXMmJnRoaXMuX2Vuc3VyZVNjcm9sbGVkVG9JbmRleChwKSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoIm5hdmlnYXRpbmciLCEwLHRoaXMpO2NvbnN0IGI9bS5yZWR1Y2UoKCh0LGUsbik9Pih0W2UuX29yZGVyXT1uLHQpKSx7fSlbZ1t2XV0seD11PT09dGhpcy4kLml0ZW1zP0FycmF5LmZyb20odS5jaGlsZHJlbikuZmlsdGVyKCh0PT50LmluZGV4PT09cCkpWzBdOnUuY2hpbGRyZW5bcF07aWYoIXgpcmV0dXJuO2NvbnN0IHc9Zj9BcnJheS5mcm9tKHguY2hpbGRyZW4pLmZpbHRlcigodD0+dGhpcy5fZWxlbWVudE1hdGNoZXModCwnW3BhcnR+PSJkZXRhaWxzLWNlbGwiXScpKSlbMF06eC5jaGlsZHJlbltiXTtpZih0aGlzLl9zY3JvbGxIb3Jpem9udGFsbHlUb0NlbGwodyksdT09PXRoaXMuJC5pdGVtcyYmKHRoaXMuX2ZvY3VzZWRJdGVtSW5kZXg9cCksdT09PXRoaXMuJC5pdGVtcyl7Y29uc3QgdD13LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGU9dGhpcy4kLmZvb3Rlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3Asbj10aGlzLiQuaGVhZGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbTt0LmJvdHRvbT5lPyh0aGlzLiQudGFibGUuc2Nyb2xsVG9wKz10LmJvdHRvbS1lLHRoaXMuX3Njcm9sbEhhbmRsZXIoKSk6dC50b3A8biYmKHRoaXMuJC50YWJsZS5zY3JvbGxUb3AtPW4tdC50b3AsdGhpcy5fc2Nyb2xsSGFuZGxlcigpKX13LmZvY3VzKCl9X29uSW50ZXJhY3Rpb25LZXlEb3duKHQsZSl7Y29uc3Qgbj10LmNvbXBvc2VkUGF0aCgpWzBdLGk9ImlucHV0Ij09PW4ubG9jYWxOYW1lJiYhL14oYnV0dG9ufGNoZWNrYm94fGNvbG9yfGZpbGV8aW1hZ2V8cmFkaW98cmFuZ2V8cmVzZXR8c3VibWl0KSQvaS50ZXN0KG4udHlwZSk7bGV0IHI7c3dpdGNoKGUpe2Nhc2UiRW50ZXIiOnI9IXRoaXMuaW50ZXJhY3Rpbmd8fCFpO2JyZWFrO2Nhc2UiRXNjYXBlIjpyPSExO2JyZWFrO2Nhc2UiRjIiOnI9IXRoaXMuaW50ZXJhY3Rpbmd9Y29uc3R7Y2VsbDpvfT10aGlzLl9nZXRHcmlkRXZlbnRMb2NhdGlvbih0KTtpZih0aGlzLmludGVyYWN0aW5nIT09ciYmbnVsbCE9PW8paWYocil7Y29uc3QgZT1vLl9jb250ZW50LnF1ZXJ5U2VsZWN0b3IoIltmb2N1cy10YXJnZXRdIil8fG8uX2NvbnRlbnQuZmlyc3RFbGVtZW50Q2hpbGQ7ZSYmKHQucHJldmVudERlZmF1bHQoKSxlLmZvY3VzKCksdGhpcy5fc2V0SW50ZXJhY3RpbmcoITApLHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgibmF2aWdhdGluZyIsITEsdGhpcykpfWVsc2UgdC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2ZvY3VzZWRDb2x1bW5PcmRlcj12b2lkIDAsby5mb2N1cygpLHRoaXMuX3NldEludGVyYWN0aW5nKCExKSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoIm5hdmlnYXRpbmciLCEwLHRoaXMpfV9wcmVkaWN0Rm9jdXNTdGVwVGFyZ2V0KHQsZSl7Y29uc3Qgbj1bdGhpcy4kLnRhYmxlLHRoaXMuX2hlYWRlckZvY3VzYWJsZSx0aGlzLl9pdGVtc0ZvY3VzYWJsZSx0aGlzLl9mb290ZXJGb2N1c2FibGUsdGhpcy4kLmZvY3VzZXhpdF07bGV0IGk9bi5pbmRleE9mKHQpO2ZvcihpKz1lO2k+PTAmJmk8PW4ubGVuZ3RoLTEmJighbltpXXx8bltpXS5wYXJlbnROb2RlLmhpZGRlbik7KWkrPWU7cmV0dXJuIG5baV19X29uVGFiS2V5RG93bih0KXtjb25zdCBlPXRoaXMuX3ByZWRpY3RGb2N1c1N0ZXBUYXJnZXQodC5jb21wb3NlZFBhdGgoKVswXSx0LnNoaWZ0S2V5Py0xOjEpO2lmKGU9PT10aGlzLiQudGFibGUpdGhpcy4kLnRhYmxlLmZvY3VzKCk7ZWxzZSBpZihlPT09dGhpcy4kLmZvY3VzZXhpdCl0aGlzLiQuZm9jdXNleGl0LmZvY3VzKCk7ZWxzZSBpZihlPT09dGhpcy5faXRlbXNGb2N1c2FibGUpe2xldCBuPWU7Y29uc3QgaT10aGlzLl9pdGVtc0ZvY3VzYWJsZS5wYXJlbnROb2RlO2lmKHRoaXMuX2Vuc3VyZVNjcm9sbGVkVG9JbmRleCh0aGlzLl9mb2N1c2VkSXRlbUluZGV4KSxpLmluZGV4IT09dGhpcy5fZm9jdXNlZEl0ZW1JbmRleCl7Y29uc3QgdD1BcnJheS5mcm9tKGkuY2hpbGRyZW4pLmluZGV4T2YodGhpcy5faXRlbXNGb2N1c2FibGUpLGU9QXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZpbHRlcigodD0+dC5pbmRleD09PXRoaXMuX2ZvY3VzZWRJdGVtSW5kZXgpKVswXTtlJiYobj1lLmNoaWxkcmVuW3RdKX10LnByZXZlbnREZWZhdWx0KCksbi5mb2N1cygpfWVsc2UgdC5wcmV2ZW50RGVmYXVsdCgpLGUuZm9jdXMoKTt0aGlzLl90b2dnbGVBdHRyaWJ1dGUoIm5hdmlnYXRpbmciLCEwLHRoaXMpfV9vblNwYWNlS2V5RG93bih0KXt0LnByZXZlbnREZWZhdWx0KCk7Y29uc3QgZT10LmNvbXBvc2VkUGF0aCgpWzBdO2UuX2NvbnRlbnQmJmUuX2NvbnRlbnQuZmlyc3RFbGVtZW50Q2hpbGR8fHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNlbGwtYWN0aXZhdGUiLHtkZXRhaWw6e21vZGVsOnRoaXMuX19nZXRSb3dNb2RlbChlLnBhcmVudEVsZW1lbnQpfX0pKX1fb25LZXlVcCh0KXtpZighL14oIHxTcGFjZUJhcikkLy50ZXN0KHQua2V5KSlyZXR1cm47dC5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IGU9dC5jb21wb3NlZFBhdGgoKVswXTtpZihlLl9jb250ZW50JiZlLl9jb250ZW50LmZpcnN0RWxlbWVudENoaWxkKXtjb25zdCB0PXRoaXMuaGFzQXR0cmlidXRlKCJuYXZpZ2F0aW5nIik7ZS5fY29udGVudC5maXJzdEVsZW1lbnRDaGlsZC5jbGljaygpLHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgibmF2aWdhdGluZyIsdCx0aGlzKX19X29uRm9jdXNJbih0KXt0aGlzLl9pc01vdXNlZG93bnx8dGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJuYXZpZ2F0aW5nIiwhMCx0aGlzKTtjb25zdCBlPXQuY29tcG9zZWRQYXRoKClbMF07ZT09PXRoaXMuJC50YWJsZXx8ZT09PXRoaXMuJC5mb2N1c2V4aXQ/KHRoaXMuX3ByZWRpY3RGb2N1c1N0ZXBUYXJnZXQoZSxlPT09dGhpcy4kLnRhYmxlPzE6LTEpLmZvY3VzKCksdGhpcy5fc2V0SW50ZXJhY3RpbmcoITEpKTp0aGlzLl9kZXRlY3RJbnRlcmFjdGluZyh0KX1fb25Gb2N1c091dCh0KXt0aGlzLl90b2dnbGVBdHRyaWJ1dGUoIm5hdmlnYXRpbmciLCExLHRoaXMpLHRoaXMuX2RldGVjdEludGVyYWN0aW5nKHQpfV9vbkNlbGxGb2N1c0luKHQpe2NvbnN0e3NlY3Rpb246ZSxjZWxsOm59PXRoaXMuX2dldEdyaWRFdmVudExvY2F0aW9uKHQpO3RoaXMuX2RldGVjdEludGVyYWN0aW5nKHQpLGUmJm4mJih0aGlzLl9hY3RpdmVSb3dHcm91cD1lLHRoaXMuJC5oZWFkZXI9PT1lP3RoaXMuX2hlYWRlckZvY3VzYWJsZT1uOnRoaXMuJC5pdGVtcz09PWU/dGhpcy5faXRlbXNGb2N1c2FibGU9bjp0aGlzLiQuZm9vdGVyPT09ZSYmKHRoaXMuX2Zvb3RlckZvY3VzYWJsZT1uKSxuLl9jb250ZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjZWxsLWZvY3VzaW4iLHtidWJibGVzOiExfSkpLG4uZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNlbGwtZm9jdXMiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKSx0aGlzLl9kZXRlY3RGb2N1c2VkSXRlbUluZGV4KHQpfV9vbkNlbGxGb2N1c091dCh0KXtpZigzPT09dC5jb21wb3NlZFBhdGgoKS5pbmRleE9mKHRoaXMuJC50YWJsZSkpe3QuY29tcG9zZWRQYXRoKClbMF0uX2NvbnRlbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNlbGwtZm9jdXNvdXQiLHtidWJibGVzOiExfSkpfX1fZGV0ZWN0SW50ZXJhY3RpbmcodCl7Y29uc3QgZT10LmNvbXBvc2VkUGF0aCgpLnNvbWUoKHQ9PiJ2YWFkaW4tZ3JpZC1jZWxsLWNvbnRlbnQiPT09dC5sb2NhbE5hbWUpKTt0aGlzLl9zZXRJbnRlcmFjdGluZyhlKX1fZGV0ZWN0Rm9jdXNlZEl0ZW1JbmRleCh0KXtjb25zdHtzZWN0aW9uOmUscm93Om59PXRoaXMuX2dldEdyaWRFdmVudExvY2F0aW9uKHQpO2U9PT10aGlzLiQuaXRlbXMmJih0aGlzLl9mb2N1c2VkSXRlbUluZGV4PW4uaW5kZXgpfV91cGRhdGVHcmlkU2VjdGlvbkZvY3VzVGFyZ2V0KHQpe2lmKCF0KXJldHVybjtjb25zdCBlPXRoaXMuX2dldEdyaWRTZWN0aW9uRnJvbUZvY3VzVGFyZ2V0KHQpO3QudGFiSW5kZXg9dGhpcy5pbnRlcmFjdGluZyYmZT09PXRoaXMuX2FjdGl2ZVJvd0dyb3VwPy0xOjB9X3ByZXZlbnRTY3JvbGxlclJvdGF0aW5nQ2VsbEZvY3VzKHQsZSl7dC5pbmRleD09PXRoaXMuX2ZvY3VzZWRJdGVtSW5kZXgmJnRoaXMuaGFzQXR0cmlidXRlKCJuYXZpZ2F0aW5nIikmJnRoaXMuX2FjdGl2ZVJvd0dyb3VwPT09dGhpcy4kLml0ZW1zJiYodGhpcy5fbmF2aWdhdGluZ0lzSGlkZGVuPSEwLHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgibmF2aWdhdGluZyIsITEsdGhpcykpLGU9PT10aGlzLl9mb2N1c2VkSXRlbUluZGV4JiZ0aGlzLl9uYXZpZ2F0aW5nSXNIaWRkZW4mJih0aGlzLl9uYXZpZ2F0aW5nSXNIaWRkZW49ITEsdGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJuYXZpZ2F0aW5nIiwhMCx0aGlzKSl9X2dldENvbHVtbnModCxlKXtsZXQgbj10aGlzLl9jb2x1bW5UcmVlLmxlbmd0aC0xO3JldHVybiB0PT09dGhpcy4kLmhlYWRlcj9uPWU6dD09PXRoaXMuJC5mb290ZXImJihuPXRoaXMuX2NvbHVtblRyZWUubGVuZ3RoLTEtZSksdGhpcy5fY29sdW1uVHJlZVtuXX1fcmVzZXRLZXlib2FyZE5hdmlnYXRpb24oKXtpZih0aGlzLiQuaGVhZGVyLmZpcnN0RWxlbWVudENoaWxkJiYodGhpcy5faGVhZGVyRm9jdXNhYmxlPUFycmF5LmZyb20odGhpcy4kLmhlYWRlci5maXJzdEVsZW1lbnRDaGlsZC5jaGlsZHJlbikuZmlsdGVyKCh0PT4hdC5oaWRkZW4pKVswXSksdGhpcy4kLml0ZW1zLmZpcnN0RWxlbWVudENoaWxkKXtjb25zdCB0PXRoaXMuX2l0ZXJhdGVJdGVtcygoKHQsZSk9PntpZih0aGlzLl9maXJzdFZpc2libGVJbmRleD09PWUpcmV0dXJuIHRoaXMuJC5pdGVtcy5jaGlsZHJlblt0XX0pKTt0JiYodGhpcy5faXRlbXNGb2N1c2FibGU9QXJyYXkuZnJvbSh0LmNoaWxkcmVuKS5maWx0ZXIoKHQ9PiF0LmhpZGRlbikpWzBdKX10aGlzLiQuZm9vdGVyLmZpcnN0RWxlbWVudENoaWxkJiYodGhpcy5fZm9vdGVyRm9jdXNhYmxlPUFycmF5LmZyb20odGhpcy4kLmZvb3Rlci5maXJzdEVsZW1lbnRDaGlsZC5jaGlsZHJlbikuZmlsdGVyKCh0PT4hdC5oaWRkZW4pKVswXSl9X3Njcm9sbEhvcml6b250YWxseVRvQ2VsbCh0KXtpZih0Lmhhc0F0dHJpYnV0ZSgiZnJvemVuIil8fHRoaXMuX2VsZW1lbnRNYXRjaGVzKHQsJ1twYXJ0fj0iZGV0YWlscy1jZWxsIl0nKSlyZXR1cm47Y29uc3QgZT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49dC5wYXJlbnROb2RlLGk9QXJyYXkuZnJvbShuLmNoaWxkcmVuKS5pbmRleE9mKHQpLHI9dGhpcy4kLnRhYmxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2xldCBvPXIubGVmdCxhPXIucmlnaHQ7Zm9yKGxldCB0PWktMTt0Pj0wO3QtLSl7Y29uc3QgZT1uLmNoaWxkcmVuW3RdO2lmKCFlLmhhc0F0dHJpYnV0ZSgiaGlkZGVuIikmJiF0aGlzLl9lbGVtZW50TWF0Y2hlcyhlLCdbcGFydH49ImRldGFpbHMtY2VsbCJdJykmJmUuaGFzQXR0cmlidXRlKCJmcm96ZW4iKSl7bz1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0O2JyZWFrfX1mb3IobGV0IHQ9aSsxO3Q8bi5jaGlsZHJlbi5sZW5ndGg7dCsrKXtjb25zdCBlPW4uY2hpbGRyZW5bdF07aWYoIWUuaGFzQXR0cmlidXRlKCJoaWRkZW4iKSYmIXRoaXMuX2VsZW1lbnRNYXRjaGVzKGUsJ1twYXJ0fj0iZGV0YWlscy1jZWxsIl0nKSYmZS5oYXNBdHRyaWJ1dGUoImZyb3plbiIpKXthPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdDticmVha319ZS5sZWZ0PG8mJih0aGlzLiQudGFibGUuc2Nyb2xsTGVmdCs9TWF0aC5yb3VuZChlLmxlZnQtbykpLGUucmlnaHQ+YSYmKHRoaXMuJC50YWJsZS5zY3JvbGxMZWZ0Kz1NYXRoLnJvdW5kKGUucmlnaHQtYSkpfV9lbGVtZW50TWF0Y2hlcyh0LGUpe3JldHVybiB0Lm1hdGNoZXM/dC5tYXRjaGVzKGUpOi0xIT09QXJyYXkuZnJvbSh0LnBhcmVudE5vZGUucXVlcnlTZWxlY3RvckFsbChlKSkuaW5kZXhPZih0KX1fZ2V0R3JpZEV2ZW50TG9jYXRpb24odCl7Y29uc3QgZT10LmNvbXBvc2VkUGF0aCgpLG49ZS5pbmRleE9mKHRoaXMuJC50YWJsZSk7cmV0dXJue3NlY3Rpb246bj49MT9lW24tMV06bnVsbCxyb3c6bj49Mj9lW24tMl06bnVsbCxjZWxsOm4+PTM/ZVtuLTNdOm51bGx9fV9nZXRHcmlkU2VjdGlvbkZyb21Gb2N1c1RhcmdldCh0KXtyZXR1cm4gdD09PXRoaXMuX2hlYWRlckZvY3VzYWJsZT90aGlzLiQuaGVhZGVyOnQ9PT10aGlzLl9pdGVtc0ZvY3VzYWJsZT90aGlzLiQuaXRlbXM6dD09PXRoaXMuX2Zvb3RlckZvY3VzYWJsZT90aGlzLiQuZm9vdGVyOm51bGx9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLzsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi8KY29uc3QgdTB0PXQ9PmNsYXNzIGV4dGVuZHMoYmkodCkpe3N0YXRpYyBnZXQgcHJvcGVydGllcygpe3JldHVybntjb2x1bW5SZW9yZGVyaW5nQWxsb3dlZDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxfb3JkZXJCYXNlU2NvcGU6e3R5cGU6TnVtYmVyLHZhbHVlOjFlN319fXN0YXRpYyBnZXQgb2JzZXJ2ZXJzKCl7cmV0dXJuWyJfdXBkYXRlT3JkZXJzKF9jb2x1bW5UcmVlLCBfY29sdW1uVHJlZS4qKSJdfXJlYWR5KCl7c3VwZXIucmVhZHkoKSxjaSh0aGlzLCJ0cmFjayIsdGhpcy5fb25UcmFja0V2ZW50KSx0aGlzLl9yZW9yZGVyR2hvc3Q9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ1twYXJ0PSJyZW9yZGVyLWdob3N0Il0nKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuX29uVG91Y2hTdGFydC5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5fb25Ub3VjaE1vdmUuYmluZCh0aGlzKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5fb25Ub3VjaEVuZC5iaW5kKHRoaXMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzLl9vbkNvbnRleHRNZW51LmJpbmQodGhpcykpfV9vbkNvbnRleHRNZW51KHQpe3RoaXMuaGFzQXR0cmlidXRlKCJyZW9yZGVyaW5nIikmJnQucHJldmVudERlZmF1bHQoKX1fb25Ub3VjaFN0YXJ0KHQpe3RoaXMuX3N0YXJ0VG91Y2hSZW9yZGVyVGltZW91dD1zZXRUaW1lb3V0KCgoKT0+e3RoaXMuX29uVHJhY2tTdGFydCh7ZGV0YWlsOnt4OnQudG91Y2hlc1swXS5jbGllbnRYLHk6dC50b3VjaGVzWzBdLmNsaWVudFl9fSl9KSwxMDApfV9vblRvdWNoTW92ZSh0KXt0aGlzLl9kcmFnZ2VkQ29sdW1uJiZ0LnByZXZlbnREZWZhdWx0KCksY2xlYXJUaW1lb3V0KHRoaXMuX3N0YXJ0VG91Y2hSZW9yZGVyVGltZW91dCl9X29uVG91Y2hFbmQoKXtjbGVhclRpbWVvdXQodGhpcy5fc3RhcnRUb3VjaFJlb3JkZXJUaW1lb3V0KSx0aGlzLl9vblRyYWNrRW5kKCl9X29uVHJhY2tFdmVudCh0KXtpZigic3RhcnQiPT09dC5kZXRhaWwuc3RhdGUpe2NvbnN0IGU9dC5jb21wb3NlZFBhdGgoKSxuPWVbZS5pbmRleE9mKHRoaXMuJC5oZWFkZXIpLTJdO2lmKCFufHwhbi5fY29udGVudClyZXR1cm47aWYobi5fY29udGVudC5jb250YWlucyh0aGlzLmdldFJvb3ROb2RlKCkuYWN0aXZlRWxlbWVudCkpcmV0dXJuO2lmKHRoaXMuJC5zY3JvbGxlci5oYXNBdHRyaWJ1dGUoImNvbHVtbi1yZXNpemluZyIpKXJldHVybjt0aGlzLl90b3VjaERldmljZXx8dGhpcy5fb25UcmFja1N0YXJ0KHQpfWVsc2UidHJhY2siPT09dC5kZXRhaWwuc3RhdGU/dGhpcy5fb25UcmFjayh0KToiZW5kIj09PXQuZGV0YWlsLnN0YXRlJiZ0aGlzLl9vblRyYWNrRW5kKHQpfV9vblRyYWNrU3RhcnQodCl7aWYoIXRoaXMuY29sdW1uUmVvcmRlcmluZ0FsbG93ZWQpcmV0dXJuO2NvbnN0IGU9dC5jb21wb3NlZFBhdGgmJnQuY29tcG9zZWRQYXRoKCk7aWYoZSYmZS5maWx0ZXIoKHQ9PnQuaGFzQXR0cmlidXRlJiZ0Lmhhc0F0dHJpYnV0ZSgiZHJhZ2dhYmxlIikpKVswXSlyZXR1cm47Y29uc3Qgbj10aGlzLl9jZWxsRnJvbVBvaW50KHQuZGV0YWlsLngsdC5kZXRhaWwueSk7aWYobiYmLTEhPT1uLmdldEF0dHJpYnV0ZSgicGFydCIpLmluZGV4T2YoImhlYWRlci1jZWxsIikpe2Zvcih0aGlzLl90b2dnbGVBdHRyaWJ1dGUoInJlb3JkZXJpbmciLCEwLHRoaXMpLHRoaXMuX2RyYWdnZWRDb2x1bW49bi5fY29sdW1uOzE9PT10aGlzLl9kcmFnZ2VkQ29sdW1uLnBhcmVudEVsZW1lbnQuY2hpbGRFbGVtZW50Q291bnQ7KXRoaXMuX2RyYWdnZWRDb2x1bW49dGhpcy5fZHJhZ2dlZENvbHVtbi5wYXJlbnRFbGVtZW50O3RoaXMuX3NldFNpYmxpbmdzUmVvcmRlclN0YXR1cyh0aGlzLl9kcmFnZ2VkQ29sdW1uLCJhbGxvd2VkIiksdGhpcy5fZHJhZ2dlZENvbHVtbi5fcmVvcmRlclN0YXR1cz0iZHJhZ2dpbmciLHRoaXMuX3VwZGF0ZUdob3N0KG4pLHRoaXMuX3Jlb3JkZXJHaG9zdC5zdHlsZS52aXNpYmlsaXR5PSJ2aXNpYmxlIix0aGlzLl91cGRhdGVHaG9zdFBvc2l0aW9uKHQuZGV0YWlsLngsdGhpcy5fdG91Y2hEZXZpY2U/dC5kZXRhaWwueS01MDp0LmRldGFpbC55KSx0aGlzLl9hdXRvU2Nyb2xsZXIoKX19X29uVHJhY2sodCl7aWYoIXRoaXMuX2RyYWdnZWRDb2x1bW4pcmV0dXJuO2NvbnN0IGU9dGhpcy5fY2VsbEZyb21Qb2ludCh0LmRldGFpbC54LHQuZGV0YWlsLnkpO2lmKCFlKXJldHVybjtjb25zdCBuPXRoaXMuX2dldFRhcmdldENvbHVtbihlLHRoaXMuX2RyYWdnZWRDb2x1bW4pO3RoaXMuX2lzU3dhcEFsbG93ZWQodGhpcy5fZHJhZ2dlZENvbHVtbixuKSYmdGhpcy5faXNTd2FwcGFibGVCeVBvc2l0aW9uKG4sdC5kZXRhaWwueCkmJnRoaXMuX3N3YXBDb2x1bW5PcmRlcnModGhpcy5fZHJhZ2dlZENvbHVtbixuKSx0aGlzLl91cGRhdGVHaG9zdFBvc2l0aW9uKHQuZGV0YWlsLngsdGhpcy5fdG91Y2hEZXZpY2U/dC5kZXRhaWwueS01MDp0LmRldGFpbC55KSx0aGlzLl9sYXN0RHJhZ0NsaWVudFg9dC5kZXRhaWwueH1fb25UcmFja0VuZCgpe3RoaXMuX2RyYWdnZWRDb2x1bW4mJih0aGlzLl90b2dnbGVBdHRyaWJ1dGUoInJlb3JkZXJpbmciLCExLHRoaXMpLHRoaXMuX2RyYWdnZWRDb2x1bW4uX3Jlb3JkZXJTdGF0dXM9IiIsdGhpcy5fc2V0U2libGluZ3NSZW9yZGVyU3RhdHVzKHRoaXMuX2RyYWdnZWRDb2x1bW4sIiIpLHRoaXMuX2RyYWdnZWRDb2x1bW49bnVsbCx0aGlzLl9sYXN0RHJhZ0NsaWVudFg9bnVsbCx0aGlzLl9yZW9yZGVyR2hvc3Quc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb2x1bW4tcmVvcmRlciIse2RldGFpbDp7Y29sdW1uczp0aGlzLl9nZXRDb2x1bW5zSW5PcmRlcigpfX0pKSl9X2dldENvbHVtbnNJbk9yZGVyKCl7cmV0dXJuIHRoaXMuX2NvbHVtblRyZWUuc2xpY2UoMCkucG9wKCkuZmlsdGVyKCh0PT4hdC5oaWRkZW4pKS5zb3J0KCgodCxlKT0+dC5fb3JkZXItZS5fb3JkZXIpKX1fY2VsbEZyb21Qb2ludCh0LGUpe3Q9dHx8MCxlPWV8fDAsdGhpcy5fZHJhZ2dlZENvbHVtbnx8dGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJuby1jb250ZW50LXBvaW50ZXItZXZlbnRzIiwhMCx0aGlzLiQuc2Nyb2xsZXIpO2NvbnN0IG49dGhpcy5zaGFkb3dSb290LmVsZW1lbnRGcm9tUG9pbnQodCxlKTtpZih0aGlzLl90b2dnbGVBdHRyaWJ1dGUoIm5vLWNvbnRlbnQtcG9pbnRlci1ldmVudHMiLCExLHRoaXMuJC5zY3JvbGxlciksbiYmbi5fY29sdW1uKXJldHVybiBufV91cGRhdGVHaG9zdFBvc2l0aW9uKHQsZSl7Y29uc3Qgbj10aGlzLl9yZW9yZGVyR2hvc3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaT10LW4ud2lkdGgvMixyPWUtbi5oZWlnaHQvMixvPXBhcnNlSW50KHRoaXMuX3Jlb3JkZXJHaG9zdC5fbGVmdHx8MCksYT1wYXJzZUludCh0aGlzLl9yZW9yZGVyR2hvc3QuX3RvcHx8MCk7dGhpcy5fcmVvcmRlckdob3N0Ll9sZWZ0PW8tKG4ubGVmdC1pKSx0aGlzLl9yZW9yZGVyR2hvc3QuX3RvcD1hLShuLnRvcC1yKSx0aGlzLl9yZW9yZGVyR2hvc3Quc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGUoJHt0aGlzLl9yZW9yZGVyR2hvc3QuX2xlZnR9cHgsICR7dGhpcy5fcmVvcmRlckdob3N0Ll90b3B9cHgpYH1fdXBkYXRlR2hvc3QodCl7Y29uc3QgZT10aGlzLl9yZW9yZGVyR2hvc3Q7ZS50ZXh0Q29udGVudD10Ll9jb250ZW50LmlubmVyVGV4dDtjb25zdCBuPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpO3JldHVyblsiYm94U2l6aW5nIiwiZGlzcGxheSIsIndpZHRoIiwiaGVpZ2h0IiwiYmFja2dyb3VuZCIsImFsaWduSXRlbXMiLCJwYWRkaW5nIiwiYm9yZGVyIiwiZmxleC1kaXJlY3Rpb24iLCJvdmVyZmxvdyJdLmZvckVhY2goKHQ9PmUuc3R5bGVbdF09blt0XSkpLGV9X3VwZGF0ZU9yZGVycyh0LGUpe3ZvaWQgMCE9PXQmJnZvaWQgMCE9PWUmJih0WzBdLmZvckVhY2goKHQ9PnQuX29yZGVyPTApKSwoZnVuY3Rpb24gbih0LGUsaSl7bGV0IHI9MTt0LmZvckVhY2goKHQ9PntyJTEwPT0wJiZyKyssdC5fb3JkZXI9aStyKmUscisrfSkpfSkodFswXSx0aGlzLl9vcmRlckJhc2VTY29wZSwwKSl9X3NldFNpYmxpbmdzUmVvcmRlclN0YXR1cyh0LGUpe0FycmF5LmZyb20odC5wYXJlbnROb2RlLmNoaWxkcmVuKS5maWx0ZXIoKGU9Pi9jb2x1bW4vLnRlc3QoZS5sb2NhbE5hbWUpJiZ0aGlzLl9pc1N3YXBBbGxvd2VkKGUsdCkpKS5mb3JFYWNoKCh0PT50Ll9yZW9yZGVyU3RhdHVzPWUpKX1fYXV0b1Njcm9sbGVyKCl7aWYodGhpcy5fbGFzdERyYWdDbGllbnRYKXtjb25zdCB0PXRoaXMuX2xhc3REcmFnQ2xpZW50WC10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0KzUwLGU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0LXRoaXMuX2xhc3REcmFnQ2xpZW50WCs1MDt0PjA/dGhpcy4kLnRhYmxlLnNjcm9sbExlZnQrPXQvMTA6ZT4wJiYodGhpcy4kLnRhYmxlLnNjcm9sbExlZnQtPWUvMTApLHRoaXMuX3Njcm9sbEhhbmRsZXIoKX10aGlzLl9kcmFnZ2VkQ29sdW1uJiZ0aGlzLmFzeW5jKHRoaXMuX2F1dG9TY3JvbGxlciwxMCl9X2lzU3dhcEFsbG93ZWQodCxlKXtpZih0JiZlKXtjb25zdCBuPXQucGFyZW50RWxlbWVudD09PWUucGFyZW50RWxlbWVudCxpPXQuZnJvemVuPT09ZS5mcm96ZW47cmV0dXJuIHQhPT1lJiZuJiZpfX1faXNTd2FwcGFibGVCeVBvc2l0aW9uKHQsZSl7Y29uc3Qgbj1BcnJheS5mcm9tKHRoaXMuJC5oZWFkZXIucXVlcnlTZWxlY3RvckFsbCgndHI6bm90KFtoaWRkZW5dKSBbcGFydH49ImNlbGwiXScpKS5maWx0ZXIoKGU9PnQuY29udGFpbnMoZS5fY29sdW1uKSkpWzBdLGk9dGhpcy4kLmhlYWRlci5xdWVyeVNlbGVjdG9yKCJ0cjpub3QoW2hpZGRlbl0pIFtyZW9yZGVyLXN0YXR1cz1kcmFnZ2luZ10iKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxyPW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIHIubGVmdD5pLmxlZnQ/ZT5yLnJpZ2h0LWkud2lkdGg6ZTxyLmxlZnQraS53aWR0aH1fc3dhcENvbHVtbk9yZGVycyh0LGUpe2NvbnN0IG49dC5fb3JkZXI7dC5fb3JkZXI9ZS5fb3JkZXIsZS5fb3JkZXI9bix0aGlzLl91cGRhdGVMYXN0RnJvemVuKCksdGhpcy5fdXBkYXRlRmlyc3RBbmRMYXN0Q29sdW1uKCl9X2dldFRhcmdldENvbHVtbih0LGUpe2lmKHQmJmUpe2xldCBuPXQuX2NvbHVtbjtmb3IoO24ucGFyZW50RWxlbWVudCE9PWUucGFyZW50RWxlbWVudCYmbiE9PXRoaXM7KW49bi5wYXJlbnRFbGVtZW50O3JldHVybiBuLnBhcmVudEVsZW1lbnQ9PT1lLnBhcmVudEVsZW1lbnQ/bjp0Ll9jb2x1bW59fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IChjKSAyMDIxIFZhYWRpbiBMdGQuCiAgICAgKiBUaGlzIHByb2dyYW0gaXMgYXZhaWxhYmxlIHVuZGVyIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wLCBhdmFpbGFibGUgYXQgaHR0cHM6Ly92YWFkaW4uY29tL2xpY2Vuc2UvCiAgICAgKi8saDB0PXQ9PmNsYXNzIGV4dGVuZHMgdHtzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57cmVzaXphYmxlOnt0eXBlOkJvb2xlYW4sdmFsdWU6ZnVuY3Rpb24oKXtpZigidmFhZGluLWdyaWQtY29sdW1uLWdyb3VwIj09PXRoaXMubG9jYWxOYW1lKXJldHVybjtjb25zdCB0PXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gdCYmInZhYWRpbi1ncmlkLWNvbHVtbi1ncm91cCI9PT10LmxvY2FsTmFtZSYmdC5yZXNpemFibGV8fCExfX0sX2hlYWRlclRlbXBsYXRlOnt0eXBlOk9iamVjdH0sX2Zvb3RlclRlbXBsYXRlOnt0eXBlOk9iamVjdH0sZnJvemVuOnt0eXBlOkJvb2xlYW4sdmFsdWU6ITF9LGhpZGRlbjp7dHlwZTpCb29sZWFufSxoZWFkZXI6e3R5cGU6U3RyaW5nfSx0ZXh0QWxpZ246e3R5cGU6U3RyaW5nfSxfbGFzdEZyb3plbjp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxfb3JkZXI6TnVtYmVyLF9yZW9yZGVyU3RhdHVzOkJvb2xlYW4sX2VtcHR5Q2VsbHM6QXJyYXksX2hlYWRlckNlbGw6T2JqZWN0LF9mb290ZXJDZWxsOk9iamVjdCxfZ3JpZDpPYmplY3QsaGVhZGVyUmVuZGVyZXI6RnVuY3Rpb24sZm9vdGVyUmVuZGVyZXI6RnVuY3Rpb259fXN0YXRpYyBnZXQgb2JzZXJ2ZXJzKCl7cmV0dXJuWyJfd2lkdGhDaGFuZ2VkKHdpZHRoLCBfaGVhZGVyQ2VsbCwgX2Zvb3RlckNlbGwsIF9jZWxscy4qKSIsIl9mcm96ZW5DaGFuZ2VkKGZyb3plbiwgX2hlYWRlckNlbGwsIF9mb290ZXJDZWxsLCBfY2VsbHMuKikiLCJfZmxleEdyb3dDaGFuZ2VkKGZsZXhHcm93LCBfaGVhZGVyQ2VsbCwgX2Zvb3RlckNlbGwsIF9jZWxscy4qKSIsIl9wYXRoT3JIZWFkZXJDaGFuZ2VkKHBhdGgsIGhlYWRlciwgX2hlYWRlckNlbGwsIF9mb290ZXJDZWxsLCBfY2VsbHMuKiwgcmVuZGVyZXIsIGhlYWRlclJlbmRlcmVyLCBfYm9keVRlbXBsYXRlLCBfaGVhZGVyVGVtcGxhdGUpIiwiX3RleHRBbGlnbkNoYW5nZWQodGV4dEFsaWduLCBfY2VsbHMuKiwgX2hlYWRlckNlbGwsIF9mb290ZXJDZWxsKSIsIl9vcmRlckNoYW5nZWQoX29yZGVyLCBfaGVhZGVyQ2VsbCwgX2Zvb3RlckNlbGwsIF9jZWxscy4qKSIsIl9sYXN0RnJvemVuQ2hhbmdlZChfbGFzdEZyb3plbikiLCJfc2V0Qm9keVRlbXBsYXRlT3JSZW5kZXJlcihfYm9keVRlbXBsYXRlLCByZW5kZXJlciwgX2NlbGxzLCBfY2VsbHMuKikiLCJfc2V0SGVhZGVyVGVtcGxhdGVPclJlbmRlcmVyKF9oZWFkZXJUZW1wbGF0ZSwgaGVhZGVyUmVuZGVyZXIsIF9oZWFkZXJDZWxsKSIsIl9zZXRGb290ZXJUZW1wbGF0ZU9yUmVuZGVyZXIoX2Zvb3RlclRlbXBsYXRlLCBmb290ZXJSZW5kZXJlciwgX2Zvb3RlckNlbGwpIiwiX3Jlc2l6YWJsZUNoYW5nZWQocmVzaXphYmxlLCBfaGVhZGVyQ2VsbCkiLCJfcmVvcmRlclN0YXR1c0NoYW5nZWQoX3Jlb3JkZXJTdGF0dXMsIF9oZWFkZXJDZWxsLCBfZm9vdGVyQ2VsbCwgX2NlbGxzLiopIiwiX2hpZGRlbkNoYW5nZWQoaGlkZGVuLCBfaGVhZGVyQ2VsbCwgX2Zvb3RlckNlbGwsIF9jZWxscy4qKSJdfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl9ib2R5VGVtcGxhdGUmJih0aGlzLl9ib2R5VGVtcGxhdGUudGVtcGxhdGl6ZXIuX2dyaWQ9dGhpcy5fZ3JpZCksdGhpcy5faGVhZGVyVGVtcGxhdGUmJih0aGlzLl9oZWFkZXJUZW1wbGF0ZS50ZW1wbGF0aXplci5fZ3JpZD10aGlzLl9ncmlkKSx0aGlzLl9mb290ZXJUZW1wbGF0ZSYmKHRoaXMuX2Zvb3RlclRlbXBsYXRlLnRlbXBsYXRpemVyLl9ncmlkPXRoaXMuX2dyaWQpLHRoaXMuX3RlbXBsYXRlT2JzZXJ2ZXIuZmx1c2goKSx0aGlzLl9ib2R5VGVtcGxhdGV8fHRoaXMuX3RlbXBsYXRlT2JzZXJ2ZXIuY2FsbGJhY2soKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy5fYWxsQ2VsbHMuZm9yRWFjaCgodD0+e3QuX2NvbnRlbnQucGFyZW50Tm9kZXx8dGhpcy5fZ3JpZCYmdGhpcy5fZ3JpZC5hcHBlbmRDaGlsZCh0Ll9jb250ZW50KX0pKX0pKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e3RoaXMuX2ZpbmRIb3N0R3JpZCgpfHx0aGlzLl9hbGxDZWxscy5mb3JFYWNoKCh0PT57dC5fY29udGVudC5wYXJlbnROb2RlJiZ0Ll9jb250ZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodC5fY29udGVudCl9KSl9KSksdGhpcy5fZ3JpZFZhbHVlPXZvaWQgMH1fZmluZEhvc3RHcmlkKCl7bGV0IHQ9dGhpcztmb3IoO3QmJiEvXnZhYWRpbi4qZ3JpZCgtcHJvKT8kLy50ZXN0KHQubG9jYWxOYW1lKTspdD10LmFzc2lnbmVkU2xvdD90LmFzc2lnbmVkU2xvdC5wYXJlbnROb2RlOnQucGFyZW50Tm9kZTtyZXR1cm4gdHx8dm9pZCAwfWdldCBfZ3JpZCgpe3JldHVybiB0aGlzLl9ncmlkVmFsdWV8fCh0aGlzLl9ncmlkVmFsdWU9dGhpcy5fZmluZEhvc3RHcmlkKCkpLHRoaXMuX2dyaWRWYWx1ZX1nZXQgX2FsbENlbGxzKCl7cmV0dXJuW10uY29uY2F0KHRoaXMuX2NlbGxzfHxbXSkuY29uY2F0KHRoaXMuX2VtcHR5Q2VsbHN8fFtdKS5jb25jYXQodGhpcy5faGVhZGVyQ2VsbCkuY29uY2F0KHRoaXMuX2Zvb3RlckNlbGwpLmZpbHRlcigodD0+dCkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl90ZW1wbGF0ZU9ic2VydmVyPW5ldyBHaSh0aGlzLCgoKT0+e3RoaXMuX2hlYWRlclRlbXBsYXRlPXRoaXMuX3ByZXBhcmVIZWFkZXJUZW1wbGF0ZSgpLHRoaXMuX2Zvb3RlclRlbXBsYXRlPXRoaXMuX3ByZXBhcmVGb290ZXJUZW1wbGF0ZSgpLHRoaXMuX2JvZHlUZW1wbGF0ZT10aGlzLl9wcmVwYXJlQm9keVRlbXBsYXRlKCl9KSl9X3ByZXBhcmVIZWFkZXJUZW1wbGF0ZSgpe3JldHVybiB0aGlzLl9wcmVwYXJlVGVtcGxhdGl6ZXIodGhpcy5fZmluZFRlbXBsYXRlKCEwKXx8bnVsbCx7fSl9X3ByZXBhcmVGb290ZXJUZW1wbGF0ZSgpe3JldHVybiB0aGlzLl9wcmVwYXJlVGVtcGxhdGl6ZXIodGhpcy5fZmluZFRlbXBsYXRlKCExLCEwKXx8bnVsbCx7fSl9X3ByZXBhcmVCb2R5VGVtcGxhdGUoKXtyZXR1cm4gdGhpcy5fcHJlcGFyZVRlbXBsYXRpemVyKHRoaXMuX2ZpbmRUZW1wbGF0ZSgpfHxudWxsKX1fcHJlcGFyZVRlbXBsYXRpemVyKHQsZSl7aWYodCYmIXQudGVtcGxhdGl6ZXIpe2NvbnN0IG49bmV3IFkxdDtuLl9ncmlkPXRoaXMuX2dyaWQsbi5kYXRhSG9zdD10aGlzLmRhdGFIb3N0LG4uX2luc3RhbmNlUHJvcHM9ZXx8bi5faW5zdGFuY2VQcm9wcyxuLnRlbXBsYXRlPXQsdC50ZW1wbGF0aXplcj1ufXJldHVybiB0fV9yZW5kZXJIZWFkZXJBbmRGb290ZXIoKXt0aGlzLmhlYWRlclJlbmRlcmVyJiZ0aGlzLl9oZWFkZXJDZWxsJiZ0aGlzLl9fcnVuUmVuZGVyZXIodGhpcy5oZWFkZXJSZW5kZXJlcix0aGlzLl9oZWFkZXJDZWxsKSx0aGlzLmZvb3RlclJlbmRlcmVyJiZ0aGlzLl9mb290ZXJDZWxsJiZ0aGlzLl9fcnVuUmVuZGVyZXIodGhpcy5mb290ZXJSZW5kZXJlcix0aGlzLl9mb290ZXJDZWxsKX1fX3J1blJlbmRlcmVyKHQsZSxuKXtjb25zdCBpPVtlLl9jb250ZW50LHRoaXNdO24mJm4uaXRlbSYmaS5wdXNoKG4pLHQuYXBwbHkodGhpcyxpKX1fX3NldENvbHVtblRlbXBsYXRlT3JSZW5kZXJlcih0LGUsbil7aWYoIXRoaXMuaGlkZGVuKXtpZih0JiZlKXRocm93IG5ldyBFcnJvcigiWW91IHNob3VsZCBvbmx5IHVzZSBlaXRoZXIgYSByZW5kZXJlciBvciBhIHRlbXBsYXRlIik7bi5mb3JFYWNoKChuPT57Y29uc3QgaT10aGlzLl9ncmlkLl9fZ2V0Um93TW9kZWwobi5wYXJlbnRFbGVtZW50KTtpZihlKW4uX3JlbmRlcmVyPWUsKGkuaXRlbXx8ZT09PXRoaXMuaGVhZGVyUmVuZGVyZXJ8fGU9PT10aGlzLmZvb3RlclJlbmRlcmVyKSYmdGhpcy5fX3J1blJlbmRlcmVyKGUsbixpKTtlbHNlIGlmKG4uX3RlbXBsYXRlIT09dCl7bi5fdGVtcGxhdGU9dCxuLl9jb250ZW50LmlubmVySFRNTD0iIix0LnRlbXBsYXRpemVyLl9ncmlkPXQudGVtcGxhdGl6ZXIuX2dyaWR8fHRoaXMuX2dyaWQ7Y29uc3QgZT10LnRlbXBsYXRpemVyLmNyZWF0ZUluc3RhbmNlKCk7bi5fY29udGVudC5hcHBlbmRDaGlsZChlLnJvb3QpLG4uX2luc3RhbmNlPWUsaS5pdGVtJiZuLl9pbnN0YW5jZS5zZXRQcm9wZXJ0aWVzKGkpfX0pKX19X3NldEJvZHlUZW1wbGF0ZU9yUmVuZGVyZXIodCxlLG4peyh0fHxlKSYmbiYmdGhpcy5fX3NldENvbHVtblRlbXBsYXRlT3JSZW5kZXJlcih0LGUsbil9X3NldEhlYWRlclRlbXBsYXRlT3JSZW5kZXJlcih0LGUsbil7KHR8fGUpJiZuJiZ0aGlzLl9fc2V0Q29sdW1uVGVtcGxhdGVPclJlbmRlcmVyKHQsZSxbbl0pfV9zZXRGb290ZXJUZW1wbGF0ZU9yUmVuZGVyZXIodCxlLG4peyh0fHxlKSYmbiYmKHRoaXMuX19zZXRDb2x1bW5UZW1wbGF0ZU9yUmVuZGVyZXIodCxlLFtuXSksdGhpcy5fZ3JpZC5fX3VwZGF0ZUhlYWRlckZvb3RlclJvd1Zpc2liaWxpdHkobi5wYXJlbnRFbGVtZW50KSl9X3NlbGVjdEZpcnN0VGVtcGxhdGUodD0hMSxlPSExKXtyZXR1cm4gR2kuZ2V0RmxhdHRlbmVkTm9kZXModGhpcykuZmlsdGVyKChuPT4idGVtcGxhdGUiPT09bi5sb2NhbE5hbWUmJm4uY2xhc3NMaXN0LmNvbnRhaW5zKCJoZWFkZXIiKT09PXQmJm4uY2xhc3NMaXN0LmNvbnRhaW5zKCJmb290ZXIiKT09PWUpKVswXX1fZmluZFRlbXBsYXRlKHQsZSl7Y29uc3Qgbj10aGlzLl9zZWxlY3RGaXJzdFRlbXBsYXRlKHQsZSk7cmV0dXJuIG4mJnRoaXMuZGF0YUhvc3QmJihuLl9yb290RGF0YUhvc3Q9dGhpcy5kYXRhSG9zdC5fcm9vdERhdGFIb3N0fHx0aGlzLmRhdGFIb3N0KSxufV9mbGV4R3Jvd0NoYW5nZWQodCl7dGhpcy5wYXJlbnRFbGVtZW50JiZ0aGlzLnBhcmVudEVsZW1lbnQuX2NvbHVtblByb3BDaGFuZ2VkJiZ0aGlzLnBhcmVudEVsZW1lbnQuX2NvbHVtblByb3BDaGFuZ2VkKCJmbGV4R3JvdyIpLHRoaXMuX2FsbENlbGxzLmZvckVhY2goKGU9PmUuc3R5bGUuZmxleEdyb3c9dCkpfV9vcmRlckNoYW5nZWQodCl7dGhpcy5fYWxsQ2VsbHMuZm9yRWFjaCgoZT0+ZS5zdHlsZS5vcmRlcj10KSl9X3dpZHRoQ2hhbmdlZCh0KXt0aGlzLnBhcmVudEVsZW1lbnQmJnRoaXMucGFyZW50RWxlbWVudC5fY29sdW1uUHJvcENoYW5nZWQmJnRoaXMucGFyZW50RWxlbWVudC5fY29sdW1uUHJvcENoYW5nZWQoIndpZHRoIiksdGhpcy5fYWxsQ2VsbHMuZm9yRWFjaCgoZT0+ZS5zdHlsZS53aWR0aD10KSksdGhpcy5fZ3JpZCYmdGhpcy5fZ3JpZC5fX2ZvcmNlUmVmbG93JiZ0aGlzLl9ncmlkLl9fZm9yY2VSZWZsb3coKX1fZnJvemVuQ2hhbmdlZCh0KXt0aGlzLnBhcmVudEVsZW1lbnQmJnRoaXMucGFyZW50RWxlbWVudC5fY29sdW1uUHJvcENoYW5nZWQmJnRoaXMucGFyZW50RWxlbWVudC5fY29sdW1uUHJvcENoYW5nZWQoImZyb3plbiIsdCksdGhpcy5fYWxsQ2VsbHMuZm9yRWFjaCgoZT0+dGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJmcm96ZW4iLHQsZSkpKSx0aGlzLl9ncmlkJiZ0aGlzLl9ncmlkLl9mcm96ZW5DZWxsc0NoYW5nZWQmJnRoaXMuX2dyaWQuX2Zyb3plbkNlbGxzQ2hhbmdlZCgpfV9sYXN0RnJvemVuQ2hhbmdlZCh0KXt0aGlzLl9hbGxDZWxscy5mb3JFYWNoKChlPT50aGlzLl90b2dnbGVBdHRyaWJ1dGUoImxhc3QtZnJvemVuIix0LGUpKSksdGhpcy5wYXJlbnRFbGVtZW50JiZ0aGlzLnBhcmVudEVsZW1lbnQuX2NvbHVtblByb3BDaGFuZ2VkJiYodGhpcy5wYXJlbnRFbGVtZW50Ll9sYXN0RnJvemVuPXQpfV9wYXRoT3JIZWFkZXJDaGFuZ2VkKHQsZSxuLGkscixvLGEscyxsKXtjb25zdCBjPXZvaWQgMCE9PWU7aWYoIWEmJiFsJiZjJiZuJiZ0aGlzLl9fc2V0VGV4dENvbnRlbnQobi5fY29udGVudCxlKSx0JiZyLnZhbHVlKXtpZighbyYmIXMpe3RoaXMuX19zZXRDb2x1bW5UZW1wbGF0ZU9yUmVuZGVyZXIodm9pZCAwLCgoZSxuLHtpdGVtOml9KT0+dGhpcy5fX3NldFRleHRDb250ZW50KGUsdGhpcy5nZXQodCxpKSkpLHIudmFsdWUpfWF8fGx8fGN8fCFufHxudWxsPT09ZXx8dGhpcy5fX3NldFRleHRDb250ZW50KG4uX2NvbnRlbnQsdGhpcy5fZ2VuZXJhdGVIZWFkZXIodCkpfW4mJnRoaXMuX2dyaWQuX191cGRhdGVIZWFkZXJGb290ZXJSb3dWaXNpYmlsaXR5KG4ucGFyZW50RWxlbWVudCl9X19zZXRUZXh0Q29udGVudCh0LGUpe3QudGV4dENvbnRlbnQhPT1lJiYodC50ZXh0Q29udGVudD1lKX1fZ2VuZXJhdGVIZWFkZXIodCl7cmV0dXJuIHQuc3Vic3RyKHQubGFzdEluZGV4T2YoIi4iKSsxKS5yZXBsYWNlKC8oW0EtWl0pL2csIi0kMSIpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvLS9nLCIgIikucmVwbGFjZSgvXi4vLCh0PT50LnRvVXBwZXJDYXNlKCkpKX1fdG9nZ2xlQXR0cmlidXRlKHQsZSxuKXtuLmhhc0F0dHJpYnV0ZSh0KT09PSFlJiYoZT9uLnNldEF0dHJpYnV0ZSh0LCIiKTpuLnJlbW92ZUF0dHJpYnV0ZSh0KSl9X3Jlb3JkZXJTdGF0dXNDaGFuZ2VkKHQpe3RoaXMuX2FsbENlbGxzLmZvckVhY2goKGU9PmUuc2V0QXR0cmlidXRlKCJyZW9yZGVyLXN0YXR1cyIsdCkpKX1fcmVzaXphYmxlQ2hhbmdlZCh0LGUpe3ZvaWQgMCE9PXQmJnZvaWQgMCE9PWUmJmUmJltlXS5jb25jYXQodGhpcy5fZW1wdHlDZWxscykuZm9yRWFjaCgoZT0+e2lmKGUpe2NvbnN0IG49ZS5xdWVyeVNlbGVjdG9yKCdbcGFydH49InJlc2l6ZS1oYW5kbGUiXScpO2lmKG4mJmUucmVtb3ZlQ2hpbGQobiksdCl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LnNldEF0dHJpYnV0ZSgicGFydCIsInJlc2l6ZS1oYW5kbGUiKSxlLmFwcGVuZENoaWxkKHQpfX19KSl9X3RleHRBbGlnbkNoYW5nZWQodCl7aWYodm9pZCAwPT09dClyZXR1cm47aWYoLTE9PT1bInN0YXJ0IiwiZW5kIiwiY2VudGVyIl0uaW5kZXhPZih0KSlyZXR1cm4gdm9pZCBjb25zb2xlLndhcm4oJ3RleHRBbGlnbiBjYW4gb25seSBiZSBzZXQgYXMgInN0YXJ0IiwgImVuZCIgb3IgImNlbnRlciInKTtsZXQgZTsibHRyIj09PWdldENvbXB1dGVkU3R5bGUodGhpcy5fZ3JpZCkuZGlyZWN0aW9uPyJzdGFydCI9PT10P2U9ImxlZnQiOiJlbmQiPT09dCYmKGU9InJpZ2h0Iik6InN0YXJ0Ij09PXQ/ZT0icmlnaHQiOiJlbmQiPT09dCYmKGU9ImxlZnQiKSx0aGlzLl9hbGxDZWxscy5mb3JFYWNoKChuPT57bi5fY29udGVudC5zdHlsZS50ZXh0QWxpZ249dCxnZXRDb21wdXRlZFN0eWxlKG4uX2NvbnRlbnQpLnRleHRBbGlnbiE9PXQmJihuLl9jb250ZW50LnN0eWxlLnRleHRBbGlnbj1lKX0pKX1faGlkZGVuQ2hhbmdlZCh0KXt0aGlzLnBhcmVudEVsZW1lbnQmJnRoaXMucGFyZW50RWxlbWVudC5fY29sdW1uUHJvcENoYW5nZWQmJnRoaXMucGFyZW50RWxlbWVudC5fY29sdW1uUHJvcENoYW5nZWQoImhpZGRlbiIsdCksISF0IT0hIXRoaXMuX3ByZXZpb3VzSGlkZGVuJiZ0aGlzLl9ncmlkJiYoITA9PT10JiZ0aGlzLl9hbGxDZWxscy5mb3JFYWNoKCh0PT57dC5fY29udGVudC5wYXJlbnROb2RlJiZ0Ll9jb250ZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodC5fY29udGVudCl9KSksdGhpcy5fZ3JpZC5fZGVib3VuY2VySGlkZGVuQ2hhbmdlZD1Obi5kZWJvdW5jZSh0aGlzLl9ncmlkLl9kZWJvdW5jZXJIaWRkZW5DaGFuZ2VkLF90LCgoKT0+e3RoaXMuX2dyaWQmJnRoaXMuX2dyaWQuX3JlbmRlckNvbHVtblRyZWUmJnRoaXMuX2dyaWQuX3JlbmRlckNvbHVtblRyZWUodGhpcy5fZ3JpZC5fY29sdW1uVHJlZSl9KSksdGhpcy5fZ3JpZC5fdXBkYXRlTGFzdEZyb3plbiYmdGhpcy5fZ3JpZC5fdXBkYXRlTGFzdEZyb3plbigpLHRoaXMuX2dyaWQubm90aWZ5UmVzaXplJiZ0aGlzLl9ncmlkLm5vdGlmeVJlc2l6ZSgpLHRoaXMuX2dyaWQuX3Jlc2V0S2V5Ym9hcmROYXZpZ2F0aW9uJiZ0aGlzLl9ncmlkLl9yZXNldEtleWJvYXJkTmF2aWdhdGlvbigpKSx0aGlzLl9wcmV2aW91c0hpZGRlbj10fX07Y2xhc3MgZDB0IGV4dGVuZHMoaDB0KEExdCh3ZSkpKXtzdGF0aWMgZ2V0IGlzKCl7cmV0dXJuInZhYWRpbi1ncmlkLWNvbHVtbiJ9c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue3dpZHRoOnt0eXBlOlN0cmluZyx2YWx1ZToiMTAwcHgifSxmbGV4R3Jvdzp7dHlwZTpOdW1iZXIsdmFsdWU6MX0scmVuZGVyZXI6RnVuY3Rpb24scGF0aDp7dHlwZTpTdHJpbmd9LGF1dG9XaWR0aDp7dHlwZTpCb29sZWFuLHZhbHVlOiExfSxfYm9keVRlbXBsYXRlOnt0eXBlOk9iamVjdH0sX2NlbGxzOkFycmF5fX19Y3VzdG9tRWxlbWVudHMuZGVmaW5lKGQwdC5pcyxkMHQpLAovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMjEgVmFhZGluIEx0ZC4KICAgICAqIFRoaXMgcHJvZ3JhbSBpcyBhdmFpbGFibGUgdW5kZXIgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjAsIGF2YWlsYWJsZSBhdCBodHRwczovL3ZhYWRpbi5jb20vbGljZW5zZS8KICAgICAqLwp0MXQoInZhYWRpbi1ncmlkIiwkUXRgCiAgICBAa2V5ZnJhbWVzIHZhYWRpbi1ncmlkLWFwcGVhciB7CiAgICAgIHRvIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICB9CgogICAgOmhvc3QgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgYW5pbWF0aW9uOiAxbXMgdmFhZGluLWdyaWQtYXBwZWFyOwogICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICBmbGV4OiAxIDEgYXV0bzsKICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQoKICAgIDpob3N0KFtoaWRkZW5dKSB7CiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgIH0KCiAgICAjc2Nyb2xsZXIgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICB3aWR0aDogYXV0bzsKICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgcmlnaHQ6IDA7CiAgICAgIGJvdHRvbTogMDsKICAgICAgbGVmdDogMDsKICAgIH0KCiAgICA6aG9zdChbaGVpZ2h0LWJ5LXJvd3NdKSB7CiAgICAgIGhlaWdodDogYXV0bzsKICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDsKICAgICAgZmxleC1ncm93OiAwOwogICAgICB3aWR0aDogMTAwJTsKICAgIH0KCiAgICA6aG9zdChbaGVpZ2h0LWJ5LXJvd3NdKSAjc2Nyb2xsZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB9CgogICAgI3RhYmxlIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgLyogV29ya2Fyb3VuZCBmb3IgYSBEZXNrdG9wIFNhZmFyaSBidWc6IG5ldyBzdGFja2luZyBjb250ZXh0IGhlcmUgcHJldmVudHMgdGhlIHNjcm9sbGJhciBmcm9tIGdldHRpbmcgaGlkZGVuICovCiAgICAgIHotaW5kZXg6IDA7CiAgICB9CgogICAgI2hlYWRlciwKICAgICNmb290ZXIgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgcG9zaXRpb246IC13ZWJraXQtc3RpY2t5OwogICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICBsZWZ0OiAwOwogICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIHotaW5kZXg6IDE7CiAgICB9CgogICAgI2hlYWRlciB7CiAgICAgIHRvcDogMDsKICAgIH0KCiAgICB0aCB7CiAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7CiAgICB9CgogICAgLyogU2FmYXJpIGRvZXNuJ3Qgd29yayB3aXRoICJpbmhlcml0IiAqLwogICAgW3NhZmFyaV0gdGggewogICAgICB0ZXh0LWFsaWduOiBpbml0aWFsOwogICAgfQoKICAgICNmb290ZXIgewogICAgICBib3R0b206IDA7CiAgICB9CgogICAgI2l0ZW1zIHsKICAgICAgZmxleC1ncm93OiAxOwogICAgICBmbGV4LXNocmluazogMDsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTsKICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGxlZnQ6IDA7CiAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgfQoKICAgIFtwYXJ0fj0ncm93J10gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgbWFyZ2luOiAwOwogICAgfQoKICAgIFtwYXJ0fj0ncm93J11bbG9hZGluZ10gW3BhcnR+PSdib2R5LWNlbGwnXSA6OnNsb3R0ZWQodmFhZGluLWdyaWQtY2VsbC1jb250ZW50KSB7CiAgICAgIG9wYWNpdHk6IDA7CiAgICB9CgogICAgI2l0ZW1zIFtwYXJ0fj0ncm93J10gewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB9CgogICAgI2l0ZW1zIFtwYXJ0fj0ncm93J106ZW1wdHkgewogICAgICBoZWlnaHQ6IDFlbTsKICAgIH0KCiAgICBbcGFydH49J2NlbGwnXTpub3QoW3BhcnR+PSdkZXRhaWxzLWNlbGwnXSkgewogICAgICBmbGV4LXNocmluazogMDsKICAgICAgZmxleC1ncm93OiAxOwogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBwYWRkaW5nOiAwOwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgfQoKICAgIFtwYXJ0fj0nZGV0YWlscy1jZWxsJ10gewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGJvdHRvbTogMDsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIHBhZGRpbmc6IDA7CiAgICB9CgogICAgW3BhcnR+PSdjZWxsJ10gOjpzbG90dGVkKHZhYWRpbi1ncmlkLWNlbGwtY29udGVudCkgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgfQoKICAgIFtoaWRkZW5dIHsKICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgIFtmcm96ZW5dIHsKICAgICAgei1pbmRleDogMjsKICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgIH0KCiAgICBbbm8tc2Nyb2xsYmFyc11bc2FmYXJpXSAjdGFibGUsCiAgICBbbm8tc2Nyb2xsYmFyc11bZmlyZWZveF0gI3RhYmxlIHsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAvKiBSZW9yZGVyaW5nIHN0eWxlcyAqLwogICAgOmhvc3QoW3Jlb3JkZXJpbmddKSBbcGFydH49J2NlbGwnXSA6OnNsb3R0ZWQodmFhZGluLWdyaWQtY2VsbC1jb250ZW50KSwKICAgIDpob3N0KFtyZW9yZGVyaW5nXSkgW3BhcnR+PSdyZXNpemUtaGFuZGxlJ10sCiAgICAjc2Nyb2xsZXJbbm8tY29udGVudC1wb2ludGVyLWV2ZW50c10gW3BhcnR+PSdjZWxsJ10gOjpzbG90dGVkKHZhYWRpbi1ncmlkLWNlbGwtY29udGVudCkgewogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIH0KCiAgICBbcGFydH49J3Jlb3JkZXItZ2hvc3QnXSB7CiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgb3BhY2l0eTogMC41OwoKICAgICAgLyogUHJldmVudCBvdmVyZmxvd2luZyB0aGUgZ3JpZCBpbiBGaXJlZm94ICovCiAgICAgIHRvcDogMDsKICAgICAgbGVmdDogMDsKICAgIH0KCiAgICA6aG9zdChbcmVvcmRlcmluZ10pIHsKICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICB9CgogICAgLyogUmVzaXppbmcgc3R5bGVzICovCiAgICBbcGFydH49J3Jlc2l6ZS1oYW5kbGUnXSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICByaWdodDogMDsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBjdXJzb3I6IGNvbC1yZXNpemU7CiAgICAgIHotaW5kZXg6IDE7CiAgICB9CgogICAgW3BhcnR+PSdyZXNpemUtaGFuZGxlJ106OmJlZm9yZSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgY29udGVudDogJyc7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgd2lkdGg6IDM1cHg7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgIH0KCiAgICBbbGFzdC1jb2x1bW5dIFtwYXJ0fj0ncmVzaXplLWhhbmRsZSddOjpiZWZvcmUsCiAgICBbbGFzdC1mcm96ZW5dIFtwYXJ0fj0ncmVzaXplLWhhbmRsZSddOjpiZWZvcmUgewogICAgICB3aWR0aDogMThweDsKICAgICAgdHJhbnNmb3JtOiBub25lOwogICAgICByaWdodDogMDsKICAgIH0KCiAgICAjc2Nyb2xsZXJbY29sdW1uLXJlc2l6aW5nXSB7CiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICB9CgogICAgLyogU2l6ZXIgc3R5bGVzICovCiAgICAjc2l6ZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgIH0KCiAgICAjc2l6ZXIgW3BhcnR+PSdkZXRhaWxzLWNlbGwnXSB7CiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgIH0KCiAgICAjc2l6ZXIgW3BhcnR+PSdjZWxsJ11baGlkZGVuXSB7CiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgIH0KCiAgICAjc2l6ZXIgW3BhcnR+PSdjZWxsJ10gewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIGxpbmUtaGVpZ2h0OiAwOwogICAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDsKICAgICAgbWluLWhlaWdodDogMCAhaW1wb3J0YW50OwogICAgICBtYXgtaGVpZ2h0OiAwICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDsKICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7CiAgICB9CgogICAgI3NpemVyIFtwYXJ0fj0nY2VsbCddOjpiZWZvcmUgewogICAgICBjb250ZW50OiAnLSc7CiAgICB9CgogICAgI3NpemVyIFtwYXJ0fj0nY2VsbCddIDo6c2xvdHRlZCh2YWFkaW4tZ3JpZC1jZWxsLWNvbnRlbnQpIHsKICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC8qIFJUTCBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgICA6aG9zdChbZGlyPSdydGwnXSkgI2l0ZW1zLAogICAgOmhvc3QoW2Rpcj0ncnRsJ10pICNoZWFkZXIsCiAgICA6aG9zdChbZGlyPSdydGwnXSkgI2Zvb3RlciB7CiAgICAgIGxlZnQ6IGF1dG87CiAgICB9CgogICAgOmhvc3QoW2Rpcj0ncnRsJ10pIFtwYXJ0fj0ncmVvcmRlci1naG9zdCddIHsKICAgICAgbGVmdDogYXV0bzsKICAgICAgcmlnaHQ6IDA7CiAgICB9CgogICAgOmhvc3QoW2Rpcj0ncnRsJ10pIFtwYXJ0fj0ncmVzaXplLWhhbmRsZSddIHsKICAgICAgbGVmdDogMDsKICAgICAgcmlnaHQ6IGF1dG87CiAgICB9CgogICAgOmhvc3QoW2Rpcj0ncnRsJ10pIFtwYXJ0fj0ncmVzaXplLWhhbmRsZSddOjpiZWZvcmUgewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTAlKTsKICAgIH0KCiAgICA6aG9zdChbZGlyPSdydGwnXSkgW2xhc3QtY29sdW1uXSBbcGFydH49J3Jlc2l6ZS1oYW5kbGUnXTo6YmVmb3JlLAogICAgOmhvc3QoW2Rpcj0ncnRsJ10pIFtsYXN0LWZyb3plbl0gW3BhcnR+PSdyZXNpemUtaGFuZGxlJ106OmJlZm9yZSB7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHJpZ2h0OiBhdXRvOwogICAgfQogIGAse21vZHVsZUlkOiJ2YWFkaW4tZ3JpZC1zdHlsZXMifSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBWYWFkaW4gTHRkLgogICAgICogVGhpcyBwcm9ncmFtIGlzIGF2YWlsYWJsZSB1bmRlciBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCwgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdmFhZGluLmNvbS9saWNlbnNlLwogICAgICovCmNvbnN0IHAwdD0oKCk9Pnt0cnl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJUb3VjaEV2ZW50IiksITB9Y2F0Y2godCl7cmV0dXJuITF9fSkoKTtjbGFzcyBmMHQgZXh0ZW5kcyhQMXQoZjF0KGoxdChGMXQoRzF0KEIxdChaMXQoSjF0KFExdChYMXQoYzB0KEQxdChxMXQodTB0KFYxdChXMXQobDB0KHQwdCh6MXQpKSkpKSkpKSkpKSkpKSkpKSkpe3N0YXRpYyBnZXQgdGVtcGxhdGUoKXtyZXR1cm4geGVgCiAgICAgIDxkaXYKICAgICAgICBpZD0ic2Nyb2xsZXIiCiAgICAgICAgc2FmYXJpJD0iW1tfc2FmYXJpXV0iCiAgICAgICAgaW9zJD0iW1tfaW9zXV0iCiAgICAgICAgbG9hZGluZyQ9IltbbG9hZGluZ11dIgogICAgICAgIGNvbHVtbi1yZW9yZGVyaW5nLWFsbG93ZWQkPSJbW2NvbHVtblJlb3JkZXJpbmdBbGxvd2VkXV0iCiAgICAgID4KICAgICAgICA8dGFibGUgaWQ9InRhYmxlIiByb2xlPSJncmlkIiBhcmlhLW11bHRpc2VsZWN0YWJsZT0idHJ1ZSIgdGFiaW5kZXg9IjAiPgogICAgICAgICAgPGNhcHRpb24gaWQ9InNpemVyIiBwYXJ0PSJyb3ciPjwvY2FwdGlvbj4KICAgICAgICAgIDx0aGVhZCBpZD0iaGVhZGVyIiByb2xlPSJyb3dncm91cCI+PC90aGVhZD4KICAgICAgICAgIDx0Ym9keSBpZD0iaXRlbXMiIHJvbGU9InJvd2dyb3VwIj48L3Rib2R5PgogICAgICAgICAgPHRmb290IGlkPSJmb290ZXIiIHJvbGU9InJvd2dyb3VwIj48L3Rmb290PgogICAgICAgIDwvdGFibGU+CgogICAgICAgIDxkaXYgcGFydD0icmVvcmRlci1naG9zdCI+PC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBpZD0iZm9jdXNleGl0IiB0YWJpbmRleD0iMCI+PC9kaXY+CiAgICBgfXN0YXRpYyBnZXQgaXMoKXtyZXR1cm4idmFhZGluLWdyaWQifXN0YXRpYyBnZXQgdmVyc2lvbigpe3JldHVybiIyMC4wLjIifXN0YXRpYyBnZXQgb2JzZXJ2ZXJzKCl7cmV0dXJuWyJfY29sdW1uVHJlZUNoYW5nZWQoX2NvbHVtblRyZWUsIF9jb2x1bW5UcmVlLiopIl19c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue19zYWZhcmk6e3R5cGU6Qm9vbGVhbix2YWx1ZTovXigoPyFjaHJvbWV8YW5kcm9pZCkuKSpzYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfSxfaW9zOnt0eXBlOkJvb2xlYW4sdmFsdWU6L2lQYWR8aVBob25lfGlQb2QvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJiF3aW5kb3cuTVNTdHJlYW18fCJNYWNJbnRlbCI9PT1uYXZpZ2F0b3IucGxhdGZvcm0mJm5hdmlnYXRvci5tYXhUb3VjaFBvaW50cz4xfSxfZmlyZWZveDp7dHlwZTpCb29sZWFuLHZhbHVlOm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJmaXJlZm94Iik+LTF9LF9hbmRyb2lkOnt0eXBlOkJvb2xlYW4sdmFsdWU6L2FuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfSxfdG91Y2hEZXZpY2U6e3R5cGU6Qm9vbGVhbix2YWx1ZTpwMHR9LGhlaWdodEJ5Um93czp7dHlwZTpCb29sZWFuLHZhbHVlOiExLHJlZmxlY3RUb0F0dHJpYnV0ZTohMCxvYnNlcnZlcjoiX2hlaWdodEJ5Um93c0NoYW5nZWQifSxfcmVjYWxjdWxhdGVDb2x1bW5XaWR0aE9uY2VMb2FkaW5nRmluaXNoZWQ6e3R5cGU6Qm9vbGVhbix2YWx1ZTohMH19fWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImFuaW1hdGlvbmVuZCIsdGhpcy5fb25BbmltYXRpb25FbmQpfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnJlY2FsY3VsYXRlQ29sdW1uV2lkdGhzKCl9YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHQsZSxuKXtzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodCxlLG4pLCJkaXIiPT09dCYmKHRoaXMuX19pc1JUTD0icnRsIj09PW4sdGhpcy5fdXBkYXRlU2Nyb2xsZXJNZWFzdXJlbWVudHMoKSl9X19oYXNSb3dzV2l0aENsaWVudEhlaWdodCgpe3JldHVybiEhQXJyYXkuZnJvbSh0aGlzLiQuaXRlbXMuY2hpbGRyZW4pLmZpbHRlcigodD0+dC5jbGllbnRIZWlnaHQpKS5sZW5ndGh9X19pdGVtc1JlY2VpdmVkKCl7dGhpcy5fcmVjYWxjdWxhdGVDb2x1bW5XaWR0aE9uY2VMb2FkaW5nRmluaXNoZWQmJiF0aGlzLl9jYWNoZS5pc0xvYWRpbmcoKSYmdGhpcy5fX2hhc1Jvd3NXaXRoQ2xpZW50SGVpZ2h0KCkmJih0aGlzLl9yZWNhbGN1bGF0ZUNvbHVtbldpZHRoT25jZUxvYWRpbmdGaW5pc2hlZD0hMSx0aGlzLnJlY2FsY3VsYXRlQ29sdW1uV2lkdGhzKCkpfV9yZWNhbGN1bGF0ZUNvbHVtbldpZHRocyh0KXt0LmZvckVhY2goKHQ9Pnt0LndpZHRoPSJhdXRvIix0Ll9vcmlnRmxleEdyb3c9dC5mbGV4R3Jvdyx0LmZsZXhHcm93PTB9KSksdC5mb3JFYWNoKCh0PT57dC5fY3VycmVudFdpZHRoPTAsdC5fYWxsQ2VsbHMuZm9yRWFjaCgoZT0+e3QuX2N1cnJlbnRXaWR0aD1NYXRoLm1heCh0Ll9jdXJyZW50V2lkdGgsZS5vZmZzZXRXaWR0aCsxKX0pKX0pKSx0LmZvckVhY2goKHQ9Pnt0LndpZHRoPWAke3QuX2N1cnJlbnRXaWR0aH1weGAsdC5mbGV4R3Jvdz10Ll9vcmlnRmxleEdyb3csdC5fY3VycmVudFdpZHRoPXZvaWQgMCx0Ll9vcmlnRmxleEdyb3c9dm9pZCAwfSkpfXJlY2FsY3VsYXRlQ29sdW1uV2lkdGhzKCl7aWYodGhpcy5fY29sdW1uVHJlZSlpZih0aGlzLl9jYWNoZS5pc0xvYWRpbmcoKSl0aGlzLl9yZWNhbGN1bGF0ZUNvbHVtbldpZHRoT25jZUxvYWRpbmdGaW5pc2hlZD0hMDtlbHNle2NvbnN0IHQ9dGhpcy5fZ2V0Q29sdW1ucygpLmZpbHRlcigodD0+IXQuaGlkZGVuJiZ0LmF1dG9XaWR0aCkpO3RoaXMuX3JlY2FsY3VsYXRlQ29sdW1uV2lkdGhzKHQpfX1fY3JlYXRlU2Nyb2xsZXJSb3dzKHQpe2NvbnN0IGU9W107Zm9yKGxldCBuPTA7bjx0O24rKyl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ciIpO3Quc2V0QXR0cmlidXRlKCJwYXJ0Iiwicm93IiksdC5zZXRBdHRyaWJ1dGUoInJvbGUiLCJyb3ciKSx0aGlzLl9jb2x1bW5UcmVlJiZ0aGlzLl91cGRhdGVSb3codCx0aGlzLl9jb2x1bW5UcmVlW3RoaXMuX2NvbHVtblRyZWUubGVuZ3RoLTFdLCJib2R5IiwhMSwhMCksZS5wdXNoKHQpfXJldHVybiB0aGlzLl9jb2x1bW5UcmVlJiZ0aGlzLl9jb2x1bW5UcmVlW3RoaXMuX2NvbHVtblRyZWUubGVuZ3RoLTFdLmZvckVhY2goKHQ9PnQuaXNDb25uZWN0ZWQmJnQubm90aWZ5UGF0aCYmdC5ub3RpZnlQYXRoKCJfY2VsbHMuKiIsdC5fY2VsbHMpKSksKGZ1bmN0aW9uIG4odCxlLGkpe05pfHxPaSgpLElpLnB1c2goW3QsZSxpXSl9KSh0aGlzLCgoKT0+e3RoaXMuX3VwZGF0ZUZpcnN0QW5kTGFzdENvbHVtbigpLHRoaXMuX3Jlc2V0S2V5Ym9hcmROYXZpZ2F0aW9uKCl9KSksZX1fZ2V0Um93VGFyZ2V0KCl7cmV0dXJuIHRoaXMuJC5pdGVtc31fY3JlYXRlQ2VsbCh0KXtjb25zdCBlPSJ2YWFkaW4tZ3JpZC1jZWxsLWNvbnRlbnQtIisodGhpcy5fY29udGVudEluZGV4PXRoaXMuX2NvbnRlbnRJbmRleCsxfHwwKSxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInZhYWRpbi1ncmlkLWNlbGwtY29udGVudCIpO24uc2V0QXR0cmlidXRlKCJzbG90IixlKTtjb25zdCBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodCk7aS5pZD1lLnJlcGxhY2UoIi1jb250ZW50LSIsIi0iKSxpLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCItMSIpLGkuc2V0QXR0cmlidXRlKCJyb2xlIiwidGQiPT09dD8iZ3JpZGNlbGwiOiJjb2x1bW5oZWFkZXIiKTtjb25zdCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNsb3QiKTtyZXR1cm4gci5zZXRBdHRyaWJ1dGUoIm5hbWUiLGUpLGkuYXBwZW5kQ2hpbGQociksaS5fY29udGVudD1uLG4uYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwoKCk9PntpZih3aW5kb3cuY2hyb21lKXtjb25zdCB0PSgpPT57bi5jb250YWlucyh0aGlzLmdldFJvb3ROb2RlKCkuYWN0aXZlRWxlbWVudCl8fGkuZm9jdXMoKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0LCEwKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdCwhMCl9ZWxzZSBzZXRUaW1lb3V0KCgoKT0+e24uY29udGFpbnModGhpcy5nZXRSb290Tm9kZSgpLmFjdGl2ZUVsZW1lbnQpfHxpLmZvY3VzKCl9KSl9KSksaX1fdXBkYXRlUm93KHQsZSxuLGkscil7bj1ufHwiYm9keSI7Y29uc3Qgbz1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7QXJyYXkuZnJvbSh0LmNoaWxkcmVuKS5mb3JFYWNoKCh0PT50Ll92YWNhbnQ9ITApKSx0LmlubmVySFRNTD0iIiwic2l6ZXIiIT09dC5pZCYmKHQuaGlkZGVuPSEwKSxlLmZpbHRlcigodD0+IXQuaGlkZGVuKSkuZm9yRWFjaCgoKGUsYSxzKT0+e2xldCBsO2lmKCJib2R5Ij09PW4pe2lmKGUuX2NlbGxzPWUuX2NlbGxzfHxbXSxsPWUuX2NlbGxzLmZpbHRlcigodD0+dC5fdmFjYW50KSlbMF0sbHx8KGw9dGhpcy5fY3JlYXRlQ2VsbCgidGQiKSxlLl9jZWxscy5wdXNoKGwpKSxsLnNldEF0dHJpYnV0ZSgicGFydCIsImNlbGwgYm9keS1jZWxsIiksdC5hcHBlbmRDaGlsZChsKSxhPT09cy5sZW5ndGgtMSYmKHRoaXMuX3Jvd0RldGFpbHNUZW1wbGF0ZXx8dGhpcy5yb3dEZXRhaWxzUmVuZGVyZXIpKXt0aGlzLl9kZXRhaWxzQ2VsbHM9dGhpcy5fZGV0YWlsc0NlbGxzfHxbXTtjb25zdCBlPXRoaXMuX2RldGFpbHNDZWxscy5maWx0ZXIoKHQ9PnQuX3ZhY2FudCkpWzBdfHx0aGlzLl9jcmVhdGVDZWxsKCJ0ZCIpOy0xPT09dGhpcy5fZGV0YWlsc0NlbGxzLmluZGV4T2YoZSkmJnRoaXMuX2RldGFpbHNDZWxscy5wdXNoKGUpLGUuX2NvbnRlbnQucGFyZW50RWxlbWVudHx8by5hcHBlbmRDaGlsZChlLl9jb250ZW50KSx0aGlzLl9jb25maWd1cmVEZXRhaWxzQ2VsbChlKSx0LmFwcGVuZENoaWxkKGUpLHRoaXMuX2ExMXlTZXRSb3dEZXRhaWxzQ2VsbCh0LGUpLGUuX3ZhY2FudD0hMX1lLm5vdGlmeVBhdGgmJiFyJiZlLm5vdGlmeVBhdGgoIl9jZWxscy4qIixlLl9jZWxscyl9ZWxzZXtjb25zdCByPSJoZWFkZXIiPT09bj8idGgiOiJ0ZCI7aXx8InZhYWRpbi1ncmlkLWNvbHVtbi1ncm91cCI9PT1lLmxvY2FsTmFtZT8obD1lW2BfJHtufUNlbGxgXXx8dGhpcy5fY3JlYXRlQ2VsbChyKSxsLl9jb2x1bW49ZSx0LmFwcGVuZENoaWxkKGwpLGVbYF8ke259Q2VsbGBdPWwpOihlLl9lbXB0eUNlbGxzPWUuX2VtcHR5Q2VsbHN8fFtdLGw9ZS5fZW1wdHlDZWxscy5maWx0ZXIoKHQ9PnQuX3ZhY2FudCkpWzBdfHx0aGlzLl9jcmVhdGVDZWxsKHIpLGwuX2NvbHVtbj1lLHQuYXBwZW5kQ2hpbGQobCksLTE9PT1lLl9lbXB0eUNlbGxzLmluZGV4T2YobCkmJmUuX2VtcHR5Q2VsbHMucHVzaChsKSksbC5zZXRBdHRyaWJ1dGUoInBhcnQiLGBjZWxsICR7bn0tY2VsbGApLHRoaXMuX191cGRhdGVIZWFkZXJGb290ZXJSb3dWaXNpYmlsaXR5KHQpfWwuX2NvbnRlbnQucGFyZW50RWxlbWVudHx8by5hcHBlbmRDaGlsZChsLl9jb250ZW50KSxsLl92YWNhbnQ9ITEsbC5fY29sdW1uPWV9KSksdGhpcy5hcHBlbmRDaGlsZChvKSx0aGlzLl9mcm96ZW5DZWxsc0NoYW5nZWQoKSx0aGlzLl91cGRhdGVGaXJzdEFuZExhc3RDb2x1bW5Gb3JSb3codCl9X191cGRhdGVIZWFkZXJGb290ZXJSb3dWaXNpYmlsaXR5KHQpe2lmKCF0KXJldHVybjtjb25zdCBlPUFycmF5LmZyb20odC5jaGlsZHJlbikuZmlsdGVyKChlPT57Y29uc3Qgbj1lLl9jb2x1bW47aWYobi5fZW1wdHlDZWxscyYmbi5fZW1wdHlDZWxscy5pbmRleE9mKGUpPi0xKXJldHVybiExO2lmKHQucGFyZW50RWxlbWVudD09PXRoaXMuJC5oZWFkZXIpe2lmKG4uaGVhZGVyUmVuZGVyZXJ8fG4uX2hlYWRlclRlbXBsYXRlKXJldHVybiEwO2lmKG51bGw9PT1uLmhlYWRlcilyZXR1cm4hMTtpZihuLnBhdGh8fHZvaWQgMCE9PW4uaGVhZGVyKXJldHVybiEwfWVsc2UgaWYobi5mb290ZXJSZW5kZXJlcnx8bi5fZm9vdGVyVGVtcGxhdGUpcmV0dXJuITB9KSk7dC5oaWRkZW4hPT0hZS5sZW5ndGgmJih0LmhpZGRlbj0hZS5sZW5ndGgsdGhpcy5ub3RpZnlSZXNpemUoKSl9X3VwZGF0ZVNjcm9sbGVySXRlbSh0LGUpe3RoaXMuX3ByZXZlbnRTY3JvbGxlclJvdGF0aW5nQ2VsbEZvY3VzKHQsZSksdGhpcy5fY29sdW1uVHJlZSYmKHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgiZmlyc3QiLDA9PT1lLHQpLHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgib2RkIixlJTIsdCksdGhpcy5fYTExeVVwZGF0ZVJvd1Jvd2luZGV4KHQsZSksdGhpcy5fZ2V0SXRlbShlLHQpKX1fY29sdW1uVHJlZUNoYW5nZWQodCl7dGhpcy5fcmVuZGVyQ29sdW1uVHJlZSh0KSx0aGlzLnJlY2FsY3VsYXRlQ29sdW1uV2lkdGhzKCl9X3JlbmRlckNvbHVtblRyZWUodCl7Zm9yKEFycmF5LmZyb20odGhpcy4kLml0ZW1zLmNoaWxkcmVuKS5mb3JFYWNoKChlPT50aGlzLl91cGRhdGVSb3coZSx0W3QubGVuZ3RoLTFdLG51bGwsITEsITApKSk7dGhpcy4kLmhlYWRlci5jaGlsZHJlbi5sZW5ndGg8dC5sZW5ndGg7KXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIik7dC5zZXRBdHRyaWJ1dGUoInBhcnQiLCJyb3ciKSx0LnNldEF0dHJpYnV0ZSgicm9sZSIsInJvdyIpLHRoaXMuJC5oZWFkZXIuYXBwZW5kQ2hpbGQodCk7Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ciIpO2Uuc2V0QXR0cmlidXRlKCJwYXJ0Iiwicm93IiksZS5zZXRBdHRyaWJ1dGUoInJvbGUiLCJyb3ciKSx0aGlzLiQuZm9vdGVyLmFwcGVuZENoaWxkKGUpfWZvcig7dGhpcy4kLmhlYWRlci5jaGlsZHJlbi5sZW5ndGg+dC5sZW5ndGg7KXRoaXMuJC5oZWFkZXIucmVtb3ZlQ2hpbGQodGhpcy4kLmhlYWRlci5maXJzdEVsZW1lbnRDaGlsZCksdGhpcy4kLmZvb3Rlci5yZW1vdmVDaGlsZCh0aGlzLiQuZm9vdGVyLmZpcnN0RWxlbWVudENoaWxkKTtBcnJheS5mcm9tKHRoaXMuJC5oZWFkZXIuY2hpbGRyZW4pLmZvckVhY2goKChlLG4pPT50aGlzLl91cGRhdGVSb3coZSx0W25dLCJoZWFkZXIiLG49PT10Lmxlbmd0aC0xKSkpLEFycmF5LmZyb20odGhpcy4kLmZvb3Rlci5jaGlsZHJlbikuZm9yRWFjaCgoKGUsbik9PnRoaXMuX3VwZGF0ZVJvdyhlLHRbdC5sZW5ndGgtMS1uXSwiZm9vdGVyIiwwPT09bikpKSx0aGlzLl91cGRhdGVSb3codGhpcy4kLnNpemVyLHRbdC5sZW5ndGgtMV0pLHRoaXMuX3Jlc2l6ZUhhbmRsZXIoKSx0aGlzLl9mcm96ZW5DZWxsc0NoYW5nZWQoKSx0aGlzLl91cGRhdGVGaXJzdEFuZExhc3RDb2x1bW4oKSx0aGlzLl9yZXNldEtleWJvYXJkTmF2aWdhdGlvbigpLHRoaXMuX2ExMXlVcGRhdGVIZWFkZXJSb3dzKCksdGhpcy5fYTExeVVwZGF0ZUZvb3RlclJvd3MoKSx0aGlzLl9fdXBkYXRlRm9vdGVyUG9zaXRpb25pbmcoKX1fX3VwZGF0ZUZvb3RlclBvc2l0aW9uaW5nKCl7aWYodGhpcy5fZmlyZWZveCYmKHRoaXMuJC5pdGVtcy5zdHlsZS5wYWRkaW5nQm90dG9tPTAsdGhpcy5oZWlnaHRCeVJvd3N8fCh0aGlzLiQuaXRlbXMuc3R5bGUucGFkZGluZ0JvdHRvbT1gJHt0aGlzLiQuZm9vdGVyLm9mZnNldEhlaWdodH1weGApKSx0aGlzLl9pb3MpeyF3aW5kb3cuQ1NTLnN1cHBvcnRzKCJwb3NpdGlvbiIsInN0aWNreSIpJiYodGhpcy4kLnRhYmxlLnN0eWxlLmhlaWdodD0iIix0aGlzLiQudGFibGUuc3R5bGUubWluSGVpZ2h0PSIxMDAlIix0aGlzLiQudGFibGUuc3R5bGUubWF4SGVpZ2h0PSIxMDAlIixzZXRUaW1lb3V0KCgoKT0+dGhpcy4kLnRhYmxlLnN0eWxlLmhlaWdodD1gJHt0aGlzLiQuc2Nyb2xsZXIub2Zmc2V0SGVpZ2h0fXB4YCkpKX19X3VwZGF0ZUl0ZW0odCxlKXt0Ll9pdGVtPWU7Y29uc3Qgbj10aGlzLl9fZ2V0Um93TW9kZWwodCk7dGhpcy5fdG9nZ2xlQXR0cmlidXRlKCJzZWxlY3RlZCIsbi5zZWxlY3RlZCx0KSx0aGlzLl9hMTF5VXBkYXRlUm93U2VsZWN0ZWQodCxuLnNlbGVjdGVkKSx0aGlzLl9hMTF5VXBkYXRlUm93TGV2ZWwodCxuLmxldmVsKSx0aGlzLl90b2dnbGVBdHRyaWJ1dGUoImV4cGFuZGVkIixuLmV4cGFuZGVkLHQpLHRoaXMuX3RvZ2dsZUF0dHJpYnV0ZSgiZGV0YWlscy1vcGVuZWQiLHRoaXMuX2lzRGV0YWlsc09wZW5lZChlKSx0KSwodGhpcy5fcm93RGV0YWlsc1RlbXBsYXRlfHx0aGlzLnJvd0RldGFpbHNSZW5kZXJlcikmJnRoaXMuX3RvZ2dsZURldGFpbHNDZWxsKHQsZSksdGhpcy5fZ2VuZXJhdGVDZWxsQ2xhc3NOYW1lcyh0LG4pLHRoaXMuX2ZpbHRlckRyYWdBbmREcm9wKHQsbiksQXJyYXkuZnJvbSh0LmNoaWxkcmVuKS5mb3JFYWNoKCh0PT57aWYodC5fcmVuZGVyZXIpe2NvbnN0IGU9dC5fY29sdW1ufHx0aGlzO3QuX3JlbmRlcmVyLmNhbGwoZSx0Ll9jb250ZW50LGUsbil9ZWxzZSB0Ll9pbnN0YW5jZSYmKHQuX2luc3RhbmNlLl9fZGV0YWlsc09wZW5lZF9fPW4uZGV0YWlsc09wZW5lZCx0Ll9pbnN0YW5jZS5fX3NlbGVjdGVkX189bi5zZWxlY3RlZCx0Ll9pbnN0YW5jZS5fX2xldmVsX189bi5sZXZlbCx0Ll9pbnN0YW5jZS5fX2V4cGFuZGVkX189bi5leHBhbmRlZCx0Ll9pbnN0YW5jZS5zZXRQcm9wZXJ0aWVzKG4pKX0pKSx0aGlzLl9kZWJvdW5jZXJVcGRhdGVIZWlnaHRzPU5uLmRlYm91bmNlKHRoaXMuX2RlYm91bmNlclVwZGF0ZUhlaWdodHMsZ3QuYWZ0ZXIoMSksKCgpPT57dGhpcy5fdXBkYXRlTWV0cmljcygpLHRoaXMuX3Bvc2l0aW9uSXRlbXMoKSx0aGlzLl91cGRhdGVTY3JvbGxlclNpemUoKX0pKX1fcmVzaXplSGFuZGxlcigpe3RoaXMuX3VwZGF0ZURldGFpbHNDZWxsSGVpZ2h0cygpLHRoaXMuX2FjY2Vzc0lyb25MaXN0QVBJKHN1cGVyLl9yZXNpemVIYW5kbGVyLCEwKSx0aGlzLl91cGRhdGVTY3JvbGxlck1lYXN1cmVtZW50cygpLHRoaXMuX191cGRhdGVGb290ZXJQb3NpdGlvbmluZygpfV9vbkFuaW1hdGlvbkVuZCh0KXswPT09dC5hbmltYXRpb25OYW1lLmluZGV4T2YoInZhYWRpbi1ncmlkLWFwcGVhciIpJiYodGhpcy5fcmVuZGVyKCksdC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLm5vdGlmeVJlc2l6ZSgpLHRoaXMuX19pdGVtc1JlY2VpdmVkKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+e3RoaXMuX19zY3JvbGxUb1BlbmRpbmdJbmRleCgpLHRoaXMuJC50YWJsZS5zdHlsZS53ZWJraXRPdmVyZmxvd1Njcm9sbGluZz0idG91Y2gifSkpKX1fdG9nZ2xlQXR0cmlidXRlKHQsZSxuKXtuLmhhc0F0dHJpYnV0ZSh0KT09PSFlJiYoZT9uLnNldEF0dHJpYnV0ZSh0LCIiKTpuLnJlbW92ZUF0dHJpYnV0ZSh0KSl9X19nZXRSb3dNb2RlbCh0KXtyZXR1cm57aW5kZXg6dC5pbmRleCxpdGVtOnQuX2l0ZW0sbGV2ZWw6dGhpcy5fZ2V0SW5kZXhMZXZlbCh0LmluZGV4KSxleHBhbmRlZDp0aGlzLl9pc0V4cGFuZGVkKHQuX2l0ZW0pLHNlbGVjdGVkOnRoaXMuX2lzU2VsZWN0ZWQodC5faXRlbSksZGV0YWlsc09wZW5lZDohKCF0aGlzLl9yb3dEZXRhaWxzVGVtcGxhdGUmJiF0aGlzLnJvd0RldGFpbHNSZW5kZXJlcikmJnRoaXMuX2lzRGV0YWlsc09wZW5lZCh0Ll9pdGVtKX19cmVuZGVyKCl7dGhpcy5fY29sdW1uVHJlZSYmKHRoaXMuX2NvbHVtblRyZWUuZm9yRWFjaCgodD0+e3QuZm9yRWFjaCgodD0+dC5fcmVuZGVySGVhZGVyQW5kRm9vdGVyKCkpKX0pKSx0aGlzLl91cGRhdGUoKSl9bm90aWZ5UmVzaXplKCl7c3VwZXIubm90aWZ5UmVzaXplKCl9X2hlaWdodEJ5Um93c0NoYW5nZWQodCxlKXsodHx8ZSkmJnRoaXMubm90aWZ5UmVzaXplKCl9X19mb3JjZVJlZmxvdygpe3RoaXMuX2RlYm91bmNlckZvcmNlUmVmbG93PU5uLmRlYm91bmNlKHRoaXMuX2RlYm91bmNlckZvcmNlUmVmbG93LF90LCgoKT0+e3RoaXMuJC5zY3JvbGxlci5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIixzZXRUaW1lb3V0KCgoKT0+dGhpcy4kLnNjcm9sbGVyLnN0eWxlLm92ZXJmbG93PSIiKSl9KSl9fWZ1bmN0aW9uIG0wdCh0LGUpe3JldHVybihmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIFZyKHt9LGNyKGUpLHQpfSkodCxlKX1jdXN0b21FbGVtZW50cy5kZWZpbmUoZjB0LmlzLGYwdCk7bGV0IGcwdD1jbGFzcyBleHRlbmRzIHdle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9ydW49IiJ9X2NzdlVybCh0LGUsbil7cmV0dXJuIGU/UE8obih0LGUpLHtmb3JtYXQ6ImNzdiJ9KToiIn1fanNvblVybCh0LGUsbil7cmV0dXJuIGU/bih0LGUpOiIifV9jc3ZOYW1lKHQsZSl7cmV0dXJuIGU/YHJ1bi0ke2V9LXRhZy0ke3R9LmNzdmA6IiJ9X2pzb25OYW1lKHQsZSl7cmV0dXJuIGU/YHJ1bi0ke2V9LXRhZy0ke3R9Lmpzb25gOiIifX07ZzB0LnRlbXBsYXRlPXhlYAogICAgPHBhcGVyLWRyb3Bkb3duLW1lbnUKICAgICAgbm8tbGFiZWwtZmxvYXQ9InRydWUiCiAgICAgIGxhYmVsPSJydW4gdG8gZG93bmxvYWQiCiAgICAgIHNlbGVjdGVkLWl0ZW0tbGFiZWw9Int7X3J1bn19IgogICAgPgogICAgICA8cGFwZXItbGlzdGJveCBzbG90PSJkcm9wZG93bi1jb250ZW50Ij4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW3J1bnNdXSI+CiAgICAgICAgICA8cGFwZXItaXRlbSBuby1sYWJlbC1mbG9hdD0idHJ1ZSI+W1tpdGVtXV08L3BhcGVyLWl0ZW0+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9wYXBlci1saXN0Ym94PgogICAgPC9wYXBlci1kcm9wZG93bi1tZW51PgogICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19ydW5dXSI+CiAgICAgIDxhIGRvd25sb2FkPSJbW19jc3ZOYW1lKHRhZywgX3J1bildXSIgaHJlZj0iW1tfY3N2VXJsKHRhZywgX3J1biwgdXJsRm4pXV0iCiAgICAgICAgPkNTVjwvYQogICAgICA+PCEtLQogICAgICAtLT48YQogICAgICAgIGRvd25sb2FkPSJbW19qc29uTmFtZSh0YWcsIF9ydW4pXV0iCiAgICAgICAgaHJlZj0iW1tfanNvblVybCh0YWcsIF9ydW4sIHVybEZuKV1dIgogICAgICAgID5KU09OPC9hCiAgICAgID4KICAgIDwvdGVtcGxhdGU+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICB9CiAgICAgIHBhcGVyLWRyb3Bkb3duLW1lbnUgewogICAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1sYWJlbDogewogICAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIH0KICAgICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dDogewogICAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIH0KICAgICAgfQogICAgICBhIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgbWFyZ2luOiAwIDAuMmVtOwogICAgICB9CiAgICAgIHBhcGVyLWlucHV0IHsKICAgICAgICBmb250LXNpemU6IDIycHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxnMHQucHJvdG90eXBlLCJfcnVuIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxnMHQucHJvdG90eXBlLCJydW5zIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGcwdC5wcm90b3R5cGUsInRhZyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxnMHQucHJvdG90eXBlLCJ1cmxGbiIsdm9pZCAwKSxnMHQ9dChbaSgidGYtZG93bmxvYWRlciIpXSxnMHQpO25ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7bGV0IF8wdD1jbGFzcyBleHRlbmRzIHdle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmNvbG9yU2NhbGU9bnVsbCx0aGlzLl9sb2FkRGF0YUNhbGxiYWNrPSh0LGUsbik9PntpZihudWxsPT1uKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBsb2FkIGRhdGEgZm9yOiIsZSk7Y29uc3QgaT1uLm1hcCgodD0+KHt3YWxsX3RpbWU6bmV3IERhdGUoMWUzKnRbMF0pLHN0ZXA6dFsxXSxzY2FsYXI6dFsyXX0pKSkscj10aGlzLl9nZXRTZXJpZXNOYW1lRnJvbURhdHVtKGUpO3Quc2V0U2VyaWVzTWV0YWRhdGEocixlKSx0LnNldFNlcmllc0RhdGEocixpKX0sdGhpcy5nZXREYXRhTG9hZFVybD0oe3RhZzp0LHJ1bjplfSk9PkVyKCkucGx1Z2luUm91dGUoInNjYWxhcnMiLCIvc2NhbGFycyIsbmV3IFVSTFNlYXJjaFBhcmFtcyh7dGFnOnQscnVuOmV9KSksdGhpcy5fZG93bmxvYWRVcmxGbj0odCxlKT0+dGhpcy5nZXREYXRhTG9hZFVybCh7dGFnOnQscnVuOmV9KSx0aGlzLnJlcXVlc3REYXRhPSh0LGUsbik9PnRoaXMuaW5Db2xhYj90aGlzLl9yZXF1ZXN0RGF0YUdldCh0LGUsbik6dGhpcy5fcmVxdWVzdERhdGFQb3N0KHQsZSxuKSx0aGlzLl9yZXF1ZXN0RGF0YUdldD0odCxlLG4pPT57Y29uc3QgaT1FcigpLnBsdWdpblJvdXRlKCJzY2FsYXJzIiwiL3NjYWxhcnMiKTtQcm9taXNlLmFsbCh0Lm1hcCgodD0+e2NvbnN0IG49UE8oaSx7dGFnOnQudGFnLHJ1bjp0LnJ1bn0pO3JldHVybiB0aGlzLnJlcXVlc3RNYW5hZ2VyLnJlcXVlc3QobikudGhlbigobj0+e2Uoe2l0ZW06dCxkYXRhOm59KX0pKX0pKSkuZmluYWxseSgoKCk9PntuKCl9KSl9LHRoaXMuX3JlcXVlc3REYXRhUG9zdD0odCxlLG4pPT57dmFyIGk7Y29uc3Qgcj1FcigpLnBsdWdpblJvdXRlKCJzY2FsYXJzIiwiL3NjYWxhcnNfbXVsdGlydW4iKSxvPW5ldyBNYXA7Zm9yKGNvbnN0e3RhZzplLHJ1bjpufW9mIHQpe2xldCB0PW8uZ2V0KGUpO251bGw9PXQmJm8uc2V0KGUsdD1bXSksdC5wdXNoKG4pfWNvbnN0IGE9bnVsbCE9PShpPXRoaXMuYmF0Y2hTaXplKSYmdm9pZCAwIT09aT9pOjY0LHM9W107Zm9yKGNvbnN0W3QsZV1vZiBvKWZvcihsZXQgbj0wO248ZS5sZW5ndGg7bis9YSlzLnB1c2goe3RhZzp0LHJ1bnM6ZS5zbGljZShuLG4rYSl9KTtQcm9taXNlLmFsbChzLm1hcCgoKHt0YWc6dCxydW5zOm59KT0+dGhpcy5yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHIse3RhZzp0LHJ1bnM6bn0pLnRoZW4oKGk9Pntmb3IoY29uc3QgciBvZiBuKXtjb25zdCBuPXt0YWc6dCxydW46cn07T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGkscik/ZSh7aXRlbTpuLGRhdGE6aVtyXX0pOmUoe2l0ZW06bixkYXRhOm51bGx9KX19KSkpKSkuZmluYWxseSgoKCk9PntuKCl9KSl9LHRoaXMuX2dldERhdGFMb2FkTmFtZT10PT50aGlzLl9nZXRTZXJpZXNOYW1lRnJvbURhdHVtKHQpLHRoaXMuX2V4cGFuZGVkPSExLHRoaXMuX3Rvb2x0aXBDb2x1bW5zPSgoKT0+e2NvbnN0IHQ9cEF0LnNsaWNlKCksZT10LmZpbmRJbmRleCgodD0+Ik5hbWUiPT10LnRpdGxlKSk7cmV0dXJuIHQuc3BsaWNlKGUsMSx7dGl0bGU6Ik5hbWUiLGV2YWx1YXRlOnQ9Pntjb25zdCBlPXQuZGF0YXNldC5tZXRhZGF0YSgpLm1ldGE7cmV0dXJuIHRoaXMuX2dldFNlcmllc0Rpc3BsYXlOYW1lRnJvbURhdHVtKGUpfX0pLHR9KSgpfV9nZXRDaGFydERhdGFMb2FkZXIoKXtyZXR1cm4gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoInRmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXIiKX1yZWxvYWQoKXt0aGlzLl9nZXRDaGFydERhdGFMb2FkZXIoKS5yZWxvYWQoKX1yZWRyYXcoKXt0aGlzLl9nZXRDaGFydERhdGFMb2FkZXIoKS5yZWRyYXcoKX1fdG9nZ2xlRXhwYW5kZWQodCl7dGhpcy5zZXQoIl9leHBhbmRlZCIsIXRoaXMuX2V4cGFuZGVkKSx0aGlzLnJlZHJhdygpfV90b2dnbGVMb2dTY2FsZSgpe3RoaXMuc2V0KCJfbG9nU2NhbGVBY3RpdmUiLCF0aGlzLl9sb2dTY2FsZUFjdGl2ZSl9X3Jlc2V0RG9tYWluKCl7Y29uc3QgdD10aGlzLl9nZXRDaGFydERhdGFMb2FkZXIoKTt0JiZ0LnJlc2V0RG9tYWluKCl9X3VwZGF0ZURvd25sb2FkTGluaygpe2NvbnN0IHQ9dGhpcy5fZ2V0Q2hhcnREYXRhTG9hZGVyKCkuZXhwb3J0QXNTdmdTdHJpbmcoKTt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiI3N2Z0xpbmsiKS5ocmVmPWBkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LCR7YnRvYSh0KX1gfV9ydW5zRnJvbURhdGEodCl7cmV0dXJuIHQubWFwKCh0PT50LnJ1bikpfV9nZXREYXRhU2VyaWVzKCl7cmV0dXJuIHRoaXMuZGF0YVRvTG9hZC5tYXAoKHQ9PnRoaXMuX2dldFNlcmllc05hbWVGcm9tRGF0dW0odCkpKX1fZ2V0U2VyaWVzTmFtZUZyb21EYXR1bSh7cnVuOnQsZXhwZXJpbWVudDplPXtuYW1lOiJfZGVmYXVsdCJ9fSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KFtlLm5hbWUsdF0pfV9nZXRTZXJpZXNEaXNwbGF5TmFtZUZyb21EYXR1bSh0KXtyZXR1cm4gdC5ydW59X2dldENvbG9yU2NhbGUoKXtyZXR1cm4gbnVsbCE9PXRoaXMuY29sb3JTY2FsZT90aGlzLmNvbG9yU2NhbGU6e3NjYWxlOnQ9Pntjb25zdFssZV09SlNPTi5wYXJzZSh0KTtyZXR1cm4gX08oZSl9fX19O18wdC50ZW1wbGF0ZT14ZWAKICAgIDx0Zi1jYXJkLWhlYWRpbmcKICAgICAgdGFnPSJbW3RhZ11dIgogICAgICBkaXNwbGF5LW5hbWU9IltbdGFnTWV0YWRhdGEuZGlzcGxheU5hbWVdXSIKICAgICAgZGVzY3JpcHRpb249IltbdGFnTWV0YWRhdGEuZGVzY3JpcHRpb25dXSIKICAgID48L3RmLWNhcmQtaGVhZGluZz4KICAgIDxkaXYgaWQ9InRmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXItY29udGFpbmVyIj4KICAgICAgPHRmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXIKICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgY29sb3Itc2NhbGU9IltbX2dldENvbG9yU2NhbGUoY29sb3JTY2FsZSldXSIKICAgICAgICBkYXRhLXNlcmllcz0iW1tfZ2V0RGF0YVNlcmllcyhkYXRhVG9Mb2FkLiopXV0iCiAgICAgICAgZGF0YS10by1sb2FkPSJbW2RhdGFUb0xvYWRdXSIKICAgICAgICBnZXQtZGF0YS1sb2FkLW5hbWU9IltbX2dldERhdGFMb2FkTmFtZV1dIgogICAgICAgIGdldC1kYXRhLWxvYWQtdXJsPSJbW2dldERhdGFMb2FkVXJsXV0iCiAgICAgICAgcmVxdWVzdC1kYXRhPSJbW3JlcXVlc3REYXRhXV0iCiAgICAgICAgaWdub3JlLXktb3V0bGllcnM9IltbaWdub3JlWU91dGxpZXJzXV0iCiAgICAgICAgbG9hZC1kYXRhLWNhbGxiYWNrPSJbW19sb2FkRGF0YUNhbGxiYWNrXV0iCiAgICAgICAgbG9hZC1rZXk9IltbdGFnXV0iCiAgICAgICAgbG9nLXNjYWxlLWFjdGl2ZT0iW1tfbG9nU2NhbGVBY3RpdmVdXSIKICAgICAgICByZXF1ZXN0LW1hbmFnZXI9IltbcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgICBzbW9vdGhpbmctZW5hYmxlZD0iW1tzbW9vdGhpbmdFbmFibGVkXV0iCiAgICAgICAgc21vb3RoaW5nLXdlaWdodD0iW1tzbW9vdGhpbmdXZWlnaHRdXSIKICAgICAgICB0YWctbWV0YWRhdGE9IltbdGFnTWV0YWRhdGFdXSIKICAgICAgICB0b29sdGlwLWNvbHVtbnM9IltbX3Rvb2x0aXBDb2x1bW5zXV0iCiAgICAgICAgdG9vbHRpcC1wb3NpdGlvbj0iYXV0byIKICAgICAgICB0b29sdGlwLXNvcnRpbmctbWV0aG9kPSJbW3Rvb2x0aXBTb3J0aW5nTWV0aG9kXV0iCiAgICAgICAgeC10eXBlPSJbW3hUeXBlXV0iCiAgICAgID4KICAgICAgPC90Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJidXR0b25zIj4KICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgc2VsZWN0ZWQkPSJbW19leHBhbmRlZF1dIgogICAgICAgIGljb249ImZ1bGxzY3JlZW4iCiAgICAgICAgb24tdGFwPSJfdG9nZ2xlRXhwYW5kZWQiCiAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPgogICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICBzZWxlY3RlZCQ9IltbX2xvZ1NjYWxlQWN0aXZlXV0iCiAgICAgICAgaWNvbj0ibGluZS13ZWlnaHQiCiAgICAgICAgb24tdGFwPSJfdG9nZ2xlTG9nU2NhbGUiCiAgICAgICAgdGl0bGU9IlRvZ2dsZSB5LWF4aXMgbG9nIHNjYWxlIgogICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgaWNvbj0ic2V0dGluZ3Mtb3ZlcnNjYW4iCiAgICAgICAgb24tdGFwPSJfcmVzZXREb21haW4iCiAgICAgICAgdGl0bGU9IkZpdCBkb21haW4gdG8gZGF0YSIKICAgICAgPjwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tzaG93RG93bmxvYWRMaW5rc11dIj4KICAgICAgICA8cGFwZXItbWVudS1idXR0b24gb24tcGFwZXItZHJvcGRvd24tb3Blbj0iX3VwZGF0ZURvd25sb2FkTGluayI+CiAgICAgICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICAgICAgY2xhc3M9ImRyb3Bkb3duLXRyaWdnZXIiCiAgICAgICAgICAgIHNsb3Q9ImRyb3Bkb3duLXRyaWdnZXIiCiAgICAgICAgICAgIGljb249ImZpbGUtZG93bmxvYWQiCiAgICAgICAgICA+PC9wYXBlci1pY29uLWJ1dHRvbj4KICAgICAgICAgIDxwYXBlci1saXN0Ym94IGNsYXNzPSJkcm9wZG93bi1jb250ZW50IiBzbG90PSJkcm9wZG93bi1jb250ZW50Ij4KICAgICAgICAgICAgPHBhcGVyLWl0ZW0+CiAgICAgICAgICAgICAgPGEgaWQ9InN2Z0xpbmsiIGRvd25sb2FkPSJbW3RhZ11dLnN2ZyI+CiAgICAgICAgICAgICAgICBEb3dubG9hZCBDdXJyZW50IENoYXJ0IGFzIFNWRwogICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9wYXBlci1pdGVtPgogICAgICAgICAgPC9wYXBlci1saXN0Ym94PgogICAgICAgIDwvcGFwZXItbWVudS1idXR0b24+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDxzcGFuIHN0eWxlPSJmbGV4LWdyb3c6IDEiPjwvc3Bhbj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW3Nob3dEb3dubG9hZExpbmtzXV0iPgogICAgICAgIDxkaXYgY2xhc3M9ImRvd25sb2FkLWxpbmtzIj4KICAgICAgICAgIDx0Zi1kb3dubG9hZGVyCiAgICAgICAgICAgIHJ1bnM9IltbX3J1bnNGcm9tRGF0YShkYXRhVG9Mb2FkKV1dIgogICAgICAgICAgICB0YWc9IltbdGFnXV0iCiAgICAgICAgICAgIHVybC1mbj0iW1tfZG93bmxvYWRVcmxGbl1dIgogICAgICAgICAgPjwvdGYtZG93bmxvYWRlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvZGl2PgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgbWFyZ2luOiA1cHg7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDMzMHB4OwogICAgICB9CgogICAgICA6aG9zdChbX2V4cGFuZGVkXSkgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICA6aG9zdChbX2V4cGFuZGVkXSkgI3RmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXItY29udGFpbmVyIHsKICAgICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICB9CgogICAgICAjdGYtbGluZS1jaGFydC1kYXRhLWxvYWRlci1jb250YWluZXIgewogICAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIHRmLWNhcmQtaGVhZGluZyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgfQoKICAgICAgI2J1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgfQoKICAgICAgcGFwZXItaWNvbi1idXR0b24gewogICAgICAgIGNvbG9yOiAjMjE5NmYzOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgfQoKICAgICAgcGFwZXItaWNvbi1idXR0b25bc2VsZWN0ZWRdIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10Yi11aS1saWdodC1hY2NlbnQpOwogICAgICB9CgogICAgICAuZG93bmxvYWQtbGlua3MgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICB9CgogICAgICAuZG93bmxvYWQtbGlua3MgYSB7CiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBtYXJnaW46IDJweDsKICAgICAgfQoKICAgICAgLmRvd25sb2FkLWxpbmtzIHBhcGVyLWRyb3Bkb3duLW1lbnUgewogICAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1sYWJlbDogewogICAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIH0KICAgICAgICAtLXBhcGVyLWlucHV0LWNvbnRhaW5lci1pbnB1dDogewogICAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIH0KICAgICAgfQoKICAgICAgcGFwZXItbWVudS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KICAgICAgcGFwZXItaXRlbSBhIHsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLF8wdC5wcm90b3R5cGUsInRhZyIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sXzB0LnByb3RvdHlwZSwiZGF0YVRvTG9hZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxfMHQucHJvdG90eXBlLCJ4VHlwZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLF8wdC5wcm90b3R5cGUsImFjdGl2ZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLF8wdC5wcm90b3R5cGUsImlnbm9yZVlPdXRsaWVycyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixicildLF8wdC5wcm90b3R5cGUsInJlcXVlc3RNYW5hZ2VyIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sXzB0LnByb3RvdHlwZSwic2hvd0Rvd25MaW5rcyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLF8wdC5wcm90b3R5cGUsInNtb290aGluZ0VuYWJsZWQiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sXzB0LnByb3RvdHlwZSwic21vb3RoaW5nV2VpZ2h0Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLF8wdC5wcm90b3R5cGUsInRhZ01ldGFkYXRhIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLF8wdC5wcm90b3R5cGUsImNvbG9yU2NhbGUiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sXzB0LnByb3RvdHlwZSwidG9vbHRpcFNvcnRpbmdNZXRob2QiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sXzB0LnByb3RvdHlwZSwiYmF0Y2hTaXplIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxfMHQucHJvdG90eXBlLCJpbkNvbGFiIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLF8wdC5wcm90b3R5cGUsIl9sb2FkRGF0YUNhbGxiYWNrIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKV0sXzB0LnByb3RvdHlwZSwiZ2V0RGF0YUxvYWRVcmwiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sXzB0LnByb3RvdHlwZSwiX2Rvd25sb2FkVXJsRm4iLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSxfMHQucHJvdG90eXBlLCJyZXF1ZXN0RGF0YSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxfMHQucHJvdG90eXBlLCJfZ2V0RGF0YUxvYWROYW1lIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixyZWZsZWN0VG9BdHRyaWJ1dGU6ITB9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLF8wdC5wcm90b3R5cGUsIl9leHBhbmRlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLF8wdC5wcm90b3R5cGUsIl9sb2dTY2FsZUFjdGl2ZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sXzB0LnByb3RvdHlwZSwiX3Rvb2x0aXBDb2x1bW5zIix2b2lkIDApLF8wdD10KFtpKCJ0Zi1zY2FsYXItY2FyZCIpXSxfMHQpO2xldCB5MHQ9Y2xhc3MgZXh0ZW5kcyhtMHQoW0FvXSx3ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnNlc3Npb25Hcm91cD1udWxsLHRoaXMuX3hUeXBlPXdDdC5TVEVQLHRoaXMuX25vTXVsdGlFeHBlcmltZW50cz0hMSx0aGlzLl9yZXF1ZXN0RGF0YT0odCxlLG4pPT57UHJvbWlzZS5hbGwodC5tYXAoKHQ9PnRoaXMuYmFja2VuZC5saXN0TWV0cmljRXZhbHMoe2V4cGVyaW1lbnROYW1lOnRoaXMuZXhwZXJpbWVudE5hbWUsc2Vzc2lvbk5hbWU6dC5ydW4sbWV0cmljTmFtZTp0LnRhZ30pLnRoZW4oKG49PntlKHtpdGVtOnQsZGF0YTpufSl9KSkpKSkuZmluYWxseSgoKCk9PntuKCl9KSl9LHRoaXMuX2NvbG9yU2NhbGU9e3NjYWxlOnQ9Pntjb25zdCBlPUpTT04ucGFyc2UodClbMV0sbj10aGlzLl9pbmRleE9mU2Vzc2lvbi5nZXQoZSk7cmV0dXJuIGZPWyh0aGlzLl9zZXNzaW9uR3JvdXBOYW1lSGFzaCtuKSVmTy5sZW5ndGhdfX19Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiaXJvbi1yZXNpemUiLHRoaXMucmVkcmF3LmJpbmQodGhpcykpfXJlZHJhdygpe3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCJ0Zi1zY2FsYXItY2FyZCIpLmZvckVhY2goKHQ9PnQucmVkcmF3KCkpKX1fc2Vzc2lvbkdyb3VwQ2hhbmdlZCgpe3RoaXMuc2Vzc2lvbkdyb3VwJiYwIT1PYmplY3Qua2V5cyh0aGlzLnNlc3Npb25Hcm91cCkubGVuZ3RoPyh0aGlzLl9pbmRleE9mU2Vzc2lvbj1uZXcgTWFwKHRoaXMuc2Vzc2lvbkdyb3VwLnNlc3Npb25zLm1hcCgoKHQsZSk9Plt0Lm5hbWUsZV0pKSksdGhpcy5fc2Vzc2lvbkdyb3VwTmFtZUhhc2g9Skp0KHRoaXMuc2Vzc2lvbkdyb3VwLm5hbWUpKToodGhpcy5faW5kZXhPZlNlc3Npb249bmV3IE1hcCx0aGlzLl9zZXNzaW9uR3JvdXBOYW1lSGFzaD0wKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgidGYtc2NhbGFyLWNhcmQiKS5mb3JFYWNoKCh0PT57Y29uc3QgZT10LG49ZS5nZXQoInRhZyIpO2Uuc2V0KCJ0YWciLCIiKSxlLnNldCgidGFnIixuKX0pKX1faGF2ZU1ldHJpY3MoKXtyZXR1cm4gdGhpcy52aXNpYmxlU2NoZW1hJiZBcnJheS5pc0FycmF5KHRoaXMudmlzaWJsZVNjaGVtYS5tZXRyaWNJbmZvcykmJnRoaXMudmlzaWJsZVNjaGVtYS5tZXRyaWNJbmZvcy5sZW5ndGg+MH1faGF2ZU1ldHJpY3NBbmRTZXNzaW9uR3JvdXAoKXtyZXR1cm4gdGhpcy5zZXNzaW9uR3JvdXAmJnRoaXMuX2hhdmVNZXRyaWNzKCl9X2NvbXB1dGVTZXJpZXNGb3JTZXNzaW9uR3JvdXBNZXRyaWModCxlKXtyZXR1cm4gbnVsbD09PXR8fDA9PU9iamVjdC5rZXlzKHQpLmxlbmd0aHx8bnVsbD09PWU/W106dC5zZXNzaW9ucy5maWx0ZXIoKHQ9PnZvaWQgMCE9PUlKdCh0Lm1ldHJpY1ZhbHVlcyxlLm5hbWUpKSkubWFwKCh0PT4oe3RhZzplLm5hbWUscnVuOnQubmFtZX0pKSl9X2NvbXB1dGVUYWdNZXRhZGF0YSh0KXtyZXR1cm57ZGlzcGxheU5hbWU6Q0p0KHQpLGRlc2NyaXB0aW9uOnQuZGVzY3JpcHRpb258fCIifX19O3kwdC50ZW1wbGF0ZT14ZWAKICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shc2Vzc2lvbkdyb3VwXV0iPgogICAgICA8ZGl2PgogICAgICAgIDxoMz5ObyBzZXNzaW9uIGdyb3VwIHNlbGVjdGVkPC9oMz4KICAgICAgICA8cD5QbGVhc2Ugc2VsZWN0IGEgc2Vzc2lvbiBncm91cCB0byBzZWUgaXRzIG1ldHJpYy1ncmFwaHMgaGVyZS48L3A+CiAgICAgIDwvZGl2PgogICAgPC90ZW1wbGF0ZT4KICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shX2hhdmVNZXRyaWNzKHZpc2libGVTY2hlbWEuKildXSI+CiAgICAgIDxkaXY+CiAgICAgICAgPGgzPk5vIG1ldHJpY3MgYXJlIGVuYWJsZWQ8L2gzPgogICAgICAgIDxwPlBsZWFzZSBlbmFibGUgc29tZSBtZXRyaWNzIHRvIHNlZSBjb250ZW50IGhlcmUuPC9wPgogICAgICA8L2Rpdj4KICAgIDwvdGVtcGxhdGU+CiAgICA8ZGl2IGNsYXNzPSJsYXlvdXQgaG9yaXpvbnRhbCB3cmFwIHNlc3Npb24tZ3JvdXAtZGV0YWlscyI+CiAgICAgIDx0ZW1wbGF0ZQogICAgICAgIGlzPSJkb20taWYiCiAgICAgICAgaWY9IltbX2hhdmVNZXRyaWNzQW5kU2Vzc2lvbkdyb3VwKHZpc2libGVTY2hlbWEuKiwgc2Vzc2lvbkdyb3VwKV1dIgogICAgICA+CiAgICAgICAgPHRlbXBsYXRlCiAgICAgICAgICBpcz0iZG9tLXJlcGVhdCIKICAgICAgICAgIGl0ZW1zPSJbW3Zpc2libGVTY2hlbWEubWV0cmljSW5mb3NdXSIKICAgICAgICAgIGFzPSJtZXRyaWNJbmZvIgogICAgICAgID4KICAgICAgICAgIDwhLS0gTm90ZSB0aGF0IHdlIGRvIG5vdCBwcm92aWRlIGEgcmVxdWVzdC1tYW5hZ2VyIGF0dHJpYnV0ZSBzaW5jZQogICAgICAgICAgICAgICB3ZSBwcm92aWRlIGEgZnVuY3Rpb24gaW4gcmVxdWVzdC1kYXRhIGZvciBjYWxsaW5nIHRoZSBiYWNrZW5kCiAgICAgICAgICAgICAgIHRvIGdldCB0aGUgbWV0cmljcyBkYXRhLgogICAgICAgICAgICAtLT4KICAgICAgICAgIDx0Zi1zY2FsYXItY2FyZAogICAgICAgICAgICBjbGFzcz0ic2NhbGFyLWNhcmQiCiAgICAgICAgICAgIGNvbG9yLXNjYWxlPSJbW19jb2xvclNjYWxlXV0iCiAgICAgICAgICAgIGRhdGEtdG8tbG9hZD0iW1tfY29tcHV0ZVNlcmllc0ZvclNlc3Npb25Hcm91cE1ldHJpYyhzZXNzaW9uR3JvdXAsIG1ldHJpY0luZm8pXV0iCiAgICAgICAgICAgIHRhZz0iW1ttZXRyaWNJbmZvLm5hbWUudGFnXV0iCiAgICAgICAgICAgIHRhZy1tZXRhZGF0YT0iW1tfY29tcHV0ZVRhZ01ldGFkYXRhKG1ldHJpY0luZm8pXV0iCiAgICAgICAgICAgIHgtdHlwZT0iW1tfeFR5cGVdXSIKICAgICAgICAgICAgbXVsdGktZXhwZXJpbWVudHM9IltbX25vTXVsdGlFeHBlcmltZW50c11dIgogICAgICAgICAgICByZXF1ZXN0LWRhdGE9IltbX3JlcXVlc3REYXRhXV0iCiAgICAgICAgICAgIGFjdGl2ZQogICAgICAgICAgPgogICAgICAgICAgPC90Zi1zY2FsYXItY2FyZD4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L3RlbXBsYXRlPgogICAgPC9kaXY+CiAgICA8IS0tICJpcm9uLWZsZXgiIGlzIG5lZWRlZCB0byB1c2UgdGhlIGxheW91dCBjbGFzc2VzIGluIHRoZSBkaXYgYWJvdmUgLS0+CiAgICA8c3R5bGUgaW5jbHVkZT0iaXJvbi1mbGV4Ij4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0seTB0LnByb3RvdHlwZSwiYmFja2VuZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx5MHQucHJvdG90eXBlLCJleHBlcmltZW50TmFtZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSx5MHQucHJvdG90eXBlLCJ2aXNpYmxlU2NoZW1hIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHkwdC5wcm90b3R5cGUsInNlc3Npb25Hcm91cCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx5MHQucHJvdG90eXBlLCJfeFR5cGUiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSx5MHQucHJvdG90eXBlLCJfbm9NdWx0aUV4cGVyaW1lbnRzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLHkwdC5wcm90b3R5cGUsIl9pbmRleE9mU2Vzc2lvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSx5MHQucHJvdG90eXBlLCJfc2Vzc2lvbkdyb3VwTmFtZUhhc2giLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pXSx5MHQucHJvdG90eXBlLCJfcmVxdWVzdERhdGEiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0seTB0LnByb3RvdHlwZSwiX2NvbG9yU2NhbGUiLHZvaWQgMCksdChbYSgic2Vzc2lvbkdyb3VwLioiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLHkwdC5wcm90b3R5cGUsIl9zZXNzaW9uR3JvdXBDaGFuZ2VkIixudWxsKSx5MHQ9dChbaSgidGYtaHBhcmFtcy1zZXNzaW9uLWdyb3VwLWRldGFpbHMiKV0seTB0KTtsZXQgdjB0PWNsYXNzIGV4dGVuZHMoY3IoZ2wod2UpKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2hwYXJhbU5hbWU9VEp0LHRoaXMuX21ldHJpY05hbWU9Q0p0fV92aXNpYmxlU2NoZW1hT3JTZXNzaW9uR3JvdXBzQ2hhbmdlZCgpe2NvbnN0IHQ9dGhpcy4kLnNlc3Npb25Hcm91cHNUYWJsZS5nZXQoImRldGFpbHNPcGVuZWRJdGVtcyIpO3RoaXMuJC5zZXNzaW9uR3JvdXBzVGFibGUuc2V0KCJkZXRhaWxzT3BlbmVkSXRlbXMiLFtdKSxXaSgpO2NvbnN0IGU9bmV3IE1hcDt0aGlzLnNlc3Npb25Hcm91cHMuZm9yRWFjaCgodD0+e2Uuc2V0KHQubmFtZSx0KX0pKSx0aGlzLiQuc2Vzc2lvbkdyb3Vwc1RhYmxlLnNldCgiZGV0YWlsc09wZW5lZEl0ZW1zIix0Lm1hcCgodD0+ZS5nZXQodC5uYW1lKSkpLmZpbHRlcihCb29sZWFuKSl9X3Nlc3Npb25Hcm91cEhQYXJhbSh0LGUpe3JldHVybiBudWxsIT10JiYwIT1PYmplY3Qua2V5cyh0KS5sZW5ndGgmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LmhwYXJhbXMsZSk/cUp0KHQuaHBhcmFtc1tlXSk6IiJ9X3Nlc3Npb25Hcm91cE1ldHJpYyh0LGUpe2lmKG51bGw9PXR8fDA9PU9iamVjdC5rZXlzKHQpLmxlbmd0aClyZXR1cm4iIjtmb3IobGV0IG49MDtuPHQubWV0cmljVmFsdWVzLmxlbmd0aDsrK24pe2xldCBpPXQubWV0cmljVmFsdWVzW25dO2lmKGkubmFtZS5ncm91cD09PWUuZ3JvdXAmJmkubmFtZS50YWc9PWUudGFnKXJldHVybiBxSnQoaS52YWx1ZSl9cmV0dXJuIiJ9X3Jvd051bWJlcih0KXtyZXR1cm4gdCsxfX07djB0LnRlbXBsYXRlPXhlYAogICAgPHZhYWRpbi1ncmlkCiAgICAgIGNsYXNzPSJzZXNzaW9uLWdyb3VwLXRhYmxlIgogICAgICBpZD0ic2Vzc2lvbkdyb3Vwc1RhYmxlIgogICAgICBjb2x1bW4tcmVvcmRlcmluZy1hbGxvd2VkPSIiCiAgICAgIGl0ZW1zPSJbW3Nlc3Npb25Hcm91cHNdXSIKICAgID4KICAgICAgPHZhYWRpbi1ncmlkLWNvbHVtbiBmbGV4LWdyb3c9IjAiIHdpZHRoPSIxMGVtIiByZXNpemFibGU9IiI+CiAgICAgICAgPHRlbXBsYXRlIGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtaGVhZGVyIHRhYmxlLWNlbGwiPlRyaWFsIElEPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1jZWxsIj5bW2l0ZW0ubmFtZV1dPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC92YWFkaW4tZ3JpZC1jb2x1bW4+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tlbmFibGVTaG93TWV0cmljc11dIj4KICAgICAgICA8dmFhZGluLWdyaWQtY29sdW1uIGZsZXgtZ3Jvdz0iMCIgYXV0b1dpZHRoPSIiIHJlc2l6YWJsZT0iIj4KICAgICAgICAgIDx0ZW1wbGF0ZSBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtaGVhZGVyIHRhYmxlLWNlbGwiPlNob3cgTWV0cmljczwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgPHBhcGVyLWNoZWNrYm94IGNsYXNzPSJ0YWJsZS1jZWxsIiBjaGVja2VkPSJ7e2RldGFpbHNPcGVuZWR9fSI+CiAgICAgICAgICAgIDwvcGFwZXItY2hlY2tib3g+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvdmFhZGluLWdyaWQtY29sdW1uPgogICAgICA8L3RlbXBsYXRlPgogICAgICA8dGVtcGxhdGUKICAgICAgICBpcz0iZG9tLXJlcGVhdCIKICAgICAgICBpdGVtcz0iW1t2aXNpYmxlU2NoZW1hLmhwYXJhbUluZm9zXV0iCiAgICAgICAgYXM9ImhwYXJhbUluZm8iCiAgICAgICAgaW5kZXgtYXM9ImhwYXJhbUluZGV4IgogICAgICA+CiAgICAgICAgPHZhYWRpbi1ncmlkLWNvbHVtbiBmbGV4LWdyb3c9IjIiIHdpZHRoPSIxMGVtIiByZXNpemFibGU9IiI+CiAgICAgICAgICA8dGVtcGxhdGUgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLWhlYWRlciB0YWJsZS1jZWxsIj4KICAgICAgICAgICAgICBbW19ocGFyYW1OYW1lKGhwYXJhbUluZm8pXV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPHRlbXBsYXRlPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1jZWxsIj4KICAgICAgICAgICAgICBbW19zZXNzaW9uR3JvdXBIUGFyYW0oaXRlbSwgaHBhcmFtSW5mby5uYW1lKV1dCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L3ZhYWRpbi1ncmlkLWNvbHVtbj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPHRlbXBsYXRlCiAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgaXRlbXM9Int7dmlzaWJsZVNjaGVtYS5tZXRyaWNJbmZvc319IgogICAgICAgIGFzPSJtZXRyaWNJbmZvIgogICAgICAgIGluZGV4LWFzPSJtZXRyaWNJbmRleCIKICAgICAgPgogICAgICAgIDx2YWFkaW4tZ3JpZC1jb2x1bW4gZmxleC1ncm93PSIyIiB3aWR0aD0iMTBlbSIgcmVzaXphYmxlPSIiPgogICAgICAgICAgPHRlbXBsYXRlIGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1oZWFkZXIgdGFibGUtY2VsbCI+CiAgICAgICAgICAgICAgW1tfbWV0cmljTmFtZShtZXRyaWNJbmZvKV1dCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtY2VsbCI+CiAgICAgICAgICAgICAgW1tfc2Vzc2lvbkdyb3VwTWV0cmljKGl0ZW0sIG1ldHJpY0luZm8ubmFtZSldXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC92YWFkaW4tZ3JpZC1jb2x1bW4+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDx0ZW1wbGF0ZSBjbGFzcz0icm93LWRldGFpbHMiPgogICAgICAgIDx0Zi1ocGFyYW1zLXNlc3Npb24tZ3JvdXAtZGV0YWlscwogICAgICAgICAgYmFja2VuZD0iW1tiYWNrZW5kXV0iCiAgICAgICAgICBleHBlcmltZW50LW5hbWU9IltbZXhwZXJpbWVudE5hbWVdXSIKICAgICAgICAgIHNlc3Npb24tZ3JvdXA9IltbaXRlbV1dIgogICAgICAgICAgdmlzaWJsZS1zY2hlbWE9IltbdmlzaWJsZVNjaGVtYV1dIgogICAgICAgICAgY2xhc3M9InNlc3Npb24tZ3JvdXAtZGV0YWlscyIKICAgICAgICA+CiAgICAgICAgPC90Zi1ocGFyYW1zLXNlc3Npb24tZ3JvdXAtZGV0YWlscz4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvdmFhZGluLWdyaWQ+CgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lOwogICAgICB9CgogICAgICA6aG9zdCguZGFyay1tb2RlKSB7CiAgICAgICAgLS1sdW1vLWJhc2UtY29sb3I6ICMzMDMwMzA7CiAgICAgICAgLS1sdW1vLWJvZHktdGV4dC1jb2xvcjogI2ZmZjsKICAgICAgfQoKICAgICAgOmhvc3QoLmRhcmstbW9kZSkgdmFhZGluLWdyaWQgewogICAgICAgIC0tX2x1bW8tZ3JpZC1zZWNvbmRhcnktYm9yZGVyLWNvbG9yOiAjNTA1MDUwOwogICAgICB9CgogICAgICAudGFibGUtY2VsbCB7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CiAgICAgIC50YWJsZS1oZWFkZXIgewogICAgICAgIC8qIGxpbmUtYnJlYWsgb3ZlcmZsb3dpbmcgY29sdW1uIGhlYWRlcnMgKi8KICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOwogICAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgIH0KICAgICAgLnNlc3Npb24tZ3JvdXAtdGFibGUgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQogICAgICAuc2Vzc2lvbi1ncm91cC1kZXRhaWxzIHsKICAgICAgICBoZWlnaHQ6IDM2MHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSx2MHQucHJvdG90eXBlLCJ2aXNpYmxlU2NoZW1hIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSx2MHQucHJvdG90eXBlLCJzZXNzaW9uR3JvdXBzIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sdjB0LnByb3RvdHlwZSwiZW5hYmxlU2hvd01ldHJpY3MiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sdjB0LnByb3RvdHlwZSwiYmFja2VuZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSx2MHQucHJvdG90eXBlLCJleHBlcmltZW50TmFtZSIsdm9pZCAwKSx0KFthKCJ2aXNpYmxlU2NoZW1hLioiLCJzZXNzaW9uR3JvdXBzLioiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLHYwdC5wcm90b3R5cGUsIl92aXNpYmxlU2NoZW1hT3JTZXNzaW9uR3JvdXBzQ2hhbmdlZCIsbnVsbCksdjB0PXQoW2koInRmLWhwYXJhbXMtdGFibGUtdmlldyIpXSx2MHQpO2xldCBiMHQ9Y2xhc3MgZXh0ZW5kcyB3ZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5zZXNzaW9uR3JvdXA9bnVsbCx0aGlzLnZpc2libGVTY2hlbWE9bnVsbH1fcHJvcGVydGllc0FyZVBvcHVsYXRlZCh0LGUpe3JldHVybiBudWxsIT10JiZudWxsIT1lfV9zaW5nbGV0b25TZXNzaW9uR3JvdXBzKHQpe3JldHVybiBudWxsPT10P1tdOlt0XX19O2Z1bmN0aW9uIHgwdCh0LGUsbixpKXtpZihlLmxlbmd0aDwyKXJldHVybiBjb25zb2xlLmVycm9yKCJMZXNzIHRoYW4gdHdvIGF4ZXMgaW4gcGFyYWxsZWwgY29vcmRpbmF0ZXMgcGxvdC4iKSxudWxsO2NvbnN0IHI9blswXSxvPW5bMV07aWYocjw9ZVswXXx8cj49ZVtlLmxlbmd0aC0xXSlyZXR1cm4gbnVsbDtjb25zdCBhPUNlLmV4cG9ydHMuc29ydGVkSW5kZXgoZSxyKTtjb25zb2xlLmFzc2VydChhPjApLGNvbnNvbGUuYXNzZXJ0KGE8ZS5sZW5ndGgpO2NvbnN0IHM9YS0xO2xldCBsPW51bGwsYz1udWxsO3JldHVybiB0LmZvckVhY2goKHQ9Pntjb25zdCBlPShmdW5jdGlvbiBuKHQsZSxpLGEpe2NvbnN0IHM9dC1pLGw9ZS1hLGM9ci1pLHU9by1hLGg9KHMqYytsKnUpLyhzKnMrbCpsKTtpZihoPD0wKXJldHVybiBZSnQoYyx1KTtpZihoPj0xKXJldHVybiBZSnQodC1yLGUtbyk7cmV0dXJuIFlKdChjLWgqcyx1LWgqbCl9KSh0LmNvbnRyb2xQb2ludHNbc11bMF0sdC5jb250cm9sUG9pbnRzW3NdWzFdLHQuY29udHJvbFBvaW50c1thXVswXSx0LmNvbnRyb2xQb2ludHNbYV1bMV0pO2U+aXx8KG51bGw9PT1sfHxlPGwpJiYobD1lLGM9dCl9KSksY31mdW5jdGlvbiB3MHQodCxlLG4pe2Z1bmN0aW9uIGkoKXtpZigwPT09dC5sZW5ndGgpcmV0dXJuWzEsMl07Y29uc3RbZSxuXT1HbCh0KTtyZXR1cm4gZSE9PW4/W2Usbl06ZT4wP1suNSplLDEuNSplXTplPDA/WzEuNSplLC41KmVdOlstMSwxXX1pZigiTElORUFSIj09PW4pcmV0dXJuIGNFKCkuZG9tYWluKGkoKSkucmFuZ2UoW2UsMF0pO2lmKCJMT0ciPT09bil7Y29uc3Qgbj1pKCk7cmV0dXJuIG5bMF08PTAmJm5bMV0+PTA/dzB0KHQsZSwiTElORUFSIik6eUUoKS5kb21haW4obikucmFuZ2UoW2UsMF0pfWlmKCJRVUFOVElMRSI9PT1uKXtjb25zdCBuPTIwLGk9S2wobikubWFwKCh0PT5lLXQqZS8obi0xKSkpO3JldHVybiAwPT09dC5sZW5ndGgmJih0PVsxXSksQ0UoKS5kb21haW4oQ2UuZXhwb3J0cy51bmlxKHQpKS5yYW5nZShpKX1pZigiTk9OX05VTUVSSUMiPT09bilyZXR1cm4gS00oKS5kb21haW4oQ2UuZXhwb3J0cy51bmlxKHQuc29ydCgpKSkucmFuZ2UoW2UsMF0pLnBhZGRpbmcoLjEpO3Rocm93IFJhbmdlRXJyb3IoIlVua25vd24gc2NhbGU6ICIrbil9dmFyIFMwdCxNMHQ7YjB0LnRlbXBsYXRlPXhlYAogICAgPCEtLSBJZiBzZXNzaW9uR3JvdXAgb3IgdmlzaWJsZVNjaGVtYSBhcmUgbm90IHBvcHVsYXRlZCwgZG8gbm90IGRpc3BsYXkKICAgICAgICAgYW55dGhpbmcuCiAgICAgIC0tPgogICAgPHRlbXBsYXRlCiAgICAgIGlzPSJkb20taWYiCiAgICAgIGlmPSJbW19wcm9wZXJ0aWVzQXJlUG9wdWxhdGVkKHZpc2libGVTY2hlbWEsIHNlc3Npb25Hcm91cCldXSIKICAgID4KICAgICAgPCEtLSBEaXNwbGF5IG9uZSByb3cgd2l0aG91dCBhICJzaG93LW1ldHJpY3MiIGNvbHVtbiAtLT4KICAgICAgPHRmLWhwYXJhbXMtdGFibGUtdmlldwogICAgICAgIHZpc2libGUtc2NoZW1hPSJbW3Zpc2libGVTY2hlbWFdXSIKICAgICAgICBzZXNzaW9uLWdyb3Vwcz0iW1tfc2luZ2xldG9uU2Vzc2lvbkdyb3VwcyhzZXNzaW9uR3JvdXApXV0iCiAgICAgID4KICAgICAgPC90Zi1ocGFyYW1zLXRhYmxlLXZpZXc+CiAgICA8L3RlbXBsYXRlPgogICAgPHRlbXBsYXRlCiAgICAgIGlzPSJkb20taWYiCiAgICAgIGlmPSJbWyFfcHJvcGVydGllc0FyZVBvcHVsYXRlZCh2aXNpYmxlU2NoZW1hLCBzZXNzaW9uR3JvdXApXV0iCiAgICA+CiAgICAgIDxkaXY+Q2xpY2sgb3IgaG92ZXIgb3ZlciBhIHNlc3Npb24gZ3JvdXAgdG8gZGlzcGxheSBpdHMgdmFsdWVzIGhlcmUuPC9kaXY+CiAgICA8L3RlbXBsYXRlPgoKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sYjB0LnByb3RvdHlwZSwic2Vzc2lvbkdyb3VwIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGIwdC5wcm90b3R5cGUsInZpc2libGVTY2hlbWEiLHZvaWQgMCksYjB0PXQoW2koInRmLWhwYXJhbXMtc2Vzc2lvbi1ncm91cC12YWx1ZXMiKV0sYjB0KSwoZnVuY3Rpb24odCl7dC5MSU5FQVI9IkxJTkVBUiIsdC5MT0c9IkxPRyIsdC5RVUFOVElMRT0iUVVBTlRJTEUiLHQuTk9OX05VTUVSSUM9Ik5PTl9OVU1FUklDIn0pKFMwdHx8KFMwdD17fSkpO2NsYXNzIEUwdHtpc1Bhc3NpbmcodCl7cmV0dXJuITB9fWNsYXNzIFQwdHtjb25zdHJ1Y3Rvcih0LGUsbixpKXt0aGlzLl9sb3dlcj10LHRoaXMuX3VwcGVyPWUsdGhpcy5fbG93ZXJPcGVuPW4sdGhpcy5fdXBwZXJPcGVuPWl9aXNQYXNzaW5nKHQpe2NvbnN0IGU9dDtyZXR1cm4gdGhpcy5fYmVmb3JlKHRoaXMuX2xvd2VyLGUsIXRoaXMuX2xvd2VyT3BlbikmJnRoaXMuX2JlZm9yZShlLHRoaXMuX3VwcGVyLCF0aGlzLl91cHBlck9wZW4pfV9iZWZvcmUodCxlLG4pe3JldHVybiBuP3Q8PWU6dDxlfX1jbGFzcyBDMHR7Y29uc3RydWN0b3IodCl7dGhpcy5fZG9tYWluU2V0PXR9aXNQYXNzaW5nKHQpe3JldHVybi0xIT09dGhpcy5fZG9tYWluU2V0LmZpbmRJbmRleCgoZT0+ZT09PXQpKX19Y2xhc3MgQTB0e2NvbnN0cnVjdG9yKHQsZSxuLGkpe3RoaXMuX3N2Z1Byb3BzPXQsdGhpcy5fc2NoZW1hPWUsdGhpcy5faW50ZXJhY3Rpb25NYW5hZ2VyPW4sdGhpcy5fY29sSW5kZXg9aSx0aGlzLl9pc0Rpc3BsYXllZD0hMSx0aGlzLl95U2NhbGU9bnVsbCx0aGlzLl9zY2FsZVR5cGU9bnVsbCx0aGlzLnNldEJydXNoU2VsZWN0aW9uKG51bGwpfWNvbEluZGV4KCl7cmV0dXJuIHRoaXMuX2NvbEluZGV4fXlTY2FsZSgpe3JldHVybiB0aGlzLl95U2NhbGV9c2NhbGVUeXBlKCl7cmV0dXJuIHRoaXMuX3NjYWxlVHlwZX1icnVzaFNlbGVjdGlvbigpe3JldHVybiB0aGlzLl9icnVzaFNlbGVjdGlvbn1pc0Rpc3BsYXllZCgpe3JldHVybiB0aGlzLl9pc0Rpc3BsYXllZH1zZXRCcnVzaFNlbGVjdGlvbih0KXt0aGlzLl9icnVzaFNlbGVjdGlvbj10LHRoaXMuX2JydXNoRmlsdGVyPXRoaXMuX2J1aWxkQnJ1c2hGaWx0ZXIodGhpcy5icnVzaFNlbGVjdGlvbigpLHRoaXMuc2NhbGVUeXBlKCksdGhpcy55U2NhbGUoKSl9c2V0RG9tYWluQW5kU2NhbGUodCxlKXt0aGlzLl9zY2FsZVR5cGU9ZSx0aGlzLl95U2NhbGU9dzB0KHQuc2xpY2UoKSx0aGlzLl9zdmdQcm9wcy5oZWlnaHQsdGhpcy5zY2FsZVR5cGUoKSksdGhpcy5fYnJ1c2hGaWx0ZXI9dGhpcy5fYnVpbGRCcnVzaEZpbHRlcih0aGlzLmJydXNoU2VsZWN0aW9uKCksdGhpcy5zY2FsZVR5cGUoKSx0aGlzLnlTY2FsZSgpKX1icnVzaEZpbHRlcigpe3JldHVybiB0aGlzLl9icnVzaEZpbHRlcn11cGRhdGVET00odCl7bGV0IGU9YmModGhpcy55U2NhbGUoKSk7dGhpcy5zY2FsZVR5cGUoKT09PVMwdC5RVUFOVElMRSYmKGU9ZS50aWNrVmFsdWVzKHRoaXMueVNjYWxlKCkucXVhbnRpbGVzKCkpLnRpY2tGb3JtYXQoRHkoIi0uNmciKSkpO2NvbnN0IG49RHUodCk7bi5zZWxlY3RBbGwoImciKS5yZW1vdmUoKSxuLmFwcGVuZCgiZyIpLmNsYXNzZWQoImF4aXMiLCEwKS5jYWxsKGUpLmFwcGVuZCgidGV4dCIpLmNsYXNzZWQoImF4aXMtdGl0bGUiLCEwKS5zdHlsZSgiY3Vyc29yIiwibW92ZSIpLnN0eWxlKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpLmF0dHIoInkiLC05KS50ZXh0KCh0PT5BSnQodGhpcy5fc2NoZW1hLHQpKSksbi5jYWxsKEloKCkub24oInN0YXJ0IiwoKCk9Pnt0LnNldEF0dHJpYnV0ZSgiaXMtZHJhZ2dpbmciLCIiKSx0aGlzLl9pbnRlcmFjdGlvbk1hbmFnZXIub25EcmFnU3RhcnQodGhpcy5jb2xJbmRleCgpKX0pKS5vbigiZHJhZyIsKCgpPT50aGlzLl9pbnRlcmFjdGlvbk1hbmFnZXIub25EcmFnKE11LngpKSkub24oImVuZCIsKCgpPT57dGhpcy5faW50ZXJhY3Rpb25NYW5hZ2VyLm9uRHJhZ0VuZCgpLHQucmVtb3ZlQXR0cmlidXRlKCJpcy1kcmFnZ2luZyIpfSkpKTtjb25zdCBpPXlnKCkuZXh0ZW50KFtbLTgsMF0sWzgsdGhpcy5fc3ZnUHJvcHMuaGVpZ2h0KzFdXSkub24oInN0YXJ0IiwoKCk9PntMMHQoTXUpJiYodC5zZXRBdHRyaWJ1dGUoImlzLWJydXNoaW5nIiwiIiksdGhpcy5faW50ZXJhY3Rpb25NYW5hZ2VyLm9uQnJ1c2hDaGFuZ2VkKHRoaXMuY29sSW5kZXgoKSxNdS5zZWxlY3Rpb24pKX0pKS5vbigiYnJ1c2giLCgoKT0+e0wwdChNdSkmJnRoaXMuX2ludGVyYWN0aW9uTWFuYWdlci5vbkJydXNoQ2hhbmdlZCh0aGlzLmNvbEluZGV4KCksTXUuc2VsZWN0aW9uKX0pKS5vbigiZW5kIiwoKCk9PntMMHQoTXUpJiYodGhpcy5faW50ZXJhY3Rpb25NYW5hZ2VyLm9uQnJ1c2hDaGFuZ2VkKHRoaXMuY29sSW5kZXgoKSxNdS5zZWxlY3Rpb24pLHQucmVtb3ZlQXR0cmlidXRlKCJpcy1icnVzaGluZyIpKX0pKSxyPUR1KHQpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImJydXNoIiwhMCk7ci5jYWxsKGkpLGkubW92ZShyLHRoaXMuYnJ1c2hTZWxlY3Rpb24oKSl9c2V0RGlzcGxheWVkKHQpe3RoaXMuX2lzRGlzcGxheWVkPXR9X2J1aWxkQnJ1c2hGaWx0ZXIodCxlLG4pe2lmKG51bGw9PT10KXJldHVybiBuZXcgRTB0O2lmKG51bGw9PT1lKXJldHVybiBjb25zb2xlLmVycm9yKCJTY2FsZSB0eXBlIGlzIG51bGwsIGJ1dCBicnVzaFNlbGVjdGlvbiBpc24ndDogIix0KSxuZXcgRTB0O3N3aXRjaChlKXtjYXNlIFMwdC5MSU5FQVI6Y2FzZSBTMHQuTE9HOntjb25zdFtlLGldPShmdW5jdGlvbiByKHQsZSxuKXtyZXR1cm5bdC5pbnZlcnQoZSksdC5pbnZlcnQobildLnNvcnQoKCh0LGUpPT50LWUpKX0pKG4sdFswXSx0WzFdKTtyZXR1cm4gbmV3IFQwdChlLGksITEsITEpfWNhc2UgUzB0LlFVQU5USUxFOntjb25zdFtlLGldPShmdW5jdGlvbiByKHQsZSxuKXtjb25zdCBpPXQucmFuZ2UoKSxyPWkuZmlsdGVyKCh0PT5lPD10JiZ0PD1uKSkubWFwKChlPT57Y29uc3Qgbj10LmludmVydEV4dGVudChlKTtyZXR1cm4gZT09PWlbaS5sZW5ndGgtMV0/W25bMF0sblsxXSsxXTpufSkpO3JldHVybiAwPT1yLmxlbmd0aD9bMCwwXTpHbChhYyhyKSl9KShuLHRbMF0sdFsxXSk7cmV0dXJuIG5ldyBUMHQoZSxpLCExLCEwKX1jYXNlIFMwdC5OT05fTlVNRVJJQzpyZXR1cm4gbmV3IEMwdCgoZnVuY3Rpb24gZSh0LG4saSl7cmV0dXJuIHQuZG9tYWluKCkuZmlsdGVyKChlPT57Y29uc3Qgcj10KGUpO3JldHVybiBuPD1yJiZyPD1pfSkpfSkobix0WzBdLHRbMV0pKX1yZXR1cm4gY29uc29sZS5lcnJvcigiVW5rbm93biBzY2FsZSB0eXBlOiAiLGUpLG5ldyBFMHR9fWNsYXNzIGswdHtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5fc3ZnUHJvcHM9dCx0aGlzLl9zY2hlbWE9ZSx0aGlzLl9heGVzPXRoaXMuX2NyZWF0ZUF4ZXMobiksdGhpcy5fc3RhdGlvbmFyeUF4ZXNQb3NpdGlvbnM9S00oKS5yYW5nZShbMSx0aGlzLl9zdmdQcm9wcy53aWR0aC0xXSkucGFkZGluZyguNSksdGhpcy5fZHJhZ2dlZEF4aXM9bnVsbCx0aGlzLl9zdmdQcm9wcy5zdmdHLnNlbGVjdEFsbCgiZy5heGlzLXBhcmVudCIpLnJlbW92ZSgpLHRoaXMuX3BhcmVudHNTZWw9dGhpcy5fc3ZnUHJvcHMuc3ZnRy5zZWxlY3RBbGwoIi5heGlzLXBhcmVudCIpfXVwZGF0ZUF4ZXModCxlKXtjb25zb2xlLmFzc2VydCghdGhpcy5pc0F4aXNEcmFnZ2luZygpKTtjb25zdCBuPW5ldyBTZXQ7dC5jb2x1bW5zLmZvckVhY2goKHQ9Pntjb25zdCBpPXQuYWJzb2x1dGVJbmRleDtsZXQgcj10aGlzLl9heGVzW2ldO3Iuc2V0RGlzcGxheWVkKCEwKTtjb25zdCBvPWUubWFwKCh0PT56SnQodGhpcy5fc2NoZW1hLHQsaSkpKTtyLnNldERvbWFpbkFuZFNjYWxlKG8sdC5zY2FsZSksbi5hZGQoaSl9KSksdGhpcy5fYXhlcy5mb3JFYWNoKCh0PT57bi5oYXModC5jb2xJbmRleCgpKXx8dC5zZXREaXNwbGF5ZWQoITEpfSkpLHRoaXMuX3VwZGF0ZVN0YXRpb25hcnlBeGVzUG9zaXRpb25zKG4pLHRoaXMuX3BhcmVudHNTZWw9dGhpcy5fcGFyZW50c1NlbC5kYXRhKEFycmF5LmZyb20obiksKHQ9PnQpKSx0aGlzLl9wYXJlbnRzU2VsLmV4aXQoKS5yZW1vdmUoKSx0aGlzLl9wYXJlbnRzU2VsPXRoaXMuX3BhcmVudHNTZWwuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJheGlzLXBhcmVudCIsITApLm1lcmdlKHRoaXMuX3BhcmVudHNTZWwpO2NvbnN0IGk9dGhpczt0aGlzLl9wYXJlbnRzU2VsLmNhbGwoKHQ9PnRoaXMuX3VwZGF0ZUF4ZXNQb3NpdGlvbnNJbkRPTSh0KSkpLmVhY2goKGZ1bmN0aW9uKHQpe2kuX2F4ZXNbdF0udXBkYXRlRE9NKHRoaXMpfSkpfW1hcFZpc2libGVBeGVzKHQpe3JldHVybiB0aGlzLl9zdGF0aW9uYXJ5QXhlc1Bvc2l0aW9ucy5kb21haW4oKS5tYXAoKGU9PnQodGhpcy5nZXRBeGlzUG9zaXRpb24oZSksdGhpcy5fYXhlc1tlXSkpKX1hbGxWaXNpYmxlQXhlc1NhdGlzZnkodCl7cmV0dXJuIHRoaXMuX3N0YXRpb25hcnlBeGVzUG9zaXRpb25zLmRvbWFpbigpLmV2ZXJ5KChlPT50KHRoaXMuZ2V0QXhpc1Bvc2l0aW9uKGUpLHRoaXMuX2F4ZXNbZV0pKSl9Z2V0QXhpc0ZvckNvbEluZGV4KHQpe3JldHVybiB0aGlzLl9heGVzW3RdfWRyYWdTdGFydCh0KXtjb25zb2xlLmFzc2VydCghdGhpcy5pc0F4aXNEcmFnZ2luZygpKSxjb25zb2xlLmFzc2VydCh0aGlzLl9heGVzW3RdLmlzRGlzcGxheWVkKCkpLHRoaXMuX2RyYWdnZWRBeGlzPXRoaXMuX2F4ZXNbdF0sdGhpcy5fZHJhZ2dlZEF4aXNQb3NpdGlvbj10aGlzLl9zdGF0aW9uYXJ5QXhlc1Bvc2l0aW9ucyh0KX1kcmFnKHQpe3Q9TWF0aC5taW4oTWF0aC5tYXgodCwwKSx0aGlzLl9zdmdQcm9wcy53aWR0aCksdGhpcy5fZHJhZ2dlZEF4aXNQb3NpdGlvbj10O2xldCBlPXRoaXMuX3N0YXRpb25hcnlBeGVzUG9zaXRpb25zLmRvbWFpbigpO2Uuc29ydCgoKHQsZSk9PnRoaXMuZ2V0QXhpc1Bvc2l0aW9uKHQpLXRoaXMuZ2V0QXhpc1Bvc2l0aW9uKGUpKSksdGhpcy5fc3RhdGlvbmFyeUF4ZXNQb3NpdGlvbnMuZG9tYWluKGUpLHRoaXMuX3VwZGF0ZUF4ZXNQb3NpdGlvbnNJbkRPTSh0aGlzLl9wYXJlbnRzU2VsKX1kcmFnRW5kKHQpe2NvbnNvbGUuYXNzZXJ0KHRoaXMuaXNBeGlzRHJhZ2dpbmcoKSksdGhpcy5fZHJhZ2dlZEF4aXNQb3NpdGlvbj1udWxsLHRoaXMuX2RyYWdnZWRBeGlzPW51bGwsdGhpcy5fdXBkYXRlQXhlc1Bvc2l0aW9uc0luRE9NKHRoaXMuX3BhcmVudHNTZWwudHJhbnNpdGlvbigpLmR1cmF0aW9uKHQpKX1pc0F4aXNEcmFnZ2luZygpe3JldHVybiBudWxsIT09dGhpcy5fZHJhZ2dlZEF4aXN9Z2V0QXhpc1Bvc2l0aW9uKHQpe3JldHVybiBudWxsIT09dGhpcy5fZHJhZ2dlZEF4aXMmJnRoaXMuX2RyYWdnZWRBeGlzLmNvbEluZGV4KCk9PT10P3RoaXMuX2RyYWdnZWRBeGlzUG9zaXRpb246dGhpcy5fc3RhdGlvbmFyeUF4ZXNQb3NpdGlvbnModCl9X3VwZGF0ZVN0YXRpb25hcnlBeGVzUG9zaXRpb25zKHQpe2NvbnN0IGU9dGhpcy5fc3RhdGlvbmFyeUF4ZXNQb3NpdGlvbnMuZG9tYWluKCkuZmlsdGVyKChlPT50LmhhcyhlKSkpLG49QXJyYXkuZnJvbShuZXcgU2V0KFsuLi5lLC4uLkFycmF5LmZyb20odCldKSk7dGhpcy5fc3RhdGlvbmFyeUF4ZXNQb3NpdGlvbnMuZG9tYWluKG4pfV91cGRhdGVBeGVzUG9zaXRpb25zSW5ET00odCl7dC5hdHRyKCJ0cmFuc2Zvcm0iLCh0PT5LSnQodGhpcy5nZXRBeGlzUG9zaXRpb24odCkpKSl9X2NyZWF0ZUF4ZXModCl7cmV0dXJuIEtsKFBKdCh0aGlzLl9zY2hlbWEpKS5tYXAoKGU9Pm5ldyBBMHQodGhpcy5fc3ZnUHJvcHMsdGhpcy5fc2NoZW1hLHQsZSkpKX19ZnVuY3Rpb24gTDB0KHQpe3JldHVybiBudWxsIT09dC5zb3VyY2VFdmVudH0hKGZ1bmN0aW9uKHQpe3RbdC5GT1JFR1JPVU5EPTBdPSJGT1JFR1JPVU5EIix0W3QuQkFDS0dST1VORD0xXT0iQkFDS0dST1VORCJ9KShNMHR8fChNMHQ9e30pKTtjbGFzcyBQMHR7Y29uc3RydWN0b3IodCl7dm9pZCAwPT09dCYmKHQ9eGgobnVsbCkpLGNvbnNvbGUuYXNzZXJ0KHQuc2l6ZSgpPD0xKSx0aGlzLl9zZXNzaW9uR3JvdXBTZWw9dH1zZXNzaW9uR3JvdXAoKXtyZXR1cm4gMT09PXRoaXMuX3Nlc3Npb25Hcm91cFNlbC5zaXplKCk/dGhpcy5fc2Vzc2lvbkdyb3VwU2VsLmRhdHVtKCk6bnVsbH1pc051bGwoKXtyZXR1cm4gbnVsbD09PXRoaXMuc2Vzc2lvbkdyb3VwKCl9c2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuX3Nlc3Npb25Hcm91cFNlbH1lcXVhbHNUbyh0KXtyZXR1cm4gdGhpcy5pc051bGwoKT90LmlzTnVsbCgpOiF0LmlzTnVsbCgpJiZ0LnNlc3Npb25Hcm91cCgpLm5hbWU9PXRoaXMuc2Vzc2lvbkdyb3VwKCkubmFtZX19Y2xhc3MgTjB0e2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl9zdmdQcm9wcz10LHRoaXMuX3NjaGVtYT1lLHRoaXMuX2F4ZXNDb2xsZWN0aW9uPW4sdGhpcy5fc2Vzc2lvbkdyb3Vwcz1bXSx0aGlzLl9zdmdQcm9wcy5zdmdHLnNlbGVjdEFsbCgiZy5iYWNrZ3JvdW5kIikucmVtb3ZlKCksdGhpcy5fc3ZnUHJvcHMuc3ZnRy5zZWxlY3RBbGwoImcuZm9yZWdyb3VuZCIpLnJlbW92ZSgpLHRoaXMuX2JnUGF0aHNTZWw9dGhpcy5fc3ZnUHJvcHMuc3ZnRy5hcHBlbmQoImciKS5jbGFzc2VkKCJiYWNrZ3JvdW5kIiwhMCkuc2VsZWN0QWxsKCJwYXRoIiksdGhpcy5fZmdQYXRoc1NlbD10aGlzLl9zdmdQcm9wcy5zdmdHLmFwcGVuZCgiZyIpLmNsYXNzZWQoImZvcmVncm91bmQiLCEwKS5zZWxlY3RBbGwoInBhdGgiKSx0aGlzLl91cGRhdGVWaXNpYmxlRmdQYXRoc1NlbCgpLHRoaXMuX3BlYWtlZFNlc3Npb25Hcm91cEhhbmRsZT1uZXcgUDB0LHRoaXMuX3NlbGVjdGVkU2Vzc2lvbkdyb3VwSGFuZGxlPW5ldyBQMHQsdGhpcy5fZDNsaW5lPURMKCkuY3VydmUoUkwpfWdldFNlc3Npb25Hcm91cEhhbmRsZSh0KXtyZXR1cm4gbnVsbD09dD9uZXcgUDB0Om5ldyBQMHQodGhpcy5fZmdQYXRoc1NlbC5maWx0ZXIoKGU9PmUubmFtZT09PXQubmFtZSkpKX1oaWRlQmFja2dyb3VuZExpbmVzKCl7dGhpcy5fYmdQYXRoc1NlbC5hdHRyKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIil9c2hvd0JhY2tncm91bmRMaW5lcygpe3RoaXMuX2JnUGF0aHNTZWwuYXR0cigidmlzaWJpbGl0eSIsbnVsbCl9cGVha2VkU2Vzc2lvbkdyb3VwSGFuZGxlKCl7cmV0dXJuIHRoaXMuX3BlYWtlZFNlc3Npb25Hcm91cEhhbmRsZX1zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZSgpe3JldHVybiB0aGlzLl9zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZX1yZWNvbXB1dGVDb250cm9sUG9pbnRzKHQsZT0wKXsodD09PU0wdC5GT1JFR1JPVU5EP3RoaXMuX2ZnUGF0aHNTZWw6dGhpcy5fYmdQYXRoc1NlbCkudHJhbnNpdGlvbigpLmR1cmF0aW9uKGUpLmF0dHIoImQiLCh0PT50aGlzLl9wYXRoREF0dHJpYnV0ZSh0KSkpLHQ9PT1NMHQuRk9SRUdST1VORCYmd2luZG93LnNldFRpbWVvdXQoKCgpPT57Y29uc3QgdD10aGlzO3RoaXMuX2ZnUGF0aHNTZWwuZWFjaCgoZnVuY3Rpb24oZSl7dC5fc2V0Q29udHJvbFBvaW50c1Byb3BlcnR5KHRoaXMsZSl9KSl9KSl9cmVjb21wdXRlRm9yZWdyb3VuZExpbmVzVmlzaWJpbGl0eSgpe3RoaXMuX2ZnUGF0aHNTZWwuY2xhc3NlZCgiaW52aXNpYmxlLXBhdGgiLCh0PT4hdGhpcy5fYXhlc0NvbGxlY3Rpb24uYWxsVmlzaWJsZUF4ZXNTYXRpc2Z5KCgoZSxuKT0+bi5icnVzaEZpbHRlcigpLmlzUGFzc2luZyh6SnQodGhpcy5fc2NoZW1hLHQsbi5jb2xJbmRleCgpKSkpKSkpLHRoaXMuX3VwZGF0ZVZpc2libGVGZ1BhdGhzU2VsKCl9c2V0Rm9yZWdyb3VuZExpbmVzQ29sb3IodCxlLG4pe2NvbnN0IGk9dGhpcy5fY3JlYXRlTGluZUNvbG9yRnVuY3Rpb24odCxlLG4pO3RoaXMuX2ZnUGF0aHNTZWwuYXR0cigic3Ryb2tlIixpKX1yZWRyYXcodCxlLG4saSl7Y29uc3Qgcj10aGlzLl9wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUuc2Vzc2lvbkdyb3VwKCksbz10aGlzLl9zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZS5zZXNzaW9uR3JvdXAoKTt0aGlzLl9zZXNzaW9uR3JvdXBzPXQsdGhpcy5fZmdQYXRoc1NlbD10aGlzLl9yZWNvbXB1dGVQYXRoU2VsZWN0aW9uKHRoaXMuX2ZnUGF0aHNTZWwpLHRoaXMuX2JnUGF0aHNTZWw9dGhpcy5fcmVjb21wdXRlUGF0aFNlbGVjdGlvbih0aGlzLl9iZ1BhdGhzU2VsKSx0aGlzLl9wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGU9dGhpcy5nZXRTZXNzaW9uR3JvdXBIYW5kbGUociksdGhpcy5fc2VsZWN0ZWRTZXNzaW9uR3JvdXBIYW5kbGU9dGhpcy5nZXRTZXNzaW9uR3JvdXBIYW5kbGUobyksdGhpcy5yZWNvbXB1dGVDb250cm9sUG9pbnRzKE0wdC5GT1JFR1JPVU5EKSx0aGlzLnJlY29tcHV0ZUNvbnRyb2xQb2ludHMoTTB0LkJBQ0tHUk9VTkQpLHRoaXMucmVjb21wdXRlRm9yZWdyb3VuZExpbmVzVmlzaWJpbGl0eSgpLHRoaXMuc2V0Rm9yZWdyb3VuZExpbmVzQ29sb3IoZSxuLGkpfXVwZGF0ZVBlYWtlZFNlc3Npb25Hcm91cCh0KXt0aGlzLl9wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUuc2VsZWN0aW9uKCkuY2xhc3NlZCgicGVha2VkLXBhdGgiLCExKSx0aGlzLl9wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGU9dCx0aGlzLl9wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUuc2VsZWN0aW9uKCkuY2xhc3NlZCgicGVha2VkLXBhdGgiLCEwKX1jbGVhclBlYWtlZFNlc3Npb25Hcm91cCgpe3RoaXMudXBkYXRlUGVha2VkU2Vzc2lvbkdyb3VwKG5ldyBQMHQpfXVwZGF0ZVNlbGVjdGVkU2Vzc2lvbkdyb3VwKHQpe3RoaXMuX3NlbGVjdGVkU2Vzc2lvbkdyb3VwSGFuZGxlLnNlbGVjdGlvbigpLmNsYXNzZWQoInNlbGVjdGVkLXBhdGgiLCExKSx0aGlzLl9zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZT10LHRoaXMuX3NlbGVjdGVkU2Vzc2lvbkdyb3VwSGFuZGxlLnNlbGVjdGlvbigpLmNsYXNzZWQoInNlbGVjdGVkLXBhdGgiLCEwKX1maW5kQ2xvc2VzdFNlc3Npb25Hcm91cCh0LGUpe2NvbnN0IG49dGhpcy5fYXhlc0NvbGxlY3Rpb24ubWFwVmlzaWJsZUF4ZXMoKCh0LGUpPT50KSksaT14MHQodGhpcy5fdmlzaWJsZUZnUGF0aHNTZWwubm9kZXMoKSxuLFt0LGVdLDEwMCk7cmV0dXJuIG51bGw9PT1pP25ldyBQMHQ6bmV3IFAwdChEdShpKSl9X2NyZWF0ZUxpbmVDb2xvckZ1bmN0aW9uKHQsZSxuKXtpZihudWxsPT09dClyZXR1cm4oKT0+InJlZCI7Y29uc3QgaT1jRSgpLmRvbWFpbihESnQodGhpcy5fc2NoZW1hLHRoaXMuX3Nlc3Npb25Hcm91cHMsdCkpLnJhbmdlKFtlLG5dKS5pbnRlcnBvbGF0ZShrcCk7cmV0dXJuIGU9Pmkoekp0KHRoaXMuX3NjaGVtYSxlLHQpKX1fcmVjb21wdXRlUGF0aFNlbGVjdGlvbih0KXtyZXR1cm4odD10LmRhdGEodGhpcy5fc2Vzc2lvbkdyb3VwcywodD0+dC5uYW1lKSkpLmV4aXQoKS5yZW1vdmUoKSx0LmVudGVyKCkuYXBwZW5kKCJwYXRoIikubWVyZ2UodCl9X3NldENvbnRyb2xQb2ludHNQcm9wZXJ0eSh0LGUpe3QuY29udHJvbFBvaW50cz10aGlzLl9jb21wdXRlQ29udHJvbFBvaW50cyhlKX1fY29tcHV0ZUNvbnRyb2xQb2ludHModCl7cmV0dXJuIHRoaXMuX2F4ZXNDb2xsZWN0aW9uLm1hcFZpc2libGVBeGVzKCgoZSxuKT0+W2Usbi55U2NhbGUoKSh6SnQodGhpcy5fc2NoZW1hLHQsbi5jb2xJbmRleCgpKSldKSl9X3BhdGhEQXR0cmlidXRlKHQpe3JldHVybiB0aGlzLl9kM2xpbmUodGhpcy5fY29tcHV0ZUNvbnRyb2xQb2ludHModCkpfV91cGRhdGVWaXNpYmxlRmdQYXRoc1NlbCgpe3RoaXMuX3Zpc2libGVGZ1BhdGhzU2VsPXRoaXMuX2ZnUGF0aHNTZWwuZmlsdGVyKCI6bm90KC5pbnZpc2libGUtcGF0aCkiKX19Y2xhc3MgSTB0e2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5zdmc9RHUodCk7Y29uc3Qgbj0zMCxpPTEwLHI9MTAsbz0xMCxhPTEwMCplK28raSxzPTIwMCtuK3I7dGhpcy5zdmcuYXR0cigidmlld0JveCIsYDAgMCAke2F9ICR7c31gKSx0aGlzLnN2Zy5hdHRyKCJwcmVzZXJ2ZUFzcGVjdFJhdGlvIiwieE1pZFlNaWQiKSx0aGlzLnN2Zy5zdHlsZSgibWluLXdpZHRoIixhKyJweCIpLHRoaXMuc3ZnLnN0eWxlKCJtaW4taGVpZ2h0IixzKyJweCIpLHRoaXMud2lkdGg9YS1vLWksdGhpcy5oZWlnaHQ9cy1uLXIsdGhpcy5zdmdHPXRoaXMuc3ZnLmFwcGVuZCgiZyIpLmF0dHIoInRyYW5zZm9ybSIsS0p0KG8sbikpfX1jbGFzcyBSMHR7Y29uc3RydWN0b3IodCxlLG4saSl7dGhpcy5fc3ZnUHJvcHM9dCx0aGlzLl9zY2hlbWE9ZSx0aGlzLl9wZWFrZWRTZXNzaW9uR3JvdXBDaGFuZ2VkQ0I9bix0aGlzLl9zZWxlY3RlZFNlc3Npb25Hcm91cENoYW5nZWRDQj1pLHRoaXMuX2F4ZXNDb2xsZWN0aW9uPW5ldyBrMHQodCxlLHRoaXMpLHRoaXMuX2xpbmVzQ29sbGVjdGlvbj1uZXcgTjB0KHQsZSx0aGlzLl9heGVzQ29sbGVjdGlvbiksdGhpcy5fc3ZnUHJvcHMuc3ZnLm9uKCJjbGljayIsKCgpPT50aGlzLm9uQ2xpY2soKSkpLm9uKCJtb3VzZW1vdmUgbW91c2VlbnRlciIsKCgpPT57Y29uc3RbdCxlXT1iaCh0aGlzLl9zdmdQcm9wcy5zdmdHLm5vZGUoKSk7dGhpcy5vbk1vdXNlTW92ZWQodCxlKX0pKS5vbigibW91c2VsZWF2ZSIsKCgpPT50aGlzLm9uTW91c2VMZWF2ZSgpKSl9b25EcmFnU3RhcnQodCl7dGhpcy5fYXhlc0NvbGxlY3Rpb24uZHJhZ1N0YXJ0KHQpLHRoaXMuX2xpbmVzQ29sbGVjdGlvbi5oaWRlQmFja2dyb3VuZExpbmVzKCl9b25EcmFnKHQpe3RoaXMuX2F4ZXNDb2xsZWN0aW9uLmRyYWcodCksdGhpcy5fbGluZXNDb2xsZWN0aW9uLnJlY29tcHV0ZUNvbnRyb2xQb2ludHMoTTB0LkZPUkVHUk9VTkQpfW9uRHJhZ0VuZCgpe3RoaXMuX2F4ZXNDb2xsZWN0aW9uLmRyYWdFbmQoNTAwKSx0aGlzLl9saW5lc0NvbGxlY3Rpb24ucmVjb21wdXRlQ29udHJvbFBvaW50cyhNMHQuRk9SRUdST1VORCw1MDApLHdpbmRvdy5zZXRUaW1lb3V0KCgoKT0+e3RoaXMuX2xpbmVzQ29sbGVjdGlvbi5yZWNvbXB1dGVDb250cm9sUG9pbnRzKE0wdC5CQUNLR1JPVU5EKSx0aGlzLl9saW5lc0NvbGxlY3Rpb24uc2hvd0JhY2tncm91bmRMaW5lcygpfSksNTAwKX1vbkJydXNoQ2hhbmdlZCh0LGUpe3RoaXMuX2F4ZXNDb2xsZWN0aW9uLmdldEF4aXNGb3JDb2xJbmRleCh0KS5zZXRCcnVzaFNlbGVjdGlvbihlKSx0aGlzLl9saW5lc0NvbGxlY3Rpb24ucmVjb21wdXRlRm9yZWdyb3VuZExpbmVzVmlzaWJpbGl0eSgpfW9uTW91c2VNb3ZlZCh0LGUpe3RoaXMuX2xpbmVzQ29sbGVjdGlvbi51cGRhdGVQZWFrZWRTZXNzaW9uR3JvdXAodGhpcy5fbGluZXNDb2xsZWN0aW9uLmZpbmRDbG9zZXN0U2Vzc2lvbkdyb3VwKHQsZSkpLHRoaXMuX3BlYWtlZFNlc3Npb25Hcm91cENoYW5nZWRDQih0aGlzLl9saW5lc0NvbGxlY3Rpb24ucGVha2VkU2Vzc2lvbkdyb3VwSGFuZGxlKCkuc2Vzc2lvbkdyb3VwKCkpfW9uTW91c2VMZWF2ZSgpe3RoaXMuX2xpbmVzQ29sbGVjdGlvbi5wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUoKS5pc051bGwoKXx8KHRoaXMuX2xpbmVzQ29sbGVjdGlvbi5jbGVhclBlYWtlZFNlc3Npb25Hcm91cCgpLHRoaXMuX3BlYWtlZFNlc3Npb25Hcm91cENoYW5nZWRDQihudWxsKSl9b25DbGljaygpe3RoaXMuX2xpbmVzQ29sbGVjdGlvbi5wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUoKS5zZXNzaW9uR3JvdXAoKT09PXRoaXMuX2xpbmVzQ29sbGVjdGlvbi5zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZSgpLnNlc3Npb25Hcm91cCgpP3RoaXMuX2xpbmVzQ29sbGVjdGlvbi51cGRhdGVTZWxlY3RlZFNlc3Npb25Hcm91cChuZXcgUDB0KTp0aGlzLl9saW5lc0NvbGxlY3Rpb24udXBkYXRlU2VsZWN0ZWRTZXNzaW9uR3JvdXAodGhpcy5fbGluZXNDb2xsZWN0aW9uLnBlYWtlZFNlc3Npb25Hcm91cEhhbmRsZSgpKSx0aGlzLl9zZWxlY3RlZFNlc3Npb25Hcm91cENoYW5nZWRDQih0aGlzLl9saW5lc0NvbGxlY3Rpb24uc2VsZWN0ZWRTZXNzaW9uR3JvdXBIYW5kbGUoKS5zZXNzaW9uR3JvdXAoKSl9b25PcHRpb25zT3JTZXNzaW9uR3JvdXBzQ2hhbmdlZCh0LGUpe3RoaXMuX2F4ZXNDb2xsZWN0aW9uLnVwZGF0ZUF4ZXModCxlKTtjb25zdCBuPXRoaXMuX2xpbmVzQ29sbGVjdGlvbi5wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUoKSxpPXRoaXMuX2xpbmVzQ29sbGVjdGlvbi5zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZSgpO3RoaXMuX2xpbmVzQ29sbGVjdGlvbi5yZWRyYXcoZSx2b2lkIDAhPT10LmNvbG9yQnlDb2x1bW5JbmRleD90LmNvbHVtbnNbdC5jb2xvckJ5Q29sdW1uSW5kZXhdLmFic29sdXRlSW5kZXg6bnVsbCx0Lm1pbkNvbG9yLHQubWF4Q29sb3IpLG4uZXF1YWxzVG8odGhpcy5fbGluZXNDb2xsZWN0aW9uLnBlYWtlZFNlc3Npb25Hcm91cEhhbmRsZSgpKXx8dGhpcy5fcGVha2VkU2Vzc2lvbkdyb3VwQ2hhbmdlZENCKHRoaXMuX2xpbmVzQ29sbGVjdGlvbi5wZWFrZWRTZXNzaW9uR3JvdXBIYW5kbGUoKS5zZXNzaW9uR3JvdXAoKSksaS5lcXVhbHNUbyh0aGlzLl9saW5lc0NvbGxlY3Rpb24uc2VsZWN0ZWRTZXNzaW9uR3JvdXBIYW5kbGUoKSl8fHRoaXMuX3NlbGVjdGVkU2Vzc2lvbkdyb3VwQ2hhbmdlZENCKHRoaXMuX2xpbmVzQ29sbGVjdGlvbi5zZWxlY3RlZFNlc3Npb25Hcm91cEhhbmRsZSgpLnNlc3Npb25Hcm91cCgpKX1zY2hlbWEoKXtyZXR1cm4gdGhpcy5fc2NoZW1hfX1sZXQgTzB0PWNsYXNzIGV4dGVuZHMoY3IoZ2wod2UpKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuc2VsZWN0ZWRTZXNzaW9uR3JvdXA9bnVsbCx0aGlzLmNsb3Nlc3RTZXNzaW9uR3JvdXA9bnVsbCx0aGlzLnJlZHJhd0NvdW50PTB9X29wdGlvbnNPclNlc3Npb25Hcm91cHNDaGFuZ2VkKCl7dmFyIHQ7aWYoIXRoaXMub3B0aW9ucylyZXR1cm47Y29uc3R7Y29uZmlndXJhdGlvbjplfT1udWxsIT09KHQ9dGhpcy5fcHJldk9wdGlvbnMpJiZ2b2lkIDAhPT10P3Q6e30se2NvbmZpZ3VyYXRpb246bn09dGhpcy5vcHRpb25zO2lmKHZvaWQgMD09PXRoaXMuX2ludGVyYWN0aW9uTWFuYWdlcnx8IUNlLmV4cG9ydHMuaXNFcXVhbChlLnNjaGVtYSxuLnNjaGVtYSl8fCFDZS5leHBvcnRzLmlzRXF1YWwoZS5jb2x1bW5zVmlzaWJpbGl0eSxuLmNvbHVtbnNWaXNpYmlsaXR5KSl7RHUodGhpcy4kLnN2Zykuc2VsZWN0QWxsKCIqIikucmVtb3ZlKCk7Y29uc3QgdD1uZXcgSTB0KHRoaXMuJC5zdmcsbi5jb2x1bW5zVmlzaWJpbGl0eS5maWx0ZXIoQm9vbGVhbikubGVuZ3RoKTt0aGlzLnNjb3BlU3VidHJlZSh0aGlzLiQuc3ZnLCEwKSx0aGlzLl9pbnRlcmFjdGlvbk1hbmFnZXI9bmV3IFIwdCh0LG4uc2NoZW1hLCh0PT50aGlzLmNsb3Nlc3RTZXNzaW9uR3JvdXBDaGFuZ2VkKHQpKSwodD0+dGhpcy5zZWxlY3RlZFNlc3Npb25Hcm91cENoYW5nZWQodCkpKX10aGlzLl9jb21wdXRlVmFsaWRTZXNzaW9uR3JvdXBzKCksdGhpcy5faW50ZXJhY3Rpb25NYW5hZ2VyLm9uT3B0aW9uc09yU2Vzc2lvbkdyb3Vwc0NoYW5nZWQodGhpcy5vcHRpb25zLHRoaXMuX3ZhbGlkU2Vzc2lvbkdyb3VwcyksdGhpcy5yZWRyYXdDb3VudCsrLHRoaXMuX3ByZXZPcHRpb25zPXRoaXMub3B0aW9uc31jbG9zZXN0U2Vzc2lvbkdyb3VwQ2hhbmdlZCh0KXt0aGlzLmNsb3Nlc3RTZXNzaW9uR3JvdXA9dH1zZWxlY3RlZFNlc3Npb25Hcm91cENoYW5nZWQodCl7dGhpcy5zZWxlY3RlZFNlc3Npb25Hcm91cD10fV9jb21wdXRlVmFsaWRTZXNzaW9uR3JvdXBzKCl7Y29uc3QgdD1RSnQ7aWYodm9pZCAwPT09dGhpcy5zZXNzaW9uR3JvdXBzKXJldHVybiB2b2lkKHRoaXMuX3ZhbGlkU2Vzc2lvbkdyb3Vwcz12b2lkIDApO2NvbnN0IGU9dGhpcy5vcHRpb25zLmNvbmZpZ3VyYXRpb24uc2NoZW1hO3RoaXMuX3ZhbGlkU2Vzc2lvbkdyb3Vwcz10aGlzLnNlc3Npb25Hcm91cHMuZmlsdGVyKChuPT57Zm9yKGxldCBpPTA7aTx0Lm51bUNvbHVtbnMoZSk7KytpKWlmKHRoaXMub3B0aW9ucy5jb25maWd1cmF0aW9uLmNvbHVtbnNWaXNpYmlsaXR5W2ldJiZ2b2lkIDA9PT10LmNvbHVtblZhbHVlQnlJbmRleChlLG4saSkpcmV0dXJuITE7cmV0dXJuITB9KSl9fTtPMHQudGVtcGxhdGU9eGVgCiAgICA8ZGl2IGlkPSJjb250YWluZXIiPgogICAgICA8c3ZnIGlkPSJzdmciPjwvc3ZnPgogICAgPC9kaXY+CiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAtLXRmLWhwYXJhbXMtcGFyYWxsZWwtY29vcmRzLXBsb3QtYXhpcy1zaGFkb3c6IDAgMXB4IDAgI2ZmZiwKICAgICAgICAgIDFweCAwIDAgI2ZmZiwgMCAtMXB4IDAgI2ZmZiwgLTFweCAwIDAgI2ZmZjsKICAgICAgfQogICAgICA6aG9zdCguZGFyay1tb2RlKSB7CiAgICAgICAgLS10Zi1ocGFyYW1zLXBhcmFsbGVsLWNvb3Jkcy1wbG90LWF4aXMtc2hhZG93OiAwIDFweCAwICMwMDAsCiAgICAgICAgICAxcHggMCAwICMwMDAsIDAgLTFweCAwICMwMDAsIC0xcHggMCAwICMwMDA7CiAgICAgIH0KICAgICAgc3ZnIHsKICAgICAgICBmb250OiAxMHB4IHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5iYWNrZ3JvdW5kIHBhdGggewogICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgc3Ryb2tlOiAjZGRkOwogICAgICAgIHNoYXBlLXJlbmRlcmluZzogY3Jpc3BFZGdlczsKICAgICAgfQoKICAgICAgLmZvcmVncm91bmQgcGF0aCB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2Utb3BhY2l0eTogMC43OwogICAgICAgIHN0cm9rZS13aWR0aDogMTsKICAgICAgfQoKICAgICAgLyogV2lsbCBiZSBzZXQgb24gZm9yZWdyb3VuZCBwYXRocyB0aGF0IGFyZSBub3QgImNvbnRhaW5lZCIgaW4gdGhlIGN1cnJlbnQKICAgICAgICAgYXhlcyBicnVzaGVzLiBJZiBubyBicnVzaGVzIGFyZSBzZXQsIG5vIHBhdGggd2lsbCBoYXZlIHRoaXMgY2xhc3MuICovCiAgICAgIC5mb3JlZ3JvdW5kIC5pbnZpc2libGUtcGF0aCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogU3R5bGUgZm9yIHRoZSBwYXRoIGNsb3Nlc3QgdG8gdGhlIG1vdXNlIHBvaW50ZXIgKHR5cGljYWxseSB3aWxsIGJlY29tZQogICAgICB0aGUgc2VsZWN0ZWQgcGF0aCB3aGVuIHRoZSB1c2VyIGNsaWNrcykuICovCiAgICAgIC5mb3JlZ3JvdW5kIC5wZWFrZWQtcGF0aCB7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiAzOwogICAgICB9CgogICAgICAvKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIHBhdGggY2xhc3MuIFdlIHVzZSAhaW1wb3J0YW50IHRvIG92ZXJyaWRlIHRoZQogICAgICAgICBpbmxpbmUgc3R5bGUgdGhhdCBzZXRzIHRoZSByZWd1bGFyIGNvbG9yIG9mIGEgcGF0aC4gKi8KICAgICAgLmZvcmVncm91bmQgLnNlbGVjdGVkLXBhdGggewogICAgICAgIHN0cm9rZS13aWR0aDogMyAhaW1wb3J0YW50OwogICAgICAgIHN0cm9rZTogIzBmMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAjY29udGFpbmVyIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIHN2ZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuYXhpcyB0ZXh0IHsKICAgICAgICB0ZXh0LXNoYWRvdzogdmFyKC0tdGYtaHBhcmFtcy1wYXJhbGxlbC1jb29yZHMtcGxvdC1heGlzLXNoYWRvdyk7CiAgICAgICAgZmlsbDogY3VycmVudENvbG9yOwogICAgICAgIGN1cnNvcjogbW92ZTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxPMHQucHJvdG90eXBlLCJzZXNzaW9uR3JvdXBzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLE8wdC5wcm90b3R5cGUsIm9wdGlvbnMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLE8wdC5wcm90b3R5cGUsInNlbGVjdGVkU2Vzc2lvbkdyb3VwIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxPMHQucHJvdG90eXBlLCJjbG9zZXN0U2Vzc2lvbkdyb3VwIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLE8wdC5wcm90b3R5cGUsInJlZHJhd0NvdW50Iix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxPMHQucHJvdG90eXBlLCJfdmFsaWRTZXNzaW9uR3JvdXBzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLE8wdC5wcm90b3R5cGUsIl9pbnRlcmFjdGlvbk1hbmFnZXIiLHZvaWQgMCksdChbYSgib3B0aW9ucy4qIiwic2Vzc2lvbkdyb3Vwcy4qIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxPMHQucHJvdG90eXBlLCJfb3B0aW9uc09yU2Vzc2lvbkdyb3Vwc0NoYW5nZWQiLG51bGwpLE8wdD10KFtpKCJ0Zi1ocGFyYW1zLXBhcmFsbGVsLWNvb3Jkcy1wbG90IildLE8wdCk7bGV0IHowdD1jbGFzcyBleHRlbmRzIHdle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLm9wdGlvbnM9bnVsbH1fY29uZmlndXJhdGlvbkNoYW5nZWQoKXtjb25zdCB0PXRoaXMuY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hLGU9dGhpcy5jb25maWd1cmF0aW9uLnNjaGVtYSxuPXtjb2x1bW5zOnQuaHBhcmFtSW5mb3MubWFwKCgobixpKT0+KHtuYW1lOlRKdChuKSxpbmRleDppLGFic29sdXRlSW5kZXg6Qkp0KGUsdCxpKSxzY2FsZTp0aGlzLl9pc051bWVyaWNDb2x1bW4oaSk/IkxJTkVBUiI6Ik5PTl9OVU1FUklDIn0pKSkuY29uY2F0KHQubWV0cmljSW5mb3MubWFwKCgobixpKT0+e2NvbnN0IHI9aSt0LmhwYXJhbUluZm9zLmxlbmd0aDtyZXR1cm57c2NhbGU6IkxJTkVBUiIsbmFtZTpDSnQobiksaW5kZXg6cixhYnNvbHV0ZUluZGV4OkJKdChlLHQscil9fSkpKSxtaW5Db2xvcjoiIzAwMDBGRiIsbWF4Q29sb3I6IiNGRjAwMDAiLGNvbmZpZ3VyYXRpb246dGhpcy5jb25maWd1cmF0aW9ufTt0aGlzLnNldCgib3B0aW9ucyIsbiksV2koKSx0aGlzLnNldCgib3B0aW9ucy5jb2xvckJ5Q29sdW1uSW5kZXgiLHRoaXMuX2RlZmF1bHRDb2xvckJ5Q29sdW1uSW5kZXgoKSl9X3Vuc2VsZWN0RGlzYWJsZWRMb2dTY2FsZXMoKXtudWxsIT09dGhpcy5vcHRpb25zJiZ0aGlzLm9wdGlvbnMuY29sdW1ucy5mb3JFYWNoKCh0PT57Y29uc3QgZT0ib3B0aW9ucy5jb2x1bW5zLiIrdC5pbmRleDt0aGlzLl9hbGxvd0xvZ1NjYWxlKHQpfHwiTE9HIiE9PXQuc2NhbGV8fHRoaXMuc2V0KGUrIi5zY2FsZSIsIkxJTkVBUiIpfSkpfV9hbGxvd0xvZ1NjYWxlKHQpe2lmKCF0aGlzLl9pc051bWVyaWNDb2x1bW4odC5pbmRleCl8fCF0aGlzLnNlc3Npb25Hcm91cHMpcmV0dXJuITE7Y29uc3RbZSxuXT1WSnQodGhpcy5jb25maWd1cmF0aW9uLnZpc2libGVTY2hlbWEsdGhpcy5zZXNzaW9uR3JvdXBzLHQuaW5kZXgpO3JldHVybiBlPjB8fG48MH1faXNOdW1lcmljQ29sdW1uKHQpe3JldHVybiB0Pj10aGlzLmNvbmZpZ3VyYXRpb24udmlzaWJsZVNjaGVtYS5ocGFyYW1JbmZvcy5sZW5ndGh8fCJEQVRBX1RZUEVfRkxPQVQ2NCI9PT10aGlzLmNvbmZpZ3VyYXRpb24udmlzaWJsZVNjaGVtYS5ocGFyYW1JbmZvc1t0XS50eXBlfV9kZWZhdWx0Q29sb3JCeUNvbHVtbkluZGV4KCl7aWYodGhpcy5jb25maWd1cmF0aW9uLnZpc2libGVTY2hlbWEubWV0cmljSW5mb3MubGVuZ3RoPjApcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hLmhwYXJhbUluZm9zLmxlbmd0aDtjb25zdCB0PXRoaXMuY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hLmhwYXJhbUluZm9zLmZpbmRJbmRleCgodD0+IkRBVEFfVFlQRV9GTE9BVDY0Ij09PXQudHlwZSkpO3JldHVybi0xIT09dD90OnZvaWQgMH19O3owdC50ZW1wbGF0ZT14ZWAKICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtcGFuZWwiPgogICAgICA8IS0tICdDb2xvciBieScgZHJvcCBkb3duIG1lbnUgLS0+CiAgICAgIDxwYXBlci1kcm9wZG93bi1tZW51CiAgICAgICAgbGFiZWw9IkNvbG9yIGJ5IgogICAgICAgIGlkPSJjb2xvckJ5RHJvcERvd25NZW51IgogICAgICAgIGhvcml6b250YWwtYWxpZ249ImxlZnQiCiAgICAgID4KICAgICAgICA8cGFwZXItbGlzdGJveAogICAgICAgICAgY2xhc3M9ImRyb3Bkb3duLWNvbnRlbnQiCiAgICAgICAgICBzbG90PSJkcm9wZG93bi1jb250ZW50IgogICAgICAgICAgc2VsZWN0ZWQ9Int7b3B0aW9ucy5jb2xvckJ5Q29sdW1uSW5kZXh9fSIKICAgICAgICAgIGlkPSJjb2xvckJ5TGlzdEJveCIKICAgICAgICA+CiAgICAgICAgICA8dGVtcGxhdGUKICAgICAgICAgICAgaXM9ImRvbS1yZXBlYXQiCiAgICAgICAgICAgIGl0ZW1zPSJbW29wdGlvbnMuY29sdW1uc11dIgogICAgICAgICAgICBhcz0iY29sdW1uIgogICAgICAgICAgICBpZD0iY29sb3JCeUNvbHVtblRlbXBsYXRlIgogICAgICAgICAgPgogICAgICAgICAgICA8cGFwZXItaXRlbSBkaXNhYmxlZD0iW1shX2lzTnVtZXJpY0NvbHVtbihjb2x1bW4uaW5kZXgpXV0iPgogICAgICAgICAgICAgIFtbY29sdW1uLm5hbWVdXQogICAgICAgICAgICA8L3BhcGVyLWl0ZW0+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvcGFwZXItbGlzdGJveD4KICAgICAgPC9wYXBlci1kcm9wZG93bi1tZW51PgoKICAgICAgPCEtLSBDb2x1bW5zIHNjYWxlcyAtLT4KICAgICAgPGRpdiBjbGFzcz0iY29sdW1ucy1jb250YWluZXIiPgogICAgICAgIDwhLS0gU2NhbGUgb3B0aW9ucyBmb3IgZWFjaCBudW1lcmljIGZlYXR1cmUgLS0+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0ie3tvcHRpb25zLmNvbHVtbnN9fSIgYXM9ImNvbHVtbiI+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2lzTnVtZXJpY0NvbHVtbihjb2x1bW4uaW5kZXgpXV0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2x1bW4iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbi10aXRsZSI+W1tjb2x1bW4ubmFtZV1dPC9kaXY+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxwYXBlci1yYWRpby1ncm91cAogICAgICAgICAgICAgICAgICBjbGFzcz0ic2NhbGUtcmFkaW8tZ3JvdXAiCiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkPSJ7e2NvbHVtbi5zY2FsZX19IgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uIG5hbWU9IkxJTkVBUiI+CiAgICAgICAgICAgICAgICAgICAgTGluZWFyCiAgICAgICAgICAgICAgICAgIDwvcGFwZXItcmFkaW8tYnV0dG9uPgogICAgICAgICAgICAgICAgICA8IS0tIFRoZSBpZCBoZXJlIGlzIHVzZWQgdG8gYWNjZXNzIHRoaXMgYnV0dG9uIGluIHVuaXQKICAgICAgICAgICAgICAgICAgICAgICB0ZXN0cy4tLT4KICAgICAgICAgICAgICAgICAgPHBhcGVyLXJhZGlvLWJ1dHRvbgogICAgICAgICAgICAgICAgICAgIGlkPSJsb2dTY2FsZUJ1dHRvbl9bW2NvbHVtbi5uYW1lXV0iCiAgICAgICAgICAgICAgICAgICAgbmFtZT0iTE9HIgogICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPSJbWyFfYWxsb3dMb2dTY2FsZShjb2x1bW4sIHNlc3Npb25Hcm91cHMuKildXSIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgIExvZ2FyaXRobWljCiAgICAgICAgICAgICAgICAgIDwvcGFwZXItcmFkaW8tYnV0dG9uPgogICAgICAgICAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uIG5hbWU9IlFVQU5USUxFIj4KICAgICAgICAgICAgICAgICAgICBRdWFudGlsZQogICAgICAgICAgICAgICAgICA8L3BhcGVyLXJhZGlvLWJ1dHRvbj4KICAgICAgICAgICAgICAgIDwvcGFwZXItcmFkaW8tZ3JvdXA+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxzdHlsZT4KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICAgIC5jb250cm9sLXBhbmVsIHsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgfQogICAgICAuY29sdW1uIHsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7CiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggZGFya2dyYXk7CiAgICAgICAgcGFkZGluZzogM3B4OwogICAgICB9CiAgICAgIC5jb2x1bW4tdGl0bGUgewogICAgICAgIC8qIEZpdCBldmVyeSB0aXRsZSBpbiBvbmUgbGluZSBzbyB0aGUgcmFkaW8gYm94ZXMgYWxpZ24gdmVydGljYWxseS4gKi8KICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CiAgICAgIC5jb2x1bW5zLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICB9CiAgICAgIC5zY2FsZS1yYWRpby1ncm91cCBwYXBlci1yYWRpby1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDJweDsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICBwYXBlci1saXN0Ym94IHsKICAgICAgICBtYXgtaGVpZ2h0OiAxNWVtOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sejB0LnByb3RvdHlwZSwiY29uZmlndXJhdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sejB0LnByb3RvdHlwZSwic2Vzc2lvbkdyb3VwcyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdCxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sejB0LnByb3RvdHlwZSwib3B0aW9ucyIsdm9pZCAwKSx0KFthKCJjb25maWd1cmF0aW9uLioiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLHowdC5wcm90b3R5cGUsIl9jb25maWd1cmF0aW9uQ2hhbmdlZCIsbnVsbCksdChbYSgic2Vzc2lvbkdyb3Vwcy4qIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSx6MHQucHJvdG90eXBlLCJfdW5zZWxlY3REaXNhYmxlZExvZ1NjYWxlcyIsbnVsbCksejB0PXQoW2koInRmLWhwYXJhbXMtc2NhbGUtYW5kLWNvbG9yLWNvbnRyb2xzIildLHowdCk7bGV0IEQwdD1jbGFzcyBleHRlbmRzIHdle19jbG9zZXN0T3JTZWxlY3RlZCh0LGUpe3JldHVybiBudWxsIT09dD90OmV9fTtEMHQudGVtcGxhdGU9eGVgCiAgICA8IS0tIENvbnRyb2xzIGJlaGF2aW9yIG9mIHBhcmFsbGVsIGNvb3JkaW5hdGVzIHBsb3QKICAgICAgICAgb3V0cHV0cyBzZXQgb3B0aW9ucyB0byB0aGUgX29wdGlvbnMgcHJvcGVydHkuCiAgICAgIC0tPgogICAgPGhwYXJhbXMtc3BsaXQtbGF5b3V0IG9yaWVudGF0aW9uPSJ2ZXJ0aWNhbCI+CiAgICAgIDwhLS0gVGhlIHNjYWxlIGFuZCBjb2xvciBjb250cm9scy4gLS0+CiAgICAgIDx0Zi1ocGFyYW1zLXNjYWxlLWFuZC1jb2xvci1jb250cm9scwogICAgICAgIGlkPSJjb250cm9scyIKICAgICAgICBzbG90PSJjb250ZW50IgogICAgICAgIGNsYXNzPSJzZWN0aW9uIgogICAgICAgIGNvbmZpZ3VyYXRpb249IltbY29uZmlndXJhdGlvbl1dIgogICAgICAgIHNlc3Npb24tZ3JvdXBzPSJbW3Nlc3Npb25Hcm91cHNdXSIKICAgICAgICBvcHRpb25zPSJ7e19vcHRpb25zfX0iCiAgICAgID4KICAgICAgPC90Zi1ocGFyYW1zLXNjYWxlLWFuZC1jb2xvci1jb250cm9scz4KICAgICAgPCEtLSBUaGUgYWN0dWFsIHBhcmFsbGVsIGNvb3JkaW5hdGVzIHBsb3QgLS0+CiAgICAgIDx0Zi1ocGFyYW1zLXBhcmFsbGVsLWNvb3Jkcy1wbG90CiAgICAgICAgaWQ9InBsb3QiCiAgICAgICAgc2xvdD0iY29udGVudCIKICAgICAgICBjbGFzcz0ic2VjdGlvbiIKICAgICAgICBzZXNzaW9uLWdyb3Vwcz0iW1tzZXNzaW9uR3JvdXBzXV0iCiAgICAgICAgc2VsZWN0ZWQtc2Vzc2lvbi1ncm91cD0ie3tfc2VsZWN0ZWRHcm91cH19IgogICAgICAgIGNsb3Nlc3Qtc2Vzc2lvbi1ncm91cD0ie3tfY2xvc2VzdEdyb3VwfX0iCiAgICAgICAgb3B0aW9ucz0iW1tfb3B0aW9uc11dIgogICAgICA+CiAgICAgIDwvdGYtaHBhcmFtcy1wYXJhbGxlbC1jb29yZHMtcGxvdD4KICAgICAgPHRmLWhwYXJhbXMtc2Vzc2lvbi1ncm91cC12YWx1ZXMKICAgICAgICBpZD0idmFsdWVzIgogICAgICAgIHNsb3Q9ImNvbnRlbnQiCiAgICAgICAgY2xhc3M9InNlY3Rpb24iCiAgICAgICAgdmlzaWJsZS1zY2hlbWE9IltbY29uZmlndXJhdGlvbi52aXNpYmxlU2NoZW1hXV0iCiAgICAgICAgc2Vzc2lvbi1ncm91cD0iW1tfY2xvc2VzdE9yU2VsZWN0ZWQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2Nsb3Nlc3RHcm91cCwgX3NlbGVjdGVkR3JvdXApXV0iCiAgICAgID4KICAgICAgPC90Zi1ocGFyYW1zLXNlc3Npb24tZ3JvdXAtdmFsdWVzPgogICAgICA8dGYtaHBhcmFtcy1zZXNzaW9uLWdyb3VwLWRldGFpbHMKICAgICAgICBpZD0iZGV0YWlscyIKICAgICAgICBzbG90PSJjb250ZW50IgogICAgICAgIGNsYXNzPSJzZWN0aW9uIgogICAgICAgIGJhY2tlbmQ9IltbYmFja2VuZF1dIgogICAgICAgIGV4cGVyaW1lbnQtbmFtZT0iW1tleHBlcmltZW50TmFtZV1dIgogICAgICAgIHNlc3Npb24tZ3JvdXA9IltbX3NlbGVjdGVkR3JvdXBdXSIKICAgICAgICB2aXNpYmxlLXNjaGVtYT0iW1tjb25maWd1cmF0aW9uLnZpc2libGVTY2hlbWFdXSIKICAgICAgPgogICAgICA8L3RmLWhwYXJhbXMtc2Vzc2lvbi1ncm91cC1kZXRhaWxzPgogICAgPC9ocGFyYW1zLXNwbGl0LWxheW91dD4KCiAgICA8c3R5bGU+CiAgICAgIC5zZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICB9CiAgICAgICN2YWx1ZXMgewogICAgICAgIGhlaWdodDogMTE1cHg7CiAgICAgIH0KICAgICAgI2RldGFpbHMgewogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBtYXgtaGVpZ2h0OiBmaXQtY29udGVudDsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEQwdC5wcm90b3R5cGUsImJhY2tlbmQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sRDB0LnByb3RvdHlwZSwiZXhwZXJpbWVudE5hbWUiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sRDB0LnByb3RvdHlwZSwiY29uZmlndXJhdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sRDB0LnByb3RvdHlwZSwic2Vzc2lvbkdyb3VwcyIsdm9pZCAwKSxEMHQ9dChbaSgidGYtaHBhcmFtcy1wYXJhbGxlbC1jb29yZHMtdmlldyIpXSxEMHQpO2xldCBCMHQ9Y2xhc3MgZXh0ZW5kcyhjcih3ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnNlbGVjdGVkU2Vzc2lvbkdyb3VwPW51bGwsdGhpcy5jbG9zZXN0U2Vzc2lvbkdyb3VwPW51bGwsdGhpcy5fY29udGFpbmVyPW51bGwsdGhpcy5fc3ZnPW51bGwsdGhpcy53aWR0aD0wLHRoaXMuaGVpZ2h0PTAsdGhpcy5fYnJ1c2hlZENlbGxJbmRleD1udWxsLHRoaXMuX2JydXNoU2VsZWN0aW9uPW51bGx9cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMuX2NvbnRhaW5lcj10aGlzLiQuY29udGFpbmVyLHRoaXMuX3N2Zz1EdSh0aGlzLiQuc3ZnKSx0aGlzLl9yZWRyYXcoKX1fc2Vzc2lvbkdyb3Vwc0NoYW5nZWQoKXtudWxsIT09dGhpcy5zZWxlY3RlZFNlc3Npb25Hcm91cCYmKHRoaXMuc2VsZWN0ZWRTZXNzaW9uR3JvdXA9VUp0KHRoaXMuc2Vzc2lvbkdyb3Vwcyx0aGlzLnNlbGVjdGVkU2Vzc2lvbkdyb3VwLm5hbWUpfHxudWxsKSx0aGlzLl9yZWRyYXcoKX1fdmlzaWJsZVNjaGVtYUNoYW5nZWQoKXt0aGlzLl9icnVzaGVkQ2VsbEluZGV4PW51bGwsdGhpcy5fYnJ1c2hTZWxlY3Rpb249bnVsbCx0aGlzLl9yZWRyYXcoKX1fcmVkcmF3KCl7dGhpcy5kZWJvdW5jZSgiX3JlZHJhdyIsKCgpPT57Y29uc3QgdD1RSnQ7dGhpcy53aWR0aD1NYXRoLm1heCgxNTAqdC5udW1WaXNpYmxlQ29sdW1ucyh0aGlzLnZpc2libGVTY2hlbWEpLDEyMDApLHRoaXMuaGVpZ2h0PU1hdGgubWF4KDExMi41KnQubnVtVmlzaWJsZU1ldHJpY3ModGhpcy52aXNpYmxlU2NoZW1hKSw0ODApLHRoaXMuX2NvbnRhaW5lci5zdHlsZS53aWR0aD10aGlzLndpZHRoKyJweCIsdGhpcy5fY29udGFpbmVyLnN0eWxlLmhlaWdodD10aGlzLmhlaWdodCsicHgiLHRoaXMuX3N2Zy5hdHRyKCJ3aWR0aCIsdGhpcy53aWR0aCkuYXR0cigiaGVpZ2h0Iix0aGlzLmhlaWdodCksdGhpcy5fc3ZnLnNlbGVjdEFsbCgiZyIpLnJlbW92ZSgpLHRoaXMuX2RyYXcoKX0pLDEwMCl9X2RyYXcoKXtjb25zdCB0PVFKdCxlPXRoaXM7aWYoIXRoaXMuc2Vzc2lvbkdyb3Vwc3x8MD09dGhpcy5zZXNzaW9uR3JvdXBzLmxlbmd0aHx8IXRoaXMudmlzaWJsZVNjaGVtYXx8MD09dGhpcy52aXNpYmxlU2NoZW1hLm1ldHJpY0luZm9zLmxlbmd0aClyZXR1cm47Y29uc3Qgbj1LbCh0Lm51bVZpc2libGVDb2x1bW5zKGUudmlzaWJsZVNjaGVtYSkpLGk9S2wodC5udW1WaXNpYmxlTWV0cmljcyhlLnZpc2libGVTY2hlbWEpKSxyPTgwLG89NTAsYT1YTSgpLmRvbWFpbihuKS5yYW5nZShbODUsdGhpcy53aWR0aC0xLTVdKS5wYWRkaW5nSW5uZXIoLjEpLHM9WE0oKS5kb21haW4oaSkucmFuZ2UoW3RoaXMuaGVpZ2h0LTEtNS1vLDVdKS5wYWRkaW5nSW5uZXIoLjEpLGw9YS5iYW5kd2lkdGgoKSxjPXMuYmFuZHdpZHRoKCksdT1uLm1hcCgodD0+ZS5fY2VsbFNjYWxlKHQsWzAsbC0xXSkpKSxoPWkubWFwKChuPT5lLl9jZWxsU2NhbGUobit0Lm51bVZpc2libGVIUGFyYW1zKGUudmlzaWJsZVNjaGVtYSksW2MtMSwwXSkpKSxkPXRoaXMuX3N2Zy5zZWxlY3RBbGwoIi54LWF4aXMiKS5kYXRhKG4pLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgieC1heGlzIiwhMCkuYXR0cigidHJhbnNmb3JtIiwoZT0+dC50cmFuc2xhdGVTdHIoYShlKSwwKSkpO2Z1bmN0aW9uIHAodCl7cmV0dXJuIngtYXhpcy1jbGlwLXBhdGgtIit0fWZ1bmN0aW9uIGYodCl7cmV0dXJuIngtbGFiZWwtY2xpcC1wYXRoLSIrdH1kLmFwcGVuZCgiY2xpcFBhdGgiKS5hdHRyKCJpZCIscCkuYXBwZW5kKCJyZWN0IikuYXR0cigieCIsLTUpLmF0dHIoInkiLDApLmF0dHIoIndpZHRoIixsKzEwKS5hdHRyKCJoZWlnaHQiLGUuaGVpZ2h0LTI1KSxkLmFwcGVuZCgiY2xpcFBhdGgiKS5hdHRyKCJpZCIsZikuYXBwZW5kKCJyZWN0IikuYXR0cigieCIsMCkuYXR0cigieSIsZS5oZWlnaHQtMjUpLmF0dHIoIndpZHRoIixsKS5hdHRyKCJoZWlnaHQiLDI1KSxkLmFwcGVuZCgiZyIpLmF0dHIoImNsaXAtcGF0aCIsKHQ9PiJ1cmwoIyIrcCh0KSsiKSIpKS5lYWNoKChmdW5jdGlvbih0KXtEdSh0aGlzKS5jYWxsKHksdmModVt0XSkudGlja1NpemUoZS5oZWlnaHQtbyksbCw0MCxlLm9wdGlvbnMuY29sdW1uc1t0XS5zY2FsZSl9KSksZC5hcHBlbmQoImciKS5jbGFzc2VkKCJ4LWF4aXMtbGFiZWwiLCEwKS5hdHRyKCJjbGlwLXBhdGgiLCh0PT4idXJsKCMiK2YodCkrIikiKSkuYXBwZW5kKCJ0ZXh0IikuYXR0cigidGV4dC1hbmNob3IiLCJtaWRkbGUiKS5hdHRyKCJ4IixsLzIpLmF0dHIoInkiLGUuaGVpZ2h0LTEtMTIuNSkudGV4dCgobj0+dC5zY2hlbWFWaXNpYmxlQ29sdW1uTmFtZShlLnZpc2libGVTY2hlbWEsbikpKS5hcHBlbmQoInRpdGxlIikudGV4dCgobj0+dC5zY2hlbWFWaXNpYmxlQ29sdW1uTmFtZShlLnZpc2libGVTY2hlbWEsbikpKTtjb25zdCBtPXRoaXMuX3N2Zy5zZWxlY3RBbGwoIi55LWF4aXMiKS5kYXRhKGkpLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgieS1heGlzIiwhMCkuYXR0cigidHJhbnNmb3JtIiwobj0+dC50cmFuc2xhdGVTdHIoZS53aWR0aC0xLHMobikpKSk7ZnVuY3Rpb24gZyh0KXtyZXR1cm4ieS1heGlzLWNsaXAtcGF0aC0iK3R9ZnVuY3Rpb24gXyh0KXtyZXR1cm4ieS1sYWJlbC1jbGlwLXBhdGgtIit0fWZ1bmN0aW9uIHkodCxlLG4saSxyKXtjb25zdCBvPU1hdGguZmxvb3Iobi9pKSxhPWUuc2NhbGUoKTtpZigiUVVBTlRJTEUiPT09cil7bGV0IHQ9YS5xdWFudGlsZXMoKTtjb25zdCBuPU1hdGguY2VpbCh0Lmxlbmd0aC9vKTt0PUtsKDAsdC5sZW5ndGgsbikubWFwKChlPT50W2VdKSksZS50aWNrVmFsdWVzKHQpLnRpY2tGb3JtYXQoRHkoIi0uMmciKSl9IkxJTkVBUiIhPT1yJiYiTE9HIiE9PXJ8fGUudGlja3MobyksdC5jYWxsKGUpLHQuc2VsZWN0QWxsKCIuZG9tYWluIikucmVtb3ZlKCksdC5zZWxlY3RBbGwoIi50aWNrIGxpbmUiKS5hdHRyKCJzdHJva2UiLCIjZGRkIil9bS5hcHBlbmQoImNsaXBQYXRoIikuYXR0cigiaWQiLGcpLmFwcGVuZCgicmVjdCIpLmF0dHIoIngiLC0oZS53aWR0aC00MC0xKSkuYXR0cigieSIsLTUpLmF0dHIoIndpZHRoIixlLndpZHRoLTQwKS5hdHRyKCJoZWlnaHQiLGMrMTApLG0uYXBwZW5kKCJjbGlwUGF0aCIpLmF0dHIoImlkIixfKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJ4IiwtKGUud2lkdGgtMSkpLmF0dHIoInkiLDApLmF0dHIoIndpZHRoIiw0MCkuYXR0cigiaGVpZ2h0IixjKSxtLmFwcGVuZCgiZyIpLmF0dHIoImNsaXAtcGF0aCIsKHQ9PiJ1cmwoIyIrZyh0KSsiKSIpKS5lYWNoKChmdW5jdGlvbihuKXtEdSh0aGlzKS5jYWxsKHksYmMoaFtuXSkudGlja1NpemUoZS53aWR0aC1yKSxjLDIwLGUub3B0aW9ucy5jb2x1bW5zW24rdC5udW1WaXNpYmxlSFBhcmFtcyhlLnZpc2libGVTY2hlbWEpXS5zY2FsZSl9KSksbS5hcHBlbmQoImciKS5jbGFzc2VkKCJ5LWF4aXMtbGFiZWwiLCEwKS5hdHRyKCJjbGlwLXBhdGgiLCh0PT4idXJsKCMiK18odCkrIikiKSkuYXBwZW5kKCJ0ZXh0IikuYXR0cigidGV4dC1hbmNob3IiLCJtaWRkbGUiKS5hdHRyKCJ4IiwtKGUud2lkdGgtMjAtMSkpLmF0dHIoInkiLGMvMikuYXR0cigidHJhbnNmb3JtIix0LnJvdGF0ZVN0cig5MCwtKGUud2lkdGgtMjAtMSksYy8yKSkudGV4dCgobj0+dC5tZXRyaWNOYW1lKGUudmlzaWJsZVNjaGVtYS5tZXRyaWNJbmZvc1tuXSkpKS5hcHBlbmQoInRpdGxlIikudGV4dCgobj0+dC5tZXRyaWNOYW1lKGUudmlzaWJsZVNjaGVtYS5tZXRyaWNJbmZvc1tuXSkpKTtjb25zdCB2PXRoaXMuX3N2Zy5zZWxlY3RBbGwoIi5jZWxsIikuZGF0YShGbChuLGkpKS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImNlbGwiLCEwKS5hdHRyKCJ0cmFuc2Zvcm0iLCgoW2Usbl0pPT50LnRyYW5zbGF0ZVN0cihhKGUpLHMobikpKSk7di5hcHBlbmQoImciKS5jbGFzc2VkKCJmcmFtZSIsITApLmFwcGVuZCgicmVjdCIpLmF0dHIoIngiLC01KS5hdHRyKCJ5IiwtNSkuYXR0cigid2lkdGgiLGwrMTApLmF0dHIoImhlaWdodCIsYysxMCkuYXR0cigic3Ryb2tlIiwiIzAwMCIpLmF0dHIoImZpbGwiLCJub25lIikuYXR0cigic2hhcGUtcmVuZGVyaW5nIiwiY3Jpc3BFZGdlcyIpO2xldCBiPW51bGw7dm9pZCAwIT09ZS5vcHRpb25zLmNvbG9yQnlDb2x1bW5JbmRleCYmKGI9Y0UoKS5kb21haW4odGhpcy5fY29sRXh0ZW50KHRoaXMub3B0aW9ucy5jb2xvckJ5Q29sdW1uSW5kZXgpKS5yYW5nZShbdGhpcy5vcHRpb25zLm1pbkNvbG9yLHRoaXMub3B0aW9ucy5tYXhDb2xvcl0pLmludGVycG9sYXRlKGtwKSk7Y29uc3QgeD12b2lkIDA9PT1lLm9wdGlvbnMuY29sb3JCeUNvbHVtbkluZGV4PygpPT4icmVkIjooe3Nlc3Npb25Hcm91cDp0fSk9PmIodGhpcy5fY29sVmFsdWUodCxlLm9wdGlvbnMuY29sb3JCeUNvbHVtbkluZGV4KSk7ZnVuY3Rpb24gdyh0LG4pe3JldHVybiB1W25dKGUuX2NvbFZhbHVlKHQsbikpfWZ1bmN0aW9uIFModCxuKXtyZXR1cm4gaFtuXShlLl9tZXRyaWNWYWx1ZSh0LG4pKX1jb25zdFtNLEUsVF09KGZ1bmN0aW9uIEModCxyKXtjb25zdCBvPXQuc2VsZWN0QWxsKCIuZGF0YS1tYXJrZXIiKS5kYXRhKCgoW3Qsbl0pPT5lLnNlc3Npb25Hcm91cHMuZmlsdGVyKChpPT52b2lkIDAhPT1lLl9jb2xWYWx1ZShpLHQpJiZ2b2lkIDAhPT1lLl9tZXRyaWNWYWx1ZShpLG4pKSkubWFwKChlPT4oe2NvbDp0LG1ldHJpYzpuLHNlc3Npb25Hcm91cDplLHg6dyhlLHQpLHk6UyhlLG4pLHNlc3Npb25Hcm91cE1hcmtlcnM6bnVsbH0pKSkpKS5lbnRlcigpLmFwcGVuZCgiY2lyY2xlIikuY2xhc3NlZCgiZGF0YS1tYXJrZXIiLCEwKS5hdHRyKCJjeCIsKCh7eDp0fSk9PnQpKS5hdHRyKCJjeSIsKCh7eTp0fSk9PnQpKS5hdHRyKCJyIiwyKS5hdHRyKCJmaWxsIixyKSxhPW5ldyBNYXA7ZS5zZXNzaW9uR3JvdXBzLmZvckVhY2goKHQ9PnthLnNldCh0LFtdKX0pKSxvLmVhY2goKGZ1bmN0aW9uKHQpe2EuZ2V0KHQuc2Vzc2lvbkdyb3VwKS5wdXNoKHRoaXMpfSkpLG8uZWFjaCgodD0+e2NvbnN0IGU9YS5nZXQodC5zZXNzaW9uR3JvdXApO3Quc2Vzc2lvbkdyb3VwTWFya2Vycz1uZXcgU2V0KGUpfSkpO2NvbnN0IHM9bi5tYXAoKHQ9PmkubWFwKChlPT5vLmZpbHRlcigobj0+bi5jb2w9PXQmJm4ubWV0cmljPT1lKSkpKSkpO3JldHVybltvLHMsYV19KSh2LmFwcGVuZCgiZyIpLHgpO2NvbnN0IEE9bi5tYXAoKHQ9PmkubWFwKChlPT4oZnVuY3Rpb24gbih0LGUpe2NvbnN0IG49W107cmV0dXJuIEVbdF1bZV0uZWFjaCgoZnVuY3Rpb24oKXtuLnB1c2godGhpcyl9KSksdHkoKS54KCh0PT5EdSh0KS5kYXR1bSgpLngpKS55KCh0PT5EdSh0KS5kYXR1bSgpLnkpKS5hZGRBbGwobil9KSh0LGUpKSkpKTtsZXQgaz1udWxsO1IoKSYmKGs9di5maWx0ZXIoKHQ9PkNlLmV4cG9ydHMuaXNFcXVhbCh0LGUuX2JydXNoZWRDZWxsSW5kZXgpKSksY29uc29sZS5hc3NlcnQoMT09ay5zaXplKCksaykpO2xldCBMPW5ldyBTZXQoTS5ub2RlcygpKTtmdW5jdGlvbiBQKCl7bGV0IG49bmV3IFNldChNLm5vZGVzKCkpOyhmdW5jdGlvbiBpKCl7cmV0dXJuIVIoKXx8ZS5fYnJ1c2hTZWxlY3Rpb25bMF1bMF09PT1lLl9icnVzaFNlbGVjdGlvblsxXVswXXx8ZS5fYnJ1c2hTZWxlY3Rpb25bMF1bMV09PT1lLl9icnVzaFNlbGVjdGlvblsxXVsxXX0pKCl8fChuPShmdW5jdGlvbiByKGUsbil7Y29uc29sZS5hc3NlcnQobnVsbCE9PWUpLGNvbnNvbGUuYXNzZXJ0KG51bGwhPT1uKTtjb25zdFtpLHJdPWUsbz1uZXcgU2V0O3JldHVybiB0LnF1YWRUcmVlVmlzaXRQb2ludHNJblJlY3QoQVtpXVtyXSxuWzBdWzBdLG5bMF1bMV0sblsxXVswXSxuWzFdWzFdLCh0PT57RHUodCkuZGF0dW0oKS5zZXNzaW9uR3JvdXBNYXJrZXJzLmZvckVhY2goKHQ9PntvLmFkZCh0KX0pKX0pKSxvfSkoZS5fYnJ1c2hlZENlbGxJbmRleCxlLl9icnVzaFNlbGVjdGlvbikpLHhoKEFycmF5LmZyb20odC5maWx0ZXJTZXQobiwodD0+IUwuaGFzKHQpKSkpKS5hdHRyKCJmaWxsIix4KSx4aChBcnJheS5mcm9tKHQuZmlsdGVyU2V0KEwsKHQ9PiFuLmhhcyh0KSkpKSkuYXR0cigiZmlsbCIsIiNkZGQiKSxMPW59UCgpO2NvbnN0IE49dmcoKS5leHRlbnQoW1stNCwtNF0sW2wtMSs1LTEsYy0xKzUtMV1dKS5vbigic3RhcnQiLChmdW5jdGlvbigpe1IoKSYmay5ub2RlKCkhPXRoaXMmJk4ubW92ZShrLG51bGwpLEkodGhpcyl9KSkub24oImJydXNoIiwoZnVuY3Rpb24oKXtJKHRoaXMpfSkpLm9uKCJlbmQiLChmdW5jdGlvbigpe0kodGhpcyl9KSk7ZnVuY3Rpb24gSSh0KXtjb25zdCBuPV9nKHQpOyFSKCkmJm51bGw9PT1ufHxSKCkmJnQ9PT1rLm5vZGUoKSYmQ2UuZXhwb3J0cy5pc0VxdWFsKG4sZS5fYnJ1c2hTZWxlY3Rpb24pfHwoZS5fYnJ1c2hTZWxlY3Rpb249bixudWxsIT09bj8oaz1EdSh0KSxlLl9icnVzaGVkQ2VsbEluZGV4PWsuZGF0dW0oKSk6KGs9bnVsbCxlLl9icnVzaGVkQ2VsbEluZGV4PW51bGwpLFAoKSl9ZnVuY3Rpb24gUigpe3JldHVybiBudWxsIT09ZS5fYnJ1c2hlZENlbGxJbmRleCYmbnVsbCE9PWUuX2JydXNoU2VsZWN0aW9ufXYuY2FsbChOKSxSKCkmJk4ubW92ZShrLGUuX2JydXNoU2VsZWN0aW9uKTtsZXQgTz1udWxsLHo9bnVsbDtudWxsIT09dGhpcy5zZWxlY3RlZFNlc3Npb25Hcm91cCYmKHo9eGgoVC5nZXQodGhpcy5zZWxlY3RlZFNlc3Npb25Hcm91cCkpLmNsYXNzZWQoInNlbGVjdGVkLW1hcmtlciIsITApKSx2Lm9uKCJjbGljayIsKGZ1bmN0aW9uKCl7Y29uc3QgdD1PPT09ej9udWxsOk87aWYodD09PXopcmV0dXJuO251bGwhPT16JiZ6LmNsYXNzZWQoInNlbGVjdGVkLW1hcmtlciIsITEpLHo9dCxudWxsIT09eiYmei5jbGFzc2VkKCJzZWxlY3RlZC1tYXJrZXIiLCEwKTtjb25zdCBuPW51bGw9PT16P251bGw6ei5kYXR1bSgpLnNlc3Npb25Hcm91cDtlLnNlbGVjdGVkU2Vzc2lvbkdyb3VwPW59KSkub24oIm1vdXNlbW92ZSBtb3VzZWVudGVyIiwoZnVuY3Rpb24oW24saV0pe2NvbnN0W3Isb109YmgodGhpcyksYT0oZnVuY3Rpb24gcyhlLG4saSxyLG8pe2xldCBhPTEvMCxzPW51bGw7aWYodC5xdWFkVHJlZVZpc2l0UG9pbnRzSW5EaXNrKEFbZV1bbl0saSxyLG8sKCh0LGUpPT57aWYoTC5oYXModCkmJmU8YSl7Y29uc3Qgbj1EdSh0KS5kYXR1bSgpO2E9ZSxzPW4uc2Vzc2lvbkdyb3VwfX0pKSxudWxsPT09cylyZXR1cm4gbnVsbDtyZXR1cm4geGgoVC5nZXQocykpfSkobixpLHIsbywyMCk7TyE9PWEmJihudWxsIT09TyYmTy5jbGFzc2VkKCJjbG9zZXN0LW1hcmtlciIsITEpLE89YSxudWxsIT09Tz8oTy5jbGFzc2VkKCJjbG9zZXN0LW1hcmtlciIsITApLGUuY2xvc2VzdFNlc3Npb25Hcm91cD1PLmRhdHVtKCkuc2Vzc2lvbkdyb3VwKTplLmNsb3Nlc3RTZXNzaW9uR3JvdXA9bnVsbCl9KSkub24oIm1vdXNlbGVhdmUiLChmdW5jdGlvbihbdCxuXSl7bnVsbCE9PU8mJihPLmNsYXNzZWQoImNsb3Nlc3QtbWFya2VyIiwhMSksTz1udWxsLGUuY2xvc2VzdFNlc3Npb25Hcm91cD1udWxsKX0pKSx0aGlzLl9zdmcuc2VsZWN0QWxsKCIqIikuY2xhc3NlZCgidGYtaHBhcmFtcy1zY2F0dGVyLXBsb3QtbWF0cml4LXBsb3QiLCEwKX1fY2VsbFNjYWxlKHQsZSl7Y29uc3Qgbj10aGlzLl9jb2xFeHRlbnQodCksaT1jRSgpLmRvbWFpbihuKS5yYW5nZShlKTtpZigiTElORUFSIj09PXRoaXMub3B0aW9ucy5jb2x1bW5zW3RdLnNjYWxlKXJldHVybiBpO2lmKCJMT0ciPT09dGhpcy5vcHRpb25zLmNvbHVtbnNbdF0uc2NhbGUpcmV0dXJuIG5bMF08PTAmJm5bMV0+PTA/aTp5RSgpLmRvbWFpbihuKS5yYW5nZShlKTtpZigiUVVBTlRJTEUiPT09dGhpcy5vcHRpb25zLmNvbHVtbnNbdF0uc2NhbGUpe2NvbnN0IG49KGVbMV0tZVswXSkvMTksaT1LbCgyMCkubWFwKCh0PT5lWzBdK24qdCkpO3JldHVybiBDRSgpLmRvbWFpbihDZS5leHBvcnRzLnVuaXEodGhpcy5zZXNzaW9uR3JvdXBzLm1hcCgoZT0+dGhpcy5fY29sVmFsdWUoZSx0KSkpKSkucmFuZ2UoaSl9aWYoIk5PTl9OVU1FUklDIj09PXRoaXMub3B0aW9ucy5jb2x1bW5zW3RdLnNjYWxlKXJldHVybiBLTSgpLmRvbWFpbihDZS5leHBvcnRzLnVuaXEodGhpcy5zZXNzaW9uR3JvdXBzLm1hcCgoZT0+dGhpcy5fY29sVmFsdWUoZSx0KSkpLnNvcnQoKSkpLnJhbmdlKGUpLnBhZGRpbmcoLjEpO3Rocm93IlVua25vd24gc2NhbGUgZm9yIGNvbHVtbjogIit0KyIuIG9wdGlvbnM6ICIrdGhpcy5vcHRpb25zfV9jb2xWYWx1ZSh0LGUpe3JldHVybiBXSnQodGhpcy52aXNpYmxlU2NoZW1hLHQsZSl9X21ldHJpY1ZhbHVlKHQsZSl7cmV0dXJuIEdKdCh0aGlzLnZpc2libGVTY2hlbWEsdCxlKX1fY29sRXh0ZW50KHQpe3JldHVybiBWSnQodGhpcy52aXNpYmxlU2NoZW1hLHRoaXMuc2Vzc2lvbkdyb3Vwcyx0KX19O0IwdC50ZW1wbGF0ZT14ZWAKICAgIDxkaXYgaWQ9ImNvbnRhaW5lciI+CiAgICAgIDxzdmcgaWQ9InN2ZyI+PC9zdmc+CiAgICA8L2Rpdj4KCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICBzdmcgewogICAgICAgIGZvbnQ6IDEwcHggc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgdGV4dCB7CiAgICAgICAgZmlsbDogY3VycmVudENvbG9yOwogICAgICB9CgogICAgICAuZnJhbWUgcmVjdCB7CiAgICAgICAgc3Ryb2tlOiBjdXJyZW50Q29sb3I7CiAgICAgIH0KCiAgICAgIC8qIFRoZSBjbG9zZXN0IGRhdGEgcG9pbnQgbWFya2VyIHRvIHRoZSBtb3VzZSBwb2ludGVyLiBXZSB1c2UgIWltcG9ydGFudAogICAgICAgICB0byBvdmVycmlkZSB0aGUgaW5saW5lIHN0eWxlIHRoYXQgc2V0cyB0aGUgcmVndWxhciBzdHlsZSBvZiBhIG1hcmtlci4KICAgICAgKi8KICAgICAgLmNsb3Nlc3QtbWFya2VyIHsKICAgICAgICByOiA2ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC8qIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgZGF0YSBwb2ludCBtYXJrZXIuIFdlIHVzZSAhaW1wb3J0YW50IHRvCiAgICAgICAgIG92ZXJyaWRlIHRoZSBpbmxpbmUgc3R5bGUgdGhhdCBzZXRzIHRoZSByZWd1bGFyIHN0eWxlIG9mIGEgbWFya2VyLiAqLwogICAgICAuc2VsZWN0ZWQtbWFya2VyIHsKICAgICAgICByOiA2ICFpbXBvcnRhbnQ7CiAgICAgICAgZmlsbDogIzBmMCAhaW1wb3J0YW50OwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sQjB0LnByb3RvdHlwZSwidmlzaWJsZVNjaGVtYSIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sQjB0LnByb3RvdHlwZSwic2Vzc2lvbkdyb3VwcyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxCMHQucHJvdG90eXBlLCJvcHRpb25zIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxCMHQucHJvdG90eXBlLCJzZWxlY3RlZFNlc3Npb25Hcm91cCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdCxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sQjB0LnByb3RvdHlwZSwiY2xvc2VzdFNlc3Npb25Hcm91cCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixIVE1MRWxlbWVudCldLEIwdC5wcm90b3R5cGUsIl9jb250YWluZXIiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sQjB0LnByb3RvdHlwZSwiX3N2ZyIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxCMHQucHJvdG90eXBlLCJ3aWR0aCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxCMHQucHJvdG90eXBlLCJoZWlnaHQiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sQjB0LnByb3RvdHlwZSwiX2JydXNoZWRDZWxsSW5kZXgiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sQjB0LnByb3RvdHlwZSwiX2JydXNoU2VsZWN0aW9uIix2b2lkIDApLHQoW2EoInNlc3Npb25Hcm91cHMuKiIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sQjB0LnByb3RvdHlwZSwiX3Nlc3Npb25Hcm91cHNDaGFuZ2VkIixudWxsKSx0KFthKCJ2aXNpYmxlU2NoZW1hLioiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLEIwdC5wcm90b3R5cGUsIl92aXNpYmxlU2NoZW1hQ2hhbmdlZCIsbnVsbCksdChbYSgib3B0aW9ucy4qIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxCMHQucHJvdG90eXBlLCJfcmVkcmF3IixudWxsKSxCMHQ9dChbaSgidGYtaHBhcmFtcy1zY2F0dGVyLXBsb3QtbWF0cml4LXBsb3QiKV0sQjB0KTtsZXQgSDB0PWNsYXNzIGV4dGVuZHMgd2V7X2Nsb3Nlc3RPclNlbGVjdGVkKHQsZSl7cmV0dXJuIG51bGwhPT10P3Q6ZX19O0gwdC50ZW1wbGF0ZT14ZWAKICAgIDxocGFyYW1zLXNwbGl0LWxheW91dCBvcmllbnRhdGlvbj0idmVydGljYWwiPgogICAgICA8IS0tIENvbnRyb2xzIGJlaGF2aW9yIG9mIHRoZSBzY2F0dGVyIHBsb3QgbWF0cml4CiAgICAgICAgICAgICBvdXRwdXRzIHRoZSBjb25maWd1cmVkIG9wdGlvbnMgdG8gdGhlIF9vcHRpb25zIHByb3BlcnR5LiAtLT4KICAgICAgPHRmLWhwYXJhbXMtc2NhbGUtYW5kLWNvbG9yLWNvbnRyb2xzCiAgICAgICAgc2xvdD0iY29udGVudCIKICAgICAgICBjbGFzcz0ic2VjdGlvbiIKICAgICAgICBpZD0iY29udHJvbHMiCiAgICAgICAgY29uZmlndXJhdGlvbj0iW1tjb25maWd1cmF0aW9uXV0iCiAgICAgICAgc2Vzc2lvbi1ncm91cHM9Iltbc2Vzc2lvbkdyb3Vwc11dIgogICAgICAgIG9wdGlvbnM9Int7X29wdGlvbnN9fSIKICAgICAgPgogICAgICA8L3RmLWhwYXJhbXMtc2NhbGUtYW5kLWNvbG9yLWNvbnRyb2xzPgogICAgICA8IS0tIFRoZSBhY3R1YWwgc2NhdHRlciBwbG90IG1hdHJpeCAtLT4KICAgICAgPHRmLWhwYXJhbXMtc2NhdHRlci1wbG90LW1hdHJpeC1wbG90CiAgICAgICAgc2xvdD0iY29udGVudCIKICAgICAgICBjbGFzcz0ic2VjdGlvbiIKICAgICAgICBpZD0icGxvdCIKICAgICAgICB2aXNpYmxlLXNjaGVtYT0iW1tjb25maWd1cmF0aW9uLnZpc2libGVTY2hlbWFdXSIKICAgICAgICBzZXNzaW9uLWdyb3Vwcz0iW1tzZXNzaW9uR3JvdXBzXV0iCiAgICAgICAgc2VsZWN0ZWQtc2Vzc2lvbi1ncm91cD0ie3tfc2VsZWN0ZWRHcm91cH19IgogICAgICAgIGNsb3Nlc3Qtc2Vzc2lvbi1ncm91cD0ie3tfY2xvc2VzdEdyb3VwfX0iCiAgICAgICAgb3B0aW9ucz0iW1tfb3B0aW9uc11dIgogICAgICA+CiAgICAgIDwvdGYtaHBhcmFtcy1zY2F0dGVyLXBsb3QtbWF0cml4LXBsb3Q+CiAgICAgIDx0Zi1ocGFyYW1zLXNlc3Npb24tZ3JvdXAtdmFsdWVzCiAgICAgICAgc2xvdD0iY29udGVudCIKICAgICAgICBjbGFzcz0ic2VjdGlvbiIKICAgICAgICBpZD0idmFsdWVzIgogICAgICAgIHZpc2libGUtc2NoZW1hPSJbW2NvbmZpZ3VyYXRpb24udmlzaWJsZVNjaGVtYV1dIgogICAgICAgIHNlc3Npb24tZ3JvdXA9IltbX2Nsb3Nlc3RPclNlbGVjdGVkKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfY2xvc2VzdEdyb3VwLCBfc2VsZWN0ZWRHcm91cCldXSIKICAgICAgPgogICAgICA8L3RmLWhwYXJhbXMtc2Vzc2lvbi1ncm91cC12YWx1ZXM+CiAgICAgIDwhLS0gU2hvd3Mgc2Vzc2lvbiBncm91cCBkZXRhaWxzIGZvciB0aGUgY2xpY2tlZCBtYXJrZXIuIC0tPgogICAgICA8dGYtaHBhcmFtcy1zZXNzaW9uLWdyb3VwLWRldGFpbHMKICAgICAgICBzbG90PSJjb250ZW50IgogICAgICAgIGNsYXNzPSJzZWN0aW9uIgogICAgICAgIGlkPSJkZXRhaWxzIgogICAgICAgIGJhY2tlbmQ9IltbYmFja2VuZF1dIgogICAgICAgIGV4cGVyaW1lbnQtbmFtZT0iW1tleHBlcmltZW50TmFtZV1dIgogICAgICAgIHNlc3Npb24tZ3JvdXA9IltbX3NlbGVjdGVkR3JvdXBdXSIKICAgICAgICB2aXNpYmxlLXNjaGVtYT0iW1tjb25maWd1cmF0aW9uLnZpc2libGVTY2hlbWFdXSIKICAgICAgPgogICAgICA8L3RmLWhwYXJhbXMtc2Vzc2lvbi1ncm91cC1kZXRhaWxzPgogICAgPC9ocGFyYW1zLXNwbGl0LWxheW91dD4KICAgIDxzdHlsZT4KICAgICAgLnNlY3Rpb24gewogICAgICAgIHBhZGRpbmc6IDEwcHg7CiAgICAgIH0KICAgICAgI2NvbnRyb2xzIHsKICAgICAgICBmbGV4LWdyb3c6IDA7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgZmxleC1iYXNpczogYXV0bzsKICAgICAgICBoZWlnaHQ6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBtYXgtaGVpZ2h0OiBmaXQtY29udGVudDsKICAgICAgfQogICAgICAjcGxvdCB7CiAgICAgICAgZmxleC1ncm93OiAxOwogICAgICAgIGZsZXgtc2hyaW5rOiAxOwogICAgICAgIGZsZXgtYmFzaXM6IGF1dG87CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgbWF4LWhlaWdodDogZml0LWNvbnRlbnQ7CiAgICAgIH0KICAgICAgI3ZhbHVlcyB7CiAgICAgICAgZmxleC1ncm93OiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGZsZXgtYmFzaXM6IGF1dG87CiAgICAgICAgaGVpZ2h0OiAxMTVweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIG1heC1oZWlnaHQ6IGZpdC1jb250ZW50OwogICAgICB9CiAgICAgICNkZXRhaWxzIHsKICAgICAgICBmbGV4LWdyb3c6IDA7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAgICAgZmxleC1iYXNpczogYXV0bzsKICAgICAgICBoZWlnaHQ6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBtYXgtaGVpZ2h0OiBmaXQtY29udGVudDsKICAgICAgfQogICAgICB2YWFkaW4tc3BsaXQtbGF5b3V0IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxIMHQucHJvdG90eXBlLCJiYWNrZW5kIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLEgwdC5wcm90b3R5cGUsImV4cGVyaW1lbnROYW1lIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEgwdC5wcm90b3R5cGUsImNvbmZpZ3VyYXRpb24iLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLEgwdC5wcm90b3R5cGUsInNlc3Npb25Hcm91cHMiLHZvaWQgMCksSDB0PXQoW2koInRmLWhwYXJhbXMtc2NhdHRlci1wbG90LW1hdHJpeC12aWV3IildLEgwdCk7bGV0IEYwdD1jbGFzcyBleHRlbmRzIHdle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9zZWxlY3RlZFRhYj0wfX07RjB0LnRlbXBsYXRlPXhlYAogICAgPHBhcGVyLWhlYWRlci1wYW5lbD4KICAgICAgPHBhcGVyLXRvb2xiYXIgc2xvdD0iaGVhZGVyIiBjbGFzcz0idGFiLWJhciI+CiAgICAgICAgPHBhcGVyLXRhYnMgc2VsZWN0ZWQ9Int7X3NlbGVjdGVkVGFifX0iIHNsb3Q9InRvcCI+CiAgICAgICAgICA8IS0tIHZpZXctaWQgY2FuIGJlIHVzZWQgYnkgaW50ZWdyYXRpb24gdGVzdHMgdG8gbG9jYXRlIGEgdGFiLgogICAgICAgICAgICAgICBJdCBzaG91bGQgYmUgdGhlIG5hbWUgb2YgdGhlIHJvb3QgZWxlbWVudCBpbXBsZW1lbnRpbmcgdGhlIHZpZXcKICAgICAgICAgICAgICAgd2l0aG91dCB0aGUgJ3RmLWhwYXJhbXMtJyBwcmVmaXguIC0tPgogICAgICAgICAgPHBhcGVyLXRhYiB2aWV3LWlkPSJ0YWJsZS12aWV3Ij4gVEFCTEUgVklFVyA8L3BhcGVyLXRhYj4KICAgICAgICAgIDxwYXBlci10YWIgdmlldy1pZD0icGFyYWxsZWwtY29vcmRzLXZpZXciPgogICAgICAgICAgICBQQVJBTExFTCBDT09SRElOQVRFUyBWSUVXCiAgICAgICAgICA8L3BhcGVyLXRhYj4KICAgICAgICAgIDxwYXBlci10YWIgdmlldy1pZD0ic2NhdHRlci1wbG90LW1hdHJpeC12aWV3Ij4KICAgICAgICAgICAgU0NBVFRFUiBQTE9UIE1BVFJJWCBWSUVXCiAgICAgICAgICA8L3BhcGVyLXRhYj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlbHAtYW5kLWZlZWRiYWNrIj4KICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW2J1Z1JlcG9ydFVybF1dIj4KICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZiQ9IltbYnVnUmVwb3J0VXJsXV0iCiAgICAgICAgICAgICAgICB0YXJnZXQ9Il9ibGFuayIKICAgICAgICAgICAgICAgIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgICAgIGlkPSJidWctcmVwb3J0IgogICAgICAgICAgICAgICAgICByYWlzZWQKICAgICAgICAgICAgICAgICAgdGl0bGU9IlNlbmQgYSBidWcgcmVwb3J0IG9yIGZlYXR1cmUgcmVxdWVzdCIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgQnVnIFJlcG9ydCAvIEZlYXR1cmUgUmVxdWVzdAogICAgICAgICAgICAgICAgPC9wYXBlci1idXR0b24+CiAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbaGVscFVybF1dIj4KICAgICAgICAgICAgICA8YSBocmVmJD0iW1toZWxwVXJsXV0iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPgogICAgICAgICAgICAgICAgPHBhcGVyLWljb24tYnV0dG9uCiAgICAgICAgICAgICAgICAgIGljb249ImhlbHAtb3V0bGluZSIKICAgICAgICAgICAgICAgICAgdGl0bGU9IlZpZXcgZG9jdW1lbnRhdGlvbiIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9wYXBlci10YWJzPgogICAgICA8L3BhcGVyLXRvb2xiYXI+CiAgICAgIDxpcm9uLXBhZ2VzIHNlbGVjdGVkPSJbW19zZWxlY3RlZFRhYl1dIiBjbGFzcz0iZml0IHRhYi12aWV3Ij4KICAgICAgICA8ZGl2IGlkPSIwIiBjbGFzcz0idGFiIj4KICAgICAgICAgIDx0Zi1ocGFyYW1zLXRhYmxlLXZpZXcKICAgICAgICAgICAgYmFja2VuZD0iW1tiYWNrZW5kXV0iCiAgICAgICAgICAgIGV4cGVyaW1lbnQtbmFtZT0iW1tleHBlcmltZW50TmFtZV1dIgogICAgICAgICAgICB2aXNpYmxlLXNjaGVtYT0iW1tjb25maWd1cmF0aW9uLnZpc2libGVTY2hlbWFdXSIKICAgICAgICAgICAgc2Vzc2lvbi1ncm91cHM9Iltbc2Vzc2lvbkdyb3Vwc11dIgogICAgICAgICAgICBlbmFibGUtc2hvdy1tZXRyaWNzCiAgICAgICAgICA+CiAgICAgICAgICA8L3RmLWhwYXJhbXMtdGFibGUtdmlldz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGlkPSIxIiBjbGFzcz0idGFiIj4KICAgICAgICAgIDx0Zi1ocGFyYW1zLXBhcmFsbGVsLWNvb3Jkcy12aWV3CiAgICAgICAgICAgIGJhY2tlbmQ9IltbYmFja2VuZF1dIgogICAgICAgICAgICBleHBlcmltZW50LW5hbWU9IltbZXhwZXJpbWVudE5hbWVdXSIKICAgICAgICAgICAgY29uZmlndXJhdGlvbj0iW1tjb25maWd1cmF0aW9uXV0iCiAgICAgICAgICAgIHNlc3Npb24tZ3JvdXBzPSJbW3Nlc3Npb25Hcm91cHNdXSIKICAgICAgICAgID4KICAgICAgICAgIDwvdGYtaHBhcmFtcy1wYXJhbGxlbC1jb29yZHMtdmlldz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGlkPSIyIiBjbGFzcz0idGFiIj4KICAgICAgICAgIDx0Zi1ocGFyYW1zLXNjYXR0ZXItcGxvdC1tYXRyaXgtdmlldwogICAgICAgICAgICBiYWNrZW5kPSJbW2JhY2tlbmRdXSIKICAgICAgICAgICAgZXhwZXJpbWVudC1uYW1lPSJbW2V4cGVyaW1lbnROYW1lXV0iCiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249IltbY29uZmlndXJhdGlvbl1dIgogICAgICAgICAgICBzZXNzaW9uLWdyb3Vwcz0iW1tzZXNzaW9uR3JvdXBzXV0iCiAgICAgICAgICA+CiAgICAgICAgICA8L3RmLWhwYXJhbXMtc2NhdHRlci1wbG90LW1hdHJpeC12aWV3PgogICAgICAgIDwvZGl2PgogICAgICA8L2lyb24tcGFnZXM+CiAgICA8L3BhcGVyLWhlYWRlci1wYW5lbD4KCiAgICA8c3R5bGU+CiAgICAgIC50YWItdmlldyB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CiAgICAgIC50YWItYmFyIHsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoCiAgICAgICAgICAtLXRiLXRvb2xiYXItYmFja2dyb3VuZC1jb2xvciwKICAgICAgICAgIHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpCiAgICAgICAgKTsKICAgICAgfQogICAgICAudGFiIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgICAgcGFwZXItdGFicyB7CiAgICAgICAgZmxleC1ncm93OiAxOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAtLXBhcGVyLXRhYnMtc2VsZWN0aW9uLWJhci1jb2xvcjogd2hpdGU7CiAgICAgICAgLS1wYXBlci10YWJzLWNvbnRlbnQ6IHsKICAgICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogICAgICAgIH0KICAgICAgfQogICAgICB0Zi1ocGFyYW1zLXRhYmxlLXZpZXcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQogICAgICAuaGVscC1hbmQtZmVlZGJhY2sgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyAvKiBFbnN1cmUgdGhhdCBpY29ucyBzdGF5IGFsaWduZWQgKi8KICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICB9CiAgICAgICNidWctcmVwb3J0IHsKICAgICAgICBib3JkZXI6IHNvbGlkIGJsYWNrOwogICAgICAgIGJhY2tncm91bmQ6IHJlZDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmRzOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBtYXgtd2lkdGg6IDE1MHB4OwogICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgIH0KICAgICAgLmhlbHAtYW5kLWZlZWRiYWNrIGEgewogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxGMHQucHJvdG90eXBlLCJiYWNrZW5kIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLEYwdC5wcm90b3R5cGUsImhlbHBVcmwiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sRjB0LnByb3RvdHlwZSwiYnVnUmVwb3J0VXJsIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLEYwdC5wcm90b3R5cGUsImV4cGVyaW1lbnROYW1lIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEYwdC5wcm90b3R5cGUsImNvbmZpZ3VyYXRpb24iLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLEYwdC5wcm90b3R5cGUsInNlc3Npb25Hcm91cHMiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sRjB0LnByb3RvdHlwZSwiX3NlbGVjdGVkVGFiIix2b2lkIDApLEYwdD10KFtpKCJ0Zi1ocGFyYW1zLXNlc3Npb25zLXBhbmUiKV0sRjB0KTtsZXQgVjB0PWNsYXNzIGV4dGVuZHMoY3Iod2UpKXtyZWxvYWQoKXt0aGlzLiRbInF1ZXJ5LXBhbmUiXS5yZWxvYWQoKX19O1YwdC50ZW1wbGF0ZT14ZWAKICAgIDxocGFyYW1zLXNwbGl0LWxheW91dD4KICAgICAgPGRpdiBzbG90PSJjb250ZW50IiBjbGFzcz0ic2lkZWJhciI+CiAgICAgICAgPHRmLWhwYXJhbXMtcXVlcnktcGFuZQogICAgICAgICAgaWQ9InF1ZXJ5LXBhbmUiCiAgICAgICAgICBiYWNrZW5kPSJbW2JhY2tlbmRdXSIKICAgICAgICAgIGV4cGVyaW1lbnQtbmFtZT0iW1tleHBlcmltZW50TmFtZV1dIgogICAgICAgICAgY29uZmlndXJhdGlvbj0ie3tfY29uZmlndXJhdGlvbn19IgogICAgICAgICAgc2Vzc2lvbi1ncm91cHM9Int7X3Nlc3Npb25Hcm91cHN9fSIKICAgICAgICAgIGRhdGEtbG9hZGVkLXdpdGgtbm9uLWVtcHR5LWhwYXJhbXM9Int7X2RhdGFMb2FkZWRXaXRoTm9uRW1wdHlIcGFyYW1zfX0iCiAgICAgICAgICBkYXRhLWxvYWRlZC13aXRoLWVtcHR5LWhwYXJhbXM9Int7X2RhdGFMb2FkZWRXaXRoRW1wdHlIcGFyYW1zfX0iCiAgICAgICAgPgogICAgICAgIDwvdGYtaHBhcmFtcy1xdWVyeS1wYW5lPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBzbG90PSJjb250ZW50IiBjbGFzcz0iY2VudGVyIj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2RhdGFMb2FkZWRXaXRoRW1wdHlIcGFyYW1zXV0iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibm8tZGF0YS13YXJuaW5nIj4KICAgICAgICAgICAgPGgzPk5vIGhwYXJhbXMgZGF0YSB3YXMgZm91bmQuPC9oMz4KICAgICAgICAgICAgPHA+UHJvYmFibGUgY2F1c2VzOjwvcD4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT5Zb3UgaGF2ZW7igJl0IHdyaXR0ZW4gYW55IGhwYXJhbXMgZGF0YSB0byB5b3VyIGV2ZW50IGZpbGVzLjwvbGk+CiAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgRXZlbnQgZmlsZXMgYXJlIHN0aWxsIGJlaW5nIGxvYWRlZCAodHJ5IHJlbG9hZGluZyB0aGlzIHBhZ2UpLgogICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgPGxpPlRlbnNvckJvYXJkIGNhbuKAmXQgZmluZCB5b3VyIGV2ZW50IGZpbGVzLjwvbGk+CiAgICAgICAgICAgIDwvdWw+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3XigJlyZSBuZXcgdG8gdXNpbmcgVGVuc29yQm9hcmQsIGFuZCB3YW50IHRvIGZpbmQgb3V0IGhvdyB0bwogICAgICAgICAgICAgIGFkZCBkYXRhIGFuZCBzZXQgdXAgeW91ciBldmVudCBmaWxlcywgY2hlY2sgb3V0IHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQiCiAgICAgICAgICAgICAgICA+UkVBRE1FPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIGFuZCBwZXJoYXBzIHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3d3dy50ZW5zb3JmbG93Lm9yZy9nZXRfc3RhcnRlZC9zdW1tYXJpZXNfYW5kX3RlbnNvcmJvYXJkIgogICAgICAgICAgICAgICAgPlRlbnNvckJvYXJkIHR1dG9yaWFsPC9hCiAgICAgICAgICAgICAgPi4KICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgSWYgeW91IHRoaW5rIFRlbnNvckJvYXJkIGlzIGNvbmZpZ3VyZWQgcHJvcGVybHksIHBsZWFzZSBzZWUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI215LXRlbnNvcmJvYXJkLWlzbnQtc2hvd2luZy1hbnktZGF0YS13aGF0cy13cm9uZyIKICAgICAgICAgICAgICAgID50aGUgc2VjdGlvbiBvZiB0aGUgUkVBRE1FIGRldm90ZWQgdG8gbWlzc2luZyBkYXRhIHByb2JsZW1zPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIGFuZCBjb25zaWRlciBmaWxpbmcgYW4gaXNzdWUgb24gR2l0SHViLgogICAgICAgICAgICA8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3RlbXBsYXRlPgoKICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2RhdGFMb2FkZWRXaXRoTm9uRW1wdHlIcGFyYW1zXV0iPgogICAgICAgICAgPHRmLWhwYXJhbXMtc2Vzc2lvbnMtcGFuZQogICAgICAgICAgICBpZD0ic2Vzc2lvbnMtcGFuZSIKICAgICAgICAgICAgYmFja2VuZD0iW1tiYWNrZW5kXV0iCiAgICAgICAgICAgIGhlbHAtdXJsPSJbW2hlbHBVcmxdXSIKICAgICAgICAgICAgYnVnLXJlcG9ydC11cmw9IltbYnVnUmVwb3J0VXJsXV0iCiAgICAgICAgICAgIGV4cGVyaW1lbnQtbmFtZT0iW1tleHBlcmltZW50TmFtZV1dIgogICAgICAgICAgICBjb25maWd1cmF0aW9uPSJbW19jb25maWd1cmF0aW9uXV0iCiAgICAgICAgICAgIHNlc3Npb24tZ3JvdXBzPSJbW19zZXNzaW9uR3JvdXBzXV0iCiAgICAgICAgICA+CiAgICAgICAgICA8L3RmLWhwYXJhbXMtc2Vzc2lvbnMtcGFuZT4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvaHBhcmFtcy1zcGxpdC1sYXlvdXQ+CiAgICA8c3R5bGU+CiAgICAgIGhwYXJhbXMtc3BsaXQtbGF5b3V0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLnNpZGViYXIgewogICAgICAgIHdpZHRoOiAyMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGZsZXgtZ3JvdzogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBtaW4td2lkdGg6IDEwJTsKICAgICAgfQoKICAgICAgLmNlbnRlciB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgZmxleC1ncm93OiAxOwogICAgICAgIGZsZXgtc2hyaW5rOiAxOwogICAgICAgIHdpZHRoOiA4MCU7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAubm8tZGF0YS13YXJuaW5nIHsKICAgICAgICBtYXgtd2lkdGg6IDU0MHB4OwogICAgICAgIG1hcmdpbjogODBweCBhdXRvIDAgYXV0bzsKICAgICAgfQoKICAgICAgYSB7CiAgICAgICAgY29sb3I6IHZhcigtLXRiLWxpbmspOwogICAgICB9CgogICAgICBhOnZpc2l0ZWQgewogICAgICAgIGNvbG9yOiB2YXIoLS10Yi1saW5rLXZpc2l0ZWQpOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsTUp0KV0sVjB0LnByb3RvdHlwZSwiYmFja2VuZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxWMHQucHJvdG90eXBlLCJleHBlcmltZW50TmFtZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxWMHQucHJvdG90eXBlLCJoZWxwVXJsIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFYwdC5wcm90b3R5cGUsImJ1Z1JlcG9ydFVybCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxWMHQucHJvdG90eXBlLCJfY29uZmlndXJhdGlvbiIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sVjB0LnByb3RvdHlwZSwiX3Nlc3Npb25Hcm91cHMiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxWMHQucHJvdG90eXBlLCJfZGF0YUxvYWRlZFdpdGhOb25FbXB0eUhwYXJhbXMiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxWMHQucHJvdG90eXBlLCJfZGF0YUxvYWRlZFdpdGhFbXB0eUhwYXJhbXMiLHZvaWQgMCksVjB0PXQoW2koInRmLWhwYXJhbXMtbWFpbiIpXSxWMHQpO2NvbnN0IFUwdD0idHJ1ZSI9PT1uZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpLmdldCgidGVuc29yYm9hcmRDb2xhYiIpO2xldCBqMHQ9Y2xhc3MgZXh0ZW5kcyhjcih3ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9iYWNrZW5kPW5ldyBNSnQoRXIoKS5wbHVnaW5Sb3V0ZSgiaHBhcmFtcyIsIiIpLG5ldyBicixVMHQpfXJlbG9hZCgpe3RoaXMuJFsiaHBhcmFtcy1tYWluIl0ucmVsb2FkKCl9fTtqMHQudGVtcGxhdGU9eGVgCiAgICA8IS0tIFRlbnNvckJvYXJkIGRvZXMgbm90IHNwZWNpZnkgYW4gZXhwZXJpbWVudE5hbWUuIEN1cnJlbnRseSBpdCBvbmx5CiAgICAgICAgIHN1cHBvcnRzIG9uZSBleHBlcmltZW50IHBlciBpbnZvY2F0aW9uLiAtLT4KICAgIDx0Zi1ocGFyYW1zLW1haW4KICAgICAgaWQ9ImhwYXJhbXMtbWFpbiIKICAgICAgYmFja2VuZD0iW1tfYmFja2VuZF1dIgogICAgICBleHBlcmltZW50LW5hbWU9IiIKICAgID4KICAgIDwvdGYtaHBhcmFtcy1tYWluPgogIGAsdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sajB0LnByb3RvdHlwZSwiX2JhY2tlbmQiLHZvaWQgMCksajB0PXQoW2koInRmLWhwYXJhbXMtZGFzaGJvYXJkIildLGowdCk7bGV0IEcwdD1jbGFzcyBleHRlbmRzKGNyKHdlKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuYWN0dWFsU2l6ZT0hMSx0aGlzLmJyaWdodG5lc3NBZGp1c3RtZW50PS41LHRoaXMuY29udHJhc3RQZXJjZW50YWdlPTAsdGhpcy5fbWV0YWRhdGFDYW5jZWxsZXI9bmV3IHhPLHRoaXMuX2ltYWdlQ2FuY2VsbGVyPW5ldyB4Tyx0aGlzLl9zdGVwcz1bXSx0aGlzLl9pc0ltYWdlTG9hZGluZz0hMX1nZXQgX3J1bkNvbG9yKCl7cmV0dXJuIF9PKHRoaXMucnVuKX1nZXQgX2hhc0F0TGVhc3RPbmVTdGVwKCl7dmFyIHQ9dGhpcy5fc3RlcHM7cmV0dXJuISF0JiZ0Lmxlbmd0aD4wfWdldCBfaGFzTXVsdGlwbGVTdGVwcygpe3ZhciB0PXRoaXMuX3N0ZXBzO3JldHVybiEhdCYmdC5sZW5ndGg+MX1nZXQgX2N1cnJlbnRTdGVwKCl7cmV0dXJuIHRoaXMuX3N0ZXBzW3RoaXMuX3N0ZXBJbmRleF18fG51bGx9Z2V0IF9zdGVwVmFsdWUoKXt2YXIgdD10aGlzLl9jdXJyZW50U3RlcDtyZXR1cm4gdD90LnN0ZXA6MH1nZXQgX2N1cnJlbnRXYWxsVGltZSgpe3ZhciB0PXRoaXMuX2N1cnJlbnRTdGVwO3JldHVybiB0P1NPKHQud2FsbF90aW1lKToiIn1nZXQgX21heFN0ZXBJbmRleCgpe3JldHVybiB0aGlzLl9zdGVwcy5sZW5ndGgtMX1nZXQgX3NhbXBsZVRleHQoKXtyZXR1cm5gJHt0aGlzLnNhbXBsZSsxfWB9Z2V0IF9oYXNNdWx0aXBsZVNhbXBsZXMoKXtyZXR1cm4gdGhpcy5vZlNhbXBsZXM+MX1fZ2V0QXJpYUV4cGFuZGVkKCl7cmV0dXJuIHRoaXMuYWN0dWFsU2l6ZT8idHJ1ZSI6ImZhbHNlIn1hdHRhY2hlZCgpe3RoaXMucmVsb2FkKCl9cmVsb2FkKCl7aWYoIXRoaXMuaXNBdHRhY2hlZClyZXR1cm47dGhpcy5fbWV0YWRhdGFDYW5jZWxsZXIuY2FuY2VsQWxsKCk7Y29uc3QgdD1QTyhFcigpLnBsdWdpblJvdXRlKCJpbWFnZXMiLCIvaW1hZ2VzIikse3RhZzp0aGlzLnRhZyxydW46dGhpcy5ydW4sc2FtcGxlOnRoaXMuc2FtcGxlfSksZT10aGlzLl9tZXRhZGF0YUNhbmNlbGxlci5jYW5jZWxsYWJsZSgodD0+e2lmKHQuY2FuY2VsbGVkKXJldHVybjtjb25zdCBlPXQudmFsdWUubWFwKHRoaXMuX2NyZWF0ZVN0ZXBEYXR1bS5iaW5kKHRoaXMpKTt0aGlzLnNldCgiX3N0ZXBzIixlKSx0aGlzLnNldCgiX3N0ZXBJbmRleCIsZS5sZW5ndGgtMSl9KSk7dGhpcy5yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHQpLnRoZW4oZSl9X2NyZWF0ZVN0ZXBEYXR1bSh0KXtsZXQgZT1FcigpLnBsdWdpblJvdXRlKCJpbWFnZXMiLCIvaW5kaXZpZHVhbEltYWdlIik7cmV0dXJuIGU9UE8oZSx7dHM6dC53YWxsX3RpbWV9KSxlKz0iJiIrdC5xdWVyeSx7d2FsbF90aW1lOm5ldyBEYXRlKDFlMyp0LndhbGxfdGltZSksc3RlcDp0LnN0ZXAsdXJsOmV9fV91cGRhdGVJbWFnZVVybCgpe3ZhciB0PXRoaXMuX2N1cnJlbnRTdGVwLGU9dGhpcy5icmlnaHRuZXNzQWRqdXN0bWVudCxuPXRoaXMuY29udHJhc3RQZXJjZW50YWdlO2lmKCF0KXJldHVybjtjb25zdCBpPW5ldyBJbWFnZTt0aGlzLl9pbWFnZUNhbmNlbGxlci5jYW5jZWxBbGwoKSxpLm9ubG9hZD1pLm9uZXJyb3I9dGhpcy5faW1hZ2VDYW5jZWxsZXIuY2FuY2VsbGFibGUoKHQ9PntpZih0LmNhbmNlbGxlZClyZXR1cm47Y29uc3QgZT10aGlzLiQkKCIjbWFpbi1pbWFnZS1jb250YWluZXIiKTtlLnRleHRDb250ZW50PSIiLGVyKGUpLmFwcGVuZENoaWxkKGkpLHRoaXMuc2V0KCJfaXNJbWFnZUxvYWRpbmciLCExKX0pKS5iaW5kKHRoaXMpLGkuc3R5bGUuZmlsdGVyPWBjb250cmFzdCgke259JSkgYCxpLnN0eWxlLmZpbHRlcis9YGJyaWdodG5lc3MoJHtlfSlgLHRoaXMuc2V0KCJfaXNJbWFnZUxvYWRpbmciLCEwKSxpLnNyYz10LnVybH1faGFuZGxlVGFwKHQpe3RoaXMuc2V0KCJhY3R1YWxTaXplIiwhdGhpcy5hY3R1YWxTaXplKX1fdG9Mb2NhbGVTdHJpbmcodCl7cmV0dXJuIHQudG9Mb2NhbGVTdHJpbmcoKX19O0cwdC50ZW1wbGF0ZT14ZWAKICAgIDx0Zi1jYXJkLWhlYWRpbmcKICAgICAgdGFnPSJbW3RhZ11dIgogICAgICBydW49IltbcnVuXV0iCiAgICAgIGRpc3BsYXktbmFtZT0iW1t0YWdNZXRhZGF0YS5kaXNwbGF5TmFtZV1dIgogICAgICBkZXNjcmlwdGlvbj0iW1t0YWdNZXRhZGF0YS5kZXNjcmlwdGlvbl1dIgogICAgICBjb2xvcj0iW1tfcnVuQ29sb3JdXSIKICAgID4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19oYXNNdWx0aXBsZVNhbXBsZXNdXSI+CiAgICAgICAgPGRpdj5zYW1wbGU6IFtbX3NhbXBsZVRleHRdXSBvZiBbW29mU2FtcGxlc11dPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaGFzQXRMZWFzdE9uZVN0ZXBdXSI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy1yb3ciPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy1sYWJlbCI+CiAgICAgICAgICAgIHN0ZXAKICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkIgogICAgICAgICAgICAgID5bW190b0xvY2FsZVN0cmluZyhfc3RlcFZhbHVlKV1dPC9zcGFuCiAgICAgICAgICAgID4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy1sYWJlbCBoZWFkaW5nLXJpZ2h0IGRhdGV0aW1lIj4KICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19jdXJyZW50V2FsbFRpbWVdXSI+CiAgICAgICAgICAgICAgW1tfY3VycmVudFdhbGxUaW1lXV0KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwgcmlnaHQiPgogICAgICAgICAgICA8cGFwZXItc3Bpbm5lci1saXRlIGFjdGl2ZSBoaWRkZW4kPSJbWyFfaXNJbWFnZUxvYWRpbmddXSI+CiAgICAgICAgICAgIDwvcGFwZXItc3Bpbm5lci1saXRlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfaGFzTXVsdGlwbGVTdGVwc11dIj4KICAgICAgICA8ZGl2PgogICAgICAgICAgPHBhcGVyLXNsaWRlcgogICAgICAgICAgICBpZD0ic3RlcHMiCiAgICAgICAgICAgIGltbWVkaWF0ZS12YWx1ZT0ie3tfc3RlcEluZGV4fX0iCiAgICAgICAgICAgIG1heD0iW1tfbWF4U3RlcEluZGV4XV0iCiAgICAgICAgICAgIG1heC1tYXJrZXJzPSJbW19tYXhTdGVwSW5kZXhdXSIKICAgICAgICAgICAgc25hcHMKICAgICAgICAgICAgc3RlcD0iMSIKICAgICAgICAgICAgdmFsdWU9Int7X3N0ZXBJbmRleH19IgogICAgICAgICAgPjwvcGFwZXItc2xpZGVyPgogICAgICAgIDwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgPC90Zi1jYXJkLWhlYWRpbmc+CgogICAgPCEtLSBTZW1hbnRpY2FsbHkgYSBidXR0b24gYnV0IDxpbWc+IGluc2lkZSBhIDxidXR0b24+IGRpc2FsbG93cyB1c2VyIHRvIGRvCiAgICBhbiBpbnRlcmVzdGluZyBvcGVyYXRpb24gbGlrZSAiQ29weSBJbWFnZSIgaW4gbm9uLUNocm9taXVtIGJyb3dzZXJzLiAtLT4KICAgIDxhCiAgICAgIGlkPSJtYWluLWltYWdlLWNvbnRhaW5lciIKICAgICAgcm9sZT0iYnV0dG9uIgogICAgICBhcmlhLWxhYmVsPSJUb2dnbGUgYWN0dWFsIHNpemUiCiAgICAgIGFyaWEtZXhwYW5kZWQkPSJbW19nZXRBcmlhRXhwYW5kZWQoYWN0dWFsU2l6ZSldXSIKICAgICAgb24tdGFwPSJfaGFuZGxlVGFwIgogICAgPjwvYT4KCiAgICA8c3R5bGUgaW5jbHVkZT0idGYtY2FyZC1oZWFkaW5nLXN0eWxlIj4KICAgICAgLyoqIE1ha2UgYnV0dG9uIGEgZGl2LiAqLwogICAgICBidXR0b24gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC8qKiBGaXJlZm94OiBHZXQgcmlkIG9mIGRvdHRlZCBsaW5lIGluc2lkZSBidXR0b24uICovCiAgICAgIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC8qKiBGaXJlZm94OiBTaW11bGF0ZSBDaHJvbWUncyBvdXRlciBnbG93IG9uIGJ1dHRvbiB3aGVuIGZvY3VzZWQuICovCiAgICAgIGJ1dHRvbjotbW96LWZvY3VzcmluZyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3gtc2hhZG93OiAwcHggMHB4IDFweCAycHggSGlnaGxpZ2h0OwogICAgICB9CgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDM1MHB4OwogICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAwIDE1cHggNDBweCAwOwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgIH0KCiAgICAgIC8qKiBXaGVuIGFjdHVhbCBzaXplIHNob3duIGlzIG9uLCB1c2UgdGhlIGFjdHVhbCBpbWFnZSB3aWR0aC4gKi8KICAgICAgOmhvc3QoW2FjdHVhbC1zaXplXSkgewogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICB3aWR0aDogYXV0bzsKICAgICAgfQoKICAgICAgOmhvc3QoW2FjdHVhbC1zaXplXSkgI21haW4taW1hZ2UtY29udGFpbmVyIHsKICAgICAgICBtYXgtaGVpZ2h0OiBub25lOwogICAgICAgIHdpZHRoOiBhdXRvOwogICAgICB9CgogICAgICA6aG9zdChbYWN0dWFsLXNpemVdKSAjbWFpbi1pbWFnZS1jb250YWluZXIgaW1nIHsKICAgICAgICB3aWR0aDogYXV0bzsKICAgICAgfQoKICAgICAgcGFwZXItc3Bpbm5lci1saXRlIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tOwogICAgICAgIC0tcGFwZXItc3Bpbm5lci1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgIH0KCiAgICAgICNzdGVwcyB7CiAgICAgICAgaGVpZ2h0OiAxNXB4OwogICAgICAgIG1hcmdpbjogMCAwIDAgLTE1cHg7CiAgICAgICAgLyoKICAgICAgICAgKiAzMSBjb21lcyBmcm9tIGFkZGluZyBhIHBhZGRpbmcgb2YgMTVweCBmcm9tIGJvdGggc2lkZXMgb2YgdGhlCiAgICAgICAgICogcGFwZXItc2xpZGVyLCBzdWJ0cmFjdGluZyAxcHggc28gdGhhdCB0aGUgc2xpZGVyIHdpZHRoIGFsaWducwogICAgICAgICAqIHdpdGggdGhlIGltYWdlICh0aGUgbGFzdCBzbGlkZXIgbWFya2VyIHRha2VzIHVwIDFweCksIGFuZAogICAgICAgICAqIGFkZGluZyAycHggdG8gYWNjb3VudCBmb3IgYSBib3JkZXIgb2YgMXB4IG9uIGJvdGggc2lkZXMgb2YKICAgICAgICAgKiB0aGUgaW1hZ2UuIDMwIC0gMSArIDIuCiAgICAgICAgICovCiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDMxcHgpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLWFjdGl2ZS1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXIta25vYi1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXIta25vYi1zdGFydC1ib3JkZXItY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLWtub2Itc3RhcnQtY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLW1hcmtlcnMtY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIC0tcGFwZXItc2xpZGVyLXBpbi1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXItcGluLXN0YXJ0LWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgfQoKICAgICAgI21haW4taW1hZ2UtY29udGFpbmVyIHsKICAgICAgICBtYXgtaGVpZ2h0OiAxMDI0cHg7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgIH0KCiAgICAgICNtYWluLWltYWdlLWNvbnRhaW5lciBpbWcgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBpbWFnZS1yZW5kZXJpbmc6IC1tb3otY3Jpc3AtZWRnZXM7CiAgICAgICAgaW1hZ2UtcmVuZGVyaW5nOiBwaXhlbGF0ZWQ7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICB9CgogICAgICBwYXBlci1pY29uLWJ1dHRvbiB7CiAgICAgICAgY29sb3I6ICMyMTk2ZjM7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICB9CiAgICAgIHBhcGVyLWljb24tYnV0dG9uW3NlbGVjdGVkXSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGItdWktbGlnaHQtYWNjZW50KTsKICAgICAgfQogICAgICBbaGlkZGVuXSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLEcwdC5wcm90b3R5cGUsInJ1biIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxHMHQucHJvdG90eXBlLCJ0YWciLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sRzB0LnByb3RvdHlwZSwic2FtcGxlIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLEcwdC5wcm90b3R5cGUsIm9mU2FtcGxlcyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxHMHQucHJvdG90eXBlLCJ0YWdNZXRhZGF0YSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4scmVmbGVjdFRvQXR0cmlidXRlOiEwfSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxHMHQucHJvdG90eXBlLCJhY3R1YWxTaXplIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLEcwdC5wcm90b3R5cGUsImJyaWdodG5lc3NBZGp1c3RtZW50Iix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLEcwdC5wcm90b3R5cGUsImNvbnRyYXN0UGVyY2VudGFnZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixicildLEcwdC5wcm90b3R5cGUsInJlcXVlc3RNYW5hZ2VyIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLEcwdC5wcm90b3R5cGUsIl9tZXRhZGF0YUNhbmNlbGxlciIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxHMHQucHJvdG90eXBlLCJfaW1hZ2VDYW5jZWxsZXIiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheSxub3RpZnk6ITB9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxHMHQucHJvdG90eXBlLCJfc3RlcHMiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXIsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLEcwdC5wcm90b3R5cGUsIl9zdGVwSW5kZXgiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxHMHQucHJvdG90eXBlLCJfaXNJbWFnZUxvYWRpbmciLHZvaWQgMCksdChbcygicnVuIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sRzB0LnByb3RvdHlwZSwiX3J1bkNvbG9yIixudWxsKSx0KFtzKCJfc3RlcHMiKSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sRzB0LnByb3RvdHlwZSwiX2hhc0F0TGVhc3RPbmVTdGVwIixudWxsKSx0KFtzKCJfc3RlcHMiKSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sRzB0LnByb3RvdHlwZSwiX2hhc011bHRpcGxlU3RlcHMiLG51bGwpLHQoW3MoIl9zdGVwcyIsIl9zdGVwSW5kZXgiKSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxHMHQucHJvdG90eXBlLCJfY3VycmVudFN0ZXAiLG51bGwpLHQoW3MoIl9jdXJyZW50U3RlcCIpLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLEcwdC5wcm90b3R5cGUsIl9zdGVwVmFsdWUiLG51bGwpLHQoW3MoIl9jdXJyZW50U3RlcCIpLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLEcwdC5wcm90b3R5cGUsIl9jdXJyZW50V2FsbFRpbWUiLG51bGwpLHQoW3MoIl9zdGVwcyIpLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLEcwdC5wcm90b3R5cGUsIl9tYXhTdGVwSW5kZXgiLG51bGwpLHQoW3MoInNhbXBsZSIpLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLEcwdC5wcm90b3R5cGUsIl9zYW1wbGVUZXh0IixudWxsKSx0KFtzKCJvZlNhbXBsZXMiKSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sRzB0LnByb3RvdHlwZSwiX2hhc011bHRpcGxlU2FtcGxlcyIsbnVsbCksdChbYSgicnVuIiwidGFnIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxHMHQucHJvdG90eXBlLCJyZWxvYWQiLG51bGwpLHQoW2EoIl9jdXJyZW50U3RlcCIsImJyaWdodG5lc3NBZGp1c3RtZW50IiwiY29udHJhc3RQZXJjZW50YWdlIiksZSgiZGVzaWduOnR5cGUiLEZ1bmN0aW9uKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pLGUoImRlc2lnbjpyZXR1cm50eXBlIix2b2lkIDApXSxHMHQucHJvdG90eXBlLCJfdXBkYXRlSW1hZ2VVcmwiLG51bGwpLEcwdD10KFtpKCJ0Zi1pbWFnZS1sb2FkZXIiKV0sRzB0KTtsZXQgVzB0PWNsYXNzIGV4dGVuZHMoY3Iod2UpKXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5yZWxvYWRPblJlYWR5PSEwLHRoaXMuX2RlZmF1bHRCcmlnaHRuZXNzQWRqdXN0bWVudD0xLHRoaXMuX2RlZmF1bHRDb250cmFzdFBlcmNlbnRhZ2U9MTAwLHRoaXMuX2JyaWdodG5lc3NBZGp1c3RtZW50PTEsdGhpcy5fY29udHJhc3RQZXJjZW50YWdlPTEwMCx0aGlzLl9yZXF1ZXN0TWFuYWdlcj1uZXcgYnJ9cmVhZHkoKXtzdXBlci5yZWFkeSgpLHRoaXMucmVsb2FkT25SZWFkeSYmdGhpcy5yZWxvYWQoKX1yZWxvYWQoKXt0aGlzLl9mZXRjaFRhZ3MoKS50aGVuKCgoKT0+e3RoaXMuX3JlbG9hZEltYWdlcygpfSkpfV9mZXRjaFRhZ3MoKXtjb25zdCB0PUVyKCkucGx1Z2luUm91dGUoImltYWdlcyIsIi90YWdzIik7cmV0dXJuIHRoaXMuX3JlcXVlc3RNYW5hZ2VyLnJlcXVlc3QodCkudGhlbigodD0+e2lmKENlLmV4cG9ydHMuaXNFcXVhbCh0LHRoaXMuX3J1blRvVGFnSW5mbykpcmV0dXJuO2NvbnN0IGU9ZnIoQ2UuZXhwb3J0cy5tYXBWYWx1ZXModCwodD0+T2JqZWN0LmtleXModCkpKSk7dGhpcy5zZXQoIl9kYXRhTm90Rm91bmQiLDA9PT1lLmxlbmd0aCksdGhpcy5zZXQoIl9ydW5Ub1RhZ0luZm8iLHQpLHRoaXMuYXN5bmMoKCgpPT57dGhpcy5zZXQoIl9jYXRlZ29yaWVzRG9tUmVhZHkiLCEwKX0pKX0pKX1fcmVsb2FkSW1hZ2VzKCl7dGhpcy5yb290LnF1ZXJ5U2VsZWN0b3JBbGwoInRmLWltYWdlLWxvYWRlciIpLmZvckVhY2goKHQ9Pnt0LnJlbG9hZCgpfSkpfV9zaG91bGRPcGVuKHQpe3JldHVybiB0PD0yfV9yZXNldEJyaWdodG5lc3MoKXt0aGlzLl9icmlnaHRuZXNzQWRqdXN0bWVudD10aGlzLl9kZWZhdWx0QnJpZ2h0bmVzc0FkanVzdG1lbnR9X3Jlc2V0Q29udHJhc3QoKXt0aGlzLl9jb250cmFzdFBlcmNlbnRhZ2U9dGhpcy5fZGVmYXVsdENvbnRyYXN0UGVyY2VudGFnZX1nZXQgX2JyaWdodG5lc3NJc0RlZmF1bHQoKXtyZXR1cm4gdGhpcy5fYnJpZ2h0bmVzc0FkanVzdG1lbnQ9PT10aGlzLl9kZWZhdWx0QnJpZ2h0bmVzc0FkanVzdG1lbnR9Z2V0IF9jb250cmFzdElzRGVmYXVsdCgpe3JldHVybiB0aGlzLl9jb250cmFzdFBlcmNlbnRhZ2U9PT10aGlzLl9kZWZhdWx0Q29udHJhc3RQZXJjZW50YWdlfWdldCBfY2F0ZWdvcmllcygpe3ZhciB0PXRoaXMuX3J1blRvVGFnSW5mbyxlPXRoaXMuX3NlbGVjdGVkUnVucyxuPXRoaXMuX3RhZ0ZpbHRlcjtmdW5jdGlvbiBpKGUpe2NvbnN0IG49dFtlLnJ1bl1bZS50YWddLnNhbXBsZXM7cmV0dXJuIENlLmV4cG9ydHMucmFuZ2UobikubWFwKCh0PT5PYmplY3QuYXNzaWduKHt9LGUse3NhbXBsZTp0LG9mU2FtcGxlczpufSkpKX1yZXR1cm4gSXIoQ2UuZXhwb3J0cy5tYXBWYWx1ZXModCwodD0+T2JqZWN0LmtleXModCkpKSxlLG4pLm1hcCgodD0+T2JqZWN0LmFzc2lnbih7fSx0LHtpdGVtczpbXS5jb25jYXQuYXBwbHkoW10sdC5pdGVtcy5tYXAoaSkpfSkpKX1fdGFnTWV0YWRhdGEodCxlLG4pe3JldHVybiB0W2VdW25dfX07dmFyIHEwdCxZMHQsWDB0O1cwdC50ZW1wbGF0ZT14ZWAKICAgIDx0Zi1kYXNoYm9hcmQtbGF5b3V0PgogICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyIiBzbG90PSJzaWRlYmFyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lLWl0ZW0iPgogICAgICAgICAgICAgIDxwYXBlci1jaGVja2JveCBjaGVja2VkPSJ7e19hY3R1YWxTaXplfX0iCiAgICAgICAgICAgICAgICA+U2hvdyBhY3R1YWwgaW1hZ2Ugc2l6ZTwvcGFwZXItY2hlY2tib3gKICAgICAgICAgICAgICA+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgICA8aDMgY2xhc3M9InRvb2x0aXAtY29udGFpbmVyIj5CcmlnaHRuZXNzIGFkanVzdG1lbnQ8L2gzPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZXNldHRhYmxlLXNsaWRlci1jb250YWluZXIiPgogICAgICAgICAgICAgIDxwYXBlci1zbGlkZXIKICAgICAgICAgICAgICAgIG1pbj0iMCIKICAgICAgICAgICAgICAgIG1heD0iMiIKICAgICAgICAgICAgICAgIHNuYXBzCiAgICAgICAgICAgICAgICBwaW4KICAgICAgICAgICAgICAgIHN0ZXA9IjAuMDEiCiAgICAgICAgICAgICAgICB2YWx1ZT0ie3tfYnJpZ2h0bmVzc0FkanVzdG1lbnR9fSIKICAgICAgICAgICAgICAgIGltbWVkaWF0ZS12YWx1ZT0ie3tfYnJpZ2h0bmVzc0FkanVzdG1lbnR9fSIKICAgICAgICAgICAgICA+PC9wYXBlci1zbGlkZXI+CiAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9IngtYnV0dG9uIgogICAgICAgICAgICAgICAgb24tdGFwPSJfcmVzZXRCcmlnaHRuZXNzIgogICAgICAgICAgICAgICAgZGlzYWJsZWQ9IltbX2JyaWdodG5lc3NJc0RlZmF1bHRdXSIKICAgICAgICAgICAgICAgID5SZXNldDwvcGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIj4KICAgICAgICAgICAgPGgzIGNsYXNzPSJ0b29sdGlwLWNvbnRhaW5lciI+Q29udHJhc3QgYWRqdXN0bWVudDwvaDM+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlc2V0dGFibGUtc2xpZGVyLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgPHBhcGVyLXNsaWRlcgogICAgICAgICAgICAgICAgbWluPSIwIgogICAgICAgICAgICAgICAgbWF4PSI1MDAiCiAgICAgICAgICAgICAgICBzbmFwcwogICAgICAgICAgICAgICAgcGluCiAgICAgICAgICAgICAgICBzdGVwPSIxIgogICAgICAgICAgICAgICAgdmFsdWU9Int7X2NvbnRyYXN0UGVyY2VudGFnZX19IgogICAgICAgICAgICAgICAgaW1tZWRpYXRlLXZhbHVlPSJ7e19jb250cmFzdFBlcmNlbnRhZ2V9fSIKICAgICAgICAgICAgICA+PC9wYXBlci1zbGlkZXI+CiAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9IngtYnV0dG9uIgogICAgICAgICAgICAgICAgb24tdGFwPSJfcmVzZXRDb250cmFzdCIKICAgICAgICAgICAgICAgIGRpc2FibGVkPSJbW19jb250cmFzdElzRGVmYXVsdF1dIgogICAgICAgICAgICAgICAgPlJlc2V0PC9wYXBlci1idXR0b24KICAgICAgICAgICAgICA+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIHJ1bnMtc2VsZWN0b3IiPgogICAgICAgICAgPHRmLXJ1bnMtc2VsZWN0b3IKICAgICAgICAgICAgaWQ9InJ1bnMtc2VsZWN0b3IiCiAgICAgICAgICAgIHNlbGVjdGVkLXJ1bnM9Int7X3NlbGVjdGVkUnVuc319IgogICAgICAgICAgPjwvdGYtcnVucy1zZWxlY3Rvcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNlbnRlciIgc2xvdD0iY2VudGVyIj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im5vLWRhdGEtd2FybmluZyI+CiAgICAgICAgICAgIDxoMz5ObyBpbWFnZSBkYXRhIHdhcyBmb3VuZC48L2gzPgogICAgICAgICAgICA8cD5Qcm9iYWJsZSBjYXVzZXM6PC9wPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPllvdSBoYXZlbuKAmXQgd3JpdHRlbiBhbnkgaW1hZ2UgZGF0YSB0byB5b3VyIGV2ZW50IGZpbGVzLjwvbGk+CiAgICAgICAgICAgICAgPGxpPlRlbnNvckJvYXJkIGNhbuKAmXQgZmluZCB5b3VyIGV2ZW50IGZpbGVzLjwvbGk+CiAgICAgICAgICAgIDwvdWw+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3XigJlyZSBuZXcgdG8gdXNpbmcgVGVuc29yQm9hcmQsIGFuZCB3YW50IHRvIGZpbmQgb3V0IGhvdyB0bwogICAgICAgICAgICAgIGFkZCBkYXRhIGFuZCBzZXQgdXAgeW91ciBldmVudCBmaWxlcywgY2hlY2sgb3V0IHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQiCiAgICAgICAgICAgICAgICA+UkVBRE1FPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIGFuZCBwZXJoYXBzIHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3d3dy50ZW5zb3JmbG93Lm9yZy9nZXRfc3RhcnRlZC9zdW1tYXJpZXNfYW5kX3RlbnNvcmJvYXJkIgogICAgICAgICAgICAgICAgPlRlbnNvckJvYXJkIHR1dG9yaWFsPC9hCiAgICAgICAgICAgICAgPi4KICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgSWYgeW91IHRoaW5rIFRlbnNvckJvYXJkIGlzIGNvbmZpZ3VyZWQgcHJvcGVybHksIHBsZWFzZSBzZWUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI215LXRlbnNvcmJvYXJkLWlzbnQtc2hvd2luZy1hbnktZGF0YS13aGF0cy13cm9uZyIKICAgICAgICAgICAgICAgID50aGUgc2VjdGlvbiBvZiB0aGUgUkVBRE1FIGRldm90ZWQgdG8gbWlzc2luZyBkYXRhIHByb2JsZW1zPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIGFuZCBjb25zaWRlciBmaWxpbmcgYW4gaXNzdWUgb24gR2l0SHViLgogICAgICAgICAgICA8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDx0Zi10YWctZmlsdGVyZXIgdGFnLWZpbHRlcj0ie3tfdGFnRmlsdGVyfX0iPjwvdGYtdGFnLWZpbHRlcmVyPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfY2F0ZWdvcmllc11dIiBhcz0iY2F0ZWdvcnkiPgogICAgICAgICAgICA8dGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXcKICAgICAgICAgICAgICBjYXRlZ29yeT0iW1tjYXRlZ29yeV1dIgogICAgICAgICAgICAgIGluaXRpYWwtb3BlbmVkPSJbW19zaG91bGRPcGVuKGluZGV4KV1dIgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHRlbXBsYXRlPgogICAgICAgICAgICAgICAgPHRmLWltYWdlLWxvYWRlcgogICAgICAgICAgICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgICAgICAgICAgIHJ1bj0iW1tpdGVtLnJ1bl1dIgogICAgICAgICAgICAgICAgICB0YWc9IltbaXRlbS50YWddXSIKICAgICAgICAgICAgICAgICAgc2FtcGxlPSJbW2l0ZW0uc2FtcGxlXV0iCiAgICAgICAgICAgICAgICAgIG9mLXNhbXBsZXM9IltbaXRlbS5vZlNhbXBsZXNdXSIKICAgICAgICAgICAgICAgICAgdGFnLW1ldGFkYXRhPSJbW190YWdNZXRhZGF0YShfcnVuVG9UYWdJbmZvLCBpdGVtLnJ1biwgaXRlbS50YWcpXV0iCiAgICAgICAgICAgICAgICAgIHJlcXVlc3QtbWFuYWdlcj0iW1tfcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgICAgICAgICAgICAgYWN0dWFsLXNpemU9IltbX2FjdHVhbFNpemVdXSIKICAgICAgICAgICAgICAgICAgYnJpZ2h0bmVzcy1hZGp1c3RtZW50PSJbW19icmlnaHRuZXNzQWRqdXN0bWVudF1dIgogICAgICAgICAgICAgICAgICBjb250cmFzdC1wZXJjZW50YWdlPSJbW19jb250cmFzdFBlcmNlbnRhZ2VdXSIKICAgICAgICAgICAgICAgID48L3RmLWltYWdlLWxvYWRlcj4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L3RmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvdGYtZGFzaGJvYXJkLWxheW91dD4KICAgIDxzdHlsZSBpbmNsdWRlPSJkYXNoYm9hcmQtc3R5bGUiPjwvc3R5bGU+CiAgICA8c3R5bGU+CiAgICAgIC5yZXNldHRhYmxlLXNsaWRlci1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIH0KICAgICAgLnJlc2V0dGFibGUtc2xpZGVyLWNvbnRhaW5lciBwYXBlci1zbGlkZXIgewogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgfQogICAgICAucmVzZXR0YWJsZS1zbGlkZXItY29udGFpbmVyIHBhcGVyLWJ1dHRvbiB7CiAgICAgICAgZmxleC1ncm93OiAwOwogICAgICB9CiAgICAgIC5yZXNldHRhYmxlLXNsaWRlci1jb250YWluZXIgcGFwZXItYnV0dG9uW2Rpc2FibGVkXSB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7CiAgICAgIH0KICAgICAgLngtYnV0dG9uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGItdWktbGlnaHQtYWNjZW50KTsKICAgICAgICBjb2xvcjogdmFyKC0tdGItdWktZGFyay1hY2NlbnQpOwogICAgICB9CiAgICAgIC5uby1kYXRhLXdhcm5pbmcgewogICAgICAgIG1heC13aWR0aDogNTQwcHg7CiAgICAgICAgbWFyZ2luOiA4MHB4IGF1dG8gMCBhdXRvOwogICAgICB9CiAgICAgIHBhcGVyLXNsaWRlciB7CiAgICAgICAgLS1wYXBlci1zbGlkZXItYWN0aXZlLWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1rbm9iLWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1rbm9iLXN0YXJ0LWJvcmRlci1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXIta25vYi1zdGFydC1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXItbWFya2Vycy1jb2xvcjogdmFyKC0tdGItb3JhbmdlLXN0cm9uZyk7CiAgICAgICAgLS1wYXBlci1zbGlkZXItcGluLWNvbG9yOiB2YXIoLS10Yi1vcmFuZ2Utc3Ryb25nKTsKICAgICAgICAtLXBhcGVyLXNsaWRlci1waW4tc3RhcnQtY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxXMHQucHJvdG90eXBlLCJyZWxvYWRPblJlYWR5Iix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxXMHQucHJvdG90eXBlLCJfc2VsZWN0ZWRSdW5zIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFcwdC5wcm90b3R5cGUsIl9ydW5Ub1RhZ0luZm8iLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxXMHQucHJvdG90eXBlLCJfZGF0YU5vdEZvdW5kIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sVzB0LnByb3RvdHlwZSwiX2FjdHVhbFNpemUiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sVzB0LnByb3RvdHlwZSwiX2RlZmF1bHRCcmlnaHRuZXNzQWRqdXN0bWVudCIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxXMHQucHJvdG90eXBlLCJfZGVmYXVsdENvbnRyYXN0UGVyY2VudGFnZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxXMHQucHJvdG90eXBlLCJfYnJpZ2h0bmVzc0FkanVzdG1lbnQiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXJ9KSxlKCJkZXNpZ246dHlwZSIsTnVtYmVyKV0sVzB0LnByb3RvdHlwZSwiX2NvbnRyYXN0UGVyY2VudGFnZSIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxXMHQucHJvdG90eXBlLCJfdGFnRmlsdGVyIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sVzB0LnByb3RvdHlwZSwiX2NhdGVnb3JpZXNEb21SZWFkeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxXMHQucHJvdG90eXBlLCJfcmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbcygiX2JyaWdodG5lc3NBZGp1c3RtZW50IiksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFcwdC5wcm90b3R5cGUsIl9icmlnaHRuZXNzSXNEZWZhdWx0IixudWxsKSx0KFtzKCJfY29udHJhc3RQZXJjZW50YWdlIiksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFcwdC5wcm90b3R5cGUsIl9jb250cmFzdElzRGVmYXVsdCIsbnVsbCksdChbcygiX3J1blRvVGFnSW5mbyIsIl9zZWxlY3RlZFJ1bnMiLCJfdGFnRmlsdGVyIiwiX2NhdGVnb3JpZXNEb21SZWFkeSIpLGUoImRlc2lnbjp0eXBlIixBcnJheSksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sVzB0LnByb3RvdHlwZSwiX2NhdGVnb3JpZXMiLG51bGwpLFcwdD10KFtpKCJ0Zi1pbWFnZS1kYXNoYm9hcmQiKV0sVzB0KSwoZnVuY3Rpb24odCl7dFt0LkNBTkNFTExFRD0xXT0iQ0FOQ0VMTEVEIn0pKHEwdHx8KHEwdD17fSkpLChmdW5jdGlvbih0KXt0W3QuVkVSVEVYPTFdPSJWRVJURVgiLHRbdC5GQUNFPTJdPSJGQUNFIix0W3QuQ09MT1I9M109IkNPTE9SIn0pKFkwdHx8KFkwdD17fSkpLChmdW5jdGlvbih0KXt0LlZFUlRFWD0iZmxvYXQzMiIsdC5GQUNFPSJpbnQzMiIsdC5DT0xPUj0idWludDgifSkoWDB0fHwoWDB0PXt9KSk7Y2xhc3MgJDB0e2NvbnN0cnVjdG9yKHQpe3RoaXMuX2NhbmNlbGxlcj1uZXcgeE8sdGhpcy5fcmVxdWVzdE1hbmFnZXI9dH1yZWxvYWQodCxlLG4pe3JldHVybiB0aGlzLl9jYW5jZWxsZXIuY2FuY2VsQWxsKCksdGhpcy5fZmV0Y2hNZXRhZGF0YSh0LGUsbil9X2ZldGNoRGF0YUJ5U3RlcCh0LGUsbixpLHIsbyl7Y29uc3QgYT1FcigpLnBsdWdpblJvdXRlKCJtZXNoIiwiL2RhdGEiLG5ldyBVUkxTZWFyY2hQYXJhbXMoe3RhZzplLHJ1bjp0LGNvbnRlbnRfdHlwZTpuLHNhbXBsZTpTdHJpbmcoaSksc3RlcDpTdHJpbmcocil9KSkscz1mdW5jdGlvbih0KXtsZXQgZT1bXTtmb3IobGV0IG49MDtuPHQubGVuZ3RoLzM7bisrKXtsZXQgaT1bXTtmb3IobGV0IGU9MDtlPDM7ZSsrKWkucHVzaCh0WzMqbitlXSk7ZS5wdXNoKGkpfXJldHVybiBlfSxsPXRoaXMuX2NhbmNlbGxlci5jYW5jZWxsYWJsZSgodD0+e2lmKHQuY2FuY2VsbGVkKXJldHVybiBQcm9taXNlLnJlamVjdCh7Y29kZTpxMHQuQ0FOQ0VMTEVELG1lc3NhZ2U6IlJlc3BvbnNlIHdhcyBpbnZhbGlkYXRlZC4ifSk7bGV0IGU9dC52YWx1ZTtzd2l0Y2gobil7Y2FzZSJWRVJURVgiOm8udmVydGljZXM9cyhuZXcgRmxvYXQzMkFycmF5KGUpKTticmVhaztjYXNlIkZBQ0UiOm8uZmFjZXM9cyhuZXcgSW50MzJBcnJheShlKSk7YnJlYWs7Y2FzZSJDT0xPUiI6by5jb2xvcnM9cyhuZXcgVWludDhBcnJheShlKSl9cmV0dXJuIG99KSk7cmV0dXJuIHRoaXMuX3JlcXVlc3RNYW5hZ2VyLmZldGNoKGEse21ldGhvZDoiR0VUIixoZWFkZXJzOntyZXNwb25zZVR5cGU6ImFycmF5YnVmZmVyIixjb250ZW50VHlwZTpYMHRbbl19fSkudGhlbigodD0+dC5hcnJheUJ1ZmZlcigpKSkudGhlbihsKX1mZXRjaERhdGEodCxlLG4saSl7bGV0IHI9W10sbz1uZXcgTWFwO3JldHVybiBPYmplY3Qua2V5cyhZMHQpLmZvckVhY2goKGE9Pnt0LmNvbXBvbmVudHMmMTw8WTB0W2FdJiZyLnB1c2godGhpcy5fZmV0Y2hEYXRhQnlTdGVwKGUsbixhLGksdC5zdGVwLG8pKX0pKSxQcm9taXNlLmFsbChyKX1fZmV0Y2hNZXRhZGF0YSh0LGUsbil7dGhpcy5fY2FuY2VsbGVyLmNhbmNlbEFsbCgpO2NvbnN0IGk9RXIoKS5wbHVnaW5Sb3V0ZSgibWVzaCIsIi9tZXNoZXMiLG5ldyBVUkxTZWFyY2hQYXJhbXMoe3RhZzplLHJ1bjp0LHNhbXBsZTpufSkpLHI9dGhpcy5fY2FuY2VsbGVyLmNhbmNlbGxhYmxlKCh0PT50LmNhbmNlbGxlZD9Qcm9taXNlLnJlamVjdCh7Y29kZTpxMHQuQ0FOQ0VMTEVELG1lc3NhZ2U6IlJlc3BvbnNlIHdhcyBpbnZhbGlkYXRlZC4ifSk6dC52YWx1ZSkpO3JldHVybiB0aGlzLl9yZXF1ZXN0TWFuYWdlci5mZXRjaChpKS50aGVuKCh0PT50Lmpzb24oKSkpLnRoZW4ocikudGhlbih0aGlzLl9wcm9jZXNzTWV0YWRhdGEuYmluZCh0aGlzKSl9X3Byb2Nlc3NNZXRhZGF0YSh0KXtpZighdClyZXR1cm47Y29uc3QgZT1uZXcgTWFwO2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKXtsZXQgaT10W25dO2UuaGFzKGkuc3RlcCl8fGUuc2V0KGkuc3RlcCxbXSksZS5nZXQoaS5zdGVwKS5wdXNoKGkpfWxldCBuPVtdO3JldHVybiBlLmZvckVhY2goKHQ9PntsZXQgZT10aGlzLl9jcmVhdGVTdGVwRGF0dW0odFswXSk7bi5wdXNoKGUpfSkpLG59X2NyZWF0ZVN0ZXBEYXR1bSh0KXtyZXR1cm57d2FsbF90aW1lOm5ldyBEYXRlKDFlMyp0LndhbGxfdGltZSksc3RlcDp0LnN0ZXAsY29uZmlnOnQuY29uZmlnLGNvbnRlbnRfdHlwZTp0LmNvbnRlbnRfdHlwZSxjb21wb25lbnRzOnQuY29tcG9uZW50c319fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgMjAxMC0yMDIxIFRocmVlLmpzIEF1dGhvcnMKICAgICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKICAgICAqL2NvbnN0IEswdD0iMTMxIixaMHQ9e0xFRlQ6MCxNSURETEU6MSxSSUdIVDoyLFJPVEFURTowLERPTExZOjEsUEFOOjJ9LEowdD17Uk9UQVRFOjAsUEFOOjEsRE9MTFlfUEFOOjIsRE9MTFlfUk9UQVRFOjN9LFEwdD0xMDAsdDJ0PTMwMCxlMnQ9MzAxLG4ydD0zMDIsaTJ0PTMwMyxyMnQ9MzA0LG8ydD0zMDYsYTJ0PTMwNyxzMnQ9MWUzLGwydD0xMDAxLGMydD0xMDAyLHUydD0xMDAzLGgydD0xMDA0LGQydD0xMDA1LHAydD0xMDA2LGYydD0xMDA3LG0ydD0xMDA4LGcydD0xMDA5LF8ydD0xMDEyLHkydD0xMDE0LHYydD0xMDE1LGIydD0xMDE2LHgydD0xMDIwLHcydD0xMDIyLFMydD0xMDIzLE0ydD0xMDI2LEUydD0xMDI3LFQydD0zMzc3NixDMnQ9MzM3NzcsQTJ0PTMzNzc4LGsydD0zMzc3OSxMMnQ9MzU4NDAsUDJ0PTM1ODQxLE4ydD0zNTg0MixJMnQ9MzU4NDMsUjJ0PTM3NDkyLE8ydD0zNzQ5Nix6MnQ9MjMwMCxEMnQ9MjMwMSxCMnQ9MjMwMixIMnQ9MjQwMCxGMnQ9MjQwMSxWMnQ9MjQwMixVMnQ9MjUwMCxqMnQ9MjUwMSxHMnQ9M2UzLFcydD0zMDAxLHEydD0zMDA3LFkydD0zMDAyLFgydD0zMDA0LCQydD0zMDA1LEsydD0zMDA2LFoydD03NjgwLEoydD0zNTA0NCxRMnQ9MzUwNDgsdDV0PSIzMDAgZXMiO2NsYXNzIGU1dHthZGRFdmVudExpc3RlbmVyKHQsZSl7dm9pZCAwPT09dGhpcy5fbGlzdGVuZXJzJiYodGhpcy5fbGlzdGVuZXJzPXt9KTtjb25zdCBuPXRoaXMuX2xpc3RlbmVyczt2b2lkIDA9PT1uW3RdJiYoblt0XT1bXSksLTE9PT1uW3RdLmluZGV4T2YoZSkmJm5bdF0ucHVzaChlKX1oYXNFdmVudExpc3RlbmVyKHQsZSl7aWYodm9pZCAwPT09dGhpcy5fbGlzdGVuZXJzKXJldHVybiExO2NvbnN0IG49dGhpcy5fbGlzdGVuZXJzO3JldHVybiB2b2lkIDAhPT1uW3RdJiYtMSE9PW5bdF0uaW5kZXhPZihlKX1yZW1vdmVFdmVudExpc3RlbmVyKHQsZSl7aWYodm9pZCAwPT09dGhpcy5fbGlzdGVuZXJzKXJldHVybjtjb25zdCBuPXRoaXMuX2xpc3RlbmVyc1t0XTtpZih2b2lkIDAhPT1uKXtjb25zdCB0PW4uaW5kZXhPZihlKTstMSE9PXQmJm4uc3BsaWNlKHQsMSl9fWRpc3BhdGNoRXZlbnQodCl7aWYodm9pZCAwPT09dGhpcy5fbGlzdGVuZXJzKXJldHVybjtjb25zdCBlPXRoaXMuX2xpc3RlbmVyc1t0LnR5cGVdO2lmKHZvaWQgMCE9PWUpe3QudGFyZ2V0PXRoaXM7Y29uc3Qgbj1lLnNsaWNlKDApO2ZvcihsZXQgZT0wLGk9bi5sZW5ndGg7ZTxpO2UrKyluW2VdLmNhbGwodGhpcyx0KTt0LnRhcmdldD1udWxsfX19Y29uc3QgbjV0PVtdO2ZvcihsZXQgdD0wO3Q8MjU2O3QrKyluNXRbdF09KHQ8MTY/IjAiOiIiKSt0LnRvU3RyaW5nKDE2KTtsZXQgaTV0PTEyMzQ1Njc7Y29uc3QgcjV0PU1hdGguUEkvMTgwLG81dD0xODAvTWF0aC5QSTtmdW5jdGlvbiBhNXQoKXtjb25zdCB0PTQyOTQ5NjcyOTUqTWF0aC5yYW5kb20oKXwwLGU9NDI5NDk2NzI5NSpNYXRoLnJhbmRvbSgpfDAsbj00Mjk0OTY3Mjk1Kk1hdGgucmFuZG9tKCl8MCxpPTQyOTQ5NjcyOTUqTWF0aC5yYW5kb20oKXwwO3JldHVybihuNXRbMjU1JnRdK241dFt0Pj44JjI1NV0rbjV0W3Q+PjE2JjI1NV0rbjV0W3Q+PjI0JjI1NV0rIi0iK241dFsyNTUmZV0rbjV0W2U+PjgmMjU1XSsiLSIrbjV0W2U+PjE2JjE1fDY0XStuNXRbZT4+MjQmMjU1XSsiLSIrbjV0WzYzJm58MTI4XStuNXRbbj4+OCYyNTVdKyItIituNXRbbj4+MTYmMjU1XStuNXRbbj4+MjQmMjU1XStuNXRbMjU1JmldK241dFtpPj44JjI1NV0rbjV0W2k+PjE2JjI1NV0rbjV0W2k+PjI0JjI1NV0pLnRvVXBwZXJDYXNlKCl9ZnVuY3Rpb24gczV0KHQsZSxuKXtyZXR1cm4gTWF0aC5tYXgoZSxNYXRoLm1pbihuLHQpKX1mdW5jdGlvbiBsNXQodCxlKXtyZXR1cm4odCVlK2UpJWV9ZnVuY3Rpb24gYzV0KHQsZSxuKXtyZXR1cm4oMS1uKSp0K24qZX1mdW5jdGlvbiB1NXQodCl7cmV0dXJuIDA9PSh0JnQtMSkmJjAhPT10fWZ1bmN0aW9uIGg1dCh0KXtyZXR1cm4gTWF0aC5wb3coMixNYXRoLmNlaWwoTWF0aC5sb2codCkvTWF0aC5MTjIpKX1mdW5jdGlvbiBkNXQodCl7cmV0dXJuIE1hdGgucG93KDIsTWF0aC5mbG9vcihNYXRoLmxvZyh0KS9NYXRoLkxOMikpfXZhciBwNXQ9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsREVHMlJBRDpyNXQsUkFEMkRFRzpvNXQsZ2VuZXJhdGVVVUlEOmE1dCxjbGFtcDpzNXQsZXVjbGlkZWFuTW9kdWxvOmw1dCxtYXBMaW5lYXI6ZnVuY3Rpb24gZjV0KHQsZSxuLGkscil7cmV0dXJuIGkrKHQtZSkqKHItaSkvKG4tZSl9LGludmVyc2VMZXJwOmZ1bmN0aW9uIG01dCh0LGUsbil7cmV0dXJuIHQhPT1lPyhuLXQpLyhlLXQpOjB9LGxlcnA6YzV0LGRhbXA6ZnVuY3Rpb24gZzV0KHQsZSxuLGkpe3JldHVybiBjNXQodCxlLDEtTWF0aC5leHAoLW4qaSkpfSxwaW5ncG9uZzpmdW5jdGlvbiBfNXQodCxlPTEpe3JldHVybiBlLU1hdGguYWJzKGw1dCh0LDIqZSktZSl9LHNtb290aHN0ZXA6ZnVuY3Rpb24geTV0KHQsZSxuKXtyZXR1cm4gdDw9ZT8wOnQ+PW4/MToodD0odC1lKS8obi1lKSkqdCooMy0yKnQpfSxzbW9vdGhlcnN0ZXA6ZnVuY3Rpb24gdjV0KHQsZSxuKXtyZXR1cm4gdDw9ZT8wOnQ+PW4/MToodD0odC1lKS8obi1lKSkqdCp0Kih0Kig2KnQtMTUpKzEwKX0scmFuZEludDpmdW5jdGlvbiBiNXQodCxlKXtyZXR1cm4gdCtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKGUtdCsxKSl9LHJhbmRGbG9hdDpmdW5jdGlvbiB4NXQodCxlKXtyZXR1cm4gdCtNYXRoLnJhbmRvbSgpKihlLXQpfSxyYW5kRmxvYXRTcHJlYWQ6ZnVuY3Rpb24gdzV0KHQpe3JldHVybiB0KiguNS1NYXRoLnJhbmRvbSgpKX0sc2VlZGVkUmFuZG9tOmZ1bmN0aW9uIFM1dCh0KXtyZXR1cm4gdm9pZCAwIT09dCYmKGk1dD10JTIxNDc0ODM2NDcpLGk1dD0xNjgwNyppNXQlMjE0NzQ4MzY0NywoaTV0LTEpLzIxNDc0ODM2NDZ9LGRlZ1RvUmFkOmZ1bmN0aW9uIE01dCh0KXtyZXR1cm4gdCpyNXR9LHJhZFRvRGVnOmZ1bmN0aW9uIEU1dCh0KXtyZXR1cm4gdCpvNXR9LGlzUG93ZXJPZlR3bzp1NXQsY2VpbFBvd2VyT2ZUd286aDV0LGZsb29yUG93ZXJPZlR3bzpkNXQsc2V0UXVhdGVybmlvbkZyb21Qcm9wZXJFdWxlcjpmdW5jdGlvbiBUNXQodCxlLG4saSxyKXtjb25zdCBvPU1hdGguY29zLGE9TWF0aC5zaW4scz1vKG4vMiksbD1hKG4vMiksYz1vKChlK2kpLzIpLHU9YSgoZStpKS8yKSxoPW8oKGUtaSkvMiksZD1hKChlLWkpLzIpLHA9bygoaS1lKS8yKSxmPWEoKGktZSkvMik7c3dpdGNoKHIpe2Nhc2UiWFlYIjp0LnNldChzKnUsbCpoLGwqZCxzKmMpO2JyZWFrO2Nhc2UiWVpZIjp0LnNldChsKmQscyp1LGwqaCxzKmMpO2JyZWFrO2Nhc2UiWlhaIjp0LnNldChsKmgsbCpkLHMqdSxzKmMpO2JyZWFrO2Nhc2UiWFpYIjp0LnNldChzKnUsbCpmLGwqcCxzKmMpO2JyZWFrO2Nhc2UiWVhZIjp0LnNldChsKnAscyp1LGwqZixzKmMpO2JyZWFrO2Nhc2UiWllaIjp0LnNldChsKmYsbCpwLHMqdSxzKmMpO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS53YXJuKCJUSFJFRS5NYXRoVXRpbHM6IC5zZXRRdWF0ZXJuaW9uRnJvbVByb3BlckV1bGVyKCkgZW5jb3VudGVyZWQgYW4gdW5rbm93biBvcmRlcjogIityKX19fSk7Y2xhc3MgQzV0e2NvbnN0cnVjdG9yKHQ9MCxlPTApe3RoaXMueD10LHRoaXMueT1lfWdldCB3aWR0aCgpe3JldHVybiB0aGlzLnh9c2V0IHdpZHRoKHQpe3RoaXMueD10fWdldCBoZWlnaHQoKXtyZXR1cm4gdGhpcy55fXNldCBoZWlnaHQodCl7dGhpcy55PXR9c2V0KHQsZSl7cmV0dXJuIHRoaXMueD10LHRoaXMueT1lLHRoaXN9c2V0U2NhbGFyKHQpe3JldHVybiB0aGlzLng9dCx0aGlzLnk9dCx0aGlzfXNldFgodCl7cmV0dXJuIHRoaXMueD10LHRoaXN9c2V0WSh0KXtyZXR1cm4gdGhpcy55PXQsdGhpc31zZXRDb21wb25lbnQodCxlKXtzd2l0Y2godCl7Y2FzZSAwOnRoaXMueD1lO2JyZWFrO2Nhc2UgMTp0aGlzLnk9ZTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiaW5kZXggaXMgb3V0IG9mIHJhbmdlOiAiK3QpfXJldHVybiB0aGlzfWdldENvbXBvbmVudCh0KXtzd2l0Y2godCl7Y2FzZSAwOnJldHVybiB0aGlzLng7Y2FzZSAxOnJldHVybiB0aGlzLnk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImluZGV4IGlzIG91dCBvZiByYW5nZTogIit0KX19Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy54LHRoaXMueSl9Y29weSh0KXtyZXR1cm4gdGhpcy54PXQueCx0aGlzLnk9dC55LHRoaXN9YWRkKHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMjogLmFkZCgpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLmFkZFZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMuYWRkVmVjdG9ycyh0LGUpKToodGhpcy54Kz10LngsdGhpcy55Kz10LnksdGhpcyl9YWRkU2NhbGFyKHQpe3JldHVybiB0aGlzLngrPXQsdGhpcy55Kz10LHRoaXN9YWRkVmVjdG9ycyh0LGUpe3JldHVybiB0aGlzLng9dC54K2UueCx0aGlzLnk9dC55K2UueSx0aGlzfWFkZFNjYWxlZFZlY3Rvcih0LGUpe3JldHVybiB0aGlzLngrPXQueCplLHRoaXMueSs9dC55KmUsdGhpc31zdWIodCxlKXtyZXR1cm4gdm9pZCAwIT09ZT8oY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IyOiAuc3ViKCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAuc3ViVmVjdG9ycyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5zdWJWZWN0b3JzKHQsZSkpOih0aGlzLngtPXQueCx0aGlzLnktPXQueSx0aGlzKX1zdWJTY2FsYXIodCl7cmV0dXJuIHRoaXMueC09dCx0aGlzLnktPXQsdGhpc31zdWJWZWN0b3JzKHQsZSl7cmV0dXJuIHRoaXMueD10LngtZS54LHRoaXMueT10LnktZS55LHRoaXN9bXVsdGlwbHkodCl7cmV0dXJuIHRoaXMueCo9dC54LHRoaXMueSo9dC55LHRoaXN9bXVsdGlwbHlTY2FsYXIodCl7cmV0dXJuIHRoaXMueCo9dCx0aGlzLnkqPXQsdGhpc31kaXZpZGUodCl7cmV0dXJuIHRoaXMueC89dC54LHRoaXMueS89dC55LHRoaXN9ZGl2aWRlU2NhbGFyKHQpe3JldHVybiB0aGlzLm11bHRpcGx5U2NhbGFyKDEvdCl9YXBwbHlNYXRyaXgzKHQpe2NvbnN0IGU9dGhpcy54LG49dGhpcy55LGk9dC5lbGVtZW50cztyZXR1cm4gdGhpcy54PWlbMF0qZStpWzNdKm4raVs2XSx0aGlzLnk9aVsxXSplK2lbNF0qbitpWzddLHRoaXN9bWluKHQpe3JldHVybiB0aGlzLng9TWF0aC5taW4odGhpcy54LHQueCksdGhpcy55PU1hdGgubWluKHRoaXMueSx0LnkpLHRoaXN9bWF4KHQpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodGhpcy54LHQueCksdGhpcy55PU1hdGgubWF4KHRoaXMueSx0LnkpLHRoaXN9Y2xhbXAodCxlKXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHQueCxNYXRoLm1pbihlLngsdGhpcy54KSksdGhpcy55PU1hdGgubWF4KHQueSxNYXRoLm1pbihlLnksdGhpcy55KSksdGhpc31jbGFtcFNjYWxhcih0LGUpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodCxNYXRoLm1pbihlLHRoaXMueCkpLHRoaXMueT1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy55KSksdGhpc31jbGFtcExlbmd0aCh0LGUpe2NvbnN0IG49dGhpcy5sZW5ndGgoKTtyZXR1cm4gdGhpcy5kaXZpZGVTY2FsYXIobnx8MSkubXVsdGlwbHlTY2FsYXIoTWF0aC5tYXgodCxNYXRoLm1pbihlLG4pKSl9Zmxvb3IoKXtyZXR1cm4gdGhpcy54PU1hdGguZmxvb3IodGhpcy54KSx0aGlzLnk9TWF0aC5mbG9vcih0aGlzLnkpLHRoaXN9Y2VpbCgpe3JldHVybiB0aGlzLng9TWF0aC5jZWlsKHRoaXMueCksdGhpcy55PU1hdGguY2VpbCh0aGlzLnkpLHRoaXN9cm91bmQoKXtyZXR1cm4gdGhpcy54PU1hdGgucm91bmQodGhpcy54KSx0aGlzLnk9TWF0aC5yb3VuZCh0aGlzLnkpLHRoaXN9cm91bmRUb1plcm8oKXtyZXR1cm4gdGhpcy54PXRoaXMueDwwP01hdGguY2VpbCh0aGlzLngpOk1hdGguZmxvb3IodGhpcy54KSx0aGlzLnk9dGhpcy55PDA/TWF0aC5jZWlsKHRoaXMueSk6TWF0aC5mbG9vcih0aGlzLnkpLHRoaXN9bmVnYXRlKCl7cmV0dXJuIHRoaXMueD0tdGhpcy54LHRoaXMueT0tdGhpcy55LHRoaXN9ZG90KHQpe3JldHVybiB0aGlzLngqdC54K3RoaXMueSp0Lnl9Y3Jvc3ModCl7cmV0dXJuIHRoaXMueCp0LnktdGhpcy55KnQueH1sZW5ndGhTcSgpe3JldHVybiB0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnl9bGVuZ3RoKCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnkpfW1hbmhhdHRhbkxlbmd0aCgpe3JldHVybiBNYXRoLmFicyh0aGlzLngpK01hdGguYWJzKHRoaXMueSl9bm9ybWFsaXplKCl7cmV0dXJuIHRoaXMuZGl2aWRlU2NhbGFyKHRoaXMubGVuZ3RoKCl8fDEpfWFuZ2xlKCl7cmV0dXJuIE1hdGguYXRhbjIoLXRoaXMueSwtdGhpcy54KStNYXRoLlBJfWRpc3RhbmNlVG8odCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLmRpc3RhbmNlVG9TcXVhcmVkKHQpKX1kaXN0YW5jZVRvU3F1YXJlZCh0KXtjb25zdCBlPXRoaXMueC10Lngsbj10aGlzLnktdC55O3JldHVybiBlKmUrbipufW1hbmhhdHRhbkRpc3RhbmNlVG8odCl7cmV0dXJuIE1hdGguYWJzKHRoaXMueC10LngpK01hdGguYWJzKHRoaXMueS10LnkpfXNldExlbmd0aCh0KXtyZXR1cm4gdGhpcy5ub3JtYWxpemUoKS5tdWx0aXBseVNjYWxhcih0KX1sZXJwKHQsZSl7cmV0dXJuIHRoaXMueCs9KHQueC10aGlzLngpKmUsdGhpcy55Kz0odC55LXRoaXMueSkqZSx0aGlzfWxlcnBWZWN0b3JzKHQsZSxuKXtyZXR1cm4gdGhpcy54PXQueCsoZS54LXQueCkqbix0aGlzLnk9dC55KyhlLnktdC55KSpuLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0Lng9PT10aGlzLngmJnQueT09PXRoaXMueX1mcm9tQXJyYXkodCxlPTApe3JldHVybiB0aGlzLng9dFtlXSx0aGlzLnk9dFtlKzFdLHRoaXN9dG9BcnJheSh0PVtdLGU9MCl7cmV0dXJuIHRbZV09dGhpcy54LHRbZSsxXT10aGlzLnksdH1mcm9tQnVmZmVyQXR0cmlidXRlKHQsZSxuKXtyZXR1cm4gdm9pZCAwIT09biYmY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IyOiBvZmZzZXQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIC5mcm9tQnVmZmVyQXR0cmlidXRlKCkuIiksdGhpcy54PXQuZ2V0WChlKSx0aGlzLnk9dC5nZXRZKGUpLHRoaXN9cm90YXRlQXJvdW5kKHQsZSl7Y29uc3Qgbj1NYXRoLmNvcyhlKSxpPU1hdGguc2luKGUpLHI9dGhpcy54LXQueCxvPXRoaXMueS10Lnk7cmV0dXJuIHRoaXMueD1yKm4tbyppK3QueCx0aGlzLnk9cippK28qbit0LnksdGhpc31yYW5kb20oKXtyZXR1cm4gdGhpcy54PU1hdGgucmFuZG9tKCksdGhpcy55PU1hdGgucmFuZG9tKCksdGhpc319QzV0LnByb3RvdHlwZS5pc1ZlY3RvcjI9ITA7Y2xhc3MgQTV0e2NvbnN0cnVjdG9yKCl7dGhpcy5lbGVtZW50cz1bMSwwLDAsMCwxLDAsMCwwLDFdLGFyZ3VtZW50cy5sZW5ndGg+MCYmY29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4MzogdGhlIGNvbnN0cnVjdG9yIG5vIGxvbmdlciByZWFkcyBhcmd1bWVudHMuIHVzZSAuc2V0KCkgaW5zdGVhZC4iKX1zZXQodCxlLG4saSxyLG8sYSxzLGwpe2NvbnN0IGM9dGhpcy5lbGVtZW50cztyZXR1cm4gY1swXT10LGNbMV09aSxjWzJdPWEsY1szXT1lLGNbNF09cixjWzVdPXMsY1s2XT1uLGNbN109byxjWzhdPWwsdGhpc31pZGVudGl0eSgpe3JldHVybiB0aGlzLnNldCgxLDAsMCwwLDEsMCwwLDAsMSksdGhpc31jb3B5KHQpe2NvbnN0IGU9dGhpcy5lbGVtZW50cyxuPXQuZWxlbWVudHM7cmV0dXJuIGVbMF09blswXSxlWzFdPW5bMV0sZVsyXT1uWzJdLGVbM109blszXSxlWzRdPW5bNF0sZVs1XT1uWzVdLGVbNl09bls2XSxlWzddPW5bN10sZVs4XT1uWzhdLHRoaXN9ZXh0cmFjdEJhc2lzKHQsZSxuKXtyZXR1cm4gdC5zZXRGcm9tTWF0cml4M0NvbHVtbih0aGlzLDApLGUuc2V0RnJvbU1hdHJpeDNDb2x1bW4odGhpcywxKSxuLnNldEZyb21NYXRyaXgzQ29sdW1uKHRoaXMsMiksdGhpc31zZXRGcm9tTWF0cml4NCh0KXtjb25zdCBlPXQuZWxlbWVudHM7cmV0dXJuIHRoaXMuc2V0KGVbMF0sZVs0XSxlWzhdLGVbMV0sZVs1XSxlWzldLGVbMl0sZVs2XSxlWzEwXSksdGhpc31tdWx0aXBseSh0KXtyZXR1cm4gdGhpcy5tdWx0aXBseU1hdHJpY2VzKHRoaXMsdCl9cHJlbXVsdGlwbHkodCl7cmV0dXJuIHRoaXMubXVsdGlwbHlNYXRyaWNlcyh0LHRoaXMpfW11bHRpcGx5TWF0cmljZXModCxlKXtjb25zdCBuPXQuZWxlbWVudHMsaT1lLmVsZW1lbnRzLHI9dGhpcy5lbGVtZW50cyxvPW5bMF0sYT1uWzNdLHM9bls2XSxsPW5bMV0sYz1uWzRdLHU9bls3XSxoPW5bMl0sZD1uWzVdLHA9bls4XSxmPWlbMF0sbT1pWzNdLGc9aVs2XSxfPWlbMV0seT1pWzRdLHY9aVs3XSxiPWlbMl0seD1pWzVdLHc9aVs4XTtyZXR1cm4gclswXT1vKmYrYSpfK3MqYixyWzNdPW8qbSthKnkrcyp4LHJbNl09bypnK2EqditzKncsclsxXT1sKmYrYypfK3UqYixyWzRdPWwqbStjKnkrdSp4LHJbN109bCpnK2Mqdit1KncsclsyXT1oKmYrZCpfK3AqYixyWzVdPWgqbStkKnkrcCp4LHJbOF09aCpnK2QqditwKncsdGhpc31tdWx0aXBseVNjYWxhcih0KXtjb25zdCBlPXRoaXMuZWxlbWVudHM7cmV0dXJuIGVbMF0qPXQsZVszXSo9dCxlWzZdKj10LGVbMV0qPXQsZVs0XSo9dCxlWzddKj10LGVbMl0qPXQsZVs1XSo9dCxlWzhdKj10LHRoaXN9ZGV0ZXJtaW5hbnQoKXtjb25zdCB0PXRoaXMuZWxlbWVudHMsZT10WzBdLG49dFsxXSxpPXRbMl0scj10WzNdLG89dFs0XSxhPXRbNV0scz10WzZdLGw9dFs3XSxjPXRbOF07cmV0dXJuIGUqbypjLWUqYSpsLW4qcipjK24qYSpzK2kqcipsLWkqbypzfWludmVydCgpe2NvbnN0IHQ9dGhpcy5lbGVtZW50cyxlPXRbMF0sbj10WzFdLGk9dFsyXSxyPXRbM10sbz10WzRdLGE9dFs1XSxzPXRbNl0sbD10WzddLGM9dFs4XSx1PWMqby1hKmwsaD1hKnMtYypyLGQ9bCpyLW8qcyxwPWUqdStuKmgraSpkO2lmKDA9PT1wKXJldHVybiB0aGlzLnNldCgwLDAsMCwwLDAsMCwwLDAsMCk7Y29uc3QgZj0xL3A7cmV0dXJuIHRbMF09dSpmLHRbMV09KGkqbC1jKm4pKmYsdFsyXT0oYSpuLWkqbykqZix0WzNdPWgqZix0WzRdPShjKmUtaSpzKSpmLHRbNV09KGkqci1hKmUpKmYsdFs2XT1kKmYsdFs3XT0obipzLWwqZSkqZix0WzhdPShvKmUtbipyKSpmLHRoaXN9dHJhbnNwb3NlKCl7bGV0IHQ7Y29uc3QgZT10aGlzLmVsZW1lbnRzO3JldHVybiB0PWVbMV0sZVsxXT1lWzNdLGVbM109dCx0PWVbMl0sZVsyXT1lWzZdLGVbNl09dCx0PWVbNV0sZVs1XT1lWzddLGVbN109dCx0aGlzfWdldE5vcm1hbE1hdHJpeCh0KXtyZXR1cm4gdGhpcy5zZXRGcm9tTWF0cml4NCh0KS5pbnZlcnQoKS50cmFuc3Bvc2UoKX10cmFuc3Bvc2VJbnRvQXJyYXkodCl7Y29uc3QgZT10aGlzLmVsZW1lbnRzO3JldHVybiB0WzBdPWVbMF0sdFsxXT1lWzNdLHRbMl09ZVs2XSx0WzNdPWVbMV0sdFs0XT1lWzRdLHRbNV09ZVs3XSx0WzZdPWVbMl0sdFs3XT1lWzVdLHRbOF09ZVs4XSx0aGlzfXNldFV2VHJhbnNmb3JtKHQsZSxuLGkscixvLGEpe2NvbnN0IHM9TWF0aC5jb3MociksbD1NYXRoLnNpbihyKTtyZXR1cm4gdGhpcy5zZXQobipzLG4qbCwtbioocypvK2wqYSkrbyt0LC1pKmwsaSpzLC1pKigtbCpvK3MqYSkrYStlLDAsMCwxKSx0aGlzfXNjYWxlKHQsZSl7Y29uc3Qgbj10aGlzLmVsZW1lbnRzO3JldHVybiBuWzBdKj10LG5bM10qPXQsbls2XSo9dCxuWzFdKj1lLG5bNF0qPWUsbls3XSo9ZSx0aGlzfXJvdGF0ZSh0KXtjb25zdCBlPU1hdGguY29zKHQpLG49TWF0aC5zaW4odCksaT10aGlzLmVsZW1lbnRzLHI9aVswXSxvPWlbM10sYT1pWzZdLHM9aVsxXSxsPWlbNF0sYz1pWzddO3JldHVybiBpWzBdPWUqcituKnMsaVszXT1lKm8rbipsLGlbNl09ZSphK24qYyxpWzFdPS1uKnIrZSpzLGlbNF09LW4qbytlKmwsaVs3XT0tbiphK2UqYyx0aGlzfXRyYW5zbGF0ZSh0LGUpe2NvbnN0IG49dGhpcy5lbGVtZW50cztyZXR1cm4gblswXSs9dCpuWzJdLG5bM10rPXQqbls1XSxuWzZdKz10Km5bOF0sblsxXSs9ZSpuWzJdLG5bNF0rPWUqbls1XSxuWzddKz1lKm5bOF0sdGhpc31lcXVhbHModCl7Y29uc3QgZT10aGlzLmVsZW1lbnRzLG49dC5lbGVtZW50cztmb3IobGV0IHQ9MDt0PDk7dCsrKWlmKGVbdF0hPT1uW3RdKXJldHVybiExO3JldHVybiEwfWZyb21BcnJheSh0LGU9MCl7Zm9yKGxldCBuPTA7bjw5O24rKyl0aGlzLmVsZW1lbnRzW25dPXRbbitlXTtyZXR1cm4gdGhpc310b0FycmF5KHQ9W10sZT0wKXtjb25zdCBuPXRoaXMuZWxlbWVudHM7cmV0dXJuIHRbZV09blswXSx0W2UrMV09blsxXSx0W2UrMl09blsyXSx0W2UrM109blszXSx0W2UrNF09bls0XSx0W2UrNV09bls1XSx0W2UrNl09bls2XSx0W2UrN109bls3XSx0W2UrOF09bls4XSx0fWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5mcm9tQXJyYXkodGhpcy5lbGVtZW50cyl9fWxldCBrNXQ7QTV0LnByb3RvdHlwZS5pc01hdHJpeDM9ITA7Y2xhc3MgTDV0e3N0YXRpYyBnZXREYXRhVVJMKHQpe2lmKC9eZGF0YTovaS50ZXN0KHQuc3JjKSlyZXR1cm4gdC5zcmM7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBIVE1MQ2FudmFzRWxlbWVudClyZXR1cm4gdC5zcmM7bGV0IGU7aWYodCBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50KWU9dDtlbHNle3ZvaWQgMD09PWs1dCYmKGs1dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJjYW52YXMiKSksazV0LndpZHRoPXQud2lkdGgsazV0LmhlaWdodD10LmhlaWdodDtjb25zdCBuPWs1dC5nZXRDb250ZXh0KCIyZCIpO3QgaW5zdGFuY2VvZiBJbWFnZURhdGE/bi5wdXRJbWFnZURhdGEodCwwLDApOm4uZHJhd0ltYWdlKHQsMCwwLHQud2lkdGgsdC5oZWlnaHQpLGU9azV0fXJldHVybiBlLndpZHRoPjIwNDh8fGUuaGVpZ2h0PjIwNDg/KGNvbnNvbGUud2FybigiVEhSRUUuSW1hZ2VVdGlscy5nZXREYXRhVVJMOiBJbWFnZSBjb252ZXJ0ZWQgdG8ganBnIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIix0KSxlLnRvRGF0YVVSTCgiaW1hZ2UvanBlZyIsLjYpKTplLnRvRGF0YVVSTCgiaW1hZ2UvcG5nIil9fWxldCBQNXQ9MDtjbGFzcyBONXQgZXh0ZW5kcyBlNXR7Y29uc3RydWN0b3IodD1ONXQuREVGQVVMVF9JTUFHRSxlPU41dC5ERUZBVUxUX01BUFBJTkcsbj0xMDAxLGk9MTAwMSxyPTEwMDYsbz0xMDA4LGE9MTAyMyxzPTEwMDksbD0xLGM9M2UzKXtzdXBlcigpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJpZCIse3ZhbHVlOlA1dCsrfSksdGhpcy51dWlkPWE1dCgpLHRoaXMubmFtZT0iIix0aGlzLmltYWdlPXQsdGhpcy5taXBtYXBzPVtdLHRoaXMubWFwcGluZz1lLHRoaXMud3JhcFM9bix0aGlzLndyYXBUPWksdGhpcy5tYWdGaWx0ZXI9cix0aGlzLm1pbkZpbHRlcj1vLHRoaXMuYW5pc290cm9weT1sLHRoaXMuZm9ybWF0PWEsdGhpcy5pbnRlcm5hbEZvcm1hdD1udWxsLHRoaXMudHlwZT1zLHRoaXMub2Zmc2V0PW5ldyBDNXQoMCwwKSx0aGlzLnJlcGVhdD1uZXcgQzV0KDEsMSksdGhpcy5jZW50ZXI9bmV3IEM1dCgwLDApLHRoaXMucm90YXRpb249MCx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9ITAsdGhpcy5tYXRyaXg9bmV3IEE1dCx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMCx0aGlzLnByZW11bHRpcGx5QWxwaGE9ITEsdGhpcy5mbGlwWT0hMCx0aGlzLnVucGFja0FsaWdubWVudD00LHRoaXMuZW5jb2Rpbmc9Yyx0aGlzLnZlcnNpb249MCx0aGlzLm9uVXBkYXRlPW51bGwsdGhpcy5pc1JlbmRlclRhcmdldFRleHR1cmU9ITF9dXBkYXRlTWF0cml4KCl7dGhpcy5tYXRyaXguc2V0VXZUcmFuc2Zvcm0odGhpcy5vZmZzZXQueCx0aGlzLm9mZnNldC55LHRoaXMucmVwZWF0LngsdGhpcy5yZXBlYXQueSx0aGlzLnJvdGF0aW9uLHRoaXMuY2VudGVyLngsdGhpcy5jZW50ZXIueSl9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9Y29weSh0KXtyZXR1cm4gdGhpcy5uYW1lPXQubmFtZSx0aGlzLmltYWdlPXQuaW1hZ2UsdGhpcy5taXBtYXBzPXQubWlwbWFwcy5zbGljZSgwKSx0aGlzLm1hcHBpbmc9dC5tYXBwaW5nLHRoaXMud3JhcFM9dC53cmFwUyx0aGlzLndyYXBUPXQud3JhcFQsdGhpcy5tYWdGaWx0ZXI9dC5tYWdGaWx0ZXIsdGhpcy5taW5GaWx0ZXI9dC5taW5GaWx0ZXIsdGhpcy5hbmlzb3Ryb3B5PXQuYW5pc290cm9weSx0aGlzLmZvcm1hdD10LmZvcm1hdCx0aGlzLmludGVybmFsRm9ybWF0PXQuaW50ZXJuYWxGb3JtYXQsdGhpcy50eXBlPXQudHlwZSx0aGlzLm9mZnNldC5jb3B5KHQub2Zmc2V0KSx0aGlzLnJlcGVhdC5jb3B5KHQucmVwZWF0KSx0aGlzLmNlbnRlci5jb3B5KHQuY2VudGVyKSx0aGlzLnJvdGF0aW9uPXQucm90YXRpb24sdGhpcy5tYXRyaXhBdXRvVXBkYXRlPXQubWF0cml4QXV0b1VwZGF0ZSx0aGlzLm1hdHJpeC5jb3B5KHQubWF0cml4KSx0aGlzLmdlbmVyYXRlTWlwbWFwcz10LmdlbmVyYXRlTWlwbWFwcyx0aGlzLnByZW11bHRpcGx5QWxwaGE9dC5wcmVtdWx0aXBseUFscGhhLHRoaXMuZmxpcFk9dC5mbGlwWSx0aGlzLnVucGFja0FsaWdubWVudD10LnVucGFja0FsaWdubWVudCx0aGlzLmVuY29kaW5nPXQuZW5jb2RpbmcsdGhpc310b0pTT04odCl7Y29uc3QgZT12b2lkIDA9PT10fHwic3RyaW5nIj09dHlwZW9mIHQ7aWYoIWUmJnZvaWQgMCE9PXQudGV4dHVyZXNbdGhpcy51dWlkXSlyZXR1cm4gdC50ZXh0dXJlc1t0aGlzLnV1aWRdO2NvbnN0IG49e21ldGFkYXRhOnt2ZXJzaW9uOjQuNSx0eXBlOiJUZXh0dXJlIixnZW5lcmF0b3I6IlRleHR1cmUudG9KU09OIn0sdXVpZDp0aGlzLnV1aWQsbmFtZTp0aGlzLm5hbWUsbWFwcGluZzp0aGlzLm1hcHBpbmcscmVwZWF0Olt0aGlzLnJlcGVhdC54LHRoaXMucmVwZWF0LnldLG9mZnNldDpbdGhpcy5vZmZzZXQueCx0aGlzLm9mZnNldC55XSxjZW50ZXI6W3RoaXMuY2VudGVyLngsdGhpcy5jZW50ZXIueV0scm90YXRpb246dGhpcy5yb3RhdGlvbix3cmFwOlt0aGlzLndyYXBTLHRoaXMud3JhcFRdLGZvcm1hdDp0aGlzLmZvcm1hdCx0eXBlOnRoaXMudHlwZSxlbmNvZGluZzp0aGlzLmVuY29kaW5nLG1pbkZpbHRlcjp0aGlzLm1pbkZpbHRlcixtYWdGaWx0ZXI6dGhpcy5tYWdGaWx0ZXIsYW5pc290cm9weTp0aGlzLmFuaXNvdHJvcHksZmxpcFk6dGhpcy5mbGlwWSxwcmVtdWx0aXBseUFscGhhOnRoaXMucHJlbXVsdGlwbHlBbHBoYSx1bnBhY2tBbGlnbm1lbnQ6dGhpcy51bnBhY2tBbGlnbm1lbnR9O2lmKHZvaWQgMCE9PXRoaXMuaW1hZ2Upe2NvbnN0IGk9dGhpcy5pbWFnZTtpZih2b2lkIDA9PT1pLnV1aWQmJihpLnV1aWQ9YTV0KCkpLCFlJiZ2b2lkIDA9PT10LmltYWdlc1tpLnV1aWRdKXtsZXQgZTtpZihBcnJheS5pc0FycmF5KGkpKXtlPVtdO2ZvcihsZXQgdD0wLG49aS5sZW5ndGg7dDxuO3QrKyllLnB1c2goSTV0KGlbdF0uaXNEYXRhVGV4dHVyZT9pW3RdLmltYWdlOmlbdF0pKX1lbHNlIGU9STV0KGkpO3QuaW1hZ2VzW2kudXVpZF09e3V1aWQ6aS51dWlkLHVybDplfX1uLmltYWdlPWkudXVpZH1yZXR1cm4gZXx8KHQudGV4dHVyZXNbdGhpcy51dWlkXT1uKSxufWRpc3Bvc2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImRpc3Bvc2UifSl9dHJhbnNmb3JtVXYodCl7aWYodGhpcy5tYXBwaW5nIT09dDJ0KXJldHVybiB0O2lmKHQuYXBwbHlNYXRyaXgzKHRoaXMubWF0cml4KSx0Lng8MHx8dC54PjEpc3dpdGNoKHRoaXMud3JhcFMpe2Nhc2UgczJ0OnQueD10LngtTWF0aC5mbG9vcih0LngpO2JyZWFrO2Nhc2UgbDJ0OnQueD10Lng8MD8wOjE7YnJlYWs7Y2FzZSBjMnQ6dC54PTE9PT1NYXRoLmFicyhNYXRoLmZsb29yKHQueCklMik/TWF0aC5jZWlsKHQueCktdC54OnQueC1NYXRoLmZsb29yKHQueCl9aWYodC55PDB8fHQueT4xKXN3aXRjaCh0aGlzLndyYXBUKXtjYXNlIHMydDp0Lnk9dC55LU1hdGguZmxvb3IodC55KTticmVhaztjYXNlIGwydDp0Lnk9dC55PDA/MDoxO2JyZWFrO2Nhc2UgYzJ0OnQueT0xPT09TWF0aC5hYnMoTWF0aC5mbG9vcih0LnkpJTIpP01hdGguY2VpbCh0LnkpLXQueTp0LnktTWF0aC5mbG9vcih0LnkpfXJldHVybiB0aGlzLmZsaXBZJiYodC55PTEtdC55KSx0fXNldCBuZWVkc1VwZGF0ZSh0KXshMD09PXQmJnRoaXMudmVyc2lvbisrfX1mdW5jdGlvbiBJNXQodCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBIVE1MSW1hZ2VFbGVtZW50JiZ0IGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudHx8InVuZGVmaW5lZCIhPXR5cGVvZiBIVE1MQ2FudmFzRWxlbWVudCYmdCBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50fHwidW5kZWZpbmVkIiE9dHlwZW9mIEltYWdlQml0bWFwJiZ0IGluc3RhbmNlb2YgSW1hZ2VCaXRtYXA/TDV0LmdldERhdGFVUkwodCk6dC5kYXRhP3tkYXRhOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQuZGF0YSksd2lkdGg6dC53aWR0aCxoZWlnaHQ6dC5oZWlnaHQsdHlwZTp0LmRhdGEuY29uc3RydWN0b3IubmFtZX06KGNvbnNvbGUud2FybigiVEhSRUUuVGV4dHVyZTogVW5hYmxlIHRvIHNlcmlhbGl6ZSBUZXh0dXJlLiIpLHt9KX1ONXQuREVGQVVMVF9JTUFHRT12b2lkIDAsTjV0LkRFRkFVTFRfTUFQUElORz10MnQsTjV0LnByb3RvdHlwZS5pc1RleHR1cmU9ITA7Y2xhc3MgUjV0e2NvbnN0cnVjdG9yKHQ9MCxlPTAsbj0wLGk9MSl7dGhpcy54PXQsdGhpcy55PWUsdGhpcy56PW4sdGhpcy53PWl9Z2V0IHdpZHRoKCl7cmV0dXJuIHRoaXMuen1zZXQgd2lkdGgodCl7dGhpcy56PXR9Z2V0IGhlaWdodCgpe3JldHVybiB0aGlzLnd9c2V0IGhlaWdodCh0KXt0aGlzLnc9dH1zZXQodCxlLG4saSl7cmV0dXJuIHRoaXMueD10LHRoaXMueT1lLHRoaXMuej1uLHRoaXMudz1pLHRoaXN9c2V0U2NhbGFyKHQpe3JldHVybiB0aGlzLng9dCx0aGlzLnk9dCx0aGlzLno9dCx0aGlzLnc9dCx0aGlzfXNldFgodCl7cmV0dXJuIHRoaXMueD10LHRoaXN9c2V0WSh0KXtyZXR1cm4gdGhpcy55PXQsdGhpc31zZXRaKHQpe3JldHVybiB0aGlzLno9dCx0aGlzfXNldFcodCl7cmV0dXJuIHRoaXMudz10LHRoaXN9c2V0Q29tcG9uZW50KHQsZSl7c3dpdGNoKHQpe2Nhc2UgMDp0aGlzLng9ZTticmVhaztjYXNlIDE6dGhpcy55PWU7YnJlYWs7Y2FzZSAyOnRoaXMuej1lO2JyZWFrO2Nhc2UgMzp0aGlzLnc9ZTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiaW5kZXggaXMgb3V0IG9mIHJhbmdlOiAiK3QpfXJldHVybiB0aGlzfWdldENvbXBvbmVudCh0KXtzd2l0Y2godCl7Y2FzZSAwOnJldHVybiB0aGlzLng7Y2FzZSAxOnJldHVybiB0aGlzLnk7Y2FzZSAyOnJldHVybiB0aGlzLno7Y2FzZSAzOnJldHVybiB0aGlzLnc7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImluZGV4IGlzIG91dCBvZiByYW5nZTogIit0KX19Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy54LHRoaXMueSx0aGlzLnosdGhpcy53KX1jb3B5KHQpe3JldHVybiB0aGlzLng9dC54LHRoaXMueT10LnksdGhpcy56PXQueix0aGlzLnc9dm9pZCAwIT09dC53P3QudzoxLHRoaXN9YWRkKHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yNDogLmFkZCgpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLmFkZFZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMuYWRkVmVjdG9ycyh0LGUpKToodGhpcy54Kz10LngsdGhpcy55Kz10LnksdGhpcy56Kz10LnosdGhpcy53Kz10LncsdGhpcyl9YWRkU2NhbGFyKHQpe3JldHVybiB0aGlzLngrPXQsdGhpcy55Kz10LHRoaXMueis9dCx0aGlzLncrPXQsdGhpc31hZGRWZWN0b3JzKHQsZSl7cmV0dXJuIHRoaXMueD10LngrZS54LHRoaXMueT10LnkrZS55LHRoaXMuej10LnorZS56LHRoaXMudz10LncrZS53LHRoaXN9YWRkU2NhbGVkVmVjdG9yKHQsZSl7cmV0dXJuIHRoaXMueCs9dC54KmUsdGhpcy55Kz10LnkqZSx0aGlzLnorPXQueiplLHRoaXMudys9dC53KmUsdGhpc31zdWIodCxlKXtyZXR1cm4gdm9pZCAwIT09ZT8oY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3I0OiAuc3ViKCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAuc3ViVmVjdG9ycyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5zdWJWZWN0b3JzKHQsZSkpOih0aGlzLngtPXQueCx0aGlzLnktPXQueSx0aGlzLnotPXQueix0aGlzLnctPXQudyx0aGlzKX1zdWJTY2FsYXIodCl7cmV0dXJuIHRoaXMueC09dCx0aGlzLnktPXQsdGhpcy56LT10LHRoaXMudy09dCx0aGlzfXN1YlZlY3RvcnModCxlKXtyZXR1cm4gdGhpcy54PXQueC1lLngsdGhpcy55PXQueS1lLnksdGhpcy56PXQuei1lLnosdGhpcy53PXQudy1lLncsdGhpc31tdWx0aXBseSh0KXtyZXR1cm4gdGhpcy54Kj10LngsdGhpcy55Kj10LnksdGhpcy56Kj10LnosdGhpcy53Kj10LncsdGhpc31tdWx0aXBseVNjYWxhcih0KXtyZXR1cm4gdGhpcy54Kj10LHRoaXMueSo9dCx0aGlzLnoqPXQsdGhpcy53Kj10LHRoaXN9YXBwbHlNYXRyaXg0KHQpe2NvbnN0IGU9dGhpcy54LG49dGhpcy55LGk9dGhpcy56LHI9dGhpcy53LG89dC5lbGVtZW50cztyZXR1cm4gdGhpcy54PW9bMF0qZStvWzRdKm4rb1s4XSppK29bMTJdKnIsdGhpcy55PW9bMV0qZStvWzVdKm4rb1s5XSppK29bMTNdKnIsdGhpcy56PW9bMl0qZStvWzZdKm4rb1sxMF0qaStvWzE0XSpyLHRoaXMudz1vWzNdKmUrb1s3XSpuK29bMTFdKmkrb1sxNV0qcix0aGlzfWRpdmlkZVNjYWxhcih0KXtyZXR1cm4gdGhpcy5tdWx0aXBseVNjYWxhcigxL3QpfXNldEF4aXNBbmdsZUZyb21RdWF0ZXJuaW9uKHQpe3RoaXMudz0yKk1hdGguYWNvcyh0LncpO2NvbnN0IGU9TWF0aC5zcXJ0KDEtdC53KnQudyk7cmV0dXJuIGU8MWUtND8odGhpcy54PTEsdGhpcy55PTAsdGhpcy56PTApOih0aGlzLng9dC54L2UsdGhpcy55PXQueS9lLHRoaXMuej10LnovZSksdGhpc31zZXRBeGlzQW5nbGVGcm9tUm90YXRpb25NYXRyaXgodCl7bGV0IGUsbixpLHI7Y29uc3Qgbz0uMDEsYT0uMSxzPXQuZWxlbWVudHMsbD1zWzBdLGM9c1s0XSx1PXNbOF0saD1zWzFdLGQ9c1s1XSxwPXNbOV0sZj1zWzJdLG09c1s2XSxnPXNbMTBdO2lmKE1hdGguYWJzKGMtaCk8byYmTWF0aC5hYnModS1mKTxvJiZNYXRoLmFicyhwLW0pPG8pe2lmKE1hdGguYWJzKGMraCk8YSYmTWF0aC5hYnModStmKTxhJiZNYXRoLmFicyhwK20pPGEmJk1hdGguYWJzKGwrZCtnLTMpPGEpcmV0dXJuIHRoaXMuc2V0KDEsMCwwLDApLHRoaXM7ZT1NYXRoLlBJO2NvbnN0IHQ9KGwrMSkvMixzPShkKzEpLzIsXz0oZysxKS8yLHk9KGMraCkvNCx2PSh1K2YpLzQsYj0ocCttKS80O3JldHVybiB0PnMmJnQ+Xz90PG8/KG49MCxpPS43MDcxMDY3ODEscj0uNzA3MTA2NzgxKToobj1NYXRoLnNxcnQodCksaT15L24scj12L24pOnM+Xz9zPG8/KG49LjcwNzEwNjc4MSxpPTAscj0uNzA3MTA2NzgxKTooaT1NYXRoLnNxcnQocyksbj15L2kscj1iL2kpOl88bz8obj0uNzA3MTA2NzgxLGk9LjcwNzEwNjc4MSxyPTApOihyPU1hdGguc3FydChfKSxuPXYvcixpPWIvciksdGhpcy5zZXQobixpLHIsZSksdGhpc31sZXQgXz1NYXRoLnNxcnQoKG0tcCkqKG0tcCkrKHUtZikqKHUtZikrKGgtYykqKGgtYykpO3JldHVybiBNYXRoLmFicyhfKTwuMDAxJiYoXz0xKSx0aGlzLng9KG0tcCkvXyx0aGlzLnk9KHUtZikvXyx0aGlzLno9KGgtYykvXyx0aGlzLnc9TWF0aC5hY29zKChsK2QrZy0xKS8yKSx0aGlzfW1pbih0KXtyZXR1cm4gdGhpcy54PU1hdGgubWluKHRoaXMueCx0LngpLHRoaXMueT1NYXRoLm1pbih0aGlzLnksdC55KSx0aGlzLno9TWF0aC5taW4odGhpcy56LHQueiksdGhpcy53PU1hdGgubWluKHRoaXMudyx0LncpLHRoaXN9bWF4KHQpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodGhpcy54LHQueCksdGhpcy55PU1hdGgubWF4KHRoaXMueSx0LnkpLHRoaXMuej1NYXRoLm1heCh0aGlzLnosdC56KSx0aGlzLnc9TWF0aC5tYXgodGhpcy53LHQudyksdGhpc31jbGFtcCh0LGUpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodC54LE1hdGgubWluKGUueCx0aGlzLngpKSx0aGlzLnk9TWF0aC5tYXgodC55LE1hdGgubWluKGUueSx0aGlzLnkpKSx0aGlzLno9TWF0aC5tYXgodC56LE1hdGgubWluKGUueix0aGlzLnopKSx0aGlzLnc9TWF0aC5tYXgodC53LE1hdGgubWluKGUudyx0aGlzLncpKSx0aGlzfWNsYW1wU2NhbGFyKHQsZSl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy54KSksdGhpcy55PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLnkpKSx0aGlzLno9TWF0aC5tYXgodCxNYXRoLm1pbihlLHRoaXMueikpLHRoaXMudz1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy53KSksdGhpc31jbGFtcExlbmd0aCh0LGUpe2NvbnN0IG49dGhpcy5sZW5ndGgoKTtyZXR1cm4gdGhpcy5kaXZpZGVTY2FsYXIobnx8MSkubXVsdGlwbHlTY2FsYXIoTWF0aC5tYXgodCxNYXRoLm1pbihlLG4pKSl9Zmxvb3IoKXtyZXR1cm4gdGhpcy54PU1hdGguZmxvb3IodGhpcy54KSx0aGlzLnk9TWF0aC5mbG9vcih0aGlzLnkpLHRoaXMuej1NYXRoLmZsb29yKHRoaXMueiksdGhpcy53PU1hdGguZmxvb3IodGhpcy53KSx0aGlzfWNlaWwoKXtyZXR1cm4gdGhpcy54PU1hdGguY2VpbCh0aGlzLngpLHRoaXMueT1NYXRoLmNlaWwodGhpcy55KSx0aGlzLno9TWF0aC5jZWlsKHRoaXMueiksdGhpcy53PU1hdGguY2VpbCh0aGlzLncpLHRoaXN9cm91bmQoKXtyZXR1cm4gdGhpcy54PU1hdGgucm91bmQodGhpcy54KSx0aGlzLnk9TWF0aC5yb3VuZCh0aGlzLnkpLHRoaXMuej1NYXRoLnJvdW5kKHRoaXMueiksdGhpcy53PU1hdGgucm91bmQodGhpcy53KSx0aGlzfXJvdW5kVG9aZXJvKCl7cmV0dXJuIHRoaXMueD10aGlzLng8MD9NYXRoLmNlaWwodGhpcy54KTpNYXRoLmZsb29yKHRoaXMueCksdGhpcy55PXRoaXMueTwwP01hdGguY2VpbCh0aGlzLnkpOk1hdGguZmxvb3IodGhpcy55KSx0aGlzLno9dGhpcy56PDA/TWF0aC5jZWlsKHRoaXMueik6TWF0aC5mbG9vcih0aGlzLnopLHRoaXMudz10aGlzLnc8MD9NYXRoLmNlaWwodGhpcy53KTpNYXRoLmZsb29yKHRoaXMudyksdGhpc31uZWdhdGUoKXtyZXR1cm4gdGhpcy54PS10aGlzLngsdGhpcy55PS10aGlzLnksdGhpcy56PS10aGlzLnosdGhpcy53PS10aGlzLncsdGhpc31kb3QodCl7cmV0dXJuIHRoaXMueCp0LngrdGhpcy55KnQueSt0aGlzLnoqdC56K3RoaXMudyp0Lnd9bGVuZ3RoU3EoKXtyZXR1cm4gdGhpcy54KnRoaXMueCt0aGlzLnkqdGhpcy55K3RoaXMueip0aGlzLnordGhpcy53KnRoaXMud31sZW5ndGgoKXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMueCp0aGlzLngrdGhpcy55KnRoaXMueSt0aGlzLnoqdGhpcy56K3RoaXMudyp0aGlzLncpfW1hbmhhdHRhbkxlbmd0aCgpe3JldHVybiBNYXRoLmFicyh0aGlzLngpK01hdGguYWJzKHRoaXMueSkrTWF0aC5hYnModGhpcy56KStNYXRoLmFicyh0aGlzLncpfW5vcm1hbGl6ZSgpe3JldHVybiB0aGlzLmRpdmlkZVNjYWxhcih0aGlzLmxlbmd0aCgpfHwxKX1zZXRMZW5ndGgodCl7cmV0dXJuIHRoaXMubm9ybWFsaXplKCkubXVsdGlwbHlTY2FsYXIodCl9bGVycCh0LGUpe3JldHVybiB0aGlzLngrPSh0LngtdGhpcy54KSplLHRoaXMueSs9KHQueS10aGlzLnkpKmUsdGhpcy56Kz0odC56LXRoaXMueikqZSx0aGlzLncrPSh0LnctdGhpcy53KSplLHRoaXN9bGVycFZlY3RvcnModCxlLG4pe3JldHVybiB0aGlzLng9dC54KyhlLngtdC54KSpuLHRoaXMueT10LnkrKGUueS10LnkpKm4sdGhpcy56PXQueisoZS56LXQueikqbix0aGlzLnc9dC53KyhlLnctdC53KSpuLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0Lng9PT10aGlzLngmJnQueT09PXRoaXMueSYmdC56PT09dGhpcy56JiZ0Lnc9PT10aGlzLnd9ZnJvbUFycmF5KHQsZT0wKXtyZXR1cm4gdGhpcy54PXRbZV0sdGhpcy55PXRbZSsxXSx0aGlzLno9dFtlKzJdLHRoaXMudz10W2UrM10sdGhpc310b0FycmF5KHQ9W10sZT0wKXtyZXR1cm4gdFtlXT10aGlzLngsdFtlKzFdPXRoaXMueSx0W2UrMl09dGhpcy56LHRbZSszXT10aGlzLncsdH1mcm9tQnVmZmVyQXR0cmlidXRlKHQsZSxuKXtyZXR1cm4gdm9pZCAwIT09biYmY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3I0OiBvZmZzZXQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIC5mcm9tQnVmZmVyQXR0cmlidXRlKCkuIiksdGhpcy54PXQuZ2V0WChlKSx0aGlzLnk9dC5nZXRZKGUpLHRoaXMuej10LmdldFooZSksdGhpcy53PXQuZ2V0VyhlKSx0aGlzfXJhbmRvbSgpe3JldHVybiB0aGlzLng9TWF0aC5yYW5kb20oKSx0aGlzLnk9TWF0aC5yYW5kb20oKSx0aGlzLno9TWF0aC5yYW5kb20oKSx0aGlzLnc9TWF0aC5yYW5kb20oKSx0aGlzfX1SNXQucHJvdG90eXBlLmlzVmVjdG9yND0hMDtjbGFzcyBPNXQgZXh0ZW5kcyBlNXR7Y29uc3RydWN0b3IodCxlLG49e30pe3N1cGVyKCksdGhpcy53aWR0aD10LHRoaXMuaGVpZ2h0PWUsdGhpcy5kZXB0aD0xLHRoaXMuc2Npc3Nvcj1uZXcgUjV0KDAsMCx0LGUpLHRoaXMuc2Npc3NvclRlc3Q9ITEsdGhpcy52aWV3cG9ydD1uZXcgUjV0KDAsMCx0LGUpLHRoaXMudGV4dHVyZT1uZXcgTjV0KHZvaWQgMCxuLm1hcHBpbmcsbi53cmFwUyxuLndyYXBULG4ubWFnRmlsdGVyLG4ubWluRmlsdGVyLG4uZm9ybWF0LG4udHlwZSxuLmFuaXNvdHJvcHksbi5lbmNvZGluZyksdGhpcy50ZXh0dXJlLmlzUmVuZGVyVGFyZ2V0VGV4dHVyZT0hMCx0aGlzLnRleHR1cmUuaW1hZ2U9e3dpZHRoOnQsaGVpZ2h0OmUsZGVwdGg6MX0sdGhpcy50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcz12b2lkIDAhPT1uLmdlbmVyYXRlTWlwbWFwcyYmbi5nZW5lcmF0ZU1pcG1hcHMsdGhpcy50ZXh0dXJlLm1pbkZpbHRlcj12b2lkIDAhPT1uLm1pbkZpbHRlcj9uLm1pbkZpbHRlcjpwMnQsdGhpcy5kZXB0aEJ1ZmZlcj12b2lkIDA9PT1uLmRlcHRoQnVmZmVyfHxuLmRlcHRoQnVmZmVyLHRoaXMuc3RlbmNpbEJ1ZmZlcj12b2lkIDAhPT1uLnN0ZW5jaWxCdWZmZXImJm4uc3RlbmNpbEJ1ZmZlcix0aGlzLmRlcHRoVGV4dHVyZT12b2lkIDAhPT1uLmRlcHRoVGV4dHVyZT9uLmRlcHRoVGV4dHVyZTpudWxsfXNldFRleHR1cmUodCl7dC5pbWFnZT17d2lkdGg6dGhpcy53aWR0aCxoZWlnaHQ6dGhpcy5oZWlnaHQsZGVwdGg6dGhpcy5kZXB0aH0sdGhpcy50ZXh0dXJlPXR9c2V0U2l6ZSh0LGUsbj0xKXt0aGlzLndpZHRoPT09dCYmdGhpcy5oZWlnaHQ9PT1lJiZ0aGlzLmRlcHRoPT09bnx8KHRoaXMud2lkdGg9dCx0aGlzLmhlaWdodD1lLHRoaXMuZGVwdGg9bix0aGlzLnRleHR1cmUuaW1hZ2Uud2lkdGg9dCx0aGlzLnRleHR1cmUuaW1hZ2UuaGVpZ2h0PWUsdGhpcy50ZXh0dXJlLmltYWdlLmRlcHRoPW4sdGhpcy5kaXNwb3NlKCkpLHRoaXMudmlld3BvcnQuc2V0KDAsMCx0LGUpLHRoaXMuc2Npc3Nvci5zZXQoMCwwLHQsZSl9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9Y29weSh0KXtyZXR1cm4gdGhpcy53aWR0aD10LndpZHRoLHRoaXMuaGVpZ2h0PXQuaGVpZ2h0LHRoaXMuZGVwdGg9dC5kZXB0aCx0aGlzLnZpZXdwb3J0LmNvcHkodC52aWV3cG9ydCksdGhpcy50ZXh0dXJlPXQudGV4dHVyZS5jbG9uZSgpLHRoaXMudGV4dHVyZS5pbWFnZT17Li4udGhpcy50ZXh0dXJlLmltYWdlfSx0aGlzLmRlcHRoQnVmZmVyPXQuZGVwdGhCdWZmZXIsdGhpcy5zdGVuY2lsQnVmZmVyPXQuc3RlbmNpbEJ1ZmZlcix0aGlzLmRlcHRoVGV4dHVyZT10LmRlcHRoVGV4dHVyZSx0aGlzfWRpc3Bvc2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImRpc3Bvc2UifSl9fU81dC5wcm90b3R5cGUuaXNXZWJHTFJlbmRlclRhcmdldD0hMDtjbGFzcyB6NXQgZXh0ZW5kcyBPNXR7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKHQsZSk7Y29uc3QgaT10aGlzLnRleHR1cmU7dGhpcy50ZXh0dXJlPVtdO2ZvcihsZXQgdD0wO3Q8bjt0KyspdGhpcy50ZXh0dXJlW3RdPWkuY2xvbmUoKX1zZXRTaXplKHQsZSxuPTEpe2lmKHRoaXMud2lkdGghPT10fHx0aGlzLmhlaWdodCE9PWV8fHRoaXMuZGVwdGghPT1uKXt0aGlzLndpZHRoPXQsdGhpcy5oZWlnaHQ9ZSx0aGlzLmRlcHRoPW47Zm9yKGxldCBpPTAscj10aGlzLnRleHR1cmUubGVuZ3RoO2k8cjtpKyspdGhpcy50ZXh0dXJlW2ldLmltYWdlLndpZHRoPXQsdGhpcy50ZXh0dXJlW2ldLmltYWdlLmhlaWdodD1lLHRoaXMudGV4dHVyZVtpXS5pbWFnZS5kZXB0aD1uO3RoaXMuZGlzcG9zZSgpfXJldHVybiB0aGlzLnZpZXdwb3J0LnNldCgwLDAsdCxlKSx0aGlzLnNjaXNzb3Iuc2V0KDAsMCx0LGUpLHRoaXN9Y29weSh0KXt0aGlzLmRpc3Bvc2UoKSx0aGlzLndpZHRoPXQud2lkdGgsdGhpcy5oZWlnaHQ9dC5oZWlnaHQsdGhpcy5kZXB0aD10LmRlcHRoLHRoaXMudmlld3BvcnQuc2V0KDAsMCx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KSx0aGlzLnNjaXNzb3Iuc2V0KDAsMCx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KSx0aGlzLmRlcHRoQnVmZmVyPXQuZGVwdGhCdWZmZXIsdGhpcy5zdGVuY2lsQnVmZmVyPXQuc3RlbmNpbEJ1ZmZlcix0aGlzLmRlcHRoVGV4dHVyZT10LmRlcHRoVGV4dHVyZSx0aGlzLnRleHR1cmUubGVuZ3RoPTA7Zm9yKGxldCBlPTAsbj10LnRleHR1cmUubGVuZ3RoO2U8bjtlKyspdGhpcy50ZXh0dXJlW2VdPXQudGV4dHVyZVtlXS5jbG9uZSgpO3JldHVybiB0aGlzfX16NXQucHJvdG90eXBlLmlzV2ViR0xNdWx0aXBsZVJlbmRlclRhcmdldHM9ITA7Y2xhc3MgRDV0IGV4dGVuZHMgTzV0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcih0LGUsbiksdGhpcy5zYW1wbGVzPTR9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weS5jYWxsKHRoaXMsdCksdGhpcy5zYW1wbGVzPXQuc2FtcGxlcyx0aGlzfX1ENXQucHJvdG90eXBlLmlzV2ViR0xNdWx0aXNhbXBsZVJlbmRlclRhcmdldD0hMDtjbGFzcyBCNXR7Y29uc3RydWN0b3IodD0wLGU9MCxuPTAsaT0xKXt0aGlzLl94PXQsdGhpcy5feT1lLHRoaXMuX3o9bix0aGlzLl93PWl9c3RhdGljIHNsZXJwKHQsZSxuLGkpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlF1YXRlcm5pb246IFN0YXRpYyAuc2xlcnAoKSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgcW0uc2xlcnBRdWF0ZXJuaW9ucyggcWEsIHFiLCB0ICkgaW5zdGVhZC4iKSxuLnNsZXJwUXVhdGVybmlvbnModCxlLGkpfXN0YXRpYyBzbGVycEZsYXQodCxlLG4saSxyLG8sYSl7bGV0IHM9bltpKzBdLGw9bltpKzFdLGM9bltpKzJdLHU9bltpKzNdO2NvbnN0IGg9cltvKzBdLGQ9cltvKzFdLHA9cltvKzJdLGY9cltvKzNdO2lmKDA9PT1hKXJldHVybiB0W2UrMF09cyx0W2UrMV09bCx0W2UrMl09Yyx2b2lkKHRbZSszXT11KTtpZigxPT09YSlyZXR1cm4gdFtlKzBdPWgsdFtlKzFdPWQsdFtlKzJdPXAsdm9pZCh0W2UrM109Zik7aWYodSE9PWZ8fHMhPT1ofHxsIT09ZHx8YyE9PXApe2xldCB0PTEtYTtjb25zdCBlPXMqaCtsKmQrYypwK3UqZixuPWU+PTA/MTotMSxpPTEtZSplO2lmKGk+TnVtYmVyLkVQU0lMT04pe2NvbnN0IHI9TWF0aC5zcXJ0KGkpLG89TWF0aC5hdGFuMihyLGUqbik7dD1NYXRoLnNpbih0Km8pL3IsYT1NYXRoLnNpbihhKm8pL3J9Y29uc3Qgcj1hKm47aWYocz1zKnQraCpyLGw9bCp0K2QqcixjPWMqdCtwKnIsdT11KnQrZipyLHQ9PT0xLWEpe2NvbnN0IHQ9MS9NYXRoLnNxcnQocypzK2wqbCtjKmMrdSp1KTtzKj10LGwqPXQsYyo9dCx1Kj10fX10W2VdPXMsdFtlKzFdPWwsdFtlKzJdPWMsdFtlKzNdPXV9c3RhdGljIG11bHRpcGx5UXVhdGVybmlvbnNGbGF0KHQsZSxuLGkscixvKXtjb25zdCBhPW5baV0scz1uW2krMV0sbD1uW2krMl0sYz1uW2krM10sdT1yW29dLGg9cltvKzFdLGQ9cltvKzJdLHA9cltvKzNdO3JldHVybiB0W2VdPWEqcCtjKnUrcypkLWwqaCx0W2UrMV09cypwK2MqaCtsKnUtYSpkLHRbZSsyXT1sKnArYypkK2EqaC1zKnUsdFtlKzNdPWMqcC1hKnUtcypoLWwqZCx0fWdldCB4KCl7cmV0dXJuIHRoaXMuX3h9c2V0IHgodCl7dGhpcy5feD10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1nZXQgeSgpe3JldHVybiB0aGlzLl95fXNldCB5KHQpe3RoaXMuX3k9dCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCl9Z2V0IHooKXtyZXR1cm4gdGhpcy5fen1zZXQgeih0KXt0aGlzLl96PXQsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpfWdldCB3KCl7cmV0dXJuIHRoaXMuX3d9c2V0IHcodCl7dGhpcy5fdz10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1zZXQodCxlLG4saSl7cmV0dXJuIHRoaXMuX3g9dCx0aGlzLl95PWUsdGhpcy5fej1uLHRoaXMuX3c9aSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLl94LHRoaXMuX3ksdGhpcy5feix0aGlzLl93KX1jb3B5KHQpe3JldHVybiB0aGlzLl94PXQueCx0aGlzLl95PXQueSx0aGlzLl96PXQueix0aGlzLl93PXQudyx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tRXVsZXIodCxlKXtpZighdHx8IXQuaXNFdWxlcil0aHJvdyBuZXcgRXJyb3IoIlRIUkVFLlF1YXRlcm5pb246IC5zZXRGcm9tRXVsZXIoKSBub3cgZXhwZWN0cyBhbiBFdWxlciByb3RhdGlvbiByYXRoZXIgdGhhbiBhIFZlY3RvcjMgYW5kIG9yZGVyLiIpO2NvbnN0IG49dC5feCxpPXQuX3kscj10Ll96LG89dC5fb3JkZXIsYT1NYXRoLmNvcyxzPU1hdGguc2luLGw9YShuLzIpLGM9YShpLzIpLHU9YShyLzIpLGg9cyhuLzIpLGQ9cyhpLzIpLHA9cyhyLzIpO3N3aXRjaChvKXtjYXNlIlhZWiI6dGhpcy5feD1oKmMqdStsKmQqcCx0aGlzLl95PWwqZCp1LWgqYypwLHRoaXMuX3o9bCpjKnAraCpkKnUsdGhpcy5fdz1sKmMqdS1oKmQqcDticmVhaztjYXNlIllYWiI6dGhpcy5feD1oKmMqdStsKmQqcCx0aGlzLl95PWwqZCp1LWgqYypwLHRoaXMuX3o9bCpjKnAtaCpkKnUsdGhpcy5fdz1sKmMqdStoKmQqcDticmVhaztjYXNlIlpYWSI6dGhpcy5feD1oKmMqdS1sKmQqcCx0aGlzLl95PWwqZCp1K2gqYypwLHRoaXMuX3o9bCpjKnAraCpkKnUsdGhpcy5fdz1sKmMqdS1oKmQqcDticmVhaztjYXNlIlpZWCI6dGhpcy5feD1oKmMqdS1sKmQqcCx0aGlzLl95PWwqZCp1K2gqYypwLHRoaXMuX3o9bCpjKnAtaCpkKnUsdGhpcy5fdz1sKmMqdStoKmQqcDticmVhaztjYXNlIllaWCI6dGhpcy5feD1oKmMqdStsKmQqcCx0aGlzLl95PWwqZCp1K2gqYypwLHRoaXMuX3o9bCpjKnAtaCpkKnUsdGhpcy5fdz1sKmMqdS1oKmQqcDticmVhaztjYXNlIlhaWSI6dGhpcy5feD1oKmMqdS1sKmQqcCx0aGlzLl95PWwqZCp1LWgqYypwLHRoaXMuX3o9bCpjKnAraCpkKnUsdGhpcy5fdz1sKmMqdStoKmQqcDticmVhaztkZWZhdWx0OmNvbnNvbGUud2FybigiVEhSRUUuUXVhdGVybmlvbjogLnNldEZyb21FdWxlcigpIGVuY291bnRlcmVkIGFuIHVua25vd24gb3JkZXI6ICIrbyl9cmV0dXJuITEhPT1lJiZ0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tQXhpc0FuZ2xlKHQsZSl7Y29uc3Qgbj1lLzIsaT1NYXRoLnNpbihuKTtyZXR1cm4gdGhpcy5feD10LngqaSx0aGlzLl95PXQueSppLHRoaXMuX3o9dC56KmksdGhpcy5fdz1NYXRoLmNvcyhuKSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tUm90YXRpb25NYXRyaXgodCl7Y29uc3QgZT10LmVsZW1lbnRzLG49ZVswXSxpPWVbNF0scj1lWzhdLG89ZVsxXSxhPWVbNV0scz1lWzldLGw9ZVsyXSxjPWVbNl0sdT1lWzEwXSxoPW4rYSt1O2lmKGg+MCl7Y29uc3QgdD0uNS9NYXRoLnNxcnQoaCsxKTt0aGlzLl93PS4yNS90LHRoaXMuX3g9KGMtcykqdCx0aGlzLl95PShyLWwpKnQsdGhpcy5fej0oby1pKSp0fWVsc2UgaWYobj5hJiZuPnUpe2NvbnN0IHQ9MipNYXRoLnNxcnQoMStuLWEtdSk7dGhpcy5fdz0oYy1zKS90LHRoaXMuX3g9LjI1KnQsdGhpcy5feT0oaStvKS90LHRoaXMuX3o9KHIrbCkvdH1lbHNlIGlmKGE+dSl7Y29uc3QgdD0yKk1hdGguc3FydCgxK2Etbi11KTt0aGlzLl93PShyLWwpL3QsdGhpcy5feD0oaStvKS90LHRoaXMuX3k9LjI1KnQsdGhpcy5fej0ocytjKS90fWVsc2V7Y29uc3QgdD0yKk1hdGguc3FydCgxK3Utbi1hKTt0aGlzLl93PShvLWkpL3QsdGhpcy5feD0ocitsKS90LHRoaXMuX3k9KHMrYykvdCx0aGlzLl96PS4yNSp0fXJldHVybiB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tVW5pdFZlY3RvcnModCxlKXtsZXQgbj10LmRvdChlKSsxO3JldHVybiBuPE51bWJlci5FUFNJTE9OPyhuPTAsTWF0aC5hYnModC54KT5NYXRoLmFicyh0LnopPyh0aGlzLl94PS10LnksdGhpcy5feT10LngsdGhpcy5fej0wLHRoaXMuX3c9bik6KHRoaXMuX3g9MCx0aGlzLl95PS10LnosdGhpcy5fej10LnksdGhpcy5fdz1uKSk6KHRoaXMuX3g9dC55KmUuei10LnoqZS55LHRoaXMuX3k9dC56KmUueC10LngqZS56LHRoaXMuX3o9dC54KmUueS10LnkqZS54LHRoaXMuX3c9biksdGhpcy5ub3JtYWxpemUoKX1hbmdsZVRvKHQpe3JldHVybiAyKk1hdGguYWNvcyhNYXRoLmFicyhzNXQodGhpcy5kb3QodCksLTEsMSkpKX1yb3RhdGVUb3dhcmRzKHQsZSl7Y29uc3Qgbj10aGlzLmFuZ2xlVG8odCk7aWYoMD09PW4pcmV0dXJuIHRoaXM7Y29uc3QgaT1NYXRoLm1pbigxLGUvbik7cmV0dXJuIHRoaXMuc2xlcnAodCxpKSx0aGlzfWlkZW50aXR5KCl7cmV0dXJuIHRoaXMuc2V0KDAsMCwwLDEpfWludmVydCgpe3JldHVybiB0aGlzLmNvbmp1Z2F0ZSgpfWNvbmp1Z2F0ZSgpe3JldHVybiB0aGlzLl94Kj0tMSx0aGlzLl95Kj0tMSx0aGlzLl96Kj0tMSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31kb3QodCl7cmV0dXJuIHRoaXMuX3gqdC5feCt0aGlzLl95KnQuX3krdGhpcy5feip0Ll96K3RoaXMuX3cqdC5fd31sZW5ndGhTcSgpe3JldHVybiB0aGlzLl94KnRoaXMuX3grdGhpcy5feSp0aGlzLl95K3RoaXMuX3oqdGhpcy5feit0aGlzLl93KnRoaXMuX3d9bGVuZ3RoKCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLl94KnRoaXMuX3grdGhpcy5feSp0aGlzLl95K3RoaXMuX3oqdGhpcy5feit0aGlzLl93KnRoaXMuX3cpfW5vcm1hbGl6ZSgpe2xldCB0PXRoaXMubGVuZ3RoKCk7cmV0dXJuIDA9PT10Pyh0aGlzLl94PTAsdGhpcy5feT0wLHRoaXMuX3o9MCx0aGlzLl93PTEpOih0PTEvdCx0aGlzLl94PXRoaXMuX3gqdCx0aGlzLl95PXRoaXMuX3kqdCx0aGlzLl96PXRoaXMuX3oqdCx0aGlzLl93PXRoaXMuX3cqdCksdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9bXVsdGlwbHkodCxlKXtyZXR1cm4gdm9pZCAwIT09ZT8oY29uc29sZS53YXJuKCJUSFJFRS5RdWF0ZXJuaW9uOiAubXVsdGlwbHkoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5tdWx0aXBseVF1YXRlcm5pb25zKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLm11bHRpcGx5UXVhdGVybmlvbnModCxlKSk6dGhpcy5tdWx0aXBseVF1YXRlcm5pb25zKHRoaXMsdCl9cHJlbXVsdGlwbHkodCl7cmV0dXJuIHRoaXMubXVsdGlwbHlRdWF0ZXJuaW9ucyh0LHRoaXMpfW11bHRpcGx5UXVhdGVybmlvbnModCxlKXtjb25zdCBuPXQuX3gsaT10Ll95LHI9dC5feixvPXQuX3csYT1lLl94LHM9ZS5feSxsPWUuX3osYz1lLl93O3JldHVybiB0aGlzLl94PW4qYytvKmEraSpsLXIqcyx0aGlzLl95PWkqYytvKnMrciphLW4qbCx0aGlzLl96PXIqYytvKmwrbipzLWkqYSx0aGlzLl93PW8qYy1uKmEtaSpzLXIqbCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zbGVycCh0LGUpe2lmKDA9PT1lKXJldHVybiB0aGlzO2lmKDE9PT1lKXJldHVybiB0aGlzLmNvcHkodCk7Y29uc3Qgbj10aGlzLl94LGk9dGhpcy5feSxyPXRoaXMuX3osbz10aGlzLl93O2xldCBhPW8qdC5fdytuKnQuX3graSp0Ll95K3IqdC5fejtpZihhPDA/KHRoaXMuX3c9LXQuX3csdGhpcy5feD0tdC5feCx0aGlzLl95PS10Ll95LHRoaXMuX3o9LXQuX3osYT0tYSk6dGhpcy5jb3B5KHQpLGE+PTEpcmV0dXJuIHRoaXMuX3c9byx0aGlzLl94PW4sdGhpcy5feT1pLHRoaXMuX3o9cix0aGlzO2NvbnN0IHM9MS1hKmE7aWYoczw9TnVtYmVyLkVQU0lMT04pe2NvbnN0IHQ9MS1lO3JldHVybiB0aGlzLl93PXQqbytlKnRoaXMuX3csdGhpcy5feD10Km4rZSp0aGlzLl94LHRoaXMuX3k9dCppK2UqdGhpcy5feSx0aGlzLl96PXQqcitlKnRoaXMuX3osdGhpcy5ub3JtYWxpemUoKSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31jb25zdCBsPU1hdGguc3FydChzKSxjPU1hdGguYXRhbjIobCxhKSx1PU1hdGguc2luKCgxLWUpKmMpL2wsaD1NYXRoLnNpbihlKmMpL2w7cmV0dXJuIHRoaXMuX3c9byp1K3RoaXMuX3cqaCx0aGlzLl94PW4qdSt0aGlzLl94KmgsdGhpcy5feT1pKnUrdGhpcy5feSpoLHRoaXMuX3o9cip1K3RoaXMuX3oqaCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zbGVycFF1YXRlcm5pb25zKHQsZSxuKXt0aGlzLmNvcHkodCkuc2xlcnAoZSxuKX1lcXVhbHModCl7cmV0dXJuIHQuX3g9PT10aGlzLl94JiZ0Ll95PT09dGhpcy5feSYmdC5fej09PXRoaXMuX3omJnQuX3c9PT10aGlzLl93fWZyb21BcnJheSh0LGU9MCl7cmV0dXJuIHRoaXMuX3g9dFtlXSx0aGlzLl95PXRbZSsxXSx0aGlzLl96PXRbZSsyXSx0aGlzLl93PXRbZSszXSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc310b0FycmF5KHQ9W10sZT0wKXtyZXR1cm4gdFtlXT10aGlzLl94LHRbZSsxXT10aGlzLl95LHRbZSsyXT10aGlzLl96LHRbZSszXT10aGlzLl93LHR9ZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUpe3JldHVybiB0aGlzLl94PXQuZ2V0WChlKSx0aGlzLl95PXQuZ2V0WShlKSx0aGlzLl96PXQuZ2V0WihlKSx0aGlzLl93PXQuZ2V0VyhlKSx0aGlzfV9vbkNoYW5nZSh0KXtyZXR1cm4gdGhpcy5fb25DaGFuZ2VDYWxsYmFjaz10LHRoaXN9X29uQ2hhbmdlQ2FsbGJhY2soKXt9fUI1dC5wcm90b3R5cGUuaXNRdWF0ZXJuaW9uPSEwO2NsYXNzIEg1dHtjb25zdHJ1Y3Rvcih0PTAsZT0wLG49MCl7dGhpcy54PXQsdGhpcy55PWUsdGhpcy56PW59c2V0KHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49dGhpcy56KSx0aGlzLng9dCx0aGlzLnk9ZSx0aGlzLno9bix0aGlzfXNldFNjYWxhcih0KXtyZXR1cm4gdGhpcy54PXQsdGhpcy55PXQsdGhpcy56PXQsdGhpc31zZXRYKHQpe3JldHVybiB0aGlzLng9dCx0aGlzfXNldFkodCl7cmV0dXJuIHRoaXMueT10LHRoaXN9c2V0Wih0KXtyZXR1cm4gdGhpcy56PXQsdGhpc31zZXRDb21wb25lbnQodCxlKXtzd2l0Y2godCl7Y2FzZSAwOnRoaXMueD1lO2JyZWFrO2Nhc2UgMTp0aGlzLnk9ZTticmVhaztjYXNlIDI6dGhpcy56PWU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImluZGV4IGlzIG91dCBvZiByYW5nZTogIit0KX1yZXR1cm4gdGhpc31nZXRDb21wb25lbnQodCl7c3dpdGNoKHQpe2Nhc2UgMDpyZXR1cm4gdGhpcy54O2Nhc2UgMTpyZXR1cm4gdGhpcy55O2Nhc2UgMjpyZXR1cm4gdGhpcy56O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbmRleCBpcyBvdXQgb2YgcmFuZ2U6ICIrdCl9fWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMueCx0aGlzLnksdGhpcy56KX1jb3B5KHQpe3JldHVybiB0aGlzLng9dC54LHRoaXMueT10LnksdGhpcy56PXQueix0aGlzfWFkZCh0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5hZGQoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5hZGRWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLmFkZFZlY3RvcnModCxlKSk6KHRoaXMueCs9dC54LHRoaXMueSs9dC55LHRoaXMueis9dC56LHRoaXMpfWFkZFNjYWxhcih0KXtyZXR1cm4gdGhpcy54Kz10LHRoaXMueSs9dCx0aGlzLnorPXQsdGhpc31hZGRWZWN0b3JzKHQsZSl7cmV0dXJuIHRoaXMueD10LngrZS54LHRoaXMueT10LnkrZS55LHRoaXMuej10LnorZS56LHRoaXN9YWRkU2NhbGVkVmVjdG9yKHQsZSl7cmV0dXJuIHRoaXMueCs9dC54KmUsdGhpcy55Kz10LnkqZSx0aGlzLnorPXQueiplLHRoaXN9c3ViKHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLnN1YigpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLnN1YlZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMuc3ViVmVjdG9ycyh0LGUpKToodGhpcy54LT10LngsdGhpcy55LT10LnksdGhpcy56LT10LnosdGhpcyl9c3ViU2NhbGFyKHQpe3JldHVybiB0aGlzLngtPXQsdGhpcy55LT10LHRoaXMuei09dCx0aGlzfXN1YlZlY3RvcnModCxlKXtyZXR1cm4gdGhpcy54PXQueC1lLngsdGhpcy55PXQueS1lLnksdGhpcy56PXQuei1lLnosdGhpc31tdWx0aXBseSh0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5tdWx0aXBseSgpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLm11bHRpcGx5VmVjdG9ycyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5tdWx0aXBseVZlY3RvcnModCxlKSk6KHRoaXMueCo9dC54LHRoaXMueSo9dC55LHRoaXMueio9dC56LHRoaXMpfW11bHRpcGx5U2NhbGFyKHQpe3JldHVybiB0aGlzLngqPXQsdGhpcy55Kj10LHRoaXMueio9dCx0aGlzfW11bHRpcGx5VmVjdG9ycyh0LGUpe3JldHVybiB0aGlzLng9dC54KmUueCx0aGlzLnk9dC55KmUueSx0aGlzLno9dC56KmUueix0aGlzfWFwcGx5RXVsZXIodCl7cmV0dXJuIHQmJnQuaXNFdWxlcnx8Y29uc29sZS5lcnJvcigiVEhSRUUuVmVjdG9yMzogLmFwcGx5RXVsZXIoKSBub3cgZXhwZWN0cyBhbiBFdWxlciByb3RhdGlvbiByYXRoZXIgdGhhbiBhIFZlY3RvcjMgYW5kIG9yZGVyLiIpLHRoaXMuYXBwbHlRdWF0ZXJuaW9uKFY1dC5zZXRGcm9tRXVsZXIodCkpfWFwcGx5QXhpc0FuZ2xlKHQsZSl7cmV0dXJuIHRoaXMuYXBwbHlRdWF0ZXJuaW9uKFY1dC5zZXRGcm9tQXhpc0FuZ2xlKHQsZSkpfWFwcGx5TWF0cml4Myh0KXtjb25zdCBlPXRoaXMueCxuPXRoaXMueSxpPXRoaXMueixyPXQuZWxlbWVudHM7cmV0dXJuIHRoaXMueD1yWzBdKmUrclszXSpuK3JbNl0qaSx0aGlzLnk9clsxXSplK3JbNF0qbityWzddKmksdGhpcy56PXJbMl0qZStyWzVdKm4rcls4XSppLHRoaXN9YXBwbHlOb3JtYWxNYXRyaXgodCl7cmV0dXJuIHRoaXMuYXBwbHlNYXRyaXgzKHQpLm5vcm1hbGl6ZSgpfWFwcGx5TWF0cml4NCh0KXtjb25zdCBlPXRoaXMueCxuPXRoaXMueSxpPXRoaXMueixyPXQuZWxlbWVudHMsbz0xLyhyWzNdKmUrcls3XSpuK3JbMTFdKmkrclsxNV0pO3JldHVybiB0aGlzLng9KHJbMF0qZStyWzRdKm4rcls4XSppK3JbMTJdKSpvLHRoaXMueT0oclsxXSplK3JbNV0qbityWzldKmkrclsxM10pKm8sdGhpcy56PShyWzJdKmUrcls2XSpuK3JbMTBdKmkrclsxNF0pKm8sdGhpc31hcHBseVF1YXRlcm5pb24odCl7Y29uc3QgZT10aGlzLngsbj10aGlzLnksaT10aGlzLnoscj10Lngsbz10LnksYT10Lnoscz10LncsbD1zKmUrbyppLWEqbixjPXMqbithKmUtcippLHU9cyppK3Iqbi1vKmUsaD0tciplLW8qbi1hKmk7cmV0dXJuIHRoaXMueD1sKnMraCotcitjKi1hLXUqLW8sdGhpcy55PWMqcytoKi1vK3UqLXItbCotYSx0aGlzLno9dSpzK2gqLWErbCotby1jKi1yLHRoaXN9cHJvamVjdCh0KXtyZXR1cm4gdGhpcy5hcHBseU1hdHJpeDQodC5tYXRyaXhXb3JsZEludmVyc2UpLmFwcGx5TWF0cml4NCh0LnByb2plY3Rpb25NYXRyaXgpfXVucHJvamVjdCh0KXtyZXR1cm4gdGhpcy5hcHBseU1hdHJpeDQodC5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZSkuYXBwbHlNYXRyaXg0KHQubWF0cml4V29ybGQpfXRyYW5zZm9ybURpcmVjdGlvbih0KXtjb25zdCBlPXRoaXMueCxuPXRoaXMueSxpPXRoaXMueixyPXQuZWxlbWVudHM7cmV0dXJuIHRoaXMueD1yWzBdKmUrcls0XSpuK3JbOF0qaSx0aGlzLnk9clsxXSplK3JbNV0qbityWzldKmksdGhpcy56PXJbMl0qZStyWzZdKm4rclsxMF0qaSx0aGlzLm5vcm1hbGl6ZSgpfWRpdmlkZSh0KXtyZXR1cm4gdGhpcy54Lz10LngsdGhpcy55Lz10LnksdGhpcy56Lz10LnosdGhpc31kaXZpZGVTY2FsYXIodCl7cmV0dXJuIHRoaXMubXVsdGlwbHlTY2FsYXIoMS90KX1taW4odCl7cmV0dXJuIHRoaXMueD1NYXRoLm1pbih0aGlzLngsdC54KSx0aGlzLnk9TWF0aC5taW4odGhpcy55LHQueSksdGhpcy56PU1hdGgubWluKHRoaXMueix0LnopLHRoaXN9bWF4KHQpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodGhpcy54LHQueCksdGhpcy55PU1hdGgubWF4KHRoaXMueSx0LnkpLHRoaXMuej1NYXRoLm1heCh0aGlzLnosdC56KSx0aGlzfWNsYW1wKHQsZSl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0LngsTWF0aC5taW4oZS54LHRoaXMueCkpLHRoaXMueT1NYXRoLm1heCh0LnksTWF0aC5taW4oZS55LHRoaXMueSkpLHRoaXMuej1NYXRoLm1heCh0LnosTWF0aC5taW4oZS56LHRoaXMueikpLHRoaXN9Y2xhbXBTY2FsYXIodCxlKXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLngpKSx0aGlzLnk9TWF0aC5tYXgodCxNYXRoLm1pbihlLHRoaXMueSkpLHRoaXMuej1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy56KSksdGhpc31jbGFtcExlbmd0aCh0LGUpe2NvbnN0IG49dGhpcy5sZW5ndGgoKTtyZXR1cm4gdGhpcy5kaXZpZGVTY2FsYXIobnx8MSkubXVsdGlwbHlTY2FsYXIoTWF0aC5tYXgodCxNYXRoLm1pbihlLG4pKSl9Zmxvb3IoKXtyZXR1cm4gdGhpcy54PU1hdGguZmxvb3IodGhpcy54KSx0aGlzLnk9TWF0aC5mbG9vcih0aGlzLnkpLHRoaXMuej1NYXRoLmZsb29yKHRoaXMueiksdGhpc31jZWlsKCl7cmV0dXJuIHRoaXMueD1NYXRoLmNlaWwodGhpcy54KSx0aGlzLnk9TWF0aC5jZWlsKHRoaXMueSksdGhpcy56PU1hdGguY2VpbCh0aGlzLnopLHRoaXN9cm91bmQoKXtyZXR1cm4gdGhpcy54PU1hdGgucm91bmQodGhpcy54KSx0aGlzLnk9TWF0aC5yb3VuZCh0aGlzLnkpLHRoaXMuej1NYXRoLnJvdW5kKHRoaXMueiksdGhpc31yb3VuZFRvWmVybygpe3JldHVybiB0aGlzLng9dGhpcy54PDA/TWF0aC5jZWlsKHRoaXMueCk6TWF0aC5mbG9vcih0aGlzLngpLHRoaXMueT10aGlzLnk8MD9NYXRoLmNlaWwodGhpcy55KTpNYXRoLmZsb29yKHRoaXMueSksdGhpcy56PXRoaXMuejwwP01hdGguY2VpbCh0aGlzLnopOk1hdGguZmxvb3IodGhpcy56KSx0aGlzfW5lZ2F0ZSgpe3JldHVybiB0aGlzLng9LXRoaXMueCx0aGlzLnk9LXRoaXMueSx0aGlzLno9LXRoaXMueix0aGlzfWRvdCh0KXtyZXR1cm4gdGhpcy54KnQueCt0aGlzLnkqdC55K3RoaXMueip0Lnp9bGVuZ3RoU3EoKXtyZXR1cm4gdGhpcy54KnRoaXMueCt0aGlzLnkqdGhpcy55K3RoaXMueip0aGlzLnp9bGVuZ3RoKCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnkrdGhpcy56KnRoaXMueil9bWFuaGF0dGFuTGVuZ3RoKCl7cmV0dXJuIE1hdGguYWJzKHRoaXMueCkrTWF0aC5hYnModGhpcy55KStNYXRoLmFicyh0aGlzLnopfW5vcm1hbGl6ZSgpe3JldHVybiB0aGlzLmRpdmlkZVNjYWxhcih0aGlzLmxlbmd0aCgpfHwxKX1zZXRMZW5ndGgodCl7cmV0dXJuIHRoaXMubm9ybWFsaXplKCkubXVsdGlwbHlTY2FsYXIodCl9bGVycCh0LGUpe3JldHVybiB0aGlzLngrPSh0LngtdGhpcy54KSplLHRoaXMueSs9KHQueS10aGlzLnkpKmUsdGhpcy56Kz0odC56LXRoaXMueikqZSx0aGlzfWxlcnBWZWN0b3JzKHQsZSxuKXtyZXR1cm4gdGhpcy54PXQueCsoZS54LXQueCkqbix0aGlzLnk9dC55KyhlLnktdC55KSpuLHRoaXMuej10LnorKGUuei10LnopKm4sdGhpc31jcm9zcyh0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5jcm9zcygpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLmNyb3NzVmVjdG9ycyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5jcm9zc1ZlY3RvcnModCxlKSk6dGhpcy5jcm9zc1ZlY3RvcnModGhpcyx0KX1jcm9zc1ZlY3RvcnModCxlKXtjb25zdCBuPXQueCxpPXQueSxyPXQueixvPWUueCxhPWUueSxzPWUuejtyZXR1cm4gdGhpcy54PWkqcy1yKmEsdGhpcy55PXIqby1uKnMsdGhpcy56PW4qYS1pKm8sdGhpc31wcm9qZWN0T25WZWN0b3IodCl7Y29uc3QgZT10Lmxlbmd0aFNxKCk7aWYoMD09PWUpcmV0dXJuIHRoaXMuc2V0KDAsMCwwKTtjb25zdCBuPXQuZG90KHRoaXMpL2U7cmV0dXJuIHRoaXMuY29weSh0KS5tdWx0aXBseVNjYWxhcihuKX1wcm9qZWN0T25QbGFuZSh0KXtyZXR1cm4gRjV0LmNvcHkodGhpcykucHJvamVjdE9uVmVjdG9yKHQpLHRoaXMuc3ViKEY1dCl9cmVmbGVjdCh0KXtyZXR1cm4gdGhpcy5zdWIoRjV0LmNvcHkodCkubXVsdGlwbHlTY2FsYXIoMip0aGlzLmRvdCh0KSkpfWFuZ2xlVG8odCl7Y29uc3QgZT1NYXRoLnNxcnQodGhpcy5sZW5ndGhTcSgpKnQubGVuZ3RoU3EoKSk7aWYoMD09PWUpcmV0dXJuIE1hdGguUEkvMjtjb25zdCBuPXRoaXMuZG90KHQpL2U7cmV0dXJuIE1hdGguYWNvcyhzNXQobiwtMSwxKSl9ZGlzdGFuY2VUbyh0KXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMuZGlzdGFuY2VUb1NxdWFyZWQodCkpfWRpc3RhbmNlVG9TcXVhcmVkKHQpe2NvbnN0IGU9dGhpcy54LXQueCxuPXRoaXMueS10LnksaT10aGlzLnotdC56O3JldHVybiBlKmUrbipuK2kqaX1tYW5oYXR0YW5EaXN0YW5jZVRvKHQpe3JldHVybiBNYXRoLmFicyh0aGlzLngtdC54KStNYXRoLmFicyh0aGlzLnktdC55KStNYXRoLmFicyh0aGlzLnotdC56KX1zZXRGcm9tU3BoZXJpY2FsKHQpe3JldHVybiB0aGlzLnNldEZyb21TcGhlcmljYWxDb29yZHModC5yYWRpdXMsdC5waGksdC50aGV0YSl9c2V0RnJvbVNwaGVyaWNhbENvb3Jkcyh0LGUsbil7Y29uc3QgaT1NYXRoLnNpbihlKSp0O3JldHVybiB0aGlzLng9aSpNYXRoLnNpbihuKSx0aGlzLnk9TWF0aC5jb3MoZSkqdCx0aGlzLno9aSpNYXRoLmNvcyhuKSx0aGlzfXNldEZyb21DeWxpbmRyaWNhbCh0KXtyZXR1cm4gdGhpcy5zZXRGcm9tQ3lsaW5kcmljYWxDb29yZHModC5yYWRpdXMsdC50aGV0YSx0LnkpfXNldEZyb21DeWxpbmRyaWNhbENvb3Jkcyh0LGUsbil7cmV0dXJuIHRoaXMueD10Kk1hdGguc2luKGUpLHRoaXMueT1uLHRoaXMuej10Kk1hdGguY29zKGUpLHRoaXN9c2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQpe2NvbnN0IGU9dC5lbGVtZW50cztyZXR1cm4gdGhpcy54PWVbMTJdLHRoaXMueT1lWzEzXSx0aGlzLno9ZVsxNF0sdGhpc31zZXRGcm9tTWF0cml4U2NhbGUodCl7Y29uc3QgZT10aGlzLnNldEZyb21NYXRyaXhDb2x1bW4odCwwKS5sZW5ndGgoKSxuPXRoaXMuc2V0RnJvbU1hdHJpeENvbHVtbih0LDEpLmxlbmd0aCgpLGk9dGhpcy5zZXRGcm9tTWF0cml4Q29sdW1uKHQsMikubGVuZ3RoKCk7cmV0dXJuIHRoaXMueD1lLHRoaXMueT1uLHRoaXMuej1pLHRoaXN9c2V0RnJvbU1hdHJpeENvbHVtbih0LGUpe3JldHVybiB0aGlzLmZyb21BcnJheSh0LmVsZW1lbnRzLDQqZSl9c2V0RnJvbU1hdHJpeDNDb2x1bW4odCxlKXtyZXR1cm4gdGhpcy5mcm9tQXJyYXkodC5lbGVtZW50cywzKmUpfWVxdWFscyh0KXtyZXR1cm4gdC54PT09dGhpcy54JiZ0Lnk9PT10aGlzLnkmJnQuej09PXRoaXMuen1mcm9tQXJyYXkodCxlPTApe3JldHVybiB0aGlzLng9dFtlXSx0aGlzLnk9dFtlKzFdLHRoaXMuej10W2UrMl0sdGhpc310b0FycmF5KHQ9W10sZT0wKXtyZXR1cm4gdFtlXT10aGlzLngsdFtlKzFdPXRoaXMueSx0W2UrMl09dGhpcy56LHR9ZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUsbil7cmV0dXJuIHZvaWQgMCE9PW4mJmNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogb2Zmc2V0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSAuZnJvbUJ1ZmZlckF0dHJpYnV0ZSgpLiIpLHRoaXMueD10LmdldFgoZSksdGhpcy55PXQuZ2V0WShlKSx0aGlzLno9dC5nZXRaKGUpLHRoaXN9cmFuZG9tKCl7cmV0dXJuIHRoaXMueD1NYXRoLnJhbmRvbSgpLHRoaXMueT1NYXRoLnJhbmRvbSgpLHRoaXMuej1NYXRoLnJhbmRvbSgpLHRoaXN9fUg1dC5wcm90b3R5cGUuaXNWZWN0b3IzPSEwO2NvbnN0IEY1dD1uZXcgSDV0LFY1dD1uZXcgQjV0O2NsYXNzIFU1dHtjb25zdHJ1Y3Rvcih0PW5ldyBINXQoMS8wLDEvMCwxLzApLGU9bmV3IEg1dCgtMS8wLC0xLzAsLTEvMCkpe3RoaXMubWluPXQsdGhpcy5tYXg9ZX1zZXQodCxlKXtyZXR1cm4gdGhpcy5taW4uY29weSh0KSx0aGlzLm1heC5jb3B5KGUpLHRoaXN9c2V0RnJvbUFycmF5KHQpe2xldCBlPTEvMCxuPTEvMCxpPTEvMCxyPS0xLzAsbz0tMS8wLGE9LTEvMDtmb3IobGV0IHM9MCxsPXQubGVuZ3RoO3M8bDtzKz0zKXtjb25zdCBsPXRbc10sYz10W3MrMV0sdT10W3MrMl07bDxlJiYoZT1sKSxjPG4mJihuPWMpLHU8aSYmKGk9dSksbD5yJiYocj1sKSxjPm8mJihvPWMpLHU+YSYmKGE9dSl9cmV0dXJuIHRoaXMubWluLnNldChlLG4saSksdGhpcy5tYXguc2V0KHIsbyxhKSx0aGlzfXNldEZyb21CdWZmZXJBdHRyaWJ1dGUodCl7bGV0IGU9MS8wLG49MS8wLGk9MS8wLHI9LTEvMCxvPS0xLzAsYT0tMS8wO2ZvcihsZXQgcz0wLGw9dC5jb3VudDtzPGw7cysrKXtjb25zdCBsPXQuZ2V0WChzKSxjPXQuZ2V0WShzKSx1PXQuZ2V0WihzKTtsPGUmJihlPWwpLGM8biYmKG49YyksdTxpJiYoaT11KSxsPnImJihyPWwpLGM+byYmKG89YyksdT5hJiYoYT11KX1yZXR1cm4gdGhpcy5taW4uc2V0KGUsbixpKSx0aGlzLm1heC5zZXQocixvLGEpLHRoaXN9c2V0RnJvbVBvaW50cyh0KXt0aGlzLm1ha2VFbXB0eSgpO2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKyl0aGlzLmV4cGFuZEJ5UG9pbnQodFtlXSk7cmV0dXJuIHRoaXN9c2V0RnJvbUNlbnRlckFuZFNpemUodCxlKXtjb25zdCBuPUc1dC5jb3B5KGUpLm11bHRpcGx5U2NhbGFyKC41KTtyZXR1cm4gdGhpcy5taW4uY29weSh0KS5zdWIobiksdGhpcy5tYXguY29weSh0KS5hZGQobiksdGhpc31zZXRGcm9tT2JqZWN0KHQpe3JldHVybiB0aGlzLm1ha2VFbXB0eSgpLHRoaXMuZXhwYW5kQnlPYmplY3QodCl9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9Y29weSh0KXtyZXR1cm4gdGhpcy5taW4uY29weSh0Lm1pbiksdGhpcy5tYXguY29weSh0Lm1heCksdGhpc31tYWtlRW1wdHkoKXtyZXR1cm4gdGhpcy5taW4ueD10aGlzLm1pbi55PXRoaXMubWluLno9MS8wLHRoaXMubWF4Lng9dGhpcy5tYXgueT10aGlzLm1heC56PS0xLzAsdGhpc31pc0VtcHR5KCl7cmV0dXJuIHRoaXMubWF4Lng8dGhpcy5taW4ueHx8dGhpcy5tYXgueTx0aGlzLm1pbi55fHx0aGlzLm1heC56PHRoaXMubWluLnp9Z2V0Q2VudGVyKHQpe3JldHVybiB0aGlzLmlzRW1wdHkoKT90LnNldCgwLDAsMCk6dC5hZGRWZWN0b3JzKHRoaXMubWluLHRoaXMubWF4KS5tdWx0aXBseVNjYWxhciguNSl9Z2V0U2l6ZSh0KXtyZXR1cm4gdGhpcy5pc0VtcHR5KCk/dC5zZXQoMCwwLDApOnQuc3ViVmVjdG9ycyh0aGlzLm1heCx0aGlzLm1pbil9ZXhwYW5kQnlQb2ludCh0KXtyZXR1cm4gdGhpcy5taW4ubWluKHQpLHRoaXMubWF4Lm1heCh0KSx0aGlzfWV4cGFuZEJ5VmVjdG9yKHQpe3JldHVybiB0aGlzLm1pbi5zdWIodCksdGhpcy5tYXguYWRkKHQpLHRoaXN9ZXhwYW5kQnlTY2FsYXIodCl7cmV0dXJuIHRoaXMubWluLmFkZFNjYWxhcigtdCksdGhpcy5tYXguYWRkU2NhbGFyKHQpLHRoaXN9ZXhwYW5kQnlPYmplY3QodCl7dC51cGRhdGVXb3JsZE1hdHJpeCghMSwhMSk7Y29uc3QgZT10Lmdlb21ldHJ5O3ZvaWQgMCE9PWUmJihudWxsPT09ZS5ib3VuZGluZ0JveCYmZS5jb21wdXRlQm91bmRpbmdCb3goKSxXNXQuY29weShlLmJvdW5kaW5nQm94KSxXNXQuYXBwbHlNYXRyaXg0KHQubWF0cml4V29ybGQpLHRoaXMudW5pb24oVzV0KSk7Y29uc3Qgbj10LmNoaWxkcmVuO2ZvcihsZXQgdD0wLGU9bi5sZW5ndGg7dDxlO3QrKyl0aGlzLmV4cGFuZEJ5T2JqZWN0KG5bdF0pO3JldHVybiB0aGlzfWNvbnRhaW5zUG9pbnQodCl7cmV0dXJuISh0Lng8dGhpcy5taW4ueHx8dC54PnRoaXMubWF4Lnh8fHQueTx0aGlzLm1pbi55fHx0Lnk+dGhpcy5tYXgueXx8dC56PHRoaXMubWluLnp8fHQuej50aGlzLm1heC56KX1jb250YWluc0JveCh0KXtyZXR1cm4gdGhpcy5taW4ueDw9dC5taW4ueCYmdC5tYXgueDw9dGhpcy5tYXgueCYmdGhpcy5taW4ueTw9dC5taW4ueSYmdC5tYXgueTw9dGhpcy5tYXgueSYmdGhpcy5taW4uejw9dC5taW4ueiYmdC5tYXguejw9dGhpcy5tYXguen1nZXRQYXJhbWV0ZXIodCxlKXtyZXR1cm4gZS5zZXQoKHQueC10aGlzLm1pbi54KS8odGhpcy5tYXgueC10aGlzLm1pbi54KSwodC55LXRoaXMubWluLnkpLyh0aGlzLm1heC55LXRoaXMubWluLnkpLCh0LnotdGhpcy5taW4ueikvKHRoaXMubWF4LnotdGhpcy5taW4ueikpfWludGVyc2VjdHNCb3godCl7cmV0dXJuISh0Lm1heC54PHRoaXMubWluLnh8fHQubWluLng+dGhpcy5tYXgueHx8dC5tYXgueTx0aGlzLm1pbi55fHx0Lm1pbi55PnRoaXMubWF4Lnl8fHQubWF4Lno8dGhpcy5taW4uenx8dC5taW4uej50aGlzLm1heC56KX1pbnRlcnNlY3RzU3BoZXJlKHQpe3JldHVybiB0aGlzLmNsYW1wUG9pbnQodC5jZW50ZXIsRzV0KSxHNXQuZGlzdGFuY2VUb1NxdWFyZWQodC5jZW50ZXIpPD10LnJhZGl1cyp0LnJhZGl1c31pbnRlcnNlY3RzUGxhbmUodCl7bGV0IGUsbjtyZXR1cm4gdC5ub3JtYWwueD4wPyhlPXQubm9ybWFsLngqdGhpcy5taW4ueCxuPXQubm9ybWFsLngqdGhpcy5tYXgueCk6KGU9dC5ub3JtYWwueCp0aGlzLm1heC54LG49dC5ub3JtYWwueCp0aGlzLm1pbi54KSx0Lm5vcm1hbC55PjA/KGUrPXQubm9ybWFsLnkqdGhpcy5taW4ueSxuKz10Lm5vcm1hbC55KnRoaXMubWF4LnkpOihlKz10Lm5vcm1hbC55KnRoaXMubWF4Lnksbis9dC5ub3JtYWwueSp0aGlzLm1pbi55KSx0Lm5vcm1hbC56PjA/KGUrPXQubm9ybWFsLnoqdGhpcy5taW4ueixuKz10Lm5vcm1hbC56KnRoaXMubWF4LnopOihlKz10Lm5vcm1hbC56KnRoaXMubWF4Lnosbis9dC5ub3JtYWwueip0aGlzLm1pbi56KSxlPD0tdC5jb25zdGFudCYmbj49LXQuY29uc3RhbnR9aW50ZXJzZWN0c1RyaWFuZ2xlKHQpe2lmKHRoaXMuaXNFbXB0eSgpKXJldHVybiExO3RoaXMuZ2V0Q2VudGVyKEo1dCksUTV0LnN1YlZlY3RvcnModGhpcy5tYXgsSjV0KSxxNXQuc3ViVmVjdG9ycyh0LmEsSjV0KSxZNXQuc3ViVmVjdG9ycyh0LmIsSjV0KSxYNXQuc3ViVmVjdG9ycyh0LmMsSjV0KSwkNXQuc3ViVmVjdG9ycyhZNXQscTV0KSxLNXQuc3ViVmVjdG9ycyhYNXQsWTV0KSxaNXQuc3ViVmVjdG9ycyhxNXQsWDV0KTtsZXQgZT1bMCwtJDV0LnosJDV0LnksMCwtSzV0LnosSzV0LnksMCwtWjV0LnosWjV0LnksJDV0LnosMCwtJDV0LngsSzV0LnosMCwtSzV0LngsWjV0LnosMCwtWjV0LngsLSQ1dC55LCQ1dC54LDAsLUs1dC55LEs1dC54LDAsLVo1dC55LFo1dC54LDBdO3JldHVybiEhbjN0KGUscTV0LFk1dCxYNXQsUTV0KSYmKGU9WzEsMCwwLDAsMSwwLDAsMCwxXSwhIW4zdChlLHE1dCxZNXQsWDV0LFE1dCkmJih0M3QuY3Jvc3NWZWN0b3JzKCQ1dCxLNXQpLGU9W3QzdC54LHQzdC55LHQzdC56XSxuM3QoZSxxNXQsWTV0LFg1dCxRNXQpKSl9Y2xhbXBQb2ludCh0LGUpe3JldHVybiBlLmNvcHkodCkuY2xhbXAodGhpcy5taW4sdGhpcy5tYXgpfWRpc3RhbmNlVG9Qb2ludCh0KXtyZXR1cm4gRzV0LmNvcHkodCkuY2xhbXAodGhpcy5taW4sdGhpcy5tYXgpLnN1Yih0KS5sZW5ndGgoKX1nZXRCb3VuZGluZ1NwaGVyZSh0KXtyZXR1cm4gdGhpcy5nZXRDZW50ZXIodC5jZW50ZXIpLHQucmFkaXVzPS41KnRoaXMuZ2V0U2l6ZShHNXQpLmxlbmd0aCgpLHR9aW50ZXJzZWN0KHQpe3JldHVybiB0aGlzLm1pbi5tYXgodC5taW4pLHRoaXMubWF4Lm1pbih0Lm1heCksdGhpcy5pc0VtcHR5KCkmJnRoaXMubWFrZUVtcHR5KCksdGhpc311bmlvbih0KXtyZXR1cm4gdGhpcy5taW4ubWluKHQubWluKSx0aGlzLm1heC5tYXgodC5tYXgpLHRoaXN9YXBwbHlNYXRyaXg0KHQpe3JldHVybiB0aGlzLmlzRW1wdHkoKXx8KGo1dFswXS5zZXQodGhpcy5taW4ueCx0aGlzLm1pbi55LHRoaXMubWluLnopLmFwcGx5TWF0cml4NCh0KSxqNXRbMV0uc2V0KHRoaXMubWluLngsdGhpcy5taW4ueSx0aGlzLm1heC56KS5hcHBseU1hdHJpeDQodCksajV0WzJdLnNldCh0aGlzLm1pbi54LHRoaXMubWF4LnksdGhpcy5taW4ueikuYXBwbHlNYXRyaXg0KHQpLGo1dFszXS5zZXQodGhpcy5taW4ueCx0aGlzLm1heC55LHRoaXMubWF4LnopLmFwcGx5TWF0cml4NCh0KSxqNXRbNF0uc2V0KHRoaXMubWF4LngsdGhpcy5taW4ueSx0aGlzLm1pbi56KS5hcHBseU1hdHJpeDQodCksajV0WzVdLnNldCh0aGlzLm1heC54LHRoaXMubWluLnksdGhpcy5tYXgueikuYXBwbHlNYXRyaXg0KHQpLGo1dFs2XS5zZXQodGhpcy5tYXgueCx0aGlzLm1heC55LHRoaXMubWluLnopLmFwcGx5TWF0cml4NCh0KSxqNXRbN10uc2V0KHRoaXMubWF4LngsdGhpcy5tYXgueSx0aGlzLm1heC56KS5hcHBseU1hdHJpeDQodCksdGhpcy5zZXRGcm9tUG9pbnRzKGo1dCkpLHRoaXN9dHJhbnNsYXRlKHQpe3JldHVybiB0aGlzLm1pbi5hZGQodCksdGhpcy5tYXguYWRkKHQpLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0Lm1pbi5lcXVhbHModGhpcy5taW4pJiZ0Lm1heC5lcXVhbHModGhpcy5tYXgpfX1VNXQucHJvdG90eXBlLmlzQm94Mz0hMDtjb25zdCBqNXQ9W25ldyBINXQsbmV3IEg1dCxuZXcgSDV0LG5ldyBINXQsbmV3IEg1dCxuZXcgSDV0LG5ldyBINXQsbmV3IEg1dF0sRzV0PW5ldyBINXQsVzV0PW5ldyBVNXQscTV0PW5ldyBINXQsWTV0PW5ldyBINXQsWDV0PW5ldyBINXQsJDV0PW5ldyBINXQsSzV0PW5ldyBINXQsWjV0PW5ldyBINXQsSjV0PW5ldyBINXQsUTV0PW5ldyBINXQsdDN0PW5ldyBINXQsZTN0PW5ldyBINXQ7ZnVuY3Rpb24gbjN0KHQsZSxuLGkscil7Zm9yKGxldCBvPTAsYT10Lmxlbmd0aC0zO288PWE7bys9Myl7ZTN0LmZyb21BcnJheSh0LG8pO2NvbnN0IGE9ci54Kk1hdGguYWJzKGUzdC54KStyLnkqTWF0aC5hYnMoZTN0LnkpK3IueipNYXRoLmFicyhlM3Queikscz1lLmRvdChlM3QpLGw9bi5kb3QoZTN0KSxjPWkuZG90KGUzdCk7aWYoTWF0aC5tYXgoLU1hdGgubWF4KHMsbCxjKSxNYXRoLm1pbihzLGwsYykpPmEpcmV0dXJuITF9cmV0dXJuITB9Y29uc3QgaTN0PW5ldyBVNXQscjN0PW5ldyBINXQsbzN0PW5ldyBINXQsYTN0PW5ldyBINXQ7Y2xhc3MgczN0e2NvbnN0cnVjdG9yKHQ9bmV3IEg1dCxlPS0xKXt0aGlzLmNlbnRlcj10LHRoaXMucmFkaXVzPWV9c2V0KHQsZSl7cmV0dXJuIHRoaXMuY2VudGVyLmNvcHkodCksdGhpcy5yYWRpdXM9ZSx0aGlzfXNldEZyb21Qb2ludHModCxlKXtjb25zdCBuPXRoaXMuY2VudGVyO3ZvaWQgMCE9PWU/bi5jb3B5KGUpOmkzdC5zZXRGcm9tUG9pbnRzKHQpLmdldENlbnRlcihuKTtsZXQgaT0wO2ZvcihsZXQgZT0wLHI9dC5sZW5ndGg7ZTxyO2UrKylpPU1hdGgubWF4KGksbi5kaXN0YW5jZVRvU3F1YXJlZCh0W2VdKSk7cmV0dXJuIHRoaXMucmFkaXVzPU1hdGguc3FydChpKSx0aGlzfWNvcHkodCl7cmV0dXJuIHRoaXMuY2VudGVyLmNvcHkodC5jZW50ZXIpLHRoaXMucmFkaXVzPXQucmFkaXVzLHRoaXN9aXNFbXB0eSgpe3JldHVybiB0aGlzLnJhZGl1czwwfW1ha2VFbXB0eSgpe3JldHVybiB0aGlzLmNlbnRlci5zZXQoMCwwLDApLHRoaXMucmFkaXVzPS0xLHRoaXN9Y29udGFpbnNQb2ludCh0KXtyZXR1cm4gdC5kaXN0YW5jZVRvU3F1YXJlZCh0aGlzLmNlbnRlcik8PXRoaXMucmFkaXVzKnRoaXMucmFkaXVzfWRpc3RhbmNlVG9Qb2ludCh0KXtyZXR1cm4gdC5kaXN0YW5jZVRvKHRoaXMuY2VudGVyKS10aGlzLnJhZGl1c31pbnRlcnNlY3RzU3BoZXJlKHQpe2NvbnN0IGU9dGhpcy5yYWRpdXMrdC5yYWRpdXM7cmV0dXJuIHQuY2VudGVyLmRpc3RhbmNlVG9TcXVhcmVkKHRoaXMuY2VudGVyKTw9ZSplfWludGVyc2VjdHNCb3godCl7cmV0dXJuIHQuaW50ZXJzZWN0c1NwaGVyZSh0aGlzKX1pbnRlcnNlY3RzUGxhbmUodCl7cmV0dXJuIE1hdGguYWJzKHQuZGlzdGFuY2VUb1BvaW50KHRoaXMuY2VudGVyKSk8PXRoaXMucmFkaXVzfWNsYW1wUG9pbnQodCxlKXtjb25zdCBuPXRoaXMuY2VudGVyLmRpc3RhbmNlVG9TcXVhcmVkKHQpO3JldHVybiBlLmNvcHkodCksbj50aGlzLnJhZGl1cyp0aGlzLnJhZGl1cyYmKGUuc3ViKHRoaXMuY2VudGVyKS5ub3JtYWxpemUoKSxlLm11bHRpcGx5U2NhbGFyKHRoaXMucmFkaXVzKS5hZGQodGhpcy5jZW50ZXIpKSxlfWdldEJvdW5kaW5nQm94KHQpe3JldHVybiB0aGlzLmlzRW1wdHkoKT8odC5tYWtlRW1wdHkoKSx0KToodC5zZXQodGhpcy5jZW50ZXIsdGhpcy5jZW50ZXIpLHQuZXhwYW5kQnlTY2FsYXIodGhpcy5yYWRpdXMpLHQpfWFwcGx5TWF0cml4NCh0KXtyZXR1cm4gdGhpcy5jZW50ZXIuYXBwbHlNYXRyaXg0KHQpLHRoaXMucmFkaXVzPXRoaXMucmFkaXVzKnQuZ2V0TWF4U2NhbGVPbkF4aXMoKSx0aGlzfXRyYW5zbGF0ZSh0KXtyZXR1cm4gdGhpcy5jZW50ZXIuYWRkKHQpLHRoaXN9ZXhwYW5kQnlQb2ludCh0KXthM3Quc3ViVmVjdG9ycyh0LHRoaXMuY2VudGVyKTtjb25zdCBlPWEzdC5sZW5ndGhTcSgpO2lmKGU+dGhpcy5yYWRpdXMqdGhpcy5yYWRpdXMpe2NvbnN0IHQ9TWF0aC5zcXJ0KGUpLG49LjUqKHQtdGhpcy5yYWRpdXMpO3RoaXMuY2VudGVyLmFkZChhM3QubXVsdGlwbHlTY2FsYXIobi90KSksdGhpcy5yYWRpdXMrPW59cmV0dXJuIHRoaXN9dW5pb24odCl7cmV0dXJuIG8zdC5zdWJWZWN0b3JzKHQuY2VudGVyLHRoaXMuY2VudGVyKS5ub3JtYWxpemUoKS5tdWx0aXBseVNjYWxhcih0LnJhZGl1cyksdGhpcy5leHBhbmRCeVBvaW50KHIzdC5jb3B5KHQuY2VudGVyKS5hZGQobzN0KSksdGhpcy5leHBhbmRCeVBvaW50KHIzdC5jb3B5KHQuY2VudGVyKS5zdWIobzN0KSksdGhpc31lcXVhbHModCl7cmV0dXJuIHQuY2VudGVyLmVxdWFscyh0aGlzLmNlbnRlcikmJnQucmFkaXVzPT09dGhpcy5yYWRpdXN9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9fWNvbnN0IGwzdD1uZXcgSDV0LGMzdD1uZXcgSDV0LHUzdD1uZXcgSDV0LGgzdD1uZXcgSDV0LGQzdD1uZXcgSDV0LHAzdD1uZXcgSDV0LGYzdD1uZXcgSDV0O2NsYXNzIG0zdHtjb25zdHJ1Y3Rvcih0PW5ldyBINXQsZT1uZXcgSDV0KDAsMCwtMSkpe3RoaXMub3JpZ2luPXQsdGhpcy5kaXJlY3Rpb249ZX1zZXQodCxlKXtyZXR1cm4gdGhpcy5vcmlnaW4uY29weSh0KSx0aGlzLmRpcmVjdGlvbi5jb3B5KGUpLHRoaXN9Y29weSh0KXtyZXR1cm4gdGhpcy5vcmlnaW4uY29weSh0Lm9yaWdpbiksdGhpcy5kaXJlY3Rpb24uY29weSh0LmRpcmVjdGlvbiksdGhpc31hdCh0LGUpe3JldHVybiBlLmNvcHkodGhpcy5kaXJlY3Rpb24pLm11bHRpcGx5U2NhbGFyKHQpLmFkZCh0aGlzLm9yaWdpbil9bG9va0F0KHQpe3JldHVybiB0aGlzLmRpcmVjdGlvbi5jb3B5KHQpLnN1Yih0aGlzLm9yaWdpbikubm9ybWFsaXplKCksdGhpc31yZWNhc3QodCl7cmV0dXJuIHRoaXMub3JpZ2luLmNvcHkodGhpcy5hdCh0LGwzdCkpLHRoaXN9Y2xvc2VzdFBvaW50VG9Qb2ludCh0LGUpe2Uuc3ViVmVjdG9ycyh0LHRoaXMub3JpZ2luKTtjb25zdCBuPWUuZG90KHRoaXMuZGlyZWN0aW9uKTtyZXR1cm4gbjwwP2UuY29weSh0aGlzLm9yaWdpbik6ZS5jb3B5KHRoaXMuZGlyZWN0aW9uKS5tdWx0aXBseVNjYWxhcihuKS5hZGQodGhpcy5vcmlnaW4pfWRpc3RhbmNlVG9Qb2ludCh0KXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMuZGlzdGFuY2VTcVRvUG9pbnQodCkpfWRpc3RhbmNlU3FUb1BvaW50KHQpe2NvbnN0IGU9bDN0LnN1YlZlY3RvcnModCx0aGlzLm9yaWdpbikuZG90KHRoaXMuZGlyZWN0aW9uKTtyZXR1cm4gZTwwP3RoaXMub3JpZ2luLmRpc3RhbmNlVG9TcXVhcmVkKHQpOihsM3QuY29weSh0aGlzLmRpcmVjdGlvbikubXVsdGlwbHlTY2FsYXIoZSkuYWRkKHRoaXMub3JpZ2luKSxsM3QuZGlzdGFuY2VUb1NxdWFyZWQodCkpfWRpc3RhbmNlU3FUb1NlZ21lbnQodCxlLG4saSl7YzN0LmNvcHkodCkuYWRkKGUpLm11bHRpcGx5U2NhbGFyKC41KSx1M3QuY29weShlKS5zdWIodCkubm9ybWFsaXplKCksaDN0LmNvcHkodGhpcy5vcmlnaW4pLnN1YihjM3QpO2NvbnN0IHI9LjUqdC5kaXN0YW5jZVRvKGUpLG89LXRoaXMuZGlyZWN0aW9uLmRvdCh1M3QpLGE9aDN0LmRvdCh0aGlzLmRpcmVjdGlvbikscz0taDN0LmRvdCh1M3QpLGw9aDN0Lmxlbmd0aFNxKCksYz1NYXRoLmFicygxLW8qbyk7bGV0IHUsaCxkLHA7aWYoYz4wKWlmKHU9bypzLWEsaD1vKmEtcyxwPXIqYyx1Pj0wKWlmKGg+PS1wKWlmKGg8PXApe2NvbnN0IHQ9MS9jO3UqPXQsaCo9dCxkPXUqKHUrbypoKzIqYSkraCoobyp1K2grMipzKStsfWVsc2UgaD1yLHU9TWF0aC5tYXgoMCwtKG8qaCthKSksZD0tdSp1K2gqKGgrMipzKStsO2Vsc2UgaD0tcix1PU1hdGgubWF4KDAsLShvKmgrYSkpLGQ9LXUqdStoKihoKzIqcykrbDtlbHNlIGg8PS1wPyh1PU1hdGgubWF4KDAsLSgtbypyK2EpKSxoPXU+MD8tcjpNYXRoLm1pbihNYXRoLm1heCgtciwtcyksciksZD0tdSp1K2gqKGgrMipzKStsKTpoPD1wPyh1PTAsaD1NYXRoLm1pbihNYXRoLm1heCgtciwtcyksciksZD1oKihoKzIqcykrbCk6KHU9TWF0aC5tYXgoMCwtKG8qcithKSksaD11PjA/cjpNYXRoLm1pbihNYXRoLm1heCgtciwtcyksciksZD0tdSp1K2gqKGgrMipzKStsKTtlbHNlIGg9bz4wPy1yOnIsdT1NYXRoLm1heCgwLC0obypoK2EpKSxkPS11KnUraCooaCsyKnMpK2w7cmV0dXJuIG4mJm4uY29weSh0aGlzLmRpcmVjdGlvbikubXVsdGlwbHlTY2FsYXIodSkuYWRkKHRoaXMub3JpZ2luKSxpJiZpLmNvcHkodTN0KS5tdWx0aXBseVNjYWxhcihoKS5hZGQoYzN0KSxkfWludGVyc2VjdFNwaGVyZSh0LGUpe2wzdC5zdWJWZWN0b3JzKHQuY2VudGVyLHRoaXMub3JpZ2luKTtjb25zdCBuPWwzdC5kb3QodGhpcy5kaXJlY3Rpb24pLGk9bDN0LmRvdChsM3QpLW4qbixyPXQucmFkaXVzKnQucmFkaXVzO2lmKGk+cilyZXR1cm4gbnVsbDtjb25zdCBvPU1hdGguc3FydChyLWkpLGE9bi1vLHM9bitvO3JldHVybiBhPDAmJnM8MD9udWxsOnRoaXMuYXQoYTwwP3M6YSxlKX1pbnRlcnNlY3RzU3BoZXJlKHQpe3JldHVybiB0aGlzLmRpc3RhbmNlU3FUb1BvaW50KHQuY2VudGVyKTw9dC5yYWRpdXMqdC5yYWRpdXN9ZGlzdGFuY2VUb1BsYW5lKHQpe2NvbnN0IGU9dC5ub3JtYWwuZG90KHRoaXMuZGlyZWN0aW9uKTtpZigwPT09ZSlyZXR1cm4gMD09PXQuZGlzdGFuY2VUb1BvaW50KHRoaXMub3JpZ2luKT8wOm51bGw7Y29uc3Qgbj0tKHRoaXMub3JpZ2luLmRvdCh0Lm5vcm1hbCkrdC5jb25zdGFudCkvZTtyZXR1cm4gbj49MD9uOm51bGx9aW50ZXJzZWN0UGxhbmUodCxlKXtjb25zdCBuPXRoaXMuZGlzdGFuY2VUb1BsYW5lKHQpO3JldHVybiBudWxsPT09bj9udWxsOnRoaXMuYXQobixlKX1pbnRlcnNlY3RzUGxhbmUodCl7Y29uc3QgZT10LmRpc3RhbmNlVG9Qb2ludCh0aGlzLm9yaWdpbik7aWYoMD09PWUpcmV0dXJuITA7cmV0dXJuIHQubm9ybWFsLmRvdCh0aGlzLmRpcmVjdGlvbikqZTwwfWludGVyc2VjdEJveCh0LGUpe2xldCBuLGkscixvLGEscztjb25zdCBsPTEvdGhpcy5kaXJlY3Rpb24ueCxjPTEvdGhpcy5kaXJlY3Rpb24ueSx1PTEvdGhpcy5kaXJlY3Rpb24ueixoPXRoaXMub3JpZ2luO3JldHVybiBsPj0wPyhuPSh0Lm1pbi54LWgueCkqbCxpPSh0Lm1heC54LWgueCkqbCk6KG49KHQubWF4LngtaC54KSpsLGk9KHQubWluLngtaC54KSpsKSxjPj0wPyhyPSh0Lm1pbi55LWgueSkqYyxvPSh0Lm1heC55LWgueSkqYyk6KHI9KHQubWF4LnktaC55KSpjLG89KHQubWluLnktaC55KSpjKSxuPm98fHI+aT9udWxsOigocj5ufHxuIT1uKSYmKG49ciksKG88aXx8aSE9aSkmJihpPW8pLHU+PTA/KGE9KHQubWluLnotaC56KSp1LHM9KHQubWF4LnotaC56KSp1KTooYT0odC5tYXguei1oLnopKnUscz0odC5taW4uei1oLnopKnUpLG4+c3x8YT5pP251bGw6KChhPm58fG4hPW4pJiYobj1hKSwoczxpfHxpIT1pKSYmKGk9cyksaTwwP251bGw6dGhpcy5hdChuPj0wP246aSxlKSkpfWludGVyc2VjdHNCb3godCl7cmV0dXJuIG51bGwhPT10aGlzLmludGVyc2VjdEJveCh0LGwzdCl9aW50ZXJzZWN0VHJpYW5nbGUodCxlLG4saSxyKXtkM3Quc3ViVmVjdG9ycyhlLHQpLHAzdC5zdWJWZWN0b3JzKG4sdCksZjN0LmNyb3NzVmVjdG9ycyhkM3QscDN0KTtsZXQgbyxhPXRoaXMuZGlyZWN0aW9uLmRvdChmM3QpO2lmKGE+MCl7aWYoaSlyZXR1cm4gbnVsbDtvPTF9ZWxzZXtpZighKGE8MCkpcmV0dXJuIG51bGw7bz0tMSxhPS1hfWgzdC5zdWJWZWN0b3JzKHRoaXMub3JpZ2luLHQpO2NvbnN0IHM9byp0aGlzLmRpcmVjdGlvbi5kb3QocDN0LmNyb3NzVmVjdG9ycyhoM3QscDN0KSk7aWYoczwwKXJldHVybiBudWxsO2NvbnN0IGw9byp0aGlzLmRpcmVjdGlvbi5kb3QoZDN0LmNyb3NzKGgzdCkpO2lmKGw8MClyZXR1cm4gbnVsbDtpZihzK2w+YSlyZXR1cm4gbnVsbDtjb25zdCBjPS1vKmgzdC5kb3QoZjN0KTtyZXR1cm4gYzwwP251bGw6dGhpcy5hdChjL2Escil9YXBwbHlNYXRyaXg0KHQpe3JldHVybiB0aGlzLm9yaWdpbi5hcHBseU1hdHJpeDQodCksdGhpcy5kaXJlY3Rpb24udHJhbnNmb3JtRGlyZWN0aW9uKHQpLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0Lm9yaWdpbi5lcXVhbHModGhpcy5vcmlnaW4pJiZ0LmRpcmVjdGlvbi5lcXVhbHModGhpcy5kaXJlY3Rpb24pfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfX1jbGFzcyBnM3R7Y29uc3RydWN0b3IoKXt0aGlzLmVsZW1lbnRzPVsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXSxhcmd1bWVudHMubGVuZ3RoPjAmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IHRoZSBjb25zdHJ1Y3RvciBubyBsb25nZXIgcmVhZHMgYXJndW1lbnRzLiB1c2UgLnNldCgpIGluc3RlYWQuIil9c2V0KHQsZSxuLGkscixvLGEscyxsLGMsdSxoLGQscCxmLG0pe2NvbnN0IGc9dGhpcy5lbGVtZW50cztyZXR1cm4gZ1swXT10LGdbNF09ZSxnWzhdPW4sZ1sxMl09aSxnWzFdPXIsZ1s1XT1vLGdbOV09YSxnWzEzXT1zLGdbMl09bCxnWzZdPWMsZ1sxMF09dSxnWzE0XT1oLGdbM109ZCxnWzddPXAsZ1sxMV09ZixnWzE1XT1tLHRoaXN9aWRlbnRpdHkoKXtyZXR1cm4gdGhpcy5zZXQoMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMSksdGhpc31jbG9uZSgpe3JldHVybihuZXcgZzN0KS5mcm9tQXJyYXkodGhpcy5lbGVtZW50cyl9Y29weSh0KXtjb25zdCBlPXRoaXMuZWxlbWVudHMsbj10LmVsZW1lbnRzO3JldHVybiBlWzBdPW5bMF0sZVsxXT1uWzFdLGVbMl09blsyXSxlWzNdPW5bM10sZVs0XT1uWzRdLGVbNV09bls1XSxlWzZdPW5bNl0sZVs3XT1uWzddLGVbOF09bls4XSxlWzldPW5bOV0sZVsxMF09blsxMF0sZVsxMV09blsxMV0sZVsxMl09blsxMl0sZVsxM109blsxM10sZVsxNF09blsxNF0sZVsxNV09blsxNV0sdGhpc31jb3B5UG9zaXRpb24odCl7Y29uc3QgZT10aGlzLmVsZW1lbnRzLG49dC5lbGVtZW50cztyZXR1cm4gZVsxMl09blsxMl0sZVsxM109blsxM10sZVsxNF09blsxNF0sdGhpc31zZXRGcm9tTWF0cml4Myh0KXtjb25zdCBlPXQuZWxlbWVudHM7cmV0dXJuIHRoaXMuc2V0KGVbMF0sZVszXSxlWzZdLDAsZVsxXSxlWzRdLGVbN10sMCxlWzJdLGVbNV0sZVs4XSwwLDAsMCwwLDEpLHRoaXN9ZXh0cmFjdEJhc2lzKHQsZSxuKXtyZXR1cm4gdC5zZXRGcm9tTWF0cml4Q29sdW1uKHRoaXMsMCksZS5zZXRGcm9tTWF0cml4Q29sdW1uKHRoaXMsMSksbi5zZXRGcm9tTWF0cml4Q29sdW1uKHRoaXMsMiksdGhpc31tYWtlQmFzaXModCxlLG4pe3JldHVybiB0aGlzLnNldCh0LngsZS54LG4ueCwwLHQueSxlLnksbi55LDAsdC56LGUueixuLnosMCwwLDAsMCwxKSx0aGlzfWV4dHJhY3RSb3RhdGlvbih0KXtjb25zdCBlPXRoaXMuZWxlbWVudHMsbj10LmVsZW1lbnRzLGk9MS9fM3Quc2V0RnJvbU1hdHJpeENvbHVtbih0LDApLmxlbmd0aCgpLHI9MS9fM3Quc2V0RnJvbU1hdHJpeENvbHVtbih0LDEpLmxlbmd0aCgpLG89MS9fM3Quc2V0RnJvbU1hdHJpeENvbHVtbih0LDIpLmxlbmd0aCgpO3JldHVybiBlWzBdPW5bMF0qaSxlWzFdPW5bMV0qaSxlWzJdPW5bMl0qaSxlWzNdPTAsZVs0XT1uWzRdKnIsZVs1XT1uWzVdKnIsZVs2XT1uWzZdKnIsZVs3XT0wLGVbOF09bls4XSpvLGVbOV09bls5XSpvLGVbMTBdPW5bMTBdKm8sZVsxMV09MCxlWzEyXT0wLGVbMTNdPTAsZVsxNF09MCxlWzE1XT0xLHRoaXN9bWFrZVJvdGF0aW9uRnJvbUV1bGVyKHQpe3QmJnQuaXNFdWxlcnx8Y29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4NDogLm1ha2VSb3RhdGlvbkZyb21FdWxlcigpIG5vdyBleHBlY3RzIGEgRXVsZXIgcm90YXRpb24gcmF0aGVyIHRoYW4gYSBWZWN0b3IzIGFuZCBvcmRlci4iKTtjb25zdCBlPXRoaXMuZWxlbWVudHMsbj10LngsaT10Lnkscj10Lnosbz1NYXRoLmNvcyhuKSxhPU1hdGguc2luKG4pLHM9TWF0aC5jb3MoaSksbD1NYXRoLnNpbihpKSxjPU1hdGguY29zKHIpLHU9TWF0aC5zaW4ocik7aWYoIlhZWiI9PT10Lm9yZGVyKXtjb25zdCB0PW8qYyxuPW8qdSxpPWEqYyxyPWEqdTtlWzBdPXMqYyxlWzRdPS1zKnUsZVs4XT1sLGVbMV09bitpKmwsZVs1XT10LXIqbCxlWzldPS1hKnMsZVsyXT1yLXQqbCxlWzZdPWkrbipsLGVbMTBdPW8qc31lbHNlIGlmKCJZWFoiPT09dC5vcmRlcil7Y29uc3QgdD1zKmMsbj1zKnUsaT1sKmMscj1sKnU7ZVswXT10K3IqYSxlWzRdPWkqYS1uLGVbOF09bypsLGVbMV09byp1LGVbNV09bypjLGVbOV09LWEsZVsyXT1uKmEtaSxlWzZdPXIrdCphLGVbMTBdPW8qc31lbHNlIGlmKCJaWFkiPT09dC5vcmRlcil7Y29uc3QgdD1zKmMsbj1zKnUsaT1sKmMscj1sKnU7ZVswXT10LXIqYSxlWzRdPS1vKnUsZVs4XT1pK24qYSxlWzFdPW4raSphLGVbNV09bypjLGVbOV09ci10KmEsZVsyXT0tbypsLGVbNl09YSxlWzEwXT1vKnN9ZWxzZSBpZigiWllYIj09PXQub3JkZXIpe2NvbnN0IHQ9bypjLG49byp1LGk9YSpjLHI9YSp1O2VbMF09cypjLGVbNF09aSpsLW4sZVs4XT10KmwrcixlWzFdPXMqdSxlWzVdPXIqbCt0LGVbOV09bipsLWksZVsyXT0tbCxlWzZdPWEqcyxlWzEwXT1vKnN9ZWxzZSBpZigiWVpYIj09PXQub3JkZXIpe2NvbnN0IHQ9bypzLG49bypsLGk9YSpzLHI9YSpsO2VbMF09cypjLGVbNF09ci10KnUsZVs4XT1pKnUrbixlWzFdPXUsZVs1XT1vKmMsZVs5XT0tYSpjLGVbMl09LWwqYyxlWzZdPW4qdStpLGVbMTBdPXQtcip1fWVsc2UgaWYoIlhaWSI9PT10Lm9yZGVyKXtjb25zdCB0PW8qcyxuPW8qbCxpPWEqcyxyPWEqbDtlWzBdPXMqYyxlWzRdPS11LGVbOF09bCpjLGVbMV09dCp1K3IsZVs1XT1vKmMsZVs5XT1uKnUtaSxlWzJdPWkqdS1uLGVbNl09YSpjLGVbMTBdPXIqdSt0fXJldHVybiBlWzNdPTAsZVs3XT0wLGVbMTFdPTAsZVsxMl09MCxlWzEzXT0wLGVbMTRdPTAsZVsxNV09MSx0aGlzfW1ha2VSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHQpe3JldHVybiB0aGlzLmNvbXBvc2UodjN0LHQsYjN0KX1sb29rQXQodCxlLG4pe2NvbnN0IGk9dGhpcy5lbGVtZW50cztyZXR1cm4gUzN0LnN1YlZlY3RvcnModCxlKSwwPT09UzN0Lmxlbmd0aFNxKCkmJihTM3Quej0xKSxTM3Qubm9ybWFsaXplKCkseDN0LmNyb3NzVmVjdG9ycyhuLFMzdCksMD09PXgzdC5sZW5ndGhTcSgpJiYoMT09PU1hdGguYWJzKG4ueik/UzN0LngrPTFlLTQ6UzN0LnorPTFlLTQsUzN0Lm5vcm1hbGl6ZSgpLHgzdC5jcm9zc1ZlY3RvcnMobixTM3QpKSx4M3Qubm9ybWFsaXplKCksdzN0LmNyb3NzVmVjdG9ycyhTM3QseDN0KSxpWzBdPXgzdC54LGlbNF09dzN0LngsaVs4XT1TM3QueCxpWzFdPXgzdC55LGlbNV09dzN0LnksaVs5XT1TM3QueSxpWzJdPXgzdC56LGlbNl09dzN0LnosaVsxMF09UzN0LnosdGhpc31tdWx0aXBseSh0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5tdWx0aXBseSgpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLm11bHRpcGx5TWF0cmljZXMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMubXVsdGlwbHlNYXRyaWNlcyh0LGUpKTp0aGlzLm11bHRpcGx5TWF0cmljZXModGhpcyx0KX1wcmVtdWx0aXBseSh0KXtyZXR1cm4gdGhpcy5tdWx0aXBseU1hdHJpY2VzKHQsdGhpcyl9bXVsdGlwbHlNYXRyaWNlcyh0LGUpe2NvbnN0IG49dC5lbGVtZW50cyxpPWUuZWxlbWVudHMscj10aGlzLmVsZW1lbnRzLG89blswXSxhPW5bNF0scz1uWzhdLGw9blsxMl0sYz1uWzFdLHU9bls1XSxoPW5bOV0sZD1uWzEzXSxwPW5bMl0sZj1uWzZdLG09blsxMF0sZz1uWzE0XSxfPW5bM10seT1uWzddLHY9blsxMV0sYj1uWzE1XSx4PWlbMF0sdz1pWzRdLFM9aVs4XSxNPWlbMTJdLEU9aVsxXSxUPWlbNV0sQz1pWzldLEE9aVsxM10saz1pWzJdLEw9aVs2XSxQPWlbMTBdLE49aVsxNF0sST1pWzNdLFI9aVs3XSxPPWlbMTFdLHo9aVsxNV07cmV0dXJuIHJbMF09byp4K2EqRStzKmsrbCpJLHJbNF09byp3K2EqVCtzKkwrbCpSLHJbOF09bypTK2EqQytzKlArbCpPLHJbMTJdPW8qTSthKkErcypOK2wqeixyWzFdPWMqeCt1KkUraCprK2QqSSxyWzVdPWMqdyt1KlQraCpMK2QqUixyWzldPWMqUyt1KkMraCpQK2QqTyxyWzEzXT1jKk0rdSpBK2gqTitkKnosclsyXT1wKngrZipFK20qaytnKkkscls2XT1wKncrZipUK20qTCtnKlIsclsxMF09cCpTK2YqQyttKlArZypPLHJbMTRdPXAqTStmKkErbSpOK2cqeixyWzNdPV8qeCt5KkUrdiprK2IqSSxyWzddPV8qdyt5KlQrdipMK2IqUixyWzExXT1fKlMreSpDK3YqUCtiKk8sclsxNV09XypNK3kqQSt2Kk4rYip6LHRoaXN9bXVsdGlwbHlTY2FsYXIodCl7Y29uc3QgZT10aGlzLmVsZW1lbnRzO3JldHVybiBlWzBdKj10LGVbNF0qPXQsZVs4XSo9dCxlWzEyXSo9dCxlWzFdKj10LGVbNV0qPXQsZVs5XSo9dCxlWzEzXSo9dCxlWzJdKj10LGVbNl0qPXQsZVsxMF0qPXQsZVsxNF0qPXQsZVszXSo9dCxlWzddKj10LGVbMTFdKj10LGVbMTVdKj10LHRoaXN9ZGV0ZXJtaW5hbnQoKXtjb25zdCB0PXRoaXMuZWxlbWVudHMsZT10WzBdLG49dFs0XSxpPXRbOF0scj10WzEyXSxvPXRbMV0sYT10WzVdLHM9dFs5XSxsPXRbMTNdLGM9dFsyXSx1PXRbNl0saD10WzEwXSxkPXRbMTRdO3JldHVybiB0WzNdKigrcipzKnUtaSpsKnUtciphKmgrbipsKmgraSphKmQtbipzKmQpK3RbN10qKCtlKnMqZC1lKmwqaCtyKm8qaC1pKm8qZCtpKmwqYy1yKnMqYykrdFsxMV0qKCtlKmwqdS1lKmEqZC1yKm8qdStuKm8qZCtyKmEqYy1uKmwqYykrdFsxNV0qKC1pKmEqYy1lKnMqdStlKmEqaCtpKm8qdS1uKm8qaCtuKnMqYyl9dHJhbnNwb3NlKCl7Y29uc3QgdD10aGlzLmVsZW1lbnRzO2xldCBlO3JldHVybiBlPXRbMV0sdFsxXT10WzRdLHRbNF09ZSxlPXRbMl0sdFsyXT10WzhdLHRbOF09ZSxlPXRbNl0sdFs2XT10WzldLHRbOV09ZSxlPXRbM10sdFszXT10WzEyXSx0WzEyXT1lLGU9dFs3XSx0WzddPXRbMTNdLHRbMTNdPWUsZT10WzExXSx0WzExXT10WzE0XSx0WzE0XT1lLHRoaXN9c2V0UG9zaXRpb24odCxlLG4pe2NvbnN0IGk9dGhpcy5lbGVtZW50cztyZXR1cm4gdC5pc1ZlY3RvcjM/KGlbMTJdPXQueCxpWzEzXT10LnksaVsxNF09dC56KTooaVsxMl09dCxpWzEzXT1lLGlbMTRdPW4pLHRoaXN9aW52ZXJ0KCl7Y29uc3QgdD10aGlzLmVsZW1lbnRzLGU9dFswXSxuPXRbMV0saT10WzJdLHI9dFszXSxvPXRbNF0sYT10WzVdLHM9dFs2XSxsPXRbN10sYz10WzhdLHU9dFs5XSxoPXRbMTBdLGQ9dFsxMV0scD10WzEyXSxmPXRbMTNdLG09dFsxNF0sZz10WzE1XSxfPXUqbSpsLWYqaCpsK2YqcypkLWEqbSpkLXUqcypnK2EqaCpnLHk9cCpoKmwtYyptKmwtcCpzKmQrbyptKmQrYypzKmctbypoKmcsdj1jKmYqbC1wKnUqbCtwKmEqZC1vKmYqZC1jKmEqZytvKnUqZyxiPXAqdSpzLWMqZipzLXAqYSpoK28qZipoK2MqYSptLW8qdSptLHg9ZSpfK24qeStpKnYrcipiO2lmKDA9PT14KXJldHVybiB0aGlzLnNldCgwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwKTtjb25zdCB3PTEveDtyZXR1cm4gdFswXT1fKncsdFsxXT0oZipoKnItdSptKnItZippKmQrbiptKmQrdSppKmctbipoKmcpKncsdFsyXT0oYSptKnItZipzKnIrZippKmwtbiptKmwtYSppKmcrbipzKmcpKncsdFszXT0odSpzKnItYSpoKnItdSppKmwrbipoKmwrYSppKmQtbipzKmQpKncsdFs0XT15KncsdFs1XT0oYyptKnItcCpoKnIrcCppKmQtZSptKmQtYyppKmcrZSpoKmcpKncsdFs2XT0ocCpzKnItbyptKnItcCppKmwrZSptKmwrbyppKmctZSpzKmcpKncsdFs3XT0obypoKnItYypzKnIrYyppKmwtZSpoKmwtbyppKmQrZSpzKmQpKncsdFs4XT12KncsdFs5XT0ocCp1KnItYypmKnItcCpuKmQrZSpmKmQrYypuKmctZSp1KmcpKncsdFsxMF09KG8qZipyLXAqYSpyK3AqbipsLWUqZipsLW8qbipnK2UqYSpnKSp3LHRbMTFdPShjKmEqci1vKnUqci1jKm4qbCtlKnUqbCtvKm4qZC1lKmEqZCkqdyx0WzEyXT1iKncsdFsxM109KGMqZippLXAqdSppK3AqbipoLWUqZipoLWMqbiptK2UqdSptKSp3LHRbMTRdPShwKmEqaS1vKmYqaS1wKm4qcytlKmYqcytvKm4qbS1lKmEqbSkqdyx0WzE1XT0obyp1KmktYyphKmkrYypuKnMtZSp1KnMtbypuKmgrZSphKmgpKncsdGhpc31zY2FsZSh0KXtjb25zdCBlPXRoaXMuZWxlbWVudHMsbj10LngsaT10Lnkscj10Lno7cmV0dXJuIGVbMF0qPW4sZVs0XSo9aSxlWzhdKj1yLGVbMV0qPW4sZVs1XSo9aSxlWzldKj1yLGVbMl0qPW4sZVs2XSo9aSxlWzEwXSo9cixlWzNdKj1uLGVbN10qPWksZVsxMV0qPXIsdGhpc31nZXRNYXhTY2FsZU9uQXhpcygpe2NvbnN0IHQ9dGhpcy5lbGVtZW50cztyZXR1cm4gTWF0aC5zcXJ0KE1hdGgubWF4KHRbMF0qdFswXSt0WzFdKnRbMV0rdFsyXSp0WzJdLHRbNF0qdFs0XSt0WzVdKnRbNV0rdFs2XSp0WzZdLHRbOF0qdFs4XSt0WzldKnRbOV0rdFsxMF0qdFsxMF0pKX1tYWtlVHJhbnNsYXRpb24odCxlLG4pe3JldHVybiB0aGlzLnNldCgxLDAsMCx0LDAsMSwwLGUsMCwwLDEsbiwwLDAsMCwxKSx0aGlzfW1ha2VSb3RhdGlvblgodCl7Y29uc3QgZT1NYXRoLmNvcyh0KSxuPU1hdGguc2luKHQpO3JldHVybiB0aGlzLnNldCgxLDAsMCwwLDAsZSwtbiwwLDAsbixlLDAsMCwwLDAsMSksdGhpc31tYWtlUm90YXRpb25ZKHQpe2NvbnN0IGU9TWF0aC5jb3ModCksbj1NYXRoLnNpbih0KTtyZXR1cm4gdGhpcy5zZXQoZSwwLG4sMCwwLDEsMCwwLC1uLDAsZSwwLDAsMCwwLDEpLHRoaXN9bWFrZVJvdGF0aW9uWih0KXtjb25zdCBlPU1hdGguY29zKHQpLG49TWF0aC5zaW4odCk7cmV0dXJuIHRoaXMuc2V0KGUsLW4sMCwwLG4sZSwwLDAsMCwwLDEsMCwwLDAsMCwxKSx0aGlzfW1ha2VSb3RhdGlvbkF4aXModCxlKXtjb25zdCBuPU1hdGguY29zKGUpLGk9TWF0aC5zaW4oZSkscj0xLW4sbz10LngsYT10Lnkscz10LnosbD1yKm8sYz1yKmE7cmV0dXJuIHRoaXMuc2V0KGwqbytuLGwqYS1pKnMsbCpzK2kqYSwwLGwqYStpKnMsYyphK24sYypzLWkqbywwLGwqcy1pKmEsYypzK2kqbyxyKnMqcytuLDAsMCwwLDAsMSksdGhpc31tYWtlU2NhbGUodCxlLG4pe3JldHVybiB0aGlzLnNldCh0LDAsMCwwLDAsZSwwLDAsMCwwLG4sMCwwLDAsMCwxKSx0aGlzfW1ha2VTaGVhcih0LGUsbixpLHIsbyl7cmV0dXJuIHRoaXMuc2V0KDEsbixyLDAsdCwxLG8sMCxlLGksMSwwLDAsMCwwLDEpLHRoaXN9Y29tcG9zZSh0LGUsbil7Y29uc3QgaT10aGlzLmVsZW1lbnRzLHI9ZS5feCxvPWUuX3ksYT1lLl96LHM9ZS5fdyxsPXIrcixjPW8rbyx1PWErYSxoPXIqbCxkPXIqYyxwPXIqdSxmPW8qYyxtPW8qdSxnPWEqdSxfPXMqbCx5PXMqYyx2PXMqdSxiPW4ueCx4PW4ueSx3PW4uejtyZXR1cm4gaVswXT0oMS0oZitnKSkqYixpWzFdPShkK3YpKmIsaVsyXT0ocC15KSpiLGlbM109MCxpWzRdPShkLXYpKngsaVs1XT0oMS0oaCtnKSkqeCxpWzZdPShtK18pKngsaVs3XT0wLGlbOF09KHAreSkqdyxpWzldPShtLV8pKncsaVsxMF09KDEtKGgrZikpKncsaVsxMV09MCxpWzEyXT10LngsaVsxM109dC55LGlbMTRdPXQueixpWzE1XT0xLHRoaXN9ZGVjb21wb3NlKHQsZSxuKXtjb25zdCBpPXRoaXMuZWxlbWVudHM7bGV0IHI9XzN0LnNldChpWzBdLGlbMV0saVsyXSkubGVuZ3RoKCk7Y29uc3Qgbz1fM3Quc2V0KGlbNF0saVs1XSxpWzZdKS5sZW5ndGgoKSxhPV8zdC5zZXQoaVs4XSxpWzldLGlbMTBdKS5sZW5ndGgoKTt0aGlzLmRldGVybWluYW50KCk8MCYmKHI9LXIpLHQueD1pWzEyXSx0Lnk9aVsxM10sdC56PWlbMTRdLHkzdC5jb3B5KHRoaXMpO2NvbnN0IHM9MS9yLGw9MS9vLGM9MS9hO3JldHVybiB5M3QuZWxlbWVudHNbMF0qPXMseTN0LmVsZW1lbnRzWzFdKj1zLHkzdC5lbGVtZW50c1syXSo9cyx5M3QuZWxlbWVudHNbNF0qPWwseTN0LmVsZW1lbnRzWzVdKj1sLHkzdC5lbGVtZW50c1s2XSo9bCx5M3QuZWxlbWVudHNbOF0qPWMseTN0LmVsZW1lbnRzWzldKj1jLHkzdC5lbGVtZW50c1sxMF0qPWMsZS5zZXRGcm9tUm90YXRpb25NYXRyaXgoeTN0KSxuLng9cixuLnk9byxuLno9YSx0aGlzfW1ha2VQZXJzcGVjdGl2ZSh0LGUsbixpLHIsbyl7dm9pZCAwPT09byYmY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubWFrZVBlcnNwZWN0aXZlKCkgaGFzIGJlZW4gcmVkZWZpbmVkIGFuZCBoYXMgYSBuZXcgc2lnbmF0dXJlLiBQbGVhc2UgY2hlY2sgdGhlIGRvY3MuIik7Y29uc3QgYT10aGlzLmVsZW1lbnRzLHM9MipyLyhuLWkpLGw9KGUrdCkvKGUtdCksYz0obitpKS8obi1pKSx1PS0obytyKS8oby1yKSxoPS0yKm8qci8oby1yKTtyZXR1cm4gYVswXT0yKnIvKGUtdCksYVs0XT0wLGFbOF09bCxhWzEyXT0wLGFbMV09MCxhWzVdPXMsYVs5XT1jLGFbMTNdPTAsYVsyXT0wLGFbNl09MCxhWzEwXT11LGFbMTRdPWgsYVszXT0wLGFbN109MCxhWzExXT0tMSxhWzE1XT0wLHRoaXN9bWFrZU9ydGhvZ3JhcGhpYyh0LGUsbixpLHIsbyl7Y29uc3QgYT10aGlzLmVsZW1lbnRzLHM9MS8oZS10KSxsPTEvKG4taSksYz0xLyhvLXIpLHU9KGUrdCkqcyxoPShuK2kpKmwsZD0obytyKSpjO3JldHVybiBhWzBdPTIqcyxhWzRdPTAsYVs4XT0wLGFbMTJdPS11LGFbMV09MCxhWzVdPTIqbCxhWzldPTAsYVsxM109LWgsYVsyXT0wLGFbNl09MCxhWzEwXT0tMipjLGFbMTRdPS1kLGFbM109MCxhWzddPTAsYVsxMV09MCxhWzE1XT0xLHRoaXN9ZXF1YWxzKHQpe2NvbnN0IGU9dGhpcy5lbGVtZW50cyxuPXQuZWxlbWVudHM7Zm9yKGxldCB0PTA7dDwxNjt0KyspaWYoZVt0XSE9PW5bdF0pcmV0dXJuITE7cmV0dXJuITB9ZnJvbUFycmF5KHQsZT0wKXtmb3IobGV0IG49MDtuPDE2O24rKyl0aGlzLmVsZW1lbnRzW25dPXRbbitlXTtyZXR1cm4gdGhpc310b0FycmF5KHQ9W10sZT0wKXtjb25zdCBuPXRoaXMuZWxlbWVudHM7cmV0dXJuIHRbZV09blswXSx0W2UrMV09blsxXSx0W2UrMl09blsyXSx0W2UrM109blszXSx0W2UrNF09bls0XSx0W2UrNV09bls1XSx0W2UrNl09bls2XSx0W2UrN109bls3XSx0W2UrOF09bls4XSx0W2UrOV09bls5XSx0W2UrMTBdPW5bMTBdLHRbZSsxMV09blsxMV0sdFtlKzEyXT1uWzEyXSx0W2UrMTNdPW5bMTNdLHRbZSsxNF09blsxNF0sdFtlKzE1XT1uWzE1XSx0fX1nM3QucHJvdG90eXBlLmlzTWF0cml4ND0hMDtjb25zdCBfM3Q9bmV3IEg1dCx5M3Q9bmV3IGczdCx2M3Q9bmV3IEg1dCgwLDAsMCksYjN0PW5ldyBINXQoMSwxLDEpLHgzdD1uZXcgSDV0LHczdD1uZXcgSDV0LFMzdD1uZXcgSDV0LE0zdD1uZXcgZzN0LEUzdD1uZXcgQjV0O2NsYXNzIFQzdHtjb25zdHJ1Y3Rvcih0PTAsZT0wLG49MCxpPVQzdC5EZWZhdWx0T3JkZXIpe3RoaXMuX3g9dCx0aGlzLl95PWUsdGhpcy5fej1uLHRoaXMuX29yZGVyPWl9Z2V0IHgoKXtyZXR1cm4gdGhpcy5feH1zZXQgeCh0KXt0aGlzLl94PXQsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpfWdldCB5KCl7cmV0dXJuIHRoaXMuX3l9c2V0IHkodCl7dGhpcy5feT10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1nZXQgeigpe3JldHVybiB0aGlzLl96fXNldCB6KHQpe3RoaXMuX3o9dCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCl9Z2V0IG9yZGVyKCl7cmV0dXJuIHRoaXMuX29yZGVyfXNldCBvcmRlcih0KXt0aGlzLl9vcmRlcj10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1zZXQodCxlLG4saT10aGlzLl9vcmRlcil7cmV0dXJuIHRoaXMuX3g9dCx0aGlzLl95PWUsdGhpcy5fej1uLHRoaXMuX29yZGVyPWksdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5feCx0aGlzLl95LHRoaXMuX3osdGhpcy5fb3JkZXIpfWNvcHkodCl7cmV0dXJuIHRoaXMuX3g9dC5feCx0aGlzLl95PXQuX3ksdGhpcy5fej10Ll96LHRoaXMuX29yZGVyPXQuX29yZGVyLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNldEZyb21Sb3RhdGlvbk1hdHJpeCh0LGU9dGhpcy5fb3JkZXIsbj0hMCl7Y29uc3QgaT10LmVsZW1lbnRzLHI9aVswXSxvPWlbNF0sYT1pWzhdLHM9aVsxXSxsPWlbNV0sYz1pWzldLHU9aVsyXSxoPWlbNl0sZD1pWzEwXTtzd2l0Y2goZSl7Y2FzZSJYWVoiOnRoaXMuX3k9TWF0aC5hc2luKHM1dChhLC0xLDEpKSxNYXRoLmFicyhhKTwuOTk5OTk5OT8odGhpcy5feD1NYXRoLmF0YW4yKC1jLGQpLHRoaXMuX3o9TWF0aC5hdGFuMigtbyxyKSk6KHRoaXMuX3g9TWF0aC5hdGFuMihoLGwpLHRoaXMuX3o9MCk7YnJlYWs7Y2FzZSJZWFoiOnRoaXMuX3g9TWF0aC5hc2luKC1zNXQoYywtMSwxKSksTWF0aC5hYnMoYyk8Ljk5OTk5OTk/KHRoaXMuX3k9TWF0aC5hdGFuMihhLGQpLHRoaXMuX3o9TWF0aC5hdGFuMihzLGwpKToodGhpcy5feT1NYXRoLmF0YW4yKC11LHIpLHRoaXMuX3o9MCk7YnJlYWs7Y2FzZSJaWFkiOnRoaXMuX3g9TWF0aC5hc2luKHM1dChoLC0xLDEpKSxNYXRoLmFicyhoKTwuOTk5OTk5OT8odGhpcy5feT1NYXRoLmF0YW4yKC11LGQpLHRoaXMuX3o9TWF0aC5hdGFuMigtbyxsKSk6KHRoaXMuX3k9MCx0aGlzLl96PU1hdGguYXRhbjIocyxyKSk7YnJlYWs7Y2FzZSJaWVgiOnRoaXMuX3k9TWF0aC5hc2luKC1zNXQodSwtMSwxKSksTWF0aC5hYnModSk8Ljk5OTk5OTk/KHRoaXMuX3g9TWF0aC5hdGFuMihoLGQpLHRoaXMuX3o9TWF0aC5hdGFuMihzLHIpKToodGhpcy5feD0wLHRoaXMuX3o9TWF0aC5hdGFuMigtbyxsKSk7YnJlYWs7Y2FzZSJZWlgiOnRoaXMuX3o9TWF0aC5hc2luKHM1dChzLC0xLDEpKSxNYXRoLmFicyhzKTwuOTk5OTk5OT8odGhpcy5feD1NYXRoLmF0YW4yKC1jLGwpLHRoaXMuX3k9TWF0aC5hdGFuMigtdSxyKSk6KHRoaXMuX3g9MCx0aGlzLl95PU1hdGguYXRhbjIoYSxkKSk7YnJlYWs7Y2FzZSJYWlkiOnRoaXMuX3o9TWF0aC5hc2luKC1zNXQobywtMSwxKSksTWF0aC5hYnMobyk8Ljk5OTk5OTk/KHRoaXMuX3g9TWF0aC5hdGFuMihoLGwpLHRoaXMuX3k9TWF0aC5hdGFuMihhLHIpKToodGhpcy5feD1NYXRoLmF0YW4yKC1jLGQpLHRoaXMuX3k9MCk7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLndhcm4oIlRIUkVFLkV1bGVyOiAuc2V0RnJvbVJvdGF0aW9uTWF0cml4KCkgZW5jb3VudGVyZWQgYW4gdW5rbm93biBvcmRlcjogIitlKX1yZXR1cm4gdGhpcy5fb3JkZXI9ZSwhMD09PW4mJnRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXNldEZyb21RdWF0ZXJuaW9uKHQsZSxuKXtyZXR1cm4gTTN0Lm1ha2VSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHQpLHRoaXMuc2V0RnJvbVJvdGF0aW9uTWF0cml4KE0zdCxlLG4pfXNldEZyb21WZWN0b3IzKHQsZT10aGlzLl9vcmRlcil7cmV0dXJuIHRoaXMuc2V0KHQueCx0LnksdC56LGUpfXJlb3JkZXIodCl7cmV0dXJuIEUzdC5zZXRGcm9tRXVsZXIodGhpcyksdGhpcy5zZXRGcm9tUXVhdGVybmlvbihFM3QsdCl9ZXF1YWxzKHQpe3JldHVybiB0Ll94PT09dGhpcy5feCYmdC5feT09PXRoaXMuX3kmJnQuX3o9PT10aGlzLl96JiZ0Ll9vcmRlcj09PXRoaXMuX29yZGVyfWZyb21BcnJheSh0KXtyZXR1cm4gdGhpcy5feD10WzBdLHRoaXMuX3k9dFsxXSx0aGlzLl96PXRbMl0sdm9pZCAwIT09dFszXSYmKHRoaXMuX29yZGVyPXRbM10pLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfXRvQXJyYXkodD1bXSxlPTApe3JldHVybiB0W2VdPXRoaXMuX3gsdFtlKzFdPXRoaXMuX3ksdFtlKzJdPXRoaXMuX3osdFtlKzNdPXRoaXMuX29yZGVyLHR9dG9WZWN0b3IzKHQpe3JldHVybiB0P3Quc2V0KHRoaXMuX3gsdGhpcy5feSx0aGlzLl96KTpuZXcgSDV0KHRoaXMuX3gsdGhpcy5feSx0aGlzLl96KX1fb25DaGFuZ2UodCl7cmV0dXJuIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2s9dCx0aGlzfV9vbkNoYW5nZUNhbGxiYWNrKCl7fX1UM3QucHJvdG90eXBlLmlzRXVsZXI9ITAsVDN0LkRlZmF1bHRPcmRlcj0iWFlaIixUM3QuUm90YXRpb25PcmRlcnM9WyJYWVoiLCJZWlgiLCJaWFkiLCJYWlkiLCJZWFoiLCJaWVgiXTtjbGFzcyBDM3R7Y29uc3RydWN0b3IoKXt0aGlzLm1hc2s9MX1zZXQodCl7dGhpcy5tYXNrPTE8PHR8MH1lbmFibGUodCl7dGhpcy5tYXNrfD0xPDx0fDB9ZW5hYmxlQWxsKCl7dGhpcy5tYXNrPS0xfXRvZ2dsZSh0KXt0aGlzLm1hc2tePTE8PHR8MH1kaXNhYmxlKHQpe3RoaXMubWFzayY9figxPDx0fDApfWRpc2FibGVBbGwoKXt0aGlzLm1hc2s9MH10ZXN0KHQpe3JldHVybiAwIT0odGhpcy5tYXNrJnQubWFzayl9fWxldCBBM3Q9MDtjb25zdCBrM3Q9bmV3IEg1dCxMM3Q9bmV3IEI1dCxQM3Q9bmV3IGczdCxOM3Q9bmV3IEg1dCxJM3Q9bmV3IEg1dCxSM3Q9bmV3IEg1dCxPM3Q9bmV3IEI1dCx6M3Q9bmV3IEg1dCgxLDAsMCksRDN0PW5ldyBINXQoMCwxLDApLEIzdD1uZXcgSDV0KDAsMCwxKSxIM3Q9e3R5cGU6ImFkZGVkIn0sRjN0PXt0eXBlOiJyZW1vdmVkIn07Y2xhc3MgVjN0IGV4dGVuZHMgZTV0e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiaWQiLHt2YWx1ZTpBM3QrK30pLHRoaXMudXVpZD1hNXQoKSx0aGlzLm5hbWU9IiIsdGhpcy50eXBlPSJPYmplY3QzRCIsdGhpcy5wYXJlbnQ9bnVsbCx0aGlzLmNoaWxkcmVuPVtdLHRoaXMudXA9VjN0LkRlZmF1bHRVcC5jbG9uZSgpO2NvbnN0IHQ9bmV3IEg1dCxlPW5ldyBUM3Qsbj1uZXcgQjV0LGk9bmV3IEg1dCgxLDEsMSk7ZS5fb25DaGFuZ2UoKGZ1bmN0aW9uIHIoKXtuLnNldEZyb21FdWxlcihlLCExKX0pKSxuLl9vbkNoYW5nZSgoZnVuY3Rpb24gbygpe2Uuc2V0RnJvbVF1YXRlcm5pb24obix2b2lkIDAsITEpfSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMse3Bvc2l0aW9uOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTp0fSxyb3RhdGlvbjp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6ZX0scXVhdGVybmlvbjp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6bn0sc2NhbGU6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOml9LG1vZGVsVmlld01hdHJpeDp7dmFsdWU6bmV3IGczdH0sbm9ybWFsTWF0cml4Ont2YWx1ZTpuZXcgQTV0fX0pLHRoaXMubWF0cml4PW5ldyBnM3QsdGhpcy5tYXRyaXhXb3JsZD1uZXcgZzN0LHRoaXMubWF0cml4QXV0b1VwZGF0ZT1WM3QuRGVmYXVsdE1hdHJpeEF1dG9VcGRhdGUsdGhpcy5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlPSExLHRoaXMubGF5ZXJzPW5ldyBDM3QsdGhpcy52aXNpYmxlPSEwLHRoaXMuY2FzdFNoYWRvdz0hMSx0aGlzLnJlY2VpdmVTaGFkb3c9ITEsdGhpcy5mcnVzdHVtQ3VsbGVkPSEwLHRoaXMucmVuZGVyT3JkZXI9MCx0aGlzLmFuaW1hdGlvbnM9W10sdGhpcy51c2VyRGF0YT17fX1vbkJlZm9yZVJlbmRlcigpe31vbkFmdGVyUmVuZGVyKCl7fWFwcGx5TWF0cml4NCh0KXt0aGlzLm1hdHJpeEF1dG9VcGRhdGUmJnRoaXMudXBkYXRlTWF0cml4KCksdGhpcy5tYXRyaXgucHJlbXVsdGlwbHkodCksdGhpcy5tYXRyaXguZGVjb21wb3NlKHRoaXMucG9zaXRpb24sdGhpcy5xdWF0ZXJuaW9uLHRoaXMuc2NhbGUpfWFwcGx5UXVhdGVybmlvbih0KXtyZXR1cm4gdGhpcy5xdWF0ZXJuaW9uLnByZW11bHRpcGx5KHQpLHRoaXN9c2V0Um90YXRpb25Gcm9tQXhpc0FuZ2xlKHQsZSl7dGhpcy5xdWF0ZXJuaW9uLnNldEZyb21BeGlzQW5nbGUodCxlKX1zZXRSb3RhdGlvbkZyb21FdWxlcih0KXt0aGlzLnF1YXRlcm5pb24uc2V0RnJvbUV1bGVyKHQsITApfXNldFJvdGF0aW9uRnJvbU1hdHJpeCh0KXt0aGlzLnF1YXRlcm5pb24uc2V0RnJvbVJvdGF0aW9uTWF0cml4KHQpfXNldFJvdGF0aW9uRnJvbVF1YXRlcm5pb24odCl7dGhpcy5xdWF0ZXJuaW9uLmNvcHkodCl9cm90YXRlT25BeGlzKHQsZSl7cmV0dXJuIEwzdC5zZXRGcm9tQXhpc0FuZ2xlKHQsZSksdGhpcy5xdWF0ZXJuaW9uLm11bHRpcGx5KEwzdCksdGhpc31yb3RhdGVPbldvcmxkQXhpcyh0LGUpe3JldHVybiBMM3Quc2V0RnJvbUF4aXNBbmdsZSh0LGUpLHRoaXMucXVhdGVybmlvbi5wcmVtdWx0aXBseShMM3QpLHRoaXN9cm90YXRlWCh0KXtyZXR1cm4gdGhpcy5yb3RhdGVPbkF4aXMoejN0LHQpfXJvdGF0ZVkodCl7cmV0dXJuIHRoaXMucm90YXRlT25BeGlzKEQzdCx0KX1yb3RhdGVaKHQpe3JldHVybiB0aGlzLnJvdGF0ZU9uQXhpcyhCM3QsdCl9dHJhbnNsYXRlT25BeGlzKHQsZSl7cmV0dXJuIGszdC5jb3B5KHQpLmFwcGx5UXVhdGVybmlvbih0aGlzLnF1YXRlcm5pb24pLHRoaXMucG9zaXRpb24uYWRkKGszdC5tdWx0aXBseVNjYWxhcihlKSksdGhpc310cmFuc2xhdGVYKHQpe3JldHVybiB0aGlzLnRyYW5zbGF0ZU9uQXhpcyh6M3QsdCl9dHJhbnNsYXRlWSh0KXtyZXR1cm4gdGhpcy50cmFuc2xhdGVPbkF4aXMoRDN0LHQpfXRyYW5zbGF0ZVoodCl7cmV0dXJuIHRoaXMudHJhbnNsYXRlT25BeGlzKEIzdCx0KX1sb2NhbFRvV29ybGQodCl7cmV0dXJuIHQuYXBwbHlNYXRyaXg0KHRoaXMubWF0cml4V29ybGQpfXdvcmxkVG9Mb2NhbCh0KXtyZXR1cm4gdC5hcHBseU1hdHJpeDQoUDN0LmNvcHkodGhpcy5tYXRyaXhXb3JsZCkuaW52ZXJ0KCkpfWxvb2tBdCh0LGUsbil7dC5pc1ZlY3RvcjM/TjN0LmNvcHkodCk6TjN0LnNldCh0LGUsbik7Y29uc3QgaT10aGlzLnBhcmVudDt0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKSxJM3Quc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHRoaXMubWF0cml4V29ybGQpLHRoaXMuaXNDYW1lcmF8fHRoaXMuaXNMaWdodD9QM3QubG9va0F0KEkzdCxOM3QsdGhpcy51cCk6UDN0Lmxvb2tBdChOM3QsSTN0LHRoaXMudXApLHRoaXMucXVhdGVybmlvbi5zZXRGcm9tUm90YXRpb25NYXRyaXgoUDN0KSxpJiYoUDN0LmV4dHJhY3RSb3RhdGlvbihpLm1hdHJpeFdvcmxkKSxMM3Quc2V0RnJvbVJvdGF0aW9uTWF0cml4KFAzdCksdGhpcy5xdWF0ZXJuaW9uLnByZW11bHRpcGx5KEwzdC5pbnZlcnQoKSkpfWFkZCh0KXtpZihhcmd1bWVudHMubGVuZ3RoPjEpe2ZvcihsZXQgdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspdGhpcy5hZGQoYXJndW1lbnRzW3RdKTtyZXR1cm4gdGhpc31yZXR1cm4gdD09PXRoaXM/KGNvbnNvbGUuZXJyb3IoIlRIUkVFLk9iamVjdDNELmFkZDogb2JqZWN0IGNhbid0IGJlIGFkZGVkIGFzIGEgY2hpbGQgb2YgaXRzZWxmLiIsdCksdGhpcyk6KHQmJnQuaXNPYmplY3QzRD8obnVsbCE9PXQucGFyZW50JiZ0LnBhcmVudC5yZW1vdmUodCksdC5wYXJlbnQ9dGhpcyx0aGlzLmNoaWxkcmVuLnB1c2godCksdC5kaXNwYXRjaEV2ZW50KEgzdCkpOmNvbnNvbGUuZXJyb3IoIlRIUkVFLk9iamVjdDNELmFkZDogb2JqZWN0IG5vdCBhbiBpbnN0YW5jZSBvZiBUSFJFRS5PYmplY3QzRC4iLHQpLHRoaXMpfXJlbW92ZSh0KXtpZihhcmd1bWVudHMubGVuZ3RoPjEpe2ZvcihsZXQgdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspdGhpcy5yZW1vdmUoYXJndW1lbnRzW3RdKTtyZXR1cm4gdGhpc31jb25zdCBlPXRoaXMuY2hpbGRyZW4uaW5kZXhPZih0KTtyZXR1cm4tMSE9PWUmJih0LnBhcmVudD1udWxsLHRoaXMuY2hpbGRyZW4uc3BsaWNlKGUsMSksdC5kaXNwYXRjaEV2ZW50KEYzdCkpLHRoaXN9cmVtb3ZlRnJvbVBhcmVudCgpe2NvbnN0IHQ9dGhpcy5wYXJlbnQ7cmV0dXJuIG51bGwhPT10JiZ0LnJlbW92ZSh0aGlzKSx0aGlzfWNsZWFyKCl7Zm9yKGxldCB0PTA7dDx0aGlzLmNoaWxkcmVuLmxlbmd0aDt0Kyspe2NvbnN0IGU9dGhpcy5jaGlsZHJlblt0XTtlLnBhcmVudD1udWxsLGUuZGlzcGF0Y2hFdmVudChGM3QpfXJldHVybiB0aGlzLmNoaWxkcmVuLmxlbmd0aD0wLHRoaXN9YXR0YWNoKHQpe3JldHVybiB0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKSxQM3QuY29weSh0aGlzLm1hdHJpeFdvcmxkKS5pbnZlcnQoKSxudWxsIT09dC5wYXJlbnQmJih0LnBhcmVudC51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSksUDN0Lm11bHRpcGx5KHQucGFyZW50Lm1hdHJpeFdvcmxkKSksdC5hcHBseU1hdHJpeDQoUDN0KSx0aGlzLmFkZCh0KSx0LnVwZGF0ZVdvcmxkTWF0cml4KCExLCEwKSx0aGlzfWdldE9iamVjdEJ5SWQodCl7cmV0dXJuIHRoaXMuZ2V0T2JqZWN0QnlQcm9wZXJ0eSgiaWQiLHQpfWdldE9iamVjdEJ5TmFtZSh0KXtyZXR1cm4gdGhpcy5nZXRPYmplY3RCeVByb3BlcnR5KCJuYW1lIix0KX1nZXRPYmplY3RCeVByb3BlcnR5KHQsZSl7aWYodGhpc1t0XT09PWUpcmV0dXJuIHRoaXM7Zm9yKGxldCBuPTAsaT10aGlzLmNoaWxkcmVuLmxlbmd0aDtuPGk7bisrKXtjb25zdCBpPXRoaXMuY2hpbGRyZW5bbl0uZ2V0T2JqZWN0QnlQcm9wZXJ0eSh0LGUpO2lmKHZvaWQgMCE9PWkpcmV0dXJuIGl9fWdldFdvcmxkUG9zaXRpb24odCl7cmV0dXJuIHRoaXMudXBkYXRlV29ybGRNYXRyaXgoITAsITEpLHQuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHRoaXMubWF0cml4V29ybGQpfWdldFdvcmxkUXVhdGVybmlvbih0KXtyZXR1cm4gdGhpcy51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSksdGhpcy5tYXRyaXhXb3JsZC5kZWNvbXBvc2UoSTN0LHQsUjN0KSx0fWdldFdvcmxkU2NhbGUodCl7cmV0dXJuIHRoaXMudXBkYXRlV29ybGRNYXRyaXgoITAsITEpLHRoaXMubWF0cml4V29ybGQuZGVjb21wb3NlKEkzdCxPM3QsdCksdH1nZXRXb3JsZERpcmVjdGlvbih0KXt0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKTtjb25zdCBlPXRoaXMubWF0cml4V29ybGQuZWxlbWVudHM7cmV0dXJuIHQuc2V0KGVbOF0sZVs5XSxlWzEwXSkubm9ybWFsaXplKCl9cmF5Y2FzdCgpe310cmF2ZXJzZSh0KXt0KHRoaXMpO2NvbnN0IGU9dGhpcy5jaGlsZHJlbjtmb3IobGV0IG49MCxpPWUubGVuZ3RoO248aTtuKyspZVtuXS50cmF2ZXJzZSh0KX10cmF2ZXJzZVZpc2libGUodCl7aWYoITE9PT10aGlzLnZpc2libGUpcmV0dXJuO3QodGhpcyk7Y29uc3QgZT10aGlzLmNoaWxkcmVuO2ZvcihsZXQgbj0wLGk9ZS5sZW5ndGg7bjxpO24rKyllW25dLnRyYXZlcnNlVmlzaWJsZSh0KX10cmF2ZXJzZUFuY2VzdG9ycyh0KXtjb25zdCBlPXRoaXMucGFyZW50O251bGwhPT1lJiYodChlKSxlLnRyYXZlcnNlQW5jZXN0b3JzKHQpKX11cGRhdGVNYXRyaXgoKXt0aGlzLm1hdHJpeC5jb21wb3NlKHRoaXMucG9zaXRpb24sdGhpcy5xdWF0ZXJuaW9uLHRoaXMuc2NhbGUpLHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMH11cGRhdGVNYXRyaXhXb3JsZCh0KXt0aGlzLm1hdHJpeEF1dG9VcGRhdGUmJnRoaXMudXBkYXRlTWF0cml4KCksKHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZXx8dCkmJihudWxsPT09dGhpcy5wYXJlbnQ/dGhpcy5tYXRyaXhXb3JsZC5jb3B5KHRoaXMubWF0cml4KTp0aGlzLm1hdHJpeFdvcmxkLm11bHRpcGx5TWF0cmljZXModGhpcy5wYXJlbnQubWF0cml4V29ybGQsdGhpcy5tYXRyaXgpLHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMSx0PSEwKTtjb25zdCBlPXRoaXMuY2hpbGRyZW47Zm9yKGxldCBuPTAsaT1lLmxlbmd0aDtuPGk7bisrKWVbbl0udXBkYXRlTWF0cml4V29ybGQodCl9dXBkYXRlV29ybGRNYXRyaXgodCxlKXtjb25zdCBuPXRoaXMucGFyZW50O2lmKCEwPT09dCYmbnVsbCE9PW4mJm4udXBkYXRlV29ybGRNYXRyaXgoITAsITEpLHRoaXMubWF0cml4QXV0b1VwZGF0ZSYmdGhpcy51cGRhdGVNYXRyaXgoKSxudWxsPT09dGhpcy5wYXJlbnQ/dGhpcy5tYXRyaXhXb3JsZC5jb3B5KHRoaXMubWF0cml4KTp0aGlzLm1hdHJpeFdvcmxkLm11bHRpcGx5TWF0cmljZXModGhpcy5wYXJlbnQubWF0cml4V29ybGQsdGhpcy5tYXRyaXgpLCEwPT09ZSl7Y29uc3QgdD10aGlzLmNoaWxkcmVuO2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKyl0W2VdLnVwZGF0ZVdvcmxkTWF0cml4KCExLCEwKX19dG9KU09OKHQpe2NvbnN0IGU9dm9pZCAwPT09dHx8InN0cmluZyI9PXR5cGVvZiB0LG49e307ZSYmKHQ9e2dlb21ldHJpZXM6e30sbWF0ZXJpYWxzOnt9LHRleHR1cmVzOnt9LGltYWdlczp7fSxzaGFwZXM6e30sc2tlbGV0b25zOnt9LGFuaW1hdGlvbnM6e319LG4ubWV0YWRhdGE9e3ZlcnNpb246NC41LHR5cGU6Ik9iamVjdCIsZ2VuZXJhdG9yOiJPYmplY3QzRC50b0pTT04ifSk7Y29uc3QgaT17fTtmdW5jdGlvbiByKGUsbil7cmV0dXJuIHZvaWQgMD09PWVbbi51dWlkXSYmKGVbbi51dWlkXT1uLnRvSlNPTih0KSksbi51dWlkfWlmKGkudXVpZD10aGlzLnV1aWQsaS50eXBlPXRoaXMudHlwZSwiIiE9PXRoaXMubmFtZSYmKGkubmFtZT10aGlzLm5hbWUpLCEwPT09dGhpcy5jYXN0U2hhZG93JiYoaS5jYXN0U2hhZG93PSEwKSwhMD09PXRoaXMucmVjZWl2ZVNoYWRvdyYmKGkucmVjZWl2ZVNoYWRvdz0hMCksITE9PT10aGlzLnZpc2libGUmJihpLnZpc2libGU9ITEpLCExPT09dGhpcy5mcnVzdHVtQ3VsbGVkJiYoaS5mcnVzdHVtQ3VsbGVkPSExKSwwIT09dGhpcy5yZW5kZXJPcmRlciYmKGkucmVuZGVyT3JkZXI9dGhpcy5yZW5kZXJPcmRlciksInt9IiE9PUpTT04uc3RyaW5naWZ5KHRoaXMudXNlckRhdGEpJiYoaS51c2VyRGF0YT10aGlzLnVzZXJEYXRhKSxpLmxheWVycz10aGlzLmxheWVycy5tYXNrLGkubWF0cml4PXRoaXMubWF0cml4LnRvQXJyYXkoKSwhMT09PXRoaXMubWF0cml4QXV0b1VwZGF0ZSYmKGkubWF0cml4QXV0b1VwZGF0ZT0hMSksdGhpcy5pc0luc3RhbmNlZE1lc2gmJihpLnR5cGU9Ikluc3RhbmNlZE1lc2giLGkuY291bnQ9dGhpcy5jb3VudCxpLmluc3RhbmNlTWF0cml4PXRoaXMuaW5zdGFuY2VNYXRyaXgudG9KU09OKCksbnVsbCE9PXRoaXMuaW5zdGFuY2VDb2xvciYmKGkuaW5zdGFuY2VDb2xvcj10aGlzLmluc3RhbmNlQ29sb3IudG9KU09OKCkpKSx0aGlzLmlzU2NlbmUpdGhpcy5iYWNrZ3JvdW5kJiYodGhpcy5iYWNrZ3JvdW5kLmlzQ29sb3I/aS5iYWNrZ3JvdW5kPXRoaXMuYmFja2dyb3VuZC50b0pTT04oKTp0aGlzLmJhY2tncm91bmQuaXNUZXh0dXJlJiYoaS5iYWNrZ3JvdW5kPXRoaXMuYmFja2dyb3VuZC50b0pTT04odCkudXVpZCkpLHRoaXMuZW52aXJvbm1lbnQmJnRoaXMuZW52aXJvbm1lbnQuaXNUZXh0dXJlJiYoaS5lbnZpcm9ubWVudD10aGlzLmVudmlyb25tZW50LnRvSlNPTih0KS51dWlkKTtlbHNlIGlmKHRoaXMuaXNNZXNofHx0aGlzLmlzTGluZXx8dGhpcy5pc1BvaW50cyl7aS5nZW9tZXRyeT1yKHQuZ2VvbWV0cmllcyx0aGlzLmdlb21ldHJ5KTtjb25zdCBlPXRoaXMuZ2VvbWV0cnkucGFyYW1ldGVycztpZih2b2lkIDAhPT1lJiZ2b2lkIDAhPT1lLnNoYXBlcyl7Y29uc3Qgbj1lLnNoYXBlcztpZihBcnJheS5pc0FycmF5KG4pKWZvcihsZXQgZT0wLGk9bi5sZW5ndGg7ZTxpO2UrKyl7cih0LnNoYXBlcyxuW2VdKX1lbHNlIHIodC5zaGFwZXMsbil9fWlmKHRoaXMuaXNTa2lubmVkTWVzaCYmKGkuYmluZE1vZGU9dGhpcy5iaW5kTW9kZSxpLmJpbmRNYXRyaXg9dGhpcy5iaW5kTWF0cml4LnRvQXJyYXkoKSx2b2lkIDAhPT10aGlzLnNrZWxldG9uJiYocih0LnNrZWxldG9ucyx0aGlzLnNrZWxldG9uKSxpLnNrZWxldG9uPXRoaXMuc2tlbGV0b24udXVpZCkpLHZvaWQgMCE9PXRoaXMubWF0ZXJpYWwpaWYoQXJyYXkuaXNBcnJheSh0aGlzLm1hdGVyaWFsKSl7Y29uc3QgZT1bXTtmb3IobGV0IG49MCxpPXRoaXMubWF0ZXJpYWwubGVuZ3RoO248aTtuKyspZS5wdXNoKHIodC5tYXRlcmlhbHMsdGhpcy5tYXRlcmlhbFtuXSkpO2kubWF0ZXJpYWw9ZX1lbHNlIGkubWF0ZXJpYWw9cih0Lm1hdGVyaWFscyx0aGlzLm1hdGVyaWFsKTtpZih0aGlzLmNoaWxkcmVuLmxlbmd0aD4wKXtpLmNoaWxkcmVuPVtdO2ZvcihsZXQgZT0wO2U8dGhpcy5jaGlsZHJlbi5sZW5ndGg7ZSsrKWkuY2hpbGRyZW4ucHVzaCh0aGlzLmNoaWxkcmVuW2VdLnRvSlNPTih0KS5vYmplY3QpfWlmKHRoaXMuYW5pbWF0aW9ucy5sZW5ndGg+MCl7aS5hbmltYXRpb25zPVtdO2ZvcihsZXQgZT0wO2U8dGhpcy5hbmltYXRpb25zLmxlbmd0aDtlKyspe2kuYW5pbWF0aW9ucy5wdXNoKHIodC5hbmltYXRpb25zLHRoaXMuYW5pbWF0aW9uc1tlXSkpfX1pZihlKXtjb25zdCBlPW8odC5nZW9tZXRyaWVzKSxpPW8odC5tYXRlcmlhbHMpLHI9byh0LnRleHR1cmVzKSxhPW8odC5pbWFnZXMpLHM9byh0LnNoYXBlcyksbD1vKHQuc2tlbGV0b25zKSxjPW8odC5hbmltYXRpb25zKTtlLmxlbmd0aD4wJiYobi5nZW9tZXRyaWVzPWUpLGkubGVuZ3RoPjAmJihuLm1hdGVyaWFscz1pKSxyLmxlbmd0aD4wJiYobi50ZXh0dXJlcz1yKSxhLmxlbmd0aD4wJiYobi5pbWFnZXM9YSkscy5sZW5ndGg+MCYmKG4uc2hhcGVzPXMpLGwubGVuZ3RoPjAmJihuLnNrZWxldG9ucz1sKSxjLmxlbmd0aD4wJiYobi5hbmltYXRpb25zPWMpfXJldHVybiBuLm9iamVjdD1pLG47ZnVuY3Rpb24gbyh0KXtjb25zdCBlPVtdO2Zvcihjb25zdCBuIGluIHQpe2NvbnN0IGk9dFtuXTtkZWxldGUgaS5tZXRhZGF0YSxlLnB1c2goaSl9cmV0dXJuIGV9fWNsb25lKHQpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzLHQpfWNvcHkodCxlPSEwKXtpZih0aGlzLm5hbWU9dC5uYW1lLHRoaXMudXAuY29weSh0LnVwKSx0aGlzLnBvc2l0aW9uLmNvcHkodC5wb3NpdGlvbiksdGhpcy5yb3RhdGlvbi5vcmRlcj10LnJvdGF0aW9uLm9yZGVyLHRoaXMucXVhdGVybmlvbi5jb3B5KHQucXVhdGVybmlvbiksdGhpcy5zY2FsZS5jb3B5KHQuc2NhbGUpLHRoaXMubWF0cml4LmNvcHkodC5tYXRyaXgpLHRoaXMubWF0cml4V29ybGQuY29weSh0Lm1hdHJpeFdvcmxkKSx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9dC5tYXRyaXhBdXRvVXBkYXRlLHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZT10Lm1hdHJpeFdvcmxkTmVlZHNVcGRhdGUsdGhpcy5sYXllcnMubWFzaz10LmxheWVycy5tYXNrLHRoaXMudmlzaWJsZT10LnZpc2libGUsdGhpcy5jYXN0U2hhZG93PXQuY2FzdFNoYWRvdyx0aGlzLnJlY2VpdmVTaGFkb3c9dC5yZWNlaXZlU2hhZG93LHRoaXMuZnJ1c3R1bUN1bGxlZD10LmZydXN0dW1DdWxsZWQsdGhpcy5yZW5kZXJPcmRlcj10LnJlbmRlck9yZGVyLHRoaXMudXNlckRhdGE9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0LnVzZXJEYXRhKSksITA9PT1lKWZvcihsZXQgZT0wO2U8dC5jaGlsZHJlbi5sZW5ndGg7ZSsrKXt0aGlzLmFkZCh0LmNoaWxkcmVuW2VdLmNsb25lKCkpfXJldHVybiB0aGlzfX1WM3QuRGVmYXVsdFVwPW5ldyBINXQoMCwxLDApLFYzdC5EZWZhdWx0TWF0cml4QXV0b1VwZGF0ZT0hMCxWM3QucHJvdG90eXBlLmlzT2JqZWN0M0Q9ITA7Y29uc3QgVTN0PW5ldyBINXQsajN0PW5ldyBINXQsRzN0PW5ldyBINXQsVzN0PW5ldyBINXQscTN0PW5ldyBINXQsWTN0PW5ldyBINXQsWDN0PW5ldyBINXQsJDN0PW5ldyBINXQsSzN0PW5ldyBINXQsWjN0PW5ldyBINXQ7Y2xhc3MgSjN0e2NvbnN0cnVjdG9yKHQ9bmV3IEg1dCxlPW5ldyBINXQsbj1uZXcgSDV0KXt0aGlzLmE9dCx0aGlzLmI9ZSx0aGlzLmM9bn1zdGF0aWMgZ2V0Tm9ybWFsKHQsZSxuLGkpe2kuc3ViVmVjdG9ycyhuLGUpLFUzdC5zdWJWZWN0b3JzKHQsZSksaS5jcm9zcyhVM3QpO2NvbnN0IHI9aS5sZW5ndGhTcSgpO3JldHVybiByPjA/aS5tdWx0aXBseVNjYWxhcigxL01hdGguc3FydChyKSk6aS5zZXQoMCwwLDApfXN0YXRpYyBnZXRCYXJ5Y29vcmQodCxlLG4saSxyKXtVM3Quc3ViVmVjdG9ycyhpLGUpLGozdC5zdWJWZWN0b3JzKG4sZSksRzN0LnN1YlZlY3RvcnModCxlKTtjb25zdCBvPVUzdC5kb3QoVTN0KSxhPVUzdC5kb3QoajN0KSxzPVUzdC5kb3QoRzN0KSxsPWozdC5kb3QoajN0KSxjPWozdC5kb3QoRzN0KSx1PW8qbC1hKmE7aWYoMD09PXUpcmV0dXJuIHIuc2V0KC0yLC0xLC0xKTtjb25zdCBoPTEvdSxkPShsKnMtYSpjKSpoLHA9KG8qYy1hKnMpKmg7cmV0dXJuIHIuc2V0KDEtZC1wLHAsZCl9c3RhdGljIGNvbnRhaW5zUG9pbnQodCxlLG4saSl7cmV0dXJuIHRoaXMuZ2V0QmFyeWNvb3JkKHQsZSxuLGksVzN0KSxXM3QueD49MCYmVzN0Lnk+PTAmJlczdC54K1czdC55PD0xfXN0YXRpYyBnZXRVVih0LGUsbixpLHIsbyxhLHMpe3JldHVybiB0aGlzLmdldEJhcnljb29yZCh0LGUsbixpLFczdCkscy5zZXQoMCwwKSxzLmFkZFNjYWxlZFZlY3RvcihyLFczdC54KSxzLmFkZFNjYWxlZFZlY3RvcihvLFczdC55KSxzLmFkZFNjYWxlZFZlY3RvcihhLFczdC56KSxzfXN0YXRpYyBpc0Zyb250RmFjaW5nKHQsZSxuLGkpe3JldHVybiBVM3Quc3ViVmVjdG9ycyhuLGUpLGozdC5zdWJWZWN0b3JzKHQsZSksVTN0LmNyb3NzKGozdCkuZG90KGkpPDB9c2V0KHQsZSxuKXtyZXR1cm4gdGhpcy5hLmNvcHkodCksdGhpcy5iLmNvcHkoZSksdGhpcy5jLmNvcHkobiksdGhpc31zZXRGcm9tUG9pbnRzQW5kSW5kaWNlcyh0LGUsbixpKXtyZXR1cm4gdGhpcy5hLmNvcHkodFtlXSksdGhpcy5iLmNvcHkodFtuXSksdGhpcy5jLmNvcHkodFtpXSksdGhpc31jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX1jb3B5KHQpe3JldHVybiB0aGlzLmEuY29weSh0LmEpLHRoaXMuYi5jb3B5KHQuYiksdGhpcy5jLmNvcHkodC5jKSx0aGlzfWdldEFyZWEoKXtyZXR1cm4gVTN0LnN1YlZlY3RvcnModGhpcy5jLHRoaXMuYiksajN0LnN1YlZlY3RvcnModGhpcy5hLHRoaXMuYiksLjUqVTN0LmNyb3NzKGozdCkubGVuZ3RoKCl9Z2V0TWlkcG9pbnQodCl7cmV0dXJuIHQuYWRkVmVjdG9ycyh0aGlzLmEsdGhpcy5iKS5hZGQodGhpcy5jKS5tdWx0aXBseVNjYWxhcigxLzMpfWdldE5vcm1hbCh0KXtyZXR1cm4gSjN0LmdldE5vcm1hbCh0aGlzLmEsdGhpcy5iLHRoaXMuYyx0KX1nZXRQbGFuZSh0KXtyZXR1cm4gdC5zZXRGcm9tQ29wbGFuYXJQb2ludHModGhpcy5hLHRoaXMuYix0aGlzLmMpfWdldEJhcnljb29yZCh0LGUpe3JldHVybiBKM3QuZ2V0QmFyeWNvb3JkKHQsdGhpcy5hLHRoaXMuYix0aGlzLmMsZSl9Z2V0VVYodCxlLG4saSxyKXtyZXR1cm4gSjN0LmdldFVWKHQsdGhpcy5hLHRoaXMuYix0aGlzLmMsZSxuLGkscil9Y29udGFpbnNQb2ludCh0KXtyZXR1cm4gSjN0LmNvbnRhaW5zUG9pbnQodCx0aGlzLmEsdGhpcy5iLHRoaXMuYyl9aXNGcm9udEZhY2luZyh0KXtyZXR1cm4gSjN0LmlzRnJvbnRGYWNpbmcodGhpcy5hLHRoaXMuYix0aGlzLmMsdCl9aW50ZXJzZWN0c0JveCh0KXtyZXR1cm4gdC5pbnRlcnNlY3RzVHJpYW5nbGUodGhpcyl9Y2xvc2VzdFBvaW50VG9Qb2ludCh0LGUpe2NvbnN0IG49dGhpcy5hLGk9dGhpcy5iLHI9dGhpcy5jO2xldCBvLGE7cTN0LnN1YlZlY3RvcnMoaSxuKSxZM3Quc3ViVmVjdG9ycyhyLG4pLCQzdC5zdWJWZWN0b3JzKHQsbik7Y29uc3Qgcz1xM3QuZG90KCQzdCksbD1ZM3QuZG90KCQzdCk7aWYoczw9MCYmbDw9MClyZXR1cm4gZS5jb3B5KG4pO0szdC5zdWJWZWN0b3JzKHQsaSk7Y29uc3QgYz1xM3QuZG90KEszdCksdT1ZM3QuZG90KEszdCk7aWYoYz49MCYmdTw9YylyZXR1cm4gZS5jb3B5KGkpO2NvbnN0IGg9cyp1LWMqbDtpZihoPD0wJiZzPj0wJiZjPD0wKXJldHVybiBvPXMvKHMtYyksZS5jb3B5KG4pLmFkZFNjYWxlZFZlY3RvcihxM3Qsbyk7WjN0LnN1YlZlY3RvcnModCxyKTtjb25zdCBkPXEzdC5kb3QoWjN0KSxwPVkzdC5kb3QoWjN0KTtpZihwPj0wJiZkPD1wKXJldHVybiBlLmNvcHkocik7Y29uc3QgZj1kKmwtcypwO2lmKGY8PTAmJmw+PTAmJnA8PTApcmV0dXJuIGE9bC8obC1wKSxlLmNvcHkobikuYWRkU2NhbGVkVmVjdG9yKFkzdCxhKTtjb25zdCBtPWMqcC1kKnU7aWYobTw9MCYmdS1jPj0wJiZkLXA+PTApcmV0dXJuIFgzdC5zdWJWZWN0b3JzKHIsaSksYT0odS1jKS8odS1jKyhkLXApKSxlLmNvcHkoaSkuYWRkU2NhbGVkVmVjdG9yKFgzdCxhKTtjb25zdCBnPTEvKG0rZitoKTtyZXR1cm4gbz1mKmcsYT1oKmcsZS5jb3B5KG4pLmFkZFNjYWxlZFZlY3RvcihxM3QsbykuYWRkU2NhbGVkVmVjdG9yKFkzdCxhKX1lcXVhbHModCl7cmV0dXJuIHQuYS5lcXVhbHModGhpcy5hKSYmdC5iLmVxdWFscyh0aGlzLmIpJiZ0LmMuZXF1YWxzKHRoaXMuYyl9fWxldCBRM3Q9MDtjbGFzcyB0NHQgZXh0ZW5kcyBlNXR7Y29uc3RydWN0b3IoKXtzdXBlcigpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJpZCIse3ZhbHVlOlEzdCsrfSksdGhpcy51dWlkPWE1dCgpLHRoaXMubmFtZT0iIix0aGlzLnR5cGU9Ik1hdGVyaWFsIix0aGlzLmZvZz0hMCx0aGlzLmJsZW5kaW5nPTEsdGhpcy5zaWRlPTAsdGhpcy52ZXJ0ZXhDb2xvcnM9ITEsdGhpcy5vcGFjaXR5PTEsdGhpcy50cmFuc3BhcmVudD0hMSx0aGlzLmJsZW5kU3JjPTIwNCx0aGlzLmJsZW5kRHN0PTIwNSx0aGlzLmJsZW5kRXF1YXRpb249UTB0LHRoaXMuYmxlbmRTcmNBbHBoYT1udWxsLHRoaXMuYmxlbmREc3RBbHBoYT1udWxsLHRoaXMuYmxlbmRFcXVhdGlvbkFscGhhPW51bGwsdGhpcy5kZXB0aEZ1bmM9Myx0aGlzLmRlcHRoVGVzdD0hMCx0aGlzLmRlcHRoV3JpdGU9ITAsdGhpcy5zdGVuY2lsV3JpdGVNYXNrPTI1NSx0aGlzLnN0ZW5jaWxGdW5jPTUxOSx0aGlzLnN0ZW5jaWxSZWY9MCx0aGlzLnN0ZW5jaWxGdW5jTWFzaz0yNTUsdGhpcy5zdGVuY2lsRmFpbD1aMnQsdGhpcy5zdGVuY2lsWkZhaWw9WjJ0LHRoaXMuc3RlbmNpbFpQYXNzPVoydCx0aGlzLnN0ZW5jaWxXcml0ZT0hMSx0aGlzLmNsaXBwaW5nUGxhbmVzPW51bGwsdGhpcy5jbGlwSW50ZXJzZWN0aW9uPSExLHRoaXMuY2xpcFNoYWRvd3M9ITEsdGhpcy5zaGFkb3dTaWRlPW51bGwsdGhpcy5jb2xvcldyaXRlPSEwLHRoaXMucHJlY2lzaW9uPW51bGwsdGhpcy5wb2x5Z29uT2Zmc2V0PSExLHRoaXMucG9seWdvbk9mZnNldEZhY3Rvcj0wLHRoaXMucG9seWdvbk9mZnNldFVuaXRzPTAsdGhpcy5kaXRoZXJpbmc9ITEsdGhpcy5hbHBoYVRlc3Q9MCx0aGlzLmFscGhhVG9Db3ZlcmFnZT0hMSx0aGlzLnByZW11bHRpcGxpZWRBbHBoYT0hMSx0aGlzLnZpc2libGU9ITAsdGhpcy50b25lTWFwcGVkPSEwLHRoaXMudXNlckRhdGE9e30sdGhpcy52ZXJzaW9uPTB9b25CdWlsZCgpe31vbkJlZm9yZUNvbXBpbGUoKXt9Y3VzdG9tUHJvZ3JhbUNhY2hlS2V5KCl7cmV0dXJuIHRoaXMub25CZWZvcmVDb21waWxlLnRvU3RyaW5nKCl9c2V0VmFsdWVzKHQpe2lmKHZvaWQgMCE9PXQpZm9yKGNvbnN0IGUgaW4gdCl7Y29uc3Qgbj10W2VdO2lmKHZvaWQgMD09PW4pe2NvbnNvbGUud2FybigiVEhSRUUuTWF0ZXJpYWw6ICciK2UrIicgcGFyYW1ldGVyIGlzIHVuZGVmaW5lZC4iKTtjb250aW51ZX1pZigic2hhZGluZyI9PT1lKXtjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6IC5zaGFkaW5nIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSB0aGUgYm9vbGVhbiAuZmxhdFNoYWRpbmcgaW5zdGVhZC4iKSx0aGlzLmZsYXRTaGFkaW5nPTE9PT1uO2NvbnRpbnVlfWNvbnN0IGk9dGhpc1tlXTt2b2lkIDAhPT1pP2kmJmkuaXNDb2xvcj9pLnNldChuKTppJiZpLmlzVmVjdG9yMyYmbiYmbi5pc1ZlY3RvcjM/aS5jb3B5KG4pOnRoaXNbZV09bjpjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6ICciK2UrIicgaXMgbm90IGEgcHJvcGVydHkgb2YgdGhpcyBtYXRlcmlhbC4iKX19dG9KU09OKHQpe2NvbnN0IGU9dm9pZCAwPT09dHx8InN0cmluZyI9PXR5cGVvZiB0O2UmJih0PXt0ZXh0dXJlczp7fSxpbWFnZXM6e319KTtjb25zdCBuPXttZXRhZGF0YTp7dmVyc2lvbjo0LjUsdHlwZToiTWF0ZXJpYWwiLGdlbmVyYXRvcjoiTWF0ZXJpYWwudG9KU09OIn19O2Z1bmN0aW9uIGkodCl7Y29uc3QgZT1bXTtmb3IoY29uc3QgbiBpbiB0KXtjb25zdCBpPXRbbl07ZGVsZXRlIGkubWV0YWRhdGEsZS5wdXNoKGkpfXJldHVybiBlfWlmKG4udXVpZD10aGlzLnV1aWQsbi50eXBlPXRoaXMudHlwZSwiIiE9PXRoaXMubmFtZSYmKG4ubmFtZT10aGlzLm5hbWUpLHRoaXMuY29sb3ImJnRoaXMuY29sb3IuaXNDb2xvciYmKG4uY29sb3I9dGhpcy5jb2xvci5nZXRIZXgoKSksdm9pZCAwIT09dGhpcy5yb3VnaG5lc3MmJihuLnJvdWdobmVzcz10aGlzLnJvdWdobmVzcyksdm9pZCAwIT09dGhpcy5tZXRhbG5lc3MmJihuLm1ldGFsbmVzcz10aGlzLm1ldGFsbmVzcyksdGhpcy5zaGVlbiYmdGhpcy5zaGVlbi5pc0NvbG9yJiYobi5zaGVlbj10aGlzLnNoZWVuLmdldEhleCgpKSx0aGlzLmVtaXNzaXZlJiZ0aGlzLmVtaXNzaXZlLmlzQ29sb3ImJihuLmVtaXNzaXZlPXRoaXMuZW1pc3NpdmUuZ2V0SGV4KCkpLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHkmJjEhPT10aGlzLmVtaXNzaXZlSW50ZW5zaXR5JiYobi5lbWlzc2l2ZUludGVuc2l0eT10aGlzLmVtaXNzaXZlSW50ZW5zaXR5KSx0aGlzLnNwZWN1bGFyJiZ0aGlzLnNwZWN1bGFyLmlzQ29sb3ImJihuLnNwZWN1bGFyPXRoaXMuc3BlY3VsYXIuZ2V0SGV4KCkpLHZvaWQgMCE9PXRoaXMuc3BlY3VsYXJJbnRlbnNpdHkmJihuLnNwZWN1bGFySW50ZW5zaXR5PXRoaXMuc3BlY3VsYXJJbnRlbnNpdHkpLHRoaXMuc3BlY3VsYXJUaW50JiZ0aGlzLnNwZWN1bGFyVGludC5pc0NvbG9yJiYobi5zcGVjdWxhclRpbnQ9dGhpcy5zcGVjdWxhclRpbnQuZ2V0SGV4KCkpLHZvaWQgMCE9PXRoaXMuc2hpbmluZXNzJiYobi5zaGluaW5lc3M9dGhpcy5zaGluaW5lc3MpLHZvaWQgMCE9PXRoaXMuY2xlYXJjb2F0JiYobi5jbGVhcmNvYXQ9dGhpcy5jbGVhcmNvYXQpLHZvaWQgMCE9PXRoaXMuY2xlYXJjb2F0Um91Z2huZXNzJiYobi5jbGVhcmNvYXRSb3VnaG5lc3M9dGhpcy5jbGVhcmNvYXRSb3VnaG5lc3MpLHRoaXMuY2xlYXJjb2F0TWFwJiZ0aGlzLmNsZWFyY29hdE1hcC5pc1RleHR1cmUmJihuLmNsZWFyY29hdE1hcD10aGlzLmNsZWFyY29hdE1hcC50b0pTT04odCkudXVpZCksdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3NNYXAmJnRoaXMuY2xlYXJjb2F0Um91Z2huZXNzTWFwLmlzVGV4dHVyZSYmKG4uY2xlYXJjb2F0Um91Z2huZXNzTWFwPXRoaXMuY2xlYXJjb2F0Um91Z2huZXNzTWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLmNsZWFyY29hdE5vcm1hbE1hcCYmdGhpcy5jbGVhcmNvYXROb3JtYWxNYXAuaXNUZXh0dXJlJiYobi5jbGVhcmNvYXROb3JtYWxNYXA9dGhpcy5jbGVhcmNvYXROb3JtYWxNYXAudG9KU09OKHQpLnV1aWQsbi5jbGVhcmNvYXROb3JtYWxTY2FsZT10aGlzLmNsZWFyY29hdE5vcm1hbFNjYWxlLnRvQXJyYXkoKSksdGhpcy5tYXAmJnRoaXMubWFwLmlzVGV4dHVyZSYmKG4ubWFwPXRoaXMubWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLm1hdGNhcCYmdGhpcy5tYXRjYXAuaXNUZXh0dXJlJiYobi5tYXRjYXA9dGhpcy5tYXRjYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuYWxwaGFNYXAmJnRoaXMuYWxwaGFNYXAuaXNUZXh0dXJlJiYobi5hbHBoYU1hcD10aGlzLmFscGhhTWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLmxpZ2h0TWFwJiZ0aGlzLmxpZ2h0TWFwLmlzVGV4dHVyZSYmKG4ubGlnaHRNYXA9dGhpcy5saWdodE1hcC50b0pTT04odCkudXVpZCxuLmxpZ2h0TWFwSW50ZW5zaXR5PXRoaXMubGlnaHRNYXBJbnRlbnNpdHkpLHRoaXMuYW9NYXAmJnRoaXMuYW9NYXAuaXNUZXh0dXJlJiYobi5hb01hcD10aGlzLmFvTWFwLnRvSlNPTih0KS51dWlkLG4uYW9NYXBJbnRlbnNpdHk9dGhpcy5hb01hcEludGVuc2l0eSksdGhpcy5idW1wTWFwJiZ0aGlzLmJ1bXBNYXAuaXNUZXh0dXJlJiYobi5idW1wTWFwPXRoaXMuYnVtcE1hcC50b0pTT04odCkudXVpZCxuLmJ1bXBTY2FsZT10aGlzLmJ1bXBTY2FsZSksdGhpcy5ub3JtYWxNYXAmJnRoaXMubm9ybWFsTWFwLmlzVGV4dHVyZSYmKG4ubm9ybWFsTWFwPXRoaXMubm9ybWFsTWFwLnRvSlNPTih0KS51dWlkLG4ubm9ybWFsTWFwVHlwZT10aGlzLm5vcm1hbE1hcFR5cGUsbi5ub3JtYWxTY2FsZT10aGlzLm5vcm1hbFNjYWxlLnRvQXJyYXkoKSksdGhpcy5kaXNwbGFjZW1lbnRNYXAmJnRoaXMuZGlzcGxhY2VtZW50TWFwLmlzVGV4dHVyZSYmKG4uZGlzcGxhY2VtZW50TWFwPXRoaXMuZGlzcGxhY2VtZW50TWFwLnRvSlNPTih0KS51dWlkLG4uZGlzcGxhY2VtZW50U2NhbGU9dGhpcy5kaXNwbGFjZW1lbnRTY2FsZSxuLmRpc3BsYWNlbWVudEJpYXM9dGhpcy5kaXNwbGFjZW1lbnRCaWFzKSx0aGlzLnJvdWdobmVzc01hcCYmdGhpcy5yb3VnaG5lc3NNYXAuaXNUZXh0dXJlJiYobi5yb3VnaG5lc3NNYXA9dGhpcy5yb3VnaG5lc3NNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMubWV0YWxuZXNzTWFwJiZ0aGlzLm1ldGFsbmVzc01hcC5pc1RleHR1cmUmJihuLm1ldGFsbmVzc01hcD10aGlzLm1ldGFsbmVzc01hcC50b0pTT04odCkudXVpZCksdGhpcy5lbWlzc2l2ZU1hcCYmdGhpcy5lbWlzc2l2ZU1hcC5pc1RleHR1cmUmJihuLmVtaXNzaXZlTWFwPXRoaXMuZW1pc3NpdmVNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuc3BlY3VsYXJNYXAmJnRoaXMuc3BlY3VsYXJNYXAuaXNUZXh0dXJlJiYobi5zcGVjdWxhck1hcD10aGlzLnNwZWN1bGFyTWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLnNwZWN1bGFySW50ZW5zaXR5TWFwJiZ0aGlzLnNwZWN1bGFySW50ZW5zaXR5TWFwLmlzVGV4dHVyZSYmKG4uc3BlY3VsYXJJbnRlbnNpdHlNYXA9dGhpcy5zcGVjdWxhckludGVuc2l0eU1hcC50b0pTT04odCkudXVpZCksdGhpcy5zcGVjdWxhclRpbnRNYXAmJnRoaXMuc3BlY3VsYXJUaW50TWFwLmlzVGV4dHVyZSYmKG4uc3BlY3VsYXJUaW50TWFwPXRoaXMuc3BlY3VsYXJUaW50TWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLmVudk1hcCYmdGhpcy5lbnZNYXAuaXNUZXh0dXJlJiYobi5lbnZNYXA9dGhpcy5lbnZNYXAudG9KU09OKHQpLnV1aWQsdm9pZCAwIT09dGhpcy5jb21iaW5lJiYobi5jb21iaW5lPXRoaXMuY29tYmluZSkpLHZvaWQgMCE9PXRoaXMuZW52TWFwSW50ZW5zaXR5JiYobi5lbnZNYXBJbnRlbnNpdHk9dGhpcy5lbnZNYXBJbnRlbnNpdHkpLHZvaWQgMCE9PXRoaXMucmVmbGVjdGl2aXR5JiYobi5yZWZsZWN0aXZpdHk9dGhpcy5yZWZsZWN0aXZpdHkpLHZvaWQgMCE9PXRoaXMucmVmcmFjdGlvblJhdGlvJiYobi5yZWZyYWN0aW9uUmF0aW89dGhpcy5yZWZyYWN0aW9uUmF0aW8pLHRoaXMuZ3JhZGllbnRNYXAmJnRoaXMuZ3JhZGllbnRNYXAuaXNUZXh0dXJlJiYobi5ncmFkaWVudE1hcD10aGlzLmdyYWRpZW50TWFwLnRvSlNPTih0KS51dWlkKSx2b2lkIDAhPT10aGlzLnRyYW5zbWlzc2lvbiYmKG4udHJhbnNtaXNzaW9uPXRoaXMudHJhbnNtaXNzaW9uKSx0aGlzLnRyYW5zbWlzc2lvbk1hcCYmdGhpcy50cmFuc21pc3Npb25NYXAuaXNUZXh0dXJlJiYobi50cmFuc21pc3Npb25NYXA9dGhpcy50cmFuc21pc3Npb25NYXAudG9KU09OKHQpLnV1aWQpLHZvaWQgMCE9PXRoaXMudGhpY2tuZXNzJiYobi50aGlja25lc3M9dGhpcy50aGlja25lc3MpLHRoaXMudGhpY2tuZXNzTWFwJiZ0aGlzLnRoaWNrbmVzc01hcC5pc1RleHR1cmUmJihuLnRoaWNrbmVzc01hcD10aGlzLnRoaWNrbmVzc01hcC50b0pTT04odCkudXVpZCksdm9pZCAwIT09dGhpcy5hdHRlbnVhdGlvbkRpc3RhbmNlJiYobi5hdHRlbnVhdGlvbkRpc3RhbmNlPXRoaXMuYXR0ZW51YXRpb25EaXN0YW5jZSksdm9pZCAwIT09dGhpcy5hdHRlbnVhdGlvblRpbnQmJihuLmF0dGVudWF0aW9uVGludD10aGlzLmF0dGVudWF0aW9uVGludC5nZXRIZXgoKSksdm9pZCAwIT09dGhpcy5zaXplJiYobi5zaXplPXRoaXMuc2l6ZSksbnVsbCE9PXRoaXMuc2hhZG93U2lkZSYmKG4uc2hhZG93U2lkZT10aGlzLnNoYWRvd1NpZGUpLHZvaWQgMCE9PXRoaXMuc2l6ZUF0dGVudWF0aW9uJiYobi5zaXplQXR0ZW51YXRpb249dGhpcy5zaXplQXR0ZW51YXRpb24pLDEhPT10aGlzLmJsZW5kaW5nJiYobi5ibGVuZGluZz10aGlzLmJsZW5kaW5nKSwwIT09dGhpcy5zaWRlJiYobi5zaWRlPXRoaXMuc2lkZSksdGhpcy52ZXJ0ZXhDb2xvcnMmJihuLnZlcnRleENvbG9ycz0hMCksdGhpcy5vcGFjaXR5PDEmJihuLm9wYWNpdHk9dGhpcy5vcGFjaXR5KSwhMD09PXRoaXMudHJhbnNwYXJlbnQmJihuLnRyYW5zcGFyZW50PXRoaXMudHJhbnNwYXJlbnQpLG4uZGVwdGhGdW5jPXRoaXMuZGVwdGhGdW5jLG4uZGVwdGhUZXN0PXRoaXMuZGVwdGhUZXN0LG4uZGVwdGhXcml0ZT10aGlzLmRlcHRoV3JpdGUsbi5jb2xvcldyaXRlPXRoaXMuY29sb3JXcml0ZSxuLnN0ZW5jaWxXcml0ZT10aGlzLnN0ZW5jaWxXcml0ZSxuLnN0ZW5jaWxXcml0ZU1hc2s9dGhpcy5zdGVuY2lsV3JpdGVNYXNrLG4uc3RlbmNpbEZ1bmM9dGhpcy5zdGVuY2lsRnVuYyxuLnN0ZW5jaWxSZWY9dGhpcy5zdGVuY2lsUmVmLG4uc3RlbmNpbEZ1bmNNYXNrPXRoaXMuc3RlbmNpbEZ1bmNNYXNrLG4uc3RlbmNpbEZhaWw9dGhpcy5zdGVuY2lsRmFpbCxuLnN0ZW5jaWxaRmFpbD10aGlzLnN0ZW5jaWxaRmFpbCxuLnN0ZW5jaWxaUGFzcz10aGlzLnN0ZW5jaWxaUGFzcyx0aGlzLnJvdGF0aW9uJiYwIT09dGhpcy5yb3RhdGlvbiYmKG4ucm90YXRpb249dGhpcy5yb3RhdGlvbiksITA9PT10aGlzLnBvbHlnb25PZmZzZXQmJihuLnBvbHlnb25PZmZzZXQ9ITApLDAhPT10aGlzLnBvbHlnb25PZmZzZXRGYWN0b3ImJihuLnBvbHlnb25PZmZzZXRGYWN0b3I9dGhpcy5wb2x5Z29uT2Zmc2V0RmFjdG9yKSwwIT09dGhpcy5wb2x5Z29uT2Zmc2V0VW5pdHMmJihuLnBvbHlnb25PZmZzZXRVbml0cz10aGlzLnBvbHlnb25PZmZzZXRVbml0cyksdGhpcy5saW5ld2lkdGgmJjEhPT10aGlzLmxpbmV3aWR0aCYmKG4ubGluZXdpZHRoPXRoaXMubGluZXdpZHRoKSx2b2lkIDAhPT10aGlzLmRhc2hTaXplJiYobi5kYXNoU2l6ZT10aGlzLmRhc2hTaXplKSx2b2lkIDAhPT10aGlzLmdhcFNpemUmJihuLmdhcFNpemU9dGhpcy5nYXBTaXplKSx2b2lkIDAhPT10aGlzLnNjYWxlJiYobi5zY2FsZT10aGlzLnNjYWxlKSwhMD09PXRoaXMuZGl0aGVyaW5nJiYobi5kaXRoZXJpbmc9ITApLHRoaXMuYWxwaGFUZXN0PjAmJihuLmFscGhhVGVzdD10aGlzLmFscGhhVGVzdCksITA9PT10aGlzLmFscGhhVG9Db3ZlcmFnZSYmKG4uYWxwaGFUb0NvdmVyYWdlPXRoaXMuYWxwaGFUb0NvdmVyYWdlKSwhMD09PXRoaXMucHJlbXVsdGlwbGllZEFscGhhJiYobi5wcmVtdWx0aXBsaWVkQWxwaGE9dGhpcy5wcmVtdWx0aXBsaWVkQWxwaGEpLCEwPT09dGhpcy53aXJlZnJhbWUmJihuLndpcmVmcmFtZT10aGlzLndpcmVmcmFtZSksdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg+MSYmKG4ud2lyZWZyYW1lTGluZXdpZHRoPXRoaXMud2lyZWZyYW1lTGluZXdpZHRoKSwicm91bmQiIT09dGhpcy53aXJlZnJhbWVMaW5lY2FwJiYobi53aXJlZnJhbWVMaW5lY2FwPXRoaXMud2lyZWZyYW1lTGluZWNhcCksInJvdW5kIiE9PXRoaXMud2lyZWZyYW1lTGluZWpvaW4mJihuLndpcmVmcmFtZUxpbmVqb2luPXRoaXMud2lyZWZyYW1lTGluZWpvaW4pLCEwPT09dGhpcy5mbGF0U2hhZGluZyYmKG4uZmxhdFNoYWRpbmc9dGhpcy5mbGF0U2hhZGluZyksITE9PT10aGlzLnZpc2libGUmJihuLnZpc2libGU9ITEpLCExPT09dGhpcy50b25lTWFwcGVkJiYobi50b25lTWFwcGVkPSExKSwie30iIT09SlNPTi5zdHJpbmdpZnkodGhpcy51c2VyRGF0YSkmJihuLnVzZXJEYXRhPXRoaXMudXNlckRhdGEpLGUpe2NvbnN0IGU9aSh0LnRleHR1cmVzKSxyPWkodC5pbWFnZXMpO2UubGVuZ3RoPjAmJihuLnRleHR1cmVzPWUpLHIubGVuZ3RoPjAmJihuLmltYWdlcz1yKX1yZXR1cm4gbn1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX1jb3B5KHQpe3RoaXMubmFtZT10Lm5hbWUsdGhpcy5mb2c9dC5mb2csdGhpcy5ibGVuZGluZz10LmJsZW5kaW5nLHRoaXMuc2lkZT10LnNpZGUsdGhpcy52ZXJ0ZXhDb2xvcnM9dC52ZXJ0ZXhDb2xvcnMsdGhpcy5vcGFjaXR5PXQub3BhY2l0eSx0aGlzLnRyYW5zcGFyZW50PXQudHJhbnNwYXJlbnQsdGhpcy5ibGVuZFNyYz10LmJsZW5kU3JjLHRoaXMuYmxlbmREc3Q9dC5ibGVuZERzdCx0aGlzLmJsZW5kRXF1YXRpb249dC5ibGVuZEVxdWF0aW9uLHRoaXMuYmxlbmRTcmNBbHBoYT10LmJsZW5kU3JjQWxwaGEsdGhpcy5ibGVuZERzdEFscGhhPXQuYmxlbmREc3RBbHBoYSx0aGlzLmJsZW5kRXF1YXRpb25BbHBoYT10LmJsZW5kRXF1YXRpb25BbHBoYSx0aGlzLmRlcHRoRnVuYz10LmRlcHRoRnVuYyx0aGlzLmRlcHRoVGVzdD10LmRlcHRoVGVzdCx0aGlzLmRlcHRoV3JpdGU9dC5kZXB0aFdyaXRlLHRoaXMuc3RlbmNpbFdyaXRlTWFzaz10LnN0ZW5jaWxXcml0ZU1hc2ssdGhpcy5zdGVuY2lsRnVuYz10LnN0ZW5jaWxGdW5jLHRoaXMuc3RlbmNpbFJlZj10LnN0ZW5jaWxSZWYsdGhpcy5zdGVuY2lsRnVuY01hc2s9dC5zdGVuY2lsRnVuY01hc2ssdGhpcy5zdGVuY2lsRmFpbD10LnN0ZW5jaWxGYWlsLHRoaXMuc3RlbmNpbFpGYWlsPXQuc3RlbmNpbFpGYWlsLHRoaXMuc3RlbmNpbFpQYXNzPXQuc3RlbmNpbFpQYXNzLHRoaXMuc3RlbmNpbFdyaXRlPXQuc3RlbmNpbFdyaXRlO2NvbnN0IGU9dC5jbGlwcGluZ1BsYW5lcztsZXQgbj1udWxsO2lmKG51bGwhPT1lKXtjb25zdCB0PWUubGVuZ3RoO249bmV3IEFycmF5KHQpO2ZvcihsZXQgaT0wO2khPT10OysraSluW2ldPWVbaV0uY2xvbmUoKX1yZXR1cm4gdGhpcy5jbGlwcGluZ1BsYW5lcz1uLHRoaXMuY2xpcEludGVyc2VjdGlvbj10LmNsaXBJbnRlcnNlY3Rpb24sdGhpcy5jbGlwU2hhZG93cz10LmNsaXBTaGFkb3dzLHRoaXMuc2hhZG93U2lkZT10LnNoYWRvd1NpZGUsdGhpcy5jb2xvcldyaXRlPXQuY29sb3JXcml0ZSx0aGlzLnByZWNpc2lvbj10LnByZWNpc2lvbix0aGlzLnBvbHlnb25PZmZzZXQ9dC5wb2x5Z29uT2Zmc2V0LHRoaXMucG9seWdvbk9mZnNldEZhY3Rvcj10LnBvbHlnb25PZmZzZXRGYWN0b3IsdGhpcy5wb2x5Z29uT2Zmc2V0VW5pdHM9dC5wb2x5Z29uT2Zmc2V0VW5pdHMsdGhpcy5kaXRoZXJpbmc9dC5kaXRoZXJpbmcsdGhpcy5hbHBoYVRlc3Q9dC5hbHBoYVRlc3QsdGhpcy5hbHBoYVRvQ292ZXJhZ2U9dC5hbHBoYVRvQ292ZXJhZ2UsdGhpcy5wcmVtdWx0aXBsaWVkQWxwaGE9dC5wcmVtdWx0aXBsaWVkQWxwaGEsdGhpcy52aXNpYmxlPXQudmlzaWJsZSx0aGlzLnRvbmVNYXBwZWQ9dC50b25lTWFwcGVkLHRoaXMudXNlckRhdGE9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0LnVzZXJEYXRhKSksdGhpc31kaXNwb3NlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJkaXNwb3NlIn0pfXNldCBuZWVkc1VwZGF0ZSh0KXshMD09PXQmJnRoaXMudmVyc2lvbisrfX10NHQucHJvdG90eXBlLmlzTWF0ZXJpYWw9ITA7Y29uc3QgZTR0PXthbGljZWJsdWU6MTU3OTIzODMsYW50aXF1ZXdoaXRlOjE2NDQ0Mzc1LGFxdWE6NjU1MzUsYXF1YW1hcmluZTo4Mzg4NTY0LGF6dXJlOjE1Nzk0MTc1LGJlaWdlOjE2MTE5MjYwLGJpc3F1ZToxNjc3MDI0NCxibGFjazowLGJsYW5jaGVkYWxtb25kOjE2NzcyMDQ1LGJsdWU6MjU1LGJsdWV2aW9sZXQ6OTA1NTIwMixicm93bjoxMDgyNDIzNCxidXJseXdvb2Q6MTQ1OTYyMzEsY2FkZXRibHVlOjYyNjY1MjgsY2hhcnRyZXVzZTo4Mzg4MzUyLGNob2NvbGF0ZToxMzc4OTQ3MCxjb3JhbDoxNjc0NDI3Mixjb3JuZmxvd2VyYmx1ZTo2NTkxOTgxLGNvcm5zaWxrOjE2Nzc1Mzg4LGNyaW1zb246MTQ0MjMxMDAsY3lhbjo2NTUzNSxkYXJrYmx1ZToxMzksZGFya2N5YW46MzU3MjMsZGFya2dvbGRlbnJvZDoxMjA5MjkzOSxkYXJrZ3JheToxMTExOTAxNyxkYXJrZ3JlZW46MjU2MDAsZGFya2dyZXk6MTExMTkwMTcsZGFya2toYWtpOjEyNDMzMjU5LGRhcmttYWdlbnRhOjkxMDk2NDMsZGFya29saXZlZ3JlZW46NTU5Nzk5OSxkYXJrb3JhbmdlOjE2NzQ3NTIwLGRhcmtvcmNoaWQ6MTAwNDAwMTIsZGFya3JlZDo5MTA5NTA0LGRhcmtzYWxtb246MTUzMDg0MTAsZGFya3NlYWdyZWVuOjk0MTk5MTksZGFya3NsYXRlYmx1ZTo0NzM0MzQ3LGRhcmtzbGF0ZWdyYXk6MzEwMDQ5NSxkYXJrc2xhdGVncmV5OjMxMDA0OTUsZGFya3R1cnF1b2lzZTo1Mjk0NSxkYXJrdmlvbGV0Ojk2OTk1MzksZGVlcHBpbms6MTY3MTY5NDcsZGVlcHNreWJsdWU6NDkxNTEsZGltZ3JheTo2OTA4MjY1LGRpbWdyZXk6NjkwODI2NSxkb2RnZXJibHVlOjIwMDMxOTksZmlyZWJyaWNrOjExNjc0MTQ2LGZsb3JhbHdoaXRlOjE2Nzc1OTIwLGZvcmVzdGdyZWVuOjIyNjM4NDIsZnVjaHNpYToxNjcxMTkzNSxnYWluc2Jvcm86MTQ0NzQ0NjAsZ2hvc3R3aGl0ZToxNjMxNjY3MSxnb2xkOjE2NzY2NzIwLGdvbGRlbnJvZDoxNDMyOTEyMCxncmF5Ojg0MjE1MDQsZ3JlZW46MzI3NjgsZ3JlZW55ZWxsb3c6MTE0MDMwNTUsZ3JleTo4NDIxNTA0LGhvbmV5ZGV3OjE1Nzk0MTYwLGhvdHBpbms6MTY3Mzg3NDAsaW5kaWFucmVkOjEzNDU4NTI0LGluZGlnbzo0OTE1MzMwLGl2b3J5OjE2Nzc3MjAwLGtoYWtpOjE1Nzg3NjYwLGxhdmVuZGVyOjE1MTMyNDEwLGxhdmVuZGVyYmx1c2g6MTY3NzMzNjUsbGF3bmdyZWVuOjgxOTA5NzYsbGVtb25jaGlmZm9uOjE2Nzc1ODg1LGxpZ2h0Ymx1ZToxMTM5MzI1NCxsaWdodGNvcmFsOjE1NzYxNTM2LGxpZ2h0Y3lhbjoxNDc0NTU5OSxsaWdodGdvbGRlbnJvZHllbGxvdzoxNjQ0ODIxMCxsaWdodGdyYXk6MTM4ODIzMjMsbGlnaHRncmVlbjo5NDk4MjU2LGxpZ2h0Z3JleToxMzg4MjMyMyxsaWdodHBpbms6MTY3NTg0NjUsbGlnaHRzYWxtb246MTY3NTI3NjIsbGlnaHRzZWFncmVlbjoyMTQyODkwLGxpZ2h0c2t5Ymx1ZTo4OTAwMzQ2LGxpZ2h0c2xhdGVncmF5Ojc4MzM3NTMsbGlnaHRzbGF0ZWdyZXk6NzgzMzc1MyxsaWdodHN0ZWVsYmx1ZToxMTU4NDczNCxsaWdodHllbGxvdzoxNjc3NzE4NCxsaW1lOjY1MjgwLGxpbWVncmVlbjozMzI5MzMwLGxpbmVuOjE2NDQ1NjcwLG1hZ2VudGE6MTY3MTE5MzUsbWFyb29uOjgzODg2MDgsbWVkaXVtYXF1YW1hcmluZTo2NzM3MzIyLG1lZGl1bWJsdWU6MjA1LG1lZGl1bW9yY2hpZDoxMjIxMTY2NyxtZWRpdW1wdXJwbGU6OTY2MjY4MyxtZWRpdW1zZWFncmVlbjozOTc4MDk3LG1lZGl1bXNsYXRlYmx1ZTo4MDg3NzkwLG1lZGl1bXNwcmluZ2dyZWVuOjY0MTU0LG1lZGl1bXR1cnF1b2lzZTo0NzcyMzAwLG1lZGl1bXZpb2xldHJlZDoxMzA0NzE3MyxtaWRuaWdodGJsdWU6MTY0NDkxMixtaW50Y3JlYW06MTYxMjE4NTAsbWlzdHlyb3NlOjE2NzcwMjczLG1vY2Nhc2luOjE2NzcwMjI5LG5hdmFqb3doaXRlOjE2NzY4Njg1LG5hdnk6MTI4LG9sZGxhY2U6MTY2NDM1NTgsb2xpdmU6ODQyMTM3NixvbGl2ZWRyYWI6NzA0ODczOSxvcmFuZ2U6MTY3NTM5MjAsb3JhbmdlcmVkOjE2NzI5MzQ0LG9yY2hpZDoxNDMxNTczNCxwYWxlZ29sZGVucm9kOjE1NjU3MTMwLHBhbGVncmVlbjoxMDAyNTg4MCxwYWxldHVycXVvaXNlOjExNTI5OTY2LHBhbGV2aW9sZXRyZWQ6MTQzODEyMDMscGFwYXlhd2hpcDoxNjc3MzA3NyxwZWFjaHB1ZmY6MTY3Njc2NzMscGVydToxMzQ2ODk5MSxwaW5rOjE2NzYxMDM1LHBsdW06MTQ1MjQ2MzcscG93ZGVyYmx1ZToxMTU5MTkxMCxwdXJwbGU6ODM4ODczNixyZWJlY2NhcHVycGxlOjY2OTc4ODEscmVkOjE2NzExNjgwLHJvc3licm93bjoxMjM1NzUxOSxyb3lhbGJsdWU6NDI4Njk0NSxzYWRkbGVicm93bjo5MTI3MTg3LHNhbG1vbjoxNjQxNjg4MixzYW5keWJyb3duOjE2MDMyODY0LHNlYWdyZWVuOjMwNTAzMjcsc2Vhc2hlbGw6MTY3NzQ2Mzgsc2llbm5hOjEwNTA2Nzk3LHNpbHZlcjoxMjYzMjI1Nixza3libHVlOjg5MDAzMzEsc2xhdGVibHVlOjY5NzAwNjEsc2xhdGVncmF5OjczNzI5NDQsc2xhdGVncmV5OjczNzI5NDQsc25vdzoxNjc3NTkzMCxzcHJpbmdncmVlbjo2NTQwNyxzdGVlbGJsdWU6NDYyMDk4MCx0YW46MTM4MDg3ODAsdGVhbDozMjg5Nix0aGlzdGxlOjE0MjA0ODg4LHRvbWF0bzoxNjczNzA5NSx0dXJxdW9pc2U6NDI1MTg1Nix2aW9sZXQ6MTU2MzEwODYsd2hlYXQ6MTYxMTMzMzEsd2hpdGU6MTY3NzcyMTUsd2hpdGVzbW9rZToxNjExOTI4NSx5ZWxsb3c6MTY3NzY5NjAseWVsbG93Z3JlZW46MTAxNDUwNzR9LG40dD17aDowLHM6MCxsOjB9LGk0dD17aDowLHM6MCxsOjB9O2Z1bmN0aW9uIHI0dCh0LGUsbil7cmV0dXJuIG48MCYmKG4rPTEpLG4+MSYmKG4tPTEpLG48MS82P3QrNiooZS10KSpuOm48LjU/ZTpuPDIvMz90KzYqKGUtdCkqKDIvMy1uKTp0fWZ1bmN0aW9uIG80dCh0KXtyZXR1cm4gdDwuMDQwNDU/LjA3NzM5OTM4MDgqdDpNYXRoLnBvdyguOTQ3ODY3Mjk4Nip0Ky4wNTIxMzI3MDE0LDIuNCl9ZnVuY3Rpb24gYTR0KHQpe3JldHVybiB0PC4wMDMxMzA4PzEyLjkyKnQ6MS4wNTUqTWF0aC5wb3codCwuNDE2NjYpLS4wNTV9Y2xhc3MgczR0e2NvbnN0cnVjdG9yKHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09ZSYmdm9pZCAwPT09bj90aGlzLnNldCh0KTp0aGlzLnNldFJHQih0LGUsbil9c2V0KHQpe3JldHVybiB0JiZ0LmlzQ29sb3I/dGhpcy5jb3B5KHQpOiJudW1iZXIiPT10eXBlb2YgdD90aGlzLnNldEhleCh0KToic3RyaW5nIj09dHlwZW9mIHQmJnRoaXMuc2V0U3R5bGUodCksdGhpc31zZXRTY2FsYXIodCl7cmV0dXJuIHRoaXMucj10LHRoaXMuZz10LHRoaXMuYj10LHRoaXN9c2V0SGV4KHQpe3JldHVybiB0PU1hdGguZmxvb3IodCksdGhpcy5yPSh0Pj4xNiYyNTUpLzI1NSx0aGlzLmc9KHQ+PjgmMjU1KS8yNTUsdGhpcy5iPSgyNTUmdCkvMjU1LHRoaXN9c2V0UkdCKHQsZSxuKXtyZXR1cm4gdGhpcy5yPXQsdGhpcy5nPWUsdGhpcy5iPW4sdGhpc31zZXRIU0wodCxlLG4pe2lmKHQ9bDV0KHQsMSksZT1zNXQoZSwwLDEpLG49czV0KG4sMCwxKSwwPT09ZSl0aGlzLnI9dGhpcy5nPXRoaXMuYj1uO2Vsc2V7Y29uc3QgaT1uPD0uNT9uKigxK2UpOm4rZS1uKmUscj0yKm4taTt0aGlzLnI9cjR0KHIsaSx0KzEvMyksdGhpcy5nPXI0dChyLGksdCksdGhpcy5iPXI0dChyLGksdC0xLzMpfXJldHVybiB0aGlzfXNldFN0eWxlKHQpe2Z1bmN0aW9uIGUoZSl7dm9pZCAwIT09ZSYmcGFyc2VGbG9hdChlKTwxJiZjb25zb2xlLndhcm4oIlRIUkVFLkNvbG9yOiBBbHBoYSBjb21wb25lbnQgb2YgIit0KyIgd2lsbCBiZSBpZ25vcmVkLiIpfWxldCBuO2lmKG49L14oKD86cmdifGhzbClhPylcKChbXlwpXSopXCkvLmV4ZWModCkpe2xldCB0O2NvbnN0IGk9blsyXTtzd2l0Y2goblsxXSl7Y2FzZSJyZ2IiOmNhc2UicmdiYSI6aWYodD0vXlxzKihcZCspXHMqLFxzKihcZCspXHMqLFxzKihcZCspXHMqKD86LFxzKihcZCpcLj9cZCspXHMqKT8kLy5leGVjKGkpKXJldHVybiB0aGlzLnI9TWF0aC5taW4oMjU1LHBhcnNlSW50KHRbMV0sMTApKS8yNTUsdGhpcy5nPU1hdGgubWluKDI1NSxwYXJzZUludCh0WzJdLDEwKSkvMjU1LHRoaXMuYj1NYXRoLm1pbigyNTUscGFyc2VJbnQodFszXSwxMCkpLzI1NSxlKHRbNF0pLHRoaXM7aWYodD0vXlxzKihcZCspXCVccyosXHMqKFxkKylcJVxzKixccyooXGQrKVwlXHMqKD86LFxzKihcZCpcLj9cZCspXHMqKT8kLy5leGVjKGkpKXJldHVybiB0aGlzLnI9TWF0aC5taW4oMTAwLHBhcnNlSW50KHRbMV0sMTApKS8xMDAsdGhpcy5nPU1hdGgubWluKDEwMCxwYXJzZUludCh0WzJdLDEwKSkvMTAwLHRoaXMuYj1NYXRoLm1pbigxMDAscGFyc2VJbnQodFszXSwxMCkpLzEwMCxlKHRbNF0pLHRoaXM7YnJlYWs7Y2FzZSJoc2wiOmNhc2UiaHNsYSI6aWYodD0vXlxzKihcZCpcLj9cZCspXHMqLFxzKihcZCspXCVccyosXHMqKFxkKylcJVxzKig/OixccyooXGQqXC4/XGQrKVxzKik/JC8uZXhlYyhpKSl7Y29uc3Qgbj1wYXJzZUZsb2F0KHRbMV0pLzM2MCxpPXBhcnNlSW50KHRbMl0sMTApLzEwMCxyPXBhcnNlSW50KHRbM10sMTApLzEwMDtyZXR1cm4gZSh0WzRdKSx0aGlzLnNldEhTTChuLGkscil9fX1lbHNlIGlmKG49L15cIyhbQS1GYS1mXGRdKykkLy5leGVjKHQpKXtjb25zdCB0PW5bMV0sZT10Lmxlbmd0aDtpZigzPT09ZSlyZXR1cm4gdGhpcy5yPXBhcnNlSW50KHQuY2hhckF0KDApK3QuY2hhckF0KDApLDE2KS8yNTUsdGhpcy5nPXBhcnNlSW50KHQuY2hhckF0KDEpK3QuY2hhckF0KDEpLDE2KS8yNTUsdGhpcy5iPXBhcnNlSW50KHQuY2hhckF0KDIpK3QuY2hhckF0KDIpLDE2KS8yNTUsdGhpcztpZig2PT09ZSlyZXR1cm4gdGhpcy5yPXBhcnNlSW50KHQuY2hhckF0KDApK3QuY2hhckF0KDEpLDE2KS8yNTUsdGhpcy5nPXBhcnNlSW50KHQuY2hhckF0KDIpK3QuY2hhckF0KDMpLDE2KS8yNTUsdGhpcy5iPXBhcnNlSW50KHQuY2hhckF0KDQpK3QuY2hhckF0KDUpLDE2KS8yNTUsdGhpc31yZXR1cm4gdCYmdC5sZW5ndGg+MD90aGlzLnNldENvbG9yTmFtZSh0KTp0aGlzfXNldENvbG9yTmFtZSh0KXtjb25zdCBlPWU0dFt0LnRvTG93ZXJDYXNlKCldO3JldHVybiB2b2lkIDAhPT1lP3RoaXMuc2V0SGV4KGUpOmNvbnNvbGUud2FybigiVEhSRUUuQ29sb3I6IFVua25vd24gY29sb3IgIit0KSx0aGlzfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMucix0aGlzLmcsdGhpcy5iKX1jb3B5KHQpe3JldHVybiB0aGlzLnI9dC5yLHRoaXMuZz10LmcsdGhpcy5iPXQuYix0aGlzfWNvcHlHYW1tYVRvTGluZWFyKHQsZT0yKXtyZXR1cm4gdGhpcy5yPU1hdGgucG93KHQucixlKSx0aGlzLmc9TWF0aC5wb3codC5nLGUpLHRoaXMuYj1NYXRoLnBvdyh0LmIsZSksdGhpc31jb3B5TGluZWFyVG9HYW1tYSh0LGU9Mil7Y29uc3Qgbj1lPjA/MS9lOjE7cmV0dXJuIHRoaXMucj1NYXRoLnBvdyh0LnIsbiksdGhpcy5nPU1hdGgucG93KHQuZyxuKSx0aGlzLmI9TWF0aC5wb3codC5iLG4pLHRoaXN9Y29udmVydEdhbW1hVG9MaW5lYXIodCl7cmV0dXJuIHRoaXMuY29weUdhbW1hVG9MaW5lYXIodGhpcyx0KSx0aGlzfWNvbnZlcnRMaW5lYXJUb0dhbW1hKHQpe3JldHVybiB0aGlzLmNvcHlMaW5lYXJUb0dhbW1hKHRoaXMsdCksdGhpc31jb3B5U1JHQlRvTGluZWFyKHQpe3JldHVybiB0aGlzLnI9bzR0KHQuciksdGhpcy5nPW80dCh0LmcpLHRoaXMuYj1vNHQodC5iKSx0aGlzfWNvcHlMaW5lYXJUb1NSR0IodCl7cmV0dXJuIHRoaXMucj1hNHQodC5yKSx0aGlzLmc9YTR0KHQuZyksdGhpcy5iPWE0dCh0LmIpLHRoaXN9Y29udmVydFNSR0JUb0xpbmVhcigpe3JldHVybiB0aGlzLmNvcHlTUkdCVG9MaW5lYXIodGhpcyksdGhpc31jb252ZXJ0TGluZWFyVG9TUkdCKCl7cmV0dXJuIHRoaXMuY29weUxpbmVhclRvU1JHQih0aGlzKSx0aGlzfWdldEhleCgpe3JldHVybiAyNTUqdGhpcy5yPDwxNl4yNTUqdGhpcy5nPDw4XjI1NSp0aGlzLmI8PDB9Z2V0SGV4U3RyaW5nKCl7cmV0dXJuKCIwMDAwMDAiK3RoaXMuZ2V0SGV4KCkudG9TdHJpbmcoMTYpKS5zbGljZSgtNil9Z2V0SFNMKHQpe2NvbnN0IGU9dGhpcy5yLG49dGhpcy5nLGk9dGhpcy5iLHI9TWF0aC5tYXgoZSxuLGkpLG89TWF0aC5taW4oZSxuLGkpO2xldCBhLHM7Y29uc3QgbD0obytyKS8yO2lmKG89PT1yKWE9MCxzPTA7ZWxzZXtjb25zdCB0PXItbztzd2l0Y2gocz1sPD0uNT90LyhyK28pOnQvKDItci1vKSxyKXtjYXNlIGU6YT0obi1pKS90KyhuPGk/NjowKTticmVhaztjYXNlIG46YT0oaS1lKS90KzI7YnJlYWs7Y2FzZSBpOmE9KGUtbikvdCs0fWEvPTZ9cmV0dXJuIHQuaD1hLHQucz1zLHQubD1sLHR9Z2V0U3R5bGUoKXtyZXR1cm4icmdiKCIrKDI1NSp0aGlzLnJ8MCkrIiwiKygyNTUqdGhpcy5nfDApKyIsIisoMjU1KnRoaXMuYnwwKSsiKSJ9b2Zmc2V0SFNMKHQsZSxuKXtyZXR1cm4gdGhpcy5nZXRIU0wobjR0KSxuNHQuaCs9dCxuNHQucys9ZSxuNHQubCs9bix0aGlzLnNldEhTTChuNHQuaCxuNHQucyxuNHQubCksdGhpc31hZGQodCl7cmV0dXJuIHRoaXMucis9dC5yLHRoaXMuZys9dC5nLHRoaXMuYis9dC5iLHRoaXN9YWRkQ29sb3JzKHQsZSl7cmV0dXJuIHRoaXMucj10LnIrZS5yLHRoaXMuZz10LmcrZS5nLHRoaXMuYj10LmIrZS5iLHRoaXN9YWRkU2NhbGFyKHQpe3JldHVybiB0aGlzLnIrPXQsdGhpcy5nKz10LHRoaXMuYis9dCx0aGlzfXN1Yih0KXtyZXR1cm4gdGhpcy5yPU1hdGgubWF4KDAsdGhpcy5yLXQuciksdGhpcy5nPU1hdGgubWF4KDAsdGhpcy5nLXQuZyksdGhpcy5iPU1hdGgubWF4KDAsdGhpcy5iLXQuYiksdGhpc31tdWx0aXBseSh0KXtyZXR1cm4gdGhpcy5yKj10LnIsdGhpcy5nKj10LmcsdGhpcy5iKj10LmIsdGhpc31tdWx0aXBseVNjYWxhcih0KXtyZXR1cm4gdGhpcy5yKj10LHRoaXMuZyo9dCx0aGlzLmIqPXQsdGhpc31sZXJwKHQsZSl7cmV0dXJuIHRoaXMucis9KHQuci10aGlzLnIpKmUsdGhpcy5nKz0odC5nLXRoaXMuZykqZSx0aGlzLmIrPSh0LmItdGhpcy5iKSplLHRoaXN9bGVycENvbG9ycyh0LGUsbil7cmV0dXJuIHRoaXMucj10LnIrKGUuci10LnIpKm4sdGhpcy5nPXQuZysoZS5nLXQuZykqbix0aGlzLmI9dC5iKyhlLmItdC5iKSpuLHRoaXN9bGVycEhTTCh0LGUpe3RoaXMuZ2V0SFNMKG40dCksdC5nZXRIU0woaTR0KTtjb25zdCBuPWM1dChuNHQuaCxpNHQuaCxlKSxpPWM1dChuNHQucyxpNHQucyxlKSxyPWM1dChuNHQubCxpNHQubCxlKTtyZXR1cm4gdGhpcy5zZXRIU0wobixpLHIpLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0LnI9PT10aGlzLnImJnQuZz09PXRoaXMuZyYmdC5iPT09dGhpcy5ifWZyb21BcnJheSh0LGU9MCl7cmV0dXJuIHRoaXMucj10W2VdLHRoaXMuZz10W2UrMV0sdGhpcy5iPXRbZSsyXSx0aGlzfXRvQXJyYXkodD1bXSxlPTApe3JldHVybiB0W2VdPXRoaXMucix0W2UrMV09dGhpcy5nLHRbZSsyXT10aGlzLmIsdH1mcm9tQnVmZmVyQXR0cmlidXRlKHQsZSl7cmV0dXJuIHRoaXMucj10LmdldFgoZSksdGhpcy5nPXQuZ2V0WShlKSx0aGlzLmI9dC5nZXRaKGUpLCEwPT09dC5ub3JtYWxpemVkJiYodGhpcy5yLz0yNTUsdGhpcy5nLz0yNTUsdGhpcy5iLz0yNTUpLHRoaXN9dG9KU09OKCl7cmV0dXJuIHRoaXMuZ2V0SGV4KCl9fXM0dC5OQU1FUz1lNHQsczR0LnByb3RvdHlwZS5pc0NvbG9yPSEwLHM0dC5wcm90b3R5cGUucj0xLHM0dC5wcm90b3R5cGUuZz0xLHM0dC5wcm90b3R5cGUuYj0xO2NsYXNzIGw0dCBleHRlbmRzIHQ0dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTWVzaEJhc2ljTWF0ZXJpYWwiLHRoaXMuY29sb3I9bmV3IHM0dCgxNjc3NzIxNSksdGhpcy5tYXA9bnVsbCx0aGlzLmxpZ2h0TWFwPW51bGwsdGhpcy5saWdodE1hcEludGVuc2l0eT0xLHRoaXMuYW9NYXA9bnVsbCx0aGlzLmFvTWFwSW50ZW5zaXR5PTEsdGhpcy5zcGVjdWxhck1hcD1udWxsLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLmVudk1hcD1udWxsLHRoaXMuY29tYmluZT0wLHRoaXMucmVmbGVjdGl2aXR5PTEsdGhpcy5yZWZyYWN0aW9uUmF0aW89Ljk4LHRoaXMud2lyZWZyYW1lPSExLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPTEsdGhpcy53aXJlZnJhbWVMaW5lY2FwPSJyb3VuZCIsdGhpcy53aXJlZnJhbWVMaW5lam9pbj0icm91bmQiLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubWFwPXQubWFwLHRoaXMubGlnaHRNYXA9dC5saWdodE1hcCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PXQubGlnaHRNYXBJbnRlbnNpdHksdGhpcy5hb01hcD10LmFvTWFwLHRoaXMuYW9NYXBJbnRlbnNpdHk9dC5hb01hcEludGVuc2l0eSx0aGlzLnNwZWN1bGFyTWFwPXQuc3BlY3VsYXJNYXAsdGhpcy5hbHBoYU1hcD10LmFscGhhTWFwLHRoaXMuZW52TWFwPXQuZW52TWFwLHRoaXMuY29tYmluZT10LmNvbWJpbmUsdGhpcy5yZWZsZWN0aXZpdHk9dC5yZWZsZWN0aXZpdHksdGhpcy5yZWZyYWN0aW9uUmF0aW89dC5yZWZyYWN0aW9uUmF0aW8sdGhpcy53aXJlZnJhbWU9dC53aXJlZnJhbWUsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgsdGhpcy53aXJlZnJhbWVMaW5lY2FwPXQud2lyZWZyYW1lTGluZWNhcCx0aGlzLndpcmVmcmFtZUxpbmVqb2luPXQud2lyZWZyYW1lTGluZWpvaW4sdGhpc319bDR0LnByb3RvdHlwZS5pc01lc2hCYXNpY01hdGVyaWFsPSEwO2NvbnN0IGM0dD1uZXcgSDV0LHU0dD1uZXcgQzV0O2NsYXNzIGg0dHtjb25zdHJ1Y3Rvcih0LGUsbil7aWYoQXJyYXkuaXNBcnJheSh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGU6IGFycmF5IHNob3VsZCBiZSBhIFR5cGVkIEFycmF5LiIpO3RoaXMubmFtZT0iIix0aGlzLmFycmF5PXQsdGhpcy5pdGVtU2l6ZT1lLHRoaXMuY291bnQ9dm9pZCAwIT09dD90Lmxlbmd0aC9lOjAsdGhpcy5ub3JtYWxpemVkPSEwPT09bix0aGlzLnVzYWdlPUoydCx0aGlzLnVwZGF0ZVJhbmdlPXtvZmZzZXQ6MCxjb3VudDotMX0sdGhpcy52ZXJzaW9uPTB9b25VcGxvYWRDYWxsYmFjaygpe31zZXQgbmVlZHNVcGRhdGUodCl7ITA9PT10JiZ0aGlzLnZlcnNpb24rK31zZXRVc2FnZSh0KXtyZXR1cm4gdGhpcy51c2FnZT10LHRoaXN9Y29weSh0KXtyZXR1cm4gdGhpcy5uYW1lPXQubmFtZSx0aGlzLmFycmF5PW5ldyB0LmFycmF5LmNvbnN0cnVjdG9yKHQuYXJyYXkpLHRoaXMuaXRlbVNpemU9dC5pdGVtU2l6ZSx0aGlzLmNvdW50PXQuY291bnQsdGhpcy5ub3JtYWxpemVkPXQubm9ybWFsaXplZCx0aGlzLnVzYWdlPXQudXNhZ2UsdGhpc31jb3B5QXQodCxlLG4pe3QqPXRoaXMuaXRlbVNpemUsbio9ZS5pdGVtU2l6ZTtmb3IobGV0IGk9MCxyPXRoaXMuaXRlbVNpemU7aTxyO2krKyl0aGlzLmFycmF5W3QraV09ZS5hcnJheVtuK2ldO3JldHVybiB0aGlzfWNvcHlBcnJheSh0KXtyZXR1cm4gdGhpcy5hcnJheS5zZXQodCksdGhpc31jb3B5Q29sb3JzQXJyYXkodCl7Y29uc3QgZT10aGlzLmFycmF5O2xldCBuPTA7Zm9yKGxldCBpPTAscj10Lmxlbmd0aDtpPHI7aSsrKXtsZXQgcj10W2ldO3ZvaWQgMD09PXImJihjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZS5jb3B5Q29sb3JzQXJyYXkoKTogY29sb3IgaXMgdW5kZWZpbmVkIixpKSxyPW5ldyBzNHQpLGVbbisrXT1yLnIsZVtuKytdPXIuZyxlW24rK109ci5ifXJldHVybiB0aGlzfWNvcHlWZWN0b3Iyc0FycmF5KHQpe2NvbnN0IGU9dGhpcy5hcnJheTtsZXQgbj0wO2ZvcihsZXQgaT0wLHI9dC5sZW5ndGg7aTxyO2krKyl7bGV0IHI9dFtpXTt2b2lkIDA9PT1yJiYoY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGUuY29weVZlY3RvcjJzQXJyYXkoKTogdmVjdG9yIGlzIHVuZGVmaW5lZCIsaSkscj1uZXcgQzV0KSxlW24rK109ci54LGVbbisrXT1yLnl9cmV0dXJuIHRoaXN9Y29weVZlY3RvcjNzQXJyYXkodCl7Y29uc3QgZT10aGlzLmFycmF5O2xldCBuPTA7Zm9yKGxldCBpPTAscj10Lmxlbmd0aDtpPHI7aSsrKXtsZXQgcj10W2ldO3ZvaWQgMD09PXImJihjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZS5jb3B5VmVjdG9yM3NBcnJheSgpOiB2ZWN0b3IgaXMgdW5kZWZpbmVkIixpKSxyPW5ldyBINXQpLGVbbisrXT1yLngsZVtuKytdPXIueSxlW24rK109ci56fXJldHVybiB0aGlzfWNvcHlWZWN0b3I0c0FycmF5KHQpe2NvbnN0IGU9dGhpcy5hcnJheTtsZXQgbj0wO2ZvcihsZXQgaT0wLHI9dC5sZW5ndGg7aTxyO2krKyl7bGV0IHI9dFtpXTt2b2lkIDA9PT1yJiYoY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJBdHRyaWJ1dGUuY29weVZlY3RvcjRzQXJyYXkoKTogdmVjdG9yIGlzIHVuZGVmaW5lZCIsaSkscj1uZXcgUjV0KSxlW24rK109ci54LGVbbisrXT1yLnksZVtuKytdPXIueixlW24rK109ci53fXJldHVybiB0aGlzfWFwcGx5TWF0cml4Myh0KXtpZigyPT09dGhpcy5pdGVtU2l6ZSlmb3IobGV0IGU9MCxuPXRoaXMuY291bnQ7ZTxuO2UrKyl1NHQuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0aGlzLGUpLHU0dC5hcHBseU1hdHJpeDModCksdGhpcy5zZXRYWShlLHU0dC54LHU0dC55KTtlbHNlIGlmKDM9PT10aGlzLml0ZW1TaXplKWZvcihsZXQgZT0wLG49dGhpcy5jb3VudDtlPG47ZSsrKWM0dC5mcm9tQnVmZmVyQXR0cmlidXRlKHRoaXMsZSksYzR0LmFwcGx5TWF0cml4Myh0KSx0aGlzLnNldFhZWihlLGM0dC54LGM0dC55LGM0dC56KTtyZXR1cm4gdGhpc31hcHBseU1hdHJpeDQodCl7Zm9yKGxldCBlPTAsbj10aGlzLmNvdW50O2U8bjtlKyspYzR0Lng9dGhpcy5nZXRYKGUpLGM0dC55PXRoaXMuZ2V0WShlKSxjNHQuej10aGlzLmdldFooZSksYzR0LmFwcGx5TWF0cml4NCh0KSx0aGlzLnNldFhZWihlLGM0dC54LGM0dC55LGM0dC56KTtyZXR1cm4gdGhpc31hcHBseU5vcm1hbE1hdHJpeCh0KXtmb3IobGV0IGU9MCxuPXRoaXMuY291bnQ7ZTxuO2UrKyljNHQueD10aGlzLmdldFgoZSksYzR0Lnk9dGhpcy5nZXRZKGUpLGM0dC56PXRoaXMuZ2V0WihlKSxjNHQuYXBwbHlOb3JtYWxNYXRyaXgodCksdGhpcy5zZXRYWVooZSxjNHQueCxjNHQueSxjNHQueik7cmV0dXJuIHRoaXN9dHJhbnNmb3JtRGlyZWN0aW9uKHQpe2ZvcihsZXQgZT0wLG49dGhpcy5jb3VudDtlPG47ZSsrKWM0dC54PXRoaXMuZ2V0WChlKSxjNHQueT10aGlzLmdldFkoZSksYzR0Lno9dGhpcy5nZXRaKGUpLGM0dC50cmFuc2Zvcm1EaXJlY3Rpb24odCksdGhpcy5zZXRYWVooZSxjNHQueCxjNHQueSxjNHQueik7cmV0dXJuIHRoaXN9c2V0KHQsZT0wKXtyZXR1cm4gdGhpcy5hcnJheS5zZXQodCxlKSx0aGlzfWdldFgodCl7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplXX1zZXRYKHQsZSl7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplXT1lLHRoaXN9Z2V0WSh0KXtyZXR1cm4gdGhpcy5hcnJheVt0KnRoaXMuaXRlbVNpemUrMV19c2V0WSh0LGUpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZSsxXT1lLHRoaXN9Z2V0Wih0KXtyZXR1cm4gdGhpcy5hcnJheVt0KnRoaXMuaXRlbVNpemUrMl19c2V0Wih0LGUpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZSsyXT1lLHRoaXN9Z2V0Vyh0KXtyZXR1cm4gdGhpcy5hcnJheVt0KnRoaXMuaXRlbVNpemUrM119c2V0Vyh0LGUpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZSszXT1lLHRoaXN9c2V0WFkodCxlLG4pe3JldHVybiB0aGlzLmFycmF5Wyh0Kj10aGlzLml0ZW1TaXplKSswXT1lLHRoaXMuYXJyYXlbdCsxXT1uLHRoaXN9c2V0WFlaKHQsZSxuLGkpe3JldHVybiB0aGlzLmFycmF5Wyh0Kj10aGlzLml0ZW1TaXplKSswXT1lLHRoaXMuYXJyYXlbdCsxXT1uLHRoaXMuYXJyYXlbdCsyXT1pLHRoaXN9c2V0WFlaVyh0LGUsbixpLHIpe3JldHVybiB0aGlzLmFycmF5Wyh0Kj10aGlzLml0ZW1TaXplKSswXT1lLHRoaXMuYXJyYXlbdCsxXT1uLHRoaXMuYXJyYXlbdCsyXT1pLHRoaXMuYXJyYXlbdCszXT1yLHRoaXN9b25VcGxvYWQodCl7cmV0dXJuIHRoaXMub25VcGxvYWRDYWxsYmFjaz10LHRoaXN9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5hcnJheSx0aGlzLml0ZW1TaXplKS5jb3B5KHRoaXMpfXRvSlNPTigpe2NvbnN0IHQ9e2l0ZW1TaXplOnRoaXMuaXRlbVNpemUsdHlwZTp0aGlzLmFycmF5LmNvbnN0cnVjdG9yLm5hbWUsYXJyYXk6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcy5hcnJheSksbm9ybWFsaXplZDp0aGlzLm5vcm1hbGl6ZWR9O3JldHVybiIiIT09dGhpcy5uYW1lJiYodC5uYW1lPXRoaXMubmFtZSksdGhpcy51c2FnZSE9PUoydCYmKHQudXNhZ2U9dGhpcy51c2FnZSksMD09PXRoaXMudXBkYXRlUmFuZ2Uub2Zmc2V0JiYtMT09PXRoaXMudXBkYXRlUmFuZ2UuY291bnR8fCh0LnVwZGF0ZVJhbmdlPXRoaXMudXBkYXRlUmFuZ2UpLHR9fWg0dC5wcm90b3R5cGUuaXNCdWZmZXJBdHRyaWJ1dGU9ITA7Y2xhc3MgZDR0IGV4dGVuZHMgaDR0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcihuZXcgSW50OEFycmF5KHQpLGUsbil9fWNsYXNzIHA0dCBleHRlbmRzIGg0dHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIobmV3IFVpbnQ4QXJyYXkodCksZSxuKX19Y2xhc3MgZjR0IGV4dGVuZHMgaDR0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcihuZXcgVWludDhDbGFtcGVkQXJyYXkodCksZSxuKX19Y2xhc3MgbTR0IGV4dGVuZHMgaDR0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcihuZXcgSW50MTZBcnJheSh0KSxlLG4pfX1jbGFzcyBnNHQgZXh0ZW5kcyBoNHR7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKG5ldyBVaW50MTZBcnJheSh0KSxlLG4pfX1jbGFzcyBfNHQgZXh0ZW5kcyBoNHR7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKG5ldyBJbnQzMkFycmF5KHQpLGUsbil9fWNsYXNzIHk0dCBleHRlbmRzIGg0dHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIobmV3IFVpbnQzMkFycmF5KHQpLGUsbil9fWNsYXNzIHY0dCBleHRlbmRzIGg0dHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIobmV3IFVpbnQxNkFycmF5KHQpLGUsbil9fXY0dC5wcm90b3R5cGUuaXNGbG9hdDE2QnVmZmVyQXR0cmlidXRlPSEwO2NsYXNzIGI0dCBleHRlbmRzIGg0dHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIobmV3IEZsb2F0MzJBcnJheSh0KSxlLG4pfX1jbGFzcyB4NHQgZXh0ZW5kcyBoNHR7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKG5ldyBGbG9hdDY0QXJyYXkodCksZSxuKX19ZnVuY3Rpb24gdzR0KHQpe2lmKDA9PT10Lmxlbmd0aClyZXR1cm4tMS8wO2xldCBlPXRbMF07Zm9yKGxldCBuPTEsaT10Lmxlbmd0aDtuPGk7KytuKXRbbl0+ZSYmKGU9dFtuXSk7cmV0dXJuIGV9Y29uc3QgUzR0PXtJbnQ4QXJyYXk6SW50OEFycmF5LFVpbnQ4QXJyYXk6VWludDhBcnJheSxVaW50OENsYW1wZWRBcnJheTpVaW50OENsYW1wZWRBcnJheSxJbnQxNkFycmF5OkludDE2QXJyYXksVWludDE2QXJyYXk6VWludDE2QXJyYXksSW50MzJBcnJheTpJbnQzMkFycmF5LFVpbnQzMkFycmF5OlVpbnQzMkFycmF5LEZsb2F0MzJBcnJheTpGbG9hdDMyQXJyYXksRmxvYXQ2NEFycmF5OkZsb2F0NjRBcnJheX07ZnVuY3Rpb24gTTR0KHQsZSl7cmV0dXJuIG5ldyBTNHRbdF0oZSl9bGV0IEU0dD0wO2NvbnN0IFQ0dD1uZXcgZzN0LEM0dD1uZXcgVjN0LEE0dD1uZXcgSDV0LGs0dD1uZXcgVTV0LEw0dD1uZXcgVTV0LFA0dD1uZXcgSDV0O2NsYXNzIE40dCBleHRlbmRzIGU1dHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImlkIix7dmFsdWU6RTR0Kyt9KSx0aGlzLnV1aWQ9YTV0KCksdGhpcy5uYW1lPSIiLHRoaXMudHlwZT0iQnVmZmVyR2VvbWV0cnkiLHRoaXMuaW5kZXg9bnVsbCx0aGlzLmF0dHJpYnV0ZXM9e30sdGhpcy5tb3JwaEF0dHJpYnV0ZXM9e30sdGhpcy5tb3JwaFRhcmdldHNSZWxhdGl2ZT0hMSx0aGlzLmdyb3Vwcz1bXSx0aGlzLmJvdW5kaW5nQm94PW51bGwsdGhpcy5ib3VuZGluZ1NwaGVyZT1udWxsLHRoaXMuZHJhd1JhbmdlPXtzdGFydDowLGNvdW50OjEvMH0sdGhpcy51c2VyRGF0YT17fX1nZXRJbmRleCgpe3JldHVybiB0aGlzLmluZGV4fXNldEluZGV4KHQpe3JldHVybiB0aGlzLmluZGV4PUFycmF5LmlzQXJyYXkodCk/bmV3KHc0dCh0KT42NTUzNT95NHQ6ZzR0KSh0LDEpOnQsdGhpc31nZXRBdHRyaWJ1dGUodCl7cmV0dXJuIHRoaXMuYXR0cmlidXRlc1t0XX1zZXRBdHRyaWJ1dGUodCxlKXtyZXR1cm4gdGhpcy5hdHRyaWJ1dGVzW3RdPWUsdGhpc31kZWxldGVBdHRyaWJ1dGUodCl7cmV0dXJuIGRlbGV0ZSB0aGlzLmF0dHJpYnV0ZXNbdF0sdGhpc31oYXNBdHRyaWJ1dGUodCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuYXR0cmlidXRlc1t0XX1hZGRHcm91cCh0LGUsbj0wKXt0aGlzLmdyb3Vwcy5wdXNoKHtzdGFydDp0LGNvdW50OmUsbWF0ZXJpYWxJbmRleDpufSl9Y2xlYXJHcm91cHMoKXt0aGlzLmdyb3Vwcz1bXX1zZXREcmF3UmFuZ2UodCxlKXt0aGlzLmRyYXdSYW5nZS5zdGFydD10LHRoaXMuZHJhd1JhbmdlLmNvdW50PWV9YXBwbHlNYXRyaXg0KHQpe2NvbnN0IGU9dGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uO3ZvaWQgMCE9PWUmJihlLmFwcGx5TWF0cml4NCh0KSxlLm5lZWRzVXBkYXRlPSEwKTtjb25zdCBuPXRoaXMuYXR0cmlidXRlcy5ub3JtYWw7aWYodm9pZCAwIT09bil7Y29uc3QgZT0obmV3IEE1dCkuZ2V0Tm9ybWFsTWF0cml4KHQpO24uYXBwbHlOb3JtYWxNYXRyaXgoZSksbi5uZWVkc1VwZGF0ZT0hMH1jb25zdCBpPXRoaXMuYXR0cmlidXRlcy50YW5nZW50O3JldHVybiB2b2lkIDAhPT1pJiYoaS50cmFuc2Zvcm1EaXJlY3Rpb24odCksaS5uZWVkc1VwZGF0ZT0hMCksbnVsbCE9PXRoaXMuYm91bmRpbmdCb3gmJnRoaXMuY29tcHV0ZUJvdW5kaW5nQm94KCksbnVsbCE9PXRoaXMuYm91bmRpbmdTcGhlcmUmJnRoaXMuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCksdGhpc31hcHBseVF1YXRlcm5pb24odCl7cmV0dXJuIFQ0dC5tYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbih0KSx0aGlzLmFwcGx5TWF0cml4NChUNHQpLHRoaXN9cm90YXRlWCh0KXtyZXR1cm4gVDR0Lm1ha2VSb3RhdGlvblgodCksdGhpcy5hcHBseU1hdHJpeDQoVDR0KSx0aGlzfXJvdGF0ZVkodCl7cmV0dXJuIFQ0dC5tYWtlUm90YXRpb25ZKHQpLHRoaXMuYXBwbHlNYXRyaXg0KFQ0dCksdGhpc31yb3RhdGVaKHQpe3JldHVybiBUNHQubWFrZVJvdGF0aW9uWih0KSx0aGlzLmFwcGx5TWF0cml4NChUNHQpLHRoaXN9dHJhbnNsYXRlKHQsZSxuKXtyZXR1cm4gVDR0Lm1ha2VUcmFuc2xhdGlvbih0LGUsbiksdGhpcy5hcHBseU1hdHJpeDQoVDR0KSx0aGlzfXNjYWxlKHQsZSxuKXtyZXR1cm4gVDR0Lm1ha2VTY2FsZSh0LGUsbiksdGhpcy5hcHBseU1hdHJpeDQoVDR0KSx0aGlzfWxvb2tBdCh0KXtyZXR1cm4gQzR0Lmxvb2tBdCh0KSxDNHQudXBkYXRlTWF0cml4KCksdGhpcy5hcHBseU1hdHJpeDQoQzR0Lm1hdHJpeCksdGhpc31jZW50ZXIoKXtyZXR1cm4gdGhpcy5jb21wdXRlQm91bmRpbmdCb3goKSx0aGlzLmJvdW5kaW5nQm94LmdldENlbnRlcihBNHQpLm5lZ2F0ZSgpLHRoaXMudHJhbnNsYXRlKEE0dC54LEE0dC55LEE0dC56KSx0aGlzfXNldEZyb21Qb2ludHModCl7Y29uc3QgZT1bXTtmb3IobGV0IG49MCxpPXQubGVuZ3RoO248aTtuKyspe2NvbnN0IGk9dFtuXTtlLnB1c2goaS54LGkueSxpLnp8fDApfXJldHVybiB0aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBiNHQoZSwzKSksdGhpc31jb21wdXRlQm91bmRpbmdCb3goKXtudWxsPT09dGhpcy5ib3VuZGluZ0JveCYmKHRoaXMuYm91bmRpbmdCb3g9bmV3IFU1dCk7Y29uc3QgdD10aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24sZT10aGlzLm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbjtpZih0JiZ0LmlzR0xCdWZmZXJBdHRyaWJ1dGUpcmV0dXJuIGNvbnNvbGUuZXJyb3IoJ1RIUkVFLkJ1ZmZlckdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpOiBHTEJ1ZmZlckF0dHJpYnV0ZSByZXF1aXJlcyBhIG1hbnVhbCBib3VuZGluZyBib3guIEFsdGVybmF0aXZlbHkgc2V0ICJtZXNoLmZydXN0dW1DdWxsZWQiIHRvICJmYWxzZSIuJyx0aGlzKSx2b2lkIHRoaXMuYm91bmRpbmdCb3guc2V0KG5ldyBINXQoLTEvMCwtMS8wLC0xLzApLG5ldyBINXQoMS8wLDEvMCwxLzApKTtpZih2b2lkIDAhPT10KXtpZih0aGlzLmJvdW5kaW5nQm94LnNldEZyb21CdWZmZXJBdHRyaWJ1dGUodCksZSlmb3IobGV0IHQ9MCxuPWUubGVuZ3RoO3Q8bjt0Kyspe2s0dC5zZXRGcm9tQnVmZmVyQXR0cmlidXRlKGVbdF0pLHRoaXMubW9ycGhUYXJnZXRzUmVsYXRpdmU/KFA0dC5hZGRWZWN0b3JzKHRoaXMuYm91bmRpbmdCb3gubWluLGs0dC5taW4pLHRoaXMuYm91bmRpbmdCb3guZXhwYW5kQnlQb2ludChQNHQpLFA0dC5hZGRWZWN0b3JzKHRoaXMuYm91bmRpbmdCb3gubWF4LGs0dC5tYXgpLHRoaXMuYm91bmRpbmdCb3guZXhwYW5kQnlQb2ludChQNHQpKToodGhpcy5ib3VuZGluZ0JveC5leHBhbmRCeVBvaW50KGs0dC5taW4pLHRoaXMuYm91bmRpbmdCb3guZXhwYW5kQnlQb2ludChrNHQubWF4KSl9fWVsc2UgdGhpcy5ib3VuZGluZ0JveC5tYWtlRW1wdHkoKTsoaXNOYU4odGhpcy5ib3VuZGluZ0JveC5taW4ueCl8fGlzTmFOKHRoaXMuYm91bmRpbmdCb3gubWluLnkpfHxpc05hTih0aGlzLmJvdW5kaW5nQm94Lm1pbi56KSkmJmNvbnNvbGUuZXJyb3IoJ1RIUkVFLkJ1ZmZlckdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpOiBDb21wdXRlZCBtaW4vbWF4IGhhdmUgTmFOIHZhbHVlcy4gVGhlICJwb3NpdGlvbiIgYXR0cmlidXRlIGlzIGxpa2VseSB0byBoYXZlIE5hTiB2YWx1ZXMuJyx0aGlzKX1jb21wdXRlQm91bmRpbmdTcGhlcmUoKXtudWxsPT09dGhpcy5ib3VuZGluZ1NwaGVyZSYmKHRoaXMuYm91bmRpbmdTcGhlcmU9bmV3IHMzdCk7Y29uc3QgdD10aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24sZT10aGlzLm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbjtpZih0JiZ0LmlzR0xCdWZmZXJBdHRyaWJ1dGUpcmV0dXJuIGNvbnNvbGUuZXJyb3IoJ1RIUkVFLkJ1ZmZlckdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpOiBHTEJ1ZmZlckF0dHJpYnV0ZSByZXF1aXJlcyBhIG1hbnVhbCBib3VuZGluZyBzcGhlcmUuIEFsdGVybmF0aXZlbHkgc2V0ICJtZXNoLmZydXN0dW1DdWxsZWQiIHRvICJmYWxzZSIuJyx0aGlzKSx2b2lkIHRoaXMuYm91bmRpbmdTcGhlcmUuc2V0KG5ldyBINXQsMS8wKTtpZih0KXtjb25zdCBuPXRoaXMuYm91bmRpbmdTcGhlcmUuY2VudGVyO2lmKGs0dC5zZXRGcm9tQnVmZmVyQXR0cmlidXRlKHQpLGUpZm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0PG47dCsrKXtMNHQuc2V0RnJvbUJ1ZmZlckF0dHJpYnV0ZShlW3RdKSx0aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlPyhQNHQuYWRkVmVjdG9ycyhrNHQubWluLEw0dC5taW4pLGs0dC5leHBhbmRCeVBvaW50KFA0dCksUDR0LmFkZFZlY3RvcnMoazR0Lm1heCxMNHQubWF4KSxrNHQuZXhwYW5kQnlQb2ludChQNHQpKTooazR0LmV4cGFuZEJ5UG9pbnQoTDR0Lm1pbiksazR0LmV4cGFuZEJ5UG9pbnQoTDR0Lm1heCkpfWs0dC5nZXRDZW50ZXIobik7bGV0IGk9MDtmb3IobGV0IGU9MCxyPXQuY291bnQ7ZTxyO2UrKylQNHQuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUpLGk9TWF0aC5tYXgoaSxuLmRpc3RhbmNlVG9TcXVhcmVkKFA0dCkpO2lmKGUpZm9yKGxldCByPTAsbz1lLmxlbmd0aDtyPG87cisrKXtjb25zdCBvPWVbcl0sYT10aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlO2ZvcihsZXQgZT0wLHI9by5jb3VudDtlPHI7ZSsrKVA0dC5mcm9tQnVmZmVyQXR0cmlidXRlKG8sZSksYSYmKEE0dC5mcm9tQnVmZmVyQXR0cmlidXRlKHQsZSksUDR0LmFkZChBNHQpKSxpPU1hdGgubWF4KGksbi5kaXN0YW5jZVRvU3F1YXJlZChQNHQpKX10aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cz1NYXRoLnNxcnQoaSksaXNOYU4odGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXMpJiZjb25zb2xlLmVycm9yKCdUSFJFRS5CdWZmZXJHZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTogQ29tcHV0ZWQgcmFkaXVzIGlzIE5hTi4gVGhlICJwb3NpdGlvbiIgYXR0cmlidXRlIGlzIGxpa2VseSB0byBoYXZlIE5hTiB2YWx1ZXMuJyx0aGlzKX19Y29tcHV0ZUZhY2VOb3JtYWxzKCl7fWNvbXB1dGVUYW5nZW50cygpe2NvbnN0IHQ9dGhpcy5pbmRleCxlPXRoaXMuYXR0cmlidXRlcztpZihudWxsPT09dHx8dm9pZCAwPT09ZS5wb3NpdGlvbnx8dm9pZCAwPT09ZS5ub3JtYWx8fHZvaWQgMD09PWUudXYpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5jb21wdXRlVGFuZ2VudHMoKSBmYWlsZWQuIE1pc3NpbmcgcmVxdWlyZWQgYXR0cmlidXRlcyAoaW5kZXgsIHBvc2l0aW9uLCBub3JtYWwgb3IgdXYpIik7Y29uc3Qgbj10LmFycmF5LGk9ZS5wb3NpdGlvbi5hcnJheSxyPWUubm9ybWFsLmFycmF5LG89ZS51di5hcnJheSxhPWkubGVuZ3RoLzM7dm9pZCAwPT09ZS50YW5nZW50JiZ0aGlzLnNldEF0dHJpYnV0ZSgidGFuZ2VudCIsbmV3IGg0dChuZXcgRmxvYXQzMkFycmF5KDQqYSksNCkpO2NvbnN0IHM9ZS50YW5nZW50LmFycmF5LGw9W10sYz1bXTtmb3IobGV0IHQ9MDt0PGE7dCsrKWxbdF09bmV3IEg1dCxjW3RdPW5ldyBINXQ7Y29uc3QgdT1uZXcgSDV0LGg9bmV3IEg1dCxkPW5ldyBINXQscD1uZXcgQzV0LGY9bmV3IEM1dCxtPW5ldyBDNXQsZz1uZXcgSDV0LF89bmV3IEg1dDtmdW5jdGlvbiB5KHQsZSxuKXt1LmZyb21BcnJheShpLDMqdCksaC5mcm9tQXJyYXkoaSwzKmUpLGQuZnJvbUFycmF5KGksMypuKSxwLmZyb21BcnJheShvLDIqdCksZi5mcm9tQXJyYXkobywyKmUpLG0uZnJvbUFycmF5KG8sMipuKSxoLnN1Yih1KSxkLnN1Yih1KSxmLnN1YihwKSxtLnN1YihwKTtjb25zdCByPTEvKGYueCptLnktbS54KmYueSk7aXNGaW5pdGUocikmJihnLmNvcHkoaCkubXVsdGlwbHlTY2FsYXIobS55KS5hZGRTY2FsZWRWZWN0b3IoZCwtZi55KS5tdWx0aXBseVNjYWxhcihyKSxfLmNvcHkoZCkubXVsdGlwbHlTY2FsYXIoZi54KS5hZGRTY2FsZWRWZWN0b3IoaCwtbS54KS5tdWx0aXBseVNjYWxhcihyKSxsW3RdLmFkZChnKSxsW2VdLmFkZChnKSxsW25dLmFkZChnKSxjW3RdLmFkZChfKSxjW2VdLmFkZChfKSxjW25dLmFkZChfKSl9bGV0IHY9dGhpcy5ncm91cHM7MD09PXYubGVuZ3RoJiYodj1be3N0YXJ0OjAsY291bnQ6bi5sZW5ndGh9XSk7Zm9yKGxldCB0PTAsZT12Lmxlbmd0aDt0PGU7Kyt0KXtjb25zdCBlPXZbdF0saT1lLnN0YXJ0O2ZvcihsZXQgdD1pLHI9aStlLmNvdW50O3Q8cjt0Kz0zKXkoblt0KzBdLG5bdCsxXSxuW3QrMl0pfWNvbnN0IGI9bmV3IEg1dCx4PW5ldyBINXQsdz1uZXcgSDV0LFM9bmV3IEg1dDtmdW5jdGlvbiBNKHQpe3cuZnJvbUFycmF5KHIsMyp0KSxTLmNvcHkodyk7Y29uc3QgZT1sW3RdO2IuY29weShlKSxiLnN1Yih3Lm11bHRpcGx5U2NhbGFyKHcuZG90KGUpKSkubm9ybWFsaXplKCkseC5jcm9zc1ZlY3RvcnMoUyxlKTtjb25zdCBuPXguZG90KGNbdF0pPDA/LTE6MTtzWzQqdF09Yi54LHNbNCp0KzFdPWIueSxzWzQqdCsyXT1iLnosc1s0KnQrM109bn1mb3IobGV0IHQ9MCxlPXYubGVuZ3RoO3Q8ZTsrK3Qpe2NvbnN0IGU9dlt0XSxpPWUuc3RhcnQ7Zm9yKGxldCB0PWkscj1pK2UuY291bnQ7dDxyO3QrPTMpTShuW3QrMF0pLE0oblt0KzFdKSxNKG5bdCsyXSl9fWNvbXB1dGVWZXJ0ZXhOb3JtYWxzKCl7Y29uc3QgdD10aGlzLmluZGV4LGU9dGhpcy5nZXRBdHRyaWJ1dGUoInBvc2l0aW9uIik7aWYodm9pZCAwIT09ZSl7bGV0IG49dGhpcy5nZXRBdHRyaWJ1dGUoIm5vcm1hbCIpO2lmKHZvaWQgMD09PW4pbj1uZXcgaDR0KG5ldyBGbG9hdDMyQXJyYXkoMyplLmNvdW50KSwzKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuKTtlbHNlIGZvcihsZXQgdD0wLGU9bi5jb3VudDt0PGU7dCsrKW4uc2V0WFlaKHQsMCwwLDApO2NvbnN0IGk9bmV3IEg1dCxyPW5ldyBINXQsbz1uZXcgSDV0LGE9bmV3IEg1dCxzPW5ldyBINXQsbD1uZXcgSDV0LGM9bmV3IEg1dCx1PW5ldyBINXQ7aWYodClmb3IobGV0IGg9MCxkPXQuY291bnQ7aDxkO2grPTMpe2NvbnN0IGQ9dC5nZXRYKGgrMCkscD10LmdldFgoaCsxKSxmPXQuZ2V0WChoKzIpO2kuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLGQpLHIuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLHApLG8uZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLGYpLGMuc3ViVmVjdG9ycyhvLHIpLHUuc3ViVmVjdG9ycyhpLHIpLGMuY3Jvc3ModSksYS5mcm9tQnVmZmVyQXR0cmlidXRlKG4sZCkscy5mcm9tQnVmZmVyQXR0cmlidXRlKG4scCksbC5mcm9tQnVmZmVyQXR0cmlidXRlKG4sZiksYS5hZGQoYykscy5hZGQoYyksbC5hZGQoYyksbi5zZXRYWVooZCxhLngsYS55LGEueiksbi5zZXRYWVoocCxzLngscy55LHMueiksbi5zZXRYWVooZixsLngsbC55LGwueil9ZWxzZSBmb3IobGV0IHQ9MCxhPWUuY291bnQ7dDxhO3QrPTMpaS5mcm9tQnVmZmVyQXR0cmlidXRlKGUsdCswKSxyLmZyb21CdWZmZXJBdHRyaWJ1dGUoZSx0KzEpLG8uZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLHQrMiksYy5zdWJWZWN0b3JzKG8sciksdS5zdWJWZWN0b3JzKGksciksYy5jcm9zcyh1KSxuLnNldFhZWih0KzAsYy54LGMueSxjLnopLG4uc2V0WFlaKHQrMSxjLngsYy55LGMueiksbi5zZXRYWVoodCsyLGMueCxjLnksYy56KTt0aGlzLm5vcm1hbGl6ZU5vcm1hbHMoKSxuLm5lZWRzVXBkYXRlPSEwfX1tZXJnZSh0LGUpe2lmKCF0fHwhdC5pc0J1ZmZlckdlb21ldHJ5KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLkJ1ZmZlckdlb21ldHJ5Lm1lcmdlKCk6IGdlb21ldHJ5IG5vdCBhbiBpbnN0YW5jZSBvZiBUSFJFRS5CdWZmZXJHZW9tZXRyeS4iLHQpO3ZvaWQgMD09PWUmJihlPTAsY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeS5tZXJnZSgpOiBPdmVyd3JpdGluZyBvcmlnaW5hbCBnZW9tZXRyeSwgc3RhcnRpbmcgYXQgb2Zmc2V0PTAuIFVzZSBCdWZmZXJHZW9tZXRyeVV0aWxzLm1lcmdlQnVmZmVyR2VvbWV0cmllcygpIGZvciBsb3NzbGVzcyBtZXJnZS4iKSk7Y29uc3Qgbj10aGlzLmF0dHJpYnV0ZXM7Zm9yKGNvbnN0IGkgaW4gbil7aWYodm9pZCAwPT09dC5hdHRyaWJ1dGVzW2ldKWNvbnRpbnVlO2NvbnN0IHI9bltpXS5hcnJheSxvPXQuYXR0cmlidXRlc1tpXSxhPW8uYXJyYXkscz1vLml0ZW1TaXplKmUsbD1NYXRoLm1pbihhLmxlbmd0aCxyLmxlbmd0aC1zKTtmb3IobGV0IHQ9MCxlPXM7dDxsO3QrKyxlKyspcltlXT1hW3RdfXJldHVybiB0aGlzfW5vcm1hbGl6ZU5vcm1hbHMoKXtjb25zdCB0PXRoaXMuYXR0cmlidXRlcy5ub3JtYWw7Zm9yKGxldCBlPTAsbj10LmNvdW50O2U8bjtlKyspUDR0LmZyb21CdWZmZXJBdHRyaWJ1dGUodCxlKSxQNHQubm9ybWFsaXplKCksdC5zZXRYWVooZSxQNHQueCxQNHQueSxQNHQueil9dG9Ob25JbmRleGVkKCl7ZnVuY3Rpb24gdCh0LGUpe2NvbnN0IG49dC5hcnJheSxpPXQuaXRlbVNpemUscj10Lm5vcm1hbGl6ZWQsbz1uZXcgbi5jb25zdHJ1Y3RvcihlLmxlbmd0aCppKTtsZXQgYT0wLHM9MDtmb3IobGV0IHI9MCxsPWUubGVuZ3RoO3I8bDtyKyspe2E9dC5pc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlP2Vbcl0qdC5kYXRhLnN0cmlkZSt0Lm9mZnNldDplW3JdKmk7Zm9yKGxldCB0PTA7dDxpO3QrKylvW3MrK109blthKytdfXJldHVybiBuZXcgaDR0KG8saSxyKX1pZihudWxsPT09dGhpcy5pbmRleClyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeS50b05vbkluZGV4ZWQoKTogQnVmZmVyR2VvbWV0cnkgaXMgYWxyZWFkeSBub24taW5kZXhlZC4iKSx0aGlzO2NvbnN0IGU9bmV3IE40dCxuPXRoaXMuaW5kZXguYXJyYXksaT10aGlzLmF0dHJpYnV0ZXM7Zm9yKGNvbnN0IHIgaW4gaSl7Y29uc3Qgbz10KGlbcl0sbik7ZS5zZXRBdHRyaWJ1dGUocixvKX1jb25zdCByPXRoaXMubW9ycGhBdHRyaWJ1dGVzO2Zvcihjb25zdCBpIGluIHIpe2NvbnN0IG89W10sYT1yW2ldO2ZvcihsZXQgZT0wLGk9YS5sZW5ndGg7ZTxpO2UrKyl7Y29uc3QgaT10KGFbZV0sbik7by5wdXNoKGkpfWUubW9ycGhBdHRyaWJ1dGVzW2ldPW99ZS5tb3JwaFRhcmdldHNSZWxhdGl2ZT10aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlO2NvbnN0IG89dGhpcy5ncm91cHM7Zm9yKGxldCB0PTAsbj1vLmxlbmd0aDt0PG47dCsrKXtjb25zdCBuPW9bdF07ZS5hZGRHcm91cChuLnN0YXJ0LG4uY291bnQsbi5tYXRlcmlhbEluZGV4KX1yZXR1cm4gZX10b0pTT04oKXtjb25zdCB0PXttZXRhZGF0YTp7dmVyc2lvbjo0LjUsdHlwZToiQnVmZmVyR2VvbWV0cnkiLGdlbmVyYXRvcjoiQnVmZmVyR2VvbWV0cnkudG9KU09OIn19O2lmKHQudXVpZD10aGlzLnV1aWQsdC50eXBlPXRoaXMudHlwZSwiIiE9PXRoaXMubmFtZSYmKHQubmFtZT10aGlzLm5hbWUpLE9iamVjdC5rZXlzKHRoaXMudXNlckRhdGEpLmxlbmd0aD4wJiYodC51c2VyRGF0YT10aGlzLnVzZXJEYXRhKSx2b2lkIDAhPT10aGlzLnBhcmFtZXRlcnMpe2NvbnN0IGU9dGhpcy5wYXJhbWV0ZXJzO2Zvcihjb25zdCBuIGluIGUpdm9pZCAwIT09ZVtuXSYmKHRbbl09ZVtuXSk7cmV0dXJuIHR9dC5kYXRhPXthdHRyaWJ1dGVzOnt9fTtjb25zdCBlPXRoaXMuaW5kZXg7bnVsbCE9PWUmJih0LmRhdGEuaW5kZXg9e3R5cGU6ZS5hcnJheS5jb25zdHJ1Y3Rvci5uYW1lLGFycmF5OkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUuYXJyYXkpfSk7Y29uc3Qgbj10aGlzLmF0dHJpYnV0ZXM7Zm9yKGNvbnN0IGUgaW4gbil7dC5kYXRhLmF0dHJpYnV0ZXNbZV09bltlXS50b0pTT04odC5kYXRhKX1jb25zdCBpPXt9O2xldCByPSExO2Zvcihjb25zdCBlIGluIHRoaXMubW9ycGhBdHRyaWJ1dGVzKXtjb25zdCBuPXRoaXMubW9ycGhBdHRyaWJ1dGVzW2VdLG89W107Zm9yKGxldCBlPTAsaT1uLmxlbmd0aDtlPGk7ZSsrKXtvLnB1c2gobltlXS50b0pTT04odC5kYXRhKSl9by5sZW5ndGg+MCYmKGlbZV09byxyPSEwKX1yJiYodC5kYXRhLm1vcnBoQXR0cmlidXRlcz1pLHQuZGF0YS5tb3JwaFRhcmdldHNSZWxhdGl2ZT10aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlKTtjb25zdCBvPXRoaXMuZ3JvdXBzO28ubGVuZ3RoPjAmJih0LmRhdGEuZ3JvdXBzPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobykpKTtjb25zdCBhPXRoaXMuYm91bmRpbmdTcGhlcmU7cmV0dXJuIG51bGwhPT1hJiYodC5kYXRhLmJvdW5kaW5nU3BoZXJlPXtjZW50ZXI6YS5jZW50ZXIudG9BcnJheSgpLHJhZGl1czphLnJhZGl1c30pLHR9Y2xvbmUoKXtyZXR1cm4obmV3IE40dCkuY29weSh0aGlzKX1jb3B5KHQpe3RoaXMuaW5kZXg9bnVsbCx0aGlzLmF0dHJpYnV0ZXM9e30sdGhpcy5tb3JwaEF0dHJpYnV0ZXM9e30sdGhpcy5ncm91cHM9W10sdGhpcy5ib3VuZGluZ0JveD1udWxsLHRoaXMuYm91bmRpbmdTcGhlcmU9bnVsbDtjb25zdCBlPXt9O3RoaXMubmFtZT10Lm5hbWU7Y29uc3Qgbj10LmluZGV4O251bGwhPT1uJiZ0aGlzLnNldEluZGV4KG4uY2xvbmUoZSkpO2NvbnN0IGk9dC5hdHRyaWJ1dGVzO2Zvcihjb25zdCB0IGluIGkpe3RoaXMuc2V0QXR0cmlidXRlKHQsaVt0XS5jbG9uZShlKSl9Y29uc3Qgcj10Lm1vcnBoQXR0cmlidXRlcztmb3IoY29uc3QgdCBpbiByKXtjb25zdCBuPVtdLGk9clt0XTtmb3IobGV0IHQ9MCxyPWkubGVuZ3RoO3Q8cjt0Kyspbi5wdXNoKGlbdF0uY2xvbmUoZSkpO3RoaXMubW9ycGhBdHRyaWJ1dGVzW3RdPW59dGhpcy5tb3JwaFRhcmdldHNSZWxhdGl2ZT10Lm1vcnBoVGFyZ2V0c1JlbGF0aXZlO2NvbnN0IG89dC5ncm91cHM7Zm9yKGxldCB0PTAsZT1vLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPW9bdF07dGhpcy5hZGRHcm91cChlLnN0YXJ0LGUuY291bnQsZS5tYXRlcmlhbEluZGV4KX1jb25zdCBhPXQuYm91bmRpbmdCb3g7bnVsbCE9PWEmJih0aGlzLmJvdW5kaW5nQm94PWEuY2xvbmUoKSk7Y29uc3Qgcz10LmJvdW5kaW5nU3BoZXJlO3JldHVybiBudWxsIT09cyYmKHRoaXMuYm91bmRpbmdTcGhlcmU9cy5jbG9uZSgpKSx0aGlzLmRyYXdSYW5nZS5zdGFydD10LmRyYXdSYW5nZS5zdGFydCx0aGlzLmRyYXdSYW5nZS5jb3VudD10LmRyYXdSYW5nZS5jb3VudCx0aGlzLnVzZXJEYXRhPXQudXNlckRhdGEsdGhpc31kaXNwb3NlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJkaXNwb3NlIn0pfX1ONHQucHJvdG90eXBlLmlzQnVmZmVyR2VvbWV0cnk9ITA7Y29uc3QgSTR0PW5ldyBnM3QsUjR0PW5ldyBtM3QsTzR0PW5ldyBzM3QsejR0PW5ldyBINXQsRDR0PW5ldyBINXQsQjR0PW5ldyBINXQsSDR0PW5ldyBINXQsRjR0PW5ldyBINXQsVjR0PW5ldyBINXQsVTR0PW5ldyBINXQsajR0PW5ldyBINXQsRzR0PW5ldyBINXQsVzR0PW5ldyBDNXQscTR0PW5ldyBDNXQsWTR0PW5ldyBDNXQsWDR0PW5ldyBINXQsJDR0PW5ldyBINXQ7Y2xhc3MgSzR0IGV4dGVuZHMgVjN0e2NvbnN0cnVjdG9yKHQ9bmV3IE40dCxlPW5ldyBsNHQpe3N1cGVyKCksdGhpcy50eXBlPSJNZXNoIix0aGlzLmdlb21ldHJ5PXQsdGhpcy5tYXRlcmlhbD1lLHRoaXMudXBkYXRlTW9ycGhUYXJnZXRzKCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx2b2lkIDAhPT10Lm1vcnBoVGFyZ2V0SW5mbHVlbmNlcyYmKHRoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzPXQubW9ycGhUYXJnZXRJbmZsdWVuY2VzLnNsaWNlKCkpLHZvaWQgMCE9PXQubW9ycGhUYXJnZXREaWN0aW9uYXJ5JiYodGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnk9T2JqZWN0LmFzc2lnbih7fSx0Lm1vcnBoVGFyZ2V0RGljdGlvbmFyeSkpLHRoaXMubWF0ZXJpYWw9dC5tYXRlcmlhbCx0aGlzLmdlb21ldHJ5PXQuZ2VvbWV0cnksdGhpc311cGRhdGVNb3JwaFRhcmdldHMoKXtjb25zdCB0PXRoaXMuZ2VvbWV0cnk7aWYodC5pc0J1ZmZlckdlb21ldHJ5KXtjb25zdCBlPXQubW9ycGhBdHRyaWJ1dGVzLG49T2JqZWN0LmtleXMoZSk7aWYobi5sZW5ndGg+MCl7Y29uc3QgdD1lW25bMF1dO2lmKHZvaWQgMCE9PXQpe3RoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzPVtdLHRoaXMubW9ycGhUYXJnZXREaWN0aW9uYXJ5PXt9O2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKyl7Y29uc3Qgbj10W2VdLm5hbWV8fFN0cmluZyhlKTt0aGlzLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcy5wdXNoKDApLHRoaXMubW9ycGhUYXJnZXREaWN0aW9uYXJ5W25dPWV9fX19ZWxzZXtjb25zdCBlPXQubW9ycGhUYXJnZXRzO3ZvaWQgMCE9PWUmJmUubGVuZ3RoPjAmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLk1lc2gudXBkYXRlTW9ycGhUYXJnZXRzKCkgbm8gbG9uZ2VyIHN1cHBvcnRzIFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKX19cmF5Y2FzdCh0LGUpe2NvbnN0IG49dGhpcy5nZW9tZXRyeSxpPXRoaXMubWF0ZXJpYWwscj10aGlzLm1hdHJpeFdvcmxkO2lmKHZvaWQgMD09PWkpcmV0dXJuO2lmKG51bGw9PT1uLmJvdW5kaW5nU3BoZXJlJiZuLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpLE80dC5jb3B5KG4uYm91bmRpbmdTcGhlcmUpLE80dC5hcHBseU1hdHJpeDQociksITE9PT10LnJheS5pbnRlcnNlY3RzU3BoZXJlKE80dCkpcmV0dXJuO2lmKEk0dC5jb3B5KHIpLmludmVydCgpLFI0dC5jb3B5KHQucmF5KS5hcHBseU1hdHJpeDQoSTR0KSxudWxsIT09bi5ib3VuZGluZ0JveCYmITE9PT1SNHQuaW50ZXJzZWN0c0JveChuLmJvdW5kaW5nQm94KSlyZXR1cm47bGV0IG87aWYobi5pc0J1ZmZlckdlb21ldHJ5KXtjb25zdCByPW4uaW5kZXgsYT1uLmF0dHJpYnV0ZXMucG9zaXRpb24scz1uLm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbixsPW4ubW9ycGhUYXJnZXRzUmVsYXRpdmUsYz1uLmF0dHJpYnV0ZXMudXYsdT1uLmF0dHJpYnV0ZXMudXYyLGg9bi5ncm91cHMsZD1uLmRyYXdSYW5nZTtpZihudWxsIT09cilpZihBcnJheS5pc0FycmF5KGkpKWZvcihsZXQgbj0wLHA9aC5sZW5ndGg7bjxwO24rKyl7Y29uc3QgcD1oW25dLGY9aVtwLm1hdGVyaWFsSW5kZXhdO2ZvcihsZXQgbj1NYXRoLm1heChwLnN0YXJ0LGQuc3RhcnQpLGk9TWF0aC5taW4ocC5zdGFydCtwLmNvdW50LGQuc3RhcnQrZC5jb3VudCk7bjxpO24rPTMpe2NvbnN0IGk9ci5nZXRYKG4pLGg9ci5nZXRYKG4rMSksZD1yLmdldFgobisyKTtvPVo0dCh0aGlzLGYsdCxSNHQsYSxzLGwsYyx1LGksaCxkKSxvJiYoby5mYWNlSW5kZXg9TWF0aC5mbG9vcihuLzMpLG8uZmFjZS5tYXRlcmlhbEluZGV4PXAubWF0ZXJpYWxJbmRleCxlLnB1c2gobykpfX1lbHNle2ZvcihsZXQgbj1NYXRoLm1heCgwLGQuc3RhcnQpLGg9TWF0aC5taW4oci5jb3VudCxkLnN0YXJ0K2QuY291bnQpO248aDtuKz0zKXtjb25zdCBoPXIuZ2V0WChuKSxkPXIuZ2V0WChuKzEpLHA9ci5nZXRYKG4rMik7bz1aNHQodGhpcyxpLHQsUjR0LGEscyxsLGMsdSxoLGQscCksbyYmKG8uZmFjZUluZGV4PU1hdGguZmxvb3Iobi8zKSxlLnB1c2gobykpfX1lbHNlIGlmKHZvaWQgMCE9PWEpaWYoQXJyYXkuaXNBcnJheShpKSlmb3IobGV0IG49MCxyPWgubGVuZ3RoO248cjtuKyspe2NvbnN0IHI9aFtuXSxwPWlbci5tYXRlcmlhbEluZGV4XTtmb3IobGV0IG49TWF0aC5tYXgoci5zdGFydCxkLnN0YXJ0KSxpPU1hdGgubWluKHIuc3RhcnQrci5jb3VudCxkLnN0YXJ0K2QuY291bnQpO248aTtuKz0zKXtvPVo0dCh0aGlzLHAsdCxSNHQsYSxzLGwsYyx1LG4sbisxLG4rMiksbyYmKG8uZmFjZUluZGV4PU1hdGguZmxvb3Iobi8zKSxvLmZhY2UubWF0ZXJpYWxJbmRleD1yLm1hdGVyaWFsSW5kZXgsZS5wdXNoKG8pKX19ZWxzZXtmb3IobGV0IG49TWF0aC5tYXgoMCxkLnN0YXJ0KSxyPU1hdGgubWluKGEuY291bnQsZC5zdGFydCtkLmNvdW50KTtuPHI7bis9Myl7bz1aNHQodGhpcyxpLHQsUjR0LGEscyxsLGMsdSxuLG4rMSxuKzIpLG8mJihvLmZhY2VJbmRleD1NYXRoLmZsb29yKG4vMyksZS5wdXNoKG8pKX19fWVsc2Ugbi5pc0dlb21ldHJ5JiZjb25zb2xlLmVycm9yKCJUSFJFRS5NZXNoLnJheWNhc3QoKSBubyBsb25nZXIgc3VwcG9ydHMgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpfX1mdW5jdGlvbiBaNHQodCxlLG4saSxyLG8sYSxzLGwsYyx1LGgpe3o0dC5mcm9tQnVmZmVyQXR0cmlidXRlKHIsYyksRDR0LmZyb21CdWZmZXJBdHRyaWJ1dGUocix1KSxCNHQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShyLGgpO2NvbnN0IGQ9dC5tb3JwaFRhcmdldEluZmx1ZW5jZXM7aWYobyYmZCl7VTR0LnNldCgwLDAsMCksajR0LnNldCgwLDAsMCksRzR0LnNldCgwLDAsMCk7Zm9yKGxldCB0PTAsZT1vLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPWRbdF0sbj1vW3RdOzAhPT1lJiYoSDR0LmZyb21CdWZmZXJBdHRyaWJ1dGUobixjKSxGNHQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShuLHUpLFY0dC5mcm9tQnVmZmVyQXR0cmlidXRlKG4saCksYT8oVTR0LmFkZFNjYWxlZFZlY3RvcihINHQsZSksajR0LmFkZFNjYWxlZFZlY3RvcihGNHQsZSksRzR0LmFkZFNjYWxlZFZlY3RvcihWNHQsZSkpOihVNHQuYWRkU2NhbGVkVmVjdG9yKEg0dC5zdWIoejR0KSxlKSxqNHQuYWRkU2NhbGVkVmVjdG9yKEY0dC5zdWIoRDR0KSxlKSxHNHQuYWRkU2NhbGVkVmVjdG9yKFY0dC5zdWIoQjR0KSxlKSkpfXo0dC5hZGQoVTR0KSxENHQuYWRkKGo0dCksQjR0LmFkZChHNHQpfXQuaXNTa2lubmVkTWVzaCYmKHQuYm9uZVRyYW5zZm9ybShjLHo0dCksdC5ib25lVHJhbnNmb3JtKHUsRDR0KSx0LmJvbmVUcmFuc2Zvcm0oaCxCNHQpKTtjb25zdCBwPShmdW5jdGlvbiBmKHQsZSxuLGkscixvLGEscyl7bGV0IGw7aWYobD0xPT09ZS5zaWRlP2kuaW50ZXJzZWN0VHJpYW5nbGUoYSxvLHIsITAscyk6aS5pbnRlcnNlY3RUcmlhbmdsZShyLG8sYSwyIT09ZS5zaWRlLHMpLG51bGw9PT1sKXJldHVybiBudWxsOyQ0dC5jb3B5KHMpLCQ0dC5hcHBseU1hdHJpeDQodC5tYXRyaXhXb3JsZCk7Y29uc3QgYz1uLnJheS5vcmlnaW4uZGlzdGFuY2VUbygkNHQpO3JldHVybiBjPG4ubmVhcnx8Yz5uLmZhcj9udWxsOntkaXN0YW5jZTpjLHBvaW50OiQ0dC5jbG9uZSgpLG9iamVjdDp0fX0pKHQsZSxuLGksejR0LEQ0dCxCNHQsWDR0KTtpZihwKXtzJiYoVzR0LmZyb21CdWZmZXJBdHRyaWJ1dGUocyxjKSxxNHQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShzLHUpLFk0dC5mcm9tQnVmZmVyQXR0cmlidXRlKHMsaCkscC51dj1KM3QuZ2V0VVYoWDR0LHo0dCxENHQsQjR0LFc0dCxxNHQsWTR0LG5ldyBDNXQpKSxsJiYoVzR0LmZyb21CdWZmZXJBdHRyaWJ1dGUobCxjKSxxNHQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShsLHUpLFk0dC5mcm9tQnVmZmVyQXR0cmlidXRlKGwsaCkscC51djI9SjN0LmdldFVWKFg0dCx6NHQsRDR0LEI0dCxXNHQscTR0LFk0dCxuZXcgQzV0KSk7Y29uc3QgdD17YTpjLGI6dSxjOmgsbm9ybWFsOm5ldyBINXQsbWF0ZXJpYWxJbmRleDowfTtKM3QuZ2V0Tm9ybWFsKHo0dCxENHQsQjR0LHQubm9ybWFsKSxwLmZhY2U9dH1yZXR1cm4gcH1LNHQucHJvdG90eXBlLmlzTWVzaD0hMDtjbGFzcyBKNHQgZXh0ZW5kcyBONHR7Y29uc3RydWN0b3IodD0xLGU9MSxuPTEsaT0xLHI9MSxvPTEpe3N1cGVyKCksdGhpcy50eXBlPSJCb3hHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXt3aWR0aDp0LGhlaWdodDplLGRlcHRoOm4sd2lkdGhTZWdtZW50czppLGhlaWdodFNlZ21lbnRzOnIsZGVwdGhTZWdtZW50czpvfTtjb25zdCBhPXRoaXM7aT1NYXRoLmZsb29yKGkpLHI9TWF0aC5mbG9vcihyKSxvPU1hdGguZmxvb3Iobyk7Y29uc3Qgcz1bXSxsPVtdLGM9W10sdT1bXTtsZXQgaD0wLGQ9MDtmdW5jdGlvbiBwKHQsZSxuLGkscixvLHAsZixtLGcsXyl7Y29uc3QgeT1vL20sdj1wL2csYj1vLzIseD1wLzIsdz1mLzIsUz1tKzEsTT1nKzE7bGV0IEU9MCxUPTA7Y29uc3QgQz1uZXcgSDV0O2ZvcihsZXQgbz0wO288TTtvKyspe2NvbnN0IGE9byp2LXg7Zm9yKGxldCBzPTA7czxTO3MrKyl7Q1t0XT0ocyp5LWIpKmksQ1tlXT1hKnIsQ1tuXT13LGwucHVzaChDLngsQy55LEMueiksQ1t0XT0wLENbZV09MCxDW25dPWY+MD8xOi0xLGMucHVzaChDLngsQy55LEMueiksdS5wdXNoKHMvbSksdS5wdXNoKDEtby9nKSxFKz0xfX1mb3IobGV0IHQ9MDt0PGc7dCsrKWZvcihsZXQgZT0wO2U8bTtlKyspe2NvbnN0IG49aCtlK1MqKHQrMSksaT1oKyhlKzEpK1MqKHQrMSkscj1oKyhlKzEpK1MqdDtzLnB1c2goaCtlK1MqdCxuLHIpLHMucHVzaChuLGksciksVCs9Nn1hLmFkZEdyb3VwKGQsVCxfKSxkKz1ULGgrPUV9cCgieiIsInkiLCJ4IiwtMSwtMSxuLGUsdCxvLHIsMCkscCgieiIsInkiLCJ4IiwxLC0xLG4sZSwtdCxvLHIsMSkscCgieCIsInoiLCJ5IiwxLDEsdCxuLGUsaSxvLDIpLHAoIngiLCJ6IiwieSIsMSwtMSx0LG4sLWUsaSxvLDMpLHAoIngiLCJ5IiwieiIsMSwtMSx0LGUsbixpLHIsNCkscCgieCIsInkiLCJ6IiwtMSwtMSx0LGUsLW4saSxyLDUpLHRoaXMuc2V0SW5kZXgocyksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgYjR0KGwsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJub3JtYWwiLG5ldyBiNHQoYywzKSksdGhpcy5zZXRBdHRyaWJ1dGUoInV2IixuZXcgYjR0KHUsMikpfXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IEo0dCh0LndpZHRoLHQuaGVpZ2h0LHQuZGVwdGgsdC53aWR0aFNlZ21lbnRzLHQuaGVpZ2h0U2VnbWVudHMsdC5kZXB0aFNlZ21lbnRzKX19ZnVuY3Rpb24gUTR0KHQpe2NvbnN0IGU9e307Zm9yKGNvbnN0IG4gaW4gdCl7ZVtuXT17fTtmb3IoY29uc3QgaSBpbiB0W25dKXtjb25zdCByPXRbbl1baV07ZVtuXVtpXT1yJiYoci5pc0NvbG9yfHxyLmlzTWF0cml4M3x8ci5pc01hdHJpeDR8fHIuaXNWZWN0b3IyfHxyLmlzVmVjdG9yM3x8ci5pc1ZlY3RvcjR8fHIuaXNUZXh0dXJlfHxyLmlzUXVhdGVybmlvbik/ci5jbG9uZSgpOkFycmF5LmlzQXJyYXkocik/ci5zbGljZSgpOnJ9fXJldHVybiBlfWZ1bmN0aW9uIHQ2dCh0KXtjb25zdCBlPXt9O2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKXtjb25zdCBpPVE0dCh0W25dKTtmb3IoY29uc3QgdCBpbiBpKWVbdF09aVt0XX1yZXR1cm4gZX1jb25zdCBlNnQ9e2Nsb25lOlE0dCxtZXJnZTp0NnR9O2NsYXNzIG42dCBleHRlbmRzIHQ0dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iU2hhZGVyTWF0ZXJpYWwiLHRoaXMuZGVmaW5lcz17fSx0aGlzLnVuaWZvcm1zPXt9LHRoaXMudmVydGV4U2hhZGVyPSJ2b2lkIG1haW4oKSB7XG5cdGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIG1vZGVsVmlld01hdHJpeCAqIHZlYzQoIHBvc2l0aW9uLCAxLjAgKTtcbn0iLHRoaXMuZnJhZ21lbnRTaGFkZXI9InZvaWQgbWFpbigpIHtcblx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggMS4wLCAwLjAsIDAuMCwgMS4wICk7XG59Iix0aGlzLmxpbmV3aWR0aD0xLHRoaXMud2lyZWZyYW1lPSExLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPTEsdGhpcy5mb2c9ITEsdGhpcy5saWdodHM9ITEsdGhpcy5jbGlwcGluZz0hMSx0aGlzLmV4dGVuc2lvbnM9e2Rlcml2YXRpdmVzOiExLGZyYWdEZXB0aDohMSxkcmF3QnVmZmVyczohMSxzaGFkZXJUZXh0dXJlTE9EOiExfSx0aGlzLmRlZmF1bHRBdHRyaWJ1dGVWYWx1ZXM9e2NvbG9yOlsxLDEsMV0sdXY6WzAsMF0sdXYyOlswLDBdfSx0aGlzLmluZGV4MEF0dHJpYnV0ZU5hbWU9dm9pZCAwLHRoaXMudW5pZm9ybXNOZWVkVXBkYXRlPSExLHRoaXMuZ2xzbFZlcnNpb249bnVsbCx2b2lkIDAhPT10JiYodm9pZCAwIT09dC5hdHRyaWJ1dGVzJiZjb25zb2xlLmVycm9yKCJUSFJFRS5TaGFkZXJNYXRlcmlhbDogYXR0cmlidXRlcyBzaG91bGQgbm93IGJlIGRlZmluZWQgaW4gVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKSx0aGlzLnNldFZhbHVlcyh0KSl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmZyYWdtZW50U2hhZGVyPXQuZnJhZ21lbnRTaGFkZXIsdGhpcy52ZXJ0ZXhTaGFkZXI9dC52ZXJ0ZXhTaGFkZXIsdGhpcy51bmlmb3Jtcz1RNHQodC51bmlmb3JtcyksdGhpcy5kZWZpbmVzPU9iamVjdC5hc3NpZ24oe30sdC5kZWZpbmVzKSx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLmxpZ2h0cz10LmxpZ2h0cyx0aGlzLmNsaXBwaW5nPXQuY2xpcHBpbmcsdGhpcy5leHRlbnNpb25zPU9iamVjdC5hc3NpZ24oe30sdC5leHRlbnNpb25zKSx0aGlzLmdsc2xWZXJzaW9uPXQuZ2xzbFZlcnNpb24sdGhpc310b0pTT04odCl7Y29uc3QgZT1zdXBlci50b0pTT04odCk7ZS5nbHNsVmVyc2lvbj10aGlzLmdsc2xWZXJzaW9uLGUudW5pZm9ybXM9e307Zm9yKGNvbnN0IG4gaW4gdGhpcy51bmlmb3Jtcyl7Y29uc3QgaT10aGlzLnVuaWZvcm1zW25dLnZhbHVlO2UudW5pZm9ybXNbbl09aSYmaS5pc1RleHR1cmU/e3R5cGU6InQiLHZhbHVlOmkudG9KU09OKHQpLnV1aWR9OmkmJmkuaXNDb2xvcj97dHlwZToiYyIsdmFsdWU6aS5nZXRIZXgoKX06aSYmaS5pc1ZlY3RvcjI/e3R5cGU6InYyIix2YWx1ZTppLnRvQXJyYXkoKX06aSYmaS5pc1ZlY3RvcjM/e3R5cGU6InYzIix2YWx1ZTppLnRvQXJyYXkoKX06aSYmaS5pc1ZlY3RvcjQ/e3R5cGU6InY0Iix2YWx1ZTppLnRvQXJyYXkoKX06aSYmaS5pc01hdHJpeDM/e3R5cGU6Im0zIix2YWx1ZTppLnRvQXJyYXkoKX06aSYmaS5pc01hdHJpeDQ/e3R5cGU6Im00Iix2YWx1ZTppLnRvQXJyYXkoKX06e3ZhbHVlOml9fU9iamVjdC5rZXlzKHRoaXMuZGVmaW5lcykubGVuZ3RoPjAmJihlLmRlZmluZXM9dGhpcy5kZWZpbmVzKSxlLnZlcnRleFNoYWRlcj10aGlzLnZlcnRleFNoYWRlcixlLmZyYWdtZW50U2hhZGVyPXRoaXMuZnJhZ21lbnRTaGFkZXI7Y29uc3Qgbj17fTtmb3IoY29uc3QgdCBpbiB0aGlzLmV4dGVuc2lvbnMpITA9PT10aGlzLmV4dGVuc2lvbnNbdF0mJihuW3RdPSEwKTtyZXR1cm4gT2JqZWN0LmtleXMobikubGVuZ3RoPjAmJihlLmV4dGVuc2lvbnM9biksZX19bjZ0LnByb3RvdHlwZS5pc1NoYWRlck1hdGVyaWFsPSEwO2NsYXNzIGk2dCBleHRlbmRzIFYzdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50eXBlPSJDYW1lcmEiLHRoaXMubWF0cml4V29ybGRJbnZlcnNlPW5ldyBnM3QsdGhpcy5wcm9qZWN0aW9uTWF0cml4PW5ldyBnM3QsdGhpcy5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZT1uZXcgZzN0fWNvcHkodCxlKXtyZXR1cm4gc3VwZXIuY29weSh0LGUpLHRoaXMubWF0cml4V29ybGRJbnZlcnNlLmNvcHkodC5tYXRyaXhXb3JsZEludmVyc2UpLHRoaXMucHJvamVjdGlvbk1hdHJpeC5jb3B5KHQucHJvamVjdGlvbk1hdHJpeCksdGhpcy5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZS5jb3B5KHQucHJvamVjdGlvbk1hdHJpeEludmVyc2UpLHRoaXN9Z2V0V29ybGREaXJlY3Rpb24odCl7dGhpcy51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSk7Y29uc3QgZT10aGlzLm1hdHJpeFdvcmxkLmVsZW1lbnRzO3JldHVybiB0LnNldCgtZVs4XSwtZVs5XSwtZVsxMF0pLm5vcm1hbGl6ZSgpfXVwZGF0ZU1hdHJpeFdvcmxkKHQpe3N1cGVyLnVwZGF0ZU1hdHJpeFdvcmxkKHQpLHRoaXMubWF0cml4V29ybGRJbnZlcnNlLmNvcHkodGhpcy5tYXRyaXhXb3JsZCkuaW52ZXJ0KCl9dXBkYXRlV29ybGRNYXRyaXgodCxlKXtzdXBlci51cGRhdGVXb3JsZE1hdHJpeCh0LGUpLHRoaXMubWF0cml4V29ybGRJbnZlcnNlLmNvcHkodGhpcy5tYXRyaXhXb3JsZCkuaW52ZXJ0KCl9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9fWk2dC5wcm90b3R5cGUuaXNDYW1lcmE9ITA7Y2xhc3MgcjZ0IGV4dGVuZHMgaTZ0e2NvbnN0cnVjdG9yKHQ9NTAsZT0xLG49LjEsaT0yZTMpe3N1cGVyKCksdGhpcy50eXBlPSJQZXJzcGVjdGl2ZUNhbWVyYSIsdGhpcy5mb3Y9dCx0aGlzLnpvb209MSx0aGlzLm5lYXI9bix0aGlzLmZhcj1pLHRoaXMuZm9jdXM9MTAsdGhpcy5hc3BlY3Q9ZSx0aGlzLnZpZXc9bnVsbCx0aGlzLmZpbG1HYXVnZT0zNSx0aGlzLmZpbG1PZmZzZXQ9MCx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX1jb3B5KHQsZSl7cmV0dXJuIHN1cGVyLmNvcHkodCxlKSx0aGlzLmZvdj10LmZvdix0aGlzLnpvb209dC56b29tLHRoaXMubmVhcj10Lm5lYXIsdGhpcy5mYXI9dC5mYXIsdGhpcy5mb2N1cz10LmZvY3VzLHRoaXMuYXNwZWN0PXQuYXNwZWN0LHRoaXMudmlldz1udWxsPT09dC52aWV3P251bGw6T2JqZWN0LmFzc2lnbih7fSx0LnZpZXcpLHRoaXMuZmlsbUdhdWdlPXQuZmlsbUdhdWdlLHRoaXMuZmlsbU9mZnNldD10LmZpbG1PZmZzZXQsdGhpc31zZXRGb2NhbExlbmd0aCh0KXtjb25zdCBlPS41KnRoaXMuZ2V0RmlsbUhlaWdodCgpL3Q7dGhpcy5mb3Y9MipvNXQqTWF0aC5hdGFuKGUpLHRoaXMudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfWdldEZvY2FsTGVuZ3RoKCl7Y29uc3QgdD1NYXRoLnRhbiguNSpyNXQqdGhpcy5mb3YpO3JldHVybi41KnRoaXMuZ2V0RmlsbUhlaWdodCgpL3R9Z2V0RWZmZWN0aXZlRk9WKCl7cmV0dXJuIDIqbzV0Kk1hdGguYXRhbihNYXRoLnRhbiguNSpyNXQqdGhpcy5mb3YpL3RoaXMuem9vbSl9Z2V0RmlsbVdpZHRoKCl7cmV0dXJuIHRoaXMuZmlsbUdhdWdlKk1hdGgubWluKHRoaXMuYXNwZWN0LDEpfWdldEZpbG1IZWlnaHQoKXtyZXR1cm4gdGhpcy5maWxtR2F1Z2UvTWF0aC5tYXgodGhpcy5hc3BlY3QsMSl9c2V0Vmlld09mZnNldCh0LGUsbixpLHIsbyl7dGhpcy5hc3BlY3Q9dC9lLG51bGw9PT10aGlzLnZpZXcmJih0aGlzLnZpZXc9e2VuYWJsZWQ6ITAsZnVsbFdpZHRoOjEsZnVsbEhlaWdodDoxLG9mZnNldFg6MCxvZmZzZXRZOjAsd2lkdGg6MSxoZWlnaHQ6MX0pLHRoaXMudmlldy5lbmFibGVkPSEwLHRoaXMudmlldy5mdWxsV2lkdGg9dCx0aGlzLnZpZXcuZnVsbEhlaWdodD1lLHRoaXMudmlldy5vZmZzZXRYPW4sdGhpcy52aWV3Lm9mZnNldFk9aSx0aGlzLnZpZXcud2lkdGg9cix0aGlzLnZpZXcuaGVpZ2h0PW8sdGhpcy51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9Y2xlYXJWaWV3T2Zmc2V0KCl7bnVsbCE9PXRoaXMudmlldyYmKHRoaXMudmlldy5lbmFibGVkPSExKSx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX11cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl7Y29uc3QgdD10aGlzLm5lYXI7bGV0IGU9dCpNYXRoLnRhbiguNSpyNXQqdGhpcy5mb3YpL3RoaXMuem9vbSxuPTIqZSxpPXRoaXMuYXNwZWN0Km4scj0tLjUqaTtjb25zdCBvPXRoaXMudmlldztpZihudWxsIT09dGhpcy52aWV3JiZ0aGlzLnZpZXcuZW5hYmxlZCl7Y29uc3QgdD1vLmZ1bGxXaWR0aCxhPW8uZnVsbEhlaWdodDtyKz1vLm9mZnNldFgqaS90LGUtPW8ub2Zmc2V0WSpuL2EsaSo9by53aWR0aC90LG4qPW8uaGVpZ2h0L2F9Y29uc3QgYT10aGlzLmZpbG1PZmZzZXQ7MCE9PWEmJihyKz10KmEvdGhpcy5nZXRGaWxtV2lkdGgoKSksdGhpcy5wcm9qZWN0aW9uTWF0cml4Lm1ha2VQZXJzcGVjdGl2ZShyLHIraSxlLGUtbix0LHRoaXMuZmFyKSx0aGlzLnByb2plY3Rpb25NYXRyaXhJbnZlcnNlLmNvcHkodGhpcy5wcm9qZWN0aW9uTWF0cml4KS5pbnZlcnQoKX10b0pTT04odCl7Y29uc3QgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIGUub2JqZWN0LmZvdj10aGlzLmZvdixlLm9iamVjdC56b29tPXRoaXMuem9vbSxlLm9iamVjdC5uZWFyPXRoaXMubmVhcixlLm9iamVjdC5mYXI9dGhpcy5mYXIsZS5vYmplY3QuZm9jdXM9dGhpcy5mb2N1cyxlLm9iamVjdC5hc3BlY3Q9dGhpcy5hc3BlY3QsbnVsbCE9PXRoaXMudmlldyYmKGUub2JqZWN0LnZpZXc9T2JqZWN0LmFzc2lnbih7fSx0aGlzLnZpZXcpKSxlLm9iamVjdC5maWxtR2F1Z2U9dGhpcy5maWxtR2F1Z2UsZS5vYmplY3QuZmlsbU9mZnNldD10aGlzLmZpbG1PZmZzZXQsZX19cjZ0LnByb3RvdHlwZS5pc1BlcnNwZWN0aXZlQ2FtZXJhPSEwO2NvbnN0IG82dD05MDtjbGFzcyBhNnQgZXh0ZW5kcyBWM3R7Y29uc3RydWN0b3IodCxlLG4pe2lmKHN1cGVyKCksdGhpcy50eXBlPSJDdWJlQ2FtZXJhIiwhMCE9PW4uaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuQ3ViZUNhbWVyYTogVGhlIGNvbnN0cnVjdG9yIG5vdyBleHBlY3RzIGFuIGluc3RhbmNlIG9mIFdlYkdMQ3ViZVJlbmRlclRhcmdldCBhcyB0aGlyZCBwYXJhbWV0ZXIuIik7dGhpcy5yZW5kZXJUYXJnZXQ9bjtjb25zdCBpPW5ldyByNnQobzZ0LDEsdCxlKTtpLmxheWVycz10aGlzLmxheWVycyxpLnVwLnNldCgwLC0xLDApLGkubG9va0F0KG5ldyBINXQoMSwwLDApKSx0aGlzLmFkZChpKTtjb25zdCByPW5ldyByNnQobzZ0LDEsdCxlKTtyLmxheWVycz10aGlzLmxheWVycyxyLnVwLnNldCgwLC0xLDApLHIubG9va0F0KG5ldyBINXQoLTEsMCwwKSksdGhpcy5hZGQocik7Y29uc3Qgbz1uZXcgcjZ0KG82dCwxLHQsZSk7by5sYXllcnM9dGhpcy5sYXllcnMsby51cC5zZXQoMCwwLDEpLG8ubG9va0F0KG5ldyBINXQoMCwxLDApKSx0aGlzLmFkZChvKTtjb25zdCBhPW5ldyByNnQobzZ0LDEsdCxlKTthLmxheWVycz10aGlzLmxheWVycyxhLnVwLnNldCgwLDAsLTEpLGEubG9va0F0KG5ldyBINXQoMCwtMSwwKSksdGhpcy5hZGQoYSk7Y29uc3Qgcz1uZXcgcjZ0KG82dCwxLHQsZSk7cy5sYXllcnM9dGhpcy5sYXllcnMscy51cC5zZXQoMCwtMSwwKSxzLmxvb2tBdChuZXcgSDV0KDAsMCwxKSksdGhpcy5hZGQocyk7Y29uc3QgbD1uZXcgcjZ0KG82dCwxLHQsZSk7bC5sYXllcnM9dGhpcy5sYXllcnMsbC51cC5zZXQoMCwtMSwwKSxsLmxvb2tBdChuZXcgSDV0KDAsMCwtMSkpLHRoaXMuYWRkKGwpfXVwZGF0ZSh0LGUpe251bGw9PT10aGlzLnBhcmVudCYmdGhpcy51cGRhdGVNYXRyaXhXb3JsZCgpO2NvbnN0IG49dGhpcy5yZW5kZXJUYXJnZXQsW2kscixvLGEscyxsXT10aGlzLmNoaWxkcmVuLGM9dC54ci5lbmFibGVkLHU9dC5nZXRSZW5kZXJUYXJnZXQoKTt0LnhyLmVuYWJsZWQ9ITE7Y29uc3QgaD1uLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzO24udGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHM9ITEsdC5zZXRSZW5kZXJUYXJnZXQobiwwKSx0LnJlbmRlcihlLGkpLHQuc2V0UmVuZGVyVGFyZ2V0KG4sMSksdC5yZW5kZXIoZSxyKSx0LnNldFJlbmRlclRhcmdldChuLDIpLHQucmVuZGVyKGUsbyksdC5zZXRSZW5kZXJUYXJnZXQobiwzKSx0LnJlbmRlcihlLGEpLHQuc2V0UmVuZGVyVGFyZ2V0KG4sNCksdC5yZW5kZXIoZSxzKSxuLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzPWgsdC5zZXRSZW5kZXJUYXJnZXQobiw1KSx0LnJlbmRlcihlLGwpLHQuc2V0UmVuZGVyVGFyZ2V0KHUpLHQueHIuZW5hYmxlZD1jfX1jbGFzcyBzNnQgZXh0ZW5kcyBONXR7Y29uc3RydWN0b3IodCxlLG4saSxyLG8sYSxzLGwsYyl7c3VwZXIodD12b2lkIDAhPT10P3Q6W10sZT12b2lkIDAhPT1lP2U6ZTJ0LG4saSxyLG8sYT12b2lkIDAhPT1hP2E6dzJ0LHMsbCxjKSx0aGlzLmZsaXBZPSExfWdldCBpbWFnZXMoKXtyZXR1cm4gdGhpcy5pbWFnZX1zZXQgaW1hZ2VzKHQpe3RoaXMuaW1hZ2U9dH19czZ0LnByb3RvdHlwZS5pc0N1YmVUZXh0dXJlPSEwO2NsYXNzIGw2dCBleHRlbmRzIE81dHtjb25zdHJ1Y3Rvcih0LGUsbil7TnVtYmVyLmlzSW50ZWdlcihlKSYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xDdWJlUmVuZGVyVGFyZ2V0OiBjb25zdHJ1Y3RvciBzaWduYXR1cmUgaXMgbm93IFdlYkdMQ3ViZVJlbmRlclRhcmdldCggc2l6ZSwgb3B0aW9ucyApIiksZT1uKSxzdXBlcih0LHQsZSksdGhpcy50ZXh0dXJlPW5ldyBzNnQodm9pZCAwLChlPWV8fHt9KS5tYXBwaW5nLGUud3JhcFMsZS53cmFwVCxlLm1hZ0ZpbHRlcixlLm1pbkZpbHRlcixlLmZvcm1hdCxlLnR5cGUsZS5hbmlzb3Ryb3B5LGUuZW5jb2RpbmcpLHRoaXMudGV4dHVyZS5pc1JlbmRlclRhcmdldFRleHR1cmU9ITAsdGhpcy50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcz12b2lkIDAhPT1lLmdlbmVyYXRlTWlwbWFwcyYmZS5nZW5lcmF0ZU1pcG1hcHMsdGhpcy50ZXh0dXJlLm1pbkZpbHRlcj12b2lkIDAhPT1lLm1pbkZpbHRlcj9lLm1pbkZpbHRlcjpwMnQsdGhpcy50ZXh0dXJlLl9uZWVkc0ZsaXBFbnZNYXA9ITF9ZnJvbUVxdWlyZWN0YW5ndWxhclRleHR1cmUodCxlKXt0aGlzLnRleHR1cmUudHlwZT1lLnR5cGUsdGhpcy50ZXh0dXJlLmZvcm1hdD1TMnQsdGhpcy50ZXh0dXJlLmVuY29kaW5nPWUuZW5jb2RpbmcsdGhpcy50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcz1lLmdlbmVyYXRlTWlwbWFwcyx0aGlzLnRleHR1cmUubWluRmlsdGVyPWUubWluRmlsdGVyLHRoaXMudGV4dHVyZS5tYWdGaWx0ZXI9ZS5tYWdGaWx0ZXI7Y29uc3Qgbj17dW5pZm9ybXM6e3RFcXVpcmVjdDp7dmFsdWU6bnVsbH19LHZlcnRleFNoYWRlcjoiXG5cblx0XHRcdFx0dmFyeWluZyB2ZWMzIHZXb3JsZERpcmVjdGlvbjtcblxuXHRcdFx0XHR2ZWMzIHRyYW5zZm9ybURpcmVjdGlvbiggaW4gdmVjMyBkaXIsIGluIG1hdDQgbWF0cml4ICkge1xuXG5cdFx0XHRcdFx0cmV0dXJuIG5vcm1hbGl6ZSggKCBtYXRyaXggKiB2ZWM0KCBkaXIsIDAuMCApICkueHl6ICk7XG5cblx0XHRcdFx0fVxuXG5cdFx0XHRcdHZvaWQgbWFpbigpIHtcblxuXHRcdFx0XHRcdHZXb3JsZERpcmVjdGlvbiA9IHRyYW5zZm9ybURpcmVjdGlvbiggcG9zaXRpb24sIG1vZGVsTWF0cml4ICk7XG5cblx0XHRcdFx0XHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHRcdFx0XHRcdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblxuXHRcdFx0XHR9XG5cdFx0XHQiLGZyYWdtZW50U2hhZGVyOiJcblxuXHRcdFx0XHR1bmlmb3JtIHNhbXBsZXIyRCB0RXF1aXJlY3Q7XG5cblx0XHRcdFx0dmFyeWluZyB2ZWMzIHZXb3JsZERpcmVjdGlvbjtcblxuXHRcdFx0XHQjaW5jbHVkZSA8Y29tbW9uPlxuXG5cdFx0XHRcdHZvaWQgbWFpbigpIHtcblxuXHRcdFx0XHRcdHZlYzMgZGlyZWN0aW9uID0gbm9ybWFsaXplKCB2V29ybGREaXJlY3Rpb24gKTtcblxuXHRcdFx0XHRcdHZlYzIgc2FtcGxlVVYgPSBlcXVpcmVjdFV2KCBkaXJlY3Rpb24gKTtcblxuXHRcdFx0XHRcdGdsX0ZyYWdDb2xvciA9IHRleHR1cmUyRCggdEVxdWlyZWN0LCBzYW1wbGVVViApO1xuXG5cdFx0XHRcdH1cblx0XHRcdCJ9LGk9bmV3IEo0dCg1LDUsNSkscj1uZXcgbjZ0KHtuYW1lOiJDdWJlbWFwRnJvbUVxdWlyZWN0Iix1bmlmb3JtczpRNHQobi51bmlmb3JtcyksdmVydGV4U2hhZGVyOm4udmVydGV4U2hhZGVyLGZyYWdtZW50U2hhZGVyOm4uZnJhZ21lbnRTaGFkZXIsc2lkZToxLGJsZW5kaW5nOjB9KTtyLnVuaWZvcm1zLnRFcXVpcmVjdC52YWx1ZT1lO2NvbnN0IG89bmV3IEs0dChpLHIpLGE9ZS5taW5GaWx0ZXI7ZS5taW5GaWx0ZXI9PT1tMnQmJihlLm1pbkZpbHRlcj1wMnQpO3JldHVybiBuZXcgYTZ0KDEsMTAsdGhpcykudXBkYXRlKHQsbyksZS5taW5GaWx0ZXI9YSxvLmdlb21ldHJ5LmRpc3Bvc2UoKSxvLm1hdGVyaWFsLmRpc3Bvc2UoKSx0aGlzfWNsZWFyKHQsZSxuLGkpe2NvbnN0IHI9dC5nZXRSZW5kZXJUYXJnZXQoKTtmb3IobGV0IHI9MDtyPDY7cisrKXQuc2V0UmVuZGVyVGFyZ2V0KHRoaXMsciksdC5jbGVhcihlLG4saSk7dC5zZXRSZW5kZXJUYXJnZXQocil9fWw2dC5wcm90b3R5cGUuaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQ9ITA7Y29uc3QgYzZ0PW5ldyBINXQsdTZ0PW5ldyBINXQsaDZ0PW5ldyBBNXQ7Y2xhc3MgZDZ0e2NvbnN0cnVjdG9yKHQ9bmV3IEg1dCgxLDAsMCksZT0wKXt0aGlzLm5vcm1hbD10LHRoaXMuY29uc3RhbnQ9ZX1zZXQodCxlKXtyZXR1cm4gdGhpcy5ub3JtYWwuY29weSh0KSx0aGlzLmNvbnN0YW50PWUsdGhpc31zZXRDb21wb25lbnRzKHQsZSxuLGkpe3JldHVybiB0aGlzLm5vcm1hbC5zZXQodCxlLG4pLHRoaXMuY29uc3RhbnQ9aSx0aGlzfXNldEZyb21Ob3JtYWxBbmRDb3BsYW5hclBvaW50KHQsZSl7cmV0dXJuIHRoaXMubm9ybWFsLmNvcHkodCksdGhpcy5jb25zdGFudD0tZS5kb3QodGhpcy5ub3JtYWwpLHRoaXN9c2V0RnJvbUNvcGxhbmFyUG9pbnRzKHQsZSxuKXtjb25zdCBpPWM2dC5zdWJWZWN0b3JzKG4sZSkuY3Jvc3ModTZ0LnN1YlZlY3RvcnModCxlKSkubm9ybWFsaXplKCk7cmV0dXJuIHRoaXMuc2V0RnJvbU5vcm1hbEFuZENvcGxhbmFyUG9pbnQoaSx0KSx0aGlzfWNvcHkodCl7cmV0dXJuIHRoaXMubm9ybWFsLmNvcHkodC5ub3JtYWwpLHRoaXMuY29uc3RhbnQ9dC5jb25zdGFudCx0aGlzfW5vcm1hbGl6ZSgpe2NvbnN0IHQ9MS90aGlzLm5vcm1hbC5sZW5ndGgoKTtyZXR1cm4gdGhpcy5ub3JtYWwubXVsdGlwbHlTY2FsYXIodCksdGhpcy5jb25zdGFudCo9dCx0aGlzfW5lZ2F0ZSgpe3JldHVybiB0aGlzLmNvbnN0YW50Kj0tMSx0aGlzLm5vcm1hbC5uZWdhdGUoKSx0aGlzfWRpc3RhbmNlVG9Qb2ludCh0KXtyZXR1cm4gdGhpcy5ub3JtYWwuZG90KHQpK3RoaXMuY29uc3RhbnR9ZGlzdGFuY2VUb1NwaGVyZSh0KXtyZXR1cm4gdGhpcy5kaXN0YW5jZVRvUG9pbnQodC5jZW50ZXIpLXQucmFkaXVzfXByb2plY3RQb2ludCh0LGUpe3JldHVybiBlLmNvcHkodGhpcy5ub3JtYWwpLm11bHRpcGx5U2NhbGFyKC10aGlzLmRpc3RhbmNlVG9Qb2ludCh0KSkuYWRkKHQpfWludGVyc2VjdExpbmUodCxlKXtjb25zdCBuPXQuZGVsdGEoYzZ0KSxpPXRoaXMubm9ybWFsLmRvdChuKTtpZigwPT09aSlyZXR1cm4gMD09PXRoaXMuZGlzdGFuY2VUb1BvaW50KHQuc3RhcnQpP2UuY29weSh0LnN0YXJ0KTpudWxsO2NvbnN0IHI9LSh0LnN0YXJ0LmRvdCh0aGlzLm5vcm1hbCkrdGhpcy5jb25zdGFudCkvaTtyZXR1cm4gcjwwfHxyPjE/bnVsbDplLmNvcHkobikubXVsdGlwbHlTY2FsYXIocikuYWRkKHQuc3RhcnQpfWludGVyc2VjdHNMaW5lKHQpe2NvbnN0IGU9dGhpcy5kaXN0YW5jZVRvUG9pbnQodC5zdGFydCksbj10aGlzLmRpc3RhbmNlVG9Qb2ludCh0LmVuZCk7cmV0dXJuIGU8MCYmbj4wfHxuPDAmJmU+MH1pbnRlcnNlY3RzQm94KHQpe3JldHVybiB0LmludGVyc2VjdHNQbGFuZSh0aGlzKX1pbnRlcnNlY3RzU3BoZXJlKHQpe3JldHVybiB0LmludGVyc2VjdHNQbGFuZSh0aGlzKX1jb3BsYW5hclBvaW50KHQpe3JldHVybiB0LmNvcHkodGhpcy5ub3JtYWwpLm11bHRpcGx5U2NhbGFyKC10aGlzLmNvbnN0YW50KX1hcHBseU1hdHJpeDQodCxlKXtjb25zdCBuPWV8fGg2dC5nZXROb3JtYWxNYXRyaXgodCksaT10aGlzLmNvcGxhbmFyUG9pbnQoYzZ0KS5hcHBseU1hdHJpeDQodCkscj10aGlzLm5vcm1hbC5hcHBseU1hdHJpeDMobikubm9ybWFsaXplKCk7cmV0dXJuIHRoaXMuY29uc3RhbnQ9LWkuZG90KHIpLHRoaXN9dHJhbnNsYXRlKHQpe3JldHVybiB0aGlzLmNvbnN0YW50LT10LmRvdCh0aGlzLm5vcm1hbCksdGhpc31lcXVhbHModCl7cmV0dXJuIHQubm9ybWFsLmVxdWFscyh0aGlzLm5vcm1hbCkmJnQuY29uc3RhbnQ9PT10aGlzLmNvbnN0YW50fWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfX1kNnQucHJvdG90eXBlLmlzUGxhbmU9ITA7Y29uc3QgcDZ0PW5ldyBzM3QsZjZ0PW5ldyBINXQ7Y2xhc3MgbTZ0e2NvbnN0cnVjdG9yKHQ9bmV3IGQ2dCxlPW5ldyBkNnQsbj1uZXcgZDZ0LGk9bmV3IGQ2dCxyPW5ldyBkNnQsbz1uZXcgZDZ0KXt0aGlzLnBsYW5lcz1bdCxlLG4saSxyLG9dfXNldCh0LGUsbixpLHIsbyl7Y29uc3QgYT10aGlzLnBsYW5lcztyZXR1cm4gYVswXS5jb3B5KHQpLGFbMV0uY29weShlKSxhWzJdLmNvcHkobiksYVszXS5jb3B5KGkpLGFbNF0uY29weShyKSxhWzVdLmNvcHkobyksdGhpc31jb3B5KHQpe2NvbnN0IGU9dGhpcy5wbGFuZXM7Zm9yKGxldCBuPTA7bjw2O24rKyllW25dLmNvcHkodC5wbGFuZXNbbl0pO3JldHVybiB0aGlzfXNldEZyb21Qcm9qZWN0aW9uTWF0cml4KHQpe2NvbnN0IGU9dGhpcy5wbGFuZXMsbj10LmVsZW1lbnRzLGk9blswXSxyPW5bMV0sbz1uWzJdLGE9blszXSxzPW5bNF0sbD1uWzVdLGM9bls2XSx1PW5bN10saD1uWzhdLGQ9bls5XSxwPW5bMTBdLGY9blsxMV0sbT1uWzEyXSxnPW5bMTNdLF89blsxNF0seT1uWzE1XTtyZXR1cm4gZVswXS5zZXRDb21wb25lbnRzKGEtaSx1LXMsZi1oLHktbSkubm9ybWFsaXplKCksZVsxXS5zZXRDb21wb25lbnRzKGEraSx1K3MsZitoLHkrbSkubm9ybWFsaXplKCksZVsyXS5zZXRDb21wb25lbnRzKGErcix1K2wsZitkLHkrZykubm9ybWFsaXplKCksZVszXS5zZXRDb21wb25lbnRzKGEtcix1LWwsZi1kLHktZykubm9ybWFsaXplKCksZVs0XS5zZXRDb21wb25lbnRzKGEtbyx1LWMsZi1wLHktXykubm9ybWFsaXplKCksZVs1XS5zZXRDb21wb25lbnRzKGErbyx1K2MsZitwLHkrXykubm9ybWFsaXplKCksdGhpc31pbnRlcnNlY3RzT2JqZWN0KHQpe2NvbnN0IGU9dC5nZW9tZXRyeTtyZXR1cm4gbnVsbD09PWUuYm91bmRpbmdTcGhlcmUmJmUuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCkscDZ0LmNvcHkoZS5ib3VuZGluZ1NwaGVyZSkuYXBwbHlNYXRyaXg0KHQubWF0cml4V29ybGQpLHRoaXMuaW50ZXJzZWN0c1NwaGVyZShwNnQpfWludGVyc2VjdHNTcHJpdGUodCl7cmV0dXJuIHA2dC5jZW50ZXIuc2V0KDAsMCwwKSxwNnQucmFkaXVzPS43MDcxMDY3ODExODY1NDc2LHA2dC5hcHBseU1hdHJpeDQodC5tYXRyaXhXb3JsZCksdGhpcy5pbnRlcnNlY3RzU3BoZXJlKHA2dCl9aW50ZXJzZWN0c1NwaGVyZSh0KXtjb25zdCBlPXRoaXMucGxhbmVzLG49dC5jZW50ZXIsaT0tdC5yYWRpdXM7Zm9yKGxldCB0PTA7dDw2O3QrKyl7aWYoZVt0XS5kaXN0YW5jZVRvUG9pbnQobik8aSlyZXR1cm4hMX1yZXR1cm4hMH1pbnRlcnNlY3RzQm94KHQpe2NvbnN0IGU9dGhpcy5wbGFuZXM7Zm9yKGxldCBuPTA7bjw2O24rKyl7Y29uc3QgaT1lW25dO2lmKGY2dC54PWkubm9ybWFsLng+MD90Lm1heC54OnQubWluLngsZjZ0Lnk9aS5ub3JtYWwueT4wP3QubWF4Lnk6dC5taW4ueSxmNnQuej1pLm5vcm1hbC56PjA/dC5tYXguejp0Lm1pbi56LGkuZGlzdGFuY2VUb1BvaW50KGY2dCk8MClyZXR1cm4hMX1yZXR1cm4hMH1jb250YWluc1BvaW50KHQpe2NvbnN0IGU9dGhpcy5wbGFuZXM7Zm9yKGxldCBuPTA7bjw2O24rKylpZihlW25dLmRpc3RhbmNlVG9Qb2ludCh0KTwwKXJldHVybiExO3JldHVybiEwfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfX1mdW5jdGlvbiBnNnQoKXtsZXQgdD1udWxsLGU9ITEsbj1udWxsLGk9bnVsbDtmdW5jdGlvbiByKGUsbyl7bihlLG8pLGk9dC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUocil9cmV0dXJue3N0YXJ0OmZ1bmN0aW9uKCl7ITAhPT1lJiZudWxsIT09biYmKGk9dC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUociksZT0hMCl9LHN0b3A6ZnVuY3Rpb24oKXt0LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGkpLGU9ITF9LHNldEFuaW1hdGlvbkxvb3A6ZnVuY3Rpb24odCl7bj10fSxzZXRDb250ZXh0OmZ1bmN0aW9uKGUpe3Q9ZX19fWZ1bmN0aW9uIF82dCh0LGUpe2NvbnN0IG49ZS5pc1dlYkdMMixpPW5ldyBXZWFrTWFwO3JldHVybntnZXQ6ZnVuY3Rpb24gcih0KXtyZXR1cm4gdC5pc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlJiYodD10LmRhdGEpLGkuZ2V0KHQpfSxyZW1vdmU6ZnVuY3Rpb24gbyhlKXtlLmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUmJihlPWUuZGF0YSk7Y29uc3Qgbj1pLmdldChlKTtuJiYodC5kZWxldGVCdWZmZXIobi5idWZmZXIpLGkuZGVsZXRlKGUpKX0sdXBkYXRlOmZ1bmN0aW9uIGEoZSxyKXtpZihlLmlzR0xCdWZmZXJBdHRyaWJ1dGUpe2NvbnN0IHQ9aS5nZXQoZSk7cmV0dXJuIHZvaWQoKCF0fHx0LnZlcnNpb248ZS52ZXJzaW9uKSYmaS5zZXQoZSx7YnVmZmVyOmUuYnVmZmVyLHR5cGU6ZS50eXBlLGJ5dGVzUGVyRWxlbWVudDplLmVsZW1lbnRTaXplLHZlcnNpb246ZS52ZXJzaW9ufSkpfWUuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZSYmKGU9ZS5kYXRhKTtjb25zdCBvPWkuZ2V0KGUpO3ZvaWQgMD09PW8/aS5zZXQoZSwoZnVuY3Rpb24gYShlLGkpe2NvbnN0IHI9ZS5hcnJheSxvPWUudXNhZ2UsYT10LmNyZWF0ZUJ1ZmZlcigpO3QuYmluZEJ1ZmZlcihpLGEpLHQuYnVmZmVyRGF0YShpLHIsbyksZS5vblVwbG9hZENhbGxiYWNrKCk7bGV0IHM9NTEyNjtyZXR1cm4gciBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheT9zPTUxMjY6ciBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheT9jb25zb2xlLndhcm4oIlRIUkVFLldlYkdMQXR0cmlidXRlczogVW5zdXBwb3J0ZWQgZGF0YSBidWZmZXIgZm9ybWF0OiBGbG9hdDY0QXJyYXkuIik6ciBpbnN0YW5jZW9mIFVpbnQxNkFycmF5P2UuaXNGbG9hdDE2QnVmZmVyQXR0cmlidXRlP24/cz01MTMxOmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xBdHRyaWJ1dGVzOiBVc2FnZSBvZiBGbG9hdDE2QnVmZmVyQXR0cmlidXRlIHJlcXVpcmVzIFdlYkdMMi4iKTpzPTUxMjM6ciBpbnN0YW5jZW9mIEludDE2QXJyYXk/cz01MTIyOnIgaW5zdGFuY2VvZiBVaW50MzJBcnJheT9zPTUxMjU6ciBpbnN0YW5jZW9mIEludDMyQXJyYXk/cz01MTI0OnIgaW5zdGFuY2VvZiBJbnQ4QXJyYXk/cz01MTIwOihyIGluc3RhbmNlb2YgVWludDhBcnJheXx8ciBpbnN0YW5jZW9mIFVpbnQ4Q2xhbXBlZEFycmF5KSYmKHM9NTEyMSkse2J1ZmZlcjphLHR5cGU6cyxieXRlc1BlckVsZW1lbnQ6ci5CWVRFU19QRVJfRUxFTUVOVCx2ZXJzaW9uOmUudmVyc2lvbn19KShlLHIpKTpvLnZlcnNpb248ZS52ZXJzaW9uJiYoIShmdW5jdGlvbiBzKGUsaSxyKXtjb25zdCBvPWkuYXJyYXksYT1pLnVwZGF0ZVJhbmdlO3QuYmluZEJ1ZmZlcihyLGUpLC0xPT09YS5jb3VudD90LmJ1ZmZlclN1YkRhdGEociwwLG8pOihuP3QuYnVmZmVyU3ViRGF0YShyLGEub2Zmc2V0Km8uQllURVNfUEVSX0VMRU1FTlQsbyxhLm9mZnNldCxhLmNvdW50KTp0LmJ1ZmZlclN1YkRhdGEocixhLm9mZnNldCpvLkJZVEVTX1BFUl9FTEVNRU5ULG8uc3ViYXJyYXkoYS5vZmZzZXQsYS5vZmZzZXQrYS5jb3VudCkpLGEuY291bnQ9LTEpfSkoby5idWZmZXIsZSxyKSxvLnZlcnNpb249ZS52ZXJzaW9uKX19fWNsYXNzIHk2dCBleHRlbmRzIE40dHtjb25zdHJ1Y3Rvcih0PTEsZT0xLG49MSxpPTEpe3N1cGVyKCksdGhpcy50eXBlPSJQbGFuZUdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3dpZHRoOnQsaGVpZ2h0OmUsd2lkdGhTZWdtZW50czpuLGhlaWdodFNlZ21lbnRzOml9O2NvbnN0IHI9dC8yLG89ZS8yLGE9TWF0aC5mbG9vcihuKSxzPU1hdGguZmxvb3IoaSksbD1hKzEsYz1zKzEsdT10L2EsaD1lL3MsZD1bXSxwPVtdLGY9W10sbT1bXTtmb3IobGV0IHQ9MDt0PGM7dCsrKXtjb25zdCBlPXQqaC1vO2ZvcihsZXQgbj0wO248bDtuKyspe3AucHVzaChuKnUtciwtZSwwKSxmLnB1c2goMCwwLDEpLG0ucHVzaChuL2EpLG0ucHVzaCgxLXQvcyl9fWZvcihsZXQgdD0wO3Q8czt0KyspZm9yKGxldCBlPTA7ZTxhO2UrKyl7Y29uc3Qgbj1lK2wqKHQrMSksaT1lKzErbCoodCsxKSxyPWUrMStsKnQ7ZC5wdXNoKGUrbCp0LG4sciksZC5wdXNoKG4saSxyKX10aGlzLnNldEluZGV4KGQpLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGI0dChwLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgYjR0KGYsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IGI0dChtLDIpKX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyB5NnQodC53aWR0aCx0LmhlaWdodCx0LndpZHRoU2VnbWVudHMsdC5oZWlnaHRTZWdtZW50cyl9fWNvbnN0IHY2dD17YWxwaGFtYXBfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfQUxQSEFNQVBcblx0ZGlmZnVzZUNvbG9yLmEgKj0gdGV4dHVyZTJEKCBhbHBoYU1hcCwgdlV2ICkuZztcbiNlbmRpZiIsYWxwaGFtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9BTFBIQU1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBhbHBoYU1hcDtcbiNlbmRpZiIsYWxwaGF0ZXN0X2ZyYWdtZW50OiIjaWZkZWYgQUxQSEFURVNUXG5cdGlmICggZGlmZnVzZUNvbG9yLmEgPCBBTFBIQVRFU1QgKSBkaXNjYXJkO1xuI2VuZGlmIixhb21hcF9mcmFnbWVudDoiI2lmZGVmIFVTRV9BT01BUFxuXHRmbG9hdCBhbWJpZW50T2NjbHVzaW9uID0gKCB0ZXh0dXJlMkQoIGFvTWFwLCB2VXYyICkuciAtIDEuMCApICogYW9NYXBJbnRlbnNpdHkgKyAxLjA7XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSAqPSBhbWJpZW50T2NjbHVzaW9uO1xuXHQjaWYgZGVmaW5lZCggVVNFX0VOVk1BUCApICYmIGRlZmluZWQoIFNUQU5EQVJEIClcblx0XHRmbG9hdCBkb3ROViA9IHNhdHVyYXRlKCBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgZ2VvbWV0cnkudmlld0RpciApICk7XG5cdFx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3RTcGVjdWxhciAqPSBjb21wdXRlU3BlY3VsYXJPY2NsdXNpb24oIGRvdE5WLCBhbWJpZW50T2NjbHVzaW9uLCBtYXRlcmlhbC5zcGVjdWxhclJvdWdobmVzcyApO1xuXHQjZW5kaWZcbiNlbmRpZiIsYW9tYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9BT01BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBhb01hcDtcblx0dW5pZm9ybSBmbG9hdCBhb01hcEludGVuc2l0eTtcbiNlbmRpZiIsYmVnaW5fdmVydGV4OiJ2ZWMzIHRyYW5zZm9ybWVkID0gdmVjMyggcG9zaXRpb24gKTsiLGJlZ2lubm9ybWFsX3ZlcnRleDoidmVjMyBvYmplY3ROb3JtYWwgPSB2ZWMzKCBub3JtYWwgKTtcbiNpZmRlZiBVU0VfVEFOR0VOVFxuXHR2ZWMzIG9iamVjdFRhbmdlbnQgPSB2ZWMzKCB0YW5nZW50Lnh5eiApO1xuI2VuZGlmIixic2RmczoidmVjMiBpbnRlZ3JhdGVTcGVjdWxhckJSREYoIGNvbnN0IGluIGZsb2F0IGRvdE5WLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MgKSB7XG5cdGNvbnN0IHZlYzQgYzAgPSB2ZWM0KCAtIDEsIC0gMC4wMjc1LCAtIDAuNTcyLCAwLjAyMiApO1xuXHRjb25zdCB2ZWM0IGMxID0gdmVjNCggMSwgMC4wNDI1LCAxLjA0LCAtIDAuMDQgKTtcblx0dmVjNCByID0gcm91Z2huZXNzICogYzAgKyBjMTtcblx0ZmxvYXQgYTAwNCA9IG1pbiggci54ICogci54LCBleHAyKCAtIDkuMjggKiBkb3ROViApICkgKiByLnggKyByLnk7XG5cdHJldHVybiB2ZWMyKCAtMS4wNCwgMS4wNCApICogYTAwNCArIHIuenc7XG59XG5mbG9hdCBwdW5jdHVhbExpZ2h0SW50ZW5zaXR5VG9JcnJhZGlhbmNlRmFjdG9yKCBjb25zdCBpbiBmbG9hdCBsaWdodERpc3RhbmNlLCBjb25zdCBpbiBmbG9hdCBjdXRvZmZEaXN0YW5jZSwgY29uc3QgaW4gZmxvYXQgZGVjYXlFeHBvbmVudCApIHtcbiNpZiBkZWZpbmVkICggUEhZU0lDQUxMWV9DT1JSRUNUX0xJR0hUUyApXG5cdGZsb2F0IGRpc3RhbmNlRmFsbG9mZiA9IDEuMCAvIG1heCggcG93KCBsaWdodERpc3RhbmNlLCBkZWNheUV4cG9uZW50ICksIDAuMDEgKTtcblx0aWYoIGN1dG9mZkRpc3RhbmNlID4gMC4wICkge1xuXHRcdGRpc3RhbmNlRmFsbG9mZiAqPSBwb3cyKCBzYXR1cmF0ZSggMS4wIC0gcG93NCggbGlnaHREaXN0YW5jZSAvIGN1dG9mZkRpc3RhbmNlICkgKSApO1xuXHR9XG5cdHJldHVybiBkaXN0YW5jZUZhbGxvZmY7XG4jZWxzZVxuXHRpZiggY3V0b2ZmRGlzdGFuY2UgPiAwLjAgJiYgZGVjYXlFeHBvbmVudCA+IDAuMCApIHtcblx0XHRyZXR1cm4gcG93KCBzYXR1cmF0ZSggLWxpZ2h0RGlzdGFuY2UgLyBjdXRvZmZEaXN0YW5jZSArIDEuMCApLCBkZWNheUV4cG9uZW50ICk7XG5cdH1cblx0cmV0dXJuIDEuMDtcbiNlbmRpZlxufVxudmVjMyBCUkRGX0RpZmZ1c2VfTGFtYmVydCggY29uc3QgaW4gdmVjMyBkaWZmdXNlQ29sb3IgKSB7XG5cdHJldHVybiBSRUNJUFJPQ0FMX1BJICogZGlmZnVzZUNvbG9yO1xufVxudmVjMyBGX1NjaGxpY2soIGNvbnN0IGluIHZlYzMgZjAsIGNvbnN0IGluIHZlYzMgZjkwLCBjb25zdCBpbiBmbG9hdCBkb3RWSCApIHtcblx0ZmxvYXQgZnJlc25lbCA9IGV4cDIoICggLTUuNTU0NzMgKiBkb3RWSCAtIDYuOTgzMTYgKSAqIGRvdFZIICk7XG5cdHJldHVybiAoIGY5MCAtIGYwICkgKiBmcmVzbmVsICsgZjA7XG59XG52ZWMzIEZfU2NobGlja19Sb3VnaG5lc3NEZXBlbmRlbnQoIGNvbnN0IGluIHZlYzMgRjAsIGNvbnN0IGluIGZsb2F0IGRvdE5WLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MgKSB7XG5cdGZsb2F0IGZyZXNuZWwgPSBleHAyKCAoIC01LjU1NDczICogZG90TlYgLSA2Ljk4MzE2ICkgKiBkb3ROViApO1xuXHR2ZWMzIEZyID0gbWF4KCB2ZWMzKCAxLjAgLSByb3VnaG5lc3MgKSwgRjAgKSAtIEYwO1xuXHRyZXR1cm4gRnIgKiBmcmVzbmVsICsgRjA7XG59XG5mbG9hdCBHX0dHWF9TbWl0aCggY29uc3QgaW4gZmxvYXQgYWxwaGEsIGNvbnN0IGluIGZsb2F0IGRvdE5MLCBjb25zdCBpbiBmbG9hdCBkb3ROViApIHtcblx0ZmxvYXQgYTIgPSBwb3cyKCBhbHBoYSApO1xuXHRmbG9hdCBnbCA9IGRvdE5MICsgc3FydCggYTIgKyAoIDEuMCAtIGEyICkgKiBwb3cyKCBkb3ROTCApICk7XG5cdGZsb2F0IGd2ID0gZG90TlYgKyBzcXJ0KCBhMiArICggMS4wIC0gYTIgKSAqIHBvdzIoIGRvdE5WICkgKTtcblx0cmV0dXJuIDEuMCAvICggZ2wgKiBndiApO1xufVxuZmxvYXQgR19HR1hfU21pdGhDb3JyZWxhdGVkKCBjb25zdCBpbiBmbG9hdCBhbHBoYSwgY29uc3QgaW4gZmxvYXQgZG90TkwsIGNvbnN0IGluIGZsb2F0IGRvdE5WICkge1xuXHRmbG9hdCBhMiA9IHBvdzIoIGFscGhhICk7XG5cdGZsb2F0IGd2ID0gZG90TkwgKiBzcXJ0KCBhMiArICggMS4wIC0gYTIgKSAqIHBvdzIoIGRvdE5WICkgKTtcblx0ZmxvYXQgZ2wgPSBkb3ROViAqIHNxcnQoIGEyICsgKCAxLjAgLSBhMiApICogcG93MiggZG90TkwgKSApO1xuXHRyZXR1cm4gMC41IC8gbWF4KCBndiArIGdsLCBFUFNJTE9OICk7XG59XG5mbG9hdCBEX0dHWCggY29uc3QgaW4gZmxvYXQgYWxwaGEsIGNvbnN0IGluIGZsb2F0IGRvdE5IICkge1xuXHRmbG9hdCBhMiA9IHBvdzIoIGFscGhhICk7XG5cdGZsb2F0IGRlbm9tID0gcG93MiggZG90TkggKSAqICggYTIgLSAxLjAgKSArIDEuMDtcblx0cmV0dXJuIFJFQ0lQUk9DQUxfUEkgKiBhMiAvIHBvdzIoIGRlbm9tICk7XG59XG52ZWMzIEJSREZfU3BlY3VsYXJfR0dYKCBjb25zdCBpbiBJbmNpZGVudExpZ2h0IGluY2lkZW50TGlnaHQsIGNvbnN0IGluIHZlYzMgdmlld0RpciwgY29uc3QgaW4gdmVjMyBub3JtYWwsIGNvbnN0IGluIHZlYzMgZjAsIGNvbnN0IGluIHZlYzMgZjkwLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MgKSB7XG5cdGZsb2F0IGFscGhhID0gcG93Miggcm91Z2huZXNzICk7XG5cdHZlYzMgaGFsZkRpciA9IG5vcm1hbGl6ZSggaW5jaWRlbnRMaWdodC5kaXJlY3Rpb24gKyB2aWV3RGlyICk7XG5cdGZsb2F0IGRvdE5MID0gc2F0dXJhdGUoIGRvdCggbm9ybWFsLCBpbmNpZGVudExpZ2h0LmRpcmVjdGlvbiApICk7XG5cdGZsb2F0IGRvdE5WID0gc2F0dXJhdGUoIGRvdCggbm9ybWFsLCB2aWV3RGlyICkgKTtcblx0ZmxvYXQgZG90TkggPSBzYXR1cmF0ZSggZG90KCBub3JtYWwsIGhhbGZEaXIgKSApO1xuXHRmbG9hdCBkb3RMSCA9IHNhdHVyYXRlKCBkb3QoIGluY2lkZW50TGlnaHQuZGlyZWN0aW9uLCBoYWxmRGlyICkgKTtcblx0dmVjMyBGID0gRl9TY2hsaWNrKCBmMCwgZjkwLCBkb3RMSCApO1xuXHRmbG9hdCBHID0gR19HR1hfU21pdGhDb3JyZWxhdGVkKCBhbHBoYSwgZG90TkwsIGRvdE5WICk7XG5cdGZsb2F0IEQgPSBEX0dHWCggYWxwaGEsIGRvdE5IICk7XG5cdHJldHVybiBGICogKCBHICogRCApO1xufVxudmVjMiBMVENfVXYoIGNvbnN0IGluIHZlYzMgTiwgY29uc3QgaW4gdmVjMyBWLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MgKSB7XG5cdGNvbnN0IGZsb2F0IExVVF9TSVpFID0gNjQuMDtcblx0Y29uc3QgZmxvYXQgTFVUX1NDQUxFID0gKCBMVVRfU0laRSAtIDEuMCApIC8gTFVUX1NJWkU7XG5cdGNvbnN0IGZsb2F0IExVVF9CSUFTID0gMC41IC8gTFVUX1NJWkU7XG5cdGZsb2F0IGRvdE5WID0gc2F0dXJhdGUoIGRvdCggTiwgViApICk7XG5cdHZlYzIgdXYgPSB2ZWMyKCByb3VnaG5lc3MsIHNxcnQoIDEuMCAtIGRvdE5WICkgKTtcblx0dXYgPSB1diAqIExVVF9TQ0FMRSArIExVVF9CSUFTO1xuXHRyZXR1cm4gdXY7XG59XG5mbG9hdCBMVENfQ2xpcHBlZFNwaGVyZUZvcm1GYWN0b3IoIGNvbnN0IGluIHZlYzMgZiApIHtcblx0ZmxvYXQgbCA9IGxlbmd0aCggZiApO1xuXHRyZXR1cm4gbWF4KCAoIGwgKiBsICsgZi56ICkgLyAoIGwgKyAxLjAgKSwgMC4wICk7XG59XG52ZWMzIExUQ19FZGdlVmVjdG9yRm9ybUZhY3RvciggY29uc3QgaW4gdmVjMyB2MSwgY29uc3QgaW4gdmVjMyB2MiApIHtcblx0ZmxvYXQgeCA9IGRvdCggdjEsIHYyICk7XG5cdGZsb2F0IHkgPSBhYnMoIHggKTtcblx0ZmxvYXQgYSA9IDAuODU0Mzk4NSArICggMC40OTY1MTU1ICsgMC4wMTQ1MjA2ICogeSApICogeTtcblx0ZmxvYXQgYiA9IDMuNDE3NTk0MCArICggNC4xNjE2NzI0ICsgeSApICogeTtcblx0ZmxvYXQgdiA9IGEgLyBiO1xuXHRmbG9hdCB0aGV0YV9zaW50aGV0YSA9ICggeCA+IDAuMCApID8gdiA6IDAuNSAqIGludmVyc2VzcXJ0KCBtYXgoIDEuMCAtIHggKiB4LCAxZS03ICkgKSAtIHY7XG5cdHJldHVybiBjcm9zcyggdjEsIHYyICkgKiB0aGV0YV9zaW50aGV0YTtcbn1cbnZlYzMgTFRDX0V2YWx1YXRlKCBjb25zdCBpbiB2ZWMzIE4sIGNvbnN0IGluIHZlYzMgViwgY29uc3QgaW4gdmVjMyBQLCBjb25zdCBpbiBtYXQzIG1JbnYsIGNvbnN0IGluIHZlYzMgcmVjdENvb3Jkc1sgNCBdICkge1xuXHR2ZWMzIHYxID0gcmVjdENvb3Jkc1sgMSBdIC0gcmVjdENvb3Jkc1sgMCBdO1xuXHR2ZWMzIHYyID0gcmVjdENvb3Jkc1sgMyBdIC0gcmVjdENvb3Jkc1sgMCBdO1xuXHR2ZWMzIGxpZ2h0Tm9ybWFsID0gY3Jvc3MoIHYxLCB2MiApO1xuXHRpZiggZG90KCBsaWdodE5vcm1hbCwgUCAtIHJlY3RDb29yZHNbIDAgXSApIDwgMC4wICkgcmV0dXJuIHZlYzMoIDAuMCApO1xuXHR2ZWMzIFQxLCBUMjtcblx0VDEgPSBub3JtYWxpemUoIFYgLSBOICogZG90KCBWLCBOICkgKTtcblx0VDIgPSAtIGNyb3NzKCBOLCBUMSApO1xuXHRtYXQzIG1hdCA9IG1JbnYgKiB0cmFuc3Bvc2VNYXQzKCBtYXQzKCBUMSwgVDIsIE4gKSApO1xuXHR2ZWMzIGNvb3Jkc1sgNCBdO1xuXHRjb29yZHNbIDAgXSA9IG1hdCAqICggcmVjdENvb3Jkc1sgMCBdIC0gUCApO1xuXHRjb29yZHNbIDEgXSA9IG1hdCAqICggcmVjdENvb3Jkc1sgMSBdIC0gUCApO1xuXHRjb29yZHNbIDIgXSA9IG1hdCAqICggcmVjdENvb3Jkc1sgMiBdIC0gUCApO1xuXHRjb29yZHNbIDMgXSA9IG1hdCAqICggcmVjdENvb3Jkc1sgMyBdIC0gUCApO1xuXHRjb29yZHNbIDAgXSA9IG5vcm1hbGl6ZSggY29vcmRzWyAwIF0gKTtcblx0Y29vcmRzWyAxIF0gPSBub3JtYWxpemUoIGNvb3Jkc1sgMSBdICk7XG5cdGNvb3Jkc1sgMiBdID0gbm9ybWFsaXplKCBjb29yZHNbIDIgXSApO1xuXHRjb29yZHNbIDMgXSA9IG5vcm1hbGl6ZSggY29vcmRzWyAzIF0gKTtcblx0dmVjMyB2ZWN0b3JGb3JtRmFjdG9yID0gdmVjMyggMC4wICk7XG5cdHZlY3RvckZvcm1GYWN0b3IgKz0gTFRDX0VkZ2VWZWN0b3JGb3JtRmFjdG9yKCBjb29yZHNbIDAgXSwgY29vcmRzWyAxIF0gKTtcblx0dmVjdG9yRm9ybUZhY3RvciArPSBMVENfRWRnZVZlY3RvckZvcm1GYWN0b3IoIGNvb3Jkc1sgMSBdLCBjb29yZHNbIDIgXSApO1xuXHR2ZWN0b3JGb3JtRmFjdG9yICs9IExUQ19FZGdlVmVjdG9yRm9ybUZhY3RvciggY29vcmRzWyAyIF0sIGNvb3Jkc1sgMyBdICk7XG5cdHZlY3RvckZvcm1GYWN0b3IgKz0gTFRDX0VkZ2VWZWN0b3JGb3JtRmFjdG9yKCBjb29yZHNbIDMgXSwgY29vcmRzWyAwIF0gKTtcblx0ZmxvYXQgcmVzdWx0ID0gTFRDX0NsaXBwZWRTcGhlcmVGb3JtRmFjdG9yKCB2ZWN0b3JGb3JtRmFjdG9yICk7XG5cdHJldHVybiB2ZWMzKCByZXN1bHQgKTtcbn1cbnZlYzMgQlJERl9TcGVjdWxhcl9HR1hfRW52aXJvbm1lbnQoIGNvbnN0IGluIHZlYzMgdmlld0RpciwgY29uc3QgaW4gdmVjMyBub3JtYWwsIGNvbnN0IGluIHZlYzMgc3BlY3VsYXJDb2xvciwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzICkge1xuXHRmbG9hdCBkb3ROViA9IHNhdHVyYXRlKCBkb3QoIG5vcm1hbCwgdmlld0RpciApICk7XG5cdHZlYzIgYnJkZiA9IGludGVncmF0ZVNwZWN1bGFyQlJERiggZG90TlYsIHJvdWdobmVzcyApO1xuXHRyZXR1cm4gc3BlY3VsYXJDb2xvciAqIGJyZGYueCArIGJyZGYueTtcbn1cbnZvaWQgQlJERl9TcGVjdWxhcl9NdWx0aXNjYXR0ZXJpbmdfRW52aXJvbm1lbnQoIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIHZlYzMgc3BlY3VsYXJDb2xvciwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzLCBpbm91dCB2ZWMzIHNpbmdsZVNjYXR0ZXIsIGlub3V0IHZlYzMgbXVsdGlTY2F0dGVyICkge1xuXHRmbG9hdCBkb3ROViA9IHNhdHVyYXRlKCBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgZ2VvbWV0cnkudmlld0RpciApICk7XG5cdHZlYzMgRiA9IEZfU2NobGlja19Sb3VnaG5lc3NEZXBlbmRlbnQoIHNwZWN1bGFyQ29sb3IsIGRvdE5WLCByb3VnaG5lc3MgKTtcblx0dmVjMiBicmRmID0gaW50ZWdyYXRlU3BlY3VsYXJCUkRGKCBkb3ROViwgcm91Z2huZXNzICk7XG5cdHZlYzMgRnNzRXNzID0gRiAqIGJyZGYueCArIGJyZGYueTtcblx0ZmxvYXQgRXNzID0gYnJkZi54ICsgYnJkZi55O1xuXHRmbG9hdCBFbXMgPSAxLjAgLSBFc3M7XG5cdHZlYzMgRmF2ZyA9IHNwZWN1bGFyQ29sb3IgKyAoIDEuMCAtIHNwZWN1bGFyQ29sb3IgKSAqIDAuMDQ3NjE5O1x0dmVjMyBGbXMgPSBGc3NFc3MgKiBGYXZnIC8gKCAxLjAgLSBFbXMgKiBGYXZnICk7XG5cdHNpbmdsZVNjYXR0ZXIgKz0gRnNzRXNzO1xuXHRtdWx0aVNjYXR0ZXIgKz0gRm1zICogRW1zO1xufVxuZmxvYXQgR19CbGlublBob25nX0ltcGxpY2l0KCApIHtcblx0cmV0dXJuIDAuMjU7XG59XG5mbG9hdCBEX0JsaW5uUGhvbmcoIGNvbnN0IGluIGZsb2F0IHNoaW5pbmVzcywgY29uc3QgaW4gZmxvYXQgZG90TkggKSB7XG5cdHJldHVybiBSRUNJUFJPQ0FMX1BJICogKCBzaGluaW5lc3MgKiAwLjUgKyAxLjAgKSAqIHBvdyggZG90TkgsIHNoaW5pbmVzcyApO1xufVxudmVjMyBCUkRGX1NwZWN1bGFyX0JsaW5uUGhvbmcoIGNvbnN0IGluIEluY2lkZW50TGlnaHQgaW5jaWRlbnRMaWdodCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gdmVjMyBzcGVjdWxhckNvbG9yLCBjb25zdCBpbiBmbG9hdCBzaGluaW5lc3MgKSB7XG5cdHZlYzMgaGFsZkRpciA9IG5vcm1hbGl6ZSggaW5jaWRlbnRMaWdodC5kaXJlY3Rpb24gKyBnZW9tZXRyeS52aWV3RGlyICk7XG5cdGZsb2F0IGRvdE5IID0gc2F0dXJhdGUoIGRvdCggZ2VvbWV0cnkubm9ybWFsLCBoYWxmRGlyICkgKTtcblx0ZmxvYXQgZG90TEggPSBzYXR1cmF0ZSggZG90KCBpbmNpZGVudExpZ2h0LmRpcmVjdGlvbiwgaGFsZkRpciApICk7XG5cdHZlYzMgRiA9IEZfU2NobGljayggc3BlY3VsYXJDb2xvciwgdmVjMyggMS4wICksIGRvdExIICk7XG5cdGZsb2F0IEcgPSBHX0JsaW5uUGhvbmdfSW1wbGljaXQoICk7XG5cdGZsb2F0IEQgPSBEX0JsaW5uUGhvbmcoIHNoaW5pbmVzcywgZG90TkggKTtcblx0cmV0dXJuIEYgKiAoIEcgKiBEICk7XG59XG5mbG9hdCBHR1hSb3VnaG5lc3NUb0JsaW5uRXhwb25lbnQoIGNvbnN0IGluIGZsb2F0IGdneFJvdWdobmVzcyApIHtcblx0cmV0dXJuICggMi4wIC8gcG93MiggZ2d4Um91Z2huZXNzICsgMC4wMDAxICkgLSAyLjAgKTtcbn1cbmZsb2F0IEJsaW5uRXhwb25lbnRUb0dHWFJvdWdobmVzcyggY29uc3QgaW4gZmxvYXQgYmxpbm5FeHBvbmVudCApIHtcblx0cmV0dXJuIHNxcnQoIDIuMCAvICggYmxpbm5FeHBvbmVudCArIDIuMCApICk7XG59XG4jaWYgZGVmaW5lZCggVVNFX1NIRUVOIClcbmZsb2F0IERfQ2hhcmxpZShmbG9hdCByb3VnaG5lc3MsIGZsb2F0IE5vSCkge1xuXHRmbG9hdCBpbnZBbHBoYSA9IDEuMCAvIHJvdWdobmVzcztcblx0ZmxvYXQgY29zMmggPSBOb0ggKiBOb0g7XG5cdGZsb2F0IHNpbjJoID0gbWF4KDEuMCAtIGNvczJoLCAwLjAwNzgxMjUpO1x0cmV0dXJuICgyLjAgKyBpbnZBbHBoYSkgKiBwb3coc2luMmgsIGludkFscGhhICogMC41KSAvICgyLjAgKiBQSSk7XG59XG5mbG9hdCBWX05ldWJlbHQoZmxvYXQgTm9WLCBmbG9hdCBOb0wpIHtcblx0cmV0dXJuIHNhdHVyYXRlKDEuMCAvICg0LjAgKiAoTm9MICsgTm9WIC0gTm9MICogTm9WKSkpO1xufVxudmVjMyBCUkRGX1NwZWN1bGFyX1NoZWVuKCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MsIGNvbnN0IGluIHZlYzMgTCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgdmVjMyBzcGVjdWxhckNvbG9yICkge1xuXHR2ZWMzIE4gPSBnZW9tZXRyeS5ub3JtYWw7XG5cdHZlYzMgViA9IGdlb21ldHJ5LnZpZXdEaXI7XG5cdHZlYzMgSCA9IG5vcm1hbGl6ZSggViArIEwgKTtcblx0ZmxvYXQgZG90TkggPSBzYXR1cmF0ZSggZG90KCBOLCBIICkgKTtcblx0cmV0dXJuIHNwZWN1bGFyQ29sb3IgKiBEX0NoYXJsaWUoIHJvdWdobmVzcywgZG90TkggKSAqIFZfTmV1YmVsdCggZG90KE4sIFYpLCBkb3QoTiwgTCkgKTtcbn1cbiNlbmRpZiIsYnVtcG1hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0JVTVBNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgYnVtcE1hcDtcblx0dW5pZm9ybSBmbG9hdCBidW1wU2NhbGU7XG5cdHZlYzIgZEhkeHlfZndkKCkge1xuXHRcdHZlYzIgZFNUZHggPSBkRmR4KCB2VXYgKTtcblx0XHR2ZWMyIGRTVGR5ID0gZEZkeSggdlV2ICk7XG5cdFx0ZmxvYXQgSGxsID0gYnVtcFNjYWxlICogdGV4dHVyZTJEKCBidW1wTWFwLCB2VXYgKS54O1xuXHRcdGZsb2F0IGRCeCA9IGJ1bXBTY2FsZSAqIHRleHR1cmUyRCggYnVtcE1hcCwgdlV2ICsgZFNUZHggKS54IC0gSGxsO1xuXHRcdGZsb2F0IGRCeSA9IGJ1bXBTY2FsZSAqIHRleHR1cmUyRCggYnVtcE1hcCwgdlV2ICsgZFNUZHkgKS54IC0gSGxsO1xuXHRcdHJldHVybiB2ZWMyKCBkQngsIGRCeSApO1xuXHR9XG5cdHZlYzMgcGVydHVyYk5vcm1hbEFyYiggdmVjMyBzdXJmX3BvcywgdmVjMyBzdXJmX25vcm0sIHZlYzIgZEhkeHksIGZsb2F0IGZhY2VEaXJlY3Rpb24gKSB7XG5cdFx0dmVjMyB2U2lnbWFYID0gdmVjMyggZEZkeCggc3VyZl9wb3MueCApLCBkRmR4KCBzdXJmX3Bvcy55ICksIGRGZHgoIHN1cmZfcG9zLnogKSApO1xuXHRcdHZlYzMgdlNpZ21hWSA9IHZlYzMoIGRGZHkoIHN1cmZfcG9zLnggKSwgZEZkeSggc3VyZl9wb3MueSApLCBkRmR5KCBzdXJmX3Bvcy56ICkgKTtcblx0XHR2ZWMzIHZOID0gc3VyZl9ub3JtO1xuXHRcdHZlYzMgUjEgPSBjcm9zcyggdlNpZ21hWSwgdk4gKTtcblx0XHR2ZWMzIFIyID0gY3Jvc3MoIHZOLCB2U2lnbWFYICk7XG5cdFx0ZmxvYXQgZkRldCA9IGRvdCggdlNpZ21hWCwgUjEgKSAqIGZhY2VEaXJlY3Rpb247XG5cdFx0dmVjMyB2R3JhZCA9IHNpZ24oIGZEZXQgKSAqICggZEhkeHkueCAqIFIxICsgZEhkeHkueSAqIFIyICk7XG5cdFx0cmV0dXJuIG5vcm1hbGl6ZSggYWJzKCBmRGV0ICkgKiBzdXJmX25vcm0gLSB2R3JhZCApO1xuXHR9XG4jZW5kaWYiLGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudDoiI2lmIE5VTV9DTElQUElOR19QTEFORVMgPiAwXG5cdHZlYzQgcGxhbmU7XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgVU5JT05fQ0xJUFBJTkdfUExBTkVTOyBpICsrICkge1xuXHRcdHBsYW5lID0gY2xpcHBpbmdQbGFuZXNbIGkgXTtcblx0XHRpZiAoIGRvdCggdkNsaXBQb3NpdGlvbiwgcGxhbmUueHl6ICkgPiBwbGFuZS53ICkgZGlzY2FyZDtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXHQjaWYgVU5JT05fQ0xJUFBJTkdfUExBTkVTIDwgTlVNX0NMSVBQSU5HX1BMQU5FU1xuXHRcdGJvb2wgY2xpcHBlZCA9IHRydWU7XG5cdFx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRcdGZvciAoIGludCBpID0gVU5JT05fQ0xJUFBJTkdfUExBTkVTOyBpIDwgTlVNX0NMSVBQSU5HX1BMQU5FUzsgaSArKyApIHtcblx0XHRcdHBsYW5lID0gY2xpcHBpbmdQbGFuZXNbIGkgXTtcblx0XHRcdGNsaXBwZWQgPSAoIGRvdCggdkNsaXBQb3NpdGlvbiwgcGxhbmUueHl6ICkgPiBwbGFuZS53ICkgJiYgY2xpcHBlZDtcblx0XHR9XG5cdFx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcblx0XHRpZiAoIGNsaXBwZWQgKSBkaXNjYXJkO1xuXHQjZW5kaWZcbiNlbmRpZiIsY2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ6IiNpZiBOVU1fQ0xJUFBJTkdfUExBTkVTID4gMFxuXHR2YXJ5aW5nIHZlYzMgdkNsaXBQb3NpdGlvbjtcblx0dW5pZm9ybSB2ZWM0IGNsaXBwaW5nUGxhbmVzWyBOVU1fQ0xJUFBJTkdfUExBTkVTIF07XG4jZW5kaWYiLGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleDoiI2lmIE5VTV9DTElQUElOR19QTEFORVMgPiAwXG5cdHZhcnlpbmcgdmVjMyB2Q2xpcFBvc2l0aW9uO1xuI2VuZGlmIixjbGlwcGluZ19wbGFuZXNfdmVydGV4OiIjaWYgTlVNX0NMSVBQSU5HX1BMQU5FUyA+IDBcblx0dkNsaXBQb3NpdGlvbiA9IC0gbXZQb3NpdGlvbi54eXo7XG4jZW5kaWYiLGNvbG9yX2ZyYWdtZW50OiIjaWYgZGVmaW5lZCggVVNFX0NPTE9SX0FMUEhBIClcblx0ZGlmZnVzZUNvbG9yICo9IHZDb2xvcjtcbiNlbGlmIGRlZmluZWQoIFVTRV9DT0xPUiApXG5cdGRpZmZ1c2VDb2xvci5yZ2IgKj0gdkNvbG9yO1xuI2VuZGlmIixjb2xvcl9wYXJzX2ZyYWdtZW50OiIjaWYgZGVmaW5lZCggVVNFX0NPTE9SX0FMUEhBIClcblx0dmFyeWluZyB2ZWM0IHZDb2xvcjtcbiNlbGlmIGRlZmluZWQoIFVTRV9DT0xPUiApXG5cdHZhcnlpbmcgdmVjMyB2Q29sb3I7XG4jZW5kaWYiLGNvbG9yX3BhcnNfdmVydGV4OiIjaWYgZGVmaW5lZCggVVNFX0NPTE9SX0FMUEhBIClcblx0dmFyeWluZyB2ZWM0IHZDb2xvcjtcbiNlbGlmIGRlZmluZWQoIFVTRV9DT0xPUiApIHx8IGRlZmluZWQoIFVTRV9JTlNUQU5DSU5HX0NPTE9SIClcblx0dmFyeWluZyB2ZWMzIHZDb2xvcjtcbiNlbmRpZiIsY29sb3JfdmVydGV4OiIjaWYgZGVmaW5lZCggVVNFX0NPTE9SX0FMUEhBIClcblx0dkNvbG9yID0gdmVjNCggMS4wICk7XG4jZWxpZiBkZWZpbmVkKCBVU0VfQ09MT1IgKSB8fCBkZWZpbmVkKCBVU0VfSU5TVEFOQ0lOR19DT0xPUiApXG5cdHZDb2xvciA9IHZlYzMoIDEuMCApO1xuI2VuZGlmXG4jaWZkZWYgVVNFX0NPTE9SXG5cdHZDb2xvciAqPSBjb2xvcjtcbiNlbmRpZlxuI2lmZGVmIFVTRV9JTlNUQU5DSU5HX0NPTE9SXG5cdHZDb2xvci54eXogKj0gaW5zdGFuY2VDb2xvci54eXo7XG4jZW5kaWYiLGNvbW1vbjoiI2RlZmluZSBQSSAzLjE0MTU5MjY1MzU4OTc5M1xuI2RlZmluZSBQSTIgNi4yODMxODUzMDcxNzk1ODZcbiNkZWZpbmUgUElfSEFMRiAxLjU3MDc5NjMyNjc5NDg5NjZcbiNkZWZpbmUgUkVDSVBST0NBTF9QSSAwLjMxODMwOTg4NjE4Mzc5MDdcbiNkZWZpbmUgUkVDSVBST0NBTF9QSTIgMC4xNTkxNTQ5NDMwOTE4OTUzNVxuI2RlZmluZSBFUFNJTE9OIDFlLTZcbiNpZm5kZWYgc2F0dXJhdGVcbiNkZWZpbmUgc2F0dXJhdGUoYSkgY2xhbXAoIGEsIDAuMCwgMS4wIClcbiNlbmRpZlxuI2RlZmluZSB3aGl0ZUNvbXBsZW1lbnQoYSkgKCAxLjAgLSBzYXR1cmF0ZSggYSApIClcbmZsb2F0IHBvdzIoIGNvbnN0IGluIGZsb2F0IHggKSB7IHJldHVybiB4Kng7IH1cbmZsb2F0IHBvdzMoIGNvbnN0IGluIGZsb2F0IHggKSB7IHJldHVybiB4KngqeDsgfVxuZmxvYXQgcG93NCggY29uc3QgaW4gZmxvYXQgeCApIHsgZmxvYXQgeDIgPSB4Kng7IHJldHVybiB4Mip4MjsgfVxuZmxvYXQgYXZlcmFnZSggY29uc3QgaW4gdmVjMyBjb2xvciApIHsgcmV0dXJuIGRvdCggY29sb3IsIHZlYzMoIDAuMzMzMyApICk7IH1cbmhpZ2hwIGZsb2F0IHJhbmQoIGNvbnN0IGluIHZlYzIgdXYgKSB7XG5cdGNvbnN0IGhpZ2hwIGZsb2F0IGEgPSAxMi45ODk4LCBiID0gNzguMjMzLCBjID0gNDM3NTguNTQ1Mztcblx0aGlnaHAgZmxvYXQgZHQgPSBkb3QoIHV2Lnh5LCB2ZWMyKCBhLGIgKSApLCBzbiA9IG1vZCggZHQsIFBJICk7XG5cdHJldHVybiBmcmFjdChzaW4oc24pICogYyk7XG59XG4jaWZkZWYgSElHSF9QUkVDSVNJT05cblx0ZmxvYXQgcHJlY2lzaW9uU2FmZUxlbmd0aCggdmVjMyB2ICkgeyByZXR1cm4gbGVuZ3RoKCB2ICk7IH1cbiNlbHNlXG5cdGZsb2F0IG1heDMoIHZlYzMgdiApIHsgcmV0dXJuIG1heCggbWF4KCB2LngsIHYueSApLCB2LnogKTsgfVxuXHRmbG9hdCBwcmVjaXNpb25TYWZlTGVuZ3RoKCB2ZWMzIHYgKSB7XG5cdFx0ZmxvYXQgbWF4Q29tcG9uZW50ID0gbWF4MyggYWJzKCB2ICkgKTtcblx0XHRyZXR1cm4gbGVuZ3RoKCB2IC8gbWF4Q29tcG9uZW50ICkgKiBtYXhDb21wb25lbnQ7XG5cdH1cbiNlbmRpZlxuc3RydWN0IEluY2lkZW50TGlnaHQge1xuXHR2ZWMzIGNvbG9yO1xuXHR2ZWMzIGRpcmVjdGlvbjtcblx0Ym9vbCB2aXNpYmxlO1xufTtcbnN0cnVjdCBSZWZsZWN0ZWRMaWdodCB7XG5cdHZlYzMgZGlyZWN0RGlmZnVzZTtcblx0dmVjMyBkaXJlY3RTcGVjdWxhcjtcblx0dmVjMyBpbmRpcmVjdERpZmZ1c2U7XG5cdHZlYzMgaW5kaXJlY3RTcGVjdWxhcjtcbn07XG5zdHJ1Y3QgR2VvbWV0cmljQ29udGV4dCB7XG5cdHZlYzMgcG9zaXRpb247XG5cdHZlYzMgbm9ybWFsO1xuXHR2ZWMzIHZpZXdEaXI7XG4jaWZkZWYgQ0xFQVJDT0FUXG5cdHZlYzMgY2xlYXJjb2F0Tm9ybWFsO1xuI2VuZGlmXG59O1xudmVjMyB0cmFuc2Zvcm1EaXJlY3Rpb24oIGluIHZlYzMgZGlyLCBpbiBtYXQ0IG1hdHJpeCApIHtcblx0cmV0dXJuIG5vcm1hbGl6ZSggKCBtYXRyaXggKiB2ZWM0KCBkaXIsIDAuMCApICkueHl6ICk7XG59XG52ZWMzIGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIGluIHZlYzMgZGlyLCBpbiBtYXQ0IG1hdHJpeCApIHtcblx0cmV0dXJuIG5vcm1hbGl6ZSggKCB2ZWM0KCBkaXIsIDAuMCApICogbWF0cml4ICkueHl6ICk7XG59XG52ZWMzIHByb2plY3RPblBsYW5lKGluIHZlYzMgcG9pbnQsIGluIHZlYzMgcG9pbnRPblBsYW5lLCBpbiB2ZWMzIHBsYW5lTm9ybWFsICkge1xuXHRmbG9hdCBkaXN0YW5jZSA9IGRvdCggcGxhbmVOb3JtYWwsIHBvaW50IC0gcG9pbnRPblBsYW5lICk7XG5cdHJldHVybiAtIGRpc3RhbmNlICogcGxhbmVOb3JtYWwgKyBwb2ludDtcbn1cbmZsb2F0IHNpZGVPZlBsYW5lKCBpbiB2ZWMzIHBvaW50LCBpbiB2ZWMzIHBvaW50T25QbGFuZSwgaW4gdmVjMyBwbGFuZU5vcm1hbCApIHtcblx0cmV0dXJuIHNpZ24oIGRvdCggcG9pbnQgLSBwb2ludE9uUGxhbmUsIHBsYW5lTm9ybWFsICkgKTtcbn1cbnZlYzMgbGluZVBsYW5lSW50ZXJzZWN0KCBpbiB2ZWMzIHBvaW50T25MaW5lLCBpbiB2ZWMzIGxpbmVEaXJlY3Rpb24sIGluIHZlYzMgcG9pbnRPblBsYW5lLCBpbiB2ZWMzIHBsYW5lTm9ybWFsICkge1xuXHRyZXR1cm4gbGluZURpcmVjdGlvbiAqICggZG90KCBwbGFuZU5vcm1hbCwgcG9pbnRPblBsYW5lIC0gcG9pbnRPbkxpbmUgKSAvIGRvdCggcGxhbmVOb3JtYWwsIGxpbmVEaXJlY3Rpb24gKSApICsgcG9pbnRPbkxpbmU7XG59XG5tYXQzIHRyYW5zcG9zZU1hdDMoIGNvbnN0IGluIG1hdDMgbSApIHtcblx0bWF0MyB0bXA7XG5cdHRtcFsgMCBdID0gdmVjMyggbVsgMCBdLngsIG1bIDEgXS54LCBtWyAyIF0ueCApO1xuXHR0bXBbIDEgXSA9IHZlYzMoIG1bIDAgXS55LCBtWyAxIF0ueSwgbVsgMiBdLnkgKTtcblx0dG1wWyAyIF0gPSB2ZWMzKCBtWyAwIF0ueiwgbVsgMSBdLnosIG1bIDIgXS56ICk7XG5cdHJldHVybiB0bXA7XG59XG5mbG9hdCBsaW5lYXJUb1JlbGF0aXZlTHVtaW5hbmNlKCBjb25zdCBpbiB2ZWMzIGNvbG9yICkge1xuXHR2ZWMzIHdlaWdodHMgPSB2ZWMzKCAwLjIxMjYsIDAuNzE1MiwgMC4wNzIyICk7XG5cdHJldHVybiBkb3QoIHdlaWdodHMsIGNvbG9yLnJnYiApO1xufVxuYm9vbCBpc1BlcnNwZWN0aXZlTWF0cml4KCBtYXQ0IG0gKSB7XG5cdHJldHVybiBtWyAyIF1bIDMgXSA9PSAtIDEuMDtcbn1cbnZlYzIgZXF1aXJlY3RVdiggaW4gdmVjMyBkaXIgKSB7XG5cdGZsb2F0IHUgPSBhdGFuKCBkaXIueiwgZGlyLnggKSAqIFJFQ0lQUk9DQUxfUEkyICsgMC41O1xuXHRmbG9hdCB2ID0gYXNpbiggY2xhbXAoIGRpci55LCAtIDEuMCwgMS4wICkgKSAqIFJFQ0lQUk9DQUxfUEkgKyAwLjU7XG5cdHJldHVybiB2ZWMyKCB1LCB2ICk7XG59IixjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ6IiNpZmRlZiBFTlZNQVBfVFlQRV9DVUJFX1VWXG5cdCNkZWZpbmUgY3ViZVVWX21heE1pcExldmVsIDguMFxuXHQjZGVmaW5lIGN1YmVVVl9taW5NaXBMZXZlbCA0LjBcblx0I2RlZmluZSBjdWJlVVZfbWF4VGlsZVNpemUgMjU2LjBcblx0I2RlZmluZSBjdWJlVVZfbWluVGlsZVNpemUgMTYuMFxuXHRmbG9hdCBnZXRGYWNlKCB2ZWMzIGRpcmVjdGlvbiApIHtcblx0XHR2ZWMzIGFic0RpcmVjdGlvbiA9IGFicyggZGlyZWN0aW9uICk7XG5cdFx0ZmxvYXQgZmFjZSA9IC0gMS4wO1xuXHRcdGlmICggYWJzRGlyZWN0aW9uLnggPiBhYnNEaXJlY3Rpb24ueiApIHtcblx0XHRcdGlmICggYWJzRGlyZWN0aW9uLnggPiBhYnNEaXJlY3Rpb24ueSApXG5cdFx0XHRcdGZhY2UgPSBkaXJlY3Rpb24ueCA+IDAuMCA/IDAuMCA6IDMuMDtcblx0XHRcdGVsc2Vcblx0XHRcdFx0ZmFjZSA9IGRpcmVjdGlvbi55ID4gMC4wID8gMS4wIDogNC4wO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAoIGFic0RpcmVjdGlvbi56ID4gYWJzRGlyZWN0aW9uLnkgKVxuXHRcdFx0XHRmYWNlID0gZGlyZWN0aW9uLnogPiAwLjAgPyAyLjAgOiA1LjA7XG5cdFx0XHRlbHNlXG5cdFx0XHRcdGZhY2UgPSBkaXJlY3Rpb24ueSA+IDAuMCA/IDEuMCA6IDQuMDtcblx0XHR9XG5cdFx0cmV0dXJuIGZhY2U7XG5cdH1cblx0dmVjMiBnZXRVViggdmVjMyBkaXJlY3Rpb24sIGZsb2F0IGZhY2UgKSB7XG5cdFx0dmVjMiB1djtcblx0XHRpZiAoIGZhY2UgPT0gMC4wICkge1xuXHRcdFx0dXYgPSB2ZWMyKCBkaXJlY3Rpb24ueiwgZGlyZWN0aW9uLnkgKSAvIGFicyggZGlyZWN0aW9uLnggKTtcblx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDEuMCApIHtcblx0XHRcdHV2ID0gdmVjMiggLSBkaXJlY3Rpb24ueCwgLSBkaXJlY3Rpb24ueiApIC8gYWJzKCBkaXJlY3Rpb24ueSApO1xuXHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMi4wICkge1xuXHRcdFx0dXYgPSB2ZWMyKCAtIGRpcmVjdGlvbi54LCBkaXJlY3Rpb24ueSApIC8gYWJzKCBkaXJlY3Rpb24ueiApO1xuXHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMy4wICkge1xuXHRcdFx0dXYgPSB2ZWMyKCAtIGRpcmVjdGlvbi56LCBkaXJlY3Rpb24ueSApIC8gYWJzKCBkaXJlY3Rpb24ueCApO1xuXHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gNC4wICkge1xuXHRcdFx0dXYgPSB2ZWMyKCAtIGRpcmVjdGlvbi54LCBkaXJlY3Rpb24ueiApIC8gYWJzKCBkaXJlY3Rpb24ueSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR1diA9IHZlYzIoIGRpcmVjdGlvbi54LCBkaXJlY3Rpb24ueSApIC8gYWJzKCBkaXJlY3Rpb24ueiApO1xuXHRcdH1cblx0XHRyZXR1cm4gMC41ICogKCB1diArIDEuMCApO1xuXHR9XG5cdHZlYzMgYmlsaW5lYXJDdWJlVVYoIHNhbXBsZXIyRCBlbnZNYXAsIHZlYzMgZGlyZWN0aW9uLCBmbG9hdCBtaXBJbnQgKSB7XG5cdFx0ZmxvYXQgZmFjZSA9IGdldEZhY2UoIGRpcmVjdGlvbiApO1xuXHRcdGZsb2F0IGZpbHRlckludCA9IG1heCggY3ViZVVWX21pbk1pcExldmVsIC0gbWlwSW50LCAwLjAgKTtcblx0XHRtaXBJbnQgPSBtYXgoIG1pcEludCwgY3ViZVVWX21pbk1pcExldmVsICk7XG5cdFx0ZmxvYXQgZmFjZVNpemUgPSBleHAyKCBtaXBJbnQgKTtcblx0XHRmbG9hdCB0ZXhlbFNpemUgPSAxLjAgLyAoIDMuMCAqIGN1YmVVVl9tYXhUaWxlU2l6ZSApO1xuXHRcdHZlYzIgdXYgPSBnZXRVViggZGlyZWN0aW9uLCBmYWNlICkgKiAoIGZhY2VTaXplIC0gMS4wICk7XG5cdFx0dmVjMiBmID0gZnJhY3QoIHV2ICk7XG5cdFx0dXYgKz0gMC41IC0gZjtcblx0XHRpZiAoIGZhY2UgPiAyLjAgKSB7XG5cdFx0XHR1di55ICs9IGZhY2VTaXplO1xuXHRcdFx0ZmFjZSAtPSAzLjA7XG5cdFx0fVxuXHRcdHV2LnggKz0gZmFjZSAqIGZhY2VTaXplO1xuXHRcdGlmICggbWlwSW50IDwgY3ViZVVWX21heE1pcExldmVsICkge1xuXHRcdFx0dXYueSArPSAyLjAgKiBjdWJlVVZfbWF4VGlsZVNpemU7XG5cdFx0fVxuXHRcdHV2LnkgKz0gZmlsdGVySW50ICogMi4wICogY3ViZVVWX21pblRpbGVTaXplO1xuXHRcdHV2LnggKz0gMy4wICogbWF4KCAwLjAsIGN1YmVVVl9tYXhUaWxlU2l6ZSAtIDIuMCAqIGZhY2VTaXplICk7XG5cdFx0dXYgKj0gdGV4ZWxTaXplO1xuXHRcdHZlYzMgdGwgPSBlbnZNYXBUZXhlbFRvTGluZWFyKCB0ZXh0dXJlMkQoIGVudk1hcCwgdXYgKSApLnJnYjtcblx0XHR1di54ICs9IHRleGVsU2l6ZTtcblx0XHR2ZWMzIHRyID0gZW52TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZTJEKCBlbnZNYXAsIHV2ICkgKS5yZ2I7XG5cdFx0dXYueSArPSB0ZXhlbFNpemU7XG5cdFx0dmVjMyBiciA9IGVudk1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmUyRCggZW52TWFwLCB1diApICkucmdiO1xuXHRcdHV2LnggLT0gdGV4ZWxTaXplO1xuXHRcdHZlYzMgYmwgPSBlbnZNYXBUZXhlbFRvTGluZWFyKCB0ZXh0dXJlMkQoIGVudk1hcCwgdXYgKSApLnJnYjtcblx0XHR2ZWMzIHRtID0gbWl4KCB0bCwgdHIsIGYueCApO1xuXHRcdHZlYzMgYm0gPSBtaXgoIGJsLCBiciwgZi54ICk7XG5cdFx0cmV0dXJuIG1peCggdG0sIGJtLCBmLnkgKTtcblx0fVxuXHQjZGVmaW5lIHIwIDEuMFxuXHQjZGVmaW5lIHYwIDAuMzM5XG5cdCNkZWZpbmUgbTAgLSAyLjBcblx0I2RlZmluZSByMSAwLjhcblx0I2RlZmluZSB2MSAwLjI3NlxuXHQjZGVmaW5lIG0xIC0gMS4wXG5cdCNkZWZpbmUgcjQgMC40XG5cdCNkZWZpbmUgdjQgMC4wNDZcblx0I2RlZmluZSBtNCAyLjBcblx0I2RlZmluZSByNSAwLjMwNVxuXHQjZGVmaW5lIHY1IDAuMDE2XG5cdCNkZWZpbmUgbTUgMy4wXG5cdCNkZWZpbmUgcjYgMC4yMVxuXHQjZGVmaW5lIHY2IDAuMDAzOFxuXHQjZGVmaW5lIG02IDQuMFxuXHRmbG9hdCByb3VnaG5lc3NUb01pcCggZmxvYXQgcm91Z2huZXNzICkge1xuXHRcdGZsb2F0IG1pcCA9IDAuMDtcblx0XHRpZiAoIHJvdWdobmVzcyA+PSByMSApIHtcblx0XHRcdG1pcCA9ICggcjAgLSByb3VnaG5lc3MgKSAqICggbTEgLSBtMCApIC8gKCByMCAtIHIxICkgKyBtMDtcblx0XHR9IGVsc2UgaWYgKCByb3VnaG5lc3MgPj0gcjQgKSB7XG5cdFx0XHRtaXAgPSAoIHIxIC0gcm91Z2huZXNzICkgKiAoIG00IC0gbTEgKSAvICggcjEgLSByNCApICsgbTE7XG5cdFx0fSBlbHNlIGlmICggcm91Z2huZXNzID49IHI1ICkge1xuXHRcdFx0bWlwID0gKCByNCAtIHJvdWdobmVzcyApICogKCBtNSAtIG00ICkgLyAoIHI0IC0gcjUgKSArIG00O1xuXHRcdH0gZWxzZSBpZiAoIHJvdWdobmVzcyA+PSByNiApIHtcblx0XHRcdG1pcCA9ICggcjUgLSByb3VnaG5lc3MgKSAqICggbTYgLSBtNSApIC8gKCByNSAtIHI2ICkgKyBtNTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bWlwID0gLSAyLjAgKiBsb2cyKCAxLjE2ICogcm91Z2huZXNzICk7XHRcdH1cblx0XHRyZXR1cm4gbWlwO1xuXHR9XG5cdHZlYzQgdGV4dHVyZUN1YmVVViggc2FtcGxlcjJEIGVudk1hcCwgdmVjMyBzYW1wbGVEaXIsIGZsb2F0IHJvdWdobmVzcyApIHtcblx0XHRmbG9hdCBtaXAgPSBjbGFtcCggcm91Z2huZXNzVG9NaXAoIHJvdWdobmVzcyApLCBtMCwgY3ViZVVWX21heE1pcExldmVsICk7XG5cdFx0ZmxvYXQgbWlwRiA9IGZyYWN0KCBtaXAgKTtcblx0XHRmbG9hdCBtaXBJbnQgPSBmbG9vciggbWlwICk7XG5cdFx0dmVjMyBjb2xvcjAgPSBiaWxpbmVhckN1YmVVViggZW52TWFwLCBzYW1wbGVEaXIsIG1pcEludCApO1xuXHRcdGlmICggbWlwRiA9PSAwLjAgKSB7XG5cdFx0XHRyZXR1cm4gdmVjNCggY29sb3IwLCAxLjAgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dmVjMyBjb2xvcjEgPSBiaWxpbmVhckN1YmVVViggZW52TWFwLCBzYW1wbGVEaXIsIG1pcEludCArIDEuMCApO1xuXHRcdFx0cmV0dXJuIHZlYzQoIG1peCggY29sb3IwLCBjb2xvcjEsIG1pcEYgKSwgMS4wICk7XG5cdFx0fVxuXHR9XG4jZW5kaWYiLGRlZmF1bHRub3JtYWxfdmVydGV4OiJ2ZWMzIHRyYW5zZm9ybWVkTm9ybWFsID0gb2JqZWN0Tm9ybWFsO1xuI2lmZGVmIFVTRV9JTlNUQU5DSU5HXG5cdG1hdDMgbSA9IG1hdDMoIGluc3RhbmNlTWF0cml4ICk7XG5cdHRyYW5zZm9ybWVkTm9ybWFsIC89IHZlYzMoIGRvdCggbVsgMCBdLCBtWyAwIF0gKSwgZG90KCBtWyAxIF0sIG1bIDEgXSApLCBkb3QoIG1bIDIgXSwgbVsgMiBdICkgKTtcblx0dHJhbnNmb3JtZWROb3JtYWwgPSBtICogdHJhbnNmb3JtZWROb3JtYWw7XG4jZW5kaWZcbnRyYW5zZm9ybWVkTm9ybWFsID0gbm9ybWFsTWF0cml4ICogdHJhbnNmb3JtZWROb3JtYWw7XG4jaWZkZWYgRkxJUF9TSURFRFxuXHR0cmFuc2Zvcm1lZE5vcm1hbCA9IC0gdHJhbnNmb3JtZWROb3JtYWw7XG4jZW5kaWZcbiNpZmRlZiBVU0VfVEFOR0VOVFxuXHR2ZWMzIHRyYW5zZm9ybWVkVGFuZ2VudCA9ICggbW9kZWxWaWV3TWF0cml4ICogdmVjNCggb2JqZWN0VGFuZ2VudCwgMC4wICkgKS54eXo7XG5cdCNpZmRlZiBGTElQX1NJREVEXG5cdFx0dHJhbnNmb3JtZWRUYW5nZW50ID0gLSB0cmFuc2Zvcm1lZFRhbmdlbnQ7XG5cdCNlbmRpZlxuI2VuZGlmIixkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg6IiNpZmRlZiBVU0VfRElTUExBQ0VNRU5UTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIGRpc3BsYWNlbWVudE1hcDtcblx0dW5pZm9ybSBmbG9hdCBkaXNwbGFjZW1lbnRTY2FsZTtcblx0dW5pZm9ybSBmbG9hdCBkaXNwbGFjZW1lbnRCaWFzO1xuI2VuZGlmIixkaXNwbGFjZW1lbnRtYXBfdmVydGV4OiIjaWZkZWYgVVNFX0RJU1BMQUNFTUVOVE1BUFxuXHR0cmFuc2Zvcm1lZCArPSBub3JtYWxpemUoIG9iamVjdE5vcm1hbCApICogKCB0ZXh0dXJlMkQoIGRpc3BsYWNlbWVudE1hcCwgdlV2ICkueCAqIGRpc3BsYWNlbWVudFNjYWxlICsgZGlzcGxhY2VtZW50QmlhcyApO1xuI2VuZGlmIixlbWlzc2l2ZW1hcF9mcmFnbWVudDoiI2lmZGVmIFVTRV9FTUlTU0lWRU1BUFxuXHR2ZWM0IGVtaXNzaXZlQ29sb3IgPSB0ZXh0dXJlMkQoIGVtaXNzaXZlTWFwLCB2VXYgKTtcblx0ZW1pc3NpdmVDb2xvci5yZ2IgPSBlbWlzc2l2ZU1hcFRleGVsVG9MaW5lYXIoIGVtaXNzaXZlQ29sb3IgKS5yZ2I7XG5cdHRvdGFsRW1pc3NpdmVSYWRpYW5jZSAqPSBlbWlzc2l2ZUNvbG9yLnJnYjtcbiNlbmRpZiIsZW1pc3NpdmVtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9FTUlTU0lWRU1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBlbWlzc2l2ZU1hcDtcbiNlbmRpZiIsZW5jb2RpbmdzX2ZyYWdtZW50OiJnbF9GcmFnQ29sb3IgPSBsaW5lYXJUb091dHB1dFRleGVsKCBnbF9GcmFnQ29sb3IgKTsiLGVuY29kaW5nc19wYXJzX2ZyYWdtZW50OiJcbnZlYzQgTGluZWFyVG9MaW5lYXIoIGluIHZlYzQgdmFsdWUgKSB7XG5cdHJldHVybiB2YWx1ZTtcbn1cbnZlYzQgR2FtbWFUb0xpbmVhciggaW4gdmVjNCB2YWx1ZSwgaW4gZmxvYXQgZ2FtbWFGYWN0b3IgKSB7XG5cdHJldHVybiB2ZWM0KCBwb3coIHZhbHVlLnJnYiwgdmVjMyggZ2FtbWFGYWN0b3IgKSApLCB2YWx1ZS5hICk7XG59XG52ZWM0IExpbmVhclRvR2FtbWEoIGluIHZlYzQgdmFsdWUsIGluIGZsb2F0IGdhbW1hRmFjdG9yICkge1xuXHRyZXR1cm4gdmVjNCggcG93KCB2YWx1ZS5yZ2IsIHZlYzMoIDEuMCAvIGdhbW1hRmFjdG9yICkgKSwgdmFsdWUuYSApO1xufVxudmVjNCBzUkdCVG9MaW5lYXIoIGluIHZlYzQgdmFsdWUgKSB7XG5cdHJldHVybiB2ZWM0KCBtaXgoIHBvdyggdmFsdWUucmdiICogMC45NDc4NjcyOTg2ICsgdmVjMyggMC4wNTIxMzI3MDE0ICksIHZlYzMoIDIuNCApICksIHZhbHVlLnJnYiAqIDAuMDc3Mzk5MzgwOCwgdmVjMyggbGVzc1RoYW5FcXVhbCggdmFsdWUucmdiLCB2ZWMzKCAwLjA0MDQ1ICkgKSApICksIHZhbHVlLmEgKTtcbn1cbnZlYzQgTGluZWFyVG9zUkdCKCBpbiB2ZWM0IHZhbHVlICkge1xuXHRyZXR1cm4gdmVjNCggbWl4KCBwb3coIHZhbHVlLnJnYiwgdmVjMyggMC40MTY2NiApICkgKiAxLjA1NSAtIHZlYzMoIDAuMDU1ICksIHZhbHVlLnJnYiAqIDEyLjkyLCB2ZWMzKCBsZXNzVGhhbkVxdWFsKCB2YWx1ZS5yZ2IsIHZlYzMoIDAuMDAzMTMwOCApICkgKSApLCB2YWx1ZS5hICk7XG59XG52ZWM0IFJHQkVUb0xpbmVhciggaW4gdmVjNCB2YWx1ZSApIHtcblx0cmV0dXJuIHZlYzQoIHZhbHVlLnJnYiAqIGV4cDIoIHZhbHVlLmEgKiAyNTUuMCAtIDEyOC4wICksIDEuMCApO1xufVxudmVjNCBMaW5lYXJUb1JHQkUoIGluIHZlYzQgdmFsdWUgKSB7XG5cdGZsb2F0IG1heENvbXBvbmVudCA9IG1heCggbWF4KCB2YWx1ZS5yLCB2YWx1ZS5nICksIHZhbHVlLmIgKTtcblx0ZmxvYXQgZkV4cCA9IGNsYW1wKCBjZWlsKCBsb2cyKCBtYXhDb21wb25lbnQgKSApLCAtMTI4LjAsIDEyNy4wICk7XG5cdHJldHVybiB2ZWM0KCB2YWx1ZS5yZ2IgLyBleHAyKCBmRXhwICksICggZkV4cCArIDEyOC4wICkgLyAyNTUuMCApO1xufVxudmVjNCBSR0JNVG9MaW5lYXIoIGluIHZlYzQgdmFsdWUsIGluIGZsb2F0IG1heFJhbmdlICkge1xuXHRyZXR1cm4gdmVjNCggdmFsdWUucmdiICogdmFsdWUuYSAqIG1heFJhbmdlLCAxLjAgKTtcbn1cbnZlYzQgTGluZWFyVG9SR0JNKCBpbiB2ZWM0IHZhbHVlLCBpbiBmbG9hdCBtYXhSYW5nZSApIHtcblx0ZmxvYXQgbWF4UkdCID0gbWF4KCB2YWx1ZS5yLCBtYXgoIHZhbHVlLmcsIHZhbHVlLmIgKSApO1xuXHRmbG9hdCBNID0gY2xhbXAoIG1heFJHQiAvIG1heFJhbmdlLCAwLjAsIDEuMCApO1xuXHRNID0gY2VpbCggTSAqIDI1NS4wICkgLyAyNTUuMDtcblx0cmV0dXJuIHZlYzQoIHZhbHVlLnJnYiAvICggTSAqIG1heFJhbmdlICksIE0gKTtcbn1cbnZlYzQgUkdCRFRvTGluZWFyKCBpbiB2ZWM0IHZhbHVlLCBpbiBmbG9hdCBtYXhSYW5nZSApIHtcblx0cmV0dXJuIHZlYzQoIHZhbHVlLnJnYiAqICggKCBtYXhSYW5nZSAvIDI1NS4wICkgLyB2YWx1ZS5hICksIDEuMCApO1xufVxudmVjNCBMaW5lYXJUb1JHQkQoIGluIHZlYzQgdmFsdWUsIGluIGZsb2F0IG1heFJhbmdlICkge1xuXHRmbG9hdCBtYXhSR0IgPSBtYXgoIHZhbHVlLnIsIG1heCggdmFsdWUuZywgdmFsdWUuYiApICk7XG5cdGZsb2F0IEQgPSBtYXgoIG1heFJhbmdlIC8gbWF4UkdCLCAxLjAgKTtcblx0RCA9IGNsYW1wKCBmbG9vciggRCApIC8gMjU1LjAsIDAuMCwgMS4wICk7XG5cdHJldHVybiB2ZWM0KCB2YWx1ZS5yZ2IgKiAoIEQgKiAoIDI1NS4wIC8gbWF4UmFuZ2UgKSApLCBEICk7XG59XG5jb25zdCBtYXQzIGNMb2dMdXZNID0gbWF0MyggMC4yMjA5LCAwLjMzOTAsIDAuNDE4NCwgMC4xMTM4LCAwLjY3ODAsIDAuNzMxOSwgMC4wMTAyLCAwLjExMzAsIDAuMjk2OSApO1xudmVjNCBMaW5lYXJUb0xvZ0x1diggaW4gdmVjNCB2YWx1ZSApIHtcblx0dmVjMyBYcF9ZX1hZWnAgPSBjTG9nTHV2TSAqIHZhbHVlLnJnYjtcblx0WHBfWV9YWVpwID0gbWF4KCBYcF9ZX1hZWnAsIHZlYzMoIDFlLTYsIDFlLTYsIDFlLTYgKSApO1xuXHR2ZWM0IHZSZXN1bHQ7XG5cdHZSZXN1bHQueHkgPSBYcF9ZX1hZWnAueHkgLyBYcF9ZX1hZWnAuejtcblx0ZmxvYXQgTGUgPSAyLjAgKiBsb2cyKFhwX1lfWFlacC55KSArIDEyNy4wO1xuXHR2UmVzdWx0LncgPSBmcmFjdCggTGUgKTtcblx0dlJlc3VsdC56ID0gKCBMZSAtICggZmxvb3IoIHZSZXN1bHQudyAqIDI1NS4wICkgKSAvIDI1NS4wICkgLyAyNTUuMDtcblx0cmV0dXJuIHZSZXN1bHQ7XG59XG5jb25zdCBtYXQzIGNMb2dMdXZJbnZlcnNlTSA9IG1hdDMoIDYuMDAxNCwgLTIuNzAwOCwgLTEuNzk5NiwgLTEuMzMyMCwgMy4xMDI5LCAtNS43NzIxLCAwLjMwMDgsIC0xLjA4ODIsIDUuNjI2OCApO1xudmVjNCBMb2dMdXZUb0xpbmVhciggaW4gdmVjNCB2YWx1ZSApIHtcblx0ZmxvYXQgTGUgPSB2YWx1ZS56ICogMjU1LjAgKyB2YWx1ZS53O1xuXHR2ZWMzIFhwX1lfWFlacDtcblx0WHBfWV9YWVpwLnkgPSBleHAyKCAoIExlIC0gMTI3LjAgKSAvIDIuMCApO1xuXHRYcF9ZX1hZWnAueiA9IFhwX1lfWFlacC55IC8gdmFsdWUueTtcblx0WHBfWV9YWVpwLnggPSB2YWx1ZS54ICogWHBfWV9YWVpwLno7XG5cdHZlYzMgdlJHQiA9IGNMb2dMdXZJbnZlcnNlTSAqIFhwX1lfWFlacC5yZ2I7XG5cdHJldHVybiB2ZWM0KCBtYXgoIHZSR0IsIDAuMCApLCAxLjAgKTtcbn0iLGVudm1hcF9mcmFnbWVudDoiI2lmZGVmIFVTRV9FTlZNQVBcblx0I2lmZGVmIEVOVl9XT1JMRFBPU1xuXHRcdHZlYzMgY2FtZXJhVG9GcmFnO1xuXHRcdGlmICggaXNPcnRob2dyYXBoaWMgKSB7XG5cdFx0XHRjYW1lcmFUb0ZyYWcgPSBub3JtYWxpemUoIHZlYzMoIC0gdmlld01hdHJpeFsgMCBdWyAyIF0sIC0gdmlld01hdHJpeFsgMSBdWyAyIF0sIC0gdmlld01hdHJpeFsgMiBdWyAyIF0gKSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjYW1lcmFUb0ZyYWcgPSBub3JtYWxpemUoIHZXb3JsZFBvc2l0aW9uIC0gY2FtZXJhUG9zaXRpb24gKTtcblx0XHR9XG5cdFx0dmVjMyB3b3JsZE5vcm1hbCA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIG5vcm1hbCwgdmlld01hdHJpeCApO1xuXHRcdCNpZmRlZiBFTlZNQVBfTU9ERV9SRUZMRUNUSU9OXG5cdFx0XHR2ZWMzIHJlZmxlY3RWZWMgPSByZWZsZWN0KCBjYW1lcmFUb0ZyYWcsIHdvcmxkTm9ybWFsICk7XG5cdFx0I2Vsc2Vcblx0XHRcdHZlYzMgcmVmbGVjdFZlYyA9IHJlZnJhY3QoIGNhbWVyYVRvRnJhZywgd29ybGROb3JtYWwsIHJlZnJhY3Rpb25SYXRpbyApO1xuXHRcdCNlbmRpZlxuXHQjZWxzZVxuXHRcdHZlYzMgcmVmbGVjdFZlYyA9IHZSZWZsZWN0O1xuXHQjZW5kaWZcblx0I2lmZGVmIEVOVk1BUF9UWVBFX0NVQkVcblx0XHR2ZWM0IGVudkNvbG9yID0gdGV4dHVyZUN1YmUoIGVudk1hcCwgdmVjMyggZmxpcEVudk1hcCAqIHJlZmxlY3RWZWMueCwgcmVmbGVjdFZlYy55eiApICk7XG5cdCNlbGlmIGRlZmluZWQoIEVOVk1BUF9UWVBFX0NVQkVfVVYgKVxuXHRcdHZlYzQgZW52Q29sb3IgPSB0ZXh0dXJlQ3ViZVVWKCBlbnZNYXAsIHJlZmxlY3RWZWMsIDAuMCApO1xuXHQjZWxzZVxuXHRcdHZlYzQgZW52Q29sb3IgPSB2ZWM0KCAwLjAgKTtcblx0I2VuZGlmXG5cdCNpZm5kZWYgRU5WTUFQX1RZUEVfQ1VCRV9VVlxuXHRcdGVudkNvbG9yID0gZW52TWFwVGV4ZWxUb0xpbmVhciggZW52Q29sb3IgKTtcblx0I2VuZGlmXG5cdCNpZmRlZiBFTlZNQVBfQkxFTkRJTkdfTVVMVElQTFlcblx0XHRvdXRnb2luZ0xpZ2h0ID0gbWl4KCBvdXRnb2luZ0xpZ2h0LCBvdXRnb2luZ0xpZ2h0ICogZW52Q29sb3IueHl6LCBzcGVjdWxhclN0cmVuZ3RoICogcmVmbGVjdGl2aXR5ICk7XG5cdCNlbGlmIGRlZmluZWQoIEVOVk1BUF9CTEVORElOR19NSVggKVxuXHRcdG91dGdvaW5nTGlnaHQgPSBtaXgoIG91dGdvaW5nTGlnaHQsIGVudkNvbG9yLnh5eiwgc3BlY3VsYXJTdHJlbmd0aCAqIHJlZmxlY3Rpdml0eSApO1xuXHQjZWxpZiBkZWZpbmVkKCBFTlZNQVBfQkxFTkRJTkdfQUREIClcblx0XHRvdXRnb2luZ0xpZ2h0ICs9IGVudkNvbG9yLnh5eiAqIHNwZWN1bGFyU3RyZW5ndGggKiByZWZsZWN0aXZpdHk7XG5cdCNlbmRpZlxuI2VuZGlmIixlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfRU5WTUFQXG5cdHVuaWZvcm0gZmxvYXQgZW52TWFwSW50ZW5zaXR5O1xuXHR1bmlmb3JtIGZsb2F0IGZsaXBFbnZNYXA7XG5cdHVuaWZvcm0gaW50IG1heE1pcExldmVsO1xuXHQjaWZkZWYgRU5WTUFQX1RZUEVfQ1VCRVxuXHRcdHVuaWZvcm0gc2FtcGxlckN1YmUgZW52TWFwO1xuXHQjZWxzZVxuXHRcdHVuaWZvcm0gc2FtcGxlcjJEIGVudk1hcDtcblx0I2VuZGlmXG5cdFxuI2VuZGlmIixlbnZtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9FTlZNQVBcblx0dW5pZm9ybSBmbG9hdCByZWZsZWN0aXZpdHk7XG5cdCNpZiBkZWZpbmVkKCBVU0VfQlVNUE1BUCApIHx8IGRlZmluZWQoIFVTRV9OT1JNQUxNQVAgKSB8fCBkZWZpbmVkKCBQSE9ORyApXG5cdFx0I2RlZmluZSBFTlZfV09STERQT1Ncblx0I2VuZGlmXG5cdCNpZmRlZiBFTlZfV09STERQT1Ncblx0XHR2YXJ5aW5nIHZlYzMgdldvcmxkUG9zaXRpb247XG5cdFx0dW5pZm9ybSBmbG9hdCByZWZyYWN0aW9uUmF0aW87XG5cdCNlbHNlXG5cdFx0dmFyeWluZyB2ZWMzIHZSZWZsZWN0O1xuXHQjZW5kaWZcbiNlbmRpZiIsZW52bWFwX3BhcnNfdmVydGV4OiIjaWZkZWYgVVNFX0VOVk1BUFxuXHQjaWYgZGVmaW5lZCggVVNFX0JVTVBNQVAgKSB8fCBkZWZpbmVkKCBVU0VfTk9STUFMTUFQICkgfHxkZWZpbmVkKCBQSE9ORyApXG5cdFx0I2RlZmluZSBFTlZfV09STERQT1Ncblx0I2VuZGlmXG5cdCNpZmRlZiBFTlZfV09STERQT1Ncblx0XHRcblx0XHR2YXJ5aW5nIHZlYzMgdldvcmxkUG9zaXRpb247XG5cdCNlbHNlXG5cdFx0dmFyeWluZyB2ZWMzIHZSZWZsZWN0O1xuXHRcdHVuaWZvcm0gZmxvYXQgcmVmcmFjdGlvblJhdGlvO1xuXHQjZW5kaWZcbiNlbmRpZiIsZW52bWFwX3BoeXNpY2FsX3BhcnNfZnJhZ21lbnQ6IiNpZiBkZWZpbmVkKCBVU0VfRU5WTUFQIClcblx0I2lmZGVmIEVOVk1BUF9NT0RFX1JFRlJBQ1RJT05cblx0XHR1bmlmb3JtIGZsb2F0IHJlZnJhY3Rpb25SYXRpbztcblx0I2VuZGlmXG5cdHZlYzMgZ2V0TGlnaHRQcm9iZUluZGlyZWN0SXJyYWRpYW5jZSggY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gaW50IG1heE1JUExldmVsICkge1xuXHRcdHZlYzMgd29ybGROb3JtYWwgPSBpbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uKCBnZW9tZXRyeS5ub3JtYWwsIHZpZXdNYXRyaXggKTtcblx0XHQjaWZkZWYgRU5WTUFQX1RZUEVfQ1VCRVxuXHRcdFx0dmVjMyBxdWVyeVZlYyA9IHZlYzMoIGZsaXBFbnZNYXAgKiB3b3JsZE5vcm1hbC54LCB3b3JsZE5vcm1hbC55eiApO1xuXHRcdFx0I2lmZGVmIFRFWFRVUkVfTE9EX0VYVFxuXHRcdFx0XHR2ZWM0IGVudk1hcENvbG9yID0gdGV4dHVyZUN1YmVMb2RFWFQoIGVudk1hcCwgcXVlcnlWZWMsIGZsb2F0KCBtYXhNSVBMZXZlbCApICk7XG5cdFx0XHQjZWxzZVxuXHRcdFx0XHR2ZWM0IGVudk1hcENvbG9yID0gdGV4dHVyZUN1YmUoIGVudk1hcCwgcXVlcnlWZWMsIGZsb2F0KCBtYXhNSVBMZXZlbCApICk7XG5cdFx0XHQjZW5kaWZcblx0XHRcdGVudk1hcENvbG9yLnJnYiA9IGVudk1hcFRleGVsVG9MaW5lYXIoIGVudk1hcENvbG9yICkucmdiO1xuXHRcdCNlbGlmIGRlZmluZWQoIEVOVk1BUF9UWVBFX0NVQkVfVVYgKVxuXHRcdFx0dmVjNCBlbnZNYXBDb2xvciA9IHRleHR1cmVDdWJlVVYoIGVudk1hcCwgd29ybGROb3JtYWwsIDEuMCApO1xuXHRcdCNlbHNlXG5cdFx0XHR2ZWM0IGVudk1hcENvbG9yID0gdmVjNCggMC4wICk7XG5cdFx0I2VuZGlmXG5cdFx0cmV0dXJuIFBJICogZW52TWFwQ29sb3IucmdiICogZW52TWFwSW50ZW5zaXR5O1xuXHR9XG5cdGZsb2F0IGdldFNwZWN1bGFyTUlQTGV2ZWwoIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcywgY29uc3QgaW4gaW50IG1heE1JUExldmVsICkge1xuXHRcdGZsb2F0IG1heE1JUExldmVsU2NhbGFyID0gZmxvYXQoIG1heE1JUExldmVsICk7XG5cdFx0ZmxvYXQgc2lnbWEgPSBQSSAqIHJvdWdobmVzcyAqIHJvdWdobmVzcyAvICggMS4wICsgcm91Z2huZXNzICk7XG5cdFx0ZmxvYXQgZGVzaXJlZE1JUExldmVsID0gbWF4TUlQTGV2ZWxTY2FsYXIgKyBsb2cyKCBzaWdtYSApO1xuXHRcdHJldHVybiBjbGFtcCggZGVzaXJlZE1JUExldmVsLCAwLjAsIG1heE1JUExldmVsU2NhbGFyICk7XG5cdH1cblx0dmVjMyBnZXRMaWdodFByb2JlSW5kaXJlY3RSYWRpYW5jZSggY29uc3QgaW4gdmVjMyB2aWV3RGlyLCBjb25zdCBpbiB2ZWMzIG5vcm1hbCwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzLCBjb25zdCBpbiBpbnQgbWF4TUlQTGV2ZWwgKSB7XG5cdFx0I2lmZGVmIEVOVk1BUF9NT0RFX1JFRkxFQ1RJT05cblx0XHRcdHZlYzMgcmVmbGVjdFZlYyA9IHJlZmxlY3QoIC12aWV3RGlyLCBub3JtYWwgKTtcblx0XHRcdHJlZmxlY3RWZWMgPSBub3JtYWxpemUoIG1peCggcmVmbGVjdFZlYywgbm9ybWFsLCByb3VnaG5lc3MgKiByb3VnaG5lc3MpICk7XG5cdFx0I2Vsc2Vcblx0XHRcdHZlYzMgcmVmbGVjdFZlYyA9IHJlZnJhY3QoIC12aWV3RGlyLCBub3JtYWwsIHJlZnJhY3Rpb25SYXRpbyApO1xuXHRcdCNlbmRpZlxuXHRcdHJlZmxlY3RWZWMgPSBpbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uKCByZWZsZWN0VmVjLCB2aWV3TWF0cml4ICk7XG5cdFx0ZmxvYXQgc3BlY3VsYXJNSVBMZXZlbCA9IGdldFNwZWN1bGFyTUlQTGV2ZWwoIHJvdWdobmVzcywgbWF4TUlQTGV2ZWwgKTtcblx0XHQjaWZkZWYgRU5WTUFQX1RZUEVfQ1VCRVxuXHRcdFx0dmVjMyBxdWVyeVJlZmxlY3RWZWMgPSB2ZWMzKCBmbGlwRW52TWFwICogcmVmbGVjdFZlYy54LCByZWZsZWN0VmVjLnl6ICk7XG5cdFx0XHQjaWZkZWYgVEVYVFVSRV9MT0RfRVhUXG5cdFx0XHRcdHZlYzQgZW52TWFwQ29sb3IgPSB0ZXh0dXJlQ3ViZUxvZEVYVCggZW52TWFwLCBxdWVyeVJlZmxlY3RWZWMsIHNwZWN1bGFyTUlQTGV2ZWwgKTtcblx0XHRcdCNlbHNlXG5cdFx0XHRcdHZlYzQgZW52TWFwQ29sb3IgPSB0ZXh0dXJlQ3ViZSggZW52TWFwLCBxdWVyeVJlZmxlY3RWZWMsIHNwZWN1bGFyTUlQTGV2ZWwgKTtcblx0XHRcdCNlbmRpZlxuXHRcdFx0ZW52TWFwQ29sb3IucmdiID0gZW52TWFwVGV4ZWxUb0xpbmVhciggZW52TWFwQ29sb3IgKS5yZ2I7XG5cdFx0I2VsaWYgZGVmaW5lZCggRU5WTUFQX1RZUEVfQ1VCRV9VViApXG5cdFx0XHR2ZWM0IGVudk1hcENvbG9yID0gdGV4dHVyZUN1YmVVViggZW52TWFwLCByZWZsZWN0VmVjLCByb3VnaG5lc3MgKTtcblx0XHQjZW5kaWZcblx0XHRyZXR1cm4gZW52TWFwQ29sb3IucmdiICogZW52TWFwSW50ZW5zaXR5O1xuXHR9XG4jZW5kaWYiLGVudm1hcF92ZXJ0ZXg6IiNpZmRlZiBVU0VfRU5WTUFQXG5cdCNpZmRlZiBFTlZfV09STERQT1Ncblx0XHR2V29ybGRQb3NpdGlvbiA9IHdvcmxkUG9zaXRpb24ueHl6O1xuXHQjZWxzZVxuXHRcdHZlYzMgY2FtZXJhVG9WZXJ0ZXg7XG5cdFx0aWYgKCBpc09ydGhvZ3JhcGhpYyApIHtcblx0XHRcdGNhbWVyYVRvVmVydGV4ID0gbm9ybWFsaXplKCB2ZWMzKCAtIHZpZXdNYXRyaXhbIDAgXVsgMiBdLCAtIHZpZXdNYXRyaXhbIDEgXVsgMiBdLCAtIHZpZXdNYXRyaXhbIDIgXVsgMiBdICkgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y2FtZXJhVG9WZXJ0ZXggPSBub3JtYWxpemUoIHdvcmxkUG9zaXRpb24ueHl6IC0gY2FtZXJhUG9zaXRpb24gKTtcblx0XHR9XG5cdFx0dmVjMyB3b3JsZE5vcm1hbCA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIHRyYW5zZm9ybWVkTm9ybWFsLCB2aWV3TWF0cml4ICk7XG5cdFx0I2lmZGVmIEVOVk1BUF9NT0RFX1JFRkxFQ1RJT05cblx0XHRcdHZSZWZsZWN0ID0gcmVmbGVjdCggY2FtZXJhVG9WZXJ0ZXgsIHdvcmxkTm9ybWFsICk7XG5cdFx0I2Vsc2Vcblx0XHRcdHZSZWZsZWN0ID0gcmVmcmFjdCggY2FtZXJhVG9WZXJ0ZXgsIHdvcmxkTm9ybWFsLCByZWZyYWN0aW9uUmF0aW8gKTtcblx0XHQjZW5kaWZcblx0I2VuZGlmXG4jZW5kaWYiLGZvZ192ZXJ0ZXg6IiNpZmRlZiBVU0VfRk9HXG5cdGZvZ0RlcHRoID0gLSBtdlBvc2l0aW9uLno7XG4jZW5kaWYiLGZvZ19wYXJzX3ZlcnRleDoiI2lmZGVmIFVTRV9GT0dcblx0dmFyeWluZyBmbG9hdCBmb2dEZXB0aDtcbiNlbmRpZiIsZm9nX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0ZPR1xuXHQjaWZkZWYgRk9HX0VYUDJcblx0XHRmbG9hdCBmb2dGYWN0b3IgPSAxLjAgLSBleHAoIC0gZm9nRGVuc2l0eSAqIGZvZ0RlbnNpdHkgKiBmb2dEZXB0aCAqIGZvZ0RlcHRoICk7XG5cdCNlbHNlXG5cdFx0ZmxvYXQgZm9nRmFjdG9yID0gc21vb3Roc3RlcCggZm9nTmVhciwgZm9nRmFyLCBmb2dEZXB0aCApO1xuXHQjZW5kaWZcblx0Z2xfRnJhZ0NvbG9yLnJnYiA9IG1peCggZ2xfRnJhZ0NvbG9yLnJnYiwgZm9nQ29sb3IsIGZvZ0ZhY3RvciApO1xuI2VuZGlmIixmb2dfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9GT0dcblx0dW5pZm9ybSB2ZWMzIGZvZ0NvbG9yO1xuXHR2YXJ5aW5nIGZsb2F0IGZvZ0RlcHRoO1xuXHQjaWZkZWYgRk9HX0VYUDJcblx0XHR1bmlmb3JtIGZsb2F0IGZvZ0RlbnNpdHk7XG5cdCNlbHNlXG5cdFx0dW5pZm9ybSBmbG9hdCBmb2dOZWFyO1xuXHRcdHVuaWZvcm0gZmxvYXQgZm9nRmFyO1xuXHQjZW5kaWZcbiNlbmRpZiIsZ3JhZGllbnRtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9HUkFESUVOVE1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBncmFkaWVudE1hcDtcbiNlbmRpZlxudmVjMyBnZXRHcmFkaWVudElycmFkaWFuY2UoIHZlYzMgbm9ybWFsLCB2ZWMzIGxpZ2h0RGlyZWN0aW9uICkge1xuXHRmbG9hdCBkb3ROTCA9IGRvdCggbm9ybWFsLCBsaWdodERpcmVjdGlvbiApO1xuXHR2ZWMyIGNvb3JkID0gdmVjMiggZG90TkwgKiAwLjUgKyAwLjUsIDAuMCApO1xuXHQjaWZkZWYgVVNFX0dSQURJRU5UTUFQXG5cdFx0cmV0dXJuIHRleHR1cmUyRCggZ3JhZGllbnRNYXAsIGNvb3JkICkucmdiO1xuXHQjZWxzZVxuXHRcdHJldHVybiAoIGNvb3JkLnggPCAwLjcgKSA/IHZlYzMoIDAuNyApIDogdmVjMyggMS4wICk7XG5cdCNlbmRpZlxufSIsbGlnaHRtYXBfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfTElHSFRNQVBcblx0dmVjNCBsaWdodE1hcFRleGVsPSB0ZXh0dXJlMkQoIGxpZ2h0TWFwLCB2VXYyICk7XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSBQSSAqIGxpZ2h0TWFwVGV4ZWxUb0xpbmVhciggbGlnaHRNYXBUZXhlbCApLnJnYiAqIGxpZ2h0TWFwSW50ZW5zaXR5O1xuI2VuZGlmIixsaWdodG1hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0xJR0hUTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIGxpZ2h0TWFwO1xuXHR1bmlmb3JtIGZsb2F0IGxpZ2h0TWFwSW50ZW5zaXR5O1xuI2VuZGlmIixsaWdodHNfbGFtYmVydF92ZXJ0ZXg6InZlYzMgZGlmZnVzZSA9IHZlYzMoIDEuMCApO1xuR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeTtcbmdlb21ldHJ5LnBvc2l0aW9uID0gbXZQb3NpdGlvbi54eXo7XG5nZW9tZXRyeS5ub3JtYWwgPSBub3JtYWxpemUoIHRyYW5zZm9ybWVkTm9ybWFsICk7XG5nZW9tZXRyeS52aWV3RGlyID0gKCBpc09ydGhvZ3JhcGhpYyApID8gdmVjMyggMCwgMCwgMSApIDogbm9ybWFsaXplKCAtbXZQb3NpdGlvbi54eXogKTtcbkdlb21ldHJpY0NvbnRleHQgYmFja0dlb21ldHJ5O1xuYmFja0dlb21ldHJ5LnBvc2l0aW9uID0gZ2VvbWV0cnkucG9zaXRpb247XG5iYWNrR2VvbWV0cnkubm9ybWFsID0gLWdlb21ldHJ5Lm5vcm1hbDtcbmJhY2tHZW9tZXRyeS52aWV3RGlyID0gZ2VvbWV0cnkudmlld0RpcjtcbnZMaWdodEZyb250ID0gdmVjMyggMC4wICk7XG52SW5kaXJlY3RGcm9udCA9IHZlYzMoIDAuMCApO1xuI2lmZGVmIERPVUJMRV9TSURFRFxuXHR2TGlnaHRCYWNrID0gdmVjMyggMC4wICk7XG5cdHZJbmRpcmVjdEJhY2sgPSB2ZWMzKCAwLjAgKTtcbiNlbmRpZlxuSW5jaWRlbnRMaWdodCBkaXJlY3RMaWdodDtcbmZsb2F0IGRvdE5MO1xudmVjMyBkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2U7XG52SW5kaXJlY3RGcm9udCArPSBnZXRBbWJpZW50TGlnaHRJcnJhZGlhbmNlKCBhbWJpZW50TGlnaHRDb2xvciApO1xudkluZGlyZWN0RnJvbnQgKz0gZ2V0TGlnaHRQcm9iZUlycmFkaWFuY2UoIGxpZ2h0UHJvYmUsIGdlb21ldHJ5ICk7XG4jaWZkZWYgRE9VQkxFX1NJREVEXG5cdHZJbmRpcmVjdEJhY2sgKz0gZ2V0QW1iaWVudExpZ2h0SXJyYWRpYW5jZSggYW1iaWVudExpZ2h0Q29sb3IgKTtcblx0dkluZGlyZWN0QmFjayArPSBnZXRMaWdodFByb2JlSXJyYWRpYW5jZSggbGlnaHRQcm9iZSwgYmFja0dlb21ldHJ5ICk7XG4jZW5kaWZcbiNpZiBOVU1fUE9JTlRfTElHSFRTID4gMFxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9QT0lOVF9MSUdIVFM7IGkgKysgKSB7XG5cdFx0Z2V0UG9pbnREaXJlY3RMaWdodElycmFkaWFuY2UoIHBvaW50TGlnaHRzWyBpIF0sIGdlb21ldHJ5LCBkaXJlY3RMaWdodCApO1xuXHRcdGRvdE5MID0gZG90KCBnZW9tZXRyeS5ub3JtYWwsIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiApO1xuXHRcdGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZSA9IFBJICogZGlyZWN0TGlnaHQuY29sb3I7XG5cdFx0dkxpZ2h0RnJvbnQgKz0gc2F0dXJhdGUoIGRvdE5MICkgKiBkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2U7XG5cdFx0I2lmZGVmIERPVUJMRV9TSURFRFxuXHRcdFx0dkxpZ2h0QmFjayArPSBzYXR1cmF0ZSggLWRvdE5MICkgKiBkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2U7XG5cdFx0I2VuZGlmXG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcbiNlbmRpZlxuI2lmIE5VTV9TUE9UX0xJR0hUUyA+IDBcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fU1BPVF9MSUdIVFM7IGkgKysgKSB7XG5cdFx0Z2V0U3BvdERpcmVjdExpZ2h0SXJyYWRpYW5jZSggc3BvdExpZ2h0c1sgaSBdLCBnZW9tZXRyeSwgZGlyZWN0TGlnaHQgKTtcblx0XHRkb3ROTCA9IGRvdCggZ2VvbWV0cnkubm9ybWFsLCBkaXJlY3RMaWdodC5kaXJlY3Rpb24gKTtcblx0XHRkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2UgPSBQSSAqIGRpcmVjdExpZ2h0LmNvbG9yO1xuXHRcdHZMaWdodEZyb250ICs9IHNhdHVyYXRlKCBkb3ROTCApICogZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlO1xuXHRcdCNpZmRlZiBET1VCTEVfU0lERURcblx0XHRcdHZMaWdodEJhY2sgKz0gc2F0dXJhdGUoIC1kb3ROTCApICogZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlO1xuXHRcdCNlbmRpZlxuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG4jZW5kaWZcbiNpZiBOVU1fRElSX0xJR0hUUyA+IDBcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fRElSX0xJR0hUUzsgaSArKyApIHtcblx0XHRnZXREaXJlY3Rpb25hbERpcmVjdExpZ2h0SXJyYWRpYW5jZSggZGlyZWN0aW9uYWxMaWdodHNbIGkgXSwgZ2VvbWV0cnksIGRpcmVjdExpZ2h0ICk7XG5cdFx0ZG90TkwgPSBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICk7XG5cdFx0ZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlID0gUEkgKiBkaXJlY3RMaWdodC5jb2xvcjtcblx0XHR2TGlnaHRGcm9udCArPSBzYXR1cmF0ZSggZG90TkwgKSAqIGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZTtcblx0XHQjaWZkZWYgRE9VQkxFX1NJREVEXG5cdFx0XHR2TGlnaHRCYWNrICs9IHNhdHVyYXRlKCAtZG90TkwgKSAqIGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZTtcblx0XHQjZW5kaWZcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuI2VuZGlmXG4jaWYgTlVNX0hFTUlfTElHSFRTID4gMFxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9IRU1JX0xJR0hUUzsgaSArKyApIHtcblx0XHR2SW5kaXJlY3RGcm9udCArPSBnZXRIZW1pc3BoZXJlTGlnaHRJcnJhZGlhbmNlKCBoZW1pc3BoZXJlTGlnaHRzWyBpIF0sIGdlb21ldHJ5ICk7XG5cdFx0I2lmZGVmIERPVUJMRV9TSURFRFxuXHRcdFx0dkluZGlyZWN0QmFjayArPSBnZXRIZW1pc3BoZXJlTGlnaHRJcnJhZGlhbmNlKCBoZW1pc3BoZXJlTGlnaHRzWyBpIF0sIGJhY2tHZW9tZXRyeSApO1xuXHRcdCNlbmRpZlxuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG4jZW5kaWYiLGxpZ2h0c19wYXJzX2JlZ2luOiJ1bmlmb3JtIGJvb2wgcmVjZWl2ZVNoYWRvdztcbnVuaWZvcm0gdmVjMyBhbWJpZW50TGlnaHRDb2xvcjtcbnVuaWZvcm0gdmVjMyBsaWdodFByb2JlWyA5IF07XG52ZWMzIHNoR2V0SXJyYWRpYW5jZUF0KCBpbiB2ZWMzIG5vcm1hbCwgaW4gdmVjMyBzaENvZWZmaWNpZW50c1sgOSBdICkge1xuXHRmbG9hdCB4ID0gbm9ybWFsLngsIHkgPSBub3JtYWwueSwgeiA9IG5vcm1hbC56O1xuXHR2ZWMzIHJlc3VsdCA9IHNoQ29lZmZpY2llbnRzWyAwIF0gKiAwLjg4NjIyNztcblx0cmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyAxIF0gKiAyLjAgKiAwLjUxMTY2NCAqIHk7XG5cdHJlc3VsdCArPSBzaENvZWZmaWNpZW50c1sgMiBdICogMi4wICogMC41MTE2NjQgKiB6O1xuXHRyZXN1bHQgKz0gc2hDb2VmZmljaWVudHNbIDMgXSAqIDIuMCAqIDAuNTExNjY0ICogeDtcblx0cmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyA0IF0gKiAyLjAgKiAwLjQyOTA0MyAqIHggKiB5O1xuXHRyZXN1bHQgKz0gc2hDb2VmZmljaWVudHNbIDUgXSAqIDIuMCAqIDAuNDI5MDQzICogeSAqIHo7XG5cdHJlc3VsdCArPSBzaENvZWZmaWNpZW50c1sgNiBdICogKCAwLjc0MzEyNSAqIHogKiB6IC0gMC4yNDc3MDggKTtcblx0cmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyA3IF0gKiAyLjAgKiAwLjQyOTA0MyAqIHggKiB6O1xuXHRyZXN1bHQgKz0gc2hDb2VmZmljaWVudHNbIDggXSAqIDAuNDI5MDQzICogKCB4ICogeCAtIHkgKiB5ICk7XG5cdHJldHVybiByZXN1bHQ7XG59XG52ZWMzIGdldExpZ2h0UHJvYmVJcnJhZGlhbmNlKCBjb25zdCBpbiB2ZWMzIGxpZ2h0UHJvYmVbIDkgXSwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSApIHtcblx0dmVjMyB3b3JsZE5vcm1hbCA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIGdlb21ldHJ5Lm5vcm1hbCwgdmlld01hdHJpeCApO1xuXHR2ZWMzIGlycmFkaWFuY2UgPSBzaEdldElycmFkaWFuY2VBdCggd29ybGROb3JtYWwsIGxpZ2h0UHJvYmUgKTtcblx0cmV0dXJuIGlycmFkaWFuY2U7XG59XG52ZWMzIGdldEFtYmllbnRMaWdodElycmFkaWFuY2UoIGNvbnN0IGluIHZlYzMgYW1iaWVudExpZ2h0Q29sb3IgKSB7XG5cdHZlYzMgaXJyYWRpYW5jZSA9IGFtYmllbnRMaWdodENvbG9yO1xuXHQjaWZuZGVmIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFNcblx0XHRpcnJhZGlhbmNlICo9IFBJO1xuXHQjZW5kaWZcblx0cmV0dXJuIGlycmFkaWFuY2U7XG59XG4jaWYgTlVNX0RJUl9MSUdIVFMgPiAwXG5cdHN0cnVjdCBEaXJlY3Rpb25hbExpZ2h0IHtcblx0XHR2ZWMzIGRpcmVjdGlvbjtcblx0XHR2ZWMzIGNvbG9yO1xuXHR9O1xuXHR1bmlmb3JtIERpcmVjdGlvbmFsTGlnaHQgZGlyZWN0aW9uYWxMaWdodHNbIE5VTV9ESVJfTElHSFRTIF07XG5cdHZvaWQgZ2V0RGlyZWN0aW9uYWxEaXJlY3RMaWdodElycmFkaWFuY2UoIGNvbnN0IGluIERpcmVjdGlvbmFsTGlnaHQgZGlyZWN0aW9uYWxMaWdodCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgb3V0IEluY2lkZW50TGlnaHQgZGlyZWN0TGlnaHQgKSB7XG5cdFx0ZGlyZWN0TGlnaHQuY29sb3IgPSBkaXJlY3Rpb25hbExpZ2h0LmNvbG9yO1xuXHRcdGRpcmVjdExpZ2h0LmRpcmVjdGlvbiA9IGRpcmVjdGlvbmFsTGlnaHQuZGlyZWN0aW9uO1xuXHRcdGRpcmVjdExpZ2h0LnZpc2libGUgPSB0cnVlO1xuXHR9XG4jZW5kaWZcbiNpZiBOVU1fUE9JTlRfTElHSFRTID4gMFxuXHRzdHJ1Y3QgUG9pbnRMaWdodCB7XG5cdFx0dmVjMyBwb3NpdGlvbjtcblx0XHR2ZWMzIGNvbG9yO1xuXHRcdGZsb2F0IGRpc3RhbmNlO1xuXHRcdGZsb2F0IGRlY2F5O1xuXHR9O1xuXHR1bmlmb3JtIFBvaW50TGlnaHQgcG9pbnRMaWdodHNbIE5VTV9QT0lOVF9MSUdIVFMgXTtcblx0dm9pZCBnZXRQb2ludERpcmVjdExpZ2h0SXJyYWRpYW5jZSggY29uc3QgaW4gUG9pbnRMaWdodCBwb2ludExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBvdXQgSW5jaWRlbnRMaWdodCBkaXJlY3RMaWdodCApIHtcblx0XHR2ZWMzIGxWZWN0b3IgPSBwb2ludExpZ2h0LnBvc2l0aW9uIC0gZ2VvbWV0cnkucG9zaXRpb247XG5cdFx0ZGlyZWN0TGlnaHQuZGlyZWN0aW9uID0gbm9ybWFsaXplKCBsVmVjdG9yICk7XG5cdFx0ZmxvYXQgbGlnaHREaXN0YW5jZSA9IGxlbmd0aCggbFZlY3RvciApO1xuXHRcdGRpcmVjdExpZ2h0LmNvbG9yID0gcG9pbnRMaWdodC5jb2xvcjtcblx0XHRkaXJlY3RMaWdodC5jb2xvciAqPSBwdW5jdHVhbExpZ2h0SW50ZW5zaXR5VG9JcnJhZGlhbmNlRmFjdG9yKCBsaWdodERpc3RhbmNlLCBwb2ludExpZ2h0LmRpc3RhbmNlLCBwb2ludExpZ2h0LmRlY2F5ICk7XG5cdFx0ZGlyZWN0TGlnaHQudmlzaWJsZSA9ICggZGlyZWN0TGlnaHQuY29sb3IgIT0gdmVjMyggMC4wICkgKTtcblx0fVxuI2VuZGlmXG4jaWYgTlVNX1NQT1RfTElHSFRTID4gMFxuXHRzdHJ1Y3QgU3BvdExpZ2h0IHtcblx0XHR2ZWMzIHBvc2l0aW9uO1xuXHRcdHZlYzMgZGlyZWN0aW9uO1xuXHRcdHZlYzMgY29sb3I7XG5cdFx0ZmxvYXQgZGlzdGFuY2U7XG5cdFx0ZmxvYXQgZGVjYXk7XG5cdFx0ZmxvYXQgY29uZUNvcztcblx0XHRmbG9hdCBwZW51bWJyYUNvcztcblx0fTtcblx0dW5pZm9ybSBTcG90TGlnaHQgc3BvdExpZ2h0c1sgTlVNX1NQT1RfTElHSFRTIF07XG5cdHZvaWQgZ2V0U3BvdERpcmVjdExpZ2h0SXJyYWRpYW5jZSggY29uc3QgaW4gU3BvdExpZ2h0IHNwb3RMaWdodCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgb3V0IEluY2lkZW50TGlnaHQgZGlyZWN0TGlnaHQgKSB7XG5cdFx0dmVjMyBsVmVjdG9yID0gc3BvdExpZ2h0LnBvc2l0aW9uIC0gZ2VvbWV0cnkucG9zaXRpb247XG5cdFx0ZGlyZWN0TGlnaHQuZGlyZWN0aW9uID0gbm9ybWFsaXplKCBsVmVjdG9yICk7XG5cdFx0ZmxvYXQgbGlnaHREaXN0YW5jZSA9IGxlbmd0aCggbFZlY3RvciApO1xuXHRcdGZsb2F0IGFuZ2xlQ29zID0gZG90KCBkaXJlY3RMaWdodC5kaXJlY3Rpb24sIHNwb3RMaWdodC5kaXJlY3Rpb24gKTtcblx0XHRpZiAoIGFuZ2xlQ29zID4gc3BvdExpZ2h0LmNvbmVDb3MgKSB7XG5cdFx0XHRmbG9hdCBzcG90RWZmZWN0ID0gc21vb3Roc3RlcCggc3BvdExpZ2h0LmNvbmVDb3MsIHNwb3RMaWdodC5wZW51bWJyYUNvcywgYW5nbGVDb3MgKTtcblx0XHRcdGRpcmVjdExpZ2h0LmNvbG9yID0gc3BvdExpZ2h0LmNvbG9yO1xuXHRcdFx0ZGlyZWN0TGlnaHQuY29sb3IgKj0gc3BvdEVmZmVjdCAqIHB1bmN0dWFsTGlnaHRJbnRlbnNpdHlUb0lycmFkaWFuY2VGYWN0b3IoIGxpZ2h0RGlzdGFuY2UsIHNwb3RMaWdodC5kaXN0YW5jZSwgc3BvdExpZ2h0LmRlY2F5ICk7XG5cdFx0XHRkaXJlY3RMaWdodC52aXNpYmxlID0gdHJ1ZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZGlyZWN0TGlnaHQuY29sb3IgPSB2ZWMzKCAwLjAgKTtcblx0XHRcdGRpcmVjdExpZ2h0LnZpc2libGUgPSBmYWxzZTtcblx0XHR9XG5cdH1cbiNlbmRpZlxuI2lmIE5VTV9SRUNUX0FSRUFfTElHSFRTID4gMFxuXHRzdHJ1Y3QgUmVjdEFyZWFMaWdodCB7XG5cdFx0dmVjMyBjb2xvcjtcblx0XHR2ZWMzIHBvc2l0aW9uO1xuXHRcdHZlYzMgaGFsZldpZHRoO1xuXHRcdHZlYzMgaGFsZkhlaWdodDtcblx0fTtcblx0dW5pZm9ybSBzYW1wbGVyMkQgbHRjXzE7XHR1bmlmb3JtIHNhbXBsZXIyRCBsdGNfMjtcblx0dW5pZm9ybSBSZWN0QXJlYUxpZ2h0IHJlY3RBcmVhTGlnaHRzWyBOVU1fUkVDVF9BUkVBX0xJR0hUUyBdO1xuI2VuZGlmXG4jaWYgTlVNX0hFTUlfTElHSFRTID4gMFxuXHRzdHJ1Y3QgSGVtaXNwaGVyZUxpZ2h0IHtcblx0XHR2ZWMzIGRpcmVjdGlvbjtcblx0XHR2ZWMzIHNreUNvbG9yO1xuXHRcdHZlYzMgZ3JvdW5kQ29sb3I7XG5cdH07XG5cdHVuaWZvcm0gSGVtaXNwaGVyZUxpZ2h0IGhlbWlzcGhlcmVMaWdodHNbIE5VTV9IRU1JX0xJR0hUUyBdO1xuXHR2ZWMzIGdldEhlbWlzcGhlcmVMaWdodElycmFkaWFuY2UoIGNvbnN0IGluIEhlbWlzcGhlcmVMaWdodCBoZW1pTGlnaHQsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnkgKSB7XG5cdFx0ZmxvYXQgZG90TkwgPSBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgaGVtaUxpZ2h0LmRpcmVjdGlvbiApO1xuXHRcdGZsb2F0IGhlbWlEaWZmdXNlV2VpZ2h0ID0gMC41ICogZG90TkwgKyAwLjU7XG5cdFx0dmVjMyBpcnJhZGlhbmNlID0gbWl4KCBoZW1pTGlnaHQuZ3JvdW5kQ29sb3IsIGhlbWlMaWdodC5za3lDb2xvciwgaGVtaURpZmZ1c2VXZWlnaHQgKTtcblx0XHQjaWZuZGVmIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFNcblx0XHRcdGlycmFkaWFuY2UgKj0gUEk7XG5cdFx0I2VuZGlmXG5cdFx0cmV0dXJuIGlycmFkaWFuY2U7XG5cdH1cbiNlbmRpZiIsbGlnaHRzX3Rvb25fZnJhZ21lbnQ6IlRvb25NYXRlcmlhbCBtYXRlcmlhbDtcbm1hdGVyaWFsLmRpZmZ1c2VDb2xvciA9IGRpZmZ1c2VDb2xvci5yZ2I7IixsaWdodHNfdG9vbl9wYXJzX2ZyYWdtZW50OiJ2YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG4jZW5kaWZcbnN0cnVjdCBUb29uTWF0ZXJpYWwge1xuXHR2ZWMzIGRpZmZ1c2VDb2xvcjtcbn07XG52b2lkIFJFX0RpcmVjdF9Ub29uKCBjb25zdCBpbiBJbmNpZGVudExpZ2h0IGRpcmVjdExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBUb29uTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkge1xuXHR2ZWMzIGlycmFkaWFuY2UgPSBnZXRHcmFkaWVudElycmFkaWFuY2UoIGdlb21ldHJ5Lm5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICkgKiBkaXJlY3RMaWdodC5jb2xvcjtcblx0I2lmbmRlZiBQSFlTSUNBTExZX0NPUlJFQ1RfTElHSFRTXG5cdFx0aXJyYWRpYW5jZSAqPSBQSTtcblx0I2VuZGlmXG5cdHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKz0gaXJyYWRpYW5jZSAqIEJSREZfRGlmZnVzZV9MYW1iZXJ0KCBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgKTtcbn1cbnZvaWQgUkVfSW5kaXJlY3REaWZmdXNlX1Rvb24oIGNvbnN0IGluIHZlYzMgaXJyYWRpYW5jZSwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gVG9vbk1hdGVyaWFsIG1hdGVyaWFsLCBpbm91dCBSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCApIHtcblx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IGlycmFkaWFuY2UgKiBCUkRGX0RpZmZ1c2VfTGFtYmVydCggbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICk7XG59XG4jZGVmaW5lIFJFX0RpcmVjdFx0XHRcdFx0UkVfRGlyZWN0X1Rvb25cbiNkZWZpbmUgUkVfSW5kaXJlY3REaWZmdXNlXHRcdFJFX0luZGlyZWN0RGlmZnVzZV9Ub29uXG4jZGVmaW5lIE1hdGVyaWFsX0xpZ2h0UHJvYmVMT0QoIG1hdGVyaWFsIClcdCgwKSIsbGlnaHRzX3Bob25nX2ZyYWdtZW50OiJCbGlublBob25nTWF0ZXJpYWwgbWF0ZXJpYWw7XG5tYXRlcmlhbC5kaWZmdXNlQ29sb3IgPSBkaWZmdXNlQ29sb3IucmdiO1xubWF0ZXJpYWwuc3BlY3VsYXJDb2xvciA9IHNwZWN1bGFyO1xubWF0ZXJpYWwuc3BlY3VsYXJTaGluaW5lc3MgPSBzaGluaW5lc3M7XG5tYXRlcmlhbC5zcGVjdWxhclN0cmVuZ3RoID0gc3BlY3VsYXJTdHJlbmd0aDsiLGxpZ2h0c19waG9uZ19wYXJzX2ZyYWdtZW50OiJ2YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG4jZW5kaWZcbnN0cnVjdCBCbGlublBob25nTWF0ZXJpYWwge1xuXHR2ZWMzIGRpZmZ1c2VDb2xvcjtcblx0dmVjMyBzcGVjdWxhckNvbG9yO1xuXHRmbG9hdCBzcGVjdWxhclNoaW5pbmVzcztcblx0ZmxvYXQgc3BlY3VsYXJTdHJlbmd0aDtcbn07XG52b2lkIFJFX0RpcmVjdF9CbGlublBob25nKCBjb25zdCBpbiBJbmNpZGVudExpZ2h0IGRpcmVjdExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBCbGlublBob25nTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkge1xuXHRmbG9hdCBkb3ROTCA9IHNhdHVyYXRlKCBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICkgKTtcblx0dmVjMyBpcnJhZGlhbmNlID0gZG90TkwgKiBkaXJlY3RMaWdodC5jb2xvcjtcblx0I2lmbmRlZiBQSFlTSUNBTExZX0NPUlJFQ1RfTElHSFRTXG5cdFx0aXJyYWRpYW5jZSAqPSBQSTtcblx0I2VuZGlmXG5cdHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKz0gaXJyYWRpYW5jZSAqIEJSREZfRGlmZnVzZV9MYW1iZXJ0KCBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgKTtcblx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0U3BlY3VsYXIgKz0gaXJyYWRpYW5jZSAqIEJSREZfU3BlY3VsYXJfQmxpbm5QaG9uZyggZGlyZWN0TGlnaHQsIGdlb21ldHJ5LCBtYXRlcmlhbC5zcGVjdWxhckNvbG9yLCBtYXRlcmlhbC5zcGVjdWxhclNoaW5pbmVzcyApICogbWF0ZXJpYWwuc3BlY3VsYXJTdHJlbmd0aDtcbn1cbnZvaWQgUkVfSW5kaXJlY3REaWZmdXNlX0JsaW5uUGhvbmcoIGNvbnN0IGluIHZlYzMgaXJyYWRpYW5jZSwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gQmxpbm5QaG9uZ01hdGVyaWFsIG1hdGVyaWFsLCBpbm91dCBSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCApIHtcblx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IGlycmFkaWFuY2UgKiBCUkRGX0RpZmZ1c2VfTGFtYmVydCggbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICk7XG59XG4jZGVmaW5lIFJFX0RpcmVjdFx0XHRcdFx0UkVfRGlyZWN0X0JsaW5uUGhvbmdcbiNkZWZpbmUgUkVfSW5kaXJlY3REaWZmdXNlXHRcdFJFX0luZGlyZWN0RGlmZnVzZV9CbGlublBob25nXG4jZGVmaW5lIE1hdGVyaWFsX0xpZ2h0UHJvYmVMT0QoIG1hdGVyaWFsIClcdCgwKSIsbGlnaHRzX3BoeXNpY2FsX2ZyYWdtZW50OiJQaHlzaWNhbE1hdGVyaWFsIG1hdGVyaWFsO1xubWF0ZXJpYWwuZGlmZnVzZUNvbG9yID0gZGlmZnVzZUNvbG9yLnJnYiAqICggMS4wIC0gbWV0YWxuZXNzRmFjdG9yICk7XG52ZWMzIGR4eSA9IG1heCggYWJzKCBkRmR4KCBnZW9tZXRyeU5vcm1hbCApICksIGFicyggZEZkeSggZ2VvbWV0cnlOb3JtYWwgKSApICk7XG5mbG9hdCBnZW9tZXRyeVJvdWdobmVzcyA9IG1heCggbWF4KCBkeHkueCwgZHh5LnkgKSwgZHh5LnogKTtcbm1hdGVyaWFsLnNwZWN1bGFyUm91Z2huZXNzID0gbWF4KCByb3VnaG5lc3NGYWN0b3IsIDAuMDUyNSApO21hdGVyaWFsLnNwZWN1bGFyUm91Z2huZXNzICs9IGdlb21ldHJ5Um91Z2huZXNzO1xubWF0ZXJpYWwuc3BlY3VsYXJSb3VnaG5lc3MgPSBtaW4oIG1hdGVyaWFsLnNwZWN1bGFyUm91Z2huZXNzLCAxLjAgKTtcbiNpZmRlZiBSRUZMRUNUSVZJVFlcblx0I2lmZGVmIFNQRUNVTEFSXG5cdFx0dmVjMyBzcGVjdWxhckludGVuc2l0eUZhY3RvciA9IHZlYzMoIHNwZWN1bGFySW50ZW5zaXR5ICk7XG5cdFx0dmVjMyBzcGVjdWxhclRpbnRGYWN0b3IgPSBzcGVjdWxhclRpbnQ7XG5cdFx0I2lmZGVmIFVTRV9TUEVDVUxBUklOVEVOU0lUWU1BUFxuXHRcdFx0c3BlY3VsYXJJbnRlbnNpdHlGYWN0b3IgKj0gdGV4dHVyZTJEKCBzcGVjdWxhckludGVuc2l0eU1hcCwgdlV2ICkuYTtcblx0XHQjZW5kaWZcblx0XHQjaWZkZWYgVVNFX1NQRUNVTEFSVElOVE1BUFxuXHRcdFx0c3BlY3VsYXJUaW50RmFjdG9yICo9IHNwZWN1bGFyVGludE1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmUyRCggc3BlY3VsYXJUaW50TWFwLCB2VXYgKSApLnJnYjtcblx0XHQjZW5kaWZcblx0XHRtYXRlcmlhbC5zcGVjdWxhckNvbG9yRjkwID0gbWl4KCBzcGVjdWxhckludGVuc2l0eUZhY3RvciwgdmVjMyggMS4wICksIG1ldGFsbmVzc0ZhY3RvciApO1xuXHQjZWxzZVxuXHRcdHZlYzMgc3BlY3VsYXJJbnRlbnNpdHlGYWN0b3IgPSB2ZWMzKCAxLjAgKTtcblx0XHR2ZWMzIHNwZWN1bGFyVGludEZhY3RvciA9IHZlYzMoIDEuMCApO1xuXHRcdG1hdGVyaWFsLnNwZWN1bGFyQ29sb3JGOTAgPSB2ZWMzKCAxLjAgKTtcblx0I2VuZGlmXG5cdG1hdGVyaWFsLnNwZWN1bGFyQ29sb3IgPSBtaXgoIG1pbiggdmVjMyggTUFYSU1VTV9TUEVDVUxBUl9DT0VGRklDSUVOVCAqIHBvdzIoIHJlZmxlY3Rpdml0eSApICkgKiBzcGVjdWxhclRpbnRGYWN0b3IsIHZlYzMoIDEuMCApICkgKiBzcGVjdWxhckludGVuc2l0eUZhY3RvciwgZGlmZnVzZUNvbG9yLnJnYiwgbWV0YWxuZXNzRmFjdG9yICk7XG4jZWxzZVxuXHRtYXRlcmlhbC5zcGVjdWxhckNvbG9yID0gbWl4KCB2ZWMzKCBERUZBVUxUX1NQRUNVTEFSX0NPRUZGSUNJRU5UICksIGRpZmZ1c2VDb2xvci5yZ2IsIG1ldGFsbmVzc0ZhY3RvciApO1xuXHRtYXRlcmlhbC5zcGVjdWxhckNvbG9yRjkwID0gdmVjMyggMS4wICk7XG4jZW5kaWZcbiNpZmRlZiBDTEVBUkNPQVRcblx0bWF0ZXJpYWwuY2xlYXJjb2F0ID0gY2xlYXJjb2F0O1xuXHRtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgPSBjbGVhcmNvYXRSb3VnaG5lc3M7XG5cdCNpZmRlZiBVU0VfQ0xFQVJDT0FUTUFQXG5cdFx0bWF0ZXJpYWwuY2xlYXJjb2F0ICo9IHRleHR1cmUyRCggY2xlYXJjb2F0TWFwLCB2VXYgKS54O1xuXHQjZW5kaWZcblx0I2lmZGVmIFVTRV9DTEVBUkNPQVRfUk9VR0hORVNTTUFQXG5cdFx0bWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzICo9IHRleHR1cmUyRCggY2xlYXJjb2F0Um91Z2huZXNzTWFwLCB2VXYgKS55O1xuXHQjZW5kaWZcblx0bWF0ZXJpYWwuY2xlYXJjb2F0ID0gc2F0dXJhdGUoIG1hdGVyaWFsLmNsZWFyY29hdCApO1x0bWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzID0gbWF4KCBtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MsIDAuMDUyNSApO1xuXHRtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgKz0gZ2VvbWV0cnlSb3VnaG5lc3M7XG5cdG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcyA9IG1pbiggbWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzLCAxLjAgKTtcbiNlbmRpZlxuI2lmZGVmIFVTRV9TSEVFTlxuXHRtYXRlcmlhbC5zaGVlbkNvbG9yID0gc2hlZW47XG4jZW5kaWYiLGxpZ2h0c19waHlzaWNhbF9wYXJzX2ZyYWdtZW50OiJzdHJ1Y3QgUGh5c2ljYWxNYXRlcmlhbCB7XG5cdHZlYzMgZGlmZnVzZUNvbG9yO1xuXHRmbG9hdCBzcGVjdWxhclJvdWdobmVzcztcblx0dmVjMyBzcGVjdWxhckNvbG9yO1xuXHR2ZWMzIHNwZWN1bGFyQ29sb3JGOTA7XG4jaWZkZWYgQ0xFQVJDT0FUXG5cdGZsb2F0IGNsZWFyY29hdDtcblx0ZmxvYXQgY2xlYXJjb2F0Um91Z2huZXNzO1xuI2VuZGlmXG4jaWZkZWYgVVNFX1NIRUVOXG5cdHZlYzMgc2hlZW5Db2xvcjtcbiNlbmRpZlxufTtcbiNkZWZpbmUgTUFYSU1VTV9TUEVDVUxBUl9DT0VGRklDSUVOVCAwLjE2XG4jZGVmaW5lIERFRkFVTFRfU1BFQ1VMQVJfQ09FRkZJQ0lFTlQgMC4wNFxuZmxvYXQgY2xlYXJjb2F0REhSQXBwcm94KCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MsIGNvbnN0IGluIGZsb2F0IGRvdE5MICkge1xuXHRyZXR1cm4gREVGQVVMVF9TUEVDVUxBUl9DT0VGRklDSUVOVCArICggMS4wIC0gREVGQVVMVF9TUEVDVUxBUl9DT0VGRklDSUVOVCApICogKCBwb3coIDEuMCAtIGRvdE5MLCA1LjAgKSAqIHBvdyggMS4wIC0gcm91Z2huZXNzLCAyLjAgKSApO1xufVxuI2lmIE5VTV9SRUNUX0FSRUFfTElHSFRTID4gMFxuXHR2b2lkIFJFX0RpcmVjdF9SZWN0QXJlYV9QaHlzaWNhbCggY29uc3QgaW4gUmVjdEFyZWFMaWdodCByZWN0QXJlYUxpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBQaHlzaWNhbE1hdGVyaWFsIG1hdGVyaWFsLCBpbm91dCBSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCApIHtcblx0XHR2ZWMzIG5vcm1hbCA9IGdlb21ldHJ5Lm5vcm1hbDtcblx0XHR2ZWMzIHZpZXdEaXIgPSBnZW9tZXRyeS52aWV3RGlyO1xuXHRcdHZlYzMgcG9zaXRpb24gPSBnZW9tZXRyeS5wb3NpdGlvbjtcblx0XHR2ZWMzIGxpZ2h0UG9zID0gcmVjdEFyZWFMaWdodC5wb3NpdGlvbjtcblx0XHR2ZWMzIGhhbGZXaWR0aCA9IHJlY3RBcmVhTGlnaHQuaGFsZldpZHRoO1xuXHRcdHZlYzMgaGFsZkhlaWdodCA9IHJlY3RBcmVhTGlnaHQuaGFsZkhlaWdodDtcblx0XHR2ZWMzIGxpZ2h0Q29sb3IgPSByZWN0QXJlYUxpZ2h0LmNvbG9yO1xuXHRcdGZsb2F0IHJvdWdobmVzcyA9IG1hdGVyaWFsLnNwZWN1bGFyUm91Z2huZXNzO1xuXHRcdHZlYzMgcmVjdENvb3Jkc1sgNCBdO1xuXHRcdHJlY3RDb29yZHNbIDAgXSA9IGxpZ2h0UG9zICsgaGFsZldpZHRoIC0gaGFsZkhlaWdodDtcdFx0cmVjdENvb3Jkc1sgMSBdID0gbGlnaHRQb3MgLSBoYWxmV2lkdGggLSBoYWxmSGVpZ2h0O1xuXHRcdHJlY3RDb29yZHNbIDIgXSA9IGxpZ2h0UG9zIC0gaGFsZldpZHRoICsgaGFsZkhlaWdodDtcblx0XHRyZWN0Q29vcmRzWyAzIF0gPSBsaWdodFBvcyArIGhhbGZXaWR0aCArIGhhbGZIZWlnaHQ7XG5cdFx0dmVjMiB1diA9IExUQ19Vdiggbm9ybWFsLCB2aWV3RGlyLCByb3VnaG5lc3MgKTtcblx0XHR2ZWM0IHQxID0gdGV4dHVyZTJEKCBsdGNfMSwgdXYgKTtcblx0XHR2ZWM0IHQyID0gdGV4dHVyZTJEKCBsdGNfMiwgdXYgKTtcblx0XHRtYXQzIG1JbnYgPSBtYXQzKFxuXHRcdFx0dmVjMyggdDEueCwgMCwgdDEueSApLFxuXHRcdFx0dmVjMyggICAgMCwgMSwgICAgMCApLFxuXHRcdFx0dmVjMyggdDEueiwgMCwgdDEudyApXG5cdFx0KTtcblx0XHR2ZWMzIGZyZXNuZWwgPSAoIG1hdGVyaWFsLnNwZWN1bGFyQ29sb3IgKiB0Mi54ICsgKCB2ZWMzKCAxLjAgKSAtIG1hdGVyaWFsLnNwZWN1bGFyQ29sb3IgKSAqIHQyLnkgKTtcblx0XHRyZWZsZWN0ZWRMaWdodC5kaXJlY3RTcGVjdWxhciArPSBsaWdodENvbG9yICogZnJlc25lbCAqIExUQ19FdmFsdWF0ZSggbm9ybWFsLCB2aWV3RGlyLCBwb3NpdGlvbiwgbUludiwgcmVjdENvb3JkcyApO1xuXHRcdHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKz0gbGlnaHRDb2xvciAqIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciAqIExUQ19FdmFsdWF0ZSggbm9ybWFsLCB2aWV3RGlyLCBwb3NpdGlvbiwgbWF0MyggMS4wICksIHJlY3RDb29yZHMgKTtcblx0fVxuI2VuZGlmXG52b2lkIFJFX0RpcmVjdF9QaHlzaWNhbCggY29uc3QgaW4gSW5jaWRlbnRMaWdodCBkaXJlY3RMaWdodCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gUGh5c2ljYWxNYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgKSB7XG5cdGZsb2F0IGRvdE5MID0gc2F0dXJhdGUoIGRvdCggZ2VvbWV0cnkubm9ybWFsLCBkaXJlY3RMaWdodC5kaXJlY3Rpb24gKSApO1xuXHR2ZWMzIGlycmFkaWFuY2UgPSBkb3ROTCAqIGRpcmVjdExpZ2h0LmNvbG9yO1xuXHQjaWZuZGVmIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFNcblx0XHRpcnJhZGlhbmNlICo9IFBJO1xuXHQjZW5kaWZcblx0I2lmZGVmIENMRUFSQ09BVFxuXHRcdGZsb2F0IGNjRG90TkwgPSBzYXR1cmF0ZSggZG90KCBnZW9tZXRyeS5jbGVhcmNvYXROb3JtYWwsIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiApICk7XG5cdFx0dmVjMyBjY0lycmFkaWFuY2UgPSBjY0RvdE5MICogZGlyZWN0TGlnaHQuY29sb3I7XG5cdFx0I2lmbmRlZiBQSFlTSUNBTExZX0NPUlJFQ1RfTElHSFRTXG5cdFx0XHRjY0lycmFkaWFuY2UgKj0gUEk7XG5cdFx0I2VuZGlmXG5cdFx0ZmxvYXQgY2xlYXJjb2F0REhSID0gbWF0ZXJpYWwuY2xlYXJjb2F0ICogY2xlYXJjb2F0REhSQXBwcm94KCBtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MsIGNjRG90TkwgKTtcblx0XHRyZWZsZWN0ZWRMaWdodC5kaXJlY3RTcGVjdWxhciArPSBjY0lycmFkaWFuY2UgKiBtYXRlcmlhbC5jbGVhcmNvYXQgKiBCUkRGX1NwZWN1bGFyX0dHWCggZGlyZWN0TGlnaHQsIGdlb21ldHJ5LnZpZXdEaXIsIGdlb21ldHJ5LmNsZWFyY29hdE5vcm1hbCwgdmVjMyggREVGQVVMVF9TUEVDVUxBUl9DT0VGRklDSUVOVCApLCB2ZWMzKCAxLjAgKSwgbWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzICk7XG5cdCNlbHNlXG5cdFx0ZmxvYXQgY2xlYXJjb2F0REhSID0gMC4wO1xuXHQjZW5kaWZcblx0I2lmZGVmIFVTRV9TSEVFTlxuXHRcdHJlZmxlY3RlZExpZ2h0LmRpcmVjdFNwZWN1bGFyICs9ICggMS4wIC0gY2xlYXJjb2F0REhSICkgKiBpcnJhZGlhbmNlICogQlJERl9TcGVjdWxhcl9TaGVlbihcblx0XHRcdG1hdGVyaWFsLnNwZWN1bGFyUm91Z2huZXNzLFxuXHRcdFx0ZGlyZWN0TGlnaHQuZGlyZWN0aW9uLFxuXHRcdFx0Z2VvbWV0cnksXG5cdFx0XHRtYXRlcmlhbC5zaGVlbkNvbG9yXG5cdFx0KTtcblx0I2Vsc2Vcblx0XHRyZWZsZWN0ZWRMaWdodC5kaXJlY3RTcGVjdWxhciArPSAoIDEuMCAtIGNsZWFyY29hdERIUiApICogaXJyYWRpYW5jZSAqIEJSREZfU3BlY3VsYXJfR0dYKCBkaXJlY3RMaWdodCwgZ2VvbWV0cnkudmlld0RpciwgZ2VvbWV0cnkubm9ybWFsLCBtYXRlcmlhbC5zcGVjdWxhckNvbG9yLCBtYXRlcmlhbC5zcGVjdWxhckNvbG9yRjkwLCBtYXRlcmlhbC5zcGVjdWxhclJvdWdobmVzcyk7XG5cdCNlbmRpZlxuXHRyZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICs9ICggMS4wIC0gY2xlYXJjb2F0REhSICkgKiBpcnJhZGlhbmNlICogQlJERl9EaWZmdXNlX0xhbWJlcnQoIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciApO1xufVxudm9pZCBSRV9JbmRpcmVjdERpZmZ1c2VfUGh5c2ljYWwoIGNvbnN0IGluIHZlYzMgaXJyYWRpYW5jZSwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gUGh5c2ljYWxNYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgKSB7XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSBpcnJhZGlhbmNlICogQlJERl9EaWZmdXNlX0xhbWJlcnQoIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciApO1xufVxudm9pZCBSRV9JbmRpcmVjdFNwZWN1bGFyX1BoeXNpY2FsKCBjb25zdCBpbiB2ZWMzIHJhZGlhbmNlLCBjb25zdCBpbiB2ZWMzIGlycmFkaWFuY2UsIGNvbnN0IGluIHZlYzMgY2xlYXJjb2F0UmFkaWFuY2UsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIFBoeXNpY2FsTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0KSB7XG5cdCNpZmRlZiBDTEVBUkNPQVRcblx0XHRmbG9hdCBjY0RvdE5WID0gc2F0dXJhdGUoIGRvdCggZ2VvbWV0cnkuY2xlYXJjb2F0Tm9ybWFsLCBnZW9tZXRyeS52aWV3RGlyICkgKTtcblx0XHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdFNwZWN1bGFyICs9IGNsZWFyY29hdFJhZGlhbmNlICogbWF0ZXJpYWwuY2xlYXJjb2F0ICogQlJERl9TcGVjdWxhcl9HR1hfRW52aXJvbm1lbnQoIGdlb21ldHJ5LnZpZXdEaXIsIGdlb21ldHJ5LmNsZWFyY29hdE5vcm1hbCwgdmVjMyggREVGQVVMVF9TUEVDVUxBUl9DT0VGRklDSUVOVCApLCBtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgKTtcblx0XHRmbG9hdCBjY0RvdE5MID0gY2NEb3ROVjtcblx0XHRmbG9hdCBjbGVhcmNvYXRESFIgPSBtYXRlcmlhbC5jbGVhcmNvYXQgKiBjbGVhcmNvYXRESFJBcHByb3goIG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcywgY2NEb3ROTCApO1xuXHQjZWxzZVxuXHRcdGZsb2F0IGNsZWFyY29hdERIUiA9IDAuMDtcblx0I2VuZGlmXG5cdGZsb2F0IGNsZWFyY29hdEludiA9IDEuMCAtIGNsZWFyY29hdERIUjtcblx0dmVjMyBzaW5nbGVTY2F0dGVyaW5nID0gdmVjMyggMC4wICk7XG5cdHZlYzMgbXVsdGlTY2F0dGVyaW5nID0gdmVjMyggMC4wICk7XG5cdHZlYzMgY29zaW5lV2VpZ2h0ZWRJcnJhZGlhbmNlID0gaXJyYWRpYW5jZSAqIFJFQ0lQUk9DQUxfUEk7XG5cdEJSREZfU3BlY3VsYXJfTXVsdGlzY2F0dGVyaW5nX0Vudmlyb25tZW50KCBnZW9tZXRyeSwgbWF0ZXJpYWwuc3BlY3VsYXJDb2xvciwgbWF0ZXJpYWwuc3BlY3VsYXJSb3VnaG5lc3MsIHNpbmdsZVNjYXR0ZXJpbmcsIG11bHRpU2NhdHRlcmluZyApO1xuXHR2ZWMzIGRpZmZ1c2UgPSBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgKiAoIDEuMCAtICggc2luZ2xlU2NhdHRlcmluZyArIG11bHRpU2NhdHRlcmluZyApICk7XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0U3BlY3VsYXIgKz0gY2xlYXJjb2F0SW52ICogcmFkaWFuY2UgKiBzaW5nbGVTY2F0dGVyaW5nO1xuXHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdFNwZWN1bGFyICs9IG11bHRpU2NhdHRlcmluZyAqIGNvc2luZVdlaWdodGVkSXJyYWRpYW5jZTtcblx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IGRpZmZ1c2UgKiBjb3NpbmVXZWlnaHRlZElycmFkaWFuY2U7XG59XG4jZGVmaW5lIFJFX0RpcmVjdFx0XHRcdFx0UkVfRGlyZWN0X1BoeXNpY2FsXG4jZGVmaW5lIFJFX0RpcmVjdF9SZWN0QXJlYVx0XHRSRV9EaXJlY3RfUmVjdEFyZWFfUGh5c2ljYWxcbiNkZWZpbmUgUkVfSW5kaXJlY3REaWZmdXNlXHRcdFJFX0luZGlyZWN0RGlmZnVzZV9QaHlzaWNhbFxuI2RlZmluZSBSRV9JbmRpcmVjdFNwZWN1bGFyXHRcdFJFX0luZGlyZWN0U3BlY3VsYXJfUGh5c2ljYWxcbmZsb2F0IGNvbXB1dGVTcGVjdWxhck9jY2x1c2lvbiggY29uc3QgaW4gZmxvYXQgZG90TlYsIGNvbnN0IGluIGZsb2F0IGFtYmllbnRPY2NsdXNpb24sIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcyApIHtcblx0cmV0dXJuIHNhdHVyYXRlKCBwb3coIGRvdE5WICsgYW1iaWVudE9jY2x1c2lvbiwgZXhwMiggLSAxNi4wICogcm91Z2huZXNzIC0gMS4wICkgKSAtIDEuMCArIGFtYmllbnRPY2NsdXNpb24gKTtcbn0iLGxpZ2h0c19mcmFnbWVudF9iZWdpbjoiXG5HZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5O1xuZ2VvbWV0cnkucG9zaXRpb24gPSAtIHZWaWV3UG9zaXRpb247XG5nZW9tZXRyeS5ub3JtYWwgPSBub3JtYWw7XG5nZW9tZXRyeS52aWV3RGlyID0gKCBpc09ydGhvZ3JhcGhpYyApID8gdmVjMyggMCwgMCwgMSApIDogbm9ybWFsaXplKCB2Vmlld1Bvc2l0aW9uICk7XG4jaWZkZWYgQ0xFQVJDT0FUXG5cdGdlb21ldHJ5LmNsZWFyY29hdE5vcm1hbCA9IGNsZWFyY29hdE5vcm1hbDtcbiNlbmRpZlxuSW5jaWRlbnRMaWdodCBkaXJlY3RMaWdodDtcbiNpZiAoIE5VTV9QT0lOVF9MSUdIVFMgPiAwICkgJiYgZGVmaW5lZCggUkVfRGlyZWN0IClcblx0UG9pbnRMaWdodCBwb2ludExpZ2h0O1xuXHQjaWYgZGVmaW5lZCggVVNFX1NIQURPV01BUCApICYmIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTID4gMFxuXHRQb2ludExpZ2h0U2hhZG93IHBvaW50TGlnaHRTaGFkb3c7XG5cdCNlbmRpZlxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9QT0lOVF9MSUdIVFM7IGkgKysgKSB7XG5cdFx0cG9pbnRMaWdodCA9IHBvaW50TGlnaHRzWyBpIF07XG5cdFx0Z2V0UG9pbnREaXJlY3RMaWdodElycmFkaWFuY2UoIHBvaW50TGlnaHQsIGdlb21ldHJ5LCBkaXJlY3RMaWdodCApO1xuXHRcdCNpZiBkZWZpbmVkKCBVU0VfU0hBRE9XTUFQICkgJiYgKCBVTlJPTExFRF9MT09QX0lOREVYIDwgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgKVxuXHRcdHBvaW50TGlnaHRTaGFkb3cgPSBwb2ludExpZ2h0U2hhZG93c1sgaSBdO1xuXHRcdGRpcmVjdExpZ2h0LmNvbG9yICo9IGFsbCggYnZlYzIoIGRpcmVjdExpZ2h0LnZpc2libGUsIHJlY2VpdmVTaGFkb3cgKSApID8gZ2V0UG9pbnRTaGFkb3coIHBvaW50U2hhZG93TWFwWyBpIF0sIHBvaW50TGlnaHRTaGFkb3cuc2hhZG93TWFwU2l6ZSwgcG9pbnRMaWdodFNoYWRvdy5zaGFkb3dCaWFzLCBwb2ludExpZ2h0U2hhZG93LnNoYWRvd1JhZGl1cywgdlBvaW50U2hhZG93Q29vcmRbIGkgXSwgcG9pbnRMaWdodFNoYWRvdy5zaGFkb3dDYW1lcmFOZWFyLCBwb2ludExpZ2h0U2hhZG93LnNoYWRvd0NhbWVyYUZhciApIDogMS4wO1xuXHRcdCNlbmRpZlxuXHRcdFJFX0RpcmVjdCggZGlyZWN0TGlnaHQsIGdlb21ldHJ5LCBtYXRlcmlhbCwgcmVmbGVjdGVkTGlnaHQgKTtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuI2VuZGlmXG4jaWYgKCBOVU1fU1BPVF9MSUdIVFMgPiAwICkgJiYgZGVmaW5lZCggUkVfRGlyZWN0IClcblx0U3BvdExpZ2h0IHNwb3RMaWdodDtcblx0I2lmIGRlZmluZWQoIFVTRV9TSEFET1dNQVAgKSAmJiBOVU1fU1BPVF9MSUdIVF9TSEFET1dTID4gMFxuXHRTcG90TGlnaHRTaGFkb3cgc3BvdExpZ2h0U2hhZG93O1xuXHQjZW5kaWZcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fU1BPVF9MSUdIVFM7IGkgKysgKSB7XG5cdFx0c3BvdExpZ2h0ID0gc3BvdExpZ2h0c1sgaSBdO1xuXHRcdGdldFNwb3REaXJlY3RMaWdodElycmFkaWFuY2UoIHNwb3RMaWdodCwgZ2VvbWV0cnksIGRpcmVjdExpZ2h0ICk7XG5cdFx0I2lmIGRlZmluZWQoIFVTRV9TSEFET1dNQVAgKSAmJiAoIFVOUk9MTEVEX0xPT1BfSU5ERVggPCBOVU1fU1BPVF9MSUdIVF9TSEFET1dTIClcblx0XHRzcG90TGlnaHRTaGFkb3cgPSBzcG90TGlnaHRTaGFkb3dzWyBpIF07XG5cdFx0ZGlyZWN0TGlnaHQuY29sb3IgKj0gYWxsKCBidmVjMiggZGlyZWN0TGlnaHQudmlzaWJsZSwgcmVjZWl2ZVNoYWRvdyApICkgPyBnZXRTaGFkb3coIHNwb3RTaGFkb3dNYXBbIGkgXSwgc3BvdExpZ2h0U2hhZG93LnNoYWRvd01hcFNpemUsIHNwb3RMaWdodFNoYWRvdy5zaGFkb3dCaWFzLCBzcG90TGlnaHRTaGFkb3cuc2hhZG93UmFkaXVzLCB2U3BvdFNoYWRvd0Nvb3JkWyBpIF0gKSA6IDEuMDtcblx0XHQjZW5kaWZcblx0XHRSRV9EaXJlY3QoIGRpcmVjdExpZ2h0LCBnZW9tZXRyeSwgbWF0ZXJpYWwsIHJlZmxlY3RlZExpZ2h0ICk7XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcbiNlbmRpZlxuI2lmICggTlVNX0RJUl9MSUdIVFMgPiAwICkgJiYgZGVmaW5lZCggUkVfRGlyZWN0IClcblx0RGlyZWN0aW9uYWxMaWdodCBkaXJlY3Rpb25hbExpZ2h0O1xuXHQjaWYgZGVmaW5lZCggVVNFX1NIQURPV01BUCApICYmIE5VTV9ESVJfTElHSFRfU0hBRE9XUyA+IDBcblx0RGlyZWN0aW9uYWxMaWdodFNoYWRvdyBkaXJlY3Rpb25hbExpZ2h0U2hhZG93O1xuXHQjZW5kaWZcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fRElSX0xJR0hUUzsgaSArKyApIHtcblx0XHRkaXJlY3Rpb25hbExpZ2h0ID0gZGlyZWN0aW9uYWxMaWdodHNbIGkgXTtcblx0XHRnZXREaXJlY3Rpb25hbERpcmVjdExpZ2h0SXJyYWRpYW5jZSggZGlyZWN0aW9uYWxMaWdodCwgZ2VvbWV0cnksIGRpcmVjdExpZ2h0ICk7XG5cdFx0I2lmIGRlZmluZWQoIFVTRV9TSEFET1dNQVAgKSAmJiAoIFVOUk9MTEVEX0xPT1BfSU5ERVggPCBOVU1fRElSX0xJR0hUX1NIQURPV1MgKVxuXHRcdGRpcmVjdGlvbmFsTGlnaHRTaGFkb3cgPSBkaXJlY3Rpb25hbExpZ2h0U2hhZG93c1sgaSBdO1xuXHRcdGRpcmVjdExpZ2h0LmNvbG9yICo9IGFsbCggYnZlYzIoIGRpcmVjdExpZ2h0LnZpc2libGUsIHJlY2VpdmVTaGFkb3cgKSApID8gZ2V0U2hhZG93KCBkaXJlY3Rpb25hbFNoYWRvd01hcFsgaSBdLCBkaXJlY3Rpb25hbExpZ2h0U2hhZG93LnNoYWRvd01hcFNpemUsIGRpcmVjdGlvbmFsTGlnaHRTaGFkb3cuc2hhZG93QmlhcywgZGlyZWN0aW9uYWxMaWdodFNoYWRvdy5zaGFkb3dSYWRpdXMsIHZEaXJlY3Rpb25hbFNoYWRvd0Nvb3JkWyBpIF0gKSA6IDEuMDtcblx0XHQjZW5kaWZcblx0XHRSRV9EaXJlY3QoIGRpcmVjdExpZ2h0LCBnZW9tZXRyeSwgbWF0ZXJpYWwsIHJlZmxlY3RlZExpZ2h0ICk7XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcbiNlbmRpZlxuI2lmICggTlVNX1JFQ1RfQVJFQV9MSUdIVFMgPiAwICkgJiYgZGVmaW5lZCggUkVfRGlyZWN0X1JlY3RBcmVhIClcblx0UmVjdEFyZWFMaWdodCByZWN0QXJlYUxpZ2h0O1xuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9SRUNUX0FSRUFfTElHSFRTOyBpICsrICkge1xuXHRcdHJlY3RBcmVhTGlnaHQgPSByZWN0QXJlYUxpZ2h0c1sgaSBdO1xuXHRcdFJFX0RpcmVjdF9SZWN0QXJlYSggcmVjdEFyZWFMaWdodCwgZ2VvbWV0cnksIG1hdGVyaWFsLCByZWZsZWN0ZWRMaWdodCApO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG4jZW5kaWZcbiNpZiBkZWZpbmVkKCBSRV9JbmRpcmVjdERpZmZ1c2UgKVxuXHR2ZWMzIGlibElycmFkaWFuY2UgPSB2ZWMzKCAwLjAgKTtcblx0dmVjMyBpcnJhZGlhbmNlID0gZ2V0QW1iaWVudExpZ2h0SXJyYWRpYW5jZSggYW1iaWVudExpZ2h0Q29sb3IgKTtcblx0aXJyYWRpYW5jZSArPSBnZXRMaWdodFByb2JlSXJyYWRpYW5jZSggbGlnaHRQcm9iZSwgZ2VvbWV0cnkgKTtcblx0I2lmICggTlVNX0hFTUlfTElHSFRTID4gMCApXG5cdFx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRcdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9IRU1JX0xJR0hUUzsgaSArKyApIHtcblx0XHRcdGlycmFkaWFuY2UgKz0gZ2V0SGVtaXNwaGVyZUxpZ2h0SXJyYWRpYW5jZSggaGVtaXNwaGVyZUxpZ2h0c1sgaSBdLCBnZW9tZXRyeSApO1xuXHRcdH1cblx0XHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXHQjZW5kaWZcbiNlbmRpZlxuI2lmIGRlZmluZWQoIFJFX0luZGlyZWN0U3BlY3VsYXIgKVxuXHR2ZWMzIHJhZGlhbmNlID0gdmVjMyggMC4wICk7XG5cdHZlYzMgY2xlYXJjb2F0UmFkaWFuY2UgPSB2ZWMzKCAwLjAgKTtcbiNlbmRpZiIsbGlnaHRzX2ZyYWdtZW50X21hcHM6IiNpZiBkZWZpbmVkKCBSRV9JbmRpcmVjdERpZmZ1c2UgKVxuXHQjaWZkZWYgVVNFX0xJR0hUTUFQXG5cdFx0dmVjNCBsaWdodE1hcFRleGVsPSB0ZXh0dXJlMkQoIGxpZ2h0TWFwLCB2VXYyICk7XG5cdFx0dmVjMyBsaWdodE1hcElycmFkaWFuY2UgPSBsaWdodE1hcFRleGVsVG9MaW5lYXIoIGxpZ2h0TWFwVGV4ZWwgKS5yZ2IgKiBsaWdodE1hcEludGVuc2l0eTtcblx0XHQjaWZuZGVmIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFNcblx0XHRcdGxpZ2h0TWFwSXJyYWRpYW5jZSAqPSBQSTtcblx0XHQjZW5kaWZcblx0XHRpcnJhZGlhbmNlICs9IGxpZ2h0TWFwSXJyYWRpYW5jZTtcblx0I2VuZGlmXG5cdCNpZiBkZWZpbmVkKCBVU0VfRU5WTUFQICkgJiYgZGVmaW5lZCggU1RBTkRBUkQgKSAmJiBkZWZpbmVkKCBFTlZNQVBfVFlQRV9DVUJFX1VWIClcblx0XHRpYmxJcnJhZGlhbmNlICs9IGdldExpZ2h0UHJvYmVJbmRpcmVjdElycmFkaWFuY2UoIGdlb21ldHJ5LCBtYXhNaXBMZXZlbCApO1xuXHQjZW5kaWZcbiNlbmRpZlxuI2lmIGRlZmluZWQoIFVTRV9FTlZNQVAgKSAmJiBkZWZpbmVkKCBSRV9JbmRpcmVjdFNwZWN1bGFyIClcblx0cmFkaWFuY2UgKz0gZ2V0TGlnaHRQcm9iZUluZGlyZWN0UmFkaWFuY2UoIGdlb21ldHJ5LnZpZXdEaXIsIGdlb21ldHJ5Lm5vcm1hbCwgbWF0ZXJpYWwuc3BlY3VsYXJSb3VnaG5lc3MsIG1heE1pcExldmVsICk7XG5cdCNpZmRlZiBDTEVBUkNPQVRcblx0XHRjbGVhcmNvYXRSYWRpYW5jZSArPSBnZXRMaWdodFByb2JlSW5kaXJlY3RSYWRpYW5jZSggZ2VvbWV0cnkudmlld0RpciwgZ2VvbWV0cnkuY2xlYXJjb2F0Tm9ybWFsLCBtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MsIG1heE1pcExldmVsICk7XG5cdCNlbmRpZlxuI2VuZGlmIixsaWdodHNfZnJhZ21lbnRfZW5kOiIjaWYgZGVmaW5lZCggUkVfSW5kaXJlY3REaWZmdXNlIClcblx0UkVfSW5kaXJlY3REaWZmdXNlKCBpcnJhZGlhbmNlLCBnZW9tZXRyeSwgbWF0ZXJpYWwsIHJlZmxlY3RlZExpZ2h0ICk7XG4jZW5kaWZcbiNpZiBkZWZpbmVkKCBSRV9JbmRpcmVjdFNwZWN1bGFyIClcblx0UkVfSW5kaXJlY3RTcGVjdWxhciggcmFkaWFuY2UsIGlibElycmFkaWFuY2UsIGNsZWFyY29hdFJhZGlhbmNlLCBnZW9tZXRyeSwgbWF0ZXJpYWwsIHJlZmxlY3RlZExpZ2h0ICk7XG4jZW5kaWYiLGxvZ2RlcHRoYnVmX2ZyYWdtZW50OiIjaWYgZGVmaW5lZCggVVNFX0xPR0RFUFRIQlVGICkgJiYgZGVmaW5lZCggVVNFX0xPR0RFUFRIQlVGX0VYVCApXG5cdGdsX0ZyYWdEZXB0aEVYVCA9IHZJc1BlcnNwZWN0aXZlID09IDAuMCA/IGdsX0ZyYWdDb29yZC56IDogbG9nMiggdkZyYWdEZXB0aCApICogbG9nRGVwdGhCdWZGQyAqIDAuNTtcbiNlbmRpZiIsbG9nZGVwdGhidWZfcGFyc19mcmFnbWVudDoiI2lmIGRlZmluZWQoIFVTRV9MT0dERVBUSEJVRiApICYmIGRlZmluZWQoIFVTRV9MT0dERVBUSEJVRl9FWFQgKVxuXHR1bmlmb3JtIGZsb2F0IGxvZ0RlcHRoQnVmRkM7XG5cdHZhcnlpbmcgZmxvYXQgdkZyYWdEZXB0aDtcblx0dmFyeWluZyBmbG9hdCB2SXNQZXJzcGVjdGl2ZTtcbiNlbmRpZiIsbG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg6IiNpZmRlZiBVU0VfTE9HREVQVEhCVUZcblx0I2lmZGVmIFVTRV9MT0dERVBUSEJVRl9FWFRcblx0XHR2YXJ5aW5nIGZsb2F0IHZGcmFnRGVwdGg7XG5cdFx0dmFyeWluZyBmbG9hdCB2SXNQZXJzcGVjdGl2ZTtcblx0I2Vsc2Vcblx0XHR1bmlmb3JtIGZsb2F0IGxvZ0RlcHRoQnVmRkM7XG5cdCNlbmRpZlxuI2VuZGlmIixsb2dkZXB0aGJ1Zl92ZXJ0ZXg6IiNpZmRlZiBVU0VfTE9HREVQVEhCVUZcblx0I2lmZGVmIFVTRV9MT0dERVBUSEJVRl9FWFRcblx0XHR2RnJhZ0RlcHRoID0gMS4wICsgZ2xfUG9zaXRpb24udztcblx0XHR2SXNQZXJzcGVjdGl2ZSA9IGZsb2F0KCBpc1BlcnNwZWN0aXZlTWF0cml4KCBwcm9qZWN0aW9uTWF0cml4ICkgKTtcblx0I2Vsc2Vcblx0XHRpZiAoIGlzUGVyc3BlY3RpdmVNYXRyaXgoIHByb2plY3Rpb25NYXRyaXggKSApIHtcblx0XHRcdGdsX1Bvc2l0aW9uLnogPSBsb2cyKCBtYXgoIEVQU0lMT04sIGdsX1Bvc2l0aW9uLncgKyAxLjAgKSApICogbG9nRGVwdGhCdWZGQyAtIDEuMDtcblx0XHRcdGdsX1Bvc2l0aW9uLnogKj0gZ2xfUG9zaXRpb24udztcblx0XHR9XG5cdCNlbmRpZlxuI2VuZGlmIixtYXBfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfTUFQXG5cdHZlYzQgdGV4ZWxDb2xvciA9IHRleHR1cmUyRCggbWFwLCB2VXYgKTtcblx0dGV4ZWxDb2xvciA9IG1hcFRleGVsVG9MaW5lYXIoIHRleGVsQ29sb3IgKTtcblx0ZGlmZnVzZUNvbG9yICo9IHRleGVsQ29sb3I7XG4jZW5kaWYiLG1hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX01BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBtYXA7XG4jZW5kaWYiLG1hcF9wYXJ0aWNsZV9mcmFnbWVudDoiI2lmIGRlZmluZWQoIFVTRV9NQVAgKSB8fCBkZWZpbmVkKCBVU0VfQUxQSEFNQVAgKVxuXHR2ZWMyIHV2ID0gKCB1dlRyYW5zZm9ybSAqIHZlYzMoIGdsX1BvaW50Q29vcmQueCwgMS4wIC0gZ2xfUG9pbnRDb29yZC55LCAxICkgKS54eTtcbiNlbmRpZlxuI2lmZGVmIFVTRV9NQVBcblx0dmVjNCBtYXBUZXhlbCA9IHRleHR1cmUyRCggbWFwLCB1diApO1xuXHRkaWZmdXNlQ29sb3IgKj0gbWFwVGV4ZWxUb0xpbmVhciggbWFwVGV4ZWwgKTtcbiNlbmRpZlxuI2lmZGVmIFVTRV9BTFBIQU1BUFxuXHRkaWZmdXNlQ29sb3IuYSAqPSB0ZXh0dXJlMkQoIGFscGhhTWFwLCB1diApLmc7XG4jZW5kaWYiLG1hcF9wYXJ0aWNsZV9wYXJzX2ZyYWdtZW50OiIjaWYgZGVmaW5lZCggVVNFX01BUCApIHx8IGRlZmluZWQoIFVTRV9BTFBIQU1BUCApXG5cdHVuaWZvcm0gbWF0MyB1dlRyYW5zZm9ybTtcbiNlbmRpZlxuI2lmZGVmIFVTRV9NQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgbWFwO1xuI2VuZGlmXG4jaWZkZWYgVVNFX0FMUEhBTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIGFscGhhTWFwO1xuI2VuZGlmIixtZXRhbG5lc3NtYXBfZnJhZ21lbnQ6ImZsb2F0IG1ldGFsbmVzc0ZhY3RvciA9IG1ldGFsbmVzcztcbiNpZmRlZiBVU0VfTUVUQUxORVNTTUFQXG5cdHZlYzQgdGV4ZWxNZXRhbG5lc3MgPSB0ZXh0dXJlMkQoIG1ldGFsbmVzc01hcCwgdlV2ICk7XG5cdG1ldGFsbmVzc0ZhY3RvciAqPSB0ZXhlbE1ldGFsbmVzcy5iO1xuI2VuZGlmIixtZXRhbG5lc3NtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9NRVRBTE5FU1NNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgbWV0YWxuZXNzTWFwO1xuI2VuZGlmIixtb3JwaG5vcm1hbF92ZXJ0ZXg6IiNpZmRlZiBVU0VfTU9SUEhOT1JNQUxTXG5cdG9iamVjdE5vcm1hbCAqPSBtb3JwaFRhcmdldEJhc2VJbmZsdWVuY2U7XG5cdG9iamVjdE5vcm1hbCArPSBtb3JwaE5vcm1hbDAgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDAgXTtcblx0b2JqZWN0Tm9ybWFsICs9IG1vcnBoTm9ybWFsMSAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMSBdO1xuXHRvYmplY3ROb3JtYWwgKz0gbW9ycGhOb3JtYWwyICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAyIF07XG5cdG9iamVjdE5vcm1hbCArPSBtb3JwaE5vcm1hbDMgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDMgXTtcbiNlbmRpZiIsbW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg6IiNpZmRlZiBVU0VfTU9SUEhUQVJHRVRTXG5cdHVuaWZvcm0gZmxvYXQgbW9ycGhUYXJnZXRCYXNlSW5mbHVlbmNlO1xuXHQjaWZuZGVmIFVTRV9NT1JQSE5PUk1BTFNcblx0XHR1bmlmb3JtIGZsb2F0IG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgOCBdO1xuXHQjZWxzZVxuXHRcdHVuaWZvcm0gZmxvYXQgbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyA0IF07XG5cdCNlbmRpZlxuI2VuZGlmIixtb3JwaHRhcmdldF92ZXJ0ZXg6IiNpZmRlZiBVU0VfTU9SUEhUQVJHRVRTXG5cdHRyYW5zZm9ybWVkICo9IG1vcnBoVGFyZ2V0QmFzZUluZmx1ZW5jZTtcblx0dHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQwICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAwIF07XG5cdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0MSAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMSBdO1xuXHR0cmFuc2Zvcm1lZCArPSBtb3JwaFRhcmdldDIgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDIgXTtcblx0dHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQzICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAzIF07XG5cdCNpZm5kZWYgVVNFX01PUlBITk9STUFMU1xuXHRcdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0NCAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgNCBdO1xuXHRcdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0NSAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgNSBdO1xuXHRcdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0NiAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgNiBdO1xuXHRcdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0NyAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgNyBdO1xuXHQjZW5kaWZcbiNlbmRpZiIsbm9ybWFsX2ZyYWdtZW50X2JlZ2luOiJmbG9hdCBmYWNlRGlyZWN0aW9uID0gZ2xfRnJvbnRGYWNpbmcgPyAxLjAgOiAtIDEuMDtcbiNpZmRlZiBGTEFUX1NIQURFRFxuXHR2ZWMzIGZkeCA9IHZlYzMoIGRGZHgoIHZWaWV3UG9zaXRpb24ueCApLCBkRmR4KCB2Vmlld1Bvc2l0aW9uLnkgKSwgZEZkeCggdlZpZXdQb3NpdGlvbi56ICkgKTtcblx0dmVjMyBmZHkgPSB2ZWMzKCBkRmR5KCB2Vmlld1Bvc2l0aW9uLnggKSwgZEZkeSggdlZpZXdQb3NpdGlvbi55ICksIGRGZHkoIHZWaWV3UG9zaXRpb24ueiApICk7XG5cdHZlYzMgbm9ybWFsID0gbm9ybWFsaXplKCBjcm9zcyggZmR4LCBmZHkgKSApO1xuI2Vsc2Vcblx0dmVjMyBub3JtYWwgPSBub3JtYWxpemUoIHZOb3JtYWwgKTtcblx0I2lmZGVmIERPVUJMRV9TSURFRFxuXHRcdG5vcm1hbCA9IG5vcm1hbCAqIGZhY2VEaXJlY3Rpb247XG5cdCNlbmRpZlxuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHR2ZWMzIHRhbmdlbnQgPSBub3JtYWxpemUoIHZUYW5nZW50ICk7XG5cdFx0dmVjMyBiaXRhbmdlbnQgPSBub3JtYWxpemUoIHZCaXRhbmdlbnQgKTtcblx0XHQjaWZkZWYgRE9VQkxFX1NJREVEXG5cdFx0XHR0YW5nZW50ID0gdGFuZ2VudCAqIGZhY2VEaXJlY3Rpb247XG5cdFx0XHRiaXRhbmdlbnQgPSBiaXRhbmdlbnQgKiBmYWNlRGlyZWN0aW9uO1xuXHRcdCNlbmRpZlxuXHRcdCNpZiBkZWZpbmVkKCBUQU5HRU5UU1BBQ0VfTk9STUFMTUFQICkgfHwgZGVmaW5lZCggVVNFX0NMRUFSQ09BVF9OT1JNQUxNQVAgKVxuXHRcdFx0bWF0MyB2VEJOID0gbWF0MyggdGFuZ2VudCwgYml0YW5nZW50LCBub3JtYWwgKTtcblx0XHQjZW5kaWZcblx0I2VuZGlmXG4jZW5kaWZcbnZlYzMgZ2VvbWV0cnlOb3JtYWwgPSBub3JtYWw7Iixub3JtYWxfZnJhZ21lbnRfbWFwczoiI2lmZGVmIE9CSkVDVFNQQUNFX05PUk1BTE1BUFxuXHRub3JtYWwgPSB0ZXh0dXJlMkQoIG5vcm1hbE1hcCwgdlV2ICkueHl6ICogMi4wIC0gMS4wO1xuXHQjaWZkZWYgRkxJUF9TSURFRFxuXHRcdG5vcm1hbCA9IC0gbm9ybWFsO1xuXHQjZW5kaWZcblx0I2lmZGVmIERPVUJMRV9TSURFRFxuXHRcdG5vcm1hbCA9IG5vcm1hbCAqIGZhY2VEaXJlY3Rpb247XG5cdCNlbmRpZlxuXHRub3JtYWwgPSBub3JtYWxpemUoIG5vcm1hbE1hdHJpeCAqIG5vcm1hbCApO1xuI2VsaWYgZGVmaW5lZCggVEFOR0VOVFNQQUNFX05PUk1BTE1BUCApXG5cdHZlYzMgbWFwTiA9IHRleHR1cmUyRCggbm9ybWFsTWFwLCB2VXYgKS54eXogKiAyLjAgLSAxLjA7XG5cdG1hcE4ueHkgKj0gbm9ybWFsU2NhbGU7XG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdG5vcm1hbCA9IG5vcm1hbGl6ZSggdlRCTiAqIG1hcE4gKTtcblx0I2Vsc2Vcblx0XHRub3JtYWwgPSBwZXJ0dXJiTm9ybWFsMkFyYiggLXZWaWV3UG9zaXRpb24sIG5vcm1hbCwgbWFwTiwgZmFjZURpcmVjdGlvbiApO1xuXHQjZW5kaWZcbiNlbGlmIGRlZmluZWQoIFVTRV9CVU1QTUFQIClcblx0bm9ybWFsID0gcGVydHVyYk5vcm1hbEFyYiggLXZWaWV3UG9zaXRpb24sIG5vcm1hbCwgZEhkeHlfZndkKCksIGZhY2VEaXJlY3Rpb24gKTtcbiNlbmRpZiIsbm9ybWFsbWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfTk9STUFMTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIG5vcm1hbE1hcDtcblx0dW5pZm9ybSB2ZWMyIG5vcm1hbFNjYWxlO1xuI2VuZGlmXG4jaWZkZWYgT0JKRUNUU1BBQ0VfTk9STUFMTUFQXG5cdHVuaWZvcm0gbWF0MyBub3JtYWxNYXRyaXg7XG4jZW5kaWZcbiNpZiAhIGRlZmluZWQgKCBVU0VfVEFOR0VOVCApICYmICggZGVmaW5lZCAoIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAgKSB8fCBkZWZpbmVkICggVVNFX0NMRUFSQ09BVF9OT1JNQUxNQVAgKSApXG5cdHZlYzMgcGVydHVyYk5vcm1hbDJBcmIoIHZlYzMgZXllX3BvcywgdmVjMyBzdXJmX25vcm0sIHZlYzMgbWFwTiwgZmxvYXQgZmFjZURpcmVjdGlvbiApIHtcblx0XHR2ZWMzIHEwID0gdmVjMyggZEZkeCggZXllX3Bvcy54ICksIGRGZHgoIGV5ZV9wb3MueSApLCBkRmR4KCBleWVfcG9zLnogKSApO1xuXHRcdHZlYzMgcTEgPSB2ZWMzKCBkRmR5KCBleWVfcG9zLnggKSwgZEZkeSggZXllX3Bvcy55ICksIGRGZHkoIGV5ZV9wb3MueiApICk7XG5cdFx0dmVjMiBzdDAgPSBkRmR4KCB2VXYuc3QgKTtcblx0XHR2ZWMyIHN0MSA9IGRGZHkoIHZVdi5zdCApO1xuXHRcdHZlYzMgTiA9IHN1cmZfbm9ybTtcblx0XHR2ZWMzIHExcGVycCA9IGNyb3NzKCBxMSwgTiApO1xuXHRcdHZlYzMgcTBwZXJwID0gY3Jvc3MoIE4sIHEwICk7XG5cdFx0dmVjMyBUID0gcTFwZXJwICogc3QwLnggKyBxMHBlcnAgKiBzdDEueDtcblx0XHR2ZWMzIEIgPSBxMXBlcnAgKiBzdDAueSArIHEwcGVycCAqIHN0MS55O1xuXHRcdGZsb2F0IGRldCA9IG1heCggZG90KCBULCBUICksIGRvdCggQiwgQiApICk7XG5cdFx0ZmxvYXQgc2NhbGUgPSAoIGRldCA9PSAwLjAgKSA/IDAuMCA6IGZhY2VEaXJlY3Rpb24gKiBpbnZlcnNlc3FydCggZGV0ICk7XG5cdFx0cmV0dXJuIG5vcm1hbGl6ZSggVCAqICggbWFwTi54ICogc2NhbGUgKSArIEIgKiAoIG1hcE4ueSAqIHNjYWxlICkgKyBOICogbWFwTi56ICk7XG5cdH1cbiNlbmRpZiIsY2xlYXJjb2F0X25vcm1hbF9mcmFnbWVudF9iZWdpbjoiI2lmZGVmIENMRUFSQ09BVFxuXHR2ZWMzIGNsZWFyY29hdE5vcm1hbCA9IGdlb21ldHJ5Tm9ybWFsO1xuI2VuZGlmIixjbGVhcmNvYXRfbm9ybWFsX2ZyYWdtZW50X21hcHM6IiNpZmRlZiBVU0VfQ0xFQVJDT0FUX05PUk1BTE1BUFxuXHR2ZWMzIGNsZWFyY29hdE1hcE4gPSB0ZXh0dXJlMkQoIGNsZWFyY29hdE5vcm1hbE1hcCwgdlV2ICkueHl6ICogMi4wIC0gMS4wO1xuXHRjbGVhcmNvYXRNYXBOLnh5ICo9IGNsZWFyY29hdE5vcm1hbFNjYWxlO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHRjbGVhcmNvYXROb3JtYWwgPSBub3JtYWxpemUoIHZUQk4gKiBjbGVhcmNvYXRNYXBOICk7XG5cdCNlbHNlXG5cdFx0Y2xlYXJjb2F0Tm9ybWFsID0gcGVydHVyYk5vcm1hbDJBcmIoIC0gdlZpZXdQb3NpdGlvbiwgY2xlYXJjb2F0Tm9ybWFsLCBjbGVhcmNvYXRNYXBOLCBmYWNlRGlyZWN0aW9uICk7XG5cdCNlbmRpZlxuI2VuZGlmIixjbGVhcmNvYXRfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9DTEVBUkNPQVRNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgY2xlYXJjb2F0TWFwO1xuI2VuZGlmXG4jaWZkZWYgVVNFX0NMRUFSQ09BVF9ST1VHSE5FU1NNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgY2xlYXJjb2F0Um91Z2huZXNzTWFwO1xuI2VuZGlmXG4jaWZkZWYgVVNFX0NMRUFSQ09BVF9OT1JNQUxNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgY2xlYXJjb2F0Tm9ybWFsTWFwO1xuXHR1bmlmb3JtIHZlYzIgY2xlYXJjb2F0Tm9ybWFsU2NhbGU7XG4jZW5kaWYiLHBhY2tpbmc6InZlYzMgcGFja05vcm1hbFRvUkdCKCBjb25zdCBpbiB2ZWMzIG5vcm1hbCApIHtcblx0cmV0dXJuIG5vcm1hbGl6ZSggbm9ybWFsICkgKiAwLjUgKyAwLjU7XG59XG52ZWMzIHVucGFja1JHQlRvTm9ybWFsKCBjb25zdCBpbiB2ZWMzIHJnYiApIHtcblx0cmV0dXJuIDIuMCAqIHJnYi54eXogLSAxLjA7XG59XG5jb25zdCBmbG9hdCBQYWNrVXBzY2FsZSA9IDI1Ni4gLyAyNTUuO2NvbnN0IGZsb2F0IFVucGFja0Rvd25zY2FsZSA9IDI1NS4gLyAyNTYuO1xuY29uc3QgdmVjMyBQYWNrRmFjdG9ycyA9IHZlYzMoIDI1Ni4gKiAyNTYuICogMjU2LiwgMjU2LiAqIDI1Ni4sIDI1Ni4gKTtcbmNvbnN0IHZlYzQgVW5wYWNrRmFjdG9ycyA9IFVucGFja0Rvd25zY2FsZSAvIHZlYzQoIFBhY2tGYWN0b3JzLCAxLiApO1xuY29uc3QgZmxvYXQgU2hpZnRSaWdodDggPSAxLiAvIDI1Ni47XG52ZWM0IHBhY2tEZXB0aFRvUkdCQSggY29uc3QgaW4gZmxvYXQgdiApIHtcblx0dmVjNCByID0gdmVjNCggZnJhY3QoIHYgKiBQYWNrRmFjdG9ycyApLCB2ICk7XG5cdHIueXp3IC09IHIueHl6ICogU2hpZnRSaWdodDg7XHRyZXR1cm4gciAqIFBhY2tVcHNjYWxlO1xufVxuZmxvYXQgdW5wYWNrUkdCQVRvRGVwdGgoIGNvbnN0IGluIHZlYzQgdiApIHtcblx0cmV0dXJuIGRvdCggdiwgVW5wYWNrRmFjdG9ycyApO1xufVxudmVjNCBwYWNrMkhhbGZUb1JHQkEoIHZlYzIgdiApIHtcblx0dmVjNCByID0gdmVjNCggdi54LCBmcmFjdCggdi54ICogMjU1LjAgKSwgdi55LCBmcmFjdCggdi55ICogMjU1LjAgKSk7XG5cdHJldHVybiB2ZWM0KCByLnggLSByLnkgLyAyNTUuMCwgci55LCByLnogLSByLncgLyAyNTUuMCwgci53KTtcbn1cbnZlYzIgdW5wYWNrUkdCQVRvMkhhbGYoIHZlYzQgdiApIHtcblx0cmV0dXJuIHZlYzIoIHYueCArICggdi55IC8gMjU1LjAgKSwgdi56ICsgKCB2LncgLyAyNTUuMCApICk7XG59XG5mbG9hdCB2aWV3WlRvT3J0aG9ncmFwaGljRGVwdGgoIGNvbnN0IGluIGZsb2F0IHZpZXdaLCBjb25zdCBpbiBmbG9hdCBuZWFyLCBjb25zdCBpbiBmbG9hdCBmYXIgKSB7XG5cdHJldHVybiAoIHZpZXdaICsgbmVhciApIC8gKCBuZWFyIC0gZmFyICk7XG59XG5mbG9hdCBvcnRob2dyYXBoaWNEZXB0aFRvVmlld1ooIGNvbnN0IGluIGZsb2F0IGxpbmVhckNsaXBaLCBjb25zdCBpbiBmbG9hdCBuZWFyLCBjb25zdCBpbiBmbG9hdCBmYXIgKSB7XG5cdHJldHVybiBsaW5lYXJDbGlwWiAqICggbmVhciAtIGZhciApIC0gbmVhcjtcbn1cbmZsb2F0IHZpZXdaVG9QZXJzcGVjdGl2ZURlcHRoKCBjb25zdCBpbiBmbG9hdCB2aWV3WiwgY29uc3QgaW4gZmxvYXQgbmVhciwgY29uc3QgaW4gZmxvYXQgZmFyICkge1xuXHRyZXR1cm4gKCggbmVhciArIHZpZXdaICkgKiBmYXIgKSAvICgoIGZhciAtIG5lYXIgKSAqIHZpZXdaICk7XG59XG5mbG9hdCBwZXJzcGVjdGl2ZURlcHRoVG9WaWV3WiggY29uc3QgaW4gZmxvYXQgaW52Q2xpcFosIGNvbnN0IGluIGZsb2F0IG5lYXIsIGNvbnN0IGluIGZsb2F0IGZhciApIHtcblx0cmV0dXJuICggbmVhciAqIGZhciApIC8gKCAoIGZhciAtIG5lYXIgKSAqIGludkNsaXBaIC0gZmFyICk7XG59IixwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50OiIjaWZkZWYgUFJFTVVMVElQTElFRF9BTFBIQVxuXHRnbF9GcmFnQ29sb3IucmdiICo9IGdsX0ZyYWdDb2xvci5hO1xuI2VuZGlmIixwcm9qZWN0X3ZlcnRleDoidmVjNCBtdlBvc2l0aW9uID0gdmVjNCggdHJhbnNmb3JtZWQsIDEuMCApO1xuI2lmZGVmIFVTRV9JTlNUQU5DSU5HXG5cdG12UG9zaXRpb24gPSBpbnN0YW5jZU1hdHJpeCAqIG12UG9zaXRpb247XG4jZW5kaWZcbm12UG9zaXRpb24gPSBtb2RlbFZpZXdNYXRyaXggKiBtdlBvc2l0aW9uO1xuZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogbXZQb3NpdGlvbjsiLGRpdGhlcmluZ19mcmFnbWVudDoiI2lmZGVmIERJVEhFUklOR1xuXHRnbF9GcmFnQ29sb3IucmdiID0gZGl0aGVyaW5nKCBnbF9GcmFnQ29sb3IucmdiICk7XG4jZW5kaWYiLGRpdGhlcmluZ19wYXJzX2ZyYWdtZW50OiIjaWZkZWYgRElUSEVSSU5HXG5cdHZlYzMgZGl0aGVyaW5nKCB2ZWMzIGNvbG9yICkge1xuXHRcdGZsb2F0IGdyaWRfcG9zaXRpb24gPSByYW5kKCBnbF9GcmFnQ29vcmQueHkgKTtcblx0XHR2ZWMzIGRpdGhlcl9zaGlmdF9SR0IgPSB2ZWMzKCAwLjI1IC8gMjU1LjAsIC0wLjI1IC8gMjU1LjAsIDAuMjUgLyAyNTUuMCApO1xuXHRcdGRpdGhlcl9zaGlmdF9SR0IgPSBtaXgoIDIuMCAqIGRpdGhlcl9zaGlmdF9SR0IsIC0yLjAgKiBkaXRoZXJfc2hpZnRfUkdCLCBncmlkX3Bvc2l0aW9uICk7XG5cdFx0cmV0dXJuIGNvbG9yICsgZGl0aGVyX3NoaWZ0X1JHQjtcblx0fVxuI2VuZGlmIixyb3VnaG5lc3NtYXBfZnJhZ21lbnQ6ImZsb2F0IHJvdWdobmVzc0ZhY3RvciA9IHJvdWdobmVzcztcbiNpZmRlZiBVU0VfUk9VR0hORVNTTUFQXG5cdHZlYzQgdGV4ZWxSb3VnaG5lc3MgPSB0ZXh0dXJlMkQoIHJvdWdobmVzc01hcCwgdlV2ICk7XG5cdHJvdWdobmVzc0ZhY3RvciAqPSB0ZXhlbFJvdWdobmVzcy5nO1xuI2VuZGlmIixyb3VnaG5lc3NtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9ST1VHSE5FU1NNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgcm91Z2huZXNzTWFwO1xuI2VuZGlmIixzaGFkb3dtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9TSEFET1dNQVBcblx0I2lmIE5VTV9ESVJfTElHSFRfU0hBRE9XUyA+IDBcblx0XHR1bmlmb3JtIHNhbXBsZXIyRCBkaXJlY3Rpb25hbFNoYWRvd01hcFsgTlVNX0RJUl9MSUdIVF9TSEFET1dTIF07XG5cdFx0dmFyeWluZyB2ZWM0IHZEaXJlY3Rpb25hbFNoYWRvd0Nvb3JkWyBOVU1fRElSX0xJR0hUX1NIQURPV1MgXTtcblx0XHRzdHJ1Y3QgRGlyZWN0aW9uYWxMaWdodFNoYWRvdyB7XG5cdFx0XHRmbG9hdCBzaGFkb3dCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93Tm9ybWFsQmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd1JhZGl1cztcblx0XHRcdHZlYzIgc2hhZG93TWFwU2l6ZTtcblx0XHR9O1xuXHRcdHVuaWZvcm0gRGlyZWN0aW9uYWxMaWdodFNoYWRvdyBkaXJlY3Rpb25hbExpZ2h0U2hhZG93c1sgTlVNX0RJUl9MSUdIVF9TSEFET1dTIF07XG5cdCNlbmRpZlxuXHQjaWYgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyA+IDBcblx0XHR1bmlmb3JtIHNhbXBsZXIyRCBzcG90U2hhZG93TWFwWyBOVU1fU1BPVF9MSUdIVF9TSEFET1dTIF07XG5cdFx0dmFyeWluZyB2ZWM0IHZTcG90U2hhZG93Q29vcmRbIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgXTtcblx0XHRzdHJ1Y3QgU3BvdExpZ2h0U2hhZG93IHtcblx0XHRcdGZsb2F0IHNoYWRvd0JpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dOb3JtYWxCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93UmFkaXVzO1xuXHRcdFx0dmVjMiBzaGFkb3dNYXBTaXplO1xuXHRcdH07XG5cdFx0dW5pZm9ybSBTcG90TGlnaHRTaGFkb3cgc3BvdExpZ2h0U2hhZG93c1sgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyBdO1xuXHQjZW5kaWZcblx0I2lmIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTID4gMFxuXHRcdHVuaWZvcm0gc2FtcGxlcjJEIHBvaW50U2hhZG93TWFwWyBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHZhcnlpbmcgdmVjNCB2UG9pbnRTaGFkb3dDb29yZFsgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgXTtcblx0XHRzdHJ1Y3QgUG9pbnRMaWdodFNoYWRvdyB7XG5cdFx0XHRmbG9hdCBzaGFkb3dCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93Tm9ybWFsQmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd1JhZGl1cztcblx0XHRcdHZlYzIgc2hhZG93TWFwU2l6ZTtcblx0XHRcdGZsb2F0IHNoYWRvd0NhbWVyYU5lYXI7XG5cdFx0XHRmbG9hdCBzaGFkb3dDYW1lcmFGYXI7XG5cdFx0fTtcblx0XHR1bmlmb3JtIFBvaW50TGlnaHRTaGFkb3cgcG9pbnRMaWdodFNoYWRvd3NbIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTIF07XG5cdCNlbmRpZlxuXHRmbG9hdCB0ZXh0dXJlMkRDb21wYXJlKCBzYW1wbGVyMkQgZGVwdGhzLCB2ZWMyIHV2LCBmbG9hdCBjb21wYXJlICkge1xuXHRcdHJldHVybiBzdGVwKCBjb21wYXJlLCB1bnBhY2tSR0JBVG9EZXB0aCggdGV4dHVyZTJEKCBkZXB0aHMsIHV2ICkgKSApO1xuXHR9XG5cdHZlYzIgdGV4dHVyZTJERGlzdHJpYnV0aW9uKCBzYW1wbGVyMkQgc2hhZG93LCB2ZWMyIHV2ICkge1xuXHRcdHJldHVybiB1bnBhY2tSR0JBVG8ySGFsZiggdGV4dHVyZTJEKCBzaGFkb3csIHV2ICkgKTtcblx0fVxuXHRmbG9hdCBWU01TaGFkb3cgKHNhbXBsZXIyRCBzaGFkb3csIHZlYzIgdXYsIGZsb2F0IGNvbXBhcmUgKXtcblx0XHRmbG9hdCBvY2NsdXNpb24gPSAxLjA7XG5cdFx0dmVjMiBkaXN0cmlidXRpb24gPSB0ZXh0dXJlMkREaXN0cmlidXRpb24oIHNoYWRvdywgdXYgKTtcblx0XHRmbG9hdCBoYXJkX3NoYWRvdyA9IHN0ZXAoIGNvbXBhcmUgLCBkaXN0cmlidXRpb24ueCApO1xuXHRcdGlmIChoYXJkX3NoYWRvdyAhPSAxLjAgKSB7XG5cdFx0XHRmbG9hdCBkaXN0YW5jZSA9IGNvbXBhcmUgLSBkaXN0cmlidXRpb24ueCA7XG5cdFx0XHRmbG9hdCB2YXJpYW5jZSA9IG1heCggMC4wMDAwMCwgZGlzdHJpYnV0aW9uLnkgKiBkaXN0cmlidXRpb24ueSApO1xuXHRcdFx0ZmxvYXQgc29mdG5lc3NfcHJvYmFiaWxpdHkgPSB2YXJpYW5jZSAvICh2YXJpYW5jZSArIGRpc3RhbmNlICogZGlzdGFuY2UgKTtcdFx0XHRzb2Z0bmVzc19wcm9iYWJpbGl0eSA9IGNsYW1wKCAoIHNvZnRuZXNzX3Byb2JhYmlsaXR5IC0gMC4zICkgLyAoIDAuOTUgLSAwLjMgKSwgMC4wLCAxLjAgKTtcdFx0XHRvY2NsdXNpb24gPSBjbGFtcCggbWF4KCBoYXJkX3NoYWRvdywgc29mdG5lc3NfcHJvYmFiaWxpdHkgKSwgMC4wLCAxLjAgKTtcblx0XHR9XG5cdFx0cmV0dXJuIG9jY2x1c2lvbjtcblx0fVxuXHRmbG9hdCBnZXRTaGFkb3coIHNhbXBsZXIyRCBzaGFkb3dNYXAsIHZlYzIgc2hhZG93TWFwU2l6ZSwgZmxvYXQgc2hhZG93QmlhcywgZmxvYXQgc2hhZG93UmFkaXVzLCB2ZWM0IHNoYWRvd0Nvb3JkICkge1xuXHRcdGZsb2F0IHNoYWRvdyA9IDEuMDtcblx0XHRzaGFkb3dDb29yZC54eXogLz0gc2hhZG93Q29vcmQudztcblx0XHRzaGFkb3dDb29yZC56ICs9IHNoYWRvd0JpYXM7XG5cdFx0YnZlYzQgaW5GcnVzdHVtVmVjID0gYnZlYzQgKCBzaGFkb3dDb29yZC54ID49IDAuMCwgc2hhZG93Q29vcmQueCA8PSAxLjAsIHNoYWRvd0Nvb3JkLnkgPj0gMC4wLCBzaGFkb3dDb29yZC55IDw9IDEuMCApO1xuXHRcdGJvb2wgaW5GcnVzdHVtID0gYWxsKCBpbkZydXN0dW1WZWMgKTtcblx0XHRidmVjMiBmcnVzdHVtVGVzdFZlYyA9IGJ2ZWMyKCBpbkZydXN0dW0sIHNoYWRvd0Nvb3JkLnogPD0gMS4wICk7XG5cdFx0Ym9vbCBmcnVzdHVtVGVzdCA9IGFsbCggZnJ1c3R1bVRlc3RWZWMgKTtcblx0XHRpZiAoIGZydXN0dW1UZXN0ICkge1xuXHRcdCNpZiBkZWZpbmVkKCBTSEFET1dNQVBfVFlQRV9QQ0YgKVxuXHRcdFx0dmVjMiB0ZXhlbFNpemUgPSB2ZWMyKCAxLjAgKSAvIHNoYWRvd01hcFNpemU7XG5cdFx0XHRmbG9hdCBkeDAgPSAtIHRleGVsU2l6ZS54ICogc2hhZG93UmFkaXVzO1xuXHRcdFx0ZmxvYXQgZHkwID0gLSB0ZXhlbFNpemUueSAqIHNoYWRvd1JhZGl1cztcblx0XHRcdGZsb2F0IGR4MSA9ICsgdGV4ZWxTaXplLnggKiBzaGFkb3dSYWRpdXM7XG5cdFx0XHRmbG9hdCBkeTEgPSArIHRleGVsU2l6ZS55ICogc2hhZG93UmFkaXVzO1xuXHRcdFx0ZmxvYXQgZHgyID0gZHgwIC8gMi4wO1xuXHRcdFx0ZmxvYXQgZHkyID0gZHkwIC8gMi4wO1xuXHRcdFx0ZmxvYXQgZHgzID0gZHgxIC8gMi4wO1xuXHRcdFx0ZmxvYXQgZHkzID0gZHkxIC8gMi4wO1xuXHRcdFx0c2hhZG93ID0gKFxuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgwLCBkeTAgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIDAuMCwgZHkwICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDEsIGR5MCApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgyLCBkeTIgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIDAuMCwgZHkyICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDMsIGR5MiApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgwLCAwLjAgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MiwgMC4wICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDMsIDAuMCApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgxLCAwLjAgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MiwgZHkzICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCAwLjAsIGR5MyApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgzLCBkeTMgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MCwgZHkxICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCAwLjAsIGR5MSApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgxLCBkeTEgKSwgc2hhZG93Q29vcmQueiApXG5cdFx0XHQpICogKCAxLjAgLyAxNy4wICk7XG5cdFx0I2VsaWYgZGVmaW5lZCggU0hBRE9XTUFQX1RZUEVfUENGX1NPRlQgKVxuXHRcdFx0dmVjMiB0ZXhlbFNpemUgPSB2ZWMyKCAxLjAgKSAvIHNoYWRvd01hcFNpemU7XG5cdFx0XHRmbG9hdCBkeCA9IHRleGVsU2l6ZS54O1xuXHRcdFx0ZmxvYXQgZHkgPSB0ZXhlbFNpemUueTtcblx0XHRcdHZlYzIgdXYgPSBzaGFkb3dDb29yZC54eTtcblx0XHRcdHZlYzIgZiA9IGZyYWN0KCB1diAqIHNoYWRvd01hcFNpemUgKyAwLjUgKTtcblx0XHRcdHV2IC09IGYgKiB0ZXhlbFNpemU7XG5cdFx0XHRzaGFkb3cgPSAoXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYsIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCBkeCwgMC4wICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAwLjAsIGR5ICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB0ZXhlbFNpemUsIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdG1peCggdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIC1keCwgMC4wICksIHNoYWRvd0Nvb3JkLnogKSwgXG5cdFx0XHRcdFx0IHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAyLjAgKiBkeCwgMC4wICksIHNoYWRvd0Nvb3JkLnogKSxcblx0XHRcdFx0XHQgZi54ICkgK1xuXHRcdFx0XHRtaXgoIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAtZHgsIGR5ICksIHNoYWRvd0Nvb3JkLnogKSwgXG5cdFx0XHRcdFx0IHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAyLjAgKiBkeCwgZHkgKSwgc2hhZG93Q29vcmQueiApLFxuXHRcdFx0XHRcdCBmLnggKSArXG5cdFx0XHRcdG1peCggdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIDAuMCwgLWR5ICksIHNoYWRvd0Nvb3JkLnogKSwgXG5cdFx0XHRcdFx0IHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAwLjAsIDIuMCAqIGR5ICksIHNoYWRvd0Nvb3JkLnogKSxcblx0XHRcdFx0XHQgZi55ICkgK1xuXHRcdFx0XHRtaXgoIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCBkeCwgLWR5ICksIHNoYWRvd0Nvb3JkLnogKSwgXG5cdFx0XHRcdFx0IHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCBkeCwgMi4wICogZHkgKSwgc2hhZG93Q29vcmQueiApLFxuXHRcdFx0XHRcdCBmLnkgKSArXG5cdFx0XHRcdG1peCggbWl4KCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggLWR4LCAtZHkgKSwgc2hhZG93Q29vcmQueiApLCBcblx0XHRcdFx0XHRcdCAgdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIDIuMCAqIGR4LCAtZHkgKSwgc2hhZG93Q29vcmQueiApLFxuXHRcdFx0XHRcdFx0ICBmLnggKSxcblx0XHRcdFx0XHQgbWl4KCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggLWR4LCAyLjAgKiBkeSApLCBzaGFkb3dDb29yZC56ICksIFxuXHRcdFx0XHRcdFx0ICB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggMi4wICogZHgsIDIuMCAqIGR5ICksIHNoYWRvd0Nvb3JkLnogKSxcblx0XHRcdFx0XHRcdCAgZi54ICksXG5cdFx0XHRcdFx0IGYueSApXG5cdFx0XHQpICogKCAxLjAgLyA5LjAgKTtcblx0XHQjZWxpZiBkZWZpbmVkKCBTSEFET1dNQVBfVFlQRV9WU00gKVxuXHRcdFx0c2hhZG93ID0gVlNNU2hhZG93KCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5LCBzaGFkb3dDb29yZC56ICk7XG5cdFx0I2Vsc2Vcblx0XHRcdHNoYWRvdyA9IHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHksIHNoYWRvd0Nvb3JkLnogKTtcblx0XHQjZW5kaWZcblx0XHR9XG5cdFx0cmV0dXJuIHNoYWRvdztcblx0fVxuXHR2ZWMyIGN1YmVUb1VWKCB2ZWMzIHYsIGZsb2F0IHRleGVsU2l6ZVkgKSB7XG5cdFx0dmVjMyBhYnNWID0gYWJzKCB2ICk7XG5cdFx0ZmxvYXQgc2NhbGVUb0N1YmUgPSAxLjAgLyBtYXgoIGFic1YueCwgbWF4KCBhYnNWLnksIGFic1YueiApICk7XG5cdFx0YWJzViAqPSBzY2FsZVRvQ3ViZTtcblx0XHR2ICo9IHNjYWxlVG9DdWJlICogKCAxLjAgLSAyLjAgKiB0ZXhlbFNpemVZICk7XG5cdFx0dmVjMiBwbGFuYXIgPSB2Lnh5O1xuXHRcdGZsb2F0IGFsbW9zdEFUZXhlbCA9IDEuNSAqIHRleGVsU2l6ZVk7XG5cdFx0ZmxvYXQgYWxtb3N0T25lID0gMS4wIC0gYWxtb3N0QVRleGVsO1xuXHRcdGlmICggYWJzVi56ID49IGFsbW9zdE9uZSApIHtcblx0XHRcdGlmICggdi56ID4gMC4wIClcblx0XHRcdFx0cGxhbmFyLnggPSA0LjAgLSB2Lng7XG5cdFx0fSBlbHNlIGlmICggYWJzVi54ID49IGFsbW9zdE9uZSApIHtcblx0XHRcdGZsb2F0IHNpZ25YID0gc2lnbiggdi54ICk7XG5cdFx0XHRwbGFuYXIueCA9IHYueiAqIHNpZ25YICsgMi4wICogc2lnblg7XG5cdFx0fSBlbHNlIGlmICggYWJzVi55ID49IGFsbW9zdE9uZSApIHtcblx0XHRcdGZsb2F0IHNpZ25ZID0gc2lnbiggdi55ICk7XG5cdFx0XHRwbGFuYXIueCA9IHYueCArIDIuMCAqIHNpZ25ZICsgMi4wO1xuXHRcdFx0cGxhbmFyLnkgPSB2LnogKiBzaWduWSAtIDIuMDtcblx0XHR9XG5cdFx0cmV0dXJuIHZlYzIoIDAuMTI1LCAwLjI1ICkgKiBwbGFuYXIgKyB2ZWMyKCAwLjM3NSwgMC43NSApO1xuXHR9XG5cdGZsb2F0IGdldFBvaW50U2hhZG93KCBzYW1wbGVyMkQgc2hhZG93TWFwLCB2ZWMyIHNoYWRvd01hcFNpemUsIGZsb2F0IHNoYWRvd0JpYXMsIGZsb2F0IHNoYWRvd1JhZGl1cywgdmVjNCBzaGFkb3dDb29yZCwgZmxvYXQgc2hhZG93Q2FtZXJhTmVhciwgZmxvYXQgc2hhZG93Q2FtZXJhRmFyICkge1xuXHRcdHZlYzIgdGV4ZWxTaXplID0gdmVjMiggMS4wICkgLyAoIHNoYWRvd01hcFNpemUgKiB2ZWMyKCA0LjAsIDIuMCApICk7XG5cdFx0dmVjMyBsaWdodFRvUG9zaXRpb24gPSBzaGFkb3dDb29yZC54eXo7XG5cdFx0ZmxvYXQgZHAgPSAoIGxlbmd0aCggbGlnaHRUb1Bvc2l0aW9uICkgLSBzaGFkb3dDYW1lcmFOZWFyICkgLyAoIHNoYWRvd0NhbWVyYUZhciAtIHNoYWRvd0NhbWVyYU5lYXIgKTtcdFx0ZHAgKz0gc2hhZG93Qmlhcztcblx0XHR2ZWMzIGJkM0QgPSBub3JtYWxpemUoIGxpZ2h0VG9Qb3NpdGlvbiApO1xuXHRcdCNpZiBkZWZpbmVkKCBTSEFET1dNQVBfVFlQRV9QQ0YgKSB8fCBkZWZpbmVkKCBTSEFET1dNQVBfVFlQRV9QQ0ZfU09GVCApIHx8IGRlZmluZWQoIFNIQURPV01BUF9UWVBFX1ZTTSApXG5cdFx0XHR2ZWMyIG9mZnNldCA9IHZlYzIoIC0gMSwgMSApICogc2hhZG93UmFkaXVzICogdGV4ZWxTaXplLnk7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnh5eSwgdGV4ZWxTaXplLnkgKSwgZHAgKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QgKyBvZmZzZXQueXl5LCB0ZXhlbFNpemUueSApLCBkcCApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC54eXgsIHRleGVsU2l6ZS55ICksIGRwICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnl5eCwgdGV4ZWxTaXplLnkgKSwgZHAgKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QsIHRleGVsU2l6ZS55ICksIGRwICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnh4eSwgdGV4ZWxTaXplLnkgKSwgZHAgKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QgKyBvZmZzZXQueXh5LCB0ZXhlbFNpemUueSApLCBkcCApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC54eHgsIHRleGVsU2l6ZS55ICksIGRwICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnl4eCwgdGV4ZWxTaXplLnkgKSwgZHAgKVxuXHRcdFx0KSAqICggMS4wIC8gOS4wICk7XG5cdFx0I2Vsc2Vcblx0XHRcdHJldHVybiB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNELCB0ZXhlbFNpemUueSApLCBkcCApO1xuXHRcdCNlbmRpZlxuXHR9XG4jZW5kaWYiLHNoYWRvd21hcF9wYXJzX3ZlcnRleDoiI2lmZGVmIFVTRV9TSEFET1dNQVBcblx0I2lmIE5VTV9ESVJfTElHSFRfU0hBRE9XUyA+IDBcblx0XHR1bmlmb3JtIG1hdDQgZGlyZWN0aW9uYWxTaGFkb3dNYXRyaXhbIE5VTV9ESVJfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHZhcnlpbmcgdmVjNCB2RGlyZWN0aW9uYWxTaGFkb3dDb29yZFsgTlVNX0RJUl9MSUdIVF9TSEFET1dTIF07XG5cdFx0c3RydWN0IERpcmVjdGlvbmFsTGlnaHRTaGFkb3cge1xuXHRcdFx0ZmxvYXQgc2hhZG93Qmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd05vcm1hbEJpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dSYWRpdXM7XG5cdFx0XHR2ZWMyIHNoYWRvd01hcFNpemU7XG5cdFx0fTtcblx0XHR1bmlmb3JtIERpcmVjdGlvbmFsTGlnaHRTaGFkb3cgZGlyZWN0aW9uYWxMaWdodFNoYWRvd3NbIE5VTV9ESVJfTElHSFRfU0hBRE9XUyBdO1xuXHQjZW5kaWZcblx0I2lmIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgPiAwXG5cdFx0dW5pZm9ybSBtYXQ0IHNwb3RTaGFkb3dNYXRyaXhbIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgXTtcblx0XHR2YXJ5aW5nIHZlYzQgdlNwb3RTaGFkb3dDb29yZFsgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHN0cnVjdCBTcG90TGlnaHRTaGFkb3cge1xuXHRcdFx0ZmxvYXQgc2hhZG93Qmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd05vcm1hbEJpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dSYWRpdXM7XG5cdFx0XHR2ZWMyIHNoYWRvd01hcFNpemU7XG5cdFx0fTtcblx0XHR1bmlmb3JtIFNwb3RMaWdodFNoYWRvdyBzcG90TGlnaHRTaGFkb3dzWyBOVU1fU1BPVF9MSUdIVF9TSEFET1dTIF07XG5cdCNlbmRpZlxuXHQjaWYgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgPiAwXG5cdFx0dW5pZm9ybSBtYXQ0IHBvaW50U2hhZG93TWF0cml4WyBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHZhcnlpbmcgdmVjNCB2UG9pbnRTaGFkb3dDb29yZFsgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgXTtcblx0XHRzdHJ1Y3QgUG9pbnRMaWdodFNoYWRvdyB7XG5cdFx0XHRmbG9hdCBzaGFkb3dCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93Tm9ybWFsQmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd1JhZGl1cztcblx0XHRcdHZlYzIgc2hhZG93TWFwU2l6ZTtcblx0XHRcdGZsb2F0IHNoYWRvd0NhbWVyYU5lYXI7XG5cdFx0XHRmbG9hdCBzaGFkb3dDYW1lcmFGYXI7XG5cdFx0fTtcblx0XHR1bmlmb3JtIFBvaW50TGlnaHRTaGFkb3cgcG9pbnRMaWdodFNoYWRvd3NbIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTIF07XG5cdCNlbmRpZlxuI2VuZGlmIixzaGFkb3dtYXBfdmVydGV4OiIjaWZkZWYgVVNFX1NIQURPV01BUFxuXHQjaWYgTlVNX0RJUl9MSUdIVF9TSEFET1dTID4gMCB8fCBOVU1fU1BPVF9MSUdIVF9TSEFET1dTID4gMCB8fCBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyA+IDBcblx0XHR2ZWMzIHNoYWRvd1dvcmxkTm9ybWFsID0gaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggdHJhbnNmb3JtZWROb3JtYWwsIHZpZXdNYXRyaXggKTtcblx0XHR2ZWM0IHNoYWRvd1dvcmxkUG9zaXRpb247XG5cdCNlbmRpZlxuXHQjaWYgTlVNX0RJUl9MSUdIVF9TSEFET1dTID4gMFxuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9ESVJfTElHSFRfU0hBRE9XUzsgaSArKyApIHtcblx0XHRzaGFkb3dXb3JsZFBvc2l0aW9uID0gd29ybGRQb3NpdGlvbiArIHZlYzQoIHNoYWRvd1dvcmxkTm9ybWFsICogZGlyZWN0aW9uYWxMaWdodFNoYWRvd3NbIGkgXS5zaGFkb3dOb3JtYWxCaWFzLCAwICk7XG5cdFx0dkRpcmVjdGlvbmFsU2hhZG93Q29vcmRbIGkgXSA9IGRpcmVjdGlvbmFsU2hhZG93TWF0cml4WyBpIF0gKiBzaGFkb3dXb3JsZFBvc2l0aW9uO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG5cdCNlbmRpZlxuXHQjaWYgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyA+IDBcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fU1BPVF9MSUdIVF9TSEFET1dTOyBpICsrICkge1xuXHRcdHNoYWRvd1dvcmxkUG9zaXRpb24gPSB3b3JsZFBvc2l0aW9uICsgdmVjNCggc2hhZG93V29ybGROb3JtYWwgKiBzcG90TGlnaHRTaGFkb3dzWyBpIF0uc2hhZG93Tm9ybWFsQmlhcywgMCApO1xuXHRcdHZTcG90U2hhZG93Q29vcmRbIGkgXSA9IHNwb3RTaGFkb3dNYXRyaXhbIGkgXSAqIHNoYWRvd1dvcmxkUG9zaXRpb247XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcblx0I2VuZGlmXG5cdCNpZiBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyA+IDBcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUzsgaSArKyApIHtcblx0XHRzaGFkb3dXb3JsZFBvc2l0aW9uID0gd29ybGRQb3NpdGlvbiArIHZlYzQoIHNoYWRvd1dvcmxkTm9ybWFsICogcG9pbnRMaWdodFNoYWRvd3NbIGkgXS5zaGFkb3dOb3JtYWxCaWFzLCAwICk7XG5cdFx0dlBvaW50U2hhZG93Q29vcmRbIGkgXSA9IHBvaW50U2hhZG93TWF0cml4WyBpIF0gKiBzaGFkb3dXb3JsZFBvc2l0aW9uO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG5cdCNlbmRpZlxuI2VuZGlmIixzaGFkb3dtYXNrX3BhcnNfZnJhZ21lbnQ6ImZsb2F0IGdldFNoYWRvd01hc2soKSB7XG5cdGZsb2F0IHNoYWRvdyA9IDEuMDtcblx0I2lmZGVmIFVTRV9TSEFET1dNQVBcblx0I2lmIE5VTV9ESVJfTElHSFRfU0hBRE9XUyA+IDBcblx0RGlyZWN0aW9uYWxMaWdodFNoYWRvdyBkaXJlY3Rpb25hbExpZ2h0O1xuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9ESVJfTElHSFRfU0hBRE9XUzsgaSArKyApIHtcblx0XHRkaXJlY3Rpb25hbExpZ2h0ID0gZGlyZWN0aW9uYWxMaWdodFNoYWRvd3NbIGkgXTtcblx0XHRzaGFkb3cgKj0gcmVjZWl2ZVNoYWRvdyA/IGdldFNoYWRvdyggZGlyZWN0aW9uYWxTaGFkb3dNYXBbIGkgXSwgZGlyZWN0aW9uYWxMaWdodC5zaGFkb3dNYXBTaXplLCBkaXJlY3Rpb25hbExpZ2h0LnNoYWRvd0JpYXMsIGRpcmVjdGlvbmFsTGlnaHQuc2hhZG93UmFkaXVzLCB2RGlyZWN0aW9uYWxTaGFkb3dDb29yZFsgaSBdICkgOiAxLjA7XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcblx0I2VuZGlmXG5cdCNpZiBOVU1fU1BPVF9MSUdIVF9TSEFET1dTID4gMFxuXHRTcG90TGlnaHRTaGFkb3cgc3BvdExpZ2h0O1xuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9TUE9UX0xJR0hUX1NIQURPV1M7IGkgKysgKSB7XG5cdFx0c3BvdExpZ2h0ID0gc3BvdExpZ2h0U2hhZG93c1sgaSBdO1xuXHRcdHNoYWRvdyAqPSByZWNlaXZlU2hhZG93ID8gZ2V0U2hhZG93KCBzcG90U2hhZG93TWFwWyBpIF0sIHNwb3RMaWdodC5zaGFkb3dNYXBTaXplLCBzcG90TGlnaHQuc2hhZG93Qmlhcywgc3BvdExpZ2h0LnNoYWRvd1JhZGl1cywgdlNwb3RTaGFkb3dDb29yZFsgaSBdICkgOiAxLjA7XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcblx0I2VuZGlmXG5cdCNpZiBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyA+IDBcblx0UG9pbnRMaWdodFNoYWRvdyBwb2ludExpZ2h0O1xuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTOyBpICsrICkge1xuXHRcdHBvaW50TGlnaHQgPSBwb2ludExpZ2h0U2hhZG93c1sgaSBdO1xuXHRcdHNoYWRvdyAqPSByZWNlaXZlU2hhZG93ID8gZ2V0UG9pbnRTaGFkb3coIHBvaW50U2hhZG93TWFwWyBpIF0sIHBvaW50TGlnaHQuc2hhZG93TWFwU2l6ZSwgcG9pbnRMaWdodC5zaGFkb3dCaWFzLCBwb2ludExpZ2h0LnNoYWRvd1JhZGl1cywgdlBvaW50U2hhZG93Q29vcmRbIGkgXSwgcG9pbnRMaWdodC5zaGFkb3dDYW1lcmFOZWFyLCBwb2ludExpZ2h0LnNoYWRvd0NhbWVyYUZhciApIDogMS4wO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG5cdCNlbmRpZlxuXHQjZW5kaWZcblx0cmV0dXJuIHNoYWRvdztcbn0iLHNraW5iYXNlX3ZlcnRleDoiI2lmZGVmIFVTRV9TS0lOTklOR1xuXHRtYXQ0IGJvbmVNYXRYID0gZ2V0Qm9uZU1hdHJpeCggc2tpbkluZGV4LnggKTtcblx0bWF0NCBib25lTWF0WSA9IGdldEJvbmVNYXRyaXgoIHNraW5JbmRleC55ICk7XG5cdG1hdDQgYm9uZU1hdFogPSBnZXRCb25lTWF0cml4KCBza2luSW5kZXgueiApO1xuXHRtYXQ0IGJvbmVNYXRXID0gZ2V0Qm9uZU1hdHJpeCggc2tpbkluZGV4LncgKTtcbiNlbmRpZiIsc2tpbm5pbmdfcGFyc192ZXJ0ZXg6IiNpZmRlZiBVU0VfU0tJTk5JTkdcblx0dW5pZm9ybSBtYXQ0IGJpbmRNYXRyaXg7XG5cdHVuaWZvcm0gbWF0NCBiaW5kTWF0cml4SW52ZXJzZTtcblx0I2lmZGVmIEJPTkVfVEVYVFVSRVxuXHRcdHVuaWZvcm0gaGlnaHAgc2FtcGxlcjJEIGJvbmVUZXh0dXJlO1xuXHRcdHVuaWZvcm0gaW50IGJvbmVUZXh0dXJlU2l6ZTtcblx0XHRtYXQ0IGdldEJvbmVNYXRyaXgoIGNvbnN0IGluIGZsb2F0IGkgKSB7XG5cdFx0XHRmbG9hdCBqID0gaSAqIDQuMDtcblx0XHRcdGZsb2F0IHggPSBtb2QoIGosIGZsb2F0KCBib25lVGV4dHVyZVNpemUgKSApO1xuXHRcdFx0ZmxvYXQgeSA9IGZsb29yKCBqIC8gZmxvYXQoIGJvbmVUZXh0dXJlU2l6ZSApICk7XG5cdFx0XHRmbG9hdCBkeCA9IDEuMCAvIGZsb2F0KCBib25lVGV4dHVyZVNpemUgKTtcblx0XHRcdGZsb2F0IGR5ID0gMS4wIC8gZmxvYXQoIGJvbmVUZXh0dXJlU2l6ZSApO1xuXHRcdFx0eSA9IGR5ICogKCB5ICsgMC41ICk7XG5cdFx0XHR2ZWM0IHYxID0gdGV4dHVyZTJEKCBib25lVGV4dHVyZSwgdmVjMiggZHggKiAoIHggKyAwLjUgKSwgeSApICk7XG5cdFx0XHR2ZWM0IHYyID0gdGV4dHVyZTJEKCBib25lVGV4dHVyZSwgdmVjMiggZHggKiAoIHggKyAxLjUgKSwgeSApICk7XG5cdFx0XHR2ZWM0IHYzID0gdGV4dHVyZTJEKCBib25lVGV4dHVyZSwgdmVjMiggZHggKiAoIHggKyAyLjUgKSwgeSApICk7XG5cdFx0XHR2ZWM0IHY0ID0gdGV4dHVyZTJEKCBib25lVGV4dHVyZSwgdmVjMiggZHggKiAoIHggKyAzLjUgKSwgeSApICk7XG5cdFx0XHRtYXQ0IGJvbmUgPSBtYXQ0KCB2MSwgdjIsIHYzLCB2NCApO1xuXHRcdFx0cmV0dXJuIGJvbmU7XG5cdFx0fVxuXHQjZWxzZVxuXHRcdHVuaWZvcm0gbWF0NCBib25lTWF0cmljZXNbIE1BWF9CT05FUyBdO1xuXHRcdG1hdDQgZ2V0Qm9uZU1hdHJpeCggY29uc3QgaW4gZmxvYXQgaSApIHtcblx0XHRcdG1hdDQgYm9uZSA9IGJvbmVNYXRyaWNlc1sgaW50KGkpIF07XG5cdFx0XHRyZXR1cm4gYm9uZTtcblx0XHR9XG5cdCNlbmRpZlxuI2VuZGlmIixza2lubmluZ192ZXJ0ZXg6IiNpZmRlZiBVU0VfU0tJTk5JTkdcblx0dmVjNCBza2luVmVydGV4ID0gYmluZE1hdHJpeCAqIHZlYzQoIHRyYW5zZm9ybWVkLCAxLjAgKTtcblx0dmVjNCBza2lubmVkID0gdmVjNCggMC4wICk7XG5cdHNraW5uZWQgKz0gYm9uZU1hdFggKiBza2luVmVydGV4ICogc2tpbldlaWdodC54O1xuXHRza2lubmVkICs9IGJvbmVNYXRZICogc2tpblZlcnRleCAqIHNraW5XZWlnaHQueTtcblx0c2tpbm5lZCArPSBib25lTWF0WiAqIHNraW5WZXJ0ZXggKiBza2luV2VpZ2h0Lno7XG5cdHNraW5uZWQgKz0gYm9uZU1hdFcgKiBza2luVmVydGV4ICogc2tpbldlaWdodC53O1xuXHR0cmFuc2Zvcm1lZCA9ICggYmluZE1hdHJpeEludmVyc2UgKiBza2lubmVkICkueHl6O1xuI2VuZGlmIixza2lubm9ybWFsX3ZlcnRleDoiI2lmZGVmIFVTRV9TS0lOTklOR1xuXHRtYXQ0IHNraW5NYXRyaXggPSBtYXQ0KCAwLjAgKTtcblx0c2tpbk1hdHJpeCArPSBza2luV2VpZ2h0LnggKiBib25lTWF0WDtcblx0c2tpbk1hdHJpeCArPSBza2luV2VpZ2h0LnkgKiBib25lTWF0WTtcblx0c2tpbk1hdHJpeCArPSBza2luV2VpZ2h0LnogKiBib25lTWF0Wjtcblx0c2tpbk1hdHJpeCArPSBza2luV2VpZ2h0LncgKiBib25lTWF0Vztcblx0c2tpbk1hdHJpeCA9IGJpbmRNYXRyaXhJbnZlcnNlICogc2tpbk1hdHJpeCAqIGJpbmRNYXRyaXg7XG5cdG9iamVjdE5vcm1hbCA9IHZlYzQoIHNraW5NYXRyaXggKiB2ZWM0KCBvYmplY3ROb3JtYWwsIDAuMCApICkueHl6O1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHRvYmplY3RUYW5nZW50ID0gdmVjNCggc2tpbk1hdHJpeCAqIHZlYzQoIG9iamVjdFRhbmdlbnQsIDAuMCApICkueHl6O1xuXHQjZW5kaWZcbiNlbmRpZiIsc3BlY3VsYXJtYXBfZnJhZ21lbnQ6ImZsb2F0IHNwZWN1bGFyU3RyZW5ndGg7XG4jaWZkZWYgVVNFX1NQRUNVTEFSTUFQXG5cdHZlYzQgdGV4ZWxTcGVjdWxhciA9IHRleHR1cmUyRCggc3BlY3VsYXJNYXAsIHZVdiApO1xuXHRzcGVjdWxhclN0cmVuZ3RoID0gdGV4ZWxTcGVjdWxhci5yO1xuI2Vsc2Vcblx0c3BlY3VsYXJTdHJlbmd0aCA9IDEuMDtcbiNlbmRpZiIsc3BlY3VsYXJtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9TUEVDVUxBUk1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBzcGVjdWxhck1hcDtcbiNlbmRpZiIsdG9uZW1hcHBpbmdfZnJhZ21lbnQ6IiNpZiBkZWZpbmVkKCBUT05FX01BUFBJTkcgKVxuXHRnbF9GcmFnQ29sb3IucmdiID0gdG9uZU1hcHBpbmcoIGdsX0ZyYWdDb2xvci5yZ2IgKTtcbiNlbmRpZiIsdG9uZW1hcHBpbmdfcGFyc19mcmFnbWVudDoiI2lmbmRlZiBzYXR1cmF0ZVxuI2RlZmluZSBzYXR1cmF0ZShhKSBjbGFtcCggYSwgMC4wLCAxLjAgKVxuI2VuZGlmXG51bmlmb3JtIGZsb2F0IHRvbmVNYXBwaW5nRXhwb3N1cmU7XG52ZWMzIExpbmVhclRvbmVNYXBwaW5nKCB2ZWMzIGNvbG9yICkge1xuXHRyZXR1cm4gdG9uZU1hcHBpbmdFeHBvc3VyZSAqIGNvbG9yO1xufVxudmVjMyBSZWluaGFyZFRvbmVNYXBwaW5nKCB2ZWMzIGNvbG9yICkge1xuXHRjb2xvciAqPSB0b25lTWFwcGluZ0V4cG9zdXJlO1xuXHRyZXR1cm4gc2F0dXJhdGUoIGNvbG9yIC8gKCB2ZWMzKCAxLjAgKSArIGNvbG9yICkgKTtcbn1cbnZlYzMgT3B0aW1pemVkQ2luZW9uVG9uZU1hcHBpbmcoIHZlYzMgY29sb3IgKSB7XG5cdGNvbG9yICo9IHRvbmVNYXBwaW5nRXhwb3N1cmU7XG5cdGNvbG9yID0gbWF4KCB2ZWMzKCAwLjAgKSwgY29sb3IgLSAwLjAwNCApO1xuXHRyZXR1cm4gcG93KCAoIGNvbG9yICogKCA2LjIgKiBjb2xvciArIDAuNSApICkgLyAoIGNvbG9yICogKCA2LjIgKiBjb2xvciArIDEuNyApICsgMC4wNiApLCB2ZWMzKCAyLjIgKSApO1xufVxudmVjMyBSUlRBbmRPRFRGaXQoIHZlYzMgdiApIHtcblx0dmVjMyBhID0gdiAqICggdiArIDAuMDI0NTc4NiApIC0gMC4wMDAwOTA1Mzc7XG5cdHZlYzMgYiA9IHYgKiAoIDAuOTgzNzI5ICogdiArIDAuNDMyOTUxMCApICsgMC4yMzgwODE7XG5cdHJldHVybiBhIC8gYjtcbn1cbnZlYzMgQUNFU0ZpbG1pY1RvbmVNYXBwaW5nKCB2ZWMzIGNvbG9yICkge1xuXHRjb25zdCBtYXQzIEFDRVNJbnB1dE1hdCA9IG1hdDMoXG5cdFx0dmVjMyggMC41OTcxOSwgMC4wNzYwMCwgMC4wMjg0MCApLFx0XHR2ZWMzKCAwLjM1NDU4LCAwLjkwODM0LCAwLjEzMzgzICksXG5cdFx0dmVjMyggMC4wNDgyMywgMC4wMTU2NiwgMC44Mzc3NyApXG5cdCk7XG5cdGNvbnN0IG1hdDMgQUNFU091dHB1dE1hdCA9IG1hdDMoXG5cdFx0dmVjMyggIDEuNjA0NzUsIC0wLjEwMjA4LCAtMC4wMDMyNyApLFx0XHR2ZWMzKCAtMC41MzEwOCwgIDEuMTA4MTMsIC0wLjA3Mjc2ICksXG5cdFx0dmVjMyggLTAuMDczNjcsIC0wLjAwNjA1LCAgMS4wNzYwMiApXG5cdCk7XG5cdGNvbG9yICo9IHRvbmVNYXBwaW5nRXhwb3N1cmUgLyAwLjY7XG5cdGNvbG9yID0gQUNFU0lucHV0TWF0ICogY29sb3I7XG5cdGNvbG9yID0gUlJUQW5kT0RURml0KCBjb2xvciApO1xuXHRjb2xvciA9IEFDRVNPdXRwdXRNYXQgKiBjb2xvcjtcblx0cmV0dXJuIHNhdHVyYXRlKCBjb2xvciApO1xufVxudmVjMyBDdXN0b21Ub25lTWFwcGluZyggdmVjMyBjb2xvciApIHsgcmV0dXJuIGNvbG9yOyB9Iix0cmFuc21pc3Npb25fZnJhZ21lbnQ6IiNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OXG5cdGZsb2F0IHRyYW5zbWlzc2lvbkZhY3RvciA9IHRyYW5zbWlzc2lvbjtcblx0ZmxvYXQgdGhpY2tuZXNzRmFjdG9yID0gdGhpY2tuZXNzO1xuXHQjaWZkZWYgVVNFX1RSQU5TTUlTU0lPTk1BUFxuXHRcdHRyYW5zbWlzc2lvbkZhY3RvciAqPSB0ZXh0dXJlMkQoIHRyYW5zbWlzc2lvbk1hcCwgdlV2ICkucjtcblx0I2VuZGlmXG5cdCNpZmRlZiBVU0VfVEhJQ0tORVNTTUFQXG5cdFx0dGhpY2tuZXNzRmFjdG9yICo9IHRleHR1cmUyRCggdGhpY2tuZXNzTWFwLCB2VXYgKS5nO1xuXHQjZW5kaWZcblx0dmVjMyBwb3MgPSB2V29ybGRQb3NpdGlvbi54eXogLyB2V29ybGRQb3NpdGlvbi53O1xuXHR2ZWMzIHYgPSBub3JtYWxpemUoIGNhbWVyYVBvc2l0aW9uIC0gcG9zICk7XG5cdHZlYzMgbiA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIG5vcm1hbCwgdmlld01hdHJpeCApO1xuXHRmbG9hdCBpb3IgPSAoIDEuMCArIDAuNCAqIHJlZmxlY3Rpdml0eSApIC8gKCAxLjAgLSAwLjQgKiByZWZsZWN0aXZpdHkgKTtcblx0dmVjMyB0cmFuc21pc3Npb24gPSB0cmFuc21pc3Npb25GYWN0b3IgKiBnZXRJQkxWb2x1bWVSZWZyYWN0aW9uKFxuXHRcdG4sIHYsIHJvdWdobmVzc0ZhY3RvciwgbWF0ZXJpYWwuZGlmZnVzZUNvbG9yLCBtYXRlcmlhbC5zcGVjdWxhckNvbG9yLFxuXHRcdHBvcywgbW9kZWxNYXRyaXgsIHZpZXdNYXRyaXgsIHByb2plY3Rpb25NYXRyaXgsIGlvciwgdGhpY2tuZXNzRmFjdG9yLFxuXHRcdGF0dGVudWF0aW9uVGludCwgYXR0ZW51YXRpb25EaXN0YW5jZSApO1xuXHR0b3RhbERpZmZ1c2UgPSBtaXgoIHRvdGFsRGlmZnVzZSwgdHJhbnNtaXNzaW9uLCB0cmFuc21pc3Npb25GYWN0b3IgKTtcbiNlbmRpZiIsdHJhbnNtaXNzaW9uX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OXG5cdCNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OTUFQXG5cdFx0dW5pZm9ybSBzYW1wbGVyMkQgdHJhbnNtaXNzaW9uTWFwO1xuXHQjZW5kaWZcblx0I2lmZGVmIFVTRV9USElDS05FU1NNQVBcblx0XHR1bmlmb3JtIHNhbXBsZXIyRCB0aGlja25lc3NNYXA7XG5cdCNlbmRpZlxuXHR1bmlmb3JtIHZlYzIgdHJhbnNtaXNzaW9uU2FtcGxlclNpemU7XG5cdHVuaWZvcm0gc2FtcGxlcjJEIHRyYW5zbWlzc2lvblNhbXBsZXJNYXA7XG5cdHVuaWZvcm0gbWF0NCBtb2RlbE1hdHJpeDtcblx0dW5pZm9ybSBtYXQ0IHByb2plY3Rpb25NYXRyaXg7XG5cdHZhcnlpbmcgdmVjNCB2V29ybGRQb3NpdGlvbjtcblx0dmVjMyBnZXRWb2x1bWVUcmFuc21pc3Npb25SYXkodmVjMyBuLCB2ZWMzIHYsIGZsb2F0IHRoaWNrbmVzcywgZmxvYXQgaW9yLCBtYXQ0IG1vZGVsTWF0cml4KSB7XG5cdFx0dmVjMyByZWZyYWN0aW9uVmVjdG9yID0gcmVmcmFjdCgtdiwgbm9ybWFsaXplKG4pLCAxLjAgLyBpb3IpO1xuXHRcdHZlYzMgbW9kZWxTY2FsZTtcblx0XHRtb2RlbFNjYWxlLnggPSBsZW5ndGgodmVjMyhtb2RlbE1hdHJpeFswXS54eXopKTtcblx0XHRtb2RlbFNjYWxlLnkgPSBsZW5ndGgodmVjMyhtb2RlbE1hdHJpeFsxXS54eXopKTtcblx0XHRtb2RlbFNjYWxlLnogPSBsZW5ndGgodmVjMyhtb2RlbE1hdHJpeFsyXS54eXopKTtcblx0XHRyZXR1cm4gbm9ybWFsaXplKHJlZnJhY3Rpb25WZWN0b3IpICogdGhpY2tuZXNzICogbW9kZWxTY2FsZTtcblx0fVxuXHRmbG9hdCBhcHBseUlvclRvUm91Z2huZXNzKGZsb2F0IHJvdWdobmVzcywgZmxvYXQgaW9yKSB7XG5cdFx0cmV0dXJuIHJvdWdobmVzcyAqIGNsYW1wKGlvciAqIDIuMCAtIDIuMCwgMC4wLCAxLjApO1xuXHR9XG5cdHZlYzMgZ2V0VHJhbnNtaXNzaW9uU2FtcGxlKHZlYzIgZnJhZ0Nvb3JkLCBmbG9hdCByb3VnaG5lc3MsIGZsb2F0IGlvcikge1xuXHRcdGZsb2F0IGZyYW1lYnVmZmVyTG9kID0gbG9nMih0cmFuc21pc3Npb25TYW1wbGVyU2l6ZS54KSAqIGFwcGx5SW9yVG9Sb3VnaG5lc3Mocm91Z2huZXNzLCBpb3IpO1xuXHRcdHJldHVybiB0ZXh0dXJlMkRMb2RFWFQodHJhbnNtaXNzaW9uU2FtcGxlck1hcCwgZnJhZ0Nvb3JkLnh5LCBmcmFtZWJ1ZmZlckxvZCkucmdiO1xuXHR9XG5cdHZlYzMgYXBwbHlWb2x1bWVBdHRlbnVhdGlvbih2ZWMzIHJhZGlhbmNlLCBmbG9hdCB0cmFuc21pc3Npb25EaXN0YW5jZSwgdmVjMyBhdHRlbnVhdGlvbkNvbG9yLCBmbG9hdCBhdHRlbnVhdGlvbkRpc3RhbmNlKSB7XG5cdFx0aWYgKGF0dGVudWF0aW9uRGlzdGFuY2UgPT0gMC4wKSB7XG5cdFx0XHRyZXR1cm4gcmFkaWFuY2U7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHZlYzMgYXR0ZW51YXRpb25Db2VmZmljaWVudCA9IC1sb2coYXR0ZW51YXRpb25Db2xvcikgLyBhdHRlbnVhdGlvbkRpc3RhbmNlO1xuXHRcdFx0dmVjMyB0cmFuc21pdHRhbmNlID0gZXhwKC1hdHRlbnVhdGlvbkNvZWZmaWNpZW50ICogdHJhbnNtaXNzaW9uRGlzdGFuY2UpO1x0XHRcdHJldHVybiB0cmFuc21pdHRhbmNlICogcmFkaWFuY2U7XG5cdFx0fVxuXHR9XG5cdHZlYzMgZ2V0SUJMVm9sdW1lUmVmcmFjdGlvbih2ZWMzIG4sIHZlYzMgdiwgZmxvYXQgcGVyY2VwdHVhbFJvdWdobmVzcywgdmVjMyBiYXNlQ29sb3IsIHZlYzMgc3BlY3VsYXJDb2xvcixcblx0XHR2ZWMzIHBvc2l0aW9uLCBtYXQ0IG1vZGVsTWF0cml4LCBtYXQ0IHZpZXdNYXRyaXgsIG1hdDQgcHJvak1hdHJpeCwgZmxvYXQgaW9yLCBmbG9hdCB0aGlja25lc3MsXG5cdFx0dmVjMyBhdHRlbnVhdGlvbkNvbG9yLCBmbG9hdCBhdHRlbnVhdGlvbkRpc3RhbmNlKSB7XG5cdFx0dmVjMyB0cmFuc21pc3Npb25SYXkgPSBnZXRWb2x1bWVUcmFuc21pc3Npb25SYXkobiwgdiwgdGhpY2tuZXNzLCBpb3IsIG1vZGVsTWF0cml4KTtcblx0XHR2ZWMzIHJlZnJhY3RlZFJheUV4aXQgPSBwb3NpdGlvbiArIHRyYW5zbWlzc2lvblJheTtcblx0XHR2ZWM0IG5kY1BvcyA9IHByb2pNYXRyaXggKiB2aWV3TWF0cml4ICogdmVjNChyZWZyYWN0ZWRSYXlFeGl0LCAxLjApO1xuXHRcdHZlYzIgcmVmcmFjdGlvbkNvb3JkcyA9IG5kY1Bvcy54eSAvIG5kY1Bvcy53O1xuXHRcdHJlZnJhY3Rpb25Db29yZHMgKz0gMS4wO1xuXHRcdHJlZnJhY3Rpb25Db29yZHMgLz0gMi4wO1xuXHRcdHZlYzMgdHJhbnNtaXR0ZWRMaWdodCA9IGdldFRyYW5zbWlzc2lvblNhbXBsZShyZWZyYWN0aW9uQ29vcmRzLCBwZXJjZXB0dWFsUm91Z2huZXNzLCBpb3IpO1xuXHRcdHZlYzMgYXR0ZW51YXRlZENvbG9yID0gYXBwbHlWb2x1bWVBdHRlbnVhdGlvbih0cmFuc21pdHRlZExpZ2h0LCBsZW5ndGgodHJhbnNtaXNzaW9uUmF5KSwgYXR0ZW51YXRpb25Db2xvciwgYXR0ZW51YXRpb25EaXN0YW5jZSk7XG5cdFx0cmV0dXJuICgxLjAgLSBzcGVjdWxhckNvbG9yKSAqIGF0dGVudWF0ZWRDb2xvciAqIGJhc2VDb2xvcjtcblx0fVxuI2VuZGlmIix1dl9wYXJzX2ZyYWdtZW50OiIjaWYgKCBkZWZpbmVkKCBVU0VfVVYgKSAmJiAhIGRlZmluZWQoIFVWU19WRVJURVhfT05MWSApIClcblx0dmFyeWluZyB2ZWMyIHZVdjtcbiNlbmRpZiIsdXZfcGFyc192ZXJ0ZXg6IiNpZmRlZiBVU0VfVVZcblx0I2lmZGVmIFVWU19WRVJURVhfT05MWVxuXHRcdHZlYzIgdlV2O1xuXHQjZWxzZVxuXHRcdHZhcnlpbmcgdmVjMiB2VXY7XG5cdCNlbmRpZlxuXHR1bmlmb3JtIG1hdDMgdXZUcmFuc2Zvcm07XG4jZW5kaWYiLHV2X3ZlcnRleDoiI2lmZGVmIFVTRV9VVlxuXHR2VXYgPSAoIHV2VHJhbnNmb3JtICogdmVjMyggdXYsIDEgKSApLnh5O1xuI2VuZGlmIix1djJfcGFyc19mcmFnbWVudDoiI2lmIGRlZmluZWQoIFVTRV9MSUdIVE1BUCApIHx8IGRlZmluZWQoIFVTRV9BT01BUCApXG5cdHZhcnlpbmcgdmVjMiB2VXYyO1xuI2VuZGlmIix1djJfcGFyc192ZXJ0ZXg6IiNpZiBkZWZpbmVkKCBVU0VfTElHSFRNQVAgKSB8fCBkZWZpbmVkKCBVU0VfQU9NQVAgKVxuXHRhdHRyaWJ1dGUgdmVjMiB1djI7XG5cdHZhcnlpbmcgdmVjMiB2VXYyO1xuXHR1bmlmb3JtIG1hdDMgdXYyVHJhbnNmb3JtO1xuI2VuZGlmIix1djJfdmVydGV4OiIjaWYgZGVmaW5lZCggVVNFX0xJR0hUTUFQICkgfHwgZGVmaW5lZCggVVNFX0FPTUFQIClcblx0dlV2MiA9ICggdXYyVHJhbnNmb3JtICogdmVjMyggdXYyLCAxICkgKS54eTtcbiNlbmRpZiIsd29ybGRwb3NfdmVydGV4OiIjaWYgZGVmaW5lZCggVVNFX0VOVk1BUCApIHx8IGRlZmluZWQoIERJU1RBTkNFICkgfHwgZGVmaW5lZCAoIFVTRV9TSEFET1dNQVAgKSB8fCBkZWZpbmVkICggVVNFX1RSQU5TTUlTU0lPTiApXG5cdHZlYzQgd29ybGRQb3NpdGlvbiA9IHZlYzQoIHRyYW5zZm9ybWVkLCAxLjAgKTtcblx0I2lmZGVmIFVTRV9JTlNUQU5DSU5HXG5cdFx0d29ybGRQb3NpdGlvbiA9IGluc3RhbmNlTWF0cml4ICogd29ybGRQb3NpdGlvbjtcblx0I2VuZGlmXG5cdHdvcmxkUG9zaXRpb24gPSBtb2RlbE1hdHJpeCAqIHdvcmxkUG9zaXRpb247XG4jZW5kaWYiLGJhY2tncm91bmRfZnJhZzoidW5pZm9ybSBzYW1wbGVyMkQgdDJEO1xudmFyeWluZyB2ZWMyIHZVdjtcbnZvaWQgbWFpbigpIHtcblx0dmVjNCB0ZXhDb2xvciA9IHRleHR1cmUyRCggdDJELCB2VXYgKTtcblx0Z2xfRnJhZ0NvbG9yID0gbWFwVGV4ZWxUb0xpbmVhciggdGV4Q29sb3IgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxufSIsYmFja2dyb3VuZF92ZXJ0OiJ2YXJ5aW5nIHZlYzIgdlV2O1xudW5pZm9ybSBtYXQzIHV2VHJhbnNmb3JtO1xudm9pZCBtYWluKCkge1xuXHR2VXYgPSAoIHV2VHJhbnNmb3JtICogdmVjMyggdXYsIDEgKSApLnh5O1xuXHRnbF9Qb3NpdGlvbiA9IHZlYzQoIHBvc2l0aW9uLnh5LCAxLjAsIDEuMCApO1xufSIsY3ViZV9mcmFnOiIjaW5jbHVkZSA8ZW52bWFwX2NvbW1vbl9wYXJzX2ZyYWdtZW50PlxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xudmFyeWluZyB2ZWMzIHZXb3JsZERpcmVjdGlvbjtcbiNpbmNsdWRlIDxjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdHZlYzMgdlJlZmxlY3QgPSB2V29ybGREaXJlY3Rpb247XG5cdCNpbmNsdWRlIDxlbnZtYXBfZnJhZ21lbnQ+XG5cdGdsX0ZyYWdDb2xvciA9IGVudkNvbG9yO1xuXHRnbF9GcmFnQ29sb3IuYSAqPSBvcGFjaXR5O1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG59IixjdWJlX3ZlcnQ6InZhcnlpbmcgdmVjMyB2V29ybGREaXJlY3Rpb247XG4jaW5jbHVkZSA8Y29tbW9uPlxudm9pZCBtYWluKCkge1xuXHR2V29ybGREaXJlY3Rpb24gPSB0cmFuc2Zvcm1EaXJlY3Rpb24oIHBvc2l0aW9uLCBtb2RlbE1hdHJpeCApO1xuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdGdsX1Bvc2l0aW9uLnogPSBnbF9Qb3NpdGlvbi53O1xufSIsZGVwdGhfZnJhZzoiI2lmIERFUFRIX1BBQ0tJTkcgPT0gMzIwMFxuXHR1bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8cGFja2luZz5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZhcnlpbmcgdmVjMiB2SGlnaFByZWNpc2lvblpXO1xudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIDEuMCApO1xuXHQjaWYgREVQVEhfUEFDS0lORyA9PSAzMjAwXG5cdFx0ZGlmZnVzZUNvbG9yLmEgPSBvcGFjaXR5O1xuXHQjZW5kaWZcblx0I2luY2x1ZGUgPG1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdGZsb2F0IGZyYWdDb29yZFogPSAwLjUgKiB2SGlnaFByZWNpc2lvblpXWzBdIC8gdkhpZ2hQcmVjaXNpb25aV1sxXSArIDAuNTtcblx0I2lmIERFUFRIX1BBQ0tJTkcgPT0gMzIwMFxuXHRcdGdsX0ZyYWdDb2xvciA9IHZlYzQoIHZlYzMoIDEuMCAtIGZyYWdDb29yZFogKSwgb3BhY2l0eSApO1xuXHQjZWxpZiBERVBUSF9QQUNLSU5HID09IDMyMDFcblx0XHRnbF9GcmFnQ29sb3IgPSBwYWNrRGVwdGhUb1JHQkEoIGZyYWdDb29yZFogKTtcblx0I2VuZGlmXG59IixkZXB0aF92ZXJ0OiIjaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxza2lubmluZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52YXJ5aW5nIHZlYzIgdkhpZ2hQcmVjaXNpb25aVztcbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD5cblx0I2lmZGVmIFVTRV9ESVNQTEFDRU1FTlRNQVBcblx0XHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHRcdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdFx0I2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PlxuXHQjZW5kaWZcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdHZIaWdoUHJlY2lzaW9uWlcgPSBnbF9Qb3NpdGlvbi56dztcbn0iLGRpc3RhbmNlUkdCQV9mcmFnOiIjZGVmaW5lIERJU1RBTkNFXG51bmlmb3JtIHZlYzMgcmVmZXJlbmNlUG9zaXRpb247XG51bmlmb3JtIGZsb2F0IG5lYXJEaXN0YW5jZTtcbnVuaWZvcm0gZmxvYXQgZmFyRGlzdGFuY2U7XG52YXJ5aW5nIHZlYzMgdldvcmxkUG9zaXRpb247XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHBhY2tpbmc+XG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluICgpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCAxLjAgKTtcblx0I2luY2x1ZGUgPG1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHRmbG9hdCBkaXN0ID0gbGVuZ3RoKCB2V29ybGRQb3NpdGlvbiAtIHJlZmVyZW5jZVBvc2l0aW9uICk7XG5cdGRpc3QgPSAoIGRpc3QgLSBuZWFyRGlzdGFuY2UgKSAvICggZmFyRGlzdGFuY2UgLSBuZWFyRGlzdGFuY2UgKTtcblx0ZGlzdCA9IHNhdHVyYXRlKCBkaXN0ICk7XG5cdGdsX0ZyYWdDb2xvciA9IHBhY2tEZXB0aFRvUkdCQSggZGlzdCApO1xufSIsZGlzdGFuY2VSR0JBX3ZlcnQ6IiNkZWZpbmUgRElTVEFOQ0VcbnZhcnlpbmcgdmVjMyB2V29ybGRQb3NpdGlvbjtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD5cblx0I2lmZGVmIFVTRV9ESVNQTEFDRU1FTlRNQVBcblx0XHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHRcdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdFx0I2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PlxuXHQjZW5kaWZcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdHZXb3JsZFBvc2l0aW9uID0gd29ybGRQb3NpdGlvbi54eXo7XG59IixlcXVpcmVjdF9mcmFnOiJ1bmlmb3JtIHNhbXBsZXIyRCB0RXF1aXJlY3Q7XG52YXJ5aW5nIHZlYzMgdldvcmxkRGlyZWN0aW9uO1xuI2luY2x1ZGUgPGNvbW1vbj5cbnZvaWQgbWFpbigpIHtcblx0dmVjMyBkaXJlY3Rpb24gPSBub3JtYWxpemUoIHZXb3JsZERpcmVjdGlvbiApO1xuXHR2ZWMyIHNhbXBsZVVWID0gZXF1aXJlY3RVdiggZGlyZWN0aW9uICk7XG5cdHZlYzQgdGV4Q29sb3IgPSB0ZXh0dXJlMkQoIHRFcXVpcmVjdCwgc2FtcGxlVVYgKTtcblx0Z2xfRnJhZ0NvbG9yID0gbWFwVGV4ZWxUb0xpbmVhciggdGV4Q29sb3IgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxufSIsZXF1aXJlY3RfdmVydDoidmFyeWluZyB2ZWMzIHZXb3JsZERpcmVjdGlvbjtcbiNpbmNsdWRlIDxjb21tb24+XG52b2lkIG1haW4oKSB7XG5cdHZXb3JsZERpcmVjdGlvbiA9IHRyYW5zZm9ybURpcmVjdGlvbiggcG9zaXRpb24sIG1vZGVsTWF0cml4ICk7XG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cbn0iLGxpbmVkYXNoZWRfZnJhZzoidW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG51bmlmb3JtIGZsb2F0IGRhc2hTaXplO1xudW5pZm9ybSBmbG9hdCB0b3RhbFNpemU7XG52YXJ5aW5nIGZsb2F0IHZMaW5lRGlzdGFuY2U7XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0aWYgKCBtb2QoIHZMaW5lRGlzdGFuY2UsIHRvdGFsU2l6ZSApID4gZGFzaFNpemUgKSB7XG5cdFx0ZGlzY2FyZDtcblx0fVxuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSB2ZWMzKCAwLjAgKTtcblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PlxuXHRvdXRnb2luZ0xpZ2h0ID0gZGlmZnVzZUNvbG9yLnJnYjtcblx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggb3V0Z29pbmdMaWdodCwgZGlmZnVzZUNvbG9yLmEgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8cHJlbXVsdGlwbGllZF9hbHBoYV9mcmFnbWVudD5cbn0iLGxpbmVkYXNoZWRfdmVydDoidW5pZm9ybSBmbG9hdCBzY2FsZTtcbmF0dHJpYnV0ZSBmbG9hdCBsaW5lRGlzdGFuY2U7XG52YXJ5aW5nIGZsb2F0IHZMaW5lRGlzdGFuY2U7XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdHZMaW5lRGlzdGFuY2UgPSBzY2FsZSAqIGxpbmVEaXN0YW5jZTtcblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XG59IixtZXNoYmFzaWNfZnJhZzoidW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPGRpdGhlcmluZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1djJfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFvbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bGlnaHRtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW52bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y3ViZV91dl9yZWZsZWN0aW9uX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNwZWN1bGFybWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGFtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxzcGVjdWxhcm1hcF9mcmFnbWVudD5cblx0UmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgPSBSZWZsZWN0ZWRMaWdodCggdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICkgKTtcblx0I2lmZGVmIFVTRV9MSUdIVE1BUFxuXHRcblx0XHR2ZWM0IGxpZ2h0TWFwVGV4ZWw9IHRleHR1cmUyRCggbGlnaHRNYXAsIHZVdjIgKTtcblx0XHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gbGlnaHRNYXBUZXhlbFRvTGluZWFyKCBsaWdodE1hcFRleGVsICkucmdiICogbGlnaHRNYXBJbnRlbnNpdHk7XG5cdCNlbHNlXG5cdFx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IHZlYzMoIDEuMCApO1xuXHQjZW5kaWZcblx0I2luY2x1ZGUgPGFvbWFwX2ZyYWdtZW50PlxuXHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKj0gZGlmZnVzZUNvbG9yLnJnYjtcblx0dmVjMyBvdXRnb2luZ0xpZ2h0ID0gcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlO1xuXHQjaW5jbHVkZSA8ZW52bWFwX2ZyYWdtZW50PlxuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBvdXRnb2luZ0xpZ2h0LCBkaWZmdXNlQ29sb3IuYSApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZGl0aGVyaW5nX2ZyYWdtZW50PlxufSIsbWVzaGJhc2ljX3ZlcnQ6IiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8dXYyX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGVudm1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8dXZfdmVydGV4PlxuXHQjaW5jbHVkZSA8dXYyX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cblx0I2lmIGRlZmluZWQgKCBVU0VfRU5WTUFQICkgfHwgZGVmaW5lZCAoIFVTRV9TS0lOTklORyApXG5cdFx0I2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD5cblx0XHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHRcdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdFx0I2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PlxuXHRcdCNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD5cblx0I2VuZGlmXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxlbnZtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cbn0iLG1lc2hsYW1iZXJ0X2ZyYWc6InVuaWZvcm0gdmVjMyBkaWZmdXNlO1xudW5pZm9ybSB2ZWMzIGVtaXNzaXZlO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xudmFyeWluZyB2ZWMzIHZMaWdodEZyb250O1xudmFyeWluZyB2ZWMzIHZJbmRpcmVjdEZyb250O1xuI2lmZGVmIERPVUJMRV9TSURFRFxuXHR2YXJ5aW5nIHZlYzMgdkxpZ2h0QmFjaztcblx0dmFyeWluZyB2ZWMzIHZJbmRpcmVjdEJhY2s7XG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8cGFja2luZz5cbiNpbmNsdWRlIDxkaXRoZXJpbmdfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXYyX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhb21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxpZ2h0bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW1pc3NpdmVtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbnZtYXBfY29tbW9uX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW52bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y3ViZV91dl9yZWZsZWN0aW9uX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJzZGZzPlxuI2luY2x1ZGUgPGxpZ2h0c19wYXJzX2JlZ2luPlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNoYWRvd21hc2tfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxzcGVjdWxhcm1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApO1xuXHRSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCA9IFJlZmxlY3RlZExpZ2h0KCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSApO1xuXHR2ZWMzIHRvdGFsRW1pc3NpdmVSYWRpYW5jZSA9IGVtaXNzaXZlO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8c3BlY3VsYXJtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9mcmFnbWVudD5cblx0I2lmZGVmIERPVUJMRV9TSURFRFxuXHRcdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSAoIGdsX0Zyb250RmFjaW5nICkgPyB2SW5kaXJlY3RGcm9udCA6IHZJbmRpcmVjdEJhY2s7XG5cdCNlbHNlXG5cdFx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IHZJbmRpcmVjdEZyb250O1xuXHQjZW5kaWZcblx0I2luY2x1ZGUgPGxpZ2h0bWFwX2ZyYWdtZW50PlxuXHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKj0gQlJERl9EaWZmdXNlX0xhbWJlcnQoIGRpZmZ1c2VDb2xvci5yZ2IgKTtcblx0I2lmZGVmIERPVUJMRV9TSURFRFxuXHRcdHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgPSAoIGdsX0Zyb250RmFjaW5nICkgPyB2TGlnaHRGcm9udCA6IHZMaWdodEJhY2s7XG5cdCNlbHNlXG5cdFx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSA9IHZMaWdodEZyb250O1xuXHQjZW5kaWZcblx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSAqPSBCUkRGX0RpZmZ1c2VfTGFtYmVydCggZGlmZnVzZUNvbG9yLnJnYiApICogZ2V0U2hhZG93TWFzaygpO1xuXHQjaW5jbHVkZSA8YW9tYXBfZnJhZ21lbnQ+XG5cdHZlYzMgb3V0Z29pbmdMaWdodCA9IHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKyByZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKyB0b3RhbEVtaXNzaXZlUmFkaWFuY2U7XG5cdCNpbmNsdWRlIDxlbnZtYXBfZnJhZ21lbnQ+XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIG91dGdvaW5nTGlnaHQsIGRpZmZ1c2VDb2xvci5hICk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxkaXRoZXJpbmdfZnJhZ21lbnQ+XG59IixtZXNobGFtYmVydF92ZXJ0OiIjZGVmaW5lIExBTUJFUlRcbnZhcnlpbmcgdmVjMyB2TGlnaHRGcm9udDtcbnZhcnlpbmcgdmVjMyB2SW5kaXJlY3RGcm9udDtcbiNpZmRlZiBET1VCTEVfU0lERURcblx0dmFyeWluZyB2ZWMzIHZMaWdodEJhY2s7XG5cdHZhcnlpbmcgdmVjMyB2SW5kaXJlY3RCYWNrO1xuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHV2Ml9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxlbnZtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8YnNkZnM+XG4jaW5jbHVkZSA8bGlnaHRzX3BhcnNfYmVnaW4+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDx1dl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDx1djJfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cblx0I2luY2x1ZGUgPGVudm1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsaWdodHNfbGFtYmVydF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxzaGFkb3dtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cbn0iLG1lc2htYXRjYXBfZnJhZzoiI2RlZmluZSBNQVRDQVBcbnVuaWZvcm0gdmVjMyBkaWZmdXNlO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xudW5pZm9ybSBzYW1wbGVyMkQgbWF0Y2FwO1xudmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHR2YXJ5aW5nIHZlYzMgdlRhbmdlbnQ7XG5cdFx0dmFyeWluZyB2ZWMzIHZCaXRhbmdlbnQ7XG5cdCNlbmRpZlxuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPGRpdGhlcmluZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJ1bXBtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxub3JtYWxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9iZWdpbj5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9tYXBzPlxuXHR2ZWMzIHZpZXdEaXIgPSBub3JtYWxpemUoIHZWaWV3UG9zaXRpb24gKTtcblx0dmVjMyB4ID0gbm9ybWFsaXplKCB2ZWMzKCB2aWV3RGlyLnosIDAuMCwgLSB2aWV3RGlyLnggKSApO1xuXHR2ZWMzIHkgPSBjcm9zcyggdmlld0RpciwgeCApO1xuXHR2ZWMyIHV2ID0gdmVjMiggZG90KCB4LCBub3JtYWwgKSwgZG90KCB5LCBub3JtYWwgKSApICogMC40OTUgKyAwLjU7XG5cdCNpZmRlZiBVU0VfTUFUQ0FQXG5cdFx0dmVjNCBtYXRjYXBDb2xvciA9IHRleHR1cmUyRCggbWF0Y2FwLCB1diApO1xuXHRcdG1hdGNhcENvbG9yID0gbWF0Y2FwVGV4ZWxUb0xpbmVhciggbWF0Y2FwQ29sb3IgKTtcblx0I2Vsc2Vcblx0XHR2ZWM0IG1hdGNhcENvbG9yID0gdmVjNCggMS4wICk7XG5cdCNlbmRpZlxuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSBkaWZmdXNlQ29sb3IucmdiICogbWF0Y2FwQ29sb3IucmdiO1xuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBvdXRnb2luZ0xpZ2h0LCBkaWZmdXNlQ29sb3IuYSApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZGl0aGVyaW5nX2ZyYWdtZW50PlxufSIsbWVzaG1hdGNhcF92ZXJ0OiIjZGVmaW5lIE1BVENBUFxudmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHR2YXJ5aW5nIHZlYzMgdlRhbmdlbnQ7XG5cdFx0dmFyeWluZyB2ZWMzIHZCaXRhbmdlbnQ7XG5cdCNlbmRpZlxuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8dXZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD5cblx0I2lmbmRlZiBGTEFUX1NIQURFRFxuXHRcdHZOb3JtYWwgPSBub3JtYWxpemUoIHRyYW5zZm9ybWVkTm9ybWFsICk7XG5cdFx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0XHR2VGFuZ2VudCA9IG5vcm1hbGl6ZSggdHJhbnNmb3JtZWRUYW5nZW50ICk7XG5cdFx0XHR2Qml0YW5nZW50ID0gbm9ybWFsaXplKCBjcm9zcyggdk5vcm1hbCwgdlRhbmdlbnQgKSAqIHRhbmdlbnQudyApO1xuXHRcdCNlbmRpZlxuXHQjZW5kaWZcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5uaW5nX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxuXHR2Vmlld1Bvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejtcbn0iLG1lc2h0b29uX2ZyYWc6IiNkZWZpbmUgVE9PTlxudW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIHZlYzMgZW1pc3NpdmU7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHBhY2tpbmc+XG4jaW5jbHVkZSA8ZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2Ml9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YW9tYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsaWdodG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGVtaXNzaXZlbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Z3JhZGllbnRtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxic2Rmcz5cbiNpbmNsdWRlIDxsaWdodHNfcGFyc19iZWdpbj5cbiNpbmNsdWRlIDxsaWdodHNfdG9vbl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJ1bXBtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxub3JtYWxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTtcblx0UmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgPSBSZWZsZWN0ZWRMaWdodCggdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICkgKTtcblx0dmVjMyB0b3RhbEVtaXNzaXZlUmFkaWFuY2UgPSBlbWlzc2l2ZTtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9iZWdpbj5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9tYXBzPlxuXHQjaW5jbHVkZSA8ZW1pc3NpdmVtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxsaWdodHNfdG9vbl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9iZWdpbj5cblx0I2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9tYXBzPlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X2VuZD5cblx0I2luY2x1ZGUgPGFvbWFwX2ZyYWdtZW50PlxuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSByZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICsgcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICsgdG90YWxFbWlzc2l2ZVJhZGlhbmNlO1xuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBvdXRnb2luZ0xpZ2h0LCBkaWZmdXNlQ29sb3IuYSApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZGl0aGVyaW5nX2ZyYWdtZW50PlxufSIsbWVzaHRvb25fdmVydDoiI2RlZmluZSBUT09OXG52YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8dXYyX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0I2luY2x1ZGUgPHV2Ml92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRlZmF1bHRub3JtYWxfdmVydGV4PlxuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2Tm9ybWFsID0gbm9ybWFsaXplKCB0cmFuc2Zvcm1lZE5vcm1hbCApO1xuI2VuZGlmXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHR2Vmlld1Bvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejtcblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNoYWRvd21hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxufSIsbWVzaHBob25nX2ZyYWc6IiNkZWZpbmUgUEhPTkdcbnVuaWZvcm0gdmVjMyBkaWZmdXNlO1xudW5pZm9ybSB2ZWMzIGVtaXNzaXZlO1xudW5pZm9ybSB2ZWMzIHNwZWN1bGFyO1xudW5pZm9ybSBmbG9hdCBzaGluaW5lc3M7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHBhY2tpbmc+XG4jaW5jbHVkZSA8ZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2Ml9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YW9tYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsaWdodG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGVtaXNzaXZlbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW52bWFwX2NvbW1vbl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGVudm1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGN1YmVfdXZfcmVmbGVjdGlvbl9mcmFnbWVudD5cbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxic2Rmcz5cbiNpbmNsdWRlIDxsaWdodHNfcGFyc19iZWdpbj5cbiNpbmNsdWRlIDxsaWdodHNfcGhvbmdfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxzaGFkb3dtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxidW1wbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bm9ybWFsbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8c3BlY3VsYXJtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTtcblx0UmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgPSBSZWZsZWN0ZWRMaWdodCggdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICkgKTtcblx0dmVjMyB0b3RhbEVtaXNzaXZlUmFkaWFuY2UgPSBlbWlzc2l2ZTtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPHNwZWN1bGFybWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X21hcHM+XG5cdCNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGxpZ2h0c19waG9uZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9iZWdpbj5cblx0I2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9tYXBzPlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X2VuZD5cblx0I2luY2x1ZGUgPGFvbWFwX2ZyYWdtZW50PlxuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSByZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICsgcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICsgcmVmbGVjdGVkTGlnaHQuZGlyZWN0U3BlY3VsYXIgKyByZWZsZWN0ZWRMaWdodC5pbmRpcmVjdFNwZWN1bGFyICsgdG90YWxFbWlzc2l2ZVJhZGlhbmNlO1xuXHQjaW5jbHVkZSA8ZW52bWFwX2ZyYWdtZW50PlxuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBvdXRnb2luZ0xpZ2h0LCBkaWZmdXNlQ29sb3IuYSApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZGl0aGVyaW5nX2ZyYWdtZW50PlxufSIsbWVzaHBob25nX3ZlcnQ6IiNkZWZpbmUgUEhPTkdcbnZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2YXJ5aW5nIHZlYzMgdk5vcm1hbDtcbiNlbmRpZlxuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDx1djJfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGVudm1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0I2luY2x1ZGUgPHV2Ml92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPGRlZmF1bHRub3JtYWxfdmVydGV4PlxuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2Tm9ybWFsID0gbm9ybWFsaXplKCB0cmFuc2Zvcm1lZE5vcm1hbCApO1xuI2VuZGlmXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHR2Vmlld1Bvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejtcblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cblx0I2luY2x1ZGUgPGVudm1hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxzaGFkb3dtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cbn0iLG1lc2hwaHlzaWNhbF9mcmFnOiIjZGVmaW5lIFNUQU5EQVJEXG4jaWZkZWYgUEhZU0lDQUxcblx0I2RlZmluZSBSRUZMRUNUSVZJVFlcblx0I2RlZmluZSBDTEVBUkNPQVRcblx0I2RlZmluZSBTUEVDVUxBUlxuI2VuZGlmXG51bmlmb3JtIHZlYzMgZGlmZnVzZTtcbnVuaWZvcm0gdmVjMyBlbWlzc2l2ZTtcbnVuaWZvcm0gZmxvYXQgcm91Z2huZXNzO1xudW5pZm9ybSBmbG9hdCBtZXRhbG5lc3M7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jaWZkZWYgVVNFX1RSQU5TTUlTU0lPTlxuXHR1bmlmb3JtIGZsb2F0IHRyYW5zbWlzc2lvbjtcblx0dW5pZm9ybSBmbG9hdCB0aGlja25lc3M7XG5cdHVuaWZvcm0gZmxvYXQgYXR0ZW51YXRpb25EaXN0YW5jZTtcblx0dW5pZm9ybSB2ZWMzIGF0dGVudWF0aW9uVGludDtcbiNlbmRpZlxuI2lmZGVmIFJFRkxFQ1RJVklUWVxuXHR1bmlmb3JtIGZsb2F0IHJlZmxlY3Rpdml0eTtcbiNlbmRpZlxuI2lmZGVmIFNQRUNVTEFSXG5cdHVuaWZvcm0gZmxvYXQgc3BlY3VsYXJJbnRlbnNpdHk7XG5cdHVuaWZvcm0gdmVjMyBzcGVjdWxhclRpbnQ7XG5cdCNpZmRlZiBVU0VfU1BFQ1VMQVJJTlRFTlNJVFlNQVBcblx0XHR1bmlmb3JtIHNhbXBsZXIyRCBzcGVjdWxhckludGVuc2l0eU1hcDtcblx0I2VuZGlmXG5cdCNpZmRlZiBVU0VfU1BFQ1VMQVJUSU5UTUFQXG5cdFx0dW5pZm9ybSBzYW1wbGVyMkQgc3BlY3VsYXJUaW50TWFwO1xuXHQjZW5kaWZcbiNlbmRpZlxuI2lmZGVmIENMRUFSQ09BVFxuXHR1bmlmb3JtIGZsb2F0IGNsZWFyY29hdDtcblx0dW5pZm9ybSBmbG9hdCBjbGVhcmNvYXRSb3VnaG5lc3M7XG4jZW5kaWZcbiNpZmRlZiBVU0VfU0hFRU5cblx0dW5pZm9ybSB2ZWMzIHNoZWVuO1xuI2VuZGlmXG52YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdHZhcnlpbmcgdmVjMyB2VGFuZ2VudDtcblx0XHR2YXJ5aW5nIHZlYzMgdkJpdGFuZ2VudDtcblx0I2VuZGlmXG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8cGFja2luZz5cbiNpbmNsdWRlIDxkaXRoZXJpbmdfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXYyX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhb21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxpZ2h0bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW1pc3NpdmVtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxic2Rmcz5cbiNpbmNsdWRlIDx0cmFuc21pc3Npb25fcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW52bWFwX2NvbW1vbl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGVudm1hcF9waHlzaWNhbF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxpZ2h0c19wYXJzX2JlZ2luPlxuI2luY2x1ZGUgPGxpZ2h0c19waHlzaWNhbF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJ1bXBtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxub3JtYWxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGVhcmNvYXRfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxyb3VnaG5lc3NtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtZXRhbG5lc3NtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTtcblx0UmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgPSBSZWZsZWN0ZWRMaWdodCggdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICkgKTtcblx0dmVjMyB0b3RhbEVtaXNzaXZlUmFkaWFuY2UgPSBlbWlzc2l2ZTtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPHJvdWdobmVzc21hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG1ldGFsbmVzc21hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9iZWdpbj5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9tYXBzPlxuXHQjaW5jbHVkZSA8Y2xlYXJjb2F0X25vcm1hbF9mcmFnbWVudF9iZWdpbj5cblx0I2luY2x1ZGUgPGNsZWFyY29hdF9ub3JtYWxfZnJhZ21lbnRfbWFwcz5cblx0I2luY2x1ZGUgPGVtaXNzaXZlbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bGlnaHRzX3BoeXNpY2FsX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X21hcHM+XG5cdCNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfZW5kPlxuXHQjaW5jbHVkZSA8YW9tYXBfZnJhZ21lbnQ+XG5cdHZlYzMgdG90YWxEaWZmdXNlID0gcmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSArIHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZTtcblx0dmVjMyB0b3RhbFNwZWN1bGFyID0gcmVmbGVjdGVkTGlnaHQuZGlyZWN0U3BlY3VsYXIgKyByZWZsZWN0ZWRMaWdodC5pbmRpcmVjdFNwZWN1bGFyO1xuXHQjaW5jbHVkZSA8dHJhbnNtaXNzaW9uX2ZyYWdtZW50PlxuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSB0b3RhbERpZmZ1c2UgKyB0b3RhbFNwZWN1bGFyICsgdG90YWxFbWlzc2l2ZVJhZGlhbmNlO1xuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBvdXRnb2luZ0xpZ2h0LCBkaWZmdXNlQ29sb3IuYSApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZGl0aGVyaW5nX2ZyYWdtZW50PlxufSIsbWVzaHBoeXNpY2FsX3ZlcnQ6IiNkZWZpbmUgU1RBTkRBUkRcbnZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2YXJ5aW5nIHZlYzMgdk5vcm1hbDtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0dmFyeWluZyB2ZWMzIHZUYW5nZW50O1xuXHRcdHZhcnlpbmcgdmVjMyB2Qml0YW5nZW50O1xuXHQjZW5kaWZcbiNlbmRpZlxuI2lmZGVmIFVTRV9UUkFOU01JU1NJT05cblx0dmFyeWluZyB2ZWM0IHZXb3JsZFBvc2l0aW9uO1xuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHV2Ml9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDx1dl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDx1djJfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD5cbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dk5vcm1hbCA9IG5vcm1hbGl6ZSggdHJhbnNmb3JtZWROb3JtYWwgKTtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0dlRhbmdlbnQgPSBub3JtYWxpemUoIHRyYW5zZm9ybWVkVGFuZ2VudCApO1xuXHRcdHZCaXRhbmdlbnQgPSBub3JtYWxpemUoIGNyb3NzKCB2Tm9ybWFsLCB2VGFuZ2VudCApICogdGFuZ2VudC53ICk7XG5cdCNlbmRpZlxuI2VuZGlmXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHR2Vmlld1Bvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejtcblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNoYWRvd21hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxuI2lmZGVmIFVTRV9UUkFOU01JU1NJT05cblx0dldvcmxkUG9zaXRpb24gPSB3b3JsZFBvc2l0aW9uO1xuI2VuZGlmXG59Iixub3JtYWxfZnJhZzoiI2RlZmluZSBOT1JNQUxcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiNpZiBkZWZpbmVkKCBGTEFUX1NIQURFRCApIHx8IGRlZmluZWQoIFVTRV9CVU1QTUFQICkgfHwgZGVmaW5lZCggVEFOR0VOVFNQQUNFX05PUk1BTE1BUCApXG5cdHZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xuI2VuZGlmXG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHR2YXJ5aW5nIHZlYzMgdlRhbmdlbnQ7XG5cdFx0dmFyeWluZyB2ZWMzIHZCaXRhbmdlbnQ7XG5cdCNlbmRpZlxuI2VuZGlmXG4jaW5jbHVkZSA8cGFja2luZz5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJ1bXBtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxub3JtYWxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfYmVnaW4+XG5cdCNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfbWFwcz5cblx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggcGFja05vcm1hbFRvUkdCKCBub3JtYWwgKSwgb3BhY2l0eSApO1xufSIsbm9ybWFsX3ZlcnQ6IiNkZWZpbmUgTk9STUFMXG4jaWYgZGVmaW5lZCggRkxBVF9TSEFERUQgKSB8fCBkZWZpbmVkKCBVU0VfQlVNUE1BUCApIHx8IGRlZmluZWQoIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAgKVxuXHR2YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNlbmRpZlxuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2YXJ5aW5nIHZlYzMgdk5vcm1hbDtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0dmFyeWluZyB2ZWMzIHZUYW5nZW50O1xuXHRcdHZhcnlpbmcgdmVjMyB2Qml0YW5nZW50O1xuXHQjZW5kaWZcbiNlbmRpZlxuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8dXZfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD5cbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dk5vcm1hbCA9IG5vcm1hbGl6ZSggdHJhbnNmb3JtZWROb3JtYWwgKTtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0dlRhbmdlbnQgPSBub3JtYWxpemUoIHRyYW5zZm9ybWVkVGFuZ2VudCApO1xuXHRcdHZCaXRhbmdlbnQgPSBub3JtYWxpemUoIGNyb3NzKCB2Tm9ybWFsLCB2VGFuZ2VudCApICogdGFuZ2VudC53ICk7XG5cdCNlbmRpZlxuI2VuZGlmXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuI2lmIGRlZmluZWQoIEZMQVRfU0hBREVEICkgfHwgZGVmaW5lZCggVVNFX0JVTVBNQVAgKSB8fCBkZWZpbmVkKCBUQU5HRU5UU1BBQ0VfTk9STUFMTUFQIClcblx0dlZpZXdQb3NpdGlvbiA9IC0gbXZQb3NpdGlvbi54eXo7XG4jZW5kaWZcbn0iLHBvaW50c19mcmFnOiJ1bmlmb3JtIHZlYzMgZGlmZnVzZTtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtYXBfcGFydGljbGVfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSB2ZWMzKCAwLjAgKTtcblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG1hcF9wYXJ0aWNsZV9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHRvdXRnb2luZ0xpZ2h0ID0gZGlmZnVzZUNvbG9yLnJnYjtcblx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggb3V0Z29pbmdMaWdodCwgZGlmZnVzZUNvbG9yLmEgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8cHJlbXVsdGlwbGllZF9hbHBoYV9mcmFnbWVudD5cbn0iLHBvaW50c192ZXJ0OiJ1bmlmb3JtIGZsb2F0IHNpemU7XG51bmlmb3JtIGZsb2F0IHNjYWxlO1xuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdGdsX1BvaW50U2l6ZSA9IHNpemU7XG5cdCNpZmRlZiBVU0VfU0laRUFUVEVOVUFUSU9OXG5cdFx0Ym9vbCBpc1BlcnNwZWN0aXZlID0gaXNQZXJzcGVjdGl2ZU1hdHJpeCggcHJvamVjdGlvbk1hdHJpeCApO1xuXHRcdGlmICggaXNQZXJzcGVjdGl2ZSApIGdsX1BvaW50U2l6ZSAqPSAoIHNjYWxlIC8gLSBtdlBvc2l0aW9uLnogKTtcblx0I2VuZGlmXG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cbn0iLHNoYWRvd19mcmFnOiJ1bmlmb3JtIHZlYzMgY29sb3I7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHBhY2tpbmc+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YnNkZnM+XG4jaW5jbHVkZSA8bGlnaHRzX3BhcnNfYmVnaW4+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8c2hhZG93bWFza19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBjb2xvciwgb3BhY2l0eSAqICggMS4wIC0gZ2V0U2hhZG93TWFzaygpICkgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxufSIsc2hhZG93X3ZlcnQ6IiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNoYWRvd21hcF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxufSIsc3ByaXRlX2ZyYWc6InVuaWZvcm0gdmVjMyBkaWZmdXNlO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0dmVjMyBvdXRnb2luZ0xpZ2h0ID0gdmVjMyggMC4wICk7XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cblx0b3V0Z29pbmdMaWdodCA9IGRpZmZ1c2VDb2xvci5yZ2I7XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIG91dGdvaW5nTGlnaHQsIGRpZmZ1c2VDb2xvci5hICk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cbn0iLHNwcml0ZV92ZXJ0OiJ1bmlmb3JtIGZsb2F0IHJvdGF0aW9uO1xudW5pZm9ybSB2ZWMyIGNlbnRlcjtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0dmVjNCBtdlBvc2l0aW9uID0gbW9kZWxWaWV3TWF0cml4ICogdmVjNCggMC4wLCAwLjAsIDAuMCwgMS4wICk7XG5cdHZlYzIgc2NhbGU7XG5cdHNjYWxlLnggPSBsZW5ndGgoIHZlYzMoIG1vZGVsTWF0cml4WyAwIF0ueCwgbW9kZWxNYXRyaXhbIDAgXS55LCBtb2RlbE1hdHJpeFsgMCBdLnogKSApO1xuXHRzY2FsZS55ID0gbGVuZ3RoKCB2ZWMzKCBtb2RlbE1hdHJpeFsgMSBdLngsIG1vZGVsTWF0cml4WyAxIF0ueSwgbW9kZWxNYXRyaXhbIDEgXS56ICkgKTtcblx0I2lmbmRlZiBVU0VfU0laRUFUVEVOVUFUSU9OXG5cdFx0Ym9vbCBpc1BlcnNwZWN0aXZlID0gaXNQZXJzcGVjdGl2ZU1hdHJpeCggcHJvamVjdGlvbk1hdHJpeCApO1xuXHRcdGlmICggaXNQZXJzcGVjdGl2ZSApIHNjYWxlICo9IC0gbXZQb3NpdGlvbi56O1xuXHQjZW5kaWZcblx0dmVjMiBhbGlnbmVkUG9zaXRpb24gPSAoIHBvc2l0aW9uLnh5IC0gKCBjZW50ZXIgLSB2ZWMyKCAwLjUgKSApICkgKiBzY2FsZTtcblx0dmVjMiByb3RhdGVkUG9zaXRpb247XG5cdHJvdGF0ZWRQb3NpdGlvbi54ID0gY29zKCByb3RhdGlvbiApICogYWxpZ25lZFBvc2l0aW9uLnggLSBzaW4oIHJvdGF0aW9uICkgKiBhbGlnbmVkUG9zaXRpb24ueTtcblx0cm90YXRlZFBvc2l0aW9uLnkgPSBzaW4oIHJvdGF0aW9uICkgKiBhbGlnbmVkUG9zaXRpb24ueCArIGNvcyggcm90YXRpb24gKSAqIGFsaWduZWRQb3NpdGlvbi55O1xuXHRtdlBvc2l0aW9uLnh5ICs9IHJvdGF0ZWRQb3NpdGlvbjtcblx0Z2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogbXZQb3NpdGlvbjtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxufSJ9LGI2dD17Y29tbW9uOntkaWZmdXNlOnt2YWx1ZTpuZXcgczR0KDE2Nzc3MjE1KX0sb3BhY2l0eTp7dmFsdWU6MX0sbWFwOnt2YWx1ZTpudWxsfSx1dlRyYW5zZm9ybTp7dmFsdWU6bmV3IEE1dH0sdXYyVHJhbnNmb3JtOnt2YWx1ZTpuZXcgQTV0fSxhbHBoYU1hcDp7dmFsdWU6bnVsbH19LHNwZWN1bGFybWFwOntzcGVjdWxhck1hcDp7dmFsdWU6bnVsbH19LGVudm1hcDp7ZW52TWFwOnt2YWx1ZTpudWxsfSxmbGlwRW52TWFwOnt2YWx1ZTotMX0scmVmbGVjdGl2aXR5Ont2YWx1ZToxfSxyZWZyYWN0aW9uUmF0aW86e3ZhbHVlOi45OH0sbWF4TWlwTGV2ZWw6e3ZhbHVlOjB9fSxhb21hcDp7YW9NYXA6e3ZhbHVlOm51bGx9LGFvTWFwSW50ZW5zaXR5Ont2YWx1ZToxfX0sbGlnaHRtYXA6e2xpZ2h0TWFwOnt2YWx1ZTpudWxsfSxsaWdodE1hcEludGVuc2l0eTp7dmFsdWU6MX19LGVtaXNzaXZlbWFwOntlbWlzc2l2ZU1hcDp7dmFsdWU6bnVsbH19LGJ1bXBtYXA6e2J1bXBNYXA6e3ZhbHVlOm51bGx9LGJ1bXBTY2FsZTp7dmFsdWU6MX19LG5vcm1hbG1hcDp7bm9ybWFsTWFwOnt2YWx1ZTpudWxsfSxub3JtYWxTY2FsZTp7dmFsdWU6bmV3IEM1dCgxLDEpfX0sZGlzcGxhY2VtZW50bWFwOntkaXNwbGFjZW1lbnRNYXA6e3ZhbHVlOm51bGx9LGRpc3BsYWNlbWVudFNjYWxlOnt2YWx1ZToxfSxkaXNwbGFjZW1lbnRCaWFzOnt2YWx1ZTowfX0scm91Z2huZXNzbWFwOntyb3VnaG5lc3NNYXA6e3ZhbHVlOm51bGx9fSxtZXRhbG5lc3NtYXA6e21ldGFsbmVzc01hcDp7dmFsdWU6bnVsbH19LGdyYWRpZW50bWFwOntncmFkaWVudE1hcDp7dmFsdWU6bnVsbH19LGZvZzp7Zm9nRGVuc2l0eTp7dmFsdWU6MjVlLTV9LGZvZ05lYXI6e3ZhbHVlOjF9LGZvZ0Zhcjp7dmFsdWU6MmUzfSxmb2dDb2xvcjp7dmFsdWU6bmV3IHM0dCgxNjc3NzIxNSl9fSxsaWdodHM6e2FtYmllbnRMaWdodENvbG9yOnt2YWx1ZTpbXX0sbGlnaHRQcm9iZTp7dmFsdWU6W119LGRpcmVjdGlvbmFsTGlnaHRzOnt2YWx1ZTpbXSxwcm9wZXJ0aWVzOntkaXJlY3Rpb246e30sY29sb3I6e319fSxkaXJlY3Rpb25hbExpZ2h0U2hhZG93czp7dmFsdWU6W10scHJvcGVydGllczp7c2hhZG93Qmlhczp7fSxzaGFkb3dOb3JtYWxCaWFzOnt9LHNoYWRvd1JhZGl1czp7fSxzaGFkb3dNYXBTaXplOnt9fX0sZGlyZWN0aW9uYWxTaGFkb3dNYXA6e3ZhbHVlOltdfSxkaXJlY3Rpb25hbFNoYWRvd01hdHJpeDp7dmFsdWU6W119LHNwb3RMaWdodHM6e3ZhbHVlOltdLHByb3BlcnRpZXM6e2NvbG9yOnt9LHBvc2l0aW9uOnt9LGRpcmVjdGlvbjp7fSxkaXN0YW5jZTp7fSxjb25lQ29zOnt9LHBlbnVtYnJhQ29zOnt9LGRlY2F5Ont9fX0sc3BvdExpZ2h0U2hhZG93czp7dmFsdWU6W10scHJvcGVydGllczp7c2hhZG93Qmlhczp7fSxzaGFkb3dOb3JtYWxCaWFzOnt9LHNoYWRvd1JhZGl1czp7fSxzaGFkb3dNYXBTaXplOnt9fX0sc3BvdFNoYWRvd01hcDp7dmFsdWU6W119LHNwb3RTaGFkb3dNYXRyaXg6e3ZhbHVlOltdfSxwb2ludExpZ2h0czp7dmFsdWU6W10scHJvcGVydGllczp7Y29sb3I6e30scG9zaXRpb246e30sZGVjYXk6e30sZGlzdGFuY2U6e319fSxwb2ludExpZ2h0U2hhZG93czp7dmFsdWU6W10scHJvcGVydGllczp7c2hhZG93Qmlhczp7fSxzaGFkb3dOb3JtYWxCaWFzOnt9LHNoYWRvd1JhZGl1czp7fSxzaGFkb3dNYXBTaXplOnt9LHNoYWRvd0NhbWVyYU5lYXI6e30sc2hhZG93Q2FtZXJhRmFyOnt9fX0scG9pbnRTaGFkb3dNYXA6e3ZhbHVlOltdfSxwb2ludFNoYWRvd01hdHJpeDp7dmFsdWU6W119LGhlbWlzcGhlcmVMaWdodHM6e3ZhbHVlOltdLHByb3BlcnRpZXM6e2RpcmVjdGlvbjp7fSxza3lDb2xvcjp7fSxncm91bmRDb2xvcjp7fX19LHJlY3RBcmVhTGlnaHRzOnt2YWx1ZTpbXSxwcm9wZXJ0aWVzOntjb2xvcjp7fSxwb3NpdGlvbjp7fSx3aWR0aDp7fSxoZWlnaHQ6e319fSxsdGNfMTp7dmFsdWU6bnVsbH0sbHRjXzI6e3ZhbHVlOm51bGx9fSxwb2ludHM6e2RpZmZ1c2U6e3ZhbHVlOm5ldyBzNHQoMTY3NzcyMTUpfSxvcGFjaXR5Ont2YWx1ZToxfSxzaXplOnt2YWx1ZToxfSxzY2FsZTp7dmFsdWU6MX0sbWFwOnt2YWx1ZTpudWxsfSxhbHBoYU1hcDp7dmFsdWU6bnVsbH0sdXZUcmFuc2Zvcm06e3ZhbHVlOm5ldyBBNXR9fSxzcHJpdGU6e2RpZmZ1c2U6e3ZhbHVlOm5ldyBzNHQoMTY3NzcyMTUpfSxvcGFjaXR5Ont2YWx1ZToxfSxjZW50ZXI6e3ZhbHVlOm5ldyBDNXQoLjUsLjUpfSxyb3RhdGlvbjp7dmFsdWU6MH0sbWFwOnt2YWx1ZTpudWxsfSxhbHBoYU1hcDp7dmFsdWU6bnVsbH0sdXZUcmFuc2Zvcm06e3ZhbHVlOm5ldyBBNXR9fX0seDZ0PXtiYXNpYzp7dW5pZm9ybXM6dDZ0KFtiNnQuY29tbW9uLGI2dC5zcGVjdWxhcm1hcCxiNnQuZW52bWFwLGI2dC5hb21hcCxiNnQubGlnaHRtYXAsYjZ0LmZvZ10pLHZlcnRleFNoYWRlcjp2NnQubWVzaGJhc2ljX3ZlcnQsZnJhZ21lbnRTaGFkZXI6djZ0Lm1lc2hiYXNpY19mcmFnfSxsYW1iZXJ0Ont1bmlmb3Jtczp0NnQoW2I2dC5jb21tb24sYjZ0LnNwZWN1bGFybWFwLGI2dC5lbnZtYXAsYjZ0LmFvbWFwLGI2dC5saWdodG1hcCxiNnQuZW1pc3NpdmVtYXAsYjZ0LmZvZyxiNnQubGlnaHRzLHtlbWlzc2l2ZTp7dmFsdWU6bmV3IHM0dCgwKX19XSksdmVydGV4U2hhZGVyOnY2dC5tZXNobGFtYmVydF92ZXJ0LGZyYWdtZW50U2hhZGVyOnY2dC5tZXNobGFtYmVydF9mcmFnfSxwaG9uZzp7dW5pZm9ybXM6dDZ0KFtiNnQuY29tbW9uLGI2dC5zcGVjdWxhcm1hcCxiNnQuZW52bWFwLGI2dC5hb21hcCxiNnQubGlnaHRtYXAsYjZ0LmVtaXNzaXZlbWFwLGI2dC5idW1wbWFwLGI2dC5ub3JtYWxtYXAsYjZ0LmRpc3BsYWNlbWVudG1hcCxiNnQuZm9nLGI2dC5saWdodHMse2VtaXNzaXZlOnt2YWx1ZTpuZXcgczR0KDApfSxzcGVjdWxhcjp7dmFsdWU6bmV3IHM0dCgxMTE4NDgxKX0sc2hpbmluZXNzOnt2YWx1ZTozMH19XSksdmVydGV4U2hhZGVyOnY2dC5tZXNocGhvbmdfdmVydCxmcmFnbWVudFNoYWRlcjp2NnQubWVzaHBob25nX2ZyYWd9LHN0YW5kYXJkOnt1bmlmb3Jtczp0NnQoW2I2dC5jb21tb24sYjZ0LmVudm1hcCxiNnQuYW9tYXAsYjZ0LmxpZ2h0bWFwLGI2dC5lbWlzc2l2ZW1hcCxiNnQuYnVtcG1hcCxiNnQubm9ybWFsbWFwLGI2dC5kaXNwbGFjZW1lbnRtYXAsYjZ0LnJvdWdobmVzc21hcCxiNnQubWV0YWxuZXNzbWFwLGI2dC5mb2csYjZ0LmxpZ2h0cyx7ZW1pc3NpdmU6e3ZhbHVlOm5ldyBzNHQoMCl9LHJvdWdobmVzczp7dmFsdWU6MX0sbWV0YWxuZXNzOnt2YWx1ZTowfSxlbnZNYXBJbnRlbnNpdHk6e3ZhbHVlOjF9fV0pLHZlcnRleFNoYWRlcjp2NnQubWVzaHBoeXNpY2FsX3ZlcnQsZnJhZ21lbnRTaGFkZXI6djZ0Lm1lc2hwaHlzaWNhbF9mcmFnfSx0b29uOnt1bmlmb3Jtczp0NnQoW2I2dC5jb21tb24sYjZ0LmFvbWFwLGI2dC5saWdodG1hcCxiNnQuZW1pc3NpdmVtYXAsYjZ0LmJ1bXBtYXAsYjZ0Lm5vcm1hbG1hcCxiNnQuZGlzcGxhY2VtZW50bWFwLGI2dC5ncmFkaWVudG1hcCxiNnQuZm9nLGI2dC5saWdodHMse2VtaXNzaXZlOnt2YWx1ZTpuZXcgczR0KDApfX1dKSx2ZXJ0ZXhTaGFkZXI6djZ0Lm1lc2h0b29uX3ZlcnQsZnJhZ21lbnRTaGFkZXI6djZ0Lm1lc2h0b29uX2ZyYWd9LG1hdGNhcDp7dW5pZm9ybXM6dDZ0KFtiNnQuY29tbW9uLGI2dC5idW1wbWFwLGI2dC5ub3JtYWxtYXAsYjZ0LmRpc3BsYWNlbWVudG1hcCxiNnQuZm9nLHttYXRjYXA6e3ZhbHVlOm51bGx9fV0pLHZlcnRleFNoYWRlcjp2NnQubWVzaG1hdGNhcF92ZXJ0LGZyYWdtZW50U2hhZGVyOnY2dC5tZXNobWF0Y2FwX2ZyYWd9LHBvaW50czp7dW5pZm9ybXM6dDZ0KFtiNnQucG9pbnRzLGI2dC5mb2ddKSx2ZXJ0ZXhTaGFkZXI6djZ0LnBvaW50c192ZXJ0LGZyYWdtZW50U2hhZGVyOnY2dC5wb2ludHNfZnJhZ30sZGFzaGVkOnt1bmlmb3Jtczp0NnQoW2I2dC5jb21tb24sYjZ0LmZvZyx7c2NhbGU6e3ZhbHVlOjF9LGRhc2hTaXplOnt2YWx1ZToxfSx0b3RhbFNpemU6e3ZhbHVlOjJ9fV0pLHZlcnRleFNoYWRlcjp2NnQubGluZWRhc2hlZF92ZXJ0LGZyYWdtZW50U2hhZGVyOnY2dC5saW5lZGFzaGVkX2ZyYWd9LGRlcHRoOnt1bmlmb3Jtczp0NnQoW2I2dC5jb21tb24sYjZ0LmRpc3BsYWNlbWVudG1hcF0pLHZlcnRleFNoYWRlcjp2NnQuZGVwdGhfdmVydCxmcmFnbWVudFNoYWRlcjp2NnQuZGVwdGhfZnJhZ30sbm9ybWFsOnt1bmlmb3Jtczp0NnQoW2I2dC5jb21tb24sYjZ0LmJ1bXBtYXAsYjZ0Lm5vcm1hbG1hcCxiNnQuZGlzcGxhY2VtZW50bWFwLHtvcGFjaXR5Ont2YWx1ZToxfX1dKSx2ZXJ0ZXhTaGFkZXI6djZ0Lm5vcm1hbF92ZXJ0LGZyYWdtZW50U2hhZGVyOnY2dC5ub3JtYWxfZnJhZ30sc3ByaXRlOnt1bmlmb3Jtczp0NnQoW2I2dC5zcHJpdGUsYjZ0LmZvZ10pLHZlcnRleFNoYWRlcjp2NnQuc3ByaXRlX3ZlcnQsZnJhZ21lbnRTaGFkZXI6djZ0LnNwcml0ZV9mcmFnfSxiYWNrZ3JvdW5kOnt1bmlmb3Jtczp7dXZUcmFuc2Zvcm06e3ZhbHVlOm5ldyBBNXR9LHQyRDp7dmFsdWU6bnVsbH19LHZlcnRleFNoYWRlcjp2NnQuYmFja2dyb3VuZF92ZXJ0LGZyYWdtZW50U2hhZGVyOnY2dC5iYWNrZ3JvdW5kX2ZyYWd9LGN1YmU6e3VuaWZvcm1zOnQ2dChbYjZ0LmVudm1hcCx7b3BhY2l0eTp7dmFsdWU6MX19XSksdmVydGV4U2hhZGVyOnY2dC5jdWJlX3ZlcnQsZnJhZ21lbnRTaGFkZXI6djZ0LmN1YmVfZnJhZ30sZXF1aXJlY3Q6e3VuaWZvcm1zOnt0RXF1aXJlY3Q6e3ZhbHVlOm51bGx9fSx2ZXJ0ZXhTaGFkZXI6djZ0LmVxdWlyZWN0X3ZlcnQsZnJhZ21lbnRTaGFkZXI6djZ0LmVxdWlyZWN0X2ZyYWd9LGRpc3RhbmNlUkdCQTp7dW5pZm9ybXM6dDZ0KFtiNnQuY29tbW9uLGI2dC5kaXNwbGFjZW1lbnRtYXAse3JlZmVyZW5jZVBvc2l0aW9uOnt2YWx1ZTpuZXcgSDV0fSxuZWFyRGlzdGFuY2U6e3ZhbHVlOjF9LGZhckRpc3RhbmNlOnt2YWx1ZToxZTN9fV0pLHZlcnRleFNoYWRlcjp2NnQuZGlzdGFuY2VSR0JBX3ZlcnQsZnJhZ21lbnRTaGFkZXI6djZ0LmRpc3RhbmNlUkdCQV9mcmFnfSxzaGFkb3c6e3VuaWZvcm1zOnQ2dChbYjZ0LmxpZ2h0cyxiNnQuZm9nLHtjb2xvcjp7dmFsdWU6bmV3IHM0dCgwKX0sb3BhY2l0eTp7dmFsdWU6MX19XSksdmVydGV4U2hhZGVyOnY2dC5zaGFkb3dfdmVydCxmcmFnbWVudFNoYWRlcjp2NnQuc2hhZG93X2ZyYWd9fTtmdW5jdGlvbiB3NnQodCxlLG4saSxyKXtjb25zdCBvPW5ldyBzNHQoMCk7bGV0IGEscyxsPTAsYz1udWxsLHU9MCxoPW51bGw7ZnVuY3Rpb24gZCh0LGUpe24uYnVmZmVycy5jb2xvci5zZXRDbGVhcih0LnIsdC5nLHQuYixlLHIpfXJldHVybntnZXRDbGVhckNvbG9yOmZ1bmN0aW9uKCl7cmV0dXJuIG99LHNldENsZWFyQ29sb3I6ZnVuY3Rpb24odCxlPTEpe28uc2V0KHQpLGw9ZSxkKG8sbCl9LGdldENsZWFyQWxwaGE6ZnVuY3Rpb24oKXtyZXR1cm4gbH0sc2V0Q2xlYXJBbHBoYTpmdW5jdGlvbih0KXtsPXQsZChvLGwpfSxyZW5kZXI6ZnVuY3Rpb24gcChuLHIpe2xldCBwPSExLGY9ITA9PT1yLmlzU2NlbmU/ci5iYWNrZ3JvdW5kOm51bGw7ZiYmZi5pc1RleHR1cmUmJihmPWUuZ2V0KGYpKTtjb25zdCBtPXQueHIsZz1tLmdldFNlc3Npb24mJm0uZ2V0U2Vzc2lvbigpO2cmJiJhZGRpdGl2ZSI9PT1nLmVudmlyb25tZW50QmxlbmRNb2RlJiYoZj1udWxsKSxudWxsPT09Zj9kKG8sbCk6ZiYmZi5pc0NvbG9yJiYoZChmLDEpLHA9ITApLCh0LmF1dG9DbGVhcnx8cCkmJnQuY2xlYXIodC5hdXRvQ2xlYXJDb2xvcix0LmF1dG9DbGVhckRlcHRoLHQuYXV0b0NsZWFyU3RlbmNpbCksZiYmKGYuaXNDdWJlVGV4dHVyZXx8Zi5tYXBwaW5nPT09bzJ0KT8odm9pZCAwPT09cyYmKHM9bmV3IEs0dChuZXcgSjR0KDEsMSwxKSxuZXcgbjZ0KHtuYW1lOiJCYWNrZ3JvdW5kQ3ViZU1hdGVyaWFsIix1bmlmb3JtczpRNHQoeDZ0LmN1YmUudW5pZm9ybXMpLHZlcnRleFNoYWRlcjp4NnQuY3ViZS52ZXJ0ZXhTaGFkZXIsZnJhZ21lbnRTaGFkZXI6eDZ0LmN1YmUuZnJhZ21lbnRTaGFkZXIsc2lkZToxLGRlcHRoVGVzdDohMSxkZXB0aFdyaXRlOiExLGZvZzohMX0pKSxzLmdlb21ldHJ5LmRlbGV0ZUF0dHJpYnV0ZSgibm9ybWFsIikscy5nZW9tZXRyeS5kZWxldGVBdHRyaWJ1dGUoInV2Iikscy5vbkJlZm9yZVJlbmRlcj1mdW5jdGlvbih0LGUsbil7dGhpcy5tYXRyaXhXb3JsZC5jb3B5UG9zaXRpb24obi5tYXRyaXhXb3JsZCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLm1hdGVyaWFsLCJlbnZNYXAiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51bmlmb3Jtcy5lbnZNYXAudmFsdWV9fSksaS51cGRhdGUocykpLHMubWF0ZXJpYWwudW5pZm9ybXMuZW52TWFwLnZhbHVlPWYscy5tYXRlcmlhbC51bmlmb3Jtcy5mbGlwRW52TWFwLnZhbHVlPWYuaXNDdWJlVGV4dHVyZSYmITE9PT1mLmlzUmVuZGVyVGFyZ2V0VGV4dHVyZT8tMToxLGM9PT1mJiZ1PT09Zi52ZXJzaW9uJiZoPT09dC50b25lTWFwcGluZ3x8KHMubWF0ZXJpYWwubmVlZHNVcGRhdGU9ITAsYz1mLHU9Zi52ZXJzaW9uLGg9dC50b25lTWFwcGluZyksbi51bnNoaWZ0KHMscy5nZW9tZXRyeSxzLm1hdGVyaWFsLDAsMCxudWxsKSk6ZiYmZi5pc1RleHR1cmUmJih2b2lkIDA9PT1hJiYoYT1uZXcgSzR0KG5ldyB5NnQoMiwyKSxuZXcgbjZ0KHtuYW1lOiJCYWNrZ3JvdW5kTWF0ZXJpYWwiLHVuaWZvcm1zOlE0dCh4NnQuYmFja2dyb3VuZC51bmlmb3JtcyksdmVydGV4U2hhZGVyOng2dC5iYWNrZ3JvdW5kLnZlcnRleFNoYWRlcixmcmFnbWVudFNoYWRlcjp4NnQuYmFja2dyb3VuZC5mcmFnbWVudFNoYWRlcixzaWRlOjAsZGVwdGhUZXN0OiExLGRlcHRoV3JpdGU6ITEsZm9nOiExfSkpLGEuZ2VvbWV0cnkuZGVsZXRlQXR0cmlidXRlKCJub3JtYWwiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYS5tYXRlcmlhbCwibWFwIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudW5pZm9ybXMudDJELnZhbHVlfX0pLGkudXBkYXRlKGEpKSxhLm1hdGVyaWFsLnVuaWZvcm1zLnQyRC52YWx1ZT1mLCEwPT09Zi5tYXRyaXhBdXRvVXBkYXRlJiZmLnVwZGF0ZU1hdHJpeCgpLGEubWF0ZXJpYWwudW5pZm9ybXMudXZUcmFuc2Zvcm0udmFsdWUuY29weShmLm1hdHJpeCksYz09PWYmJnU9PT1mLnZlcnNpb24mJmg9PT10LnRvbmVNYXBwaW5nfHwoYS5tYXRlcmlhbC5uZWVkc1VwZGF0ZT0hMCxjPWYsdT1mLnZlcnNpb24saD10LnRvbmVNYXBwaW5nKSxuLnVuc2hpZnQoYSxhLmdlb21ldHJ5LGEubWF0ZXJpYWwsMCwwLG51bGwpKX19fWZ1bmN0aW9uIFM2dCh0LGUsbixpKXtjb25zdCByPXQuZ2V0UGFyYW1ldGVyKDM0OTIxKSxvPWkuaXNXZWJHTDI/bnVsbDplLmdldCgiT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKSxhPWkuaXNXZWJHTDJ8fG51bGwhPT1vLHM9e30sbD1kKG51bGwpO2xldCBjPWw7ZnVuY3Rpb24gdShlKXtyZXR1cm4gaS5pc1dlYkdMMj90LmJpbmRWZXJ0ZXhBcnJheShlKTpvLmJpbmRWZXJ0ZXhBcnJheU9FUyhlKX1mdW5jdGlvbiBoKGUpe3JldHVybiBpLmlzV2ViR0wyP3QuZGVsZXRlVmVydGV4QXJyYXkoZSk6by5kZWxldGVWZXJ0ZXhBcnJheU9FUyhlKX1mdW5jdGlvbiBkKHQpe2NvbnN0IGU9W10sbj1bXSxpPVtdO2ZvcihsZXQgdD0wO3Q8cjt0KyspZVt0XT0wLG5bdF09MCxpW3RdPTA7cmV0dXJue2dlb21ldHJ5Om51bGwscHJvZ3JhbTpudWxsLHdpcmVmcmFtZTohMSxuZXdBdHRyaWJ1dGVzOmUsZW5hYmxlZEF0dHJpYnV0ZXM6bixhdHRyaWJ1dGVEaXZpc29yczppLG9iamVjdDp0LGF0dHJpYnV0ZXM6e30saW5kZXg6bnVsbH19ZnVuY3Rpb24gcCgpe2NvbnN0IHQ9Yy5uZXdBdHRyaWJ1dGVzO2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKyl0W2VdPTB9ZnVuY3Rpb24gZih0KXttKHQsMCl9ZnVuY3Rpb24gbShuLHIpe2NvbnN0IG89Yy5lbmFibGVkQXR0cmlidXRlcyxhPWMuYXR0cmlidXRlRGl2aXNvcnM7aWYoYy5uZXdBdHRyaWJ1dGVzW25dPTEsMD09PW9bbl0mJih0LmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KG4pLG9bbl09MSksYVtuXSE9PXIpeyhpLmlzV2ViR0wyP3Q6ZS5nZXQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSlbaS5pc1dlYkdMMj8idmVydGV4QXR0cmliRGl2aXNvciI6InZlcnRleEF0dHJpYkRpdmlzb3JBTkdMRSJdKG4sciksYVtuXT1yfX1mdW5jdGlvbiBnKCl7Y29uc3QgZT1jLm5ld0F0dHJpYnV0ZXMsbj1jLmVuYWJsZWRBdHRyaWJ1dGVzO2ZvcihsZXQgaT0wLHI9bi5sZW5ndGg7aTxyO2krKyluW2ldIT09ZVtpXSYmKHQuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KGkpLG5baV09MCl9ZnVuY3Rpb24gXyhlLG4scixvLGEscyl7ITAhPT1pLmlzV2ViR0wyfHw1MTI0IT09ciYmNTEyNSE9PXI/dC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGUsbixyLG8sYSxzKTp0LnZlcnRleEF0dHJpYklQb2ludGVyKGUsbixyLGEscyl9ZnVuY3Rpb24geSgpe3YoKSxjIT09bCYmKGM9bCx1KGMub2JqZWN0KSl9ZnVuY3Rpb24gdigpe2wuZ2VvbWV0cnk9bnVsbCxsLnByb2dyYW09bnVsbCxsLndpcmVmcmFtZT0hMX1yZXR1cm57c2V0dXA6ZnVuY3Rpb24gYihyLGwsaCx5LHYpe2xldCBiPSExO2lmKGEpe2NvbnN0IGU9KGZ1bmN0aW9uIHgoZSxuLHIpe2NvbnN0IGE9ITA9PT1yLndpcmVmcmFtZTtsZXQgbD1zW2UuaWRdO3ZvaWQgMD09PWwmJihsPXt9LHNbZS5pZF09bCk7bGV0IGM9bFtuLmlkXTt2b2lkIDA9PT1jJiYoYz17fSxsW24uaWRdPWMpO2xldCB1PWNbYV07dm9pZCAwPT09dSYmKHU9ZCgoZnVuY3Rpb24gaCgpe3JldHVybiBpLmlzV2ViR0wyP3QuY3JlYXRlVmVydGV4QXJyYXkoKTpvLmNyZWF0ZVZlcnRleEFycmF5T0VTKCl9KSgpKSxjW2FdPXUpO3JldHVybiB1fSkoeSxoLGwpO2MhPT1lJiYoYz1lLHUoYy5vYmplY3QpKSxiPShmdW5jdGlvbiB3KHQsZSl7Y29uc3Qgbj1jLmF0dHJpYnV0ZXMsaT10LmF0dHJpYnV0ZXM7bGV0IHI9MDtmb3IoY29uc3QgdCBpbiBpKXtjb25zdCBlPW5bdF0sbz1pW3RdO2lmKHZvaWQgMD09PWUpcmV0dXJuITA7aWYoZS5hdHRyaWJ1dGUhPT1vKXJldHVybiEwO2lmKGUuZGF0YSE9PW8uZGF0YSlyZXR1cm4hMDtyKyt9cmV0dXJuIGMuYXR0cmlidXRlc051bSE9PXJ8fGMuaW5kZXghPT1lfSkoeSx2KSxiJiYoZnVuY3Rpb24gUyh0LGUpe2NvbnN0IG49e30saT10LmF0dHJpYnV0ZXM7bGV0IHI9MDtmb3IoY29uc3QgdCBpbiBpKXtjb25zdCBlPWlbdF0sbz17fTtvLmF0dHJpYnV0ZT1lLGUuZGF0YSYmKG8uZGF0YT1lLmRhdGEpLG5bdF09byxyKyt9Yy5hdHRyaWJ1dGVzPW4sYy5hdHRyaWJ1dGVzTnVtPXIsYy5pbmRleD1lfSkoeSx2KX1lbHNle2NvbnN0IHQ9ITA9PT1sLndpcmVmcmFtZTtjLmdlb21ldHJ5PT09eS5pZCYmYy5wcm9ncmFtPT09aC5pZCYmYy53aXJlZnJhbWU9PT10fHwoYy5nZW9tZXRyeT15LmlkLGMucHJvZ3JhbT1oLmlkLGMud2lyZWZyYW1lPXQsYj0hMCl9ITA9PT1yLmlzSW5zdGFuY2VkTWVzaCYmKGI9ITApLG51bGwhPT12JiZuLnVwZGF0ZSh2LDM0OTYzKSxiJiYoIShmdW5jdGlvbiBNKHIsbyxhLHMpe2lmKCExPT09aS5pc1dlYkdMMiYmKHIuaXNJbnN0YW5jZWRNZXNofHxzLmlzSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnkpJiZudWxsPT09ZS5nZXQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSlyZXR1cm47cCgpO2NvbnN0IGw9cy5hdHRyaWJ1dGVzLGM9YS5nZXRBdHRyaWJ1dGVzKCksdT1vLmRlZmF1bHRBdHRyaWJ1dGVWYWx1ZXM7Zm9yKGNvbnN0IGUgaW4gYyl7Y29uc3QgaT1jW2VdO2lmKGk+PTApe2NvbnN0IG89bFtlXTtpZih2b2lkIDAhPT1vKXtjb25zdCBlPW8ubm9ybWFsaXplZCxyPW8uaXRlbVNpemUsYT1uLmdldChvKTtpZih2b2lkIDA9PT1hKWNvbnRpbnVlO2NvbnN0IGw9YS5idWZmZXIsYz1hLnR5cGUsdT1hLmJ5dGVzUGVyRWxlbWVudDtpZihvLmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUpe2NvbnN0IG49by5kYXRhLGE9bi5zdHJpZGUsaD1vLm9mZnNldDtuJiZuLmlzSW5zdGFuY2VkSW50ZXJsZWF2ZWRCdWZmZXI/KG0oaSxuLm1lc2hQZXJBdHRyaWJ1dGUpLHZvaWQgMD09PXMuX21heEluc3RhbmNlQ291bnQmJihzLl9tYXhJbnN0YW5jZUNvdW50PW4ubWVzaFBlckF0dHJpYnV0ZSpuLmNvdW50KSk6ZihpKSx0LmJpbmRCdWZmZXIoMzQ5NjIsbCksXyhpLHIsYyxlLGEqdSxoKnUpfWVsc2Ugby5pc0luc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZT8obShpLG8ubWVzaFBlckF0dHJpYnV0ZSksdm9pZCAwPT09cy5fbWF4SW5zdGFuY2VDb3VudCYmKHMuX21heEluc3RhbmNlQ291bnQ9by5tZXNoUGVyQXR0cmlidXRlKm8uY291bnQpKTpmKGkpLHQuYmluZEJ1ZmZlcigzNDk2MixsKSxfKGkscixjLGUsMCwwKX1lbHNlIGlmKCJpbnN0YW5jZU1hdHJpeCI9PT1lKXtjb25zdCBlPW4uZ2V0KHIuaW5zdGFuY2VNYXRyaXgpO2lmKHZvaWQgMD09PWUpY29udGludWU7Y29uc3Qgbz1lLmJ1ZmZlcixhPWUudHlwZTttKGkrMCwxKSxtKGkrMSwxKSxtKGkrMiwxKSxtKGkrMywxKSx0LmJpbmRCdWZmZXIoMzQ5NjIsbyksdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGkrMCw0LGEsITEsNjQsMCksdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGkrMSw0LGEsITEsNjQsMTYpLHQudmVydGV4QXR0cmliUG9pbnRlcihpKzIsNCxhLCExLDY0LDMyKSx0LnZlcnRleEF0dHJpYlBvaW50ZXIoaSszLDQsYSwhMSw2NCw0OCl9ZWxzZSBpZigiaW5zdGFuY2VDb2xvciI9PT1lKXtjb25zdCBlPW4uZ2V0KHIuaW5zdGFuY2VDb2xvcik7aWYodm9pZCAwPT09ZSljb250aW51ZTtjb25zdCBvPWUuYnVmZmVyLGE9ZS50eXBlO20oaSwxKSx0LmJpbmRCdWZmZXIoMzQ5NjIsbyksdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGksMyxhLCExLDEyLDApfWVsc2UgaWYodm9pZCAwIT09dSl7Y29uc3Qgbj11W2VdO2lmKHZvaWQgMCE9PW4pc3dpdGNoKG4ubGVuZ3RoKXtjYXNlIDI6dC52ZXJ0ZXhBdHRyaWIyZnYoaSxuKTticmVhaztjYXNlIDM6dC52ZXJ0ZXhBdHRyaWIzZnYoaSxuKTticmVhaztjYXNlIDQ6dC52ZXJ0ZXhBdHRyaWI0ZnYoaSxuKTticmVhaztkZWZhdWx0OnQudmVydGV4QXR0cmliMWZ2KGksbil9fX19ZygpfSkocixsLGgseSksbnVsbCE9PXYmJnQuYmluZEJ1ZmZlcigzNDk2MyxuLmdldCh2KS5idWZmZXIpKX0scmVzZXQ6eSxyZXNldERlZmF1bHRTdGF0ZTp2LGRpc3Bvc2U6ZnVuY3Rpb24geCgpe3koKTtmb3IoY29uc3QgdCBpbiBzKXtjb25zdCBlPXNbdF07Zm9yKGNvbnN0IHQgaW4gZSl7Y29uc3Qgbj1lW3RdO2Zvcihjb25zdCB0IGluIG4paChuW3RdLm9iamVjdCksZGVsZXRlIG5bdF07ZGVsZXRlIGVbdF19ZGVsZXRlIHNbdF19fSxyZWxlYXNlU3RhdGVzT2ZHZW9tZXRyeTpmdW5jdGlvbiB3KHQpe2lmKHZvaWQgMD09PXNbdC5pZF0pcmV0dXJuO2NvbnN0IGU9c1t0LmlkXTtmb3IoY29uc3QgdCBpbiBlKXtjb25zdCBuPWVbdF07Zm9yKGNvbnN0IHQgaW4gbiloKG5bdF0ub2JqZWN0KSxkZWxldGUgblt0XTtkZWxldGUgZVt0XX1kZWxldGUgc1t0LmlkXX0scmVsZWFzZVN0YXRlc09mUHJvZ3JhbTpmdW5jdGlvbiBTKHQpe2Zvcihjb25zdCBlIGluIHMpe2NvbnN0IG49c1tlXTtpZih2b2lkIDA9PT1uW3QuaWRdKWNvbnRpbnVlO2NvbnN0IGk9blt0LmlkXTtmb3IoY29uc3QgdCBpbiBpKWgoaVt0XS5vYmplY3QpLGRlbGV0ZSBpW3RdO2RlbGV0ZSBuW3QuaWRdfX0saW5pdEF0dHJpYnV0ZXM6cCxlbmFibGVBdHRyaWJ1dGU6ZixkaXNhYmxlVW51c2VkQXR0cmlidXRlczpnfX1mdW5jdGlvbiBNNnQodCxlLG4saSl7Y29uc3Qgcj1pLmlzV2ViR0wyO2xldCBvO3RoaXMuc2V0TW9kZT1mdW5jdGlvbiBhKHQpe289dH0sdGhpcy5yZW5kZXI9ZnVuY3Rpb24gcyhlLGkpe3QuZHJhd0FycmF5cyhvLGUsaSksbi51cGRhdGUoaSxvLDEpfSx0aGlzLnJlbmRlckluc3RhbmNlcz1mdW5jdGlvbiBsKGksYSxzKXtpZigwPT09cylyZXR1cm47bGV0IGwsYztpZihyKWw9dCxjPSJkcmF3QXJyYXlzSW5zdGFuY2VkIjtlbHNlIGlmKGw9ZS5nZXQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSxjPSJkcmF3QXJyYXlzSW5zdGFuY2VkQU5HTEUiLG51bGw9PT1sKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMQnVmZmVyUmVuZGVyZXI6IHVzaW5nIFRIUkVFLkluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5IGJ1dCBoYXJkd2FyZSBkb2VzIG5vdCBzdXBwb3J0IGV4dGVuc2lvbiBBTkdMRV9pbnN0YW5jZWRfYXJyYXlzLiIpO2xbY10obyxpLGEscyksbi51cGRhdGUoYSxvLHMpfX1mdW5jdGlvbiBFNnQodCxlLG4pe2xldCBpO2Z1bmN0aW9uIHIoZSl7aWYoImhpZ2hwIj09PWUpe2lmKHQuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KDM1NjMzLDM2MzM4KS5wcmVjaXNpb24+MCYmdC5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoMzU2MzIsMzYzMzgpLnByZWNpc2lvbj4wKXJldHVybiJoaWdocCI7ZT0ibWVkaXVtcCJ9cmV0dXJuIm1lZGl1bXAiPT09ZSYmdC5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoMzU2MzMsMzYzMzcpLnByZWNpc2lvbj4wJiZ0LmdldFNoYWRlclByZWNpc2lvbkZvcm1hdCgzNTYzMiwzNjMzNykucHJlY2lzaW9uPjA/Im1lZGl1bXAiOiJsb3dwIn1jb25zdCBvPSJ1bmRlZmluZWQiIT10eXBlb2YgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCYmdCBpbnN0YW5jZW9mIFdlYkdMMlJlbmRlcmluZ0NvbnRleHR8fCJ1bmRlZmluZWQiIT10eXBlb2YgV2ViR0wyQ29tcHV0ZVJlbmRlcmluZ0NvbnRleHQmJnQgaW5zdGFuY2VvZiBXZWJHTDJDb21wdXRlUmVuZGVyaW5nQ29udGV4dDtsZXQgYT12b2lkIDAhPT1uLnByZWNpc2lvbj9uLnByZWNpc2lvbjoiaGlnaHAiO2NvbnN0IHM9cihhKTtzIT09YSYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjoiLGEsIm5vdCBzdXBwb3J0ZWQsIHVzaW5nIixzLCJpbnN0ZWFkLiIpLGE9cyk7Y29uc3QgbD1vfHxlLmhhcygiV0VCR0xfZHJhd19idWZmZXJzIiksYz0hMD09PW4ubG9nYXJpdGhtaWNEZXB0aEJ1ZmZlcix1PXQuZ2V0UGFyYW1ldGVyKDM0OTMwKSxoPXQuZ2V0UGFyYW1ldGVyKDM1NjYwKSxkPXQuZ2V0UGFyYW1ldGVyKDMzNzkpLHA9dC5nZXRQYXJhbWV0ZXIoMzQwNzYpLGY9dC5nZXRQYXJhbWV0ZXIoMzQ5MjEpLG09dC5nZXRQYXJhbWV0ZXIoMzYzNDcpLGc9dC5nZXRQYXJhbWV0ZXIoMzYzNDgpLF89dC5nZXRQYXJhbWV0ZXIoMzYzNDkpLHk9aD4wLHY9b3x8ZS5oYXMoIk9FU190ZXh0dXJlX2Zsb2F0Iik7cmV0dXJue2lzV2ViR0wyOm8sZHJhd0J1ZmZlcnM6bCxnZXRNYXhBbmlzb3Ryb3B5OmZ1bmN0aW9uIGIoKXtpZih2b2lkIDAhPT1pKXJldHVybiBpO2lmKCEwPT09ZS5oYXMoIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpKXtjb25zdCBuPWUuZ2V0KCJFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKTtpPXQuZ2V0UGFyYW1ldGVyKG4uTUFYX1RFWFRVUkVfTUFYX0FOSVNPVFJPUFlfRVhUKX1lbHNlIGk9MDtyZXR1cm4gaX0sZ2V0TWF4UHJlY2lzaW9uOnIscHJlY2lzaW9uOmEsbG9nYXJpdGhtaWNEZXB0aEJ1ZmZlcjpjLG1heFRleHR1cmVzOnUsbWF4VmVydGV4VGV4dHVyZXM6aCxtYXhUZXh0dXJlU2l6ZTpkLG1heEN1YmVtYXBTaXplOnAsbWF4QXR0cmlidXRlczpmLG1heFZlcnRleFVuaWZvcm1zOm0sbWF4VmFyeWluZ3M6ZyxtYXhGcmFnbWVudFVuaWZvcm1zOl8sdmVydGV4VGV4dHVyZXM6eSxmbG9hdEZyYWdtZW50VGV4dHVyZXM6dixmbG9hdFZlcnRleFRleHR1cmVzOnkmJnYsbWF4U2FtcGxlczpvP3QuZ2V0UGFyYW1ldGVyKDM2MTgzKTowfX1mdW5jdGlvbiBUNnQodCl7Y29uc3QgZT10aGlzO2xldCBuPW51bGwsaT0wLHI9ITEsbz0hMTtjb25zdCBhPW5ldyBkNnQscz1uZXcgQTV0LGw9e3ZhbHVlOm51bGwsbmVlZHNVcGRhdGU6ITF9O2Z1bmN0aW9uIGMoKXtsLnZhbHVlIT09biYmKGwudmFsdWU9bixsLm5lZWRzVXBkYXRlPWk+MCksZS5udW1QbGFuZXM9aSxlLm51bUludGVyc2VjdGlvbj0wfWZ1bmN0aW9uIHUodCxuLGkscil7Y29uc3Qgbz1udWxsIT09dD90Lmxlbmd0aDowO2xldCBjPW51bGw7aWYoMCE9PW8pe2lmKGM9bC52YWx1ZSwhMCE9PXJ8fG51bGw9PT1jKXtjb25zdCBlPWkrNCpvLHI9bi5tYXRyaXhXb3JsZEludmVyc2U7cy5nZXROb3JtYWxNYXRyaXgociksKG51bGw9PT1jfHxjLmxlbmd0aDxlKSYmKGM9bmV3IEZsb2F0MzJBcnJheShlKSk7Zm9yKGxldCBlPTAsbj1pO2UhPT1vOysrZSxuKz00KWEuY29weSh0W2VdKS5hcHBseU1hdHJpeDQocixzKSxhLm5vcm1hbC50b0FycmF5KGMsbiksY1tuKzNdPWEuY29uc3RhbnR9bC52YWx1ZT1jLGwubmVlZHNVcGRhdGU9ITB9cmV0dXJuIGUubnVtUGxhbmVzPW8sZS5udW1JbnRlcnNlY3Rpb249MCxjfXRoaXMudW5pZm9ybT1sLHRoaXMubnVtUGxhbmVzPTAsdGhpcy5udW1JbnRlcnNlY3Rpb249MCx0aGlzLmluaXQ9ZnVuY3Rpb24odCxlLG8pe2NvbnN0IGE9MCE9PXQubGVuZ3RofHxlfHwwIT09aXx8cjtyZXR1cm4gcj1lLG49dSh0LG8sMCksaT10Lmxlbmd0aCxhfSx0aGlzLmJlZ2luU2hhZG93cz1mdW5jdGlvbigpe289ITAsdShudWxsKX0sdGhpcy5lbmRTaGFkb3dzPWZ1bmN0aW9uKCl7bz0hMSxjKCl9LHRoaXMuc2V0U3RhdGU9ZnVuY3Rpb24oZSxhLHMpe2NvbnN0IGg9ZS5jbGlwcGluZ1BsYW5lcyxkPWUuY2xpcEludGVyc2VjdGlvbixwPWUuY2xpcFNoYWRvd3MsZj10LmdldChlKTtpZighcnx8bnVsbD09PWh8fDA9PT1oLmxlbmd0aHx8byYmIXApbz91KG51bGwpOmMoKTtlbHNle2NvbnN0IHQ9bz8wOmksZT00KnQ7bGV0IHI9Zi5jbGlwcGluZ1N0YXRlfHxudWxsO2wudmFsdWU9cixyPXUoaCxhLGUscyk7Zm9yKGxldCB0PTA7dCE9PWU7Kyt0KXJbdF09blt0XTtmLmNsaXBwaW5nU3RhdGU9cix0aGlzLm51bUludGVyc2VjdGlvbj1kP3RoaXMubnVtUGxhbmVzOjAsdGhpcy5udW1QbGFuZXMrPXR9fX1mdW5jdGlvbiBDNnQodCl7bGV0IGU9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gbih0LGUpe3JldHVybiBlPT09aTJ0P3QubWFwcGluZz1lMnQ6ZT09PXIydCYmKHQubWFwcGluZz1uMnQpLHR9ZnVuY3Rpb24gaSh0KXtjb25zdCBuPXQudGFyZ2V0O24ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsaSk7Y29uc3Qgcj1lLmdldChuKTt2b2lkIDAhPT1yJiYoZS5kZWxldGUobiksci5kaXNwb3NlKCkpfXJldHVybntnZXQ6ZnVuY3Rpb24gcihvKXtpZihvJiZvLmlzVGV4dHVyZSYmITE9PT1vLmlzUmVuZGVyVGFyZ2V0VGV4dHVyZSl7Y29uc3Qgcj1vLm1hcHBpbmc7aWYocj09PWkydHx8cj09PXIydCl7aWYoZS5oYXMobykpe3JldHVybiBuKGUuZ2V0KG8pLnRleHR1cmUsby5tYXBwaW5nKX17Y29uc3Qgcj1vLmltYWdlO2lmKHImJnIuaGVpZ2h0PjApe2NvbnN0IGE9dC5nZXRSZW5kZXJUYXJnZXQoKSxzPW5ldyBsNnQoci5oZWlnaHQvMik7cmV0dXJuIHMuZnJvbUVxdWlyZWN0YW5ndWxhclRleHR1cmUodCxvKSxlLnNldChvLHMpLHQuc2V0UmVuZGVyVGFyZ2V0KGEpLG8uYWRkRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsaSksbihzLnRleHR1cmUsby5tYXBwaW5nKX1yZXR1cm4gbnVsbH19fXJldHVybiBvfSxkaXNwb3NlOmZ1bmN0aW9uIG8oKXtlPW5ldyBXZWFrTWFwfX19eDZ0LnBoeXNpY2FsPXt1bmlmb3Jtczp0NnQoW3g2dC5zdGFuZGFyZC51bmlmb3Jtcyx7Y2xlYXJjb2F0Ont2YWx1ZTowfSxjbGVhcmNvYXRNYXA6e3ZhbHVlOm51bGx9LGNsZWFyY29hdFJvdWdobmVzczp7dmFsdWU6MH0sY2xlYXJjb2F0Um91Z2huZXNzTWFwOnt2YWx1ZTpudWxsfSxjbGVhcmNvYXROb3JtYWxTY2FsZTp7dmFsdWU6bmV3IEM1dCgxLDEpfSxjbGVhcmNvYXROb3JtYWxNYXA6e3ZhbHVlOm51bGx9LHNoZWVuOnt2YWx1ZTpuZXcgczR0KDApfSx0cmFuc21pc3Npb246e3ZhbHVlOjB9LHRyYW5zbWlzc2lvbk1hcDp7dmFsdWU6bnVsbH0sdHJhbnNtaXNzaW9uU2FtcGxlclNpemU6e3ZhbHVlOm5ldyBDNXR9LHRyYW5zbWlzc2lvblNhbXBsZXJNYXA6e3ZhbHVlOm51bGx9LHRoaWNrbmVzczp7dmFsdWU6MH0sdGhpY2tuZXNzTWFwOnt2YWx1ZTpudWxsfSxhdHRlbnVhdGlvbkRpc3RhbmNlOnt2YWx1ZTowfSxhdHRlbnVhdGlvblRpbnQ6e3ZhbHVlOm5ldyBzNHQoMCl9LHNwZWN1bGFySW50ZW5zaXR5Ont2YWx1ZTowfSxzcGVjdWxhckludGVuc2l0eU1hcDp7dmFsdWU6bnVsbH0sc3BlY3VsYXJUaW50Ont2YWx1ZTpuZXcgczR0KDEsMSwxKX0sc3BlY3VsYXJUaW50TWFwOnt2YWx1ZTpudWxsfX1dKSx2ZXJ0ZXhTaGFkZXI6djZ0Lm1lc2hwaHlzaWNhbF92ZXJ0LGZyYWdtZW50U2hhZGVyOnY2dC5tZXNocGh5c2ljYWxfZnJhZ307Y2xhc3MgQTZ0IGV4dGVuZHMgaTZ0e2NvbnN0cnVjdG9yKHQ9LTEsZT0xLG49MSxpPS0xLHI9LjEsbz0yZTMpe3N1cGVyKCksdGhpcy50eXBlPSJPcnRob2dyYXBoaWNDYW1lcmEiLHRoaXMuem9vbT0xLHRoaXMudmlldz1udWxsLHRoaXMubGVmdD10LHRoaXMucmlnaHQ9ZSx0aGlzLnRvcD1uLHRoaXMuYm90dG9tPWksdGhpcy5uZWFyPXIsdGhpcy5mYXI9byx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX1jb3B5KHQsZSl7cmV0dXJuIHN1cGVyLmNvcHkodCxlKSx0aGlzLmxlZnQ9dC5sZWZ0LHRoaXMucmlnaHQ9dC5yaWdodCx0aGlzLnRvcD10LnRvcCx0aGlzLmJvdHRvbT10LmJvdHRvbSx0aGlzLm5lYXI9dC5uZWFyLHRoaXMuZmFyPXQuZmFyLHRoaXMuem9vbT10Lnpvb20sdGhpcy52aWV3PW51bGw9PT10LnZpZXc/bnVsbDpPYmplY3QuYXNzaWduKHt9LHQudmlldyksdGhpc31zZXRWaWV3T2Zmc2V0KHQsZSxuLGkscixvKXtudWxsPT09dGhpcy52aWV3JiYodGhpcy52aWV3PXtlbmFibGVkOiEwLGZ1bGxXaWR0aDoxLGZ1bGxIZWlnaHQ6MSxvZmZzZXRYOjAsb2Zmc2V0WTowLHdpZHRoOjEsaGVpZ2h0OjF9KSx0aGlzLnZpZXcuZW5hYmxlZD0hMCx0aGlzLnZpZXcuZnVsbFdpZHRoPXQsdGhpcy52aWV3LmZ1bGxIZWlnaHQ9ZSx0aGlzLnZpZXcub2Zmc2V0WD1uLHRoaXMudmlldy5vZmZzZXRZPWksdGhpcy52aWV3LndpZHRoPXIsdGhpcy52aWV3LmhlaWdodD1vLHRoaXMudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfWNsZWFyVmlld09mZnNldCgpe251bGwhPT10aGlzLnZpZXcmJih0aGlzLnZpZXcuZW5hYmxlZD0hMSksdGhpcy51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9dXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpe2NvbnN0IHQ9KHRoaXMucmlnaHQtdGhpcy5sZWZ0KS8oMip0aGlzLnpvb20pLGU9KHRoaXMudG9wLXRoaXMuYm90dG9tKS8oMip0aGlzLnpvb20pLG49KHRoaXMucmlnaHQrdGhpcy5sZWZ0KS8yLGk9KHRoaXMudG9wK3RoaXMuYm90dG9tKS8yO2xldCByPW4tdCxvPW4rdCxhPWkrZSxzPWktZTtpZihudWxsIT09dGhpcy52aWV3JiZ0aGlzLnZpZXcuZW5hYmxlZCl7Y29uc3QgdD0odGhpcy5yaWdodC10aGlzLmxlZnQpL3RoaXMudmlldy5mdWxsV2lkdGgvdGhpcy56b29tLGU9KHRoaXMudG9wLXRoaXMuYm90dG9tKS90aGlzLnZpZXcuZnVsbEhlaWdodC90aGlzLnpvb207cis9dCp0aGlzLnZpZXcub2Zmc2V0WCxvPXIrdCp0aGlzLnZpZXcud2lkdGgsYS09ZSp0aGlzLnZpZXcub2Zmc2V0WSxzPWEtZSp0aGlzLnZpZXcuaGVpZ2h0fXRoaXMucHJvamVjdGlvbk1hdHJpeC5tYWtlT3J0aG9ncmFwaGljKHIsbyxhLHMsdGhpcy5uZWFyLHRoaXMuZmFyKSx0aGlzLnByb2plY3Rpb25NYXRyaXhJbnZlcnNlLmNvcHkodGhpcy5wcm9qZWN0aW9uTWF0cml4KS5pbnZlcnQoKX10b0pTT04odCl7Y29uc3QgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIGUub2JqZWN0Lnpvb209dGhpcy56b29tLGUub2JqZWN0LmxlZnQ9dGhpcy5sZWZ0LGUub2JqZWN0LnJpZ2h0PXRoaXMucmlnaHQsZS5vYmplY3QudG9wPXRoaXMudG9wLGUub2JqZWN0LmJvdHRvbT10aGlzLmJvdHRvbSxlLm9iamVjdC5uZWFyPXRoaXMubmVhcixlLm9iamVjdC5mYXI9dGhpcy5mYXIsbnVsbCE9PXRoaXMudmlldyYmKGUub2JqZWN0LnZpZXc9T2JqZWN0LmFzc2lnbih7fSx0aGlzLnZpZXcpKSxlfX1BNnQucHJvdG90eXBlLmlzT3J0aG9ncmFwaGljQ2FtZXJhPSEwO2NsYXNzIGs2dCBleHRlbmRzIG42dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLnR5cGU9IlJhd1NoYWRlck1hdGVyaWFsIn19azZ0LnByb3RvdHlwZS5pc1Jhd1NoYWRlck1hdGVyaWFsPSEwO2NvbnN0IEw2dD1NYXRoLnBvdygyLDgpLFA2dD1bLjEyNSwuMjE1LC4zNSwuNDQ2LC41MjYsLjU4Ml0sTjZ0PTUrUDZ0Lmxlbmd0aCxJNnQ9MjAsUjZ0PXtbRzJ0XTowLFtXMnRdOjEsW1kydF06MixbWDJ0XTozLFskMnRdOjQsW0sydF06NSxbcTJ0XTo2fSxPNnQ9bmV3IGw0dCh7c2lkZToxLGRlcHRoV3JpdGU6ITEsZGVwdGhUZXN0OiExfSksejZ0PW5ldyBLNHQobmV3IEo0dCxPNnQpLEQ2dD1uZXcgQTZ0LHtfbG9kUGxhbmVzOkI2dCxfc2l6ZUxvZHM6SDZ0LF9zaWdtYXM6RjZ0fT0kNnQoKSxWNnQ9bmV3IHM0dDtsZXQgVTZ0PW51bGw7Y29uc3QgajZ0PSgxK01hdGguc3FydCg1KSkvMixHNnQ9MS9qNnQsVzZ0PVtuZXcgSDV0KDEsMSwxKSxuZXcgSDV0KC0xLDEsMSksbmV3IEg1dCgxLDEsLTEpLG5ldyBINXQoLTEsMSwtMSksbmV3IEg1dCgwLGo2dCxHNnQpLG5ldyBINXQoMCxqNnQsLUc2dCksbmV3IEg1dChHNnQsMCxqNnQpLG5ldyBINXQoLUc2dCwwLGo2dCksbmV3IEg1dChqNnQsRzZ0LDApLG5ldyBINXQoLWo2dCxHNnQsMCldO2Z1bmN0aW9uIHE2dCh0KXtjb25zdCBlPU1hdGgubWF4KHQucix0LmcsdC5iKSxuPU1hdGgubWluKE1hdGgubWF4KE1hdGguY2VpbChNYXRoLmxvZzIoZSkpLC0xMjgpLDEyNyk7dC5tdWx0aXBseVNjYWxhcihNYXRoLnBvdygyLC1uKSk7cmV0dXJuKG4rMTI4KS8yNTV9Y2xhc3MgWTZ0e2NvbnN0cnVjdG9yKHQpe3RoaXMuX3JlbmRlcmVyPXQsdGhpcy5fcGluZ1BvbmdSZW5kZXJUYXJnZXQ9bnVsbCx0aGlzLl9ibHVyTWF0ZXJpYWw9KGZ1bmN0aW9uIGUodCl7Y29uc3QgZT1uZXcgRmxvYXQzMkFycmF5KHQpLG49bmV3IEg1dCgwLDEsMCk7cmV0dXJuIG5ldyBrNnQoe25hbWU6IlNwaGVyaWNhbEdhdXNzaWFuQmx1ciIsZGVmaW5lczp7bjp0fSx1bmlmb3Jtczp7ZW52TWFwOnt2YWx1ZTpudWxsfSxzYW1wbGVzOnt2YWx1ZToxfSx3ZWlnaHRzOnt2YWx1ZTplfSxsYXRpdHVkaW5hbDp7dmFsdWU6ITF9LGRUaGV0YTp7dmFsdWU6MH0sbWlwSW50Ont2YWx1ZTowfSxwb2xlQXhpczp7dmFsdWU6bn0saW5wdXRFbmNvZGluZzp7dmFsdWU6UjZ0WzNlM119LG91dHB1dEVuY29kaW5nOnt2YWx1ZTpSNnRbM2UzXX19LHZlcnRleFNoYWRlcjp0OXQoKSxmcmFnbWVudFNoYWRlcjpgXG5cblx0XHRcdHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuXHRcdFx0cHJlY2lzaW9uIG1lZGl1bXAgaW50O1xuXG5cdFx0XHR2YXJ5aW5nIHZlYzMgdk91dHB1dERpcmVjdGlvbjtcblxuXHRcdFx0dW5pZm9ybSBzYW1wbGVyMkQgZW52TWFwO1xuXHRcdFx0dW5pZm9ybSBpbnQgc2FtcGxlcztcblx0XHRcdHVuaWZvcm0gZmxvYXQgd2VpZ2h0c1sgbiBdO1xuXHRcdFx0dW5pZm9ybSBib29sIGxhdGl0dWRpbmFsO1xuXHRcdFx0dW5pZm9ybSBmbG9hdCBkVGhldGE7XG5cdFx0XHR1bmlmb3JtIGZsb2F0IG1pcEludDtcblx0XHRcdHVuaWZvcm0gdmVjMyBwb2xlQXhpcztcblxuXHRcdFx0JHtlOXQoKX1cblxuXHRcdFx0I2RlZmluZSBFTlZNQVBfVFlQRV9DVUJFX1VWXG5cdFx0XHQjaW5jbHVkZSA8Y3ViZV91dl9yZWZsZWN0aW9uX2ZyYWdtZW50PlxuXG5cdFx0XHR2ZWMzIGdldFNhbXBsZSggZmxvYXQgdGhldGEsIHZlYzMgYXhpcyApIHtcblxuXHRcdFx0XHRmbG9hdCBjb3NUaGV0YSA9IGNvcyggdGhldGEgKTtcblx0XHRcdFx0Ly8gUm9kcmlndWVzJyBheGlzLWFuZ2xlIHJvdGF0aW9uXG5cdFx0XHRcdHZlYzMgc2FtcGxlRGlyZWN0aW9uID0gdk91dHB1dERpcmVjdGlvbiAqIGNvc1RoZXRhXG5cdFx0XHRcdFx0KyBjcm9zcyggYXhpcywgdk91dHB1dERpcmVjdGlvbiApICogc2luKCB0aGV0YSApXG5cdFx0XHRcdFx0KyBheGlzICogZG90KCBheGlzLCB2T3V0cHV0RGlyZWN0aW9uICkgKiAoIDEuMCAtIGNvc1RoZXRhICk7XG5cblx0XHRcdFx0cmV0dXJuIGJpbGluZWFyQ3ViZVVWKCBlbnZNYXAsIHNhbXBsZURpcmVjdGlvbiwgbWlwSW50ICk7XG5cblx0XHRcdH1cblxuXHRcdFx0dm9pZCBtYWluKCkge1xuXG5cdFx0XHRcdHZlYzMgYXhpcyA9IGxhdGl0dWRpbmFsID8gcG9sZUF4aXMgOiBjcm9zcyggcG9sZUF4aXMsIHZPdXRwdXREaXJlY3Rpb24gKTtcblxuXHRcdFx0XHRpZiAoIGFsbCggZXF1YWwoIGF4aXMsIHZlYzMoIDAuMCApICkgKSApIHtcblxuXHRcdFx0XHRcdGF4aXMgPSB2ZWMzKCB2T3V0cHV0RGlyZWN0aW9uLnosIDAuMCwgLSB2T3V0cHV0RGlyZWN0aW9uLnggKTtcblxuXHRcdFx0XHR9XG5cblx0XHRcdFx0YXhpcyA9IG5vcm1hbGl6ZSggYXhpcyApO1xuXG5cdFx0XHRcdGdsX0ZyYWdDb2xvciA9IHZlYzQoIDAuMCwgMC4wLCAwLjAsIDEuMCApO1xuXHRcdFx0XHRnbF9GcmFnQ29sb3IucmdiICs9IHdlaWdodHNbIDAgXSAqIGdldFNhbXBsZSggMC4wLCBheGlzICk7XG5cblx0XHRcdFx0Zm9yICggaW50IGkgPSAxOyBpIDwgbjsgaSsrICkge1xuXG5cdFx0XHRcdFx0aWYgKCBpID49IHNhbXBsZXMgKSB7XG5cblx0XHRcdFx0XHRcdGJyZWFrO1xuXG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0ZmxvYXQgdGhldGEgPSBkVGhldGEgKiBmbG9hdCggaSApO1xuXHRcdFx0XHRcdGdsX0ZyYWdDb2xvci5yZ2IgKz0gd2VpZ2h0c1sgaSBdICogZ2V0U2FtcGxlKCAtMS4wICogdGhldGEsIGF4aXMgKTtcblx0XHRcdFx0XHRnbF9GcmFnQ29sb3IucmdiICs9IHdlaWdodHNbIGkgXSAqIGdldFNhbXBsZSggdGhldGEsIGF4aXMgKTtcblxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Z2xfRnJhZ0NvbG9yID0gbGluZWFyVG9PdXRwdXRUZXhlbCggZ2xfRnJhZ0NvbG9yICk7XG5cblx0XHRcdH1cblx0XHRgLGJsZW5kaW5nOjAsZGVwdGhUZXN0OiExLGRlcHRoV3JpdGU6ITF9KX0pKEk2dCksdGhpcy5fZXF1aXJlY3RTaGFkZXI9bnVsbCx0aGlzLl9jdWJlbWFwU2hhZGVyPW51bGwsdGhpcy5fY29tcGlsZU1hdGVyaWFsKHRoaXMuX2JsdXJNYXRlcmlhbCl9ZnJvbVNjZW5lKHQsZT0wLG49LjEsaT0xMDApe1U2dD10aGlzLl9yZW5kZXJlci5nZXRSZW5kZXJUYXJnZXQoKTtjb25zdCByPXRoaXMuX2FsbG9jYXRlVGFyZ2V0cygpO3JldHVybiB0aGlzLl9zY2VuZVRvQ3ViZVVWKHQsbixpLHIpLGU+MCYmdGhpcy5fYmx1cihyLDAsMCxlKSx0aGlzLl9hcHBseVBNUkVNKHIpLHRoaXMuX2NsZWFudXAocikscn1mcm9tRXF1aXJlY3Rhbmd1bGFyKHQpe3JldHVybiB0aGlzLl9mcm9tVGV4dHVyZSh0KX1mcm9tQ3ViZW1hcCh0KXtyZXR1cm4gdGhpcy5fZnJvbVRleHR1cmUodCl9Y29tcGlsZUN1YmVtYXBTaGFkZXIoKXtudWxsPT09dGhpcy5fY3ViZW1hcFNoYWRlciYmKHRoaXMuX2N1YmVtYXBTaGFkZXI9UTZ0KCksdGhpcy5fY29tcGlsZU1hdGVyaWFsKHRoaXMuX2N1YmVtYXBTaGFkZXIpKX1jb21waWxlRXF1aXJlY3Rhbmd1bGFyU2hhZGVyKCl7bnVsbD09PXRoaXMuX2VxdWlyZWN0U2hhZGVyJiYodGhpcy5fZXF1aXJlY3RTaGFkZXI9SjZ0KCksdGhpcy5fY29tcGlsZU1hdGVyaWFsKHRoaXMuX2VxdWlyZWN0U2hhZGVyKSl9ZGlzcG9zZSgpe3RoaXMuX2JsdXJNYXRlcmlhbC5kaXNwb3NlKCksbnVsbCE9PXRoaXMuX2N1YmVtYXBTaGFkZXImJnRoaXMuX2N1YmVtYXBTaGFkZXIuZGlzcG9zZSgpLG51bGwhPT10aGlzLl9lcXVpcmVjdFNoYWRlciYmdGhpcy5fZXF1aXJlY3RTaGFkZXIuZGlzcG9zZSgpO2ZvcihsZXQgdD0wO3Q8QjZ0Lmxlbmd0aDt0KyspQjZ0W3RdLmRpc3Bvc2UoKX1fY2xlYW51cCh0KXt0aGlzLl9waW5nUG9uZ1JlbmRlclRhcmdldC5kaXNwb3NlKCksdGhpcy5fcmVuZGVyZXIuc2V0UmVuZGVyVGFyZ2V0KFU2dCksdC5zY2lzc29yVGVzdD0hMSxaNnQodCwwLDAsdC53aWR0aCx0LmhlaWdodCl9X2Zyb21UZXh0dXJlKHQpe1U2dD10aGlzLl9yZW5kZXJlci5nZXRSZW5kZXJUYXJnZXQoKTtjb25zdCBlPXRoaXMuX2FsbG9jYXRlVGFyZ2V0cyh0KTtyZXR1cm4gdGhpcy5fdGV4dHVyZVRvQ3ViZVVWKHQsZSksdGhpcy5fYXBwbHlQTVJFTShlKSx0aGlzLl9jbGVhbnVwKGUpLGV9X2FsbG9jYXRlVGFyZ2V0cyh0KXtjb25zdCBlPXttYWdGaWx0ZXI6dTJ0LG1pbkZpbHRlcjp1MnQsZ2VuZXJhdGVNaXBtYXBzOiExLHR5cGU6ZzJ0LGZvcm1hdDoxMDIzLGVuY29kaW5nOlg2dCh0KT90LmVuY29kaW5nOlkydCxkZXB0aEJ1ZmZlcjohMX0sbj1LNnQoZSk7cmV0dXJuIG4uZGVwdGhCdWZmZXI9IXQsdGhpcy5fcGluZ1BvbmdSZW5kZXJUYXJnZXQ9SzZ0KGUpLG59X2NvbXBpbGVNYXRlcmlhbCh0KXtjb25zdCBlPW5ldyBLNHQoQjZ0WzBdLHQpO3RoaXMuX3JlbmRlcmVyLmNvbXBpbGUoZSxENnQpfV9zY2VuZVRvQ3ViZVVWKHQsZSxuLGkpe2NvbnN0IHI9bmV3IHI2dCg5MCwxLGUsbiksbz1bMSwtMSwxLDEsMSwxXSxhPVsxLDEsMSwtMSwtMSwtMV0scz10aGlzLl9yZW5kZXJlcixsPXMuYXV0b0NsZWFyLGM9cy5vdXRwdXRFbmNvZGluZyx1PXMudG9uZU1hcHBpbmc7cy5nZXRDbGVhckNvbG9yKFY2dCkscy50b25lTWFwcGluZz0wLHMub3V0cHV0RW5jb2Rpbmc9RzJ0LHMuYXV0b0NsZWFyPSExO2xldCBoPSExO2NvbnN0IGQ9dC5iYWNrZ3JvdW5kO2lmKGQpe2lmKGQuaXNDb2xvcil7TzZ0LmNvbG9yLmNvcHkoZCkuY29udmVydFNSR0JUb0xpbmVhcigpLHQuYmFja2dyb3VuZD1udWxsO2NvbnN0IGU9cTZ0KE82dC5jb2xvcik7TzZ0Lm9wYWNpdHk9ZSxoPSEwfX1lbHNle082dC5jb2xvci5jb3B5KFY2dCkuY29udmVydFNSR0JUb0xpbmVhcigpO2NvbnN0IHQ9cTZ0KE82dC5jb2xvcik7TzZ0Lm9wYWNpdHk9dCxoPSEwfWZvcihsZXQgZT0wO2U8NjtlKyspe2NvbnN0IG49ZSUzOzA9PW4/KHIudXAuc2V0KDAsb1tlXSwwKSxyLmxvb2tBdChhW2VdLDAsMCkpOjE9PW4/KHIudXAuc2V0KDAsMCxvW2VdKSxyLmxvb2tBdCgwLGFbZV0sMCkpOihyLnVwLnNldCgwLG9bZV0sMCksci5sb29rQXQoMCwwLGFbZV0pKSxaNnQoaSxuKkw2dCxlPjI/TDZ0OjAsTDZ0LEw2dCkscy5zZXRSZW5kZXJUYXJnZXQoaSksaCYmcy5yZW5kZXIoejZ0LHIpLHMucmVuZGVyKHQscil9cy50b25lTWFwcGluZz11LHMub3V0cHV0RW5jb2Rpbmc9YyxzLmF1dG9DbGVhcj1sfV90ZXh0dXJlVG9DdWJlVVYodCxlKXtjb25zdCBuPXRoaXMuX3JlbmRlcmVyO3QuaXNDdWJlVGV4dHVyZT9udWxsPT10aGlzLl9jdWJlbWFwU2hhZGVyJiYodGhpcy5fY3ViZW1hcFNoYWRlcj1RNnQoKSk6bnVsbD09dGhpcy5fZXF1aXJlY3RTaGFkZXImJih0aGlzLl9lcXVpcmVjdFNoYWRlcj1KNnQoKSk7Y29uc3QgaT10LmlzQ3ViZVRleHR1cmU/dGhpcy5fY3ViZW1hcFNoYWRlcjp0aGlzLl9lcXVpcmVjdFNoYWRlcixyPW5ldyBLNHQoQjZ0WzBdLGkpLG89aS51bmlmb3JtcztvLmVudk1hcC52YWx1ZT10LHQuaXNDdWJlVGV4dHVyZXx8by50ZXhlbFNpemUudmFsdWUuc2V0KDEvdC5pbWFnZS53aWR0aCwxL3QuaW1hZ2UuaGVpZ2h0KSxvLmlucHV0RW5jb2RpbmcudmFsdWU9UjZ0W3QuZW5jb2RpbmddLG8ub3V0cHV0RW5jb2RpbmcudmFsdWU9UjZ0W2UudGV4dHVyZS5lbmNvZGluZ10sWjZ0KGUsMCwwLDMqTDZ0LDIqTDZ0KSxuLnNldFJlbmRlclRhcmdldChlKSxuLnJlbmRlcihyLEQ2dCl9X2FwcGx5UE1SRU0odCl7Y29uc3QgZT10aGlzLl9yZW5kZXJlcixuPWUuYXV0b0NsZWFyO2UuYXV0b0NsZWFyPSExO2ZvcihsZXQgZT0xO2U8TjZ0O2UrKyl7Y29uc3Qgbj1NYXRoLnNxcnQoRjZ0W2VdKkY2dFtlXS1GNnRbZS0xXSpGNnRbZS0xXSk7dGhpcy5fYmx1cih0LGUtMSxlLG4sVzZ0WyhlLTEpJVc2dC5sZW5ndGhdKX1lLmF1dG9DbGVhcj1ufV9ibHVyKHQsZSxuLGkscil7Y29uc3Qgbz10aGlzLl9waW5nUG9uZ1JlbmRlclRhcmdldDt0aGlzLl9oYWxmQmx1cih0LG8sZSxuLGksImxhdGl0dWRpbmFsIixyKSx0aGlzLl9oYWxmQmx1cihvLHQsbixuLGksImxvbmdpdHVkaW5hbCIscil9X2hhbGZCbHVyKHQsZSxuLGkscixvLGEpe2NvbnN0IHM9dGhpcy5fcmVuZGVyZXIsbD10aGlzLl9ibHVyTWF0ZXJpYWw7ImxhdGl0dWRpbmFsIiE9PW8mJiJsb25naXR1ZGluYWwiIT09byYmY29uc29sZS5lcnJvcigiYmx1ciBkaXJlY3Rpb24gbXVzdCBiZSBlaXRoZXIgbGF0aXR1ZGluYWwgb3IgbG9uZ2l0dWRpbmFsISIpO2NvbnN0IGM9bmV3IEs0dChCNnRbaV0sbCksdT1sLnVuaWZvcm1zLGg9SDZ0W25dLTEsZD1pc0Zpbml0ZShyKT9NYXRoLlBJLygyKmgpOjIqTWF0aC5QSS8zOSxwPXIvZCxmPWlzRmluaXRlKHIpPzErTWF0aC5mbG9vcigzKnApOkk2dDtmPkk2dCYmY29uc29sZS53YXJuKGBzaWdtYVJhZGlhbnMsICR7cn0sIGlzIHRvbyBsYXJnZSBhbmQgd2lsbCBjbGlwLCBhcyBpdCByZXF1ZXN0ZWQgJHtmfSBzYW1wbGVzIHdoZW4gdGhlIG1heGltdW0gaXMgc2V0IHRvIDIwYCk7Y29uc3QgbT1bXTtsZXQgZz0wO2ZvcihsZXQgdD0wO3Q8STZ0OysrdCl7Y29uc3QgZT10L3Asbj1NYXRoLmV4cCgtZSplLzIpO20ucHVzaChuKSwwPT10P2crPW46dDxmJiYoZys9MipuKX1mb3IobGV0IHQ9MDt0PG0ubGVuZ3RoO3QrKyltW3RdPW1bdF0vZzt1LmVudk1hcC52YWx1ZT10LnRleHR1cmUsdS5zYW1wbGVzLnZhbHVlPWYsdS53ZWlnaHRzLnZhbHVlPW0sdS5sYXRpdHVkaW5hbC52YWx1ZT0ibGF0aXR1ZGluYWwiPT09byxhJiYodS5wb2xlQXhpcy52YWx1ZT1hKSx1LmRUaGV0YS52YWx1ZT1kLHUubWlwSW50LnZhbHVlPTgtbix1LmlucHV0RW5jb2RpbmcudmFsdWU9UjZ0W3QudGV4dHVyZS5lbmNvZGluZ10sdS5vdXRwdXRFbmNvZGluZy52YWx1ZT1SNnRbdC50ZXh0dXJlLmVuY29kaW5nXTtjb25zdCBfPUg2dFtpXTtaNnQoZSwzKk1hdGgubWF4KDAsTDZ0LTIqXyksKDA9PT1pPzA6MipMNnQpKzIqXyooaT40P2ktOCs0OjApLDMqXywyKl8pLHMuc2V0UmVuZGVyVGFyZ2V0KGUpLHMucmVuZGVyKGMsRDZ0KX19ZnVuY3Rpb24gWDZ0KHQpe3JldHVybiB2b2lkIDAhPT10JiZ0LnR5cGU9PT1nMnQmJih0LmVuY29kaW5nPT09RzJ0fHx0LmVuY29kaW5nPT09VzJ0fHx0LmVuY29kaW5nPT09cTJ0KX1mdW5jdGlvbiAkNnQoKXtjb25zdCB0PVtdLGU9W10sbj1bXTtsZXQgaT04O2ZvcihsZXQgcj0wO3I8TjZ0O3IrKyl7Y29uc3Qgbz1NYXRoLnBvdygyLGkpO2UucHVzaChvKTtsZXQgYT0xL287cj40P2E9UDZ0W3ItOCs0LTFdOjA9PXImJihhPTApLG4ucHVzaChhKTtjb25zdCBzPTEvKG8tMSksbD0tcy8yLGM9MStzLzIsdT1bbCxsLGMsbCxjLGMsbCxsLGMsYyxsLGNdLGg9NixkPTYscD0zLGY9MixtPTEsZz1uZXcgRmxvYXQzMkFycmF5KHAqZCpoKSxfPW5ldyBGbG9hdDMyQXJyYXkoZipkKmgpLHk9bmV3IEZsb2F0MzJBcnJheShtKmQqaCk7Zm9yKGxldCB0PTA7dDxoO3QrKyl7Y29uc3QgZT10JTMqMi8zLTEsbj10PjI/MDotMTtnLnNldChbZSxuLDAsZSsyLzMsbiwwLGUrMi8zLG4rMSwwLGUsbiwwLGUrMi8zLG4rMSwwLGUsbisxLDBdLHAqZCp0KSxfLnNldCh1LGYqZCp0KTt5LnNldChbdCx0LHQsdCx0LHRdLG0qZCp0KX1jb25zdCB2PW5ldyBONHQ7di5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgaDR0KGcscCkpLHYuc2V0QXR0cmlidXRlKCJ1diIsbmV3IGg0dChfLGYpKSx2LnNldEF0dHJpYnV0ZSgiZmFjZUluZGV4IixuZXcgaDR0KHksbSkpLHQucHVzaCh2KSxpPjQmJmktLX1yZXR1cm57X2xvZFBsYW5lczp0LF9zaXplTG9kczplLF9zaWdtYXM6bn19ZnVuY3Rpb24gSzZ0KHQpe2NvbnN0IGU9bmV3IE81dCgzKkw2dCwzKkw2dCx0KTtyZXR1cm4gZS50ZXh0dXJlLm1hcHBpbmc9bzJ0LGUudGV4dHVyZS5uYW1lPSJQTVJFTS5jdWJlVXYiLGUuc2Npc3NvclRlc3Q9ITAsZX1mdW5jdGlvbiBaNnQodCxlLG4saSxyKXt0LnZpZXdwb3J0LnNldChlLG4saSxyKSx0LnNjaXNzb3Iuc2V0KGUsbixpLHIpfWZ1bmN0aW9uIEo2dCgpe2NvbnN0IHQ9bmV3IEM1dCgxLDEpO3JldHVybiBuZXcgazZ0KHtuYW1lOiJFcXVpcmVjdGFuZ3VsYXJUb0N1YmVVViIsdW5pZm9ybXM6e2Vudk1hcDp7dmFsdWU6bnVsbH0sdGV4ZWxTaXplOnt2YWx1ZTp0fSxpbnB1dEVuY29kaW5nOnt2YWx1ZTpSNnRbM2UzXX0sb3V0cHV0RW5jb2Rpbmc6e3ZhbHVlOlI2dFszZTNdfX0sdmVydGV4U2hhZGVyOnQ5dCgpLGZyYWdtZW50U2hhZGVyOmBcblxuXHRcdFx0cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG5cdFx0XHRwcmVjaXNpb24gbWVkaXVtcCBpbnQ7XG5cblx0XHRcdHZhcnlpbmcgdmVjMyB2T3V0cHV0RGlyZWN0aW9uO1xuXG5cdFx0XHR1bmlmb3JtIHNhbXBsZXIyRCBlbnZNYXA7XG5cdFx0XHR1bmlmb3JtIHZlYzIgdGV4ZWxTaXplO1xuXG5cdFx0XHQke2U5dCgpfVxuXG5cdFx0XHQjaW5jbHVkZSA8Y29tbW9uPlxuXG5cdFx0XHR2b2lkIG1haW4oKSB7XG5cblx0XHRcdFx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggMC4wLCAwLjAsIDAuMCwgMS4wICk7XG5cblx0XHRcdFx0dmVjMyBvdXRwdXREaXJlY3Rpb24gPSBub3JtYWxpemUoIHZPdXRwdXREaXJlY3Rpb24gKTtcblx0XHRcdFx0dmVjMiB1diA9IGVxdWlyZWN0VXYoIG91dHB1dERpcmVjdGlvbiApO1xuXG5cdFx0XHRcdHZlYzIgZiA9IGZyYWN0KCB1diAvIHRleGVsU2l6ZSAtIDAuNSApO1xuXHRcdFx0XHR1diAtPSBmICogdGV4ZWxTaXplO1xuXHRcdFx0XHR2ZWMzIHRsID0gZW52TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZTJEICggZW52TWFwLCB1diApICkucmdiO1xuXHRcdFx0XHR1di54ICs9IHRleGVsU2l6ZS54O1xuXHRcdFx0XHR2ZWMzIHRyID0gZW52TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZTJEICggZW52TWFwLCB1diApICkucmdiO1xuXHRcdFx0XHR1di55ICs9IHRleGVsU2l6ZS55O1xuXHRcdFx0XHR2ZWMzIGJyID0gZW52TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZTJEICggZW52TWFwLCB1diApICkucmdiO1xuXHRcdFx0XHR1di54IC09IHRleGVsU2l6ZS54O1xuXHRcdFx0XHR2ZWMzIGJsID0gZW52TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZTJEICggZW52TWFwLCB1diApICkucmdiO1xuXG5cdFx0XHRcdHZlYzMgdG0gPSBtaXgoIHRsLCB0ciwgZi54ICk7XG5cdFx0XHRcdHZlYzMgYm0gPSBtaXgoIGJsLCBiciwgZi54ICk7XG5cdFx0XHRcdGdsX0ZyYWdDb2xvci5yZ2IgPSBtaXgoIHRtLCBibSwgZi55ICk7XG5cblx0XHRcdFx0Z2xfRnJhZ0NvbG9yID0gbGluZWFyVG9PdXRwdXRUZXhlbCggZ2xfRnJhZ0NvbG9yICk7XG5cblx0XHRcdH1cblx0XHRgLGJsZW5kaW5nOjAsZGVwdGhUZXN0OiExLGRlcHRoV3JpdGU6ITF9KX1mdW5jdGlvbiBRNnQoKXtyZXR1cm4gbmV3IGs2dCh7bmFtZToiQ3ViZW1hcFRvQ3ViZVVWIix1bmlmb3Jtczp7ZW52TWFwOnt2YWx1ZTpudWxsfSxpbnB1dEVuY29kaW5nOnt2YWx1ZTpSNnRbM2UzXX0sb3V0cHV0RW5jb2Rpbmc6e3ZhbHVlOlI2dFszZTNdfX0sdmVydGV4U2hhZGVyOnQ5dCgpLGZyYWdtZW50U2hhZGVyOmBcblxuXHRcdFx0cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG5cdFx0XHRwcmVjaXNpb24gbWVkaXVtcCBpbnQ7XG5cblx0XHRcdHZhcnlpbmcgdmVjMyB2T3V0cHV0RGlyZWN0aW9uO1xuXG5cdFx0XHR1bmlmb3JtIHNhbXBsZXJDdWJlIGVudk1hcDtcblxuXHRcdFx0JHtlOXQoKX1cblxuXHRcdFx0dm9pZCBtYWluKCkge1xuXG5cdFx0XHRcdGdsX0ZyYWdDb2xvciA9IHZlYzQoIDAuMCwgMC4wLCAwLjAsIDEuMCApO1xuXHRcdFx0XHRnbF9GcmFnQ29sb3IucmdiID0gZW52TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZUN1YmUoIGVudk1hcCwgdmVjMyggLSB2T3V0cHV0RGlyZWN0aW9uLngsIHZPdXRwdXREaXJlY3Rpb24ueXogKSApICkucmdiO1xuXHRcdFx0XHRnbF9GcmFnQ29sb3IgPSBsaW5lYXJUb091dHB1dFRleGVsKCBnbF9GcmFnQ29sb3IgKTtcblxuXHRcdFx0fVxuXHRcdGAsYmxlbmRpbmc6MCxkZXB0aFRlc3Q6ITEsZGVwdGhXcml0ZTohMX0pfWZ1bmN0aW9uIHQ5dCgpe3JldHVybiJcblxuXHRcdHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuXHRcdHByZWNpc2lvbiBtZWRpdW1wIGludDtcblxuXHRcdGF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uO1xuXHRcdGF0dHJpYnV0ZSB2ZWMyIHV2O1xuXHRcdGF0dHJpYnV0ZSBmbG9hdCBmYWNlSW5kZXg7XG5cblx0XHR2YXJ5aW5nIHZlYzMgdk91dHB1dERpcmVjdGlvbjtcblxuXHRcdC8vIFJIIGNvb3JkaW5hdGUgc3lzdGVtOyBQTVJFTSBmYWNlLWluZGV4aW5nIGNvbnZlbnRpb25cblx0XHR2ZWMzIGdldERpcmVjdGlvbiggdmVjMiB1diwgZmxvYXQgZmFjZSApIHtcblxuXHRcdFx0dXYgPSAyLjAgKiB1diAtIDEuMDtcblxuXHRcdFx0dmVjMyBkaXJlY3Rpb24gPSB2ZWMzKCB1diwgMS4wICk7XG5cblx0XHRcdGlmICggZmFjZSA9PSAwLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uID0gZGlyZWN0aW9uLnp5eDsgLy8gKCAxLCB2LCB1ICkgcG9zIHhcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSAxLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uID0gZGlyZWN0aW9uLnh6eTtcblx0XHRcdFx0ZGlyZWN0aW9uLnh6ICo9IC0xLjA7IC8vICggLXUsIDEsIC12ICkgcG9zIHlcblxuXHRcdFx0fSBlbHNlIGlmICggZmFjZSA9PSAyLjAgKSB7XG5cblx0XHRcdFx0ZGlyZWN0aW9uLnggKj0gLTEuMDsgLy8gKCAtdSwgdiwgMSApIHBvcyB6XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMy4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi56eXg7XG5cdFx0XHRcdGRpcmVjdGlvbi54eiAqPSAtMS4wOyAvLyAoIC0xLCB2LCAtdSApIG5lZyB4XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gNC4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi54enk7XG5cdFx0XHRcdGRpcmVjdGlvbi54eSAqPSAtMS4wOyAvLyAoIC11LCAtMSwgdiApIG5lZyB5XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gNS4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbi56ICo9IC0xLjA7IC8vICggdSwgdiwgLTEgKSBuZWcgelxuXG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBkaXJlY3Rpb247XG5cblx0XHR9XG5cblx0XHR2b2lkIG1haW4oKSB7XG5cblx0XHRcdHZPdXRwdXREaXJlY3Rpb24gPSBnZXREaXJlY3Rpb24oIHV2LCBmYWNlSW5kZXggKTtcblx0XHRcdGdsX1Bvc2l0aW9uID0gdmVjNCggcG9zaXRpb24sIDEuMCApO1xuXG5cdFx0fVxuXHQifWZ1bmN0aW9uIGU5dCgpe3JldHVybiJcblxuXHRcdHVuaWZvcm0gaW50IGlucHV0RW5jb2Rpbmc7XG5cdFx0dW5pZm9ybSBpbnQgb3V0cHV0RW5jb2Rpbmc7XG5cblx0XHQjaW5jbHVkZSA8ZW5jb2RpbmdzX3BhcnNfZnJhZ21lbnQ+XG5cblx0XHR2ZWM0IGlucHV0VGV4ZWxUb0xpbmVhciggdmVjNCB2YWx1ZSApIHtcblxuXHRcdFx0aWYgKCBpbnB1dEVuY29kaW5nID09IDAgKSB7XG5cblx0XHRcdFx0cmV0dXJuIHZhbHVlO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDEgKSB7XG5cblx0XHRcdFx0cmV0dXJuIHNSR0JUb0xpbmVhciggdmFsdWUgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggaW5wdXRFbmNvZGluZyA9PSAyICkge1xuXG5cdFx0XHRcdHJldHVybiBSR0JFVG9MaW5lYXIoIHZhbHVlICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGlucHV0RW5jb2RpbmcgPT0gMyApIHtcblxuXHRcdFx0XHRyZXR1cm4gUkdCTVRvTGluZWFyKCB2YWx1ZSwgNy4wICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGlucHV0RW5jb2RpbmcgPT0gNCApIHtcblxuXHRcdFx0XHRyZXR1cm4gUkdCTVRvTGluZWFyKCB2YWx1ZSwgMTYuMCApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDUgKSB7XG5cblx0XHRcdFx0cmV0dXJuIFJHQkRUb0xpbmVhciggdmFsdWUsIDI1Ni4wICk7XG5cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0cmV0dXJuIEdhbW1hVG9MaW5lYXIoIHZhbHVlLCAyLjIgKTtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdFx0dmVjNCBsaW5lYXJUb091dHB1dFRleGVsKCB2ZWM0IHZhbHVlICkge1xuXG5cdFx0XHRpZiAoIG91dHB1dEVuY29kaW5nID09IDAgKSB7XG5cblx0XHRcdFx0cmV0dXJuIHZhbHVlO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBvdXRwdXRFbmNvZGluZyA9PSAxICkge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb3NSR0IoIHZhbHVlICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDIgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvUkdCRSggdmFsdWUgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggb3V0cHV0RW5jb2RpbmcgPT0gMyApIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9SR0JNKCB2YWx1ZSwgNy4wICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDQgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvUkdCTSggdmFsdWUsIDE2LjAgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggb3V0cHV0RW5jb2RpbmcgPT0gNSApIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9SR0JEKCB2YWx1ZSwgMjU2LjAgKTtcblxuXHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9HYW1tYSggdmFsdWUsIDIuMiApO1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHR2ZWM0IGVudk1hcFRleGVsVG9MaW5lYXIoIHZlYzQgY29sb3IgKSB7XG5cblx0XHRcdHJldHVybiBpbnB1dFRleGVsVG9MaW5lYXIoIGNvbG9yICk7XG5cblx0XHR9XG5cdCJ9ZnVuY3Rpb24gbjl0KHQpe2xldCBlPW5ldyBXZWFrTWFwLG49bnVsbDtmdW5jdGlvbiBpKHQpe2NvbnN0IG49dC50YXJnZXQ7bi5yZW1vdmVFdmVudExpc3RlbmVyKCJkaXNwb3NlIixpKTtjb25zdCByPWUuZ2V0KG4pO3ZvaWQgMCE9PXImJihyLmRlbGV0ZShuKSxyLmRpc3Bvc2UoKSl9cmV0dXJue2dldDpmdW5jdGlvbiByKG8pe2lmKG8mJm8uaXNUZXh0dXJlJiYhMT09PW8uaXNSZW5kZXJUYXJnZXRUZXh0dXJlKXtjb25zdCByPW8ubWFwcGluZyxhPXI9PT1pMnR8fHI9PT1yMnQscz1yPT09ZTJ0fHxyPT09bjJ0O2lmKGF8fHMpe2lmKGUuaGFzKG8pKXJldHVybiBlLmdldChvKS50ZXh0dXJlO3tjb25zdCByPW8uaW1hZ2U7aWYoYSYmciYmci5oZWlnaHQ+MHx8cyYmciYmKGZ1bmN0aW9uIGEodCl7bGV0IGU9MDtjb25zdCBuPTY7Zm9yKGxldCBpPTA7aTxuO2krKyl2b2lkIDAhPT10W2ldJiZlKys7cmV0dXJuIGU9PT1ufSkocikpe2NvbnN0IHI9dC5nZXRSZW5kZXJUYXJnZXQoKTtudWxsPT09biYmKG49bmV3IFk2dCh0KSk7Y29uc3Qgcz1hP24uZnJvbUVxdWlyZWN0YW5ndWxhcihvKTpuLmZyb21DdWJlbWFwKG8pO3JldHVybiBlLnNldChvLHMpLHQuc2V0UmVuZGVyVGFyZ2V0KHIpLG8uYWRkRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsaSkscy50ZXh0dXJlfXJldHVybiBudWxsfX19cmV0dXJuIG99LGRpc3Bvc2U6ZnVuY3Rpb24gbygpe2U9bmV3IFdlYWtNYXAsbnVsbCE9PW4mJihuLmRpc3Bvc2UoKSxuPW51bGwpfX19ZnVuY3Rpb24gaTl0KHQpe2NvbnN0IGU9e307ZnVuY3Rpb24gbihuKXtpZih2b2lkIDAhPT1lW25dKXJldHVybiBlW25dO2xldCBpO3N3aXRjaChuKXtjYXNlIldFQkdMX2RlcHRoX3RleHR1cmUiOmk9dC5nZXRFeHRlbnNpb24oIldFQkdMX2RlcHRoX3RleHR1cmUiKXx8dC5nZXRFeHRlbnNpb24oIk1PWl9XRUJHTF9kZXB0aF90ZXh0dXJlIil8fHQuZ2V0RXh0ZW5zaW9uKCJXRUJLSVRfV0VCR0xfZGVwdGhfdGV4dHVyZSIpO2JyZWFrO2Nhc2UiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIjppPXQuZ2V0RXh0ZW5zaW9uKCJFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKXx8dC5nZXRFeHRlbnNpb24oIk1PWl9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKXx8dC5nZXRFeHRlbnNpb24oIldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKTticmVhaztjYXNlIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIjppPXQuZ2V0RXh0ZW5zaW9uKCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpfHx0LmdldEV4dGVuc2lvbigiTU9aX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIil8fHQuZ2V0RXh0ZW5zaW9uKCJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKTticmVhaztjYXNlIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyI6aT10LmdldEV4dGVuc2lvbigiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIil8fHQuZ2V0RXh0ZW5zaW9uKCJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIik7YnJlYWs7ZGVmYXVsdDppPXQuZ2V0RXh0ZW5zaW9uKG4pfXJldHVybiBlW25dPWksaX1yZXR1cm57aGFzOmZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT09bih0KX0saW5pdDpmdW5jdGlvbih0KXt0LmlzV2ViR0wyP24oIkVYVF9jb2xvcl9idWZmZXJfZmxvYXQiKToobigiV0VCR0xfZGVwdGhfdGV4dHVyZSIpLG4oIk9FU190ZXh0dXJlX2Zsb2F0IiksbigiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpLG4oIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIiksbigiT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIiksbigiT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpLG4oIk9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IiksbigiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpKSxuKCJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSxuKCJFWFRfY29sb3JfYnVmZmVyX2hhbGZfZmxvYXQiKX0sZ2V0OmZ1bmN0aW9uKHQpe2NvbnN0IGU9bih0KTtyZXR1cm4gbnVsbD09PWUmJmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogIit0KyIgZXh0ZW5zaW9uIG5vdCBzdXBwb3J0ZWQuIiksZX19fWZ1bmN0aW9uIHI5dCh0LGUsbixpKXtjb25zdCByPXt9LG89bmV3IFdlYWtNYXA7ZnVuY3Rpb24gYSh0KXtjb25zdCBzPXQudGFyZ2V0O251bGwhPT1zLmluZGV4JiZlLnJlbW92ZShzLmluZGV4KTtmb3IoY29uc3QgdCBpbiBzLmF0dHJpYnV0ZXMpZS5yZW1vdmUocy5hdHRyaWJ1dGVzW3RdKTtzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLGEpLGRlbGV0ZSByW3MuaWRdO2NvbnN0IGw9by5nZXQocyk7bCYmKGUucmVtb3ZlKGwpLG8uZGVsZXRlKHMpKSxpLnJlbGVhc2VTdGF0ZXNPZkdlb21ldHJ5KHMpLCEwPT09cy5pc0luc3RhbmNlZEJ1ZmZlckdlb21ldHJ5JiZkZWxldGUgcy5fbWF4SW5zdGFuY2VDb3VudCxuLm1lbW9yeS5nZW9tZXRyaWVzLS19ZnVuY3Rpb24gcyh0KXtjb25zdCBuPVtdLGk9dC5pbmRleCxyPXQuYXR0cmlidXRlcy5wb3NpdGlvbjtsZXQgYT0wO2lmKG51bGwhPT1pKXtjb25zdCB0PWkuYXJyYXk7YT1pLnZlcnNpb247Zm9yKGxldCBlPTAsaT10Lmxlbmd0aDtlPGk7ZSs9Myl7Y29uc3QgaT10W2UrMF0scj10W2UrMV0sbz10W2UrMl07bi5wdXNoKGkscixyLG8sbyxpKX19ZWxzZXthPXIudmVyc2lvbjtmb3IobGV0IHQ9MCxlPXIuYXJyYXkubGVuZ3RoLzMtMTt0PGU7dCs9Myl7Y29uc3QgZT10KzAsaT10KzEscj10KzI7bi5wdXNoKGUsaSxpLHIscixlKX19Y29uc3Qgcz1uZXcodzR0KG4pPjY1NTM1P3k0dDpnNHQpKG4sMSk7cy52ZXJzaW9uPWE7Y29uc3QgbD1vLmdldCh0KTtsJiZlLnJlbW92ZShsKSxvLnNldCh0LHMpfXJldHVybntnZXQ6ZnVuY3Rpb24gbCh0LGUpe3JldHVybiEwPT09cltlLmlkXXx8KGUuYWRkRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsYSkscltlLmlkXT0hMCxuLm1lbW9yeS5nZW9tZXRyaWVzKyspLGV9LHVwZGF0ZTpmdW5jdGlvbiBjKHQpe2NvbnN0IG49dC5hdHRyaWJ1dGVzO2Zvcihjb25zdCB0IGluIG4pZS51cGRhdGUoblt0XSwzNDk2Mik7Y29uc3QgaT10Lm1vcnBoQXR0cmlidXRlcztmb3IoY29uc3QgdCBpbiBpKXtjb25zdCBuPWlbdF07Zm9yKGxldCB0PTAsaT1uLmxlbmd0aDt0PGk7dCsrKWUudXBkYXRlKG5bdF0sMzQ5NjIpfX0sZ2V0V2lyZWZyYW1lQXR0cmlidXRlOmZ1bmN0aW9uIHUodCl7Y29uc3QgZT1vLmdldCh0KTtpZihlKXtjb25zdCBuPXQuaW5kZXg7bnVsbCE9PW4mJmUudmVyc2lvbjxuLnZlcnNpb24mJnModCl9ZWxzZSBzKHQpO3JldHVybiBvLmdldCh0KX19fWZ1bmN0aW9uIG85dCh0LGUsbixpKXtjb25zdCByPWkuaXNXZWJHTDI7bGV0IG8sYSxzO3RoaXMuc2V0TW9kZT1mdW5jdGlvbiBsKHQpe289dH0sdGhpcy5zZXRJbmRleD1mdW5jdGlvbiBjKHQpe2E9dC50eXBlLHM9dC5ieXRlc1BlckVsZW1lbnR9LHRoaXMucmVuZGVyPWZ1bmN0aW9uIHUoZSxpKXt0LmRyYXdFbGVtZW50cyhvLGksYSxlKnMpLG4udXBkYXRlKGksbywxKX0sdGhpcy5yZW5kZXJJbnN0YW5jZXM9ZnVuY3Rpb24gaChpLGwsYyl7aWYoMD09PWMpcmV0dXJuO2xldCB1LGg7aWYocil1PXQsaD0iZHJhd0VsZW1lbnRzSW5zdGFuY2VkIjtlbHNlIGlmKHU9ZS5nZXQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSxoPSJkcmF3RWxlbWVudHNJbnN0YW5jZWRBTkdMRSIsbnVsbD09PXUpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xJbmRleGVkQnVmZmVyUmVuZGVyZXI6IHVzaW5nIFRIUkVFLkluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5IGJ1dCBoYXJkd2FyZSBkb2VzIG5vdCBzdXBwb3J0IGV4dGVuc2lvbiBBTkdMRV9pbnN0YW5jZWRfYXJyYXlzLiIpO3VbaF0obyxsLGEsaSpzLGMpLG4udXBkYXRlKGwsbyxjKX19ZnVuY3Rpb24gYTl0KHQpe2NvbnN0IGU9e2ZyYW1lOjAsY2FsbHM6MCx0cmlhbmdsZXM6MCxwb2ludHM6MCxsaW5lczowfTtyZXR1cm57bWVtb3J5OntnZW9tZXRyaWVzOjAsdGV4dHVyZXM6MH0scmVuZGVyOmUscHJvZ3JhbXM6bnVsbCxhdXRvUmVzZXQ6ITAscmVzZXQ6ZnVuY3Rpb24gbigpe2UuZnJhbWUrKyxlLmNhbGxzPTAsZS50cmlhbmdsZXM9MCxlLnBvaW50cz0wLGUubGluZXM9MH0sdXBkYXRlOmZ1bmN0aW9uIGkodCxuLHIpe3N3aXRjaChlLmNhbGxzKyssbil7Y2FzZSA0OmUudHJpYW5nbGVzKz1yKih0LzMpO2JyZWFrO2Nhc2UgMTplLmxpbmVzKz1yKih0LzIpO2JyZWFrO2Nhc2UgMzplLmxpbmVzKz1yKih0LTEpO2JyZWFrO2Nhc2UgMjplLmxpbmVzKz1yKnQ7YnJlYWs7Y2FzZSAwOmUucG9pbnRzKz1yKnQ7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTEluZm86IFVua25vd24gZHJhdyBtb2RlOiIsbil9fX19ZnVuY3Rpb24gczl0KHQsZSl7cmV0dXJuIHRbMF0tZVswXX1mdW5jdGlvbiBsOXQodCxlKXtyZXR1cm4gTWF0aC5hYnMoZVsxXSktTWF0aC5hYnModFsxXSl9ZnVuY3Rpb24gYzl0KHQpe2NvbnN0IGU9e30sbj1uZXcgRmxvYXQzMkFycmF5KDgpLGk9W107Zm9yKGxldCB0PTA7dDw4O3QrKylpW3RdPVt0LDBdO3JldHVybnt1cGRhdGU6ZnVuY3Rpb24gcihvLGEscyxsKXtjb25zdCBjPW8ubW9ycGhUYXJnZXRJbmZsdWVuY2VzLHU9dm9pZCAwPT09Yz8wOmMubGVuZ3RoO2xldCBoPWVbYS5pZF07aWYodm9pZCAwPT09aHx8aC5sZW5ndGghPT11KXtoPVtdO2ZvcihsZXQgdD0wO3Q8dTt0KyspaFt0XT1bdCwwXTtlW2EuaWRdPWh9Zm9yKGxldCB0PTA7dDx1O3QrKyl7Y29uc3QgZT1oW3RdO2VbMF09dCxlWzFdPWNbdF19aC5zb3J0KGw5dCk7Zm9yKGxldCB0PTA7dDw4O3QrKyl0PHUmJmhbdF1bMV0/KGlbdF1bMF09aFt0XVswXSxpW3RdWzFdPWhbdF1bMV0pOihpW3RdWzBdPU51bWJlci5NQVhfU0FGRV9JTlRFR0VSLGlbdF1bMV09MCk7aS5zb3J0KHM5dCk7Y29uc3QgZD1hLm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbixwPWEubW9ycGhBdHRyaWJ1dGVzLm5vcm1hbDtsZXQgZj0wO2ZvcihsZXQgdD0wO3Q8ODt0Kyspe2NvbnN0IGU9aVt0XSxyPWVbMF0sbz1lWzFdO3IhPT1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUiYmbz8oZCYmYS5nZXRBdHRyaWJ1dGUoIm1vcnBoVGFyZ2V0Iit0KSE9PWRbcl0mJmEuc2V0QXR0cmlidXRlKCJtb3JwaFRhcmdldCIrdCxkW3JdKSxwJiZhLmdldEF0dHJpYnV0ZSgibW9ycGhOb3JtYWwiK3QpIT09cFtyXSYmYS5zZXRBdHRyaWJ1dGUoIm1vcnBoTm9ybWFsIit0LHBbcl0pLG5bdF09byxmKz1vKTooZCYmITA9PT1hLmhhc0F0dHJpYnV0ZSgibW9ycGhUYXJnZXQiK3QpJiZhLmRlbGV0ZUF0dHJpYnV0ZSgibW9ycGhUYXJnZXQiK3QpLHAmJiEwPT09YS5oYXNBdHRyaWJ1dGUoIm1vcnBoTm9ybWFsIit0KSYmYS5kZWxldGVBdHRyaWJ1dGUoIm1vcnBoTm9ybWFsIit0KSxuW3RdPTApfWNvbnN0IG09YS5tb3JwaFRhcmdldHNSZWxhdGl2ZT8xOjEtZjtsLmdldFVuaWZvcm1zKCkuc2V0VmFsdWUodCwibW9ycGhUYXJnZXRCYXNlSW5mbHVlbmNlIixtKSxsLmdldFVuaWZvcm1zKCkuc2V0VmFsdWUodCwibW9ycGhUYXJnZXRJbmZsdWVuY2VzIixuKX19fWZ1bmN0aW9uIHU5dCh0LGUsbixpKXtsZXQgcj1uZXcgV2Vha01hcDtmdW5jdGlvbiBvKHQpe2NvbnN0IGU9dC50YXJnZXQ7ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJkaXNwb3NlIixvKSxuLnJlbW92ZShlLmluc3RhbmNlTWF0cml4KSxudWxsIT09ZS5pbnN0YW5jZUNvbG9yJiZuLnJlbW92ZShlLmluc3RhbmNlQ29sb3IpfXJldHVybnt1cGRhdGU6ZnVuY3Rpb24gYSh0KXtjb25zdCBhPWkucmVuZGVyLmZyYW1lLHM9ZS5nZXQodCx0Lmdlb21ldHJ5KTtyZXR1cm4gci5nZXQocykhPT1hJiYoZS51cGRhdGUocyksci5zZXQocyxhKSksdC5pc0luc3RhbmNlZE1lc2gmJighMT09PXQuaGFzRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsbykmJnQuYWRkRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsbyksbi51cGRhdGUodC5pbnN0YW5jZU1hdHJpeCwzNDk2MiksbnVsbCE9PXQuaW5zdGFuY2VDb2xvciYmbi51cGRhdGUodC5pbnN0YW5jZUNvbG9yLDM0OTYyKSksc30sZGlzcG9zZTpmdW5jdGlvbiBzKCl7cj1uZXcgV2Vha01hcH19fWNsYXNzIGg5dCBleHRlbmRzIE41dHtjb25zdHJ1Y3Rvcih0PW51bGwsZT0xLG49MSxpPTEpe3N1cGVyKG51bGwpLHRoaXMuaW1hZ2U9e2RhdGE6dCx3aWR0aDplLGhlaWdodDpuLGRlcHRoOml9LHRoaXMubWFnRmlsdGVyPXUydCx0aGlzLm1pbkZpbHRlcj11MnQsdGhpcy53cmFwUj1sMnQsdGhpcy5nZW5lcmF0ZU1pcG1hcHM9ITEsdGhpcy5mbGlwWT0hMSx0aGlzLnVucGFja0FsaWdubWVudD0xLHRoaXMubmVlZHNVcGRhdGU9ITB9fWg5dC5wcm90b3R5cGUuaXNEYXRhVGV4dHVyZTJEQXJyYXk9ITA7Y2xhc3MgZDl0IGV4dGVuZHMgTjV0e2NvbnN0cnVjdG9yKHQ9bnVsbCxlPTEsbj0xLGk9MSl7c3VwZXIobnVsbCksdGhpcy5pbWFnZT17ZGF0YTp0LHdpZHRoOmUsaGVpZ2h0Om4sZGVwdGg6aX0sdGhpcy5tYWdGaWx0ZXI9dTJ0LHRoaXMubWluRmlsdGVyPXUydCx0aGlzLndyYXBSPWwydCx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMSx0aGlzLmZsaXBZPSExLHRoaXMudW5wYWNrQWxpZ25tZW50PTEsdGhpcy5uZWVkc1VwZGF0ZT0hMH19ZDl0LnByb3RvdHlwZS5pc0RhdGFUZXh0dXJlM0Q9ITA7Y29uc3QgcDl0PW5ldyBONXQsZjl0PW5ldyBoOXQsbTl0PW5ldyBkOXQsZzl0PW5ldyBzNnQsXzl0PVtdLHk5dD1bXSx2OXQ9bmV3IEZsb2F0MzJBcnJheSgxNiksYjl0PW5ldyBGbG9hdDMyQXJyYXkoOSkseDl0PW5ldyBGbG9hdDMyQXJyYXkoNCk7ZnVuY3Rpb24gdzl0KHQsZSxuKXtjb25zdCBpPXRbMF07aWYoaTw9MHx8aT4wKXJldHVybiB0O2NvbnN0IHI9ZSpuO2xldCBvPV85dFtyXTtpZih2b2lkIDA9PT1vJiYobz1uZXcgRmxvYXQzMkFycmF5KHIpLF85dFtyXT1vKSwwIT09ZSl7aS50b0FycmF5KG8sMCk7Zm9yKGxldCBpPTEscj0wO2khPT1lOysraSlyKz1uLHRbaV0udG9BcnJheShvLHIpfXJldHVybiBvfWZ1bmN0aW9uIFM5dCh0LGUpe2lmKHQubGVuZ3RoIT09ZS5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBuPTAsaT10Lmxlbmd0aDtuPGk7bisrKWlmKHRbbl0hPT1lW25dKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIE05dCh0LGUpe2ZvcihsZXQgbj0wLGk9ZS5sZW5ndGg7bjxpO24rKyl0W25dPWVbbl19ZnVuY3Rpb24gRTl0KHQsZSl7bGV0IG49eTl0W2VdO3ZvaWQgMD09PW4mJihuPW5ldyBJbnQzMkFycmF5KGUpLHk5dFtlXT1uKTtmb3IobGV0IGk9MDtpIT09ZTsrK2kpbltpXT10LmFsbG9jYXRlVGV4dHVyZVVuaXQoKTtyZXR1cm4gbn1mdW5jdGlvbiBUOXQodCxlKXtjb25zdCBuPXRoaXMuY2FjaGU7blswXSE9PWUmJih0LnVuaWZvcm0xZih0aGlzLmFkZHIsZSksblswXT1lKX1mdW5jdGlvbiBDOXQodCxlKXtjb25zdCBuPXRoaXMuY2FjaGU7aWYodm9pZCAwIT09ZS54KW5bMF09PT1lLngmJm5bMV09PT1lLnl8fCh0LnVuaWZvcm0yZih0aGlzLmFkZHIsZS54LGUueSksblswXT1lLngsblsxXT1lLnkpO2Vsc2V7aWYoUzl0KG4sZSkpcmV0dXJuO3QudW5pZm9ybTJmdih0aGlzLmFkZHIsZSksTTl0KG4sZSl9fWZ1bmN0aW9uIEE5dCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTtpZih2b2lkIDAhPT1lLngpblswXT09PWUueCYmblsxXT09PWUueSYmblsyXT09PWUuenx8KHQudW5pZm9ybTNmKHRoaXMuYWRkcixlLngsZS55LGUueiksblswXT1lLngsblsxXT1lLnksblsyXT1lLnopO2Vsc2UgaWYodm9pZCAwIT09ZS5yKW5bMF09PT1lLnImJm5bMV09PT1lLmcmJm5bMl09PT1lLmJ8fCh0LnVuaWZvcm0zZih0aGlzLmFkZHIsZS5yLGUuZyxlLmIpLG5bMF09ZS5yLG5bMV09ZS5nLG5bMl09ZS5iKTtlbHNle2lmKFM5dChuLGUpKXJldHVybjt0LnVuaWZvcm0zZnYodGhpcy5hZGRyLGUpLE05dChuLGUpfX1mdW5jdGlvbiBrOXQodCxlKXtjb25zdCBuPXRoaXMuY2FjaGU7aWYodm9pZCAwIT09ZS54KW5bMF09PT1lLngmJm5bMV09PT1lLnkmJm5bMl09PT1lLnomJm5bM109PT1lLnd8fCh0LnVuaWZvcm00Zih0aGlzLmFkZHIsZS54LGUueSxlLnosZS53KSxuWzBdPWUueCxuWzFdPWUueSxuWzJdPWUueixuWzNdPWUudyk7ZWxzZXtpZihTOXQobixlKSlyZXR1cm47dC51bmlmb3JtNGZ2KHRoaXMuYWRkcixlKSxNOXQobixlKX19ZnVuY3Rpb24gTDl0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlLGk9ZS5lbGVtZW50cztpZih2b2lkIDA9PT1pKXtpZihTOXQobixlKSlyZXR1cm47dC51bmlmb3JtTWF0cml4MmZ2KHRoaXMuYWRkciwhMSxlKSxNOXQobixlKX1lbHNle2lmKFM5dChuLGkpKXJldHVybjt4OXQuc2V0KGkpLHQudW5pZm9ybU1hdHJpeDJmdih0aGlzLmFkZHIsITEseDl0KSxNOXQobixpKX19ZnVuY3Rpb24gUDl0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlLGk9ZS5lbGVtZW50cztpZih2b2lkIDA9PT1pKXtpZihTOXQobixlKSlyZXR1cm47dC51bmlmb3JtTWF0cml4M2Z2KHRoaXMuYWRkciwhMSxlKSxNOXQobixlKX1lbHNle2lmKFM5dChuLGkpKXJldHVybjtiOXQuc2V0KGkpLHQudW5pZm9ybU1hdHJpeDNmdih0aGlzLmFkZHIsITEsYjl0KSxNOXQobixpKX19ZnVuY3Rpb24gTjl0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlLGk9ZS5lbGVtZW50cztpZih2b2lkIDA9PT1pKXtpZihTOXQobixlKSlyZXR1cm47dC51bmlmb3JtTWF0cml4NGZ2KHRoaXMuYWRkciwhMSxlKSxNOXQobixlKX1lbHNle2lmKFM5dChuLGkpKXJldHVybjt2OXQuc2V0KGkpLHQudW5pZm9ybU1hdHJpeDRmdih0aGlzLmFkZHIsITEsdjl0KSxNOXQobixpKX19ZnVuY3Rpb24gSTl0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO25bMF0hPT1lJiYodC51bmlmb3JtMWkodGhpcy5hZGRyLGUpLG5bMF09ZSl9ZnVuY3Rpb24gUjl0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO1M5dChuLGUpfHwodC51bmlmb3JtMml2KHRoaXMuYWRkcixlKSxNOXQobixlKSl9ZnVuY3Rpb24gTzl0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO1M5dChuLGUpfHwodC51bmlmb3JtM2l2KHRoaXMuYWRkcixlKSxNOXQobixlKSl9ZnVuY3Rpb24gejl0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO1M5dChuLGUpfHwodC51bmlmb3JtNGl2KHRoaXMuYWRkcixlKSxNOXQobixlKSl9ZnVuY3Rpb24gRDl0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO25bMF0hPT1lJiYodC51bmlmb3JtMXVpKHRoaXMuYWRkcixlKSxuWzBdPWUpfWZ1bmN0aW9uIEI5dCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTtTOXQobixlKXx8KHQudW5pZm9ybTJ1aXYodGhpcy5hZGRyLGUpLE05dChuLGUpKX1mdW5jdGlvbiBIOXQodCxlKXtjb25zdCBuPXRoaXMuY2FjaGU7Uzl0KG4sZSl8fCh0LnVuaWZvcm0zdWl2KHRoaXMuYWRkcixlKSxNOXQobixlKSl9ZnVuY3Rpb24gRjl0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO1M5dChuLGUpfHwodC51bmlmb3JtNHVpdih0aGlzLmFkZHIsZSksTTl0KG4sZSkpfWZ1bmN0aW9uIFY5dCh0LGUsbil7Y29uc3QgaT10aGlzLmNhY2hlLHI9bi5hbGxvY2F0ZVRleHR1cmVVbml0KCk7aVswXSE9PXImJih0LnVuaWZvcm0xaSh0aGlzLmFkZHIsciksaVswXT1yKSxuLnNhZmVTZXRUZXh0dXJlMkQoZXx8cDl0LHIpfWZ1bmN0aW9uIFU5dCh0LGUsbil7Y29uc3QgaT10aGlzLmNhY2hlLHI9bi5hbGxvY2F0ZVRleHR1cmVVbml0KCk7aVswXSE9PXImJih0LnVuaWZvcm0xaSh0aGlzLmFkZHIsciksaVswXT1yKSxuLnNldFRleHR1cmUzRChlfHxtOXQscil9ZnVuY3Rpb24gajl0KHQsZSxuKXtjb25zdCBpPXRoaXMuY2FjaGUscj1uLmFsbG9jYXRlVGV4dHVyZVVuaXQoKTtpWzBdIT09ciYmKHQudW5pZm9ybTFpKHRoaXMuYWRkcixyKSxpWzBdPXIpLG4uc2FmZVNldFRleHR1cmVDdWJlKGV8fGc5dCxyKX1mdW5jdGlvbiBHOXQodCxlLG4pe2NvbnN0IGk9dGhpcy5jYWNoZSxyPW4uYWxsb2NhdGVUZXh0dXJlVW5pdCgpO2lbMF0hPT1yJiYodC51bmlmb3JtMWkodGhpcy5hZGRyLHIpLGlbMF09ciksbi5zZXRUZXh0dXJlMkRBcnJheShlfHxmOXQscil9ZnVuY3Rpb24gVzl0KHQsZSl7dC51bmlmb3JtMWZ2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBxOXQodCxlKXtjb25zdCBuPXc5dChlLHRoaXMuc2l6ZSwyKTt0LnVuaWZvcm0yZnYodGhpcy5hZGRyLG4pfWZ1bmN0aW9uIFk5dCh0LGUpe2NvbnN0IG49dzl0KGUsdGhpcy5zaXplLDMpO3QudW5pZm9ybTNmdih0aGlzLmFkZHIsbil9ZnVuY3Rpb24gWDl0KHQsZSl7Y29uc3Qgbj13OXQoZSx0aGlzLnNpemUsNCk7dC51bmlmb3JtNGZ2KHRoaXMuYWRkcixuKX1mdW5jdGlvbiAkOXQodCxlKXtjb25zdCBuPXc5dChlLHRoaXMuc2l6ZSw0KTt0LnVuaWZvcm1NYXRyaXgyZnYodGhpcy5hZGRyLCExLG4pfWZ1bmN0aW9uIEs5dCh0LGUpe2NvbnN0IG49dzl0KGUsdGhpcy5zaXplLDkpO3QudW5pZm9ybU1hdHJpeDNmdih0aGlzLmFkZHIsITEsbil9ZnVuY3Rpb24gWjl0KHQsZSl7Y29uc3Qgbj13OXQoZSx0aGlzLnNpemUsMTYpO3QudW5pZm9ybU1hdHJpeDRmdih0aGlzLmFkZHIsITEsbil9ZnVuY3Rpb24gSjl0KHQsZSl7dC51bmlmb3JtMWl2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBROXQodCxlKXt0LnVuaWZvcm0yaXYodGhpcy5hZGRyLGUpfWZ1bmN0aW9uIHQ4dCh0LGUpe3QudW5pZm9ybTNpdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24gZTh0KHQsZSl7dC51bmlmb3JtNGl2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBuOHQodCxlKXt0LnVuaWZvcm0xdWl2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBpOHQodCxlKXt0LnVuaWZvcm0ydWl2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiByOHQodCxlKXt0LnVuaWZvcm0zdWl2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBvOHQodCxlKXt0LnVuaWZvcm00dWl2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBhOHQodCxlLG4pe2NvbnN0IGk9ZS5sZW5ndGgscj1FOXQobixpKTt0LnVuaWZvcm0xaXYodGhpcy5hZGRyLHIpO2ZvcihsZXQgdD0wO3QhPT1pOysrdCluLnNhZmVTZXRUZXh0dXJlMkQoZVt0XXx8cDl0LHJbdF0pfWZ1bmN0aW9uIHM4dCh0LGUsbil7Y29uc3QgaT1lLmxlbmd0aCxyPUU5dChuLGkpO3QudW5pZm9ybTFpdih0aGlzLmFkZHIscik7Zm9yKGxldCB0PTA7dCE9PWk7Kyt0KW4uc2FmZVNldFRleHR1cmVDdWJlKGVbdF18fGc5dCxyW3RdKX1mdW5jdGlvbiBsOHQodCxlLG4pe3RoaXMuaWQ9dCx0aGlzLmFkZHI9bix0aGlzLmNhY2hlPVtdLHRoaXMuc2V0VmFsdWU9KGZ1bmN0aW9uIGkodCl7c3dpdGNoKHQpe2Nhc2UgNTEyNjpyZXR1cm4gVDl0O2Nhc2UgMzU2NjQ6cmV0dXJuIEM5dDtjYXNlIDM1NjY1OnJldHVybiBBOXQ7Y2FzZSAzNTY2NjpyZXR1cm4gazl0O2Nhc2UgMzU2NzQ6cmV0dXJuIEw5dDtjYXNlIDM1Njc1OnJldHVybiBQOXQ7Y2FzZSAzNTY3NjpyZXR1cm4gTjl0O2Nhc2UgNTEyNDpjYXNlIDM1NjcwOnJldHVybiBJOXQ7Y2FzZSAzNTY2NzpjYXNlIDM1NjcxOnJldHVybiBSOXQ7Y2FzZSAzNTY2ODpjYXNlIDM1NjcyOnJldHVybiBPOXQ7Y2FzZSAzNTY2OTpjYXNlIDM1NjczOnJldHVybiB6OXQ7Y2FzZSA1MTI1OnJldHVybiBEOXQ7Y2FzZSAzNjI5NDpyZXR1cm4gQjl0O2Nhc2UgMzYyOTU6cmV0dXJuIEg5dDtjYXNlIDM2Mjk2OnJldHVybiBGOXQ7Y2FzZSAzNTY3ODpjYXNlIDM2MTk4OmNhc2UgMzYyOTg6Y2FzZSAzNjMwNjpjYXNlIDM1NjgyOnJldHVybiBWOXQ7Y2FzZSAzNTY3OTpjYXNlIDM2Mjk5OmNhc2UgMzYzMDc6cmV0dXJuIFU5dDtjYXNlIDM1NjgwOmNhc2UgMzYzMDA6Y2FzZSAzNjMwODpjYXNlIDM2MjkzOnJldHVybiBqOXQ7Y2FzZSAzNjI4OTpjYXNlIDM2MzAzOmNhc2UgMzYzMTE6Y2FzZSAzNjI5MjpyZXR1cm4gRzl0fX0pKGUudHlwZSl9ZnVuY3Rpb24gYzh0KHQsZSxuKXt0aGlzLmlkPXQsdGhpcy5hZGRyPW4sdGhpcy5jYWNoZT1bXSx0aGlzLnNpemU9ZS5zaXplLHRoaXMuc2V0VmFsdWU9KGZ1bmN0aW9uIGkodCl7c3dpdGNoKHQpe2Nhc2UgNTEyNjpyZXR1cm4gVzl0O2Nhc2UgMzU2NjQ6cmV0dXJuIHE5dDtjYXNlIDM1NjY1OnJldHVybiBZOXQ7Y2FzZSAzNTY2NjpyZXR1cm4gWDl0O2Nhc2UgMzU2NzQ6cmV0dXJuICQ5dDtjYXNlIDM1Njc1OnJldHVybiBLOXQ7Y2FzZSAzNTY3NjpyZXR1cm4gWjl0O2Nhc2UgNTEyNDpjYXNlIDM1NjcwOnJldHVybiBKOXQ7Y2FzZSAzNTY2NzpjYXNlIDM1NjcxOnJldHVybiBROXQ7Y2FzZSAzNTY2ODpjYXNlIDM1NjcyOnJldHVybiB0OHQ7Y2FzZSAzNTY2OTpjYXNlIDM1NjczOnJldHVybiBlOHQ7Y2FzZSA1MTI1OnJldHVybiBuOHQ7Y2FzZSAzNjI5NDpyZXR1cm4gaTh0O2Nhc2UgMzYyOTU6cmV0dXJuIHI4dDtjYXNlIDM2Mjk2OnJldHVybiBvOHQ7Y2FzZSAzNTY3ODpjYXNlIDM2MTk4OmNhc2UgMzYyOTg6Y2FzZSAzNjMwNjpjYXNlIDM1NjgyOnJldHVybiBhOHQ7Y2FzZSAzNTY4MDpjYXNlIDM2MzAwOmNhc2UgMzYzMDg6Y2FzZSAzNjI5MzpyZXR1cm4gczh0fX0pKGUudHlwZSl9ZnVuY3Rpb24gdTh0KHQpe3RoaXMuaWQ9dCx0aGlzLnNlcT1bXSx0aGlzLm1hcD17fX1jOHQucHJvdG90eXBlLnVwZGF0ZUNhY2hlPWZ1bmN0aW9uKHQpe2NvbnN0IGU9dGhpcy5jYWNoZTt0IGluc3RhbmNlb2YgRmxvYXQzMkFycmF5JiZlLmxlbmd0aCE9PXQubGVuZ3RoJiYodGhpcy5jYWNoZT1uZXcgRmxvYXQzMkFycmF5KHQubGVuZ3RoKSksTTl0KGUsdCl9LHU4dC5wcm90b3R5cGUuc2V0VmFsdWU9ZnVuY3Rpb24odCxlLG4pe2NvbnN0IGk9dGhpcy5zZXE7Zm9yKGxldCByPTAsbz1pLmxlbmd0aDtyIT09bzsrK3Ipe2NvbnN0IG89aVtyXTtvLnNldFZhbHVlKHQsZVtvLmlkXSxuKX19O2NvbnN0IGg4dD0vKFx3KykoXF0pPyhcW3xcLik/L2c7ZnVuY3Rpb24gZDh0KHQsZSl7dC5zZXEucHVzaChlKSx0Lm1hcFtlLmlkXT1lfWZ1bmN0aW9uIHA4dCh0LGUsbil7Y29uc3QgaT10Lm5hbWUscj1pLmxlbmd0aDtmb3IoaDh0Lmxhc3RJbmRleD0wOzspe2NvbnN0IG89aDh0LmV4ZWMoaSksYT1oOHQubGFzdEluZGV4O2xldCBzPW9bMV07Y29uc3QgbD1vWzNdO2lmKCJdIj09PW9bMl0mJihzfD0wKSx2b2lkIDA9PT1sfHwiWyI9PT1sJiZhKzI9PT1yKXtkOHQobix2b2lkIDA9PT1sP25ldyBsOHQocyx0LGUpOm5ldyBjOHQocyx0LGUpKTticmVha317bGV0IHQ9bi5tYXBbc107dm9pZCAwPT09dCYmKHQ9bmV3IHU4dChzKSxkOHQobix0KSksbj10fX19ZnVuY3Rpb24gZjh0KHQsZSl7dGhpcy5zZXE9W10sdGhpcy5tYXA9e307Y29uc3Qgbj10LmdldFByb2dyYW1QYXJhbWV0ZXIoZSwzNTcxOCk7Zm9yKGxldCBpPTA7aTxuOysraSl7Y29uc3Qgbj10LmdldEFjdGl2ZVVuaWZvcm0oZSxpKTtwOHQobix0LmdldFVuaWZvcm1Mb2NhdGlvbihlLG4ubmFtZSksdGhpcyl9fWZ1bmN0aW9uIG04dCh0LGUsbil7Y29uc3QgaT10LmNyZWF0ZVNoYWRlcihlKTtyZXR1cm4gdC5zaGFkZXJTb3VyY2UoaSxuKSx0LmNvbXBpbGVTaGFkZXIoaSksaX1mOHQucHJvdG90eXBlLnNldFZhbHVlPWZ1bmN0aW9uKHQsZSxuLGkpe2NvbnN0IHI9dGhpcy5tYXBbZV07dm9pZCAwIT09ciYmci5zZXRWYWx1ZSh0LG4saSl9LGY4dC5wcm90b3R5cGUuc2V0T3B0aW9uYWw9ZnVuY3Rpb24odCxlLG4pe2NvbnN0IGk9ZVtuXTt2b2lkIDAhPT1pJiZ0aGlzLnNldFZhbHVlKHQsbixpKX0sZjh0LnVwbG9hZD1mdW5jdGlvbih0LGUsbixpKXtmb3IobGV0IHI9MCxvPWUubGVuZ3RoO3IhPT1vOysrcil7Y29uc3Qgbz1lW3JdLGE9bltvLmlkXTshMSE9PWEubmVlZHNVcGRhdGUmJm8uc2V0VmFsdWUodCxhLnZhbHVlLGkpfX0sZjh0LnNlcVdpdGhWYWx1ZT1mdW5jdGlvbih0LGUpe2NvbnN0IG49W107Zm9yKGxldCBpPTAscj10Lmxlbmd0aDtpIT09cjsrK2kpe2NvbnN0IHI9dFtpXTtyLmlkIGluIGUmJm4ucHVzaChyKX1yZXR1cm4gbn07bGV0IGc4dD0wO2Z1bmN0aW9uIF84dCh0KXtzd2l0Y2godCl7Y2FzZSBHMnQ6cmV0dXJuWyJMaW5lYXIiLCIoIHZhbHVlICkiXTtjYXNlIFcydDpyZXR1cm5bInNSR0IiLCIoIHZhbHVlICkiXTtjYXNlIFkydDpyZXR1cm5bIlJHQkUiLCIoIHZhbHVlICkiXTtjYXNlIFgydDpyZXR1cm5bIlJHQk0iLCIoIHZhbHVlLCA3LjAgKSJdO2Nhc2UgJDJ0OnJldHVyblsiUkdCTSIsIiggdmFsdWUsIDE2LjAgKSJdO2Nhc2UgSzJ0OnJldHVyblsiUkdCRCIsIiggdmFsdWUsIDI1Ni4wICkiXTtjYXNlIHEydDpyZXR1cm5bIkdhbW1hIiwiKCB2YWx1ZSwgZmxvYXQoIEdBTU1BX0ZBQ1RPUiApICkiXTtjYXNlIDMwMDM6cmV0dXJuWyJMb2dMdXYiLCIoIHZhbHVlICkiXTtkZWZhdWx0OnJldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUHJvZ3JhbTogVW5zdXBwb3J0ZWQgZW5jb2Rpbmc6Iix0KSxbIkxpbmVhciIsIiggdmFsdWUgKSJdfX1mdW5jdGlvbiB5OHQodCxlLG4pe2NvbnN0IGk9dC5nZXRTaGFkZXJQYXJhbWV0ZXIoZSwzNTcxMykscj10LmdldFNoYWRlckluZm9Mb2coZSkudHJpbSgpO2lmKGkmJiIiPT09cilyZXR1cm4iIjtyZXR1cm4iVEhSRUUuV2ViR0xTaGFkZXI6IGdsLmdldFNoYWRlckluZm9Mb2coKSAiK24rIlxuIityKyhmdW5jdGlvbiBvKHQpe2NvbnN0IGU9dC5zcGxpdCgiXG4iKTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyllW3RdPXQrMSsiOiAiK2VbdF07cmV0dXJuIGUuam9pbigiXG4iKX0pKHQuZ2V0U2hhZGVyU291cmNlKGUpKX1mdW5jdGlvbiB2OHQodCxlKXtjb25zdCBuPV84dChlKTtyZXR1cm4idmVjNCAiK3QrIiggdmVjNCB2YWx1ZSApIHsgcmV0dXJuICIrblswXSsiVG9MaW5lYXIiK25bMV0rIjsgfSJ9ZnVuY3Rpb24gYjh0KHQsZSl7Y29uc3Qgbj1fOHQoZSk7cmV0dXJuInZlYzQgIit0KyIoIHZlYzQgdmFsdWUgKSB7IHJldHVybiBMaW5lYXJUbyIrblswXStuWzFdKyI7IH0ifWZ1bmN0aW9uIHg4dCh0LGUpe2xldCBuO3N3aXRjaChlKXtjYXNlIDE6bj0iTGluZWFyIjticmVhaztjYXNlIDI6bj0iUmVpbmhhcmQiO2JyZWFrO2Nhc2UgMzpuPSJPcHRpbWl6ZWRDaW5lb24iO2JyZWFrO2Nhc2UgNDpuPSJBQ0VTRmlsbWljIjticmVhaztjYXNlIDU6bj0iQ3VzdG9tIjticmVhaztkZWZhdWx0OmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xQcm9ncmFtOiBVbnN1cHBvcnRlZCB0b25lTWFwcGluZzoiLGUpLG49IkxpbmVhciJ9cmV0dXJuInZlYzMgIit0KyIoIHZlYzMgY29sb3IgKSB7IHJldHVybiAiK24rIlRvbmVNYXBwaW5nKCBjb2xvciApOyB9In1mdW5jdGlvbiB3OHQodCl7cmV0dXJuIiIhPT10fWZ1bmN0aW9uIFM4dCh0LGUpe3JldHVybiB0LnJlcGxhY2UoL05VTV9ESVJfTElHSFRTL2csZS5udW1EaXJMaWdodHMpLnJlcGxhY2UoL05VTV9TUE9UX0xJR0hUUy9nLGUubnVtU3BvdExpZ2h0cykucmVwbGFjZSgvTlVNX1JFQ1RfQVJFQV9MSUdIVFMvZyxlLm51bVJlY3RBcmVhTGlnaHRzKS5yZXBsYWNlKC9OVU1fUE9JTlRfTElHSFRTL2csZS5udW1Qb2ludExpZ2h0cykucmVwbGFjZSgvTlVNX0hFTUlfTElHSFRTL2csZS5udW1IZW1pTGlnaHRzKS5yZXBsYWNlKC9OVU1fRElSX0xJR0hUX1NIQURPV1MvZyxlLm51bURpckxpZ2h0U2hhZG93cykucmVwbGFjZSgvTlVNX1NQT1RfTElHSFRfU0hBRE9XUy9nLGUubnVtU3BvdExpZ2h0U2hhZG93cykucmVwbGFjZSgvTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MvZyxlLm51bVBvaW50TGlnaHRTaGFkb3dzKX1mdW5jdGlvbiBNOHQodCxlKXtyZXR1cm4gdC5yZXBsYWNlKC9OVU1fQ0xJUFBJTkdfUExBTkVTL2csZS5udW1DbGlwcGluZ1BsYW5lcykucmVwbGFjZSgvVU5JT05fQ0xJUFBJTkdfUExBTkVTL2csZS5udW1DbGlwcGluZ1BsYW5lcy1lLm51bUNsaXBJbnRlcnNlY3Rpb24pfWNvbnN0IEU4dD0vXlsgXHRdKiNpbmNsdWRlICs8KFtcd1xkLi9dKyk+L2dtO2Z1bmN0aW9uIFQ4dCh0KXtyZXR1cm4gdC5yZXBsYWNlKEU4dCxDOHQpfWZ1bmN0aW9uIEM4dCh0LGUpe2NvbnN0IG49djZ0W2VdO2lmKHZvaWQgMD09PW4pdGhyb3cgbmV3IEVycm9yKCJDYW4gbm90IHJlc29sdmUgI2luY2x1ZGUgPCIrZSsiPiIpO3JldHVybiBUOHQobil9Y29uc3QgQTh0PS8jcHJhZ21hIHVucm9sbF9sb29wW1xzXSs/Zm9yIFwoIGludCBpIFw9IChcZCspXDsgaSA8IChcZCspXDsgaSBcK1wrIFwpIFx7KFtcc1xTXSs/KSg/PVx9KVx9L2csazh0PS8jcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XHMrZm9yXHMqXChccyppbnRccytpXHMqPVxzKihcZCspXHMqO1xzKmlccyo8XHMqKFxkKylccyo7XHMqaVxzKlwrXCtccypcKVxzKnsoW1xzXFNdKz8pfVxzKyNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kL2c7ZnVuY3Rpb24gTDh0KHQpe3JldHVybiB0LnJlcGxhY2Uoazh0LE44dCkucmVwbGFjZShBOHQsUDh0KX1mdW5jdGlvbiBQOHQodCxlLG4saSl7cmV0dXJuIGNvbnNvbGUud2FybigiV2ViR0xQcm9ncmFtOiAjcHJhZ21hIHVucm9sbF9sb29wIHNoYWRlciBzeW50YXggaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSAjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0IHN5bnRheCBpbnN0ZWFkLiIpLE44dCh0LGUsbixpKX1mdW5jdGlvbiBOOHQodCxlLG4saSl7bGV0IHI9IiI7Zm9yKGxldCB0PXBhcnNlSW50KGUpO3Q8cGFyc2VJbnQobik7dCsrKXIrPWkucmVwbGFjZSgvXFtccyppXHMqXF0vZywiWyAiK3QrIiBdIikucmVwbGFjZSgvVU5ST0xMRURfTE9PUF9JTkRFWC9nLHQpO3JldHVybiByfWZ1bmN0aW9uIEk4dCh0KXtsZXQgZT0icHJlY2lzaW9uICIrdC5wcmVjaXNpb24rIiBmbG9hdDtcbnByZWNpc2lvbiAiK3QucHJlY2lzaW9uKyIgaW50OyI7cmV0dXJuImhpZ2hwIj09PXQucHJlY2lzaW9uP2UrPSJcbiNkZWZpbmUgSElHSF9QUkVDSVNJT04iOiJtZWRpdW1wIj09PXQucHJlY2lzaW9uP2UrPSJcbiNkZWZpbmUgTUVESVVNX1BSRUNJU0lPTiI6Imxvd3AiPT09dC5wcmVjaXNpb24mJihlKz0iXG4jZGVmaW5lIExPV19QUkVDSVNJT04iKSxlfWZ1bmN0aW9uIFI4dCh0LGUsbixpKXtjb25zdCByPXQuZ2V0Q29udGV4dCgpLG89bi5kZWZpbmVzO2xldCBhPW4udmVydGV4U2hhZGVyLHM9bi5mcmFnbWVudFNoYWRlcjtjb25zdCBsPShmdW5jdGlvbiBjKHQpe2xldCBlPSJTSEFET1dNQVBfVFlQRV9CQVNJQyI7cmV0dXJuIDE9PT10LnNoYWRvd01hcFR5cGU/ZT0iU0hBRE9XTUFQX1RZUEVfUENGIjoyPT09dC5zaGFkb3dNYXBUeXBlP2U9IlNIQURPV01BUF9UWVBFX1BDRl9TT0ZUIjozPT09dC5zaGFkb3dNYXBUeXBlJiYoZT0iU0hBRE9XTUFQX1RZUEVfVlNNIiksZX0pKG4pLHU9KGZ1bmN0aW9uIGgodCl7bGV0IGU9IkVOVk1BUF9UWVBFX0NVQkUiO2lmKHQuZW52TWFwKXN3aXRjaCh0LmVudk1hcE1vZGUpe2Nhc2UgZTJ0OmNhc2UgbjJ0OmU9IkVOVk1BUF9UWVBFX0NVQkUiO2JyZWFrO2Nhc2UgbzJ0OmNhc2UgYTJ0OmU9IkVOVk1BUF9UWVBFX0NVQkVfVVYifXJldHVybiBlfSkobiksZD0oZnVuY3Rpb24gcCh0KXtsZXQgZT0iRU5WTUFQX01PREVfUkVGTEVDVElPTiI7aWYodC5lbnZNYXApc3dpdGNoKHQuZW52TWFwTW9kZSl7Y2FzZSBuMnQ6Y2FzZSBhMnQ6ZT0iRU5WTUFQX01PREVfUkVGUkFDVElPTiJ9cmV0dXJuIGV9KShuKSxmPShmdW5jdGlvbiBtKHQpe2xldCBlPSJFTlZNQVBfQkxFTkRJTkdfTk9ORSI7aWYodC5lbnZNYXApc3dpdGNoKHQuY29tYmluZSl7Y2FzZSAwOmU9IkVOVk1BUF9CTEVORElOR19NVUxUSVBMWSI7YnJlYWs7Y2FzZSAxOmU9IkVOVk1BUF9CTEVORElOR19NSVgiO2JyZWFrO2Nhc2UgMjplPSJFTlZNQVBfQkxFTkRJTkdfQUREIn1yZXR1cm4gZX0pKG4pLGc9dC5nYW1tYUZhY3Rvcj4wP3QuZ2FtbWFGYWN0b3I6MSxfPW4uaXNXZWJHTDI/IiI6KGZ1bmN0aW9uIHkodCl7cmV0dXJuW3QuZXh0ZW5zaW9uRGVyaXZhdGl2ZXN8fHQuZW52TWFwQ3ViZVVWfHx0LmJ1bXBNYXB8fHQudGFuZ2VudFNwYWNlTm9ybWFsTWFwfHx0LmNsZWFyY29hdE5vcm1hbE1hcHx8dC5mbGF0U2hhZGluZ3x8InBoeXNpY2FsIj09PXQuc2hhZGVySUQ/IiNleHRlbnNpb24gR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIDogZW5hYmxlIjoiIiwodC5leHRlbnNpb25GcmFnRGVwdGh8fHQubG9nYXJpdGhtaWNEZXB0aEJ1ZmZlcikmJnQucmVuZGVyZXJFeHRlbnNpb25GcmFnRGVwdGg/IiNleHRlbnNpb24gR0xfRVhUX2ZyYWdfZGVwdGggOiBlbmFibGUiOiIiLHQuZXh0ZW5zaW9uRHJhd0J1ZmZlcnMmJnQucmVuZGVyZXJFeHRlbnNpb25EcmF3QnVmZmVycz8iI2V4dGVuc2lvbiBHTF9FWFRfZHJhd19idWZmZXJzIDogcmVxdWlyZSI6IiIsKHQuZXh0ZW5zaW9uU2hhZGVyVGV4dHVyZUxPRHx8dC5lbnZNYXB8fHQudHJhbnNtaXNzaW9uPjApJiZ0LnJlbmRlcmVyRXh0ZW5zaW9uU2hhZGVyVGV4dHVyZUxvZD8iI2V4dGVuc2lvbiBHTF9FWFRfc2hhZGVyX3RleHR1cmVfbG9kIDogZW5hYmxlIjoiIl0uZmlsdGVyKHc4dCkuam9pbigiXG4iKX0pKG4pLHY9KGZ1bmN0aW9uIGIodCl7Y29uc3QgZT1bXTtmb3IoY29uc3QgbiBpbiB0KXtjb25zdCBpPXRbbl07ITEhPT1pJiZlLnB1c2goIiNkZWZpbmUgIituKyIgIitpKX1yZXR1cm4gZS5qb2luKCJcbiIpfSkobykseD1yLmNyZWF0ZVByb2dyYW0oKTtsZXQgdyxTLE09bi5nbHNsVmVyc2lvbj8iI3ZlcnNpb24gIituLmdsc2xWZXJzaW9uKyJcbiI6IiI7bi5pc1Jhd1NoYWRlck1hdGVyaWFsPyh3PVt2XS5maWx0ZXIodzh0KS5qb2luKCJcbiIpLHcubGVuZ3RoPjAmJih3Kz0iXG4iKSxTPVtfLHZdLmZpbHRlcih3OHQpLmpvaW4oIlxuIiksUy5sZW5ndGg+MCYmKFMrPSJcbiIpKToodz1bSTh0KG4pLCIjZGVmaW5lIFNIQURFUl9OQU1FICIrbi5zaGFkZXJOYW1lLHYsbi5pbnN0YW5jaW5nPyIjZGVmaW5lIFVTRV9JTlNUQU5DSU5HIjoiIixuLmluc3RhbmNpbmdDb2xvcj8iI2RlZmluZSBVU0VfSU5TVEFOQ0lOR19DT0xPUiI6IiIsbi5zdXBwb3J0c1ZlcnRleFRleHR1cmVzPyIjZGVmaW5lIFZFUlRFWF9URVhUVVJFUyI6IiIsIiNkZWZpbmUgR0FNTUFfRkFDVE9SICIrZywiI2RlZmluZSBNQVhfQk9ORVMgIituLm1heEJvbmVzLG4udXNlRm9nJiZuLmZvZz8iI2RlZmluZSBVU0VfRk9HIjoiIixuLnVzZUZvZyYmbi5mb2dFeHAyPyIjZGVmaW5lIEZPR19FWFAyIjoiIixuLm1hcD8iI2RlZmluZSBVU0VfTUFQIjoiIixuLmVudk1hcD8iI2RlZmluZSBVU0VfRU5WTUFQIjoiIixuLmVudk1hcD8iI2RlZmluZSAiK2Q6IiIsbi5saWdodE1hcD8iI2RlZmluZSBVU0VfTElHSFRNQVAiOiIiLG4uYW9NYXA/IiNkZWZpbmUgVVNFX0FPTUFQIjoiIixuLmVtaXNzaXZlTWFwPyIjZGVmaW5lIFVTRV9FTUlTU0lWRU1BUCI6IiIsbi5idW1wTWFwPyIjZGVmaW5lIFVTRV9CVU1QTUFQIjoiIixuLm5vcm1hbE1hcD8iI2RlZmluZSBVU0VfTk9STUFMTUFQIjoiIixuLm5vcm1hbE1hcCYmbi5vYmplY3RTcGFjZU5vcm1hbE1hcD8iI2RlZmluZSBPQkpFQ1RTUEFDRV9OT1JNQUxNQVAiOiIiLG4ubm9ybWFsTWFwJiZuLnRhbmdlbnRTcGFjZU5vcm1hbE1hcD8iI2RlZmluZSBUQU5HRU5UU1BBQ0VfTk9STUFMTUFQIjoiIixuLmNsZWFyY29hdE1hcD8iI2RlZmluZSBVU0VfQ0xFQVJDT0FUTUFQIjoiIixuLmNsZWFyY29hdFJvdWdobmVzc01hcD8iI2RlZmluZSBVU0VfQ0xFQVJDT0FUX1JPVUdITkVTU01BUCI6IiIsbi5jbGVhcmNvYXROb3JtYWxNYXA/IiNkZWZpbmUgVVNFX0NMRUFSQ09BVF9OT1JNQUxNQVAiOiIiLG4uZGlzcGxhY2VtZW50TWFwJiZuLnN1cHBvcnRzVmVydGV4VGV4dHVyZXM/IiNkZWZpbmUgVVNFX0RJU1BMQUNFTUVOVE1BUCI6IiIsbi5zcGVjdWxhck1hcD8iI2RlZmluZSBVU0VfU1BFQ1VMQVJNQVAiOiIiLG4uc3BlY3VsYXJJbnRlbnNpdHlNYXA/IiNkZWZpbmUgVVNFX1NQRUNVTEFSSU5URU5TSVRZTUFQIjoiIixuLnNwZWN1bGFyVGludE1hcD8iI2RlZmluZSBVU0VfU1BFQ1VMQVJUSU5UTUFQIjoiIixuLnJvdWdobmVzc01hcD8iI2RlZmluZSBVU0VfUk9VR0hORVNTTUFQIjoiIixuLm1ldGFsbmVzc01hcD8iI2RlZmluZSBVU0VfTUVUQUxORVNTTUFQIjoiIixuLmFscGhhTWFwPyIjZGVmaW5lIFVTRV9BTFBIQU1BUCI6IiIsbi50cmFuc21pc3Npb24/IiNkZWZpbmUgVVNFX1RSQU5TTUlTU0lPTiI6IiIsbi50cmFuc21pc3Npb25NYXA/IiNkZWZpbmUgVVNFX1RSQU5TTUlTU0lPTk1BUCI6IiIsbi50aGlja25lc3NNYXA/IiNkZWZpbmUgVVNFX1RISUNLTkVTU01BUCI6IiIsbi52ZXJ0ZXhUYW5nZW50cz8iI2RlZmluZSBVU0VfVEFOR0VOVCI6IiIsbi52ZXJ0ZXhDb2xvcnM/IiNkZWZpbmUgVVNFX0NPTE9SIjoiIixuLnZlcnRleEFscGhhcz8iI2RlZmluZSBVU0VfQ09MT1JfQUxQSEEiOiIiLG4udmVydGV4VXZzPyIjZGVmaW5lIFVTRV9VViI6IiIsbi51dnNWZXJ0ZXhPbmx5PyIjZGVmaW5lIFVWU19WRVJURVhfT05MWSI6IiIsbi5mbGF0U2hhZGluZz8iI2RlZmluZSBGTEFUX1NIQURFRCI6IiIsbi5za2lubmluZz8iI2RlZmluZSBVU0VfU0tJTk5JTkciOiIiLG4udXNlVmVydGV4VGV4dHVyZT8iI2RlZmluZSBCT05FX1RFWFRVUkUiOiIiLG4ubW9ycGhUYXJnZXRzPyIjZGVmaW5lIFVTRV9NT1JQSFRBUkdFVFMiOiIiLG4ubW9ycGhOb3JtYWxzJiYhMT09PW4uZmxhdFNoYWRpbmc/IiNkZWZpbmUgVVNFX01PUlBITk9STUFMUyI6IiIsbi5kb3VibGVTaWRlZD8iI2RlZmluZSBET1VCTEVfU0lERUQiOiIiLG4uZmxpcFNpZGVkPyIjZGVmaW5lIEZMSVBfU0lERUQiOiIiLG4uc2hhZG93TWFwRW5hYmxlZD8iI2RlZmluZSBVU0VfU0hBRE9XTUFQIjoiIixuLnNoYWRvd01hcEVuYWJsZWQ/IiNkZWZpbmUgIitsOiIiLG4uc2l6ZUF0dGVudWF0aW9uPyIjZGVmaW5lIFVTRV9TSVpFQVRURU5VQVRJT04iOiIiLG4ubG9nYXJpdGhtaWNEZXB0aEJ1ZmZlcj8iI2RlZmluZSBVU0VfTE9HREVQVEhCVUYiOiIiLG4ubG9nYXJpdGhtaWNEZXB0aEJ1ZmZlciYmbi5yZW5kZXJlckV4dGVuc2lvbkZyYWdEZXB0aD8iI2RlZmluZSBVU0VfTE9HREVQVEhCVUZfRVhUIjoiIiwidW5pZm9ybSBtYXQ0IG1vZGVsTWF0cml4OyIsInVuaWZvcm0gbWF0NCBtb2RlbFZpZXdNYXRyaXg7IiwidW5pZm9ybSBtYXQ0IHByb2plY3Rpb25NYXRyaXg7IiwidW5pZm9ybSBtYXQ0IHZpZXdNYXRyaXg7IiwidW5pZm9ybSBtYXQzIG5vcm1hbE1hdHJpeDsiLCJ1bmlmb3JtIHZlYzMgY2FtZXJhUG9zaXRpb247IiwidW5pZm9ybSBib29sIGlzT3J0aG9ncmFwaGljOyIsIiNpZmRlZiBVU0VfSU5TVEFOQ0lORyIsIlx0YXR0cmlidXRlIG1hdDQgaW5zdGFuY2VNYXRyaXg7IiwiI2VuZGlmIiwiI2lmZGVmIFVTRV9JTlNUQU5DSU5HX0NPTE9SIiwiXHRhdHRyaWJ1dGUgdmVjMyBpbnN0YW5jZUNvbG9yOyIsIiNlbmRpZiIsImF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uOyIsImF0dHJpYnV0ZSB2ZWMzIG5vcm1hbDsiLCJhdHRyaWJ1dGUgdmVjMiB1djsiLCIjaWZkZWYgVVNFX1RBTkdFTlQiLCJcdGF0dHJpYnV0ZSB2ZWM0IHRhbmdlbnQ7IiwiI2VuZGlmIiwiI2lmIGRlZmluZWQoIFVTRV9DT0xPUl9BTFBIQSApIiwiXHRhdHRyaWJ1dGUgdmVjNCBjb2xvcjsiLCIjZWxpZiBkZWZpbmVkKCBVU0VfQ09MT1IgKSIsIlx0YXR0cmlidXRlIHZlYzMgY29sb3I7IiwiI2VuZGlmIiwiI2lmZGVmIFVTRV9NT1JQSFRBUkdFVFMiLCJcdGF0dHJpYnV0ZSB2ZWMzIG1vcnBoVGFyZ2V0MDsiLCJcdGF0dHJpYnV0ZSB2ZWMzIG1vcnBoVGFyZ2V0MTsiLCJcdGF0dHJpYnV0ZSB2ZWMzIG1vcnBoVGFyZ2V0MjsiLCJcdGF0dHJpYnV0ZSB2ZWMzIG1vcnBoVGFyZ2V0MzsiLCJcdCNpZmRlZiBVU0VfTU9SUEhOT1JNQUxTIiwiXHRcdGF0dHJpYnV0ZSB2ZWMzIG1vcnBoTm9ybWFsMDsiLCJcdFx0YXR0cmlidXRlIHZlYzMgbW9ycGhOb3JtYWwxOyIsIlx0XHRhdHRyaWJ1dGUgdmVjMyBtb3JwaE5vcm1hbDI7IiwiXHRcdGF0dHJpYnV0ZSB2ZWMzIG1vcnBoTm9ybWFsMzsiLCJcdCNlbHNlIiwiXHRcdGF0dHJpYnV0ZSB2ZWMzIG1vcnBoVGFyZ2V0NDsiLCJcdFx0YXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQ1OyIsIlx0XHRhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDY7IiwiXHRcdGF0dHJpYnV0ZSB2ZWMzIG1vcnBoVGFyZ2V0NzsiLCJcdCNlbmRpZiIsIiNlbmRpZiIsIiNpZmRlZiBVU0VfU0tJTk5JTkciLCJcdGF0dHJpYnV0ZSB2ZWM0IHNraW5JbmRleDsiLCJcdGF0dHJpYnV0ZSB2ZWM0IHNraW5XZWlnaHQ7IiwiI2VuZGlmIiwiXG4iXS5maWx0ZXIodzh0KS5qb2luKCJcbiIpLFM9W18sSTh0KG4pLCIjZGVmaW5lIFNIQURFUl9OQU1FICIrbi5zaGFkZXJOYW1lLHYsbi5hbHBoYVRlc3Q/IiNkZWZpbmUgQUxQSEFURVNUICIrbi5hbHBoYVRlc3QrKG4uYWxwaGFUZXN0JTE/IiI6Ii4wIik6IiIsIiNkZWZpbmUgR0FNTUFfRkFDVE9SICIrZyxuLnVzZUZvZyYmbi5mb2c/IiNkZWZpbmUgVVNFX0ZPRyI6IiIsbi51c2VGb2cmJm4uZm9nRXhwMj8iI2RlZmluZSBGT0dfRVhQMiI6IiIsbi5tYXA/IiNkZWZpbmUgVVNFX01BUCI6IiIsbi5tYXRjYXA/IiNkZWZpbmUgVVNFX01BVENBUCI6IiIsbi5lbnZNYXA/IiNkZWZpbmUgVVNFX0VOVk1BUCI6IiIsbi5lbnZNYXA/IiNkZWZpbmUgIit1OiIiLG4uZW52TWFwPyIjZGVmaW5lICIrZDoiIixuLmVudk1hcD8iI2RlZmluZSAiK2Y6IiIsbi5saWdodE1hcD8iI2RlZmluZSBVU0VfTElHSFRNQVAiOiIiLG4uYW9NYXA/IiNkZWZpbmUgVVNFX0FPTUFQIjoiIixuLmVtaXNzaXZlTWFwPyIjZGVmaW5lIFVTRV9FTUlTU0lWRU1BUCI6IiIsbi5idW1wTWFwPyIjZGVmaW5lIFVTRV9CVU1QTUFQIjoiIixuLm5vcm1hbE1hcD8iI2RlZmluZSBVU0VfTk9STUFMTUFQIjoiIixuLm5vcm1hbE1hcCYmbi5vYmplY3RTcGFjZU5vcm1hbE1hcD8iI2RlZmluZSBPQkpFQ1RTUEFDRV9OT1JNQUxNQVAiOiIiLG4ubm9ybWFsTWFwJiZuLnRhbmdlbnRTcGFjZU5vcm1hbE1hcD8iI2RlZmluZSBUQU5HRU5UU1BBQ0VfTk9STUFMTUFQIjoiIixuLmNsZWFyY29hdE1hcD8iI2RlZmluZSBVU0VfQ0xFQVJDT0FUTUFQIjoiIixuLmNsZWFyY29hdFJvdWdobmVzc01hcD8iI2RlZmluZSBVU0VfQ0xFQVJDT0FUX1JPVUdITkVTU01BUCI6IiIsbi5jbGVhcmNvYXROb3JtYWxNYXA/IiNkZWZpbmUgVVNFX0NMRUFSQ09BVF9OT1JNQUxNQVAiOiIiLG4uc3BlY3VsYXJNYXA/IiNkZWZpbmUgVVNFX1NQRUNVTEFSTUFQIjoiIixuLnNwZWN1bGFySW50ZW5zaXR5TWFwPyIjZGVmaW5lIFVTRV9TUEVDVUxBUklOVEVOU0lUWU1BUCI6IiIsbi5zcGVjdWxhclRpbnRNYXA/IiNkZWZpbmUgVVNFX1NQRUNVTEFSVElOVE1BUCI6IiIsbi5yb3VnaG5lc3NNYXA/IiNkZWZpbmUgVVNFX1JPVUdITkVTU01BUCI6IiIsbi5tZXRhbG5lc3NNYXA/IiNkZWZpbmUgVVNFX01FVEFMTkVTU01BUCI6IiIsbi5hbHBoYU1hcD8iI2RlZmluZSBVU0VfQUxQSEFNQVAiOiIiLG4uc2hlZW4/IiNkZWZpbmUgVVNFX1NIRUVOIjoiIixuLnRyYW5zbWlzc2lvbj8iI2RlZmluZSBVU0VfVFJBTlNNSVNTSU9OIjoiIixuLnRyYW5zbWlzc2lvbk1hcD8iI2RlZmluZSBVU0VfVFJBTlNNSVNTSU9OTUFQIjoiIixuLnRoaWNrbmVzc01hcD8iI2RlZmluZSBVU0VfVEhJQ0tORVNTTUFQIjoiIixuLnZlcnRleFRhbmdlbnRzPyIjZGVmaW5lIFVTRV9UQU5HRU5UIjoiIixuLnZlcnRleENvbG9yc3x8bi5pbnN0YW5jaW5nQ29sb3I/IiNkZWZpbmUgVVNFX0NPTE9SIjoiIixuLnZlcnRleEFscGhhcz8iI2RlZmluZSBVU0VfQ09MT1JfQUxQSEEiOiIiLG4udmVydGV4VXZzPyIjZGVmaW5lIFVTRV9VViI6IiIsbi51dnNWZXJ0ZXhPbmx5PyIjZGVmaW5lIFVWU19WRVJURVhfT05MWSI6IiIsbi5ncmFkaWVudE1hcD8iI2RlZmluZSBVU0VfR1JBRElFTlRNQVAiOiIiLG4uZmxhdFNoYWRpbmc/IiNkZWZpbmUgRkxBVF9TSEFERUQiOiIiLG4uZG91YmxlU2lkZWQ/IiNkZWZpbmUgRE9VQkxFX1NJREVEIjoiIixuLmZsaXBTaWRlZD8iI2RlZmluZSBGTElQX1NJREVEIjoiIixuLnNoYWRvd01hcEVuYWJsZWQ/IiNkZWZpbmUgVVNFX1NIQURPV01BUCI6IiIsbi5zaGFkb3dNYXBFbmFibGVkPyIjZGVmaW5lICIrbDoiIixuLnByZW11bHRpcGxpZWRBbHBoYT8iI2RlZmluZSBQUkVNVUxUSVBMSUVEX0FMUEhBIjoiIixuLnBoeXNpY2FsbHlDb3JyZWN0TGlnaHRzPyIjZGVmaW5lIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFMiOiIiLG4ubG9nYXJpdGhtaWNEZXB0aEJ1ZmZlcj8iI2RlZmluZSBVU0VfTE9HREVQVEhCVUYiOiIiLG4ubG9nYXJpdGhtaWNEZXB0aEJ1ZmZlciYmbi5yZW5kZXJlckV4dGVuc2lvbkZyYWdEZXB0aD8iI2RlZmluZSBVU0VfTE9HREVQVEhCVUZfRVhUIjoiIiwobi5leHRlbnNpb25TaGFkZXJUZXh0dXJlTE9EfHxuLmVudk1hcCkmJm4ucmVuZGVyZXJFeHRlbnNpb25TaGFkZXJUZXh0dXJlTG9kPyIjZGVmaW5lIFRFWFRVUkVfTE9EX0VYVCI6IiIsInVuaWZvcm0gbWF0NCB2aWV3TWF0cml4OyIsInVuaWZvcm0gdmVjMyBjYW1lcmFQb3NpdGlvbjsiLCJ1bmlmb3JtIGJvb2wgaXNPcnRob2dyYXBoaWM7IiwwIT09bi50b25lTWFwcGluZz8iI2RlZmluZSBUT05FX01BUFBJTkciOiIiLDAhPT1uLnRvbmVNYXBwaW5nP3Y2dC50b25lbWFwcGluZ19wYXJzX2ZyYWdtZW50OiIiLDAhPT1uLnRvbmVNYXBwaW5nP3g4dCgidG9uZU1hcHBpbmciLG4udG9uZU1hcHBpbmcpOiIiLG4uZGl0aGVyaW5nPyIjZGVmaW5lIERJVEhFUklORyI6IiIsdjZ0LmVuY29kaW5nc19wYXJzX2ZyYWdtZW50LG4ubWFwP3Y4dCgibWFwVGV4ZWxUb0xpbmVhciIsbi5tYXBFbmNvZGluZyk6IiIsbi5tYXRjYXA/djh0KCJtYXRjYXBUZXhlbFRvTGluZWFyIixuLm1hdGNhcEVuY29kaW5nKToiIixuLmVudk1hcD92OHQoImVudk1hcFRleGVsVG9MaW5lYXIiLG4uZW52TWFwRW5jb2RpbmcpOiIiLG4uZW1pc3NpdmVNYXA/djh0KCJlbWlzc2l2ZU1hcFRleGVsVG9MaW5lYXIiLG4uZW1pc3NpdmVNYXBFbmNvZGluZyk6IiIsbi5zcGVjdWxhclRpbnRNYXA/djh0KCJzcGVjdWxhclRpbnRNYXBUZXhlbFRvTGluZWFyIixuLnNwZWN1bGFyVGludE1hcEVuY29kaW5nKToiIixuLmxpZ2h0TWFwP3Y4dCgibGlnaHRNYXBUZXhlbFRvTGluZWFyIixuLmxpZ2h0TWFwRW5jb2RpbmcpOiIiLGI4dCgibGluZWFyVG9PdXRwdXRUZXhlbCIsbi5vdXRwdXRFbmNvZGluZyksbi5kZXB0aFBhY2tpbmc/IiNkZWZpbmUgREVQVEhfUEFDS0lORyAiK24uZGVwdGhQYWNraW5nOiIiLCJcbiJdLmZpbHRlcih3OHQpLmpvaW4oIlxuIikpLGE9VDh0KGEpLGE9Uzh0KGEsbiksYT1NOHQoYSxuKSxzPVQ4dChzKSxzPVM4dChzLG4pLHM9TTh0KHMsbiksYT1MOHQoYSkscz1MOHQocyksbi5pc1dlYkdMMiYmITAhPT1uLmlzUmF3U2hhZGVyTWF0ZXJpYWwmJihNPSIjdmVyc2lvbiAzMDAgZXNcbiIsdz1bIiNkZWZpbmUgYXR0cmlidXRlIGluIiwiI2RlZmluZSB2YXJ5aW5nIG91dCIsIiNkZWZpbmUgdGV4dHVyZTJEIHRleHR1cmUiXS5qb2luKCJcbiIpKyJcbiIrdyxTPVsiI2RlZmluZSB2YXJ5aW5nIGluIixuLmdsc2xWZXJzaW9uPT09dDV0PyIiOiJvdXQgaGlnaHAgdmVjNCBwY19mcmFnQ29sb3I7IixuLmdsc2xWZXJzaW9uPT09dDV0PyIiOiIjZGVmaW5lIGdsX0ZyYWdDb2xvciBwY19mcmFnQ29sb3IiLCIjZGVmaW5lIGdsX0ZyYWdEZXB0aEVYVCBnbF9GcmFnRGVwdGgiLCIjZGVmaW5lIHRleHR1cmUyRCB0ZXh0dXJlIiwiI2RlZmluZSB0ZXh0dXJlQ3ViZSB0ZXh0dXJlIiwiI2RlZmluZSB0ZXh0dXJlMkRQcm9qIHRleHR1cmVQcm9qIiwiI2RlZmluZSB0ZXh0dXJlMkRMb2RFWFQgdGV4dHVyZUxvZCIsIiNkZWZpbmUgdGV4dHVyZTJEUHJvakxvZEVYVCB0ZXh0dXJlUHJvakxvZCIsIiNkZWZpbmUgdGV4dHVyZUN1YmVMb2RFWFQgdGV4dHVyZUxvZCIsIiNkZWZpbmUgdGV4dHVyZTJER3JhZEVYVCB0ZXh0dXJlR3JhZCIsIiNkZWZpbmUgdGV4dHVyZTJEUHJvakdyYWRFWFQgdGV4dHVyZVByb2pHcmFkIiwiI2RlZmluZSB0ZXh0dXJlQ3ViZUdyYWRFWFQgdGV4dHVyZUdyYWQiXS5qb2luKCJcbiIpKyJcbiIrUyk7Y29uc3QgRT1NK1MrcyxUPW04dChyLDM1NjMzLE0rdythKSxDPW04dChyLDM1NjMyLEUpO2lmKHIuYXR0YWNoU2hhZGVyKHgsVCksci5hdHRhY2hTaGFkZXIoeCxDKSx2b2lkIDAhPT1uLmluZGV4MEF0dHJpYnV0ZU5hbWU/ci5iaW5kQXR0cmliTG9jYXRpb24oeCwwLG4uaW5kZXgwQXR0cmlidXRlTmFtZSk6ITA9PT1uLm1vcnBoVGFyZ2V0cyYmci5iaW5kQXR0cmliTG9jYXRpb24oeCwwLCJwb3NpdGlvbiIpLHIubGlua1Byb2dyYW0oeCksdC5kZWJ1Zy5jaGVja1NoYWRlckVycm9ycyl7Y29uc3QgdD1yLmdldFByb2dyYW1JbmZvTG9nKHgpLnRyaW0oKSxlPXIuZ2V0U2hhZGVySW5mb0xvZyhUKS50cmltKCksbj1yLmdldFNoYWRlckluZm9Mb2coQykudHJpbSgpO2xldCBpPSEwLG89ITA7aWYoITE9PT1yLmdldFByb2dyYW1QYXJhbWV0ZXIoeCwzNTcxNCkpe2k9ITE7Y29uc3QgZT15OHQocixULCJ2ZXJ0ZXgiKSxuPXk4dChyLEMsImZyYWdtZW50Iik7Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xQcm9ncmFtOiBzaGFkZXIgZXJyb3I6ICIsci5nZXRFcnJvcigpLCIzNTcxNSIsci5nZXRQcm9ncmFtUGFyYW1ldGVyKHgsMzU3MTUpLCJnbC5nZXRQcm9ncmFtSW5mb0xvZyIsdCxlLG4pfWVsc2UiIiE9PXQ/Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFByb2dyYW06IGdsLmdldFByb2dyYW1JbmZvTG9nKCkiLHQpOiIiIT09ZSYmIiIhPT1ufHwobz0hMSk7byYmKHRoaXMuZGlhZ25vc3RpY3M9e3J1bm5hYmxlOmkscHJvZ3JhbUxvZzp0LHZlcnRleFNoYWRlcjp7bG9nOmUscHJlZml4Ond9LGZyYWdtZW50U2hhZGVyOntsb2c6bixwcmVmaXg6U319KX1sZXQgQSxrO3JldHVybiByLmRlbGV0ZVNoYWRlcihUKSxyLmRlbGV0ZVNoYWRlcihDKSx0aGlzLmdldFVuaWZvcm1zPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PUEmJihBPW5ldyBmOHQocix4KSksQX0sdGhpcy5nZXRBdHRyaWJ1dGVzPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PWsmJihrPShmdW5jdGlvbiB0KGUsbil7Y29uc3QgaT17fSxyPWUuZ2V0UHJvZ3JhbVBhcmFtZXRlcihuLDM1NzIxKTtmb3IobGV0IHQ9MDt0PHI7dCsrKXtjb25zdCByPWUuZ2V0QWN0aXZlQXR0cmliKG4sdCkubmFtZTtpW3JdPWUuZ2V0QXR0cmliTG9jYXRpb24obixyKX1yZXR1cm4gaX0pKHIseCkpLGt9LHRoaXMuZGVzdHJveT1mdW5jdGlvbigpe2kucmVsZWFzZVN0YXRlc09mUHJvZ3JhbSh0aGlzKSxyLmRlbGV0ZVByb2dyYW0oeCksdGhpcy5wcm9ncmFtPXZvaWQgMH0sdGhpcy5uYW1lPW4uc2hhZGVyTmFtZSx0aGlzLmlkPWc4dCsrLHRoaXMuY2FjaGVLZXk9ZSx0aGlzLnVzZWRUaW1lcz0xLHRoaXMucHJvZ3JhbT14LHRoaXMudmVydGV4U2hhZGVyPVQsdGhpcy5mcmFnbWVudFNoYWRlcj1DLHRoaXN9ZnVuY3Rpb24gTzh0KHQsZSxuLGkscixvLGEpe2NvbnN0IHM9W10sbD1yLmlzV2ViR0wyLGM9ci5sb2dhcml0aG1pY0RlcHRoQnVmZmVyLHU9ci5mbG9hdFZlcnRleFRleHR1cmVzLGg9ci5tYXhWZXJ0ZXhVbmlmb3JtcyxkPXIudmVydGV4VGV4dHVyZXM7bGV0IHA9ci5wcmVjaXNpb247Y29uc3QgZj17TWVzaERlcHRoTWF0ZXJpYWw6ImRlcHRoIixNZXNoRGlzdGFuY2VNYXRlcmlhbDoiZGlzdGFuY2VSR0JBIixNZXNoTm9ybWFsTWF0ZXJpYWw6Im5vcm1hbCIsTWVzaEJhc2ljTWF0ZXJpYWw6ImJhc2ljIixNZXNoTGFtYmVydE1hdGVyaWFsOiJsYW1iZXJ0IixNZXNoUGhvbmdNYXRlcmlhbDoicGhvbmciLE1lc2hUb29uTWF0ZXJpYWw6InRvb24iLE1lc2hTdGFuZGFyZE1hdGVyaWFsOiJwaHlzaWNhbCIsTWVzaFBoeXNpY2FsTWF0ZXJpYWw6InBoeXNpY2FsIixNZXNoTWF0Y2FwTWF0ZXJpYWw6Im1hdGNhcCIsTGluZUJhc2ljTWF0ZXJpYWw6ImJhc2ljIixMaW5lRGFzaGVkTWF0ZXJpYWw6ImRhc2hlZCIsUG9pbnRzTWF0ZXJpYWw6InBvaW50cyIsU2hhZG93TWF0ZXJpYWw6InNoYWRvdyIsU3ByaXRlTWF0ZXJpYWw6InNwcml0ZSJ9LG09WyJwcmVjaXNpb24iLCJpc1dlYkdMMiIsInN1cHBvcnRzVmVydGV4VGV4dHVyZXMiLCJvdXRwdXRFbmNvZGluZyIsImluc3RhbmNpbmciLCJpbnN0YW5jaW5nQ29sb3IiLCJtYXAiLCJtYXBFbmNvZGluZyIsIm1hdGNhcCIsIm1hdGNhcEVuY29kaW5nIiwiZW52TWFwIiwiZW52TWFwTW9kZSIsImVudk1hcEVuY29kaW5nIiwiZW52TWFwQ3ViZVVWIiwibGlnaHRNYXAiLCJsaWdodE1hcEVuY29kaW5nIiwiYW9NYXAiLCJlbWlzc2l2ZU1hcCIsImVtaXNzaXZlTWFwRW5jb2RpbmciLCJidW1wTWFwIiwibm9ybWFsTWFwIiwib2JqZWN0U3BhY2VOb3JtYWxNYXAiLCJ0YW5nZW50U3BhY2VOb3JtYWxNYXAiLCJjbGVhcmNvYXRNYXAiLCJjbGVhcmNvYXRSb3VnaG5lc3NNYXAiLCJjbGVhcmNvYXROb3JtYWxNYXAiLCJkaXNwbGFjZW1lbnRNYXAiLCJzcGVjdWxhck1hcCIsInNwZWN1bGFySW50ZW5zaXR5TWFwIiwic3BlY3VsYXJUaW50TWFwIiwic3BlY3VsYXJUaW50TWFwRW5jb2RpbmciLCJyb3VnaG5lc3NNYXAiLCJtZXRhbG5lc3NNYXAiLCJncmFkaWVudE1hcCIsImFscGhhTWFwIiwiY29tYmluZSIsInZlcnRleENvbG9ycyIsInZlcnRleEFscGhhcyIsInZlcnRleFRhbmdlbnRzIiwidmVydGV4VXZzIiwidXZzVmVydGV4T25seSIsImZvZyIsInVzZUZvZyIsImZvZ0V4cDIiLCJmbGF0U2hhZGluZyIsInNpemVBdHRlbnVhdGlvbiIsImxvZ2FyaXRobWljRGVwdGhCdWZmZXIiLCJza2lubmluZyIsIm1heEJvbmVzIiwidXNlVmVydGV4VGV4dHVyZSIsIm1vcnBoVGFyZ2V0cyIsIm1vcnBoTm9ybWFscyIsInByZW11bHRpcGxpZWRBbHBoYSIsIm51bURpckxpZ2h0cyIsIm51bVBvaW50TGlnaHRzIiwibnVtU3BvdExpZ2h0cyIsIm51bUhlbWlMaWdodHMiLCJudW1SZWN0QXJlYUxpZ2h0cyIsIm51bURpckxpZ2h0U2hhZG93cyIsIm51bVBvaW50TGlnaHRTaGFkb3dzIiwibnVtU3BvdExpZ2h0U2hhZG93cyIsInNoYWRvd01hcEVuYWJsZWQiLCJzaGFkb3dNYXBUeXBlIiwidG9uZU1hcHBpbmciLCJwaHlzaWNhbGx5Q29ycmVjdExpZ2h0cyIsImFscGhhVGVzdCIsImRvdWJsZVNpZGVkIiwiZmxpcFNpZGVkIiwibnVtQ2xpcHBpbmdQbGFuZXMiLCJudW1DbGlwSW50ZXJzZWN0aW9uIiwiZGVwdGhQYWNraW5nIiwiZGl0aGVyaW5nIiwic2hlZW4iLCJ0cmFuc21pc3Npb24iLCJ0cmFuc21pc3Npb25NYXAiLCJ0aGlja25lc3NNYXAiXTtmdW5jdGlvbiBnKHQpe2xldCBlO3JldHVybiB0JiZ0LmlzVGV4dHVyZT9lPXQuZW5jb2Rpbmc6dCYmdC5pc1dlYkdMUmVuZGVyVGFyZ2V0Pyhjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUHJvZ3JhbXMuZ2V0VGV4dHVyZUVuY29kaW5nRnJvbU1hcDogZG9uJ3QgdXNlIHJlbmRlciB0YXJnZXRzIGFzIHRleHR1cmVzLiBVc2UgdGhlaXIgLnRleHR1cmUgcHJvcGVydHkgaW5zdGVhZC4iKSxlPXQudGV4dHVyZS5lbmNvZGluZyk6ZT1HMnQsZX1yZXR1cm57Z2V0UGFyYW1ldGVyczpmdW5jdGlvbiBfKG8scyxtLHksdil7Y29uc3QgYj15LmZvZyx4PShvLmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWw/bjplKS5nZXQoby5lbnZNYXB8fChvLmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWw/eS5lbnZpcm9ubWVudDpudWxsKSksdz1mW28udHlwZV0sUz12LmlzU2tpbm5lZE1lc2g/KGZ1bmN0aW9uIE0odCl7Y29uc3QgZT10LnNrZWxldG9uLmJvbmVzO2lmKHUpcmV0dXJuIDEwMjQ7e2NvbnN0IHQ9TWF0aC5mbG9vcigoaC0yMCkvNCksbj1NYXRoLm1pbih0LGUubGVuZ3RoKTtyZXR1cm4gbjxlLmxlbmd0aD8oY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBTa2VsZXRvbiBoYXMgIitlLmxlbmd0aCsiIGJvbmVzLiBUaGlzIEdQVSBzdXBwb3J0cyAiK24rIi4iKSwwKTpufX0pKHYpOjA7bGV0IEUsVDtpZihudWxsIT09by5wcmVjaXNpb24mJihwPXIuZ2V0TWF4UHJlY2lzaW9uKG8ucHJlY2lzaW9uKSxwIT09by5wcmVjaXNpb24mJmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xQcm9ncmFtLmdldFBhcmFtZXRlcnM6IixvLnByZWNpc2lvbiwibm90IHN1cHBvcnRlZCwgdXNpbmciLHAsImluc3RlYWQuIikpLHcpe2NvbnN0IHQ9eDZ0W3ddO0U9dC52ZXJ0ZXhTaGFkZXIsVD10LmZyYWdtZW50U2hhZGVyfWVsc2UgRT1vLnZlcnRleFNoYWRlcixUPW8uZnJhZ21lbnRTaGFkZXI7Y29uc3QgQz10LmdldFJlbmRlclRhcmdldCgpO3JldHVybntpc1dlYkdMMjpsLHNoYWRlcklEOncsc2hhZGVyTmFtZTpvLnR5cGUsdmVydGV4U2hhZGVyOkUsZnJhZ21lbnRTaGFkZXI6VCxkZWZpbmVzOm8uZGVmaW5lcyxpc1Jhd1NoYWRlck1hdGVyaWFsOiEwPT09by5pc1Jhd1NoYWRlck1hdGVyaWFsLGdsc2xWZXJzaW9uOm8uZ2xzbFZlcnNpb24scHJlY2lzaW9uOnAsaW5zdGFuY2luZzohMD09PXYuaXNJbnN0YW5jZWRNZXNoLGluc3RhbmNpbmdDb2xvcjohMD09PXYuaXNJbnN0YW5jZWRNZXNoJiZudWxsIT09di5pbnN0YW5jZUNvbG9yLHN1cHBvcnRzVmVydGV4VGV4dHVyZXM6ZCxvdXRwdXRFbmNvZGluZzpudWxsIT09Qz9nKEMudGV4dHVyZSk6dC5vdXRwdXRFbmNvZGluZyxtYXA6ISFvLm1hcCxtYXBFbmNvZGluZzpnKG8ubWFwKSxtYXRjYXA6ISFvLm1hdGNhcCxtYXRjYXBFbmNvZGluZzpnKG8ubWF0Y2FwKSxlbnZNYXA6ISF4LGVudk1hcE1vZGU6eCYmeC5tYXBwaW5nLGVudk1hcEVuY29kaW5nOmcoeCksZW52TWFwQ3ViZVVWOiEheCYmKHgubWFwcGluZz09PW8ydHx8eC5tYXBwaW5nPT09YTJ0KSxsaWdodE1hcDohIW8ubGlnaHRNYXAsbGlnaHRNYXBFbmNvZGluZzpnKG8ubGlnaHRNYXApLGFvTWFwOiEhby5hb01hcCxlbWlzc2l2ZU1hcDohIW8uZW1pc3NpdmVNYXAsZW1pc3NpdmVNYXBFbmNvZGluZzpnKG8uZW1pc3NpdmVNYXApLGJ1bXBNYXA6ISFvLmJ1bXBNYXAsbm9ybWFsTWFwOiEhby5ub3JtYWxNYXAsb2JqZWN0U3BhY2VOb3JtYWxNYXA6MT09PW8ubm9ybWFsTWFwVHlwZSx0YW5nZW50U3BhY2VOb3JtYWxNYXA6MD09PW8ubm9ybWFsTWFwVHlwZSxjbGVhcmNvYXRNYXA6ISFvLmNsZWFyY29hdE1hcCxjbGVhcmNvYXRSb3VnaG5lc3NNYXA6ISFvLmNsZWFyY29hdFJvdWdobmVzc01hcCxjbGVhcmNvYXROb3JtYWxNYXA6ISFvLmNsZWFyY29hdE5vcm1hbE1hcCxkaXNwbGFjZW1lbnRNYXA6ISFvLmRpc3BsYWNlbWVudE1hcCxyb3VnaG5lc3NNYXA6ISFvLnJvdWdobmVzc01hcCxtZXRhbG5lc3NNYXA6ISFvLm1ldGFsbmVzc01hcCxzcGVjdWxhck1hcDohIW8uc3BlY3VsYXJNYXAsc3BlY3VsYXJJbnRlbnNpdHlNYXA6ISFvLnNwZWN1bGFySW50ZW5zaXR5TWFwLHNwZWN1bGFyVGludE1hcDohIW8uc3BlY3VsYXJUaW50TWFwLHNwZWN1bGFyVGludE1hcEVuY29kaW5nOmcoby5zcGVjdWxhclRpbnRNYXApLGFscGhhTWFwOiEhby5hbHBoYU1hcCxncmFkaWVudE1hcDohIW8uZ3JhZGllbnRNYXAsc2hlZW46ISFvLnNoZWVuLHRyYW5zbWlzc2lvbjohIW8udHJhbnNtaXNzaW9uLHRyYW5zbWlzc2lvbk1hcDohIW8udHJhbnNtaXNzaW9uTWFwLHRoaWNrbmVzc01hcDohIW8udGhpY2tuZXNzTWFwLGNvbWJpbmU6by5jb21iaW5lLHZlcnRleFRhbmdlbnRzOiEhby5ub3JtYWxNYXAmJiEhdi5nZW9tZXRyeSYmISF2Lmdlb21ldHJ5LmF0dHJpYnV0ZXMudGFuZ2VudCx2ZXJ0ZXhDb2xvcnM6by52ZXJ0ZXhDb2xvcnMsdmVydGV4QWxwaGFzOiEwPT09by52ZXJ0ZXhDb2xvcnMmJiEhdi5nZW9tZXRyeSYmISF2Lmdlb21ldHJ5LmF0dHJpYnV0ZXMuY29sb3ImJjQ9PT12Lmdlb21ldHJ5LmF0dHJpYnV0ZXMuY29sb3IuaXRlbVNpemUsdmVydGV4VXZzOiEhKG8ubWFwfHxvLmJ1bXBNYXB8fG8ubm9ybWFsTWFwfHxvLnNwZWN1bGFyTWFwfHxvLmFscGhhTWFwfHxvLmVtaXNzaXZlTWFwfHxvLnJvdWdobmVzc01hcHx8by5tZXRhbG5lc3NNYXB8fG8uY2xlYXJjb2F0TWFwfHxvLmNsZWFyY29hdFJvdWdobmVzc01hcHx8by5jbGVhcmNvYXROb3JtYWxNYXB8fG8uZGlzcGxhY2VtZW50TWFwfHxvLnRyYW5zbWlzc2lvbk1hcHx8by50aGlja25lc3NNYXB8fG8uc3BlY3VsYXJJbnRlbnNpdHlNYXB8fG8uc3BlY3VsYXJUaW50TWFwKSx1dnNWZXJ0ZXhPbmx5OiEoby5tYXB8fG8uYnVtcE1hcHx8by5ub3JtYWxNYXB8fG8uc3BlY3VsYXJNYXB8fG8uYWxwaGFNYXB8fG8uZW1pc3NpdmVNYXB8fG8ucm91Z2huZXNzTWFwfHxvLm1ldGFsbmVzc01hcHx8by5jbGVhcmNvYXROb3JtYWxNYXB8fG8udHJhbnNtaXNzaW9ufHxvLnRyYW5zbWlzc2lvbk1hcHx8by50aGlja25lc3NNYXB8fG8uc3BlY3VsYXJJbnRlbnNpdHlNYXB8fG8uc3BlY3VsYXJUaW50TWFwfHwhby5kaXNwbGFjZW1lbnRNYXApLGZvZzohIWIsdXNlRm9nOm8uZm9nLGZvZ0V4cDI6YiYmYi5pc0ZvZ0V4cDIsZmxhdFNoYWRpbmc6ISFvLmZsYXRTaGFkaW5nLHNpemVBdHRlbnVhdGlvbjpvLnNpemVBdHRlbnVhdGlvbixsb2dhcml0aG1pY0RlcHRoQnVmZmVyOmMsc2tpbm5pbmc6ITA9PT12LmlzU2tpbm5lZE1lc2gmJlM+MCxtYXhCb25lczpTLHVzZVZlcnRleFRleHR1cmU6dSxtb3JwaFRhcmdldHM6ISF2Lmdlb21ldHJ5JiYhIXYuZ2VvbWV0cnkubW9ycGhBdHRyaWJ1dGVzLnBvc2l0aW9uLG1vcnBoTm9ybWFsczohIXYuZ2VvbWV0cnkmJiEhdi5nZW9tZXRyeS5tb3JwaEF0dHJpYnV0ZXMubm9ybWFsLG51bURpckxpZ2h0czpzLmRpcmVjdGlvbmFsLmxlbmd0aCxudW1Qb2ludExpZ2h0czpzLnBvaW50Lmxlbmd0aCxudW1TcG90TGlnaHRzOnMuc3BvdC5sZW5ndGgsbnVtUmVjdEFyZWFMaWdodHM6cy5yZWN0QXJlYS5sZW5ndGgsbnVtSGVtaUxpZ2h0czpzLmhlbWkubGVuZ3RoLG51bURpckxpZ2h0U2hhZG93czpzLmRpcmVjdGlvbmFsU2hhZG93TWFwLmxlbmd0aCxudW1Qb2ludExpZ2h0U2hhZG93czpzLnBvaW50U2hhZG93TWFwLmxlbmd0aCxudW1TcG90TGlnaHRTaGFkb3dzOnMuc3BvdFNoYWRvd01hcC5sZW5ndGgsbnVtQ2xpcHBpbmdQbGFuZXM6YS5udW1QbGFuZXMsbnVtQ2xpcEludGVyc2VjdGlvbjphLm51bUludGVyc2VjdGlvbixkaXRoZXJpbmc6by5kaXRoZXJpbmcsc2hhZG93TWFwRW5hYmxlZDp0LnNoYWRvd01hcC5lbmFibGVkJiZtLmxlbmd0aD4wLHNoYWRvd01hcFR5cGU6dC5zaGFkb3dNYXAudHlwZSx0b25lTWFwcGluZzpvLnRvbmVNYXBwZWQ/dC50b25lTWFwcGluZzowLHBoeXNpY2FsbHlDb3JyZWN0TGlnaHRzOnQucGh5c2ljYWxseUNvcnJlY3RMaWdodHMscHJlbXVsdGlwbGllZEFscGhhOm8ucHJlbXVsdGlwbGllZEFscGhhLGFscGhhVGVzdDpvLmFscGhhVGVzdCxkb3VibGVTaWRlZDoyPT09by5zaWRlLGZsaXBTaWRlZDoxPT09by5zaWRlLGRlcHRoUGFja2luZzp2b2lkIDAhPT1vLmRlcHRoUGFja2luZyYmby5kZXB0aFBhY2tpbmcsaW5kZXgwQXR0cmlidXRlTmFtZTpvLmluZGV4MEF0dHJpYnV0ZU5hbWUsZXh0ZW5zaW9uRGVyaXZhdGl2ZXM6by5leHRlbnNpb25zJiZvLmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXMsZXh0ZW5zaW9uRnJhZ0RlcHRoOm8uZXh0ZW5zaW9ucyYmby5leHRlbnNpb25zLmZyYWdEZXB0aCxleHRlbnNpb25EcmF3QnVmZmVyczpvLmV4dGVuc2lvbnMmJm8uZXh0ZW5zaW9ucy5kcmF3QnVmZmVycyxleHRlbnNpb25TaGFkZXJUZXh0dXJlTE9EOm8uZXh0ZW5zaW9ucyYmby5leHRlbnNpb25zLnNoYWRlclRleHR1cmVMT0QscmVuZGVyZXJFeHRlbnNpb25GcmFnRGVwdGg6bHx8aS5oYXMoIkVYVF9mcmFnX2RlcHRoIikscmVuZGVyZXJFeHRlbnNpb25EcmF3QnVmZmVyczpsfHxpLmhhcygiV0VCR0xfZHJhd19idWZmZXJzIikscmVuZGVyZXJFeHRlbnNpb25TaGFkZXJUZXh0dXJlTG9kOmx8fGkuaGFzKCJFWFRfc2hhZGVyX3RleHR1cmVfbG9kIiksY3VzdG9tUHJvZ3JhbUNhY2hlS2V5Om8uY3VzdG9tUHJvZ3JhbUNhY2hlS2V5KCl9fSxnZXRQcm9ncmFtQ2FjaGVLZXk6ZnVuY3Rpb24geShlKXtjb25zdCBuPVtdO2lmKGUuc2hhZGVySUQ/bi5wdXNoKGUuc2hhZGVySUQpOihuLnB1c2goZS5mcmFnbWVudFNoYWRlciksbi5wdXNoKGUudmVydGV4U2hhZGVyKSksdm9pZCAwIT09ZS5kZWZpbmVzKWZvcihjb25zdCB0IGluIGUuZGVmaW5lcyluLnB1c2godCksbi5wdXNoKGUuZGVmaW5lc1t0XSk7aWYoITE9PT1lLmlzUmF3U2hhZGVyTWF0ZXJpYWwpe2ZvcihsZXQgdD0wO3Q8bS5sZW5ndGg7dCsrKW4ucHVzaChlW21bdF1dKTtuLnB1c2godC5vdXRwdXRFbmNvZGluZyksbi5wdXNoKHQuZ2FtbWFGYWN0b3IpfXJldHVybiBuLnB1c2goZS5jdXN0b21Qcm9ncmFtQ2FjaGVLZXkpLG4uam9pbigpfSxnZXRVbmlmb3JtczpmdW5jdGlvbiB2KHQpe2NvbnN0IGU9Zlt0LnR5cGVdO2xldCBuO2lmKGUpe249ZTZ0LmNsb25lKHg2dFtlXS51bmlmb3Jtcyl9ZWxzZSBuPXQudW5pZm9ybXM7cmV0dXJuIG59LGFjcXVpcmVQcm9ncmFtOmZ1bmN0aW9uIGIoZSxuKXtsZXQgaTtmb3IobGV0IHQ9MCxlPXMubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9c1t0XTtpZihlLmNhY2hlS2V5PT09bil7aT1lLCsraS51c2VkVGltZXM7YnJlYWt9fXJldHVybiB2b2lkIDA9PT1pJiYoaT1uZXcgUjh0KHQsbixlLG8pLHMucHVzaChpKSksaX0scmVsZWFzZVByb2dyYW06ZnVuY3Rpb24geCh0KXtpZigwPT0tLXQudXNlZFRpbWVzKXtjb25zdCBlPXMuaW5kZXhPZih0KTtzW2VdPXNbcy5sZW5ndGgtMV0scy5wb3AoKSx0LmRlc3Ryb3koKX19LHByb2dyYW1zOnN9fWZ1bmN0aW9uIHo4dCgpe2xldCB0PW5ldyBXZWFrTWFwO3JldHVybntnZXQ6ZnVuY3Rpb24gZShuKXtsZXQgaT10LmdldChuKTtyZXR1cm4gdm9pZCAwPT09aSYmKGk9e30sdC5zZXQobixpKSksaX0scmVtb3ZlOmZ1bmN0aW9uIG4oZSl7dC5kZWxldGUoZSl9LHVwZGF0ZTpmdW5jdGlvbiBpKGUsbixyKXt0LmdldChlKVtuXT1yfSxkaXNwb3NlOmZ1bmN0aW9uIHIoKXt0PW5ldyBXZWFrTWFwfX19ZnVuY3Rpb24gRDh0KHQsZSl7cmV0dXJuIHQuZ3JvdXBPcmRlciE9PWUuZ3JvdXBPcmRlcj90Lmdyb3VwT3JkZXItZS5ncm91cE9yZGVyOnQucmVuZGVyT3JkZXIhPT1lLnJlbmRlck9yZGVyP3QucmVuZGVyT3JkZXItZS5yZW5kZXJPcmRlcjp0LnByb2dyYW0hPT1lLnByb2dyYW0/dC5wcm9ncmFtLmlkLWUucHJvZ3JhbS5pZDp0Lm1hdGVyaWFsLmlkIT09ZS5tYXRlcmlhbC5pZD90Lm1hdGVyaWFsLmlkLWUubWF0ZXJpYWwuaWQ6dC56IT09ZS56P3Quei1lLno6dC5pZC1lLmlkfWZ1bmN0aW9uIEI4dCh0LGUpe3JldHVybiB0Lmdyb3VwT3JkZXIhPT1lLmdyb3VwT3JkZXI/dC5ncm91cE9yZGVyLWUuZ3JvdXBPcmRlcjp0LnJlbmRlck9yZGVyIT09ZS5yZW5kZXJPcmRlcj90LnJlbmRlck9yZGVyLWUucmVuZGVyT3JkZXI6dC56IT09ZS56P2Uuei10Lno6dC5pZC1lLmlkfWZ1bmN0aW9uIEg4dCh0KXtjb25zdCBlPVtdO2xldCBuPTA7Y29uc3QgaT1bXSxyPVtdLG89W10sYT17aWQ6LTF9O2Z1bmN0aW9uIHMoaSxyLG8scyxsLGMpe2xldCB1PWVbbl07Y29uc3QgaD10LmdldChvKTtyZXR1cm4gdm9pZCAwPT09dT8odT17aWQ6aS5pZCxvYmplY3Q6aSxnZW9tZXRyeTpyLG1hdGVyaWFsOm8scHJvZ3JhbTpoLnByb2dyYW18fGEsZ3JvdXBPcmRlcjpzLHJlbmRlck9yZGVyOmkucmVuZGVyT3JkZXIsejpsLGdyb3VwOmN9LGVbbl09dSk6KHUuaWQ9aS5pZCx1Lm9iamVjdD1pLHUuZ2VvbWV0cnk9cix1Lm1hdGVyaWFsPW8sdS5wcm9ncmFtPWgucHJvZ3JhbXx8YSx1Lmdyb3VwT3JkZXI9cyx1LnJlbmRlck9yZGVyPWkucmVuZGVyT3JkZXIsdS56PWwsdS5ncm91cD1jKSxuKyssdX1yZXR1cm57b3BhcXVlOmksdHJhbnNtaXNzaXZlOnIsdHJhbnNwYXJlbnQ6byxpbml0OmZ1bmN0aW9uIGwoKXtuPTAsaS5sZW5ndGg9MCxyLmxlbmd0aD0wLG8ubGVuZ3RoPTB9LHB1c2g6ZnVuY3Rpb24gYyh0LGUsbixhLGwsdSl7Y29uc3QgaD1zKHQsZSxuLGEsbCx1KTtuLnRyYW5zbWlzc2lvbj4wP3IucHVzaChoKTohMD09PW4udHJhbnNwYXJlbnQ/by5wdXNoKGgpOmkucHVzaChoKX0sdW5zaGlmdDpmdW5jdGlvbiB1KHQsZSxuLGEsbCxjKXtjb25zdCB1PXModCxlLG4sYSxsLGMpO24udHJhbnNtaXNzaW9uPjA/ci51bnNoaWZ0KHUpOiEwPT09bi50cmFuc3BhcmVudD9vLnVuc2hpZnQodSk6aS51bnNoaWZ0KHUpfSxmaW5pc2g6ZnVuY3Rpb24gaCgpe2ZvcihsZXQgdD1uLGk9ZS5sZW5ndGg7dDxpO3QrKyl7Y29uc3Qgbj1lW3RdO2lmKG51bGw9PT1uLmlkKWJyZWFrO24uaWQ9bnVsbCxuLm9iamVjdD1udWxsLG4uZ2VvbWV0cnk9bnVsbCxuLm1hdGVyaWFsPW51bGwsbi5wcm9ncmFtPW51bGwsbi5ncm91cD1udWxsfX0sc29ydDpmdW5jdGlvbiBkKHQsZSl7aS5sZW5ndGg+MSYmaS5zb3J0KHR8fEQ4dCksci5sZW5ndGg+MSYmci5zb3J0KGV8fEI4dCksby5sZW5ndGg+MSYmby5zb3J0KGV8fEI4dCl9fX1mdW5jdGlvbiBGOHQodCl7bGV0IGU9bmV3IFdlYWtNYXA7cmV0dXJue2dldDpmdW5jdGlvbiBuKGkscil7bGV0IG87cmV0dXJuITE9PT1lLmhhcyhpKT8obz1uZXcgSDh0KHQpLGUuc2V0KGksW29dKSk6cj49ZS5nZXQoaSkubGVuZ3RoPyhvPW5ldyBIOHQodCksZS5nZXQoaSkucHVzaChvKSk6bz1lLmdldChpKVtyXSxvfSxkaXNwb3NlOmZ1bmN0aW9uIGkoKXtlPW5ldyBXZWFrTWFwfX19ZnVuY3Rpb24gVjh0KCl7Y29uc3QgdD17fTtyZXR1cm57Z2V0OmZ1bmN0aW9uKGUpe2lmKHZvaWQgMCE9PXRbZS5pZF0pcmV0dXJuIHRbZS5pZF07bGV0IG47c3dpdGNoKGUudHlwZSl7Y2FzZSJEaXJlY3Rpb25hbExpZ2h0IjpuPXtkaXJlY3Rpb246bmV3IEg1dCxjb2xvcjpuZXcgczR0fTticmVhaztjYXNlIlNwb3RMaWdodCI6bj17cG9zaXRpb246bmV3IEg1dCxkaXJlY3Rpb246bmV3IEg1dCxjb2xvcjpuZXcgczR0LGRpc3RhbmNlOjAsY29uZUNvczowLHBlbnVtYnJhQ29zOjAsZGVjYXk6MH07YnJlYWs7Y2FzZSJQb2ludExpZ2h0IjpuPXtwb3NpdGlvbjpuZXcgSDV0LGNvbG9yOm5ldyBzNHQsZGlzdGFuY2U6MCxkZWNheTowfTticmVhaztjYXNlIkhlbWlzcGhlcmVMaWdodCI6bj17ZGlyZWN0aW9uOm5ldyBINXQsc2t5Q29sb3I6bmV3IHM0dCxncm91bmRDb2xvcjpuZXcgczR0fTticmVhaztjYXNlIlJlY3RBcmVhTGlnaHQiOm49e2NvbG9yOm5ldyBzNHQscG9zaXRpb246bmV3IEg1dCxoYWxmV2lkdGg6bmV3IEg1dCxoYWxmSGVpZ2h0Om5ldyBINXR9fXJldHVybiB0W2UuaWRdPW4sbn19fWxldCBVOHQ9MDtmdW5jdGlvbiBqOHQodCxlKXtyZXR1cm4oZS5jYXN0U2hhZG93PzE6MCktKHQuY2FzdFNoYWRvdz8xOjApfWZ1bmN0aW9uIEc4dCh0LGUpe2NvbnN0IG49bmV3IFY4dCxpPShmdW5jdGlvbiByKCl7Y29uc3QgdD17fTtyZXR1cm57Z2V0OmZ1bmN0aW9uKGUpe2lmKHZvaWQgMCE9PXRbZS5pZF0pcmV0dXJuIHRbZS5pZF07bGV0IG47c3dpdGNoKGUudHlwZSl7Y2FzZSJEaXJlY3Rpb25hbExpZ2h0IjpjYXNlIlNwb3RMaWdodCI6bj17c2hhZG93QmlhczowLHNoYWRvd05vcm1hbEJpYXM6MCxzaGFkb3dSYWRpdXM6MSxzaGFkb3dNYXBTaXplOm5ldyBDNXR9O2JyZWFrO2Nhc2UiUG9pbnRMaWdodCI6bj17c2hhZG93QmlhczowLHNoYWRvd05vcm1hbEJpYXM6MCxzaGFkb3dSYWRpdXM6MSxzaGFkb3dNYXBTaXplOm5ldyBDNXQsc2hhZG93Q2FtZXJhTmVhcjoxLHNoYWRvd0NhbWVyYUZhcjoxZTN9fXJldHVybiB0W2UuaWRdPW4sbn19fSkoKSxvPXt2ZXJzaW9uOjAsaGFzaDp7ZGlyZWN0aW9uYWxMZW5ndGg6LTEscG9pbnRMZW5ndGg6LTEsc3BvdExlbmd0aDotMSxyZWN0QXJlYUxlbmd0aDotMSxoZW1pTGVuZ3RoOi0xLG51bURpcmVjdGlvbmFsU2hhZG93czotMSxudW1Qb2ludFNoYWRvd3M6LTEsbnVtU3BvdFNoYWRvd3M6LTF9LGFtYmllbnQ6WzAsMCwwXSxwcm9iZTpbXSxkaXJlY3Rpb25hbDpbXSxkaXJlY3Rpb25hbFNoYWRvdzpbXSxkaXJlY3Rpb25hbFNoYWRvd01hcDpbXSxkaXJlY3Rpb25hbFNoYWRvd01hdHJpeDpbXSxzcG90OltdLHNwb3RTaGFkb3c6W10sc3BvdFNoYWRvd01hcDpbXSxzcG90U2hhZG93TWF0cml4OltdLHJlY3RBcmVhOltdLHJlY3RBcmVhTFRDMTpudWxsLHJlY3RBcmVhTFRDMjpudWxsLHBvaW50OltdLHBvaW50U2hhZG93OltdLHBvaW50U2hhZG93TWFwOltdLHBvaW50U2hhZG93TWF0cml4OltdLGhlbWk6W119O2ZvcihsZXQgdD0wO3Q8OTt0Kyspby5wcm9iZS5wdXNoKG5ldyBINXQpO2NvbnN0IGE9bmV3IEg1dCxzPW5ldyBnM3QsbD1uZXcgZzN0O3JldHVybntzZXR1cDpmdW5jdGlvbiBjKHIpe2xldCBhPTAscz0wLGw9MDtmb3IobGV0IHQ9MDt0PDk7dCsrKW8ucHJvYmVbdF0uc2V0KDAsMCwwKTtsZXQgYz0wLHU9MCxoPTAsZD0wLHA9MCxmPTAsbT0wLGc9MDtyLnNvcnQoajh0KTtmb3IobGV0IHQ9MCxlPXIubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9clt0XSxfPWUuY29sb3IseT1lLmludGVuc2l0eSx2PWUuZGlzdGFuY2UsYj1lLnNoYWRvdyYmZS5zaGFkb3cubWFwP2Uuc2hhZG93Lm1hcC50ZXh0dXJlOm51bGw7aWYoZS5pc0FtYmllbnRMaWdodClhKz1fLnIqeSxzKz1fLmcqeSxsKz1fLmIqeTtlbHNlIGlmKGUuaXNMaWdodFByb2JlKWZvcihsZXQgdD0wO3Q8OTt0Kyspby5wcm9iZVt0XS5hZGRTY2FsZWRWZWN0b3IoZS5zaC5jb2VmZmljaWVudHNbdF0seSk7ZWxzZSBpZihlLmlzRGlyZWN0aW9uYWxMaWdodCl7Y29uc3QgdD1uLmdldChlKTtpZih0LmNvbG9yLmNvcHkoZS5jb2xvcikubXVsdGlwbHlTY2FsYXIoZS5pbnRlbnNpdHkpLGUuY2FzdFNoYWRvdyl7Y29uc3QgdD1lLnNoYWRvdyxuPWkuZ2V0KGUpO24uc2hhZG93Qmlhcz10LmJpYXMsbi5zaGFkb3dOb3JtYWxCaWFzPXQubm9ybWFsQmlhcyxuLnNoYWRvd1JhZGl1cz10LnJhZGl1cyxuLnNoYWRvd01hcFNpemU9dC5tYXBTaXplLG8uZGlyZWN0aW9uYWxTaGFkb3dbY109bixvLmRpcmVjdGlvbmFsU2hhZG93TWFwW2NdPWIsby5kaXJlY3Rpb25hbFNoYWRvd01hdHJpeFtjXT1lLnNoYWRvdy5tYXRyaXgsZisrfW8uZGlyZWN0aW9uYWxbY109dCxjKyt9ZWxzZSBpZihlLmlzU3BvdExpZ2h0KXtjb25zdCB0PW4uZ2V0KGUpO2lmKHQucG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKGUubWF0cml4V29ybGQpLHQuY29sb3IuY29weShfKS5tdWx0aXBseVNjYWxhcih5KSx0LmRpc3RhbmNlPXYsdC5jb25lQ29zPU1hdGguY29zKGUuYW5nbGUpLHQucGVudW1icmFDb3M9TWF0aC5jb3MoZS5hbmdsZSooMS1lLnBlbnVtYnJhKSksdC5kZWNheT1lLmRlY2F5LGUuY2FzdFNoYWRvdyl7Y29uc3QgdD1lLnNoYWRvdyxuPWkuZ2V0KGUpO24uc2hhZG93Qmlhcz10LmJpYXMsbi5zaGFkb3dOb3JtYWxCaWFzPXQubm9ybWFsQmlhcyxuLnNoYWRvd1JhZGl1cz10LnJhZGl1cyxuLnNoYWRvd01hcFNpemU9dC5tYXBTaXplLG8uc3BvdFNoYWRvd1toXT1uLG8uc3BvdFNoYWRvd01hcFtoXT1iLG8uc3BvdFNoYWRvd01hdHJpeFtoXT1lLnNoYWRvdy5tYXRyaXgsZysrfW8uc3BvdFtoXT10LGgrK31lbHNlIGlmKGUuaXNSZWN0QXJlYUxpZ2h0KXtjb25zdCB0PW4uZ2V0KGUpO3QuY29sb3IuY29weShfKS5tdWx0aXBseVNjYWxhcih5KSx0LmhhbGZXaWR0aC5zZXQoLjUqZS53aWR0aCwwLDApLHQuaGFsZkhlaWdodC5zZXQoMCwuNSplLmhlaWdodCwwKSxvLnJlY3RBcmVhW2RdPXQsZCsrfWVsc2UgaWYoZS5pc1BvaW50TGlnaHQpe2NvbnN0IHQ9bi5nZXQoZSk7aWYodC5jb2xvci5jb3B5KGUuY29sb3IpLm11bHRpcGx5U2NhbGFyKGUuaW50ZW5zaXR5KSx0LmRpc3RhbmNlPWUuZGlzdGFuY2UsdC5kZWNheT1lLmRlY2F5LGUuY2FzdFNoYWRvdyl7Y29uc3QgdD1lLnNoYWRvdyxuPWkuZ2V0KGUpO24uc2hhZG93Qmlhcz10LmJpYXMsbi5zaGFkb3dOb3JtYWxCaWFzPXQubm9ybWFsQmlhcyxuLnNoYWRvd1JhZGl1cz10LnJhZGl1cyxuLnNoYWRvd01hcFNpemU9dC5tYXBTaXplLG4uc2hhZG93Q2FtZXJhTmVhcj10LmNhbWVyYS5uZWFyLG4uc2hhZG93Q2FtZXJhRmFyPXQuY2FtZXJhLmZhcixvLnBvaW50U2hhZG93W3VdPW4sby5wb2ludFNoYWRvd01hcFt1XT1iLG8ucG9pbnRTaGFkb3dNYXRyaXhbdV09ZS5zaGFkb3cubWF0cml4LG0rK31vLnBvaW50W3VdPXQsdSsrfWVsc2UgaWYoZS5pc0hlbWlzcGhlcmVMaWdodCl7Y29uc3QgdD1uLmdldChlKTt0LnNreUNvbG9yLmNvcHkoZS5jb2xvcikubXVsdGlwbHlTY2FsYXIoeSksdC5ncm91bmRDb2xvci5jb3B5KGUuZ3JvdW5kQ29sb3IpLm11bHRpcGx5U2NhbGFyKHkpLG8uaGVtaVtwXT10LHArK319ZD4wJiYoZS5pc1dlYkdMMnx8ITA9PT10LmhhcygiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIik/KG8ucmVjdEFyZWFMVEMxPWI2dC5MVENfRkxPQVRfMSxvLnJlY3RBcmVhTFRDMj1iNnQuTFRDX0ZMT0FUXzIpOiEwPT09dC5oYXMoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIik/KG8ucmVjdEFyZWFMVEMxPWI2dC5MVENfSEFMRl8xLG8ucmVjdEFyZWFMVEMyPWI2dC5MVENfSEFMRl8yKTpjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBVbmFibGUgdG8gdXNlIFJlY3RBcmVhTGlnaHQuIE1pc3NpbmcgV2ViR0wgZXh0ZW5zaW9ucy4iKSksby5hbWJpZW50WzBdPWEsby5hbWJpZW50WzFdPXMsby5hbWJpZW50WzJdPWw7Y29uc3QgXz1vLmhhc2g7Xy5kaXJlY3Rpb25hbExlbmd0aD09PWMmJl8ucG9pbnRMZW5ndGg9PT11JiZfLnNwb3RMZW5ndGg9PT1oJiZfLnJlY3RBcmVhTGVuZ3RoPT09ZCYmXy5oZW1pTGVuZ3RoPT09cCYmXy5udW1EaXJlY3Rpb25hbFNoYWRvd3M9PT1mJiZfLm51bVBvaW50U2hhZG93cz09PW0mJl8ubnVtU3BvdFNoYWRvd3M9PT1nfHwoby5kaXJlY3Rpb25hbC5sZW5ndGg9YyxvLnNwb3QubGVuZ3RoPWgsby5yZWN0QXJlYS5sZW5ndGg9ZCxvLnBvaW50Lmxlbmd0aD11LG8uaGVtaS5sZW5ndGg9cCxvLmRpcmVjdGlvbmFsU2hhZG93Lmxlbmd0aD1mLG8uZGlyZWN0aW9uYWxTaGFkb3dNYXAubGVuZ3RoPWYsby5wb2ludFNoYWRvdy5sZW5ndGg9bSxvLnBvaW50U2hhZG93TWFwLmxlbmd0aD1tLG8uc3BvdFNoYWRvdy5sZW5ndGg9ZyxvLnNwb3RTaGFkb3dNYXAubGVuZ3RoPWcsby5kaXJlY3Rpb25hbFNoYWRvd01hdHJpeC5sZW5ndGg9ZixvLnBvaW50U2hhZG93TWF0cml4Lmxlbmd0aD1tLG8uc3BvdFNoYWRvd01hdHJpeC5sZW5ndGg9ZyxfLmRpcmVjdGlvbmFsTGVuZ3RoPWMsXy5wb2ludExlbmd0aD11LF8uc3BvdExlbmd0aD1oLF8ucmVjdEFyZWFMZW5ndGg9ZCxfLmhlbWlMZW5ndGg9cCxfLm51bURpcmVjdGlvbmFsU2hhZG93cz1mLF8ubnVtUG9pbnRTaGFkb3dzPW0sXy5udW1TcG90U2hhZG93cz1nLG8udmVyc2lvbj1VOHQrKyl9LHNldHVwVmlldzpmdW5jdGlvbiB1KHQsZSl7bGV0IG49MCxpPTAscj0wLGM9MCx1PTA7Y29uc3QgaD1lLm1hdHJpeFdvcmxkSW52ZXJzZTtmb3IobGV0IGU9MCxkPXQubGVuZ3RoO2U8ZDtlKyspe2NvbnN0IGQ9dFtlXTtpZihkLmlzRGlyZWN0aW9uYWxMaWdodCl7Y29uc3QgdD1vLmRpcmVjdGlvbmFsW25dO3QuZGlyZWN0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihkLm1hdHJpeFdvcmxkKSxhLnNldEZyb21NYXRyaXhQb3NpdGlvbihkLnRhcmdldC5tYXRyaXhXb3JsZCksdC5kaXJlY3Rpb24uc3ViKGEpLHQuZGlyZWN0aW9uLnRyYW5zZm9ybURpcmVjdGlvbihoKSxuKyt9ZWxzZSBpZihkLmlzU3BvdExpZ2h0KXtjb25zdCB0PW8uc3BvdFtyXTt0LnBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihkLm1hdHJpeFdvcmxkKSx0LnBvc2l0aW9uLmFwcGx5TWF0cml4NChoKSx0LmRpcmVjdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oZC5tYXRyaXhXb3JsZCksYS5zZXRGcm9tTWF0cml4UG9zaXRpb24oZC50YXJnZXQubWF0cml4V29ybGQpLHQuZGlyZWN0aW9uLnN1YihhKSx0LmRpcmVjdGlvbi50cmFuc2Zvcm1EaXJlY3Rpb24oaCkscisrfWVsc2UgaWYoZC5pc1JlY3RBcmVhTGlnaHQpe2NvbnN0IHQ9by5yZWN0QXJlYVtjXTt0LnBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihkLm1hdHJpeFdvcmxkKSx0LnBvc2l0aW9uLmFwcGx5TWF0cml4NChoKSxsLmlkZW50aXR5KCkscy5jb3B5KGQubWF0cml4V29ybGQpLHMucHJlbXVsdGlwbHkoaCksbC5leHRyYWN0Um90YXRpb24ocyksdC5oYWxmV2lkdGguc2V0KC41KmQud2lkdGgsMCwwKSx0LmhhbGZIZWlnaHQuc2V0KDAsLjUqZC5oZWlnaHQsMCksdC5oYWxmV2lkdGguYXBwbHlNYXRyaXg0KGwpLHQuaGFsZkhlaWdodC5hcHBseU1hdHJpeDQobCksYysrfWVsc2UgaWYoZC5pc1BvaW50TGlnaHQpe2NvbnN0IHQ9by5wb2ludFtpXTt0LnBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihkLm1hdHJpeFdvcmxkKSx0LnBvc2l0aW9uLmFwcGx5TWF0cml4NChoKSxpKyt9ZWxzZSBpZihkLmlzSGVtaXNwaGVyZUxpZ2h0KXtjb25zdCB0PW8uaGVtaVt1XTt0LmRpcmVjdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oZC5tYXRyaXhXb3JsZCksdC5kaXJlY3Rpb24udHJhbnNmb3JtRGlyZWN0aW9uKGgpLHQuZGlyZWN0aW9uLm5vcm1hbGl6ZSgpLHUrK319fSxzdGF0ZTpvfX1mdW5jdGlvbiBXOHQodCxlKXtjb25zdCBuPW5ldyBHOHQodCxlKSxpPVtdLHI9W107cmV0dXJue2luaXQ6ZnVuY3Rpb24gbygpe2kubGVuZ3RoPTAsci5sZW5ndGg9MH0sc3RhdGU6e2xpZ2h0c0FycmF5Omksc2hhZG93c0FycmF5OnIsbGlnaHRzOm59LHNldHVwTGlnaHRzOmZ1bmN0aW9uIGEoKXtuLnNldHVwKGkpfSxzZXR1cExpZ2h0c1ZpZXc6ZnVuY3Rpb24gcyh0KXtuLnNldHVwVmlldyhpLHQpfSxwdXNoTGlnaHQ6ZnVuY3Rpb24gbCh0KXtpLnB1c2godCl9LHB1c2hTaGFkb3c6ZnVuY3Rpb24gYyh0KXtyLnB1c2godCl9fX1mdW5jdGlvbiBxOHQodCxlKXtsZXQgbj1uZXcgV2Vha01hcDtyZXR1cm57Z2V0OmZ1bmN0aW9uIGkocixvPTApe2xldCBhO3JldHVybiExPT09bi5oYXMocik/KGE9bmV3IFc4dCh0LGUpLG4uc2V0KHIsW2FdKSk6bz49bi5nZXQocikubGVuZ3RoPyhhPW5ldyBXOHQodCxlKSxuLmdldChyKS5wdXNoKGEpKTphPW4uZ2V0KHIpW29dLGF9LGRpc3Bvc2U6ZnVuY3Rpb24gcigpe249bmV3IFdlYWtNYXB9fX1jbGFzcyBZOHQgZXh0ZW5kcyB0NHR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9Ik1lc2hEZXB0aE1hdGVyaWFsIix0aGlzLmRlcHRoUGFja2luZz0zMjAwLHRoaXMubWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50TWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT0xLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz0wLHRoaXMud2lyZWZyYW1lPSExLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPTEsdGhpcy5mb2c9ITEsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmRlcHRoUGFja2luZz10LmRlcHRoUGFja2luZyx0aGlzLm1hcD10Lm1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5kaXNwbGFjZW1lbnRNYXA9dC5kaXNwbGFjZW1lbnRNYXAsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT10LmRpc3BsYWNlbWVudFNjYWxlLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz10LmRpc3BsYWNlbWVudEJpYXMsdGhpcy53aXJlZnJhbWU9dC53aXJlZnJhbWUsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgsdGhpc319WTh0LnByb3RvdHlwZS5pc01lc2hEZXB0aE1hdGVyaWFsPSEwO2NsYXNzIFg4dCBleHRlbmRzIHQ0dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTWVzaERpc3RhbmNlTWF0ZXJpYWwiLHRoaXMucmVmZXJlbmNlUG9zaXRpb249bmV3IEg1dCx0aGlzLm5lYXJEaXN0YW5jZT0xLHRoaXMuZmFyRGlzdGFuY2U9MWUzLHRoaXMubWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50TWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT0xLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz0wLHRoaXMuZm9nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5yZWZlcmVuY2VQb3NpdGlvbi5jb3B5KHQucmVmZXJlbmNlUG9zaXRpb24pLHRoaXMubmVhckRpc3RhbmNlPXQubmVhckRpc3RhbmNlLHRoaXMuZmFyRGlzdGFuY2U9dC5mYXJEaXN0YW5jZSx0aGlzLm1hcD10Lm1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5kaXNwbGFjZW1lbnRNYXA9dC5kaXNwbGFjZW1lbnRNYXAsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT10LmRpc3BsYWNlbWVudFNjYWxlLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz10LmRpc3BsYWNlbWVudEJpYXMsdGhpc319WDh0LnByb3RvdHlwZS5pc01lc2hEaXN0YW5jZU1hdGVyaWFsPSEwO2Z1bmN0aW9uICQ4dCh0LGUsbil7bGV0IGk9bmV3IG02dDtjb25zdCByPW5ldyBDNXQsbz1uZXcgQzV0LGE9bmV3IFI1dCxzPW5ldyBZOHQoe2RlcHRoUGFja2luZzozMjAxfSksbD1uZXcgWDh0LGM9e30sdT1uLm1heFRleHR1cmVTaXplLGg9ezA6MSwxOjAsMjoyfSxkPW5ldyBuNnQoe2RlZmluZXM6e1NBTVBMRV9SQVRFOjIvOCxIQUxGX1NBTVBMRV9SQVRFOjEvOH0sdW5pZm9ybXM6e3NoYWRvd19wYXNzOnt2YWx1ZTpudWxsfSxyZXNvbHV0aW9uOnt2YWx1ZTpuZXcgQzV0fSxyYWRpdXM6e3ZhbHVlOjR9fSx2ZXJ0ZXhTaGFkZXI6InZvaWQgbWFpbigpIHtcblx0Z2xfUG9zaXRpb24gPSB2ZWM0KCBwb3NpdGlvbiwgMS4wICk7XG59IixmcmFnbWVudFNoYWRlcjoidW5pZm9ybSBzYW1wbGVyMkQgc2hhZG93X3Bhc3M7XG51bmlmb3JtIHZlYzIgcmVzb2x1dGlvbjtcbnVuaWZvcm0gZmxvYXQgcmFkaXVzO1xuI2luY2x1ZGUgPHBhY2tpbmc+XG52b2lkIG1haW4oKSB7XG5cdGZsb2F0IG1lYW4gPSAwLjA7XG5cdGZsb2F0IHNxdWFyZWRfbWVhbiA9IDAuMDtcblx0ZmxvYXQgZGVwdGggPSB1bnBhY2tSR0JBVG9EZXB0aCggdGV4dHVyZTJEKCBzaGFkb3dfcGFzcywgKCBnbF9GcmFnQ29vcmQueHkgKSAvIHJlc29sdXRpb24gKSApO1xuXHRmb3IgKCBmbG9hdCBpID0gLTEuMDsgaSA8IDEuMCA7IGkgKz0gU0FNUExFX1JBVEUpIHtcblx0XHQjaWZkZWYgSE9SSVpPTlRBTF9QQVNTXG5cdFx0XHR2ZWMyIGRpc3RyaWJ1dGlvbiA9IHVucGFja1JHQkFUbzJIYWxmKCB0ZXh0dXJlMkQoIHNoYWRvd19wYXNzLCAoIGdsX0ZyYWdDb29yZC54eSArIHZlYzIoIGksIDAuMCApICogcmFkaXVzICkgLyByZXNvbHV0aW9uICkgKTtcblx0XHRcdG1lYW4gKz0gZGlzdHJpYnV0aW9uLng7XG5cdFx0XHRzcXVhcmVkX21lYW4gKz0gZGlzdHJpYnV0aW9uLnkgKiBkaXN0cmlidXRpb24ueSArIGRpc3RyaWJ1dGlvbi54ICogZGlzdHJpYnV0aW9uLng7XG5cdFx0I2Vsc2Vcblx0XHRcdGZsb2F0IGRlcHRoID0gdW5wYWNrUkdCQVRvRGVwdGgoIHRleHR1cmUyRCggc2hhZG93X3Bhc3MsICggZ2xfRnJhZ0Nvb3JkLnh5ICsgdmVjMiggMC4wLCBpICkgKiByYWRpdXMgKSAvIHJlc29sdXRpb24gKSApO1xuXHRcdFx0bWVhbiArPSBkZXB0aDtcblx0XHRcdHNxdWFyZWRfbWVhbiArPSBkZXB0aCAqIGRlcHRoO1xuXHRcdCNlbmRpZlxuXHR9XG5cdG1lYW4gPSBtZWFuICogSEFMRl9TQU1QTEVfUkFURTtcblx0c3F1YXJlZF9tZWFuID0gc3F1YXJlZF9tZWFuICogSEFMRl9TQU1QTEVfUkFURTtcblx0ZmxvYXQgc3RkX2RldiA9IHNxcnQoIHNxdWFyZWRfbWVhbiAtIG1lYW4gKiBtZWFuICk7XG5cdGdsX0ZyYWdDb2xvciA9IHBhY2sySGFsZlRvUkdCQSggdmVjMiggbWVhbiwgc3RkX2RldiApICk7XG59In0pLHA9ZC5jbG9uZSgpO3AuZGVmaW5lcy5IT1JJWk9OVEFMX1BBU1M9MTtjb25zdCBmPW5ldyBONHQ7Zi5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgaDR0KG5ldyBGbG9hdDMyQXJyYXkoWy0xLC0xLC41LDMsLTEsLjUsLTEsMywuNV0pLDMpKTtjb25zdCBtPW5ldyBLNHQoZixkKSxnPXRoaXM7ZnVuY3Rpb24gXyhuLGkpe2NvbnN0IHI9ZS51cGRhdGUobSk7ZC51bmlmb3Jtcy5zaGFkb3dfcGFzcy52YWx1ZT1uLm1hcC50ZXh0dXJlLGQudW5pZm9ybXMucmVzb2x1dGlvbi52YWx1ZT1uLm1hcFNpemUsZC51bmlmb3Jtcy5yYWRpdXMudmFsdWU9bi5yYWRpdXMsdC5zZXRSZW5kZXJUYXJnZXQobi5tYXBQYXNzKSx0LmNsZWFyKCksdC5yZW5kZXJCdWZmZXJEaXJlY3QoaSxudWxsLHIsZCxtLG51bGwpLHAudW5pZm9ybXMuc2hhZG93X3Bhc3MudmFsdWU9bi5tYXBQYXNzLnRleHR1cmUscC51bmlmb3Jtcy5yZXNvbHV0aW9uLnZhbHVlPW4ubWFwU2l6ZSxwLnVuaWZvcm1zLnJhZGl1cy52YWx1ZT1uLnJhZGl1cyx0LnNldFJlbmRlclRhcmdldChuLm1hcCksdC5jbGVhcigpLHQucmVuZGVyQnVmZmVyRGlyZWN0KGksbnVsbCxyLHAsbSxudWxsKX1mdW5jdGlvbiB5KGUsbixpLHIsbyxhLHUpe2xldCBkPW51bGw7Y29uc3QgcD0hMD09PXIuaXNQb2ludExpZ2h0P2UuY3VzdG9tRGlzdGFuY2VNYXRlcmlhbDplLmN1c3RvbURlcHRoTWF0ZXJpYWw7aWYoZD12b2lkIDAhPT1wP3A6ITA9PT1yLmlzUG9pbnRMaWdodD9sOnMsdC5sb2NhbENsaXBwaW5nRW5hYmxlZCYmITA9PT1pLmNsaXBTaGFkb3dzJiYwIT09aS5jbGlwcGluZ1BsYW5lcy5sZW5ndGgpe2NvbnN0IHQ9ZC51dWlkLGU9aS51dWlkO2xldCBuPWNbdF07dm9pZCAwPT09biYmKG49e30sY1t0XT1uKTtsZXQgcj1uW2VdO3ZvaWQgMD09PXImJihyPWQuY2xvbmUoKSxuW2VdPXIpLGQ9cn1yZXR1cm4gZC52aXNpYmxlPWkudmlzaWJsZSxkLndpcmVmcmFtZT1pLndpcmVmcmFtZSxkLnNpZGU9Mz09PXU/bnVsbCE9PWkuc2hhZG93U2lkZT9pLnNoYWRvd1NpZGU6aS5zaWRlOm51bGwhPT1pLnNoYWRvd1NpZGU/aS5zaGFkb3dTaWRlOmhbaS5zaWRlXSxkLmNsaXBTaGFkb3dzPWkuY2xpcFNoYWRvd3MsZC5jbGlwcGluZ1BsYW5lcz1pLmNsaXBwaW5nUGxhbmVzLGQuY2xpcEludGVyc2VjdGlvbj1pLmNsaXBJbnRlcnNlY3Rpb24sZC53aXJlZnJhbWVMaW5ld2lkdGg9aS53aXJlZnJhbWVMaW5ld2lkdGgsZC5saW5ld2lkdGg9aS5saW5ld2lkdGgsITA9PT1yLmlzUG9pbnRMaWdodCYmITA9PT1kLmlzTWVzaERpc3RhbmNlTWF0ZXJpYWwmJihkLnJlZmVyZW5jZVBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihyLm1hdHJpeFdvcmxkKSxkLm5lYXJEaXN0YW5jZT1vLGQuZmFyRGlzdGFuY2U9YSksZH1mdW5jdGlvbiB2KG4scixvLGEscyl7aWYoITE9PT1uLnZpc2libGUpcmV0dXJuO2lmKG4ubGF5ZXJzLnRlc3Qoci5sYXllcnMpJiYobi5pc01lc2h8fG4uaXNMaW5lfHxuLmlzUG9pbnRzKSYmKG4uY2FzdFNoYWRvd3x8bi5yZWNlaXZlU2hhZG93JiYzPT09cykmJighbi5mcnVzdHVtQ3VsbGVkfHxpLmludGVyc2VjdHNPYmplY3QobikpKXtuLm1vZGVsVmlld01hdHJpeC5tdWx0aXBseU1hdHJpY2VzKG8ubWF0cml4V29ybGRJbnZlcnNlLG4ubWF0cml4V29ybGQpO2NvbnN0IGk9ZS51cGRhdGUobikscj1uLm1hdGVyaWFsO2lmKEFycmF5LmlzQXJyYXkocikpe2NvbnN0IGU9aS5ncm91cHM7Zm9yKGxldCBsPTAsYz1lLmxlbmd0aDtsPGM7bCsrKXtjb25zdCBjPWVbbF0sdT1yW2MubWF0ZXJpYWxJbmRleF07aWYodSYmdS52aXNpYmxlKXtjb25zdCBlPXkobiwwLHUsYSxvLm5lYXIsby5mYXIscyk7dC5yZW5kZXJCdWZmZXJEaXJlY3QobyxudWxsLGksZSxuLGMpfX19ZWxzZSBpZihyLnZpc2libGUpe2NvbnN0IGU9eShuLDAscixhLG8ubmVhcixvLmZhcixzKTt0LnJlbmRlckJ1ZmZlckRpcmVjdChvLG51bGwsaSxlLG4sbnVsbCl9fWNvbnN0IGw9bi5jaGlsZHJlbjtmb3IobGV0IHQ9MCxlPWwubGVuZ3RoO3Q8ZTt0KyspdihsW3RdLHIsbyxhLHMpfXRoaXMuZW5hYmxlZD0hMSx0aGlzLmF1dG9VcGRhdGU9ITAsdGhpcy5uZWVkc1VwZGF0ZT0hMSx0aGlzLnR5cGU9MSx0aGlzLnJlbmRlcj1mdW5jdGlvbihlLG4scyl7aWYoITE9PT1nLmVuYWJsZWQpcmV0dXJuO2lmKCExPT09Zy5hdXRvVXBkYXRlJiYhMT09PWcubmVlZHNVcGRhdGUpcmV0dXJuO2lmKDA9PT1lLmxlbmd0aClyZXR1cm47Y29uc3QgbD10LmdldFJlbmRlclRhcmdldCgpLGM9dC5nZXRBY3RpdmVDdWJlRmFjZSgpLGg9dC5nZXRBY3RpdmVNaXBtYXBMZXZlbCgpLGQ9dC5zdGF0ZTtkLnNldEJsZW5kaW5nKDApLGQuYnVmZmVycy5jb2xvci5zZXRDbGVhcigxLDEsMSwxKSxkLmJ1ZmZlcnMuZGVwdGguc2V0VGVzdCghMCksZC5zZXRTY2lzc29yVGVzdCghMSk7Zm9yKGxldCBsPTAsYz1lLmxlbmd0aDtsPGM7bCsrKXtjb25zdCBjPWVbbF0saD1jLnNoYWRvdztpZih2b2lkIDA9PT1oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMU2hhZG93TWFwOiIsYywiaGFzIG5vIHNoYWRvdy4iKTtjb250aW51ZX1pZighMT09PWguYXV0b1VwZGF0ZSYmITE9PT1oLm5lZWRzVXBkYXRlKWNvbnRpbnVlO3IuY29weShoLm1hcFNpemUpO2NvbnN0IHA9aC5nZXRGcmFtZUV4dGVudHMoKTtpZihyLm11bHRpcGx5KHApLG8uY29weShoLm1hcFNpemUpLChyLng+dXx8ci55PnUpJiYoci54PnUmJihvLng9TWF0aC5mbG9vcih1L3AueCksci54PW8ueCpwLngsaC5tYXBTaXplLng9by54KSxyLnk+dSYmKG8ueT1NYXRoLmZsb29yKHUvcC55KSxyLnk9by55KnAueSxoLm1hcFNpemUueT1vLnkpKSxudWxsPT09aC5tYXAmJiFoLmlzUG9pbnRMaWdodFNoYWRvdyYmMz09PXRoaXMudHlwZSl7Y29uc3QgdD17bWluRmlsdGVyOnAydCxtYWdGaWx0ZXI6cDJ0LGZvcm1hdDpTMnR9O2gubWFwPW5ldyBPNXQoci54LHIueSx0KSxoLm1hcC50ZXh0dXJlLm5hbWU9Yy5uYW1lKyIuc2hhZG93TWFwIixoLm1hcFBhc3M9bmV3IE81dChyLngsci55LHQpLGguY2FtZXJhLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX1pZihudWxsPT09aC5tYXApe2gubWFwPW5ldyBPNXQoci54LHIueSx7bWluRmlsdGVyOnUydCxtYWdGaWx0ZXI6dTJ0LGZvcm1hdDpTMnR9KSxoLm1hcC50ZXh0dXJlLm5hbWU9Yy5uYW1lKyIuc2hhZG93TWFwIixoLmNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9dC5zZXRSZW5kZXJUYXJnZXQoaC5tYXApLHQuY2xlYXIoKTtjb25zdCBmPWguZ2V0Vmlld3BvcnRDb3VudCgpO2ZvcihsZXQgdD0wO3Q8Zjt0Kyspe2NvbnN0IGU9aC5nZXRWaWV3cG9ydCh0KTthLnNldChvLngqZS54LG8ueSplLnksby54KmUueixvLnkqZS53KSxkLnZpZXdwb3J0KGEpLGgudXBkYXRlTWF0cmljZXMoYyx0KSxpPWguZ2V0RnJ1c3R1bSgpLHYobixzLGguY2FtZXJhLGMsdGhpcy50eXBlKX1oLmlzUG9pbnRMaWdodFNoYWRvd3x8MyE9PXRoaXMudHlwZXx8XyhoLHMpLGgubmVlZHNVcGRhdGU9ITF9Zy5uZWVkc1VwZGF0ZT0hMSx0LnNldFJlbmRlclRhcmdldChsLGMsaCl9fWZ1bmN0aW9uIEs4dCh0LGUsbil7Y29uc3QgaT1uLmlzV2ViR0wyO2NvbnN0IHI9bmV3KGZ1bmN0aW9uIG8oKXtsZXQgZT0hMTtjb25zdCBuPW5ldyBSNXQ7bGV0IGk9bnVsbDtjb25zdCByPW5ldyBSNXQoMCwwLDAsMCk7cmV0dXJue3NldE1hc2s6ZnVuY3Rpb24obil7aT09PW58fGV8fCh0LmNvbG9yTWFzayhuLG4sbixuKSxpPW4pfSxzZXRMb2NrZWQ6ZnVuY3Rpb24odCl7ZT10fSxzZXRDbGVhcjpmdW5jdGlvbihlLGksbyxhLHMpeyEwPT09cyYmKGUqPWEsaSo9YSxvKj1hKSxuLnNldChlLGksbyxhKSwhMT09PXIuZXF1YWxzKG4pJiYodC5jbGVhckNvbG9yKGUsaSxvLGEpLHIuY29weShuKSl9LHJlc2V0OmZ1bmN0aW9uKCl7ZT0hMSxpPW51bGwsci5zZXQoLTEsMCwwLDApfX19KSxhPW5ldyhmdW5jdGlvbiBzKCl7bGV0IGU9ITEsbj1udWxsLGk9bnVsbCxyPW51bGw7cmV0dXJue3NldFRlc3Q6ZnVuY3Rpb24odCl7dD9GKDI5MjkpOlYoMjkyOSl9LHNldE1hc2s6ZnVuY3Rpb24oaSl7bj09PWl8fGV8fCh0LmRlcHRoTWFzayhpKSxuPWkpfSxzZXRGdW5jOmZ1bmN0aW9uKGUpe2lmKGkhPT1lKXtpZihlKXN3aXRjaChlKXtjYXNlIDA6dC5kZXB0aEZ1bmMoNTEyKTticmVhaztjYXNlIDE6dC5kZXB0aEZ1bmMoNTE5KTticmVhaztjYXNlIDI6dC5kZXB0aEZ1bmMoNTEzKTticmVhaztjYXNlIDM6dC5kZXB0aEZ1bmMoNTE1KTticmVhaztjYXNlIDQ6dC5kZXB0aEZ1bmMoNTE0KTticmVhaztjYXNlIDU6dC5kZXB0aEZ1bmMoNTE4KTticmVhaztjYXNlIDY6dC5kZXB0aEZ1bmMoNTE2KTticmVhaztjYXNlIDc6dC5kZXB0aEZ1bmMoNTE3KTticmVhaztkZWZhdWx0OnQuZGVwdGhGdW5jKDUxNSl9ZWxzZSB0LmRlcHRoRnVuYyg1MTUpO2k9ZX19LHNldExvY2tlZDpmdW5jdGlvbih0KXtlPXR9LHNldENsZWFyOmZ1bmN0aW9uKGUpe3IhPT1lJiYodC5jbGVhckRlcHRoKGUpLHI9ZSl9LHJlc2V0OmZ1bmN0aW9uKCl7ZT0hMSxuPW51bGwsaT1udWxsLHI9bnVsbH19fSksbD1uZXcoZnVuY3Rpb24gYygpe2xldCBlPSExLG49bnVsbCxpPW51bGwscj1udWxsLG89bnVsbCxhPW51bGwscz1udWxsLGw9bnVsbCxjPW51bGw7cmV0dXJue3NldFRlc3Q6ZnVuY3Rpb24odCl7ZXx8KHQ/RigyOTYwKTpWKDI5NjApKX0sc2V0TWFzazpmdW5jdGlvbihpKXtuPT09aXx8ZXx8KHQuc3RlbmNpbE1hc2soaSksbj1pKX0sc2V0RnVuYzpmdW5jdGlvbihlLG4sYSl7aT09PWUmJnI9PT1uJiZvPT09YXx8KHQuc3RlbmNpbEZ1bmMoZSxuLGEpLGk9ZSxyPW4sbz1hKX0sc2V0T3A6ZnVuY3Rpb24oZSxuLGkpe2E9PT1lJiZzPT09biYmbD09PWl8fCh0LnN0ZW5jaWxPcChlLG4saSksYT1lLHM9bixsPWkpfSxzZXRMb2NrZWQ6ZnVuY3Rpb24odCl7ZT10fSxzZXRDbGVhcjpmdW5jdGlvbihlKXtjIT09ZSYmKHQuY2xlYXJTdGVuY2lsKGUpLGM9ZSl9LHJlc2V0OmZ1bmN0aW9uKCl7ZT0hMSxuPW51bGwsaT1udWxsLHI9bnVsbCxvPW51bGwsYT1udWxsLHM9bnVsbCxsPW51bGwsYz1udWxsfX19KTtsZXQgdT17fSxoPW51bGwsZD17fSxwPW51bGwsZj0hMSxtPW51bGwsZz1udWxsLF89bnVsbCx5PW51bGwsdj1udWxsLGI9bnVsbCx4PW51bGwsdz0hMSxTPW51bGwsTT1udWxsLEU9bnVsbCxUPW51bGwsQz1udWxsO2NvbnN0IEE9dC5nZXRQYXJhbWV0ZXIoMzU2NjEpO2xldCBrPSExLEw9MDtjb25zdCBQPXQuZ2V0UGFyYW1ldGVyKDc5MzgpOy0xIT09UC5pbmRleE9mKCJXZWJHTCIpPyhMPXBhcnNlRmxvYXQoL15XZWJHTCAoXGQpLy5leGVjKFApWzFdKSxrPUw+PTEpOi0xIT09UC5pbmRleE9mKCJPcGVuR0wgRVMiKSYmKEw9cGFyc2VGbG9hdCgvXk9wZW5HTCBFUyAoXGQpLy5leGVjKFApWzFdKSxrPUw+PTIpO2xldCBOPW51bGwsST17fTtjb25zdCBSPXQuZ2V0UGFyYW1ldGVyKDMwODgpLE89dC5nZXRQYXJhbWV0ZXIoMjk3OCksej0obmV3IFI1dCkuZnJvbUFycmF5KFIpLEQ9KG5ldyBSNXQpLmZyb21BcnJheShPKTtmdW5jdGlvbiBCKGUsbixpKXtjb25zdCByPW5ldyBVaW50OEFycmF5KDQpLG89dC5jcmVhdGVUZXh0dXJlKCk7dC5iaW5kVGV4dHVyZShlLG8pLHQudGV4UGFyYW1ldGVyaShlLDEwMjQxLDk3MjgpLHQudGV4UGFyYW1ldGVyaShlLDEwMjQwLDk3MjgpO2ZvcihsZXQgZT0wO2U8aTtlKyspdC50ZXhJbWFnZTJEKG4rZSwwLDY0MDgsMSwxLDAsNjQwOCw1MTIxLHIpO3JldHVybiBvfWNvbnN0IEg9e307ZnVuY3Rpb24gRihlKXshMCE9PXVbZV0mJih0LmVuYWJsZShlKSx1W2VdPSEwKX1mdW5jdGlvbiBWKGUpeyExIT09dVtlXSYmKHQuZGlzYWJsZShlKSx1W2VdPSExKX1IWzM1NTNdPUIoMzU1MywzNTUzLDEpLEhbMzQwNjddPUIoMzQwNjcsMzQwNjksNiksci5zZXRDbGVhcigwLDAsMCwxKSxhLnNldENsZWFyKDEpLGwuc2V0Q2xlYXIoMCksRigyOTI5KSxhLnNldEZ1bmMoMyksVyghMSkscSgxKSxGKDI4ODQpLEcoMCk7Y29uc3QgVT17W1EwdF06MzI3NzQsMTAxOjMyNzc4LDEwMjozMjc3OX07aWYoaSlVWzEwM109MzI3NzUsVVsxMDRdPTMyNzc2O2Vsc2V7Y29uc3QgdD1lLmdldCgiRVhUX2JsZW5kX21pbm1heCIpO251bGwhPT10JiYoVVsxMDNdPXQuTUlOX0VYVCxVWzEwNF09dC5NQVhfRVhUKX1jb25zdCBqPXsyMDA6MCwyMDE6MSwyMDI6NzY4LDIwNDo3NzAsMjEwOjc3NiwyMDg6Nzc0LDIwNjo3NzIsMjAzOjc2OSwyMDU6NzcxLDIwOTo3NzUsMjA3Ojc3M307ZnVuY3Rpb24gRyhlLG4saSxyLG8sYSxzLGwpe2lmKDAhPT1lKXtpZighMT09PWYmJihGKDMwNDIpLGY9ITApLDU9PT1lKW89b3x8bixhPWF8fGkscz1zfHxyLG49PT1nJiZvPT09dnx8KHQuYmxlbmRFcXVhdGlvblNlcGFyYXRlKFVbbl0sVVtvXSksZz1uLHY9byksaT09PV8mJnI9PT15JiZhPT09YiYmcz09PXh8fCh0LmJsZW5kRnVuY1NlcGFyYXRlKGpbaV0saltyXSxqW2FdLGpbc10pLF89aSx5PXIsYj1hLHg9cyksbT1lLHc9bnVsbDtlbHNlIGlmKGUhPT1tfHxsIT09dyl7aWYoZz09PVEwdCYmdj09PVEwdHx8KHQuYmxlbmRFcXVhdGlvbigzMjc3NCksZz1RMHQsdj1RMHQpLGwpc3dpdGNoKGUpe2Nhc2UgMTp0LmJsZW5kRnVuY1NlcGFyYXRlKDEsNzcxLDEsNzcxKTticmVhaztjYXNlIDI6dC5ibGVuZEZ1bmMoMSwxKTticmVhaztjYXNlIDM6dC5ibGVuZEZ1bmNTZXBhcmF0ZSgwLDAsNzY5LDc3MSk7YnJlYWs7Y2FzZSA0OnQuYmxlbmRGdW5jU2VwYXJhdGUoMCw3NjgsMCw3NzApO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xTdGF0ZTogSW52YWxpZCBibGVuZGluZzogIixlKX1lbHNlIHN3aXRjaChlKXtjYXNlIDE6dC5ibGVuZEZ1bmNTZXBhcmF0ZSg3NzAsNzcxLDEsNzcxKTticmVhaztjYXNlIDI6dC5ibGVuZEZ1bmMoNzcwLDEpO2JyZWFrO2Nhc2UgMzp0LmJsZW5kRnVuYygwLDc2OSk7YnJlYWs7Y2FzZSA0OnQuYmxlbmRGdW5jKDAsNzY4KTticmVhaztkZWZhdWx0OmNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6IEludmFsaWQgYmxlbmRpbmc6ICIsZSl9Xz1udWxsLHk9bnVsbCxiPW51bGwseD1udWxsLG09ZSx3PWx9fWVsc2UhMD09PWYmJihWKDMwNDIpLGY9ITEpfWZ1bmN0aW9uIFcoZSl7UyE9PWUmJih0LmZyb250RmFjZShlPzIzMDQ6MjMwNSksUz1lKX1mdW5jdGlvbiBxKGUpezAhPT1lPyhGKDI4ODQpLGUhPT1NJiZ0LmN1bGxGYWNlKDE9PT1lPzEwMjk6Mj09PWU/MTAyODoxMDMyKSk6VigyODg0KSxNPWV9ZnVuY3Rpb24gWShlLG4saSl7ZT8oRigzMjgyMyksVD09PW4mJkM9PT1pfHwodC5wb2x5Z29uT2Zmc2V0KG4saSksVD1uLEM9aSkpOlYoMzI4MjMpfWZ1bmN0aW9uIFgoZSl7dm9pZCAwPT09ZSYmKGU9MzM5ODQrQS0xKSxOIT09ZSYmKHQuYWN0aXZlVGV4dHVyZShlKSxOPWUpfXJldHVybntidWZmZXJzOntjb2xvcjpyLGRlcHRoOmEsc3RlbmNpbDpsfSxlbmFibGU6RixkaXNhYmxlOlYsYmluZEZyYW1lYnVmZmVyOmZ1bmN0aW9uICQoZSxuKXtyZXR1cm4gbnVsbD09PW4mJm51bGwhPT1oJiYobj1oKSxkW2VdIT09biYmKHQuYmluZEZyYW1lYnVmZmVyKGUsbiksZFtlXT1uLGkmJigzNjAwOT09PWUmJihkWzM2MTYwXT1uKSwzNjE2MD09PWUmJihkWzM2MDA5XT1uKSksITApfSxiaW5kWFJGcmFtZWJ1ZmZlcjpmdW5jdGlvbiBLKGUpe2UhPT1oJiYodC5iaW5kRnJhbWVidWZmZXIoMzYxNjAsZSksaD1lKX0sdXNlUHJvZ3JhbTpmdW5jdGlvbiBaKGUpe3JldHVybiBwIT09ZSYmKHQudXNlUHJvZ3JhbShlKSxwPWUsITApfSxzZXRCbGVuZGluZzpHLHNldE1hdGVyaWFsOmZ1bmN0aW9uIEoodCxlKXsyPT09dC5zaWRlP1YoMjg4NCk6RigyODg0KTtsZXQgbj0xPT09dC5zaWRlO2UmJihuPSFuKSxXKG4pLDE9PT10LmJsZW5kaW5nJiYhMT09PXQudHJhbnNwYXJlbnQ/RygwKTpHKHQuYmxlbmRpbmcsdC5ibGVuZEVxdWF0aW9uLHQuYmxlbmRTcmMsdC5ibGVuZERzdCx0LmJsZW5kRXF1YXRpb25BbHBoYSx0LmJsZW5kU3JjQWxwaGEsdC5ibGVuZERzdEFscGhhLHQucHJlbXVsdGlwbGllZEFscGhhKSxhLnNldEZ1bmModC5kZXB0aEZ1bmMpLGEuc2V0VGVzdCh0LmRlcHRoVGVzdCksYS5zZXRNYXNrKHQuZGVwdGhXcml0ZSksci5zZXRNYXNrKHQuY29sb3JXcml0ZSk7Y29uc3QgaT10LnN0ZW5jaWxXcml0ZTtsLnNldFRlc3QoaSksaSYmKGwuc2V0TWFzayh0LnN0ZW5jaWxXcml0ZU1hc2spLGwuc2V0RnVuYyh0LnN0ZW5jaWxGdW5jLHQuc3RlbmNpbFJlZix0LnN0ZW5jaWxGdW5jTWFzayksbC5zZXRPcCh0LnN0ZW5jaWxGYWlsLHQuc3RlbmNpbFpGYWlsLHQuc3RlbmNpbFpQYXNzKSksWSh0LnBvbHlnb25PZmZzZXQsdC5wb2x5Z29uT2Zmc2V0RmFjdG9yLHQucG9seWdvbk9mZnNldFVuaXRzKSwhMD09PXQuYWxwaGFUb0NvdmVyYWdlP0YoMzI5MjYpOlYoMzI5MjYpfSxzZXRGbGlwU2lkZWQ6VyxzZXRDdWxsRmFjZTpxLHNldExpbmVXaWR0aDpmdW5jdGlvbiBRKGUpe2UhPT1FJiYoayYmdC5saW5lV2lkdGgoZSksRT1lKX0sc2V0UG9seWdvbk9mZnNldDpZLHNldFNjaXNzb3JUZXN0OmZ1bmN0aW9uIHR0KHQpe3Q/RigzMDg5KTpWKDMwODkpfSxhY3RpdmVUZXh0dXJlOlgsYmluZFRleHR1cmU6ZnVuY3Rpb24gZXQoZSxuKXtudWxsPT09TiYmWCgpO2xldCBpPUlbTl07dm9pZCAwPT09aSYmKGk9e3R5cGU6dm9pZCAwLHRleHR1cmU6dm9pZCAwfSxJW05dPWkpLGkudHlwZT09PWUmJmkudGV4dHVyZT09PW58fCh0LmJpbmRUZXh0dXJlKGUsbnx8SFtlXSksaS50eXBlPWUsaS50ZXh0dXJlPW4pfSx1bmJpbmRUZXh0dXJlOmZ1bmN0aW9uIG50KCl7Y29uc3QgZT1JW05dO3ZvaWQgMCE9PWUmJnZvaWQgMCE9PWUudHlwZSYmKHQuYmluZFRleHR1cmUoZS50eXBlLG51bGwpLGUudHlwZT12b2lkIDAsZS50ZXh0dXJlPXZvaWQgMCl9LGNvbXByZXNzZWRUZXhJbWFnZTJEOmZ1bmN0aW9uIGl0KCl7dHJ5e3QuY29tcHJlc3NlZFRleEltYWdlMkQuYXBwbHkodCxhcmd1bWVudHMpfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6Iix0KX19LHRleEltYWdlMkQ6ZnVuY3Rpb24gcnQoKXt0cnl7dC50ZXhJbWFnZTJELmFwcGx5KHQsYXJndW1lbnRzKX1jYXRjaCh0KXtjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFN0YXRlOiIsdCl9fSx0ZXhJbWFnZTNEOmZ1bmN0aW9uIG90KCl7dHJ5e3QudGV4SW1hZ2UzRC5hcHBseSh0LGFyZ3VtZW50cyl9Y2F0Y2godCl7Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xTdGF0ZToiLHQpfX0sc2Npc3NvcjpmdW5jdGlvbiBhdChlKXshMT09PXouZXF1YWxzKGUpJiYodC5zY2lzc29yKGUueCxlLnksZS56LGUudyksei5jb3B5KGUpKX0sdmlld3BvcnQ6ZnVuY3Rpb24gc3QoZSl7ITE9PT1ELmVxdWFscyhlKSYmKHQudmlld3BvcnQoZS54LGUueSxlLnosZS53KSxELmNvcHkoZSkpfSxyZXNldDpmdW5jdGlvbiBsdCgpe3QuZGlzYWJsZSgzMDQyKSx0LmRpc2FibGUoMjg4NCksdC5kaXNhYmxlKDI5MjkpLHQuZGlzYWJsZSgzMjgyMyksdC5kaXNhYmxlKDMwODkpLHQuZGlzYWJsZSgyOTYwKSx0LmRpc2FibGUoMzI5MjYpLHQuYmxlbmRFcXVhdGlvbigzMjc3NCksdC5ibGVuZEZ1bmMoMSwwKSx0LmJsZW5kRnVuY1NlcGFyYXRlKDEsMCwxLDApLHQuY29sb3JNYXNrKCEwLCEwLCEwLCEwKSx0LmNsZWFyQ29sb3IoMCwwLDAsMCksdC5kZXB0aE1hc2soITApLHQuZGVwdGhGdW5jKDUxMyksdC5jbGVhckRlcHRoKDEpLHQuc3RlbmNpbE1hc2soNDI5NDk2NzI5NSksdC5zdGVuY2lsRnVuYyg1MTksMCw0Mjk0OTY3Mjk1KSx0LnN0ZW5jaWxPcCg3NjgwLDc2ODAsNzY4MCksdC5jbGVhclN0ZW5jaWwoMCksdC5jdWxsRmFjZSgxMDI5KSx0LmZyb250RmFjZSgyMzA1KSx0LnBvbHlnb25PZmZzZXQoMCwwKSx0LmFjdGl2ZVRleHR1cmUoMzM5ODQpLHQuYmluZEZyYW1lYnVmZmVyKDM2MTYwLG51bGwpLCEwPT09aSYmKHQuYmluZEZyYW1lYnVmZmVyKDM2MDA5LG51bGwpLHQuYmluZEZyYW1lYnVmZmVyKDM2MDA4LG51bGwpKSx0LnVzZVByb2dyYW0obnVsbCksdC5saW5lV2lkdGgoMSksdC5zY2lzc29yKDAsMCx0LmNhbnZhcy53aWR0aCx0LmNhbnZhcy5oZWlnaHQpLHQudmlld3BvcnQoMCwwLHQuY2FudmFzLndpZHRoLHQuY2FudmFzLmhlaWdodCksdT17fSxOPW51bGwsST17fSxoPW51bGwsZD17fSxwPW51bGwsZj0hMSxtPW51bGwsZz1udWxsLF89bnVsbCx5PW51bGwsdj1udWxsLGI9bnVsbCx4PW51bGwsdz0hMSxTPW51bGwsTT1udWxsLEU9bnVsbCxUPW51bGwsQz1udWxsLHouc2V0KDAsMCx0LmNhbnZhcy53aWR0aCx0LmNhbnZhcy5oZWlnaHQpLEQuc2V0KDAsMCx0LmNhbnZhcy53aWR0aCx0LmNhbnZhcy5oZWlnaHQpLHIucmVzZXQoKSxhLnJlc2V0KCksbC5yZXNldCgpfX19ZnVuY3Rpb24gWjh0KHQsZSxuLGkscixvLGEpe2NvbnN0IHM9ci5pc1dlYkdMMixsPXIubWF4VGV4dHVyZXMsYz1yLm1heEN1YmVtYXBTaXplLHU9ci5tYXhUZXh0dXJlU2l6ZSxoPXIubWF4U2FtcGxlcyxkPW5ldyBXZWFrTWFwO2xldCBwLGY9ITE7dHJ5e2Y9InVuZGVmaW5lZCIhPXR5cGVvZiBPZmZzY3JlZW5DYW52YXMmJm51bGwhPT1uZXcgT2Zmc2NyZWVuQ2FudmFzKDEsMSkuZ2V0Q29udGV4dCgiMmQiKX1jYXRjaCh0KXt9ZnVuY3Rpb24gbSh0LGUpe3JldHVybiBmP25ldyBPZmZzY3JlZW5DYW52YXModCxlKTpkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJjYW52YXMiKX1mdW5jdGlvbiBnKHQsZSxuLGkpe2xldCByPTE7aWYoKHQud2lkdGg+aXx8dC5oZWlnaHQ+aSkmJihyPWkvTWF0aC5tYXgodC53aWR0aCx0LmhlaWdodCkpLHI8MXx8ITA9PT1lKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIEhUTUxJbWFnZUVsZW1lbnQmJnQgaW5zdGFuY2VvZiBIVE1MSW1hZ2VFbGVtZW50fHwidW5kZWZpbmVkIiE9dHlwZW9mIEhUTUxDYW52YXNFbGVtZW50JiZ0IGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnR8fCJ1bmRlZmluZWQiIT10eXBlb2YgSW1hZ2VCaXRtYXAmJnQgaW5zdGFuY2VvZiBJbWFnZUJpdG1hcCl7Y29uc3QgaT1lP2Q1dDpNYXRoLmZsb29yLG89aShyKnQud2lkdGgpLGE9aShyKnQuaGVpZ2h0KTt2b2lkIDA9PT1wJiYocD1tKG8sYSkpO2NvbnN0IHM9bj9tKG8sYSk6cDtzLndpZHRoPW8scy5oZWlnaHQ9YTtyZXR1cm4gcy5nZXRDb250ZXh0KCIyZCIpLmRyYXdJbWFnZSh0LDAsMCxvLGEpLGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVGV4dHVyZSBoYXMgYmVlbiByZXNpemVkIGZyb20gKCIrdC53aWR0aCsieCIrdC5oZWlnaHQrIikgdG8gKCIrbysieCIrYSsiKS4iKSxzfXJldHVybiJkYXRhImluIHQmJmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogSW1hZ2UgaW4gRGF0YVRleHR1cmUgaXMgdG9vIGJpZyAoIit0LndpZHRoKyJ4Iit0LmhlaWdodCsiKS4iKSx0fXJldHVybiB0fWZ1bmN0aW9uIF8odCl7cmV0dXJuIHU1dCh0LndpZHRoKSYmdTV0KHQuaGVpZ2h0KX1mdW5jdGlvbiB5KHQsZSl7cmV0dXJuIHQuZ2VuZXJhdGVNaXBtYXBzJiZlJiZ0Lm1pbkZpbHRlciE9PXUydCYmdC5taW5GaWx0ZXIhPT1wMnR9ZnVuY3Rpb24gdihlLG4scixvLGE9MSl7dC5nZW5lcmF0ZU1pcG1hcChlKTtpLmdldChuKS5fX21heE1pcExldmVsPU1hdGgubG9nMihNYXRoLm1heChyLG8sYSkpfWZ1bmN0aW9uIGIobixpLHIpe2lmKCExPT09cylyZXR1cm4gaTtpZihudWxsIT09bil7aWYodm9pZCAwIT09dFtuXSlyZXR1cm4gdFtuXTtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IEF0dGVtcHQgdG8gdXNlIG5vbi1leGlzdGluZyBXZWJHTCBpbnRlcm5hbCBmb3JtYXQgJyIrbisiJyIpfWxldCBvPWk7cmV0dXJuIDY0MDM9PT1pJiYoNTEyNj09PXImJihvPTMzMzI2KSw1MTMxPT09ciYmKG89MzMzMjUpLDUxMjE9PT1yJiYobz0zMzMyMSkpLDY0MDc9PT1pJiYoNTEyNj09PXImJihvPTM0ODM3KSw1MTMxPT09ciYmKG89MzQ4NDMpLDUxMjE9PT1yJiYobz0zMjg0OSkpLDY0MDg9PT1pJiYoNTEyNj09PXImJihvPTM0ODM2KSw1MTMxPT09ciYmKG89MzQ4NDIpLDUxMjE9PT1yJiYobz0zMjg1NikpLDMzMzI1IT09byYmMzMzMjYhPT1vJiYzNDg0MiE9PW8mJjM0ODM2IT09b3x8ZS5nZXQoIkVYVF9jb2xvcl9idWZmZXJfZmxvYXQiKSxvfWZ1bmN0aW9uIHgodCl7cmV0dXJuIHQ9PT11MnR8fHQ9PT1oMnR8fHQ9PT1kMnQ/OTcyODo5NzI5fWZ1bmN0aW9uIHcoZSl7Y29uc3Qgbj1lLnRhcmdldDtuLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHcpLChmdW5jdGlvbiByKGUpe2NvbnN0IG49aS5nZXQoZSk7aWYodm9pZCAwPT09bi5fX3dlYmdsSW5pdClyZXR1cm47dC5kZWxldGVUZXh0dXJlKG4uX193ZWJnbFRleHR1cmUpLGkucmVtb3ZlKGUpfSkobiksbi5pc1ZpZGVvVGV4dHVyZSYmZC5kZWxldGUobiksYS5tZW1vcnkudGV4dHVyZXMtLX1mdW5jdGlvbiBTKGUpe2NvbnN0IG49ZS50YXJnZXQ7bi5yZW1vdmVFdmVudExpc3RlbmVyKCJkaXNwb3NlIixTKSwoZnVuY3Rpb24gcihlKXtjb25zdCBuPWUudGV4dHVyZSxyPWkuZ2V0KGUpLG89aS5nZXQobik7aWYoIWUpcmV0dXJuO3ZvaWQgMCE9PW8uX193ZWJnbFRleHR1cmUmJih0LmRlbGV0ZVRleHR1cmUoby5fX3dlYmdsVGV4dHVyZSksYS5tZW1vcnkudGV4dHVyZXMtLSk7ZS5kZXB0aFRleHR1cmUmJmUuZGVwdGhUZXh0dXJlLmRpc3Bvc2UoKTtpZihlLmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0KWZvcihsZXQgZT0wO2U8NjtlKyspdC5kZWxldGVGcmFtZWJ1ZmZlcihyLl9fd2ViZ2xGcmFtZWJ1ZmZlcltlXSksci5fX3dlYmdsRGVwdGhidWZmZXImJnQuZGVsZXRlUmVuZGVyYnVmZmVyKHIuX193ZWJnbERlcHRoYnVmZmVyW2VdKTtlbHNlIHQuZGVsZXRlRnJhbWVidWZmZXIoci5fX3dlYmdsRnJhbWVidWZmZXIpLHIuX193ZWJnbERlcHRoYnVmZmVyJiZ0LmRlbGV0ZVJlbmRlcmJ1ZmZlcihyLl9fd2ViZ2xEZXB0aGJ1ZmZlciksci5fX3dlYmdsTXVsdGlzYW1wbGVkRnJhbWVidWZmZXImJnQuZGVsZXRlRnJhbWVidWZmZXIoci5fX3dlYmdsTXVsdGlzYW1wbGVkRnJhbWVidWZmZXIpLHIuX193ZWJnbENvbG9yUmVuZGVyYnVmZmVyJiZ0LmRlbGV0ZVJlbmRlcmJ1ZmZlcihyLl9fd2ViZ2xDb2xvclJlbmRlcmJ1ZmZlciksci5fX3dlYmdsRGVwdGhSZW5kZXJidWZmZXImJnQuZGVsZXRlUmVuZGVyYnVmZmVyKHIuX193ZWJnbERlcHRoUmVuZGVyYnVmZmVyKTtpZihlLmlzV2ViR0xNdWx0aXBsZVJlbmRlclRhcmdldHMpZm9yKGxldCBlPTAscj1uLmxlbmd0aDtlPHI7ZSsrKXtjb25zdCByPWkuZ2V0KG5bZV0pO3IuX193ZWJnbFRleHR1cmUmJih0LmRlbGV0ZVRleHR1cmUoci5fX3dlYmdsVGV4dHVyZSksYS5tZW1vcnkudGV4dHVyZXMtLSksaS5yZW1vdmUobltlXSl9aS5yZW1vdmUobiksaS5yZW1vdmUoZSl9KShuKX1sZXQgTT0wO2Z1bmN0aW9uIEUodCxlKXtjb25zdCByPWkuZ2V0KHQpO2lmKHQuaXNWaWRlb1RleHR1cmUmJihmdW5jdGlvbiBvKHQpe2NvbnN0IGU9YS5yZW5kZXIuZnJhbWU7ZC5nZXQodCkhPT1lJiYoZC5zZXQodCxlKSx0LnVwZGF0ZSgpKX0pKHQpLHQudmVyc2lvbj4wJiZyLl9fdmVyc2lvbiE9PXQudmVyc2lvbil7Y29uc3Qgbj10LmltYWdlO2lmKHZvaWQgMD09PW4pY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBUZXh0dXJlIG1hcmtlZCBmb3IgdXBkYXRlIGJ1dCBpbWFnZSBpcyB1bmRlZmluZWQiKTtlbHNle2lmKCExIT09bi5jb21wbGV0ZSlyZXR1cm4gdm9pZCBQKHIsdCxlKTtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFRleHR1cmUgbWFya2VkIGZvciB1cGRhdGUgYnV0IGltYWdlIGlzIGluY29tcGxldGUiKX19bi5hY3RpdmVUZXh0dXJlKDMzOTg0K2UpLG4uYmluZFRleHR1cmUoMzU1MyxyLl9fd2ViZ2xUZXh0dXJlKX1mdW5jdGlvbiBUKGUscil7Y29uc3QgYT1pLmdldChlKTtlLnZlcnNpb24+MCYmYS5fX3ZlcnNpb24hPT1lLnZlcnNpb24/KGZ1bmN0aW9uIGwoZSxpLHIpe2lmKDYhPT1pLmltYWdlLmxlbmd0aClyZXR1cm47TChlLGkpLG4uYWN0aXZlVGV4dHVyZSgzMzk4NCtyKSxuLmJpbmRUZXh0dXJlKDM0MDY3LGUuX193ZWJnbFRleHR1cmUpLHQucGl4ZWxTdG9yZWkoMzc0NDAsaS5mbGlwWSksdC5waXhlbFN0b3JlaSgzNzQ0MSxpLnByZW11bHRpcGx5QWxwaGEpLHQucGl4ZWxTdG9yZWkoMzMxNyxpLnVucGFja0FsaWdubWVudCksdC5waXhlbFN0b3JlaSgzNzQ0MywwKTtjb25zdCBhPWkmJihpLmlzQ29tcHJlc3NlZFRleHR1cmV8fGkuaW1hZ2VbMF0uaXNDb21wcmVzc2VkVGV4dHVyZSksbD1pLmltYWdlWzBdJiZpLmltYWdlWzBdLmlzRGF0YVRleHR1cmUsdT1bXTtmb3IobGV0IHQ9MDt0PDY7dCsrKXVbdF09YXx8bD9sP2kuaW1hZ2VbdF0uaW1hZ2U6aS5pbWFnZVt0XTpnKGkuaW1hZ2VbdF0sITEsITAsYyk7Y29uc3QgaD11WzBdLGQ9XyhoKXx8cyxwPW8uY29udmVydChpLmZvcm1hdCksZj1vLmNvbnZlcnQoaS50eXBlKSxtPWIoaS5pbnRlcm5hbEZvcm1hdCxwLGYpO2xldCB4O2lmKGsoMzQwNjcsaSxkKSxhKXtmb3IobGV0IHQ9MDt0PDY7dCsrKXt4PXVbdF0ubWlwbWFwcztmb3IobGV0IGU9MDtlPHgubGVuZ3RoO2UrKyl7Y29uc3Qgcj14W2VdO2kuZm9ybWF0IT09UzJ0JiZpLmZvcm1hdCE9PXcydD9udWxsIT09cD9uLmNvbXByZXNzZWRUZXhJbWFnZTJEKDM0MDY5K3QsZSxtLHIud2lkdGgsci5oZWlnaHQsMCxyLmRhdGEpOmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogQXR0ZW1wdCB0byBsb2FkIHVuc3VwcG9ydGVkIGNvbXByZXNzZWQgdGV4dHVyZSBmb3JtYXQgaW4gLnNldFRleHR1cmVDdWJlKCkiKTpuLnRleEltYWdlMkQoMzQwNjkrdCxlLG0sci53aWR0aCxyLmhlaWdodCwwLHAsZixyLmRhdGEpfX1lLl9fbWF4TWlwTGV2ZWw9eC5sZW5ndGgtMX1lbHNle3g9aS5taXBtYXBzO2ZvcihsZXQgdD0wO3Q8Njt0KyspaWYobCl7bi50ZXhJbWFnZTJEKDM0MDY5K3QsMCxtLHVbdF0ud2lkdGgsdVt0XS5oZWlnaHQsMCxwLGYsdVt0XS5kYXRhKTtmb3IobGV0IGU9MDtlPHgubGVuZ3RoO2UrKyl7Y29uc3QgaT14W2VdLmltYWdlW3RdLmltYWdlO24udGV4SW1hZ2UyRCgzNDA2OSt0LGUrMSxtLGkud2lkdGgsaS5oZWlnaHQsMCxwLGYsaS5kYXRhKX19ZWxzZXtuLnRleEltYWdlMkQoMzQwNjkrdCwwLG0scCxmLHVbdF0pO2ZvcihsZXQgZT0wO2U8eC5sZW5ndGg7ZSsrKXtuLnRleEltYWdlMkQoMzQwNjkrdCxlKzEsbSxwLGYseFtlXS5pbWFnZVt0XSl9fWUuX19tYXhNaXBMZXZlbD14Lmxlbmd0aH15KGksZCkmJnYoMzQwNjcsaSxoLndpZHRoLGguaGVpZ2h0KTtlLl9fdmVyc2lvbj1pLnZlcnNpb24saS5vblVwZGF0ZSYmaS5vblVwZGF0ZShpKX0pKGEsZSxyKToobi5hY3RpdmVUZXh0dXJlKDMzOTg0K3IpLG4uYmluZFRleHR1cmUoMzQwNjcsYS5fX3dlYmdsVGV4dHVyZSkpfWNvbnN0IEM9e1tzMnRdOjEwNDk3LFtsMnRdOjMzMDcxLFtjMnRdOjMzNjQ4fSxBPXtbdTJ0XTo5NzI4LFtoMnRdOjk5ODQsW2QydF06OTk4NixbcDJ0XTo5NzI5LFtmMnRdOjk5ODUsW20ydF06OTk4N307ZnVuY3Rpb24gayhuLG8sYSl7aWYoYT8odC50ZXhQYXJhbWV0ZXJpKG4sMTAyNDIsQ1tvLndyYXBTXSksdC50ZXhQYXJhbWV0ZXJpKG4sMTAyNDMsQ1tvLndyYXBUXSksMzI4NzkhPT1uJiYzNTg2NiE9PW58fHQudGV4UGFyYW1ldGVyaShuLDMyODgyLENbby53cmFwUl0pLHQudGV4UGFyYW1ldGVyaShuLDEwMjQwLEFbby5tYWdGaWx0ZXJdKSx0LnRleFBhcmFtZXRlcmkobiwxMDI0MSxBW28ubWluRmlsdGVyXSkpOih0LnRleFBhcmFtZXRlcmkobiwxMDI0MiwzMzA3MSksdC50ZXhQYXJhbWV0ZXJpKG4sMTAyNDMsMzMwNzEpLDMyODc5IT09biYmMzU4NjYhPT1ufHx0LnRleFBhcmFtZXRlcmkobiwzMjg4MiwzMzA3MSksby53cmFwUz09PWwydCYmby53cmFwVD09PWwydHx8Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBUZXh0dXJlIGlzIG5vdCBwb3dlciBvZiB0d28uIFRleHR1cmUud3JhcFMgYW5kIFRleHR1cmUud3JhcFQgc2hvdWxkIGJlIHNldCB0byBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nLiIpLHQudGV4UGFyYW1ldGVyaShuLDEwMjQwLHgoby5tYWdGaWx0ZXIpKSx0LnRleFBhcmFtZXRlcmkobiwxMDI0MSx4KG8ubWluRmlsdGVyKSksby5taW5GaWx0ZXIhPT11MnQmJm8ubWluRmlsdGVyIT09cDJ0JiZjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFRleHR1cmUgaXMgbm90IHBvd2VyIG9mIHR3by4gVGV4dHVyZS5taW5GaWx0ZXIgc2hvdWxkIGJlIHNldCB0byBUSFJFRS5OZWFyZXN0RmlsdGVyIG9yIFRIUkVFLkxpbmVhckZpbHRlci4iKSksITA9PT1lLmhhcygiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpe2NvbnN0IGE9ZS5nZXQoIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpO2lmKG8udHlwZT09PXYydCYmITE9PT1lLmhhcygiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikpcmV0dXJuO2lmKCExPT09cyYmby50eXBlPT09YjJ0JiYhMT09PWUuaGFzKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpKXJldHVybjsoby5hbmlzb3Ryb3B5PjF8fGkuZ2V0KG8pLl9fY3VycmVudEFuaXNvdHJvcHkpJiYodC50ZXhQYXJhbWV0ZXJmKG4sYS5URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCxNYXRoLm1pbihvLmFuaXNvdHJvcHksci5nZXRNYXhBbmlzb3Ryb3B5KCkpKSxpLmdldChvKS5fX2N1cnJlbnRBbmlzb3Ryb3B5PW8uYW5pc290cm9weSl9fWZ1bmN0aW9uIEwoZSxuKXt2b2lkIDA9PT1lLl9fd2ViZ2xJbml0JiYoZS5fX3dlYmdsSW5pdD0hMCxuLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHcpLGUuX193ZWJnbFRleHR1cmU9dC5jcmVhdGVUZXh0dXJlKCksYS5tZW1vcnkudGV4dHVyZXMrKyl9ZnVuY3Rpb24gUChlLGkscil7bGV0IGE9MzU1MztpLmlzRGF0YVRleHR1cmUyREFycmF5JiYoYT0zNTg2NiksaS5pc0RhdGFUZXh0dXJlM0QmJihhPTMyODc5KSxMKGUsaSksbi5hY3RpdmVUZXh0dXJlKDMzOTg0K3IpLG4uYmluZFRleHR1cmUoYSxlLl9fd2ViZ2xUZXh0dXJlKSx0LnBpeGVsU3RvcmVpKDM3NDQwLGkuZmxpcFkpLHQucGl4ZWxTdG9yZWkoMzc0NDEsaS5wcmVtdWx0aXBseUFscGhhKSx0LnBpeGVsU3RvcmVpKDMzMTcsaS51bnBhY2tBbGlnbm1lbnQpLHQucGl4ZWxTdG9yZWkoMzc0NDMsMCk7Y29uc3QgbD0oZnVuY3Rpb24gYyh0KXtyZXR1cm4hcyYmKHQud3JhcFMhPT1sMnR8fHQud3JhcFQhPT1sMnR8fHQubWluRmlsdGVyIT09dTJ0JiZ0Lm1pbkZpbHRlciE9PXAydCl9KShpKSYmITE9PT1fKGkuaW1hZ2UpLGg9ZyhpLmltYWdlLGwsITEsdSksZD1fKGgpfHxzLHA9by5jb252ZXJ0KGkuZm9ybWF0KTtsZXQgZixtPW8uY29udmVydChpLnR5cGUpLHg9YihpLmludGVybmFsRm9ybWF0LHAsbSk7ayhhLGksZCk7Y29uc3Qgdz1pLm1pcG1hcHM7aWYoaS5pc0RlcHRoVGV4dHVyZSl4PTY0MDIscz94PWkudHlwZT09PXYydD8zNjAxMjppLnR5cGU9PT15MnQ/MzMxOTA6aS50eXBlPT09eDJ0PzM1MDU2OjMzMTg5OmkudHlwZT09PXYydCYmY29uc29sZS5lcnJvcigiV2ViR0xSZW5kZXJlcjogRmxvYXRpbmcgcG9pbnQgZGVwdGggdGV4dHVyZSByZXF1aXJlcyBXZWJHTDIuIiksaS5mb3JtYXQ9PT1NMnQmJjY0MDI9PT14JiZpLnR5cGUhPT1fMnQmJmkudHlwZSE9PXkydCYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVXNlIFVuc2lnbmVkU2hvcnRUeXBlIG9yIFVuc2lnbmVkSW50VHlwZSBmb3IgRGVwdGhGb3JtYXQgRGVwdGhUZXh0dXJlLiIpLGkudHlwZT1fMnQsbT1vLmNvbnZlcnQoaS50eXBlKSksaS5mb3JtYXQ9PT1FMnQmJjY0MDI9PT14JiYoeD0zNDA0MSxpLnR5cGUhPT14MnQmJihjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFVzZSBVbnNpZ25lZEludDI0OFR5cGUgZm9yIERlcHRoU3RlbmNpbEZvcm1hdCBEZXB0aFRleHR1cmUuIiksaS50eXBlPXgydCxtPW8uY29udmVydChpLnR5cGUpKSksbi50ZXhJbWFnZTJEKDM1NTMsMCx4LGgud2lkdGgsaC5oZWlnaHQsMCxwLG0sbnVsbCk7ZWxzZSBpZihpLmlzRGF0YVRleHR1cmUpaWYody5sZW5ndGg+MCYmZCl7Zm9yKGxldCB0PTAsZT13Lmxlbmd0aDt0PGU7dCsrKWY9d1t0XSxuLnRleEltYWdlMkQoMzU1Myx0LHgsZi53aWR0aCxmLmhlaWdodCwwLHAsbSxmLmRhdGEpO2kuZ2VuZXJhdGVNaXBtYXBzPSExLGUuX19tYXhNaXBMZXZlbD13Lmxlbmd0aC0xfWVsc2Ugbi50ZXhJbWFnZTJEKDM1NTMsMCx4LGgud2lkdGgsaC5oZWlnaHQsMCxwLG0saC5kYXRhKSxlLl9fbWF4TWlwTGV2ZWw9MDtlbHNlIGlmKGkuaXNDb21wcmVzc2VkVGV4dHVyZSl7Zm9yKGxldCB0PTAsZT13Lmxlbmd0aDt0PGU7dCsrKWY9d1t0XSxpLmZvcm1hdCE9PVMydCYmaS5mb3JtYXQhPT13MnQ/bnVsbCE9PXA/bi5jb21wcmVzc2VkVGV4SW1hZ2UyRCgzNTUzLHQseCxmLndpZHRoLGYuaGVpZ2h0LDAsZi5kYXRhKTpjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IEF0dGVtcHQgdG8gbG9hZCB1bnN1cHBvcnRlZCBjb21wcmVzc2VkIHRleHR1cmUgZm9ybWF0IGluIC51cGxvYWRUZXh0dXJlKCkiKTpuLnRleEltYWdlMkQoMzU1Myx0LHgsZi53aWR0aCxmLmhlaWdodCwwLHAsbSxmLmRhdGEpO2UuX19tYXhNaXBMZXZlbD13Lmxlbmd0aC0xfWVsc2UgaWYoaS5pc0RhdGFUZXh0dXJlMkRBcnJheSluLnRleEltYWdlM0QoMzU4NjYsMCx4LGgud2lkdGgsaC5oZWlnaHQsaC5kZXB0aCwwLHAsbSxoLmRhdGEpLGUuX19tYXhNaXBMZXZlbD0wO2Vsc2UgaWYoaS5pc0RhdGFUZXh0dXJlM0Qpbi50ZXhJbWFnZTNEKDMyODc5LDAseCxoLndpZHRoLGguaGVpZ2h0LGguZGVwdGgsMCxwLG0saC5kYXRhKSxlLl9fbWF4TWlwTGV2ZWw9MDtlbHNlIGlmKHcubGVuZ3RoPjAmJmQpe2ZvcihsZXQgdD0wLGU9dy5sZW5ndGg7dDxlO3QrKylmPXdbdF0sbi50ZXhJbWFnZTJEKDM1NTMsdCx4LHAsbSxmKTtpLmdlbmVyYXRlTWlwbWFwcz0hMSxlLl9fbWF4TWlwTGV2ZWw9dy5sZW5ndGgtMX1lbHNlIG4udGV4SW1hZ2UyRCgzNTUzLDAseCxwLG0saCksZS5fX21heE1pcExldmVsPTA7eShpLGQpJiZ2KGEsaSxoLndpZHRoLGguaGVpZ2h0KSxlLl9fdmVyc2lvbj1pLnZlcnNpb24saS5vblVwZGF0ZSYmaS5vblVwZGF0ZShpKX1mdW5jdGlvbiBOKGUscixhLHMsbCl7Y29uc3QgYz1vLmNvbnZlcnQoYS5mb3JtYXQpLHU9by5jb252ZXJ0KGEudHlwZSksaD1iKGEuaW50ZXJuYWxGb3JtYXQsYyx1KTszMjg3OT09PWx8fDM1ODY2PT09bD9uLnRleEltYWdlM0QobCwwLGgsci53aWR0aCxyLmhlaWdodCxyLmRlcHRoLDAsYyx1LG51bGwpOm4udGV4SW1hZ2UyRChsLDAsaCxyLndpZHRoLHIuaGVpZ2h0LDAsYyx1LG51bGwpLG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLGUpLHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAscyxsLGkuZ2V0KGEpLl9fd2ViZ2xUZXh0dXJlLDApLG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLG51bGwpfWZ1bmN0aW9uIEkoZSxuLGkpe2lmKHQuYmluZFJlbmRlcmJ1ZmZlcigzNjE2MSxlKSxuLmRlcHRoQnVmZmVyJiYhbi5zdGVuY2lsQnVmZmVyKXtsZXQgcj0zMzE4OTtpZihpKXtjb25zdCBlPW4uZGVwdGhUZXh0dXJlO2UmJmUuaXNEZXB0aFRleHR1cmUmJihlLnR5cGU9PT12MnQ/cj0zNjAxMjplLnR5cGU9PT15MnQmJihyPTMzMTkwKSk7Y29uc3QgaT1PKG4pO3QucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKDM2MTYxLGkscixuLndpZHRoLG4uaGVpZ2h0KX1lbHNlIHQucmVuZGVyYnVmZmVyU3RvcmFnZSgzNjE2MSxyLG4ud2lkdGgsbi5oZWlnaHQpO3QuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoMzYxNjAsMzYwOTYsMzYxNjEsZSl9ZWxzZSBpZihuLmRlcHRoQnVmZmVyJiZuLnN0ZW5jaWxCdWZmZXIpe2lmKGkpe2NvbnN0IGU9TyhuKTt0LnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSgzNjE2MSxlLDM1MDU2LG4ud2lkdGgsbi5oZWlnaHQpfWVsc2UgdC5yZW5kZXJidWZmZXJTdG9yYWdlKDM2MTYxLDM0MDQxLG4ud2lkdGgsbi5oZWlnaHQpO3QuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoMzYxNjAsMzMzMDYsMzYxNjEsZSl9ZWxzZXtjb25zdCBlPSEwPT09bi5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzP24udGV4dHVyZVswXTpuLnRleHR1cmUscj1vLmNvbnZlcnQoZS5mb3JtYXQpLGE9by5jb252ZXJ0KGUudHlwZSkscz1iKGUuaW50ZXJuYWxGb3JtYXQscixhKTtpZihpKXtjb25zdCBlPU8obik7dC5yZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoMzYxNjEsZSxzLG4ud2lkdGgsbi5oZWlnaHQpfWVsc2UgdC5yZW5kZXJidWZmZXJTdG9yYWdlKDM2MTYxLHMsbi53aWR0aCxuLmhlaWdodCl9dC5iaW5kUmVuZGVyYnVmZmVyKDM2MTYxLG51bGwpfWZ1bmN0aW9uIFIoZSl7Y29uc3Qgcj1pLmdldChlKSxvPSEwPT09ZS5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldDtpZihlLmRlcHRoVGV4dHVyZSl7aWYobyl0aHJvdyBuZXcgRXJyb3IoInRhcmdldC5kZXB0aFRleHR1cmUgbm90IHN1cHBvcnRlZCBpbiBDdWJlIHJlbmRlciB0YXJnZXRzIik7IShmdW5jdGlvbiBhKGUscil7aWYociYmci5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldCl0aHJvdyBuZXcgRXJyb3IoIkRlcHRoIFRleHR1cmUgd2l0aCBjdWJlIHJlbmRlciB0YXJnZXRzIGlzIG5vdCBzdXBwb3J0ZWQiKTtpZihuLmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxlKSwhci5kZXB0aFRleHR1cmV8fCFyLmRlcHRoVGV4dHVyZS5pc0RlcHRoVGV4dHVyZSl0aHJvdyBuZXcgRXJyb3IoInJlbmRlclRhcmdldC5kZXB0aFRleHR1cmUgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBUSFJFRS5EZXB0aFRleHR1cmUiKTtpLmdldChyLmRlcHRoVGV4dHVyZSkuX193ZWJnbFRleHR1cmUmJnIuZGVwdGhUZXh0dXJlLmltYWdlLndpZHRoPT09ci53aWR0aCYmci5kZXB0aFRleHR1cmUuaW1hZ2UuaGVpZ2h0PT09ci5oZWlnaHR8fChyLmRlcHRoVGV4dHVyZS5pbWFnZS53aWR0aD1yLndpZHRoLHIuZGVwdGhUZXh0dXJlLmltYWdlLmhlaWdodD1yLmhlaWdodCxyLmRlcHRoVGV4dHVyZS5uZWVkc1VwZGF0ZT0hMCksRShyLmRlcHRoVGV4dHVyZSwwKTtjb25zdCBvPWkuZ2V0KHIuZGVwdGhUZXh0dXJlKS5fX3dlYmdsVGV4dHVyZTtpZihyLmRlcHRoVGV4dHVyZS5mb3JtYXQ9PT1NMnQpdC5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCwzNjA5NiwzNTUzLG8sMCk7ZWxzZXtpZihyLmRlcHRoVGV4dHVyZS5mb3JtYXQhPT1FMnQpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGRlcHRoVGV4dHVyZSBmb3JtYXQiKTt0LmZyYW1lYnVmZmVyVGV4dHVyZTJEKDM2MTYwLDMzMzA2LDM1NTMsbywwKX19KShyLl9fd2ViZ2xGcmFtZWJ1ZmZlcixlKX1lbHNlIGlmKG8pe3IuX193ZWJnbERlcHRoYnVmZmVyPVtdO2ZvcihsZXQgaT0wO2k8NjtpKyspbi5iaW5kRnJhbWVidWZmZXIoMzYxNjAsci5fX3dlYmdsRnJhbWVidWZmZXJbaV0pLHIuX193ZWJnbERlcHRoYnVmZmVyW2ldPXQuY3JlYXRlUmVuZGVyYnVmZmVyKCksSShyLl9fd2ViZ2xEZXB0aGJ1ZmZlcltpXSxlLCExKX1lbHNlIG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLHIuX193ZWJnbEZyYW1lYnVmZmVyKSxyLl9fd2ViZ2xEZXB0aGJ1ZmZlcj10LmNyZWF0ZVJlbmRlcmJ1ZmZlcigpLEkoci5fX3dlYmdsRGVwdGhidWZmZXIsZSwhMSk7bi5iaW5kRnJhbWVidWZmZXIoMzYxNjAsbnVsbCl9ZnVuY3Rpb24gTyh0KXtyZXR1cm4gcyYmdC5pc1dlYkdMTXVsdGlzYW1wbGVSZW5kZXJUYXJnZXQ/TWF0aC5taW4oaCx0LnNhbXBsZXMpOjB9bGV0IHo9ITEsRD0hMTt0aGlzLmFsbG9jYXRlVGV4dHVyZVVuaXQ9ZnVuY3Rpb24gQigpe2NvbnN0IHQ9TTtyZXR1cm4gdD49bCYmY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFRleHR1cmVzOiBUcnlpbmcgdG8gdXNlICIrdCsiIHRleHR1cmUgdW5pdHMgd2hpbGUgdGhpcyBHUFUgc3VwcG9ydHMgb25seSAiK2wpLE0rPTEsdH0sdGhpcy5yZXNldFRleHR1cmVVbml0cz1mdW5jdGlvbiBIKCl7TT0wfSx0aGlzLnNldFRleHR1cmUyRD1FLHRoaXMuc2V0VGV4dHVyZTJEQXJyYXk9ZnVuY3Rpb24gRih0LGUpe2NvbnN0IHI9aS5nZXQodCk7dC52ZXJzaW9uPjAmJnIuX192ZXJzaW9uIT09dC52ZXJzaW9uP1Aocix0LGUpOihuLmFjdGl2ZVRleHR1cmUoMzM5ODQrZSksbi5iaW5kVGV4dHVyZSgzNTg2NixyLl9fd2ViZ2xUZXh0dXJlKSl9LHRoaXMuc2V0VGV4dHVyZTNEPWZ1bmN0aW9uIFYodCxlKXtjb25zdCByPWkuZ2V0KHQpO3QudmVyc2lvbj4wJiZyLl9fdmVyc2lvbiE9PXQudmVyc2lvbj9QKHIsdCxlKToobi5hY3RpdmVUZXh0dXJlKDMzOTg0K2UpLG4uYmluZFRleHR1cmUoMzI4Nzksci5fX3dlYmdsVGV4dHVyZSkpfSx0aGlzLnNldFRleHR1cmVDdWJlPVQsdGhpcy5zZXR1cFJlbmRlclRhcmdldD1mdW5jdGlvbiBVKGUpe2NvbnN0IGw9ZS50ZXh0dXJlLGM9aS5nZXQoZSksdT1pLmdldChsKTtlLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLFMpLCEwIT09ZS5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzJiYodS5fX3dlYmdsVGV4dHVyZT10LmNyZWF0ZVRleHR1cmUoKSx1Ll9fdmVyc2lvbj1sLnZlcnNpb24sYS5tZW1vcnkudGV4dHVyZXMrKyk7Y29uc3QgaD0hMD09PWUuaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQsZD0hMD09PWUuaXNXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cyxwPSEwPT09ZS5pc1dlYkdMTXVsdGlzYW1wbGVSZW5kZXJUYXJnZXQsZj1sLmlzRGF0YVRleHR1cmUzRHx8bC5pc0RhdGFUZXh0dXJlMkRBcnJheSxtPV8oZSl8fHM7aWYoIXN8fGwuZm9ybWF0IT09dzJ0fHxsLnR5cGUhPT12MnQmJmwudHlwZSE9PWIydHx8KGwuZm9ybWF0PVMydCxjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFJlbmRlcmluZyB0byB0ZXh0dXJlcyB3aXRoIFJHQiBmb3JtYXQgaXMgbm90IHN1cHBvcnRlZC4gVXNpbmcgUkdCQSBmb3JtYXQgaW5zdGVhZC4iKSksaCl7Yy5fX3dlYmdsRnJhbWVidWZmZXI9W107Zm9yKGxldCBlPTA7ZTw2O2UrKyljLl9fd2ViZ2xGcmFtZWJ1ZmZlcltlXT10LmNyZWF0ZUZyYW1lYnVmZmVyKCl9ZWxzZSBpZihjLl9fd2ViZ2xGcmFtZWJ1ZmZlcj10LmNyZWF0ZUZyYW1lYnVmZmVyKCksZClpZihyLmRyYXdCdWZmZXJzKXtjb25zdCBuPWUudGV4dHVyZTtmb3IobGV0IGU9MCxyPW4ubGVuZ3RoO2U8cjtlKyspe2NvbnN0IHI9aS5nZXQobltlXSk7dm9pZCAwPT09ci5fX3dlYmdsVGV4dHVyZSYmKHIuX193ZWJnbFRleHR1cmU9dC5jcmVhdGVUZXh0dXJlKCksYS5tZW1vcnkudGV4dHVyZXMrKyl9fWVsc2UgY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cyBjYW4gb25seSBiZSB1c2VkIHdpdGggV2ViR0wyIG9yIFdFQkdMX2RyYXdfYnVmZmVycyBleHRlbnNpb24uIik7ZWxzZSBpZihwKWlmKHMpe2MuX193ZWJnbE11bHRpc2FtcGxlZEZyYW1lYnVmZmVyPXQuY3JlYXRlRnJhbWVidWZmZXIoKSxjLl9fd2ViZ2xDb2xvclJlbmRlcmJ1ZmZlcj10LmNyZWF0ZVJlbmRlcmJ1ZmZlcigpLHQuYmluZFJlbmRlcmJ1ZmZlcigzNjE2MSxjLl9fd2ViZ2xDb2xvclJlbmRlcmJ1ZmZlcik7Y29uc3QgaT1vLmNvbnZlcnQobC5mb3JtYXQpLHI9by5jb252ZXJ0KGwudHlwZSksYT1iKGwuaW50ZXJuYWxGb3JtYXQsaSxyKSxzPU8oZSk7dC5yZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoMzYxNjEscyxhLGUud2lkdGgsZS5oZWlnaHQpLG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLGMuX193ZWJnbE11bHRpc2FtcGxlZEZyYW1lYnVmZmVyKSx0LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKDM2MTYwLDM2MDY0LDM2MTYxLGMuX193ZWJnbENvbG9yUmVuZGVyYnVmZmVyKSx0LmJpbmRSZW5kZXJidWZmZXIoMzYxNjEsbnVsbCksZS5kZXB0aEJ1ZmZlciYmKGMuX193ZWJnbERlcHRoUmVuZGVyYnVmZmVyPXQuY3JlYXRlUmVuZGVyYnVmZmVyKCksSShjLl9fd2ViZ2xEZXB0aFJlbmRlcmJ1ZmZlcixlLCEwKSksbi5iaW5kRnJhbWVidWZmZXIoMzYxNjAsbnVsbCl9ZWxzZSBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFdlYkdMTXVsdGlzYW1wbGVSZW5kZXJUYXJnZXQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIFdlYkdMMi4iKTtpZihoKXtuLmJpbmRUZXh0dXJlKDM0MDY3LHUuX193ZWJnbFRleHR1cmUpLGsoMzQwNjcsbCxtKTtmb3IobGV0IHQ9MDt0PDY7dCsrKU4oYy5fX3dlYmdsRnJhbWVidWZmZXJbdF0sZSxsLDM2MDY0LDM0MDY5K3QpO3kobCxtKSYmdigzNDA2NyxsLGUud2lkdGgsZS5oZWlnaHQpLG4uYmluZFRleHR1cmUoMzQwNjcsbnVsbCl9ZWxzZSBpZihkKXtjb25zdCB0PWUudGV4dHVyZTtmb3IobGV0IHI9MCxvPXQubGVuZ3RoO3I8bztyKyspe2NvbnN0IG89dFtyXSxhPWkuZ2V0KG8pO24uYmluZFRleHR1cmUoMzU1MyxhLl9fd2ViZ2xUZXh0dXJlKSxrKDM1NTMsbyxtKSxOKGMuX193ZWJnbEZyYW1lYnVmZmVyLGUsbywzNjA2NCtyLDM1NTMpLHkobyxtKSYmdigzNTUzLG8sZS53aWR0aCxlLmhlaWdodCl9bi5iaW5kVGV4dHVyZSgzNTUzLG51bGwpfWVsc2V7bGV0IHQ9MzU1MztpZihmKWlmKHMpe3Q9bC5pc0RhdGFUZXh0dXJlM0Q/MzI4Nzk6MzU4NjZ9ZWxzZSBjb25zb2xlLndhcm4oIlRIUkVFLkRhdGFUZXh0dXJlM0QgYW5kIFRIUkVFLkRhdGFUZXh0dXJlMkRBcnJheSBvbmx5IHN1cHBvcnRlZCB3aXRoIFdlYkdMMi4iKTtuLmJpbmRUZXh0dXJlKHQsdS5fX3dlYmdsVGV4dHVyZSksayh0LGwsbSksTihjLl9fd2ViZ2xGcmFtZWJ1ZmZlcixlLGwsMzYwNjQsdCkseShsLG0pJiZ2KHQsbCxlLndpZHRoLGUuaGVpZ2h0LGUuZGVwdGgpLG4uYmluZFRleHR1cmUodCxudWxsKX1lLmRlcHRoQnVmZmVyJiZSKGUpfSx0aGlzLnVwZGF0ZVJlbmRlclRhcmdldE1pcG1hcD1mdW5jdGlvbiBqKHQpe2NvbnN0IGU9Xyh0KXx8cyxyPSEwPT09dC5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzP3QudGV4dHVyZTpbdC50ZXh0dXJlXTtmb3IobGV0IG89MCxhPXIubGVuZ3RoO288YTtvKyspe2NvbnN0IGE9cltvXTtpZih5KGEsZSkpe2NvbnN0IGU9dC5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldD8zNDA2NzozNTUzLHI9aS5nZXQoYSkuX193ZWJnbFRleHR1cmU7bi5iaW5kVGV4dHVyZShlLHIpLHYoZSxhLHQud2lkdGgsdC5oZWlnaHQpLG4uYmluZFRleHR1cmUoZSxudWxsKX19fSx0aGlzLnVwZGF0ZU11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0PWZ1bmN0aW9uIEcoZSl7aWYoZS5pc1dlYkdMTXVsdGlzYW1wbGVSZW5kZXJUYXJnZXQpaWYocyl7Y29uc3Qgcj1lLndpZHRoLG89ZS5oZWlnaHQ7bGV0IGE9MTYzODQ7ZS5kZXB0aEJ1ZmZlciYmKGF8PTI1NiksZS5zdGVuY2lsQnVmZmVyJiYoYXw9MTAyNCk7Y29uc3Qgcz1pLmdldChlKTtuLmJpbmRGcmFtZWJ1ZmZlcigzNjAwOCxzLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlciksbi5iaW5kRnJhbWVidWZmZXIoMzYwMDkscy5fX3dlYmdsRnJhbWVidWZmZXIpLHQuYmxpdEZyYW1lYnVmZmVyKDAsMCxyLG8sMCwwLHIsbyxhLDk3MjgpLG4uYmluZEZyYW1lYnVmZmVyKDM2MDA4LG51bGwpLG4uYmluZEZyYW1lYnVmZmVyKDM2MDA5LHMuX193ZWJnbE11bHRpc2FtcGxlZEZyYW1lYnVmZmVyKX1lbHNlIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogV2ViR0xNdWx0aXNhbXBsZVJlbmRlclRhcmdldCBjYW4gb25seSBiZSB1c2VkIHdpdGggV2ViR0wyLiIpfSx0aGlzLnNhZmVTZXRUZXh0dXJlMkQ9ZnVuY3Rpb24gVyh0LGUpe3QmJnQuaXNXZWJHTFJlbmRlclRhcmdldCYmKCExPT09eiYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xUZXh0dXJlcy5zYWZlU2V0VGV4dHVyZTJEOiBkb24ndCB1c2UgcmVuZGVyIHRhcmdldHMgYXMgdGV4dHVyZXMuIFVzZSB0aGVpciAudGV4dHVyZSBwcm9wZXJ0eSBpbnN0ZWFkLiIpLHo9ITApLHQ9dC50ZXh0dXJlKSxFKHQsZSl9LHRoaXMuc2FmZVNldFRleHR1cmVDdWJlPWZ1bmN0aW9uIHEodCxlKXt0JiZ0LmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0JiYoITE9PT1EJiYoY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFRleHR1cmVzLnNhZmVTZXRUZXh0dXJlQ3ViZTogZG9uJ3QgdXNlIGN1YmUgcmVuZGVyIHRhcmdldHMgYXMgdGV4dHVyZXMuIFVzZSB0aGVpciAudGV4dHVyZSBwcm9wZXJ0eSBpbnN0ZWFkLiIpLEQ9ITApLHQ9dC50ZXh0dXJlKSxUKHQsZSl9fWZ1bmN0aW9uIEo4dCh0LGUsbil7Y29uc3QgaT1uLmlzV2ViR0wyO3JldHVybntjb252ZXJ0OmZ1bmN0aW9uIHIodCl7bGV0IG47aWYodD09PWcydClyZXR1cm4gNTEyMTtpZigxMDE3PT09dClyZXR1cm4gMzI4MTk7aWYoMTAxOD09PXQpcmV0dXJuIDMyODIwO2lmKDEwMTk9PT10KXJldHVybiAzMzYzNTtpZigxMDEwPT09dClyZXR1cm4gNTEyMDtpZigxMDExPT09dClyZXR1cm4gNTEyMjtpZih0PT09XzJ0KXJldHVybiA1MTIzO2lmKDEwMTM9PT10KXJldHVybiA1MTI0O2lmKHQ9PT15MnQpcmV0dXJuIDUxMjU7aWYodD09PXYydClyZXR1cm4gNTEyNjtpZih0PT09YjJ0KXJldHVybiBpPzUxMzE6KG49ZS5nZXQoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSxudWxsIT09bj9uLkhBTEZfRkxPQVRfT0VTOm51bGwpO2lmKDEwMjE9PT10KXJldHVybiA2NDA2O2lmKHQ9PT13MnQpcmV0dXJuIDY0MDc7aWYodD09PVMydClyZXR1cm4gNjQwODtpZigxMDI0PT09dClyZXR1cm4gNjQwOTtpZigxMDI1PT09dClyZXR1cm4gNjQxMDtpZih0PT09TTJ0KXJldHVybiA2NDAyO2lmKHQ9PT1FMnQpcmV0dXJuIDM0MDQxO2lmKDEwMjg9PT10KXJldHVybiA2NDAzO2lmKDEwMjk9PT10KXJldHVybiAzNjI0NDtpZigxMDMwPT09dClyZXR1cm4gMzMzMTk7aWYoMTAzMT09PXQpcmV0dXJuIDMzMzIwO2lmKDEwMzI9PT10KXJldHVybiAzNjI0ODtpZigxMDMzPT09dClyZXR1cm4gMzYyNDk7aWYodD09PVQydHx8dD09PUMydHx8dD09PUEydHx8dD09PWsydCl7aWYobj1lLmdldCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKSxudWxsPT09bilyZXR1cm4gbnVsbDtpZih0PT09VDJ0KXJldHVybiBuLkNPTVBSRVNTRURfUkdCX1MzVENfRFhUMV9FWFQ7aWYodD09PUMydClyZXR1cm4gbi5DT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQxX0VYVDtpZih0PT09QTJ0KXJldHVybiBuLkNPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDNfRVhUO2lmKHQ9PT1rMnQpcmV0dXJuIG4uQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUNV9FWFR9aWYodD09PUwydHx8dD09PVAydHx8dD09PU4ydHx8dD09PUkydCl7aWYobj1lLmdldCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIiksbnVsbD09PW4pcmV0dXJuIG51bGw7aWYodD09PUwydClyZXR1cm4gbi5DT01QUkVTU0VEX1JHQl9QVlJUQ180QlBQVjFfSU1HO2lmKHQ9PT1QMnQpcmV0dXJuIG4uQ09NUFJFU1NFRF9SR0JfUFZSVENfMkJQUFYxX0lNRztpZih0PT09TjJ0KXJldHVybiBuLkNPTVBSRVNTRURfUkdCQV9QVlJUQ180QlBQVjFfSU1HO2lmKHQ9PT1JMnQpcmV0dXJuIG4uQ09NUFJFU1NFRF9SR0JBX1BWUlRDXzJCUFBWMV9JTUd9aWYoMzYxOTY9PT10KXJldHVybiBuPWUuZ2V0KCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfZXRjMSIpLG51bGwhPT1uP24uQ09NUFJFU1NFRF9SR0JfRVRDMV9XRUJHTDpudWxsO2lmKCh0PT09UjJ0fHx0PT09TzJ0KSYmKG49ZS5nZXQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9ldGMiKSxudWxsIT09bikpe2lmKHQ9PT1SMnQpcmV0dXJuIG4uQ09NUFJFU1NFRF9SR0I4X0VUQzI7aWYodD09PU8ydClyZXR1cm4gbi5DT01QUkVTU0VEX1JHQkE4X0VUQzJfRUFDfXJldHVybiAzNzgwOD09PXR8fDM3ODA5PT09dHx8Mzc4MTA9PT10fHwzNzgxMT09PXR8fDM3ODEyPT09dHx8Mzc4MTM9PT10fHwzNzgxND09PXR8fDM3ODE1PT09dHx8Mzc4MTY9PT10fHwzNzgxNz09PXR8fDM3ODE4PT09dHx8Mzc4MTk9PT10fHwzNzgyMD09PXR8fDM3ODIxPT09dHx8Mzc4NDA9PT10fHwzNzg0MT09PXR8fDM3ODQyPT09dHx8Mzc4NDM9PT10fHwzNzg0ND09PXR8fDM3ODQ1PT09dHx8Mzc4NDY9PT10fHwzNzg0Nz09PXR8fDM3ODQ4PT09dHx8Mzc4NDk9PT10fHwzNzg1MD09PXR8fDM3ODUxPT09dHx8Mzc4NTI9PT10fHwzNzg1Mz09PXQ/KG49ZS5nZXQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hc3RjIiksbnVsbCE9PW4/dDpudWxsKTozNjQ5Mj09PXQ/KG49ZS5nZXQoIkVYVF90ZXh0dXJlX2NvbXByZXNzaW9uX2JwdGMiKSxudWxsIT09bj90Om51bGwpOnQ9PT14MnQ/aT8zNDA0Mjoobj1lLmdldCgiV0VCR0xfZGVwdGhfdGV4dHVyZSIpLG51bGwhPT1uP24uVU5TSUdORURfSU5UXzI0XzhfV0VCR0w6bnVsbCk6dm9pZCAwfX19Y2xhc3MgUTh0IGV4dGVuZHMgcjZ0e2NvbnN0cnVjdG9yKHQ9W10pe3N1cGVyKCksdGhpcy5jYW1lcmFzPXR9fVE4dC5wcm90b3R5cGUuaXNBcnJheUNhbWVyYT0hMDtjbGFzcyB0N3QgZXh0ZW5kcyBWM3R7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iR3JvdXAifX10N3QucHJvdG90eXBlLmlzR3JvdXA9ITA7Y29uc3QgZTd0PXt0eXBlOiJtb3ZlIn07Y2xhc3Mgbjd0e2NvbnN0cnVjdG9yKCl7dGhpcy5fdGFyZ2V0UmF5PW51bGwsdGhpcy5fZ3JpcD1udWxsLHRoaXMuX2hhbmQ9bnVsbH1nZXRIYW5kU3BhY2UoKXtyZXR1cm4gbnVsbD09PXRoaXMuX2hhbmQmJih0aGlzLl9oYW5kPW5ldyB0N3QsdGhpcy5faGFuZC5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuX2hhbmQudmlzaWJsZT0hMSx0aGlzLl9oYW5kLmpvaW50cz17fSx0aGlzLl9oYW5kLmlucHV0U3RhdGU9e3BpbmNoaW5nOiExfSksdGhpcy5faGFuZH1nZXRUYXJnZXRSYXlTcGFjZSgpe3JldHVybiBudWxsPT09dGhpcy5fdGFyZ2V0UmF5JiYodGhpcy5fdGFyZ2V0UmF5PW5ldyB0N3QsdGhpcy5fdGFyZ2V0UmF5Lm1hdHJpeEF1dG9VcGRhdGU9ITEsdGhpcy5fdGFyZ2V0UmF5LnZpc2libGU9ITEsdGhpcy5fdGFyZ2V0UmF5Lmhhc0xpbmVhclZlbG9jaXR5PSExLHRoaXMuX3RhcmdldFJheS5saW5lYXJWZWxvY2l0eT1uZXcgSDV0LHRoaXMuX3RhcmdldFJheS5oYXNBbmd1bGFyVmVsb2NpdHk9ITEsdGhpcy5fdGFyZ2V0UmF5LmFuZ3VsYXJWZWxvY2l0eT1uZXcgSDV0KSx0aGlzLl90YXJnZXRSYXl9Z2V0R3JpcFNwYWNlKCl7cmV0dXJuIG51bGw9PT10aGlzLl9ncmlwJiYodGhpcy5fZ3JpcD1uZXcgdDd0LHRoaXMuX2dyaXAubWF0cml4QXV0b1VwZGF0ZT0hMSx0aGlzLl9ncmlwLnZpc2libGU9ITEsdGhpcy5fZ3JpcC5oYXNMaW5lYXJWZWxvY2l0eT0hMSx0aGlzLl9ncmlwLmxpbmVhclZlbG9jaXR5PW5ldyBINXQsdGhpcy5fZ3JpcC5oYXNBbmd1bGFyVmVsb2NpdHk9ITEsdGhpcy5fZ3JpcC5hbmd1bGFyVmVsb2NpdHk9bmV3IEg1dCksdGhpcy5fZ3JpcH1kaXNwYXRjaEV2ZW50KHQpe3JldHVybiBudWxsIT09dGhpcy5fdGFyZ2V0UmF5JiZ0aGlzLl90YXJnZXRSYXkuZGlzcGF0Y2hFdmVudCh0KSxudWxsIT09dGhpcy5fZ3JpcCYmdGhpcy5fZ3JpcC5kaXNwYXRjaEV2ZW50KHQpLG51bGwhPT10aGlzLl9oYW5kJiZ0aGlzLl9oYW5kLmRpc3BhdGNoRXZlbnQodCksdGhpc31kaXNjb25uZWN0KHQpe3JldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImRpc2Nvbm5lY3RlZCIsZGF0YTp0fSksbnVsbCE9PXRoaXMuX3RhcmdldFJheSYmKHRoaXMuX3RhcmdldFJheS52aXNpYmxlPSExKSxudWxsIT09dGhpcy5fZ3JpcCYmKHRoaXMuX2dyaXAudmlzaWJsZT0hMSksbnVsbCE9PXRoaXMuX2hhbmQmJih0aGlzLl9oYW5kLnZpc2libGU9ITEpLHRoaXN9dXBkYXRlKHQsZSxuKXtsZXQgaT1udWxsLHI9bnVsbCxvPW51bGw7Y29uc3QgYT10aGlzLl90YXJnZXRSYXkscz10aGlzLl9ncmlwLGw9dGhpcy5faGFuZDtpZih0JiYidmlzaWJsZS1ibHVycmVkIiE9PWUuc2Vzc2lvbi52aXNpYmlsaXR5U3RhdGUpaWYobnVsbCE9PWEmJihpPWUuZ2V0UG9zZSh0LnRhcmdldFJheVNwYWNlLG4pLG51bGwhPT1pJiYoYS5tYXRyaXguZnJvbUFycmF5KGkudHJhbnNmb3JtLm1hdHJpeCksYS5tYXRyaXguZGVjb21wb3NlKGEucG9zaXRpb24sYS5yb3RhdGlvbixhLnNjYWxlKSxpLmxpbmVhclZlbG9jaXR5PyhhLmhhc0xpbmVhclZlbG9jaXR5PSEwLGEubGluZWFyVmVsb2NpdHkuY29weShpLmxpbmVhclZlbG9jaXR5KSk6YS5oYXNMaW5lYXJWZWxvY2l0eT0hMSxpLmFuZ3VsYXJWZWxvY2l0eT8oYS5oYXNBbmd1bGFyVmVsb2NpdHk9ITAsYS5hbmd1bGFyVmVsb2NpdHkuY29weShpLmFuZ3VsYXJWZWxvY2l0eSkpOmEuaGFzQW5ndWxhclZlbG9jaXR5PSExLHRoaXMuZGlzcGF0Y2hFdmVudChlN3QpKSksbCYmdC5oYW5kKXtvPSEwO2Zvcihjb25zdCBpIG9mIHQuaGFuZC52YWx1ZXMoKSl7Y29uc3QgdD1lLmdldEpvaW50UG9zZShpLG4pO2lmKHZvaWQgMD09PWwuam9pbnRzW2kuam9pbnROYW1lXSl7Y29uc3QgdD1uZXcgdDd0O3QubWF0cml4QXV0b1VwZGF0ZT0hMSx0LnZpc2libGU9ITEsbC5qb2ludHNbaS5qb2ludE5hbWVdPXQsbC5hZGQodCl9Y29uc3Qgcj1sLmpvaW50c1tpLmpvaW50TmFtZV07bnVsbCE9PXQmJihyLm1hdHJpeC5mcm9tQXJyYXkodC50cmFuc2Zvcm0ubWF0cml4KSxyLm1hdHJpeC5kZWNvbXBvc2Uoci5wb3NpdGlvbixyLnJvdGF0aW9uLHIuc2NhbGUpLHIuam9pbnRSYWRpdXM9dC5yYWRpdXMpLHIudmlzaWJsZT1udWxsIT09dH1jb25zdCBpPWwuam9pbnRzWyJpbmRleC1maW5nZXItdGlwIl0ucG9zaXRpb24uZGlzdGFuY2VUbyhsLmpvaW50c1sidGh1bWItdGlwIl0ucG9zaXRpb24pLHI9LjAyLGE9LjAwNTtsLmlucHV0U3RhdGUucGluY2hpbmcmJmk+cithPyhsLmlucHV0U3RhdGUucGluY2hpbmc9ITEsdGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJwaW5jaGVuZCIsaGFuZGVkbmVzczp0LmhhbmRlZG5lc3MsdGFyZ2V0OnRoaXN9KSk6IWwuaW5wdXRTdGF0ZS5waW5jaGluZyYmaTw9ci1hJiYobC5pbnB1dFN0YXRlLnBpbmNoaW5nPSEwLHRoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToicGluY2hzdGFydCIsaGFuZGVkbmVzczp0LmhhbmRlZG5lc3MsdGFyZ2V0OnRoaXN9KSl9ZWxzZSBudWxsIT09cyYmdC5ncmlwU3BhY2UmJihyPWUuZ2V0UG9zZSh0LmdyaXBTcGFjZSxuKSxudWxsIT09ciYmKHMubWF0cml4LmZyb21BcnJheShyLnRyYW5zZm9ybS5tYXRyaXgpLHMubWF0cml4LmRlY29tcG9zZShzLnBvc2l0aW9uLHMucm90YXRpb24scy5zY2FsZSksci5saW5lYXJWZWxvY2l0eT8ocy5oYXNMaW5lYXJWZWxvY2l0eT0hMCxzLmxpbmVhclZlbG9jaXR5LmNvcHkoci5saW5lYXJWZWxvY2l0eSkpOnMuaGFzTGluZWFyVmVsb2NpdHk9ITEsci5hbmd1bGFyVmVsb2NpdHk/KHMuaGFzQW5ndWxhclZlbG9jaXR5PSEwLHMuYW5ndWxhclZlbG9jaXR5LmNvcHkoci5hbmd1bGFyVmVsb2NpdHkpKTpzLmhhc0FuZ3VsYXJWZWxvY2l0eT0hMSkpO3JldHVybiBudWxsIT09YSYmKGEudmlzaWJsZT1udWxsIT09aSksbnVsbCE9PXMmJihzLnZpc2libGU9bnVsbCE9PXIpLG51bGwhPT1sJiYobC52aXNpYmxlPW51bGwhPT1vKSx0aGlzfX1jbGFzcyBpN3QgZXh0ZW5kcyBlNXR7Y29uc3RydWN0b3IodCxlKXtzdXBlcigpO2NvbnN0IG49dGhpcyxpPXQuc3RhdGU7bGV0IHI9bnVsbCxvPTEsYT1udWxsLHM9ImxvY2FsLWZsb29yIixsPW51bGwsYz1udWxsLHU9bnVsbCxoPW51bGwsZD1udWxsO2NvbnN0IHA9W10sZj1uZXcgTWFwLG09bmV3IHI2dDttLmxheWVycy5lbmFibGUoMSksbS52aWV3cG9ydD1uZXcgUjV0O2NvbnN0IGc9bmV3IHI2dDtnLmxheWVycy5lbmFibGUoMiksZy52aWV3cG9ydD1uZXcgUjV0O2NvbnN0IF89W20sZ10seT1uZXcgUTh0O3kubGF5ZXJzLmVuYWJsZSgxKSx5LmxheWVycy5lbmFibGUoMik7bGV0IHY9bnVsbCxiPW51bGw7ZnVuY3Rpb24geCh0KXtjb25zdCBlPWYuZ2V0KHQuaW5wdXRTb3VyY2UpO2UmJmUuZGlzcGF0Y2hFdmVudCh7dHlwZTp0LnR5cGUsZGF0YTp0LmlucHV0U291cmNlfSl9ZnVuY3Rpb24gdygpe2YuZm9yRWFjaCgoZnVuY3Rpb24odCxlKXt0LmRpc2Nvbm5lY3QoZSl9KSksZi5jbGVhcigpLHY9bnVsbCxiPW51bGwsaS5iaW5kWFJGcmFtZWJ1ZmZlcihudWxsKSx0LnNldFJlbmRlclRhcmdldCh0LmdldFJlbmRlclRhcmdldCgpKSxBLnN0b3AoKSxuLmlzUHJlc2VudGluZz0hMSxuLmRpc3BhdGNoRXZlbnQoe3R5cGU6InNlc3Npb25lbmQifSl9ZnVuY3Rpb24gUyh0KXtjb25zdCBlPXIuaW5wdXRTb3VyY2VzO2ZvcihsZXQgdD0wO3Q8cC5sZW5ndGg7dCsrKWYuc2V0KGVbdF0scFt0XSk7Zm9yKGxldCBlPTA7ZTx0LnJlbW92ZWQubGVuZ3RoO2UrKyl7Y29uc3Qgbj10LnJlbW92ZWRbZV0saT1mLmdldChuKTtpJiYoaS5kaXNwYXRjaEV2ZW50KHt0eXBlOiJkaXNjb25uZWN0ZWQiLGRhdGE6bn0pLGYuZGVsZXRlKG4pKX1mb3IobGV0IGU9MDtlPHQuYWRkZWQubGVuZ3RoO2UrKyl7Y29uc3Qgbj10LmFkZGVkW2VdLGk9Zi5nZXQobik7aSYmaS5kaXNwYXRjaEV2ZW50KHt0eXBlOiJjb25uZWN0ZWQiLGRhdGE6bn0pfX10aGlzLmNhbWVyYUF1dG9VcGRhdGU9ITAsdGhpcy5lbmFibGVkPSExLHRoaXMuaXNQcmVzZW50aW5nPSExLHRoaXMuZ2V0Q29udHJvbGxlcj1mdW5jdGlvbih0KXtsZXQgZT1wW3RdO3JldHVybiB2b2lkIDA9PT1lJiYoZT1uZXcgbjd0LHBbdF09ZSksZS5nZXRUYXJnZXRSYXlTcGFjZSgpfSx0aGlzLmdldENvbnRyb2xsZXJHcmlwPWZ1bmN0aW9uKHQpe2xldCBlPXBbdF07cmV0dXJuIHZvaWQgMD09PWUmJihlPW5ldyBuN3QscFt0XT1lKSxlLmdldEdyaXBTcGFjZSgpfSx0aGlzLmdldEhhbmQ9ZnVuY3Rpb24odCl7bGV0IGU9cFt0XTtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9bmV3IG43dCxwW3RdPWUpLGUuZ2V0SGFuZFNwYWNlKCl9LHRoaXMuc2V0RnJhbWVidWZmZXJTY2FsZUZhY3Rvcj1mdW5jdGlvbih0KXtvPXQsITA9PT1uLmlzUHJlc2VudGluZyYmY29uc29sZS53YXJuKCJUSFJFRS5XZWJYUk1hbmFnZXI6IENhbm5vdCBjaGFuZ2UgZnJhbWVidWZmZXIgc2NhbGUgd2hpbGUgcHJlc2VudGluZy4iKX0sdGhpcy5zZXRSZWZlcmVuY2VTcGFjZVR5cGU9ZnVuY3Rpb24odCl7cz10LCEwPT09bi5pc1ByZXNlbnRpbmcmJmNvbnNvbGUud2FybigiVEhSRUUuV2ViWFJNYW5hZ2VyOiBDYW5ub3QgY2hhbmdlIHJlZmVyZW5jZSBzcGFjZSB0eXBlIHdoaWxlIHByZXNlbnRpbmcuIil9LHRoaXMuZ2V0UmVmZXJlbmNlU3BhY2U9ZnVuY3Rpb24oKXtyZXR1cm4gYX0sdGhpcy5nZXRTZXNzaW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHJ9LHRoaXMuc2V0U2Vzc2lvbj1hc3luYyBmdW5jdGlvbih0KXtpZihyPXQsbnVsbCE9PXIpe3IuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0Iix4KSxyLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdHN0YXJ0Iix4KSxyLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVuZCIseCksci5hZGRFdmVudExpc3RlbmVyKCJzcXVlZXplIix4KSxyLmFkZEV2ZW50TGlzdGVuZXIoInNxdWVlemVzdGFydCIseCksci5hZGRFdmVudExpc3RlbmVyKCJzcXVlZXplZW5kIix4KSxyLmFkZEV2ZW50TGlzdGVuZXIoImVuZCIsdyksci5hZGRFdmVudExpc3RlbmVyKCJpbnB1dHNvdXJjZXNjaGFuZ2UiLFMpO2NvbnN0IHQ9ZS5nZXRDb250ZXh0QXR0cmlidXRlcygpO2lmKCEwIT09dC54ckNvbXBhdGlibGUmJmF3YWl0IGUubWFrZVhSQ29tcGF0aWJsZSgpLHZvaWQgMD09PXIucmVuZGVyU3RhdGUubGF5ZXJzKXtkPW5ldyBYUldlYkdMTGF5ZXIocixlLHthbnRpYWxpYXM6dC5hbnRpYWxpYXMsYWxwaGE6dC5hbHBoYSxkZXB0aDp0LmRlcHRoLHN0ZW5jaWw6dC5zdGVuY2lsLGZyYW1lYnVmZmVyU2NhbGVGYWN0b3I6b30pLHIudXBkYXRlUmVuZGVyU3RhdGUoe2Jhc2VMYXllcjpkfSl9ZWxzZXtsZXQgbj0wO2lmKHQuYW50aWFsaWFzKXtkPW5ldyBYUldlYkdMTGF5ZXIocixlLHthbnRpYWxpYXM6ITAsYWxwaGE6dC5hbHBoYSxkZXB0aDp0LmRlcHRoLHN0ZW5jaWw6dC5zdGVuY2lsLGZyYW1lYnVmZmVyU2NhbGVGYWN0b3I6b30pLHIudXBkYXRlUmVuZGVyU3RhdGUoe2xheWVyczpbZF19KX1lbHNle3QuZGVwdGgmJihuPXQuc3RlbmNpbD8zNDA0MTo2NDAyKTtjb25zdCBpPXtjb2xvckZvcm1hdDp0LmFscGhhPzY0MDg6NjQwNyxkZXB0aEZvcm1hdDpuLHNjYWxlRmFjdG9yOm99O2M9bmV3IFhSV2ViR0xCaW5kaW5nKHIsZSksaD1jLmNyZWF0ZVByb2plY3Rpb25MYXllcihpKSx1PWUuY3JlYXRlRnJhbWVidWZmZXIoKSxyLnVwZGF0ZVJlbmRlclN0YXRlKHtsYXllcnM6W2hdfSl9fWE9YXdhaXQgci5yZXF1ZXN0UmVmZXJlbmNlU3BhY2UocyksQS5zZXRDb250ZXh0KHIpLEEuc3RhcnQoKSxuLmlzUHJlc2VudGluZz0hMCxuLmRpc3BhdGNoRXZlbnQoe3R5cGU6InNlc3Npb25zdGFydCJ9KX19O2NvbnN0IE09bmV3IEg1dCxFPW5ldyBINXQ7ZnVuY3Rpb24gVCh0LGUpe251bGw9PT1lP3QubWF0cml4V29ybGQuY29weSh0Lm1hdHJpeCk6dC5tYXRyaXhXb3JsZC5tdWx0aXBseU1hdHJpY2VzKGUubWF0cml4V29ybGQsdC5tYXRyaXgpLHQubWF0cml4V29ybGRJbnZlcnNlLmNvcHkodC5tYXRyaXhXb3JsZCkuaW52ZXJ0KCl9dGhpcy51cGRhdGVDYW1lcmE9ZnVuY3Rpb24odCl7aWYobnVsbD09PXIpcmV0dXJuO3kubmVhcj1nLm5lYXI9bS5uZWFyPXQubmVhcix5LmZhcj1nLmZhcj1tLmZhcj10LmZhcix2PT09eS5uZWFyJiZiPT09eS5mYXJ8fChyLnVwZGF0ZVJlbmRlclN0YXRlKHtkZXB0aE5lYXI6eS5uZWFyLGRlcHRoRmFyOnkuZmFyfSksdj15Lm5lYXIsYj15LmZhcik7Y29uc3QgZT10LnBhcmVudCxuPXkuY2FtZXJhcztUKHksZSk7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0KyspVChuW3RdLGUpO3kubWF0cml4V29ybGQuZGVjb21wb3NlKHkucG9zaXRpb24seS5xdWF0ZXJuaW9uLHkuc2NhbGUpLHQucG9zaXRpb24uY29weSh5LnBvc2l0aW9uKSx0LnF1YXRlcm5pb24uY29weSh5LnF1YXRlcm5pb24pLHQuc2NhbGUuY29weSh5LnNjYWxlKSx0Lm1hdHJpeC5jb3B5KHkubWF0cml4KSx0Lm1hdHJpeFdvcmxkLmNvcHkoeS5tYXRyaXhXb3JsZCk7Y29uc3QgaT10LmNoaWxkcmVuO2ZvcihsZXQgdD0wLGU9aS5sZW5ndGg7dDxlO3QrKylpW3RdLnVwZGF0ZU1hdHJpeFdvcmxkKCEwKTsyPT09bi5sZW5ndGg/KGZ1bmN0aW9uIG8odCxlLG4pe00uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKGUubWF0cml4V29ybGQpLEUuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKG4ubWF0cml4V29ybGQpO2NvbnN0IGk9TS5kaXN0YW5jZVRvKEUpLHI9ZS5wcm9qZWN0aW9uTWF0cml4LmVsZW1lbnRzLG89bi5wcm9qZWN0aW9uTWF0cml4LmVsZW1lbnRzLGE9clsxNF0vKHJbMTBdLTEpLHM9clsxNF0vKHJbMTBdKzEpLGw9KHJbOV0rMSkvcls1XSxjPShyWzldLTEpL3JbNV0sdT0ocls4XS0xKS9yWzBdLGg9KG9bOF0rMSkvb1swXSxkPWEqdSxwPWEqaCxmPWkvKC11K2gpLG09ZiotdTtlLm1hdHJpeFdvcmxkLmRlY29tcG9zZSh0LnBvc2l0aW9uLHQucXVhdGVybmlvbix0LnNjYWxlKSx0LnRyYW5zbGF0ZVgobSksdC50cmFuc2xhdGVaKGYpLHQubWF0cml4V29ybGQuY29tcG9zZSh0LnBvc2l0aW9uLHQucXVhdGVybmlvbix0LnNjYWxlKSx0Lm1hdHJpeFdvcmxkSW52ZXJzZS5jb3B5KHQubWF0cml4V29ybGQpLmludmVydCgpO2NvbnN0IGc9YStmLF89cytmO3QucHJvamVjdGlvbk1hdHJpeC5tYWtlUGVyc3BlY3RpdmUoZC1tLHArKGktbSksbCpzL18qZyxjKnMvXypnLGcsXyl9KSh5LG0sZyk6eS5wcm9qZWN0aW9uTWF0cml4LmNvcHkobS5wcm9qZWN0aW9uTWF0cml4KX0sdGhpcy5nZXRDYW1lcmE9ZnVuY3Rpb24oKXtyZXR1cm4geX0sdGhpcy5nZXRGb3ZlYXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9PWg/aC5maXhlZEZvdmVhdGlvbjpudWxsIT09ZD9kLmZpeGVkRm92ZWF0aW9uOnZvaWQgMH0sdGhpcy5zZXRGb3ZlYXRpb249ZnVuY3Rpb24odCl7bnVsbCE9PWgmJihoLmZpeGVkRm92ZWF0aW9uPXQpLG51bGwhPT1kJiZ2b2lkIDAhPT1kLmZpeGVkRm92ZWF0aW9uJiYoZC5maXhlZEZvdmVhdGlvbj10KX07bGV0IEM9bnVsbDtjb25zdCBBPW5ldyBnNnQ7QS5zZXRBbmltYXRpb25Mb29wKChmdW5jdGlvbiBrKHQsbil7aWYobD1uLmdldFZpZXdlclBvc2UoYSksbnVsbCE9PWwpe2NvbnN0IHQ9bC52aWV3cztudWxsIT09ZCYmaS5iaW5kWFJGcmFtZWJ1ZmZlcihkLmZyYW1lYnVmZmVyKTtsZXQgbj0hMTt0Lmxlbmd0aCE9PXkuY2FtZXJhcy5sZW5ndGgmJih5LmNhbWVyYXMubGVuZ3RoPTAsbj0hMCk7Zm9yKGxldCByPTA7cjx0Lmxlbmd0aDtyKyspe2NvbnN0IG89dFtyXTtsZXQgYT1udWxsO2lmKG51bGwhPT1kKWE9ZC5nZXRWaWV3cG9ydChvKTtlbHNle2NvbnN0IHQ9Yy5nZXRWaWV3U3ViSW1hZ2UoaCxvKTtpLmJpbmRYUkZyYW1lYnVmZmVyKHUpLHZvaWQgMCE9PXQuZGVwdGhTdGVuY2lsVGV4dHVyZSYmZS5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCwzNjA5NiwzNTUzLHQuZGVwdGhTdGVuY2lsVGV4dHVyZSwwKSxlLmZyYW1lYnVmZmVyVGV4dHVyZTJEKDM2MTYwLDM2MDY0LDM1NTMsdC5jb2xvclRleHR1cmUsMCksYT10LnZpZXdwb3J0fWNvbnN0IHM9X1tyXTtzLm1hdHJpeC5mcm9tQXJyYXkoby50cmFuc2Zvcm0ubWF0cml4KSxzLnByb2plY3Rpb25NYXRyaXguZnJvbUFycmF5KG8ucHJvamVjdGlvbk1hdHJpeCkscy52aWV3cG9ydC5zZXQoYS54LGEueSxhLndpZHRoLGEuaGVpZ2h0KSwwPT09ciYmeS5tYXRyaXguY29weShzLm1hdHJpeCksITA9PT1uJiZ5LmNhbWVyYXMucHVzaChzKX19Y29uc3Qgbz1yLmlucHV0U291cmNlcztmb3IobGV0IHQ9MDt0PHAubGVuZ3RoO3QrKyl7cFt0XS51cGRhdGUob1t0XSxuLGEpfUMmJkModCxuKX0pKSx0aGlzLnNldEFuaW1hdGlvbkxvb3A9ZnVuY3Rpb24odCl7Qz10fSx0aGlzLmRpc3Bvc2U9ZnVuY3Rpb24oKXt9fX1mdW5jdGlvbiByN3QodCl7ZnVuY3Rpb24gZShlLG4pe2Uub3BhY2l0eS52YWx1ZT1uLm9wYWNpdHksbi5jb2xvciYmZS5kaWZmdXNlLnZhbHVlLmNvcHkobi5jb2xvciksbi5lbWlzc2l2ZSYmZS5lbWlzc2l2ZS52YWx1ZS5jb3B5KG4uZW1pc3NpdmUpLm11bHRpcGx5U2NhbGFyKG4uZW1pc3NpdmVJbnRlbnNpdHkpLG4ubWFwJiYoZS5tYXAudmFsdWU9bi5tYXApLG4uYWxwaGFNYXAmJihlLmFscGhhTWFwLnZhbHVlPW4uYWxwaGFNYXApLG4uc3BlY3VsYXJNYXAmJihlLnNwZWN1bGFyTWFwLnZhbHVlPW4uc3BlY3VsYXJNYXApO2NvbnN0IGk9dC5nZXQobikuZW52TWFwO2lmKGkpe2UuZW52TWFwLnZhbHVlPWksZS5mbGlwRW52TWFwLnZhbHVlPWkuaXNDdWJlVGV4dHVyZSYmITE9PT1pLmlzUmVuZGVyVGFyZ2V0VGV4dHVyZT8tMToxLGUucmVmbGVjdGl2aXR5LnZhbHVlPW4ucmVmbGVjdGl2aXR5LGUucmVmcmFjdGlvblJhdGlvLnZhbHVlPW4ucmVmcmFjdGlvblJhdGlvO2NvbnN0IHI9dC5nZXQoaSkuX19tYXhNaXBMZXZlbDt2b2lkIDAhPT1yJiYoZS5tYXhNaXBMZXZlbC52YWx1ZT1yKX1sZXQgcixvO24ubGlnaHRNYXAmJihlLmxpZ2h0TWFwLnZhbHVlPW4ubGlnaHRNYXAsZS5saWdodE1hcEludGVuc2l0eS52YWx1ZT1uLmxpZ2h0TWFwSW50ZW5zaXR5KSxuLmFvTWFwJiYoZS5hb01hcC52YWx1ZT1uLmFvTWFwLGUuYW9NYXBJbnRlbnNpdHkudmFsdWU9bi5hb01hcEludGVuc2l0eSksbi5tYXA/cj1uLm1hcDpuLnNwZWN1bGFyTWFwP3I9bi5zcGVjdWxhck1hcDpuLmRpc3BsYWNlbWVudE1hcD9yPW4uZGlzcGxhY2VtZW50TWFwOm4ubm9ybWFsTWFwP3I9bi5ub3JtYWxNYXA6bi5idW1wTWFwP3I9bi5idW1wTWFwOm4ucm91Z2huZXNzTWFwP3I9bi5yb3VnaG5lc3NNYXA6bi5tZXRhbG5lc3NNYXA/cj1uLm1ldGFsbmVzc01hcDpuLmFscGhhTWFwP3I9bi5hbHBoYU1hcDpuLmVtaXNzaXZlTWFwP3I9bi5lbWlzc2l2ZU1hcDpuLmNsZWFyY29hdE1hcD9yPW4uY2xlYXJjb2F0TWFwOm4uY2xlYXJjb2F0Tm9ybWFsTWFwP3I9bi5jbGVhcmNvYXROb3JtYWxNYXA6bi5jbGVhcmNvYXRSb3VnaG5lc3NNYXA/cj1uLmNsZWFyY29hdFJvdWdobmVzc01hcDpuLnNwZWN1bGFySW50ZW5zaXR5TWFwP3I9bi5zcGVjdWxhckludGVuc2l0eU1hcDpuLnNwZWN1bGFyVGludE1hcCYmKHI9bi5zcGVjdWxhclRpbnRNYXApLHZvaWQgMCE9PXImJihyLmlzV2ViR0xSZW5kZXJUYXJnZXQmJihyPXIudGV4dHVyZSksITA9PT1yLm1hdHJpeEF1dG9VcGRhdGUmJnIudXBkYXRlTWF0cml4KCksZS51dlRyYW5zZm9ybS52YWx1ZS5jb3B5KHIubWF0cml4KSksbi5hb01hcD9vPW4uYW9NYXA6bi5saWdodE1hcCYmKG89bi5saWdodE1hcCksdm9pZCAwIT09byYmKG8uaXNXZWJHTFJlbmRlclRhcmdldCYmKG89by50ZXh0dXJlKSwhMD09PW8ubWF0cml4QXV0b1VwZGF0ZSYmby51cGRhdGVNYXRyaXgoKSxlLnV2MlRyYW5zZm9ybS52YWx1ZS5jb3B5KG8ubWF0cml4KSl9ZnVuY3Rpb24gbihlLG4pe2Uucm91Z2huZXNzLnZhbHVlPW4ucm91Z2huZXNzLGUubWV0YWxuZXNzLnZhbHVlPW4ubWV0YWxuZXNzLG4ucm91Z2huZXNzTWFwJiYoZS5yb3VnaG5lc3NNYXAudmFsdWU9bi5yb3VnaG5lc3NNYXApLG4ubWV0YWxuZXNzTWFwJiYoZS5tZXRhbG5lc3NNYXAudmFsdWU9bi5tZXRhbG5lc3NNYXApLG4uZW1pc3NpdmVNYXAmJihlLmVtaXNzaXZlTWFwLnZhbHVlPW4uZW1pc3NpdmVNYXApLG4uYnVtcE1hcCYmKGUuYnVtcE1hcC52YWx1ZT1uLmJ1bXBNYXAsZS5idW1wU2NhbGUudmFsdWU9bi5idW1wU2NhbGUsMT09PW4uc2lkZSYmKGUuYnVtcFNjYWxlLnZhbHVlKj0tMSkpLG4ubm9ybWFsTWFwJiYoZS5ub3JtYWxNYXAudmFsdWU9bi5ub3JtYWxNYXAsZS5ub3JtYWxTY2FsZS52YWx1ZS5jb3B5KG4ubm9ybWFsU2NhbGUpLDE9PT1uLnNpZGUmJmUubm9ybWFsU2NhbGUudmFsdWUubmVnYXRlKCkpLG4uZGlzcGxhY2VtZW50TWFwJiYoZS5kaXNwbGFjZW1lbnRNYXAudmFsdWU9bi5kaXNwbGFjZW1lbnRNYXAsZS5kaXNwbGFjZW1lbnRTY2FsZS52YWx1ZT1uLmRpc3BsYWNlbWVudFNjYWxlLGUuZGlzcGxhY2VtZW50Qmlhcy52YWx1ZT1uLmRpc3BsYWNlbWVudEJpYXMpO3QuZ2V0KG4pLmVudk1hcCYmKGUuZW52TWFwSW50ZW5zaXR5LnZhbHVlPW4uZW52TWFwSW50ZW5zaXR5KX1yZXR1cm57cmVmcmVzaEZvZ1VuaWZvcm1zOmZ1bmN0aW9uIGkodCxlKXt0LmZvZ0NvbG9yLnZhbHVlLmNvcHkoZS5jb2xvciksZS5pc0ZvZz8odC5mb2dOZWFyLnZhbHVlPWUubmVhcix0LmZvZ0Zhci52YWx1ZT1lLmZhcik6ZS5pc0ZvZ0V4cDImJih0LmZvZ0RlbnNpdHkudmFsdWU9ZS5kZW5zaXR5KX0scmVmcmVzaE1hdGVyaWFsVW5pZm9ybXM6ZnVuY3Rpb24gcih0LGksbyxhLHMpe2kuaXNNZXNoQmFzaWNNYXRlcmlhbD9lKHQsaSk6aS5pc01lc2hMYW1iZXJ0TWF0ZXJpYWw/KGUodCxpKSwoZnVuY3Rpb24gbCh0LGUpe2UuZW1pc3NpdmVNYXAmJih0LmVtaXNzaXZlTWFwLnZhbHVlPWUuZW1pc3NpdmVNYXApfSkodCxpKSk6aS5pc01lc2hUb29uTWF0ZXJpYWw/KGUodCxpKSwoZnVuY3Rpb24gYyh0LGUpe2UuZ3JhZGllbnRNYXAmJih0LmdyYWRpZW50TWFwLnZhbHVlPWUuZ3JhZGllbnRNYXApO2UuZW1pc3NpdmVNYXAmJih0LmVtaXNzaXZlTWFwLnZhbHVlPWUuZW1pc3NpdmVNYXApO2UuYnVtcE1hcCYmKHQuYnVtcE1hcC52YWx1ZT1lLmJ1bXBNYXAsdC5idW1wU2NhbGUudmFsdWU9ZS5idW1wU2NhbGUsMT09PWUuc2lkZSYmKHQuYnVtcFNjYWxlLnZhbHVlKj0tMSkpO2Uubm9ybWFsTWFwJiYodC5ub3JtYWxNYXAudmFsdWU9ZS5ub3JtYWxNYXAsdC5ub3JtYWxTY2FsZS52YWx1ZS5jb3B5KGUubm9ybWFsU2NhbGUpLDE9PT1lLnNpZGUmJnQubm9ybWFsU2NhbGUudmFsdWUubmVnYXRlKCkpO2UuZGlzcGxhY2VtZW50TWFwJiYodC5kaXNwbGFjZW1lbnRNYXAudmFsdWU9ZS5kaXNwbGFjZW1lbnRNYXAsdC5kaXNwbGFjZW1lbnRTY2FsZS52YWx1ZT1lLmRpc3BsYWNlbWVudFNjYWxlLHQuZGlzcGxhY2VtZW50Qmlhcy52YWx1ZT1lLmRpc3BsYWNlbWVudEJpYXMpfSkodCxpKSk6aS5pc01lc2hQaG9uZ01hdGVyaWFsPyhlKHQsaSksKGZ1bmN0aW9uIHUodCxlKXt0LnNwZWN1bGFyLnZhbHVlLmNvcHkoZS5zcGVjdWxhciksdC5zaGluaW5lc3MudmFsdWU9TWF0aC5tYXgoZS5zaGluaW5lc3MsMWUtNCksZS5lbWlzc2l2ZU1hcCYmKHQuZW1pc3NpdmVNYXAudmFsdWU9ZS5lbWlzc2l2ZU1hcCk7ZS5idW1wTWFwJiYodC5idW1wTWFwLnZhbHVlPWUuYnVtcE1hcCx0LmJ1bXBTY2FsZS52YWx1ZT1lLmJ1bXBTY2FsZSwxPT09ZS5zaWRlJiYodC5idW1wU2NhbGUudmFsdWUqPS0xKSk7ZS5ub3JtYWxNYXAmJih0Lm5vcm1hbE1hcC52YWx1ZT1lLm5vcm1hbE1hcCx0Lm5vcm1hbFNjYWxlLnZhbHVlLmNvcHkoZS5ub3JtYWxTY2FsZSksMT09PWUuc2lkZSYmdC5ub3JtYWxTY2FsZS52YWx1ZS5uZWdhdGUoKSk7ZS5kaXNwbGFjZW1lbnRNYXAmJih0LmRpc3BsYWNlbWVudE1hcC52YWx1ZT1lLmRpc3BsYWNlbWVudE1hcCx0LmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPWUuZGlzcGxhY2VtZW50U2NhbGUsdC5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPWUuZGlzcGxhY2VtZW50Qmlhcyl9KSh0LGkpKTppLmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWw/KGUodCxpKSxpLmlzTWVzaFBoeXNpY2FsTWF0ZXJpYWw/KGZ1bmN0aW9uIGgodCxlLGkpe24odCxlKSx0LnJlZmxlY3Rpdml0eS52YWx1ZT1lLnJlZmxlY3Rpdml0eSx0LmNsZWFyY29hdC52YWx1ZT1lLmNsZWFyY29hdCx0LmNsZWFyY29hdFJvdWdobmVzcy52YWx1ZT1lLmNsZWFyY29hdFJvdWdobmVzcyxlLnNoZWVuJiZ0LnNoZWVuLnZhbHVlLmNvcHkoZS5zaGVlbik7ZS5jbGVhcmNvYXRNYXAmJih0LmNsZWFyY29hdE1hcC52YWx1ZT1lLmNsZWFyY29hdE1hcCk7ZS5jbGVhcmNvYXRSb3VnaG5lc3NNYXAmJih0LmNsZWFyY29hdFJvdWdobmVzc01hcC52YWx1ZT1lLmNsZWFyY29hdFJvdWdobmVzc01hcCk7ZS5jbGVhcmNvYXROb3JtYWxNYXAmJih0LmNsZWFyY29hdE5vcm1hbFNjYWxlLnZhbHVlLmNvcHkoZS5jbGVhcmNvYXROb3JtYWxTY2FsZSksdC5jbGVhcmNvYXROb3JtYWxNYXAudmFsdWU9ZS5jbGVhcmNvYXROb3JtYWxNYXAsMT09PWUuc2lkZSYmdC5jbGVhcmNvYXROb3JtYWxTY2FsZS52YWx1ZS5uZWdhdGUoKSk7dC50cmFuc21pc3Npb24udmFsdWU9ZS50cmFuc21pc3Npb24sZS50cmFuc21pc3Npb25NYXAmJih0LnRyYW5zbWlzc2lvbk1hcC52YWx1ZT1lLnRyYW5zbWlzc2lvbk1hcCk7ZS50cmFuc21pc3Npb24+MCYmKHQudHJhbnNtaXNzaW9uU2FtcGxlck1hcC52YWx1ZT1pLnRleHR1cmUsdC50cmFuc21pc3Npb25TYW1wbGVyU2l6ZS52YWx1ZS5zZXQoaS53aWR0aCxpLmhlaWdodCkpO3QudGhpY2tuZXNzLnZhbHVlPWUudGhpY2tuZXNzLGUudGhpY2tuZXNzTWFwJiYodC50aGlja25lc3NNYXAudmFsdWU9ZS50aGlja25lc3NNYXApO3QuYXR0ZW51YXRpb25EaXN0YW5jZS52YWx1ZT1lLmF0dGVudWF0aW9uRGlzdGFuY2UsdC5hdHRlbnVhdGlvblRpbnQudmFsdWUuY29weShlLmF0dGVudWF0aW9uVGludCksdC5zcGVjdWxhckludGVuc2l0eS52YWx1ZT1lLnNwZWN1bGFySW50ZW5zaXR5LHQuc3BlY3VsYXJUaW50LnZhbHVlLmNvcHkoZS5zcGVjdWxhclRpbnQpLGUuc3BlY3VsYXJJbnRlbnNpdHlNYXAmJih0LnNwZWN1bGFySW50ZW5zaXR5TWFwLnZhbHVlPWUuc3BlY3VsYXJJbnRlbnNpdHlNYXApO2Uuc3BlY3VsYXJUaW50TWFwJiYodC5zcGVjdWxhclRpbnRNYXAudmFsdWU9ZS5zcGVjdWxhclRpbnRNYXApfSkodCxpLHMpOm4odCxpKSk6aS5pc01lc2hNYXRjYXBNYXRlcmlhbD8oZSh0LGkpLChmdW5jdGlvbiBkKHQsZSl7ZS5tYXRjYXAmJih0Lm1hdGNhcC52YWx1ZT1lLm1hdGNhcCk7ZS5idW1wTWFwJiYodC5idW1wTWFwLnZhbHVlPWUuYnVtcE1hcCx0LmJ1bXBTY2FsZS52YWx1ZT1lLmJ1bXBTY2FsZSwxPT09ZS5zaWRlJiYodC5idW1wU2NhbGUudmFsdWUqPS0xKSk7ZS5ub3JtYWxNYXAmJih0Lm5vcm1hbE1hcC52YWx1ZT1lLm5vcm1hbE1hcCx0Lm5vcm1hbFNjYWxlLnZhbHVlLmNvcHkoZS5ub3JtYWxTY2FsZSksMT09PWUuc2lkZSYmdC5ub3JtYWxTY2FsZS52YWx1ZS5uZWdhdGUoKSk7ZS5kaXNwbGFjZW1lbnRNYXAmJih0LmRpc3BsYWNlbWVudE1hcC52YWx1ZT1lLmRpc3BsYWNlbWVudE1hcCx0LmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPWUuZGlzcGxhY2VtZW50U2NhbGUsdC5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPWUuZGlzcGxhY2VtZW50Qmlhcyl9KSh0LGkpKTppLmlzTWVzaERlcHRoTWF0ZXJpYWw/KGUodCxpKSwoZnVuY3Rpb24gcCh0LGUpe2UuZGlzcGxhY2VtZW50TWFwJiYodC5kaXNwbGFjZW1lbnRNYXAudmFsdWU9ZS5kaXNwbGFjZW1lbnRNYXAsdC5kaXNwbGFjZW1lbnRTY2FsZS52YWx1ZT1lLmRpc3BsYWNlbWVudFNjYWxlLHQuZGlzcGxhY2VtZW50Qmlhcy52YWx1ZT1lLmRpc3BsYWNlbWVudEJpYXMpfSkodCxpKSk6aS5pc01lc2hEaXN0YW5jZU1hdGVyaWFsPyhlKHQsaSksKGZ1bmN0aW9uIGYodCxlKXtlLmRpc3BsYWNlbWVudE1hcCYmKHQuZGlzcGxhY2VtZW50TWFwLnZhbHVlPWUuZGlzcGxhY2VtZW50TWFwLHQuZGlzcGxhY2VtZW50U2NhbGUudmFsdWU9ZS5kaXNwbGFjZW1lbnRTY2FsZSx0LmRpc3BsYWNlbWVudEJpYXMudmFsdWU9ZS5kaXNwbGFjZW1lbnRCaWFzKTt0LnJlZmVyZW5jZVBvc2l0aW9uLnZhbHVlLmNvcHkoZS5yZWZlcmVuY2VQb3NpdGlvbiksdC5uZWFyRGlzdGFuY2UudmFsdWU9ZS5uZWFyRGlzdGFuY2UsdC5mYXJEaXN0YW5jZS52YWx1ZT1lLmZhckRpc3RhbmNlfSkodCxpKSk6aS5pc01lc2hOb3JtYWxNYXRlcmlhbD8oZSh0LGkpLChmdW5jdGlvbiBtKHQsZSl7ZS5idW1wTWFwJiYodC5idW1wTWFwLnZhbHVlPWUuYnVtcE1hcCx0LmJ1bXBTY2FsZS52YWx1ZT1lLmJ1bXBTY2FsZSwxPT09ZS5zaWRlJiYodC5idW1wU2NhbGUudmFsdWUqPS0xKSk7ZS5ub3JtYWxNYXAmJih0Lm5vcm1hbE1hcC52YWx1ZT1lLm5vcm1hbE1hcCx0Lm5vcm1hbFNjYWxlLnZhbHVlLmNvcHkoZS5ub3JtYWxTY2FsZSksMT09PWUuc2lkZSYmdC5ub3JtYWxTY2FsZS52YWx1ZS5uZWdhdGUoKSk7ZS5kaXNwbGFjZW1lbnRNYXAmJih0LmRpc3BsYWNlbWVudE1hcC52YWx1ZT1lLmRpc3BsYWNlbWVudE1hcCx0LmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPWUuZGlzcGxhY2VtZW50U2NhbGUsdC5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPWUuZGlzcGxhY2VtZW50Qmlhcyl9KSh0LGkpKTppLmlzTGluZUJhc2ljTWF0ZXJpYWw/KCEoZnVuY3Rpb24gZyh0LGUpe3QuZGlmZnVzZS52YWx1ZS5jb3B5KGUuY29sb3IpLHQub3BhY2l0eS52YWx1ZT1lLm9wYWNpdHl9KSh0LGkpLGkuaXNMaW5lRGFzaGVkTWF0ZXJpYWwmJihmdW5jdGlvbiBfKHQsZSl7dC5kYXNoU2l6ZS52YWx1ZT1lLmRhc2hTaXplLHQudG90YWxTaXplLnZhbHVlPWUuZGFzaFNpemUrZS5nYXBTaXplLHQuc2NhbGUudmFsdWU9ZS5zY2FsZX0pKHQsaSkpOmkuaXNQb2ludHNNYXRlcmlhbD8oZnVuY3Rpb24geSh0LGUsbixpKXt0LmRpZmZ1c2UudmFsdWUuY29weShlLmNvbG9yKSx0Lm9wYWNpdHkudmFsdWU9ZS5vcGFjaXR5LHQuc2l6ZS52YWx1ZT1lLnNpemUqbix0LnNjYWxlLnZhbHVlPS41KmksZS5tYXAmJih0Lm1hcC52YWx1ZT1lLm1hcCk7ZS5hbHBoYU1hcCYmKHQuYWxwaGFNYXAudmFsdWU9ZS5hbHBoYU1hcCk7bGV0IHI7ZS5tYXA/cj1lLm1hcDplLmFscGhhTWFwJiYocj1lLmFscGhhTWFwKTt2b2lkIDAhPT1yJiYoITA9PT1yLm1hdHJpeEF1dG9VcGRhdGUmJnIudXBkYXRlTWF0cml4KCksdC51dlRyYW5zZm9ybS52YWx1ZS5jb3B5KHIubWF0cml4KSl9KSh0LGksbyxhKTppLmlzU3ByaXRlTWF0ZXJpYWw/KGZ1bmN0aW9uIHYodCxlKXt0LmRpZmZ1c2UudmFsdWUuY29weShlLmNvbG9yKSx0Lm9wYWNpdHkudmFsdWU9ZS5vcGFjaXR5LHQucm90YXRpb24udmFsdWU9ZS5yb3RhdGlvbixlLm1hcCYmKHQubWFwLnZhbHVlPWUubWFwKTtlLmFscGhhTWFwJiYodC5hbHBoYU1hcC52YWx1ZT1lLmFscGhhTWFwKTtsZXQgbjtlLm1hcD9uPWUubWFwOmUuYWxwaGFNYXAmJihuPWUuYWxwaGFNYXApO3ZvaWQgMCE9PW4mJighMD09PW4ubWF0cml4QXV0b1VwZGF0ZSYmbi51cGRhdGVNYXRyaXgoKSx0LnV2VHJhbnNmb3JtLnZhbHVlLmNvcHkobi5tYXRyaXgpKX0pKHQsaSk6aS5pc1NoYWRvd01hdGVyaWFsPyh0LmNvbG9yLnZhbHVlLmNvcHkoaS5jb2xvciksdC5vcGFjaXR5LnZhbHVlPWkub3BhY2l0eSk6aS5pc1NoYWRlck1hdGVyaWFsJiYoaS51bmlmb3Jtc05lZWRVcGRhdGU9ITEpfX19ZnVuY3Rpb24gbzd0KHQ9e30pe2NvbnN0IGU9dm9pZCAwIT09dC5jYW52YXM/dC5jYW52YXM6KGZ1bmN0aW9uIG4oKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImNhbnZhcyIpO3JldHVybiB0LnN0eWxlLmRpc3BsYXk9ImJsb2NrIix0fSkoKSxpPXZvaWQgMCE9PXQuY29udGV4dD90LmNvbnRleHQ6bnVsbCxyPXZvaWQgMCE9PXQuYWxwaGEmJnQuYWxwaGEsbz12b2lkIDA9PT10LmRlcHRofHx0LmRlcHRoLGE9dm9pZCAwPT09dC5zdGVuY2lsfHx0LnN0ZW5jaWwscz12b2lkIDAhPT10LmFudGlhbGlhcyYmdC5hbnRpYWxpYXMsbD12b2lkIDA9PT10LnByZW11bHRpcGxpZWRBbHBoYXx8dC5wcmVtdWx0aXBsaWVkQWxwaGEsYz12b2lkIDAhPT10LnByZXNlcnZlRHJhd2luZ0J1ZmZlciYmdC5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIsdT12b2lkIDAhPT10LnBvd2VyUHJlZmVyZW5jZT90LnBvd2VyUHJlZmVyZW5jZToiZGVmYXVsdCIsaD12b2lkIDAhPT10LmZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQmJnQuZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdDtsZXQgZD1udWxsLHA9bnVsbDtjb25zdCBmPVtdLG09W107dGhpcy5kb21FbGVtZW50PWUsdGhpcy5kZWJ1Zz17Y2hlY2tTaGFkZXJFcnJvcnM6ITB9LHRoaXMuYXV0b0NsZWFyPSEwLHRoaXMuYXV0b0NsZWFyQ29sb3I9ITAsdGhpcy5hdXRvQ2xlYXJEZXB0aD0hMCx0aGlzLmF1dG9DbGVhclN0ZW5jaWw9ITAsdGhpcy5zb3J0T2JqZWN0cz0hMCx0aGlzLmNsaXBwaW5nUGxhbmVzPVtdLHRoaXMubG9jYWxDbGlwcGluZ0VuYWJsZWQ9ITEsdGhpcy5nYW1tYUZhY3Rvcj0yLHRoaXMub3V0cHV0RW5jb2Rpbmc9RzJ0LHRoaXMucGh5c2ljYWxseUNvcnJlY3RMaWdodHM9ITEsdGhpcy50b25lTWFwcGluZz0wLHRoaXMudG9uZU1hcHBpbmdFeHBvc3VyZT0xO2NvbnN0IGc9dGhpcztsZXQgXz0hMSx5PTAsdj0wLGI9bnVsbCx4PS0xLHc9bnVsbDtjb25zdCBTPW5ldyBSNXQsTT1uZXcgUjV0O2xldCBFPW51bGwsVD1lLndpZHRoLEM9ZS5oZWlnaHQsQT0xLGs9bnVsbCxMPW51bGw7Y29uc3QgUD1uZXcgUjV0KDAsMCxULEMpLE49bmV3IFI1dCgwLDAsVCxDKTtsZXQgST0hMTtjb25zdCBSPVtdLE89bmV3IG02dDtsZXQgej0hMSxEPSExLEI9bnVsbDtjb25zdCBIPW5ldyBnM3QsRj1uZXcgSDV0LFY9e2JhY2tncm91bmQ6bnVsbCxmb2c6bnVsbCxlbnZpcm9ubWVudDpudWxsLG92ZXJyaWRlTWF0ZXJpYWw6bnVsbCxpc1NjZW5lOiEwfTtmdW5jdGlvbiBVKCl7cmV0dXJuIG51bGw9PT1iP0E6MX1sZXQgaixHLFcscSxZLFgsJCxLLFosSixRLHR0LGV0LG50LGl0LHJ0LG90LGF0LHN0LGx0LGN0LHV0LGh0LGR0PWk7ZnVuY3Rpb24gcHQodCxuKXtmb3IobGV0IGk9MDtpPHQubGVuZ3RoO2krKyl7Y29uc3Qgcj1lLmdldENvbnRleHQodFtpXSxuKTtpZihudWxsIT09cilyZXR1cm4gcn1yZXR1cm4gbnVsbH10cnl7Y29uc3QgdD17YWxwaGE6cixkZXB0aDpvLHN0ZW5jaWw6YSxhbnRpYWxpYXM6cyxwcmVtdWx0aXBsaWVkQWxwaGE6bCxwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6Yyxwb3dlclByZWZlcmVuY2U6dSxmYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0Omh9O2lmKGUuYWRkRXZlbnRMaXN0ZW5lcigid2ViZ2xjb250ZXh0bG9zdCIsZ3QsITEpLGUuYWRkRXZlbnRMaXN0ZW5lcigid2ViZ2xjb250ZXh0cmVzdG9yZWQiLF90LCExKSxudWxsPT09ZHQpe2NvbnN0IGU9WyJ3ZWJnbDIiLCJ3ZWJnbCIsImV4cGVyaW1lbnRhbC13ZWJnbCJdO2lmKCEwPT09Zy5pc1dlYkdMMVJlbmRlcmVyJiZlLnNoaWZ0KCksZHQ9cHQoZSx0KSxudWxsPT09ZHQpdGhyb3cgcHQoZSk/bmV3IEVycm9yKCJFcnJvciBjcmVhdGluZyBXZWJHTCBjb250ZXh0IHdpdGggeW91ciBzZWxlY3RlZCBhdHRyaWJ1dGVzLiIpOm5ldyBFcnJvcigiRXJyb3IgY3JlYXRpbmcgV2ViR0wgY29udGV4dC4iKX12b2lkIDA9PT1kdC5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQmJihkdC5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQ9ZnVuY3Rpb24oKXtyZXR1cm57cmFuZ2VNaW46MSxyYW5nZU1heDoxLHByZWNpc2lvbjoxfX0pfWNhdGNoKHQpe3Rocm93IGNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMUmVuZGVyZXI6ICIrdC5tZXNzYWdlKSx0fWZ1bmN0aW9uIGZ0KCl7aj1uZXcgaTl0KGR0KSxHPW5ldyBFNnQoZHQsaix0KSxqLmluaXQoRyksdXQ9bmV3IEo4dChkdCxqLEcpLFc9bmV3IEs4dChkdCxqLEcpLFJbMF09MTAyOSxxPW5ldyBhOXQoZHQpLFk9bmV3IHo4dCxYPW5ldyBaOHQoZHQsaixXLFksRyx1dCxxKSwkPW5ldyBDNnQoZyksSz1uZXcgbjl0KGcpLFo9bmV3IF82dChkdCxHKSxodD1uZXcgUzZ0KGR0LGosWixHKSxKPW5ldyByOXQoZHQsWixxLGh0KSxRPW5ldyB1OXQoZHQsSixaLHEpLHN0PW5ldyBjOXQoZHQpLHJ0PW5ldyBUNnQoWSksdHQ9bmV3IE84dChnLCQsSyxqLEcsaHQscnQpLGV0PW5ldyByN3QoWSksbnQ9bmV3IEY4dChZKSxpdD1uZXcgcTh0KGosRyksYXQ9bmV3IHc2dChnLCQsVyxRLGwpLG90PW5ldyAkOHQoZyxRLEcpLGx0PW5ldyBNNnQoZHQsaixxLEcpLGN0PW5ldyBvOXQoZHQsaixxLEcpLHEucHJvZ3JhbXM9dHQucHJvZ3JhbXMsZy5jYXBhYmlsaXRpZXM9RyxnLmV4dGVuc2lvbnM9aixnLnByb3BlcnRpZXM9WSxnLnJlbmRlckxpc3RzPW50LGcuc2hhZG93TWFwPW90LGcuc3RhdGU9VyxnLmluZm89cX1mdCgpO2NvbnN0IG10PW5ldyBpN3QoZyxkdCk7ZnVuY3Rpb24gZ3QodCl7dC5wcmV2ZW50RGVmYXVsdCgpLGNvbnNvbGUubG9nKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBDb250ZXh0IExvc3QuIiksXz0hMH1mdW5jdGlvbiBfdCgpe2NvbnNvbGUubG9nKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBDb250ZXh0IFJlc3RvcmVkLiIpLF89ITE7Y29uc3QgdD1xLmF1dG9SZXNldCxlPW90LmVuYWJsZWQsbj1vdC5hdXRvVXBkYXRlLGk9b3QubmVlZHNVcGRhdGUscj1vdC50eXBlO2Z0KCkscS5hdXRvUmVzZXQ9dCxvdC5lbmFibGVkPWUsb3QuYXV0b1VwZGF0ZT1uLG90Lm5lZWRzVXBkYXRlPWksb3QudHlwZT1yfWZ1bmN0aW9uIHl0KHQpe2NvbnN0IGU9dC50YXJnZXQ7ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJkaXNwb3NlIix5dCksKGZ1bmN0aW9uIG4odCl7KGZ1bmN0aW9uIGUodCl7Y29uc3QgZT1ZLmdldCh0KS5wcm9ncmFtczt2b2lkIDAhPT1lJiZlLmZvckVhY2goKGZ1bmN0aW9uKHQpe3R0LnJlbGVhc2VQcm9ncmFtKHQpfSkpfSkodCksWS5yZW1vdmUodCl9KShlKX10aGlzLnhyPW10LHRoaXMuZ2V0Q29udGV4dD1mdW5jdGlvbigpe3JldHVybiBkdH0sdGhpcy5nZXRDb250ZXh0QXR0cmlidXRlcz1mdW5jdGlvbigpe3JldHVybiBkdC5nZXRDb250ZXh0QXR0cmlidXRlcygpfSx0aGlzLmZvcmNlQ29udGV4dExvc3M9ZnVuY3Rpb24oKXtjb25zdCB0PWouZ2V0KCJXRUJHTF9sb3NlX2NvbnRleHQiKTt0JiZ0Lmxvc2VDb250ZXh0KCl9LHRoaXMuZm9yY2VDb250ZXh0UmVzdG9yZT1mdW5jdGlvbigpe2NvbnN0IHQ9ai5nZXQoIldFQkdMX2xvc2VfY29udGV4dCIpO3QmJnQucmVzdG9yZUNvbnRleHQoKX0sdGhpcy5nZXRQaXhlbFJhdGlvPWZ1bmN0aW9uKCl7cmV0dXJuIEF9LHRoaXMuc2V0UGl4ZWxSYXRpbz1mdW5jdGlvbih0KXt2b2lkIDAhPT10JiYoQT10LHRoaXMuc2V0U2l6ZShULEMsITEpKX0sdGhpcy5nZXRTaXplPWZ1bmN0aW9uKHQpe3JldHVybiB0LnNldChULEMpfSx0aGlzLnNldFNpemU9ZnVuY3Rpb24odCxuLGkpe210LmlzUHJlc2VudGluZz9jb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IENhbid0IGNoYW5nZSBzaXplIHdoaWxlIFZSIGRldmljZSBpcyBwcmVzZW50aW5nLiIpOihUPXQsQz1uLGUud2lkdGg9TWF0aC5mbG9vcih0KkEpLGUuaGVpZ2h0PU1hdGguZmxvb3IobipBKSwhMSE9PWkmJihlLnN0eWxlLndpZHRoPXQrInB4IixlLnN0eWxlLmhlaWdodD1uKyJweCIpLHRoaXMuc2V0Vmlld3BvcnQoMCwwLHQsbikpfSx0aGlzLmdldERyYXdpbmdCdWZmZXJTaXplPWZ1bmN0aW9uKHQpe3JldHVybiB0LnNldChUKkEsQypBKS5mbG9vcigpfSx0aGlzLnNldERyYXdpbmdCdWZmZXJTaXplPWZ1bmN0aW9uKHQsbixpKXtUPXQsQz1uLEE9aSxlLndpZHRoPU1hdGguZmxvb3IodCppKSxlLmhlaWdodD1NYXRoLmZsb29yKG4qaSksdGhpcy5zZXRWaWV3cG9ydCgwLDAsdCxuKX0sdGhpcy5nZXRDdXJyZW50Vmlld3BvcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQuY29weShTKX0sdGhpcy5nZXRWaWV3cG9ydD1mdW5jdGlvbih0KXtyZXR1cm4gdC5jb3B5KFApfSx0aGlzLnNldFZpZXdwb3J0PWZ1bmN0aW9uKHQsZSxuLGkpe3QuaXNWZWN0b3I0P1Auc2V0KHQueCx0LnksdC56LHQudyk6UC5zZXQodCxlLG4saSksVy52aWV3cG9ydChTLmNvcHkoUCkubXVsdGlwbHlTY2FsYXIoQSkuZmxvb3IoKSl9LHRoaXMuZ2V0U2Npc3Nvcj1mdW5jdGlvbih0KXtyZXR1cm4gdC5jb3B5KE4pfSx0aGlzLnNldFNjaXNzb3I9ZnVuY3Rpb24odCxlLG4saSl7dC5pc1ZlY3RvcjQ/Ti5zZXQodC54LHQueSx0LnosdC53KTpOLnNldCh0LGUsbixpKSxXLnNjaXNzb3IoTS5jb3B5KE4pLm11bHRpcGx5U2NhbGFyKEEpLmZsb29yKCkpfSx0aGlzLmdldFNjaXNzb3JUZXN0PWZ1bmN0aW9uKCl7cmV0dXJuIEl9LHRoaXMuc2V0U2Npc3NvclRlc3Q9ZnVuY3Rpb24odCl7Vy5zZXRTY2lzc29yVGVzdChJPXQpfSx0aGlzLnNldE9wYXF1ZVNvcnQ9ZnVuY3Rpb24odCl7az10fSx0aGlzLnNldFRyYW5zcGFyZW50U29ydD1mdW5jdGlvbih0KXtMPXR9LHRoaXMuZ2V0Q2xlYXJDb2xvcj1mdW5jdGlvbih0KXtyZXR1cm4gdC5jb3B5KGF0LmdldENsZWFyQ29sb3IoKSl9LHRoaXMuc2V0Q2xlYXJDb2xvcj1mdW5jdGlvbigpe2F0LnNldENsZWFyQ29sb3IuYXBwbHkoYXQsYXJndW1lbnRzKX0sdGhpcy5nZXRDbGVhckFscGhhPWZ1bmN0aW9uKCl7cmV0dXJuIGF0LmdldENsZWFyQWxwaGEoKX0sdGhpcy5zZXRDbGVhckFscGhhPWZ1bmN0aW9uKCl7YXQuc2V0Q2xlYXJBbHBoYS5hcHBseShhdCxhcmd1bWVudHMpfSx0aGlzLmNsZWFyPWZ1bmN0aW9uKHQsZSxuKXtsZXQgaT0wOyh2b2lkIDA9PT10fHx0KSYmKGl8PTE2Mzg0KSwodm9pZCAwPT09ZXx8ZSkmJihpfD0yNTYpLCh2b2lkIDA9PT1ufHxuKSYmKGl8PTEwMjQpLGR0LmNsZWFyKGkpfSx0aGlzLmNsZWFyQ29sb3I9ZnVuY3Rpb24oKXt0aGlzLmNsZWFyKCEwLCExLCExKX0sdGhpcy5jbGVhckRlcHRoPWZ1bmN0aW9uKCl7dGhpcy5jbGVhcighMSwhMCwhMSl9LHRoaXMuY2xlYXJTdGVuY2lsPWZ1bmN0aW9uKCl7dGhpcy5jbGVhcighMSwhMSwhMCl9LHRoaXMuZGlzcG9zZT1mdW5jdGlvbigpe2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2ViZ2xjb250ZXh0bG9zdCIsZ3QsITEpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2ViZ2xjb250ZXh0cmVzdG9yZWQiLF90LCExKSxudC5kaXNwb3NlKCksaXQuZGlzcG9zZSgpLFkuZGlzcG9zZSgpLCQuZGlzcG9zZSgpLEsuZGlzcG9zZSgpLFEuZGlzcG9zZSgpLGh0LmRpc3Bvc2UoKSxtdC5kaXNwb3NlKCksbXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Vzc2lvbnN0YXJ0IixidCksbXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Vzc2lvbmVuZCIseHQpLEImJihCLmRpc3Bvc2UoKSxCPW51bGwpLHd0LnN0b3AoKX0sdGhpcy5yZW5kZXJCdWZmZXJJbW1lZGlhdGU9ZnVuY3Rpb24odCxlKXtodC5pbml0QXR0cmlidXRlcygpO2NvbnN0IG49WS5nZXQodCk7dC5oYXNQb3NpdGlvbnMmJiFuLnBvc2l0aW9uJiYobi5wb3NpdGlvbj1kdC5jcmVhdGVCdWZmZXIoKSksdC5oYXNOb3JtYWxzJiYhbi5ub3JtYWwmJihuLm5vcm1hbD1kdC5jcmVhdGVCdWZmZXIoKSksdC5oYXNVdnMmJiFuLnV2JiYobi51dj1kdC5jcmVhdGVCdWZmZXIoKSksdC5oYXNDb2xvcnMmJiFuLmNvbG9yJiYobi5jb2xvcj1kdC5jcmVhdGVCdWZmZXIoKSk7Y29uc3QgaT1lLmdldEF0dHJpYnV0ZXMoKTt0Lmhhc1Bvc2l0aW9ucyYmKGR0LmJpbmRCdWZmZXIoMzQ5NjIsbi5wb3NpdGlvbiksZHQuYnVmZmVyRGF0YSgzNDk2Mix0LnBvc2l0aW9uQXJyYXksMzUwNDgpLGh0LmVuYWJsZUF0dHJpYnV0ZShpLnBvc2l0aW9uKSxkdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGkucG9zaXRpb24sMyw1MTI2LCExLDAsMCkpLHQuaGFzTm9ybWFscyYmKGR0LmJpbmRCdWZmZXIoMzQ5NjIsbi5ub3JtYWwpLGR0LmJ1ZmZlckRhdGEoMzQ5NjIsdC5ub3JtYWxBcnJheSwzNTA0OCksaHQuZW5hYmxlQXR0cmlidXRlKGkubm9ybWFsKSxkdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGkubm9ybWFsLDMsNTEyNiwhMSwwLDApKSx0Lmhhc1V2cyYmKGR0LmJpbmRCdWZmZXIoMzQ5NjIsbi51diksZHQuYnVmZmVyRGF0YSgzNDk2Mix0LnV2QXJyYXksMzUwNDgpLGh0LmVuYWJsZUF0dHJpYnV0ZShpLnV2KSxkdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGkudXYsMiw1MTI2LCExLDAsMCkpLHQuaGFzQ29sb3JzJiYoZHQuYmluZEJ1ZmZlcigzNDk2MixuLmNvbG9yKSxkdC5idWZmZXJEYXRhKDM0OTYyLHQuY29sb3JBcnJheSwzNTA0OCksaHQuZW5hYmxlQXR0cmlidXRlKGkuY29sb3IpLGR0LnZlcnRleEF0dHJpYlBvaW50ZXIoaS5jb2xvciwzLDUxMjYsITEsMCwwKSksaHQuZGlzYWJsZVVudXNlZEF0dHJpYnV0ZXMoKSxkdC5kcmF3QXJyYXlzKDQsMCx0LmNvdW50KSx0LmNvdW50PTB9LHRoaXMucmVuZGVyQnVmZmVyRGlyZWN0PWZ1bmN0aW9uKHQsZSxuLGkscixvKXtudWxsPT09ZSYmKGU9Vik7Y29uc3QgYT1yLmlzTWVzaCYmci5tYXRyaXhXb3JsZC5kZXRlcm1pbmFudCgpPDAscz1BdCh0LGUsaSxyKTtXLnNldE1hdGVyaWFsKGksYSk7bGV0IGw9bi5pbmRleDtjb25zdCBjPW4uYXR0cmlidXRlcy5wb3NpdGlvbjtpZihudWxsPT09bCl7aWYodm9pZCAwPT09Y3x8MD09PWMuY291bnQpcmV0dXJufWVsc2UgaWYoMD09PWwuY291bnQpcmV0dXJuO2xldCB1LGg9MTshMD09PWkud2lyZWZyYW1lJiYobD1KLmdldFdpcmVmcmFtZUF0dHJpYnV0ZShuKSxoPTIpLHZvaWQgMD09PW4ubW9ycGhBdHRyaWJ1dGVzLnBvc2l0aW9uJiZ2b2lkIDA9PT1uLm1vcnBoQXR0cmlidXRlcy5ub3JtYWx8fHN0LnVwZGF0ZShyLG4saSxzKSxodC5zZXR1cChyLGkscyxuLGwpO2xldCBkPWx0O251bGwhPT1sJiYodT1aLmdldChsKSxkPWN0LGQuc2V0SW5kZXgodSkpO2NvbnN0IHA9bnVsbCE9PWw/bC5jb3VudDpjLmNvdW50LGY9bi5kcmF3UmFuZ2Uuc3RhcnQqaCxtPW4uZHJhd1JhbmdlLmNvdW50KmgsZz1udWxsIT09bz9vLnN0YXJ0Kmg6MCxfPW51bGwhPT1vP28uY291bnQqaDoxLzAseT1NYXRoLm1heChmLGcpLHY9TWF0aC5taW4ocCxmK20sZytfKS0xLGI9TWF0aC5tYXgoMCx2LXkrMSk7aWYoMCE9PWIpe2lmKHIuaXNNZXNoKSEwPT09aS53aXJlZnJhbWU/KFcuc2V0TGluZVdpZHRoKGkud2lyZWZyYW1lTGluZXdpZHRoKlUoKSksZC5zZXRNb2RlKDEpKTpkLnNldE1vZGUoNCk7ZWxzZSBpZihyLmlzTGluZSl7bGV0IHQ9aS5saW5ld2lkdGg7dm9pZCAwPT09dCYmKHQ9MSksVy5zZXRMaW5lV2lkdGgodCpVKCkpLGQuc2V0TW9kZShyLmlzTGluZVNlZ21lbnRzPzE6ci5pc0xpbmVMb29wPzI6Myl9ZWxzZSByLmlzUG9pbnRzP2Quc2V0TW9kZSgwKTpyLmlzU3ByaXRlJiZkLnNldE1vZGUoNCk7aWYoci5pc0luc3RhbmNlZE1lc2gpZC5yZW5kZXJJbnN0YW5jZXMoeSxiLHIuY291bnQpO2Vsc2UgaWYobi5pc0luc3RhbmNlZEJ1ZmZlckdlb21ldHJ5KXtjb25zdCB0PU1hdGgubWluKG4uaW5zdGFuY2VDb3VudCxuLl9tYXhJbnN0YW5jZUNvdW50KTtkLnJlbmRlckluc3RhbmNlcyh5LGIsdCl9ZWxzZSBkLnJlbmRlcih5LGIpfX0sdGhpcy5jb21waWxlPWZ1bmN0aW9uKHQsZSl7cD1pdC5nZXQodCkscC5pbml0KCksbS5wdXNoKHApLHQudHJhdmVyc2VWaXNpYmxlKChmdW5jdGlvbih0KXt0LmlzTGlnaHQmJnQubGF5ZXJzLnRlc3QoZS5sYXllcnMpJiYocC5wdXNoTGlnaHQodCksdC5jYXN0U2hhZG93JiZwLnB1c2hTaGFkb3codCkpfSkpLHAuc2V0dXBMaWdodHMoKSx0LnRyYXZlcnNlKChmdW5jdGlvbihlKXtjb25zdCBuPWUubWF0ZXJpYWw7aWYobilpZihBcnJheS5pc0FycmF5KG4pKWZvcihsZXQgaT0wO2k8bi5sZW5ndGg7aSsrKXtUdChuW2ldLHQsZSl9ZWxzZSBUdChuLHQsZSl9KSksbS5wb3AoKSxwPW51bGx9O2xldCB2dD1udWxsO2Z1bmN0aW9uIGJ0KCl7d3Quc3RvcCgpfWZ1bmN0aW9uIHh0KCl7d3Quc3RhcnQoKX1jb25zdCB3dD1uZXcgZzZ0O2Z1bmN0aW9uIFN0KHQsZSxuLGkpe2lmKCExPT09dC52aXNpYmxlKXJldHVybjtpZih0LmxheWVycy50ZXN0KGUubGF5ZXJzKSlpZih0LmlzR3JvdXApbj10LnJlbmRlck9yZGVyO2Vsc2UgaWYodC5pc0xPRCkhMD09PXQuYXV0b1VwZGF0ZSYmdC51cGRhdGUoZSk7ZWxzZSBpZih0LmlzTGlnaHQpcC5wdXNoTGlnaHQodCksdC5jYXN0U2hhZG93JiZwLnB1c2hTaGFkb3codCk7ZWxzZSBpZih0LmlzU3ByaXRlKXtpZighdC5mcnVzdHVtQ3VsbGVkfHxPLmludGVyc2VjdHNTcHJpdGUodCkpe2kmJkYuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQubWF0cml4V29ybGQpLmFwcGx5TWF0cml4NChIKTtjb25zdCBlPVEudXBkYXRlKHQpLHI9dC5tYXRlcmlhbDtyLnZpc2libGUmJmQucHVzaCh0LGUscixuLEYueixudWxsKX19ZWxzZSBpZih0LmlzSW1tZWRpYXRlUmVuZGVyT2JqZWN0KWkmJkYuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQubWF0cml4V29ybGQpLmFwcGx5TWF0cml4NChIKSxkLnB1c2godCxudWxsLHQubWF0ZXJpYWwsbixGLnosbnVsbCk7ZWxzZSBpZigodC5pc01lc2h8fHQuaXNMaW5lfHx0LmlzUG9pbnRzKSYmKHQuaXNTa2lubmVkTWVzaCYmdC5za2VsZXRvbi5mcmFtZSE9PXEucmVuZGVyLmZyYW1lJiYodC5za2VsZXRvbi51cGRhdGUoKSx0LnNrZWxldG9uLmZyYW1lPXEucmVuZGVyLmZyYW1lKSwhdC5mcnVzdHVtQ3VsbGVkfHxPLmludGVyc2VjdHNPYmplY3QodCkpKXtpJiZGLnNldEZyb21NYXRyaXhQb3NpdGlvbih0Lm1hdHJpeFdvcmxkKS5hcHBseU1hdHJpeDQoSCk7Y29uc3QgZT1RLnVwZGF0ZSh0KSxyPXQubWF0ZXJpYWw7aWYoQXJyYXkuaXNBcnJheShyKSl7Y29uc3QgaT1lLmdyb3Vwcztmb3IobGV0IG89MCxhPWkubGVuZ3RoO288YTtvKyspe2NvbnN0IGE9aVtvXSxzPXJbYS5tYXRlcmlhbEluZGV4XTtzJiZzLnZpc2libGUmJmQucHVzaCh0LGUscyxuLEYueixhKX19ZWxzZSByLnZpc2libGUmJmQucHVzaCh0LGUscixuLEYueixudWxsKX1jb25zdCByPXQuY2hpbGRyZW47Zm9yKGxldCB0PTAsbz1yLmxlbmd0aDt0PG87dCsrKVN0KHJbdF0sZSxuLGkpfWZ1bmN0aW9uIE10KHQsZSxuKXtjb25zdCBpPSEwPT09ZS5pc1NjZW5lP2Uub3ZlcnJpZGVNYXRlcmlhbDpudWxsO2lmKG4uaXNBcnJheUNhbWVyYSl7Y29uc3Qgcj1uLmNhbWVyYXM7Zm9yKGxldCBuPTAsbz1yLmxlbmd0aDtuPG87bisrKXtjb25zdCBvPXJbbl07Vy52aWV3cG9ydChTLmNvcHkoby52aWV3cG9ydCkpLHAuc2V0dXBMaWdodHNWaWV3KG8pO2ZvcihsZXQgbj0wLHI9dC5sZW5ndGg7bjxyO24rKyl7Y29uc3Qgcj10W25dLGE9ci5vYmplY3Qscz1yLmdlb21ldHJ5LGw9bnVsbD09PWk/ci5tYXRlcmlhbDppLGM9ci5ncm91cDthLmxheWVycy50ZXN0KG8ubGF5ZXJzKSYmRXQoYSxlLG8scyxsLGMpfX19ZWxzZSBmb3IobGV0IHI9MCxvPXQubGVuZ3RoO3I8bztyKyspe2NvbnN0IG89dFtyXTtFdChvLm9iamVjdCxlLG4sby5nZW9tZXRyeSxudWxsPT09aT9vLm1hdGVyaWFsOmksby5ncm91cCl9fWZ1bmN0aW9uIEV0KHQsZSxuLGkscixvKXtpZih0Lm9uQmVmb3JlUmVuZGVyKGcsZSxuLGkscixvKSx0Lm1vZGVsVmlld01hdHJpeC5tdWx0aXBseU1hdHJpY2VzKG4ubWF0cml4V29ybGRJbnZlcnNlLHQubWF0cml4V29ybGQpLHQubm9ybWFsTWF0cml4LmdldE5vcm1hbE1hdHJpeCh0Lm1vZGVsVmlld01hdHJpeCksdC5pc0ltbWVkaWF0ZVJlbmRlck9iamVjdCl7Y29uc3QgaT1BdChuLGUscix0KTtXLnNldE1hdGVyaWFsKHIpLGh0LnJlc2V0KCksKGZ1bmN0aW9uIGEodCxlKXt0LnJlbmRlcigoZnVuY3Rpb24odCl7Zy5yZW5kZXJCdWZmZXJJbW1lZGlhdGUodCxlKX0pKX0pKHQsaSl9ZWxzZSEwPT09ci50cmFuc3BhcmVudCYmMj09PXIuc2lkZT8oci5zaWRlPTEsci5uZWVkc1VwZGF0ZT0hMCxnLnJlbmRlckJ1ZmZlckRpcmVjdChuLGUsaSxyLHQsbyksci5zaWRlPTAsci5uZWVkc1VwZGF0ZT0hMCxnLnJlbmRlckJ1ZmZlckRpcmVjdChuLGUsaSxyLHQsbyksci5zaWRlPTIpOmcucmVuZGVyQnVmZmVyRGlyZWN0KG4sZSxpLHIsdCxvKTt0Lm9uQWZ0ZXJSZW5kZXIoZyxlLG4saSxyLG8pfWZ1bmN0aW9uIFR0KHQsZSxuKXshMCE9PWUuaXNTY2VuZSYmKGU9Vik7Y29uc3QgaT1ZLmdldCh0KSxyPXAuc3RhdGUubGlnaHRzLG89ci5zdGF0ZS52ZXJzaW9uLGE9dHQuZ2V0UGFyYW1ldGVycyh0LHIuc3RhdGUscC5zdGF0ZS5zaGFkb3dzQXJyYXksZSxuKSxzPXR0LmdldFByb2dyYW1DYWNoZUtleShhKTtsZXQgbD1pLnByb2dyYW1zO2kuZW52aXJvbm1lbnQ9dC5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP2UuZW52aXJvbm1lbnQ6bnVsbCxpLmZvZz1lLmZvZyxpLmVudk1hcD0odC5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP0s6JCkuZ2V0KHQuZW52TWFwfHxpLmVudmlyb25tZW50KSx2b2lkIDA9PT1sJiYodC5hZGRFdmVudExpc3RlbmVyKCJkaXNwb3NlIix5dCksbD1uZXcgTWFwLGkucHJvZ3JhbXM9bCk7bGV0IGM9bC5nZXQocyk7aWYodm9pZCAwIT09Yyl7aWYoaS5jdXJyZW50UHJvZ3JhbT09PWMmJmkubGlnaHRzU3RhdGVWZXJzaW9uPT09bylyZXR1cm4gQ3QodCxhKSxjfWVsc2UgYS51bmlmb3Jtcz10dC5nZXRVbmlmb3Jtcyh0KSx0Lm9uQnVpbGQoYSxnKSx0Lm9uQmVmb3JlQ29tcGlsZShhLGcpLGM9dHQuYWNxdWlyZVByb2dyYW0oYSxzKSxsLnNldChzLGMpLGkudW5pZm9ybXM9YS51bmlmb3Jtcztjb25zdCB1PWkudW5pZm9ybXM7KHQuaXNTaGFkZXJNYXRlcmlhbHx8dC5pc1Jhd1NoYWRlck1hdGVyaWFsKSYmITAhPT10LmNsaXBwaW5nfHwodS5jbGlwcGluZ1BsYW5lcz1ydC51bmlmb3JtKSxDdCh0LGEpLGkubmVlZHNMaWdodHM9KGZ1bmN0aW9uIGgodCl7cmV0dXJuIHQuaXNNZXNoTGFtYmVydE1hdGVyaWFsfHx0LmlzTWVzaFRvb25NYXRlcmlhbHx8dC5pc01lc2hQaG9uZ01hdGVyaWFsfHx0LmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWx8fHQuaXNTaGFkb3dNYXRlcmlhbHx8dC5pc1NoYWRlck1hdGVyaWFsJiYhMD09PXQubGlnaHRzfSkodCksaS5saWdodHNTdGF0ZVZlcnNpb249byxpLm5lZWRzTGlnaHRzJiYodS5hbWJpZW50TGlnaHRDb2xvci52YWx1ZT1yLnN0YXRlLmFtYmllbnQsdS5saWdodFByb2JlLnZhbHVlPXIuc3RhdGUucHJvYmUsdS5kaXJlY3Rpb25hbExpZ2h0cy52YWx1ZT1yLnN0YXRlLmRpcmVjdGlvbmFsLHUuZGlyZWN0aW9uYWxMaWdodFNoYWRvd3MudmFsdWU9ci5zdGF0ZS5kaXJlY3Rpb25hbFNoYWRvdyx1LnNwb3RMaWdodHMudmFsdWU9ci5zdGF0ZS5zcG90LHUuc3BvdExpZ2h0U2hhZG93cy52YWx1ZT1yLnN0YXRlLnNwb3RTaGFkb3csdS5yZWN0QXJlYUxpZ2h0cy52YWx1ZT1yLnN0YXRlLnJlY3RBcmVhLHUubHRjXzEudmFsdWU9ci5zdGF0ZS5yZWN0QXJlYUxUQzEsdS5sdGNfMi52YWx1ZT1yLnN0YXRlLnJlY3RBcmVhTFRDMix1LnBvaW50TGlnaHRzLnZhbHVlPXIuc3RhdGUucG9pbnQsdS5wb2ludExpZ2h0U2hhZG93cy52YWx1ZT1yLnN0YXRlLnBvaW50U2hhZG93LHUuaGVtaXNwaGVyZUxpZ2h0cy52YWx1ZT1yLnN0YXRlLmhlbWksdS5kaXJlY3Rpb25hbFNoYWRvd01hcC52YWx1ZT1yLnN0YXRlLmRpcmVjdGlvbmFsU2hhZG93TWFwLHUuZGlyZWN0aW9uYWxTaGFkb3dNYXRyaXgudmFsdWU9ci5zdGF0ZS5kaXJlY3Rpb25hbFNoYWRvd01hdHJpeCx1LnNwb3RTaGFkb3dNYXAudmFsdWU9ci5zdGF0ZS5zcG90U2hhZG93TWFwLHUuc3BvdFNoYWRvd01hdHJpeC52YWx1ZT1yLnN0YXRlLnNwb3RTaGFkb3dNYXRyaXgsdS5wb2ludFNoYWRvd01hcC52YWx1ZT1yLnN0YXRlLnBvaW50U2hhZG93TWFwLHUucG9pbnRTaGFkb3dNYXRyaXgudmFsdWU9ci5zdGF0ZS5wb2ludFNoYWRvd01hdHJpeCk7Y29uc3QgZD1jLmdldFVuaWZvcm1zKCksZj1mOHQuc2VxV2l0aFZhbHVlKGQuc2VxLHUpO3JldHVybiBpLmN1cnJlbnRQcm9ncmFtPWMsaS51bmlmb3Jtc0xpc3Q9ZixjfWZ1bmN0aW9uIEN0KHQsZSl7Y29uc3Qgbj1ZLmdldCh0KTtuLm91dHB1dEVuY29kaW5nPWUub3V0cHV0RW5jb2Rpbmcsbi5pbnN0YW5jaW5nPWUuaW5zdGFuY2luZyxuLnNraW5uaW5nPWUuc2tpbm5pbmcsbi5tb3JwaFRhcmdldHM9ZS5tb3JwaFRhcmdldHMsbi5tb3JwaE5vcm1hbHM9ZS5tb3JwaE5vcm1hbHMsbi5udW1DbGlwcGluZ1BsYW5lcz1lLm51bUNsaXBwaW5nUGxhbmVzLG4ubnVtSW50ZXJzZWN0aW9uPWUubnVtQ2xpcEludGVyc2VjdGlvbixuLnZlcnRleEFscGhhcz1lLnZlcnRleEFscGhhcyxuLnZlcnRleFRhbmdlbnRzPWUudmVydGV4VGFuZ2VudHN9ZnVuY3Rpb24gQXQodCxlLG4saSl7ITAhPT1lLmlzU2NlbmUmJihlPVYpLFgucmVzZXRUZXh0dXJlVW5pdHMoKTtjb25zdCByPWUuZm9nLG89bnVsbD09PWI/Zy5vdXRwdXRFbmNvZGluZzpiLnRleHR1cmUuZW5jb2RpbmcsYT0obi5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP0s6JCkuZ2V0KG4uZW52TWFwfHwobi5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP2UuZW52aXJvbm1lbnQ6bnVsbCkpLHM9ITA9PT1uLnZlcnRleENvbG9ycyYmISFpLmdlb21ldHJ5JiYhIWkuZ2VvbWV0cnkuYXR0cmlidXRlcy5jb2xvciYmND09PWkuZ2VvbWV0cnkuYXR0cmlidXRlcy5jb2xvci5pdGVtU2l6ZSxsPSEhaS5nZW9tZXRyeSYmISFpLmdlb21ldHJ5LmF0dHJpYnV0ZXMudGFuZ2VudCxjPSEhaS5nZW9tZXRyeSYmISFpLmdlb21ldHJ5Lm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbix1PSEhaS5nZW9tZXRyeSYmISFpLmdlb21ldHJ5Lm1vcnBoQXR0cmlidXRlcy5ub3JtYWwsaD1ZLmdldChuKSxkPXAuc3RhdGUubGlnaHRzO2lmKCEwPT09eiYmKCEwPT09RHx8dCE9PXcpKXtydC5zZXRTdGF0ZShuLHQsdD09PXcmJm4uaWQ9PT14KX1sZXQgZj0hMTtuLnZlcnNpb249PT1oLl9fdmVyc2lvbj9oLm5lZWRzTGlnaHRzJiZoLmxpZ2h0c1N0YXRlVmVyc2lvbiE9PWQuc3RhdGUudmVyc2lvbnx8aC5vdXRwdXRFbmNvZGluZyE9PW98fGkuaXNJbnN0YW5jZWRNZXNoJiYhMT09PWguaW5zdGFuY2luZz9mPSEwOmkuaXNJbnN0YW5jZWRNZXNofHwhMCE9PWguaW5zdGFuY2luZz9pLmlzU2tpbm5lZE1lc2gmJiExPT09aC5za2lubmluZz9mPSEwOmkuaXNTa2lubmVkTWVzaHx8ITAhPT1oLnNraW5uaW5nP2guZW52TWFwIT09YXx8bi5mb2cmJmguZm9nIT09cj9mPSEwOnZvaWQgMD09PWgubnVtQ2xpcHBpbmdQbGFuZXN8fGgubnVtQ2xpcHBpbmdQbGFuZXM9PT1ydC5udW1QbGFuZXMmJmgubnVtSW50ZXJzZWN0aW9uPT09cnQubnVtSW50ZXJzZWN0aW9uPyhoLnZlcnRleEFscGhhcyE9PXN8fGgudmVydGV4VGFuZ2VudHMhPT1sfHxoLm1vcnBoVGFyZ2V0cyE9PWN8fGgubW9ycGhOb3JtYWxzIT09dSkmJihmPSEwKTpmPSEwOmY9ITA6Zj0hMDooZj0hMCxoLl9fdmVyc2lvbj1uLnZlcnNpb24pO2xldCBtPWguY3VycmVudFByb2dyYW07ITA9PT1mJiYobT1UdChuLGUsaSkpO2xldCBfPSExLHk9ITEsdj0hMTtjb25zdCBTPW0uZ2V0VW5pZm9ybXMoKSxNPWgudW5pZm9ybXM7aWYoVy51c2VQcm9ncmFtKG0ucHJvZ3JhbSkmJihfPSEwLHk9ITAsdj0hMCksbi5pZCE9PXgmJih4PW4uaWQseT0hMCksX3x8dyE9PXQpe2lmKFMuc2V0VmFsdWUoZHQsInByb2plY3Rpb25NYXRyaXgiLHQucHJvamVjdGlvbk1hdHJpeCksRy5sb2dhcml0aG1pY0RlcHRoQnVmZmVyJiZTLnNldFZhbHVlKGR0LCJsb2dEZXB0aEJ1ZkZDIiwyLyhNYXRoLmxvZyh0LmZhcisxKS9NYXRoLkxOMikpLHchPT10JiYodz10LHk9ITAsdj0hMCksbi5pc1NoYWRlck1hdGVyaWFsfHxuLmlzTWVzaFBob25nTWF0ZXJpYWx8fG4uaXNNZXNoVG9vbk1hdGVyaWFsfHxuLmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWx8fG4uZW52TWFwKXtjb25zdCBlPVMubWFwLmNhbWVyYVBvc2l0aW9uO3ZvaWQgMCE9PWUmJmUuc2V0VmFsdWUoZHQsRi5zZXRGcm9tTWF0cml4UG9zaXRpb24odC5tYXRyaXhXb3JsZCkpfShuLmlzTWVzaFBob25nTWF0ZXJpYWx8fG4uaXNNZXNoVG9vbk1hdGVyaWFsfHxuLmlzTWVzaExhbWJlcnRNYXRlcmlhbHx8bi5pc01lc2hCYXNpY01hdGVyaWFsfHxuLmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWx8fG4uaXNTaGFkZXJNYXRlcmlhbCkmJlMuc2V0VmFsdWUoZHQsImlzT3J0aG9ncmFwaGljIiwhMD09PXQuaXNPcnRob2dyYXBoaWNDYW1lcmEpLChuLmlzTWVzaFBob25nTWF0ZXJpYWx8fG4uaXNNZXNoVG9vbk1hdGVyaWFsfHxuLmlzTWVzaExhbWJlcnRNYXRlcmlhbHx8bi5pc01lc2hCYXNpY01hdGVyaWFsfHxuLmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWx8fG4uaXNTaGFkZXJNYXRlcmlhbHx8bi5pc1NoYWRvd01hdGVyaWFsfHxpLmlzU2tpbm5lZE1lc2gpJiZTLnNldFZhbHVlKGR0LCJ2aWV3TWF0cml4Iix0Lm1hdHJpeFdvcmxkSW52ZXJzZSl9aWYoaS5pc1NraW5uZWRNZXNoKXtTLnNldE9wdGlvbmFsKGR0LGksImJpbmRNYXRyaXgiKSxTLnNldE9wdGlvbmFsKGR0LGksImJpbmRNYXRyaXhJbnZlcnNlIik7Y29uc3QgdD1pLnNrZWxldG9uO3QmJihHLmZsb2F0VmVydGV4VGV4dHVyZXM/KG51bGw9PT10LmJvbmVUZXh0dXJlJiZ0LmNvbXB1dGVCb25lVGV4dHVyZSgpLFMuc2V0VmFsdWUoZHQsImJvbmVUZXh0dXJlIix0LmJvbmVUZXh0dXJlLFgpLFMuc2V0VmFsdWUoZHQsImJvbmVUZXh0dXJlU2l6ZSIsdC5ib25lVGV4dHVyZVNpemUpKTpTLnNldE9wdGlvbmFsKGR0LHQsImJvbmVNYXRyaWNlcyIpKX1yZXR1cm4oeXx8aC5yZWNlaXZlU2hhZG93IT09aS5yZWNlaXZlU2hhZG93KSYmKGgucmVjZWl2ZVNoYWRvdz1pLnJlY2VpdmVTaGFkb3csUy5zZXRWYWx1ZShkdCwicmVjZWl2ZVNoYWRvdyIsaS5yZWNlaXZlU2hhZG93KSkseSYmKFMuc2V0VmFsdWUoZHQsInRvbmVNYXBwaW5nRXhwb3N1cmUiLGcudG9uZU1hcHBpbmdFeHBvc3VyZSksaC5uZWVkc0xpZ2h0cyYmKGZ1bmN0aW9uIEUodCxlKXt0LmFtYmllbnRMaWdodENvbG9yLm5lZWRzVXBkYXRlPWUsdC5saWdodFByb2JlLm5lZWRzVXBkYXRlPWUsdC5kaXJlY3Rpb25hbExpZ2h0cy5uZWVkc1VwZGF0ZT1lLHQuZGlyZWN0aW9uYWxMaWdodFNoYWRvd3MubmVlZHNVcGRhdGU9ZSx0LnBvaW50TGlnaHRzLm5lZWRzVXBkYXRlPWUsdC5wb2ludExpZ2h0U2hhZG93cy5uZWVkc1VwZGF0ZT1lLHQuc3BvdExpZ2h0cy5uZWVkc1VwZGF0ZT1lLHQuc3BvdExpZ2h0U2hhZG93cy5uZWVkc1VwZGF0ZT1lLHQucmVjdEFyZWFMaWdodHMubmVlZHNVcGRhdGU9ZSx0LmhlbWlzcGhlcmVMaWdodHMubmVlZHNVcGRhdGU9ZX0pKE0sdiksciYmbi5mb2cmJmV0LnJlZnJlc2hGb2dVbmlmb3JtcyhNLHIpLGV0LnJlZnJlc2hNYXRlcmlhbFVuaWZvcm1zKE0sbixBLEMsQiksZjh0LnVwbG9hZChkdCxoLnVuaWZvcm1zTGlzdCxNLFgpKSxuLmlzU2hhZGVyTWF0ZXJpYWwmJiEwPT09bi51bmlmb3Jtc05lZWRVcGRhdGUmJihmOHQudXBsb2FkKGR0LGgudW5pZm9ybXNMaXN0LE0sWCksbi51bmlmb3Jtc05lZWRVcGRhdGU9ITEpLG4uaXNTcHJpdGVNYXRlcmlhbCYmUy5zZXRWYWx1ZShkdCwiY2VudGVyIixpLmNlbnRlciksUy5zZXRWYWx1ZShkdCwibW9kZWxWaWV3TWF0cml4IixpLm1vZGVsVmlld01hdHJpeCksUy5zZXRWYWx1ZShkdCwibm9ybWFsTWF0cml4IixpLm5vcm1hbE1hdHJpeCksUy5zZXRWYWx1ZShkdCwibW9kZWxNYXRyaXgiLGkubWF0cml4V29ybGQpLG19d3Quc2V0QW5pbWF0aW9uTG9vcCgoZnVuY3Rpb24ga3QodCl7dnQmJnZ0KHQpfSkpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3dC5zZXRDb250ZXh0KHdpbmRvdyksdGhpcy5zZXRBbmltYXRpb25Mb29wPWZ1bmN0aW9uKHQpe3Z0PXQsbXQuc2V0QW5pbWF0aW9uTG9vcCh0KSxudWxsPT09dD93dC5zdG9wKCk6d3Quc3RhcnQoKX0sbXQuYWRkRXZlbnRMaXN0ZW5lcigic2Vzc2lvbnN0YXJ0IixidCksbXQuYWRkRXZlbnRMaXN0ZW5lcigic2Vzc2lvbmVuZCIseHQpLHRoaXMucmVuZGVyPWZ1bmN0aW9uKHQsZSl7aWYodm9pZCAwIT09ZSYmITAhPT1lLmlzQ2FtZXJhKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMUmVuZGVyZXIucmVuZGVyOiBjYW1lcmEgaXMgbm90IGFuIGluc3RhbmNlIG9mIFRIUkVFLkNhbWVyYS4iKTtpZighMD09PV8pcmV0dXJuOyEwPT09dC5hdXRvVXBkYXRlJiZ0LnVwZGF0ZU1hdHJpeFdvcmxkKCksbnVsbD09PWUucGFyZW50JiZlLnVwZGF0ZU1hdHJpeFdvcmxkKCksITA9PT1tdC5lbmFibGVkJiYhMD09PW10LmlzUHJlc2VudGluZyYmKCEwPT09bXQuY2FtZXJhQXV0b1VwZGF0ZSYmbXQudXBkYXRlQ2FtZXJhKGUpLGU9bXQuZ2V0Q2FtZXJhKCkpLCEwPT09dC5pc1NjZW5lJiZ0Lm9uQmVmb3JlUmVuZGVyKGcsdCxlLGIpLHA9aXQuZ2V0KHQsbS5sZW5ndGgpLHAuaW5pdCgpLG0ucHVzaChwKSxILm11bHRpcGx5TWF0cmljZXMoZS5wcm9qZWN0aW9uTWF0cml4LGUubWF0cml4V29ybGRJbnZlcnNlKSxPLnNldEZyb21Qcm9qZWN0aW9uTWF0cml4KEgpLEQ9dGhpcy5sb2NhbENsaXBwaW5nRW5hYmxlZCx6PXJ0LmluaXQodGhpcy5jbGlwcGluZ1BsYW5lcyxELGUpLGQ9bnQuZ2V0KHQsZi5sZW5ndGgpLGQuaW5pdCgpLGYucHVzaChkKSxTdCh0LGUsMCxnLnNvcnRPYmplY3RzKSxkLmZpbmlzaCgpLCEwPT09Zy5zb3J0T2JqZWN0cyYmZC5zb3J0KGssTCksITA9PT16JiZydC5iZWdpblNoYWRvd3MoKTtvdC5yZW5kZXIocC5zdGF0ZS5zaGFkb3dzQXJyYXksdCxlKSxwLnNldHVwTGlnaHRzKCkscC5zZXR1cExpZ2h0c1ZpZXcoZSksITA9PT16JiZydC5lbmRTaGFkb3dzKCksITA9PT10aGlzLmluZm8uYXV0b1Jlc2V0JiZ0aGlzLmluZm8ucmVzZXQoKSxhdC5yZW5kZXIoZCx0KTtjb25zdCBuPWQub3BhcXVlLGk9ZC50cmFuc21pc3NpdmUscj1kLnRyYW5zcGFyZW50O24ubGVuZ3RoPjAmJk10KG4sdCxlKSxpLmxlbmd0aD4wJiYoZnVuY3Rpb24gbyh0LGUsbixpKXtpZihudWxsPT09Qil7Qj1uZXcoITA9PT1zJiYhMD09PUcuaXNXZWJHTDI/RDV0Ok81dCkoMTAyNCwxMDI0LHtnZW5lcmF0ZU1pcG1hcHM6ITAsdHlwZTpudWxsIT09dXQuY29udmVydChiMnQpP2IydDpnMnQsbWluRmlsdGVyOm0ydCxtYWdGaWx0ZXI6dTJ0LHdyYXBTOmwydCx3cmFwVDpsMnR9KX1jb25zdCByPWcuZ2V0UmVuZGVyVGFyZ2V0KCk7Zy5zZXRSZW5kZXJUYXJnZXQoQiksZy5jbGVhcigpO2NvbnN0IG89Zy50b25lTWFwcGluZztnLnRvbmVNYXBwaW5nPTAsTXQodCxuLGkpLGcudG9uZU1hcHBpbmc9byxYLnVwZGF0ZU11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0KEIpLFgudXBkYXRlUmVuZGVyVGFyZ2V0TWlwbWFwKEIpLGcuc2V0UmVuZGVyVGFyZ2V0KHIpLE10KGUsbixpKX0pKG4saSx0LGUpLHIubGVuZ3RoPjAmJk10KHIsdCxlKSxudWxsIT09YiYmKFgudXBkYXRlTXVsdGlzYW1wbGVSZW5kZXJUYXJnZXQoYiksWC51cGRhdGVSZW5kZXJUYXJnZXRNaXBtYXAoYikpLCEwPT09dC5pc1NjZW5lJiZ0Lm9uQWZ0ZXJSZW5kZXIoZyx0LGUpLFcuYnVmZmVycy5kZXB0aC5zZXRUZXN0KCEwKSxXLmJ1ZmZlcnMuZGVwdGguc2V0TWFzayghMCksVy5idWZmZXJzLmNvbG9yLnNldE1hc2soITApLFcuc2V0UG9seWdvbk9mZnNldCghMSksaHQucmVzZXREZWZhdWx0U3RhdGUoKSx4PS0xLHc9bnVsbCxtLnBvcCgpLHA9bS5sZW5ndGg+MD9tW20ubGVuZ3RoLTFdOm51bGwsZi5wb3AoKSxkPWYubGVuZ3RoPjA/ZltmLmxlbmd0aC0xXTpudWxsfSx0aGlzLmdldEFjdGl2ZUN1YmVGYWNlPWZ1bmN0aW9uKCl7cmV0dXJuIHl9LHRoaXMuZ2V0QWN0aXZlTWlwbWFwTGV2ZWw9ZnVuY3Rpb24oKXtyZXR1cm4gdn0sdGhpcy5nZXRSZW5kZXJUYXJnZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gYn0sdGhpcy5zZXRSZW5kZXJUYXJnZXQ9ZnVuY3Rpb24odCxlPTAsbj0wKXtiPXQseT1lLHY9bix0JiZ2b2lkIDA9PT1ZLmdldCh0KS5fX3dlYmdsRnJhbWVidWZmZXImJlguc2V0dXBSZW5kZXJUYXJnZXQodCk7bGV0IGk9bnVsbCxyPSExLG89ITE7aWYodCl7Y29uc3Qgbj10LnRleHR1cmU7KG4uaXNEYXRhVGV4dHVyZTNEfHxuLmlzRGF0YVRleHR1cmUyREFycmF5KSYmKG89ITApO2NvbnN0IGE9WS5nZXQodCkuX193ZWJnbEZyYW1lYnVmZmVyO3QuaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQ/KGk9YVtlXSxyPSEwKTppPXQuaXNXZWJHTE11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0P1kuZ2V0KHQpLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlcjphLFMuY29weSh0LnZpZXdwb3J0KSxNLmNvcHkodC5zY2lzc29yKSxFPXQuc2Npc3NvclRlc3R9ZWxzZSBTLmNvcHkoUCkubXVsdGlwbHlTY2FsYXIoQSkuZmxvb3IoKSxNLmNvcHkoTikubXVsdGlwbHlTY2FsYXIoQSkuZmxvb3IoKSxFPUk7aWYoVy5iaW5kRnJhbWVidWZmZXIoMzYxNjAsaSkmJkcuZHJhd0J1ZmZlcnMpe2xldCBlPSExO2lmKHQpaWYodC5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzKXtjb25zdCBuPXQudGV4dHVyZTtpZihSLmxlbmd0aCE9PW4ubGVuZ3RofHwzNjA2NCE9PVJbMF0pe2ZvcihsZXQgdD0wLGU9bi5sZW5ndGg7dDxlO3QrKylSW3RdPTM2MDY0K3Q7Ui5sZW5ndGg9bi5sZW5ndGgsZT0hMH19ZWxzZSAxPT09Ui5sZW5ndGgmJjM2MDY0PT09UlswXXx8KFJbMF09MzYwNjQsUi5sZW5ndGg9MSxlPSEwKTtlbHNlIDE9PT1SLmxlbmd0aCYmMTAyOT09PVJbMF18fChSWzBdPTEwMjksUi5sZW5ndGg9MSxlPSEwKTtlJiYoRy5pc1dlYkdMMj9kdC5kcmF3QnVmZmVycyhSKTpqLmdldCgiV0VCR0xfZHJhd19idWZmZXJzIikuZHJhd0J1ZmZlcnNXRUJHTChSKSl9aWYoVy52aWV3cG9ydChTKSxXLnNjaXNzb3IoTSksVy5zZXRTY2lzc29yVGVzdChFKSxyKXtjb25zdCBpPVkuZ2V0KHQudGV4dHVyZSk7ZHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzYwNjQsMzQwNjkrZSxpLl9fd2ViZ2xUZXh0dXJlLG4pfWVsc2UgaWYobyl7Y29uc3QgaT1ZLmdldCh0LnRleHR1cmUpO2R0LmZyYW1lYnVmZmVyVGV4dHVyZUxheWVyKDM2MTYwLDM2MDY0LGkuX193ZWJnbFRleHR1cmUsbnx8MCxlfHwwKX19LHRoaXMucmVhZFJlbmRlclRhcmdldFBpeGVscz1mdW5jdGlvbih0LGUsbixpLHIsbyxhKXtpZighdHx8IXQuaXNXZWJHTFJlbmRlclRhcmdldClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyLnJlYWRSZW5kZXJUYXJnZXRQaXhlbHM6IHJlbmRlclRhcmdldCBpcyBub3QgVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQuIik7bGV0IHM9WS5nZXQodCkuX193ZWJnbEZyYW1lYnVmZmVyO2lmKHQuaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQmJnZvaWQgMCE9PWEmJihzPXNbYV0pLHMpe1cuYmluZEZyYW1lYnVmZmVyKDM2MTYwLHMpO3RyeXtjb25zdCBhPXQudGV4dHVyZSxzPWEuZm9ybWF0LGw9YS50eXBlO2lmKHMhPT1TMnQmJnV0LmNvbnZlcnQocykhPT1kdC5nZXRQYXJhbWV0ZXIoMzU3MzkpKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMUmVuZGVyZXIucmVhZFJlbmRlclRhcmdldFBpeGVsczogcmVuZGVyVGFyZ2V0IGlzIG5vdCBpbiBSR0JBIG9yIGltcGxlbWVudGF0aW9uIGRlZmluZWQgZm9ybWF0LiIpO2NvbnN0IGM9bD09PWIydCYmKGouaGFzKCJFWFRfY29sb3JfYnVmZmVyX2hhbGZfZmxvYXQiKXx8Ry5pc1dlYkdMMiYmai5oYXMoIkVYVF9jb2xvcl9idWZmZXJfZmxvYXQiKSk7aWYoIShsPT09ZzJ0fHx1dC5jb252ZXJ0KGwpPT09ZHQuZ2V0UGFyYW1ldGVyKDM1NzM4KXx8bD09PXYydCYmKEcuaXNXZWJHTDJ8fGouaGFzKCJPRVNfdGV4dHVyZV9mbG9hdCIpfHxqLmhhcygiV0VCR0xfY29sb3JfYnVmZmVyX2Zsb2F0IikpfHxjKSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyLnJlYWRSZW5kZXJUYXJnZXRQaXhlbHM6IHJlbmRlclRhcmdldCBpcyBub3QgaW4gVW5zaWduZWRCeXRlVHlwZSBvciBpbXBsZW1lbnRhdGlvbiBkZWZpbmVkIHR5cGUuIik7MzYwNTM9PT1kdC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKDM2MTYwKT9lPj0wJiZlPD10LndpZHRoLWkmJm4+PTAmJm48PXQuaGVpZ2h0LXImJmR0LnJlYWRQaXhlbHMoZSxuLGkscix1dC5jb252ZXJ0KHMpLHV0LmNvbnZlcnQobCksbyk6Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlci5yZWFkUmVuZGVyVGFyZ2V0UGl4ZWxzOiByZWFkUGl4ZWxzIGZyb20gcmVuZGVyVGFyZ2V0IGZhaWxlZC4gRnJhbWVidWZmZXIgbm90IGNvbXBsZXRlLiIpfWZpbmFsbHl7Y29uc3QgdD1udWxsIT09Yj9ZLmdldChiKS5fX3dlYmdsRnJhbWVidWZmZXI6bnVsbDtXLmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCx0KX19fSx0aGlzLmNvcHlGcmFtZWJ1ZmZlclRvVGV4dHVyZT1mdW5jdGlvbih0LGUsbj0wKXtjb25zdCBpPU1hdGgucG93KDIsLW4pLHI9TWF0aC5mbG9vcihlLmltYWdlLndpZHRoKmkpLG89TWF0aC5mbG9vcihlLmltYWdlLmhlaWdodCppKTtsZXQgYT11dC5jb252ZXJ0KGUuZm9ybWF0KTtHLmlzV2ViR0wyJiYoNjQwNz09PWEmJihhPTMyODQ5KSw2NDA4PT09YSYmKGE9MzI4NTYpKSxYLnNldFRleHR1cmUyRChlLDApLGR0LmNvcHlUZXhJbWFnZTJEKDM1NTMsbixhLHQueCx0LnkscixvLDApLFcudW5iaW5kVGV4dHVyZSgpfSx0aGlzLmNvcHlUZXh0dXJlVG9UZXh0dXJlPWZ1bmN0aW9uKHQsZSxuLGk9MCl7Y29uc3Qgcj1lLmltYWdlLndpZHRoLG89ZS5pbWFnZS5oZWlnaHQsYT11dC5jb252ZXJ0KG4uZm9ybWF0KSxzPXV0LmNvbnZlcnQobi50eXBlKTtYLnNldFRleHR1cmUyRChuLDApLGR0LnBpeGVsU3RvcmVpKDM3NDQwLG4uZmxpcFkpLGR0LnBpeGVsU3RvcmVpKDM3NDQxLG4ucHJlbXVsdGlwbHlBbHBoYSksZHQucGl4ZWxTdG9yZWkoMzMxNyxuLnVucGFja0FsaWdubWVudCksZS5pc0RhdGFUZXh0dXJlP2R0LnRleFN1YkltYWdlMkQoMzU1MyxpLHQueCx0LnkscixvLGEscyxlLmltYWdlLmRhdGEpOmUuaXNDb21wcmVzc2VkVGV4dHVyZT9kdC5jb21wcmVzc2VkVGV4U3ViSW1hZ2UyRCgzNTUzLGksdC54LHQueSxlLm1pcG1hcHNbMF0ud2lkdGgsZS5taXBtYXBzWzBdLmhlaWdodCxhLGUubWlwbWFwc1swXS5kYXRhKTpkdC50ZXhTdWJJbWFnZTJEKDM1NTMsaSx0LngsdC55LGEscyxlLmltYWdlKSwwPT09aSYmbi5nZW5lcmF0ZU1pcG1hcHMmJmR0LmdlbmVyYXRlTWlwbWFwKDM1NTMpLFcudW5iaW5kVGV4dHVyZSgpfSx0aGlzLmNvcHlUZXh0dXJlVG9UZXh0dXJlM0Q9ZnVuY3Rpb24odCxlLG4saSxyPTApe2lmKGcuaXNXZWJHTDFSZW5kZXJlcilyZXR1cm4gdm9pZCBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXIuY29weVRleHR1cmVUb1RleHR1cmUzRDogY2FuIG9ubHkgYmUgdXNlZCB3aXRoIFdlYkdMMi4iKTtjb25zdCBvPXQubWF4LngtdC5taW4ueCsxLGE9dC5tYXgueS10Lm1pbi55KzEscz10Lm1heC56LXQubWluLnorMSxsPXV0LmNvbnZlcnQoaS5mb3JtYXQpLGM9dXQuY29udmVydChpLnR5cGUpO2xldCB1O2lmKGkuaXNEYXRhVGV4dHVyZTNEKVguc2V0VGV4dHVyZTNEKGksMCksdT0zMjg3OTtlbHNle2lmKCFpLmlzRGF0YVRleHR1cmUyREFycmF5KXJldHVybiB2b2lkIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlci5jb3B5VGV4dHVyZVRvVGV4dHVyZTNEOiBvbmx5IHN1cHBvcnRzIFRIUkVFLkRhdGFUZXh0dXJlM0QgYW5kIFRIUkVFLkRhdGFUZXh0dXJlMkRBcnJheS4iKTtYLnNldFRleHR1cmUyREFycmF5KGksMCksdT0zNTg2Nn1kdC5waXhlbFN0b3JlaSgzNzQ0MCxpLmZsaXBZKSxkdC5waXhlbFN0b3JlaSgzNzQ0MSxpLnByZW11bHRpcGx5QWxwaGEpLGR0LnBpeGVsU3RvcmVpKDMzMTcsaS51bnBhY2tBbGlnbm1lbnQpO2NvbnN0IGg9ZHQuZ2V0UGFyYW1ldGVyKDMzMTQpLGQ9ZHQuZ2V0UGFyYW1ldGVyKDMyODc4KSxwPWR0LmdldFBhcmFtZXRlcigzMzE2KSxmPWR0LmdldFBhcmFtZXRlcigzMzE1KSxtPWR0LmdldFBhcmFtZXRlcigzMjg3NyksXz1uLmlzQ29tcHJlc3NlZFRleHR1cmU/bi5taXBtYXBzWzBdOm4uaW1hZ2U7ZHQucGl4ZWxTdG9yZWkoMzMxNCxfLndpZHRoKSxkdC5waXhlbFN0b3JlaSgzMjg3OCxfLmhlaWdodCksZHQucGl4ZWxTdG9yZWkoMzMxNix0Lm1pbi54KSxkdC5waXhlbFN0b3JlaSgzMzE1LHQubWluLnkpLGR0LnBpeGVsU3RvcmVpKDMyODc3LHQubWluLnopLG4uaXNEYXRhVGV4dHVyZXx8bi5pc0RhdGFUZXh0dXJlM0Q/ZHQudGV4U3ViSW1hZ2UzRCh1LHIsZS54LGUueSxlLnosbyxhLHMsbCxjLF8uZGF0YSk6bi5pc0NvbXByZXNzZWRUZXh0dXJlPyhjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXIuY29weVRleHR1cmVUb1RleHR1cmUzRDogdW50ZXN0ZWQgc3VwcG9ydCBmb3IgY29tcHJlc3NlZCBzcmNUZXh0dXJlLiIpLGR0LmNvbXByZXNzZWRUZXhTdWJJbWFnZTNEKHUscixlLngsZS55LGUueixvLGEscyxsLF8uZGF0YSkpOmR0LnRleFN1YkltYWdlM0QodSxyLGUueCxlLnksZS56LG8sYSxzLGwsYyxfKSxkdC5waXhlbFN0b3JlaSgzMzE0LGgpLGR0LnBpeGVsU3RvcmVpKDMyODc4LGQpLGR0LnBpeGVsU3RvcmVpKDMzMTYscCksZHQucGl4ZWxTdG9yZWkoMzMxNSxmKSxkdC5waXhlbFN0b3JlaSgzMjg3NyxtKSwwPT09ciYmaS5nZW5lcmF0ZU1pcG1hcHMmJmR0LmdlbmVyYXRlTWlwbWFwKHUpLFcudW5iaW5kVGV4dHVyZSgpfSx0aGlzLmluaXRUZXh0dXJlPWZ1bmN0aW9uKHQpe1guc2V0VGV4dHVyZTJEKHQsMCksVy51bmJpbmRUZXh0dXJlKCl9LHRoaXMucmVzZXRTdGF0ZT1mdW5jdGlvbigpe3k9MCx2PTAsYj1udWxsLFcucmVzZXQoKSxodC5yZXNldCgpfSwidW5kZWZpbmVkIiE9dHlwZW9mIF9fVEhSRUVfREVWVE9PTFNfXyYmX19USFJFRV9ERVZUT09MU19fLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJvYnNlcnZlIix7ZGV0YWlsOnRoaXN9KSl9Y2xhc3MgYTd0IGV4dGVuZHMgbzd0e31hN3QucHJvdG90eXBlLmlzV2ViR0wxUmVuZGVyZXI9ITA7Y2xhc3Mgczd0e2NvbnN0cnVjdG9yKHQsZT0yNWUtNSl7dGhpcy5uYW1lPSIiLHRoaXMuY29sb3I9bmV3IHM0dCh0KSx0aGlzLmRlbnNpdHk9ZX1jbG9uZSgpe3JldHVybiBuZXcgczd0KHRoaXMuY29sb3IsdGhpcy5kZW5zaXR5KX10b0pTT04oKXtyZXR1cm57dHlwZToiRm9nRXhwMiIsY29sb3I6dGhpcy5jb2xvci5nZXRIZXgoKSxkZW5zaXR5OnRoaXMuZGVuc2l0eX19fXM3dC5wcm90b3R5cGUuaXNGb2dFeHAyPSEwO2NsYXNzIGw3dHtjb25zdHJ1Y3Rvcih0LGU9MSxuPTFlMyl7dGhpcy5uYW1lPSIiLHRoaXMuY29sb3I9bmV3IHM0dCh0KSx0aGlzLm5lYXI9ZSx0aGlzLmZhcj1ufWNsb25lKCl7cmV0dXJuIG5ldyBsN3QodGhpcy5jb2xvcix0aGlzLm5lYXIsdGhpcy5mYXIpfXRvSlNPTigpe3JldHVybnt0eXBlOiJGb2ciLGNvbG9yOnRoaXMuY29sb3IuZ2V0SGV4KCksbmVhcjp0aGlzLm5lYXIsZmFyOnRoaXMuZmFyfX19bDd0LnByb3RvdHlwZS5pc0ZvZz0hMDtjbGFzcyBjN3QgZXh0ZW5kcyBWM3R7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iU2NlbmUiLHRoaXMuYmFja2dyb3VuZD1udWxsLHRoaXMuZW52aXJvbm1lbnQ9bnVsbCx0aGlzLmZvZz1udWxsLHRoaXMub3ZlcnJpZGVNYXRlcmlhbD1udWxsLHRoaXMuYXV0b1VwZGF0ZT0hMCwidW5kZWZpbmVkIiE9dHlwZW9mIF9fVEhSRUVfREVWVE9PTFNfXyYmX19USFJFRV9ERVZUT09MU19fLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJvYnNlcnZlIix7ZGV0YWlsOnRoaXN9KSl9Y29weSh0LGUpe3JldHVybiBzdXBlci5jb3B5KHQsZSksbnVsbCE9PXQuYmFja2dyb3VuZCYmKHRoaXMuYmFja2dyb3VuZD10LmJhY2tncm91bmQuY2xvbmUoKSksbnVsbCE9PXQuZW52aXJvbm1lbnQmJih0aGlzLmVudmlyb25tZW50PXQuZW52aXJvbm1lbnQuY2xvbmUoKSksbnVsbCE9PXQuZm9nJiYodGhpcy5mb2c9dC5mb2cuY2xvbmUoKSksbnVsbCE9PXQub3ZlcnJpZGVNYXRlcmlhbCYmKHRoaXMub3ZlcnJpZGVNYXRlcmlhbD10Lm92ZXJyaWRlTWF0ZXJpYWwuY2xvbmUoKSksdGhpcy5hdXRvVXBkYXRlPXQuYXV0b1VwZGF0ZSx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9dC5tYXRyaXhBdXRvVXBkYXRlLHRoaXN9dG9KU09OKHQpe2NvbnN0IGU9c3VwZXIudG9KU09OKHQpO3JldHVybiBudWxsIT09dGhpcy5mb2cmJihlLm9iamVjdC5mb2c9dGhpcy5mb2cudG9KU09OKCkpLGV9fWM3dC5wcm90b3R5cGUuaXNTY2VuZT0hMDtjbGFzcyB1N3R7Y29uc3RydWN0b3IodCxlKXt0aGlzLmFycmF5PXQsdGhpcy5zdHJpZGU9ZSx0aGlzLmNvdW50PXZvaWQgMCE9PXQ/dC5sZW5ndGgvZTowLHRoaXMudXNhZ2U9SjJ0LHRoaXMudXBkYXRlUmFuZ2U9e29mZnNldDowLGNvdW50Oi0xfSx0aGlzLnZlcnNpb249MCx0aGlzLnV1aWQ9YTV0KCl9b25VcGxvYWRDYWxsYmFjaygpe31zZXQgbmVlZHNVcGRhdGUodCl7ITA9PT10JiZ0aGlzLnZlcnNpb24rK31zZXRVc2FnZSh0KXtyZXR1cm4gdGhpcy51c2FnZT10LHRoaXN9Y29weSh0KXtyZXR1cm4gdGhpcy5hcnJheT1uZXcgdC5hcnJheS5jb25zdHJ1Y3Rvcih0LmFycmF5KSx0aGlzLmNvdW50PXQuY291bnQsdGhpcy5zdHJpZGU9dC5zdHJpZGUsdGhpcy51c2FnZT10LnVzYWdlLHRoaXN9Y29weUF0KHQsZSxuKXt0Kj10aGlzLnN0cmlkZSxuKj1lLnN0cmlkZTtmb3IobGV0IGk9MCxyPXRoaXMuc3RyaWRlO2k8cjtpKyspdGhpcy5hcnJheVt0K2ldPWUuYXJyYXlbbitpXTtyZXR1cm4gdGhpc31zZXQodCxlPTApe3JldHVybiB0aGlzLmFycmF5LnNldCh0LGUpLHRoaXN9Y2xvbmUodCl7dm9pZCAwPT09dC5hcnJheUJ1ZmZlcnMmJih0LmFycmF5QnVmZmVycz17fSksdm9pZCAwPT09dGhpcy5hcnJheS5idWZmZXIuX3V1aWQmJih0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZD1hNXQoKSksdm9pZCAwPT09dC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdJiYodC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdPXRoaXMuYXJyYXkuc2xpY2UoMCkuYnVmZmVyKTtjb25zdCBlPW5ldyB0aGlzLmFycmF5LmNvbnN0cnVjdG9yKHQuYXJyYXlCdWZmZXJzW3RoaXMuYXJyYXkuYnVmZmVyLl91dWlkXSksbj1uZXcgdGhpcy5jb25zdHJ1Y3RvcihlLHRoaXMuc3RyaWRlKTtyZXR1cm4gbi5zZXRVc2FnZSh0aGlzLnVzYWdlKSxufW9uVXBsb2FkKHQpe3JldHVybiB0aGlzLm9uVXBsb2FkQ2FsbGJhY2s9dCx0aGlzfXRvSlNPTih0KXtyZXR1cm4gdm9pZCAwPT09dC5hcnJheUJ1ZmZlcnMmJih0LmFycmF5QnVmZmVycz17fSksdm9pZCAwPT09dGhpcy5hcnJheS5idWZmZXIuX3V1aWQmJih0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZD1hNXQoKSksdm9pZCAwPT09dC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdJiYodC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG5ldyBVaW50MzJBcnJheSh0aGlzLmFycmF5LmJ1ZmZlcikpKSx7dXVpZDp0aGlzLnV1aWQsYnVmZmVyOnRoaXMuYXJyYXkuYnVmZmVyLl91dWlkLHR5cGU6dGhpcy5hcnJheS5jb25zdHJ1Y3Rvci5uYW1lLHN0cmlkZTp0aGlzLnN0cmlkZX19fXU3dC5wcm90b3R5cGUuaXNJbnRlcmxlYXZlZEJ1ZmZlcj0hMDtjb25zdCBoN3Q9bmV3IEg1dDtjbGFzcyBkN3R7Y29uc3RydWN0b3IodCxlLG4saT0hMSl7dGhpcy5uYW1lPSIiLHRoaXMuZGF0YT10LHRoaXMuaXRlbVNpemU9ZSx0aGlzLm9mZnNldD1uLHRoaXMubm9ybWFsaXplZD0hMD09PWl9Z2V0IGNvdW50KCl7cmV0dXJuIHRoaXMuZGF0YS5jb3VudH1nZXQgYXJyYXkoKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5fXNldCBuZWVkc1VwZGF0ZSh0KXt0aGlzLmRhdGEubmVlZHNVcGRhdGU9dH1hcHBseU1hdHJpeDQodCl7Zm9yKGxldCBlPTAsbj10aGlzLmRhdGEuY291bnQ7ZTxuO2UrKyloN3QueD10aGlzLmdldFgoZSksaDd0Lnk9dGhpcy5nZXRZKGUpLGg3dC56PXRoaXMuZ2V0WihlKSxoN3QuYXBwbHlNYXRyaXg0KHQpLHRoaXMuc2V0WFlaKGUsaDd0LngsaDd0LnksaDd0LnopO3JldHVybiB0aGlzfWFwcGx5Tm9ybWFsTWF0cml4KHQpe2ZvcihsZXQgZT0wLG49dGhpcy5jb3VudDtlPG47ZSsrKWg3dC54PXRoaXMuZ2V0WChlKSxoN3QueT10aGlzLmdldFkoZSksaDd0Lno9dGhpcy5nZXRaKGUpLGg3dC5hcHBseU5vcm1hbE1hdHJpeCh0KSx0aGlzLnNldFhZWihlLGg3dC54LGg3dC55LGg3dC56KTtyZXR1cm4gdGhpc310cmFuc2Zvcm1EaXJlY3Rpb24odCl7Zm9yKGxldCBlPTAsbj10aGlzLmNvdW50O2U8bjtlKyspaDd0Lng9dGhpcy5nZXRYKGUpLGg3dC55PXRoaXMuZ2V0WShlKSxoN3Quej10aGlzLmdldFooZSksaDd0LnRyYW5zZm9ybURpcmVjdGlvbih0KSx0aGlzLnNldFhZWihlLGg3dC54LGg3dC55LGg3dC56KTtyZXR1cm4gdGhpc31zZXRYKHQsZSl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXRdPWUsdGhpc31zZXRZKHQsZSl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQrMV09ZSx0aGlzfXNldFoodCxlKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5W3QqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCsyXT1lLHRoaXN9c2V0Vyh0LGUpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0KzNdPWUsdGhpc31nZXRYKHQpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0XX1nZXRZKHQpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0KzFdfWdldFoodCl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQrMl19Z2V0Vyh0KXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5W3QqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCszXX1zZXRYWSh0LGUsbil7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVsodD10KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQpKzBdPWUsdGhpcy5kYXRhLmFycmF5W3QrMV09bix0aGlzfXNldFhZWih0LGUsbixpKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5Wyh0PXQqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCkrMF09ZSx0aGlzLmRhdGEuYXJyYXlbdCsxXT1uLHRoaXMuZGF0YS5hcnJheVt0KzJdPWksdGhpc31zZXRYWVpXKHQsZSxuLGkscil7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVsodD10KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQpKzBdPWUsdGhpcy5kYXRhLmFycmF5W3QrMV09bix0aGlzLmRhdGEuYXJyYXlbdCsyXT1pLHRoaXMuZGF0YS5hcnJheVt0KzNdPXIsdGhpc31jbG9uZSh0KXtpZih2b2lkIDA9PT10KXtjb25zb2xlLmxvZygiVEhSRUUuSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUuY2xvbmUoKTogQ2xvbmluZyBhbiBpbnRlcmxhdmVkIGJ1ZmZlciBhdHRyaWJ1dGUgd2lsbCBkZWludGVybGVhdmUgYnVmZmVyIGRhdGEuIik7Y29uc3QgdD1bXTtmb3IobGV0IGU9MDtlPHRoaXMuY291bnQ7ZSsrKXtjb25zdCBuPWUqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldDtmb3IobGV0IGU9MDtlPHRoaXMuaXRlbVNpemU7ZSsrKXQucHVzaCh0aGlzLmRhdGEuYXJyYXlbbitlXSl9cmV0dXJuIG5ldyBoNHQobmV3IHRoaXMuYXJyYXkuY29uc3RydWN0b3IodCksdGhpcy5pdGVtU2l6ZSx0aGlzLm5vcm1hbGl6ZWQpfXJldHVybiB2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVycyYmKHQuaW50ZXJsZWF2ZWRCdWZmZXJzPXt9KSx2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF0mJih0LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF09dGhpcy5kYXRhLmNsb25lKHQpKSxuZXcgZDd0KHQuaW50ZXJsZWF2ZWRCdWZmZXJzW3RoaXMuZGF0YS51dWlkXSx0aGlzLml0ZW1TaXplLHRoaXMub2Zmc2V0LHRoaXMubm9ybWFsaXplZCl9dG9KU09OKHQpe2lmKHZvaWQgMD09PXQpe2NvbnNvbGUubG9nKCJUSFJFRS5JbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZS50b0pTT04oKTogU2VyaWFsaXppbmcgYW4gaW50ZXJsYXZlZCBidWZmZXIgYXR0cmlidXRlIHdpbGwgZGVpbnRlcmxlYXZlIGJ1ZmZlciBkYXRhLiIpO2NvbnN0IHQ9W107Zm9yKGxldCBlPTA7ZTx0aGlzLmNvdW50O2UrKyl7Y29uc3Qgbj1lKnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQ7Zm9yKGxldCBlPTA7ZTx0aGlzLml0ZW1TaXplO2UrKyl0LnB1c2godGhpcy5kYXRhLmFycmF5W24rZV0pfXJldHVybntpdGVtU2l6ZTp0aGlzLml0ZW1TaXplLHR5cGU6dGhpcy5hcnJheS5jb25zdHJ1Y3Rvci5uYW1lLGFycmF5OnQsbm9ybWFsaXplZDp0aGlzLm5vcm1hbGl6ZWR9fXJldHVybiB2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVycyYmKHQuaW50ZXJsZWF2ZWRCdWZmZXJzPXt9KSx2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF0mJih0LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF09dGhpcy5kYXRhLnRvSlNPTih0KSkse2lzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGU6ITAsaXRlbVNpemU6dGhpcy5pdGVtU2l6ZSxkYXRhOnRoaXMuZGF0YS51dWlkLG9mZnNldDp0aGlzLm9mZnNldCxub3JtYWxpemVkOnRoaXMubm9ybWFsaXplZH19fWQ3dC5wcm90b3R5cGUuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZT0hMDtjbGFzcyBwN3QgZXh0ZW5kcyB0NHR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlNwcml0ZU1hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBzNHQoMTY3NzcyMTUpLHRoaXMubWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMucm90YXRpb249MCx0aGlzLnNpemVBdHRlbnVhdGlvbj0hMCx0aGlzLnRyYW5zcGFyZW50PSEwLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubWFwPXQubWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLnJvdGF0aW9uPXQucm90YXRpb24sdGhpcy5zaXplQXR0ZW51YXRpb249dC5zaXplQXR0ZW51YXRpb24sdGhpc319bGV0IGY3dDtwN3QucHJvdG90eXBlLmlzU3ByaXRlTWF0ZXJpYWw9ITA7Y29uc3QgbTd0PW5ldyBINXQsZzd0PW5ldyBINXQsXzd0PW5ldyBINXQseTd0PW5ldyBDNXQsdjd0PW5ldyBDNXQsYjd0PW5ldyBnM3QseDd0PW5ldyBINXQsdzd0PW5ldyBINXQsUzd0PW5ldyBINXQsTTd0PW5ldyBDNXQsRTd0PW5ldyBDNXQsVDd0PW5ldyBDNXQ7Y2xhc3MgQzd0IGV4dGVuZHMgVjN0e2NvbnN0cnVjdG9yKHQpe2lmKHN1cGVyKCksdGhpcy50eXBlPSJTcHJpdGUiLHZvaWQgMD09PWY3dCl7Zjd0PW5ldyBONHQ7Y29uc3QgdD1uZXcgRmxvYXQzMkFycmF5KFstLjUsLS41LDAsMCwwLC41LC0uNSwwLDEsMCwuNSwuNSwwLDEsMSwtLjUsLjUsMCwwLDFdKSxlPW5ldyB1N3QodCw1KTtmN3Quc2V0SW5kZXgoWzAsMSwyLDAsMiwzXSksZjd0LnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBkN3QoZSwzLDAsITEpKSxmN3Quc2V0QXR0cmlidXRlKCJ1diIsbmV3IGQ3dChlLDIsMywhMSkpfXRoaXMuZ2VvbWV0cnk9Zjd0LHRoaXMubWF0ZXJpYWw9dm9pZCAwIT09dD90Om5ldyBwN3QsdGhpcy5jZW50ZXI9bmV3IEM1dCguNSwuNSl9cmF5Y2FzdCh0LGUpe251bGw9PT10LmNhbWVyYSYmY29uc29sZS5lcnJvcignVEhSRUUuU3ByaXRlOiAiUmF5Y2FzdGVyLmNhbWVyYSIgbmVlZHMgdG8gYmUgc2V0IGluIG9yZGVyIHRvIHJheWNhc3QgYWdhaW5zdCBzcHJpdGVzLicpLGc3dC5zZXRGcm9tTWF0cml4U2NhbGUodGhpcy5tYXRyaXhXb3JsZCksYjd0LmNvcHkodC5jYW1lcmEubWF0cml4V29ybGQpLHRoaXMubW9kZWxWaWV3TWF0cml4Lm11bHRpcGx5TWF0cmljZXModC5jYW1lcmEubWF0cml4V29ybGRJbnZlcnNlLHRoaXMubWF0cml4V29ybGQpLF83dC5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5tb2RlbFZpZXdNYXRyaXgpLHQuY2FtZXJhLmlzUGVyc3BlY3RpdmVDYW1lcmEmJiExPT09dGhpcy5tYXRlcmlhbC5zaXplQXR0ZW51YXRpb24mJmc3dC5tdWx0aXBseVNjYWxhcigtXzd0LnopO2NvbnN0IG49dGhpcy5tYXRlcmlhbC5yb3RhdGlvbjtsZXQgaSxyOzAhPT1uJiYocj1NYXRoLmNvcyhuKSxpPU1hdGguc2luKG4pKTtjb25zdCBvPXRoaXMuY2VudGVyO0E3dCh4N3Quc2V0KC0uNSwtLjUsMCksXzd0LG8sZzd0LGksciksQTd0KHc3dC5zZXQoLjUsLS41LDApLF83dCxvLGc3dCxpLHIpLEE3dChTN3Quc2V0KC41LC41LDApLF83dCxvLGc3dCxpLHIpLE03dC5zZXQoMCwwKSxFN3Quc2V0KDEsMCksVDd0LnNldCgxLDEpO2xldCBhPXQucmF5LmludGVyc2VjdFRyaWFuZ2xlKHg3dCx3N3QsUzd0LCExLG03dCk7aWYobnVsbD09PWEmJihBN3Qodzd0LnNldCgtLjUsLjUsMCksXzd0LG8sZzd0LGksciksRTd0LnNldCgwLDEpLGE9dC5yYXkuaW50ZXJzZWN0VHJpYW5nbGUoeDd0LFM3dCx3N3QsITEsbTd0KSxudWxsPT09YSkpcmV0dXJuO2NvbnN0IHM9dC5yYXkub3JpZ2luLmRpc3RhbmNlVG8obTd0KTtzPHQubmVhcnx8cz50LmZhcnx8ZS5wdXNoKHtkaXN0YW5jZTpzLHBvaW50Om03dC5jbG9uZSgpLHV2OkozdC5nZXRVVihtN3QseDd0LHc3dCxTN3QsTTd0LEU3dCxUN3QsbmV3IEM1dCksZmFjZTpudWxsLG9iamVjdDp0aGlzfSl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx2b2lkIDAhPT10LmNlbnRlciYmdGhpcy5jZW50ZXIuY29weSh0LmNlbnRlciksdGhpcy5tYXRlcmlhbD10Lm1hdGVyaWFsLHRoaXN9fWZ1bmN0aW9uIEE3dCh0LGUsbixpLHIsbyl7eTd0LnN1YlZlY3RvcnModCxuKS5hZGRTY2FsYXIoLjUpLm11bHRpcGx5KGkpLHZvaWQgMCE9PXI/KHY3dC54PW8qeTd0Lngtcip5N3QueSx2N3QueT1yKnk3dC54K28qeTd0LnkpOnY3dC5jb3B5KHk3dCksdC5jb3B5KGUpLHQueCs9djd0LngsdC55Kz12N3QueSx0LmFwcGx5TWF0cml4NChiN3QpfUM3dC5wcm90b3R5cGUuaXNTcHJpdGU9ITA7Y29uc3Qgazd0PW5ldyBINXQsTDd0PW5ldyBINXQ7Y2xhc3MgUDd0IGV4dGVuZHMgVjN0e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9jdXJyZW50TGV2ZWw9MCx0aGlzLnR5cGU9IkxPRCIsT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGhpcyx7bGV2ZWxzOntlbnVtZXJhYmxlOiEwLHZhbHVlOltdfSxpc0xPRDp7dmFsdWU6ITB9fSksdGhpcy5hdXRvVXBkYXRlPSEwfWNvcHkodCl7c3VwZXIuY29weSh0LCExKTtjb25zdCBlPXQubGV2ZWxzO2ZvcihsZXQgdD0wLG49ZS5sZW5ndGg7dDxuO3QrKyl7Y29uc3Qgbj1lW3RdO3RoaXMuYWRkTGV2ZWwobi5vYmplY3QuY2xvbmUoKSxuLmRpc3RhbmNlKX1yZXR1cm4gdGhpcy5hdXRvVXBkYXRlPXQuYXV0b1VwZGF0ZSx0aGlzfWFkZExldmVsKHQsZT0wKXtlPU1hdGguYWJzKGUpO2NvbnN0IG49dGhpcy5sZXZlbHM7bGV0IGk7Zm9yKGk9MDtpPG4ubGVuZ3RoJiYhKGU8bltpXS5kaXN0YW5jZSk7aSsrKTtyZXR1cm4gbi5zcGxpY2UoaSwwLHtkaXN0YW5jZTplLG9iamVjdDp0fSksdGhpcy5hZGQodCksdGhpc31nZXRDdXJyZW50TGV2ZWwoKXtyZXR1cm4gdGhpcy5fY3VycmVudExldmVsfWdldE9iamVjdEZvckRpc3RhbmNlKHQpe2NvbnN0IGU9dGhpcy5sZXZlbHM7aWYoZS5sZW5ndGg+MCl7bGV0IG4saTtmb3Iobj0xLGk9ZS5sZW5ndGg7bjxpJiYhKHQ8ZVtuXS5kaXN0YW5jZSk7bisrKTtyZXR1cm4gZVtuLTFdLm9iamVjdH1yZXR1cm4gbnVsbH1yYXljYXN0KHQsZSl7aWYodGhpcy5sZXZlbHMubGVuZ3RoPjApe2s3dC5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5tYXRyaXhXb3JsZCk7Y29uc3Qgbj10LnJheS5vcmlnaW4uZGlzdGFuY2VUbyhrN3QpO3RoaXMuZ2V0T2JqZWN0Rm9yRGlzdGFuY2UobikucmF5Y2FzdCh0LGUpfX11cGRhdGUodCl7Y29uc3QgZT10aGlzLmxldmVscztpZihlLmxlbmd0aD4xKXtrN3Quc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQubWF0cml4V29ybGQpLEw3dC5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5tYXRyaXhXb3JsZCk7Y29uc3Qgbj1rN3QuZGlzdGFuY2VUbyhMN3QpL3Quem9vbTtsZXQgaSxyO2ZvcihlWzBdLm9iamVjdC52aXNpYmxlPSEwLGk9MSxyPWUubGVuZ3RoO2k8ciYmbj49ZVtpXS5kaXN0YW5jZTtpKyspZVtpLTFdLm9iamVjdC52aXNpYmxlPSExLGVbaV0ub2JqZWN0LnZpc2libGU9ITA7Zm9yKHRoaXMuX2N1cnJlbnRMZXZlbD1pLTE7aTxyO2krKyllW2ldLm9iamVjdC52aXNpYmxlPSExfX10b0pTT04odCl7Y29uc3QgZT1zdXBlci50b0pTT04odCk7ITE9PT10aGlzLmF1dG9VcGRhdGUmJihlLm9iamVjdC5hdXRvVXBkYXRlPSExKSxlLm9iamVjdC5sZXZlbHM9W107Y29uc3Qgbj10aGlzLmxldmVscztmb3IobGV0IHQ9MCxpPW4ubGVuZ3RoO3Q8aTt0Kyspe2NvbnN0IGk9blt0XTtlLm9iamVjdC5sZXZlbHMucHVzaCh7b2JqZWN0Omkub2JqZWN0LnV1aWQsZGlzdGFuY2U6aS5kaXN0YW5jZX0pfXJldHVybiBlfX1jb25zdCBON3Q9bmV3IEg1dCxJN3Q9bmV3IFI1dCxSN3Q9bmV3IFI1dCxPN3Q9bmV3IEg1dCx6N3Q9bmV3IGczdDtjbGFzcyBEN3QgZXh0ZW5kcyBLNHR7Y29uc3RydWN0b3IodCxlKXtzdXBlcih0LGUpLHRoaXMudHlwZT0iU2tpbm5lZE1lc2giLHRoaXMuYmluZE1vZGU9ImF0dGFjaGVkIix0aGlzLmJpbmRNYXRyaXg9bmV3IGczdCx0aGlzLmJpbmRNYXRyaXhJbnZlcnNlPW5ldyBnM3R9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmJpbmRNb2RlPXQuYmluZE1vZGUsdGhpcy5iaW5kTWF0cml4LmNvcHkodC5iaW5kTWF0cml4KSx0aGlzLmJpbmRNYXRyaXhJbnZlcnNlLmNvcHkodC5iaW5kTWF0cml4SW52ZXJzZSksdGhpcy5za2VsZXRvbj10LnNrZWxldG9uLHRoaXN9YmluZCh0LGUpe3RoaXMuc2tlbGV0b249dCx2b2lkIDA9PT1lJiYodGhpcy51cGRhdGVNYXRyaXhXb3JsZCghMCksdGhpcy5za2VsZXRvbi5jYWxjdWxhdGVJbnZlcnNlcygpLGU9dGhpcy5tYXRyaXhXb3JsZCksdGhpcy5iaW5kTWF0cml4LmNvcHkoZSksdGhpcy5iaW5kTWF0cml4SW52ZXJzZS5jb3B5KGUpLmludmVydCgpfXBvc2UoKXt0aGlzLnNrZWxldG9uLnBvc2UoKX1ub3JtYWxpemVTa2luV2VpZ2h0cygpe2NvbnN0IHQ9bmV3IFI1dCxlPXRoaXMuZ2VvbWV0cnkuYXR0cmlidXRlcy5za2luV2VpZ2h0O2ZvcihsZXQgbj0wLGk9ZS5jb3VudDtuPGk7bisrKXt0Lng9ZS5nZXRYKG4pLHQueT1lLmdldFkobiksdC56PWUuZ2V0WihuKSx0Lnc9ZS5nZXRXKG4pO2NvbnN0IGk9MS90Lm1hbmhhdHRhbkxlbmd0aCgpO2khPT0xLzA/dC5tdWx0aXBseVNjYWxhcihpKTp0LnNldCgxLDAsMCwwKSxlLnNldFhZWlcobix0LngsdC55LHQueix0LncpfX11cGRhdGVNYXRyaXhXb3JsZCh0KXtzdXBlci51cGRhdGVNYXRyaXhXb3JsZCh0KSwiYXR0YWNoZWQiPT09dGhpcy5iaW5kTW9kZT90aGlzLmJpbmRNYXRyaXhJbnZlcnNlLmNvcHkodGhpcy5tYXRyaXhXb3JsZCkuaW52ZXJ0KCk6ImRldGFjaGVkIj09PXRoaXMuYmluZE1vZGU/dGhpcy5iaW5kTWF0cml4SW52ZXJzZS5jb3B5KHRoaXMuYmluZE1hdHJpeCkuaW52ZXJ0KCk6Y29uc29sZS53YXJuKCJUSFJFRS5Ta2lubmVkTWVzaDogVW5yZWNvZ25pemVkIGJpbmRNb2RlOiAiK3RoaXMuYmluZE1vZGUpfWJvbmVUcmFuc2Zvcm0odCxlKXtjb25zdCBuPXRoaXMuc2tlbGV0b24saT10aGlzLmdlb21ldHJ5O0k3dC5mcm9tQnVmZmVyQXR0cmlidXRlKGkuYXR0cmlidXRlcy5za2luSW5kZXgsdCksUjd0LmZyb21CdWZmZXJBdHRyaWJ1dGUoaS5hdHRyaWJ1dGVzLnNraW5XZWlnaHQsdCksTjd0LmZyb21CdWZmZXJBdHRyaWJ1dGUoaS5hdHRyaWJ1dGVzLnBvc2l0aW9uLHQpLmFwcGx5TWF0cml4NCh0aGlzLmJpbmRNYXRyaXgpLGUuc2V0KDAsMCwwKTtmb3IobGV0IHQ9MDt0PDQ7dCsrKXtjb25zdCBpPVI3dC5nZXRDb21wb25lbnQodCk7aWYoMCE9PWkpe2NvbnN0IHI9STd0LmdldENvbXBvbmVudCh0KTt6N3QubXVsdGlwbHlNYXRyaWNlcyhuLmJvbmVzW3JdLm1hdHJpeFdvcmxkLG4uYm9uZUludmVyc2VzW3JdKSxlLmFkZFNjYWxlZFZlY3RvcihPN3QuY29weShON3QpLmFwcGx5TWF0cml4NCh6N3QpLGkpfX1yZXR1cm4gZS5hcHBseU1hdHJpeDQodGhpcy5iaW5kTWF0cml4SW52ZXJzZSl9fUQ3dC5wcm90b3R5cGUuaXNTa2lubmVkTWVzaD0hMDtjbGFzcyBCN3QgZXh0ZW5kcyBWM3R7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iQm9uZSJ9fUI3dC5wcm90b3R5cGUuaXNCb25lPSEwO2NsYXNzIEg3dCBleHRlbmRzIE41dHtjb25zdHJ1Y3Rvcih0PW51bGwsZT0xLG49MSxpLHIsbyxhLHMsbD0xMDAzLGM9MTAwMyx1LGgpe3N1cGVyKG51bGwsbyxhLHMsbCxjLGkscix1LGgpLHRoaXMuaW1hZ2U9e2RhdGE6dCx3aWR0aDplLGhlaWdodDpufSx0aGlzLm1hZ0ZpbHRlcj1sLHRoaXMubWluRmlsdGVyPWMsdGhpcy5nZW5lcmF0ZU1pcG1hcHM9ITEsdGhpcy5mbGlwWT0hMSx0aGlzLnVucGFja0FsaWdubWVudD0xLHRoaXMubmVlZHNVcGRhdGU9ITB9fUg3dC5wcm90b3R5cGUuaXNEYXRhVGV4dHVyZT0hMDtjb25zdCBGN3Q9bmV3IGczdCxWN3Q9bmV3IGczdDtjbGFzcyBVN3R7Y29uc3RydWN0b3IodD1bXSxlPVtdKXt0aGlzLnV1aWQ9YTV0KCksdGhpcy5ib25lcz10LnNsaWNlKDApLHRoaXMuYm9uZUludmVyc2VzPWUsdGhpcy5ib25lTWF0cmljZXM9bnVsbCx0aGlzLmJvbmVUZXh0dXJlPW51bGwsdGhpcy5ib25lVGV4dHVyZVNpemU9MCx0aGlzLmZyYW1lPS0xLHRoaXMuaW5pdCgpfWluaXQoKXtjb25zdCB0PXRoaXMuYm9uZXMsZT10aGlzLmJvbmVJbnZlcnNlcztpZih0aGlzLmJvbmVNYXRyaWNlcz1uZXcgRmxvYXQzMkFycmF5KDE2KnQubGVuZ3RoKSwwPT09ZS5sZW5ndGgpdGhpcy5jYWxjdWxhdGVJbnZlcnNlcygpO2Vsc2UgaWYodC5sZW5ndGghPT1lLmxlbmd0aCl7Y29uc29sZS53YXJuKCJUSFJFRS5Ta2VsZXRvbjogTnVtYmVyIG9mIGludmVyc2UgYm9uZSBtYXRyaWNlcyBkb2VzIG5vdCBtYXRjaCBhbW91bnQgb2YgYm9uZXMuIiksdGhpcy5ib25lSW52ZXJzZXM9W107Zm9yKGxldCB0PTAsZT10aGlzLmJvbmVzLmxlbmd0aDt0PGU7dCsrKXRoaXMuYm9uZUludmVyc2VzLnB1c2gobmV3IGczdCl9fWNhbGN1bGF0ZUludmVyc2VzKCl7dGhpcy5ib25lSW52ZXJzZXMubGVuZ3RoPTA7Zm9yKGxldCB0PTAsZT10aGlzLmJvbmVzLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPW5ldyBnM3Q7dGhpcy5ib25lc1t0XSYmZS5jb3B5KHRoaXMuYm9uZXNbdF0ubWF0cml4V29ybGQpLmludmVydCgpLHRoaXMuYm9uZUludmVyc2VzLnB1c2goZSl9fXBvc2UoKXtmb3IobGV0IHQ9MCxlPXRoaXMuYm9uZXMubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9dGhpcy5ib25lc1t0XTtlJiZlLm1hdHJpeFdvcmxkLmNvcHkodGhpcy5ib25lSW52ZXJzZXNbdF0pLmludmVydCgpfWZvcihsZXQgdD0wLGU9dGhpcy5ib25lcy5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT10aGlzLmJvbmVzW3RdO2UmJihlLnBhcmVudCYmZS5wYXJlbnQuaXNCb25lPyhlLm1hdHJpeC5jb3B5KGUucGFyZW50Lm1hdHJpeFdvcmxkKS5pbnZlcnQoKSxlLm1hdHJpeC5tdWx0aXBseShlLm1hdHJpeFdvcmxkKSk6ZS5tYXRyaXguY29weShlLm1hdHJpeFdvcmxkKSxlLm1hdHJpeC5kZWNvbXBvc2UoZS5wb3NpdGlvbixlLnF1YXRlcm5pb24sZS5zY2FsZSkpfX11cGRhdGUoKXtjb25zdCB0PXRoaXMuYm9uZXMsZT10aGlzLmJvbmVJbnZlcnNlcyxuPXRoaXMuYm9uZU1hdHJpY2VzLGk9dGhpcy5ib25lVGV4dHVyZTtmb3IobGV0IGk9MCxyPXQubGVuZ3RoO2k8cjtpKyspe0Y3dC5tdWx0aXBseU1hdHJpY2VzKHRbaV0/dFtpXS5tYXRyaXhXb3JsZDpWN3QsZVtpXSksRjd0LnRvQXJyYXkobiwxNippKX1udWxsIT09aSYmKGkubmVlZHNVcGRhdGU9ITApfWNsb25lKCl7cmV0dXJuIG5ldyBVN3QodGhpcy5ib25lcyx0aGlzLmJvbmVJbnZlcnNlcyl9Y29tcHV0ZUJvbmVUZXh0dXJlKCl7bGV0IHQ9TWF0aC5zcXJ0KDQqdGhpcy5ib25lcy5sZW5ndGgpO3Q9aDV0KHQpLHQ9TWF0aC5tYXgodCw0KTtjb25zdCBlPW5ldyBGbG9hdDMyQXJyYXkodCp0KjQpO2Uuc2V0KHRoaXMuYm9uZU1hdHJpY2VzKTtjb25zdCBuPW5ldyBIN3QoZSx0LHQsUzJ0LHYydCk7cmV0dXJuIHRoaXMuYm9uZU1hdHJpY2VzPWUsdGhpcy5ib25lVGV4dHVyZT1uLHRoaXMuYm9uZVRleHR1cmVTaXplPXQsdGhpc31nZXRCb25lQnlOYW1lKHQpe2ZvcihsZXQgZT0wLG49dGhpcy5ib25lcy5sZW5ndGg7ZTxuO2UrKyl7Y29uc3Qgbj10aGlzLmJvbmVzW2VdO2lmKG4ubmFtZT09PXQpcmV0dXJuIG59fWRpc3Bvc2UoKXtudWxsIT09dGhpcy5ib25lVGV4dHVyZSYmKHRoaXMuYm9uZVRleHR1cmUuZGlzcG9zZSgpLHRoaXMuYm9uZVRleHR1cmU9bnVsbCl9ZnJvbUpTT04odCxlKXt0aGlzLnV1aWQ9dC51dWlkO2ZvcihsZXQgbj0wLGk9dC5ib25lcy5sZW5ndGg7bjxpO24rKyl7Y29uc3QgaT10LmJvbmVzW25dO2xldCByPWVbaV07dm9pZCAwPT09ciYmKGNvbnNvbGUud2FybigiVEhSRUUuU2tlbGV0b246IE5vIGJvbmUgZm91bmQgd2l0aCBVVUlEOiIsaSkscj1uZXcgQjd0KSx0aGlzLmJvbmVzLnB1c2gociksdGhpcy5ib25lSW52ZXJzZXMucHVzaCgobmV3IGczdCkuZnJvbUFycmF5KHQuYm9uZUludmVyc2VzW25dKSl9cmV0dXJuIHRoaXMuaW5pdCgpLHRoaXN9dG9KU09OKCl7Y29uc3QgdD17bWV0YWRhdGE6e3ZlcnNpb246NC41LHR5cGU6IlNrZWxldG9uIixnZW5lcmF0b3I6IlNrZWxldG9uLnRvSlNPTiJ9LGJvbmVzOltdLGJvbmVJbnZlcnNlczpbXX07dC51dWlkPXRoaXMudXVpZDtjb25zdCBlPXRoaXMuYm9uZXMsbj10aGlzLmJvbmVJbnZlcnNlcztmb3IobGV0IGk9MCxyPWUubGVuZ3RoO2k8cjtpKyspe3QuYm9uZXMucHVzaChlW2ldLnV1aWQpO3QuYm9uZUludmVyc2VzLnB1c2gobltpXS50b0FycmF5KCkpfXJldHVybiB0fX1jb25zdCBqN3Q9bmV3IGczdCxHN3Q9bmV3IGczdCxXN3Q9W10scTd0PW5ldyBLNHQ7Y2xhc3MgWTd0IGV4dGVuZHMgSzR0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcih0LGUpLHRoaXMuaW5zdGFuY2VNYXRyaXg9bmV3IGg0dChuZXcgRmxvYXQzMkFycmF5KDE2Km4pLDE2KSx0aGlzLmluc3RhbmNlQ29sb3I9bnVsbCx0aGlzLmNvdW50PW4sdGhpcy5mcnVzdHVtQ3VsbGVkPSExfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5pbnN0YW5jZU1hdHJpeC5jb3B5KHQuaW5zdGFuY2VNYXRyaXgpLG51bGwhPT10Lmluc3RhbmNlQ29sb3ImJih0aGlzLmluc3RhbmNlQ29sb3I9dC5pbnN0YW5jZUNvbG9yLmNsb25lKCkpLHRoaXMuY291bnQ9dC5jb3VudCx0aGlzfWdldENvbG9yQXQodCxlKXtlLmZyb21BcnJheSh0aGlzLmluc3RhbmNlQ29sb3IuYXJyYXksMyp0KX1nZXRNYXRyaXhBdCh0LGUpe2UuZnJvbUFycmF5KHRoaXMuaW5zdGFuY2VNYXRyaXguYXJyYXksMTYqdCl9cmF5Y2FzdCh0LGUpe2NvbnN0IG49dGhpcy5tYXRyaXhXb3JsZCxpPXRoaXMuY291bnQ7aWYocTd0Lmdlb21ldHJ5PXRoaXMuZ2VvbWV0cnkscTd0Lm1hdGVyaWFsPXRoaXMubWF0ZXJpYWwsdm9pZCAwIT09cTd0Lm1hdGVyaWFsKWZvcihsZXQgcj0wO3I8aTtyKyspe3RoaXMuZ2V0TWF0cml4QXQocixqN3QpLEc3dC5tdWx0aXBseU1hdHJpY2VzKG4sajd0KSxxN3QubWF0cml4V29ybGQ9Rzd0LHE3dC5yYXljYXN0KHQsVzd0KTtmb3IobGV0IHQ9MCxuPVc3dC5sZW5ndGg7dDxuO3QrKyl7Y29uc3Qgbj1XN3RbdF07bi5pbnN0YW5jZUlkPXIsbi5vYmplY3Q9dGhpcyxlLnB1c2gobil9Vzd0Lmxlbmd0aD0wfX1zZXRDb2xvckF0KHQsZSl7bnVsbD09PXRoaXMuaW5zdGFuY2VDb2xvciYmKHRoaXMuaW5zdGFuY2VDb2xvcj1uZXcgaDR0KG5ldyBGbG9hdDMyQXJyYXkoMyp0aGlzLmluc3RhbmNlTWF0cml4LmNvdW50KSwzKSksZS50b0FycmF5KHRoaXMuaW5zdGFuY2VDb2xvci5hcnJheSwzKnQpfXNldE1hdHJpeEF0KHQsZSl7ZS50b0FycmF5KHRoaXMuaW5zdGFuY2VNYXRyaXguYXJyYXksMTYqdCl9dXBkYXRlTW9ycGhUYXJnZXRzKCl7fWRpc3Bvc2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImRpc3Bvc2UifSl9fVk3dC5wcm90b3R5cGUuaXNJbnN0YW5jZWRNZXNoPSEwO2NsYXNzIFg3dCBleHRlbmRzIHQ0dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTGluZUJhc2ljTWF0ZXJpYWwiLHRoaXMuY29sb3I9bmV3IHM0dCgxNjc3NzIxNSksdGhpcy5saW5ld2lkdGg9MSx0aGlzLmxpbmVjYXA9InJvdW5kIix0aGlzLmxpbmVqb2luPSJyb3VuZCIsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5saW5ld2lkdGg9dC5saW5ld2lkdGgsdGhpcy5saW5lY2FwPXQubGluZWNhcCx0aGlzLmxpbmVqb2luPXQubGluZWpvaW4sdGhpc319WDd0LnByb3RvdHlwZS5pc0xpbmVCYXNpY01hdGVyaWFsPSEwO2NvbnN0ICQ3dD1uZXcgSDV0LEs3dD1uZXcgSDV0LFo3dD1uZXcgZzN0LEo3dD1uZXcgbTN0LFE3dD1uZXcgczN0O2NsYXNzIHR0ZSBleHRlbmRzIFYzdHtjb25zdHJ1Y3Rvcih0PW5ldyBONHQsZT1uZXcgWDd0KXtzdXBlcigpLHRoaXMudHlwZT0iTGluZSIsdGhpcy5nZW9tZXRyeT10LHRoaXMubWF0ZXJpYWw9ZSx0aGlzLnVwZGF0ZU1vcnBoVGFyZ2V0cygpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5tYXRlcmlhbD10Lm1hdGVyaWFsLHRoaXMuZ2VvbWV0cnk9dC5nZW9tZXRyeSx0aGlzfWNvbXB1dGVMaW5lRGlzdGFuY2VzKCl7Y29uc3QgdD10aGlzLmdlb21ldHJ5O2lmKHQuaXNCdWZmZXJHZW9tZXRyeSlpZihudWxsPT09dC5pbmRleCl7Y29uc3QgZT10LmF0dHJpYnV0ZXMucG9zaXRpb24sbj1bMF07Zm9yKGxldCB0PTEsaT1lLmNvdW50O3Q8aTt0KyspJDd0LmZyb21CdWZmZXJBdHRyaWJ1dGUoZSx0LTEpLEs3dC5mcm9tQnVmZmVyQXR0cmlidXRlKGUsdCksblt0XT1uW3QtMV0sblt0XSs9JDd0LmRpc3RhbmNlVG8oSzd0KTt0LnNldEF0dHJpYnV0ZSgibGluZURpc3RhbmNlIixuZXcgYjR0KG4sMSkpfWVsc2UgY29uc29sZS53YXJuKCJUSFJFRS5MaW5lLmNvbXB1dGVMaW5lRGlzdGFuY2VzKCk6IENvbXB1dGF0aW9uIG9ubHkgcG9zc2libGUgd2l0aCBub24taW5kZXhlZCBCdWZmZXJHZW9tZXRyeS4iKTtlbHNlIHQuaXNHZW9tZXRyeSYmY29uc29sZS5lcnJvcigiVEhSRUUuTGluZS5jb21wdXRlTGluZURpc3RhbmNlcygpIG5vIGxvbmdlciBzdXBwb3J0cyBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIik7cmV0dXJuIHRoaXN9cmF5Y2FzdCh0LGUpe2NvbnN0IG49dGhpcy5nZW9tZXRyeSxpPXRoaXMubWF0cml4V29ybGQscj10LnBhcmFtcy5MaW5lLnRocmVzaG9sZCxvPW4uZHJhd1JhbmdlO2lmKG51bGw9PT1uLmJvdW5kaW5nU3BoZXJlJiZuLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpLFE3dC5jb3B5KG4uYm91bmRpbmdTcGhlcmUpLFE3dC5hcHBseU1hdHJpeDQoaSksUTd0LnJhZGl1cys9ciwhMT09PXQucmF5LmludGVyc2VjdHNTcGhlcmUoUTd0KSlyZXR1cm47Wjd0LmNvcHkoaSkuaW52ZXJ0KCksSjd0LmNvcHkodC5yYXkpLmFwcGx5TWF0cml4NChaN3QpO2NvbnN0IGE9ci8oKHRoaXMuc2NhbGUueCt0aGlzLnNjYWxlLnkrdGhpcy5zY2FsZS56KS8zKSxzPWEqYSxsPW5ldyBINXQsYz1uZXcgSDV0LHU9bmV3IEg1dCxoPW5ldyBINXQsZD10aGlzLmlzTGluZVNlZ21lbnRzPzI6MTtpZihuLmlzQnVmZmVyR2VvbWV0cnkpe2NvbnN0IGk9bi5pbmRleCxyPW4uYXR0cmlidXRlcy5wb3NpdGlvbjtpZihudWxsIT09aSl7Zm9yKGxldCBuPU1hdGgubWF4KDAsby5zdGFydCksYT1NYXRoLm1pbihpLmNvdW50LG8uc3RhcnQrby5jb3VudCktMTtuPGE7bis9ZCl7Y29uc3Qgbz1pLmdldFgobiksYT1pLmdldFgobisxKTtsLmZyb21CdWZmZXJBdHRyaWJ1dGUocixvKSxjLmZyb21CdWZmZXJBdHRyaWJ1dGUocixhKTtpZihKN3QuZGlzdGFuY2VTcVRvU2VnbWVudChsLGMsaCx1KT5zKWNvbnRpbnVlO2guYXBwbHlNYXRyaXg0KHRoaXMubWF0cml4V29ybGQpO2NvbnN0IGQ9dC5yYXkub3JpZ2luLmRpc3RhbmNlVG8oaCk7ZDx0Lm5lYXJ8fGQ+dC5mYXJ8fGUucHVzaCh7ZGlzdGFuY2U6ZCxwb2ludDp1LmNsb25lKCkuYXBwbHlNYXRyaXg0KHRoaXMubWF0cml4V29ybGQpLGluZGV4Om4sZmFjZTpudWxsLGZhY2VJbmRleDpudWxsLG9iamVjdDp0aGlzfSl9fWVsc2V7Zm9yKGxldCBuPU1hdGgubWF4KDAsby5zdGFydCksaT1NYXRoLm1pbihyLmNvdW50LG8uc3RhcnQrby5jb3VudCktMTtuPGk7bis9ZCl7bC5mcm9tQnVmZmVyQXR0cmlidXRlKHIsbiksYy5mcm9tQnVmZmVyQXR0cmlidXRlKHIsbisxKTtpZihKN3QuZGlzdGFuY2VTcVRvU2VnbWVudChsLGMsaCx1KT5zKWNvbnRpbnVlO2guYXBwbHlNYXRyaXg0KHRoaXMubWF0cml4V29ybGQpO2NvbnN0IGk9dC5yYXkub3JpZ2luLmRpc3RhbmNlVG8oaCk7aTx0Lm5lYXJ8fGk+dC5mYXJ8fGUucHVzaCh7ZGlzdGFuY2U6aSxwb2ludDp1LmNsb25lKCkuYXBwbHlNYXRyaXg0KHRoaXMubWF0cml4V29ybGQpLGluZGV4Om4sZmFjZTpudWxsLGZhY2VJbmRleDpudWxsLG9iamVjdDp0aGlzfSl9fX1lbHNlIG4uaXNHZW9tZXRyeSYmY29uc29sZS5lcnJvcigiVEhSRUUuTGluZS5yYXljYXN0KCkgbm8gbG9uZ2VyIHN1cHBvcnRzIFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKX11cGRhdGVNb3JwaFRhcmdldHMoKXtjb25zdCB0PXRoaXMuZ2VvbWV0cnk7aWYodC5pc0J1ZmZlckdlb21ldHJ5KXtjb25zdCBlPXQubW9ycGhBdHRyaWJ1dGVzLG49T2JqZWN0LmtleXMoZSk7aWYobi5sZW5ndGg+MCl7Y29uc3QgdD1lW25bMF1dO2lmKHZvaWQgMCE9PXQpe3RoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzPVtdLHRoaXMubW9ycGhUYXJnZXREaWN0aW9uYXJ5PXt9O2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKyl7Y29uc3Qgbj10W2VdLm5hbWV8fFN0cmluZyhlKTt0aGlzLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcy5wdXNoKDApLHRoaXMubW9ycGhUYXJnZXREaWN0aW9uYXJ5W25dPWV9fX19ZWxzZXtjb25zdCBlPXQubW9ycGhUYXJnZXRzO3ZvaWQgMCE9PWUmJmUubGVuZ3RoPjAmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLkxpbmUudXBkYXRlTW9ycGhUYXJnZXRzKCkgZG9lcyBub3Qgc3VwcG9ydCBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIil9fX10dGUucHJvdG90eXBlLmlzTGluZT0hMDtjb25zdCBldGU9bmV3IEg1dCxudGU9bmV3IEg1dDtjbGFzcyBpdGUgZXh0ZW5kcyB0dGV7Y29uc3RydWN0b3IodCxlKXtzdXBlcih0LGUpLHRoaXMudHlwZT0iTGluZVNlZ21lbnRzIn1jb21wdXRlTGluZURpc3RhbmNlcygpe2NvbnN0IHQ9dGhpcy5nZW9tZXRyeTtpZih0LmlzQnVmZmVyR2VvbWV0cnkpaWYobnVsbD09PXQuaW5kZXgpe2NvbnN0IGU9dC5hdHRyaWJ1dGVzLnBvc2l0aW9uLG49W107Zm9yKGxldCB0PTAsaT1lLmNvdW50O3Q8aTt0Kz0yKWV0ZS5mcm9tQnVmZmVyQXR0cmlidXRlKGUsdCksbnRlLmZyb21CdWZmZXJBdHRyaWJ1dGUoZSx0KzEpLG5bdF09MD09PXQ/MDpuW3QtMV0sblt0KzFdPW5bdF0rZXRlLmRpc3RhbmNlVG8obnRlKTt0LnNldEF0dHJpYnV0ZSgibGluZURpc3RhbmNlIixuZXcgYjR0KG4sMSkpfWVsc2UgY29uc29sZS53YXJuKCJUSFJFRS5MaW5lU2VnbWVudHMuY29tcHV0ZUxpbmVEaXN0YW5jZXMoKTogQ29tcHV0YXRpb24gb25seSBwb3NzaWJsZSB3aXRoIG5vbi1pbmRleGVkIEJ1ZmZlckdlb21ldHJ5LiIpO2Vsc2UgdC5pc0dlb21ldHJ5JiZjb25zb2xlLmVycm9yKCJUSFJFRS5MaW5lU2VnbWVudHMuY29tcHV0ZUxpbmVEaXN0YW5jZXMoKSBubyBsb25nZXIgc3VwcG9ydHMgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpO3JldHVybiB0aGlzfX1pdGUucHJvdG90eXBlLmlzTGluZVNlZ21lbnRzPSEwO2NsYXNzIHJ0ZSBleHRlbmRzIHR0ZXtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsZSksdGhpcy50eXBlPSJMaW5lTG9vcCJ9fXJ0ZS5wcm90b3R5cGUuaXNMaW5lTG9vcD0hMDtjbGFzcyBvdGUgZXh0ZW5kcyB0NHR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlBvaW50c01hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBzNHQoMTY3NzcyMTUpLHRoaXMubWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuc2l6ZT0xLHRoaXMuc2l6ZUF0dGVudWF0aW9uPSEwLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubWFwPXQubWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLnNpemU9dC5zaXplLHRoaXMuc2l6ZUF0dGVudWF0aW9uPXQuc2l6ZUF0dGVudWF0aW9uLHRoaXN9fW90ZS5wcm90b3R5cGUuaXNQb2ludHNNYXRlcmlhbD0hMDtjb25zdCBhdGU9bmV3IGczdCxzdGU9bmV3IG0zdCxsdGU9bmV3IHMzdCxjdGU9bmV3IEg1dDtjbGFzcyB1dGUgZXh0ZW5kcyBWM3R7Y29uc3RydWN0b3IodD1uZXcgTjR0LGU9bmV3IG90ZSl7c3VwZXIoKSx0aGlzLnR5cGU9IlBvaW50cyIsdGhpcy5nZW9tZXRyeT10LHRoaXMubWF0ZXJpYWw9ZSx0aGlzLnVwZGF0ZU1vcnBoVGFyZ2V0cygpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5tYXRlcmlhbD10Lm1hdGVyaWFsLHRoaXMuZ2VvbWV0cnk9dC5nZW9tZXRyeSx0aGlzfXJheWNhc3QodCxlKXtjb25zdCBuPXRoaXMuZ2VvbWV0cnksaT10aGlzLm1hdHJpeFdvcmxkLHI9dC5wYXJhbXMuUG9pbnRzLnRocmVzaG9sZCxvPW4uZHJhd1JhbmdlO2lmKG51bGw9PT1uLmJvdW5kaW5nU3BoZXJlJiZuLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpLGx0ZS5jb3B5KG4uYm91bmRpbmdTcGhlcmUpLGx0ZS5hcHBseU1hdHJpeDQoaSksbHRlLnJhZGl1cys9ciwhMT09PXQucmF5LmludGVyc2VjdHNTcGhlcmUobHRlKSlyZXR1cm47YXRlLmNvcHkoaSkuaW52ZXJ0KCksc3RlLmNvcHkodC5yYXkpLmFwcGx5TWF0cml4NChhdGUpO2NvbnN0IGE9ci8oKHRoaXMuc2NhbGUueCt0aGlzLnNjYWxlLnkrdGhpcy5zY2FsZS56KS8zKSxzPWEqYTtpZihuLmlzQnVmZmVyR2VvbWV0cnkpe2NvbnN0IHI9bi5pbmRleCxhPW4uYXR0cmlidXRlcy5wb3NpdGlvbjtpZihudWxsIT09cil7Zm9yKGxldCBuPU1hdGgubWF4KDAsby5zdGFydCksbD1NYXRoLm1pbihyLmNvdW50LG8uc3RhcnQrby5jb3VudCk7bjxsO24rKyl7Y29uc3Qgbz1yLmdldFgobik7Y3RlLmZyb21CdWZmZXJBdHRyaWJ1dGUoYSxvKSxodGUoY3RlLG8scyxpLHQsZSx0aGlzKX19ZWxzZXtmb3IobGV0IG49TWF0aC5tYXgoMCxvLnN0YXJ0KSxyPU1hdGgubWluKGEuY291bnQsby5zdGFydCtvLmNvdW50KTtuPHI7bisrKWN0ZS5mcm9tQnVmZmVyQXR0cmlidXRlKGEsbiksaHRlKGN0ZSxuLHMsaSx0LGUsdGhpcyl9fWVsc2UgY29uc29sZS5lcnJvcigiVEhSRUUuUG9pbnRzLnJheWNhc3QoKSBubyBsb25nZXIgc3VwcG9ydHMgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpfXVwZGF0ZU1vcnBoVGFyZ2V0cygpe2NvbnN0IHQ9dGhpcy5nZW9tZXRyeTtpZih0LmlzQnVmZmVyR2VvbWV0cnkpe2NvbnN0IGU9dC5tb3JwaEF0dHJpYnV0ZXMsbj1PYmplY3Qua2V5cyhlKTtpZihuLmxlbmd0aD4wKXtjb25zdCB0PWVbblswXV07aWYodm9pZCAwIT09dCl7dGhpcy5tb3JwaFRhcmdldEluZmx1ZW5jZXM9W10sdGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnk9e307Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXtjb25zdCBuPXRbZV0ubmFtZXx8U3RyaW5nKGUpO3RoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzLnB1c2goMCksdGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnlbbl09ZX19fX1lbHNle2NvbnN0IGU9dC5tb3JwaFRhcmdldHM7dm9pZCAwIT09ZSYmZS5sZW5ndGg+MCYmY29uc29sZS5lcnJvcigiVEhSRUUuUG9pbnRzLnVwZGF0ZU1vcnBoVGFyZ2V0cygpIGRvZXMgbm90IHN1cHBvcnQgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpfX19ZnVuY3Rpb24gaHRlKHQsZSxuLGkscixvLGEpe2NvbnN0IHM9c3RlLmRpc3RhbmNlU3FUb1BvaW50KHQpO2lmKHM8bil7Y29uc3Qgbj1uZXcgSDV0O3N0ZS5jbG9zZXN0UG9pbnRUb1BvaW50KHQsbiksbi5hcHBseU1hdHJpeDQoaSk7Y29uc3QgbD1yLnJheS5vcmlnaW4uZGlzdGFuY2VUbyhuKTtpZihsPHIubmVhcnx8bD5yLmZhcilyZXR1cm47by5wdXNoKHtkaXN0YW5jZTpsLGRpc3RhbmNlVG9SYXk6TWF0aC5zcXJ0KHMpLHBvaW50Om4saW5kZXg6ZSxmYWNlOm51bGwsb2JqZWN0OmF9KX19dXRlLnByb3RvdHlwZS5pc1BvaW50cz0hMDtjbGFzcyBkdGUgZXh0ZW5kcyBONXR7Y29uc3RydWN0b3IodCxlLG4saSxyLG8sYSxzLGwpe3N1cGVyKHQsZSxuLGkscixvLGEscyxsKSx0aGlzLmZvcm1hdD12b2lkIDAhPT1hP2E6dzJ0LHRoaXMubWluRmlsdGVyPXZvaWQgMCE9PW8/bzpwMnQsdGhpcy5tYWdGaWx0ZXI9dm9pZCAwIT09cj9yOnAydCx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMTtjb25zdCBjPXRoaXM7InJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2siaW4gdCYmdC5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKChmdW5jdGlvbiBlKCl7Yy5uZWVkc1VwZGF0ZT0hMCx0LnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soZSl9KSl9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5pbWFnZSkuY29weSh0aGlzKX11cGRhdGUoKXtjb25zdCB0PXRoaXMuaW1hZ2U7ITE9PT0icmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayJpbiB0JiZ0LnJlYWR5U3RhdGU+PXQuSEFWRV9DVVJSRU5UX0RBVEEmJih0aGlzLm5lZWRzVXBkYXRlPSEwKX19ZHRlLnByb3RvdHlwZS5pc1ZpZGVvVGV4dHVyZT0hMDtjbGFzcyBwdGUgZXh0ZW5kcyBONXR7Y29uc3RydWN0b3IodCxlLG4saSxyLG8sYSxzLGwsYyx1LGgpe3N1cGVyKG51bGwsbyxhLHMsbCxjLGkscix1LGgpLHRoaXMuaW1hZ2U9e3dpZHRoOmUsaGVpZ2h0Om59LHRoaXMubWlwbWFwcz10LHRoaXMuZmxpcFk9ITEsdGhpcy5nZW5lcmF0ZU1pcG1hcHM9ITF9fXB0ZS5wcm90b3R5cGUuaXNDb21wcmVzc2VkVGV4dHVyZT0hMDtjbGFzcyBmdGUgZXh0ZW5kcyBONXR7Y29uc3RydWN0b3IodCxlLG4saSxyLG8sYSxzLGwpe3N1cGVyKHQsZSxuLGkscixvLGEscyxsKSx0aGlzLm5lZWRzVXBkYXRlPSEwfX1mdGUucHJvdG90eXBlLmlzQ2FudmFzVGV4dHVyZT0hMDtjbGFzcyBtdGUgZXh0ZW5kcyBONXR7Y29uc3RydWN0b3IodCxlLG4saSxyLG8sYSxzLGwsYyl7aWYoKGM9dm9pZCAwIT09Yz9jOk0ydCkhPT1NMnQmJmMhPT1FMnQpdGhyb3cgbmV3IEVycm9yKCJEZXB0aFRleHR1cmUgZm9ybWF0IG11c3QgYmUgZWl0aGVyIFRIUkVFLkRlcHRoRm9ybWF0IG9yIFRIUkVFLkRlcHRoU3RlbmNpbEZvcm1hdCIpO3ZvaWQgMD09PW4mJmM9PT1NMnQmJihuPV8ydCksdm9pZCAwPT09biYmYz09PUUydCYmKG49eDJ0KSxzdXBlcihudWxsLGkscixvLGEscyxjLG4sbCksdGhpcy5pbWFnZT17d2lkdGg6dCxoZWlnaHQ6ZX0sdGhpcy5tYWdGaWx0ZXI9dm9pZCAwIT09YT9hOnUydCx0aGlzLm1pbkZpbHRlcj12b2lkIDAhPT1zP3M6dTJ0LHRoaXMuZmxpcFk9ITEsdGhpcy5nZW5lcmF0ZU1pcG1hcHM9ITF9fW10ZS5wcm90b3R5cGUuaXNEZXB0aFRleHR1cmU9ITA7Y2xhc3MgZ3RlIGV4dGVuZHMgTjR0e2NvbnN0cnVjdG9yKHQ9MSxlPTgsbj0wLGk9MipNYXRoLlBJKXtzdXBlcigpLHRoaXMudHlwZT0iQ2lyY2xlR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17cmFkaXVzOnQsc2VnbWVudHM6ZSx0aGV0YVN0YXJ0Om4sdGhldGFMZW5ndGg6aX0sZT1NYXRoLm1heCgzLGUpO2NvbnN0IHI9W10sbz1bXSxhPVtdLHM9W10sbD1uZXcgSDV0LGM9bmV3IEM1dDtvLnB1c2goMCwwLDApLGEucHVzaCgwLDAsMSkscy5wdXNoKC41LC41KTtmb3IobGV0IHI9MCx1PTM7cjw9ZTtyKyssdSs9Myl7Y29uc3QgaD1uK3IvZSppO2wueD10Kk1hdGguY29zKGgpLGwueT10Kk1hdGguc2luKGgpLG8ucHVzaChsLngsbC55LGwueiksYS5wdXNoKDAsMCwxKSxjLng9KG9bdV0vdCsxKS8yLGMueT0ob1t1KzFdL3QrMSkvMixzLnB1c2goYy54LGMueSl9Zm9yKGxldCB0PTE7dDw9ZTt0Kyspci5wdXNoKHQsdCsxLDApO3RoaXMuc2V0SW5kZXgociksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgYjR0KG8sMykpLHRoaXMuc2V0QXR0cmlidXRlKCJub3JtYWwiLG5ldyBiNHQoYSwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoInV2IixuZXcgYjR0KHMsMikpfXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IGd0ZSh0LnJhZGl1cyx0LnNlZ21lbnRzLHQudGhldGFTdGFydCx0LnRoZXRhTGVuZ3RoKX19Y2xhc3MgX3RlIGV4dGVuZHMgTjR0e2NvbnN0cnVjdG9yKHQ9MSxlPTEsbj0xLGk9OCxyPTEsbz0hMSxhPTAscz0yKk1hdGguUEkpe3N1cGVyKCksdGhpcy50eXBlPSJDeWxpbmRlckdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3JhZGl1c1RvcDp0LHJhZGl1c0JvdHRvbTplLGhlaWdodDpuLHJhZGlhbFNlZ21lbnRzOmksaGVpZ2h0U2VnbWVudHM6cixvcGVuRW5kZWQ6byx0aGV0YVN0YXJ0OmEsdGhldGFMZW5ndGg6c307Y29uc3QgbD10aGlzO2k9TWF0aC5mbG9vcihpKSxyPU1hdGguZmxvb3Iocik7Y29uc3QgYz1bXSx1PVtdLGg9W10sZD1bXTtsZXQgcD0wO2NvbnN0IGY9W10sbT1uLzI7bGV0IGc9MDtmdW5jdGlvbiBfKG4pe2NvbnN0IHI9cCxvPW5ldyBDNXQsZj1uZXcgSDV0O2xldCBfPTA7Y29uc3QgeT0hMD09PW4/dDplLHY9ITA9PT1uPzE6LTE7Zm9yKGxldCB0PTE7dDw9aTt0KyspdS5wdXNoKDAsbSp2LDApLGgucHVzaCgwLHYsMCksZC5wdXNoKC41LC41KSxwKys7Y29uc3QgYj1wO2ZvcihsZXQgdD0wO3Q8PWk7dCsrKXtjb25zdCBlPXQvaSpzK2Esbj1NYXRoLmNvcyhlKSxyPU1hdGguc2luKGUpO2YueD15KnIsZi55PW0qdixmLno9eSpuLHUucHVzaChmLngsZi55LGYueiksaC5wdXNoKDAsdiwwKSxvLng9LjUqbisuNSxvLnk9LjUqcip2Ky41LGQucHVzaChvLngsby55KSxwKyt9Zm9yKGxldCB0PTA7dDxpO3QrKyl7Y29uc3QgZT1yK3QsaT1iK3Q7ITA9PT1uP2MucHVzaChpLGkrMSxlKTpjLnB1c2goaSsxLGksZSksXys9M31sLmFkZEdyb3VwKGcsXywhMD09PW4/MToyKSxnKz1ffSEoZnVuY3Rpb24geSgpe2NvbnN0IG89bmV3IEg1dCxfPW5ldyBINXQ7bGV0IHk9MDtjb25zdCB2PShlLXQpL247Zm9yKGxldCBsPTA7bDw9cjtsKyspe2NvbnN0IGM9W10sZz1sL3IseT1nKihlLXQpK3Q7Zm9yKGxldCB0PTA7dDw9aTt0Kyspe2NvbnN0IGU9dC9pLHI9ZSpzK2EsbD1NYXRoLnNpbihyKSxmPU1hdGguY29zKHIpO18ueD15KmwsXy55PS1nKm4rbSxfLno9eSpmLHUucHVzaChfLngsXy55LF8ueiksby5zZXQobCx2LGYpLm5vcm1hbGl6ZSgpLGgucHVzaChvLngsby55LG8ueiksZC5wdXNoKGUsMS1nKSxjLnB1c2gocCsrKX1mLnB1c2goYyl9Zm9yKGxldCB0PTA7dDxpO3QrKylmb3IobGV0IGU9MDtlPHI7ZSsrKXtjb25zdCBuPWZbZSsxXVt0XSxpPWZbZSsxXVt0KzFdLHI9ZltlXVt0KzFdO2MucHVzaChmW2VdW3RdLG4sciksYy5wdXNoKG4saSxyKSx5Kz02fWwuYWRkR3JvdXAoZyx5LDApLGcrPXl9KSgpLCExPT09byYmKHQ+MCYmXyghMCksZT4wJiZfKCExKSksdGhpcy5zZXRJbmRleChjKSx0aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBiNHQodSwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoIm5vcm1hbCIsbmV3IGI0dChoLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyBiNHQoZCwyKSl9c3RhdGljIGZyb21KU09OKHQpe3JldHVybiBuZXcgX3RlKHQucmFkaXVzVG9wLHQucmFkaXVzQm90dG9tLHQuaGVpZ2h0LHQucmFkaWFsU2VnbWVudHMsdC5oZWlnaHRTZWdtZW50cyx0Lm9wZW5FbmRlZCx0LnRoZXRhU3RhcnQsdC50aGV0YUxlbmd0aCl9fWNsYXNzIHl0ZSBleHRlbmRzIF90ZXtjb25zdHJ1Y3Rvcih0PTEsZT0xLG49OCxpPTEscj0hMSxvPTAsYT0yKk1hdGguUEkpe3N1cGVyKDAsdCxlLG4saSxyLG8sYSksdGhpcy50eXBlPSJDb25lR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17cmFkaXVzOnQsaGVpZ2h0OmUscmFkaWFsU2VnbWVudHM6bixoZWlnaHRTZWdtZW50czppLG9wZW5FbmRlZDpyLHRoZXRhU3RhcnQ6byx0aGV0YUxlbmd0aDphfX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyB5dGUodC5yYWRpdXMsdC5oZWlnaHQsdC5yYWRpYWxTZWdtZW50cyx0LmhlaWdodFNlZ21lbnRzLHQub3BlbkVuZGVkLHQudGhldGFTdGFydCx0LnRoZXRhTGVuZ3RoKX19Y2xhc3MgdnRlIGV4dGVuZHMgTjR0e2NvbnN0cnVjdG9yKHQsZSxuPTEsaT0wKXtzdXBlcigpLHRoaXMudHlwZT0iUG9seWhlZHJvbkdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3ZlcnRpY2VzOnQsaW5kaWNlczplLHJhZGl1czpuLGRldGFpbDppfTtjb25zdCByPVtdLG89W107ZnVuY3Rpb24gYSh0LGUsbixpKXtjb25zdCByPWkrMSxvPVtdO2ZvcihsZXQgaT0wO2k8PXI7aSsrKXtvW2ldPVtdO2NvbnN0IGE9dC5jbG9uZSgpLmxlcnAobixpL3IpLHM9ZS5jbG9uZSgpLmxlcnAobixpL3IpLGw9ci1pO2ZvcihsZXQgdD0wO3Q8PWw7dCsrKW9baV1bdF09MD09PXQmJmk9PT1yP2E6YS5jbG9uZSgpLmxlcnAocyx0L2wpfWZvcihsZXQgdD0wO3Q8cjt0KyspZm9yKGxldCBlPTA7ZTwyKihyLXQpLTE7ZSsrKXtjb25zdCBuPU1hdGguZmxvb3IoZS8yKTtlJTI9PTA/KHMob1t0XVtuKzFdKSxzKG9bdCsxXVtuXSkscyhvW3RdW25dKSk6KHMob1t0XVtuKzFdKSxzKG9bdCsxXVtuKzFdKSxzKG9bdCsxXVtuXSkpfX1mdW5jdGlvbiBzKHQpe3IucHVzaCh0LngsdC55LHQueil9ZnVuY3Rpb24gbChlLG4pe2NvbnN0IGk9MyplO24ueD10W2krMF0sbi55PXRbaSsxXSxuLno9dFtpKzJdfWZ1bmN0aW9uIGModCxlLG4saSl7aTwwJiYxPT09dC54JiYob1tlXT10LngtMSksMD09PW4ueCYmMD09PW4ueiYmKG9bZV09aS8yL01hdGguUEkrLjUpfWZ1bmN0aW9uIHUodCl7cmV0dXJuIE1hdGguYXRhbjIodC56LC10LngpfSEoZnVuY3Rpb24gaCh0KXtjb25zdCBuPW5ldyBINXQsaT1uZXcgSDV0LHI9bmV3IEg1dDtmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rPTMpbChlW28rMF0sbiksbChlW28rMV0saSksbChlW28rMl0sciksYShuLGkscix0KX0pKGkpLChmdW5jdGlvbiBkKHQpe2NvbnN0IGU9bmV3IEg1dDtmb3IobGV0IG49MDtuPHIubGVuZ3RoO24rPTMpZS54PXJbbiswXSxlLnk9cltuKzFdLGUuej1yW24rMl0sZS5ub3JtYWxpemUoKS5tdWx0aXBseVNjYWxhcih0KSxyW24rMF09ZS54LHJbbisxXT1lLnkscltuKzJdPWUuen0pKG4pLChmdW5jdGlvbiBwKCl7Y29uc3QgdD1uZXcgSDV0O2ZvcihsZXQgbj0wO248ci5sZW5ndGg7bis9Myl7dC54PXJbbiswXSx0Lnk9cltuKzFdLHQuej1yW24rMl07Y29uc3QgaT11KHQpLzIvTWF0aC5QSSsuNSxhPShlPXQsTWF0aC5hdGFuMigtZS55LE1hdGguc3FydChlLngqZS54K2UueiplLnopKS9NYXRoLlBJKy41KTtvLnB1c2goaSwxLWEpfXZhciBlOyhmdW5jdGlvbiBuKCl7Y29uc3QgdD1uZXcgSDV0LGU9bmV3IEg1dCxuPW5ldyBINXQsaT1uZXcgSDV0LGE9bmV3IEM1dCxzPW5ldyBDNXQsbD1uZXcgQzV0O2ZvcihsZXQgaD0wLGQ9MDtoPHIubGVuZ3RoO2grPTksZCs9Nil7dC5zZXQocltoKzBdLHJbaCsxXSxyW2grMl0pLGUuc2V0KHJbaCszXSxyW2grNF0scltoKzVdKSxuLnNldChyW2grNl0scltoKzddLHJbaCs4XSksYS5zZXQob1tkKzBdLG9bZCsxXSkscy5zZXQob1tkKzJdLG9bZCszXSksbC5zZXQob1tkKzRdLG9bZCs1XSksaS5jb3B5KHQpLmFkZChlKS5hZGQobikuZGl2aWRlU2NhbGFyKDMpO2NvbnN0IHA9dShpKTtjKGEsZCswLHQscCksYyhzLGQrMixlLHApLGMobCxkKzQsbixwKX19KSgpLChmdW5jdGlvbiBpKCl7Zm9yKGxldCB0PTA7dDxvLmxlbmd0aDt0Kz02KXtjb25zdCBlPW9bdCswXSxuPW9bdCsyXSxpPW9bdCs0XSxyPU1hdGgubWF4KGUsbixpKSxhPU1hdGgubWluKGUsbixpKTtyPi45JiZhPC4xJiYoZTwuMiYmKG9bdCswXSs9MSksbjwuMiYmKG9bdCsyXSs9MSksaTwuMiYmKG9bdCs0XSs9MSkpfX0pKCl9KSgpLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGI0dChyLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgYjR0KHIuc2xpY2UoKSwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoInV2IixuZXcgYjR0KG8sMikpLDA9PT1pP3RoaXMuY29tcHV0ZVZlcnRleE5vcm1hbHMoKTp0aGlzLm5vcm1hbGl6ZU5vcm1hbHMoKX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyB2dGUodC52ZXJ0aWNlcyx0LmluZGljZXMsdC5yYWRpdXMsdC5kZXRhaWxzKX19Y2xhc3MgYnRlIGV4dGVuZHMgdnRle2NvbnN0cnVjdG9yKHQ9MSxlPTApe2NvbnN0IG49KDErTWF0aC5zcXJ0KDUpKS8yLGk9MS9uO3N1cGVyKFstMSwtMSwtMSwtMSwtMSwxLC0xLDEsLTEsLTEsMSwxLDEsLTEsLTEsMSwtMSwxLDEsMSwtMSwxLDEsMSwwLC1pLC1uLDAsLWksbiwwLGksLW4sMCxpLG4sLWksLW4sMCwtaSxuLDAsaSwtbiwwLGksbiwwLC1uLDAsLWksbiwwLC1pLC1uLDAsaSxuLDAsaV0sWzMsMTEsNywzLDcsMTUsMywxNSwxMyw3LDE5LDE3LDcsMTcsNiw3LDYsMTUsMTcsNCw4LDE3LDgsMTAsMTcsMTAsNiw4LDAsMTYsOCwxNiwyLDgsMiwxMCwwLDEyLDEsMCwxLDE4LDAsMTgsMTYsNiwxMCwyLDYsMiwxMyw2LDEzLDE1LDIsMTYsMTgsMiwxOCwzLDIsMywxMywxOCwxLDksMTgsOSwxMSwxOCwxMSwzLDQsMTQsMTIsNCwxMiwwLDQsMCw4LDExLDksNSwxMSw1LDE5LDExLDE5LDcsMTksNSwxNCwxOSwxNCw0LDE5LDQsMTcsMSwxMiwxNCwxLDE0LDUsMSw1LDldLHQsZSksdGhpcy50eXBlPSJEb2RlY2FoZWRyb25HZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtyYWRpdXM6dCxkZXRhaWw6ZX19c3RhdGljIGZyb21KU09OKHQpe3JldHVybiBuZXcgYnRlKHQucmFkaXVzLHQuZGV0YWlsKX19Y29uc3QgeHRlPW5ldyBINXQsd3RlPW5ldyBINXQsU3RlPW5ldyBINXQsTXRlPW5ldyBKM3Q7Y2xhc3MgRXRlIGV4dGVuZHMgTjR0e2NvbnN0cnVjdG9yKHQsZSl7aWYoc3VwZXIoKSx0aGlzLnR5cGU9IkVkZ2VzR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17dGhyZXNob2xkQW5nbGU6ZX0sZT12b2lkIDAhPT1lP2U6MSwhMD09PXQuaXNHZW9tZXRyeSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5FZGdlc0dlb21ldHJ5IG5vIGxvbmdlciBzdXBwb3J0cyBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIik7Y29uc3Qgbj1NYXRoLmNvcyhyNXQqZSksaT10LmdldEluZGV4KCkscj10LmdldEF0dHJpYnV0ZSgicG9zaXRpb24iKSxvPWk/aS5jb3VudDpyLmNvdW50LGE9WzAsMCwwXSxzPVsiYSIsImIiLCJjIl0sbD1uZXcgQXJyYXkoMyksYz17fSx1PVtdO2ZvcihsZXQgdD0wO3Q8bzt0Kz0zKXtpPyhhWzBdPWkuZ2V0WCh0KSxhWzFdPWkuZ2V0WCh0KzEpLGFbMl09aS5nZXRYKHQrMikpOihhWzBdPXQsYVsxXT10KzEsYVsyXT10KzIpO2NvbnN0e2E6ZSxiOm8sYzpofT1NdGU7aWYoZS5mcm9tQnVmZmVyQXR0cmlidXRlKHIsYVswXSksby5mcm9tQnVmZmVyQXR0cmlidXRlKHIsYVsxXSksaC5mcm9tQnVmZmVyQXR0cmlidXRlKHIsYVsyXSksTXRlLmdldE5vcm1hbChTdGUpLGxbMF09YCR7ZS54fSwke2UueX0sJHtlLnp9YCxsWzFdPWAke28ueH0sJHtvLnl9LCR7by56fWAsbFsyXT1gJHtoLnh9LCR7aC55fSwke2guen1gLGxbMF0hPT1sWzFdJiZsWzFdIT09bFsyXSYmbFsyXSE9PWxbMF0pZm9yKGxldCB0PTA7dDwzO3QrKyl7Y29uc3QgZT0odCsxKSUzLGk9bFt0XSxyPWxbZV0sbz1NdGVbc1t0XV0saD1NdGVbc1tlXV0sZD1gJHtpfV8ke3J9YCxwPWAke3J9XyR7aX1gO3AgaW4gYyYmY1twXT8oU3RlLmRvdChjW3BdLm5vcm1hbCk8PW4mJih1LnB1c2goby54LG8ueSxvLnopLHUucHVzaChoLngsaC55LGgueikpLGNbcF09bnVsbCk6ZCBpbiBjfHwoY1tkXT17aW5kZXgwOmFbdF0saW5kZXgxOmFbZV0sbm9ybWFsOlN0ZS5jbG9uZSgpfSl9fWZvcihjb25zdCB0IGluIGMpaWYoY1t0XSl7Y29uc3R7aW5kZXgwOmUsaW5kZXgxOm59PWNbdF07eHRlLmZyb21CdWZmZXJBdHRyaWJ1dGUocixlKSx3dGUuZnJvbUJ1ZmZlckF0dHJpYnV0ZShyLG4pLHUucHVzaCh4dGUueCx4dGUueSx4dGUueiksdS5wdXNoKHd0ZS54LHd0ZS55LHd0ZS56KX10aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBiNHQodSwzKSl9fWNsYXNzIFR0ZXtjb25zdHJ1Y3Rvcigpe3RoaXMudHlwZT0iQ3VydmUiLHRoaXMuYXJjTGVuZ3RoRGl2aXNpb25zPTIwMH1nZXRQb2ludCgpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkN1cnZlOiAuZ2V0UG9pbnQoKSBub3QgaW1wbGVtZW50ZWQuIiksbnVsbH1nZXRQb2ludEF0KHQsZSl7Y29uc3Qgbj10aGlzLmdldFV0b1RtYXBwaW5nKHQpO3JldHVybiB0aGlzLmdldFBvaW50KG4sZSl9Z2V0UG9pbnRzKHQ9NSl7Y29uc3QgZT1bXTtmb3IobGV0IG49MDtuPD10O24rKyllLnB1c2godGhpcy5nZXRQb2ludChuL3QpKTtyZXR1cm4gZX1nZXRTcGFjZWRQb2ludHModD01KXtjb25zdCBlPVtdO2ZvcihsZXQgbj0wO248PXQ7bisrKWUucHVzaCh0aGlzLmdldFBvaW50QXQobi90KSk7cmV0dXJuIGV9Z2V0TGVuZ3RoKCl7Y29uc3QgdD10aGlzLmdldExlbmd0aHMoKTtyZXR1cm4gdFt0Lmxlbmd0aC0xXX1nZXRMZW5ndGhzKHQ9dGhpcy5hcmNMZW5ndGhEaXZpc2lvbnMpe2lmKHRoaXMuY2FjaGVBcmNMZW5ndGhzJiZ0aGlzLmNhY2hlQXJjTGVuZ3Rocy5sZW5ndGg9PT10KzEmJiF0aGlzLm5lZWRzVXBkYXRlKXJldHVybiB0aGlzLmNhY2hlQXJjTGVuZ3Roczt0aGlzLm5lZWRzVXBkYXRlPSExO2NvbnN0IGU9W107bGV0IG4saT10aGlzLmdldFBvaW50KDApLHI9MDtlLnB1c2goMCk7Zm9yKGxldCBvPTE7bzw9dDtvKyspbj10aGlzLmdldFBvaW50KG8vdCkscis9bi5kaXN0YW5jZVRvKGkpLGUucHVzaChyKSxpPW47cmV0dXJuIHRoaXMuY2FjaGVBcmNMZW5ndGhzPWUsZX11cGRhdGVBcmNMZW5ndGhzKCl7dGhpcy5uZWVkc1VwZGF0ZT0hMCx0aGlzLmdldExlbmd0aHMoKX1nZXRVdG9UbWFwcGluZyh0LGUpe2NvbnN0IG49dGhpcy5nZXRMZW5ndGhzKCk7bGV0IGk9MDtjb25zdCByPW4ubGVuZ3RoO2xldCBvO289ZXx8dCpuW3ItMV07bGV0IGEscz0wLGw9ci0xO2Zvcig7czw9bDspaWYoaT1NYXRoLmZsb29yKHMrKGwtcykvMiksYT1uW2ldLW8sYTwwKXM9aSsxO2Vsc2V7aWYoIShhPjApKXtsPWk7YnJlYWt9bD1pLTF9aWYoaT1sLG5baV09PT1vKXJldHVybiBpLyhyLTEpO2NvbnN0IGM9bltpXTtyZXR1cm4oaSsoby1jKS8obltpKzFdLWMpKS8oci0xKX1nZXRUYW5nZW50KHQsZSl7Y29uc3Qgbj0xZS00O2xldCBpPXQtbixyPXQrbjtpPDAmJihpPTApLHI+MSYmKHI9MSk7Y29uc3Qgbz10aGlzLmdldFBvaW50KGkpLGE9dGhpcy5nZXRQb2ludChyKSxzPWV8fChvLmlzVmVjdG9yMj9uZXcgQzV0Om5ldyBINXQpO3JldHVybiBzLmNvcHkoYSkuc3ViKG8pLm5vcm1hbGl6ZSgpLHN9Z2V0VGFuZ2VudEF0KHQsZSl7Y29uc3Qgbj10aGlzLmdldFV0b1RtYXBwaW5nKHQpO3JldHVybiB0aGlzLmdldFRhbmdlbnQobixlKX1jb21wdXRlRnJlbmV0RnJhbWVzKHQsZSl7Y29uc3Qgbj1uZXcgSDV0LGk9W10scj1bXSxvPVtdLGE9bmV3IEg1dCxzPW5ldyBnM3Q7Zm9yKGxldCBlPTA7ZTw9dDtlKyspe2lbZV09dGhpcy5nZXRUYW5nZW50QXQoZS90LG5ldyBINXQpLGlbZV0ubm9ybWFsaXplKCl9clswXT1uZXcgSDV0LG9bMF09bmV3IEg1dDtsZXQgbD1OdW1iZXIuTUFYX1ZBTFVFO2NvbnN0IGM9TWF0aC5hYnMoaVswXS54KSx1PU1hdGguYWJzKGlbMF0ueSksaD1NYXRoLmFicyhpWzBdLnopO2M8PWwmJihsPWMsbi5zZXQoMSwwLDApKSx1PD1sJiYobD11LG4uc2V0KDAsMSwwKSksaDw9bCYmbi5zZXQoMCwwLDEpLGEuY3Jvc3NWZWN0b3JzKGlbMF0sbikubm9ybWFsaXplKCksclswXS5jcm9zc1ZlY3RvcnMoaVswXSxhKSxvWzBdLmNyb3NzVmVjdG9ycyhpWzBdLHJbMF0pO2ZvcihsZXQgZT0xO2U8PXQ7ZSsrKXtpZihyW2VdPXJbZS0xXS5jbG9uZSgpLG9bZV09b1tlLTFdLmNsb25lKCksYS5jcm9zc1ZlY3RvcnMoaVtlLTFdLGlbZV0pLGEubGVuZ3RoKCk+TnVtYmVyLkVQU0lMT04pe2Eubm9ybWFsaXplKCk7Y29uc3QgdD1NYXRoLmFjb3MoczV0KGlbZS0xXS5kb3QoaVtlXSksLTEsMSkpO3JbZV0uYXBwbHlNYXRyaXg0KHMubWFrZVJvdGF0aW9uQXhpcyhhLHQpKX1vW2VdLmNyb3NzVmVjdG9ycyhpW2VdLHJbZV0pfWlmKCEwPT09ZSl7bGV0IGU9TWF0aC5hY29zKHM1dChyWzBdLmRvdChyW3RdKSwtMSwxKSk7ZS89dCxpWzBdLmRvdChhLmNyb3NzVmVjdG9ycyhyWzBdLHJbdF0pKT4wJiYoZT0tZSk7Zm9yKGxldCBuPTE7bjw9dDtuKyspcltuXS5hcHBseU1hdHJpeDQocy5tYWtlUm90YXRpb25BeGlzKGlbbl0sZSpuKSksb1tuXS5jcm9zc1ZlY3RvcnMoaVtuXSxyW25dKX1yZXR1cm57dGFuZ2VudHM6aSxub3JtYWxzOnIsYmlub3JtYWxzOm99fWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfWNvcHkodCl7cmV0dXJuIHRoaXMuYXJjTGVuZ3RoRGl2aXNpb25zPXQuYXJjTGVuZ3RoRGl2aXNpb25zLHRoaXN9dG9KU09OKCl7Y29uc3QgdD17bWV0YWRhdGE6e3ZlcnNpb246NC41LHR5cGU6IkN1cnZlIixnZW5lcmF0b3I6IkN1cnZlLnRvSlNPTiJ9fTtyZXR1cm4gdC5hcmNMZW5ndGhEaXZpc2lvbnM9dGhpcy5hcmNMZW5ndGhEaXZpc2lvbnMsdC50eXBlPXRoaXMudHlwZSx0fWZyb21KU09OKHQpe3JldHVybiB0aGlzLmFyY0xlbmd0aERpdmlzaW9ucz10LmFyY0xlbmd0aERpdmlzaW9ucyx0aGlzfX1jbGFzcyBDdGUgZXh0ZW5kcyBUdGV7Y29uc3RydWN0b3IodD0wLGU9MCxuPTEsaT0xLHI9MCxvPTIqTWF0aC5QSSxhPSExLHM9MCl7c3VwZXIoKSx0aGlzLnR5cGU9IkVsbGlwc2VDdXJ2ZSIsdGhpcy5hWD10LHRoaXMuYVk9ZSx0aGlzLnhSYWRpdXM9bix0aGlzLnlSYWRpdXM9aSx0aGlzLmFTdGFydEFuZ2xlPXIsdGhpcy5hRW5kQW5nbGU9byx0aGlzLmFDbG9ja3dpc2U9YSx0aGlzLmFSb3RhdGlvbj1zfWdldFBvaW50KHQsZSl7Y29uc3Qgbj1lfHxuZXcgQzV0LGk9MipNYXRoLlBJO2xldCByPXRoaXMuYUVuZEFuZ2xlLXRoaXMuYVN0YXJ0QW5nbGU7Y29uc3Qgbz1NYXRoLmFicyhyKTxOdW1iZXIuRVBTSUxPTjtmb3IoO3I8MDspcis9aTtmb3IoO3I+aTspci09aTtyPE51bWJlci5FUFNJTE9OJiYocj1vPzA6aSksITAhPT10aGlzLmFDbG9ja3dpc2V8fG98fChyPT09aT9yPS1pOnItPWkpO2NvbnN0IGE9dGhpcy5hU3RhcnRBbmdsZSt0KnI7bGV0IHM9dGhpcy5hWCt0aGlzLnhSYWRpdXMqTWF0aC5jb3MoYSksbD10aGlzLmFZK3RoaXMueVJhZGl1cypNYXRoLnNpbihhKTtpZigwIT09dGhpcy5hUm90YXRpb24pe2NvbnN0IHQ9TWF0aC5jb3ModGhpcy5hUm90YXRpb24pLGU9TWF0aC5zaW4odGhpcy5hUm90YXRpb24pLG49cy10aGlzLmFYLGk9bC10aGlzLmFZO3M9bip0LWkqZSt0aGlzLmFYLGw9biplK2kqdCt0aGlzLmFZfXJldHVybiBuLnNldChzLGwpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5hWD10LmFYLHRoaXMuYVk9dC5hWSx0aGlzLnhSYWRpdXM9dC54UmFkaXVzLHRoaXMueVJhZGl1cz10LnlSYWRpdXMsdGhpcy5hU3RhcnRBbmdsZT10LmFTdGFydEFuZ2xlLHRoaXMuYUVuZEFuZ2xlPXQuYUVuZEFuZ2xlLHRoaXMuYUNsb2Nrd2lzZT10LmFDbG9ja3dpc2UsdGhpcy5hUm90YXRpb249dC5hUm90YXRpb24sdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LmFYPXRoaXMuYVgsdC5hWT10aGlzLmFZLHQueFJhZGl1cz10aGlzLnhSYWRpdXMsdC55UmFkaXVzPXRoaXMueVJhZGl1cyx0LmFTdGFydEFuZ2xlPXRoaXMuYVN0YXJ0QW5nbGUsdC5hRW5kQW5nbGU9dGhpcy5hRW5kQW5nbGUsdC5hQ2xvY2t3aXNlPXRoaXMuYUNsb2Nrd2lzZSx0LmFSb3RhdGlvbj10aGlzLmFSb3RhdGlvbix0fWZyb21KU09OKHQpe3JldHVybiBzdXBlci5mcm9tSlNPTih0KSx0aGlzLmFYPXQuYVgsdGhpcy5hWT10LmFZLHRoaXMueFJhZGl1cz10LnhSYWRpdXMsdGhpcy55UmFkaXVzPXQueVJhZGl1cyx0aGlzLmFTdGFydEFuZ2xlPXQuYVN0YXJ0QW5nbGUsdGhpcy5hRW5kQW5nbGU9dC5hRW5kQW5nbGUsdGhpcy5hQ2xvY2t3aXNlPXQuYUNsb2Nrd2lzZSx0aGlzLmFSb3RhdGlvbj10LmFSb3RhdGlvbix0aGlzfX1DdGUucHJvdG90eXBlLmlzRWxsaXBzZUN1cnZlPSEwO2NsYXNzIEF0ZSBleHRlbmRzIEN0ZXtjb25zdHJ1Y3Rvcih0LGUsbixpLHIsbyl7c3VwZXIodCxlLG4sbixpLHIsbyksdGhpcy50eXBlPSJBcmNDdXJ2ZSJ9fWZ1bmN0aW9uIGt0ZSgpe2xldCB0PTAsZT0wLG49MCxpPTA7ZnVuY3Rpb24gcihyLG8sYSxzKXt0PXIsZT1hLG49LTMqciszKm8tMiphLXMsaT0yKnItMipvK2Erc31yZXR1cm57aW5pdENhdG11bGxSb206ZnVuY3Rpb24odCxlLG4saSxvKXtyKGUsbixvKihuLXQpLG8qKGktZSkpfSxpbml0Tm9udW5pZm9ybUNhdG11bGxSb206ZnVuY3Rpb24odCxlLG4saSxvLGEscyl7bGV0IGw9KGUtdCkvby0obi10KS8obythKSsobi1lKS9hLGM9KG4tZSkvYS0oaS1lKS8oYStzKSsoaS1uKS9zO2wqPWEsYyo9YSxyKGUsbixsLGMpfSxjYWxjOmZ1bmN0aW9uKHIpe2NvbnN0IG89cipyO3JldHVybiB0K2UqcituKm8raSoobypyKX19fUF0ZS5wcm90b3R5cGUuaXNBcmNDdXJ2ZT0hMDtjb25zdCBMdGU9bmV3IEg1dCxQdGU9bmV3IGt0ZSxOdGU9bmV3IGt0ZSxJdGU9bmV3IGt0ZTtjbGFzcyBSdGUgZXh0ZW5kcyBUdGV7Y29uc3RydWN0b3IodD1bXSxlPSExLG49ImNlbnRyaXBldGFsIixpPS41KXtzdXBlcigpLHRoaXMudHlwZT0iQ2F0bXVsbFJvbUN1cnZlMyIsdGhpcy5wb2ludHM9dCx0aGlzLmNsb3NlZD1lLHRoaXMuY3VydmVUeXBlPW4sdGhpcy50ZW5zaW9uPWl9Z2V0UG9pbnQodCxlPW5ldyBINXQpe2NvbnN0IG49ZSxpPXRoaXMucG9pbnRzLHI9aS5sZW5ndGgsbz0oci0odGhpcy5jbG9zZWQ/MDoxKSkqdDtsZXQgYSxzLGw9TWF0aC5mbG9vcihvKSxjPW8tbDt0aGlzLmNsb3NlZD9sKz1sPjA/MDooTWF0aC5mbG9vcihNYXRoLmFicyhsKS9yKSsxKSpyOjA9PT1jJiZsPT09ci0xJiYobD1yLTIsYz0xKSx0aGlzLmNsb3NlZHx8bD4wP2E9aVsobC0xKSVyXTooTHRlLnN1YlZlY3RvcnMoaVswXSxpWzFdKS5hZGQoaVswXSksYT1MdGUpO2NvbnN0IHU9aVtsJXJdLGg9aVsobCsxKSVyXTtpZih0aGlzLmNsb3NlZHx8bCsyPHI/cz1pWyhsKzIpJXJdOihMdGUuc3ViVmVjdG9ycyhpW3ItMV0saVtyLTJdKS5hZGQoaVtyLTFdKSxzPUx0ZSksImNlbnRyaXBldGFsIj09PXRoaXMuY3VydmVUeXBlfHwiY2hvcmRhbCI9PT10aGlzLmN1cnZlVHlwZSl7Y29uc3QgdD0iY2hvcmRhbCI9PT10aGlzLmN1cnZlVHlwZT8uNTouMjU7bGV0IGU9TWF0aC5wb3coYS5kaXN0YW5jZVRvU3F1YXJlZCh1KSx0KSxuPU1hdGgucG93KHUuZGlzdGFuY2VUb1NxdWFyZWQoaCksdCksaT1NYXRoLnBvdyhoLmRpc3RhbmNlVG9TcXVhcmVkKHMpLHQpO248MWUtNCYmKG49MSksZTwxZS00JiYoZT1uKSxpPDFlLTQmJihpPW4pLFB0ZS5pbml0Tm9udW5pZm9ybUNhdG11bGxSb20oYS54LHUueCxoLngscy54LGUsbixpKSxOdGUuaW5pdE5vbnVuaWZvcm1DYXRtdWxsUm9tKGEueSx1LnksaC55LHMueSxlLG4saSksSXRlLmluaXROb251bmlmb3JtQ2F0bXVsbFJvbShhLnosdS56LGgueixzLnosZSxuLGkpfWVsc2UiY2F0bXVsbHJvbSI9PT10aGlzLmN1cnZlVHlwZSYmKFB0ZS5pbml0Q2F0bXVsbFJvbShhLngsdS54LGgueCxzLngsdGhpcy50ZW5zaW9uKSxOdGUuaW5pdENhdG11bGxSb20oYS55LHUueSxoLnkscy55LHRoaXMudGVuc2lvbiksSXRlLmluaXRDYXRtdWxsUm9tKGEueix1LnosaC56LHMueix0aGlzLnRlbnNpb24pKTtyZXR1cm4gbi5zZXQoUHRlLmNhbGMoYyksTnRlLmNhbGMoYyksSXRlLmNhbGMoYykpLG59Y29weSh0KXtzdXBlci5jb3B5KHQpLHRoaXMucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dC5wb2ludHMubGVuZ3RoO2U8bjtlKyspe3RoaXMucG9pbnRzLnB1c2godC5wb2ludHNbZV0uY2xvbmUoKSl9cmV0dXJuIHRoaXMuY2xvc2VkPXQuY2xvc2VkLHRoaXMuY3VydmVUeXBlPXQuY3VydmVUeXBlLHRoaXMudGVuc2lvbj10LnRlbnNpb24sdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3QucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dGhpcy5wb2ludHMubGVuZ3RoO2U8bjtlKyspe3QucG9pbnRzLnB1c2godGhpcy5wb2ludHNbZV0udG9BcnJheSgpKX1yZXR1cm4gdC5jbG9zZWQ9dGhpcy5jbG9zZWQsdC5jdXJ2ZVR5cGU9dGhpcy5jdXJ2ZVR5cGUsdC50ZW5zaW9uPXRoaXMudGVuc2lvbix0fWZyb21KU09OKHQpe3N1cGVyLmZyb21KU09OKHQpLHRoaXMucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dC5wb2ludHMubGVuZ3RoO2U8bjtlKyspe2NvbnN0IG49dC5wb2ludHNbZV07dGhpcy5wb2ludHMucHVzaCgobmV3IEg1dCkuZnJvbUFycmF5KG4pKX1yZXR1cm4gdGhpcy5jbG9zZWQ9dC5jbG9zZWQsdGhpcy5jdXJ2ZVR5cGU9dC5jdXJ2ZVR5cGUsdGhpcy50ZW5zaW9uPXQudGVuc2lvbix0aGlzfX1mdW5jdGlvbiBPdGUodCxlLG4saSxyKXtjb25zdCBvPS41KihpLWUpLGE9LjUqKHItbikscz10KnQ7cmV0dXJuKDIqbi0yKmkrbythKSoodCpzKSsoLTMqbiszKmktMipvLWEpKnMrbyp0K259ZnVuY3Rpb24genRlKHQsZSxuLGkpe3JldHVybihmdW5jdGlvbiByKHQsZSl7Y29uc3Qgbj0xLXQ7cmV0dXJuIG4qbiplfSkodCxlKSsoZnVuY3Rpb24gbyh0LGUpe3JldHVybiAyKigxLXQpKnQqZX0pKHQsbikrKGZ1bmN0aW9uIGEodCxlKXtyZXR1cm4gdCp0KmV9KSh0LGkpfWZ1bmN0aW9uIER0ZSh0LGUsbixpLHIpe3JldHVybihmdW5jdGlvbiBvKHQsZSl7Y29uc3Qgbj0xLXQ7cmV0dXJuIG4qbipuKmV9KSh0LGUpKyhmdW5jdGlvbiBhKHQsZSl7Y29uc3Qgbj0xLXQ7cmV0dXJuIDMqbipuKnQqZX0pKHQsbikrKGZ1bmN0aW9uIHModCxlKXtyZXR1cm4gMyooMS10KSp0KnQqZX0pKHQsaSkrKGZ1bmN0aW9uIGwodCxlKXtyZXR1cm4gdCp0KnQqZX0pKHQscil9UnRlLnByb3RvdHlwZS5pc0NhdG11bGxSb21DdXJ2ZTM9ITA7Y2xhc3MgQnRlIGV4dGVuZHMgVHRle2NvbnN0cnVjdG9yKHQ9bmV3IEM1dCxlPW5ldyBDNXQsbj1uZXcgQzV0LGk9bmV3IEM1dCl7c3VwZXIoKSx0aGlzLnR5cGU9IkN1YmljQmV6aWVyQ3VydmUiLHRoaXMudjA9dCx0aGlzLnYxPWUsdGhpcy52Mj1uLHRoaXMudjM9aX1nZXRQb2ludCh0LGU9bmV3IEM1dCl7Y29uc3Qgbj1lLGk9dGhpcy52MCxyPXRoaXMudjEsbz10aGlzLnYyLGE9dGhpcy52MztyZXR1cm4gbi5zZXQoRHRlKHQsaS54LHIueCxvLngsYS54KSxEdGUodCxpLnksci55LG8ueSxhLnkpKSxufWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy52MC5jb3B5KHQudjApLHRoaXMudjEuY29weSh0LnYxKSx0aGlzLnYyLmNvcHkodC52MiksdGhpcy52My5jb3B5KHQudjMpLHRoaXN9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC52MD10aGlzLnYwLnRvQXJyYXkoKSx0LnYxPXRoaXMudjEudG9BcnJheSgpLHQudjI9dGhpcy52Mi50b0FycmF5KCksdC52Mz10aGlzLnYzLnRvQXJyYXkoKSx0fWZyb21KU09OKHQpe3JldHVybiBzdXBlci5mcm9tSlNPTih0KSx0aGlzLnYwLmZyb21BcnJheSh0LnYwKSx0aGlzLnYxLmZyb21BcnJheSh0LnYxKSx0aGlzLnYyLmZyb21BcnJheSh0LnYyKSx0aGlzLnYzLmZyb21BcnJheSh0LnYzKSx0aGlzfX1CdGUucHJvdG90eXBlLmlzQ3ViaWNCZXppZXJDdXJ2ZT0hMDtjbGFzcyBIdGUgZXh0ZW5kcyBUdGV7Y29uc3RydWN0b3IodD1uZXcgSDV0LGU9bmV3IEg1dCxuPW5ldyBINXQsaT1uZXcgSDV0KXtzdXBlcigpLHRoaXMudHlwZT0iQ3ViaWNCZXppZXJDdXJ2ZTMiLHRoaXMudjA9dCx0aGlzLnYxPWUsdGhpcy52Mj1uLHRoaXMudjM9aX1nZXRQb2ludCh0LGU9bmV3IEg1dCl7Y29uc3Qgbj1lLGk9dGhpcy52MCxyPXRoaXMudjEsbz10aGlzLnYyLGE9dGhpcy52MztyZXR1cm4gbi5zZXQoRHRlKHQsaS54LHIueCxvLngsYS54KSxEdGUodCxpLnksci55LG8ueSxhLnkpLER0ZSh0LGkueixyLnosby56LGEueikpLG59Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnYwLmNvcHkodC52MCksdGhpcy52MS5jb3B5KHQudjEpLHRoaXMudjIuY29weSh0LnYyKSx0aGlzLnYzLmNvcHkodC52MyksdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LnYwPXRoaXMudjAudG9BcnJheSgpLHQudjE9dGhpcy52MS50b0FycmF5KCksdC52Mj10aGlzLnYyLnRvQXJyYXkoKSx0LnYzPXRoaXMudjMudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjAuZnJvbUFycmF5KHQudjApLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXMudjMuZnJvbUFycmF5KHQudjMpLHRoaXN9fUh0ZS5wcm90b3R5cGUuaXNDdWJpY0JlemllckN1cnZlMz0hMDtjbGFzcyBGdGUgZXh0ZW5kcyBUdGV7Y29uc3RydWN0b3IodD1uZXcgQzV0LGU9bmV3IEM1dCl7c3VwZXIoKSx0aGlzLnR5cGU9IkxpbmVDdXJ2ZSIsdGhpcy52MT10LHRoaXMudjI9ZX1nZXRQb2ludCh0LGU9bmV3IEM1dCl7Y29uc3Qgbj1lO3JldHVybiAxPT09dD9uLmNvcHkodGhpcy52Mik6KG4uY29weSh0aGlzLnYyKS5zdWIodGhpcy52MSksbi5tdWx0aXBseVNjYWxhcih0KS5hZGQodGhpcy52MSkpLG59Z2V0UG9pbnRBdCh0LGUpe3JldHVybiB0aGlzLmdldFBvaW50KHQsZSl9Z2V0VGFuZ2VudCh0LGUpe2NvbnN0IG49ZXx8bmV3IEM1dDtyZXR1cm4gbi5jb3B5KHRoaXMudjIpLnN1Yih0aGlzLnYxKS5ub3JtYWxpemUoKSxufWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy52MS5jb3B5KHQudjEpLHRoaXMudjIuY29weSh0LnYyKSx0aGlzfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQudjE9dGhpcy52MS50b0FycmF5KCksdC52Mj10aGlzLnYyLnRvQXJyYXkoKSx0fWZyb21KU09OKHQpe3JldHVybiBzdXBlci5mcm9tSlNPTih0KSx0aGlzLnYxLmZyb21BcnJheSh0LnYxKSx0aGlzLnYyLmZyb21BcnJheSh0LnYyKSx0aGlzfX1GdGUucHJvdG90eXBlLmlzTGluZUN1cnZlPSEwO2NsYXNzIFZ0ZSBleHRlbmRzIFR0ZXtjb25zdHJ1Y3Rvcih0PW5ldyBINXQsZT1uZXcgSDV0KXtzdXBlcigpLHRoaXMudHlwZT0iTGluZUN1cnZlMyIsdGhpcy5pc0xpbmVDdXJ2ZTM9ITAsdGhpcy52MT10LHRoaXMudjI9ZX1nZXRQb2ludCh0LGU9bmV3IEg1dCl7Y29uc3Qgbj1lO3JldHVybiAxPT09dD9uLmNvcHkodGhpcy52Mik6KG4uY29weSh0aGlzLnYyKS5zdWIodGhpcy52MSksbi5tdWx0aXBseVNjYWxhcih0KS5hZGQodGhpcy52MSkpLG59Z2V0UG9pbnRBdCh0LGUpe3JldHVybiB0aGlzLmdldFBvaW50KHQsZSl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnYxLmNvcHkodC52MSksdGhpcy52Mi5jb3B5KHQudjIpLHRoaXN9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXN9fWNsYXNzIFV0ZSBleHRlbmRzIFR0ZXtjb25zdHJ1Y3Rvcih0PW5ldyBDNXQsZT1uZXcgQzV0LG49bmV3IEM1dCl7c3VwZXIoKSx0aGlzLnR5cGU9IlF1YWRyYXRpY0JlemllckN1cnZlIix0aGlzLnYwPXQsdGhpcy52MT1lLHRoaXMudjI9bn1nZXRQb2ludCh0LGU9bmV3IEM1dCl7Y29uc3Qgbj1lLGk9dGhpcy52MCxyPXRoaXMudjEsbz10aGlzLnYyO3JldHVybiBuLnNldCh6dGUodCxpLngsci54LG8ueCksenRlKHQsaS55LHIueSxvLnkpKSxufWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy52MC5jb3B5KHQudjApLHRoaXMudjEuY29weSh0LnYxKSx0aGlzLnYyLmNvcHkodC52MiksdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LnYwPXRoaXMudjAudG9BcnJheSgpLHQudjE9dGhpcy52MS50b0FycmF5KCksdC52Mj10aGlzLnYyLnRvQXJyYXkoKSx0fWZyb21KU09OKHQpe3JldHVybiBzdXBlci5mcm9tSlNPTih0KSx0aGlzLnYwLmZyb21BcnJheSh0LnYwKSx0aGlzLnYxLmZyb21BcnJheSh0LnYxKSx0aGlzLnYyLmZyb21BcnJheSh0LnYyKSx0aGlzfX1VdGUucHJvdG90eXBlLmlzUXVhZHJhdGljQmV6aWVyQ3VydmU9ITA7Y2xhc3MganRlIGV4dGVuZHMgVHRle2NvbnN0cnVjdG9yKHQ9bmV3IEg1dCxlPW5ldyBINXQsbj1uZXcgSDV0KXtzdXBlcigpLHRoaXMudHlwZT0iUXVhZHJhdGljQmV6aWVyQ3VydmUzIix0aGlzLnYwPXQsdGhpcy52MT1lLHRoaXMudjI9bn1nZXRQb2ludCh0LGU9bmV3IEg1dCl7Y29uc3Qgbj1lLGk9dGhpcy52MCxyPXRoaXMudjEsbz10aGlzLnYyO3JldHVybiBuLnNldCh6dGUodCxpLngsci54LG8ueCksenRlKHQsaS55LHIueSxvLnkpLHp0ZSh0LGkueixyLnosby56KSksbn1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMudjAuY29weSh0LnYwKSx0aGlzLnYxLmNvcHkodC52MSksdGhpcy52Mi5jb3B5KHQudjIpLHRoaXN9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC52MD10aGlzLnYwLnRvQXJyYXkoKSx0LnYxPXRoaXMudjEudG9BcnJheSgpLHQudjI9dGhpcy52Mi50b0FycmF5KCksdH1mcm9tSlNPTih0KXtyZXR1cm4gc3VwZXIuZnJvbUpTT04odCksdGhpcy52MC5mcm9tQXJyYXkodC52MCksdGhpcy52MS5mcm9tQXJyYXkodC52MSksdGhpcy52Mi5mcm9tQXJyYXkodC52MiksdGhpc319anRlLnByb3RvdHlwZS5pc1F1YWRyYXRpY0JlemllckN1cnZlMz0hMDtjbGFzcyBHdGUgZXh0ZW5kcyBUdGV7Y29uc3RydWN0b3IodD1bXSl7c3VwZXIoKSx0aGlzLnR5cGU9IlNwbGluZUN1cnZlIix0aGlzLnBvaW50cz10fWdldFBvaW50KHQsZT1uZXcgQzV0KXtjb25zdCBuPWUsaT10aGlzLnBvaW50cyxyPShpLmxlbmd0aC0xKSp0LG89TWF0aC5mbG9vcihyKSxhPXItbyxzPWlbMD09PW8/bzpvLTFdLGw9aVtvXSxjPWlbbz5pLmxlbmd0aC0yP2kubGVuZ3RoLTE6bysxXSx1PWlbbz5pLmxlbmd0aC0zP2kubGVuZ3RoLTE6bysyXTtyZXR1cm4gbi5zZXQoT3RlKGEscy54LGwueCxjLngsdS54KSxPdGUoYSxzLnksbC55LGMueSx1LnkpKSxufWNvcHkodCl7c3VwZXIuY29weSh0KSx0aGlzLnBvaW50cz1bXTtmb3IobGV0IGU9MCxuPXQucG9pbnRzLmxlbmd0aDtlPG47ZSsrKXt0aGlzLnBvaW50cy5wdXNoKHQucG9pbnRzW2VdLmNsb25lKCkpfXJldHVybiB0aGlzfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKCk7dC5wb2ludHM9W107Zm9yKGxldCBlPTAsbj10aGlzLnBvaW50cy5sZW5ndGg7ZTxuO2UrKyl7dC5wb2ludHMucHVzaCh0aGlzLnBvaW50c1tlXS50b0FycmF5KCkpfXJldHVybiB0fWZyb21KU09OKHQpe3N1cGVyLmZyb21KU09OKHQpLHRoaXMucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dC5wb2ludHMubGVuZ3RoO2U8bjtlKyspe2NvbnN0IG49dC5wb2ludHNbZV07dGhpcy5wb2ludHMucHVzaCgobmV3IEM1dCkuZnJvbUFycmF5KG4pKX1yZXR1cm4gdGhpc319R3RlLnByb3RvdHlwZS5pc1NwbGluZUN1cnZlPSEwO3ZhciBXdGU9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsQXJjQ3VydmU6QXRlLENhdG11bGxSb21DdXJ2ZTM6UnRlLEN1YmljQmV6aWVyQ3VydmU6QnRlLEN1YmljQmV6aWVyQ3VydmUzOkh0ZSxFbGxpcHNlQ3VydmU6Q3RlLExpbmVDdXJ2ZTpGdGUsTGluZUN1cnZlMzpWdGUsUXVhZHJhdGljQmV6aWVyQ3VydmU6VXRlLFF1YWRyYXRpY0JlemllckN1cnZlMzpqdGUsU3BsaW5lQ3VydmU6R3RlfSk7Y29uc3QgcXRlPWZ1bmN0aW9uKHQsZSxuPTIpe2NvbnN0IGk9ZSYmZS5sZW5ndGgscj1pP2VbMF0qbjp0Lmxlbmd0aDtsZXQgbz1ZdGUodCwwLHIsbiwhMCk7Y29uc3QgYT1bXTtpZighb3x8by5uZXh0PT09by5wcmV2KXJldHVybiBhO2xldCBzLGwsYyx1LGgsZCxwO2lmKGkmJihvPShmdW5jdGlvbiBmKHQsZSxuLGkpe2NvbnN0IHI9W107bGV0IG8sYSxzLGwsYztmb3Iobz0wLGE9ZS5sZW5ndGg7bzxhO28rKylzPWVbb10qaSxsPW88YS0xP2VbbysxXSppOnQubGVuZ3RoLGM9WXRlKHQscyxsLGksITEpLGM9PT1jLm5leHQmJihjLnN0ZWluZXI9ITApLHIucHVzaChyZWUoYykpO2ZvcihyLnNvcnQodGVlKSxvPTA7bzxyLmxlbmd0aDtvKyspZWVlKHJbb10sbiksbj1YdGUobixuLm5leHQpO3JldHVybiBufSkodCxlLG8sbikpLHQubGVuZ3RoPjgwKm4pe3M9Yz10WzBdLGw9dT10WzFdO2ZvcihsZXQgZT1uO2U8cjtlKz1uKWg9dFtlXSxkPXRbZSsxXSxoPHMmJihzPWgpLGQ8bCYmKGw9ZCksaD5jJiYoYz1oKSxkPnUmJih1PWQpO3A9TWF0aC5tYXgoYy1zLHUtbCkscD0wIT09cD8xL3A6MH1yZXR1cm4gJHRlKG8sYSxuLHMsbCxwKSxhfTtmdW5jdGlvbiBZdGUodCxlLG4saSxyKXtsZXQgbyxhO2lmKHI9PT0oZnVuY3Rpb24gcyh0LGUsbixpKXtsZXQgcj0wO2ZvcihsZXQgbz1lLGE9bi1pO288bjtvKz1pKXIrPSh0W2FdLXRbb10pKih0W28rMV0rdFthKzFdKSxhPW87cmV0dXJuIHJ9KSh0LGUsbixpKT4wKWZvcihvPWU7bzxuO28rPWkpYT1mZWUobyx0W29dLHRbbysxXSxhKTtlbHNlIGZvcihvPW4taTtvPj1lO28tPWkpYT1mZWUobyx0W29dLHRbbysxXSxhKTtyZXR1cm4gYSYmbGVlKGEsYS5uZXh0KSYmKG1lZShhKSxhPWEubmV4dCksYX1mdW5jdGlvbiBYdGUodCxlKXtpZighdClyZXR1cm4gdDtlfHwoZT10KTtsZXQgbixpPXQ7ZG97aWYobj0hMSxpLnN0ZWluZXJ8fCFsZWUoaSxpLm5leHQpJiYwIT09c2VlKGkucHJldixpLGkubmV4dCkpaT1pLm5leHQ7ZWxzZXtpZihtZWUoaSksaT1lPWkucHJldixpPT09aS5uZXh0KWJyZWFrO249ITB9fXdoaWxlKG58fGkhPT1lKTtyZXR1cm4gZX1mdW5jdGlvbiAkdGUodCxlLG4saSxyLG8sYSl7aWYoIXQpcmV0dXJuOyFhJiZvJiYoZnVuY3Rpb24gcyh0LGUsbixpKXtsZXQgcj10O2Rve251bGw9PT1yLnomJihyLno9aWVlKHIueCxyLnksZSxuLGkpKSxyLnByZXZaPXIucHJldixyLm5leHRaPXIubmV4dCxyPXIubmV4dH13aGlsZShyIT09dCk7ci5wcmV2Wi5uZXh0Wj1udWxsLHIucHJldlo9bnVsbCwoZnVuY3Rpb24gbyh0KXtsZXQgZSxuLGkscixvLGEscyxsLGM9MTtkb3tmb3Iobj10LHQ9bnVsbCxvPW51bGwsYT0wO247KXtmb3IoYSsrLGk9bixzPTAsZT0wO2U8YyYmKHMrKyxpPWkubmV4dFosaSk7ZSsrKTtmb3IobD1jO3M+MHx8bD4wJiZpOykwIT09cyYmKDA9PT1sfHwhaXx8bi56PD1pLnopPyhyPW4sbj1uLm5leHRaLHMtLSk6KHI9aSxpPWkubmV4dFosbC0tKSxvP28ubmV4dFo9cjp0PXIsci5wcmV2Wj1vLG89cjtuPWl9by5uZXh0Wj1udWxsLGMqPTJ9d2hpbGUoYT4xKTtyZXR1cm4gdH0pKHIpfSkodCxpLHIsbyk7bGV0IGwsYyx1PXQ7Zm9yKDt0LnByZXYhPT10Lm5leHQ7KWlmKGw9dC5wcmV2LGM9dC5uZXh0LG8/WnRlKHQsaSxyLG8pOkt0ZSh0KSllLnB1c2gobC5pL24pLGUucHVzaCh0LmkvbiksZS5wdXNoKGMuaS9uKSxtZWUodCksdD1jLm5leHQsdT1jLm5leHQ7ZWxzZSBpZigodD1jKT09PXUpe2E/MT09PWE/JHRlKHQ9SnRlKFh0ZSh0KSxlLG4pLGUsbixpLHIsbywyKToyPT09YSYmUXRlKHQsZSxuLGkscixvKTokdGUoWHRlKHQpLGUsbixpLHIsbywxKTticmVha319ZnVuY3Rpb24gS3RlKHQpe2NvbnN0IGU9dC5wcmV2LG49dCxpPXQubmV4dDtpZihzZWUoZSxuLGkpPj0wKXJldHVybiExO2xldCByPXQubmV4dC5uZXh0O2Zvcig7ciE9PXQucHJldjspe2lmKG9lZShlLngsZS55LG4ueCxuLnksaS54LGkueSxyLngsci55KSYmc2VlKHIucHJldixyLHIubmV4dCk+PTApcmV0dXJuITE7cj1yLm5leHR9cmV0dXJuITB9ZnVuY3Rpb24gWnRlKHQsZSxuLGkpe2NvbnN0IHI9dC5wcmV2LG89dCxhPXQubmV4dDtpZihzZWUocixvLGEpPj0wKXJldHVybiExO2NvbnN0IHM9ci54Pm8ueD9yLng+YS54P3IueDphLng6by54PmEueD9vLng6YS54LGw9ci55Pm8ueT9yLnk+YS55P3IueTphLnk6by55PmEueT9vLnk6YS55LGM9aWVlKHIueDxvLng/ci54PGEueD9yLng6YS54Om8ueDxhLng/by54OmEueCxyLnk8by55P3IueTxhLnk/ci55OmEueTpvLnk8YS55P28ueTphLnksZSxuLGkpLHU9aWVlKHMsbCxlLG4saSk7bGV0IGg9dC5wcmV2WixkPXQubmV4dFo7Zm9yKDtoJiZoLno+PWMmJmQmJmQuejw9dTspe2lmKGghPT10LnByZXYmJmghPT10Lm5leHQmJm9lZShyLngsci55LG8ueCxvLnksYS54LGEueSxoLngsaC55KSYmc2VlKGgucHJldixoLGgubmV4dCk+PTApcmV0dXJuITE7aWYoaD1oLnByZXZaLGQhPT10LnByZXYmJmQhPT10Lm5leHQmJm9lZShyLngsci55LG8ueCxvLnksYS54LGEueSxkLngsZC55KSYmc2VlKGQucHJldixkLGQubmV4dCk+PTApcmV0dXJuITE7ZD1kLm5leHRafWZvcig7aCYmaC56Pj1jOyl7aWYoaCE9PXQucHJldiYmaCE9PXQubmV4dCYmb2VlKHIueCxyLnksby54LG8ueSxhLngsYS55LGgueCxoLnkpJiZzZWUoaC5wcmV2LGgsaC5uZXh0KT49MClyZXR1cm4hMTtoPWgucHJldlp9Zm9yKDtkJiZkLno8PXU7KXtpZihkIT09dC5wcmV2JiZkIT09dC5uZXh0JiZvZWUoci54LHIueSxvLngsby55LGEueCxhLnksZC54LGQueSkmJnNlZShkLnByZXYsZCxkLm5leHQpPj0wKXJldHVybiExO2Q9ZC5uZXh0Wn1yZXR1cm4hMH1mdW5jdGlvbiBKdGUodCxlLG4pe2xldCBpPXQ7ZG97Y29uc3Qgcj1pLnByZXYsbz1pLm5leHQubmV4dDshbGVlKHIsbykmJmNlZShyLGksaS5uZXh0LG8pJiZkZWUocixvKSYmZGVlKG8scikmJihlLnB1c2goci5pL24pLGUucHVzaChpLmkvbiksZS5wdXNoKG8uaS9uKSxtZWUoaSksbWVlKGkubmV4dCksaT10PW8pLGk9aS5uZXh0fXdoaWxlKGkhPT10KTtyZXR1cm4gWHRlKGkpfWZ1bmN0aW9uIFF0ZSh0LGUsbixpLHIsbyl7bGV0IGE9dDtkb3tsZXQgdD1hLm5leHQubmV4dDtmb3IoO3QhPT1hLnByZXY7KXtpZihhLmkhPT10LmkmJmFlZShhLHQpKXtsZXQgcz1wZWUoYSx0KTtyZXR1cm4gYT1YdGUoYSxhLm5leHQpLHM9WHRlKHMscy5uZXh0KSwkdGUoYSxlLG4saSxyLG8pLHZvaWQgJHRlKHMsZSxuLGkscixvKX10PXQubmV4dH1hPWEubmV4dH13aGlsZShhIT09dCl9ZnVuY3Rpb24gdGVlKHQsZSl7cmV0dXJuIHQueC1lLnh9ZnVuY3Rpb24gZWVlKHQsZSl7aWYoZT0oZnVuY3Rpb24gbih0LGUpe2xldCBuPWU7Y29uc3QgaT10Lngscj10Lnk7bGV0IG8sYT0tMS8wO2Rve2lmKHI8PW4ueSYmcj49bi5uZXh0LnkmJm4ubmV4dC55IT09bi55KXtjb25zdCB0PW4ueCsoci1uLnkpKihuLm5leHQueC1uLngpLyhuLm5leHQueS1uLnkpO2lmKHQ8PWkmJnQ+YSl7aWYoYT10LHQ9PT1pKXtpZihyPT09bi55KXJldHVybiBuO2lmKHI9PT1uLm5leHQueSlyZXR1cm4gbi5uZXh0fW89bi54PG4ubmV4dC54P246bi5uZXh0fX1uPW4ubmV4dH13aGlsZShuIT09ZSk7aWYoIW8pcmV0dXJuIG51bGw7aWYoaT09PWEpcmV0dXJuIG87Y29uc3Qgcz1vLGw9by54LGM9by55O2xldCB1LGg9MS8wO249bztkb3tpPj1uLngmJm4ueD49bCYmaSE9PW4ueCYmb2VlKHI8Yz9pOmEscixsLGMscjxjP2E6aSxyLG4ueCxuLnkpJiYodT1NYXRoLmFicyhyLW4ueSkvKGktbi54KSxkZWUobix0KSYmKHU8aHx8dT09PWgmJihuLng+by54fHxuLng9PT1vLngmJm5lZShvLG4pKSkmJihvPW4saD11KSksbj1uLm5leHR9d2hpbGUobiE9PXMpO3JldHVybiBvfSkodCxlKSl7Y29uc3Qgbj1wZWUoZSx0KTtYdGUoZSxlLm5leHQpLFh0ZShuLG4ubmV4dCl9fWZ1bmN0aW9uIG5lZSh0LGUpe3JldHVybiBzZWUodC5wcmV2LHQsZS5wcmV2KTwwJiZzZWUoZS5uZXh0LHQsdC5uZXh0KTwwfWZ1bmN0aW9uIGllZSh0LGUsbixpLHIpe3JldHVybih0PTE0MzE2NTU3NjUmKCh0PTg1ODk5MzQ1OSYoKHQ9MjUyNjQ1MTM1JigodD0xNjcxMTkzNSYoKHQ9MzI3NjcqKHQtbikqcil8dDw8OCkpfHQ8PDQpKXx0PDwyKSl8dDw8MSkpfChlPTE0MzE2NTU3NjUmKChlPTg1ODk5MzQ1OSYoKGU9MjUyNjQ1MTM1JigoZT0xNjcxMTkzNSYoKGU9MzI3NjcqKGUtaSkqcil8ZTw8OCkpfGU8PDQpKXxlPDwyKSl8ZTw8MSkpPDwxfWZ1bmN0aW9uIHJlZSh0KXtsZXQgZT10LG49dDtkb3soZS54PG4ueHx8ZS54PT09bi54JiZlLnk8bi55KSYmKG49ZSksZT1lLm5leHR9d2hpbGUoZSE9PXQpO3JldHVybiBufWZ1bmN0aW9uIG9lZSh0LGUsbixpLHIsbyxhLHMpe3JldHVybihyLWEpKihlLXMpLSh0LWEpKihvLXMpPj0wJiYodC1hKSooaS1zKS0obi1hKSooZS1zKT49MCYmKG4tYSkqKG8tcyktKHItYSkqKGktcyk+PTB9ZnVuY3Rpb24gYWVlKHQsZSl7cmV0dXJuIHQubmV4dC5pIT09ZS5pJiZ0LnByZXYuaSE9PWUuaSYmIShmdW5jdGlvbiBuKHQsZSl7bGV0IG49dDtkb3tpZihuLmkhPT10LmkmJm4ubmV4dC5pIT09dC5pJiZuLmkhPT1lLmkmJm4ubmV4dC5pIT09ZS5pJiZjZWUobixuLm5leHQsdCxlKSlyZXR1cm4hMDtuPW4ubmV4dH13aGlsZShuIT09dCk7cmV0dXJuITF9KSh0LGUpJiYoZGVlKHQsZSkmJmRlZShlLHQpJiYoZnVuY3Rpb24gaSh0LGUpe2xldCBuPXQsaT0hMTtjb25zdCByPSh0LngrZS54KS8yLG89KHQueStlLnkpLzI7ZG97bi55Pm8hPW4ubmV4dC55Pm8mJm4ubmV4dC55IT09bi55JiZyPChuLm5leHQueC1uLngpKihvLW4ueSkvKG4ubmV4dC55LW4ueSkrbi54JiYoaT0haSksbj1uLm5leHR9d2hpbGUobiE9PXQpO3JldHVybiBpfSkodCxlKSYmKHNlZSh0LnByZXYsdCxlLnByZXYpfHxzZWUodCxlLnByZXYsZSkpfHxsZWUodCxlKSYmc2VlKHQucHJldix0LHQubmV4dCk+MCYmc2VlKGUucHJldixlLGUubmV4dCk+MCl9ZnVuY3Rpb24gc2VlKHQsZSxuKXtyZXR1cm4oZS55LXQueSkqKG4ueC1lLngpLShlLngtdC54KSoobi55LWUueSl9ZnVuY3Rpb24gbGVlKHQsZSl7cmV0dXJuIHQueD09PWUueCYmdC55PT09ZS55fWZ1bmN0aW9uIGNlZSh0LGUsbixpKXtjb25zdCByPWhlZShzZWUodCxlLG4pKSxvPWhlZShzZWUodCxlLGkpKSxhPWhlZShzZWUobixpLHQpKSxzPWhlZShzZWUobixpLGUpKTtyZXR1cm4gciE9PW8mJmEhPT1zfHwoISgwIT09cnx8IXVlZSh0LG4sZSkpfHwoISgwIT09b3x8IXVlZSh0LGksZSkpfHwoISgwIT09YXx8IXVlZShuLHQsaSkpfHwhKDAhPT1zfHwhdWVlKG4sZSxpKSkpKSl9ZnVuY3Rpb24gdWVlKHQsZSxuKXtyZXR1cm4gZS54PD1NYXRoLm1heCh0Lngsbi54KSYmZS54Pj1NYXRoLm1pbih0Lngsbi54KSYmZS55PD1NYXRoLm1heCh0Lnksbi55KSYmZS55Pj1NYXRoLm1pbih0Lnksbi55KX1mdW5jdGlvbiBoZWUodCl7cmV0dXJuIHQ+MD8xOnQ8MD8tMTowfWZ1bmN0aW9uIGRlZSh0LGUpe3JldHVybiBzZWUodC5wcmV2LHQsdC5uZXh0KTwwP3NlZSh0LGUsdC5uZXh0KT49MCYmc2VlKHQsdC5wcmV2LGUpPj0wOnNlZSh0LGUsdC5wcmV2KTwwfHxzZWUodCx0Lm5leHQsZSk8MH1mdW5jdGlvbiBwZWUodCxlKXtjb25zdCBuPW5ldyBnZWUodC5pLHQueCx0LnkpLGk9bmV3IGdlZShlLmksZS54LGUueSkscj10Lm5leHQsbz1lLnByZXY7cmV0dXJuIHQubmV4dD1lLGUucHJldj10LG4ubmV4dD1yLHIucHJldj1uLGkubmV4dD1uLG4ucHJldj1pLG8ubmV4dD1pLGkucHJldj1vLGl9ZnVuY3Rpb24gZmVlKHQsZSxuLGkpe2NvbnN0IHI9bmV3IGdlZSh0LGUsbik7cmV0dXJuIGk/KHIubmV4dD1pLm5leHQsci5wcmV2PWksaS5uZXh0LnByZXY9cixpLm5leHQ9cik6KHIucHJldj1yLHIubmV4dD1yKSxyfWZ1bmN0aW9uIG1lZSh0KXt0Lm5leHQucHJldj10LnByZXYsdC5wcmV2Lm5leHQ9dC5uZXh0LHQucHJldlomJih0LnByZXZaLm5leHRaPXQubmV4dFopLHQubmV4dFomJih0Lm5leHRaLnByZXZaPXQucHJldlopfWZ1bmN0aW9uIGdlZSh0LGUsbil7dGhpcy5pPXQsdGhpcy54PWUsdGhpcy55PW4sdGhpcy5wcmV2PW51bGwsdGhpcy5uZXh0PW51bGwsdGhpcy56PW51bGwsdGhpcy5wcmV2Wj1udWxsLHRoaXMubmV4dFo9bnVsbCx0aGlzLnN0ZWluZXI9ITF9Y2xhc3MgX2Vle3N0YXRpYyBhcmVhKHQpe2NvbnN0IGU9dC5sZW5ndGg7bGV0IG49MDtmb3IobGV0IGk9ZS0xLHI9MDtyPGU7aT1yKyspbis9dFtpXS54KnRbcl0ueS10W3JdLngqdFtpXS55O3JldHVybi41Km59c3RhdGljIGlzQ2xvY2tXaXNlKHQpe3JldHVybiBfZWUuYXJlYSh0KTwwfXN0YXRpYyB0cmlhbmd1bGF0ZVNoYXBlKHQsZSl7Y29uc3Qgbj1bXSxpPVtdLHI9W107eWVlKHQpLHZlZShuLHQpO2xldCBvPXQubGVuZ3RoO2UuZm9yRWFjaCh5ZWUpO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWkucHVzaChvKSxvKz1lW3RdLmxlbmd0aCx2ZWUobixlW3RdKTtjb25zdCBhPXF0ZShuLGkpO2ZvcihsZXQgdD0wO3Q8YS5sZW5ndGg7dCs9MylyLnB1c2goYS5zbGljZSh0LHQrMykpO3JldHVybiByfX1mdW5jdGlvbiB5ZWUodCl7Y29uc3QgZT10Lmxlbmd0aDtlPjImJnRbZS0xXS5lcXVhbHModFswXSkmJnQucG9wKCl9ZnVuY3Rpb24gdmVlKHQsZSl7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspdC5wdXNoKGVbbl0ueCksdC5wdXNoKGVbbl0ueSl9Y2xhc3MgYmVlIGV4dGVuZHMgTjR0e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKSx0aGlzLnR5cGU9IkV4dHJ1ZGVHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtzaGFwZXM6dCxvcHRpb25zOmV9LHQ9QXJyYXkuaXNBcnJheSh0KT90Olt0XTtjb25zdCBuPXRoaXMsaT1bXSxyPVtdO2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKyl7byh0W2VdKX1mdW5jdGlvbiBvKHQpe2NvbnN0IG89W10sYT12b2lkIDAhPT1lLmN1cnZlU2VnbWVudHM/ZS5jdXJ2ZVNlZ21lbnRzOjEyLHM9dm9pZCAwIT09ZS5zdGVwcz9lLnN0ZXBzOjE7bGV0IGw9dm9pZCAwIT09ZS5kZXB0aD9lLmRlcHRoOjEwMCxjPXZvaWQgMD09PWUuYmV2ZWxFbmFibGVkfHxlLmJldmVsRW5hYmxlZCx1PXZvaWQgMCE9PWUuYmV2ZWxUaGlja25lc3M/ZS5iZXZlbFRoaWNrbmVzczo2LGg9dm9pZCAwIT09ZS5iZXZlbFNpemU/ZS5iZXZlbFNpemU6dS0yLGQ9dm9pZCAwIT09ZS5iZXZlbE9mZnNldD9lLmJldmVsT2Zmc2V0OjAscD12b2lkIDAhPT1lLmJldmVsU2VnbWVudHM/ZS5iZXZlbFNlZ21lbnRzOjM7Y29uc3QgZj1lLmV4dHJ1ZGVQYXRoLG09dm9pZCAwIT09ZS5VVkdlbmVyYXRvcj9lLlVWR2VuZXJhdG9yOnhlZTt2b2lkIDAhPT1lLmFtb3VudCYmKGNvbnNvbGUud2FybigiVEhSRUUuRXh0cnVkZUJ1ZmZlckdlb21ldHJ5OiBhbW91bnQgaGFzIGJlZW4gcmVuYW1lZCB0byBkZXB0aC4iKSxsPWUuYW1vdW50KTtsZXQgZyxfLHksdixiLHg9ITE7ZiYmKGc9Zi5nZXRTcGFjZWRQb2ludHMocykseD0hMCxjPSExLF89Zi5jb21wdXRlRnJlbmV0RnJhbWVzKHMsITEpLHk9bmV3IEg1dCx2PW5ldyBINXQsYj1uZXcgSDV0KSxjfHwocD0wLHU9MCxoPTAsZD0wKTtjb25zdCB3PXQuZXh0cmFjdFBvaW50cyhhKTtsZXQgUz13LnNoYXBlO2NvbnN0IE09dy5ob2xlcztpZighX2VlLmlzQ2xvY2tXaXNlKFMpKXtTPVMucmV2ZXJzZSgpO2ZvcihsZXQgdD0wLGU9TS5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT1NW3RdO19lZS5pc0Nsb2NrV2lzZShlKSYmKE1bdF09ZS5yZXZlcnNlKCkpfX1jb25zdCBFPV9lZS50cmlhbmd1bGF0ZVNoYXBlKFMsTSksVD1TO2ZvcihsZXQgdD0wLGU9TS5sZW5ndGg7dDxlO3QrKyl7Uz1TLmNvbmNhdChNW3RdKX1mdW5jdGlvbiBDKHQsZSxuKXtyZXR1cm4gZXx8Y29uc29sZS5lcnJvcigiVEhSRUUuRXh0cnVkZUdlb21ldHJ5OiB2ZWMgZG9lcyBub3QgZXhpc3QiKSxlLmNsb25lKCkubXVsdGlwbHlTY2FsYXIobikuYWRkKHQpfWNvbnN0IEE9Uy5sZW5ndGgsaz1FLmxlbmd0aDtmdW5jdGlvbiBMKHQsZSxuKXtsZXQgaSxyLG87Y29uc3QgYT10LngtZS54LHM9dC55LWUueSxsPW4ueC10LngsYz1uLnktdC55LHU9YSphK3MqcztpZihNYXRoLmFicyhhKmMtcypsKT5OdW1iZXIuRVBTSUxPTil7Y29uc3QgaD1NYXRoLnNxcnQodSksZD1NYXRoLnNxcnQobCpsK2MqYykscD1lLngtcy9oLGY9ZS55K2EvaCxtPSgobi54LWMvZC1wKSpjLShuLnkrbC9kLWYpKmwpLyhhKmMtcypsKTtpPXArYSptLXQueCxyPWYrcyptLXQueTtjb25zdCBnPWkqaStyKnI7aWYoZzw9MilyZXR1cm4gbmV3IEM1dChpLHIpO289TWF0aC5zcXJ0KGcvMil9ZWxzZXtsZXQgdD0hMTthPk51bWJlci5FUFNJTE9OP2w+TnVtYmVyLkVQU0lMT04mJih0PSEwKTphPC1OdW1iZXIuRVBTSUxPTj9sPC1OdW1iZXIuRVBTSUxPTiYmKHQ9ITApOk1hdGguc2lnbihzKT09PU1hdGguc2lnbihjKSYmKHQ9ITApLHQ/KGk9LXMscj1hLG89TWF0aC5zcXJ0KHUpKTooaT1hLHI9cyxvPU1hdGguc3FydCh1LzIpKX1yZXR1cm4gbmV3IEM1dChpL28sci9vKX1jb25zdCBQPVtdO2ZvcihsZXQgdD0wLGU9VC5sZW5ndGgsbj1lLTEsaT10KzE7dDxlO3QrKyxuKyssaSsrKW49PT1lJiYobj0wKSxpPT09ZSYmKGk9MCksUFt0XT1MKFRbdF0sVFtuXSxUW2ldKTtjb25zdCBOPVtdO2xldCBJLFI9UC5jb25jYXQoKTtmb3IobGV0IHQ9MCxlPU0ubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9TVt0XTtJPVtdO2ZvcihsZXQgdD0wLG49ZS5sZW5ndGgsaT1uLTEscj10KzE7dDxuO3QrKyxpKysscisrKWk9PT1uJiYoaT0wKSxyPT09biYmKHI9MCksSVt0XT1MKGVbdF0sZVtpXSxlW3JdKTtOLnB1c2goSSksUj1SLmNvbmNhdChJKX1mb3IobGV0IHQ9MDt0PHA7dCsrKXtjb25zdCBlPXQvcCxuPXUqTWF0aC5jb3MoZSpNYXRoLlBJLzIpLGk9aCpNYXRoLnNpbihlKk1hdGguUEkvMikrZDtmb3IobGV0IHQ9MCxlPVQubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9QyhUW3RdLFBbdF0saSk7RChlLngsZS55LC1uKX1mb3IobGV0IHQ9MCxlPU0ubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9TVt0XTtJPU5bdF07Zm9yKGxldCB0PTAscj1lLmxlbmd0aDt0PHI7dCsrKXtjb25zdCByPUMoZVt0XSxJW3RdLGkpO0Qoci54LHIueSwtbil9fX1jb25zdCBPPWgrZDtmb3IobGV0IHQ9MDt0PEE7dCsrKXtjb25zdCBlPWM/QyhTW3RdLFJbdF0sTyk6U1t0XTt4Pyh2LmNvcHkoXy5ub3JtYWxzWzBdKS5tdWx0aXBseVNjYWxhcihlLngpLHkuY29weShfLmJpbm9ybWFsc1swXSkubXVsdGlwbHlTY2FsYXIoZS55KSxiLmNvcHkoZ1swXSkuYWRkKHYpLmFkZCh5KSxEKGIueCxiLnksYi56KSk6RChlLngsZS55LDApfWZvcihsZXQgdD0xO3Q8PXM7dCsrKWZvcihsZXQgZT0wO2U8QTtlKyspe2NvbnN0IG49Yz9DKFNbZV0sUltlXSxPKTpTW2VdO3g/KHYuY29weShfLm5vcm1hbHNbdF0pLm11bHRpcGx5U2NhbGFyKG4ueCkseS5jb3B5KF8uYmlub3JtYWxzW3RdKS5tdWx0aXBseVNjYWxhcihuLnkpLGIuY29weShnW3RdKS5hZGQodikuYWRkKHkpLEQoYi54LGIueSxiLnopKTpEKG4ueCxuLnksbC9zKnQpfWZvcihsZXQgdD1wLTE7dD49MDt0LS0pe2NvbnN0IGU9dC9wLG49dSpNYXRoLmNvcyhlKk1hdGguUEkvMiksaT1oKk1hdGguc2luKGUqTWF0aC5QSS8yKStkO2ZvcihsZXQgdD0wLGU9VC5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT1DKFRbdF0sUFt0XSxpKTtEKGUueCxlLnksbCtuKX1mb3IobGV0IHQ9MCxlPU0ubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9TVt0XTtJPU5bdF07Zm9yKGxldCB0PTAscj1lLmxlbmd0aDt0PHI7dCsrKXtjb25zdCByPUMoZVt0XSxJW3RdLGkpO3g/RChyLngsci55K2dbcy0xXS55LGdbcy0xXS54K24pOkQoci54LHIueSxsK24pfX19ZnVuY3Rpb24geih0LGUpe2xldCBuPXQubGVuZ3RoO2Zvcig7LS1uPj0wOyl7Y29uc3QgaT1uO2xldCByPW4tMTtyPDAmJihyPXQubGVuZ3RoLTEpO2ZvcihsZXQgdD0wLG49cysyKnA7dDxuO3QrKyl7Y29uc3Qgbj1BKnQsbz1BKih0KzEpO0goZStpK24sZStyK24sZStyK28sZStpK28pfX19ZnVuY3Rpb24gRCh0LGUsbil7by5wdXNoKHQpLG8ucHVzaChlKSxvLnB1c2gobil9ZnVuY3Rpb24gQih0LGUscil7Rih0KSxGKGUpLEYocik7Y29uc3Qgbz1pLmxlbmd0aC8zLGE9bS5nZW5lcmF0ZVRvcFVWKG4saSxvLTMsby0yLG8tMSk7VihhWzBdKSxWKGFbMV0pLFYoYVsyXSl9ZnVuY3Rpb24gSCh0LGUscixvKXtGKHQpLEYoZSksRihvKSxGKGUpLEYociksRihvKTtjb25zdCBhPWkubGVuZ3RoLzMscz1tLmdlbmVyYXRlU2lkZVdhbGxVVihuLGksYS02LGEtMyxhLTIsYS0xKTtWKHNbMF0pLFYoc1sxXSksVihzWzNdKSxWKHNbMV0pLFYoc1syXSksVihzWzNdKX1mdW5jdGlvbiBGKHQpe2kucHVzaChvWzMqdCswXSksaS5wdXNoKG9bMyp0KzFdKSxpLnB1c2gob1szKnQrMl0pfWZ1bmN0aW9uIFYodCl7ci5wdXNoKHQueCksci5wdXNoKHQueSl9IShmdW5jdGlvbiBVKCl7Y29uc3QgdD1pLmxlbmd0aC8zO2lmKGMpe2xldCB0PTAsZT1BKnQ7Zm9yKGxldCB0PTA7dDxrO3QrKyl7Y29uc3Qgbj1FW3RdO0IoblsyXStlLG5bMV0rZSxuWzBdK2UpfXQ9cysyKnAsZT1BKnQ7Zm9yKGxldCB0PTA7dDxrO3QrKyl7Y29uc3Qgbj1FW3RdO0IoblswXStlLG5bMV0rZSxuWzJdK2UpfX1lbHNle2ZvcihsZXQgdD0wO3Q8azt0Kyspe2NvbnN0IGU9RVt0XTtCKGVbMl0sZVsxXSxlWzBdKX1mb3IobGV0IHQ9MDt0PGs7dCsrKXtjb25zdCBlPUVbdF07QihlWzBdK0EqcyxlWzFdK0EqcyxlWzJdK0Eqcyl9fW4uYWRkR3JvdXAodCxpLmxlbmd0aC8zLXQsMCl9KSgpLChmdW5jdGlvbiBqKCl7Y29uc3QgdD1pLmxlbmd0aC8zO2xldCBlPTA7eihULGUpLGUrPVQubGVuZ3RoO2ZvcihsZXQgdD0wLG49TS5sZW5ndGg7dDxuO3QrKyl7Y29uc3Qgbj1NW3RdO3oobixlKSxlKz1uLmxlbmd0aH1uLmFkZEdyb3VwKHQsaS5sZW5ndGgvMy10LDEpfSkoKX10aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBiNHQoaSwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoInV2IixuZXcgYjR0KHIsMikpLHRoaXMuY29tcHV0ZVZlcnRleE5vcm1hbHMoKX10b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybihmdW5jdGlvbiBlKHQsbixpKXtpZihpLnNoYXBlcz1bXSxBcnJheS5pc0FycmF5KHQpKWZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKyl7aS5zaGFwZXMucHVzaCh0W2VdLnV1aWQpfWVsc2UgaS5zaGFwZXMucHVzaCh0LnV1aWQpO3ZvaWQgMCE9PW4uZXh0cnVkZVBhdGgmJihpLm9wdGlvbnMuZXh0cnVkZVBhdGg9bi5leHRydWRlUGF0aC50b0pTT04oKSk7cmV0dXJuIGl9KSh0aGlzLnBhcmFtZXRlcnMuc2hhcGVzLHRoaXMucGFyYW1ldGVycy5vcHRpb25zLHQpfXN0YXRpYyBmcm9tSlNPTih0LGUpe2NvbnN0IG49W107Zm9yKGxldCBpPTAscj10LnNoYXBlcy5sZW5ndGg7aTxyO2krKyl7bi5wdXNoKGVbdC5zaGFwZXNbaV1dKX1jb25zdCBpPXQub3B0aW9ucy5leHRydWRlUGF0aDtyZXR1cm4gdm9pZCAwIT09aSYmKHQub3B0aW9ucy5leHRydWRlUGF0aD0obmV3IFd0ZVtpLnR5cGVdKS5mcm9tSlNPTihpKSksbmV3IGJlZShuLHQub3B0aW9ucyl9fWNvbnN0IHhlZT17Z2VuZXJhdGVUb3BVVjpmdW5jdGlvbih0LGUsbixpLHIpe2NvbnN0IG89ZVszKmldLGE9ZVszKmkrMV0scz1lWzMqcl0sbD1lWzMqcisxXTtyZXR1cm5bbmV3IEM1dChlWzMqbl0sZVszKm4rMV0pLG5ldyBDNXQobyxhKSxuZXcgQzV0KHMsbCldfSxnZW5lcmF0ZVNpZGVXYWxsVVY6ZnVuY3Rpb24odCxlLG4saSxyLG8pe2NvbnN0IGE9ZVszKm5dLHM9ZVszKm4rMV0sbD1lWzMqbisyXSxjPWVbMyppXSx1PWVbMyppKzFdLGg9ZVszKmkrMl0sZD1lWzMqcl0scD1lWzMqcisxXSxmPWVbMypyKzJdLG09ZVszKm9dLGc9ZVszKm8rMV0sXz1lWzMqbysyXTtyZXR1cm4gTWF0aC5hYnMocy11KTxNYXRoLmFicyhhLWMpP1tuZXcgQzV0KGEsMS1sKSxuZXcgQzV0KGMsMS1oKSxuZXcgQzV0KGQsMS1mKSxuZXcgQzV0KG0sMS1fKV06W25ldyBDNXQocywxLWwpLG5ldyBDNXQodSwxLWgpLG5ldyBDNXQocCwxLWYpLG5ldyBDNXQoZywxLV8pXX19O2NsYXNzIHdlZSBleHRlbmRzIHZ0ZXtjb25zdHJ1Y3Rvcih0PTEsZT0wKXtjb25zdCBuPSgxK01hdGguc3FydCg1KSkvMjtzdXBlcihbLTEsbiwwLDEsbiwwLC0xLC1uLDAsMSwtbiwwLDAsLTEsbiwwLDEsbiwwLC0xLC1uLDAsMSwtbixuLDAsLTEsbiwwLDEsLW4sMCwtMSwtbiwwLDFdLFswLDExLDUsMCw1LDEsMCwxLDcsMCw3LDEwLDAsMTAsMTEsMSw1LDksNSwxMSw0LDExLDEwLDIsMTAsNyw2LDcsMSw4LDMsOSw0LDMsNCwyLDMsMiw2LDMsNiw4LDMsOCw5LDQsOSw1LDIsNCwxMSw2LDIsMTAsOCw2LDcsOSw4LDFdLHQsZSksdGhpcy50eXBlPSJJY29zYWhlZHJvbkdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3JhZGl1czp0LGRldGFpbDplfX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyB3ZWUodC5yYWRpdXMsdC5kZXRhaWwpfX1jbGFzcyBTZWUgZXh0ZW5kcyBONHR7Y29uc3RydWN0b3IodCxlPTEyLG49MCxpPTIqTWF0aC5QSSl7c3VwZXIoKSx0aGlzLnR5cGU9IkxhdGhlR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17cG9pbnRzOnQsc2VnbWVudHM6ZSxwaGlTdGFydDpuLHBoaUxlbmd0aDppfSxlPU1hdGguZmxvb3IoZSksaT1zNXQoaSwwLDIqTWF0aC5QSSk7Y29uc3Qgcj1bXSxvPVtdLGE9W10scz0xL2UsbD1uZXcgSDV0LGM9bmV3IEM1dDtmb3IobGV0IHI9MDtyPD1lO3IrKyl7Y29uc3QgdT1uK3IqcyppLGg9TWF0aC5zaW4odSksZD1NYXRoLmNvcyh1KTtmb3IobGV0IG49MDtuPD10Lmxlbmd0aC0xO24rKylsLng9dFtuXS54KmgsbC55PXRbbl0ueSxsLno9dFtuXS54KmQsby5wdXNoKGwueCxsLnksbC56KSxjLng9ci9lLGMueT1uLyh0Lmxlbmd0aC0xKSxhLnB1c2goYy54LGMueSl9Zm9yKGxldCBuPTA7bjxlO24rKylmb3IobGV0IGU9MDtlPHQubGVuZ3RoLTE7ZSsrKXtjb25zdCBpPWUrbip0Lmxlbmd0aCxvPWkrdC5sZW5ndGgsYT1pK3QubGVuZ3RoKzEscz1pKzE7ci5wdXNoKGksbyxzKSxyLnB1c2gobyxhLHMpfWlmKHRoaXMuc2V0SW5kZXgociksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgYjR0KG8sMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IGI0dChhLDIpKSx0aGlzLmNvbXB1dGVWZXJ0ZXhOb3JtYWxzKCksaT09PTIqTWF0aC5QSSl7Y29uc3Qgbj10aGlzLmF0dHJpYnV0ZXMubm9ybWFsLmFycmF5LGk9bmV3IEg1dCxyPW5ldyBINXQsbz1uZXcgSDV0LGE9ZSp0Lmxlbmd0aCozO2ZvcihsZXQgZT0wLHM9MDtlPHQubGVuZ3RoO2UrKyxzKz0zKWkueD1uW3MrMF0saS55PW5bcysxXSxpLno9bltzKzJdLHIueD1uW2ErcyswXSxyLnk9blthK3MrMV0sci56PW5bYStzKzJdLG8uYWRkVmVjdG9ycyhpLHIpLm5vcm1hbGl6ZSgpLG5bcyswXT1uW2ErcyswXT1vLngsbltzKzFdPW5bYStzKzFdPW8ueSxuW3MrMl09blthK3MrMl09by56fX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyBTZWUodC5wb2ludHMsdC5zZWdtZW50cyx0LnBoaVN0YXJ0LHQucGhpTGVuZ3RoKX19Y2xhc3MgTWVlIGV4dGVuZHMgdnRle2NvbnN0cnVjdG9yKHQ9MSxlPTApe3N1cGVyKFsxLDAsMCwtMSwwLDAsMCwxLDAsMCwtMSwwLDAsMCwxLDAsMCwtMV0sWzAsMiw0LDAsNCwzLDAsMyw1LDAsNSwyLDEsMiw1LDEsNSwzLDEsMyw0LDEsNCwyXSx0LGUpLHRoaXMudHlwZT0iT2N0YWhlZHJvbkdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3JhZGl1czp0LGRldGFpbDplfX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyBNZWUodC5yYWRpdXMsdC5kZXRhaWwpfX1jbGFzcyBFZWUgZXh0ZW5kcyBONHR7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKCksdGhpcy50eXBlPSJQYXJhbWV0cmljR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17ZnVuYzp0LHNsaWNlczplLHN0YWNrczpufTtjb25zdCBpPVtdLHI9W10sbz1bXSxhPVtdLHM9MWUtNSxsPW5ldyBINXQsYz1uZXcgSDV0LHU9bmV3IEg1dCxoPW5ldyBINXQsZD1uZXcgSDV0O3QubGVuZ3RoPDMmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLlBhcmFtZXRyaWNHZW9tZXRyeTogRnVuY3Rpb24gbXVzdCBub3cgbW9kaWZ5IGEgVmVjdG9yMyBhcyB0aGlyZCBwYXJhbWV0ZXIuIik7Y29uc3QgcD1lKzE7Zm9yKGxldCBpPTA7aTw9bjtpKyspe2NvbnN0IHA9aS9uO2ZvcihsZXQgbj0wO248PWU7bisrKXtjb25zdCBpPW4vZTt0KGkscCxjKSxyLnB1c2goYy54LGMueSxjLnopLGktcz49MD8odChpLXMscCx1KSxoLnN1YlZlY3RvcnMoYyx1KSk6KHQoaStzLHAsdSksaC5zdWJWZWN0b3JzKHUsYykpLHAtcz49MD8odChpLHAtcyx1KSxkLnN1YlZlY3RvcnMoYyx1KSk6KHQoaSxwK3MsdSksZC5zdWJWZWN0b3JzKHUsYykpLGwuY3Jvc3NWZWN0b3JzKGgsZCkubm9ybWFsaXplKCksby5wdXNoKGwueCxsLnksbC56KSxhLnB1c2goaSxwKX19Zm9yKGxldCB0PTA7dDxuO3QrKylmb3IobGV0IG49MDtuPGU7bisrKXtjb25zdCBlPXQqcCtuKzEscj0odCsxKSpwK24rMSxvPSh0KzEpKnArbjtpLnB1c2godCpwK24sZSxvKSxpLnB1c2goZSxyLG8pfXRoaXMuc2V0SW5kZXgoaSksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgYjR0KHIsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJub3JtYWwiLG5ldyBiNHQobywzKSksdGhpcy5zZXRBdHRyaWJ1dGUoInV2IixuZXcgYjR0KGEsMikpfX1jbGFzcyBUZWUgZXh0ZW5kcyBONHR7Y29uc3RydWN0b3IodD0uNSxlPTEsbj04LGk9MSxyPTAsbz0yKk1hdGguUEkpe3N1cGVyKCksdGhpcy50eXBlPSJSaW5nR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17aW5uZXJSYWRpdXM6dCxvdXRlclJhZGl1czplLHRoZXRhU2VnbWVudHM6bixwaGlTZWdtZW50czppLHRoZXRhU3RhcnQ6cix0aGV0YUxlbmd0aDpvfSxuPU1hdGgubWF4KDMsbik7Y29uc3QgYT1bXSxzPVtdLGw9W10sYz1bXTtsZXQgdT10O2NvbnN0IGg9KGUtdCkvKGk9TWF0aC5tYXgoMSxpKSksZD1uZXcgSDV0LHA9bmV3IEM1dDtmb3IobGV0IHQ9MDt0PD1pO3QrKyl7Zm9yKGxldCB0PTA7dDw9bjt0Kyspe2NvbnN0IGk9cit0L24qbztkLng9dSpNYXRoLmNvcyhpKSxkLnk9dSpNYXRoLnNpbihpKSxzLnB1c2goZC54LGQueSxkLnopLGwucHVzaCgwLDAsMSkscC54PShkLngvZSsxKS8yLHAueT0oZC55L2UrMSkvMixjLnB1c2gocC54LHAueSl9dSs9aH1mb3IobGV0IHQ9MDt0PGk7dCsrKXtjb25zdCBlPXQqKG4rMSk7Zm9yKGxldCB0PTA7dDxuO3QrKyl7Y29uc3QgaT10K2Uscj1pK24rMSxvPWkrbisyLHM9aSsxO2EucHVzaChpLHIscyksYS5wdXNoKHIsbyxzKX19dGhpcy5zZXRJbmRleChhKSx0aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBiNHQocywzKSksdGhpcy5zZXRBdHRyaWJ1dGUoIm5vcm1hbCIsbmV3IGI0dChsLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyBiNHQoYywyKSl9c3RhdGljIGZyb21KU09OKHQpe3JldHVybiBuZXcgVGVlKHQuaW5uZXJSYWRpdXMsdC5vdXRlclJhZGl1cyx0LnRoZXRhU2VnbWVudHMsdC5waGlTZWdtZW50cyx0LnRoZXRhU3RhcnQsdC50aGV0YUxlbmd0aCl9fWNsYXNzIENlZSBleHRlbmRzIE40dHtjb25zdHJ1Y3Rvcih0LGU9MTIpe3N1cGVyKCksdGhpcy50eXBlPSJTaGFwZUdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3NoYXBlczp0LGN1cnZlU2VnbWVudHM6ZX07Y29uc3Qgbj1bXSxpPVtdLHI9W10sbz1bXTtsZXQgYT0wLHM9MDtpZighMT09PUFycmF5LmlzQXJyYXkodCkpbCh0KTtlbHNlIGZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKWwodFtlXSksdGhpcy5hZGRHcm91cChhLHMsZSksYSs9cyxzPTA7ZnVuY3Rpb24gbCh0KXtjb25zdCBhPWkubGVuZ3RoLzMsbD10LmV4dHJhY3RQb2ludHMoZSk7bGV0IGM9bC5zaGFwZTtjb25zdCB1PWwuaG9sZXM7ITE9PT1fZWUuaXNDbG9ja1dpc2UoYykmJihjPWMucmV2ZXJzZSgpKTtmb3IobGV0IHQ9MCxlPXUubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9dVt0XTshMD09PV9lZS5pc0Nsb2NrV2lzZShlKSYmKHVbdF09ZS5yZXZlcnNlKCkpfWNvbnN0IGg9X2VlLnRyaWFuZ3VsYXRlU2hhcGUoYyx1KTtmb3IobGV0IHQ9MCxlPXUubGVuZ3RoO3Q8ZTt0Kyspe2M9Yy5jb25jYXQodVt0XSl9Zm9yKGxldCB0PTAsZT1jLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPWNbdF07aS5wdXNoKGUueCxlLnksMCksci5wdXNoKDAsMCwxKSxvLnB1c2goZS54LGUueSl9Zm9yKGxldCB0PTAsZT1oLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPWhbdF07bi5wdXNoKGVbMF0rYSxlWzFdK2EsZVsyXSthKSxzKz0zfX10aGlzLnNldEluZGV4KG4pLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGI0dChpLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgYjR0KHIsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IGI0dChvLDIpKX10b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybihmdW5jdGlvbiBlKHQsbil7aWYobi5zaGFwZXM9W10sQXJyYXkuaXNBcnJheSh0KSlmb3IobGV0IGU9MCxpPXQubGVuZ3RoO2U8aTtlKyspe24uc2hhcGVzLnB1c2godFtlXS51dWlkKX1lbHNlIG4uc2hhcGVzLnB1c2godC51dWlkKTtyZXR1cm4gbn0pKHRoaXMucGFyYW1ldGVycy5zaGFwZXMsdCl9c3RhdGljIGZyb21KU09OKHQsZSl7Y29uc3Qgbj1bXTtmb3IobGV0IGk9MCxyPXQuc2hhcGVzLmxlbmd0aDtpPHI7aSsrKXtuLnB1c2goZVt0LnNoYXBlc1tpXV0pfXJldHVybiBuZXcgQ2VlKG4sdC5jdXJ2ZVNlZ21lbnRzKX19Y2xhc3MgQWVlIGV4dGVuZHMgTjR0e2NvbnN0cnVjdG9yKHQ9MSxlPTMyLG49MTYsaT0wLHI9MipNYXRoLlBJLG89MCxhPU1hdGguUEkpe3N1cGVyKCksdGhpcy50eXBlPSJTcGhlcmVHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtyYWRpdXM6dCx3aWR0aFNlZ21lbnRzOmUsaGVpZ2h0U2VnbWVudHM6bixwaGlTdGFydDppLHBoaUxlbmd0aDpyLHRoZXRhU3RhcnQ6byx0aGV0YUxlbmd0aDphfSxlPU1hdGgubWF4KDMsTWF0aC5mbG9vcihlKSksbj1NYXRoLm1heCgyLE1hdGguZmxvb3IobikpO2NvbnN0IHM9TWF0aC5taW4obythLE1hdGguUEkpO2xldCBsPTA7Y29uc3QgYz1bXSx1PW5ldyBINXQsaD1uZXcgSDV0LGQ9W10scD1bXSxmPVtdLG09W107Zm9yKGxldCBkPTA7ZDw9bjtkKyspe2NvbnN0IGc9W10sXz1kL247bGV0IHk9MDswPT1kJiYwPT1vP3k9LjUvZTpkPT1uJiZzPT1NYXRoLlBJJiYoeT0tLjUvZSk7Zm9yKGxldCBuPTA7bjw9ZTtuKyspe2NvbnN0IHM9bi9lO3UueD0tdCpNYXRoLmNvcyhpK3MqcikqTWF0aC5zaW4obytfKmEpLHUueT10Kk1hdGguY29zKG8rXyphKSx1Lno9dCpNYXRoLnNpbihpK3MqcikqTWF0aC5zaW4obytfKmEpLHAucHVzaCh1LngsdS55LHUueiksaC5jb3B5KHUpLm5vcm1hbGl6ZSgpLGYucHVzaChoLngsaC55LGgueiksbS5wdXNoKHMreSwxLV8pLGcucHVzaChsKyspfWMucHVzaChnKX1mb3IobGV0IHQ9MDt0PG47dCsrKWZvcihsZXQgaT0wO2k8ZTtpKyspe2NvbnN0IGU9Y1t0XVtpKzFdLHI9Y1t0XVtpXSxhPWNbdCsxXVtpXSxsPWNbdCsxXVtpKzFdOygwIT09dHx8bz4wKSYmZC5wdXNoKGUscixsKSwodCE9PW4tMXx8czxNYXRoLlBJKSYmZC5wdXNoKHIsYSxsKX10aGlzLnNldEluZGV4KGQpLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGI0dChwLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgYjR0KGYsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IGI0dChtLDIpKX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyBBZWUodC5yYWRpdXMsdC53aWR0aFNlZ21lbnRzLHQuaGVpZ2h0U2VnbWVudHMsdC5waGlTdGFydCx0LnBoaUxlbmd0aCx0LnRoZXRhU3RhcnQsdC50aGV0YUxlbmd0aCl9fWNsYXNzIGtlZSBleHRlbmRzIHZ0ZXtjb25zdHJ1Y3Rvcih0PTEsZT0wKXtzdXBlcihbMSwxLDEsLTEsLTEsMSwtMSwxLC0xLDEsLTEsLTFdLFsyLDEsMCwwLDMsMiwxLDMsMCwyLDMsMV0sdCxlKSx0aGlzLnR5cGU9IlRldHJhaGVkcm9uR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17cmFkaXVzOnQsZGV0YWlsOmV9fXN0YXRpYyBmcm9tSlNPTih0KXtyZXR1cm4gbmV3IGtlZSh0LnJhZGl1cyx0LmRldGFpbCl9fWNsYXNzIExlZSBleHRlbmRzIGJlZXtjb25zdHJ1Y3Rvcih0LGU9e30pe2NvbnN0IG49ZS5mb250O2lmKCFufHwhbi5pc0ZvbnQpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIlRIUkVFLlRleHRHZW9tZXRyeTogZm9udCBwYXJhbWV0ZXIgaXMgbm90IGFuIGluc3RhbmNlIG9mIFRIUkVFLkZvbnQuIiksbmV3IE40dDtjb25zdCBpPW4uZ2VuZXJhdGVTaGFwZXModCxlLnNpemUpO2UuZGVwdGg9dm9pZCAwIT09ZS5oZWlnaHQ/ZS5oZWlnaHQ6NTAsdm9pZCAwPT09ZS5iZXZlbFRoaWNrbmVzcyYmKGUuYmV2ZWxUaGlja25lc3M9MTApLHZvaWQgMD09PWUuYmV2ZWxTaXplJiYoZS5iZXZlbFNpemU9OCksdm9pZCAwPT09ZS5iZXZlbEVuYWJsZWQmJihlLmJldmVsRW5hYmxlZD0hMSksc3VwZXIoaSxlKSx0aGlzLnR5cGU9IlRleHRHZW9tZXRyeSJ9fWNsYXNzIFBlZSBleHRlbmRzIE40dHtjb25zdHJ1Y3Rvcih0PTEsZT0uNCxuPTgsaT02LHI9MipNYXRoLlBJKXtzdXBlcigpLHRoaXMudHlwZT0iVG9ydXNHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtyYWRpdXM6dCx0dWJlOmUscmFkaWFsU2VnbWVudHM6bix0dWJ1bGFyU2VnbWVudHM6aSxhcmM6cn0sbj1NYXRoLmZsb29yKG4pLGk9TWF0aC5mbG9vcihpKTtjb25zdCBvPVtdLGE9W10scz1bXSxsPVtdLGM9bmV3IEg1dCx1PW5ldyBINXQsaD1uZXcgSDV0O2ZvcihsZXQgbz0wO288PW47bysrKWZvcihsZXQgZD0wO2Q8PWk7ZCsrKXtjb25zdCBwPWQvaSpyLGY9by9uKk1hdGguUEkqMjt1Lng9KHQrZSpNYXRoLmNvcyhmKSkqTWF0aC5jb3MocCksdS55PSh0K2UqTWF0aC5jb3MoZikpKk1hdGguc2luKHApLHUuej1lKk1hdGguc2luKGYpLGEucHVzaCh1LngsdS55LHUueiksYy54PXQqTWF0aC5jb3MocCksYy55PXQqTWF0aC5zaW4ocCksaC5zdWJWZWN0b3JzKHUsYykubm9ybWFsaXplKCkscy5wdXNoKGgueCxoLnksaC56KSxsLnB1c2goZC9pKSxsLnB1c2goby9uKX1mb3IobGV0IHQ9MTt0PD1uO3QrKylmb3IobGV0IGU9MTtlPD1pO2UrKyl7Y29uc3Qgbj0oaSsxKSoodC0xKStlLTEscj0oaSsxKSoodC0xKStlLGE9KGkrMSkqdCtlO28ucHVzaCgoaSsxKSp0K2UtMSxuLGEpLG8ucHVzaChuLHIsYSl9dGhpcy5zZXRJbmRleChvKSx0aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBiNHQoYSwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoIm5vcm1hbCIsbmV3IGI0dChzLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyBiNHQobCwyKSl9c3RhdGljIGZyb21KU09OKHQpe3JldHVybiBuZXcgUGVlKHQucmFkaXVzLHQudHViZSx0LnJhZGlhbFNlZ21lbnRzLHQudHVidWxhclNlZ21lbnRzLHQuYXJjKX19Y2xhc3MgTmVlIGV4dGVuZHMgTjR0e2NvbnN0cnVjdG9yKHQ9MSxlPS40LG49NjQsaT04LHI9MixvPTMpe3N1cGVyKCksdGhpcy50eXBlPSJUb3J1c0tub3RHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtyYWRpdXM6dCx0dWJlOmUsdHVidWxhclNlZ21lbnRzOm4scmFkaWFsU2VnbWVudHM6aSxwOnIscTpvfSxuPU1hdGguZmxvb3IobiksaT1NYXRoLmZsb29yKGkpO2NvbnN0IGE9W10scz1bXSxsPVtdLGM9W10sdT1uZXcgSDV0LGg9bmV3IEg1dCxkPW5ldyBINXQscD1uZXcgSDV0LGY9bmV3IEg1dCxtPW5ldyBINXQsZz1uZXcgSDV0O2ZvcihsZXQgYT0wO2E8PW47KythKXtjb25zdCB5PWEvbipyKk1hdGguUEkqMjtfKHkscixvLHQsZCksXyh5Ky4wMSxyLG8sdCxwKSxtLnN1YlZlY3RvcnMocCxkKSxnLmFkZFZlY3RvcnMocCxkKSxmLmNyb3NzVmVjdG9ycyhtLGcpLGcuY3Jvc3NWZWN0b3JzKGYsbSksZi5ub3JtYWxpemUoKSxnLm5vcm1hbGl6ZSgpO2ZvcihsZXQgdD0wO3Q8PWk7Kyt0KXtjb25zdCByPXQvaSpNYXRoLlBJKjIsbz0tZSpNYXRoLmNvcyhyKSxwPWUqTWF0aC5zaW4ocik7dS54PWQueCsobypnLngrcCpmLngpLHUueT1kLnkrKG8qZy55K3AqZi55KSx1Lno9ZC56KyhvKmcueitwKmYueikscy5wdXNoKHUueCx1LnksdS56KSxoLnN1YlZlY3RvcnModSxkKS5ub3JtYWxpemUoKSxsLnB1c2goaC54LGgueSxoLnopLGMucHVzaChhL24pLGMucHVzaCh0L2kpfX1mb3IobGV0IHQ9MTt0PD1uO3QrKylmb3IobGV0IGU9MTtlPD1pO2UrKyl7Y29uc3Qgbj0oaSsxKSp0KyhlLTEpLHI9KGkrMSkqdCtlLG89KGkrMSkqKHQtMSkrZTthLnB1c2goKGkrMSkqKHQtMSkrKGUtMSksbixvKSxhLnB1c2gobixyLG8pfWZ1bmN0aW9uIF8odCxlLG4saSxyKXtjb25zdCBvPU1hdGguY29zKHQpLGE9TWF0aC5zaW4odCkscz1uL2UqdCxsPU1hdGguY29zKHMpO3IueD1pKigyK2wpKi41Km8sci55PWkqKDIrbCkqYSouNSxyLno9aSpNYXRoLnNpbihzKSouNX10aGlzLnNldEluZGV4KGEpLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGI0dChzLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgYjR0KGwsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IGI0dChjLDIpKX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyBOZWUodC5yYWRpdXMsdC50dWJlLHQudHVidWxhclNlZ21lbnRzLHQucmFkaWFsU2VnbWVudHMsdC5wLHQucSl9fWNsYXNzIEllZSBleHRlbmRzIE40dHtjb25zdHJ1Y3Rvcih0LGU9NjQsbj0xLGk9OCxyPSExKXtzdXBlcigpLHRoaXMudHlwZT0iVHViZUdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3BhdGg6dCx0dWJ1bGFyU2VnbWVudHM6ZSxyYWRpdXM6bixyYWRpYWxTZWdtZW50czppLGNsb3NlZDpyfTtjb25zdCBvPXQuY29tcHV0ZUZyZW5ldEZyYW1lcyhlLHIpO3RoaXMudGFuZ2VudHM9by50YW5nZW50cyx0aGlzLm5vcm1hbHM9by5ub3JtYWxzLHRoaXMuYmlub3JtYWxzPW8uYmlub3JtYWxzO2NvbnN0IGE9bmV3IEg1dCxzPW5ldyBINXQsbD1uZXcgQzV0O2xldCBjPW5ldyBINXQ7Y29uc3QgdT1bXSxoPVtdLGQ9W10scD1bXTtmdW5jdGlvbiBmKHIpe2M9dC5nZXRQb2ludEF0KHIvZSxjKTtjb25zdCBsPW8ubm9ybWFsc1tyXSxkPW8uYmlub3JtYWxzW3JdO2ZvcihsZXQgdD0wO3Q8PWk7dCsrKXtjb25zdCBlPXQvaSpNYXRoLlBJKjIscj1NYXRoLnNpbihlKSxvPS1NYXRoLmNvcyhlKTtzLng9bypsLngrcipkLngscy55PW8qbC55K3IqZC55LHMuej1vKmwueityKmQueixzLm5vcm1hbGl6ZSgpLGgucHVzaChzLngscy55LHMueiksYS54PWMueCtuKnMueCxhLnk9Yy55K24qcy55LGEuej1jLnorbipzLnosdS5wdXNoKGEueCxhLnksYS56KX19IShmdW5jdGlvbiBtKCl7Zm9yKGxldCB0PTA7dDxlO3QrKylmKHQpO2YoITE9PT1yP2U6MCksKGZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PD1lO3QrKylmb3IobGV0IG49MDtuPD1pO24rKylsLng9dC9lLGwueT1uL2ksZC5wdXNoKGwueCxsLnkpfSkoKSwoZnVuY3Rpb24gbigpe2ZvcihsZXQgdD0xO3Q8PWU7dCsrKWZvcihsZXQgZT0xO2U8PWk7ZSsrKXtjb25zdCBuPShpKzEpKnQrKGUtMSkscj0oaSsxKSp0K2Usbz0oaSsxKSoodC0xKStlO3AucHVzaCgoaSsxKSoodC0xKSsoZS0xKSxuLG8pLHAucHVzaChuLHIsbyl9fSkoKX0pKCksdGhpcy5zZXRJbmRleChwKSx0aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBiNHQodSwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoIm5vcm1hbCIsbmV3IGI0dChoLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyBiNHQoZCwyKSl9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC5wYXRoPXRoaXMucGFyYW1ldGVycy5wYXRoLnRvSlNPTigpLHR9c3RhdGljIGZyb21KU09OKHQpe3JldHVybiBuZXcgSWVlKChuZXcgV3RlW3QucGF0aC50eXBlXSkuZnJvbUpTT04odC5wYXRoKSx0LnR1YnVsYXJTZWdtZW50cyx0LnJhZGl1cyx0LnJhZGlhbFNlZ21lbnRzLHQuY2xvc2VkKX19Y2xhc3MgUmVlIGV4dGVuZHMgTjR0e2NvbnN0cnVjdG9yKHQpe2lmKHN1cGVyKCksdGhpcy50eXBlPSJXaXJlZnJhbWVHZW9tZXRyeSIsITA9PT10LmlzR2VvbWV0cnkpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuV2lyZWZyYW1lR2VvbWV0cnkgbm8gbG9uZ2VyIHN1cHBvcnRzIFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKTtjb25zdCBlPVtdLG49bmV3IFNldCxpPW5ldyBINXQscj1uZXcgSDV0O2lmKG51bGwhPT10LmluZGV4KXtjb25zdCBvPXQuYXR0cmlidXRlcy5wb3NpdGlvbixhPXQuaW5kZXg7bGV0IHM9dC5ncm91cHM7MD09PXMubGVuZ3RoJiYocz1be3N0YXJ0OjAsY291bnQ6YS5jb3VudCxtYXRlcmlhbEluZGV4OjB9XSk7Zm9yKGxldCB0PTAsbD1zLmxlbmd0aDt0PGw7Kyt0KXtjb25zdCBsPXNbdF0sYz1sLnN0YXJ0O2ZvcihsZXQgdD1jLHM9YytsLmNvdW50O3Q8czt0Kz0zKWZvcihsZXQgcz0wO3M8MztzKyspe2NvbnN0IGw9YS5nZXRYKHQrcyksYz1hLmdldFgodCsocysxKSUzKTtpLmZyb21CdWZmZXJBdHRyaWJ1dGUobyxsKSxyLmZyb21CdWZmZXJBdHRyaWJ1dGUobyxjKSwhMD09PU9lZShpLHIsbikmJihlLnB1c2goaS54LGkueSxpLnopLGUucHVzaChyLngsci55LHIueikpfX19ZWxzZXtjb25zdCBvPXQuYXR0cmlidXRlcy5wb3NpdGlvbjtmb3IobGV0IHQ9MCxhPW8uY291bnQvMzt0PGE7dCsrKWZvcihsZXQgYT0wO2E8MzthKyspe2NvbnN0IHM9Myp0KyhhKzEpJTM7aS5mcm9tQnVmZmVyQXR0cmlidXRlKG8sMyp0K2EpLHIuZnJvbUJ1ZmZlckF0dHJpYnV0ZShvLHMpLCEwPT09T2VlKGkscixuKSYmKGUucHVzaChpLngsaS55LGkueiksZS5wdXNoKHIueCxyLnksci56KSl9fXRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGI0dChlLDMpKX19ZnVuY3Rpb24gT2VlKHQsZSxuKXtjb25zdCBpPWAke3QueH0sJHt0Lnl9LCR7dC56fS0ke2UueH0sJHtlLnl9LCR7ZS56fWAscj1gJHtlLnh9LCR7ZS55fSwke2Uuen0tJHt0Lnh9LCR7dC55fSwke3Quen1gO3JldHVybiEwIT09bi5oYXMoaSkmJiEwIT09bi5oYXMocikmJihuLmFkZChpLHIpLCEwKX12YXIgemVlPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLEJveEdlb21ldHJ5Oko0dCxCb3hCdWZmZXJHZW9tZXRyeTpKNHQsQ2lyY2xlR2VvbWV0cnk6Z3RlLENpcmNsZUJ1ZmZlckdlb21ldHJ5Omd0ZSxDb25lR2VvbWV0cnk6eXRlLENvbmVCdWZmZXJHZW9tZXRyeTp5dGUsQ3lsaW5kZXJHZW9tZXRyeTpfdGUsQ3lsaW5kZXJCdWZmZXJHZW9tZXRyeTpfdGUsRG9kZWNhaGVkcm9uR2VvbWV0cnk6YnRlLERvZGVjYWhlZHJvbkJ1ZmZlckdlb21ldHJ5OmJ0ZSxFZGdlc0dlb21ldHJ5OkV0ZSxFeHRydWRlR2VvbWV0cnk6YmVlLEV4dHJ1ZGVCdWZmZXJHZW9tZXRyeTpiZWUsSWNvc2FoZWRyb25HZW9tZXRyeTp3ZWUsSWNvc2FoZWRyb25CdWZmZXJHZW9tZXRyeTp3ZWUsTGF0aGVHZW9tZXRyeTpTZWUsTGF0aGVCdWZmZXJHZW9tZXRyeTpTZWUsT2N0YWhlZHJvbkdlb21ldHJ5Ok1lZSxPY3RhaGVkcm9uQnVmZmVyR2VvbWV0cnk6TWVlLFBhcmFtZXRyaWNHZW9tZXRyeTpFZWUsUGFyYW1ldHJpY0J1ZmZlckdlb21ldHJ5OkVlZSxQbGFuZUdlb21ldHJ5Onk2dCxQbGFuZUJ1ZmZlckdlb21ldHJ5Onk2dCxQb2x5aGVkcm9uR2VvbWV0cnk6dnRlLFBvbHloZWRyb25CdWZmZXJHZW9tZXRyeTp2dGUsUmluZ0dlb21ldHJ5OlRlZSxSaW5nQnVmZmVyR2VvbWV0cnk6VGVlLFNoYXBlR2VvbWV0cnk6Q2VlLFNoYXBlQnVmZmVyR2VvbWV0cnk6Q2VlLFNwaGVyZUdlb21ldHJ5OkFlZSxTcGhlcmVCdWZmZXJHZW9tZXRyeTpBZWUsVGV0cmFoZWRyb25HZW9tZXRyeTprZWUsVGV0cmFoZWRyb25CdWZmZXJHZW9tZXRyeTprZWUsVGV4dEdlb21ldHJ5OkxlZSxUZXh0QnVmZmVyR2VvbWV0cnk6TGVlLFRvcnVzR2VvbWV0cnk6UGVlLFRvcnVzQnVmZmVyR2VvbWV0cnk6UGVlLFRvcnVzS25vdEdlb21ldHJ5Ok5lZSxUb3J1c0tub3RCdWZmZXJHZW9tZXRyeTpOZWUsVHViZUdlb21ldHJ5OkllZSxUdWJlQnVmZmVyR2VvbWV0cnk6SWVlLFdpcmVmcmFtZUdlb21ldHJ5OlJlZX0pO2NsYXNzIERlZSBleHRlbmRzIHQ0dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iU2hhZG93TWF0ZXJpYWwiLHRoaXMuY29sb3I9bmV3IHM0dCgwKSx0aGlzLnRyYW5zcGFyZW50PSEwLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXN9fURlZS5wcm90b3R5cGUuaXNTaGFkb3dNYXRlcmlhbD0hMDtjbGFzcyBCZWUgZXh0ZW5kcyB0NHR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLmRlZmluZXM9e1NUQU5EQVJEOiIifSx0aGlzLnR5cGU9Ik1lc2hTdGFuZGFyZE1hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBzNHQoMTY3NzcyMTUpLHRoaXMucm91Z2huZXNzPTEsdGhpcy5tZXRhbG5lc3M9MCx0aGlzLm1hcD1udWxsLHRoaXMubGlnaHRNYXA9bnVsbCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PTEsdGhpcy5hb01hcD1udWxsLHRoaXMuYW9NYXBJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlPW5ldyBzNHQoMCksdGhpcy5lbWlzc2l2ZUludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmVNYXA9bnVsbCx0aGlzLmJ1bXBNYXA9bnVsbCx0aGlzLmJ1bXBTY2FsZT0xLHRoaXMubm9ybWFsTWFwPW51bGwsdGhpcy5ub3JtYWxNYXBUeXBlPTAsdGhpcy5ub3JtYWxTY2FsZT1uZXcgQzV0KDEsMSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy5yb3VnaG5lc3NNYXA9bnVsbCx0aGlzLm1ldGFsbmVzc01hcD1udWxsLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLmVudk1hcD1udWxsLHRoaXMuZW52TWFwSW50ZW5zaXR5PTEsdGhpcy5yZWZyYWN0aW9uUmF0aW89Ljk4LHRoaXMud2lyZWZyYW1lPSExLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPTEsdGhpcy53aXJlZnJhbWVMaW5lY2FwPSJyb3VuZCIsdGhpcy53aXJlZnJhbWVMaW5lam9pbj0icm91bmQiLHRoaXMuZmxhdFNoYWRpbmc9ITEsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmRlZmluZXM9e1NUQU5EQVJEOiIifSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5yb3VnaG5lc3M9dC5yb3VnaG5lc3MsdGhpcy5tZXRhbG5lc3M9dC5tZXRhbG5lc3MsdGhpcy5tYXA9dC5tYXAsdGhpcy5saWdodE1hcD10LmxpZ2h0TWFwLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9dC5saWdodE1hcEludGVuc2l0eSx0aGlzLmFvTWFwPXQuYW9NYXAsdGhpcy5hb01hcEludGVuc2l0eT10LmFvTWFwSW50ZW5zaXR5LHRoaXMuZW1pc3NpdmUuY29weSh0LmVtaXNzaXZlKSx0aGlzLmVtaXNzaXZlTWFwPXQuZW1pc3NpdmVNYXAsdGhpcy5lbWlzc2l2ZUludGVuc2l0eT10LmVtaXNzaXZlSW50ZW5zaXR5LHRoaXMuYnVtcE1hcD10LmJ1bXBNYXAsdGhpcy5idW1wU2NhbGU9dC5idW1wU2NhbGUsdGhpcy5ub3JtYWxNYXA9dC5ub3JtYWxNYXAsdGhpcy5ub3JtYWxNYXBUeXBlPXQubm9ybWFsTWFwVHlwZSx0aGlzLm5vcm1hbFNjYWxlLmNvcHkodC5ub3JtYWxTY2FsZSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9dC5kaXNwbGFjZW1lbnRNYXAsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT10LmRpc3BsYWNlbWVudFNjYWxlLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz10LmRpc3BsYWNlbWVudEJpYXMsdGhpcy5yb3VnaG5lc3NNYXA9dC5yb3VnaG5lc3NNYXAsdGhpcy5tZXRhbG5lc3NNYXA9dC5tZXRhbG5lc3NNYXAsdGhpcy5hbHBoYU1hcD10LmFscGhhTWFwLHRoaXMuZW52TWFwPXQuZW52TWFwLHRoaXMuZW52TWFwSW50ZW5zaXR5PXQuZW52TWFwSW50ZW5zaXR5LHRoaXMucmVmcmFjdGlvblJhdGlvPXQucmVmcmFjdGlvblJhdGlvLHRoaXMud2lyZWZyYW1lPXQud2lyZWZyYW1lLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPXQud2lyZWZyYW1lTGluZXdpZHRoLHRoaXMud2lyZWZyYW1lTGluZWNhcD10LndpcmVmcmFtZUxpbmVjYXAsdGhpcy53aXJlZnJhbWVMaW5lam9pbj10LndpcmVmcmFtZUxpbmVqb2luLHRoaXMuZmxhdFNoYWRpbmc9dC5mbGF0U2hhZGluZyx0aGlzfX1CZWUucHJvdG90eXBlLmlzTWVzaFN0YW5kYXJkTWF0ZXJpYWw9ITA7Y2xhc3MgSGVlIGV4dGVuZHMgQmVle2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5kZWZpbmVzPXtTVEFOREFSRDoiIixQSFlTSUNBTDoiIn0sdGhpcy50eXBlPSJNZXNoUGh5c2ljYWxNYXRlcmlhbCIsdGhpcy5jbGVhcmNvYXQ9MCx0aGlzLmNsZWFyY29hdE1hcD1udWxsLHRoaXMuY2xlYXJjb2F0Um91Z2huZXNzPTAsdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3NNYXA9bnVsbCx0aGlzLmNsZWFyY29hdE5vcm1hbFNjYWxlPW5ldyBDNXQoMSwxKSx0aGlzLmNsZWFyY29hdE5vcm1hbE1hcD1udWxsLHRoaXMucmVmbGVjdGl2aXR5PS41LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJpb3IiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4oMSsuNCp0aGlzLnJlZmxlY3Rpdml0eSkvKDEtLjQqdGhpcy5yZWZsZWN0aXZpdHkpfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5yZWZsZWN0aXZpdHk9czV0KDIuNSoodC0xKS8odCsxKSwwLDEpfX0pLHRoaXMuc2hlZW49bnVsbCx0aGlzLnRyYW5zbWlzc2lvbj0wLHRoaXMudHJhbnNtaXNzaW9uTWFwPW51bGwsdGhpcy50aGlja25lc3M9LjAxLHRoaXMudGhpY2tuZXNzTWFwPW51bGwsdGhpcy5hdHRlbnVhdGlvbkRpc3RhbmNlPTAsdGhpcy5hdHRlbnVhdGlvblRpbnQ9bmV3IHM0dCgxLDEsMSksdGhpcy5zcGVjdWxhckludGVuc2l0eT0xLHRoaXMuc3BlY3VsYXJJbnRlbnNpdHlNYXA9bnVsbCx0aGlzLnNwZWN1bGFyVGludD1uZXcgczR0KDEsMSwxKSx0aGlzLnNwZWN1bGFyVGludE1hcD1udWxsLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5kZWZpbmVzPXtTVEFOREFSRDoiIixQSFlTSUNBTDoiIn0sdGhpcy5jbGVhcmNvYXQ9dC5jbGVhcmNvYXQsdGhpcy5jbGVhcmNvYXRNYXA9dC5jbGVhcmNvYXRNYXAsdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3M9dC5jbGVhcmNvYXRSb3VnaG5lc3MsdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3NNYXA9dC5jbGVhcmNvYXRSb3VnaG5lc3NNYXAsdGhpcy5jbGVhcmNvYXROb3JtYWxNYXA9dC5jbGVhcmNvYXROb3JtYWxNYXAsdGhpcy5jbGVhcmNvYXROb3JtYWxTY2FsZS5jb3B5KHQuY2xlYXJjb2F0Tm9ybWFsU2NhbGUpLHRoaXMucmVmbGVjdGl2aXR5PXQucmVmbGVjdGl2aXR5LHRoaXMuc2hlZW49dC5zaGVlbj8odGhpcy5zaGVlbnx8bmV3IHM0dCkuY29weSh0LnNoZWVuKTpudWxsLHRoaXMudHJhbnNtaXNzaW9uPXQudHJhbnNtaXNzaW9uLHRoaXMudHJhbnNtaXNzaW9uTWFwPXQudHJhbnNtaXNzaW9uTWFwLHRoaXMudGhpY2tuZXNzPXQudGhpY2tuZXNzLHRoaXMudGhpY2tuZXNzTWFwPXQudGhpY2tuZXNzTWFwLHRoaXMuYXR0ZW51YXRpb25EaXN0YW5jZT10LmF0dGVudWF0aW9uRGlzdGFuY2UsdGhpcy5hdHRlbnVhdGlvblRpbnQuY29weSh0LmF0dGVudWF0aW9uVGludCksdGhpcy5zcGVjdWxhckludGVuc2l0eT10LnNwZWN1bGFySW50ZW5zaXR5LHRoaXMuc3BlY3VsYXJJbnRlbnNpdHlNYXA9dC5zcGVjdWxhckludGVuc2l0eU1hcCx0aGlzLnNwZWN1bGFyVGludC5jb3B5KHQuc3BlY3VsYXJUaW50KSx0aGlzLnNwZWN1bGFyVGludE1hcD10LnNwZWN1bGFyVGludE1hcCx0aGlzfX1IZWUucHJvdG90eXBlLmlzTWVzaFBoeXNpY2FsTWF0ZXJpYWw9ITA7Y2xhc3MgRmVlIGV4dGVuZHMgdDR0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJNZXNoUGhvbmdNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgczR0KDE2Nzc3MjE1KSx0aGlzLnNwZWN1bGFyPW5ldyBzNHQoMTExODQ4MSksdGhpcy5zaGluaW5lc3M9MzAsdGhpcy5tYXA9bnVsbCx0aGlzLmxpZ2h0TWFwPW51bGwsdGhpcy5saWdodE1hcEludGVuc2l0eT0xLHRoaXMuYW9NYXA9bnVsbCx0aGlzLmFvTWFwSW50ZW5zaXR5PTEsdGhpcy5lbWlzc2l2ZT1uZXcgczR0KDApLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlTWFwPW51bGwsdGhpcy5idW1wTWFwPW51bGwsdGhpcy5idW1wU2NhbGU9MSx0aGlzLm5vcm1hbE1hcD1udWxsLHRoaXMubm9ybWFsTWFwVHlwZT0wLHRoaXMubm9ybWFsU2NhbGU9bmV3IEM1dCgxLDEpLHRoaXMuZGlzcGxhY2VtZW50TWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT0xLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz0wLHRoaXMuc3BlY3VsYXJNYXA9bnVsbCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy5lbnZNYXA9bnVsbCx0aGlzLmNvbWJpbmU9MCx0aGlzLnJlZmxlY3Rpdml0eT0xLHRoaXMucmVmcmFjdGlvblJhdGlvPS45OCx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMud2lyZWZyYW1lTGluZWNhcD0icm91bmQiLHRoaXMud2lyZWZyYW1lTGluZWpvaW49InJvdW5kIix0aGlzLmZsYXRTaGFkaW5nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMuc3BlY3VsYXIuY29weSh0LnNwZWN1bGFyKSx0aGlzLnNoaW5pbmVzcz10LnNoaW5pbmVzcyx0aGlzLm1hcD10Lm1hcCx0aGlzLmxpZ2h0TWFwPXQubGlnaHRNYXAsdGhpcy5saWdodE1hcEludGVuc2l0eT10LmxpZ2h0TWFwSW50ZW5zaXR5LHRoaXMuYW9NYXA9dC5hb01hcCx0aGlzLmFvTWFwSW50ZW5zaXR5PXQuYW9NYXBJbnRlbnNpdHksdGhpcy5lbWlzc2l2ZS5jb3B5KHQuZW1pc3NpdmUpLHRoaXMuZW1pc3NpdmVNYXA9dC5lbWlzc2l2ZU1hcCx0aGlzLmVtaXNzaXZlSW50ZW5zaXR5PXQuZW1pc3NpdmVJbnRlbnNpdHksdGhpcy5idW1wTWFwPXQuYnVtcE1hcCx0aGlzLmJ1bXBTY2FsZT10LmJ1bXBTY2FsZSx0aGlzLm5vcm1hbE1hcD10Lm5vcm1hbE1hcCx0aGlzLm5vcm1hbE1hcFR5cGU9dC5ub3JtYWxNYXBUeXBlLHRoaXMubm9ybWFsU2NhbGUuY29weSh0Lm5vcm1hbFNjYWxlKSx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzLnNwZWN1bGFyTWFwPXQuc3BlY3VsYXJNYXAsdGhpcy5hbHBoYU1hcD10LmFscGhhTWFwLHRoaXMuZW52TWFwPXQuZW52TWFwLHRoaXMuY29tYmluZT10LmNvbWJpbmUsdGhpcy5yZWZsZWN0aXZpdHk9dC5yZWZsZWN0aXZpdHksdGhpcy5yZWZyYWN0aW9uUmF0aW89dC5yZWZyYWN0aW9uUmF0aW8sdGhpcy53aXJlZnJhbWU9dC53aXJlZnJhbWUsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgsdGhpcy53aXJlZnJhbWVMaW5lY2FwPXQud2lyZWZyYW1lTGluZWNhcCx0aGlzLndpcmVmcmFtZUxpbmVqb2luPXQud2lyZWZyYW1lTGluZWpvaW4sdGhpcy5mbGF0U2hhZGluZz10LmZsYXRTaGFkaW5nLHRoaXN9fUZlZS5wcm90b3R5cGUuaXNNZXNoUGhvbmdNYXRlcmlhbD0hMDtjbGFzcyBWZWUgZXh0ZW5kcyB0NHR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLmRlZmluZXM9e1RPT046IiJ9LHRoaXMudHlwZT0iTWVzaFRvb25NYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgczR0KDE2Nzc3MjE1KSx0aGlzLm1hcD1udWxsLHRoaXMuZ3JhZGllbnRNYXA9bnVsbCx0aGlzLmxpZ2h0TWFwPW51bGwsdGhpcy5saWdodE1hcEludGVuc2l0eT0xLHRoaXMuYW9NYXA9bnVsbCx0aGlzLmFvTWFwSW50ZW5zaXR5PTEsdGhpcy5lbWlzc2l2ZT1uZXcgczR0KDApLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlTWFwPW51bGwsdGhpcy5idW1wTWFwPW51bGwsdGhpcy5idW1wU2NhbGU9MSx0aGlzLm5vcm1hbE1hcD1udWxsLHRoaXMubm9ybWFsTWFwVHlwZT0wLHRoaXMubm9ybWFsU2NhbGU9bmV3IEM1dCgxLDEpLHRoaXMuZGlzcGxhY2VtZW50TWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT0xLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz0wLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMud2lyZWZyYW1lTGluZWNhcD0icm91bmQiLHRoaXMud2lyZWZyYW1lTGluZWpvaW49InJvdW5kIix0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuY29sb3IuY29weSh0LmNvbG9yKSx0aGlzLm1hcD10Lm1hcCx0aGlzLmdyYWRpZW50TWFwPXQuZ3JhZGllbnRNYXAsdGhpcy5saWdodE1hcD10LmxpZ2h0TWFwLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9dC5saWdodE1hcEludGVuc2l0eSx0aGlzLmFvTWFwPXQuYW9NYXAsdGhpcy5hb01hcEludGVuc2l0eT10LmFvTWFwSW50ZW5zaXR5LHRoaXMuZW1pc3NpdmUuY29weSh0LmVtaXNzaXZlKSx0aGlzLmVtaXNzaXZlTWFwPXQuZW1pc3NpdmVNYXAsdGhpcy5lbWlzc2l2ZUludGVuc2l0eT10LmVtaXNzaXZlSW50ZW5zaXR5LHRoaXMuYnVtcE1hcD10LmJ1bXBNYXAsdGhpcy5idW1wU2NhbGU9dC5idW1wU2NhbGUsdGhpcy5ub3JtYWxNYXA9dC5ub3JtYWxNYXAsdGhpcy5ub3JtYWxNYXBUeXBlPXQubm9ybWFsTWFwVHlwZSx0aGlzLm5vcm1hbFNjYWxlLmNvcHkodC5ub3JtYWxTY2FsZSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9dC5kaXNwbGFjZW1lbnRNYXAsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT10LmRpc3BsYWNlbWVudFNjYWxlLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz10LmRpc3BsYWNlbWVudEJpYXMsdGhpcy5hbHBoYU1hcD10LmFscGhhTWFwLHRoaXMud2lyZWZyYW1lPXQud2lyZWZyYW1lLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPXQud2lyZWZyYW1lTGluZXdpZHRoLHRoaXMud2lyZWZyYW1lTGluZWNhcD10LndpcmVmcmFtZUxpbmVjYXAsdGhpcy53aXJlZnJhbWVMaW5lam9pbj10LndpcmVmcmFtZUxpbmVqb2luLHRoaXN9fVZlZS5wcm90b3R5cGUuaXNNZXNoVG9vbk1hdGVyaWFsPSEwO2NsYXNzIFVlZSBleHRlbmRzIHQ0dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTWVzaE5vcm1hbE1hdGVyaWFsIix0aGlzLmJ1bXBNYXA9bnVsbCx0aGlzLmJ1bXBTY2FsZT0xLHRoaXMubm9ybWFsTWFwPW51bGwsdGhpcy5ub3JtYWxNYXBUeXBlPTAsdGhpcy5ub3JtYWxTY2FsZT1uZXcgQzV0KDEsMSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLmZvZz0hMSx0aGlzLmZsYXRTaGFkaW5nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5idW1wTWFwPXQuYnVtcE1hcCx0aGlzLmJ1bXBTY2FsZT10LmJ1bXBTY2FsZSx0aGlzLm5vcm1hbE1hcD10Lm5vcm1hbE1hcCx0aGlzLm5vcm1hbE1hcFR5cGU9dC5ub3JtYWxNYXBUeXBlLHRoaXMubm9ybWFsU2NhbGUuY29weSh0Lm5vcm1hbFNjYWxlKSx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLmZsYXRTaGFkaW5nPXQuZmxhdFNoYWRpbmcsdGhpc319VWVlLnByb3RvdHlwZS5pc01lc2hOb3JtYWxNYXRlcmlhbD0hMDtjbGFzcyBqZWUgZXh0ZW5kcyB0NHR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9Ik1lc2hMYW1iZXJ0TWF0ZXJpYWwiLHRoaXMuY29sb3I9bmV3IHM0dCgxNjc3NzIxNSksdGhpcy5tYXA9bnVsbCx0aGlzLmxpZ2h0TWFwPW51bGwsdGhpcy5saWdodE1hcEludGVuc2l0eT0xLHRoaXMuYW9NYXA9bnVsbCx0aGlzLmFvTWFwSW50ZW5zaXR5PTEsdGhpcy5lbWlzc2l2ZT1uZXcgczR0KDApLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlTWFwPW51bGwsdGhpcy5zcGVjdWxhck1hcD1udWxsLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLmVudk1hcD1udWxsLHRoaXMuY29tYmluZT0wLHRoaXMucmVmbGVjdGl2aXR5PTEsdGhpcy5yZWZyYWN0aW9uUmF0aW89Ljk4LHRoaXMud2lyZWZyYW1lPSExLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPTEsdGhpcy53aXJlZnJhbWVMaW5lY2FwPSJyb3VuZCIsdGhpcy53aXJlZnJhbWVMaW5lam9pbj0icm91bmQiLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubWFwPXQubWFwLHRoaXMubGlnaHRNYXA9dC5saWdodE1hcCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PXQubGlnaHRNYXBJbnRlbnNpdHksdGhpcy5hb01hcD10LmFvTWFwLHRoaXMuYW9NYXBJbnRlbnNpdHk9dC5hb01hcEludGVuc2l0eSx0aGlzLmVtaXNzaXZlLmNvcHkodC5lbWlzc2l2ZSksdGhpcy5lbWlzc2l2ZU1hcD10LmVtaXNzaXZlTWFwLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9dC5lbWlzc2l2ZUludGVuc2l0eSx0aGlzLnNwZWN1bGFyTWFwPXQuc3BlY3VsYXJNYXAsdGhpcy5hbHBoYU1hcD10LmFscGhhTWFwLHRoaXMuZW52TWFwPXQuZW52TWFwLHRoaXMuY29tYmluZT10LmNvbWJpbmUsdGhpcy5yZWZsZWN0aXZpdHk9dC5yZWZsZWN0aXZpdHksdGhpcy5yZWZyYWN0aW9uUmF0aW89dC5yZWZyYWN0aW9uUmF0aW8sdGhpcy53aXJlZnJhbWU9dC53aXJlZnJhbWUsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgsdGhpcy53aXJlZnJhbWVMaW5lY2FwPXQud2lyZWZyYW1lTGluZWNhcCx0aGlzLndpcmVmcmFtZUxpbmVqb2luPXQud2lyZWZyYW1lTGluZWpvaW4sdGhpc319amVlLnByb3RvdHlwZS5pc01lc2hMYW1iZXJ0TWF0ZXJpYWw9ITA7Y2xhc3MgR2VlIGV4dGVuZHMgdDR0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5kZWZpbmVzPXtNQVRDQVA6IiJ9LHRoaXMudHlwZT0iTWVzaE1hdGNhcE1hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBzNHQoMTY3NzcyMTUpLHRoaXMubWF0Y2FwPW51bGwsdGhpcy5tYXA9bnVsbCx0aGlzLmJ1bXBNYXA9bnVsbCx0aGlzLmJ1bXBTY2FsZT0xLHRoaXMubm9ybWFsTWFwPW51bGwsdGhpcy5ub3JtYWxNYXBUeXBlPTAsdGhpcy5ub3JtYWxTY2FsZT1uZXcgQzV0KDEsMSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPTEsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPTAsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuZmxhdFNoYWRpbmc9ITEsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmRlZmluZXM9e01BVENBUDoiIn0sdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubWF0Y2FwPXQubWF0Y2FwLHRoaXMubWFwPXQubWFwLHRoaXMuYnVtcE1hcD10LmJ1bXBNYXAsdGhpcy5idW1wU2NhbGU9dC5idW1wU2NhbGUsdGhpcy5ub3JtYWxNYXA9dC5ub3JtYWxNYXAsdGhpcy5ub3JtYWxNYXBUeXBlPXQubm9ybWFsTWFwVHlwZSx0aGlzLm5vcm1hbFNjYWxlLmNvcHkodC5ub3JtYWxTY2FsZSksdGhpcy5kaXNwbGFjZW1lbnRNYXA9dC5kaXNwbGFjZW1lbnRNYXAsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT10LmRpc3BsYWNlbWVudFNjYWxlLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz10LmRpc3BsYWNlbWVudEJpYXMsdGhpcy5hbHBoYU1hcD10LmFscGhhTWFwLHRoaXMuZmxhdFNoYWRpbmc9dC5mbGF0U2hhZGluZyx0aGlzfX1HZWUucHJvdG90eXBlLmlzTWVzaE1hdGNhcE1hdGVyaWFsPSEwO2NsYXNzIFdlZSBleHRlbmRzIFg3dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iTGluZURhc2hlZE1hdGVyaWFsIix0aGlzLnNjYWxlPTEsdGhpcy5kYXNoU2l6ZT0zLHRoaXMuZ2FwU2l6ZT0xLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5zY2FsZT10LnNjYWxlLHRoaXMuZGFzaFNpemU9dC5kYXNoU2l6ZSx0aGlzLmdhcFNpemU9dC5nYXBTaXplLHRoaXN9fVdlZS5wcm90b3R5cGUuaXNMaW5lRGFzaGVkTWF0ZXJpYWw9ITA7dmFyIHFlZT1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxTaGFkb3dNYXRlcmlhbDpEZWUsU3ByaXRlTWF0ZXJpYWw6cDd0LFJhd1NoYWRlck1hdGVyaWFsOms2dCxTaGFkZXJNYXRlcmlhbDpuNnQsUG9pbnRzTWF0ZXJpYWw6b3RlLE1lc2hQaHlzaWNhbE1hdGVyaWFsOkhlZSxNZXNoU3RhbmRhcmRNYXRlcmlhbDpCZWUsTWVzaFBob25nTWF0ZXJpYWw6RmVlLE1lc2hUb29uTWF0ZXJpYWw6VmVlLE1lc2hOb3JtYWxNYXRlcmlhbDpVZWUsTWVzaExhbWJlcnRNYXRlcmlhbDpqZWUsTWVzaERlcHRoTWF0ZXJpYWw6WTh0LE1lc2hEaXN0YW5jZU1hdGVyaWFsOlg4dCxNZXNoQmFzaWNNYXRlcmlhbDpsNHQsTWVzaE1hdGNhcE1hdGVyaWFsOkdlZSxMaW5lRGFzaGVkTWF0ZXJpYWw6V2VlLExpbmVCYXNpY01hdGVyaWFsOlg3dCxNYXRlcmlhbDp0NHR9KTtjb25zdCBZZWU9e2FycmF5U2xpY2U6ZnVuY3Rpb24odCxlLG4pe3JldHVybiBZZWUuaXNUeXBlZEFycmF5KHQpP25ldyB0LmNvbnN0cnVjdG9yKHQuc3ViYXJyYXkoZSx2b2lkIDAhPT1uP246dC5sZW5ndGgpKTp0LnNsaWNlKGUsbil9LGNvbnZlcnRBcnJheTpmdW5jdGlvbih0LGUsbil7cmV0dXJuIXR8fCFuJiZ0LmNvbnN0cnVjdG9yPT09ZT90OiJudW1iZXIiPT10eXBlb2YgZS5CWVRFU19QRVJfRUxFTUVOVD9uZXcgZSh0KTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KX0saXNUeXBlZEFycmF5OmZ1bmN0aW9uKHQpe3JldHVybiBBcnJheUJ1ZmZlci5pc1ZpZXcodCkmJiEodCBpbnN0YW5jZW9mIERhdGFWaWV3KX0sZ2V0S2V5ZnJhbWVPcmRlcjpmdW5jdGlvbih0KXtjb25zdCBlPXQubGVuZ3RoLG49bmV3IEFycmF5KGUpO2ZvcihsZXQgdD0wO3QhPT1lOysrdCluW3RdPXQ7cmV0dXJuIG4uc29ydCgoZnVuY3Rpb24gaShlLG4pe3JldHVybiB0W2VdLXRbbl19KSksbn0sc29ydGVkQXJyYXk6ZnVuY3Rpb24odCxlLG4pe2NvbnN0IGk9dC5sZW5ndGgscj1uZXcgdC5jb25zdHJ1Y3RvcihpKTtmb3IobGV0IG89MCxhPTA7YSE9PWk7KytvKXtjb25zdCBpPW5bb10qZTtmb3IobGV0IG49MDtuIT09ZTsrK24pclthKytdPXRbaStuXX1yZXR1cm4gcn0sZmxhdHRlbkpTT046ZnVuY3Rpb24odCxlLG4saSl7bGV0IHI9MSxvPXRbMF07Zm9yKDt2b2lkIDAhPT1vJiZ2b2lkIDA9PT1vW2ldOylvPXRbcisrXTtpZih2b2lkIDA9PT1vKXJldHVybjtsZXQgYT1vW2ldO2lmKHZvaWQgMCE9PWEpaWYoQXJyYXkuaXNBcnJheShhKSlkb3thPW9baV0sdm9pZCAwIT09YSYmKGUucHVzaChvLnRpbWUpLG4ucHVzaC5hcHBseShuLGEpKSxvPXRbcisrXX13aGlsZSh2b2lkIDAhPT1vKTtlbHNlIGlmKHZvaWQgMCE9PWEudG9BcnJheSlkb3thPW9baV0sdm9pZCAwIT09YSYmKGUucHVzaChvLnRpbWUpLGEudG9BcnJheShuLG4ubGVuZ3RoKSksbz10W3IrK119d2hpbGUodm9pZCAwIT09byk7ZWxzZSBkb3thPW9baV0sdm9pZCAwIT09YSYmKGUucHVzaChvLnRpbWUpLG4ucHVzaChhKSksbz10W3IrK119d2hpbGUodm9pZCAwIT09byl9LHN1YmNsaXA6ZnVuY3Rpb24odCxlLG4saSxyPTMwKXtjb25zdCBvPXQuY2xvbmUoKTtvLm5hbWU9ZTtjb25zdCBhPVtdO2ZvcihsZXQgdD0wO3Q8by50cmFja3MubGVuZ3RoOysrdCl7Y29uc3QgZT1vLnRyYWNrc1t0XSxzPWUuZ2V0VmFsdWVTaXplKCksbD1bXSxjPVtdO2ZvcihsZXQgdD0wO3Q8ZS50aW1lcy5sZW5ndGg7Kyt0KXtjb25zdCBvPWUudGltZXNbdF0qcjtpZighKG88bnx8bz49aSkpe2wucHVzaChlLnRpbWVzW3RdKTtmb3IobGV0IG49MDtuPHM7KytuKWMucHVzaChlLnZhbHVlc1t0KnMrbl0pfX0wIT09bC5sZW5ndGgmJihlLnRpbWVzPVllZS5jb252ZXJ0QXJyYXkobCxlLnRpbWVzLmNvbnN0cnVjdG9yKSxlLnZhbHVlcz1ZZWUuY29udmVydEFycmF5KGMsZS52YWx1ZXMuY29uc3RydWN0b3IpLGEucHVzaChlKSl9by50cmFja3M9YTtsZXQgcz0xLzA7Zm9yKGxldCB0PTA7dDxvLnRyYWNrcy5sZW5ndGg7Kyt0KXM+by50cmFja3NbdF0udGltZXNbMF0mJihzPW8udHJhY2tzW3RdLnRpbWVzWzBdKTtmb3IobGV0IHQ9MDt0PG8udHJhY2tzLmxlbmd0aDsrK3Qpby50cmFja3NbdF0uc2hpZnQoLTEqcyk7cmV0dXJuIG8ucmVzZXREdXJhdGlvbigpLG99LG1ha2VDbGlwQWRkaXRpdmU6ZnVuY3Rpb24odCxlPTAsbj10LGk9MzApe2k8PTAmJihpPTMwKTtjb25zdCByPW4udHJhY2tzLmxlbmd0aCxvPWUvaTtmb3IobGV0IGU9MDtlPHI7KytlKXtjb25zdCBpPW4udHJhY2tzW2VdLHI9aS5WYWx1ZVR5cGVOYW1lO2lmKCJib29sIj09PXJ8fCJzdHJpbmciPT09ciljb250aW51ZTtjb25zdCBhPXQudHJhY2tzLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5hbWU9PT1pLm5hbWUmJnQuVmFsdWVUeXBlTmFtZT09PXJ9KSk7aWYodm9pZCAwPT09YSljb250aW51ZTtsZXQgcz0wO2NvbnN0IGw9aS5nZXRWYWx1ZVNpemUoKTtpLmNyZWF0ZUludGVycG9sYW50LmlzSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kR0xURkN1YmljU3BsaW5lJiYocz1sLzMpO2xldCBjPTA7Y29uc3QgdT1hLmdldFZhbHVlU2l6ZSgpO2EuY3JlYXRlSW50ZXJwb2xhbnQuaXNJbnRlcnBvbGFudEZhY3RvcnlNZXRob2RHTFRGQ3ViaWNTcGxpbmUmJihjPXUvMyk7Y29uc3QgaD1pLnRpbWVzLmxlbmd0aC0xO2xldCBkO2lmKG88PWkudGltZXNbMF0pe2Q9WWVlLmFycmF5U2xpY2UoaS52YWx1ZXMscyxsLXMpfWVsc2UgaWYobz49aS50aW1lc1toXSl7Y29uc3QgdD1oKmwrcztkPVllZS5hcnJheVNsaWNlKGkudmFsdWVzLHQsdCtsLXMpfWVsc2V7Y29uc3QgdD1pLmNyZWF0ZUludGVycG9sYW50KCksZT1zLG49bC1zO3QuZXZhbHVhdGUobyksZD1ZZWUuYXJyYXlTbGljZSh0LnJlc3VsdEJ1ZmZlcixlLG4pfWlmKCJxdWF0ZXJuaW9uIj09PXIpeyhuZXcgQjV0KS5mcm9tQXJyYXkoZCkubm9ybWFsaXplKCkuY29uanVnYXRlKCkudG9BcnJheShkKX1jb25zdCBwPWEudGltZXMubGVuZ3RoO2ZvcihsZXQgdD0wO3Q8cDsrK3Qpe2NvbnN0IGU9dCp1K2M7aWYoInF1YXRlcm5pb24iPT09cilCNXQubXVsdGlwbHlRdWF0ZXJuaW9uc0ZsYXQoYS52YWx1ZXMsZSxkLDAsYS52YWx1ZXMsZSk7ZWxzZXtjb25zdCB0PXUtMipjO2ZvcihsZXQgbj0wO248dDsrK24pYS52YWx1ZXNbZStuXS09ZFtuXX19fXJldHVybiB0LmJsZW5kTW9kZT1qMnQsdH19O2NsYXNzIFhlZXtjb25zdHJ1Y3Rvcih0LGUsbixpKXt0aGlzLnBhcmFtZXRlclBvc2l0aW9ucz10LHRoaXMuX2NhY2hlZEluZGV4PTAsdGhpcy5yZXN1bHRCdWZmZXI9dm9pZCAwIT09aT9pOm5ldyBlLmNvbnN0cnVjdG9yKG4pLHRoaXMuc2FtcGxlVmFsdWVzPWUsdGhpcy52YWx1ZVNpemU9bix0aGlzLnNldHRpbmdzPW51bGwsdGhpcy5EZWZhdWx0U2V0dGluZ3NfPXt9fWV2YWx1YXRlKHQpe2NvbnN0IGU9dGhpcy5wYXJhbWV0ZXJQb3NpdGlvbnM7bGV0IG49dGhpcy5fY2FjaGVkSW5kZXgsaT1lW25dLHI9ZVtuLTFdO3Q6e2U6e2xldCBvO246e2k6aWYoISh0PGkpKXtmb3IobGV0IG89bisyOzspe2lmKHZvaWQgMD09PWkpe2lmKHQ8cilicmVhayBpO3JldHVybiBuPWUubGVuZ3RoLHRoaXMuX2NhY2hlZEluZGV4PW4sdGhpcy5hZnRlckVuZF8obi0xLHQscil9aWYobj09PW8pYnJlYWs7aWYocj1pLGk9ZVsrK25dLHQ8aSlicmVhayBlfW89ZS5sZW5ndGg7YnJlYWsgbn1pZih0Pj1yKWJyZWFrIHQ7e2NvbnN0IGE9ZVsxXTt0PGEmJihuPTIscj1hKTtmb3IobGV0IG89bi0yOzspe2lmKHZvaWQgMD09PXIpcmV0dXJuIHRoaXMuX2NhY2hlZEluZGV4PTAsdGhpcy5iZWZvcmVTdGFydF8oMCx0LGkpO2lmKG49PT1vKWJyZWFrO2lmKGk9cixyPWVbLS1uLTFdLHQ+PXIpYnJlYWsgZX1vPW4sbj0wfX1mb3IoO248bzspe2NvbnN0IGk9bitvPj4+MTt0PGVbaV0/bz1pOm49aSsxfWlmKGk9ZVtuXSxyPWVbbi0xXSx2b2lkIDA9PT1yKXJldHVybiB0aGlzLl9jYWNoZWRJbmRleD0wLHRoaXMuYmVmb3JlU3RhcnRfKDAsdCxpKTtpZih2b2lkIDA9PT1pKXJldHVybiBuPWUubGVuZ3RoLHRoaXMuX2NhY2hlZEluZGV4PW4sdGhpcy5hZnRlckVuZF8obi0xLHIsdCl9dGhpcy5fY2FjaGVkSW5kZXg9bix0aGlzLmludGVydmFsQ2hhbmdlZF8obixyLGkpfXJldHVybiB0aGlzLmludGVycG9sYXRlXyhuLHIsdCxpKX1nZXRTZXR0aW5nc18oKXtyZXR1cm4gdGhpcy5zZXR0aW5nc3x8dGhpcy5EZWZhdWx0U2V0dGluZ3NffWNvcHlTYW1wbGVWYWx1ZV8odCl7Y29uc3QgZT10aGlzLnJlc3VsdEJ1ZmZlcixuPXRoaXMuc2FtcGxlVmFsdWVzLGk9dGhpcy52YWx1ZVNpemUscj10Kmk7Zm9yKGxldCB0PTA7dCE9PWk7Kyt0KWVbdF09bltyK3RdO3JldHVybiBlfWludGVycG9sYXRlXygpe3Rocm93IG5ldyBFcnJvcigiY2FsbCB0byBhYnN0cmFjdCBtZXRob2QiKX1pbnRlcnZhbENoYW5nZWRfKCl7fX1YZWUucHJvdG90eXBlLmJlZm9yZVN0YXJ0Xz1YZWUucHJvdG90eXBlLmNvcHlTYW1wbGVWYWx1ZV8sWGVlLnByb3RvdHlwZS5hZnRlckVuZF89WGVlLnByb3RvdHlwZS5jb3B5U2FtcGxlVmFsdWVfO2NsYXNzICRlZSBleHRlbmRzIFhlZXtjb25zdHJ1Y3Rvcih0LGUsbixpKXtzdXBlcih0LGUsbixpKSx0aGlzLl93ZWlnaHRQcmV2PS0wLHRoaXMuX29mZnNldFByZXY9LTAsdGhpcy5fd2VpZ2h0TmV4dD0tMCx0aGlzLl9vZmZzZXROZXh0PS0wLHRoaXMuRGVmYXVsdFNldHRpbmdzXz17ZW5kaW5nU3RhcnQ6SDJ0LGVuZGluZ0VuZDpIMnR9fWludGVydmFsQ2hhbmdlZF8odCxlLG4pe2NvbnN0IGk9dGhpcy5wYXJhbWV0ZXJQb3NpdGlvbnM7bGV0IHI9dC0yLG89dCsxLGE9aVtyXSxzPWlbb107aWYodm9pZCAwPT09YSlzd2l0Y2godGhpcy5nZXRTZXR0aW5nc18oKS5lbmRpbmdTdGFydCl7Y2FzZSBGMnQ6cj10LGE9MiplLW47YnJlYWs7Y2FzZSBWMnQ6cj1pLmxlbmd0aC0yLGE9ZStpW3JdLWlbcisxXTticmVhaztkZWZhdWx0OnI9dCxhPW59aWYodm9pZCAwPT09cylzd2l0Y2godGhpcy5nZXRTZXR0aW5nc18oKS5lbmRpbmdFbmQpe2Nhc2UgRjJ0Om89dCxzPTIqbi1lO2JyZWFrO2Nhc2UgVjJ0Om89MSxzPW4raVsxXS1pWzBdO2JyZWFrO2RlZmF1bHQ6bz10LTEscz1lfWNvbnN0IGw9LjUqKG4tZSksYz10aGlzLnZhbHVlU2l6ZTt0aGlzLl93ZWlnaHRQcmV2PWwvKGUtYSksdGhpcy5fd2VpZ2h0TmV4dD1sLyhzLW4pLHRoaXMuX29mZnNldFByZXY9cipjLHRoaXMuX29mZnNldE5leHQ9bypjfWludGVycG9sYXRlXyh0LGUsbixpKXtjb25zdCByPXRoaXMucmVzdWx0QnVmZmVyLG89dGhpcy5zYW1wbGVWYWx1ZXMsYT10aGlzLnZhbHVlU2l6ZSxzPXQqYSxsPXMtYSxjPXRoaXMuX29mZnNldFByZXYsdT10aGlzLl9vZmZzZXROZXh0LGg9dGhpcy5fd2VpZ2h0UHJldixkPXRoaXMuX3dlaWdodE5leHQscD0obi1lKS8oaS1lKSxmPXAqcCxtPWYqcCxnPS1oKm0rMipoKmYtaCpwLF89KDEraCkqbSsoLTEuNS0yKmgpKmYrKC0uNStoKSpwKzEseT0oLTEtZCkqbSsoMS41K2QpKmYrLjUqcCx2PWQqbS1kKmY7Zm9yKGxldCB0PTA7dCE9PWE7Kyt0KXJbdF09ZypvW2MrdF0rXypvW2wrdF0reSpvW3MrdF0rdipvW3UrdF07cmV0dXJuIHJ9fWNsYXNzIEtlZSBleHRlbmRzIFhlZXtjb25zdHJ1Y3Rvcih0LGUsbixpKXtzdXBlcih0LGUsbixpKX1pbnRlcnBvbGF0ZV8odCxlLG4saSl7Y29uc3Qgcj10aGlzLnJlc3VsdEJ1ZmZlcixvPXRoaXMuc2FtcGxlVmFsdWVzLGE9dGhpcy52YWx1ZVNpemUscz10KmEsbD1zLWEsYz0obi1lKS8oaS1lKSx1PTEtYztmb3IobGV0IHQ9MDt0IT09YTsrK3Qpclt0XT1vW2wrdF0qdStvW3MrdF0qYztyZXR1cm4gcn19Y2xhc3MgWmVlIGV4dGVuZHMgWGVle2NvbnN0cnVjdG9yKHQsZSxuLGkpe3N1cGVyKHQsZSxuLGkpfWludGVycG9sYXRlXyh0KXtyZXR1cm4gdGhpcy5jb3B5U2FtcGxlVmFsdWVfKHQtMSl9fWNsYXNzIEplZXtjb25zdHJ1Y3Rvcih0LGUsbixpKXtpZih2b2lkIDA9PT10KXRocm93IG5ldyBFcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogdHJhY2sgbmFtZSBpcyB1bmRlZmluZWQiKTtpZih2b2lkIDA9PT1lfHwwPT09ZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiBubyBrZXlmcmFtZXMgaW4gdHJhY2sgbmFtZWQgIit0KTt0aGlzLm5hbWU9dCx0aGlzLnRpbWVzPVllZS5jb252ZXJ0QXJyYXkoZSx0aGlzLlRpbWVCdWZmZXJUeXBlKSx0aGlzLnZhbHVlcz1ZZWUuY29udmVydEFycmF5KG4sdGhpcy5WYWx1ZUJ1ZmZlclR5cGUpLHRoaXMuc2V0SW50ZXJwb2xhdGlvbihpfHx0aGlzLkRlZmF1bHRJbnRlcnBvbGF0aW9uKX1zdGF0aWMgdG9KU09OKHQpe2NvbnN0IGU9dC5jb25zdHJ1Y3RvcjtsZXQgbjtpZihlLnRvSlNPTiE9PXRoaXMudG9KU09OKW49ZS50b0pTT04odCk7ZWxzZXtuPXtuYW1lOnQubmFtZSx0aW1lczpZZWUuY29udmVydEFycmF5KHQudGltZXMsQXJyYXkpLHZhbHVlczpZZWUuY29udmVydEFycmF5KHQudmFsdWVzLEFycmF5KX07Y29uc3QgZT10LmdldEludGVycG9sYXRpb24oKTtlIT09dC5EZWZhdWx0SW50ZXJwb2xhdGlvbiYmKG4uaW50ZXJwb2xhdGlvbj1lKX1yZXR1cm4gbi50eXBlPXQuVmFsdWVUeXBlTmFtZSxufUludGVycG9sYW50RmFjdG9yeU1ldGhvZERpc2NyZXRlKHQpe3JldHVybiBuZXcgWmVlKHRoaXMudGltZXMsdGhpcy52YWx1ZXMsdGhpcy5nZXRWYWx1ZVNpemUoKSx0KX1JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RMaW5lYXIodCl7cmV0dXJuIG5ldyBLZWUodGhpcy50aW1lcyx0aGlzLnZhbHVlcyx0aGlzLmdldFZhbHVlU2l6ZSgpLHQpfUludGVycG9sYW50RmFjdG9yeU1ldGhvZFNtb290aCh0KXtyZXR1cm4gbmV3ICRlZSh0aGlzLnRpbWVzLHRoaXMudmFsdWVzLHRoaXMuZ2V0VmFsdWVTaXplKCksdCl9c2V0SW50ZXJwb2xhdGlvbih0KXtsZXQgZTtzd2l0Y2godCl7Y2FzZSB6MnQ6ZT10aGlzLkludGVycG9sYW50RmFjdG9yeU1ldGhvZERpc2NyZXRlO2JyZWFrO2Nhc2UgRDJ0OmU9dGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RMaW5lYXI7YnJlYWs7Y2FzZSBCMnQ6ZT10aGlzLkludGVycG9sYW50RmFjdG9yeU1ldGhvZFNtb290aH1pZih2b2lkIDA9PT1lKXtjb25zdCBlPSJ1bnN1cHBvcnRlZCBpbnRlcnBvbGF0aW9uIGZvciAiK3RoaXMuVmFsdWVUeXBlTmFtZSsiIGtleWZyYW1lIHRyYWNrIG5hbWVkICIrdGhpcy5uYW1lO2lmKHZvaWQgMD09PXRoaXMuY3JlYXRlSW50ZXJwb2xhbnQpe2lmKHQ9PT10aGlzLkRlZmF1bHRJbnRlcnBvbGF0aW9uKXRocm93IG5ldyBFcnJvcihlKTt0aGlzLnNldEludGVycG9sYXRpb24odGhpcy5EZWZhdWx0SW50ZXJwb2xhdGlvbil9cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuS2V5ZnJhbWVUcmFjazoiLGUpLHRoaXN9cmV0dXJuIHRoaXMuY3JlYXRlSW50ZXJwb2xhbnQ9ZSx0aGlzfWdldEludGVycG9sYXRpb24oKXtzd2l0Y2godGhpcy5jcmVhdGVJbnRlcnBvbGFudCl7Y2FzZSB0aGlzLkludGVycG9sYW50RmFjdG9yeU1ldGhvZERpc2NyZXRlOnJldHVybiB6MnQ7Y2FzZSB0aGlzLkludGVycG9sYW50RmFjdG9yeU1ldGhvZExpbmVhcjpyZXR1cm4gRDJ0O2Nhc2UgdGhpcy5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RTbW9vdGg6cmV0dXJuIEIydH19Z2V0VmFsdWVTaXplKCl7cmV0dXJuIHRoaXMudmFsdWVzLmxlbmd0aC90aGlzLnRpbWVzLmxlbmd0aH1zaGlmdCh0KXtpZigwIT09dCl7Y29uc3QgZT10aGlzLnRpbWVzO2ZvcihsZXQgbj0wLGk9ZS5sZW5ndGg7biE9PWk7KytuKWVbbl0rPXR9cmV0dXJuIHRoaXN9c2NhbGUodCl7aWYoMSE9PXQpe2NvbnN0IGU9dGhpcy50aW1lcztmb3IobGV0IG49MCxpPWUubGVuZ3RoO24hPT1pOysrbillW25dKj10fXJldHVybiB0aGlzfXRyaW0odCxlKXtjb25zdCBuPXRoaXMudGltZXMsaT1uLmxlbmd0aDtsZXQgcj0wLG89aS0xO2Zvcig7ciE9PWkmJm5bcl08dDspKytyO2Zvcig7LTEhPT1vJiZuW29dPmU7KS0tbztpZigrK28sMCE9PXJ8fG8hPT1pKXtyPj1vJiYobz1NYXRoLm1heChvLDEpLHI9by0xKTtjb25zdCB0PXRoaXMuZ2V0VmFsdWVTaXplKCk7dGhpcy50aW1lcz1ZZWUuYXJyYXlTbGljZShuLHIsbyksdGhpcy52YWx1ZXM9WWVlLmFycmF5U2xpY2UodGhpcy52YWx1ZXMscip0LG8qdCl9cmV0dXJuIHRoaXN9dmFsaWRhdGUoKXtsZXQgdD0hMDtjb25zdCBlPXRoaXMuZ2V0VmFsdWVTaXplKCk7ZS1NYXRoLmZsb29yKGUpIT0wJiYoY29uc29sZS5lcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogSW52YWxpZCB2YWx1ZSBzaXplIGluIHRyYWNrLiIsdGhpcyksdD0hMSk7Y29uc3Qgbj10aGlzLnRpbWVzLGk9dGhpcy52YWx1ZXMscj1uLmxlbmd0aDswPT09ciYmKGNvbnNvbGUuZXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IFRyYWNrIGlzIGVtcHR5LiIsdGhpcyksdD0hMSk7bGV0IG89bnVsbDtmb3IobGV0IGU9MDtlIT09cjtlKyspe2NvbnN0IGk9bltlXTtpZigibnVtYmVyIj09dHlwZW9mIGkmJmlzTmFOKGkpKXtjb25zb2xlLmVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiBUaW1lIGlzIG5vdCBhIHZhbGlkIG51bWJlci4iLHRoaXMsZSxpKSx0PSExO2JyZWFrfWlmKG51bGwhPT1vJiZvPmkpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IE91dCBvZiBvcmRlciBrZXlzLiIsdGhpcyxlLGksbyksdD0hMTticmVha31vPWl9aWYodm9pZCAwIT09aSYmWWVlLmlzVHlwZWRBcnJheShpKSlmb3IobGV0IGU9MCxuPWkubGVuZ3RoO2UhPT1uOysrZSl7Y29uc3Qgbj1pW2VdO2lmKGlzTmFOKG4pKXtjb25zb2xlLmVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiBWYWx1ZSBpcyBub3QgYSB2YWxpZCBudW1iZXIuIix0aGlzLGUsbiksdD0hMTticmVha319cmV0dXJuIHR9b3B0aW1pemUoKXtjb25zdCB0PVllZS5hcnJheVNsaWNlKHRoaXMudGltZXMpLGU9WWVlLmFycmF5U2xpY2UodGhpcy52YWx1ZXMpLG49dGhpcy5nZXRWYWx1ZVNpemUoKSxpPXRoaXMuZ2V0SW50ZXJwb2xhdGlvbigpPT09QjJ0LHI9dC5sZW5ndGgtMTtsZXQgbz0xO2ZvcihsZXQgYT0xO2E8cjsrK2Epe2xldCByPSExO2NvbnN0IHM9dFthXTtpZihzIT09dFthKzFdJiYoMSE9PWF8fHMhPT10WzBdKSlpZihpKXI9ITA7ZWxzZXtjb25zdCB0PWEqbixpPXQtbixvPXQrbjtmb3IobGV0IGE9MDthIT09bjsrK2Epe2NvbnN0IG49ZVt0K2FdO2lmKG4hPT1lW2krYV18fG4hPT1lW28rYV0pe3I9ITA7YnJlYWt9fX1pZihyKXtpZihhIT09byl7dFtvXT10W2FdO2NvbnN0IGk9YSpuLHI9bypuO2ZvcihsZXQgdD0wO3QhPT1uOysrdCllW3IrdF09ZVtpK3RdfSsrb319aWYocj4wKXt0W29dPXRbcl07Zm9yKGxldCB0PXIqbixpPW8qbixhPTA7YSE9PW47KythKWVbaSthXT1lW3QrYV07KytvfXJldHVybiBvIT09dC5sZW5ndGg/KHRoaXMudGltZXM9WWVlLmFycmF5U2xpY2UodCwwLG8pLHRoaXMudmFsdWVzPVllZS5hcnJheVNsaWNlKGUsMCxvKm4pKToodGhpcy50aW1lcz10LHRoaXMudmFsdWVzPWUpLHRoaXN9Y2xvbmUoKXtjb25zdCB0PVllZS5hcnJheVNsaWNlKHRoaXMudGltZXMsMCksZT1ZZWUuYXJyYXlTbGljZSh0aGlzLnZhbHVlcywwKSxuPW5ldygwLHRoaXMuY29uc3RydWN0b3IpKHRoaXMubmFtZSx0LGUpO3JldHVybiBuLmNyZWF0ZUludGVycG9sYW50PXRoaXMuY3JlYXRlSW50ZXJwb2xhbnQsbn19SmVlLnByb3RvdHlwZS5UaW1lQnVmZmVyVHlwZT1GbG9hdDMyQXJyYXksSmVlLnByb3RvdHlwZS5WYWx1ZUJ1ZmZlclR5cGU9RmxvYXQzMkFycmF5LEplZS5wcm90b3R5cGUuRGVmYXVsdEludGVycG9sYXRpb249RDJ0O2NsYXNzIFFlZSBleHRlbmRzIEplZXt9UWVlLnByb3RvdHlwZS5WYWx1ZVR5cGVOYW1lPSJib29sIixRZWUucHJvdG90eXBlLlZhbHVlQnVmZmVyVHlwZT1BcnJheSxRZWUucHJvdG90eXBlLkRlZmF1bHRJbnRlcnBvbGF0aW9uPXoydCxRZWUucHJvdG90eXBlLkludGVycG9sYW50RmFjdG9yeU1ldGhvZExpbmVhcj12b2lkIDAsUWVlLnByb3RvdHlwZS5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RTbW9vdGg9dm9pZCAwO2NsYXNzIHRuZSBleHRlbmRzIEplZXt9dG5lLnByb3RvdHlwZS5WYWx1ZVR5cGVOYW1lPSJjb2xvciI7Y2xhc3MgZW5lIGV4dGVuZHMgSmVle31lbmUucHJvdG90eXBlLlZhbHVlVHlwZU5hbWU9Im51bWJlciI7Y2xhc3Mgbm5lIGV4dGVuZHMgWGVle2NvbnN0cnVjdG9yKHQsZSxuLGkpe3N1cGVyKHQsZSxuLGkpfWludGVycG9sYXRlXyh0LGUsbixpKXtjb25zdCByPXRoaXMucmVzdWx0QnVmZmVyLG89dGhpcy5zYW1wbGVWYWx1ZXMsYT10aGlzLnZhbHVlU2l6ZSxzPShuLWUpLyhpLWUpO2xldCBsPXQqYTtmb3IobGV0IHQ9bCthO2whPT10O2wrPTQpQjV0LnNsZXJwRmxhdChyLDAsbyxsLWEsbyxsLHMpO3JldHVybiByfX1jbGFzcyBpbmUgZXh0ZW5kcyBKZWV7SW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kTGluZWFyKHQpe3JldHVybiBuZXcgbm5lKHRoaXMudGltZXMsdGhpcy52YWx1ZXMsdGhpcy5nZXRWYWx1ZVNpemUoKSx0KX19aW5lLnByb3RvdHlwZS5WYWx1ZVR5cGVOYW1lPSJxdWF0ZXJuaW9uIixpbmUucHJvdG90eXBlLkRlZmF1bHRJbnRlcnBvbGF0aW9uPUQydCxpbmUucHJvdG90eXBlLkludGVycG9sYW50RmFjdG9yeU1ldGhvZFNtb290aD12b2lkIDA7Y2xhc3Mgcm5lIGV4dGVuZHMgSmVle31ybmUucHJvdG90eXBlLlZhbHVlVHlwZU5hbWU9InN0cmluZyIscm5lLnByb3RvdHlwZS5WYWx1ZUJ1ZmZlclR5cGU9QXJyYXkscm5lLnByb3RvdHlwZS5EZWZhdWx0SW50ZXJwb2xhdGlvbj16MnQscm5lLnByb3RvdHlwZS5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RMaW5lYXI9dm9pZCAwLHJuZS5wcm90b3R5cGUuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kU21vb3RoPXZvaWQgMDtjbGFzcyBvbmUgZXh0ZW5kcyBKZWV7fW9uZS5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0idmVjdG9yIjtjbGFzcyBhbmV7Y29uc3RydWN0b3IodCxlPS0xLG4saT0yNTAwKXt0aGlzLm5hbWU9dCx0aGlzLnRyYWNrcz1uLHRoaXMuZHVyYXRpb249ZSx0aGlzLmJsZW5kTW9kZT1pLHRoaXMudXVpZD1hNXQoKSx0aGlzLmR1cmF0aW9uPDAmJnRoaXMucmVzZXREdXJhdGlvbigpfXN0YXRpYyBwYXJzZSh0KXtjb25zdCBlPVtdLG49dC50cmFja3MsaT0xLyh0LmZwc3x8MSk7Zm9yKGxldCB0PTAscj1uLmxlbmd0aDt0IT09cjsrK3QpZS5wdXNoKHNuZShuW3RdKS5zY2FsZShpKSk7Y29uc3Qgcj1uZXcgdGhpcyh0Lm5hbWUsdC5kdXJhdGlvbixlLHQuYmxlbmRNb2RlKTtyZXR1cm4gci51dWlkPXQudXVpZCxyfXN0YXRpYyB0b0pTT04odCl7Y29uc3QgZT1bXSxuPXQudHJhY2tzLGk9e25hbWU6dC5uYW1lLGR1cmF0aW9uOnQuZHVyYXRpb24sdHJhY2tzOmUsdXVpZDp0LnV1aWQsYmxlbmRNb2RlOnQuYmxlbmRNb2RlfTtmb3IobGV0IHQ9MCxpPW4ubGVuZ3RoO3QhPT1pOysrdCllLnB1c2goSmVlLnRvSlNPTihuW3RdKSk7cmV0dXJuIGl9c3RhdGljIENyZWF0ZUZyb21Nb3JwaFRhcmdldFNlcXVlbmNlKHQsZSxuLGkpe2NvbnN0IHI9ZS5sZW5ndGgsbz1bXTtmb3IobGV0IHQ9MDt0PHI7dCsrKXtsZXQgYT1bXSxzPVtdO2EucHVzaCgodCtyLTEpJXIsdCwodCsxKSVyKSxzLnB1c2goMCwxLDApO2NvbnN0IGw9WWVlLmdldEtleWZyYW1lT3JkZXIoYSk7YT1ZZWUuc29ydGVkQXJyYXkoYSwxLGwpLHM9WWVlLnNvcnRlZEFycmF5KHMsMSxsKSxpfHwwIT09YVswXXx8KGEucHVzaChyKSxzLnB1c2goc1swXSkpLG8ucHVzaChuZXcgZW5lKCIubW9ycGhUYXJnZXRJbmZsdWVuY2VzWyIrZVt0XS5uYW1lKyJdIixhLHMpLnNjYWxlKDEvbikpfXJldHVybiBuZXcgdGhpcyh0LC0xLG8pfXN0YXRpYyBmaW5kQnlOYW1lKHQsZSl7bGV0IG49dDtpZighQXJyYXkuaXNBcnJheSh0KSl7Y29uc3QgZT10O249ZS5nZW9tZXRyeSYmZS5nZW9tZXRyeS5hbmltYXRpb25zfHxlLmFuaW1hdGlvbnN9Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0KyspaWYoblt0XS5uYW1lPT09ZSlyZXR1cm4gblt0XTtyZXR1cm4gbnVsbH1zdGF0aWMgQ3JlYXRlQ2xpcHNGcm9tTW9ycGhUYXJnZXRTZXF1ZW5jZXModCxlLG4pe2NvbnN0IGk9e30scj0vXihbXHctXSo/KShbXGRdKykkLztmb3IobGV0IGU9MCxuPXQubGVuZ3RoO2U8bjtlKyspe2NvbnN0IG49dFtlXSxvPW4ubmFtZS5tYXRjaChyKTtpZihvJiZvLmxlbmd0aD4xKXtjb25zdCB0PW9bMV07bGV0IGU9aVt0XTtlfHwoaVt0XT1lPVtdKSxlLnB1c2gobil9fWNvbnN0IG89W107Zm9yKGNvbnN0IHQgaW4gaSlvLnB1c2godGhpcy5DcmVhdGVGcm9tTW9ycGhUYXJnZXRTZXF1ZW5jZSh0LGlbdF0sZSxuKSk7cmV0dXJuIG99c3RhdGljIHBhcnNlQW5pbWF0aW9uKHQsZSl7aWYoIXQpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIlRIUkVFLkFuaW1hdGlvbkNsaXA6IE5vIGFuaW1hdGlvbiBpbiBKU09OTG9hZGVyIGRhdGEuIiksbnVsbDtjb25zdCBuPWZ1bmN0aW9uKHQsZSxuLGkscil7aWYoMCE9PW4ubGVuZ3RoKXtjb25zdCBvPVtdLGE9W107WWVlLmZsYXR0ZW5KU09OKG4sbyxhLGkpLDAhPT1vLmxlbmd0aCYmci5wdXNoKG5ldyB0KGUsbyxhKSl9fSxpPVtdLHI9dC5uYW1lfHwiZGVmYXVsdCIsbz10LmZwc3x8MzAsYT10LmJsZW5kTW9kZTtsZXQgcz10Lmxlbmd0aHx8LTE7Y29uc3QgbD10LmhpZXJhcmNoeXx8W107Zm9yKGxldCB0PTA7dDxsLmxlbmd0aDt0Kyspe2NvbnN0IHI9bFt0XS5rZXlzO2lmKHImJjAhPT1yLmxlbmd0aClpZihyWzBdLm1vcnBoVGFyZ2V0cyl7Y29uc3QgdD17fTtsZXQgZTtmb3IoZT0wO2U8ci5sZW5ndGg7ZSsrKWlmKHJbZV0ubW9ycGhUYXJnZXRzKWZvcihsZXQgbj0wO248cltlXS5tb3JwaFRhcmdldHMubGVuZ3RoO24rKyl0W3JbZV0ubW9ycGhUYXJnZXRzW25dXT0tMTtmb3IoY29uc3QgbiBpbiB0KXtjb25zdCB0PVtdLG89W107Zm9yKGxldCBpPTA7aSE9PXJbZV0ubW9ycGhUYXJnZXRzLmxlbmd0aDsrK2kpe2NvbnN0IGk9cltlXTt0LnB1c2goaS50aW1lKSxvLnB1c2goaS5tb3JwaFRhcmdldD09PW4/MTowKX1pLnB1c2gobmV3IGVuZSgiLm1vcnBoVGFyZ2V0SW5mbHVlbmNlWyIrbisiXSIsdCxvKSl9cz10Lmxlbmd0aCoob3x8MSl9ZWxzZXtjb25zdCBvPSIuYm9uZXNbIitlW3RdLm5hbWUrIl0iO24ob25lLG8rIi5wb3NpdGlvbiIsciwicG9zIixpKSxuKGluZSxvKyIucXVhdGVybmlvbiIsciwicm90IixpKSxuKG9uZSxvKyIuc2NhbGUiLHIsInNjbCIsaSl9fWlmKDA9PT1pLmxlbmd0aClyZXR1cm4gbnVsbDtyZXR1cm4gbmV3IHRoaXMocixzLGksYSl9cmVzZXREdXJhdGlvbigpe2xldCB0PTA7Zm9yKGxldCBlPTAsbj10aGlzLnRyYWNrcy5sZW5ndGg7ZSE9PW47KytlKXtjb25zdCBuPXRoaXMudHJhY2tzW2VdO3Q9TWF0aC5tYXgodCxuLnRpbWVzW24udGltZXMubGVuZ3RoLTFdKX1yZXR1cm4gdGhpcy5kdXJhdGlvbj10LHRoaXN9dHJpbSgpe2ZvcihsZXQgdD0wO3Q8dGhpcy50cmFja3MubGVuZ3RoO3QrKyl0aGlzLnRyYWNrc1t0XS50cmltKDAsdGhpcy5kdXJhdGlvbik7cmV0dXJuIHRoaXN9dmFsaWRhdGUoKXtsZXQgdD0hMDtmb3IobGV0IGU9MDtlPHRoaXMudHJhY2tzLmxlbmd0aDtlKyspdD10JiZ0aGlzLnRyYWNrc1tlXS52YWxpZGF0ZSgpO3JldHVybiB0fW9wdGltaXplKCl7Zm9yKGxldCB0PTA7dDx0aGlzLnRyYWNrcy5sZW5ndGg7dCsrKXRoaXMudHJhY2tzW3RdLm9wdGltaXplKCk7cmV0dXJuIHRoaXN9Y2xvbmUoKXtjb25zdCB0PVtdO2ZvcihsZXQgZT0wO2U8dGhpcy50cmFja3MubGVuZ3RoO2UrKyl0LnB1c2godGhpcy50cmFja3NbZV0uY2xvbmUoKSk7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMubmFtZSx0aGlzLmR1cmF0aW9uLHQsdGhpcy5ibGVuZE1vZGUpfXRvSlNPTigpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLnRvSlNPTih0aGlzKX19ZnVuY3Rpb24gc25lKHQpe2lmKHZvaWQgMD09PXQudHlwZSl0aHJvdyBuZXcgRXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IHRyYWNrIHR5cGUgdW5kZWZpbmVkLCBjYW4gbm90IHBhcnNlIik7Y29uc3QgZT0oZnVuY3Rpb24gbih0KXtzd2l0Y2godC50b0xvd2VyQ2FzZSgpKXtjYXNlInNjYWxhciI6Y2FzZSJkb3VibGUiOmNhc2UiZmxvYXQiOmNhc2UibnVtYmVyIjpjYXNlImludGVnZXIiOnJldHVybiBlbmU7Y2FzZSJ2ZWN0b3IiOmNhc2UidmVjdG9yMiI6Y2FzZSJ2ZWN0b3IzIjpjYXNlInZlY3RvcjQiOnJldHVybiBvbmU7Y2FzZSJjb2xvciI6cmV0dXJuIHRuZTtjYXNlInF1YXRlcm5pb24iOnJldHVybiBpbmU7Y2FzZSJib29sIjpjYXNlImJvb2xlYW4iOnJldHVybiBRZWU7Y2FzZSJzdHJpbmciOnJldHVybiBybmV9dGhyb3cgbmV3IEVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiBVbnN1cHBvcnRlZCB0eXBlTmFtZTogIit0KX0pKHQudHlwZSk7aWYodm9pZCAwPT09dC50aW1lcyl7Y29uc3QgZT1bXSxuPVtdO1llZS5mbGF0dGVuSlNPTih0LmtleXMsZSxuLCJ2YWx1ZSIpLHQudGltZXM9ZSx0LnZhbHVlcz1ufXJldHVybiB2b2lkIDAhPT1lLnBhcnNlP2UucGFyc2UodCk6bmV3IGUodC5uYW1lLHQudGltZXMsdC52YWx1ZXMsdC5pbnRlcnBvbGF0aW9uKX1jb25zdCBsbmU9e2VuYWJsZWQ6ITEsZmlsZXM6e30sYWRkOmZ1bmN0aW9uKHQsZSl7ITEhPT10aGlzLmVuYWJsZWQmJih0aGlzLmZpbGVzW3RdPWUpfSxnZXQ6ZnVuY3Rpb24odCl7aWYoITEhPT10aGlzLmVuYWJsZWQpcmV0dXJuIHRoaXMuZmlsZXNbdF19LHJlbW92ZTpmdW5jdGlvbih0KXtkZWxldGUgdGhpcy5maWxlc1t0XX0sY2xlYXI6ZnVuY3Rpb24oKXt0aGlzLmZpbGVzPXt9fX07Y2xhc3MgY25le2NvbnN0cnVjdG9yKHQsZSxuKXtjb25zdCBpPXRoaXM7bGV0IHIsbz0hMSxhPTAscz0wO2NvbnN0IGw9W107dGhpcy5vblN0YXJ0PXZvaWQgMCx0aGlzLm9uTG9hZD10LHRoaXMub25Qcm9ncmVzcz1lLHRoaXMub25FcnJvcj1uLHRoaXMuaXRlbVN0YXJ0PWZ1bmN0aW9uKHQpe3MrKywhMT09PW8mJnZvaWQgMCE9PWkub25TdGFydCYmaS5vblN0YXJ0KHQsYSxzKSxvPSEwfSx0aGlzLml0ZW1FbmQ9ZnVuY3Rpb24odCl7YSsrLHZvaWQgMCE9PWkub25Qcm9ncmVzcyYmaS5vblByb2dyZXNzKHQsYSxzKSxhPT09cyYmKG89ITEsdm9pZCAwIT09aS5vbkxvYWQmJmkub25Mb2FkKCkpfSx0aGlzLml0ZW1FcnJvcj1mdW5jdGlvbih0KXt2b2lkIDAhPT1pLm9uRXJyb3ImJmkub25FcnJvcih0KX0sdGhpcy5yZXNvbHZlVVJMPWZ1bmN0aW9uKHQpe3JldHVybiByP3IodCk6dH0sdGhpcy5zZXRVUkxNb2RpZmllcj1mdW5jdGlvbih0KXtyZXR1cm4gcj10LHRoaXN9LHRoaXMuYWRkSGFuZGxlcj1mdW5jdGlvbih0LGUpe3JldHVybiBsLnB1c2godCxlKSx0aGlzfSx0aGlzLnJlbW92ZUhhbmRsZXI9ZnVuY3Rpb24odCl7Y29uc3QgZT1sLmluZGV4T2YodCk7cmV0dXJuLTEhPT1lJiZsLnNwbGljZShlLDIpLHRoaXN9LHRoaXMuZ2V0SGFuZGxlcj1mdW5jdGlvbih0KXtmb3IobGV0IGU9MCxuPWwubGVuZ3RoO2U8bjtlKz0yKXtjb25zdCBuPWxbZV0saT1sW2UrMV07aWYobi5nbG9iYWwmJihuLmxhc3RJbmRleD0wKSxuLnRlc3QodCkpcmV0dXJuIGl9cmV0dXJuIG51bGx9fX1jb25zdCB1bmU9bmV3IGNuZTtjbGFzcyBobmV7Y29uc3RydWN0b3IodCl7dGhpcy5tYW5hZ2VyPXZvaWQgMCE9PXQ/dDp1bmUsdGhpcy5jcm9zc09yaWdpbj0iYW5vbnltb3VzIix0aGlzLndpdGhDcmVkZW50aWFscz0hMSx0aGlzLnBhdGg9IiIsdGhpcy5yZXNvdXJjZVBhdGg9IiIsdGhpcy5yZXF1ZXN0SGVhZGVyPXt9fWxvYWQoKXt9bG9hZEFzeW5jKHQsZSl7Y29uc3Qgbj10aGlzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oaSxyKXtuLmxvYWQodCxpLGUscil9KSl9cGFyc2UoKXt9c2V0Q3Jvc3NPcmlnaW4odCl7cmV0dXJuIHRoaXMuY3Jvc3NPcmlnaW49dCx0aGlzfXNldFdpdGhDcmVkZW50aWFscyh0KXtyZXR1cm4gdGhpcy53aXRoQ3JlZGVudGlhbHM9dCx0aGlzfXNldFBhdGgodCl7cmV0dXJuIHRoaXMucGF0aD10LHRoaXN9c2V0UmVzb3VyY2VQYXRoKHQpe3JldHVybiB0aGlzLnJlc291cmNlUGF0aD10LHRoaXN9c2V0UmVxdWVzdEhlYWRlcih0KXtyZXR1cm4gdGhpcy5yZXF1ZXN0SGVhZGVyPXQsdGhpc319Y29uc3QgZG5lPXt9O2NsYXNzIHBuZSBleHRlbmRzIGhuZXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQsZSxuLGkpe3ZvaWQgMD09PXQmJih0PSIiKSx2b2lkIDAhPT10aGlzLnBhdGgmJih0PXRoaXMucGF0aCt0KSx0PXRoaXMubWFuYWdlci5yZXNvbHZlVVJMKHQpO2NvbnN0IHI9dGhpcyxvPWxuZS5nZXQodCk7aWYodm9pZCAwIT09bylyZXR1cm4gci5tYW5hZ2VyLml0ZW1TdGFydCh0KSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2UmJmUobyksci5tYW5hZ2VyLml0ZW1FbmQodCl9KSwwKSxvO2lmKHZvaWQgMCE9PWRuZVt0XSlyZXR1cm4gdm9pZCBkbmVbdF0ucHVzaCh7b25Mb2FkOmUsb25Qcm9ncmVzczpuLG9uRXJyb3I6aX0pO2NvbnN0IGE9dC5tYXRjaCgvXmRhdGE6KC4qPykoO2Jhc2U2NCk/LCguKikkLyk7bGV0IHM7aWYoYSl7Y29uc3Qgbj1hWzFdLG89ISFhWzJdO2xldCBzPWFbM107cz1kZWNvZGVVUklDb21wb25lbnQocyksbyYmKHM9YXRvYihzKSk7dHJ5e2xldCBpO2NvbnN0IG89KHRoaXMucmVzcG9uc2VUeXBlfHwiIikudG9Mb3dlckNhc2UoKTtzd2l0Y2gobyl7Y2FzZSJhcnJheWJ1ZmZlciI6Y2FzZSJibG9iIjpjb25zdCB0PW5ldyBVaW50OEFycmF5KHMubGVuZ3RoKTtmb3IobGV0IGU9MDtlPHMubGVuZ3RoO2UrKyl0W2VdPXMuY2hhckNvZGVBdChlKTtpPSJibG9iIj09PW8/bmV3IEJsb2IoW3QuYnVmZmVyXSx7dHlwZTpufSk6dC5idWZmZXI7YnJlYWs7Y2FzZSJkb2N1bWVudCI6Y29uc3QgZT1uZXcgRE9NUGFyc2VyO2k9ZS5wYXJzZUZyb21TdHJpbmcocyxuKTticmVhaztjYXNlImpzb24iOmk9SlNPTi5wYXJzZShzKTticmVhaztkZWZhdWx0Omk9c31zZXRUaW1lb3V0KChmdW5jdGlvbigpe2UmJmUoaSksci5tYW5hZ2VyLml0ZW1FbmQodCl9KSwwKX1jYXRjaChlKXtzZXRUaW1lb3V0KChmdW5jdGlvbigpe2kmJmkoZSksci5tYW5hZ2VyLml0ZW1FcnJvcih0KSxyLm1hbmFnZXIuaXRlbUVuZCh0KX0pLDApfX1lbHNle2RuZVt0XT1bXSxkbmVbdF0ucHVzaCh7b25Mb2FkOmUsb25Qcm9ncmVzczpuLG9uRXJyb3I6aX0pLHM9bmV3IFhNTEh0dHBSZXF1ZXN0LHMub3BlbigiR0VUIix0LCEwKSxzLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLChmdW5jdGlvbihlKXtjb25zdCBuPXRoaXMucmVzcG9uc2UsaT1kbmVbdF07aWYoZGVsZXRlIGRuZVt0XSwyMDA9PT10aGlzLnN0YXR1c3x8MD09PXRoaXMuc3RhdHVzKXswPT09dGhpcy5zdGF0dXMmJmNvbnNvbGUud2FybigiVEhSRUUuRmlsZUxvYWRlcjogSFRUUCBTdGF0dXMgMCByZWNlaXZlZC4iKSxsbmUuYWRkKHQsbik7Zm9yKGxldCB0PTAsZT1pLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPWlbdF07ZS5vbkxvYWQmJmUub25Mb2FkKG4pfXIubWFuYWdlci5pdGVtRW5kKHQpfWVsc2V7Zm9yKGxldCB0PTAsbj1pLmxlbmd0aDt0PG47dCsrKXtjb25zdCBuPWlbdF07bi5vbkVycm9yJiZuLm9uRXJyb3IoZSl9ci5tYW5hZ2VyLml0ZW1FcnJvcih0KSxyLm1hbmFnZXIuaXRlbUVuZCh0KX19KSwhMSkscy5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsKGZ1bmN0aW9uKGUpe2NvbnN0IG49ZG5lW3RdO2ZvcihsZXQgdD0wLGk9bi5sZW5ndGg7dDxpO3QrKyl7Y29uc3QgaT1uW3RdO2kub25Qcm9ncmVzcyYmaS5vblByb2dyZXNzKGUpfX0pLCExKSxzLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoZnVuY3Rpb24oZSl7Y29uc3Qgbj1kbmVbdF07ZGVsZXRlIGRuZVt0XTtmb3IobGV0IHQ9MCxpPW4ubGVuZ3RoO3Q8aTt0Kyspe2NvbnN0IGk9blt0XTtpLm9uRXJyb3ImJmkub25FcnJvcihlKX1yLm1hbmFnZXIuaXRlbUVycm9yKHQpLHIubWFuYWdlci5pdGVtRW5kKHQpfSksITEpLHMuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLChmdW5jdGlvbihlKXtjb25zdCBuPWRuZVt0XTtkZWxldGUgZG5lW3RdO2ZvcihsZXQgdD0wLGk9bi5sZW5ndGg7dDxpO3QrKyl7Y29uc3QgaT1uW3RdO2kub25FcnJvciYmaS5vbkVycm9yKGUpfXIubWFuYWdlci5pdGVtRXJyb3IodCksci5tYW5hZ2VyLml0ZW1FbmQodCl9KSwhMSksdm9pZCAwIT09dGhpcy5yZXNwb25zZVR5cGUmJihzLnJlc3BvbnNlVHlwZT10aGlzLnJlc3BvbnNlVHlwZSksdm9pZCAwIT09dGhpcy53aXRoQ3JlZGVudGlhbHMmJihzLndpdGhDcmVkZW50aWFscz10aGlzLndpdGhDcmVkZW50aWFscykscy5vdmVycmlkZU1pbWVUeXBlJiZzLm92ZXJyaWRlTWltZVR5cGUodm9pZCAwIT09dGhpcy5taW1lVHlwZT90aGlzLm1pbWVUeXBlOiJ0ZXh0L3BsYWluIik7Zm9yKGNvbnN0IHQgaW4gdGhpcy5yZXF1ZXN0SGVhZGVyKXMuc2V0UmVxdWVzdEhlYWRlcih0LHRoaXMucmVxdWVzdEhlYWRlclt0XSk7cy5zZW5kKG51bGwpfXJldHVybiByLm1hbmFnZXIuaXRlbVN0YXJ0KHQpLHN9c2V0UmVzcG9uc2VUeXBlKHQpe3JldHVybiB0aGlzLnJlc3BvbnNlVHlwZT10LHRoaXN9c2V0TWltZVR5cGUodCl7cmV0dXJuIHRoaXMubWltZVR5cGU9dCx0aGlzfX1jbGFzcyBmbmUgZXh0ZW5kcyBobmV7Y29uc3RydWN0b3IodCl7c3VwZXIodCl9bG9hZCh0LGUsbixpKXt2b2lkIDAhPT10aGlzLnBhdGgmJih0PXRoaXMucGF0aCt0KSx0PXRoaXMubWFuYWdlci5yZXNvbHZlVVJMKHQpO2NvbnN0IHI9dGhpcyxvPWxuZS5nZXQodCk7aWYodm9pZCAwIT09bylyZXR1cm4gci5tYW5hZ2VyLml0ZW1TdGFydCh0KSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2UmJmUobyksci5tYW5hZ2VyLml0ZW1FbmQodCl9KSwwKSxvO2NvbnN0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiaW1nIik7ZnVuY3Rpb24gcygpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIscywhMSksYS5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsbCwhMSksbG5lLmFkZCh0LHRoaXMpLGUmJmUodGhpcyksci5tYW5hZ2VyLml0ZW1FbmQodCl9ZnVuY3Rpb24gbChlKXthLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLHMsITEpLGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGwsITEpLGkmJmkoZSksci5tYW5hZ2VyLml0ZW1FcnJvcih0KSxyLm1hbmFnZXIuaXRlbUVuZCh0KX1yZXR1cm4gYS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixzLCExKSxhLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixsLCExKSwiZGF0YToiIT09dC5zdWJzdHIoMCw1KSYmdm9pZCAwIT09dGhpcy5jcm9zc09yaWdpbiYmKGEuY3Jvc3NPcmlnaW49dGhpcy5jcm9zc09yaWdpbiksci5tYW5hZ2VyLml0ZW1TdGFydCh0KSxhLnNyYz10LGF9fWNsYXNzIG1uZSBleHRlbmRzIGhuZXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQsZSxuLGkpe2NvbnN0IHI9bmV3IHM2dCxvPW5ldyBmbmUodGhpcy5tYW5hZ2VyKTtvLnNldENyb3NzT3JpZ2luKHRoaXMuY3Jvc3NPcmlnaW4pLG8uc2V0UGF0aCh0aGlzLnBhdGgpO2xldCBhPTA7ZnVuY3Rpb24gcyhuKXtvLmxvYWQodFtuXSwoZnVuY3Rpb24odCl7ci5pbWFnZXNbbl09dCxhKyssNj09PWEmJihyLm5lZWRzVXBkYXRlPSEwLGUmJmUocikpfSksdm9pZCAwLGkpfWZvcihsZXQgZT0wO2U8dC5sZW5ndGg7KytlKXMoZSk7cmV0dXJuIHJ9fWNsYXNzIGduZSBleHRlbmRzIGhuZXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQsZSxuLGkpe2NvbnN0IHI9dGhpcyxvPW5ldyBIN3QsYT1uZXcgcG5lKHRoaXMubWFuYWdlcik7cmV0dXJuIGEuc2V0UmVzcG9uc2VUeXBlKCJhcnJheWJ1ZmZlciIpLGEuc2V0UmVxdWVzdEhlYWRlcih0aGlzLnJlcXVlc3RIZWFkZXIpLGEuc2V0UGF0aCh0aGlzLnBhdGgpLGEuc2V0V2l0aENyZWRlbnRpYWxzKHIud2l0aENyZWRlbnRpYWxzKSxhLmxvYWQodCwoZnVuY3Rpb24odCl7Y29uc3Qgbj1yLnBhcnNlKHQpO24mJih2b2lkIDAhPT1uLmltYWdlP28uaW1hZ2U9bi5pbWFnZTp2b2lkIDAhPT1uLmRhdGEmJihvLmltYWdlLndpZHRoPW4ud2lkdGgsby5pbWFnZS5oZWlnaHQ9bi5oZWlnaHQsby5pbWFnZS5kYXRhPW4uZGF0YSksby53cmFwUz12b2lkIDAhPT1uLndyYXBTP24ud3JhcFM6bDJ0LG8ud3JhcFQ9dm9pZCAwIT09bi53cmFwVD9uLndyYXBUOmwydCxvLm1hZ0ZpbHRlcj12b2lkIDAhPT1uLm1hZ0ZpbHRlcj9uLm1hZ0ZpbHRlcjpwMnQsby5taW5GaWx0ZXI9dm9pZCAwIT09bi5taW5GaWx0ZXI/bi5taW5GaWx0ZXI6cDJ0LG8uYW5pc290cm9weT12b2lkIDAhPT1uLmFuaXNvdHJvcHk/bi5hbmlzb3Ryb3B5OjEsdm9pZCAwIT09bi5lbmNvZGluZyYmKG8uZW5jb2Rpbmc9bi5lbmNvZGluZyksdm9pZCAwIT09bi5mbGlwWSYmKG8uZmxpcFk9bi5mbGlwWSksdm9pZCAwIT09bi5mb3JtYXQmJihvLmZvcm1hdD1uLmZvcm1hdCksdm9pZCAwIT09bi50eXBlJiYoby50eXBlPW4udHlwZSksdm9pZCAwIT09bi5taXBtYXBzJiYoby5taXBtYXBzPW4ubWlwbWFwcyxvLm1pbkZpbHRlcj1tMnQpLDE9PT1uLm1pcG1hcENvdW50JiYoby5taW5GaWx0ZXI9cDJ0KSx2b2lkIDAhPT1uLmdlbmVyYXRlTWlwbWFwcyYmKG8uZ2VuZXJhdGVNaXBtYXBzPW4uZ2VuZXJhdGVNaXBtYXBzKSxvLm5lZWRzVXBkYXRlPSEwLGUmJmUobyxuKSl9KSxuLGkpLG99fWNsYXNzIF9uZSBleHRlbmRzIGhuZXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQsZSxuLGkpe2NvbnN0IHI9bmV3IE41dCxvPW5ldyBmbmUodGhpcy5tYW5hZ2VyKTtyZXR1cm4gby5zZXRDcm9zc09yaWdpbih0aGlzLmNyb3NzT3JpZ2luKSxvLnNldFBhdGgodGhpcy5wYXRoKSxvLmxvYWQodCwoZnVuY3Rpb24obil7ci5pbWFnZT1uO2NvbnN0IGk9dC5zZWFyY2goL1wuanBlP2coJHxcPykvaSk+MHx8MD09PXQuc2VhcmNoKC9eZGF0YVw6aW1hZ2VcL2pwZWcvKTtyLmZvcm1hdD1pP3cydDpTMnQsci5uZWVkc1VwZGF0ZT0hMCx2b2lkIDAhPT1lJiZlKHIpfSksbixpKSxyfX1jbGFzcyB5bmUgZXh0ZW5kcyBUdGV7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iQ3VydmVQYXRoIix0aGlzLmN1cnZlcz1bXSx0aGlzLmF1dG9DbG9zZT0hMX1hZGQodCl7dGhpcy5jdXJ2ZXMucHVzaCh0KX1jbG9zZVBhdGgoKXtjb25zdCB0PXRoaXMuY3VydmVzWzBdLmdldFBvaW50KDApLGU9dGhpcy5jdXJ2ZXNbdGhpcy5jdXJ2ZXMubGVuZ3RoLTFdLmdldFBvaW50KDEpO3QuZXF1YWxzKGUpfHx0aGlzLmN1cnZlcy5wdXNoKG5ldyBGdGUoZSx0KSl9Z2V0UG9pbnQodCl7Y29uc3QgZT10KnRoaXMuZ2V0TGVuZ3RoKCksbj10aGlzLmdldEN1cnZlTGVuZ3RocygpO2xldCBpPTA7Zm9yKDtpPG4ubGVuZ3RoOyl7aWYobltpXT49ZSl7Y29uc3QgdD1uW2ldLWUscj10aGlzLmN1cnZlc1tpXSxvPXIuZ2V0TGVuZ3RoKCk7cmV0dXJuIHIuZ2V0UG9pbnRBdCgwPT09bz8wOjEtdC9vKX1pKyt9cmV0dXJuIG51bGx9Z2V0TGVuZ3RoKCl7Y29uc3QgdD10aGlzLmdldEN1cnZlTGVuZ3RocygpO3JldHVybiB0W3QubGVuZ3RoLTFdfXVwZGF0ZUFyY0xlbmd0aHMoKXt0aGlzLm5lZWRzVXBkYXRlPSEwLHRoaXMuY2FjaGVMZW5ndGhzPW51bGwsdGhpcy5nZXRDdXJ2ZUxlbmd0aHMoKX1nZXRDdXJ2ZUxlbmd0aHMoKXtpZih0aGlzLmNhY2hlTGVuZ3RocyYmdGhpcy5jYWNoZUxlbmd0aHMubGVuZ3RoPT09dGhpcy5jdXJ2ZXMubGVuZ3RoKXJldHVybiB0aGlzLmNhY2hlTGVuZ3Rocztjb25zdCB0PVtdO2xldCBlPTA7Zm9yKGxldCBuPTAsaT10aGlzLmN1cnZlcy5sZW5ndGg7bjxpO24rKyllKz10aGlzLmN1cnZlc1tuXS5nZXRMZW5ndGgoKSx0LnB1c2goZSk7cmV0dXJuIHRoaXMuY2FjaGVMZW5ndGhzPXQsdH1nZXRTcGFjZWRQb2ludHModD00MCl7Y29uc3QgZT1bXTtmb3IobGV0IG49MDtuPD10O24rKyllLnB1c2godGhpcy5nZXRQb2ludChuL3QpKTtyZXR1cm4gdGhpcy5hdXRvQ2xvc2UmJmUucHVzaChlWzBdKSxlfWdldFBvaW50cyh0PTEyKXtjb25zdCBlPVtdO2xldCBuO2ZvcihsZXQgaT0wLHI9dGhpcy5jdXJ2ZXM7aTxyLmxlbmd0aDtpKyspe2NvbnN0IG89cltpXSxhPW8uZ2V0UG9pbnRzKG8mJm8uaXNFbGxpcHNlQ3VydmU/Mip0Om8mJihvLmlzTGluZUN1cnZlfHxvLmlzTGluZUN1cnZlMyk/MTpvJiZvLmlzU3BsaW5lQ3VydmU/dCpvLnBvaW50cy5sZW5ndGg6dCk7Zm9yKGxldCB0PTA7dDxhLmxlbmd0aDt0Kyspe2NvbnN0IGk9YVt0XTtuJiZuLmVxdWFscyhpKXx8KGUucHVzaChpKSxuPWkpfX1yZXR1cm4gdGhpcy5hdXRvQ2xvc2UmJmUubGVuZ3RoPjEmJiFlW2UubGVuZ3RoLTFdLmVxdWFscyhlWzBdKSYmZS5wdXNoKGVbMF0pLGV9Y29weSh0KXtzdXBlci5jb3B5KHQpLHRoaXMuY3VydmVzPVtdO2ZvcihsZXQgZT0wLG49dC5jdXJ2ZXMubGVuZ3RoO2U8bjtlKyspe3RoaXMuY3VydmVzLnB1c2godC5jdXJ2ZXNbZV0uY2xvbmUoKSl9cmV0dXJuIHRoaXMuYXV0b0Nsb3NlPXQuYXV0b0Nsb3NlLHRoaXN9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTt0LmF1dG9DbG9zZT10aGlzLmF1dG9DbG9zZSx0LmN1cnZlcz1bXTtmb3IobGV0IGU9MCxuPXRoaXMuY3VydmVzLmxlbmd0aDtlPG47ZSsrKXt0LmN1cnZlcy5wdXNoKHRoaXMuY3VydmVzW2VdLnRvSlNPTigpKX1yZXR1cm4gdH1mcm9tSlNPTih0KXtzdXBlci5mcm9tSlNPTih0KSx0aGlzLmF1dG9DbG9zZT10LmF1dG9DbG9zZSx0aGlzLmN1cnZlcz1bXTtmb3IobGV0IGU9MCxuPXQuY3VydmVzLmxlbmd0aDtlPG47ZSsrKXtjb25zdCBuPXQuY3VydmVzW2VdO3RoaXMuY3VydmVzLnB1c2goKG5ldyBXdGVbbi50eXBlXSkuZnJvbUpTT04obikpfXJldHVybiB0aGlzfX1jbGFzcyB2bmUgZXh0ZW5kcyB5bmV7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlBhdGgiLHRoaXMuY3VycmVudFBvaW50PW5ldyBDNXQsdCYmdGhpcy5zZXRGcm9tUG9pbnRzKHQpfXNldEZyb21Qb2ludHModCl7dGhpcy5tb3ZlVG8odFswXS54LHRbMF0ueSk7Zm9yKGxldCBlPTEsbj10Lmxlbmd0aDtlPG47ZSsrKXRoaXMubGluZVRvKHRbZV0ueCx0W2VdLnkpO3JldHVybiB0aGlzfW1vdmVUbyh0LGUpe3JldHVybiB0aGlzLmN1cnJlbnRQb2ludC5zZXQodCxlKSx0aGlzfWxpbmVUbyh0LGUpe2NvbnN0IG49bmV3IEZ0ZSh0aGlzLmN1cnJlbnRQb2ludC5jbG9uZSgpLG5ldyBDNXQodCxlKSk7cmV0dXJuIHRoaXMuY3VydmVzLnB1c2gobiksdGhpcy5jdXJyZW50UG9pbnQuc2V0KHQsZSksdGhpc31xdWFkcmF0aWNDdXJ2ZVRvKHQsZSxuLGkpe2NvbnN0IHI9bmV3IFV0ZSh0aGlzLmN1cnJlbnRQb2ludC5jbG9uZSgpLG5ldyBDNXQodCxlKSxuZXcgQzV0KG4saSkpO3JldHVybiB0aGlzLmN1cnZlcy5wdXNoKHIpLHRoaXMuY3VycmVudFBvaW50LnNldChuLGkpLHRoaXN9YmV6aWVyQ3VydmVUbyh0LGUsbixpLHIsbyl7Y29uc3QgYT1uZXcgQnRlKHRoaXMuY3VycmVudFBvaW50LmNsb25lKCksbmV3IEM1dCh0LGUpLG5ldyBDNXQobixpKSxuZXcgQzV0KHIsbykpO3JldHVybiB0aGlzLmN1cnZlcy5wdXNoKGEpLHRoaXMuY3VycmVudFBvaW50LnNldChyLG8pLHRoaXN9c3BsaW5lVGhydSh0KXtjb25zdCBlPVt0aGlzLmN1cnJlbnRQb2ludC5jbG9uZSgpXS5jb25jYXQodCksbj1uZXcgR3RlKGUpO3JldHVybiB0aGlzLmN1cnZlcy5wdXNoKG4pLHRoaXMuY3VycmVudFBvaW50LmNvcHkodFt0Lmxlbmd0aC0xXSksdGhpc31hcmModCxlLG4saSxyLG8pe3JldHVybiB0aGlzLmFic2FyYyh0K3RoaXMuY3VycmVudFBvaW50LngsZSt0aGlzLmN1cnJlbnRQb2ludC55LG4saSxyLG8pLHRoaXN9YWJzYXJjKHQsZSxuLGkscixvKXtyZXR1cm4gdGhpcy5hYnNlbGxpcHNlKHQsZSxuLG4saSxyLG8pLHRoaXN9ZWxsaXBzZSh0LGUsbixpLHIsbyxhLHMpe3JldHVybiB0aGlzLmFic2VsbGlwc2UodCt0aGlzLmN1cnJlbnRQb2ludC54LGUrdGhpcy5jdXJyZW50UG9pbnQueSxuLGkscixvLGEscyksdGhpc31hYnNlbGxpcHNlKHQsZSxuLGkscixvLGEscyl7Y29uc3QgbD1uZXcgQ3RlKHQsZSxuLGkscixvLGEscyk7aWYodGhpcy5jdXJ2ZXMubGVuZ3RoPjApe2NvbnN0IHQ9bC5nZXRQb2ludCgwKTt0LmVxdWFscyh0aGlzLmN1cnJlbnRQb2ludCl8fHRoaXMubGluZVRvKHQueCx0LnkpfXRoaXMuY3VydmVzLnB1c2gobCk7Y29uc3QgYz1sLmdldFBvaW50KDEpO3JldHVybiB0aGlzLmN1cnJlbnRQb2ludC5jb3B5KGMpLHRoaXN9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmN1cnJlbnRQb2ludC5jb3B5KHQuY3VycmVudFBvaW50KSx0aGlzfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQuY3VycmVudFBvaW50PXRoaXMuY3VycmVudFBvaW50LnRvQXJyYXkoKSx0fWZyb21KU09OKHQpe3JldHVybiBzdXBlci5mcm9tSlNPTih0KSx0aGlzLmN1cnJlbnRQb2ludC5mcm9tQXJyYXkodC5jdXJyZW50UG9pbnQpLHRoaXN9fWNsYXNzIGJuZSBleHRlbmRzIHZuZXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLnV1aWQ9YTV0KCksdGhpcy50eXBlPSJTaGFwZSIsdGhpcy5ob2xlcz1bXX1nZXRQb2ludHNIb2xlcyh0KXtjb25zdCBlPVtdO2ZvcihsZXQgbj0wLGk9dGhpcy5ob2xlcy5sZW5ndGg7bjxpO24rKyllW25dPXRoaXMuaG9sZXNbbl0uZ2V0UG9pbnRzKHQpO3JldHVybiBlfWV4dHJhY3RQb2ludHModCl7cmV0dXJue3NoYXBlOnRoaXMuZ2V0UG9pbnRzKHQpLGhvbGVzOnRoaXMuZ2V0UG9pbnRzSG9sZXModCl9fWNvcHkodCl7c3VwZXIuY29weSh0KSx0aGlzLmhvbGVzPVtdO2ZvcihsZXQgZT0wLG49dC5ob2xlcy5sZW5ndGg7ZTxuO2UrKyl7dGhpcy5ob2xlcy5wdXNoKHQuaG9sZXNbZV0uY2xvbmUoKSl9cmV0dXJuIHRoaXN9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTt0LnV1aWQ9dGhpcy51dWlkLHQuaG9sZXM9W107Zm9yKGxldCBlPTAsbj10aGlzLmhvbGVzLmxlbmd0aDtlPG47ZSsrKXt0LmhvbGVzLnB1c2godGhpcy5ob2xlc1tlXS50b0pTT04oKSl9cmV0dXJuIHR9ZnJvbUpTT04odCl7c3VwZXIuZnJvbUpTT04odCksdGhpcy51dWlkPXQudXVpZCx0aGlzLmhvbGVzPVtdO2ZvcihsZXQgZT0wLG49dC5ob2xlcy5sZW5ndGg7ZTxuO2UrKyl7Y29uc3Qgbj10LmhvbGVzW2VdO3RoaXMuaG9sZXMucHVzaCgobmV3IHZuZSkuZnJvbUpTT04obikpfXJldHVybiB0aGlzfX1jbGFzcyB4bmUgZXh0ZW5kcyBWM3R7Y29uc3RydWN0b3IodCxlPTEpe3N1cGVyKCksdGhpcy50eXBlPSJMaWdodCIsdGhpcy5jb2xvcj1uZXcgczR0KHQpLHRoaXMuaW50ZW5zaXR5PWV9ZGlzcG9zZSgpe31jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuY29sb3IuY29weSh0LmNvbG9yKSx0aGlzLmludGVuc2l0eT10LmludGVuc2l0eSx0aGlzfXRvSlNPTih0KXtjb25zdCBlPXN1cGVyLnRvSlNPTih0KTtyZXR1cm4gZS5vYmplY3QuY29sb3I9dGhpcy5jb2xvci5nZXRIZXgoKSxlLm9iamVjdC5pbnRlbnNpdHk9dGhpcy5pbnRlbnNpdHksdm9pZCAwIT09dGhpcy5ncm91bmRDb2xvciYmKGUub2JqZWN0Lmdyb3VuZENvbG9yPXRoaXMuZ3JvdW5kQ29sb3IuZ2V0SGV4KCkpLHZvaWQgMCE9PXRoaXMuZGlzdGFuY2UmJihlLm9iamVjdC5kaXN0YW5jZT10aGlzLmRpc3RhbmNlKSx2b2lkIDAhPT10aGlzLmFuZ2xlJiYoZS5vYmplY3QuYW5nbGU9dGhpcy5hbmdsZSksdm9pZCAwIT09dGhpcy5kZWNheSYmKGUub2JqZWN0LmRlY2F5PXRoaXMuZGVjYXkpLHZvaWQgMCE9PXRoaXMucGVudW1icmEmJihlLm9iamVjdC5wZW51bWJyYT10aGlzLnBlbnVtYnJhKSx2b2lkIDAhPT10aGlzLnNoYWRvdyYmKGUub2JqZWN0LnNoYWRvdz10aGlzLnNoYWRvdy50b0pTT04oKSksZX19eG5lLnByb3RvdHlwZS5pc0xpZ2h0PSEwO2NsYXNzIHduZSBleHRlbmRzIHhuZXtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIodCxuKSx0aGlzLnR5cGU9IkhlbWlzcGhlcmVMaWdodCIsdGhpcy5wb3NpdGlvbi5jb3B5KFYzdC5EZWZhdWx0VXApLHRoaXMudXBkYXRlTWF0cml4KCksdGhpcy5ncm91bmRDb2xvcj1uZXcgczR0KGUpfWNvcHkodCl7cmV0dXJuIHhuZS5wcm90b3R5cGUuY29weS5jYWxsKHRoaXMsdCksdGhpcy5ncm91bmRDb2xvci5jb3B5KHQuZ3JvdW5kQ29sb3IpLHRoaXN9fXduZS5wcm90b3R5cGUuaXNIZW1pc3BoZXJlTGlnaHQ9ITA7Y29uc3QgU25lPW5ldyBnM3QsTW5lPW5ldyBINXQsRW5lPW5ldyBINXQ7Y2xhc3MgVG5le2NvbnN0cnVjdG9yKHQpe3RoaXMuY2FtZXJhPXQsdGhpcy5iaWFzPTAsdGhpcy5ub3JtYWxCaWFzPTAsdGhpcy5yYWRpdXM9MSx0aGlzLm1hcFNpemU9bmV3IEM1dCg1MTIsNTEyKSx0aGlzLm1hcD1udWxsLHRoaXMubWFwUGFzcz1udWxsLHRoaXMubWF0cml4PW5ldyBnM3QsdGhpcy5hdXRvVXBkYXRlPSEwLHRoaXMubmVlZHNVcGRhdGU9ITEsdGhpcy5fZnJ1c3R1bT1uZXcgbTZ0LHRoaXMuX2ZyYW1lRXh0ZW50cz1uZXcgQzV0KDEsMSksdGhpcy5fdmlld3BvcnRDb3VudD0xLHRoaXMuX3ZpZXdwb3J0cz1bbmV3IFI1dCgwLDAsMSwxKV19Z2V0Vmlld3BvcnRDb3VudCgpe3JldHVybiB0aGlzLl92aWV3cG9ydENvdW50fWdldEZydXN0dW0oKXtyZXR1cm4gdGhpcy5fZnJ1c3R1bX11cGRhdGVNYXRyaWNlcyh0KXtjb25zdCBlPXRoaXMuY2FtZXJhLG49dGhpcy5tYXRyaXg7TW5lLnNldEZyb21NYXRyaXhQb3NpdGlvbih0Lm1hdHJpeFdvcmxkKSxlLnBvc2l0aW9uLmNvcHkoTW5lKSxFbmUuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQudGFyZ2V0Lm1hdHJpeFdvcmxkKSxlLmxvb2tBdChFbmUpLGUudXBkYXRlTWF0cml4V29ybGQoKSxTbmUubXVsdGlwbHlNYXRyaWNlcyhlLnByb2plY3Rpb25NYXRyaXgsZS5tYXRyaXhXb3JsZEludmVyc2UpLHRoaXMuX2ZydXN0dW0uc2V0RnJvbVByb2plY3Rpb25NYXRyaXgoU25lKSxuLnNldCguNSwwLDAsLjUsMCwuNSwwLC41LDAsMCwuNSwuNSwwLDAsMCwxKSxuLm11bHRpcGx5KGUucHJvamVjdGlvbk1hdHJpeCksbi5tdWx0aXBseShlLm1hdHJpeFdvcmxkSW52ZXJzZSl9Z2V0Vmlld3BvcnQodCl7cmV0dXJuIHRoaXMuX3ZpZXdwb3J0c1t0XX1nZXRGcmFtZUV4dGVudHMoKXtyZXR1cm4gdGhpcy5fZnJhbWVFeHRlbnRzfWRpc3Bvc2UoKXt0aGlzLm1hcCYmdGhpcy5tYXAuZGlzcG9zZSgpLHRoaXMubWFwUGFzcyYmdGhpcy5tYXBQYXNzLmRpc3Bvc2UoKX1jb3B5KHQpe3JldHVybiB0aGlzLmNhbWVyYT10LmNhbWVyYS5jbG9uZSgpLHRoaXMuYmlhcz10LmJpYXMsdGhpcy5yYWRpdXM9dC5yYWRpdXMsdGhpcy5tYXBTaXplLmNvcHkodC5tYXBTaXplKSx0aGlzfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfXRvSlNPTigpe2NvbnN0IHQ9e307cmV0dXJuIDAhPT10aGlzLmJpYXMmJih0LmJpYXM9dGhpcy5iaWFzKSwwIT09dGhpcy5ub3JtYWxCaWFzJiYodC5ub3JtYWxCaWFzPXRoaXMubm9ybWFsQmlhcyksMSE9PXRoaXMucmFkaXVzJiYodC5yYWRpdXM9dGhpcy5yYWRpdXMpLDUxMj09PXRoaXMubWFwU2l6ZS54JiY1MTI9PT10aGlzLm1hcFNpemUueXx8KHQubWFwU2l6ZT10aGlzLm1hcFNpemUudG9BcnJheSgpKSx0LmNhbWVyYT10aGlzLmNhbWVyYS50b0pTT04oITEpLm9iamVjdCxkZWxldGUgdC5jYW1lcmEubWF0cml4LHR9fWNsYXNzIENuZSBleHRlbmRzIFRuZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKG5ldyByNnQoNTAsMSwuNSw1MDApKSx0aGlzLmZvY3VzPTF9dXBkYXRlTWF0cmljZXModCl7Y29uc3QgZT10aGlzLmNhbWVyYSxuPTIqbzV0KnQuYW5nbGUqdGhpcy5mb2N1cyxpPXRoaXMubWFwU2l6ZS53aWR0aC90aGlzLm1hcFNpemUuaGVpZ2h0LHI9dC5kaXN0YW5jZXx8ZS5mYXI7bj09PWUuZm92JiZpPT09ZS5hc3BlY3QmJnI9PT1lLmZhcnx8KGUuZm92PW4sZS5hc3BlY3Q9aSxlLmZhcj1yLGUudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpKSxzdXBlci51cGRhdGVNYXRyaWNlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuZm9jdXM9dC5mb2N1cyx0aGlzfX1DbmUucHJvdG90eXBlLmlzU3BvdExpZ2h0U2hhZG93PSEwO2NsYXNzIEFuZSBleHRlbmRzIHhuZXtjb25zdHJ1Y3Rvcih0LGUsbj0wLGk9TWF0aC5QSS8zLHI9MCxvPTEpe3N1cGVyKHQsZSksdGhpcy50eXBlPSJTcG90TGlnaHQiLHRoaXMucG9zaXRpb24uY29weShWM3QuRGVmYXVsdFVwKSx0aGlzLnVwZGF0ZU1hdHJpeCgpLHRoaXMudGFyZ2V0PW5ldyBWM3QsdGhpcy5kaXN0YW5jZT1uLHRoaXMuYW5nbGU9aSx0aGlzLnBlbnVtYnJhPXIsdGhpcy5kZWNheT1vLHRoaXMuc2hhZG93PW5ldyBDbmV9Z2V0IHBvd2VyKCl7cmV0dXJuIHRoaXMuaW50ZW5zaXR5Kk1hdGguUEl9c2V0IHBvd2VyKHQpe3RoaXMuaW50ZW5zaXR5PXQvTWF0aC5QSX1kaXNwb3NlKCl7dGhpcy5zaGFkb3cuZGlzcG9zZSgpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5kaXN0YW5jZT10LmRpc3RhbmNlLHRoaXMuYW5nbGU9dC5hbmdsZSx0aGlzLnBlbnVtYnJhPXQucGVudW1icmEsdGhpcy5kZWNheT10LmRlY2F5LHRoaXMudGFyZ2V0PXQudGFyZ2V0LmNsb25lKCksdGhpcy5zaGFkb3c9dC5zaGFkb3cuY2xvbmUoKSx0aGlzfX1BbmUucHJvdG90eXBlLmlzU3BvdExpZ2h0PSEwO2NvbnN0IGtuZT1uZXcgZzN0LExuZT1uZXcgSDV0LFBuZT1uZXcgSDV0O2NsYXNzIE5uZSBleHRlbmRzIFRuZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKG5ldyByNnQoOTAsMSwuNSw1MDApKSx0aGlzLl9mcmFtZUV4dGVudHM9bmV3IEM1dCg0LDIpLHRoaXMuX3ZpZXdwb3J0Q291bnQ9Nix0aGlzLl92aWV3cG9ydHM9W25ldyBSNXQoMiwxLDEsMSksbmV3IFI1dCgwLDEsMSwxKSxuZXcgUjV0KDMsMSwxLDEpLG5ldyBSNXQoMSwxLDEsMSksbmV3IFI1dCgzLDAsMSwxKSxuZXcgUjV0KDEsMCwxLDEpXSx0aGlzLl9jdWJlRGlyZWN0aW9ucz1bbmV3IEg1dCgxLDAsMCksbmV3IEg1dCgtMSwwLDApLG5ldyBINXQoMCwwLDEpLG5ldyBINXQoMCwwLC0xKSxuZXcgSDV0KDAsMSwwKSxuZXcgSDV0KDAsLTEsMCldLHRoaXMuX2N1YmVVcHM9W25ldyBINXQoMCwxLDApLG5ldyBINXQoMCwxLDApLG5ldyBINXQoMCwxLDApLG5ldyBINXQoMCwxLDApLG5ldyBINXQoMCwwLDEpLG5ldyBINXQoMCwwLC0xKV19dXBkYXRlTWF0cmljZXModCxlPTApe2NvbnN0IG49dGhpcy5jYW1lcmEsaT10aGlzLm1hdHJpeCxyPXQuZGlzdGFuY2V8fG4uZmFyO3IhPT1uLmZhciYmKG4uZmFyPXIsbi51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCkpLExuZS5zZXRGcm9tTWF0cml4UG9zaXRpb24odC5tYXRyaXhXb3JsZCksbi5wb3NpdGlvbi5jb3B5KExuZSksUG5lLmNvcHkobi5wb3NpdGlvbiksUG5lLmFkZCh0aGlzLl9jdWJlRGlyZWN0aW9uc1tlXSksbi51cC5jb3B5KHRoaXMuX2N1YmVVcHNbZV0pLG4ubG9va0F0KFBuZSksbi51cGRhdGVNYXRyaXhXb3JsZCgpLGkubWFrZVRyYW5zbGF0aW9uKC1MbmUueCwtTG5lLnksLUxuZS56KSxrbmUubXVsdGlwbHlNYXRyaWNlcyhuLnByb2plY3Rpb25NYXRyaXgsbi5tYXRyaXhXb3JsZEludmVyc2UpLHRoaXMuX2ZydXN0dW0uc2V0RnJvbVByb2plY3Rpb25NYXRyaXgoa25lKX19Tm5lLnByb3RvdHlwZS5pc1BvaW50TGlnaHRTaGFkb3c9ITA7Y2xhc3MgSW5lIGV4dGVuZHMgeG5le2NvbnN0cnVjdG9yKHQsZSxuPTAsaT0xKXtzdXBlcih0LGUpLHRoaXMudHlwZT0iUG9pbnRMaWdodCIsdGhpcy5kaXN0YW5jZT1uLHRoaXMuZGVjYXk9aSx0aGlzLnNoYWRvdz1uZXcgTm5lfWdldCBwb3dlcigpe3JldHVybiA0KnRoaXMuaW50ZW5zaXR5Kk1hdGguUEl9c2V0IHBvd2VyKHQpe3RoaXMuaW50ZW5zaXR5PXQvKDQqTWF0aC5QSSl9ZGlzcG9zZSgpe3RoaXMuc2hhZG93LmRpc3Bvc2UoKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuZGlzdGFuY2U9dC5kaXN0YW5jZSx0aGlzLmRlY2F5PXQuZGVjYXksdGhpcy5zaGFkb3c9dC5zaGFkb3cuY2xvbmUoKSx0aGlzfX1JbmUucHJvdG90eXBlLmlzUG9pbnRMaWdodD0hMDtjbGFzcyBSbmUgZXh0ZW5kcyBUbmV7Y29uc3RydWN0b3IoKXtzdXBlcihuZXcgQTZ0KC01LDUsNSwtNSwuNSw1MDApKX19Um5lLnByb3RvdHlwZS5pc0RpcmVjdGlvbmFsTGlnaHRTaGFkb3c9ITA7Y2xhc3MgT25lIGV4dGVuZHMgeG5le2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IkRpcmVjdGlvbmFsTGlnaHQiLHRoaXMucG9zaXRpb24uY29weShWM3QuRGVmYXVsdFVwKSx0aGlzLnVwZGF0ZU1hdHJpeCgpLHRoaXMudGFyZ2V0PW5ldyBWM3QsdGhpcy5zaGFkb3c9bmV3IFJuZX1kaXNwb3NlKCl7dGhpcy5zaGFkb3cuZGlzcG9zZSgpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy50YXJnZXQ9dC50YXJnZXQuY2xvbmUoKSx0aGlzLnNoYWRvdz10LnNoYWRvdy5jbG9uZSgpLHRoaXN9fU9uZS5wcm90b3R5cGUuaXNEaXJlY3Rpb25hbExpZ2h0PSEwO2NsYXNzIHpuZSBleHRlbmRzIHhuZXtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsZSksdGhpcy50eXBlPSJBbWJpZW50TGlnaHQifX16bmUucHJvdG90eXBlLmlzQW1iaWVudExpZ2h0PSEwO2NsYXNzIERuZSBleHRlbmRzIHhuZXtjb25zdHJ1Y3Rvcih0LGUsbj0xMCxpPTEwKXtzdXBlcih0LGUpLHRoaXMudHlwZT0iUmVjdEFyZWFMaWdodCIsdGhpcy53aWR0aD1uLHRoaXMuaGVpZ2h0PWl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLndpZHRoPXQud2lkdGgsdGhpcy5oZWlnaHQ9dC5oZWlnaHQsdGhpc310b0pTT04odCl7Y29uc3QgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIGUub2JqZWN0LndpZHRoPXRoaXMud2lkdGgsZS5vYmplY3QuaGVpZ2h0PXRoaXMuaGVpZ2h0LGV9fURuZS5wcm90b3R5cGUuaXNSZWN0QXJlYUxpZ2h0PSEwO2NsYXNzIEJuZXtjb25zdHJ1Y3Rvcigpe3RoaXMuY29lZmZpY2llbnRzPVtdO2ZvcihsZXQgdD0wO3Q8OTt0KyspdGhpcy5jb2VmZmljaWVudHMucHVzaChuZXcgSDV0KX1zZXQodCl7Zm9yKGxldCBlPTA7ZTw5O2UrKyl0aGlzLmNvZWZmaWNpZW50c1tlXS5jb3B5KHRbZV0pO3JldHVybiB0aGlzfXplcm8oKXtmb3IobGV0IHQ9MDt0PDk7dCsrKXRoaXMuY29lZmZpY2llbnRzW3RdLnNldCgwLDAsMCk7cmV0dXJuIHRoaXN9Z2V0QXQodCxlKXtjb25zdCBuPXQueCxpPXQueSxyPXQueixvPXRoaXMuY29lZmZpY2llbnRzO3JldHVybiBlLmNvcHkob1swXSkubXVsdGlwbHlTY2FsYXIoLjI4MjA5NSksZS5hZGRTY2FsZWRWZWN0b3Iob1sxXSwuNDg4NjAzKmkpLGUuYWRkU2NhbGVkVmVjdG9yKG9bMl0sLjQ4ODYwMypyKSxlLmFkZFNjYWxlZFZlY3RvcihvWzNdLC40ODg2MDMqbiksZS5hZGRTY2FsZWRWZWN0b3Iob1s0XSxuKmkqMS4wOTI1NDgpLGUuYWRkU2NhbGVkVmVjdG9yKG9bNV0saSpyKjEuMDkyNTQ4KSxlLmFkZFNjYWxlZFZlY3RvcihvWzZdLC4zMTUzOTIqKDMqcipyLTEpKSxlLmFkZFNjYWxlZFZlY3RvcihvWzddLG4qcioxLjA5MjU0OCksZS5hZGRTY2FsZWRWZWN0b3Iob1s4XSwuNTQ2Mjc0KihuKm4taSppKSksZX1nZXRJcnJhZGlhbmNlQXQodCxlKXtjb25zdCBuPXQueCxpPXQueSxyPXQueixvPXRoaXMuY29lZmZpY2llbnRzO3JldHVybiBlLmNvcHkob1swXSkubXVsdGlwbHlTY2FsYXIoLjg4NjIyNyksZS5hZGRTY2FsZWRWZWN0b3Iob1sxXSwxLjAyMzMyOCppKSxlLmFkZFNjYWxlZFZlY3RvcihvWzJdLDEuMDIzMzI4KnIpLGUuYWRkU2NhbGVkVmVjdG9yKG9bM10sMS4wMjMzMjgqbiksZS5hZGRTY2FsZWRWZWN0b3Iob1s0XSwuODU4MDg2Km4qaSksZS5hZGRTY2FsZWRWZWN0b3Iob1s1XSwuODU4MDg2KmkqciksZS5hZGRTY2FsZWRWZWN0b3Iob1s2XSwuNzQzMTI1KnIqci0uMjQ3NzA4KSxlLmFkZFNjYWxlZFZlY3RvcihvWzddLC44NTgwODYqbipyKSxlLmFkZFNjYWxlZFZlY3RvcihvWzhdLC40MjkwNDMqKG4qbi1pKmkpKSxlfWFkZCh0KXtmb3IobGV0IGU9MDtlPDk7ZSsrKXRoaXMuY29lZmZpY2llbnRzW2VdLmFkZCh0LmNvZWZmaWNpZW50c1tlXSk7cmV0dXJuIHRoaXN9YWRkU2NhbGVkU0godCxlKXtmb3IobGV0IG49MDtuPDk7bisrKXRoaXMuY29lZmZpY2llbnRzW25dLmFkZFNjYWxlZFZlY3Rvcih0LmNvZWZmaWNpZW50c1tuXSxlKTtyZXR1cm4gdGhpc31zY2FsZSh0KXtmb3IobGV0IGU9MDtlPDk7ZSsrKXRoaXMuY29lZmZpY2llbnRzW2VdLm11bHRpcGx5U2NhbGFyKHQpO3JldHVybiB0aGlzfWxlcnAodCxlKXtmb3IobGV0IG49MDtuPDk7bisrKXRoaXMuY29lZmZpY2llbnRzW25dLmxlcnAodC5jb2VmZmljaWVudHNbbl0sZSk7cmV0dXJuIHRoaXN9ZXF1YWxzKHQpe2ZvcihsZXQgZT0wO2U8OTtlKyspaWYoIXRoaXMuY29lZmZpY2llbnRzW2VdLmVxdWFscyh0LmNvZWZmaWNpZW50c1tlXSkpcmV0dXJuITE7cmV0dXJuITB9Y29weSh0KXtyZXR1cm4gdGhpcy5zZXQodC5jb2VmZmljaWVudHMpfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfWZyb21BcnJheSh0LGU9MCl7Y29uc3Qgbj10aGlzLmNvZWZmaWNpZW50cztmb3IobGV0IGk9MDtpPDk7aSsrKW5baV0uZnJvbUFycmF5KHQsZSszKmkpO3JldHVybiB0aGlzfXRvQXJyYXkodD1bXSxlPTApe2NvbnN0IG49dGhpcy5jb2VmZmljaWVudHM7Zm9yKGxldCBpPTA7aTw5O2krKyluW2ldLnRvQXJyYXkodCxlKzMqaSk7cmV0dXJuIHR9c3RhdGljIGdldEJhc2lzQXQodCxlKXtjb25zdCBuPXQueCxpPXQueSxyPXQuejtlWzBdPS4yODIwOTUsZVsxXT0uNDg4NjAzKmksZVsyXT0uNDg4NjAzKnIsZVszXT0uNDg4NjAzKm4sZVs0XT0xLjA5MjU0OCpuKmksZVs1XT0xLjA5MjU0OCppKnIsZVs2XT0uMzE1MzkyKigzKnIqci0xKSxlWzddPTEuMDkyNTQ4Km4qcixlWzhdPS41NDYyNzQqKG4qbi1pKmkpfX1CbmUucHJvdG90eXBlLmlzU3BoZXJpY2FsSGFybW9uaWNzMz0hMDtjbGFzcyBIbmUgZXh0ZW5kcyB4bmV7Y29uc3RydWN0b3IodD1uZXcgQm5lLGU9MSl7c3VwZXIodm9pZCAwLGUpLHRoaXMuc2g9dH1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuc2guY29weSh0LnNoKSx0aGlzfWZyb21KU09OKHQpe3JldHVybiB0aGlzLmludGVuc2l0eT10LmludGVuc2l0eSx0aGlzLnNoLmZyb21BcnJheSh0LnNoKSx0aGlzfXRvSlNPTih0KXtjb25zdCBlPXN1cGVyLnRvSlNPTih0KTtyZXR1cm4gZS5vYmplY3Quc2g9dGhpcy5zaC50b0FycmF5KCksZX19SG5lLnByb3RvdHlwZS5pc0xpZ2h0UHJvYmU9ITA7Y2xhc3MgRm5lIGV4dGVuZHMgaG5le2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHRoaXMudGV4dHVyZXM9e319bG9hZCh0LGUsbixpKXtjb25zdCByPXRoaXMsbz1uZXcgcG5lKHIubWFuYWdlcik7by5zZXRQYXRoKHIucGF0aCksby5zZXRSZXF1ZXN0SGVhZGVyKHIucmVxdWVzdEhlYWRlciksby5zZXRXaXRoQ3JlZGVudGlhbHMoci53aXRoQ3JlZGVudGlhbHMpLG8ubG9hZCh0LChmdW5jdGlvbihuKXt0cnl7ZShyLnBhcnNlKEpTT04ucGFyc2UobikpKX1jYXRjaChlKXtpP2koZSk6Y29uc29sZS5lcnJvcihlKSxyLm1hbmFnZXIuaXRlbUVycm9yKHQpfX0pLG4saSl9cGFyc2UodCl7Y29uc3QgZT10aGlzLnRleHR1cmVzO2Z1bmN0aW9uIG4odCl7cmV0dXJuIHZvaWQgMD09PWVbdF0mJmNvbnNvbGUud2FybigiVEhSRUUuTWF0ZXJpYWxMb2FkZXI6IFVuZGVmaW5lZCB0ZXh0dXJlIix0KSxlW3RdfWNvbnN0IGk9bmV3IHFlZVt0LnR5cGVdO2lmKHZvaWQgMCE9PXQudXVpZCYmKGkudXVpZD10LnV1aWQpLHZvaWQgMCE9PXQubmFtZSYmKGkubmFtZT10Lm5hbWUpLHZvaWQgMCE9PXQuY29sb3ImJnZvaWQgMCE9PWkuY29sb3ImJmkuY29sb3Iuc2V0SGV4KHQuY29sb3IpLHZvaWQgMCE9PXQucm91Z2huZXNzJiYoaS5yb3VnaG5lc3M9dC5yb3VnaG5lc3MpLHZvaWQgMCE9PXQubWV0YWxuZXNzJiYoaS5tZXRhbG5lc3M9dC5tZXRhbG5lc3MpLHZvaWQgMCE9PXQuc2hlZW4mJihpLnNoZWVuPShuZXcgczR0KS5zZXRIZXgodC5zaGVlbikpLHZvaWQgMCE9PXQuZW1pc3NpdmUmJnZvaWQgMCE9PWkuZW1pc3NpdmUmJmkuZW1pc3NpdmUuc2V0SGV4KHQuZW1pc3NpdmUpLHZvaWQgMCE9PXQuc3BlY3VsYXImJnZvaWQgMCE9PWkuc3BlY3VsYXImJmkuc3BlY3VsYXIuc2V0SGV4KHQuc3BlY3VsYXIpLHZvaWQgMCE9PXQuc3BlY3VsYXJJbnRlbnNpdHkmJihpLnNwZWN1bGFySW50ZW5zaXR5PXQuc3BlY3VsYXJJbnRlbnNpdHkpLHZvaWQgMCE9PXQuc3BlY3VsYXJUaW50JiZ2b2lkIDAhPT1pLnNwZWN1bGFyVGludCYmaS5zcGVjdWxhclRpbnQuc2V0SGV4KHQuc3BlY3VsYXJUaW50KSx2b2lkIDAhPT10LnNoaW5pbmVzcyYmKGkuc2hpbmluZXNzPXQuc2hpbmluZXNzKSx2b2lkIDAhPT10LmNsZWFyY29hdCYmKGkuY2xlYXJjb2F0PXQuY2xlYXJjb2F0KSx2b2lkIDAhPT10LmNsZWFyY29hdFJvdWdobmVzcyYmKGkuY2xlYXJjb2F0Um91Z2huZXNzPXQuY2xlYXJjb2F0Um91Z2huZXNzKSx2b2lkIDAhPT10LnRyYW5zbWlzc2lvbiYmKGkudHJhbnNtaXNzaW9uPXQudHJhbnNtaXNzaW9uKSx2b2lkIDAhPT10LnRoaWNrbmVzcyYmKGkudGhpY2tuZXNzPXQudGhpY2tuZXNzKSx2b2lkIDAhPT10LmF0dGVudWF0aW9uRGlzdGFuY2UmJihpLmF0dGVudWF0aW9uRGlzdGFuY2U9dC5hdHRlbnVhdGlvbkRpc3RhbmNlKSx2b2lkIDAhPT10LmF0dGVudWF0aW9uVGludCYmdm9pZCAwIT09aS5hdHRlbnVhdGlvblRpbnQmJmkuYXR0ZW51YXRpb25UaW50LnNldEhleCh0LmF0dGVudWF0aW9uVGludCksdm9pZCAwIT09dC5mb2cmJihpLmZvZz10LmZvZyksdm9pZCAwIT09dC5mbGF0U2hhZGluZyYmKGkuZmxhdFNoYWRpbmc9dC5mbGF0U2hhZGluZyksdm9pZCAwIT09dC5ibGVuZGluZyYmKGkuYmxlbmRpbmc9dC5ibGVuZGluZyksdm9pZCAwIT09dC5jb21iaW5lJiYoaS5jb21iaW5lPXQuY29tYmluZSksdm9pZCAwIT09dC5zaWRlJiYoaS5zaWRlPXQuc2lkZSksdm9pZCAwIT09dC5zaGFkb3dTaWRlJiYoaS5zaGFkb3dTaWRlPXQuc2hhZG93U2lkZSksdm9pZCAwIT09dC5vcGFjaXR5JiYoaS5vcGFjaXR5PXQub3BhY2l0eSksdm9pZCAwIT09dC50cmFuc3BhcmVudCYmKGkudHJhbnNwYXJlbnQ9dC50cmFuc3BhcmVudCksdm9pZCAwIT09dC5hbHBoYVRlc3QmJihpLmFscGhhVGVzdD10LmFscGhhVGVzdCksdm9pZCAwIT09dC5kZXB0aFRlc3QmJihpLmRlcHRoVGVzdD10LmRlcHRoVGVzdCksdm9pZCAwIT09dC5kZXB0aFdyaXRlJiYoaS5kZXB0aFdyaXRlPXQuZGVwdGhXcml0ZSksdm9pZCAwIT09dC5jb2xvcldyaXRlJiYoaS5jb2xvcldyaXRlPXQuY29sb3JXcml0ZSksdm9pZCAwIT09dC5zdGVuY2lsV3JpdGUmJihpLnN0ZW5jaWxXcml0ZT10LnN0ZW5jaWxXcml0ZSksdm9pZCAwIT09dC5zdGVuY2lsV3JpdGVNYXNrJiYoaS5zdGVuY2lsV3JpdGVNYXNrPXQuc3RlbmNpbFdyaXRlTWFzayksdm9pZCAwIT09dC5zdGVuY2lsRnVuYyYmKGkuc3RlbmNpbEZ1bmM9dC5zdGVuY2lsRnVuYyksdm9pZCAwIT09dC5zdGVuY2lsUmVmJiYoaS5zdGVuY2lsUmVmPXQuc3RlbmNpbFJlZiksdm9pZCAwIT09dC5zdGVuY2lsRnVuY01hc2smJihpLnN0ZW5jaWxGdW5jTWFzaz10LnN0ZW5jaWxGdW5jTWFzayksdm9pZCAwIT09dC5zdGVuY2lsRmFpbCYmKGkuc3RlbmNpbEZhaWw9dC5zdGVuY2lsRmFpbCksdm9pZCAwIT09dC5zdGVuY2lsWkZhaWwmJihpLnN0ZW5jaWxaRmFpbD10LnN0ZW5jaWxaRmFpbCksdm9pZCAwIT09dC5zdGVuY2lsWlBhc3MmJihpLnN0ZW5jaWxaUGFzcz10LnN0ZW5jaWxaUGFzcyksdm9pZCAwIT09dC53aXJlZnJhbWUmJihpLndpcmVmcmFtZT10LndpcmVmcmFtZSksdm9pZCAwIT09dC53aXJlZnJhbWVMaW5ld2lkdGgmJihpLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCksdm9pZCAwIT09dC53aXJlZnJhbWVMaW5lY2FwJiYoaS53aXJlZnJhbWVMaW5lY2FwPXQud2lyZWZyYW1lTGluZWNhcCksdm9pZCAwIT09dC53aXJlZnJhbWVMaW5lam9pbiYmKGkud2lyZWZyYW1lTGluZWpvaW49dC53aXJlZnJhbWVMaW5lam9pbiksdm9pZCAwIT09dC5yb3RhdGlvbiYmKGkucm90YXRpb249dC5yb3RhdGlvbiksMSE9PXQubGluZXdpZHRoJiYoaS5saW5ld2lkdGg9dC5saW5ld2lkdGgpLHZvaWQgMCE9PXQuZGFzaFNpemUmJihpLmRhc2hTaXplPXQuZGFzaFNpemUpLHZvaWQgMCE9PXQuZ2FwU2l6ZSYmKGkuZ2FwU2l6ZT10LmdhcFNpemUpLHZvaWQgMCE9PXQuc2NhbGUmJihpLnNjYWxlPXQuc2NhbGUpLHZvaWQgMCE9PXQucG9seWdvbk9mZnNldCYmKGkucG9seWdvbk9mZnNldD10LnBvbHlnb25PZmZzZXQpLHZvaWQgMCE9PXQucG9seWdvbk9mZnNldEZhY3RvciYmKGkucG9seWdvbk9mZnNldEZhY3Rvcj10LnBvbHlnb25PZmZzZXRGYWN0b3IpLHZvaWQgMCE9PXQucG9seWdvbk9mZnNldFVuaXRzJiYoaS5wb2x5Z29uT2Zmc2V0VW5pdHM9dC5wb2x5Z29uT2Zmc2V0VW5pdHMpLHZvaWQgMCE9PXQuZGl0aGVyaW5nJiYoaS5kaXRoZXJpbmc9dC5kaXRoZXJpbmcpLHZvaWQgMCE9PXQuYWxwaGFUb0NvdmVyYWdlJiYoaS5hbHBoYVRvQ292ZXJhZ2U9dC5hbHBoYVRvQ292ZXJhZ2UpLHZvaWQgMCE9PXQucHJlbXVsdGlwbGllZEFscGhhJiYoaS5wcmVtdWx0aXBsaWVkQWxwaGE9dC5wcmVtdWx0aXBsaWVkQWxwaGEpLHZvaWQgMCE9PXQudmlzaWJsZSYmKGkudmlzaWJsZT10LnZpc2libGUpLHZvaWQgMCE9PXQudG9uZU1hcHBlZCYmKGkudG9uZU1hcHBlZD10LnRvbmVNYXBwZWQpLHZvaWQgMCE9PXQudXNlckRhdGEmJihpLnVzZXJEYXRhPXQudXNlckRhdGEpLHZvaWQgMCE9PXQudmVydGV4Q29sb3JzJiYoaS52ZXJ0ZXhDb2xvcnM9Im51bWJlciI9PXR5cGVvZiB0LnZlcnRleENvbG9ycz90LnZlcnRleENvbG9ycz4wOnQudmVydGV4Q29sb3JzKSx2b2lkIDAhPT10LnVuaWZvcm1zKWZvcihjb25zdCBlIGluIHQudW5pZm9ybXMpe2NvbnN0IHI9dC51bmlmb3Jtc1tlXTtzd2l0Y2goaS51bmlmb3Jtc1tlXT17fSxyLnR5cGUpe2Nhc2UidCI6aS51bmlmb3Jtc1tlXS52YWx1ZT1uKHIudmFsdWUpO2JyZWFrO2Nhc2UiYyI6aS51bmlmb3Jtc1tlXS52YWx1ZT0obmV3IHM0dCkuc2V0SGV4KHIudmFsdWUpO2JyZWFrO2Nhc2UidjIiOmkudW5pZm9ybXNbZV0udmFsdWU9KG5ldyBDNXQpLmZyb21BcnJheShyLnZhbHVlKTticmVhaztjYXNlInYzIjppLnVuaWZvcm1zW2VdLnZhbHVlPShuZXcgSDV0KS5mcm9tQXJyYXkoci52YWx1ZSk7YnJlYWs7Y2FzZSJ2NCI6aS51bmlmb3Jtc1tlXS52YWx1ZT0obmV3IFI1dCkuZnJvbUFycmF5KHIudmFsdWUpO2JyZWFrO2Nhc2UibTMiOmkudW5pZm9ybXNbZV0udmFsdWU9KG5ldyBBNXQpLmZyb21BcnJheShyLnZhbHVlKTticmVhaztjYXNlIm00IjppLnVuaWZvcm1zW2VdLnZhbHVlPShuZXcgZzN0KS5mcm9tQXJyYXkoci52YWx1ZSk7YnJlYWs7ZGVmYXVsdDppLnVuaWZvcm1zW2VdLnZhbHVlPXIudmFsdWV9fWlmKHZvaWQgMCE9PXQuZGVmaW5lcyYmKGkuZGVmaW5lcz10LmRlZmluZXMpLHZvaWQgMCE9PXQudmVydGV4U2hhZGVyJiYoaS52ZXJ0ZXhTaGFkZXI9dC52ZXJ0ZXhTaGFkZXIpLHZvaWQgMCE9PXQuZnJhZ21lbnRTaGFkZXImJihpLmZyYWdtZW50U2hhZGVyPXQuZnJhZ21lbnRTaGFkZXIpLHZvaWQgMCE9PXQuZXh0ZW5zaW9ucylmb3IoY29uc3QgZSBpbiB0LmV4dGVuc2lvbnMpaS5leHRlbnNpb25zW2VdPXQuZXh0ZW5zaW9uc1tlXTtpZih2b2lkIDAhPT10LnNoYWRpbmcmJihpLmZsYXRTaGFkaW5nPTE9PT10LnNoYWRpbmcpLHZvaWQgMCE9PXQuc2l6ZSYmKGkuc2l6ZT10LnNpemUpLHZvaWQgMCE9PXQuc2l6ZUF0dGVudWF0aW9uJiYoaS5zaXplQXR0ZW51YXRpb249dC5zaXplQXR0ZW51YXRpb24pLHZvaWQgMCE9PXQubWFwJiYoaS5tYXA9bih0Lm1hcCkpLHZvaWQgMCE9PXQubWF0Y2FwJiYoaS5tYXRjYXA9bih0Lm1hdGNhcCkpLHZvaWQgMCE9PXQuYWxwaGFNYXAmJihpLmFscGhhTWFwPW4odC5hbHBoYU1hcCkpLHZvaWQgMCE9PXQuYnVtcE1hcCYmKGkuYnVtcE1hcD1uKHQuYnVtcE1hcCkpLHZvaWQgMCE9PXQuYnVtcFNjYWxlJiYoaS5idW1wU2NhbGU9dC5idW1wU2NhbGUpLHZvaWQgMCE9PXQubm9ybWFsTWFwJiYoaS5ub3JtYWxNYXA9bih0Lm5vcm1hbE1hcCkpLHZvaWQgMCE9PXQubm9ybWFsTWFwVHlwZSYmKGkubm9ybWFsTWFwVHlwZT10Lm5vcm1hbE1hcFR5cGUpLHZvaWQgMCE9PXQubm9ybWFsU2NhbGUpe2xldCBlPXQubm9ybWFsU2NhbGU7ITE9PT1BcnJheS5pc0FycmF5KGUpJiYoZT1bZSxlXSksaS5ub3JtYWxTY2FsZT0obmV3IEM1dCkuZnJvbUFycmF5KGUpfXJldHVybiB2b2lkIDAhPT10LmRpc3BsYWNlbWVudE1hcCYmKGkuZGlzcGxhY2VtZW50TWFwPW4odC5kaXNwbGFjZW1lbnRNYXApKSx2b2lkIDAhPT10LmRpc3BsYWNlbWVudFNjYWxlJiYoaS5kaXNwbGFjZW1lbnRTY2FsZT10LmRpc3BsYWNlbWVudFNjYWxlKSx2b2lkIDAhPT10LmRpc3BsYWNlbWVudEJpYXMmJihpLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzKSx2b2lkIDAhPT10LnJvdWdobmVzc01hcCYmKGkucm91Z2huZXNzTWFwPW4odC5yb3VnaG5lc3NNYXApKSx2b2lkIDAhPT10Lm1ldGFsbmVzc01hcCYmKGkubWV0YWxuZXNzTWFwPW4odC5tZXRhbG5lc3NNYXApKSx2b2lkIDAhPT10LmVtaXNzaXZlTWFwJiYoaS5lbWlzc2l2ZU1hcD1uKHQuZW1pc3NpdmVNYXApKSx2b2lkIDAhPT10LmVtaXNzaXZlSW50ZW5zaXR5JiYoaS5lbWlzc2l2ZUludGVuc2l0eT10LmVtaXNzaXZlSW50ZW5zaXR5KSx2b2lkIDAhPT10LnNwZWN1bGFyTWFwJiYoaS5zcGVjdWxhck1hcD1uKHQuc3BlY3VsYXJNYXApKSx2b2lkIDAhPT10LnNwZWN1bGFySW50ZW5zaXR5TWFwJiYoaS5zcGVjdWxhckludGVuc2l0eU1hcD1uKHQuc3BlY3VsYXJJbnRlbnNpdHlNYXApKSx2b2lkIDAhPT10LnNwZWN1bGFyVGludE1hcCYmKGkuc3BlY3VsYXJUaW50TWFwPW4odC5zcGVjdWxhclRpbnRNYXApKSx2b2lkIDAhPT10LmVudk1hcCYmKGkuZW52TWFwPW4odC5lbnZNYXApKSx2b2lkIDAhPT10LmVudk1hcEludGVuc2l0eSYmKGkuZW52TWFwSW50ZW5zaXR5PXQuZW52TWFwSW50ZW5zaXR5KSx2b2lkIDAhPT10LnJlZmxlY3Rpdml0eSYmKGkucmVmbGVjdGl2aXR5PXQucmVmbGVjdGl2aXR5KSx2b2lkIDAhPT10LnJlZnJhY3Rpb25SYXRpbyYmKGkucmVmcmFjdGlvblJhdGlvPXQucmVmcmFjdGlvblJhdGlvKSx2b2lkIDAhPT10LmxpZ2h0TWFwJiYoaS5saWdodE1hcD1uKHQubGlnaHRNYXApKSx2b2lkIDAhPT10LmxpZ2h0TWFwSW50ZW5zaXR5JiYoaS5saWdodE1hcEludGVuc2l0eT10LmxpZ2h0TWFwSW50ZW5zaXR5KSx2b2lkIDAhPT10LmFvTWFwJiYoaS5hb01hcD1uKHQuYW9NYXApKSx2b2lkIDAhPT10LmFvTWFwSW50ZW5zaXR5JiYoaS5hb01hcEludGVuc2l0eT10LmFvTWFwSW50ZW5zaXR5KSx2b2lkIDAhPT10LmdyYWRpZW50TWFwJiYoaS5ncmFkaWVudE1hcD1uKHQuZ3JhZGllbnRNYXApKSx2b2lkIDAhPT10LmNsZWFyY29hdE1hcCYmKGkuY2xlYXJjb2F0TWFwPW4odC5jbGVhcmNvYXRNYXApKSx2b2lkIDAhPT10LmNsZWFyY29hdFJvdWdobmVzc01hcCYmKGkuY2xlYXJjb2F0Um91Z2huZXNzTWFwPW4odC5jbGVhcmNvYXRSb3VnaG5lc3NNYXApKSx2b2lkIDAhPT10LmNsZWFyY29hdE5vcm1hbE1hcCYmKGkuY2xlYXJjb2F0Tm9ybWFsTWFwPW4odC5jbGVhcmNvYXROb3JtYWxNYXApKSx2b2lkIDAhPT10LmNsZWFyY29hdE5vcm1hbFNjYWxlJiYoaS5jbGVhcmNvYXROb3JtYWxTY2FsZT0obmV3IEM1dCkuZnJvbUFycmF5KHQuY2xlYXJjb2F0Tm9ybWFsU2NhbGUpKSx2b2lkIDAhPT10LnRyYW5zbWlzc2lvbk1hcCYmKGkudHJhbnNtaXNzaW9uTWFwPW4odC50cmFuc21pc3Npb25NYXApKSx2b2lkIDAhPT10LnRoaWNrbmVzc01hcCYmKGkudGhpY2tuZXNzTWFwPW4odC50aGlja25lc3NNYXApKSxpfXNldFRleHR1cmVzKHQpe3JldHVybiB0aGlzLnRleHR1cmVzPXQsdGhpc319Y2xhc3MgVm5le3N0YXRpYyBkZWNvZGVUZXh0KHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgVGV4dERlY29kZXIpcmV0dXJuKG5ldyBUZXh0RGVjb2RlcikuZGVjb2RlKHQpO2xldCBlPSIiO2ZvcihsZXQgbj0wLGk9dC5sZW5ndGg7bjxpO24rKyllKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHRbbl0pO3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZShlKSl9Y2F0Y2godCl7cmV0dXJuIGV9fXN0YXRpYyBleHRyYWN0VXJsQmFzZSh0KXtjb25zdCBlPXQubGFzdEluZGV4T2YoIi8iKTtyZXR1cm4tMT09PWU/Ii4vIjp0LnN1YnN0cigwLGUrMSl9fWNsYXNzIFVuZSBleHRlbmRzIE40dHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50eXBlPSJJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSIsdGhpcy5pbnN0YW5jZUNvdW50PTEvMH1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuaW5zdGFuY2VDb3VudD10Lmluc3RhbmNlQ291bnQsdGhpc31jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX10b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTih0aGlzKTtyZXR1cm4gdC5pbnN0YW5jZUNvdW50PXRoaXMuaW5zdGFuY2VDb3VudCx0LmlzSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnk9ITAsdH19VW5lLnByb3RvdHlwZS5pc0luc3RhbmNlZEJ1ZmZlckdlb21ldHJ5PSEwO2NsYXNzIGpuZSBleHRlbmRzIGg0dHtjb25zdHJ1Y3Rvcih0LGUsbixpPTEpeyJudW1iZXIiPT10eXBlb2YgbiYmKGk9bixuPSExLGNvbnNvbGUuZXJyb3IoIlRIUkVFLkluc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZTogVGhlIGNvbnN0cnVjdG9yIG5vdyBleHBlY3RzIG5vcm1hbGl6ZWQgYXMgdGhlIHRoaXJkIGFyZ3VtZW50LiIpKSxzdXBlcih0LGUsbiksdGhpcy5tZXNoUGVyQXR0cmlidXRlPWl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLm1lc2hQZXJBdHRyaWJ1dGU9dC5tZXNoUGVyQXR0cmlidXRlLHRoaXN9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC5tZXNoUGVyQXR0cmlidXRlPXRoaXMubWVzaFBlckF0dHJpYnV0ZSx0LmlzSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlPSEwLHR9fWpuZS5wcm90b3R5cGUuaXNJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGU9ITA7Y2xhc3MgR25lIGV4dGVuZHMgaG5le2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfWxvYWQodCxlLG4saSl7Y29uc3Qgcj10aGlzLG89bmV3IHBuZShyLm1hbmFnZXIpO28uc2V0UGF0aChyLnBhdGgpLG8uc2V0UmVxdWVzdEhlYWRlcihyLnJlcXVlc3RIZWFkZXIpLG8uc2V0V2l0aENyZWRlbnRpYWxzKHIud2l0aENyZWRlbnRpYWxzKSxvLmxvYWQodCwoZnVuY3Rpb24obil7dHJ5e2Uoci5wYXJzZShKU09OLnBhcnNlKG4pKSl9Y2F0Y2goZSl7aT9pKGUpOmNvbnNvbGUuZXJyb3IoZSksci5tYW5hZ2VyLml0ZW1FcnJvcih0KX19KSxuLGkpfXBhcnNlKHQpe2NvbnN0IGU9e30sbj17fTtmdW5jdGlvbiBpKHQsaSl7aWYodm9pZCAwIT09ZVtpXSlyZXR1cm4gZVtpXTtjb25zdCByPXQuaW50ZXJsZWF2ZWRCdWZmZXJzW2ldLG89KGZ1bmN0aW9uIGEodCxlKXtpZih2b2lkIDAhPT1uW2VdKXJldHVybiBuW2VdO2NvbnN0IGk9bmV3IFVpbnQzMkFycmF5KHQuYXJyYXlCdWZmZXJzW2VdKS5idWZmZXI7cmV0dXJuIG5bZV09aSxpfSkodCxyLmJ1ZmZlcikscz1NNHQoci50eXBlLG8pLGw9bmV3IHU3dChzLHIuc3RyaWRlKTtyZXR1cm4gbC51dWlkPXIudXVpZCxlW2ldPWwsbH1jb25zdCByPXQuaXNJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeT9uZXcgVW5lOm5ldyBONHQsbz10LmRhdGEuaW5kZXg7aWYodm9pZCAwIT09byl7Y29uc3QgdD1NNHQoby50eXBlLG8uYXJyYXkpO3Iuc2V0SW5kZXgobmV3IGg0dCh0LDEpKX1jb25zdCBhPXQuZGF0YS5hdHRyaWJ1dGVzO2Zvcihjb25zdCBlIGluIGEpe2NvbnN0IG49YVtlXTtsZXQgbztpZihuLmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUpe2NvbnN0IGU9aSh0LmRhdGEsbi5kYXRhKTtvPW5ldyBkN3QoZSxuLml0ZW1TaXplLG4ub2Zmc2V0LG4ubm9ybWFsaXplZCl9ZWxzZXtjb25zdCB0PU00dChuLnR5cGUsbi5hcnJheSk7bz1uZXcobi5pc0luc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZT9qbmU6aDR0KSh0LG4uaXRlbVNpemUsbi5ub3JtYWxpemVkKX12b2lkIDAhPT1uLm5hbWUmJihvLm5hbWU9bi5uYW1lKSx2b2lkIDAhPT1uLnVzYWdlJiZvLnNldFVzYWdlKG4udXNhZ2UpLHZvaWQgMCE9PW4udXBkYXRlUmFuZ2UmJihvLnVwZGF0ZVJhbmdlLm9mZnNldD1uLnVwZGF0ZVJhbmdlLm9mZnNldCxvLnVwZGF0ZVJhbmdlLmNvdW50PW4udXBkYXRlUmFuZ2UuY291bnQpLHIuc2V0QXR0cmlidXRlKGUsbyl9Y29uc3Qgcz10LmRhdGEubW9ycGhBdHRyaWJ1dGVzO2lmKHMpZm9yKGNvbnN0IGUgaW4gcyl7Y29uc3Qgbj1zW2VdLG89W107Zm9yKGxldCBlPTAscj1uLmxlbmd0aDtlPHI7ZSsrKXtjb25zdCByPW5bZV07bGV0IGE7aWYoci5pc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlKXtjb25zdCBlPWkodC5kYXRhLHIuZGF0YSk7YT1uZXcgZDd0KGUsci5pdGVtU2l6ZSxyLm9mZnNldCxyLm5vcm1hbGl6ZWQpfWVsc2V7Y29uc3QgdD1NNHQoci50eXBlLHIuYXJyYXkpO2E9bmV3IGg0dCh0LHIuaXRlbVNpemUsci5ub3JtYWxpemVkKX12b2lkIDAhPT1yLm5hbWUmJihhLm5hbWU9ci5uYW1lKSxvLnB1c2goYSl9ci5tb3JwaEF0dHJpYnV0ZXNbZV09b310LmRhdGEubW9ycGhUYXJnZXRzUmVsYXRpdmUmJihyLm1vcnBoVGFyZ2V0c1JlbGF0aXZlPSEwKTtjb25zdCBsPXQuZGF0YS5ncm91cHN8fHQuZGF0YS5kcmF3Y2FsbHN8fHQuZGF0YS5vZmZzZXRzO2lmKHZvaWQgMCE9PWwpZm9yKGxldCB0PTAsZT1sLmxlbmd0aDt0IT09ZTsrK3Qpe2NvbnN0IGU9bFt0XTtyLmFkZEdyb3VwKGUuc3RhcnQsZS5jb3VudCxlLm1hdGVyaWFsSW5kZXgpfWNvbnN0IGM9dC5kYXRhLmJvdW5kaW5nU3BoZXJlO2lmKHZvaWQgMCE9PWMpe2NvbnN0IHQ9bmV3IEg1dDt2b2lkIDAhPT1jLmNlbnRlciYmdC5mcm9tQXJyYXkoYy5jZW50ZXIpLHIuYm91bmRpbmdTcGhlcmU9bmV3IHMzdCh0LGMucmFkaXVzKX1yZXR1cm4gdC5uYW1lJiYoci5uYW1lPXQubmFtZSksdC51c2VyRGF0YSYmKHIudXNlckRhdGE9dC51c2VyRGF0YSkscn19Y29uc3QgV25lPXtVVk1hcHBpbmc6dDJ0LEN1YmVSZWZsZWN0aW9uTWFwcGluZzplMnQsQ3ViZVJlZnJhY3Rpb25NYXBwaW5nOm4ydCxFcXVpcmVjdGFuZ3VsYXJSZWZsZWN0aW9uTWFwcGluZzppMnQsRXF1aXJlY3Rhbmd1bGFyUmVmcmFjdGlvbk1hcHBpbmc6cjJ0LEN1YmVVVlJlZmxlY3Rpb25NYXBwaW5nOm8ydCxDdWJlVVZSZWZyYWN0aW9uTWFwcGluZzphMnR9LHFuZT17UmVwZWF0V3JhcHBpbmc6czJ0LENsYW1wVG9FZGdlV3JhcHBpbmc6bDJ0LE1pcnJvcmVkUmVwZWF0V3JhcHBpbmc6YzJ0fSxZbmU9e05lYXJlc3RGaWx0ZXI6dTJ0LE5lYXJlc3RNaXBtYXBOZWFyZXN0RmlsdGVyOmgydCxOZWFyZXN0TWlwbWFwTGluZWFyRmlsdGVyOmQydCxMaW5lYXJGaWx0ZXI6cDJ0LExpbmVhck1pcG1hcE5lYXJlc3RGaWx0ZXI6ZjJ0LExpbmVhck1pcG1hcExpbmVhckZpbHRlcjptMnR9O2NsYXNzIFhuZSBleHRlbmRzIGhuZXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSwidW5kZWZpbmVkIj09dHlwZW9mIGNyZWF0ZUltYWdlQml0bWFwJiZjb25zb2xlLndhcm4oIlRIUkVFLkltYWdlQml0bWFwTG9hZGVyOiBjcmVhdGVJbWFnZUJpdG1hcCgpIG5vdCBzdXBwb3J0ZWQuIiksInVuZGVmaW5lZCI9PXR5cGVvZiBmZXRjaCYmY29uc29sZS53YXJuKCJUSFJFRS5JbWFnZUJpdG1hcExvYWRlcjogZmV0Y2goKSBub3Qgc3VwcG9ydGVkLiIpLHRoaXMub3B0aW9ucz17cHJlbXVsdGlwbHlBbHBoYToibm9uZSJ9fXNldE9wdGlvbnModCl7cmV0dXJuIHRoaXMub3B0aW9ucz10LHRoaXN9bG9hZCh0LGUsbixpKXt2b2lkIDA9PT10JiYodD0iIiksdm9pZCAwIT09dGhpcy5wYXRoJiYodD10aGlzLnBhdGgrdCksdD10aGlzLm1hbmFnZXIucmVzb2x2ZVVSTCh0KTtjb25zdCByPXRoaXMsbz1sbmUuZ2V0KHQpO2lmKHZvaWQgMCE9PW8pcmV0dXJuIHIubWFuYWdlci5pdGVtU3RhcnQodCksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtlJiZlKG8pLHIubWFuYWdlci5pdGVtRW5kKHQpfSksMCksbztjb25zdCBhPXt9O2EuY3JlZGVudGlhbHM9ImFub255bW91cyI9PT10aGlzLmNyb3NzT3JpZ2luPyJzYW1lLW9yaWdpbiI6ImluY2x1ZGUiLGEuaGVhZGVycz10aGlzLnJlcXVlc3RIZWFkZXIsZmV0Y2godCxhKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gdC5ibG9iKCl9KSkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIGNyZWF0ZUltYWdlQml0bWFwKHQsT2JqZWN0LmFzc2lnbihyLm9wdGlvbnMse2NvbG9yU3BhY2VDb252ZXJzaW9uOiJub25lIn0pKX0pKS50aGVuKChmdW5jdGlvbihuKXtsbmUuYWRkKHQsbiksZSYmZShuKSxyLm1hbmFnZXIuaXRlbUVuZCh0KX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7aSYmaShlKSxyLm1hbmFnZXIuaXRlbUVycm9yKHQpLHIubWFuYWdlci5pdGVtRW5kKHQpfSkpLHIubWFuYWdlci5pdGVtU3RhcnQodCl9fVhuZS5wcm90b3R5cGUuaXNJbWFnZUJpdG1hcExvYWRlcj0hMDtjbGFzcyAkbmV7Y29uc3RydWN0b3IoKXt0aGlzLnR5cGU9IlNoYXBlUGF0aCIsdGhpcy5jb2xvcj1uZXcgczR0LHRoaXMuc3ViUGF0aHM9W10sdGhpcy5jdXJyZW50UGF0aD1udWxsfW1vdmVUbyh0LGUpe3JldHVybiB0aGlzLmN1cnJlbnRQYXRoPW5ldyB2bmUsdGhpcy5zdWJQYXRocy5wdXNoKHRoaXMuY3VycmVudFBhdGgpLHRoaXMuY3VycmVudFBhdGgubW92ZVRvKHQsZSksdGhpc31saW5lVG8odCxlKXtyZXR1cm4gdGhpcy5jdXJyZW50UGF0aC5saW5lVG8odCxlKSx0aGlzfXF1YWRyYXRpY0N1cnZlVG8odCxlLG4saSl7cmV0dXJuIHRoaXMuY3VycmVudFBhdGgucXVhZHJhdGljQ3VydmVUbyh0LGUsbixpKSx0aGlzfWJlemllckN1cnZlVG8odCxlLG4saSxyLG8pe3JldHVybiB0aGlzLmN1cnJlbnRQYXRoLmJlemllckN1cnZlVG8odCxlLG4saSxyLG8pLHRoaXN9c3BsaW5lVGhydSh0KXtyZXR1cm4gdGhpcy5jdXJyZW50UGF0aC5zcGxpbmVUaHJ1KHQpLHRoaXN9dG9TaGFwZXModCxlKXtmdW5jdGlvbiBuKHQpe2NvbnN0IGU9W107Zm9yKGxldCBuPTAsaT10Lmxlbmd0aDtuPGk7bisrKXtjb25zdCBpPXRbbl0scj1uZXcgYm5lO3IuY3VydmVzPWkuY3VydmVzLGUucHVzaChyKX1yZXR1cm4gZX1mdW5jdGlvbiBpKHQsZSl7Y29uc3Qgbj1lLmxlbmd0aDtsZXQgaT0hMTtmb3IobGV0IHI9bi0xLG89MDtvPG47cj1vKyspe2xldCBuPWVbcl0sYT1lW29dLHM9YS54LW4ueCxsPWEueS1uLnk7aWYoTWF0aC5hYnMobCk+TnVtYmVyLkVQU0lMT04pe2lmKGw8MCYmKG49ZVtvXSxzPS1zLGE9ZVtyXSxsPS1sKSx0Lnk8bi55fHx0Lnk+YS55KWNvbnRpbnVlO2lmKHQueT09PW4ueSl7aWYodC54PT09bi54KXJldHVybiEwfWVsc2V7Y29uc3QgZT1sKih0Lngtbi54KS1zKih0Lnktbi55KTtpZigwPT09ZSlyZXR1cm4hMDtpZihlPDApY29udGludWU7aT0haX19ZWxzZXtpZih0LnkhPT1uLnkpY29udGludWU7aWYoYS54PD10LngmJnQueDw9bi54fHxuLng8PXQueCYmdC54PD1hLngpcmV0dXJuITB9fXJldHVybiBpfWNvbnN0IHI9X2VlLmlzQ2xvY2tXaXNlLG89dGhpcy5zdWJQYXRocztpZigwPT09by5sZW5ndGgpcmV0dXJuW107aWYoITA9PT1lKXJldHVybiBuKG8pO2xldCBhLHMsbDtjb25zdCBjPVtdO2lmKDE9PT1vLmxlbmd0aClyZXR1cm4gcz1vWzBdLGw9bmV3IGJuZSxsLmN1cnZlcz1zLmN1cnZlcyxjLnB1c2gobCksYztsZXQgdT0hcihvWzBdLmdldFBvaW50cygpKTt1PXQ/IXU6dTtjb25zdCBoPVtdLGQ9W107bGV0IHAsZixtPVtdLGc9MDtkW2ddPXZvaWQgMCxtW2ddPVtdO2ZvcihsZXQgZT0wLG49by5sZW5ndGg7ZTxuO2UrKylzPW9bZV0scD1zLmdldFBvaW50cygpLGE9cihwKSxhPXQ/IWE6YSxhPyghdSYmZFtnXSYmZysrLGRbZ109e3M6bmV3IGJuZSxwOnB9LGRbZ10ucy5jdXJ2ZXM9cy5jdXJ2ZXMsdSYmZysrLG1bZ109W10pOm1bZ10ucHVzaCh7aDpzLHA6cFswXX0pO2lmKCFkWzBdKXJldHVybiBuKG8pO2lmKGQubGVuZ3RoPjEpe2xldCB0PSExO2NvbnN0IGU9W107Zm9yKGxldCB0PTAsZT1kLmxlbmd0aDt0PGU7dCsrKWhbdF09W107Zm9yKGxldCBuPTAscj1kLmxlbmd0aDtuPHI7bisrKXtjb25zdCByPW1bbl07Zm9yKGxldCBvPTA7bzxyLmxlbmd0aDtvKyspe2NvbnN0IGE9cltvXTtsZXQgcz0hMDtmb3IobGV0IHI9MDtyPGQubGVuZ3RoO3IrKylpKGEucCxkW3JdLnApJiYobiE9PXImJmUucHVzaCh7ZnJvbXM6bix0b3M6cixob2xlOm99KSxzPyhzPSExLGhbcl0ucHVzaChhKSk6dD0hMCk7cyYmaFtuXS5wdXNoKGEpfX1lLmxlbmd0aD4wJiYodHx8KG09aCkpfWZvcihsZXQgdD0wLGU9ZC5sZW5ndGg7dDxlO3QrKyl7bD1kW3RdLnMsYy5wdXNoKGwpLGY9bVt0XTtmb3IobGV0IHQ9MCxlPWYubGVuZ3RoO3Q8ZTt0KyspbC5ob2xlcy5wdXNoKGZbdF0uaCl9cmV0dXJuIGN9fWNsYXNzIEtuZXtjb25zdHJ1Y3Rvcih0KXt0aGlzLnR5cGU9IkZvbnQiLHRoaXMuZGF0YT10fWdlbmVyYXRlU2hhcGVzKHQsZT0xMDApe2NvbnN0IG49W10saT0oZnVuY3Rpb24gcih0LGUsbil7Y29uc3QgaT1BcnJheS5mcm9tKHQpLHI9ZS9uLnJlc29sdXRpb24sbz0obi5ib3VuZGluZ0JveC55TWF4LW4uYm91bmRpbmdCb3gueU1pbituLnVuZGVybGluZVRoaWNrbmVzcykqcixhPVtdO2xldCBzPTAsbD0wO2ZvcihsZXQgdD0wO3Q8aS5sZW5ndGg7dCsrKXtjb25zdCBlPWlbdF07aWYoIlxuIj09PWUpcz0wLGwtPW87ZWxzZXtjb25zdCB0PVpuZShlLHIscyxsLG4pO3MrPXQub2Zmc2V0WCxhLnB1c2godC5wYXRoKX19cmV0dXJuIGF9KSh0LGUsdGhpcy5kYXRhKTtmb3IobGV0IHQ9MCxlPWkubGVuZ3RoO3Q8ZTt0KyspQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkobixpW3RdLnRvU2hhcGVzKCkpO3JldHVybiBufX1mdW5jdGlvbiBabmUodCxlLG4saSxyKXtjb25zdCBvPXIuZ2x5cGhzW3RdfHxyLmdseXBoc1siPyJdO2lmKCFvKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoJ1RIUkVFLkZvbnQ6IGNoYXJhY3RlciAiJyt0KyciIGRvZXMgbm90IGV4aXN0cyBpbiBmb250IGZhbWlseSAnK3IuZmFtaWx5TmFtZSsiLiIpO2NvbnN0IGE9bmV3ICRuZTtsZXQgcyxsLGMsdSxoLGQscCxmO2lmKG8ubyl7Y29uc3QgdD1vLl9jYWNoZWRPdXRsaW5lfHwoby5fY2FjaGVkT3V0bGluZT1vLm8uc3BsaXQoIiAiKSk7Zm9yKGxldCByPTAsbz10Lmxlbmd0aDtyPG87KXtzd2l0Y2godFtyKytdKXtjYXNlIm0iOnM9dFtyKytdKmUrbixsPXRbcisrXSplK2ksYS5tb3ZlVG8ocyxsKTticmVhaztjYXNlImwiOnM9dFtyKytdKmUrbixsPXRbcisrXSplK2ksYS5saW5lVG8ocyxsKTticmVhaztjYXNlInEiOmM9dFtyKytdKmUrbix1PXRbcisrXSplK2ksaD10W3IrK10qZStuLGQ9dFtyKytdKmUraSxhLnF1YWRyYXRpY0N1cnZlVG8oaCxkLGMsdSk7YnJlYWs7Y2FzZSJiIjpjPXRbcisrXSplK24sdT10W3IrK10qZStpLGg9dFtyKytdKmUrbixkPXRbcisrXSplK2kscD10W3IrK10qZStuLGY9dFtyKytdKmUraSxhLmJlemllckN1cnZlVG8oaCxkLHAsZixjLHUpfX19cmV0dXJue29mZnNldFg6by5oYSplLHBhdGg6YX19S25lLnByb3RvdHlwZS5pc0ZvbnQ9ITA7bGV0IEpuZTtjb25zdCBRbmU9e2dldENvbnRleHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09Sm5lJiYoSm5lPW5ldyh3aW5kb3cuQXVkaW9Db250ZXh0fHx3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0KSksSm5lfSxzZXRDb250ZXh0OmZ1bmN0aW9uKHQpe0puZT10fX07Y2xhc3MgdGllIGV4dGVuZHMgaG5le2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfWxvYWQodCxlLG4saSl7Y29uc3Qgcj10aGlzLG89bmV3IHBuZSh0aGlzLm1hbmFnZXIpO28uc2V0UmVzcG9uc2VUeXBlKCJhcnJheWJ1ZmZlciIpLG8uc2V0UGF0aCh0aGlzLnBhdGgpLG8uc2V0UmVxdWVzdEhlYWRlcih0aGlzLnJlcXVlc3RIZWFkZXIpLG8uc2V0V2l0aENyZWRlbnRpYWxzKHRoaXMud2l0aENyZWRlbnRpYWxzKSxvLmxvYWQodCwoZnVuY3Rpb24obil7dHJ5e2NvbnN0IHQ9bi5zbGljZSgwKTtRbmUuZ2V0Q29udGV4dCgpLmRlY29kZUF1ZGlvRGF0YSh0LChmdW5jdGlvbih0KXtlKHQpfSkpfWNhdGNoKGUpe2k/aShlKTpjb25zb2xlLmVycm9yKGUpLHIubWFuYWdlci5pdGVtRXJyb3IodCl9fSksbixpKX19Y2xhc3MgZWllIGV4dGVuZHMgSG5le2NvbnN0cnVjdG9yKHQsZSxuPTEpe3N1cGVyKHZvaWQgMCxuKTtjb25zdCBpPShuZXcgczR0KS5zZXQodCkscj0obmV3IHM0dCkuc2V0KGUpLG89bmV3IEg1dChpLnIsaS5nLGkuYiksYT1uZXcgSDV0KHIucixyLmcsci5iKSxzPU1hdGguc3FydChNYXRoLlBJKSxsPXMqTWF0aC5zcXJ0KC43NSk7dGhpcy5zaC5jb2VmZmljaWVudHNbMF0uY29weShvKS5hZGQoYSkubXVsdGlwbHlTY2FsYXIocyksdGhpcy5zaC5jb2VmZmljaWVudHNbMV0uY29weShvKS5zdWIoYSkubXVsdGlwbHlTY2FsYXIobCl9fWVpZS5wcm90b3R5cGUuaXNIZW1pc3BoZXJlTGlnaHRQcm9iZT0hMDtjbGFzcyBuaWUgZXh0ZW5kcyBIbmV7Y29uc3RydWN0b3IodCxlPTEpe3N1cGVyKHZvaWQgMCxlKTtjb25zdCBuPShuZXcgczR0KS5zZXQodCk7dGhpcy5zaC5jb2VmZmljaWVudHNbMF0uc2V0KG4ucixuLmcsbi5iKS5tdWx0aXBseVNjYWxhcigyKk1hdGguc3FydChNYXRoLlBJKSl9fW5pZS5wcm90b3R5cGUuaXNBbWJpZW50TGlnaHRQcm9iZT0hMDtjb25zdCBpaWU9bmV3IGczdCxyaWU9bmV3IGczdDtjbGFzcyBvaWV7Y29uc3RydWN0b3IodD0hMCl7dGhpcy5hdXRvU3RhcnQ9dCx0aGlzLnN0YXJ0VGltZT0wLHRoaXMub2xkVGltZT0wLHRoaXMuZWxhcHNlZFRpbWU9MCx0aGlzLnJ1bm5pbmc9ITF9c3RhcnQoKXt0aGlzLnN0YXJ0VGltZT1haWUoKSx0aGlzLm9sZFRpbWU9dGhpcy5zdGFydFRpbWUsdGhpcy5lbGFwc2VkVGltZT0wLHRoaXMucnVubmluZz0hMH1zdG9wKCl7dGhpcy5nZXRFbGFwc2VkVGltZSgpLHRoaXMucnVubmluZz0hMSx0aGlzLmF1dG9TdGFydD0hMX1nZXRFbGFwc2VkVGltZSgpe3JldHVybiB0aGlzLmdldERlbHRhKCksdGhpcy5lbGFwc2VkVGltZX1nZXREZWx0YSgpe2xldCB0PTA7aWYodGhpcy5hdXRvU3RhcnQmJiF0aGlzLnJ1bm5pbmcpcmV0dXJuIHRoaXMuc3RhcnQoKSwwO2lmKHRoaXMucnVubmluZyl7Y29uc3QgZT1haWUoKTt0PShlLXRoaXMub2xkVGltZSkvMWUzLHRoaXMub2xkVGltZT1lLHRoaXMuZWxhcHNlZFRpbWUrPXR9cmV0dXJuIHR9fWZ1bmN0aW9uIGFpZSgpe3JldHVybigidW5kZWZpbmVkIj09dHlwZW9mIHBlcmZvcm1hbmNlP0RhdGU6cGVyZm9ybWFuY2UpLm5vdygpfWNvbnN0IHNpZT1uZXcgSDV0LGxpZT1uZXcgQjV0LGNpZT1uZXcgSDV0LHVpZT1uZXcgSDV0O2NsYXNzIGhpZSBleHRlbmRzIFYzdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iQXVkaW8iLHRoaXMubGlzdGVuZXI9dCx0aGlzLmNvbnRleHQ9dC5jb250ZXh0LHRoaXMuZ2Fpbj10aGlzLmNvbnRleHQuY3JlYXRlR2FpbigpLHRoaXMuZ2Fpbi5jb25uZWN0KHQuZ2V0SW5wdXQoKSksdGhpcy5hdXRvcGxheT0hMSx0aGlzLmJ1ZmZlcj1udWxsLHRoaXMuZGV0dW5lPTAsdGhpcy5sb29wPSExLHRoaXMubG9vcFN0YXJ0PTAsdGhpcy5sb29wRW5kPTAsdGhpcy5vZmZzZXQ9MCx0aGlzLmR1cmF0aW9uPXZvaWQgMCx0aGlzLnBsYXliYWNrUmF0ZT0xLHRoaXMuaXNQbGF5aW5nPSExLHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSEwLHRoaXMuc291cmNlPW51bGwsdGhpcy5zb3VyY2VUeXBlPSJlbXB0eSIsdGhpcy5fc3RhcnRlZEF0PTAsdGhpcy5fcHJvZ3Jlc3M9MCx0aGlzLl9jb25uZWN0ZWQ9ITEsdGhpcy5maWx0ZXJzPVtdfWdldE91dHB1dCgpe3JldHVybiB0aGlzLmdhaW59c2V0Tm9kZVNvdXJjZSh0KXtyZXR1cm4gdGhpcy5oYXNQbGF5YmFja0NvbnRyb2w9ITEsdGhpcy5zb3VyY2VUeXBlPSJhdWRpb05vZGUiLHRoaXMuc291cmNlPXQsdGhpcy5jb25uZWN0KCksdGhpc31zZXRNZWRpYUVsZW1lbnRTb3VyY2UodCl7cmV0dXJuIHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSExLHRoaXMuc291cmNlVHlwZT0ibWVkaWFOb2RlIix0aGlzLnNvdXJjZT10aGlzLmNvbnRleHQuY3JlYXRlTWVkaWFFbGVtZW50U291cmNlKHQpLHRoaXMuY29ubmVjdCgpLHRoaXN9c2V0TWVkaWFTdHJlYW1Tb3VyY2UodCl7cmV0dXJuIHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSExLHRoaXMuc291cmNlVHlwZT0ibWVkaWFTdHJlYW1Ob2RlIix0aGlzLnNvdXJjZT10aGlzLmNvbnRleHQuY3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2UodCksdGhpcy5jb25uZWN0KCksdGhpc31zZXRCdWZmZXIodCl7cmV0dXJuIHRoaXMuYnVmZmVyPXQsdGhpcy5zb3VyY2VUeXBlPSJidWZmZXIiLHRoaXMuYXV0b3BsYXkmJnRoaXMucGxheSgpLHRoaXN9cGxheSh0PTApe2lmKCEwPT09dGhpcy5pc1BsYXlpbmcpcmV0dXJuIHZvaWQgY29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogQXVkaW8gaXMgYWxyZWFkeSBwbGF5aW5nLiIpO2lmKCExPT09dGhpcy5oYXNQbGF5YmFja0NvbnRyb2wpcmV0dXJuIHZvaWQgY29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKTt0aGlzLl9zdGFydGVkQXQ9dGhpcy5jb250ZXh0LmN1cnJlbnRUaW1lK3Q7Y29uc3QgZT10aGlzLmNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7cmV0dXJuIGUuYnVmZmVyPXRoaXMuYnVmZmVyLGUubG9vcD10aGlzLmxvb3AsZS5sb29wU3RhcnQ9dGhpcy5sb29wU3RhcnQsZS5sb29wRW5kPXRoaXMubG9vcEVuZCxlLm9uZW5kZWQ9dGhpcy5vbkVuZGVkLmJpbmQodGhpcyksZS5zdGFydCh0aGlzLl9zdGFydGVkQXQsdGhpcy5fcHJvZ3Jlc3MrdGhpcy5vZmZzZXQsdGhpcy5kdXJhdGlvbiksdGhpcy5pc1BsYXlpbmc9ITAsdGhpcy5zb3VyY2U9ZSx0aGlzLnNldERldHVuZSh0aGlzLmRldHVuZSksdGhpcy5zZXRQbGF5YmFja1JhdGUodGhpcy5wbGF5YmFja1JhdGUpLHRoaXMuY29ubmVjdCgpfXBhdXNlKCl7aWYoITEhPT10aGlzLmhhc1BsYXliYWNrQ29udHJvbClyZXR1cm4hMD09PXRoaXMuaXNQbGF5aW5nJiYodGhpcy5fcHJvZ3Jlc3MrPU1hdGgubWF4KHRoaXMuY29udGV4dC5jdXJyZW50VGltZS10aGlzLl9zdGFydGVkQXQsMCkqdGhpcy5wbGF5YmFja1JhdGUsITA9PT10aGlzLmxvb3AmJih0aGlzLl9wcm9ncmVzcz10aGlzLl9wcm9ncmVzcyUodGhpcy5kdXJhdGlvbnx8dGhpcy5idWZmZXIuZHVyYXRpb24pKSx0aGlzLnNvdXJjZS5zdG9wKCksdGhpcy5zb3VyY2Uub25lbmRlZD1udWxsLHRoaXMuaXNQbGF5aW5nPSExKSx0aGlzO2NvbnNvbGUud2FybigiVEhSRUUuQXVkaW86IHRoaXMgQXVkaW8gaGFzIG5vIHBsYXliYWNrIGNvbnRyb2wuIil9c3RvcCgpe2lmKCExIT09dGhpcy5oYXNQbGF5YmFja0NvbnRyb2wpcmV0dXJuIHRoaXMuX3Byb2dyZXNzPTAsdGhpcy5zb3VyY2Uuc3RvcCgpLHRoaXMuc291cmNlLm9uZW5kZWQ9bnVsbCx0aGlzLmlzUGxheWluZz0hMSx0aGlzO2NvbnNvbGUud2FybigiVEhSRUUuQXVkaW86IHRoaXMgQXVkaW8gaGFzIG5vIHBsYXliYWNrIGNvbnRyb2wuIil9Y29ubmVjdCgpe2lmKHRoaXMuZmlsdGVycy5sZW5ndGg+MCl7dGhpcy5zb3VyY2UuY29ubmVjdCh0aGlzLmZpbHRlcnNbMF0pO2ZvcihsZXQgdD0xLGU9dGhpcy5maWx0ZXJzLmxlbmd0aDt0PGU7dCsrKXRoaXMuZmlsdGVyc1t0LTFdLmNvbm5lY3QodGhpcy5maWx0ZXJzW3RdKTt0aGlzLmZpbHRlcnNbdGhpcy5maWx0ZXJzLmxlbmd0aC0xXS5jb25uZWN0KHRoaXMuZ2V0T3V0cHV0KCkpfWVsc2UgdGhpcy5zb3VyY2UuY29ubmVjdCh0aGlzLmdldE91dHB1dCgpKTtyZXR1cm4gdGhpcy5fY29ubmVjdGVkPSEwLHRoaXN9ZGlzY29ubmVjdCgpe2lmKHRoaXMuZmlsdGVycy5sZW5ndGg+MCl7dGhpcy5zb3VyY2UuZGlzY29ubmVjdCh0aGlzLmZpbHRlcnNbMF0pO2ZvcihsZXQgdD0xLGU9dGhpcy5maWx0ZXJzLmxlbmd0aDt0PGU7dCsrKXRoaXMuZmlsdGVyc1t0LTFdLmRpc2Nvbm5lY3QodGhpcy5maWx0ZXJzW3RdKTt0aGlzLmZpbHRlcnNbdGhpcy5maWx0ZXJzLmxlbmd0aC0xXS5kaXNjb25uZWN0KHRoaXMuZ2V0T3V0cHV0KCkpfWVsc2UgdGhpcy5zb3VyY2UuZGlzY29ubmVjdCh0aGlzLmdldE91dHB1dCgpKTtyZXR1cm4gdGhpcy5fY29ubmVjdGVkPSExLHRoaXN9Z2V0RmlsdGVycygpe3JldHVybiB0aGlzLmZpbHRlcnN9c2V0RmlsdGVycyh0KXtyZXR1cm4gdHx8KHQ9W10pLCEwPT09dGhpcy5fY29ubmVjdGVkPyh0aGlzLmRpc2Nvbm5lY3QoKSx0aGlzLmZpbHRlcnM9dC5zbGljZSgpLHRoaXMuY29ubmVjdCgpKTp0aGlzLmZpbHRlcnM9dC5zbGljZSgpLHRoaXN9c2V0RGV0dW5lKHQpe2lmKHRoaXMuZGV0dW5lPXQsdm9pZCAwIT09dGhpcy5zb3VyY2UuZGV0dW5lKXJldHVybiEwPT09dGhpcy5pc1BsYXlpbmcmJnRoaXMuc291cmNlLmRldHVuZS5zZXRUYXJnZXRBdFRpbWUodGhpcy5kZXR1bmUsdGhpcy5jb250ZXh0LmN1cnJlbnRUaW1lLC4wMSksdGhpc31nZXREZXR1bmUoKXtyZXR1cm4gdGhpcy5kZXR1bmV9Z2V0RmlsdGVyKCl7cmV0dXJuIHRoaXMuZ2V0RmlsdGVycygpWzBdfXNldEZpbHRlcih0KXtyZXR1cm4gdGhpcy5zZXRGaWx0ZXJzKHQ/W3RdOltdKX1zZXRQbGF5YmFja1JhdGUodCl7aWYoITEhPT10aGlzLmhhc1BsYXliYWNrQ29udHJvbClyZXR1cm4gdGhpcy5wbGF5YmFja1JhdGU9dCwhMD09PXRoaXMuaXNQbGF5aW5nJiZ0aGlzLnNvdXJjZS5wbGF5YmFja1JhdGUuc2V0VGFyZ2V0QXRUaW1lKHRoaXMucGxheWJhY2tSYXRlLHRoaXMuY29udGV4dC5jdXJyZW50VGltZSwuMDEpLHRoaXM7Y29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKX1nZXRQbGF5YmFja1JhdGUoKXtyZXR1cm4gdGhpcy5wbGF5YmFja1JhdGV9b25FbmRlZCgpe3RoaXMuaXNQbGF5aW5nPSExfWdldExvb3AoKXtyZXR1cm4hMT09PXRoaXMuaGFzUGxheWJhY2tDb250cm9sPyhjb25zb2xlLndhcm4oIlRIUkVFLkF1ZGlvOiB0aGlzIEF1ZGlvIGhhcyBubyBwbGF5YmFjayBjb250cm9sLiIpLCExKTp0aGlzLmxvb3B9c2V0TG9vcCh0KXtpZighMSE9PXRoaXMuaGFzUGxheWJhY2tDb250cm9sKXJldHVybiB0aGlzLmxvb3A9dCwhMD09PXRoaXMuaXNQbGF5aW5nJiYodGhpcy5zb3VyY2UubG9vcD10aGlzLmxvb3ApLHRoaXM7Y29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKX1zZXRMb29wU3RhcnQodCl7cmV0dXJuIHRoaXMubG9vcFN0YXJ0PXQsdGhpc31zZXRMb29wRW5kKHQpe3JldHVybiB0aGlzLmxvb3BFbmQ9dCx0aGlzfWdldFZvbHVtZSgpe3JldHVybiB0aGlzLmdhaW4uZ2Fpbi52YWx1ZX1zZXRWb2x1bWUodCl7cmV0dXJuIHRoaXMuZ2Fpbi5nYWluLnNldFRhcmdldEF0VGltZSh0LHRoaXMuY29udGV4dC5jdXJyZW50VGltZSwuMDEpLHRoaXN9fWNvbnN0IGRpZT1uZXcgSDV0LHBpZT1uZXcgQjV0LGZpZT1uZXcgSDV0LG1pZT1uZXcgSDV0O2NsYXNzIGdpZXtjb25zdHJ1Y3Rvcih0LGU9MjA0OCl7dGhpcy5hbmFseXNlcj10LmNvbnRleHQuY3JlYXRlQW5hbHlzZXIoKSx0aGlzLmFuYWx5c2VyLmZmdFNpemU9ZSx0aGlzLmRhdGE9bmV3IFVpbnQ4QXJyYXkodGhpcy5hbmFseXNlci5mcmVxdWVuY3lCaW5Db3VudCksdC5nZXRPdXRwdXQoKS5jb25uZWN0KHRoaXMuYW5hbHlzZXIpfWdldEZyZXF1ZW5jeURhdGEoKXtyZXR1cm4gdGhpcy5hbmFseXNlci5nZXRCeXRlRnJlcXVlbmN5RGF0YSh0aGlzLmRhdGEpLHRoaXMuZGF0YX1nZXRBdmVyYWdlRnJlcXVlbmN5KCl7bGV0IHQ9MDtjb25zdCBlPXRoaXMuZ2V0RnJlcXVlbmN5RGF0YSgpO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXQrPWVbbl07cmV0dXJuIHQvZS5sZW5ndGh9fWNsYXNzIF9pZXtjb25zdHJ1Y3Rvcih0LGUsbil7bGV0IGkscixvO3N3aXRjaCh0aGlzLmJpbmRpbmc9dCx0aGlzLnZhbHVlU2l6ZT1uLGUpe2Nhc2UicXVhdGVybmlvbiI6aT10aGlzLl9zbGVycCxyPXRoaXMuX3NsZXJwQWRkaXRpdmUsbz10aGlzLl9zZXRBZGRpdGl2ZUlkZW50aXR5UXVhdGVybmlvbix0aGlzLmJ1ZmZlcj1uZXcgRmxvYXQ2NEFycmF5KDYqbiksdGhpcy5fd29ya0luZGV4PTU7YnJlYWs7Y2FzZSJzdHJpbmciOmNhc2UiYm9vbCI6aT10aGlzLl9zZWxlY3Qscj10aGlzLl9zZWxlY3Qsbz10aGlzLl9zZXRBZGRpdGl2ZUlkZW50aXR5T3RoZXIsdGhpcy5idWZmZXI9bmV3IEFycmF5KDUqbik7YnJlYWs7ZGVmYXVsdDppPXRoaXMuX2xlcnAscj10aGlzLl9sZXJwQWRkaXRpdmUsbz10aGlzLl9zZXRBZGRpdGl2ZUlkZW50aXR5TnVtZXJpYyx0aGlzLmJ1ZmZlcj1uZXcgRmxvYXQ2NEFycmF5KDUqbil9dGhpcy5fbWl4QnVmZmVyUmVnaW9uPWksdGhpcy5fbWl4QnVmZmVyUmVnaW9uQWRkaXRpdmU9cix0aGlzLl9zZXRJZGVudGl0eT1vLHRoaXMuX29yaWdJbmRleD0zLHRoaXMuX2FkZEluZGV4PTQsdGhpcy5jdW11bGF0aXZlV2VpZ2h0PTAsdGhpcy5jdW11bGF0aXZlV2VpZ2h0QWRkaXRpdmU9MCx0aGlzLnVzZUNvdW50PTAsdGhpcy5yZWZlcmVuY2VDb3VudD0wfWFjY3VtdWxhdGUodCxlKXtjb25zdCBuPXRoaXMuYnVmZmVyLGk9dGhpcy52YWx1ZVNpemUscj10KmkraTtsZXQgbz10aGlzLmN1bXVsYXRpdmVXZWlnaHQ7aWYoMD09PW8pe2ZvcihsZXQgdD0wO3QhPT1pOysrdCluW3IrdF09blt0XTtvPWV9ZWxzZXtvKz1lO3RoaXMuX21peEJ1ZmZlclJlZ2lvbihuLHIsMCxlL28saSl9dGhpcy5jdW11bGF0aXZlV2VpZ2h0PW99YWNjdW11bGF0ZUFkZGl0aXZlKHQpe2NvbnN0IGU9dGhpcy5idWZmZXIsbj10aGlzLnZhbHVlU2l6ZSxpPW4qdGhpcy5fYWRkSW5kZXg7MD09PXRoaXMuY3VtdWxhdGl2ZVdlaWdodEFkZGl0aXZlJiZ0aGlzLl9zZXRJZGVudGl0eSgpLHRoaXMuX21peEJ1ZmZlclJlZ2lvbkFkZGl0aXZlKGUsaSwwLHQsbiksdGhpcy5jdW11bGF0aXZlV2VpZ2h0QWRkaXRpdmUrPXR9YXBwbHkodCl7Y29uc3QgZT10aGlzLnZhbHVlU2l6ZSxuPXRoaXMuYnVmZmVyLGk9dCplK2Uscj10aGlzLmN1bXVsYXRpdmVXZWlnaHQsbz10aGlzLmN1bXVsYXRpdmVXZWlnaHRBZGRpdGl2ZSxhPXRoaXMuYmluZGluZztpZih0aGlzLmN1bXVsYXRpdmVXZWlnaHQ9MCx0aGlzLmN1bXVsYXRpdmVXZWlnaHRBZGRpdGl2ZT0wLHI8MSl7dGhpcy5fbWl4QnVmZmVyUmVnaW9uKG4saSxlKnRoaXMuX29yaWdJbmRleCwxLXIsZSl9bz4wJiZ0aGlzLl9taXhCdWZmZXJSZWdpb25BZGRpdGl2ZShuLGksdGhpcy5fYWRkSW5kZXgqZSwxLGUpO2ZvcihsZXQgdD1lLHI9ZStlO3QhPT1yOysrdClpZihuW3RdIT09blt0K2VdKXthLnNldFZhbHVlKG4saSk7YnJlYWt9fXNhdmVPcmlnaW5hbFN0YXRlKCl7Y29uc3QgdD10aGlzLmJ1ZmZlcixlPXRoaXMudmFsdWVTaXplLG49ZSp0aGlzLl9vcmlnSW5kZXg7dGhpcy5iaW5kaW5nLmdldFZhbHVlKHQsbik7Zm9yKGxldCBpPWUscj1uO2khPT1yOysraSl0W2ldPXRbbitpJWVdO3RoaXMuX3NldElkZW50aXR5KCksdGhpcy5jdW11bGF0aXZlV2VpZ2h0PTAsdGhpcy5jdW11bGF0aXZlV2VpZ2h0QWRkaXRpdmU9MH1yZXN0b3JlT3JpZ2luYWxTdGF0ZSgpe3RoaXMuYmluZGluZy5zZXRWYWx1ZSh0aGlzLmJ1ZmZlciwzKnRoaXMudmFsdWVTaXplKX1fc2V0QWRkaXRpdmVJZGVudGl0eU51bWVyaWMoKXtjb25zdCB0PXRoaXMuX2FkZEluZGV4KnRoaXMudmFsdWVTaXplLGU9dCt0aGlzLnZhbHVlU2l6ZTtmb3IobGV0IG49dDtuPGU7bisrKXRoaXMuYnVmZmVyW25dPTB9X3NldEFkZGl0aXZlSWRlbnRpdHlRdWF0ZXJuaW9uKCl7dGhpcy5fc2V0QWRkaXRpdmVJZGVudGl0eU51bWVyaWMoKSx0aGlzLmJ1ZmZlclt0aGlzLl9hZGRJbmRleCp0aGlzLnZhbHVlU2l6ZSszXT0xfV9zZXRBZGRpdGl2ZUlkZW50aXR5T3RoZXIoKXtjb25zdCB0PXRoaXMuX29yaWdJbmRleCp0aGlzLnZhbHVlU2l6ZSxlPXRoaXMuX2FkZEluZGV4KnRoaXMudmFsdWVTaXplO2ZvcihsZXQgbj0wO248dGhpcy52YWx1ZVNpemU7bisrKXRoaXMuYnVmZmVyW2Urbl09dGhpcy5idWZmZXJbdCtuXX1fc2VsZWN0KHQsZSxuLGkscil7aWYoaT49LjUpZm9yKGxldCBpPTA7aSE9PXI7KytpKXRbZStpXT10W24raV19X3NsZXJwKHQsZSxuLGkpe0I1dC5zbGVycEZsYXQodCxlLHQsZSx0LG4saSl9X3NsZXJwQWRkaXRpdmUodCxlLG4saSxyKXtjb25zdCBvPXRoaXMuX3dvcmtJbmRleCpyO0I1dC5tdWx0aXBseVF1YXRlcm5pb25zRmxhdCh0LG8sdCxlLHQsbiksQjV0LnNsZXJwRmxhdCh0LGUsdCxlLHQsbyxpKX1fbGVycCh0LGUsbixpLHIpe2NvbnN0IG89MS1pO2ZvcihsZXQgYT0wO2EhPT1yOysrYSl7Y29uc3Qgcj1lK2E7dFtyXT10W3JdKm8rdFtuK2FdKml9fV9sZXJwQWRkaXRpdmUodCxlLG4saSxyKXtmb3IobGV0IG89MDtvIT09cjsrK28pe2NvbnN0IHI9ZStvO3Rbcl09dFtyXSt0W24rb10qaX19fWNvbnN0IHlpZT0iXFxbXFxdXFwuOlxcLyIsdmllPW5ldyBSZWdFeHAoIltcXFtcXF1cXC46XFwvXSIsImciKSxiaWU9IlteXFxbXFxdXFwuOlxcL10iLHhpZT0iW14iK3lpZS5yZXBsYWNlKCJcXC4iLCIiKSsiXSIsd2llPS8oKD86V0MrW1wvOl0pKikvLnNvdXJjZS5yZXBsYWNlKCJXQyIsYmllKSxTaWU9LyhXQ09EKyk/Ly5zb3VyY2UucmVwbGFjZSgiV0NPRCIseGllKSxNaWU9Lyg/OlwuKFdDKykoPzpcWyguKylcXSk/KT8vLnNvdXJjZS5yZXBsYWNlKCJXQyIsYmllKSxFaWU9L1wuKFdDKykoPzpcWyguKylcXSk/Ly5zb3VyY2UucmVwbGFjZSgiV0MiLGJpZSksVGllPW5ldyBSZWdFeHAoIl4iK3dpZStTaWUrTWllK0VpZSsiJCIpLENpZT1bIm1hdGVyaWFsIiwibWF0ZXJpYWxzIiwiYm9uZXMiXTtjbGFzcyBBaWV7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMucGF0aD1lLHRoaXMucGFyc2VkUGF0aD1ufHxBaWUucGFyc2VUcmFja05hbWUoZSksdGhpcy5ub2RlPUFpZS5maW5kTm9kZSh0LHRoaXMucGFyc2VkUGF0aC5ub2RlTmFtZSl8fHQsdGhpcy5yb290Tm9kZT10LHRoaXMuZ2V0VmFsdWU9dGhpcy5fZ2V0VmFsdWVfdW5ib3VuZCx0aGlzLnNldFZhbHVlPXRoaXMuX3NldFZhbHVlX3VuYm91bmR9c3RhdGljIGNyZWF0ZSh0LGUsbil7cmV0dXJuIHQmJnQuaXNBbmltYXRpb25PYmplY3RHcm91cD9uZXcgQWllLkNvbXBvc2l0ZSh0LGUsbik6bmV3IEFpZSh0LGUsbil9c3RhdGljIHNhbml0aXplTm9kZU5hbWUodCl7cmV0dXJuIHQucmVwbGFjZSgvXHMvZywiXyIpLnJlcGxhY2UodmllLCIiKX1zdGF0aWMgcGFyc2VUcmFja05hbWUodCl7Y29uc3QgZT1UaWUuZXhlYyh0KTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIlByb3BlcnR5QmluZGluZzogQ2Fubm90IHBhcnNlIHRyYWNrTmFtZTogIit0KTtjb25zdCBuPXtub2RlTmFtZTplWzJdLG9iamVjdE5hbWU6ZVszXSxvYmplY3RJbmRleDplWzRdLHByb3BlcnR5TmFtZTplWzVdLHByb3BlcnR5SW5kZXg6ZVs2XX0saT1uLm5vZGVOYW1lJiZuLm5vZGVOYW1lLmxhc3RJbmRleE9mKCIuIik7aWYodm9pZCAwIT09aSYmLTEhPT1pKXtjb25zdCB0PW4ubm9kZU5hbWUuc3Vic3RyaW5nKGkrMSk7LTEhPT1DaWUuaW5kZXhPZih0KSYmKG4ubm9kZU5hbWU9bi5ub2RlTmFtZS5zdWJzdHJpbmcoMCxpKSxuLm9iamVjdE5hbWU9dCl9aWYobnVsbD09PW4ucHJvcGVydHlOYW1lfHwwPT09bi5wcm9wZXJ0eU5hbWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiUHJvcGVydHlCaW5kaW5nOiBjYW4gbm90IHBhcnNlIHByb3BlcnR5TmFtZSBmcm9tIHRyYWNrTmFtZTogIit0KTtyZXR1cm4gbn1zdGF0aWMgZmluZE5vZGUodCxlKXtpZighZXx8IiI9PT1lfHwiLiI9PT1lfHwtMT09PWV8fGU9PT10Lm5hbWV8fGU9PT10LnV1aWQpcmV0dXJuIHQ7aWYodC5za2VsZXRvbil7Y29uc3Qgbj10LnNrZWxldG9uLmdldEJvbmVCeU5hbWUoZSk7aWYodm9pZCAwIT09bilyZXR1cm4gbn1pZih0LmNoaWxkcmVuKXtjb25zdCBuPWZ1bmN0aW9uKHQpe2ZvcihsZXQgaT0wO2k8dC5sZW5ndGg7aSsrKXtjb25zdCByPXRbaV07aWYoci5uYW1lPT09ZXx8ci51dWlkPT09ZSlyZXR1cm4gcjtjb25zdCBvPW4oci5jaGlsZHJlbik7aWYobylyZXR1cm4gb31yZXR1cm4gbnVsbH0saT1uKHQuY2hpbGRyZW4pO2lmKGkpcmV0dXJuIGl9cmV0dXJuIG51bGx9X2dldFZhbHVlX3VuYXZhaWxhYmxlKCl7fV9zZXRWYWx1ZV91bmF2YWlsYWJsZSgpe31fZ2V0VmFsdWVfZGlyZWN0KHQsZSl7dFtlXT10aGlzLm5vZGVbdGhpcy5wcm9wZXJ0eU5hbWVdfV9nZXRWYWx1ZV9hcnJheSh0LGUpe2NvbnN0IG49dGhpcy5yZXNvbHZlZFByb3BlcnR5O2ZvcihsZXQgaT0wLHI9bi5sZW5ndGg7aSE9PXI7KytpKXRbZSsrXT1uW2ldfV9nZXRWYWx1ZV9hcnJheUVsZW1lbnQodCxlKXt0W2VdPXRoaXMucmVzb2x2ZWRQcm9wZXJ0eVt0aGlzLnByb3BlcnR5SW5kZXhdfV9nZXRWYWx1ZV90b0FycmF5KHQsZSl7dGhpcy5yZXNvbHZlZFByb3BlcnR5LnRvQXJyYXkodCxlKX1fc2V0VmFsdWVfZGlyZWN0KHQsZSl7dGhpcy50YXJnZXRPYmplY3RbdGhpcy5wcm9wZXJ0eU5hbWVdPXRbZV19X3NldFZhbHVlX2RpcmVjdF9zZXROZWVkc1VwZGF0ZSh0LGUpe3RoaXMudGFyZ2V0T2JqZWN0W3RoaXMucHJvcGVydHlOYW1lXT10W2VdLHRoaXMudGFyZ2V0T2JqZWN0Lm5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9kaXJlY3Rfc2V0TWF0cml4V29ybGROZWVkc1VwZGF0ZSh0LGUpe3RoaXMudGFyZ2V0T2JqZWN0W3RoaXMucHJvcGVydHlOYW1lXT10W2VdLHRoaXMudGFyZ2V0T2JqZWN0Lm1hdHJpeFdvcmxkTmVlZHNVcGRhdGU9ITB9X3NldFZhbHVlX2FycmF5KHQsZSl7Y29uc3Qgbj10aGlzLnJlc29sdmVkUHJvcGVydHk7Zm9yKGxldCBpPTAscj1uLmxlbmd0aDtpIT09cjsrK2kpbltpXT10W2UrK119X3NldFZhbHVlX2FycmF5X3NldE5lZWRzVXBkYXRlKHQsZSl7Y29uc3Qgbj10aGlzLnJlc29sdmVkUHJvcGVydHk7Zm9yKGxldCBpPTAscj1uLmxlbmd0aDtpIT09cjsrK2kpbltpXT10W2UrK107dGhpcy50YXJnZXRPYmplY3QubmVlZHNVcGRhdGU9ITB9X3NldFZhbHVlX2FycmF5X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGUodCxlKXtjb25zdCBuPXRoaXMucmVzb2x2ZWRQcm9wZXJ0eTtmb3IobGV0IGk9MCxyPW4ubGVuZ3RoO2khPT1yOysraSluW2ldPXRbZSsrXTt0aGlzLnRhcmdldE9iamVjdC5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9hcnJheUVsZW1lbnQodCxlKXt0aGlzLnJlc29sdmVkUHJvcGVydHlbdGhpcy5wcm9wZXJ0eUluZGV4XT10W2VdfV9zZXRWYWx1ZV9hcnJheUVsZW1lbnRfc2V0TmVlZHNVcGRhdGUodCxlKXt0aGlzLnJlc29sdmVkUHJvcGVydHlbdGhpcy5wcm9wZXJ0eUluZGV4XT10W2VdLHRoaXMudGFyZ2V0T2JqZWN0Lm5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9hcnJheUVsZW1lbnRfc2V0TWF0cml4V29ybGROZWVkc1VwZGF0ZSh0LGUpe3RoaXMucmVzb2x2ZWRQcm9wZXJ0eVt0aGlzLnByb3BlcnR5SW5kZXhdPXRbZV0sdGhpcy50YXJnZXRPYmplY3QubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMH1fc2V0VmFsdWVfZnJvbUFycmF5KHQsZSl7dGhpcy5yZXNvbHZlZFByb3BlcnR5LmZyb21BcnJheSh0LGUpfV9zZXRWYWx1ZV9mcm9tQXJyYXlfc2V0TmVlZHNVcGRhdGUodCxlKXt0aGlzLnJlc29sdmVkUHJvcGVydHkuZnJvbUFycmF5KHQsZSksdGhpcy50YXJnZXRPYmplY3QubmVlZHNVcGRhdGU9ITB9X3NldFZhbHVlX2Zyb21BcnJheV9zZXRNYXRyaXhXb3JsZE5lZWRzVXBkYXRlKHQsZSl7dGhpcy5yZXNvbHZlZFByb3BlcnR5LmZyb21BcnJheSh0LGUpLHRoaXMudGFyZ2V0T2JqZWN0Lm1hdHJpeFdvcmxkTmVlZHNVcGRhdGU9ITB9X2dldFZhbHVlX3VuYm91bmQodCxlKXt0aGlzLmJpbmQoKSx0aGlzLmdldFZhbHVlKHQsZSl9X3NldFZhbHVlX3VuYm91bmQodCxlKXt0aGlzLmJpbmQoKSx0aGlzLnNldFZhbHVlKHQsZSl9YmluZCgpe2xldCB0PXRoaXMubm9kZTtjb25zdCBlPXRoaXMucGFyc2VkUGF0aCxuPWUub2JqZWN0TmFtZSxpPWUucHJvcGVydHlOYW1lO2xldCByPWUucHJvcGVydHlJbmRleDtpZih0fHwodD1BaWUuZmluZE5vZGUodGhpcy5yb290Tm9kZSxlLm5vZGVOYW1lKXx8dGhpcy5yb290Tm9kZSx0aGlzLm5vZGU9dCksdGhpcy5nZXRWYWx1ZT10aGlzLl9nZXRWYWx1ZV91bmF2YWlsYWJsZSx0aGlzLnNldFZhbHVlPXRoaXMuX3NldFZhbHVlX3VuYXZhaWxhYmxlLCF0KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogVHJ5aW5nIHRvIHVwZGF0ZSBub2RlIGZvciB0cmFjazogIit0aGlzLnBhdGgrIiBidXQgaXQgd2Fzbid0IGZvdW5kLiIpO2lmKG4pe2xldCBpPWUub2JqZWN0SW5kZXg7c3dpdGNoKG4pe2Nhc2UibWF0ZXJpYWxzIjppZighdC5tYXRlcmlhbClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBtYXRlcmlhbCBhcyBub2RlIGRvZXMgbm90IGhhdmUgYSBtYXRlcmlhbC4iLHRoaXMpO2lmKCF0Lm1hdGVyaWFsLm1hdGVyaWFscylyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBtYXRlcmlhbC5tYXRlcmlhbHMgYXMgbm9kZS5tYXRlcmlhbCBkb2VzIG5vdCBoYXZlIGEgbWF0ZXJpYWxzIGFycmF5LiIsdGhpcyk7dD10Lm1hdGVyaWFsLm1hdGVyaWFsczticmVhaztjYXNlImJvbmVzIjppZighdC5za2VsZXRvbilyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBib25lcyBhcyBub2RlIGRvZXMgbm90IGhhdmUgYSBza2VsZXRvbi4iLHRoaXMpO3Q9dC5za2VsZXRvbi5ib25lcztmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKylpZih0W2VdLm5hbWU9PT1pKXtpPWU7YnJlYWt9YnJlYWs7ZGVmYXVsdDppZih2b2lkIDA9PT10W25dKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogQ2FuIG5vdCBiaW5kIHRvIG9iamVjdE5hbWUgb2Ygbm9kZSB1bmRlZmluZWQuIix0aGlzKTt0PXRbbl19aWYodm9pZCAwIT09aSl7aWYodm9pZCAwPT09dFtpXSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IFRyeWluZyB0byBiaW5kIHRvIG9iamVjdEluZGV4IG9mIG9iamVjdE5hbWUsIGJ1dCBpcyB1bmRlZmluZWQuIix0aGlzLHQpO3Q9dFtpXX19Y29uc3Qgbz10W2ldO2lmKHZvaWQgMD09PW8pe3JldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogVHJ5aW5nIHRvIHVwZGF0ZSBwcm9wZXJ0eSBmb3IgdHJhY2s6ICIrZS5ub2RlTmFtZSsiLiIraSsiIGJ1dCBpdCB3YXNuJ3QgZm91bmQuIix0KX1sZXQgYT10aGlzLlZlcnNpb25pbmcuTm9uZTt0aGlzLnRhcmdldE9iamVjdD10LHZvaWQgMCE9PXQubmVlZHNVcGRhdGU/YT10aGlzLlZlcnNpb25pbmcuTmVlZHNVcGRhdGU6dm9pZCAwIT09dC5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlJiYoYT10aGlzLlZlcnNpb25pbmcuTWF0cml4V29ybGROZWVkc1VwZGF0ZSk7bGV0IHM9dGhpcy5CaW5kaW5nVHlwZS5EaXJlY3Q7aWYodm9pZCAwIT09cil7aWYoIm1vcnBoVGFyZ2V0SW5mbHVlbmNlcyI9PT1pKXtpZighdC5nZW9tZXRyeSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBtb3JwaFRhcmdldEluZmx1ZW5jZXMgYmVjYXVzZSBub2RlIGRvZXMgbm90IGhhdmUgYSBnZW9tZXRyeS4iLHRoaXMpO2lmKCF0Lmdlb21ldHJ5LmlzQnVmZmVyR2VvbWV0cnkpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gbW9ycGhUYXJnZXRJbmZsdWVuY2VzIG9uIFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iLHRoaXMpO2lmKCF0Lmdlb21ldHJ5Lm1vcnBoQXR0cmlidXRlcylyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBtb3JwaFRhcmdldEluZmx1ZW5jZXMgYmVjYXVzZSBub2RlIGRvZXMgbm90IGhhdmUgYSBnZW9tZXRyeS5tb3JwaEF0dHJpYnV0ZXMuIix0aGlzKTt2b2lkIDAhPT10Lm1vcnBoVGFyZ2V0RGljdGlvbmFyeVtyXSYmKHI9dC5tb3JwaFRhcmdldERpY3Rpb25hcnlbcl0pfXM9dGhpcy5CaW5kaW5nVHlwZS5BcnJheUVsZW1lbnQsdGhpcy5yZXNvbHZlZFByb3BlcnR5PW8sdGhpcy5wcm9wZXJ0eUluZGV4PXJ9ZWxzZSB2b2lkIDAhPT1vLmZyb21BcnJheSYmdm9pZCAwIT09by50b0FycmF5PyhzPXRoaXMuQmluZGluZ1R5cGUuSGFzRnJvbVRvQXJyYXksdGhpcy5yZXNvbHZlZFByb3BlcnR5PW8pOkFycmF5LmlzQXJyYXkobyk/KHM9dGhpcy5CaW5kaW5nVHlwZS5FbnRpcmVBcnJheSx0aGlzLnJlc29sdmVkUHJvcGVydHk9byk6dGhpcy5wcm9wZXJ0eU5hbWU9aTt0aGlzLmdldFZhbHVlPXRoaXMuR2V0dGVyQnlCaW5kaW5nVHlwZVtzXSx0aGlzLnNldFZhbHVlPXRoaXMuU2V0dGVyQnlCaW5kaW5nVHlwZUFuZFZlcnNpb25pbmdbc11bYV19dW5iaW5kKCl7dGhpcy5ub2RlPW51bGwsdGhpcy5nZXRWYWx1ZT10aGlzLl9nZXRWYWx1ZV91bmJvdW5kLHRoaXMuc2V0VmFsdWU9dGhpcy5fc2V0VmFsdWVfdW5ib3VuZH19QWllLkNvbXBvc2l0ZT1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUsbil7Y29uc3QgaT1ufHxBaWUucGFyc2VUcmFja05hbWUoZSk7dGhpcy5fdGFyZ2V0R3JvdXA9dCx0aGlzLl9iaW5kaW5ncz10LnN1YnNjcmliZV8oZSxpKX1nZXRWYWx1ZSh0LGUpe3RoaXMuYmluZCgpO2NvbnN0IG49dGhpcy5fYmluZGluZ3NbdGhpcy5fdGFyZ2V0R3JvdXAubkNhY2hlZE9iamVjdHNfXTt2b2lkIDAhPT1uJiZuLmdldFZhbHVlKHQsZSl9c2V0VmFsdWUodCxlKXtjb25zdCBuPXRoaXMuX2JpbmRpbmdzO2ZvcihsZXQgaT10aGlzLl90YXJnZXRHcm91cC5uQ2FjaGVkT2JqZWN0c18scj1uLmxlbmd0aDtpIT09cjsrK2kpbltpXS5zZXRWYWx1ZSh0LGUpfWJpbmQoKXtjb25zdCB0PXRoaXMuX2JpbmRpbmdzO2ZvcihsZXQgZT10aGlzLl90YXJnZXRHcm91cC5uQ2FjaGVkT2JqZWN0c18sbj10Lmxlbmd0aDtlIT09bjsrK2UpdFtlXS5iaW5kKCl9dW5iaW5kKCl7Y29uc3QgdD10aGlzLl9iaW5kaW5ncztmb3IobGV0IGU9dGhpcy5fdGFyZ2V0R3JvdXAubkNhY2hlZE9iamVjdHNfLG49dC5sZW5ndGg7ZSE9PW47KytlKXRbZV0udW5iaW5kKCl9fSxBaWUucHJvdG90eXBlLkJpbmRpbmdUeXBlPXtEaXJlY3Q6MCxFbnRpcmVBcnJheToxLEFycmF5RWxlbWVudDoyLEhhc0Zyb21Ub0FycmF5OjN9LEFpZS5wcm90b3R5cGUuVmVyc2lvbmluZz17Tm9uZTowLE5lZWRzVXBkYXRlOjEsTWF0cml4V29ybGROZWVkc1VwZGF0ZToyfSxBaWUucHJvdG90eXBlLkdldHRlckJ5QmluZGluZ1R5cGU9W0FpZS5wcm90b3R5cGUuX2dldFZhbHVlX2RpcmVjdCxBaWUucHJvdG90eXBlLl9nZXRWYWx1ZV9hcnJheSxBaWUucHJvdG90eXBlLl9nZXRWYWx1ZV9hcnJheUVsZW1lbnQsQWllLnByb3RvdHlwZS5fZ2V0VmFsdWVfdG9BcnJheV0sQWllLnByb3RvdHlwZS5TZXR0ZXJCeUJpbmRpbmdUeXBlQW5kVmVyc2lvbmluZz1bW0FpZS5wcm90b3R5cGUuX3NldFZhbHVlX2RpcmVjdCxBaWUucHJvdG90eXBlLl9zZXRWYWx1ZV9kaXJlY3Rfc2V0TmVlZHNVcGRhdGUsQWllLnByb3RvdHlwZS5fc2V0VmFsdWVfZGlyZWN0X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGVdLFtBaWUucHJvdG90eXBlLl9zZXRWYWx1ZV9hcnJheSxBaWUucHJvdG90eXBlLl9zZXRWYWx1ZV9hcnJheV9zZXROZWVkc1VwZGF0ZSxBaWUucHJvdG90eXBlLl9zZXRWYWx1ZV9hcnJheV9zZXRNYXRyaXhXb3JsZE5lZWRzVXBkYXRlXSxbQWllLnByb3RvdHlwZS5fc2V0VmFsdWVfYXJyYXlFbGVtZW50LEFpZS5wcm90b3R5cGUuX3NldFZhbHVlX2FycmF5RWxlbWVudF9zZXROZWVkc1VwZGF0ZSxBaWUucHJvdG90eXBlLl9zZXRWYWx1ZV9hcnJheUVsZW1lbnRfc2V0TWF0cml4V29ybGROZWVkc1VwZGF0ZV0sW0FpZS5wcm90b3R5cGUuX3NldFZhbHVlX2Zyb21BcnJheSxBaWUucHJvdG90eXBlLl9zZXRWYWx1ZV9mcm9tQXJyYXlfc2V0TmVlZHNVcGRhdGUsQWllLnByb3RvdHlwZS5fc2V0VmFsdWVfZnJvbUFycmF5X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGVdXTtjbGFzcyBraWV7Y29uc3RydWN0b3IoKXt0aGlzLnV1aWQ9YTV0KCksdGhpcy5fb2JqZWN0cz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpLHRoaXMubkNhY2hlZE9iamVjdHNfPTA7Y29uc3QgdD17fTt0aGlzLl9pbmRpY2VzQnlVVUlEPXQ7Zm9yKGxldCBlPTAsbj1hcmd1bWVudHMubGVuZ3RoO2UhPT1uOysrZSl0W2FyZ3VtZW50c1tlXS51dWlkXT1lO3RoaXMuX3BhdGhzPVtdLHRoaXMuX3BhcnNlZFBhdGhzPVtdLHRoaXMuX2JpbmRpbmdzPVtdLHRoaXMuX2JpbmRpbmdzSW5kaWNlc0J5UGF0aD17fTtjb25zdCBlPXRoaXM7dGhpcy5zdGF0cz17b2JqZWN0czp7Z2V0IHRvdGFsKCl7cmV0dXJuIGUuX29iamVjdHMubGVuZ3RofSxnZXQgaW5Vc2UoKXtyZXR1cm4gdGhpcy50b3RhbC1lLm5DYWNoZWRPYmplY3RzX319LGdldCBiaW5kaW5nc1Blck9iamVjdCgpe3JldHVybiBlLl9iaW5kaW5ncy5sZW5ndGh9fX1hZGQoKXtjb25zdCB0PXRoaXMuX29iamVjdHMsZT10aGlzLl9pbmRpY2VzQnlVVUlELG49dGhpcy5fcGF0aHMsaT10aGlzLl9wYXJzZWRQYXRocyxyPXRoaXMuX2JpbmRpbmdzLG89ci5sZW5ndGg7bGV0IGEscz10Lmxlbmd0aCxsPXRoaXMubkNhY2hlZE9iamVjdHNfO2ZvcihsZXQgYz0wLHU9YXJndW1lbnRzLmxlbmd0aDtjIT09dTsrK2Mpe2NvbnN0IHU9YXJndW1lbnRzW2NdLGg9dS51dWlkO2xldCBkPWVbaF07aWYodm9pZCAwPT09ZCl7ZD1zKyssZVtoXT1kLHQucHVzaCh1KTtmb3IobGV0IHQ9MCxlPW87dCE9PWU7Kyt0KXJbdF0ucHVzaChuZXcgQWllKHUsblt0XSxpW3RdKSl9ZWxzZSBpZihkPGwpe2E9dFtkXTtjb25zdCBzPS0tbCxjPXRbc107ZVtjLnV1aWRdPWQsdFtkXT1jLGVbaF09cyx0W3NdPXU7Zm9yKGxldCB0PTAsZT1vO3QhPT1lOysrdCl7Y29uc3QgZT1yW3RdO2xldCBvPWVbZF07ZVtkXT1lW3NdLHZvaWQgMD09PW8mJihvPW5ldyBBaWUodSxuW3RdLGlbdF0pKSxlW3NdPW99fWVsc2UgdFtkXSE9PWEmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLkFuaW1hdGlvbk9iamVjdEdyb3VwOiBEaWZmZXJlbnQgb2JqZWN0cyB3aXRoIHRoZSBzYW1lIFVVSUQgZGV0ZWN0ZWQuIENsZWFuIHRoZSBjYWNoZXMgb3IgcmVjcmVhdGUgeW91ciBpbmZyYXN0cnVjdHVyZSB3aGVuIHJlbG9hZGluZyBzY2VuZXMuIil9dGhpcy5uQ2FjaGVkT2JqZWN0c189bH1yZW1vdmUoKXtjb25zdCB0PXRoaXMuX29iamVjdHMsZT10aGlzLl9pbmRpY2VzQnlVVUlELG49dGhpcy5fYmluZGluZ3MsaT1uLmxlbmd0aDtsZXQgcj10aGlzLm5DYWNoZWRPYmplY3RzXztmb3IobGV0IG89MCxhPWFyZ3VtZW50cy5sZW5ndGg7byE9PWE7KytvKXtjb25zdCBhPWFyZ3VtZW50c1tvXSxzPWEudXVpZCxsPWVbc107aWYodm9pZCAwIT09bCYmbD49cil7Y29uc3Qgbz1yKyssYz10W29dO2VbYy51dWlkXT1sLHRbbF09YyxlW3NdPW8sdFtvXT1hO2ZvcihsZXQgdD0wLGU9aTt0IT09ZTsrK3Qpe2NvbnN0IGU9blt0XSxpPWVbbF07ZVtsXT1lW29dLGVbb109aX19fXRoaXMubkNhY2hlZE9iamVjdHNfPXJ9dW5jYWNoZSgpe2NvbnN0IHQ9dGhpcy5fb2JqZWN0cyxlPXRoaXMuX2luZGljZXNCeVVVSUQsbj10aGlzLl9iaW5kaW5ncyxpPW4ubGVuZ3RoO2xldCByPXRoaXMubkNhY2hlZE9iamVjdHNfLG89dC5sZW5ndGg7Zm9yKGxldCBhPTAscz1hcmd1bWVudHMubGVuZ3RoO2EhPT1zOysrYSl7Y29uc3Qgcz1hcmd1bWVudHNbYV0udXVpZCxsPWVbc107aWYodm9pZCAwIT09bClpZihkZWxldGUgZVtzXSxsPHIpe2NvbnN0IGE9LS1yLHM9dFthXSxjPS0tbyx1PXRbY107ZVtzLnV1aWRdPWwsdFtsXT1zLGVbdS51dWlkXT1hLHRbYV09dSx0LnBvcCgpO2ZvcihsZXQgdD0wLGU9aTt0IT09ZTsrK3Qpe2NvbnN0IGU9blt0XSxpPWVbY107ZVtsXT1lW2FdLGVbYV09aSxlLnBvcCgpfX1lbHNle2NvbnN0IHI9LS1vLGE9dFtyXTtyPjAmJihlW2EudXVpZF09bCksdFtsXT1hLHQucG9wKCk7Zm9yKGxldCB0PTAsZT1pO3QhPT1lOysrdCl7Y29uc3QgZT1uW3RdO2VbbF09ZVtyXSxlLnBvcCgpfX19dGhpcy5uQ2FjaGVkT2JqZWN0c189cn1zdWJzY3JpYmVfKHQsZSl7Y29uc3Qgbj10aGlzLl9iaW5kaW5nc0luZGljZXNCeVBhdGg7bGV0IGk9blt0XTtjb25zdCByPXRoaXMuX2JpbmRpbmdzO2lmKHZvaWQgMCE9PWkpcmV0dXJuIHJbaV07Y29uc3Qgbz10aGlzLl9wYXRocyxhPXRoaXMuX3BhcnNlZFBhdGhzLHM9dGhpcy5fb2JqZWN0cyxsPXRoaXMubkNhY2hlZE9iamVjdHNfLGM9bmV3IEFycmF5KHMubGVuZ3RoKTtpPXIubGVuZ3RoLG5bdF09aSxvLnB1c2godCksYS5wdXNoKGUpLHIucHVzaChjKTtmb3IobGV0IG49bCxpPXMubGVuZ3RoO24hPT1pOysrbil7Y1tuXT1uZXcgQWllKHNbbl0sdCxlKX1yZXR1cm4gY311bnN1YnNjcmliZV8odCl7Y29uc3QgZT10aGlzLl9iaW5kaW5nc0luZGljZXNCeVBhdGgsbj1lW3RdO2lmKHZvaWQgMCE9PW4pe2NvbnN0IGk9dGhpcy5fcGF0aHMscj10aGlzLl9wYXJzZWRQYXRocyxvPXRoaXMuX2JpbmRpbmdzLGE9by5sZW5ndGgtMSxzPW9bYV07ZVt0W2FdXT1uLG9bbl09cyxvLnBvcCgpLHJbbl09clthXSxyLnBvcCgpLGlbbl09aVthXSxpLnBvcCgpfX19a2llLnByb3RvdHlwZS5pc0FuaW1hdGlvbk9iamVjdEdyb3VwPSEwO2NsYXNzIExpZXtjb25zdHJ1Y3Rvcih0LGUsbj1udWxsLGk9ZS5ibGVuZE1vZGUpe3RoaXMuX21peGVyPXQsdGhpcy5fY2xpcD1lLHRoaXMuX2xvY2FsUm9vdD1uLHRoaXMuYmxlbmRNb2RlPWk7Y29uc3Qgcj1lLnRyYWNrcyxvPXIubGVuZ3RoLGE9bmV3IEFycmF5KG8pLHM9e2VuZGluZ1N0YXJ0OkgydCxlbmRpbmdFbmQ6SDJ0fTtmb3IobGV0IHQ9MDt0IT09bzsrK3Qpe2NvbnN0IGU9clt0XS5jcmVhdGVJbnRlcnBvbGFudChudWxsKTthW3RdPWUsZS5zZXR0aW5ncz1zfXRoaXMuX2ludGVycG9sYW50U2V0dGluZ3M9cyx0aGlzLl9pbnRlcnBvbGFudHM9YSx0aGlzLl9wcm9wZXJ0eUJpbmRpbmdzPW5ldyBBcnJheShvKSx0aGlzLl9jYWNoZUluZGV4PW51bGwsdGhpcy5fYnlDbGlwQ2FjaGVJbmRleD1udWxsLHRoaXMuX3RpbWVTY2FsZUludGVycG9sYW50PW51bGwsdGhpcy5fd2VpZ2h0SW50ZXJwb2xhbnQ9bnVsbCx0aGlzLmxvb3A9MjIwMSx0aGlzLl9sb29wQ291bnQ9LTEsdGhpcy5fc3RhcnRUaW1lPW51bGwsdGhpcy50aW1lPTAsdGhpcy50aW1lU2NhbGU9MSx0aGlzLl9lZmZlY3RpdmVUaW1lU2NhbGU9MSx0aGlzLndlaWdodD0xLHRoaXMuX2VmZmVjdGl2ZVdlaWdodD0xLHRoaXMucmVwZXRpdGlvbnM9MS8wLHRoaXMucGF1c2VkPSExLHRoaXMuZW5hYmxlZD0hMCx0aGlzLmNsYW1wV2hlbkZpbmlzaGVkPSExLHRoaXMuemVyb1Nsb3BlQXRTdGFydD0hMCx0aGlzLnplcm9TbG9wZUF0RW5kPSEwfXBsYXkoKXtyZXR1cm4gdGhpcy5fbWl4ZXIuX2FjdGl2YXRlQWN0aW9uKHRoaXMpLHRoaXN9c3RvcCgpe3JldHVybiB0aGlzLl9taXhlci5fZGVhY3RpdmF0ZUFjdGlvbih0aGlzKSx0aGlzLnJlc2V0KCl9cmVzZXQoKXtyZXR1cm4gdGhpcy5wYXVzZWQ9ITEsdGhpcy5lbmFibGVkPSEwLHRoaXMudGltZT0wLHRoaXMuX2xvb3BDb3VudD0tMSx0aGlzLl9zdGFydFRpbWU9bnVsbCx0aGlzLnN0b3BGYWRpbmcoKS5zdG9wV2FycGluZygpfWlzUnVubmluZygpe3JldHVybiB0aGlzLmVuYWJsZWQmJiF0aGlzLnBhdXNlZCYmMCE9PXRoaXMudGltZVNjYWxlJiZudWxsPT09dGhpcy5fc3RhcnRUaW1lJiZ0aGlzLl9taXhlci5faXNBY3RpdmVBY3Rpb24odGhpcyl9aXNTY2hlZHVsZWQoKXtyZXR1cm4gdGhpcy5fbWl4ZXIuX2lzQWN0aXZlQWN0aW9uKHRoaXMpfXN0YXJ0QXQodCl7cmV0dXJuIHRoaXMuX3N0YXJ0VGltZT10LHRoaXN9c2V0TG9vcCh0LGUpe3JldHVybiB0aGlzLmxvb3A9dCx0aGlzLnJlcGV0aXRpb25zPWUsdGhpc31zZXRFZmZlY3RpdmVXZWlnaHQodCl7cmV0dXJuIHRoaXMud2VpZ2h0PXQsdGhpcy5fZWZmZWN0aXZlV2VpZ2h0PXRoaXMuZW5hYmxlZD90OjAsdGhpcy5zdG9wRmFkaW5nKCl9Z2V0RWZmZWN0aXZlV2VpZ2h0KCl7cmV0dXJuIHRoaXMuX2VmZmVjdGl2ZVdlaWdodH1mYWRlSW4odCl7cmV0dXJuIHRoaXMuX3NjaGVkdWxlRmFkaW5nKHQsMCwxKX1mYWRlT3V0KHQpe3JldHVybiB0aGlzLl9zY2hlZHVsZUZhZGluZyh0LDEsMCl9Y3Jvc3NGYWRlRnJvbSh0LGUsbil7aWYodC5mYWRlT3V0KGUpLHRoaXMuZmFkZUluKGUpLG4pe2NvbnN0IG49dGhpcy5fY2xpcC5kdXJhdGlvbixpPXQuX2NsaXAuZHVyYXRpb24scj1uL2k7dC53YXJwKDEsaS9uLGUpLHRoaXMud2FycChyLDEsZSl9cmV0dXJuIHRoaXN9Y3Jvc3NGYWRlVG8odCxlLG4pe3JldHVybiB0LmNyb3NzRmFkZUZyb20odGhpcyxlLG4pfXN0b3BGYWRpbmcoKXtjb25zdCB0PXRoaXMuX3dlaWdodEludGVycG9sYW50O3JldHVybiBudWxsIT09dCYmKHRoaXMuX3dlaWdodEludGVycG9sYW50PW51bGwsdGhpcy5fbWl4ZXIuX3Rha2VCYWNrQ29udHJvbEludGVycG9sYW50KHQpKSx0aGlzfXNldEVmZmVjdGl2ZVRpbWVTY2FsZSh0KXtyZXR1cm4gdGhpcy50aW1lU2NhbGU9dCx0aGlzLl9lZmZlY3RpdmVUaW1lU2NhbGU9dGhpcy5wYXVzZWQ/MDp0LHRoaXMuc3RvcFdhcnBpbmcoKX1nZXRFZmZlY3RpdmVUaW1lU2NhbGUoKXtyZXR1cm4gdGhpcy5fZWZmZWN0aXZlVGltZVNjYWxlfXNldER1cmF0aW9uKHQpe3JldHVybiB0aGlzLnRpbWVTY2FsZT10aGlzLl9jbGlwLmR1cmF0aW9uL3QsdGhpcy5zdG9wV2FycGluZygpfXN5bmNXaXRoKHQpe3JldHVybiB0aGlzLnRpbWU9dC50aW1lLHRoaXMudGltZVNjYWxlPXQudGltZVNjYWxlLHRoaXMuc3RvcFdhcnBpbmcoKX1oYWx0KHQpe3JldHVybiB0aGlzLndhcnAodGhpcy5fZWZmZWN0aXZlVGltZVNjYWxlLDAsdCl9d2FycCh0LGUsbil7Y29uc3QgaT10aGlzLl9taXhlcixyPWkudGltZSxvPXRoaXMudGltZVNjYWxlO2xldCBhPXRoaXMuX3RpbWVTY2FsZUludGVycG9sYW50O251bGw9PT1hJiYoYT1pLl9sZW5kQ29udHJvbEludGVycG9sYW50KCksdGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ9YSk7Y29uc3Qgcz1hLnBhcmFtZXRlclBvc2l0aW9ucyxsPWEuc2FtcGxlVmFsdWVzO3JldHVybiBzWzBdPXIsc1sxXT1yK24sbFswXT10L28sbFsxXT1lL28sdGhpc31zdG9wV2FycGluZygpe2NvbnN0IHQ9dGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ7cmV0dXJuIG51bGwhPT10JiYodGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ9bnVsbCx0aGlzLl9taXhlci5fdGFrZUJhY2tDb250cm9sSW50ZXJwb2xhbnQodCkpLHRoaXN9Z2V0TWl4ZXIoKXtyZXR1cm4gdGhpcy5fbWl4ZXJ9Z2V0Q2xpcCgpe3JldHVybiB0aGlzLl9jbGlwfWdldFJvb3QoKXtyZXR1cm4gdGhpcy5fbG9jYWxSb290fHx0aGlzLl9taXhlci5fcm9vdH1fdXBkYXRlKHQsZSxuLGkpe2lmKCF0aGlzLmVuYWJsZWQpcmV0dXJuIHZvaWQgdGhpcy5fdXBkYXRlV2VpZ2h0KHQpO2NvbnN0IHI9dGhpcy5fc3RhcnRUaW1lO2lmKG51bGwhPT1yKXtjb25zdCBpPSh0LXIpKm47aWYoaTwwfHwwPT09bilyZXR1cm47dGhpcy5fc3RhcnRUaW1lPW51bGwsZT1uKml9ZSo9dGhpcy5fdXBkYXRlVGltZVNjYWxlKHQpO2NvbnN0IG89dGhpcy5fdXBkYXRlVGltZShlKSxhPXRoaXMuX3VwZGF0ZVdlaWdodCh0KTtpZihhPjApe2NvbnN0IHQ9dGhpcy5faW50ZXJwb2xhbnRzLGU9dGhpcy5fcHJvcGVydHlCaW5kaW5ncztzd2l0Y2godGhpcy5ibGVuZE1vZGUpe2Nhc2UgajJ0OmZvcihsZXQgbj0wLGk9dC5sZW5ndGg7biE9PWk7KytuKXRbbl0uZXZhbHVhdGUobyksZVtuXS5hY2N1bXVsYXRlQWRkaXRpdmUoYSk7YnJlYWs7Y2FzZSBVMnQ6ZGVmYXVsdDpmb3IobGV0IG49MCxyPXQubGVuZ3RoO24hPT1yOysrbil0W25dLmV2YWx1YXRlKG8pLGVbbl0uYWNjdW11bGF0ZShpLGEpfX19X3VwZGF0ZVdlaWdodCh0KXtsZXQgZT0wO2lmKHRoaXMuZW5hYmxlZCl7ZT10aGlzLndlaWdodDtjb25zdCBuPXRoaXMuX3dlaWdodEludGVycG9sYW50O2lmKG51bGwhPT1uKXtjb25zdCBpPW4uZXZhbHVhdGUodClbMF07ZSo9aSx0Pm4ucGFyYW1ldGVyUG9zaXRpb25zWzFdJiYodGhpcy5zdG9wRmFkaW5nKCksMD09PWkmJih0aGlzLmVuYWJsZWQ9ITEpKX19cmV0dXJuIHRoaXMuX2VmZmVjdGl2ZVdlaWdodD1lLGV9X3VwZGF0ZVRpbWVTY2FsZSh0KXtsZXQgZT0wO2lmKCF0aGlzLnBhdXNlZCl7ZT10aGlzLnRpbWVTY2FsZTtjb25zdCBuPXRoaXMuX3RpbWVTY2FsZUludGVycG9sYW50O2lmKG51bGwhPT1uKXtlKj1uLmV2YWx1YXRlKHQpWzBdLHQ+bi5wYXJhbWV0ZXJQb3NpdGlvbnNbMV0mJih0aGlzLnN0b3BXYXJwaW5nKCksMD09PWU/dGhpcy5wYXVzZWQ9ITA6dGhpcy50aW1lU2NhbGU9ZSl9fXJldHVybiB0aGlzLl9lZmZlY3RpdmVUaW1lU2NhbGU9ZSxlfV91cGRhdGVUaW1lKHQpe2NvbnN0IGU9dGhpcy5fY2xpcC5kdXJhdGlvbixuPXRoaXMubG9vcDtsZXQgaT10aGlzLnRpbWUrdCxyPXRoaXMuX2xvb3BDb3VudDtjb25zdCBvPTIyMDI9PT1uO2lmKDA9PT10KXJldHVybi0xPT09cj9pOm8mJjE9PSgxJnIpP2UtaTppO2lmKDIyMDA9PT1uKXstMT09PXImJih0aGlzLl9sb29wQ291bnQ9MCx0aGlzLl9zZXRFbmRpbmdzKCEwLCEwLCExKSk7dDp7aWYoaT49ZSlpPWU7ZWxzZXtpZighKGk8MCkpe3RoaXMudGltZT1pO2JyZWFrIHR9aT0wfXRoaXMuY2xhbXBXaGVuRmluaXNoZWQ/dGhpcy5wYXVzZWQ9ITA6dGhpcy5lbmFibGVkPSExLHRoaXMudGltZT1pLHRoaXMuX21peGVyLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImZpbmlzaGVkIixhY3Rpb246dGhpcyxkaXJlY3Rpb246dDwwPy0xOjF9KX19ZWxzZXtpZigtMT09PXImJih0Pj0wPyhyPTAsdGhpcy5fc2V0RW5kaW5ncyghMCwwPT09dGhpcy5yZXBldGl0aW9ucyxvKSk6dGhpcy5fc2V0RW5kaW5ncygwPT09dGhpcy5yZXBldGl0aW9ucywhMCxvKSksaT49ZXx8aTwwKXtjb25zdCBuPU1hdGguZmxvb3IoaS9lKTtpLT1lKm4scis9TWF0aC5hYnMobik7Y29uc3QgYT10aGlzLnJlcGV0aXRpb25zLXI7aWYoYTw9MCl0aGlzLmNsYW1wV2hlbkZpbmlzaGVkP3RoaXMucGF1c2VkPSEwOnRoaXMuZW5hYmxlZD0hMSxpPXQ+MD9lOjAsdGhpcy50aW1lPWksdGhpcy5fbWl4ZXIuZGlzcGF0Y2hFdmVudCh7dHlwZToiZmluaXNoZWQiLGFjdGlvbjp0aGlzLGRpcmVjdGlvbjp0PjA/MTotMX0pO2Vsc2V7aWYoMT09PWEpe2NvbnN0IGU9dDwwO3RoaXMuX3NldEVuZGluZ3MoZSwhZSxvKX1lbHNlIHRoaXMuX3NldEVuZGluZ3MoITEsITEsbyk7dGhpcy5fbG9vcENvdW50PXIsdGhpcy50aW1lPWksdGhpcy5fbWl4ZXIuZGlzcGF0Y2hFdmVudCh7dHlwZToibG9vcCIsYWN0aW9uOnRoaXMsbG9vcERlbHRhOm59KX19ZWxzZSB0aGlzLnRpbWU9aTtpZihvJiYxPT0oMSZyKSlyZXR1cm4gZS1pfXJldHVybiBpfV9zZXRFbmRpbmdzKHQsZSxuKXtjb25zdCBpPXRoaXMuX2ludGVycG9sYW50U2V0dGluZ3M7bj8oaS5lbmRpbmdTdGFydD1GMnQsaS5lbmRpbmdFbmQ9RjJ0KTooaS5lbmRpbmdTdGFydD10P3RoaXMuemVyb1Nsb3BlQXRTdGFydD9GMnQ6SDJ0OlYydCxpLmVuZGluZ0VuZD1lP3RoaXMuemVyb1Nsb3BlQXRFbmQ/RjJ0OkgydDpWMnQpfV9zY2hlZHVsZUZhZGluZyh0LGUsbil7Y29uc3QgaT10aGlzLl9taXhlcixyPWkudGltZTtsZXQgbz10aGlzLl93ZWlnaHRJbnRlcnBvbGFudDtudWxsPT09byYmKG89aS5fbGVuZENvbnRyb2xJbnRlcnBvbGFudCgpLHRoaXMuX3dlaWdodEludGVycG9sYW50PW8pO2NvbnN0IGE9by5wYXJhbWV0ZXJQb3NpdGlvbnMscz1vLnNhbXBsZVZhbHVlcztyZXR1cm4gYVswXT1yLHNbMF09ZSxhWzFdPXIrdCxzWzFdPW4sdGhpc319Y2xhc3MgUGllIGV4dGVuZHMgZTV0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5fcm9vdD10LHRoaXMuX2luaXRNZW1vcnlNYW5hZ2VyKCksdGhpcy5fYWNjdUluZGV4PTAsdGhpcy50aW1lPTAsdGhpcy50aW1lU2NhbGU9MX1fYmluZEFjdGlvbih0LGUpe2NvbnN0IG49dC5fbG9jYWxSb290fHx0aGlzLl9yb290LGk9dC5fY2xpcC50cmFja3Mscj1pLmxlbmd0aCxvPXQuX3Byb3BlcnR5QmluZGluZ3MsYT10Ll9pbnRlcnBvbGFudHMscz1uLnV1aWQsbD10aGlzLl9iaW5kaW5nc0J5Um9vdEFuZE5hbWU7bGV0IGM9bFtzXTt2b2lkIDA9PT1jJiYoYz17fSxsW3NdPWMpO2ZvcihsZXQgdD0wO3QhPT1yOysrdCl7Y29uc3Qgcj1pW3RdLGw9ci5uYW1lO2xldCB1PWNbbF07aWYodm9pZCAwIT09dSlvW3RdPXU7ZWxzZXtpZih1PW9bdF0sdm9pZCAwIT09dSl7bnVsbD09PXUuX2NhY2hlSW5kZXgmJigrK3UucmVmZXJlbmNlQ291bnQsdGhpcy5fYWRkSW5hY3RpdmVCaW5kaW5nKHUscyxsKSk7Y29udGludWV9dT1uZXcgX2llKEFpZS5jcmVhdGUobixsLGUmJmUuX3Byb3BlcnR5QmluZGluZ3NbdF0uYmluZGluZy5wYXJzZWRQYXRoKSxyLlZhbHVlVHlwZU5hbWUsci5nZXRWYWx1ZVNpemUoKSksKyt1LnJlZmVyZW5jZUNvdW50LHRoaXMuX2FkZEluYWN0aXZlQmluZGluZyh1LHMsbCksb1t0XT11fWFbdF0ucmVzdWx0QnVmZmVyPXUuYnVmZmVyfX1fYWN0aXZhdGVBY3Rpb24odCl7aWYoIXRoaXMuX2lzQWN0aXZlQWN0aW9uKHQpKXtpZihudWxsPT09dC5fY2FjaGVJbmRleCl7Y29uc3QgZT0odC5fbG9jYWxSb290fHx0aGlzLl9yb290KS51dWlkLG49dC5fY2xpcC51dWlkLGk9dGhpcy5fYWN0aW9uc0J5Q2xpcFtuXTt0aGlzLl9iaW5kQWN0aW9uKHQsaSYmaS5rbm93bkFjdGlvbnNbMF0pLHRoaXMuX2FkZEluYWN0aXZlQWN0aW9uKHQsbixlKX1jb25zdCBlPXQuX3Byb3BlcnR5QmluZGluZ3M7Zm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0IT09bjsrK3Qpe2NvbnN0IG49ZVt0XTswPT1uLnVzZUNvdW50KysmJih0aGlzLl9sZW5kQmluZGluZyhuKSxuLnNhdmVPcmlnaW5hbFN0YXRlKCkpfXRoaXMuX2xlbmRBY3Rpb24odCl9fV9kZWFjdGl2YXRlQWN0aW9uKHQpe2lmKHRoaXMuX2lzQWN0aXZlQWN0aW9uKHQpKXtjb25zdCBlPXQuX3Byb3BlcnR5QmluZGluZ3M7Zm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0IT09bjsrK3Qpe2NvbnN0IG49ZVt0XTswPT0tLW4udXNlQ291bnQmJihuLnJlc3RvcmVPcmlnaW5hbFN0YXRlKCksdGhpcy5fdGFrZUJhY2tCaW5kaW5nKG4pKX10aGlzLl90YWtlQmFja0FjdGlvbih0KX19X2luaXRNZW1vcnlNYW5hZ2VyKCl7dGhpcy5fYWN0aW9ucz1bXSx0aGlzLl9uQWN0aXZlQWN0aW9ucz0wLHRoaXMuX2FjdGlvbnNCeUNsaXA9e30sdGhpcy5fYmluZGluZ3M9W10sdGhpcy5fbkFjdGl2ZUJpbmRpbmdzPTAsdGhpcy5fYmluZGluZ3NCeVJvb3RBbmROYW1lPXt9LHRoaXMuX2NvbnRyb2xJbnRlcnBvbGFudHM9W10sdGhpcy5fbkFjdGl2ZUNvbnRyb2xJbnRlcnBvbGFudHM9MDtjb25zdCB0PXRoaXM7dGhpcy5zdGF0cz17YWN0aW9uczp7Z2V0IHRvdGFsKCl7cmV0dXJuIHQuX2FjdGlvbnMubGVuZ3RofSxnZXQgaW5Vc2UoKXtyZXR1cm4gdC5fbkFjdGl2ZUFjdGlvbnN9fSxiaW5kaW5nczp7Z2V0IHRvdGFsKCl7cmV0dXJuIHQuX2JpbmRpbmdzLmxlbmd0aH0sZ2V0IGluVXNlKCl7cmV0dXJuIHQuX25BY3RpdmVCaW5kaW5nc319LGNvbnRyb2xJbnRlcnBvbGFudHM6e2dldCB0b3RhbCgpe3JldHVybiB0Ll9jb250cm9sSW50ZXJwb2xhbnRzLmxlbmd0aH0sZ2V0IGluVXNlKCl7cmV0dXJuIHQuX25BY3RpdmVDb250cm9sSW50ZXJwb2xhbnRzfX19fV9pc0FjdGl2ZUFjdGlvbih0KXtjb25zdCBlPXQuX2NhY2hlSW5kZXg7cmV0dXJuIG51bGwhPT1lJiZlPHRoaXMuX25BY3RpdmVBY3Rpb25zfV9hZGRJbmFjdGl2ZUFjdGlvbih0LGUsbil7Y29uc3QgaT10aGlzLl9hY3Rpb25zLHI9dGhpcy5fYWN0aW9uc0J5Q2xpcDtsZXQgbz1yW2VdO2lmKHZvaWQgMD09PW8pbz17a25vd25BY3Rpb25zOlt0XSxhY3Rpb25CeVJvb3Q6e319LHQuX2J5Q2xpcENhY2hlSW5kZXg9MCxyW2VdPW87ZWxzZXtjb25zdCBlPW8ua25vd25BY3Rpb25zO3QuX2J5Q2xpcENhY2hlSW5kZXg9ZS5sZW5ndGgsZS5wdXNoKHQpfXQuX2NhY2hlSW5kZXg9aS5sZW5ndGgsaS5wdXNoKHQpLG8uYWN0aW9uQnlSb290W25dPXR9X3JlbW92ZUluYWN0aXZlQWN0aW9uKHQpe2NvbnN0IGU9dGhpcy5fYWN0aW9ucyxuPWVbZS5sZW5ndGgtMV0saT10Ll9jYWNoZUluZGV4O24uX2NhY2hlSW5kZXg9aSxlW2ldPW4sZS5wb3AoKSx0Ll9jYWNoZUluZGV4PW51bGw7Y29uc3Qgcj10Ll9jbGlwLnV1aWQsbz10aGlzLl9hY3Rpb25zQnlDbGlwLGE9b1tyXSxzPWEua25vd25BY3Rpb25zLGw9c1tzLmxlbmd0aC0xXSxjPXQuX2J5Q2xpcENhY2hlSW5kZXg7bC5fYnlDbGlwQ2FjaGVJbmRleD1jLHNbY109bCxzLnBvcCgpLHQuX2J5Q2xpcENhY2hlSW5kZXg9bnVsbDtkZWxldGUgYS5hY3Rpb25CeVJvb3RbKHQuX2xvY2FsUm9vdHx8dGhpcy5fcm9vdCkudXVpZF0sMD09PXMubGVuZ3RoJiZkZWxldGUgb1tyXSx0aGlzLl9yZW1vdmVJbmFjdGl2ZUJpbmRpbmdzRm9yQWN0aW9uKHQpfV9yZW1vdmVJbmFjdGl2ZUJpbmRpbmdzRm9yQWN0aW9uKHQpe2NvbnN0IGU9dC5fcHJvcGVydHlCaW5kaW5ncztmb3IobGV0IHQ9MCxuPWUubGVuZ3RoO3QhPT1uOysrdCl7Y29uc3Qgbj1lW3RdOzA9PS0tbi5yZWZlcmVuY2VDb3VudCYmdGhpcy5fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nKG4pfX1fbGVuZEFjdGlvbih0KXtjb25zdCBlPXRoaXMuX2FjdGlvbnMsbj10Ll9jYWNoZUluZGV4LGk9dGhpcy5fbkFjdGl2ZUFjdGlvbnMrKyxyPWVbaV07dC5fY2FjaGVJbmRleD1pLGVbaV09dCxyLl9jYWNoZUluZGV4PW4sZVtuXT1yfV90YWtlQmFja0FjdGlvbih0KXtjb25zdCBlPXRoaXMuX2FjdGlvbnMsbj10Ll9jYWNoZUluZGV4LGk9LS10aGlzLl9uQWN0aXZlQWN0aW9ucyxyPWVbaV07dC5fY2FjaGVJbmRleD1pLGVbaV09dCxyLl9jYWNoZUluZGV4PW4sZVtuXT1yfV9hZGRJbmFjdGl2ZUJpbmRpbmcodCxlLG4pe2NvbnN0IGk9dGhpcy5fYmluZGluZ3NCeVJvb3RBbmROYW1lLHI9dGhpcy5fYmluZGluZ3M7bGV0IG89aVtlXTt2b2lkIDA9PT1vJiYobz17fSxpW2VdPW8pLG9bbl09dCx0Ll9jYWNoZUluZGV4PXIubGVuZ3RoLHIucHVzaCh0KX1fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nKHQpe2NvbnN0IGU9dGhpcy5fYmluZGluZ3Msbj10LmJpbmRpbmcsaT1uLnJvb3ROb2RlLnV1aWQscj1uLnBhdGgsbz10aGlzLl9iaW5kaW5nc0J5Um9vdEFuZE5hbWUsYT1vW2ldLHM9ZVtlLmxlbmd0aC0xXSxsPXQuX2NhY2hlSW5kZXg7cy5fY2FjaGVJbmRleD1sLGVbbF09cyxlLnBvcCgpLGRlbGV0ZSBhW3JdLDA9PT1PYmplY3Qua2V5cyhhKS5sZW5ndGgmJmRlbGV0ZSBvW2ldfV9sZW5kQmluZGluZyh0KXtjb25zdCBlPXRoaXMuX2JpbmRpbmdzLG49dC5fY2FjaGVJbmRleCxpPXRoaXMuX25BY3RpdmVCaW5kaW5ncysrLHI9ZVtpXTt0Ll9jYWNoZUluZGV4PWksZVtpXT10LHIuX2NhY2hlSW5kZXg9bixlW25dPXJ9X3Rha2VCYWNrQmluZGluZyh0KXtjb25zdCBlPXRoaXMuX2JpbmRpbmdzLG49dC5fY2FjaGVJbmRleCxpPS0tdGhpcy5fbkFjdGl2ZUJpbmRpbmdzLHI9ZVtpXTt0Ll9jYWNoZUluZGV4PWksZVtpXT10LHIuX2NhY2hlSW5kZXg9bixlW25dPXJ9X2xlbmRDb250cm9sSW50ZXJwb2xhbnQoKXtjb25zdCB0PXRoaXMuX2NvbnRyb2xJbnRlcnBvbGFudHMsZT10aGlzLl9uQWN0aXZlQ29udHJvbEludGVycG9sYW50cysrO2xldCBuPXRbZV07cmV0dXJuIHZvaWQgMD09PW4mJihuPW5ldyBLZWUobmV3IEZsb2F0MzJBcnJheSgyKSxuZXcgRmxvYXQzMkFycmF5KDIpLDEsdGhpcy5fY29udHJvbEludGVycG9sYW50c1Jlc3VsdEJ1ZmZlciksbi5fX2NhY2hlSW5kZXg9ZSx0W2VdPW4pLG59X3Rha2VCYWNrQ29udHJvbEludGVycG9sYW50KHQpe2NvbnN0IGU9dGhpcy5fY29udHJvbEludGVycG9sYW50cyxuPXQuX19jYWNoZUluZGV4LGk9LS10aGlzLl9uQWN0aXZlQ29udHJvbEludGVycG9sYW50cyxyPWVbaV07dC5fX2NhY2hlSW5kZXg9aSxlW2ldPXQsci5fX2NhY2hlSW5kZXg9bixlW25dPXJ9Y2xpcEFjdGlvbih0LGUsbil7Y29uc3QgaT1lfHx0aGlzLl9yb290LHI9aS51dWlkO2xldCBvPSJzdHJpbmciPT10eXBlb2YgdD9hbmUuZmluZEJ5TmFtZShpLHQpOnQ7Y29uc3QgYT1udWxsIT09bz9vLnV1aWQ6dCxzPXRoaXMuX2FjdGlvbnNCeUNsaXBbYV07bGV0IGw9bnVsbDtpZih2b2lkIDA9PT1uJiYobj1udWxsIT09bz9vLmJsZW5kTW9kZTpVMnQpLHZvaWQgMCE9PXMpe2NvbnN0IHQ9cy5hY3Rpb25CeVJvb3Rbcl07aWYodm9pZCAwIT09dCYmdC5ibGVuZE1vZGU9PT1uKXJldHVybiB0O2w9cy5rbm93bkFjdGlvbnNbMF0sbnVsbD09PW8mJihvPWwuX2NsaXApfWlmKG51bGw9PT1vKXJldHVybiBudWxsO2NvbnN0IGM9bmV3IExpZSh0aGlzLG8sZSxuKTtyZXR1cm4gdGhpcy5fYmluZEFjdGlvbihjLGwpLHRoaXMuX2FkZEluYWN0aXZlQWN0aW9uKGMsYSxyKSxjfWV4aXN0aW5nQWN0aW9uKHQsZSl7Y29uc3Qgbj1lfHx0aGlzLl9yb290LGk9bi51dWlkLHI9InN0cmluZyI9PXR5cGVvZiB0P2FuZS5maW5kQnlOYW1lKG4sdCk6dCxvPXRoaXMuX2FjdGlvbnNCeUNsaXBbcj9yLnV1aWQ6dF07cmV0dXJuIHZvaWQgMCE9PW8mJm8uYWN0aW9uQnlSb290W2ldfHxudWxsfXN0b3BBbGxBY3Rpb24oKXtjb25zdCB0PXRoaXMuX2FjdGlvbnM7Zm9yKGxldCBlPXRoaXMuX25BY3RpdmVBY3Rpb25zLTE7ZT49MDstLWUpdFtlXS5zdG9wKCk7cmV0dXJuIHRoaXN9dXBkYXRlKHQpe2NvbnN0IGU9dGhpcy5fYWN0aW9ucyxuPXRoaXMuX25BY3RpdmVBY3Rpb25zLGk9dGhpcy50aW1lKz10Kj10aGlzLnRpbWVTY2FsZSxyPU1hdGguc2lnbih0KSxvPXRoaXMuX2FjY3VJbmRleF49MTtmb3IobGV0IGE9MDthIT09bjsrK2Epe2VbYV0uX3VwZGF0ZShpLHQscixvKX1jb25zdCBhPXRoaXMuX2JpbmRpbmdzLHM9dGhpcy5fbkFjdGl2ZUJpbmRpbmdzO2ZvcihsZXQgdD0wO3QhPT1zOysrdClhW3RdLmFwcGx5KG8pO3JldHVybiB0aGlzfXNldFRpbWUodCl7dGhpcy50aW1lPTA7Zm9yKGxldCB0PTA7dDx0aGlzLl9hY3Rpb25zLmxlbmd0aDt0KyspdGhpcy5fYWN0aW9uc1t0XS50aW1lPTA7cmV0dXJuIHRoaXMudXBkYXRlKHQpfWdldFJvb3QoKXtyZXR1cm4gdGhpcy5fcm9vdH11bmNhY2hlQ2xpcCh0KXtjb25zdCBlPXRoaXMuX2FjdGlvbnMsbj10LnV1aWQsaT10aGlzLl9hY3Rpb25zQnlDbGlwLHI9aVtuXTtpZih2b2lkIDAhPT1yKXtjb25zdCB0PXIua25vd25BY3Rpb25zO2ZvcihsZXQgbj0wLGk9dC5sZW5ndGg7biE9PWk7KytuKXtjb25zdCBpPXRbbl07dGhpcy5fZGVhY3RpdmF0ZUFjdGlvbihpKTtjb25zdCByPWkuX2NhY2hlSW5kZXgsbz1lW2UubGVuZ3RoLTFdO2kuX2NhY2hlSW5kZXg9bnVsbCxpLl9ieUNsaXBDYWNoZUluZGV4PW51bGwsby5fY2FjaGVJbmRleD1yLGVbcl09byxlLnBvcCgpLHRoaXMuX3JlbW92ZUluYWN0aXZlQmluZGluZ3NGb3JBY3Rpb24oaSl9ZGVsZXRlIGlbbl19fXVuY2FjaGVSb290KHQpe2NvbnN0IGU9dC51dWlkLG49dGhpcy5fYWN0aW9uc0J5Q2xpcDtmb3IoY29uc3QgdCBpbiBuKXtjb25zdCBpPW5bdF0uYWN0aW9uQnlSb290W2VdO3ZvaWQgMCE9PWkmJih0aGlzLl9kZWFjdGl2YXRlQWN0aW9uKGkpLHRoaXMuX3JlbW92ZUluYWN0aXZlQWN0aW9uKGkpKX1jb25zdCBpPXRoaXMuX2JpbmRpbmdzQnlSb290QW5kTmFtZVtlXTtpZih2b2lkIDAhPT1pKWZvcihjb25zdCB0IGluIGkpe2NvbnN0IGU9aVt0XTtlLnJlc3RvcmVPcmlnaW5hbFN0YXRlKCksdGhpcy5fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nKGUpfX11bmNhY2hlQWN0aW9uKHQsZSl7Y29uc3Qgbj10aGlzLmV4aXN0aW5nQWN0aW9uKHQsZSk7bnVsbCE9PW4mJih0aGlzLl9kZWFjdGl2YXRlQWN0aW9uKG4pLHRoaXMuX3JlbW92ZUluYWN0aXZlQWN0aW9uKG4pKX19UGllLnByb3RvdHlwZS5fY29udHJvbEludGVycG9sYW50c1Jlc3VsdEJ1ZmZlcj1uZXcgRmxvYXQzMkFycmF5KDEpO2NsYXNzIE5pZXtjb25zdHJ1Y3Rvcih0KXsic3RyaW5nIj09dHlwZW9mIHQmJihjb25zb2xlLndhcm4oIlRIUkVFLlVuaWZvcm06IFR5cGUgcGFyYW1ldGVyIGlzIG5vIGxvbmdlciBuZWVkZWQuIiksdD1hcmd1bWVudHNbMV0pLHRoaXMudmFsdWU9dH1jbG9uZSgpe3JldHVybiBuZXcgTmllKHZvaWQgMD09PXRoaXMudmFsdWUuY2xvbmU/dGhpcy52YWx1ZTp0aGlzLnZhbHVlLmNsb25lKCkpfX1jbGFzcyBJaWUgZXh0ZW5kcyB1N3R7Y29uc3RydWN0b3IodCxlLG49MSl7c3VwZXIodCxlKSx0aGlzLm1lc2hQZXJBdHRyaWJ1dGU9bn1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMubWVzaFBlckF0dHJpYnV0ZT10Lm1lc2hQZXJBdHRyaWJ1dGUsdGhpc31jbG9uZSh0KXtjb25zdCBlPXN1cGVyLmNsb25lKHQpO3JldHVybiBlLm1lc2hQZXJBdHRyaWJ1dGU9dGhpcy5tZXNoUGVyQXR0cmlidXRlLGV9dG9KU09OKHQpe2NvbnN0IGU9c3VwZXIudG9KU09OKHQpO3JldHVybiBlLmlzSW5zdGFuY2VkSW50ZXJsZWF2ZWRCdWZmZXI9ITAsZS5tZXNoUGVyQXR0cmlidXRlPXRoaXMubWVzaFBlckF0dHJpYnV0ZSxlfX1JaWUucHJvdG90eXBlLmlzSW5zdGFuY2VkSW50ZXJsZWF2ZWRCdWZmZXI9ITA7Y2xhc3MgUmlle2NvbnN0cnVjdG9yKHQsZSxuLGkscil7dGhpcy5idWZmZXI9dCx0aGlzLnR5cGU9ZSx0aGlzLml0ZW1TaXplPW4sdGhpcy5lbGVtZW50U2l6ZT1pLHRoaXMuY291bnQ9cix0aGlzLnZlcnNpb249MH1zZXQgbmVlZHNVcGRhdGUodCl7ITA9PT10JiZ0aGlzLnZlcnNpb24rK31zZXRCdWZmZXIodCl7cmV0dXJuIHRoaXMuYnVmZmVyPXQsdGhpc31zZXRUeXBlKHQsZSl7cmV0dXJuIHRoaXMudHlwZT10LHRoaXMuZWxlbWVudFNpemU9ZSx0aGlzfXNldEl0ZW1TaXplKHQpe3JldHVybiB0aGlzLml0ZW1TaXplPXQsdGhpc31zZXRDb3VudCh0KXtyZXR1cm4gdGhpcy5jb3VudD10LHRoaXN9fVJpZS5wcm90b3R5cGUuaXNHTEJ1ZmZlckF0dHJpYnV0ZT0hMDtmdW5jdGlvbiBPaWUodCxlKXtyZXR1cm4gdC5kaXN0YW5jZS1lLmRpc3RhbmNlfWZ1bmN0aW9uIHppZSh0LGUsbixpKXtpZih0LmxheWVycy50ZXN0KGUubGF5ZXJzKSYmdC5yYXljYXN0KGUsbiksITA9PT1pKXtjb25zdCBpPXQuY2hpbGRyZW47Zm9yKGxldCB0PTAscj1pLmxlbmd0aDt0PHI7dCsrKXppZShpW3RdLGUsbiwhMCl9fWNsYXNzIERpZXtjb25zdHJ1Y3Rvcih0PTEsZT0wLG49MCl7cmV0dXJuIHRoaXMucmFkaXVzPXQsdGhpcy5waGk9ZSx0aGlzLnRoZXRhPW4sdGhpc31zZXQodCxlLG4pe3JldHVybiB0aGlzLnJhZGl1cz10LHRoaXMucGhpPWUsdGhpcy50aGV0YT1uLHRoaXN9Y29weSh0KXtyZXR1cm4gdGhpcy5yYWRpdXM9dC5yYWRpdXMsdGhpcy5waGk9dC5waGksdGhpcy50aGV0YT10LnRoZXRhLHRoaXN9bWFrZVNhZmUoKXtjb25zdCB0PTFlLTY7cmV0dXJuIHRoaXMucGhpPU1hdGgubWF4KHQsTWF0aC5taW4oTWF0aC5QSS10LHRoaXMucGhpKSksdGhpc31zZXRGcm9tVmVjdG9yMyh0KXtyZXR1cm4gdGhpcy5zZXRGcm9tQ2FydGVzaWFuQ29vcmRzKHQueCx0LnksdC56KX1zZXRGcm9tQ2FydGVzaWFuQ29vcmRzKHQsZSxuKXtyZXR1cm4gdGhpcy5yYWRpdXM9TWF0aC5zcXJ0KHQqdCtlKmUrbipuKSwwPT09dGhpcy5yYWRpdXM/KHRoaXMudGhldGE9MCx0aGlzLnBoaT0wKToodGhpcy50aGV0YT1NYXRoLmF0YW4yKHQsbiksdGhpcy5waGk9TWF0aC5hY29zKHM1dChlL3RoaXMucmFkaXVzLC0xLDEpKSksdGhpc31jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX19Y29uc3QgQmllPW5ldyBDNXQ7Y2xhc3MgSGlle2NvbnN0cnVjdG9yKHQ9bmV3IEM1dCgxLzAsMS8wKSxlPW5ldyBDNXQoLTEvMCwtMS8wKSl7dGhpcy5taW49dCx0aGlzLm1heD1lfXNldCh0LGUpe3JldHVybiB0aGlzLm1pbi5jb3B5KHQpLHRoaXMubWF4LmNvcHkoZSksdGhpc31zZXRGcm9tUG9pbnRzKHQpe3RoaXMubWFrZUVtcHR5KCk7Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXRoaXMuZXhwYW5kQnlQb2ludCh0W2VdKTtyZXR1cm4gdGhpc31zZXRGcm9tQ2VudGVyQW5kU2l6ZSh0LGUpe2NvbnN0IG49QmllLmNvcHkoZSkubXVsdGlwbHlTY2FsYXIoLjUpO3JldHVybiB0aGlzLm1pbi5jb3B5KHQpLnN1YihuKSx0aGlzLm1heC5jb3B5KHQpLmFkZChuKSx0aGlzfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfWNvcHkodCl7cmV0dXJuIHRoaXMubWluLmNvcHkodC5taW4pLHRoaXMubWF4LmNvcHkodC5tYXgpLHRoaXN9bWFrZUVtcHR5KCl7cmV0dXJuIHRoaXMubWluLng9dGhpcy5taW4ueT0xLzAsdGhpcy5tYXgueD10aGlzLm1heC55PS0xLzAsdGhpc31pc0VtcHR5KCl7cmV0dXJuIHRoaXMubWF4Lng8dGhpcy5taW4ueHx8dGhpcy5tYXgueTx0aGlzLm1pbi55fWdldENlbnRlcih0KXtyZXR1cm4gdGhpcy5pc0VtcHR5KCk/dC5zZXQoMCwwKTp0LmFkZFZlY3RvcnModGhpcy5taW4sdGhpcy5tYXgpLm11bHRpcGx5U2NhbGFyKC41KX1nZXRTaXplKHQpe3JldHVybiB0aGlzLmlzRW1wdHkoKT90LnNldCgwLDApOnQuc3ViVmVjdG9ycyh0aGlzLm1heCx0aGlzLm1pbil9ZXhwYW5kQnlQb2ludCh0KXtyZXR1cm4gdGhpcy5taW4ubWluKHQpLHRoaXMubWF4Lm1heCh0KSx0aGlzfWV4cGFuZEJ5VmVjdG9yKHQpe3JldHVybiB0aGlzLm1pbi5zdWIodCksdGhpcy5tYXguYWRkKHQpLHRoaXN9ZXhwYW5kQnlTY2FsYXIodCl7cmV0dXJuIHRoaXMubWluLmFkZFNjYWxhcigtdCksdGhpcy5tYXguYWRkU2NhbGFyKHQpLHRoaXN9Y29udGFpbnNQb2ludCh0KXtyZXR1cm4hKHQueDx0aGlzLm1pbi54fHx0Lng+dGhpcy5tYXgueHx8dC55PHRoaXMubWluLnl8fHQueT50aGlzLm1heC55KX1jb250YWluc0JveCh0KXtyZXR1cm4gdGhpcy5taW4ueDw9dC5taW4ueCYmdC5tYXgueDw9dGhpcy5tYXgueCYmdGhpcy5taW4ueTw9dC5taW4ueSYmdC5tYXgueTw9dGhpcy5tYXgueX1nZXRQYXJhbWV0ZXIodCxlKXtyZXR1cm4gZS5zZXQoKHQueC10aGlzLm1pbi54KS8odGhpcy5tYXgueC10aGlzLm1pbi54KSwodC55LXRoaXMubWluLnkpLyh0aGlzLm1heC55LXRoaXMubWluLnkpKX1pbnRlcnNlY3RzQm94KHQpe3JldHVybiEodC5tYXgueDx0aGlzLm1pbi54fHx0Lm1pbi54PnRoaXMubWF4Lnh8fHQubWF4Lnk8dGhpcy5taW4ueXx8dC5taW4ueT50aGlzLm1heC55KX1jbGFtcFBvaW50KHQsZSl7cmV0dXJuIGUuY29weSh0KS5jbGFtcCh0aGlzLm1pbix0aGlzLm1heCl9ZGlzdGFuY2VUb1BvaW50KHQpe3JldHVybiBCaWUuY29weSh0KS5jbGFtcCh0aGlzLm1pbix0aGlzLm1heCkuc3ViKHQpLmxlbmd0aCgpfWludGVyc2VjdCh0KXtyZXR1cm4gdGhpcy5taW4ubWF4KHQubWluKSx0aGlzLm1heC5taW4odC5tYXgpLHRoaXN9dW5pb24odCl7cmV0dXJuIHRoaXMubWluLm1pbih0Lm1pbiksdGhpcy5tYXgubWF4KHQubWF4KSx0aGlzfXRyYW5zbGF0ZSh0KXtyZXR1cm4gdGhpcy5taW4uYWRkKHQpLHRoaXMubWF4LmFkZCh0KSx0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC5taW4uZXF1YWxzKHRoaXMubWluKSYmdC5tYXguZXF1YWxzKHRoaXMubWF4KX19SGllLnByb3RvdHlwZS5pc0JveDI9ITA7Y29uc3QgRmllPW5ldyBINXQsVmllPW5ldyBINXQ7Y2xhc3MgVWlle2NvbnN0cnVjdG9yKHQ9bmV3IEg1dCxlPW5ldyBINXQpe3RoaXMuc3RhcnQ9dCx0aGlzLmVuZD1lfXNldCh0LGUpe3JldHVybiB0aGlzLnN0YXJ0LmNvcHkodCksdGhpcy5lbmQuY29weShlKSx0aGlzfWNvcHkodCl7cmV0dXJuIHRoaXMuc3RhcnQuY29weSh0LnN0YXJ0KSx0aGlzLmVuZC5jb3B5KHQuZW5kKSx0aGlzfWdldENlbnRlcih0KXtyZXR1cm4gdC5hZGRWZWN0b3JzKHRoaXMuc3RhcnQsdGhpcy5lbmQpLm11bHRpcGx5U2NhbGFyKC41KX1kZWx0YSh0KXtyZXR1cm4gdC5zdWJWZWN0b3JzKHRoaXMuZW5kLHRoaXMuc3RhcnQpfWRpc3RhbmNlU3EoKXtyZXR1cm4gdGhpcy5zdGFydC5kaXN0YW5jZVRvU3F1YXJlZCh0aGlzLmVuZCl9ZGlzdGFuY2UoKXtyZXR1cm4gdGhpcy5zdGFydC5kaXN0YW5jZVRvKHRoaXMuZW5kKX1hdCh0LGUpe3JldHVybiB0aGlzLmRlbHRhKGUpLm11bHRpcGx5U2NhbGFyKHQpLmFkZCh0aGlzLnN0YXJ0KX1jbG9zZXN0UG9pbnRUb1BvaW50UGFyYW1ldGVyKHQsZSl7RmllLnN1YlZlY3RvcnModCx0aGlzLnN0YXJ0KSxWaWUuc3ViVmVjdG9ycyh0aGlzLmVuZCx0aGlzLnN0YXJ0KTtjb25zdCBuPVZpZS5kb3QoVmllKTtsZXQgaT1WaWUuZG90KEZpZSkvbjtyZXR1cm4gZSYmKGk9czV0KGksMCwxKSksaX1jbG9zZXN0UG9pbnRUb1BvaW50KHQsZSxuKXtjb25zdCBpPXRoaXMuY2xvc2VzdFBvaW50VG9Qb2ludFBhcmFtZXRlcih0LGUpO3JldHVybiB0aGlzLmRlbHRhKG4pLm11bHRpcGx5U2NhbGFyKGkpLmFkZCh0aGlzLnN0YXJ0KX1hcHBseU1hdHJpeDQodCl7cmV0dXJuIHRoaXMuc3RhcnQuYXBwbHlNYXRyaXg0KHQpLHRoaXMuZW5kLmFwcGx5TWF0cml4NCh0KSx0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC5zdGFydC5lcXVhbHModGhpcy5zdGFydCkmJnQuZW5kLmVxdWFscyh0aGlzLmVuZCl9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9fWNsYXNzIGppZSBleHRlbmRzIFYzdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMubWF0ZXJpYWw9dCx0aGlzLnJlbmRlcj1mdW5jdGlvbigpe30sdGhpcy5oYXNQb3NpdGlvbnM9ITEsdGhpcy5oYXNOb3JtYWxzPSExLHRoaXMuaGFzQ29sb3JzPSExLHRoaXMuaGFzVXZzPSExLHRoaXMucG9zaXRpb25BcnJheT1udWxsLHRoaXMubm9ybWFsQXJyYXk9bnVsbCx0aGlzLmNvbG9yQXJyYXk9bnVsbCx0aGlzLnV2QXJyYXk9bnVsbCx0aGlzLmNvdW50PTB9fWppZS5wcm90b3R5cGUuaXNJbW1lZGlhdGVSZW5kZXJPYmplY3Q9ITA7Y29uc3QgR2llPW5ldyBINXQ7Y29uc3QgV2llPW5ldyBINXQscWllPW5ldyBnM3QsWWllPW5ldyBnM3Q7Y2xhc3MgWGllIGV4dGVuZHMgaXRle2NvbnN0cnVjdG9yKHQpe2NvbnN0IGU9JGllKHQpLG49bmV3IE40dCxpPVtdLHI9W10sbz1uZXcgczR0KDAsMCwxKSxhPW5ldyBzNHQoMCwxLDApO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXtjb25zdCBuPWVbdF07bi5wYXJlbnQmJm4ucGFyZW50LmlzQm9uZSYmKGkucHVzaCgwLDAsMCksaS5wdXNoKDAsMCwwKSxyLnB1c2goby5yLG8uZyxvLmIpLHIucHVzaChhLnIsYS5nLGEuYikpfW4uc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGI0dChpLDMpKSxuLnNldEF0dHJpYnV0ZSgiY29sb3IiLG5ldyBiNHQociwzKSk7c3VwZXIobixuZXcgWDd0KHt2ZXJ0ZXhDb2xvcnM6ITAsZGVwdGhUZXN0OiExLGRlcHRoV3JpdGU6ITEsdG9uZU1hcHBlZDohMSx0cmFuc3BhcmVudDohMH0pKSx0aGlzLnR5cGU9IlNrZWxldG9uSGVscGVyIix0aGlzLmlzU2tlbGV0b25IZWxwZXI9ITAsdGhpcy5yb290PXQsdGhpcy5ib25lcz1lLHRoaXMubWF0cml4PXQubWF0cml4V29ybGQsdGhpcy5tYXRyaXhBdXRvVXBkYXRlPSExfXVwZGF0ZU1hdHJpeFdvcmxkKHQpe2NvbnN0IGU9dGhpcy5ib25lcyxuPXRoaXMuZ2VvbWV0cnksaT1uLmdldEF0dHJpYnV0ZSgicG9zaXRpb24iKTtZaWUuY29weSh0aGlzLnJvb3QubWF0cml4V29ybGQpLmludmVydCgpO2ZvcihsZXQgdD0wLG49MDt0PGUubGVuZ3RoO3QrKyl7Y29uc3Qgcj1lW3RdO3IucGFyZW50JiZyLnBhcmVudC5pc0JvbmUmJihxaWUubXVsdGlwbHlNYXRyaWNlcyhZaWUsci5tYXRyaXhXb3JsZCksV2llLnNldEZyb21NYXRyaXhQb3NpdGlvbihxaWUpLGkuc2V0WFlaKG4sV2llLngsV2llLnksV2llLnopLHFpZS5tdWx0aXBseU1hdHJpY2VzKFlpZSxyLnBhcmVudC5tYXRyaXhXb3JsZCksV2llLnNldEZyb21NYXRyaXhQb3NpdGlvbihxaWUpLGkuc2V0WFlaKG4rMSxXaWUueCxXaWUueSxXaWUueiksbis9Mil9bi5nZXRBdHRyaWJ1dGUoInBvc2l0aW9uIikubmVlZHNVcGRhdGU9ITAsc3VwZXIudXBkYXRlTWF0cml4V29ybGQodCl9fWZ1bmN0aW9uICRpZSh0KXtjb25zdCBlPVtdO3QmJnQuaXNCb25lJiZlLnB1c2godCk7Zm9yKGxldCBuPTA7bjx0LmNoaWxkcmVuLmxlbmd0aDtuKyspZS5wdXNoLmFwcGx5KGUsJGllKHQuY2hpbGRyZW5bbl0pKTtyZXR1cm4gZX1jb25zdCBLaWU9bmV3IEg1dCxaaWU9bmV3IHM0dCxKaWU9bmV3IHM0dDtjbGFzcyBRaWUgZXh0ZW5kcyBpdGV7Y29uc3RydWN0b3IodD0xMCxlPTEwLG49NDQ3MzkyNCxpPTg5NDc4NDgpe249bmV3IHM0dChuKSxpPW5ldyBzNHQoaSk7Y29uc3Qgcj1lLzIsbz10L2UsYT10LzIscz1bXSxsPVtdO2ZvcihsZXQgdD0wLGM9MCx1PS1hO3Q8PWU7dCsrLHUrPW8pe3MucHVzaCgtYSwwLHUsYSwwLHUpLHMucHVzaCh1LDAsLWEsdSwwLGEpO2NvbnN0IGU9dD09PXI/bjppO2UudG9BcnJheShsLGMpLGMrPTMsZS50b0FycmF5KGwsYyksYys9MyxlLnRvQXJyYXkobCxjKSxjKz0zLGUudG9BcnJheShsLGMpLGMrPTN9Y29uc3QgYz1uZXcgTjR0O2Muc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGI0dChzLDMpKSxjLnNldEF0dHJpYnV0ZSgiY29sb3IiLG5ldyBiNHQobCwzKSk7c3VwZXIoYyxuZXcgWDd0KHt2ZXJ0ZXhDb2xvcnM6ITAsdG9uZU1hcHBlZDohMX0pKSx0aGlzLnR5cGU9IkdyaWRIZWxwZXIifX1jb25zdCB0cmU9bmV3IEg1dCxlcmU9bmV3IEg1dCxucmU9bmV3IEg1dDtjb25zdCBpcmU9bmV3IEg1dCxycmU9bmV3IGk2dDtmdW5jdGlvbiBvcmUodCxlLG4saSxyLG8sYSl7aXJlLnNldChyLG8sYSkudW5wcm9qZWN0KGkpO2NvbnN0IHM9ZVt0XTtpZih2b2lkIDAhPT1zKXtjb25zdCB0PW4uZ2V0QXR0cmlidXRlKCJwb3NpdGlvbiIpO2ZvcihsZXQgZT0wLG49cy5sZW5ndGg7ZTxuO2UrKyl0LnNldFhZWihzW2VdLGlyZS54LGlyZS55LGlyZS56KX19Y29uc3QgYXJlPW5ldyBVNXQ7Y2xhc3Mgc3JlIGV4dGVuZHMgaXRle2NvbnN0cnVjdG9yKHQsZT0xNjc3Njk2MCl7Y29uc3Qgbj1uZXcgVWludDE2QXJyYXkoWzAsMSwxLDIsMiwzLDMsMCw0LDUsNSw2LDYsNyw3LDQsMCw0LDEsNSwyLDYsMyw3XSksaT1uZXcgRmxvYXQzMkFycmF5KDI0KSxyPW5ldyBONHQ7ci5zZXRJbmRleChuZXcgaDR0KG4sMSkpLHIuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGg0dChpLDMpKSxzdXBlcihyLG5ldyBYN3Qoe2NvbG9yOmUsdG9uZU1hcHBlZDohMX0pKSx0aGlzLm9iamVjdD10LHRoaXMudHlwZT0iQm94SGVscGVyIix0aGlzLm1hdHJpeEF1dG9VcGRhdGU9ITEsdGhpcy51cGRhdGUoKX11cGRhdGUodCl7aWYodm9pZCAwIT09dCYmY29uc29sZS53YXJuKCJUSFJFRS5Cb3hIZWxwZXI6IC51cGRhdGUoKSBoYXMgbm8gbG9uZ2VyIGFyZ3VtZW50cy4iKSx2b2lkIDAhPT10aGlzLm9iamVjdCYmYXJlLnNldEZyb21PYmplY3QodGhpcy5vYmplY3QpLGFyZS5pc0VtcHR5KCkpcmV0dXJuO2NvbnN0IGU9YXJlLm1pbixuPWFyZS5tYXgsaT10aGlzLmdlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24scj1pLmFycmF5O3JbMF09bi54LHJbMV09bi55LHJbMl09bi56LHJbM109ZS54LHJbNF09bi55LHJbNV09bi56LHJbNl09ZS54LHJbN109ZS55LHJbOF09bi56LHJbOV09bi54LHJbMTBdPWUueSxyWzExXT1uLnosclsxMl09bi54LHJbMTNdPW4ueSxyWzE0XT1lLnosclsxNV09ZS54LHJbMTZdPW4ueSxyWzE3XT1lLnosclsxOF09ZS54LHJbMTldPWUueSxyWzIwXT1lLnosclsyMV09bi54LHJbMjJdPWUueSxyWzIzXT1lLnosaS5uZWVkc1VwZGF0ZT0hMCx0aGlzLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpfXNldEZyb21PYmplY3QodCl7cmV0dXJuIHRoaXMub2JqZWN0PXQsdGhpcy51cGRhdGUoKSx0aGlzfWNvcHkodCl7cmV0dXJuIGl0ZS5wcm90b3R5cGUuY29weS5jYWxsKHRoaXMsdCksdGhpcy5vYmplY3Q9dC5vYmplY3QsdGhpc319Y29uc3QgbHJlPW5ldyBINXQ7bGV0IGNyZSx1cmU7Y2xhc3MgaHJlIGV4dGVuZHMgaXRle2NvbnN0cnVjdG9yKHQ9MSl7Y29uc3QgZT1bMCwwLDAsdCwwLDAsMCwwLDAsMCx0LDAsMCwwLDAsMCwwLHRdLG49bmV3IE40dDtuLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBiNHQoZSwzKSksbi5zZXRBdHRyaWJ1dGUoImNvbG9yIixuZXcgYjR0KFsxLDAsMCwxLC42LDAsMCwxLDAsLjYsMSwwLDAsMCwxLDAsLjYsMV0sMykpO3N1cGVyKG4sbmV3IFg3dCh7dmVydGV4Q29sb3JzOiEwLHRvbmVNYXBwZWQ6ITF9KSksdGhpcy50eXBlPSJBeGVzSGVscGVyIn1zZXRDb2xvcnModCxlLG4pe2NvbnN0IGk9bmV3IHM0dCxyPXRoaXMuZ2VvbWV0cnkuYXR0cmlidXRlcy5jb2xvci5hcnJheTtyZXR1cm4gaS5zZXQodCksaS50b0FycmF5KHIsMCksaS50b0FycmF5KHIsMyksaS5zZXQoZSksaS50b0FycmF5KHIsNiksaS50b0FycmF5KHIsOSksaS5zZXQobiksaS50b0FycmF5KHIsMTIpLGkudG9BcnJheShyLDE1KSx0aGlzLmdlb21ldHJ5LmF0dHJpYnV0ZXMuY29sb3IubmVlZHNVcGRhdGU9ITAsdGhpc31kaXNwb3NlKCl7dGhpcy5nZW9tZXRyeS5kaXNwb3NlKCksdGhpcy5tYXRlcmlhbC5kaXNwb3NlKCl9fWNvbnN0IGRyZT1uZXcgRmxvYXQzMkFycmF5KDEpLHByZT1uZXcgSW50MzJBcnJheShkcmUuYnVmZmVyKTtUdGUuY3JlYXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGNvbnNvbGUubG9nKCJUSFJFRS5DdXJ2ZS5jcmVhdGUoKSBoYXMgYmVlbiBkZXByZWNhdGVkIiksdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShUdGUucHJvdG90eXBlKSx0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj10LHQucHJvdG90eXBlLmdldFBvaW50PWUsdH0sdm5lLnByb3RvdHlwZS5mcm9tUG9pbnRzPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlBhdGg6IC5mcm9tUG9pbnRzKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuc2V0RnJvbVBvaW50cygpLiIpLHRoaXMuc2V0RnJvbVBvaW50cyh0KX0sUWllLnByb3RvdHlwZS5zZXRDb2xvcnM9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5HcmlkSGVscGVyOiBzZXRDb2xvcnMoKSBoYXMgYmVlbiBkZXByZWNhdGVkLCBwYXNzIHRoZW0gaW4gdGhlIGNvbnN0cnVjdG9yIGluc3RlYWQuIil9LFhpZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuU2tlbGV0b25IZWxwZXI6IHVwZGF0ZSgpIG5vIGxvbmdlciBuZWVkcyB0byBiZSBjYWxsZWQuIil9LGhuZS5wcm90b3R5cGUuZXh0cmFjdFVybEJhc2U9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTG9hZGVyOiAuZXh0cmFjdFVybEJhc2UoKSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgVEhSRUUuTG9hZGVyVXRpbHMuZXh0cmFjdFVybEJhc2UoKSBpbnN0ZWFkLiIpLFZuZS5leHRyYWN0VXJsQmFzZSh0KX0saG5lLkhhbmRsZXJzPXthZGQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5Mb2FkZXI6IEhhbmRsZXJzLmFkZCgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBMb2FkaW5nTWFuYWdlci5hZGRIYW5kbGVyKCkgaW5zdGVhZC4iKX0sZ2V0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTG9hZGVyOiBIYW5kbGVycy5nZXQoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgTG9hZGluZ01hbmFnZXIuZ2V0SGFuZGxlcigpIGluc3RlYWQuIil9fSxIaWUucHJvdG90eXBlLmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3gyOiAuY2VudGVyKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0Q2VudGVyKCkuIiksdGhpcy5nZXRDZW50ZXIodCl9LEhpZS5wcm90b3R5cGUuZW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3gyOiAuZW1wdHkoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pc0VtcHR5KCkuIiksdGhpcy5pc0VtcHR5KCl9LEhpZS5wcm90b3R5cGUuaXNJbnRlcnNlY3Rpb25Cb3g9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQm94MjogLmlzSW50ZXJzZWN0aW9uQm94KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaW50ZXJzZWN0c0JveCgpLiIpLHRoaXMuaW50ZXJzZWN0c0JveCh0KX0sSGllLnByb3RvdHlwZS5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJveDI6IC5zaXplKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0U2l6ZSgpLiIpLHRoaXMuZ2V0U2l6ZSh0KX0sVTV0LnByb3RvdHlwZS5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQm94MzogLmNlbnRlcigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldENlbnRlcigpLiIpLHRoaXMuZ2V0Q2VudGVyKHQpfSxVNXQucHJvdG90eXBlLmVtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQm94MzogLmVtcHR5KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaXNFbXB0eSgpLiIpLHRoaXMuaXNFbXB0eSgpfSxVNXQucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uQm94PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJveDM6IC5pc0ludGVyc2VjdGlvbkJveCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmludGVyc2VjdHNCb3goKS4iKSx0aGlzLmludGVyc2VjdHNCb3godCl9LFU1dC5wcm90b3R5cGUuaXNJbnRlcnNlY3Rpb25TcGhlcmU9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQm94MzogLmlzSW50ZXJzZWN0aW9uU3BoZXJlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaW50ZXJzZWN0c1NwaGVyZSgpLiIpLHRoaXMuaW50ZXJzZWN0c1NwaGVyZSh0KX0sVTV0LnByb3RvdHlwZS5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJveDM6IC5zaXplKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0U2l6ZSgpLiIpLHRoaXMuZ2V0U2l6ZSh0KX0sczN0LnByb3RvdHlwZS5lbXB0eT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlNwaGVyZTogLmVtcHR5KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaXNFbXB0eSgpLiIpLHRoaXMuaXNFbXB0eSgpfSxtNnQucHJvdG90eXBlLnNldEZyb21NYXRyaXg9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuRnJ1c3R1bTogLnNldEZyb21NYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeCgpLiIpLHRoaXMuc2V0RnJvbVByb2plY3Rpb25NYXRyaXgodCl9LFVpZS5wcm90b3R5cGUuY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkxpbmUzOiAuY2VudGVyKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0Q2VudGVyKCkuIiksdGhpcy5nZXRDZW50ZXIodCl9LEE1dC5wcm90b3R5cGUuZmxhdHRlblRvQXJyYXlPZmZzZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXgzOiAuZmxhdHRlblRvQXJyYXlPZmZzZXQoKSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnRvQXJyYXkoKSBpbnN0ZWFkLiIpLHRoaXMudG9BcnJheSh0LGUpfSxBNXQucHJvdG90eXBlLm11bHRpcGx5VmVjdG9yMz1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXgzOiAubXVsdGlwbHlWZWN0b3IzKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIHZlY3Rvci5hcHBseU1hdHJpeDMoIG1hdHJpeCApIGluc3RlYWQuIiksdC5hcHBseU1hdHJpeDModGhpcyl9LEE1dC5wcm90b3R5cGUubXVsdGlwbHlWZWN0b3IzQXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXgzOiAubXVsdGlwbHlWZWN0b3IzQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxBNXQucHJvdG90eXBlLmFwcGx5VG9CdWZmZXJBdHRyaWJ1dGU9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4MzogLmFwcGx5VG9CdWZmZXJBdHRyaWJ1dGUoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgYXR0cmlidXRlLmFwcGx5TWF0cml4MyggbWF0cml4ICkgaW5zdGVhZC4iKSx0LmFwcGx5TWF0cml4Myh0aGlzKX0sQTV0LnByb3RvdHlwZS5hcHBseVRvVmVjdG9yM0FycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4MzogLmFwcGx5VG9WZWN0b3IzQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxBNXQucHJvdG90eXBlLmdldEludmVyc2U9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4MzogLmdldEludmVyc2UoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgbWF0cml4SW52LmNvcHkoIG1hdHJpeCApLmludmVydCgpOyBpbnN0ZWFkLiIpLHRoaXMuY29weSh0KS5pbnZlcnQoKX0sZzN0LnByb3RvdHlwZS5leHRyYWN0UG9zaXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLmV4dHJhY3RQb3NpdGlvbigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmNvcHlQb3NpdGlvbigpLiIpLHRoaXMuY29weVBvc2l0aW9uKHQpfSxnM3QucHJvdG90eXBlLmZsYXR0ZW5Ub0FycmF5T2Zmc2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLmZsYXR0ZW5Ub0FycmF5T2Zmc2V0KCkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC50b0FycmF5KCkgaW5zdGVhZC4iKSx0aGlzLnRvQXJyYXkodCxlKX0sZzN0LnByb3RvdHlwZS5nZXRQb3NpdGlvbj1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5nZXRQb3NpdGlvbigpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBWZWN0b3IzLnNldEZyb21NYXRyaXhQb3NpdGlvbiggbWF0cml4ICkgaW5zdGVhZC4iKSwobmV3IEg1dCkuc2V0RnJvbU1hdHJpeENvbHVtbih0aGlzLDMpfSxnM3QucHJvdG90eXBlLnNldFJvdGF0aW9uRnJvbVF1YXRlcm5pb249ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLnNldFJvdGF0aW9uRnJvbVF1YXRlcm5pb24oKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5tYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbigpLiIpLHRoaXMubWFrZVJvdGF0aW9uRnJvbVF1YXRlcm5pb24odCl9LGczdC5wcm90b3R5cGUubXVsdGlwbHlUb0FycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHlUb0FycmF5KCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sZzN0LnByb3RvdHlwZS5tdWx0aXBseVZlY3RvcjM9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLm11bHRpcGx5VmVjdG9yMygpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSB2ZWN0b3IuYXBwbHlNYXRyaXg0KCBtYXRyaXggKSBpbnN0ZWFkLiIpLHQuYXBwbHlNYXRyaXg0KHRoaXMpfSxnM3QucHJvdG90eXBlLm11bHRpcGx5VmVjdG9yND1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHlWZWN0b3I0KCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIHZlY3Rvci5hcHBseU1hdHJpeDQoIG1hdHJpeCApIGluc3RlYWQuIiksdC5hcHBseU1hdHJpeDQodGhpcyl9LGczdC5wcm90b3R5cGUubXVsdGlwbHlWZWN0b3IzQXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHlWZWN0b3IzQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxnM3QucHJvdG90eXBlLnJvdGF0ZUF4aXM9ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAucm90YXRlQXhpcygpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBWZWN0b3IzLnRyYW5zZm9ybURpcmVjdGlvbiggbWF0cml4ICkgaW5zdGVhZC4iKSx0LnRyYW5zZm9ybURpcmVjdGlvbih0aGlzKX0sZzN0LnByb3RvdHlwZS5jcm9zc1ZlY3Rvcj1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAuY3Jvc3NWZWN0b3IoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgdmVjdG9yLmFwcGx5TWF0cml4NCggbWF0cml4ICkgaW5zdGVhZC4iKSx0LmFwcGx5TWF0cml4NCh0aGlzKX0sZzN0LnByb3RvdHlwZS50cmFuc2xhdGU9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAudHJhbnNsYXRlKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sZzN0LnByb3RvdHlwZS5yb3RhdGVYPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4NDogLnJvdGF0ZVgoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxnM3QucHJvdG90eXBlLnJvdGF0ZVk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAucm90YXRlWSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LGczdC5wcm90b3R5cGUucm90YXRlWj1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5yb3RhdGVaKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sZzN0LnByb3RvdHlwZS5yb3RhdGVCeUF4aXM9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAucm90YXRlQnlBeGlzKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sZzN0LnByb3RvdHlwZS5hcHBseVRvQnVmZmVyQXR0cmlidXRlPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5hcHBseVRvQnVmZmVyQXR0cmlidXRlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIGF0dHJpYnV0ZS5hcHBseU1hdHJpeDQoIG1hdHJpeCApIGluc3RlYWQuIiksdC5hcHBseU1hdHJpeDQodGhpcyl9LGczdC5wcm90b3R5cGUuYXBwbHlUb1ZlY3RvcjNBcnJheT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5hcHBseVRvVmVjdG9yM0FycmF5KCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sZzN0LnByb3RvdHlwZS5tYWtlRnJ1c3R1bT1mdW5jdGlvbih0LGUsbixpLHIsbyl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLm1ha2VGcnVzdHVtKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC5tYWtlUGVyc3BlY3RpdmUoIGxlZnQsIHJpZ2h0LCB0b3AsIGJvdHRvbSwgbmVhciwgZmFyICkgaW5zdGVhZC4iKSx0aGlzLm1ha2VQZXJzcGVjdGl2ZSh0LGUsaSxuLHIsbyl9LGczdC5wcm90b3R5cGUuZ2V0SW52ZXJzZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAuZ2V0SW52ZXJzZSgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBtYXRyaXhJbnYuY29weSggbWF0cml4ICkuaW52ZXJ0KCk7IGluc3RlYWQuIiksdGhpcy5jb3B5KHQpLmludmVydCgpfSxkNnQucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uTGluZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5QbGFuZTogLmlzSW50ZXJzZWN0aW9uTGluZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmludGVyc2VjdHNMaW5lKCkuIiksdGhpcy5pbnRlcnNlY3RzTGluZSh0KX0sQjV0LnByb3RvdHlwZS5tdWx0aXBseVZlY3RvcjM9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUXVhdGVybmlvbjogLm11bHRpcGx5VmVjdG9yMygpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBpcyBub3cgdmVjdG9yLmFwcGx5UXVhdGVybmlvbiggcXVhdGVybmlvbiApIGluc3RlYWQuIiksdC5hcHBseVF1YXRlcm5pb24odGhpcyl9LEI1dC5wcm90b3R5cGUuaW52ZXJzZT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlF1YXRlcm5pb246IC5pbnZlcnNlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byBpbnZlcnQoKS4iKSx0aGlzLmludmVydCgpfSxtM3QucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uQm94PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlJheTogLmlzSW50ZXJzZWN0aW9uQm94KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaW50ZXJzZWN0c0JveCgpLiIpLHRoaXMuaW50ZXJzZWN0c0JveCh0KX0sbTN0LnByb3RvdHlwZS5pc0ludGVyc2VjdGlvblBsYW5lPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlJheTogLmlzSW50ZXJzZWN0aW9uUGxhbmUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pbnRlcnNlY3RzUGxhbmUoKS4iKSx0aGlzLmludGVyc2VjdHNQbGFuZSh0KX0sbTN0LnByb3RvdHlwZS5pc0ludGVyc2VjdGlvblNwaGVyZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5SYXk6IC5pc0ludGVyc2VjdGlvblNwaGVyZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmludGVyc2VjdHNTcGhlcmUoKS4iKSx0aGlzLmludGVyc2VjdHNTcGhlcmUodCl9LEozdC5wcm90b3R5cGUuYXJlYT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAuYXJlYSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldEFyZWEoKS4iKSx0aGlzLmdldEFyZWEoKX0sSjN0LnByb3RvdHlwZS5iYXJ5Y29vcmRGcm9tUG9pbnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5UcmlhbmdsZTogLmJhcnljb29yZEZyb21Qb2ludCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldEJhcnljb29yZCgpLiIpLHRoaXMuZ2V0QmFyeWNvb3JkKHQsZSl9LEozdC5wcm90b3R5cGUubWlkcG9pbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVHJpYW5nbGU6IC5taWRwb2ludCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldE1pZHBvaW50KCkuIiksdGhpcy5nZXRNaWRwb2ludCh0KX0sSjN0LnByb3RvdHlwZW5vcm1hbD1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5UcmlhbmdsZTogLm5vcm1hbCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldE5vcm1hbCgpLiIpLHRoaXMuZ2V0Tm9ybWFsKHQpfSxKM3QucHJvdG90eXBlLnBsYW5lPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAucGxhbmUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5nZXRQbGFuZSgpLiIpLHRoaXMuZ2V0UGxhbmUodCl9LEozdC5iYXJ5Y29vcmRGcm9tUG9pbnQ9ZnVuY3Rpb24odCxlLG4saSxyKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5UcmlhbmdsZTogLmJhcnljb29yZEZyb21Qb2ludCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldEJhcnljb29yZCgpLiIpLEozdC5nZXRCYXJ5Y29vcmQodCxlLG4saSxyKX0sSjN0Lm5vcm1hbD1mdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5UcmlhbmdsZTogLm5vcm1hbCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldE5vcm1hbCgpLiIpLEozdC5nZXROb3JtYWwodCxlLG4saSl9LGJuZS5wcm90b3R5cGUuZXh0cmFjdEFsbFBvaW50cz1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5TaGFwZTogLmV4dHJhY3RBbGxQb2ludHMoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLmV4dHJhY3RQb2ludHMoKSBpbnN0ZWFkLiIpLHRoaXMuZXh0cmFjdFBvaW50cyh0KX0sYm5lLnByb3RvdHlwZS5leHRydWRlPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlNoYXBlOiAuZXh0cnVkZSgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBFeHRydWRlR2VvbWV0cnkoKSBpbnN0ZWFkLiIpLG5ldyBiZWUodGhpcyx0KX0sYm5lLnByb3RvdHlwZS5tYWtlR2VvbWV0cnk9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuU2hhcGU6IC5tYWtlR2VvbWV0cnkoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgU2hhcGVHZW9tZXRyeSgpIGluc3RlYWQuIiksbmV3IENlZSh0aGlzLHQpfSxDNXQucHJvdG90eXBlLmZyb21BdHRyaWJ1dGU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjI6IC5mcm9tQXR0cmlidXRlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZnJvbUJ1ZmZlckF0dHJpYnV0ZSgpLiIpLHRoaXMuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUsbil9LEM1dC5wcm90b3R5cGUuZGlzdGFuY2VUb01hbmhhdHRhbj1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IyOiAuZGlzdGFuY2VUb01hbmhhdHRhbigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLm1hbmhhdHRhbkRpc3RhbmNlVG8oKS4iKSx0aGlzLm1hbmhhdHRhbkRpc3RhbmNlVG8odCl9LEM1dC5wcm90b3R5cGUubGVuZ3RoTWFuaGF0dGFuPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMjogLmxlbmd0aE1hbmhhdHRhbigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLm1hbmhhdHRhbkxlbmd0aCgpLiIpLHRoaXMubWFuaGF0dGFuTGVuZ3RoKCl9LEg1dC5wcm90b3R5cGUuc2V0RXVsZXJGcm9tUm90YXRpb25NYXRyaXg9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5WZWN0b3IzOiAuc2V0RXVsZXJGcm9tUm90YXRpb25NYXRyaXgoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgRXVsZXIuc2V0RnJvbVJvdGF0aW9uTWF0cml4KCkgaW5zdGVhZC4iKX0sSDV0LnByb3RvdHlwZS5zZXRFdWxlckZyb21RdWF0ZXJuaW9uPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuVmVjdG9yMzogLnNldEV1bGVyRnJvbVF1YXRlcm5pb24oKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgRXVsZXIuc2V0RnJvbVF1YXRlcm5pb24oKSBpbnN0ZWFkLiIpfSxINXQucHJvdG90eXBlLmdldFBvc2l0aW9uRnJvbU1hdHJpeD1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAuZ2V0UG9zaXRpb25Gcm9tTWF0cml4KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCkuIiksdGhpcy5zZXRGcm9tTWF0cml4UG9zaXRpb24odCl9LEg1dC5wcm90b3R5cGUuZ2V0U2NhbGVGcm9tTWF0cml4PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5nZXRTY2FsZUZyb21NYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tTWF0cml4U2NhbGUoKS4iKSx0aGlzLnNldEZyb21NYXRyaXhTY2FsZSh0KX0sSDV0LnByb3RvdHlwZS5nZXRDb2x1bW5Gcm9tTWF0cml4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmdldENvbHVtbkZyb21NYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tTWF0cml4Q29sdW1uKCkuIiksdGhpcy5zZXRGcm9tTWF0cml4Q29sdW1uKGUsdCl9LEg1dC5wcm90b3R5cGUuYXBwbHlQcm9qZWN0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5hcHBseVByb2plY3Rpb24oKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLmFwcGx5TWF0cml4NCggbSApIGluc3RlYWQuIiksdGhpcy5hcHBseU1hdHJpeDQodCl9LEg1dC5wcm90b3R5cGUuZnJvbUF0dHJpYnV0ZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmZyb21BdHRyaWJ1dGUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5mcm9tQnVmZmVyQXR0cmlidXRlKCkuIiksdGhpcy5mcm9tQnVmZmVyQXR0cmlidXRlKHQsZSxuKX0sSDV0LnByb3RvdHlwZS5kaXN0YW5jZVRvTWFuaGF0dGFuPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5kaXN0YW5jZVRvTWFuaGF0dGFuKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAubWFuaGF0dGFuRGlzdGFuY2VUbygpLiIpLHRoaXMubWFuaGF0dGFuRGlzdGFuY2VUbyh0KX0sSDV0LnByb3RvdHlwZS5sZW5ndGhNYW5oYXR0YW49ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAubGVuZ3RoTWFuaGF0dGFuKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAubWFuaGF0dGFuTGVuZ3RoKCkuIiksdGhpcy5tYW5oYXR0YW5MZW5ndGgoKX0sUjV0LnByb3RvdHlwZS5mcm9tQXR0cmlidXRlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3I0OiAuZnJvbUF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmZyb21CdWZmZXJBdHRyaWJ1dGUoKS4iKSx0aGlzLmZyb21CdWZmZXJBdHRyaWJ1dGUodCxlLG4pfSxSNXQucHJvdG90eXBlLmxlbmd0aE1hbmhhdHRhbj1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjQ6IC5sZW5ndGhNYW5oYXR0YW4oKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5tYW5oYXR0YW5MZW5ndGgoKS4iKSx0aGlzLm1hbmhhdHRhbkxlbmd0aCgpfSxWM3QucHJvdG90eXBlLmdldENoaWxkQnlOYW1lPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdDNEOiAuZ2V0Q2hpbGRCeU5hbWUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5nZXRPYmplY3RCeU5hbWUoKS4iKSx0aGlzLmdldE9iamVjdEJ5TmFtZSh0KX0sVjN0LnByb3RvdHlwZS5yZW5kZXJEZXB0aD1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC5yZW5kZXJEZXB0aCBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLnJlbmRlck9yZGVyLCBpbnN0ZWFkLiIpfSxWM3QucHJvdG90eXBlLnRyYW5zbGF0ZT1mdW5jdGlvbih0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdDNEOiAudHJhbnNsYXRlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC50cmFuc2xhdGVPbkF4aXMoIGF4aXMsIGRpc3RhbmNlICkgaW5zdGVhZC4iKSx0aGlzLnRyYW5zbGF0ZU9uQXhpcyhlLHQpfSxWM3QucHJvdG90eXBlLmdldFdvcmxkUm90YXRpb249ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5PYmplY3QzRDogLmdldFdvcmxkUm90YXRpb24oKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgVEhSRUUuT2JqZWN0M0QuZ2V0V29ybGRRdWF0ZXJuaW9uKCB0YXJnZXQgKSBpbnN0ZWFkLiIpfSxWM3QucHJvdG90eXBlLmFwcGx5TWF0cml4PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdDNEOiAuYXBwbHlNYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5hcHBseU1hdHJpeDQoKS4iKSx0aGlzLmFwcGx5TWF0cml4NCh0KX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoVjN0LnByb3RvdHlwZSx7ZXVsZXJPcmRlcjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC5ldWxlck9yZGVyIGlzIG5vdyAucm90YXRpb24ub3JkZXIuIiksdGhpcy5yb3RhdGlvbi5vcmRlcn0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC5ldWxlck9yZGVyIGlzIG5vdyAucm90YXRpb24ub3JkZXIuIiksdGhpcy5yb3RhdGlvbi5vcmRlcj10fX0sdXNlUXVhdGVybmlvbjp7Z2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5PYmplY3QzRDogLnVzZVF1YXRlcm5pb24gaGFzIGJlZW4gcmVtb3ZlZC4gVGhlIGxpYnJhcnkgbm93IHVzZXMgcXVhdGVybmlvbnMgYnkgZGVmYXVsdC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5PYmplY3QzRDogLnVzZVF1YXRlcm5pb24gaGFzIGJlZW4gcmVtb3ZlZC4gVGhlIGxpYnJhcnkgbm93IHVzZXMgcXVhdGVybmlvbnMgYnkgZGVmYXVsdC4iKX19fSksSzR0LnByb3RvdHlwZS5zZXREcmF3TW9kZT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1lc2g6IC5zZXREcmF3TW9kZSgpIGhhcyBiZWVuIHJlbW92ZWQuIFRoZSByZW5kZXJlciBub3cgYWx3YXlzIGFzc3VtZXMgVEhSRUUuVHJpYW5nbGVzRHJhd01vZGUuIFRyYW5zZm9ybSB5b3VyIGdlb21ldHJ5IHZpYSBCdWZmZXJHZW9tZXRyeVV0aWxzLnRvVHJpYW5nbGVzRHJhd01vZGUoKSBpZiBuZWNlc3NhcnkuIil9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEs0dC5wcm90b3R5cGUse2RyYXdNb2RlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS5lcnJvcigiVEhSRUUuTWVzaDogLmRyYXdNb2RlIGhhcyBiZWVuIHJlbW92ZWQuIFRoZSByZW5kZXJlciBub3cgYWx3YXlzIGFzc3VtZXMgVEhSRUUuVHJpYW5nbGVzRHJhd01vZGUuIiksMH0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWVzaDogLmRyYXdNb2RlIGhhcyBiZWVuIHJlbW92ZWQuIFRoZSByZW5kZXJlciBub3cgYWx3YXlzIGFzc3VtZXMgVEhSRUUuVHJpYW5nbGVzRHJhd01vZGUuIFRyYW5zZm9ybSB5b3VyIGdlb21ldHJ5IHZpYSBCdWZmZXJHZW9tZXRyeVV0aWxzLnRvVHJpYW5nbGVzRHJhd01vZGUoKSBpZiBuZWNlc3NhcnkuIil9fX0pLEQ3dC5wcm90b3R5cGUuaW5pdEJvbmVzPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuU2tpbm5lZE1lc2g6IGluaXRCb25lcygpIGhhcyBiZWVuIHJlbW92ZWQuIil9LHI2dC5wcm90b3R5cGUuc2V0TGVucz1mdW5jdGlvbih0LGUpe2NvbnNvbGUud2FybigiVEhSRUUuUGVyc3BlY3RpdmVDYW1lcmEuc2V0TGVucyBpcyBkZXByZWNhdGVkLiBVc2UgLnNldEZvY2FsTGVuZ3RoIGFuZCAuZmlsbUdhdWdlIGZvciBhIHBob3RvZ3JhcGhpYyBzZXR1cC4iKSx2b2lkIDAhPT1lJiYodGhpcy5maWxtR2F1Z2U9ZSksdGhpcy5zZXRGb2NhbExlbmd0aCh0KX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoeG5lLnByb3RvdHlwZSx7b25seVNoYWRvdzp7c2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLm9ubHlTaGFkb3cgaGFzIGJlZW4gcmVtb3ZlZC4iKX19LHNoYWRvd0NhbWVyYUZvdjp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFGb3YgaXMgbm93IC5zaGFkb3cuY2FtZXJhLmZvdi4iKSx0aGlzLnNoYWRvdy5jYW1lcmEuZm92PXR9fSxzaGFkb3dDYW1lcmFMZWZ0OntzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYUxlZnQgaXMgbm93IC5zaGFkb3cuY2FtZXJhLmxlZnQuIiksdGhpcy5zaGFkb3cuY2FtZXJhLmxlZnQ9dH19LHNoYWRvd0NhbWVyYVJpZ2h0OntzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYVJpZ2h0IGlzIG5vdyAuc2hhZG93LmNhbWVyYS5yaWdodC4iKSx0aGlzLnNoYWRvdy5jYW1lcmEucmlnaHQ9dH19LHNoYWRvd0NhbWVyYVRvcDp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFUb3AgaXMgbm93IC5zaGFkb3cuY2FtZXJhLnRvcC4iKSx0aGlzLnNoYWRvdy5jYW1lcmEudG9wPXR9fSxzaGFkb3dDYW1lcmFCb3R0b206e3NldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93Q2FtZXJhQm90dG9tIGlzIG5vdyAuc2hhZG93LmNhbWVyYS5ib3R0b20uIiksdGhpcy5zaGFkb3cuY2FtZXJhLmJvdHRvbT10fX0sc2hhZG93Q2FtZXJhTmVhcjp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFOZWFyIGlzIG5vdyAuc2hhZG93LmNhbWVyYS5uZWFyLiIpLHRoaXMuc2hhZG93LmNhbWVyYS5uZWFyPXR9fSxzaGFkb3dDYW1lcmFGYXI6e3NldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93Q2FtZXJhRmFyIGlzIG5vdyAuc2hhZG93LmNhbWVyYS5mYXIuIiksdGhpcy5zaGFkb3cuY2FtZXJhLmZhcj10fX0sc2hhZG93Q2FtZXJhVmlzaWJsZTp7c2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYVZpc2libGUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG5ldyBUSFJFRS5DYW1lcmFIZWxwZXIoIGxpZ2h0LnNoYWRvdy5jYW1lcmEgKSBpbnN0ZWFkLiIpfX0sc2hhZG93Qmlhczp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dCaWFzIGlzIG5vdyAuc2hhZG93LmJpYXMuIiksdGhpcy5zaGFkb3cuYmlhcz10fX0sc2hhZG93RGFya25lc3M6e3NldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dEYXJrbmVzcyBoYXMgYmVlbiByZW1vdmVkLiIpfX0sc2hhZG93TWFwV2lkdGg6e3NldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93TWFwV2lkdGggaXMgbm93IC5zaGFkb3cubWFwU2l6ZS53aWR0aC4iKSx0aGlzLnNoYWRvdy5tYXBTaXplLndpZHRoPXR9fSxzaGFkb3dNYXBIZWlnaHQ6e3NldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93TWFwSGVpZ2h0IGlzIG5vdyAuc2hhZG93Lm1hcFNpemUuaGVpZ2h0LiIpLHRoaXMuc2hhZG93Lm1hcFNpemUuaGVpZ2h0PXR9fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGg0dC5wcm90b3R5cGUse2xlbmd0aDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAubGVuZ3RoIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSAuY291bnQgaW5zdGVhZC4iKSx0aGlzLmFycmF5Lmxlbmd0aH19LGR5bmFtaWM6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZTogLmR5bmFtaWMgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC51c2FnZSBpbnN0ZWFkLiIpLHRoaXMudXNhZ2U9PT1RMnR9LHNldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAuZHluYW1pYyBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnVzYWdlIGluc3RlYWQuIiksdGhpcy5zZXRVc2FnZShRMnQpfX19KSxoNHQucHJvdG90eXBlLnNldER5bmFtaWM9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAuc2V0RHluYW1pYygpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSAuc2V0VXNhZ2UoKSBpbnN0ZWFkLiIpLHRoaXMuc2V0VXNhZ2UoITA9PT10P1EydDpKMnQpLHRoaXN9LGg0dC5wcm90b3R5cGUuY29weUluZGljZXNBcnJheT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZTogLmNvcHlJbmRpY2VzQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxoNHQucHJvdG90eXBlLnNldEFycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAuc2V0QXJyYXkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIEJ1ZmZlckdlb21ldHJ5IC5zZXRBdHRyaWJ1dGUgdG8gcmVwbGFjZS9yZXNpemUgYXR0cmlidXRlIGJ1ZmZlcnMiKX0sTjR0LnByb3RvdHlwZS5hZGRJbmRleD1mdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuYWRkSW5kZXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRJbmRleCgpLiIpLHRoaXMuc2V0SW5kZXgodCl9LE40dC5wcm90b3R5cGUuYWRkQXR0cmlidXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5hZGRBdHRyaWJ1dGUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRBdHRyaWJ1dGUoKS4iKSxlJiZlLmlzQnVmZmVyQXR0cmlidXRlfHxlJiZlLmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGU/ImluZGV4Ij09PXQ/KGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnkuYWRkQXR0cmlidXRlOiBVc2UgLnNldEluZGV4KCkgZm9yIGluZGV4IGF0dHJpYnV0ZS4iKSx0aGlzLnNldEluZGV4KGUpLHRoaXMpOnRoaXMuc2V0QXR0cmlidXRlKHQsZSk6KGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5hZGRBdHRyaWJ1dGUoKSBub3cgZXhwZWN0cyAoIG5hbWUsIGF0dHJpYnV0ZSApLiIpLHRoaXMuc2V0QXR0cmlidXRlKHQsbmV3IGg0dChhcmd1bWVudHNbMV0sYXJndW1lbnRzWzJdKSkpfSxONHQucHJvdG90eXBlLmFkZERyYXdDYWxsPWZ1bmN0aW9uKHQsZSxuKXt2b2lkIDAhPT1uJiZjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuYWRkRHJhd0NhbGwoKSBubyBsb25nZXIgc3VwcG9ydHMgaW5kZXhPZmZzZXQuIiksY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmFkZERyYXdDYWxsKCkgaXMgbm93IC5hZGRHcm91cCgpLiIpLHRoaXMuYWRkR3JvdXAodCxlKX0sTjR0LnByb3RvdHlwZS5jbGVhckRyYXdDYWxscz1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5jbGVhckRyYXdDYWxscygpIGlzIG5vdyAuY2xlYXJHcm91cHMoKS4iKSx0aGlzLmNsZWFyR3JvdXBzKCl9LE40dC5wcm90b3R5cGUuY29tcHV0ZU9mZnNldHM9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuY29tcHV0ZU9mZnNldHMoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxONHQucHJvdG90eXBlLnJlbW92ZUF0dHJpYnV0ZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLnJlbW92ZUF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmRlbGV0ZUF0dHJpYnV0ZSgpLiIpLHRoaXMuZGVsZXRlQXR0cmlidXRlKHQpfSxONHQucHJvdG90eXBlLmFwcGx5TWF0cml4PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuYXBwbHlNYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5hcHBseU1hdHJpeDQoKS4iKSx0aGlzLmFwcGx5TWF0cml4NCh0KX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoTjR0LnByb3RvdHlwZSx7ZHJhd2NhbGxzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS5lcnJvcigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5kcmF3Y2FsbHMgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ3JvdXBzLiIpLHRoaXMuZ3JvdXBzfX0sb2Zmc2V0czp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5vZmZzZXRzIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdyb3Vwcy4iKSx0aGlzLmdyb3Vwc319fSksdTd0LnByb3RvdHlwZS5zZXREeW5hbWljPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkludGVybGVhdmVkQnVmZmVyOiAuc2V0RHluYW1pYygpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSAuc2V0VXNhZ2UoKSBpbnN0ZWFkLiIpLHRoaXMuc2V0VXNhZ2UoITA9PT10P1EydDpKMnQpLHRoaXN9LHU3dC5wcm90b3R5cGUuc2V0QXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5JbnRlcmxlYXZlZEJ1ZmZlcjogLnNldEFycmF5IGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBCdWZmZXJHZW9tZXRyeSAuc2V0QXR0cmlidXRlIHRvIHJlcGxhY2UvcmVzaXplIGF0dHJpYnV0ZSBidWZmZXJzIil9LGJlZS5wcm90b3R5cGUuZ2V0QXJyYXlzPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuRXh0cnVkZUdlb21ldHJ5OiAuZ2V0QXJyYXlzKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sYmVlLnByb3RvdHlwZS5hZGRTaGFwZUxpc3Q9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5FeHRydWRlR2VvbWV0cnk6IC5hZGRTaGFwZUxpc3QoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxiZWUucHJvdG90eXBlLmFkZFNoYXBlPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuRXh0cnVkZUdlb21ldHJ5OiAuYWRkU2hhcGUoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxjN3QucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5TY2VuZTogLmRpc3Bvc2UoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxOaWUucHJvdG90eXBlLm9uVXBkYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVW5pZm9ybTogLm9uVXBkYXRlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG9iamVjdC5vbkJlZm9yZVJlbmRlcigpIGluc3RlYWQuIiksdGhpc30sT2JqZWN0LmRlZmluZVByb3BlcnRpZXModDR0LnByb3RvdHlwZSx7d3JhcEFyb3VuZDp7Z2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5NYXRlcmlhbDogLndyYXBBcm91bmQgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5NYXRlcmlhbDogLndyYXBBcm91bmQgaGFzIGJlZW4gcmVtb3ZlZC4iKX19LG92ZXJkcmF3OntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAub3ZlcmRyYXcgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5NYXRlcmlhbDogLm92ZXJkcmF3IGhhcyBiZWVuIHJlbW92ZWQuIil9fSx3cmFwUkdCOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRlcmlhbDogLndyYXBSR0IgaGFzIGJlZW4gcmVtb3ZlZC4iKSxuZXcgczR0fX0sc2hhZGluZzp7Z2V0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuIit0aGlzLnR5cGUrIjogLnNoYWRpbmcgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIHRoZSBib29sZWFuIC5mbGF0U2hhZGluZyBpbnN0ZWFkLiIpfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS4iK3RoaXMudHlwZSsiOiAuc2hhZGluZyBoYXMgYmVlbiByZW1vdmVkLiBVc2UgdGhlIGJvb2xlYW4gLmZsYXRTaGFkaW5nIGluc3RlYWQuIiksdGhpcy5mbGF0U2hhZGluZz0xPT09dH19LHN0ZW5jaWxNYXNrOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS4iK3RoaXMudHlwZSsiOiAuc3RlbmNpbE1hc2sgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC5zdGVuY2lsRnVuY01hc2sgaW5zdGVhZC4iKSx0aGlzLnN0ZW5jaWxGdW5jTWFza30sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuIit0aGlzLnR5cGUrIjogLnN0ZW5jaWxNYXNrIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSAuc3RlbmNpbEZ1bmNNYXNrIGluc3RlYWQuIiksdGhpcy5zdGVuY2lsRnVuY01hc2s9dH19LHZlcnRleFRhbmdlbnRzOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6IC52ZXJ0ZXhUYW5nZW50cyBoYXMgYmVlbiByZW1vdmVkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6IC52ZXJ0ZXhUYW5nZW50cyBoYXMgYmVlbiByZW1vdmVkLiIpfX19KSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhuNnQucHJvdG90eXBlLHtkZXJpdmF0aXZlczp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuU2hhZGVyTWF0ZXJpYWw6IC5kZXJpdmF0aXZlcyBoYXMgYmVlbiBtb3ZlZCB0byAuZXh0ZW5zaW9ucy5kZXJpdmF0aXZlcy4iKSx0aGlzLmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXN9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLiBTaGFkZXJNYXRlcmlhbDogLmRlcml2YXRpdmVzIGhhcyBiZWVuIG1vdmVkIHRvIC5leHRlbnNpb25zLmRlcml2YXRpdmVzLiIpLHRoaXMuZXh0ZW5zaW9ucy5kZXJpdmF0aXZlcz10fX19KSxvN3QucHJvdG90eXBlLmNsZWFyVGFyZ2V0PWZ1bmN0aW9uKHQsZSxuLGkpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmNsZWFyVGFyZ2V0KCkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC5zZXRSZW5kZXJUYXJnZXQoKSBhbmQgLmNsZWFyKCkgaW5zdGVhZC4iKSx0aGlzLnNldFJlbmRlclRhcmdldCh0KSx0aGlzLmNsZWFyKGUsbixpKX0sbzd0LnByb3RvdHlwZS5hbmltYXRlPWZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmFuaW1hdGUoKSBpcyBub3cgLnNldEFuaW1hdGlvbkxvb3AoKS4iKSx0aGlzLnNldEFuaW1hdGlvbkxvb3AodCl9LG83dC5wcm90b3R5cGUuZ2V0Q3VycmVudFJlbmRlclRhcmdldD1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nZXRDdXJyZW50UmVuZGVyVGFyZ2V0KCkgaXMgbm93IC5nZXRSZW5kZXJUYXJnZXQoKS4iKSx0aGlzLmdldFJlbmRlclRhcmdldCgpfSxvN3QucHJvdG90eXBlLmdldE1heEFuaXNvdHJvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2V0TWF4QW5pc290cm9weSgpIGlzIG5vdyAuY2FwYWJpbGl0aWVzLmdldE1heEFuaXNvdHJvcHkoKS4iKSx0aGlzLmNhcGFiaWxpdGllcy5nZXRNYXhBbmlzb3Ryb3B5KCl9LG83dC5wcm90b3R5cGUuZ2V0UHJlY2lzaW9uPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmdldFByZWNpc2lvbigpIGlzIG5vdyAuY2FwYWJpbGl0aWVzLnByZWNpc2lvbi4iKSx0aGlzLmNhcGFiaWxpdGllcy5wcmVjaXNpb259LG83dC5wcm90b3R5cGUucmVzZXRHTFN0YXRlPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnJlc2V0R0xTdGF0ZSgpIGlzIG5vdyAuc3RhdGUucmVzZXQoKS4iKSx0aGlzLnN0YXRlLnJlc2V0KCl9LG83dC5wcm90b3R5cGUuc3VwcG9ydHNGbG9hdFRleHR1cmVzPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzRmxvYXRUZXh0dXJlcygpIGlzIG5vdyAuZXh0ZW5zaW9ucy5nZXQoICdPRVNfdGV4dHVyZV9mbG9hdCcgKS4iKSx0aGlzLmV4dGVuc2lvbnMuZ2V0KCJPRVNfdGV4dHVyZV9mbG9hdCIpfSxvN3QucHJvdG90eXBlLnN1cHBvcnRzSGFsZkZsb2F0VGV4dHVyZXM9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc3VwcG9ydHNIYWxmRmxvYXRUZXh0dXJlcygpIGlzIG5vdyAuZXh0ZW5zaW9ucy5nZXQoICdPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0JyApLiIpLHRoaXMuZXh0ZW5zaW9ucy5nZXQoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKX0sbzd0LnByb3RvdHlwZS5zdXBwb3J0c1N0YW5kYXJkRGVyaXZhdGl2ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc3VwcG9ydHNTdGFuZGFyZERlcml2YXRpdmVzKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcycgKS4iKSx0aGlzLmV4dGVuc2lvbnMuZ2V0KCJPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKX0sbzd0LnByb3RvdHlwZS5zdXBwb3J0c0NvbXByZXNzZWRUZXh0dXJlUzNUQz1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zdXBwb3J0c0NvbXByZXNzZWRUZXh0dXJlUzNUQygpIGlzIG5vdyAuZXh0ZW5zaW9ucy5nZXQoICdXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YycgKS4iKSx0aGlzLmV4dGVuc2lvbnMuZ2V0KCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpfSxvN3QucHJvdG90eXBlLnN1cHBvcnRzQ29tcHJlc3NlZFRleHR1cmVQVlJUQz1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zdXBwb3J0c0NvbXByZXNzZWRUZXh0dXJlUFZSVEMoKSBpcyBub3cgLmV4dGVuc2lvbnMuZ2V0KCAnV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjJyApLiIpLHRoaXMuZXh0ZW5zaW9ucy5nZXQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIpfSxvN3QucHJvdG90eXBlLnN1cHBvcnRzQmxlbmRNaW5NYXg9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc3VwcG9ydHNCbGVuZE1pbk1heCgpIGlzIG5vdyAuZXh0ZW5zaW9ucy5nZXQoICdFWFRfYmxlbmRfbWlubWF4JyApLiIpLHRoaXMuZXh0ZW5zaW9ucy5nZXQoIkVYVF9ibGVuZF9taW5tYXgiKX0sbzd0LnByb3RvdHlwZS5zdXBwb3J0c1ZlcnRleFRleHR1cmVzPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzVmVydGV4VGV4dHVyZXMoKSBpcyBub3cgLmNhcGFiaWxpdGllcy52ZXJ0ZXhUZXh0dXJlcy4iKSx0aGlzLmNhcGFiaWxpdGllcy52ZXJ0ZXhUZXh0dXJlc30sbzd0LnByb3RvdHlwZS5zdXBwb3J0c0luc3RhbmNlZEFycmF5cz1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zdXBwb3J0c0luc3RhbmNlZEFycmF5cygpIGlzIG5vdyAuZXh0ZW5zaW9ucy5nZXQoICdBTkdMRV9pbnN0YW5jZWRfYXJyYXlzJyApLiIpLHRoaXMuZXh0ZW5zaW9ucy5nZXQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKX0sbzd0LnByb3RvdHlwZS5lbmFibGVTY2lzc29yVGVzdD1mdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5lbmFibGVTY2lzc29yVGVzdCgpIGlzIG5vdyAuc2V0U2Npc3NvclRlc3QoKS4iKSx0aGlzLnNldFNjaXNzb3JUZXN0KHQpfSxvN3QucHJvdG90eXBlLmluaXRNYXRlcmlhbD1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmluaXRNYXRlcmlhbCgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LG83dC5wcm90b3R5cGUuYWRkUHJlUGx1Z2luPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuYWRkUHJlUGx1Z2luKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sbzd0LnByb3RvdHlwZS5hZGRQb3N0UGx1Z2luPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuYWRkUG9zdFBsdWdpbigpIGhhcyBiZWVuIHJlbW92ZWQuIil9LG83dC5wcm90b3R5cGUudXBkYXRlU2hhZG93TWFwPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAudXBkYXRlU2hhZG93TWFwKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sbzd0LnByb3RvdHlwZS5zZXRGYWNlQ3VsbGluZz1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNldEZhY2VDdWxsaW5nKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sbzd0LnByb3RvdHlwZS5hbGxvY1RleHR1cmVVbml0PWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuYWxsb2NUZXh0dXJlVW5pdCgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LG83dC5wcm90b3R5cGUuc2V0VGV4dHVyZT1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNldFRleHR1cmUoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxvN3QucHJvdG90eXBlLnNldFRleHR1cmUyRD1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNldFRleHR1cmUyRCgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LG83dC5wcm90b3R5cGUuc2V0VGV4dHVyZUN1YmU9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zZXRUZXh0dXJlQ3ViZSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LG83dC5wcm90b3R5cGUuZ2V0QWN0aXZlTWlwTWFwTGV2ZWw9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2V0QWN0aXZlTWlwTWFwTGV2ZWwoKSBpcyBub3cgLmdldEFjdGl2ZU1pcG1hcExldmVsKCkuIiksdGhpcy5nZXRBY3RpdmVNaXBtYXBMZXZlbCgpfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhvN3QucHJvdG90eXBlLHtzaGFkb3dNYXBFbmFibGVkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaGFkb3dNYXAuZW5hYmxlZH0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNoYWRvd01hcEVuYWJsZWQgaXMgbm93IC5zaGFkb3dNYXAuZW5hYmxlZC4iKSx0aGlzLnNoYWRvd01hcC5lbmFibGVkPXR9fSxzaGFkb3dNYXBUeXBlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaGFkb3dNYXAudHlwZX0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNoYWRvd01hcFR5cGUgaXMgbm93IC5zaGFkb3dNYXAudHlwZS4iKSx0aGlzLnNoYWRvd01hcC50eXBlPXR9fSxzaGFkb3dNYXBDdWxsRmFjZTp7Z2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwQ3VsbEZhY2UgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwQ3VsbEZhY2UgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX19LGNvbnRleHQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5jb250ZXh0IGhhcyBiZWVuIHJlbW92ZWQuIFVzZSAuZ2V0Q29udGV4dCgpIGluc3RlYWQuIiksdGhpcy5nZXRDb250ZXh0KCl9fSx2cjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnZyIGhhcyBiZWVuIHJlbmFtZWQgdG8gLnhyIiksdGhpcy54cn19LGdhbW1hSW5wdXQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nYW1tYUlucHV0IGhhcyBiZWVuIHJlbW92ZWQuIFNldCB0aGUgZW5jb2RpbmcgZm9yIHRleHR1cmVzIHZpYSBUZXh0dXJlLmVuY29kaW5nIGluc3RlYWQuIiksITF9LHNldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmdhbW1hSW5wdXQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IHRoZSBlbmNvZGluZyBmb3IgdGV4dHVyZXMgdmlhIFRleHR1cmUuZW5jb2RpbmcgaW5zdGVhZC4iKX19LGdhbW1hT3V0cHV0OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2FtbWFPdXRwdXQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IFdlYkdMUmVuZGVyZXIub3V0cHV0RW5jb2RpbmcgaW5zdGVhZC4iKSwhMX0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmdhbW1hT3V0cHV0IGhhcyBiZWVuIHJlbW92ZWQuIFNldCBXZWJHTFJlbmRlcmVyLm91dHB1dEVuY29kaW5nIGluc3RlYWQuIiksdGhpcy5vdXRwdXRFbmNvZGluZz0hMD09PXQ/VzJ0OkcydH19LHRvbmVNYXBwaW5nV2hpdGVQb2ludDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnRvbmVNYXBwaW5nV2hpdGVQb2ludCBoYXMgYmVlbiByZW1vdmVkLiIpLDF9LHNldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnRvbmVNYXBwaW5nV2hpdGVQb2ludCBoYXMgYmVlbiByZW1vdmVkLiIpfX19KSxPYmplY3QuZGVmaW5lUHJvcGVydGllcygkOHQucHJvdG90eXBlLHtjdWxsRmFjZTp7Z2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwLmN1bGxGYWNlIGhhcyBiZWVuIHJlbW92ZWQuIFNldCBNYXRlcmlhbC5zaGFkb3dTaWRlIGluc3RlYWQuIil9LHNldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNoYWRvd01hcC5jdWxsRmFjZSBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfX0scmVuZGVyUmV2ZXJzZVNpZGVkOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXAucmVuZGVyUmV2ZXJzZVNpZGVkIGhhcyBiZWVuIHJlbW92ZWQuIFNldCBNYXRlcmlhbC5zaGFkb3dTaWRlIGluc3RlYWQuIil9LHNldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNoYWRvd01hcC5yZW5kZXJSZXZlcnNlU2lkZWQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX19LHJlbmRlclNpbmdsZVNpZGVkOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXAucmVuZGVyU2luZ2xlU2lkZWQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwLnJlbmRlclNpbmdsZVNpZGVkIGhhcyBiZWVuIHJlbW92ZWQuIFNldCBNYXRlcmlhbC5zaGFkb3dTaWRlIGluc3RlYWQuIil9fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKE81dC5wcm90b3R5cGUse3dyYXBTOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLndyYXBTIGlzIG5vdyAudGV4dHVyZS53cmFwUy4iKSx0aGlzLnRleHR1cmUud3JhcFN9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAud3JhcFMgaXMgbm93IC50ZXh0dXJlLndyYXBTLiIpLHRoaXMudGV4dHVyZS53cmFwUz10fX0sd3JhcFQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAud3JhcFQgaXMgbm93IC50ZXh0dXJlLndyYXBULiIpLHRoaXMudGV4dHVyZS53cmFwVH0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC53cmFwVCBpcyBub3cgLnRleHR1cmUud3JhcFQuIiksdGhpcy50ZXh0dXJlLndyYXBUPXR9fSxtYWdGaWx0ZXI6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAubWFnRmlsdGVyIGlzIG5vdyAudGV4dHVyZS5tYWdGaWx0ZXIuIiksdGhpcy50ZXh0dXJlLm1hZ0ZpbHRlcn0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5tYWdGaWx0ZXIgaXMgbm93IC50ZXh0dXJlLm1hZ0ZpbHRlci4iKSx0aGlzLnRleHR1cmUubWFnRmlsdGVyPXR9fSxtaW5GaWx0ZXI6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAubWluRmlsdGVyIGlzIG5vdyAudGV4dHVyZS5taW5GaWx0ZXIuIiksdGhpcy50ZXh0dXJlLm1pbkZpbHRlcn0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5taW5GaWx0ZXIgaXMgbm93IC50ZXh0dXJlLm1pbkZpbHRlci4iKSx0aGlzLnRleHR1cmUubWluRmlsdGVyPXR9fSxhbmlzb3Ryb3B5OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLmFuaXNvdHJvcHkgaXMgbm93IC50ZXh0dXJlLmFuaXNvdHJvcHkuIiksdGhpcy50ZXh0dXJlLmFuaXNvdHJvcHl9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAuYW5pc290cm9weSBpcyBub3cgLnRleHR1cmUuYW5pc290cm9weS4iKSx0aGlzLnRleHR1cmUuYW5pc290cm9weT10fX0sb2Zmc2V0OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLm9mZnNldCBpcyBub3cgLnRleHR1cmUub2Zmc2V0LiIpLHRoaXMudGV4dHVyZS5vZmZzZXR9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAub2Zmc2V0IGlzIG5vdyAudGV4dHVyZS5vZmZzZXQuIiksdGhpcy50ZXh0dXJlLm9mZnNldD10fX0scmVwZWF0OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLnJlcGVhdCBpcyBub3cgLnRleHR1cmUucmVwZWF0LiIpLHRoaXMudGV4dHVyZS5yZXBlYXR9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAucmVwZWF0IGlzIG5vdyAudGV4dHVyZS5yZXBlYXQuIiksdGhpcy50ZXh0dXJlLnJlcGVhdD10fX0sZm9ybWF0OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLmZvcm1hdCBpcyBub3cgLnRleHR1cmUuZm9ybWF0LiIpLHRoaXMudGV4dHVyZS5mb3JtYXR9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAuZm9ybWF0IGlzIG5vdyAudGV4dHVyZS5mb3JtYXQuIiksdGhpcy50ZXh0dXJlLmZvcm1hdD10fX0sdHlwZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC50eXBlIGlzIG5vdyAudGV4dHVyZS50eXBlLiIpLHRoaXMudGV4dHVyZS50eXBlfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLnR5cGUgaXMgbm93IC50ZXh0dXJlLnR5cGUuIiksdGhpcy50ZXh0dXJlLnR5cGU9dH19LGdlbmVyYXRlTWlwbWFwczp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5nZW5lcmF0ZU1pcG1hcHMgaXMgbm93IC50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcy4iKSx0aGlzLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLmdlbmVyYXRlTWlwbWFwcyBpcyBub3cgLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzLiIpLHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHM9dH19fSksaGllLnByb3RvdHlwZS5sb2FkPWZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuQXVkaW86IC5sb2FkIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSBUSFJFRS5BdWRpb0xvYWRlciBpbnN0ZWFkLiIpO2NvbnN0IGU9dGhpcztyZXR1cm4obmV3IHRpZSkubG9hZCh0LChmdW5jdGlvbih0KXtlLnNldEJ1ZmZlcih0KX0pKSx0aGlzfSxnaWUucHJvdG90eXBlLmdldERhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5BdWRpb0FuYWx5c2VyOiAuZ2V0RGF0YSgpIGlzIG5vdyAuZ2V0RnJlcXVlbmN5RGF0YSgpLiIpLHRoaXMuZ2V0RnJlcXVlbmN5RGF0YSgpfSxhNnQucHJvdG90eXBlLnVwZGF0ZUN1YmVNYXA9ZnVuY3Rpb24odCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5DdWJlQ2FtZXJhOiAudXBkYXRlQ3ViZU1hcCgpIGlzIG5vdyAudXBkYXRlKCkuIiksdGhpcy51cGRhdGUodCxlKX0sYTZ0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5DdWJlQ2FtZXJhOiAuY2xlYXIoKSBpcyBub3cgLnJlbmRlclRhcmdldC5jbGVhcigpLiIpLHRoaXMucmVuZGVyVGFyZ2V0LmNsZWFyKHQsZSxuLGkpfSxMNXQuY3Jvc3NPcmlnaW49dm9pZCAwLEw1dC5sb2FkVGV4dHVyZT1mdW5jdGlvbih0LGUsbixpKXtjb25zb2xlLndhcm4oIlRIUkVFLkltYWdlVXRpbHMubG9hZFRleHR1cmUgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIFRIUkVFLlRleHR1cmVMb2FkZXIoKSBpbnN0ZWFkLiIpO2NvbnN0IHI9bmV3IF9uZTtyLnNldENyb3NzT3JpZ2luKHRoaXMuY3Jvc3NPcmlnaW4pO2NvbnN0IG89ci5sb2FkKHQsbix2b2lkIDAsaSk7cmV0dXJuIGUmJihvLm1hcHBpbmc9ZSksb30sTDV0LmxvYWRUZXh0dXJlQ3ViZT1mdW5jdGlvbih0LGUsbixpKXtjb25zb2xlLndhcm4oIlRIUkVFLkltYWdlVXRpbHMubG9hZFRleHR1cmVDdWJlIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSBUSFJFRS5DdWJlVGV4dHVyZUxvYWRlcigpIGluc3RlYWQuIik7Y29uc3Qgcj1uZXcgbW5lO3Iuc2V0Q3Jvc3NPcmlnaW4odGhpcy5jcm9zc09yaWdpbik7Y29uc3Qgbz1yLmxvYWQodCxuLHZvaWQgMCxpKTtyZXR1cm4gZSYmKG8ubWFwcGluZz1lKSxvfSxMNXQubG9hZENvbXByZXNzZWRUZXh0dXJlPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuSW1hZ2VVdGlscy5sb2FkQ29tcHJlc3NlZFRleHR1cmUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIFRIUkVFLkREU0xvYWRlciBpbnN0ZWFkLiIpfSxMNXQubG9hZENvbXByZXNzZWRUZXh0dXJlQ3ViZT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkltYWdlVXRpbHMubG9hZENvbXByZXNzZWRUZXh0dXJlQ3ViZSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgVEhSRUUuRERTTG9hZGVyIGluc3RlYWQuIil9O2NvbnN0IGZyZT17Y3JlYXRlTXVsdGlNYXRlcmlhbE9iamVjdDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlNjZW5lVXRpbHMgaGFzIGJlZW4gbW92ZWQgdG8gL2V4YW1wbGVzL2pzbS91dGlscy9TY2VuZVV0aWxzLmpzIil9LGRldGFjaDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlNjZW5lVXRpbHMgaGFzIGJlZW4gbW92ZWQgdG8gL2V4YW1wbGVzL2pzbS91dGlscy9TY2VuZVV0aWxzLmpzIil9LGF0dGFjaDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlNjZW5lVXRpbHMgaGFzIGJlZW4gbW92ZWQgdG8gL2V4YW1wbGVzL2pzbS91dGlscy9TY2VuZVV0aWxzLmpzIil9fTsidW5kZWZpbmVkIiE9dHlwZW9mIF9fVEhSRUVfREVWVE9PTFNfXyYmX19USFJFRV9ERVZUT09MU19fLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZWdpc3RlciIse2RldGFpbDp7cmV2aXNpb246SzB0fX0pKSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5fX1RIUkVFX18/Y29uc29sZS53YXJuKCJXQVJOSU5HOiBNdWx0aXBsZSBpbnN0YW5jZXMgb2YgVGhyZWUuanMgYmVpbmcgaW1wb3J0ZWQuIik6d2luZG93Ll9fVEhSRUVfXz1LMHQpO3ZhciBtcmU9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsQUNFU0ZpbG1pY1RvbmVNYXBwaW5nOjQsQWRkRXF1YXRpb246UTB0LEFkZE9wZXJhdGlvbjoyLEFkZGl0aXZlQW5pbWF0aW9uQmxlbmRNb2RlOmoydCxBZGRpdGl2ZUJsZW5kaW5nOjIsQWxwaGFGb3JtYXQ6MTAyMSxBbHdheXNEZXB0aDoxLEFsd2F5c1N0ZW5jaWxGdW5jOjUxOSxBbWJpZW50TGlnaHQ6em5lLEFtYmllbnRMaWdodFByb2JlOm5pZSxBbmltYXRpb25DbGlwOmFuZSxBbmltYXRpb25Mb2FkZXI6Y2xhc3MgZXh0ZW5kcyBobmV7Y29uc3RydWN0b3IodCl7c3VwZXIodCl9bG9hZCh0LGUsbixpKXtjb25zdCByPXRoaXMsbz1uZXcgcG5lKHRoaXMubWFuYWdlcik7by5zZXRQYXRoKHRoaXMucGF0aCksby5zZXRSZXF1ZXN0SGVhZGVyKHRoaXMucmVxdWVzdEhlYWRlciksby5zZXRXaXRoQ3JlZGVudGlhbHModGhpcy53aXRoQ3JlZGVudGlhbHMpLG8ubG9hZCh0LChmdW5jdGlvbihuKXt0cnl7ZShyLnBhcnNlKEpTT04ucGFyc2UobikpKX1jYXRjaChlKXtpP2koZSk6Y29uc29sZS5lcnJvcihlKSxyLm1hbmFnZXIuaXRlbUVycm9yKHQpfX0pLG4saSl9cGFyc2UodCl7Y29uc3QgZT1bXTtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7Y29uc3QgaT1hbmUucGFyc2UodFtuXSk7ZS5wdXNoKGkpfXJldHVybiBlfX0sQW5pbWF0aW9uTWl4ZXI6UGllLEFuaW1hdGlvbk9iamVjdEdyb3VwOmtpZSxBbmltYXRpb25VdGlsczpZZWUsQXJjQ3VydmU6QXRlLEFycmF5Q2FtZXJhOlE4dCxBcnJvd0hlbHBlcjpjbGFzcyBleHRlbmRzIFYzdHtjb25zdHJ1Y3Rvcih0PW5ldyBINXQoMCwwLDEpLGU9bmV3IEg1dCgwLDAsMCksbj0xLGk9MTY3NzY5NjAscj0uMipuLG89LjIqcil7c3VwZXIoKSx0aGlzLnR5cGU9IkFycm93SGVscGVyIix2b2lkIDA9PT1jcmUmJihjcmU9bmV3IE40dCxjcmUuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGI0dChbMCwwLDAsMCwxLDBdLDMpKSx1cmU9bmV3IF90ZSgwLC41LDEsNSwxKSx1cmUudHJhbnNsYXRlKDAsLS41LDApKSx0aGlzLnBvc2l0aW9uLmNvcHkoZSksdGhpcy5saW5lPW5ldyB0dGUoY3JlLG5ldyBYN3Qoe2NvbG9yOmksdG9uZU1hcHBlZDohMX0pKSx0aGlzLmxpbmUubWF0cml4QXV0b1VwZGF0ZT0hMSx0aGlzLmFkZCh0aGlzLmxpbmUpLHRoaXMuY29uZT1uZXcgSzR0KHVyZSxuZXcgbDR0KHtjb2xvcjppLHRvbmVNYXBwZWQ6ITF9KSksdGhpcy5jb25lLm1hdHJpeEF1dG9VcGRhdGU9ITEsdGhpcy5hZGQodGhpcy5jb25lKSx0aGlzLnNldERpcmVjdGlvbih0KSx0aGlzLnNldExlbmd0aChuLHIsbyl9c2V0RGlyZWN0aW9uKHQpe2lmKHQueT4uOTk5OTkpdGhpcy5xdWF0ZXJuaW9uLnNldCgwLDAsMCwxKTtlbHNlIGlmKHQueTwtLjk5OTk5KXRoaXMucXVhdGVybmlvbi5zZXQoMSwwLDAsMCk7ZWxzZXtscmUuc2V0KHQueiwwLC10LngpLm5vcm1hbGl6ZSgpO2NvbnN0IGU9TWF0aC5hY29zKHQueSk7dGhpcy5xdWF0ZXJuaW9uLnNldEZyb21BeGlzQW5nbGUobHJlLGUpfX1zZXRMZW5ndGgodCxlPS4yKnQsbj0uMiplKXt0aGlzLmxpbmUuc2NhbGUuc2V0KDEsTWF0aC5tYXgoMWUtNCx0LWUpLDEpLHRoaXMubGluZS51cGRhdGVNYXRyaXgoKSx0aGlzLmNvbmUuc2NhbGUuc2V0KG4sZSxuKSx0aGlzLmNvbmUucG9zaXRpb24ueT10LHRoaXMuY29uZS51cGRhdGVNYXRyaXgoKX1zZXRDb2xvcih0KXt0aGlzLmxpbmUubWF0ZXJpYWwuY29sb3Iuc2V0KHQpLHRoaXMuY29uZS5tYXRlcmlhbC5jb2xvci5zZXQodCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0LCExKSx0aGlzLmxpbmUuY29weSh0LmxpbmUpLHRoaXMuY29uZS5jb3B5KHQuY29uZSksdGhpc319LEF1ZGlvOmhpZSxBdWRpb0FuYWx5c2VyOmdpZSxBdWRpb0NvbnRleHQ6UW5lLEF1ZGlvTGlzdGVuZXI6Y2xhc3MgZXh0ZW5kcyBWM3R7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iQXVkaW9MaXN0ZW5lciIsdGhpcy5jb250ZXh0PVFuZS5nZXRDb250ZXh0KCksdGhpcy5nYWluPXRoaXMuY29udGV4dC5jcmVhdGVHYWluKCksdGhpcy5nYWluLmNvbm5lY3QodGhpcy5jb250ZXh0LmRlc3RpbmF0aW9uKSx0aGlzLmZpbHRlcj1udWxsLHRoaXMudGltZURlbHRhPTAsdGhpcy5fY2xvY2s9bmV3IG9pZX1nZXRJbnB1dCgpe3JldHVybiB0aGlzLmdhaW59cmVtb3ZlRmlsdGVyKCl7cmV0dXJuIG51bGwhPT10aGlzLmZpbHRlciYmKHRoaXMuZ2Fpbi5kaXNjb25uZWN0KHRoaXMuZmlsdGVyKSx0aGlzLmZpbHRlci5kaXNjb25uZWN0KHRoaXMuY29udGV4dC5kZXN0aW5hdGlvbiksdGhpcy5nYWluLmNvbm5lY3QodGhpcy5jb250ZXh0LmRlc3RpbmF0aW9uKSx0aGlzLmZpbHRlcj1udWxsKSx0aGlzfWdldEZpbHRlcigpe3JldHVybiB0aGlzLmZpbHRlcn1zZXRGaWx0ZXIodCl7cmV0dXJuIG51bGwhPT10aGlzLmZpbHRlcj8odGhpcy5nYWluLmRpc2Nvbm5lY3QodGhpcy5maWx0ZXIpLHRoaXMuZmlsdGVyLmRpc2Nvbm5lY3QodGhpcy5jb250ZXh0LmRlc3RpbmF0aW9uKSk6dGhpcy5nYWluLmRpc2Nvbm5lY3QodGhpcy5jb250ZXh0LmRlc3RpbmF0aW9uKSx0aGlzLmZpbHRlcj10LHRoaXMuZ2Fpbi5jb25uZWN0KHRoaXMuZmlsdGVyKSx0aGlzLmZpbHRlci5jb25uZWN0KHRoaXMuY29udGV4dC5kZXN0aW5hdGlvbiksdGhpc31nZXRNYXN0ZXJWb2x1bWUoKXtyZXR1cm4gdGhpcy5nYWluLmdhaW4udmFsdWV9c2V0TWFzdGVyVm9sdW1lKHQpe3JldHVybiB0aGlzLmdhaW4uZ2Fpbi5zZXRUYXJnZXRBdFRpbWUodCx0aGlzLmNvbnRleHQuY3VycmVudFRpbWUsLjAxKSx0aGlzfXVwZGF0ZU1hdHJpeFdvcmxkKHQpe3N1cGVyLnVwZGF0ZU1hdHJpeFdvcmxkKHQpO2NvbnN0IGU9dGhpcy5jb250ZXh0Lmxpc3RlbmVyLG49dGhpcy51cDtpZih0aGlzLnRpbWVEZWx0YT10aGlzLl9jbG9jay5nZXREZWx0YSgpLHRoaXMubWF0cml4V29ybGQuZGVjb21wb3NlKHNpZSxsaWUsY2llKSx1aWUuc2V0KDAsMCwtMSkuYXBwbHlRdWF0ZXJuaW9uKGxpZSksZS5wb3NpdGlvblgpe2NvbnN0IHQ9dGhpcy5jb250ZXh0LmN1cnJlbnRUaW1lK3RoaXMudGltZURlbHRhO2UucG9zaXRpb25YLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHNpZS54LHQpLGUucG9zaXRpb25ZLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHNpZS55LHQpLGUucG9zaXRpb25aLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHNpZS56LHQpLGUuZm9yd2FyZFgubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodWllLngsdCksZS5mb3J3YXJkWS5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh1aWUueSx0KSxlLmZvcndhcmRaLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHVpZS56LHQpLGUudXBYLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKG4ueCx0KSxlLnVwWS5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZShuLnksdCksZS51cFoubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUobi56LHQpfWVsc2UgZS5zZXRQb3NpdGlvbihzaWUueCxzaWUueSxzaWUueiksZS5zZXRPcmllbnRhdGlvbih1aWUueCx1aWUueSx1aWUueixuLngsbi55LG4ueil9fSxBdWRpb0xvYWRlcjp0aWUsQXhlc0hlbHBlcjpocmUsQXhpc0hlbHBlcjpmdW5jdGlvbiBncmUodCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQXhpc0hlbHBlciBoYXMgYmVlbiByZW5hbWVkIHRvIFRIUkVFLkF4ZXNIZWxwZXIuIiksbmV3IGhyZSh0KX0sQmFja1NpZGU6MSxCYXNpY0RlcHRoUGFja2luZzozMjAwLEJhc2ljU2hhZG93TWFwOjAsQmluYXJ5VGV4dHVyZUxvYWRlcjpmdW5jdGlvbiBfcmUodCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQmluYXJ5VGV4dHVyZUxvYWRlciBoYXMgYmVlbiByZW5hbWVkIHRvIFRIUkVFLkRhdGFUZXh0dXJlTG9hZGVyLiIpLG5ldyBnbmUodCl9LEJvbmU6Qjd0LEJvb2xlYW5LZXlmcmFtZVRyYWNrOlFlZSxCb3VuZGluZ0JveEhlbHBlcjpmdW5jdGlvbiB5cmUodCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5Cb3VuZGluZ0JveEhlbHBlciBoYXMgYmVlbiBkZXByZWNhdGVkLiBDcmVhdGluZyBhIFRIUkVFLkJveEhlbHBlciBpbnN0ZWFkLiIpLG5ldyBzcmUodCxlKX0sQm94MjpIaWUsQm94MzpVNXQsQm94M0hlbHBlcjpjbGFzcyBleHRlbmRzIGl0ZXtjb25zdHJ1Y3Rvcih0LGU9MTY3NzY5NjApe2NvbnN0IG49bmV3IFVpbnQxNkFycmF5KFswLDEsMSwyLDIsMywzLDAsNCw1LDUsNiw2LDcsNyw0LDAsNCwxLDUsMiw2LDMsN10pLGk9bmV3IE40dDtpLnNldEluZGV4KG5ldyBoNHQobiwxKSksaS5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgYjR0KFsxLDEsMSwtMSwxLDEsLTEsLTEsMSwxLC0xLDEsMSwxLC0xLC0xLDEsLTEsLTEsLTEsLTEsMSwtMSwtMV0sMykpLHN1cGVyKGksbmV3IFg3dCh7Y29sb3I6ZSx0b25lTWFwcGVkOiExfSkpLHRoaXMuYm94PXQsdGhpcy50eXBlPSJCb3gzSGVscGVyIix0aGlzLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpfXVwZGF0ZU1hdHJpeFdvcmxkKHQpe2NvbnN0IGU9dGhpcy5ib3g7ZS5pc0VtcHR5KCl8fChlLmdldENlbnRlcih0aGlzLnBvc2l0aW9uKSxlLmdldFNpemUodGhpcy5zY2FsZSksdGhpcy5zY2FsZS5tdWx0aXBseVNjYWxhciguNSksc3VwZXIudXBkYXRlTWF0cml4V29ybGQodCkpfX0sQm94QnVmZmVyR2VvbWV0cnk6SjR0LEJveEdlb21ldHJ5Oko0dCxCb3hIZWxwZXI6c3JlLEJ1ZmZlckF0dHJpYnV0ZTpoNHQsQnVmZmVyR2VvbWV0cnk6TjR0LEJ1ZmZlckdlb21ldHJ5TG9hZGVyOkduZSxCeXRlVHlwZToxMDEwLENhY2hlOmxuZSxDYW1lcmE6aTZ0LENhbWVyYUhlbHBlcjpjbGFzcyBleHRlbmRzIGl0ZXtjb25zdHJ1Y3Rvcih0KXtjb25zdCBlPW5ldyBONHQsbj1uZXcgWDd0KHtjb2xvcjoxNjc3NzIxNSx2ZXJ0ZXhDb2xvcnM6ITAsdG9uZU1hcHBlZDohMX0pLGk9W10scj1bXSxvPXt9LGE9bmV3IHM0dCgxNjc1NTIwMCkscz1uZXcgczR0KDE2NzExNjgwKSxsPW5ldyBzNHQoNDM3NzUpLGM9bmV3IHM0dCgxNjc3NzIxNSksdT1uZXcgczR0KDMzNTU0NDMpO2Z1bmN0aW9uIGgodCxlLG4pe2QodCxuKSxkKGUsbil9ZnVuY3Rpb24gZCh0LGUpe2kucHVzaCgwLDAsMCksci5wdXNoKGUucixlLmcsZS5iKSx2b2lkIDA9PT1vW3RdJiYob1t0XT1bXSksb1t0XS5wdXNoKGkubGVuZ3RoLzMtMSl9aCgibjEiLCJuMiIsYSksaCgibjIiLCJuNCIsYSksaCgibjQiLCJuMyIsYSksaCgibjMiLCJuMSIsYSksaCgiZjEiLCJmMiIsYSksaCgiZjIiLCJmNCIsYSksaCgiZjQiLCJmMyIsYSksaCgiZjMiLCJmMSIsYSksaCgibjEiLCJmMSIsYSksaCgibjIiLCJmMiIsYSksaCgibjMiLCJmMyIsYSksaCgibjQiLCJmNCIsYSksaCgicCIsIm4xIixzKSxoKCJwIiwibjIiLHMpLGgoInAiLCJuMyIscyksaCgicCIsIm40IixzKSxoKCJ1MSIsInUyIixsKSxoKCJ1MiIsInUzIixsKSxoKCJ1MyIsInUxIixsKSxoKCJjIiwidCIsYyksaCgicCIsImMiLHUpLGgoImNuMSIsImNuMiIsdSksaCgiY24zIiwiY240Iix1KSxoKCJjZjEiLCJjZjIiLHUpLGgoImNmMyIsImNmNCIsdSksZS5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgYjR0KGksMykpLGUuc2V0QXR0cmlidXRlKCJjb2xvciIsbmV3IGI0dChyLDMpKSxzdXBlcihlLG4pLHRoaXMudHlwZT0iQ2FtZXJhSGVscGVyIix0aGlzLmNhbWVyYT10LHRoaXMuY2FtZXJhLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgmJnRoaXMuY2FtZXJhLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKSx0aGlzLm1hdHJpeD10Lm1hdHJpeFdvcmxkLHRoaXMubWF0cml4QXV0b1VwZGF0ZT0hMSx0aGlzLnBvaW50TWFwPW8sdGhpcy51cGRhdGUoKX11cGRhdGUoKXtjb25zdCB0PXRoaXMuZ2VvbWV0cnksZT10aGlzLnBvaW50TWFwO3JyZS5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZS5jb3B5KHRoaXMuY2FtZXJhLnByb2plY3Rpb25NYXRyaXhJbnZlcnNlKSxvcmUoImMiLGUsdCxycmUsMCwwLC0xKSxvcmUoInQiLGUsdCxycmUsMCwwLDEpLG9yZSgibjEiLGUsdCxycmUsLTEsLTEsLTEpLG9yZSgibjIiLGUsdCxycmUsMSwtMSwtMSksb3JlKCJuMyIsZSx0LHJyZSwtMSwxLC0xKSxvcmUoIm40IixlLHQscnJlLDEsMSwtMSksb3JlKCJmMSIsZSx0LHJyZSwtMSwtMSwxKSxvcmUoImYyIixlLHQscnJlLDEsLTEsMSksb3JlKCJmMyIsZSx0LHJyZSwtMSwxLDEpLG9yZSgiZjQiLGUsdCxycmUsMSwxLDEpLG9yZSgidTEiLGUsdCxycmUsLjcsMS4xLC0xKSxvcmUoInUyIixlLHQscnJlLC0uNywxLjEsLTEpLG9yZSgidTMiLGUsdCxycmUsMCwyLC0xKSxvcmUoImNmMSIsZSx0LHJyZSwtMSwwLDEpLG9yZSgiY2YyIixlLHQscnJlLDEsMCwxKSxvcmUoImNmMyIsZSx0LHJyZSwwLC0xLDEpLG9yZSgiY2Y0IixlLHQscnJlLDAsMSwxKSxvcmUoImNuMSIsZSx0LHJyZSwtMSwwLC0xKSxvcmUoImNuMiIsZSx0LHJyZSwxLDAsLTEpLG9yZSgiY24zIixlLHQscnJlLDAsLTEsLTEpLG9yZSgiY240IixlLHQscnJlLDAsMSwtMSksdC5nZXRBdHRyaWJ1dGUoInBvc2l0aW9uIikubmVlZHNVcGRhdGU9ITB9ZGlzcG9zZSgpe3RoaXMuZ2VvbWV0cnkuZGlzcG9zZSgpLHRoaXMubWF0ZXJpYWwuZGlzcG9zZSgpfX0sQ2FudmFzUmVuZGVyZXI6ZnVuY3Rpb24gdnJlKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuQ2FudmFzUmVuZGVyZXIgaGFzIGJlZW4gcmVtb3ZlZCIpfSxDYW52YXNUZXh0dXJlOmZ0ZSxDYXRtdWxsUm9tQ3VydmUzOlJ0ZSxDaW5lb25Ub25lTWFwcGluZzozLENpcmNsZUJ1ZmZlckdlb21ldHJ5Omd0ZSxDaXJjbGVHZW9tZXRyeTpndGUsQ2xhbXBUb0VkZ2VXcmFwcGluZzpsMnQsQ2xvY2s6b2llLENvbG9yOnM0dCxDb2xvcktleWZyYW1lVHJhY2s6dG5lLENvbXByZXNzZWRUZXh0dXJlOnB0ZSxDb21wcmVzc2VkVGV4dHVyZUxvYWRlcjpjbGFzcyBleHRlbmRzIGhuZXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1sb2FkKHQsZSxuLGkpe2NvbnN0IHI9dGhpcyxvPVtdLGE9bmV3IHB0ZSxzPW5ldyBwbmUodGhpcy5tYW5hZ2VyKTtzLnNldFBhdGgodGhpcy5wYXRoKSxzLnNldFJlc3BvbnNlVHlwZSgiYXJyYXlidWZmZXIiKSxzLnNldFJlcXVlc3RIZWFkZXIodGhpcy5yZXF1ZXN0SGVhZGVyKSxzLnNldFdpdGhDcmVkZW50aWFscyhyLndpdGhDcmVkZW50aWFscyk7bGV0IGw9MDtmdW5jdGlvbiBjKGMpe3MubG9hZCh0W2NdLChmdW5jdGlvbih0KXtjb25zdCBuPXIucGFyc2UodCwhMCk7b1tjXT17d2lkdGg6bi53aWR0aCxoZWlnaHQ6bi5oZWlnaHQsZm9ybWF0Om4uZm9ybWF0LG1pcG1hcHM6bi5taXBtYXBzfSxsKz0xLDY9PT1sJiYoMT09PW4ubWlwbWFwQ291bnQmJihhLm1pbkZpbHRlcj1wMnQpLGEuaW1hZ2U9byxhLmZvcm1hdD1uLmZvcm1hdCxhLm5lZWRzVXBkYXRlPSEwLGUmJmUoYSkpfSksbixpKX1pZihBcnJheS5pc0FycmF5KHQpKWZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuOysrZSljKGUpO2Vsc2Ugcy5sb2FkKHQsKGZ1bmN0aW9uKHQpe2NvbnN0IG49ci5wYXJzZSh0LCEwKTtpZihuLmlzQ3ViZW1hcCl7Y29uc3QgdD1uLm1pcG1hcHMubGVuZ3RoL24ubWlwbWFwQ291bnQ7Zm9yKGxldCBlPTA7ZTx0O2UrKyl7b1tlXT17bWlwbWFwczpbXX07Zm9yKGxldCB0PTA7dDxuLm1pcG1hcENvdW50O3QrKylvW2VdLm1pcG1hcHMucHVzaChuLm1pcG1hcHNbZSpuLm1pcG1hcENvdW50K3RdKSxvW2VdLmZvcm1hdD1uLmZvcm1hdCxvW2VdLndpZHRoPW4ud2lkdGgsb1tlXS5oZWlnaHQ9bi5oZWlnaHR9YS5pbWFnZT1vfWVsc2UgYS5pbWFnZS53aWR0aD1uLndpZHRoLGEuaW1hZ2UuaGVpZ2h0PW4uaGVpZ2h0LGEubWlwbWFwcz1uLm1pcG1hcHM7MT09PW4ubWlwbWFwQ291bnQmJihhLm1pbkZpbHRlcj1wMnQpLGEuZm9ybWF0PW4uZm9ybWF0LGEubmVlZHNVcGRhdGU9ITAsZSYmZShhKX0pLG4saSk7cmV0dXJuIGF9fSxDb25lQnVmZmVyR2VvbWV0cnk6eXRlLENvbmVHZW9tZXRyeTp5dGUsQ3ViZUNhbWVyYTphNnQsQ3ViZVJlZmxlY3Rpb25NYXBwaW5nOmUydCxDdWJlUmVmcmFjdGlvbk1hcHBpbmc6bjJ0LEN1YmVUZXh0dXJlOnM2dCxDdWJlVGV4dHVyZUxvYWRlcjptbmUsQ3ViZVVWUmVmbGVjdGlvbk1hcHBpbmc6bzJ0LEN1YmVVVlJlZnJhY3Rpb25NYXBwaW5nOmEydCxDdWJpY0JlemllckN1cnZlOkJ0ZSxDdWJpY0JlemllckN1cnZlMzpIdGUsQ3ViaWNJbnRlcnBvbGFudDokZWUsQ3VsbEZhY2VCYWNrOjEsQ3VsbEZhY2VGcm9udDoyLEN1bGxGYWNlRnJvbnRCYWNrOjMsQ3VsbEZhY2VOb25lOjAsQ3VydmU6VHRlLEN1cnZlUGF0aDp5bmUsQ3VzdG9tQmxlbmRpbmc6NSxDdXN0b21Ub25lTWFwcGluZzo1LEN5bGluZGVyQnVmZmVyR2VvbWV0cnk6X3RlLEN5bGluZGVyR2VvbWV0cnk6X3RlLEN5bGluZHJpY2FsOmNsYXNze2NvbnN0cnVjdG9yKHQ9MSxlPTAsbj0wKXtyZXR1cm4gdGhpcy5yYWRpdXM9dCx0aGlzLnRoZXRhPWUsdGhpcy55PW4sdGhpc31zZXQodCxlLG4pe3JldHVybiB0aGlzLnJhZGl1cz10LHRoaXMudGhldGE9ZSx0aGlzLnk9bix0aGlzfWNvcHkodCl7cmV0dXJuIHRoaXMucmFkaXVzPXQucmFkaXVzLHRoaXMudGhldGE9dC50aGV0YSx0aGlzLnk9dC55LHRoaXN9c2V0RnJvbVZlY3RvcjModCl7cmV0dXJuIHRoaXMuc2V0RnJvbUNhcnRlc2lhbkNvb3Jkcyh0LngsdC55LHQueil9c2V0RnJvbUNhcnRlc2lhbkNvb3Jkcyh0LGUsbil7cmV0dXJuIHRoaXMucmFkaXVzPU1hdGguc3FydCh0KnQrbipuKSx0aGlzLnRoZXRhPU1hdGguYXRhbjIodCxuKSx0aGlzLnk9ZSx0aGlzfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfX0sRGF0YVRleHR1cmU6SDd0LERhdGFUZXh0dXJlMkRBcnJheTpoOXQsRGF0YVRleHR1cmUzRDpkOXQsRGF0YVRleHR1cmVMb2FkZXI6Z25lLERhdGFVdGlsczpjbGFzc3tzdGF0aWMgdG9IYWxmRmxvYXQodCl7ZHJlWzBdPXQ7Y29uc3QgZT1wcmVbMF07bGV0IG49ZT4+MTYmMzI3NjgsaT1lPj4xMiYyMDQ3O2NvbnN0IHI9ZT4+MjMmMjU1O3JldHVybiByPDEwMz9uOnI+MTQyPyhufD0zMTc0NCxufD0oMjU1PT1yPzA6MSkmJjgzODg2MDcmZSxuKTpyPDExMz8oaXw9MjA0OCxufD0oaT4+MTE0LXIpKyhpPj4xMTMtciYxKSxuKToobnw9ci0xMTI8PDEwfGk+PjEsbis9MSZpLG4pfX0sRGVjcmVtZW50U3RlbmNpbE9wOjc2ODMsRGVjcmVtZW50V3JhcFN0ZW5jaWxPcDozNDA1NixEZWZhdWx0TG9hZGluZ01hbmFnZXI6dW5lLERlcHRoRm9ybWF0Ok0ydCxEZXB0aFN0ZW5jaWxGb3JtYXQ6RTJ0LERlcHRoVGV4dHVyZTptdGUsRGlyZWN0aW9uYWxMaWdodDpPbmUsRGlyZWN0aW9uYWxMaWdodEhlbHBlcjpjbGFzcyBleHRlbmRzIFYzdHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIoKSx0aGlzLmxpZ2h0PXQsdGhpcy5saWdodC51cGRhdGVNYXRyaXhXb3JsZCgpLHRoaXMubWF0cml4PXQubWF0cml4V29ybGQsdGhpcy5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuY29sb3I9bix2b2lkIDA9PT1lJiYoZT0xKTtsZXQgaT1uZXcgTjR0O2kuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGI0dChbLWUsZSwwLGUsZSwwLGUsLWUsMCwtZSwtZSwwLC1lLGUsMF0sMykpO2NvbnN0IHI9bmV3IFg3dCh7Zm9nOiExLHRvbmVNYXBwZWQ6ITF9KTt0aGlzLmxpZ2h0UGxhbmU9bmV3IHR0ZShpLHIpLHRoaXMuYWRkKHRoaXMubGlnaHRQbGFuZSksaT1uZXcgTjR0LGkuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGI0dChbMCwwLDAsMCwwLDFdLDMpKSx0aGlzLnRhcmdldExpbmU9bmV3IHR0ZShpLHIpLHRoaXMuYWRkKHRoaXMudGFyZ2V0TGluZSksdGhpcy51cGRhdGUoKX1kaXNwb3NlKCl7dGhpcy5saWdodFBsYW5lLmdlb21ldHJ5LmRpc3Bvc2UoKSx0aGlzLmxpZ2h0UGxhbmUubWF0ZXJpYWwuZGlzcG9zZSgpLHRoaXMudGFyZ2V0TGluZS5nZW9tZXRyeS5kaXNwb3NlKCksdGhpcy50YXJnZXRMaW5lLm1hdGVyaWFsLmRpc3Bvc2UoKX11cGRhdGUoKXt0cmUuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHRoaXMubGlnaHQubWF0cml4V29ybGQpLGVyZS5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5saWdodC50YXJnZXQubWF0cml4V29ybGQpLG5yZS5zdWJWZWN0b3JzKGVyZSx0cmUpLHRoaXMubGlnaHRQbGFuZS5sb29rQXQoZXJlKSx2b2lkIDAhPT10aGlzLmNvbG9yPyh0aGlzLmxpZ2h0UGxhbmUubWF0ZXJpYWwuY29sb3Iuc2V0KHRoaXMuY29sb3IpLHRoaXMudGFyZ2V0TGluZS5tYXRlcmlhbC5jb2xvci5zZXQodGhpcy5jb2xvcikpOih0aGlzLmxpZ2h0UGxhbmUubWF0ZXJpYWwuY29sb3IuY29weSh0aGlzLmxpZ2h0LmNvbG9yKSx0aGlzLnRhcmdldExpbmUubWF0ZXJpYWwuY29sb3IuY29weSh0aGlzLmxpZ2h0LmNvbG9yKSksdGhpcy50YXJnZXRMaW5lLmxvb2tBdChlcmUpLHRoaXMudGFyZ2V0TGluZS5zY2FsZS56PW5yZS5sZW5ndGgoKX19LERpc2NyZXRlSW50ZXJwb2xhbnQ6WmVlLERvZGVjYWhlZHJvbkJ1ZmZlckdlb21ldHJ5OmJ0ZSxEb2RlY2FoZWRyb25HZW9tZXRyeTpidGUsRG91YmxlU2lkZToyLERzdEFscGhhRmFjdG9yOjIwNixEc3RDb2xvckZhY3RvcjoyMDgsRHluYW1pY0J1ZmZlckF0dHJpYnV0ZTpmdW5jdGlvbiBicmUodCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5EeW5hbWljQnVmZmVyQXR0cmlidXRlIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKCkuc2V0VXNhZ2UoIFRIUkVFLkR5bmFtaWNEcmF3VXNhZ2UgKSBpbnN0ZWFkLiIpLG5ldyBoNHQodCxlKS5zZXRVc2FnZShRMnQpfSxEeW5hbWljQ29weVVzYWdlOjM1MDUwLER5bmFtaWNEcmF3VXNhZ2U6UTJ0LER5bmFtaWNSZWFkVXNhZ2U6MzUwNDksRWRnZXNHZW9tZXRyeTpFdGUsRWRnZXNIZWxwZXI6ZnVuY3Rpb24geHJlKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuRWRnZXNIZWxwZXIgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIFRIUkVFLkVkZ2VzR2VvbWV0cnkgaW5zdGVhZC4iKSxuZXcgaXRlKG5ldyBFdGUodC5nZW9tZXRyeSksbmV3IFg3dCh7Y29sb3I6dm9pZCAwIT09ZT9lOjE2Nzc3MjE1fSkpfSxFbGxpcHNlQ3VydmU6Q3RlLEVxdWFsRGVwdGg6NCxFcXVhbFN0ZW5jaWxGdW5jOjUxNCxFcXVpcmVjdGFuZ3VsYXJSZWZsZWN0aW9uTWFwcGluZzppMnQsRXF1aXJlY3Rhbmd1bGFyUmVmcmFjdGlvbk1hcHBpbmc6cjJ0LEV1bGVyOlQzdCxFdmVudERpc3BhdGNoZXI6ZTV0LEV4dHJ1ZGVCdWZmZXJHZW9tZXRyeTpiZWUsRXh0cnVkZUdlb21ldHJ5OmJlZSxGYWNlQ29sb3JzOjEsRmlsZUxvYWRlcjpwbmUsRmxhdFNoYWRpbmc6MSxGbG9hdDE2QnVmZmVyQXR0cmlidXRlOnY0dCxGbG9hdDMyQXR0cmlidXRlOmZ1bmN0aW9uIHdyZSh0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkZsb2F0MzJBdHRyaWJ1dGUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG5ldyBUSFJFRS5GbG9hdDMyQnVmZmVyQXR0cmlidXRlKCkgaW5zdGVhZC4iKSxuZXcgYjR0KHQsZSl9LEZsb2F0MzJCdWZmZXJBdHRyaWJ1dGU6YjR0LEZsb2F0NjRBdHRyaWJ1dGU6ZnVuY3Rpb24gU3JlKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuRmxvYXQ2NEF0dHJpYnV0ZSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgbmV3IFRIUkVFLkZsb2F0NjRCdWZmZXJBdHRyaWJ1dGUoKSBpbnN0ZWFkLiIpLG5ldyB4NHQodCxlKX0sRmxvYXQ2NEJ1ZmZlckF0dHJpYnV0ZTp4NHQsRmxvYXRUeXBlOnYydCxGb2c6bDd0LEZvZ0V4cDI6czd0LEZvbnQ6S25lLEZvbnRMb2FkZXI6Y2xhc3MgZXh0ZW5kcyBobmV7Y29uc3RydWN0b3IodCl7c3VwZXIodCl9bG9hZCh0LGUsbixpKXtjb25zdCByPXRoaXMsbz1uZXcgcG5lKHRoaXMubWFuYWdlcik7by5zZXRQYXRoKHRoaXMucGF0aCksby5zZXRSZXF1ZXN0SGVhZGVyKHRoaXMucmVxdWVzdEhlYWRlciksby5zZXRXaXRoQ3JlZGVudGlhbHMoci53aXRoQ3JlZGVudGlhbHMpLG8ubG9hZCh0LChmdW5jdGlvbih0KXtsZXQgbjt0cnl7bj1KU09OLnBhcnNlKHQpfWNhdGNoKGUpe2NvbnNvbGUud2FybigiVEhSRUUuRm9udExvYWRlcjogdHlwZWZhY2UuanMgc3VwcG9ydCBpcyBiZWluZyBkZXByZWNhdGVkLiBVc2UgdHlwZWZhY2UuanNvbiBpbnN0ZWFkLiIpLG49SlNPTi5wYXJzZSh0LnN1YnN0cmluZyg2NSx0Lmxlbmd0aC0yKSl9Y29uc3QgaT1yLnBhcnNlKG4pO2UmJmUoaSl9KSxuLGkpfXBhcnNlKHQpe3JldHVybiBuZXcgS25lKHQpfX0sRnJvbnRTaWRlOjAsRnJ1c3R1bTptNnQsR0xCdWZmZXJBdHRyaWJ1dGU6UmllLEdMU0wxOiIxMDAiLEdMU0wzOnQ1dCxHYW1tYUVuY29kaW5nOnEydCxHcmVhdGVyRGVwdGg6NixHcmVhdGVyRXF1YWxEZXB0aDo1LEdyZWF0ZXJFcXVhbFN0ZW5jaWxGdW5jOjUxOCxHcmVhdGVyU3RlbmNpbEZ1bmM6NTE2LEdyaWRIZWxwZXI6UWllLEdyb3VwOnQ3dCxIYWxmRmxvYXRUeXBlOmIydCxIZW1pc3BoZXJlTGlnaHQ6d25lLEhlbWlzcGhlcmVMaWdodEhlbHBlcjpjbGFzcyBleHRlbmRzIFYzdHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIoKSx0aGlzLmxpZ2h0PXQsdGhpcy5saWdodC51cGRhdGVNYXRyaXhXb3JsZCgpLHRoaXMubWF0cml4PXQubWF0cml4V29ybGQsdGhpcy5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuY29sb3I9bjtjb25zdCBpPW5ldyBNZWUoZSk7aS5yb3RhdGVZKC41Kk1hdGguUEkpLHRoaXMubWF0ZXJpYWw9bmV3IGw0dCh7d2lyZWZyYW1lOiEwLGZvZzohMSx0b25lTWFwcGVkOiExfSksdm9pZCAwPT09dGhpcy5jb2xvciYmKHRoaXMubWF0ZXJpYWwudmVydGV4Q29sb3JzPSEwKTtjb25zdCByPWkuZ2V0QXR0cmlidXRlKCJwb3NpdGlvbiIpLG89bmV3IEZsb2F0MzJBcnJheSgzKnIuY291bnQpO2kuc2V0QXR0cmlidXRlKCJjb2xvciIsbmV3IGg0dChvLDMpKSx0aGlzLmFkZChuZXcgSzR0KGksdGhpcy5tYXRlcmlhbCkpLHRoaXMudXBkYXRlKCl9ZGlzcG9zZSgpe3RoaXMuY2hpbGRyZW5bMF0uZ2VvbWV0cnkuZGlzcG9zZSgpLHRoaXMuY2hpbGRyZW5bMF0ubWF0ZXJpYWwuZGlzcG9zZSgpfXVwZGF0ZSgpe2NvbnN0IHQ9dGhpcy5jaGlsZHJlblswXTtpZih2b2lkIDAhPT10aGlzLmNvbG9yKXRoaXMubWF0ZXJpYWwuY29sb3Iuc2V0KHRoaXMuY29sb3IpO2Vsc2V7Y29uc3QgZT10Lmdlb21ldHJ5LmdldEF0dHJpYnV0ZSgiY29sb3IiKTtaaWUuY29weSh0aGlzLmxpZ2h0LmNvbG9yKSxKaWUuY29weSh0aGlzLmxpZ2h0Lmdyb3VuZENvbG9yKTtmb3IobGV0IHQ9MCxuPWUuY291bnQ7dDxuO3QrKyl7Y29uc3QgaT10PG4vMj9aaWU6SmllO2Uuc2V0WFlaKHQsaS5yLGkuZyxpLmIpfWUubmVlZHNVcGRhdGU9ITB9dC5sb29rQXQoS2llLnNldEZyb21NYXRyaXhQb3NpdGlvbih0aGlzLmxpZ2h0Lm1hdHJpeFdvcmxkKS5uZWdhdGUoKSl9fSxIZW1pc3BoZXJlTGlnaHRQcm9iZTplaWUsSWNvc2FoZWRyb25CdWZmZXJHZW9tZXRyeTp3ZWUsSWNvc2FoZWRyb25HZW9tZXRyeTp3ZWUsSW1hZ2VCaXRtYXBMb2FkZXI6WG5lLEltYWdlTG9hZGVyOmZuZSxJbWFnZVV0aWxzOkw1dCxJbW1lZGlhdGVSZW5kZXJPYmplY3Q6amllLEluY3JlbWVudFN0ZW5jaWxPcDo3NjgyLEluY3JlbWVudFdyYXBTdGVuY2lsT3A6MzQwNTUsSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlOmpuZSxJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeTpVbmUsSW5zdGFuY2VkSW50ZXJsZWF2ZWRCdWZmZXI6SWllLEluc3RhbmNlZE1lc2g6WTd0LEludDE2QXR0cmlidXRlOmZ1bmN0aW9uIE1yZSh0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkludDE2QXR0cmlidXRlIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBuZXcgVEhSRUUuSW50MTZCdWZmZXJBdHRyaWJ1dGUoKSBpbnN0ZWFkLiIpLG5ldyBtNHQodCxlKX0sSW50MTZCdWZmZXJBdHRyaWJ1dGU6bTR0LEludDMyQXR0cmlidXRlOmZ1bmN0aW9uIEVyZSh0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkludDMyQXR0cmlidXRlIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBuZXcgVEhSRUUuSW50MzJCdWZmZXJBdHRyaWJ1dGUoKSBpbnN0ZWFkLiIpLG5ldyBfNHQodCxlKX0sSW50MzJCdWZmZXJBdHRyaWJ1dGU6XzR0LEludDhBdHRyaWJ1dGU6ZnVuY3Rpb24gVHJlKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuSW50OEF0dHJpYnV0ZSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgbmV3IFRIUkVFLkludDhCdWZmZXJBdHRyaWJ1dGUoKSBpbnN0ZWFkLiIpLG5ldyBkNHQodCxlKX0sSW50OEJ1ZmZlckF0dHJpYnV0ZTpkNHQsSW50VHlwZToxMDEzLEludGVybGVhdmVkQnVmZmVyOnU3dCxJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZTpkN3QsSW50ZXJwb2xhbnQ6WGVlLEludGVycG9sYXRlRGlzY3JldGU6ejJ0LEludGVycG9sYXRlTGluZWFyOkQydCxJbnRlcnBvbGF0ZVNtb290aDpCMnQsSW52ZXJ0U3RlbmNpbE9wOjUzODYsSlNPTkxvYWRlcjpmdW5jdGlvbiBDcmUoKXtjb25zb2xlLmVycm9yKCJUSFJFRS5KU09OTG9hZGVyIGhhcyBiZWVuIHJlbW92ZWQuIil9LEtlZXBTdGVuY2lsT3A6WjJ0LEtleWZyYW1lVHJhY2s6SmVlLExPRDpQN3QsTGF0aGVCdWZmZXJHZW9tZXRyeTpTZWUsTGF0aGVHZW9tZXRyeTpTZWUsTGF5ZXJzOkMzdCxMZW5zRmxhcmU6ZnVuY3Rpb24gQXJlKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTGVuc0ZsYXJlIGhhcyBiZWVuIG1vdmVkIHRvIC9leGFtcGxlcy9qc20vb2JqZWN0cy9MZW5zZmxhcmUuanMiKX0sTGVzc0RlcHRoOjIsTGVzc0VxdWFsRGVwdGg6MyxMZXNzRXF1YWxTdGVuY2lsRnVuYzo1MTUsTGVzc1N0ZW5jaWxGdW5jOjUxMyxMaWdodDp4bmUsTGlnaHRQcm9iZTpIbmUsTGluZTp0dGUsTGluZTM6VWllLExpbmVCYXNpY01hdGVyaWFsOlg3dCxMaW5lQ3VydmU6RnRlLExpbmVDdXJ2ZTM6VnRlLExpbmVEYXNoZWRNYXRlcmlhbDpXZWUsTGluZUxvb3A6cnRlLExpbmVQaWVjZXM6MSxMaW5lU2VnbWVudHM6aXRlLExpbmVTdHJpcDowLExpbmVhckVuY29kaW5nOkcydCxMaW5lYXJGaWx0ZXI6cDJ0LExpbmVhckludGVycG9sYW50OktlZSxMaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI6MTAwOCxMaW5lYXJNaXBNYXBOZWFyZXN0RmlsdGVyOjEwMDcsTGluZWFyTWlwbWFwTGluZWFyRmlsdGVyOm0ydCxMaW5lYXJNaXBtYXBOZWFyZXN0RmlsdGVyOmYydCxMaW5lYXJUb25lTWFwcGluZzoxLExvYWRlcjpobmUsTG9hZGVyVXRpbHM6Vm5lLExvYWRpbmdNYW5hZ2VyOmNuZSxMb2dMdXZFbmNvZGluZzozMDAzLExvb3BPbmNlOjIyMDAsTG9vcFBpbmdQb25nOjIyMDIsTG9vcFJlcGVhdDoyMjAxLEx1bWluYW5jZUFscGhhRm9ybWF0OjEwMjUsTHVtaW5hbmNlRm9ybWF0OjEwMjQsTU9VU0U6WjB0LE1hdGVyaWFsOnQ0dCxNYXRlcmlhbExvYWRlcjpGbmUsTWF0aDpwNXQsTWF0aFV0aWxzOnA1dCxNYXRyaXgzOkE1dCxNYXRyaXg0OmczdCxNYXhFcXVhdGlvbjoxMDQsTWVzaDpLNHQsTWVzaEJhc2ljTWF0ZXJpYWw6bDR0LE1lc2hEZXB0aE1hdGVyaWFsOlk4dCxNZXNoRGlzdGFuY2VNYXRlcmlhbDpYOHQsTWVzaEZhY2VNYXRlcmlhbDpmdW5jdGlvbiBrcmUodCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWVzaEZhY2VNYXRlcmlhbCBoYXMgYmVlbiByZW1vdmVkLiBVc2UgYW4gQXJyYXkgaW5zdGVhZC4iKSx0fSxNZXNoTGFtYmVydE1hdGVyaWFsOmplZSxNZXNoTWF0Y2FwTWF0ZXJpYWw6R2VlLE1lc2hOb3JtYWxNYXRlcmlhbDpVZWUsTWVzaFBob25nTWF0ZXJpYWw6RmVlLE1lc2hQaHlzaWNhbE1hdGVyaWFsOkhlZSxNZXNoU3RhbmRhcmRNYXRlcmlhbDpCZWUsTWVzaFRvb25NYXRlcmlhbDpWZWUsTWluRXF1YXRpb246MTAzLE1pcnJvcmVkUmVwZWF0V3JhcHBpbmc6YzJ0LE1peE9wZXJhdGlvbjoxLE11bHRpTWF0ZXJpYWw6ZnVuY3Rpb24gTHJlKHQ9W10pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk11bHRpTWF0ZXJpYWwgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIGFuIEFycmF5IGluc3RlYWQuIiksdC5pc011bHRpTWF0ZXJpYWw9ITAsdC5tYXRlcmlhbHM9dCx0LmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIHQuc2xpY2UoKX0sdH0sTXVsdGlwbHlCbGVuZGluZzo0LE11bHRpcGx5T3BlcmF0aW9uOjAsTmVhcmVzdEZpbHRlcjp1MnQsTmVhcmVzdE1pcE1hcExpbmVhckZpbHRlcjoxMDA1LE5lYXJlc3RNaXBNYXBOZWFyZXN0RmlsdGVyOjEwMDQsTmVhcmVzdE1pcG1hcExpbmVhckZpbHRlcjpkMnQsTmVhcmVzdE1pcG1hcE5lYXJlc3RGaWx0ZXI6aDJ0LE5ldmVyRGVwdGg6MCxOZXZlclN0ZW5jaWxGdW5jOjUxMixOb0JsZW5kaW5nOjAsTm9Db2xvcnM6MCxOb1RvbmVNYXBwaW5nOjAsTm9ybWFsQW5pbWF0aW9uQmxlbmRNb2RlOlUydCxOb3JtYWxCbGVuZGluZzoxLE5vdEVxdWFsRGVwdGg6NyxOb3RFcXVhbFN0ZW5jaWxGdW5jOjUxNyxOdW1iZXJLZXlmcmFtZVRyYWNrOmVuZSxPYmplY3QzRDpWM3QsT2JqZWN0TG9hZGVyOmNsYXNzIGV4dGVuZHMgaG5le2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfWxvYWQodCxlLG4saSl7Y29uc3Qgcj10aGlzLG89IiI9PT10aGlzLnBhdGg/Vm5lLmV4dHJhY3RVcmxCYXNlKHQpOnRoaXMucGF0aDt0aGlzLnJlc291cmNlUGF0aD10aGlzLnJlc291cmNlUGF0aHx8bztjb25zdCBhPW5ldyBwbmUodGhpcy5tYW5hZ2VyKTthLnNldFBhdGgodGhpcy5wYXRoKSxhLnNldFJlcXVlc3RIZWFkZXIodGhpcy5yZXF1ZXN0SGVhZGVyKSxhLnNldFdpdGhDcmVkZW50aWFscyh0aGlzLndpdGhDcmVkZW50aWFscyksYS5sb2FkKHQsKGZ1bmN0aW9uKG4pe2xldCBvPW51bGw7dHJ5e289SlNPTi5wYXJzZShuKX1jYXRjaChlKXtyZXR1cm4gdm9pZCAwIT09aSYmaShlKSx2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFOk9iamVjdExvYWRlcjogQ2FuJ3QgcGFyc2UgIit0KyIuIixlLm1lc3NhZ2UpfWNvbnN0IGE9by5tZXRhZGF0YTt2b2lkIDAhPT1hJiZ2b2lkIDAhPT1hLnR5cGUmJiJnZW9tZXRyeSIhPT1hLnR5cGUudG9Mb3dlckNhc2UoKT9yLnBhcnNlKG8sZSk6Y29uc29sZS5lcnJvcigiVEhSRUUuT2JqZWN0TG9hZGVyOiBDYW4ndCBsb2FkICIrdCl9KSxuLGkpfWFzeW5jIGxvYWRBc3luYyh0LGUpe2NvbnN0IG49IiI9PT10aGlzLnBhdGg/Vm5lLmV4dHJhY3RVcmxCYXNlKHQpOnRoaXMucGF0aDt0aGlzLnJlc291cmNlUGF0aD10aGlzLnJlc291cmNlUGF0aHx8bjtjb25zdCBpPW5ldyBwbmUodGhpcy5tYW5hZ2VyKTtpLnNldFBhdGgodGhpcy5wYXRoKSxpLnNldFJlcXVlc3RIZWFkZXIodGhpcy5yZXF1ZXN0SGVhZGVyKSxpLnNldFdpdGhDcmVkZW50aWFscyh0aGlzLndpdGhDcmVkZW50aWFscyk7Y29uc3Qgcj1hd2FpdCBpLmxvYWRBc3luYyh0LGUpLG89SlNPTi5wYXJzZShyKSxhPW8ubWV0YWRhdGE7aWYodm9pZCAwPT09YXx8dm9pZCAwPT09YS50eXBlfHwiZ2VvbWV0cnkiPT09YS50eXBlLnRvTG93ZXJDYXNlKCkpdGhyb3cgbmV3IEVycm9yKCJUSFJFRS5PYmplY3RMb2FkZXI6IENhbid0IGxvYWQgIit0KTtyZXR1cm4gYXdhaXQgdGhpcy5wYXJzZUFzeW5jKG8pfXBhcnNlKHQsZSl7Y29uc3Qgbj10aGlzLnBhcnNlQW5pbWF0aW9ucyh0LmFuaW1hdGlvbnMpLGk9dGhpcy5wYXJzZVNoYXBlcyh0LnNoYXBlcykscj10aGlzLnBhcnNlR2VvbWV0cmllcyh0Lmdlb21ldHJpZXMsaSksbz10aGlzLnBhcnNlSW1hZ2VzKHQuaW1hZ2VzLChmdW5jdGlvbigpe3ZvaWQgMCE9PWUmJmUobCl9KSksYT10aGlzLnBhcnNlVGV4dHVyZXModC50ZXh0dXJlcyxvKSxzPXRoaXMucGFyc2VNYXRlcmlhbHModC5tYXRlcmlhbHMsYSksbD10aGlzLnBhcnNlT2JqZWN0KHQub2JqZWN0LHIscyxhLG4pLGM9dGhpcy5wYXJzZVNrZWxldG9ucyh0LnNrZWxldG9ucyxsKTtpZih0aGlzLmJpbmRTa2VsZXRvbnMobCxjKSx2b2lkIDAhPT1lKXtsZXQgdD0hMTtmb3IoY29uc3QgZSBpbiBvKWlmKG9bZV1pbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnQpe3Q9ITA7YnJlYWt9ITE9PT10JiZlKGwpfXJldHVybiBsfWFzeW5jIHBhcnNlQXN5bmModCl7Y29uc3QgZT10aGlzLnBhcnNlQW5pbWF0aW9ucyh0LmFuaW1hdGlvbnMpLG49dGhpcy5wYXJzZVNoYXBlcyh0LnNoYXBlcyksaT10aGlzLnBhcnNlR2VvbWV0cmllcyh0Lmdlb21ldHJpZXMsbikscj1hd2FpdCB0aGlzLnBhcnNlSW1hZ2VzQXN5bmModC5pbWFnZXMpLG89dGhpcy5wYXJzZVRleHR1cmVzKHQudGV4dHVyZXMsciksYT10aGlzLnBhcnNlTWF0ZXJpYWxzKHQubWF0ZXJpYWxzLG8pLHM9dGhpcy5wYXJzZU9iamVjdCh0Lm9iamVjdCxpLGEsbyxlKSxsPXRoaXMucGFyc2VTa2VsZXRvbnModC5za2VsZXRvbnMscyk7cmV0dXJuIHRoaXMuYmluZFNrZWxldG9ucyhzLGwpLHN9cGFyc2VTaGFwZXModCl7Y29uc3QgZT17fTtpZih2b2lkIDAhPT10KWZvcihsZXQgbj0wLGk9dC5sZW5ndGg7bjxpO24rKyl7Y29uc3QgaT0obmV3IGJuZSkuZnJvbUpTT04odFtuXSk7ZVtpLnV1aWRdPWl9cmV0dXJuIGV9cGFyc2VTa2VsZXRvbnModCxlKXtjb25zdCBuPXt9LGk9e307aWYoZS50cmF2ZXJzZSgoZnVuY3Rpb24odCl7dC5pc0JvbmUmJihpW3QudXVpZF09dCl9KSksdm9pZCAwIT09dClmb3IobGV0IGU9MCxyPXQubGVuZ3RoO2U8cjtlKyspe2NvbnN0IHI9KG5ldyBVN3QpLmZyb21KU09OKHRbZV0saSk7bltyLnV1aWRdPXJ9cmV0dXJuIG59cGFyc2VHZW9tZXRyaWVzKHQsZSl7Y29uc3Qgbj17fTtpZih2b2lkIDAhPT10KXtjb25zdCBpPW5ldyBHbmU7Zm9yKGxldCByPTAsbz10Lmxlbmd0aDtyPG87cisrKXtsZXQgbztjb25zdCBhPXRbcl07c3dpdGNoKGEudHlwZSl7Y2FzZSJCdWZmZXJHZW9tZXRyeSI6Y2FzZSJJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSI6bz1pLnBhcnNlKGEpO2JyZWFrO2Nhc2UiR2VvbWV0cnkiOmNvbnNvbGUuZXJyb3IoIlRIUkVFLk9iamVjdExvYWRlcjogVGhlIGxlZ2FjeSBHZW9tZXRyeSB0eXBlIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuIik7YnJlYWs7ZGVmYXVsdDphLnR5cGUgaW4gemVlP289emVlW2EudHlwZV0uZnJvbUpTT04oYSxlKTpjb25zb2xlLndhcm4oYFRIUkVFLk9iamVjdExvYWRlcjogVW5zdXBwb3J0ZWQgZ2VvbWV0cnkgdHlwZSAiJHthLnR5cGV9ImApfW8udXVpZD1hLnV1aWQsdm9pZCAwIT09YS5uYW1lJiYoby5uYW1lPWEubmFtZSksITA9PT1vLmlzQnVmZmVyR2VvbWV0cnkmJnZvaWQgMCE9PWEudXNlckRhdGEmJihvLnVzZXJEYXRhPWEudXNlckRhdGEpLG5bYS51dWlkXT1vfX1yZXR1cm4gbn1wYXJzZU1hdGVyaWFscyh0LGUpe2NvbnN0IG49e30saT17fTtpZih2b2lkIDAhPT10KXtjb25zdCByPW5ldyBGbmU7ci5zZXRUZXh0dXJlcyhlKTtmb3IobGV0IGU9MCxvPXQubGVuZ3RoO2U8bztlKyspe2NvbnN0IG89dFtlXTtpZigiTXVsdGlNYXRlcmlhbCI9PT1vLnR5cGUpe2NvbnN0IHQ9W107Zm9yKGxldCBlPTA7ZTxvLm1hdGVyaWFscy5sZW5ndGg7ZSsrKXtjb25zdCBpPW8ubWF0ZXJpYWxzW2VdO3ZvaWQgMD09PW5baS51dWlkXSYmKG5baS51dWlkXT1yLnBhcnNlKGkpKSx0LnB1c2gobltpLnV1aWRdKX1pW28udXVpZF09dH1lbHNlIHZvaWQgMD09PW5bby51dWlkXSYmKG5bby51dWlkXT1yLnBhcnNlKG8pKSxpW28udXVpZF09bltvLnV1aWRdfX1yZXR1cm4gaX1wYXJzZUFuaW1hdGlvbnModCl7Y29uc3QgZT17fTtpZih2b2lkIDAhPT10KWZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKXtjb25zdCBpPWFuZS5wYXJzZSh0W25dKTtlW2kudXVpZF09aX1yZXR1cm4gZX1wYXJzZUltYWdlcyh0LGUpe2NvbnN0IG49dGhpcyxpPXt9O2xldCByO2Z1bmN0aW9uIG8odCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtjb25zdCBlPXQ7cmV0dXJuKGZ1bmN0aW9uIGkodCl7cmV0dXJuIG4ubWFuYWdlci5pdGVtU3RhcnQodCksci5sb2FkKHQsKGZ1bmN0aW9uKCl7bi5tYW5hZ2VyLml0ZW1FbmQodCl9KSx2b2lkIDAsKGZ1bmN0aW9uKCl7bi5tYW5hZ2VyLml0ZW1FcnJvcih0KSxuLm1hbmFnZXIuaXRlbUVuZCh0KX0pKX0pKC9eKFwvXC8pfChbYS16XSs6KFwvXC8pPykvaS50ZXN0KGUpP2U6bi5yZXNvdXJjZVBhdGgrZSl9cmV0dXJuIHQuZGF0YT97ZGF0YTpNNHQodC50eXBlLHQuZGF0YSksd2lkdGg6dC53aWR0aCxoZWlnaHQ6dC5oZWlnaHR9Om51bGx9aWYodm9pZCAwIT09dCYmdC5sZW5ndGg+MCl7Y29uc3Qgbj1uZXcgY25lKGUpO3I9bmV3IGZuZShuKSxyLnNldENyb3NzT3JpZ2luKHRoaXMuY3Jvc3NPcmlnaW4pO2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKyl7Y29uc3Qgbj10W2VdLHI9bi51cmw7aWYoQXJyYXkuaXNBcnJheShyKSl7aVtuLnV1aWRdPVtdO2ZvcihsZXQgdD0wLGU9ci5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT1vKHJbdF0pO251bGwhPT1lJiYoZSBpbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnQ/aVtuLnV1aWRdLnB1c2goZSk6aVtuLnV1aWRdLnB1c2gobmV3IEg3dChlLmRhdGEsZS53aWR0aCxlLmhlaWdodCkpKX19ZWxzZXtjb25zdCB0PW8obi51cmwpO251bGwhPT10JiYoaVtuLnV1aWRdPXQpfX19cmV0dXJuIGl9YXN5bmMgcGFyc2VJbWFnZXNBc3luYyh0KXtjb25zdCBlPXRoaXMsbj17fTtsZXQgaTthc3luYyBmdW5jdGlvbiByKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdCl7Y29uc3Qgbj10LHI9L14oXC9cLyl8KFthLXpdKzooXC9cLyk/KS9pLnRlc3Qobik/bjplLnJlc291cmNlUGF0aCtuO3JldHVybiBhd2FpdCBpLmxvYWRBc3luYyhyKX1yZXR1cm4gdC5kYXRhP3tkYXRhOk00dCh0LnR5cGUsdC5kYXRhKSx3aWR0aDp0LndpZHRoLGhlaWdodDp0LmhlaWdodH06bnVsbH1pZih2b2lkIDAhPT10JiZ0Lmxlbmd0aD4wKXtpPW5ldyBmbmUodGhpcy5tYW5hZ2VyKSxpLnNldENyb3NzT3JpZ2luKHRoaXMuY3Jvc3NPcmlnaW4pO2ZvcihsZXQgZT0wLGk9dC5sZW5ndGg7ZTxpO2UrKyl7Y29uc3QgaT10W2VdLG89aS51cmw7aWYoQXJyYXkuaXNBcnJheShvKSl7bltpLnV1aWRdPVtdO2ZvcihsZXQgdD0wLGU9by5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT1vW3RdLGE9YXdhaXQgcihlKTtudWxsIT09YSYmKGEgaW5zdGFuY2VvZiBIVE1MSW1hZ2VFbGVtZW50P25baS51dWlkXS5wdXNoKGEpOm5baS51dWlkXS5wdXNoKG5ldyBIN3QoYS5kYXRhLGEud2lkdGgsYS5oZWlnaHQpKSl9fWVsc2V7Y29uc3QgdD1hd2FpdCByKGkudXJsKTtudWxsIT09dCYmKG5baS51dWlkXT10KX19fXJldHVybiBufXBhcnNlVGV4dHVyZXModCxlKXtmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0P3Q6KGNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0TG9hZGVyLnBhcnNlVGV4dHVyZTogQ29uc3RhbnQgc2hvdWxkIGJlIGluIG51bWVyaWMgZm9ybS4iLHQpLGVbdF0pfWNvbnN0IGk9e307aWYodm9pZCAwIT09dClmb3IobGV0IHI9MCxvPXQubGVuZ3RoO3I8bztyKyspe2NvbnN0IG89dFtyXTtsZXQgYTt2b2lkIDA9PT1vLmltYWdlJiZjb25zb2xlLndhcm4oJ1RIUkVFLk9iamVjdExvYWRlcjogTm8gImltYWdlIiBzcGVjaWZpZWQgZm9yJyxvLnV1aWQpLHZvaWQgMD09PWVbby5pbWFnZV0mJmNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0TG9hZGVyOiBVbmRlZmluZWQgaW1hZ2UiLG8uaW1hZ2UpO2NvbnN0IHM9ZVtvLmltYWdlXTtBcnJheS5pc0FycmF5KHMpPyhhPW5ldyBzNnQocyksNj09PXMubGVuZ3RoJiYoYS5uZWVkc1VwZGF0ZT0hMCkpOihhPXMmJnMuZGF0YT9uZXcgSDd0KHMuZGF0YSxzLndpZHRoLHMuaGVpZ2h0KTpuZXcgTjV0KHMpLHMmJihhLm5lZWRzVXBkYXRlPSEwKSksYS51dWlkPW8udXVpZCx2b2lkIDAhPT1vLm5hbWUmJihhLm5hbWU9by5uYW1lKSx2b2lkIDAhPT1vLm1hcHBpbmcmJihhLm1hcHBpbmc9bihvLm1hcHBpbmcsV25lKSksdm9pZCAwIT09by5vZmZzZXQmJmEub2Zmc2V0LmZyb21BcnJheShvLm9mZnNldCksdm9pZCAwIT09by5yZXBlYXQmJmEucmVwZWF0LmZyb21BcnJheShvLnJlcGVhdCksdm9pZCAwIT09by5jZW50ZXImJmEuY2VudGVyLmZyb21BcnJheShvLmNlbnRlciksdm9pZCAwIT09by5yb3RhdGlvbiYmKGEucm90YXRpb249by5yb3RhdGlvbiksdm9pZCAwIT09by53cmFwJiYoYS53cmFwUz1uKG8ud3JhcFswXSxxbmUpLGEud3JhcFQ9bihvLndyYXBbMV0scW5lKSksdm9pZCAwIT09by5mb3JtYXQmJihhLmZvcm1hdD1vLmZvcm1hdCksdm9pZCAwIT09by50eXBlJiYoYS50eXBlPW8udHlwZSksdm9pZCAwIT09by5lbmNvZGluZyYmKGEuZW5jb2Rpbmc9by5lbmNvZGluZyksdm9pZCAwIT09by5taW5GaWx0ZXImJihhLm1pbkZpbHRlcj1uKG8ubWluRmlsdGVyLFluZSkpLHZvaWQgMCE9PW8ubWFnRmlsdGVyJiYoYS5tYWdGaWx0ZXI9bihvLm1hZ0ZpbHRlcixZbmUpKSx2b2lkIDAhPT1vLmFuaXNvdHJvcHkmJihhLmFuaXNvdHJvcHk9by5hbmlzb3Ryb3B5KSx2b2lkIDAhPT1vLmZsaXBZJiYoYS5mbGlwWT1vLmZsaXBZKSx2b2lkIDAhPT1vLnByZW11bHRpcGx5QWxwaGEmJihhLnByZW11bHRpcGx5QWxwaGE9by5wcmVtdWx0aXBseUFscGhhKSx2b2lkIDAhPT1vLnVucGFja0FsaWdubWVudCYmKGEudW5wYWNrQWxpZ25tZW50PW8udW5wYWNrQWxpZ25tZW50KSxpW28udXVpZF09YX1yZXR1cm4gaX1wYXJzZU9iamVjdCh0LGUsbixpLHIpe2xldCBvLGEscztmdW5jdGlvbiBsKHQpe3JldHVybiB2b2lkIDA9PT1lW3RdJiZjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdExvYWRlcjogVW5kZWZpbmVkIGdlb21ldHJ5Iix0KSxlW3RdfWZ1bmN0aW9uIGModCl7aWYodm9pZCAwIT09dCl7aWYoQXJyYXkuaXNBcnJheSh0KSl7Y29uc3QgZT1bXTtmb3IobGV0IGk9MCxyPXQubGVuZ3RoO2k8cjtpKyspe2NvbnN0IHI9dFtpXTt2b2lkIDA9PT1uW3JdJiZjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdExvYWRlcjogVW5kZWZpbmVkIG1hdGVyaWFsIixyKSxlLnB1c2gobltyXSl9cmV0dXJuIGV9cmV0dXJuIHZvaWQgMD09PW5bdF0mJmNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0TG9hZGVyOiBVbmRlZmluZWQgbWF0ZXJpYWwiLHQpLG5bdF19fWZ1bmN0aW9uIHUodCl7cmV0dXJuIHZvaWQgMD09PWlbdF0mJmNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0TG9hZGVyOiBVbmRlZmluZWQgdGV4dHVyZSIsdCksaVt0XX1zd2l0Y2godC50eXBlKXtjYXNlIlNjZW5lIjpvPW5ldyBjN3Qsdm9pZCAwIT09dC5iYWNrZ3JvdW5kJiYoby5iYWNrZ3JvdW5kPU51bWJlci5pc0ludGVnZXIodC5iYWNrZ3JvdW5kKT9uZXcgczR0KHQuYmFja2dyb3VuZCk6dSh0LmJhY2tncm91bmQpKSx2b2lkIDAhPT10LmVudmlyb25tZW50JiYoby5lbnZpcm9ubWVudD11KHQuZW52aXJvbm1lbnQpKSx2b2lkIDAhPT10LmZvZyYmKCJGb2ciPT09dC5mb2cudHlwZT9vLmZvZz1uZXcgbDd0KHQuZm9nLmNvbG9yLHQuZm9nLm5lYXIsdC5mb2cuZmFyKToiRm9nRXhwMiI9PT10LmZvZy50eXBlJiYoby5mb2c9bmV3IHM3dCh0LmZvZy5jb2xvcix0LmZvZy5kZW5zaXR5KSkpO2JyZWFrO2Nhc2UiUGVyc3BlY3RpdmVDYW1lcmEiOm89bmV3IHI2dCh0LmZvdix0LmFzcGVjdCx0Lm5lYXIsdC5mYXIpLHZvaWQgMCE9PXQuZm9jdXMmJihvLmZvY3VzPXQuZm9jdXMpLHZvaWQgMCE9PXQuem9vbSYmKG8uem9vbT10Lnpvb20pLHZvaWQgMCE9PXQuZmlsbUdhdWdlJiYoby5maWxtR2F1Z2U9dC5maWxtR2F1Z2UpLHZvaWQgMCE9PXQuZmlsbU9mZnNldCYmKG8uZmlsbU9mZnNldD10LmZpbG1PZmZzZXQpLHZvaWQgMCE9PXQudmlldyYmKG8udmlldz1PYmplY3QuYXNzaWduKHt9LHQudmlldykpO2JyZWFrO2Nhc2UiT3J0aG9ncmFwaGljQ2FtZXJhIjpvPW5ldyBBNnQodC5sZWZ0LHQucmlnaHQsdC50b3AsdC5ib3R0b20sdC5uZWFyLHQuZmFyKSx2b2lkIDAhPT10Lnpvb20mJihvLnpvb209dC56b29tKSx2b2lkIDAhPT10LnZpZXcmJihvLnZpZXc9T2JqZWN0LmFzc2lnbih7fSx0LnZpZXcpKTticmVhaztjYXNlIkFtYmllbnRMaWdodCI6bz1uZXcgem5lKHQuY29sb3IsdC5pbnRlbnNpdHkpO2JyZWFrO2Nhc2UiRGlyZWN0aW9uYWxMaWdodCI6bz1uZXcgT25lKHQuY29sb3IsdC5pbnRlbnNpdHkpO2JyZWFrO2Nhc2UiUG9pbnRMaWdodCI6bz1uZXcgSW5lKHQuY29sb3IsdC5pbnRlbnNpdHksdC5kaXN0YW5jZSx0LmRlY2F5KTticmVhaztjYXNlIlJlY3RBcmVhTGlnaHQiOm89bmV3IERuZSh0LmNvbG9yLHQuaW50ZW5zaXR5LHQud2lkdGgsdC5oZWlnaHQpO2JyZWFrO2Nhc2UiU3BvdExpZ2h0IjpvPW5ldyBBbmUodC5jb2xvcix0LmludGVuc2l0eSx0LmRpc3RhbmNlLHQuYW5nbGUsdC5wZW51bWJyYSx0LmRlY2F5KTticmVhaztjYXNlIkhlbWlzcGhlcmVMaWdodCI6bz1uZXcgd25lKHQuY29sb3IsdC5ncm91bmRDb2xvcix0LmludGVuc2l0eSk7YnJlYWs7Y2FzZSJMaWdodFByb2JlIjpvPShuZXcgSG5lKS5mcm9tSlNPTih0KTticmVhaztjYXNlIlNraW5uZWRNZXNoIjphPWwodC5nZW9tZXRyeSkscz1jKHQubWF0ZXJpYWwpLG89bmV3IEQ3dChhLHMpLHZvaWQgMCE9PXQuYmluZE1vZGUmJihvLmJpbmRNb2RlPXQuYmluZE1vZGUpLHZvaWQgMCE9PXQuYmluZE1hdHJpeCYmby5iaW5kTWF0cml4LmZyb21BcnJheSh0LmJpbmRNYXRyaXgpLHZvaWQgMCE9PXQuc2tlbGV0b24mJihvLnNrZWxldG9uPXQuc2tlbGV0b24pO2JyZWFrO2Nhc2UiTWVzaCI6YT1sKHQuZ2VvbWV0cnkpLHM9Yyh0Lm1hdGVyaWFsKSxvPW5ldyBLNHQoYSxzKTticmVhaztjYXNlIkluc3RhbmNlZE1lc2giOmE9bCh0Lmdlb21ldHJ5KSxzPWModC5tYXRlcmlhbCk7Y29uc3QgZT10Lmluc3RhbmNlTWF0cml4LG49dC5pbnN0YW5jZUNvbG9yO289bmV3IFk3dChhLHMsdC5jb3VudCksby5pbnN0YW5jZU1hdHJpeD1uZXcgaDR0KG5ldyBGbG9hdDMyQXJyYXkoZS5hcnJheSksMTYpLHZvaWQgMCE9PW4mJihvLmluc3RhbmNlQ29sb3I9bmV3IGg0dChuZXcgRmxvYXQzMkFycmF5KG4uYXJyYXkpLG4uaXRlbVNpemUpKTticmVhaztjYXNlIkxPRCI6bz1uZXcgUDd0O2JyZWFrO2Nhc2UiTGluZSI6bz1uZXcgdHRlKGwodC5nZW9tZXRyeSksYyh0Lm1hdGVyaWFsKSk7YnJlYWs7Y2FzZSJMaW5lTG9vcCI6bz1uZXcgcnRlKGwodC5nZW9tZXRyeSksYyh0Lm1hdGVyaWFsKSk7YnJlYWs7Y2FzZSJMaW5lU2VnbWVudHMiOm89bmV3IGl0ZShsKHQuZ2VvbWV0cnkpLGModC5tYXRlcmlhbCkpO2JyZWFrO2Nhc2UiUG9pbnRDbG91ZCI6Y2FzZSJQb2ludHMiOm89bmV3IHV0ZShsKHQuZ2VvbWV0cnkpLGModC5tYXRlcmlhbCkpO2JyZWFrO2Nhc2UiU3ByaXRlIjpvPW5ldyBDN3QoYyh0Lm1hdGVyaWFsKSk7YnJlYWs7Y2FzZSJHcm91cCI6bz1uZXcgdDd0O2JyZWFrO2Nhc2UiQm9uZSI6bz1uZXcgQjd0O2JyZWFrO2RlZmF1bHQ6bz1uZXcgVjN0fWlmKG8udXVpZD10LnV1aWQsdm9pZCAwIT09dC5uYW1lJiYoby5uYW1lPXQubmFtZSksdm9pZCAwIT09dC5tYXRyaXg/KG8ubWF0cml4LmZyb21BcnJheSh0Lm1hdHJpeCksdm9pZCAwIT09dC5tYXRyaXhBdXRvVXBkYXRlJiYoby5tYXRyaXhBdXRvVXBkYXRlPXQubWF0cml4QXV0b1VwZGF0ZSksby5tYXRyaXhBdXRvVXBkYXRlJiZvLm1hdHJpeC5kZWNvbXBvc2Uoby5wb3NpdGlvbixvLnF1YXRlcm5pb24sby5zY2FsZSkpOih2b2lkIDAhPT10LnBvc2l0aW9uJiZvLnBvc2l0aW9uLmZyb21BcnJheSh0LnBvc2l0aW9uKSx2b2lkIDAhPT10LnJvdGF0aW9uJiZvLnJvdGF0aW9uLmZyb21BcnJheSh0LnJvdGF0aW9uKSx2b2lkIDAhPT10LnF1YXRlcm5pb24mJm8ucXVhdGVybmlvbi5mcm9tQXJyYXkodC5xdWF0ZXJuaW9uKSx2b2lkIDAhPT10LnNjYWxlJiZvLnNjYWxlLmZyb21BcnJheSh0LnNjYWxlKSksdm9pZCAwIT09dC5jYXN0U2hhZG93JiYoby5jYXN0U2hhZG93PXQuY2FzdFNoYWRvdyksdm9pZCAwIT09dC5yZWNlaXZlU2hhZG93JiYoby5yZWNlaXZlU2hhZG93PXQucmVjZWl2ZVNoYWRvdyksdC5zaGFkb3cmJih2b2lkIDAhPT10LnNoYWRvdy5iaWFzJiYoby5zaGFkb3cuYmlhcz10LnNoYWRvdy5iaWFzKSx2b2lkIDAhPT10LnNoYWRvdy5ub3JtYWxCaWFzJiYoby5zaGFkb3cubm9ybWFsQmlhcz10LnNoYWRvdy5ub3JtYWxCaWFzKSx2b2lkIDAhPT10LnNoYWRvdy5yYWRpdXMmJihvLnNoYWRvdy5yYWRpdXM9dC5zaGFkb3cucmFkaXVzKSx2b2lkIDAhPT10LnNoYWRvdy5tYXBTaXplJiZvLnNoYWRvdy5tYXBTaXplLmZyb21BcnJheSh0LnNoYWRvdy5tYXBTaXplKSx2b2lkIDAhPT10LnNoYWRvdy5jYW1lcmEmJihvLnNoYWRvdy5jYW1lcmE9dGhpcy5wYXJzZU9iamVjdCh0LnNoYWRvdy5jYW1lcmEpKSksdm9pZCAwIT09dC52aXNpYmxlJiYoby52aXNpYmxlPXQudmlzaWJsZSksdm9pZCAwIT09dC5mcnVzdHVtQ3VsbGVkJiYoby5mcnVzdHVtQ3VsbGVkPXQuZnJ1c3R1bUN1bGxlZCksdm9pZCAwIT09dC5yZW5kZXJPcmRlciYmKG8ucmVuZGVyT3JkZXI9dC5yZW5kZXJPcmRlciksdm9pZCAwIT09dC51c2VyRGF0YSYmKG8udXNlckRhdGE9dC51c2VyRGF0YSksdm9pZCAwIT09dC5sYXllcnMmJihvLmxheWVycy5tYXNrPXQubGF5ZXJzKSx2b2lkIDAhPT10LmNoaWxkcmVuKXtjb25zdCBhPXQuY2hpbGRyZW47Zm9yKGxldCB0PTA7dDxhLmxlbmd0aDt0Kyspby5hZGQodGhpcy5wYXJzZU9iamVjdChhW3RdLGUsbixpLHIpKX1pZih2b2lkIDAhPT10LmFuaW1hdGlvbnMpe2NvbnN0IGU9dC5hbmltYXRpb25zO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXtvLmFuaW1hdGlvbnMucHVzaChyW2VbdF1dKX19aWYoIkxPRCI9PT10LnR5cGUpe3ZvaWQgMCE9PXQuYXV0b1VwZGF0ZSYmKG8uYXV0b1VwZGF0ZT10LmF1dG9VcGRhdGUpO2NvbnN0IGU9dC5sZXZlbHM7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IG49ZVt0XSxpPW8uZ2V0T2JqZWN0QnlQcm9wZXJ0eSgidXVpZCIsbi5vYmplY3QpO3ZvaWQgMCE9PWkmJm8uYWRkTGV2ZWwoaSxuLmRpc3RhbmNlKX19cmV0dXJuIG99YmluZFNrZWxldG9ucyh0LGUpezAhPT1PYmplY3Qua2V5cyhlKS5sZW5ndGgmJnQudHJhdmVyc2UoKGZ1bmN0aW9uKHQpe2lmKCEwPT09dC5pc1NraW5uZWRNZXNoJiZ2b2lkIDAhPT10LnNrZWxldG9uKXtjb25zdCBuPWVbdC5za2VsZXRvbl07dm9pZCAwPT09bj9jb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdExvYWRlcjogTm8gc2tlbGV0b24gZm91bmQgd2l0aCBVVUlEOiIsdC5za2VsZXRvbik6dC5iaW5kKG4sdC5iaW5kTWF0cml4KX19KSl9c2V0VGV4dHVyZVBhdGgodCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0TG9hZGVyOiAuc2V0VGV4dHVyZVBhdGgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRSZXNvdXJjZVBhdGgoKS4iKSx0aGlzLnNldFJlc291cmNlUGF0aCh0KX19LE9iamVjdFNwYWNlTm9ybWFsTWFwOjEsT2N0YWhlZHJvbkJ1ZmZlckdlb21ldHJ5Ok1lZSxPY3RhaGVkcm9uR2VvbWV0cnk6TWVlLE9uZUZhY3RvcjoyMDEsT25lTWludXNEc3RBbHBoYUZhY3RvcjoyMDcsT25lTWludXNEc3RDb2xvckZhY3RvcjoyMDksT25lTWludXNTcmNBbHBoYUZhY3RvcjoyMDUsT25lTWludXNTcmNDb2xvckZhY3RvcjoyMDMsT3J0aG9ncmFwaGljQ2FtZXJhOkE2dCxQQ0ZTaGFkb3dNYXA6MSxQQ0ZTb2Z0U2hhZG93TWFwOjIsUE1SRU1HZW5lcmF0b3I6WTZ0LFBhcmFtZXRyaWNCdWZmZXJHZW9tZXRyeTpFZWUsUGFyYW1ldHJpY0dlb21ldHJ5OkVlZSxQYXJ0aWNsZTpmdW5jdGlvbiBQcmUodCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUGFydGljbGUgaGFzIGJlZW4gcmVuYW1lZCB0byBUSFJFRS5TcHJpdGUuIiksbmV3IEM3dCh0KX0sUGFydGljbGVCYXNpY01hdGVyaWFsOmZ1bmN0aW9uIE5yZSh0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5QYXJ0aWNsZUJhc2ljTWF0ZXJpYWwgaGFzIGJlZW4gcmVuYW1lZCB0byBUSFJFRS5Qb2ludHNNYXRlcmlhbC4iKSxuZXcgb3RlKHQpfSxQYXJ0aWNsZVN5c3RlbTpmdW5jdGlvbiBJcmUodCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5QYXJ0aWNsZVN5c3RlbSBoYXMgYmVlbiByZW5hbWVkIHRvIFRIUkVFLlBvaW50cy4iKSxuZXcgdXRlKHQsZSl9LFBhcnRpY2xlU3lzdGVtTWF0ZXJpYWw6ZnVuY3Rpb24gUnJlKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlBhcnRpY2xlU3lzdGVtTWF0ZXJpYWwgaGFzIGJlZW4gcmVuYW1lZCB0byBUSFJFRS5Qb2ludHNNYXRlcmlhbC4iKSxuZXcgb3RlKHQpfSxQYXRoOnZuZSxQZXJzcGVjdGl2ZUNhbWVyYTpyNnQsUGxhbmU6ZDZ0LFBsYW5lQnVmZmVyR2VvbWV0cnk6eTZ0LFBsYW5lR2VvbWV0cnk6eTZ0LFBsYW5lSGVscGVyOmNsYXNzIGV4dGVuZHMgdHRle2NvbnN0cnVjdG9yKHQsZT0xLG49MTY3NzY5NjApe2NvbnN0IGk9bixyPW5ldyBONHQ7ci5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgYjR0KFsxLC0xLDEsLTEsMSwxLC0xLC0xLDEsMSwxLDEsLTEsMSwxLC0xLC0xLDEsMSwtMSwxLDEsMSwxLDAsMCwxLDAsMCwwXSwzKSksci5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSxzdXBlcihyLG5ldyBYN3Qoe2NvbG9yOmksdG9uZU1hcHBlZDohMX0pKSx0aGlzLnR5cGU9IlBsYW5lSGVscGVyIix0aGlzLnBsYW5lPXQsdGhpcy5zaXplPWU7Y29uc3Qgbz1uZXcgTjR0O28uc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGI0dChbMSwxLDEsLTEsMSwxLC0xLC0xLDEsMSwxLDEsLTEsLTEsMSwxLC0xLDFdLDMpKSxvLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpLHRoaXMuYWRkKG5ldyBLNHQobyxuZXcgbDR0KHtjb2xvcjppLG9wYWNpdHk6LjIsdHJhbnNwYXJlbnQ6ITAsZGVwdGhXcml0ZTohMSx0b25lTWFwcGVkOiExfSkpKX11cGRhdGVNYXRyaXhXb3JsZCh0KXtsZXQgZT0tdGhpcy5wbGFuZS5jb25zdGFudDtNYXRoLmFicyhlKTwxZS04JiYoZT0xZS04KSx0aGlzLnNjYWxlLnNldCguNSp0aGlzLnNpemUsLjUqdGhpcy5zaXplLGUpLHRoaXMuY2hpbGRyZW5bMF0ubWF0ZXJpYWwuc2lkZT1lPDA/MTowLHRoaXMubG9va0F0KHRoaXMucGxhbmUubm9ybWFsKSxzdXBlci51cGRhdGVNYXRyaXhXb3JsZCh0KX19LFBvaW50Q2xvdWQ6ZnVuY3Rpb24gT3JlKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUG9pbnRDbG91ZCBoYXMgYmVlbiByZW5hbWVkIHRvIFRIUkVFLlBvaW50cy4iKSxuZXcgdXRlKHQsZSl9LFBvaW50Q2xvdWRNYXRlcmlhbDpmdW5jdGlvbiB6cmUodCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUG9pbnRDbG91ZE1hdGVyaWFsIGhhcyBiZWVuIHJlbmFtZWQgdG8gVEhSRUUuUG9pbnRzTWF0ZXJpYWwuIiksbmV3IG90ZSh0KX0sUG9pbnRMaWdodDpJbmUsUG9pbnRMaWdodEhlbHBlcjpjbGFzcyBleHRlbmRzIEs0dHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIobmV3IEFlZShlLDQsMiksbmV3IGw0dCh7d2lyZWZyYW1lOiEwLGZvZzohMSx0b25lTWFwcGVkOiExfSkpLHRoaXMubGlnaHQ9dCx0aGlzLmxpZ2h0LnVwZGF0ZU1hdHJpeFdvcmxkKCksdGhpcy5jb2xvcj1uLHRoaXMudHlwZT0iUG9pbnRMaWdodEhlbHBlciIsdGhpcy5tYXRyaXg9dGhpcy5saWdodC5tYXRyaXhXb3JsZCx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9ITEsdGhpcy51cGRhdGUoKX1kaXNwb3NlKCl7dGhpcy5nZW9tZXRyeS5kaXNwb3NlKCksdGhpcy5tYXRlcmlhbC5kaXNwb3NlKCl9dXBkYXRlKCl7dm9pZCAwIT09dGhpcy5jb2xvcj90aGlzLm1hdGVyaWFsLmNvbG9yLnNldCh0aGlzLmNvbG9yKTp0aGlzLm1hdGVyaWFsLmNvbG9yLmNvcHkodGhpcy5saWdodC5jb2xvcil9fSxQb2ludHM6dXRlLFBvaW50c01hdGVyaWFsOm90ZSxQb2xhckdyaWRIZWxwZXI6Y2xhc3MgZXh0ZW5kcyBpdGV7Y29uc3RydWN0b3IodD0xMCxlPTE2LG49OCxpPTY0LHI9NDQ3MzkyNCxvPTg5NDc4NDgpe3I9bmV3IHM0dChyKSxvPW5ldyBzNHQobyk7Y29uc3QgYT1bXSxzPVtdO2ZvcihsZXQgbj0wO248PWU7bisrKXtjb25zdCBpPW4vZSooMipNYXRoLlBJKSxsPU1hdGguc2luKGkpKnQsYz1NYXRoLmNvcyhpKSp0O2EucHVzaCgwLDAsMCksYS5wdXNoKGwsMCxjKTtjb25zdCB1PTEmbj9yOm87cy5wdXNoKHUucix1LmcsdS5iKSxzLnB1c2godS5yLHUuZyx1LmIpfWZvcihsZXQgZT0wO2U8PW47ZSsrKXtjb25zdCBsPTEmZT9yOm8sYz10LXQvbiplO2ZvcihsZXQgdD0wO3Q8aTt0Kyspe2xldCBlPXQvaSooMipNYXRoLlBJKSxuPU1hdGguc2luKGUpKmMscj1NYXRoLmNvcyhlKSpjO2EucHVzaChuLDAscikscy5wdXNoKGwucixsLmcsbC5iKSxlPSh0KzEpL2kqKDIqTWF0aC5QSSksbj1NYXRoLnNpbihlKSpjLHI9TWF0aC5jb3MoZSkqYyxhLnB1c2gobiwwLHIpLHMucHVzaChsLnIsbC5nLGwuYil9fWNvbnN0IGw9bmV3IE40dDtsLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBiNHQoYSwzKSksbC5zZXRBdHRyaWJ1dGUoImNvbG9yIixuZXcgYjR0KHMsMykpO3N1cGVyKGwsbmV3IFg3dCh7dmVydGV4Q29sb3JzOiEwLHRvbmVNYXBwZWQ6ITF9KSksdGhpcy50eXBlPSJQb2xhckdyaWRIZWxwZXIifX0sUG9seWhlZHJvbkJ1ZmZlckdlb21ldHJ5OnZ0ZSxQb2x5aGVkcm9uR2VvbWV0cnk6dnRlLFBvc2l0aW9uYWxBdWRpbzpjbGFzcyBleHRlbmRzIGhpZXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLnBhbm5lcj10aGlzLmNvbnRleHQuY3JlYXRlUGFubmVyKCksdGhpcy5wYW5uZXIucGFubmluZ01vZGVsPSJIUlRGIix0aGlzLnBhbm5lci5jb25uZWN0KHRoaXMuZ2Fpbil9Z2V0T3V0cHV0KCl7cmV0dXJuIHRoaXMucGFubmVyfWdldFJlZkRpc3RhbmNlKCl7cmV0dXJuIHRoaXMucGFubmVyLnJlZkRpc3RhbmNlfXNldFJlZkRpc3RhbmNlKHQpe3JldHVybiB0aGlzLnBhbm5lci5yZWZEaXN0YW5jZT10LHRoaXN9Z2V0Um9sbG9mZkZhY3Rvcigpe3JldHVybiB0aGlzLnBhbm5lci5yb2xsb2ZmRmFjdG9yfXNldFJvbGxvZmZGYWN0b3IodCl7cmV0dXJuIHRoaXMucGFubmVyLnJvbGxvZmZGYWN0b3I9dCx0aGlzfWdldERpc3RhbmNlTW9kZWwoKXtyZXR1cm4gdGhpcy5wYW5uZXIuZGlzdGFuY2VNb2RlbH1zZXREaXN0YW5jZU1vZGVsKHQpe3JldHVybiB0aGlzLnBhbm5lci5kaXN0YW5jZU1vZGVsPXQsdGhpc31nZXRNYXhEaXN0YW5jZSgpe3JldHVybiB0aGlzLnBhbm5lci5tYXhEaXN0YW5jZX1zZXRNYXhEaXN0YW5jZSh0KXtyZXR1cm4gdGhpcy5wYW5uZXIubWF4RGlzdGFuY2U9dCx0aGlzfXNldERpcmVjdGlvbmFsQ29uZSh0LGUsbil7cmV0dXJuIHRoaXMucGFubmVyLmNvbmVJbm5lckFuZ2xlPXQsdGhpcy5wYW5uZXIuY29uZU91dGVyQW5nbGU9ZSx0aGlzLnBhbm5lci5jb25lT3V0ZXJHYWluPW4sdGhpc311cGRhdGVNYXRyaXhXb3JsZCh0KXtpZihzdXBlci51cGRhdGVNYXRyaXhXb3JsZCh0KSwhMD09PXRoaXMuaGFzUGxheWJhY2tDb250cm9sJiYhMT09PXRoaXMuaXNQbGF5aW5nKXJldHVybjt0aGlzLm1hdHJpeFdvcmxkLmRlY29tcG9zZShkaWUscGllLGZpZSksbWllLnNldCgwLDAsMSkuYXBwbHlRdWF0ZXJuaW9uKHBpZSk7Y29uc3QgZT10aGlzLnBhbm5lcjtpZihlLnBvc2l0aW9uWCl7Y29uc3QgdD10aGlzLmNvbnRleHQuY3VycmVudFRpbWUrdGhpcy5saXN0ZW5lci50aW1lRGVsdGE7ZS5wb3NpdGlvblgubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoZGllLngsdCksZS5wb3NpdGlvblkubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoZGllLnksdCksZS5wb3NpdGlvbloubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoZGllLnosdCksZS5vcmllbnRhdGlvblgubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUobWllLngsdCksZS5vcmllbnRhdGlvblkubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUobWllLnksdCksZS5vcmllbnRhdGlvbloubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUobWllLnosdCl9ZWxzZSBlLnNldFBvc2l0aW9uKGRpZS54LGRpZS55LGRpZS56KSxlLnNldE9yaWVudGF0aW9uKG1pZS54LG1pZS55LG1pZS56KX19LFByb3BlcnR5QmluZGluZzpBaWUsUHJvcGVydHlNaXhlcjpfaWUsUXVhZHJhdGljQmV6aWVyQ3VydmU6VXRlLFF1YWRyYXRpY0JlemllckN1cnZlMzpqdGUsUXVhdGVybmlvbjpCNXQsUXVhdGVybmlvbktleWZyYW1lVHJhY2s6aW5lLFF1YXRlcm5pb25MaW5lYXJJbnRlcnBvbGFudDpubmUsUkVWSVNJT046SzB0LFJHQkFEZXB0aFBhY2tpbmc6MzIwMSxSR0JBRm9ybWF0OlMydCxSR0JBSW50ZWdlckZvcm1hdDoxMDMzLFJHQkFfQVNUQ18xMHgxMF9Gb3JtYXQ6Mzc4MTksUkdCQV9BU1RDXzEweDVfRm9ybWF0OjM3ODE2LFJHQkFfQVNUQ18xMHg2X0Zvcm1hdDozNzgxNyxSR0JBX0FTVENfMTB4OF9Gb3JtYXQ6Mzc4MTgsUkdCQV9BU1RDXzEyeDEwX0Zvcm1hdDozNzgyMCxSR0JBX0FTVENfMTJ4MTJfRm9ybWF0OjM3ODIxLFJHQkFfQVNUQ180eDRfRm9ybWF0OjM3ODA4LFJHQkFfQVNUQ181eDRfRm9ybWF0OjM3ODA5LFJHQkFfQVNUQ181eDVfRm9ybWF0OjM3ODEwLFJHQkFfQVNUQ182eDVfRm9ybWF0OjM3ODExLFJHQkFfQVNUQ182eDZfRm9ybWF0OjM3ODEyLFJHQkFfQVNUQ184eDVfRm9ybWF0OjM3ODEzLFJHQkFfQVNUQ184eDZfRm9ybWF0OjM3ODE0LFJHQkFfQVNUQ184eDhfRm9ybWF0OjM3ODE1LFJHQkFfQlBUQ19Gb3JtYXQ6MzY0OTIsUkdCQV9FVEMyX0VBQ19Gb3JtYXQ6TzJ0LFJHQkFfUFZSVENfMkJQUFYxX0Zvcm1hdDpJMnQsUkdCQV9QVlJUQ180QlBQVjFfRm9ybWF0Ok4ydCxSR0JBX1MzVENfRFhUMV9Gb3JtYXQ6QzJ0LFJHQkFfUzNUQ19EWFQzX0Zvcm1hdDpBMnQsUkdCQV9TM1RDX0RYVDVfRm9ybWF0OmsydCxSR0JERW5jb2Rpbmc6SzJ0LFJHQkVFbmNvZGluZzpZMnQsUkdCRUZvcm1hdDoxMDIzLFJHQkZvcm1hdDp3MnQsUkdCSW50ZWdlckZvcm1hdDoxMDMyLFJHQk0xNkVuY29kaW5nOiQydCxSR0JNN0VuY29kaW5nOlgydCxSR0JfRVRDMV9Gb3JtYXQ6MzYxOTYsUkdCX0VUQzJfRm9ybWF0OlIydCxSR0JfUFZSVENfMkJQUFYxX0Zvcm1hdDpQMnQsUkdCX1BWUlRDXzRCUFBWMV9Gb3JtYXQ6TDJ0LFJHQl9TM1RDX0RYVDFfRm9ybWF0OlQydCxSR0Zvcm1hdDoxMDMwLFJHSW50ZWdlckZvcm1hdDoxMDMxLFJhd1NoYWRlck1hdGVyaWFsOms2dCxSYXk6bTN0LFJheWNhc3RlcjpjbGFzc3tjb25zdHJ1Y3Rvcih0LGUsbj0wLGk9MS8wKXt0aGlzLnJheT1uZXcgbTN0KHQsZSksdGhpcy5uZWFyPW4sdGhpcy5mYXI9aSx0aGlzLmNhbWVyYT1udWxsLHRoaXMubGF5ZXJzPW5ldyBDM3QsdGhpcy5wYXJhbXM9e01lc2g6e30sTGluZTp7dGhyZXNob2xkOjF9LExPRDp7fSxQb2ludHM6e3RocmVzaG9sZDoxfSxTcHJpdGU6e319fXNldCh0LGUpe3RoaXMucmF5LnNldCh0LGUpfXNldEZyb21DYW1lcmEodCxlKXtlJiZlLmlzUGVyc3BlY3RpdmVDYW1lcmE/KHRoaXMucmF5Lm9yaWdpbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oZS5tYXRyaXhXb3JsZCksdGhpcy5yYXkuZGlyZWN0aW9uLnNldCh0LngsdC55LC41KS51bnByb2plY3QoZSkuc3ViKHRoaXMucmF5Lm9yaWdpbikubm9ybWFsaXplKCksdGhpcy5jYW1lcmE9ZSk6ZSYmZS5pc09ydGhvZ3JhcGhpY0NhbWVyYT8odGhpcy5yYXkub3JpZ2luLnNldCh0LngsdC55LChlLm5lYXIrZS5mYXIpLyhlLm5lYXItZS5mYXIpKS51bnByb2plY3QoZSksdGhpcy5yYXkuZGlyZWN0aW9uLnNldCgwLDAsLTEpLnRyYW5zZm9ybURpcmVjdGlvbihlLm1hdHJpeFdvcmxkKSx0aGlzLmNhbWVyYT1lKTpjb25zb2xlLmVycm9yKCJUSFJFRS5SYXljYXN0ZXI6IFVuc3VwcG9ydGVkIGNhbWVyYSB0eXBlOiAiK2UudHlwZSl9aW50ZXJzZWN0T2JqZWN0KHQsZT0hMSxuPVtdKXtyZXR1cm4gemllKHQsdGhpcyxuLGUpLG4uc29ydChPaWUpLG59aW50ZXJzZWN0T2JqZWN0cyh0LGU9ITEsbj1bXSl7Zm9yKGxldCBpPTAscj10Lmxlbmd0aDtpPHI7aSsrKXppZSh0W2ldLHRoaXMsbixlKTtyZXR1cm4gbi5zb3J0KE9pZSksbn19LFJlY3RBcmVhTGlnaHQ6RG5lLFJlZEZvcm1hdDoxMDI4LFJlZEludGVnZXJGb3JtYXQ6MTAyOSxSZWluaGFyZFRvbmVNYXBwaW5nOjIsUmVwZWF0V3JhcHBpbmc6czJ0LFJlcGxhY2VTdGVuY2lsT3A6NzY4MSxSZXZlcnNlU3VidHJhY3RFcXVhdGlvbjoxMDIsUmluZ0J1ZmZlckdlb21ldHJ5OlRlZSxSaW5nR2VvbWV0cnk6VGVlLFNSR0I4X0FMUEhBOF9BU1RDXzEweDEwX0Zvcm1hdDozNzg1MSxTUkdCOF9BTFBIQThfQVNUQ18xMHg1X0Zvcm1hdDozNzg0OCxTUkdCOF9BTFBIQThfQVNUQ18xMHg2X0Zvcm1hdDozNzg0OSxTUkdCOF9BTFBIQThfQVNUQ18xMHg4X0Zvcm1hdDozNzg1MCxTUkdCOF9BTFBIQThfQVNUQ18xMngxMF9Gb3JtYXQ6Mzc4NTIsU1JHQjhfQUxQSEE4X0FTVENfMTJ4MTJfRm9ybWF0OjM3ODUzLFNSR0I4X0FMUEhBOF9BU1RDXzR4NF9Gb3JtYXQ6Mzc4NDAsU1JHQjhfQUxQSEE4X0FTVENfNXg0X0Zvcm1hdDozNzg0MSxTUkdCOF9BTFBIQThfQVNUQ181eDVfRm9ybWF0OjM3ODQyLFNSR0I4X0FMUEhBOF9BU1RDXzZ4NV9Gb3JtYXQ6Mzc4NDMsU1JHQjhfQUxQSEE4X0FTVENfNng2X0Zvcm1hdDozNzg0NCxTUkdCOF9BTFBIQThfQVNUQ184eDVfRm9ybWF0OjM3ODQ1LFNSR0I4X0FMUEhBOF9BU1RDXzh4Nl9Gb3JtYXQ6Mzc4NDYsU1JHQjhfQUxQSEE4X0FTVENfOHg4X0Zvcm1hdDozNzg0NyxTY2VuZTpjN3QsU2NlbmVVdGlsczpmcmUsU2hhZGVyQ2h1bms6djZ0LFNoYWRlckxpYjp4NnQsU2hhZGVyTWF0ZXJpYWw6bjZ0LFNoYWRvd01hdGVyaWFsOkRlZSxTaGFwZTpibmUsU2hhcGVCdWZmZXJHZW9tZXRyeTpDZWUsU2hhcGVHZW9tZXRyeTpDZWUsU2hhcGVQYXRoOiRuZSxTaGFwZVV0aWxzOl9lZSxTaG9ydFR5cGU6MTAxMSxTa2VsZXRvbjpVN3QsU2tlbGV0b25IZWxwZXI6WGllLFNraW5uZWRNZXNoOkQ3dCxTbW9vdGhTaGFkaW5nOjIsU3BoZXJlOnMzdCxTcGhlcmVCdWZmZXJHZW9tZXRyeTpBZWUsU3BoZXJlR2VvbWV0cnk6QWVlLFNwaGVyaWNhbDpEaWUsU3BoZXJpY2FsSGFybW9uaWNzMzpCbmUsU3BsaW5lQ3VydmU6R3RlLFNwb3RMaWdodDpBbmUsU3BvdExpZ2h0SGVscGVyOmNsYXNzIGV4dGVuZHMgVjN0e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKSx0aGlzLmxpZ2h0PXQsdGhpcy5saWdodC51cGRhdGVNYXRyaXhXb3JsZCgpLHRoaXMubWF0cml4PXQubWF0cml4V29ybGQsdGhpcy5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuY29sb3I9ZTtjb25zdCBuPW5ldyBONHQsaT1bMCwwLDAsMCwwLDEsMCwwLDAsMSwwLDEsMCwwLDAsLTEsMCwxLDAsMCwwLDAsMSwxLDAsMCwwLDAsLTEsMV07Zm9yKGxldCB0PTAsZT0xLG49MzI7dDxuO3QrKyxlKyspe2NvbnN0IHI9dC9uKk1hdGguUEkqMixvPWUvbipNYXRoLlBJKjI7aS5wdXNoKE1hdGguY29zKHIpLE1hdGguc2luKHIpLDEsTWF0aC5jb3MobyksTWF0aC5zaW4obyksMSl9bi5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgYjR0KGksMykpO2NvbnN0IHI9bmV3IFg3dCh7Zm9nOiExLHRvbmVNYXBwZWQ6ITF9KTt0aGlzLmNvbmU9bmV3IGl0ZShuLHIpLHRoaXMuYWRkKHRoaXMuY29uZSksdGhpcy51cGRhdGUoKX1kaXNwb3NlKCl7dGhpcy5jb25lLmdlb21ldHJ5LmRpc3Bvc2UoKSx0aGlzLmNvbmUubWF0ZXJpYWwuZGlzcG9zZSgpfXVwZGF0ZSgpe3RoaXMubGlnaHQudXBkYXRlTWF0cml4V29ybGQoKTtjb25zdCB0PXRoaXMubGlnaHQuZGlzdGFuY2U/dGhpcy5saWdodC5kaXN0YW5jZToxZTMsZT10Kk1hdGgudGFuKHRoaXMubGlnaHQuYW5nbGUpO3RoaXMuY29uZS5zY2FsZS5zZXQoZSxlLHQpLEdpZS5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5saWdodC50YXJnZXQubWF0cml4V29ybGQpLHRoaXMuY29uZS5sb29rQXQoR2llKSx2b2lkIDAhPT10aGlzLmNvbG9yP3RoaXMuY29uZS5tYXRlcmlhbC5jb2xvci5zZXQodGhpcy5jb2xvcik6dGhpcy5jb25lLm1hdGVyaWFsLmNvbG9yLmNvcHkodGhpcy5saWdodC5jb2xvcil9fSxTcHJpdGU6Qzd0LFNwcml0ZU1hdGVyaWFsOnA3dCxTcmNBbHBoYUZhY3RvcjoyMDQsU3JjQWxwaGFTYXR1cmF0ZUZhY3RvcjoyMTAsU3JjQ29sb3JGYWN0b3I6MjAyLFN0YXRpY0NvcHlVc2FnZTozNTA0NixTdGF0aWNEcmF3VXNhZ2U6SjJ0LFN0YXRpY1JlYWRVc2FnZTozNTA0NSxTdGVyZW9DYW1lcmE6Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnR5cGU9IlN0ZXJlb0NhbWVyYSIsdGhpcy5hc3BlY3Q9MSx0aGlzLmV5ZVNlcD0uMDY0LHRoaXMuY2FtZXJhTD1uZXcgcjZ0LHRoaXMuY2FtZXJhTC5sYXllcnMuZW5hYmxlKDEpLHRoaXMuY2FtZXJhTC5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuY2FtZXJhUj1uZXcgcjZ0LHRoaXMuY2FtZXJhUi5sYXllcnMuZW5hYmxlKDIpLHRoaXMuY2FtZXJhUi5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuX2NhY2hlPXtmb2N1czpudWxsLGZvdjpudWxsLGFzcGVjdDpudWxsLG5lYXI6bnVsbCxmYXI6bnVsbCx6b29tOm51bGwsZXllU2VwOm51bGx9fXVwZGF0ZSh0KXtjb25zdCBlPXRoaXMuX2NhY2hlO2lmKGUuZm9jdXMhPT10LmZvY3VzfHxlLmZvdiE9PXQuZm92fHxlLmFzcGVjdCE9PXQuYXNwZWN0KnRoaXMuYXNwZWN0fHxlLm5lYXIhPT10Lm5lYXJ8fGUuZmFyIT09dC5mYXJ8fGUuem9vbSE9PXQuem9vbXx8ZS5leWVTZXAhPT10aGlzLmV5ZVNlcCl7ZS5mb2N1cz10LmZvY3VzLGUuZm92PXQuZm92LGUuYXNwZWN0PXQuYXNwZWN0KnRoaXMuYXNwZWN0LGUubmVhcj10Lm5lYXIsZS5mYXI9dC5mYXIsZS56b29tPXQuem9vbSxlLmV5ZVNlcD10aGlzLmV5ZVNlcDtjb25zdCBuPXQucHJvamVjdGlvbk1hdHJpeC5jbG9uZSgpLGk9ZS5leWVTZXAvMixyPWkqZS5uZWFyL2UuZm9jdXMsbz1lLm5lYXIqTWF0aC50YW4ocjV0KmUuZm92Ki41KS9lLnpvb207bGV0IGEscztyaWUuZWxlbWVudHNbMTJdPS1pLGlpZS5lbGVtZW50c1sxMl09aSxhPS1vKmUuYXNwZWN0K3Iscz1vKmUuYXNwZWN0K3Isbi5lbGVtZW50c1swXT0yKmUubmVhci8ocy1hKSxuLmVsZW1lbnRzWzhdPShzK2EpLyhzLWEpLHRoaXMuY2FtZXJhTC5wcm9qZWN0aW9uTWF0cml4LmNvcHkobiksYT0tbyplLmFzcGVjdC1yLHM9byplLmFzcGVjdC1yLG4uZWxlbWVudHNbMF09MiplLm5lYXIvKHMtYSksbi5lbGVtZW50c1s4XT0ocythKS8ocy1hKSx0aGlzLmNhbWVyYVIucHJvamVjdGlvbk1hdHJpeC5jb3B5KG4pfXRoaXMuY2FtZXJhTC5tYXRyaXhXb3JsZC5jb3B5KHQubWF0cml4V29ybGQpLm11bHRpcGx5KHJpZSksdGhpcy5jYW1lcmFSLm1hdHJpeFdvcmxkLmNvcHkodC5tYXRyaXhXb3JsZCkubXVsdGlwbHkoaWllKX19LFN0cmVhbUNvcHlVc2FnZTozNTA0MixTdHJlYW1EcmF3VXNhZ2U6MzUwNDAsU3RyZWFtUmVhZFVzYWdlOjM1MDQxLFN0cmluZ0tleWZyYW1lVHJhY2s6cm5lLFN1YnRyYWN0RXF1YXRpb246MTAxLFN1YnRyYWN0aXZlQmxlbmRpbmc6MyxUT1VDSDpKMHQsVGFuZ2VudFNwYWNlTm9ybWFsTWFwOjAsVGV0cmFoZWRyb25CdWZmZXJHZW9tZXRyeTprZWUsVGV0cmFoZWRyb25HZW9tZXRyeTprZWUsVGV4dEJ1ZmZlckdlb21ldHJ5OkxlZSxUZXh0R2VvbWV0cnk6TGVlLFRleHR1cmU6TjV0LFRleHR1cmVMb2FkZXI6X25lLFRvcnVzQnVmZmVyR2VvbWV0cnk6UGVlLFRvcnVzR2VvbWV0cnk6UGVlLFRvcnVzS25vdEJ1ZmZlckdlb21ldHJ5Ok5lZSxUb3J1c0tub3RHZW9tZXRyeTpOZWUsVHJpYW5nbGU6SjN0LFRyaWFuZ2xlRmFuRHJhd01vZGU6MixUcmlhbmdsZVN0cmlwRHJhd01vZGU6MSxUcmlhbmdsZXNEcmF3TW9kZTowLFR1YmVCdWZmZXJHZW9tZXRyeTpJZWUsVHViZUdlb21ldHJ5OkllZSxVVk1hcHBpbmc6dDJ0LFVpbnQxNkF0dHJpYnV0ZTpmdW5jdGlvbiBEcmUodCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5VaW50MTZBdHRyaWJ1dGUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG5ldyBUSFJFRS5VaW50MTZCdWZmZXJBdHRyaWJ1dGUoKSBpbnN0ZWFkLiIpLG5ldyBnNHQodCxlKX0sVWludDE2QnVmZmVyQXR0cmlidXRlOmc0dCxVaW50MzJBdHRyaWJ1dGU6ZnVuY3Rpb24gQnJlKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVWludDMyQXR0cmlidXRlIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBuZXcgVEhSRUUuVWludDMyQnVmZmVyQXR0cmlidXRlKCkgaW5zdGVhZC4iKSxuZXcgeTR0KHQsZSl9LFVpbnQzMkJ1ZmZlckF0dHJpYnV0ZTp5NHQsVWludDhBdHRyaWJ1dGU6ZnVuY3Rpb24gSHJlKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVWludDhBdHRyaWJ1dGUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG5ldyBUSFJFRS5VaW50OEJ1ZmZlckF0dHJpYnV0ZSgpIGluc3RlYWQuIiksbmV3IHA0dCh0LGUpfSxVaW50OEJ1ZmZlckF0dHJpYnV0ZTpwNHQsVWludDhDbGFtcGVkQXR0cmlidXRlOmZ1bmN0aW9uIEZyZSh0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlVpbnQ4Q2xhbXBlZEF0dHJpYnV0ZSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgbmV3IFRIUkVFLlVpbnQ4Q2xhbXBlZEJ1ZmZlckF0dHJpYnV0ZSgpIGluc3RlYWQuIiksbmV3IGY0dCh0LGUpfSxVaW50OENsYW1wZWRCdWZmZXJBdHRyaWJ1dGU6ZjR0LFVuaWZvcm06TmllLFVuaWZvcm1zTGliOmI2dCxVbmlmb3Jtc1V0aWxzOmU2dCxVbnNpZ25lZEJ5dGVUeXBlOmcydCxVbnNpZ25lZEludDI0OFR5cGU6eDJ0LFVuc2lnbmVkSW50VHlwZTp5MnQsVW5zaWduZWRTaG9ydDQ0NDRUeXBlOjEwMTcsVW5zaWduZWRTaG9ydDU1NTFUeXBlOjEwMTgsVW5zaWduZWRTaG9ydDU2NVR5cGU6MTAxOSxVbnNpZ25lZFNob3J0VHlwZTpfMnQsVlNNU2hhZG93TWFwOjMsVmVjdG9yMjpDNXQsVmVjdG9yMzpINXQsVmVjdG9yNDpSNXQsVmVjdG9yS2V5ZnJhbWVUcmFjazpvbmUsVmVydGV4OmZ1bmN0aW9uIFZyZSh0LGUsbil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVydGV4IGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBUSFJFRS5WZWN0b3IzIGluc3RlYWQuIiksbmV3IEg1dCh0LGUsbil9LFZlcnRleENvbG9yczoyLFZpZGVvVGV4dHVyZTpkdGUsV2ViR0wxUmVuZGVyZXI6YTd0LFdlYkdMQ3ViZVJlbmRlclRhcmdldDpsNnQsV2ViR0xNdWx0aXBsZVJlbmRlclRhcmdldHM6ejV0LFdlYkdMTXVsdGlzYW1wbGVSZW5kZXJUYXJnZXQ6RDV0LFdlYkdMUmVuZGVyVGFyZ2V0Ok81dCxXZWJHTFJlbmRlclRhcmdldEN1YmU6ZnVuY3Rpb24gVXJlKHQsZSxuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldEN1YmUoIHdpZHRoLCBoZWlnaHQsIG9wdGlvbnMgKSBpcyBub3cgV2ViR0xDdWJlUmVuZGVyVGFyZ2V0KCBzaXplLCBvcHRpb25zICkuIiksbmV3IGw2dCh0LG4pfSxXZWJHTFJlbmRlcmVyOm83dCxXZWJHTFV0aWxzOko4dCxXaXJlZnJhbWVHZW9tZXRyeTpSZWUsV2lyZWZyYW1lSGVscGVyOmZ1bmN0aW9uIGpyZSh0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldpcmVmcmFtZUhlbHBlciBoYXMgYmVlbiByZW1vdmVkLiBVc2UgVEhSRUUuV2lyZWZyYW1lR2VvbWV0cnkgaW5zdGVhZC4iKSxuZXcgaXRlKG5ldyBSZWUodC5nZW9tZXRyeSksbmV3IFg3dCh7Y29sb3I6dm9pZCAwIT09ZT9lOjE2Nzc3MjE1fSkpfSxXcmFwQXJvdW5kRW5kaW5nOlYydCxYSFJMb2FkZXI6ZnVuY3Rpb24gR3JlKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlhIUkxvYWRlciBoYXMgYmVlbiByZW5hbWVkIHRvIFRIUkVFLkZpbGVMb2FkZXIuIiksbmV3IHBuZSh0KX0sWmVyb0N1cnZhdHVyZUVuZGluZzpIMnQsWmVyb0ZhY3RvcjoyMDAsWmVyb1Nsb3BlRW5kaW5nOkYydCxaZXJvU3RlbmNpbE9wOjAsc1JHQkVuY29kaW5nOlcydH0pO2NvbnN0IFdyZT17dHlwZToiY2hhbmdlIn0scXJlPXt0eXBlOiJzdGFydCJ9LFlyZT17dHlwZToiZW5kIn07Y2xhc3MgWHJlIGV4dGVuZHMgZTV0e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKSx2b2lkIDA9PT1lJiZjb25zb2xlLndhcm4oJ1RIUkVFLk9yYml0Q29udHJvbHM6IFRoZSBzZWNvbmQgcGFyYW1ldGVyICJkb21FbGVtZW50IiBpcyBub3cgbWFuZGF0b3J5LicpLGU9PT1kb2N1bWVudCYmY29uc29sZS5lcnJvcignVEhSRUUuT3JiaXRDb250cm9sczogImRvY3VtZW50IiBzaG91bGQgbm90IGJlIHVzZWQgYXMgdGhlIHRhcmdldCAiZG9tRWxlbWVudCIuIFBsZWFzZSB1c2UgInJlbmRlcmVyLmRvbUVsZW1lbnQiIGluc3RlYWQuJyksdGhpcy5vYmplY3Q9dCx0aGlzLmRvbUVsZW1lbnQ9ZSx0aGlzLmRvbUVsZW1lbnQuc3R5bGUudG91Y2hBY3Rpb249Im5vbmUiLHRoaXMuZW5hYmxlZD0hMCx0aGlzLnRhcmdldD1uZXcgSDV0LHRoaXMubWluRGlzdGFuY2U9MCx0aGlzLm1heERpc3RhbmNlPTEvMCx0aGlzLm1pblpvb209MCx0aGlzLm1heFpvb209MS8wLHRoaXMubWluUG9sYXJBbmdsZT0wLHRoaXMubWF4UG9sYXJBbmdsZT1NYXRoLlBJLHRoaXMubWluQXppbXV0aEFuZ2xlPS0xLzAsdGhpcy5tYXhBemltdXRoQW5nbGU9MS8wLHRoaXMuZW5hYmxlRGFtcGluZz0hMSx0aGlzLmRhbXBpbmdGYWN0b3I9LjA1LHRoaXMuZW5hYmxlWm9vbT0hMCx0aGlzLnpvb21TcGVlZD0xLHRoaXMuZW5hYmxlUm90YXRlPSEwLHRoaXMucm90YXRlU3BlZWQ9MSx0aGlzLmVuYWJsZVBhbj0hMCx0aGlzLnBhblNwZWVkPTEsdGhpcy5zY3JlZW5TcGFjZVBhbm5pbmc9ITAsdGhpcy5rZXlQYW5TcGVlZD03LHRoaXMuYXV0b1JvdGF0ZT0hMSx0aGlzLmF1dG9Sb3RhdGVTcGVlZD0yLHRoaXMua2V5cz17TEVGVDoiQXJyb3dMZWZ0IixVUDoiQXJyb3dVcCIsUklHSFQ6IkFycm93UmlnaHQiLEJPVFRPTToiQXJyb3dEb3duIn0sdGhpcy5tb3VzZUJ1dHRvbnM9e0xFRlQ6WjB0LlJPVEFURSxNSURETEU6WjB0LkRPTExZLFJJR0hUOlowdC5QQU59LHRoaXMudG91Y2hlcz17T05FOkowdC5ST1RBVEUsVFdPOkowdC5ET0xMWV9QQU59LHRoaXMudGFyZ2V0MD10aGlzLnRhcmdldC5jbG9uZSgpLHRoaXMucG9zaXRpb24wPXRoaXMub2JqZWN0LnBvc2l0aW9uLmNsb25lKCksdGhpcy56b29tMD10aGlzLm9iamVjdC56b29tLHRoaXMuX2RvbUVsZW1lbnRLZXlFdmVudHM9bnVsbCx0aGlzLmdldFBvbGFyQW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4gYS5waGl9LHRoaXMuZ2V0QXppbXV0aGFsQW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4gYS50aGV0YX0sdGhpcy5nZXREaXN0YW5jZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm9iamVjdC5wb3NpdGlvbi5kaXN0YW5jZVRvKHRoaXMudGFyZ2V0KX0sdGhpcy5saXN0ZW5Ub0tleUV2ZW50cz1mdW5jdGlvbih0KXt0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGopLHRoaXMuX2RvbUVsZW1lbnRLZXlFdmVudHM9dH0sdGhpcy5zYXZlU3RhdGU9ZnVuY3Rpb24oKXtuLnRhcmdldDAuY29weShuLnRhcmdldCksbi5wb3NpdGlvbjAuY29weShuLm9iamVjdC5wb3NpdGlvbiksbi56b29tMD1uLm9iamVjdC56b29tfSx0aGlzLnJlc2V0PWZ1bmN0aW9uKCl7bi50YXJnZXQuY29weShuLnRhcmdldDApLG4ub2JqZWN0LnBvc2l0aW9uLmNvcHkobi5wb3NpdGlvbjApLG4ub2JqZWN0Lnpvb209bi56b29tMCxuLm9iamVjdC51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCksbi5kaXNwYXRjaEV2ZW50KFdyZSksbi51cGRhdGUoKSxyPWkuTk9ORX0sdGhpcy51cGRhdGU9KGZ1bmN0aW9uKCl7Y29uc3QgZT1uZXcgSDV0LGg9KG5ldyBCNXQpLnNldEZyb21Vbml0VmVjdG9ycyh0LnVwLG5ldyBINXQoMCwxLDApKSxkPWguY2xvbmUoKS5pbnZlcnQoKSxwPW5ldyBINXQsZj1uZXcgQjV0LG09MipNYXRoLlBJO3JldHVybiBmdW5jdGlvbiB0KCl7Y29uc3QgZz1uLm9iamVjdC5wb3NpdGlvbjtlLmNvcHkoZykuc3ViKG4udGFyZ2V0KSxlLmFwcGx5UXVhdGVybmlvbihoKSxhLnNldEZyb21WZWN0b3IzKGUpLG4uYXV0b1JvdGF0ZSYmcj09PWkuTk9ORSYmUygoZnVuY3Rpb24gXygpe3JldHVybiAyKk1hdGguUEkvNjAvNjAqbi5hdXRvUm90YXRlU3BlZWR9KSgpKSxuLmVuYWJsZURhbXBpbmc/KGEudGhldGErPXMudGhldGEqbi5kYW1waW5nRmFjdG9yLGEucGhpKz1zLnBoaSpuLmRhbXBpbmdGYWN0b3IpOihhLnRoZXRhKz1zLnRoZXRhLGEucGhpKz1zLnBoaSk7bGV0IHk9bi5taW5BemltdXRoQW5nbGUsdj1uLm1heEF6aW11dGhBbmdsZTtyZXR1cm4gaXNGaW5pdGUoeSkmJmlzRmluaXRlKHYpJiYoeTwtTWF0aC5QST95Kz1tOnk+TWF0aC5QSSYmKHktPW0pLHY8LU1hdGguUEk/dis9bTp2Pk1hdGguUEkmJih2LT1tKSxhLnRoZXRhPXk8PXY/TWF0aC5tYXgoeSxNYXRoLm1pbih2LGEudGhldGEpKTphLnRoZXRhPih5K3YpLzI/TWF0aC5tYXgoeSxhLnRoZXRhKTpNYXRoLm1pbih2LGEudGhldGEpKSxhLnBoaT1NYXRoLm1heChuLm1pblBvbGFyQW5nbGUsTWF0aC5taW4obi5tYXhQb2xhckFuZ2xlLGEucGhpKSksYS5tYWtlU2FmZSgpLGEucmFkaXVzKj1sLGEucmFkaXVzPU1hdGgubWF4KG4ubWluRGlzdGFuY2UsTWF0aC5taW4obi5tYXhEaXN0YW5jZSxhLnJhZGl1cykpLCEwPT09bi5lbmFibGVEYW1waW5nP24udGFyZ2V0LmFkZFNjYWxlZFZlY3RvcihjLG4uZGFtcGluZ0ZhY3Rvcik6bi50YXJnZXQuYWRkKGMpLGUuc2V0RnJvbVNwaGVyaWNhbChhKSxlLmFwcGx5UXVhdGVybmlvbihkKSxnLmNvcHkobi50YXJnZXQpLmFkZChlKSxuLm9iamVjdC5sb29rQXQobi50YXJnZXQpLCEwPT09bi5lbmFibGVEYW1waW5nPyhzLnRoZXRhKj0xLW4uZGFtcGluZ0ZhY3RvcixzLnBoaSo9MS1uLmRhbXBpbmdGYWN0b3IsYy5tdWx0aXBseVNjYWxhcigxLW4uZGFtcGluZ0ZhY3RvcikpOihzLnNldCgwLDAsMCksYy5zZXQoMCwwLDApKSxsPTEsISEodXx8cC5kaXN0YW5jZVRvU3F1YXJlZChuLm9iamVjdC5wb3NpdGlvbik+b3x8OCooMS1mLmRvdChuLm9iamVjdC5xdWF0ZXJuaW9uKSk+bykmJihuLmRpc3BhdGNoRXZlbnQoV3JlKSxwLmNvcHkobi5vYmplY3QucG9zaXRpb24pLGYuY29weShuLm9iamVjdC5xdWF0ZXJuaW9uKSx1PSExLCEwKX19KSgpLHRoaXMuZGlzcG9zZT1mdW5jdGlvbigpe24uZG9tRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsRyksbi5kb21FbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIixCKSxuLmRvbUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsViksbi5kb21FbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixVKSxuLmRvbUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLEgpLG4uZG9tRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLEYpLG51bGwhPT1uLl9kb21FbGVtZW50S2V5RXZlbnRzJiZuLl9kb21FbGVtZW50S2V5RXZlbnRzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGopfTtjb25zdCBuPXRoaXMsaT17Tk9ORTotMSxST1RBVEU6MCxET0xMWToxLFBBTjoyLFRPVUNIX1JPVEFURTozLFRPVUNIX1BBTjo0LFRPVUNIX0RPTExZX1BBTjo1LFRPVUNIX0RPTExZX1JPVEFURTo2fTtsZXQgcj1pLk5PTkU7Y29uc3Qgbz0xZS02LGE9bmV3IERpZSxzPW5ldyBEaWU7bGV0IGw9MTtjb25zdCBjPW5ldyBINXQ7bGV0IHU9ITE7Y29uc3QgaD1uZXcgQzV0LGQ9bmV3IEM1dCxwPW5ldyBDNXQsZj1uZXcgQzV0LG09bmV3IEM1dCxnPW5ldyBDNXQsXz1uZXcgQzV0LHk9bmV3IEM1dCx2PW5ldyBDNXQsYj1bXSx4PXt9O2Z1bmN0aW9uIHcoKXtyZXR1cm4gTWF0aC5wb3coLjk1LG4uem9vbVNwZWVkKX1mdW5jdGlvbiBTKHQpe3MudGhldGEtPXR9ZnVuY3Rpb24gTSh0KXtzLnBoaS09dH1jb25zdCBFPShmdW5jdGlvbigpe2NvbnN0IHQ9bmV3IEg1dDtyZXR1cm4gZnVuY3Rpb24gZShuLGkpe3Quc2V0RnJvbU1hdHJpeENvbHVtbihpLDApLHQubXVsdGlwbHlTY2FsYXIoLW4pLGMuYWRkKHQpfX0pKCksVD0oZnVuY3Rpb24oKXtjb25zdCB0PW5ldyBINXQ7cmV0dXJuIGZ1bmN0aW9uIGUoaSxyKXshMD09PW4uc2NyZWVuU3BhY2VQYW5uaW5nP3Quc2V0RnJvbU1hdHJpeENvbHVtbihyLDEpOih0LnNldEZyb21NYXRyaXhDb2x1bW4ociwwKSx0LmNyb3NzVmVjdG9ycyhuLm9iamVjdC51cCx0KSksdC5tdWx0aXBseVNjYWxhcihpKSxjLmFkZCh0KX19KSgpLEM9KGZ1bmN0aW9uKCl7Y29uc3QgdD1uZXcgSDV0O3JldHVybiBmdW5jdGlvbiBlKGkscil7Y29uc3Qgbz1uLmRvbUVsZW1lbnQ7aWYobi5vYmplY3QuaXNQZXJzcGVjdGl2ZUNhbWVyYSl7dC5jb3B5KG4ub2JqZWN0LnBvc2l0aW9uKS5zdWIobi50YXJnZXQpO2xldCBlPXQubGVuZ3RoKCk7ZSo9TWF0aC50YW4obi5vYmplY3QuZm92LzIqTWF0aC5QSS8xODApLEUoMippKmUvby5jbGllbnRIZWlnaHQsbi5vYmplY3QubWF0cml4KSxUKDIqciplL28uY2xpZW50SGVpZ2h0LG4ub2JqZWN0Lm1hdHJpeCl9ZWxzZSBuLm9iamVjdC5pc09ydGhvZ3JhcGhpY0NhbWVyYT8oRShpKihuLm9iamVjdC5yaWdodC1uLm9iamVjdC5sZWZ0KS9uLm9iamVjdC56b29tL28uY2xpZW50V2lkdGgsbi5vYmplY3QubWF0cml4KSxUKHIqKG4ub2JqZWN0LnRvcC1uLm9iamVjdC5ib3R0b20pL24ub2JqZWN0Lnpvb20vby5jbGllbnRIZWlnaHQsbi5vYmplY3QubWF0cml4KSk6KGNvbnNvbGUud2FybigiV0FSTklORzogT3JiaXRDb250cm9scy5qcyBlbmNvdW50ZXJlZCBhbiB1bmtub3duIGNhbWVyYSB0eXBlIC0gcGFuIGRpc2FibGVkLiIpLG4uZW5hYmxlUGFuPSExKX19KSgpO2Z1bmN0aW9uIEEodCl7bi5vYmplY3QuaXNQZXJzcGVjdGl2ZUNhbWVyYT9sLz10Om4ub2JqZWN0LmlzT3J0aG9ncmFwaGljQ2FtZXJhPyhuLm9iamVjdC56b29tPU1hdGgubWF4KG4ubWluWm9vbSxNYXRoLm1pbihuLm1heFpvb20sbi5vYmplY3Quem9vbSp0KSksbi5vYmplY3QudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpLHU9ITApOihjb25zb2xlLndhcm4oIldBUk5JTkc6IE9yYml0Q29udHJvbHMuanMgZW5jb3VudGVyZWQgYW4gdW5rbm93biBjYW1lcmEgdHlwZSAtIGRvbGx5L3pvb20gZGlzYWJsZWQuIiksbi5lbmFibGVab29tPSExKX1mdW5jdGlvbiBrKHQpe24ub2JqZWN0LmlzUGVyc3BlY3RpdmVDYW1lcmE/bCo9dDpuLm9iamVjdC5pc09ydGhvZ3JhcGhpY0NhbWVyYT8obi5vYmplY3Quem9vbT1NYXRoLm1heChuLm1pblpvb20sTWF0aC5taW4obi5tYXhab29tLG4ub2JqZWN0Lnpvb20vdCkpLG4ub2JqZWN0LnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKSx1PSEwKTooY29uc29sZS53YXJuKCJXQVJOSU5HOiBPcmJpdENvbnRyb2xzLmpzIGVuY291bnRlcmVkIGFuIHVua25vd24gY2FtZXJhIHR5cGUgLSBkb2xseS96b29tIGRpc2FibGVkLiIpLG4uZW5hYmxlWm9vbT0hMSl9ZnVuY3Rpb24gTCh0KXtoLnNldCh0LmNsaWVudFgsdC5jbGllbnRZKX1mdW5jdGlvbiBQKHQpe2Yuc2V0KHQuY2xpZW50WCx0LmNsaWVudFkpfWZ1bmN0aW9uIE4oKXtpZigxPT09Yi5sZW5ndGgpaC5zZXQoYlswXS5wYWdlWCxiWzBdLnBhZ2VZKTtlbHNle2guc2V0KC41KihiWzBdLnBhZ2VYK2JbMV0ucGFnZVgpLC41KihiWzBdLnBhZ2VZK2JbMV0ucGFnZVkpKX19ZnVuY3Rpb24gSSgpe2lmKDE9PT1iLmxlbmd0aClmLnNldChiWzBdLnBhZ2VYLGJbMF0ucGFnZVkpO2Vsc2V7Zi5zZXQoLjUqKGJbMF0ucGFnZVgrYlsxXS5wYWdlWCksLjUqKGJbMF0ucGFnZVkrYlsxXS5wYWdlWSkpfX1mdW5jdGlvbiBSKCl7Y29uc3QgdD1iWzBdLnBhZ2VYLWJbMV0ucGFnZVgsZT1iWzBdLnBhZ2VZLWJbMV0ucGFnZVksbj1NYXRoLnNxcnQodCp0K2UqZSk7Xy5zZXQoMCxuKX1mdW5jdGlvbiBPKHQpe2lmKDE9PWIubGVuZ3RoKWQuc2V0KHQucGFnZVgsdC5wYWdlWSk7ZWxzZXtjb25zdCBlPVkodCk7ZC5zZXQoLjUqKHQucGFnZVgrZS54KSwuNSoodC5wYWdlWStlLnkpKX1wLnN1YlZlY3RvcnMoZCxoKS5tdWx0aXBseVNjYWxhcihuLnJvdGF0ZVNwZWVkKTtjb25zdCBlPW4uZG9tRWxlbWVudDtTKDIqTWF0aC5QSSpwLngvZS5jbGllbnRIZWlnaHQpLE0oMipNYXRoLlBJKnAueS9lLmNsaWVudEhlaWdodCksaC5jb3B5KGQpfWZ1bmN0aW9uIHoodCl7aWYoMT09PWIubGVuZ3RoKW0uc2V0KHQucGFnZVgsdC5wYWdlWSk7ZWxzZXtjb25zdCBlPVkodCk7bS5zZXQoLjUqKHQucGFnZVgrZS54KSwuNSoodC5wYWdlWStlLnkpKX1nLnN1YlZlY3RvcnMobSxmKS5tdWx0aXBseVNjYWxhcihuLnBhblNwZWVkKSxDKGcueCxnLnkpLGYuY29weShtKX1mdW5jdGlvbiBEKHQpe2NvbnN0IGU9WSh0KSxpPXQucGFnZVgtZS54LHI9dC5wYWdlWS1lLnksbz1NYXRoLnNxcnQoaSppK3Iqcik7eS5zZXQoMCxvKSx2LnNldCgwLE1hdGgucG93KHkueS9fLnksbi56b29tU3BlZWQpKSxBKHYueSksXy5jb3B5KHkpfWZ1bmN0aW9uIEIodCl7ITEhPT1uLmVuYWJsZWQmJigwPT09Yi5sZW5ndGgmJihuLmRvbUVsZW1lbnQuc2V0UG9pbnRlckNhcHR1cmUodC5wb2ludGVySWQpLG4uZG9tRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsSCksbi5kb21FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsRikpLChmdW5jdGlvbiBlKHQpe2IucHVzaCh0KX0pKHQpLCJ0b3VjaCI9PT10LnBvaW50ZXJUeXBlPyhmdW5jdGlvbiBvKHQpe3N3aXRjaChxKHQpLGIubGVuZ3RoKXtjYXNlIDE6c3dpdGNoKG4udG91Y2hlcy5PTkUpe2Nhc2UgSjB0LlJPVEFURTppZighMT09PW4uZW5hYmxlUm90YXRlKXJldHVybjtOKCkscj1pLlRPVUNIX1JPVEFURTticmVhaztjYXNlIEowdC5QQU46aWYoITE9PT1uLmVuYWJsZVBhbilyZXR1cm47SSgpLHI9aS5UT1VDSF9QQU47YnJlYWs7ZGVmYXVsdDpyPWkuTk9ORX1icmVhaztjYXNlIDI6c3dpdGNoKG4udG91Y2hlcy5UV08pe2Nhc2UgSjB0LkRPTExZX1BBTjppZighMT09PW4uZW5hYmxlWm9vbSYmITE9PT1uLmVuYWJsZVBhbilyZXR1cm47IShmdW5jdGlvbiB0KCl7bi5lbmFibGVab29tJiZSKCksbi5lbmFibGVQYW4mJkkoKX0pKCkscj1pLlRPVUNIX0RPTExZX1BBTjticmVhaztjYXNlIEowdC5ET0xMWV9ST1RBVEU6aWYoITE9PT1uLmVuYWJsZVpvb20mJiExPT09bi5lbmFibGVSb3RhdGUpcmV0dXJuOyEoZnVuY3Rpb24gZSgpe24uZW5hYmxlWm9vbSYmUigpLG4uZW5hYmxlUm90YXRlJiZOKCl9KSgpLHI9aS5UT1VDSF9ET0xMWV9ST1RBVEU7YnJlYWs7ZGVmYXVsdDpyPWkuTk9ORX1icmVhaztkZWZhdWx0OnI9aS5OT05FfXIhPT1pLk5PTkUmJm4uZGlzcGF0Y2hFdmVudChxcmUpfSkodCk6KGZ1bmN0aW9uIGEodCl7bGV0IGU7c3dpdGNoKHQuYnV0dG9uKXtjYXNlIDA6ZT1uLm1vdXNlQnV0dG9ucy5MRUZUO2JyZWFrO2Nhc2UgMTplPW4ubW91c2VCdXR0b25zLk1JRERMRTticmVhaztjYXNlIDI6ZT1uLm1vdXNlQnV0dG9ucy5SSUdIVDticmVhaztkZWZhdWx0OmU9LTF9c3dpdGNoKGUpe2Nhc2UgWjB0LkRPTExZOmlmKCExPT09bi5lbmFibGVab29tKXJldHVybjshKGZ1bmN0aW9uIGUodCl7Xy5zZXQodC5jbGllbnRYLHQuY2xpZW50WSl9KSh0KSxyPWkuRE9MTFk7YnJlYWs7Y2FzZSBaMHQuUk9UQVRFOmlmKHQuY3RybEtleXx8dC5tZXRhS2V5fHx0LnNoaWZ0S2V5KXtpZighMT09PW4uZW5hYmxlUGFuKXJldHVybjtQKHQpLHI9aS5QQU59ZWxzZXtpZighMT09PW4uZW5hYmxlUm90YXRlKXJldHVybjtMKHQpLHI9aS5ST1RBVEV9YnJlYWs7Y2FzZSBaMHQuUEFOOmlmKHQuY3RybEtleXx8dC5tZXRhS2V5fHx0LnNoaWZ0S2V5KXtpZighMT09PW4uZW5hYmxlUm90YXRlKXJldHVybjtMKHQpLHI9aS5ST1RBVEV9ZWxzZXtpZighMT09PW4uZW5hYmxlUGFuKXJldHVybjtQKHQpLHI9aS5QQU59YnJlYWs7ZGVmYXVsdDpyPWkuTk9ORX1yIT09aS5OT05FJiZuLmRpc3BhdGNoRXZlbnQocXJlKX0pKHQpKX1mdW5jdGlvbiBIKHQpeyExIT09bi5lbmFibGVkJiYoInRvdWNoIj09PXQucG9pbnRlclR5cGU/KGZ1bmN0aW9uIGUodCl7c3dpdGNoKHEodCkscil7Y2FzZSBpLlRPVUNIX1JPVEFURTppZighMT09PW4uZW5hYmxlUm90YXRlKXJldHVybjtPKHQpLG4udXBkYXRlKCk7YnJlYWs7Y2FzZSBpLlRPVUNIX1BBTjppZighMT09PW4uZW5hYmxlUGFuKXJldHVybjt6KHQpLG4udXBkYXRlKCk7YnJlYWs7Y2FzZSBpLlRPVUNIX0RPTExZX1BBTjppZighMT09PW4uZW5hYmxlWm9vbSYmITE9PT1uLmVuYWJsZVBhbilyZXR1cm47IShmdW5jdGlvbiBlKHQpe24uZW5hYmxlWm9vbSYmRCh0KSxuLmVuYWJsZVBhbiYmeih0KX0pKHQpLG4udXBkYXRlKCk7YnJlYWs7Y2FzZSBpLlRPVUNIX0RPTExZX1JPVEFURTppZighMT09PW4uZW5hYmxlWm9vbSYmITE9PT1uLmVuYWJsZVJvdGF0ZSlyZXR1cm47IShmdW5jdGlvbiBvKHQpe24uZW5hYmxlWm9vbSYmRCh0KSxuLmVuYWJsZVJvdGF0ZSYmTyh0KX0pKHQpLG4udXBkYXRlKCk7YnJlYWs7ZGVmYXVsdDpyPWkuTk9ORX19KSh0KTooZnVuY3Rpb24gbyh0KXtpZighMT09PW4uZW5hYmxlZClyZXR1cm47c3dpdGNoKHIpe2Nhc2UgaS5ST1RBVEU6aWYoITE9PT1uLmVuYWJsZVJvdGF0ZSlyZXR1cm47IShmdW5jdGlvbiBlKHQpe2Quc2V0KHQuY2xpZW50WCx0LmNsaWVudFkpLHAuc3ViVmVjdG9ycyhkLGgpLm11bHRpcGx5U2NhbGFyKG4ucm90YXRlU3BlZWQpO2NvbnN0IGU9bi5kb21FbGVtZW50O1MoMipNYXRoLlBJKnAueC9lLmNsaWVudEhlaWdodCksTSgyKk1hdGguUEkqcC55L2UuY2xpZW50SGVpZ2h0KSxoLmNvcHkoZCksbi51cGRhdGUoKX0pKHQpO2JyZWFrO2Nhc2UgaS5ET0xMWTppZighMT09PW4uZW5hYmxlWm9vbSlyZXR1cm47IShmdW5jdGlvbiByKHQpe3kuc2V0KHQuY2xpZW50WCx0LmNsaWVudFkpLHYuc3ViVmVjdG9ycyh5LF8pLHYueT4wP0EodygpKTp2Lnk8MCYmayh3KCkpLF8uY29weSh5KSxuLnVwZGF0ZSgpfSkodCk7YnJlYWs7Y2FzZSBpLlBBTjppZighMT09PW4uZW5hYmxlUGFuKXJldHVybjshKGZ1bmN0aW9uIG8odCl7bS5zZXQodC5jbGllbnRYLHQuY2xpZW50WSksZy5zdWJWZWN0b3JzKG0sZikubXVsdGlwbHlTY2FsYXIobi5wYW5TcGVlZCksQyhnLngsZy55KSxmLmNvcHkobSksbi51cGRhdGUoKX0pKHQpfX0pKHQpKX1mdW5jdGlvbiBGKHQpeyExIT09bi5lbmFibGVkJiYoInRvdWNoIj09PXQucG9pbnRlclR5cGU/KGZ1bmN0aW9uIGUodCl7bi5kaXNwYXRjaEV2ZW50KFlyZSkscj1pLk5PTkV9KSgpOihmdW5jdGlvbiBvKHQpe24uZGlzcGF0Y2hFdmVudChZcmUpLHI9aS5OT05FfSkoKSxXKHQpLDA9PT1iLmxlbmd0aCYmKG4uZG9tRWxlbWVudC5yZWxlYXNlUG9pbnRlckNhcHR1cmUodC5wb2ludGVySWQpLG4uZG9tRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsSCksbi5kb21FbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsRikpKX1mdW5jdGlvbiBWKHQpe1codCl9ZnVuY3Rpb24gVSh0KXshMT09PW4uZW5hYmxlZHx8ITE9PT1uLmVuYWJsZVpvb218fHIhPT1pLk5PTkUmJnIhPT1pLlJPVEFURXx8KHQucHJldmVudERlZmF1bHQoKSxuLmRpc3BhdGNoRXZlbnQocXJlKSwoZnVuY3Rpb24gZSh0KXt0LmRlbHRhWTwwP2sodygpKTp0LmRlbHRhWT4wJiZBKHcoKSksbi51cGRhdGUoKX0pKHQpLG4uZGlzcGF0Y2hFdmVudChZcmUpKX1mdW5jdGlvbiBqKHQpeyExIT09bi5lbmFibGVkJiYhMSE9PW4uZW5hYmxlUGFuJiYoZnVuY3Rpb24gZSh0KXtsZXQgZT0hMTtzd2l0Y2godC5jb2RlKXtjYXNlIG4ua2V5cy5VUDpDKDAsbi5rZXlQYW5TcGVlZCksZT0hMDticmVhaztjYXNlIG4ua2V5cy5CT1RUT006QygwLC1uLmtleVBhblNwZWVkKSxlPSEwO2JyZWFrO2Nhc2Ugbi5rZXlzLkxFRlQ6QyhuLmtleVBhblNwZWVkLDApLGU9ITA7YnJlYWs7Y2FzZSBuLmtleXMuUklHSFQ6Qygtbi5rZXlQYW5TcGVlZCwwKSxlPSEwfWUmJih0LnByZXZlbnREZWZhdWx0KCksbi51cGRhdGUoKSl9KSh0KX1mdW5jdGlvbiBHKHQpeyExIT09bi5lbmFibGVkJiZ0LnByZXZlbnREZWZhdWx0KCl9ZnVuY3Rpb24gVyh0KXtkZWxldGUgeFt0LnBvaW50ZXJJZF07Zm9yKGxldCBlPTA7ZTxiLmxlbmd0aDtlKyspaWYoYltlXS5wb2ludGVySWQ9PXQucG9pbnRlcklkKXJldHVybiB2b2lkIGIuc3BsaWNlKGUsMSl9ZnVuY3Rpb24gcSh0KXtsZXQgZT14W3QucG9pbnRlcklkXTt2b2lkIDA9PT1lJiYoZT1uZXcgQzV0LHhbdC5wb2ludGVySWRdPWUpLGUuc2V0KHQucGFnZVgsdC5wYWdlWSl9ZnVuY3Rpb24gWSh0KXtyZXR1cm4geFsodC5wb2ludGVySWQ9PT1iWzBdLnBvaW50ZXJJZD9iWzFdOmJbMF0pLnBvaW50ZXJJZF19bi5kb21FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IixHKSxuLmRvbUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLEIpLG4uZG9tRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyY2FuY2VsIixWKSxuLmRvbUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLFUse3Bhc3NpdmU6ITF9KSx0aGlzLnVwZGF0ZSgpfX1jbGFzcyAkcmUgZXh0ZW5kcyBlNXR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLl9sYXN0TWVzaD1udWxsLHRoaXMuX2Nsb2NrPW5ldyBvaWUsdGhpcy5fY2FudmFzU2l6ZT1udWxsLHRoaXMuX2xheWVyc0NvbmZpZz1udWxsLHRoaXMuX3J1bkNvbG9yPXR9X2lzT2JqZWN0KHQpe3JldHVybiJvYmplY3QiPT10eXBlb2YgdCYmbnVsbCE9dCYmIUFycmF5LmlzQXJyYXkodCl9X2FwcGx5RGVmYXVsdHModCxlKXtsZXQgbj17fTtjb25zdCBpPVt0LGVdO2ZvcihsZXQgdD0wO3Q8aS5sZW5ndGg7dCsrKXtjb25zdCBlPWlbdF07Zm9yKGxldCB0IGluIGUpe2NvbnN0IGk9dCBpbiBuO3RoaXMuX2lzT2JqZWN0KGVbdF0pP25bdF09dGhpcy5fYXBwbHlEZWZhdWx0cyhuW3RdfHx7fSxlW3RdKTppfHwoblt0XT1lW3RdKX19cmV0dXJuIG59X2NyZWF0ZUxheWVycygpe2lmKHRoaXMuX2xheWVyc0NvbmZpZyYmdGhpcy5fc2NlbmUmJnRoaXMuX2xhc3RNZXNoKXtpZih0aGlzLl9sYXllcnNDb25maWcuc2hvd0JvdW5kaW5nQm94KXt2YXIgdD1uZXcgc3JlKHRoaXMuX2xhc3RNZXNoLG5ldyBzNHQoInJnYigwLCAwLCAyNTUpIikpO3RoaXMuX3NjZW5lLmFkZCh0KX1pZih0aGlzLl9sYXllcnNDb25maWcuc2hvd0F4ZXMpe3ZhciBlPW5ldyBocmUoNSk7dGhpcy5fc2NlbmUuYWRkKGUpfX19c2V0TGF5ZXJzQ29uZmlnKHQpe3RoaXMuX2xheWVyc0NvbmZpZz10aGlzLl9hcHBseURlZmF1bHRzKHQsdGhpcy5fbGF5ZXJzQ29uZmlnfHx7fSl9X2NyZWF0ZVdvcmxkKHQsZSl7aWYodGhpcy5pc1JlYWR5KCkpcmV0dXJuO3RoaXMuX3NjZW5lPW5ldyBjN3Q7dmFyIG49bmV3IG1yZVt0LmNhbWVyYS5jbHNdKHQuY2FtZXJhLmZvdix0aGlzLl9jYW52YXNTaXplLndpZHRoL3RoaXMuX2NhbnZhc1NpemUuaGVpZ2h0LHQuY2FtZXJhLm5lYXIsdC5jYW1lcmEuZmFyKTt0aGlzLl9jYW1lcmE9bix0aGlzLmluaXRDYW1lcmFQb3NpdGlvbj1udWxsLHQuY2FtZXJhLnBvc2l0aW9uJiYodGhpcy5pbml0Q2FtZXJhUG9zaXRpb249KG5ldyBINXQpLmZyb21BcnJheSh0LmNhbWVyYS5wb3NpdGlvbikpLHRoaXMuaW5pdENhbWVyYUxvb2tBdD1udWxsLHQuY2FtZXJhLmxvb2tBdCYmKHRoaXMuaW5pdENhbWVyYUxvb2tBdD0obmV3IEg1dCkuZnJvbUFycmF5KHQuY2FtZXJhLmxvb2tBdCkpO3ZhciBpPW5ldyBYcmUobixlKTtjb25zdCByPWk7ci5sb29rU3BlZWQ9LjQsci5tb3ZlbWVudFNwZWVkPTIwLHIubm9GbHk9ITAsci5sb29rVmVydGljYWw9ITAsci5jb25zdHJhaW5WZXJ0aWNhbD0hMCxyLnZlcnRpY2FsTWluPTEsci52ZXJ0aWNhbE1heD0yLHIuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix0aGlzLl9vbkNhbWVyYVBvc2l0aW9uQ2hhbmdlLmJpbmQodGhpcykpLHRoaXMuX2NhbWVyYUNvbnRyb2xzPWksdGhpcy5fcmVuZGVyZXI9bmV3IG83dCh7YW50aWFsaWFzOiEwfSksdGhpcy5fcmVuZGVyZXIuc2V0UGl4ZWxSYXRpbyh3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyksdGhpcy5fcmVuZGVyZXIuc2V0U2l6ZSh0aGlzLl9jYW52YXNTaXplLndpZHRoLHRoaXMuX2NhbnZhc1NpemUuaGVpZ2h0KSx0aGlzLl9yZW5kZXJlci5zZXRDbGVhckNvbG9yKDE2Nzc3MjE1LDEpfV9jbGVhclNjZW5lKCl7Zm9yKDt0aGlzLl9zY2VuZS5jaGlsZHJlbi5sZW5ndGg+MDspdGhpcy5fc2NlbmUucmVtb3ZlKHRoaXMuX3NjZW5lLmNoaWxkcmVuWzBdKX1nZXRSZW5kZXJlcigpe3JldHVybiB0aGlzLl9yZW5kZXJlcn1nZXRDYW1lcmFDb250cm9scygpe3JldHVybiB0aGlzLl9jYW1lcmFDb250cm9sc31pc1JlYWR5KCl7cmV0dXJuISF0aGlzLl9jYW1lcmEmJiEhdGhpcy5fY2FtZXJhQ29udHJvbHN9Z2V0Q2FtZXJhUG9zaXRpb24oKXtyZXR1cm57ZmFyOnRoaXMuX2NhbWVyYS5mYXIscG9zaXRpb246dGhpcy5fY2FtZXJhLnBvc2l0aW9uLmNsb25lKCksdGFyZ2V0OnRoaXMuX2NhbWVyYUNvbnRyb2xzLnRhcmdldC5jbG9uZSgpfX1zZXRDYW52YXNTaXplKHQpe3RoaXMuX2NhbnZhc1NpemU9dH1kcmF3KCl7dGhpcy5fYW5pbWF0aW9uRnJhbWVJbmRleCYmY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fYW5pbWF0aW9uRnJhbWVJbmRleCksdGhpcy5fY2FtZXJhLmFzcGVjdD10aGlzLl9jYW52YXNTaXplLndpZHRoL3RoaXMuX2NhbnZhc1NpemUuaGVpZ2h0LHRoaXMuX2NhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCksdGhpcy5fcmVuZGVyZXIuc2V0U2l6ZSh0aGlzLl9jYW52YXNTaXplLndpZHRoLHRoaXMuX2NhbnZhc1NpemUuaGVpZ2h0KTtjb25zdCB0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fY2xvY2suZ2V0RGVsdGEoKTt0aGlzLl9jYW1lcmFDb250cm9scy51cGRhdGUoZSksdGhpcy5fYW5pbWF0aW9uRnJhbWVJbmRleD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCksdGhpcy5fcmVuZGVyZXIucmVuZGVyKHRoaXMuX3NjZW5lLHRoaXMuX2NhbWVyYSl9LmJpbmQodGhpcyk7dCgpfXVwZGF0ZVNjZW5lKHQsZSl7bGV0IG49e307ImNvbmZpZyJpbiB0JiZ0LmNvbmZpZyYmKG49SlNPTi5wYXJzZSh0LmNvbmZpZykpLHRoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiYmVmb3JlVXBkYXRlU2NlbmUifSk7bj10aGlzLl9hcHBseURlZmF1bHRzKG4se2NhbWVyYTp7Y2xzOiJQZXJzcGVjdGl2ZUNhbWVyYSIsZm92Ojc1LG5lYXI6LjEsZmFyOjFlM30sbGlnaHRzOlt7Y2xzOiJBbWJpZW50TGlnaHQiLGNvbG9yOiIjZmZmZmZmIixpbnRlbnNpdHk6Ljc1fSx7Y2xzOiJEaXJlY3Rpb25hbExpZ2h0Iixjb2xvcjoiI2ZmZmZmZiIsaW50ZW5zaXR5Oi43NSxwb3NpdGlvbjpbMCwtMSwyXX1dfSksdGhpcy5fY3JlYXRlV29ybGQobixlKSx0aGlzLl9jbGVhclNjZW5lKCksdGhpcy5fY3JlYXRlTGlnaHRzKHRoaXMuX3NjZW5lLG4pLHRoaXMuX2NyZWF0ZUdlb21ldHJ5KHQsbiksdGhpcy5fY3JlYXRlTGF5ZXJzKCksdGhpcy5kcmF3KCl9cmVzZXRWaWV3KHQpe2lmKCF0aGlzLmlzUmVhZHkoKSlyZXR1cm47bGV0IGU7dGhpcy5fY2FtZXJhQ29udHJvbHMucmVzZXQoKSwhdCYmdGhpcy5fbGFzdE1lc2gmJihlPXRoaXMuX2xhc3RNZXNoKSxlJiYodGhpcy5fZml0T2JqZWN0VG9WaWV3cG9ydChlKSx0aGlzLl9sYXN0TWVzaD1lKSx0aGlzLl9jYW1lcmFDb250cm9scy51cGRhdGUoKX1fY3JlYXRlR2VvbWV0cnkodCxlKXtjb25zdCBuPXQubWVzaDtuLnZlcnRpY2VzJiZuLmZhY2VzJiZuLmZhY2VzLmxlbmd0aD90aGlzLl9jcmVhdGVNZXNoKG4sZSk6dGhpcy5fY3JlYXRlUG9pbnRDbG91ZChuLGUpfV9jcmVhdGVQb2ludENsb3VkKHQsZSl7Y29uc3Qgbj10LnZlcnRpY2VzLGk9dC5jb2xvcnM7bGV0IHI9e21hdGVyaWFsOntjbHM6IlBvaW50c01hdGVyaWFsIixzaXplOi4wMDV9fTtpJiZpLmxlbmd0aD09bi5sZW5ndGg/ci5tYXRlcmlhbC52ZXJ0ZXhDb2xvcnM9ITA6ci5tYXRlcmlhbC5jb2xvcj10aGlzLl9ydW5Db2xvcjtjb25zdCBvPXRoaXMuX2FwcGx5RGVmYXVsdHMoZSxyKSxhPW5ldyBONHQscz1uZXcgRmxvYXQzMkFycmF5KG4uZmxhdCgpKTtpZihhLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBoNHQocywzKSksaSYmaS5sZW5ndGg9PW4ubGVuZ3RoKXtjb25zdCB0PW5ldyBGbG9hdDMyQXJyYXkoaS5mbGF0KCkpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV09dFtlXS8yNTU7YS5zZXRBdHRyaWJ1dGUoImNvbG9yIixuZXcgaDR0KHQsMykpfXZhciBsPW5ldyBtcmVbby5tYXRlcmlhbC5jbHNdKG8ubWF0ZXJpYWwpLGM9bmV3IHV0ZShhLGwpO3RoaXMuX3NjZW5lLmFkZChjKSx0aGlzLl9sYXN0TWVzaD1jfXNldENhbWVyYVZpZXdwb2ludCh0LGUsbil7dGhpcy5fc2lsZW50PSEwLHRoaXMuX2NhbWVyYS5mYXI9ZSx0aGlzLl9jYW1lcmEucG9zaXRpb24uc2V0KHQueCx0LnksdC56KSx0aGlzLl9jYW1lcmEubG9va0F0KG4uY2xvbmUoKSksdGhpcy5fY2FtZXJhLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKSx0aGlzLl9jYW1lcmFDb250cm9scy50YXJnZXQ9bi5jbG9uZSgpLHRoaXMuX2NhbWVyYUNvbnRyb2xzLnVwZGF0ZSgpLHRoaXMuX3NpbGVudD0hMX1fb25DYW1lcmFQb3NpdGlvbkNoYW5nZSh0KXt0aGlzLl9zaWxlbnR8fHRoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiY2FtZXJhUG9zaXRpb25DaGFuZ2UiLGV2ZW50OnR9KX1fZml0T2JqZWN0VG9WaWV3cG9ydCh0KXt2YXIgZSxuO2NvbnN0IGk9bmV3IFU1dCxyPW5ldyBINXQsbz1uZXcgSDV0O2kuc2V0RnJvbU9iamVjdCh0KSxpLmdldENlbnRlcihyKSxpLmdldFNpemUobyk7Y29uc3QgYT1NYXRoLm1heChvLngsby55LG8ueikscz10aGlzLl9jYW1lcmEuZm92KihNYXRoLlBJLzE4MCk7bGV0IGw9MS4yNSpNYXRoLmFicyhhLygyKk1hdGgudGFuKHMvMikpKTtjb25zdCBjPWkubWluLnosdT1jPDA/LWMrbDpsLWMsaD1udWxsIT09KGU9dGhpcy5pbml0Q2FtZXJhUG9zaXRpb24pJiZ2b2lkIDAhPT1lP2U6bmV3IEg1dChyLngsci55LGwpLGQ9bnVsbCE9PShuPXRoaXMuaW5pdENhbWVyYUxvb2tBdCkmJnZvaWQgMCE9PW4/bjpyO3RoaXMuc2V0Q2FtZXJhVmlld3BvaW50KGgsMyp1LGQpfV9jcmVhdGVNZXNoKHQsZSl7Y29uc3Qgbj10LnZlcnRpY2VzLGk9dC5mYWNlcyxyPXQuY29sb3JzLG89dGhpcy5fYXBwbHlEZWZhdWx0cyhlLHttYXRlcmlhbDp7Y2xzOiJNZXNoU3RhbmRhcmRNYXRlcmlhbCIsY29sb3I6IiNhMGEwYTAiLHJvdWdobmVzczoxLG1ldGFsbmVzczowfX0pLGE9bmV3IE40dCxzPW5ldyBGbG9hdDMyQXJyYXkobi5mbGF0KCkpO2Euc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGg0dChzLDMpKTtjb25zdCBsPW5ldyBVaW50MTZBcnJheShpLmZsYXQoKSk7aWYociYmci5sZW5ndGgpe2NvbnN0IHQ9ci5mbGF0KCk7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspdFtlXT10W2VdLzI1NTthLnNldEF0dHJpYnV0ZSgiY29sb3IiLG5ldyBoNHQobmV3IEZsb2F0MzJBcnJheSh0KSwzKSksby5tYXRlcmlhbD1vLm1hdGVyaWFsfHx7fSxvLm1hdGVyaWFsLnZlcnRleENvbG9ycz0hMH1hLmNlbnRlcigpLGEuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCksYS5zZXRJbmRleChuZXcgaDR0KGwsMSkpLGEuY29tcHV0ZVZlcnRleE5vcm1hbHMoKTtsZXQgYz1uZXcgbXJlW28ubWF0ZXJpYWwuY2xzXShvLm1hdGVyaWFsKSx1PW5ldyBLNHQoYSxjKTt1LmNhc3RTaGFkb3c9ITAsdS5yZWNlaXZlU2hhZG93PSEwLHRoaXMuX3NjZW5lLmFkZCh1KSx0aGlzLl9sYXN0TWVzaD11fV9jcmVhdGVMaWdodHModCxlKXtmb3IobGV0IG49MDtuPGUubGlnaHRzLmxlbmd0aDtuKyspe2NvbnN0IGk9ZS5saWdodHNbbl07bGV0IHI9bmV3IG1yZVtpLmNsc10oaS5jb2xvcixpLmludGVuc2l0eSk7aS5wb3NpdGlvbiYmci5wb3NpdGlvbi5zZXQoaS5wb3NpdGlvblswXSxpLnBvc2l0aW9uWzFdLGkucG9zaXRpb25bMl0pLHQuYWRkKHIpfX19bGV0IEtyZT1jbGFzcyBleHRlbmRzKGNyKHdlKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuc2VsZWN0ZWRWaWV3PSJhbGwiLHRoaXMuYWN0aXZlPSExLHRoaXMuX2NvbG9yU2NhbGVGdW5jdGlvbj1fTyx0aGlzLl9zdGVwcz1bXSx0aGlzLl9tZXNoVmlld2VyQXR0YWNoZWQ9ITEsdGhpcy5fY2FtZXJhUG9zaXRpb25Jbml0aWFsaXplZD0hMSx0aGlzLl9pc01lc2hMb2FkaW5nPSExfWdldCBfcnVuQ29sb3IoKXtyZXR1cm4gdGhpcy5fY29sb3JTY2FsZUZ1bmN0aW9uKHRoaXMucnVuKX1jb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5fZGF0YVByb3ZpZGVyPW5ldyAkMHQodGhpcy5yZXF1ZXN0TWFuYWdlcik7Y29uc3QgdD1uZXcgJHJlKHRoaXMuX3J1bkNvbG9yKTt0LmFkZEV2ZW50TGlzdGVuZXIoImJlZm9yZVVwZGF0ZVNjZW5lIix0aGlzLl91cGRhdGVDYW52YXNTaXplLmJpbmQodGhpcykpLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2FtZXJhUG9zaXRpb25DaGFuZ2UiLHRoaXMuX29uQ2FtZXJhUG9zaXRpb25DaGFuZ2UuYmluZCh0aGlzKSksdGhpcy5fbWVzaFZpZXdlcj10fXJlbG9hZCgpe3RoaXMuYWN0aXZlJiZ0aGlzLl9kYXRhUHJvdmlkZXImJih0aGlzLl9pc01lc2hMb2FkaW5nPSEwLHRoaXMuX2RhdGFQcm92aWRlci5yZWxvYWQodGhpcy5ydW4sdGhpcy50YWcsdGhpcy5zYW1wbGUpLnRoZW4oKHQ9Pnt0JiYodGhpcy5fc3RlcHM9dCx0aGlzLl9zdGVwSW5kZXg9dC5sZW5ndGgtMSl9KSkuY2F0Y2goKHQ9PntpZighdHx8IXQuY29kZXx8dC5jb2RlIT1xMHQuQ0FOQ0VMTEVEKXRocm93IHQ9dHx8IlJlc3BvbnNlIHByb2Nlc3NpbmcgZmFpbGVkLiIsbmV3IEVycm9yKHQpfSkpKX1fdXBkYXRlU2NlbmUoKXtjb25zdCB0PXRoaXMuX2N1cnJlbnRTdGVwO3QmJnQubWVzaCYmKHRoaXMuX21lc2hWaWV3ZXIudXBkYXRlU2NlbmUodCx0aGlzKSx0aGlzLl9jYW1lcmFQb3NpdGlvbkluaXRpYWxpemVkfHwodGhpcy5fbWVzaFZpZXdlci5yZXNldFZpZXcoKSx0aGlzLl9jYW1lcmFQb3NpdGlvbkluaXRpYWxpemVkPSEwKSx0aGlzLl9tZXNoVmlld2VyQXR0YWNoZWR8fCh0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQodGhpcy5fbWVzaFZpZXdlci5nZXRSZW5kZXJlcigpLmRvbUVsZW1lbnQpLHRoaXMuX21lc2hWaWV3ZXJBdHRhY2hlZD0hMCkpfV9kZWJvdW5jZWRGZXRjaE1lc2goKXt0aGlzLmRlYm91bmNlKCJmZXRjaE1lc2giLCgoKT0+dGhpcy5fbWF5YmVGZXRjaE1lc2goKSksMTAwKX1fbWF5YmVGZXRjaE1lc2goKXtyZXR1cm4gbih0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9dGhpcy5fY3VycmVudFN0ZXA7aWYodCYmIXQubWVzaCYmIXQubWVzaEZldGNoaW5nKXt0Lm1lc2hGZXRjaGluZz0hMCx0aGlzLl9pc01lc2hMb2FkaW5nPSEwO3RyeXtjb25zdCBlPXlpZWxkIHRoaXMuX2RhdGFQcm92aWRlci5mZXRjaERhdGEodCx0aGlzLnJ1bix0aGlzLnRhZyx0aGlzLnNhbXBsZSk7dC5tZXNoPWVbMF0sdGhpcy5ub3RpZnlQYXRoKCJfY3VycmVudFN0ZXAubWVzaCIpfWNhdGNoKHQpe2lmKCF0fHwhdC5jb2RlfHx0LmNvZGUhPXEwdC5DQU5DRUxMRUQpdGhyb3cgdD10fHwiUmVzcG9uc2UgcHJvY2Vzc2luZyBmYWlsZWQuIixuZXcgRXJyb3IodCl9ZmluYWxseXt0aGlzLl9pc01lc2hMb2FkaW5nPSExLHQubWVzaEZldGNoaW5nPSExfX19KSl9X29uQ2FtZXJhUG9zaXRpb25DaGFuZ2UoKXtpZighdGhpcy5fbWVzaFZpZXdlci5pc1JlYWR5KCkpcmV0dXJuO2NvbnN0IHQ9bmV3IEN1c3RvbUV2ZW50KCJjYW1lcmEtcG9zaXRpb24tY2hhbmdlIix7ZGV0YWlsOnRoaXMuX21lc2hWaWV3ZXIuZ2V0Q2FtZXJhUG9zaXRpb24oKX0pO3RoaXMuZGlzcGF0Y2hFdmVudCh0KX1zZXRDYW1lcmFWaWV3cG9pbnQodCxlLG4pe3RoaXMuX21lc2hWaWV3ZXIuc2V0Q2FtZXJhVmlld3BvaW50KHQsZSxuKX1fdXBkYXRlQ2FudmFzU2l6ZSgpe2NvbnN0IHQ9dGhpcy5vZmZzZXRXaWR0aCxlPXQsbj10aGlzLiQkKCIudGYtbWVzaC1sb2FkZXItaGVhZGVyIikub2Zmc2V0SGVpZ2h0O3RoaXMuX21lc2hWaWV3ZXIuc2V0Q2FudmFzU2l6ZSh7d2lkdGg6dCxoZWlnaHQ6ZS1ufSl9cmVkcmF3KCl7dGhpcy5fdXBkYXRlQ2FudmFzU2l6ZSgpLHRoaXMuaXNDb25uZWN0ZWQmJnRoaXMuX21lc2hWaWV3ZXIuZHJhdygpfV9oYXNBdExlYXN0T25lU3RlcCh0KXtyZXR1cm4hIXQmJnQubGVuZ3RoPjB9X2hhc011bHRpcGxlU3RlcHModCl7cmV0dXJuISF0JiZ0Lmxlbmd0aD4xfWdldCBfY3VycmVudFN0ZXAoKXtyZXR1cm4gdGhpcy5fc3RlcHNbdGhpcy5fc3RlcEluZGV4XXx8bnVsbH1nZXQgX3N0ZXBWYWx1ZSgpe2NvbnN0IHQ9dGhpcy5fY3VycmVudFN0ZXA7cmV0dXJuIHQ/dC5zdGVwOjB9Z2V0IF9jdXJyZW50V2FsbFRpbWUoKXtjb25zdCB0PXRoaXMuX2N1cnJlbnRTdGVwO3JldHVybiB0P1NPKHQud2FsbF90aW1lKToiIn1fZ2V0TWF4U3RlcEluZGV4KHQpe3JldHVybiB0Lmxlbmd0aC0xfV9nZXRTYW1wbGVUZXh0KHQpe3JldHVybiBTdHJpbmcodCsxKX1faGFzTXVsdGlwbGVTYW1wbGVzKHQpe3JldHVybiB0PjF9X3VwZGF0ZVZpZXcoKXt0aGlzLl9tZXNoVmlld2VyJiYiYWxsIj09dGhpcy5zZWxlY3RlZFZpZXcmJnRoaXMuX21lc2hWaWV3ZXIucmVzZXRWaWV3KCl9dG9Mb2NhbGVTdHJpbmdfKHQpe3JldHVybiB0LnRvTG9jYWxlU3RyaW5nKCl9fTtLcmUudGVtcGxhdGU9eGVgCiAgICA8dGYtY2FyZC1oZWFkaW5nIGNvbG9yPSJbW19ydW5Db2xvcl1dIiBjbGFzcz0idGYtbWVzaC1sb2FkZXItaGVhZGVyIj4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19oYXNNdWx0aXBsZVNhbXBsZXMob2ZTYW1wbGVzKV1dIj4KICAgICAgICA8ZGl2PnNhbXBsZTogW1tfZ2V0U2FtcGxlVGV4dChzYW1wbGUpXV0gb2YgW1tvZlNhbXBsZXNdXTwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2hhc0F0TGVhc3RPbmVTdGVwKF9zdGVwcyldXSI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy1yb3ciPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy1sYWJlbCI+CiAgICAgICAgICAgIHN0ZXAKICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkIgogICAgICAgICAgICAgID5bW3RvTG9jYWxlU3RyaW5nXyhfc3RlcFZhbHVlKV1dPC9zcGFuCiAgICAgICAgICAgID4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy1sYWJlbCBoZWFkaW5nLXJpZ2h0Ij4KICAgICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19jdXJyZW50V2FsbFRpbWVdXSI+CiAgICAgICAgICAgICAgW1tfY3VycmVudFdhbGxUaW1lXV0KICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwgcmlnaHQiPgogICAgICAgICAgICA8cGFwZXItc3Bpbm5lci1saXRlIGFjdGl2ZSBoaWRkZW4kPSJbWyFfaXNNZXNoTG9hZGluZ11dIj4KICAgICAgICAgICAgPC9wYXBlci1zcGlubmVyLWxpdGU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19oYXNNdWx0aXBsZVN0ZXBzKF9zdGVwcyldXSI+CiAgICAgICAgPGRpdj4KICAgICAgICAgIDxwYXBlci1zbGlkZXIKICAgICAgICAgICAgaWQ9InN0ZXBzIgogICAgICAgICAgICBpbW1lZGlhdGUtdmFsdWU9Int7X3N0ZXBJbmRleH19IgogICAgICAgICAgICBtYXg9IltbX2dldE1heFN0ZXBJbmRleChfc3RlcHMpXV0iCiAgICAgICAgICAgIG1heC1tYXJrZXJzPSJbW19nZXRNYXhTdGVwSW5kZXgoX3N0ZXBzKV1dIgogICAgICAgICAgICBzbmFwcwogICAgICAgICAgICBzdGVwPSIxIgogICAgICAgICAgICB2YWx1ZT0ie3tfc3RlcEluZGV4fX0iCiAgICAgICAgICA+PC9wYXBlci1zbGlkZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L3RmLWNhcmQtaGVhZGluZz4KICAgIDxzdHlsZT4KICAgICAgcGFwZXItc2xpZGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXJnaW4tbGVmdDogMXB4OwogICAgICAgIG1hcmdpbi1yaWdodDogMXB4OwogICAgICB9CiAgICAgIC50Zi1tZXNoLWxvYWRlci1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTA1cHg7CiAgICAgIH0KICAgICAgW2hpZGRlbl0gewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxLcmUucHJvdG90eXBlLCJydW4iLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sS3JlLnByb3RvdHlwZSwidGFnIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLEtyZS5wcm90b3R5cGUsInNhbXBsZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk51bWJlcn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxLcmUucHJvdG90eXBlLCJvZlNhbXBsZXMiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sS3JlLnByb3RvdHlwZSwic2VsZWN0ZWRWaWV3Iix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sS3JlLnByb3RvdHlwZSwiYWN0aXZlIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLGJyKV0sS3JlLnByb3RvdHlwZSwicmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsJHJlKV0sS3JlLnByb3RvdHlwZSwiX21lc2hWaWV3ZXIiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsJDB0KV0sS3JlLnByb3RvdHlwZSwiX2RhdGFQcm92aWRlciIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxLcmUucHJvdG90eXBlLCJfY29sb3JTY2FsZUZ1bmN0aW9uIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXksbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sS3JlLnByb3RvdHlwZSwiX3N0ZXBzIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLG5vdGlmeTohMH0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxLcmUucHJvdG90eXBlLCJfc3RlcEluZGV4Iix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sS3JlLnByb3RvdHlwZSwiX21lc2hWaWV3ZXJBdHRhY2hlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLEtyZS5wcm90b3R5cGUsIl9jYW1lcmFQb3NpdGlvbkluaXRpYWxpemVkIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sS3JlLnByb3RvdHlwZSwiX2lzTWVzaExvYWRpbmciLHZvaWQgMCksdChbcygicnVuIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sS3JlLnByb3RvdHlwZSwiX3J1bkNvbG9yIixudWxsKSx0KFthKCJydW4iLCJ0YWciLCJhY3RpdmUiLCJfZGF0YVByb3ZpZGVyIiwiX21lc2hWaWV3ZXIiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLEtyZS5wcm90b3R5cGUsInJlbG9hZCIsbnVsbCksdChbYSgiX2N1cnJlbnRTdGVwLioiLCJfbWVzaFZpZXdlciIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sS3JlLnByb3RvdHlwZSwiX3VwZGF0ZVNjZW5lIixudWxsKSx0KFthKCJfY3VycmVudFN0ZXAiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLEtyZS5wcm90b3R5cGUsIl9kZWJvdW5jZWRGZXRjaE1lc2giLG51bGwpLHQoW3MoIl9zdGVwcyIsIl9zdGVwSW5kZXgiKSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxLcmUucHJvdG90eXBlLCJfY3VycmVudFN0ZXAiLG51bGwpLHQoW3MoIl9jdXJyZW50U3RlcCIpLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLEtyZS5wcm90b3R5cGUsIl9zdGVwVmFsdWUiLG51bGwpLHQoW3MoIl9jdXJyZW50U3RlcCIpLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLEtyZS5wcm90b3R5cGUsIl9jdXJyZW50V2FsbFRpbWUiLG51bGwpLHQoW2EoInNlbGVjdGVkVmlldyIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sS3JlLnByb3RvdHlwZSwiX3VwZGF0ZVZpZXciLG51bGwpLEtyZT10KFtpKCJ0Zi1tZXNoLWxvYWRlciIpXSxLcmUpO2xldCBacmU9Y2xhc3MgZXh0ZW5kcyB3ZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5yZWxvYWRPblJlYWR5PSEwLHRoaXMuX3RhZ0ZpbHRlcj0iLioiLHRoaXMuX3NlbGVjdGVkVmlldz0iYWxsIix0aGlzLl9yZXF1ZXN0TWFuYWdlcj1uZXcgYnIsd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsKCgpPT57dGhpcy5faGFuZGxlV2luZG93UmVzaXplKCl9KSwhMSksdGhpcy5yZWxvYWRPblJlYWR5JiZ0aGlzLnJlbG9hZCgpfV9nZXRBbGxDaGlsZHJlbigpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCJ0Zi1tZXNoLWxvYWRlciIpKX1fb25DYW1lcmFQb3NpdGlvbkNoYW5nZWQodCl7InNoYXJlIj09dGhpcy5fc2VsZWN0ZWRWaWV3JiZ0aGlzLl9nZXRBbGxDaGlsZHJlbigpLmZvckVhY2goKGU9Pnt0LnRhcmdldCE9ZSYmZS5zZXRDYW1lcmFWaWV3cG9pbnQodC5kZXRhaWwucG9zaXRpb24sdC5kZXRhaWwuZmFyLHQuZGV0YWlsLnRhcmdldCl9KSl9X3Nob3VsZE9wZW4odCl7cmV0dXJuIHQ8PTJ9cmVsb2FkKCl7dGhpcy5fZmV0Y2hUYWdzKCkudGhlbih0aGlzLl9yZWxvYWRNZXNoZXMuYmluZCh0aGlzKSl9X2hhbmRsZVdpbmRvd1Jlc2l6ZSgpe3RoaXMuX2dldEFsbENoaWxkcmVuKCkuZm9yRWFjaCgodD0+e3QucmVkcmF3KCl9KSl9X2ZldGNoVGFncygpe2NvbnN0IHQ9RXIoKS5wbHVnaW5Sb3V0ZSgibWVzaCIsIi90YWdzIik7cmV0dXJuIHRoaXMuX3JlcXVlc3RNYW5hZ2VyLnJlcXVlc3QodCkudGhlbigodD0+e2lmKENlLmV4cG9ydHMuaXNFcXVhbCh0LHRoaXMuX3J1blRvVGFnSW5mbykpcmV0dXJuO2NvbnN0IGU9ZnIoQ2UuZXhwb3J0cy5tYXBWYWx1ZXModCwodD0+T2JqZWN0LmtleXModCkpKSk7dGhpcy5fZGF0YU5vdEZvdW5kPTA9PT1lLmxlbmd0aCx0aGlzLl9ydW5Ub1RhZ0luZm89dH0pKX1fcmVsb2FkTWVzaGVzKCl7dGhpcy5fZ2V0QWxsQ2hpbGRyZW4oKS5mb3JFYWNoKCh0PT57dC5yZWxvYWQoKX0pKX1nZXQgX2NhdGVnb3JpZXMoKXt2YXIgdD10aGlzLl9ydW5Ub1RhZ0luZm8sZT10aGlzLl9zZWxlY3RlZFJ1bnMsbj10aGlzLl90YWdGaWx0ZXI7ZnVuY3Rpb24gaShlKXtjb25zdCBuPXRbZS5ydW5dW2UudGFnXS5zYW1wbGVzO3JldHVybiBDZS5leHBvcnRzLnJhbmdlKG4pLm1hcCgodD0+T2JqZWN0LmFzc2lnbih7fSxlLHtzYW1wbGU6dCxvZlNhbXBsZXM6bn0pKSl9cmV0dXJuIElyKENlLmV4cG9ydHMubWFwVmFsdWVzKHQsKHQ9Pk9iamVjdC5rZXlzKHQpKSksZSxuKS5tYXAoKHQ9Pk9iamVjdC5hc3NpZ24oe30sdCx7aXRlbXM6W10uY29uY2F0LmFwcGx5KFtdLHQuaXRlbXMubWFwKGkpKX0pKSl9fTtacmUudGVtcGxhdGU9eGVgCiAgICA8dGYtZGFzaGJvYXJkLWxheW91dD4KICAgICAgPGRpdiBzbG90PSJzaWRlYmFyIiBjbGFzcz0iYWxsLWNvbnRyb2xzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24gdmlldy1jb250cm9sIj4KICAgICAgICAgICAgPGgzIGNsYXNzPSJ0aXRsZSI+UG9pbnQgb2YgdmlldzwvaDM+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPHBhcGVyLXJhZGlvLWdyb3VwCiAgICAgICAgICAgICAgICBpZD0idmlldy1yYWRpby1ncm91cCIKICAgICAgICAgICAgICAgIHNlbGVjdGVkPSJ7e19zZWxlY3RlZFZpZXd9fSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8cGFwZXItcmFkaW8tYnV0dG9uIGlkPSJhbGwtcmFkaW8tYnV0dG9uIiBuYW1lPSJhbGwiPgogICAgICAgICAgICAgICAgICBEaXNwbGF5IGFsbCBwb2ludHMKICAgICAgICAgICAgICAgIDwvcGFwZXItcmFkaW8tYnV0dG9uPgogICAgICAgICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5PSIwIgogICAgICAgICAgICAgICAgICBmb3I9ImFsbC1yYWRpby1idXR0b24iCiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPSJyaWdodCIKICAgICAgICAgICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICBab29tIGFuZCBjZW50ZXIgY2FtZXJhIHRvIGRpc3BsYXkgYWxsIHBvaW50cyBhdCBvbmNlLiBOb3RlLAogICAgICAgICAgICAgICAgICB0aGF0IHNvbWUgcG9pbnRzIGNvdWxkIGJlIHRvbyBmYXIgKGkuZS4gdG9vIHNtYWxsKSB0byBiZQogICAgICAgICAgICAgICAgICB2aXNpYmxlLgogICAgICAgICAgICAgICAgPC9wYXBlci10b29sdGlwPgogICAgICAgICAgICAgICAgPHBhcGVyLXJhZGlvLWJ1dHRvbiBpZD0idXNlci1yYWRpby1idXR0b24iIG5hbWU9InVzZXIiPgogICAgICAgICAgICAgICAgICBDdXJyZW50IHZpZXcKICAgICAgICAgICAgICAgIDwvcGFwZXItcmFkaW8tYnV0dG9uPgogICAgICAgICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5PSIwIgogICAgICAgICAgICAgICAgICBmb3I9InVzZXItcmFkaW8tYnV0dG9uIgogICAgICAgICAgICAgICAgICBwb3NpdGlvbj0icmlnaHQiCiAgICAgICAgICAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgS2VlcCBjdXJyZW50IGNhbWVyYSBwb3NpdGlvbiBhbmQgem9vbSBsZXZlbC4KICAgICAgICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KICAgICAgICAgICAgICAgIDxwYXBlci1yYWRpby1idXR0b24gaWQ9InNoYXJlLXJhZGlvLWJ1dHRvbiIgbmFtZT0ic2hhcmUiPgogICAgICAgICAgICAgICAgICBTaGFyZSB2aWV3cG9pbnQKICAgICAgICAgICAgICAgIDwvcGFwZXItcmFkaW8tYnV0dG9uPgogICAgICAgICAgICAgICAgPHBhcGVyLXRvb2x0aXAKICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5PSIwIgogICAgICAgICAgICAgICAgICBmb3I9InNoYXJlLXJhZGlvLWJ1dHRvbiIKICAgICAgICAgICAgICAgICAgcG9zaXRpb249InJpZ2h0IgogICAgICAgICAgICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIFNoYXJlIHZpZXdwb2ludCBhbW9uZyBhbGwgY2FtZXJhcy4KICAgICAgICAgICAgICAgIDwvcGFwZXItdG9vbHRpcD4KICAgICAgICAgICAgICA8L3BhcGVyLXJhZGlvLWdyb3VwPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiBydW5zLXNlbGVjdG9yIj4KICAgICAgICAgIDx0Zi1ydW5zLXNlbGVjdG9yIHNlbGVjdGVkLXJ1bnM9Int7X3NlbGVjdGVkUnVuc319Ij4KICAgICAgICAgIDwvdGYtcnVucy1zZWxlY3Rvcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgc2xvdD0iY2VudGVyIj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im5vLWRhdGEtd2FybmluZyI+CiAgICAgICAgICAgIDxoMz5ObyBwb2ludCBjbG91ZCBkYXRhIHdhcyBmb3VuZC48L2gzPgogICAgICAgICAgICA8cD5Qcm9iYWJsZSBjYXVzZXM6PC9wPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgWW91IGhhdmVu4oCZdCB3cml0dGVuIGFueSBwb2ludCBjbG91ZCBkYXRhIHRvIHlvdXIgZXZlbnQgZmlsZXMuCiAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICA8bGk+VGVuc29yQm9hcmQgY2Fu4oCZdCBmaW5kIHlvdXIgZXZlbnQgZmlsZXMuPC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdeKAmXJlIG5ldyB0byB1c2luZyBUZW5zb3JCb2FyZCwgYW5kIHdhbnQgdG8gZmluZCBvdXQgaG93IHRvCiAgICAgICAgICAgICAgYWRkIGRhdGEgYW5kIHNldCB1cCB5b3VyIGV2ZW50IGZpbGVzLCBjaGVjayBvdXQgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCIKICAgICAgICAgICAgICAgID5SRUFETUU8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIHBlcmhhcHMgdGhlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnRlbnNvcmZsb3cub3JnL2dldF9zdGFydGVkL3N1bW1hcmllc19hbmRfdGVuc29yYm9hcmQiCiAgICAgICAgICAgICAgICA+VGVuc29yQm9hcmQgdHV0b3JpYWw8L2EKICAgICAgICAgICAgICA+LgogICAgICAgICAgICA8L3A+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3UgdGhpbmsgVGVuc29yQm9hcmQgaXMgY29uZmlndXJlZCBwcm9wZXJseSwgcGxlYXNlIHNlZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQjbXktdGVuc29yYm9hcmQtaXNudC1zaG93aW5nLWFueS1kYXRhLXdoYXRzLXdyb25nIgogICAgICAgICAgICAgICAgPnRoZSBzZWN0aW9uIG9mIHRoZSBSRUFETUUgZGV2b3RlZCB0byBtaXNzaW5nIGRhdGEgcHJvYmxlbXM8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgYW5kIGNvbnNpZGVyIGZpbGluZyBhbiBpc3N1ZSBvbiBHaXRIdWIuCiAgICAgICAgICAgIDwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbWyFfZGF0YU5vdEZvdW5kXV0iPgogICAgICAgICAgPHRmLXRhZy1maWx0ZXJlciB0YWctZmlsdGVyPSJ7e190YWdGaWx0ZXJ9fSI+PC90Zi10YWctZmlsdGVyZXI+CiAgICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19jYXRlZ29yaWVzXV0iIGFzPSJjYXRlZ29yeSI+CiAgICAgICAgICAgIDx0Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldwogICAgICAgICAgICAgIGNhdGVnb3J5PSJbW2NhdGVnb3J5XV0iCiAgICAgICAgICAgICAgaW5pdGlhbC1vcGVuZWQ9IltbX3Nob3VsZE9wZW4oaW5kZXgpXV0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgICAgICA8dGYtbWVzaC1sb2FkZXIKICAgICAgICAgICAgICAgICAgYWN0aXZlPSJbW2FjdGl2ZV1dIgogICAgICAgICAgICAgICAgICBzZWxlY3RlZC12aWV3PSJbW19zZWxlY3RlZFZpZXddXSIKICAgICAgICAgICAgICAgICAgcnVuPSJbW2l0ZW0ucnVuXV0iCiAgICAgICAgICAgICAgICAgIHRhZz0iW1tpdGVtLnRhZ11dIgogICAgICAgICAgICAgICAgICBzYW1wbGU9IltbaXRlbS5zYW1wbGVdXSIKICAgICAgICAgICAgICAgICAgb2Ytc2FtcGxlcz0iW1tpdGVtLm9mU2FtcGxlc11dIgogICAgICAgICAgICAgICAgICByZXF1ZXN0LW1hbmFnZXI9IltbX3JlcXVlc3RNYW5hZ2VyXV0iCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0Zi1tZXNoLWxvYWRlci1jb250YWluZXIiCiAgICAgICAgICAgICAgICAgIG9uLWNhbWVyYS1wb3NpdGlvbi1jaGFuZ2U9Il9vbkNhbWVyYVBvc2l0aW9uQ2hhbmdlZCIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDwvdGYtbWVzaC1sb2FkZXI+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC90Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldz4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9kaXY+CiAgICA8L3RmLWRhc2hib2FyZC1sYXlvdXQ+CgogICAgPHN0eWxlIGluY2x1ZGU9ImRhc2hib2FyZC1zdHlsZSI+PC9zdHlsZT4KICAgIDxzdHlsZT4KICAgICAgLm5vLWRhdGEtd2FybmluZyB7CiAgICAgICAgbWF4LXdpZHRoOiA1NDBweDsKICAgICAgICBtYXJnaW46IDgwcHggYXV0byAwIGF1dG87CiAgICAgIH0KICAgICAgcGFwZXItcmFkaW8tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiA1cHg7CiAgICAgIH0KICAgICAgLnNpZGViYXItc2VjdGlvbiBoMyB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsKICAgICAgfQoKICAgICAgLnJ1bnMtc2VsZWN0b3IgewogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgfQoKICAgICAgdGYtcnVucy1zZWxlY3RvciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgfQoKICAgICAgLnZpZXctY29udHJvbCB7CiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLnZpZXctY29udHJvbCBoMy50aXRsZSB7CiAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5hbGxjb250cm9scyAudmlldy1jb250cm9sIHBhcGVyLXJhZGlvLWdyb3VwIHsKICAgICAgICBtYXJnaW4tdG9wOiA1cHg7CiAgICAgIH0KICAgICAgLyogTGF5b3V0IG11c3QgYmUgaG9yaXpvbnRhbCwgaS5lLiBpdGVtcyBhcnJhbmdlZCBpbiBhIHJvdy4gSWYgaXRlbXMgY2Fubm90IGZpdCBpbiBhIHJvdywKICAgICAgICogdGhleSBzaG91bGQgYmUgbW92ZWQgdG8gbmV4dCBsaW5lLiBBbGwgaXRlbXMgbXVzdCBiZSBzcXVhcmUgYXQgYWxsIHRpbWVzLiBNaW5pbXVtIHNpemUgb2YKICAgICAgICogdGhlIGl0ZW0gaXMgNDgwcHguIFRoaXMgbWVhbnMgdGhhdCBtYXhpbXVtIHNpemUgb2YgdGhlIGl0ZW0gbXVzdCBiZSA0ODBweCArIDQ3OXB4ID0gOTU5cHguCiAgICAgICAqICovCiAgICAgIC5ob3Jpem9udGFsIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIHRmLW1lc2gtbG9hZGVyIHsKICAgICAgICB3aWR0aDogNDgwcHg7CiAgICAgICAgZmxleC1iYXNpczogNDgwcHg7CiAgICAgICAgZmxleC1ncm93OiAxOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxacmUucHJvdG90eXBlLCJyZWxvYWRPblJlYWR5Iix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxacmUucHJvdG90eXBlLCJfc2VsZWN0ZWRSdW5zIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFpyZS5wcm90b3R5cGUsIl9ydW5Ub1RhZ0luZm8iLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxacmUucHJvdG90eXBlLCJfZGF0YU5vdEZvdW5kIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFpyZS5wcm90b3R5cGUsIl90YWdGaWx0ZXIiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmcsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFpyZS5wcm90b3R5cGUsIl9zZWxlY3RlZFZpZXciLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sWnJlLnByb3RvdHlwZSwiX3JlcXVlc3RNYW5hZ2VyIix2b2lkIDApLHQoW3MoIl9ydW5Ub1RhZ0luZm8iLCJfc2VsZWN0ZWRSdW5zIiwiX3RhZ0ZpbHRlciIpLGUoImRlc2lnbjp0eXBlIixBcnJheSksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sWnJlLnByb3RvdHlwZSwiX2NhdGVnb3JpZXMiLG51bGwpLFpyZT10KFtpKCJtZXNoLWRhc2hib2FyZCIpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLFpyZSk7bGV0IEpyZT1jbGFzcyBleHRlbmRzKGNyKHdlKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2luc3RhbGxDb21tYW5kPSJwaXAgaW5zdGFsbCAtVSB0ZW5zb3Jib2FyZC1wbHVnaW4tcHJvZmlsZSJ9X2NvcHlJbnN0YWxsQ29tbWFuZCgpe3JldHVybiBuKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD0oKT0+bih0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3RoaXMuJC5jb21tYW5kVGV4dGFyZWEuc2VsZWN0KCk7dHJ5e3lpZWxkIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMuX2luc3RhbGxDb21tYW5kKX1jYXRjaCh0KXtpZighZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKSlyZXR1cm4gUHJvbWlzZS5yZWplY3QoKX19KSksZT10aGlzLiQuY29waWVkTWVzc2FnZTt0cnl7eWllbGQgdCgpLGUuaW5uZXJUZXh0PSJDb3BpZWQuIn1jYXRjaCh0KXtlLmlubmVyVGV4dD0iRmFpbGVkIHRvIGNvcHkgdG8gY2xpcGJvYXJkLiJ9fSkpfV9yZW1vdmVDb3BpZWRNZXNzYWdlKCl7dGhpcy4kLmNvcGllZE1lc3NhZ2UuaW5uZXJUZXh0PSIifX07SnJlLnRlbXBsYXRlPXhlYAogICAgPGRpdiBjbGFzcz0ibWVzc2FnZSI+CiAgICAgIDxoMz5UaGUgcHJvZmlsZSBwbHVnaW4gaGFzIG1vdmVkLjwvaDM+CiAgICAgIDxwPgogICAgICAgIFBsZWFzZSBpbnN0YWxsIHRoZSBuZXcgdmVyc2lvbiBvZiB0aGUgcHJvZmlsZSBwbHVnaW4gZnJvbSBQeVBJIGJ5CiAgICAgICAgcnVubmluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQgZnJvbSB0aGUgbWFjaGluZSBydW5uaW5nIFRlbnNvckJvYXJkOgogICAgICA8L3A+CiAgICAgIDx0ZXh0YXJlYQogICAgICAgIGlkPSJjb21tYW5kVGV4dGFyZWEiCiAgICAgICAgcmVhZG9ubHk9IiIKICAgICAgICByb3dzPSIxIgogICAgICAgIG9uLWJsdXI9Il9yZW1vdmVDb3BpZWRNZXNzYWdlIgogICAgICA+CltbX2luc3RhbGxDb21tYW5kXV08L3RleHRhcmVhCiAgICAgID4KICAgICAgPGRpdiBpZD0iY29weUNvbnRhaW5lciI+CiAgICAgICAgPHNwYW4gaWQ9ImNvcGllZE1lc3NhZ2UiPjwvc3Bhbj4KICAgICAgICA8cGFwZXItYnV0dG9uIHJhaXNlZD0iIiBvbi10YXA9Il9jb3B5SW5zdGFsbENvbW1hbmQiCiAgICAgICAgICA+Q29weSB0byBjbGlwYm9hcmQ8L3BhcGVyLWJ1dHRvbgogICAgICAgID4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8c3R5bGU+CiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICB9CgogICAgICAubWVzc2FnZSB7CiAgICAgICAgbWFyZ2luOiA4MHB4IGF1dG8gMCBhdXRvOwogICAgICAgIG1heC13aWR0aDogNTQwcHg7CiAgICAgIH0KICAgICAgI2NvbW1hbmRUZXh0YXJlYSB7CiAgICAgICAgbWFyZ2luLXRvcDogMWV4OwogICAgICAgIHBhZGRpbmc6IDFleCAxZW07CiAgICAgICAgcmVzaXplOiB2ZXJ0aWNhbDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgICAjY29weUNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgfQogICAgICAjY29waWVkTWVzc2FnZSB7CiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyOwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgcGFkZGluZy1yaWdodDogMWVtOwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sSnJlLnByb3RvdHlwZSwiX2luc3RhbGxDb21tYW5kIix2b2lkIDApLEpyZT10KFtpKCJ0Zi1wcm9maWxlLXJlZGlyZWN0LWRhc2hib2FyZCIpXSxKcmUpO2xldCBRcmU9Y2xhc3MgZXh0ZW5kcyB3ZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fZXhwYW5kZWQ9ITEsdGhpcy5fcnVuVG9QckN1cnZlRW50cnk9e30sdGhpcy5fcHJldmlvdXNSdW5Ub1ByQ3VydmVFbnRyeT17fSx0aGlzLl9jb2xvclNjYWxlRnVuY3Rpb249e3NjYWxlOl9PfSx0aGlzLl9jYW5jZWxsZXI9bmV3IHhPLHRoaXMuX3hDb21wb25lbnRzQ3JlYXRpb25NZXRob2Q9KCk9Pntjb25zdCB0PW5ldyBOTy5TY2FsZXMuTGluZWFyO3JldHVybntzY2FsZTp0LGF4aXM6bmV3IE5PLkF4ZXMuTnVtZXJpYyh0LCJib3R0b20iKSxhY2Nlc3Nvcjp0PT50LnJlY2FsbH19LHRoaXMuX3lWYWx1ZUFjY2Vzc29yPXQ9PnQucHJlY2lzaW9uLHRoaXMuX3Rvb2x0aXBDb2x1bW5zPSgoKT0+e2NvbnN0IHQ9U0N0KDQpLGU9ZT0+aXNOYU4oZSk/Ik5hTiI6dChlKTtyZXR1cm5be3RpdGxlOiJSdW4iLGV2YWx1YXRlOnQ9PnQuZGF0YXNldC5tZXRhZGF0YSgpLm5hbWV9LHt0aXRsZToiVGhyZXNob2xkIixldmFsdWF0ZTp0PT5lKHQuZGF0dW0udGhyZXNob2xkcyl9LHt0aXRsZToiUHJlY2lzaW9uIixldmFsdWF0ZTp0PT5lKHQuZGF0dW0ucHJlY2lzaW9uKX0se3RpdGxlOiJSZWNhbGwiLGV2YWx1YXRlOnQ9PmUodC5kYXR1bS5yZWNhbGwpfSx7dGl0bGU6IlRQIixldmFsdWF0ZTp0PT50LmRhdHVtLnRydWVfcG9zaXRpdmVzfSx7dGl0bGU6IkZQIixldmFsdWF0ZTp0PT50LmRhdHVtLmZhbHNlX3Bvc2l0aXZlc30se3RpdGxlOiJUTiIsZXZhbHVhdGU6dD0+dC5kYXR1bS50cnVlX25lZ2F0aXZlc30se3RpdGxlOiJGTiIsZXZhbHVhdGU6dD0+dC5kYXR1bS5mYWxzZV9uZWdhdGl2ZXN9XX0pKCksdGhpcy5fc2VyaWVzRGF0YUZpZWxkcz1bInRocmVzaG9sZHMiLCJwcmVjaXNpb24iLCJyZWNhbGwiLCJ0cnVlX3Bvc2l0aXZlcyIsImZhbHNlX3Bvc2l0aXZlcyIsInRydWVfbmVnYXRpdmVzIiwiZmFsc2VfbmVnYXRpdmVzIl0sdGhpcy5fZGVmYXVsdFhSYW5nZT1bLS4wNSwxLjA1XSx0aGlzLl9kZWZhdWx0WVJhbmdlPVstLjA1LDEuMDVdLHRoaXMuX3JlcXVlc3REYXRhPSh0LGUsbik9Pntjb25zdCBpPUVyKCkucGx1Z2luUm91dGUoInByX2N1cnZlcyIsIi9wcl9jdXJ2ZXMiKTtQcm9taXNlLmFsbCh0Lm1hcCgodD0+e2NvbnN0IG49UE8oaSx7dGFnOnRoaXMudGFnLHJ1bjp0fSk7cmV0dXJuIHRoaXMucmVxdWVzdE1hbmFnZXIucmVxdWVzdChuKS50aGVuKChuPT57ZSh7aXRlbTp0LGRhdGE6bn0pfSkpfSkpKS5maW5hbGx5KCgoKT0+e24oKX0pKX0sdGhpcy5fc21vb3RoaW5nRW5hYmxlZD0hMX1fY3JlYXRlUHJvY2Vzc0RhdGFGdW5jdGlvbigpe3JldHVybih0LGUsbik9Pnt0aGlzLnNldCgiX3J1blRvRGF0YU92ZXJUaW1lIixPYmplY3QuYXNzaWduKHt9LHRoaXMuX3J1blRvRGF0YU92ZXJUaW1lLG4pKX19X2NvbXB1dGVSdW5Db2xvcih0KXtyZXR1cm4gX08odCl9Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuX2F0dGFjaGVkPSEwLHRoaXMucmVsb2FkKCl9X2dldENoYXJ0RGF0YUxvYWRlcigpe3JldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigidGYtbGluZS1jaGFydC1kYXRhLWxvYWRlciIpfXJlbG9hZCgpe3RoaXMuX2F0dGFjaGVkJiYoMCE9PXRoaXMucnVucy5sZW5ndGg/dGhpcy5fZ2V0Q2hhcnREYXRhTG9hZGVyKCkucmVsb2FkKCk6dGhpcy5zZXQoIl9ydW5Ub0RhdGFPdmVyVGltZSIse30pKX1fc2V0Q2hhcnREYXRhKCl7dmFyIHQ9dGhpcy5fcnVuVG9QckN1cnZlRW50cnksZT10aGlzLl9wcmV2aW91c1J1blRvUHJDdXJ2ZUVudHJ5LG49dGhpcy5fc2V0T2ZSZWxldmFudFJ1bnM7Q2UuZXhwb3J0cy5mb3JPd24odCwoKGkscik9Pntjb25zdCBvPWVbcl07byYmdFtyXS5zdGVwPT09by5zdGVwfHwobltyXT90aGlzLl91cGRhdGVTZXJpZXNEYXRhRm9yUnVuKHIsaSk6dGhpcy5fY2xlYXJTZXJpZXNEYXRhKHIpKX0pKX1fdXBkYXRlU2VyaWVzRGF0YUZvclJ1bih0LGUpe2NvbnN0IG49Q2UuZXhwb3J0cy5yZWR1Y2UodGhpcy5fc2VyaWVzRGF0YUZpZWxkcywoKHQsbik9Pih0W25dPWVbbl0uc2xpY2UoKS5yZXZlcnNlKCksdCkpLHt9KSxpPW5ldyBBcnJheShuW3RoaXMuX3Nlcmllc0RhdGFGaWVsZHNbMF1dLmxlbmd0aCk7Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0KyspaVt0XT1DZS5leHBvcnRzLm1hcFZhbHVlcyhuLChlPT5lW3RdKSk7Y29uc3Qgcj10aGlzLl9nZXRDaGFydERhdGFMb2FkZXIoKTtyLnNldFNlcmllc0RhdGEodCxpKSxyLmNvbW1pdENoYW5nZXMoKX1fY2xlYXJTZXJpZXNEYXRhKHQpe2NvbnN0IGU9dGhpcy5fZ2V0Q2hhcnREYXRhTG9hZGVyKCk7ZS5zZXRTZXJpZXNEYXRhKHQsW10pLGUuY29tbWl0Q2hhbmdlcygpfV91cGRhdGVSdW5Ub1ByQ3VydmVFbnRyeSgpe3ZhciB0PXRoaXMucnVuVG9TdGVwQ2FwO2NvbnN0IGU9e307Q2UuZXhwb3J0cy5mb3JPd24odGhpcy5fcnVuVG9EYXRhT3ZlclRpbWUsKChuLGkpPT57biYmbi5sZW5ndGgmJihlW2ldPXRoaXMuX2NvbXB1dGVFbnRyeUNsb3Nlc3RPckVxdWFsVG9TdGVwQ2FwKHRbaV0sbikpfSkpLHRoaXMuc2V0KCJfcHJldmlvdXNSdW5Ub1ByQ3VydmVFbnRyeSIsdGhpcy5fcnVuVG9QckN1cnZlRW50cnkpLHRoaXMuc2V0KCJfcnVuVG9QckN1cnZlRW50cnkiLGUpfV9ub3RpZnlEYXRhQ2hhbmdlKCl7dGhpcy5vbkRhdGFDaGFuZ2UmJnRoaXMub25EYXRhQ2hhbmdlKHRoaXMuX3J1blRvRGF0YU92ZXJUaW1lKX1fY29tcHV0ZUVudHJ5Q2xvc2VzdE9yRXF1YWxUb1N0ZXBDYXAodCxlKXtjb25zdCBuPU1hdGgubWluKENlLmV4cG9ydHMuc29ydGVkSW5kZXgoZS5tYXAoKHQ9PnQuc3RlcCkpLHQpLGUubGVuZ3RoLTEpO3JldHVybiBlW25dfWdldCBfcnVuc1dpdGhTdGVwQXZhaWxhYmxlKCl7dmFyIHQ9dGhpcy5fcnVuVG9QckN1cnZlRW50cnk7cmV0dXJuIENlLmV4cG9ydHMuZmlsdGVyKHRoaXMucnVucywoZT0+dFtlXSkpLnNvcnQoKX1nZXQgX3NldE9mUmVsZXZhbnRSdW5zKCl7Y29uc3QgdD17fTtyZXR1cm4gQ2UuZXhwb3J0cy5mb3JFYWNoKHRoaXMuX3J1bnNXaXRoU3RlcEF2YWlsYWJsZSwoZT0+e3RbZV09ITB9KSksdH1fY29tcHV0ZUN1cnJlbnRTdGVwRm9yUnVuKHQsZSl7Y29uc3Qgbj10W2VdO3JldHVybiBuP24uc3RlcDpudWxsfV9jb21wdXRlQ3VycmVudFdhbGxUaW1lRm9yUnVuKHQsZSl7Y29uc3Qgbj10W2VdO3JldHVybiBuP25ldyBEYXRlKDFlMypuLndhbGxfdGltZSkudG9TdHJpbmcoKTpudWxsfV90b2dnbGVFeHBhbmRlZCh0KXt0aGlzLnNldCgiX2V4cGFuZGVkIiwhdGhpcy5fZXhwYW5kZWQpLHRoaXMucmVkcmF3KCl9X3Jlc2V0RG9tYWluKCl7dGhpcy5fZ2V0Q2hhcnREYXRhTG9hZGVyKCkucmVzZXREb21haW4oKX1yZWRyYXcoKXt0aGlzLl9nZXRDaGFydERhdGFMb2FkZXIoKS5yZWRyYXcoKX19O1FyZS50ZW1wbGF0ZT14ZWAKICAgIDx0Zi1jYXJkLWhlYWRpbmcKICAgICAgdGFnPSJbW3RhZ11dIgogICAgICBkaXNwbGF5LW5hbWU9IltbdGFnTWV0YWRhdGEuZGlzcGxheU5hbWVdXSIKICAgICAgZGVzY3JpcHRpb249IltbdGFnTWV0YWRhdGEuZGVzY3JpcHRpb25dXSIKICAgID48L3RmLWNhcmQtaGVhZGluZz4KCiAgICA8dGYtbGluZS1jaGFydC1kYXRhLWxvYWRlcgogICAgICB4LWNvbXBvbmVudHMtY3JlYXRpb24tbWV0aG9kPSJbW194Q29tcG9uZW50c0NyZWF0aW9uTWV0aG9kXV0iCiAgICAgIHktdmFsdWUtYWNjZXNzb3I9IltbX3lWYWx1ZUFjY2Vzc29yXV0iCiAgICAgIHRvb2x0aXAtY29sdW1ucz0iW1tfdG9vbHRpcENvbHVtbnNdXSIKICAgICAgY29sb3Itc2NhbGU9IltbX2NvbG9yU2NhbGVGdW5jdGlvbl1dIgogICAgICBkZWZhdWx0LXgtcmFuZ2U9IltbX2RlZmF1bHRYUmFuZ2VdXSIKICAgICAgZGVmYXVsdC15LXJhbmdlPSJbW19kZWZhdWx0WVJhbmdlXV0iCiAgICAgIHNtb290aGluZy1lbmFibGVkPSJbW19zbW9vdGhpbmdFbmFibGVkXV0iCiAgICAgIHJlcXVlc3QtbWFuYWdlcj0iW1tyZXF1ZXN0TWFuYWdlcl1dIgogICAgICBkYXRhLXRvLWxvYWQ9IltbcnVuc11dIgogICAgICBkYXRhLXNlcmllcz0iW1tydW5zXV0iCiAgICAgIGxvYWQta2V5PSJbW3RhZ11dIgogICAgICByZXF1ZXN0LWRhdGE9IltbX3JlcXVlc3REYXRhXV0iCiAgICAgIGxvYWQtZGF0YS1jYWxsYmFjaz0iW1tfY3JlYXRlUHJvY2Vzc0RhdGFGdW5jdGlvbigpXV0iCiAgICAgIGFjdGl2ZT0iW1thY3RpdmVdXSIKICAgID48L3RmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXI+CgogICAgPGRpdiBpZD0iYnV0dG9ucy1yb3ciPgogICAgICA8cGFwZXItaWNvbi1idXR0b24KICAgICAgICBzZWxlY3RlZCQ9IltbX2V4cGFuZGVkXV0iCiAgICAgICAgaWNvbj0iZnVsbHNjcmVlbiIKICAgICAgICBvbi10YXA9Il90b2dnbGVFeHBhbmRlZCIKICAgICAgPjwvcGFwZXItaWNvbi1idXR0b24+CiAgICAgIDxwYXBlci1pY29uLWJ1dHRvbgogICAgICAgIGljb249InNldHRpbmdzLW92ZXJzY2FuIgogICAgICAgIG9uLXRhcD0iX3Jlc2V0RG9tYWluIgogICAgICAgIHRpdGxlPSJSZXNldCBheGVzIHRvIFswLCAxXS4iCiAgICAgID48L3BhcGVyLWljb24tYnV0dG9uPgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0ic3RlcC1sZWdlbmQiPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19ydW5zV2l0aFN0ZXBBdmFpbGFibGVdXSIgYXM9InJ1biI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGVnZW5kLXJvdyI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJjb2xvci1ib3giCiAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kOiBbW19jb21wdXRlUnVuQ29sb3IocnVuKV1dOyIKICAgICAgICAgID48L2Rpdj4KICAgICAgICAgIFtbcnVuXV0gaXMgYXQKICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGVwLWxhYmVsLXRleHQiPgogICAgICAgICAgICBzdGVwIFtbX2NvbXB1dGVDdXJyZW50U3RlcEZvclJ1bihfcnVuVG9QckN1cnZlRW50cnksIHJ1bildXSA8L3NwYW4KICAgICAgICAgID48YnIgLz4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3YWxsLXRpbWUtbGFiZWwtdGV4dCI+CiAgICAgICAgICAgIChbW19jb21wdXRlQ3VycmVudFdhbGxUaW1lRm9yUnVuKF9ydW5Ub1ByQ3VydmVFbnRyeSwgcnVuKV1dKQogICAgICAgICAgPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICA8L3RlbXBsYXRlPgogICAgPC9kaXY+CgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIHdpZHRoOiA1MDBweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDsKICAgICAgfQogICAgICA6aG9zdChbX2V4cGFuZGVkXSkgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgIHRmLWxpbmUtY2hhcnQtZGF0YS1sb2FkZXIgewogICAgICAgIGhlaWdodDogMzAwcHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CiAgICAgIDpob3N0KFtfZXhwYW5kZWRdKSB0Zi1saW5lLWNoYXJ0LWRhdGEtbG9hZGVyIHsKICAgICAgICBoZWlnaHQ6IDYwMHB4OwogICAgICB9CiAgICAgICNidXR0b25zLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICB9CiAgICAgICNidXR0b25zLXJvdyBwYXBlci1pY29uLWJ1dHRvbiB7CiAgICAgICAgY29sb3I6ICMyMTk2ZjM7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICB9CiAgICAgICNidXR0b25zLXJvdyBwYXBlci1pY29uLWJ1dHRvbltzZWxlY3RlZF0gewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRiLXVpLWxpZ2h0LWFjY2VudCk7CiAgICAgIH0KICAgICAgI3N0ZXAtbGVnZW5kIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGZvbnQtc2l6ZTogMC44ZW07CiAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBwYWRkaW5nOiAwIDAgMCAxMHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgIC5sZWdlbmQtcm93IHsKICAgICAgICBtYXJnaW46IDVweCAwIDVweCAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgIC5jb2xvci1ib3ggewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7CiAgICAgICAgd2lkdGg6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiAxMHB4OwogICAgICB9CiAgICAgIC5zdGVwLWxhYmVsLXRleHQgewogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICB9CiAgICAgIC53YWxsLXRpbWUtbGFiZWwtdGV4dCB7CiAgICAgICAgY29sb3I6ICM4ODg7CiAgICAgICAgZm9udC1zaXplOiAwLjhlbTsKICAgICAgfQogICAgPC9zdHlsZT4KICBgLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxRcmUucHJvdG90eXBlLCJydW5zIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLFFyZS5wcm90b3R5cGUsInRhZyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxRcmUucHJvdG90eXBlLCJ0YWdNZXRhZGF0YSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxRcmUucHJvdG90eXBlLCJydW5Ub1N0ZXBDYXAiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsYnIpXSxRcmUucHJvdG90eXBlLCJyZXF1ZXN0TWFuYWdlciIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFFyZS5wcm90b3R5cGUsImFjdGl2ZSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW4scmVmbGVjdFRvQXR0cmlidXRlOiEwfSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxRcmUucHJvdG90eXBlLCJfZXhwYW5kZWQiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sUXJlLnByb3RvdHlwZSwiX3J1blRvUHJDdXJ2ZUVudHJ5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFFyZS5wcm90b3R5cGUsIl9wcmV2aW91c1J1blRvUHJDdXJ2ZUVudHJ5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLFFyZS5wcm90b3R5cGUsIl9ydW5Ub0RhdGFPdmVyVGltZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLFFyZS5wcm90b3R5cGUsIm9uRGF0YUNoYW5nZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxRcmUucHJvdG90eXBlLCJfY29sb3JTY2FsZUZ1bmN0aW9uIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLHhPKV0sUXJlLnByb3RvdHlwZSwiX2NhbmNlbGxlciIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFFyZS5wcm90b3R5cGUsIl9hdHRhY2hlZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxRcmUucHJvdG90eXBlLCJfeENvbXBvbmVudHNDcmVhdGlvbk1ldGhvZCIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxRcmUucHJvdG90eXBlLCJfeVZhbHVlQWNjZXNzb3IiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLFFyZS5wcm90b3R5cGUsIl90b29sdGlwQ29sdW1ucyIsdm9pZCAwKSx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sUXJlLnByb3RvdHlwZSwiX3Nlcmllc0RhdGFGaWVsZHMiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLFFyZS5wcm90b3R5cGUsIl9kZWZhdWx0WFJhbmdlIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxRcmUucHJvdG90eXBlLCJfZGVmYXVsdFlSYW5nZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbildLFFyZS5wcm90b3R5cGUsIl9yZXF1ZXN0RGF0YSIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLFFyZS5wcm90b3R5cGUsIl9zbW9vdGhpbmdFbmFibGVkIix2b2lkIDApLHQoW2EoInJ1bnMiLCJ0YWciKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFFyZS5wcm90b3R5cGUsInJlbG9hZCIsbnVsbCksdChbYSgiX3J1blRvUHJDdXJ2ZUVudHJ5IiwiX3ByZXZpb3VzUnVuVG9QckN1cnZlRW50cnkiLCJfc2V0T2ZSZWxldmFudFJ1bnMiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFFyZS5wcm90b3R5cGUsIl9zZXRDaGFydERhdGEiLG51bGwpLHQoW2EoIl9ydW5Ub0RhdGFPdmVyVGltZSIsInJ1blRvU3RlcENhcCIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sUXJlLnByb3RvdHlwZSwiX3VwZGF0ZVJ1blRvUHJDdXJ2ZUVudHJ5IixudWxsKSx0KFthKCJfcnVuVG9EYXRhT3ZlclRpbWUiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLFFyZS5wcm90b3R5cGUsIl9ub3RpZnlEYXRhQ2hhbmdlIixudWxsKSx0KFtzKCJydW5zIiwiX3J1blRvUHJDdXJ2ZUVudHJ5IiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxRcmUucHJvdG90eXBlLCJfcnVuc1dpdGhTdGVwQXZhaWxhYmxlIixudWxsKSx0KFtzKCJfcnVuc1dpdGhTdGVwQXZhaWxhYmxlIiksZSgiZGVzaWduOnR5cGUiLE9iamVjdCksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sUXJlLnByb3RvdHlwZSwiX3NldE9mUmVsZXZhbnRSdW5zIixudWxsKSxRcmU9dChbaSgidGYtcHItY3VydmUtY2FyZCIpXSxRcmUpO2xldCB0b2U9Y2xhc3MgZXh0ZW5kcyB3ZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fcnVuVG9TdGVwSW5kZXg9e319X2NvbXB1dGVDb2xvckZvclJ1bih0KXtyZXR1cm4gX08odCl9X2NvbXB1dGVUaW1lVGV4dEZvclJ1bih0LGUsbixpKXtjb25zdCByPWVbbl07aWYoIUNlLmV4cG9ydHMuaXNOdW1iZXIocikpcmV0dXJuIiI7Y29uc3Qgbz10W25dO2lmKCFvKXJldHVybiIiO2NvbnN0IGE9b1tyXVtpXTtpZigic3RlcCI9PT1pKXJldHVybmBzdGVwICR7YX1gO2lmKCJyZWxhdGl2ZSI9PT1pKXJldHVybiBhPDE/YCR7KDFlMyphKS50b0ZpeGVkKDIpfSBtc2A6YCR7YS50b0ZpeGVkKDIpfSBzYDtpZigid2FsbF90aW1lIj09PWkpcmV0dXJuIG5ldyBEYXRlKDFlMyphKS50b1N0cmluZygpO3Rocm93IG5ldyBFcnJvcihgVGhlIGRpc3BsYXkgdHlwZSBvZiAke2l9IGlzIG5vdCByZWNvZ25pemVkLmApfV9zbGlkZXJWYWx1ZUNoYW5nZWQodCl7Y29uc3QgZT10LnRhcmdldC5kYXRhc2V0LnJ1bixuPXQudGFyZ2V0LmltbWVkaWF0ZVZhbHVlLGk9T2JqZWN0LmFzc2lnbih7fSx0aGlzLl9ydW5Ub1N0ZXBJbmRleCk7aXNOYU4obik/ZGVsZXRlIGlbZV06aVtlXT10LnRhcmdldC5pbW1lZGlhdGVWYWx1ZSx0aGlzLl9ydW5Ub1N0ZXBJbmRleD1pfV9jb21wdXRlTWF4U3RlcEluZGV4Rm9yUnVuKHQsZSl7Y29uc3Qgbj10W2VdO3JldHVybiBuJiZuLmxlbmd0aD9uLmxlbmd0aC0xOjB9X3VwZGF0ZVN0ZXBzRm9yTmV3UnVucygpe3ZhciB0PXRoaXMucnVuVG9BdmFpbGFibGVUaW1lRW50cmllcztjb25zdCBlPU9iamVjdC5hc3NpZ24oe30sdGhpcy5fcnVuVG9TdGVwSW5kZXgpO0NlLmV4cG9ydHMuZm9yT3duKHQsKCh0LG4pPT57Q2UuZXhwb3J0cy5pc051bWJlcihlW25dKXx8KGVbbl09dC5sZW5ndGgtMSl9KSksdGhpcy5fcnVuVG9TdGVwSW5kZXg9ZX1fZ2V0U3RlcCh0LGUpe3JldHVybiB0aGlzLl9ydW5Ub1N0ZXBJbmRleD90aGlzLl9ydW5Ub1N0ZXBJbmRleFtlXTowfV9jb21wdXRlUnVuVG9TdGVwKHQsZSl7Y29uc3Qgbj17fTtyZXR1cm4gQ2UuZXhwb3J0cy5mb3JPd24oZSwoKGUsaSk9Pntjb25zdCByPXRbaV07ciYmKG5baV09cltlXS5zdGVwKX0pKSxufWdldCBfcnVuc1dpdGhTbGlkZXJzKCl7dmFyIHQ9dGhpcy5ydW5Ub0F2YWlsYWJsZVRpbWVFbnRyaWVzO3JldHVybiB0aGlzLnJ1bnMuZmlsdGVyKChlPT50W2VdKSl9fTt0b2UudGVtcGxhdGU9eGVgCiAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW19ydW5zV2l0aFNsaWRlcnNdXSIgYXM9InJ1biI+CiAgICAgIDxkaXYgY2xhc3M9InJ1bi13aWRnZXQiPgogICAgICAgIDxkaXYgY2xhc3M9InJ1bi1kaXNwbGF5LWNvbnRhaW5lciI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJydW4tY29sb3ItYm94IgogICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZDpbW19jb21wdXRlQ29sb3JGb3JSdW4ocnVuKV1dOyIKICAgICAgICAgID48L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InJ1bi10ZXh0Ij5bW3J1bl1dPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic3RlcC1kaXNwbGF5LWNvbnRhaW5lciI+CiAgICAgICAgICBbW19jb21wdXRlVGltZVRleHRGb3JSdW4ocnVuVG9BdmFpbGFibGVUaW1lRW50cmllcywgX3J1blRvU3RlcEluZGV4LAogICAgICAgICAgcnVuLCB0aW1lRGlzcGxheVR5cGUpXV0KICAgICAgICA8L2Rpdj4KICAgICAgICA8cGFwZXItc2xpZGVyCiAgICAgICAgICBkYXRhLXJ1biQ9IltbcnVuXV0iCiAgICAgICAgICBzdGVwPSIxIgogICAgICAgICAgdHlwZT0ibnVtYmVyIgogICAgICAgICAgbWluPSIwIgogICAgICAgICAgbWF4PSJbW19jb21wdXRlTWF4U3RlcEluZGV4Rm9yUnVuKHJ1blRvQXZhaWxhYmxlVGltZUVudHJpZXMsIHJ1bildXSIKICAgICAgICAgIHZhbHVlPSJbW19nZXRTdGVwKF9ydW5Ub1N0ZXBJbmRleCwgcnVuKV1dIgogICAgICAgICAgb24taW1tZWRpYXRlLXZhbHVlLWNoYW5nZWQ9Il9zbGlkZXJWYWx1ZUNoYW5nZWQiCiAgICAgICAgPjwvcGFwZXItc2xpZGVyPgogICAgICA8L2Rpdj4KICAgIDwvdGVtcGxhdGU+CiAgICA8c3R5bGU+CiAgICAgIC5ydW4td2lkZ2V0IHsKICAgICAgICBtYXJnaW46IDEwcHggMCAwIDA7CiAgICAgIH0KICAgICAgcGFwZXItc2xpZGVyIHsKICAgICAgICBtYXJnaW46IC04cHggMCAwIC0xNXB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgIC5zdGVwLWRpc3BsYXktY29udGFpbmVyIHsKICAgICAgICBmb250LXNpemU6IDAuOWVtOwogICAgICAgIG1hcmdpbjogMCAxNXB4IDAgMDsKICAgICAgfQogICAgICAucnVuLXRleHQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQogICAgICAucnVuLWNvbG9yLWJveCB7CiAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOkFycmF5fSksZSgiZGVzaWduOnR5cGUiLEFycmF5KV0sdG9lLnByb3RvdHlwZSwicnVucyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSx0b2UucHJvdG90eXBlLCJydW5Ub0F2YWlsYWJsZVRpbWVFbnRyaWVzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0LG5vdGlmeTohMCxjb21wdXRlZDoiX2NvbXB1dGVSdW5Ub1N0ZXAocnVuVG9BdmFpbGFibGVUaW1lRW50cmllcywgX3J1blRvU3RlcEluZGV4KSJ9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sdG9lLnByb3RvdHlwZSwicnVuVG9TdGVwIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLHRvZS5wcm90b3R5cGUsInRpbWVEaXNwbGF5VHlwZSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSx0b2UucHJvdG90eXBlLCJfcnVuVG9TdGVwSW5kZXgiLHZvaWQgMCksdChbYSgicnVuVG9BdmFpbGFibGVUaW1lRW50cmllcyIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sdG9lLnByb3RvdHlwZSwiX3VwZGF0ZVN0ZXBzRm9yTmV3UnVucyIsbnVsbCksdChbcygicnVucyIsInJ1blRvQXZhaWxhYmxlVGltZUVudHJpZXMiKSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLHRvZS5wcm90b3R5cGUsIl9ydW5zV2l0aFNsaWRlcnMiLG51bGwpLHRvZT10KFtpKCJ0Zi1wci1jdXJ2ZS1zdGVwcy1zZWxlY3RvciIpXSx0b2UpO2xldCBlb2U9Y2xhc3MgZXh0ZW5kcyhjcih3ZSkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnJlbG9hZE9uUmVhZHk9ITAsdGhpcy5fdGltZURpc3BsYXlUeXBlPSJzdGVwIix0aGlzLl9zZWxlY3RlZFJ1bnM9W10sdGhpcy5fcnVuVG9UYWdJbmZvPXt9LHRoaXMuX3RhZ1RvUnVuVG9EYXRhPXt9LHRoaXMuX2dldENhdGVnb3J5SXRlbUtleT10PT50LnRhZyx0aGlzLl9yZXF1ZXN0TWFuYWdlcj1uZXcgYnIsdGhpcy5fc3RlcD0wfXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLnJlbG9hZE9uUmVhZHkmJnRoaXMucmVsb2FkKCl9cmVsb2FkKCl7UHJvbWlzZS5hbGwoW3RoaXMuX2ZldGNoVGFncygpXSkudGhlbigoKCk9Pnt0aGlzLl9yZWxvYWRDYXJkcygpfSkpfV9zaG91bGRPcGVuKHQpe3JldHVybiB0PD0yfV9mZXRjaFRhZ3MoKXtjb25zdCB0PUVyKCkucGx1Z2luUm91dGUoInByX2N1cnZlcyIsIi90YWdzIik7cmV0dXJuIHRoaXMuX3JlcXVlc3RNYW5hZ2VyLnJlcXVlc3QodCkudGhlbigodD0+e2lmKENlLmV4cG9ydHMuaXNFcXVhbCh0LHRoaXMuX3J1blRvVGFnSW5mbykpcmV0dXJuO2NvbnN0IGU9ZnIoQ2UuZXhwb3J0cy5tYXBWYWx1ZXModCwodD0+Q2UuZXhwb3J0cy5rZXlzKHQpKSkpO3RoaXMuc2V0KCJfZGF0YU5vdEZvdW5kIiwwPT09ZS5sZW5ndGgpLHRoaXMuc2V0KCJfcnVuVG9UYWdJbmZvIix0KSx0aGlzLmFzeW5jKCgoKT0+e3RoaXMuc2V0KCJfY2F0ZWdvcmllc0RvbVJlYWR5IiwhMCl9KSl9KSl9X3JlbG9hZENhcmRzKCl7Q2UuZXhwb3J0cy5mb3JFYWNoKHRoaXMucm9vdC5xdWVyeVNlbGVjdG9yQWxsKCJ0Zi1wci1jdXJ2ZS1jYXJkIiksKHQ9Pnt0LnJlbG9hZCgpfSkpfWdldCBfY2F0ZWdvcmllcygpe3ZhciB0PXRoaXMuX3NlbGVjdGVkUnVucyxlPXRoaXMuX3RhZ0ZpbHRlcjtyZXR1cm4gUHIoQ2UuZXhwb3J0cy5tYXBWYWx1ZXModGhpcy5fcnVuVG9UYWdJbmZvLCh0PT5PYmplY3Qua2V5cyh0KSkpLHQsZSl9Z2V0IF9yZWxldmFudFNlbGVjdGVkUnVucygpe3ZhciB0PXRoaXMuX3J1blRvVGFnSW5mbztyZXR1cm4gdGhpcy5fc2VsZWN0ZWRSdW5zLmZpbHRlcigoZT0+dFtlXSkpfV90YWdNZXRhZGF0YSh0LGUsbil7Y29uc3QgaT17fTtlLmZvckVhY2goKGU9PntpW2VdPXRbZV1bbl19KSk7Y29uc3Qgcj1uLnJlcGxhY2UoL1wvcHJfY3VydmVzJC8sIiIpO3JldHVybiBrTyhpLHIpfV9jcmVhdGVEYXRhQ2hhbmdlQ2FsbGJhY2sodCl7cmV0dXJuIGU9Pnt0aGlzLnNldCgiX3RhZ1RvUnVuVG9EYXRhIixPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5fdGFnVG9SdW5Ub0RhdGEpLHtbdF06ZX0pKX19Z2V0IF9ydW5Ub0F2YWlsYWJsZVRpbWVFbnRyaWVzKCl7dmFyIHQ9dGhpcy5fdGFnVG9SdW5Ub0RhdGE7Y29uc3QgZT17fTtmb3IoY29uc3RbbixpXW9mIE9iamVjdC5lbnRyaWVzKHQpKWZvcihjb25zdFt0XW9mIE9iamVjdC5lbnRyaWVzKGkpKShudWxsPT1lW3RdfHxuPGVbdF0pJiYoZVt0XT1uKTtjb25zdCBuPXt9O2Zvcihjb25zdFtpLHJdb2YgT2JqZWN0LmVudHJpZXMoZSkpe2NvbnN0IGU9dFtyXVtpXTtuW2ldPWUubWFwKCh0PT4oe3N0ZXA6dC5zdGVwLHdhbGxfdGltZTp0LndhbGxfdGltZSxyZWxhdGl2ZTp0LndhbGxfdGltZS1lWzBdLndhbGxfdGltZX0pKSl9cmV0dXJuIG59fTtlb2UudGVtcGxhdGU9eGVgCiAgICA8dGYtZGFzaGJvYXJkLWxheW91dD4KICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhciIgc2xvdD0ic2lkZWJhciI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3MiPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIj4KICAgICAgICAgICAgPHRmLW9wdGlvbi1zZWxlY3RvcgogICAgICAgICAgICAgIGlkPSJ0aW1lLXR5cGUtc2VsZWN0b3IiCiAgICAgICAgICAgICAgbmFtZT0iVGltZSBEaXNwbGF5IFR5cGUiCiAgICAgICAgICAgICAgc2VsZWN0ZWQtaWQ9Int7X3RpbWVEaXNwbGF5VHlwZX19IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbiBpZD0ic3RlcCI+c3RlcDwvcGFwZXItYnV0dG9uPgogICAgICAgICAgICAgIDwhLS0KICAgICAgICAgICAgLS0+CiAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbiBpZD0icmVsYXRpdmUiPnJlbGF0aXZlPC9wYXBlci1idXR0b24+CiAgICAgICAgICAgICAgPCEtLQogICAgICAgICAgICAtLT4KICAgICAgICAgICAgICA8cGFwZXItYnV0dG9uIGlkPSJ3YWxsX3RpbWUiPndhbGw8L3BhcGVyLWJ1dHRvbj4KICAgICAgICAgICAgPC90Zi1vcHRpb24tc2VsZWN0b3I+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfcnVuVG9BdmFpbGFibGVUaW1lRW50cmllc11dIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIiBpZD0ic3RlcHMtc2VsZWN0b3ItY29udGFpbmVyIj4KICAgICAgICAgICAgICA8dGYtcHItY3VydmUtc3RlcHMtc2VsZWN0b3IKICAgICAgICAgICAgICAgIHJ1bnM9IltbX3JlbGV2YW50U2VsZWN0ZWRSdW5zXV0iCiAgICAgICAgICAgICAgICBydW4tdG8tc3RlcD0ie3tfcnVuVG9TdGVwfX0iCiAgICAgICAgICAgICAgICBydW4tdG8tYXZhaWxhYmxlLXRpbWUtZW50cmllcz0iW1tfcnVuVG9BdmFpbGFibGVUaW1lRW50cmllc11dIgogICAgICAgICAgICAgICAgdGltZS1kaXNwbGF5LXR5cGU9IltbX3RpbWVEaXNwbGF5VHlwZV1dIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8L3RmLXByLWN1cnZlLXN0ZXBzLXNlbGVjdG9yPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIHJ1bnMtc2VsZWN0b3IiPgogICAgICAgICAgPHRmLXJ1bnMtc2VsZWN0b3Igc2VsZWN0ZWQtcnVucz0ie3tfc2VsZWN0ZWRSdW5zfX0iPgogICAgICAgICAgPC90Zi1ydW5zLXNlbGVjdG9yPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2VudGVyIiBzbG90PSJjZW50ZXIiPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1tfZGF0YU5vdEZvdW5kXV0iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibm8tZGF0YS13YXJuaW5nIj4KICAgICAgICAgICAgPGgzPk5vIHByZWNpc2lvbuKAk3JlY2FsbCBjdXJ2ZSBkYXRhIHdhcyBmb3VuZC48L2gzPgogICAgICAgICAgICA8cD5Qcm9iYWJsZSBjYXVzZXM6PC9wPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgWW91IGhhdmVu4oCZdCB3cml0dGVuIGFueSBwcmVjaXNpb27igJNyZWNhbGwgZGF0YSB0byB5b3VyIGV2ZW50CiAgICAgICAgICAgICAgICBmaWxlcy4KICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgIDxsaT5UZW5zb3JCb2FyZCBjYW7igJl0IGZpbmQgeW91ciBldmVudCBmaWxlcy48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3XigJlyZSBuZXcgdG8gdXNpbmcgVGVuc29yQm9hcmQsIGFuZCB3YW50IHRvIGZpbmQgb3V0IGhvdyB0bwogICAgICAgICAgICAgIGFkZCBkYXRhIGFuZCBzZXQgdXAgeW91ciBldmVudCBmaWxlcywgY2hlY2sgb3V0IHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQiCiAgICAgICAgICAgICAgICA+UkVBRE1FPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIGFuZCBwZXJoYXBzIHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3d3dy50ZW5zb3JmbG93Lm9yZy9nZXRfc3RhcnRlZC9zdW1tYXJpZXNfYW5kX3RlbnNvcmJvYXJkIgogICAgICAgICAgICAgICAgPlRlbnNvckJvYXJkIHR1dG9yaWFsPC9hCiAgICAgICAgICAgICAgPi4KICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgSWYgeW91IHRoaW5rIFRlbnNvckJvYXJkIGlzIGNvbmZpZ3VyZWQgcHJvcGVybHksIHBsZWFzZSBzZWUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI215LXRlbnNvcmJvYXJkLWlzbnQtc2hvd2luZy1hbnktZGF0YS13aGF0cy13cm9uZyIKICAgICAgICAgICAgICAgID50aGUgc2VjdGlvbiBvZiB0aGUgUkVBRE1FIGRldm90ZWQgdG8gbWlzc2luZyBkYXRhIHByb2JsZW1zPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIGFuZCBjb25zaWRlciBmaWxpbmcgYW4gaXNzdWUgb24gR2l0SHViLgogICAgICAgICAgICA8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDx0Zi10YWctZmlsdGVyZXIgdGFnLWZpbHRlcj0ie3tfdGFnRmlsdGVyfX0iPjwvdGYtdGFnLWZpbHRlcmVyPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfY2F0ZWdvcmllc11dIiBhcz0iY2F0ZWdvcnkiPgogICAgICAgICAgICA8dGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXcKICAgICAgICAgICAgICBjYXRlZ29yeT0iW1tjYXRlZ29yeV1dIgogICAgICAgICAgICAgIGluaXRpYWwtb3BlbmVkPSJbW19zaG91bGRPcGVuKGluZGV4KV1dIgogICAgICAgICAgICAgIGdldC1jYXRlZ29yeS1pdGVtLWtleT0iW1tfZ2V0Q2F0ZWdvcnlJdGVtS2V5XV0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgICAgICA8dGYtcHItY3VydmUtY2FyZAogICAgICAgICAgICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgICAgICAgICAgIHJ1bnM9IltbaXRlbS5ydW5zXV0iCiAgICAgICAgICAgICAgICAgIHRhZz0iW1tpdGVtLnRhZ11dIgogICAgICAgICAgICAgICAgICB0YWctbWV0YWRhdGE9IltbX3RhZ01ldGFkYXRhKF9ydW5Ub1RhZ0luZm8sIGl0ZW0ucnVucywgaXRlbS50YWcpXV0iCiAgICAgICAgICAgICAgICAgIHJlcXVlc3QtbWFuYWdlcj0iW1tfcmVxdWVzdE1hbmFnZXJdXSIKICAgICAgICAgICAgICAgICAgcnVuLXRvLXN0ZXAtY2FwPSJbW19ydW5Ub1N0ZXBdXSIKICAgICAgICAgICAgICAgICAgb24tZGF0YS1jaGFuZ2U9IltbX2NyZWF0ZURhdGFDaGFuZ2VDYWxsYmFjayhpdGVtLnRhZyldXSIKICAgICAgICAgICAgICAgID48L3RmLXByLWN1cnZlLWNhcmQ+CiAgICAgICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICAgICAgPC90Zi1jYXRlZ29yeS1wYWdpbmF0ZWQtdmlldz4KICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgPC9kaXY+CiAgICA8L3RmLWRhc2hib2FyZC1sYXlvdXQ+CgogICAgPHN0eWxlIGluY2x1ZGU9ImRhc2hib2FyZC1zdHlsZSI+PC9zdHlsZT4KICAgIDxzdHlsZT4KICAgICAgLm5vLWRhdGEtd2FybmluZyB7CiAgICAgICAgbWF4LXdpZHRoOiA1NDBweDsKICAgICAgICBtYXJnaW46IDgwcHggYXV0byAwIGF1dG87CiAgICAgIH0KCiAgICAgIC8qKiBEbyBub3QgbGV0IHRoZSBzdGVwcyBzZWxlY3RvciBvY2NsdWRlIHRoZSBydW4gc2VsZWN0b3IuICovCiAgICAgICNzdGVwcy1zZWxlY3Rvci1jb250YWluZXIgewogICAgICAgIG1heC1oZWlnaHQ6IDYwJTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICB9CiAgICA8L3N0eWxlPgogIGAsdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxlb2UucHJvdG90eXBlLCJyZWxvYWRPblJlYWR5Iix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGVvZS5wcm90b3R5cGUsIl90aW1lRGlzcGxheVR5cGUiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLGVvZS5wcm90b3R5cGUsIl9zZWxlY3RlZFJ1bnMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sZW9lLnByb3RvdHlwZSwiX3J1blRvVGFnSW5mbyIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxlb2UucHJvdG90eXBlLCJfdGFnVG9SdW5Ub0RhdGEiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3Qsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGVvZS5wcm90b3R5cGUsIl9ydW5Ub1N0ZXAiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxlb2UucHJvdG90eXBlLCJfZGF0YU5vdEZvdW5kIix2b2lkIDApLHQoW28oe3R5cGU6U3RyaW5nfSksZSgiZGVzaWduOnR5cGUiLFN0cmluZyldLGVvZS5wcm90b3R5cGUsIl90YWdGaWx0ZXIiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFufSksZSgiZGVzaWduOnR5cGUiLEJvb2xlYW4pXSxlb2UucHJvdG90eXBlLCJfY2F0ZWdvcmllc0RvbVJlYWR5Iix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLGVvZS5wcm90b3R5cGUsIl9nZXRDYXRlZ29yeUl0ZW1LZXkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsYnIpXSxlb2UucHJvdG90eXBlLCJfcmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbbyh7dHlwZTpOdW1iZXIsbm90aWZ5OiEwfSksZSgiZGVzaWduOnR5cGUiLE51bWJlcildLGVvZS5wcm90b3R5cGUsIl9zdGVwIix2b2lkIDApLHQoW3MoIl9ydW5Ub1RhZ0luZm8iLCJfc2VsZWN0ZWRSdW5zIiwiX3RhZ0ZpbHRlciIsIl9jYXRlZ29yaWVzRG9tUmVhZHkiKSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSldLGVvZS5wcm90b3R5cGUsIl9jYXRlZ29yaWVzIixudWxsKSx0KFtzKCJfc2VsZWN0ZWRSdW5zIiwiX3J1blRvVGFnSW5mbyIpLGUoImRlc2lnbjp0eXBlIixBcnJheSksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0sZW9lLnByb3RvdHlwZSwiX3JlbGV2YW50U2VsZWN0ZWRSdW5zIixudWxsKSx0KFtzKCJfdGFnVG9SdW5Ub0RhdGEiKSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxlb2UucHJvdG90eXBlLCJfcnVuVG9BdmFpbGFibGVUaW1lRW50cmllcyIsbnVsbCksZW9lPXQoW2koInRmLXByLWN1cnZlLWRhc2hib2FyZCIpXSxlb2UpO2xldCBub2U9Y2xhc3MgZXh0ZW5kcyhjcihFbCkpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnJlbG9hZE9uUmVhZHk9ITAsdGhpcy5fc2hvd0Rvd25sb2FkTGlua3M9UXMoIl9zaG93RG93bmxvYWRMaW5rcyIse2RlZmF1bHRWYWx1ZTohMSx1c2VMb2NhbFN0b3JhZ2U6ITB9KS5jYWxsKHRoaXMpLHRoaXMuX3Ntb290aGluZ1dlaWdodD1ybCgiX3Ntb290aGluZ1dlaWdodCIse2RlZmF1bHRWYWx1ZTouNn0pLmNhbGwodGhpcyksdGhpcy5faWdub3JlWU91dGxpZXJzPVFzKCJfaWdub3JlWU91dGxpZXJzIix7ZGVmYXVsdFZhbHVlOiEwLHVzZUxvY2FsU3RvcmFnZTohMH0pLmNhbGwodGhpcyksdGhpcy5feFR5cGU9d0N0LlNURVAsdGhpcy5fc2VsZWN0ZWRSdW5zPVtdLHRoaXMuX3RhZ0ZpbHRlcj0iIix0aGlzLl9jYXRlZ29yaWVzPVtdLHRoaXMuX2dldENhdGVnb3J5SXRlbUtleT10PT50LnRhZyx0aGlzLl9yZXF1ZXN0TWFuYWdlcj1uZXcgYnIoNTApLHRoaXMuX3Nob3dEb3dubG9hZExpbmtzT2JzZXJ2ZXI9dGwoIl9zaG93RG93bmxvYWRMaW5rcyIse2RlZmF1bHRWYWx1ZTohMSx1c2VMb2NhbFN0b3JhZ2U6ITB9KSx0aGlzLl9zbW9vdGhpbmdXZWlnaHRPYnNlcnZlcj1vbCgiX3Ntb290aGluZ1dlaWdodCIse2RlZmF1bHRWYWx1ZTouNn0pLHRoaXMuX2lnbm9yZVlPdXRsaWVyc09ic2VydmVyPXRsKCJfaWdub3JlWU91dGxpZXJzIix7ZGVmYXVsdFZhbHVlOiEwLHVzZUxvY2FsU3RvcmFnZTohMH0pfWdldCBfc21vb3RoaW5nRW5hYmxlZCgpe3JldHVybiB0aGlzLl9zbW9vdGhpbmdXZWlnaHQ+MH1fZ2V0Q2F0ZWdvcnlLZXkodCl7cmV0dXJuIHQubWV0YWRhdGEudHlwZT09QXIuU0VBUkNIX1JFU1VMVFM/IiI6dC5uYW1lfV9zaG91bGRPcGVuKHQpe3JldHVybiB0PD0yfXJlYWR5KCl7c3VwZXIucmVhZHkoKSx0aGlzLnJlbG9hZE9uUmVhZHkmJnRoaXMucmVsb2FkKCl9cmVsb2FkKCl7dGhpcy5fZmV0Y2hUYWdzKCkudGhlbigoKCk9Pnt0aGlzLl9yZWxvYWRDaGFydHMoKX0pKX1fZmV0Y2hUYWdzKCl7Y29uc3QgdD1FcigpLnBsdWdpblJvdXRlKCJzY2FsYXJzIiwiL3RhZ3MiKTtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKCh0PT57aWYoQ2UuZXhwb3J0cy5pc0VxdWFsKHQsdGhpcy5fcnVuVG9UYWdJbmZvKSlyZXR1cm47Y29uc3QgZT1mcihDZS5leHBvcnRzLm1hcFZhbHVlcyh0LCh0PT5PYmplY3Qua2V5cyh0KSkpKTt0aGlzLnNldCgiX2RhdGFOb3RGb3VuZCIsMD09PWUubGVuZ3RoKSx0aGlzLnNldCgiX3J1blRvVGFnSW5mbyIsdCksdGhpcy5hc3luYygoKCk9Pnt0aGlzLnNldCgiX2NhdGVnb3JpZXNEb21SZWFkeSIsITApfSkpfSkpfV9yZWxvYWRDaGFydHMoKXt0aGlzLnJvb3QucXVlcnlTZWxlY3RvckFsbCgidGYtc2NhbGFyLWNhcmQiKS5mb3JFYWNoKCh0PT57dC5yZWxvYWQoKX0pKX1fdXBkYXRlQ2F0ZWdvcmllcygpe3ZhciB0PXRoaXMuX3NlbGVjdGVkUnVucztsZXQgZSxuPXRoaXMuX3RhZ0ZpbHRlcjtlPVByKENlLmV4cG9ydHMubWFwVmFsdWVzKHRoaXMuX3J1blRvVGFnSW5mbywodD0+T2JqZWN0LmtleXModCkpKSx0LG4pLGUuZm9yRWFjaCgodD0+e3QuaXRlbXM9dC5pdGVtcy5tYXAoKHQ9Pih7dGFnOnQudGFnLHNlcmllczp0LnJ1bnMubWFwKChlPT4oe3J1bjplLHRhZzp0LnRhZ30pKSl9KSkpfSkpLHRoaXMudXBkYXRlQXJyYXlQcm9wKCJfY2F0ZWdvcmllcyIsZSx0aGlzLl9nZXRDYXRlZ29yeUtleSl9X3RhZ01ldGFkYXRhKHQsZSxuKXtjb25zdCBpPXQubmFtZSxyPW4udGFnLG89e307bi5zZXJpZXMuZm9yRWFjaCgoKHtydW46dH0pPT57b1t0XT1lW3RdW3JdfSkpO2NvbnN0IGE9ci5yZXBsYWNlKC9cL3NjYWxhcl9zdW1tYXJ5JC8sIiIpO2xldHtkZXNjcmlwdGlvbjpzLGRpc3BsYXlOYW1lOmx9PWtPKG8sYSk7cmV0dXJuIHQubWV0YWRhdGEudHlwZT09QXIuUFJFRklYX0dST1VQJiZsLnN0YXJ0c1dpdGgoaSsiLyIpJiYobD1sLnNsaWNlKGkubGVuZ3RoKzEpKSx7ZGVzY3JpcHRpb246cyxkaXNwbGF5TmFtZTpsfX19O25vZS50ZW1wbGF0ZT14ZWAKICAgIDx0Zi1kYXNoYm9hcmQtbGF5b3V0PgogICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyIiBzbG90PSJzaWRlYmFyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lLWl0ZW0iPgogICAgICAgICAgICAgIDxwYXBlci1jaGVja2JveAogICAgICAgICAgICAgICAgaWQ9InNob3ctZG93bmxvYWQtbGlua3MiCiAgICAgICAgICAgICAgICBjaGVja2VkPSJ7e19zaG93RG93bmxvYWRMaW5rc319IgogICAgICAgICAgICAgICAgPlNob3cgZGF0YSBkb3dubG9hZCBsaW5rczwvcGFwZXItY2hlY2tib3gKICAgICAgICAgICAgICA+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lLWl0ZW0iPgogICAgICAgICAgICAgIDxwYXBlci1jaGVja2JveAogICAgICAgICAgICAgICAgaWQ9Imlnbm9yZS15LW91dGxpZXIiCiAgICAgICAgICAgICAgICBjaGVja2VkPSJ7e19pZ25vcmVZT3V0bGllcnN9fSIKICAgICAgICAgICAgICAgID5JZ25vcmUgb3V0bGllcnMgaW4gY2hhcnQgc2NhbGluZzwvcGFwZXItY2hlY2tib3gKICAgICAgICAgICAgICA+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGlkPSJ0b29sdGlwLXNvcnRpbmciPgogICAgICAgICAgICAgIDxkaXY+VG9vbHRpcCBzb3J0aW5nIG1ldGhvZDo8L2Rpdj4KICAgICAgICAgICAgICA8cGFwZXItZHJvcGRvd24tbWVudQogICAgICAgICAgICAgICAgbm8tbGFiZWwtZmxvYXQKICAgICAgICAgICAgICAgIHNlbGVjdGVkLWl0ZW0tbGFiZWw9Int7X3Rvb2x0aXBTb3J0aW5nTWV0aG9kfX0iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPHBhcGVyLWxpc3Rib3gKICAgICAgICAgICAgICAgICAgY2xhc3M9ImRyb3Bkb3duLWNvbnRlbnQiCiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkPSIwIgogICAgICAgICAgICAgICAgICBzbG90PSJkcm9wZG93bi1jb250ZW50IgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8cGFwZXItaXRlbT5kZWZhdWx0PC9wYXBlci1pdGVtPgogICAgICAgICAgICAgICAgICA8cGFwZXItaXRlbT5kZXNjZW5kaW5nPC9wYXBlci1pdGVtPgogICAgICAgICAgICAgICAgICA8cGFwZXItaXRlbT5hc2NlbmRpbmc8L3BhcGVyLWl0ZW0+CiAgICAgICAgICAgICAgICAgIDxwYXBlci1pdGVtPm5lYXJlc3Q8L3BhcGVyLWl0ZW0+CiAgICAgICAgICAgICAgICA8L3BhcGVyLWxpc3Rib3g+CiAgICAgICAgICAgICAgPC9wYXBlci1kcm9wZG93bi1tZW51PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIj4KICAgICAgICAgICAgPHRmLXNtb290aGluZy1pbnB1dAogICAgICAgICAgICAgIHdlaWdodD0ie3tfc21vb3RoaW5nV2VpZ2h0fX0iCiAgICAgICAgICAgICAgc3RlcD0iMC4wMDEiCiAgICAgICAgICAgICAgbWluPSIwIgogICAgICAgICAgICAgIG1heD0iMC45OTkiCiAgICAgICAgICAgID48L3RmLXNtb290aGluZy1pbnB1dD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1zZWN0aW9uIj4KICAgICAgICAgICAgPHRmLW9wdGlvbi1zZWxlY3RvcgogICAgICAgICAgICAgIGlkPSJ4LXR5cGUtc2VsZWN0b3IiCiAgICAgICAgICAgICAgbmFtZT0iSG9yaXpvbnRhbCBBeGlzIgogICAgICAgICAgICAgIHNlbGVjdGVkLWlkPSJ7e194VHlwZX19IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPHBhcGVyLWJ1dHRvbiBpZD0ic3RlcCI+c3RlcDwvcGFwZXItYnV0dG9uCiAgICAgICAgICAgICAgPjwhLS0KICAgICAgICAgICAgLS0+PHBhcGVyLWJ1dHRvbiBpZD0icmVsYXRpdmUiPnJlbGF0aXZlPC9wYXBlci1idXR0b24KICAgICAgICAgICAgICA+PCEtLQogICAgICAgICAgICAtLT48cGFwZXItYnV0dG9uIGlkPSJ3YWxsX3RpbWUiPndhbGw8L3BhcGVyLWJ1dHRvbj4KICAgICAgICAgICAgPC90Zi1vcHRpb24tc2VsZWN0b3I+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24gcnVucy1zZWxlY3RvciI+CiAgICAgICAgICA8dGYtcnVucy1zZWxlY3RvciBzZWxlY3RlZC1ydW5zPSJ7e19zZWxlY3RlZFJ1bnN9fSI+CiAgICAgICAgICA8L3RmLXJ1bnMtc2VsZWN0b3I+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjZW50ZXIiIHNsb3Q9ImNlbnRlciI+CiAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20taWYiIGlmPSJbW19kYXRhTm90Rm91bmRdXSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuby1kYXRhLXdhcm5pbmciPgogICAgICAgICAgICA8aDM+Tm8gc2NhbGFyIGRhdGEgd2FzIGZvdW5kLjwvaDM+CiAgICAgICAgICAgIDxwPlByb2JhYmxlIGNhdXNlczo8L3A+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+WW91IGhhdmVu4oCZdCB3cml0dGVuIGFueSBzY2FsYXIgZGF0YSB0byB5b3VyIGV2ZW50IGZpbGVzLjwvbGk+CiAgICAgICAgICAgICAgPGxpPlRlbnNvckJvYXJkIGNhbuKAmXQgZmluZCB5b3VyIGV2ZW50IGZpbGVzLjwvbGk+CiAgICAgICAgICAgIDwvdWw+CgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICBJZiB5b3XigJlyZSBuZXcgdG8gdXNpbmcgVGVuc29yQm9hcmQsIGFuZCB3YW50IHRvIGZpbmQgb3V0IGhvdyB0bwogICAgICAgICAgICAgIGFkZCBkYXRhIGFuZCBzZXQgdXAgeW91ciBldmVudCBmaWxlcywgY2hlY2sgb3V0IHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQiCiAgICAgICAgICAgICAgICA+UkVBRE1FPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIGFuZCBwZXJoYXBzIHRoZQogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3d3dy50ZW5zb3JmbG93Lm9yZy9nZXRfc3RhcnRlZC9zdW1tYXJpZXNfYW5kX3RlbnNvcmJvYXJkIgogICAgICAgICAgICAgICAgPlRlbnNvckJvYXJkIHR1dG9yaWFsPC9hCiAgICAgICAgICAgICAgPi4KICAgICAgICAgICAgPC9wPgoKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgSWYgeW91IHRoaW5rIFRlbnNvckJvYXJkIGlzIGNvbmZpZ3VyZWQgcHJvcGVybHksIHBsZWFzZSBzZWUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI215LXRlbnNvcmJvYXJkLWlzbnQtc2hvd2luZy1hbnktZGF0YS13aGF0cy13cm9uZyIKICAgICAgICAgICAgICAgID50aGUgc2VjdGlvbiBvZiB0aGUgUkVBRE1FIGRldm90ZWQgdG8gbWlzc2luZyBkYXRhIHByb2JsZW1zPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIGFuZCBjb25zaWRlciBmaWxpbmcgYW4gaXNzdWUgb24gR2l0SHViLgogICAgICAgICAgICA8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLWlmIiBpZj0iW1shX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDx0Zi10YWctZmlsdGVyZXIgdGFnLWZpbHRlcj0ie3tfdGFnRmlsdGVyfX0iPjwvdGYtdGFnLWZpbHRlcmVyPgogICAgICAgICAgPHRlbXBsYXRlIGlzPSJkb20tcmVwZWF0IiBpdGVtcz0iW1tfY2F0ZWdvcmllc11dIiBhcz0iY2F0ZWdvcnkiPgogICAgICAgICAgICA8dGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXcKICAgICAgICAgICAgICBjYXRlZ29yeT0iW1tjYXRlZ29yeV1dIgogICAgICAgICAgICAgIGluaXRpYWwtb3BlbmVkPSJbW19zaG91bGRPcGVuKGluZGV4KV1dIgogICAgICAgICAgICAgIGdldC1jYXRlZ29yeS1pdGVtLWtleT0iW1tfZ2V0Q2F0ZWdvcnlJdGVtS2V5XV0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8dGVtcGxhdGU+CiAgICAgICAgICAgICAgICA8dGYtc2NhbGFyLWNhcmQKICAgICAgICAgICAgICAgICAgYWN0aXZlPSJbW2FjdGl2ZV1dIgogICAgICAgICAgICAgICAgICBkYXRhLXRvLWxvYWQ9IltbaXRlbS5zZXJpZXNdXSIKICAgICAgICAgICAgICAgICAgaWdub3JlLXktb3V0bGllcnM9IltbX2lnbm9yZVlPdXRsaWVyc11dIgogICAgICAgICAgICAgICAgICBtdWx0aS1leHBlcmltZW50cz0iW1tfZ2V0TXVsdGlFeHBlcmltZW50cyhkYXRhU2VsZWN0aW9uKV1dIgogICAgICAgICAgICAgICAgICByZXF1ZXN0LW1hbmFnZXI9IltbX3JlcXVlc3RNYW5hZ2VyXV0iCiAgICAgICAgICAgICAgICAgIHNob3ctZG93bmxvYWQtbGlua3M9IltbX3Nob3dEb3dubG9hZExpbmtzXV0iCiAgICAgICAgICAgICAgICAgIHNtb290aGluZy1lbmFibGVkPSJbW19zbW9vdGhpbmdFbmFibGVkXV0iCiAgICAgICAgICAgICAgICAgIHNtb290aGluZy13ZWlnaHQ9IltbX3Ntb290aGluZ1dlaWdodF1dIgogICAgICAgICAgICAgICAgICB0YWctbWV0YWRhdGE9IltbX3RhZ01ldGFkYXRhKGNhdGVnb3J5LCBfcnVuVG9UYWdJbmZvLCBpdGVtKV1dIgogICAgICAgICAgICAgICAgICB0YWc9IltbaXRlbS50YWddXSIKICAgICAgICAgICAgICAgICAgdG9vbHRpcC1zb3J0aW5nLW1ldGhvZD0iW1tfdG9vbHRpcFNvcnRpbmdNZXRob2RdXSIKICAgICAgICAgICAgICAgICAgeC10eXBlPSJbW194VHlwZV1dIgogICAgICAgICAgICAgICAgICBiYXRjaC1zaXplPSJbW2ZlYXR1cmVGbGFncy5zY2FsYXJzQmF0Y2hTaXplXV0iCiAgICAgICAgICAgICAgICAgIGluLWNvbGFiPSJbW2ZlYXR1cmVGbGFncy5pbkNvbGFiXV0iCiAgICAgICAgICAgICAgICA+PC90Zi1zY2FsYXItY2FyZD4KICAgICAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgICAgICA8L3RmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3PgogICAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8L3RlbXBsYXRlPgogICAgICA8L2Rpdj4KICAgIDwvdGYtZGFzaGJvYXJkLWxheW91dD4KCiAgICA8c3R5bGUgaW5jbHVkZT0iZGFzaGJvYXJkLXN0eWxlIj48L3N0eWxlPgogICAgPHN0eWxlPgogICAgICAjdG9vbHRpcC1zb3J0aW5nIHsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG1hcmdpbi10b3A6IDE1cHg7CiAgICAgIH0KCiAgICAgICN0b29sdGlwLXNvcnRpbmcgcGFwZXItZHJvcGRvd24tbWVudSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7CiAgICAgICAgLS1wYXBlci1pbnB1dC1jb250YWluZXItZm9jdXMtY29sb3I6IHZhcigtLXRiLW9yYW5nZS1zdHJvbmcpOwogICAgICAgIHdpZHRoOiAxMDVweDsKICAgICAgfQoKICAgICAgLmxpbmUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZy10b3A6IDVweDsKICAgICAgfQogICAgICAubm8tZGF0YS13YXJuaW5nIHsKICAgICAgICBtYXgtd2lkdGg6IDU0MHB4OwogICAgICAgIG1hcmdpbjogODBweCBhdXRvIDAgYXV0bzsKICAgICAgfQogICAgICAuY2VudGVyIHsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLG5vZS5wcm90b3R5cGUsInJlbG9hZE9uUmVhZHkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sbm9lLnByb3RvdHlwZSwiZmVhdHVyZUZsYWdzIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixub3RpZnk6ITAsb2JzZXJ2ZXI6Il9zaG93RG93bmxvYWRMaW5rc09ic2VydmVyIn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sbm9lLnByb3RvdHlwZSwiX3Nob3dEb3dubG9hZExpbmtzIix2b2lkIDApLHQoW28oe3R5cGU6TnVtYmVyLG5vdGlmeTohMCxvYnNlcnZlcjoiX3Ntb290aGluZ1dlaWdodE9ic2VydmVyIn0pLGUoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxub2UucHJvdG90eXBlLCJfc21vb3RoaW5nV2VpZ2h0Iix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbixvYnNlcnZlcjoiX2lnbm9yZVlPdXRsaWVyc09ic2VydmVyIn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0sbm9lLnByb3RvdHlwZSwiX2lnbm9yZVlPdXRsaWVycyIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxub2UucHJvdG90eXBlLCJfeFR5cGUiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLG5vZS5wcm90b3R5cGUsIl9zZWxlY3RlZFJ1bnMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sbm9lLnByb3RvdHlwZSwiX3J1blRvVGFnSW5mbyIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLG5vZS5wcm90b3R5cGUsIl9kYXRhTm90Rm91bmQiLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sbm9lLnByb3RvdHlwZSwiX3RhZ0ZpbHRlciIsdm9pZCAwKSx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLG5vZS5wcm90b3R5cGUsIl9jYXRlZ29yaWVzRG9tUmVhZHkiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLG5vZS5wcm90b3R5cGUsIl9jYXRlZ29yaWVzIix2b2lkIDApLHQoW28oe3R5cGU6T2JqZWN0fSksZSgiZGVzaWduOnR5cGUiLE9iamVjdCldLG5vZS5wcm90b3R5cGUsIl9nZXRDYXRlZ29yeUl0ZW1LZXkiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsYnIpXSxub2UucHJvdG90eXBlLCJfcmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbcygiX3Ntb290aGluZ1dlaWdodCIpLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxub2UucHJvdG90eXBlLCJfc21vb3RoaW5nRW5hYmxlZCIsbnVsbCksdChbYSgiX3J1blRvVGFnSW5mbyIsIl9zZWxlY3RlZFJ1bnMiLCJfdGFnRmlsdGVyIiwiX2NhdGVnb3JpZXNEb21SZWFkeSIpLGUoImRlc2lnbjp0eXBlIixGdW5jdGlvbiksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKSxlKCJkZXNpZ246cmV0dXJudHlwZSIsdm9pZCAwKV0sbm9lLnByb3RvdHlwZSwiX3VwZGF0ZUNhdGVnb3JpZXMiLG51bGwpLG5vZT10KFtpKCJ0Zi1zY2FsYXItZGFzaGJvYXJkIildLG5vZSk7bGV0IGlvZT1jbGFzcyBleHRlbmRzKGNyKHdlKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3RleHRzPVtdLHRoaXMuX2NhbmNlbGxlcj1uZXcgeE99Z2V0IF9ydW5Db2xvcigpe3JldHVybiBfTyh0aGlzLnJ1bil9X2NoYW5nZVJ1bkNvbG9yKCl7dGhpcy51cGRhdGVTdHlsZXMoeyItLXRiLXRleHQtbG9hZGVyLW91dGxpbmUiOnRoaXMuX3J1bkNvbG9yfSl9YXR0YWNoZWQoKXt0aGlzLnJlbG9hZCgpfXJlbG9hZCgpe2lmKCF0aGlzLmlzQXR0YWNoZWQpcmV0dXJuO3RoaXMuX2NhbmNlbGxlci5jYW5jZWxBbGwoKTtjb25zdCB0PVBPKEVyKCkucGx1Z2luUm91dGUoInRleHQiLCIvdGV4dCIpLHt0YWc6dGhpcy50YWcscnVuOnRoaXMucnVuLG1hcmtkb3duOnRoaXMubWFya2Rvd25FbmFibGVkPyJ0cnVlIjoiZmFsc2UifSksZT10aGlzLl9jYW5jZWxsZXIuY2FuY2VsbGFibGUoKHQ9PntpZih0LmNhbmNlbGxlZClyZXR1cm47Y29uc3QgZT10LnZhbHVlLm1hcCgodD0+KHt3YWxsX3RpbWU6bmV3IERhdGUoMWUzKnQud2FsbF90aW1lKSxzdGVwOnQuc3RlcCx0ZXh0OnQudGV4dH0pKSk7dGhpcy5zZXQoIl90ZXh0cyIsZS5zbGljZSgpLnJldmVyc2UoKSl9KSk7dGhpcy5yZXF1ZXN0TWFuYWdlci5yZXF1ZXN0KHQpLnRoZW4oZSl9X2Zvcm1hdFN0ZXAodCl7cmV0dXJuIER5KCIsIikodCl9fTtpb2UudGVtcGxhdGU9eGVgCiAgICA8dGYtY2FyZC1oZWFkaW5nIHJ1bj0iW1tydW5dXSIgdGFnPSJbW3RhZ11dIiBjb2xvcj0iW1tfcnVuQ29sb3JdXSI+CiAgICA8L3RmLWNhcmQtaGVhZGluZz4KICAgIDxwYXBlci1tYXRlcmlhbAogICAgICBlbGV2YXRpb249IjEiCiAgICAgIGlkPSJzdGVwcy1jb250YWluZXIiCiAgICAgIGNsYXNzPSJjb250YWluZXIgc2Nyb2xsYmFyIgogICAgPgogICAgICA8dGVtcGxhdGUgaXM9ImRvbS1yZXBlYXQiIGl0ZW1zPSJbW190ZXh0c11dIj4KICAgICAgICA8cGFwZXItbWF0ZXJpYWwgZWxldmF0aW9uPSIxIiBjbGFzcz0ic3RlcC1jb250YWluZXIiPgogICAgICAgICAgc3RlcCA8c3BhbiBjbGFzcz0ic3RlcC12YWx1ZSI+W1tfZm9ybWF0U3RlcChpdGVtLnN0ZXApXV08L3NwYW4+CiAgICAgICAgPC9wYXBlci1tYXRlcmlhbD4KICAgICAgICA8cGFwZXItbWF0ZXJpYWwgZWxldmF0aW9uPSIxIiBjbGFzcz0idGV4dCI+CiAgICAgICAgICA8dGYtbWFya2Rvd24tdmlldyBodG1sPSJbW2l0ZW0udGV4dF1dIj48L3RmLW1hcmtkb3duLXZpZXc+CiAgICAgICAgPC9wYXBlci1tYXRlcmlhbD4KICAgICAgPC90ZW1wbGF0ZT4KICAgIDwvcGFwZXItbWF0ZXJpYWw+CiAgICA8c3R5bGUgaW5jbHVkZT0ic2Nyb2xsYmFyLXN0eWxlIj48L3N0eWxlPgogICAgPHN0eWxlPgogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgICAgfQogICAgICAuc2Nyb2xsYmFyIHsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICB9CiAgICAgICNzdGVwcy1jb250YWluZXIgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAvKiBjb2xvciBjb21wdXRlZCBhbmQgc2V0IGFzIGlubGluZSBzdHlsZSAqLzsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBtYXgtaGVpZ2h0OiA1MDBweDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdGItdGV4dC1sb2FkZXItb3V0bGluZSk7CiAgICAgIH0KICAgICAgLnRleHQgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAzcHggM3B4IDNweDsKICAgICAgICBwYWRkaW5nOiA1cHg7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDsKICAgICAgfQogICAgICAuc3RlcC1jb250YWluZXIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRiLXVpLWxpZ2h0LWFjY2VudCk7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHggM3B4IDAgMDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10Yi11aS1ib3JkZXIpOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4OyAvKiB0byBjb3JyZWN0IGZvciBib3JkZXIgKi8KICAgICAgICBwYWRkaW5nOiAzcHg7CiAgICAgIH0KICAgICAgLnN0ZXAtY29udGFpbmVyOm5vdCg6Zmlyc3QtY2hpbGQpIHsKICAgICAgICBtYXJnaW4tdG9wOiAxNXB4OwogICAgICB9CgogICAgICB0Zi1jYXJkLWhlYWRpbmcgewogICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxpb2UucHJvdG90eXBlLCJydW4iLHZvaWQgMCksdChbbyh7dHlwZTpTdHJpbmd9KSxlKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0saW9lLnByb3RvdHlwZSwidGFnIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0saW9lLnByb3RvdHlwZSwibWFya2Rvd25FbmFibGVkIix2b2lkIDApLHQoW28oe3R5cGU6QXJyYXl9KSxlKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxpb2UucHJvdG90eXBlLCJfdGV4dHMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsYnIpXSxpb2UucHJvdG90eXBlLCJyZXF1ZXN0TWFuYWdlciIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIix4TyldLGlvZS5wcm90b3R5cGUsIl9jYW5jZWxsZXIiLHZvaWQgMCksdChbcygicnVuIiksZSgiZGVzaWduOnR5cGUiLFN0cmluZyksZSgiZGVzaWduOnBhcmFtdHlwZXMiLFtdKV0saW9lLnByb3RvdHlwZSwiX3J1bkNvbG9yIixudWxsKSx0KFthKCJfcnVuQ29sb3IiKSxlKCJkZXNpZ246dHlwZSIsRnVuY3Rpb24pLGUoImRlc2lnbjpwYXJhbXR5cGVzIixbXSksZSgiZGVzaWduOnJldHVybnR5cGUiLHZvaWQgMCldLGlvZS5wcm90b3R5cGUsIl9jaGFuZ2VSdW5Db2xvciIsbnVsbCksaW9lPXQoW2koInRmLXRleHQtbG9hZGVyIildLGlvZSk7bGV0IHJvZT1jbGFzcyBleHRlbmRzKGNyKHdlKSl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucmVsb2FkT25SZWFkeT0hMCx0aGlzLl9tYXJrZG93bkVuYWJsZWQ9UXMoIl9tYXJrZG93bkVuYWJsZWQiLHtkZWZhdWx0VmFsdWU6ITAsdXNlTG9jYWxTdG9yYWdlOiEwfSkuY2FsbCh0aGlzKSx0aGlzLl9yZXF1ZXN0TWFuYWdlcj1uZXcgYnIsdGhpcy5fbWFya2Rvd25FbmFibGVkU3RvcmFnZU9ic2VydmVyPXRsKCJfbWFya2Rvd25FbmFibGVkIix7ZGVmYXVsdFZhbHVlOiEwLHVzZUxvY2FsU3RvcmFnZTohMH0pfXN0YXRpYyBnZXQgb2JzZXJ2ZXJzKCl7cmV0dXJuWyJfbWFya2Rvd25FbmFibGVkT2JzZXJ2ZXIoX21hcmtkb3duRW5hYmxlZCkiXX1yZWFkeSgpe3N1cGVyLnJlYWR5KCksdGhpcy5yZWxvYWRPblJlYWR5JiZ0aGlzLnJlbG9hZCgpfXJlbG9hZCgpe3RoaXMuX2ZldGNoVGFncygpLnRoZW4oKCgpPT57dGhpcy5fcmVsb2FkVGV4dHMoKX0pKX1fc2hvdWxkT3Blbih0KXtyZXR1cm4gdDw9Mn1fZmV0Y2hUYWdzKCl7Y29uc3QgdD1FcigpLnBsdWdpblJvdXRlKCJ0ZXh0IiwiL3RhZ3MiKTtyZXR1cm4gdGhpcy5fcmVxdWVzdE1hbmFnZXIucmVxdWVzdCh0KS50aGVuKCh0PT57aWYoQ2UuZXhwb3J0cy5pc0VxdWFsKHQsdGhpcy5fcnVuVG9UYWcpKXJldHVybjtjb25zdCBlPWZyKHQpO3RoaXMuc2V0KCJfZGF0YU5vdEZvdW5kIiwwPT09ZS5sZW5ndGgpLHRoaXMuc2V0KCJfcnVuVG9UYWciLHQpLHRoaXMuYXN5bmMoKCgpPT57dGhpcy5zZXQoIl9jYXRlZ29yaWVzRG9tUmVhZHkiLCEwKX0pKX0pKX1fcmVsb2FkVGV4dHMoKXt0aGlzLnJvb3QucXVlcnlTZWxlY3RvckFsbCgidGYtdGV4dC1sb2FkZXIiKS5mb3JFYWNoKCh0PT57dC5yZWxvYWQoKX0pKX1nZXQgX2NhdGVnb3JpZXMoKXtyZXR1cm4gSXIodGhpcy5fcnVuVG9UYWcsdGhpcy5fc2VsZWN0ZWRSdW5zLHRoaXMuX3RhZ0ZpbHRlcil9X21hcmtkb3duRW5hYmxlZE9ic2VydmVyKCl7dGhpcy5fcmVsb2FkVGV4dHMoKX19O3JvZS50ZW1wbGF0ZT14ZWAKICAgIDx0Zi1kYXNoYm9hcmQtbGF5b3V0PgogICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyIiBzbG90PSJzaWRlYmFyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGluZS1pdGVtIj4KICAgICAgICAgICAgPHBhcGVyLWNoZWNrYm94IGNoZWNrZWQ9Int7X21hcmtkb3duRW5hYmxlZH19IgogICAgICAgICAgICAgID5FbmFibGUgTWFya2Rvd248L3BhcGVyLWNoZWNrYm94CiAgICAgICAgICAgID4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItc2VjdGlvbiBydW5zLXNlbGVjdG9yIj4KICAgICAgICAgIDx0Zi1ydW5zLXNlbGVjdG9yIHNlbGVjdGVkLXJ1bnM9Int7X3NlbGVjdGVkUnVuc319Ij4KICAgICAgICAgIDwvdGYtcnVucy1zZWxlY3Rvcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNlbnRlciIgc2xvdD0iY2VudGVyIj4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbX2RhdGFOb3RGb3VuZF1dIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im5vLWRhdGEtd2FybmluZyI+CiAgICAgICAgICAgIDxoMz5ObyB0ZXh0IGRhdGEgd2FzIGZvdW5kLjwvaDM+CiAgICAgICAgICAgIDxwPlByb2JhYmxlIGNhdXNlczo8L3A+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+WW91IGhhdmVu4oCZdCB3cml0dGVuIGFueSB0ZXh0IGRhdGEgdG8geW91ciBldmVudCBmaWxlcy48L2xpPgogICAgICAgICAgICAgIDxsaT5UZW5zb3JCb2FyZCBjYW7igJl0IGZpbmQgeW91ciBldmVudCBmaWxlcy48L2xpPgogICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgSWYgeW914oCZcmUgbmV3IHRvIHVzaW5nIFRlbnNvckJvYXJkLCBhbmQgd2FudCB0byBmaW5kIG91dCBob3cgdG8KICAgICAgICAgICAgICBhZGQgZGF0YSBhbmQgc2V0IHVwIHlvdXIgZXZlbnQgZmlsZXMsIGNoZWNrIG91dCB0aGUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIgogICAgICAgICAgICAgICAgPlJFQURNRTwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBhbmQgcGVyaGFwcyB0aGUKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly93d3cudGVuc29yZmxvdy5vcmcvZ2V0X3N0YXJ0ZWQvc3VtbWFyaWVzX2FuZF90ZW5zb3Jib2FyZCIKICAgICAgICAgICAgICAgID5UZW5zb3JCb2FyZCB0dXRvcmlhbDwvYQogICAgICAgICAgICAgID4uCiAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIElmIHlvdSB0aGluayBUZW5zb3JCb2FyZCBpcyBjb25maWd1cmVkIHByb3Blcmx5LCBwbGVhc2Ugc2VlCiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2Jsb2IvbWFzdGVyL1JFQURNRS5tZCNteS10ZW5zb3Jib2FyZC1pc250LXNob3dpbmctYW55LWRhdGEtd2hhdHMtd3JvbmciCiAgICAgICAgICAgICAgICA+dGhlIHNlY3Rpb24gb2YgdGhlIFJFQURNRSBkZXZvdGVkIHRvIG1pc3NpbmcgZGF0YSBwcm9ibGVtczwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBhbmQgY29uc2lkZXIgZmlsaW5nIGFuIGlzc3VlIG9uIEdpdEh1Yi4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC90ZW1wbGF0ZT4KICAgICAgICA8dGVtcGxhdGUgaXM9ImRvbS1pZiIgaWY9IltbIV9kYXRhTm90Rm91bmRdXSI+CiAgICAgICAgICA8dGYtdGFnLWZpbHRlcmVyIHRhZy1maWx0ZXI9Int7X3RhZ0ZpbHRlcn19Ij48L3RmLXRhZy1maWx0ZXJlcj4KICAgICAgICAgIDx0ZW1wbGF0ZSBpcz0iZG9tLXJlcGVhdCIgaXRlbXM9IltbX2NhdGVnb3JpZXNdXSIgYXM9ImNhdGVnb3J5Ij4KICAgICAgICAgICAgPHRmLWNhdGVnb3J5LXBhZ2luYXRlZC12aWV3CiAgICAgICAgICAgICAgY2F0ZWdvcnk9IltbY2F0ZWdvcnldXSIKICAgICAgICAgICAgICBpbml0aWFsLW9wZW5lZD0iW1tfc2hvdWxkT3BlbihpbmRleCldXSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDx0ZW1wbGF0ZT4KICAgICAgICAgICAgICAgIDx0Zi10ZXh0LWxvYWRlcgogICAgICAgICAgICAgICAgICBhY3RpdmU9IltbYWN0aXZlXV0iCiAgICAgICAgICAgICAgICAgIHRhZz0iW1tpdGVtLnRhZ11dIgogICAgICAgICAgICAgICAgICBydW49IltbaXRlbS5ydW5dXSIKICAgICAgICAgICAgICAgICAgcmVxdWVzdC1tYW5hZ2VyPSJbW19yZXF1ZXN0TWFuYWdlcl1dIgogICAgICAgICAgICAgICAgICBtYXJrZG93bi1lbmFibGVkPSJbW19tYXJrZG93bkVuYWJsZWRdXSIKICAgICAgICAgICAgICAgID48L3RmLXRleHQtbG9hZGVyPgogICAgICAgICAgICAgIDwvdGVtcGxhdGU+CiAgICAgICAgICAgIDwvdGYtY2F0ZWdvcnktcGFnaW5hdGVkLXZpZXc+CiAgICAgICAgICA8L3RlbXBsYXRlPgogICAgICAgIDwvdGVtcGxhdGU+CiAgICAgIDwvZGl2PgogICAgPC90Zi1kYXNoYm9hcmQtbGF5b3V0PgogICAgPHN0eWxlIGluY2x1ZGU9ImRhc2hib2FyZC1zdHlsZSI+PC9zdHlsZT4KICAgIDxzdHlsZT4KICAgICAgLm5vLWRhdGEtd2FybmluZyB7CiAgICAgICAgbWF4LXdpZHRoOiA1NDBweDsKICAgICAgICBtYXJnaW46IDgwcHggYXV0byAwIGF1dG87CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgYCx0KFtvKHt0eXBlOkJvb2xlYW59KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHJvZS5wcm90b3R5cGUsInJlbG9hZE9uUmVhZHkiLHZvaWQgMCksdChbbyh7dHlwZTpCb29sZWFuLG5vdGlmeTohMCxvYnNlcnZlcjoiX21hcmtkb3duRW5hYmxlZFN0b3JhZ2VPYnNlcnZlciJ9KSxlKCJkZXNpZ246dHlwZSIsQm9vbGVhbildLHJvZS5wcm90b3R5cGUsIl9tYXJrZG93bkVuYWJsZWQiLHZvaWQgMCksdChbbyh7dHlwZTpBcnJheX0pLGUoImRlc2lnbjp0eXBlIixBcnJheSldLHJvZS5wcm90b3R5cGUsIl9zZWxlY3RlZFJ1bnMiLHZvaWQgMCksdChbbyh7dHlwZTpPYmplY3R9KSxlKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0scm9lLnByb3RvdHlwZSwiX3J1blRvVGFnIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0scm9lLnByb3RvdHlwZSwiX2RhdGFOb3RGb3VuZCIsdm9pZCAwKSx0KFtvKHt0eXBlOlN0cmluZ30pLGUoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxyb2UucHJvdG90eXBlLCJfdGFnRmlsdGVyIix2b2lkIDApLHQoW28oe3R5cGU6Qm9vbGVhbn0pLGUoImRlc2lnbjp0eXBlIixCb29sZWFuKV0scm9lLnByb3RvdHlwZSwiX2NhdGVnb3JpZXNEb21SZWFkeSIsdm9pZCAwKSx0KFtvKHt0eXBlOk9iamVjdH0pLGUoImRlc2lnbjp0eXBlIixPYmplY3QpXSxyb2UucHJvdG90eXBlLCJfcmVxdWVzdE1hbmFnZXIiLHZvaWQgMCksdChbcygiX3J1blRvVGFnIiwiX3NlbGVjdGVkUnVucyIsIl90YWdGaWx0ZXIiLCJfY2F0ZWdvcmllc0RvbVJlYWR5IiksZSgiZGVzaWduOnR5cGUiLEFycmF5KSxlKCJkZXNpZ246cGFyYW10eXBlcyIsW10pXSxyb2UucHJvdG90eXBlLCJfY2F0ZWdvcmllcyIsbnVsbCkscm9lPXQoW2koInRmLXRleHQtZGFzaGJvYXJkIildLHJvZSk7bGV0IG9vZT1jbGFzcyBleHRlbmRzIHdle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl90ZW1wbGF0ZT1udWxsLHRoaXMudGZfYmFja2VuZD1TQXR9fTtvb2U9dChbaSgidGYtYmFja2VuZCIpXSxvb2UpO2xldCBhb2U9Y2xhc3MgZXh0ZW5kcyB3ZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fdGVtcGxhdGU9bnVsbCx0aGlzLnJ1bnNDb2xvclNjYWxlPV9PfX07YW9lPXQoW2koInRmLWNvbG9yLXNjYWxlIildLGFvZSk7bGV0IHNvZT1jbGFzcyBleHRlbmRzIHdle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl90ZW1wbGF0ZT1udWxsLHRoaXMudGZfZ2xvYmFscz1Ec319O3NvZT10KFtpKCJ0Zi1nbG9iYWxzIildLHNvZSk7dmFyIGxvZT1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxhZGRMaW1pdExpc3RlbmVyOndsLHJlbW92ZUxpbWl0TGlzdGVuZXI6U2wsZ2V0TGltaXQ6TWwsc2V0TGltaXQ6ZnVuY3Rpb24gY29lKHQpe2lmKHQhPT1NYXRoLmZsb29yKHQpKXRocm93IG5ldyBFcnJvcihgbGltaXQgbXVzdCBiZSBhbiBpbnRlZ2VyLCBidXQgZ290OiAke3R9YCk7aWYodDw9MCl0aHJvdyBuZXcgRXJyb3IoYGxpbWl0IG11c3QgYmUgcG9zaXRpdmUsIGJ1dCBnb3Q6ICR7dH1gKTt0IT09YmwmJihibD10LGlsKHZsLGJsLHt1c2VMb2NhbFN0b3JhZ2U6ITB9KSx4bC5mb3JFYWNoKCh0PT57dCgpfSkpKX0sVGZEb21SZXBlYXQ6VGx9KTtsZXQgdW9lPWNsYXNzIGV4dGVuZHMgd2V7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3RlbXBsYXRlPW51bGwsdGhpcy50Zl9wYWdpbmF0ZWRfdmlldz1sb2V9fTt1b2U9dChbaSgidGYtcGFnaW5hdGVkLXZpZXctc3RvcmUiKV0sdW9lKTtsZXQgaG9lPWNsYXNzIGV4dGVuZHMgd2V7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3RlbXBsYXRlPW51bGwsdGhpcy50Zl9zdG9yYWdlPUlBdH19O2hvZT10KFtpKCJ0Zi1zdG9yYWdlIildLGhvZSl9KSgpOwoKIShmdW5jdGlvbigpewovKiEgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLgoKICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQogICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLgoKICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRICiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkKICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCwKICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTQogICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IKICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IKICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuCiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLwp2YXIgdD1mdW5jdGlvbihlLG4pe3JldHVybih0PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pJiYodFtuXT1lW25dKX0pKGUsbil9O2Z1bmN0aW9uIGUoZSxuKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgbiYmbnVsbCE9PW4pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhuKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBvKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfXQoZSxuKSxlLnByb3RvdHlwZT1udWxsPT09bj9PYmplY3QuY3JlYXRlKG4pOihvLnByb3RvdHlwZT1uLnByb3RvdHlwZSxuZXcgbyl9ZnVuY3Rpb24gbih0LGUsbixvKXtyZXR1cm4gbmV3KG58fChuPVByb21pc2UpKSgoZnVuY3Rpb24oaSxhKXtmdW5jdGlvbiByKHQpe3RyeXtsKG8ubmV4dCh0KSl9Y2F0Y2godCl7YSh0KX19ZnVuY3Rpb24gcyh0KXt0cnl7bChvLnRocm93KHQpKX1jYXRjaCh0KXthKHQpfX1mdW5jdGlvbiBsKHQpe3QuZG9uZT9pKHQudmFsdWUpOihmdW5jdGlvbiBlKHQpe3JldHVybiB0IGluc3RhbmNlb2Ygbj90Om5ldyBuKChmdW5jdGlvbihlKXtlKHQpfSkpfSkodC52YWx1ZSkudGhlbihyLHMpfWwoKG89by5hcHBseSh0LGV8fFtdKSkubmV4dCgpKX0pKX1mdW5jdGlvbiBvKHQsZSl7dmFyIG4sbyxpLGEscj17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZpWzBdKXRocm93IGlbMV07cmV0dXJuIGlbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gYT17bmV4dDpzKDApLHRocm93OnMoMSkscmV0dXJuOnMoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihhW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGE7ZnVuY3Rpb24gcyhhKXtyZXR1cm4gZnVuY3Rpb24ocyl7cmV0dXJuKGZ1bmN0aW9uIGwoYSl7aWYobil0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtyOyl0cnl7aWYobj0xLG8mJihpPTImYVswXT9vLnJldHVybjphWzBdP28udGhyb3d8fCgoaT1vLnJldHVybikmJmkuY2FsbChvKSwwKTpvLm5leHQpJiYhKGk9aS5jYWxsKG8sYVsxXSkpLmRvbmUpcmV0dXJuIGk7c3dpdGNoKG89MCxpJiYoYT1bMiZhWzBdLGkudmFsdWVdKSxhWzBdKXtjYXNlIDA6Y2FzZSAxOmk9YTticmVhaztjYXNlIDQ6cmV0dXJuIHIubGFiZWwrKyx7dmFsdWU6YVsxXSxkb25lOiExfTtjYXNlIDU6ci5sYWJlbCsrLG89YVsxXSxhPVswXTtjb250aW51ZTtjYXNlIDc6YT1yLm9wcy5wb3AoKSxyLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKGk9ci50cnlzLChpPWkubGVuZ3RoPjAmJmlbaS5sZW5ndGgtMV0pfHw2IT09YVswXSYmMiE9PWFbMF0pKXtyPTA7Y29udGludWV9aWYoMz09PWFbMF0mJighaXx8YVsxXT5pWzBdJiZhWzFdPGlbM10pKXtyLmxhYmVsPWFbMV07YnJlYWt9aWYoNj09PWFbMF0mJnIubGFiZWw8aVsxXSl7ci5sYWJlbD1pWzFdLGk9YTticmVha31pZihpJiZyLmxhYmVsPGlbMl0pe3IubGFiZWw9aVsyXSxyLm9wcy5wdXNoKGEpO2JyZWFrfWlbMl0mJnIub3BzLnBvcCgpLHIudHJ5cy5wb3AoKTtjb250aW51ZX1hPWUuY2FsbCh0LHIpfWNhdGNoKHQpe2E9WzYsdF0sbz0wfWZpbmFsbHl7bj1pPTB9aWYoNSZhWzBdKXRocm93IGFbMV07cmV0dXJue3ZhbHVlOmFbMF0/YVsxXTp2b2lkIDAsZG9uZTohMH19KShbYSxzXSl9fX1mdW5jdGlvbiBpKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvcixuPWUmJnRbZV0sbz0wO2lmKG4pcmV0dXJuIG4uY2FsbCh0KTtpZih0JiYibnVtYmVyIj09dHlwZW9mIHQubGVuZ3RoKXJldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHQmJm8+PXQubGVuZ3RoJiYodD12b2lkIDApLHt2YWx1ZTp0JiZ0W28rK10sZG9uZTohdH19fTt0aHJvdyBuZXcgVHlwZUVycm9yKGU/Ik9iamVjdCBpcyBub3QgaXRlcmFibGUuIjoiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpfWZ1bmN0aW9uIGEodCxlKXt2YXIgbj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl07aWYoIW4pcmV0dXJuIHQ7dmFyIG8saSxhPW4uY2FsbCh0KSxyPVtdO3RyeXtmb3IoOyh2b2lkIDA9PT1lfHxlLS0gPjApJiYhKG89YS5uZXh0KCkpLmRvbmU7KXIucHVzaChvLnZhbHVlKX1jYXRjaCh0KXtpPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtvJiYhby5kb25lJiYobj1hLnJldHVybikmJm4uY2FsbChhKX1maW5hbGx5e2lmKGkpdGhyb3cgaS5lcnJvcn19cmV0dXJuIHJ9ZnVuY3Rpb24gcih0LGUpe2Zvcih2YXIgbj0wLG89ZS5sZW5ndGgsaT10Lmxlbmd0aDtuPG87bisrLGkrKyl0W2ldPWVbbl07cmV0dXJuIHR9ZnVuY3Rpb24gcyh0KXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIHM/KHRoaXMudj10LHRoaXMpOm5ldyBzKHQpfWZ1bmN0aW9uIGwodCxlLG4pe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgbyxpPW4uYXBwbHkodCxlfHxbXSksYT1bXTtyZXR1cm4gbz17fSxyKCJuZXh0IikscigidGhyb3ciKSxyKCJyZXR1cm4iKSxvW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxvO2Z1bmN0aW9uIHIodCl7aVt0XSYmKG9bdF09ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihuLG8pe2EucHVzaChbdCxlLG4sb10pPjF8fGwodCxlKX0pKX0pfWZ1bmN0aW9uIGwodCxlKXt0cnl7IShmdW5jdGlvbiBuKHQpe3QudmFsdWUgaW5zdGFuY2VvZiBzP1Byb21pc2UucmVzb2x2ZSh0LnZhbHVlLnYpLnRoZW4oYyxkKTpwKGFbMF1bMl0sdCl9KShpW3RdKGUpKX1jYXRjaCh0KXtwKGFbMF1bM10sdCl9fWZ1bmN0aW9uIGModCl7bCgibmV4dCIsdCl9ZnVuY3Rpb24gZCh0KXtsKCJ0aHJvdyIsdCl9ZnVuY3Rpb24gcCh0LGUpe3QoZSksYS5zaGlmdCgpLGEubGVuZ3RoJiZsKGFbMF1bMF0sYVswXVsxXSl9fWZ1bmN0aW9uIGModCl7aWYoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpO3ZhciBlLG49dFtTeW1ib2wuYXN5bmNJdGVyYXRvcl07cmV0dXJuIG4/bi5jYWxsKHQpOih0PWkodCksZT17fSxvKCJuZXh0IiksbygidGhyb3ciKSxvKCJyZXR1cm4iKSxlW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxlKTtmdW5jdGlvbiBvKG4pe2Vbbl09dFtuXSYmZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihvLGkpeyhmdW5jdGlvbiBhKHQsZSxuLG8pe1Byb21pc2UucmVzb2x2ZShvKS50aGVuKChmdW5jdGlvbihlKXt0KHt2YWx1ZTplLGRvbmU6bn0pfSksZSl9KShvLGksKGU9dFtuXShlKSkuZG9uZSxlLnZhbHVlKX0pKX19fWZ1bmN0aW9uIGQodCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHR9ZnVuY3Rpb24gcCh0KXt2YXIgZT10KChmdW5jdGlvbih0KXtFcnJvci5jYWxsKHQpLHQuc3RhY2s9KG5ldyBFcnJvcikuc3RhY2t9KSk7cmV0dXJuIGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGV9dmFyIG09cCgoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uIGUobil7dCh0aGlzKSx0aGlzLm1lc3NhZ2U9bj9uLmxlbmd0aCsiIGVycm9ycyBvY2N1cnJlZCBkdXJpbmcgdW5zdWJzY3JpcHRpb246XG4iK24ubWFwKChmdW5jdGlvbih0LGUpe3JldHVybiBlKzErIikgIit0LnRvU3RyaW5nKCl9KSkuam9pbigiXG4gICIpOiIiLHRoaXMubmFtZT0iVW5zdWJzY3JpcHRpb25FcnJvciIsdGhpcy5lcnJvcnM9bn19KSk7ZnVuY3Rpb24gZih0LGUpe2lmKHQpe3ZhciBuPXQuaW5kZXhPZihlKTswPD1uJiZ0LnNwbGljZShuLDEpfX12YXIgdT0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuaW5pdGlhbFRlYXJkb3duPXQsdGhpcy5jbG9zZWQ9ITEsdGhpcy5fcGFyZW50YWdlPW51bGwsdGhpcy5fdGVhcmRvd25zPW51bGx9cmV0dXJuIHQucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dmFyIHQsZSxuLG8scztpZighdGhpcy5jbG9zZWQpe3RoaXMuY2xvc2VkPSEwO3ZhciBsPXRoaXMuX3BhcmVudGFnZTtpZihsKWlmKHRoaXMuX3BhcmVudGFnZT1udWxsLEFycmF5LmlzQXJyYXkobCkpdHJ5e2Zvcih2YXIgYz1pKGwpLHA9Yy5uZXh0KCk7IXAuZG9uZTtwPWMubmV4dCgpKXtwLnZhbHVlLnJlbW92ZSh0aGlzKX19Y2F0Y2goZSl7dD17ZXJyb3I6ZX19ZmluYWxseXt0cnl7cCYmIXAuZG9uZSYmKGU9Yy5yZXR1cm4pJiZlLmNhbGwoYyl9ZmluYWxseXtpZih0KXRocm93IHQuZXJyb3J9fWVsc2UgbC5yZW1vdmUodGhpcyk7dmFyIGY9dGhpcy5pbml0aWFsVGVhcmRvd247aWYoZChmKSl0cnl7ZigpfWNhdGNoKHQpe3M9dCBpbnN0YW5jZW9mIG0/dC5lcnJvcnM6W3RdfXZhciB1PXRoaXMuX3RlYXJkb3ducztpZih1KXt0aGlzLl90ZWFyZG93bnM9bnVsbDt0cnl7Zm9yKHZhciBnPWkodSksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciB5PWgudmFsdWU7dHJ5e2IoeSl9Y2F0Y2godCl7cz1udWxsIT1zP3M6W10sdCBpbnN0YW5jZW9mIG0/cz1yKHIoW10sYShzKSksYSh0LmVycm9ycykpOnMucHVzaCh0KX19fWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2gmJiFoLmRvbmUmJihvPWcucmV0dXJuKSYmby5jYWxsKGcpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX19aWYocyl0aHJvdyBuZXcgbShzKX19LHQucHJvdG90eXBlLmFkZD1mdW5jdGlvbihlKXt2YXIgbjtpZihlJiZlIT09dGhpcylpZih0aGlzLmNsb3NlZCliKGUpO2Vsc2V7aWYoZSBpbnN0YW5jZW9mIHQpe2lmKGUuY2xvc2VkfHxlLl9oYXNQYXJlbnQodGhpcykpcmV0dXJuO2UuX2FkZFBhcmVudCh0aGlzKX0odGhpcy5fdGVhcmRvd25zPW51bGwhPT0obj10aGlzLl90ZWFyZG93bnMpJiZ2b2lkIDAhPT1uP246W10pLnB1c2goZSl9fSx0LnByb3RvdHlwZS5faGFzUGFyZW50PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3BhcmVudGFnZTtyZXR1cm4gZT09PXR8fEFycmF5LmlzQXJyYXkoZSkmJmUuaW5jbHVkZXModCl9LHQucHJvdG90eXBlLl9hZGRQYXJlbnQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcGFyZW50YWdlO3RoaXMuX3BhcmVudGFnZT1BcnJheS5pc0FycmF5KGUpPyhlLnB1c2godCksZSk6ZT9bZSx0XTp0fSx0LnByb3RvdHlwZS5fcmVtb3ZlUGFyZW50PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3BhcmVudGFnZTtlPT09dD90aGlzLl9wYXJlbnRhZ2U9bnVsbDpBcnJheS5pc0FycmF5KGUpJiZmKGUsdCl9LHQucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihlKXt2YXIgbj10aGlzLl90ZWFyZG93bnM7biYmZihuLGUpLGUgaW5zdGFuY2VvZiB0JiZlLl9yZW1vdmVQYXJlbnQodGhpcyl9LHQuRU1QVFk9KGZ1bmN0aW9uKCl7dmFyIGU9bmV3IHQ7cmV0dXJuIGUuY2xvc2VkPSEwLGV9KSgpLHR9KSgpLGc9dS5FTVBUWTtmdW5jdGlvbiBoKHQpe3JldHVybiB0IGluc3RhbmNlb2YgdXx8dCYmImNsb3NlZCJpbiB0JiZkKHQucmVtb3ZlKSYmZCh0LmFkZCkmJmQodC51bnN1YnNjcmliZSl9ZnVuY3Rpb24gYih0KXtkKHQpP3QoKTp0LnVuc3Vic2NyaWJlKCl9dmFyIHk9e29uVW5oYW5kbGVkRXJyb3I6bnVsbCxvblN0b3BwZWROb3RpZmljYXRpb246bnVsbCxQcm9taXNlOnZvaWQgMCx1c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nOiExLHVzZURlcHJlY2F0ZWROZXh0Q29udGV4dDohMX0sXz17c2V0VGltZW91dDpmdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgbj1fLmRlbGVnYXRlO3JldHVybigobnVsbD09bj92b2lkIDA6bi5zZXRUaW1lb3V0KXx8c2V0VGltZW91dCkuYXBwbHkodm9pZCAwLHIoW10sYSh0KSkpfSxjbGVhclRpbWVvdXQ6ZnVuY3Rpb24odCl7dmFyIGU9Xy5kZWxlZ2F0ZTtyZXR1cm4oKG51bGw9PWU/dm9pZCAwOmUuY2xlYXJUaW1lb3V0KXx8Y2xlYXJUaW1lb3V0KSh0KX0sZGVsZWdhdGU6dm9pZCAwfTtmdW5jdGlvbiBDKHQpe18uc2V0VGltZW91dCgoZnVuY3Rpb24oKXt0aHJvdyB0fSkpfWZ1bmN0aW9uIE0oKXt9dmFyIHY9bnVsbDtmdW5jdGlvbiB4KHQpe2lmKHkudXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZyl7dmFyIGU9IXY7aWYoZSYmKHY9e2Vycm9yVGhyb3duOiExLGVycm9yOm51bGx9KSx0KCksZSl7dmFyIG49djtpZih2PW51bGwsbi5lcnJvclRocm93bil0aHJvdyBuLmVycm9yfX1lbHNlIHQoKX12YXIgTz0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlKXt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uaXNTdG9wcGVkPSExLGU/KG4uZGVzdGluYXRpb249ZSxoKGUpJiZlLmFkZChuKSk6bi5kZXN0aW5hdGlvbj1TLG59cmV0dXJuIGUobix0KSxuLmNyZWF0ZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG5ldyBQKHQsZSxuKX0sbi5wcm90b3R5cGUubmV4dD1mdW5jdGlvbih0KXt0aGlzLmlzU3RvcHBlZHx8dGhpcy5fbmV4dCh0KX0sbi5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24odCl7dGhpcy5pc1N0b3BwZWR8fCh0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9lcnJvcih0KSl9LG4ucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dGhpcy5pc1N0b3BwZWR8fCh0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9jb21wbGV0ZSgpKX0sbi5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt0aGlzLmNsb3NlZHx8KHRoaXMuaXNTdG9wcGVkPSEwLHQucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyksdGhpcy5kZXN0aW5hdGlvbj1udWxsKX0sbi5wcm90b3R5cGUuX25leHQ9ZnVuY3Rpb24odCl7dGhpcy5kZXN0aW5hdGlvbi5uZXh0KHQpfSxuLnByb3RvdHlwZS5fZXJyb3I9ZnVuY3Rpb24odCl7dHJ5e3RoaXMuZGVzdGluYXRpb24uZXJyb3IodCl9ZmluYWxseXt0aGlzLnVuc3Vic2NyaWJlKCl9fSxuLnByb3RvdHlwZS5fY29tcGxldGU9ZnVuY3Rpb24oKXt0cnl7dGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX0sbn0pKHUpLFA9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oZSxuLG8pe3ZhciBpLGE9dC5jYWxsKHRoaXMpfHx0aGlzO2lmKGQoZSkpaT1lO2Vsc2UgaWYoZSl7dmFyIHI7aT1lLm5leHQsbj1lLmVycm9yLG89ZS5jb21wbGV0ZSxhJiZ5LnVzZURlcHJlY2F0ZWROZXh0Q29udGV4dD8ocj1PYmplY3QuY3JlYXRlKGUpKS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3JldHVybiBhLnVuc3Vic2NyaWJlKCl9OnI9ZSxpPW51bGw9PWk/dm9pZCAwOmkuYmluZChyKSxuPW51bGw9PW4/dm9pZCAwOm4uYmluZChyKSxvPW51bGw9PW8/dm9pZCAwOm8uYmluZChyKX1yZXR1cm4gYS5kZXN0aW5hdGlvbj17bmV4dDppP3coaSk6TSxlcnJvcjp3KG51bGwhPW4/bjprKSxjb21wbGV0ZTpvP3cobyk6TX0sYX1yZXR1cm4gZShuLHQpLG59KShPKTtmdW5jdGlvbiB3KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKWVbbl09YXJndW1lbnRzW25dO3RyeXt0LmFwcGx5KHZvaWQgMCxyKFtdLGEoZSkpKX1jYXRjaCh0KXtDKHQpfX19ZnVuY3Rpb24gayh0KXt0aHJvdyB0fXZhciBTPXtjbG9zZWQ6ITAsbmV4dDpNLGVycm9yOmssY29tcGxldGU6TX0sRD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wub2JzZXJ2YWJsZXx8IkBAb2JzZXJ2YWJsZSI7ZnVuY3Rpb24gUih0KXtyZXR1cm4gdH1mdW5jdGlvbiBFKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3JldHVybiBBKHQpfWZ1bmN0aW9uIEEodCl7cmV0dXJuIDA9PT10Lmxlbmd0aD9SOjE9PT10Lmxlbmd0aD90WzBdOmZ1bmN0aW9uIGUobil7cmV0dXJuIHQucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiBlKHQpfSksbil9fXZhciBUPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dCYmKHRoaXMuX3N1YnNjcmliZT10KX1yZXR1cm4gdC5wcm90b3R5cGUubGlmdD1mdW5jdGlvbihlKXt2YXIgbj1uZXcgdDtyZXR1cm4gbi5zb3VyY2U9dGhpcyxuLm9wZXJhdG9yPWUsbn0sdC5wcm90b3R5cGUuc3Vic2NyaWJlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgbz10aGlzLGk9KGZ1bmN0aW9uIGEodCl7cmV0dXJuIHQmJnQgaW5zdGFuY2VvZiBPfHwoZnVuY3Rpb24gZSh0KXtyZXR1cm4gdCYmZCh0Lm5leHQpJiZkKHQuZXJyb3IpJiZkKHQuY29tcGxldGUpfSkodCkmJmgodCl9KSh0KT90Om5ldyBQKHQsZSxuKTtyZXR1cm4geCgoZnVuY3Rpb24oKXt2YXIgdD1vLm9wZXJhdG9yLGU9by5zb3VyY2U7aS5hZGQodD90LmNhbGwoaSxlKTplP28uX3N1YnNjcmliZShpKTpvLl90cnlTdWJzY3JpYmUoaSkpfSkpLGl9LHQucHJvdG90eXBlLl90cnlTdWJzY3JpYmU9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0aGlzLl9zdWJzY3JpYmUodCl9Y2F0Y2goZSl7dC5lcnJvcihlKX19LHQucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3JldHVybiBuZXcoZT1OKGUpKSgoZnVuY3Rpb24oZSxvKXt2YXIgaTtpPW4uc3Vic2NyaWJlKChmdW5jdGlvbihlKXt0cnl7dChlKX1jYXRjaCh0KXtvKHQpLG51bGw9PWl8fGkudW5zdWJzY3JpYmUoKX19KSxvLGUpfSkpfSx0LnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiBudWxsPT09KGU9dGhpcy5zb3VyY2UpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnN1YnNjcmliZSh0KX0sdC5wcm90b3R5cGVbRF09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUucGlwZT1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTtyZXR1cm4gQSh0KSh0aGlzKX0sdC5wcm90b3R5cGUudG9Qcm9taXNlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIG5ldyh0PU4odCkpKChmdW5jdGlvbih0LG4pe3ZhciBvO2Uuc3Vic2NyaWJlKChmdW5jdGlvbih0KXtyZXR1cm4gbz10fSksKGZ1bmN0aW9uKHQpe3JldHVybiBuKHQpfSksKGZ1bmN0aW9uKCl7cmV0dXJuIHQobyl9KSl9KSl9LHQuY3JlYXRlPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgdChlKX0sdH0pKCk7ZnVuY3Rpb24gTih0KXt2YXIgZTtyZXR1cm4gbnVsbCE9PShlPW51bGwhPXQ/dDp5LlByb21pc2UpJiZ2b2lkIDAhPT1lP2U6UHJvbWlzZX1mdW5jdGlvbiB6KHQpe3JldHVybiBmdW5jdGlvbihlKXtpZigoZnVuY3Rpb24gbih0KXtyZXR1cm4gZChudWxsPT10P3ZvaWQgMDp0LmxpZnQpfSkoZSkpcmV0dXJuIGUubGlmdCgoZnVuY3Rpb24oZSl7dHJ5e3JldHVybiB0KGUsdGhpcyl9Y2F0Y2godCl7dGhpcy5lcnJvcih0KX19KSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiVW5hYmxlIHRvIGxpZnQgdW5rbm93biBPYnNlcnZhYmxlIHR5cGUiKX19dmFyIEksSD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlLG4sbyxpLGEpe3ZhciByPXQuY2FsbCh0aGlzLGUpfHx0aGlzO3JldHVybiByLm9uRmluYWxpemU9YSxyLl9uZXh0PW4/ZnVuY3Rpb24odCl7dHJ5e24odCl9Y2F0Y2godCl7ZS5lcnJvcih0KX19OnQucHJvdG90eXBlLl9uZXh0LHIuX2Vycm9yPWk/ZnVuY3Rpb24odCl7dHJ5e2kodCl9Y2F0Y2godCl7ZS5lcnJvcih0KX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19OnQucHJvdG90eXBlLl9lcnJvcixyLl9jb21wbGV0ZT1vP2Z1bmN0aW9uKCl7dHJ5e28oKX1jYXRjaCh0KXtlLmVycm9yKHQpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX06dC5wcm90b3R5cGUuX2NvbXBsZXRlLHJ9cmV0dXJuIGUobix0KSxuLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3ZhciBlLG49dGhpcy5jbG9zZWQ7dC5wcm90b3R5cGUudW5zdWJzY3JpYmUuY2FsbCh0aGlzKSwhbiYmKG51bGw9PT0oZT10aGlzLm9uRmluYWxpemUpfHx2b2lkIDA9PT1lfHxlLmNhbGwodGhpcykpfSxufSkoTyksRj17c2NoZWR1bGU6ZnVuY3Rpb24odCl7dmFyIGU9cmVxdWVzdEFuaW1hdGlvbkZyYW1lLG49Y2FuY2VsQW5pbWF0aW9uRnJhbWUsbz1GLmRlbGVnYXRlO28mJihlPW8ucmVxdWVzdEFuaW1hdGlvbkZyYW1lLG49by5jYW5jZWxBbmltYXRpb25GcmFtZSk7dmFyIGk9ZSgoZnVuY3Rpb24oZSl7bj12b2lkIDAsdChlKX0pKTtyZXR1cm4gbmV3IHUoKGZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PW4/dm9pZCAwOm4oaSl9KSl9LHJlcXVlc3RBbmltYXRpb25GcmFtZTpmdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgbj1GLmRlbGVnYXRlO3JldHVybigobnVsbD09bj92b2lkIDA6bi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpfHxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpLmFwcGx5KHZvaWQgMCxyKFtdLGEodCkpKX0sY2FuY2VsQW5pbWF0aW9uRnJhbWU6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49Ri5kZWxlZ2F0ZTtyZXR1cm4oKG51bGw9PW4/dm9pZCAwOm4uY2FuY2VsQW5pbWF0aW9uRnJhbWUpfHxjYW5jZWxBbmltYXRpb25GcmFtZSkuYXBwbHkodm9pZCAwLHIoW10sYSh0KSkpfSxkZWxlZ2F0ZTp2b2lkIDB9LEw9cCgoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uIGUoKXt0KHRoaXMpLHRoaXMubmFtZT0iT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IiLHRoaXMubWVzc2FnZT0ib2JqZWN0IHVuc3Vic2NyaWJlZCJ9fSkpLEI9KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oKXt2YXIgZT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGUuY2xvc2VkPSExLGUub2JzZXJ2ZXJzPVtdLGUuaXNTdG9wcGVkPSExLGUuaGFzRXJyb3I9ITEsZS50aHJvd25FcnJvcj1udWxsLGV9cmV0dXJuIGUobix0KSxuLnByb3RvdHlwZS5saWZ0PWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBWKHRoaXMsdGhpcyk7cmV0dXJuIGUub3BlcmF0b3I9dCxlfSxuLnByb3RvdHlwZS5fdGhyb3dJZkNsb3NlZD1mdW5jdGlvbigpe2lmKHRoaXMuY2xvc2VkKXRocm93IG5ldyBMfSxuLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7eCgoZnVuY3Rpb24oKXt2YXIgbixvO2lmKGUuX3Rocm93SWZDbG9zZWQoKSwhZS5pc1N0b3BwZWQpe3ZhciBhPWUub2JzZXJ2ZXJzLnNsaWNlKCk7dHJ5e2Zvcih2YXIgcj1pKGEpLHM9ci5uZXh0KCk7IXMuZG9uZTtzPXIubmV4dCgpKXtzLnZhbHVlLm5leHQodCl9fWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3MmJiFzLmRvbmUmJihvPXIucmV0dXJuKSYmby5jYWxsKHIpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX19fSkpfSxuLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3goKGZ1bmN0aW9uKCl7aWYoZS5fdGhyb3dJZkNsb3NlZCgpLCFlLmlzU3RvcHBlZCl7ZS5oYXNFcnJvcj1lLmlzU3RvcHBlZD0hMCxlLnRocm93bkVycm9yPXQ7Zm9yKHZhciBuPWUub2JzZXJ2ZXJzO24ubGVuZ3RoOyluLnNoaWZ0KCkuZXJyb3IodCl9fSkpfSxuLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciB0PXRoaXM7eCgoZnVuY3Rpb24oKXtpZih0Ll90aHJvd0lmQ2xvc2VkKCksIXQuaXNTdG9wcGVkKXt0LmlzU3RvcHBlZD0hMDtmb3IodmFyIGU9dC5vYnNlcnZlcnM7ZS5sZW5ndGg7KWUuc2hpZnQoKS5jb21wbGV0ZSgpfX0pKX0sbi5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt0aGlzLmlzU3RvcHBlZD10aGlzLmNsb3NlZD0hMCx0aGlzLm9ic2VydmVycz1udWxsfSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsIm9ic2VydmVkIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuKG51bGw9PT0odD10aGlzLm9ic2VydmVycyl8fHZvaWQgMD09PXQ/dm9pZCAwOnQubGVuZ3RoKT4wfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLG4ucHJvdG90eXBlLl90cnlTdWJzY3JpYmU9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3Rocm93SWZDbG9zZWQoKSx0LnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlLmNhbGwodGhpcyxlKX0sbi5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdGhyb3dJZkNsb3NlZCgpLHRoaXMuX2NoZWNrRmluYWxpemVkU3RhdHVzZXModCksdGhpcy5faW5uZXJTdWJzY3JpYmUodCl9LG4ucHJvdG90eXBlLl9pbm5lclN1YnNjcmliZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49ZS5vYnNlcnZlcnM7cmV0dXJuIGUuaGFzRXJyb3J8fGUuaXNTdG9wcGVkP2c6KG4ucHVzaCh0KSxuZXcgdSgoZnVuY3Rpb24oKXtyZXR1cm4gZihuLHQpfSkpKX0sbi5wcm90b3R5cGUuX2NoZWNrRmluYWxpemVkU3RhdHVzZXM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPWUuaXNTdG9wcGVkO2UuaGFzRXJyb3I/dC5lcnJvcihlLnRocm93bkVycm9yKTpuJiZ0LmNvbXBsZXRlKCl9LG4ucHJvdG90eXBlLmFzT2JzZXJ2YWJsZT1mdW5jdGlvbigpe3ZhciB0PW5ldyBUO3JldHVybiB0LnNvdXJjZT10aGlzLHR9LG4uY3JlYXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBWKHQsZSl9LG59KShUKSxWPShmdW5jdGlvbih0KXtmdW5jdGlvbiBuKGUsbil7dmFyIG89dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBvLmRlc3RpbmF0aW9uPWUsby5zb3VyY2U9bixvfXJldHVybiBlKG4sdCksbi5wcm90b3R5cGUubmV4dD1mdW5jdGlvbih0KXt2YXIgZSxuO251bGw9PT0obj1udWxsPT09KGU9dGhpcy5kZXN0aW5hdGlvbil8fHZvaWQgMD09PWU/dm9pZCAwOmUubmV4dCl8fHZvaWQgMD09PW58fG4uY2FsbChlLHQpfSxuLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbih0KXt2YXIgZSxuO251bGw9PT0obj1udWxsPT09KGU9dGhpcy5kZXN0aW5hdGlvbil8fHZvaWQgMD09PWU/dm9pZCAwOmUuZXJyb3IpfHx2b2lkIDA9PT1ufHxuLmNhbGwoZSx0KX0sbi5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgdCxlO251bGw9PT0oZT1udWxsPT09KHQ9dGhpcy5kZXN0aW5hdGlvbil8fHZvaWQgMD09PXQ/dm9pZCAwOnQuY29tcGxldGUpfHx2b2lkIDA9PT1lfHxlLmNhbGwodCl9LG4ucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24odCl7dmFyIGUsbjtyZXR1cm4gbnVsbCE9PShuPW51bGw9PT0oZT10aGlzLnNvdXJjZSl8fHZvaWQgMD09PWU/dm9pZCAwOmUuc3Vic2NyaWJlKHQpKSYmdm9pZCAwIT09bj9uOmd9LG59KShCKSxqPShmdW5jdGlvbih0KXtmdW5jdGlvbiBuKGUpe3ZhciBuPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gbi5fdmFsdWU9ZSxufXJldHVybiBlKG4sdCksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLCJ2YWx1ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFZhbHVlKCl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksbi5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihlKXt2YXIgbj10LnByb3RvdHlwZS5fc3Vic2NyaWJlLmNhbGwodGhpcyxlKTtyZXR1cm4hbi5jbG9zZWQmJmUubmV4dCh0aGlzLl92YWx1ZSksbn0sbi5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC5fdmFsdWU7aWYodC5oYXNFcnJvcil0aHJvdyB0LnRocm93bkVycm9yO3JldHVybiB0aGlzLl90aHJvd0lmQ2xvc2VkKCksZX0sbi5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5uZXh0LmNhbGwodGhpcyx0aGlzLl92YWx1ZT1lKX0sbn0pKEIpLFU9e25vdzpmdW5jdGlvbigpe3JldHVybihVLmRlbGVnYXRlfHxEYXRlKS5ub3coKX0sZGVsZWdhdGU6dm9pZCAwfSxXPShmdW5jdGlvbih0KXtmdW5jdGlvbiBuKGUsbixvKXt2b2lkIDA9PT1lJiYoZT0xLzApLHZvaWQgMD09PW4mJihuPTEvMCksdm9pZCAwPT09byYmKG89VSk7dmFyIGk9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBpLl9idWZmZXJTaXplPWUsaS5fd2luZG93VGltZT1uLGkuX3RpbWVzdGFtcFByb3ZpZGVyPW8saS5fYnVmZmVyPVtdLGkuX2luZmluaXRlVGltZVdpbmRvdz0hMCxpLl9pbmZpbml0ZVRpbWVXaW5kb3c9bj09PTEvMCxpLl9idWZmZXJTaXplPU1hdGgubWF4KDEsZSksaS5fd2luZG93VGltZT1NYXRoLm1heCgxLG4pLGl9cmV0dXJuIGUobix0KSxuLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMsbz1uLl9idWZmZXIsaT1uLl9pbmZpbml0ZVRpbWVXaW5kb3csYT1uLl90aW1lc3RhbXBQcm92aWRlcixyPW4uX3dpbmRvd1RpbWU7bi5pc1N0b3BwZWR8fChvLnB1c2goZSksIWkmJm8ucHVzaChhLm5vdygpK3IpKSx0aGlzLl90cmltQnVmZmVyKCksdC5wcm90b3R5cGUubmV4dC5jYWxsKHRoaXMsZSl9LG4ucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24odCl7dGhpcy5fdGhyb3dJZkNsb3NlZCgpLHRoaXMuX3RyaW1CdWZmZXIoKTtmb3IodmFyIGU9dGhpcy5faW5uZXJTdWJzY3JpYmUodCksbj10aGlzLl9pbmZpbml0ZVRpbWVXaW5kb3csbz10aGlzLl9idWZmZXIuc2xpY2UoKSxpPTA7aTxvLmxlbmd0aCYmIXQuY2xvc2VkO2krPW4/MToyKXQubmV4dChvW2ldKTtyZXR1cm4gdGhpcy5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcyh0KSxlfSxuLnByb3RvdHlwZS5fdHJpbUJ1ZmZlcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10Ll9idWZmZXJTaXplLG49dC5fdGltZXN0YW1wUHJvdmlkZXIsbz10Ll9idWZmZXIsaT10Ll9pbmZpbml0ZVRpbWVXaW5kb3csYT0oaT8xOjIpKmU7aWYoZTwxLzAmJmE8by5sZW5ndGgmJm8uc3BsaWNlKDAsby5sZW5ndGgtYSksIWkpe2Zvcih2YXIgcj1uLm5vdygpLHM9MCxsPTE7bDxvLmxlbmd0aCYmb1tsXTw9cjtsKz0yKXM9bDtzJiZvLnNwbGljZSgwLHMrMSl9fSxufSkoQiksRz0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlLG4pe3JldHVybiB0LmNhbGwodGhpcyl8fHRoaXN9cmV0dXJuIGUobix0KSxuLnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzfSxufSkodSksWT17c2V0SW50ZXJ2YWw6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49WS5kZWxlZ2F0ZTtyZXR1cm4oKG51bGw9PW4/dm9pZCAwOm4uc2V0SW50ZXJ2YWwpfHxzZXRJbnRlcnZhbCkuYXBwbHkodm9pZCAwLHIoW10sYSh0KSkpfSxjbGVhckludGVydmFsOmZ1bmN0aW9uKHQpe3ZhciBlPVkuZGVsZWdhdGU7cmV0dXJuKChudWxsPT1lP3ZvaWQgMDplLmNsZWFySW50ZXJ2YWwpfHxjbGVhckludGVydmFsKSh0KX0sZGVsZWdhdGU6dm9pZCAwfSxxPShmdW5jdGlvbih0KXtmdW5jdGlvbiBuKGUsbil7dmFyIG89dC5jYWxsKHRoaXMsZSxuKXx8dGhpcztyZXR1cm4gby5zY2hlZHVsZXI9ZSxvLndvcms9bixvLnBlbmRpbmc9ITEsb31yZXR1cm4gZShuLHQpLG4ucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHQsZSl7aWYodm9pZCAwPT09ZSYmKGU9MCksdGhpcy5jbG9zZWQpcmV0dXJuIHRoaXM7dGhpcy5zdGF0ZT10O3ZhciBuPXRoaXMuaWQsbz10aGlzLnNjaGVkdWxlcjtyZXR1cm4gbnVsbCE9biYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZChvLG4sZSkpLHRoaXMucGVuZGluZz0hMCx0aGlzLmRlbGF5PWUsdGhpcy5pZD10aGlzLmlkfHx0aGlzLnJlcXVlc3RBc3luY0lkKG8sdGhpcy5pZCxlKSx0aGlzfSxuLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPTApLFkuc2V0SW50ZXJ2YWwodC5mbHVzaC5iaW5kKHQsdGhpcyksbil9LG4ucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkPWZ1bmN0aW9uKHQsZSxuKXtpZih2b2lkIDA9PT1uJiYobj0wKSxudWxsIT1uJiZ0aGlzLmRlbGF5PT09biYmITE9PT10aGlzLnBlbmRpbmcpcmV0dXJuIGU7WS5jbGVhckludGVydmFsKGUpfSxuLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKHQsZSl7aWYodGhpcy5jbG9zZWQpcmV0dXJuIG5ldyBFcnJvcigiZXhlY3V0aW5nIGEgY2FuY2VsbGVkIGFjdGlvbiIpO3RoaXMucGVuZGluZz0hMTt2YXIgbj10aGlzLl9leGVjdXRlKHQsZSk7aWYobilyZXR1cm4gbjshMT09PXRoaXMucGVuZGluZyYmbnVsbCE9dGhpcy5pZCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZCh0aGlzLnNjaGVkdWxlcix0aGlzLmlkLG51bGwpKX0sbi5wcm90b3R5cGUuX2V4ZWN1dGU9ZnVuY3Rpb24odCxlKXt2YXIgbixvPSExO3RyeXt0aGlzLndvcmsodCl9Y2F0Y2godCl7bz0hMCxuPSEhdCYmdHx8bmV3IEVycm9yKHQpfWlmKG8pcmV0dXJuIHRoaXMudW5zdWJzY3JpYmUoKSxufSxuLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe2lmKCF0aGlzLmNsb3NlZCl7dmFyIGU9dGhpcy5pZCxuPXRoaXMuc2NoZWR1bGVyLG89bi5hY3Rpb25zO3RoaXMud29yaz10aGlzLnN0YXRlPXRoaXMuc2NoZWR1bGVyPW51bGwsdGhpcy5wZW5kaW5nPSExLGYobyx0aGlzKSxudWxsIT1lJiYodGhpcy5pZD10aGlzLnJlY3ljbGVBc3luY0lkKG4sZSxudWxsKSksdGhpcy5kZWxheT1udWxsLHQucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyl9fSxufSkoRyksWj0xLFg9e307ZnVuY3Rpb24gSyh0KXtyZXR1cm4gdCBpbiBYJiYoZGVsZXRlIFhbdF0sITApfXZhciBKPWZ1bmN0aW9uKHQpe3ZhciBlPVorKztyZXR1cm4gWFtlXT0hMCxJfHwoST1Qcm9taXNlLnJlc29sdmUoKSksSS50aGVuKChmdW5jdGlvbigpe3JldHVybiBLKGUpJiZ0KCl9KSksZX0sUT1mdW5jdGlvbih0KXtLKHQpfSwkPXtzZXRJbW1lZGlhdGU6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49JC5kZWxlZ2F0ZTtyZXR1cm4oKG51bGw9PW4/dm9pZCAwOm4uc2V0SW1tZWRpYXRlKXx8SikuYXBwbHkodm9pZCAwLHIoW10sYSh0KSkpfSxjbGVhckltbWVkaWF0ZTpmdW5jdGlvbih0KXt2YXIgZT0kLmRlbGVnYXRlO3JldHVybigobnVsbD09ZT92b2lkIDA6ZS5jbGVhckltbWVkaWF0ZSl8fFEpKHQpfSxkZWxlZ2F0ZTp2b2lkIDB9LHR0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBuKGUsbil7dmFyIG89dC5jYWxsKHRoaXMsZSxuKXx8dGhpcztyZXR1cm4gby5zY2hlZHVsZXI9ZSxvLndvcms9bixvfXJldHVybiBlKG4sdCksbi5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24oZSxuLG8pe3JldHVybiB2b2lkIDA9PT1vJiYobz0wKSxudWxsIT09byYmbz4wP3QucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkLmNhbGwodGhpcyxlLG4sbyk6KGUuYWN0aW9ucy5wdXNoKHRoaXMpLGUuX3NjaGVkdWxlZHx8KGUuX3NjaGVkdWxlZD0kLnNldEltbWVkaWF0ZShlLmZsdXNoLmJpbmQoZSx2b2lkIDApKSkpfSxuLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihlLG4sbyl7aWYodm9pZCAwPT09byYmKG89MCksbnVsbCE9byYmbz4wfHxudWxsPT1vJiZ0aGlzLmRlbGF5PjApcmV0dXJuIHQucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkLmNhbGwodGhpcyxlLG4sbyk7MD09PWUuYWN0aW9ucy5sZW5ndGgmJigkLmNsZWFySW1tZWRpYXRlKG4pLGUuX3NjaGVkdWxlZD12b2lkIDApfSxufSkocSksZXQ9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4pe3ZvaWQgMD09PW4mJihuPXQubm93KSx0aGlzLnNjaGVkdWxlckFjdGlvbkN0b3I9ZSx0aGlzLm5vdz1ufXJldHVybiB0LnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHZvaWQgMD09PWUmJihlPTApLG5ldyB0aGlzLnNjaGVkdWxlckFjdGlvbkN0b3IodGhpcyx0KS5zY2hlZHVsZShuLGUpfSx0Lm5vdz1VLm5vdyx0fSkoKSxudD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlLG4pe3ZvaWQgMD09PW4mJihuPWV0Lm5vdyk7dmFyIG89dC5jYWxsKHRoaXMsZSxuKXx8dGhpcztyZXR1cm4gby5hY3Rpb25zPVtdLG8uX2FjdGl2ZT0hMSxvLl9zY2hlZHVsZWQ9dm9pZCAwLG99cmV0dXJuIGUobix0KSxuLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmFjdGlvbnM7aWYodGhpcy5fYWN0aXZlKWUucHVzaCh0KTtlbHNle3ZhciBuO3RoaXMuX2FjdGl2ZT0hMDtkb3tpZihuPXQuZXhlY3V0ZSh0LnN0YXRlLHQuZGVsYXkpKWJyZWFrfXdoaWxlKHQ9ZS5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEsbil7Zm9yKDt0PWUuc2hpZnQoKTspdC51bnN1YnNjcmliZSgpO3Rocm93IG59fX0sbn0pKGV0KSxvdD1uZXcoKGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiBlKG4sdCksbi5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24odCl7dGhpcy5fYWN0aXZlPSEwLHRoaXMuX3NjaGVkdWxlZD12b2lkIDA7dmFyIGUsbj10aGlzLmFjdGlvbnMsbz0tMTt0PXR8fG4uc2hpZnQoKTt2YXIgaT1uLmxlbmd0aDtkb3tpZihlPXQuZXhlY3V0ZSh0LnN0YXRlLHQuZGVsYXkpKWJyZWFrfXdoaWxlKCsrbzxpJiYodD1uLnNoaWZ0KCkpKTtpZih0aGlzLl9hY3RpdmU9ITEsZSl7Zm9yKDsrK288aSYmKHQ9bi5zaGlmdCgpKTspdC51bnN1YnNjcmliZSgpO3Rocm93IGV9fSxufSkobnQpKSh0dCksaXQ9bmV3IG50KHEpLGF0PWl0LHJ0PShmdW5jdGlvbih0KXtmdW5jdGlvbiBuKGUsbil7dmFyIG89dC5jYWxsKHRoaXMsZSxuKXx8dGhpcztyZXR1cm4gby5zY2hlZHVsZXI9ZSxvLndvcms9bixvfXJldHVybiBlKG4sdCksbi5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49MCksbj4wP3QucHJvdG90eXBlLnNjaGVkdWxlLmNhbGwodGhpcyxlLG4pOih0aGlzLmRlbGF5PW4sdGhpcy5zdGF0ZT1lLHRoaXMuc2NoZWR1bGVyLmZsdXNoKHRoaXMpLHRoaXMpfSxuLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKGUsbil7cmV0dXJuIG4+MHx8dGhpcy5jbG9zZWQ/dC5wcm90b3R5cGUuZXhlY3V0ZS5jYWxsKHRoaXMsZSxuKTp0aGlzLl9leGVjdXRlKGUsbil9LG4ucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKGUsbixvKXtyZXR1cm4gdm9pZCAwPT09byYmKG89MCksbnVsbCE9byYmbz4wfHxudWxsPT1vJiZ0aGlzLmRlbGF5PjA/dC5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQuY2FsbCh0aGlzLGUsbixvKTplLmZsdXNoKHRoaXMpfSxufSkocSksc3Q9bmV3KChmdW5jdGlvbih0KXtmdW5jdGlvbiBuKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gZShuLHQpLG59KShudCkpKHJ0KSxsdD0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlLG4pe3ZhciBvPXQuY2FsbCh0aGlzLGUsbil8fHRoaXM7cmV0dXJuIG8uc2NoZWR1bGVyPWUsby53b3JrPW4sb31yZXR1cm4gZShuLHQpLG4ucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKGUsbixvKXtyZXR1cm4gdm9pZCAwPT09byYmKG89MCksbnVsbCE9PW8mJm8+MD90LnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZC5jYWxsKHRoaXMsZSxuLG8pOihlLmFjdGlvbnMucHVzaCh0aGlzKSxlLl9zY2hlZHVsZWR8fChlLl9zY2hlZHVsZWQ9Ri5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKGZ1bmN0aW9uKCl7cmV0dXJuIGUuZmx1c2godm9pZCAwKX0pKSkpfSxuLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihlLG4sbyl7aWYodm9pZCAwPT09byYmKG89MCksbnVsbCE9byYmbz4wfHxudWxsPT1vJiZ0aGlzLmRlbGF5PjApcmV0dXJuIHQucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkLmNhbGwodGhpcyxlLG4sbyk7MD09PWUuYWN0aW9ucy5sZW5ndGgmJihGLmNhbmNlbEFuaW1hdGlvbkZyYW1lKG4pLGUuX3NjaGVkdWxlZD12b2lkIDApfSxufSkocSksY3Q9bmV3KChmdW5jdGlvbih0KXtmdW5jdGlvbiBuKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gZShuLHQpLG4ucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKHQpe3RoaXMuX2FjdGl2ZT0hMCx0aGlzLl9zY2hlZHVsZWQ9dm9pZCAwO3ZhciBlLG49dGhpcy5hY3Rpb25zLG89LTE7dD10fHxuLnNoaWZ0KCk7dmFyIGk9bi5sZW5ndGg7ZG97aWYoZT10LmV4ZWN1dGUodC5zdGF0ZSx0LmRlbGF5KSlicmVha313aGlsZSgrK288aSYmKHQ9bi5zaGlmdCgpKSk7aWYodGhpcy5fYWN0aXZlPSExLGUpe2Zvcig7KytvPGkmJih0PW4uc2hpZnQoKSk7KXQudW5zdWJzY3JpYmUoKTt0aHJvdyBlfX0sbn0pKG50KSkobHQpLGR0PW5ldyBUKChmdW5jdGlvbih0KXtyZXR1cm4gdC5jb21wbGV0ZSgpfSkpO2Z1bmN0aW9uIHB0KHQsZSl7cmV0dXJuIG5ldyBUKChmdW5jdGlvbihuKXt2YXIgbz0wO3JldHVybiBlLnNjaGVkdWxlKChmdW5jdGlvbigpe289PT10Lmxlbmd0aD9uLmNvbXBsZXRlKCk6KG4ubmV4dCh0W28rK10pLG4uY2xvc2VkfHx0aGlzLnNjaGVkdWxlKCkpfSkpfSkpfXZhciBtdD1mdW5jdGlvbih0KXtyZXR1cm4gdCYmIm51bWJlciI9PXR5cGVvZiB0Lmxlbmd0aCYmImZ1bmN0aW9uIiE9dHlwZW9mIHR9O2Z1bmN0aW9uIGZ0KHQpe3JldHVybiBkKG51bGw9PXQ/dm9pZCAwOnQudGhlbil9dmFyIHV0LGd0PShmdW5jdGlvbiBodCgpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvcj9TeW1ib2wuaXRlcmF0b3I6IkBAaXRlcmF0b3IifSkoKTtmdW5jdGlvbiBidCh0LGUpe2lmKCF0KXRocm93IG5ldyBFcnJvcigiSXRlcmFibGUgY2Fubm90IGJlIG51bGwiKTtyZXR1cm4gbmV3IFQoKGZ1bmN0aW9uKG4pe3ZhciBvPW5ldyB1O3JldHVybiBvLmFkZChlLnNjaGVkdWxlKChmdW5jdGlvbigpe3ZhciBpPXRbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCk7by5hZGQoZS5zY2hlZHVsZSgoZnVuY3Rpb24oKXt2YXIgdD10aGlzO2kubmV4dCgpLnRoZW4oKGZ1bmN0aW9uKGUpe2UuZG9uZT9uLmNvbXBsZXRlKCk6KG4ubmV4dChlLnZhbHVlKSx0LnNjaGVkdWxlKCkpfSkpfSkpKX0pKSksb30pKX1mdW5jdGlvbiB5dCh0KXtyZXR1cm4gZCh0W0RdKX1mdW5jdGlvbiBfdCh0KXtyZXR1cm4gZChudWxsPT10P3ZvaWQgMDp0W2d0XSl9ZnVuY3Rpb24gQ3QodCl7cmV0dXJuIFN5bWJvbC5hc3luY0l0ZXJhdG9yJiZkKG51bGw9PXQ/dm9pZCAwOnRbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKX1mdW5jdGlvbiBNdCh0KXtyZXR1cm4gbmV3IFR5cGVFcnJvcigiWW91IHByb3ZpZGVkICIrKG51bGwhPT10JiYib2JqZWN0Ij09dHlwZW9mIHQ/ImFuIGludmFsaWQgb2JqZWN0IjoiJyIrdCsiJyIpKyIgd2hlcmUgYSBzdHJlYW0gd2FzIGV4cGVjdGVkLiBZb3UgY2FuIHByb3ZpZGUgYW4gT2JzZXJ2YWJsZSwgUHJvbWlzZSwgUmVhZGFibGVTdHJlYW0sIEFycmF5LCBBc3luY0l0ZXJhYmxlLCBvciBJdGVyYWJsZS4iKX1mdW5jdGlvbiB2dCh0KXtyZXR1cm4gbCh0aGlzLGFyZ3VtZW50cywoZnVuY3Rpb24gZSgpe3ZhciBuLGksYTtyZXR1cm4gbyh0aGlzLChmdW5jdGlvbihlKXtzd2l0Y2goZS5sYWJlbCl7Y2FzZSAwOm49dC5nZXRSZWFkZXIoKSxlLmxhYmVsPTE7Y2FzZSAxOmUudHJ5cy5wdXNoKFsxLCw5LDEwXSksZS5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bNCxzKG4ucmVhZCgpKV07Y2FzZSAzOnJldHVybiBpPWUuc2VudCgpLGE9aS52YWx1ZSxpLmRvbmU/WzQscyh2b2lkIDApXTpbMyw1XTtjYXNlIDQ6cmV0dXJuWzIsZS5zZW50KCldO2Nhc2UgNTpyZXR1cm5bNCxzKGEpXTtjYXNlIDY6cmV0dXJuWzQsZS5zZW50KCldO2Nhc2UgNzpyZXR1cm4gZS5zZW50KCksWzMsMl07Y2FzZSA4OnJldHVyblszLDEwXTtjYXNlIDk6cmV0dXJuIG4ucmVsZWFzZUxvY2soKSxbN107Y2FzZSAxMDpyZXR1cm5bMl19fSkpfSkpfWZ1bmN0aW9uIHh0KHQpe3JldHVybiBkKG51bGw9PXQ/dm9pZCAwOnQuZ2V0UmVhZGVyKX1mdW5jdGlvbiBPdCh0LGUpe2lmKG51bGwhPXQpe2lmKHl0KHQpKXJldHVybihmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIG5ldyBUKChmdW5jdGlvbihuKXt2YXIgbz1uZXcgdTtyZXR1cm4gby5hZGQoZS5zY2hlZHVsZSgoZnVuY3Rpb24oKXt2YXIgaT10W0RdKCk7by5hZGQoaS5zdWJzY3JpYmUoe25leHQ6ZnVuY3Rpb24odCl7by5hZGQoZS5zY2hlZHVsZSgoZnVuY3Rpb24oKXtyZXR1cm4gbi5uZXh0KHQpfSkpKX0sZXJyb3I6ZnVuY3Rpb24odCl7by5hZGQoZS5zY2hlZHVsZSgoZnVuY3Rpb24oKXtyZXR1cm4gbi5lcnJvcih0KX0pKSl9LGNvbXBsZXRlOmZ1bmN0aW9uKCl7by5hZGQoZS5zY2hlZHVsZSgoZnVuY3Rpb24oKXtyZXR1cm4gbi5jb21wbGV0ZSgpfSkpKX19KSl9KSkpLG99KSl9KSh0LGUpO2lmKG10KHQpKXJldHVybiBwdCh0LGUpO2lmKGZ0KHQpKXJldHVybihmdW5jdGlvbiBvKHQsZSl7cmV0dXJuIG5ldyBUKChmdW5jdGlvbihuKXtyZXR1cm4gZS5zY2hlZHVsZSgoZnVuY3Rpb24oKXtyZXR1cm4gdC50aGVuKChmdW5jdGlvbih0KXtuLmFkZChlLnNjaGVkdWxlKChmdW5jdGlvbigpe24ubmV4dCh0KSxuLmFkZChlLnNjaGVkdWxlKChmdW5jdGlvbigpe3JldHVybiBuLmNvbXBsZXRlKCl9KSkpfSkpKX0pLChmdW5jdGlvbih0KXtuLmFkZChlLnNjaGVkdWxlKChmdW5jdGlvbigpe3JldHVybiBuLmVycm9yKHQpfSkpKX0pKX0pKX0pKX0pKHQsZSk7aWYoQ3QodCkpcmV0dXJuIGJ0KHQsZSk7aWYoX3QodCkpcmV0dXJuKGZ1bmN0aW9uIGkodCxlKXtyZXR1cm4gbmV3IFQoKGZ1bmN0aW9uKG4pe3ZhciBvO3JldHVybiBuLmFkZChlLnNjaGVkdWxlKChmdW5jdGlvbigpe289dFtndF0oKSwoZnVuY3Rpb24gaSh0LGUsbixvKXt2b2lkIDA9PT1vJiYobz0wKTt2YXIgaT1lLnNjaGVkdWxlKChmdW5jdGlvbigpe3RyeXtuLmNhbGwodGhpcyl9Y2F0Y2goZSl7dC5lcnJvcihlKX19KSxvKTt0LmFkZChpKX0pKG4sZSwoZnVuY3Rpb24oKXt2YXIgdD1vLm5leHQoKSxlPXQudmFsdWU7dC5kb25lP24uY29tcGxldGUoKToobi5uZXh0KGUpLHRoaXMuc2NoZWR1bGUoKSl9KSl9KSkpLGZ1bmN0aW9uKCl7cmV0dXJuIGQobnVsbD09bz92b2lkIDA6by5yZXR1cm4pJiZvLnJldHVybigpfX0pKX0pKHQsZSk7aWYoeHQodCkpcmV0dXJuKGZ1bmN0aW9uIGEodCxlKXtyZXR1cm4gYnQodnQodCksZSl9KSh0LGUpfXRocm93IE10KHQpfWZ1bmN0aW9uIFB0KHQsZSl7cmV0dXJuIGU/T3QodCxlKTp3dCh0KX1mdW5jdGlvbiB3dCh0KXtpZih0IGluc3RhbmNlb2YgVClyZXR1cm4gdDtpZihudWxsIT10KXtpZih5dCh0KSlyZXR1cm4oZnVuY3Rpb24gZSh0KXtyZXR1cm4gbmV3IFQoKGZ1bmN0aW9uKGUpe3ZhciBuPXRbRF0oKTtpZihkKG4uc3Vic2NyaWJlKSlyZXR1cm4gbi5zdWJzY3JpYmUoZSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJvdmlkZWQgb2JqZWN0IGRvZXMgbm90IGNvcnJlY3RseSBpbXBsZW1lbnQgU3ltYm9sLm9ic2VydmFibGUiKX0pKX0pKHQpO2lmKG10KHQpKXJldHVybiBrdCh0KTtpZihmdCh0KSlyZXR1cm4oZnVuY3Rpb24gbih0KXtyZXR1cm4gbmV3IFQoKGZ1bmN0aW9uKGUpe3QudGhlbigoZnVuY3Rpb24odCl7ZS5jbG9zZWR8fChlLm5leHQodCksZS5jb21wbGV0ZSgpKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gZS5lcnJvcih0KX0pKS50aGVuKG51bGwsQyl9KSl9KSh0KTtpZihDdCh0KSlyZXR1cm4gU3QodCk7aWYoX3QodCkpcmV0dXJuKGZ1bmN0aW9uIG8odCl7cmV0dXJuIG5ldyBUKChmdW5jdGlvbihlKXt2YXIgbixvO3RyeXtmb3IodmFyIGE9aSh0KSxyPWEubmV4dCgpOyFyLmRvbmU7cj1hLm5leHQoKSl7aWYoZS5uZXh0KHIudmFsdWUpLGUuY2xvc2VkKXJldHVybn19Y2F0Y2godCl7bj17ZXJyb3I6dH19ZmluYWxseXt0cnl7ciYmIXIuZG9uZSYmKG89YS5yZXR1cm4pJiZvLmNhbGwoYSl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fWUuY29tcGxldGUoKX0pKX0pKHQpO2lmKHh0KHQpKXJldHVybihmdW5jdGlvbiBhKHQpe3JldHVybiBTdCh2dCh0KSl9KSh0KX10aHJvdyBNdCh0KX1mdW5jdGlvbiBrdCh0KXtyZXR1cm4gbmV3IFQoKGZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0wO248dC5sZW5ndGgmJiFlLmNsb3NlZDtuKyspZS5uZXh0KHRbbl0pO2UuY29tcGxldGUoKX0pKX1mdW5jdGlvbiBTdCh0KXtyZXR1cm4gbmV3IFQoKGZ1bmN0aW9uKGUpeyhmdW5jdGlvbiBpKHQsZSl7dmFyIGksYSxyLHM7cmV0dXJuIG4odGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3ZhciBuO3JldHVybiBvKHRoaXMsKGZ1bmN0aW9uKG8pe3N3aXRjaChvLmxhYmVsKXtjYXNlIDA6by50cnlzLnB1c2goWzAsNSw2LDExXSksaT1jKHQpLG8ubGFiZWw9MTtjYXNlIDE6cmV0dXJuWzQsaS5uZXh0KCldO2Nhc2UgMjppZigoYT1vLnNlbnQoKSkuZG9uZSlyZXR1cm5bMyw0XTtpZihlLm5leHQoYS52YWx1ZSksZS5jbG9zZWQpcmV0dXJuWzJdO28ubGFiZWw9MztjYXNlIDM6cmV0dXJuWzMsMV07Y2FzZSA0OnJldHVyblszLDExXTtjYXNlIDU6cmV0dXJuIG49by5zZW50KCkscj17ZXJyb3I6bn0sWzMsMTFdO2Nhc2UgNjpyZXR1cm4gby50cnlzLnB1c2goWzYsLDksMTBdKSxhJiYhYS5kb25lJiYocz1pLnJldHVybik/WzQscy5jYWxsKGkpXTpbMyw4XTtjYXNlIDc6by5zZW50KCksby5sYWJlbD04O2Nhc2UgODpyZXR1cm5bMywxMF07Y2FzZSA5OmlmKHIpdGhyb3cgci5lcnJvcjtyZXR1cm5bN107Y2FzZSAxMDpyZXR1cm5bN107Y2FzZSAxMTpyZXR1cm4gZS5jb21wbGV0ZSgpLFsyXX19KSl9KSl9KSh0LGUpLmNhdGNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5lcnJvcih0KX0pKX0pKX1mdW5jdGlvbiBEdCh0LGUpe3JldHVybiBlP3B0KHQsZSk6a3QodCl9ZnVuY3Rpb24gUnQodCl7cmV0dXJuIHQmJmQodC5zY2hlZHVsZSl9ZnVuY3Rpb24gRXQodCl7cmV0dXJuIHRbdC5sZW5ndGgtMV19ZnVuY3Rpb24gQXQodCl7cmV0dXJuIGQoRXQodCkpP3QucG9wKCk6dm9pZCAwfWZ1bmN0aW9uIFR0KHQpe3JldHVybiBSdChFdCh0KSk/dC5wb3AoKTp2b2lkIDB9ZnVuY3Rpb24gTnQodCxlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIEV0KHQpP3QucG9wKCk6ZX1mdW5jdGlvbiB6dCgpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgbj1UdCh0KTtyZXR1cm4gbj9wdCh0LG4pOkR0KHQpfWZ1bmN0aW9uIEl0KHQsZSl7dmFyIG49ZCh0KT90OmZ1bmN0aW9uKCl7cmV0dXJuIHR9LG89ZnVuY3Rpb24odCl7cmV0dXJuIHQuZXJyb3IobigpKX07cmV0dXJuIG5ldyBUKGU/ZnVuY3Rpb24odCl7cmV0dXJuIGUuc2NoZWR1bGUobywwLHQpfTpvKX0hKGZ1bmN0aW9uKHQpe3QuTkVYVD0iTiIsdC5FUlJPUj0iRSIsdC5DT01QTEVURT0iQyJ9KSh1dHx8KHV0PXt9KSk7dmFyIEh0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4pe3RoaXMua2luZD10LHRoaXMudmFsdWU9ZSx0aGlzLmVycm9yPW4sdGhpcy5oYXNWYWx1ZT0iTiI9PT10fXJldHVybiB0LnByb3RvdHlwZS5vYnNlcnZlPWZ1bmN0aW9uKHQpe3JldHVybiBGdCh0aGlzLHQpfSx0LnByb3RvdHlwZS5kbz1mdW5jdGlvbih0LGUsbil7dmFyIG89dGhpcyxpPW8ua2luZCxhPW8uZXJyb3I7cmV0dXJuIk4iPT09aT9udWxsPT10P3ZvaWQgMDp0KG8udmFsdWUpOiJFIj09PWk/bnVsbD09ZT92b2lkIDA6ZShhKTpudWxsPT1uP3ZvaWQgMDpuKCl9LHQucHJvdG90eXBlLmFjY2VwdD1mdW5jdGlvbih0LGUsbil7dmFyIG87cmV0dXJuIGQobnVsbD09PShvPXQpfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLm5leHQpP3RoaXMub2JzZXJ2ZSh0KTp0aGlzLmRvKHQsZSxuKX0sdC5wcm90b3R5cGUudG9PYnNlcnZhYmxlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXQua2luZCxuPXQuZXJyb3Isbz0iTiI9PT1lP3p0KHQudmFsdWUpOiJFIj09PWU/SXQoKGZ1bmN0aW9uKCl7cmV0dXJuIG59KSk6IkMiPT09ZT9kdDowO2lmKCFvKXRocm93IG5ldyBUeXBlRXJyb3IoIlVuZXhwZWN0ZWQgbm90aWZpY2F0aW9uIGtpbmQgIitlKTtyZXR1cm4gb30sdC5jcmVhdGVOZXh0PWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgdCgiTiIsZSl9LHQuY3JlYXRlRXJyb3I9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0KCJFIix2b2lkIDAsZSl9LHQuY3JlYXRlQ29tcGxldGU9ZnVuY3Rpb24oKXtyZXR1cm4gdC5jb21wbGV0ZU5vdGlmaWNhdGlvbn0sdC5jb21wbGV0ZU5vdGlmaWNhdGlvbj1uZXcgdCgiQyIpLHR9KSgpO2Z1bmN0aW9uIEZ0KHQsZSl7dmFyIG4sbyxpLGE9dC5raW5kLHI9dC52YWx1ZSxzPXQuZXJyb3I7aWYoInN0cmluZyIhPXR5cGVvZiBhKXRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgbm90aWZpY2F0aW9uLCBtaXNzaW5nICJraW5kIicpOyJOIj09PWE/bnVsbD09PShuPWUubmV4dCl8fHZvaWQgMD09PW58fG4uY2FsbChlLHIpOiJFIj09PWE/bnVsbD09PShvPWUuZXJyb3IpfHx2b2lkIDA9PT1vfHxvLmNhbGwoZSxzKTpudWxsPT09KGk9ZS5jb21wbGV0ZSl8fHZvaWQgMD09PWl8fGkuY2FsbChlKX1mdW5jdGlvbiBMdCh0KXtyZXR1cm4hIXQmJih0IGluc3RhbmNlb2YgVHx8ZCh0LmxpZnQpJiZkKHQuc3Vic2NyaWJlKSl9dmFyIEJ0PXAoKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbiBlKCl7dCh0aGlzKSx0aGlzLm5hbWU9IkVtcHR5RXJyb3IiLHRoaXMubWVzc2FnZT0ibm8gZWxlbWVudHMgaW4gc2VxdWVuY2UifX0pKTtmdW5jdGlvbiBWdCh0LGUpe3JldHVybiB6KChmdW5jdGlvbihuLG8pe3ZhciBpPTA7bi5zdWJzY3JpYmUobmV3IEgobywoZnVuY3Rpb24obil7by5uZXh0KHQuY2FsbChlLG4saSsrKSl9KSkpfSkpfXZhciBqdD1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIFV0KHQpe3JldHVybiBWdCgoZnVuY3Rpb24oZSl7cmV0dXJuKGZ1bmN0aW9uIG4odCxlKXtyZXR1cm4ganQoZSk/dC5hcHBseSh2b2lkIDAscihbXSxhKGUpKSk6dChlKX0pKHQsZSl9KSl9dmFyIFd0PUFycmF5LmlzQXJyYXksR3Q9T2JqZWN0LmdldFByb3RvdHlwZU9mLFl0PU9iamVjdC5wcm90b3R5cGUscXQ9T2JqZWN0LmtleXM7ZnVuY3Rpb24gWnQodCl7aWYoMT09PXQubGVuZ3RoKXt2YXIgZT10WzBdO2lmKFd0KGUpKXJldHVybnthcmdzOmUsa2V5czpudWxsfTtpZigoZnVuY3Rpb24gbih0KXtyZXR1cm4gdCYmIm9iamVjdCI9PXR5cGVvZiB0JiZHdCh0KT09PVl0fSkoZSkpe3ZhciBvPXF0KGUpO3JldHVybnthcmdzOm8ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0pKSxrZXlzOm99fX1yZXR1cm57YXJnczp0LGtleXM6bnVsbH19ZnVuY3Rpb24gWHQodCxlKXtyZXR1cm4gdC5yZWR1Y2UoKGZ1bmN0aW9uKHQsbixvKXtyZXR1cm4gdFtuXT1lW29dLHR9KSx7fSl9ZnVuY3Rpb24gS3QoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49VHQodCksbz1BdCh0KSxpPVp0KHQpLGE9aS5hcmdzLHI9aS5rZXlzO2lmKDA9PT1hLmxlbmd0aClyZXR1cm4gUHQoW10sbik7dmFyIHM9bmV3IFQoSnQoYSxuLHI/ZnVuY3Rpb24odCl7cmV0dXJuIFh0KHIsdCl9OlIpKTtyZXR1cm4gbz9zLnBpcGUoVXQobykpOnN9ZnVuY3Rpb24gSnQodCxlLG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj1SKSxmdW5jdGlvbihvKXtRdChlLChmdW5jdGlvbigpe2Zvcih2YXIgaT10Lmxlbmd0aCxhPW5ldyBBcnJheShpKSxyPWkscz1pLGw9ZnVuY3Rpb24oaSl7UXQoZSwoZnVuY3Rpb24oKXt2YXIgbD1QdCh0W2ldLGUpLGM9ITE7bC5zdWJzY3JpYmUobmV3IEgobywoZnVuY3Rpb24odCl7YVtpXT10LGN8fChjPSEwLHMtLSksc3x8by5uZXh0KG4oYS5zbGljZSgpKSl9KSwoZnVuY3Rpb24oKXstLXJ8fG8uY29tcGxldGUoKX0pKSl9KSxvKX0sYz0wO2M8aTtjKyspbChjKX0pLG8pfX1mdW5jdGlvbiBRdCh0LGUsbil7dD9uLmFkZCh0LnNjaGVkdWxlKGUpKTplKCl9ZnVuY3Rpb24gJHQodCxlLG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj0xLzApLGQoZSk/JHQoKGZ1bmN0aW9uKG4sbyl7cmV0dXJuIFZ0KChmdW5jdGlvbih0LGkpe3JldHVybiBlKG4sdCxvLGkpfSkpKHd0KHQobixvKSkpfSksbik6KCJudW1iZXIiPT10eXBlb2YgZSYmKG49ZSkseigoZnVuY3Rpb24oZSxvKXtyZXR1cm4oZnVuY3Rpb24gaSh0LGUsbixvLGEscixzLGwpe3ZhciBjPVtdLGQ9MCxwPTAsbT0hMSxmPWZ1bmN0aW9uKCl7IW18fGMubGVuZ3RofHxkfHxlLmNvbXBsZXRlKCl9LHU9ZnVuY3Rpb24odCl7cmV0dXJuIGQ8bz9nKHQpOmMucHVzaCh0KX0sZz1mdW5jdGlvbih0KXtyJiZlLm5leHQodCksZCsrO3ZhciBpPSExO3d0KG4odCxwKyspKS5zdWJzY3JpYmUobmV3IEgoZSwoZnVuY3Rpb24odCl7bnVsbD09YXx8YSh0KSxyP3UodCk6ZS5uZXh0KHQpfSksKGZ1bmN0aW9uKCl7aT0hMH0pLHZvaWQgMCwoZnVuY3Rpb24oKXtpZihpKXRyeXtkLS07Zm9yKHZhciB0PWZ1bmN0aW9uKCl7dmFyIHQ9Yy5zaGlmdCgpO3M/ZS5hZGQocy5zY2hlZHVsZSgoZnVuY3Rpb24oKXtyZXR1cm4gZyh0KX0pKSk6Zyh0KX07Yy5sZW5ndGgmJmQ8bzspdCgpO2YoKX1jYXRjaCh0KXtlLmVycm9yKHQpfX0pKSl9O3JldHVybiB0LnN1YnNjcmliZShuZXcgSChlLHUsKGZ1bmN0aW9uKCl7bT0hMCxmKCl9KSkpLGZ1bmN0aW9uKCl7bnVsbD09bHx8bCgpfX0pKGUsbyx0LG4pfSkpKX1mdW5jdGlvbiB0ZSh0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9MS8wKSwkdChSLHQpfWZ1bmN0aW9uIGVlKCl7cmV0dXJuIHRlKDEpfWZ1bmN0aW9uIG5lKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3JldHVybiBlZSgpKER0KHQsVHQodCkpKX1mdW5jdGlvbiBvZSh0KXtyZXR1cm4gbmV3IFQoKGZ1bmN0aW9uKGUpe3d0KHQoKSkuc3Vic2NyaWJlKGUpfSkpfWZ1bmN0aW9uIGllKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBuPUF0KHQpLG89WnQodCksaT1vLmFyZ3MsYT1vLmtleXMscj1uZXcgVCgoZnVuY3Rpb24odCl7dmFyIGU9aS5sZW5ndGg7aWYoZSlmb3IodmFyIG49bmV3IEFycmF5KGUpLG89ZSxyPWUscz1mdW5jdGlvbihlKXt2YXIgcz0hMTt3dChpW2VdKS5zdWJzY3JpYmUobmV3IEgodCwoZnVuY3Rpb24odCl7c3x8KHM9ITAsci0tKSxuW2VdPXR9KSwoZnVuY3Rpb24oKXstLW8mJnN8fChyfHx0Lm5leHQoYT9YdChhLG4pOm4pLHQuY29tcGxldGUoKSl9KSkpfSxsPTA7bDxlO2wrKylzKGwpO2Vsc2UgdC5jb21wbGV0ZSgpfSkpO3JldHVybiBuP3IucGlwZShVdChuKSk6cn12YXIgYWU9WyJhZGRMaXN0ZW5lciIsInJlbW92ZUxpc3RlbmVyIl0scmU9WyJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdLHNlPVsib24iLCJvZmYiXTtmdW5jdGlvbiBsZSh0LGUsbixvKXtpZihkKG4pJiYobz1uLG49dm9pZCAwKSxvKXJldHVybiBsZSh0LGUsbikucGlwZShVdChvKSk7dmFyIGk9YSgoZnVuY3Rpb24gcih0KXtyZXR1cm4gZCh0LmFkZEV2ZW50TGlzdGVuZXIpJiZkKHQucmVtb3ZlRXZlbnRMaXN0ZW5lcil9KSh0KT9yZS5tYXAoKGZ1bmN0aW9uKG8pe3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4gdFtvXShlLGksbil9fSkpOihmdW5jdGlvbiBzKHQpe3JldHVybiBkKHQuYWRkTGlzdGVuZXIpJiZkKHQucmVtb3ZlTGlzdGVuZXIpfSkodCk/YWUubWFwKGNlKHQsZSkpOihmdW5jdGlvbiBsKHQpe3JldHVybiBkKHQub24pJiZkKHQub2ZmKX0pKHQpP3NlLm1hcChjZSh0LGUpKTpbXSwyKSxjPWlbMF0scD1pWzFdO2lmKCFjJiZtdCh0KSlyZXR1cm4gJHQoKGZ1bmN0aW9uKHQpe3JldHVybiBsZSh0LGUsbil9KSkoRHQodCkpO2lmKCFjKXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgZXZlbnQgdGFyZ2V0Iik7cmV0dXJuIG5ldyBUKChmdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbigpe2Zvcih2YXIgZT1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoO24rKyllW25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gdC5uZXh0KDE8ZS5sZW5ndGg/ZTplWzBdKX07cmV0dXJuIGMoZSksZnVuY3Rpb24oKXtyZXR1cm4gcChlKX19KSl9ZnVuY3Rpb24gY2UodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiB0W25dKGUsbyl9fX1mdW5jdGlvbiBkZSh0LGUsbil7dm9pZCAwPT09dCYmKHQ9MCksdm9pZCAwPT09biYmKG49YXQpO3ZhciBvPS0xO3JldHVybiBudWxsIT1lJiYoUnQoZSk/bj1lOm89ZSksbmV3IFQoKGZ1bmN0aW9uKGUpe3ZhciBpPShmdW5jdGlvbiBhKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRGF0ZSYmIWlzTmFOKHQpfSkodCk/K3Qtbi5ub3coKTp0O2k8MCYmKGk9MCk7dmFyIHI9MDtyZXR1cm4gbi5zY2hlZHVsZSgoZnVuY3Rpb24oKXtlLmNsb3NlZHx8KGUubmV4dChyKyspLDA8PW8/dGhpcy5zY2hlZHVsZSh2b2lkIDAsbyk6ZS5jb21wbGV0ZSgpKX0pLGkpfSkpfWZ1bmN0aW9uIHBlKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBuPVR0KHQpLG89TnQodCwxLzApLGk9dDtyZXR1cm4gaS5sZW5ndGg/MT09PWkubGVuZ3RoP3d0KGlbMF0pOnRlKG8pKER0KGksbikpOmR0fXZhciBtZT1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIGZlKHQpe3JldHVybiAxPT09dC5sZW5ndGgmJm1lKHRbMF0pP3RbMF06dH1mdW5jdGlvbiB1ZSh0LGUpe3JldHVybiB6KChmdW5jdGlvbihuLG8pe3ZhciBpPTA7bi5zdWJzY3JpYmUobmV3IEgobywoZnVuY3Rpb24obil7cmV0dXJuIHQuY2FsbChlLG4saSsrKSYmby5uZXh0KG4pfSkpKX0pKX1mdW5jdGlvbiBnZSh0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1hdCksKGZ1bmN0aW9uIG4odCl7cmV0dXJuIHooKGZ1bmN0aW9uKGUsbil7dmFyIG89ITEsaT1udWxsLGE9bnVsbCxyPSExLHM9ZnVuY3Rpb24oKXtpZihudWxsPT1hfHxhLnVuc3Vic2NyaWJlKCksYT1udWxsLG8pe289ITE7dmFyIHQ9aTtpPW51bGwsbi5uZXh0KHQpfXImJm4uY29tcGxldGUoKX0sbD1mdW5jdGlvbigpe2E9bnVsbCxyJiZuLmNvbXBsZXRlKCl9O2Uuc3Vic2NyaWJlKG5ldyBIKG4sKGZ1bmN0aW9uKGUpe289ITAsaT1lLGF8fHd0KHQoZSkpLnN1YnNjcmliZShhPW5ldyBIKG4scyxsKSl9KSwoZnVuY3Rpb24oKXtyPSEwLCghb3x8IWF8fGEuY2xvc2VkKSYmbi5jb21wbGV0ZSgpfSkpKX0pKX0pKChmdW5jdGlvbigpe3JldHVybiBkZSh0LGUpfSkpfWZ1bmN0aW9uIGhlKHQpe3JldHVybiB6KChmdW5jdGlvbihlLG4pe3ZhciBvLGk9bnVsbCxhPSExO2k9ZS5zdWJzY3JpYmUobmV3IEgobix2b2lkIDAsdm9pZCAwLChmdW5jdGlvbihyKXtvPXd0KHQocixoZSh0KShlKSkpLGk/KGkudW5zdWJzY3JpYmUoKSxpPW51bGwsby5zdWJzY3JpYmUobikpOmE9ITB9KSkpLGEmJihpLnVuc3Vic2NyaWJlKCksaT1udWxsLG8uc3Vic2NyaWJlKG4pKX0pKX1mdW5jdGlvbiBiZSh0LGUsbixvLGkpe3JldHVybiBmdW5jdGlvbihhLHIpe3ZhciBzPW4sbD1lLGM9MDthLnN1YnNjcmliZShuZXcgSChyLChmdW5jdGlvbihlKXt2YXIgbj1jKys7bD1zP3QobCxlLG4pOihzPSEwLGUpLG8mJnIubmV4dChsKX0pLGkmJmZ1bmN0aW9uKCl7cyYmci5uZXh0KGwpLHIuY29tcGxldGUoKX0pKX19ZnVuY3Rpb24geWUoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49QXQodCk7cmV0dXJuIG4/RSh5ZS5hcHBseSh2b2lkIDAscihbXSxhKHQpKSksVXQobikpOnooKGZ1bmN0aW9uKGUsbil7SnQocihbZV0sYShmZSh0KSkpKShuKX0pKX1mdW5jdGlvbiBfZSgpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTtyZXR1cm4geWUuYXBwbHkodm9pZCAwLHIoW10sYSh0KSkpfWZ1bmN0aW9uIENlKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPWl0KSx6KChmdW5jdGlvbihuLG8pe3ZhciBpPW51bGwsYT1udWxsLHI9bnVsbCxzPWZ1bmN0aW9uKCl7aWYoaSl7aS51bnN1YnNjcmliZSgpLGk9bnVsbDt2YXIgdD1hO2E9bnVsbCxvLm5leHQodCl9fTtmdW5jdGlvbiBsKCl7dmFyIG49cit0LGE9ZS5ub3coKTtpZihhPG4pcmV0dXJuIGk9dGhpcy5zY2hlZHVsZSh2b2lkIDAsbi1hKSx2b2lkIG8uYWRkKGkpO3MoKX1uLnN1YnNjcmliZShuZXcgSChvLChmdW5jdGlvbihuKXthPW4scj1lLm5vdygpLGl8fChpPWUuc2NoZWR1bGUobCx0KSxvLmFkZChpKSl9KSwoZnVuY3Rpb24oKXtzKCksby5jb21wbGV0ZSgpfSksdm9pZCAwLChmdW5jdGlvbigpe2E9aT1udWxsfSkpKX0pKX1mdW5jdGlvbiBNZSh0KXtyZXR1cm4geigoZnVuY3Rpb24oZSxuKXt2YXIgbz0hMTtlLnN1YnNjcmliZShuZXcgSChuLChmdW5jdGlvbih0KXtvPSEwLG4ubmV4dCh0KX0pLChmdW5jdGlvbigpe298fG4ubmV4dCh0KSxuLmNvbXBsZXRlKCl9KSkpfSkpfWZ1bmN0aW9uIHZlKHQpe3JldHVybiB0PD0wP2Z1bmN0aW9uKCl7cmV0dXJuIGR0fTp6KChmdW5jdGlvbihlLG4pe3ZhciBvPTA7ZS5zdWJzY3JpYmUobmV3IEgobiwoZnVuY3Rpb24oZSl7KytvPD10JiYobi5uZXh0KGUpLHQ8PW8mJm4uY29tcGxldGUoKSl9KSkpfSkpfWZ1bmN0aW9uIHhlKCl7cmV0dXJuIHooKGZ1bmN0aW9uKHQsZSl7dC5zdWJzY3JpYmUobmV3IEgoZSxNKSl9KSl9ZnVuY3Rpb24gT2UodCxlKXtyZXR1cm4gZT9mdW5jdGlvbihuKXtyZXR1cm4gbmUoZS5waXBlKHZlKDEpLHhlKCkpLG4ucGlwZShPZSh0KSkpfTokdCgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gdChlLG4pLnBpcGUodmUoMSksKGZ1bmN0aW9uIG8odCl7cmV0dXJuIFZ0KChmdW5jdGlvbigpe3JldHVybiB0fSkpfSkoZSkpfSkpfWZ1bmN0aW9uIFBlKHQsZSl7dm9pZCAwPT09ZSYmKGU9aXQpO3ZhciBuPWRlKHQsZSk7cmV0dXJuIE9lKChmdW5jdGlvbigpe3JldHVybiBufSkpfWZ1bmN0aW9uIHdlKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPVIpLHQ9bnVsbCE9dD90OmtlLHooKGZ1bmN0aW9uKG4sbyl7dmFyIGksYT0hMDtuLnN1YnNjcmliZShuZXcgSChvLChmdW5jdGlvbihuKXt2YXIgcj1lKG4pOyFhJiZ0KGkscil8fChhPSExLGk9cixvLm5leHQobikpfSkpKX0pKX1mdW5jdGlvbiBrZSh0LGUpe3JldHVybiB0PT09ZX1mdW5jdGlvbiBTZSh0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9RGUpLHooKGZ1bmN0aW9uKGUsbil7dmFyIG89ITE7ZS5zdWJzY3JpYmUobmV3IEgobiwoZnVuY3Rpb24odCl7bz0hMCxuLm5leHQodCl9KSwoZnVuY3Rpb24oKXtyZXR1cm4gbz9uLmNvbXBsZXRlKCk6bi5lcnJvcih0KCkpfSkpKX0pKX1mdW5jdGlvbiBEZSgpe3JldHVybiBuZXcgQnR9ZnVuY3Rpb24gUmUodCxlKXtyZXR1cm4gZT9mdW5jdGlvbihuKXtyZXR1cm4gbi5waXBlKFJlKChmdW5jdGlvbihuLG8pe3JldHVybiB3dCh0KG4sbykpLnBpcGUoVnQoKGZ1bmN0aW9uKHQsaSl7cmV0dXJuIGUobix0LG8saSl9KSkpfSkpKX06eigoZnVuY3Rpb24oZSxuKXt2YXIgbz0wLGk9bnVsbCxhPSExO2Uuc3Vic2NyaWJlKG5ldyBIKG4sKGZ1bmN0aW9uKGUpe2l8fChpPW5ldyBIKG4sdm9pZCAwLChmdW5jdGlvbigpe2k9bnVsbCxhJiZuLmNvbXBsZXRlKCl9KSksd3QodChlLG8rKykpLnN1YnNjcmliZShpKSl9KSwoZnVuY3Rpb24oKXthPSEwLCFpJiZuLmNvbXBsZXRlKCl9KSkpfSkpfWZ1bmN0aW9uIEVlKHQsZSxuLG8pe3JldHVybiB6KChmdW5jdGlvbihpLGEpe3ZhciByO2UmJiJmdW5jdGlvbiIhPXR5cGVvZiBlPyhuPWUuZHVyYXRpb24scj1lLmVsZW1lbnQsbz1lLmNvbm5lY3Rvcik6cj1lO3ZhciBzPW5ldyBNYXAsbD1mdW5jdGlvbih0KXtzLmZvckVhY2godCksdChhKX0sYz1mdW5jdGlvbih0KXtyZXR1cm4gbCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXJyb3IodCl9KSl9LGQ9bmV3IEFlKGEsKGZ1bmN0aW9uKGUpe3RyeXt2YXIgaT10KGUpLGw9cy5nZXQoaSk7aWYoIWwpe3Muc2V0KGksbD1vP28oKTpuZXcgQik7dmFyIHA9KGZ1bmN0aW9uIG0odCxlKXt2YXIgbj1uZXcgVCgoZnVuY3Rpb24odCl7ZC5hY3RpdmVHcm91cHMrKzt2YXIgbj1lLnN1YnNjcmliZSh0KTtyZXR1cm4gZnVuY3Rpb24oKXtuLnVuc3Vic2NyaWJlKCksMD09LS1kLmFjdGl2ZUdyb3VwcyYmZC50ZWFyZG93bkF0dGVtcHRlZCYmZC51bnN1YnNjcmliZSgpfX0pKTtyZXR1cm4gbi5rZXk9dCxufSkoaSxsKTtpZihhLm5leHQocCksbil7dmFyIGY9bmV3IEgobCwoZnVuY3Rpb24oKXtsLmNvbXBsZXRlKCksbnVsbD09Znx8Zi51bnN1YnNjcmliZSgpfSksdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXtyZXR1cm4gcy5kZWxldGUoaSl9KSk7ZC5hZGQod3QobihwKSkuc3Vic2NyaWJlKGYpKX19bC5uZXh0KHI/cihlKTplKX1jYXRjaCh0KXtjKHQpfX0pLChmdW5jdGlvbigpe3JldHVybiBsKChmdW5jdGlvbih0KXtyZXR1cm4gdC5jb21wbGV0ZSgpfSkpfSksYywoZnVuY3Rpb24oKXtyZXR1cm4gcy5jbGVhcigpfSkpO2kuc3Vic2NyaWJlKGQpfSkpfXZhciBBZT0oZnVuY3Rpb24odCl7ZnVuY3Rpb24gbigpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5hY3RpdmVHcm91cHM9MCxlLnRlYXJkb3duQXR0ZW1wdGVkPSExLGV9cmV0dXJuIGUobix0KSxuLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3RoaXMudGVhcmRvd25BdHRlbXB0ZWQ9ITAsMD09PXRoaXMuYWN0aXZlR3JvdXBzJiZ0LnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpfSxufSkoSCk7ZnVuY3Rpb24gVGUodCl7cmV0dXJuIHQ8PTA/ZnVuY3Rpb24oKXtyZXR1cm4gZHR9OnooKGZ1bmN0aW9uKGUsbil7dmFyIG89W107ZS5zdWJzY3JpYmUobmV3IEgobiwoZnVuY3Rpb24oZSl7by5wdXNoKGUpLHQ8by5sZW5ndGgmJm8uc2hpZnQoKX0pLChmdW5jdGlvbigpe3ZhciB0LGU7dHJ5e2Zvcih2YXIgYT1pKG8pLHI9YS5uZXh0KCk7IXIuZG9uZTtyPWEubmV4dCgpKXtuLm5leHQoci52YWx1ZSl9fWNhdGNoKGUpe3Q9e2Vycm9yOmV9fWZpbmFsbHl7dHJ5e3ImJiFyLmRvbmUmJihlPWEucmV0dXJuKSYmZS5jYWxsKGEpfWZpbmFsbHl7aWYodCl0aHJvdyB0LmVycm9yfX1uLmNvbXBsZXRlKCl9KSx2b2lkIDAsKGZ1bmN0aW9uKCl7bz1udWxsfSkpKX0pKX1mdW5jdGlvbiBOZSgpe3JldHVybiB6KChmdW5jdGlvbih0LGUpe3ZhciBuLG89ITE7dC5zdWJzY3JpYmUobmV3IEgoZSwoZnVuY3Rpb24odCl7dmFyIGk9bjtuPXQsbyYmZS5uZXh0KFtpLHRdKSxvPSEwfSkpKX0pKX1mdW5jdGlvbiB6ZSh0KXtyZXR1cm4geigoZnVuY3Rpb24oZSxuKXt2YXIgbyxpLGE9ITEscj0hMSxzPSExLGw9ZnVuY3Rpb24oKXtyZXR1cm4gcyYmciYmKG4uY29tcGxldGUoKSwhMCl9LGM9ZnVuY3Rpb24oKXtzPSExLG89ZS5zdWJzY3JpYmUobmV3IEgobix2b2lkIDAsKGZ1bmN0aW9uKCl7cz0hMCwhbCgpJiYoaXx8KGk9bmV3IEIsdChpKS5zdWJzY3JpYmUobmV3IEgobiwoZnVuY3Rpb24oKXtvP2MoKTphPSEwfSksKGZ1bmN0aW9uKCl7cj0hMCxsKCl9KSkpKSxpKS5uZXh0KCl9KSkpLGEmJihvLnVuc3Vic2NyaWJlKCksbz1udWxsLGE9ITEsYygpKX07YygpfSkpfWZ1bmN0aW9uIEllKHQpe3ZvaWQgMD09PXQmJih0PXt9KTt2YXIgZT10LmNvbm5lY3RvcixuPXZvaWQgMD09PWU/ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEJ9OmUsbz10LnJlc2V0T25FcnJvcixpPXZvaWQgMD09PW98fG8sYT10LnJlc2V0T25Db21wbGV0ZSxyPXZvaWQgMD09PWF8fGEscz10LnJlc2V0T25SZWZDb3VudFplcm8sbD12b2lkIDA9PT1zfHxzO3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT1udWxsLG89bnVsbCxhPW51bGwscz0wLGM9ITEsZD0hMSxwPWZ1bmN0aW9uKCl7bnVsbD09b3x8by51bnN1YnNjcmliZSgpLG89bnVsbH0sbT1mdW5jdGlvbigpe3AoKSxlPWE9bnVsbCxjPWQ9ITF9LGY9ZnVuY3Rpb24oKXt2YXIgdD1lO20oKSxudWxsPT10fHx0LnVuc3Vic2NyaWJlKCl9O3JldHVybiB6KChmdW5jdGlvbih0LHUpe3MrKyxkfHxjfHxwKCk7dmFyIGc9YT1udWxsIT1hP2E6bigpO3UuYWRkKChmdW5jdGlvbigpezAhPT0tLXN8fGR8fGN8fChvPUhlKGYsbCkpfSkpLGcuc3Vic2NyaWJlKHUpLGV8fChlPW5ldyBQKHtuZXh0OmZ1bmN0aW9uKHQpe3JldHVybiBnLm5leHQodCl9LGVycm9yOmZ1bmN0aW9uKHQpe2Q9ITAscCgpLG89SGUobSxpLHQpLGcuZXJyb3IodCl9LGNvbXBsZXRlOmZ1bmN0aW9uKCl7Yz0hMCxwKCksbz1IZShtLHIpLGcuY29tcGxldGUoKX19KSxQdCh0KS5zdWJzY3JpYmUoZSkpfSkpKHQpfX1mdW5jdGlvbiBIZSh0LGUpe2Zvcih2YXIgbj1bXSxvPTI7bzxhcmd1bWVudHMubGVuZ3RoO28rKyluW28tMl09YXJndW1lbnRzW29dO3JldHVybiEwPT09ZT8odCgpLG51bGwpOiExPT09ZT9udWxsOmUuYXBwbHkodm9pZCAwLHIoW10sYShuKSkpLnBpcGUodmUoMSkpLnN1YnNjcmliZSgoZnVuY3Rpb24oKXtyZXR1cm4gdCgpfSkpfWZ1bmN0aW9uIEZlKHQsZSxuKXt2YXIgbyxpLGEscj0hMTtyZXR1cm4gdCYmIm9iamVjdCI9PXR5cGVvZiB0PyhhPW51bGwhPT0obz10LmJ1ZmZlclNpemUpJiZ2b2lkIDAhPT1vP286MS8wLGU9bnVsbCE9PShpPXQud2luZG93VGltZSkmJnZvaWQgMCE9PWk/aToxLzAscj0hIXQucmVmQ291bnQsbj10LnNjaGVkdWxlcik6YT1udWxsIT10P3Q6MS8wLEllKHtjb25uZWN0b3I6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFcoYSxlLG4pfSxyZXNldE9uRXJyb3I6ITAscmVzZXRPbkNvbXBsZXRlOiExLHJlc2V0T25SZWZDb3VudFplcm86cn0pfWZ1bmN0aW9uIExlKHQpe3JldHVybiB1ZSgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gdDw9bn0pKX1mdW5jdGlvbiBCZSgpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgbj1UdCh0KTtyZXR1cm4geigoZnVuY3Rpb24oZSxvKXsobj9uZSh0LGUsbik6bmUodCxlKSkuc3Vic2NyaWJlKG8pfSkpfWZ1bmN0aW9uIFZlKHQsZSl7cmV0dXJuIHooKGZ1bmN0aW9uKG4sbyl7dmFyIGk9bnVsbCxhPTAscj0hMSxzPWZ1bmN0aW9uKCl7cmV0dXJuIHImJiFpJiZvLmNvbXBsZXRlKCl9O24uc3Vic2NyaWJlKG5ldyBIKG8sKGZ1bmN0aW9uKG4pe251bGw9PWl8fGkudW5zdWJzY3JpYmUoKTt2YXIgcj0wLGw9YSsrO3d0KHQobixsKSkuc3Vic2NyaWJlKGk9bmV3IEgobywoZnVuY3Rpb24odCl7cmV0dXJuIG8ubmV4dChlP2Uobix0LGwscisrKTp0KX0pLChmdW5jdGlvbigpe2k9bnVsbCxzKCl9KSkpfSksKGZ1bmN0aW9uKCl7cj0hMCxzKCl9KSkpfSkpfWZ1bmN0aW9uIGplKHQpe3JldHVybiB6KChmdW5jdGlvbihlLG4pe3d0KHQpLnN1YnNjcmliZShuZXcgSChuLChmdW5jdGlvbigpe3JldHVybiBuLmNvbXBsZXRlKCl9KSxNKSksIW4uY2xvc2VkJiZlLnN1YnNjcmliZShuKX0pKX1mdW5jdGlvbiBVZSh0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT0hMSkseigoZnVuY3Rpb24obixvKXt2YXIgaT0wO24uc3Vic2NyaWJlKG5ldyBIKG8sKGZ1bmN0aW9uKG4pe3ZhciBhPXQobixpKyspOyhhfHxlKSYmby5uZXh0KG4pLCFhJiZvLmNvbXBsZXRlKCl9KSkpfSkpfWZ1bmN0aW9uIFdlKHQsZSxuKXt2YXIgbz1kKHQpfHxlfHxuP3tuZXh0OnQsZXJyb3I6ZSxjb21wbGV0ZTpufTp0O3JldHVybiBvP3ooKGZ1bmN0aW9uKHQsZSl7dmFyIG47bnVsbD09PShuPW8uc3Vic2NyaWJlKXx8dm9pZCAwPT09bnx8bi5jYWxsKG8pO3ZhciBpPSEwO3Quc3Vic2NyaWJlKG5ldyBIKGUsKGZ1bmN0aW9uKHQpe3ZhciBuO251bGw9PT0obj1vLm5leHQpfHx2b2lkIDA9PT1ufHxuLmNhbGwobyx0KSxlLm5leHQodCl9KSwoZnVuY3Rpb24oKXt2YXIgdDtpPSExLG51bGw9PT0odD1vLmNvbXBsZXRlKXx8dm9pZCAwPT09dHx8dC5jYWxsKG8pLGUuY29tcGxldGUoKX0pLChmdW5jdGlvbih0KXt2YXIgbjtpPSExLG51bGw9PT0obj1vLmVycm9yKXx8dm9pZCAwPT09bnx8bi5jYWxsKG8sdCksZS5lcnJvcih0KX0pLChmdW5jdGlvbigpe3ZhciB0LGU7aSYmKG51bGw9PT0odD1vLnVuc3Vic2NyaWJlKXx8dm9pZCAwPT09dHx8dC5jYWxsKG8pKSxudWxsPT09KGU9by5maW5hbGl6ZSl8fHZvaWQgMD09PWV8fGUuY2FsbChvKX0pKSl9KSk6Un12YXIgR2U9e2xlYWRpbmc6ITAsdHJhaWxpbmc6ITF9O2Z1bmN0aW9uIFllKHQsZSxuKXt2b2lkIDA9PT1lJiYoZT1pdCksdm9pZCAwPT09biYmKG49R2UpO3ZhciBvPWRlKHQsZSk7cmV0dXJuKGZ1bmN0aW9uIGkodCxlKXt2YXIgbj12b2lkIDA9PT1lP0dlOmUsbz1uLmxlYWRpbmcsaT1uLnRyYWlsaW5nO3JldHVybiB6KChmdW5jdGlvbihlLG4pe3ZhciBhPSExLHI9bnVsbCxzPW51bGwsbD0hMSxjPWZ1bmN0aW9uKCl7bnVsbD09c3x8cy51bnN1YnNjcmliZSgpLHM9bnVsbCxpJiYobSgpLGwmJm4uY29tcGxldGUoKSl9LGQ9ZnVuY3Rpb24oKXtzPW51bGwsbCYmbi5jb21wbGV0ZSgpfSxwPWZ1bmN0aW9uKGUpe3JldHVybiBzPXd0KHQoZSkpLnN1YnNjcmliZShuZXcgSChuLGMsZCkpfSxtPWZ1bmN0aW9uKCl7aWYoYSl7YT0hMTt2YXIgdD1yO3I9bnVsbCxuLm5leHQodCksIWwmJnAodCl9fTtlLnN1YnNjcmliZShuZXcgSChuLChmdW5jdGlvbih0KXthPSEwLHI9dCwoIXN8fHMuY2xvc2VkKSYmKG8/bSgpOnAodCkpfSksKGZ1bmN0aW9uKCl7bD0hMCwoIShpJiZhJiZzKXx8cy5jbG9zZWQpJiZuLmNvbXBsZXRlKCl9KSkpfSkpfSkoKGZ1bmN0aW9uKCl7cmV0dXJuIG99KSxuKX1mdW5jdGlvbiBxZSgpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgbj1BdCh0KTtyZXR1cm4geigoZnVuY3Rpb24oZSxvKXtmb3IodmFyIGk9dC5sZW5ndGgscz1uZXcgQXJyYXkoaSksbD10Lm1hcCgoZnVuY3Rpb24oKXtyZXR1cm4hMX0pKSxjPSExLGQ9ZnVuY3Rpb24oZSl7d3QodFtlXSkuc3Vic2NyaWJlKG5ldyBIKG8sKGZ1bmN0aW9uKHQpe3NbZV09dCxjfHxsW2VdfHwobFtlXT0hMCwoYz1sLmV2ZXJ5KFIpKSYmKGw9bnVsbCkpfSksTSkpfSxwPTA7cDxpO3ArKylkKHApO2Uuc3Vic2NyaWJlKG5ldyBIKG8sKGZ1bmN0aW9uKHQpe2lmKGMpe3ZhciBlPXIoW3RdLGEocykpO28ubmV4dChuP24uYXBwbHkodm9pZCAwLHIoW10sYShlKSkpOmUpfX0pKSl9KSl9Ci8qKgogICAgICogQGxpY2Vuc2UgQW5ndWxhciB2MTIuMi4xCiAgICAgKiAoYykgMjAxMC0yMDIxIEdvb2dsZSBMTEMuIGh0dHBzOi8vYW5ndWxhci5pby8KICAgICAqIExpY2Vuc2U6IE1JVAogICAgICovCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIFplKHQpe2ZvcihsZXQgZSBpbiB0KWlmKHRbZV09PT1aZSlyZXR1cm4gZTt0aHJvdyBFcnJvcigiQ291bGQgbm90IGZpbmQgcmVuYW1lZCBwcm9wZXJ0eSBvbiB0YXJnZXQgb2JqZWN0LiIpfWZ1bmN0aW9uIFhlKHQsZSl7Zm9yKGNvbnN0IG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYhdC5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIEtlKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gdDtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiJbIit0Lm1hcChLZSkuam9pbigiLCAiKSsiXSI7aWYobnVsbD09dClyZXR1cm4iIit0O2lmKHQub3ZlcnJpZGRlbk5hbWUpcmV0dXJuYCR7dC5vdmVycmlkZGVuTmFtZX1gO2lmKHQubmFtZSlyZXR1cm5gJHt0Lm5hbWV9YDtjb25zdCBlPXQudG9TdHJpbmcoKTtpZihudWxsPT1lKXJldHVybiIiK2U7Y29uc3Qgbj1lLmluZGV4T2YoIlxuIik7cmV0dXJuLTE9PT1uP2U6ZS5zdWJzdHJpbmcoMCxuKX1mdW5jdGlvbiBKZSh0LGUpe3JldHVybiBudWxsPT10fHwiIj09PXQ/bnVsbD09PWU/IiI6ZTpudWxsPT1lfHwiIj09PWU/dDp0KyIgIitlfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBRZT1aZSh7X19mb3J3YXJkX3JlZl9fOlplfSk7ZnVuY3Rpb24gJGUodCl7cmV0dXJuIHQuX19mb3J3YXJkX3JlZl9fPSRlLHQudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gS2UodGhpcygpKX0sdH1mdW5jdGlvbiB0bih0KXtyZXR1cm4gZW4odCk/dCgpOnR9ZnVuY3Rpb24gZW4odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuaGFzT3duUHJvcGVydHkoUWUpJiZ0Ll9fZm9yd2FyZF9yZWZfXz09PSRlfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBubiBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoYW4odCxlKSksdGhpcy5jb2RlPXR9fWNvbnN0IG9uPW5ldyBTZXQoWyIxMDAiLCIyMDAiLCIyMDEiLCIzMDAiLCIzMDEiLCIzMDIiXSk7ZnVuY3Rpb24gYW4odCxlKXtsZXQgbj1gJHt0P2BORzAke3R9OiBgOiIifSR7ZX1gO3JldHVybiBuZ0Rldk1vZGUmJm9uLmhhcyh0KSYmKG49YCR7bn0uIEZpbmQgbW9yZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vZXJyb3JzL05HMCR7dH1gKSxufQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBybih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/dDpudWxsPT10PyIiOlN0cmluZyh0KX1mdW5jdGlvbiBzbih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90Lm5hbWV8fHQudG9TdHJpbmcoKToib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPXQmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LnR5cGU/dC50eXBlLm5hbWV8fHQudHlwZS50b1N0cmluZygpOnJuKHQpfWZ1bmN0aW9uIGxuKHQsZSl7Y29uc3Qgbj1lP2AuIERlcGVuZGVuY3kgcGF0aDogJHtlLmpvaW4oIiA+ICIpfSA+ICR7dH1gOiIiO3Rocm93IG5ldyBubigiMjAwIixgQ2lyY3VsYXIgZGVwZW5kZW5jeSBpbiBESSBkZXRlY3RlZCBmb3IgJHt0fSR7bn1gKX1mdW5jdGlvbiBjbigpe3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IG1peCBtdWx0aSBwcm92aWRlcnMgYW5kIHJlZ3VsYXIgcHJvdmlkZXJzIil9ZnVuY3Rpb24gZG4odCxlKXtjb25zdCBuPWU/YCBpbiAke2V9YDoiIjt0aHJvdyBuZXcgbm4oIjIwMSIsYE5vIHByb3ZpZGVyIGZvciAke3NuKHQpfSBmb3VuZCR7bn1gKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gcG4odCxlKXsibnVtYmVyIiE9dHlwZW9mIHQmJk9uKGUsdHlwZW9mIHQsIm51bWJlciIsIj09PSIpfWZ1bmN0aW9uIG1uKHQsZSxuKXtwbih0LCJFeHBlY3RlZCBhIG51bWJlciIpLENuKHQsbiwiRXhwZWN0ZWQgbnVtYmVyIHRvIGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byIpLHZuKHQsZSwiRXhwZWN0ZWQgbnVtYmVyIHRvIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byIpfWZ1bmN0aW9uIGZuKHQsZSl7InN0cmluZyIhPXR5cGVvZiB0JiZPbihlLG51bGw9PT10PyJudWxsIjp0eXBlb2YgdCwic3RyaW5nIiwiPT09Iil9ZnVuY3Rpb24gdW4odCxlKXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmT24oZSxudWxsPT09dD8ibnVsbCI6dHlwZW9mIHQsImZ1bmN0aW9uIiwiPT09Iil9ZnVuY3Rpb24gZ24odCxlLG4pe3QhPWUmJk9uKG4sdCxlLCI9PSIpfWZ1bmN0aW9uIGhuKHQsZSxuKXt0PT1lJiZPbihuLHQsZSwiIT0iKX1mdW5jdGlvbiBibih0LGUsbil7dCE9PWUmJk9uKG4sdCxlLCI9PT0iKX1mdW5jdGlvbiB5bih0LGUsbil7dD09PWUmJk9uKG4sdCxlLCIhPT0iKX1mdW5jdGlvbiBfbih0LGUsbil7dDxlfHxPbihuLHQsZSwiPCIpfWZ1bmN0aW9uIENuKHQsZSxuKXt0PD1lfHxPbihuLHQsZSwiPD0iKX1mdW5jdGlvbiBNbih0LGUsbil7dD5lfHxPbihuLHQsZSwiPiIpfWZ1bmN0aW9uIHZuKHQsZSxuKXt0Pj1lfHxPbihuLHQsZSwiPj0iKX1mdW5jdGlvbiB4bih0LGUpe251bGw9PXQmJk9uKGUsdCxudWxsLCIhPSIpfWZ1bmN0aW9uIE9uKHQsZSxuLG8pe3Rocm93IG5ldyBFcnJvcihgQVNTRVJUSU9OIEVSUk9SOiAke3R9YCsobnVsbD09bz8iIjpgIFtFeHBlY3RlZD0+ICR7bn0gJHtvfSAke2V9IDw9QWN0dWFsXWApKX1mdW5jdGlvbiBQbih0KXsidW5kZWZpbmVkIiE9dHlwZW9mIE5vZGUmJnQgaW5zdGFuY2VvZiBOb2RlfHwib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPXQmJiJXZWJXb3JrZXJSZW5kZXJOb2RlIj09PXQuY29uc3RydWN0b3IubmFtZXx8T24oYFRoZSBwcm92aWRlZCB2YWx1ZSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIGEgRE9NIE5vZGUgYnV0IGdvdCAke0tlKHQpfWApfWZ1bmN0aW9uIHduKHQsZSl7eG4odCwiQXJyYXkgbXVzdCBiZSBkZWZpbmVkLiIpO2NvbnN0IG49dC5sZW5ndGg7KGU8MHx8ZT49bikmJk9uKGBJbmRleCBleHBlY3RlZCB0byBiZSBsZXNzIHRoYW4gJHtufSBidXQgZ290ICR7ZX1gKX1mdW5jdGlvbiBrbih0LC4uLmUpe2lmKC0xIT09ZS5pbmRleE9mKHQpKXJldHVybiEwO09uKGBFeHBlY3RlZCB2YWx1ZSB0byBiZSBvbmUgb2YgJHtKU09OLnN0cmluZ2lmeShlKX0gYnV0IHdhcyAke0pTT04uc3RyaW5naWZ5KHQpfS5gKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gU24odCl7cmV0dXJue3Rva2VuOnQudG9rZW4scHJvdmlkZWRJbjp0LnByb3ZpZGVkSW58fG51bGwsZmFjdG9yeTp0LmZhY3RvcnksdmFsdWU6dm9pZCAwfX1mdW5jdGlvbiBEbih0KXtyZXR1cm57cHJvdmlkZXJzOnQucHJvdmlkZXJzfHxbXSxpbXBvcnRzOnQuaW1wb3J0c3x8W119fWZ1bmN0aW9uIFJuKHQpe3JldHVybiBFbih0LFRuKXx8RW4odCx6bil9ZnVuY3Rpb24gRW4odCxlKXtyZXR1cm4gdC5oYXNPd25Qcm9wZXJ0eShlKT90W2VdOm51bGx9ZnVuY3Rpb24gQW4odCl7cmV0dXJuIHQmJih0Lmhhc093blByb3BlcnR5KE5uKXx8dC5oYXNPd25Qcm9wZXJ0eShJbikpP3RbTm5dOm51bGx9Y29uc3QgVG49WmUoeyLJtXByb3YiOlplfSksTm49WmUoeyLJtWluaiI6WmV9KSx6bj1aZSh7bmdJbmplY3RhYmxlRGVmOlplfSksSW49WmUoe25nSW5qZWN0b3JEZWY6WmV9KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCnZhciBIbjsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmxldCBGbjtmdW5jdGlvbiBMbih0KXtjb25zdCBlPUZuO3JldHVybiBGbj10LGV9ZnVuY3Rpb24gQm4odCxlLG4pe2NvbnN0IG89Um4odCk7cmV0dXJuIG8mJiJyb290Ij09by5wcm92aWRlZEluP3ZvaWQgMD09PW8udmFsdWU/by52YWx1ZT1vLmZhY3RvcnkoKTpvLnZhbHVlOm4mSG4uT3B0aW9uYWw/bnVsbDp2b2lkIDAhPT1lP2U6dm9pZCBkbihLZSh0KSwiSW5qZWN0b3IiKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIFZuKHQpe3JldHVybnt0b1N0cmluZzp0fS50b1N0cmluZygpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi92YXIgam4sVW4sV247IShmdW5jdGlvbih0KXt0W3QuRGVmYXVsdD0wXT0iRGVmYXVsdCIsdFt0Lkhvc3Q9MV09Ikhvc3QiLHRbdC5TZWxmPTJdPSJTZWxmIix0W3QuU2tpcFNlbGY9NF09IlNraXBTZWxmIix0W3QuT3B0aW9uYWw9OF09Ik9wdGlvbmFsIn0pKEhufHwoSG49e30pKSwoZnVuY3Rpb24odCl7dFt0Lk9uUHVzaD0wXT0iT25QdXNoIix0W3QuRGVmYXVsdD0xXT0iRGVmYXVsdCJ9KShqbnx8KGpuPXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5DaGVja09uY2U9MF09IkNoZWNrT25jZSIsdFt0LkNoZWNrZWQ9MV09IkNoZWNrZWQiLHRbdC5DaGVja0Fsd2F5cz0yXT0iQ2hlY2tBbHdheXMiLHRbdC5EZXRhY2hlZD0zXT0iRGV0YWNoZWQiLHRbdC5FcnJvcmVkPTRdPSJFcnJvcmVkIix0W3QuRGVzdHJveWVkPTVdPSJEZXN0cm95ZWQifSkoVW58fChVbj17fSkpLChmdW5jdGlvbih0KXt0W3QuRW11bGF0ZWQ9MF09IkVtdWxhdGVkIix0W3QuTm9uZT0yXT0iTm9uZSIsdFt0LlNoYWRvd0RvbT0zXT0iU2hhZG93RG9tIn0pKFdufHwoV249e30pKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IEduPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxZbj0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93LHFuPSJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmInVuZGVmaW5lZCIhPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZSYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZzZWxmLFpuPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsJiZnbG9iYWwsWG49R258fFpufHxZbnx8cW47ZnVuY3Rpb24gS24oKXtyZXR1cm4hKCJ1bmRlZmluZWQiIT10eXBlb2YgbmdEZXZNb2RlJiYhbmdEZXZNb2RlKSYmKCJvYmplY3QiIT10eXBlb2YgbmdEZXZNb2RlJiYoCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiB0KCl7Y29uc3QgdD0idW5kZWZpbmVkIiE9dHlwZW9mIGxvY2F0aW9uP2xvY2F0aW9uLnRvU3RyaW5nKCk6IiIsZT17bmFtZWRDb25zdHJ1Y3RvcnM6LTEhPXQuaW5kZXhPZigibmdEZXZNb2RlPW5hbWVkQ29uc3RydWN0b3JzIiksZmlyc3RDcmVhdGVQYXNzOjAsdE5vZGU6MCx0VmlldzowLHJlbmRlcmVyQ3JlYXRlVGV4dE5vZGU6MCxyZW5kZXJlclNldFRleHQ6MCxyZW5kZXJlckNyZWF0ZUVsZW1lbnQ6MCxyZW5kZXJlckFkZEV2ZW50TGlzdGVuZXI6MCxyZW5kZXJlclNldEF0dHJpYnV0ZTowLHJlbmRlcmVyUmVtb3ZlQXR0cmlidXRlOjAscmVuZGVyZXJTZXRQcm9wZXJ0eTowLHJlbmRlcmVyU2V0Q2xhc3NOYW1lOjAscmVuZGVyZXJBZGRDbGFzczowLHJlbmRlcmVyUmVtb3ZlQ2xhc3M6MCxyZW5kZXJlclNldFN0eWxlOjAscmVuZGVyZXJSZW1vdmVTdHlsZTowLHJlbmRlcmVyRGVzdHJveTowLHJlbmRlcmVyRGVzdHJveU5vZGU6MCxyZW5kZXJlck1vdmVOb2RlOjAscmVuZGVyZXJSZW1vdmVOb2RlOjAscmVuZGVyZXJBcHBlbmRDaGlsZDowLHJlbmRlcmVySW5zZXJ0QmVmb3JlOjAscmVuZGVyZXJDcmVhdGVDb21tZW50OjB9LG49LTE9PT10LmluZGV4T2YoIm5nRGV2TW9kZT1mYWxzZSIpO3JldHVybiBYbi5uZ0Rldk1vZGU9biYmZSxlfSkoKSwidW5kZWZpbmVkIiE9dHlwZW9mIG5nRGV2TW9kZSYmISFuZ0Rldk1vZGUpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBKbj17fSxRbj1bXTsoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJktuKCkmJihPYmplY3QuZnJlZXplKEpuKSxPYmplY3QuZnJlZXplKFFuKSkKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovO2NvbnN0ICRuPVplKHsiybVjbXAiOlplfSksdG89WmUoeyLJtWRpciI6WmV9KSxlbz1aZSh7Ism1cGlwZSI6WmV9KSxubz1aZSh7Ism1bW9kIjpaZX0pLG9vPVplKHsiybVsb2MiOlplfSksaW89WmUoeyLJtWZhYyI6WmV9KSxhbz1aZSh7X19OR19FTEVNRU5UX0lEX186WmV9KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmxldCBybz0wO2Z1bmN0aW9uIHNvKHQpe3JldHVybiBWbigoKCk9PnsoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJktuKCk7Y29uc3QgZT17fSxuPXt0eXBlOnQudHlwZSxwcm92aWRlcnNSZXNvbHZlcjpudWxsLGRlY2xzOnQuZGVjbHMsdmFyczp0LnZhcnMsZmFjdG9yeTpudWxsLHRlbXBsYXRlOnQudGVtcGxhdGV8fG51bGwsY29uc3RzOnQuY29uc3RzfHxudWxsLG5nQ29udGVudFNlbGVjdG9yczp0Lm5nQ29udGVudFNlbGVjdG9ycyxob3N0QmluZGluZ3M6dC5ob3N0QmluZGluZ3N8fG51bGwsaG9zdFZhcnM6dC5ob3N0VmFyc3x8MCxob3N0QXR0cnM6dC5ob3N0QXR0cnN8fG51bGwsY29udGVudFF1ZXJpZXM6dC5jb250ZW50UXVlcmllc3x8bnVsbCxkZWNsYXJlZElucHV0czplLGlucHV0czpudWxsLG91dHB1dHM6bnVsbCxleHBvcnRBczp0LmV4cG9ydEFzfHxudWxsLG9uUHVzaDp0LmNoYW5nZURldGVjdGlvbj09PWpuLk9uUHVzaCxkaXJlY3RpdmVEZWZzOm51bGwscGlwZURlZnM6bnVsbCxzZWxlY3RvcnM6dC5zZWxlY3RvcnN8fFFuLHZpZXdRdWVyeTp0LnZpZXdRdWVyeXx8bnVsbCxmZWF0dXJlczp0LmZlYXR1cmVzfHxudWxsLGRhdGE6dC5kYXRhfHx7fSxlbmNhcHN1bGF0aW9uOnQuZW5jYXBzdWxhdGlvbnx8V24uRW11bGF0ZWQsaWQ6ImMiLHN0eWxlczp0LnN0eWxlc3x8UW4sXzpudWxsLHNldElucHV0Om51bGwsc2NoZW1hczp0LnNjaGVtYXN8fG51bGwsdFZpZXc6bnVsbH0sbz10LmRpcmVjdGl2ZXMsaT10LmZlYXR1cmVzLGE9dC5waXBlcztyZXR1cm4gbi5pZCs9cm8rKyxuLmlucHV0cz1nbyh0LmlucHV0cyxlKSxuLm91dHB1dHM9Z28odC5vdXRwdXRzKSxpJiZpLmZvckVhY2goKHQ9PnQobikpKSxuLmRpcmVjdGl2ZURlZnM9bz8oKT0+KCJmdW5jdGlvbiI9PXR5cGVvZiBvP28oKTpvKS5tYXAoY28pOm51bGwsbi5waXBlRGVmcz1hPygpPT4oImZ1bmN0aW9uIj09dHlwZW9mIGE/YSgpOmEpLm1hcChwbyk6bnVsbCxufSkpfWZ1bmN0aW9uIGxvKHQsZSxuKXtjb25zdCBvPXQuybVjbXA7by5kaXJlY3RpdmVEZWZzPSgpPT5lLm1hcChjbyksby5waXBlRGVmcz0oKT0+bi5tYXAocG8pfWZ1bmN0aW9uIGNvKHQpe2NvbnN0IGU9eW8odCl8fF9vKHQpO2lmKG5nRGV2TW9kZSYmIWUpdGhyb3cgbmV3IEVycm9yKGAnJHt0Lm5hbWV9JyBpcyBuZWl0aGVyICdDb21wb25lbnRUeXBlJyBvciAnRGlyZWN0aXZlVHlwZScuYCk7cmV0dXJuIGV9ZnVuY3Rpb24gcG8odCl7Y29uc3QgZT1Dbyh0KTtpZihuZ0Rldk1vZGUmJiFlKXRocm93IG5ldyBFcnJvcihgJyR7dC5uYW1lfScgaXMgbm90IGEgJ1BpcGVUeXBlJy5gKTtyZXR1cm4gZX1jb25zdCBtbz17fTtmdW5jdGlvbiBmbyh0KXtyZXR1cm4gVm4oKCgpPT57Y29uc3QgZT17dHlwZTp0LnR5cGUsYm9vdHN0cmFwOnQuYm9vdHN0cmFwfHxRbixkZWNsYXJhdGlvbnM6dC5kZWNsYXJhdGlvbnN8fFFuLGltcG9ydHM6dC5pbXBvcnRzfHxRbixleHBvcnRzOnQuZXhwb3J0c3x8UW4sdHJhbnNpdGl2ZUNvbXBpbGVTY29wZXM6bnVsbCxzY2hlbWFzOnQuc2NoZW1hc3x8bnVsbCxpZDp0LmlkfHxudWxsfTtyZXR1cm4gbnVsbCE9dC5pZCYmKG1vW3QuaWRdPXQudHlwZSksZX0pKX1mdW5jdGlvbiB1byh0LGUpe3JldHVybiBWbigoKCk9Pntjb25zdCBuPU1vKHQsITApO24uZGVjbGFyYXRpb25zPWUuZGVjbGFyYXRpb25zfHxRbixuLmltcG9ydHM9ZS5pbXBvcnRzfHxRbixuLmV4cG9ydHM9ZS5leHBvcnRzfHxRbn0pKX1mdW5jdGlvbiBnbyh0LGUpe2lmKG51bGw9PXQpcmV0dXJuIEpuO2NvbnN0IG49e307Zm9yKGNvbnN0IG8gaW4gdClpZih0Lmhhc093blByb3BlcnR5KG8pKXtsZXQgaT10W29dLGE9aTtBcnJheS5pc0FycmF5KGkpJiYoYT1pWzFdLGk9aVswXSksbltpXT1vLGUmJihlW2ldPWEpfXJldHVybiBufWNvbnN0IGhvPXNvO2Z1bmN0aW9uIGJvKHQpe3JldHVybnt0eXBlOnQudHlwZSxuYW1lOnQubmFtZSxmYWN0b3J5Om51bGwscHVyZTohMSE9PXQucHVyZSxvbkRlc3Ryb3k6dC50eXBlLnByb3RvdHlwZS5uZ09uRGVzdHJveXx8bnVsbH19ZnVuY3Rpb24geW8odCl7cmV0dXJuIHRbJG5dfHxudWxsfWZ1bmN0aW9uIF9vKHQpe3JldHVybiB0W3RvXXx8bnVsbH1mdW5jdGlvbiBDbyh0KXtyZXR1cm4gdFtlb118fG51bGx9ZnVuY3Rpb24gTW8odCxlKXtjb25zdCBuPXRbbm9dfHxudWxsO2lmKCFuJiYhMD09PWUpdGhyb3cgbmV3IEVycm9yKGBUeXBlICR7S2UodCl9IGRvZXMgbm90IGhhdmUgJ8m1bW9kJyBwcm9wZXJ0eS5gKTtyZXR1cm4gbn0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IHZvPTIwLHhvPVsiUm9vdCIsIkNvbXBvbmVudCIsIkVtYmVkZGVkIl0sT289MTA7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBQbyh0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KSYmIm9iamVjdCI9PXR5cGVvZiB0WzFdfWZ1bmN0aW9uIHdvKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpJiYhMD09PXRbMV19ZnVuY3Rpb24ga28odCl7cmV0dXJuIDAhPSg4JnQuZmxhZ3MpfWZ1bmN0aW9uIFNvKHQpe3JldHVybiAyPT0oMiZ0LmZsYWdzKX1mdW5jdGlvbiBEbyh0KXtyZXR1cm4gMT09KDEmdC5mbGFncyl9ZnVuY3Rpb24gUm8odCl7cmV0dXJuIG51bGwhPT10LnRlbXBsYXRlfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gRW8odCxlKXtBbyh0LGVbMV0pfWZ1bmN0aW9uIEFvKHQsZSl7VG8odCksdC5oYXNPd25Qcm9wZXJ0eSgidFZpZXdfIikmJmduKHQudFZpZXdfLGUsIlRoaXMgVE5vZGUgZG9lcyBub3QgYmVsb25nIHRvIHRoaXMgVFZpZXcuIil9ZnVuY3Rpb24gVG8odCl7eG4odCwiVE5vZGUgbXVzdCBiZSBkZWZpbmVkIiksdCYmIm9iamVjdCI9PXR5cGVvZiB0JiZ0Lmhhc093blByb3BlcnR5KCJkaXJlY3RpdmVTdHlsaW5nTGFzdCIpfHxPbigiTm90IG9mIHR5cGUgVE5vZGUsIGdvdDogIit0KX1mdW5jdGlvbiBObyh0KXt4bih0LCJFeHBlY3RlZCBUSWN1IHRvIGJlIGRlZmluZWQiKSwibnVtYmVyIiE9dHlwZW9mIHQuY3VycmVudENhc2VMVmlld0luZGV4JiZPbigiT2JqZWN0IGlzIG5vdCBvZiBUSWN1IHR5cGUuIil9ZnVuY3Rpb24gem8odCl7eG4odCwiY3VycmVudFROb2RlIHNob3VsZCBleGlzdCEiKSx4bih0LnBhcmVudCwiY3VycmVudFROb2RlIHNob3VsZCBoYXZlIGEgcGFyZW50Iil9ZnVuY3Rpb24gSW8odCl7eG4odCwiTENvbnRhaW5lciBtdXN0IGJlIGRlZmluZWQiKSxnbih3byh0KSwhMCwiRXhwZWN0aW5nIExDb250YWluZXIiKX1mdW5jdGlvbiBIbyh0KXt0JiZnbihQbyh0KSwhMCwiRXhwZWN0aW5nIExWaWV3IG9yIHVuZGVmaW5lZCBvciBudWxsIil9ZnVuY3Rpb24gRm8odCl7eG4odCwiTFZpZXcgbXVzdCBiZSBkZWZpbmVkIiksZ24oUG8odCksITAsIkV4cGVjdGluZyBMVmlldyIpfWZ1bmN0aW9uIExvKHQsZSl7Z24odC5maXJzdENyZWF0ZVBhc3MsITAsZXx8IlNob3VsZCBvbmx5IGJlIGNhbGxlZCBpbiBmaXJzdCBjcmVhdGUgcGFzcy4iKX1mdW5jdGlvbiBCbyh0LGUpe2duKHQuZmlyc3RVcGRhdGVQYXNzLCEwLGV8fCJTaG91bGQgb25seSBiZSBjYWxsZWQgaW4gZmlyc3QgdXBkYXRlIHBhc3MuIil9ZnVuY3Rpb24gVm8odCxlKXtqbyh0WzFdLmV4cGFuZG9TdGFydEluZGV4LHQubGVuZ3RoLGUpfWZ1bmN0aW9uIGpvKHQsZSxuKXt0PD1uJiZuPGV8fE9uKGBJbmRleCBvdXQgb2YgcmFuZ2UgKGV4cGVjdGluZyAke3R9IDw9ICR7bn0gPCAke2V9KWApfWZ1bmN0aW9uIFVvKHQsZSl7eG4odCxlfHwiQ29tcG9uZW50IHZpZXdzIHNob3VsZCBhbHdheXMgaGF2ZSBhIHBhcmVudCB2aWV3IChjb21wb25lbnQncyBob3N0IHZpZXcpIil9ZnVuY3Rpb24gV28odCxlKXtWbyh0LGUpLFZvKHQsZSs4KSxwbih0W2UrMF0sImluamVjdG9ySW5kZXggc2hvdWxkIHBvaW50IHRvIGEgYmxvb20gZmlsdGVyIikscG4odFtlKzFdLCJpbmplY3RvckluZGV4IHNob3VsZCBwb2ludCB0byBhIGJsb29tIGZpbHRlciIpLHBuKHRbZSsyXSwiaW5qZWN0b3JJbmRleCBzaG91bGQgcG9pbnQgdG8gYSBibG9vbSBmaWx0ZXIiKSxwbih0W2UrM10sImluamVjdG9ySW5kZXggc2hvdWxkIHBvaW50IHRvIGEgYmxvb20gZmlsdGVyIikscG4odFtlKzRdLCJpbmplY3RvckluZGV4IHNob3VsZCBwb2ludCB0byBhIGJsb29tIGZpbHRlciIpLHBuKHRbZSs1XSwiaW5qZWN0b3JJbmRleCBzaG91bGQgcG9pbnQgdG8gYSBibG9vbSBmaWx0ZXIiKSxwbih0W2UrNl0sImluamVjdG9ySW5kZXggc2hvdWxkIHBvaW50IHRvIGEgYmxvb20gZmlsdGVyIikscG4odFtlKzddLCJpbmplY3RvckluZGV4IHNob3VsZCBwb2ludCB0byBhIGJsb29tIGZpbHRlciIpLHBuKHRbZSs4XSwiaW5qZWN0b3JJbmRleCBzaG91bGQgcG9pbnQgdG8gcGFyZW50IGluamVjdG9yIil9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIEdvKHQsZSl7Y29uc3Qgbj10Lmhhc093blByb3BlcnR5KGlvKTtpZighbiYmITA9PT1lJiZuZ0Rldk1vZGUpdGhyb3cgbmV3IEVycm9yKGBUeXBlICR7S2UodCl9IGRvZXMgbm90IGhhdmUgJ8m1ZmFjJyBwcm9wZXJ0eS5gKTtyZXR1cm4gbj90W2lvXTpudWxsfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBZb3tjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5wcmV2aW91c1ZhbHVlPXQsdGhpcy5jdXJyZW50VmFsdWU9ZSx0aGlzLmZpcnN0Q2hhbmdlPW59aXNGaXJzdENoYW5nZSgpe3JldHVybiB0aGlzLmZpcnN0Q2hhbmdlfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gcW8oKXtyZXR1cm4gWm99ZnVuY3Rpb24gWm8odCl7cmV0dXJuIHQudHlwZS5wcm90b3R5cGUubmdPbkNoYW5nZXMmJih0LnNldElucHV0PUtvKSxYb31mdW5jdGlvbiBYbygpe2NvbnN0IHQ9Sm8odGhpcyksZT1udWxsPT10P3ZvaWQgMDp0LmN1cnJlbnQ7aWYoZSl7Y29uc3Qgbj10LnByZXZpb3VzO2lmKG49PT1Kbil0LnByZXZpb3VzPWU7ZWxzZSBmb3IobGV0IHQgaW4gZSluW3RdPWVbdF07dC5jdXJyZW50PW51bGwsdGhpcy5uZ09uQ2hhbmdlcyhlKX19ZnVuY3Rpb24gS28odCxlLG4sbyl7Y29uc3QgaT1Kbyh0KXx8KGZ1bmN0aW9uIGEodCxlKXtyZXR1cm4gdC5fX25nU2ltcGxlQ2hhbmdlc19fPWV9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLykodCx7cHJldmlvdXM6Sm4sY3VycmVudDpudWxsfSkscj1pLmN1cnJlbnR8fChpLmN1cnJlbnQ9e30pLHM9aS5wcmV2aW91cyxsPXRoaXMuZGVjbGFyZWRJbnB1dHNbbl0sYz1zW2xdO3JbbF09bmV3IFlvKGMmJmMuY3VycmVudFZhbHVlLGUscz09PUpuKSx0W29dPWV9cW8ubmdJbmhlcml0PSEwO2Z1bmN0aW9uIEpvKHQpe3JldHVybiB0Ll9fbmdTaW1wbGVDaGFuZ2VzX198fG51bGx9bGV0IFFvPW51bGw7Y29uc3QgJG89dD0+e1FvPXR9LHRpPWZ1bmN0aW9uKHQsZSxuKXtudWxsIT1RbyYmUW8odCxlLG4pfSxlaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLG5pPSJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGhNTC8iOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KbGV0IG9pO2Z1bmN0aW9uIGlpKCl7cmV0dXJuIHZvaWQgMCE9PW9pP29pOiJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQ6dm9pZCAwfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi92YXIgYWk7ZnVuY3Rpb24gcmkodCl7cmV0dXJuISF0Lmxpc3Rlbn0hKGZ1bmN0aW9uKHQpe3RbdC5JbXBvcnRhbnQ9MV09IkltcG9ydGFudCIsdFt0LkRhc2hDYXNlPTJdPSJEYXNoQ2FzZSJ9KShhaXx8KGFpPXt9KSk7Y29uc3Qgc2k9e2NyZWF0ZVJlbmRlcmVyOih0LGUpPT5paSgpfTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIGxpKHQpe2Zvcig7QXJyYXkuaXNBcnJheSh0KTspdD10WzBdO3JldHVybiB0fWZ1bmN0aW9uIGNpKHQsZSl7cmV0dXJuIG5nRGV2TW9kZSYmd24oZSx0KSxuZ0Rldk1vZGUmJnZuKHQsdm8sIkV4cGVjdGVkIHRvIGJlIHBhc3QgSEVBREVSX09GRlNFVCIpLGxpKGVbdF0pfWZ1bmN0aW9uIGRpKHQsZSl7bmdEZXZNb2RlJiZFbyh0LGUpLG5nRGV2TW9kZSYmd24oZSx0LmluZGV4KTtjb25zdCBuPWxpKGVbdC5pbmRleF0pO3JldHVybiBuZ0Rldk1vZGUmJiFyaShlWzExXSkmJlBuKG4pLG59ZnVuY3Rpb24gcGkodCxlKXtuZ0Rldk1vZGUmJk1uKGUsLTEsIndyb25nIGluZGV4IGZvciBUTm9kZSIpLG5nRGV2TW9kZSYmX24oZSx0LmRhdGEubGVuZ3RoLCJ3cm9uZyBpbmRleCBmb3IgVE5vZGUiKTtjb25zdCBuPXQuZGF0YVtlXTtyZXR1cm4gbmdEZXZNb2RlJiZudWxsIT09biYmVG8obiksbn1mdW5jdGlvbiBtaSh0LGUpe3JldHVybiBuZ0Rldk1vZGUmJnduKHQsZSksdFtlXX1mdW5jdGlvbiBmaSh0LGUpe25nRGV2TW9kZSYmd24oZSx0KTtjb25zdCBuPWVbdF07cmV0dXJuIFBvKG4pP246blswXX1mdW5jdGlvbiB1aSh0KXtyZXR1cm4gND09KDQmdFsyXSl9ZnVuY3Rpb24gZ2kodCl7cmV0dXJuIDEyOD09KDEyOCZ0WzJdKX1mdW5jdGlvbiBoaSh0LGUpe3JldHVybiBudWxsPT1lP251bGw6KG5nRGV2TW9kZSYmd24odCxlKSx0W2VdKX1mdW5jdGlvbiBiaSh0KXt0WzE4XT0wfWZ1bmN0aW9uIHlpKHQsZSl7dFs1XSs9ZTtsZXQgbj10LG89dFszXTtmb3IoO251bGwhPT1vJiYoMT09PWUmJjE9PT1uWzVdfHwtMT09PWUmJjA9PT1uWzVdKTspb1s1XSs9ZSxuPW8sbz1vWzNdfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBfaT17bEZyYW1lOlhpKG51bGwpLGJpbmRpbmdzRW5hYmxlZDohMCxpc0luQ2hlY2tOb0NoYW5nZXNNb2RlOiExfTtmdW5jdGlvbiBDaSgpe3JldHVybiBfaS5iaW5kaW5nc0VuYWJsZWR9ZnVuY3Rpb24gTWkoKXtfaS5iaW5kaW5nc0VuYWJsZWQ9ITB9ZnVuY3Rpb24gdmkoKXtfaS5iaW5kaW5nc0VuYWJsZWQ9ITF9ZnVuY3Rpb24geGkoKXtyZXR1cm4gX2kubEZyYW1lLmxWaWV3fWZ1bmN0aW9uIE9pKCl7cmV0dXJuIF9pLmxGcmFtZS50Vmlld31mdW5jdGlvbiBQaSh0KXtyZXR1cm4gX2kubEZyYW1lLmNvbnRleHRMVmlldz10LHRbOF19ZnVuY3Rpb24gd2koKXtsZXQgdD1raSgpO2Zvcig7bnVsbCE9PXQmJjY0PT09dC50eXBlOyl0PXQucGFyZW50O3JldHVybiB0fWZ1bmN0aW9uIGtpKCl7cmV0dXJuIF9pLmxGcmFtZS5jdXJyZW50VE5vZGV9ZnVuY3Rpb24gU2koKXtjb25zdCB0PV9pLmxGcmFtZSxlPXQuY3VycmVudFROb2RlO3JldHVybiB0LmlzUGFyZW50P2U6ZS5wYXJlbnR9ZnVuY3Rpb24gRGkodCxlKXtuZ0Rldk1vZGUmJnQmJkFvKHQsX2kubEZyYW1lLnRWaWV3KTtjb25zdCBuPV9pLmxGcmFtZTtuLmN1cnJlbnRUTm9kZT10LG4uaXNQYXJlbnQ9ZX1mdW5jdGlvbiBSaSgpe3JldHVybiBfaS5sRnJhbWUuaXNQYXJlbnR9ZnVuY3Rpb24gRWkoKXtfaS5sRnJhbWUuaXNQYXJlbnQ9ITF9ZnVuY3Rpb24gQWkoKXtyZXR1cm4gX2kuaXNJbkNoZWNrTm9DaGFuZ2VzTW9kZX1mdW5jdGlvbiBUaSh0KXtfaS5pc0luQ2hlY2tOb0NoYW5nZXNNb2RlPXR9ZnVuY3Rpb24gTmkoKXtjb25zdCB0PV9pLmxGcmFtZTtsZXQgZT10LmJpbmRpbmdSb290SW5kZXg7cmV0dXJuLTE9PT1lJiYoZT10LmJpbmRpbmdSb290SW5kZXg9dC50Vmlldy5iaW5kaW5nU3RhcnRJbmRleCksZX1mdW5jdGlvbiB6aSgpe3JldHVybiBfaS5sRnJhbWUuYmluZGluZ0luZGV4fWZ1bmN0aW9uIElpKHQpe3JldHVybiBfaS5sRnJhbWUuYmluZGluZ0luZGV4PXR9ZnVuY3Rpb24gSGkoKXtyZXR1cm4gX2kubEZyYW1lLmJpbmRpbmdJbmRleCsrfWZ1bmN0aW9uIEZpKHQpe2NvbnN0IGU9X2kubEZyYW1lLG49ZS5iaW5kaW5nSW5kZXg7cmV0dXJuIGUuYmluZGluZ0luZGV4PWUuYmluZGluZ0luZGV4K3Qsbn1mdW5jdGlvbiBMaSh0KXtfaS5sRnJhbWUuaW5JMThuPXR9ZnVuY3Rpb24gQmkodCxlKXtjb25zdCBuPV9pLmxGcmFtZTtuLmJpbmRpbmdJbmRleD1uLmJpbmRpbmdSb290SW5kZXg9dCxWaShlKX1mdW5jdGlvbiBWaSh0KXtfaS5sRnJhbWUuY3VycmVudERpcmVjdGl2ZUluZGV4PXR9ZnVuY3Rpb24gamkodCl7Y29uc3QgZT1faS5sRnJhbWUuY3VycmVudERpcmVjdGl2ZUluZGV4O3JldHVybi0xPT09ZT9udWxsOnRbZV19ZnVuY3Rpb24gVWkoKXtyZXR1cm4gX2kubEZyYW1lLmN1cnJlbnRRdWVyeUluZGV4fWZ1bmN0aW9uIFdpKHQpe19pLmxGcmFtZS5jdXJyZW50UXVlcnlJbmRleD10fWZ1bmN0aW9uIEdpKHQpe2NvbnN0IGU9dFsxXTtyZXR1cm4gMj09PWUudHlwZT8obmdEZXZNb2RlJiZ4bihlLmRlY2xUTm9kZSwiRW1iZWRkZWQgVE5vZGVzIHNob3VsZCBoYXZlIGRlY2xhcmF0aW9uIHBhcmVudHMuIiksZS5kZWNsVE5vZGUpOjE9PT1lLnR5cGU/dFs2XTpudWxsfWZ1bmN0aW9uIFlpKHQsZSxuKXtpZihuZ0Rldk1vZGUmJkhvKHQpLG4mSG4uU2tpcFNlbGYpe25nRGV2TW9kZSYmQW8oZSx0WzFdKTtsZXQgbz1lLGk9dDtmb3IoOyEobmdEZXZNb2RlJiZ4bihvLCJQYXJlbnQgVE5vZGUgc2hvdWxkIGJlIGRlZmluZWQiKSxvPW8ucGFyZW50LG51bGwhPT1vfHxuJkhuLkhvc3R8fChvPUdpKGkpLG51bGw9PT1vKXx8KG5nRGV2TW9kZSYmeG4oaSwiUGFyZW50IExWaWV3IHNob3VsZCBiZSBkZWZpbmVkIiksaT1pWzE1XSwxMCZvLnR5cGUpKTspO2lmKG51bGw9PT1vKXJldHVybiExO2U9byx0PWl9bmdEZXZNb2RlJiZFbyhlLHQpO2NvbnN0IG89X2kubEZyYW1lPVppKCk7cmV0dXJuIG8uY3VycmVudFROb2RlPWUsby5sVmlldz10LCEwfWZ1bmN0aW9uIHFpKHQpe25nRGV2TW9kZSYmaG4odFswXSx0WzFdLCI/Pz8/IiksbmdEZXZNb2RlJiZIbyh0KTtjb25zdCBlPVppKCk7bmdEZXZNb2RlJiYoZ24oZS5pc1BhcmVudCwhMCwiRXhwZWN0ZWQgY2xlYW4gTEZyYW1lIiksZ24oZS5sVmlldyxudWxsLCJFeHBlY3RlZCBjbGVhbiBMRnJhbWUiKSxnbihlLnRWaWV3LG51bGwsIkV4cGVjdGVkIGNsZWFuIExGcmFtZSIpLGduKGUuc2VsZWN0ZWRJbmRleCwtMSwiRXhwZWN0ZWQgY2xlYW4gTEZyYW1lIiksZ24oZS5lbGVtZW50RGVwdGhDb3VudCwwLCJFeHBlY3RlZCBjbGVhbiBMRnJhbWUiKSxnbihlLmN1cnJlbnREaXJlY3RpdmVJbmRleCwtMSwiRXhwZWN0ZWQgY2xlYW4gTEZyYW1lIiksZ24oZS5jdXJyZW50TmFtZXNwYWNlLG51bGwsIkV4cGVjdGVkIGNsZWFuIExGcmFtZSIpLGduKGUuYmluZGluZ1Jvb3RJbmRleCwtMSwiRXhwZWN0ZWQgY2xlYW4gTEZyYW1lIiksZ24oZS5jdXJyZW50UXVlcnlJbmRleCwwLCJFeHBlY3RlZCBjbGVhbiBMRnJhbWUiKSk7Y29uc3Qgbj10WzFdO19pLmxGcmFtZT1lLG5nRGV2TW9kZSYmbi5maXJzdENoaWxkJiZBbyhuLmZpcnN0Q2hpbGQsbiksZS5jdXJyZW50VE5vZGU9bi5maXJzdENoaWxkLGUubFZpZXc9dCxlLnRWaWV3PW4sZS5jb250ZXh0TFZpZXc9dCxlLmJpbmRpbmdJbmRleD1uLmJpbmRpbmdTdGFydEluZGV4LGUuaW5JMThuPSExfWZ1bmN0aW9uIFppKCl7Y29uc3QgdD1faS5sRnJhbWUsZT1udWxsPT09dD9udWxsOnQuY2hpbGQ7cmV0dXJuIG51bGw9PT1lP1hpKHQpOmV9ZnVuY3Rpb24gWGkodCl7Y29uc3QgZT17Y3VycmVudFROb2RlOm51bGwsaXNQYXJlbnQ6ITAsbFZpZXc6bnVsbCx0VmlldzpudWxsLHNlbGVjdGVkSW5kZXg6LTEsY29udGV4dExWaWV3Om51bGwsZWxlbWVudERlcHRoQ291bnQ6MCxjdXJyZW50TmFtZXNwYWNlOm51bGwsY3VycmVudERpcmVjdGl2ZUluZGV4Oi0xLGJpbmRpbmdSb290SW5kZXg6LTEsYmluZGluZ0luZGV4Oi0xLGN1cnJlbnRRdWVyeUluZGV4OjAscGFyZW50OnQsY2hpbGQ6bnVsbCxpbkkxOG46ITF9O3JldHVybiBudWxsIT09dCYmKHQuY2hpbGQ9ZSksZX1mdW5jdGlvbiBLaSgpe2NvbnN0IHQ9X2kubEZyYW1lO3JldHVybiBfaS5sRnJhbWU9dC5wYXJlbnQsdC5jdXJyZW50VE5vZGU9bnVsbCx0LmxWaWV3PW51bGwsdH1jb25zdCBKaT1LaTtmdW5jdGlvbiBRaSgpe2NvbnN0IHQ9S2koKTt0LmlzUGFyZW50PSEwLHQudFZpZXc9bnVsbCx0LnNlbGVjdGVkSW5kZXg9LTEsdC5jb250ZXh0TFZpZXc9bnVsbCx0LmVsZW1lbnREZXB0aENvdW50PTAsdC5jdXJyZW50RGlyZWN0aXZlSW5kZXg9LTEsdC5jdXJyZW50TmFtZXNwYWNlPW51bGwsdC5iaW5kaW5nUm9vdEluZGV4PS0xLHQuYmluZGluZ0luZGV4PS0xLHQuY3VycmVudFF1ZXJ5SW5kZXg9MH1mdW5jdGlvbiAkaSh0KXtyZXR1cm4oX2kubEZyYW1lLmNvbnRleHRMVmlldz0oZnVuY3Rpb24gZSh0LG4pe2Zvcig7dD4wOyluZ0Rldk1vZGUmJnhuKG5bMTVdLCJEZWNsYXJhdGlvbiB2aWV3IHNob3VsZCBiZSBkZWZpbmVkIGlmIG5lc3RpbmcgbGV2ZWwgaXMgZ3JlYXRlciB0aGFuIDAuIiksbj1uWzE1XSx0LS07cmV0dXJuIG59KSh0LF9pLmxGcmFtZS5jb250ZXh0TFZpZXcpKVs4XX1mdW5jdGlvbiB0YSgpe3JldHVybiBfaS5sRnJhbWUuc2VsZWN0ZWRJbmRleH1mdW5jdGlvbiBlYSh0KXtuZ0Rldk1vZGUmJi0xIT09dCYmdm4odCx2bywiSW5kZXggbXVzdCBiZSBwYXN0IEhFQURFUl9PRkZTRVQgKG9yIC0xKS4iKSxuZ0Rldk1vZGUmJl9uKHQsX2kubEZyYW1lLmxWaWV3Lmxlbmd0aCwiQ2FuJ3Qgc2V0IGluZGV4IHBhc3NlZCBlbmQgb2YgTFZpZXciKSxfaS5sRnJhbWUuc2VsZWN0ZWRJbmRleD10fWZ1bmN0aW9uIG5hKCl7Y29uc3QgdD1faS5sRnJhbWU7cmV0dXJuIHBpKHQudFZpZXcsdC5zZWxlY3RlZEluZGV4KX1mdW5jdGlvbiBvYSgpe19pLmxGcmFtZS5jdXJyZW50TmFtZXNwYWNlPWVpfWZ1bmN0aW9uIGlhKCl7X2kubEZyYW1lLmN1cnJlbnROYW1lc3BhY2U9bml9ZnVuY3Rpb24gYWEoKXshKGZ1bmN0aW9uIHQoKXtfaS5sRnJhbWUuY3VycmVudE5hbWVzcGFjZT1udWxsfSkoKX1mdW5jdGlvbiByYSh0LGUpe25nRGV2TW9kZSYmTG8odCk7Zm9yKGxldCBuPWUuZGlyZWN0aXZlU3RhcnQsbz1lLmRpcmVjdGl2ZUVuZDtuPG87bisrKXtjb25zdCBlPXQuZGF0YVtuXTtuZ0Rldk1vZGUmJnhuKGUsIkV4cGVjdGluZyBEaXJlY3RpdmVEZWYiKTtjb25zdCBvPWUudHlwZS5wcm90b3R5cGUse25nQWZ0ZXJDb250ZW50SW5pdDppLG5nQWZ0ZXJDb250ZW50Q2hlY2tlZDphLG5nQWZ0ZXJWaWV3SW5pdDpyLG5nQWZ0ZXJWaWV3Q2hlY2tlZDpzLG5nT25EZXN0cm95Omx9PW87aSYmKHQuY29udGVudEhvb2tzfHwodC5jb250ZW50SG9va3M9W10pKS5wdXNoKC1uLGkpLGEmJigodC5jb250ZW50SG9va3N8fCh0LmNvbnRlbnRIb29rcz1bXSkpLnB1c2gobixhKSwodC5jb250ZW50Q2hlY2tIb29rc3x8KHQuY29udGVudENoZWNrSG9va3M9W10pKS5wdXNoKG4sYSkpLHImJih0LnZpZXdIb29rc3x8KHQudmlld0hvb2tzPVtdKSkucHVzaCgtbixyKSxzJiYoKHQudmlld0hvb2tzfHwodC52aWV3SG9va3M9W10pKS5wdXNoKG4scyksKHQudmlld0NoZWNrSG9va3N8fCh0LnZpZXdDaGVja0hvb2tzPVtdKSkucHVzaChuLHMpKSxudWxsIT1sJiYodC5kZXN0cm95SG9va3N8fCh0LmRlc3Ryb3lIb29rcz1bXSkpLnB1c2gobixsKX19ZnVuY3Rpb24gc2EodCxlLG4pe2RhKHQsZSwzLG4pfWZ1bmN0aW9uIGxhKHQsZSxuLG8pe25nRGV2TW9kZSYmaG4obiwzLCJJbml0IHByZS1vcmRlciBob29rcyBzaG91bGQgbm90IGJlIGNhbGxlZCBtb3JlIHRoYW4gb25jZSIpLCgzJnRbMl0pPT09biYmZGEodCxlLG4sbyl9ZnVuY3Rpb24gY2EodCxlKXtuZ0Rldk1vZGUmJmhuKGUsMywiSW5pdCBob29rcyBwaGFzZSBzaG91bGQgbm90IGJlIGluY3JlbWVudGVkIGFmdGVyIGFsbCBpbml0IGhvb2tzIGhhdmUgYmVlbiBydW4uIik7bGV0IG49dFsyXTsoMyZuKT09PWUmJihuJj0yMDQ3LG4rPTEsdFsyXT1uKX1mdW5jdGlvbiBkYSh0LGUsbixvKXtuZ0Rldk1vZGUmJmduKEFpKCksITEsIkhvb2tzIHNob3VsZCBuZXZlciBiZSBydW4gd2hlbiBpbiBjaGVjayBubyBjaGFuZ2VzIG1vZGUuIik7Y29uc3QgaT1udWxsIT1vP286LTEsYT1lLmxlbmd0aC0xO2xldCByPTA7Zm9yKGxldCBzPXZvaWQgMCE9PW8/NjU1MzUmdFsxOF06MDtzPGE7cysrKXtpZigibnVtYmVyIj09dHlwZW9mIGVbcysxXSl7aWYocj1lW3NdLG51bGwhPW8mJnI+PW8pYnJlYWt9ZWxzZXtlW3NdPDAmJih0WzE4XSs9NjU1MzYpLChyPGl8fC0xPT1pKSYmKHBhKHQsbixlLHMpLHRbMThdPSg0Mjk0OTAxNzYwJnRbMThdKStzKzIpLHMrK319fWZ1bmN0aW9uIHBhKHQsZSxuLG8pe2NvbnN0IGk9bltvXTwwLGE9bltvKzFdLHI9dFtpPy1uW29dOm5bb11dO2lmKGkpe2lmKHRbMl0+PjExPHRbMThdPj4xNiYmKDMmdFsyXSk9PT1lKXt0WzJdKz0yMDQ4LHRpKDQscixhKTt0cnl7YS5jYWxsKHIpfWZpbmFsbHl7dGkoNSxyLGEpfX19ZWxzZXt0aSg0LHIsYSk7dHJ5e2EuY2FsbChyKX1maW5hbGx5e3RpKDUscixhKX19fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBtYT0tMTtjbGFzcyBmYXtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5mYWN0b3J5PXQsdGhpcy5yZXNvbHZpbmc9ITEsbmdEZXZNb2RlJiZ4bih0LCJGYWN0b3J5IG5vdCBzcGVjaWZpZWQiKSxuZ0Rldk1vZGUmJmduKHR5cGVvZiB0LCJmdW5jdGlvbiIsIkV4cGVjdGVkIGZhY3RvcnkgZnVuY3Rpb24uIiksdGhpcy5jYW5TZWVWaWV3UHJvdmlkZXJzPWUsdGhpcy5pbmplY3RJbXBsPW59fWZ1bmN0aW9uIHVhKHQpe2xldCBlPSIiO3JldHVybiAxJnQmJihlKz0ifFRleHQiKSwyJnQmJihlKz0ifEVsZW1lbnQiKSw0JnQmJihlKz0ifENvbnRhaW5lciIpLDgmdCYmKGUrPSJ8RWxlbWVudENvbnRhaW5lciIpLDE2JnQmJihlKz0ifFByb2plY3Rpb24iKSwzMiZ0JiYoZSs9InxJY3VDb250YWluZXIiKSw2NCZ0JiYoZSs9InxQbGFjZWhvbGRlciIpLGUubGVuZ3RoPjA/ZS5zdWJzdHJpbmcoMSk6ZX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIGdhKHQsZSxuKXt4bih0LCJzaG91bGQgYmUgY2FsbGVkIHdpdGggYSBUTm9kZSIpLDA9PSh0LnR5cGUmZSkmJk9uKG58fGBFeHBlY3RlZCBbJHt1YShlKX1dIGJ1dCBnb3QgJHt1YSh0LnR5cGUpfS5gKX1mdW5jdGlvbiBoYSh0LGUsbil7Y29uc3Qgbz1yaSh0KTtsZXQgaT0wO2Zvcig7aTxuLmxlbmd0aDspe2NvbnN0IGE9bltpXTtpZigibnVtYmVyIj09dHlwZW9mIGEpe2lmKDAhPT1hKWJyZWFrO2krKztjb25zdCByPW5baSsrXSxzPW5baSsrXSxsPW5baSsrXTtuZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlclNldEF0dHJpYnV0ZSsrLG8/dC5zZXRBdHRyaWJ1dGUoZSxzLGwscik6ZS5zZXRBdHRyaWJ1dGVOUyhyLHMsbCl9ZWxzZXtjb25zdCByPWEscz1uWysraV07bmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJTZXRBdHRyaWJ1dGUrKyx5YShyKT9vJiZ0LnNldFByb3BlcnR5KGUscixzKTpvP3Quc2V0QXR0cmlidXRlKGUscixzKTplLnNldEF0dHJpYnV0ZShyLHMpLGkrK319cmV0dXJuIGl9ZnVuY3Rpb24gYmEodCl7cmV0dXJuIDM9PT10fHw0PT09dHx8Nj09PXR9ZnVuY3Rpb24geWEodCl7cmV0dXJuIDY0PT09dC5jaGFyQ29kZUF0KDApfWZ1bmN0aW9uIF9hKHQsZSl7aWYobnVsbD09PWV8fDA9PT1lLmxlbmd0aCk7ZWxzZSBpZihudWxsPT09dHx8MD09PXQubGVuZ3RoKXQ9ZS5zbGljZSgpO2Vsc2V7bGV0IG49LTE7Zm9yKGxldCBvPTA7bzxlLmxlbmd0aDtvKyspe2NvbnN0IGk9ZVtvXTsibnVtYmVyIj09dHlwZW9mIGk/bj1pOjA9PT1ufHxDYSh0LG4saSxudWxsLC0xPT09bnx8Mj09PW4/ZVsrK29dOm51bGwpfX1yZXR1cm4gdH1mdW5jdGlvbiBDYSh0LGUsbixvLGkpe2xldCBhPTAscj10Lmxlbmd0aDtpZigtMT09PWUpcj0tMTtlbHNlIGZvcig7YTx0Lmxlbmd0aDspe2NvbnN0IG49dFthKytdO2lmKCJudW1iZXIiPT10eXBlb2Ygbil7aWYobj09PWUpe3I9LTE7YnJlYWt9aWYobj5lKXtyPWEtMTticmVha319fWZvcig7YTx0Lmxlbmd0aDspe2NvbnN0IGU9dFthXTtpZigibnVtYmVyIj09dHlwZW9mIGUpYnJlYWs7aWYoZT09PW4pe2lmKG51bGw9PT1vKXJldHVybiB2b2lkKG51bGwhPT1pJiYodFthKzFdPWkpKTtpZihvPT09dFthKzFdKXJldHVybiB2b2lkKHRbYSsyXT1pKX1hKyssbnVsbCE9PW8mJmErKyxudWxsIT09aSYmYSsrfS0xIT09ciYmKHQuc3BsaWNlKHIsMCxlKSxhPXIrMSksdC5zcGxpY2UoYSsrLDAsbiksbnVsbCE9PW8mJnQuc3BsaWNlKGErKywwLG8pLG51bGwhPT1pJiZ0LnNwbGljZShhKyssMCxpKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gTWEodCl7cmV0dXJuIHQhPT1tYX1mdW5jdGlvbiB2YSh0KXtuZ0Rldk1vZGUmJnBuKHQsIk51bWJlciBleHBlY3RlZCIpLG5nRGV2TW9kZSYmaG4odCwtMSwiTm90IGEgdmFsaWQgc3RhdGUuIik7cmV0dXJuIG5nRGV2TW9kZSYmTW4oMzI3NjcmdCx2bywiUGFyZW50IGluamVjdG9yIG11c3QgYmUgcG9pbnRpbmcgcGFzdCBIRUFERVJfT0ZGU0VULiIpLDMyNzY3JnR9ZnVuY3Rpb24geGEodCxlKXtsZXQgbj0oZnVuY3Rpb24gbyh0KXtyZXR1cm4gdD4+MTZ9KSh0KSxpPWU7Zm9yKDtuPjA7KWk9aVsxNV0sbi0tO3JldHVybiBpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9sZXQgT2E9ITA7ZnVuY3Rpb24gUGEodCl7Y29uc3QgZT1PYTtyZXR1cm4gT2E9dCxlfWxldCB3YT0wO2Z1bmN0aW9uIGthKHQsZSl7Y29uc3Qgbj1EYSh0LGUpO2lmKC0xIT09bilyZXR1cm4gbjtjb25zdCBvPWVbMV07by5maXJzdENyZWF0ZVBhc3MmJih0LmluamVjdG9ySW5kZXg9ZS5sZW5ndGgsU2Eoby5kYXRhLHQpLFNhKGUsbnVsbCksU2Eoby5ibHVlcHJpbnQsbnVsbCkpO2NvbnN0IGk9UmEodCxlKSxhPXQuaW5qZWN0b3JJbmRleDtpZihNYShpKSl7Y29uc3QgdD12YShpKSxuPXhhKGksZSksbz1uWzFdLmRhdGE7Zm9yKGxldCBpPTA7aTw4O2krKyllW2EraV09blt0K2ldfG9bdCtpXX1yZXR1cm4gZVthKzhdPWksYX1mdW5jdGlvbiBTYSh0LGUpe3QucHVzaCgwLDAsMCwwLDAsMCwwLDAsZSl9ZnVuY3Rpb24gRGEodCxlKXtyZXR1cm4tMT09PXQuaW5qZWN0b3JJbmRleHx8dC5wYXJlbnQmJnQucGFyZW50LmluamVjdG9ySW5kZXg9PT10LmluamVjdG9ySW5kZXh8fG51bGw9PT1lW3QuaW5qZWN0b3JJbmRleCs4XT8tMToobmdEZXZNb2RlJiZ3bihlLHQuaW5qZWN0b3JJbmRleCksdC5pbmplY3RvckluZGV4KX1mdW5jdGlvbiBSYSh0LGUpe2lmKHQucGFyZW50JiYtMSE9PXQucGFyZW50LmluamVjdG9ySW5kZXgpcmV0dXJuIHQucGFyZW50LmluamVjdG9ySW5kZXg7bGV0IG49MCxvPW51bGwsaT1lO2Zvcig7bnVsbCE9PWk7KXtjb25zdCB0PWlbMV0sZT10LnR5cGU7aWYoMj09PWU/KG5nRGV2TW9kZSYmeG4odC5kZWNsVE5vZGUsIkVtYmVkZGVkIFROb2RlcyBzaG91bGQgaGF2ZSBkZWNsYXJhdGlvbiBwYXJlbnRzLiIpLG89dC5kZWNsVE5vZGUpOjE9PT1lP289aVs2XToobmdEZXZNb2RlJiZnbih0LnR5cGUsMCwiUm9vdCB0eXBlIGV4cGVjdGVkIiksbz1udWxsKSxudWxsPT09bylyZXR1cm4gbWE7aWYobmdEZXZNb2RlJiZvJiZFbyhvLGlbMTVdKSxuKyssaT1pWzE1XSwtMSE9PW8uaW5qZWN0b3JJbmRleClyZXR1cm4gby5pbmplY3RvckluZGV4fG48PDE2fXJldHVybiBtYX1mdW5jdGlvbiBFYSh0LGUsbil7IShmdW5jdGlvbiBvKHQsZSxuKXtsZXQgbztuZ0Rldk1vZGUmJmduKGUuZmlyc3RDcmVhdGVQYXNzLCEwLCJleHBlY3RlZCBmaXJzdENyZWF0ZVBhc3MgdG8gYmUgdHJ1ZSIpLCJzdHJpbmciPT10eXBlb2Ygbj9vPW4uY2hhckNvZGVBdCgwKXx8MDpuLmhhc093blByb3BlcnR5KGFvKSYmKG89blthb10pLG51bGw9PW8mJihvPW5bYW9dPXdhKyspO2NvbnN0IGk9MjU1Jm87ZS5kYXRhW3QrKGk+PjUpXXw9MTw8aX0pKHQsZSxuKX1mdW5jdGlvbiBBYSh0LGUsbil7aWYobiZIbi5PcHRpb25hbClyZXR1cm4gdDtkbihlLCJOb2RlSW5qZWN0b3IiKX1mdW5jdGlvbiBUYSh0LGUsbixvKXtpZihuJkhuLk9wdGlvbmFsJiZ2b2lkIDA9PT1vJiYobz1udWxsKSwwPT0obiYoSG4uU2VsZnxIbi5Ib3N0KSkpe2NvbnN0IGk9dFs5XSxhPUxuKHZvaWQgMCk7dHJ5e3JldHVybiBpP2kuZ2V0KGUsbyxuJkhuLk9wdGlvbmFsKTpCbihlLG8sbiZIbi5PcHRpb25hbCl9ZmluYWxseXtMbihhKX19cmV0dXJuIEFhKG8sZSxuKX1mdW5jdGlvbiBOYSh0LGUsbixvPUhuLkRlZmF1bHQsaSl7aWYobnVsbCE9PXQpe2NvbnN0IGE9KGZ1bmN0aW9uIGEodCl7aWYobmdEZXZNb2RlJiZ4bih0LCJ0b2tlbiBtdXN0IGJlIGRlZmluZWQiKSwic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIHQuY2hhckNvZGVBdCgwKXx8MDtjb25zdCBlPXQuaGFzT3duUHJvcGVydHkoYW8pP3RbYW9dOnZvaWQgMDtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU/ZT49MD8yNTUmZToobmdEZXZNb2RlJiZnbihlLC0xLCJFeHBlY3RpbmcgdG8gZ2V0IFNwZWNpYWwgSW5qZWN0b3IgSWQiKSxJYSk6ZX0pKG4pO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhKXtpZighWWkoZSx0LG8pKXJldHVybiBvJkhuLkhvc3Q/QWEoaSxuLG8pOlRhKGUsbixvLGkpO3RyeXtjb25zdCB0PWEobyk7aWYobnVsbCE9dHx8byZIbi5PcHRpb25hbClyZXR1cm4gdDtkbihuKX1maW5hbGx5e0ppKCl9fWVsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBhKXtsZXQgaT1udWxsLHI9RGEodCxlKSxzPW1hLGw9byZIbi5Ib3N0P2VbMTZdWzZdOm51bGw7Zm9yKCgtMT09PXJ8fG8mSG4uU2tpcFNlbGYpJiYocz0tMT09PXI/UmEodCxlKTplW3IrOF0scyE9PW1hJiZWYShvLCExKT8oaT1lWzFdLHI9dmEocyksZT14YShzLGUpKTpyPS0xKTstMSE9PXI7KXtuZ0Rldk1vZGUmJldvKGUscik7Y29uc3QgdD1lWzFdO2lmKG5nRGV2TW9kZSYmRW8odC5kYXRhW3IrOF0sZSksQmEoYSxyLHQuZGF0YSkpe2NvbnN0IHQ9SGEocixlLG4saSxvLGwpO2lmKHQhPT16YSlyZXR1cm4gdH1zPWVbcis4XSxzIT09bWEmJlZhKG8sZVsxXS5kYXRhW3IrOF09PT1sKSYmQmEoYSxyLGUpPyhpPXQscj12YShzKSxlPXhhKHMsZSkpOnI9LTF9fX1yZXR1cm4gVGEoZSxuLG8saSl9Y29uc3QgemE9e307ZnVuY3Rpb24gSWEoKXtyZXR1cm4gbmV3IGphKHdpKCkseGkoKSl9ZnVuY3Rpb24gSGEodCxlLG4sbyxpLGEpe2NvbnN0IHI9ZVsxXSxzPXIuZGF0YVt0KzhdLGw9RmEocyxyLG4sbnVsbD09bz9TbyhzKSYmT2E6byE9ciYmMCE9KDMmcy50eXBlKSxpJkhuLkhvc3QmJmE9PT1zKTtyZXR1cm4gbnVsbCE9PWw/TGEoZSxyLGwscyk6emF9ZnVuY3Rpb24gRmEodCxlLG4sbyxpKXtjb25zdCBhPXQucHJvdmlkZXJJbmRleGVzLHI9ZS5kYXRhLHM9MTA0ODU3NSZhLGw9dC5kaXJlY3RpdmVTdGFydCxjPWE+PjIwLGQ9aT9zK2M6dC5kaXJlY3RpdmVFbmQ7Zm9yKGxldCB0PW8/czpzK2M7dDxkO3QrKyl7Y29uc3QgZT1yW3RdO2lmKHQ8bCYmbj09PWV8fHQ+PWwmJmUudHlwZT09PW4pcmV0dXJuIHR9aWYoaSl7Y29uc3QgdD1yW2xdO2lmKHQmJlJvKHQpJiZ0LnR5cGU9PT1uKXJldHVybiBsfXJldHVybiBudWxsfWZ1bmN0aW9uIExhKHQsZSxuLG8pe2xldCBpPXRbbl07Y29uc3QgYT1lLmRhdGE7aWYoKGZ1bmN0aW9uIHIodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBmYX0pKGkpKXtjb25zdCByPWk7ci5yZXNvbHZpbmcmJmxuKHNuKGFbbl0pKTtjb25zdCBzPVBhKHIuY2FuU2VlVmlld1Byb3ZpZGVycyk7ci5yZXNvbHZpbmc9ITA7Y29uc3QgbD1yLmluamVjdEltcGw/TG4oci5pbmplY3RJbXBsKTpudWxsLGM9WWkodCxvLEhuLkRlZmF1bHQpO25nRGV2TW9kZSYmZ24oYywhMCwiQmVjYXVzZSBmbGFncyBkbyBub3QgY29udGFpbiBgU2tpcFNlbGYnIHdlIGV4cGVjdCB0aGlzIHRvIGFsd2F5cyBzdWNjZWVkLiIpO3RyeXtpPXRbbl09ci5mYWN0b3J5KHZvaWQgMCxhLHQsbyksZS5maXJzdENyZWF0ZVBhc3MmJm4+PW8uZGlyZWN0aXZlU3RhcnQmJihuZ0Rldk1vZGUmJihmdW5jdGlvbiBzKHQpe3ZvaWQgMCE9PXQudHlwZSYmbnVsbCE9dC5zZWxlY3RvcnMmJnZvaWQgMCE9PXQuaW5wdXRzfHxPbigiRXhwZWN0ZWQgYSBEaXJlY3RpdmVEZWYvQ29tcG9uZW50RGVmIGFuZCB0aGlzIG9iamVjdCBkb2VzIG5vdCBzZWVtIHRvIGhhdmUgdGhlIGV4cGVjdGVkIHNoYXBlLiIpfSkoYVtuXSksKAovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gbCh0LGUsbil7bmdEZXZNb2RlJiZMbyhuKTtjb25zdHtuZ09uQ2hhbmdlczpvLG5nT25Jbml0OmksbmdEb0NoZWNrOmF9PWUudHlwZS5wcm90b3R5cGU7aWYobyl7Y29uc3Qgbz1abyhlKTsobi5wcmVPcmRlckhvb2tzfHwobi5wcmVPcmRlckhvb2tzPVtdKSkucHVzaCh0LG8pLChuLnByZU9yZGVyQ2hlY2tIb29rc3x8KG4ucHJlT3JkZXJDaGVja0hvb2tzPVtdKSkucHVzaCh0LG8pfWkmJihuLnByZU9yZGVySG9va3N8fChuLnByZU9yZGVySG9va3M9W10pKS5wdXNoKDAtdCxpKSxhJiYoKG4ucHJlT3JkZXJIb29rc3x8KG4ucHJlT3JkZXJIb29rcz1bXSkpLnB1c2godCxhKSwobi5wcmVPcmRlckNoZWNrSG9va3N8fChuLnByZU9yZGVyQ2hlY2tIb29rcz1bXSkpLnB1c2godCxhKSl9KShuLGFbbl0sZSkpfWZpbmFsbHl7bnVsbCE9PWwmJkxuKGwpLFBhKHMpLHIucmVzb2x2aW5nPSExLEppKCl9fXJldHVybiBpfWZ1bmN0aW9uIEJhKHQsZSxuKXtyZXR1cm4hIShuW2UrKHQ+PjUpXSYxPDx0KX1mdW5jdGlvbiBWYSh0LGUpe3JldHVybiEodCZIbi5TZWxmfHx0JkhuLkhvc3QmJmUpfWNsYXNzIGphe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fdE5vZGU9dCx0aGlzLl9sVmlldz1lfWdldCh0LGUpe3JldHVybiBOYSh0aGlzLl90Tm9kZSx0aGlzLl9sVmlldyx0LHZvaWQgMCxlKX19ZnVuY3Rpb24gVWEodCl7cmV0dXJuIFZuKCgoKT0+e2NvbnN0IGU9dC5wcm90b3R5cGUuY29uc3RydWN0b3Isbj1lW2lvXXx8V2EoZSksbz1PYmplY3QucHJvdG90eXBlO2xldCBpPU9iamVjdC5nZXRQcm90b3R5cGVPZih0LnByb3RvdHlwZSkuY29uc3RydWN0b3I7Zm9yKDtpJiZpIT09bzspe2NvbnN0IHQ9aVtpb118fFdhKGkpO2lmKHQmJnQhPT1uKXJldHVybiB0O2k9T2JqZWN0LmdldFByb3RvdHlwZU9mKGkpfXJldHVybiB0PT5uZXcgdH0pKX1mdW5jdGlvbiBXYSh0KXtyZXR1cm4gZW4odCk/KCk9Pntjb25zdCBlPVdhKHRuKHQpKTtyZXR1cm4gZSYmZSgpfTpHbyh0KX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gR2EodCl7cmV0dXJuKGZ1bmN0aW9uIGUodCxuKXtpZihuZ0Rldk1vZGUmJmdhKHQsMTUpLG5nRGV2TW9kZSYmeG4odCwiZXhwZWN0aW5nIHROb2RlIiksImNsYXNzIj09PW4pcmV0dXJuIHQuY2xhc3NlcztpZigic3R5bGUiPT09bilyZXR1cm4gdC5zdHlsZXM7Y29uc3Qgbz10LmF0dHJzO2lmKG8pe2NvbnN0IHQ9by5sZW5ndGg7bGV0IGU9MDtmb3IoO2U8dDspe2NvbnN0IGk9b1tlXTtpZihiYShpKSlicmVhaztpZigwPT09aSllKz0yO2Vsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBpKWZvcihlKys7ZTx0JiYic3RyaW5nIj09dHlwZW9mIG9bZV07KWUrKztlbHNle2lmKGk9PT1uKXJldHVybiBvW2UrMV07ZSs9Mn19fXJldHVybiBudWxsfSkod2koKSx0KX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgWWE9Il9fYW5ub3RhdGlvbnNfXyIscWE9Il9fcGFyYW1ldGVyc19fIixaYT0iX19wcm9wX19tZXRhZGF0YV9fIjtmdW5jdGlvbiBYYSh0LGUsbixvLGkpe3JldHVybiBWbigoKCk9Pntjb25zdCBhPUthKGUpO2Z1bmN0aW9uIHIoLi4udCl7aWYodGhpcyBpbnN0YW5jZW9mIHIpcmV0dXJuIGEuY2FsbCh0aGlzLC4uLnQpLHRoaXM7Y29uc3QgZT1uZXcgciguLi50KTtyZXR1cm4gZnVuY3Rpb24gbihhKXtpJiZpKGEsLi4udCk7cmV0dXJuKGEuaGFzT3duUHJvcGVydHkoWWEpP2FbWWFdOk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFlhLHt2YWx1ZTpbXX0pW1lhXSkucHVzaChlKSxvJiZvKGEpLGF9fXJldHVybiBuJiYoci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSkpLHIucHJvdG90eXBlLm5nTWV0YWRhdGFOYW1lPXQsci5hbm5vdGF0aW9uQ2xzPXIscn0pKX1mdW5jdGlvbiBLYSh0KXtyZXR1cm4gZnVuY3Rpb24gZSguLi5uKXtpZih0KXtjb25zdCBlPXQoLi4ubik7Zm9yKGNvbnN0IHQgaW4gZSl0aGlzW3RdPWVbdF19fX1mdW5jdGlvbiBKYSh0LGUsbil7cmV0dXJuIFZuKCgoKT0+e2NvbnN0IG89S2EoZSk7ZnVuY3Rpb24gaSguLi50KXtpZih0aGlzIGluc3RhbmNlb2YgaSlyZXR1cm4gby5hcHBseSh0aGlzLHQpLHRoaXM7Y29uc3QgZT1uZXcgaSguLi50KTtyZXR1cm4gbi5hbm5vdGF0aW9uPWUsbjtmdW5jdGlvbiBuKHQsbixvKXtjb25zdCBpPXQuaGFzT3duUHJvcGVydHkocWEpP3RbcWFdOk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHFhLHt2YWx1ZTpbXX0pW3FhXTtmb3IoO2kubGVuZ3RoPD1vOylpLnB1c2gobnVsbCk7cmV0dXJuKGlbb109aVtvXXx8W10pLnB1c2goZSksdH19cmV0dXJuIG4mJihpLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG4ucHJvdG90eXBlKSksaS5wcm90b3R5cGUubmdNZXRhZGF0YU5hbWU9dCxpLmFubm90YXRpb25DbHM9aSxpfSkpfWZ1bmN0aW9uIFFhKHQsZSxuLG8pe3JldHVybiBWbigoKCk9Pntjb25zdCBpPUthKGUpO2Z1bmN0aW9uIGEoLi4udCl7aWYodGhpcyBpbnN0YW5jZW9mIGEpcmV0dXJuIGkuYXBwbHkodGhpcyx0KSx0aGlzO2NvbnN0IGU9bmV3IGEoLi4udCk7cmV0dXJuIGZ1bmN0aW9uIG4oaSxhKXtjb25zdCByPWkuY29uc3RydWN0b3Iscz1yLmhhc093blByb3BlcnR5KFphKT9yW1phXTpPYmplY3QuZGVmaW5lUHJvcGVydHkocixaYSx7dmFsdWU6e319KVtaYV07c1thXT1zLmhhc093blByb3BlcnR5KGEpJiZzW2FdfHxbXSxzW2FdLnVuc2hpZnQoZSksbyYmbyhpLGEsLi4udCl9fXJldHVybiBuJiYoYS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSkpLGEucHJvdG90eXBlLm5nTWV0YWRhdGFOYW1lPXQsYS5hbm5vdGF0aW9uQ2xzPWEsYX0pKX1jb25zdCAkYT0oZnVuY3Rpb24gdHIoKXtyZXR1cm4gSmEoIkF0dHJpYnV0ZSIsKHQ9Pih7YXR0cmlidXRlTmFtZTp0LF9fTkdfRUxFTUVOVF9JRF9fOigpPT5HYSh0KX0pKSl9KSgpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgZXJ7Y29uc3RydWN0b3IodCxlKXt0aGlzLl9kZXNjPXQsdGhpcy5uZ01ldGFkYXRhTmFtZT0iSW5qZWN0aW9uVG9rZW4iLHRoaXMuybVwcm92PXZvaWQgMCwibnVtYmVyIj09dHlwZW9mIGU/KCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmX24oZSwwLCJPbmx5IG5lZ2F0aXZlIG51bWJlcnMgYXJlIHN1cHBvcnRlZCBoZXJlIiksdGhpcy5fX05HX0VMRU1FTlRfSURfXz1lKTp2b2lkIDAhPT1lJiYodGhpcy7JtXByb3Y9U24oe3Rva2VuOnRoaXMscHJvdmlkZWRJbjplLnByb3ZpZGVkSW58fCJyb290IixmYWN0b3J5OmUuZmFjdG9yeX0pKX10b1N0cmluZygpe3JldHVybmBJbmplY3Rpb25Ub2tlbiAke3RoaXMuX2Rlc2N9YH19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL25ldyBlcigiQW5hbHl6ZUZvckVudHJ5Q29tcG9uZW50cyIpO2NsYXNzIG5ye31jb25zdCBvcj1RYSgiQ29udGVudENoaWxkcmVuIiwoKHQsZT17fSk9Pk9iamVjdC5hc3NpZ24oe3NlbGVjdG9yOnQsZmlyc3Q6ITEsaXNWaWV3UXVlcnk6ITEsZGVzY2VuZGFudHM6ITEsZW1pdERpc3RpbmN0Q2hhbmdlc09ubHk6dHJ1ZX0sZSkpLG5yKSxpcj1RYSgiQ29udGVudENoaWxkIiwoKHQsZT17fSk9Pk9iamVjdC5hc3NpZ24oe3NlbGVjdG9yOnQsZmlyc3Q6ITAsaXNWaWV3UXVlcnk6ITEsZGVzY2VuZGFudHM6ITB9LGUpKSxucik7UWEoIlZpZXdDaGlsZHJlbiIsKCh0LGU9e30pPT5PYmplY3QuYXNzaWduKHtzZWxlY3Rvcjp0LGZpcnN0OiExLGlzVmlld1F1ZXJ5OiEwLGRlc2NlbmRhbnRzOiEwLGVtaXREaXN0aW5jdENoYW5nZXNPbmx5OnRydWV9LGUpKSxucik7Y29uc3QgYXI9UWEoIlZpZXdDaGlsZCIsKCh0LGUpPT5PYmplY3QuYXNzaWduKHtzZWxlY3Rvcjp0LGZpcnN0OiEwLGlzVmlld1F1ZXJ5OiEwLGRlc2NlbmRhbnRzOiEwfSxlKSksbnIpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KdmFyIHJyLHNyOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gbHIodCl7Y29uc3QgZT1Ybi5uZztpZihlJiZlLsm1Y29tcGlsZXJGYWNhZGUpcmV0dXJuIGUuybVjb21waWxlckZhY2FkZTtpZigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKXtjb25zb2xlLmVycm9yKGBKSVQgY29tcGlsYXRpb24gZmFpbGVkIGZvciAke3Qua2luZH1gLHQudHlwZSk7bGV0IGU9YFRoZSAke3Qua2luZH0gJyR7dC50eXBlLm5hbWV9JyBuZWVkcyB0byBiZSBjb21waWxlZCB1c2luZyB0aGUgSklUIGNvbXBpbGVyLCBidXQgJ0Bhbmd1bGFyL2NvbXBpbGVyJyBpcyBub3QgYXZhaWxhYmxlLlxuXG5gO3Rocm93IDE9PT10LnVzYWdlPyhlKz1gVGhlICR7dC5raW5kfSBpcyBwYXJ0IG9mIGEgbGlicmFyeSB0aGF0IGhhcyBiZWVuIHBhcnRpYWxseSBjb21waWxlZC5cbmAsZSs9Ikhvd2V2ZXIsIHRoZSBBbmd1bGFyIExpbmtlciBoYXMgbm90IHByb2Nlc3NlZCB0aGUgbGlicmFyeSBzdWNoIHRoYXQgSklUIGNvbXBpbGF0aW9uIGlzIHVzZWQgYXMgZmFsbGJhY2suXG4iLGUrPSJcbiIsZSs9IklkZWFsbHksIHRoZSBsaWJyYXJ5IGlzIHByb2Nlc3NlZCB1c2luZyB0aGUgQW5ndWxhciBMaW5rZXIgdG8gYmVjb21lIGZ1bGx5IEFPVCBjb21waWxlZC5cbiIpOmUrPSJKSVQgY29tcGlsYXRpb24gaXMgZGlzY291cmFnZWQgZm9yIHByb2R1Y3Rpb24gdXNlLWNhc2VzISBDb25zaWRlciB1c2luZyBBT1QgbW9kZSBpbnN0ZWFkLlxuIixlKz0iQWx0ZXJuYXRpdmVseSwgdGhlIEpJVCBjb21waWxlciBzaG91bGQgYmUgbG9hZGVkIGJ5IGJvb3RzdHJhcHBpbmcgdXNpbmcgJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXItZHluYW1pYycgb3IgJ0Bhbmd1bGFyL3BsYXRmb3JtLXNlcnZlcicsXG4iLGUrPSJvciBtYW51YWxseSBwcm92aWRlIHRoZSBjb21waWxlciB3aXRoICdpbXBvcnQgXCJAYW5ndWxhci9jb21waWxlclwiOycgYmVmb3JlIGJvb3RzdHJhcHBpbmcuIixuZXcgRXJyb3IoZSl9dGhyb3cgbmV3IEVycm9yKCJKSVQgY29tcGlsZXIgdW5hdmFpbGFibGUiKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovIShmdW5jdGlvbih0KXt0W3QuRGlyZWN0aXZlPTBdPSJEaXJlY3RpdmUiLHRbdC5Db21wb25lbnQ9MV09IkNvbXBvbmVudCIsdFt0LkluamVjdGFibGU9Ml09IkluamVjdGFibGUiLHRbdC5QaXBlPTNdPSJQaXBlIix0W3QuTmdNb2R1bGU9NF09Ik5nTW9kdWxlIn0pKHJyfHwocnI9e30pKSwoZnVuY3Rpb24odCl7dFt0LkVtdWxhdGVkPTBdPSJFbXVsYXRlZCIsdFt0Lk5vbmU9Ml09Ik5vbmUiLHRbdC5TaGFkb3dEb209M109IlNoYWRvd0RvbSJ9KShzcnx8KHNyPXt9KSk7Y29uc3QgY3I9RnVuY3Rpb247ZnVuY3Rpb24gZHIodCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHR9ZnVuY3Rpb24gcHIodCxlKXt2b2lkIDA9PT1lJiYoZT10KTtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7bGV0IG89dFtuXTtBcnJheS5pc0FycmF5KG8pPyhlPT09dCYmKGU9dC5zbGljZSgwLG4pKSxwcihvLGUpKTplIT09dCYmZS5wdXNoKG8pfXJldHVybiBlfWZ1bmN0aW9uIG1yKHQsZSl7dC5mb3JFYWNoKCh0PT5BcnJheS5pc0FycmF5KHQpP21yKHQsZSk6ZSh0KSkpfWZ1bmN0aW9uIGZyKHQsZSxuKXtlPj10Lmxlbmd0aD90LnB1c2gobik6dC5zcGxpY2UoZSwwLG4pfWZ1bmN0aW9uIHVyKHQsZSl7cmV0dXJuIGU+PXQubGVuZ3RoLTE/dC5wb3AoKTp0LnNwbGljZShlLDEpWzBdfWZ1bmN0aW9uIGdyKHQsZSl7Y29uc3Qgbj1bXTtmb3IobGV0IG89MDtvPHQ7bysrKW4ucHVzaChlKTtyZXR1cm4gbn1mdW5jdGlvbiBocih0LGUsbil7bGV0IG89eXIodCxlKTtyZXR1cm4gbz49MD90WzF8b109bjoobz1+bywoZnVuY3Rpb24gaSh0LGUsbixvKXtuZ0Rldk1vZGUmJkNuKGUsdC5sZW5ndGgsIkNhbid0IGluc2VydCBwYXN0IGFycmF5IGVuZC4iKTtsZXQgaT10Lmxlbmd0aDtpZihpPT1lKXQucHVzaChuLG8pO2Vsc2UgaWYoMT09PWkpdC5wdXNoKG8sdFswXSksdFswXT1uO2Vsc2V7Zm9yKGktLSx0LnB1c2godFtpLTFdLHRbaV0pO2k+ZTspdFtpXT10W2ktMl0saS0tO3RbZV09bix0W2UrMV09b319KSh0LG8sZSxuKSksb31mdW5jdGlvbiBicih0LGUpe2NvbnN0IG49eXIodCxlKTtpZihuPj0wKXJldHVybiB0WzF8bl19ZnVuY3Rpb24geXIodCxlKXtyZXR1cm4oZnVuY3Rpb24gbih0LGUsbyl7bmdEZXZNb2RlJiZnbihBcnJheS5pc0FycmF5KHQpLCEwLCJFeHBlY3RpbmcgYW4gYXJyYXkiKTtsZXQgaT0wLGE9dC5sZW5ndGg+Pm87Zm9yKDthIT09aTspe2NvbnN0IG49aSsoYS1pPj4xKSxyPXRbbjw8b107aWYoZT09PXIpcmV0dXJuIG48PG87cj5lP2E9bjppPW4rMX1yZXR1cm5+KGE8PG8pfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKHQsZSwxKX1jb25zdCBfcj0vXmZ1bmN0aW9uXHMrXFMrXChcKVxzKntbXHNcU10rXC5hcHBseVwodGhpcyxccyooYXJndW1lbnRzfCg/OlteKCldK1woXFtcXSwpP1teKCldK1woYXJndW1lbnRzXCkpXCkvLENyPS9eY2xhc3NccytbQS1aYS16XGQkX10qXHMqZXh0ZW5kc1xzK1tee10rey8sTXI9L15jbGFzc1xzK1tBLVphLXpcZCRfXSpccypleHRlbmRzXHMrW157XSt7W1xzXFNdKmNvbnN0cnVjdG9yXHMqXCgvLHZyPS9eY2xhc3NccytbQS1aYS16XGQkX10qXHMqZXh0ZW5kc1xzK1tee10re1tcc1xTXSpjb25zdHJ1Y3RvclxzKlwoXClccyp7XHMqc3VwZXJcKFwuXC5cLmFyZ3VtZW50c1wpLztjbGFzcyB4cntjb25zdHJ1Y3Rvcih0KXt0aGlzLl9yZWZsZWN0PXR8fFhuLlJlZmxlY3R9aXNSZWZsZWN0aW9uRW5hYmxlZCgpe3JldHVybiEwfWZhY3RvcnkodCl7cmV0dXJuKC4uLmUpPT5uZXcgdCguLi5lKX1femlwVHlwZXNBbmRBbm5vdGF0aW9ucyh0LGUpe2xldCBuO249Z3Iodm9pZCAwPT09dD9lLmxlbmd0aDp0Lmxlbmd0aCk7Zm9yKGxldCBvPTA7bzxuLmxlbmd0aDtvKyspbltvXT12b2lkIDA9PT10P1tdOnRbb10mJnRbb10hPU9iamVjdD9bdFtvXV06W10sZSYmbnVsbCE9ZVtvXSYmKG5bb109bltvXS5jb25jYXQoZVtvXSkpO3JldHVybiBufV9vd25QYXJhbWV0ZXJzKHQsZSl7aWYoKGZ1bmN0aW9uIG4odCl7cmV0dXJuIF9yLnRlc3QodCl8fHZyLnRlc3QodCl8fENyLnRlc3QodCkmJiFNci50ZXN0KHQpfSkodC50b1N0cmluZygpKSlyZXR1cm4gbnVsbDtpZih0LnBhcmFtZXRlcnMmJnQucGFyYW1ldGVycyE9PWUucGFyYW1ldGVycylyZXR1cm4gdC5wYXJhbWV0ZXJzO2NvbnN0IG89dC5jdG9yUGFyYW1ldGVycztpZihvJiZvIT09ZS5jdG9yUGFyYW1ldGVycyl7Y29uc3QgdD0iZnVuY3Rpb24iPT10eXBlb2Ygbz9vKCk6byxlPXQubWFwKCh0PT50JiZ0LnR5cGUpKSxuPXQubWFwKCh0PT50JiZPcih0LmRlY29yYXRvcnMpKSk7cmV0dXJuIHRoaXMuX3ppcFR5cGVzQW5kQW5ub3RhdGlvbnMoZSxuKX1jb25zdCBpPXQuaGFzT3duUHJvcGVydHkocWEpJiZ0W3FhXSxhPXRoaXMuX3JlZmxlY3QmJnRoaXMuX3JlZmxlY3QuZ2V0T3duTWV0YWRhdGEmJnRoaXMuX3JlZmxlY3QuZ2V0T3duTWV0YWRhdGEoImRlc2lnbjpwYXJhbXR5cGVzIix0KTtyZXR1cm4gYXx8aT90aGlzLl96aXBUeXBlc0FuZEFubm90YXRpb25zKGEsaSk6Z3IodC5sZW5ndGgpfXBhcmFtZXRlcnModCl7aWYoIWRyKHQpKXJldHVybltdO2NvbnN0IGU9UHIodCk7bGV0IG49dGhpcy5fb3duUGFyYW1ldGVycyh0LGUpO3JldHVybiBufHxlPT09T2JqZWN0fHwobj10aGlzLnBhcmFtZXRlcnMoZSkpLG58fFtdfV9vd25Bbm5vdGF0aW9ucyh0LGUpe2lmKHQuYW5ub3RhdGlvbnMmJnQuYW5ub3RhdGlvbnMhPT1lLmFubm90YXRpb25zKXtsZXQgZT10LmFubm90YXRpb25zO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlLmFubm90YXRpb25zJiYoZT1lLmFubm90YXRpb25zKSxlfXJldHVybiB0LmRlY29yYXRvcnMmJnQuZGVjb3JhdG9ycyE9PWUuZGVjb3JhdG9ycz9Pcih0LmRlY29yYXRvcnMpOnQuaGFzT3duUHJvcGVydHkoWWEpP3RbWWFdOm51bGx9YW5ub3RhdGlvbnModCl7aWYoIWRyKHQpKXJldHVybltdO2NvbnN0IGU9UHIodCksbj10aGlzLl9vd25Bbm5vdGF0aW9ucyh0LGUpfHxbXTtyZXR1cm4oZSE9PU9iamVjdD90aGlzLmFubm90YXRpb25zKGUpOltdKS5jb25jYXQobil9X293blByb3BNZXRhZGF0YSh0LGUpe2lmKHQucHJvcE1ldGFkYXRhJiZ0LnByb3BNZXRhZGF0YSE9PWUucHJvcE1ldGFkYXRhKXtsZXQgZT10LnByb3BNZXRhZGF0YTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmZS5wcm9wTWV0YWRhdGEmJihlPWUucHJvcE1ldGFkYXRhKSxlfWlmKHQucHJvcERlY29yYXRvcnMmJnQucHJvcERlY29yYXRvcnMhPT1lLnByb3BEZWNvcmF0b3JzKXtjb25zdCBlPXQucHJvcERlY29yYXRvcnMsbj17fTtyZXR1cm4gT2JqZWN0LmtleXMoZSkuZm9yRWFjaCgodD0+e25bdF09T3IoZVt0XSl9KSksbn1yZXR1cm4gdC5oYXNPd25Qcm9wZXJ0eShaYSk/dFtaYV06bnVsbH1wcm9wTWV0YWRhdGEodCl7aWYoIWRyKHQpKXJldHVybnt9O2NvbnN0IGU9UHIodCksbj17fTtpZihlIT09T2JqZWN0KXtjb25zdCB0PXRoaXMucHJvcE1ldGFkYXRhKGUpO09iamVjdC5rZXlzKHQpLmZvckVhY2goKGU9PntuW2VdPXRbZV19KSl9Y29uc3Qgbz10aGlzLl9vd25Qcm9wTWV0YWRhdGEodCxlKTtyZXR1cm4gbyYmT2JqZWN0LmtleXMobykuZm9yRWFjaCgodD0+e2NvbnN0IGU9W107bi5oYXNPd25Qcm9wZXJ0eSh0KSYmZS5wdXNoKC4uLm5bdF0pLGUucHVzaCguLi5vW3RdKSxuW3RdPWV9KSksbn1vd25Qcm9wTWV0YWRhdGEodCl7cmV0dXJuIGRyKHQpJiZ0aGlzLl9vd25Qcm9wTWV0YWRhdGEodCxQcih0KSl8fHt9fWhhc0xpZmVjeWNsZUhvb2sodCxlKXtyZXR1cm4gdCBpbnN0YW5jZW9mIGNyJiZlIGluIHQucHJvdG90eXBlfWd1YXJkcyh0KXtyZXR1cm57fX1nZXR0ZXIodCl7cmV0dXJuIG5ldyBGdW5jdGlvbigibyIsInJldHVybiBvLiIrdCsiOyIpfXNldHRlcih0KXtyZXR1cm4gbmV3IEZ1bmN0aW9uKCJvIiwidiIsInJldHVybiBvLiIrdCsiID0gdjsiKX1tZXRob2QodCl7cmV0dXJuIG5ldyBGdW5jdGlvbigibyIsImFyZ3MiLGBpZiAoIW8uJHt0fSkgdGhyb3cgbmV3IEVycm9yKCciJHt0fSIgaXMgdW5kZWZpbmVkJyk7XG4gICAgICAgIHJldHVybiBvLiR7dH0uYXBwbHkobywgYXJncyk7YCl9aW1wb3J0VXJpKHQpe3JldHVybiJvYmplY3QiPT10eXBlb2YgdCYmdC5maWxlUGF0aD90LmZpbGVQYXRoOmAuLyR7S2UodCl9YH1yZXNvdXJjZVVyaSh0KXtyZXR1cm5gLi8ke0tlKHQpfWB9cmVzb2x2ZUlkZW50aWZpZXIodCxlLG4sbyl7cmV0dXJuIG99cmVzb2x2ZUVudW0odCxlKXtyZXR1cm4gdFtlXX19ZnVuY3Rpb24gT3IodCl7cmV0dXJuIHQ/dC5tYXAoKHQ9Pm5ldygwLHQudHlwZS5hbm5vdGF0aW9uQ2xzKSguLi50LmFyZ3M/dC5hcmdzOltdKSkpOltdfWZ1bmN0aW9uIFByKHQpe2NvbnN0IGU9dC5wcm90b3R5cGU/T2JqZWN0LmdldFByb3RvdHlwZU9mKHQucHJvdG90eXBlKTpudWxsO3JldHVybihlP2UuY29uc3RydWN0b3I6bnVsbCl8fE9iamVjdH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3Qgd3I9e30sa3I9L1xuL2dtLFNyPSJfX3NvdXJjZSIsRHI9WmUoe3Byb3ZpZGU6U3RyaW5nLHVzZVZhbHVlOlplfSk7bGV0IFJyO2Z1bmN0aW9uIEVyKHQpe2NvbnN0IGU9UnI7cmV0dXJuIFJyPXQsZX1mdW5jdGlvbiBBcih0LGU9SG4uRGVmYXVsdCl7aWYodm9pZCAwPT09UnIpdGhyb3cgbmV3IEVycm9yKCJpbmplY3QoKSBtdXN0IGJlIGNhbGxlZCBmcm9tIGFuIGluamVjdGlvbiBjb250ZXh0Iik7cmV0dXJuIG51bGw9PT1Scj9Cbih0LHZvaWQgMCxlKTpSci5nZXQodCxlJkhuLk9wdGlvbmFsP251bGw6dm9pZCAwLGUpfWZ1bmN0aW9uIFRyKHQsZT1Ibi5EZWZhdWx0KXtyZXR1cm4oKGZ1bmN0aW9uIG4oKXtyZXR1cm4gRm59KSgpfHxBcikodG4odCksZSl9ZnVuY3Rpb24gTnIodCl7Y29uc3QgZT1uZ0Rldk1vZGU/YFRoaXMgY29uc3RydWN0b3IgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBBbmd1bGFyIERlcGVuZGVuY3kgSW5qZWN0aW9uIGJlY2F1c2UgaXRzIGRlcGVuZGVuY3kgYXQgaW5kZXggJHt0fSBvZiB0aGUgcGFyYW1ldGVyIGxpc3QgaXMgaW52YWxpZC5cblRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgZGVwZW5kZW5jeSB0eXBlIGlzIGEgcHJpbWl0aXZlIGxpa2UgYSBzdHJpbmcgb3IgaWYgYW4gYW5jZXN0b3Igb2YgdGhpcyBjbGFzcyBpcyBtaXNzaW5nIGFuIEFuZ3VsYXIgZGVjb3JhdG9yLlxuXG5QbGVhc2UgY2hlY2sgdGhhdCAxKSB0aGUgdHlwZSBmb3IgdGhlIHBhcmFtZXRlciBhdCBpbmRleCAke3R9IGlzIGNvcnJlY3QgYW5kIDIpIHRoZSBjb3JyZWN0IEFuZ3VsYXIgZGVjb3JhdG9ycyBhcmUgZGVmaW5lZCBmb3IgdGhpcyBjbGFzcyBhbmQgaXRzIGFuY2VzdG9ycy5gOiJpbnZhbGlkIjt0aHJvdyBuZXcgRXJyb3IoZSl9Y29uc3QgenI9VHI7ZnVuY3Rpb24gSXIodCl7Y29uc3QgZT1bXTtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7Y29uc3Qgbz10bih0W25dKTtpZihBcnJheS5pc0FycmF5KG8pKXtpZigwPT09by5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJBcmd1bWVudHMgYXJyYXkgbXVzdCBoYXZlIGFyZ3VtZW50cy4iKTtsZXQgdCxuPUhuLkRlZmF1bHQ7Zm9yKGxldCBlPTA7ZTxvLmxlbmd0aDtlKyspe2NvbnN0IGk9b1tlXSxhPWkuX19OR19ESV9GTEFHX187Im51bWJlciI9PXR5cGVvZiBhPy0xPT09YT90PWkudG9rZW46bnw9YTp0PWl9ZS5wdXNoKFRyKHQsbikpfWVsc2UgZS5wdXNoKFRyKG8pKX1yZXR1cm4gZX1mdW5jdGlvbiBIcih0LGUpe3JldHVybiB0Ll9fTkdfRElfRkxBR19fPWUsdC5wcm90b3R5cGUuX19OR19ESV9GTEFHX189ZSx0fWZ1bmN0aW9uIEZyKHQsZSxuLG8pe2NvbnN0IGk9dC5uZ1RlbXBUb2tlblBhdGg7dGhyb3cgZVtTcl0mJmkudW5zaGlmdChlW1NyXSksdC5tZXNzYWdlPShmdW5jdGlvbiBhKHQsZSxuLG89bnVsbCl7dD10JiYiXG4iPT09dC5jaGFyQXQoMCkmJiLJtSI9PXQuY2hhckF0KDEpP3Quc3Vic3RyKDIpOnQ7bGV0IGk9S2UoZSk7aWYoQXJyYXkuaXNBcnJheShlKSlpPWUubWFwKEtlKS5qb2luKCIgLT4gIik7ZWxzZSBpZigib2JqZWN0Ij09dHlwZW9mIGUpe2xldCB0PVtdO2ZvcihsZXQgbiBpbiBlKWlmKGUuaGFzT3duUHJvcGVydHkobikpe2xldCBvPWVbbl07dC5wdXNoKG4rIjoiKygic3RyaW5nIj09dHlwZW9mIG8/SlNPTi5zdHJpbmdpZnkobyk6S2UobykpKX1pPWB7JHt0LmpvaW4oIiwgIil9fWB9cmV0dXJuYCR7bn0ke28/IigiK28rIikiOiIifVske2l9XTogJHt0LnJlcGxhY2Uoa3IsIlxuICAiKX1gfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKCJcbiIrdC5tZXNzYWdlLGksbixvKSx0Lm5nVG9rZW5QYXRoPWksdC5uZ1RlbXBUb2tlblBhdGg9bnVsbCx0fWNvbnN0IExyPUhyKEphKCJJbmplY3QiLCh0PT4oe3Rva2VuOnR9KSkpLC0xKSxCcj1IcihKYSgiT3B0aW9uYWwiKSw4KSxWcj1IcihKYSgiU2VsZiIpLDIpLGpyPUhyKEphKCJTa2lwU2VsZiIpLDQpLFVyPUhyKEphKCJIb3N0IiksMSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpsZXQgV3I9bnVsbDtmdW5jdGlvbiBHcigpe3JldHVybiBXcj1Xcnx8bmV3IHhyfWZ1bmN0aW9uIFlyKHQpe3JldHVybiBxcihHcigpLnBhcmFtZXRlcnModCkpfWZ1bmN0aW9uIHFyKHQpe3JldHVybiB0Lm1hcCgodD0+KGZ1bmN0aW9uIGUodCl7Y29uc3QgZT17dG9rZW46bnVsbCxhdHRyaWJ1dGU6bnVsbCxob3N0OiExLG9wdGlvbmFsOiExLHNlbGY6ITEsc2tpcFNlbGY6ITF9O2lmKEFycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoPjApZm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2NvbnN0IG89dFtuXTtpZih2b2lkIDA9PT1vKWNvbnRpbnVlO2NvbnN0IGk9T2JqZWN0LmdldFByb3RvdHlwZU9mKG8pO2lmKG8gaW5zdGFuY2VvZiBCcnx8Ik9wdGlvbmFsIj09PWkubmdNZXRhZGF0YU5hbWUpZS5vcHRpb25hbD0hMDtlbHNlIGlmKG8gaW5zdGFuY2VvZiBqcnx8IlNraXBTZWxmIj09PWkubmdNZXRhZGF0YU5hbWUpZS5za2lwU2VsZj0hMDtlbHNlIGlmKG8gaW5zdGFuY2VvZiBWcnx8IlNlbGYiPT09aS5uZ01ldGFkYXRhTmFtZSllLnNlbGY9ITA7ZWxzZSBpZihvIGluc3RhbmNlb2YgVXJ8fCJIb3N0Ij09PWkubmdNZXRhZGF0YU5hbWUpZS5ob3N0PSEwO2Vsc2UgaWYobyBpbnN0YW5jZW9mIExyKWUudG9rZW49by50b2tlbjtlbHNlIGlmKG8gaW5zdGFuY2VvZiAkYSl7aWYodm9pZCAwPT09by5hdHRyaWJ1dGVOYW1lKXRocm93IG5ldyBFcnJvcigiQXR0cmlidXRlIG5hbWUgbXVzdCBiZSBkZWZpbmVkLiIpO2UuYXR0cmlidXRlPW8uYXR0cmlidXRlTmFtZX1lbHNlIGUudG9rZW49b31lbHNlIGUudG9rZW49dm9pZCAwPT09dHx8QXJyYXkuaXNBcnJheSh0KSYmMD09PXQubGVuZ3RoP251bGw6dDtyZXR1cm4gZX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSh0KSkpfWZ1bmN0aW9uIFpyKHQpe2NvbnN0IGU9W10sbj1uZXcgTWFwO2Z1bmN0aW9uIG8oZSl7bGV0IG89bi5nZXQoZSk7aWYoIW8pe2NvbnN0IGk9dChlKTtuLnNldChlLG89aS50aGVuKFFyKSl9cmV0dXJuIG99cmV0dXJuIFhyLmZvckVhY2goKCh0LG4pPT57Y29uc3QgaT1bXTt0LnRlbXBsYXRlVXJsJiZpLnB1c2gobyh0LnRlbXBsYXRlVXJsKS50aGVuKChlPT57dC50ZW1wbGF0ZT1lfSkpKTtjb25zdCBhPXQuc3R5bGVVcmxzLHI9dC5zdHlsZXN8fCh0LnN0eWxlcz1bXSkscz10LnN0eWxlcy5sZW5ndGg7YSYmYS5mb3JFYWNoKCgoZSxuKT0+e3IucHVzaCgiIiksaS5wdXNoKG8oZSkudGhlbigobz0+e3JbcytuXT1vLGEuc3BsaWNlKGEuaW5kZXhPZihlKSwxKSwwPT1hLmxlbmd0aCYmKHQuc3R5bGVVcmxzPXZvaWQgMCl9KSkpfSkpO2NvbnN0IGw9UHJvbWlzZS5hbGwoaSkudGhlbigoKCk9PihmdW5jdGlvbiB0KGUpe0tyLmRlbGV0ZShlKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKShuKSkpO2UucHVzaChsKX0pKSwoZnVuY3Rpb24gaSgpe2NvbnN0IHQ9WHI7cmV0dXJuIFhyPW5ldyBNYXAsdH0pKCksUHJvbWlzZS5hbGwoZSkudGhlbigoKCk9Pnt9KSl9bGV0IFhyPW5ldyBNYXA7Y29uc3QgS3I9bmV3IFNldDtmdW5jdGlvbiBKcih0KXtyZXR1cm4hISh0LnRlbXBsYXRlVXJsJiYhdC5oYXNPd25Qcm9wZXJ0eSgidGVtcGxhdGUiKXx8dC5zdHlsZVVybHMmJnQuc3R5bGVVcmxzLmxlbmd0aCl9ZnVuY3Rpb24gUXIodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P3Q6dC50ZXh0KCl9bGV0ICRyLHRzO2Z1bmN0aW9uIGVzKCl7aWYodm9pZCAwPT09JHImJigkcj1udWxsLFhuLnRydXN0ZWRUeXBlcykpdHJ5eyRyPVhuLnRydXN0ZWRUeXBlcy5jcmVhdGVQb2xpY3koImFuZ3VsYXIiLHtjcmVhdGVIVE1MOnQ9PnQsY3JlYXRlU2NyaXB0OnQ9PnQsY3JlYXRlU2NyaXB0VVJMOnQ9PnR9KX1jYXRjaCh0KXt9cmV0dXJuICRyfWZ1bmN0aW9uIG5zKHQpe3ZhciBlO3JldHVybihudWxsPT09KGU9ZXMoKSl8fHZvaWQgMD09PWU/dm9pZCAwOmUuY3JlYXRlSFRNTCh0KSl8fHR9ZnVuY3Rpb24gb3MoLi4udCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGUpdGhyb3cgbmV3IEVycm9yKCJuZXdUcnVzdGVkRnVuY3Rpb25Gb3JEZXYgc2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBpbiBwcm9kdWN0aW9uIik7aWYoIVhuLnRydXN0ZWRUeXBlcylyZXR1cm4gbmV3IEZ1bmN0aW9uKC4uLnQpO2NvbnN0IGU9YChmdW5jdGlvbiBhbm9ueW1vdXMoJHt0LnNsaWNlKDAsLTEpLmpvaW4oIiwiKX1cbikgeyAke3RbdC5sZW5ndGgtMV19XG59KWAsbj1Ybi5ldmFsKChmdW5jdGlvbiBvKHQpe3ZhciBlO3JldHVybihudWxsPT09KGU9ZXMoKSl8fHZvaWQgMD09PWU/dm9pZCAwOmUuY3JlYXRlU2NyaXB0KHQpKXx8dH0pKGUpKTtyZXR1cm4gdm9pZCAwPT09bi5iaW5kP25ldyBGdW5jdGlvbiguLi50KToobi50b1N0cmluZz0oKT0+ZSxuLmJpbmQoWG4pKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gaXMoKXtpZih2b2lkIDA9PT10cyYmKHRzPW51bGwsWG4udHJ1c3RlZFR5cGVzKSl0cnl7dHM9WG4udHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeSgiYW5ndWxhciN1bnNhZmUtYnlwYXNzIix7Y3JlYXRlSFRNTDp0PT50LGNyZWF0ZVNjcmlwdDp0PT50LGNyZWF0ZVNjcmlwdFVSTDp0PT50fSl9Y2F0Y2godCl7fXJldHVybiB0c31mdW5jdGlvbiBhcyh0KXt2YXIgZTtyZXR1cm4obnVsbD09PShlPWlzKCkpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmNyZWF0ZUhUTUwodCkpfHx0fWZ1bmN0aW9uIHJzKHQpe3ZhciBlO3JldHVybihudWxsPT09KGU9aXMoKSl8fHZvaWQgMD09PWU/dm9pZCAwOmUuY3JlYXRlU2NyaXB0KHQpKXx8dH1mdW5jdGlvbiBzcyh0KXt2YXIgZTtyZXR1cm4obnVsbD09PShlPWlzKCkpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmNyZWF0ZVNjcmlwdFVSTCh0KSl8fHR9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIGxze2NvbnN0cnVjdG9yKHQpe3RoaXMuY2hhbmdpbmdUaGlzQnJlYWtzQXBwbGljYXRpb25TZWN1cml0eT10fXRvU3RyaW5nKCl7cmV0dXJuYFNhZmVWYWx1ZSBtdXN0IHVzZSBbcHJvcGVydHldPWJpbmRpbmc6ICR7dGhpcy5jaGFuZ2luZ1RoaXNCcmVha3NBcHBsaWNhdGlvblNlY3VyaXR5fSAoc2VlIGh0dHBzOi8vZy5jby9uZy9zZWN1cml0eSN4c3MpYH19Y2xhc3MgY3MgZXh0ZW5kcyBsc3tnZXRUeXBlTmFtZSgpe3JldHVybiJIVE1MIn19Y2xhc3MgZHMgZXh0ZW5kcyBsc3tnZXRUeXBlTmFtZSgpe3JldHVybiJTdHlsZSJ9fWNsYXNzIHBzIGV4dGVuZHMgbHN7Z2V0VHlwZU5hbWUoKXtyZXR1cm4iU2NyaXB0In19Y2xhc3MgbXMgZXh0ZW5kcyBsc3tnZXRUeXBlTmFtZSgpe3JldHVybiJVUkwifX1jbGFzcyBmcyBleHRlbmRzIGxze2dldFR5cGVOYW1lKCl7cmV0dXJuIlJlc291cmNlVVJMIn19ZnVuY3Rpb24gdXModCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBscz90LmNoYW5naW5nVGhpc0JyZWFrc0FwcGxpY2F0aW9uU2VjdXJpdHk6dH1mdW5jdGlvbiBncyh0LGUpe2NvbnN0IG49aHModCk7aWYobnVsbCE9biYmbiE9PWUpe2lmKCJSZXNvdXJjZVVSTCI9PT1uJiYiVVJMIj09PWUpcmV0dXJuITA7dGhyb3cgbmV3IEVycm9yKGBSZXF1aXJlZCBhIHNhZmUgJHtlfSwgZ290IGEgJHtufSAoc2VlIGh0dHBzOi8vZy5jby9uZy9zZWN1cml0eSN4c3MpYCl9cmV0dXJuIG49PT1lfWZ1bmN0aW9uIGhzKHQpe3JldHVybiB0IGluc3RhbmNlb2YgbHMmJnQuZ2V0VHlwZU5hbWUoKXx8bnVsbH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIGJzKHQpe2NvbnN0IGU9bmV3IF9zKHQpO3JldHVybihmdW5jdGlvbiBuKCl7dHJ5e3JldHVybiEhKG5ldyB3aW5kb3cuRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcobnMoIiIpLCJ0ZXh0L2h0bWwiKX1jYXRjaCh0KXtyZXR1cm4hMX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLykoKT9uZXcgeXMoZSk6ZX1jbGFzcyB5c3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmluZXJ0RG9jdW1lbnRIZWxwZXI9dH1nZXRJbmVydEJvZHlFbGVtZW50KHQpe3Q9Ijxib2R5PjxyZW1vdmU+PC9yZW1vdmU+Iit0O3RyeXtjb25zdCBlPShuZXcgd2luZG93LkRPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKG5zKHQpLCJ0ZXh0L2h0bWwiKS5ib2R5O3JldHVybiBudWxsPT09ZT90aGlzLmluZXJ0RG9jdW1lbnRIZWxwZXIuZ2V0SW5lcnRCb2R5RWxlbWVudCh0KTooZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpLGUpfWNhdGNoKHQpe3JldHVybiBudWxsfX19Y2xhc3MgX3N7Y29uc3RydWN0b3IodCl7aWYodGhpcy5kZWZhdWx0RG9jPXQsdGhpcy5pbmVydERvY3VtZW50PXRoaXMuZGVmYXVsdERvYy5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoInNhbml0aXphdGlvbi1pbmVydCIpLG51bGw9PXRoaXMuaW5lcnREb2N1bWVudC5ib2R5KXtjb25zdCB0PXRoaXMuaW5lcnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCJodG1sIik7dGhpcy5pbmVydERvY3VtZW50LmFwcGVuZENoaWxkKHQpO2NvbnN0IGU9dGhpcy5pbmVydERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJvZHkiKTt0LmFwcGVuZENoaWxkKGUpfX1nZXRJbmVydEJvZHlFbGVtZW50KHQpe2NvbnN0IGU9dGhpcy5pbmVydERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7aWYoImNvbnRlbnQiaW4gZSlyZXR1cm4gZS5pbm5lckhUTUw9bnModCksZTtjb25zdCBuPXRoaXMuaW5lcnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCJib2R5Iik7cmV0dXJuIG4uaW5uZXJIVE1MPW5zKHQpLHRoaXMuZGVmYXVsdERvYy5kb2N1bWVudE1vZGUmJnRoaXMuc3RyaXBDdXN0b21Oc0F0dHJzKG4pLG59c3RyaXBDdXN0b21Oc0F0dHJzKHQpe2NvbnN0IGU9dC5hdHRyaWJ1dGVzO2ZvcihsZXQgbj1lLmxlbmd0aC0xOzA8bjtuLS0pe2NvbnN0IG89ZS5pdGVtKG4pLm5hbWU7InhtbG5zOm5zMSIhPT1vJiYwIT09by5pbmRleE9mKCJuczE6Iil8fHQucmVtb3ZlQXR0cmlidXRlKG8pfWxldCBuPXQuZmlyc3RDaGlsZDtmb3IoO247KW4ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmdGhpcy5zdHJpcEN1c3RvbU5zQXR0cnMobiksbj1uLm5leHRTaWJsaW5nfX1jb25zdCBDcz0vXig/Oig/Omh0dHBzP3xtYWlsdG98ZnRwfHRlbHxmaWxlfHNtcyk6fFteJjovPyNdKig/OlsvPyNdfCQpKS9naSxNcz0vXmRhdGE6KD86aW1hZ2VcLyg/OmJtcHxnaWZ8anBlZ3xqcGd8cG5nfHRpZmZ8d2VicCl8dmlkZW9cLyg/Om1wZWd8bXA0fG9nZ3x3ZWJtKXxhdWRpb1wvKD86bXAzfG9nYXxvZ2d8b3B1cykpO2Jhc2U2NCxbYS16MC05K1wvXSs9KiQvaTtmdW5jdGlvbiB2cyh0KXtyZXR1cm4odD1TdHJpbmcodCkpLm1hdGNoKENzKXx8dC5tYXRjaChNcyk/dDooKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZjb25zb2xlLndhcm4oYFdBUk5JTkc6IHNhbml0aXppbmcgdW5zYWZlIFVSTCB2YWx1ZSAke3R9IChzZWUgaHR0cHM6Ly9nLmNvL25nL3NlY3VyaXR5I3hzcylgKSwidW5zYWZlOiIrdCl9ZnVuY3Rpb24geHModCl7cmV0dXJuKHQ9U3RyaW5nKHQpKS5zcGxpdCgiLCIpLm1hcCgodD0+dnModC50cmltKCkpKSkuam9pbigiLCAiKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gT3ModCl7Y29uc3QgZT17fTtmb3IoY29uc3QgbiBvZiB0LnNwbGl0KCIsIikpZVtuXT0hMDtyZXR1cm4gZX1mdW5jdGlvbiBQcyguLi50KXtjb25zdCBlPXt9O2Zvcihjb25zdCBuIG9mIHQpZm9yKGNvbnN0IHQgaW4gbiluLmhhc093blByb3BlcnR5KHQpJiYoZVt0XT0hMCk7cmV0dXJuIGV9Y29uc3Qgd3M9T3MoImFyZWEsYnIsY29sLGhyLGltZyx3YnIiKSxrcz1PcygiY29sZ3JvdXAsZGQsZHQsbGkscCx0Ym9keSx0ZCx0Zm9vdCx0aCx0aGVhZCx0ciIpLFNzPU9zKCJycCxydCIpLERzPVBzKFNzLGtzKSxScz1QcyhrcyxPcygiYWRkcmVzcyxhcnRpY2xlLGFzaWRlLGJsb2NrcXVvdGUsY2FwdGlvbixjZW50ZXIsZGVsLGRldGFpbHMsZGlhbG9nLGRpcixkaXYsZGwsZmlndXJlLGZpZ2NhcHRpb24sZm9vdGVyLGgxLGgyLGgzLGg0LGg1LGg2LGhlYWRlcixoZ3JvdXAsaHIsaW5zLG1haW4sbWFwLG1lbnUsbmF2LG9sLHByZSxzZWN0aW9uLHN1bW1hcnksdGFibGUsdWwiKSksRXM9UHMoU3MsT3MoImEsYWJicixhY3JvbnltLGF1ZGlvLGIsYmRpLGJkbyxiaWcsYnIsY2l0ZSxjb2RlLGRlbCxkZm4sZW0sZm9udCxpLGltZyxpbnMsa2JkLGxhYmVsLG1hcCxtYXJrLHBpY3R1cmUscSxydWJ5LHJwLHJ0LHMsc2FtcCxzbWFsbCxzb3VyY2Usc3BhbixzdHJpa2Usc3Ryb25nLHN1YixzdXAsdGltZSx0cmFjayx0dCx1LHZhcix2aWRlbyIpKSxBcz1Qcyh3cyxScyxFcyxEcyksVHM9T3MoImJhY2tncm91bmQsY2l0ZSxocmVmLGl0ZW10eXBlLGxvbmdkZXNjLHBvc3RlcixzcmMseGxpbms6aHJlZiIpLE5zPU9zKCJzcmNzZXQiKSx6cz1PcygiYWJicixhY2Nlc3NrZXksYWxpZ24sYWx0LGF1dG9wbGF5LGF4aXMsYmdjb2xvcixib3JkZXIsY2VsbHBhZGRpbmcsY2VsbHNwYWNpbmcsY2xhc3MsY2xlYXIsY29sb3IsY29scyxjb2xzcGFuLGNvbXBhY3QsY29udHJvbHMsY29vcmRzLGRhdGV0aW1lLGRlZmF1bHQsZGlyLGRvd25sb2FkLGZhY2UsaGVhZGVycyxoZWlnaHQsaGlkZGVuLGhyZWZsYW5nLGhzcGFjZSxpc21hcCxpdGVtc2NvcGUsaXRlbXByb3Asa2luZCxsYWJlbCxsYW5nLGxhbmd1YWdlLGxvb3AsbWVkaWEsbXV0ZWQsbm9ocmVmLG5vd3JhcCxvcGVuLHByZWxvYWQscmVsLHJldixyb2xlLHJvd3Mscm93c3BhbixydWxlcyxzY29wZSxzY3JvbGxpbmcsc2hhcGUsc2l6ZSxzaXplcyxzcGFuLHNyY2xhbmcsc3RhcnQsc3VtbWFyeSx0YWJpbmRleCx0YXJnZXQsdGl0bGUsdHJhbnNsYXRlLHR5cGUsdXNlbWFwLHZhbGlnbix2YWx1ZSx2c3BhY2Usd2lkdGgiKSxJcz1PcygiYXJpYS1hY3RpdmVkZXNjZW5kYW50LGFyaWEtYXRvbWljLGFyaWEtYXV0b2NvbXBsZXRlLGFyaWEtYnVzeSxhcmlhLWNoZWNrZWQsYXJpYS1jb2xjb3VudCxhcmlhLWNvbGluZGV4LGFyaWEtY29sc3BhbixhcmlhLWNvbnRyb2xzLGFyaWEtY3VycmVudCxhcmlhLWRlc2NyaWJlZGJ5LGFyaWEtZGV0YWlscyxhcmlhLWRpc2FibGVkLGFyaWEtZHJvcGVmZmVjdCxhcmlhLWVycm9ybWVzc2FnZSxhcmlhLWV4cGFuZGVkLGFyaWEtZmxvd3RvLGFyaWEtZ3JhYmJlZCxhcmlhLWhhc3BvcHVwLGFyaWEtaGlkZGVuLGFyaWEtaW52YWxpZCxhcmlhLWtleXNob3J0Y3V0cyxhcmlhLWxhYmVsLGFyaWEtbGFiZWxsZWRieSxhcmlhLWxldmVsLGFyaWEtbGl2ZSxhcmlhLW1vZGFsLGFyaWEtbXVsdGlsaW5lLGFyaWEtbXVsdGlzZWxlY3RhYmxlLGFyaWEtb3JpZW50YXRpb24sYXJpYS1vd25zLGFyaWEtcGxhY2Vob2xkZXIsYXJpYS1wb3NpbnNldCxhcmlhLXByZXNzZWQsYXJpYS1yZWFkb25seSxhcmlhLXJlbGV2YW50LGFyaWEtcmVxdWlyZWQsYXJpYS1yb2xlZGVzY3JpcHRpb24sYXJpYS1yb3djb3VudCxhcmlhLXJvd2luZGV4LGFyaWEtcm93c3BhbixhcmlhLXNlbGVjdGVkLGFyaWEtc2V0c2l6ZSxhcmlhLXNvcnQsYXJpYS12YWx1ZW1heCxhcmlhLXZhbHVlbWluLGFyaWEtdmFsdWVub3csYXJpYS12YWx1ZXRleHQiKSxIcz1QcyhUcyxOcyx6cyxJcyksRnM9T3MoInNjcmlwdCxzdHlsZSx0ZW1wbGF0ZSIpO2NsYXNzIExze2NvbnN0cnVjdG9yKCl7dGhpcy5zYW5pdGl6ZWRTb21ldGhpbmc9ITEsdGhpcy5idWY9W119c2FuaXRpemVDaGlsZHJlbih0KXtsZXQgZT10LmZpcnN0Q2hpbGQsbj0hMDtmb3IoO2U7KWlmKGUubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERT9uPXRoaXMuc3RhcnRFbGVtZW50KGUpOmUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT90aGlzLmNoYXJzKGUubm9kZVZhbHVlKTp0aGlzLnNhbml0aXplZFNvbWV0aGluZz0hMCxuJiZlLmZpcnN0Q2hpbGQpZT1lLmZpcnN0Q2hpbGQ7ZWxzZSBmb3IoO2U7KXtlLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJnRoaXMuZW5kRWxlbWVudChlKTtsZXQgdD10aGlzLmNoZWNrQ2xvYmJlcmVkRWxlbWVudChlLGUubmV4dFNpYmxpbmcpO2lmKHQpe2U9dDticmVha31lPXRoaXMuY2hlY2tDbG9iYmVyZWRFbGVtZW50KGUsZS5wYXJlbnROb2RlKX1yZXR1cm4gdGhpcy5idWYuam9pbigiIil9c3RhcnRFbGVtZW50KHQpe2NvbnN0IGU9dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO2lmKCFBcy5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4gdGhpcy5zYW5pdGl6ZWRTb21ldGhpbmc9ITAsIUZzLmhhc093blByb3BlcnR5KGUpO3RoaXMuYnVmLnB1c2goIjwiKSx0aGlzLmJ1Zi5wdXNoKGUpO2NvbnN0IG49dC5hdHRyaWJ1dGVzO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKXtjb25zdCBlPW4uaXRlbSh0KSxvPWUubmFtZSxpPW8udG9Mb3dlckNhc2UoKTtpZighSHMuaGFzT3duUHJvcGVydHkoaSkpe3RoaXMuc2FuaXRpemVkU29tZXRoaW5nPSEwO2NvbnRpbnVlfWxldCBhPWUudmFsdWU7VHNbaV0mJihhPXZzKGEpKSxOc1tpXSYmKGE9eHMoYSkpLHRoaXMuYnVmLnB1c2goIiAiLG8sJz0iJyxqcyhhKSwnIicpfXJldHVybiB0aGlzLmJ1Zi5wdXNoKCI+IiksITB9ZW5kRWxlbWVudCh0KXtjb25zdCBlPXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtBcy5oYXNPd25Qcm9wZXJ0eShlKSYmIXdzLmhhc093blByb3BlcnR5KGUpJiYodGhpcy5idWYucHVzaCgiPC8iKSx0aGlzLmJ1Zi5wdXNoKGUpLHRoaXMuYnVmLnB1c2goIj4iKSl9Y2hhcnModCl7dGhpcy5idWYucHVzaChqcyh0KSl9Y2hlY2tDbG9iYmVyZWRFbGVtZW50KHQsZSl7aWYoZSYmKHQuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZSkmTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkpPT09Tm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkpdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gc2FuaXRpemUgaHRtbCBiZWNhdXNlIHRoZSBlbGVtZW50IGlzIGNsb2JiZXJlZDogJHt0Lm91dGVySFRNTH1gKTtyZXR1cm4gZX19Y29uc3QgQnM9L1tcdUQ4MDAtXHVEQkZGXVtcdURDMDAtXHVERkZGXS9nLFZzPS8oW15cIy1+IHwhXSkvZztmdW5jdGlvbiBqcyh0KXtyZXR1cm4gdC5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZShCcywoZnVuY3Rpb24odCl7cmV0dXJuIiYjIisoMTAyNCoodC5jaGFyQ29kZUF0KDApLTU1Mjk2KSsodC5jaGFyQ29kZUF0KDEpLTU2MzIwKSs2NTUzNikrIjsifSkpLnJlcGxhY2UoVnMsKGZ1bmN0aW9uKHQpe3JldHVybiImIyIrdC5jaGFyQ29kZUF0KDApKyI7In0pKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKX1sZXQgVXM7ZnVuY3Rpb24gV3ModCxlKXtsZXQgbj1udWxsO3RyeXtVcz1Vc3x8YnModCk7bGV0IG89ZT9TdHJpbmcoZSk6IiI7bj1Vcy5nZXRJbmVydEJvZHlFbGVtZW50KG8pO2xldCBpPTUsYT1vO2Rve2lmKDA9PT1pKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIHNhbml0aXplIGh0bWwgYmVjYXVzZSB0aGUgaW5wdXQgaXMgdW5zdGFibGUiKTtpLS0sbz1hLGE9bi5pbm5lckhUTUwsbj1Vcy5nZXRJbmVydEJvZHlFbGVtZW50KG8pfXdoaWxlKG8hPT1hKTtjb25zdCByPW5ldyBMcyxzPXIuc2FuaXRpemVDaGlsZHJlbihHcyhuKXx8bik7cmV0dXJuKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZyLnNhbml0aXplZFNvbWV0aGluZyYmY29uc29sZS53YXJuKCJXQVJOSU5HOiBzYW5pdGl6aW5nIEhUTUwgc3RyaXBwZWQgc29tZSBjb250ZW50LCBzZWUgaHR0cHM6Ly9nLmNvL25nL3NlY3VyaXR5I3hzcyIpLG5zKHMpfWZpbmFsbHl7aWYobil7Y29uc3QgdD1HcyhuKXx8bjtmb3IoO3QuZmlyc3RDaGlsZDspdC5yZW1vdmVDaGlsZCh0LmZpcnN0Q2hpbGQpfX19ZnVuY3Rpb24gR3ModCl7cmV0dXJuImNvbnRlbnQiaW4gdCYmKGZ1bmN0aW9uIGUodCl7cmV0dXJuIHQubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmIlRFTVBMQVRFIj09PXQubm9kZU5hbWV9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLykodCk/dC5jb250ZW50Om51bGx9dmFyIFlzOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gcXModCl7Y29uc3QgZT1lbCgpO3JldHVybiBlP2FzKGUuc2FuaXRpemUoWXMuSFRNTCx0KXx8IiIpOmdzKHQsIkhUTUwiKT9hcyh1cyh0KSk6V3MoaWkoKSxybih0KSl9ZnVuY3Rpb24gWnModCl7Y29uc3QgZT1lbCgpO3JldHVybiBlP2Uuc2FuaXRpemUoWXMuU1RZTEUsdCl8fCIiOmdzKHQsIlN0eWxlIik/dXModCk6cm4odCl9ZnVuY3Rpb24gWHModCl7Y29uc3QgZT1lbCgpO3JldHVybiBlP2Uuc2FuaXRpemUoWXMuVVJMLHQpfHwiIjpncyh0LCJVUkwiKT91cyh0KTp2cyhybih0KSl9ZnVuY3Rpb24gS3ModCl7Y29uc3QgZT1lbCgpO2lmKGUpcmV0dXJuIHNzKGUuc2FuaXRpemUoWXMuUkVTT1VSQ0VfVVJMLHQpfHwiIik7aWYoZ3ModCwiUmVzb3VyY2VVUkwiKSlyZXR1cm4gc3ModXModCkpO3Rocm93IG5ldyBFcnJvcigidW5zYWZlIHZhbHVlIHVzZWQgaW4gYSByZXNvdXJjZSBVUkwgY29udGV4dCAoc2VlIGh0dHBzOi8vZy5jby9uZy9zZWN1cml0eSN4c3MpIil9ZnVuY3Rpb24gSnModCl7Y29uc3QgZT1lbCgpO2lmKGUpcmV0dXJuIHJzKGUuc2FuaXRpemUoWXMuU0NSSVBULHQpfHwiIik7aWYoZ3ModCwiU2NyaXB0IikpcmV0dXJuIHJzKHVzKHQpKTt0aHJvdyBuZXcgRXJyb3IoInVuc2FmZSB2YWx1ZSB1c2VkIGluIGEgc2NyaXB0IGNvbnRleHQiKX1mdW5jdGlvbiBRcyh0KXtpZihuZ0Rldk1vZGUmJighQXJyYXkuaXNBcnJheSh0KXx8IUFycmF5LmlzQXJyYXkodC5yYXcpfHwxIT09dC5sZW5ndGgpKXRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBpbnRlcnBvbGF0aW9uIGluIHRydXN0ZWQgSFRNTCBjb25zdGFudDogJHt0LmpvaW4oIj8iKX1gKTtyZXR1cm4gbnModFswXSl9ZnVuY3Rpb24gJHModCl7aWYobmdEZXZNb2RlJiYoIUFycmF5LmlzQXJyYXkodCl8fCFBcnJheS5pc0FycmF5KHQucmF3KXx8MSE9PXQubGVuZ3RoKSl0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgaW50ZXJwb2xhdGlvbiBpbiB0cnVzdGVkIFVSTCBjb25zdGFudDogJHt0LmpvaW4oIj8iKX1gKTtyZXR1cm4oZnVuY3Rpb24gZSh0KXt2YXIgZTtyZXR1cm4obnVsbD09PShlPWVzKCkpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmNyZWF0ZVNjcmlwdFVSTCh0KSl8fHR9KSh0WzBdKX1mdW5jdGlvbiB0bCh0LGUsbil7cmV0dXJuKGZ1bmN0aW9uIG8odCxlKXtyZXR1cm4ic3JjIj09PWUmJigiZW1iZWQiPT09dHx8ImZyYW1lIj09PXR8fCJpZnJhbWUiPT09dHx8Im1lZGlhIj09PXR8fCJzY3JpcHQiPT09dCl8fCJocmVmIj09PWUmJigiYmFzZSI9PT10fHwibGluayI9PT10KT9LczpYc30pKGUsbikodCl9ZnVuY3Rpb24gZWwoKXtjb25zdCB0PXhpKCk7cmV0dXJuIHQmJnRbMTJdfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBubCh0KXtsZXQgZT1ybCh0KTtpZihlKXtpZihBcnJheS5pc0FycmF5KGUpKXtjb25zdCBuPWU7bGV0IG8saSxhO2lmKChmdW5jdGlvbiBuKHQpe3JldHVybiB0JiZ0LmNvbnN0cnVjdG9yJiZ0LmNvbnN0cnVjdG9yLsm1Y21wfSkodCkpe2lmKG89ZGwobix0KSwtMT09byl0aHJvdyBuZXcgRXJyb3IoIlRoZSBwcm92aWRlZCBjb21wb25lbnQgd2FzIG5vdCBmb3VuZCBpbiB0aGUgYXBwbGljYXRpb24iKTtpPXR9ZWxzZSBpZigoZnVuY3Rpb24gbyh0KXtyZXR1cm4gdCYmdC5jb25zdHJ1Y3RvciYmdC5jb25zdHJ1Y3Rvci7JtWRpcn0pKHQpKXtpZihvPShmdW5jdGlvbiBpKHQsZSl7bGV0IG49dFsxXS5maXJzdENoaWxkO2Zvcig7bjspe2NvbnN0IG89bi5kaXJlY3RpdmVFbmQ7Zm9yKGxldCBpPW4uZGlyZWN0aXZlU3RhcnQ7aTxvO2krKylpZih0W2ldPT09ZSlyZXR1cm4gbi5pbmRleDtuPWNsKG4pfXJldHVybi0xfSkobix0KSwtMT09byl0aHJvdyBuZXcgRXJyb3IoIlRoZSBwcm92aWRlZCBkaXJlY3RpdmUgd2FzIG5vdCBmb3VuZCBpbiB0aGUgYXBwbGljYXRpb24iKTthPXBsKG8sbiwhMSl9ZWxzZSBpZihvPWxsKG4sdCksLTE9PW8pcmV0dXJuIG51bGw7Y29uc3Qgcj1saShuW29dKSxzPXJsKHIpLGw9cyYmIUFycmF5LmlzQXJyYXkocyk/czpvbChuLG8scik7aWYoaSYmdm9pZCAwPT09bC5jb21wb25lbnQmJihsLmNvbXBvbmVudD1pLGFsKGwuY29tcG9uZW50LGwpKSxhJiZ2b2lkIDA9PT1sLmRpcmVjdGl2ZXMpe2wuZGlyZWN0aXZlcz1hO2ZvcihsZXQgdD0wO3Q8YS5sZW5ndGg7dCsrKWFsKGFbdF0sbCl9YWwobC5uYXRpdmUsbCksZT1sfX1lbHNle2NvbnN0IG49dDtuZ0Rldk1vZGUmJlBuKG4pO2xldCBvPW47Zm9yKDtvPW8ucGFyZW50Tm9kZTspe2NvbnN0IHQ9cmwobyk7aWYodCl7bGV0IG87aWYobz1BcnJheS5pc0FycmF5KHQpP3Q6dC5sVmlldywhbylyZXR1cm4gbnVsbDtjb25zdCBpPWxsKG8sbik7aWYoaT49MCl7Y29uc3QgdD1saShvW2ldKSxuPW9sKG8saSx0KTthbCh0LG4pLGU9bjticmVha319fX1yZXR1cm4gZXx8bnVsbH1mdW5jdGlvbiBvbCh0LGUsbil7cmV0dXJue2xWaWV3OnQsbm9kZUluZGV4OmUsbmF0aXZlOm4sY29tcG9uZW50OnZvaWQgMCxkaXJlY3RpdmVzOnZvaWQgMCxsb2NhbFJlZnM6dm9pZCAwfX1mdW5jdGlvbiBpbCh0KXtsZXQgZSxuPXJsKHQpO2lmKEFycmF5LmlzQXJyYXkobikpe2NvbnN0IG89ZGwobix0KTtlPWZpKG8sbik7Y29uc3QgaT1vbChuLG8sZVswXSk7aS5jb21wb25lbnQ9dCxhbCh0LGkpLGFsKGkubmF0aXZlLGkpfWVsc2V7ZT1maShuLm5vZGVJbmRleCxuLmxWaWV3KX1yZXR1cm4gZX0hKGZ1bmN0aW9uKHQpe3RbdC5OT05FPTBdPSJOT05FIix0W3QuSFRNTD0xXT0iSFRNTCIsdFt0LlNUWUxFPTJdPSJTVFlMRSIsdFt0LlNDUklQVD0zXT0iU0NSSVBUIix0W3QuVVJMPTRdPSJVUkwiLHRbdC5SRVNPVVJDRV9VUkw9NV09IlJFU09VUkNFX1VSTCJ9KShZc3x8KFlzPXt9KSk7ZnVuY3Rpb24gYWwodCxlKXtuZ0Rldk1vZGUmJnhuKHQsIlRhcmdldCBleHBlY3RlZCIpLHQuX19uZ0NvbnRleHRfXz1lfWZ1bmN0aW9uIHJsKHQpe3JldHVybiBuZ0Rldk1vZGUmJnhuKHQsIlRhcmdldCBleHBlY3RlZCIpLHQuX19uZ0NvbnRleHRfX3x8bnVsbH1mdW5jdGlvbiBzbCh0KXtjb25zdCBlPXJsKHQpO3JldHVybiBlP0FycmF5LmlzQXJyYXkoZSk/ZTplLmxWaWV3Om51bGx9ZnVuY3Rpb24gbGwodCxlKXtjb25zdCBuPXRbMV07Zm9yKGxldCBvPXZvO288bi5iaW5kaW5nU3RhcnRJbmRleDtvKyspaWYobGkodFtvXSk9PT1lKXJldHVybiBvO3JldHVybi0xfWZ1bmN0aW9uIGNsKHQpe2lmKHQuY2hpbGQpcmV0dXJuIHQuY2hpbGQ7aWYodC5uZXh0KXJldHVybiB0Lm5leHQ7Zm9yKDt0LnBhcmVudCYmIXQucGFyZW50Lm5leHQ7KXQ9dC5wYXJlbnQ7cmV0dXJuIHQucGFyZW50JiZ0LnBhcmVudC5uZXh0fWZ1bmN0aW9uIGRsKHQsZSl7Y29uc3Qgbj10WzFdLmNvbXBvbmVudHM7aWYobilmb3IobGV0IG89MDtvPG4ubGVuZ3RoO28rKyl7Y29uc3QgaT1uW29dO2lmKGZpKGksdClbOF09PT1lKXJldHVybiBpfWVsc2V7aWYoZmkodm8sdClbOF09PT1lKXJldHVybiB2b31yZXR1cm4tMX1mdW5jdGlvbiBwbCh0LGUsbil7Y29uc3Qgbz1lWzFdLmRhdGFbdF07bGV0IGk9by5kaXJlY3RpdmVTdGFydDtpZigwPT1pKXJldHVybiBRbjtyZXR1cm4hbiYmMiZvLmZsYWdzJiZpKyssZS5zbGljZShpLG8uZGlyZWN0aXZlRW5kKX1mdW5jdGlvbiBtbCh0KXtyZXR1cm4gdC5uZ09yaWdpbmFsRXJyb3J9ZnVuY3Rpb24gZmwodCwuLi5lKXt0LmVycm9yKC4uLmUpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyB1bHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2NvbnNvbGU9Y29uc29sZX1oYW5kbGVFcnJvcih0KXtjb25zdCBlPXRoaXMuX2ZpbmRPcmlnaW5hbEVycm9yKHQpLG49dGhpcy5fZmluZENvbnRleHQodCksbz0oZnVuY3Rpb24gaSh0KXtyZXR1cm4gdCYmdC5uZ0Vycm9yTG9nZ2VyfHxmbH0pKHQpO28odGhpcy5fY29uc29sZSwiRVJST1IiLHQpLGUmJm8odGhpcy5fY29uc29sZSwiT1JJR0lOQUwgRVJST1IiLGUpLG4mJm8odGhpcy5fY29uc29sZSwiRVJST1IgQ09OVEVYVCIsbil9X2ZpbmRDb250ZXh0KHQpe3JldHVybiB0PyhmdW5jdGlvbiBlKHQpe3JldHVybiB0Lm5nRGVidWdDb250ZXh0fSkodCl8fHRoaXMuX2ZpbmRDb250ZXh0KG1sKHQpKTpudWxsfV9maW5kT3JpZ2luYWxFcnJvcih0KXtsZXQgZT10JiZtbCh0KTtmb3IoO2UmJm1sKGUpOyllPW1sKGUpO3JldHVybiBlfHxudWxsfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgZ2w9e25hbWU6ImN1c3RvbS1lbGVtZW50cyJ9LGhsPXtuYW1lOiJuby1lcnJvcnMtc2NoZW1hIn0sYmw9L14+fF4tPnw8IS0tfC0tPnwtLSE+fDwhLSQvZyx5bD0vKDx8PikvO2Z1bmN0aW9uIF9sKHQpe3JldHVybiB0LnJlcGxhY2UoYmwsKHQ9PnQucmVwbGFjZSh5bCwi4oCLJDHigIsiKSkpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBDbCh0KXtpZighbmdEZXZNb2RlKXRocm93IG5ldyBFcnJvcigiTG9va3MgbGlrZSB3ZSBhcmUgaW4gJ3Byb2QgbW9kZScsIGJ1dCB3ZSBhcmUgY3JlYXRpbmcgYSBuYW1lZCBBcnJheSB0eXBlLCB3aGljaCBpcyB3cm9uZyEgQ2hlY2sgeW91ciBjb2RlIik7dHJ5e3JldHVybiBvcygiQXJyYXkiLGByZXR1cm4gY2xhc3MgJHt0fSBleHRlbmRzIEFycmF5e31gKShBcnJheSl9Y2F0Y2godCl7cmV0dXJuIEFycmF5fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gTWwodCl7cmV0dXJuYG5nLXJlZmxlY3QtJHt0PShmdW5jdGlvbiBlKHQpe3JldHVybiB0LnJlcGxhY2UodmwsKCguLi50KT0+Ii0iK3RbMV0udG9Mb3dlckNhc2UoKSkpfSkodC5yZXBsYWNlKC9bJEBdL2csIl8iKSl9YH1jb25zdCB2bD0vKFtBLVpdKS9nOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgeGw9KCJ1bmRlZmluZWQiIT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHNldFRpbWVvdXQpLmJpbmQoWG4pO2Z1bmN0aW9uIE9sKHQpe3JldHVybiB0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd9ZnVuY3Rpb24gUGwodCl7cmV0dXJuIHQub3duZXJEb2N1bWVudH1mdW5jdGlvbiB3bCh0KXtyZXR1cm4gdC5vd25lckRvY3VtZW50LmJvZHl9Y29uc3Qga2w9Iu+/vSI7ZnVuY3Rpb24gU2wodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBGdW5jdGlvbj90KCk6dH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gRGwodCl7dGhyb3cgbmV3IG5uKCIzMDAiLGBNdWx0aXBsZSBjb21wb25lbnRzIG1hdGNoIG5vZGUgd2l0aCB0YWduYW1lICR7dC52YWx1ZX1gKX1mdW5jdGlvbiBSbCh0LGUsbixvLGkpe2NvbnN0W2EsciwuLi5zXT1vLnNwbGl0KGtsKTtsZXQgbD1yLGM9cjtmb3IobGV0IG89MDtvPHMubGVuZ3RoO28rKyl7Y29uc3QgYT1lK287bCs9YCR7dFthXX0ke3Nbb119YCxjKz1gJHthPT09bj9pOnRbYV19JHtzW29dfWB9cmV0dXJue3Byb3BOYW1lOmEsb2xkVmFsdWU6bCxuZXdWYWx1ZTpjfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCnZhciBFbDsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmxldCBBbDtmdW5jdGlvbiBUbCh0LGUpe3JldHVybiBBbCh0LGUpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gTmwodCl7bmdEZXZNb2RlJiZGbyh0KTtjb25zdCBlPXRbM107cmV0dXJuIHdvKGUpP2VbM106ZX1mdW5jdGlvbiB6bCh0KXtjb25zdCBlPShmdW5jdGlvbiBuKHQpe25nRGV2TW9kZSYmeG4odCwiY29tcG9uZW50Iik7bGV0IGU9UG8odCk/dDpzbCh0KTtmb3IoO2UmJiEoNTEyJmVbMl0pOyllPU5sKGUpO3JldHVybiBuZ0Rldk1vZGUmJkZvKGUpLGV9KSh0KTtyZXR1cm4gbmdEZXZNb2RlJiZ4bihlWzhdLCJSb290VmlldyBoYXMgbm8gY29udGV4dC4gUGVyaGFwcyBpdCBpcyBkaXNjb25uZWN0ZWQ/IiksZVs4XX1mdW5jdGlvbiBJbCh0KXtyZXR1cm4gRmwodFsxM10pfWZ1bmN0aW9uIEhsKHQpe3JldHVybiBGbCh0WzRdKX1mdW5jdGlvbiBGbCh0KXtmb3IoO251bGwhPT10JiYhd28odCk7KXQ9dFs0XTtyZXR1cm4gdH1mdW5jdGlvbiBMbCh0LGUsbixvLGkpe2lmKG51bGwhPW8pe2xldCBhLHI9ITE7d28obyk/YT1vOlBvKG8pJiYocj0hMCxuZ0Rldk1vZGUmJnhuKG9bMF0sIkhPU1QgbXVzdCBiZSBkZWZpbmVkIGZvciBhIGNvbXBvbmVudCBMVmlldyIpLG89b1swXSk7Y29uc3Qgcz1saShvKTtuZ0Rldk1vZGUmJiFyaShlKSYmUG4ocyksMD09PXQmJm51bGwhPT1uP251bGw9PWk/UWwoZSxuLHMpOkpsKGUsbixzLGl8fG51bGwsITApOjE9PT10JiZudWxsIT09bj9KbChlLG4scyxpfHxudWxsLCEwKToyPT09dD9kYyhlLHMscik6Mz09PXQmJihuZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlckRlc3Ryb3lOb2RlKyssZS5kZXN0cm95Tm9kZShzKSksbnVsbCE9YSYmKGZ1bmN0aW9uIGEodCxlLG4sbyxpKXtuZ0Rldk1vZGUmJklvKG4pO2NvbnN0IGE9bls3XSxyPWxpKG4pO2EhPT1yJiZMbChlLHQsbyxhLGkpO2ZvcihsZXQgaT1PbztpPG4ubGVuZ3RoO2krKyl7Y29uc3Qgcj1uW2ldO21jKHJbMV0scix0LGUsbyxhKX19KShlLHQsYSxuLGkpfX1mdW5jdGlvbiBCbCh0LGUpe3JldHVybiBuZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlckNyZWF0ZVRleHROb2RlKyssbmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJTZXRUZXh0KysscmkodCk/dC5jcmVhdGVUZXh0KGUpOnQuY3JlYXRlVGV4dE5vZGUoZSl9ZnVuY3Rpb24gVmwodCxlLG4pe25nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyU2V0VGV4dCsrLHJpKHQpP3Quc2V0VmFsdWUoZSxuKTplLnRleHRDb250ZW50PW59ZnVuY3Rpb24gamwodCxlKXtyZXR1cm4gbmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJDcmVhdGVDb21tZW50KyssdC5jcmVhdGVDb21tZW50KF9sKGUpKX1mdW5jdGlvbiBVbCh0LGUsbil7cmV0dXJuIG5nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyQ3JlYXRlRWxlbWVudCsrLHJpKHQpP3QuY3JlYXRlRWxlbWVudChlLG4pOm51bGw9PT1uP3QuY3JlYXRlRWxlbWVudChlKTp0LmNyZWF0ZUVsZW1lbnROUyhuLGUpfWZ1bmN0aW9uIFdsKHQsZSxuLG8pe25nRGV2TW9kZSYmRm8oZSksbmdEZXZNb2RlJiZJbyhuKTtjb25zdCBpPU9vK28sYT1uLmxlbmd0aDtvPjAmJihuW2ktMV1bNF09ZSksbzxhLU9vPyhlWzRdPW5baV0sZnIobixPbytvLGUpKToobi5wdXNoKGUpLGVbNF09bnVsbCksZVszXT1uO2NvbnN0IHI9ZVsxN107bnVsbCE9PXImJm4hPT1yJiYoZnVuY3Rpb24gcyh0LGUpe25nRGV2TW9kZSYmeG4oZSwiTFZpZXcgcmVxdWlyZWQiKSxuZ0Rldk1vZGUmJklvKHQpO2NvbnN0IG49dFs5XSxvPWVbM107bmdEZXZNb2RlJiZJbyhvKTtjb25zdCBpPW9bM11bMTZdO25nRGV2TW9kZSYmeG4oaSwiTWlzc2luZyBpbnNlcnRlZENvbXBvbmVudExWaWV3Iik7Y29uc3QgYT1lWzE2XTtuZ0Rldk1vZGUmJnhuKGEsIk1pc3NpbmcgZGVjbGFyZWRDb21wb25lbnRMVmlldyIpLGEhPT1pJiYodFsyXT0hMCk7bnVsbD09PW4/dFs5XT1bZV06bi5wdXNoKGUpfSkocixlKTtjb25zdCBsPWVbMTldO251bGwhPT1sJiZsLmluc2VydFZpZXcodCksZVsyXXw9MTI4fWZ1bmN0aW9uIEdsKHQsZSl7bmdEZXZNb2RlJiZJbyh0KSxuZ0Rldk1vZGUmJnhuKHRbOV0sIkEgcHJvamVjdGVkIHZpZXcgc2hvdWxkIGJlbG9uZyB0byBhIG5vbi1lbXB0eSBwcm9qZWN0ZWQgdmlld3MgY29sbGVjdGlvbiIpO2NvbnN0IG49dFs5XSxvPW4uaW5kZXhPZihlKSxpPWVbM107bmdEZXZNb2RlJiZJbyhpKSwxMDI0JmVbMl0mJihlWzJdJj0tMTAyNSx5aShpLC0xKSksbi5zcGxpY2UobywxKX1mdW5jdGlvbiBZbCh0LGUpe2lmKHQubGVuZ3RoPD1PbylyZXR1cm47Y29uc3Qgbj1PbytlLG89dFtuXTtpZihvKXtjb25zdCBpPW9bMTddO251bGwhPT1pJiZpIT09dCYmR2woaSxvKSxlPjAmJih0W24tMV1bNF09b1s0XSk7Y29uc3QgYT11cih0LE9vK2UpOyEoZnVuY3Rpb24gaSh0LGUpe21jKHQsZSxlWzExXSwyLG51bGwsbnVsbCksZVswXT1udWxsLGVbNl09bnVsbH0pKG9bMV0sbyk7Y29uc3Qgcj1hWzE5XTtudWxsIT09ciYmci5kZXRhY2hWaWV3KGFbMV0pLG9bM109bnVsbCxvWzRdPW51bGwsb1syXSY9LTEyOX1yZXR1cm4gb31mdW5jdGlvbiBxbCh0LGUpe2lmKCEoMjU2JmVbMl0pKXtjb25zdCBuPWVbMTFdO3JpKG4pJiZuLmRlc3Ryb3lOb2RlJiZtYyh0LGUsbiwzLG51bGwsbnVsbCksKGZ1bmN0aW9uIG4odCl7bGV0IGU9dFsxM107aWYoIWUpcmV0dXJuIFpsKHRbMV0sdCk7Zm9yKDtlOyl7bGV0IG49bnVsbDtpZihQbyhlKSluPWVbMTNdO2Vsc2V7bmdEZXZNb2RlJiZJbyhlKTtjb25zdCB0PWVbMTBdO3QmJihuPXQpfWlmKCFuKXtmb3IoO2UmJiFlWzRdJiZlIT09dDspUG8oZSkmJlpsKGVbMV0sZSksZT1lWzNdO251bGw9PT1lJiYoZT10KSxQbyhlKSYmWmwoZVsxXSxlKSxuPWUmJmVbNF19ZT1ufX0pKGUpfX1mdW5jdGlvbiBabCh0LGUpe2lmKCEoMjU2JmVbMl0pKXtlWzJdJj0tMTI5LGVbMl18PTI1NiwoZnVuY3Rpb24gbih0LGUpe2xldCBuO2lmKG51bGwhPXQmJm51bGwhPShuPXQuZGVzdHJveUhvb2tzKSlmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoO3QrPTIpe2NvbnN0IG89ZVtuW3RdXTtpZighKG8gaW5zdGFuY2VvZiBmYSkpe2NvbnN0IGU9blt0KzFdO2lmKEFycmF5LmlzQXJyYXkoZSkpZm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kz0yKXtjb25zdCBuPW9bZVt0XV0saT1lW3QrMV07dGkoNCxuLGkpO3RyeXtpLmNhbGwobil9ZmluYWxseXt0aSg1LG4saSl9fWVsc2V7dGkoNCxvLGUpO3RyeXtlLmNhbGwobyl9ZmluYWxseXt0aSg1LG8sZSl9fX19fSkodCxlKSwoZnVuY3Rpb24gbyh0LGUpe2NvbnN0IG49dC5jbGVhbnVwLG89ZVs3XTtsZXQgaT0tMTtpZihudWxsIT09bilmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoLTE7dCs9MilpZigic3RyaW5nIj09dHlwZW9mIG5bdF0pe2NvbnN0IGE9blt0KzFdLHI9ImZ1bmN0aW9uIj09dHlwZW9mIGE/YShlKTpsaShlW2FdKSxzPW9baT1uW3QrMl1dLGw9blt0KzNdOyJib29sZWFuIj09dHlwZW9mIGw/ci5yZW1vdmVFdmVudExpc3RlbmVyKG5bdF0scyxsKTpsPj0wP29baT1sXSgpOm9baT0tbF0udW5zdWJzY3JpYmUoKSx0Kz0yfWVsc2V7Y29uc3QgZT1vW2k9blt0KzFdXTtuW3RdLmNhbGwoZSl9aWYobnVsbCE9PW8pe2ZvcihsZXQgdD1pKzE7dDxvLmxlbmd0aDt0Kyspe2NvbnN0IGU9b1t0XTtuZ0Rldk1vZGUmJnVuKGUsIkV4cGVjdGluZyBpbnN0YW5jZSBjbGVhbnVwIGZ1bmN0aW9uLiIpLGUoKX1lWzddPW51bGx9fSkodCxlKSwxPT09ZVsxXS50eXBlJiZyaShlWzExXSkmJihuZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlckRlc3Ryb3krKyxlWzExXS5kZXN0cm95KCkpO2NvbnN0IG49ZVsxN107aWYobnVsbCE9PW4mJndvKGVbM10pKXtuIT09ZVszXSYmR2wobixlKTtjb25zdCBvPWVbMTldO251bGwhPT1vJiZvLmRldGFjaFZpZXcodCl9fX1mdW5jdGlvbiBYbCh0LGUsbil7cmV0dXJuIEtsKHQsZS5wYXJlbnQsbil9ZnVuY3Rpb24gS2wodCxlLG4pe2xldCBvPWU7Zm9yKDtudWxsIT09byYmNDAmby50eXBlOylvPShlPW8pLnBhcmVudDtpZihudWxsPT09bylyZXR1cm4gblswXTtpZihuZ0Rldk1vZGUmJmdhKG8sNyksMiZvLmZsYWdzKXtuZ0Rldk1vZGUmJkVvKG8sbik7Y29uc3QgZT10LmRhdGFbby5kaXJlY3RpdmVTdGFydF0uZW5jYXBzdWxhdGlvbjtpZihlPT09V24uTm9uZXx8ZT09PVduLkVtdWxhdGVkKXJldHVybiBudWxsfXJldHVybiBkaShvLG4pfWZ1bmN0aW9uIEpsKHQsZSxuLG8saSl7bmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJJbnNlcnRCZWZvcmUrKyxyaSh0KT90Lmluc2VydEJlZm9yZShlLG4sbyxpKTplLmluc2VydEJlZm9yZShuLG8saSl9ZnVuY3Rpb24gUWwodCxlLG4pe25nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyQXBwZW5kQ2hpbGQrKyxuZ0Rldk1vZGUmJnhuKGUsInBhcmVudCBub2RlIG11c3QgYmUgZGVmaW5lZCIpLHJpKHQpP3QuYXBwZW5kQ2hpbGQoZSxuKTplLmFwcGVuZENoaWxkKG4pfWZ1bmN0aW9uICRsKHQsZSxuLG8saSl7bnVsbCE9PW8/SmwodCxlLG4sbyxpKTpRbCh0LGUsbil9ZnVuY3Rpb24gdGModCxlKXtyZXR1cm4gcmkodCk/dC5wYXJlbnROb2RlKGUpOmUucGFyZW50Tm9kZX1mdW5jdGlvbiBlYyh0LGUsbil7cmV0dXJuIGljKHQsZSxuKX1mdW5jdGlvbiBuYyh0LGUsbil7cmV0dXJuIDQwJnQudHlwZT9kaSh0LG4pOm51bGx9IShmdW5jdGlvbih0KXt0W3QuSW1wb3J0YW50PTFdPSJJbXBvcnRhbnQiLHRbdC5EYXNoQ2FzZT0yXT0iRGFzaENhc2UifSkoRWx8fChFbD17fSkpO2xldCBvYyxpYz1uYztmdW5jdGlvbiBhYyh0LGUpe2ljPXQsb2M9ZX1mdW5jdGlvbiByYyh0LGUsbixvKXtjb25zdCBpPVhsKHQsbyxlKSxhPWVbMTFdLHI9ZWMoby5wYXJlbnR8fGVbNl0sbyxlKTtpZihudWxsIT1pKWlmKEFycmF5LmlzQXJyYXkobikpZm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0KyspJGwoYSxpLG5bdF0sciwhMSk7ZWxzZSAkbChhLGksbixyLCExKTt2b2lkIDAhPT1vYyYmb2MoYSxvLGUsbixpKX1mdW5jdGlvbiBzYyh0LGUpe2lmKG51bGwhPT1lKXtuZ0Rldk1vZGUmJmdhKGUsNjMpO2NvbnN0IG49ZS50eXBlO2lmKDMmbilyZXR1cm4gZGkoZSx0KTtpZig0Jm4pcmV0dXJuIGNjKC0xLHRbZS5pbmRleF0pO2lmKDgmbil7Y29uc3Qgbj1lLmNoaWxkO2lmKG51bGwhPT1uKXJldHVybiBzYyh0LG4pO3tjb25zdCBuPXRbZS5pbmRleF07cmV0dXJuIHdvKG4pP2NjKC0xLG4pOmxpKG4pfX1pZigzMiZuKXtyZXR1cm4gVGwoZSx0KSgpfHxsaSh0W2UuaW5kZXhdKX17Y29uc3Qgbj1sYyh0LGUpO2lmKG51bGwhPT1uKXtpZihBcnJheS5pc0FycmF5KG4pKXJldHVybiBuWzBdO2NvbnN0IGU9TmwodFsxNl0pO3JldHVybiBuZ0Rldk1vZGUmJlVvKGUpLHNjKGUsbil9cmV0dXJuIHNjKHQsZS5uZXh0KX19cmV0dXJuIG51bGx9ZnVuY3Rpb24gbGModCxlKXtpZihudWxsIT09ZSl7Y29uc3Qgbj10WzE2XVs2XSxvPWUucHJvamVjdGlvbjtyZXR1cm4gbmdEZXZNb2RlJiYoZnVuY3Rpb24gbih0LGUpe3huKHRbMTZdLCJDb21wb25lbnQgdmlld3Mgc2hvdWxkIGV4aXN0LiIpLHhuKHRbMTZdWzZdLnByb2plY3Rpb24sZXx8IkNvbXBvbmVudHMgd2l0aCBwcm9qZWN0aW9uIG5vZGVzICg8bmctY29udGVudD4pIG11c3QgaGF2ZSBwcm9qZWN0aW9uIHNsb3RzIGRlZmluZWQuIil9KSh0KSxuLnByb2plY3Rpb25bb119cmV0dXJuIG51bGx9ZnVuY3Rpb24gY2ModCxlKXtjb25zdCBuPU9vK3QrMTtpZihuPGUubGVuZ3RoKXtjb25zdCB0PWVbbl0sbz10WzFdLmZpcnN0Q2hpbGQ7aWYobnVsbCE9PW8pcmV0dXJuIHNjKHQsbyl9cmV0dXJuIGVbN119ZnVuY3Rpb24gZGModCxlLG4pe25nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyUmVtb3ZlTm9kZSsrO2NvbnN0IG89dGModCxlKTtvJiYoZnVuY3Rpb24gaSh0LGUsbixvKXtyaSh0KT90LnJlbW92ZUNoaWxkKGUsbixvKTplLnJlbW92ZUNoaWxkKG4pfSkodCxvLGUsbil9ZnVuY3Rpb24gcGModCxlLG4sbyxpLGEscil7Zm9yKDtudWxsIT1uOyl7bmdEZXZNb2RlJiZFbyhuLG8pLG5nRGV2TW9kZSYmZ2Eobiw2Myk7Y29uc3Qgcz1vW24uaW5kZXhdLGw9bi50eXBlO2lmKHImJjA9PT1lJiYocyYmYWwobGkocyksbyksbi5mbGFnc3w9NCksNjQhPSg2NCZuLmZsYWdzKSlpZig4JmwpcGModCxlLG4uY2hpbGQsbyxpLGEsITEpLExsKGUsdCxpLHMsYSk7ZWxzZSBpZigzMiZsKXtjb25zdCByPVRsKG4sbyk7bGV0IGw7Zm9yKDtsPXIoKTspTGwoZSx0LGksbCxhKTtMbChlLHQsaSxzLGEpfWVsc2UgMTYmbD9mYyh0LGUsbyxuLGksYSk6KG5nRGV2TW9kZSYmZ2Eobiw3KSxMbChlLHQsaSxzLGEpKTtuPXI/bi5wcm9qZWN0aW9uTmV4dDpuLm5leHR9fWZ1bmN0aW9uIG1jKHQsZSxuLG8saSxhKXtwYyhuLG8sdC5maXJzdENoaWxkLGUsaSxhLCExKX1mdW5jdGlvbiBmYyh0LGUsbixvLGksYSl7Y29uc3Qgcj1uWzE2XSxzPXJbNl07bmdEZXZNb2RlJiZnbih0eXBlb2Ygby5wcm9qZWN0aW9uLCJudW1iZXIiLCJleHBlY3RpbmcgcHJvamVjdGlvbiBpbmRleCIpO2NvbnN0IGw9cy5wcm9qZWN0aW9uW28ucHJvamVjdGlvbl07aWYoQXJyYXkuaXNBcnJheShsKSlmb3IobGV0IG49MDtuPGwubGVuZ3RoO24rKyl7TGwoZSx0LGksbFtuXSxhKX1lbHNle3BjKHQsZSxsLHJbM10saSxhLCEwKX19ZnVuY3Rpb24gdWModCxlLG4pe25nRGV2TW9kZSYmZm4obiwiJ25ld1ZhbHVlJyBzaG91bGQgYmUgYSBzdHJpbmciKSxyaSh0KT90LnNldEF0dHJpYnV0ZShlLCJzdHlsZSIsbik6ZS5zdHlsZS5jc3NUZXh0PW4sbmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJTZXRTdHlsZSsrfWZ1bmN0aW9uIGdjKHQsZSxuKXtuZ0Rldk1vZGUmJmZuKG4sIiduZXdWYWx1ZScgc2hvdWxkIGJlIGEgc3RyaW5nIikscmkodCk/IiI9PT1uP3QucmVtb3ZlQXR0cmlidXRlKGUsImNsYXNzIik6dC5zZXRBdHRyaWJ1dGUoZSwiY2xhc3MiLG4pOmUuY2xhc3NOYW1lPW4sbmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJTZXRDbGFzc05hbWUrK30KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gaGModCxlLG4pe25nRGV2TW9kZSYmaG4oZSwiIiwnY2FuIG5vdCBsb29rIGZvciAiIiBzdHJpbmcuJyk7bGV0IG89dC5sZW5ndGg7Zm9yKDs7KXtjb25zdCBpPXQuaW5kZXhPZihlLG4pO2lmKC0xPT09aSlyZXR1cm4gaTtpZigwPT09aXx8dC5jaGFyQ29kZUF0KGktMSk8PTMyKXtjb25zdCBuPWUubGVuZ3RoO2lmKGkrbj09PW98fHQuY2hhckNvZGVBdChpK24pPD0zMilyZXR1cm4gaX1uPWkrMX19Y29uc3QgYmM9Im5nLXRlbXBsYXRlIjtmdW5jdGlvbiB5Yyh0LGUsbil7bmdEZXZNb2RlJiZnbihlLGUudG9Mb3dlckNhc2UoKSwiQ2xhc3MgbmFtZSBleHBlY3RlZCB0byBiZSBsb3dlcmNhc2UuIik7bGV0IG89MDtmb3IoO288dC5sZW5ndGg7KXtsZXQgaT10W28rK107aWYobiYmImNsYXNzIj09PWkpe2lmKGk9dFtvXSwtMSE9PWhjKGkudG9Mb3dlckNhc2UoKSxlLDApKXJldHVybiEwfWVsc2UgaWYoMT09PWkpe2Zvcig7bzx0Lmxlbmd0aCYmInN0cmluZyI9PXR5cGVvZihpPXRbbysrXSk7KWlmKGkudG9Mb3dlckNhc2UoKT09PWUpcmV0dXJuITA7cmV0dXJuITF9fXJldHVybiExfWZ1bmN0aW9uIF9jKHQpe3JldHVybiA0PT09dC50eXBlJiZ0LnZhbHVlIT09YmN9ZnVuY3Rpb24gQ2ModCxlLG4pe3JldHVybiBlPT09KDQhPT10LnR5cGV8fG4/dC52YWx1ZTpiYyl9ZnVuY3Rpb24gTWModCxlLG4pe25nRGV2TW9kZSYmeG4oZVswXSwiU2VsZWN0b3Igc2hvdWxkIGhhdmUgYSB0YWcgbmFtZSIpO2xldCBvPTQ7Y29uc3QgaT10LmF0dHJzfHxbXSxhPShmdW5jdGlvbiByKHQpe2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtpZihiYSh0W2VdKSlyZXR1cm4gZX1yZXR1cm4gdC5sZW5ndGh9KShpKTtsZXQgcz0hMTtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl7Y29uc3QgbD1lW3JdO2lmKCJudW1iZXIiIT10eXBlb2YgbCl7aWYoIXMpaWYoNCZvKXtpZihvPTJ8MSZvLCIiIT09bCYmIUNjKHQsbCxuKXx8IiI9PT1sJiYxPT09ZS5sZW5ndGgpe2lmKHZjKG8pKXJldHVybiExO3M9ITB9fWVsc2V7Y29uc3QgYz04Jm8/bDplWysrcl07aWYoOCZvJiZudWxsIT09dC5hdHRycyl7aWYoIXljKHQuYXR0cnMsYyxuKSl7aWYodmMobykpcmV0dXJuITE7cz0hMH1jb250aW51ZX1jb25zdCBkPXhjKDgmbz8iY2xhc3MiOmwsaSxfYyh0KSxuKTtpZigtMT09PWQpe2lmKHZjKG8pKXJldHVybiExO3M9ITA7Y29udGludWV9aWYoIiIhPT1jKXtsZXQgdDtkPmE/dD0iIjoobmdEZXZNb2RlJiZobihpW2RdLDAsIldlIGRvIG5vdCBtYXRjaCBkaXJlY3RpdmVzIG9uIG5hbWVzcGFjZWQgYXR0cmlidXRlcyIpLHQ9aVtkKzFdLnRvTG93ZXJDYXNlKCkpO2NvbnN0IGU9OCZvP3Q6bnVsbDtpZihlJiYtMSE9PWhjKGUsYywwKXx8MiZvJiZjIT09dCl7aWYodmMobykpcmV0dXJuITE7cz0hMH19fX1lbHNle2lmKCFzJiYhdmMobykmJiF2YyhsKSlyZXR1cm4hMTtpZihzJiZ2YyhsKSljb250aW51ZTtzPSExLG89bHwxJm99fXJldHVybiB2YyhvKXx8c31mdW5jdGlvbiB2Yyh0KXtyZXR1cm4gMD09KDEmdCl9ZnVuY3Rpb24geGModCxlLG4sbyl7aWYobnVsbD09PWUpcmV0dXJuLTE7bGV0IGk9MDtpZihvfHwhbil7bGV0IG49ITE7Zm9yKDtpPGUubGVuZ3RoOyl7Y29uc3Qgbz1lW2ldO2lmKG89PT10KXJldHVybiBpO2lmKDM9PT1vfHw2PT09byluPSEwO2Vsc2V7aWYoMT09PW98fDI9PT1vKXtsZXQgdD1lWysraV07Zm9yKDsic3RyaW5nIj09dHlwZW9mIHQ7KXQ9ZVsrK2ldO2NvbnRpbnVlfWlmKDQ9PT1vKWJyZWFrO2lmKDA9PT1vKXtpKz00O2NvbnRpbnVlfX1pKz1uPzE6Mn1yZXR1cm4tMX1yZXR1cm4oZnVuY3Rpb24gYSh0LGUpe2xldCBuPXQuaW5kZXhPZig0KTtpZihuPi0xKWZvcihuKys7bjx0Lmxlbmd0aDspe2NvbnN0IG89dFtuXTtpZigibnVtYmVyIj09dHlwZW9mIG8pcmV0dXJuLTE7aWYobz09PWUpcmV0dXJuIG47bisrfXJldHVybi0xfSkoZSx0KX1mdW5jdGlvbiBPYyh0LGUsbj0hMSl7Zm9yKGxldCBvPTA7bzxlLmxlbmd0aDtvKyspaWYoTWModCxlW29dLG4pKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIFBjKHQsZSl7dDpmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyl7Y29uc3Qgbz1lW25dO2lmKHQubGVuZ3RoPT09by5sZW5ndGgpe2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKWlmKHRbZV0hPT1vW2VdKWNvbnRpbnVlIHQ7cmV0dXJuITB9fXJldHVybiExfWZ1bmN0aW9uIHdjKHQsZSl7cmV0dXJuIHQ/Ijpub3QoIitlLnRyaW0oKSsiKSI6ZX1mdW5jdGlvbiBrYyh0KXtsZXQgZT10WzBdLG49MSxvPTIsaT0iIixhPSExO2Zvcig7bjx0Lmxlbmd0aDspe2xldCByPXRbbl07aWYoInN0cmluZyI9PXR5cGVvZiByKWlmKDImbyl7Y29uc3QgZT10Wysrbl07aSs9IlsiK3IrKGUubGVuZ3RoPjA/Jz0iJytlKyciJzoiIikrIl0ifWVsc2UgOCZvP2krPSIuIityOjQmbyYmKGkrPSIgIityKTtlbHNlIiI9PT1pfHx2YyhyKXx8KGUrPXdjKGEsaSksaT0iIiksbz1yLGE9YXx8IXZjKG8pO24rK31yZXR1cm4iIiE9PWkmJihlKz13YyhhLGkpKSxlfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgU2M9InVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZT97X19icmFuZF9fOiJOT19DSEFOR0UifTp7fTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gRGModCl7bmdEZXZNb2RlJiZNbih0LDAsIkNhbiBvbmx5IGFkdmFuY2UgZm9yd2FyZCIpLFJjKE9pKCkseGkoKSx0YSgpK3QsQWkoKSl9ZnVuY3Rpb24gUmModCxlLG4sbyl7aWYobmdEZXZNb2RlJiYoZnVuY3Rpb24gaSh0LGUpe2pvKHZvLHRbMV0uYmluZGluZ1N0YXJ0SW5kZXgsZSl9KShlLG4pLCFvKXtpZigzPT0oMyZlWzJdKSl7Y29uc3Qgbz10LnByZU9yZGVyQ2hlY2tIb29rcztudWxsIT09byYmc2EoZSxvLG4pfWVsc2V7Y29uc3Qgbz10LnByZU9yZGVySG9va3M7bnVsbCE9PW8mJmxhKGUsbywwLG4pfX1lYShuKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gRWModCxlKXtyZXR1cm4gbmdEZXZNb2RlJiZtbih0LDAsMzI3NjcpLG5nRGV2TW9kZSYmbW4oZSwwLDMyNzY3KSx0PDwxN3xlPDwyfWZ1bmN0aW9uIEFjKHQpe3JldHVybiBuZ0Rldk1vZGUmJnBuKHQsImV4cGVjdGVkIG51bWJlciIpLHQ+PjE3JjMyNzY3fWZ1bmN0aW9uIFRjKHQpe3JldHVybiBuZ0Rldk1vZGUmJnBuKHQsImV4cGVjdGVkIG51bWJlciIpLDI9PSgyJnQpfWZ1bmN0aW9uIE5jKHQpe3JldHVybiBuZ0Rldk1vZGUmJnBuKHQsImV4cGVjdGVkIG51bWJlciIpLDJ8dH1mdW5jdGlvbiB6Yyh0KXtyZXR1cm4gbmdEZXZNb2RlJiZwbih0LCJleHBlY3RlZCBudW1iZXIiKSwoMTMxMDY4JnQpPj4yfWZ1bmN0aW9uIEljKHQsZSl7cmV0dXJuIG5nRGV2TW9kZSYmcG4odCwiZXhwZWN0ZWQgbnVtYmVyIiksbmdEZXZNb2RlJiZtbihlLDAsMzI3NjcpLC0xMzEwNjkmdHxlPDwyfWZ1bmN0aW9uIEhjKHQpe3JldHVybiBuZ0Rldk1vZGUmJnBuKHQsImV4cGVjdGVkIG51bWJlciIpLDE9PSgxJnQpfWZ1bmN0aW9uIEZjKHQpe3JldHVybiBuZ0Rldk1vZGUmJnBuKHQsImV4cGVjdGVkIG51bWJlciIpLDF8dH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gTGModCxlKXtpZighbmdEZXZNb2RlKXRocm93IG5ldyBFcnJvcigiVGhpcyBtZXRob2Qgc2hvdWxkIGJlIGd1YXJkZWQgd2l0aCBgbmdEZXZNb2RlYCBzbyB0aGF0IGl0IGNhbiBiZSB0cmVlIHNoYWtlbiBpbiBwcm9kdWN0aW9uISIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJkZWJ1ZyIse3ZhbHVlOmUsZW51bWVyYWJsZTohMX0pfWZ1bmN0aW9uIEJjKHQsZSl7aWYoIW5nRGV2TW9kZSl0aHJvdyBuZXcgRXJyb3IoIlRoaXMgbWV0aG9kIHNob3VsZCBiZSBndWFyZGVkIHdpdGggYG5nRGV2TW9kZWAgc28gdGhhdCBpdCBjYW4gYmUgdHJlZSBzaGFrZW4gaW4gcHJvZHVjdGlvbiEiKTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiZGVidWciLHtnZXQ6ZSxlbnVtZXJhYmxlOiExfSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IFZjPSgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8ISFuZ0Rldk1vZGUpJiZLbigpO2xldCBqYyxVYyxXYztmdW5jdGlvbiBHYyh0KXtyZXR1cm4oZnVuY3Rpb24gZSh0LG4pe3N3aXRjaCh0KXtjYXNlIDA6cmV0dXJuIHZvaWQgMD09PVdjJiYoV2M9bmV3KENsKCJMUm9vdFZpZXciKSkpLFdjO2Nhc2UgMTp2b2lkIDA9PT1qYyYmKGpjPW5ldyBNYXApO2xldCB0PWpjLmdldChuKTtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9bmV3KENsKCJMQ29tcG9uZW50VmlldyIrWWMobikpKSxqYy5zZXQobix0KSksdDtjYXNlIDI6dm9pZCAwPT09VWMmJihVYz1uZXcgTWFwKTtsZXQgZT1VYy5nZXQobik7cmV0dXJuIHZvaWQgMD09PWUmJihlPW5ldyhDbCgiTEVtYmVkZGVkVmlldyIrWWMobikpKSxVYy5zZXQobixlKSksZX19KSh0LnR5cGUsdC50ZW1wbGF0ZSYmdC50ZW1wbGF0ZS5uYW1lKS5jb25jYXQodC5ibHVlcHJpbnQpfWZ1bmN0aW9uIFljKHQpe2lmKG51bGw9PXQpcmV0dXJuIiI7Y29uc3QgZT10Lmxhc3RJbmRleE9mKCJfVGVtcGxhdGUiKTtyZXR1cm4iXyIrKC0xPT09ZT90OnQuc3Vic3RyKDAsZSkpfWNvbnN0IHFjPWNsYXNze2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sZix1LGcsaCxiLHksXyxDLE0sdix4LE8sUCx3LGssUyxELFIsRSl7dGhpcy50Vmlld189dCx0aGlzLnR5cGU9ZSx0aGlzLmluZGV4PW4sdGhpcy5pbnNlcnRCZWZvcmVJbmRleD1vLHRoaXMuaW5qZWN0b3JJbmRleD1pLHRoaXMuZGlyZWN0aXZlU3RhcnQ9YSx0aGlzLmRpcmVjdGl2ZUVuZD1yLHRoaXMuZGlyZWN0aXZlU3R5bGluZ0xhc3Q9cyx0aGlzLnByb3BlcnR5QmluZGluZ3M9bCx0aGlzLmZsYWdzPWMsdGhpcy5wcm92aWRlckluZGV4ZXM9ZCx0aGlzLnZhbHVlPXAsdGhpcy5hdHRycz1tLHRoaXMubWVyZ2VkQXR0cnM9Zix0aGlzLmxvY2FsTmFtZXM9dSx0aGlzLmluaXRpYWxJbnB1dHM9Zyx0aGlzLmlucHV0cz1oLHRoaXMub3V0cHV0cz1iLHRoaXMudFZpZXdzPXksdGhpcy5uZXh0PV8sdGhpcy5wcm9qZWN0aW9uTmV4dD1DLHRoaXMuY2hpbGQ9TSx0aGlzLnBhcmVudD12LHRoaXMucHJvamVjdGlvbj14LHRoaXMuc3R5bGVzPU8sdGhpcy5zdHlsZXNXaXRob3V0SG9zdD1QLHRoaXMucmVzaWR1YWxTdHlsZXM9dyx0aGlzLmNsYXNzZXM9ayx0aGlzLmNsYXNzZXNXaXRob3V0SG9zdD1TLHRoaXMucmVzaWR1YWxDbGFzc2VzPUQsdGhpcy5jbGFzc0JpbmRpbmdzPVIsdGhpcy5zdHlsZUJpbmRpbmdzPUV9ZGVidWdOb2RlSW5qZWN0b3JQYXRoKHQpe2NvbnN0IGU9W107bGV0IG49RGEodGhpcyx0KTtpZigtMT09PW4pe2NvbnN0IGU9UmEodGhpcyx0KTtlIT09bWEmJihuPXZhKGUpLHQ9eGEoZSx0KSl9Zm9yKDstMSE9PW47KXtuZ0Rldk1vZGUmJldvKHQsbik7ZS5wdXNoKHBkKHRbMV0uZGF0YVtuKzhdLHQpKTtjb25zdCBvPXRbbis4XTtvPT09bWE/bj0tMToobj12YShvKSx0PXhhKG8sdCkpfXJldHVybiBlfWdldCB0eXBlXygpe3JldHVybiB1YSh0aGlzLnR5cGUpfHxgVE5vZGVUeXBlLj8ke3RoaXMudHlwZX0/YH1nZXQgZmxhZ3NfKCl7Y29uc3QgdD1bXTtyZXR1cm4gMTYmdGhpcy5mbGFncyYmdC5wdXNoKCJUTm9kZUZsYWdzLmhhc0NsYXNzSW5wdXQiKSw4JnRoaXMuZmxhZ3MmJnQucHVzaCgiVE5vZGVGbGFncy5oYXNDb250ZW50UXVlcnkiKSwzMiZ0aGlzLmZsYWdzJiZ0LnB1c2goIlROb2RlRmxhZ3MuaGFzU3R5bGVJbnB1dCIpLDEyOCZ0aGlzLmZsYWdzJiZ0LnB1c2goIlROb2RlRmxhZ3MuaGFzSG9zdEJpbmRpbmdzIiksMiZ0aGlzLmZsYWdzJiZ0LnB1c2goIlROb2RlRmxhZ3MuaXNDb21wb25lbnRIb3N0IiksMSZ0aGlzLmZsYWdzJiZ0LnB1c2goIlROb2RlRmxhZ3MuaXNEaXJlY3RpdmVIb3N0IiksNjQmdGhpcy5mbGFncyYmdC5wdXNoKCJUTm9kZUZsYWdzLmlzRGV0YWNoZWQiKSw0JnRoaXMuZmxhZ3MmJnQucHVzaCgiVE5vZGVGbGFncy5pc1Byb2plY3RlZCIpLHQuam9pbigifCIpfWdldCB0ZW1wbGF0ZV8oKXtpZigxJnRoaXMudHlwZSlyZXR1cm4gdGhpcy52YWx1ZTtjb25zdCB0PVtdLGU9InN0cmluZyI9PXR5cGVvZiB0aGlzLnZhbHVlJiZ0aGlzLnZhbHVlfHx0aGlzLnR5cGVfO2lmKHQucHVzaCgiPCIsZSksdGhpcy5mbGFncyYmdC5wdXNoKCIgIix0aGlzLmZsYWdzXyksdGhpcy5hdHRycylmb3IobGV0IGU9MDtlPHRoaXMuYXR0cnMubGVuZ3RoOyl7Y29uc3Qgbj10aGlzLmF0dHJzW2UrK107aWYoIm51bWJlciI9PXR5cGVvZiBuKWJyZWFrO2NvbnN0IG89dGhpcy5hdHRyc1tlKytdO3QucHVzaCgiICIsbiwnPSInLG8sJyInKX1yZXR1cm4gdC5wdXNoKCI+IiksWGModGhpcy5jaGlsZCx0KSx0LnB1c2goIjwvIixlLCI+IiksdC5qb2luKCIiKX1nZXQgc3R5bGVCaW5kaW5nc18oKXtyZXR1cm4gWmModGhpcywhMSl9Z2V0IGNsYXNzQmluZGluZ3NfKCl7cmV0dXJuIFpjKHRoaXMsITApfWdldCBwcm92aWRlckluZGV4U3RhcnRfKCl7cmV0dXJuIDEwNDg1NzUmdGhpcy5wcm92aWRlckluZGV4ZXN9Z2V0IHByb3ZpZGVySW5kZXhFbmRfKCl7cmV0dXJuIHRoaXMucHJvdmlkZXJJbmRleFN0YXJ0XysodGhpcy5wcm92aWRlckluZGV4ZXM+Pj4yMCl9fTtmdW5jdGlvbiBaYyh0LGUpe2NvbnN0IG49dC50Vmlld18uZGF0YSxvPVtdLGk9ZT90LmNsYXNzQmluZGluZ3M6dC5zdHlsZUJpbmRpbmdzLGE9QWMoaSkscj16YyhpKTtsZXQgcz0wIT09cixsPXM/cjphO2Zvcig7MCE9PWw7KXtjb25zdCB0PW5bbCsxXTtvLnVuc2hpZnQoe2tleTpuW2xdLGluZGV4OmwsaXNUZW1wbGF0ZTpzLHByZXZEdXBsaWNhdGU6VGModCksbmV4dER1cGxpY2F0ZTpIYyh0KSxuZXh0SW5kZXg6emModCkscHJldkluZGV4OkFjKHQpfSksbD09PWEmJihzPSExKSxsPUFjKHQpfXJldHVybiBvLnB1c2goKGU/dC5yZXNpZHVhbENsYXNzZXM6dC5yZXNpZHVhbFN0eWxlcyl8fG51bGwpLG99ZnVuY3Rpb24gWGModCxlKXtmb3IoO3Q7KWUucHVzaCh0LnRlbXBsYXRlXyksdD10Lm5leHR9Y29uc3QgS2M9VmMmJkNsKCJUVmlld0RhdGEiKXx8bnVsbDtsZXQgSmM7Y29uc3QgUWM9VmMmJkNsKCJMVmlld0JsdWVwcmludCIpfHxudWxsLCRjPVZjJiZDbCgiTWF0Y2hlc0FycmF5Iil8fG51bGwsdGQ9VmMmJkNsKCJUVmlld0NvbXBvbmVudHMiKXx8bnVsbCxlZD1WYyYmQ2woIlROb2RlTG9jYWxOYW1lcyIpfHxudWxsLG5kPVZjJiZDbCgiVE5vZGVJbml0aWFsSW5wdXRzIil8fG51bGw7VmMmJkNsKCJUTm9kZUluaXRpYWxEYXRhIik7Y29uc3Qgb2Q9VmMmJkNsKCJMQ2xlYW51cCIpfHxudWxsLGlkPVZjJiZDbCgiVENsZWFudXAiKXx8bnVsbDtmdW5jdGlvbiBhZCh0KXtpZih0KXtjb25zdCBlPXQuZGVidWc7cmV0dXJuIHhuKGUsIk9iamVjdCBkb2VzIG5vdCBoYXZlIGEgZGVidWcgcmVwcmVzZW50YXRpb24uIiksZX1yZXR1cm4gdH1mdW5jdGlvbiByZCh0LGU9ITEpe2NvbnN0IG49bGkodCk7aWYobilzd2l0Y2gobi5ub2RlVHlwZSl7Y2FzZSBOb2RlLlRFWFRfTk9ERTpyZXR1cm4gbi50ZXh0Q29udGVudDtjYXNlIE5vZGUuQ09NTUVOVF9OT0RFOnJldHVybmBceDNjIS0tJHtuLnRleHRDb250ZW50fS0tXHgzZWA7Y2FzZSBOb2RlLkVMRU1FTlRfTk9ERTpjb25zdCB0PW4ub3V0ZXJIVE1MO2lmKGUpcmV0dXJuIHQ7cmV0dXJuIHQuc3BsaXQoIj4iK24uaW5uZXJIVE1MKyI8IilbMF0rIj4ifXJldHVybiBudWxsfWNsYXNzIHNke2NvbnN0cnVjdG9yKHQpe3RoaXMuX3Jhd19sVmlldz10fWdldCBmbGFncygpe2NvbnN0IHQ9dGhpcy5fcmF3X2xWaWV3WzJdO3JldHVybntfX3Jhd19fZmxhZ3NfXzp0LGluaXRQaGFzZVN0YXRlOjMmdCxjcmVhdGlvbk1vZGU6ISEoNCZ0KSxmaXJzdFZpZXdQYXNzOiEhKDgmdCksY2hlY2tBbHdheXM6ISEoMTYmdCksZGlydHk6ISEoNjQmdCksYXR0YWNoZWQ6ISEoMTI4JnQpLGRlc3Ryb3llZDohISgyNTYmdCksaXNSb290OiEhKDUxMiZ0KSxpbmRleFdpdGhpbkluaXRQaGFzZTp0Pj4xMX19Z2V0IHBhcmVudCgpe3JldHVybiBhZCh0aGlzLl9yYXdfbFZpZXdbM10pfWdldCBob3N0SFRNTCgpe3JldHVybiByZCh0aGlzLl9yYXdfbFZpZXdbMF0sITApfWdldCBodG1sKCl7cmV0dXJuKHRoaXMubm9kZXN8fFtdKS5tYXAobGQpLmpvaW4oIiIpfWdldCBjb250ZXh0KCl7cmV0dXJuIHRoaXMuX3Jhd19sVmlld1s4XX1nZXQgbm9kZXMoKXtjb25zdCB0PXRoaXMuX3Jhd19sVmlldztyZXR1cm4gZGQodFsxXS5maXJzdENoaWxkLHQpfWdldCB0ZW1wbGF0ZSgpe3JldHVybiB0aGlzLnRWaWV3LnRlbXBsYXRlX31nZXQgdFZpZXcoKXtyZXR1cm4gdGhpcy5fcmF3X2xWaWV3WzFdfWdldCBjbGVhbnVwKCl7cmV0dXJuIHRoaXMuX3Jhd19sVmlld1s3XX1nZXQgaW5qZWN0b3IoKXtyZXR1cm4gdGhpcy5fcmF3X2xWaWV3WzldfWdldCByZW5kZXJlckZhY3RvcnkoKXtyZXR1cm4gdGhpcy5fcmF3X2xWaWV3WzEwXX1nZXQgcmVuZGVyZXIoKXtyZXR1cm4gdGhpcy5fcmF3X2xWaWV3WzExXX1nZXQgc2FuaXRpemVyKCl7cmV0dXJuIHRoaXMuX3Jhd19sVmlld1sxMl19Z2V0IGNoaWxkSGVhZCgpe3JldHVybiBhZCh0aGlzLl9yYXdfbFZpZXdbMTNdKX1nZXQgbmV4dCgpe3JldHVybiBhZCh0aGlzLl9yYXdfbFZpZXdbNF0pfWdldCBjaGlsZFRhaWwoKXtyZXR1cm4gYWQodGhpcy5fcmF3X2xWaWV3WzE0XSl9Z2V0IGRlY2xhcmF0aW9uVmlldygpe3JldHVybiBhZCh0aGlzLl9yYXdfbFZpZXdbMTVdKX1nZXQgcXVlcmllcygpe3JldHVybiB0aGlzLl9yYXdfbFZpZXdbMTldfWdldCB0SG9zdCgpe3JldHVybiB0aGlzLl9yYXdfbFZpZXdbNl19Z2V0IGRlY2xzKCl7cmV0dXJuIGNkKHRoaXMudFZpZXcsdGhpcy5fcmF3X2xWaWV3LHZvLHRoaXMudFZpZXcuYmluZGluZ1N0YXJ0SW5kZXgpfWdldCB2YXJzKCl7cmV0dXJuIGNkKHRoaXMudFZpZXcsdGhpcy5fcmF3X2xWaWV3LHRoaXMudFZpZXcuYmluZGluZ1N0YXJ0SW5kZXgsdGhpcy50Vmlldy5leHBhbmRvU3RhcnRJbmRleCl9Z2V0IGV4cGFuZG8oKXtyZXR1cm4gY2QodGhpcy50Vmlldyx0aGlzLl9yYXdfbFZpZXcsdGhpcy50Vmlldy5leHBhbmRvU3RhcnRJbmRleCx0aGlzLl9yYXdfbFZpZXcubGVuZ3RoKX1nZXQgY2hpbGRWaWV3cygpe2NvbnN0IHQ9W107bGV0IGU9dGhpcy5jaGlsZEhlYWQ7Zm9yKDtlOyl0LnB1c2goZSksZT1lLm5leHQ7cmV0dXJuIHR9fWZ1bmN0aW9uIGxkKHQpe2lmKCJFbGVtZW50Q29udGFpbmVyIj09PXQudHlwZSlyZXR1cm4odC5jaGlsZHJlbnx8W10pLm1hcChsZCkuam9pbigiIik7aWYoIkljdUNvbnRhaW5lciI9PT10LnR5cGUpdGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQiKTtyZXR1cm4gcmQodC5uYXRpdmUsITApfHwiIn1mdW5jdGlvbiBjZCh0LGUsbixvKXtsZXQgaT1bXTtmb3IobGV0IGE9bjthPG87YSsrKWkucHVzaCh7aW5kZXg6YSx0OnQuZGF0YVthXSxsOmVbYV19KTtyZXR1cm57c3RhcnQ6bixlbmQ6byxsZW5ndGg6by1uLGNvbnRlbnQ6aX19ZnVuY3Rpb24gZGQodCxlKXtpZih0KXtjb25zdCBuPVtdO2xldCBvPXQ7Zm9yKDtvOyluLnB1c2gocGQobyxlKSksbz1vLm5leHQ7cmV0dXJuIG59cmV0dXJuW119ZnVuY3Rpb24gcGQodCxlKXtjb25zdCBuPWxpKGVbdC5pbmRleF0pLG89W10saT1bXSxhPWVbMV07Zm9yKGxldCBuPXQuZGlyZWN0aXZlU3RhcnQ7bjx0LmRpcmVjdGl2ZUVuZDtuKyspe28ucHVzaChhLmRhdGFbbl0udHlwZSksaS5wdXNoKGVbbl0pfXJldHVybntodG1sOnJkKG4pLHR5cGU6dWEodC50eXBlKSx0Tm9kZTp0LG5hdGl2ZTpuLGNoaWxkcmVuOmRkKHQuY2hpbGQsZSksZmFjdG9yaWVzOm8saW5zdGFuY2VzOmksaW5qZWN0b3I6bWQodCxhLGUpLGdldCBpbmplY3RvclJlc29sdXRpb25QYXRoKCl7cmV0dXJuIHQuZGVidWdOb2RlSW5qZWN0b3JQYXRoKGUpfX19ZnVuY3Rpb24gbWQodCxlLG4pe2NvbnN0IG89W107Zm9yKGxldCBuPXQucHJvdmlkZXJJbmRleFN0YXJ0XztuPHQucHJvdmlkZXJJbmRleEVuZF87bisrKW8ucHVzaChlLmRhdGFbbl0pO2NvbnN0IGk9W107Zm9yKGxldCBuPXQucHJvdmlkZXJJbmRleEVuZF87bjx0LmRpcmVjdGl2ZUVuZDtuKyspaS5wdXNoKGUuZGF0YVtuXSk7cmV0dXJue2Jsb29tOnVkKG4sdC5pbmplY3RvckluZGV4KSxjdW11bGF0aXZlQmxvb206dWQoZS5kYXRhLHQuaW5qZWN0b3JJbmRleCkscHJvdmlkZXJzOmksdmlld1Byb3ZpZGVyczpvLHBhcmVudEluamVjdG9ySW5kZXg6blt0LnByb3ZpZGVySW5kZXhTdGFydF8tMV19fWZ1bmN0aW9uIGZkKHQsZSl7Y29uc3Qgbj10W2VdO2lmKCJudW1iZXIiIT10eXBlb2YgbilyZXR1cm4iPz8/Pz8/Pz8iO2NvbnN0IG89IjAwMDAwMDAwIituLnRvU3RyaW5nKDIpO3JldHVybiBvLnN1YnN0cmluZyhvLmxlbmd0aC04KX1mdW5jdGlvbiB1ZCh0LGUpe3JldHVybiBlPDA/Ik5PX05PREVfSU5KRUNUT1IiOmAke2ZkKHQsZSs3KX1fJHtmZCh0LGUrNil9XyR7ZmQodCxlKzUpfV8ke2ZkKHQsZSs0KX1fJHtmZCh0LGUrMyl9XyR7ZmQodCxlKzIpfV8ke2ZkKHQsZSsxKX1fJHtmZCh0LGUrMCl9YH1jbGFzcyBnZHtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9yYXdfbENvbnRhaW5lcj10fWdldCBoYXNUcmFuc3BsYW50ZWRWaWV3cygpe3JldHVybiB0aGlzLl9yYXdfbENvbnRhaW5lclsyXX1nZXQgdmlld3MoKXtyZXR1cm4gdGhpcy5fcmF3X2xDb250YWluZXIuc2xpY2UoT28pLm1hcChhZCl9Z2V0IHBhcmVudCgpe3JldHVybiBhZCh0aGlzLl9yYXdfbENvbnRhaW5lclszXSl9Z2V0IG1vdmVkVmlld3MoKXtyZXR1cm4gdGhpcy5fcmF3X2xDb250YWluZXJbOV19Z2V0IGhvc3QoKXtyZXR1cm4gdGhpcy5fcmF3X2xDb250YWluZXJbMF19Z2V0IG5hdGl2ZSgpe3JldHVybiB0aGlzLl9yYXdfbENvbnRhaW5lcls3XX1nZXQgbmV4dCgpe3JldHVybiBhZCh0aGlzLl9yYXdfbENvbnRhaW5lcls0XSl9fWNvbnN0IGhkPVByb21pc2UucmVzb2x2ZShudWxsKTtmdW5jdGlvbiBiZCh0LGUpe2NvbnN0IG49dC5jb250ZW50UXVlcmllcztpZihudWxsIT09bilmb3IobGV0IG89MDtvPG4ubGVuZ3RoO28rPTIpe2NvbnN0IGk9bltvXSxhPW5bbysxXTtpZigtMSE9PWEpe2NvbnN0IG49dC5kYXRhW2FdO25nRGV2TW9kZSYmeG4obiwiRGlyZWN0aXZlRGVmIG5vdCBmb3VuZC4iKSxuZ0Rldk1vZGUmJnhuKG4uY29udGVudFF1ZXJpZXMsImNvbnRlbnRRdWVyaWVzIGZ1bmN0aW9uIHNob3VsZCBiZSBkZWZpbmVkIiksV2koaSksbi5jb250ZW50UXVlcmllcygyLGVbYV0sYSl9fX1mdW5jdGlvbiB5ZCh0LGUsbixvLGksYSxyLHMsbCxjKXtjb25zdCBkPW5nRGV2TW9kZT9HYyhlKTplLmJsdWVwcmludC5zbGljZSgpO3JldHVybiBkWzBdPWksZFsyXT0xNDB8byxiaShkKSxuZ0Rldk1vZGUmJmUuZGVjbFROb2RlJiZ0JiZFbyhlLmRlY2xUTm9kZSx0KSxkWzNdPWRbMTVdPXQsZFs4XT1uLGRbMTBdPXJ8fHQmJnRbMTBdLG5nRGV2TW9kZSYmeG4oZFsxMF0sIlJlbmRlcmVyRmFjdG9yeSBpcyByZXF1aXJlZCIpLGRbMTFdPXN8fHQmJnRbMTFdLG5nRGV2TW9kZSYmeG4oZFsxMV0sIlJlbmRlcmVyIGlzIHJlcXVpcmVkIiksZFsxMl09bHx8dCYmdFsxMl18fG51bGwsZFs5XT1jfHx0JiZ0WzldfHxudWxsLGRbNl09YSxuZ0Rldk1vZGUmJmduKDIhPWUudHlwZXx8bnVsbCE9PXQsITAsIkVtYmVkZGVkIHZpZXdzIG11c3QgaGF2ZSBwYXJlbnRMVmlldyIpLGRbMTZdPTI9PWUudHlwZT90WzE2XTpkLG5nRGV2TW9kZSYmKGZ1bmN0aW9uIHAodCl7TGModCxuZXcgc2QodCkpfSkoZCksZH1mdW5jdGlvbiBfZCh0LGUsbixvLGkpe25nRGV2TW9kZSYmMCE9PWUmJnZuKGUsdm8sIlROb2RlcyBjYW4ndCBiZSBpbiB0aGUgTFZpZXcgaGVhZGVyLiIpLG5nRGV2TW9kZSYmKGZ1bmN0aW9uIGEodCl7MiE9PXQmJjEhPT10JiY0IT09dCYmOCE9PXQmJjMyIT09dCYmMTYhPT10JiY2NCE9PXQmJk9uKGBFeHBlY3RlZCBUTm9kZVR5cGUgdG8gaGF2ZSBvbmx5IGEgc2luZ2xlIHR5cGUgc2VsZWN0ZWQsIGJ1dCBnb3QgJHt1YSh0KX0uYCl9KShuKTtsZXQgcj10LmRhdGFbZV07aWYobnVsbD09PXIpcj1DZCh0LGUsbixvLGkpLChmdW5jdGlvbiBzKCl7cmV0dXJuIF9pLmxGcmFtZS5pbkkxOG59KSgpJiYoci5mbGFnc3w9NjQpO2Vsc2UgaWYoNjQmci50eXBlKXtyLnR5cGU9bixyLnZhbHVlPW8sci5hdHRycz1pO2NvbnN0IGE9U2koKTtyLmluamVjdG9ySW5kZXg9bnVsbD09PWE/LTE6YS5pbmplY3RvckluZGV4LG5nRGV2TW9kZSYmQW8ocix0KSxuZ0Rldk1vZGUmJmduKGUsci5pbmRleCwiRXhwZWN0aW5nIHNhbWUgaW5kZXgiKX1yZXR1cm4gRGkociwhMCkscn1mdW5jdGlvbiBDZCh0LGUsbixvLGkpe2NvbnN0IGE9a2koKSxyPVJpKCkscz10LmRhdGFbZV09KGZ1bmN0aW9uIGwodCxlLG4sbyxpLGEpe25nRGV2TW9kZSYmMCE9PW8mJnZuKG8sdm8sIlROb2RlcyBjYW4ndCBiZSBpbiB0aGUgTFZpZXcgaGVhZGVyLiIpLG5nRGV2TW9kZSYmeW4oYSx2b2lkIDAsIid1bmRlZmluZWQnIGlzIG5vdCB2YWxpZCB2YWx1ZSBmb3IgJ2F0dHJzJyIpLG5nRGV2TW9kZSYmbmdEZXZNb2RlLnROb2RlKyssbmdEZXZNb2RlJiZlJiZBbyhlLHQpO2xldCByPWU/ZS5pbmplY3RvckluZGV4Oi0xO2NvbnN0IHM9bmdEZXZNb2RlP25ldyBxYyh0LG4sbyxudWxsLHIsLTEsLTEsLTEsbnVsbCwwLDAsaSxhLG51bGwsbnVsbCx2b2lkIDAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsZSxudWxsLG51bGwsbnVsbCx2b2lkIDAsbnVsbCxudWxsLHZvaWQgMCwwLDApOnt0eXBlOm4saW5kZXg6byxpbnNlcnRCZWZvcmVJbmRleDpudWxsLGluamVjdG9ySW5kZXg6cixkaXJlY3RpdmVTdGFydDotMSxkaXJlY3RpdmVFbmQ6LTEsZGlyZWN0aXZlU3R5bGluZ0xhc3Q6LTEscHJvcGVydHlCaW5kaW5nczpudWxsLGZsYWdzOjAscHJvdmlkZXJJbmRleGVzOjAsdmFsdWU6aSxhdHRyczphLG1lcmdlZEF0dHJzOm51bGwsbG9jYWxOYW1lczpudWxsLGluaXRpYWxJbnB1dHM6dm9pZCAwLGlucHV0czpudWxsLG91dHB1dHM6bnVsbCx0Vmlld3M6bnVsbCxuZXh0Om51bGwscHJvamVjdGlvbk5leHQ6bnVsbCxjaGlsZDpudWxsLHBhcmVudDplLHByb2plY3Rpb246bnVsbCxzdHlsZXM6bnVsbCxzdHlsZXNXaXRob3V0SG9zdDpudWxsLHJlc2lkdWFsU3R5bGVzOnZvaWQgMCxjbGFzc2VzOm51bGwsY2xhc3Nlc1dpdGhvdXRIb3N0Om51bGwscmVzaWR1YWxDbGFzc2VzOnZvaWQgMCxjbGFzc0JpbmRpbmdzOjAsc3R5bGVCaW5kaW5nczowfTtuZ0Rldk1vZGUmJk9iamVjdC5zZWFsKHMpO3JldHVybiBzfSkodCxyP2E6YSYmYS5wYXJlbnQsbixlLG8saSk7cmV0dXJuIG51bGw9PT10LmZpcnN0Q2hpbGQmJih0LmZpcnN0Q2hpbGQ9cyksbnVsbCE9PWEmJihyP251bGw9PWEuY2hpbGQmJm51bGwhPT1zLnBhcmVudCYmKGEuY2hpbGQ9cyk6bnVsbD09PWEubmV4dCYmKGEubmV4dD1zKSksc31mdW5jdGlvbiBNZCh0LGUsbixvKXtpZigwPT09bilyZXR1cm4tMTtuZ0Rldk1vZGUmJihMbyh0KSxibih0LGVbMV0sImBMVmlld2AgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggYFRWaWV3YCEiKSxnbih0LmRhdGEubGVuZ3RoLGUubGVuZ3RoLCJFeHBlY3RpbmcgTFZpZXcgdG8gYmUgc2FtZSBzaXplIGFzIFRWaWV3IiksZ24odC5kYXRhLmxlbmd0aCx0LmJsdWVwcmludC5sZW5ndGgsIkV4cGVjdGluZyBCbHVlcHJpbnQgdG8gYmUgc2FtZSBzaXplIGFzIFRWaWV3IiksQm8odCkpO2NvbnN0IGk9ZS5sZW5ndGg7Zm9yKGxldCBpPTA7aTxuO2krKyllLnB1c2gobyksdC5ibHVlcHJpbnQucHVzaChvKSx0LmRhdGEucHVzaChudWxsKTtyZXR1cm4gaX1mdW5jdGlvbiB2ZCh0LGUsbil7bmdEZXZNb2RlJiZnbih1aShlKSwhMCwiU2hvdWxkIGJlIHJ1biBpbiBjcmVhdGlvbiBtb2RlIikscWkoZSk7dHJ5e2NvbnN0IG89dC52aWV3UXVlcnk7bnVsbCE9PW8mJnNwKDEsbyxuKTtjb25zdCBpPXQudGVtcGxhdGU7bnVsbCE9PWkmJlBkKHQsZSxpLDEsbiksdC5maXJzdENyZWF0ZVBhc3MmJih0LmZpcnN0Q3JlYXRlUGFzcz0hMSksdC5zdGF0aWNDb250ZW50UXVlcmllcyYmYmQodCxlKSx0LnN0YXRpY1ZpZXdRdWVyaWVzJiZzcCgyLHQudmlld1F1ZXJ5LG4pO2NvbnN0IGE9dC5jb21wb25lbnRzO251bGwhPT1hJiYoZnVuY3Rpb24gbyh0LGUpe2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKWVwKHQsZVtuXSl9KShlLGEpfWNhdGNoKGUpe3Rocm93IHQuZmlyc3RDcmVhdGVQYXNzJiYodC5pbmNvbXBsZXRlRmlyc3RQYXNzPSEwLHQuZmlyc3RDcmVhdGVQYXNzPSExKSxlfWZpbmFsbHl7ZVsyXSY9LTUsUWkoKX19ZnVuY3Rpb24geGQodCxlLG4sbyl7bmdEZXZNb2RlJiZnbih1aShlKSwhMSwiU2hvdWxkIGJlIHJ1biBpbiB1cGRhdGUgbW9kZSIpO2NvbnN0IGk9ZVsyXTtpZigyNTY9PSgyNTYmaSkpcmV0dXJuO3FpKGUpO2NvbnN0IGE9QWkoKTt0cnl7YmkoZSksSWkodC5iaW5kaW5nU3RhcnRJbmRleCksbnVsbCE9PW4mJlBkKHQsZSxuLDIsbyk7Y29uc3Qgcj0zPT0oMyZpKTtpZighYSlpZihyKXtjb25zdCBuPXQucHJlT3JkZXJDaGVja0hvb2tzO251bGwhPT1uJiZzYShlLG4sbnVsbCl9ZWxzZXtjb25zdCBuPXQucHJlT3JkZXJIb29rcztudWxsIT09biYmbGEoZSxuLDAsbnVsbCksY2EoZSwwKX1pZigoZnVuY3Rpb24gcih0KXtmb3IobGV0IGU9SWwodCk7bnVsbCE9PWU7ZT1IbChlKSl7aWYoIWVbMl0pY29udGludWU7Y29uc3QgdD1lWzldO25nRGV2TW9kZSYmeG4odCwiVHJhbnNwbGFudGVkIFZpZXcgZmxhZ3Mgc2V0IGJ1dCBtaXNzaW5nIE1PVkVEX1ZJRVdTIik7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspe2NvbnN0IG49dFtlXSxvPW5bM107bmdEZXZNb2RlJiZJbyhvKSwwPT0oMTAyNCZuWzJdKSYmeWkobywxKSxuWzJdfD0xMDI0fX19KShlKSwoZnVuY3Rpb24gcyh0KXtmb3IobGV0IGU9SWwodCk7bnVsbCE9PWU7ZT1IbChlKSlmb3IobGV0IHQ9T287dDxlLmxlbmd0aDt0Kyspe2NvbnN0IG49ZVt0XSxvPW5bMV07bmdEZXZNb2RlJiZ4bihvLCJUVmlldyBtdXN0IGJlIGFsbG9jYXRlZCIpLGdpKG4pJiZ4ZChvLG4sby50ZW1wbGF0ZSxuWzhdKX19KShlKSxudWxsIT09dC5jb250ZW50UXVlcmllcyYmYmQodCxlKSwhYSlpZihyKXtjb25zdCBuPXQuY29udGVudENoZWNrSG9va3M7bnVsbCE9PW4mJnNhKGUsbil9ZWxzZXtjb25zdCBuPXQuY29udGVudEhvb2tzO251bGwhPT1uJiZsYShlLG4sMSksY2EoZSwxKX0hKGZ1bmN0aW9uIGwodCxlKXtjb25zdCBuPXQuaG9zdEJpbmRpbmdPcENvZGVzO2lmKG51bGwhPT1uKXRyeXtmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoO3QrKyl7Y29uc3Qgbz1uW3RdO2lmKG88MCllYSh+byk7ZWxzZXtjb25zdCBpPW8sYT1uWysrdF0scj1uWysrdF07QmkoYSxpKSxyKDIsZVtpXSl9fX1maW5hbGx5e2VhKC0xKX19KSh0LGUpO2NvbnN0IHM9dC5jb21wb25lbnRzO251bGwhPT1zJiYoZnVuY3Rpb24gYyh0LGUpe2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKSRkKHQsZVtuXSl9KShlLHMpO2NvbnN0IGw9dC52aWV3UXVlcnk7aWYobnVsbCE9PWwmJnNwKDIsbCxvKSwhYSlpZihyKXtjb25zdCBuPXQudmlld0NoZWNrSG9va3M7bnVsbCE9PW4mJnNhKGUsbil9ZWxzZXtjb25zdCBuPXQudmlld0hvb2tzO251bGwhPT1uJiZsYShlLG4sMiksY2EoZSwyKX0hMD09PXQuZmlyc3RVcGRhdGVQYXNzJiYodC5maXJzdFVwZGF0ZVBhc3M9ITEpLGF8fChlWzJdJj0tNzMpLDEwMjQmZVsyXSYmKGVbMl0mPS0xMDI1LHlpKGVbM10sLTEpKX1maW5hbGx5e1FpKCl9fWZ1bmN0aW9uIE9kKHQsZSxuLG8pe2NvbnN0IGk9ZVsxMF0sYT0hQWkoKSxyPXVpKGUpO3RyeXthJiYhciYmaS5iZWdpbiYmaS5iZWdpbigpLHImJnZkKHQsZSxvKSx4ZCh0LGUsbixvKX1maW5hbGx5e2EmJiFyJiZpLmVuZCYmaS5lbmQoKX19ZnVuY3Rpb24gUGQodCxlLG4sbyxpKXtjb25zdCBhPXRhKCkscj0yJm87dHJ5e2VhKC0xKSxyJiZlLmxlbmd0aD52byYmUmModCxlLHZvLEFpKCkpO3RpKHI/MjowLGkpLG4obyxpKX1maW5hbGx5e2VhKGEpO3RpKHI/MzoxLGkpfX1mdW5jdGlvbiB3ZCh0LGUsbil7aWYoa28oZSkpe2NvbnN0IG89ZS5kaXJlY3RpdmVFbmQ7Zm9yKGxldCBpPWUuZGlyZWN0aXZlU3RhcnQ7aTxvO2krKyl7Y29uc3QgZT10LmRhdGFbaV07ZS5jb250ZW50UXVlcmllcyYmZS5jb250ZW50UXVlcmllcygxLG5baV0saSl9fX1mdW5jdGlvbiBrZCh0LGUsbil7Q2koKSYmKCEoZnVuY3Rpb24gbyh0LGUsbixpKXtjb25zdCBhPW4uZGlyZWN0aXZlU3RhcnQscj1uLmRpcmVjdGl2ZUVuZDt0LmZpcnN0Q3JlYXRlUGFzc3x8a2EobixlKTthbChpLGUpO2NvbnN0IHM9bi5pbml0aWFsSW5wdXRzO2ZvcihsZXQgbz1hO288cjtvKyspe2NvbnN0IGk9dC5kYXRhW29dLHI9Um8oaSk7ciYmKG5nRGV2TW9kZSYmZ2EobiwzKSxZZChlLG4saSkpO2NvbnN0IGw9TGEoZSx0LG8sbik7aWYoYWwobCxlKSxudWxsIT09cyYmWGQoZSxvLWEsbCxpLG4scykscil7Zmkobi5pbmRleCxlKVs4XT1sfX19KSh0LGUsbixkaShuLGUpKSwxMjg9PSgxMjgmbi5mbGFncykmJihmdW5jdGlvbiBpKHQsZSxuKXtjb25zdCBvPW4uZGlyZWN0aXZlU3RhcnQsaT1uLmRpcmVjdGl2ZUVuZDtjb25zdCBhPW4uaW5kZXgscj0oZnVuY3Rpb24gcygpe3JldHVybiBfaS5sRnJhbWUuY3VycmVudERpcmVjdGl2ZUluZGV4fSkoKTt0cnl7ZWEoYSk7Zm9yKGxldCBuPW87bjxpO24rKyl7Y29uc3Qgbz10LmRhdGFbbl0saT1lW25dO1ZpKG4pLG51bGw9PT1vLmhvc3RCaW5kaW5ncyYmMD09PW8uaG9zdFZhcnMmJm51bGw9PT1vLmhvc3RBdHRyc3x8VmQobyxpKX19ZmluYWxseXtlYSgtMSksVmkocil9fSkodCxlLG4pKX1mdW5jdGlvbiBTZCh0LGUsbj1kaSl7Y29uc3Qgbz1lLmxvY2FsTmFtZXM7aWYobnVsbCE9PW8pe2xldCBpPWUuaW5kZXgrMTtmb3IobGV0IGE9MDthPG8ubGVuZ3RoO2ErPTIpe2NvbnN0IHI9b1thKzFdLHM9LTE9PT1yP24oZSx0KTp0W3JdO3RbaSsrXT1zfX19ZnVuY3Rpb24gRGQodCl7Y29uc3QgZT10LnRWaWV3O2lmKG51bGw9PT1lfHxlLmluY29tcGxldGVGaXJzdFBhc3Mpe3JldHVybiB0LnRWaWV3PVJkKDEsbnVsbCx0LnRlbXBsYXRlLHQuZGVjbHMsdC52YXJzLHQuZGlyZWN0aXZlRGVmcyx0LnBpcGVEZWZzLHQudmlld1F1ZXJ5LHQuc2NoZW1hcyx0LmNvbnN0cyl9cmV0dXJuIGV9ZnVuY3Rpb24gUmQodCxlLG4sbyxpLGEscixzLGwsYyl7bmdEZXZNb2RlJiZuZ0Rldk1vZGUudFZpZXcrKztjb25zdCBkPXZvK28scD1kK2ksbT0oZnVuY3Rpb24gZih0LGUpe2NvbnN0IG49bmdEZXZNb2RlP25ldyBRYzpbXTtmb3IobGV0IG89MDtvPGU7bysrKW4ucHVzaChvPHQ/bnVsbDpTYyk7cmV0dXJuIG59KShkLHApLHU9ImZ1bmN0aW9uIj09dHlwZW9mIGM/YygpOmMsZz1tWzFdPW5nRGV2TW9kZT9uZXcgY2xhc3N7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSxmLHUsZyxoLGIseSxfLEMsTSx2LHgsTyxQLHcsayxTLEQsUixFKXt0aGlzLnR5cGU9dCx0aGlzLmJsdWVwcmludD1lLHRoaXMudGVtcGxhdGU9bix0aGlzLnF1ZXJpZXM9byx0aGlzLnZpZXdRdWVyeT1pLHRoaXMuZGVjbFROb2RlPWEsdGhpcy5kYXRhPXIsdGhpcy5iaW5kaW5nU3RhcnRJbmRleD1zLHRoaXMuZXhwYW5kb1N0YXJ0SW5kZXg9bCx0aGlzLmhvc3RCaW5kaW5nT3BDb2Rlcz1jLHRoaXMuZmlyc3RDcmVhdGVQYXNzPWQsdGhpcy5maXJzdFVwZGF0ZVBhc3M9cCx0aGlzLnN0YXRpY1ZpZXdRdWVyaWVzPW0sdGhpcy5zdGF0aWNDb250ZW50UXVlcmllcz1mLHRoaXMucHJlT3JkZXJIb29rcz11LHRoaXMucHJlT3JkZXJDaGVja0hvb2tzPWcsdGhpcy5jb250ZW50SG9va3M9aCx0aGlzLmNvbnRlbnRDaGVja0hvb2tzPWIsdGhpcy52aWV3SG9va3M9eSx0aGlzLnZpZXdDaGVja0hvb2tzPV8sdGhpcy5kZXN0cm95SG9va3M9Qyx0aGlzLmNsZWFudXA9TSx0aGlzLmNvbnRlbnRRdWVyaWVzPXYsdGhpcy5jb21wb25lbnRzPXgsdGhpcy5kaXJlY3RpdmVSZWdpc3RyeT1PLHRoaXMucGlwZVJlZ2lzdHJ5PVAsdGhpcy5maXJzdENoaWxkPXcsdGhpcy5zY2hlbWFzPWssdGhpcy5jb25zdHM9Uyx0aGlzLmluY29tcGxldGVGaXJzdFBhc3M9RCx0aGlzLl9kZWNscz1SLHRoaXMuX3ZhcnM9RX1nZXQgdGVtcGxhdGVfKCl7Y29uc3QgdD1bXTtyZXR1cm4gWGModGhpcy5maXJzdENoaWxkLHQpLHQuam9pbigiIil9Z2V0IHR5cGVfKCl7cmV0dXJuIHhvW3RoaXMudHlwZV18fGBUVmlld1R5cGUuPyR7dGhpcy50eXBlfT9gfX0odCxtLG4sbnVsbCxzLGUsKGZ1bmN0aW9uIGgodCl7cmV0dXJuIHZvaWQgMD09PUpjJiYoSmM9bmV3IEtjKSxKYy5jb25jYXQodCl9KShtKS5maWxsKG51bGwsZCksZCxwLG51bGwsITAsITAsITEsITEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwiZnVuY3Rpb24iPT10eXBlb2YgYT9hKCk6YSwiZnVuY3Rpb24iPT10eXBlb2Ygcj9yKCk6cixudWxsLGwsdSwhMSxvLGkpOnt0eXBlOnQsYmx1ZXByaW50Om0sdGVtcGxhdGU6bixxdWVyaWVzOm51bGwsdmlld1F1ZXJ5OnMsZGVjbFROb2RlOmUsZGF0YTptLnNsaWNlKCkuZmlsbChudWxsLGQpLGJpbmRpbmdTdGFydEluZGV4OmQsZXhwYW5kb1N0YXJ0SW5kZXg6cCxob3N0QmluZGluZ09wQ29kZXM6bnVsbCxmaXJzdENyZWF0ZVBhc3M6ITAsZmlyc3RVcGRhdGVQYXNzOiEwLHN0YXRpY1ZpZXdRdWVyaWVzOiExLHN0YXRpY0NvbnRlbnRRdWVyaWVzOiExLHByZU9yZGVySG9va3M6bnVsbCxwcmVPcmRlckNoZWNrSG9va3M6bnVsbCxjb250ZW50SG9va3M6bnVsbCxjb250ZW50Q2hlY2tIb29rczpudWxsLHZpZXdIb29rczpudWxsLHZpZXdDaGVja0hvb2tzOm51bGwsZGVzdHJveUhvb2tzOm51bGwsY2xlYW51cDpudWxsLGNvbnRlbnRRdWVyaWVzOm51bGwsY29tcG9uZW50czpudWxsLGRpcmVjdGl2ZVJlZ2lzdHJ5OiJmdW5jdGlvbiI9PXR5cGVvZiBhP2EoKTphLHBpcGVSZWdpc3RyeToiZnVuY3Rpb24iPT10eXBlb2Ygcj9yKCk6cixmaXJzdENoaWxkOm51bGwsc2NoZW1hczpsLGNvbnN0czp1LGluY29tcGxldGVGaXJzdFBhc3M6ITF9O3JldHVybiBuZ0Rldk1vZGUmJk9iamVjdC5zZWFsKGcpLGd9ZnVuY3Rpb24gRWQodCxlKXtyZXR1cm4gbmV3IEVycm9yKGBSZW5kZXJlcjogJHt0fSBbJHtzbihlKX1dYCl9ZnVuY3Rpb24gQWQodCxlLG4pe2lmKHJpKHQpKXtyZXR1cm4gdC5zZWxlY3RSb290RWxlbWVudChlLG49PT1Xbi5TaGFkb3dEb20pfWxldCBvPSJzdHJpbmciPT10eXBlb2YgZT90LnF1ZXJ5U2VsZWN0b3IoZSk6ZTtyZXR1cm4gbmdEZXZNb2RlJiYoZnVuY3Rpb24gaSh0LGUpe2lmKCF0KXRocm93IEVkKCJzdHJpbmciPT10eXBlb2YgZT8iSG9zdCBub2RlIHdpdGggc2VsZWN0b3Igbm90IGZvdW5kOiI6Ikhvc3Qgbm9kZSBpcyByZXF1aXJlZDoiLGUpfSkobyxlKSxvLnRleHRDb250ZW50PSIiLG99ZnVuY3Rpb24gVGQodCxlLG4sbyl7Y29uc3QgaT1kcChlKTtudWxsPT09bj8obmdEZXZNb2RlJiZPYmplY3QuZnJlZXplKHBwKHQpKSxpLnB1c2gobykpOihpLnB1c2gobiksdC5maXJzdENyZWF0ZVBhc3MmJnBwKHQpLnB1c2gobyxpLmxlbmd0aC0xKSl9ZnVuY3Rpb24gTmQodCxlLG4pe2ZvcihsZXQgbyBpbiB0KWlmKHQuaGFzT3duUHJvcGVydHkobykpe2NvbnN0IGk9dFtvXTsobj1udWxsPT09bj97fTpuKS5oYXNPd25Qcm9wZXJ0eShvKT9uW29dLnB1c2goZSxpKTpuW29dPVtlLGldfXJldHVybiBufWZ1bmN0aW9uIHpkKHQsZSxuLG8saSxhLHIscyl7bmdEZXZNb2RlJiZ5bihpLFNjLCJJbmNvbWluZyB2YWx1ZSBzaG91bGQgbmV2ZXIgYmUgTk9fQ0hBTkdFLiIpO2NvbnN0IGw9ZGkoZSxuKTtsZXQgYyxkPWUuaW5wdXRzO2lmKCFzJiZudWxsIT1kJiYoYz1kW29dKSl1cCh0LG4sYyxvLGkpLFNvKGUpJiYoZnVuY3Rpb24gcCh0LGUpe25nRGV2TW9kZSYmRm8odCk7Y29uc3Qgbj1maShlLHQpOzE2Jm5bMl18fChuWzJdfD02NCl9KShuLGUuaW5kZXgpLG5nRGV2TW9kZSYmKGZ1bmN0aW9uIG0odCxlLG4sbyxpKXtpZig3Jm4pZm9yKGxldCBhPTA7YTxvLmxlbmd0aDthKz0yKUlkKHQsZSxuLG9bYSsxXSxpKX0pKG4sbCxlLnR5cGUsYyxpKTtlbHNlIGlmKDMmZS50eXBlKXtpZihvPShmdW5jdGlvbiBmKHQpe3JldHVybiJjbGFzcyI9PT10PyJjbGFzc05hbWUiOiJmb3IiPT09dD8iaHRtbEZvciI6ImZvcm1hY3Rpb24iPT09dD8iZm9ybUFjdGlvbiI6ImlubmVySHRtbCI9PT10PyJpbm5lckhUTUwiOiJyZWFkb25seSI9PT10PyJyZWFkT25seSI6InRhYmluZGV4Ij09PXQ/InRhYkluZGV4Ijp0fSkobyksbmdEZXZNb2RlKXtpZigoZnVuY3Rpb24gdSh0KXtpZih0LnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aCgib24iKSl7Y29uc3QgZT1gQmluZGluZyB0byBldmVudCBwcm9wZXJ0eSAnJHt0fScgaXMgZGlzYWxsb3dlZCBmb3Igc2VjdXJpdHkgcmVhc29ucywgcGxlYXNlIHVzZSAoJHt0LnNsaWNlKDIpfSk9Li4uXG5JZiAnJHt0fScgaXMgYSBkaXJlY3RpdmUgaW5wdXQsIG1ha2Ugc3VyZSB0aGUgZGlyZWN0aXZlIGlzIGltcG9ydGVkIGJ5IHRoZSBjdXJyZW50IG1vZHVsZS5gO3Rocm93IG5ldyBFcnJvcihlKX19KShvKSwhKGZ1bmN0aW9uIGcodCxlLG4sbyl7aWYobnVsbD09PXQuc2NoZW1hcylyZXR1cm4hMDtpZihIZCh0LG8udmFsdWUpfHxuIGluIGV8fHlhKG4pKXJldHVybiEwO3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgTm9kZXx8bnVsbD09PU5vZGV8fCEoZSBpbnN0YW5jZW9mIE5vZGUpfSkodCxsLG8sZSkpcmV0dXJuIHZvaWQgRmQobyxlKTtuZ0Rldk1vZGUucmVuZGVyZXJTZXRQcm9wZXJ0eSsrfWk9bnVsbCE9cj9yKGksZS52YWx1ZXx8IiIsbyk6aSxyaShhKT9hLnNldFByb3BlcnR5KGwsbyxpKTp5YShvKXx8KGwuc2V0UHJvcGVydHk/bC5zZXRQcm9wZXJ0eShvLGkpOmxbb109aSl9ZWxzZSAxMiZlLnR5cGUmJm5nRGV2TW9kZSYmIUhkKHQsZS52YWx1ZSkmJkZkKG8sZSl9ZnVuY3Rpb24gSWQodCxlLG4sbyxpKXtjb25zdCBhPXRbMTFdO289TWwobyk7Y29uc3Qgcj0oZnVuY3Rpb24gcyh0KXt0cnl7cmV0dXJuIG51bGwhPXQ/dC50b1N0cmluZygpLnNsaWNlKDAsMzApOnR9Y2F0Y2godCl7cmV0dXJuIltFUlJPUl0gRXhjZXB0aW9uIHdoaWxlIHRyeWluZyB0byBzZXJpYWxpemUgdGhlIHZhbHVlIn19KShpKTtpZigzJm4pbnVsbD09aT9yaShhKT9hLnJlbW92ZUF0dHJpYnV0ZShlLG8pOmUucmVtb3ZlQXR0cmlidXRlKG8pOnJpKGEpP2Euc2V0QXR0cmlidXRlKGUsbyxyKTplLnNldEF0dHJpYnV0ZShvLHIpO2Vsc2V7Y29uc3QgdD1fbChgYmluZGluZ3M9JHtKU09OLnN0cmluZ2lmeSh7W29dOnJ9LG51bGwsMil9YCk7cmkoYSk/YS5zZXRWYWx1ZShlLHQpOmUudGV4dENvbnRlbnQ9dH19ZnVuY3Rpb24gSGQodCxlKXtjb25zdCBuPXQuc2NoZW1hcztpZihudWxsIT09bilmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoO3QrKyl7Y29uc3Qgbz1uW3RdO2lmKG89PT1obHx8bz09PWdsJiZlJiZlLmluZGV4T2YoIi0iKT4tMSlyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBGZCh0LGUpe2NvbnNvbGUuZXJyb3IoYW4oIjMwMyIsYENhbid0IGJpbmQgdG8gJyR7dH0nIHNpbmNlIGl0IGlzbid0IGEga25vd24gcHJvcGVydHkgb2YgJyR7ZS52YWx1ZX0nLmApKX1mdW5jdGlvbiBMZCh0LGUsbixvKXtuZ0Rldk1vZGUmJkxvKHQpO2xldCBpPSExO2lmKENpKCkpe2NvbnN0IGE9KGZ1bmN0aW9uIGEodCxlLG4pe25nRGV2TW9kZSYmTG8odCksbmdEZXZNb2RlJiZnYShuLDE1KTtjb25zdCBvPXQuZGlyZWN0aXZlUmVnaXN0cnk7bGV0IGk9bnVsbDtpZihvKWZvcihsZXQgYT0wO2E8by5sZW5ndGg7YSsrKXtjb25zdCByPW9bYV07T2MobixyLnNlbGVjdG9ycywhMSkmJihpfHwoaT1uZ0Rldk1vZGU/bmV3ICRjOltdKSxFYShrYShuLGUpLHQsci50eXBlKSxSbyhyKT8obmdEZXZNb2RlJiYoZ2EobiwyLGAiJHtuLnZhbHVlfSIgdGFncyBjYW5ub3QgYmUgdXNlZCBhcyBjb21wb25lbnQgaG9zdHMuIFBsZWFzZSB1c2UgYSBkaWZmZXJlbnQgdGFnIHRvIGFjdGl2YXRlIHRoZSAke0tlKHIudHlwZSl9IGNvbXBvbmVudC5gKSwyJm4uZmxhZ3MmJkRsKG4pKSxqZCh0LG4pLGkudW5zaGlmdChyKSk6aS5wdXNoKHIpKX1yZXR1cm4gaX0pKHQsZSxuKSxyPW51bGw9PT1vP251bGw6eyIiOi0xfTtpZihudWxsIT09YSl7aT0hMCxXZChuLHQuZGF0YS5sZW5ndGgsYS5sZW5ndGgpO2ZvcihsZXQgdD0wO3Q8YS5sZW5ndGg7dCsrKXtjb25zdCBlPWFbdF07ZS5wcm92aWRlcnNSZXNvbHZlciYmZS5wcm92aWRlcnNSZXNvbHZlcihlKX1sZXQgbz0hMSxzPSExLGw9TWQodCxlLGEubGVuZ3RoLG51bGwpO25nRGV2TW9kZSYmYm4obCxuLmRpcmVjdGl2ZVN0YXJ0LCJUTm9kZS5kaXJlY3RpdmVTdGFydCBzaG91bGQgcG9pbnQgdG8ganVzdCBhbGxvY2F0ZWQgc3BhY2UiKTtmb3IobGV0IGk9MDtpPGEubGVuZ3RoO2krKyl7Y29uc3QgYz1hW2ldO24ubWVyZ2VkQXR0cnM9X2Eobi5tZXJnZWRBdHRycyxjLmhvc3RBdHRycyksR2QodCxuLGUsbCxjKSxVZChsLGMsciksbnVsbCE9PWMuY29udGVudFF1ZXJpZXMmJihuLmZsYWdzfD04KSxudWxsPT09Yy5ob3N0QmluZGluZ3MmJm51bGw9PT1jLmhvc3RBdHRycyYmMD09PWMuaG9zdFZhcnN8fChuLmZsYWdzfD0xMjgpO2NvbnN0IGQ9Yy50eXBlLnByb3RvdHlwZTshbyYmKGQubmdPbkNoYW5nZXN8fGQubmdPbkluaXR8fGQubmdEb0NoZWNrKSYmKCh0LnByZU9yZGVySG9va3N8fCh0LnByZU9yZGVySG9va3M9W10pKS5wdXNoKG4uaW5kZXgpLG89ITApLHN8fCFkLm5nT25DaGFuZ2VzJiYhZC5uZ0RvQ2hlY2t8fCgodC5wcmVPcmRlckNoZWNrSG9va3N8fCh0LnByZU9yZGVyQ2hlY2tIb29rcz1bXSkpLnB1c2gobi5pbmRleCkscz0hMCksbCsrfSEoZnVuY3Rpb24gcih0LGUpe25nRGV2TW9kZSYmTG8odCk7Y29uc3Qgbj1lLmRpcmVjdGl2ZVN0YXJ0LG89ZS5kaXJlY3RpdmVFbmQsaT10LmRhdGEsYT1lLmF0dHJzLHI9bmdEZXZNb2RlP25ldyBuZDpbXTtsZXQgcz1udWxsLGw9bnVsbDtmb3IobGV0IHQ9bjt0PG87dCsrKXtjb25zdCBuPWlbdF0sbz1uLmlucHV0cyxjPW51bGw9PT1hfHxfYyhlKT9udWxsOktkKG8sYSk7ci5wdXNoKGMpLHM9TmQobyx0LHMpLGw9TmQobi5vdXRwdXRzLHQsbCl9bnVsbCE9PXMmJihzLmhhc093blByb3BlcnR5KCJjbGFzcyIpJiYoZS5mbGFnc3w9MTYpLHMuaGFzT3duUHJvcGVydHkoInN0eWxlIikmJihlLmZsYWdzfD0zMikpLGUuaW5pdGlhbElucHV0cz1yLGUuaW5wdXRzPXMsZS5vdXRwdXRzPWx9KSh0LG4pfXImJihmdW5jdGlvbiBzKHQsZSxuKXtpZihlKXtjb25zdCBvPXQubG9jYWxOYW1lcz1uZ0Rldk1vZGU/bmV3IGVkOltdO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCs9Mil7Y29uc3QgaT1uW2VbdCsxXV07aWYobnVsbD09aSl0aHJvdyBuZXcgbm4oIjMwMSIsYEV4cG9ydCBvZiBuYW1lICcke2VbdCsxXX0nIG5vdCBmb3VuZCFgKTtvLnB1c2goZVt0XSxpKX19fSkobixvLHIpfXJldHVybiBuLm1lcmdlZEF0dHJzPV9hKG4ubWVyZ2VkQXR0cnMsbi5hdHRycyksaX1mdW5jdGlvbiBCZCh0LGUsbixvLGksYSl7bmdEZXZNb2RlJiZMbyh0KTtjb25zdCByPWEuaG9zdEJpbmRpbmdzO2lmKHIpe2xldCBuPXQuaG9zdEJpbmRpbmdPcENvZGVzO251bGw9PT1uJiYobj10Lmhvc3RCaW5kaW5nT3BDb2Rlcz1bXSk7Y29uc3QgYT1+ZS5pbmRleDsoZnVuY3Rpb24gcyh0KXtsZXQgZT10Lmxlbmd0aDtmb3IoO2U+MDspe2NvbnN0IG49dFstLWVdO2lmKCJudW1iZXIiPT10eXBlb2YgbiYmbjwwKXJldHVybiBufXJldHVybiAwfSkobikhPWEmJm4ucHVzaChhKSxuLnB1c2gobyxpLHIpfX1mdW5jdGlvbiBWZCh0LGUpe251bGwhPT10Lmhvc3RCaW5kaW5ncyYmdC5ob3N0QmluZGluZ3MoMSxlKX1mdW5jdGlvbiBqZCh0LGUpe25nRGV2TW9kZSYmTG8odCksZS5mbGFnc3w9MiwodC5jb21wb25lbnRzfHwodC5jb21wb25lbnRzPW5nRGV2TW9kZT9uZXcgdGQ6W10pKS5wdXNoKGUuaW5kZXgpfWZ1bmN0aW9uIFVkKHQsZSxuKXtpZihuKXtpZihlLmV4cG9ydEFzKWZvcihsZXQgbz0wO288ZS5leHBvcnRBcy5sZW5ndGg7bysrKW5bZS5leHBvcnRBc1tvXV09dDtSbyhlKSYmKG5bIiJdPXQpfX1mdW5jdGlvbiBXZCh0LGUsbil7bmdEZXZNb2RlJiZobihuLHQuZGlyZWN0aXZlRW5kLXQuZGlyZWN0aXZlU3RhcnQsIlJlYWNoZWQgdGhlIG1heCBudW1iZXIgb2YgZGlyZWN0aXZlcyIpLHQuZmxhZ3N8PTEsdC5kaXJlY3RpdmVTdGFydD1lLHQuZGlyZWN0aXZlRW5kPWUrbix0LnByb3ZpZGVySW5kZXhlcz1lfWZ1bmN0aW9uIEdkKHQsZSxuLG8saSl7bmdEZXZNb2RlJiZ2bihvLHZvLCJNdXN0IGJlIGluIEV4cGFuZG8gc2VjdGlvbiIpLHQuZGF0YVtvXT1pO2NvbnN0IGE9aS5mYWN0b3J5fHwoaS5mYWN0b3J5PUdvKGkudHlwZSwhMCkpLHI9bmV3IGZhKGEsUm8oaSksbnVsbCk7dC5ibHVlcHJpbnRbb109cixuW29dPXIsQmQodCxlLDAsbyxNZCh0LG4saS5ob3N0VmFycyxTYyksaSl9ZnVuY3Rpb24gWWQodCxlLG4pe2NvbnN0IG89ZGkoZSx0KSxpPURkKG4pLGE9dFsxMF0scj1ucCh0LHlkKHQsaSxudWxsLG4ub25QdXNoPzY0OjE2LG8sZSxhLGEuY3JlYXRlUmVuZGVyZXIobyxuKSxudWxsLG51bGwpKTt0W2UuaW5kZXhdPXJ9ZnVuY3Rpb24gcWQodCxlLG4sbyxpLGEpe25nRGV2TW9kZSYmKHluKG8sU2MsIkluY29taW5nIHZhbHVlIHNob3VsZCBuZXZlciBiZSBOT19DSEFOR0UuIiksKGZ1bmN0aW9uIHIodCl7aWYodC50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoIm9uIikpe2NvbnN0IGU9YEJpbmRpbmcgdG8gZXZlbnQgYXR0cmlidXRlICcke3R9JyBpcyBkaXNhbGxvd2VkIGZvciBzZWN1cml0eSByZWFzb25zLCBwbGVhc2UgdXNlICgke3Quc2xpY2UoMil9KT0uLi5gO3Rocm93IG5ldyBFcnJvcihlKX19KShuKSxnYSh0LDIsYEF0dGVtcHRlZCB0byBzZXQgYXR0cmlidXRlIFxgJHtufVxgIG9uIGEgY29udGFpbmVyIG5vZGUuIEhvc3QgYmluZGluZ3MgYXJlIG5vdCB2YWxpZCBvbiBuZy1jb250YWluZXIgb3IgbmctdGVtcGxhdGUuYCkpO2NvbnN0IHM9ZGkodCxlKTtaZChlWzExXSxzLGEsdC52YWx1ZSxuLG8saSl9ZnVuY3Rpb24gWmQodCxlLG4sbyxpLGEscil7aWYobnVsbD09YSluZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlclJlbW92ZUF0dHJpYnV0ZSsrLHJpKHQpP3QucmVtb3ZlQXR0cmlidXRlKGUsaSxuKTplLnJlbW92ZUF0dHJpYnV0ZShpKTtlbHNle25nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyU2V0QXR0cmlidXRlKys7Y29uc3Qgcz1udWxsPT1yP3JuKGEpOnIoYSxvfHwiIixpKTtyaSh0KT90LnNldEF0dHJpYnV0ZShlLGkscyxuKTpuP2Uuc2V0QXR0cmlidXRlTlMobixpLHMpOmUuc2V0QXR0cmlidXRlKGkscyl9fWZ1bmN0aW9uIFhkKHQsZSxuLG8saSxhKXtjb25zdCByPWFbZV07aWYobnVsbCE9PXIpe2NvbnN0IGU9by5zZXRJbnB1dDtmb3IobGV0IGE9MDthPHIubGVuZ3RoOyl7Y29uc3Qgcz1yW2ErK10sbD1yW2ErK10sYz1yW2ErK107aWYobnVsbCE9PWU/by5zZXRJbnB1dChuLGMscyxsKTpuW2xdPWMsbmdEZXZNb2RlKXtJZCh0LGRpKGksdCksaS50eXBlLGwsYyl9fX19ZnVuY3Rpb24gS2QodCxlKXtsZXQgbj1udWxsLG89MDtmb3IoO288ZS5sZW5ndGg7KXtjb25zdCBpPWVbb107aWYoMCE9PWkpaWYoNSE9PWkpe2lmKCJudW1iZXIiPT10eXBlb2YgaSlicmVhazt0Lmhhc093blByb3BlcnR5KGkpJiYobnVsbD09PW4mJihuPVtdKSxuLnB1c2goaSx0W2ldLGVbbysxXSkpLG8rPTJ9ZWxzZSBvKz0yO2Vsc2Ugbys9NH1yZXR1cm4gbn1jb25zdCBKZD0oInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJktuKCkmJkNsKCJMQ29udGFpbmVyIik7ZnVuY3Rpb24gUWQodCxlLG4sbyl7bmdEZXZNb2RlJiZGbyhlKSxuZ0Rldk1vZGUmJiFyaShlWzExXSkmJlBuKG4pO2NvbnN0IGk9bmV3KG5nRGV2TW9kZT9KZDpBcnJheSkodCwhMCwhMSxlLG51bGwsMCxvLG4sbnVsbCxudWxsKTtyZXR1cm4gbmdEZXZNb2RlJiZnbihpLmxlbmd0aCxPbywiU2hvdWxkIGFsbG9jYXRlIGNvcnJlY3QgbnVtYmVyIG9mIHNsb3RzIGZvciBMQ29udGFpbmVyIGhlYWRlci4iKSxuZ0Rldk1vZGUmJihmdW5jdGlvbiBhKHQpe0xjKHQsbmV3IGdkKHQpKX0pKGkpLGl9ZnVuY3Rpb24gJGQodCxlKXtuZ0Rldk1vZGUmJmduKHVpKHQpLCExLCJTaG91bGQgYmUgcnVuIGluIHVwZGF0ZSBtb2RlIik7Y29uc3Qgbj1maShlLHQpO2lmKGdpKG4pKXtjb25zdCB0PW5bMV07ODAmblsyXT94ZCh0LG4sdC50ZW1wbGF0ZSxuWzhdKTpuWzVdPjAmJnRwKG4pfX1mdW5jdGlvbiB0cCh0KXtmb3IobGV0IGU9SWwodCk7bnVsbCE9PWU7ZT1IbChlKSlmb3IobGV0IHQ9T287dDxlLmxlbmd0aDt0Kyspe2NvbnN0IG49ZVt0XTtpZigxMDI0Jm5bMl0pe2NvbnN0IHQ9blsxXTtuZ0Rldk1vZGUmJnhuKHQsIlRWaWV3IG11c3QgYmUgYWxsb2NhdGVkIikseGQodCxuLHQudGVtcGxhdGUsbls4XSl9ZWxzZSBuWzVdPjAmJnRwKG4pfWNvbnN0IGU9dFsxXS5jb21wb25lbnRzO2lmKG51bGwhPT1lKWZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXtjb25zdCBvPWZpKGVbbl0sdCk7Z2kobykmJm9bNV0+MCYmdHAobyl9fWZ1bmN0aW9uIGVwKHQsZSl7bmdEZXZNb2RlJiZnbih1aSh0KSwhMCwiU2hvdWxkIGJlIHJ1biBpbiBjcmVhdGlvbiBtb2RlIik7Y29uc3Qgbj1maShlLHQpLG89blsxXTshKGZ1bmN0aW9uIGkodCxlKXtmb3IobGV0IG49ZS5sZW5ndGg7bjx0LmJsdWVwcmludC5sZW5ndGg7bisrKWUucHVzaCh0LmJsdWVwcmludFtuXSl9KShvLG4pLHZkKG8sbixuWzhdKX1mdW5jdGlvbiBucCh0LGUpe3JldHVybiB0WzEzXT90WzE0XVs0XT1lOnRbMTNdPWUsdFsxNF09ZSxlfWZ1bmN0aW9uIG9wKHQpe2Zvcig7dDspe3RbMl18PTY0O2NvbnN0IGU9TmwodCk7aWYoMCE9KDUxMiZ0WzJdKSYmIWUpcmV0dXJuIHQ7dD1lfXJldHVybiBudWxsfWZ1bmN0aW9uIGlwKHQpe2ZvcihsZXQgZT0wO2U8dC5jb21wb25lbnRzLmxlbmd0aDtlKyspe2NvbnN0IG49dC5jb21wb25lbnRzW2VdLG89c2wobiksaT1vWzFdO09kKGksbyxpLnRlbXBsYXRlLG4pfX1mdW5jdGlvbiBhcCh0LGUsbil7Y29uc3Qgbz1lWzEwXTtvLmJlZ2luJiZvLmJlZ2luKCk7dHJ5e3hkKHQsZSx0LnRlbXBsYXRlLG4pfWNhdGNoKHQpe3Rocm93IGZwKGUsdCksdH1maW5hbGx5e28uZW5kJiZvLmVuZCgpfX1mdW5jdGlvbiBycCh0KXtpcCh0WzhdKX1mdW5jdGlvbiBzcCh0LGUsbil7bmdEZXZNb2RlJiZ4bihlLCJWaWV3IHF1ZXJpZXMgZnVuY3Rpb24gdG8gZXhlY3V0ZSBtdXN0IGJlIGRlZmluZWQuIiksV2koMCksZSh0LG4pfWZ1bmN0aW9uIGxwKHQsZSxuLG8sLi4uaSl7aWYobnVsbD09PXRbb10mJihudWxsPT1lLmlucHV0c3x8IWUuaW5wdXRzW25dKSl7KGUucHJvcGVydHlCaW5kaW5nc3x8KGUucHJvcGVydHlCaW5kaW5ncz1bXSkpLnB1c2gobyk7bGV0IGE9bjtpLmxlbmd0aD4wJiYoYSs9a2wraS5qb2luKGtsKSksdFtvXT1hfX1jb25zdCBjcD1oZDtmdW5jdGlvbiBkcCh0KXtyZXR1cm4gdFs3XXx8KHRbN109bmdEZXZNb2RlP25ldyBvZDpbXSl9ZnVuY3Rpb24gcHAodCl7cmV0dXJuIHQuY2xlYW51cHx8KHQuY2xlYW51cD1uZ0Rldk1vZGU/bmV3IGlkOltdKX1mdW5jdGlvbiBtcCh0LGUsbil7cmV0dXJuKG51bGw9PT10fHxSbyh0KSkmJihuPShmdW5jdGlvbiBvKHQpe2Zvcig7QXJyYXkuaXNBcnJheSh0KTspe2lmKCJvYmplY3QiPT10eXBlb2YgdFsxXSlyZXR1cm4gdDt0PXRbMF19cmV0dXJuIG51bGx9KShuW2UuaW5kZXhdKSksblsxMV19ZnVuY3Rpb24gZnAodCxlKXtjb25zdCBuPXRbOV0sbz1uP24uZ2V0KHVsLG51bGwpOm51bGw7byYmby5oYW5kbGVFcnJvcihlKX1mdW5jdGlvbiB1cCh0LGUsbixvLGkpe2ZvcihsZXQgYT0wO2E8bi5sZW5ndGg7KXtjb25zdCByPW5bYSsrXSxzPW5bYSsrXSxsPWVbcl07bmdEZXZNb2RlJiZ3bihlLHIpO2NvbnN0IGM9dC5kYXRhW3JdO251bGwhPT1jLnNldElucHV0P2Muc2V0SW5wdXQobCxpLG8scyk6bFtzXT1pfX1mdW5jdGlvbiBncCh0LGUsbil7bmdEZXZNb2RlJiZmbihuLCJWYWx1ZSBzaG91bGQgYmUgYSBzdHJpbmciKSxuZ0Rldk1vZGUmJnluKG4sU2MsInZhbHVlIHNob3VsZCBub3QgYmUgTk9fQ0hBTkdFIiksbmdEZXZNb2RlJiZ3bih0LGUpO2NvbnN0IG89Y2koZSx0KTtuZ0Rldk1vZGUmJnhuKG8sIm5hdGl2ZSBlbGVtZW50IHNob3VsZCBleGlzdCIpLFZsKHRbMTFdLG8sbil9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIGhwKHQsZSxuKXtuZ0Rldk1vZGUmJkxvKE9pKCksIkV4cGVjdGluZyB0byBiZSBjYWxsZWQgaW4gZmlyc3QgdGVtcGxhdGUgcGFzcyBvbmx5Iik7bGV0IG89bj90LnN0eWxlczpudWxsLGk9bj90LmNsYXNzZXM6bnVsbCxhPTA7aWYobnVsbCE9PWUpZm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IG49ZVt0XTtpZigibnVtYmVyIj09dHlwZW9mIG4pYT1uO2Vsc2UgaWYoMT09YSlpPUplKGksbik7ZWxzZSBpZigyPT1hKXtvPUplKG8sbisiOiAiK2VbKyt0XSsiOyIpfX1uP3Quc3R5bGVzPW86dC5zdHlsZXNXaXRob3V0SG9zdD1vLG4/dC5jbGFzc2VzPWk6dC5jbGFzc2VzV2l0aG91dEhvc3Q9aX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gYnAodCl7bmdEZXZNb2RlJiZ4bih0LCJjb21wb25lbnQiKTtjb25zdCBlPW9wKGlsKHQpKTtuZ0Rldk1vZGUmJnhuKGVbOF0sInJvb3RDb250ZXh0IHNob3VsZCBiZSBkZWZpbmVkIiksKGZ1bmN0aW9uIG4odCxlKXtpZigwPT09dC5mbGFncyYmdC5jbGVhbj09aGQpe2xldCBuO3QuZmxhZ3N8PWUsdC5jbGVhbj1uZXcgUHJvbWlzZSgodD0+bj10KSksdC5zY2hlZHVsZXIoKCgpPT57aWYoMSZ0LmZsYWdzJiYodC5mbGFncyY9LTIsaXAodCkpLDImdC5mbGFncyl7dC5mbGFncyY9LTM7Y29uc3QgZT10LnBsYXllckhhbmRsZXI7ZSYmZS5mbHVzaFBsYXllcnMoKX10LmNsZWFuPWhkLG4obnVsbCl9KSl9fSkoZVs4XSwxKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgeXA9bmV3IGVyKCJJTkpFQ1RPUiIsLTEpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBfcHtnZXQodCxlPXdyKXtpZihlPT09d3Ipe2NvbnN0IGU9bmV3IEVycm9yKGBOdWxsSW5qZWN0b3JFcnJvcjogTm8gcHJvdmlkZXIgZm9yICR7S2UodCl9IWApO3Rocm93IGUubmFtZT0iTnVsbEluamVjdG9yRXJyb3IiLGV9cmV0dXJuIGV9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBDcD1uZXcgZXIoIlNldCBJbmplY3RvciBzY29wZS4iKSxNcD17fSx2cD17fTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovbGV0IHhwO2Z1bmN0aW9uIE9wKCl7cmV0dXJuIHZvaWQgMD09PXhwJiYoeHA9bmV3IF9wKSx4cH1mdW5jdGlvbiBQcCh0LGU9bnVsbCxuPW51bGwsbyl7cmV0dXJuIG5ldyB3cCh0LG4sZXx8T3AoKSxvKX1jbGFzcyB3cHtjb25zdHJ1Y3Rvcih0LGUsbixvPW51bGwpe3RoaXMucGFyZW50PW4sdGhpcy5yZWNvcmRzPW5ldyBNYXAsdGhpcy5pbmplY3RvckRlZlR5cGVzPW5ldyBTZXQsdGhpcy5vbkRlc3Ryb3k9bmV3IFNldCx0aGlzLl9kZXN0cm95ZWQ9ITE7Y29uc3QgaT1bXTtlJiZtcihlLChuPT50aGlzLnByb2Nlc3NQcm92aWRlcihuLHQsZSkpKSxtcihbdF0sKHQ9PnRoaXMucHJvY2Vzc0luamVjdG9yVHlwZSh0LFtdLGkpKSksdGhpcy5yZWNvcmRzLnNldCh5cCxEcCh2b2lkIDAsdGhpcykpO2NvbnN0IGE9dGhpcy5yZWNvcmRzLmdldChDcCk7dGhpcy5zY29wZT1udWxsIT1hP2EudmFsdWU6bnVsbCx0aGlzLnNvdXJjZT1vfHwoIm9iamVjdCI9PXR5cGVvZiB0P251bGw6S2UodCkpfWdldCBkZXN0cm95ZWQoKXtyZXR1cm4gdGhpcy5fZGVzdHJveWVkfWRlc3Ryb3koKXt0aGlzLmFzc2VydE5vdERlc3Ryb3llZCgpLHRoaXMuX2Rlc3Ryb3llZD0hMDt0cnl7dGhpcy5vbkRlc3Ryb3kuZm9yRWFjaCgodD0+dC5uZ09uRGVzdHJveSgpKSl9ZmluYWxseXt0aGlzLnJlY29yZHMuY2xlYXIoKSx0aGlzLm9uRGVzdHJveS5jbGVhcigpLHRoaXMuaW5qZWN0b3JEZWZUeXBlcy5jbGVhcigpfX1nZXQodCxlPXdyLG49SG4uRGVmYXVsdCl7dGhpcy5hc3NlcnROb3REZXN0cm95ZWQoKTtjb25zdCBvPUVyKHRoaXMpLGk9TG4odm9pZCAwKTt0cnl7aWYoIShuJkhuLlNraXBTZWxmKSl7bGV0IGU9dGhpcy5yZWNvcmRzLmdldCh0KTtpZih2b2lkIDA9PT1lKXtjb25zdCBuPShmdW5jdGlvbiBvKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fHwib2JqZWN0Ij09dHlwZW9mIHQmJnQgaW5zdGFuY2VvZiBlcn0pKHQpJiZSbih0KTtlPW4mJnRoaXMuaW5qZWN0YWJsZURlZkluU2NvcGUobik/RHAoa3AodCksTXApOm51bGwsdGhpcy5yZWNvcmRzLnNldCh0LGUpfWlmKG51bGwhPWUpcmV0dXJuIHRoaXMuaHlkcmF0ZSh0LGUpfXJldHVybihuJkhuLlNlbGY/T3AoKTp0aGlzLnBhcmVudCkuZ2V0KHQsZT1uJkhuLk9wdGlvbmFsJiZlPT09d3I/bnVsbDplKX1jYXRjaChlKXtpZigiTnVsbEluamVjdG9yRXJyb3IiPT09ZS5uYW1lKXtpZigoZS5uZ1RlbXBUb2tlblBhdGg9ZS5uZ1RlbXBUb2tlblBhdGh8fFtdKS51bnNoaWZ0KEtlKHQpKSxvKXRocm93IGU7cmV0dXJuIEZyKGUsdCwiUjNJbmplY3RvckVycm9yIix0aGlzLnNvdXJjZSl9dGhyb3cgZX1maW5hbGx5e0xuKGkpLEVyKG8pfX1fcmVzb2x2ZUluamVjdG9yRGVmVHlwZXMoKXt0aGlzLmluamVjdG9yRGVmVHlwZXMuZm9yRWFjaCgodD0+dGhpcy5nZXQodCkpKX10b1N0cmluZygpe2NvbnN0IHQ9W107cmV0dXJuIHRoaXMucmVjb3Jkcy5mb3JFYWNoKCgoZSxuKT0+dC5wdXNoKEtlKG4pKSkpLGBSM0luamVjdG9yWyR7dC5qb2luKCIsICIpfV1gfWFzc2VydE5vdERlc3Ryb3llZCgpe2lmKHRoaXMuX2Rlc3Ryb3llZCl0aHJvdyBuZXcgRXJyb3IoIkluamVjdG9yIGhhcyBhbHJlYWR5IGJlZW4gZGVzdHJveWVkLiIpfXByb2Nlc3NJbmplY3RvclR5cGUodCxlLG4pe2lmKCEodD10bih0KSkpcmV0dXJuITE7bGV0IG89QW4odCk7Y29uc3QgaT1udWxsPT1vJiZ0Lm5nTW9kdWxlfHx2b2lkIDAsYT12b2lkIDA9PT1pP3Q6aTtpZihuZ0Rldk1vZGUmJi0xIT09ZS5pbmRleE9mKGEpKXtsbihLZShhKSxlLm1hcChLZSkpfWNvbnN0IHI9LTEhPT1uLmluZGV4T2YoYSk7aWYodm9pZCAwIT09aSYmKG89QW4oaSkpLG51bGw9PW8pcmV0dXJuITE7aWYobnVsbCE9by5pbXBvcnRzJiYhcil7bGV0IHQ7bmdEZXZNb2RlJiZlLnB1c2goYSksbi5wdXNoKGEpO3RyeXttcihvLmltcG9ydHMsKG89Pnt0aGlzLnByb2Nlc3NJbmplY3RvclR5cGUobyxlLG4pJiYodm9pZCAwPT09dCYmKHQ9W10pLHQucHVzaChvKSl9KSl9ZmluYWxseXtuZ0Rldk1vZGUmJmUucG9wKCl9aWYodm9pZCAwIT09dClmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl7Y29uc3R7bmdNb2R1bGU6bixwcm92aWRlcnM6b309dFtlXTttcihvLCh0PT50aGlzLnByb2Nlc3NQcm92aWRlcih0LG4sb3x8UW4pKSl9fXRoaXMuaW5qZWN0b3JEZWZUeXBlcy5hZGQoYSk7Y29uc3Qgcz1HbyhhKXx8KCgpPT5uZXcgYSk7dGhpcy5yZWNvcmRzLnNldChhLERwKHMsTXApKTtjb25zdCBsPW8ucHJvdmlkZXJzO2lmKG51bGwhPWwmJiFyKXtjb25zdCBlPXQ7bXIobCwodD0+dGhpcy5wcm9jZXNzUHJvdmlkZXIodCxlLGwpKSl9cmV0dXJuIHZvaWQgMCE9PWkmJnZvaWQgMCE9PXQucHJvdmlkZXJzfXByb2Nlc3NQcm92aWRlcih0LGUsbil7bGV0IG89RXAodD10bih0KSk/dDp0bih0JiZ0LnByb3ZpZGUpO2NvbnN0IGk9KGZ1bmN0aW9uIGEodCxlLG4pe2lmKFJwKHQpKXJldHVybiBEcCh2b2lkIDAsdC51c2VWYWx1ZSk7cmV0dXJuIERwKFNwKHQsZSxuKSxNcCl9KSh0LGUsbik7aWYoRXAodCl8fCEwIT09dC5tdWx0aSl7Y29uc3QgdD10aGlzLnJlY29yZHMuZ2V0KG8pO25nRGV2TW9kZSYmdCYmdm9pZCAwIT09dC5tdWx0aSYmY24oKX1lbHNle2xldCBlPXRoaXMucmVjb3Jkcy5nZXQobyk7ZT9uZ0Rldk1vZGUmJnZvaWQgMD09PWUubXVsdGkmJmNuKCk6KGU9RHAodm9pZCAwLE1wLCEwKSxlLmZhY3Rvcnk9KCk9PklyKGUubXVsdGkpLHRoaXMucmVjb3Jkcy5zZXQobyxlKSksbz10LGUubXVsdGkucHVzaCh0KX10aGlzLnJlY29yZHMuc2V0KG8saSl9aHlkcmF0ZSh0LGUpe3JldHVybiBuZ0Rldk1vZGUmJmUudmFsdWU9PT12cD9sbihLZSh0KSk6ZS52YWx1ZT09PU1wJiYoZS52YWx1ZT12cCxlLnZhbHVlPWUuZmFjdG9yeSgpKSwib2JqZWN0Ij09dHlwZW9mIGUudmFsdWUmJmUudmFsdWUmJihmdW5jdGlvbiBuKHQpe3JldHVybiBudWxsIT09dCYmIm9iamVjdCI9PXR5cGVvZiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgdC5uZ09uRGVzdHJveX0pKGUudmFsdWUpJiZ0aGlzLm9uRGVzdHJveS5hZGQoZS52YWx1ZSksZS52YWx1ZX1pbmplY3RhYmxlRGVmSW5TY29wZSh0KXtpZighdC5wcm92aWRlZEluKXJldHVybiExO2NvbnN0IGU9dG4odC5wcm92aWRlZEluKTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/ImFueSI9PT1lfHxlPT09dGhpcy5zY29wZTp0aGlzLmluamVjdG9yRGVmVHlwZXMuaGFzKGUpfX1mdW5jdGlvbiBrcCh0KXtjb25zdCBlPVJuKHQpLG49bnVsbCE9PWU/ZS5mYWN0b3J5OkdvKHQpO2lmKG51bGwhPT1uKXJldHVybiBuO2lmKHQgaW5zdGFuY2VvZiBlcil0aHJvdyBuZXcgRXJyb3IoYFRva2VuICR7S2UodCl9IGlzIG1pc3NpbmcgYSDJtXByb3YgZGVmaW5pdGlvbi5gKTtpZih0IGluc3RhbmNlb2YgRnVuY3Rpb24pcmV0dXJuKGZ1bmN0aW9uIG8odCl7Y29uc3QgZT10Lmxlbmd0aDtpZihlPjApe2NvbnN0IG49Z3IoZSwiPyIpO3Rocm93IG5ldyBFcnJvcihgQ2FuJ3QgcmVzb2x2ZSBhbGwgcGFyYW1ldGVycyBmb3IgJHtLZSh0KX06ICgke24uam9pbigiLCAiKX0pLmApfWNvbnN0IG49KGZ1bmN0aW9uIG8odCl7Y29uc3QgZT10JiYodFtUbl18fHRbem5dKTtpZihlKXtjb25zdCBuPShmdW5jdGlvbiBuKHQpe2lmKHQuaGFzT3duUHJvcGVydHkoIm5hbWUiKSlyZXR1cm4gdC5uYW1lO2NvbnN0IGU9KCIiK3QpLm1hdGNoKC9eZnVuY3Rpb25ccyooW15ccyhdKykvKTtyZXR1cm4gbnVsbD09PWU/IiI6ZVsxXX0pKHQpO3JldHVybiBjb25zb2xlLndhcm4oYERFUFJFQ0FURUQ6IERJIGlzIGluc3RhbnRpYXRpbmcgYSB0b2tlbiAiJHtufSIgdGhhdCBpbmhlcml0cyBpdHMgQEluamVjdGFibGUgZGVjb3JhdG9yIGJ1dCBkb2VzIG5vdCBwcm92aWRlIG9uZSBpdHNlbGYuXG5UaGlzIHdpbGwgYmVjb21lIGFuIGVycm9yIGluIGEgZnV0dXJlIHZlcnNpb24gb2YgQW5ndWxhci4gUGxlYXNlIGFkZCBASW5qZWN0YWJsZSgpIHRvIHRoZSAiJHtufSIgY2xhc3MuYCksZX1yZXR1cm4gbnVsbH0pKHQpO3JldHVybiBudWxsIT09bj8oKT0+bi5mYWN0b3J5KHQpOigpPT5uZXcgdH0pKHQpO3Rocm93IG5ldyBFcnJvcigidW5yZWFjaGFibGUiKX1mdW5jdGlvbiBTcCh0LGUsbil7bGV0IG87aWYoRXAodCkpe2NvbnN0IGU9dG4odCk7cmV0dXJuIEdvKGUpfHxrcChlKX1pZihScCh0KSlvPSgpPT50bih0LnVzZVZhbHVlKTtlbHNlIGlmKChmdW5jdGlvbiBpKHQpe3JldHVybiEoIXR8fCF0LnVzZUZhY3RvcnkpfSkodCkpbz0oKT0+dC51c2VGYWN0b3J5KC4uLklyKHQuZGVwc3x8W10pKTtlbHNlIGlmKChmdW5jdGlvbiBhKHQpe3JldHVybiEoIXR8fCF0LnVzZUV4aXN0aW5nKX0pKHQpKW89KCk9PlRyKHRuKHQudXNlRXhpc3RpbmcpKTtlbHNle2NvbnN0IGk9dG4odCYmKHQudXNlQ2xhc3N8fHQucHJvdmlkZSkpO2lmKG5nRGV2TW9kZSYmIWkmJihmdW5jdGlvbiByKHQsZSxuKXtsZXQgbz0iIjt0JiZlJiYobz1gIC0gb25seSBpbnN0YW5jZXMgb2YgUHJvdmlkZXIgYW5kIFR5cGUgYXJlIGFsbG93ZWQsIGdvdDogWyR7ZS5tYXAoKHQ9PnQ9PW4/Ij8iK24rIj8iOiIuLi4iKSkuam9pbigiLCAiKX1dYCk7dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHByb3ZpZGVyIGZvciB0aGUgTmdNb2R1bGUgJyR7S2UodCl9J2Arbyl9KShlLG4sdCksIShmdW5jdGlvbiBzKHQpe3JldHVybiEhdC5kZXBzfSkodCkpcmV0dXJuIEdvKGkpfHxrcChpKTtvPSgpPT5uZXcgaSguLi5Jcih0LmRlcHMpKX1yZXR1cm4gb31mdW5jdGlvbiBEcCh0LGUsbj0hMSl7cmV0dXJue2ZhY3Rvcnk6dCx2YWx1ZTplLG11bHRpOm4/W106dm9pZCAwfX1mdW5jdGlvbiBScCh0KXtyZXR1cm4gbnVsbCE9PXQmJiJvYmplY3QiPT10eXBlb2YgdCYmRHIgaW4gdH1mdW5jdGlvbiBFcCh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdH1jb25zdCBBcD1mdW5jdGlvbiBUcCh0LGUsbil7cmV0dXJuKGZ1bmN0aW9uIG8odCxlPW51bGwsbj1udWxsLGkpe2NvbnN0IGE9UHAodCxlLG4saSk7cmV0dXJuIGEuX3Jlc29sdmVJbmplY3RvckRlZlR5cGVzKCksYX0pKHtuYW1lOm59LGUsdCxuKX07Y2xhc3MgTnB7c3RhdGljIGNyZWF0ZSh0LGUpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP0FwKHQsZSwiIik6QXAodC5wcm92aWRlcnMsdC5wYXJlbnQsdC5uYW1lfHwiIil9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24genAodCl7R3AodCk7Y29uc3QgZT1ubCh0KTtyZXR1cm4gbnVsbD09PWU/bnVsbDoodm9pZCAwPT09ZS5jb21wb25lbnQmJihlLmNvbXBvbmVudD0oZnVuY3Rpb24gbih0LGUpe2NvbnN0IG49ZVsxXS5kYXRhW3RdO3JldHVybiAyJm4uZmxhZ3M/ZVtuLmRpcmVjdGl2ZVN0YXJ0XTpudWxsfSkoZS5ub2RlSW5kZXgsZS5sVmlldykpLGUuY29tcG9uZW50KX1mdW5jdGlvbiBJcCh0KXtHcCh0KTtjb25zdCBlPW5sKHQpO3JldHVybiBudWxsPT09ZT9udWxsOmUubFZpZXdbOF19ZnVuY3Rpb24gSHAodCl7Y29uc3QgZT1ubCh0KTtpZihudWxsPT09ZSlyZXR1cm4gbnVsbDtsZXQgbixvPWUubFZpZXc7Zm9yKG5nRGV2TW9kZSYmRm8obyk7Mj09PW9bMV0udHlwZSYmKG49TmwobykpOylvPW47cmV0dXJuIDUxMiZvWzJdP251bGw6b1s4XX1mdW5jdGlvbiBGcCh0KXtyZXR1cm5bLi4uemwodCkuY29tcG9uZW50c119ZnVuY3Rpb24gTHAodCl7Y29uc3QgZT1ubCh0KTtpZihudWxsPT09ZSlyZXR1cm4gTnAuTlVMTDtyZXR1cm4gbmV3IGphKGUubFZpZXdbMV0uZGF0YVtlLm5vZGVJbmRleF0sZS5sVmlldyl9ZnVuY3Rpb24gQnAodCl7aWYodCBpbnN0YW5jZW9mIFRleHQpcmV0dXJuW107Y29uc3QgZT1ubCh0KTtpZihudWxsPT09ZSlyZXR1cm5bXTtjb25zdCBuPWUubFZpZXcsbz1uWzFdLGk9ZS5ub2RlSW5kZXg7cmV0dXJuKG51bGw9PW8/dm9pZCAwOm8uZGF0YVtpXSk/KHZvaWQgMD09PWUuZGlyZWN0aXZlcyYmKGUuZGlyZWN0aXZlcz1wbChpLG4sITEpKSxudWxsPT09ZS5kaXJlY3RpdmVzP1tdOlsuLi5lLmRpcmVjdGl2ZXNdKTpbXX1mdW5jdGlvbiBWcCh0KXtjb25zdHtjb25zdHJ1Y3RvcjplfT10O2lmKCFlKXRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIGZpbmQgdGhlIGluc3RhbmNlIGNvbnN0cnVjdG9yIik7Y29uc3Qgbj15byhlKTtpZihuKXJldHVybntpbnB1dHM6bi5pbnB1dHMsb3V0cHV0czpuLm91dHB1dHMsZW5jYXBzdWxhdGlvbjpuLmVuY2Fwc3VsYXRpb24sY2hhbmdlRGV0ZWN0aW9uOm4ub25QdXNoP2puLk9uUHVzaDpqbi5EZWZhdWx0fTtjb25zdCBvPV9vKGUpO3JldHVybiBvP3tpbnB1dHM6by5pbnB1dHMsb3V0cHV0czpvLm91dHB1dHN9Om51bGx9ZnVuY3Rpb24ganAodCl7cmV0dXJuIG5sKHQpLm5hdGl2ZX1mdW5jdGlvbiBVcCh0KXtHcCh0KTtjb25zdCBlPW5sKHQpO2lmKG51bGw9PT1lKXJldHVybltdO2NvbnN0IG49ZS5sVmlldyxvPW5bN10saT1uWzFdLmNsZWFudXAsYT1bXTtpZihpJiZvKWZvcihsZXQgZT0wO2U8aS5sZW5ndGg7KXtjb25zdCByPWlbZSsrXSxzPWlbZSsrXTtpZigic3RyaW5nIj09dHlwZW9mIHIpe2NvbnN0IGw9cixjPWxpKG5bc10pLGQ9b1tpW2UrK11dLHA9aVtlKytdLG09ImJvb2xlYW4iPT10eXBlb2YgcHx8cD49MD8iZG9tIjoib3V0cHV0IixmPSJib29sZWFuIj09dHlwZW9mIHAmJnA7dD09YyYmYS5wdXNoKHtlbGVtZW50OnQsbmFtZTpsLGNhbGxiYWNrOmQsdXNlQ2FwdHVyZTpmLHR5cGU6bX0pfX1yZXR1cm4gYS5zb3J0KFdwKSxhfWZ1bmN0aW9uIFdwKHQsZSl7cmV0dXJuIHQubmFtZT09ZS5uYW1lPzA6dC5uYW1lPGUubmFtZT8tMToxfWZ1bmN0aW9uIEdwKHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgRWxlbWVudCYmISh0IGluc3RhbmNlb2YgRWxlbWVudCkpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RpbmcgaW5zdGFuY2Ugb2YgRE9NIEVsZW1lbnQiKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gWXAodCl7YnAodCksRnAodCkuZm9yRWFjaCgodD0+KGZ1bmN0aW9uIGUodCl7Y29uc3QgZT1pbCh0KTthcChlWzFdLGUsdCl9KSh0KSkpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9OcC5USFJPV19JRl9OT1RfRk9VTkQ9d3IsTnAuTlVMTD1uZXcgX3AsTnAuybVwcm92PVNuKHt0b2tlbjpOcCxwcm92aWRlZEluOiJhbnkiLGZhY3Rvcnk6KCk9PlRyKHlwKX0pLE5wLl9fTkdfRUxFTUVOVF9JRF9fPS0xO2xldCBxcD0hMTtmdW5jdGlvbiBacCh0LGUpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgQ09NUElMRUR8fCFDT01QSUxFRCl7Y29uc3Qgbj1YbjtpZihuZ0Rldk1vZGUmJnhuKGUsImZ1bmN0aW9uIG5vdCBkZWZpbmVkIiksbil7bGV0IG89bi5uZztvfHwobz1uLm5nPXt9KSxvW3RdPWV9fX1mdW5jdGlvbiBYcCh0LGUsbixvLGkpe2NvbnN0IGE9blsxXSxyPShmdW5jdGlvbiBzKHQsZSxuKXtjb25zdCBvPXdpKCk7aWYodC5maXJzdENyZWF0ZVBhc3Mpe24ucHJvdmlkZXJzUmVzb2x2ZXImJm4ucHJvdmlkZXJzUmVzb2x2ZXIobik7Y29uc3QgaT1NZCh0LGUsMSxudWxsKTtuZ0Rldk1vZGUmJmduKGksby5kaXJlY3RpdmVTdGFydCwiQmVjYXVzZSB0aGlzIGlzIGEgcm9vdCBjb21wb25lbnQgdGhlIGFsbG9jYXRlZCBleHBhbmRvIHNob3VsZCBtYXRjaCB0aGUgVE5vZGUgY29tcG9uZW50LiIpLEdkKHQsbyxlLGksbil9Y29uc3QgaT1MYShlLHQsby5kaXJlY3RpdmVTdGFydCxvKTthbChpLGUpO2NvbnN0IGE9ZGkobyxlKTtyZXR1cm4gYSYmYWwoYSxlKSxpfSkoYSxuLGUpO2lmKG8uY29tcG9uZW50cy5wdXNoKHIpLHRbOF09cixpJiZpLmZvckVhY2goKHQ9PnQocixlKSkpLGUuY29udGVudFF1ZXJpZXMpe2NvbnN0IHQ9d2koKTtuZ0Rldk1vZGUmJnhuKHQsIlROb2RlIGV4cGVjdGVkIiksZS5jb250ZW50UXVlcmllcygxLHIsdC5kaXJlY3RpdmVTdGFydCl9Y29uc3QgbD13aSgpO2lmKG5nRGV2TW9kZSYmeG4obCwidE5vZGUgc2hvdWxkIGhhdmUgYmVlbiBhbHJlYWR5IGNyZWF0ZWQiKSxhLmZpcnN0Q3JlYXRlUGFzcyYmKG51bGwhPT1lLmhvc3RCaW5kaW5nc3x8bnVsbCE9PWUuaG9zdEF0dHJzKSl7ZWEobC5pbmRleCk7QmQoblsxXSxsLDAsbC5kaXJlY3RpdmVTdGFydCxsLmRpcmVjdGl2ZUVuZCxlKSxWZChlLHIpfXJldHVybiByfWZ1bmN0aW9uIEtwKHQsZSl7Y29uc3Qgbj1zbCh0KTtuZ0Rldk1vZGUmJnhuKG4sIkxWaWV3IGlzIHJlcXVpcmVkIik7Y29uc3Qgbz1uWzFdLGk9d2koKTtuZ0Rldk1vZGUmJnhuKGksIlROb2RlIGlzIHJlcXVpcmVkIikscmEobyxpKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gSnAodCl7cmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZih0LnByb3RvdHlwZSkuY29uc3RydWN0b3J9ZnVuY3Rpb24gUXAodCl7bGV0IGU9SnAodC50eXBlKSxuPSEwO2NvbnN0IG89W3RdO2Zvcig7ZTspe2xldCBpO2lmKFJvKHQpKWk9ZS7JtWNtcHx8ZS7JtWRpcjtlbHNle2lmKGUuybVjbXApdGhyb3cgbmV3IEVycm9yKCJEaXJlY3RpdmVzIGNhbm5vdCBpbmhlcml0IENvbXBvbmVudHMiKTtpPWUuybVkaXJ9aWYoaSl7aWYobil7by5wdXNoKGkpO2NvbnN0IGU9dDtlLmlucHV0cz0kcCh0LmlucHV0cyksZS5kZWNsYXJlZElucHV0cz0kcCh0LmRlY2xhcmVkSW5wdXRzKSxlLm91dHB1dHM9JHAodC5vdXRwdXRzKTtjb25zdCBuPWkuaG9zdEJpbmRpbmdzO24mJm5tKHQsbik7Y29uc3QgYT1pLnZpZXdRdWVyeSxyPWkuY29udGVudFF1ZXJpZXM7aWYoYSYmdG0odCxhKSxyJiZlbSh0LHIpLFhlKHQuaW5wdXRzLGkuaW5wdXRzKSxYZSh0LmRlY2xhcmVkSW5wdXRzLGkuZGVjbGFyZWRJbnB1dHMpLFhlKHQub3V0cHV0cyxpLm91dHB1dHMpLFJvKGkpJiZpLmRhdGEuYW5pbWF0aW9uKXtjb25zdCBlPXQuZGF0YTtlLmFuaW1hdGlvbj0oZS5hbmltYXRpb258fFtdKS5jb25jYXQoaS5kYXRhLmFuaW1hdGlvbil9fWNvbnN0IGU9aS5mZWF0dXJlcztpZihlKWZvcihsZXQgbz0wO288ZS5sZW5ndGg7bysrKXtjb25zdCBpPWVbb107aSYmaS5uZ0luaGVyaXQmJmkodCksaT09PVFwJiYobj0hMSl9fWU9T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpfSEoZnVuY3Rpb24gaSh0KXtsZXQgZT0wLG49bnVsbDtmb3IobGV0IG89dC5sZW5ndGgtMTtvPj0wO28tLSl7Y29uc3QgaT10W29dO2kuaG9zdFZhcnM9ZSs9aS5ob3N0VmFycyxpLmhvc3RBdHRycz1fYShpLmhvc3RBdHRycyxuPV9hKG4saS5ob3N0QXR0cnMpKX19KShvKX1mdW5jdGlvbiAkcCh0KXtyZXR1cm4gdD09PUpuP3t9OnQ9PT1Rbj9bXTp0fWZ1bmN0aW9uIHRtKHQsZSl7Y29uc3Qgbj10LnZpZXdRdWVyeTt0LnZpZXdRdWVyeT1uPyh0LG8pPT57ZSh0LG8pLG4odCxvKX06ZX1mdW5jdGlvbiBlbSh0LGUpe2NvbnN0IG49dC5jb250ZW50UXVlcmllczt0LmNvbnRlbnRRdWVyaWVzPW4/KHQsbyxpKT0+e2UodCxvLGkpLG4odCxvLGkpfTplfWZ1bmN0aW9uIG5tKHQsZSl7Y29uc3Qgbj10Lmhvc3RCaW5kaW5nczt0Lmhvc3RCaW5kaW5ncz1uPyh0LG8pPT57ZSh0LG8pLG4odCxvKX06ZX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3Qgb209WyJwcm92aWRlcnNSZXNvbHZlciJdLGltPVsidGVtcGxhdGUiLCJkZWNscyIsImNvbnN0cyIsInZhcnMiLCJvblB1c2giLCJuZ0NvbnRlbnRTZWxlY3RvcnMiLCJzdHlsZXMiLCJlbmNhcHN1bGF0aW9uIiwic2NoZW1hcyJdO2Z1bmN0aW9uIGFtKHQpe2xldCBlLG49SnAodC50eXBlKTtlPVJvKHQpP24uybVjbXA6bi7JtWRpcjtjb25zdCBvPXQ7Zm9yKGNvbnN0IHQgb2Ygb20pb1t0XT1lW3RdO2lmKFJvKGUpKWZvcihjb25zdCB0IG9mIGltKW9bdF09ZVt0XX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovbGV0IHJtPW51bGw7ZnVuY3Rpb24gc20oKXtpZighcm0pe2NvbnN0IHQ9WG4uU3ltYm9sO2lmKHQmJnQuaXRlcmF0b3Ipcm09dC5pdGVyYXRvcjtlbHNle2NvbnN0IHQ9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoTWFwLnByb3RvdHlwZSk7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDsrK2Upe2NvbnN0IG49dFtlXTsiZW50cmllcyIhPT1uJiYic2l6ZSIhPT1uJiZNYXAucHJvdG90eXBlW25dPT09TWFwLnByb3RvdHlwZS5lbnRyaWVzJiYocm09bil9fX1yZXR1cm4gcm19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIGxtKHQsZSl7Y29uc3Qgbj1kbSh0KSxvPWRtKGUpO2lmKG4mJm8pcmV0dXJuKGZ1bmN0aW9uIGkodCxlLG4pe2NvbnN0IG89dFtzbSgpXSgpLGk9ZVtzbSgpXSgpO2Zvcig7Oyl7Y29uc3QgdD1vLm5leHQoKSxlPWkubmV4dCgpO2lmKHQuZG9uZSYmZS5kb25lKXJldHVybiEwO2lmKHQuZG9uZXx8ZS5kb25lKXJldHVybiExO2lmKCFuKHQudmFsdWUsZS52YWx1ZSkpcmV0dXJuITF9fSkodCxlLGxtKTt7Y29uc3QgaT10JiYoIm9iamVjdCI9PXR5cGVvZiB0fHwiZnVuY3Rpb24iPT10eXBlb2YgdCksYT1lJiYoIm9iamVjdCI9PXR5cGVvZiBlfHwiZnVuY3Rpb24iPT10eXBlb2YgZSk7cmV0dXJuIShufHwhaXx8b3x8IWEpfHxPYmplY3QuaXModCxlKX19Y2xhc3MgY217Y29uc3RydWN0b3IodCl7dGhpcy53cmFwcGVkPXR9c3RhdGljIHdyYXAodCl7cmV0dXJuIG5ldyBjbSh0KX1zdGF0aWMgdW53cmFwKHQpe3JldHVybiBjbS5pc1dyYXBwZWQodCk/dC53cmFwcGVkOnR9c3RhdGljIGlzV3JhcHBlZCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIGNtfX1mdW5jdGlvbiBkbSh0KXtyZXR1cm4hIXBtKHQpJiYoQXJyYXkuaXNBcnJheSh0KXx8ISh0IGluc3RhbmNlb2YgTWFwKSYmc20oKWluIHQpfWZ1bmN0aW9uIHBtKHQpe3JldHVybiBudWxsIT09dCYmKCJmdW5jdGlvbiI9PXR5cGVvZiB0fHwib2JqZWN0Ij09dHlwZW9mIHQpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBtbSh0LGUsbil7cmV0dXJuIHRbZV09bn1mdW5jdGlvbiBmbSh0LGUpe3JldHVybiBuZ0Rldk1vZGUmJnduKHQsZSksbmdEZXZNb2RlJiZ5bih0W2VdLFNjLCJTdG9yZWQgdmFsdWUgc2hvdWxkIG5ldmVyIGJlIE5PX0NIQU5HRS4iKSx0W2VdfWZ1bmN0aW9uIHVtKHQsZSxuKXtuZ0Rldk1vZGUmJnluKG4sU2MsIkluY29taW5nIHZhbHVlIHNob3VsZCBuZXZlciBiZSBOT19DSEFOR0UuIiksbmdEZXZNb2RlJiZfbihlLHQubGVuZ3RoLCJTbG90IHNob3VsZCBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQgdG8gTk9fQ0hBTkdFIik7Y29uc3Qgbz10W2VdO2lmKE9iamVjdC5pcyhvLG4pKXJldHVybiExO2lmKG5nRGV2TW9kZSYmQWkoKSl7Y29uc3QgaT1vIT09U2M/bzp2b2lkIDA7aWYoIWxtKGksbikpe2NvbnN0IGE9KGZ1bmN0aW9uIGkodCxlLG4sbyl7Y29uc3QgaT10WzFdLmRhdGEsYT1pW2VdO2lmKCJzdHJpbmciPT10eXBlb2YgYSlyZXR1cm4gYS5pbmRleE9mKGtsKT4tMT9SbCh0LGUsZSxhLG8pOntwcm9wTmFtZTphLG9sZFZhbHVlOm4sbmV3VmFsdWU6b307aWYobnVsbD09PWEpe2xldCBuPWUtMTtmb3IoOyJzdHJpbmciIT10eXBlb2YgaVtuXSYmbnVsbD09PWlbbisxXTspbi0tO2NvbnN0IGE9aVtuXTtpZigic3RyaW5nIj09dHlwZW9mIGEpe2NvbnN0IGk9YS5tYXRjaChuZXcgUmVnRXhwKGtsLCJnIikpO2lmKGkmJmkubGVuZ3RoLTE+ZS1uKXJldHVybiBSbCh0LG4sZSxhLG8pfX1yZXR1cm57cHJvcE5hbWU6dm9pZCAwLG9sZFZhbHVlOm4sbmV3VmFsdWU6b319KSh0LGUsaSxuKTshKGZ1bmN0aW9uIGEodCxlLG4sbyl7bGV0IGk9YEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3I6IEV4cHJlc3Npb24gaGFzIGNoYW5nZWQgYWZ0ZXIgaXQgd2FzIGNoZWNrZWQuIFByZXZpb3VzIHZhbHVlJHtvP2AgZm9yICcke299J2A6IiJ9OiAnJHtlfScuIEN1cnJlbnQgdmFsdWU6ICcke259Jy5gO3Rocm93IHQmJihpKz0iIEl0IHNlZW1zIGxpa2UgdGhlIHZpZXcgaGFzIGJlZW4gY3JlYXRlZCBhZnRlciBpdHMgcGFyZW50IGFuZCBpdHMgY2hpbGRyZW4gaGF2ZSBiZWVuIGRpcnR5IGNoZWNrZWQuIEhhcyBpdCBiZWVuIGNyZWF0ZWQgaW4gYSBjaGFuZ2UgZGV0ZWN0aW9uIGhvb2s/IiksbmV3IG5uKCIxMDAiLGkpfSkobz09PVNjLGEub2xkVmFsdWUsYS5uZXdWYWx1ZSxhLnByb3BOYW1lKX1yZXR1cm4hMX1yZXR1cm4gdFtlXT1uLCEwfWZ1bmN0aW9uIGdtKHQsZSxuLG8pe2NvbnN0IGk9dW0odCxlLG4pO3JldHVybiB1bSh0LGUrMSxvKXx8aX1mdW5jdGlvbiBobSh0LGUsbixvLGkpe2NvbnN0IGE9Z20odCxlLG4sbyk7cmV0dXJuIHVtKHQsZSsyLGkpfHxhfWZ1bmN0aW9uIGJtKHQsZSxuLG8saSxhKXtjb25zdCByPWdtKHQsZSxuLG8pO3JldHVybiBnbSh0LGUrMixpLGEpfHxyfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiB5bSh0LGUsbixvKXtjb25zdCBpPXhpKCksYT1IaSgpO2lmKHVtKGksYSxlKSl7Y29uc3Qgcj1PaSgpLHM9bmEoKTtxZChzLGksdCxlLG4sbyksbmdEZXZNb2RlJiZscChyLmRhdGEscywiYXR0ci4iK3QsYSl9cmV0dXJuIHltfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBfbSh0LGUpe25nRGV2TW9kZSYmX24oMixlLmxlbmd0aCwic2hvdWxkIGhhdmUgYXQgbGVhc3QgMyB2YWx1ZXMiKSxuZ0Rldk1vZGUmJmduKGUubGVuZ3RoJTIsMSwic2hvdWxkIGhhdmUgYW4gb2RkIG51bWJlciBvZiB2YWx1ZXMiKTtsZXQgbj0hMSxvPXppKCk7Zm9yKGxldCBpPTE7aTxlLmxlbmd0aDtpKz0yKW49dW0odCxvKyssZVtpXSl8fG47aWYoSWkobyksIW4pcmV0dXJuIFNjO2xldCBpPWVbMF07Zm9yKGxldCB0PTE7dDxlLmxlbmd0aDt0Kz0yKWkrPXJuKGVbdF0pK2VbdCsxXTtyZXR1cm4gaX1mdW5jdGlvbiBDbSh0LGUsbixvKXtyZXR1cm4gdW0odCxIaSgpLG4pP2Urcm4obikrbzpTY31mdW5jdGlvbiBNbSh0LGUsbixvLGksYSl7Y29uc3Qgcj1nbSh0LHppKCksbixpKTtyZXR1cm4gRmkoMikscj9lK3JuKG4pK28rcm4oaSkrYTpTY31mdW5jdGlvbiB2bSh0LGUsbixvLGksYSxyLHMpe2NvbnN0IGw9aG0odCx6aSgpLG4saSxyKTtyZXR1cm4gRmkoMyksbD9lK3JuKG4pK28rcm4oaSkrYStybihyKStzOlNjfWZ1bmN0aW9uIHhtKHQsZSxuLG8saSxhLHIscyxsLGMpe2NvbnN0IGQ9Ym0odCx6aSgpLG4saSxyLGwpO3JldHVybiBGaSg0KSxkP2Urcm4obikrbytybihpKSthK3JuKHIpK3Mrcm4obCkrYzpTY31mdW5jdGlvbiBPbSh0LGUsbixvLGksYSxyLHMsbCxjLGQscCl7Y29uc3QgbT16aSgpO2xldCBmPWJtKHQsbSxuLGkscixsKTtyZXR1cm4gZj11bSh0LG0rNCxkKXx8ZixGaSg1KSxmP2Urcm4obikrbytybihpKSthK3JuKHIpK3Mrcm4obCkrYytybihkKStwOlNjfWZ1bmN0aW9uIFBtKHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sZil7Y29uc3QgdT16aSgpO2xldCBnPWJtKHQsdSxuLGkscixsKTtyZXR1cm4gZz1nbSh0LHUrNCxkLG0pfHxnLEZpKDYpLGc/ZStybihuKStvK3JuKGkpK2Ercm4ocikrcytybihsKStjK3JuKGQpK3Arcm4obSkrZjpTY31mdW5jdGlvbiB3bSh0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtLGYsdSxnKXtjb25zdCBoPXppKCk7bGV0IGI9Ym0odCxoLG4saSxyLGwpO3JldHVybiBiPWhtKHQsaCs0LGQsbSx1KXx8YixGaSg3KSxiP2Urcm4obikrbytybihpKSthK3JuKHIpK3Mrcm4obCkrYytybihkKStwK3JuKG0pK2Yrcm4odSkrZzpTY31mdW5jdGlvbiBrbSh0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtLGYsdSxnLGgsYil7Y29uc3QgeT16aSgpO2xldCBfPWJtKHQseSxuLGkscixsKTtyZXR1cm4gXz1ibSh0LHkrNCxkLG0sdSxoKXx8XyxGaSg4KSxfP2Urcm4obikrbytybihpKSthK3JuKHIpK3Mrcm4obCkrYytybihkKStwK3JuKG0pK2Yrcm4odSkrZytybihoKStiOlNjfWZ1bmN0aW9uIFNtKHQsZSxuLG8saSxhKXtjb25zdCByPXhpKCkscz1DbShyLGUsbixvKTtpZihzIT09U2Mpe2NvbnN0IG49bmEoKTtxZChuLHIsdCxzLGksYSksbmdEZXZNb2RlJiZscChPaSgpLmRhdGEsbiwiYXR0ci4iK3QsemkoKS0xLGUsbyl9cmV0dXJuIFNtfWZ1bmN0aW9uIERtKHQsZSxuLG8saSxhLHIscyl7Y29uc3QgbD14aSgpLGM9TW0obCxlLG4sbyxpLGEpO2lmKGMhPT1TYyl7Y29uc3Qgbj1uYSgpO3FkKG4sbCx0LGMscixzKSxuZ0Rldk1vZGUmJmxwKE9pKCkuZGF0YSxuLCJhdHRyLiIrdCx6aSgpLTIsZSxvLGEpfXJldHVybiBEbX1mdW5jdGlvbiBSbSh0LGUsbixvLGksYSxyLHMsbCxjKXtjb25zdCBkPXhpKCkscD12bShkLGUsbixvLGksYSxyLHMpO2lmKHAhPT1TYyl7Y29uc3Qgbj1uYSgpO3FkKG4sZCx0LHAsbCxjKSxuZ0Rldk1vZGUmJmxwKE9pKCkuZGF0YSxuLCJhdHRyLiIrdCx6aSgpLTMsZSxvLGEscyl9cmV0dXJuIFJtfWZ1bmN0aW9uIEVtKHQsZSxuLG8saSxhLHIscyxsLGMsZCxwKXtjb25zdCBtPXhpKCksZj14bShtLGUsbixvLGksYSxyLHMsbCxjKTtpZihmIT09U2Mpe2NvbnN0IG49bmEoKTtxZChuLG0sdCxmLGQscCksbmdEZXZNb2RlJiZscChPaSgpLmRhdGEsbiwiYXR0ci4iK3QsemkoKS00LGUsbyxhLHMsYyl9cmV0dXJuIEVtfWZ1bmN0aW9uIEFtKHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sZil7Y29uc3QgdT14aSgpLGc9T20odSxlLG4sbyxpLGEscixzLGwsYyxkLHApO2lmKGchPT1TYyl7Y29uc3Qgbj1uYSgpO3FkKG4sdSx0LGcsbSxmKSxuZ0Rldk1vZGUmJmxwKE9pKCkuZGF0YSxuLCJhdHRyLiIrdCx6aSgpLTUsZSxvLGEscyxjLHApfXJldHVybiBBbX1mdW5jdGlvbiBUbSh0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtLGYsdSxnKXtjb25zdCBoPXhpKCksYj1QbShoLGUsbixvLGksYSxyLHMsbCxjLGQscCxtLGYpO2lmKGIhPT1TYyl7Y29uc3Qgbj1uYSgpO3FkKG4saCx0LGIsdSxnKSxuZ0Rldk1vZGUmJmxwKE9pKCkuZGF0YSxuLCJhdHRyLiIrdCx6aSgpLTYsZSxvLGEscyxjLHAsZil9cmV0dXJuIFRtfWZ1bmN0aW9uIE5tKHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sZix1LGcsaCxiKXtjb25zdCB5PXhpKCksXz13bSh5LGUsbixvLGksYSxyLHMsbCxjLGQscCxtLGYsdSxnKTtpZihfIT09U2Mpe2NvbnN0IG49bmEoKTtxZChuLHksdCxfLGgsYiksbmdEZXZNb2RlJiZscChPaSgpLmRhdGEsbiwiYXR0ci4iK3QsemkoKS03LGUsbyxhLHMsYyxwLGYsZyl9cmV0dXJuIE5tfWZ1bmN0aW9uIHptKHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sZix1LGcsaCxiLHksXyl7Y29uc3QgQz14aSgpLE09a20oQyxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSxmLHUsZyxoLGIpO2lmKE0hPT1TYyl7Y29uc3Qgbj1uYSgpO3FkKG4sQyx0LE0seSxfKSxuZ0Rldk1vZGUmJmxwKE9pKCkuZGF0YSxuLCJhdHRyLiIrdCx6aSgpLTgsZSxvLGEscyxjLHAsZixnLGIpfXJldHVybiB6bX1mdW5jdGlvbiBJbSh0LGUsbixvKXtjb25zdCBpPXhpKCksYT1fbShpLGUpO2lmKGEhPT1TYyl7Y29uc3Qgcj1uYSgpO2lmKHFkKHIsaSx0LGEsbixvKSxuZ0Rldk1vZGUpe2NvbnN0IG49W2VbMF1dO2ZvcihsZXQgdD0yO3Q8ZS5sZW5ndGg7dCs9MiluLnB1c2goZVt0XSk7bHAoT2koKS5kYXRhLHIsImF0dHIuIit0LHppKCktbi5sZW5ndGgrMSwuLi5uKX19cmV0dXJuIEltfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBIbSh0LGUsbixvLGksYSxyLHMpe2NvbnN0IGw9eGkoKSxjPU9pKCksZD10K3ZvLHA9Yy5maXJzdENyZWF0ZVBhc3M/KGZ1bmN0aW9uIG0odCxlLG4sbyxpLGEscixzLGwpe25nRGV2TW9kZSYmTG8oZSksbmdEZXZNb2RlJiZuZ0Rldk1vZGUuZmlyc3RDcmVhdGVQYXNzKys7Y29uc3QgYz1lLmNvbnN0cyxkPV9kKGUsdCw0LHJ8fG51bGwsaGkoYyxzKSk7TGQoZSxuLGQsaGkoYyxsKSkscmEoZSxkKTtjb25zdCBwPWQudFZpZXdzPVJkKDIsZCxvLGksYSxlLmRpcmVjdGl2ZVJlZ2lzdHJ5LGUucGlwZVJlZ2lzdHJ5LG51bGwsZS5zY2hlbWFzLGMpO3JldHVybiBudWxsIT09ZS5xdWVyaWVzJiYoZS5xdWVyaWVzLnRlbXBsYXRlKGUsZCkscC5xdWVyaWVzPWUucXVlcmllcy5lbWJlZGRlZFRWaWV3KGQpKSxkfSkoZCxjLGwsZSxuLG8saSxhLHIpOmMuZGF0YVtkXTtEaShwLCExKTtjb25zdCBmPWxbMTFdLmNyZWF0ZUNvbW1lbnQobmdEZXZNb2RlPyJjb250YWluZXIiOiIiKTtyYyhjLGwsZixwKSxhbChmLGwpLG5wKGwsbFtkXT1RZChmLGwsZixwKSksRG8ocCkmJmtkKGMsbCxwKSxudWxsIT1yJiZTZChsLHAscyl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIEZtKHQpe3JldHVybiBtaSgoZnVuY3Rpb24gZSgpe3JldHVybiBfaS5sRnJhbWUuY29udGV4dExWaWV3fSkoKSx2byt0KX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgTG09eyLJtcm1ZGVmaW5lSW5qZWN0YWJsZSI6U24sIsm1ybVkZWZpbmVJbmplY3RvciI6RG4sIsm1ybVpbmplY3QiOlRyLCLJtcm1aW52YWxpZEZhY3RvcnlEZXAiOk5yLHJlc29sdmVGb3J3YXJkUmVmOnRufTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgQm09WmUoe3Byb3ZpZGU6U3RyaW5nLHVzZVZhbHVlOlplfSk7ZnVuY3Rpb24gVm0odCl7cmV0dXJuIHZvaWQgMCE9PXQudXNlQ2xhc3N9ZnVuY3Rpb24gam0odCl7cmV0dXJuIHZvaWQgMCE9PXQudXNlRmFjdG9yeX1aZSh7cHJvdmlkZTpTdHJpbmcsdXNlVmFsdWU6WmV9KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IFVtPVhhKCJJbmplY3RhYmxlIix2b2lkIDAsdm9pZCAwLHZvaWQgMCwoKHQsZSk9PldtKHQsZSkpKSxXbT1mdW5jdGlvbiBHbSh0LGUpe2xldCBuPW51bGwsbz1udWxsO3QuaGFzT3duUHJvcGVydHkoVG4pfHxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxUbix7Z2V0OigpPT57aWYobnVsbD09PW4pe2NvbnN0IG89bHIoe3VzYWdlOjAsa2luZDoiaW5qZWN0YWJsZSIsdHlwZTp0fSk7bj1vLmNvbXBpbGVJbmplY3RhYmxlKExtLGBuZzovLy8ke3QubmFtZX0vybVwcm92LmpzYCwoZnVuY3Rpb24gbyh0LGUpe2NvbnN0IG49ZXx8e3Byb3ZpZGVkSW46bnVsbH0sbz17bmFtZTp0Lm5hbWUsdHlwZTp0LHR5cGVBcmd1bWVudENvdW50OjAscHJvdmlkZWRJbjpuLnByb3ZpZGVkSW59OyhWbShuKXx8am0obikpJiZ2b2lkIDAhPT1uLmRlcHMmJihvLmRlcHM9cXIobi5kZXBzKSk7Vm0obik/by51c2VDbGFzcz1uLnVzZUNsYXNzOiEoZnVuY3Rpb24gaSh0KXtyZXR1cm4gQm0gaW4gdH0pKG4pP2ptKG4pP28udXNlRmFjdG9yeT1uLnVzZUZhY3Rvcnk6KGZ1bmN0aW9uIGEodCl7cmV0dXJuIHZvaWQgMCE9PXQudXNlRXhpc3Rpbmd9KShuKSYmKG8udXNlRXhpc3Rpbmc9bi51c2VFeGlzdGluZyk6by51c2VWYWx1ZT1uLnVzZVZhbHVlO3JldHVybiBvfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKHQsZSkpfXJldHVybiBufX0pLHQuaGFzT3duUHJvcGVydHkoaW8pfHxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxpbyx7Z2V0OigpPT57aWYobnVsbD09PW8pe2NvbnN0IGU9bHIoe3VzYWdlOjAsa2luZDoiaW5qZWN0YWJsZSIsdHlwZTp0fSk7bz1lLmNvbXBpbGVGYWN0b3J5KExtLGBuZzovLy8ke3QubmFtZX0vybVmYWMuanNgLHtuYW1lOnQubmFtZSx0eXBlOnQsdHlwZUFyZ3VtZW50Q291bnQ6MCxkZXBzOllyKHQpLHRhcmdldDplLkZhY3RvcnlUYXJnZXQuSW5qZWN0YWJsZX0pfXJldHVybiBvfSxjb25maWd1cmFibGU6ITB9KX07ZnVuY3Rpb24gWW0odCl7aWYodC5sZW5ndGg+MSl7cmV0dXJuIiAoIisoCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBlKHQpe2NvbnN0IGU9W107Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDsrK24pe2lmKGUuaW5kZXhPZih0W25dKT4tMSlyZXR1cm4gZS5wdXNoKHRbbl0pLGU7ZS5wdXNoKHRbbl0pfXJldHVybiBlfSkodC5zbGljZSgpLnJldmVyc2UoKSkubWFwKCh0PT5LZSh0LnRva2VuKSkpLmpvaW4oIiAtPiAiKSsiKSJ9cmV0dXJuIiJ9ZnVuY3Rpb24gcW0odCxlLG4sbyl7Y29uc3QgaT1bZV0sYT1uKGkpLHI9bz8oZnVuY3Rpb24gcyh0LGUpe2NvbnN0IG49YCR7dH0gY2F1c2VkIGJ5OiAke2UgaW5zdGFuY2VvZiBFcnJvcj9lLm1lc3NhZ2U6ZX1gLG89RXJyb3Iobik7cmV0dXJuIG8ubmdPcmlnaW5hbEVycm9yPWUsb30pKGEsbyk6RXJyb3IoYSk7cmV0dXJuIHIuYWRkS2V5PVptLHIua2V5cz1pLHIuaW5qZWN0b3JzPVt0XSxyLmNvbnN0cnVjdFJlc29sdmluZ01lc3NhZ2U9bixyLm5nT3JpZ2luYWxFcnJvcj1vLHJ9ZnVuY3Rpb24gWm0odCxlKXt0aGlzLmluamVjdG9ycy5wdXNoKHQpLHRoaXMua2V5cy5wdXNoKGUpLHRoaXMubWVzc2FnZT10aGlzLmNvbnN0cnVjdFJlc29sdmluZ01lc3NhZ2UodGhpcy5rZXlzKX1mdW5jdGlvbiBYbSh0LGUpe2NvbnN0IG49W107Zm9yKGxldCB0PTAsbz1lLmxlbmd0aDt0PG87dCsrKXtjb25zdCBvPWVbdF07bi5wdXNoKG8mJjAhPW8ubGVuZ3RoP28ubWFwKEtlKS5qb2luKCIgIik6Ij8iKX1yZXR1cm4gRXJyb3IoIkNhbm5vdCByZXNvbHZlIGFsbCBwYXJhbWV0ZXJzIGZvciAnIitLZSh0KSsiJygiK24uam9pbigiLCAiKSsiKS4gTWFrZSBzdXJlIHRoYXQgYWxsIHRoZSBwYXJhbWV0ZXJzIGFyZSBkZWNvcmF0ZWQgd2l0aCBJbmplY3Qgb3IgaGF2ZSB2YWxpZCB0eXBlIGFubm90YXRpb25zIGFuZCB0aGF0ICciK0tlKHQpKyInIGlzIGRlY29yYXRlZCB3aXRoIEluamVjdGFibGUuIil9ZnVuY3Rpb24gS20odCxlKXtyZXR1cm4gRXJyb3IoYENhbm5vdCBtaXggbXVsdGkgcHJvdmlkZXJzIGFuZCByZWd1bGFyIHByb3ZpZGVycywgZ290OiAke3R9ICR7ZX1gKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgSm17Y29uc3RydWN0b3IodCxlKXtpZih0aGlzLnRva2VuPXQsdGhpcy5pZD1lLCF0KXRocm93IG5ldyBFcnJvcigiVG9rZW4gbXVzdCBiZSBkZWZpbmVkISIpO3RoaXMuZGlzcGxheU5hbWU9S2UodGhpcy50b2tlbil9c3RhdGljIGdldCh0KXtyZXR1cm4gUW0uZ2V0KHRuKHQpKX1zdGF0aWMgZ2V0IG51bWJlck9mS2V5cygpe3JldHVybiBRbS5udW1iZXJPZktleXN9fWNvbnN0IFFtPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2FsbEtleXM9bmV3IE1hcH1nZXQodCl7aWYodCBpbnN0YW5jZW9mIEptKXJldHVybiB0O2lmKHRoaXMuX2FsbEtleXMuaGFzKHQpKXJldHVybiB0aGlzLl9hbGxLZXlzLmdldCh0KTtjb25zdCBlPW5ldyBKbSh0LEptLm51bWJlck9mS2V5cyk7cmV0dXJuIHRoaXMuX2FsbEtleXMuc2V0KHQsZSksZX1nZXQgbnVtYmVyT2ZLZXlzKCl7cmV0dXJuIHRoaXMuX2FsbEtleXMuc2l6ZX19OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0ICRtPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnJlZmxlY3Rpb25DYXBhYmlsaXRpZXM9dH11cGRhdGVDYXBhYmlsaXRpZXModCl7dGhpcy5yZWZsZWN0aW9uQ2FwYWJpbGl0aWVzPXR9ZmFjdG9yeSh0KXtyZXR1cm4gdGhpcy5yZWZsZWN0aW9uQ2FwYWJpbGl0aWVzLmZhY3RvcnkodCl9cGFyYW1ldGVycyh0KXtyZXR1cm4gdGhpcy5yZWZsZWN0aW9uQ2FwYWJpbGl0aWVzLnBhcmFtZXRlcnModCl9YW5ub3RhdGlvbnModCl7cmV0dXJuIHRoaXMucmVmbGVjdGlvbkNhcGFiaWxpdGllcy5hbm5vdGF0aW9ucyh0KX1wcm9wTWV0YWRhdGEodCl7cmV0dXJuIHRoaXMucmVmbGVjdGlvbkNhcGFiaWxpdGllcy5wcm9wTWV0YWRhdGEodCl9aGFzTGlmZWN5Y2xlSG9vayh0LGUpe3JldHVybiB0aGlzLnJlZmxlY3Rpb25DYXBhYmlsaXRpZXMuaGFzTGlmZWN5Y2xlSG9vayh0LGUpfWdldHRlcih0KXtyZXR1cm4gdGhpcy5yZWZsZWN0aW9uQ2FwYWJpbGl0aWVzLmdldHRlcih0KX1zZXR0ZXIodCl7cmV0dXJuIHRoaXMucmVmbGVjdGlvbkNhcGFiaWxpdGllcy5zZXR0ZXIodCl9bWV0aG9kKHQpe3JldHVybiB0aGlzLnJlZmxlY3Rpb25DYXBhYmlsaXRpZXMubWV0aG9kKHQpfWltcG9ydFVyaSh0KXtyZXR1cm4gdGhpcy5yZWZsZWN0aW9uQ2FwYWJpbGl0aWVzLmltcG9ydFVyaSh0KX1yZXNvdXJjZVVyaSh0KXtyZXR1cm4gdGhpcy5yZWZsZWN0aW9uQ2FwYWJpbGl0aWVzLnJlc291cmNlVXJpKHQpfXJlc29sdmVJZGVudGlmaWVyKHQsZSxuLG8pe3JldHVybiB0aGlzLnJlZmxlY3Rpb25DYXBhYmlsaXRpZXMucmVzb2x2ZUlkZW50aWZpZXIodCxlLG4sbyl9cmVzb2x2ZUVudW0odCxlKXtyZXR1cm4gdGhpcy5yZWZsZWN0aW9uQ2FwYWJpbGl0aWVzLnJlc29sdmVFbnVtKHQsZSl9fShuZXcgeHIpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyB0Zntjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5rZXk9dCx0aGlzLm9wdGlvbmFsPWUsdGhpcy52aXNpYmlsaXR5PW59c3RhdGljIGZyb21LZXkodCl7cmV0dXJuIG5ldyB0Zih0LCExLG51bGwpfX1jb25zdCBlZj1bXTtjbGFzcyBuZntjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5rZXk9dCx0aGlzLnJlc29sdmVkRmFjdG9yaWVzPWUsdGhpcy5tdWx0aVByb3ZpZGVyPW4sdGhpcy5yZXNvbHZlZEZhY3Rvcnk9dGhpcy5yZXNvbHZlZEZhY3Rvcmllc1swXX19Y2xhc3Mgb2Z7Y29uc3RydWN0b3IodCxlKXt0aGlzLmZhY3Rvcnk9dCx0aGlzLmRlcGVuZGVuY2llcz1lfX1mdW5jdGlvbiBhZih0KXtsZXQgZSxuO2lmKHQudXNlQ2xhc3Mpe2NvbnN0IG89dG4odC51c2VDbGFzcyk7ZT0kbS5mYWN0b3J5KG8pLG49Y2Yobyl9ZWxzZSB0LnVzZUV4aXN0aW5nPyhlPXQ9PnQsbj1bdGYuZnJvbUtleShKbS5nZXQodC51c2VFeGlzdGluZykpXSk6dC51c2VGYWN0b3J5PyhlPXQudXNlRmFjdG9yeSxuPShmdW5jdGlvbiBvKHQsZSl7aWYoZSl7Y29uc3Qgbj1lLm1hcCgodD0+W3RdKSk7cmV0dXJuIGUubWFwKChlPT5kZih0LGUsbikpKX1yZXR1cm4gY2YodCl9KSh0LnVzZUZhY3RvcnksdC5kZXBzKSk6KGU9KCk9PnQudXNlVmFsdWUsbj1lZik7cmV0dXJuIG5ldyBvZihlLG4pfWZ1bmN0aW9uIHJmKHQpe3JldHVybiBuZXcgbmYoSm0uZ2V0KHQucHJvdmlkZSksW2FmKHQpXSx0Lm11bHRpfHwhMSl9ZnVuY3Rpb24gc2YodCl7Y29uc3QgZT0oZnVuY3Rpb24gbih0LGUpe2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKXtjb25zdCBvPXRbbl0saT1lLmdldChvLmtleS5pZCk7aWYoaSl7aWYoby5tdWx0aVByb3ZpZGVyIT09aS5tdWx0aVByb3ZpZGVyKXRocm93IEttKGksbyk7aWYoby5tdWx0aVByb3ZpZGVyKWZvcihsZXQgdD0wO3Q8by5yZXNvbHZlZEZhY3Rvcmllcy5sZW5ndGg7dCsrKWkucmVzb2x2ZWRGYWN0b3JpZXMucHVzaChvLnJlc29sdmVkRmFjdG9yaWVzW3RdKTtlbHNlIGUuc2V0KG8ua2V5LmlkLG8pfWVsc2V7bGV0IHQ7dD1vLm11bHRpUHJvdmlkZXI/bmV3IG5mKG8ua2V5LG8ucmVzb2x2ZWRGYWN0b3JpZXMuc2xpY2UoKSxvLm11bHRpUHJvdmlkZXIpOm8sZS5zZXQoby5rZXkuaWQsdCl9fXJldHVybiBlfSkobGYodCxbXSkubWFwKHJmKSxuZXcgTWFwKTtyZXR1cm4gQXJyYXkuZnJvbShlLnZhbHVlcygpKX1mdW5jdGlvbiBsZih0LGUpe3JldHVybiB0LmZvckVhY2goKHQ9PntpZih0IGluc3RhbmNlb2YgY3IpZS5wdXNoKHtwcm92aWRlOnQsdXNlQ2xhc3M6dH0pO2Vsc2UgaWYodCYmIm9iamVjdCI9PXR5cGVvZiB0JiZ2b2lkIDAhPT10LnByb3ZpZGUpZS5wdXNoKHQpO2Vsc2V7aWYoIUFycmF5LmlzQXJyYXkodCkpdGhyb3coZnVuY3Rpb24gbih0KXtyZXR1cm4gRXJyb3IoYEludmFsaWQgcHJvdmlkZXIgLSBvbmx5IGluc3RhbmNlcyBvZiBQcm92aWRlciBhbmQgVHlwZSBhcmUgYWxsb3dlZCwgZ290OiAke3R9YCl9KSh0KTtsZih0LGUpfX0pKSxlfWZ1bmN0aW9uIGNmKHQpe2NvbnN0IGU9JG0ucGFyYW1ldGVycyh0KTtpZighZSlyZXR1cm5bXTtpZihlLnNvbWUoKHQ9Pm51bGw9PXQpKSl0aHJvdyBYbSh0LGUpO3JldHVybiBlLm1hcCgobj0+ZGYodCxuLGUpKSl9ZnVuY3Rpb24gZGYodCxlLG4pe2xldCBvPW51bGwsaT0hMTtpZighQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gcGYoZSBpbnN0YW5jZW9mIExyP2UudG9rZW46ZSxpLG51bGwpO2xldCBhPW51bGw7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDsrK3Qpe2NvbnN0IG49ZVt0XTtuIGluc3RhbmNlb2YgY3I/bz1uOm4gaW5zdGFuY2VvZiBMcj9vPW4udG9rZW46biBpbnN0YW5jZW9mIEJyP2k9ITA6biBpbnN0YW5jZW9mIFZyfHxuIGluc3RhbmNlb2YganI/YT1uOm4gaW5zdGFuY2VvZiBlciYmKG89bil9aWYobz10bihvKSxudWxsIT1vKXJldHVybiBwZihvLGksYSk7dGhyb3cgWG0odCxuKX1mdW5jdGlvbiBwZih0LGUsbil7cmV0dXJuIG5ldyB0ZihKbS5nZXQodCksZSxuKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgbWY9e307Y2xhc3MgZmZ7c3RhdGljIHJlc29sdmUodCl7cmV0dXJuIHNmKHQpfXN0YXRpYyByZXNvbHZlQW5kQ3JlYXRlKHQsZSl7Y29uc3Qgbj1mZi5yZXNvbHZlKHQpO3JldHVybiBmZi5mcm9tUmVzb2x2ZWRQcm92aWRlcnMobixlKX1zdGF0aWMgZnJvbVJlc29sdmVkUHJvdmlkZXJzKHQsZSl7cmV0dXJuIG5ldyB1Zih0LGUpfX1jbGFzcyB1Zntjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX2NvbnN0cnVjdGlvbkNvdW50ZXI9MCx0aGlzLl9wcm92aWRlcnM9dCx0aGlzLnBhcmVudD1lfHxudWxsO2NvbnN0IG49dC5sZW5ndGg7dGhpcy5rZXlJZHM9W10sdGhpcy5vYmpzPVtdO2ZvcihsZXQgZT0wO2U8bjtlKyspdGhpcy5rZXlJZHNbZV09dFtlXS5rZXkuaWQsdGhpcy5vYmpzW2VdPW1mfWdldCh0LGU9d3Ipe3JldHVybiB0aGlzLl9nZXRCeUtleShKbS5nZXQodCksbnVsbCxlKX1yZXNvbHZlQW5kQ3JlYXRlQ2hpbGQodCl7Y29uc3QgZT1mZi5yZXNvbHZlKHQpO3JldHVybiB0aGlzLmNyZWF0ZUNoaWxkRnJvbVJlc29sdmVkKGUpfWNyZWF0ZUNoaWxkRnJvbVJlc29sdmVkKHQpe2NvbnN0IGU9bmV3IHVmKHQpO3JldHVybiBlLnBhcmVudD10aGlzLGV9cmVzb2x2ZUFuZEluc3RhbnRpYXRlKHQpe3JldHVybiB0aGlzLmluc3RhbnRpYXRlUmVzb2x2ZWQoZmYucmVzb2x2ZShbdF0pWzBdKX1pbnN0YW50aWF0ZVJlc29sdmVkKHQpe3JldHVybiB0aGlzLl9pbnN0YW50aWF0ZVByb3ZpZGVyKHQpfWdldFByb3ZpZGVyQXRJbmRleCh0KXtpZih0PDB8fHQ+PXRoaXMuX3Byb3ZpZGVycy5sZW5ndGgpdGhyb3coZnVuY3Rpb24gZSh0KXtyZXR1cm4gRXJyb3IoYEluZGV4ICR7dH0gaXMgb3V0LW9mLWJvdW5kcy5gKX0pKHQpO3JldHVybiB0aGlzLl9wcm92aWRlcnNbdF19X25ldyh0KXtpZih0aGlzLl9jb25zdHJ1Y3Rpb25Db3VudGVyKys+dGhpcy5fZ2V0TWF4TnVtYmVyT2ZPYmplY3RzKCkpdGhyb3coZnVuY3Rpb24gZSh0LG4pe3JldHVybiBxbSh0LG4sKGZ1bmN0aW9uKHQpe3JldHVybmBDYW5ub3QgaW5zdGFudGlhdGUgY3ljbGljIGRlcGVuZGVuY3khJHtZbSh0KX1gfSkpfSkodGhpcyx0LmtleSk7cmV0dXJuIHRoaXMuX2luc3RhbnRpYXRlUHJvdmlkZXIodCl9X2dldE1heE51bWJlck9mT2JqZWN0cygpe3JldHVybiB0aGlzLm9ianMubGVuZ3RofV9pbnN0YW50aWF0ZVByb3ZpZGVyKHQpe2lmKHQubXVsdGlQcm92aWRlcil7Y29uc3QgZT1bXTtmb3IobGV0IG49MDtuPHQucmVzb2x2ZWRGYWN0b3JpZXMubGVuZ3RoOysrbillW25dPXRoaXMuX2luc3RhbnRpYXRlKHQsdC5yZXNvbHZlZEZhY3Rvcmllc1tuXSk7cmV0dXJuIGV9cmV0dXJuIHRoaXMuX2luc3RhbnRpYXRlKHQsdC5yZXNvbHZlZEZhY3Rvcmllc1swXSl9X2luc3RhbnRpYXRlKHQsZSl7Y29uc3Qgbj1lLmZhY3Rvcnk7bGV0IG8saTt0cnl7bz1lLmRlcGVuZGVuY2llcy5tYXAoKHQ9PnRoaXMuX2dldEJ5UmVmbGVjdGl2ZURlcGVuZGVuY3kodCkpKX1jYXRjaChlKXt0aHJvdyBlLmFkZEtleSYmZS5hZGRLZXkodGhpcyx0LmtleSksZX10cnl7aT1uKC4uLm8pfWNhdGNoKGUpe3Rocm93KGZ1bmN0aW9uIG4odCxlLG8saSl7cmV0dXJuIHFtKHQsaSwoZnVuY3Rpb24odCl7Y29uc3Qgbj1LZSh0WzBdLnRva2VuKTtyZXR1cm5gJHtlLm1lc3NhZ2V9OiBFcnJvciBkdXJpbmcgaW5zdGFudGlhdGlvbiBvZiAke259ISR7WW0odCl9LmB9KSxlKX0pKHRoaXMsZSwwLHQua2V5KX1yZXR1cm4gaX1fZ2V0QnlSZWZsZWN0aXZlRGVwZW5kZW5jeSh0KXtyZXR1cm4gdGhpcy5fZ2V0QnlLZXkodC5rZXksdC52aXNpYmlsaXR5LHQub3B0aW9uYWw/bnVsbDp3cil9X2dldEJ5S2V5KHQsZSxuKXtyZXR1cm4gdD09PXVmLklOSkVDVE9SX0tFWT90aGlzOmUgaW5zdGFuY2VvZiBWcj90aGlzLl9nZXRCeUtleVNlbGYodCxuKTp0aGlzLl9nZXRCeUtleURlZmF1bHQodCxuLGUpfV9nZXRPYmpCeUtleUlkKHQpe2ZvcihsZXQgZT0wO2U8dGhpcy5rZXlJZHMubGVuZ3RoO2UrKylpZih0aGlzLmtleUlkc1tlXT09PXQpcmV0dXJuIHRoaXMub2Jqc1tlXT09PW1mJiYodGhpcy5vYmpzW2VdPXRoaXMuX25ldyh0aGlzLl9wcm92aWRlcnNbZV0pKSx0aGlzLm9ianNbZV07cmV0dXJuIG1mfV90aHJvd09yTnVsbCh0LGUpe2lmKGUhPT13cilyZXR1cm4gZTt0aHJvdyhmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIHFtKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuYE5vIHByb3ZpZGVyIGZvciAke0tlKHRbMF0udG9rZW4pfSEke1ltKHQpfWB9KSl9KSh0aGlzLHQpfV9nZXRCeUtleVNlbGYodCxlKXtjb25zdCBuPXRoaXMuX2dldE9iakJ5S2V5SWQodC5pZCk7cmV0dXJuIG4hPT1tZj9uOnRoaXMuX3Rocm93T3JOdWxsKHQsZSl9X2dldEJ5S2V5RGVmYXVsdCh0LGUsbil7bGV0IG87Zm9yKG89biBpbnN0YW5jZW9mIGpyP3RoaXMucGFyZW50OnRoaXM7byBpbnN0YW5jZW9mIHVmOyl7Y29uc3QgZT1vLG49ZS5fZ2V0T2JqQnlLZXlJZCh0LmlkKTtpZihuIT09bWYpcmV0dXJuIG47bz1lLnBhcmVudH1yZXR1cm4gbnVsbCE9PW8/by5nZXQodC50b2tlbixlKTp0aGlzLl90aHJvd09yTnVsbCh0LGUpfWdldCBkaXNwbGF5TmFtZSgpe3JldHVybmBSZWZsZWN0aXZlSW5qZWN0b3IocHJvdmlkZXJzOiBbJHsoZnVuY3Rpb24gdChlLG4pe2NvbnN0IG89W107Zm9yKGxldCB0PTA7dDxlLl9wcm92aWRlcnMubGVuZ3RoOysrdClvW3RdPW4oZS5nZXRQcm92aWRlckF0SW5kZXgodCkpO3JldHVybiBvfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLykodGhpcywodD0+JyAiJyt0LmtleS5kaXNwbGF5TmFtZSsnIiAnKSkuam9pbigiLCAiKX1dKWB9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5kaXNwbGF5TmFtZX19ZnVuY3Rpb24gZ2YodCxlPUhuLkRlZmF1bHQpe2NvbnN0IG49eGkoKTtpZihudWxsPT09bilyZXR1cm4gbmdEZXZNb2RlJiYoZnVuY3Rpb24gbyh0KXtuZ0Rldk1vZGUmJmhuKEZuLHQsIkNhbGxpbmcgybXJtWluamVjdCB3b3VsZCBjYXVzZSBpbmZpbml0ZSByZWN1cnNpb24iKX0pKGdmKSxUcih0LGUpO3JldHVybiBOYSh3aSgpLG4sdG4odCksZSl9ZnVuY3Rpb24gaGYoKXtjb25zdCB0PW5nRGV2TW9kZT8iVGhpcyBjb25zdHJ1Y3RvciB3YXMgbm90IGNvbXBhdGlibGUgd2l0aCBEZXBlbmRlbmN5IEluamVjdGlvbi4iOiJpbnZhbGlkIjt0aHJvdyBuZXcgRXJyb3IodCl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIGJmKHQsZSxuKXtjb25zdCBvPXhpKCksaT1IaSgpO2lmKHVtKG8saSxlKSl7Y29uc3QgYT1PaSgpLHI9bmEoKTt6ZChhLHIsbyx0LGUsb1sxMV0sbiwhMSksbmdEZXZNb2RlJiZscChhLmRhdGEscix0LGkpfXJldHVybiBiZn1mdW5jdGlvbiB5Zih0LGUsbixvLGkpe2NvbnN0IGE9aT8iY2xhc3MiOiJzdHlsZSI7dXAodCxuLGUuaW5wdXRzW2FdLGEsbyl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIF9mKHQsZSxuLG8saSxhLHIpe25nRGV2TW9kZSYmTG8oZSksbmdEZXZNb2RlJiZuZ0Rldk1vZGUuZmlyc3RDcmVhdGVQYXNzKys7Y29uc3Qgcz1lLmNvbnN0cyxsPV9kKGUsdCwyLGksaGkocyxhKSksYz1MZChlLG4sbCxoaShzLHIpKTtyZXR1cm4gbmdEZXZNb2RlJiYoZnVuY3Rpb24gZCh0LGUsbixvKXtpZihudWxsPT09dC5zY2hlbWFzKXJldHVybjtjb25zdCBpPW4udmFsdWU7aWYoIW8mJm51bGwhPT1pKXtpZigoInVuZGVmaW5lZCIhPXR5cGVvZiBIVE1MVW5rbm93bkVsZW1lbnQmJkhUTUxVbmtub3duRWxlbWVudCYmZSBpbnN0YW5jZW9mIEhUTUxVbmtub3duRWxlbWVudHx8InVuZGVmaW5lZCIhPXR5cGVvZiBjdXN0b21FbGVtZW50cyYmaS5pbmRleE9mKCItIik+LTEmJiFjdXN0b21FbGVtZW50cy5nZXQoaSkpJiYhSGQodCxpKSl7bGV0IHQ9YCcke2l9JyBpcyBub3QgYSBrbm93biBlbGVtZW50OlxuYDt0Kz1gMS4gSWYgJyR7aX0nIGlzIGFuIEFuZ3VsYXIgY29tcG9uZW50LCB0aGVuIHZlcmlmeSB0aGF0IGl0IGlzIHBhcnQgb2YgdGhpcyBtb2R1bGUuXG5gLGkmJmkuaW5kZXhPZigiLSIpPi0xP3QrPWAyLiBJZiAnJHtpfScgaXMgYSBXZWIgQ29tcG9uZW50IHRoZW4gYWRkICdDVVNUT01fRUxFTUVOVFNfU0NIRU1BJyB0byB0aGUgJ0BOZ01vZHVsZS5zY2hlbWFzJyBvZiB0aGlzIGNvbXBvbmVudCB0byBzdXBwcmVzcyB0aGlzIG1lc3NhZ2UuYDp0Kz0iMi4gVG8gYWxsb3cgYW55IGVsZW1lbnQgYWRkICdOT19FUlJPUlNfU0NIRU1BJyB0byB0aGUgJ0BOZ01vZHVsZS5zY2hlbWFzJyBvZiB0aGlzIGNvbXBvbmVudC4iLGNvbnNvbGUuZXJyb3IoYW4oIjMwNCIsdCkpfX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLykoZSxvLGwsYyksbnVsbCE9PWwuYXR0cnMmJmhwKGwsbC5hdHRycywhMSksbnVsbCE9PWwubWVyZ2VkQXR0cnMmJmhwKGwsbC5tZXJnZWRBdHRycywhMCksbnVsbCE9PWUucXVlcmllcyYmZS5xdWVyaWVzLmVsZW1lbnRTdGFydChlLGwpLGx9ZnVuY3Rpb24gQ2YodCxlLG4sbyl7Y29uc3QgaT14aSgpLGE9T2koKSxyPXZvK3Q7bmdEZXZNb2RlJiZnbih6aSgpLGEuYmluZGluZ1N0YXJ0SW5kZXgsImVsZW1lbnRzIHNob3VsZCBiZSBjcmVhdGVkIGJlZm9yZSBhbnkgYmluZGluZ3MiKSxuZ0Rldk1vZGUmJnduKGkscik7Y29uc3Qgcz1pWzExXSxsPWlbcl09VWwocyxlLChmdW5jdGlvbiBjKCl7cmV0dXJuIF9pLmxGcmFtZS5jdXJyZW50TmFtZXNwYWNlfSkoKSksZD1hLmZpcnN0Q3JlYXRlUGFzcz9fZihyLGEsaSxsLGUsbixvKTphLmRhdGFbcl07RGkoZCwhMCk7Y29uc3QgcD1kLm1lcmdlZEF0dHJzO251bGwhPT1wJiZoYShzLGwscCk7Y29uc3QgbT1kLmNsYXNzZXM7bnVsbCE9PW0mJmdjKHMsbCxtKTtjb25zdCBmPWQuc3R5bGVzO251bGwhPT1mJiZ1YyhzLGwsZiksNjQhPSg2NCZkLmZsYWdzKSYmcmMoYSxpLGwsZCksMD09PShmdW5jdGlvbiB1KCl7cmV0dXJuIF9pLmxGcmFtZS5lbGVtZW50RGVwdGhDb3VudH0pKCkmJmFsKGwsaSksKGZ1bmN0aW9uIGcoKXtfaS5sRnJhbWUuZWxlbWVudERlcHRoQ291bnQrK30pKCksRG8oZCkmJihrZChhLGksZCksd2QoYSxkLGkpKSxudWxsIT09byYmU2QoaSxkKX1mdW5jdGlvbiBNZigpe2xldCB0PXdpKCk7bmdEZXZNb2RlJiZ4bih0LCJObyBwYXJlbnQgbm9kZSB0byBjbG9zZS4iKSxSaSgpP0VpKCk6KG5nRGV2TW9kZSYmem8od2koKSksdD10LnBhcmVudCxEaSh0LCExKSk7Y29uc3QgZT10O25nRGV2TW9kZSYmZ2EoZSwzKSwoZnVuY3Rpb24gbigpe19pLmxGcmFtZS5lbGVtZW50RGVwdGhDb3VudC0tfSkoKTtjb25zdCBvPU9pKCk7by5maXJzdENyZWF0ZVBhc3MmJihyYShvLHQpLGtvKHQpJiZvLnF1ZXJpZXMuZWxlbWVudEVuZCh0KSksbnVsbCE9ZS5jbGFzc2VzV2l0aG91dEhvc3QmJihmdW5jdGlvbiBpKHQpe3JldHVybiAwIT0oMTYmdC5mbGFncyl9KShlKSYmeWYobyxlLHhpKCksZS5jbGFzc2VzV2l0aG91dEhvc3QsITApLG51bGwhPWUuc3R5bGVzV2l0aG91dEhvc3QmJihmdW5jdGlvbiBhKHQpe3JldHVybiAwIT0oMzImdC5mbGFncyl9KShlKSYmeWYobyxlLHhpKCksZS5zdHlsZXNXaXRob3V0SG9zdCwhMSl9ZnVuY3Rpb24gdmYodCxlLG4sbyl7Q2YodCxlLG4sbyksTWYoKX1mdW5jdGlvbiB4Zih0LGUsbil7Y29uc3Qgbz14aSgpLGk9T2koKSxhPXQrdm87bmdEZXZNb2RlJiZ3bihvLGEpLG5nRGV2TW9kZSYmZ24oemkoKSxpLmJpbmRpbmdTdGFydEluZGV4LCJlbGVtZW50IGNvbnRhaW5lcnMgc2hvdWxkIGJlIGNyZWF0ZWQgYmVmb3JlIGFueSBiaW5kaW5ncyIpO2NvbnN0IHI9aS5maXJzdENyZWF0ZVBhc3M/KGZ1bmN0aW9uIHModCxlLG4sbyxpKXtuZ0Rldk1vZGUmJm5nRGV2TW9kZS5maXJzdENyZWF0ZVBhc3MrKztjb25zdCBhPWUuY29uc3RzLHI9aGkoYSxvKSxzPV9kKGUsdCw4LCJuZy1jb250YWluZXIiLHIpO3JldHVybiBudWxsIT09ciYmaHAocyxyLCEwKSxMZChlLG4scyxoaShhLGkpKSxudWxsIT09ZS5xdWVyaWVzJiZlLnF1ZXJpZXMuZWxlbWVudFN0YXJ0KGUscyksc30pKGEsaSxvLGUsbik6aS5kYXRhW2FdO0RpKHIsITApLG5nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyQ3JlYXRlQ29tbWVudCsrO2NvbnN0IGw9b1thXT1vWzExXS5jcmVhdGVDb21tZW50KG5nRGV2TW9kZT8ibmctY29udGFpbmVyIjoiIik7cmMoaSxvLGwsciksYWwobCxvKSxEbyhyKSYmKGtkKGksbyxyKSx3ZChpLHIsbykpLG51bGwhPW4mJlNkKG8scil9ZnVuY3Rpb24gT2YoKXtsZXQgdD13aSgpO2NvbnN0IGU9T2koKTtSaSgpP0VpKCk6KG5nRGV2TW9kZSYmem8odCksdD10LnBhcmVudCxEaSh0LCExKSksbmdEZXZNb2RlJiZnYSh0LDgpLGUuZmlyc3RDcmVhdGVQYXNzJiYocmEoZSx0KSxrbyh0KSYmZS5xdWVyaWVzLmVsZW1lbnRFbmQodCkpfWZ1bmN0aW9uIFBmKHQsZSxuKXt4Zih0LGUsbiksT2YoKX1mdW5jdGlvbiB3Zigpe3JldHVybiB4aSgpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBrZih0KXtyZXR1cm4hIXQmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LnRoZW59ZnVuY3Rpb24gU2YodCl7cmV0dXJuISF0JiYiZnVuY3Rpb24iPT10eXBlb2YgdC5zdWJzY3JpYmV9dWYuSU5KRUNUT1JfS0VZPUptLmdldChOcCk7Y29uc3QgRGY9U2Y7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIFJmKHQsZSxuLG8pe2NvbnN0IGk9eGkoKSxhPU9pKCkscj13aSgpO3JldHVybiBBZihhLGksaVsxMV0scix0LGUsISFuLG8pLFJmfWZ1bmN0aW9uIEVmKHQsZSl7Y29uc3Qgbj13aSgpLG89eGkoKSxpPU9pKCk7cmV0dXJuIEFmKGksbyxtcChqaShpLmRhdGEpLG4sbyksbix0LGUsITEpLEVmfWZ1bmN0aW9uIEFmKHQsZSxuLG8saSxhLHIscyl7Y29uc3QgbD1EbyhvKSxjPXQuZmlyc3RDcmVhdGVQYXNzJiZwcCh0KSxkPWVbOF0scD1kcChlKTtuZ0Rldk1vZGUmJmdhKG8sMTUpO2xldCBtPSEwO2lmKDMmby50eXBlfHxzKXtjb25zdCBmPWRpKG8sZSksdT1zP3MoZik6ZixnPXAubGVuZ3RoLGg9cz90PT5zKGxpKHRbby5pbmRleF0pKTpvLmluZGV4O2lmKHJpKG4pKXtsZXQgcj1udWxsO2lmKCFzJiZsJiYocj0oZnVuY3Rpb24gZih0LGUsbixvKXtjb25zdCBpPXQuY2xlYW51cDtpZihudWxsIT1pKWZvcihsZXQgdD0wO3Q8aS5sZW5ndGgtMTt0Kz0yKXtjb25zdCBhPWlbdF07aWYoYT09PW4mJmlbdCsxXT09PW8pe2NvbnN0IG49ZVs3XSxvPWlbdCsyXTtyZXR1cm4gbi5sZW5ndGg+bz9uW29dOm51bGx9InN0cmluZyI9PXR5cGVvZiBhJiYodCs9Mil9cmV0dXJuIG51bGx9KSh0LGUsaSxvLmluZGV4KSksbnVsbCE9PXIpeyhyLl9fbmdMYXN0TGlzdGVuZXJGbl9ffHxyKS5fX25nTmV4dExpc3RlbmVyRm5fXz1hLHIuX19uZ0xhc3RMaXN0ZW5lckZuX189YSxtPSExfWVsc2V7YT1OZihvLGUsZCxhLCExKTtjb25zdCB0PW4ubGlzdGVuKHUsaSxhKTtuZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlckFkZEV2ZW50TGlzdGVuZXIrKyxwLnB1c2goYSx0KSxjJiZjLnB1c2goaSxoLGcsZysxKX19ZWxzZSBhPU5mKG8sZSxkLGEsITApLHUuYWRkRXZlbnRMaXN0ZW5lcihpLGEsciksbmdEZXZNb2RlJiZuZ0Rldk1vZGUucmVuZGVyZXJBZGRFdmVudExpc3RlbmVyKysscC5wdXNoKGEpLGMmJmMucHVzaChpLGgsZyxyKX1lbHNlIGE9TmYobyxlLGQsYSwhMSk7Y29uc3QgdT1vLm91dHB1dHM7bGV0IGc7aWYobSYmbnVsbCE9PXUmJihnPXVbaV0pKXtjb25zdCB0PWcubGVuZ3RoO2lmKHQpZm9yKGxldCBuPTA7bjx0O24rPTIpe2NvbnN0IHQ9Z1tuXTtuZ0Rldk1vZGUmJnduKGUsdCk7Y29uc3Qgcj1nW24rMV0scz1lW3RdLGw9c1tyXTtpZihuZ0Rldk1vZGUmJiFEZihsKSl0aHJvdyBuZXcgRXJyb3IoYEBPdXRwdXQgJHtyfSBub3QgaW5pdGlhbGl6ZWQgaW4gJyR7cy5jb25zdHJ1Y3Rvci5uYW1lfScuYCk7Y29uc3QgZD1sLnN1YnNjcmliZShhKSxtPXAubGVuZ3RoO3AucHVzaChhLGQpLGMmJmMucHVzaChpLG8uaW5kZXgsbSwtKG0rMSkpfX19ZnVuY3Rpb24gVGYodCxlLG4sbyl7dHJ5e3JldHVybiB0aSg2LGUsbiksITEhPT1uKG8pfWNhdGNoKGUpe3JldHVybiBmcCh0LGUpLCExfWZpbmFsbHl7dGkoNyxlLG4pfX1mdW5jdGlvbiBOZih0LGUsbixvLGkpe3JldHVybiBmdW5jdGlvbiBhKHIpe2lmKHI9PT1GdW5jdGlvbilyZXR1cm4gbztjb25zdCBzPTImdC5mbGFncz9maSh0LmluZGV4LGUpOmU7MD09KDMyJmVbMl0pJiZvcChzKTtsZXQgbD1UZihlLG4sbyxyKSxjPWEuX19uZ05leHRMaXN0ZW5lckZuX187Zm9yKDtjOylsPVRmKGUsbixjLHIpJiZsLGM9Yy5fX25nTmV4dExpc3RlbmVyRm5fXztyZXR1cm4gaSYmITE9PT1sJiYoci5wcmV2ZW50RGVmYXVsdCgpLHIucmV0dXJuVmFsdWU9ITEpLGx9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gemYodD0xKXtyZXR1cm4gJGkodCl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIElmKHQsZSl7bGV0IG49bnVsbDtjb25zdCBvPShmdW5jdGlvbiBpKHQpe2NvbnN0IGU9dC5hdHRycztpZihudWxsIT1lKXtjb25zdCB0PWUuaW5kZXhPZig1KTtpZigwPT0oMSZ0KSlyZXR1cm4gZVt0KzFdfXJldHVybiBudWxsfSkodCk7Zm9yKGxldCBpPTA7aTxlLmxlbmd0aDtpKyspe2NvbnN0IGE9ZVtpXTtpZigiKiIhPT1hKXtpZihudWxsPT09bz9PYyh0LGEsITApOlBjKG8sYSkpcmV0dXJuIGl9ZWxzZSBuPWl9cmV0dXJuIG59ZnVuY3Rpb24gSGYodCl7Y29uc3QgZT14aSgpWzE2XVs2XTtpZighZS5wcm9qZWN0aW9uKXtjb25zdCBuPWUucHJvamVjdGlvbj1ncih0P3QubGVuZ3RoOjEsbnVsbCksbz1uLnNsaWNlKCk7bGV0IGk9ZS5jaGlsZDtmb3IoO251bGwhPT1pOyl7Y29uc3QgZT10P0lmKGksdCk6MDtudWxsIT09ZSYmKG9bZV0/b1tlXS5wcm9qZWN0aW9uTmV4dD1pOm5bZV09aSxvW2VdPWkpLGk9aS5uZXh0fX19ZnVuY3Rpb24gRmYodCxlPTAsbil7Y29uc3Qgbz14aSgpLGk9T2koKSxhPV9kKGksdm8rdCwxNixudWxsLG58fG51bGwpO251bGw9PT1hLnByb2plY3Rpb24mJihhLnByb2plY3Rpb249ZSksRWkoKSw2NCE9KDY0JmEuZmxhZ3MpJiYoZnVuY3Rpb24gcih0LGUsbil7ZmMoZVsxMV0sMCxlLG4sWGwodCxuLGUpLGVjKG4ucGFyZW50fHxlWzZdLG4sZSkpfSkoaSxvLGEpfWZ1bmN0aW9uIExmKHQsZSxuKXtyZXR1cm4gQmYodCwiIixlLCIiLG4pLExmfWZ1bmN0aW9uIEJmKHQsZSxuLG8saSl7Y29uc3QgYT14aSgpLHI9Q20oYSxlLG4sbyk7aWYociE9PVNjKXtjb25zdCBuPU9pKCkscz1uYSgpO3pkKG4scyxhLHQscixhWzExXSxpLCExKSxuZ0Rldk1vZGUmJmxwKG4uZGF0YSxzLHQsemkoKS0xLGUsbyl9cmV0dXJuIEJmfWZ1bmN0aW9uIFZmKHQsZSxuLG8saSxhLHIpe2NvbnN0IHM9eGkoKSxsPU1tKHMsZSxuLG8saSxhKTtpZihsIT09U2Mpe2NvbnN0IG49T2koKSxpPW5hKCk7emQobixpLHMsdCxsLHNbMTFdLHIsITEpLG5nRGV2TW9kZSYmbHAobi5kYXRhLGksdCx6aSgpLTIsZSxvLGEpfXJldHVybiBWZn1mdW5jdGlvbiBqZih0LGUsbixvLGksYSxyLHMsbCl7Y29uc3QgYz14aSgpLGQ9dm0oYyxlLG4sbyxpLGEscixzKTtpZihkIT09U2Mpe2NvbnN0IG49T2koKSxpPW5hKCk7emQobixpLGMsdCxkLGNbMTFdLGwsITEpLG5nRGV2TW9kZSYmbHAobi5kYXRhLGksdCx6aSgpLTMsZSxvLGEscyl9cmV0dXJuIGpmfWZ1bmN0aW9uIFVmKHQsZSxuLG8saSxhLHIscyxsLGMsZCl7Y29uc3QgcD14aSgpLG09eG0ocCxlLG4sbyxpLGEscixzLGwsYyk7aWYobSE9PVNjKXtjb25zdCBuPU9pKCksaT1uYSgpO3pkKG4saSxwLHQsbSxwWzExXSxkLCExKSxuZ0Rldk1vZGUmJmxwKG4uZGF0YSxpLHQsemkoKS00LGUsbyxhLHMsYyl9cmV0dXJuIFVmfWZ1bmN0aW9uIFdmKHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0pe2NvbnN0IGY9eGkoKSx1PU9tKGYsZSxuLG8saSxhLHIscyxsLGMsZCxwKTtpZih1IT09U2Mpe2NvbnN0IG49T2koKSxpPW5hKCk7emQobixpLGYsdCx1LGZbMTFdLG0sITEpLG5nRGV2TW9kZSYmbHAobi5kYXRhLGksdCx6aSgpLTUsZSxvLGEscyxjLHApfXJldHVybiBXZn1mdW5jdGlvbiBHZih0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtLGYsdSl7Y29uc3QgZz14aSgpLGg9UG0oZyxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSxmKTtpZihoIT09U2Mpe2NvbnN0IG49T2koKSxpPW5hKCk7emQobixpLGcsdCxoLGdbMTFdLHUsITEpLG5nRGV2TW9kZSYmbHAobi5kYXRhLGksdCx6aSgpLTYsZSxvLGEscyxjLHAsZil9cmV0dXJuIEdmfWZ1bmN0aW9uIFlmKHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sZix1LGcsaCl7Y29uc3QgYj14aSgpLHk9d20oYixlLG4sbyxpLGEscixzLGwsYyxkLHAsbSxmLHUsZyk7aWYoeSE9PVNjKXtjb25zdCBuPU9pKCksaT1uYSgpO3pkKG4saSxiLHQseSxiWzExXSxoLCExKSxuZ0Rldk1vZGUmJmxwKG4uZGF0YSxpLHQsemkoKS03LGUsbyxhLHMsYyxwLGYsZyl9cmV0dXJuIFlmfWZ1bmN0aW9uIHFmKHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sZix1LGcsaCxiLHkpe2NvbnN0IF89eGkoKSxDPWttKF8sZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sZix1LGcsaCxiKTtpZihDIT09U2Mpe2NvbnN0IG49T2koKSxpPW5hKCk7emQobixpLF8sdCxDLF9bMTFdLHksITEpLG5nRGV2TW9kZSYmbHAobi5kYXRhLGksdCx6aSgpLTgsZSxvLGEscyxjLHAsZixnLGIpfXJldHVybiBxZn1mdW5jdGlvbiBaZih0LGUsbil7Y29uc3Qgbz14aSgpLGk9X20obyxlKTtpZihpIT09U2Mpe2NvbnN0IGE9T2koKSxyPW5hKCk7aWYoemQoYSxyLG8sdCxpLG9bMTFdLG4sITEpLG5nRGV2TW9kZSl7Y29uc3Qgbj1bZVswXV07Zm9yKGxldCB0PTI7dDxlLmxlbmd0aDt0Kz0yKW4ucHVzaChlW3RdKTtscChhLmRhdGEscix0LHppKCktbi5sZW5ndGgrMSwuLi5uKX19cmV0dXJuIFpmfWZ1bmN0aW9uIFhmKHQsZSxuLG8saSxhKXtuZ0Rldk1vZGUmJkJvKE9pKCkpO2xldCByPWE/ZS5jbGFzc0JpbmRpbmdzOmUuc3R5bGVCaW5kaW5ncyxzPUFjKHIpLGw9emMocik7dFtvXT1uO2xldCBjLGQ9ITE7aWYoQXJyYXkuaXNBcnJheShuKSl7Y29uc3QgdD1uO2M9dFsxXSwobnVsbD09PWN8fHlyKHQsYyk+MCkmJihkPSEwKX1lbHNlIGM9bjtpZihpKXtpZigwIT09bCl7Y29uc3QgZT1BYyh0W3MrMV0pO3RbbysxXT1FYyhlLHMpLDAhPT1lJiYodFtlKzFdPUljKHRbZSsxXSxvKSksdFtzKzFdPShmdW5jdGlvbiBwKHQsZSl7cmV0dXJuIG5nRGV2TW9kZSYmcG4odCwiZXhwZWN0ZWQgbnVtYmVyIiksbmdEZXZNb2RlJiZtbihlLDAsMzI3NjcpLDEzMTA3MSZ0fGU8PDE3fSkodFtzKzFdLG8pfWVsc2UgdFtvKzFdPUVjKHMsMCksMCE9PXMmJih0W3MrMV09SWModFtzKzFdLG8pKSxzPW99ZWxzZSB0W28rMV09RWMobCwwKSxuZ0Rldk1vZGUmJmduKDAhPT1zJiYwPT09bCwhMSwiQWRkaW5nIHRlbXBsYXRlIGJpbmRpbmdzIGFmdGVyIGhvc3RCaW5kaW5ncyBpcyBub3QgYWxsb3dlZC4iKSwwPT09cz9zPW86dFtsKzFdPUljKHRbbCsxXSxvKSxsPW87ZCYmKHRbbysxXT1OYyh0W28rMV0pKSxLZih0LGMsbywhMCksS2YodCxjLG8sITEpLChmdW5jdGlvbiBtKHQsZSxuLG8saSl7Y29uc3QgYT1pP3QucmVzaWR1YWxDbGFzc2VzOnQucmVzaWR1YWxTdHlsZXM7bnVsbCE9YSYmInN0cmluZyI9PXR5cGVvZiBlJiZ5cihhLGUpPj0wJiYobltvKzFdPUZjKG5bbysxXSkpfSkoZSxjLHQsbyxhKSxyPUVjKHMsbCksYT9lLmNsYXNzQmluZGluZ3M9cjplLnN0eWxlQmluZGluZ3M9cn1mdW5jdGlvbiBLZih0LGUsbixvLGkpe2NvbnN0IGE9dFtuKzFdLHI9bnVsbD09PWU7bGV0IHM9bz9BYyhhKTp6YyhhKSxsPSExO2Zvcig7MCE9PXMmJighMT09PWx8fHIpOyl7bmdEZXZNb2RlJiZ3bih0LHMpO2NvbnN0IG49dFtzKzFdO0pmKHRbc10sZSkmJihsPSEwLHRbcysxXT1vP0ZjKG4pOk5jKG4pKSxzPW8/QWMobik6emMobil9bCYmKHRbbisxXT1vP05jKGEpOkZjKGEpKX1mdW5jdGlvbiBKZih0LGUpe3JldHVybiBuZ0Rldk1vZGUmJmhuKEFycmF5LmlzQXJyYXkoZSksITAsIkV4cGVjdGVkIHRoYXQgJ3RTdHlsaW5nS2V5JyBoYXMgYmVlbiB1bndyYXBwZWQiKSxudWxsPT09dHx8bnVsbD09ZXx8KEFycmF5LmlzQXJyYXkodCk/dFsxXTp0KT09PWV8fCEoIUFycmF5LmlzQXJyYXkodCl8fCJzdHJpbmciIT10eXBlb2YgZSkmJnlyKHQsZSk+PTB9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IFFmPXt0ZXh0RW5kOjAsa2V5OjAsa2V5RW5kOjAsdmFsdWU6MCx2YWx1ZUVuZDowfTtmdW5jdGlvbiAkZih0KXtyZXR1cm4gdC5zdWJzdHJpbmcoUWYua2V5LFFmLmtleUVuZCl9ZnVuY3Rpb24gdHUodCl7cmV0dXJuIHQuc3Vic3RyaW5nKFFmLnZhbHVlLFFmLnZhbHVlRW5kKX1mdW5jdGlvbiBldSh0LGUpe2NvbnN0IG49UWYudGV4dEVuZDtyZXR1cm4gbj09PWU/LTE6KGU9UWYua2V5RW5kPShmdW5jdGlvbiBvKHQsZSxuKXtmb3IoO2U8biYmdC5jaGFyQ29kZUF0KGUpPjMyOyllKys7cmV0dXJuIGV9KSh0LFFmLmtleT1lLG4pLGl1KHQsZSxuKSl9ZnVuY3Rpb24gbnUodCxlKXtjb25zdCBuPVFmLnRleHRFbmQ7bGV0IG89UWYua2V5PWl1KHQsZSxuKTtyZXR1cm4gbj09PW8/LTE6KG89UWYua2V5RW5kPShmdW5jdGlvbiBpKHQsZSxuKXtsZXQgbztmb3IoO2U8biYmKDQ1PT09KG89dC5jaGFyQ29kZUF0KGUpKXx8OTU9PT1vfHwoLTMzJm8pPj02NSYmKC0zMyZvKTw9OTB8fG8+PTQ4JiZvPD01Nyk7KWUrKztyZXR1cm4gZX0pKHQsbyxuKSxvPWF1KHQsbyxuLDU4KSxvPVFmLnZhbHVlPWl1KHQsbyxuKSxvPVFmLnZhbHVlRW5kPShmdW5jdGlvbiBhKHQsZSxuKXtsZXQgbz0tMSxpPS0xLGE9LTEscj1lLHM9cjtmb3IoO3I8bjspe2NvbnN0IGw9dC5jaGFyQ29kZUF0KHIrKyk7aWYoNTk9PT1sKXJldHVybiBzOzM0PT09bHx8Mzk9PT1sP3M9cj1ydSh0LGwscixuKTplPT09ci00JiY4NT09PWEmJjgyPT09aSYmNzY9PT1vJiY0MD09PWw/cz1yPXJ1KHQsNDEscixuKTpsPjMyJiYocz1yKSxhPWksaT1vLG89LTMzJmx9cmV0dXJuIHN9KSh0LG8sbiksYXUodCxvLG4sNTkpKX1mdW5jdGlvbiBvdSh0KXtRZi5rZXk9MCxRZi5rZXlFbmQ9MCxRZi52YWx1ZT0wLFFmLnZhbHVlRW5kPTAsUWYudGV4dEVuZD10Lmxlbmd0aH1mdW5jdGlvbiBpdSh0LGUsbil7Zm9yKDtlPG4mJnQuY2hhckNvZGVBdChlKTw9MzI7KWUrKztyZXR1cm4gZX1mdW5jdGlvbiBhdSh0LGUsbixvKXtyZXR1cm4oZT1pdSh0LGUsbikpPG4mJihuZ0Rldk1vZGUmJnQuY2hhckNvZGVBdChlKSE9PW8mJnN1KHQsU3RyaW5nLmZyb21DaGFyQ29kZShvKSxlKSxlKyspLGV9ZnVuY3Rpb24gcnUodCxlLG4sbyl7bGV0IGk9LTEsYT1uO2Zvcig7YTxvOyl7Y29uc3Qgbj10LmNoYXJDb2RlQXQoYSsrKTtpZihuPT1lJiY5MiE9PWkpcmV0dXJuIGE7aT05Mj09biYmOTI9PT1pPzA6bn10aHJvdyBuZ0Rldk1vZGU/c3UodCxTdHJpbmcuZnJvbUNoYXJDb2RlKGUpLG8pOm5ldyBFcnJvcn1mdW5jdGlvbiBzdSh0LGUsbil7dGhyb3cgbmdEZXZNb2RlJiZnbigic3RyaW5nIj09dHlwZW9mIHQsITAsIlN0cmluZyBleHBlY3RlZCBoZXJlIiksT24oYE1hbGZvcm1lZCBzdHlsZSBhdCBsb2NhdGlvbiAke259IGluIHN0cmluZyAnYCt0LnN1YnN0cmluZygwLG4pKyJbPj4iK3Quc3Vic3RyaW5nKG4sbisxKSsiPDxdIit0LnN1YnN0cihuKzEpK2AnLiBFeHBlY3RpbmcgJyR7ZX0nLmApfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBsdSh0LGUsbil7cmV0dXJuIHV1KHQsZSxuLCExKSxsdX1mdW5jdGlvbiBjdSh0LGUpe3JldHVybiB1dSh0LGUsbnVsbCwhMCksY3V9ZnVuY3Rpb24gZHUodCl7Z3UoQ3UscHUsdCwhMSl9ZnVuY3Rpb24gcHUodCxlKXtmb3IobGV0IG49KGZ1bmN0aW9uIG4odCl7cmV0dXJuIG91KHQpLG51KHQsaXUodCwwLFFmLnRleHRFbmQpKX0pKGUpO24+PTA7bj1udShlLG4pKUN1KHQsJGYoZSksdHUoZSkpfWZ1bmN0aW9uIG11KHQpe2d1KGhyLGZ1LHQsITApfWZ1bmN0aW9uIGZ1KHQsZSl7Zm9yKGxldCBuPShmdW5jdGlvbiBuKHQpe3JldHVybiBvdSh0KSxldSh0LGl1KHQsMCxRZi50ZXh0RW5kKSl9KShlKTtuPj0wO249ZXUoZSxuKSlocih0LCRmKGUpLCEwKX1mdW5jdGlvbiB1dSh0LGUsbixvKXtjb25zdCBpPXhpKCksYT1PaSgpLHI9RmkoMik7aWYoYS5maXJzdFVwZGF0ZVBhc3MmJmJ1KGEsdCxyLG8pLGUhPT1TYyYmdW0oaSxyLGUpKXtNdShhLGEuZGF0YVt0YSgpXSxpLGlbMTFdLHQsaVtyKzFdPShmdW5jdGlvbiBzKHQsZSl7bnVsbD09dHx8KCJzdHJpbmciPT10eXBlb2YgZT90Kz1lOiJvYmplY3QiPT10eXBlb2YgdCYmKHQ9S2UodXModCkpKSk7cmV0dXJuIHR9KShlLG4pLG8scil9fWZ1bmN0aW9uIGd1KHQsZSxuLG8pe2NvbnN0IGk9T2koKSxhPUZpKDIpO2kuZmlyc3RVcGRhdGVQYXNzJiZidShpLG51bGwsYSxvKTtjb25zdCByPXhpKCk7aWYobiE9PVNjJiZ1bShyLGEsbikpe2NvbnN0IHM9aS5kYXRhW3RhKCldO2lmKE91KHMsbykmJiFodShpLGEpKXtpZihuZ0Rldk1vZGUpe2NvbnN0IHQ9aS5kYXRhW2FdO2duKEFycmF5LmlzQXJyYXkodCk/dFsxXTp0LCExLCJTdHlsaW5nIGxpbmtlZCBsaXN0IHNoYWRvdyBpbnB1dCBzaG91bGQgYmUgbWFya2VkIGFzICdmYWxzZSciKX1sZXQgdD1vP3MuY2xhc3Nlc1dpdGhvdXRIb3N0OnMuc3R5bGVzV2l0aG91dEhvc3Q7bmdEZXZNb2RlJiYhMT09PW8mJm51bGwhPT10JiZnbih0LmVuZHNXaXRoKCI7IiksITAsIkV4cGVjdGluZyBzdGF0aWMgcG9ydGlvbiB0byBlbmQgd2l0aCAnOyciKSxudWxsIT09dCYmKG49SmUodCxufHwiIikpLHlmKGkscyxyLG4sbyl9ZWxzZSEoZnVuY3Rpb24gbCh0LGUsbixvLGksYSxyLHMpe2k9PT1TYyYmKGk9UW4pO2xldCBsPTAsYz0wLGQ9MDxpLmxlbmd0aD9pWzBdOm51bGwscD0wPGEubGVuZ3RoP2FbMF06bnVsbDtmb3IoO251bGwhPT1kfHxudWxsIT09cDspe25nRGV2TW9kZSYmX24obCw5OTksIkFyZSB3ZSBzdHVjayBpbiBpbmZpbml0ZSBsb29wPyIpLG5nRGV2TW9kZSYmX24oYyw5OTksIkFyZSB3ZSBzdHVjayBpbiBpbmZpbml0ZSBsb29wPyIpO2NvbnN0IG09bDxpLmxlbmd0aD9pW2wrMV06dm9pZCAwLGY9YzxhLmxlbmd0aD9hW2MrMV06dm9pZCAwO2xldCB1LGc9bnVsbDtkPT09cD8obCs9MixjKz0yLG0hPT1mJiYoZz1wLHU9ZikpOm51bGw9PT1wfHxudWxsIT09ZCYmZDxwPyhsKz0yLGc9ZCk6KG5nRGV2TW9kZSYmeG4ocCwiRXhwZWN0aW5nIHRvIGhhdmUgYSB2YWxpZCBrZXkiKSxjKz0yLGc9cCx1PWYpLG51bGwhPT1nJiZNdSh0LGUsbixvLGcsdSxyLHMpLGQ9bDxpLmxlbmd0aD9pW2xdOm51bGwscD1jPGEubGVuZ3RoP2FbY106bnVsbH19KShpLHMscixyWzExXSxyW2ErMV0sclthKzFdPShmdW5jdGlvbiBzKHQsZSxuKXtpZihudWxsPT1ufHwiIj09PW4pcmV0dXJuIFFuO2NvbnN0IG89W10saT11cyhuKTtpZihBcnJheS5pc0FycmF5KGkpKWZvcihsZXQgZT0wO2U8aS5sZW5ndGg7ZSsrKXQobyxpW2VdLCEwKTtlbHNlIGlmKCJvYmplY3QiPT10eXBlb2YgaSlmb3IoY29uc3QgZSBpbiBpKWkuaGFzT3duUHJvcGVydHkoZSkmJnQobyxlLGlbZV0pO2Vsc2Uic3RyaW5nIj09dHlwZW9mIGk/ZShvLGkpOm5nRGV2TW9kZSYmT24oIlVuc3VwcG9ydGVkIHN0eWxpbmcgdHlwZSAiK3R5cGVvZiBpKyI6ICIraSk7cmV0dXJuIG99KSh0LGUsbiksbyxhKX19ZnVuY3Rpb24gaHUodCxlKXtyZXR1cm4gZT49dC5leHBhbmRvU3RhcnRJbmRleH1mdW5jdGlvbiBidSh0LGUsbixvKXtuZ0Rldk1vZGUmJkJvKHQpO2NvbnN0IGk9dC5kYXRhO2lmKG51bGw9PT1pW24rMV0pe2NvbnN0IGE9aVt0YSgpXTtuZ0Rldk1vZGUmJnhuKGEsIlROb2RlIGV4cGVjdGVkIik7Y29uc3Qgcj1odSh0LG4pO091KGEsbykmJm51bGw9PT1lJiYhciYmKGU9ITEpLGU9KGZ1bmN0aW9uIGEodCxlLG4sbyl7Y29uc3QgaT1qaSh0KTtsZXQgYT1vP2UucmVzaWR1YWxDbGFzc2VzOmUucmVzaWR1YWxTdHlsZXM7aWYobnVsbD09PWkpezA9PT0obz9lLmNsYXNzQmluZGluZ3M6ZS5zdHlsZUJpbmRpbmdzKSYmKG49X3Uobj15dShudWxsLHQsZSxuLG8pLGUuYXR0cnMsbyksYT1udWxsKX1lbHNle2NvbnN0IHI9ZS5kaXJlY3RpdmVTdHlsaW5nTGFzdDtpZigtMT09PXJ8fHRbcl0hPT1pKWlmKG49eXUoaSx0LGUsbixvKSxudWxsPT09YSl7bGV0IG49KGZ1bmN0aW9uIHIodCxlLG4pe2NvbnN0IG89bj9lLmNsYXNzQmluZGluZ3M6ZS5zdHlsZUJpbmRpbmdzO2lmKDA9PT16YyhvKSlyZXR1cm47cmV0dXJuIHRbQWMobyldfSkodCxlLG8pO3ZvaWQgMCE9PW4mJkFycmF5LmlzQXJyYXkobikmJihuPXl1KG51bGwsdCxlLG5bMV0sbyksbj1fdShuLGUuYXR0cnMsbyksKGZ1bmN0aW9uIHModCxlLG4sbyl7Y29uc3QgaT1uP2UuY2xhc3NCaW5kaW5nczplLnN0eWxlQmluZGluZ3M7bmdEZXZNb2RlJiZobih6YyhpKSwwLCJFeHBlY3RpbmcgdG8gaGF2ZSBhdCBsZWFzdCBvbmUgdGVtcGxhdGUgc3R5bGluZyBiaW5kaW5nLiIpLHRbQWMoaSldPW99KSh0LGUsbyxuKSl9ZWxzZSBhPShmdW5jdGlvbiBsKHQsZSxuKXtsZXQgbztjb25zdCBpPWUuZGlyZWN0aXZlRW5kO25nRGV2TW9kZSYmaG4oZS5kaXJlY3RpdmVTdHlsaW5nTGFzdCwtMSwiQnkgdGhlIHRpbWUgdGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZCBhdCBsZWFzdCBvbmUgaG9zdEJpbmRpbmdzLW5vZGUgc3R5bGluZyBpbnN0cnVjdGlvbiBtdXN0IGhhdmUgZXhlY3V0ZWQuIik7Zm9yKGxldCBhPTErZS5kaXJlY3RpdmVTdHlsaW5nTGFzdDthPGk7YSsrKXtvPV91KG8sdFthXS5ob3N0QXR0cnMsbil9cmV0dXJuIF91KG8sZS5hdHRycyxuKX0pKHQsZSxvKX12b2lkIDAhPT1hJiYobz9lLnJlc2lkdWFsQ2xhc3Nlcz1hOmUucmVzaWR1YWxTdHlsZXM9YSk7cmV0dXJuIG59KShpLGEsZSxvKSxYZihpLGEsZSxuLHIsbyl9fWZ1bmN0aW9uIHl1KHQsZSxuLG8saSl7bGV0IGE9bnVsbDtjb25zdCByPW4uZGlyZWN0aXZlRW5kO2xldCBzPW4uZGlyZWN0aXZlU3R5bGluZ0xhc3Q7Zm9yKC0xPT09cz9zPW4uZGlyZWN0aXZlU3RhcnQ6cysrO3M8ciYmKGE9ZVtzXSxuZ0Rldk1vZGUmJnhuKGEsImV4cGVjdGVkIHRvIGJlIGRlZmluZWQiKSxvPV91KG8sYS5ob3N0QXR0cnMsaSksYSE9PXQpOylzKys7cmV0dXJuIG51bGwhPT10JiYobi5kaXJlY3RpdmVTdHlsaW5nTGFzdD1zKSxvfWZ1bmN0aW9uIF91KHQsZSxuKXtjb25zdCBvPW4/MToyO2xldCBpPS0xO2lmKG51bGwhPT1lKWZvcihsZXQgYT0wO2E8ZS5sZW5ndGg7YSsrKXtjb25zdCByPWVbYV07Im51bWJlciI9PXR5cGVvZiByP2k9cjppPT09byYmKEFycmF5LmlzQXJyYXkodCl8fCh0PXZvaWQgMD09PXQ/W106WyIiLHRdKSxocih0LHIsISFufHxlWysrYV0pKX1yZXR1cm4gdm9pZCAwPT09dD9udWxsOnR9ZnVuY3Rpb24gQ3UodCxlLG4pe2hyKHQsZSx1cyhuKSl9ZnVuY3Rpb24gTXUodCxlLG4sbyxpLGEscixzKXtpZighKDMmZS50eXBlKSlyZXR1cm47Y29uc3QgbD10LmRhdGEsYz1sW3MrMV07aWYoIXh1KEhjKGMpP3Z1KGwsZSxuLGksemMoYykscik6dm9pZCAwKSl7eHUoYSl8fFRjKGMpJiYoYT12dShsLG51bGwsbixpLHMscikpOyEoZnVuY3Rpb24gZCh0LGUsbixvLGkpe2NvbnN0IGE9cmkodCk7aWYoZSlpPyhuZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlckFkZENsYXNzKyssYT90LmFkZENsYXNzKG4sbyk6KG5nRGV2TW9kZSYmeG4obi5jbGFzc0xpc3QsIkhUTUxFbGVtZW50IGV4cGVjdGVkIiksbi5jbGFzc0xpc3QuYWRkKG8pKSk6KG5nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyUmVtb3ZlQ2xhc3MrKyxhP3QucmVtb3ZlQ2xhc3MobixvKTpuLmNsYXNzTGlzdC5yZW1vdmUobykpO2Vsc2V7bGV0IGU9LTE9PT1vLmluZGV4T2YoIi0iKT92b2lkIDA6RWwuRGFzaENhc2U7aWYobnVsbD09aSluZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlclJlbW92ZVN0eWxlKyssYT90LnJlbW92ZVN0eWxlKG4sbyxlKTpuLnN0eWxlLnJlbW92ZVByb3BlcnR5KG8pO2Vsc2V7Y29uc3Qgcj0ic3RyaW5nIj09dHlwZW9mIGkmJmkuZW5kc1dpdGgoIiFpbXBvcnRhbnQiKTtyJiYoaT1pLnNsaWNlKDAsLTEwKSxlfD1FbC5JbXBvcnRhbnQpLG5nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyU2V0U3R5bGUrKyxhP3Quc2V0U3R5bGUobixvLGksZSk6KG5nRGV2TW9kZSYmeG4obi5zdHlsZSwiSFRNTEVsZW1lbnQgZXhwZWN0ZWQiKSxuLnN0eWxlLnNldFByb3BlcnR5KG8saSxyPyJpbXBvcnRhbnQiOiIiKSl9fX0pKG8scixjaSh0YSgpLG4pLGksYSl9fWZ1bmN0aW9uIHZ1KHQsZSxuLG8saSxhKXtjb25zdCByPW51bGw9PT1lO2xldCBzO2Zvcig7aT4wOyl7Y29uc3QgZT10W2ldLGE9QXJyYXkuaXNBcnJheShlKSxsPWE/ZVsxXTplLGM9bnVsbD09PWw7bGV0IGQ9bltpKzFdO2Q9PT1TYyYmKGQ9Yz9Rbjp2b2lkIDApO2xldCBwPWM/YnIoZCxvKTpsPT09bz9kOnZvaWQgMDtpZihhJiYheHUocCkmJihwPWJyKGUsbykpLHh1KHApJiYocz1wLHIpKXJldHVybiBzO2NvbnN0IG09dFtpKzFdO2k9cj9BYyhtKTp6YyhtKX1pZihudWxsIT09ZSl7bGV0IHQ9YT9lLnJlc2lkdWFsQ2xhc3NlczplLnJlc2lkdWFsU3R5bGVzO251bGwhPXQmJihzPWJyKHQsbykpfXJldHVybiBzfWZ1bmN0aW9uIHh1KHQpe3JldHVybiB2b2lkIDAhPT10fWZ1bmN0aW9uIE91KHQsZSl7cmV0dXJuIDAhPSh0LmZsYWdzJihlPzE2OjMyKSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIFB1KHQsZT0iIil7Y29uc3Qgbj14aSgpLG89T2koKSxpPXQrdm87bmdEZXZNb2RlJiZnbih6aSgpLG8uYmluZGluZ1N0YXJ0SW5kZXgsInRleHQgbm9kZXMgc2hvdWxkIGJlIGNyZWF0ZWQgYmVmb3JlIGFueSBiaW5kaW5ncyIpLG5nRGV2TW9kZSYmd24obixpKTtjb25zdCBhPW8uZmlyc3RDcmVhdGVQYXNzP19kKG8saSwxLGUsbnVsbCk6by5kYXRhW2ldLHI9bltpXT1CbChuWzExXSxlKTtyYyhvLG4scixhKSxEaShhLCExKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gd3UodCl7cmV0dXJuIGt1KCIiLHQsIiIpLHd1fWZ1bmN0aW9uIGt1KHQsZSxuKXtjb25zdCBvPXhpKCksaT1DbShvLHQsZSxuKTtyZXR1cm4gaSE9PVNjJiZncChvLHRhKCksaSksa3V9ZnVuY3Rpb24gU3UodCxlLG4sbyxpKXtjb25zdCBhPXhpKCkscj1NbShhLHQsZSxuLG8saSk7cmV0dXJuIHIhPT1TYyYmZ3AoYSx0YSgpLHIpLFN1fWZ1bmN0aW9uIER1KHQsZSxuLG8saSxhLHIpe2NvbnN0IHM9eGkoKSxsPXZtKHMsdCxlLG4sbyxpLGEscik7cmV0dXJuIGwhPT1TYyYmZ3Aocyx0YSgpLGwpLER1fWZ1bmN0aW9uIFJ1KHQsZSxuLG8saSxhLHIscyxsKXtjb25zdCBjPXhpKCksZD14bShjLHQsZSxuLG8saSxhLHIscyxsKTtyZXR1cm4gZCE9PVNjJiZncChjLHRhKCksZCksUnV9ZnVuY3Rpb24gRXUodCxlLG4sbyxpLGEscixzLGwsYyxkKXtjb25zdCBwPXhpKCksbT1PbShwLHQsZSxuLG8saSxhLHIscyxsLGMsZCk7cmV0dXJuIG0hPT1TYyYmZ3AocCx0YSgpLG0pLEV1fWZ1bmN0aW9uIEF1KHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0pe2NvbnN0IGY9eGkoKSx1PVBtKGYsdCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSk7cmV0dXJuIHUhPT1TYyYmZ3AoZix0YSgpLHUpLEF1fWZ1bmN0aW9uIFR1KHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sZix1KXtjb25zdCBnPXhpKCksaD13bShnLHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sZix1KTtyZXR1cm4gaCE9PVNjJiZncChnLHRhKCksaCksVHV9ZnVuY3Rpb24gTnUodCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSxmLHUsZyxoKXtjb25zdCBiPXhpKCkseT1rbShiLHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sZix1LGcsaCk7cmV0dXJuIHkhPT1TYyYmZ3AoYix0YSgpLHkpLE51fWZ1bmN0aW9uIHp1KHQpe2NvbnN0IGU9eGkoKSxuPV9tKGUsdCk7cmV0dXJuIG4hPT1TYyYmZ3AoZSx0YSgpLG4pLHp1fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBJdSh0LGUsbil7Z3UoaHIsZnUsQ20oeGkoKSx0LGUsbiksITApfWZ1bmN0aW9uIEh1KHQsZSxuLG8saSl7Z3UoaHIsZnUsTW0oeGkoKSx0LGUsbixvLGkpLCEwKX1mdW5jdGlvbiBGdSh0LGUsbixvLGksYSxyKXtndShocixmdSx2bSh4aSgpLHQsZSxuLG8saSxhLHIpLCEwKX1mdW5jdGlvbiBMdSh0LGUsbixvLGksYSxyLHMsbCl7Z3UoaHIsZnUseG0oeGkoKSx0LGUsbixvLGksYSxyLHMsbCksITApfWZ1bmN0aW9uIEJ1KHQsZSxuLG8saSxhLHIscyxsLGMsZCl7Z3UoaHIsZnUsT20oeGkoKSx0LGUsbixvLGksYSxyLHMsbCxjLGQpLCEwKX1mdW5jdGlvbiBWdSh0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtKXtndShocixmdSxQbSh4aSgpLHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0pLCEwKX1mdW5jdGlvbiBqdSh0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtLGYsdSl7Z3UoaHIsZnUsd20oeGkoKSx0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtLGYsdSksITApfWZ1bmN0aW9uIFV1KHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sZix1LGcsaCl7Z3UoaHIsZnUsa20oeGkoKSx0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtLGYsdSxnLGgpLCEwKX1mdW5jdGlvbiBXdSh0KXtndShocixmdSxfbSh4aSgpLHQpLCEwKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gR3UodCxlLG4pe2R1KENtKHhpKCksdCxlLG4pKX1mdW5jdGlvbiBZdSh0LGUsbixvLGkpe2R1KE1tKHhpKCksdCxlLG4sbyxpKSl9ZnVuY3Rpb24gcXUodCxlLG4sbyxpLGEscil7ZHUodm0oeGkoKSx0LGUsbixvLGksYSxyKSl9ZnVuY3Rpb24gWnUodCxlLG4sbyxpLGEscixzLGwpe2R1KHhtKHhpKCksdCxlLG4sbyxpLGEscixzLGwpKX1mdW5jdGlvbiBYdSh0LGUsbixvLGksYSxyLHMsbCxjLGQpe2R1KE9tKHhpKCksdCxlLG4sbyxpLGEscixzLGwsYyxkKSl9ZnVuY3Rpb24gS3UodCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSl7ZHUoUG0oeGkoKSx0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtKSl9ZnVuY3Rpb24gSnUodCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSxmLHUpe2R1KHdtKHhpKCksdCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSxmLHUpKX1mdW5jdGlvbiBRdSh0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtLGYsdSxnLGgpe2R1KGttKHhpKCksdCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSxmLHUsZyxoKSl9ZnVuY3Rpb24gJHUodCl7ZHUoX20oeGkoKSx0KSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIHRnKHQsZSxuLG8saSl7cmV0dXJuIHV1KHQsQ20oeGkoKSxlLG4sbyksaSwhMSksdGd9ZnVuY3Rpb24gZWcodCxlLG4sbyxpLGEscil7cmV0dXJuIHV1KHQsTW0oeGkoKSxlLG4sbyxpLGEpLHIsITEpLGVnfWZ1bmN0aW9uIG5nKHQsZSxuLG8saSxhLHIscyxsKXtyZXR1cm4gdXUodCx2bSh4aSgpLGUsbixvLGksYSxyLHMpLGwsITEpLG5nfWZ1bmN0aW9uIG9nKHQsZSxuLG8saSxhLHIscyxsLGMsZCl7cmV0dXJuIHV1KHQseG0oeGkoKSxlLG4sbyxpLGEscixzLGwsYyksZCwhMSksb2d9ZnVuY3Rpb24gaWcodCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSl7cmV0dXJuIHV1KHQsT20oeGkoKSxlLG4sbyxpLGEscixzLGwsYyxkLHApLG0sITEpLGlnfWZ1bmN0aW9uIGFnKHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sZix1KXtyZXR1cm4gdXUodCxQbSh4aSgpLGUsbixvLGksYSxyLHMsbCxjLGQscCxtLGYpLHUsITEpLGFnfWZ1bmN0aW9uIHJnKHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sZix1LGcsaCl7cmV0dXJuIHV1KHQsd20oeGkoKSxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSxmLHUsZyksaCwhMSkscmd9ZnVuY3Rpb24gc2codCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSxmLHUsZyxoLGIseSl7cmV0dXJuIHV1KHQsa20oeGkoKSxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSxmLHUsZyxoLGIpLHksITEpLHNnfWZ1bmN0aW9uIGxnKHQsZSxuKXtyZXR1cm4gdXUodCxfbSh4aSgpLGUpLG4sITEpLGxnfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBjZyh0LGUsbil7Y29uc3Qgbz14aSgpLGk9SGkoKTtpZih1bShvLGksZSkpe2NvbnN0IGE9T2koKSxyPW5hKCk7emQoYSxyLG8sdCxlLG9bMTFdLG4sITApLG5nRGV2TW9kZSYmbHAoYS5kYXRhLHIsdCxpKX1yZXR1cm4gY2d9ZnVuY3Rpb24gZGcodCxlLG4pe2NvbnN0IG89eGkoKSxpPUhpKCk7aWYodW0obyxpLGUpKXtjb25zdCBhPU9pKCkscj1uYSgpO3pkKGEscixvLHQsZSxtcChqaShhLmRhdGEpLHIsbyksbiwhMCksbmdEZXZNb2RlJiZscChhLmRhdGEscix0LGkpfXJldHVybiBkZ30KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmKFhuLm5nSTE4bkNsb3N1cmVNb2RlPSJ1bmRlZmluZWQiIT10eXBlb2YgZ29vZyYmImZ1bmN0aW9uIj09dHlwZW9mIGdvb2cuZ2V0TXNnKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgcGc9dm9pZCAwO3ZhciBtZz1bImVuIixbWyJhIiwicCJdLFsiQU0iLCJQTSJdLHBnXSxbWyJBTSIsIlBNIl0scGcscGddLFtbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSxbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLFsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl1dLHBnLFtbIkoiLCJGIiwiTSIsIkEiLCJNIiwiSiIsIkoiLCJBIiwiUyIsIk8iLCJOIiwiRCJdLFsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sWyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdXSxwZyxbWyJCIiwiQSJdLFsiQkMiLCJBRCJdLFsiQmVmb3JlIENocmlzdCIsIkFubm8gRG9taW5pIl1dLDAsWzYsMF0sWyJNL2QveXkiLCJNTU0gZCwgeSIsIk1NTU0gZCwgeSIsIkVFRUUsIE1NTU0gZCwgeSJdLFsiaDptbSBhIiwiaDptbTpzcyBhIiwiaDptbTpzcyBhIHoiLCJoOm1tOnNzIGEgenp6eiJdLFsiezF9LCB7MH0iLHBnLCJ7MX0gJ2F0JyB7MH0iLHBnXSxbIi4iLCIsIiwiOyIsIiUiLCIrIiwiLSIsIkUiLCLDlyIsIuKAsCIsIuKIniIsIk5hTiIsIjoiXSxbIiMsIyMwLiMjIyIsIiMsIyMwJSIsIsKkIywjIzAuMDAiLCIjRTAiXSwiVVNEIiwiJCIsIlVTIERvbGxhciIse30sImx0ciIsZnVuY3Rpb24gZmcodCl7Y29uc3QgZT1NYXRoLmZsb29yKE1hdGguYWJzKHQpKSxuPXQudG9TdHJpbmcoKS5yZXBsYWNlKC9eW14uXSpcLj8vLCIiKS5sZW5ndGg7cmV0dXJuIDE9PT1lJiYwPT09bj8xOjV9XTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovbGV0IHVnPXt9O2Z1bmN0aW9uIGdnKHQpe2NvbnN0IGU9KGZ1bmN0aW9uIG4odCl7cmV0dXJuIHQudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9fL2csIi0iKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSh0KTtsZXQgbz1iZyhlKTtpZihvKXJldHVybiBvO2NvbnN0IGk9ZS5zcGxpdCgiLSIpWzBdO2lmKG89YmcoaSksbylyZXR1cm4gbztpZigiZW4iPT09aSlyZXR1cm4gbWc7dGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIGxvY2FsZSBkYXRhIGZvciB0aGUgbG9jYWxlICIke3R9Ii5gKX1mdW5jdGlvbiBoZyh0KXtyZXR1cm4gZ2codClbeWcuUGx1cmFsQ2FzZV19ZnVuY3Rpb24gYmcodCl7cmV0dXJuIHQgaW4gdWd8fCh1Z1t0XT1Ybi5uZyYmWG4ubmcuY29tbW9uJiZYbi5uZy5jb21tb24ubG9jYWxlcyYmWG4ubmcuY29tbW9uLmxvY2FsZXNbdF0pLHVnW3RdfXZhciB5ZzshKGZ1bmN0aW9uKHQpe3RbdC5Mb2NhbGVJZD0wXT0iTG9jYWxlSWQiLHRbdC5EYXlQZXJpb2RzRm9ybWF0PTFdPSJEYXlQZXJpb2RzRm9ybWF0Iix0W3QuRGF5UGVyaW9kc1N0YW5kYWxvbmU9Ml09IkRheVBlcmlvZHNTdGFuZGFsb25lIix0W3QuRGF5c0Zvcm1hdD0zXT0iRGF5c0Zvcm1hdCIsdFt0LkRheXNTdGFuZGFsb25lPTRdPSJEYXlzU3RhbmRhbG9uZSIsdFt0Lk1vbnRoc0Zvcm1hdD01XT0iTW9udGhzRm9ybWF0Iix0W3QuTW9udGhzU3RhbmRhbG9uZT02XT0iTW9udGhzU3RhbmRhbG9uZSIsdFt0LkVyYXM9N109IkVyYXMiLHRbdC5GaXJzdERheU9mV2Vlaz04XT0iRmlyc3REYXlPZldlZWsiLHRbdC5XZWVrZW5kUmFuZ2U9OV09IldlZWtlbmRSYW5nZSIsdFt0LkRhdGVGb3JtYXQ9MTBdPSJEYXRlRm9ybWF0Iix0W3QuVGltZUZvcm1hdD0xMV09IlRpbWVGb3JtYXQiLHRbdC5EYXRlVGltZUZvcm1hdD0xMl09IkRhdGVUaW1lRm9ybWF0Iix0W3QuTnVtYmVyU3ltYm9scz0xM109Ik51bWJlclN5bWJvbHMiLHRbdC5OdW1iZXJGb3JtYXRzPTE0XT0iTnVtYmVyRm9ybWF0cyIsdFt0LkN1cnJlbmN5Q29kZT0xNV09IkN1cnJlbmN5Q29kZSIsdFt0LkN1cnJlbmN5U3ltYm9sPTE2XT0iQ3VycmVuY3lTeW1ib2wiLHRbdC5DdXJyZW5jeU5hbWU9MTddPSJDdXJyZW5jeU5hbWUiLHRbdC5DdXJyZW5jaWVzPTE4XT0iQ3VycmVuY2llcyIsdFt0LkRpcmVjdGlvbmFsaXR5PTE5XT0iRGlyZWN0aW9uYWxpdHkiLHRbdC5QbHVyYWxDYXNlPTIwXT0iUGx1cmFsQ2FzZSIsdFt0LkV4dHJhRGF0YT0yMV09IkV4dHJhRGF0YSJ9KSh5Z3x8KHlnPXt9KSk7Y29uc3QgX2c9WyJ6ZXJvIiwib25lIiwidHdvIiwiZmV3IiwibWFueSJdO2NvbnN0IENnPSJlbi1VUyIsTWc9e21hcmtlcjoiZWxlbWVudCJ9LHZnPXttYXJrZXI6IklDVSJ9O3ZhciB4ZzshKGZ1bmN0aW9uKHQpe3RbdC5TSElGVD0yXT0iU0hJRlQiLHRbdC5BUFBFTkRfRUFHRVJMWT0xXT0iQVBQRU5EX0VBR0VSTFkiLHRbdC5DT01NRU5UPTJdPSJDT01NRU5UIn0pKHhnfHwoeGc9e30pKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmxldCBPZz1DZztmdW5jdGlvbiBQZyh0KXt4bih0LCJFeHBlY3RlZCBsb2NhbGVJZCB0byBiZSBkZWZpbmVkIiksInN0cmluZyI9PXR5cGVvZiB0JiYoT2c9dC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL18vZywiLSIpKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIHdnKHQsZSxuKXtjb25zdCBvPWUuaW5zZXJ0QmVmb3JlSW5kZXgsaT1BcnJheS5pc0FycmF5KG8pP29bMF06bztyZXR1cm4gbnVsbD09PWk/bmModCwwLG4pOihuZ0Rldk1vZGUmJnduKG4saSksbGkobltpXSkpfWZ1bmN0aW9uIGtnKHQsZSxuLG8saSl7Y29uc3QgYT1lLmluc2VydEJlZm9yZUluZGV4O2lmKEFycmF5LmlzQXJyYXkoYSkpe25nRGV2TW9kZSYmUG4obyk7bGV0IHI9byxzPW51bGw7aWYoMyZlLnR5cGV8fChzPXIscj1pKSxudWxsIT09ciYmMD09KDImZS5mbGFncykpZm9yKGxldCBlPTE7ZTxhLmxlbmd0aDtlKyspe0psKHQscixuW2FbZV1dLHMsITEpfX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIFNnKHQsZSl7aWYobmdEZXZNb2RlJiZnbihlLmluc2VydEJlZm9yZUluZGV4LG51bGwsIldlIGV4cGVjdCB0aGF0IGluc2VydEJlZm9yZUluZGV4IGlzIG5vdCBzZXQiKSx0LnB1c2goZSksdC5sZW5ndGg+MSlmb3IobGV0IG49dC5sZW5ndGgtMjtuPj0wO24tLSl7Y29uc3Qgbz10W25dO0RnKG8pfHxSZyhvLGUpJiZudWxsPT09RWcobykmJkFnKG8sZS5pbmRleCl9fWZ1bmN0aW9uIERnKHQpe3JldHVybiEoNjQmdC50eXBlKX1mdW5jdGlvbiBSZyh0LGUpe3JldHVybiBEZyhlKXx8dC5pbmRleD5lLmluZGV4fWZ1bmN0aW9uIEVnKHQpe2NvbnN0IGU9dC5pbnNlcnRCZWZvcmVJbmRleDtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lWzBdOmV9ZnVuY3Rpb24gQWcodCxlKXtjb25zdCBuPXQuaW5zZXJ0QmVmb3JlSW5kZXg7QXJyYXkuaXNBcnJheShuKT9uWzBdPWU6KGFjKHdnLGtnKSx0Lmluc2VydEJlZm9yZUluZGV4PWUpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBUZyh0LGUpe2NvbnN0IG49dC5kYXRhW2VdO2lmKG51bGw9PT1ufHwic3RyaW5nIj09dHlwZW9mIG4pcmV0dXJuIG51bGw7IW5nRGV2TW9kZXx8bi5oYXNPd25Qcm9wZXJ0eSgidFZpZXdzIil8fG4uaGFzT3duUHJvcGVydHkoImN1cnJlbnRDYXNlTFZpZXdJbmRleCIpfHxPbigiV2UgZXhwZWN0IHRvIGdldCAnbnVsbCd8J1RJY3UnfCdUSWN1Q29udGFpbmVyJywgYnV0IGdvdDogIituKTtjb25zdCBvPW4uaGFzT3duUHJvcGVydHkoImN1cnJlbnRDYXNlTFZpZXdJbmRleCIpP246bi52YWx1ZTtyZXR1cm4gbmdEZXZNb2RlJiZObyhvKSxvfWZ1bmN0aW9uIE5nKHQsZSxuKXtjb25zdCBvPUNkKHQsbiw2NCxudWxsLG51bGwpO3JldHVybiBTZyhlLG8pLG99ZnVuY3Rpb24gemcodCxlKXtjb25zdCBuPWVbdC5jdXJyZW50Q2FzZUxWaWV3SW5kZXhdO3JldHVybiBudWxsPT09bj9uOm48MD9+bjpufWZ1bmN0aW9uIElnKHQpe3JldHVybiB0Pj4+MTd9ZnVuY3Rpb24gSGcodCl7cmV0dXJuKDEzMTA3MCZ0KT4+PjF9ZnVuY3Rpb24gRmcodCl7cmV0dXJuIDEmdH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmxldCBMZz0wLEJnPTA7ZnVuY3Rpb24gVmcodCxlLG4sbyl7bmdEZXZNb2RlJiZQbihvKTtjb25zdCBpPW5bMTFdO2xldCBhLHI9bnVsbDtmb3IobGV0IHM9MDtzPGUubGVuZ3RoO3MrKyl7Y29uc3QgbD1lW3NdO2lmKCJzdHJpbmciPT10eXBlb2YgbCl7Y29uc3QgdD1lWysrc107bnVsbD09PW5bdF0mJihuZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlckNyZWF0ZVRleHROb2RlKyssbmdEZXZNb2RlJiZ3bihuLHQpLG5bdF09QmwoaSxsKSl9ZWxzZSBpZigibnVtYmVyIj09dHlwZW9mIGwpc3dpdGNoKDEmbCl7Y2FzZSAwOmNvbnN0IGM9SWcobCk7bGV0IGQscDtpZihudWxsPT09ciYmKHI9YyxhPXRjKGksbykpLGM9PT1yPyhkPW8scD1hKTooZD1udWxsLHA9bGkobltjXSkpLG51bGwhPT1wKXtuZ0Rldk1vZGUmJlBuKHApO2NvbnN0IGU9SGcobCk7bmdEZXZNb2RlJiZNbihlLHZvLCJNaXNzaW5nIHJlZiIpO2NvbnN0IG89bltlXTtuZ0Rldk1vZGUmJlBuKG8pLEpsKGkscCxvLGQsITEpO2NvbnN0IGE9VGcodCxlKTtpZihudWxsIT09YSYmIm9iamVjdCI9PXR5cGVvZiBhKXtuZ0Rldk1vZGUmJk5vKGEpO2NvbnN0IGU9emcoYSxuKTtudWxsIT09ZSYmVmcodCxhLmNyZWF0ZVtlXSxuLG5bYS5hbmNob3JJZHhdKX19YnJlYWs7Y2FzZSAxOmNvbnN0IG09ZVsrK3NdLGY9ZVsrK3NdO1pkKGksY2kobD4+PjEsbiksbnVsbCxudWxsLG0sZixudWxsKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGRldGVybWluZSB0aGUgdHlwZSBvZiBtdXRhdGUgb3BlcmF0aW9uIGZvciAiJHtsfSJgKX1lbHNlIHN3aXRjaChsKXtjYXNlIHZnOmNvbnN0IHQ9ZVsrK3NdLG89ZVsrK3NdO2lmKG51bGw9PT1uW29dKXtuZ0Rldk1vZGUmJmduKHR5cGVvZiB0LCJzdHJpbmciLGBFeHBlY3RlZCAiJHt0fSIgdG8gYmUgYSBjb21tZW50IG5vZGUgdmFsdWVgKSxuZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlckNyZWF0ZUNvbW1lbnQrKyxuZ0Rldk1vZGUmJlZvKG4sbyk7YWwobltvXT1qbChpLHQpLG4pfWJyZWFrO2Nhc2UgTWc6Y29uc3QgYT1lWysrc10scj1lWysrc107aWYobnVsbD09PW5bcl0pe25nRGV2TW9kZSYmZ24odHlwZW9mIGEsInN0cmluZyIsYEV4cGVjdGVkICIke2F9IiB0byBiZSBhbiBlbGVtZW50IG5vZGUgdGFnIG5hbWVgKSxuZ0Rldk1vZGUmJm5nRGV2TW9kZS5yZW5kZXJlckNyZWF0ZUVsZW1lbnQrKyxuZ0Rldk1vZGUmJlZvKG4scik7YWwobltyXT1VbChpLGEsbnVsbCksbil9YnJlYWs7ZGVmYXVsdDpuZ0Rldk1vZGUmJk9uKGBVbmFibGUgdG8gZGV0ZXJtaW5lIHRoZSB0eXBlIG9mIG11dGF0ZSBvcGVyYXRpb24gZm9yICIke2x9ImApfX19ZnVuY3Rpb24gamcodCxlLG4sbyxpKXtmb3IobGV0IGE9MDthPG4ubGVuZ3RoO2ErKyl7Y29uc3Qgcj1uW2FdLHM9blsrK2FdO2lmKHImaSl7bGV0IGk9IiI7Zm9yKGxldCByPWErMTtyPD1hK3M7cisrKXtjb25zdCBhPW5bcl07aWYoInN0cmluZyI9PXR5cGVvZiBhKWkrPWE7ZWxzZSBpZigibnVtYmVyIj09dHlwZW9mIGEpaWYoYTwwKWkrPXJuKGVbby1hXSk7ZWxzZXtjb25zdCBzPWE+Pj4yO3N3aXRjaCgzJmEpe2Nhc2UgMTpjb25zdCBhPW5bKytyXSxsPW5bKytyXSxjPXQuZGF0YVtzXTtuZ0Rldk1vZGUmJnhuKGMsIkV4cGVydGluZyBUTm9kZSBvciBzdHJpbmciKSwic3RyaW5nIj09dHlwZW9mIGM/WmQoZVsxMV0sZVtzXSxudWxsLGMsYSxpLGwpOnpkKHQsYyxlLGEsaSxlWzExXSxsLCExKTticmVhaztjYXNlIDA6Y29uc3QgZD1lW3NdO251bGwhPT1kJiZWbChlWzExXSxkLGkpO2JyZWFrO2Nhc2UgMjpXZyh0LFRnKHQscyksZSxpKTticmVhaztjYXNlIDM6VWcodCxUZyh0LHMpLG8sZSl9fX19ZWxzZXtjb25zdCBpPW5bYSsxXTtpZihpPjAmJjM9PSgzJmkpKXtjb25zdCBuPVRnKHQsaT4+PjIpO2Vbbi5jdXJyZW50Q2FzZUxWaWV3SW5kZXhdPDAmJlVnKHQsbixvLGUpfX1hKz1zfX1mdW5jdGlvbiBVZyh0LGUsbixvKXtuZ0Rldk1vZGUmJnduKG8sZS5jdXJyZW50Q2FzZUxWaWV3SW5kZXgpO2xldCBpPW9bZS5jdXJyZW50Q2FzZUxWaWV3SW5kZXhdO2lmKG51bGwhPT1pKXtsZXQgYT1MZztpPDAmJihpPW9bZS5jdXJyZW50Q2FzZUxWaWV3SW5kZXhdPX5pLGE9LTEpLGpnKHQsbyxlLnVwZGF0ZVtpXSxuLGEpfX1mdW5jdGlvbiBXZyh0LGUsbixvKXtjb25zdCBpPShmdW5jdGlvbiBhKHQsZSl7bGV0IG49dC5jYXNlcy5pbmRleE9mKGUpO2lmKC0xPT09bilzd2l0Y2godC50eXBlKXtjYXNlIDE6e2NvbnN0IG89KGZ1bmN0aW9uIGkodCxlKXtjb25zdCBuPWhnKGUpKHBhcnNlSW50KHQsMTApKSxvPV9nW25dO3JldHVybiB2b2lkIDAhPT1vP286Im90aGVyIn0pKGUsKGZ1bmN0aW9uIG8oKXtyZXR1cm4gT2d9KSgpKTtuPXQuY2FzZXMuaW5kZXhPZihvKSwtMT09PW4mJiJvdGhlciIhPT1vJiYobj10LmNhc2VzLmluZGV4T2YoIm90aGVyIikpO2JyZWFrfWNhc2UgMDpuPXQuY2FzZXMuaW5kZXhPZigib3RoZXIiKX1yZXR1cm4tMT09PW4/bnVsbDpufQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKGUsbyk7aWYoemcoZSxuKSE9PWkmJihHZyh0LGUsbiksbltlLmN1cnJlbnRDYXNlTFZpZXdJbmRleF09bnVsbD09PWk/bnVsbDp+aSxudWxsIT09aSkpe2NvbnN0IG89bltlLmFuY2hvcklkeF07byYmKG5nRGV2TW9kZSYmUG4obyksVmcodCxlLmNyZWF0ZVtpXSxuLG8pKX19ZnVuY3Rpb24gR2codCxlLG4pe2xldCBvPXpnKGUsbik7aWYobnVsbCE9PW8pe2NvbnN0IGk9ZS5yZW1vdmVbb107Zm9yKGxldCBlPTA7ZTxpLmxlbmd0aDtlKyspe2NvbnN0IG89aVtlXTtpZihvPjApe2NvbnN0IHQ9Y2kobyxuKTtudWxsIT09dCYmZGMoblsxMV0sdCl9ZWxzZSBHZyh0LFRnKHQsfm8pLG4pfX19ZnVuY3Rpb24gWWcoKXtjb25zdCB0PVtdO2xldCBlLG4sbz0tMTtmdW5jdGlvbiBpKHQsZSl7bz0wO2NvbnN0IGk9emcodCxlKTtudWxsIT09aT8obmdEZXZNb2RlJiZtbihpLDAsdC5jYXNlcy5sZW5ndGgtMSksbj10LnJlbW92ZVtpXSk6bj1Rbn1mdW5jdGlvbiBhKCl7aWYobzxuLmxlbmd0aCl7Y29uc3Qgcj1uW28rK107aWYobmdEZXZNb2RlJiZwbihyLCJFeHBlY3RpbmcgT3BDb2RlIG51bWJlciIpLHI+MCl7Y29uc3QgdD1lW3JdO3JldHVybiBuZ0Rldk1vZGUmJlBuKHQpLHR9e3QucHVzaChvLG4pO2NvbnN0IHM9ZVsxXS5kYXRhW35yXTtyZXR1cm4gbmdEZXZNb2RlJiZObyhzKSxpKHMsZSksYSgpfX1yZXR1cm4gMD09PXQubGVuZ3RoP251bGw6KG49dC5wb3AoKSxvPXQucG9wKCksYSgpKX1yZXR1cm4gZnVuY3Rpb24gcihuLG8pe2ZvcihlPW87dC5sZW5ndGg7KXQucG9wKCk7cmV0dXJuIG5nRGV2TW9kZSYmRW8obixvKSxpKG4udmFsdWUsbyksYX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIHFnKHQpe2NvbnN0IGU9dHx8KEFycmF5LmlzQXJyYXkodGhpcyk/dGhpczpbXSk7bGV0IG49W107Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IG89ZVt0KytdLGk9KG8meGcuQVBQRU5EX0VBR0VSTFkpPT09eGcuQVBQRU5EX0VBR0VSTFksYT1vPj4+eGcuU0hJRlQ7bi5wdXNoKGBsVmlld1ske2F9XSA9IGRvY3VtZW50LiR7KG8meGcuQ09NTUVOVCk9PT14Zy5DT01NRU5UPyJjcmVhdGVDb21tZW50IjoiY3JlYXRlVGV4dCJ9KCR7SlNPTi5zdHJpbmdpZnkoZVt0XSl9KTtgKSxpJiZuLnB1c2goYHBhcmVudC5hcHBlbmRDaGlsZChsVmlld1ske2F9XSk7YCl9cmV0dXJuIG59ZnVuY3Rpb24gWmcodCl7Y29uc3QgZT1uZXcgSmcodHx8KEFycmF5LmlzQXJyYXkodGhpcyk/dGhpczpbXSkpO2xldCBuPVtdO2Z1bmN0aW9uIG8odCl7Y29uc3Qgbj10Pj4+Mjtzd2l0Y2goMyZ0KXtjYXNlIDA6cmV0dXJuYChsVmlld1ske259XSBhcyBUZXh0KS50ZXh0Q29udGVudCA9ICQkJGA7Y2FzZSAxOmNvbnN0IHQ9ZS5jb25zdW1lU3RyaW5nKCksbz1lLmNvbnN1bWVGdW5jdGlvbigpO3JldHVybmAobFZpZXdbJHtufV0gYXMgRWxlbWVudCkuc2V0QXR0cmlidXRlKCcke3R9JywgJHtvP2AoJHtvfSkoJCQkKWA6IiQkJCJ9KWA7Y2FzZSAyOnJldHVybmBpY3VTd2l0Y2hDYXNlKCR7bn0sICQkJClgO2Nhc2UgMzpyZXR1cm5gaWN1VXBkYXRlQ2FzZSgke259KWB9dGhyb3cgbmV3IEVycm9yKCJ1bmV4cGVjdGVkIE9wQ29kZSIpfWZvcig7ZS5oYXNNb3JlKCk7KXtsZXQgdD1lLmNvbnN1bWVOdW1iZXIoKSxpPWUuY29uc3VtZU51bWJlcigpO2NvbnN0IGE9ZS5pK2kscj1bXTtsZXQgcz0iIjtmb3IoO2UuaTxhOyl7bGV0IHQ9ZS5jb25zdW1lTnVtYmVyT3JTdHJpbmcoKTtpZigic3RyaW5nIj09dHlwZW9mIHQpcys9dDtlbHNlIGlmKHQ8MClzKz0iJHtsVmlld1tpIit0KyJdfSI7ZWxzZXtjb25zdCBlPW8odCk7ci5wdXNoKGUucmVwbGFjZSgiJCQkIiwiYCIrcysiYCIpKyI7Iikscz0iIn19bi5wdXNoKGBpZiAobWFzayAmIDBiJHt0LnRvU3RyaW5nKDIpfSkgeyAke3Iuam9pbigiICIpfSB9YCl9cmV0dXJuIG59ZnVuY3Rpb24gWGcodCl7Y29uc3QgZT1uZXcgSmcodHx8KEFycmF5LmlzQXJyYXkodGhpcyk/dGhpczpbXSkpO2xldCBuPVtdO2Z1bmN0aW9uIG8odCl7Y29uc3Qgbj1JZyh0KSxvPUhnKHQpO3N3aXRjaChGZyh0KSl7Y2FzZSAwOnJldHVybmAobFZpZXdbJHtufV0gYXMgRWxlbWVudCkuYXBwZW5kQ2hpbGQobFZpZXdbJHtpfV0pYDtjYXNlIDE6cmV0dXJuYChsVmlld1ske299XSBhcyBFbGVtZW50KS5zZXRBdHRyaWJ1dGUoIiR7ZS5jb25zdW1lU3RyaW5nKCl9IiwgIiR7ZS5jb25zdW1lU3RyaW5nKCl9IilgfXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBPcENvZGU6ICIrRmcodCkpfWxldCBpPS0xO2Zvcig7ZS5oYXNNb3JlKCk7KXtsZXQgdD1lLmNvbnN1bWVOdW1iZXJTdHJpbmdPck1hcmtlcigpO2lmKHQ9PT12Zyl7Y29uc3QgdD1lLmNvbnN1bWVTdHJpbmcoKTtpPWUuY29uc3VtZU51bWJlcigpLG4ucHVzaChgbFZpZXdbJHtpfV0gPSBkb2N1bWVudC5jcmVhdGVDb21tZW50KCIke3R9IilgKX1lbHNlIGlmKHQ9PT1NZyl7Y29uc3QgdD1lLmNvbnN1bWVTdHJpbmcoKTtpPWUuY29uc3VtZU51bWJlcigpLG4ucHVzaChgbFZpZXdbJHtpfV0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCIke3R9IilgKX1lbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgdClpPWUuY29uc3VtZU51bWJlcigpLG4ucHVzaChgbFZpZXdbJHtpfV0gPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiJHt0fSIpYCk7ZWxzZXtpZigibnVtYmVyIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHZhbHVlIik7e2NvbnN0IGU9byh0KTtlJiZuLnB1c2goZSl9fX1yZXR1cm4gbn1mdW5jdGlvbiBLZyh0KXtjb25zdCBlPXR8fChBcnJheS5pc0FycmF5KHRoaXMpP3RoaXM6W10pO2xldCBuPVtdO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXtjb25zdCBvPWVbdF07bi5wdXNoKG8+MD9gcmVtb3ZlKGxWaWV3WyR7b31dKWA6YHJlbW92ZU5lc3RlZElDVSgke35vfSlgKX1yZXR1cm4gbn1jbGFzcyBKZ3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmk9MCx0aGlzLmNvZGVzPXR9aGFzTW9yZSgpe3JldHVybiB0aGlzLmk8dGhpcy5jb2Rlcy5sZW5ndGh9Y29uc3VtZU51bWJlcigpe2xldCB0PXRoaXMuY29kZXNbdGhpcy5pKytdO3JldHVybiBwbih0LCJleHBlY3RpbmcgbnVtYmVyIGluIE9wQ29kZSIpLHR9Y29uc3VtZVN0cmluZygpe2xldCB0PXRoaXMuY29kZXNbdGhpcy5pKytdO3JldHVybiBmbih0LCJleHBlY3Rpbmcgc3RyaW5nIGluIE9wQ29kZSIpLHR9Y29uc3VtZUZ1bmN0aW9uKCl7bGV0IHQ9dGhpcy5jb2Rlc1t0aGlzLmkrK107aWYobnVsbD09PXR8fCJmdW5jdGlvbiI9PXR5cGVvZiB0KXJldHVybiB0O3Rocm93IG5ldyBFcnJvcigiZXhwZWN0aW5nIGZ1bmN0aW9uIGluIE9wQ29kZSIpfWNvbnN1bWVOdW1iZXJPclN0cmluZygpe2xldCB0PXRoaXMuY29kZXNbdGhpcy5pKytdO3JldHVybiJzdHJpbmciPT10eXBlb2YgdHx8cG4odCwiZXhwZWN0aW5nIG51bWJlciBvciBzdHJpbmcgaW4gT3BDb2RlIiksdH1jb25zdW1lTnVtYmVyU3RyaW5nT3JNYXJrZXIoKXtsZXQgdD10aGlzLmNvZGVzW3RoaXMuaSsrXTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHR8fCJudW1iZXIiPT10eXBlb2YgdHx8dD09dmd8fHQ9PU1nfHxwbih0LCJleHBlY3RpbmcgbnVtYmVyLCBzdHJpbmcsIElDVV9NQVJLRVIgb3IgRUxFTUVOVF9NQVJLRVIgaW4gT3BDb2RlIiksdH19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IFFnPS/vv70oXGQrKTo/XGQq77+9L2dpLCRnPS8oe1xzKu+/vVxkKzo/XGQq77+9XHMqLFxzKlxTezZ9XHMqLFtcc1xTXSp9KS9naSx0aD0v77+9KFxkKynvv70vLGVoPS9eXHMqKO+/vVxkKzo/XGQq77+9KVxzKixccyooc2VsZWN0fHBsdXJhbClccyosLyxuaD0v77+9XC8/XCooXGQrOlxkKynvv70vZ2ksb2g9L++/vShcLz9bIypdXGQrKTo/XGQq77+9L2dpLGloPS9cdUU1MDAvZztmdW5jdGlvbiBhaCh0LGUsbixvLGksYSl7Y29uc3Qgcj1TaSgpLHM9W10sbD1bXSxjPVtbXV07bmdEZXZNb2RlJiYoQmMocyxxZyksQmMobCxaZykpO2NvbnN0IGQ9KGZ1bmN0aW9uIG0odCl7cmV0dXJuIHQucmVwbGFjZShpaCwiICIpfSkoaT0oZnVuY3Rpb24gcCh0LGUpe2lmKChmdW5jdGlvbiBuKHQpe3JldHVybi0xPT09dH0pKGUpKXJldHVybiBwaCh0KTt7Y29uc3Qgbj10LmluZGV4T2YoYDoke2V977+9YCkrMitlLnRvU3RyaW5nKCkubGVuZ3RoLG89dC5zZWFyY2gobmV3IFJlZ0V4cChg77+9XFwvXFwqXFxkKzoke2V977+9YCkpO3JldHVybiBwaCh0LnN1YnN0cmluZyhuLG8pKX19KShpLGEpKS5zcGxpdChvaCk7Zm9yKGxldCBhPTA7YTxkLmxlbmd0aDthKyspe2xldCBwPWRbYV07aWYoMD09KDEmYSkpe2NvbnN0IGE9dWgocCk7Zm9yKGxldCBkPTA7ZDxhLmxlbmd0aDtkKyspe2xldCBwPWFbZF07aWYoMD09KDEmZCkpe2NvbnN0IGU9cDtuZ0Rldk1vZGUmJmZuKGUsIlBhcnNlZCBJQ1UgcGFydCBzaG91bGQgYmUgc3RyaW5nIiksIiIhPT1lJiZzaCh0LHIsY1swXSxzLGwsbixlKX1lbHNle2NvbnN0IGE9cDtpZigib2JqZWN0IiE9dHlwZW9mIGEpdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gcGFyc2UgSUNVIGV4cHJlc3Npb24gaW4gIiR7aX0iIG1lc3NhZ2UuYCk7Y29uc3QgZD1yaCh0LHIsY1swXSxuLHMsbmdEZXZNb2RlP2BJQ1UgJHtvfToke2EubWFpbkJpbmRpbmd9YDoiIiwhMCkuaW5kZXg7bmdEZXZNb2RlJiZ2bihkLHZvLCJJbmRleCBtdXN0IGJlIGluIGFic29sdXRlIExWaWV3IG9mZnNldCIpLG1oKHQsbixsLGUsYSxkKX19fWVsc2V7Y29uc3QgZT00Nz09PXAuY2hhckNvZGVBdCgwKSxuPXAuY2hhckNvZGVBdChlPzE6MCk7bmdEZXZNb2RlJiZrbihuLDQyLDM1KTtjb25zdCBvPXZvK051bWJlci5wYXJzZUludChwLnN1YnN0cmluZyhlPzI6MSkpO2lmKGUpYy5zaGlmdCgpLERpKFNpKCksITEpO2Vsc2V7Y29uc3QgZT1OZyh0LGNbMF0sbyk7Yy51bnNoaWZ0KFtdKSxEaShlLCEwKX19fXQuZGF0YVtvXT17Y3JlYXRlOnMsdXBkYXRlOmx9fWZ1bmN0aW9uIHJoKHQsZSxuLG8saSxhLHIpe2NvbnN0IHM9TWQodCxvLDEsbnVsbCk7bGV0IGw9czw8eGcuU0hJRlQsYz1TaSgpO2U9PT1jJiYoYz1udWxsKSxudWxsPT09YyYmKGx8PXhnLkFQUEVORF9FQUdFUkxZKSxyJiYobHw9eGcuQ09NTUVOVCwoZnVuY3Rpb24gZCh0KXt2b2lkIDA9PT1BbCYmKEFsPXQoKSl9KShZZykpLGkucHVzaChsLG51bGw9PT1hPyIiOmEpO2NvbnN0IHA9Q2QodCxzLHI/MzI6MSxudWxsPT09YT9uZ0Rldk1vZGU/Int7P319IjoiIjphLG51bGwpO1NnKG4scCk7Y29uc3QgbT1wLmluZGV4O3JldHVybiBEaShwLCExKSxudWxsIT09YyYmZSE9PWMmJihmdW5jdGlvbiBmKHQsZSl7bmdEZXZNb2RlJiZUbyh0KTtsZXQgbj10Lmluc2VydEJlZm9yZUluZGV4O251bGw9PT1uPyhhYyh3ZyxrZyksbj10Lmluc2VydEJlZm9yZUluZGV4PVtudWxsLGVdKTooZ24oQXJyYXkuaXNBcnJheShuKSwhMCwiRXhwZWN0aW5nIGFycmF5IGhlcmUiKSxuLnB1c2goZSkpfSkoYyxtKSxwfWZ1bmN0aW9uIHNoKHQsZSxuLG8saSxhLHIpe2NvbnN0IHM9ci5tYXRjaChRZyksbD1yaCh0LGUsbixhLG8scz9udWxsOnIsITEpO3MmJmxoKGkscixsLmluZGV4LG51bGwsMCxudWxsKX1mdW5jdGlvbiBsaCh0LGUsbixvLGksYSl7bmdEZXZNb2RlJiZ2bihuLHZvLCJJbmRleCBtdXN0IGJlIGluIGFic29sdXRlIExWaWV3IG9mZnNldCIpO2NvbnN0IHI9dC5sZW5ndGgscz1yKzE7dC5wdXNoKG51bGwsbnVsbCk7Y29uc3QgbD1yKzI7bmdEZXZNb2RlJiZCYyh0LFpnKTtjb25zdCBjPWUuc3BsaXQoUWcpO2xldCBkPTA7Zm9yKGxldCBlPTA7ZTxjLmxlbmd0aDtlKyspe2NvbnN0IG49Y1tlXTtpZigxJmUpe2NvbnN0IGU9aStwYXJzZUludChuLDEwKTt0LnB1c2goLTEtZSksZHw9ZGgoZSl9ZWxzZSIiIT09biYmdC5wdXNoKG4pfXJldHVybiB0LnB1c2gobjw8Mnwobz8xOjApKSxvJiZ0LnB1c2gobyxhKSx0W3JdPWQsdFtzXT10Lmxlbmd0aC1sLGR9ZnVuY3Rpb24gY2godCl7bGV0IGU9MDtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7Y29uc3Qgbz10W25dOyJudW1iZXIiPT10eXBlb2YgbyYmbzwwJiZlKyt9cmV0dXJuIGV9ZnVuY3Rpb24gZGgodCl7cmV0dXJuIDE8PE1hdGgubWluKHQsMzEpfWZ1bmN0aW9uIHBoKHQpe2xldCBlLG4sbz0iIixpPTAsYT0hMTtmb3IoO251bGwhPT0oZT1uaC5leGVjKHQpKTspYT9lWzBdPT09YO+/vS8qJHtufe+/vWAmJihpPWUuaW5kZXgsYT0hMSk6KG8rPXQuc3Vic3RyaW5nKGksZS5pbmRleCtlWzBdLmxlbmd0aCksbj1lWzFdLGE9ITApO3JldHVybiBuZ0Rldk1vZGUmJmduKGEsITEsYFRhZyBtaXNtYXRjaDogdW5hYmxlIHRvIGZpbmQgdGhlIGVuZCBvZiB0aGUgc3ViLXRlbXBsYXRlIGluIHRoZSB0cmFuc2xhdGlvbiAiJHt0fSJgKSxvKz10LnN1YnN0cihpKSxvfWZ1bmN0aW9uIG1oKHQsZSxuLG8saSxhKXtuZ0Rldk1vZGUmJnhuKGksIklDVSBleHByZXNzaW9uIG11c3QgYmUgZGVmaW5lZCIpO2xldCByPTA7Y29uc3Qgcz17dHlwZTppLnR5cGUsY3VycmVudENhc2VMVmlld0luZGV4Ok1kKHQsZSwxLG51bGwpLGFuY2hvcklkeDphLGNhc2VzOltdLGNyZWF0ZTpbXSxyZW1vdmU6W10sdXBkYXRlOltdfTshKGZ1bmN0aW9uIGwodCxlLG4pe3QucHVzaChkaChlLm1haW5CaW5kaW5nKSwyLC0xLWUubWFpbkJpbmRpbmcsbjw8MnwyKX0pKG4saSxhKSwoZnVuY3Rpb24gYyh0LGUsbil7Y29uc3Qgbz10LmRhdGFbZV07bmdEZXZNb2RlJiZnbihudWxsPT09b3x8by5oYXNPd25Qcm9wZXJ0eSgidFZpZXdzIiksITAsIldlIGV4cGVjdCB0byBnZXQgJ251bGwnfCdUSWN1Q29udGFpbmVyJyIpLG51bGw9PT1vP3QuZGF0YVtlXT1uOihuZ0Rldk1vZGUmJmdhKG8sMzIpLG8udmFsdWU9bil9KSh0LGEscyk7Y29uc3QgZD1pLnZhbHVlcztmb3IobGV0IGE9MDthPGQubGVuZ3RoO2ErKyl7Y29uc3QgbD1kW2FdLGM9W107Zm9yKGxldCB0PTA7dDxsLmxlbmd0aDt0Kyspe2NvbnN0IGU9bFt0XTtpZigic3RyaW5nIiE9dHlwZW9mIGUpe2NvbnN0IG49Yy5wdXNoKGUpLTE7bFt0XT1gXHgzYyEtLe+/vSR7bn3vv70tLVx4M2VgfX1yPWdoKHQscyxlLG4sbyxpLmNhc2VzW2FdLGwuam9pbigiIiksYyl8cn1yJiYoZnVuY3Rpb24gcCh0LGUsbil7dC5wdXNoKGUsMSxuPDwyfDMpfSkobixyLGEpfWZ1bmN0aW9uIGZoKHQpe2NvbnN0IGU9W10sbj1bXTtsZXQgbz0xLGk9MDtjb25zdCBhPXVoKHQ9dC5yZXBsYWNlKGVoLChmdW5jdGlvbih0LGUsbil7cmV0dXJuIG89InNlbGVjdCI9PT1uPzA6MSxpPXBhcnNlSW50KGUuc3Vic3RyKDEpLDEwKSwiIn0pKSk7Zm9yKGxldCB0PTA7dDxhLmxlbmd0aDspe2xldCBpPWFbdCsrXS50cmltKCk7MT09PW8mJihpPWkucmVwbGFjZSgvXHMqKD86PSk/KFx3KylccyovLCIkMSIpKSxpLmxlbmd0aCYmZS5wdXNoKGkpO2NvbnN0IHI9dWgoYVt0KytdKTtlLmxlbmd0aD5uLmxlbmd0aCYmbi5wdXNoKHIpfXJldHVybnt0eXBlOm8sbWFpbkJpbmRpbmc6aSxjYXNlczplLHZhbHVlczpufX1mdW5jdGlvbiB1aCh0KXtpZighdClyZXR1cm5bXTtsZXQgZT0wO2NvbnN0IG49W10sbz1bXSxpPS9be31dL2c7bGV0IGE7Zm9yKGkubGFzdEluZGV4PTA7YT1pLmV4ZWModCk7KXtjb25zdCBpPWEuaW5kZXg7aWYoIn0iPT1hWzBdKXtpZihuLnBvcCgpLDA9PW4ubGVuZ3RoKXtjb25zdCBuPXQuc3Vic3RyaW5nKGUsaSk7ZWgudGVzdChuKT9vLnB1c2goZmgobikpOm8ucHVzaChuKSxlPWkrMX19ZWxzZXtpZigwPT1uLmxlbmd0aCl7Y29uc3Qgbj10LnN1YnN0cmluZyhlLGkpO28ucHVzaChuKSxlPWkrMX1uLnB1c2goInsiKX19Y29uc3Qgcj10LnN1YnN0cmluZyhlKTtyZXR1cm4gby5wdXNoKHIpLG99ZnVuY3Rpb24gZ2godCxlLG4sbyxpLGEscixzKXtjb25zdCBsPVtdLGM9W10sZD1bXTtuZ0Rldk1vZGUmJihCYyhsLFhnKSxCYyhjLEtnKSxCYyhkLFpnKSksZS5jYXNlcy5wdXNoKGEpLGUuY3JlYXRlLnB1c2gobCksZS5yZW1vdmUucHVzaChjKSxlLnVwZGF0ZS5wdXNoKGQpO2NvbnN0IHA9YnMoaWkoKSkuZ2V0SW5lcnRCb2R5RWxlbWVudChyKTtuZ0Rldk1vZGUmJnhuKHAsIlVuYWJsZSB0byBnZW5lcmF0ZSBpbmVydCBib2R5IGVsZW1lbnQiKTtjb25zdCBtPUdzKHApfHxwO3JldHVybiBtP2hoKHQsZSxuLG8sbCxjLGQsbSxpLHMsMCk6MH1mdW5jdGlvbiBoaCh0LGUsbixvLGksYSxyLHMsbCxjLGQpe2xldCBwPTAsbT1zLmZpcnN0Q2hpbGQ7Zm9yKDttOyl7Y29uc3Qgcz1NZCh0LG4sMSxudWxsKTtzd2l0Y2gobS5ub2RlVHlwZSl7Y2FzZSBOb2RlLkVMRU1FTlRfTk9ERTpjb25zdCBmPW0sdT1mLnRhZ05hbWUudG9Mb3dlckNhc2UoKTtpZihBcy5oYXNPd25Qcm9wZXJ0eSh1KSl7X2goaSxNZyx1LGwscyksdC5kYXRhW3NdPXU7Y29uc3QgZz1mLmF0dHJpYnV0ZXM7Zm9yKGxldCB0PTA7dDxnLmxlbmd0aDt0Kyspe2NvbnN0IGU9Zy5pdGVtKHQpLG49ZS5uYW1lLnRvTG93ZXJDYXNlKCk7ISFlLnZhbHVlLm1hdGNoKFFnKT9Icy5oYXNPd25Qcm9wZXJ0eShuKT9saChyLGUudmFsdWUscyxlLm5hbWUsMCxUc1tuXT92czpOc1tuXT94czpudWxsKTpuZ0Rldk1vZGUmJmNvbnNvbGUud2FybihgV0FSTklORzogaWdub3JpbmcgdW5zYWZlIGF0dHJpYnV0ZSB2YWx1ZSAke259IG9uIGVsZW1lbnQgJHt1fSAoc2VlIGh0dHBzOi8vZy5jby9uZy9zZWN1cml0eSN4c3MpYCk6Q2goaSxzLGUpfXA9aGgodCxlLG4sbyxpLGEscixtLHMsYyxkKzEpfHAsYmgoYSxzLGQpfWJyZWFrO2Nhc2UgTm9kZS5URVhUX05PREU6Y29uc3QgZz1tLnRleHRDb250ZW50fHwiIixoPWcubWF0Y2goUWcpO19oKGksbnVsbCxoPyIiOmcsbCxzKSxiaChhLHMsZCksaCYmKHA9bGgocixnLHMsbnVsbCwwLG51bGwpfHApO2JyZWFrO2Nhc2UgTm9kZS5DT01NRU5UX05PREU6Y29uc3QgYj10aC5leGVjKG0udGV4dENvbnRlbnR8fCIiKTtpZihiKXtjb25zdCBlPXBhcnNlSW50KGJbMV0sMTApLHI9Y1tlXTtfaChpLHZnLG5nRGV2TW9kZT9gbmVzdGVkIElDVSAke2V9YDoiIixsLHMpLG1oKHQsbixvLGwscixzKSx5aChhLHMsZCl9fW09bS5uZXh0U2libGluZ31yZXR1cm4gcH1mdW5jdGlvbiBiaCh0LGUsbil7MD09PW4mJnQucHVzaChlKX1mdW5jdGlvbiB5aCh0LGUsbil7MD09PW4mJih0LnB1c2gofmUpLHQucHVzaChlKSl9ZnVuY3Rpb24gX2godCxlLG4sbyxpKXtudWxsIT09ZSYmdC5wdXNoKGUpLHQucHVzaChuLGksKGZ1bmN0aW9uIGEodCxlLG4pe3JldHVybiBuZ0Rldk1vZGUmJnZuKGUsMCwiTWlzc2luZyBwYXJlbnQgaW5kZXgiKSxuZ0Rldk1vZGUmJk1uKG4sMCwiTWlzc2luZyByZWYgaW5kZXgiKSx0fGU8PDE3fG48PDF9KSgwLG8saSkpfWZ1bmN0aW9uIENoKHQsZSxuKXt0LnB1c2goZTw8MXwxLG4ubmFtZSxuLnZhbHVlKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgTWg9L1xbKO+/vS4rP++/vT8pXF0vLHZoPS9cWyjvv70uKz/vv70/KVxdfCjvv71cLz9cKlxkKzpcZCvvv70pL2cseGg9Lyh7XHMqKShWQVJfKFBMVVJBTHxTRUxFQ1QpKF9cZCspPykoXHMqLCkvZyxPaD0veyhbQS1aMC05X10rKX0vZyxQaD0v77+9STE4Tl9FWFBfKElDVShfXGQrKT8p77+9L2csd2g9L1wvXCovLGtoPS9cZCtcOihcZCspLzsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIFNoKHQsZSxuPS0xKXtjb25zdCBvPU9pKCksaT14aSgpLGE9dm8rdDtuZ0Rldk1vZGUmJnhuKG8sInRWaWV3IHNob3VsZCBiZSBkZWZpbmVkIik7Y29uc3Qgcj1oaShvLmNvbnN0cyxlKSxzPVNpKCk7by5maXJzdENyZWF0ZVBhc3MmJmFoKG8sbnVsbD09PXM/MDpzLmluZGV4LGksYSxyLG4pO2NvbnN0IGw9by5kYXRhW2FdLGM9S2wobyxzPT09aVs2XT9udWxsOnMsaSk7IShmdW5jdGlvbiBkKHQsZSxuLG8pe2NvbnN0IGk9dFsxMV07Zm9yKGxldCBhPTA7YTxlLmxlbmd0aDthKyspe2NvbnN0IHI9ZVthKytdLHM9ZVthXSxsPShyJnhnLkNPTU1FTlQpPT09eGcuQ09NTUVOVCxjPShyJnhnLkFQUEVORF9FQUdFUkxZKT09PXhnLkFQUEVORF9FQUdFUkxZLGQ9cj4+PnhnLlNISUZUO2xldCBwPXRbZF07bnVsbD09PXAmJihwPXRbZF09bD9pLmNyZWF0ZUNvbW1lbnQocyk6QmwoaSxzKSksYyYmbnVsbCE9PW4mJkpsKGksbixwLG8sITEpfX0pKGksbC5jcmVhdGUsYyxzJiY4JnMudHlwZT9pW3MuaW5kZXhdOm51bGwpLExpKCEwKX1mdW5jdGlvbiBEaCgpe0xpKCExKX1mdW5jdGlvbiBSaCh0LGUsbil7U2godCxlLG4pLERoKCl9ZnVuY3Rpb24gRWgodCxlKXtjb25zdCBuPU9pKCk7bmdEZXZNb2RlJiZ4bihuLCJ0VmlldyBzaG91bGQgYmUgZGVmaW5lZCIpO2NvbnN0IG89aGkobi5jb25zdHMsZSk7IShmdW5jdGlvbiBpKHQsZSxuKXtjb25zdCBvPXdpKCkuaW5kZXgsaT1bXTtpZihuZ0Rldk1vZGUmJkJjKGksWmcpLHQuZmlyc3RDcmVhdGVQYXNzJiZudWxsPT09dC5kYXRhW2VdKXtmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoO3QrPTIpe2NvbnN0IGU9blt0XSxhPW5bdCsxXTtpZigiIiE9PWEpe2lmKCRnLnRlc3QoYSkpdGhyb3cgbmV3IEVycm9yKGBJQ1UgZXhwcmVzc2lvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gYXR0cmlidXRlcy4gTWVzc2FnZTogIiR7YX0iLmApO2xoKGksYSxvLGUsY2goaSksbnVsbCl9fXQuZGF0YVtlXT1pfX0pKG4sdCt2byxvKX1mdW5jdGlvbiBBaCh0KXtyZXR1cm4oZnVuY3Rpb24gZSh0KXt0JiYoTGd8PTE8PE1hdGgubWluKEJnLDMxKSksQmcrK30pKHVtKHhpKCksSGkoKSx0KSksQWh9ZnVuY3Rpb24gVGgodCl7IShmdW5jdGlvbiBlKHQsbixvKXtpZihCZz4wKXtuZ0Rldk1vZGUmJnhuKHQsInRWaWV3IHNob3VsZCBiZSBkZWZpbmVkIik7Y29uc3QgZT10LmRhdGFbb107amcodCxuLEFycmF5LmlzQXJyYXkoZSk/ZTplLnVwZGF0ZSx6aSgpLUJnLTEsTGcpfUxnPTAsQmc9MH0pKE9pKCkseGkoKSx0K3ZvKX1mdW5jdGlvbiBOaCh0LGU9e30pe3JldHVybihmdW5jdGlvbiBuKHQsZT17fSl7bGV0IG49dDtpZihNaC50ZXN0KHQpKXtjb25zdCB0PXt9LGU9WzBdO249bi5yZXBsYWNlKHZoLCgobixvLGkpPT57Y29uc3QgYT1vfHxpLHI9dFthXXx8W107aWYoci5sZW5ndGh8fChhLnNwbGl0KCJ8IikuZm9yRWFjaCgodD0+e2NvbnN0IGU9dC5tYXRjaChraCksbj1lP3BhcnNlSW50KGVbMV0sMTApOjAsbz13aC50ZXN0KHQpO3IucHVzaChbbixvLHRdKX0pKSx0W2FdPXIpLCFyLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYGkxOG4gcG9zdHByb2Nlc3M6IHVubWF0Y2hlZCBwbGFjZWhvbGRlciAtICR7YX1gKTtjb25zdCBzPWVbZS5sZW5ndGgtMV07bGV0IGw9MDtmb3IobGV0IHQ9MDt0PHIubGVuZ3RoO3QrKylpZihyW3RdWzBdPT09cyl7bD10O2JyZWFrfWNvbnN0W2MsZCxwXT1yW2xdO3JldHVybiBkP2UucG9wKCk6cyE9PWMmJmUucHVzaChjKSxyLnNwbGljZShsLDEpLHB9KSl9cmV0dXJuIE9iamVjdC5rZXlzKGUpLmxlbmd0aD8obj1uLnJlcGxhY2UoeGgsKCh0LG4sbyxpLGEscik9PmUuaGFzT3duUHJvcGVydHkobyk/YCR7bn0ke2Vbb119JHtyfWA6dCkpLG49bi5yZXBsYWNlKE9oLCgodCxuKT0+ZS5oYXNPd25Qcm9wZXJ0eShuKT9lW25dOnQpKSxuPW4ucmVwbGFjZShQaCwoKHQsbik9PntpZihlLmhhc093blByb3BlcnR5KG4pKXtjb25zdCBvPWVbbl07aWYoIW8ubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgaTE4biBwb3N0cHJvY2VzczogdW5tYXRjaGVkIElDVSAtICR7dH0gd2l0aCBrZXk6ICR7bn1gKTtyZXR1cm4gby5zaGlmdCgpfXJldHVybiB0fSkpLG4pOm59KSh0LGUpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gemgodCxlLG4sbyxpKXtpZih0PXRuKHQpLEFycmF5LmlzQXJyYXkodCkpZm9yKGxldCBhPTA7YTx0Lmxlbmd0aDthKyspemgodFthXSxlLG4sbyxpKTtlbHNle2NvbnN0IGE9T2koKSxyPXhpKCk7bGV0IHM9RXAodCk/dDp0bih0LnByb3ZpZGUpLGw9U3AodCk7Y29uc3QgYz13aSgpLGQ9MTA0ODU3NSZjLnByb3ZpZGVySW5kZXhlcyxwPWMuZGlyZWN0aXZlU3RhcnQsbT1jLnByb3ZpZGVySW5kZXhlcz4+MjA7aWYoRXAodCl8fCF0Lm11bHRpKXtjb25zdCBvPW5ldyBmYShsLGksZ2YpLGY9RmgocyxlLGk/ZDpkK20scCk7LTE9PT1mPyhFYShrYShjLHIpLGEscyksSWgoYSx0LGUubGVuZ3RoKSxlLnB1c2gocyksYy5kaXJlY3RpdmVTdGFydCsrLGMuZGlyZWN0aXZlRW5kKyssaSYmKGMucHJvdmlkZXJJbmRleGVzKz0xMDQ4NTc2KSxuLnB1c2gobyksci5wdXNoKG8pKToobltmXT1vLHJbZl09byl9ZWxzZXtjb25zdCBmPUZoKHMsZSxkK20scCksdT1GaChzLGUsZCxkK20pLGc9Zj49MCYmbltmXSxoPXU+PTAmJm5bdV07aWYoaSYmIWh8fCFpJiYhZyl7RWEoa2EoYyxyKSxhLHMpO2NvbnN0IGQ9KGZ1bmN0aW9uIGEodCxlLG4sbyxpKXtjb25zdCBhPW5ldyBmYSh0LG4sZ2YpO3JldHVybiBhLm11bHRpPVtdLGEuaW5kZXg9ZSxhLmNvbXBvbmVudFByb3ZpZGVycz0wLEhoKGEsaSxvJiYhbiksYX0pKGk/Qmg6TGgsbi5sZW5ndGgsaSxvLGwpOyFpJiZoJiYoblt1XS5wcm92aWRlckZhY3Rvcnk9ZCksSWgoYSx0LGUubGVuZ3RoLDApLGUucHVzaChzKSxjLmRpcmVjdGl2ZVN0YXJ0KyssYy5kaXJlY3RpdmVFbmQrKyxpJiYoYy5wcm92aWRlckluZGV4ZXMrPTEwNDg1NzYpLG4ucHVzaChkKSxyLnB1c2goZCl9ZWxzZXtJaChhLHQsZj4tMT9mOnUsSGgobltpP3U6Zl0sbCwhaSYmbykpfSFpJiZvJiZoJiZuW3VdLmNvbXBvbmVudFByb3ZpZGVycysrfX19ZnVuY3Rpb24gSWgodCxlLG4sbyl7Y29uc3QgaT1FcChlKTtpZihpfHwoZnVuY3Rpb24gYSh0KXtyZXR1cm4hIXQudXNlQ2xhc3N9KShlKSl7Y29uc3QgYT0oZS51c2VDbGFzc3x8ZSkucHJvdG90eXBlLm5nT25EZXN0cm95O2lmKGEpe2NvbnN0IHI9dC5kZXN0cm95SG9va3N8fCh0LmRlc3Ryb3lIb29rcz1bXSk7aWYoIWkmJmUubXVsdGkpe25nRGV2TW9kZSYmeG4obywiaW5kZXhJbkZhY3Rvcnkgd2hlbiByZWdpc3RlcmluZyBtdWx0aSBmYWN0b3J5IGRlc3Ryb3kgaG9vayIpO2NvbnN0IHQ9ci5pbmRleE9mKG4pOy0xPT09dD9yLnB1c2gobixbbyxhXSk6clt0KzFdLnB1c2gobyxhKX1lbHNlIHIucHVzaChuLGEpfX19ZnVuY3Rpb24gSGgodCxlLG4pe3JldHVybiBuJiZ0LmNvbXBvbmVudFByb3ZpZGVycysrLHQubXVsdGkucHVzaChlKS0xfWZ1bmN0aW9uIEZoKHQsZSxuLG8pe2ZvcihsZXQgaT1uO2k8bztpKyspaWYoZVtpXT09PXQpcmV0dXJuIGk7cmV0dXJuLTF9ZnVuY3Rpb24gTGgodCxlLG4sbyl7cmV0dXJuIFZoKHRoaXMubXVsdGksW10pfWZ1bmN0aW9uIEJoKHQsZSxuLG8pe2NvbnN0IGk9dGhpcy5tdWx0aTtsZXQgYTtpZih0aGlzLnByb3ZpZGVyRmFjdG9yeSl7Y29uc3QgdD10aGlzLnByb3ZpZGVyRmFjdG9yeS5jb21wb25lbnRQcm92aWRlcnMsZT1MYShuLG5bMV0sdGhpcy5wcm92aWRlckZhY3RvcnkuaW5kZXgsbyk7YT1lLnNsaWNlKDAsdCksVmgoaSxhKTtmb3IobGV0IG49dDtuPGUubGVuZ3RoO24rKylhLnB1c2goZVtuXSl9ZWxzZSBhPVtdLFZoKGksYSk7cmV0dXJuIGF9ZnVuY3Rpb24gVmgodCxlKXtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7ZS5wdXNoKCgwLHRbbl0pKCkpfXJldHVybiBlfWZ1bmN0aW9uIGpoKHQsZT1bXSl7cmV0dXJuIG49PntuLnByb3ZpZGVyc1Jlc29sdmVyPShuLG8pPT4oZnVuY3Rpb24gaSh0LGUsbil7Y29uc3Qgbz1PaSgpO2lmKG8uZmlyc3RDcmVhdGVQYXNzKXtjb25zdCBpPVJvKHQpO3poKG4sby5kYXRhLG8uYmx1ZXByaW50LGksITApLHpoKGUsby5kYXRhLG8uYmx1ZXByaW50LGksITEpfX0pKG4sbz9vKHQpOnQsZSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBVaHt9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IFdoPSJuZ0NvbXBvbmVudCI7Y2xhc3MgR2h7fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gWWgoLi4udCl7fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBxaCh0LGUpe3JldHVybiBuZXcgS2goZGkodCxlKSl9R2guTlVMTD1uZXcgY2xhc3N7cmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodCl7dGhyb3coZnVuY3Rpb24gZSh0KXtjb25zdCBlPUVycm9yKGBObyBjb21wb25lbnQgZmFjdG9yeSBmb3VuZCBmb3IgJHtLZSh0KX0uIERpZCB5b3UgYWRkIGl0IHRvIEBOZ01vZHVsZS5lbnRyeUNvbXBvbmVudHM/YCk7cmV0dXJuIGVbV2hdPXQsZX0pKHQpfX07Y29uc3QgWmg9ZnVuY3Rpb24gWGgoKXtyZXR1cm4gcWgod2koKSx4aSgpKX07Y2xhc3MgS2h7Y29uc3RydWN0b3IodCl7dGhpcy5uYXRpdmVFbGVtZW50PXR9fWZ1bmN0aW9uIEpoKHQpe3JldHVybiB0IGluc3RhbmNlb2YgS2g/dC5uYXRpdmVFbGVtZW50OnR9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL0toLl9fTkdfRUxFTUVOVF9JRF9fPVpoLG5ldyBlcigiUmVuZGVyZXIySW50ZXJjZXB0b3IiKTtjbGFzcyBRaHt9Y2xhc3MgJGh7fSRoLl9fTkdfRUxFTUVOVF9JRF9fPSgpPT50YigpO2NvbnN0IHRiPWZ1bmN0aW9uIGViKCl7Y29uc3QgdD14aSgpLGU9Zmkod2koKS5pbmRleCx0KTtyZXR1cm4oZnVuY3Rpb24gbih0KXtjb25zdCBlPXRbMTFdO2lmKG5nRGV2TW9kZSYmIXJpKGUpKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGluamVjdCBSZW5kZXJlcjIgd2hlbiB0aGUgYXBwbGljYXRpb24gdXNlcyBSZW5kZXJlcjMhIik7cmV0dXJuIGV9KShQbyhlKT9lOnQpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi87Y2xhc3MgbmJ7fW5iLsm1cHJvdj1Tbih7dG9rZW46bmIscHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTooKT0+bnVsbH0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3Mgb2J7Y29uc3RydWN0b3IodCl7dGhpcy5mdWxsPXQsdGhpcy5tYWpvcj10LnNwbGl0KCIuIilbMF0sdGhpcy5taW5vcj10LnNwbGl0KCIuIilbMV0sdGhpcy5wYXRjaD10LnNwbGl0KCIuIikuc2xpY2UoMikuam9pbigiLiIpfX1jb25zdCBpYj1uZXcgb2IoIjEyLjIuMSIpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBhYntjb25zdHJ1Y3Rvcigpe31zdXBwb3J0cyh0KXtyZXR1cm4gZG0odCl9Y3JlYXRlKHQpe3JldHVybiBuZXcgc2IodCl9fWNvbnN0IHJiPSh0LGUpPT5lO2NsYXNzIHNie2NvbnN0cnVjdG9yKHQpe3RoaXMubGVuZ3RoPTAsdGhpcy5fbGlua2VkUmVjb3Jkcz1udWxsLHRoaXMuX3VubGlua2VkUmVjb3Jkcz1udWxsLHRoaXMuX3ByZXZpb3VzSXRIZWFkPW51bGwsdGhpcy5faXRIZWFkPW51bGwsdGhpcy5faXRUYWlsPW51bGwsdGhpcy5fYWRkaXRpb25zSGVhZD1udWxsLHRoaXMuX2FkZGl0aW9uc1RhaWw9bnVsbCx0aGlzLl9tb3Zlc0hlYWQ9bnVsbCx0aGlzLl9tb3Zlc1RhaWw9bnVsbCx0aGlzLl9yZW1vdmFsc0hlYWQ9bnVsbCx0aGlzLl9yZW1vdmFsc1RhaWw9bnVsbCx0aGlzLl9pZGVudGl0eUNoYW5nZXNIZWFkPW51bGwsdGhpcy5faWRlbnRpdHlDaGFuZ2VzVGFpbD1udWxsLHRoaXMuX3RyYWNrQnlGbj10fHxyYn1mb3JFYWNoSXRlbSh0KXtsZXQgZTtmb3IoZT10aGlzLl9pdEhlYWQ7bnVsbCE9PWU7ZT1lLl9uZXh0KXQoZSl9Zm9yRWFjaE9wZXJhdGlvbih0KXtsZXQgZT10aGlzLl9pdEhlYWQsbj10aGlzLl9yZW1vdmFsc0hlYWQsbz0wLGk9bnVsbDtmb3IoO2V8fG47KXtjb25zdCBhPSFufHxlJiZlLmN1cnJlbnRJbmRleDxwYihuLG8saSk/ZTpuLHI9cGIoYSxvLGkpLHM9YS5jdXJyZW50SW5kZXg7aWYoYT09PW4pby0tLG49bi5fbmV4dFJlbW92ZWQ7ZWxzZSBpZihlPWUuX25leHQsbnVsbD09YS5wcmV2aW91c0luZGV4KW8rKztlbHNle2l8fChpPVtdKTtjb25zdCB0PXItbyxlPXMtbztpZih0IT1lKXtmb3IobGV0IG49MDtuPHQ7bisrKXtjb25zdCBvPW48aS5sZW5ndGg/aVtuXTppW25dPTAsYT1vK247ZTw9YSYmYTx0JiYoaVtuXT1vKzEpfWlbYS5wcmV2aW91c0luZGV4XT1lLXR9fXIhPT1zJiZ0KGEscixzKX19Zm9yRWFjaFByZXZpb3VzSXRlbSh0KXtsZXQgZTtmb3IoZT10aGlzLl9wcmV2aW91c0l0SGVhZDtudWxsIT09ZTtlPWUuX25leHRQcmV2aW91cyl0KGUpfWZvckVhY2hBZGRlZEl0ZW0odCl7bGV0IGU7Zm9yKGU9dGhpcy5fYWRkaXRpb25zSGVhZDtudWxsIT09ZTtlPWUuX25leHRBZGRlZCl0KGUpfWZvckVhY2hNb3ZlZEl0ZW0odCl7bGV0IGU7Zm9yKGU9dGhpcy5fbW92ZXNIZWFkO251bGwhPT1lO2U9ZS5fbmV4dE1vdmVkKXQoZSl9Zm9yRWFjaFJlbW92ZWRJdGVtKHQpe2xldCBlO2ZvcihlPXRoaXMuX3JlbW92YWxzSGVhZDtudWxsIT09ZTtlPWUuX25leHRSZW1vdmVkKXQoZSl9Zm9yRWFjaElkZW50aXR5Q2hhbmdlKHQpe2xldCBlO2ZvcihlPXRoaXMuX2lkZW50aXR5Q2hhbmdlc0hlYWQ7bnVsbCE9PWU7ZT1lLl9uZXh0SWRlbnRpdHlDaGFuZ2UpdChlKX1kaWZmKHQpe2lmKG51bGw9PXQmJih0PVtdKSwhZG0odCkpdGhyb3cgbmV3IEVycm9yKGBFcnJvciB0cnlpbmcgdG8gZGlmZiAnJHtLZSh0KX0nLiBPbmx5IGFycmF5cyBhbmQgaXRlcmFibGVzIGFyZSBhbGxvd2VkYCk7cmV0dXJuIHRoaXMuY2hlY2sodCk/dGhpczpudWxsfW9uRGVzdHJveSgpe31jaGVjayh0KXt0aGlzLl9yZXNldCgpO2xldCBlLG4sbyxpPXRoaXMuX2l0SGVhZCxhPSExO2lmKEFycmF5LmlzQXJyYXkodCkpe3RoaXMubGVuZ3RoPXQubGVuZ3RoO2ZvcihsZXQgZT0wO2U8dGhpcy5sZW5ndGg7ZSsrKW49dFtlXSxvPXRoaXMuX3RyYWNrQnlGbihlLG4pLG51bGwhPT1pJiZPYmplY3QuaXMoaS50cmFja0J5SWQsbyk/KGEmJihpPXRoaXMuX3ZlcmlmeVJlaW5zZXJ0aW9uKGksbixvLGUpKSxPYmplY3QuaXMoaS5pdGVtLG4pfHx0aGlzLl9hZGRJZGVudGl0eUNoYW5nZShpLG4pKTooaT10aGlzLl9taXNtYXRjaChpLG4sbyxlKSxhPSEwKSxpPWkuX25leHR9ZWxzZSBlPTAsKGZ1bmN0aW9uIHIodCxlKXtpZihBcnJheS5pc0FycmF5KHQpKWZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKWUodFtuXSk7ZWxzZXtjb25zdCBuPXRbc20oKV0oKTtsZXQgbztmb3IoOyEobz1uLm5leHQoKSkuZG9uZTspZShvLnZhbHVlKX19KSh0LCh0PT57bz10aGlzLl90cmFja0J5Rm4oZSx0KSxudWxsIT09aSYmT2JqZWN0LmlzKGkudHJhY2tCeUlkLG8pPyhhJiYoaT10aGlzLl92ZXJpZnlSZWluc2VydGlvbihpLHQsbyxlKSksT2JqZWN0LmlzKGkuaXRlbSx0KXx8dGhpcy5fYWRkSWRlbnRpdHlDaGFuZ2UoaSx0KSk6KGk9dGhpcy5fbWlzbWF0Y2goaSx0LG8sZSksYT0hMCksaT1pLl9uZXh0LGUrK30pKSx0aGlzLmxlbmd0aD1lO3JldHVybiB0aGlzLl90cnVuY2F0ZShpKSx0aGlzLmNvbGxlY3Rpb249dCx0aGlzLmlzRGlydHl9Z2V0IGlzRGlydHkoKXtyZXR1cm4gbnVsbCE9PXRoaXMuX2FkZGl0aW9uc0hlYWR8fG51bGwhPT10aGlzLl9tb3Zlc0hlYWR8fG51bGwhPT10aGlzLl9yZW1vdmFsc0hlYWR8fG51bGwhPT10aGlzLl9pZGVudGl0eUNoYW5nZXNIZWFkfV9yZXNldCgpe2lmKHRoaXMuaXNEaXJ0eSl7bGV0IHQ7Zm9yKHQ9dGhpcy5fcHJldmlvdXNJdEhlYWQ9dGhpcy5faXRIZWFkO251bGwhPT10O3Q9dC5fbmV4dCl0Ll9uZXh0UHJldmlvdXM9dC5fbmV4dDtmb3IodD10aGlzLl9hZGRpdGlvbnNIZWFkO251bGwhPT10O3Q9dC5fbmV4dEFkZGVkKXQucHJldmlvdXNJbmRleD10LmN1cnJlbnRJbmRleDtmb3IodGhpcy5fYWRkaXRpb25zSGVhZD10aGlzLl9hZGRpdGlvbnNUYWlsPW51bGwsdD10aGlzLl9tb3Zlc0hlYWQ7bnVsbCE9PXQ7dD10Ll9uZXh0TW92ZWQpdC5wcmV2aW91c0luZGV4PXQuY3VycmVudEluZGV4O3RoaXMuX21vdmVzSGVhZD10aGlzLl9tb3Zlc1RhaWw9bnVsbCx0aGlzLl9yZW1vdmFsc0hlYWQ9dGhpcy5fcmVtb3ZhbHNUYWlsPW51bGwsdGhpcy5faWRlbnRpdHlDaGFuZ2VzSGVhZD10aGlzLl9pZGVudGl0eUNoYW5nZXNUYWlsPW51bGx9fV9taXNtYXRjaCh0LGUsbixvKXtsZXQgaTtyZXR1cm4gbnVsbD09PXQ/aT10aGlzLl9pdFRhaWw6KGk9dC5fcHJldix0aGlzLl9yZW1vdmUodCkpLG51bGwhPT0odD1udWxsPT09dGhpcy5fdW5saW5rZWRSZWNvcmRzP251bGw6dGhpcy5fdW5saW5rZWRSZWNvcmRzLmdldChuLG51bGwpKT8oT2JqZWN0LmlzKHQuaXRlbSxlKXx8dGhpcy5fYWRkSWRlbnRpdHlDaGFuZ2UodCxlKSx0aGlzLl9yZWluc2VydEFmdGVyKHQsaSxvKSk6bnVsbCE9PSh0PW51bGw9PT10aGlzLl9saW5rZWRSZWNvcmRzP251bGw6dGhpcy5fbGlua2VkUmVjb3Jkcy5nZXQobixvKSk/KE9iamVjdC5pcyh0Lml0ZW0sZSl8fHRoaXMuX2FkZElkZW50aXR5Q2hhbmdlKHQsZSksdGhpcy5fbW92ZUFmdGVyKHQsaSxvKSk6dD10aGlzLl9hZGRBZnRlcihuZXcgbGIoZSxuKSxpLG8pLHR9X3ZlcmlmeVJlaW5zZXJ0aW9uKHQsZSxuLG8pe2xldCBpPW51bGw9PT10aGlzLl91bmxpbmtlZFJlY29yZHM/bnVsbDp0aGlzLl91bmxpbmtlZFJlY29yZHMuZ2V0KG4sbnVsbCk7cmV0dXJuIG51bGwhPT1pP3Q9dGhpcy5fcmVpbnNlcnRBZnRlcihpLHQuX3ByZXYsbyk6dC5jdXJyZW50SW5kZXghPW8mJih0LmN1cnJlbnRJbmRleD1vLHRoaXMuX2FkZFRvTW92ZXModCxvKSksdH1fdHJ1bmNhdGUodCl7Zm9yKDtudWxsIT09dDspe2NvbnN0IGU9dC5fbmV4dDt0aGlzLl9hZGRUb1JlbW92YWxzKHRoaXMuX3VubGluayh0KSksdD1lfW51bGwhPT10aGlzLl91bmxpbmtlZFJlY29yZHMmJnRoaXMuX3VubGlua2VkUmVjb3Jkcy5jbGVhcigpLG51bGwhPT10aGlzLl9hZGRpdGlvbnNUYWlsJiYodGhpcy5fYWRkaXRpb25zVGFpbC5fbmV4dEFkZGVkPW51bGwpLG51bGwhPT10aGlzLl9tb3Zlc1RhaWwmJih0aGlzLl9tb3Zlc1RhaWwuX25leHRNb3ZlZD1udWxsKSxudWxsIT09dGhpcy5faXRUYWlsJiYodGhpcy5faXRUYWlsLl9uZXh0PW51bGwpLG51bGwhPT10aGlzLl9yZW1vdmFsc1RhaWwmJih0aGlzLl9yZW1vdmFsc1RhaWwuX25leHRSZW1vdmVkPW51bGwpLG51bGwhPT10aGlzLl9pZGVudGl0eUNoYW5nZXNUYWlsJiYodGhpcy5faWRlbnRpdHlDaGFuZ2VzVGFpbC5fbmV4dElkZW50aXR5Q2hhbmdlPW51bGwpfV9yZWluc2VydEFmdGVyKHQsZSxuKXtudWxsIT09dGhpcy5fdW5saW5rZWRSZWNvcmRzJiZ0aGlzLl91bmxpbmtlZFJlY29yZHMucmVtb3ZlKHQpO2NvbnN0IG89dC5fcHJldlJlbW92ZWQsaT10Ll9uZXh0UmVtb3ZlZDtyZXR1cm4gbnVsbD09PW8/dGhpcy5fcmVtb3ZhbHNIZWFkPWk6by5fbmV4dFJlbW92ZWQ9aSxudWxsPT09aT90aGlzLl9yZW1vdmFsc1RhaWw9bzppLl9wcmV2UmVtb3ZlZD1vLHRoaXMuX2luc2VydEFmdGVyKHQsZSxuKSx0aGlzLl9hZGRUb01vdmVzKHQsbiksdH1fbW92ZUFmdGVyKHQsZSxuKXtyZXR1cm4gdGhpcy5fdW5saW5rKHQpLHRoaXMuX2luc2VydEFmdGVyKHQsZSxuKSx0aGlzLl9hZGRUb01vdmVzKHQsbiksdH1fYWRkQWZ0ZXIodCxlLG4pe3JldHVybiB0aGlzLl9pbnNlcnRBZnRlcih0LGUsbiksdGhpcy5fYWRkaXRpb25zVGFpbD1udWxsPT09dGhpcy5fYWRkaXRpb25zVGFpbD90aGlzLl9hZGRpdGlvbnNIZWFkPXQ6dGhpcy5fYWRkaXRpb25zVGFpbC5fbmV4dEFkZGVkPXQsdH1faW5zZXJ0QWZ0ZXIodCxlLG4pe2NvbnN0IG89bnVsbD09PWU/dGhpcy5faXRIZWFkOmUuX25leHQ7cmV0dXJuIHQuX25leHQ9byx0Ll9wcmV2PWUsbnVsbD09PW8/dGhpcy5faXRUYWlsPXQ6by5fcHJldj10LG51bGw9PT1lP3RoaXMuX2l0SGVhZD10OmUuX25leHQ9dCxudWxsPT09dGhpcy5fbGlua2VkUmVjb3JkcyYmKHRoaXMuX2xpbmtlZFJlY29yZHM9bmV3IGRiKSx0aGlzLl9saW5rZWRSZWNvcmRzLnB1dCh0KSx0LmN1cnJlbnRJbmRleD1uLHR9X3JlbW92ZSh0KXtyZXR1cm4gdGhpcy5fYWRkVG9SZW1vdmFscyh0aGlzLl91bmxpbmsodCkpfV91bmxpbmsodCl7bnVsbCE9PXRoaXMuX2xpbmtlZFJlY29yZHMmJnRoaXMuX2xpbmtlZFJlY29yZHMucmVtb3ZlKHQpO2NvbnN0IGU9dC5fcHJldixuPXQuX25leHQ7cmV0dXJuIG51bGw9PT1lP3RoaXMuX2l0SGVhZD1uOmUuX25leHQ9bixudWxsPT09bj90aGlzLl9pdFRhaWw9ZTpuLl9wcmV2PWUsdH1fYWRkVG9Nb3Zlcyh0LGUpe3JldHVybiB0LnByZXZpb3VzSW5kZXg9PT1lfHwodGhpcy5fbW92ZXNUYWlsPW51bGw9PT10aGlzLl9tb3Zlc1RhaWw/dGhpcy5fbW92ZXNIZWFkPXQ6dGhpcy5fbW92ZXNUYWlsLl9uZXh0TW92ZWQ9dCksdH1fYWRkVG9SZW1vdmFscyh0KXtyZXR1cm4gbnVsbD09PXRoaXMuX3VubGlua2VkUmVjb3JkcyYmKHRoaXMuX3VubGlua2VkUmVjb3Jkcz1uZXcgZGIpLHRoaXMuX3VubGlua2VkUmVjb3Jkcy5wdXQodCksdC5jdXJyZW50SW5kZXg9bnVsbCx0Ll9uZXh0UmVtb3ZlZD1udWxsLG51bGw9PT10aGlzLl9yZW1vdmFsc1RhaWw/KHRoaXMuX3JlbW92YWxzVGFpbD10aGlzLl9yZW1vdmFsc0hlYWQ9dCx0Ll9wcmV2UmVtb3ZlZD1udWxsKToodC5fcHJldlJlbW92ZWQ9dGhpcy5fcmVtb3ZhbHNUYWlsLHRoaXMuX3JlbW92YWxzVGFpbD10aGlzLl9yZW1vdmFsc1RhaWwuX25leHRSZW1vdmVkPXQpLHR9X2FkZElkZW50aXR5Q2hhbmdlKHQsZSl7cmV0dXJuIHQuaXRlbT1lLHRoaXMuX2lkZW50aXR5Q2hhbmdlc1RhaWw9bnVsbD09PXRoaXMuX2lkZW50aXR5Q2hhbmdlc1RhaWw/dGhpcy5faWRlbnRpdHlDaGFuZ2VzSGVhZD10OnRoaXMuX2lkZW50aXR5Q2hhbmdlc1RhaWwuX25leHRJZGVudGl0eUNoYW5nZT10LHR9fWNsYXNzIGxie2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5pdGVtPXQsdGhpcy50cmFja0J5SWQ9ZSx0aGlzLmN1cnJlbnRJbmRleD1udWxsLHRoaXMucHJldmlvdXNJbmRleD1udWxsLHRoaXMuX25leHRQcmV2aW91cz1udWxsLHRoaXMuX3ByZXY9bnVsbCx0aGlzLl9uZXh0PW51bGwsdGhpcy5fcHJldkR1cD1udWxsLHRoaXMuX25leHREdXA9bnVsbCx0aGlzLl9wcmV2UmVtb3ZlZD1udWxsLHRoaXMuX25leHRSZW1vdmVkPW51bGwsdGhpcy5fbmV4dEFkZGVkPW51bGwsdGhpcy5fbmV4dE1vdmVkPW51bGwsdGhpcy5fbmV4dElkZW50aXR5Q2hhbmdlPW51bGx9fWNsYXNzIGNie2NvbnN0cnVjdG9yKCl7dGhpcy5faGVhZD1udWxsLHRoaXMuX3RhaWw9bnVsbH1hZGQodCl7bnVsbD09PXRoaXMuX2hlYWQ/KHRoaXMuX2hlYWQ9dGhpcy5fdGFpbD10LHQuX25leHREdXA9bnVsbCx0Ll9wcmV2RHVwPW51bGwpOih0aGlzLl90YWlsLl9uZXh0RHVwPXQsdC5fcHJldkR1cD10aGlzLl90YWlsLHQuX25leHREdXA9bnVsbCx0aGlzLl90YWlsPXQpfWdldCh0LGUpe2xldCBuO2ZvcihuPXRoaXMuX2hlYWQ7bnVsbCE9PW47bj1uLl9uZXh0RHVwKWlmKChudWxsPT09ZXx8ZTw9bi5jdXJyZW50SW5kZXgpJiZPYmplY3QuaXMobi50cmFja0J5SWQsdCkpcmV0dXJuIG47cmV0dXJuIG51bGx9cmVtb3ZlKHQpe2NvbnN0IGU9dC5fcHJldkR1cCxuPXQuX25leHREdXA7cmV0dXJuIG51bGw9PT1lP3RoaXMuX2hlYWQ9bjplLl9uZXh0RHVwPW4sbnVsbD09PW4/dGhpcy5fdGFpbD1lOm4uX3ByZXZEdXA9ZSxudWxsPT09dGhpcy5faGVhZH19Y2xhc3MgZGJ7Y29uc3RydWN0b3IoKXt0aGlzLm1hcD1uZXcgTWFwfXB1dCh0KXtjb25zdCBlPXQudHJhY2tCeUlkO2xldCBuPXRoaXMubWFwLmdldChlKTtufHwobj1uZXcgY2IsdGhpcy5tYXAuc2V0KGUsbikpLG4uYWRkKHQpfWdldCh0LGUpe2NvbnN0IG49dGhpcy5tYXAuZ2V0KHQpO3JldHVybiBuP24uZ2V0KHQsZSk6bnVsbH1yZW1vdmUodCl7Y29uc3QgZT10LnRyYWNrQnlJZDtyZXR1cm4gdGhpcy5tYXAuZ2V0KGUpLnJlbW92ZSh0KSYmdGhpcy5tYXAuZGVsZXRlKGUpLHR9Z2V0IGlzRW1wdHkoKXtyZXR1cm4gMD09PXRoaXMubWFwLnNpemV9Y2xlYXIoKXt0aGlzLm1hcC5jbGVhcigpfX1mdW5jdGlvbiBwYih0LGUsbil7Y29uc3Qgbz10LnByZXZpb3VzSW5kZXg7aWYobnVsbD09PW8pcmV0dXJuIG87bGV0IGk9MDtyZXR1cm4gbiYmbzxuLmxlbmd0aCYmKGk9bltvXSksbytlK2l9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIG1ie2NvbnN0cnVjdG9yKCl7fXN1cHBvcnRzKHQpe3JldHVybiB0IGluc3RhbmNlb2YgTWFwfHxwbSh0KX1jcmVhdGUoKXtyZXR1cm4gbmV3IGZifX1jbGFzcyBmYntjb25zdHJ1Y3Rvcigpe3RoaXMuX3JlY29yZHM9bmV3IE1hcCx0aGlzLl9tYXBIZWFkPW51bGwsdGhpcy5fYXBwZW5kQWZ0ZXI9bnVsbCx0aGlzLl9wcmV2aW91c01hcEhlYWQ9bnVsbCx0aGlzLl9jaGFuZ2VzSGVhZD1udWxsLHRoaXMuX2NoYW5nZXNUYWlsPW51bGwsdGhpcy5fYWRkaXRpb25zSGVhZD1udWxsLHRoaXMuX2FkZGl0aW9uc1RhaWw9bnVsbCx0aGlzLl9yZW1vdmFsc0hlYWQ9bnVsbCx0aGlzLl9yZW1vdmFsc1RhaWw9bnVsbH1nZXQgaXNEaXJ0eSgpe3JldHVybiBudWxsIT09dGhpcy5fYWRkaXRpb25zSGVhZHx8bnVsbCE9PXRoaXMuX2NoYW5nZXNIZWFkfHxudWxsIT09dGhpcy5fcmVtb3ZhbHNIZWFkfWZvckVhY2hJdGVtKHQpe2xldCBlO2ZvcihlPXRoaXMuX21hcEhlYWQ7bnVsbCE9PWU7ZT1lLl9uZXh0KXQoZSl9Zm9yRWFjaFByZXZpb3VzSXRlbSh0KXtsZXQgZTtmb3IoZT10aGlzLl9wcmV2aW91c01hcEhlYWQ7bnVsbCE9PWU7ZT1lLl9uZXh0UHJldmlvdXMpdChlKX1mb3JFYWNoQ2hhbmdlZEl0ZW0odCl7bGV0IGU7Zm9yKGU9dGhpcy5fY2hhbmdlc0hlYWQ7bnVsbCE9PWU7ZT1lLl9uZXh0Q2hhbmdlZCl0KGUpfWZvckVhY2hBZGRlZEl0ZW0odCl7bGV0IGU7Zm9yKGU9dGhpcy5fYWRkaXRpb25zSGVhZDtudWxsIT09ZTtlPWUuX25leHRBZGRlZCl0KGUpfWZvckVhY2hSZW1vdmVkSXRlbSh0KXtsZXQgZTtmb3IoZT10aGlzLl9yZW1vdmFsc0hlYWQ7bnVsbCE9PWU7ZT1lLl9uZXh0UmVtb3ZlZCl0KGUpfWRpZmYodCl7aWYodCl7aWYoISh0IGluc3RhbmNlb2YgTWFwfHxwbSh0KSkpdGhyb3cgbmV3IEVycm9yKGBFcnJvciB0cnlpbmcgdG8gZGlmZiAnJHtLZSh0KX0nLiBPbmx5IG1hcHMgYW5kIG9iamVjdHMgYXJlIGFsbG93ZWRgKX1lbHNlIHQ9bmV3IE1hcDtyZXR1cm4gdGhpcy5jaGVjayh0KT90aGlzOm51bGx9b25EZXN0cm95KCl7fWNoZWNrKHQpe3RoaXMuX3Jlc2V0KCk7bGV0IGU9dGhpcy5fbWFwSGVhZDtpZih0aGlzLl9hcHBlbmRBZnRlcj1udWxsLHRoaXMuX2ZvckVhY2godCwoKHQsbik9PntpZihlJiZlLmtleT09PW4pdGhpcy5fbWF5YmVBZGRUb0NoYW5nZXMoZSx0KSx0aGlzLl9hcHBlbmRBZnRlcj1lLGU9ZS5fbmV4dDtlbHNle2NvbnN0IG89dGhpcy5fZ2V0T3JDcmVhdGVSZWNvcmRGb3JLZXkobix0KTtlPXRoaXMuX2luc2VydEJlZm9yZU9yQXBwZW5kKGUsbyl9fSkpLGUpe2UuX3ByZXYmJihlLl9wcmV2Ll9uZXh0PW51bGwpLHRoaXMuX3JlbW92YWxzSGVhZD1lO2ZvcihsZXQgdD1lO251bGwhPT10O3Q9dC5fbmV4dFJlbW92ZWQpdD09PXRoaXMuX21hcEhlYWQmJih0aGlzLl9tYXBIZWFkPW51bGwpLHRoaXMuX3JlY29yZHMuZGVsZXRlKHQua2V5KSx0Ll9uZXh0UmVtb3ZlZD10Ll9uZXh0LHQucHJldmlvdXNWYWx1ZT10LmN1cnJlbnRWYWx1ZSx0LmN1cnJlbnRWYWx1ZT1udWxsLHQuX3ByZXY9bnVsbCx0Ll9uZXh0PW51bGx9cmV0dXJuIHRoaXMuX2NoYW5nZXNUYWlsJiYodGhpcy5fY2hhbmdlc1RhaWwuX25leHRDaGFuZ2VkPW51bGwpLHRoaXMuX2FkZGl0aW9uc1RhaWwmJih0aGlzLl9hZGRpdGlvbnNUYWlsLl9uZXh0QWRkZWQ9bnVsbCksdGhpcy5pc0RpcnR5fV9pbnNlcnRCZWZvcmVPckFwcGVuZCh0LGUpe2lmKHQpe2NvbnN0IG49dC5fcHJldjtyZXR1cm4gZS5fbmV4dD10LGUuX3ByZXY9bix0Ll9wcmV2PWUsbiYmKG4uX25leHQ9ZSksdD09PXRoaXMuX21hcEhlYWQmJih0aGlzLl9tYXBIZWFkPWUpLHRoaXMuX2FwcGVuZEFmdGVyPXQsdH1yZXR1cm4gdGhpcy5fYXBwZW5kQWZ0ZXI/KHRoaXMuX2FwcGVuZEFmdGVyLl9uZXh0PWUsZS5fcHJldj10aGlzLl9hcHBlbmRBZnRlcik6dGhpcy5fbWFwSGVhZD1lLHRoaXMuX2FwcGVuZEFmdGVyPWUsbnVsbH1fZ2V0T3JDcmVhdGVSZWNvcmRGb3JLZXkodCxlKXtpZih0aGlzLl9yZWNvcmRzLmhhcyh0KSl7Y29uc3Qgbj10aGlzLl9yZWNvcmRzLmdldCh0KTt0aGlzLl9tYXliZUFkZFRvQ2hhbmdlcyhuLGUpO2NvbnN0IG89bi5fcHJldixpPW4uX25leHQ7cmV0dXJuIG8mJihvLl9uZXh0PWkpLGkmJihpLl9wcmV2PW8pLG4uX25leHQ9bnVsbCxuLl9wcmV2PW51bGwsbn1jb25zdCBuPW5ldyB1Yih0KTtyZXR1cm4gdGhpcy5fcmVjb3Jkcy5zZXQodCxuKSxuLmN1cnJlbnRWYWx1ZT1lLHRoaXMuX2FkZFRvQWRkaXRpb25zKG4pLG59X3Jlc2V0KCl7aWYodGhpcy5pc0RpcnR5KXtsZXQgdDtmb3IodGhpcy5fcHJldmlvdXNNYXBIZWFkPXRoaXMuX21hcEhlYWQsdD10aGlzLl9wcmV2aW91c01hcEhlYWQ7bnVsbCE9PXQ7dD10Ll9uZXh0KXQuX25leHRQcmV2aW91cz10Ll9uZXh0O2Zvcih0PXRoaXMuX2NoYW5nZXNIZWFkO251bGwhPT10O3Q9dC5fbmV4dENoYW5nZWQpdC5wcmV2aW91c1ZhbHVlPXQuY3VycmVudFZhbHVlO2Zvcih0PXRoaXMuX2FkZGl0aW9uc0hlYWQ7bnVsbCE9dDt0PXQuX25leHRBZGRlZCl0LnByZXZpb3VzVmFsdWU9dC5jdXJyZW50VmFsdWU7dGhpcy5fY2hhbmdlc0hlYWQ9dGhpcy5fY2hhbmdlc1RhaWw9bnVsbCx0aGlzLl9hZGRpdGlvbnNIZWFkPXRoaXMuX2FkZGl0aW9uc1RhaWw9bnVsbCx0aGlzLl9yZW1vdmFsc0hlYWQ9bnVsbH19X21heWJlQWRkVG9DaGFuZ2VzKHQsZSl7T2JqZWN0LmlzKGUsdC5jdXJyZW50VmFsdWUpfHwodC5wcmV2aW91c1ZhbHVlPXQuY3VycmVudFZhbHVlLHQuY3VycmVudFZhbHVlPWUsdGhpcy5fYWRkVG9DaGFuZ2VzKHQpKX1fYWRkVG9BZGRpdGlvbnModCl7bnVsbD09PXRoaXMuX2FkZGl0aW9uc0hlYWQ/dGhpcy5fYWRkaXRpb25zSGVhZD10aGlzLl9hZGRpdGlvbnNUYWlsPXQ6KHRoaXMuX2FkZGl0aW9uc1RhaWwuX25leHRBZGRlZD10LHRoaXMuX2FkZGl0aW9uc1RhaWw9dCl9X2FkZFRvQ2hhbmdlcyh0KXtudWxsPT09dGhpcy5fY2hhbmdlc0hlYWQ/dGhpcy5fY2hhbmdlc0hlYWQ9dGhpcy5fY2hhbmdlc1RhaWw9dDoodGhpcy5fY2hhbmdlc1RhaWwuX25leHRDaGFuZ2VkPXQsdGhpcy5fY2hhbmdlc1RhaWw9dCl9X2ZvckVhY2godCxlKXt0IGluc3RhbmNlb2YgTWFwP3QuZm9yRWFjaChlKTpPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChuPT5lKHRbbl0sbikpKX19Y2xhc3MgdWJ7Y29uc3RydWN0b3IodCl7dGhpcy5rZXk9dCx0aGlzLnByZXZpb3VzVmFsdWU9bnVsbCx0aGlzLmN1cnJlbnRWYWx1ZT1udWxsLHRoaXMuX25leHRQcmV2aW91cz1udWxsLHRoaXMuX25leHQ9bnVsbCx0aGlzLl9wcmV2PW51bGwsdGhpcy5fbmV4dEFkZGVkPW51bGwsdGhpcy5fbmV4dFJlbW92ZWQ9bnVsbCx0aGlzLl9uZXh0Q2hhbmdlZD1udWxsfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gZ2IoKXtyZXR1cm4gbmV3IGhiKFtuZXcgYWJdKX1jbGFzcyBoYntjb25zdHJ1Y3Rvcih0KXt0aGlzLmZhY3Rvcmllcz10fXN0YXRpYyBjcmVhdGUodCxlKXtpZihudWxsIT1lKXtjb25zdCBuPWUuZmFjdG9yaWVzLnNsaWNlKCk7dD10LmNvbmNhdChuKX1yZXR1cm4gbmV3IGhiKHQpfXN0YXRpYyBleHRlbmQodCl7cmV0dXJue3Byb3ZpZGU6aGIsdXNlRmFjdG9yeTplPT5oYi5jcmVhdGUodCxlfHxnYigpKSxkZXBzOltbaGIsbmV3IGpyLG5ldyBCcl1dfX1maW5kKHQpe2NvbnN0IGU9dGhpcy5mYWN0b3JpZXMuZmluZCgoZT0+ZS5zdXBwb3J0cyh0KSkpO2lmKG51bGwhPWUpcmV0dXJuIGU7dGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBhIGRpZmZlciBzdXBwb3J0aW5nIG9iamVjdCAnJHt0fScgb2YgdHlwZSAnJHsoZnVuY3Rpb24gbih0KXtyZXR1cm4gdC5uYW1lfHx0eXBlb2YgdH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSh0KX0nYCl9fWZ1bmN0aW9uIGJiKCl7cmV0dXJuIG5ldyB5YihbbmV3IG1iXSl9aGIuybVwcm92PVNuKHt0b2tlbjpoYixwcm92aWRlZEluOiJyb290IixmYWN0b3J5OmdifSk7Y2xhc3MgeWJ7Y29uc3RydWN0b3IodCl7dGhpcy5mYWN0b3JpZXM9dH1zdGF0aWMgY3JlYXRlKHQsZSl7aWYoZSl7Y29uc3Qgbj1lLmZhY3Rvcmllcy5zbGljZSgpO3Q9dC5jb25jYXQobil9cmV0dXJuIG5ldyB5Yih0KX1zdGF0aWMgZXh0ZW5kKHQpe3JldHVybntwcm92aWRlOnliLHVzZUZhY3Rvcnk6ZT0+eWIuY3JlYXRlKHQsZXx8YmIoKSksZGVwczpbW3liLG5ldyBqcixuZXcgQnJdXX19ZmluZCh0KXtjb25zdCBlPXRoaXMuZmFjdG9yaWVzLmZpbmQoKGU9PmUuc3VwcG9ydHModCkpKTtpZihlKXJldHVybiBlO3Rocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgYSBkaWZmZXIgc3VwcG9ydGluZyBvYmplY3QgJyR7dH0nYCl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gX2IodCxlLG4sbyxpPSExKXtmb3IoO251bGwhPT1uOyl7bmdEZXZNb2RlJiZnYShuLDYzKTtjb25zdCBhPWVbbi5pbmRleF07aWYobnVsbCE9PWEmJm8ucHVzaChsaShhKSksd28oYSkpZm9yKGxldCB0PU9vO3Q8YS5sZW5ndGg7dCsrKXtjb25zdCBlPWFbdF0sbj1lWzFdLmZpcnN0Q2hpbGQ7bnVsbCE9PW4mJl9iKGVbMV0sZSxuLG8pfWNvbnN0IHI9bi50eXBlO2lmKDgmcilfYih0LGUsbi5jaGlsZCxvKTtlbHNlIGlmKDMyJnIpe2NvbnN0IHQ9VGwobixlKTtsZXQgaTtmb3IoO2k9dCgpOylvLnB1c2goaSl9ZWxzZSBpZigxNiZyKXtjb25zdCB0PWxjKGUsbik7aWYoQXJyYXkuaXNBcnJheSh0KSlvLnB1c2goLi4udCk7ZWxzZXtjb25zdCBuPU5sKGVbMTZdKTtuZ0Rldk1vZGUmJlVvKG4pLF9iKG5bMV0sbix0LG8sITApfX1uPWk/bi5wcm9qZWN0aW9uTmV4dDpuLm5leHR9cmV0dXJuIG99Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL3liLsm1cHJvdj1Tbih7dG9rZW46eWIscHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpiYn0pO2NsYXNzIENie2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fbFZpZXc9dCx0aGlzLl9jZFJlZkluamVjdGluZ1ZpZXc9ZSx0aGlzLl9hcHBSZWY9bnVsbCx0aGlzLl9hdHRhY2hlZFRvVmlld0NvbnRhaW5lcj0hMX1nZXQgcm9vdE5vZGVzKCl7Y29uc3QgdD10aGlzLl9sVmlldyxlPXRbMV07cmV0dXJuIF9iKGUsdCxlLmZpcnN0Q2hpbGQsW10pfWdldCBjb250ZXh0KCl7cmV0dXJuIHRoaXMuX2xWaWV3WzhdfXNldCBjb250ZXh0KHQpe3RoaXMuX2xWaWV3WzhdPXR9Z2V0IGRlc3Ryb3llZCgpe3JldHVybiAyNTY9PSgyNTYmdGhpcy5fbFZpZXdbMl0pfWRlc3Ryb3koKXtpZih0aGlzLl9hcHBSZWYpdGhpcy5fYXBwUmVmLmRldGFjaFZpZXcodGhpcyk7ZWxzZSBpZih0aGlzLl9hdHRhY2hlZFRvVmlld0NvbnRhaW5lcil7Y29uc3QgdD10aGlzLl9sVmlld1szXTtpZih3byh0KSl7Y29uc3QgZT10WzhdLG49ZT9lLmluZGV4T2YodGhpcyk6LTE7bj4tMSYmKG5nRGV2TW9kZSYmZ24obix0LmluZGV4T2YodGhpcy5fbFZpZXcpLU9vLCJBbiBhdHRhY2hlZCB2aWV3IHNob3VsZCBiZSBpbiB0aGUgc2FtZSBwb3NpdGlvbiB3aXRoaW4gaXRzIGNvbnRhaW5lciBhcyBpdHMgVmlld1JlZiBpbiB0aGUgVklFV19SRUZTIGFycmF5LiIpLFlsKHQsbiksdXIoZSxuKSl9dGhpcy5fYXR0YWNoZWRUb1ZpZXdDb250YWluZXI9ITF9cWwodGhpcy5fbFZpZXdbMV0sdGhpcy5fbFZpZXcpfW9uRGVzdHJveSh0KXtUZCh0aGlzLl9sVmlld1sxXSx0aGlzLl9sVmlldyxudWxsLHQpfW1hcmtGb3JDaGVjaygpe29wKHRoaXMuX2NkUmVmSW5qZWN0aW5nVmlld3x8dGhpcy5fbFZpZXcpfWRldGFjaCgpe3RoaXMuX2xWaWV3WzJdJj0tMTI5fXJlYXR0YWNoKCl7dGhpcy5fbFZpZXdbMl18PTEyOH1kZXRlY3RDaGFuZ2VzKCl7YXAodGhpcy5fbFZpZXdbMV0sdGhpcy5fbFZpZXcsdGhpcy5jb250ZXh0KX1jaGVja05vQ2hhbmdlcygpeyEoZnVuY3Rpb24gdChlLG4sbyl7VGkoITApO3RyeXthcChlLG4sbyl9ZmluYWxseXtUaSghMSl9fSkodGhpcy5fbFZpZXdbMV0sdGhpcy5fbFZpZXcsdGhpcy5jb250ZXh0KX1hdHRhY2hUb1ZpZXdDb250YWluZXJSZWYoKXtpZih0aGlzLl9hcHBSZWYpdGhyb3cgbmV3IEVycm9yKCJUaGlzIHZpZXcgaXMgYWxyZWFkeSBhdHRhY2hlZCBkaXJlY3RseSB0byB0aGUgQXBwbGljYXRpb25SZWYhIik7dGhpcy5fYXR0YWNoZWRUb1ZpZXdDb250YWluZXI9ITB9ZGV0YWNoRnJvbUFwcFJlZigpe3RoaXMuX2FwcFJlZj1udWxsLChmdW5jdGlvbiB0KGUsbil7bWMoZSxuLG5bMTFdLDIsbnVsbCxudWxsKX0pKHRoaXMuX2xWaWV3WzFdLHRoaXMuX2xWaWV3KX1hdHRhY2hUb0FwcFJlZih0KXtpZih0aGlzLl9hdHRhY2hlZFRvVmlld0NvbnRhaW5lcil0aHJvdyBuZXcgRXJyb3IoIlRoaXMgdmlldyBpcyBhbHJlYWR5IGF0dGFjaGVkIHRvIGEgVmlld0NvbnRhaW5lciEiKTt0aGlzLl9hcHBSZWY9dH19Y2xhc3MgTWIgZXh0ZW5kcyBDYntjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLl92aWV3PXR9ZGV0ZWN0Q2hhbmdlcygpe3JwKHRoaXMuX3ZpZXcpfWNoZWNrTm9DaGFuZ2VzKCl7IShmdW5jdGlvbiB0KGUpe1RpKCEwKTt0cnl7cnAoZSl9ZmluYWxseXtUaSghMSl9fSkodGhpcy5fdmlldyl9Z2V0IGNvbnRleHQoKXtyZXR1cm4gbnVsbH19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IHZiPWZ1bmN0aW9uIHhiKHQpe3JldHVybihmdW5jdGlvbiBlKHQsbixvKXtpZihTbyh0KSYmIW8pe2NvbnN0IGU9ZmkodC5pbmRleCxuKTtyZXR1cm4gbmV3IENiKGUsZSl9aWYoNDcmdC50eXBlKXtyZXR1cm4gbmV3IENiKG5bMTZdLG4pfXJldHVybiBudWxsfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKHdpKCkseGkoKSwxNj09KDE2JnQpKX07Y2xhc3MgT2J7fU9iLl9fTkdfRUxFTUVOVF9JRF9fPXZiO2NvbnN0IFBiPVtuZXcgbWJdLHdiPVtuZXcgYWJdLGtiPW5ldyBoYih3YiksU2I9bmV3IHliKFBiKSxEYj1mdW5jdGlvbiBSYigpe3JldHVybiBOYih3aSgpLHhpKCkpfTtjbGFzcyBFYnt9RWIuX19OR19FTEVNRU5UX0lEX189RGI7Y29uc3QgQWI9RWIsVGI9Y2xhc3MgZXh0ZW5kcyBBYntjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIoKSx0aGlzLl9kZWNsYXJhdGlvbkxWaWV3PXQsdGhpcy5fZGVjbGFyYXRpb25UQ29udGFpbmVyPWUsdGhpcy5lbGVtZW50UmVmPW59Y3JlYXRlRW1iZWRkZWRWaWV3KHQpe2NvbnN0IGU9dGhpcy5fZGVjbGFyYXRpb25UQ29udGFpbmVyLnRWaWV3cyxuPXlkKHRoaXMuX2RlY2xhcmF0aW9uTFZpZXcsZSx0LDE2LG51bGwsZS5kZWNsVE5vZGUsbnVsbCxudWxsLG51bGwsbnVsbCksbz10aGlzLl9kZWNsYXJhdGlvbkxWaWV3W3RoaXMuX2RlY2xhcmF0aW9uVENvbnRhaW5lci5pbmRleF07bmdEZXZNb2RlJiZJbyhvKSxuWzE3XT1vO2NvbnN0IGk9dGhpcy5fZGVjbGFyYXRpb25MVmlld1sxOV07cmV0dXJuIG51bGwhPT1pJiYoblsxOV09aS5jcmVhdGVFbWJlZGRlZFZpZXcoZSkpLHZkKGUsbix0KSxuZXcgQ2Iobil9fTtmdW5jdGlvbiBOYih0LGUpe3JldHVybiA0JnQudHlwZT8obmdEZXZNb2RlJiZ4bih0LnRWaWV3cywiVFZpZXcgbXVzdCBiZSBhbGxvY2F0ZWQiKSxuZXcgVGIoZSx0LHFoKHQsZSkpKTpudWxsfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyB6Ynt9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBJYj1mdW5jdGlvbiBIYigpe3JldHVybiBVYih3aSgpLHhpKCkpfTtjbGFzcyBGYnt9RmIuX19OR19FTEVNRU5UX0lEX189SWI7Y29uc3QgTGI9RmIsQmI9Y2xhc3MgZXh0ZW5kcyBMYntjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIoKSx0aGlzLl9sQ29udGFpbmVyPXQsdGhpcy5faG9zdFROb2RlPWUsdGhpcy5faG9zdExWaWV3PW59Z2V0IGVsZW1lbnQoKXtyZXR1cm4gcWgodGhpcy5faG9zdFROb2RlLHRoaXMuX2hvc3RMVmlldyl9Z2V0IGluamVjdG9yKCl7cmV0dXJuIG5ldyBqYSh0aGlzLl9ob3N0VE5vZGUsdGhpcy5faG9zdExWaWV3KX1nZXQgcGFyZW50SW5qZWN0b3IoKXtjb25zdCB0PVJhKHRoaXMuX2hvc3RUTm9kZSx0aGlzLl9ob3N0TFZpZXcpO2lmKE1hKHQpKXtjb25zdCBlPXhhKHQsdGhpcy5faG9zdExWaWV3KSxuPXZhKHQpO25nRGV2TW9kZSYmV28oZSxuKTtyZXR1cm4gbmV3IGphKGVbMV0uZGF0YVtuKzhdLGUpfXJldHVybiBuZXcgamEobnVsbCx0aGlzLl9ob3N0TFZpZXcpfWNsZWFyKCl7Zm9yKDt0aGlzLmxlbmd0aD4wOyl0aGlzLnJlbW92ZSh0aGlzLmxlbmd0aC0xKX1nZXQodCl7Y29uc3QgZT1WYih0aGlzLl9sQ29udGFpbmVyKTtyZXR1cm4gbnVsbCE9PWUmJmVbdF18fG51bGx9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLl9sQ29udGFpbmVyLmxlbmd0aC1Pb31jcmVhdGVFbWJlZGRlZFZpZXcodCxlLG4pe2NvbnN0IG89dC5jcmVhdGVFbWJlZGRlZFZpZXcoZXx8e30pO3JldHVybiB0aGlzLmluc2VydChvLG4pLG99Y3JlYXRlQ29tcG9uZW50KHQsZSxuLG8saSl7Y29uc3QgYT1ufHx0aGlzLnBhcmVudEluamVjdG9yO2lmKCFpJiZudWxsPT10Lm5nTW9kdWxlJiZhKXtjb25zdCB0PWEuZ2V0KHpiLG51bGwpO3QmJihpPXQpfWNvbnN0IHI9dC5jcmVhdGUoYSxvLHZvaWQgMCxpKTtyZXR1cm4gdGhpcy5pbnNlcnQoci5ob3N0VmlldyxlKSxyfWluc2VydCh0LGUpe2NvbnN0IG49dC5fbFZpZXcsbz1uWzFdO2lmKG5nRGV2TW9kZSYmdC5kZXN0cm95ZWQpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgaW5zZXJ0IGEgZGVzdHJveWVkIFZpZXcgaW4gYSBWaWV3Q29udGFpbmVyISIpO2lmKChmdW5jdGlvbiBpKHQpe3JldHVybiB3byh0WzNdKX0pKG4pKXtjb25zdCBlPXRoaXMuaW5kZXhPZih0KTtpZigtMSE9PWUpdGhpcy5kZXRhY2goZSk7ZWxzZXtjb25zdCBlPW5bM107bmdEZXZNb2RlJiZnbih3byhlKSwhMCwiQW4gYXR0YWNoZWQgdmlldyBzaG91bGQgaGF2ZSBpdHMgUEFSRU5UIHBvaW50IHRvIGEgY29udGFpbmVyLiIpO2NvbnN0IG89bmV3IEJiKGUsZVs2XSxlWzNdKTtvLmRldGFjaChvLmluZGV4T2YodCkpfX1jb25zdCBhPXRoaXMuX2FkanVzdEluZGV4KGUpLHI9dGhpcy5fbENvbnRhaW5lcjtXbChvLG4scixhKTtjb25zdCBzPWNjKGEsciksbD1uWzExXSxjPXRjKGwscls3XSk7cmV0dXJuIG51bGwhPT1jJiYoZnVuY3Rpb24gZCh0LGUsbixvLGksYSl7b1swXT1pLG9bNl09ZSxtYyh0LG8sbiwxLGksYSl9KShvLHJbNl0sbCxuLGMscyksdC5hdHRhY2hUb1ZpZXdDb250YWluZXJSZWYoKSxmcihqYihyKSxhLHQpLHR9bW92ZSh0LGUpe2lmKG5nRGV2TW9kZSYmdC5kZXN0cm95ZWQpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgbW92ZSBhIGRlc3Ryb3llZCBWaWV3IGluIGEgVmlld0NvbnRhaW5lciEiKTtyZXR1cm4gdGhpcy5pbnNlcnQodCxlKX1pbmRleE9mKHQpe2NvbnN0IGU9VmIodGhpcy5fbENvbnRhaW5lcik7cmV0dXJuIG51bGwhPT1lP2UuaW5kZXhPZih0KTotMX1yZW1vdmUodCl7Y29uc3QgZT10aGlzLl9hZGp1c3RJbmRleCh0LC0xKSxuPVlsKHRoaXMuX2xDb250YWluZXIsZSk7biYmKHVyKGpiKHRoaXMuX2xDb250YWluZXIpLGUpLHFsKG5bMV0sbikpfWRldGFjaCh0KXtjb25zdCBlPXRoaXMuX2FkanVzdEluZGV4KHQsLTEpLG49WWwodGhpcy5fbENvbnRhaW5lcixlKTtyZXR1cm4gbiYmbnVsbCE9dXIoamIodGhpcy5fbENvbnRhaW5lciksZSk/bmV3IENiKG4pOm51bGx9X2FkanVzdEluZGV4KHQsZT0wKXtyZXR1cm4gbnVsbD09dD90aGlzLmxlbmd0aCtlOihuZ0Rldk1vZGUmJihNbih0LC0xLGBWaWV3UmVmIGluZGV4IG11c3QgYmUgcG9zaXRpdmUsIGdvdCAke3R9YCksX24odCx0aGlzLmxlbmd0aCsxK2UsImluZGV4IikpLHQpfX07ZnVuY3Rpb24gVmIodCl7cmV0dXJuIHRbOF19ZnVuY3Rpb24gamIodCl7cmV0dXJuIHRbOF18fCh0WzhdPVtdKX1mdW5jdGlvbiBVYih0LGUpe2xldCBuO25nRGV2TW9kZSYmZ2EodCwxNSk7Y29uc3Qgbz1lW3QuaW5kZXhdO2lmKHdvKG8pKW49bztlbHNle2xldCBpO2lmKDgmdC50eXBlKWk9bGkobyk7ZWxzZXtjb25zdCBuPWVbMTFdO25nRGV2TW9kZSYmbmdEZXZNb2RlLnJlbmRlcmVyQ3JlYXRlQ29tbWVudCsrLGk9bi5jcmVhdGVDb21tZW50KG5nRGV2TW9kZT8iY29udGFpbmVyIjoiIik7Y29uc3Qgbz1kaSh0LGUpO0psKG4sdGMobixvKSxpLChmdW5jdGlvbiBpKHQsZSl7cmV0dXJuIHJpKHQpP3QubmV4dFNpYmxpbmcoZSk6ZS5uZXh0U2libGluZ30pKG4sbyksITEpfWVbdC5pbmRleF09bj1RZChvLGUsaSx0KSxucChlLG4pfXJldHVybiBuZXcgQmIobix0LGUpfWNvbnN0IFdiPW5ldyBNYXA7ZnVuY3Rpb24gR2IodCl7bGV0IGU9V2IuZ2V0KHQpO3JldHVybiBlfHwoZT1LZSh0KSsiXyIrV2Iuc2l6ZSxXYi5zZXQodCxlKSksZX1HYihOcCksR2IoeXApLEdiKHpiKSwKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCkdiKCRoKSxHYihLaCksR2IoRmIpLEdiKEViKSxHYihPYiksR2IoTnApLEdiKHlwKTtjb25zdCBZYj17fTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgcWIgZXh0ZW5kcyBHaHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMubmdNb2R1bGU9dH1yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0KXtuZ0Rldk1vZGUmJihmdW5jdGlvbiBlKHQsbj0iVHlwZSBwYXNzZWQgaW4gaXMgbm90IENvbXBvbmVudFR5cGUsIGl0IGRvZXMgbm90IGhhdmUgJ8m1Y21wJyBwcm9wZXJ0eS4iKXt5byh0KXx8T24obil9KSh0KTtjb25zdCBuPXlvKHQpO3JldHVybiBuZXcgS2Iobix0aGlzLm5nTW9kdWxlKX19ZnVuY3Rpb24gWmIodCl7Y29uc3QgZT1bXTtmb3IobGV0IG4gaW4gdClpZih0Lmhhc093blByb3BlcnR5KG4pKXtlLnB1c2goe3Byb3BOYW1lOnRbbl0sdGVtcGxhdGVOYW1lOm59KX1yZXR1cm4gZX1jb25zdCBYYj1uZXcgZXIoIlNDSEVEVUxFUl9UT0tFTiIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6KCk9PnhsfSk7Y2xhc3MgS2IgZXh0ZW5kcyBVaHtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKCksdGhpcy5jb21wb25lbnREZWY9dCx0aGlzLm5nTW9kdWxlPWUsdGhpcy5jb21wb25lbnRUeXBlPXQudHlwZSx0aGlzLnNlbGVjdG9yPShmdW5jdGlvbiBuKHQpe3JldHVybiB0Lm1hcChrYykuam9pbigiLCIpfSkodC5zZWxlY3RvcnMpLHRoaXMubmdDb250ZW50U2VsZWN0b3JzPXQubmdDb250ZW50U2VsZWN0b3JzP3QubmdDb250ZW50U2VsZWN0b3JzOltdLHRoaXMuaXNCb3VuZFRvTW9kdWxlPSEhZX1nZXQgaW5wdXRzKCl7cmV0dXJuIFpiKHRoaXMuY29tcG9uZW50RGVmLmlucHV0cyl9Z2V0IG91dHB1dHMoKXtyZXR1cm4gWmIodGhpcy5jb21wb25lbnREZWYub3V0cHV0cyl9Y3JlYXRlKHQsZSxuLG8pe2NvbnN0IGk9KG89b3x8dGhpcy5uZ01vZHVsZSk/KGZ1bmN0aW9uIGEodCxlKXtyZXR1cm57Z2V0OihuLG8saSk9Pntjb25zdCBhPXQuZ2V0KG4sWWIsaSk7cmV0dXJuIGEhPT1ZYnx8bz09PVliP2E6ZS5nZXQobixvLGkpfX19KSh0LG8uaW5qZWN0b3IpOnQscj1pLmdldChRaCxzaSkscz1pLmdldChuYixudWxsKSxsPXIuY3JlYXRlUmVuZGVyZXIobnVsbCx0aGlzLmNvbXBvbmVudERlZiksYz10aGlzLmNvbXBvbmVudERlZi5zZWxlY3RvcnNbMF1bMF18fCJkaXYiLGQ9bj9BZChsLG4sdGhpcy5jb21wb25lbnREZWYuZW5jYXBzdWxhdGlvbik6VWwoci5jcmVhdGVSZW5kZXJlcihudWxsLHRoaXMuY29tcG9uZW50RGVmKSxjLChmdW5jdGlvbiBwKHQpe2NvbnN0IGU9dC50b0xvd2VyQ2FzZSgpO3JldHVybiJzdmciPT09ZT9laToibWF0aCI9PT1lP25pOm51bGx9KShjKSksbT10aGlzLmNvbXBvbmVudERlZi5vblB1c2g/NTc2OjUyOCxmPShmdW5jdGlvbiB1KHQsZSl7cmV0dXJue2NvbXBvbmVudHM6W10sc2NoZWR1bGVyOnR8fHhsLGNsZWFuOmNwLHBsYXllckhhbmRsZXI6ZXx8bnVsbCxmbGFnczowfX0pKCksZz1SZCgwLG51bGwsbnVsbCwxLDAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsKSxoPXlkKG51bGwsZyxmLG0sbnVsbCxudWxsLHIsbCxzLGkpO2xldCBiLHk7cWkoaCk7dHJ5e2NvbnN0IHQ9KGZ1bmN0aW9uIG8odCxlLG4saSxhLHIpe2NvbnN0IHM9blsxXTtuZ0Rldk1vZGUmJnduKG4sMjApLG5bMjBdPXQ7Y29uc3QgbD1fZChzLDIwLDIsIiNob3N0IixudWxsKSxjPWwubWVyZ2VkQXR0cnM9ZS5ob3N0QXR0cnM7bnVsbCE9PWMmJihocChsLGMsITApLG51bGwhPT10JiYoaGEoYSx0LGMpLG51bGwhPT1sLmNsYXNzZXMmJmdjKGEsdCxsLmNsYXNzZXMpLG51bGwhPT1sLnN0eWxlcyYmdWMoYSx0LGwuc3R5bGVzKSkpO2NvbnN0IGQ9aS5jcmVhdGVSZW5kZXJlcih0LGUpLHA9eWQobixEZChlKSxudWxsLGUub25QdXNoPzY0OjE2LG5bMjBdLGwsaSxkLHJ8fG51bGwsbnVsbCk7cmV0dXJuIHMuZmlyc3RDcmVhdGVQYXNzJiYoRWEoa2EobCxuKSxzLGUudHlwZSksamQocyxsKSxXZChsLG4ubGVuZ3RoLDEpKSxucChuLHApLG5bMjBdPXB9KShkLHRoaXMuY29tcG9uZW50RGVmLGgscixsKTtpZihkKWlmKG4paGEobCxkLFsibmctdmVyc2lvbiIsaWIuZnVsbF0pO2Vsc2V7Y29uc3R7YXR0cnM6dCxjbGFzc2VzOmV9PShmdW5jdGlvbiBuKHQpe2NvbnN0IGU9W10sbj1bXTtsZXQgbz0xLGk9Mjtmb3IoO288dC5sZW5ndGg7KXtsZXQgYT10W29dO2lmKCJzdHJpbmciPT10eXBlb2YgYSkyPT09aT8iIiE9PWEmJmUucHVzaChhLHRbKytvXSk6OD09PWkmJm4ucHVzaChhKTtlbHNle2lmKCF2YyhpKSlicmVhaztpPWF9bysrfXJldHVybnthdHRyczplLGNsYXNzZXM6bn19KSh0aGlzLmNvbXBvbmVudERlZi5zZWxlY3RvcnNbMF0pO3QmJmhhKGwsZCx0KSxlJiZlLmxlbmd0aD4wJiZnYyhsLGQsZS5qb2luKCIgIikpfWlmKHk9cGkoZyx2byksdm9pZCAwIT09ZSl7Y29uc3QgdD15LnByb2plY3Rpb249W107Zm9yKGxldCBuPTA7bjx0aGlzLm5nQ29udGVudFNlbGVjdG9ycy5sZW5ndGg7bisrKXtjb25zdCBvPWVbbl07dC5wdXNoKG51bGwhPW8/QXJyYXkuZnJvbShvKTpudWxsKX19Yj1YcCh0LHRoaXMuY29tcG9uZW50RGVmLGgsZixbS3BdKSx2ZChnLGgsbnVsbCl9ZmluYWxseXtRaSgpfXJldHVybiBuZXcgSmIodGhpcy5jb21wb25lbnRUeXBlLGIscWgoeSxoKSxoLHkpfX1uZXcgcWI7Y2xhc3MgSmIgZXh0ZW5kcyBjbGFzc3t9e2NvbnN0cnVjdG9yKHQsZSxuLG8saSl7c3VwZXIoKSx0aGlzLmxvY2F0aW9uPW4sdGhpcy5fcm9vdExWaWV3PW8sdGhpcy5fdE5vZGU9aSx0aGlzLmluc3RhbmNlPWUsdGhpcy5ob3N0Vmlldz10aGlzLmNoYW5nZURldGVjdG9yUmVmPW5ldyBNYihvKSx0aGlzLmNvbXBvbmVudFR5cGU9dH1nZXQgaW5qZWN0b3IoKXtyZXR1cm4gbmV3IGphKHRoaXMuX3ROb2RlLHRoaXMuX3Jvb3RMVmlldyl9ZGVzdHJveSgpe3RoaXMuaG9zdFZpZXcuZGVzdHJveSgpfW9uRGVzdHJveSh0KXt0aGlzLmhvc3RWaWV3Lm9uRGVzdHJveSh0KX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIFFiKHQsZSxuLG8pe3JldHVybiBWbigoKCk9Pntjb25zdCBpPXQ7bnVsbCE9PWUmJihpLmhhc093blByb3BlcnR5KCJkZWNvcmF0b3JzIikmJnZvaWQgMCE9PWkuZGVjb3JhdG9ycz9pLmRlY29yYXRvcnMucHVzaCguLi5lKTppLmRlY29yYXRvcnM9ZSksbnVsbCE9PW4mJihpLmN0b3JQYXJhbWV0ZXJzPW4pLG51bGwhPT1vJiYoaS5wcm9wRGVjb3JhdG9ycz1pLmhhc093blByb3BlcnR5KCJwcm9wRGVjb3JhdG9ycyIpJiZ2b2lkIDAhPT1pLnByb3BEZWNvcmF0b3JzP09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxpLnByb3BEZWNvcmF0b3JzKSxvKTpvKX0pKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgJGI9bmV3IE1hcDtmdW5jdGlvbiB0eSh0KXtjb25zdCBlPW5ldyBTZXQ7IShmdW5jdGlvbiB0KG4pe2NvbnN0IG89TW8obiwhMCksaT1vLmlkO2lmKG51bGwhPT1pKXtjb25zdCB0PSRiLmdldChpKTshKGZ1bmN0aW9uIGEodCxlLG4pe2lmKGUmJmUhPT1uKXRocm93IG5ldyBFcnJvcihgRHVwbGljYXRlIG1vZHVsZSByZWdpc3RlcmVkIGZvciAke3R9IC0gJHtLZShlKX0gdnMgJHtLZShlLm5hbWUpfWApfSkoaSx0LG4pLCRiLnNldChpLG4pfWNvbnN0IHI9U2woby5pbXBvcnRzKTtmb3IoY29uc3QgbiBvZiByKWUuaGFzKG4pfHwoZS5hZGQobiksdChuKSl9KSh0KX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgZXkgZXh0ZW5kcyB6Yntjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKCksdGhpcy5fcGFyZW50PWUsdGhpcy5fYm9vdHN0cmFwQ29tcG9uZW50cz1bXSx0aGlzLmluamVjdG9yPXRoaXMsdGhpcy5kZXN0cm95Q2JzPVtdLHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPW5ldyBxYih0aGlzKTtjb25zdCBuPU1vKHQpO25nRGV2TW9kZSYmeG4obixgTmdNb2R1bGUgJyR7S2UodCl9JyBpcyBub3QgYSBzdWJ0eXBlIG9mICdOZ01vZHVsZVR5cGUnLmApO2NvbnN0IG89KGZ1bmN0aW9uIGkodCl7cmV0dXJuIHRbb29dfHxudWxsfSkodCk7byYmUGcobyksdGhpcy5fYm9vdHN0cmFwQ29tcG9uZW50cz1TbChuLmJvb3RzdHJhcCksdGhpcy5fcjNJbmplY3Rvcj1QcCh0LGUsW3twcm92aWRlOnpiLHVzZVZhbHVlOnRoaXN9LHtwcm92aWRlOkdoLHVzZVZhbHVlOnRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyfV0sS2UodCkpLHRoaXMuX3IzSW5qZWN0b3IuX3Jlc29sdmVJbmplY3RvckRlZlR5cGVzKCksdGhpcy5pbnN0YW5jZT10aGlzLmdldCh0KX1nZXQodCxlPU5wLlRIUk9XX0lGX05PVF9GT1VORCxuPUhuLkRlZmF1bHQpe3JldHVybiB0PT09TnB8fHQ9PT16Ynx8dD09PXlwP3RoaXM6dGhpcy5fcjNJbmplY3Rvci5nZXQodCxlLG4pfWRlc3Ryb3koKXtuZ0Rldk1vZGUmJnhuKHRoaXMuZGVzdHJveUNicywiTmdNb2R1bGUgYWxyZWFkeSBkZXN0cm95ZWQiKTtjb25zdCB0PXRoaXMuX3IzSW5qZWN0b3I7IXQuZGVzdHJveWVkJiZ0LmRlc3Ryb3koKSx0aGlzLmRlc3Ryb3lDYnMuZm9yRWFjaCgodD0+dCgpKSksdGhpcy5kZXN0cm95Q2JzPW51bGx9b25EZXN0cm95KHQpe25nRGV2TW9kZSYmeG4odGhpcy5kZXN0cm95Q2JzLCJOZ01vZHVsZSBhbHJlYWR5IGRlc3Ryb3llZCIpLHRoaXMuZGVzdHJveUNicy5wdXNoKHQpfX1jbGFzcyBueSBleHRlbmRzIGNsYXNze317Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLm1vZHVsZVR5cGU9dDtudWxsIT09TW8odCkmJnR5KHQpfWNyZWF0ZSh0KXtyZXR1cm4gbmV3IGV5KHRoaXMubW9kdWxlVHlwZSx0KX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIG95KHQsZSxuKXtjb25zdCBvPU5pKCkrdCxpPXhpKCk7cmV0dXJuIGlbb109PT1TYz9tbShpLG8sbj9lLmNhbGwobik6ZSgpKTpmbShpLG8pfWZ1bmN0aW9uIGl5KHQsZSxuLG8pe3JldHVybiB1eSh4aSgpLE5pKCksdCxlLG4sbyl9ZnVuY3Rpb24gYXkodCxlLG4sbyxpKXtyZXR1cm4gZ3koeGkoKSxOaSgpLHQsZSxuLG8saSl9ZnVuY3Rpb24gcnkodCxlLG4sbyxpLGEpe3JldHVybiBoeSh4aSgpLE5pKCksdCxlLG4sbyxpLGEpfWZ1bmN0aW9uIHN5KHQsZSxuLG8saSxhLHIpe3JldHVybiBieSh4aSgpLE5pKCksdCxlLG4sbyxpLGEscil9ZnVuY3Rpb24gbHkodCxlLG4sbyxpLGEscixzKXtjb25zdCBsPU5pKCkrdCxjPXhpKCksZD1ibShjLGwsbixvLGksYSk7cmV0dXJuIHVtKGMsbCs0LHIpfHxkP21tKGMsbCs1LHM/ZS5jYWxsKHMsbixvLGksYSxyKTplKG4sbyxpLGEscikpOmZtKGMsbCs1KX1mdW5jdGlvbiBjeSh0LGUsbixvLGksYSxyLHMsbCl7Y29uc3QgYz1OaSgpK3QsZD14aSgpLHA9Ym0oZCxjLG4sbyxpLGEpO3JldHVybiBnbShkLGMrNCxyLHMpfHxwP21tKGQsYys2LGw/ZS5jYWxsKGwsbixvLGksYSxyLHMpOmUobixvLGksYSxyLHMpKTpmbShkLGMrNil9ZnVuY3Rpb24gZHkodCxlLG4sbyxpLGEscixzLGwsYyl7Y29uc3QgZD1OaSgpK3QscD14aSgpO2xldCBtPWJtKHAsZCxuLG8saSxhKTtyZXR1cm4gaG0ocCxkKzQscixzLGwpfHxtP21tKHAsZCs3LGM/ZS5jYWxsKGMsbixvLGksYSxyLHMsbCk6ZShuLG8saSxhLHIscyxsKSk6Zm0ocCxkKzcpfWZ1bmN0aW9uIHB5KHQsZSxuLG8saSxhLHIscyxsLGMsZCl7Y29uc3QgcD1OaSgpK3QsbT14aSgpLGY9Ym0obSxwLG4sbyxpLGEpO3JldHVybiBibShtLHArNCxyLHMsbCxjKXx8Zj9tbShtLHArOCxkP2UuY2FsbChkLG4sbyxpLGEscixzLGwsYyk6ZShuLG8saSxhLHIscyxsLGMpKTpmbShtLHArOCl9ZnVuY3Rpb24gbXkodCxlLG4sbyl7cmV0dXJuIHl5KHhpKCksTmkoKSx0LGUsbixvKX1mdW5jdGlvbiBmeSh0LGUpe25nRGV2TW9kZSYmd24odCxlKTtjb25zdCBuPXRbZV07cmV0dXJuIG49PT1TYz92b2lkIDA6bn1mdW5jdGlvbiB1eSh0LGUsbixvLGksYSl7Y29uc3Qgcj1lK247cmV0dXJuIHVtKHQscixpKT9tbSh0LHIrMSxhP28uY2FsbChhLGkpOm8oaSkpOmZ5KHQscisxKX1mdW5jdGlvbiBneSh0LGUsbixvLGksYSxyKXtjb25zdCBzPWUrbjtyZXR1cm4gZ20odCxzLGksYSk/bW0odCxzKzIscj9vLmNhbGwocixpLGEpOm8oaSxhKSk6ZnkodCxzKzIpfWZ1bmN0aW9uIGh5KHQsZSxuLG8saSxhLHIscyl7Y29uc3QgbD1lK247cmV0dXJuIGhtKHQsbCxpLGEscik/bW0odCxsKzMscz9vLmNhbGwocyxpLGEscik6byhpLGEscikpOmZ5KHQsbCszKX1mdW5jdGlvbiBieSh0LGUsbixvLGksYSxyLHMsbCl7Y29uc3QgYz1lK247cmV0dXJuIGJtKHQsYyxpLGEscixzKT9tbSh0LGMrNCxsP28uY2FsbChsLGksYSxyLHMpOm8oaSxhLHIscykpOmZ5KHQsYys0KX1mdW5jdGlvbiB5eSh0LGUsbixvLGksYSl7bGV0IHI9ZStuLHM9ITE7Zm9yKGxldCBlPTA7ZTxpLmxlbmd0aDtlKyspdW0odCxyKyssaVtlXSkmJihzPSEwKTtyZXR1cm4gcz9tbSh0LHIsby5hcHBseShhLGkpKTpmeSh0LHIpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBfeSh0LGUpe2NvbnN0IG49T2koKTtsZXQgbztjb25zdCBpPXQrdm87bi5maXJzdENyZWF0ZVBhc3M/KG89KGZ1bmN0aW9uIGEodCxlKXtpZihlKWZvcihsZXQgbj1lLmxlbmd0aC0xO24+PTA7bi0tKXtjb25zdCBvPWVbbl07aWYodD09PW8ubmFtZSlyZXR1cm4gb310aHJvdyBuZXcgbm4oIjMwMiIsYFRoZSBwaXBlICcke3R9JyBjb3VsZCBub3QgYmUgZm91bmQhYCl9KShlLG4ucGlwZVJlZ2lzdHJ5KSxuLmRhdGFbaV09byxvLm9uRGVzdHJveSYmKG4uZGVzdHJveUhvb2tzfHwobi5kZXN0cm95SG9va3M9W10pKS5wdXNoKGksby5vbkRlc3Ryb3kpKTpvPW4uZGF0YVtpXTtjb25zdCByPW8uZmFjdG9yeXx8KG8uZmFjdG9yeT1HbyhvLnR5cGUsITApKSxzPUxuKGdmKTt0cnl7Y29uc3QgdD1QYSghMSksZT1yKCk7cmV0dXJuIFBhKHQpLChmdW5jdGlvbiBsKHQsZSxuLG8pe24+PXQuZGF0YS5sZW5ndGgmJih0LmRhdGFbbl09bnVsbCx0LmJsdWVwcmludFtuXT1udWxsKSxlW25dPW99KShuLHhpKCksaSxlKSxlfWZpbmFsbHl7TG4ocyl9fWZ1bmN0aW9uIEN5KHQsZSxuKXtjb25zdCBvPXQrdm8saT14aSgpLGE9bWkoaSxvKTtyZXR1cm4gd3koaSxQeShpLG8pP3V5KGksTmkoKSxlLGEudHJhbnNmb3JtLG4sYSk6YS50cmFuc2Zvcm0obikpfWZ1bmN0aW9uIE15KHQsZSxuLG8pe2NvbnN0IGk9dCt2byxhPXhpKCkscj1taShhLGkpO3JldHVybiB3eShhLFB5KGEsaSk/Z3koYSxOaSgpLGUsci50cmFuc2Zvcm0sbixvLHIpOnIudHJhbnNmb3JtKG4sbykpfWZ1bmN0aW9uIHZ5KHQsZSxuLG8saSl7Y29uc3QgYT10K3ZvLHI9eGkoKSxzPW1pKHIsYSk7cmV0dXJuIHd5KHIsUHkocixhKT9oeShyLE5pKCksZSxzLnRyYW5zZm9ybSxuLG8saSxzKTpzLnRyYW5zZm9ybShuLG8saSkpfWZ1bmN0aW9uIHh5KHQsZSxuLG8saSxhKXtjb25zdCByPXQrdm8scz14aSgpLGw9bWkocyxyKTtyZXR1cm4gd3kocyxQeShzLHIpP2J5KHMsTmkoKSxlLGwudHJhbnNmb3JtLG4sbyxpLGEsbCk6bC50cmFuc2Zvcm0obixvLGksYSkpfWZ1bmN0aW9uIE95KHQsZSxuKXtjb25zdCBvPXQrdm8saT14aSgpLGE9bWkoaSxvKTtyZXR1cm4gd3koaSxQeShpLG8pP3l5KGksTmkoKSxlLGEudHJhbnNmb3JtLG4sYSk6YS50cmFuc2Zvcm0uYXBwbHkoYSxuKSl9ZnVuY3Rpb24gUHkodCxlKXtyZXR1cm4gdFsxXS5kYXRhW2VdLnB1cmV9ZnVuY3Rpb24gd3kodCxlKXtpZihjbS5pc1dyYXBwZWQoZSkpe2U9Y20udW53cmFwKGUpO3RbemkoKV09U2N9cmV0dXJuIGV9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIGt5KHQpe3JldHVybiBlPT57c2V0VGltZW91dCh0LHZvaWQgMCxlKX19Y29uc3QgU3k9Y2xhc3MgZXh0ZW5kcyBCe2NvbnN0cnVjdG9yKHQ9ITEpe3N1cGVyKCksdGhpcy5fX2lzQXN5bmM9dH1lbWl0KHQpe3N1cGVyLm5leHQodCl9c3Vic2NyaWJlKHQsZSxuKXt2YXIgbyxpLGE7bGV0IHI9dCxzPWV8fCgoKT0+bnVsbCksbD1uO2lmKHQmJiJvYmplY3QiPT10eXBlb2YgdCl7Y29uc3QgZT10O3I9bnVsbD09PShvPWUubmV4dCl8fHZvaWQgMD09PW8/dm9pZCAwOm8uYmluZChlKSxzPW51bGw9PT0oaT1lLmVycm9yKXx8dm9pZCAwPT09aT92b2lkIDA6aS5iaW5kKGUpLGw9bnVsbD09PShhPWUuY29tcGxldGUpfHx2b2lkIDA9PT1hP3ZvaWQgMDphLmJpbmQoZSl9dGhpcy5fX2lzQXN5bmMmJihzPWt5KHMpLHImJihyPWt5KHIpKSxsJiYobD1reShsKSkpO2NvbnN0IGM9c3VwZXIuc3Vic2NyaWJlKHtuZXh0OnIsZXJyb3I6cyxjb21wbGV0ZTpsfSk7cmV0dXJuIHQgaW5zdGFuY2VvZiB1JiZ0LmFkZChjKSxjfX07Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIER5KCl7cmV0dXJuIHRoaXMuX3Jlc3VsdHNbc20oKV0oKX1jbGFzcyBSeXtjb25zdHJ1Y3Rvcih0PSExKXt0aGlzLl9lbWl0RGlzdGluY3RDaGFuZ2VzT25seT10LHRoaXMuZGlydHk9ITAsdGhpcy5fcmVzdWx0cz1bXSx0aGlzLl9jaGFuZ2VzRGV0ZWN0ZWQ9ITEsdGhpcy5fY2hhbmdlcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5maXJzdD12b2lkIDAsdGhpcy5sYXN0PXZvaWQgMDtjb25zdCBlPXNtKCksbj1SeS5wcm90b3R5cGU7bltlXXx8KG5bZV09RHkpfWdldCBjaGFuZ2VzKCl7cmV0dXJuIHRoaXMuX2NoYW5nZXN8fCh0aGlzLl9jaGFuZ2VzPW5ldyBTeSl9Z2V0KHQpe3JldHVybiB0aGlzLl9yZXN1bHRzW3RdfW1hcCh0KXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5tYXAodCl9ZmlsdGVyKHQpe3JldHVybiB0aGlzLl9yZXN1bHRzLmZpbHRlcih0KX1maW5kKHQpe3JldHVybiB0aGlzLl9yZXN1bHRzLmZpbmQodCl9cmVkdWNlKHQsZSl7cmV0dXJuIHRoaXMuX3Jlc3VsdHMucmVkdWNlKHQsZSl9Zm9yRWFjaCh0KXt0aGlzLl9yZXN1bHRzLmZvckVhY2godCl9c29tZSh0KXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5zb21lKHQpfXRvQXJyYXkoKXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5zbGljZSgpfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuX3Jlc3VsdHMudG9TdHJpbmcoKX1yZXNldCh0LGUpe2NvbnN0IG49dGhpcztuLmRpcnR5PSExO2NvbnN0IG89cHIodCk7KHRoaXMuX2NoYW5nZXNEZXRlY3RlZD0hKGZ1bmN0aW9uIGkodCxlLG4pe2lmKHQubGVuZ3RoIT09ZS5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBvPTA7bzx0Lmxlbmd0aDtvKyspe2xldCBpPXRbb10sYT1lW29dO2lmKG4mJihpPW4oaSksYT1uKGEpKSxhIT09aSlyZXR1cm4hMX1yZXR1cm4hMH0pKG4uX3Jlc3VsdHMsbyxlKSkmJihuLl9yZXN1bHRzPW8sbi5sZW5ndGg9by5sZW5ndGgsbi5sYXN0PW9bdGhpcy5sZW5ndGgtMV0sbi5maXJzdD1vWzBdKX1ub3RpZnlPbkNoYW5nZXMoKXshdGhpcy5fY2hhbmdlc3x8IXRoaXMuX2NoYW5nZXNEZXRlY3RlZCYmdGhpcy5fZW1pdERpc3RpbmN0Q2hhbmdlc09ubHl8fHRoaXMuX2NoYW5nZXMuZW1pdCh0aGlzKX1zZXREaXJ0eSgpe3RoaXMuZGlydHk9ITB9ZGVzdHJveSgpe3RoaXMuY2hhbmdlcy5jb21wbGV0ZSgpLHRoaXMuY2hhbmdlcy51bnN1YnNjcmliZSgpfX1jbGFzcyBFeXtjb25zdHJ1Y3Rvcih0KXt0aGlzLnF1ZXJ5TGlzdD10LHRoaXMubWF0Y2hlcz1udWxsfWNsb25lKCl7cmV0dXJuIG5ldyBFeSh0aGlzLnF1ZXJ5TGlzdCl9c2V0RGlydHkoKXt0aGlzLnF1ZXJ5TGlzdC5zZXREaXJ0eSgpfX1jbGFzcyBBeXtjb25zdHJ1Y3Rvcih0PVtdKXt0aGlzLnF1ZXJpZXM9dH1jcmVhdGVFbWJlZGRlZFZpZXcodCl7Y29uc3QgZT10LnF1ZXJpZXM7aWYobnVsbCE9PWUpe2NvbnN0IG49bnVsbCE9PXQuY29udGVudFF1ZXJpZXM/dC5jb250ZW50UXVlcmllc1swXTplLmxlbmd0aCxvPVtdO2ZvcihsZXQgdD0wO3Q8bjt0Kyspe2NvbnN0IG49ZS5nZXRCeUluZGV4KHQpO28ucHVzaCh0aGlzLnF1ZXJpZXNbbi5pbmRleEluRGVjbGFyYXRpb25WaWV3XS5jbG9uZSgpKX1yZXR1cm4gbmV3IEF5KG8pfXJldHVybiBudWxsfWluc2VydFZpZXcodCl7dGhpcy5kaXJ0eVF1ZXJpZXNXaXRoTWF0Y2hlcyh0KX1kZXRhY2hWaWV3KHQpe3RoaXMuZGlydHlRdWVyaWVzV2l0aE1hdGNoZXModCl9ZGlydHlRdWVyaWVzV2l0aE1hdGNoZXModCl7Zm9yKGxldCBlPTA7ZTx0aGlzLnF1ZXJpZXMubGVuZ3RoO2UrKyludWxsIT09WXkodCxlKS5tYXRjaGVzJiZ0aGlzLnF1ZXJpZXNbZV0uc2V0RGlydHkoKX19Y2xhc3MgVHl7Y29uc3RydWN0b3IodCxlLG49bnVsbCl7dGhpcy5wcmVkaWNhdGU9dCx0aGlzLmZsYWdzPWUsdGhpcy5yZWFkPW59fWNsYXNzIE55e2NvbnN0cnVjdG9yKHQ9W10pe3RoaXMucXVlcmllcz10fWVsZW1lbnRTdGFydCh0LGUpe25nRGV2TW9kZSYmTG8odCwiUXVlcmllcyBzaG91bGQgY29sbGVjdCByZXN1bHRzIG9uIHRoZSBmaXJzdCB0ZW1wbGF0ZSBwYXNzIG9ubHkiKTtmb3IobGV0IG49MDtuPHRoaXMucXVlcmllcy5sZW5ndGg7bisrKXRoaXMucXVlcmllc1tuXS5lbGVtZW50U3RhcnQodCxlKX1lbGVtZW50RW5kKHQpe2ZvcihsZXQgZT0wO2U8dGhpcy5xdWVyaWVzLmxlbmd0aDtlKyspdGhpcy5xdWVyaWVzW2VdLmVsZW1lbnRFbmQodCl9ZW1iZWRkZWRUVmlldyh0KXtsZXQgZT1udWxsO2ZvcihsZXQgbj0wO248dGhpcy5sZW5ndGg7bisrKXtjb25zdCBvPW51bGwhPT1lP2UubGVuZ3RoOjAsaT10aGlzLmdldEJ5SW5kZXgobikuZW1iZWRkZWRUVmlldyh0LG8pO2kmJihpLmluZGV4SW5EZWNsYXJhdGlvblZpZXc9bixudWxsIT09ZT9lLnB1c2goaSk6ZT1baV0pfXJldHVybiBudWxsIT09ZT9uZXcgTnkoZSk6bnVsbH10ZW1wbGF0ZSh0LGUpe25nRGV2TW9kZSYmTG8odCwiUXVlcmllcyBzaG91bGQgY29sbGVjdCByZXN1bHRzIG9uIHRoZSBmaXJzdCB0ZW1wbGF0ZSBwYXNzIG9ubHkiKTtmb3IobGV0IG49MDtuPHRoaXMucXVlcmllcy5sZW5ndGg7bisrKXRoaXMucXVlcmllc1tuXS50ZW1wbGF0ZSh0LGUpfWdldEJ5SW5kZXgodCl7cmV0dXJuIG5nRGV2TW9kZSYmd24odGhpcy5xdWVyaWVzLHQpLHRoaXMucXVlcmllc1t0XX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMucXVlcmllcy5sZW5ndGh9dHJhY2sodCl7dGhpcy5xdWVyaWVzLnB1c2godCl9fWNsYXNzIHp5e2NvbnN0cnVjdG9yKHQsZT0tMSl7dGhpcy5tZXRhZGF0YT10LHRoaXMubWF0Y2hlcz1udWxsLHRoaXMuaW5kZXhJbkRlY2xhcmF0aW9uVmlldz0tMSx0aGlzLmNyb3NzZXNOZ1RlbXBsYXRlPSExLHRoaXMuX2FwcGxpZXNUb05leHROb2RlPSEwLHRoaXMuX2RlY2xhcmF0aW9uTm9kZUluZGV4PWV9ZWxlbWVudFN0YXJ0KHQsZSl7dGhpcy5pc0FwcGx5aW5nVG9Ob2RlKGUpJiZ0aGlzLm1hdGNoVE5vZGUodCxlKX1lbGVtZW50RW5kKHQpe3RoaXMuX2RlY2xhcmF0aW9uTm9kZUluZGV4PT09dC5pbmRleCYmKHRoaXMuX2FwcGxpZXNUb05leHROb2RlPSExKX10ZW1wbGF0ZSh0LGUpe3RoaXMuZWxlbWVudFN0YXJ0KHQsZSl9ZW1iZWRkZWRUVmlldyh0LGUpe3JldHVybiB0aGlzLmlzQXBwbHlpbmdUb05vZGUodCk/KHRoaXMuY3Jvc3Nlc05nVGVtcGxhdGU9ITAsdGhpcy5hZGRNYXRjaCgtdC5pbmRleCxlKSxuZXcgenkodGhpcy5tZXRhZGF0YSkpOm51bGx9aXNBcHBseWluZ1RvTm9kZSh0KXtpZih0aGlzLl9hcHBsaWVzVG9OZXh0Tm9kZSYmMSE9KDEmdGhpcy5tZXRhZGF0YS5mbGFncykpe2NvbnN0IGU9dGhpcy5fZGVjbGFyYXRpb25Ob2RlSW5kZXg7bGV0IG49dC5wYXJlbnQ7Zm9yKDtudWxsIT09biYmOCZuLnR5cGUmJm4uaW5kZXghPT1lOyluPW4ucGFyZW50O3JldHVybiBlPT09KG51bGwhPT1uP24uaW5kZXg6LTEpfXJldHVybiB0aGlzLl9hcHBsaWVzVG9OZXh0Tm9kZX1tYXRjaFROb2RlKHQsZSl7Y29uc3Qgbj10aGlzLm1ldGFkYXRhLnByZWRpY2F0ZTtpZihBcnJheS5pc0FycmF5KG4pKWZvcihsZXQgbz0wO288bi5sZW5ndGg7bysrKXtjb25zdCBpPW5bb107dGhpcy5tYXRjaFROb2RlV2l0aFJlYWRPcHRpb24odCxlLEl5KGUsaSkpLHRoaXMubWF0Y2hUTm9kZVdpdGhSZWFkT3B0aW9uKHQsZSxGYShlLHQsaSwhMSwhMSkpfWVsc2Ugbj09PUViPzQmZS50eXBlJiZ0aGlzLm1hdGNoVE5vZGVXaXRoUmVhZE9wdGlvbih0LGUsLTEpOnRoaXMubWF0Y2hUTm9kZVdpdGhSZWFkT3B0aW9uKHQsZSxGYShlLHQsbiwhMSwhMSkpfW1hdGNoVE5vZGVXaXRoUmVhZE9wdGlvbih0LGUsbil7aWYobnVsbCE9PW4pe2NvbnN0IG89dGhpcy5tZXRhZGF0YS5yZWFkO2lmKG51bGwhPT1vKWlmKG89PT1LaHx8bz09PUZifHxvPT09RWImJjQmZS50eXBlKXRoaXMuYWRkTWF0Y2goZS5pbmRleCwtMik7ZWxzZXtjb25zdCBuPUZhKGUsdCxvLCExLCExKTtudWxsIT09biYmdGhpcy5hZGRNYXRjaChlLmluZGV4LG4pfWVsc2UgdGhpcy5hZGRNYXRjaChlLmluZGV4LG4pfX1hZGRNYXRjaCh0LGUpe251bGw9PT10aGlzLm1hdGNoZXM/dGhpcy5tYXRjaGVzPVt0LGVdOnRoaXMubWF0Y2hlcy5wdXNoKHQsZSl9fWZ1bmN0aW9uIEl5KHQsZSl7Y29uc3Qgbj10LmxvY2FsTmFtZXM7aWYobnVsbCE9PW4pZm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kz0yKWlmKG5bdF09PT1lKXJldHVybiBuW3QrMV07cmV0dXJuIG51bGx9ZnVuY3Rpb24gSHkodCxlLG4sbyl7cmV0dXJuLTE9PT1uPyhmdW5jdGlvbiBpKHQsZSl7cmV0dXJuIDExJnQudHlwZT9xaCh0LGUpOjQmdC50eXBlP05iKHQsZSk6bnVsbH0pKGUsdCk6LTI9PT1uPyhmdW5jdGlvbiBhKHQsZSxuKXtpZihuPT09S2gpcmV0dXJuIHFoKGUsdCk7aWYobj09PUViKXJldHVybiBOYihlLHQpO2lmKG49PT1GYilyZXR1cm4gbmdEZXZNb2RlJiZnYShlLDE1KSxVYihlLHQpO25nRGV2TW9kZSYmT24oYFNwZWNpYWwgdG9rZW4gdG8gcmVhZCBzaG91bGQgYmUgb25lIG9mIEVsZW1lbnRSZWYsIFRlbXBsYXRlUmVmIG9yIFZpZXdDb250YWluZXJSZWYgYnV0IGdvdCAke0tlKG4pfS5gKX0pKHQsZSxvKTpMYSh0LHRbMV0sbixlKX1mdW5jdGlvbiBGeSh0LGUsbixvKXtjb25zdCBpPWVbMTldLnF1ZXJpZXNbb107aWYobnVsbD09PWkubWF0Y2hlcyl7Y29uc3Qgbz10LmRhdGEsYT1uLm1hdGNoZXMscj1bXTtmb3IobGV0IHQ9MDt0PGEubGVuZ3RoO3QrPTIpe2NvbnN0IGk9YVt0XTtpZihpPDApci5wdXNoKG51bGwpO2Vsc2V7bmdEZXZNb2RlJiZ3bihvLGkpO3IucHVzaChIeShlLG9baV0sYVt0KzFdLG4ubWV0YWRhdGEucmVhZCkpfX1pLm1hdGNoZXM9cn1yZXR1cm4gaS5tYXRjaGVzfWZ1bmN0aW9uIEx5KHQsZSxuLG8pe2NvbnN0IGk9dC5xdWVyaWVzLmdldEJ5SW5kZXgobiksYT1pLm1hdGNoZXM7aWYobnVsbCE9PWEpe2NvbnN0IHI9RnkodCxlLGksbik7Zm9yKGxldCB0PTA7dDxhLmxlbmd0aDt0Kz0yKXtjb25zdCBuPWFbdF07aWYobj4wKW8ucHVzaChyW3QvMl0pO2Vsc2V7Y29uc3QgaT1hW3QrMV0scj1lWy1uXTtuZ0Rldk1vZGUmJklvKHIpO2ZvcihsZXQgdD1Pbzt0PHIubGVuZ3RoO3QrKyl7Y29uc3QgZT1yW3RdO2VbMTddPT09ZVszXSYmTHkoZVsxXSxlLGksbyl9aWYobnVsbCE9PXJbOV0pe2NvbnN0IHQ9cls5XTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl7Y29uc3Qgbj10W2VdO0x5KG5bMV0sbixpLG8pfX19fX1yZXR1cm4gb31mdW5jdGlvbiBCeSh0KXtjb25zdCBlPXhpKCksbj1PaSgpLG89VWkoKTtXaShvKzEpO2NvbnN0IGk9WXkobixvKTtpZih0LmRpcnR5JiZ1aShlKT09PSgyPT0oMiZpLm1ldGFkYXRhLmZsYWdzKSkpe2lmKG51bGw9PT1pLm1hdGNoZXMpdC5yZXNldChbXSk7ZWxzZXtjb25zdCBhPWkuY3Jvc3Nlc05nVGVtcGxhdGU/THkobixlLG8sW10pOkZ5KG4sZSxpLG8pO3QucmVzZXQoYSxKaCksdC5ub3RpZnlPbkNoYW5nZXMoKX1yZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBWeSh0LGUsbil7bmdEZXZNb2RlJiZwbihlLCJFeHBlY3RpbmcgZmxhZ3MiKTtjb25zdCBvPU9pKCk7by5maXJzdENyZWF0ZVBhc3MmJihHeShvLG5ldyBUeSh0LGUsbiksLTEpLDI9PSgyJmUpJiYoby5zdGF0aWNWaWV3UXVlcmllcz0hMCkpLFd5KG8seGkoKSxlKX1mdW5jdGlvbiBqeSh0LGUsbixvKXtuZ0Rldk1vZGUmJnBuKG4sIkV4cGVjdGluZyBmbGFncyIpO2NvbnN0IGk9T2koKTtpZihpLmZpcnN0Q3JlYXRlUGFzcyl7Y29uc3QgYT13aSgpO0d5KGksbmV3IFR5KGUsbixvKSxhLmluZGV4KSwoZnVuY3Rpb24gYSh0LGUpe2NvbnN0IG49dC5jb250ZW50UXVlcmllc3x8KHQuY29udGVudFF1ZXJpZXM9W10pO2UhPT0obi5sZW5ndGg/bltuLmxlbmd0aC0xXTotMSkmJm4ucHVzaCh0LnF1ZXJpZXMubGVuZ3RoLTEsZSl9KShpLHQpLDI9PSgyJm4pJiYoaS5zdGF0aWNDb250ZW50UXVlcmllcz0hMCl9V3koaSx4aSgpLG4pfWZ1bmN0aW9uIFV5KCl7cmV0dXJuKGZ1bmN0aW9uIHQoZSxuKXtyZXR1cm4gbmdEZXZNb2RlJiZ4bihlWzE5XSwiTFF1ZXJpZXMgc2hvdWxkIGJlIGRlZmluZWQgd2hlbiB0cnlpbmcgdG8gbG9hZCBhIHF1ZXJ5IiksbmdEZXZNb2RlJiZ3bihlWzE5XS5xdWVyaWVzLG4pLGVbMTldLnF1ZXJpZXNbbl0ucXVlcnlMaXN0fSkoeGkoKSxVaSgpKX1mdW5jdGlvbiBXeSh0LGUsbil7Y29uc3Qgbz1uZXcgUnkoND09KDQmbikpO1RkKHQsZSxvLG8uZGVzdHJveSksbnVsbD09PWVbMTldJiYoZVsxOV09bmV3IEF5KSxlWzE5XS5xdWVyaWVzLnB1c2gobmV3IEV5KG8pKX1mdW5jdGlvbiBHeSh0LGUsbil7bnVsbD09PXQucXVlcmllcyYmKHQucXVlcmllcz1uZXcgTnkpLHQucXVlcmllcy50cmFjayhuZXcgenkoZSxuKSl9ZnVuY3Rpb24gWXkodCxlKXtyZXR1cm4gbmdEZXZNb2RlJiZ4bih0LnF1ZXJpZXMsIlRRdWVyaWVzIG11c3QgYmUgZGVmaW5lZCB0byByZXRyaWV2ZSBhIFRRdWVyeSIpLHQucXVlcmllcy5nZXRCeUluZGV4KGUpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBxeSh0LGUpe3JldHVybiBOYih0LGUpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgWnk9eyLJtcm1YXR0cmlidXRlIjp5bSwiybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMSI6U20sIsm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTIiOkRtLCLJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGUzIjpSbSwiybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNCI6RW0sIsm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTUiOkFtLCLJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU2IjpUbSwiybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNyI6Tm0sIsm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTgiOnptLCLJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGVWIjpJbSwiybXJtWRlZmluZUNvbXBvbmVudCI6c28sIsm1ybVkZWZpbmVEaXJlY3RpdmUiOmhvLCLJtcm1ZGVmaW5lSW5qZWN0YWJsZSI6U24sIsm1ybVkZWZpbmVJbmplY3RvciI6RG4sIsm1ybVkZWZpbmVOZ01vZHVsZSI6Zm8sIsm1ybVkZWZpbmVQaXBlIjpibywiybXJtWRpcmVjdGl2ZUluamVjdCI6Z2YsIsm1ybVnZXRJbmhlcml0ZWRGYWN0b3J5IjpVYSwiybXJtWluamVjdCI6VHIsIsm1ybVpbmplY3RBdHRyaWJ1dGUiOkdhLCLJtcm1aW52YWxpZEZhY3RvcnkiOmhmLCLJtcm1aW52YWxpZEZhY3RvcnlEZXAiOk5yLCLJtcm1dGVtcGxhdGVSZWZFeHRyYWN0b3IiOnF5LCLJtcm1TmdPbkNoYW5nZXNGZWF0dXJlIjpxbywiybXJtVByb3ZpZGVyc0ZlYXR1cmUiOmpoLCLJtcm1Q29weURlZmluaXRpb25GZWF0dXJlIjphbSwiybXJtUluaGVyaXREZWZpbml0aW9uRmVhdHVyZSI6UXAsIsm1ybVuZXh0Q29udGV4dCI6emYsIsm1ybVuYW1lc3BhY2VIVE1MIjphYSwiybXJtW5hbWVzcGFjZU1hdGhNTCI6aWEsIsm1ybVuYW1lc3BhY2VTVkciOm9hLCLJtcm1ZW5hYmxlQmluZGluZ3MiOk1pLCLJtcm1ZGlzYWJsZUJpbmRpbmdzIjp2aSwiybXJtWVsZW1lbnRTdGFydCI6Q2YsIsm1ybVlbGVtZW50RW5kIjpNZiwiybXJtWVsZW1lbnQiOnZmLCLJtcm1ZWxlbWVudENvbnRhaW5lclN0YXJ0Ijp4ZiwiybXJtWVsZW1lbnRDb250YWluZXJFbmQiOk9mLCLJtcm1ZWxlbWVudENvbnRhaW5lciI6UGYsIsm1ybVwdXJlRnVuY3Rpb24wIjpveSwiybXJtXB1cmVGdW5jdGlvbjEiOml5LCLJtcm1cHVyZUZ1bmN0aW9uMiI6YXksIsm1ybVwdXJlRnVuY3Rpb24zIjpyeSwiybXJtXB1cmVGdW5jdGlvbjQiOnN5LCLJtcm1cHVyZUZ1bmN0aW9uNSI6bHksIsm1ybVwdXJlRnVuY3Rpb242IjpjeSwiybXJtXB1cmVGdW5jdGlvbjciOmR5LCLJtcm1cHVyZUZ1bmN0aW9uOCI6cHksIsm1ybVwdXJlRnVuY3Rpb25WIjpteSwiybXJtWdldEN1cnJlbnRWaWV3Ijp3ZiwiybXJtXJlc3RvcmVWaWV3IjpQaSwiybXJtWxpc3RlbmVyIjpSZiwiybXJtXByb2plY3Rpb24iOkZmLCLJtcm1c3ludGhldGljSG9zdFByb3BlcnR5IjpkZywiybXJtXN5bnRoZXRpY0hvc3RMaXN0ZW5lciI6RWYsIsm1ybVwaXBlQmluZDEiOkN5LCLJtcm1cGlwZUJpbmQyIjpNeSwiybXJtXBpcGVCaW5kMyI6dnksIsm1ybVwaXBlQmluZDQiOnh5LCLJtcm1cGlwZUJpbmRWIjpPeSwiybXJtXByb2plY3Rpb25EZWYiOkhmLCLJtcm1aG9zdFByb3BlcnR5IjpjZywiybXJtXByb3BlcnR5IjpiZiwiybXJtXByb3BlcnR5SW50ZXJwb2xhdGUiOkxmLCLJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTEiOkJmLCLJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTIiOlZmLCLJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTMiOmpmLCLJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTQiOlVmLCLJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTUiOldmLCLJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTYiOkdmLCLJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTciOllmLCLJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTgiOnFmLCLJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZVYiOlpmLCLJtcm1cGlwZSI6X3ksIsm1ybVxdWVyeVJlZnJlc2giOkJ5LCLJtcm1dmlld1F1ZXJ5IjpWeSwiybXJtWxvYWRRdWVyeSI6VXksIsm1ybVjb250ZW50UXVlcnkiOmp5LCLJtcm1cmVmZXJlbmNlIjpGbSwiybXJtWNsYXNzTWFwIjptdSwiybXJtWNsYXNzTWFwSW50ZXJwb2xhdGUxIjpJdSwiybXJtWNsYXNzTWFwSW50ZXJwb2xhdGUyIjpIdSwiybXJtWNsYXNzTWFwSW50ZXJwb2xhdGUzIjpGdSwiybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU0IjpMdSwiybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU1IjpCdSwiybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU2IjpWdSwiybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU3IjpqdSwiybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU4IjpVdSwiybXJtWNsYXNzTWFwSW50ZXJwb2xhdGVWIjpXdSwiybXJtXN0eWxlTWFwIjpkdSwiybXJtXN0eWxlTWFwSW50ZXJwb2xhdGUxIjpHdSwiybXJtXN0eWxlTWFwSW50ZXJwb2xhdGUyIjpZdSwiybXJtXN0eWxlTWFwSW50ZXJwb2xhdGUzIjpxdSwiybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU0IjpadSwiybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU1IjpYdSwiybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU2IjpLdSwiybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU3IjpKdSwiybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU4IjpRdSwiybXJtXN0eWxlTWFwSW50ZXJwb2xhdGVWIjokdSwiybXJtXN0eWxlUHJvcCI6bHUsIsm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTEiOnRnLCLJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGUyIjplZywiybXJtXN0eWxlUHJvcEludGVycG9sYXRlMyI6bmcsIsm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTQiOm9nLCLJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU1IjppZywiybXJtXN0eWxlUHJvcEludGVycG9sYXRlNiI6YWcsIsm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTciOnJnLCLJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU4IjpzZywiybXJtXN0eWxlUHJvcEludGVycG9sYXRlViI6bGcsIsm1ybVjbGFzc1Byb3AiOmN1LCLJtcm1YWR2YW5jZSI6RGMsIsm1ybV0ZW1wbGF0ZSI6SG0sIsm1ybV0ZXh0IjpQdSwiybXJtXRleHRJbnRlcnBvbGF0ZSI6d3UsIsm1ybV0ZXh0SW50ZXJwb2xhdGUxIjprdSwiybXJtXRleHRJbnRlcnBvbGF0ZTIiOlN1LCLJtcm1dGV4dEludGVycG9sYXRlMyI6RHUsIsm1ybV0ZXh0SW50ZXJwb2xhdGU0IjpSdSwiybXJtXRleHRJbnRlcnBvbGF0ZTUiOkV1LCLJtcm1dGV4dEludGVycG9sYXRlNiI6QXUsIsm1ybV0ZXh0SW50ZXJwb2xhdGU3IjpUdSwiybXJtXRleHRJbnRlcnBvbGF0ZTgiOk51LCLJtcm1dGV4dEludGVycG9sYXRlViI6enUsIsm1ybVpMThuIjpSaCwiybXJtWkxOG5BdHRyaWJ1dGVzIjpFaCwiybXJtWkxOG5FeHAiOkFoLCLJtcm1aTE4blN0YXJ0IjpTaCwiybXJtWkxOG5FbmQiOkRoLCLJtcm1aTE4bkFwcGx5IjpUaCwiybXJtWkxOG5Qb3N0cHJvY2VzcyI6TmgsIsm1ybVyZXNvbHZlV2luZG93IjpPbCwiybXJtXJlc29sdmVEb2N1bWVudCI6UGwsIsm1ybVyZXNvbHZlQm9keSI6d2wsIsm1ybVzZXRDb21wb25lbnRTY29wZSI6bG8sIsm1ybVzZXROZ01vZHVsZVNjb3BlIjp1bywiybXJtXNhbml0aXplSHRtbCI6cXMsIsm1ybVzYW5pdGl6ZVN0eWxlIjpacywiybXJtXNhbml0aXplUmVzb3VyY2VVcmwiOktzLCLJtcm1c2FuaXRpemVTY3JpcHQiOkpzLCLJtcm1c2FuaXRpemVVcmwiOlhzLCLJtcm1c2FuaXRpemVVcmxPclJlc291cmNlVXJsIjp0bCwiybXJtXRydXN0Q29uc3RhbnRIdG1sIjpRcywiybXJtXRydXN0Q29uc3RhbnRSZXNvdXJjZVVybCI6JHMsZm9yd2FyZFJlZjokZSxyZXNvbHZlRm9yd2FyZFJlZjp0bn07bGV0IFh5PW51bGw7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBLeT1bXTtsZXQgSnk9ITE7ZnVuY3Rpb24gUXkodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dC5ldmVyeShReSk6ISF0bih0KX1mdW5jdGlvbiAkeSh0LGUsbil7aWYob18uZ2V0KHQpKXJldHVybjtsZXQgbztpZihvXy5zZXQodCwhMCksdD10bih0KSxuKXtpZihvPU1vKHQpLCFvKXRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCB2YWx1ZSAnJHt0Lm5hbWV9JyBpbXBvcnRlZCBieSB0aGUgbW9kdWxlICcke24ubmFtZX0nLiBQbGVhc2UgYWRkIGFuIEBOZ01vZHVsZSBhbm5vdGF0aW9uLmApfWVsc2Ugbz1Nbyh0LCEwKTtjb25zdCBpPVtdLGE9U2woby5kZWNsYXJhdGlvbnMpLHI9U2woby5pbXBvcnRzKTtwcihyKS5tYXAodF8pLmZvckVhY2goKGU9PntoKGUsdCksJHkoZSwhMSx0KX0pKTtjb25zdCBzPVNsKG8uZXhwb3J0cyk7YS5mb3JFYWNoKChmdW5jdGlvbiBsKGUpe2U9dG4oZSk7eW8oZSl8fF9vKGUpfHxDbyhlKXx8aS5wdXNoKGBVbmV4cGVjdGVkIHZhbHVlICcke3NuKGUpfScgZGVjbGFyZWQgYnkgdGhlIG1vZHVsZSAnJHtzbih0KX0nLiBQbGVhc2UgYWRkIGEgQFBpcGUvQERpcmVjdGl2ZS9AQ29tcG9uZW50IGFubm90YXRpb24uYCl9KSksYS5mb3JFYWNoKChmdW5jdGlvbiBjKHQpe2NvbnN0IGU9X28odD10bih0KSk7IXlvKHQpJiZlJiYwPT1lLnNlbGVjdG9ycy5sZW5ndGgmJmkucHVzaChgRGlyZWN0aXZlICR7c24odCl9IGhhcyBubyBzZWxlY3RvciwgcGxlYXNlIGFkZCBpdCFgKX0pKTtjb25zdCBkPVsuLi5hLm1hcCh0biksLi4ucHIoci5tYXAoaV8pKS5tYXAodG4pXTtzLmZvckVhY2goKGZ1bmN0aW9uIHAoZSl7Y29uc3Qgbj0oeW8oZT10bihlKSk/ImNvbXBvbmVudCI6X28oZSkmJiJkaXJlY3RpdmUiKXx8Q28oZSkmJiJwaXBlIjtuJiYtMT09PWQubGFzdEluZGV4T2YoZSkmJmkucHVzaChgQ2FuJ3QgZXhwb3J0ICR7bn0gJHtzbihlKX0gZnJvbSAke3NuKHQpfSBhcyBpdCB3YXMgbmVpdGhlciBkZWNsYXJlZCBub3IgaW1wb3J0ZWQhYCl9KSksYS5mb3JFYWNoKChuPT4oZnVuY3Rpb24gbyhlLG4pe2U9dG4oZSk7Y29uc3Qgbz1uXy5nZXQoZSk7aWYobyYmbyE9PXQpe2lmKCFuKXtjb25zdCBuPVtvLHRdLm1hcChzbikuc29ydCgpO2kucHVzaChgVHlwZSAke3NuKGUpfSBpcyBwYXJ0IG9mIHRoZSBkZWNsYXJhdGlvbnMgb2YgMiBtb2R1bGVzOiAke25bMF19IGFuZCAke25bMV19ISBQbGVhc2UgY29uc2lkZXIgbW92aW5nICR7c24oZSl9IHRvIGEgaGlnaGVyIG1vZHVsZSB0aGF0IGltcG9ydHMgJHtuWzBdfSBhbmQgJHtuWzFdfS4gWW91IGNhbiBhbHNvIGNyZWF0ZSBhIG5ldyBOZ01vZHVsZSB0aGF0IGV4cG9ydHMgYW5kIGluY2x1ZGVzICR7c24oZSl9IHRoZW4gaW1wb3J0IHRoYXQgTmdNb2R1bGUgaW4gJHtuWzBdfSBhbmQgJHtuWzFdfS5gKX19ZWxzZSBuXy5zZXQoZSx0KX0pKG4sZSkpKSxhLmZvckVhY2goKGZ1bmN0aW9uIG0odCl7aWYoeW8odD10bih0KSkpe2NvbnN0IGU9ZV8odCwiQ29tcG9uZW50Iik7ZSYmZS5lbnRyeUNvbXBvbmVudHMmJm1yKGUuZW50cnlDb21wb25lbnRzLGcpfX0pKTtjb25zdCBmPWVfKHQsIk5nTW9kdWxlIik7aWYoZiYmKGYuaW1wb3J0cyYmcHIoZi5pbXBvcnRzKS5tYXAodF8pLmZvckVhY2goKGU9PntoKGUsdCksJHkoZSwhMSx0KX0pKSxmLmJvb3RzdHJhcCYmbXIoZi5ib290c3RyYXAsKGZ1bmN0aW9uIHUodCl7eW8odD10bih0KSl8fGkucHVzaChgJHtzbih0KX0gY2Fubm90IGJlIHVzZWQgYXMgYW4gZW50cnkgY29tcG9uZW50LmApfSkpLGYuYm9vdHN0cmFwJiZtcihmLmJvb3RzdHJhcCxnKSxmLmVudHJ5Q29tcG9uZW50cyYmbXIoZi5lbnRyeUNvbXBvbmVudHMsZykpLGkubGVuZ3RoKXRocm93IG5ldyBFcnJvcihpLmpvaW4oIlxuIikpO2Z1bmN0aW9uIGcodCl7dD10bih0KTtuXy5nZXQodCl8fGkucHVzaChgQ29tcG9uZW50ICR7c24odCl9IGlzIG5vdCBwYXJ0IG9mIGFueSBOZ01vZHVsZSBvciB0aGUgbW9kdWxlIGhhcyBub3QgYmVlbiBpbXBvcnRlZCBpbnRvIHlvdXIgbW9kdWxlLmApfWZ1bmN0aW9uIGgodCxlKXtpZih5byh0PXRuKHQpKXx8X28odCkpdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGRpcmVjdGl2ZSAnJHt0Lm5hbWV9JyBpbXBvcnRlZCBieSB0aGUgbW9kdWxlICcke2UubmFtZX0nLiBQbGVhc2UgYWRkIGFuIEBOZ01vZHVsZSBhbm5vdGF0aW9uLmApO2lmKENvKHQpKXRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBwaXBlICcke3QubmFtZX0nIGltcG9ydGVkIGJ5IHRoZSBtb2R1bGUgJyR7ZS5uYW1lfScuIFBsZWFzZSBhZGQgYW4gQE5nTW9kdWxlIGFubm90YXRpb24uYCl9fWZ1bmN0aW9uIHRfKHQpe3JldHVybih0PXRuKHQpKS5uZ01vZHVsZXx8dH1mdW5jdGlvbiBlXyh0LGUpe2xldCBuPW51bGw7cmV0dXJuIG8odC5fX2Fubm90YXRpb25zX18pLG8odC5kZWNvcmF0b3JzKSxuO2Z1bmN0aW9uIG8odCl7dCYmdC5mb3JFYWNoKGkpfWZ1bmN0aW9uIGkodCl7aWYoIW4pe2lmKE9iamVjdC5nZXRQcm90b3R5cGVPZih0KS5uZ01ldGFkYXRhTmFtZT09ZSluPXQ7ZWxzZSBpZih0LnR5cGUpe09iamVjdC5nZXRQcm90b3R5cGVPZih0LnR5cGUpLm5nTWV0YWRhdGFOYW1lPT1lJiYobj10LmFyZ3NbMF0pfX19fWxldCBuXz1uZXcgV2Vha01hcCxvXz1uZXcgV2Vha01hcDtmdW5jdGlvbiBpXyh0KXtyZXR1cm5bLi4ucHIoU2woTW8odD10bih0KSwhMCkuZXhwb3J0cykubWFwKCh0PT5Nbyh0KT8oJHkodCwhMSksaV8odCkpOnQpKSldfWZ1bmN0aW9uIGFfKHQsZSl7Y29uc3Qgbj1wcihlLmRlY2xhcmF0aW9uc3x8UW4pLG89c18odCk7bi5mb3JFYWNoKChlPT57aWYoZS5oYXNPd25Qcm9wZXJ0eSgkbikpe3JfKHlvKGUpLG8pfWVsc2UgZS5oYXNPd25Qcm9wZXJ0eSh0byl8fGUuaGFzT3duUHJvcGVydHkoZW8pfHwoZS5uZ1NlbGVjdG9yU2NvcGU9dCl9KSl9ZnVuY3Rpb24gcl8odCxlKXt0LmRpcmVjdGl2ZURlZnM9KCk9PkFycmF5LmZyb20oZS5jb21waWxhdGlvbi5kaXJlY3RpdmVzKS5tYXAoKHQ9PnQuaGFzT3duUHJvcGVydHkoJG4pP3lvKHQpOl9vKHQpKSkuZmlsdGVyKCh0PT4hIXQpKSx0LnBpcGVEZWZzPSgpPT5BcnJheS5mcm9tKGUuY29tcGlsYXRpb24ucGlwZXMpLm1hcCgodD0+Q28odCkpKSx0LnNjaGVtYXM9ZS5zY2hlbWFzLHQudFZpZXc9bnVsbH1mdW5jdGlvbiBzXyh0KXtpZighY18odCkpdGhyb3cgbmV3IEVycm9yKGAke3QubmFtZX0gZG9lcyBub3QgaGF2ZSBhIG1vZHVsZSBkZWYgKMm1bW9kIHByb3BlcnR5KWApO2NvbnN0IGU9TW8odCk7aWYobnVsbCE9PWUudHJhbnNpdGl2ZUNvbXBpbGVTY29wZXMpcmV0dXJuIGUudHJhbnNpdGl2ZUNvbXBpbGVTY29wZXM7Y29uc3Qgbj17c2NoZW1hczplLnNjaGVtYXN8fG51bGwsY29tcGlsYXRpb246e2RpcmVjdGl2ZXM6bmV3IFNldCxwaXBlczpuZXcgU2V0fSxleHBvcnRlZDp7ZGlyZWN0aXZlczpuZXcgU2V0LHBpcGVzOm5ldyBTZXR9fTtyZXR1cm4gU2woZS5pbXBvcnRzKS5mb3JFYWNoKCh0PT57Y29uc3QgZT10O2lmKCFjXyhlKSl0aHJvdyBuZXcgRXJyb3IoYEltcG9ydGluZyAke2UubmFtZX0gd2hpY2ggZG9lcyBub3QgaGF2ZSBhIMm1bW9kIHByb3BlcnR5YCk7Y29uc3Qgbz1zXyhlKTtvLmV4cG9ydGVkLmRpcmVjdGl2ZXMuZm9yRWFjaCgodD0+bi5jb21waWxhdGlvbi5kaXJlY3RpdmVzLmFkZCh0KSkpLG8uZXhwb3J0ZWQucGlwZXMuZm9yRWFjaCgodD0+bi5jb21waWxhdGlvbi5waXBlcy5hZGQodCkpKX0pKSxTbChlLmRlY2xhcmF0aW9ucykuZm9yRWFjaCgodD0+e0NvKHQpP24uY29tcGlsYXRpb24ucGlwZXMuYWRkKHQpOm4uY29tcGlsYXRpb24uZGlyZWN0aXZlcy5hZGQodCl9KSksU2woZS5leHBvcnRzKS5mb3JFYWNoKCh0PT57Y29uc3QgZT10O2lmKGNfKGUpKXtjb25zdCB0PXNfKGUpO3QuZXhwb3J0ZWQuZGlyZWN0aXZlcy5mb3JFYWNoKCh0PT57bi5jb21waWxhdGlvbi5kaXJlY3RpdmVzLmFkZCh0KSxuLmV4cG9ydGVkLmRpcmVjdGl2ZXMuYWRkKHQpfSkpLHQuZXhwb3J0ZWQucGlwZXMuZm9yRWFjaCgodD0+e24uY29tcGlsYXRpb24ucGlwZXMuYWRkKHQpLG4uZXhwb3J0ZWQucGlwZXMuYWRkKHQpfSkpfWVsc2UgQ28oZSk/bi5leHBvcnRlZC5waXBlcy5hZGQoZSk6bi5leHBvcnRlZC5kaXJlY3RpdmVzLmFkZChlKX0pKSxlLnRyYW5zaXRpdmVDb21waWxlU2NvcGVzPW4sbn1mdW5jdGlvbiBsXyh0KXtyZXR1cm4oZnVuY3Rpb24gZSh0KXtyZXR1cm4gdm9pZCAwIT09dC5uZ01vZHVsZX0pKHQpP3QubmdNb2R1bGU6dH1mdW5jdGlvbiBjXyh0KXtyZXR1cm4hIU1vKHQpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9sZXQgZF89MDtmdW5jdGlvbiBwXyh0LGUpe2xldCBuPW51bGw7Zl8odCxlfHx7fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsdG8se2dldDooKT0+e2lmKG51bGw9PT1uKXtjb25zdCBvPW1fKHQsZXx8e30pLGk9bHIoe3VzYWdlOjAsa2luZDoiZGlyZWN0aXZlIix0eXBlOnR9KTtuPWkuY29tcGlsZURpcmVjdGl2ZShaeSxvLnNvdXJjZU1hcFVybCxvLm1ldGFkYXRhKX1yZXR1cm4gbn0sY29uZmlndXJhYmxlOiEhbmdEZXZNb2RlfSl9ZnVuY3Rpb24gbV8odCxlKXtjb25zdCBuPXQmJnQubmFtZSxvPWBuZzovLy8ke259L8m1ZGlyLmpzYCxpPWxyKHt1c2FnZTowLGtpbmQ6ImRpcmVjdGl2ZSIsdHlwZTp0fSksYT1nXyh0LGUpO3JldHVybiBhLnR5cGVTb3VyY2VTcGFuPWkuY3JlYXRlUGFyc2VTb3VyY2VTcGFuKCJEaXJlY3RpdmUiLG4sbyksYS51c2VzSW5oZXJpdGFuY2UmJmhfKHQpLHttZXRhZGF0YTphLHNvdXJjZU1hcFVybDpvfX1mdW5jdGlvbiBmXyh0LGUpe2xldCBuPW51bGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaW8se2dldDooKT0+e2lmKG51bGw9PT1uKXtjb25zdCBvPW1fKHQsZSksaT1scih7dXNhZ2U6MCxraW5kOiJkaXJlY3RpdmUiLHR5cGU6dH0pO249aS5jb21waWxlRmFjdG9yeShaeSxgbmc6Ly8vJHt0Lm5hbWV9L8m1ZmFjLmpzYCx7bmFtZTpvLm1ldGFkYXRhLm5hbWUsdHlwZTpvLm1ldGFkYXRhLnR5cGUsdHlwZUFyZ3VtZW50Q291bnQ6MCxkZXBzOllyKHQpLHRhcmdldDppLkZhY3RvcnlUYXJnZXQuRGlyZWN0aXZlfSl9cmV0dXJuIG59LGNvbmZpZ3VyYWJsZTohIW5nRGV2TW9kZX0pfWZ1bmN0aW9uIHVfKHQpe3JldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2YodC5wcm90b3R5cGUpPT09T2JqZWN0LnByb3RvdHlwZX1mdW5jdGlvbiBnXyh0LGUpe2NvbnN0IG49R3IoKSxvPW4ub3duUHJvcE1ldGFkYXRhKHQpO3JldHVybntuYW1lOnQubmFtZSx0eXBlOnQsc2VsZWN0b3I6dm9pZCAwIT09ZS5zZWxlY3Rvcj9lLnNlbGVjdG9yOm51bGwsaG9zdDplLmhvc3R8fEpuLHByb3BNZXRhZGF0YTpvLGlucHV0czplLmlucHV0c3x8UW4sb3V0cHV0czplLm91dHB1dHN8fFFuLHF1ZXJpZXM6X18odCxvLENfKSxsaWZlY3ljbGU6e3VzZXNPbkNoYW5nZXM6bi5oYXNMaWZlY3ljbGVIb29rKHQsIm5nT25DaGFuZ2VzIil9LHR5cGVTb3VyY2VTcGFuOm51bGwsdXNlc0luaGVyaXRhbmNlOiF1Xyh0KSxleHBvcnRBczooaT1lLmV4cG9ydEFzLHZvaWQgMD09PWk/bnVsbDp4XyhpKSkscHJvdmlkZXJzOmUucHJvdmlkZXJzfHxudWxsLHZpZXdRdWVyaWVzOl9fKHQsbyxNXyl9O3ZhciBpfWZ1bmN0aW9uIGhfKHQpe2NvbnN0IGU9T2JqZWN0LnByb3RvdHlwZTtsZXQgbj1PYmplY3QuZ2V0UHJvdG90eXBlT2YodC5wcm90b3R5cGUpLmNvbnN0cnVjdG9yO2Zvcig7biYmbiE9PWU7KV9vKG4pfHx5byhuKXx8IVBfKG4pfHxwXyhuLG51bGwpLG49T2JqZWN0LmdldFByb3RvdHlwZU9mKG4pfWZ1bmN0aW9uIGJfKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdD94Xyh0KTp0bih0KX1mdW5jdGlvbiB5Xyh0LGUpe3JldHVybntwcm9wZXJ0eU5hbWU6dCxwcmVkaWNhdGU6Yl8oZS5zZWxlY3RvciksZGVzY2VuZGFudHM6ZS5kZXNjZW5kYW50cyxmaXJzdDplLmZpcnN0LHJlYWQ6ZS5yZWFkP2UucmVhZDpudWxsLHN0YXRpYzohIWUuc3RhdGljLGVtaXREaXN0aW5jdENoYW5nZXNPbmx5OiEhZS5lbWl0RGlzdGluY3RDaGFuZ2VzT25seX19ZnVuY3Rpb24gX18odCxlLG4pe2NvbnN0IG89W107Zm9yKGNvbnN0IGkgaW4gZSlpZihlLmhhc093blByb3BlcnR5KGkpKXtjb25zdCBhPWVbaV07YS5mb3JFYWNoKChlPT57aWYobihlKSl7aWYoIWUuc2VsZWN0b3IpdGhyb3cgbmV3IEVycm9yKGBDYW4ndCBjb25zdHJ1Y3QgYSBxdWVyeSBmb3IgdGhlIHByb3BlcnR5ICIke2l9IiBvZiAiJHtzbih0KX0iIHNpbmNlIHRoZSBxdWVyeSBzZWxlY3RvciB3YXNuJ3QgZGVmaW5lZC5gKTtpZihhLnNvbWUodl8pKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGNvbWJpbmUgQElucHV0IGRlY29yYXRvcnMgd2l0aCBxdWVyeSBkZWNvcmF0b3JzIik7by5wdXNoKHlfKGksZSkpfX0pKX1yZXR1cm4gb31mdW5jdGlvbiBDXyh0KXtjb25zdCBlPXQubmdNZXRhZGF0YU5hbWU7cmV0dXJuIkNvbnRlbnRDaGlsZCI9PT1lfHwiQ29udGVudENoaWxkcmVuIj09PWV9ZnVuY3Rpb24gTV8odCl7Y29uc3QgZT10Lm5nTWV0YWRhdGFOYW1lO3JldHVybiJWaWV3Q2hpbGQiPT09ZXx8IlZpZXdDaGlsZHJlbiI9PT1lfWZ1bmN0aW9uIHZfKHQpe3JldHVybiJJbnB1dCI9PT10Lm5nTWV0YWRhdGFOYW1lfWZ1bmN0aW9uIHhfKHQpe3JldHVybiB0LnNwbGl0KCIsIikubWFwKCh0PT50LnRyaW0oKSkpfWNvbnN0IE9fPVsibmdPbkNoYW5nZXMiLCJuZ09uSW5pdCIsIm5nT25EZXN0cm95IiwibmdEb0NoZWNrIiwibmdBZnRlclZpZXdJbml0IiwibmdBZnRlclZpZXdDaGVja2VkIiwibmdBZnRlckNvbnRlbnRJbml0IiwibmdBZnRlckNvbnRlbnRDaGVja2VkIl07ZnVuY3Rpb24gUF8odCl7Y29uc3QgZT1HcigpO2lmKE9fLnNvbWUoKG49PmUuaGFzTGlmZWN5Y2xlSG9vayh0LG4pKSkpcmV0dXJuITA7Y29uc3Qgbj1lLnByb3BNZXRhZGF0YSh0KTtmb3IoY29uc3QgdCBpbiBuKXtjb25zdCBlPW5bdF07Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IG49ZVt0XSxvPW4ubmdNZXRhZGF0YU5hbWU7aWYodl8obil8fENfKG4pfHxNXyhuKXx8Ik91dHB1dCI9PT1vfHwiSG9zdEJpbmRpbmciPT09b3x8Ikhvc3RMaXN0ZW5lciI9PT1vKXJldHVybiEwfX1yZXR1cm4hMX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gd18odCxlKXtyZXR1cm57dHlwZTp0LG5hbWU6dC5uYW1lLHBpcGVOYW1lOmUubmFtZSxwdXJlOnZvaWQgMD09PWUucHVyZXx8ZS5wdXJlfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3Qga189WGEoIkRpcmVjdGl2ZSIsKCh0PXt9KT0+dCksdm9pZCAwLHZvaWQgMCwoKHQsZSk9PklfKHQsZSkpKSxTXz1YYSgiQ29tcG9uZW50IiwoKHQ9e30pPT5PYmplY3QuYXNzaWduKHtjaGFuZ2VEZXRlY3Rpb246am4uRGVmYXVsdH0sdCkpLGtfLHZvaWQgMCwoKHQsZSk9Pk5fKHQsZSkpKSxEXz1YYSgiUGlwZSIsKHQ9Pk9iamVjdC5hc3NpZ24oe3B1cmU6ITB9LHQpKSx2b2lkIDAsdm9pZCAwLCgodCxlKT0+SF8odCxlKSkpLFJfPVFhKCJJbnB1dCIsKHQ9Pih7YmluZGluZ1Byb3BlcnR5TmFtZTp0fSkpKSxFXz1RYSgiT3V0cHV0IiwodD0+KHtiaW5kaW5nUHJvcGVydHlOYW1lOnR9KSkpLEFfPVFhKCJIb3N0QmluZGluZyIsKHQ9Pih7aG9zdFByb3BlcnR5TmFtZTp0fSkpKSxUXz1RYSgiSG9zdExpc3RlbmVyIiwoKHQsZSk9Pih7ZXZlbnROYW1lOnQsYXJnczplfSkpKSxOXz1mdW5jdGlvbiB6Xyh0LGUpeygidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmS24oKTtsZXQgbj1udWxsOyEoZnVuY3Rpb24gbyh0LGUpe0pyKGUpJiYoWHIuc2V0KHQsZSksS3IuYWRkKHQpKX0pKHQsZSksZl8odCxlKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwkbix7Z2V0OigpPT57aWYobnVsbD09PW4pe2NvbnN0IG89bHIoe3VzYWdlOjAsa2luZDoiY29tcG9uZW50Iix0eXBlOnR9KTtpZihKcihlKSl7Y29uc3Qgbj1bYENvbXBvbmVudCAnJHt0Lm5hbWV9JyBpcyBub3QgcmVzb2x2ZWQ6YF07dGhyb3cgZS50ZW1wbGF0ZVVybCYmbi5wdXNoKGAgLSB0ZW1wbGF0ZVVybDogJHtlLnRlbXBsYXRlVXJsfWApLGUuc3R5bGVVcmxzJiZlLnN0eWxlVXJscy5sZW5ndGgmJm4ucHVzaChgIC0gc3R5bGVVcmxzOiAke0pTT04uc3RyaW5naWZ5KGUuc3R5bGVVcmxzKX1gKSxuLnB1c2goIkRpZCB5b3UgcnVuIGFuZCB3YWl0IGZvciAncmVzb2x2ZUNvbXBvbmVudFJlc291cmNlcygpJz8iKSxuZXcgRXJyb3Iobi5qb2luKCJcbiIpKX1jb25zdCBpPShmdW5jdGlvbiBvKCl7cmV0dXJuIFh5fSkoKTtsZXQgYT1lLnByZXNlcnZlV2hpdGVzcGFjZXM7dm9pZCAwPT09YSYmKGE9bnVsbCE9PWkmJnZvaWQgMCE9PWkucHJlc2VydmVXaGl0ZXNwYWNlcyYmaS5wcmVzZXJ2ZVdoaXRlc3BhY2VzKTtsZXQgcj1lLmVuY2Fwc3VsYXRpb247dm9pZCAwPT09ciYmKHI9bnVsbCE9PWkmJnZvaWQgMCE9PWkuZGVmYXVsdEVuY2Fwc3VsYXRpb24/aS5kZWZhdWx0RW5jYXBzdWxhdGlvbjpXbi5FbXVsYXRlZCk7Y29uc3Qgcz1lLnRlbXBsYXRlVXJsfHxgbmc6Ly8vJHt0Lm5hbWV9L3RlbXBsYXRlLmh0bWxgLGw9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGdfKHQsZSkpLHt0eXBlU291cmNlU3BhbjpvLmNyZWF0ZVBhcnNlU291cmNlU3BhbigiQ29tcG9uZW50Iix0Lm5hbWUscyksdGVtcGxhdGU6ZS50ZW1wbGF0ZXx8IiIscHJlc2VydmVXaGl0ZXNwYWNlczphLHN0eWxlczplLnN0eWxlc3x8UW4sYW5pbWF0aW9uczplLmFuaW1hdGlvbnMsZGlyZWN0aXZlczpbXSxjaGFuZ2VEZXRlY3Rpb246ZS5jaGFuZ2VEZXRlY3Rpb24scGlwZXM6bmV3IE1hcCxlbmNhcHN1bGF0aW9uOnIsaW50ZXJwb2xhdGlvbjplLmludGVycG9sYXRpb24sdmlld1Byb3ZpZGVyczplLnZpZXdQcm92aWRlcnN8fG51bGx9KTtkXysrO3RyeXtsLnVzZXNJbmhlcml0YW5jZSYmaF8odCksbj1vLmNvbXBpbGVDb21wb25lbnQoWnkscyxsKX1maW5hbGx5e2RfLS19aWYoMD09PWRfJiYoZnVuY3Rpb24gaSgpe2lmKCFKeSl7Snk9ITA7dHJ5e2ZvcihsZXQgdD1LeS5sZW5ndGgtMTt0Pj0wO3QtLSl7Y29uc3R7bW9kdWxlVHlwZTplLG5nTW9kdWxlOm59PUt5W3RdO24uZGVjbGFyYXRpb25zJiZuLmRlY2xhcmF0aW9ucy5ldmVyeShReSkmJihLeS5zcGxpY2UodCwxKSxhXyhlLG4pKX19ZmluYWxseXtKeT0hMX19fSkoKSwoZnVuY3Rpb24gYSh0KXtyZXR1cm4gdm9pZCAwIT09dC5uZ1NlbGVjdG9yU2NvcGV9KSh0KSl7Y29uc3QgZT1zXyh0Lm5nU2VsZWN0b3JTY29wZSk7cl8obixlKX19cmV0dXJuIG59LGNvbmZpZ3VyYWJsZTohIW5nRGV2TW9kZX0pfSxJXz1wXyxIXz1mdW5jdGlvbiBGXyh0LGUpe2xldCBuPW51bGwsbz1udWxsO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGlvLHtnZXQ6KCk9PntpZihudWxsPT09byl7Y29uc3Qgbj13Xyh0LGUpLGk9bHIoe3VzYWdlOjAsa2luZDoicGlwZSIsdHlwZTpuLnR5cGV9KTtvPWkuY29tcGlsZUZhY3RvcnkoWnksYG5nOi8vLyR7bi5uYW1lfS/JtWZhYy5qc2Ase25hbWU6bi5uYW1lLHR5cGU6bi50eXBlLHR5cGVBcmd1bWVudENvdW50OjAsZGVwczpZcih0KSx0YXJnZXQ6aS5GYWN0b3J5VGFyZ2V0LlBpcGV9KX1yZXR1cm4gb30sY29uZmlndXJhYmxlOiEhbmdEZXZNb2RlfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZW8se2dldDooKT0+e2lmKG51bGw9PT1uKXtjb25zdCBvPXdfKHQsZSksaT1scih7dXNhZ2U6MCxraW5kOiJwaXBlIix0eXBlOm8udHlwZX0pO249aS5jb21waWxlUGlwZShaeSxgbmc6Ly8vJHtvLm5hbWV9L8m1cGlwZS5qc2Asbyl9cmV0dXJuIG59LGNvbmZpZ3VyYWJsZTohIW5nRGV2TW9kZX0pfSxMXz1YYSgiTmdNb2R1bGUiLCh0PT50KSx2b2lkIDAsdm9pZCAwLCgodCxlKT0+Ql8odCxlKSkpLEJfPWZ1bmN0aW9uIFZfKHQsZT17fSl7IShmdW5jdGlvbiBuKHQsZSxvPSExKXtuZ0Rldk1vZGUmJnhuKHQsIlJlcXVpcmVkIHZhbHVlIG1vZHVsZVR5cGUiKSxuZ0Rldk1vZGUmJnhuKGUsIlJlcXVpcmVkIHZhbHVlIG5nTW9kdWxlIik7Y29uc3QgaT1wcihlLmRlY2xhcmF0aW9uc3x8UW4pO2xldCBhPW51bGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsbm8se2NvbmZpZ3VyYWJsZTohMCxnZXQ6KCk9PntpZihudWxsPT09YSl7aWYobmdEZXZNb2RlJiZlLmltcG9ydHMmJmUuaW1wb3J0cy5pbmRleE9mKHQpPi0xKXRocm93IG5ldyBFcnJvcihgJyR7c24odCl9JyBtb2R1bGUgY2FuJ3QgaW1wb3J0IGl0c2VsZmApO2NvbnN0IG49bHIoe3VzYWdlOjAsa2luZDoiTmdNb2R1bGUiLHR5cGU6dH0pO2E9bi5jb21waWxlTmdNb2R1bGUoWnksYG5nOi8vLyR7dC5uYW1lfS/JtW1vZC5qc2Ase3R5cGU6dCxib290c3RyYXA6cHIoZS5ib290c3RyYXB8fFFuKS5tYXAodG4pLGRlY2xhcmF0aW9uczppLm1hcCh0biksaW1wb3J0czpwcihlLmltcG9ydHN8fFFuKS5tYXAodG4pLm1hcChsXyksZXhwb3J0czpwcihlLmV4cG9ydHN8fFFuKS5tYXAodG4pLm1hcChsXyksc2NoZW1hczplLnNjaGVtYXM/cHIoZS5zY2hlbWFzKTpudWxsLGlkOmUuaWR8fG51bGx9KSxhLnNjaGVtYXN8fChhLnNjaGVtYXM9W10pfXJldHVybiBhfX0pO2xldCByPW51bGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaW8se2dldDooKT0+e2lmKG51bGw9PT1yKXtjb25zdCBlPWxyKHt1c2FnZTowLGtpbmQ6Ik5nTW9kdWxlIix0eXBlOnR9KTtyPWUuY29tcGlsZUZhY3RvcnkoWnksYG5nOi8vLyR7dC5uYW1lfS/JtWZhYy5qc2Ase25hbWU6dC5uYW1lLHR5cGU6dCxkZXBzOllyKHQpLHRhcmdldDplLkZhY3RvcnlUYXJnZXQuTmdNb2R1bGUsdHlwZUFyZ3VtZW50Q291bnQ6MH0pfXJldHVybiByfSxjb25maWd1cmFibGU6ISFuZ0Rldk1vZGV9KTtsZXQgcz1udWxsO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LE5uLHtnZXQ6KCk9PntpZihudWxsPT09cyl7bmdEZXZNb2RlJiYkeSh0LG8pO2NvbnN0IG49e25hbWU6dC5uYW1lLHR5cGU6dCxwcm92aWRlcnM6ZS5wcm92aWRlcnN8fFFuLGltcG9ydHM6WyhlLmltcG9ydHN8fFFuKS5tYXAodG4pLChlLmV4cG9ydHN8fFFuKS5tYXAodG4pXX0saT1scih7dXNhZ2U6MCxraW5kOiJOZ01vZHVsZSIsdHlwZTp0fSk7cz1pLmNvbXBpbGVJbmplY3RvcihaeSxgbmc6Ly8vJHt0Lm5hbWV9L8m1aW5qLmpzYCxuKX1yZXR1cm4gc30sY29uZmlndXJhYmxlOiEhbmdEZXZNb2RlfSl9KSh0LGUpLChmdW5jdGlvbiBvKHQsZSl7S3kucHVzaCh7bW9kdWxlVHlwZTp0LG5nTW9kdWxlOmV9KX0pKHQsZSl9LGpfPW5ldyBlcigiQXBwbGljYXRpb24gSW5pdGlhbGl6ZXIiKTtjbGFzcyBVX3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmFwcEluaXRzPXQsdGhpcy5yZXNvbHZlPVloLHRoaXMucmVqZWN0PVloLHRoaXMuaW5pdGlhbGl6ZWQ9ITEsdGhpcy5kb25lPSExLHRoaXMuZG9uZVByb21pc2U9bmV3IFByb21pc2UoKCh0LGUpPT57dGhpcy5yZXNvbHZlPXQsdGhpcy5yZWplY3Q9ZX0pKX1ydW5Jbml0aWFsaXplcnMoKXtpZih0aGlzLmluaXRpYWxpemVkKXJldHVybjtjb25zdCB0PVtdLGU9KCk9Pnt0aGlzLmRvbmU9ITAsdGhpcy5yZXNvbHZlKCl9O2lmKHRoaXMuYXBwSW5pdHMpZm9yKGxldCBlPTA7ZTx0aGlzLmFwcEluaXRzLmxlbmd0aDtlKyspe2NvbnN0IG49dGhpcy5hcHBJbml0c1tlXSgpO2lmKGtmKG4pKXQucHVzaChuKTtlbHNlIGlmKERmKG4pKXtjb25zdCBlPW5ldyBQcm9taXNlKCgodCxlKT0+e24uc3Vic2NyaWJlKHtjb21wbGV0ZTp0LGVycm9yOmV9KX0pKTt0LnB1c2goZSl9fVByb21pc2UuYWxsKHQpLnRoZW4oKCgpPT57ZSgpfSkpLmNhdGNoKCh0PT57dGhpcy5yZWplY3QodCl9KSksMD09PXQubGVuZ3RoJiZlKCksdGhpcy5pbml0aWFsaXplZD0hMH19VV8uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFVfKShUcihqXyw4KSl9LFVfLsm1cHJvdj1Tbih7dG9rZW46VV8sZmFjdG9yeTpVXy7JtWZhY30pLFVfLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W2pfXX0se3R5cGU6QnJ9XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoVV8sW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltqX119LHt0eXBlOkJyfV19XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgV189bmV3IGVyKCJBcHBJZCIpO2NvbnN0IEdfPXtwcm92aWRlOldfLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gWV8oKXtyZXR1cm5gJHtxXygpfSR7cV8oKX0ke3FfKCl9YH0sZGVwczpbXX07ZnVuY3Rpb24gcV8oKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSg5NytNYXRoLmZsb29yKDI1Kk1hdGgucmFuZG9tKCkpKX1jb25zdCBaXz1uZXcgZXIoIlBsYXRmb3JtIEluaXRpYWxpemVyIiksWF89bmV3IGVyKCJQbGF0Zm9ybSBJRCIpLEtfPW5ldyBlcigiYXBwQm9vdHN0cmFwTGlzdGVuZXIiKTtuZXcgZXIoIkFwcGxpY2F0aW9uIFBhY2thZ2VzIFJvb3QgVVJMIik7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBKX3tsb2codCl7Y29uc29sZS5sb2codCl9d2Fybih0KXtjb25zb2xlLndhcm4odCl9fUpfLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxKXyl9LEpfLsm1cHJvdj1Tbih7dG9rZW46Sl8sZmFjdG9yeTpKXy7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoSl8sW3t0eXBlOlVtfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IFFfPW5ldyBlcigiTG9jYWxlSWQiKSwkXz1uZXcgZXIoIkRlZmF1bHRDdXJyZW5jeUNvZGUiKTt2YXIgdEM7bmV3IGVyKCJUcmFuc2xhdGlvbnMiKSxuZXcgZXIoIlRyYW5zbGF0aW9uc0Zvcm1hdCIpLChmdW5jdGlvbih0KXt0W3QuRXJyb3I9MF09IkVycm9yIix0W3QuV2FybmluZz0xXT0iV2FybmluZyIsdFt0Lklnbm9yZT0yXT0iSWdub3JlIn0pKHRDfHwodEM9e30pKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIGVDe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5uZ01vZHVsZUZhY3Rvcnk9dCx0aGlzLmNvbXBvbmVudEZhY3Rvcmllcz1lfX1jb25zdCBuQz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IG55KHQpfSxvQz1uQyxpQz1mdW5jdGlvbih0KXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5DKHQpKX0sYUM9ZnVuY3Rpb24odCl7Y29uc3QgZT1uQyh0KSxuPVNsKE1vKHQpLmRlY2xhcmF0aW9ucykucmVkdWNlKCgodCxlKT0+e2NvbnN0IG49eW8oZSk7cmV0dXJuIG4mJnQucHVzaChuZXcgS2IobikpLHR9KSxbXSk7cmV0dXJuIG5ldyBlQyhlLG4pfSxyQz1hQyxzQz1mdW5jdGlvbih0KXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGFDKHQpKX07Y2xhc3MgbEN7Y29uc3RydWN0b3IoKXt0aGlzLmNvbXBpbGVNb2R1bGVTeW5jPW9DLHRoaXMuY29tcGlsZU1vZHVsZUFzeW5jPWlDLHRoaXMuY29tcGlsZU1vZHVsZUFuZEFsbENvbXBvbmVudHNTeW5jPXJDLHRoaXMuY29tcGlsZU1vZHVsZUFuZEFsbENvbXBvbmVudHNBc3luYz1zQ31jbGVhckNhY2hlKCl7fWNsZWFyQ2FjaGVGb3IodCl7fWdldE1vZHVsZUlkKHQpe319bEMuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGxDKX0sbEMuybVwcm92PVNuKHt0b2tlbjpsQyxmYWN0b3J5OmxDLsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihsQyxbe3R5cGU6VW19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLG51bGwpO2NvbnN0IGNDPW5ldyBlcigiY29tcGlsZXJPcHRpb25zIiksZEM9UHJvbWlzZS5yZXNvbHZlKDApOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBwQyh0KXsidW5kZWZpbmVkIj09dHlwZW9mIFpvbmU/ZEMudGhlbigoKCk9Pnt0JiZ0LmFwcGx5KG51bGwsbnVsbCl9KSk6Wm9uZS5jdXJyZW50LnNjaGVkdWxlTWljcm9UYXNrKCJzY2hlZHVsZU1pY3JvdGFzayIsdCl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgbUN7Y29uc3RydWN0b3Ioe2VuYWJsZUxvbmdTdGFja1RyYWNlOnQ9ITEsc2hvdWxkQ29hbGVzY2VFdmVudENoYW5nZURldGVjdGlvbjplPSExLHNob3VsZENvYWxlc2NlUnVuQ2hhbmdlRGV0ZWN0aW9uOm49ITF9KXtpZih0aGlzLmhhc1BlbmRpbmdNYWNyb3Rhc2tzPSExLHRoaXMuaGFzUGVuZGluZ01pY3JvdGFza3M9ITEsdGhpcy5pc1N0YWJsZT0hMCx0aGlzLm9uVW5zdGFibGU9bmV3IFN5KCExKSx0aGlzLm9uTWljcm90YXNrRW1wdHk9bmV3IFN5KCExKSx0aGlzLm9uU3RhYmxlPW5ldyBTeSghMSksdGhpcy5vbkVycm9yPW5ldyBTeSghMSksInVuZGVmaW5lZCI9PXR5cGVvZiBab25lKXRocm93IG5ldyBFcnJvcigiSW4gdGhpcyBjb25maWd1cmF0aW9uIEFuZ3VsYXIgcmVxdWlyZXMgWm9uZS5qcyIpO1pvbmUuYXNzZXJ0Wm9uZVBhdGNoZWQoKTtjb25zdCBvPXRoaXM7by5fbmVzdGluZz0wLG8uX291dGVyPW8uX2lubmVyPVpvbmUuY3VycmVudCxab25lLlRhc2tUcmFja2luZ1pvbmVTcGVjJiYoby5faW5uZXI9by5faW5uZXIuZm9yayhuZXcgWm9uZS5UYXNrVHJhY2tpbmdab25lU3BlYykpLHQmJlpvbmUubG9uZ1N0YWNrVHJhY2Vab25lU3BlYyYmKG8uX2lubmVyPW8uX2lubmVyLmZvcmsoWm9uZS5sb25nU3RhY2tUcmFjZVpvbmVTcGVjKSksby5zaG91bGRDb2FsZXNjZUV2ZW50Q2hhbmdlRGV0ZWN0aW9uPSFuJiZlLG8uc2hvdWxkQ29hbGVzY2VSdW5DaGFuZ2VEZXRlY3Rpb249bixvLmxhc3RSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZD0tMSxvLm5hdGl2ZVJlcXVlc3RBbmltYXRpb25GcmFtZT0oZnVuY3Rpb24gaSgpe2xldCB0PVhuLnJlcXVlc3RBbmltYXRpb25GcmFtZSxlPVhuLmNhbmNlbEFuaW1hdGlvbkZyYW1lO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgWm9uZSYmdCYmZSl7Y29uc3Qgbj10W1pvbmUuX19zeW1ib2xfXygiT3JpZ2luYWxEZWxlZ2F0ZSIpXTtuJiYodD1uKTtjb25zdCBvPWVbWm9uZS5fX3N5bWJvbF9fKCJPcmlnaW5hbERlbGVnYXRlIildO28mJihlPW8pfXJldHVybntuYXRpdmVSZXF1ZXN0QW5pbWF0aW9uRnJhbWU6dCxuYXRpdmVDYW5jZWxBbmltYXRpb25GcmFtZTplfX0pKCkubmF0aXZlUmVxdWVzdEFuaW1hdGlvbkZyYW1lLChmdW5jdGlvbiBhKHQpe2NvbnN0IGU9KCk9PnshKGZ1bmN0aW9uIGUodCl7aWYodC5pc0NoZWNrU3RhYmxlUnVubmluZ3x8LTEhPT10Lmxhc3RSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZClyZXR1cm47dC5sYXN0UmVxdWVzdEFuaW1hdGlvbkZyYW1lSWQ9dC5uYXRpdmVSZXF1ZXN0QW5pbWF0aW9uRnJhbWUuY2FsbChYbiwoKCk9Pnt0LmZha2VUb3BFdmVudFRhc2t8fCh0LmZha2VUb3BFdmVudFRhc2s9Wm9uZS5yb290LnNjaGVkdWxlRXZlbnRUYXNrKCJmYWtlVG9wRXZlbnRUYXNrIiwoKCk9Pnt0Lmxhc3RSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZD0tMSxnQyh0KSx0LmlzQ2hlY2tTdGFibGVSdW5uaW5nPSEwLHVDKHQpLHQuaXNDaGVja1N0YWJsZVJ1bm5pbmc9ITF9KSx2b2lkIDAsKCgpPT57fSksKCgpPT57fSkpKSx0LmZha2VUb3BFdmVudFRhc2suaW52b2tlKCl9KSksZ0ModCl9KSh0KX07dC5faW5uZXI9dC5faW5uZXIuZm9yayh7bmFtZToiYW5ndWxhciIscHJvcGVydGllczp7aXNBbmd1bGFyWm9uZTohMH0sb25JbnZva2VUYXNrOihuLG8saSxhLHIscyk9Pnt0cnl7cmV0dXJuIGhDKHQpLG4uaW52b2tlVGFzayhpLGEscixzKX1maW5hbGx5eyh0LnNob3VsZENvYWxlc2NlRXZlbnRDaGFuZ2VEZXRlY3Rpb24mJiJldmVudFRhc2siPT09YS50eXBlfHx0LnNob3VsZENvYWxlc2NlUnVuQ2hhbmdlRGV0ZWN0aW9uKSYmZSgpLGJDKHQpfX0sb25JbnZva2U6KG4sbyxpLGEscixzLGwpPT57dHJ5e3JldHVybiBoQyh0KSxuLmludm9rZShpLGEscixzLGwpfWZpbmFsbHl7dC5zaG91bGRDb2FsZXNjZVJ1bkNoYW5nZURldGVjdGlvbiYmZSgpLGJDKHQpfX0sb25IYXNUYXNrOihlLG4sbyxpKT0+e2UuaGFzVGFzayhvLGkpLG49PT1vJiYoIm1pY3JvVGFzayI9PWkuY2hhbmdlPyh0Ll9oYXNQZW5kaW5nTWljcm90YXNrcz1pLm1pY3JvVGFzayxnQyh0KSx1Qyh0KSk6Im1hY3JvVGFzayI9PWkuY2hhbmdlJiYodC5oYXNQZW5kaW5nTWFjcm90YXNrcz1pLm1hY3JvVGFzaykpfSxvbkhhbmRsZUVycm9yOihlLG4sbyxpKT0+KGUuaGFuZGxlRXJyb3IobyxpKSx0LnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+dC5vbkVycm9yLmVtaXQoaSkpKSwhMSl9KX0pKG8pfXN0YXRpYyBpc0luQW5ndWxhclpvbmUoKXtyZXR1cm4hMD09PVpvbmUuY3VycmVudC5nZXQoImlzQW5ndWxhclpvbmUiKX1zdGF0aWMgYXNzZXJ0SW5Bbmd1bGFyWm9uZSgpe2lmKCFtQy5pc0luQW5ndWxhclpvbmUoKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHRvIGJlIGluIEFuZ3VsYXIgWm9uZSwgYnV0IGl0IGlzIG5vdCEiKX1zdGF0aWMgYXNzZXJ0Tm90SW5Bbmd1bGFyWm9uZSgpe2lmKG1DLmlzSW5Bbmd1bGFyWm9uZSgpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgdG8gbm90IGJlIGluIEFuZ3VsYXIgWm9uZSwgYnV0IGl0IGlzISIpfXJ1bih0LGUsbil7cmV0dXJuIHRoaXMuX2lubmVyLnJ1bih0LGUsbil9cnVuVGFzayh0LGUsbixvKXtjb25zdCBpPXRoaXMuX2lubmVyLGE9aS5zY2hlZHVsZUV2ZW50VGFzaygiTmdab25lRXZlbnQ6ICIrbyx0LGZDLFloLFloKTt0cnl7cmV0dXJuIGkucnVuVGFzayhhLGUsbil9ZmluYWxseXtpLmNhbmNlbFRhc2soYSl9fXJ1bkd1YXJkZWQodCxlLG4pe3JldHVybiB0aGlzLl9pbm5lci5ydW5HdWFyZGVkKHQsZSxuKX1ydW5PdXRzaWRlQW5ndWxhcih0KXtyZXR1cm4gdGhpcy5fb3V0ZXIucnVuKHQpfX1jb25zdCBmQz17fTtmdW5jdGlvbiB1Qyh0KXtpZigwPT10Ll9uZXN0aW5nJiYhdC5oYXNQZW5kaW5nTWljcm90YXNrcyYmIXQuaXNTdGFibGUpdHJ5e3QuX25lc3RpbmcrKyx0Lm9uTWljcm90YXNrRW1wdHkuZW1pdChudWxsKX1maW5hbGx5e2lmKHQuX25lc3RpbmctLSwhdC5oYXNQZW5kaW5nTWljcm90YXNrcyl0cnl7dC5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PnQub25TdGFibGUuZW1pdChudWxsKSkpfWZpbmFsbHl7dC5pc1N0YWJsZT0hMH19fWZ1bmN0aW9uIGdDKHQpe3QuaGFzUGVuZGluZ01pY3JvdGFza3M9ISEodC5faGFzUGVuZGluZ01pY3JvdGFza3N8fCh0LnNob3VsZENvYWxlc2NlRXZlbnRDaGFuZ2VEZXRlY3Rpb258fHQuc2hvdWxkQ29hbGVzY2VSdW5DaGFuZ2VEZXRlY3Rpb24pJiYtMSE9PXQubGFzdFJlcXVlc3RBbmltYXRpb25GcmFtZUlkKX1mdW5jdGlvbiBoQyh0KXt0Ll9uZXN0aW5nKyssdC5pc1N0YWJsZSYmKHQuaXNTdGFibGU9ITEsdC5vblVuc3RhYmxlLmVtaXQobnVsbCkpfWZ1bmN0aW9uIGJDKHQpe3QuX25lc3RpbmctLSx1Qyh0KX1jbGFzcyB5Q3tjb25zdHJ1Y3Rvcigpe3RoaXMuaGFzUGVuZGluZ01pY3JvdGFza3M9ITEsdGhpcy5oYXNQZW5kaW5nTWFjcm90YXNrcz0hMSx0aGlzLmlzU3RhYmxlPSEwLHRoaXMub25VbnN0YWJsZT1uZXcgU3ksdGhpcy5vbk1pY3JvdGFza0VtcHR5PW5ldyBTeSx0aGlzLm9uU3RhYmxlPW5ldyBTeSx0aGlzLm9uRXJyb3I9bmV3IFN5fXJ1bih0LGUsbil7cmV0dXJuIHQuYXBwbHkoZSxuKX1ydW5HdWFyZGVkKHQsZSxuKXtyZXR1cm4gdC5hcHBseShlLG4pfXJ1bk91dHNpZGVBbmd1bGFyKHQpe3JldHVybiB0KCl9cnVuVGFzayh0LGUsbixvKXtyZXR1cm4gdC5hcHBseShlLG4pfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgX0N7Y29uc3RydWN0b3IodCl7dGhpcy5fbmdab25lPXQsdGhpcy5fcGVuZGluZ0NvdW50PTAsdGhpcy5faXNab25lU3RhYmxlPSEwLHRoaXMuX2RpZFdvcms9ITEsdGhpcy5fY2FsbGJhY2tzPVtdLHRoaXMudGFza1RyYWNraW5nWm9uZT1udWxsLHRoaXMuX3dhdGNoQW5ndWxhckV2ZW50cygpLHQucnVuKCgoKT0+e3RoaXMudGFza1RyYWNraW5nWm9uZT0idW5kZWZpbmVkIj09dHlwZW9mIFpvbmU/bnVsbDpab25lLmN1cnJlbnQuZ2V0KCJUYXNrVHJhY2tpbmdab25lIil9KSl9X3dhdGNoQW5ndWxhckV2ZW50cygpe3RoaXMuX25nWm9uZS5vblVuc3RhYmxlLnN1YnNjcmliZSh7bmV4dDooKT0+e3RoaXMuX2RpZFdvcms9ITAsdGhpcy5faXNab25lU3RhYmxlPSExfX0pLHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9Pnt0aGlzLl9uZ1pvbmUub25TdGFibGUuc3Vic2NyaWJlKHtuZXh0OigpPT57bUMuYXNzZXJ0Tm90SW5Bbmd1bGFyWm9uZSgpLHBDKCgoKT0+e3RoaXMuX2lzWm9uZVN0YWJsZT0hMCx0aGlzLl9ydW5DYWxsYmFja3NJZlJlYWR5KCl9KSl9fSl9KSl9aW5jcmVhc2VQZW5kaW5nUmVxdWVzdENvdW50KCl7cmV0dXJuIHRoaXMuX3BlbmRpbmdDb3VudCs9MSx0aGlzLl9kaWRXb3JrPSEwLHRoaXMuX3BlbmRpbmdDb3VudH1kZWNyZWFzZVBlbmRpbmdSZXF1ZXN0Q291bnQoKXtpZih0aGlzLl9wZW5kaW5nQ291bnQtPTEsdGhpcy5fcGVuZGluZ0NvdW50PDApdGhyb3cgbmV3IEVycm9yKCJwZW5kaW5nIGFzeW5jIHJlcXVlc3RzIGJlbG93IHplcm8iKTtyZXR1cm4gdGhpcy5fcnVuQ2FsbGJhY2tzSWZSZWFkeSgpLHRoaXMuX3BlbmRpbmdDb3VudH1pc1N0YWJsZSgpe3JldHVybiB0aGlzLl9pc1pvbmVTdGFibGUmJjA9PT10aGlzLl9wZW5kaW5nQ291bnQmJiF0aGlzLl9uZ1pvbmUuaGFzUGVuZGluZ01hY3JvdGFza3N9X3J1bkNhbGxiYWNrc0lmUmVhZHkoKXtpZih0aGlzLmlzU3RhYmxlKCkpcEMoKCgpPT57Zm9yKDswIT09dGhpcy5fY2FsbGJhY2tzLmxlbmd0aDspe2xldCB0PXRoaXMuX2NhbGxiYWNrcy5wb3AoKTtjbGVhclRpbWVvdXQodC50aW1lb3V0SWQpLHQuZG9uZUNiKHRoaXMuX2RpZFdvcmspfXRoaXMuX2RpZFdvcms9ITF9KSk7ZWxzZXtsZXQgdD10aGlzLmdldFBlbmRpbmdUYXNrcygpO3RoaXMuX2NhbGxiYWNrcz10aGlzLl9jYWxsYmFja3MuZmlsdGVyKChlPT4hZS51cGRhdGVDYnx8IWUudXBkYXRlQ2IodCl8fChjbGVhclRpbWVvdXQoZS50aW1lb3V0SWQpLCExKSkpLHRoaXMuX2RpZFdvcms9ITB9fWdldFBlbmRpbmdUYXNrcygpe3JldHVybiB0aGlzLnRhc2tUcmFja2luZ1pvbmU/dGhpcy50YXNrVHJhY2tpbmdab25lLm1hY3JvVGFza3MubWFwKCh0PT4oe3NvdXJjZTp0LnNvdXJjZSxjcmVhdGlvbkxvY2F0aW9uOnQuY3JlYXRpb25Mb2NhdGlvbixkYXRhOnQuZGF0YX0pKSk6W119YWRkQ2FsbGJhY2sodCxlLG4pe2xldCBvPS0xO2UmJmU+MCYmKG89c2V0VGltZW91dCgoKCk9Pnt0aGlzLl9jYWxsYmFja3M9dGhpcy5fY2FsbGJhY2tzLmZpbHRlcigodD0+dC50aW1lb3V0SWQhPT1vKSksdCh0aGlzLl9kaWRXb3JrLHRoaXMuZ2V0UGVuZGluZ1Rhc2tzKCkpfSksZSkpLHRoaXMuX2NhbGxiYWNrcy5wdXNoKHtkb25lQ2I6dCx0aW1lb3V0SWQ6byx1cGRhdGVDYjpufSl9d2hlblN0YWJsZSh0LGUsbil7aWYobiYmIXRoaXMudGFza1RyYWNraW5nWm9uZSl0aHJvdyBuZXcgRXJyb3IoJ1Rhc2sgdHJhY2tpbmcgem9uZSBpcyByZXF1aXJlZCB3aGVuIHBhc3NpbmcgYW4gdXBkYXRlIGNhbGxiYWNrIHRvIHdoZW5TdGFibGUoKS4gSXMgInpvbmUuanMvcGx1Z2lucy90YXNrLXRyYWNraW5nIiBsb2FkZWQ/Jyk7dGhpcy5hZGRDYWxsYmFjayh0LGUsbiksdGhpcy5fcnVuQ2FsbGJhY2tzSWZSZWFkeSgpfWdldFBlbmRpbmdSZXF1ZXN0Q291bnQoKXtyZXR1cm4gdGhpcy5fcGVuZGluZ0NvdW50fWZpbmRQcm92aWRlcnModCxlLG4pe3JldHVybltdfX1fQy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8X0MpKFRyKG1DKSl9LF9DLsm1cHJvdj1Tbih7dG9rZW46X0MsZmFjdG9yeTpfQy7JtWZhY30pLF9DLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6bUN9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKF9DLFt7dHlwZTpVbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTptQ31dfSksbnVsbCk7Y2xhc3MgQ0N7Y29uc3RydWN0b3IoKXt0aGlzLl9hcHBsaWNhdGlvbnM9bmV3IE1hcCx2Qy5hZGRUb1dpbmRvdyh0aGlzKX1yZWdpc3RlckFwcGxpY2F0aW9uKHQsZSl7dGhpcy5fYXBwbGljYXRpb25zLnNldCh0LGUpfXVucmVnaXN0ZXJBcHBsaWNhdGlvbih0KXt0aGlzLl9hcHBsaWNhdGlvbnMuZGVsZXRlKHQpfXVucmVnaXN0ZXJBbGxBcHBsaWNhdGlvbnMoKXt0aGlzLl9hcHBsaWNhdGlvbnMuY2xlYXIoKX1nZXRUZXN0YWJpbGl0eSh0KXtyZXR1cm4gdGhpcy5fYXBwbGljYXRpb25zLmdldCh0KXx8bnVsbH1nZXRBbGxUZXN0YWJpbGl0aWVzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5fYXBwbGljYXRpb25zLnZhbHVlcygpKX1nZXRBbGxSb290RWxlbWVudHMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9hcHBsaWNhdGlvbnMua2V5cygpKX1maW5kVGVzdGFiaWxpdHlJblRyZWUodCxlPSEwKXtyZXR1cm4gdkMuZmluZFRlc3RhYmlsaXR5SW5UcmVlKHRoaXMsdCxlKX19Q0MuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fENDKX0sQ0MuybVwcm92PVNuKHt0b2tlbjpDQyxmYWN0b3J5OkNDLsm1ZmFjfSksQ0MuY3RvclBhcmFtZXRlcnM9KCk9PltdLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoQ0MsW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW119KSxudWxsKTtsZXQgTUMsdkM9bmV3IGNsYXNze2FkZFRvV2luZG93KHQpe31maW5kVGVzdGFiaWxpdHlJblRyZWUodCxlLG4pe3JldHVybiBudWxsfX0seEM9ITAsT0M9ITE7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIFBDKCl7cmV0dXJuIE9DPSEwLHhDfWxldCB3Qz1mdW5jdGlvbiBrQyh0LGUsbil7bmdEZXZNb2RlJiYoZnVuY3Rpb24gbyh0LGU9IlR5cGUgcGFzc2VkIGluIGlzIG5vdCBOZ01vZHVsZVR5cGUsIGl0IGRvZXMgbm90IGhhdmUgJ8m1bW9kJyBwcm9wZXJ0eS4iKXtNbyh0KXx8T24oZSl9KShuKTtjb25zdCBpPW5ldyBueShuKTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG5nSml0TW9kZSYmIW5nSml0TW9kZSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGkpO2NvbnN0IGE9dC5nZXQoY0MsW10pLmNvbmNhdChlKTtpZigoZnVuY3Rpb24gcih0KXtpZihudWxsIT09WHkpe2lmKHQuZGVmYXVsdEVuY2Fwc3VsYXRpb24hPT1YeS5kZWZhdWx0RW5jYXBzdWxhdGlvbilyZXR1cm4gdm9pZChuZ0Rldk1vZGUmJmNvbnNvbGUuZXJyb3IoIlByb3ZpZGVkIHZhbHVlIGZvciBgZGVmYXVsdEVuY2Fwc3VsYXRpb25gIGNhbiBub3QgYmUgY2hhbmdlZCBvbmNlIGl0IGhhcyBiZWVuIHNldC4iKSk7aWYodC5wcmVzZXJ2ZVdoaXRlc3BhY2VzIT09WHkucHJlc2VydmVXaGl0ZXNwYWNlcylyZXR1cm4gdm9pZChuZ0Rldk1vZGUmJmNvbnNvbGUuZXJyb3IoIlByb3ZpZGVkIHZhbHVlIGZvciBgcHJlc2VydmVXaGl0ZXNwYWNlc2AgY2FuIG5vdCBiZSBjaGFuZ2VkIG9uY2UgaXQgaGFzIGJlZW4gc2V0LiIpKX1YeT10fSkoe2RlZmF1bHRFbmNhcHN1bGF0aW9uOkxDKGEubWFwKCh0PT50LmRlZmF1bHRFbmNhcHN1bGF0aW9uKSkpLHByZXNlcnZlV2hpdGVzcGFjZXM6TEMoYS5tYXAoKHQ9PnQucHJlc2VydmVXaGl0ZXNwYWNlcykpKX0pLChmdW5jdGlvbiBzKCl7cmV0dXJuIDA9PT1Yci5zaXplfSkoKSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGkpO2NvbnN0IGw9KGZ1bmN0aW9uIGModCl7Y29uc3QgZT1bXTtyZXR1cm4gdC5mb3JFYWNoKCh0PT50JiZlLnB1c2goLi4udCkpKSxlfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKGEubWFwKCh0PT50LnByb3ZpZGVycykpKTtpZigwPT09bC5sZW5ndGgpcmV0dXJuIFByb21pc2UucmVzb2x2ZShpKTtjb25zdCBkPWxyKHt1c2FnZTowLGtpbmQ6Ik5nTW9kdWxlIix0eXBlOm59KSxwPU5wLmNyZWF0ZSh7cHJvdmlkZXJzOmx9KS5nZXQoZC5SZXNvdXJjZUxvYWRlcik7cmV0dXJuIFpyKCh0PT5Qcm9taXNlLnJlc29sdmUocC5nZXQodCkpKSkudGhlbigoKCk9PmkpKX07bGV0IFNDPWZ1bmN0aW9uIERDKCl7bmdEZXZNb2RlJiYoZnVuY3Rpb24gdCgpe3FwfHwocXA9ITAsWnAoIsm1c2V0UHJvZmlsZXIiLCRvKSxacCgiZ2V0RGlyZWN0aXZlTWV0YWRhdGEiLFZwKSxacCgiZ2V0Q29tcG9uZW50Iix6cCksWnAoImdldENvbnRleHQiLElwKSxacCgiZ2V0TGlzdGVuZXJzIixVcCksWnAoImdldE93bmluZ0NvbXBvbmVudCIsSHApLFpwKCJnZXRIb3N0RWxlbWVudCIsanApLFpwKCJnZXRJbmplY3RvciIsTHApLFpwKCJnZXRSb290Q29tcG9uZW50cyIsRnApLFpwKCJnZXREaXJlY3RpdmVzIixCcCksWnAoImFwcGx5Q2hhbmdlcyIsWXApKX0pKCl9LFJDPWZ1bmN0aW9uIEVDKHQpe3JldHVybiB0LmlzQm91bmRUb01vZHVsZX07Y29uc3QgQUM9bmV3IGVyKCJBbGxvd011bHRpcGxlVG9rZW4iKTtmdW5jdGlvbiBUQyh0LGUsbj1bXSl7Y29uc3Qgbz1gUGxhdGZvcm06ICR7ZX1gLGk9bmV3IGVyKG8pO3JldHVybihlPVtdKT0+e2xldCBhPU5DKCk7aWYoIWF8fGEuaW5qZWN0b3IuZ2V0KEFDLCExKSlpZih0KXQobi5jb25jYXQoZSkuY29uY2F0KHtwcm92aWRlOmksdXNlVmFsdWU6ITB9KSk7ZWxzZXtjb25zdCB0PW4uY29uY2F0KGUpLmNvbmNhdCh7cHJvdmlkZTppLHVzZVZhbHVlOiEwfSx7cHJvdmlkZTpDcCx1c2VWYWx1ZToicGxhdGZvcm0ifSk7IShmdW5jdGlvbiByKHQpe2lmKE1DJiYhTUMuZGVzdHJveWVkJiYhTUMuaW5qZWN0b3IuZ2V0KEFDLCExKSl0aHJvdyBuZXcgRXJyb3IoIlRoZXJlIGNhbiBiZSBvbmx5IG9uZSBwbGF0Zm9ybS4gRGVzdHJveSB0aGUgcHJldmlvdXMgb25lIHRvIGNyZWF0ZSBhIG5ldyBvbmUuIik7U0MoKSxNQz10LmdldCh6Qyk7Y29uc3QgZT10LmdldChaXyxudWxsKTtyZXR1cm4gZSYmZS5mb3JFYWNoKCh0PT50KCkpKSxNQ30pKE5wLmNyZWF0ZSh7cHJvdmlkZXJzOnQsbmFtZTpvfSkpfXJldHVybihmdW5jdGlvbiBzKHQpe2NvbnN0IGU9TkMoKTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIk5vIHBsYXRmb3JtIGV4aXN0cyEiKTtpZighZS5pbmplY3Rvci5nZXQodCxudWxsKSl0aHJvdyBuZXcgRXJyb3IoIkEgcGxhdGZvcm0gd2l0aCBhIGRpZmZlcmVudCBjb25maWd1cmF0aW9uIGhhcyBiZWVuIGNyZWF0ZWQuIFBsZWFzZSBkZXN0cm95IGl0IGZpcnN0LiIpO3JldHVybiBlfSkoaSl9fWZ1bmN0aW9uIE5DKCl7cmV0dXJuIE1DJiYhTUMuZGVzdHJveWVkP01DOm51bGx9Y2xhc3MgekN7Y29uc3RydWN0b3IodCl7dGhpcy5faW5qZWN0b3I9dCx0aGlzLl9tb2R1bGVzPVtdLHRoaXMuX2Rlc3Ryb3lMaXN0ZW5lcnM9W10sdGhpcy5fZGVzdHJveWVkPSExfWJvb3RzdHJhcE1vZHVsZUZhY3RvcnkodCxlKXtjb25zdCBuPShmdW5jdGlvbiBvKHQsZSl7bGV0IG47bj0ibm9vcCI9PT10P25ldyB5QzooInpvbmUuanMiPT09dD92b2lkIDA6dCl8fG5ldyBtQyh7ZW5hYmxlTG9uZ1N0YWNrVHJhY2U6UEMoKSxzaG91bGRDb2FsZXNjZUV2ZW50Q2hhbmdlRGV0ZWN0aW9uOiEhKG51bGw9PWU/dm9pZCAwOmUubmdab25lRXZlbnRDb2FsZXNjaW5nKSxzaG91bGRDb2FsZXNjZVJ1bkNoYW5nZURldGVjdGlvbjohIShudWxsPT1lP3ZvaWQgMDplLm5nWm9uZVJ1bkNvYWxlc2NpbmcpfSk7cmV0dXJuIG59KShlP2Uubmdab25lOnZvaWQgMCx7bmdab25lRXZlbnRDb2FsZXNjaW5nOmUmJmUubmdab25lRXZlbnRDb2FsZXNjaW5nfHwhMSxuZ1pvbmVSdW5Db2FsZXNjaW5nOmUmJmUubmdab25lUnVuQ29hbGVzY2luZ3x8ITF9KSxpPVt7cHJvdmlkZTptQyx1c2VWYWx1ZTpufV07cmV0dXJuIG4ucnVuKCgoKT0+e2NvbnN0IGU9TnAuY3JlYXRlKHtwcm92aWRlcnM6aSxwYXJlbnQ6dGhpcy5pbmplY3RvcixuYW1lOnQubW9kdWxlVHlwZS5uYW1lfSksbz10LmNyZWF0ZShlKSxhPW8uaW5qZWN0b3IuZ2V0KHVsLG51bGwpO2lmKCFhKXRocm93IG5ldyBFcnJvcigiTm8gRXJyb3JIYW5kbGVyLiBJcyBwbGF0Zm9ybSBtb2R1bGUgKEJyb3dzZXJNb2R1bGUpIGluY2x1ZGVkPyIpO3JldHVybiBuLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e2NvbnN0IHQ9bi5vbkVycm9yLnN1YnNjcmliZSh7bmV4dDp0PT57YS5oYW5kbGVFcnJvcih0KX19KTtvLm9uRGVzdHJveSgoKCk9PntGQyh0aGlzLl9tb2R1bGVzLG8pLHQudW5zdWJzY3JpYmUoKX0pKX0pKSwoZnVuY3Rpb24gcih0LGUsbil7dHJ5e2NvbnN0IG89bigpO3JldHVybiBrZihvKT9vLmNhdGNoKChuPT57dGhyb3cgZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PnQuaGFuZGxlRXJyb3IobikpKSxufSkpOm99Y2F0Y2gobil7dGhyb3cgZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PnQuaGFuZGxlRXJyb3IobikpKSxufX0pKGEsbiwoKCk9Pntjb25zdCB0PW8uaW5qZWN0b3IuZ2V0KFVfKTtyZXR1cm4gdC5ydW5Jbml0aWFsaXplcnMoKSx0LmRvbmVQcm9taXNlLnRoZW4oKCgpPT57UGcoby5pbmplY3Rvci5nZXQoUV8sQ2cpfHxDZyk7cmV0dXJuIHRoaXMuX21vZHVsZURvQm9vdHN0cmFwKG8pLG99KSl9KSl9KSl9Ym9vdHN0cmFwTW9kdWxlKHQsZT1bXSl7Y29uc3Qgbj1JQyh7fSxlKTtyZXR1cm4gd0ModGhpcy5pbmplY3RvcixuLHQpLnRoZW4oKHQ9PnRoaXMuYm9vdHN0cmFwTW9kdWxlRmFjdG9yeSh0LG4pKSl9X21vZHVsZURvQm9vdHN0cmFwKHQpe2NvbnN0IGU9dC5pbmplY3Rvci5nZXQoSEMpO2lmKHQuX2Jvb3RzdHJhcENvbXBvbmVudHMubGVuZ3RoPjApdC5fYm9vdHN0cmFwQ29tcG9uZW50cy5mb3JFYWNoKCh0PT5lLmJvb3RzdHJhcCh0KSkpO2Vsc2V7aWYoIXQuaW5zdGFuY2UubmdEb0Jvb3RzdHJhcCl0aHJvdyBuZXcgRXJyb3IoYFRoZSBtb2R1bGUgJHtLZSh0Lmluc3RhbmNlLmNvbnN0cnVjdG9yKX0gd2FzIGJvb3RzdHJhcHBlZCwgYnV0IGl0IGRvZXMgbm90IGRlY2xhcmUgIkBOZ01vZHVsZS5ib290c3RyYXAiIGNvbXBvbmVudHMgbm9yIGEgIm5nRG9Cb290c3RyYXAiIG1ldGhvZC4gUGxlYXNlIGRlZmluZSBvbmUgb2YgdGhlc2UuYCk7dC5pbnN0YW5jZS5uZ0RvQm9vdHN0cmFwKGUpfXRoaXMuX21vZHVsZXMucHVzaCh0KX1vbkRlc3Ryb3kodCl7dGhpcy5fZGVzdHJveUxpc3RlbmVycy5wdXNoKHQpfWdldCBpbmplY3Rvcigpe3JldHVybiB0aGlzLl9pbmplY3Rvcn1kZXN0cm95KCl7aWYodGhpcy5fZGVzdHJveWVkKXRocm93IG5ldyBFcnJvcigiVGhlIHBsYXRmb3JtIGhhcyBhbHJlYWR5IGJlZW4gZGVzdHJveWVkISIpO3RoaXMuX21vZHVsZXMuc2xpY2UoKS5mb3JFYWNoKCh0PT50LmRlc3Ryb3koKSkpLHRoaXMuX2Rlc3Ryb3lMaXN0ZW5lcnMuZm9yRWFjaCgodD0+dCgpKSksdGhpcy5fZGVzdHJveWVkPSEwfWdldCBkZXN0cm95ZWQoKXtyZXR1cm4gdGhpcy5fZGVzdHJveWVkfX1mdW5jdGlvbiBJQyh0LGUpe3JldHVybiB0PUFycmF5LmlzQXJyYXkoZSk/ZS5yZWR1Y2UoSUMsdCk6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLGUpfXpDLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx6QykoVHIoTnApKX0sekMuybVwcm92PVNuKHt0b2tlbjp6QyxmYWN0b3J5OnpDLsm1ZmFjfSksekMuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpOcH1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoekMsW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOk5wfV19KSxudWxsKTtjbGFzcyBIQ3tjb25zdHJ1Y3Rvcih0LGUsbixvLGkpe3RoaXMuX3pvbmU9dCx0aGlzLl9pbmplY3Rvcj1lLHRoaXMuX2V4Y2VwdGlvbkhhbmRsZXI9bix0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI9byx0aGlzLl9pbml0U3RhdHVzPWksdGhpcy5fYm9vdHN0cmFwTGlzdGVuZXJzPVtdLHRoaXMuX3ZpZXdzPVtdLHRoaXMuX3J1bm5pbmdUaWNrPSExLHRoaXMuX3N0YWJsZT0hMCx0aGlzLmNvbXBvbmVudFR5cGVzPVtdLHRoaXMuY29tcG9uZW50cz1bXSx0aGlzLl9vbk1pY3JvdGFza0VtcHR5U3Vic2NyaXB0aW9uPXRoaXMuX3pvbmUub25NaWNyb3Rhc2tFbXB0eS5zdWJzY3JpYmUoe25leHQ6KCk9Pnt0aGlzLl96b25lLnJ1bigoKCk9Pnt0aGlzLnRpY2soKX0pKX19KTtjb25zdCBhPW5ldyBUKCh0PT57dGhpcy5fc3RhYmxlPXRoaXMuX3pvbmUuaXNTdGFibGUmJiF0aGlzLl96b25lLmhhc1BlbmRpbmdNYWNyb3Rhc2tzJiYhdGhpcy5fem9uZS5oYXNQZW5kaW5nTWljcm90YXNrcyx0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e3QubmV4dCh0aGlzLl9zdGFibGUpLHQuY29tcGxldGUoKX0pKX0pKSxyPW5ldyBUKCh0PT57bGV0IGU7dGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PntlPXRoaXMuX3pvbmUub25TdGFibGUuc3Vic2NyaWJlKCgoKT0+e21DLmFzc2VydE5vdEluQW5ndWxhclpvbmUoKSxwQygoKCk9Pnt0aGlzLl9zdGFibGV8fHRoaXMuX3pvbmUuaGFzUGVuZGluZ01hY3JvdGFza3N8fHRoaXMuX3pvbmUuaGFzUGVuZGluZ01pY3JvdGFza3N8fCh0aGlzLl9zdGFibGU9ITAsdC5uZXh0KCEwKSl9KSl9KSl9KSk7Y29uc3Qgbj10aGlzLl96b25lLm9uVW5zdGFibGUuc3Vic2NyaWJlKCgoKT0+e21DLmFzc2VydEluQW5ndWxhclpvbmUoKSx0aGlzLl9zdGFibGUmJih0aGlzLl9zdGFibGU9ITEsdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9Pnt0Lm5leHQoITEpfSkpKX0pKTtyZXR1cm4oKT0+e2UudW5zdWJzY3JpYmUoKSxuLnVuc3Vic2NyaWJlKCl9fSkpO3RoaXMuaXNTdGFibGU9cGUoYSxyLnBpcGUoSWUoKSkpfWJvb3RzdHJhcCh0LGUpe2lmKCF0aGlzLl9pbml0U3RhdHVzLmRvbmUpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgYm9vdHN0cmFwIGFzIHRoZXJlIGFyZSBzdGlsbCBhc3luY2hyb25vdXMgaW5pdGlhbGl6ZXJzIHJ1bm5pbmcuIEJvb3RzdHJhcCBjb21wb25lbnRzIGluIHRoZSBgbmdEb0Jvb3RzdHJhcGAgbWV0aG9kIG9mIHRoZSByb290IG1vZHVsZS4iKTtsZXQgbjtuPXQgaW5zdGFuY2VvZiBVaD90OnRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0KSx0aGlzLmNvbXBvbmVudFR5cGVzLnB1c2gobi5jb21wb25lbnRUeXBlKTtjb25zdCBvPVJDKG4pP3ZvaWQgMDp0aGlzLl9pbmplY3Rvci5nZXQoemIpLGk9bi5jcmVhdGUoTnAuTlVMTCxbXSxlfHxuLnNlbGVjdG9yLG8pLGE9aS5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LHI9aS5pbmplY3Rvci5nZXQoX0MsbnVsbCkscz1yJiZpLmluamVjdG9yLmdldChDQyk7aWYociYmcyYmcy5yZWdpc3RlckFwcGxpY2F0aW9uKGEsciksaS5vbkRlc3Ryb3koKCgpPT57dGhpcy5kZXRhY2hWaWV3KGkuaG9zdFZpZXcpLEZDKHRoaXMuY29tcG9uZW50cyxpKSxzJiZzLnVucmVnaXN0ZXJBcHBsaWNhdGlvbihhKX0pKSx0aGlzLl9sb2FkQ29tcG9uZW50KGkpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUEMoKSl7dGhpcy5faW5qZWN0b3IuZ2V0KEpfKS5sb2coIkFuZ3VsYXIgaXMgcnVubmluZyBpbiBkZXZlbG9wbWVudCBtb2RlLiBDYWxsIGVuYWJsZVByb2RNb2RlKCkgdG8gZW5hYmxlIHByb2R1Y3Rpb24gbW9kZS4iKX1yZXR1cm4gaX10aWNrKCl7aWYodGhpcy5fcnVubmluZ1RpY2spdGhyb3cgbmV3IEVycm9yKCJBcHBsaWNhdGlvblJlZi50aWNrIGlzIGNhbGxlZCByZWN1cnNpdmVseSIpO3RyeXt0aGlzLl9ydW5uaW5nVGljaz0hMDtmb3IobGV0IHQgb2YgdGhpcy5fdmlld3MpdC5kZXRlY3RDaGFuZ2VzKCk7aWYoKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZQQygpKWZvcihsZXQgdCBvZiB0aGlzLl92aWV3cyl0LmNoZWNrTm9DaGFuZ2VzKCl9Y2F0Y2godCl7dGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PnRoaXMuX2V4Y2VwdGlvbkhhbmRsZXIuaGFuZGxlRXJyb3IodCkpKX1maW5hbGx5e3RoaXMuX3J1bm5pbmdUaWNrPSExfX1hdHRhY2hWaWV3KHQpe2NvbnN0IGU9dDt0aGlzLl92aWV3cy5wdXNoKGUpLGUuYXR0YWNoVG9BcHBSZWYodGhpcyl9ZGV0YWNoVmlldyh0KXtjb25zdCBlPXQ7RkModGhpcy5fdmlld3MsZSksZS5kZXRhY2hGcm9tQXBwUmVmKCl9X2xvYWRDb21wb25lbnQodCl7dGhpcy5hdHRhY2hWaWV3KHQuaG9zdFZpZXcpLHRoaXMudGljaygpLHRoaXMuY29tcG9uZW50cy5wdXNoKHQpO3RoaXMuX2luamVjdG9yLmdldChLXyxbXSkuY29uY2F0KHRoaXMuX2Jvb3RzdHJhcExpc3RlbmVycykuZm9yRWFjaCgoZT0+ZSh0KSkpfW5nT25EZXN0cm95KCl7dGhpcy5fdmlld3Muc2xpY2UoKS5mb3JFYWNoKCh0PT50LmRlc3Ryb3koKSkpLHRoaXMuX29uTWljcm90YXNrRW1wdHlTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX1nZXQgdmlld0NvdW50KCl7cmV0dXJuIHRoaXMuX3ZpZXdzLmxlbmd0aH19ZnVuY3Rpb24gRkModCxlKXtjb25zdCBuPXQuaW5kZXhPZihlKTtuPi0xJiZ0LnNwbGljZShuLDEpfWZ1bmN0aW9uIExDKHQpe2ZvcihsZXQgZT10Lmxlbmd0aC0xO2U+PTA7ZS0tKWlmKHZvaWQgMCE9PXRbZV0pcmV0dXJuIHRbZV19SEMuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEhDKShUcihtQyksVHIoTnApLFRyKHVsKSxUcihHaCksVHIoVV8pKX0sSEMuybVwcm92PVNuKHt0b2tlbjpIQyxmYWN0b3J5OkhDLsm1ZmFjfSksSEMuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTptQ30se3R5cGU6TnB9LHt0eXBlOnVsfSx7dHlwZTpHaH0se3R5cGU6VV99XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEhDLFt7dHlwZTpVbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTptQ30se3R5cGU6TnB9LHt0eXBlOnVsfSx7dHlwZTpHaH0se3R5cGU6VV99XX0pLG51bGwpO2NsYXNzIEJDe31jb25zdCBWQz17ZmFjdG9yeVBhdGhQcmVmaXg6IiIsZmFjdG9yeVBhdGhTdWZmaXg6Ii5uZ2ZhY3RvcnkifTtjbGFzcyBqQ3tjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX2NvbXBpbGVyPXQsdGhpcy5fY29uZmlnPWV8fFZDfWxvYWQodCl7cmV0dXJuIHRoaXMubG9hZEFuZENvbXBpbGUodCl9bG9hZEFuZENvbXBpbGUodCl7bGV0W2Usbl09dC5zcGxpdCgiIyIpO3JldHVybiB2b2lkIDA9PT1uJiYobj0iZGVmYXVsdCIpLFN5c3RlbS5pbXBvcnQoZSkudGhlbigodD0+dFtuXSkpLnRoZW4oKHQ9PlVDKHQsZSxuKSkpLnRoZW4oKHQ9PnRoaXMuX2NvbXBpbGVyLmNvbXBpbGVNb2R1bGVBc3luYyh0KSkpfWxvYWRGYWN0b3J5KHQpe2xldFtlLG5dPXQuc3BsaXQoIiMiKSxvPSJOZ0ZhY3RvcnkiO3JldHVybiB2b2lkIDA9PT1uJiYobj0iZGVmYXVsdCIsbz0iIiksU3lzdGVtLmltcG9ydCh0aGlzLl9jb25maWcuZmFjdG9yeVBhdGhQcmVmaXgrZSt0aGlzLl9jb25maWcuZmFjdG9yeVBhdGhTdWZmaXgpLnRoZW4oKHQ9PnRbbitvXSkpLnRoZW4oKHQ9PlVDKHQsZSxuKSkpfX1mdW5jdGlvbiBVQyh0LGUsbil7aWYoIXQpdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCAnJHtufScgaW4gJyR7ZX0nYCk7cmV0dXJuIHR9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2pDLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxqQykoVHIobEMpLFRyKEJDLDgpKX0sakMuybVwcm92PVNuKHt0b2tlbjpqQyxmYWN0b3J5OmpDLsm1ZmFjfSksakMuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpsQ30se3R5cGU6QkMsZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoakMsW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmxDfSx7dHlwZTpCQyxkZWNvcmF0b3JzOlt7dHlwZTpCcn1dfV19KSxudWxsKTtjb25zdCBXQz1UQyhudWxsLCJjb3JlIixbe3Byb3ZpZGU6WF8sdXNlVmFsdWU6InVua25vd24ifSx7cHJvdmlkZTp6QyxkZXBzOltOcF19LHtwcm92aWRlOkNDLGRlcHM6W119LHtwcm92aWRlOkpfLGRlcHM6W119XSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBHQz1be3Byb3ZpZGU6SEMsdXNlQ2xhc3M6SEMsZGVwczpbbUMsTnAsdWwsR2gsVV9dfSx7cHJvdmlkZTpYYixkZXBzOlttQ10sdXNlRmFjdG9yeTpmdW5jdGlvbiBZQyh0KXtsZXQgZT1bXTtyZXR1cm4gdC5vblN0YWJsZS5zdWJzY3JpYmUoKCgpPT57Zm9yKDtlLmxlbmd0aDspZS5wb3AoKSgpfSkpLGZ1bmN0aW9uKHQpe2UucHVzaCh0KX19fSx7cHJvdmlkZTpVXyx1c2VDbGFzczpVXyxkZXBzOltbbmV3IEJyLGpfXV19LHtwcm92aWRlOmxDLHVzZUNsYXNzOmxDLGRlcHM6W119LEdfLHtwcm92aWRlOmhiLHVzZUZhY3Rvcnk6Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBxQygpe3JldHVybiBrYn0sZGVwczpbXX0se3Byb3ZpZGU6eWIsdXNlRmFjdG9yeTpmdW5jdGlvbiBaQygpe3JldHVybiBTYn0sZGVwczpbXX0se3Byb3ZpZGU6UV8sdXNlRmFjdG9yeTpmdW5jdGlvbiBYQyh0KXtyZXR1cm4gUGcodD10fHwoZnVuY3Rpb24gZSgpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlJiYidW5kZWZpbmVkIiE9dHlwZW9mIGdvb2cmJiJlbiIhPT1nb29nLmdldExvY2FsZSgpP2dvb2cuZ2V0TG9jYWxlKCk6InVuZGVmaW5lZCIhPXR5cGVvZiAkbG9jYWxpemUmJiRsb2NhbGl6ZS5sb2NhbGV8fENnfSkoKSksdH0sZGVwczpbW25ldyBMcihRXyksbmV3IEJyLG5ldyBqcl1dfSx7cHJvdmlkZTokXyx1c2VWYWx1ZToiVVNEIn1dO2NsYXNzIEtDe2NvbnN0cnVjdG9yKHQpe319dmFyIEpDLFFDO0tDLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxLQykoVHIoSEMpKX0sS0MuybVtb2Q9Zm8oe3R5cGU6S0N9KSxLQy7JtWluaj1Ebih7cHJvdmlkZXJzOkdDfSksS0MuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpIQ31dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoS0MsW3t0eXBlOkxfLGFyZ3M6W3twcm92aWRlcnM6R0N9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpIQ31dfSksbnVsbCksKGZ1bmN0aW9uKHQpe3RbdC5DcmVhdGVWaWV3Tm9kZXM9MF09IkNyZWF0ZVZpZXdOb2RlcyIsdFt0LkNoZWNrTm9DaGFuZ2VzPTFdPSJDaGVja05vQ2hhbmdlcyIsdFt0LkNoZWNrTm9DaGFuZ2VzUHJvamVjdGVkVmlld3M9Ml09IkNoZWNrTm9DaGFuZ2VzUHJvamVjdGVkVmlld3MiLHRbdC5DaGVja0FuZFVwZGF0ZT0zXT0iQ2hlY2tBbmRVcGRhdGUiLHRbdC5DaGVja0FuZFVwZGF0ZVByb2plY3RlZFZpZXdzPTRdPSJDaGVja0FuZFVwZGF0ZVByb2plY3RlZFZpZXdzIix0W3QuRGVzdHJveT01XT0iRGVzdHJveSJ9KShKQ3x8KEpDPXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5jcmVhdGU9MF09ImNyZWF0ZSIsdFt0LmRldGVjdENoYW5nZXM9MV09ImRldGVjdENoYW5nZXMiLHRbdC5jaGVja05vQ2hhbmdlcz0yXT0iY2hlY2tOb0NoYW5nZXMiLHRbdC5kZXN0cm95PTNdPSJkZXN0cm95Iix0W3QuaGFuZGxlRXZlbnQ9NF09ImhhbmRsZUV2ZW50In0pKFFDfHwoUUM9e30pKSwKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KInVuZGVmaW5lZCIhPXR5cGVvZiBuZ0Rldk1vZGUmJm5nRGV2TW9kZSYmKFhuLiRsb2NhbGl6ZT1Ybi4kbG9jYWxpemV8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJJdCBsb29rcyBsaWtlIHlvdXIgYXBwbGljYXRpb24gb3Igb25lIG9mIGl0cyBkZXBlbmRlbmNpZXMgaXMgdXNpbmcgaTE4bi5cbkFuZ3VsYXIgOSBpbnRyb2R1Y2VkIGEgZ2xvYmFsIGAkbG9jYWxpemUoKWAgZnVuY3Rpb24gdGhhdCBuZWVkcyB0byBiZSBsb2FkZWQuXG5QbGVhc2UgcnVuIGBuZyBhZGQgQGFuZ3VsYXIvbG9jYWxpemVgIGZyb20gdGhlIEFuZ3VsYXIgQ0xJLlxuKEZvciBub24tQ0xJIHByb2plY3RzLCBhZGQgYGltcG9ydCAnQGFuZ3VsYXIvbG9jYWxpemUvaW5pdCc7YCB0byB5b3VyIGBwb2x5ZmlsbHMudHNgIGZpbGUuXG5Gb3Igc2VydmVyLXNpZGUgcmVuZGVyaW5nIGFwcGxpY2F0aW9ucyBhZGQgdGhlIGltcG9ydCB0byB5b3VyIGBtYWluLnNlcnZlci50c2AgZmlsZS4pIil9KQovKioKICAgICAqIEBsaWNlbnNlIEFuZ3VsYXIgdjEyLjIuMQogICAgICogKGMpIDIwMTAtMjAyMSBHb29nbGUgTExDLiBodHRwczovL2FuZ3VsYXIuaW8vCiAgICAgKiBMaWNlbnNlOiBNSVQKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi87Y29uc3QgJEM9InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLHRNPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3csZU09InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmJiYidW5kZWZpbmVkIiE9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnNlbGYsbk09InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWwmJmdsb2JhbCxvTT1mdW5jdGlvbih0LC4uLmUpe2lmKG9NLnRyYW5zbGF0ZSl7Y29uc3Qgbj1vTS50cmFuc2xhdGUodCxlKTt0PW5bMF0sZT1uWzFdfWxldCBuPWlNKHRbMF0sdC5yYXdbMF0pO2ZvcihsZXQgbz0xO288dC5sZW5ndGg7bysrKW4rPWVbby0xXStpTSh0W29dLHQucmF3W29dKTtyZXR1cm4gbn07ZnVuY3Rpb24gaU0odCxlKXtyZXR1cm4iOiI9PT1lLmNoYXJBdCgwKT90LnN1YnN0cmluZygoZnVuY3Rpb24gbih0LGUpe2ZvcihsZXQgbj0xLG89MTtuPHQubGVuZ3RoO24rKyxvKyspaWYoIlxcIj09PWVbb10pbysrO2Vsc2UgaWYoIjoiPT09dFtuXSlyZXR1cm4gbjt0aHJvdyBuZXcgRXJyb3IoYFVudGVybWluYXRlZCAkbG9jYWxpemUgbWV0YWRhdGEgYmxvY2sgaW4gIiR7ZX0iLmApfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSh0LGUpKzEpOnR9KCRDfHxuTXx8dE18fGVNKS4kbG9jYWxpemU9b007Ci8qKgogICAgICogQGxpY2Vuc2UgQW5ndWxhciB2MTIuMi4xCiAgICAgKiAoYykgMjAxMC0yMDIxIEdvb2dsZSBMTEMuIGh0dHBzOi8vYW5ndWxhci5pby8KICAgICAqIExpY2Vuc2U6IE1JVAogICAgICovCmxldCBhTT1udWxsO2Z1bmN0aW9uIHJNKCl7cmV0dXJuIGFNfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3Qgc009bmV3IGVyKCJEb2N1bWVudFRva2VuIik7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIGxNe2hpc3RvcnlHbyh0KXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfX1mdW5jdGlvbiBjTSgpe3JldHVybiBUcihkTSl9bE0uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGxNKX0sbE0uybVwcm92PVNuKHtmYWN0b3J5OmNNLHRva2VuOmxNLHByb3ZpZGVkSW46InBsYXRmb3JtIn0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIobE0sW3t0eXBlOlVtLGFyZ3M6W3twcm92aWRlZEluOiJwbGF0Zm9ybSIsdXNlRmFjdG9yeTpjTX1dfV0sbnVsbCxudWxsKSxuZXcgZXIoIkxvY2F0aW9uIEluaXRpYWxpemVkIik7Y2xhc3MgZE0gZXh0ZW5kcyBsTXtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuX2RvYz10LHRoaXMuX2luaXQoKX1faW5pdCgpe3RoaXMubG9jYXRpb249d2luZG93LmxvY2F0aW9uLHRoaXMuX2hpc3Rvcnk9d2luZG93Lmhpc3Rvcnl9Z2V0QmFzZUhyZWZGcm9tRE9NKCl7cmV0dXJuIHJNKCkuZ2V0QmFzZUhyZWYodGhpcy5fZG9jKX1vblBvcFN0YXRlKHQpe2NvbnN0IGU9ck0oKS5nZXRHbG9iYWxFdmVudFRhcmdldCh0aGlzLl9kb2MsIndpbmRvdyIpO3JldHVybiBlLmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIix0LCExKSwoKT0+ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsdCl9b25IYXNoQ2hhbmdlKHQpe2NvbnN0IGU9ck0oKS5nZXRHbG9iYWxFdmVudFRhcmdldCh0aGlzLl9kb2MsIndpbmRvdyIpO3JldHVybiBlLmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLHQsITEpLCgpPT5lLnJlbW92ZUV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLHQpfWdldCBocmVmKCl7cmV0dXJuIHRoaXMubG9jYXRpb24uaHJlZn1nZXQgcHJvdG9jb2woKXtyZXR1cm4gdGhpcy5sb2NhdGlvbi5wcm90b2NvbH1nZXQgaG9zdG5hbWUoKXtyZXR1cm4gdGhpcy5sb2NhdGlvbi5ob3N0bmFtZX1nZXQgcG9ydCgpe3JldHVybiB0aGlzLmxvY2F0aW9uLnBvcnR9Z2V0IHBhdGhuYW1lKCl7cmV0dXJuIHRoaXMubG9jYXRpb24ucGF0aG5hbWV9Z2V0IHNlYXJjaCgpe3JldHVybiB0aGlzLmxvY2F0aW9uLnNlYXJjaH1nZXQgaGFzaCgpe3JldHVybiB0aGlzLmxvY2F0aW9uLmhhc2h9c2V0IHBhdGhuYW1lKHQpe3RoaXMubG9jYXRpb24ucGF0aG5hbWU9dH1wdXNoU3RhdGUodCxlLG4pe3BNKCk/dGhpcy5faGlzdG9yeS5wdXNoU3RhdGUodCxlLG4pOnRoaXMubG9jYXRpb24uaGFzaD1ufXJlcGxhY2VTdGF0ZSh0LGUsbil7cE0oKT90aGlzLl9oaXN0b3J5LnJlcGxhY2VTdGF0ZSh0LGUsbik6dGhpcy5sb2NhdGlvbi5oYXNoPW59Zm9yd2FyZCgpe3RoaXMuX2hpc3RvcnkuZm9yd2FyZCgpfWJhY2soKXt0aGlzLl9oaXN0b3J5LmJhY2soKX1oaXN0b3J5R28odD0wKXt0aGlzLl9oaXN0b3J5LmdvKHQpfWdldFN0YXRlKCl7cmV0dXJuIHRoaXMuX2hpc3Rvcnkuc3RhdGV9fWZ1bmN0aW9uIHBNKCl7cmV0dXJuISF3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGV9ZnVuY3Rpb24gbU0oKXtyZXR1cm4gbmV3IGRNKFRyKHNNKSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBmTSh0LGUpe2lmKDA9PXQubGVuZ3RoKXJldHVybiBlO2lmKDA9PWUubGVuZ3RoKXJldHVybiB0O2xldCBuPTA7cmV0dXJuIHQuZW5kc1dpdGgoIi8iKSYmbisrLGUuc3RhcnRzV2l0aCgiLyIpJiZuKyssMj09bj90K2Uuc3Vic3RyaW5nKDEpOjE9PW4/dCtlOnQrIi8iK2V9ZnVuY3Rpb24gdU0odCl7Y29uc3QgZT10Lm1hdGNoKC8jfFw/fCQvKSxuPWUmJmUuaW5kZXh8fHQubGVuZ3RoO3JldHVybiB0LnNsaWNlKDAsbi0oIi8iPT09dFtuLTFdPzE6MCkpK3Quc2xpY2Uobil9ZnVuY3Rpb24gZ00odCl7cmV0dXJuIHQmJiI/IiE9PXRbMF0/Ij8iK3Q6dH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZE0uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGRNKShUcihzTSkpfSxkTS7JtXByb3Y9U24oe2ZhY3Rvcnk6bU0sdG9rZW46ZE0scHJvdmlkZWRJbjoicGxhdGZvcm0ifSksZE0uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGRNLFt7dHlwZTpVbSxhcmdzOlt7cHJvdmlkZWRJbjoicGxhdGZvcm0iLHVzZUZhY3Rvcnk6bU19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19XX0pLG51bGwpO2NsYXNzIGhNe2hpc3RvcnlHbyh0KXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfX1mdW5jdGlvbiBiTSh0KXtjb25zdCBlPVRyKHNNKS5sb2NhdGlvbjtyZXR1cm4gbmV3IF9NKFRyKGxNKSxlJiZlLm9yaWdpbnx8IiIpfWhNLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxoTSl9LGhNLsm1cHJvdj1Tbih7ZmFjdG9yeTpiTSx0b2tlbjpoTSxwcm92aWRlZEluOiJyb290In0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoaE0sW3t0eXBlOlVtLGFyZ3M6W3twcm92aWRlZEluOiJyb290Iix1c2VGYWN0b3J5OmJNfV19XSxudWxsLG51bGwpO2NvbnN0IHlNPW5ldyBlcigiYXBwQmFzZUhyZWYiKTtjbGFzcyBfTSBleHRlbmRzIGhNe2NvbnN0cnVjdG9yKHQsZSl7aWYoc3VwZXIoKSx0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uPXQsdGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnM9W10sbnVsbD09ZSYmKGU9dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5nZXRCYXNlSHJlZkZyb21ET00oKSksbnVsbD09ZSl0aHJvdyBuZXcgRXJyb3IoIk5vIGJhc2UgaHJlZiBzZXQuIFBsZWFzZSBwcm92aWRlIGEgdmFsdWUgZm9yIHRoZSBBUFBfQkFTRV9IUkVGIHRva2VuIG9yIGFkZCBhIGJhc2UgZWxlbWVudCB0byB0aGUgZG9jdW1lbnQuIik7dGhpcy5fYmFzZUhyZWY9ZX1uZ09uRGVzdHJveSgpe2Zvcig7dGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnMubGVuZ3RoOyl0aGlzLl9yZW1vdmVMaXN0ZW5lckZucy5wb3AoKSgpfW9uUG9wU3RhdGUodCl7dGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnMucHVzaCh0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLm9uUG9wU3RhdGUodCksdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5vbkhhc2hDaGFuZ2UodCkpfWdldEJhc2VIcmVmKCl7cmV0dXJuIHRoaXMuX2Jhc2VIcmVmfXByZXBhcmVFeHRlcm5hbFVybCh0KXtyZXR1cm4gZk0odGhpcy5fYmFzZUhyZWYsdCl9cGF0aCh0PSExKXtjb25zdCBlPXRoaXMuX3BsYXRmb3JtTG9jYXRpb24ucGF0aG5hbWUrZ00odGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5zZWFyY2gpLG49dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5oYXNoO3JldHVybiBuJiZ0P2Ake2V9JHtufWA6ZX1wdXNoU3RhdGUodCxlLG4sbyl7Y29uc3QgaT10aGlzLnByZXBhcmVFeHRlcm5hbFVybChuK2dNKG8pKTt0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLnB1c2hTdGF0ZSh0LGUsaSl9cmVwbGFjZVN0YXRlKHQsZSxuLG8pe2NvbnN0IGk9dGhpcy5wcmVwYXJlRXh0ZXJuYWxVcmwobitnTShvKSk7dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5yZXBsYWNlU3RhdGUodCxlLGkpfWZvcndhcmQoKXt0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmZvcndhcmQoKX1iYWNrKCl7dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5iYWNrKCl9aGlzdG9yeUdvKHQ9MCl7dmFyIGUsbjtudWxsPT09KG49KGU9dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbikuaGlzdG9yeUdvKXx8dm9pZCAwPT09bnx8bi5jYWxsKGUsdCl9fV9NLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxfTSkoVHIobE0pLFRyKHlNLDgpKX0sX00uybVwcm92PVNuKHt0b2tlbjpfTSxmYWN0b3J5Ol9NLsm1ZmFjfSksX00uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpsTX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOlt5TV19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoX00sW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmxNfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W3lNXX1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIENNIGV4dGVuZHMgaE17Y29uc3RydWN0b3IodCxlKXtzdXBlcigpLHRoaXMuX3BsYXRmb3JtTG9jYXRpb249dCx0aGlzLl9iYXNlSHJlZj0iIix0aGlzLl9yZW1vdmVMaXN0ZW5lckZucz1bXSxudWxsIT1lJiYodGhpcy5fYmFzZUhyZWY9ZSl9bmdPbkRlc3Ryb3koKXtmb3IoO3RoaXMuX3JlbW92ZUxpc3RlbmVyRm5zLmxlbmd0aDspdGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnMucG9wKCkoKX1vblBvcFN0YXRlKHQpe3RoaXMuX3JlbW92ZUxpc3RlbmVyRm5zLnB1c2godGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5vblBvcFN0YXRlKHQpLHRoaXMuX3BsYXRmb3JtTG9jYXRpb24ub25IYXNoQ2hhbmdlKHQpKX1nZXRCYXNlSHJlZigpe3JldHVybiB0aGlzLl9iYXNlSHJlZn1wYXRoKHQ9ITEpe2xldCBlPXRoaXMuX3BsYXRmb3JtTG9jYXRpb24uaGFzaDtyZXR1cm4gbnVsbD09ZSYmKGU9IiMiKSxlLmxlbmd0aD4wP2Uuc3Vic3RyaW5nKDEpOmV9cHJlcGFyZUV4dGVybmFsVXJsKHQpe2NvbnN0IGU9Zk0odGhpcy5fYmFzZUhyZWYsdCk7cmV0dXJuIGUubGVuZ3RoPjA/IiMiK2U6ZX1wdXNoU3RhdGUodCxlLG4sbyl7bGV0IGk9dGhpcy5wcmVwYXJlRXh0ZXJuYWxVcmwobitnTShvKSk7MD09aS5sZW5ndGgmJihpPXRoaXMuX3BsYXRmb3JtTG9jYXRpb24ucGF0aG5hbWUpLHRoaXMuX3BsYXRmb3JtTG9jYXRpb24ucHVzaFN0YXRlKHQsZSxpKX1yZXBsYWNlU3RhdGUodCxlLG4sbyl7bGV0IGk9dGhpcy5wcmVwYXJlRXh0ZXJuYWxVcmwobitnTShvKSk7MD09aS5sZW5ndGgmJihpPXRoaXMuX3BsYXRmb3JtTG9jYXRpb24ucGF0aG5hbWUpLHRoaXMuX3BsYXRmb3JtTG9jYXRpb24ucmVwbGFjZVN0YXRlKHQsZSxpKX1mb3J3YXJkKCl7dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5mb3J3YXJkKCl9YmFjaygpe3RoaXMuX3BsYXRmb3JtTG9jYXRpb24uYmFjaygpfWhpc3RvcnlHbyh0PTApe3ZhciBlLG47bnVsbD09PShuPShlPXRoaXMuX3BsYXRmb3JtTG9jYXRpb24pLmhpc3RvcnlHbyl8fHZvaWQgMD09PW58fG4uY2FsbChlLHQpfX1DTS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Q00pKFRyKGxNKSxUcih5TSw4KSl9LENNLsm1cHJvdj1Tbih7dG9rZW46Q00sZmFjdG9yeTpDTS7JtWZhY30pLENNLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6bE19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbeU1dfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKENNLFt7dHlwZTpVbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpsTX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOlt5TV19XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBNTXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX3N1YmplY3Q9bmV3IFN5LHRoaXMuX3VybENoYW5nZUxpc3RlbmVycz1bXSx0aGlzLl9wbGF0Zm9ybVN0cmF0ZWd5PXQ7Y29uc3Qgbj10aGlzLl9wbGF0Zm9ybVN0cmF0ZWd5LmdldEJhc2VIcmVmKCk7dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbj1lLHRoaXMuX2Jhc2VIcmVmPXVNKHhNKG4pKSx0aGlzLl9wbGF0Zm9ybVN0cmF0ZWd5Lm9uUG9wU3RhdGUoKHQ9Pnt0aGlzLl9zdWJqZWN0LmVtaXQoe3VybDp0aGlzLnBhdGgoITApLHBvcDohMCxzdGF0ZTp0LnN0YXRlLHR5cGU6dC50eXBlfSl9KSl9cGF0aCh0PSExKXtyZXR1cm4gdGhpcy5ub3JtYWxpemUodGhpcy5fcGxhdGZvcm1TdHJhdGVneS5wYXRoKHQpKX1nZXRTdGF0ZSgpe3JldHVybiB0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmdldFN0YXRlKCl9aXNDdXJyZW50UGF0aEVxdWFsVG8odCxlPSIiKXtyZXR1cm4gdGhpcy5wYXRoKCk9PXRoaXMubm9ybWFsaXplKHQrZ00oZSkpfW5vcm1hbGl6ZSh0KXtyZXR1cm4gTU0uc3RyaXBUcmFpbGluZ1NsYXNoKChmdW5jdGlvbiBlKHQsbil7cmV0dXJuIHQmJm4uc3RhcnRzV2l0aCh0KT9uLnN1YnN0cmluZyh0Lmxlbmd0aCk6bn0pKHRoaXMuX2Jhc2VIcmVmLHhNKHQpKSl9cHJlcGFyZUV4dGVybmFsVXJsKHQpe3JldHVybiB0JiYiLyIhPT10WzBdJiYodD0iLyIrdCksdGhpcy5fcGxhdGZvcm1TdHJhdGVneS5wcmVwYXJlRXh0ZXJuYWxVcmwodCl9Z28odCxlPSIiLG49bnVsbCl7dGhpcy5fcGxhdGZvcm1TdHJhdGVneS5wdXNoU3RhdGUobiwiIix0LGUpLHRoaXMuX25vdGlmeVVybENoYW5nZUxpc3RlbmVycyh0aGlzLnByZXBhcmVFeHRlcm5hbFVybCh0K2dNKGUpKSxuKX1yZXBsYWNlU3RhdGUodCxlPSIiLG49bnVsbCl7dGhpcy5fcGxhdGZvcm1TdHJhdGVneS5yZXBsYWNlU3RhdGUobiwiIix0LGUpLHRoaXMuX25vdGlmeVVybENoYW5nZUxpc3RlbmVycyh0aGlzLnByZXBhcmVFeHRlcm5hbFVybCh0K2dNKGUpKSxuKX1mb3J3YXJkKCl7dGhpcy5fcGxhdGZvcm1TdHJhdGVneS5mb3J3YXJkKCl9YmFjaygpe3RoaXMuX3BsYXRmb3JtU3RyYXRlZ3kuYmFjaygpfWhpc3RvcnlHbyh0PTApe3ZhciBlLG47bnVsbD09PShuPShlPXRoaXMuX3BsYXRmb3JtU3RyYXRlZ3kpLmhpc3RvcnlHbyl8fHZvaWQgMD09PW58fG4uY2FsbChlLHQpfW9uVXJsQ2hhbmdlKHQpe3RoaXMuX3VybENoYW5nZUxpc3RlbmVycy5wdXNoKHQpLHRoaXMuX3VybENoYW5nZVN1YnNjcmlwdGlvbnx8KHRoaXMuX3VybENoYW5nZVN1YnNjcmlwdGlvbj10aGlzLnN1YnNjcmliZSgodD0+e3RoaXMuX25vdGlmeVVybENoYW5nZUxpc3RlbmVycyh0LnVybCx0LnN0YXRlKX0pKSl9X25vdGlmeVVybENoYW5nZUxpc3RlbmVycyh0PSIiLGUpe3RoaXMuX3VybENoYW5nZUxpc3RlbmVycy5mb3JFYWNoKChuPT5uKHQsZSkpKX1zdWJzY3JpYmUodCxlLG4pe3JldHVybiB0aGlzLl9zdWJqZWN0LnN1YnNjcmliZSh7bmV4dDp0LGVycm9yOmUsY29tcGxldGU6bn0pfX1mdW5jdGlvbiB2TSgpe3JldHVybiBuZXcgTU0oVHIoaE0pLFRyKGxNKSl9ZnVuY3Rpb24geE0odCl7cmV0dXJuIHQucmVwbGFjZSgvXC9pbmRleC5odG1sJC8sIiIpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovTU0uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE1NKShUcihoTSksVHIobE0pKX0sTU0ubm9ybWFsaXplUXVlcnlQYXJhbXM9Z00sTU0uam9pbldpdGhTbGFzaD1mTSxNTS5zdHJpcFRyYWlsaW5nU2xhc2g9dU0sTU0uybVwcm92PVNuKHtmYWN0b3J5OnZNLHRva2VuOk1NLHByb3ZpZGVkSW46InJvb3QifSksTU0uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoTX0se3R5cGU6bE19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKE1NLFt7dHlwZTpVbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCIsdXNlRmFjdG9yeTp2TX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhNfSx7dHlwZTpsTX1dfSksbnVsbCk7Y29uc3QgT009e0FEUDpbdm9pZCAwLHZvaWQgMCwwXSxBRk46W3ZvaWQgMCx2b2lkIDAsMF0sQUxMOlt2b2lkIDAsdm9pZCAwLDBdLEFNRDpbdm9pZCAwLHZvaWQgMCwyXSxBT0E6W3ZvaWQgMCwiS3oiXSxBUlM6W3ZvaWQgMCwiJCJdLEFVRDpbIkEkIiwiJCJdLEJBTTpbdm9pZCAwLCJLTSJdLEJCRDpbdm9pZCAwLCIkIl0sQkRUOlt2b2lkIDAsIuCnsyJdLEJIRDpbdm9pZCAwLHZvaWQgMCwzXSxCSUY6W3ZvaWQgMCx2b2lkIDAsMF0sQk1EOlt2b2lkIDAsIiQiXSxCTkQ6W3ZvaWQgMCwiJCJdLEJPQjpbdm9pZCAwLCJCcyJdLEJSTDpbIlIkIl0sQlNEOlt2b2lkIDAsIiQiXSxCV1A6W3ZvaWQgMCwiUCJdLEJZTjpbdm9pZCAwLCLRgC4iLDJdLEJZUjpbdm9pZCAwLHZvaWQgMCwwXSxCWkQ6W3ZvaWQgMCwiJCJdLENBRDpbIkNBJCIsIiQiLDJdLENIRjpbdm9pZCAwLHZvaWQgMCwyXSxDTEY6W3ZvaWQgMCx2b2lkIDAsNF0sQ0xQOlt2b2lkIDAsIiQiLDBdLENOWTpbIkNOwqUiLCLCpSJdLENPUDpbdm9pZCAwLCIkIiwyXSxDUkM6W3ZvaWQgMCwi4oKhIiwyXSxDVUM6W3ZvaWQgMCwiJCJdLENVUDpbdm9pZCAwLCIkIl0sQ1pLOlt2b2lkIDAsIkvEjSIsMl0sREpGOlt2b2lkIDAsdm9pZCAwLDBdLERLSzpbdm9pZCAwLCJrciIsMl0sRE9QOlt2b2lkIDAsIiQiXSxFR1A6W3ZvaWQgMCwiRcKjIl0sRVNQOlt2b2lkIDAsIuKCpyIsMF0sRVVSOlsi4oKsIl0sRkpEOlt2b2lkIDAsIiQiXSxGS1A6W3ZvaWQgMCwiwqMiXSxHQlA6WyLCoyJdLEdFTDpbdm9pZCAwLCLigr4iXSxHSVA6W3ZvaWQgMCwiwqMiXSxHTkY6W3ZvaWQgMCwiRkciLDBdLEdUUTpbdm9pZCAwLCJRIl0sR1lEOlt2b2lkIDAsIiQiLDJdLEhLRDpbIkhLJCIsIiQiXSxITkw6W3ZvaWQgMCwiTCJdLEhSSzpbdm9pZCAwLCJrbiJdLEhVRjpbdm9pZCAwLCJGdCIsMl0sSURSOlt2b2lkIDAsIlJwIiwyXSxJTFM6WyLigqoiXSxJTlI6WyLigrkiXSxJUUQ6W3ZvaWQgMCx2b2lkIDAsMF0sSVJSOlt2b2lkIDAsdm9pZCAwLDBdLElTSzpbdm9pZCAwLCJrciIsMF0sSVRMOlt2b2lkIDAsdm9pZCAwLDBdLEpNRDpbdm9pZCAwLCIkIl0sSk9EOlt2b2lkIDAsdm9pZCAwLDNdLEpQWTpbIsKlIix2b2lkIDAsMF0sS0hSOlt2b2lkIDAsIuGfmyJdLEtNRjpbdm9pZCAwLCJDRiIsMF0sS1BXOlt2b2lkIDAsIuKCqSIsMF0sS1JXOlsi4oKpIix2b2lkIDAsMF0sS1dEOlt2b2lkIDAsdm9pZCAwLDNdLEtZRDpbdm9pZCAwLCIkIl0sS1pUOlt2b2lkIDAsIuKCuCJdLExBSzpbdm9pZCAwLCLigq0iLDBdLExCUDpbdm9pZCAwLCJMwqMiLDBdLExLUjpbdm9pZCAwLCJScyJdLExSRDpbdm9pZCAwLCIkIl0sTFRMOlt2b2lkIDAsIkx0Il0sTFVGOlt2b2lkIDAsdm9pZCAwLDBdLExWTDpbdm9pZCAwLCJMcyJdLExZRDpbdm9pZCAwLHZvaWQgMCwzXSxNR0E6W3ZvaWQgMCwiQXIiLDBdLE1HRjpbdm9pZCAwLHZvaWQgMCwwXSxNTUs6W3ZvaWQgMCwiSyIsMF0sTU5UOlt2b2lkIDAsIuKCriIsMl0sTVJPOlt2b2lkIDAsdm9pZCAwLDBdLE1VUjpbdm9pZCAwLCJScyIsMl0sTVhOOlsiTVgkIiwiJCJdLE1ZUjpbdm9pZCAwLCJSTSJdLE5BRDpbdm9pZCAwLCIkIl0sTkdOOlt2b2lkIDAsIuKCpiJdLE5JTzpbdm9pZCAwLCJDJCJdLE5PSzpbdm9pZCAwLCJrciIsMl0sTlBSOlt2b2lkIDAsIlJzIl0sTlpEOlsiTlokIiwiJCJdLE9NUjpbdm9pZCAwLHZvaWQgMCwzXSxQSFA6W3ZvaWQgMCwi4oKxIl0sUEtSOlt2b2lkIDAsIlJzIiwyXSxQTE46W3ZvaWQgMCwiesWCIl0sUFlHOlt2b2lkIDAsIuKCsiIsMF0sUk9OOlt2b2lkIDAsImxlaSJdLFJTRDpbdm9pZCAwLHZvaWQgMCwwXSxSVUI6W3ZvaWQgMCwi4oK9Il0sUlVSOlt2b2lkIDAsItGALiJdLFJXRjpbdm9pZCAwLCJSRiIsMF0sU0JEOlt2b2lkIDAsIiQiXSxTRUs6W3ZvaWQgMCwia3IiLDJdLFNHRDpbdm9pZCAwLCIkIl0sU0hQOlt2b2lkIDAsIsKjIl0sU0xMOlt2b2lkIDAsdm9pZCAwLDBdLFNPUzpbdm9pZCAwLHZvaWQgMCwwXSxTUkQ6W3ZvaWQgMCwiJCJdLFNTUDpbdm9pZCAwLCLCoyJdLFNURDpbdm9pZCAwLHZvaWQgMCwwXSxTVE46W3ZvaWQgMCwiRGIiXSxTWVA6W3ZvaWQgMCwiwqMiLDBdLFRIQjpbdm9pZCAwLCLguL8iXSxUTU06W3ZvaWQgMCx2b2lkIDAsMF0sVE5EOlt2b2lkIDAsdm9pZCAwLDNdLFRPUDpbdm9pZCAwLCJUJCJdLFRSTDpbdm9pZCAwLHZvaWQgMCwwXSxUUlk6W3ZvaWQgMCwi4oK6Il0sVFREOlt2b2lkIDAsIiQiXSxUV0Q6WyJOVCQiLCIkIiwyXSxUWlM6W3ZvaWQgMCx2b2lkIDAsMl0sVUFIOlt2b2lkIDAsIuKCtCJdLFVHWDpbdm9pZCAwLHZvaWQgMCwwXSxVU0Q6WyIkIl0sVVlJOlt2b2lkIDAsdm9pZCAwLDBdLFVZVTpbdm9pZCAwLCIkIl0sVVlXOlt2b2lkIDAsdm9pZCAwLDRdLFVaUzpbdm9pZCAwLHZvaWQgMCwyXSxWRUY6W3ZvaWQgMCwiQnMiLDJdLFZORDpbIuKCqyIsdm9pZCAwLDBdLFZVVjpbdm9pZCAwLHZvaWQgMCwwXSxYQUY6WyJGQ0ZBIix2b2lkIDAsMF0sWENEOlsiRUMkIiwiJCJdLFhPRjpbIkNGQSIsdm9pZCAwLDBdLFhQRjpbIkNGUEYiLHZvaWQgMCwwXSxYWFg6WyLCpCJdLFlFUjpbdm9pZCAwLHZvaWQgMCwwXSxaQVI6W3ZvaWQgMCwiUiJdLFpNSzpbdm9pZCAwLHZvaWQgMCwwXSxaTVc6W3ZvaWQgMCwiWksiXSxaV0Q6W3ZvaWQgMCx2b2lkIDAsMF19OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi92YXIgUE0sd00sa00sU00sRE0sUk0sRU07ZnVuY3Rpb24gQU0odCxlKXtyZXR1cm4gTE0oZ2codClbeWcuRGF0ZUZvcm1hdF0sZSl9ZnVuY3Rpb24gVE0odCxlKXtyZXR1cm4gTE0oZ2codClbeWcuVGltZUZvcm1hdF0sZSl9ZnVuY3Rpb24gTk0odCxlKXtyZXR1cm4gTE0oZ2codClbeWcuRGF0ZVRpbWVGb3JtYXRdLGUpfWZ1bmN0aW9uIHpNKHQsZSl7Y29uc3Qgbj1nZyh0KSxvPW5beWcuTnVtYmVyU3ltYm9sc11bZV07aWYodm9pZCAwPT09byl7aWYoZT09PVJNLkN1cnJlbmN5RGVjaW1hbClyZXR1cm4gblt5Zy5OdW1iZXJTeW1ib2xzXVtSTS5EZWNpbWFsXTtpZihlPT09Uk0uQ3VycmVuY3lHcm91cClyZXR1cm4gblt5Zy5OdW1iZXJTeW1ib2xzXVtSTS5Hcm91cF19cmV0dXJuIG99ZnVuY3Rpb24gSU0odCxlKXtyZXR1cm4gZ2codClbeWcuTnVtYmVyRm9ybWF0c11bZV19IShmdW5jdGlvbih0KXt0W3QuRGVjaW1hbD0wXT0iRGVjaW1hbCIsdFt0LlBlcmNlbnQ9MV09IlBlcmNlbnQiLHRbdC5DdXJyZW5jeT0yXT0iQ3VycmVuY3kiLHRbdC5TY2llbnRpZmljPTNdPSJTY2llbnRpZmljIn0pKFBNfHwoUE09e30pKSwoZnVuY3Rpb24odCl7dFt0Llplcm89MF09Ilplcm8iLHRbdC5PbmU9MV09Ik9uZSIsdFt0LlR3bz0yXT0iVHdvIix0W3QuRmV3PTNdPSJGZXciLHRbdC5NYW55PTRdPSJNYW55Iix0W3QuT3RoZXI9NV09Ik90aGVyIn0pKHdNfHwod009e30pKSwoZnVuY3Rpb24odCl7dFt0LkZvcm1hdD0wXT0iRm9ybWF0Iix0W3QuU3RhbmRhbG9uZT0xXT0iU3RhbmRhbG9uZSJ9KShrTXx8KGtNPXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5OYXJyb3c9MF09Ik5hcnJvdyIsdFt0LkFiYnJldmlhdGVkPTFdPSJBYmJyZXZpYXRlZCIsdFt0LldpZGU9Ml09IldpZGUiLHRbdC5TaG9ydD0zXT0iU2hvcnQifSkoU018fChTTT17fSkpLChmdW5jdGlvbih0KXt0W3QuU2hvcnQ9MF09IlNob3J0Iix0W3QuTWVkaXVtPTFdPSJNZWRpdW0iLHRbdC5Mb25nPTJdPSJMb25nIix0W3QuRnVsbD0zXT0iRnVsbCJ9KShETXx8KERNPXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5EZWNpbWFsPTBdPSJEZWNpbWFsIix0W3QuR3JvdXA9MV09Ikdyb3VwIix0W3QuTGlzdD0yXT0iTGlzdCIsdFt0LlBlcmNlbnRTaWduPTNdPSJQZXJjZW50U2lnbiIsdFt0LlBsdXNTaWduPTRdPSJQbHVzU2lnbiIsdFt0Lk1pbnVzU2lnbj01XT0iTWludXNTaWduIix0W3QuRXhwb25lbnRpYWw9Nl09IkV4cG9uZW50aWFsIix0W3QuU3VwZXJzY3JpcHRpbmdFeHBvbmVudD03XT0iU3VwZXJzY3JpcHRpbmdFeHBvbmVudCIsdFt0LlBlck1pbGxlPThdPSJQZXJNaWxsZSIsdFt0WzEvMF09OV09IkluZmluaXR5Iix0W3QuTmFOPTEwXT0iTmFOIix0W3QuVGltZVNlcGFyYXRvcj0xMV09IlRpbWVTZXBhcmF0b3IiLHRbdC5DdXJyZW5jeURlY2ltYWw9MTJdPSJDdXJyZW5jeURlY2ltYWwiLHRbdC5DdXJyZW5jeUdyb3VwPTEzXT0iQ3VycmVuY3lHcm91cCJ9KShSTXx8KFJNPXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5TdW5kYXk9MF09IlN1bmRheSIsdFt0Lk1vbmRheT0xXT0iTW9uZGF5Iix0W3QuVHVlc2RheT0yXT0iVHVlc2RheSIsdFt0LldlZG5lc2RheT0zXT0iV2VkbmVzZGF5Iix0W3QuVGh1cnNkYXk9NF09IlRodXJzZGF5Iix0W3QuRnJpZGF5PTVdPSJGcmlkYXkiLHRbdC5TYXR1cmRheT02XT0iU2F0dXJkYXkifSkoRU18fChFTT17fSkpO2NvbnN0IEhNPWhnO2Z1bmN0aW9uIEZNKHQpe2lmKCF0W3lnLkV4dHJhRGF0YV0pdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIGV4dHJhIGxvY2FsZSBkYXRhIGZvciB0aGUgbG9jYWxlICIke3RbeWcuTG9jYWxlSWRdfSIuIFVzZSAicmVnaXN0ZXJMb2NhbGVEYXRhIiB0byBsb2FkIG5ldyBkYXRhLiBTZWUgdGhlICJJMThuIGd1aWRlIiBvbiBhbmd1bGFyLmlvIHRvIGtub3cgbW9yZS5gKX1mdW5jdGlvbiBMTSh0LGUpe2ZvcihsZXQgbj1lO24+LTE7bi0tKWlmKHZvaWQgMCE9PXRbbl0pcmV0dXJuIHRbbl07dGhyb3cgbmV3IEVycm9yKCJMb2NhbGUgZGF0YSBBUEk6IGxvY2FsZSBkYXRhIHVuZGVmaW5lZCIpfWZ1bmN0aW9uIEJNKHQpe2NvbnN0W2Usbl09dC5zcGxpdCgiOiIpO3JldHVybntob3VyczorZSxtaW51dGVzOitufX1mdW5jdGlvbiBWTSh0LGUsbj0iZW4iKXtjb25zdCBvPShmdW5jdGlvbiBpKHQpe3JldHVybiBnZyh0KVt5Zy5DdXJyZW5jaWVzXX0pKG4pW3RdfHxPTVt0XXx8W10sYT1vWzFdO3JldHVybiJuYXJyb3ciPT09ZSYmInN0cmluZyI9PXR5cGVvZiBhP2E6b1swXXx8dH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IGpNPS9eKFxkezR9KS0/KFxkXGQpLT8oXGRcZCkoPzpUKFxkXGQpKD86Oj8oXGRcZCkoPzo6PyhcZFxkKSg/OlwuKFxkKykpPyk/KT8oWnwoWystXSkoXGRcZCk6PyhcZFxkKSk/KT8kLyxVTT17fSxXTT0vKCg/OlteQkVHSExNT1NXWVphYmNkaG1zd3l6J10rKXwoPzonKD86W14nXXwnJykqJyl8KD86R3sxLDV9fHl7MSw0fXxZezEsNH18TXsxLDV9fEx7MSw1fXx3ezEsMn18V3sxfXxkezEsMn18RXsxLDZ9fGN7MSw2fXxhezEsNX18YnsxLDV9fEJ7MSw1fXxoezEsMn18SHsxLDJ9fG17MSwyfXxzezEsMn18U3sxLDN9fHp7MSw0fXxaezEsNX18T3sxLDR9KSkoW1xzXFNdKikvO3ZhciBHTSxZTSxxTTtmdW5jdGlvbiBaTSh0LGUsbixvKXtsZXQgaT0oZnVuY3Rpb24gYSh0KXtpZihzdih0KSlyZXR1cm4gdDtpZigibnVtYmVyIj09dHlwZW9mIHQmJiFpc05hTih0KSlyZXR1cm4gbmV3IERhdGUodCk7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtpZih0PXQudHJpbSgpLC9eKFxkezR9KC1cZHsxLDJ9KC1cZHsxLDJ9KT8pPykkLy50ZXN0KHQpKXtjb25zdFtlLG49MSxvPTFdPXQuc3BsaXQoIi0iKS5tYXAoKHQ9Pit0KSk7cmV0dXJuIFhNKGUsbi0xLG8pfWNvbnN0IGU9cGFyc2VGbG9hdCh0KTtpZighaXNOYU4odC1lKSlyZXR1cm4gbmV3IERhdGUoZSk7bGV0IG47aWYobj10Lm1hdGNoKGpNKSlyZXR1cm4oZnVuY3Rpb24gZSh0KXtjb25zdCBlPW5ldyBEYXRlKDApO2xldCBuPTAsbz0wO2NvbnN0IGk9dFs4XT9lLnNldFVUQ0Z1bGxZZWFyOmUuc2V0RnVsbFllYXIsYT10WzhdP2Uuc2V0VVRDSG91cnM6ZS5zZXRIb3Vyczt0WzldJiYobj1OdW1iZXIodFs5XSt0WzEwXSksbz1OdW1iZXIodFs5XSt0WzExXSkpO2kuY2FsbChlLE51bWJlcih0WzFdKSxOdW1iZXIodFsyXSktMSxOdW1iZXIodFszXSkpO2NvbnN0IHI9TnVtYmVyKHRbNF18fDApLW4scz1OdW1iZXIodFs1XXx8MCktbyxsPU51bWJlcih0WzZdfHwwKSxjPU1hdGguZmxvb3IoMWUzKnBhcnNlRmxvYXQoIjAuIisodFs3XXx8MCkpKTtyZXR1cm4gYS5jYWxsKGUscixzLGwsYyksZX0pKG4pfWNvbnN0IG49bmV3IERhdGUodCk7aWYoIXN2KG4pKXRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGNvbnZlcnQgIiR7dH0iIGludG8gYSBkYXRlYCk7cmV0dXJuIG59KSh0KTtlPUtNKG4sZSl8fGU7bGV0IHIscz1bXTtmb3IoO2U7KXtpZihyPVdNLmV4ZWMoZSksIXIpe3MucHVzaChlKTticmVha317cz1zLmNvbmNhdChyLnNsaWNlKDEpKTtjb25zdCB0PXMucG9wKCk7aWYoIXQpYnJlYWs7ZT10fX1sZXQgbD1pLmdldFRpbWV6b25lT2Zmc2V0KCk7byYmKGw9cnYobyxsKSxpPShmdW5jdGlvbiBjKHQsZSxuKXtjb25zdCBvPW4/LTE6MSxpPXQuZ2V0VGltZXpvbmVPZmZzZXQoKSxhPXJ2KGUsaSk7cmV0dXJuKGZ1bmN0aW9uIHIodCxlKXtyZXR1cm4odD1uZXcgRGF0ZSh0LmdldFRpbWUoKSkpLnNldE1pbnV0ZXModC5nZXRNaW51dGVzKCkrZSksdH0pKHQsbyooYS1pKSl9KShpLG8sITApKTtsZXQgZD0iIjtyZXR1cm4gcy5mb3JFYWNoKCh0PT57Y29uc3QgZT0oZnVuY3Rpb24gbyh0KXtpZihhdlt0XSlyZXR1cm4gYXZbdF07bGV0IGU7c3dpdGNoKHQpe2Nhc2UiRyI6Y2FzZSJHRyI6Y2FzZSJHR0ciOmU9dHYocU0uRXJhcyxTTS5BYmJyZXZpYXRlZCk7YnJlYWs7Y2FzZSJHR0dHIjplPXR2KHFNLkVyYXMsU00uV2lkZSk7YnJlYWs7Y2FzZSJHR0dHRyI6ZT10dihxTS5FcmFzLFNNLk5hcnJvdyk7YnJlYWs7Y2FzZSJ5IjplPSRNKFlNLkZ1bGxZZWFyLDEsMCwhMSwhMCk7YnJlYWs7Y2FzZSJ5eSI6ZT0kTShZTS5GdWxsWWVhciwyLDAsITAsITApO2JyZWFrO2Nhc2UieXl5IjplPSRNKFlNLkZ1bGxZZWFyLDMsMCwhMSwhMCk7YnJlYWs7Y2FzZSJ5eXl5IjplPSRNKFlNLkZ1bGxZZWFyLDQsMCwhMSwhMCk7YnJlYWs7Y2FzZSJZIjplPWl2KDEpO2JyZWFrO2Nhc2UiWVkiOmU9aXYoMiwhMCk7YnJlYWs7Y2FzZSJZWVkiOmU9aXYoMyk7YnJlYWs7Y2FzZSJZWVlZIjplPWl2KDQpO2JyZWFrO2Nhc2UiTSI6Y2FzZSJMIjplPSRNKFlNLk1vbnRoLDEsMSk7YnJlYWs7Y2FzZSJNTSI6Y2FzZSJMTCI6ZT0kTShZTS5Nb250aCwyLDEpO2JyZWFrO2Nhc2UiTU1NIjplPXR2KHFNLk1vbnRocyxTTS5BYmJyZXZpYXRlZCk7YnJlYWs7Y2FzZSJNTU1NIjplPXR2KHFNLk1vbnRocyxTTS5XaWRlKTticmVhaztjYXNlIk1NTU1NIjplPXR2KHFNLk1vbnRocyxTTS5OYXJyb3cpO2JyZWFrO2Nhc2UiTExMIjplPXR2KHFNLk1vbnRocyxTTS5BYmJyZXZpYXRlZCxrTS5TdGFuZGFsb25lKTticmVhaztjYXNlIkxMTEwiOmU9dHYocU0uTW9udGhzLFNNLldpZGUsa00uU3RhbmRhbG9uZSk7YnJlYWs7Y2FzZSJMTExMTCI6ZT10dihxTS5Nb250aHMsU00uTmFycm93LGtNLlN0YW5kYWxvbmUpO2JyZWFrO2Nhc2UidyI6ZT1vdigxKTticmVhaztjYXNlInd3IjplPW92KDIpO2JyZWFrO2Nhc2UiVyI6ZT1vdigxLCEwKTticmVhaztjYXNlImQiOmU9JE0oWU0uRGF0ZSwxKTticmVhaztjYXNlImRkIjplPSRNKFlNLkRhdGUsMik7YnJlYWs7Y2FzZSJjIjpjYXNlImNjIjplPSRNKFlNLkRheSwxKTticmVhaztjYXNlImNjYyI6ZT10dihxTS5EYXlzLFNNLkFiYnJldmlhdGVkLGtNLlN0YW5kYWxvbmUpO2JyZWFrO2Nhc2UiY2NjYyI6ZT10dihxTS5EYXlzLFNNLldpZGUsa00uU3RhbmRhbG9uZSk7YnJlYWs7Y2FzZSJjY2NjYyI6ZT10dihxTS5EYXlzLFNNLk5hcnJvdyxrTS5TdGFuZGFsb25lKTticmVhaztjYXNlImNjY2NjYyI6ZT10dihxTS5EYXlzLFNNLlNob3J0LGtNLlN0YW5kYWxvbmUpO2JyZWFrO2Nhc2UiRSI6Y2FzZSJFRSI6Y2FzZSJFRUUiOmU9dHYocU0uRGF5cyxTTS5BYmJyZXZpYXRlZCk7YnJlYWs7Y2FzZSJFRUVFIjplPXR2KHFNLkRheXMsU00uV2lkZSk7YnJlYWs7Y2FzZSJFRUVFRSI6ZT10dihxTS5EYXlzLFNNLk5hcnJvdyk7YnJlYWs7Y2FzZSJFRUVFRUUiOmU9dHYocU0uRGF5cyxTTS5TaG9ydCk7YnJlYWs7Y2FzZSJhIjpjYXNlImFhIjpjYXNlImFhYSI6ZT10dihxTS5EYXlQZXJpb2RzLFNNLkFiYnJldmlhdGVkKTticmVhaztjYXNlImFhYWEiOmU9dHYocU0uRGF5UGVyaW9kcyxTTS5XaWRlKTticmVhaztjYXNlImFhYWFhIjplPXR2KHFNLkRheVBlcmlvZHMsU00uTmFycm93KTticmVhaztjYXNlImIiOmNhc2UiYmIiOmNhc2UiYmJiIjplPXR2KHFNLkRheVBlcmlvZHMsU00uQWJicmV2aWF0ZWQsa00uU3RhbmRhbG9uZSwhMCk7YnJlYWs7Y2FzZSJiYmJiIjplPXR2KHFNLkRheVBlcmlvZHMsU00uV2lkZSxrTS5TdGFuZGFsb25lLCEwKTticmVhaztjYXNlImJiYmJiIjplPXR2KHFNLkRheVBlcmlvZHMsU00uTmFycm93LGtNLlN0YW5kYWxvbmUsITApO2JyZWFrO2Nhc2UiQiI6Y2FzZSJCQiI6Y2FzZSJCQkIiOmU9dHYocU0uRGF5UGVyaW9kcyxTTS5BYmJyZXZpYXRlZCxrTS5Gb3JtYXQsITApO2JyZWFrO2Nhc2UiQkJCQiI6ZT10dihxTS5EYXlQZXJpb2RzLFNNLldpZGUsa00uRm9ybWF0LCEwKTticmVhaztjYXNlIkJCQkJCIjplPXR2KHFNLkRheVBlcmlvZHMsU00uTmFycm93LGtNLkZvcm1hdCwhMCk7YnJlYWs7Y2FzZSJoIjplPSRNKFlNLkhvdXJzLDEsLTEyKTticmVhaztjYXNlImhoIjplPSRNKFlNLkhvdXJzLDIsLTEyKTticmVhaztjYXNlIkgiOmU9JE0oWU0uSG91cnMsMSk7YnJlYWs7Y2FzZSJISCI6ZT0kTShZTS5Ib3VycywyKTticmVhaztjYXNlIm0iOmU9JE0oWU0uTWludXRlcywxKTticmVhaztjYXNlIm1tIjplPSRNKFlNLk1pbnV0ZXMsMik7YnJlYWs7Y2FzZSJzIjplPSRNKFlNLlNlY29uZHMsMSk7YnJlYWs7Y2FzZSJzcyI6ZT0kTShZTS5TZWNvbmRzLDIpO2JyZWFrO2Nhc2UiUyI6ZT0kTShZTS5GcmFjdGlvbmFsU2Vjb25kcywxKTticmVhaztjYXNlIlNTIjplPSRNKFlNLkZyYWN0aW9uYWxTZWNvbmRzLDIpO2JyZWFrO2Nhc2UiU1NTIjplPSRNKFlNLkZyYWN0aW9uYWxTZWNvbmRzLDMpO2JyZWFrO2Nhc2UiWiI6Y2FzZSJaWiI6Y2FzZSJaWloiOmU9ZXYoR00uU2hvcnQpO2JyZWFrO2Nhc2UiWlpaWloiOmU9ZXYoR00uRXh0ZW5kZWQpO2JyZWFrO2Nhc2UiTyI6Y2FzZSJPTyI6Y2FzZSJPT08iOmNhc2UieiI6Y2FzZSJ6eiI6Y2FzZSJ6enoiOmU9ZXYoR00uU2hvcnRHTVQpO2JyZWFrO2Nhc2UiT09PTyI6Y2FzZSJaWlpaIjpjYXNlInp6enoiOmU9ZXYoR00uTG9uZyk7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gbnVsbH1yZXR1cm4gYXZbdF09ZSxlfSkodCk7ZCs9ZT9lKGksbixsKToiJyciPT09dD8iJyI6dC5yZXBsYWNlKC8oXid8JyQpL2csIiIpLnJlcGxhY2UoLycnL2csIiciKX0pKSxkfWZ1bmN0aW9uIFhNKHQsZSxuKXtjb25zdCBvPW5ldyBEYXRlKDApO3JldHVybiBvLnNldEZ1bGxZZWFyKHQsZSxuKSxvLnNldEhvdXJzKDAsMCwwKSxvfWZ1bmN0aW9uIEtNKHQsZSl7Y29uc3Qgbj0oZnVuY3Rpb24gbyh0KXtyZXR1cm4gZ2codClbeWcuTG9jYWxlSWRdfSkodCk7aWYoVU1bbl09VU1bbl18fHt9LFVNW25dW2VdKXJldHVybiBVTVtuXVtlXTtsZXQgaT0iIjtzd2l0Y2goZSl7Y2FzZSJzaG9ydERhdGUiOmk9QU0odCxETS5TaG9ydCk7YnJlYWs7Y2FzZSJtZWRpdW1EYXRlIjppPUFNKHQsRE0uTWVkaXVtKTticmVhaztjYXNlImxvbmdEYXRlIjppPUFNKHQsRE0uTG9uZyk7YnJlYWs7Y2FzZSJmdWxsRGF0ZSI6aT1BTSh0LERNLkZ1bGwpO2JyZWFrO2Nhc2Uic2hvcnRUaW1lIjppPVRNKHQsRE0uU2hvcnQpO2JyZWFrO2Nhc2UibWVkaXVtVGltZSI6aT1UTSh0LERNLk1lZGl1bSk7YnJlYWs7Y2FzZSJsb25nVGltZSI6aT1UTSh0LERNLkxvbmcpO2JyZWFrO2Nhc2UiZnVsbFRpbWUiOmk9VE0odCxETS5GdWxsKTticmVhaztjYXNlInNob3J0Ijpjb25zdCBlPUtNKHQsInNob3J0VGltZSIpLG49S00odCwic2hvcnREYXRlIik7aT1KTShOTSh0LERNLlNob3J0KSxbZSxuXSk7YnJlYWs7Y2FzZSJtZWRpdW0iOmNvbnN0IG89S00odCwibWVkaXVtVGltZSIpLGE9S00odCwibWVkaXVtRGF0ZSIpO2k9Sk0oTk0odCxETS5NZWRpdW0pLFtvLGFdKTticmVhaztjYXNlImxvbmciOmNvbnN0IHI9S00odCwibG9uZ1RpbWUiKSxzPUtNKHQsImxvbmdEYXRlIik7aT1KTShOTSh0LERNLkxvbmcpLFtyLHNdKTticmVhaztjYXNlImZ1bGwiOmNvbnN0IGw9S00odCwiZnVsbFRpbWUiKSxjPUtNKHQsImZ1bGxEYXRlIik7aT1KTShOTSh0LERNLkZ1bGwpLFtsLGNdKX1yZXR1cm4gaSYmKFVNW25dW2VdPWkpLGl9ZnVuY3Rpb24gSk0odCxlKXtyZXR1cm4gZSYmKHQ9dC5yZXBsYWNlKC9ceyhbXn1dKyl9L2csKGZ1bmN0aW9uKHQsbil7cmV0dXJuIG51bGwhPWUmJm4gaW4gZT9lW25dOnR9KSkpLHR9ZnVuY3Rpb24gUU0odCxlLG49Ii0iLG8saSl7bGV0IGE9IiI7KHQ8MHx8aSYmdDw9MCkmJihpP3Q9MS10Oih0PS10LGE9bikpO2xldCByPVN0cmluZyh0KTtmb3IoO3IubGVuZ3RoPGU7KXI9IjAiK3I7cmV0dXJuIG8mJihyPXIuc3Vic3RyKHIubGVuZ3RoLWUpKSxhK3J9ZnVuY3Rpb24gJE0odCxlLG49MCxvPSExLGk9ITEpe3JldHVybiBmdW5jdGlvbihhLHIpe2xldCBzPShmdW5jdGlvbiBsKHQsZSl7c3dpdGNoKHQpe2Nhc2UgWU0uRnVsbFllYXI6cmV0dXJuIGUuZ2V0RnVsbFllYXIoKTtjYXNlIFlNLk1vbnRoOnJldHVybiBlLmdldE1vbnRoKCk7Y2FzZSBZTS5EYXRlOnJldHVybiBlLmdldERhdGUoKTtjYXNlIFlNLkhvdXJzOnJldHVybiBlLmdldEhvdXJzKCk7Y2FzZSBZTS5NaW51dGVzOnJldHVybiBlLmdldE1pbnV0ZXMoKTtjYXNlIFlNLlNlY29uZHM6cmV0dXJuIGUuZ2V0U2Vjb25kcygpO2Nhc2UgWU0uRnJhY3Rpb25hbFNlY29uZHM6cmV0dXJuIGUuZ2V0TWlsbGlzZWNvbmRzKCk7Y2FzZSBZTS5EYXk6cmV0dXJuIGUuZ2V0RGF5KCk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gRGF0ZVR5cGUgdmFsdWUgIiR7dH0iLmApfX0pKHQsYSk7aWYoKG4+MHx8cz4tbikmJihzKz1uKSx0PT09WU0uSG91cnMpMD09PXMmJi0xMj09PW4mJihzPTEyKTtlbHNlIGlmKHQ9PT1ZTS5GcmFjdGlvbmFsU2Vjb25kcylyZXR1cm4oZnVuY3Rpb24gYyh0LGUpe3JldHVybiBRTSh0LDMpLnN1YnN0cigwLGUpfSkocyxlKTtjb25zdCBkPXpNKHIsUk0uTWludXNTaWduKTtyZXR1cm4gUU0ocyxlLGQsbyxpKX19ZnVuY3Rpb24gdHYodCxlLG49a00uRm9ybWF0LG89ITEpe3JldHVybiBmdW5jdGlvbihpLGEpe3JldHVybihmdW5jdGlvbiByKHQsZSxuLG8saSxhKXtzd2l0Y2gobil7Y2FzZSBxTS5Nb250aHM6cmV0dXJuKGZ1bmN0aW9uIHIodCxlLG4pe2NvbnN0IG89Z2codCksaT1MTShbb1t5Zy5Nb250aHNGb3JtYXRdLG9beWcuTW9udGhzU3RhbmRhbG9uZV1dLGUpO3JldHVybiBMTShpLG4pfSkoZSxpLG8pW3QuZ2V0TW9udGgoKV07Y2FzZSBxTS5EYXlzOnJldHVybihmdW5jdGlvbiBzKHQsZSxuKXtjb25zdCBvPWdnKHQpLGk9TE0oW29beWcuRGF5c0Zvcm1hdF0sb1t5Zy5EYXlzU3RhbmRhbG9uZV1dLGUpO3JldHVybiBMTShpLG4pfSkoZSxpLG8pW3QuZ2V0RGF5KCldO2Nhc2UgcU0uRGF5UGVyaW9kczpjb25zdCByPXQuZ2V0SG91cnMoKSxzPXQuZ2V0TWludXRlcygpO2lmKGEpe2NvbnN0IHQ9KGZ1bmN0aW9uIGwodCl7Y29uc3QgZT1nZyh0KTtyZXR1cm4gRk0oZSksKGVbeWcuRXh0cmFEYXRhXVsyXXx8W10pLm1hcCgodD0+InN0cmluZyI9PXR5cGVvZiB0P0JNKHQpOltCTSh0WzBdKSxCTSh0WzFdKV0pKX0pKGUpLG49KGZ1bmN0aW9uIGModCxlLG4pe2NvbnN0IG89Z2codCk7Rk0obyk7Y29uc3QgaT1MTShbb1t5Zy5FeHRyYURhdGFdWzBdLG9beWcuRXh0cmFEYXRhXVsxXV0sZSl8fFtdO3JldHVybiBMTShpLG4pfHxbXX0pKGUsaSxvKSxhPXQuZmluZEluZGV4KCh0PT57aWYoQXJyYXkuaXNBcnJheSh0KSl7Y29uc3RbZSxuXT10LG89cj49ZS5ob3VycyYmcz49ZS5taW51dGVzLGk9cjxuLmhvdXJzfHxyPT09bi5ob3VycyYmczxuLm1pbnV0ZXM7aWYoZS5ob3VyczxuLmhvdXJzKXtpZihvJiZpKXJldHVybiEwfWVsc2UgaWYob3x8aSlyZXR1cm4hMH1lbHNlIGlmKHQuaG91cnM9PT1yJiZ0Lm1pbnV0ZXM9PT1zKXJldHVybiEwO3JldHVybiExfSkpO2lmKC0xIT09YSlyZXR1cm4gblthXX1yZXR1cm4oZnVuY3Rpb24gZCh0LGUsbil7Y29uc3Qgbz1nZyh0KSxpPUxNKFtvW3lnLkRheVBlcmlvZHNGb3JtYXRdLG9beWcuRGF5UGVyaW9kc1N0YW5kYWxvbmVdXSxlKTtyZXR1cm4gTE0oaSxuKX0pKGUsaSxvKVtyPDEyPzA6MV07Y2FzZSBxTS5FcmFzOnJldHVybihmdW5jdGlvbiBwKHQsZSl7cmV0dXJuIExNKGdnKHQpW3lnLkVyYXNdLGUpfSkoZSxvKVt0LmdldEZ1bGxZZWFyKCk8PTA/MDoxXTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCB0cmFuc2xhdGlvbiB0eXBlICR7bn1gKX19KShpLGEsdCxlLG4sbyl9fWZ1bmN0aW9uIGV2KHQpe3JldHVybiBmdW5jdGlvbihlLG4sbyl7Y29uc3QgaT0tMSpvLGE9ek0obixSTS5NaW51c1NpZ24pLHI9aT4wP01hdGguZmxvb3IoaS82MCk6TWF0aC5jZWlsKGkvNjApO3N3aXRjaCh0KXtjYXNlIEdNLlNob3J0OnJldHVybihpPj0wPyIrIjoiIikrUU0ociwyLGEpK1FNKE1hdGguYWJzKGklNjApLDIsYSk7Y2FzZSBHTS5TaG9ydEdNVDpyZXR1cm4iR01UIisoaT49MD8iKyI6IiIpK1FNKHIsMSxhKTtjYXNlIEdNLkxvbmc6cmV0dXJuIkdNVCIrKGk+PTA/IisiOiIiKStRTShyLDIsYSkrIjoiK1FNKE1hdGguYWJzKGklNjApLDIsYSk7Y2FzZSBHTS5FeHRlbmRlZDpyZXR1cm4gMD09PW8/IloiOihpPj0wPyIrIjoiIikrUU0ociwyLGEpKyI6IitRTShNYXRoLmFicyhpJTYwKSwyLGEpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHpvbmUgd2lkdGggIiR7dH0iYCl9fX0hKGZ1bmN0aW9uKHQpe3RbdC5TaG9ydD0wXT0iU2hvcnQiLHRbdC5TaG9ydEdNVD0xXT0iU2hvcnRHTVQiLHRbdC5Mb25nPTJdPSJMb25nIix0W3QuRXh0ZW5kZWQ9M109IkV4dGVuZGVkIn0pKEdNfHwoR009e30pKSwoZnVuY3Rpb24odCl7dFt0LkZ1bGxZZWFyPTBdPSJGdWxsWWVhciIsdFt0Lk1vbnRoPTFdPSJNb250aCIsdFt0LkRhdGU9Ml09IkRhdGUiLHRbdC5Ib3Vycz0zXT0iSG91cnMiLHRbdC5NaW51dGVzPTRdPSJNaW51dGVzIix0W3QuU2Vjb25kcz01XT0iU2Vjb25kcyIsdFt0LkZyYWN0aW9uYWxTZWNvbmRzPTZdPSJGcmFjdGlvbmFsU2Vjb25kcyIsdFt0LkRheT03XT0iRGF5In0pKFlNfHwoWU09e30pKSwoZnVuY3Rpb24odCl7dFt0LkRheVBlcmlvZHM9MF09IkRheVBlcmlvZHMiLHRbdC5EYXlzPTFdPSJEYXlzIix0W3QuTW9udGhzPTJdPSJNb250aHMiLHRbdC5FcmFzPTNdPSJFcmFzIn0pKHFNfHwocU09e30pKTtmdW5jdGlvbiBudih0KXtyZXR1cm4gWE0odC5nZXRGdWxsWWVhcigpLHQuZ2V0TW9udGgoKSx0LmdldERhdGUoKSsoNC10LmdldERheSgpKSl9ZnVuY3Rpb24gb3YodCxlPSExKXtyZXR1cm4gZnVuY3Rpb24obixvKXtsZXQgaTtpZihlKXtjb25zdCB0PW5ldyBEYXRlKG4uZ2V0RnVsbFllYXIoKSxuLmdldE1vbnRoKCksMSkuZ2V0RGF5KCktMSxlPW4uZ2V0RGF0ZSgpO2k9MStNYXRoLmZsb29yKChlK3QpLzcpfWVsc2V7Y29uc3QgdD1udihuKSxlPShmdW5jdGlvbiBhKHQpe2NvbnN0IGU9WE0odCwwLDEpLmdldERheSgpO3JldHVybiBYTSh0LDAsMSsoZTw9ND80OjExKS1lKX0pKHQuZ2V0RnVsbFllYXIoKSksbz10LmdldFRpbWUoKS1lLmdldFRpbWUoKTtpPTErTWF0aC5yb3VuZChvLzYwNDhlNSl9cmV0dXJuIFFNKGksdCx6TShvLFJNLk1pbnVzU2lnbikpfX1mdW5jdGlvbiBpdih0LGU9ITEpe3JldHVybiBmdW5jdGlvbihuLG8pe3JldHVybiBRTShudihuKS5nZXRGdWxsWWVhcigpLHQsek0obyxSTS5NaW51c1NpZ24pLGUpfX1jb25zdCBhdj17fTtmdW5jdGlvbiBydih0LGUpe3Q9dC5yZXBsYWNlKC86L2csIiIpO2NvbnN0IG49RGF0ZS5wYXJzZSgiSmFuIDAxLCAxOTcwIDAwOjAwOjAwICIrdCkvNmU0O3JldHVybiBpc05hTihuKT9lOm59ZnVuY3Rpb24gc3YodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBEYXRlJiYhaXNOYU4odC52YWx1ZU9mKCkpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBsdj0vXihcZCspP1wuKChcZCspKC0oXGQrKSk/KT8kLyxjdj0iLiIsZHY9IjAiO2Z1bmN0aW9uIHB2KHQsZSxuLG8saSxhLHI9ITEpe2xldCBzPSIiLGw9ITE7aWYoaXNGaW5pdGUodCkpe2xldCBjPShmdW5jdGlvbiBjKHQpe2xldCBlLG4sbyxpLGEscj1NYXRoLmFicyh0KSsiIixzPTA7KG49ci5pbmRleE9mKGN2KSk+LTEmJihyPXIucmVwbGFjZShjdiwiIikpOyhvPXIuc2VhcmNoKC9lL2kpKT4wPyhuPDAmJihuPW8pLG4rPStyLnNsaWNlKG8rMSkscj1yLnN1YnN0cmluZygwLG8pKTpuPDAmJihuPXIubGVuZ3RoKTtmb3Iobz0wO3IuY2hhckF0KG8pPT09ZHY7bysrKTtpZihvPT09KGE9ci5sZW5ndGgpKWU9WzBdLG49MTtlbHNle2ZvcihhLS07ci5jaGFyQXQoYSk9PT1kdjspYS0tO2ZvcihuLT1vLGU9W10saT0wO288PWE7bysrLGkrKyllW2ldPU51bWJlcihyLmNoYXJBdChvKSl9bj4yMiYmKGU9ZS5zcGxpY2UoMCwyMSkscz1uLTEsbj0xKTtyZXR1cm57ZGlnaXRzOmUsZXhwb25lbnQ6cyxpbnRlZ2VyTGVuOm59fSkodCk7ciYmKGM9KGZ1bmN0aW9uIGQodCl7aWYoMD09PXQuZGlnaXRzWzBdKXJldHVybiB0O2NvbnN0IGU9dC5kaWdpdHMubGVuZ3RoLXQuaW50ZWdlckxlbjt0LmV4cG9uZW50P3QuZXhwb25lbnQrPTI6KDA9PT1lP3QuZGlnaXRzLnB1c2goMCwwKToxPT09ZSYmdC5kaWdpdHMucHVzaCgwKSx0LmludGVnZXJMZW4rPTIpO3JldHVybiB0fSkoYykpO2xldCBkPWUubWluSW50LHA9ZS5taW5GcmFjLG09ZS5tYXhGcmFjO2lmKGEpe2NvbnN0IHQ9YS5tYXRjaChsdik7aWYobnVsbD09PXQpdGhyb3cgbmV3IEVycm9yKGAke2F9IGlzIG5vdCBhIHZhbGlkIGRpZ2l0IGluZm9gKTtjb25zdCBlPXRbMV0sbj10WzNdLG89dFs1XTtudWxsIT1lJiYoZD1ndihlKSksbnVsbCE9biYmKHA9Z3YobikpLG51bGwhPW8/bT1ndihvKTpudWxsIT1uJiZwPm0mJihtPXApfSEoZnVuY3Rpb24gcCh0LGUsbil7aWYoZT5uKXRocm93IG5ldyBFcnJvcihgVGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhZnRlciBmcmFjdGlvbiAoJHtlfSkgaXMgaGlnaGVyIHRoYW4gdGhlIG1heGltdW0gKCR7bn0pLmApO2xldCBvPXQuZGlnaXRzLGk9by5sZW5ndGgtdC5pbnRlZ2VyTGVuO2NvbnN0IGE9TWF0aC5taW4oTWF0aC5tYXgoZSxpKSxuKTtsZXQgcj1hK3QuaW50ZWdlckxlbixzPW9bcl07aWYocj4wKXtvLnNwbGljZShNYXRoLm1heCh0LmludGVnZXJMZW4scikpO2ZvcihsZXQgdD1yO3Q8by5sZW5ndGg7dCsrKW9bdF09MH1lbHNle2k9TWF0aC5tYXgoMCxpKSx0LmludGVnZXJMZW49MSxvLmxlbmd0aD1NYXRoLm1heCgxLHI9YSsxKSxvWzBdPTA7Zm9yKGxldCB0PTE7dDxyO3QrKylvW3RdPTB9aWYocz49NSlpZihyLTE8MCl7Zm9yKGxldCBlPTA7ZT5yO2UtLSlvLnVuc2hpZnQoMCksdC5pbnRlZ2VyTGVuKys7by51bnNoaWZ0KDEpLHQuaW50ZWdlckxlbisrfWVsc2Ugb1tyLTFdKys7Zm9yKDtpPE1hdGgubWF4KDAsYSk7aSsrKW8ucHVzaCgwKTtsZXQgbD0wIT09YTtjb25zdCBjPWUrdC5pbnRlZ2VyTGVuLGQ9by5yZWR1Y2VSaWdodCgoZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIG9bbl09KGUrPXQpPDEwP2U6ZS0xMCxsJiYoMD09PW9bbl0mJm4+PWM/by5wb3AoKTpsPSExKSxlPj0xMD8xOjB9KSwwKTtkJiYoby51bnNoaWZ0KGQpLHQuaW50ZWdlckxlbisrKX0pKGMscCxtKTtsZXQgZj1jLmRpZ2l0cyx1PWMuaW50ZWdlckxlbjtjb25zdCBnPWMuZXhwb25lbnQ7bGV0IGg9W107Zm9yKGw9Zi5ldmVyeSgodD0+IXQpKTt1PGQ7dSsrKWYudW5zaGlmdCgwKTtmb3IoO3U8MDt1KyspZi51bnNoaWZ0KDApO3U+MD9oPWYuc3BsaWNlKHUsZi5sZW5ndGgpOihoPWYsZj1bMF0pO2NvbnN0IGI9W107Zm9yKGYubGVuZ3RoPj1lLmxnU2l6ZSYmYi51bnNoaWZ0KGYuc3BsaWNlKC1lLmxnU2l6ZSxmLmxlbmd0aCkuam9pbigiIikpO2YubGVuZ3RoPmUuZ1NpemU7KWIudW5zaGlmdChmLnNwbGljZSgtZS5nU2l6ZSxmLmxlbmd0aCkuam9pbigiIikpO2YubGVuZ3RoJiZiLnVuc2hpZnQoZi5qb2luKCIiKSkscz1iLmpvaW4oek0obixvKSksaC5sZW5ndGgmJihzKz16TShuLGkpK2guam9pbigiIikpLGcmJihzKz16TShuLFJNLkV4cG9uZW50aWFsKSsiKyIrZyl9ZWxzZSBzPXpNKG4sUk0uSW5maW5pdHkpO3JldHVybiBzPXQ8MCYmIWw/ZS5uZWdQcmUrcytlLm5lZ1N1ZjplLnBvc1ByZStzK2UucG9zU3VmLHN9ZnVuY3Rpb24gbXYodCxlLG4sbyxpKXtjb25zdCBhPXV2KElNKGUsUE0uQ3VycmVuY3kpLHpNKGUsUk0uTWludXNTaWduKSk7YS5taW5GcmFjPShmdW5jdGlvbiByKHQpe2xldCBlO2NvbnN0IG49T01bdF07cmV0dXJuIG4mJihlPW5bMl0pLCJudW1iZXIiPT10eXBlb2YgZT9lOjJ9KShvKSxhLm1heEZyYWM9YS5taW5GcmFjO3JldHVybiBwdih0LGEsZSxSTS5DdXJyZW5jeUdyb3VwLFJNLkN1cnJlbmN5RGVjaW1hbCxpKS5yZXBsYWNlKCLCpCIsbikucmVwbGFjZSgiwqQiLCIiKS50cmltKCl9ZnVuY3Rpb24gZnYodCxlLG4pe3JldHVybiBwdih0LHV2KElNKGUsUE0uRGVjaW1hbCksek0oZSxSTS5NaW51c1NpZ24pKSxlLFJNLkdyb3VwLFJNLkRlY2ltYWwsbil9ZnVuY3Rpb24gdXYodCxlPSItIil7Y29uc3Qgbj17bWluSW50OjEsbWluRnJhYzowLG1heEZyYWM6MCxwb3NQcmU6IiIscG9zU3VmOiIiLG5lZ1ByZToiIixuZWdTdWY6IiIsZ1NpemU6MCxsZ1NpemU6MH0sbz10LnNwbGl0KCI7IiksaT1vWzBdLGE9b1sxXSxyPS0xIT09aS5pbmRleE9mKGN2KT9pLnNwbGl0KGN2KTpbaS5zdWJzdHJpbmcoMCxpLmxhc3RJbmRleE9mKGR2KSsxKSxpLnN1YnN0cmluZyhpLmxhc3RJbmRleE9mKGR2KSsxKV0scz1yWzBdLGw9clsxXXx8IiI7bi5wb3NQcmU9cy5zdWJzdHIoMCxzLmluZGV4T2YoIiMiKSk7Zm9yKGxldCB0PTA7dDxsLmxlbmd0aDt0Kyspe2NvbnN0IGU9bC5jaGFyQXQodCk7ZT09PWR2P24ubWluRnJhYz1uLm1heEZyYWM9dCsxOiIjIj09PWU/bi5tYXhGcmFjPXQrMTpuLnBvc1N1Zis9ZX1jb25zdCBjPXMuc3BsaXQoIiwiKTtpZihuLmdTaXplPWNbMV0/Y1sxXS5sZW5ndGg6MCxuLmxnU2l6ZT1jWzJdfHxjWzFdPyhjWzJdfHxjWzFdKS5sZW5ndGg6MCxhKXtjb25zdCB0PWkubGVuZ3RoLW4ucG9zUHJlLmxlbmd0aC1uLnBvc1N1Zi5sZW5ndGgsZT1hLmluZGV4T2YoIiMiKTtuLm5lZ1ByZT1hLnN1YnN0cigwLGUpLnJlcGxhY2UoLycvZywiIiksbi5uZWdTdWY9YS5zdWJzdHIoZSt0KS5yZXBsYWNlKC8nL2csIiIpfWVsc2Ugbi5uZWdQcmU9ZStuLnBvc1ByZSxuLm5lZ1N1Zj1uLnBvc1N1ZjtyZXR1cm4gbn1mdW5jdGlvbiBndih0KXtjb25zdCBlPXBhcnNlSW50KHQpO2lmKGlzTmFOKGUpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBpbnRlZ2VyIGxpdGVyYWwgd2hlbiBwYXJzaW5nICIrdCk7cmV0dXJuIGV9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIGh2e31mdW5jdGlvbiBidih0LGUsbixvKXtsZXQgaT1gPSR7dH1gO2lmKGUuaW5kZXhPZihpKT4tMSlyZXR1cm4gaTtpZihpPW4uZ2V0UGx1cmFsQ2F0ZWdvcnkodCxvKSxlLmluZGV4T2YoaSk+LTEpcmV0dXJuIGk7aWYoZS5pbmRleE9mKCJvdGhlciIpPi0xKXJldHVybiJvdGhlciI7dGhyb3cgbmV3IEVycm9yKGBObyBwbHVyYWwgbWVzc2FnZSBmb3VuZCBmb3IgdmFsdWUgIiR7dH0iYCl9Y2xhc3MgeXYgZXh0ZW5kcyBodntjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMubG9jYWxlPXR9Z2V0UGx1cmFsQ2F0ZWdvcnkodCxlKXtzd2l0Y2goSE0oZXx8dGhpcy5sb2NhbGUpKHQpKXtjYXNlIHdNLlplcm86cmV0dXJuInplcm8iO2Nhc2Ugd00uT25lOnJldHVybiJvbmUiO2Nhc2Ugd00uVHdvOnJldHVybiJ0d28iO2Nhc2Ugd00uRmV3OnJldHVybiJmZXciO2Nhc2Ugd00uTWFueTpyZXR1cm4ibWFueSI7ZGVmYXVsdDpyZXR1cm4ib3RoZXIifX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBfdih0LGUpe2U9ZW5jb2RlVVJJQ29tcG9uZW50KGUpO2Zvcihjb25zdCBuIG9mIHQuc3BsaXQoIjsiKSl7Y29uc3QgdD1uLmluZGV4T2YoIj0iKSxbbyxpXT0tMT09dD9bbiwiIl06W24uc2xpY2UoMCx0KSxuLnNsaWNlKHQrMSldO2lmKG8udHJpbSgpPT09ZSlyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGkpfXJldHVybiBudWxsfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi95di7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8eXYpKFRyKFFfKSl9LHl2Lsm1cHJvdj1Tbih7dG9rZW46eXYsZmFjdG9yeTp5di7JtWZhY30pLHl2LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W1FfXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih5dixbe3R5cGU6VW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W1FfXX1dfV19KSxudWxsKTtjbGFzcyBDdntjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLl9pdGVyYWJsZURpZmZlcnM9dCx0aGlzLl9rZXlWYWx1ZURpZmZlcnM9ZSx0aGlzLl9uZ0VsPW4sdGhpcy5fcmVuZGVyZXI9byx0aGlzLl9pdGVyYWJsZURpZmZlcj1udWxsLHRoaXMuX2tleVZhbHVlRGlmZmVyPW51bGwsdGhpcy5faW5pdGlhbENsYXNzZXM9W10sdGhpcy5fcmF3Q2xhc3M9bnVsbH1zZXQga2xhc3ModCl7dGhpcy5fcmVtb3ZlQ2xhc3Nlcyh0aGlzLl9pbml0aWFsQ2xhc3NlcyksdGhpcy5faW5pdGlhbENsYXNzZXM9InN0cmluZyI9PXR5cGVvZiB0P3Quc3BsaXQoL1xzKy8pOltdLHRoaXMuX2FwcGx5Q2xhc3Nlcyh0aGlzLl9pbml0aWFsQ2xhc3NlcyksdGhpcy5fYXBwbHlDbGFzc2VzKHRoaXMuX3Jhd0NsYXNzKX1zZXQgbmdDbGFzcyh0KXt0aGlzLl9yZW1vdmVDbGFzc2VzKHRoaXMuX3Jhd0NsYXNzKSx0aGlzLl9hcHBseUNsYXNzZXModGhpcy5faW5pdGlhbENsYXNzZXMpLHRoaXMuX2l0ZXJhYmxlRGlmZmVyPW51bGwsdGhpcy5fa2V5VmFsdWVEaWZmZXI9bnVsbCx0aGlzLl9yYXdDbGFzcz0ic3RyaW5nIj09dHlwZW9mIHQ/dC5zcGxpdCgvXHMrLyk6dCx0aGlzLl9yYXdDbGFzcyYmKGRtKHRoaXMuX3Jhd0NsYXNzKT90aGlzLl9pdGVyYWJsZURpZmZlcj10aGlzLl9pdGVyYWJsZURpZmZlcnMuZmluZCh0aGlzLl9yYXdDbGFzcykuY3JlYXRlKCk6dGhpcy5fa2V5VmFsdWVEaWZmZXI9dGhpcy5fa2V5VmFsdWVEaWZmZXJzLmZpbmQodGhpcy5fcmF3Q2xhc3MpLmNyZWF0ZSgpKX1uZ0RvQ2hlY2soKXtpZih0aGlzLl9pdGVyYWJsZURpZmZlcil7Y29uc3QgdD10aGlzLl9pdGVyYWJsZURpZmZlci5kaWZmKHRoaXMuX3Jhd0NsYXNzKTt0JiZ0aGlzLl9hcHBseUl0ZXJhYmxlQ2hhbmdlcyh0KX1lbHNlIGlmKHRoaXMuX2tleVZhbHVlRGlmZmVyKXtjb25zdCB0PXRoaXMuX2tleVZhbHVlRGlmZmVyLmRpZmYodGhpcy5fcmF3Q2xhc3MpO3QmJnRoaXMuX2FwcGx5S2V5VmFsdWVDaGFuZ2VzKHQpfX1fYXBwbHlLZXlWYWx1ZUNoYW5nZXModCl7dC5mb3JFYWNoQWRkZWRJdGVtKCh0PT50aGlzLl90b2dnbGVDbGFzcyh0LmtleSx0LmN1cnJlbnRWYWx1ZSkpKSx0LmZvckVhY2hDaGFuZ2VkSXRlbSgodD0+dGhpcy5fdG9nZ2xlQ2xhc3ModC5rZXksdC5jdXJyZW50VmFsdWUpKSksdC5mb3JFYWNoUmVtb3ZlZEl0ZW0oKHQ9Pnt0LnByZXZpb3VzVmFsdWUmJnRoaXMuX3RvZ2dsZUNsYXNzKHQua2V5LCExKX0pKX1fYXBwbHlJdGVyYWJsZUNoYW5nZXModCl7dC5mb3JFYWNoQWRkZWRJdGVtKCh0PT57aWYoInN0cmluZyIhPXR5cGVvZiB0Lml0ZW0pdGhyb3cgbmV3IEVycm9yKGBOZ0NsYXNzIGNhbiBvbmx5IHRvZ2dsZSBDU1MgY2xhc3NlcyBleHByZXNzZWQgYXMgc3RyaW5ncywgZ290ICR7S2UodC5pdGVtKX1gKTt0aGlzLl90b2dnbGVDbGFzcyh0Lml0ZW0sITApfSkpLHQuZm9yRWFjaFJlbW92ZWRJdGVtKCh0PT50aGlzLl90b2dnbGVDbGFzcyh0Lml0ZW0sITEpKSl9X2FwcGx5Q2xhc3Nlcyh0KXt0JiYoQXJyYXkuaXNBcnJheSh0KXx8dCBpbnN0YW5jZW9mIFNldD90LmZvckVhY2goKHQ9PnRoaXMuX3RvZ2dsZUNsYXNzKHQsITApKSk6T2JqZWN0LmtleXModCkuZm9yRWFjaCgoZT0+dGhpcy5fdG9nZ2xlQ2xhc3MoZSwhIXRbZV0pKSkpfV9yZW1vdmVDbGFzc2VzKHQpe3QmJihBcnJheS5pc0FycmF5KHQpfHx0IGluc3RhbmNlb2YgU2V0P3QuZm9yRWFjaCgodD0+dGhpcy5fdG9nZ2xlQ2xhc3ModCwhMSkpKTpPYmplY3Qua2V5cyh0KS5mb3JFYWNoKCh0PT50aGlzLl90b2dnbGVDbGFzcyh0LCExKSkpKX1fdG9nZ2xlQ2xhc3ModCxlKXsodD10LnRyaW0oKSkmJnQuc3BsaXQoL1xzKy9nKS5mb3JFYWNoKCh0PT57ZT90aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9uZ0VsLm5hdGl2ZUVsZW1lbnQsdCk6dGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5fbmdFbC5uYXRpdmVFbGVtZW50LHQpfSkpfX1Ddi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Q3YpKGdmKGhiKSxnZih5YiksZ2YoS2gpLGdmKCRoKSl9LEN2Lsm1ZGlyPWhvKHt0eXBlOkN2LHNlbGVjdG9yczpbWyIiLCJuZ0NsYXNzIiwiIl1dLGlucHV0czp7a2xhc3M6WyJjbGFzcyIsImtsYXNzIl0sbmdDbGFzczoibmdDbGFzcyJ9fSksQ3YuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoYn0se3R5cGU6eWJ9LHt0eXBlOktofSx7dHlwZTokaH1dLEN2LnByb3BEZWNvcmF0b3JzPXtrbGFzczpbe3R5cGU6Ul8sYXJnczpbImNsYXNzIl19XSxuZ0NsYXNzOlt7dHlwZTpSXyxhcmdzOlsibmdDbGFzcyJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoQ3YsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW25nQ2xhc3NdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhifSx7dHlwZTp5Yn0se3R5cGU6S2h9LHt0eXBlOiRofV19KSx7a2xhc3M6W3t0eXBlOlJfLGFyZ3M6WyJjbGFzcyJdfV0sbmdDbGFzczpbe3R5cGU6Ul8sYXJnczpbIm5nQ2xhc3MiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBNdntjb25zdHJ1Y3Rvcih0KXt0aGlzLl92aWV3Q29udGFpbmVyUmVmPXQsdGhpcy5fY29tcG9uZW50UmVmPW51bGwsdGhpcy5fbW9kdWxlUmVmPW51bGx9bmdPbkNoYW5nZXModCl7aWYodGhpcy5fdmlld0NvbnRhaW5lclJlZi5jbGVhcigpLHRoaXMuX2NvbXBvbmVudFJlZj1udWxsLHRoaXMubmdDb21wb25lbnRPdXRsZXQpe2NvbnN0IGU9dGhpcy5uZ0NvbXBvbmVudE91dGxldEluamVjdG9yfHx0aGlzLl92aWV3Q29udGFpbmVyUmVmLnBhcmVudEluamVjdG9yO2lmKHQubmdDb21wb25lbnRPdXRsZXROZ01vZHVsZUZhY3RvcnkpaWYodGhpcy5fbW9kdWxlUmVmJiZ0aGlzLl9tb2R1bGVSZWYuZGVzdHJveSgpLHRoaXMubmdDb21wb25lbnRPdXRsZXROZ01vZHVsZUZhY3Rvcnkpe2NvbnN0IHQ9ZS5nZXQoemIpO3RoaXMuX21vZHVsZVJlZj10aGlzLm5nQ29tcG9uZW50T3V0bGV0TmdNb2R1bGVGYWN0b3J5LmNyZWF0ZSh0LmluamVjdG9yKX1lbHNlIHRoaXMuX21vZHVsZVJlZj1udWxsO2NvbnN0IG49KHRoaXMuX21vZHVsZVJlZj90aGlzLl9tb2R1bGVSZWYuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOmUuZ2V0KEdoKSkucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodGhpcy5uZ0NvbXBvbmVudE91dGxldCk7dGhpcy5fY29tcG9uZW50UmVmPXRoaXMuX3ZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KG4sdGhpcy5fdmlld0NvbnRhaW5lclJlZi5sZW5ndGgsZSx0aGlzLm5nQ29tcG9uZW50T3V0bGV0Q29udGVudCl9fW5nT25EZXN0cm95KCl7dGhpcy5fbW9kdWxlUmVmJiZ0aGlzLl9tb2R1bGVSZWYuZGVzdHJveSgpfX1Ndi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TXYpKGdmKEZiKSl9LE12Lsm1ZGlyPWhvKHt0eXBlOk12LHNlbGVjdG9yczpbWyIiLCJuZ0NvbXBvbmVudE91dGxldCIsIiJdXSxpbnB1dHM6e25nQ29tcG9uZW50T3V0bGV0OiJuZ0NvbXBvbmVudE91dGxldCIsbmdDb21wb25lbnRPdXRsZXRJbmplY3RvcjoibmdDb21wb25lbnRPdXRsZXRJbmplY3RvciIsbmdDb21wb25lbnRPdXRsZXRDb250ZW50OiJuZ0NvbXBvbmVudE91dGxldENvbnRlbnQiLG5nQ29tcG9uZW50T3V0bGV0TmdNb2R1bGVGYWN0b3J5OiJuZ0NvbXBvbmVudE91dGxldE5nTW9kdWxlRmFjdG9yeSJ9LGZlYXR1cmVzOltxb119KSxNdi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkZifV0sTXYucHJvcERlY29yYXRvcnM9e25nQ29tcG9uZW50T3V0bGV0Olt7dHlwZTpSX31dLG5nQ29tcG9uZW50T3V0bGV0SW5qZWN0b3I6W3t0eXBlOlJffV0sbmdDb21wb25lbnRPdXRsZXRDb250ZW50Olt7dHlwZTpSX31dLG5nQ29tcG9uZW50T3V0bGV0TmdNb2R1bGVGYWN0b3J5Olt7dHlwZTpSX31dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKE12LFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IltuZ0NvbXBvbmVudE91dGxldF0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6RmJ9XX0pLHtuZ0NvbXBvbmVudE91dGxldDpbe3R5cGU6Ul99XSxuZ0NvbXBvbmVudE91dGxldEluamVjdG9yOlt7dHlwZTpSX31dLG5nQ29tcG9uZW50T3V0bGV0Q29udGVudDpbe3R5cGU6Ul99XSxuZ0NvbXBvbmVudE91dGxldE5nTW9kdWxlRmFjdG9yeTpbe3R5cGU6Ul99XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgdnZ7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy4kaW1wbGljaXQ9dCx0aGlzLm5nRm9yT2Y9ZSx0aGlzLmluZGV4PW4sdGhpcy5jb3VudD1vfWdldCBmaXJzdCgpe3JldHVybiAwPT09dGhpcy5pbmRleH1nZXQgbGFzdCgpe3JldHVybiB0aGlzLmluZGV4PT09dGhpcy5jb3VudC0xfWdldCBldmVuKCl7cmV0dXJuIHRoaXMuaW5kZXglMj09MH1nZXQgb2RkKCl7cmV0dXJuIXRoaXMuZXZlbn19Y2xhc3MgeHZ7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuX3ZpZXdDb250YWluZXI9dCx0aGlzLl90ZW1wbGF0ZT1lLHRoaXMuX2RpZmZlcnM9bix0aGlzLl9uZ0Zvck9mPW51bGwsdGhpcy5fbmdGb3JPZkRpcnR5PSEwLHRoaXMuX2RpZmZlcj1udWxsfXNldCBuZ0Zvck9mKHQpe3RoaXMuX25nRm9yT2Y9dCx0aGlzLl9uZ0Zvck9mRGlydHk9ITB9c2V0IG5nRm9yVHJhY2tCeSh0KXsidW5kZWZpbmVkIiE9dHlwZW9mIG5nRGV2TW9kZSYmIW5nRGV2TW9kZXx8bnVsbD09dHx8ImZ1bmN0aW9uIj09dHlwZW9mIHR8fGNvbnNvbGUmJmNvbnNvbGUud2FybiYmY29uc29sZS53YXJuKGB0cmFja0J5IG11c3QgYmUgYSBmdW5jdGlvbiwgYnV0IHJlY2VpdmVkICR7SlNPTi5zdHJpbmdpZnkodCl9LiBTZWUgaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9jb21tb24vTmdGb3JPZiNjaGFuZ2UtcHJvcGFnYXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uYCksdGhpcy5fdHJhY2tCeUZuPXR9Z2V0IG5nRm9yVHJhY2tCeSgpe3JldHVybiB0aGlzLl90cmFja0J5Rm59c2V0IG5nRm9yVGVtcGxhdGUodCl7dCYmKHRoaXMuX3RlbXBsYXRlPXQpfW5nRG9DaGVjaygpe2lmKHRoaXMuX25nRm9yT2ZEaXJ0eSl7dGhpcy5fbmdGb3JPZkRpcnR5PSExO2NvbnN0IHQ9dGhpcy5fbmdGb3JPZjtpZighdGhpcy5fZGlmZmVyJiZ0KXRyeXt0aGlzLl9kaWZmZXI9dGhpcy5fZGlmZmVycy5maW5kKHQpLmNyZWF0ZSh0aGlzLm5nRm9yVHJhY2tCeSl9Y2F0Y2goZSl7dGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBhIGRpZmZlciBzdXBwb3J0aW5nIG9iamVjdCAnJHt0fScgb2YgdHlwZSAnJHsoZnVuY3Rpb24gbih0KXtyZXR1cm4gdC5uYW1lfHx0eXBlb2YgdH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSh0KX0nLiBOZ0ZvciBvbmx5IHN1cHBvcnRzIGJpbmRpbmcgdG8gSXRlcmFibGVzIHN1Y2ggYXMgQXJyYXlzLmApfX1pZih0aGlzLl9kaWZmZXIpe2NvbnN0IHQ9dGhpcy5fZGlmZmVyLmRpZmYodGhpcy5fbmdGb3JPZik7dCYmdGhpcy5fYXBwbHlDaGFuZ2VzKHQpfX1fYXBwbHlDaGFuZ2VzKHQpe2NvbnN0IGU9W107dC5mb3JFYWNoT3BlcmF0aW9uKCgodCxuLG8pPT57aWYobnVsbD09dC5wcmV2aW91c0luZGV4KXtjb25zdCBuPXRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX3RlbXBsYXRlLG5ldyB2dihudWxsLHRoaXMuX25nRm9yT2YsLTEsLTEpLG51bGw9PT1vP3ZvaWQgMDpvKSxpPW5ldyBPdih0LG4pO2UucHVzaChpKX1lbHNlIGlmKG51bGw9PW8pdGhpcy5fdmlld0NvbnRhaW5lci5yZW1vdmUobnVsbD09PW4/dm9pZCAwOm4pO2Vsc2UgaWYobnVsbCE9PW4pe2NvbnN0IGk9dGhpcy5fdmlld0NvbnRhaW5lci5nZXQobik7dGhpcy5fdmlld0NvbnRhaW5lci5tb3ZlKGksbyk7Y29uc3QgYT1uZXcgT3YodCxpKTtlLnB1c2goYSl9fSkpO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXRoaXMuX3BlclZpZXdDaGFuZ2UoZVt0XS52aWV3LGVbdF0ucmVjb3JkKTtmb3IobGV0IHQ9MCxlPXRoaXMuX3ZpZXdDb250YWluZXIubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IG49dGhpcy5fdmlld0NvbnRhaW5lci5nZXQodCk7bi5jb250ZXh0LmluZGV4PXQsbi5jb250ZXh0LmNvdW50PWUsbi5jb250ZXh0Lm5nRm9yT2Y9dGhpcy5fbmdGb3JPZn10LmZvckVhY2hJZGVudGl0eUNoYW5nZSgodD0+e3RoaXMuX3ZpZXdDb250YWluZXIuZ2V0KHQuY3VycmVudEluZGV4KS5jb250ZXh0LiRpbXBsaWNpdD10Lml0ZW19KSl9X3BlclZpZXdDaGFuZ2UodCxlKXt0LmNvbnRleHQuJGltcGxpY2l0PWUuaXRlbX1zdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZCh0LGUpe3JldHVybiEwfX14di7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8eHYpKGdmKEZiKSxnZihFYiksZ2YoaGIpKX0seHYuybVkaXI9aG8oe3R5cGU6eHYsc2VsZWN0b3JzOltbIiIsIm5nRm9yIiwiIiwibmdGb3JPZiIsIiJdXSxpbnB1dHM6e25nRm9yT2Y6Im5nRm9yT2YiLG5nRm9yVHJhY2tCeToibmdGb3JUcmFja0J5IixuZ0ZvclRlbXBsYXRlOiJuZ0ZvclRlbXBsYXRlIn19KSx4di5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkZifSx7dHlwZTpFYn0se3R5cGU6aGJ9XSx4di5wcm9wRGVjb3JhdG9ycz17bmdGb3JPZjpbe3R5cGU6Ul99XSxuZ0ZvclRyYWNrQnk6W3t0eXBlOlJffV0sbmdGb3JUZW1wbGF0ZTpbe3R5cGU6Ul99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih4dixbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJbbmdGb3JdW25nRm9yT2ZdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkZifSx7dHlwZTpFYn0se3R5cGU6aGJ9XX0pLHtuZ0Zvck9mOlt7dHlwZTpSX31dLG5nRm9yVHJhY2tCeTpbe3R5cGU6Ul99XSxuZ0ZvclRlbXBsYXRlOlt7dHlwZTpSX31dfSk7Y2xhc3MgT3Z7Y29uc3RydWN0b3IodCxlKXt0aGlzLnJlY29yZD10LHRoaXMudmlldz1lfX1jbGFzcyBQdntjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX3ZpZXdDb250YWluZXI9dCx0aGlzLl9jb250ZXh0PW5ldyB3dix0aGlzLl90aGVuVGVtcGxhdGVSZWY9bnVsbCx0aGlzLl9lbHNlVGVtcGxhdGVSZWY9bnVsbCx0aGlzLl90aGVuVmlld1JlZj1udWxsLHRoaXMuX2Vsc2VWaWV3UmVmPW51bGwsdGhpcy5fdGhlblRlbXBsYXRlUmVmPWV9c2V0IG5nSWYodCl7dGhpcy5fY29udGV4dC4kaW1wbGljaXQ9dGhpcy5fY29udGV4dC5uZ0lmPXQsdGhpcy5fdXBkYXRlVmlldygpfXNldCBuZ0lmVGhlbih0KXtrdigibmdJZlRoZW4iLHQpLHRoaXMuX3RoZW5UZW1wbGF0ZVJlZj10LHRoaXMuX3RoZW5WaWV3UmVmPW51bGwsdGhpcy5fdXBkYXRlVmlldygpfXNldCBuZ0lmRWxzZSh0KXtrdigibmdJZkVsc2UiLHQpLHRoaXMuX2Vsc2VUZW1wbGF0ZVJlZj10LHRoaXMuX2Vsc2VWaWV3UmVmPW51bGwsdGhpcy5fdXBkYXRlVmlldygpfV91cGRhdGVWaWV3KCl7dGhpcy5fY29udGV4dC4kaW1wbGljaXQ/dGhpcy5fdGhlblZpZXdSZWZ8fCh0aGlzLl92aWV3Q29udGFpbmVyLmNsZWFyKCksdGhpcy5fZWxzZVZpZXdSZWY9bnVsbCx0aGlzLl90aGVuVGVtcGxhdGVSZWYmJih0aGlzLl90aGVuVmlld1JlZj10aGlzLl92aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl90aGVuVGVtcGxhdGVSZWYsdGhpcy5fY29udGV4dCkpKTp0aGlzLl9lbHNlVmlld1JlZnx8KHRoaXMuX3ZpZXdDb250YWluZXIuY2xlYXIoKSx0aGlzLl90aGVuVmlld1JlZj1udWxsLHRoaXMuX2Vsc2VUZW1wbGF0ZVJlZiYmKHRoaXMuX2Vsc2VWaWV3UmVmPXRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX2Vsc2VUZW1wbGF0ZVJlZix0aGlzLl9jb250ZXh0KSkpfXN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKHQsZSl7cmV0dXJuITB9fVB2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxQdikoZ2YoRmIpLGdmKEViKSl9LFB2Lsm1ZGlyPWhvKHt0eXBlOlB2LHNlbGVjdG9yczpbWyIiLCJuZ0lmIiwiIl1dLGlucHV0czp7bmdJZjoibmdJZiIsbmdJZlRoZW46Im5nSWZUaGVuIixuZ0lmRWxzZToibmdJZkVsc2UifX0pLFB2LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6RmJ9LHt0eXBlOkVifV0sUHYucHJvcERlY29yYXRvcnM9e25nSWY6W3t0eXBlOlJffV0sbmdJZlRoZW46W3t0eXBlOlJffV0sbmdJZkVsc2U6W3t0eXBlOlJffV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoUHYsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW25nSWZdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkZifSx7dHlwZTpFYn1dfSkse25nSWY6W3t0eXBlOlJffV0sbmdJZlRoZW46W3t0eXBlOlJffV0sbmdJZkVsc2U6W3t0eXBlOlJffV19KTtjbGFzcyB3dntjb25zdHJ1Y3Rvcigpe3RoaXMuJGltcGxpY2l0PW51bGwsdGhpcy5uZ0lmPW51bGx9fWZ1bmN0aW9uIGt2KHQsZSl7aWYoISEoZSYmIWUuY3JlYXRlRW1iZWRkZWRWaWV3KSl0aHJvdyBuZXcgRXJyb3IoYCR7dH0gbXVzdCBiZSBhIFRlbXBsYXRlUmVmLCBidXQgcmVjZWl2ZWQgJyR7S2UoZSl9Jy5gKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgU3Z7Y29uc3RydWN0b3IodCxlKXt0aGlzLl92aWV3Q29udGFpbmVyUmVmPXQsdGhpcy5fdGVtcGxhdGVSZWY9ZSx0aGlzLl9jcmVhdGVkPSExfWNyZWF0ZSgpe3RoaXMuX2NyZWF0ZWQ9ITAsdGhpcy5fdmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5fdGVtcGxhdGVSZWYpfWRlc3Ryb3koKXt0aGlzLl9jcmVhdGVkPSExLHRoaXMuX3ZpZXdDb250YWluZXJSZWYuY2xlYXIoKX1lbmZvcmNlU3RhdGUodCl7dCYmIXRoaXMuX2NyZWF0ZWQ/dGhpcy5jcmVhdGUoKTohdCYmdGhpcy5fY3JlYXRlZCYmdGhpcy5kZXN0cm95KCl9fWNsYXNzIER2e2NvbnN0cnVjdG9yKCl7dGhpcy5fZGVmYXVsdFVzZWQ9ITEsdGhpcy5fY2FzZUNvdW50PTAsdGhpcy5fbGFzdENhc2VDaGVja0luZGV4PTAsdGhpcy5fbGFzdENhc2VzTWF0Y2hlZD0hMX1zZXQgbmdTd2l0Y2godCl7dGhpcy5fbmdTd2l0Y2g9dCwwPT09dGhpcy5fY2FzZUNvdW50JiZ0aGlzLl91cGRhdGVEZWZhdWx0Q2FzZXMoITApfV9hZGRDYXNlKCl7cmV0dXJuIHRoaXMuX2Nhc2VDb3VudCsrfV9hZGREZWZhdWx0KHQpe3RoaXMuX2RlZmF1bHRWaWV3c3x8KHRoaXMuX2RlZmF1bHRWaWV3cz1bXSksdGhpcy5fZGVmYXVsdFZpZXdzLnB1c2godCl9X21hdGNoQ2FzZSh0KXtjb25zdCBlPXQ9PXRoaXMuX25nU3dpdGNoO3JldHVybiB0aGlzLl9sYXN0Q2FzZXNNYXRjaGVkPXRoaXMuX2xhc3RDYXNlc01hdGNoZWR8fGUsdGhpcy5fbGFzdENhc2VDaGVja0luZGV4KyssdGhpcy5fbGFzdENhc2VDaGVja0luZGV4PT09dGhpcy5fY2FzZUNvdW50JiYodGhpcy5fdXBkYXRlRGVmYXVsdENhc2VzKCF0aGlzLl9sYXN0Q2FzZXNNYXRjaGVkKSx0aGlzLl9sYXN0Q2FzZUNoZWNrSW5kZXg9MCx0aGlzLl9sYXN0Q2FzZXNNYXRjaGVkPSExKSxlfV91cGRhdGVEZWZhdWx0Q2FzZXModCl7aWYodGhpcy5fZGVmYXVsdFZpZXdzJiZ0IT09dGhpcy5fZGVmYXVsdFVzZWQpe3RoaXMuX2RlZmF1bHRVc2VkPXQ7Zm9yKGxldCBlPTA7ZTx0aGlzLl9kZWZhdWx0Vmlld3MubGVuZ3RoO2UrKyl7dGhpcy5fZGVmYXVsdFZpZXdzW2VdLmVuZm9yY2VTdGF0ZSh0KX19fX1Edi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RHYpfSxEdi7JtWRpcj1obyh7dHlwZTpEdixzZWxlY3RvcnM6W1siIiwibmdTd2l0Y2giLCIiXV0saW5wdXRzOntuZ1N3aXRjaDoibmdTd2l0Y2gifX0pLER2LnByb3BEZWNvcmF0b3JzPXtuZ1N3aXRjaDpbe3R5cGU6Ul99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihEdixbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJbbmdTd2l0Y2hdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW119KSx7bmdTd2l0Y2g6W3t0eXBlOlJffV19KTtjbGFzcyBSdntjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5uZ1N3aXRjaD1uLCJ1bmRlZmluZWQiIT10eXBlb2YgbmdEZXZNb2RlJiYhbmdEZXZNb2RlfHxufHxBdigibmdTd2l0Y2hDYXNlIiwiTmdTd2l0Y2hDYXNlIiksbi5fYWRkQ2FzZSgpLHRoaXMuX3ZpZXc9bmV3IFN2KHQsZSl9bmdEb0NoZWNrKCl7dGhpcy5fdmlldy5lbmZvcmNlU3RhdGUodGhpcy5uZ1N3aXRjaC5fbWF0Y2hDYXNlKHRoaXMubmdTd2l0Y2hDYXNlKSl9fVJ2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxSdikoZ2YoRmIpLGdmKEViKSxnZihEdiw5KSl9LFJ2Lsm1ZGlyPWhvKHt0eXBlOlJ2LHNlbGVjdG9yczpbWyIiLCJuZ1N3aXRjaENhc2UiLCIiXV0saW5wdXRzOntuZ1N3aXRjaENhc2U6Im5nU3dpdGNoQ2FzZSJ9fSksUnYuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpGYn0se3R5cGU6RWJ9LHt0eXBlOkR2LGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpVcn1dfV0sUnYucHJvcERlY29yYXRvcnM9e25nU3dpdGNoQ2FzZTpbe3R5cGU6Ul99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihSdixbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJbbmdTd2l0Y2hDYXNlXSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpGYn0se3R5cGU6RWJ9LHt0eXBlOkR2LGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpVcn1dfV19KSx7bmdTd2l0Y2hDYXNlOlt7dHlwZTpSX31dfSk7Y2xhc3MgRXZ7Y29uc3RydWN0b3IodCxlLG4peyJ1bmRlZmluZWQiIT10eXBlb2YgbmdEZXZNb2RlJiYhbmdEZXZNb2RlfHxufHxBdigibmdTd2l0Y2hEZWZhdWx0IiwiTmdTd2l0Y2hEZWZhdWx0Iiksbi5fYWRkRGVmYXVsdChuZXcgU3YodCxlKSl9fWZ1bmN0aW9uIEF2KHQsZSl7dGhyb3cgbmV3IG5uKCIzMDUiLGBBbiBlbGVtZW50IHdpdGggdGhlICIke3R9IiBhdHRyaWJ1dGUgKG1hdGNoaW5nIHRoZSAiJHtlfSIgZGlyZWN0aXZlKSBtdXN0IGJlIGxvY2F0ZWQgaW5zaWRlIGFuIGVsZW1lbnQgd2l0aCB0aGUgIm5nU3dpdGNoIiBhdHRyaWJ1dGUgKG1hdGNoaW5nICJOZ1N3aXRjaCIgZGlyZWN0aXZlKWApfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9Fdi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RXYpKGdmKEZiKSxnZihFYiksZ2YoRHYsOSkpfSxFdi7JtWRpcj1obyh7dHlwZTpFdixzZWxlY3RvcnM6W1siIiwibmdTd2l0Y2hEZWZhdWx0IiwiIl1dfSksRXYuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpGYn0se3R5cGU6RWJ9LHt0eXBlOkR2LGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpVcn1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihFdixbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJbbmdTd2l0Y2hEZWZhdWx0XSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpGYn0se3R5cGU6RWJ9LHt0eXBlOkR2LGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpVcn1dfV19KSxudWxsKTtjbGFzcyBUdntjb25zdHJ1Y3Rvcih0KXt0aGlzLl9sb2NhbGl6YXRpb249dCx0aGlzLl9jYXNlVmlld3M9e319c2V0IG5nUGx1cmFsKHQpe3RoaXMuX3N3aXRjaFZhbHVlPXQsdGhpcy5fdXBkYXRlVmlldygpfWFkZENhc2UodCxlKXt0aGlzLl9jYXNlVmlld3NbdF09ZX1fdXBkYXRlVmlldygpe3RoaXMuX2NsZWFyVmlld3MoKTtjb25zdCB0PU9iamVjdC5rZXlzKHRoaXMuX2Nhc2VWaWV3cyksZT1idih0aGlzLl9zd2l0Y2hWYWx1ZSx0LHRoaXMuX2xvY2FsaXphdGlvbik7dGhpcy5fYWN0aXZhdGVWaWV3KHRoaXMuX2Nhc2VWaWV3c1tlXSl9X2NsZWFyVmlld3MoKXt0aGlzLl9hY3RpdmVWaWV3JiZ0aGlzLl9hY3RpdmVWaWV3LmRlc3Ryb3koKX1fYWN0aXZhdGVWaWV3KHQpe3QmJih0aGlzLl9hY3RpdmVWaWV3PXQsdGhpcy5fYWN0aXZlVmlldy5jcmVhdGUoKSl9fVR2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxUdikoZ2YoaHYpKX0sVHYuybVkaXI9aG8oe3R5cGU6VHYsc2VsZWN0b3JzOltbIiIsIm5nUGx1cmFsIiwiIl1dLGlucHV0czp7bmdQbHVyYWw6Im5nUGx1cmFsIn19KSxUdi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmh2fV0sVHYucHJvcERlY29yYXRvcnM9e25nUGx1cmFsOlt7dHlwZTpSX31dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFR2LFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IltuZ1BsdXJhbF0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aHZ9XX0pLHtuZ1BsdXJhbDpbe3R5cGU6Ul99XX0pO2NsYXNzIE52e2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMudmFsdWU9dDtjb25zdCBpPSFpc05hTihOdW1iZXIodCkpO28uYWRkQ2FzZShpP2A9JHt0fWA6dCxuZXcgU3YobixlKSl9fU52Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxOdikoR2EoIm5nUGx1cmFsQ2FzZSIpLGdmKEViKSxnZihGYiksZ2YoVHYsMSkpfSxOdi7JtWRpcj1obyh7dHlwZTpOdixzZWxlY3RvcnM6W1siIiwibmdQbHVyYWxDYXNlIiwiIl1dfSksTnYuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6JGEsYXJnczpbIm5nUGx1cmFsQ2FzZSJdfV19LHt0eXBlOkVifSx7dHlwZTpGYn0se3R5cGU6VHYsZGVjb3JhdG9yczpbe3R5cGU6VXJ9XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoTnYsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW25nUGx1cmFsQ2FzZV0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOiRhLGFyZ3M6WyJuZ1BsdXJhbENhc2UiXX1dfSx7dHlwZTpFYn0se3R5cGU6RmJ9LHt0eXBlOlR2LGRlY29yYXRvcnM6W3t0eXBlOlVyfV19XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgenZ7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuX25nRWw9dCx0aGlzLl9kaWZmZXJzPWUsdGhpcy5fcmVuZGVyZXI9bix0aGlzLl9uZ1N0eWxlPW51bGwsdGhpcy5fZGlmZmVyPW51bGx9c2V0IG5nU3R5bGUodCl7dGhpcy5fbmdTdHlsZT10LCF0aGlzLl9kaWZmZXImJnQmJih0aGlzLl9kaWZmZXI9dGhpcy5fZGlmZmVycy5maW5kKHQpLmNyZWF0ZSgpKX1uZ0RvQ2hlY2soKXtpZih0aGlzLl9kaWZmZXIpe2NvbnN0IHQ9dGhpcy5fZGlmZmVyLmRpZmYodGhpcy5fbmdTdHlsZSk7dCYmdGhpcy5fYXBwbHlDaGFuZ2VzKHQpfX1fc2V0U3R5bGUodCxlKXtjb25zdFtuLG9dPXQuc3BsaXQoIi4iKTtudWxsIT0oZT1udWxsIT1lJiZvP2Ake2V9JHtvfWA6ZSk/dGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5fbmdFbC5uYXRpdmVFbGVtZW50LG4sZSk6dGhpcy5fcmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5fbmdFbC5uYXRpdmVFbGVtZW50LG4pfV9hcHBseUNoYW5nZXModCl7dC5mb3JFYWNoUmVtb3ZlZEl0ZW0oKHQ9PnRoaXMuX3NldFN0eWxlKHQua2V5LG51bGwpKSksdC5mb3JFYWNoQWRkZWRJdGVtKCh0PT50aGlzLl9zZXRTdHlsZSh0LmtleSx0LmN1cnJlbnRWYWx1ZSkpKSx0LmZvckVhY2hDaGFuZ2VkSXRlbSgodD0+dGhpcy5fc2V0U3R5bGUodC5rZXksdC5jdXJyZW50VmFsdWUpKSl9fXp2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx6dikoZ2YoS2gpLGdmKHliKSxnZigkaCkpfSx6di7JtWRpcj1obyh7dHlwZTp6dixzZWxlY3RvcnM6W1siIiwibmdTdHlsZSIsIiJdXSxpbnB1dHM6e25nU3R5bGU6Im5nU3R5bGUifX0pLHp2LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6S2h9LHt0eXBlOnlifSx7dHlwZTokaH1dLHp2LnByb3BEZWNvcmF0b3JzPXtuZ1N0eWxlOlt7dHlwZTpSXyxhcmdzOlsibmdTdHlsZSJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoenYsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW25nU3R5bGVdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOktofSx7dHlwZTp5Yn0se3R5cGU6JGh9XX0pLHtuZ1N0eWxlOlt7dHlwZTpSXyxhcmdzOlsibmdTdHlsZSJdfV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIEl2e2NvbnN0cnVjdG9yKHQpe3RoaXMuX3ZpZXdDb250YWluZXJSZWY9dCx0aGlzLl92aWV3UmVmPW51bGwsdGhpcy5uZ1RlbXBsYXRlT3V0bGV0Q29udGV4dD1udWxsLHRoaXMubmdUZW1wbGF0ZU91dGxldD1udWxsfW5nT25DaGFuZ2VzKHQpe2lmKHQubmdUZW1wbGF0ZU91dGxldCl7Y29uc3QgdD10aGlzLl92aWV3Q29udGFpbmVyUmVmO3RoaXMuX3ZpZXdSZWYmJnQucmVtb3ZlKHQuaW5kZXhPZih0aGlzLl92aWV3UmVmKSksdGhpcy5fdmlld1JlZj10aGlzLm5nVGVtcGxhdGVPdXRsZXQ/dC5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5uZ1RlbXBsYXRlT3V0bGV0LHRoaXMubmdUZW1wbGF0ZU91dGxldENvbnRleHQpOm51bGx9ZWxzZSB0aGlzLl92aWV3UmVmJiZ0Lm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0JiZ0aGlzLm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0JiYodGhpcy5fdmlld1JlZi5jb250ZXh0PXRoaXMubmdUZW1wbGF0ZU91dGxldENvbnRleHQpfX1Jdi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SXYpKGdmKEZiKSl9LEl2Lsm1ZGlyPWhvKHt0eXBlOkl2LHNlbGVjdG9yczpbWyIiLCJuZ1RlbXBsYXRlT3V0bGV0IiwiIl1dLGlucHV0czp7bmdUZW1wbGF0ZU91dGxldENvbnRleHQ6Im5nVGVtcGxhdGVPdXRsZXRDb250ZXh0IixuZ1RlbXBsYXRlT3V0bGV0OiJuZ1RlbXBsYXRlT3V0bGV0In0sZmVhdHVyZXM6W3FvXX0pLEl2LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6RmJ9XSxJdi5wcm9wRGVjb3JhdG9ycz17bmdUZW1wbGF0ZU91dGxldENvbnRleHQ6W3t0eXBlOlJffV0sbmdUZW1wbGF0ZU91dGxldDpbe3R5cGU6Ul99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihJdixbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJbbmdUZW1wbGF0ZU91dGxldF0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6RmJ9XX0pLHtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dDpbe3R5cGU6Ul99XSxuZ1RlbXBsYXRlT3V0bGV0Olt7dHlwZTpSX31dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBIdj1bQ3YsTXYseHYsUHYsSXYsenYsRHYsUnYsRXYsVHYsTnZdOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBGdih0LGUpe3JldHVybiBFcnJvcihgSW52YWxpZFBpcGVBcmd1bWVudDogJyR7ZX0nIGZvciBwaXBlICcke0tlKHQpfSdgKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgTHY9bmV3IGNsYXNze2NyZWF0ZVN1YnNjcmlwdGlvbih0LGUpe3JldHVybiB0LnRoZW4oZSwodD0+e3Rocm93IHR9KSl9ZGlzcG9zZSh0KXt9b25EZXN0cm95KHQpe319LEJ2PW5ldyBjbGFzc3tjcmVhdGVTdWJzY3JpcHRpb24odCxlKXtyZXR1cm4gdC5zdWJzY3JpYmUoe25leHQ6ZSxlcnJvcjp0PT57dGhyb3cgdH19KX1kaXNwb3NlKHQpe3QudW5zdWJzY3JpYmUoKX1vbkRlc3Ryb3kodCl7dC51bnN1YnNjcmliZSgpfX07Y2xhc3MgVnZ7Y29uc3RydWN0b3IodCl7dGhpcy5fcmVmPXQsdGhpcy5fbGF0ZXN0VmFsdWU9bnVsbCx0aGlzLl9zdWJzY3JpcHRpb249bnVsbCx0aGlzLl9vYmo9bnVsbCx0aGlzLl9zdHJhdGVneT1udWxsfW5nT25EZXN0cm95KCl7dGhpcy5fc3Vic2NyaXB0aW9uJiZ0aGlzLl9kaXNwb3NlKCl9dHJhbnNmb3JtKHQpe3JldHVybiB0aGlzLl9vYmo/dCE9PXRoaXMuX29iaj8odGhpcy5fZGlzcG9zZSgpLHRoaXMudHJhbnNmb3JtKHQpKTp0aGlzLl9sYXRlc3RWYWx1ZToodCYmdGhpcy5fc3Vic2NyaWJlKHQpLHRoaXMuX2xhdGVzdFZhbHVlKX1fc3Vic2NyaWJlKHQpe3RoaXMuX29iaj10LHRoaXMuX3N0cmF0ZWd5PXRoaXMuX3NlbGVjdFN0cmF0ZWd5KHQpLHRoaXMuX3N1YnNjcmlwdGlvbj10aGlzLl9zdHJhdGVneS5jcmVhdGVTdWJzY3JpcHRpb24odCwoZT0+dGhpcy5fdXBkYXRlTGF0ZXN0VmFsdWUodCxlKSkpfV9zZWxlY3RTdHJhdGVneSh0KXtpZihrZih0KSlyZXR1cm4gTHY7aWYoU2YodCkpcmV0dXJuIEJ2O3Rocm93IEZ2KFZ2LHQpfV9kaXNwb3NlKCl7dGhpcy5fc3RyYXRlZ3kuZGlzcG9zZSh0aGlzLl9zdWJzY3JpcHRpb24pLHRoaXMuX2xhdGVzdFZhbHVlPW51bGwsdGhpcy5fc3Vic2NyaXB0aW9uPW51bGwsdGhpcy5fb2JqPW51bGx9X3VwZGF0ZUxhdGVzdFZhbHVlKHQsZSl7dD09PXRoaXMuX29iaiYmKHRoaXMuX2xhdGVzdFZhbHVlPWUsdGhpcy5fcmVmLm1hcmtGb3JDaGVjaygpKX19VnYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFZ2KShnZihPYiwxNikpfSxWdi7JtXBpcGU9Ym8oe25hbWU6ImFzeW5jIix0eXBlOlZ2LHB1cmU6ITF9KSxWdi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOk9ifV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihWdixbe3R5cGU6RF8sYXJnczpbe25hbWU6ImFzeW5jIixwdXJlOiExfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6T2J9XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MganZ7dHJhbnNmb3JtKHQpe2lmKG51bGw9PXQpcmV0dXJuIG51bGw7aWYoInN0cmluZyIhPXR5cGVvZiB0KXRocm93IEZ2KGp2LHQpO3JldHVybiB0LnRvTG93ZXJDYXNlKCl9fWp2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxqdil9LGp2Lsm1cGlwZT1ibyh7bmFtZToibG93ZXJjYXNlIix0eXBlOmp2LHB1cmU6ITB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGp2LFt7dHlwZTpEXyxhcmdzOlt7bmFtZToibG93ZXJjYXNlIn1dfV0sbnVsbCxudWxsKTtjb25zdCBVdj0vKD86W0EtWmEtelx4QUFceEI1XHhCQVx4QzAtXHhENlx4RDgtXHhGNlx4RjgtXHUwMkMxXHUwMkM2LVx1MDJEMVx1MDJFMC1cdTAyRTRcdTAyRUNcdTAyRUVcdTAzNzAtXHUwMzc0XHUwMzc2XHUwMzc3XHUwMzdBLVx1MDM3RFx1MDM3Rlx1MDM4Nlx1MDM4OC1cdTAzOEFcdTAzOENcdTAzOEUtXHUwM0ExXHUwM0EzLVx1MDNGNVx1MDNGNy1cdTA0ODFcdTA0OEEtXHUwNTJGXHUwNTMxLVx1MDU1Nlx1MDU1OVx1MDU2MS1cdTA1ODdcdTA1RDAtXHUwNUVBXHUwNUYwLVx1MDVGMlx1MDYyMC1cdTA2NEFcdTA2NkVcdTA2NkZcdTA2NzEtXHUwNkQzXHUwNkQ1XHUwNkU1XHUwNkU2XHUwNkVFXHUwNkVGXHUwNkZBLVx1MDZGQ1x1MDZGRlx1MDcxMFx1MDcxMi1cdTA3MkZcdTA3NEQtXHUwN0E1XHUwN0IxXHUwN0NBLVx1MDdFQVx1MDdGNFx1MDdGNVx1MDdGQVx1MDgwMC1cdTA4MTVcdTA4MUFcdTA4MjRcdTA4MjhcdTA4NDAtXHUwODU4XHUwODYwLVx1MDg2QVx1MDhBMC1cdTA4QjRcdTA4QjYtXHUwOEJEXHUwOTA0LVx1MDkzOVx1MDkzRFx1MDk1MFx1MDk1OC1cdTA5NjFcdTA5NzEtXHUwOTgwXHUwOTg1LVx1MDk4Q1x1MDk4Rlx1MDk5MFx1MDk5My1cdTA5QThcdTA5QUEtXHUwOUIwXHUwOUIyXHUwOUI2LVx1MDlCOVx1MDlCRFx1MDlDRVx1MDlEQ1x1MDlERFx1MDlERi1cdTA5RTFcdTA5RjBcdTA5RjFcdTA5RkNcdTBBMDUtXHUwQTBBXHUwQTBGXHUwQTEwXHUwQTEzLVx1MEEyOFx1MEEyQS1cdTBBMzBcdTBBMzJcdTBBMzNcdTBBMzVcdTBBMzZcdTBBMzhcdTBBMzlcdTBBNTktXHUwQTVDXHUwQTVFXHUwQTcyLVx1MEE3NFx1MEE4NS1cdTBBOERcdTBBOEYtXHUwQTkxXHUwQTkzLVx1MEFBOFx1MEFBQS1cdTBBQjBcdTBBQjJcdTBBQjNcdTBBQjUtXHUwQUI5XHUwQUJEXHUwQUQwXHUwQUUwXHUwQUUxXHUwQUY5XHUwQjA1LVx1MEIwQ1x1MEIwRlx1MEIxMFx1MEIxMy1cdTBCMjhcdTBCMkEtXHUwQjMwXHUwQjMyXHUwQjMzXHUwQjM1LVx1MEIzOVx1MEIzRFx1MEI1Q1x1MEI1RFx1MEI1Ri1cdTBCNjFcdTBCNzFcdTBCODNcdTBCODUtXHUwQjhBXHUwQjhFLVx1MEI5MFx1MEI5Mi1cdTBCOTVcdTBCOTlcdTBCOUFcdTBCOUNcdTBCOUVcdTBCOUZcdTBCQTNcdTBCQTRcdTBCQTgtXHUwQkFBXHUwQkFFLVx1MEJCOVx1MEJEMFx1MEMwNS1cdTBDMENcdTBDMEUtXHUwQzEwXHUwQzEyLVx1MEMyOFx1MEMyQS1cdTBDMzlcdTBDM0RcdTBDNTgtXHUwQzVBXHUwQzYwXHUwQzYxXHUwQzgwXHUwQzg1LVx1MEM4Q1x1MEM4RS1cdTBDOTBcdTBDOTItXHUwQ0E4XHUwQ0FBLVx1MENCM1x1MENCNS1cdTBDQjlcdTBDQkRcdTBDREVcdTBDRTBcdTBDRTFcdTBDRjFcdTBDRjJcdTBEMDUtXHUwRDBDXHUwRDBFLVx1MEQxMFx1MEQxMi1cdTBEM0FcdTBEM0RcdTBENEVcdTBENTQtXHUwRDU2XHUwRDVGLVx1MEQ2MVx1MEQ3QS1cdTBEN0ZcdTBEODUtXHUwRDk2XHUwRDlBLVx1MERCMVx1MERCMy1cdTBEQkJcdTBEQkRcdTBEQzAtXHUwREM2XHUwRTAxLVx1MEUzMFx1MEUzMlx1MEUzM1x1MEU0MC1cdTBFNDZcdTBFODFcdTBFODJcdTBFODRcdTBFODdcdTBFODhcdTBFOEFcdTBFOERcdTBFOTQtXHUwRTk3XHUwRTk5LVx1MEU5Rlx1MEVBMS1cdTBFQTNcdTBFQTVcdTBFQTdcdTBFQUFcdTBFQUJcdTBFQUQtXHUwRUIwXHUwRUIyXHUwRUIzXHUwRUJEXHUwRUMwLVx1MEVDNFx1MEVDNlx1MEVEQy1cdTBFREZcdTBGMDBcdTBGNDAtXHUwRjQ3XHUwRjQ5LVx1MEY2Q1x1MEY4OC1cdTBGOENcdTEwMDAtXHUxMDJBXHUxMDNGXHUxMDUwLVx1MTA1NVx1MTA1QS1cdTEwNURcdTEwNjFcdTEwNjVcdTEwNjZcdTEwNkUtXHUxMDcwXHUxMDc1LVx1MTA4MVx1MTA4RVx1MTBBMC1cdTEwQzVcdTEwQzdcdTEwQ0RcdTEwRDAtXHUxMEZBXHUxMEZDLVx1MTI0OFx1MTI0QS1cdTEyNERcdTEyNTAtXHUxMjU2XHUxMjU4XHUxMjVBLVx1MTI1RFx1MTI2MC1cdTEyODhcdTEyOEEtXHUxMjhEXHUxMjkwLVx1MTJCMFx1MTJCMi1cdTEyQjVcdTEyQjgtXHUxMkJFXHUxMkMwXHUxMkMyLVx1MTJDNVx1MTJDOC1cdTEyRDZcdTEyRDgtXHUxMzEwXHUxMzEyLVx1MTMxNVx1MTMxOC1cdTEzNUFcdTEzODAtXHUxMzhGXHUxM0EwLVx1MTNGNVx1MTNGOC1cdTEzRkRcdTE0MDEtXHUxNjZDXHUxNjZGLVx1MTY3Rlx1MTY4MS1cdTE2OUFcdTE2QTAtXHUxNkVBXHUxNkYxLVx1MTZGOFx1MTcwMC1cdTE3MENcdTE3MEUtXHUxNzExXHUxNzIwLVx1MTczMVx1MTc0MC1cdTE3NTFcdTE3NjAtXHUxNzZDXHUxNzZFLVx1MTc3MFx1MTc4MC1cdTE3QjNcdTE3RDdcdTE3RENcdTE4MjAtXHUxODc3XHUxODgwLVx1MTg4NFx1MTg4Ny1cdTE4QThcdTE4QUFcdTE4QjAtXHUxOEY1XHUxOTAwLVx1MTkxRVx1MTk1MC1cdTE5NkRcdTE5NzAtXHUxOTc0XHUxOTgwLVx1MTlBQlx1MTlCMC1cdTE5QzlcdTFBMDAtXHUxQTE2XHUxQTIwLVx1MUE1NFx1MUFBN1x1MUIwNS1cdTFCMzNcdTFCNDUtXHUxQjRCXHUxQjgzLVx1MUJBMFx1MUJBRVx1MUJBRlx1MUJCQS1cdTFCRTVcdTFDMDAtXHUxQzIzXHUxQzRELVx1MUM0Rlx1MUM1QS1cdTFDN0RcdTFDODAtXHUxQzg4XHUxQ0U5LVx1MUNFQ1x1MUNFRS1cdTFDRjFcdTFDRjVcdTFDRjZcdTFEMDAtXHUxREJGXHUxRTAwLVx1MUYxNVx1MUYxOC1cdTFGMURcdTFGMjAtXHUxRjQ1XHUxRjQ4LVx1MUY0RFx1MUY1MC1cdTFGNTdcdTFGNTlcdTFGNUJcdTFGNURcdTFGNUYtXHUxRjdEXHUxRjgwLVx1MUZCNFx1MUZCNi1cdTFGQkNcdTFGQkVcdTFGQzItXHUxRkM0XHUxRkM2LVx1MUZDQ1x1MUZEMC1cdTFGRDNcdTFGRDYtXHUxRkRCXHUxRkUwLVx1MUZFQ1x1MUZGMi1cdTFGRjRcdTFGRjYtXHUxRkZDXHUyMDcxXHUyMDdGXHUyMDkwLVx1MjA5Q1x1MjEwMlx1MjEwN1x1MjEwQS1cdTIxMTNcdTIxMTVcdTIxMTktXHUyMTFEXHUyMTI0XHUyMTI2XHUyMTI4XHUyMTJBLVx1MjEyRFx1MjEyRi1cdTIxMzlcdTIxM0MtXHUyMTNGXHUyMTQ1LVx1MjE0OVx1MjE0RVx1MjE4M1x1MjE4NFx1MkMwMC1cdTJDMkVcdTJDMzAtXHUyQzVFXHUyQzYwLVx1MkNFNFx1MkNFQi1cdTJDRUVcdTJDRjJcdTJDRjNcdTJEMDAtXHUyRDI1XHUyRDI3XHUyRDJEXHUyRDMwLVx1MkQ2N1x1MkQ2Rlx1MkQ4MC1cdTJEOTZcdTJEQTAtXHUyREE2XHUyREE4LVx1MkRBRVx1MkRCMC1cdTJEQjZcdTJEQjgtXHUyREJFXHUyREMwLVx1MkRDNlx1MkRDOC1cdTJEQ0VcdTJERDAtXHUyREQ2XHUyREQ4LVx1MkRERVx1MkUyRlx1MzAwNVx1MzAwNlx1MzAzMS1cdTMwMzVcdTMwM0JcdTMwM0NcdTMwNDEtXHUzMDk2XHUzMDlELVx1MzA5Rlx1MzBBMS1cdTMwRkFcdTMwRkMtXHUzMEZGXHUzMTA1LVx1MzEyRVx1MzEzMS1cdTMxOEVcdTMxQTAtXHUzMUJBXHUzMUYwLVx1MzFGRlx1MzQwMC1cdTREQjVcdTRFMDAtXHU5RkVBXHVBMDAwLVx1QTQ4Q1x1QTREMC1cdUE0RkRcdUE1MDAtXHVBNjBDXHVBNjEwLVx1QTYxRlx1QTYyQVx1QTYyQlx1QTY0MC1cdUE2NkVcdUE2N0YtXHVBNjlEXHVBNkEwLVx1QTZFNVx1QTcxNy1cdUE3MUZcdUE3MjItXHVBNzg4XHVBNzhCLVx1QTdBRVx1QTdCMC1cdUE3QjdcdUE3RjctXHVBODAxXHVBODAzLVx1QTgwNVx1QTgwNy1cdUE4MEFcdUE4MEMtXHVBODIyXHVBODQwLVx1QTg3M1x1QTg4Mi1cdUE4QjNcdUE4RjItXHVBOEY3XHVBOEZCXHVBOEZEXHVBOTBBLVx1QTkyNVx1QTkzMC1cdUE5NDZcdUE5NjAtXHVBOTdDXHVBOTg0LVx1QTlCMlx1QTlDRlx1QTlFMC1cdUE5RTRcdUE5RTYtXHVBOUVGXHVBOUZBLVx1QTlGRVx1QUEwMC1cdUFBMjhcdUFBNDAtXHVBQTQyXHVBQTQ0LVx1QUE0Qlx1QUE2MC1cdUFBNzZcdUFBN0FcdUFBN0UtXHVBQUFGXHVBQUIxXHVBQUI1XHVBQUI2XHVBQUI5LVx1QUFCRFx1QUFDMFx1QUFDMlx1QUFEQi1cdUFBRERcdUFBRTAtXHVBQUVBXHVBQUYyLVx1QUFGNFx1QUIwMS1cdUFCMDZcdUFCMDktXHVBQjBFXHVBQjExLVx1QUIxNlx1QUIyMC1cdUFCMjZcdUFCMjgtXHVBQjJFXHVBQjMwLVx1QUI1QVx1QUI1Qy1cdUFCNjVcdUFCNzAtXHVBQkUyXHVBQzAwLVx1RDdBM1x1RDdCMC1cdUQ3QzZcdUQ3Q0ItXHVEN0ZCXHVGOTAwLVx1RkE2RFx1RkE3MC1cdUZBRDlcdUZCMDAtXHVGQjA2XHVGQjEzLVx1RkIxN1x1RkIxRFx1RkIxRi1cdUZCMjhcdUZCMkEtXHVGQjM2XHVGQjM4LVx1RkIzQ1x1RkIzRVx1RkI0MFx1RkI0MVx1RkI0M1x1RkI0NFx1RkI0Ni1cdUZCQjFcdUZCRDMtXHVGRDNEXHVGRDUwLVx1RkQ4Rlx1RkQ5Mi1cdUZEQzdcdUZERjAtXHVGREZCXHVGRTcwLVx1RkU3NFx1RkU3Ni1cdUZFRkNcdUZGMjEtXHVGRjNBXHVGRjQxLVx1RkY1QVx1RkY2Ni1cdUZGQkVcdUZGQzItXHVGRkM3XHVGRkNBLVx1RkZDRlx1RkZEMi1cdUZGRDdcdUZGREEtXHVGRkRDXXxcdUQ4MDBbXHVEQzAwLVx1REMwQlx1REMwRC1cdURDMjZcdURDMjgtXHVEQzNBXHVEQzNDXHVEQzNEXHVEQzNGLVx1REM0RFx1REM1MC1cdURDNURcdURDODAtXHVEQ0ZBXHVERTgwLVx1REU5Q1x1REVBMC1cdURFRDBcdURGMDAtXHVERjFGXHVERjJELVx1REY0MFx1REY0Mi1cdURGNDlcdURGNTAtXHVERjc1XHVERjgwLVx1REY5RFx1REZBMC1cdURGQzNcdURGQzgtXHVERkNGXXxcdUQ4MDFbXHVEQzAwLVx1REM5RFx1RENCMC1cdURDRDNcdURDRDgtXHVEQ0ZCXHVERDAwLVx1REQyN1x1REQzMC1cdURENjNcdURFMDAtXHVERjM2XHVERjQwLVx1REY1NVx1REY2MC1cdURGNjddfFx1RDgwMltcdURDMDAtXHVEQzA1XHVEQzA4XHVEQzBBLVx1REMzNVx1REMzN1x1REMzOFx1REMzQ1x1REMzRi1cdURDNTVcdURDNjAtXHVEQzc2XHVEQzgwLVx1REM5RVx1RENFMC1cdURDRjJcdURDRjRcdURDRjVcdUREMDAtXHVERDE1XHVERDIwLVx1REQzOVx1REQ4MC1cdUREQjdcdUREQkVcdUREQkZcdURFMDBcdURFMTAtXHVERTEzXHVERTE1LVx1REUxN1x1REUxOS1cdURFMzNcdURFNjAtXHVERTdDXHVERTgwLVx1REU5Q1x1REVDMC1cdURFQzdcdURFQzktXHVERUU0XHVERjAwLVx1REYzNVx1REY0MC1cdURGNTVcdURGNjAtXHVERjcyXHVERjgwLVx1REY5MV18XHVEODAzW1x1REMwMC1cdURDNDhcdURDODAtXHVEQ0IyXHVEQ0MwLVx1RENGMl18XHVEODA0W1x1REMwMy1cdURDMzdcdURDODMtXHVEQ0FGXHVEQ0QwLVx1RENFOFx1REQwMy1cdUREMjZcdURENTAtXHVERDcyXHVERDc2XHVERDgzLVx1RERCMlx1RERDMS1cdUREQzRcdUREREFcdURERENcdURFMDAtXHVERTExXHVERTEzLVx1REUyQlx1REU4MC1cdURFODZcdURFODhcdURFOEEtXHVERThEXHVERThGLVx1REU5RFx1REU5Ri1cdURFQThcdURFQjAtXHVERURFXHVERjA1LVx1REYwQ1x1REYwRlx1REYxMFx1REYxMy1cdURGMjhcdURGMkEtXHVERjMwXHVERjMyXHVERjMzXHVERjM1LVx1REYzOVx1REYzRFx1REY1MFx1REY1RC1cdURGNjFdfFx1RDgwNVtcdURDMDAtXHVEQzM0XHVEQzQ3LVx1REM0QVx1REM4MC1cdURDQUZcdURDQzRcdURDQzVcdURDQzdcdUREODAtXHVEREFFXHVEREQ4LVx1REREQlx1REUwMC1cdURFMkZcdURFNDRcdURFODAtXHVERUFBXHVERjAwLVx1REYxOV18XHVEODA2W1x1RENBMC1cdURDREZcdURDRkZcdURFMDBcdURFMEItXHVERTMyXHVERTNBXHVERTUwXHVERTVDLVx1REU4M1x1REU4Ni1cdURFODlcdURFQzAtXHVERUY4XXxcdUQ4MDdbXHVEQzAwLVx1REMwOFx1REMwQS1cdURDMkVcdURDNDBcdURDNzItXHVEQzhGXHVERDAwLVx1REQwNlx1REQwOFx1REQwOVx1REQwQi1cdUREMzBcdURENDZdfFx1RDgwOFtcdURDMDAtXHVERjk5XXxcdUQ4MDlbXHVEQzgwLVx1REQ0M118W1x1RDgwQ1x1RDgxQy1cdUQ4MjBcdUQ4NDAtXHVEODY4XHVEODZBLVx1RDg2Q1x1RDg2Ri1cdUQ4NzJcdUQ4NzQtXHVEODc5XVtcdURDMDAtXHVERkZGXXxcdUQ4MERbXHVEQzAwLVx1REMyRV18XHVEODExW1x1REMwMC1cdURFNDZdfFx1RDgxQVtcdURDMDAtXHVERTM4XHVERTQwLVx1REU1RVx1REVEMC1cdURFRURcdURGMDAtXHVERjJGXHVERjQwLVx1REY0M1x1REY2My1cdURGNzdcdURGN0QtXHVERjhGXXxcdUQ4MUJbXHVERjAwLVx1REY0NFx1REY1MFx1REY5My1cdURGOUZcdURGRTBcdURGRTFdfFx1RDgyMVtcdURDMDAtXHVERkVDXXxcdUQ4MjJbXHVEQzAwLVx1REVGMl18XHVEODJDW1x1REMwMC1cdUREMUVcdURENzAtXHVERUZCXXxcdUQ4MkZbXHVEQzAwLVx1REM2QVx1REM3MC1cdURDN0NcdURDODAtXHVEQzg4XHVEQzkwLVx1REM5OV18XHVEODM1W1x1REMwMC1cdURDNTRcdURDNTYtXHVEQzlDXHVEQzlFXHVEQzlGXHVEQ0EyXHVEQ0E1XHVEQ0E2XHVEQ0E5LVx1RENBQ1x1RENBRS1cdURDQjlcdURDQkJcdURDQkQtXHVEQ0MzXHVEQ0M1LVx1REQwNVx1REQwNy1cdUREMEFcdUREMEQtXHVERDE0XHVERDE2LVx1REQxQ1x1REQxRS1cdUREMzlcdUREM0ItXHVERDNFXHVERDQwLVx1REQ0NFx1REQ0Nlx1REQ0QS1cdURENTBcdURENTItXHVERUE1XHVERUE4LVx1REVDMFx1REVDMi1cdURFREFcdURFREMtXHVERUZBXHVERUZDLVx1REYxNFx1REYxNi1cdURGMzRcdURGMzYtXHVERjRFXHVERjUwLVx1REY2RVx1REY3MC1cdURGODhcdURGOEEtXHVERkE4XHVERkFBLVx1REZDMlx1REZDNC1cdURGQ0JdfFx1RDgzQVtcdURDMDAtXHVEQ0M0XHVERDAwLVx1REQ0M118XHVEODNCW1x1REUwMC1cdURFMDNcdURFMDUtXHVERTFGXHVERTIxXHVERTIyXHVERTI0XHVERTI3XHVERTI5LVx1REUzMlx1REUzNC1cdURFMzdcdURFMzlcdURFM0JcdURFNDJcdURFNDdcdURFNDlcdURFNEJcdURFNEQtXHVERTRGXHVERTUxXHVERTUyXHVERTU0XHVERTU3XHVERTU5XHVERTVCXHVERTVEXHVERTVGXHVERTYxXHVERTYyXHVERTY0XHVERTY3LVx1REU2QVx1REU2Qy1cdURFNzJcdURFNzQtXHVERTc3XHVERTc5LVx1REU3Q1x1REU3RVx1REU4MC1cdURFODlcdURFOEItXHVERTlCXHVERUExLVx1REVBM1x1REVBNS1cdURFQTlcdURFQUItXHVERUJCXXxcdUQ4NjlbXHVEQzAwLVx1REVENlx1REYwMC1cdURGRkZdfFx1RDg2RFtcdURDMDAtXHVERjM0XHVERjQwLVx1REZGRl18XHVEODZFW1x1REMwMC1cdURDMURcdURDMjAtXHVERkZGXXxcdUQ4NzNbXHVEQzAwLVx1REVBMVx1REVCMC1cdURGRkZdfFx1RDg3QVtcdURDMDAtXHVERkUwXXxcdUQ4N0VbXHVEQzAwLVx1REUxRF0pXFMqL2c7Y2xhc3MgV3Z7dHJhbnNmb3JtKHQpe2lmKG51bGw9PXQpcmV0dXJuIG51bGw7aWYoInN0cmluZyIhPXR5cGVvZiB0KXRocm93IEZ2KFd2LHQpO3JldHVybiB0LnJlcGxhY2UoVXYsKHQ9PnRbMF0udG9VcHBlckNhc2UoKSt0LnN1YnN0cigxKS50b0xvd2VyQ2FzZSgpKSl9fVd2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxXdil9LFd2Lsm1cGlwZT1ibyh7bmFtZToidGl0bGVjYXNlIix0eXBlOld2LHB1cmU6ITB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFd2LFt7dHlwZTpEXyxhcmdzOlt7bmFtZToidGl0bGVjYXNlIn1dfV0sbnVsbCxudWxsKTtjbGFzcyBHdnt0cmFuc2Zvcm0odCl7aWYobnVsbD09dClyZXR1cm4gbnVsbDtpZigic3RyaW5nIiE9dHlwZW9mIHQpdGhyb3cgRnYoR3YsdCk7cmV0dXJuIHQudG9VcHBlckNhc2UoKX19R3YuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEd2KX0sR3YuybVwaXBlPWJvKHtuYW1lOiJ1cHBlcmNhc2UiLHR5cGU6R3YscHVyZTohMH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoR3YsW3t0eXBlOkRfLGFyZ3M6W3tuYW1lOiJ1cHBlcmNhc2UifV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgWXZ7Y29uc3RydWN0b3IodCl7dGhpcy5sb2NhbGU9dH10cmFuc2Zvcm0odCxlPSJtZWRpdW1EYXRlIixuLG8pe2lmKG51bGw9PXR8fCIiPT09dHx8dCE9dClyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIFpNKHQsZSxvfHx0aGlzLmxvY2FsZSxuKX1jYXRjaCh0KXt0aHJvdyBGdihZdix0Lm1lc3NhZ2UpfX19WXYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFl2KShnZihRXywxNikpfSxZdi7JtXBpcGU9Ym8oe25hbWU6ImRhdGUiLHR5cGU6WXYscHVyZTohMH0pLFl2LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W1FfXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihZdixbe3R5cGU6RF8sYXJnczpbe25hbWU6ImRhdGUiLHB1cmU6ITB9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbUV9dfV19XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgcXY9LyMvZztjbGFzcyBadntjb25zdHJ1Y3Rvcih0KXt0aGlzLl9sb2NhbGl6YXRpb249dH10cmFuc2Zvcm0odCxlLG4pe2lmKG51bGw9PXQpcmV0dXJuIiI7aWYoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZSl0aHJvdyBGdihadixlKTtyZXR1cm4gZVtidih0LE9iamVjdC5rZXlzKGUpLHRoaXMuX2xvY2FsaXphdGlvbixuKV0ucmVwbGFjZShxdix0LnRvU3RyaW5nKCkpfX1adi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WnYpKGdmKGh2LDE2KSl9LFp2Lsm1cGlwZT1ibyh7bmFtZToiaTE4blBsdXJhbCIsdHlwZTpadixwdXJlOiEwfSksWnYuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpodn1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoWnYsW3t0eXBlOkRfLGFyZ3M6W3tuYW1lOiJpMThuUGx1cmFsIixwdXJlOiEwfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aHZ9XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgWHZ7dHJhbnNmb3JtKHQsZSl7aWYobnVsbD09dClyZXR1cm4iIjtpZigib2JqZWN0IiE9dHlwZW9mIGV8fCJzdHJpbmciIT10eXBlb2YgdCl0aHJvdyBGdihYdixlKTtyZXR1cm4gZS5oYXNPd25Qcm9wZXJ0eSh0KT9lW3RdOmUuaGFzT3duUHJvcGVydHkoIm90aGVyIik/ZS5vdGhlcjoiIn19WHYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFh2KX0sWHYuybVwaXBlPWJvKHtuYW1lOiJpMThuU2VsZWN0Iix0eXBlOlh2LHB1cmU6ITB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFh2LFt7dHlwZTpEXyxhcmdzOlt7bmFtZToiaTE4blNlbGVjdCIscHVyZTohMH1dfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIEt2e3RyYW5zZm9ybSh0KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCxudWxsLDIpfX1Ldi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8S3YpfSxLdi7JtXBpcGU9Ym8oe25hbWU6Impzb24iLHR5cGU6S3YscHVyZTohMX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoS3YsW3t0eXBlOkRfLGFyZ3M6W3tuYW1lOiJqc29uIixwdXJlOiExfV19XSxudWxsLG51bGwpO2NsYXNzIEp2e2NvbnN0cnVjdG9yKHQpe3RoaXMuZGlmZmVycz10LHRoaXMua2V5VmFsdWVzPVtdLHRoaXMuY29tcGFyZUZuPVF2fXRyYW5zZm9ybSh0LGU9UXYpe2lmKCF0fHwhKHQgaW5zdGFuY2VvZiBNYXApJiYib2JqZWN0IiE9dHlwZW9mIHQpcmV0dXJuIG51bGw7dGhpcy5kaWZmZXJ8fCh0aGlzLmRpZmZlcj10aGlzLmRpZmZlcnMuZmluZCh0KS5jcmVhdGUoKSk7Y29uc3Qgbj10aGlzLmRpZmZlci5kaWZmKHQpLG89ZSE9PXRoaXMuY29tcGFyZUZuO3JldHVybiBuJiYodGhpcy5rZXlWYWx1ZXM9W10sbi5mb3JFYWNoSXRlbSgodD0+e3RoaXMua2V5VmFsdWVzLnB1c2goKAovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gZSh0LG4pe3JldHVybntrZXk6dCx2YWx1ZTpufX0pKHQua2V5LHQuY3VycmVudFZhbHVlKSl9KSkpLChufHxvKSYmKHRoaXMua2V5VmFsdWVzLnNvcnQoZSksdGhpcy5jb21wYXJlRm49ZSksdGhpcy5rZXlWYWx1ZXN9fWZ1bmN0aW9uIFF2KHQsZSl7Y29uc3Qgbj10LmtleSxvPWUua2V5O2lmKG49PT1vKXJldHVybiAwO2lmKHZvaWQgMD09PW4pcmV0dXJuIDE7aWYodm9pZCAwPT09bylyZXR1cm4tMTtpZihudWxsPT09bilyZXR1cm4gMTtpZihudWxsPT09bylyZXR1cm4tMTtpZigic3RyaW5nIj09dHlwZW9mIG4mJiJzdHJpbmciPT10eXBlb2YgbylyZXR1cm4gbjxvPy0xOjE7aWYoIm51bWJlciI9PXR5cGVvZiBuJiYibnVtYmVyIj09dHlwZW9mIG8pcmV0dXJuIG4tbztpZigiYm9vbGVhbiI9PXR5cGVvZiBuJiYiYm9vbGVhbiI9PXR5cGVvZiBvKXJldHVybiBuPG8/LTE6MTtjb25zdCBpPVN0cmluZyhuKSxhPVN0cmluZyhvKTtyZXR1cm4gaT09YT8wOmk8YT8tMToxfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9Kdi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SnYpKGdmKHliLDE2KSl9LEp2Lsm1cGlwZT1ibyh7bmFtZToia2V5dmFsdWUiLHR5cGU6SnYscHVyZTohMX0pLEp2LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6eWJ9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEp2LFt7dHlwZTpEXyxhcmdzOlt7bmFtZToia2V5dmFsdWUiLHB1cmU6ITF9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp5Yn1dfSksbnVsbCk7Y2xhc3MgJHZ7Y29uc3RydWN0b3IodCl7dGhpcy5fbG9jYWxlPXR9dHJhbnNmb3JtKHQsZSxuKXtpZighbngodCkpcmV0dXJuIG51bGw7bj1ufHx0aGlzLl9sb2NhbGU7dHJ5e3JldHVybiBmdihveCh0KSxuLGUpfWNhdGNoKHQpe3Rocm93IEZ2KCR2LHQubWVzc2FnZSl9fX0kdi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8JHYpKGdmKFFfLDE2KSl9LCR2Lsm1cGlwZT1ibyh7bmFtZToibnVtYmVyIix0eXBlOiR2LHB1cmU6ITB9KSwkdi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltRX119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoJHYsW3t0eXBlOkRfLGFyZ3M6W3tuYW1lOiJudW1iZXIifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W1FfXX1dfV19KSxudWxsKTtjbGFzcyB0eHtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9sb2NhbGU9dH10cmFuc2Zvcm0odCxlLG4pe2lmKCFueCh0KSlyZXR1cm4gbnVsbDtuPW58fHRoaXMuX2xvY2FsZTt0cnl7cmV0dXJuKGZ1bmN0aW9uIG8odCxlLG4pe3JldHVybiBwdih0LHV2KElNKGUsUE0uUGVyY2VudCksek0oZSxSTS5NaW51c1NpZ24pKSxlLFJNLkdyb3VwLFJNLkRlY2ltYWwsbiwhMCkucmVwbGFjZShuZXcgUmVnRXhwKCIlIiwiZyIpLHpNKGUsUk0uUGVyY2VudFNpZ24pKX0pKG94KHQpLG4sZSl9Y2F0Y2godCl7dGhyb3cgRnYodHgsdC5tZXNzYWdlKX19fXR4Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx0eCkoZ2YoUV8sMTYpKX0sdHguybVwaXBlPWJvKHtuYW1lOiJwZXJjZW50Iix0eXBlOnR4LHB1cmU6ITB9KSx0eC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltRX119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIodHgsW3t0eXBlOkRfLGFyZ3M6W3tuYW1lOiJwZXJjZW50In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltRX119XX1dfSksbnVsbCk7Y2xhc3MgZXh7Y29uc3RydWN0b3IodCxlPSJVU0QiKXt0aGlzLl9sb2NhbGU9dCx0aGlzLl9kZWZhdWx0Q3VycmVuY3lDb2RlPWV9dHJhbnNmb3JtKHQsZT10aGlzLl9kZWZhdWx0Q3VycmVuY3lDb2RlLG49InN5bWJvbCIsbyxpKXtpZighbngodCkpcmV0dXJuIG51bGw7aT1pfHx0aGlzLl9sb2NhbGUsImJvb2xlYW4iPT10eXBlb2YgbiYmKCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmY29uc29sZSYmY29uc29sZS53YXJuJiZjb25zb2xlLndhcm4oJ1dhcm5pbmc6IHRoZSBjdXJyZW5jeSBwaXBlIGhhcyBiZWVuIGNoYW5nZWQgaW4gQW5ndWxhciB2NS4gVGhlIHN5bWJvbERpc3BsYXkgb3B0aW9uICh0aGlyZCBwYXJhbWV0ZXIpIGlzIG5vdyBhIHN0cmluZyBpbnN0ZWFkIG9mIGEgYm9vbGVhbi4gVGhlIGFjY2VwdGVkIHZhbHVlcyBhcmUgImNvZGUiLCAic3ltYm9sIiBvciAic3ltYm9sLW5hcnJvdyIuJyksbj1uPyJzeW1ib2wiOiJjb2RlIik7bGV0IGE9ZXx8dGhpcy5fZGVmYXVsdEN1cnJlbmN5Q29kZTsiY29kZSIhPT1uJiYoYT0ic3ltYm9sIj09PW58fCJzeW1ib2wtbmFycm93Ij09PW4/Vk0oYSwic3ltYm9sIj09PW4/IndpZGUiOiJuYXJyb3ciLGkpOm4pO3RyeXtyZXR1cm4gbXYob3godCksaSxhLGUsbyl9Y2F0Y2godCl7dGhyb3cgRnYoZXgsdC5tZXNzYWdlKX19fWZ1bmN0aW9uIG54KHQpe3JldHVybiEobnVsbD09dHx8IiI9PT10fHx0IT10KX1mdW5jdGlvbiBveCh0KXtpZigic3RyaW5nIj09dHlwZW9mIHQmJiFpc05hTihOdW1iZXIodCktcGFyc2VGbG9hdCh0KSkpcmV0dXJuIE51bWJlcih0KTtpZigibnVtYmVyIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yKGAke3R9IGlzIG5vdCBhIG51bWJlcmApO3JldHVybiB0fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9leC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ZXgpKGdmKFFfLDE2KSxnZigkXywxNikpfSxleC7JtXBpcGU9Ym8oe25hbWU6ImN1cnJlbmN5Iix0eXBlOmV4LHB1cmU6ITB9KSxleC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltRX119XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6WyRfXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihleCxbe3R5cGU6RF8sYXJnczpbe25hbWU6ImN1cnJlbmN5In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltRX119XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6WyRfXX1dfV19KSxudWxsKTtjbGFzcyBpeHt0cmFuc2Zvcm0odCxlLG4pe2lmKG51bGw9PXQpcmV0dXJuIG51bGw7aWYoIXRoaXMuc3VwcG9ydHModCkpdGhyb3cgRnYoaXgsdCk7cmV0dXJuIHQuc2xpY2UoZSxuKX1zdXBwb3J0cyh0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHR8fEFycmF5LmlzQXJyYXkodCl9fWl4Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxpeCl9LGl4Lsm1cGlwZT1ibyh7bmFtZToic2xpY2UiLHR5cGU6aXgscHVyZTohMX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoaXgsW3t0eXBlOkRfLGFyZ3M6W3tuYW1lOiJzbGljZSIscHVyZTohMX1dfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IGF4PVtWdixHdixqdixLdixpeCwkdix0eCxXdixleCxZdixadixYdixKdl07Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIHJ4e31yeC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cngpfSxyeC7JtW1vZD1mbyh7dHlwZTpyeH0pLHJ4Lsm1aW5qPURuKHtwcm92aWRlcnM6W3twcm92aWRlOmh2LHVzZUNsYXNzOnl2fV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHJ4LFt7dHlwZTpMXyxhcmdzOlt7ZGVjbGFyYXRpb25zOltIdixheF0sZXhwb3J0czpbSHYsYXhdLHByb3ZpZGVyczpbe3Byb3ZpZGU6aHYsdXNlQ2xhc3M6eXZ9XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKHJ4LHtkZWNsYXJhdGlvbnM6W0N2LE12LHh2LFB2LEl2LHp2LER2LFJ2LEV2LFR2LE52LFZ2LEd2LGp2LEt2LGl4LCR2LHR4LFd2LGV4LFl2LFp2LFh2LEp2XSxleHBvcnRzOltDdixNdix4dixQdixJdix6dixEdixSdixFdixUdixOdixWdixHdixqdixLdixpeCwkdix0eCxXdixleCxZdixadixYdixKdl19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IHN4PSJicm93c2VyIjsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCm5ldyBvYigiMTIuMi4xIik7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBseHt9bHguybVwcm92PVNuKHt0b2tlbjpseCxwcm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT5uZXcgY3goVHIoc00pLHdpbmRvdyl9KTtjbGFzcyBjeHtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuZG9jdW1lbnQ9dCx0aGlzLndpbmRvdz1lLHRoaXMub2Zmc2V0PSgpPT5bMCwwXX1zZXRPZmZzZXQodCl7dGhpcy5vZmZzZXQ9QXJyYXkuaXNBcnJheSh0KT8oKT0+dDp0fWdldFNjcm9sbFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuc3VwcG9ydHNTY3JvbGxpbmcoKT9bdGhpcy53aW5kb3cucGFnZVhPZmZzZXQsdGhpcy53aW5kb3cucGFnZVlPZmZzZXRdOlswLDBdfXNjcm9sbFRvUG9zaXRpb24odCl7dGhpcy5zdXBwb3J0c1Njcm9sbGluZygpJiZ0aGlzLndpbmRvdy5zY3JvbGxUbyh0WzBdLHRbMV0pfXNjcm9sbFRvQW5jaG9yKHQpe2lmKCF0aGlzLnN1cHBvcnRzU2Nyb2xsaW5nKCkpcmV0dXJuO2NvbnN0IGU9KGZ1bmN0aW9uIG4odCxlKXtjb25zdCBuPXQuZ2V0RWxlbWVudEJ5SWQoZSl8fHQuZ2V0RWxlbWVudHNCeU5hbWUoZSlbMF07aWYobilyZXR1cm4gbjtpZigiZnVuY3Rpb24iPT10eXBlb2YgdC5jcmVhdGVUcmVlV2Fsa2VyJiZ0LmJvZHkmJih0LmJvZHkuY3JlYXRlU2hhZG93Um9vdHx8dC5ib2R5LmF0dGFjaFNoYWRvdykpe2NvbnN0IG49dC5jcmVhdGVUcmVlV2Fsa2VyKHQuYm9keSxOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCk7bGV0IG89bi5jdXJyZW50Tm9kZTtmb3IoO287KXtjb25zdCB0PW8uc2hhZG93Um9vdDtpZih0KXtjb25zdCBuPXQuZ2V0RWxlbWVudEJ5SWQoZSl8fHQucXVlcnlTZWxlY3RvcihgW25hbWU9IiR7ZX0iXWApO2lmKG4pcmV0dXJuIG59bz1uLm5leHROb2RlKCl9fXJldHVybiBudWxsfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKHRoaXMuZG9jdW1lbnQsdCk7ZSYmKHRoaXMuc2Nyb2xsVG9FbGVtZW50KGUpLHRoaXMuYXR0ZW1wdEZvY3VzKGUpKX1zZXRIaXN0b3J5U2Nyb2xsUmVzdG9yYXRpb24odCl7aWYodGhpcy5zdXBwb3J0U2Nyb2xsUmVzdG9yYXRpb24oKSl7Y29uc3QgZT10aGlzLndpbmRvdy5oaXN0b3J5O2UmJmUuc2Nyb2xsUmVzdG9yYXRpb24mJihlLnNjcm9sbFJlc3RvcmF0aW9uPXQpfX1zY3JvbGxUb0VsZW1lbnQodCl7Y29uc3QgZT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49ZS5sZWZ0K3RoaXMud2luZG93LnBhZ2VYT2Zmc2V0LG89ZS50b3ArdGhpcy53aW5kb3cucGFnZVlPZmZzZXQsaT10aGlzLm9mZnNldCgpO3RoaXMud2luZG93LnNjcm9sbFRvKG4taVswXSxvLWlbMV0pfWF0dGVtcHRGb2N1cyh0KXtyZXR1cm4gdC5mb2N1cygpLHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXR9c3VwcG9ydFNjcm9sbFJlc3RvcmF0aW9uKCl7dHJ5e2lmKCF0aGlzLnN1cHBvcnRzU2Nyb2xsaW5nKCkpcmV0dXJuITE7Y29uc3QgdD1keCh0aGlzLndpbmRvdy5oaXN0b3J5KXx8ZHgoT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMud2luZG93Lmhpc3RvcnkpKTtyZXR1cm4hKCF0fHwhdC53cml0YWJsZSYmIXQuc2V0KX1jYXRjaCh0KXtyZXR1cm4hMX19c3VwcG9ydHNTY3JvbGxpbmcoKXt0cnl7cmV0dXJuISF0aGlzLndpbmRvdyYmISF0aGlzLndpbmRvdy5zY3JvbGxUbyYmInBhZ2VYT2Zmc2V0ImluIHRoaXMud2luZG93fWNhdGNoKHQpe3JldHVybiExfX19ZnVuY3Rpb24gZHgodCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCwic2Nyb2xsUmVzdG9yYXRpb24iKX1jbGFzcyBweHt9Ci8qKgogICAgICogQGxpY2Vuc2UgQW5ndWxhciB2MTIuMi4xCiAgICAgKiAoYykgMjAxMC0yMDIxIEdvb2dsZSBMTEMuIGh0dHBzOi8vYW5ndWxhci5pby8KICAgICAqIExpY2Vuc2U6IE1JVAogICAgICovCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgbXggZXh0ZW5kcyBjbGFzcyBleHRlbmRzIGNsYXNze317Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuc3VwcG9ydHNET01FdmVudHM9ITB9fXtzdGF0aWMgbWFrZUN1cnJlbnQoKXshKGZ1bmN0aW9uIHQoZSl7YU18fChhTT1lKX0pKG5ldyBteCl9b25BbmRDYW5jZWwodCxlLG4pe3JldHVybiB0LmFkZEV2ZW50TGlzdGVuZXIoZSxuLCExKSwoKT0+e3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLG4sITEpfX1kaXNwYXRjaEV2ZW50KHQsZSl7dC5kaXNwYXRjaEV2ZW50KGUpfXJlbW92ZSh0KXt0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KX1jcmVhdGVFbGVtZW50KHQsZSl7cmV0dXJuKGU9ZXx8dGhpcy5nZXREZWZhdWx0RG9jdW1lbnQoKSkuY3JlYXRlRWxlbWVudCh0KX1jcmVhdGVIdG1sRG9jdW1lbnQoKXtyZXR1cm4gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCJmYWtlVGl0bGUiKX1nZXREZWZhdWx0RG9jdW1lbnQoKXtyZXR1cm4gZG9jdW1lbnR9aXNFbGVtZW50Tm9kZSh0KXtyZXR1cm4gdC5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFfWlzU2hhZG93Um9vdCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnR9Z2V0R2xvYmFsRXZlbnRUYXJnZXQodCxlKXtyZXR1cm4id2luZG93Ij09PWU/d2luZG93OiJkb2N1bWVudCI9PT1lP3Q6ImJvZHkiPT09ZT90LmJvZHk6bnVsbH1nZXRCYXNlSHJlZih0KXtjb25zdCBlPShmdW5jdGlvbiBuKCl7cmV0dXJuIHV4PXV4fHxkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJiYXNlIiksdXg/dXguZ2V0QXR0cmlidXRlKCJocmVmIik6bnVsbH0pKCk7cmV0dXJuIG51bGw9PWU/bnVsbDooZnVuY3Rpb24gbyh0KXtmeD1meHx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpLGZ4LnNldEF0dHJpYnV0ZSgiaHJlZiIsdCk7Y29uc3QgZT1meC5wYXRobmFtZTtyZXR1cm4iLyI9PT1lLmNoYXJBdCgwKT9lOmAvJHtlfWB9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLykoZSl9cmVzZXRCYXNlRWxlbWVudCgpe3V4PW51bGx9Z2V0VXNlckFnZW50KCl7cmV0dXJuIHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50fWdldENvb2tpZSh0KXtyZXR1cm4gX3YoZG9jdW1lbnQuY29va2llLHQpfX1sZXQgZngsdXg9bnVsbDtjb25zdCBneD1uZXcgZXIoIlRSQU5TSVRJT05fSUQiKTtjb25zdCBoeD1be3Byb3ZpZGU6al8sdXNlRmFjdG9yeTpmdW5jdGlvbiBieCh0LGUsbil7cmV0dXJuKCk9PntuLmdldChVXykuZG9uZVByb21pc2UudGhlbigoKCk9Pntjb25zdCBuPXJNKCk7QXJyYXkucHJvdG90eXBlLnNsaWNlLmFwcGx5KGUucXVlcnlTZWxlY3RvckFsbCgic3R5bGVbbmctdHJhbnNpdGlvbl0iKSkuZmlsdGVyKChlPT5lLmdldEF0dHJpYnV0ZSgibmctdHJhbnNpdGlvbiIpPT09dCkpLmZvckVhY2goKHQ9Pm4ucmVtb3ZlKHQpKSl9KSl9fSxkZXBzOltneCxzTSxOcF0sbXVsdGk6ITB9XTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgeXh7c3RhdGljIGluaXQoKXshKGZ1bmN0aW9uIHQoZSl7dkM9ZX0pKG5ldyB5eCl9YWRkVG9XaW5kb3codCl7WG4uZ2V0QW5ndWxhclRlc3RhYmlsaXR5PShlLG49ITApPT57Y29uc3Qgbz10LmZpbmRUZXN0YWJpbGl0eUluVHJlZShlLG4pO2lmKG51bGw9PW8pdGhyb3cgbmV3IEVycm9yKCJDb3VsZCBub3QgZmluZCB0ZXN0YWJpbGl0eSBmb3IgZWxlbWVudC4iKTtyZXR1cm4gb30sWG4uZ2V0QWxsQW5ndWxhclRlc3RhYmlsaXRpZXM9KCk9PnQuZ2V0QWxsVGVzdGFiaWxpdGllcygpLFhuLmdldEFsbEFuZ3VsYXJSb290RWxlbWVudHM9KCk9PnQuZ2V0QWxsUm9vdEVsZW1lbnRzKCk7WG4uZnJhbWV3b3JrU3RhYmlsaXplcnN8fChYbi5mcmFtZXdvcmtTdGFiaWxpemVycz1bXSksWG4uZnJhbWV3b3JrU3RhYmlsaXplcnMucHVzaCgodD0+e2NvbnN0IGU9WG4uZ2V0QWxsQW5ndWxhclRlc3RhYmlsaXRpZXMoKTtsZXQgbj1lLmxlbmd0aCxvPSExO2NvbnN0IGk9ZnVuY3Rpb24oZSl7bz1vfHxlLG4tLSwwPT1uJiZ0KG8pfTtlLmZvckVhY2goKGZ1bmN0aW9uKHQpe3Qud2hlblN0YWJsZShpKX0pKX0pKX1maW5kVGVzdGFiaWxpdHlJblRyZWUodCxlLG4pe2lmKG51bGw9PWUpcmV0dXJuIG51bGw7Y29uc3Qgbz10LmdldFRlc3RhYmlsaXR5KGUpO3JldHVybiBudWxsIT1vP286bj9yTSgpLmlzU2hhZG93Um9vdChlKT90aGlzLmZpbmRUZXN0YWJpbGl0eUluVHJlZSh0LGUuaG9zdCwhMCk6dGhpcy5maW5kVGVzdGFiaWxpdHlJblRyZWUodCxlLnBhcmVudEVsZW1lbnQsITApOm51bGx9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBfeHtidWlsZCgpe3JldHVybiBuZXcgWE1MSHR0cFJlcXVlc3R9fV94Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxfeCl9LF94Lsm1cHJvdj1Tbih7dG9rZW46X3gsZmFjdG9yeTpfeC7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoX3gsW3t0eXBlOlVtfV0sbnVsbCxudWxsKTtuZXcgQnI7Y29uc3QgQ3g9W10sTXg9bmV3IGVyKCJFdmVudE1hbmFnZXJQbHVnaW5zIik7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIHZ4e2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fem9uZT1lLHRoaXMuX2V2ZW50TmFtZVRvUGx1Z2luPW5ldyBNYXAsdC5mb3JFYWNoKCh0PT50Lm1hbmFnZXI9dGhpcykpLHRoaXMuX3BsdWdpbnM9dC5zbGljZSgpLnJldmVyc2UoKX1hZGRFdmVudExpc3RlbmVyKHQsZSxuKXtyZXR1cm4gdGhpcy5fZmluZFBsdWdpbkZvcihlKS5hZGRFdmVudExpc3RlbmVyKHQsZSxuKX1hZGRHbG9iYWxFdmVudExpc3RlbmVyKHQsZSxuKXtyZXR1cm4gdGhpcy5fZmluZFBsdWdpbkZvcihlKS5hZGRHbG9iYWxFdmVudExpc3RlbmVyKHQsZSxuKX1nZXRab25lKCl7cmV0dXJuIHRoaXMuX3pvbmV9X2ZpbmRQbHVnaW5Gb3IodCl7Y29uc3QgZT10aGlzLl9ldmVudE5hbWVUb1BsdWdpbi5nZXQodCk7aWYoZSlyZXR1cm4gZTtjb25zdCBuPXRoaXMuX3BsdWdpbnM7Zm9yKGxldCBlPTA7ZTxuLmxlbmd0aDtlKyspe2NvbnN0IG89bltlXTtpZihvLnN1cHBvcnRzKHQpKXJldHVybiB0aGlzLl9ldmVudE5hbWVUb1BsdWdpbi5zZXQodCxvKSxvfXRocm93IG5ldyBFcnJvcihgTm8gZXZlbnQgbWFuYWdlciBwbHVnaW4gZm91bmQgZm9yIGV2ZW50ICR7dH1gKX19dnguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHZ4KShUcihNeCksVHIobUMpKX0sdnguybVwcm92PVNuKHt0b2tlbjp2eCxmYWN0b3J5OnZ4Lsm1ZmFjfSksdnguY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltNeF19XX0se3R5cGU6bUN9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHZ4LFt7dHlwZTpVbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltNeF19XX0se3R5cGU6bUN9XX0pLG51bGwpO2NsYXNzIHh4e2NvbnN0cnVjdG9yKHQpe3RoaXMuX2RvYz10fWFkZEdsb2JhbEV2ZW50TGlzdGVuZXIodCxlLG4pe2NvbnN0IG89ck0oKS5nZXRHbG9iYWxFdmVudFRhcmdldCh0aGlzLl9kb2MsdCk7aWYoIW8pdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBldmVudCB0YXJnZXQgJHtvfSBmb3IgZXZlbnQgJHtlfWApO3JldHVybiB0aGlzLmFkZEV2ZW50TGlzdGVuZXIobyxlLG4pfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgT3h7Y29uc3RydWN0b3IoKXt0aGlzLl9zdHlsZXNTZXQ9bmV3IFNldH1hZGRTdHlsZXModCl7Y29uc3QgZT1uZXcgU2V0O3QuZm9yRWFjaCgodD0+e3RoaXMuX3N0eWxlc1NldC5oYXModCl8fCh0aGlzLl9zdHlsZXNTZXQuYWRkKHQpLGUuYWRkKHQpKX0pKSx0aGlzLm9uU3R5bGVzQWRkZWQoZSl9b25TdHlsZXNBZGRlZCh0KXt9Z2V0QWxsU3R5bGVzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5fc3R5bGVzU2V0KX19T3guybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE94KX0sT3guybVwcm92PVNuKHt0b2tlbjpPeCxmYWN0b3J5Ok94Lsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihPeCxbe3R5cGU6VW19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLG51bGwpO2NsYXNzIFB4IGV4dGVuZHMgT3h7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLl9kb2M9dCx0aGlzLl9ob3N0Tm9kZXM9bmV3IE1hcCx0aGlzLl9ob3N0Tm9kZXMuc2V0KHQuaGVhZCxbXSl9X2FkZFN0eWxlc1RvSG9zdCh0LGUsbil7dC5mb3JFYWNoKCh0PT57Y29uc3Qgbz10aGlzLl9kb2MuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtvLnRleHRDb250ZW50PXQsbi5wdXNoKGUuYXBwZW5kQ2hpbGQobykpfSkpfWFkZEhvc3QodCl7Y29uc3QgZT1bXTt0aGlzLl9hZGRTdHlsZXNUb0hvc3QodGhpcy5fc3R5bGVzU2V0LHQsZSksdGhpcy5faG9zdE5vZGVzLnNldCh0LGUpfXJlbW92ZUhvc3QodCl7Y29uc3QgZT10aGlzLl9ob3N0Tm9kZXMuZ2V0KHQpO2UmJmUuZm9yRWFjaCh3eCksdGhpcy5faG9zdE5vZGVzLmRlbGV0ZSh0KX1vblN0eWxlc0FkZGVkKHQpe3RoaXMuX2hvc3ROb2Rlcy5mb3JFYWNoKCgoZSxuKT0+e3RoaXMuX2FkZFN0eWxlc1RvSG9zdCh0LG4sZSl9KSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9ob3N0Tm9kZXMuZm9yRWFjaCgodD0+dC5mb3JFYWNoKHd4KSkpfX1mdW5jdGlvbiB3eCh0KXtyTSgpLnJlbW92ZSh0KX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovUHguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFB4KShUcihzTSkpfSxQeC7JtXByb3Y9U24oe3Rva2VuOlB4LGZhY3Rvcnk6UHguybVmYWN9KSxQeC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoUHgsW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX1dfSksbnVsbCk7Y29uc3Qga3g9e3N2ZzoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhodG1sOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIix4bGluazoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIseG1sOiJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyJ9LFN4PS8lQ09NUCUvZyxEeD0idW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8ISFuZ0Rldk1vZGUsUng9Il9uZ2hvc3QtJUNPTVAlIixFeD0iX25nY29udGVudC0lQ09NUCUiO2Z1bmN0aW9uIEF4KHQsZSxuKXtmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rKyl7bGV0IGk9ZVtvXTtBcnJheS5pc0FycmF5KGkpP0F4KHQsaSxuKTooaT1pLnJlcGxhY2UoU3gsdCksbi5wdXNoKGkpKX1yZXR1cm4gbn1mdW5jdGlvbiBUeCh0KXtyZXR1cm4gZT0+e2lmKCJfX25nVW53cmFwX18iPT09ZSlyZXR1cm4gdDshMT09PXQoZSkmJihlLnByZXZlbnREZWZhdWx0KCksZS5yZXR1cm5WYWx1ZT0hMSl9fWxldCBOeD0hMTtjbGFzcyB6eHtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5ldmVudE1hbmFnZXI9dCx0aGlzLnNoYXJlZFN0eWxlc0hvc3Q9ZSx0aGlzLmFwcElkPW4sdGhpcy5yZW5kZXJlckJ5Q29tcElkPW5ldyBNYXAsdGhpcy5kZWZhdWx0UmVuZGVyZXI9bmV3IEl4KHQpfWNyZWF0ZVJlbmRlcmVyKHQsZSl7aWYoIXR8fCFlKXJldHVybiB0aGlzLmRlZmF1bHRSZW5kZXJlcjtzd2l0Y2goZS5lbmNhcHN1bGF0aW9uKXtjYXNlIFduLkVtdWxhdGVkOntsZXQgbj10aGlzLnJlbmRlcmVyQnlDb21wSWQuZ2V0KGUuaWQpO3JldHVybiBufHwobj1uZXcgTHgodGhpcy5ldmVudE1hbmFnZXIsdGhpcy5zaGFyZWRTdHlsZXNIb3N0LGUsdGhpcy5hcHBJZCksdGhpcy5yZW5kZXJlckJ5Q29tcElkLnNldChlLmlkLG4pKSxuLmFwcGx5VG9Ib3N0KHQpLG59Y2FzZSAxOmNhc2UgV24uU2hhZG93RG9tOnJldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgbmdEZXZNb2RlJiYhbmdEZXZNb2RlfHxOeHx8MSE9PWUuZW5jYXBzdWxhdGlvbnx8KE54PSEwLGNvbnNvbGUud2FybigiVmlld0VuY2Fwc3VsYXRpb24uTmF0aXZlIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuIEZhbGxpbmcgYmFjayB0byBWaWV3RW5jYXBzdWxhdGlvbi5TaGFkb3dEb20uIFRoZSBmYWxsYmFjayB3aWxsIGJlIHJlbW92ZWQgaW4gdjEyLiIpKSxuZXcgQngodGhpcy5ldmVudE1hbmFnZXIsdGhpcy5zaGFyZWRTdHlsZXNIb3N0LHQsZSk7ZGVmYXVsdDppZighdGhpcy5yZW5kZXJlckJ5Q29tcElkLmhhcyhlLmlkKSl7Y29uc3QgdD1BeChlLmlkLGUuc3R5bGVzLFtdKTt0aGlzLnNoYXJlZFN0eWxlc0hvc3QuYWRkU3R5bGVzKHQpLHRoaXMucmVuZGVyZXJCeUNvbXBJZC5zZXQoZS5pZCx0aGlzLmRlZmF1bHRSZW5kZXJlcil9cmV0dXJuIHRoaXMuZGVmYXVsdFJlbmRlcmVyfX1iZWdpbigpe31lbmQoKXt9fXp4Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx6eCkoVHIodngpLFRyKFB4KSxUcihXXykpfSx6eC7JtXByb3Y9U24oe3Rva2VuOnp4LGZhY3Rvcnk6enguybVmYWN9KSx6eC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnZ4fSx7dHlwZTpQeH0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W1dfXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih6eCxbe3R5cGU6VW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dnh9LHt0eXBlOlB4fSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbV19dfV19XX0pLG51bGwpO2NsYXNzIEl4e2NvbnN0cnVjdG9yKHQpe3RoaXMuZXZlbnRNYW5hZ2VyPXQsdGhpcy5kYXRhPU9iamVjdC5jcmVhdGUobnVsbCl9ZGVzdHJveSgpe31jcmVhdGVFbGVtZW50KHQsZSl7cmV0dXJuIGU/ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGt4W2VdfHxlLHQpOmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodCl9Y3JlYXRlQ29tbWVudCh0KXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlQ29tbWVudCh0KX1jcmVhdGVUZXh0KHQpe3JldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0KX1hcHBlbmRDaGlsZCh0LGUpe3QuYXBwZW5kQ2hpbGQoZSl9aW5zZXJ0QmVmb3JlKHQsZSxuKXt0JiZ0Lmluc2VydEJlZm9yZShlLG4pfXJlbW92ZUNoaWxkKHQsZSl7dCYmdC5yZW1vdmVDaGlsZChlKX1zZWxlY3RSb290RWxlbWVudCh0LGUpe2xldCBuPSJzdHJpbmciPT10eXBlb2YgdD9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpOnQ7aWYoIW4pdGhyb3cgbmV3IEVycm9yKGBUaGUgc2VsZWN0b3IgIiR7dH0iIGRpZCBub3QgbWF0Y2ggYW55IGVsZW1lbnRzYCk7cmV0dXJuIGV8fChuLnRleHRDb250ZW50PSIiKSxufXBhcmVudE5vZGUodCl7cmV0dXJuIHQucGFyZW50Tm9kZX1uZXh0U2libGluZyh0KXtyZXR1cm4gdC5uZXh0U2libGluZ31zZXRBdHRyaWJ1dGUodCxlLG4sbyl7aWYobyl7ZT1vKyI6IitlO2NvbnN0IGk9a3hbb107aT90LnNldEF0dHJpYnV0ZU5TKGksZSxuKTp0LnNldEF0dHJpYnV0ZShlLG4pfWVsc2UgdC5zZXRBdHRyaWJ1dGUoZSxuKX1yZW1vdmVBdHRyaWJ1dGUodCxlLG4pe2lmKG4pe2NvbnN0IG89a3hbbl07bz90LnJlbW92ZUF0dHJpYnV0ZU5TKG8sZSk6dC5yZW1vdmVBdHRyaWJ1dGUoYCR7bn06JHtlfWApfWVsc2UgdC5yZW1vdmVBdHRyaWJ1dGUoZSl9YWRkQ2xhc3ModCxlKXt0LmNsYXNzTGlzdC5hZGQoZSl9cmVtb3ZlQ2xhc3ModCxlKXt0LmNsYXNzTGlzdC5yZW1vdmUoZSl9c2V0U3R5bGUodCxlLG4sbyl7byYoRWwuRGFzaENhc2V8RWwuSW1wb3J0YW50KT90LnN0eWxlLnNldFByb3BlcnR5KGUsbixvJkVsLkltcG9ydGFudD8iaW1wb3J0YW50IjoiIik6dC5zdHlsZVtlXT1ufXJlbW92ZVN0eWxlKHQsZSxuKXtuJkVsLkRhc2hDYXNlP3Quc3R5bGUucmVtb3ZlUHJvcGVydHkoZSk6dC5zdHlsZVtlXT0iIn1zZXRQcm9wZXJ0eSh0LGUsbil7RHgmJkZ4KGUsInByb3BlcnR5IiksdFtlXT1ufXNldFZhbHVlKHQsZSl7dC5ub2RlVmFsdWU9ZX1saXN0ZW4odCxlLG4pe3JldHVybiBEeCYmRngoZSwibGlzdGVuZXIiKSwic3RyaW5nIj09dHlwZW9mIHQ/dGhpcy5ldmVudE1hbmFnZXIuYWRkR2xvYmFsRXZlbnRMaXN0ZW5lcih0LGUsVHgobikpOnRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodCxlLFR4KG4pKX19Y29uc3QgSHg9IkAiLmNoYXJDb2RlQXQoMCk7ZnVuY3Rpb24gRngodCxlKXtpZih0LmNoYXJDb2RlQXQoMCk9PT1IeCl0aHJvdyBuZXcgRXJyb3IoYEZvdW5kIHRoZSBzeW50aGV0aWMgJHtlfSAke3R9LiBQbGVhc2UgaW5jbHVkZSBlaXRoZXIgIkJyb3dzZXJBbmltYXRpb25zTW9kdWxlIiBvciAiTm9vcEFuaW1hdGlvbnNNb2R1bGUiIGluIHlvdXIgYXBwbGljYXRpb24uYCl9Y2xhc3MgTHggZXh0ZW5kcyBJeHtjb25zdHJ1Y3Rvcih0LGUsbixvKXtzdXBlcih0KSx0aGlzLmNvbXBvbmVudD1uO2NvbnN0IGk9QXgobysiLSIrbi5pZCxuLnN0eWxlcyxbXSk7ZS5hZGRTdHlsZXMoaSksdGhpcy5jb250ZW50QXR0cj0oZnVuY3Rpb24gYSh0KXtyZXR1cm4gRXgucmVwbGFjZShTeCx0KX0pKG8rIi0iK24uaWQpLHRoaXMuaG9zdEF0dHI9KGZ1bmN0aW9uIHIodCl7cmV0dXJuIFJ4LnJlcGxhY2UoU3gsdCl9KShvKyItIituLmlkKX1hcHBseVRvSG9zdCh0KXtzdXBlci5zZXRBdHRyaWJ1dGUodCx0aGlzLmhvc3RBdHRyLCIiKX1jcmVhdGVFbGVtZW50KHQsZSl7Y29uc3Qgbj1zdXBlci5jcmVhdGVFbGVtZW50KHQsZSk7cmV0dXJuIHN1cGVyLnNldEF0dHJpYnV0ZShuLHRoaXMuY29udGVudEF0dHIsIiIpLG59fWNsYXNzIEJ4IGV4dGVuZHMgSXh7Y29uc3RydWN0b3IodCxlLG4sbyl7c3VwZXIodCksdGhpcy5zaGFyZWRTdHlsZXNIb3N0PWUsdGhpcy5ob3N0RWw9bix0aGlzLnNoYWRvd1Jvb3Q9bi5hdHRhY2hTaGFkb3coe21vZGU6Im9wZW4ifSksdGhpcy5zaGFyZWRTdHlsZXNIb3N0LmFkZEhvc3QodGhpcy5zaGFkb3dSb290KTtjb25zdCBpPUF4KG8uaWQsby5zdHlsZXMsW10pO2ZvcihsZXQgdD0wO3Q8aS5sZW5ndGg7dCsrKXtjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7ZS50ZXh0Q29udGVudD1pW3RdLHRoaXMuc2hhZG93Um9vdC5hcHBlbmRDaGlsZChlKX19bm9kZU9yU2hhZG93Um9vdCh0KXtyZXR1cm4gdD09PXRoaXMuaG9zdEVsP3RoaXMuc2hhZG93Um9vdDp0fWRlc3Ryb3koKXt0aGlzLnNoYXJlZFN0eWxlc0hvc3QucmVtb3ZlSG9zdCh0aGlzLnNoYWRvd1Jvb3QpfWFwcGVuZENoaWxkKHQsZSl7cmV0dXJuIHN1cGVyLmFwcGVuZENoaWxkKHRoaXMubm9kZU9yU2hhZG93Um9vdCh0KSxlKX1pbnNlcnRCZWZvcmUodCxlLG4pe3JldHVybiBzdXBlci5pbnNlcnRCZWZvcmUodGhpcy5ub2RlT3JTaGFkb3dSb290KHQpLGUsbil9cmVtb3ZlQ2hpbGQodCxlKXtyZXR1cm4gc3VwZXIucmVtb3ZlQ2hpbGQodGhpcy5ub2RlT3JTaGFkb3dSb290KHQpLGUpfXBhcmVudE5vZGUodCl7cmV0dXJuIHRoaXMubm9kZU9yU2hhZG93Um9vdChzdXBlci5wYXJlbnROb2RlKHRoaXMubm9kZU9yU2hhZG93Um9vdCh0KSkpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgVnggZXh0ZW5kcyB4eHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1zdXBwb3J0cyh0KXtyZXR1cm4hMH1hZGRFdmVudExpc3RlbmVyKHQsZSxuKXtyZXR1cm4gdC5hZGRFdmVudExpc3RlbmVyKGUsbiwhMSksKCk9PnRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LGUsbil9cmVtb3ZlRXZlbnRMaXN0ZW5lcih0LGUsbil7cmV0dXJuIHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLG4pfX1WeC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VngpKFRyKHNNKSl9LFZ4Lsm1cHJvdj1Tbih7dG9rZW46VngsZmFjdG9yeTpWeC7JtWZhY30pLFZ4LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihWeCxbe3R5cGU6VW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IGp4PXtwYW46ITAscGFuc3RhcnQ6ITAscGFubW92ZTohMCxwYW5lbmQ6ITAscGFuY2FuY2VsOiEwLHBhbmxlZnQ6ITAscGFucmlnaHQ6ITAscGFudXA6ITAscGFuZG93bjohMCxwaW5jaDohMCxwaW5jaHN0YXJ0OiEwLHBpbmNobW92ZTohMCxwaW5jaGVuZDohMCxwaW5jaGNhbmNlbDohMCxwaW5jaGluOiEwLHBpbmNob3V0OiEwLHByZXNzOiEwLHByZXNzdXA6ITAscm90YXRlOiEwLHJvdGF0ZXN0YXJ0OiEwLHJvdGF0ZW1vdmU6ITAscm90YXRlZW5kOiEwLHJvdGF0ZWNhbmNlbDohMCxzd2lwZTohMCxzd2lwZWxlZnQ6ITAsc3dpcGVyaWdodDohMCxzd2lwZXVwOiEwLHN3aXBlZG93bjohMCx0YXA6ITAsZG91YmxldGFwOiEwfSxVeD1uZXcgZXIoIkhhbW1lckdlc3R1cmVDb25maWciKSxXeD1uZXcgZXIoIkhhbW1lckxvYWRlciIpO2NsYXNzIEd4e2NvbnN0cnVjdG9yKCl7dGhpcy5ldmVudHM9W10sdGhpcy5vdmVycmlkZXM9e319YnVpbGRIYW1tZXIodCl7Y29uc3QgZT1uZXcgSGFtbWVyKHQsdGhpcy5vcHRpb25zKTtlLmdldCgicGluY2giKS5zZXQoe2VuYWJsZTohMH0pLGUuZ2V0KCJyb3RhdGUiKS5zZXQoe2VuYWJsZTohMH0pO2Zvcihjb25zdCB0IGluIHRoaXMub3ZlcnJpZGVzKWUuZ2V0KHQpLnNldCh0aGlzLm92ZXJyaWRlc1t0XSk7cmV0dXJuIGV9fUd4Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxHeCl9LEd4Lsm1cHJvdj1Tbih7dG9rZW46R3gsZmFjdG9yeTpHeC7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoR3gsW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW119KSxudWxsKTtjbGFzcyBZeCBleHRlbmRzIHh4e2NvbnN0cnVjdG9yKHQsZSxuLG8pe3N1cGVyKHQpLHRoaXMuX2NvbmZpZz1lLHRoaXMuY29uc29sZT1uLHRoaXMubG9hZGVyPW8sdGhpcy5fbG9hZGVyUHJvbWlzZT1udWxsfXN1cHBvcnRzKHQpe3JldHVybiEoIWp4Lmhhc093blByb3BlcnR5KHQudG9Mb3dlckNhc2UoKSkmJiF0aGlzLmlzQ3VzdG9tRXZlbnQodCkpJiYoISghd2luZG93LkhhbW1lciYmIXRoaXMubG9hZGVyKXx8KCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmdGhpcy5jb25zb2xlLndhcm4oYFRoZSAiJHt0fSIgZXZlbnQgY2Fubm90IGJlIGJvdW5kIGJlY2F1c2UgSGFtbWVyLkpTIGlzIG5vdCBsb2FkZWQgYW5kIG5vIGN1c3RvbSBsb2FkZXIgaGFzIGJlZW4gc3BlY2lmaWVkLmApLCExKSl9YWRkRXZlbnRMaXN0ZW5lcih0LGUsbil7Y29uc3Qgbz10aGlzLm1hbmFnZXIuZ2V0Wm9uZSgpO2lmKGU9ZS50b0xvd2VyQ2FzZSgpLCF3aW5kb3cuSGFtbWVyJiZ0aGlzLmxvYWRlcil7dGhpcy5fbG9hZGVyUHJvbWlzZT10aGlzLl9sb2FkZXJQcm9taXNlfHx0aGlzLmxvYWRlcigpO2xldCBvPSExLGk9KCk9PntvPSEwfTtyZXR1cm4gdGhpcy5fbG9hZGVyUHJvbWlzZS50aGVuKCgoKT0+e2lmKCF3aW5kb3cuSGFtbWVyKXJldHVybigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmdGhpcy5jb25zb2xlLndhcm4oIlRoZSBjdXN0b20gSEFNTUVSX0xPQURFUiBjb21wbGV0ZWQsIGJ1dCBIYW1tZXIuSlMgaXMgbm90IHByZXNlbnQuIiksdm9pZChpPSgpPT57fSk7b3x8KGk9dGhpcy5hZGRFdmVudExpc3RlbmVyKHQsZSxuKSl9KSkuY2F0Y2goKCgpPT57KCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZ0aGlzLmNvbnNvbGUud2FybihgVGhlICIke2V9IiBldmVudCBjYW5ub3QgYmUgYm91bmQgYmVjYXVzZSB0aGUgY3VzdG9tIEhhbW1lci5KUyBsb2FkZXIgZmFpbGVkLmApLGk9KCk9Pnt9fSkpLCgpPT57aSgpfX1yZXR1cm4gby5ydW5PdXRzaWRlQW5ndWxhcigoKCk9Pntjb25zdCBpPXRoaXMuX2NvbmZpZy5idWlsZEhhbW1lcih0KSxhPWZ1bmN0aW9uKHQpe28ucnVuR3VhcmRlZCgoZnVuY3Rpb24oKXtuKHQpfSkpfTtyZXR1cm4gaS5vbihlLGEpLCgpPT57aS5vZmYoZSxhKSwiZnVuY3Rpb24iPT10eXBlb2YgaS5kZXN0cm95JiZpLmRlc3Ryb3koKX19KSl9aXNDdXN0b21FdmVudCh0KXtyZXR1cm4gdGhpcy5fY29uZmlnLmV2ZW50cy5pbmRleE9mKHQpPi0xfX1ZeC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WXgpKFRyKHNNKSxUcihVeCksVHIoSl8pLFRyKFd4LDgpKX0sWXguybVwcm92PVNuKHt0b2tlbjpZeCxmYWN0b3J5Oll4Lsm1ZmFjfSksWXguY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19LHt0eXBlOkd4LGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W1V4XX1dfSx7dHlwZTpKX30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltXeF19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoWXgsW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX0se3R5cGU6R3gsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbVXhdfV19LHt0eXBlOkpffSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W1d4XX1dfV19KSxudWxsKTtjb25zdCBxeD1be3Byb3ZpZGU6TXgsdXNlQ2xhc3M6WXgsbXVsdGk6ITAsZGVwczpbc00sVXgsSl8sW25ldyBCcixXeF1dfSx7cHJvdmlkZTpVeCx1c2VDbGFzczpHeCxkZXBzOltdfV0sWng9W107Y2xhc3MgWHh7fVh4Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxYeCl9LFh4Lsm1bW9kPWZvKHt0eXBlOlh4fSksWHguybVpbmo9RG4oe3Byb3ZpZGVyczpxeH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoWHgsW3t0eXBlOkxfLGFyZ3M6W3twcm92aWRlcnM6cXh9XX1dLG51bGwsbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBLeD1bImFsdCIsImNvbnRyb2wiLCJtZXRhIiwic2hpZnQiXSxKeD17IlxiIjoiQmFja3NwYWNlIiwiXHQiOiJUYWIiLCJ/IjoiRGVsZXRlIiwiGyI6IkVzY2FwZSIsRGVsOiJEZWxldGUiLEVzYzoiRXNjYXBlIixMZWZ0OiJBcnJvd0xlZnQiLFJpZ2h0OiJBcnJvd1JpZ2h0IixVcDoiQXJyb3dVcCIsRG93bjoiQXJyb3dEb3duIixNZW51OiJDb250ZXh0TWVudSIsU2Nyb2xsOiJTY3JvbGxMb2NrIixXaW46Ik9TIn0sUXg9e0E6IjEiLEI6IjIiLEM6IjMiLEQ6IjQiLEU6IjUiLEY6IjYiLEc6IjciLEg6IjgiLEk6IjkiLEo6IioiLEs6IisiLE06Ii0iLE46Ii4iLE86Ii8iLCJgIjoiMCIsIsKQIjoiTnVtTG9jayJ9LCR4PXthbHQ6dD0+dC5hbHRLZXksY29udHJvbDp0PT50LmN0cmxLZXksbWV0YTp0PT50Lm1ldGFLZXksc2hpZnQ6dD0+dC5zaGlmdEtleX07Y2xhc3MgdE8gZXh0ZW5kcyB4eHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KX1zdXBwb3J0cyh0KXtyZXR1cm4gbnVsbCE9dE8ucGFyc2VFdmVudE5hbWUodCl9YWRkRXZlbnRMaXN0ZW5lcih0LGUsbil7Y29uc3Qgbz10Ty5wYXJzZUV2ZW50TmFtZShlKSxpPXRPLmV2ZW50Q2FsbGJhY2soby5mdWxsS2V5LG4sdGhpcy5tYW5hZ2VyLmdldFpvbmUoKSk7cmV0dXJuIHRoaXMubWFuYWdlci5nZXRab25lKCkucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT5yTSgpLm9uQW5kQ2FuY2VsKHQsby5kb21FdmVudE5hbWUsaSkpKX1zdGF0aWMgcGFyc2VFdmVudE5hbWUodCl7Y29uc3QgZT10LnRvTG93ZXJDYXNlKCkuc3BsaXQoIi4iKSxuPWUuc2hpZnQoKTtpZigwPT09ZS5sZW5ndGh8fCJrZXlkb3duIiE9PW4mJiJrZXl1cCIhPT1uKXJldHVybiBudWxsO2NvbnN0IG89dE8uX25vcm1hbGl6ZUtleShlLnBvcCgpKTtsZXQgaT0iIjtpZihLeC5mb3JFYWNoKCh0PT57Y29uc3Qgbj1lLmluZGV4T2YodCk7bj4tMSYmKGUuc3BsaWNlKG4sMSksaSs9dCsiLiIpfSkpLGkrPW8sMCE9ZS5sZW5ndGh8fDA9PT1vLmxlbmd0aClyZXR1cm4gbnVsbDtjb25zdCBhPXt9O3JldHVybiBhLmRvbUV2ZW50TmFtZT1uLGEuZnVsbEtleT1pLGF9c3RhdGljIGdldEV2ZW50RnVsbEtleSh0KXtsZXQgZT0iIixuPShmdW5jdGlvbiBvKHQpe2xldCBlPXQua2V5O2lmKG51bGw9PWUpe2lmKGU9dC5rZXlJZGVudGlmaWVyLG51bGw9PWUpcmV0dXJuIlVuaWRlbnRpZmllZCI7ZS5zdGFydHNXaXRoKCJVKyIpJiYoZT1TdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGUuc3Vic3RyaW5nKDIpLDE2KSksMz09PXQubG9jYXRpb24mJlF4Lmhhc093blByb3BlcnR5KGUpJiYoZT1ReFtlXSkpfXJldHVybiBKeFtlXXx8ZX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSh0KTtyZXR1cm4gbj1uLnRvTG93ZXJDYXNlKCksIiAiPT09bj9uPSJzcGFjZSI6Ii4iPT09biYmKG49ImRvdCIpLEt4LmZvckVhY2goKG89PntpZihvIT1uKXsoMCwkeFtvXSkodCkmJihlKz1vKyIuIil9fSkpLGUrPW4sZX1zdGF0aWMgZXZlbnRDYWxsYmFjayh0LGUsbil7cmV0dXJuIG89Pnt0Ty5nZXRFdmVudEZ1bGxLZXkobyk9PT10JiZuLnJ1bkd1YXJkZWQoKCgpPT5lKG8pKSl9fXN0YXRpYyBfbm9ybWFsaXplS2V5KHQpe3N3aXRjaCh0KXtjYXNlImVzYyI6cmV0dXJuImVzY2FwZSI7ZGVmYXVsdDpyZXR1cm4gdH19fXRPLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx0TykoVHIoc00pKX0sdE8uybVwcm92PVNuKHt0b2tlbjp0TyxmYWN0b3J5OnRPLsm1ZmFjfSksdE8uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHRPLFt7dHlwZTpVbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19XX0pLG51bGwpO2NsYXNzIGVPe31mdW5jdGlvbiBuTyh0KXtyZXR1cm4gbmV3IG9PKHQuZ2V0KHNNKSl9ZU8uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGVPKX0sZU8uybVwcm92PVNuKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gVHIob08pfSx0b2tlbjplTyxwcm92aWRlZEluOiJyb290In0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZU8sW3t0eXBlOlVtLGFyZ3M6W3twcm92aWRlZEluOiJyb290Iix1c2VFeGlzdGluZzokZSgoKCk9Pm9PKSl9XX1dLG51bGwsbnVsbCk7Y2xhc3Mgb08gZXh0ZW5kcyBlT3tjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuX2RvYz10fXNhbml0aXplKHQsZSl7aWYobnVsbD09ZSlyZXR1cm4gbnVsbDtzd2l0Y2godCl7Y2FzZSBZcy5OT05FOnJldHVybiBlO2Nhc2UgWXMuSFRNTDpyZXR1cm4gZ3MoZSwiSFRNTCIpP3VzKGUpOldzKHRoaXMuX2RvYyxTdHJpbmcoZSkpLnRvU3RyaW5nKCk7Y2FzZSBZcy5TVFlMRTpyZXR1cm4gZ3MoZSwiU3R5bGUiKT91cyhlKTplO2Nhc2UgWXMuU0NSSVBUOmlmKGdzKGUsIlNjcmlwdCIpKXJldHVybiB1cyhlKTt0aHJvdyBuZXcgRXJyb3IoInVuc2FmZSB2YWx1ZSB1c2VkIGluIGEgc2NyaXB0IGNvbnRleHQiKTtjYXNlIFlzLlVSTDpyZXR1cm4gaHMoZSksZ3MoZSwiVVJMIik/dXMoZSk6dnMoU3RyaW5nKGUpKTtjYXNlIFlzLlJFU09VUkNFX1VSTDppZihncyhlLCJSZXNvdXJjZVVSTCIpKXJldHVybiB1cyhlKTt0aHJvdyBuZXcgRXJyb3IoInVuc2FmZSB2YWx1ZSB1c2VkIGluIGEgcmVzb3VyY2UgVVJMIGNvbnRleHQgKHNlZSBodHRwczovL2cuY28vbmcvc2VjdXJpdHkjeHNzKSIpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIFNlY3VyaXR5Q29udGV4dCAke3R9IChzZWUgaHR0cHM6Ly9nLmNvL25nL3NlY3VyaXR5I3hzcylgKX19YnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuIG5ldyBjcyh0KX0pKHQpfWJ5cGFzc1NlY3VyaXR5VHJ1c3RTdHlsZSh0KXtyZXR1cm4oZnVuY3Rpb24gZSh0KXtyZXR1cm4gbmV3IGRzKHQpfSkodCl9YnlwYXNzU2VjdXJpdHlUcnVzdFNjcmlwdCh0KXtyZXR1cm4oZnVuY3Rpb24gZSh0KXtyZXR1cm4gbmV3IHBzKHQpfSkodCl9YnlwYXNzU2VjdXJpdHlUcnVzdFVybCh0KXtyZXR1cm4oZnVuY3Rpb24gZSh0KXtyZXR1cm4gbmV3IG1zKHQpfSkodCl9YnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHQpe3JldHVybihmdW5jdGlvbiBlKHQpe3JldHVybiBuZXcgZnModCl9KSh0KX19b08uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG9PKShUcihzTSkpfSxvTy7JtXByb3Y9U24oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuTyhUcih5cCkpfSx0b2tlbjpvTyxwcm92aWRlZEluOiJyb290In0pLG9PLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihvTyxbe3R5cGU6VW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QiLHVzZUZhY3Rvcnk6bk8sZGVwczpbTnBdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfV19KSxudWxsKTtjb25zdCBpTz1bXSxhTz1UQyhXQywiYnJvd3NlciIsW3twcm92aWRlOlhfLHVzZVZhbHVlOiJicm93c2VyIn0se3Byb3ZpZGU6Wl8sdXNlVmFsdWU6Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiByTygpe214Lm1ha2VDdXJyZW50KCkseXguaW5pdCgpfSxtdWx0aTohMH0se3Byb3ZpZGU6c00sdXNlRmFjdG9yeTpmdW5jdGlvbiBzTygpe3JldHVybihmdW5jdGlvbiB0KGUpe29pPWV9KShkb2N1bWVudCksZG9jdW1lbnR9LGRlcHM6W119XSksbE89W2lPLHtwcm92aWRlOkNwLHVzZVZhbHVlOiJyb290In0se3Byb3ZpZGU6dWwsdXNlRmFjdG9yeTpmdW5jdGlvbiBjTygpe3JldHVybiBuZXcgdWx9LGRlcHM6W119LHtwcm92aWRlOk14LHVzZUNsYXNzOlZ4LG11bHRpOiEwLGRlcHM6W3NNLG1DLFhfXX0se3Byb3ZpZGU6TXgsdXNlQ2xhc3M6dE8sbXVsdGk6ITAsZGVwczpbc01dfSxaeCx7cHJvdmlkZTp6eCx1c2VDbGFzczp6eCxkZXBzOlt2eCxQeCxXX119LHtwcm92aWRlOlFoLHVzZUV4aXN0aW5nOnp4fSx7cHJvdmlkZTpPeCx1c2VFeGlzdGluZzpQeH0se3Byb3ZpZGU6UHgsdXNlQ2xhc3M6UHgsZGVwczpbc01dfSx7cHJvdmlkZTpfQyx1c2VDbGFzczpfQyxkZXBzOlttQ119LHtwcm92aWRlOnZ4LHVzZUNsYXNzOnZ4LGRlcHM6W014LG1DXX0se3Byb3ZpZGU6cHgsdXNlQ2xhc3M6X3gsZGVwczpbXX0sQ3hdO2NsYXNzIGRPe2NvbnN0cnVjdG9yKHQpe2lmKHQpdGhyb3cgbmV3IEVycm9yKCJCcm93c2VyTW9kdWxlIGhhcyBhbHJlYWR5IGJlZW4gbG9hZGVkLiBJZiB5b3UgbmVlZCBhY2Nlc3MgdG8gY29tbW9uIGRpcmVjdGl2ZXMgc3VjaCBhcyBOZ0lmIGFuZCBOZ0ZvciBmcm9tIGEgbGF6eSBsb2FkZWQgbW9kdWxlLCBpbXBvcnQgQ29tbW9uTW9kdWxlIGluc3RlYWQuIil9c3RhdGljIHdpdGhTZXJ2ZXJUcmFuc2l0aW9uKHQpe3JldHVybntuZ01vZHVsZTpkTyxwcm92aWRlcnM6W3twcm92aWRlOldfLHVzZVZhbHVlOnQuYXBwSWR9LHtwcm92aWRlOmd4LHVzZUV4aXN0aW5nOldffSxoeF19fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIHBPKCl7cmV0dXJuIG5ldyBtTyhUcihzTSkpfWRPLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxkTykoVHIoZE8sMTIpKX0sZE8uybVtb2Q9Zm8oe3R5cGU6ZE99KSxkTy7JtWluaj1Ebih7cHJvdmlkZXJzOmxPLGltcG9ydHM6W3J4LEtDXX0pLGRPLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6ZE8sZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOmpyfSx7dHlwZTpMcixhcmdzOltkT119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZE8sW3t0eXBlOkxfLGFyZ3M6W3twcm92aWRlcnM6bE8sZXhwb3J0czpbcngsS0NdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6ZE8sZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOmpyfSx7dHlwZTpMcixhcmdzOltkT119XX1dfSksbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhkTyx7ZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltyeCxLQ119fSk7Y2xhc3MgbU97Y29uc3RydWN0b3IodCl7dGhpcy5fZG9jPXQsdGhpcy5fZG9tPXJNKCl9YWRkVGFnKHQsZT0hMSl7cmV0dXJuIHQ/dGhpcy5fZ2V0T3JDcmVhdGVFbGVtZW50KHQsZSk6bnVsbH1hZGRUYWdzKHQsZT0hMSl7cmV0dXJuIHQ/dC5yZWR1Y2UoKCh0LG4pPT4obiYmdC5wdXNoKHRoaXMuX2dldE9yQ3JlYXRlRWxlbWVudChuLGUpKSx0KSksW10pOltdfWdldFRhZyh0KXtyZXR1cm4gdCYmdGhpcy5fZG9jLnF1ZXJ5U2VsZWN0b3IoYG1ldGFbJHt0fV1gKXx8bnVsbH1nZXRUYWdzKHQpe2lmKCF0KXJldHVybltdO2NvbnN0IGU9dGhpcy5fZG9jLnF1ZXJ5U2VsZWN0b3JBbGwoYG1ldGFbJHt0fV1gKTtyZXR1cm4gZT9bXS5zbGljZS5jYWxsKGUpOltdfXVwZGF0ZVRhZyh0LGUpe2lmKCF0KXJldHVybiBudWxsO2U9ZXx8dGhpcy5fcGFyc2VTZWxlY3Rvcih0KTtjb25zdCBuPXRoaXMuZ2V0VGFnKGUpO3JldHVybiBuP3RoaXMuX3NldE1ldGFFbGVtZW50QXR0cmlidXRlcyh0LG4pOnRoaXMuX2dldE9yQ3JlYXRlRWxlbWVudCh0LCEwKX1yZW1vdmVUYWcodCl7dGhpcy5yZW1vdmVUYWdFbGVtZW50KHRoaXMuZ2V0VGFnKHQpKX1yZW1vdmVUYWdFbGVtZW50KHQpe3QmJnRoaXMuX2RvbS5yZW1vdmUodCl9X2dldE9yQ3JlYXRlRWxlbWVudCh0LGU9ITEpe2lmKCFlKXtjb25zdCBlPXRoaXMuX3BhcnNlU2VsZWN0b3IodCksbj10aGlzLmdldFRhZ3MoZSkuZmlsdGVyKChlPT50aGlzLl9jb250YWluc0F0dHJpYnV0ZXModCxlKSkpWzBdO2lmKHZvaWQgMCE9PW4pcmV0dXJuIG59Y29uc3Qgbj10aGlzLl9kb20uY3JlYXRlRWxlbWVudCgibWV0YSIpO3RoaXMuX3NldE1ldGFFbGVtZW50QXR0cmlidXRlcyh0LG4pO3JldHVybiB0aGlzLl9kb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChuKSxufV9zZXRNZXRhRWxlbWVudEF0dHJpYnV0ZXModCxlKXtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaCgobj0+ZS5zZXRBdHRyaWJ1dGUodGhpcy5fZ2V0TWV0YUtleU1hcChuKSx0W25dKSkpLGV9X3BhcnNlU2VsZWN0b3IodCl7Y29uc3QgZT10Lm5hbWU/Im5hbWUiOiJwcm9wZXJ0eSI7cmV0dXJuYCR7ZX09IiR7dFtlXX0iYH1fY29udGFpbnNBdHRyaWJ1dGVzKHQsZSl7cmV0dXJuIE9iamVjdC5rZXlzKHQpLmV2ZXJ5KChuPT5lLmdldEF0dHJpYnV0ZSh0aGlzLl9nZXRNZXRhS2V5TWFwKG4pKT09PXRbbl0pKX1fZ2V0TWV0YUtleU1hcCh0KXtyZXR1cm4gZk9bdF18fHR9fW1PLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxtTykoVHIoc00pKX0sbU8uybVwcm92PVNuKHtmYWN0b3J5OnBPLHRva2VuOm1PLHByb3ZpZGVkSW46InJvb3QifSksbU8uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKG1PLFt7dHlwZTpVbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCIsdXNlRmFjdG9yeTpwTyxkZXBzOltdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfV19KSxudWxsKTtjb25zdCBmTz17aHR0cEVxdWl2OiJodHRwLWVxdWl2In07Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIHVPKCl7cmV0dXJuIG5ldyBnTyhUcihzTSkpfWNsYXNzIGdPe2NvbnN0cnVjdG9yKHQpe3RoaXMuX2RvYz10fWdldFRpdGxlKCl7cmV0dXJuIHRoaXMuX2RvYy50aXRsZX1zZXRUaXRsZSh0KXt0aGlzLl9kb2MudGl0bGU9dHx8IiJ9fWdPLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxnTykoVHIoc00pKX0sZ08uybVwcm92PVNuKHtmYWN0b3J5OnVPLHRva2VuOmdPLHByb3ZpZGVkSW46InJvb3QifSksZ08uY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGdPLFt7dHlwZTpVbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCIsdXNlRmFjdG9yeTp1TyxkZXBzOltdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfV19KSxudWxsKTtjbGFzcyBoT3tjb25zdHJ1Y3Rvcigpe3RoaXMuc3RvcmU9e30sdGhpcy5vblNlcmlhbGl6ZUNhbGxiYWNrcz17fX1zdGF0aWMgaW5pdCh0KXtjb25zdCBlPW5ldyBoTztyZXR1cm4gZS5zdG9yZT10LGV9Z2V0KHQsZSl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuc3RvcmVbdF0/dGhpcy5zdG9yZVt0XTplfXNldCh0LGUpe3RoaXMuc3RvcmVbdF09ZX1yZW1vdmUodCl7ZGVsZXRlIHRoaXMuc3RvcmVbdF19aGFzS2V5KHQpe3JldHVybiB0aGlzLnN0b3JlLmhhc093blByb3BlcnR5KHQpfW9uU2VyaWFsaXplKHQsZSl7dGhpcy5vblNlcmlhbGl6ZUNhbGxiYWNrc1t0XT1lfXRvSnNvbigpe2Zvcihjb25zdCB0IGluIHRoaXMub25TZXJpYWxpemVDYWxsYmFja3MpaWYodGhpcy5vblNlcmlhbGl6ZUNhbGxiYWNrcy5oYXNPd25Qcm9wZXJ0eSh0KSl0cnl7dGhpcy5zdG9yZVt0XT10aGlzLm9uU2VyaWFsaXplQ2FsbGJhY2tzW3RdKCl9Y2F0Y2godCl7Y29uc29sZS53YXJuKCJFeGNlcHRpb24gaW4gb25TZXJpYWxpemUgY2FsbGJhY2s6ICIsdCl9cmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMuc3RvcmUpfX1mdW5jdGlvbiBiTyh0LGUpe2NvbnN0IG49dC5nZXRFbGVtZW50QnlJZChlKyItc3RhdGUiKTtsZXQgbz17fTtpZihuJiZuLnRleHRDb250ZW50KXRyeXtvPUpTT04ucGFyc2UoKGZ1bmN0aW9uIGkodCl7Y29uc3QgZT17IiZhOyI6IiYiLCImcTsiOiciJywiJnM7IjoiJyIsIiZsOyI6IjwiLCImZzsiOiI+In07cmV0dXJuIHQucmVwbGFjZSgvJlteO10rOy9nLCh0PT5lW3RdKSl9KShuLnRleHRDb250ZW50KSl9Y2F0Y2godCl7Y29uc29sZS53YXJuKCJFeGNlcHRpb24gd2hpbGUgcmVzdG9yaW5nIFRyYW5zZmVyU3RhdGUgZm9yIGFwcCAiK2UsdCl9cmV0dXJuIGhPLmluaXQobyl9aE8uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGhPKX0saE8uybVwcm92PVNuKHt0b2tlbjpoTyxmYWN0b3J5OmhPLsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihoTyxbe3R5cGU6VW19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLG51bGwpO2NsYXNzIHlPe315Ty7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8eU8pfSx5Ty7JtW1vZD1mbyh7dHlwZTp5T30pLHlPLsm1aW5qPURuKHtwcm92aWRlcnM6W3twcm92aWRlOmhPLHVzZUZhY3Rvcnk6Yk8sZGVwczpbc00sV19dfV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHlPLFt7dHlwZTpMXyxhcmdzOlt7cHJvdmlkZXJzOlt7cHJvdmlkZTpoTyx1c2VGYWN0b3J5OmJPLGRlcHM6W3NNLFdfXX1dfV19XSxudWxsLG51bGwpLAovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCm5ldyBvYigiMTIuMi4xIik7dmFyIF9PPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e307ZnVuY3Rpb24gQ08odCl7aWYodC5fX2VzTW9kdWxlKXJldHVybiB0O3ZhciBlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKG4pe3ZhciBvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLG8uZ2V0P286e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbbl19fSl9KSksZX0KLyoqCiAgICAgKiBAbGljZW5zZSBBbmd1bGFyIHYxMi4wLjAtbmV4dC4wCiAgICAgKiAoYykgMjAxMC0yMDIwIEdvb2dsZSBMTEMuIGh0dHBzOi8vYW5ndWxhci5pby8KICAgICAqIExpY2Vuc2U6IE1JVAogICAgICovIShmdW5jdGlvbigpewovKioKICAgICAgICAgKiBAbGljZW5zZQogICAgICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgICAgICoKICAgICAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAgICAgKi8KIShmdW5jdGlvbih0KXt2YXIgZT10LnBlcmZvcm1hbmNlO2Z1bmN0aW9uIG4odCl7ZSYmZS5tYXJrJiZlLm1hcmsodCl9ZnVuY3Rpb24gbyh0LG4pe2UmJmUubWVhc3VyZSYmZS5tZWFzdXJlKHQsbil9bigiWm9uZSIpO3ZhciBpPXQuX19ab25lX3N5bWJvbF9wcmVmaXh8fCJfX3pvbmVfc3ltYm9sX18iO2Z1bmN0aW9uIGEodCl7cmV0dXJuIGkrdH12YXIgcj0hMD09PXRbYSgiZm9yY2VEdXBsaWNhdGVab25lQ2hlY2siKV07aWYodC5ab25lKXtpZihyfHwiZnVuY3Rpb24iIT10eXBlb2YgdC5ab25lLl9fc3ltYm9sX18pdGhyb3cgbmV3IEVycm9yKCJab25lIGFscmVhZHkgbG9hZGVkLiIpO3JldHVybiB0LlpvbmV9dmFyIHM9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LGUpe3RoaXMuX3BhcmVudD10LHRoaXMuX25hbWU9ZT9lLm5hbWV8fCJ1bm5hbWVkIjoiPHJvb3Q+Iix0aGlzLl9wcm9wZXJ0aWVzPWUmJmUucHJvcGVydGllc3x8e30sdGhpcy5fem9uZURlbGVnYXRlPW5ldyBkKHRoaXMsdGhpcy5fcGFyZW50JiZ0aGlzLl9wYXJlbnQuX3pvbmVEZWxlZ2F0ZSxlKX1yZXR1cm4gZS5hc3NlcnRab25lUGF0Y2hlZD1mdW5jdGlvbigpe2lmKHQuUHJvbWlzZSE9PUQuWm9uZUF3YXJlUHJvbWlzZSl0aHJvdyBuZXcgRXJyb3IoIlpvbmUuanMgaGFzIGRldGVjdGVkIHRoYXQgWm9uZUF3YXJlUHJvbWlzZSBgKHdpbmRvd3xnbG9iYWwpLlByb21pc2VgIGhhcyBiZWVuIG92ZXJ3cml0dGVuLlxuTW9zdCBsaWtlbHkgY2F1c2UgaXMgdGhhdCBhIFByb21pc2UgcG9seWZpbGwgaGFzIGJlZW4gbG9hZGVkIGFmdGVyIFpvbmUuanMgKFBvbHlmaWxsaW5nIFByb21pc2UgYXBpIGlzIG5vdCBuZWNlc3Nhcnkgd2hlbiB6b25lLmpzIGlzIGxvYWRlZC4gSWYgeW91IG11c3QgbG9hZCBvbmUsIGRvIHNvIGJlZm9yZSBsb2FkaW5nIHpvbmUuanMuKSIpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicm9vdCIse2dldDpmdW5jdGlvbigpe2Zvcih2YXIgdD1lLmN1cnJlbnQ7dC5wYXJlbnQ7KXQ9dC5wYXJlbnQ7cmV0dXJuIHR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImN1cnJlbnQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRS56b25lfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJjdXJyZW50VGFzayIse2dldDpmdW5jdGlvbigpe3JldHVybiBBfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUuX19sb2FkX3BhdGNoPWZ1bmN0aW9uKGksYSxzKXtpZih2b2lkIDA9PT1zJiYocz0hMSksRC5oYXNPd25Qcm9wZXJ0eShpKSl7aWYoIXMmJnIpdGhyb3cgRXJyb3IoIkFscmVhZHkgbG9hZGVkIHBhdGNoOiAiK2kpfWVsc2UgaWYoIXRbIl9fWm9uZV9kaXNhYmxlXyIraV0pe3ZhciBsPSJab25lOiIraTtuKGwpLERbaV09YSh0LGUsUiksbyhsLGwpfX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJwYXJlbnQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcGFyZW50fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwibmFtZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9uYW1lfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdldFpvbmVXaXRoKHQpO2lmKGUpcmV0dXJuIGUuX3Byb3BlcnRpZXNbdF19LGUucHJvdG90eXBlLmdldFpvbmVXaXRoPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzO2U7KXtpZihlLl9wcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KHQpKXJldHVybiBlO2U9ZS5fcGFyZW50fXJldHVybiBudWxsfSxlLnByb3RvdHlwZS5mb3JrPWZ1bmN0aW9uKHQpe2lmKCF0KXRocm93IG5ldyBFcnJvcigiWm9uZVNwZWMgcmVxdWlyZWQhIik7cmV0dXJuIHRoaXMuX3pvbmVEZWxlZ2F0ZS5mb3JrKHRoaXMsdCl9LGUucHJvdG90eXBlLndyYXA9ZnVuY3Rpb24odCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGluZyBmdW5jdGlvbiBnb3Q6ICIrdCk7dmFyIG49dGhpcy5fem9uZURlbGVnYXRlLmludGVyY2VwdCh0aGlzLHQsZSksbz10aGlzO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBvLnJ1bkd1YXJkZWQobix0aGlzLGFyZ3VtZW50cyxlKX19LGUucHJvdG90eXBlLnJ1bj1mdW5jdGlvbih0LGUsbixvKXtFPXtwYXJlbnQ6RSx6b25lOnRoaXN9O3RyeXtyZXR1cm4gdGhpcy5fem9uZURlbGVnYXRlLmludm9rZSh0aGlzLHQsZSxuLG8pfWZpbmFsbHl7RT1FLnBhcmVudH19LGUucHJvdG90eXBlLnJ1bkd1YXJkZWQ9ZnVuY3Rpb24odCxlLG4sbyl7dm9pZCAwPT09ZSYmKGU9bnVsbCksRT17cGFyZW50OkUsem9uZTp0aGlzfTt0cnl7dHJ5e3JldHVybiB0aGlzLl96b25lRGVsZWdhdGUuaW52b2tlKHRoaXMsdCxlLG4sbyl9Y2F0Y2godCl7aWYodGhpcy5fem9uZURlbGVnYXRlLmhhbmRsZUVycm9yKHRoaXMsdCkpdGhyb3cgdH19ZmluYWxseXtFPUUucGFyZW50fX0sZS5wcm90b3R5cGUucnVuVGFzaz1mdW5jdGlvbih0LGUsbil7aWYodC56b25lIT10aGlzKXRocm93IG5ldyBFcnJvcigiQSB0YXNrIGNhbiBvbmx5IGJlIHJ1biBpbiB0aGUgem9uZSBvZiBjcmVhdGlvbiEgKENyZWF0aW9uOiAiKyh0LnpvbmV8fF8pLm5hbWUrIjsgRXhlY3V0aW9uOiAiK3RoaXMubmFtZSsiKSIpO2lmKHQuc3RhdGUhPT1DfHx0LnR5cGUhPT1TJiZ0LnR5cGUhPT1rKXt2YXIgbz10LnN0YXRlIT14O28mJnQuX3RyYW5zaXRpb25Ubyh4LHYpLHQucnVuQ291bnQrKzt2YXIgaT1BO0E9dCxFPXtwYXJlbnQ6RSx6b25lOnRoaXN9O3RyeXt0LnR5cGU9PWsmJnQuZGF0YSYmIXQuZGF0YS5pc1BlcmlvZGljJiYodC5jYW5jZWxGbj12b2lkIDApO3RyeXtyZXR1cm4gdGhpcy5fem9uZURlbGVnYXRlLmludm9rZVRhc2sodGhpcyx0LGUsbil9Y2F0Y2godCl7aWYodGhpcy5fem9uZURlbGVnYXRlLmhhbmRsZUVycm9yKHRoaXMsdCkpdGhyb3cgdH19ZmluYWxseXt0LnN0YXRlIT09QyYmdC5zdGF0ZSE9PVAmJih0LnR5cGU9PVN8fHQuZGF0YSYmdC5kYXRhLmlzUGVyaW9kaWM/byYmdC5fdHJhbnNpdGlvblRvKHYseCk6KHQucnVuQ291bnQ9MCx0aGlzLl91cGRhdGVUYXNrQ291bnQodCwtMSksbyYmdC5fdHJhbnNpdGlvblRvKEMseCxDKSkpLEU9RS5wYXJlbnQsQT1pfX19LGUucHJvdG90eXBlLnNjaGVkdWxlVGFzaz1mdW5jdGlvbih0KXtpZih0LnpvbmUmJnQuem9uZSE9PXRoaXMpZm9yKHZhciBlPXRoaXM7ZTspe2lmKGU9PT10LnpvbmUpdGhyb3cgRXJyb3IoImNhbiBub3QgcmVzY2hlZHVsZSB0YXNrIHRvICIrdGhpcy5uYW1lKyIgd2hpY2ggaXMgZGVzY2VuZGFudHMgb2YgdGhlIG9yaWdpbmFsIHpvbmUgIit0LnpvbmUubmFtZSk7ZT1lLnBhcmVudH10Ll90cmFuc2l0aW9uVG8oTSxDKTt2YXIgbj1bXTt0Ll96b25lRGVsZWdhdGVzPW4sdC5fem9uZT10aGlzO3RyeXt0PXRoaXMuX3pvbmVEZWxlZ2F0ZS5zY2hlZHVsZVRhc2sodGhpcyx0KX1jYXRjaChlKXt0aHJvdyB0Ll90cmFuc2l0aW9uVG8oUCxNLEMpLHRoaXMuX3pvbmVEZWxlZ2F0ZS5oYW5kbGVFcnJvcih0aGlzLGUpLGV9cmV0dXJuIHQuX3pvbmVEZWxlZ2F0ZXM9PT1uJiZ0aGlzLl91cGRhdGVUYXNrQ291bnQodCwxKSx0LnN0YXRlPT1NJiZ0Ll90cmFuc2l0aW9uVG8odixNKSx0fSxlLnByb3RvdHlwZS5zY2hlZHVsZU1pY3JvVGFzaz1mdW5jdGlvbih0LGUsbixvKXtyZXR1cm4gdGhpcy5zY2hlZHVsZVRhc2sobmV3IHAodyx0LGUsbixvLHZvaWQgMCkpfSxlLnByb3RvdHlwZS5zY2hlZHVsZU1hY3JvVGFzaz1mdW5jdGlvbih0LGUsbixvLGkpe3JldHVybiB0aGlzLnNjaGVkdWxlVGFzayhuZXcgcChrLHQsZSxuLG8saSkpfSxlLnByb3RvdHlwZS5zY2hlZHVsZUV2ZW50VGFzaz1mdW5jdGlvbih0LGUsbixvLGkpe3JldHVybiB0aGlzLnNjaGVkdWxlVGFzayhuZXcgcChTLHQsZSxuLG8saSkpfSxlLnByb3RvdHlwZS5jYW5jZWxUYXNrPWZ1bmN0aW9uKHQpe2lmKHQuem9uZSE9dGhpcyl0aHJvdyBuZXcgRXJyb3IoIkEgdGFzayBjYW4gb25seSBiZSBjYW5jZWxsZWQgaW4gdGhlIHpvbmUgb2YgY3JlYXRpb24hIChDcmVhdGlvbjogIisodC56b25lfHxfKS5uYW1lKyI7IEV4ZWN1dGlvbjogIit0aGlzLm5hbWUrIikiKTt0Ll90cmFuc2l0aW9uVG8oTyx2LHgpO3RyeXt0aGlzLl96b25lRGVsZWdhdGUuY2FuY2VsVGFzayh0aGlzLHQpfWNhdGNoKGUpe3Rocm93IHQuX3RyYW5zaXRpb25UbyhQLE8pLHRoaXMuX3pvbmVEZWxlZ2F0ZS5oYW5kbGVFcnJvcih0aGlzLGUpLGV9cmV0dXJuIHRoaXMuX3VwZGF0ZVRhc2tDb3VudCh0LC0xKSx0Ll90cmFuc2l0aW9uVG8oQyxPKSx0LnJ1bkNvdW50PTAsdH0sZS5wcm90b3R5cGUuX3VwZGF0ZVRhc2tDb3VudD1mdW5jdGlvbih0LGUpe3ZhciBuPXQuX3pvbmVEZWxlZ2F0ZXM7LTE9PWUmJih0Ll96b25lRGVsZWdhdGVzPW51bGwpO2Zvcih2YXIgbz0wO288bi5sZW5ndGg7bysrKW5bb10uX3VwZGF0ZVRhc2tDb3VudCh0LnR5cGUsZSl9LGV9KSgpO3MuX19zeW1ib2xfXz1hO3ZhciBsLGM9e25hbWU6IiIsb25IYXNUYXNrOmZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiB0Lmhhc1Rhc2sobixvKX0sb25TY2hlZHVsZVRhc2s6ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIHQuc2NoZWR1bGVUYXNrKG4sbyl9LG9uSW52b2tlVGFzazpmdW5jdGlvbih0LGUsbixvLGksYSl7cmV0dXJuIHQuaW52b2tlVGFzayhuLG8saSxhKX0sb25DYW5jZWxUYXNrOmZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiB0LmNhbmNlbFRhc2sobixvKX19LGQ9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbil7dGhpcy5fdGFza0NvdW50cz17bWljcm9UYXNrOjAsbWFjcm9UYXNrOjAsZXZlbnRUYXNrOjB9LHRoaXMuem9uZT10LHRoaXMuX3BhcmVudERlbGVnYXRlPWUsdGhpcy5fZm9ya1pTPW4mJihuJiZuLm9uRm9yaz9uOmUuX2ZvcmtaUyksdGhpcy5fZm9ya0RsZ3Q9biYmKG4ub25Gb3JrP2U6ZS5fZm9ya0RsZ3QpLHRoaXMuX2ZvcmtDdXJyWm9uZT1uJiYobi5vbkZvcms/dGhpcy56b25lOmUuX2ZvcmtDdXJyWm9uZSksdGhpcy5faW50ZXJjZXB0WlM9biYmKG4ub25JbnRlcmNlcHQ/bjplLl9pbnRlcmNlcHRaUyksdGhpcy5faW50ZXJjZXB0RGxndD1uJiYobi5vbkludGVyY2VwdD9lOmUuX2ludGVyY2VwdERsZ3QpLHRoaXMuX2ludGVyY2VwdEN1cnJab25lPW4mJihuLm9uSW50ZXJjZXB0P3RoaXMuem9uZTplLl9pbnRlcmNlcHRDdXJyWm9uZSksdGhpcy5faW52b2tlWlM9biYmKG4ub25JbnZva2U/bjplLl9pbnZva2VaUyksdGhpcy5faW52b2tlRGxndD1uJiYobi5vbkludm9rZT9lOmUuX2ludm9rZURsZ3QpLHRoaXMuX2ludm9rZUN1cnJab25lPW4mJihuLm9uSW52b2tlP3RoaXMuem9uZTplLl9pbnZva2VDdXJyWm9uZSksdGhpcy5faGFuZGxlRXJyb3JaUz1uJiYobi5vbkhhbmRsZUVycm9yP246ZS5faGFuZGxlRXJyb3JaUyksdGhpcy5faGFuZGxlRXJyb3JEbGd0PW4mJihuLm9uSGFuZGxlRXJyb3I/ZTplLl9oYW5kbGVFcnJvckRsZ3QpLHRoaXMuX2hhbmRsZUVycm9yQ3VyclpvbmU9biYmKG4ub25IYW5kbGVFcnJvcj90aGlzLnpvbmU6ZS5faGFuZGxlRXJyb3JDdXJyWm9uZSksdGhpcy5fc2NoZWR1bGVUYXNrWlM9biYmKG4ub25TY2hlZHVsZVRhc2s/bjplLl9zY2hlZHVsZVRhc2taUyksdGhpcy5fc2NoZWR1bGVUYXNrRGxndD1uJiYobi5vblNjaGVkdWxlVGFzaz9lOmUuX3NjaGVkdWxlVGFza0RsZ3QpLHRoaXMuX3NjaGVkdWxlVGFza0N1cnJab25lPW4mJihuLm9uU2NoZWR1bGVUYXNrP3RoaXMuem9uZTplLl9zY2hlZHVsZVRhc2tDdXJyWm9uZSksdGhpcy5faW52b2tlVGFza1pTPW4mJihuLm9uSW52b2tlVGFzaz9uOmUuX2ludm9rZVRhc2taUyksdGhpcy5faW52b2tlVGFza0RsZ3Q9biYmKG4ub25JbnZva2VUYXNrP2U6ZS5faW52b2tlVGFza0RsZ3QpLHRoaXMuX2ludm9rZVRhc2tDdXJyWm9uZT1uJiYobi5vbkludm9rZVRhc2s/dGhpcy56b25lOmUuX2ludm9rZVRhc2tDdXJyWm9uZSksdGhpcy5fY2FuY2VsVGFza1pTPW4mJihuLm9uQ2FuY2VsVGFzaz9uOmUuX2NhbmNlbFRhc2taUyksdGhpcy5fY2FuY2VsVGFza0RsZ3Q9biYmKG4ub25DYW5jZWxUYXNrP2U6ZS5fY2FuY2VsVGFza0RsZ3QpLHRoaXMuX2NhbmNlbFRhc2tDdXJyWm9uZT1uJiYobi5vbkNhbmNlbFRhc2s/dGhpcy56b25lOmUuX2NhbmNlbFRhc2tDdXJyWm9uZSksdGhpcy5faGFzVGFza1pTPW51bGwsdGhpcy5faGFzVGFza0RsZ3Q9bnVsbCx0aGlzLl9oYXNUYXNrRGxndE93bmVyPW51bGwsdGhpcy5faGFzVGFza0N1cnJab25lPW51bGw7dmFyIG89biYmbi5vbkhhc1Rhc2s7KG98fGUmJmUuX2hhc1Rhc2taUykmJih0aGlzLl9oYXNUYXNrWlM9bz9uOmMsdGhpcy5faGFzVGFza0RsZ3Q9ZSx0aGlzLl9oYXNUYXNrRGxndE93bmVyPXRoaXMsdGhpcy5faGFzVGFza0N1cnJab25lPXQsbi5vblNjaGVkdWxlVGFza3x8KHRoaXMuX3NjaGVkdWxlVGFza1pTPWMsdGhpcy5fc2NoZWR1bGVUYXNrRGxndD1lLHRoaXMuX3NjaGVkdWxlVGFza0N1cnJab25lPXRoaXMuem9uZSksbi5vbkludm9rZVRhc2t8fCh0aGlzLl9pbnZva2VUYXNrWlM9Yyx0aGlzLl9pbnZva2VUYXNrRGxndD1lLHRoaXMuX2ludm9rZVRhc2tDdXJyWm9uZT10aGlzLnpvbmUpLG4ub25DYW5jZWxUYXNrfHwodGhpcy5fY2FuY2VsVGFza1pTPWMsdGhpcy5fY2FuY2VsVGFza0RsZ3Q9ZSx0aGlzLl9jYW5jZWxUYXNrQ3VyclpvbmU9dGhpcy56b25lKSl9cmV0dXJuIHQucHJvdG90eXBlLmZvcms9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fZm9ya1pTP3RoaXMuX2ZvcmtaUy5vbkZvcmsodGhpcy5fZm9ya0RsZ3QsdGhpcy56b25lLHQsZSk6bmV3IHModCxlKX0sdC5wcm90b3R5cGUuaW50ZXJjZXB0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy5faW50ZXJjZXB0WlM/dGhpcy5faW50ZXJjZXB0WlMub25JbnRlcmNlcHQodGhpcy5faW50ZXJjZXB0RGxndCx0aGlzLl9pbnRlcmNlcHRDdXJyWm9uZSx0LGUsbik6ZX0sdC5wcm90b3R5cGUuaW52b2tlPWZ1bmN0aW9uKHQsZSxuLG8saSl7cmV0dXJuIHRoaXMuX2ludm9rZVpTP3RoaXMuX2ludm9rZVpTLm9uSW52b2tlKHRoaXMuX2ludm9rZURsZ3QsdGhpcy5faW52b2tlQ3VyclpvbmUsdCxlLG4sbyxpKTplLmFwcGx5KG4sbyl9LHQucHJvdG90eXBlLmhhbmRsZUVycm9yPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIXRoaXMuX2hhbmRsZUVycm9yWlN8fHRoaXMuX2hhbmRsZUVycm9yWlMub25IYW5kbGVFcnJvcih0aGlzLl9oYW5kbGVFcnJvckRsZ3QsdGhpcy5faGFuZGxlRXJyb3JDdXJyWm9uZSx0LGUpfSx0LnByb3RvdHlwZS5zY2hlZHVsZVRhc2s9ZnVuY3Rpb24odCxlKXt2YXIgbj1lO2lmKHRoaXMuX3NjaGVkdWxlVGFza1pTKXRoaXMuX2hhc1Rhc2taUyYmbi5fem9uZURlbGVnYXRlcy5wdXNoKHRoaXMuX2hhc1Rhc2tEbGd0T3duZXIpLChuPXRoaXMuX3NjaGVkdWxlVGFza1pTLm9uU2NoZWR1bGVUYXNrKHRoaXMuX3NjaGVkdWxlVGFza0RsZ3QsdGhpcy5fc2NoZWR1bGVUYXNrQ3VyclpvbmUsdCxlKSl8fChuPWUpO2Vsc2UgaWYoZS5zY2hlZHVsZUZuKWUuc2NoZWR1bGVGbihlKTtlbHNle2lmKGUudHlwZSE9dyl0aHJvdyBuZXcgRXJyb3IoIlRhc2sgaXMgbWlzc2luZyBzY2hlZHVsZUZuLiIpO2IoZSl9cmV0dXJuIG59LHQucHJvdG90eXBlLmludm9rZVRhc2s9ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIHRoaXMuX2ludm9rZVRhc2taUz90aGlzLl9pbnZva2VUYXNrWlMub25JbnZva2VUYXNrKHRoaXMuX2ludm9rZVRhc2tEbGd0LHRoaXMuX2ludm9rZVRhc2tDdXJyWm9uZSx0LGUsbixvKTplLmNhbGxiYWNrLmFwcGx5KG4sbyl9LHQucHJvdG90eXBlLmNhbmNlbFRhc2s9ZnVuY3Rpb24odCxlKXt2YXIgbjtpZih0aGlzLl9jYW5jZWxUYXNrWlMpbj10aGlzLl9jYW5jZWxUYXNrWlMub25DYW5jZWxUYXNrKHRoaXMuX2NhbmNlbFRhc2tEbGd0LHRoaXMuX2NhbmNlbFRhc2tDdXJyWm9uZSx0LGUpO2Vsc2V7aWYoIWUuY2FuY2VsRm4pdGhyb3cgRXJyb3IoIlRhc2sgaXMgbm90IGNhbmNlbGFibGUiKTtuPWUuY2FuY2VsRm4oZSl9cmV0dXJuIG59LHQucHJvdG90eXBlLmhhc1Rhc2s9ZnVuY3Rpb24odCxlKXt0cnl7dGhpcy5faGFzVGFza1pTJiZ0aGlzLl9oYXNUYXNrWlMub25IYXNUYXNrKHRoaXMuX2hhc1Rhc2tEbGd0LHRoaXMuX2hhc1Rhc2tDdXJyWm9uZSx0LGUpfWNhdGNoKGUpe3RoaXMuaGFuZGxlRXJyb3IodCxlKX19LHQucHJvdG90eXBlLl91cGRhdGVUYXNrQ291bnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl90YXNrQ291bnRzLG89blt0XSxpPW5bdF09bytlO2lmKGk8MCl0aHJvdyBuZXcgRXJyb3IoIk1vcmUgdGFza3MgZXhlY3V0ZWQgdGhlbiB3ZXJlIHNjaGVkdWxlZC4iKTswIT1vJiYwIT1pfHx0aGlzLmhhc1Rhc2sodGhpcy56b25lLHttaWNyb1Rhc2s6bi5taWNyb1Rhc2s+MCxtYWNyb1Rhc2s6bi5tYWNyb1Rhc2s+MCxldmVudFRhc2s6bi5ldmVudFRhc2s+MCxjaGFuZ2U6dH0pfSx0fSkoKSxwPShmdW5jdGlvbigpe2Z1bmN0aW9uIGUobixvLGksYSxyLHMpe2lmKHRoaXMuX3pvbmU9bnVsbCx0aGlzLnJ1bkNvdW50PTAsdGhpcy5fem9uZURlbGVnYXRlcz1udWxsLHRoaXMuX3N0YXRlPSJub3RTY2hlZHVsZWQiLHRoaXMudHlwZT1uLHRoaXMuc291cmNlPW8sdGhpcy5kYXRhPWEsdGhpcy5zY2hlZHVsZUZuPXIsdGhpcy5jYW5jZWxGbj1zLCFpKXRocm93IG5ldyBFcnJvcigiY2FsbGJhY2sgaXMgbm90IGRlZmluZWQiKTt0aGlzLmNhbGxiYWNrPWk7dmFyIGw9dGhpczt0aGlzLmludm9rZT1uPT09UyYmYSYmYS51c2VHP2UuaW52b2tlVGFzazpmdW5jdGlvbigpe3JldHVybiBlLmludm9rZVRhc2suY2FsbCh0LGwsdGhpcyxhcmd1bWVudHMpfX1yZXR1cm4gZS5pbnZva2VUYXNrPWZ1bmN0aW9uKHQsZSxuKXt0fHwodD10aGlzKSxUKys7dHJ5e3JldHVybiB0LnJ1bkNvdW50KyssdC56b25lLnJ1blRhc2sodCxlLG4pfWZpbmFsbHl7MT09VCYmeSgpLFQtLX19LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiem9uZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl96b25lfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwic3RhdGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RhdGV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuY2FuY2VsU2NoZWR1bGVSZXF1ZXN0PWZ1bmN0aW9uKCl7dGhpcy5fdHJhbnNpdGlvblRvKEMsTSl9LGUucHJvdG90eXBlLl90cmFuc2l0aW9uVG89ZnVuY3Rpb24odCxlLG4pe2lmKHRoaXMuX3N0YXRlIT09ZSYmdGhpcy5fc3RhdGUhPT1uKXRocm93IG5ldyBFcnJvcih0aGlzLnR5cGUrIiAnIit0aGlzLnNvdXJjZSsiJzogY2FuIG5vdCB0cmFuc2l0aW9uIHRvICciK3QrIicsIGV4cGVjdGluZyBzdGF0ZSAnIitlKyInIisobj8iIG9yICciK24rIiciOiIiKSsiLCB3YXMgJyIrdGhpcy5fc3RhdGUrIicuIik7dGhpcy5fc3RhdGU9dCx0PT1DJiYodGhpcy5fem9uZURlbGVnYXRlcz1udWxsKX0sZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYXRhJiZ2b2lkIDAhPT10aGlzLmRhdGEuaGFuZGxlSWQ/dGhpcy5kYXRhLmhhbmRsZUlkLnRvU3RyaW5nKCk6T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57dHlwZTp0aGlzLnR5cGUsc3RhdGU6dGhpcy5zdGF0ZSxzb3VyY2U6dGhpcy5zb3VyY2Usem9uZTp0aGlzLnpvbmUubmFtZSxydW5Db3VudDp0aGlzLnJ1bkNvdW50fX0sZX0pKCksbT1hKCJzZXRUaW1lb3V0IiksZj1hKCJQcm9taXNlIiksdT1hKCJ0aGVuIiksZz1bXSxoPSExO2Z1bmN0aW9uIGIoZSl7aWYoMD09PVQmJjA9PT1nLmxlbmd0aClpZihsfHx0W2ZdJiYobD10W2ZdLnJlc29sdmUoMCkpLGwpe3ZhciBuPWxbdV07bnx8KG49bC50aGVuKSxuLmNhbGwobCx5KX1lbHNlIHRbbV0oeSwwKTtlJiZnLnB1c2goZSl9ZnVuY3Rpb24geSgpe2lmKCFoKXtmb3IoaD0hMDtnLmxlbmd0aDspe3ZhciB0PWc7Zz1bXTtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKyl7dmFyIG49dFtlXTt0cnl7bi56b25lLnJ1blRhc2sobixudWxsLG51bGwpfWNhdGNoKHQpe1Iub25VbmhhbmRsZWRFcnJvcih0KX19fVIubWljcm90YXNrRHJhaW5Eb25lKCksaD0hMX19dmFyIF89e25hbWU6Ik5PIFpPTkUifSxDPSJub3RTY2hlZHVsZWQiLE09InNjaGVkdWxpbmciLHY9InNjaGVkdWxlZCIseD0icnVubmluZyIsTz0iY2FuY2VsaW5nIixQPSJ1bmtub3duIix3PSJtaWNyb1Rhc2siLGs9Im1hY3JvVGFzayIsUz0iZXZlbnRUYXNrIixEPXt9LFI9e3N5bWJvbDphLGN1cnJlbnRab25lRnJhbWU6ZnVuY3Rpb24oKXtyZXR1cm4gRX0sb25VbmhhbmRsZWRFcnJvcjpOLG1pY3JvdGFza0RyYWluRG9uZTpOLHNjaGVkdWxlTWljcm9UYXNrOmIsc2hvd1VuY2F1Z2h0RXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4hc1thKCJpZ25vcmVDb25zb2xlRXJyb3JVbmNhdWdodEVycm9yIildfSxwYXRjaEV2ZW50VGFyZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuW119LHBhdGNoT25Qcm9wZXJ0aWVzOk4scGF0Y2hNZXRob2Q6ZnVuY3Rpb24oKXtyZXR1cm4gTn0sYmluZEFyZ3VtZW50czpmdW5jdGlvbigpe3JldHVybltdfSxwYXRjaFRoZW46ZnVuY3Rpb24oKXtyZXR1cm4gTn0scGF0Y2hNYWNyb1Rhc2s6ZnVuY3Rpb24oKXtyZXR1cm4gTn0scGF0Y2hFdmVudFByb3RvdHlwZTpmdW5jdGlvbigpe3JldHVybiBOfSxpc0lFT3JFZGdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9LGdldEdsb2JhbE9iamVjdHM6ZnVuY3Rpb24oKXt9LE9iamVjdERlZmluZVByb3BlcnR5OmZ1bmN0aW9uKCl7cmV0dXJuIE59LE9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcjpmdW5jdGlvbigpe30sT2JqZWN0Q3JlYXRlOmZ1bmN0aW9uKCl7fSxBcnJheVNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuW119LHBhdGNoQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm4gTn0sd3JhcFdpdGhDdXJyZW50Wm9uZTpmdW5jdGlvbigpe3JldHVybiBOfSxmaWx0ZXJQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7cmV0dXJuW119LGF0dGFjaE9yaWdpblRvUGF0Y2hlZDpmdW5jdGlvbigpe3JldHVybiBOfSxfcmVkZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbigpe3JldHVybiBOfSxwYXRjaENhbGxiYWNrczpmdW5jdGlvbigpe3JldHVybiBOfX0sRT17cGFyZW50Om51bGwsem9uZTpuZXcgcyhudWxsLG51bGwpfSxBPW51bGwsVD0wO2Z1bmN0aW9uIE4oKXt9bygiWm9uZSIsIlpvbmUiKSx0LlpvbmU9c30pKCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3d8fCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZnx8X08pOwovKioKICAgICAgICAgKiBAbGljZW5zZQogICAgICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgICAgICoKICAgICAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAgICAgKi8KdmFyIHQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxuPU9iamVjdC5nZXRQcm90b3R5cGVPZixvPU9iamVjdC5jcmVhdGUsaT1BcnJheS5wcm90b3R5cGUuc2xpY2UsYT0iYWRkRXZlbnRMaXN0ZW5lciIscj0icmVtb3ZlRXZlbnRMaXN0ZW5lciIscz1ab25lLl9fc3ltYm9sX18oYSksbD1ab25lLl9fc3ltYm9sX18ociksYz0idHJ1ZSIsZD0iZmFsc2UiLHA9Wm9uZS5fX3N5bWJvbF9fKCIiKTtmdW5jdGlvbiBtKHQsZSl7cmV0dXJuIFpvbmUuY3VycmVudC53cmFwKHQsZSl9ZnVuY3Rpb24gZih0LGUsbixvLGkpe3JldHVybiBab25lLmN1cnJlbnQuc2NoZWR1bGVNYWNyb1Rhc2sodCxlLG4sbyxpKX12YXIgdT1ab25lLl9fc3ltYm9sX18sZz0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyxoPWc/d2luZG93OnZvaWQgMCxiPWcmJmh8fCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZnx8X08seT0icmVtb3ZlQXR0cmlidXRlIixfPVtudWxsXTtmdW5jdGlvbiBDKHQsZSl7Zm9yKHZhciBuPXQubGVuZ3RoLTE7bj49MDtuLS0pImZ1bmN0aW9uIj09dHlwZW9mIHRbbl0mJih0W25dPW0odFtuXSxlKyJfIituKSk7cmV0dXJuIHR9ZnVuY3Rpb24gTShlLG4pe2Zvcih2YXIgbz1lLmNvbnN0cnVjdG9yLm5hbWUsaT1mdW5jdGlvbihpKXt2YXIgYT1uW2ldLHI9ZVthXTtpZihyKXtpZighdih0KGUsYSkpKXJldHVybiJjb250aW51ZSI7ZVthXT0oZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseSh0aGlzLEMoYXJndW1lbnRzLG8rIi4iK2EpKX07cmV0dXJuIHooZSx0KSxlfSkocil9fSxhPTA7YTxuLmxlbmd0aDthKyspaShhKX1mdW5jdGlvbiB2KHQpe3JldHVybiF0fHwhMSE9PXQud3JpdGFibGUmJiEoImZ1bmN0aW9uIj09dHlwZW9mIHQuZ2V0JiZ2b2lkIDA9PT10LnNldCl9dmFyIHg9InVuZGVmaW5lZCIhPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZSYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlLE89ISgibnciaW4gYikmJnZvaWQgMCE9PWIucHJvY2VzcyYmIltvYmplY3QgcHJvY2Vzc10iPT09e30udG9TdHJpbmcuY2FsbChiLnByb2Nlc3MpLFA9IU8mJiF4JiYhKCFnfHwhaC5IVE1MRWxlbWVudCksdz12b2lkIDAhPT1iLnByb2Nlc3MmJiJbb2JqZWN0IHByb2Nlc3NdIj09PXt9LnRvU3RyaW5nLmNhbGwoYi5wcm9jZXNzKSYmIXgmJiEoIWd8fCFoLkhUTUxFbGVtZW50KSxrPXt9LFM9ZnVuY3Rpb24odCl7aWYodD10fHxiLmV2ZW50KXt2YXIgZT1rW3QudHlwZV07ZXx8KGU9a1t0LnR5cGVdPXUoIk9OX1BST1BFUlRZIit0LnR5cGUpKTt2YXIgbixvPXRoaXN8fHQudGFyZ2V0fHxiLGk9b1tlXTtyZXR1cm4gUCYmbz09PWgmJiJlcnJvciI9PT10LnR5cGU/ITA9PT0obj1pJiZpLmNhbGwodGhpcyx0Lm1lc3NhZ2UsdC5maWxlbmFtZSx0LmxpbmVubyx0LmNvbG5vLHQuZXJyb3IpKSYmdC5wcmV2ZW50RGVmYXVsdCgpOm51bGw9PShuPWkmJmkuYXBwbHkodGhpcyxhcmd1bWVudHMpKXx8bnx8dC5wcmV2ZW50RGVmYXVsdCgpLG59fTtmdW5jdGlvbiBEKG4sbyxpKXt2YXIgYT10KG4sbyk7aWYoIWEmJmkmJnQoaSxvKSYmKGE9e2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksYSYmYS5jb25maWd1cmFibGUpe3ZhciByPXUoIm9uIitvKyJwYXRjaGVkIik7aWYoIW4uaGFzT3duUHJvcGVydHkocil8fCFuW3JdKXtkZWxldGUgYS53cml0YWJsZSxkZWxldGUgYS52YWx1ZTt2YXIgcz1hLmdldCxsPWEuc2V0LGM9by5zdWJzdHIoMiksZD1rW2NdO2R8fChkPWtbY109dSgiT05fUFJPUEVSVFkiK2MpKSxhLnNldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2V8fG4hPT1ifHwoZT1iKSxlJiYoZVtkXSYmZS5yZW1vdmVFdmVudExpc3RlbmVyKGMsUyksbCYmbC5hcHBseShlLF8pLCJmdW5jdGlvbiI9PXR5cGVvZiB0PyhlW2RdPXQsZS5hZGRFdmVudExpc3RlbmVyKGMsUywhMSkpOmVbZF09bnVsbCl9LGEuZ2V0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih0fHxuIT09Ynx8KHQ9YiksIXQpcmV0dXJuIG51bGw7dmFyIGU9dFtkXTtpZihlKXJldHVybiBlO2lmKHMpe3ZhciBpPXMmJnMuY2FsbCh0aGlzKTtpZihpKXJldHVybiBhLnNldC5jYWxsKHRoaXMsaSksImZ1bmN0aW9uIj09dHlwZW9mIHRbeV0mJnQucmVtb3ZlQXR0cmlidXRlKG8pLGl9cmV0dXJuIG51bGx9LGUobixvLGEpLG5bcl09ITB9fX1mdW5jdGlvbiBSKHQsZSxuKXtpZihlKWZvcih2YXIgbz0wO288ZS5sZW5ndGg7bysrKUQodCwib24iK2Vbb10sbik7ZWxzZXt2YXIgaT1bXTtmb3IodmFyIGEgaW4gdCkib24iPT1hLnN1YnN0cigwLDIpJiZpLnB1c2goYSk7Zm9yKHZhciByPTA7cjxpLmxlbmd0aDtyKyspRCh0LGlbcl0sbil9fXZhciBFPXUoIm9yaWdpbmFsSW5zdGFuY2UiKTtmdW5jdGlvbiBBKHQpe3ZhciBuPWJbdF07aWYobil7Ylt1KHQpXT1uLGJbdF09ZnVuY3Rpb24oKXt2YXIgZT1DKGFyZ3VtZW50cyx0KTtzd2l0Y2goZS5sZW5ndGgpe2Nhc2UgMDp0aGlzW0VdPW5ldyBuO2JyZWFrO2Nhc2UgMTp0aGlzW0VdPW5ldyBuKGVbMF0pO2JyZWFrO2Nhc2UgMjp0aGlzW0VdPW5ldyBuKGVbMF0sZVsxXSk7YnJlYWs7Y2FzZSAzOnRoaXNbRV09bmV3IG4oZVswXSxlWzFdLGVbMl0pO2JyZWFrO2Nhc2UgNDp0aGlzW0VdPW5ldyBuKGVbMF0sZVsxXSxlWzJdLGVbM10pO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJBcmcgbGlzdCB0b28gbG9uZy4iKX19LHooYlt0XSxuKTt2YXIgbyxpPW5ldyBuKChmdW5jdGlvbigpe30pKTtmb3IobyBpbiBpKSJYTUxIdHRwUmVxdWVzdCI9PT10JiYicmVzcG9uc2VCbG9iIj09PW98fChmdW5jdGlvbihuKXsiZnVuY3Rpb24iPT10eXBlb2YgaVtuXT9iW3RdLnByb3RvdHlwZVtuXT1mdW5jdGlvbigpe3JldHVybiB0aGlzW0VdW25dLmFwcGx5KHRoaXNbRV0sYXJndW1lbnRzKX06ZShiW3RdLnByb3RvdHlwZSxuLHtzZXQ6ZnVuY3Rpb24oZSl7ImZ1bmN0aW9uIj09dHlwZW9mIGU/KHRoaXNbRV1bbl09bShlLHQrIi4iK24pLHoodGhpc1tFXVtuXSxlKSk6dGhpc1tFXVtuXT1lfSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tFXVtuXX19KX0pKG8pO2ZvcihvIGluIG4pInByb3RvdHlwZSIhPT1vJiZuLmhhc093blByb3BlcnR5KG8pJiYoYlt0XVtvXT1uW29dKX19ZnVuY3Rpb24gVChlLG8saSl7Zm9yKHZhciBhPWU7YSYmIWEuaGFzT3duUHJvcGVydHkobyk7KWE9bihhKTshYSYmZVtvXSYmKGE9ZSk7dmFyIHI9dShvKSxzPW51bGw7aWYoYSYmKCEocz1hW3JdKXx8IWEuaGFzT3duUHJvcGVydHkocikpJiYocz1hW3JdPWFbb10sdihhJiZ0KGEsbykpKSl7dmFyIGw9aShzLHIsbyk7YVtvXT1mdW5jdGlvbigpe3JldHVybiBsKHRoaXMsYXJndW1lbnRzKX0seihhW29dLHMpfXJldHVybiBzfWZ1bmN0aW9uIE4odCxlLG4pe3ZhciBvPW51bGw7ZnVuY3Rpb24gaSh0KXt2YXIgZT10LmRhdGE7cmV0dXJuIGUuYXJnc1tlLmNiSWR4XT1mdW5jdGlvbigpe3QuaW52b2tlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sby5hcHBseShlLnRhcmdldCxlLmFyZ3MpLHR9bz1UKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbyl7dmFyIGE9bihlLG8pO3JldHVybiBhLmNiSWR4Pj0wJiYiZnVuY3Rpb24iPT10eXBlb2Ygb1thLmNiSWR4XT9mKGEubmFtZSxvW2EuY2JJZHhdLGEsaSk6dC5hcHBseShlLG8pfX0pKX1mdW5jdGlvbiB6KHQsZSl7dFt1KCJPcmlnaW5hbERlbGVnYXRlIildPWV9dmFyIEk9ITEsSD0hMTtmdW5jdGlvbiBGKCl7dHJ5e3ZhciB0PWgubmF2aWdhdG9yLnVzZXJBZ2VudDtpZigtMSE9PXQuaW5kZXhPZigiTVNJRSAiKXx8LTEhPT10LmluZGV4T2YoIlRyaWRlbnQvIikpcmV0dXJuITB9Y2F0Y2godCl7fXJldHVybiExfWZ1bmN0aW9uIEwoKXtpZihJKXJldHVybiBIO0k9ITA7dHJ5e3ZhciB0PWgubmF2aWdhdG9yLnVzZXJBZ2VudDstMT09PXQuaW5kZXhPZigiTVNJRSAiKSYmLTE9PT10LmluZGV4T2YoIlRyaWRlbnQvIikmJi0xPT09dC5pbmRleE9mKCJFZGdlLyIpfHwoSD0hMCl9Y2F0Y2godCl7fXJldHVybiBIfQovKioKICAgICAgICAgKiBAbGljZW5zZQogICAgICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgICAgICoKICAgICAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAgICAgKi9ab25lLl9fbG9hZF9wYXRjaCgiWm9uZUF3YXJlUHJvbWlzZSIsKGZ1bmN0aW9uKHQsZSxuKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGk9T2JqZWN0LmRlZmluZVByb3BlcnR5O2Z1bmN0aW9uIGEodCl7aWYodCYmdC50b1N0cmluZz09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcpe3ZhciBlPXQuY29uc3RydWN0b3ImJnQuY29uc3RydWN0b3IubmFtZTtyZXR1cm4oZXx8IiIpKyI6ICIrSlNPTi5zdHJpbmdpZnkodCl9cmV0dXJuIHQ/dC50b1N0cmluZygpOk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX12YXIgcj1uLnN5bWJvbCxzPVtdLGw9ITA9PT10W3IoIkRJU0FCTEVfV1JBUFBJTkdfVU5DQVVHSFRfUFJPTUlTRV9SRUpFQ1RJT04iKV0sYz1yKCJQcm9taXNlIiksZD1yKCJ0aGVuIikscD0iX19jcmVhdGlvblRyYWNlX18iO24ub25VbmhhbmRsZWRFcnJvcj1mdW5jdGlvbih0KXtpZihuLnNob3dVbmNhdWdodEVycm9yKCkpe3ZhciBlPXQmJnQucmVqZWN0aW9uO2U/Y29uc29sZS5lcnJvcigiVW5oYW5kbGVkIFByb21pc2UgcmVqZWN0aW9uOiIsZSBpbnN0YW5jZW9mIEVycm9yP2UubWVzc2FnZTplLCI7IFpvbmU6Iix0LnpvbmUubmFtZSwiOyBUYXNrOiIsdC50YXNrJiZ0LnRhc2suc291cmNlLCI7IFZhbHVlOiIsZSxlIGluc3RhbmNlb2YgRXJyb3I/ZS5zdGFjazp2b2lkIDApOmNvbnNvbGUuZXJyb3IodCl9fSxuLm1pY3JvdGFza0RyYWluRG9uZT1mdW5jdGlvbigpe2Zvcih2YXIgdD1mdW5jdGlvbigpe3ZhciB0PXMuc2hpZnQoKTt0cnl7dC56b25lLnJ1bkd1YXJkZWQoKGZ1bmN0aW9uKCl7aWYodC50aHJvd09yaWdpbmFsKXRocm93IHQucmVqZWN0aW9uO3Rocm93IHR9KSl9Y2F0Y2godCl7Zih0KX19O3MubGVuZ3RoOyl0KCl9O3ZhciBtPXIoInVuaGFuZGxlZFByb21pc2VSZWplY3Rpb25IYW5kbGVyIik7ZnVuY3Rpb24gZih0KXtuLm9uVW5oYW5kbGVkRXJyb3IodCk7dHJ5e3ZhciBvPWVbbV07ImZ1bmN0aW9uIj09dHlwZW9mIG8mJm8uY2FsbCh0aGlzLHQpfWNhdGNoKHQpe319ZnVuY3Rpb24gdSh0KXtyZXR1cm4gdCYmdC50aGVufWZ1bmN0aW9uIGcodCl7cmV0dXJuIHR9ZnVuY3Rpb24gaCh0KXtyZXR1cm4gRi5yZWplY3QodCl9dmFyIGI9cigic3RhdGUiKSx5PXIoInZhbHVlIiksXz1yKCJmaW5hbGx5IiksQz1yKCJwYXJlbnRQcm9taXNlVmFsdWUiKSxNPXIoInBhcmVudFByb21pc2VTdGF0ZSIpLHY9IlByb21pc2UudGhlbiIseD1udWxsLE89ITAsUD0hMSx3PTA7ZnVuY3Rpb24gayh0LGUpe3JldHVybiBmdW5jdGlvbihuKXt0cnl7RSh0LGUsbil9Y2F0Y2goZSl7RSh0LCExLGUpfX19dmFyIFM9ZnVuY3Rpb24oKXt2YXIgdD0hMTtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4gZnVuY3Rpb24oKXt0fHwodD0hMCxuLmFwcGx5KG51bGwsYXJndW1lbnRzKSl9fX0sRD0iUHJvbWlzZSByZXNvbHZlZCB3aXRoIGl0c2VsZiIsUj1yKCJjdXJyZW50VGFza1RyYWNlIik7ZnVuY3Rpb24gRSh0LG8scil7dmFyIGM9UygpO2lmKHQ9PT1yKXRocm93IG5ldyBUeXBlRXJyb3IoRCk7aWYodFtiXT09PXgpe3ZhciBkPW51bGw7dHJ5eyJvYmplY3QiIT10eXBlb2YgciYmImZ1bmN0aW9uIiE9dHlwZW9mIHJ8fChkPXImJnIudGhlbil9Y2F0Y2goZSl7cmV0dXJuIGMoKGZ1bmN0aW9uKCl7RSh0LCExLGUpfSkpKCksdH1pZihvIT09UCYmciBpbnN0YW5jZW9mIEYmJnIuaGFzT3duUHJvcGVydHkoYikmJnIuaGFzT3duUHJvcGVydHkoeSkmJnJbYl0hPT14KU4ociksRSh0LHJbYl0sclt5XSk7ZWxzZSBpZihvIT09UCYmImZ1bmN0aW9uIj09dHlwZW9mIGQpdHJ5e2QuY2FsbChyLGMoayh0LG8pKSxjKGsodCwhMSkpKX1jYXRjaChlKXtjKChmdW5jdGlvbigpe0UodCwhMSxlKX0pKSgpfWVsc2V7dFtiXT1vO3ZhciBtPXRbeV07aWYodFt5XT1yLHRbX109PT1fJiZvPT09TyYmKHRbYl09dFtNXSx0W3ldPXRbQ10pLG89PT1QJiZyIGluc3RhbmNlb2YgRXJyb3Ipe3ZhciBmPWUuY3VycmVudFRhc2smJmUuY3VycmVudFRhc2suZGF0YSYmZS5jdXJyZW50VGFzay5kYXRhW3BdO2YmJmkocixSLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCx2YWx1ZTpmfSl9Zm9yKHZhciB1PTA7dTxtLmxlbmd0aDspeih0LG1bdSsrXSxtW3UrK10sbVt1KytdLG1bdSsrXSk7aWYoMD09bS5sZW5ndGgmJm89PVApe3RbYl09dzt2YXIgZz1yO3RyeXt0aHJvdyBuZXcgRXJyb3IoIlVuY2F1Z2h0IChpbiBwcm9taXNlKTogIithKHIpKyhyJiZyLnN0YWNrPyJcbiIrci5zdGFjazoiIikpfWNhdGNoKHQpe2c9dH1sJiYoZy50aHJvd09yaWdpbmFsPSEwKSxnLnJlamVjdGlvbj1yLGcucHJvbWlzZT10LGcuem9uZT1lLmN1cnJlbnQsZy50YXNrPWUuY3VycmVudFRhc2sscy5wdXNoKGcpLG4uc2NoZWR1bGVNaWNyb1Rhc2soKX19fXJldHVybiB0fXZhciBBPXIoInJlamVjdGlvbkhhbmRsZWRIYW5kbGVyIik7ZnVuY3Rpb24gTih0KXtpZih0W2JdPT09dyl7dHJ5e3ZhciBuPWVbQV07biYmImZ1bmN0aW9uIj09dHlwZW9mIG4mJm4uY2FsbCh0aGlzLHtyZWplY3Rpb246dFt5XSxwcm9taXNlOnR9KX1jYXRjaCh0KXt9dFtiXT1QO2Zvcih2YXIgbz0wO288cy5sZW5ndGg7bysrKXQ9PT1zW29dLnByb21pc2UmJnMuc3BsaWNlKG8sMSl9fWZ1bmN0aW9uIHoodCxlLG4sbyxpKXtOKHQpO3ZhciBhPXRbYl0scj1hPyJmdW5jdGlvbiI9PXR5cGVvZiBvP286ZzoiZnVuY3Rpb24iPT10eXBlb2YgaT9pOmg7ZS5zY2hlZHVsZU1pY3JvVGFzayh2LChmdW5jdGlvbigpe3RyeXt2YXIgbz10W3ldLGk9ISFuJiZfPT09bltfXTtpJiYobltDXT1vLG5bTV09YSk7dmFyIHM9ZS5ydW4ocix2b2lkIDAsaSYmciE9PWgmJnIhPT1nP1tdOltvXSk7RShuLCEwLHMpfWNhdGNoKHQpe0UobiwhMSx0KX19KSxuKX12YXIgST0iZnVuY3Rpb24gWm9uZUF3YXJlUHJvbWlzZSgpIHsgW25hdGl2ZSBjb2RlXSB9IixIPWZ1bmN0aW9uKCl7fSxGPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7dmFyIG49dGhpcztpZighKG4gaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgRXJyb3IoIk11c3QgYmUgYW4gaW5zdGFuY2VvZiBQcm9taXNlLiIpO25bYl09eCxuW3ldPVtdO3RyeXtlJiZlKGsobixPKSxrKG4sUCkpfWNhdGNoKHQpe0UobiwhMSx0KX19cmV0dXJuIHQudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gSX0sdC5yZXNvbHZlPWZ1bmN0aW9uKHQpe3JldHVybiBFKG5ldyB0aGlzKG51bGwpLE8sdCl9LHQucmVqZWN0PWZ1bmN0aW9uKHQpe3JldHVybiBFKG5ldyB0aGlzKG51bGwpLFAsdCl9LHQucmFjZT1mdW5jdGlvbih0KXt2YXIgZSxuLG89bmV3IHRoaXMoKGZ1bmN0aW9uKHQsbyl7ZT10LG49b30pKTtmdW5jdGlvbiBpKHQpe2UodCl9ZnVuY3Rpb24gYSh0KXtuKHQpfWZvcih2YXIgcj0wLHM9dDtyPHMubGVuZ3RoO3IrKyl7dmFyIGw9c1tyXTt1KGwpfHwobD10aGlzLnJlc29sdmUobCkpLGwudGhlbihpLGEpfXJldHVybiBvfSx0LmFsbD1mdW5jdGlvbihlKXtyZXR1cm4gdC5hbGxXaXRoQ2FsbGJhY2soZSl9LHQuYWxsU2V0dGxlZD1mdW5jdGlvbihlKXtyZXR1cm4odGhpcyYmdGhpcy5wcm90b3R5cGUgaW5zdGFuY2VvZiB0P3RoaXM6dCkuYWxsV2l0aENhbGxiYWNrKGUse3RoZW5DYWxsYmFjazpmdW5jdGlvbih0KXtyZXR1cm57c3RhdHVzOiJmdWxmaWxsZWQiLHZhbHVlOnR9fSxlcnJvckNhbGxiYWNrOmZ1bmN0aW9uKHQpe3JldHVybntzdGF0dXM6InJlamVjdGVkIixyZWFzb246dH19fSl9LHQuYWxsV2l0aENhbGxiYWNrPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuLG8saT1uZXcgdGhpcygoZnVuY3Rpb24odCxlKXtuPXQsbz1lfSkpLGE9MixyPTAscz1bXSxsPWZ1bmN0aW9uKHQpe3UodCl8fCh0PWMucmVzb2x2ZSh0KSk7dmFyIGk9cjt0cnl7dC50aGVuKChmdW5jdGlvbih0KXtzW2ldPWU/ZS50aGVuQ2FsbGJhY2sodCk6dCwwPT0tLWEmJm4ocyl9KSwoZnVuY3Rpb24odCl7ZT8oc1tpXT1lLmVycm9yQ2FsbGJhY2sodCksMD09LS1hJiZuKHMpKTpvKHQpfSkpfWNhdGNoKHQpe28odCl9YSsrLHIrK30sYz10aGlzLGQ9MCxwPXQ7ZDxwLmxlbmd0aDtkKyspbChwW2RdKTtyZXR1cm4gMD09KGEtPTIpJiZuKHMpLGl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxTeW1ib2wudG9TdHJpbmdUYWcse2dldDpmdW5jdGlvbigpe3JldHVybiJQcm9taXNlIn0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsU3ltYm9sLnNwZWNpZXMse2dldDpmdW5jdGlvbigpe3JldHVybiB0fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLnRoZW49ZnVuY3Rpb24obixvKXt2YXIgaT10aGlzLmNvbnN0cnVjdG9yW1N5bWJvbC5zcGVjaWVzXTtpJiYiZnVuY3Rpb24iPT10eXBlb2YgaXx8KGk9dGhpcy5jb25zdHJ1Y3Rvcnx8dCk7dmFyIGE9bmV3IGkoSCkscj1lLmN1cnJlbnQ7cmV0dXJuIHRoaXNbYl09PXg/dGhpc1t5XS5wdXNoKHIsYSxuLG8pOnoodGhpcyxyLGEsbixvKSxhfSx0LnByb3RvdHlwZS5jYXRjaD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50aGVuKG51bGwsdCl9LHQucHJvdG90eXBlLmZpbmFsbHk9ZnVuY3Rpb24obil7dmFyIG89dGhpcy5jb25zdHJ1Y3RvcltTeW1ib2wuc3BlY2llc107byYmImZ1bmN0aW9uIj09dHlwZW9mIG98fChvPXQpO3ZhciBpPW5ldyBvKEgpO2lbX109Xzt2YXIgYT1lLmN1cnJlbnQ7cmV0dXJuIHRoaXNbYl09PXg/dGhpc1t5XS5wdXNoKGEsaSxuLG4pOnoodGhpcyxhLGksbixuKSxpfSx0fSkoKTtGLnJlc29sdmU9Ri5yZXNvbHZlLEYucmVqZWN0PUYucmVqZWN0LEYucmFjZT1GLnJhY2UsRi5hbGw9Ri5hbGw7dmFyIEw9dFtjXT10LlByb21pc2U7dC5Qcm9taXNlPUY7dmFyIEI9cigidGhlblBhdGNoZWQiKTtmdW5jdGlvbiBWKHQpe3ZhciBlPXQucHJvdG90eXBlLG49byhlLCJ0aGVuIik7aWYoIW58fCExIT09bi53cml0YWJsZSYmbi5jb25maWd1cmFibGUpe3ZhciBpPWUudGhlbjtlW2RdPWksdC5wcm90b3R5cGUudGhlbj1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7cmV0dXJuIG5ldyBGKChmdW5jdGlvbih0LGUpe2kuY2FsbChuLHQsZSl9KSkudGhlbih0LGUpfSx0W0JdPSEwfX1mdW5jdGlvbiBqKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZhciBvPXQuYXBwbHkoZSxuKTtpZihvIGluc3RhbmNlb2YgRilyZXR1cm4gbzt2YXIgaT1vLmNvbnN0cnVjdG9yO3JldHVybiBpW0JdfHxWKGkpLG99fXJldHVybiBuLnBhdGNoVGhlbj1WLEwmJihWKEwpLFQodCwiZmV0Y2giLChmdW5jdGlvbih0KXtyZXR1cm4gaih0KX0pKSksUHJvbWlzZVtlLl9fc3ltYm9sX18oInVuY2F1Z2h0UHJvbWlzZUVycm9ycyIpXT1zLEZ9KSksCi8qKgogICAgICAgICAqIEBsaWNlbnNlCiAgICAgICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAgICAgKgogICAgICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICAgICAqLwpab25lLl9fbG9hZF9wYXRjaCgidG9TdHJpbmciLChmdW5jdGlvbih0KXt2YXIgZT1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcsbj11KCJPcmlnaW5hbERlbGVnYXRlIiksbz11KCJQcm9taXNlIiksaT11KCJFcnJvciIpLGE9ZnVuY3Rpb24gYSgpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzKXt2YXIgcj10aGlzW25dO2lmKHIpcmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHI/ZS5jYWxsKHIpOk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyKTtpZih0aGlzPT09UHJvbWlzZSl7dmFyIHM9dFtvXTtpZihzKXJldHVybiBlLmNhbGwocyl9aWYodGhpcz09PUVycm9yKXt2YXIgbD10W2ldO2lmKGwpcmV0dXJuIGUuY2FsbChsKX19cmV0dXJuIGUuY2FsbCh0aGlzKX07YVtuXT1lLEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZz1hO3ZhciByPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcscz0iW29iamVjdCBQcm9taXNlXSI7T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBQcm9taXNlJiZ0aGlzIGluc3RhbmNlb2YgUHJvbWlzZT9zOnIuY2FsbCh0aGlzKX19KSk7Ci8qKgogICAgICAgICAqIEBsaWNlbnNlCiAgICAgICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAgICAgKgogICAgICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICAgICAqLwp2YXIgQj0hMTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyl0cnl7dmFyIFY9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJwYXNzaXZlIix7Z2V0OmZ1bmN0aW9uKCl7Qj0hMH19KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsVixWKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdCIsVixWKX1jYXRjaCh0KXtCPSExfXZhciBqPXt1c2VHOiEwfSxVPXt9LFc9e30sRz1uZXcgUmVnRXhwKCJeIitwKyIoXFx3KykodHJ1ZXxmYWxzZSkkIiksWT11KCJwcm9wYWdhdGlvblN0b3BwZWQiKTtmdW5jdGlvbiBxKHQsZSl7dmFyIG49KGU/ZSh0KTp0KStkLG89KGU/ZSh0KTp0KStjLGk9cCtuLGE9cCtvO1VbdF09e30sVVt0XVtkXT1pLFVbdF1bY109YX1mdW5jdGlvbiBaKHQsZSxvKXt2YXIgaT1vJiZvLmFkZHx8YSxzPW8mJm8ucm18fHIsbD1vJiZvLmxpc3RlbmVyc3x8ImV2ZW50TGlzdGVuZXJzIixtPW8mJm8ucm1BbGx8fCJyZW1vdmVBbGxMaXN0ZW5lcnMiLGY9dShpKSxnPSIuIitpKyI6IixoPSJwcmVwZW5kTGlzdGVuZXIiLGI9Ii4iK2grIjoiLHk9ZnVuY3Rpb24odCxlLG4pe2lmKCF0LmlzUmVtb3ZlZCl7dmFyIG89dC5jYWxsYmFjazsib2JqZWN0Ij09dHlwZW9mIG8mJm8uaGFuZGxlRXZlbnQmJih0LmNhbGxiYWNrPWZ1bmN0aW9uKHQpe3JldHVybiBvLmhhbmRsZUV2ZW50KHQpfSx0Lm9yaWdpbmFsRGVsZWdhdGU9byksdC5pbnZva2UodCxlLFtuXSk7dmFyIGk9dC5vcHRpb25zO2kmJiJvYmplY3QiPT10eXBlb2YgaSYmaS5vbmNlJiZlW3NdLmNhbGwoZSxuLnR5cGUsdC5vcmlnaW5hbERlbGVnYXRlP3Qub3JpZ2luYWxEZWxlZ2F0ZTp0LmNhbGxiYWNrLGkpfX0sXz1mdW5jdGlvbihlKXtpZihlPWV8fHQuZXZlbnQpe3ZhciBuPXRoaXN8fGUudGFyZ2V0fHx0LG89bltVW2UudHlwZV1bZF1dO2lmKG8paWYoMT09PW8ubGVuZ3RoKXkob1swXSxuLGUpO2Vsc2UgZm9yKHZhciBpPW8uc2xpY2UoKSxhPTA7YTxpLmxlbmd0aCYmKCFlfHwhMCE9PWVbWV0pO2ErKyl5KGlbYV0sbixlKX19LEM9ZnVuY3Rpb24oZSl7aWYoZT1lfHx0LmV2ZW50KXt2YXIgbj10aGlzfHxlLnRhcmdldHx8dCxvPW5bVVtlLnR5cGVdW2NdXTtpZihvKWlmKDE9PT1vLmxlbmd0aCl5KG9bMF0sbixlKTtlbHNlIGZvcih2YXIgaT1vLnNsaWNlKCksYT0wO2E8aS5sZW5ndGgmJighZXx8ITAhPT1lW1ldKTthKyspeShpW2FdLG4sZSl9fTtmdW5jdGlvbiBNKGUsbyl7aWYoIWUpcmV0dXJuITE7dmFyIGE9ITA7byYmdm9pZCAwIT09by51c2VHJiYoYT1vLnVzZUcpO3ZhciByPW8mJm8udmgseT0hMDtvJiZ2b2lkIDAhPT1vLmNoa0R1cCYmKHk9by5jaGtEdXApO3ZhciBNPSExO28mJnZvaWQgMCE9PW8ucnQmJihNPW8ucnQpO2Zvcih2YXIgdj1lO3YmJiF2Lmhhc093blByb3BlcnR5KGkpOyl2PW4odik7aWYoIXYmJmVbaV0mJih2PWUpLCF2KXJldHVybiExO2lmKHZbZl0pcmV0dXJuITE7dmFyIHgsUD1vJiZvLmV2ZW50TmFtZVRvU3RyaW5nLHc9e30saz12W2ZdPXZbaV0sUz12W3UocyldPXZbc10sRD12W3UobCldPXZbbF0sUj12W3UobSldPXZbbV07ZnVuY3Rpb24gRSh0LGUpe3JldHVybiFCJiYib2JqZWN0Ij09dHlwZW9mIHQmJnQ/ISF0LmNhcHR1cmU6QiYmZT8iYm9vbGVhbiI9PXR5cGVvZiB0P3tjYXB0dXJlOnQscGFzc2l2ZTohMH06dD8ib2JqZWN0Ij09dHlwZW9mIHQmJiExIT09dC5wYXNzaXZlP09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7cGFzc2l2ZTohMH0pOnQ6e3Bhc3NpdmU6ITB9OnR9byYmby5wcmVwZW5kJiYoeD12W3Uoby5wcmVwZW5kKV09dltvLnByZXBlbmRdKTt2YXIgQT1mdW5jdGlvbih0KXtyZXR1cm4geC5jYWxsKHcudGFyZ2V0LHcuZXZlbnROYW1lLHQuaW52b2tlLHcub3B0aW9ucyl9LFQ9YT9mdW5jdGlvbih0KXtpZighdy5pc0V4aXN0aW5nKXJldHVybiBrLmNhbGwody50YXJnZXQsdy5ldmVudE5hbWUsdy5jYXB0dXJlP0M6Xyx3Lm9wdGlvbnMpfTpmdW5jdGlvbih0KXtyZXR1cm4gay5jYWxsKHcudGFyZ2V0LHcuZXZlbnROYW1lLHQuaW52b2tlLHcub3B0aW9ucyl9LE49YT9mdW5jdGlvbih0KXtpZighdC5pc1JlbW92ZWQpe3ZhciBlPVVbdC5ldmVudE5hbWVdLG49dm9pZCAwO2UmJihuPWVbdC5jYXB0dXJlP2M6ZF0pO3ZhciBvPW4mJnQudGFyZ2V0W25dO2lmKG8pZm9yKHZhciBpPTA7aTxvLmxlbmd0aDtpKyspaWYob1tpXT09PXQpe28uc3BsaWNlKGksMSksdC5pc1JlbW92ZWQ9ITAsMD09PW8ubGVuZ3RoJiYodC5hbGxSZW1vdmVkPSEwLHQudGFyZ2V0W25dPW51bGwpO2JyZWFrfX1pZih0LmFsbFJlbW92ZWQpcmV0dXJuIFMuY2FsbCh0LnRhcmdldCx0LmV2ZW50TmFtZSx0LmNhcHR1cmU/QzpfLHQub3B0aW9ucyl9OmZ1bmN0aW9uKHQpe3JldHVybiBTLmNhbGwodC50YXJnZXQsdC5ldmVudE5hbWUsdC5pbnZva2UsdC5vcHRpb25zKX0sST1vJiZvLmRpZmY/by5kaWZmOmZ1bmN0aW9uKHQsZSl7dmFyIG49dHlwZW9mIGU7cmV0dXJuImZ1bmN0aW9uIj09PW4mJnQuY2FsbGJhY2s9PT1lfHwib2JqZWN0Ij09PW4mJnQub3JpZ2luYWxEZWxlZ2F0ZT09PWV9LEg9Wm9uZVt1KCJVTlBBVENIRURfRVZFTlRTIildLEY9dFt1KCJQQVNTSVZFX0VWRU5UUyIpXSxMPWZ1bmN0aW9uKGUsbixpLHMsbCxwKXtyZXR1cm4gdm9pZCAwPT09bCYmKGw9ITEpLHZvaWQgMD09PXAmJihwPSExKSxmdW5jdGlvbigpe3ZhciBtPXRoaXN8fHQsZj1hcmd1bWVudHNbMF07byYmby50cmFuc2ZlckV2ZW50TmFtZSYmKGY9by50cmFuc2ZlckV2ZW50TmFtZShmKSk7dmFyIHU9YXJndW1lbnRzWzFdO2lmKCF1KXJldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihPJiYidW5jYXVnaHRFeGNlcHRpb24iPT09ZilyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGc9ITE7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHUpe2lmKCF1LmhhbmRsZUV2ZW50KXJldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtnPSEwfWlmKCFyfHxyKGUsdSxtLGFyZ3VtZW50cykpe3ZhciBoPUImJiEhRiYmLTEhPT1GLmluZGV4T2YoZiksYj1FKGFyZ3VtZW50c1syXSxoKTtpZihIKWZvcih2YXIgXz0wO188SC5sZW5ndGg7XysrKWlmKGY9PT1IW19dKXJldHVybiBoP2UuY2FsbChtLGYsdSxiKTplLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgQz0hIWImJigiYm9vbGVhbiI9PXR5cGVvZiBifHxiLmNhcHR1cmUpLE09ISghYnx8Im9iamVjdCIhPXR5cGVvZiBiKSYmYi5vbmNlLHY9Wm9uZS5jdXJyZW50LHg9VVtmXTt4fHwocShmLFApLHg9VVtmXSk7dmFyIGssUz14W0M/YzpkXSxEPW1bU10sUj0hMTtpZihEKXtpZihSPSEwLHkpZm9yKF89MDtfPEQubGVuZ3RoO18rKylpZihJKERbX10sdSkpcmV0dXJufWVsc2UgRD1tW1NdPVtdO3ZhciBBPW0uY29uc3RydWN0b3IubmFtZSxUPVdbQV07VCYmKGs9VFtmXSksa3x8KGs9QStuKyhQP1AoZik6ZikpLHcub3B0aW9ucz1iLE0mJih3Lm9wdGlvbnMub25jZT0hMSksdy50YXJnZXQ9bSx3LmNhcHR1cmU9Qyx3LmV2ZW50TmFtZT1mLHcuaXNFeGlzdGluZz1SO3ZhciBOPWE/ajp2b2lkIDA7TiYmKE4udGFza0RhdGE9dyk7dmFyIHo9di5zY2hlZHVsZUV2ZW50VGFzayhrLHUsTixpLHMpO3JldHVybiB3LnRhcmdldD1udWxsLE4mJihOLnRhc2tEYXRhPW51bGwpLE0mJihiLm9uY2U9ITApLChCfHwiYm9vbGVhbiIhPXR5cGVvZiB6Lm9wdGlvbnMpJiYoei5vcHRpb25zPWIpLHoudGFyZ2V0PW0sei5jYXB0dXJlPUMsei5ldmVudE5hbWU9ZixnJiYoei5vcmlnaW5hbERlbGVnYXRlPXUpLHA/RC51bnNoaWZ0KHopOkQucHVzaCh6KSxsP206dm9pZCAwfX19O3JldHVybiB2W2ldPUwoayxnLFQsTixNKSx4JiYodltoXT1MKHgsYixBLE4sTSwhMCkpLHZbc109ZnVuY3Rpb24oKXt2YXIgZT10aGlzfHx0LG49YXJndW1lbnRzWzBdO28mJm8udHJhbnNmZXJFdmVudE5hbWUmJihuPW8udHJhbnNmZXJFdmVudE5hbWUobikpO3ZhciBpPWFyZ3VtZW50c1syXSxhPSEhaSYmKCJib29sZWFuIj09dHlwZW9mIGl8fGkuY2FwdHVyZSkscz1hcmd1bWVudHNbMV07aWYoIXMpcmV0dXJuIFMuYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKCFyfHxyKFMscyxlLGFyZ3VtZW50cykpe3ZhciBsLG09VVtuXTttJiYobD1tW2E/YzpkXSk7dmFyIGY9bCYmZVtsXTtpZihmKWZvcih2YXIgdT0wO3U8Zi5sZW5ndGg7dSsrKXt2YXIgZz1mW3VdO2lmKEkoZyxzKSlyZXR1cm4gZi5zcGxpY2UodSwxKSxnLmlzUmVtb3ZlZD0hMCwwPT09Zi5sZW5ndGgmJihnLmFsbFJlbW92ZWQ9ITAsZVtsXT1udWxsLCJzdHJpbmciPT10eXBlb2YgbiYmKGVbcCsiT05fUFJPUEVSVFkiK25dPW51bGwpKSxnLnpvbmUuY2FuY2VsVGFzayhnKSxNP2U6dm9pZCAwfXJldHVybiBTLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LHZbbF09ZnVuY3Rpb24oKXt2YXIgZT10aGlzfHx0LG49YXJndW1lbnRzWzBdO28mJm8udHJhbnNmZXJFdmVudE5hbWUmJihuPW8udHJhbnNmZXJFdmVudE5hbWUobikpO2Zvcih2YXIgaT1bXSxhPVgoZSxQP1Aobik6bikscj0wO3I8YS5sZW5ndGg7cisrKXt2YXIgcz1hW3JdO2kucHVzaChzLm9yaWdpbmFsRGVsZWdhdGU/cy5vcmlnaW5hbERlbGVnYXRlOnMuY2FsbGJhY2spfXJldHVybiBpfSx2W21dPWZ1bmN0aW9uKCl7dmFyIGU9dGhpc3x8dCxuPWFyZ3VtZW50c1swXTtpZihuKXtvJiZvLnRyYW5zZmVyRXZlbnROYW1lJiYobj1vLnRyYW5zZmVyRXZlbnROYW1lKG4pKTt2YXIgaT1VW25dO2lmKGkpe3ZhciBhPWVbaVtkXV0scj1lW2lbY11dO2lmKGEpe3ZhciBsPWEuc2xpY2UoKTtmb3IodT0wO3U8bC5sZW5ndGg7dSsrKXRoaXNbc10uY2FsbCh0aGlzLG4sKHA9bFt1XSkub3JpZ2luYWxEZWxlZ2F0ZT9wLm9yaWdpbmFsRGVsZWdhdGU6cC5jYWxsYmFjayxwLm9wdGlvbnMpfWlmKHIpZm9yKGw9ci5zbGljZSgpLHU9MDt1PGwubGVuZ3RoO3UrKyl7dmFyIHA7dGhpc1tzXS5jYWxsKHRoaXMsbiwocD1sW3VdKS5vcmlnaW5hbERlbGVnYXRlP3Aub3JpZ2luYWxEZWxlZ2F0ZTpwLmNhbGxiYWNrLHAub3B0aW9ucyl9fX1lbHNle2Zvcih2YXIgZj1PYmplY3Qua2V5cyhlKSx1PTA7dTxmLmxlbmd0aDt1Kyspe3ZhciBnPUcuZXhlYyhmW3VdKSxoPWcmJmdbMV07aCYmInJlbW92ZUxpc3RlbmVyIiE9PWgmJnRoaXNbbV0uY2FsbCh0aGlzLGgpfXRoaXNbbV0uY2FsbCh0aGlzLCJyZW1vdmVMaXN0ZW5lciIpfWlmKE0pcmV0dXJuIHRoaXN9LHoodltpXSxrKSx6KHZbc10sUyksUiYmeih2W21dLFIpLEQmJnoodltsXSxEKSwhMH1mb3IodmFyIHY9W10seD0wO3g8ZS5sZW5ndGg7eCsrKXZbeF09TShlW3hdLG8pO3JldHVybiB2fWZ1bmN0aW9uIFgodCxlKXtpZighZSl7dmFyIG49W107Zm9yKHZhciBvIGluIHQpe3ZhciBpPUcuZXhlYyhvKSxhPWkmJmlbMV07aWYoYSYmKCFlfHxhPT09ZSkpe3ZhciByPXRbb107aWYocilmb3IodmFyIHM9MDtzPHIubGVuZ3RoO3MrKyluLnB1c2gocltzXSl9fXJldHVybiBufXZhciBsPVVbZV07bHx8KHEoZSksbD1VW2VdKTt2YXIgcD10W2xbZF1dLG09dFtsW2NdXTtyZXR1cm4gcD9tP3AuY29uY2F0KG0pOnAuc2xpY2UoKTptP20uc2xpY2UoKTpbXX1mdW5jdGlvbiBLKHQsZSl7dmFyIG49dC5FdmVudDtuJiZuLnByb3RvdHlwZSYmZS5wYXRjaE1ldGhvZChuLnByb3RvdHlwZSwic3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uIiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7ZVtZXT0hMCx0JiZ0LmFwcGx5KGUsbil9fSkpfQovKioKICAgICAgICAgKiBAbGljZW5zZQogICAgICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgICAgICoKICAgICAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAgICAgKi9mdW5jdGlvbiBKKHQsZSxuLG8saSl7dmFyIGE9Wm9uZS5fX3N5bWJvbF9fKG8pO2lmKCFlW2FdKXt2YXIgcj1lW2FdPWVbb107ZVtvXT1mdW5jdGlvbihhLHMsbCl7cmV0dXJuIHMmJnMucHJvdG90eXBlJiZpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBpPW4rIi4iK28rIjo6IitlLGE9cy5wcm90b3R5cGU7aWYoYS5oYXNPd25Qcm9wZXJ0eShlKSl7dmFyIHI9dC5PYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSxlKTtyJiZyLnZhbHVlPyhyLnZhbHVlPXQud3JhcFdpdGhDdXJyZW50Wm9uZShyLnZhbHVlLGkpLHQuX3JlZGVmaW5lUHJvcGVydHkocy5wcm90b3R5cGUsZSxyKSk6YVtlXSYmKGFbZV09dC53cmFwV2l0aEN1cnJlbnRab25lKGFbZV0saSkpfWVsc2UgYVtlXSYmKGFbZV09dC53cmFwV2l0aEN1cnJlbnRab25lKGFbZV0saSkpfSkpLHIuY2FsbChlLGEscyxsKX0sdC5hdHRhY2hPcmlnaW5Ub1BhdGNoZWQoZVtvXSxyKX19Ci8qKgogICAgICAgICAqIEBsaWNlbnNlCiAgICAgICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAgICAgKgogICAgICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICAgICAqL3ZhciBRLCQsdHQsZXQsbnQsb3Q9WyJhYnNvbHV0ZWRldmljZW9yaWVudGF0aW9uIiwiYWZ0ZXJpbnB1dCIsImFmdGVycHJpbnQiLCJhcHBpbnN0YWxsZWQiLCJiZWZvcmVpbnN0YWxscHJvbXB0IiwiYmVmb3JlcHJpbnQiLCJiZWZvcmV1bmxvYWQiLCJkZXZpY2VsaWdodCIsImRldmljZW1vdGlvbiIsImRldmljZW9yaWVudGF0aW9uIiwiZGV2aWNlb3JpZW50YXRpb25hYnNvbHV0ZSIsImRldmljZXByb3hpbWl0eSIsImhhc2hjaGFuZ2UiLCJsYW5ndWFnZWNoYW5nZSIsIm1lc3NhZ2UiLCJtb3piZWZvcmVwYWludCIsIm9mZmxpbmUiLCJvbmxpbmUiLCJwYWludCIsInBhZ2VzaG93IiwicGFnZWhpZGUiLCJwb3BzdGF0ZSIsInJlamVjdGlvbmhhbmRsZWQiLCJzdG9yYWdlIiwidW5oYW5kbGVkcmVqZWN0aW9uIiwidW5sb2FkIiwidXNlcnByb3hpbWl0eSIsInZyZGlzcGxheWNvbm5lY3RlZCIsInZyZGlzcGxheWRpc2Nvbm5lY3RlZCIsInZyZGlzcGxheXByZXNlbnRjaGFuZ2UiXSxpdD1bImVuY3J5cHRlZCIsIndhaXRpbmdmb3JrZXkiLCJtc25lZWRrZXkiLCJtb3ppbnRlcnJ1cHRiZWdpbiIsIm1vemludGVycnVwdGVuZCJdLGF0PVsibG9hZCJdLHJ0PVsiYmx1ciIsImVycm9yIiwiZm9jdXMiLCJsb2FkIiwicmVzaXplIiwic2Nyb2xsIiwibWVzc2FnZWVycm9yIl0sc3Q9WyJib3VuY2UiLCJmaW5pc2giLCJzdGFydCJdLGx0PVsibG9hZHN0YXJ0IiwicHJvZ3Jlc3MiLCJhYm9ydCIsImVycm9yIiwibG9hZCIsInByb2dyZXNzIiwidGltZW91dCIsImxvYWRlbmQiLCJyZWFkeXN0YXRlY2hhbmdlIl0sY3Q9WyJ1cGdyYWRlbmVlZGVkIiwiY29tcGxldGUiLCJhYm9ydCIsInN1Y2Nlc3MiLCJlcnJvciIsImJsb2NrZWQiLCJ2ZXJzaW9uY2hhbmdlIiwiY2xvc2UiXSxkdD1bImNsb3NlIiwiZXJyb3IiLCJvcGVuIiwibWVzc2FnZSJdLHB0PVsiZXJyb3IiLCJtZXNzYWdlIl0sbXQ9WyJhYm9ydCIsImFuaW1hdGlvbmNhbmNlbCIsImFuaW1hdGlvbmVuZCIsImFuaW1hdGlvbml0ZXJhdGlvbiIsImF1eGNsaWNrIiwiYmVmb3JlaW5wdXQiLCJibHVyIiwiY2FuY2VsIiwiY2FucGxheSIsImNhbnBsYXl0aHJvdWdoIiwiY2hhbmdlIiwiY29tcG9zaXRpb25zdGFydCIsImNvbXBvc2l0aW9udXBkYXRlIiwiY29tcG9zaXRpb25lbmQiLCJjdWVjaGFuZ2UiLCJjbGljayIsImNsb3NlIiwiY29udGV4dG1lbnUiLCJjdXJlY2hhbmdlIiwiZGJsY2xpY2siLCJkcmFnIiwiZHJhZ2VuZCIsImRyYWdlbnRlciIsImRyYWdleGl0IiwiZHJhZ2xlYXZlIiwiZHJhZ292ZXIiLCJkcm9wIiwiZHVyYXRpb25jaGFuZ2UiLCJlbXB0aWVkIiwiZW5kZWQiLCJlcnJvciIsImZvY3VzIiwiZm9jdXNpbiIsImZvY3Vzb3V0IiwiZ290cG9pbnRlcmNhcHR1cmUiLCJpbnB1dCIsImludmFsaWQiLCJrZXlkb3duIiwia2V5cHJlc3MiLCJrZXl1cCIsImxvYWQiLCJsb2Fkc3RhcnQiLCJsb2FkZWRkYXRhIiwibG9hZGVkbWV0YWRhdGEiLCJsb3N0cG9pbnRlcmNhcHR1cmUiLCJtb3VzZWRvd24iLCJtb3VzZWVudGVyIiwibW91c2VsZWF2ZSIsIm1vdXNlbW92ZSIsIm1vdXNlb3V0IiwibW91c2VvdmVyIiwibW91c2V1cCIsIm1vdXNld2hlZWwiLCJvcmllbnRhdGlvbmNoYW5nZSIsInBhdXNlIiwicGxheSIsInBsYXlpbmciLCJwb2ludGVyY2FuY2VsIiwicG9pbnRlcmRvd24iLCJwb2ludGVyZW50ZXIiLCJwb2ludGVybGVhdmUiLCJwb2ludGVybG9ja2NoYW5nZSIsIm1venBvaW50ZXJsb2NrY2hhbmdlIiwid2Via2l0cG9pbnRlcmxvY2tlcmNoYW5nZSIsInBvaW50ZXJsb2NrZXJyb3IiLCJtb3pwb2ludGVybG9ja2Vycm9yIiwid2Via2l0cG9pbnRlcmxvY2tlcnJvciIsInBvaW50ZXJtb3ZlIiwicG9pbnRvdXQiLCJwb2ludGVyb3ZlciIsInBvaW50ZXJ1cCIsInByb2dyZXNzIiwicmF0ZWNoYW5nZSIsInJlc2V0IiwicmVzaXplIiwic2Nyb2xsIiwic2Vla2VkIiwic2Vla2luZyIsInNlbGVjdCIsInNlbGVjdGlvbmNoYW5nZSIsInNlbGVjdHN0YXJ0Iiwic2hvdyIsInNvcnQiLCJzdGFsbGVkIiwic3VibWl0Iiwic3VzcGVuZCIsInRpbWV1cGRhdGUiLCJ2b2x1bWVjaGFuZ2UiLCJ0b3VjaGNhbmNlbCIsInRvdWNobW92ZSIsInRvdWNoc3RhcnQiLCJ0b3VjaGVuZCIsInRyYW5zaXRpb25jYW5jZWwiLCJ0cmFuc2l0aW9uZW5kIiwid2FpdGluZyIsIndoZWVsIl0uY29uY2F0KFsid2ViZ2xjb250ZXh0cmVzdG9yZWQiLCJ3ZWJnbGNvbnRleHRsb3N0Iiwid2ViZ2xjb250ZXh0Y3JlYXRpb25lcnJvciJdLFsiYXV0b2NvbXBsZXRlIiwiYXV0b2NvbXBsZXRlZXJyb3IiXSxbInRvZ2dsZSJdLFsiYWZ0ZXJzY3JpcHRleGVjdXRlIiwiYmVmb3Jlc2NyaXB0ZXhlY3V0ZSIsIkRPTUNvbnRlbnRMb2FkZWQiLCJmcmVlemUiLCJmdWxsc2NyZWVuY2hhbmdlIiwibW96ZnVsbHNjcmVlbmNoYW5nZSIsIndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiLCJtc2Z1bGxzY3JlZW5jaGFuZ2UiLCJmdWxsc2NyZWVuZXJyb3IiLCJtb3pmdWxsc2NyZWVuZXJyb3IiLCJ3ZWJraXRmdWxsc2NyZWVuZXJyb3IiLCJtc2Z1bGxzY3JlZW5lcnJvciIsInJlYWR5c3RhdGVjaGFuZ2UiLCJ2aXNpYmlsaXR5Y2hhbmdlIiwicmVzdW1lIl0sb3QsWyJiZWZvcmVjb3B5IiwiYmVmb3JlY3V0IiwiYmVmb3JlcGFzdGUiLCJjb3B5IiwiY3V0IiwicGFzdGUiLCJkcmFnc3RhcnQiLCJsb2FkZW5kIiwiYW5pbWF0aW9uc3RhcnQiLCJzZWFyY2giLCJ0cmFuc2l0aW9ucnVuIiwidHJhbnNpdGlvbnN0YXJ0Iiwid2Via2l0YW5pbWF0aW9uZW5kIiwid2Via2l0YW5pbWF0aW9uaXRlcmF0aW9uIiwid2Via2l0YW5pbWF0aW9uc3RhcnQiLCJ3ZWJraXR0cmFuc2l0aW9uZW5kIl0sWyJhY3RpdmF0ZSIsImFmdGVydXBkYXRlIiwiYXJpYXJlcXVlc3QiLCJiZWZvcmVhY3RpdmF0ZSIsImJlZm9yZWRlYWN0aXZhdGUiLCJiZWZvcmVlZGl0Zm9jdXMiLCJiZWZvcmV1cGRhdGUiLCJjZWxsY2hhbmdlIiwiY29udHJvbHNlbGVjdCIsImRhdGFhdmFpbGFibGUiLCJkYXRhc2V0Y2hhbmdlZCIsImRhdGFzZXRjb21wbGV0ZSIsImVycm9ydXBkYXRlIiwiZmlsdGVyY2hhbmdlIiwibGF5b3V0Y29tcGxldGUiLCJsb3NlY2FwdHVyZSIsIm1vdmUiLCJtb3ZlZW5kIiwibW92ZXN0YXJ0IiwicHJvcGVydHljaGFuZ2UiLCJyZXNpemVlbmQiLCJyZXNpemVzdGFydCIsInJvd2VudGVyIiwicm93ZXhpdCIsInJvd3NkZWxldGUiLCJyb3dzaW5zZXJ0ZWQiLCJjb21tYW5kIiwiY29tcGFzc25lZWRzY2FsaWJyYXRpb24iLCJkZWFjdGl2YXRlIiwiaGVscCIsIm1zY29udGVudHpvb20iLCJtc21hbmlwdWxhdGlvbnN0YXRlY2hhbmdlZCIsIm1zZ2VzdHVyZWNoYW5nZSIsIm1zZ2VzdHVyZWRvdWJsZXRhcCIsIm1zZ2VzdHVyZWVuZCIsIm1zZ2VzdHVyZWhvbGQiLCJtc2dlc3R1cmVzdGFydCIsIm1zZ2VzdHVyZXRhcCIsIm1zZ290cG9pbnRlcmNhcHR1cmUiLCJtc2luZXJ0aWFzdGFydCIsIm1zbG9zdHBvaW50ZXJjYXB0dXJlIiwibXNwb2ludGVyY2FuY2VsIiwibXNwb2ludGVyZG93biIsIm1zcG9pbnRlcmVudGVyIiwibXNwb2ludGVyaG92ZXIiLCJtc3BvaW50ZXJsZWF2ZSIsIm1zcG9pbnRlcm1vdmUiLCJtc3BvaW50ZXJvdXQiLCJtc3BvaW50ZXJvdmVyIiwibXNwb2ludGVydXAiLCJwb2ludGVyb3V0IiwibXNzaXRlbW9kZWp1bXBsaXN0aXRlbXJlbW92ZWQiLCJtc3RodW1ibmFpbGNsaWNrIiwic3RvcCIsInN0b3JhZ2Vjb21taXQiXSk7ZnVuY3Rpb24gZnQodCxlLG4pe2lmKCFufHwwPT09bi5sZW5ndGgpcmV0dXJuIGU7dmFyIG89bi5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRhcmdldD09PXR9KSk7aWYoIW98fDA9PT1vLmxlbmd0aClyZXR1cm4gZTt2YXIgaT1vWzBdLmlnbm9yZVByb3BlcnRpZXM7cmV0dXJuIGUuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4tMT09PWkuaW5kZXhPZih0KX0pKX1mdW5jdGlvbiB1dCh0LGUsbixvKXt0JiZSKHQsZnQodCxlLG4pLG8pfWZ1bmN0aW9uIGd0KHQsZSl7aWYoKCFPfHx3KSYmIVpvbmVbdC5zeW1ib2woInBhdGNoRXZlbnRzIildKXt2YXIgbz0idW5kZWZpbmVkIiE9dHlwZW9mIFdlYlNvY2tldCxpPWUuX19ab25lX2lnbm9yZV9vbl9wcm9wZXJ0aWVzO2lmKFApe3ZhciBhPXdpbmRvdyxyPUYoKT9be3RhcmdldDphLGlnbm9yZVByb3BlcnRpZXM6WyJlcnJvciJdfV06W107dXQoYSxtdC5jb25jYXQoWyJtZXNzYWdlZXJyb3IiXSksaT9pLmNvbmNhdChyKTppLG4oYSkpLHV0KERvY3VtZW50LnByb3RvdHlwZSxtdCxpKSx2b2lkIDAhPT1hLlNWR0VsZW1lbnQmJnV0KGEuU1ZHRWxlbWVudC5wcm90b3R5cGUsbXQsaSksdXQoRWxlbWVudC5wcm90b3R5cGUsbXQsaSksdXQoSFRNTEVsZW1lbnQucHJvdG90eXBlLG10LGkpLHV0KEhUTUxNZWRpYUVsZW1lbnQucHJvdG90eXBlLGl0LGkpLHV0KEhUTUxGcmFtZVNldEVsZW1lbnQucHJvdG90eXBlLG90LmNvbmNhdChydCksaSksdXQoSFRNTEJvZHlFbGVtZW50LnByb3RvdHlwZSxvdC5jb25jYXQocnQpLGkpLHV0KEhUTUxGcmFtZUVsZW1lbnQucHJvdG90eXBlLGF0LGkpLHV0KEhUTUxJRnJhbWVFbGVtZW50LnByb3RvdHlwZSxhdCxpKTt2YXIgcz1hLkhUTUxNYXJxdWVlRWxlbWVudDtzJiZ1dChzLnByb3RvdHlwZSxzdCxpKTt2YXIgbD1hLldvcmtlcjtsJiZ1dChsLnByb3RvdHlwZSxwdCxpKX12YXIgYz1lLlhNTEh0dHBSZXF1ZXN0O2MmJnV0KGMucHJvdG90eXBlLGx0LGkpO3ZhciBkPWUuWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldDtkJiZ1dChkJiZkLnByb3RvdHlwZSxsdCxpKSwidW5kZWZpbmVkIiE9dHlwZW9mIElEQkluZGV4JiYodXQoSURCSW5kZXgucHJvdG90eXBlLGN0LGkpLHV0KElEQlJlcXVlc3QucHJvdG90eXBlLGN0LGkpLHV0KElEQk9wZW5EQlJlcXVlc3QucHJvdG90eXBlLGN0LGkpLHV0KElEQkRhdGFiYXNlLnByb3RvdHlwZSxjdCxpKSx1dChJREJUcmFuc2FjdGlvbi5wcm90b3R5cGUsY3QsaSksdXQoSURCQ3Vyc29yLnByb3RvdHlwZSxjdCxpKSksbyYmdXQoV2ViU29ja2V0LnByb3RvdHlwZSxkdCxpKX19Ci8qKgogICAgICAgICAqIEBsaWNlbnNlCiAgICAgICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAgICAgKgogICAgICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICAgICAqL2Z1bmN0aW9uIGh0KCl7UT1ab25lLl9fc3ltYm9sX18sJD1PYmplY3RbUSgiZGVmaW5lUHJvcGVydHkiKV09T2JqZWN0LmRlZmluZVByb3BlcnR5LHR0PU9iamVjdFtRKCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiKV09T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixldD1PYmplY3QuY3JlYXRlLG50PVEoInVuY29uZmlndXJhYmxlcyIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eT1mdW5jdGlvbih0LGUsbil7aWYoeXQodCxlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYXNzaWduIHRvIHJlYWQgb25seSBwcm9wZXJ0eSAnIitlKyInIG9mICIrdCk7dmFyIG89bi5jb25maWd1cmFibGU7cmV0dXJuInByb3RvdHlwZSIhPT1lJiYobj1fdCh0LGUsbikpLEN0KHQsZSxuLG8pfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcz1mdW5jdGlvbih0LGUpe3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChmdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxuLGVbbl0pfSkpLHR9LE9iamVjdC5jcmVhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4ib2JqZWN0IiE9dHlwZW9mIGV8fE9iamVjdC5pc0Zyb3plbihlKXx8T2JqZWN0LmtleXMoZSkuZm9yRWFjaCgoZnVuY3Rpb24obil7ZVtuXT1fdCh0LG4sZVtuXSl9KSksZXQodCxlKX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcj1mdW5jdGlvbih0LGUpe3ZhciBuPXR0KHQsZSk7cmV0dXJuIG4mJnl0KHQsZSkmJihuLmNvbmZpZ3VyYWJsZT0hMSksbn19ZnVuY3Rpb24gYnQodCxlLG4pe3ZhciBvPW4uY29uZmlndXJhYmxlO3JldHVybiBDdCh0LGUsbj1fdCh0LGUsbiksbyl9ZnVuY3Rpb24geXQodCxlKXtyZXR1cm4gdCYmdFtudF0mJnRbbnRdW2VdfWZ1bmN0aW9uIF90KHQsZSxuKXtyZXR1cm4gT2JqZWN0LmlzRnJvemVuKG4pfHwobi5jb25maWd1cmFibGU9ITApLG4uY29uZmlndXJhYmxlfHwodFtudF18fE9iamVjdC5pc0Zyb3plbih0KXx8JCh0LG50LHt3cml0YWJsZTohMCx2YWx1ZTp7fX0pLHRbbnRdJiYodFtudF1bZV09ITApKSxufWZ1bmN0aW9uIEN0KHQsZSxuLG8pe3RyeXtyZXR1cm4gJCh0LGUsbil9Y2F0Y2gocil7aWYoIW4uY29uZmlndXJhYmxlKXRocm93IHI7dm9pZCAwPT09bz9kZWxldGUgbi5jb25maWd1cmFibGU6bi5jb25maWd1cmFibGU9bzt0cnl7cmV0dXJuICQodCxlLG4pfWNhdGNoKG8pe3ZhciBpPSExO2lmKCJjcmVhdGVkQ2FsbGJhY2siIT09ZSYmImF0dGFjaGVkQ2FsbGJhY2siIT09ZSYmImRldGFjaGVkQ2FsbGJhY2siIT09ZSYmImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayIhPT1lfHwoaT0hMCksIWkpdGhyb3cgbzt2YXIgYT1udWxsO3RyeXthPUpTT04uc3RyaW5naWZ5KG4pfWNhdGNoKHQpe2E9bi50b1N0cmluZygpfWNvbnNvbGUubG9nKCJBdHRlbXB0aW5nIHRvIGNvbmZpZ3VyZSAnIitlKyInIHdpdGggZGVzY3JpcHRvciAnIithKyInIG9uIG9iamVjdCAnIit0KyInIGFuZCBnb3QgZXJyb3IsIGdpdmluZyB1cDogIitvKX19fQovKioKICAgICAgICAgKiBAbGljZW5zZQogICAgICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgICAgICoKICAgICAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAgICAgKi9mdW5jdGlvbiBNdCh0LGUpe3ZhciBuPWUuZ2V0R2xvYmFsT2JqZWN0cygpLG89bi5ldmVudE5hbWVzLGk9bi5nbG9iYWxTb3VyY2VzLGE9bi56b25lU3ltYm9sRXZlbnROYW1lcyxyPW4uVFJVRV9TVFIscz1uLkZBTFNFX1NUUixsPW4uWk9ORV9TWU1CT0xfUFJFRklYLGM9IkFuY2hvcixBcmVhLEF1ZGlvLEJSLEJhc2UsQmFzZUZvbnQsQm9keSxCdXR0b24sQ2FudmFzLENvbnRlbnQsRExpc3QsRGlyZWN0b3J5LERpdixFbWJlZCxGaWVsZFNldCxGb250LEZvcm0sRnJhbWUsRnJhbWVTZXQsSFIsSGVhZCxIZWFkaW5nLEh0bWwsSUZyYW1lLEltYWdlLElucHV0LEtleWdlbixMSSxMYWJlbCxMZWdlbmQsTGluayxNYXAsTWFycXVlZSxNZWRpYSxNZW51LE1ldGEsTWV0ZXIsTW9kLE9MaXN0LE9iamVjdCxPcHRHcm91cCxPcHRpb24sT3V0cHV0LFBhcmFncmFwaCxQcmUsUHJvZ3Jlc3MsUXVvdGUsU2NyaXB0LFNlbGVjdCxTb3VyY2UsU3BhbixTdHlsZSxUYWJsZUNhcHRpb24sVGFibGVDZWxsLFRhYmxlQ29sLFRhYmxlLFRhYmxlUm93LFRhYmxlU2VjdGlvbixUZXh0QXJlYSxUaXRsZSxUcmFjayxVTGlzdCxVbmtub3duLFZpZGVvIixkPSJBcHBsaWNhdGlvbkNhY2hlLEV2ZW50U291cmNlLEZpbGVSZWFkZXIsSW5wdXRNZXRob2RDb250ZXh0LE1lZGlhQ29udHJvbGxlcixNZXNzYWdlUG9ydCxOb2RlLFBlcmZvcm1hbmNlLFNWR0VsZW1lbnRJbnN0YW5jZSxTaGFyZWRXb3JrZXIsVGV4dFRyYWNrLFRleHRUcmFja0N1ZSxUZXh0VHJhY2tMaXN0LFdlYktpdE5hbWVkRmxvdyxXaW5kb3csV29ya2VyLFdvcmtlckdsb2JhbFNjb3BlLFhNTEh0dHBSZXF1ZXN0LFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQsWE1MSHR0cFJlcXVlc3RVcGxvYWQsSURCUmVxdWVzdCxJREJPcGVuREJSZXF1ZXN0LElEQkRhdGFiYXNlLElEQlRyYW5zYWN0aW9uLElEQkN1cnNvcixEQkluZGV4LFdlYlNvY2tldCIuc3BsaXQoIiwiKSxwPSJFdmVudFRhcmdldCIsbT1bXSxmPXQud3RmLHU9Yy5zcGxpdCgiLCIpO2Y/bT11Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIkhUTUwiK3QrIkVsZW1lbnQifSkpLmNvbmNhdChkKTp0W3BdP20ucHVzaChwKTptPWQ7Zm9yKHZhciBnPXQuX19ab25lX2Rpc2FibGVfSUVfY2hlY2t8fCExLGg9dC5fX1pvbmVfZW5hYmxlX2Nyb3NzX2NvbnRleHRfY2hlY2t8fCExLGI9ZS5pc0lFT3JFZGdlKCkseT0iLmFkZEV2ZW50TGlzdGVuZXI6IixfPSJbb2JqZWN0IEZ1bmN0aW9uV3JhcHBlcl0iLEM9ImZ1bmN0aW9uIF9fQlJPV1NFUlRPT0xTX0NPTlNPTEVfU0FGRUZVTkMoKSB7IFtuYXRpdmUgY29kZV0gfSIsTT17TVNQb2ludGVyQ2FuY2VsOiJwb2ludGVyY2FuY2VsIixNU1BvaW50ZXJEb3duOiJwb2ludGVyZG93biIsTVNQb2ludGVyRW50ZXI6InBvaW50ZXJlbnRlciIsTVNQb2ludGVySG92ZXI6InBvaW50ZXJob3ZlciIsTVNQb2ludGVyTGVhdmU6InBvaW50ZXJsZWF2ZSIsTVNQb2ludGVyTW92ZToicG9pbnRlcm1vdmUiLE1TUG9pbnRlck91dDoicG9pbnRlcm91dCIsTVNQb2ludGVyT3ZlcjoicG9pbnRlcm92ZXIiLE1TUG9pbnRlclVwOiJwb2ludGVydXAifSx2PTA7djxvLmxlbmd0aDt2Kyspe3ZhciB4PWwrKChTPW9bdl0pK3MpLE89bCsoUytyKTthW1NdPXt9LGFbU11bc109eCxhW1NdW3JdPU99Zm9yKHY9MDt2PHUubGVuZ3RoO3YrKylmb3IodmFyIFA9dVt2XSx3PWlbUF09e30saz0wO2s8by5sZW5ndGg7aysrKXt2YXIgUzt3W1M9b1trXV09UCt5K1N9dmFyIEQ9ZnVuY3Rpb24odCxlLG4sbyl7aWYoIWcmJmIpe2lmKGgpdHJ5e3ZhciBpO2lmKChpPWUudG9TdHJpbmcoKSk9PT1ffHxpPT1DKXJldHVybiB0LmFwcGx5KG4sbyksITF9Y2F0Y2goZSl7cmV0dXJuIHQuYXBwbHkobixvKSwhMX1lbHNlIGlmKChpPWUudG9TdHJpbmcoKSk9PT1ffHxpPT1DKXJldHVybiB0LmFwcGx5KG4sbyksITF9ZWxzZSBpZihoKXRyeXtlLnRvU3RyaW5nKCl9Y2F0Y2goZSl7cmV0dXJuIHQuYXBwbHkobixvKSwhMX1yZXR1cm4hMH0sUj1bXTtmb3Iodj0wO3Y8bS5sZW5ndGg7disrKXt2YXIgRT10W21bdl1dO1IucHVzaChFJiZFLnByb3RvdHlwZSl9cmV0dXJuIGUucGF0Y2hFdmVudFRhcmdldCh0LFIse3ZoOkQsdHJhbnNmZXJFdmVudE5hbWU6ZnVuY3Rpb24odCl7cmV0dXJuIE1bdF18fHR9fSksWm9uZVtlLnN5bWJvbCgicGF0Y2hFdmVudFRhcmdldCIpXT0hIXRbcF0sITB9Ci8qKgogICAgICAgICAqIEBsaWNlbnNlCiAgICAgICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAgICAgKgogICAgICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICAgICAqL2Z1bmN0aW9uIHZ0KHQsZSl7dmFyIG49dC5nZXRHbG9iYWxPYmplY3RzKCksbz1uLkFERF9FVkVOVF9MSVNURU5FUl9TVFIsaT1uLlJFTU9WRV9FVkVOVF9MSVNURU5FUl9TVFIsYT1lLldlYlNvY2tldDtlLkV2ZW50VGFyZ2V0fHx0LnBhdGNoRXZlbnRUYXJnZXQoZSxbYS5wcm90b3R5cGVdKSxlLldlYlNvY2tldD1mdW5jdGlvbihlLG4pe3ZhciByLHMsbD1hcmd1bWVudHMubGVuZ3RoPjE/bmV3IGEoZSxuKTpuZXcgYShlKSxjPXQuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIm9ubWVzc2FnZSIpO3JldHVybiBjJiYhMT09PWMuY29uZmlndXJhYmxlPyhyPXQuT2JqZWN0Q3JlYXRlKGwpLHM9bCxbbyxpLCJzZW5kIiwiY2xvc2UiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtyW2VdPWZ1bmN0aW9uKCl7dmFyIG49dC5BcnJheVNsaWNlLmNhbGwoYXJndW1lbnRzKTtpZihlPT09b3x8ZT09PWkpe3ZhciBhPW4ubGVuZ3RoPjA/blswXTp2b2lkIDA7aWYoYSl7dmFyIHM9Wm9uZS5fX3N5bWJvbF9fKCJPTl9QUk9QRVJUWSIrYSk7bFtzXT1yW3NdfX1yZXR1cm4gbFtlXS5hcHBseShsLG4pfX0pKSk6cj1sLHQucGF0Y2hPblByb3BlcnRpZXMocixbImNsb3NlIiwiZXJyb3IiLCJtZXNzYWdlIiwib3BlbiJdLHMpLHJ9O3ZhciByPWUuV2ViU29ja2V0O2Zvcih2YXIgcyBpbiBhKXJbc109YVtzXX0KLyoqCiAgICAgICAgICogQGxpY2Vuc2UKICAgICAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICAgICAqCiAgICAgICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgICAgICovZnVuY3Rpb24geHQodCxlKXt2YXIgbj10LmdldEdsb2JhbE9iamVjdHMoKTtpZigoIW4uaXNOb2RlfHxuLmlzTWl4KSYmIU90KHQsZSkpe3ZhciBvPSJ1bmRlZmluZWQiIT10eXBlb2YgV2ViU29ja2V0O1B0KHQpLHQucGF0Y2hDbGFzcygiWE1MSHR0cFJlcXVlc3QiKSxvJiZ2dCh0LGUpLFpvbmVbdC5zeW1ib2woInBhdGNoRXZlbnRzIildPSEwfX1mdW5jdGlvbiBPdCh0LGUpe3ZhciBuPXQuZ2V0R2xvYmFsT2JqZWN0cygpO2lmKChuLmlzQnJvd3Nlcnx8bi5pc01peCkmJiF0Lk9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcihIVE1MRWxlbWVudC5wcm90b3R5cGUsIm9uY2xpY2siKSYmInVuZGVmaW5lZCIhPXR5cGVvZiBFbGVtZW50KXt2YXIgbz10Lk9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcihFbGVtZW50LnByb3RvdHlwZSwib25jbGljayIpO2lmKG8mJiFvLmNvbmZpZ3VyYWJsZSlyZXR1cm4hMTtpZihvKXt0Lk9iamVjdERlZmluZVByb3BlcnR5KEVsZW1lbnQucHJvdG90eXBlLCJvbmNsaWNrIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9fSk7dmFyIGk9ISFkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKS5vbmNsaWNrO3JldHVybiB0Lk9iamVjdERlZmluZVByb3BlcnR5KEVsZW1lbnQucHJvdG90eXBlLCJvbmNsaWNrIixvKSxpfX12YXIgYT1lLlhNTEh0dHBSZXF1ZXN0O2lmKCFhKXJldHVybiExO3ZhciByPSJvbnJlYWR5c3RhdGVjaGFuZ2UiLHM9YS5wcm90b3R5cGUsbD10Lk9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLHIpO2lmKGwpcmV0dXJuIHQuT2JqZWN0RGVmaW5lUHJvcGVydHkocyxyLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19KSxpPSEhKGQ9bmV3IGEpLm9ucmVhZHlzdGF0ZWNoYW5nZSx0Lk9iamVjdERlZmluZVByb3BlcnR5KHMscixsfHx7fSksaTt2YXIgYz10LnN5bWJvbCgiZmFrZSIpO3QuT2JqZWN0RGVmaW5lUHJvcGVydHkocyxyLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tjXX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXNbY109dH19KTt2YXIgZCxwPWZ1bmN0aW9uKCl7fTtyZXR1cm4oZD1uZXcgYSkub25yZWFkeXN0YXRlY2hhbmdlPXAsaT1kW2NdPT09cCxkLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGl9ZnVuY3Rpb24gUHQodCl7Zm9yKHZhciBlPXQuZ2V0R2xvYmFsT2JqZWN0cygpLmV2ZW50TmFtZXMsbj10LnN5bWJvbCgidW5ib3VuZCIpLG89ZnVuY3Rpb24obyl7dmFyIGk9ZVtvXSxhPSJvbiIraTtzZWxmLmFkZEV2ZW50TGlzdGVuZXIoaSwoZnVuY3Rpb24oZSl7dmFyIG8saSxyPWUudGFyZ2V0O2ZvcihpPXI/ci5jb25zdHJ1Y3Rvci5uYW1lKyIuIithOiJ1bmtub3duLiIrYTtyOylyW2FdJiYhclthXVtuXSYmKChvPXQud3JhcFdpdGhDdXJyZW50Wm9uZShyW2FdLGkpKVtuXT1yW2FdLHJbYV09bykscj1yLnBhcmVudEVsZW1lbnR9KSwhMCl9LGk9MDtpPGUubGVuZ3RoO2krKylvKGkpfQovKioKICAgICAgICAgKiBAbGljZW5zZQogICAgICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgICAgICoKICAgICAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAgICAgKi9mdW5jdGlvbiB3dCh0LGUpe3ZhciBuPWUuZ2V0R2xvYmFsT2JqZWN0cygpOyhuLmlzQnJvd3Nlcnx8bi5pc01peCkmJiJyZWdpc3RlckVsZW1lbnQiaW4gdC5kb2N1bWVudCYmZS5wYXRjaENhbGxiYWNrcyhlLGRvY3VtZW50LCJEb2N1bWVudCIsInJlZ2lzdGVyRWxlbWVudCIsWyJjcmVhdGVkQ2FsbGJhY2siLCJhdHRhY2hlZENhbGxiYWNrIiwiZGV0YWNoZWRDYWxsYmFjayIsImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayJdKX0KLyoqCiAgICAgICAgICogQGxpY2Vuc2UKICAgICAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICAgICAqCiAgICAgICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgICAgICovWm9uZS5fX2xvYWRfcGF0Y2goInV0aWwiLChmdW5jdGlvbihuLHMsbCl7bC5wYXRjaE9uUHJvcGVydGllcz1SLGwucGF0Y2hNZXRob2Q9VCxsLmJpbmRBcmd1bWVudHM9QyxsLnBhdGNoTWFjcm9UYXNrPU47dmFyIGY9cy5fX3N5bWJvbF9fKCJCTEFDS19MSVNURURfRVZFTlRTIiksdT1zLl9fc3ltYm9sX18oIlVOUEFUQ0hFRF9FVkVOVFMiKTtuW3VdJiYobltmXT1uW3VdKSxuW2ZdJiYoc1tmXT1zW3VdPW5bZl0pLGwucGF0Y2hFdmVudFByb3RvdHlwZT1LLGwucGF0Y2hFdmVudFRhcmdldD1aLGwuaXNJRU9yRWRnZT1MLGwuT2JqZWN0RGVmaW5lUHJvcGVydHk9ZSxsLk9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcj10LGwuT2JqZWN0Q3JlYXRlPW8sbC5BcnJheVNsaWNlPWksbC5wYXRjaENsYXNzPUEsbC53cmFwV2l0aEN1cnJlbnRab25lPW0sbC5maWx0ZXJQcm9wZXJ0aWVzPWZ0LGwuYXR0YWNoT3JpZ2luVG9QYXRjaGVkPXosbC5fcmVkZWZpbmVQcm9wZXJ0eT1PYmplY3QuZGVmaW5lUHJvcGVydHksbC5wYXRjaENhbGxiYWNrcz1KLGwuZ2V0R2xvYmFsT2JqZWN0cz1mdW5jdGlvbigpe3JldHVybntnbG9iYWxTb3VyY2VzOlcsem9uZVN5bWJvbEV2ZW50TmFtZXM6VSxldmVudE5hbWVzOm10LGlzQnJvd3NlcjpQLGlzTWl4OncsaXNOb2RlOk8sVFJVRV9TVFI6YyxGQUxTRV9TVFI6ZCxaT05FX1NZTUJPTF9QUkVGSVg6cCxBRERfRVZFTlRfTElTVEVORVJfU1RSOmEsUkVNT1ZFX0VWRU5UX0xJU1RFTkVSX1NUUjpyfX19KSksKGZ1bmN0aW9uKHQpe3ZhciBlPXQuX19ab25lX3N5bWJvbF9wcmVmaXh8fCJfX3pvbmVfc3ltYm9sX18iO2Z1bmN0aW9uIG4odCl7cmV0dXJuIGUrdH10W24oImxlZ2FjeVBhdGNoIildPWZ1bmN0aW9uKCl7dmFyIGU9dC5ab25lO2UuX19sb2FkX3BhdGNoKCJkZWZpbmVQcm9wZXJ0eSIsKGZ1bmN0aW9uKHQsZSxuKXtuLl9yZWRlZmluZVByb3BlcnR5PWJ0LGh0KCl9KSksZS5fX2xvYWRfcGF0Y2goInJlZ2lzdGVyRWxlbWVudCIsKGZ1bmN0aW9uKHQsZSxuKXt3dCh0LG4pfSkpLGUuX19sb2FkX3BhdGNoKCJFdmVudFRhcmdldExlZ2FjeSIsKGZ1bmN0aW9uKHQsZSxuKXtNdCh0LG4pLHh0KG4sdCl9KSl9fSkoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OnZvaWQgMCE9PV9PP19POiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnt9KTsKLyoqCiAgICAgICAgICogQGxpY2Vuc2UKICAgICAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICAgICAqCiAgICAgICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgICAgICovCnZhciBrdD11KCJ6b25lVGFzayIpO2Z1bmN0aW9uIFN0KHQsZSxuLG8pe3ZhciBpPW51bGwsYT1udWxsO24rPW87dmFyIHI9e307ZnVuY3Rpb24gcyhlKXt2YXIgbj1lLmRhdGE7cmV0dXJuIG4uYXJnc1swXT1mdW5jdGlvbigpe3JldHVybiBlLmludm9rZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LG4uaGFuZGxlSWQ9aS5hcHBseSh0LG4uYXJncyksZX1mdW5jdGlvbiBsKGUpe3JldHVybiBhLmNhbGwodCxlLmRhdGEuaGFuZGxlSWQpfWk9VCh0LGUrPW8sKGZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbihpLGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhWzBdKXt2YXIgYz17aXNQZXJpb2RpYzoiSW50ZXJ2YWwiPT09byxkZWxheToiVGltZW91dCI9PT1vfHwiSW50ZXJ2YWwiPT09bz9hWzFdfHwwOnZvaWQgMCxhcmdzOmF9LGQ9YVswXTthWzBdPWZ1bmN0aW9uIHQoKXt0cnl7cmV0dXJuIGQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZpbmFsbHl7Yy5pc1BlcmlvZGljfHwoIm51bWJlciI9PXR5cGVvZiBjLmhhbmRsZUlkP2RlbGV0ZSByW2MuaGFuZGxlSWRdOmMuaGFuZGxlSWQmJihjLmhhbmRsZUlkW2t0XT1udWxsKSl9fTt2YXIgcD1mKGUsYVswXSxjLHMsbCk7aWYoIXApcmV0dXJuIHA7dmFyIG09cC5kYXRhLmhhbmRsZUlkO3JldHVybiJudW1iZXIiPT10eXBlb2YgbT9yW21dPXA6bSYmKG1ba3RdPXApLG0mJm0ucmVmJiZtLnVucmVmJiYiZnVuY3Rpb24iPT10eXBlb2YgbS5yZWYmJiJmdW5jdGlvbiI9PXR5cGVvZiBtLnVucmVmJiYocC5yZWY9bS5yZWYuYmluZChtKSxwLnVucmVmPW0udW5yZWYuYmluZChtKSksIm51bWJlciI9PXR5cGVvZiBtfHxtP206cH1yZXR1cm4gbi5hcHBseSh0LGEpfX0pKSxhPVQodCxuLChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24obixvKXt2YXIgaSxhPW9bMF07Im51bWJlciI9PXR5cGVvZiBhP2k9clthXTooaT1hJiZhW2t0XSl8fChpPWEpLGkmJiJzdHJpbmciPT10eXBlb2YgaS50eXBlPyJub3RTY2hlZHVsZWQiIT09aS5zdGF0ZSYmKGkuY2FuY2VsRm4mJmkuZGF0YS5pc1BlcmlvZGljfHwwPT09aS5ydW5Db3VudCkmJigibnVtYmVyIj09dHlwZW9mIGE/ZGVsZXRlIHJbYV06YSYmKGFba3RdPW51bGwpLGkuem9uZS5jYW5jZWxUYXNrKGkpKTplLmFwcGx5KHQsbyl9fSkpfQovKioKICAgICAgICAgKiBAbGljZW5zZQogICAgICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgICAgICoKICAgICAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAgICAgKi9mdW5jdGlvbiBEdCh0LGUpe3ZhciBuPWUuZ2V0R2xvYmFsT2JqZWN0cygpOyhuLmlzQnJvd3Nlcnx8bi5pc01peCkmJnQuY3VzdG9tRWxlbWVudHMmJiJjdXN0b21FbGVtZW50cyJpbiB0JiZlLnBhdGNoQ2FsbGJhY2tzKGUsdC5jdXN0b21FbGVtZW50cywiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiLFsiY29ubmVjdGVkQ2FsbGJhY2siLCJkaXNjb25uZWN0ZWRDYWxsYmFjayIsImFkb3B0ZWRDYWxsYmFjayIsImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayJdKX0KLyoqCiAgICAgICAgICogQGxpY2Vuc2UKICAgICAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICAgICAqCiAgICAgICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgICAgICovZnVuY3Rpb24gUnQodCxlKXtpZighWm9uZVtlLnN5bWJvbCgicGF0Y2hFdmVudFRhcmdldCIpXSl7Zm9yKHZhciBuPWUuZ2V0R2xvYmFsT2JqZWN0cygpLG89bi5ldmVudE5hbWVzLGk9bi56b25lU3ltYm9sRXZlbnROYW1lcyxhPW4uVFJVRV9TVFIscj1uLkZBTFNFX1NUUixzPW4uWk9ORV9TWU1CT0xfUFJFRklYLGw9MDtsPG8ubGVuZ3RoO2wrKyl7dmFyIGM9b1tsXSxkPXMrKGMrcikscD1zKyhjK2EpO2lbY109e30saVtjXVtyXT1kLGlbY11bYV09cH12YXIgbT10LkV2ZW50VGFyZ2V0O2lmKG0mJm0ucHJvdG90eXBlKXJldHVybiBlLnBhdGNoRXZlbnRUYXJnZXQodCxbbSYmbS5wcm90b3R5cGVdKSwhMH19ZnVuY3Rpb24gRXQodCxlKXtlLnBhdGNoRXZlbnRQcm90b3R5cGUodCxlKX0KLyoqCiAgICAgICAgICogQGxpY2Vuc2UKICAgICAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICAgICAqCiAgICAgICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgICAgICovWm9uZS5fX2xvYWRfcGF0Y2goImxlZ2FjeSIsKGZ1bmN0aW9uKHQpe3ZhciBlPXRbWm9uZS5fX3N5bWJvbF9fKCJsZWdhY3lQYXRjaCIpXTtlJiZlKCl9KSksWm9uZS5fX2xvYWRfcGF0Y2goInF1ZXVlTWljcm90YXNrIiwoZnVuY3Rpb24odCxlLG4pe24ucGF0Y2hNZXRob2QodCwicXVldWVNaWNyb3Rhc2siLChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24odCxuKXtlLmN1cnJlbnQuc2NoZWR1bGVNaWNyb1Rhc2soInF1ZXVlTWljcm90YXNrIixuWzBdKX19KSl9KSksWm9uZS5fX2xvYWRfcGF0Y2goInRpbWVycyIsKGZ1bmN0aW9uKHQpe3ZhciBlPSJzZXQiLG49ImNsZWFyIjtTdCh0LGUsbiwiVGltZW91dCIpLFN0KHQsZSxuLCJJbnRlcnZhbCIpLFN0KHQsZSxuLCJJbW1lZGlhdGUiKX0pKSxab25lLl9fbG9hZF9wYXRjaCgicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwoZnVuY3Rpb24odCl7U3QodCwicmVxdWVzdCIsImNhbmNlbCIsIkFuaW1hdGlvbkZyYW1lIiksU3QodCwibW96UmVxdWVzdCIsIm1vekNhbmNlbCIsIkFuaW1hdGlvbkZyYW1lIiksU3QodCwid2Via2l0UmVxdWVzdCIsIndlYmtpdENhbmNlbCIsIkFuaW1hdGlvbkZyYW1lIil9KSksWm9uZS5fX2xvYWRfcGF0Y2goImJsb2NraW5nIiwoZnVuY3Rpb24odCxlKXtmb3IodmFyIG49WyJhbGVydCIsInByb21wdCIsImNvbmZpcm0iXSxvPTA7bzxuLmxlbmd0aDtvKyspVCh0LG5bb10sKGZ1bmN0aW9uKG4sbyxpKXtyZXR1cm4gZnVuY3Rpb24obyxhKXtyZXR1cm4gZS5jdXJyZW50LnJ1bihuLHQsYSxpKX19KSl9KSksWm9uZS5fX2xvYWRfcGF0Y2goIkV2ZW50VGFyZ2V0IiwoZnVuY3Rpb24odCxlLG4pe0V0KHQsbiksUnQodCxuKTt2YXIgbz10LlhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQ7byYmby5wcm90b3R5cGUmJm4ucGF0Y2hFdmVudFRhcmdldCh0LFtvLnByb3RvdHlwZV0pfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJNdXRhdGlvbk9ic2VydmVyIiwoZnVuY3Rpb24odCxlLG4pe0EoIk11dGF0aW9uT2JzZXJ2ZXIiKSxBKCJXZWJLaXRNdXRhdGlvbk9ic2VydmVyIil9KSksWm9uZS5fX2xvYWRfcGF0Y2goIkludGVyc2VjdGlvbk9ic2VydmVyIiwoZnVuY3Rpb24odCxlLG4pe0EoIkludGVyc2VjdGlvbk9ic2VydmVyIil9KSksWm9uZS5fX2xvYWRfcGF0Y2goIkZpbGVSZWFkZXIiLChmdW5jdGlvbih0LGUsbil7QSgiRmlsZVJlYWRlciIpfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJvbl9wcm9wZXJ0eSIsKGZ1bmN0aW9uKHQsZSxuKXtndChuLHQpfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJjdXN0b21FbGVtZW50cyIsKGZ1bmN0aW9uKHQsZSxuKXtEdCh0LG4pfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJYSFIiLChmdW5jdGlvbih0LGUpe2QodCk7dmFyIG49dSgieGhyVGFzayIpLG89dSgieGhyU3luYyIpLGk9dSgieGhyTGlzdGVuZXIiKSxhPXUoInhoclNjaGVkdWxlZCIpLHI9dSgieGhyVVJMIiksYz11KCJ4aHJFcnJvckJlZm9yZVNjaGVkdWxlZCIpO2Z1bmN0aW9uIGQodCl7dmFyIGQ9dC5YTUxIdHRwUmVxdWVzdDtpZihkKXt2YXIgcD1kLnByb3RvdHlwZSxtPXBbc10sZz1wW2xdO2lmKCFtKXt2YXIgaD10LlhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQ7aWYoaCl7dmFyIGI9aC5wcm90b3R5cGU7bT1iW3NdLGc9YltsXX19dmFyIHk9InJlYWR5c3RhdGVjaGFuZ2UiLF89InNjaGVkdWxlZCIsQz1UKHAsIm9wZW4iLChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0LGUpe3JldHVybiB0W29dPTA9PWVbMl0sdFtyXT1lWzFdLEMuYXBwbHkodCxlKX19KSksTT0iWE1MSHR0cFJlcXVlc3Quc2VuZCIsdj11KCJmZXRjaFRhc2tBYm9ydGluZyIpLHg9dSgiZmV0Y2hUYXNrU2NoZWR1bGluZyIpLE89VChwLCJzZW5kIiwoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxuKXtpZighMD09PWUuY3VycmVudFt4XSlyZXR1cm4gTy5hcHBseSh0LG4pO2lmKHRbb10pcmV0dXJuIE8uYXBwbHkodCxuKTt2YXIgaT17dGFyZ2V0OnQsdXJsOnRbcl0saXNQZXJpb2RpYzohMSxhcmdzOm4sYWJvcnRlZDohMX0sYT1mKE0sUyxpLGssRCk7dCYmITA9PT10W2NdJiYhaS5hYm9ydGVkJiZhLnN0YXRlPT09XyYmYS5pbnZva2UoKX19KSksUD1UKHAsImFib3J0IiwoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxuKXt2YXIgbz13KHQpO2lmKG8mJiJzdHJpbmciPT10eXBlb2Ygby50eXBlKXtpZihudWxsPT1vLmNhbmNlbEZufHxvLmRhdGEmJm8uZGF0YS5hYm9ydGVkKXJldHVybjtvLnpvbmUuY2FuY2VsVGFzayhvKX1lbHNlIGlmKCEwPT09ZS5jdXJyZW50W3ZdKXJldHVybiBQLmFwcGx5KHQsbil9fSkpfWZ1bmN0aW9uIHcodCl7cmV0dXJuIHRbbl19ZnVuY3Rpb24gayh0KXt2YXIgbz10LmRhdGEscj1vLnRhcmdldDtyW2FdPSExLHJbY109ITE7dmFyIGQ9cltpXTttfHwobT1yW3NdLGc9cltsXSksZCYmZy5jYWxsKHIseSxkKTt2YXIgcD1yW2ldPWZ1bmN0aW9uKCl7aWYoci5yZWFkeVN0YXRlPT09ci5ET05FKWlmKCFvLmFib3J0ZWQmJnJbYV0mJnQuc3RhdGU9PT1fKXt2YXIgbj1yW2UuX19zeW1ib2xfXygibG9hZGZhbHNlIildO2lmKDAhPT1yLnN0YXR1cyYmbiYmbi5sZW5ndGg+MCl7dmFyIGk9dC5pbnZva2U7dC5pbnZva2U9ZnVuY3Rpb24oKXtmb3IodmFyIG49cltlLl9fc3ltYm9sX18oImxvYWRmYWxzZSIpXSxhPTA7YTxuLmxlbmd0aDthKyspblthXT09PXQmJm4uc3BsaWNlKGEsMSk7by5hYm9ydGVkfHx0LnN0YXRlIT09X3x8aS5jYWxsKHQpfSxuLnB1c2godCl9ZWxzZSB0Lmludm9rZSgpfWVsc2Ugby5hYm9ydGVkfHwhMSE9PXJbYV18fChyW2NdPSEwKX07cmV0dXJuIG0uY2FsbChyLHkscCkscltuXXx8KHJbbl09dCksTy5hcHBseShyLG8uYXJncyksclthXT0hMCx0fWZ1bmN0aW9uIFMoKXt9ZnVuY3Rpb24gRCh0KXt2YXIgZT10LmRhdGE7cmV0dXJuIGUuYWJvcnRlZD0hMCxQLmFwcGx5KGUudGFyZ2V0LGUuYXJncyl9fX0pKSxab25lLl9fbG9hZF9wYXRjaCgiZ2VvbG9jYXRpb24iLChmdW5jdGlvbih0KXt0Lm5hdmlnYXRvciYmdC5uYXZpZ2F0b3IuZ2VvbG9jYXRpb24mJk0odC5uYXZpZ2F0b3IuZ2VvbG9jYXRpb24sWyJnZXRDdXJyZW50UG9zaXRpb24iLCJ3YXRjaFBvc2l0aW9uIl0pfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJQcm9taXNlUmVqZWN0aW9uRXZlbnQiLChmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe1godCxlKS5mb3JFYWNoKChmdW5jdGlvbihvKXt2YXIgaT10LlByb21pc2VSZWplY3Rpb25FdmVudDtpZihpKXt2YXIgYT1uZXcgaShlLHtwcm9taXNlOm4ucHJvbWlzZSxyZWFzb246bi5yZWplY3Rpb259KTtvLmludm9rZShhKX19KSl9fXQuUHJvbWlzZVJlamVjdGlvbkV2ZW50JiYoZVt1KCJ1bmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uSGFuZGxlciIpXT1uKCJ1bmhhbmRsZWRyZWplY3Rpb24iKSxlW3UoInJlamVjdGlvbkhhbmRsZWRIYW5kbGVyIildPW4oInJlamVjdGlvbmhhbmRsZWQiKSl9KSl9KSgpOwovKioKICAgICAqIEBsaWNlbnNlIEFuZ3VsYXIgdjEyLjIuMQogICAgICogKGMpIDIwMTAtMjAyMSBHb29nbGUgTExDLiBodHRwczovL2FuZ3VsYXIuaW8vCiAgICAgKiBMaWNlbnNlOiBNSVQKICAgICAqLwpjbGFzcyBNT3t9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCB2Tz0iKiI7ZnVuY3Rpb24geE8odCxlKXtyZXR1cm57dHlwZTo3LG5hbWU6dCxkZWZpbml0aW9uczplLG9wdGlvbnM6e319fWZ1bmN0aW9uIE9PKHQsZT1udWxsKXtyZXR1cm57dHlwZTo0LHN0eWxlczplLHRpbWluZ3M6dH19ZnVuY3Rpb24gUE8odCxlPW51bGwpe3JldHVybnt0eXBlOjIsc3RlcHM6dCxvcHRpb25zOmV9fWZ1bmN0aW9uIHdPKHQpe3JldHVybnt0eXBlOjYsc3R5bGVzOnQsb2Zmc2V0Om51bGx9fWZ1bmN0aW9uIGtPKHQsZSxuKXtyZXR1cm57dHlwZTowLG5hbWU6dCxzdHlsZXM6ZSxvcHRpb25zOm59fWZ1bmN0aW9uIFNPKHQpe3JldHVybnt0eXBlOjUsc3RlcHM6dH19ZnVuY3Rpb24gRE8odCxlLG49bnVsbCl7cmV0dXJue3R5cGU6MSxleHByOnQsYW5pbWF0aW9uOmUsb3B0aW9uczpufX1mdW5jdGlvbiBSTyh0PW51bGwpe3JldHVybnt0eXBlOjksb3B0aW9uczp0fX1mdW5jdGlvbiBFTyh0LGUsbj1udWxsKXtyZXR1cm57dHlwZToxMSxzZWxlY3Rvcjp0LGFuaW1hdGlvbjplLG9wdGlvbnM6bn19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIEFPKHQpe1Byb21pc2UucmVzb2x2ZShudWxsKS50aGVuKHQpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBUT3tjb25zdHJ1Y3Rvcih0PTAsZT0wKXt0aGlzLl9vbkRvbmVGbnM9W10sdGhpcy5fb25TdGFydEZucz1bXSx0aGlzLl9vbkRlc3Ryb3lGbnM9W10sdGhpcy5fc3RhcnRlZD0hMSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5fcG9zaXRpb249MCx0aGlzLnBhcmVudFBsYXllcj1udWxsLHRoaXMudG90YWxUaW1lPXQrZX1fb25GaW5pc2goKXt0aGlzLl9maW5pc2hlZHx8KHRoaXMuX2ZpbmlzaGVkPSEwLHRoaXMuX29uRG9uZUZucy5mb3JFYWNoKCh0PT50KCkpKSx0aGlzLl9vbkRvbmVGbnM9W10pfW9uU3RhcnQodCl7dGhpcy5fb25TdGFydEZucy5wdXNoKHQpfW9uRG9uZSh0KXt0aGlzLl9vbkRvbmVGbnMucHVzaCh0KX1vbkRlc3Ryb3kodCl7dGhpcy5fb25EZXN0cm95Rm5zLnB1c2godCl9aGFzU3RhcnRlZCgpe3JldHVybiB0aGlzLl9zdGFydGVkfWluaXQoKXt9cGxheSgpe3RoaXMuaGFzU3RhcnRlZCgpfHwodGhpcy5fb25TdGFydCgpLHRoaXMudHJpZ2dlck1pY3JvdGFzaygpKSx0aGlzLl9zdGFydGVkPSEwfXRyaWdnZXJNaWNyb3Rhc2soKXtBTygoKCk9PnRoaXMuX29uRmluaXNoKCkpKX1fb25TdGFydCgpe3RoaXMuX29uU3RhcnRGbnMuZm9yRWFjaCgodD0+dCgpKSksdGhpcy5fb25TdGFydEZucz1bXX1wYXVzZSgpe31yZXN0YXJ0KCl7fWZpbmlzaCgpe3RoaXMuX29uRmluaXNoKCl9ZGVzdHJveSgpe3RoaXMuX2Rlc3Ryb3llZHx8KHRoaXMuX2Rlc3Ryb3llZD0hMCx0aGlzLmhhc1N0YXJ0ZWQoKXx8dGhpcy5fb25TdGFydCgpLHRoaXMuZmluaXNoKCksdGhpcy5fb25EZXN0cm95Rm5zLmZvckVhY2goKHQ9PnQoKSkpLHRoaXMuX29uRGVzdHJveUZucz1bXSl9cmVzZXQoKXt0aGlzLl9zdGFydGVkPSExfXNldFBvc2l0aW9uKHQpe3RoaXMuX3Bvc2l0aW9uPXRoaXMudG90YWxUaW1lP3QqdGhpcy50b3RhbFRpbWU6MX1nZXRQb3NpdGlvbigpe3JldHVybiB0aGlzLnRvdGFsVGltZT90aGlzLl9wb3NpdGlvbi90aGlzLnRvdGFsVGltZToxfXRyaWdnZXJDYWxsYmFjayh0KXtjb25zdCBlPSJzdGFydCI9PXQ/dGhpcy5fb25TdGFydEZuczp0aGlzLl9vbkRvbmVGbnM7ZS5mb3JFYWNoKCh0PT50KCkpKSxlLmxlbmd0aD0wfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgTk97Y29uc3RydWN0b3IodCl7dGhpcy5fb25Eb25lRm5zPVtdLHRoaXMuX29uU3RhcnRGbnM9W10sdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5fc3RhcnRlZD0hMSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fb25EZXN0cm95Rm5zPVtdLHRoaXMucGFyZW50UGxheWVyPW51bGwsdGhpcy50b3RhbFRpbWU9MCx0aGlzLnBsYXllcnM9dDtsZXQgZT0wLG49MCxvPTA7Y29uc3QgaT10aGlzLnBsYXllcnMubGVuZ3RoOzA9PWk/QU8oKCgpPT50aGlzLl9vbkZpbmlzaCgpKSk6dGhpcy5wbGF5ZXJzLmZvckVhY2goKHQ9Pnt0Lm9uRG9uZSgoKCk9PnsrK2U9PWkmJnRoaXMuX29uRmluaXNoKCl9KSksdC5vbkRlc3Ryb3koKCgpPT57KytuPT1pJiZ0aGlzLl9vbkRlc3Ryb3koKX0pKSx0Lm9uU3RhcnQoKCgpPT57KytvPT1pJiZ0aGlzLl9vblN0YXJ0KCl9KSl9KSksdGhpcy50b3RhbFRpbWU9dGhpcy5wbGF5ZXJzLnJlZHVjZSgoKHQsZSk9Pk1hdGgubWF4KHQsZS50b3RhbFRpbWUpKSwwKX1fb25GaW5pc2goKXt0aGlzLl9maW5pc2hlZHx8KHRoaXMuX2ZpbmlzaGVkPSEwLHRoaXMuX29uRG9uZUZucy5mb3JFYWNoKCh0PT50KCkpKSx0aGlzLl9vbkRvbmVGbnM9W10pfWluaXQoKXt0aGlzLnBsYXllcnMuZm9yRWFjaCgodD0+dC5pbml0KCkpKX1vblN0YXJ0KHQpe3RoaXMuX29uU3RhcnRGbnMucHVzaCh0KX1fb25TdGFydCgpe3RoaXMuaGFzU3RhcnRlZCgpfHwodGhpcy5fc3RhcnRlZD0hMCx0aGlzLl9vblN0YXJ0Rm5zLmZvckVhY2goKHQ9PnQoKSkpLHRoaXMuX29uU3RhcnRGbnM9W10pfW9uRG9uZSh0KXt0aGlzLl9vbkRvbmVGbnMucHVzaCh0KX1vbkRlc3Ryb3kodCl7dGhpcy5fb25EZXN0cm95Rm5zLnB1c2godCl9aGFzU3RhcnRlZCgpe3JldHVybiB0aGlzLl9zdGFydGVkfXBsYXkoKXt0aGlzLnBhcmVudFBsYXllcnx8dGhpcy5pbml0KCksdGhpcy5fb25TdGFydCgpLHRoaXMucGxheWVycy5mb3JFYWNoKCh0PT50LnBsYXkoKSkpfXBhdXNlKCl7dGhpcy5wbGF5ZXJzLmZvckVhY2goKHQ9PnQucGF1c2UoKSkpfXJlc3RhcnQoKXt0aGlzLnBsYXllcnMuZm9yRWFjaCgodD0+dC5yZXN0YXJ0KCkpKX1maW5pc2goKXt0aGlzLl9vbkZpbmlzaCgpLHRoaXMucGxheWVycy5mb3JFYWNoKCh0PT50LmZpbmlzaCgpKSl9ZGVzdHJveSgpe3RoaXMuX29uRGVzdHJveSgpfV9vbkRlc3Ryb3koKXt0aGlzLl9kZXN0cm95ZWR8fCh0aGlzLl9kZXN0cm95ZWQ9ITAsdGhpcy5fb25GaW5pc2goKSx0aGlzLnBsYXllcnMuZm9yRWFjaCgodD0+dC5kZXN0cm95KCkpKSx0aGlzLl9vbkRlc3Ryb3lGbnMuZm9yRWFjaCgodD0+dCgpKSksdGhpcy5fb25EZXN0cm95Rm5zPVtdKX1yZXNldCgpe3RoaXMucGxheWVycy5mb3JFYWNoKCh0PT50LnJlc2V0KCkpKSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5fc3RhcnRlZD0hMX1zZXRQb3NpdGlvbih0KXtjb25zdCBlPXQqdGhpcy50b3RhbFRpbWU7dGhpcy5wbGF5ZXJzLmZvckVhY2goKHQ9Pntjb25zdCBuPXQudG90YWxUaW1lP01hdGgubWluKDEsZS90LnRvdGFsVGltZSk6MTt0LnNldFBvc2l0aW9uKG4pfSkpfWdldFBvc2l0aW9uKCl7Y29uc3QgdD10aGlzLnBsYXllcnMucmVkdWNlKCgodCxlKT0+bnVsbD09PXR8fGUudG90YWxUaW1lPnQudG90YWxUaW1lP2U6dCksbnVsbCk7cmV0dXJuIG51bGwhPXQ/dC5nZXRQb3NpdGlvbigpOjB9YmVmb3JlRGVzdHJveSgpe3RoaXMucGxheWVycy5mb3JFYWNoKCh0PT57dC5iZWZvcmVEZXN0cm95JiZ0LmJlZm9yZURlc3Ryb3koKX0pKX10cmlnZ2VyQ2FsbGJhY2sodCl7Y29uc3QgZT0ic3RhcnQiPT10P3RoaXMuX29uU3RhcnRGbnM6dGhpcy5fb25Eb25lRm5zO2UuZm9yRWFjaCgodD0+dCgpKSksZS5sZW5ndGg9MH19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlIEFuZ3VsYXIgdjEyLjIuMQogICAgICogKGMpIDIwMTAtMjAyMSBHb29nbGUgTExDLiBodHRwczovL2FuZ3VsYXIuaW8vCiAgICAgKiBMaWNlbnNlOiBNSVQKICAgICAqLwpmdW5jdGlvbiB6Tygpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuZG9jdW1lbnR9ZnVuY3Rpb24gSU8oKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHByb2Nlc3MmJiJbb2JqZWN0IHByb2Nlc3NdIj09PXt9LnRvU3RyaW5nLmNhbGwocHJvY2Vzcyl9ZnVuY3Rpb24gSE8odCl7c3dpdGNoKHQubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIG5ldyBUTztjYXNlIDE6cmV0dXJuIHRbMF07ZGVmYXVsdDpyZXR1cm4gbmV3IE5PKHQpfX1mdW5jdGlvbiBGTyh0LGUsbixvLGk9e30sYT17fSl7Y29uc3Qgcj1bXSxzPVtdO2xldCBsPS0xLGM9bnVsbDtpZihvLmZvckVhY2goKHQ9Pntjb25zdCBuPXQub2Zmc2V0LG89bj09bCxkPW8mJmN8fHt9O09iamVjdC5rZXlzKHQpLmZvckVhY2goKG49PntsZXQgbz1uLHM9dFtuXTtpZigib2Zmc2V0IiE9PW4pc3dpdGNoKG89ZS5ub3JtYWxpemVQcm9wZXJ0eU5hbWUobyxyKSxzKXtjYXNlIiEiOnM9aVtuXTticmVhaztjYXNlIHZPOnM9YVtuXTticmVhaztkZWZhdWx0OnM9ZS5ub3JtYWxpemVTdHlsZVZhbHVlKG4sbyxzLHIpfWRbb109c30pKSxvfHxzLnB1c2goZCksYz1kLGw9bn0pKSxyLmxlbmd0aCl7Y29uc3QgdD0iXG4gLSAiO3Rocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGFuaW1hdGUgZHVlIHRvIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiR7dH0ke3Iuam9pbih0KX1gKX1yZXR1cm4gc31mdW5jdGlvbiBMTyh0LGUsbixvKXtzd2l0Y2goZSl7Y2FzZSJzdGFydCI6dC5vblN0YXJ0KCgoKT0+byhuJiZCTyhuLCJzdGFydCIsdCkpKSk7YnJlYWs7Y2FzZSJkb25lIjp0Lm9uRG9uZSgoKCk9Pm8obiYmQk8obiwiZG9uZSIsdCkpKSk7YnJlYWs7Y2FzZSJkZXN0cm95Ijp0Lm9uRGVzdHJveSgoKCk9Pm8obiYmQk8obiwiZGVzdHJveSIsdCkpKSl9fWZ1bmN0aW9uIEJPKHQsZSxuKXtjb25zdCBvPW4udG90YWxUaW1lLGk9Vk8odC5lbGVtZW50LHQudHJpZ2dlck5hbWUsdC5mcm9tU3RhdGUsdC50b1N0YXRlLGV8fHQucGhhc2VOYW1lLG51bGw9PW8/dC50b3RhbFRpbWU6bywhIW4uZGlzYWJsZWQpLGE9dC5fZGF0YTtyZXR1cm4gbnVsbCE9YSYmKGkuX2RhdGE9YSksaX1mdW5jdGlvbiBWTyh0LGUsbixvLGk9IiIsYT0wLHIpe3JldHVybntlbGVtZW50OnQsdHJpZ2dlck5hbWU6ZSxmcm9tU3RhdGU6bix0b1N0YXRlOm8scGhhc2VOYW1lOmksdG90YWxUaW1lOmEsZGlzYWJsZWQ6ISFyfX1mdW5jdGlvbiBqTyh0LGUsbil7bGV0IG87cmV0dXJuIHQgaW5zdGFuY2VvZiBNYXA/KG89dC5nZXQoZSksb3x8dC5zZXQoZSxvPW4pKToobz10W2VdLG98fChvPXRbZV09bikpLG99ZnVuY3Rpb24gVU8odCl7Y29uc3QgZT10LmluZGV4T2YoIjoiKTtyZXR1cm5bdC5zdWJzdHJpbmcoMSxlKSx0LnN1YnN0cihlKzEpXX1sZXQgV089KHQsZSk9PiExLEdPPSh0LGUpPT4hMSxZTz0odCxlLG4pPT5bXTtjb25zdCBxTz1JTygpOyhxT3x8InVuZGVmaW5lZCIhPXR5cGVvZiBFbGVtZW50KSYmKFdPPXpPKCk/KHQsZSk9Pntmb3IoO2UmJmUhPT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7KXtpZihlPT09dClyZXR1cm4hMDtlPWUucGFyZW50Tm9kZXx8ZS5ob3N0fXJldHVybiExfToodCxlKT0+dC5jb250YWlucyhlKSxHTz0oKCk9PntpZihxT3x8RWxlbWVudC5wcm90b3R5cGUubWF0Y2hlcylyZXR1cm4odCxlKT0+dC5tYXRjaGVzKGUpO3tjb25zdCB0PUVsZW1lbnQucHJvdG90eXBlLGU9dC5tYXRjaGVzU2VsZWN0b3J8fHQubW96TWF0Y2hlc1NlbGVjdG9yfHx0Lm1zTWF0Y2hlc1NlbGVjdG9yfHx0Lm9NYXRjaGVzU2VsZWN0b3J8fHQud2Via2l0TWF0Y2hlc1NlbGVjdG9yO3JldHVybiBlPyh0LG4pPT5lLmFwcGx5KHQsW25dKTpHT319KSgpLFlPPSh0LGUsbik9PntsZXQgbz1bXTtpZihuKXtjb25zdCBuPXQucXVlcnlTZWxlY3RvckFsbChlKTtmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoO3QrKylvLnB1c2goblt0XSl9ZWxzZXtjb25zdCBuPXQucXVlcnlTZWxlY3RvcihlKTtuJiZvLnB1c2gobil9cmV0dXJuIG99KTtsZXQgWk89bnVsbCxYTz0hMTtmdW5jdGlvbiBLTyh0KXtaT3x8KFpPPShmdW5jdGlvbiBlKCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudClyZXR1cm4gZG9jdW1lbnQuYm9keTtyZXR1cm4gbnVsbH0pKCl8fHt9LFhPPSEhWk8uc3R5bGUmJiJXZWJraXRBcHBlYXJhbmNlImluIFpPLnN0eWxlKTtsZXQgbj0hMDtpZihaTy5zdHlsZSYmIShmdW5jdGlvbiBvKHQpe3JldHVybiJlYmtpdCI9PXQuc3Vic3RyaW5nKDEsNil9KSh0KSYmKG49dCBpbiBaTy5zdHlsZSwhbiYmWE8pKXtuPSJXZWJraXQiK3QuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdC5zdWJzdHIoMSlpbiBaTy5zdHlsZX1yZXR1cm4gbn1jb25zdCBKTz1HTyxRTz1XTywkTz1ZTztmdW5jdGlvbiB0UCh0KXtjb25zdCBlPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChuPT57Y29uc3Qgbz1uLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csIiQxLSQyIik7ZVtvXT10W25dfSkpLGV9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIGVQe3ZhbGlkYXRlU3R5bGVQcm9wZXJ0eSh0KXtyZXR1cm4gS08odCl9bWF0Y2hlc0VsZW1lbnQodCxlKXtyZXR1cm4gSk8odCxlKX1jb250YWluc0VsZW1lbnQodCxlKXtyZXR1cm4gUU8odCxlKX1xdWVyeSh0LGUsbil7cmV0dXJuICRPKHQsZSxuKX1jb21wdXRlU3R5bGUodCxlLG4pe3JldHVybiBufHwiIn1hbmltYXRlKHQsZSxuLG8saSxhPVtdLHIpe3JldHVybiBuZXcgVE8obixvKX19ZVAuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGVQKX0sZVAuybVwcm92PVNuKHt0b2tlbjplUCxmYWN0b3J5OmVQLsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihlUCxbe3R5cGU6VW19XSxudWxsLG51bGwpO2NsYXNzIG5Qe31uUC5OT09QPW5ldyBlUDsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IG9QPSJuZy1lbnRlciIsaVA9Im5nLWxlYXZlIixhUD0ibmctdHJpZ2dlciIsclA9Ii5uZy10cmlnZ2VyIixzUD0ibmctYW5pbWF0aW5nIixsUD0iLm5nLWFuaW1hdGluZyI7ZnVuY3Rpb24gY1AodCl7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiB0O2NvbnN0IGU9dC5tYXRjaCgvXigtP1tcLlxkXSspKG0/cykvKTtyZXR1cm4hZXx8ZS5sZW5ndGg8Mj8wOmRQKHBhcnNlRmxvYXQoZVsxXSksZVsyXSl9ZnVuY3Rpb24gZFAodCxlKXtzd2l0Y2goZSl7Y2FzZSJzIjpyZXR1cm4gMWUzKnQ7ZGVmYXVsdDpyZXR1cm4gdH19ZnVuY3Rpb24gcFAodCxlLG4pe3JldHVybiB0Lmhhc093blByb3BlcnR5KCJkdXJhdGlvbiIpP3Q6KGZ1bmN0aW9uIG8odCxlLG4pe2NvbnN0IG89L14oLT9bXC5cZF0rKShtP3MpKD86XHMrKC0/W1wuXGRdKykobT9zKSk/KD86XHMrKFstYS16XSsoPzpcKC4rP1wpKT8pKT8kL2k7bGV0IGksYT0wLHI9IiI7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtjb25zdCBuPXQubWF0Y2gobyk7aWYobnVsbD09PW4pcmV0dXJuIGUucHVzaChgVGhlIHByb3ZpZGVkIHRpbWluZyB2YWx1ZSAiJHt0fSIgaXMgaW52YWxpZC5gKSx7ZHVyYXRpb246MCxkZWxheTowLGVhc2luZzoiIn07aT1kUChwYXJzZUZsb2F0KG5bMV0pLG5bMl0pO2NvbnN0IHM9blszXTtudWxsIT1zJiYoYT1kUChwYXJzZUZsb2F0KHMpLG5bNF0pKTtjb25zdCBsPW5bNV07bCYmKHI9bCl9ZWxzZSBpPXQ7aWYoIW4pe2xldCBuPSExLG89ZS5sZW5ndGg7aTwwJiYoZS5wdXNoKCJEdXJhdGlvbiB2YWx1ZXMgYmVsb3cgMCBhcmUgbm90IGFsbG93ZWQgZm9yIHRoaXMgYW5pbWF0aW9uIHN0ZXAuIiksbj0hMCksYTwwJiYoZS5wdXNoKCJEZWxheSB2YWx1ZXMgYmVsb3cgMCBhcmUgbm90IGFsbG93ZWQgZm9yIHRoaXMgYW5pbWF0aW9uIHN0ZXAuIiksbj0hMCksbiYmZS5zcGxpY2UobywwLGBUaGUgcHJvdmlkZWQgdGltaW5nIHZhbHVlICIke3R9IiBpcyBpbnZhbGlkLmApfXJldHVybntkdXJhdGlvbjppLGRlbGF5OmEsZWFzaW5nOnJ9fSkodCxlLG4pfWZ1bmN0aW9uIG1QKHQsZT17fSl7cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goKG49PntlW25dPXRbbl19KSksZX1mdW5jdGlvbiBmUCh0LGUsbj17fSl7aWYoZSlmb3IobGV0IGUgaW4gdCluW2VdPXRbZV07ZWxzZSBtUCh0LG4pO3JldHVybiBufWZ1bmN0aW9uIHVQKHQsZSxuKXtyZXR1cm4gbj9lKyI6IituKyI7IjoiIn1mdW5jdGlvbiBnUCh0KXtsZXQgZT0iIjtmb3IobGV0IG49MDtuPHQuc3R5bGUubGVuZ3RoO24rKyl7Y29uc3Qgbz10LnN0eWxlLml0ZW0obik7ZSs9dVAoMCxvLHQuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShvKSl9Zm9yKGNvbnN0IG4gaW4gdC5zdHlsZSl7aWYoIXQuc3R5bGUuaGFzT3duUHJvcGVydHkobil8fG4uc3RhcnRzV2l0aCgiXyIpKWNvbnRpbnVlO2UrPXVQKDAsbi5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCIkMS0kMiIpLnRvTG93ZXJDYXNlKCksdC5zdHlsZVtuXSl9dC5zZXRBdHRyaWJ1dGUoInN0eWxlIixlKX1mdW5jdGlvbiBoUCh0LGUsbil7dC5zdHlsZSYmKE9iamVjdC5rZXlzKGUpLmZvckVhY2goKG89Pntjb25zdCBpPU9QKG8pO24mJiFuLmhhc093blByb3BlcnR5KG8pJiYobltvXT10LnN0eWxlW2ldKSx0LnN0eWxlW2ldPWVbb119KSksSU8oKSYmZ1AodCkpfWZ1bmN0aW9uIGJQKHQsZSl7dC5zdHlsZSYmKE9iamVjdC5rZXlzKGUpLmZvckVhY2goKGU9Pntjb25zdCBuPU9QKGUpO3Quc3R5bGVbbl09IiJ9KSksSU8oKSYmZ1AodCkpfWZ1bmN0aW9uIHlQKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpPzE9PXQubGVuZ3RoP3RbMF06UE8odCk6dH1jb25zdCBfUD1uZXcgUmVnRXhwKCJ7e1xccyooLis/KVxccyp9fSIsImciKTtmdW5jdGlvbiBDUCh0KXtsZXQgZT1bXTtpZigic3RyaW5nIj09dHlwZW9mIHQpe2xldCBuO2Zvcig7bj1fUC5leGVjKHQpOyllLnB1c2goblsxXSk7X1AubGFzdEluZGV4PTB9cmV0dXJuIGV9ZnVuY3Rpb24gTVAodCxlLG4pe2NvbnN0IG89dC50b1N0cmluZygpLGk9by5yZXBsYWNlKF9QLCgodCxvKT0+e2xldCBpPWVbb107cmV0dXJuIGUuaGFzT3duUHJvcGVydHkobyl8fChuLnB1c2goYFBsZWFzZSBwcm92aWRlIGEgdmFsdWUgZm9yIHRoZSBhbmltYXRpb24gcGFyYW0gJHtvfWApLGk9IiIpLGkudG9TdHJpbmcoKX0pKTtyZXR1cm4gaT09bz90Oml9ZnVuY3Rpb24gdlAodCl7Y29uc3QgZT1bXTtsZXQgbj10Lm5leHQoKTtmb3IoOyFuLmRvbmU7KWUucHVzaChuLnZhbHVlKSxuPXQubmV4dCgpO3JldHVybiBlfWNvbnN0IHhQPS8tKyhbYS16MC05XSkvZztmdW5jdGlvbiBPUCh0KXtyZXR1cm4gdC5yZXBsYWNlKHhQLCgoLi4udCk9PnRbMV0udG9VcHBlckNhc2UoKSkpfWZ1bmN0aW9uIFBQKHQsZSl7cmV0dXJuIDA9PT10fHwwPT09ZX1mdW5jdGlvbiB3UCh0LGUsbil7Y29uc3Qgbz1PYmplY3Qua2V5cyhuKTtpZihvLmxlbmd0aCYmZS5sZW5ndGgpe2xldCBhPWVbMF0scj1bXTtpZihvLmZvckVhY2goKHQ9PnthLmhhc093blByb3BlcnR5KHQpfHxyLnB1c2godCksYVt0XT1uW3RdfSkpLHIubGVuZ3RoKWZvcih2YXIgaT0xO2k8ZS5sZW5ndGg7aSsrKXtsZXQgbj1lW2ldO3IuZm9yRWFjaCgoZnVuY3Rpb24oZSl7bltlXT1TUCh0LGUpfSkpfX1yZXR1cm4gZX1mdW5jdGlvbiBrUCh0LGUsbil7c3dpdGNoKGUudHlwZSl7Y2FzZSA3OnJldHVybiB0LnZpc2l0VHJpZ2dlcihlLG4pO2Nhc2UgMDpyZXR1cm4gdC52aXNpdFN0YXRlKGUsbik7Y2FzZSAxOnJldHVybiB0LnZpc2l0VHJhbnNpdGlvbihlLG4pO2Nhc2UgMjpyZXR1cm4gdC52aXNpdFNlcXVlbmNlKGUsbik7Y2FzZSAzOnJldHVybiB0LnZpc2l0R3JvdXAoZSxuKTtjYXNlIDQ6cmV0dXJuIHQudmlzaXRBbmltYXRlKGUsbik7Y2FzZSA1OnJldHVybiB0LnZpc2l0S2V5ZnJhbWVzKGUsbik7Y2FzZSA2OnJldHVybiB0LnZpc2l0U3R5bGUoZSxuKTtjYXNlIDg6cmV0dXJuIHQudmlzaXRSZWZlcmVuY2UoZSxuKTtjYXNlIDk6cmV0dXJuIHQudmlzaXRBbmltYXRlQ2hpbGQoZSxuKTtjYXNlIDEwOnJldHVybiB0LnZpc2l0QW5pbWF0ZVJlZihlLG4pO2Nhc2UgMTE6cmV0dXJuIHQudmlzaXRRdWVyeShlLG4pO2Nhc2UgMTI6cmV0dXJuIHQudmlzaXRTdGFnZ2VyKGUsbik7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byByZXNvbHZlIGFuaW1hdGlvbiBtZXRhZGF0YSBub2RlICMke2UudHlwZX1gKX19ZnVuY3Rpb24gU1AodCxlKXtyZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUodClbZV19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IERQPSIqIjtmdW5jdGlvbiBSUCh0LGUpe2NvbnN0IG49W107cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P3Quc3BsaXQoL1xzKixccyovKS5mb3JFYWNoKCh0PT4oZnVuY3Rpb24gbyh0LGUsbil7aWYoIjoiPT10WzBdKXtjb25zdCBvPShmdW5jdGlvbiBvKHQsZSl7c3dpdGNoKHQpe2Nhc2UiOmVudGVyIjpyZXR1cm4idm9pZCA9PiAqIjtjYXNlIjpsZWF2ZSI6cmV0dXJuIiogPT4gdm9pZCI7Y2FzZSI6aW5jcmVtZW50IjpyZXR1cm4odCxlKT0+cGFyc2VGbG9hdChlKT5wYXJzZUZsb2F0KHQpO2Nhc2UiOmRlY3JlbWVudCI6cmV0dXJuKHQsZSk9PnBhcnNlRmxvYXQoZSk8cGFyc2VGbG9hdCh0KTtkZWZhdWx0OnJldHVybiBlLnB1c2goYFRoZSB0cmFuc2l0aW9uIGFsaWFzIHZhbHVlICIke3R9IiBpcyBub3Qgc3VwcG9ydGVkYCksIiogPT4gKiJ9fSkodCxuKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgbylyZXR1cm4gdm9pZCBlLnB1c2gobyk7dD1vfWNvbnN0IGk9dC5tYXRjaCgvXihcKnxbLVx3XSspXHMqKDw/Wz0tXT4pXHMqKFwqfFstXHddKykkLyk7aWYobnVsbD09aXx8aS5sZW5ndGg8NClyZXR1cm4gbi5wdXNoKGBUaGUgcHJvdmlkZWQgdHJhbnNpdGlvbiBleHByZXNzaW9uICIke3R9IiBpcyBub3Qgc3VwcG9ydGVkYCksZTtjb25zdCBhPWlbMV0scj1pWzJdLHM9aVszXTtlLnB1c2goVFAoYSxzKSk7Y29uc3QgbD1hPT1EUCYmcz09RFA7IjwiIT1yWzBdfHxsfHxlLnB1c2goVFAocyxhKSl9KSh0LG4sZSkpKTpuLnB1c2godCksbn1jb25zdCBFUD1uZXcgU2V0KFsidHJ1ZSIsIjEiXSksQVA9bmV3IFNldChbImZhbHNlIiwiMCJdKTtmdW5jdGlvbiBUUCh0LGUpe2NvbnN0IG49RVAuaGFzKHQpfHxBUC5oYXModCksbz1FUC5oYXMoZSl8fEFQLmhhcyhlKTtyZXR1cm4oaSxhKT0+e2xldCByPXQ9PURQfHx0PT1pLHM9ZT09RFB8fGU9PWE7cmV0dXJuIXImJm4mJiJib29sZWFuIj09dHlwZW9mIGkmJihyPWk/RVAuaGFzKHQpOkFQLmhhcyh0KSksIXMmJm8mJiJib29sZWFuIj09dHlwZW9mIGEmJihzPWE/RVAuaGFzKGUpOkFQLmhhcyhlKSksciYmc319Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IE5QPSI6c2VsZiIselA9bmV3IFJlZ0V4cCgicyo6c2VsZnMqLD8iLCJnIik7ZnVuY3Rpb24gSVAodCxlLG4pe3JldHVybiBuZXcgSFAodCkuYnVpbGQoZSxuKX1jbGFzcyBIUHtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9kcml2ZXI9dH1idWlsZCh0LGUpe2NvbnN0IG49bmV3IEZQKGUpO3JldHVybiB0aGlzLl9yZXNldENvbnRleHRTdHlsZVRpbWluZ1N0YXRlKG4pLGtQKHRoaXMseVAodCksbil9X3Jlc2V0Q29udGV4dFN0eWxlVGltaW5nU3RhdGUodCl7dC5jdXJyZW50UXVlcnlTZWxlY3Rvcj0iIix0LmNvbGxlY3RlZFN0eWxlcz17fSx0LmNvbGxlY3RlZFN0eWxlc1siIl09e30sdC5jdXJyZW50VGltZT0wfXZpc2l0VHJpZ2dlcih0LGUpe2xldCBuPWUucXVlcnlDb3VudD0wLG89ZS5kZXBDb3VudD0wO2NvbnN0IGk9W10sYT1bXTtyZXR1cm4iQCI9PXQubmFtZS5jaGFyQXQoMCkmJmUuZXJyb3JzLnB1c2goImFuaW1hdGlvbiB0cmlnZ2VycyBjYW5ub3QgYmUgcHJlZml4ZWQgd2l0aCBhbiBgQGAgc2lnbiAoZS5nLiB0cmlnZ2VyKCdAZm9vJywgWy4uLl0pKSIpLHQuZGVmaW5pdGlvbnMuZm9yRWFjaCgodD0+e2lmKHRoaXMuX3Jlc2V0Q29udGV4dFN0eWxlVGltaW5nU3RhdGUoZSksMD09dC50eXBlKXtjb25zdCBuPXQsbz1uLm5hbWU7by50b1N0cmluZygpLnNwbGl0KC9ccyosXHMqLykuZm9yRWFjaCgodD0+e24ubmFtZT10LGkucHVzaCh0aGlzLnZpc2l0U3RhdGUobixlKSl9KSksbi5uYW1lPW99ZWxzZSBpZigxPT10LnR5cGUpe2NvbnN0IGk9dGhpcy52aXNpdFRyYW5zaXRpb24odCxlKTtuKz1pLnF1ZXJ5Q291bnQsbys9aS5kZXBDb3VudCxhLnB1c2goaSl9ZWxzZSBlLmVycm9ycy5wdXNoKCJvbmx5IHN0YXRlKCkgYW5kIHRyYW5zaXRpb24oKSBkZWZpbml0aW9ucyBjYW4gc2l0IGluc2lkZSBvZiBhIHRyaWdnZXIoKSIpfSkpLHt0eXBlOjcsbmFtZTp0Lm5hbWUsc3RhdGVzOmksdHJhbnNpdGlvbnM6YSxxdWVyeUNvdW50Om4sZGVwQ291bnQ6byxvcHRpb25zOm51bGx9fXZpc2l0U3RhdGUodCxlKXtjb25zdCBuPXRoaXMudmlzaXRTdHlsZSh0LnN0eWxlcyxlKSxvPXQub3B0aW9ucyYmdC5vcHRpb25zLnBhcmFtc3x8bnVsbDtpZihuLmNvbnRhaW5zRHluYW1pY1N0eWxlcyl7Y29uc3QgaT1uZXcgU2V0LGE9b3x8e307aWYobi5zdHlsZXMuZm9yRWFjaCgodD0+e2lmKExQKHQpKXtjb25zdCBlPXQ7T2JqZWN0LmtleXMoZSkuZm9yRWFjaCgodD0+e0NQKGVbdF0pLmZvckVhY2goKHQ9PnthLmhhc093blByb3BlcnR5KHQpfHxpLmFkZCh0KX0pKX0pKX19KSksaS5zaXplKXtjb25zdCBuPXZQKGkudmFsdWVzKCkpO2UuZXJyb3JzLnB1c2goYHN0YXRlKCIke3QubmFtZX0iLCAuLi4pIG11c3QgZGVmaW5lIGRlZmF1bHQgdmFsdWVzIGZvciBhbGwgdGhlIGZvbGxvd2luZyBzdHlsZSBzdWJzdGl0dXRpb25zOiAke24uam9pbigiLCAiKX1gKX19cmV0dXJue3R5cGU6MCxuYW1lOnQubmFtZSxzdHlsZTpuLG9wdGlvbnM6bz97cGFyYW1zOm99Om51bGx9fXZpc2l0VHJhbnNpdGlvbih0LGUpe2UucXVlcnlDb3VudD0wLGUuZGVwQ291bnQ9MDtjb25zdCBuPWtQKHRoaXMseVAodC5hbmltYXRpb24pLGUpO3JldHVybnt0eXBlOjEsbWF0Y2hlcnM6UlAodC5leHByLGUuZXJyb3JzKSxhbmltYXRpb246bixxdWVyeUNvdW50OmUucXVlcnlDb3VudCxkZXBDb3VudDplLmRlcENvdW50LG9wdGlvbnM6QlAodC5vcHRpb25zKX19dmlzaXRTZXF1ZW5jZSh0LGUpe3JldHVybnt0eXBlOjIsc3RlcHM6dC5zdGVwcy5tYXAoKHQ9PmtQKHRoaXMsdCxlKSkpLG9wdGlvbnM6QlAodC5vcHRpb25zKX19dmlzaXRHcm91cCh0LGUpe2NvbnN0IG49ZS5jdXJyZW50VGltZTtsZXQgbz0wO2NvbnN0IGk9dC5zdGVwcy5tYXAoKHQ9PntlLmN1cnJlbnRUaW1lPW47Y29uc3QgaT1rUCh0aGlzLHQsZSk7cmV0dXJuIG89TWF0aC5tYXgobyxlLmN1cnJlbnRUaW1lKSxpfSkpO3JldHVybiBlLmN1cnJlbnRUaW1lPW8se3R5cGU6MyxzdGVwczppLG9wdGlvbnM6QlAodC5vcHRpb25zKX19dmlzaXRBbmltYXRlKHQsZSl7Y29uc3Qgbj0oZnVuY3Rpb24gbyh0LGUpe2xldCBuPW51bGw7aWYodC5oYXNPd25Qcm9wZXJ0eSgiZHVyYXRpb24iKSluPXQ7ZWxzZSBpZigibnVtYmVyIj09dHlwZW9mIHQpe3JldHVybiBWUChwUCh0LGUpLmR1cmF0aW9uLDAsIiIpfWNvbnN0IG89dDtpZihvLnNwbGl0KC9ccysvKS5zb21lKCh0PT4ieyI9PXQuY2hhckF0KDApJiYieyI9PXQuY2hhckF0KDEpKSkpe2NvbnN0IHQ9VlAoMCwwLCIiKTtyZXR1cm4gdC5keW5hbWljPSEwLHQuc3RyVmFsdWU9byx0fXJldHVybiBuPW58fHBQKG8sZSksVlAobi5kdXJhdGlvbixuLmRlbGF5LG4uZWFzaW5nKX0pKHQudGltaW5ncyxlLmVycm9ycyk7bGV0IGk7ZS5jdXJyZW50QW5pbWF0ZVRpbWluZ3M9bjtsZXQgYT10LnN0eWxlcz90LnN0eWxlczp3Tyh7fSk7aWYoNT09YS50eXBlKWk9dGhpcy52aXNpdEtleWZyYW1lcyhhLGUpO2Vsc2V7bGV0IG89dC5zdHlsZXMsYT0hMTtpZighbyl7YT0hMDtjb25zdCB0PXt9O24uZWFzaW5nJiYodC5lYXNpbmc9bi5lYXNpbmcpLG89d08odCl9ZS5jdXJyZW50VGltZSs9bi5kdXJhdGlvbituLmRlbGF5O2NvbnN0IHI9dGhpcy52aXNpdFN0eWxlKG8sZSk7ci5pc0VtcHR5U3RlcD1hLGk9cn1yZXR1cm4gZS5jdXJyZW50QW5pbWF0ZVRpbWluZ3M9bnVsbCx7dHlwZTo0LHRpbWluZ3M6bixzdHlsZTppLG9wdGlvbnM6bnVsbH19dmlzaXRTdHlsZSh0LGUpe2NvbnN0IG49dGhpcy5fbWFrZVN0eWxlQXN0KHQsZSk7cmV0dXJuIHRoaXMuX3ZhbGlkYXRlU3R5bGVBc3QobixlKSxufV9tYWtlU3R5bGVBc3QodCxlKXtjb25zdCBuPVtdO0FycmF5LmlzQXJyYXkodC5zdHlsZXMpP3Quc3R5bGVzLmZvckVhY2goKHQ9Pnsic3RyaW5nIj09dHlwZW9mIHQ/dD09dk8/bi5wdXNoKHQpOmUuZXJyb3JzLnB1c2goYFRoZSBwcm92aWRlZCBzdHlsZSBzdHJpbmcgdmFsdWUgJHt0fSBpcyBub3QgYWxsb3dlZC5gKTpuLnB1c2godCl9KSk6bi5wdXNoKHQuc3R5bGVzKTtsZXQgbz0hMSxpPW51bGw7cmV0dXJuIG4uZm9yRWFjaCgodD0+e2lmKExQKHQpKXtjb25zdCBlPXQsbj1lLmVhc2luZztpZihuJiYoaT1uLGRlbGV0ZSBlLmVhc2luZyksIW8pZm9yKGxldCB0IGluIGUpe2lmKGVbdF0udG9TdHJpbmcoKS5pbmRleE9mKCJ7eyIpPj0wKXtvPSEwO2JyZWFrfX19fSkpLHt0eXBlOjYsc3R5bGVzOm4sZWFzaW5nOmksb2Zmc2V0OnQub2Zmc2V0LGNvbnRhaW5zRHluYW1pY1N0eWxlczpvLG9wdGlvbnM6bnVsbH19X3ZhbGlkYXRlU3R5bGVBc3QodCxlKXtjb25zdCBuPWUuY3VycmVudEFuaW1hdGVUaW1pbmdzO2xldCBvPWUuY3VycmVudFRpbWUsaT1lLmN1cnJlbnRUaW1lO24mJmk+MCYmKGktPW4uZHVyYXRpb24rbi5kZWxheSksdC5zdHlsZXMuZm9yRWFjaCgodD0+eyJzdHJpbmciIT10eXBlb2YgdCYmT2JqZWN0LmtleXModCkuZm9yRWFjaCgobj0+e2lmKCF0aGlzLl9kcml2ZXIudmFsaWRhdGVTdHlsZVByb3BlcnR5KG4pKXJldHVybiB2b2lkIGUuZXJyb3JzLnB1c2goYFRoZSBwcm92aWRlZCBhbmltYXRpb24gcHJvcGVydHkgIiR7bn0iIGlzIG5vdCBhIHN1cHBvcnRlZCBDU1MgcHJvcGVydHkgZm9yIGFuaW1hdGlvbnNgKTtjb25zdCBhPWUuY29sbGVjdGVkU3R5bGVzW2UuY3VycmVudFF1ZXJ5U2VsZWN0b3JdLHI9YVtuXTtsZXQgcz0hMDtyJiYoaSE9byYmaT49ci5zdGFydFRpbWUmJm88PXIuZW5kVGltZSYmKGUuZXJyb3JzLnB1c2goYFRoZSBDU1MgcHJvcGVydHkgIiR7bn0iIHRoYXQgZXhpc3RzIGJldHdlZW4gdGhlIHRpbWVzIG9mICIke3Iuc3RhcnRUaW1lfW1zIiBhbmQgIiR7ci5lbmRUaW1lfW1zIiBpcyBhbHNvIGJlaW5nIGFuaW1hdGVkIGluIGEgcGFyYWxsZWwgYW5pbWF0aW9uIGJldHdlZW4gdGhlIHRpbWVzIG9mICIke2l9bXMiIGFuZCAiJHtvfW1zImApLHM9ITEpLGk9ci5zdGFydFRpbWUpLHMmJihhW25dPXtzdGFydFRpbWU6aSxlbmRUaW1lOm99KSxlLm9wdGlvbnMmJihmdW5jdGlvbiBsKHQsZSxuKXtjb25zdCBvPWUucGFyYW1zfHx7fSxpPUNQKHQpO2kubGVuZ3RoJiZpLmZvckVhY2goKHQ9PntvLmhhc093blByb3BlcnR5KHQpfHxuLnB1c2goYFVuYWJsZSB0byByZXNvbHZlIHRoZSBsb2NhbCBhbmltYXRpb24gcGFyYW0gJHt0fSBpbiB0aGUgZ2l2ZW4gbGlzdCBvZiB2YWx1ZXNgKX0pKX0pKHRbbl0sZS5vcHRpb25zLGUuZXJyb3JzKX0pKX0pKX12aXNpdEtleWZyYW1lcyh0LGUpe2NvbnN0IG49e3R5cGU6NSxzdHlsZXM6W10sb3B0aW9uczpudWxsfTtpZighZS5jdXJyZW50QW5pbWF0ZVRpbWluZ3MpcmV0dXJuIGUuZXJyb3JzLnB1c2goImtleWZyYW1lcygpIG11c3QgYmUgcGxhY2VkIGluc2lkZSBvZiBhIGNhbGwgdG8gYW5pbWF0ZSgpIiksbjtsZXQgbz0wO2NvbnN0IGk9W107bGV0IGE9ITEscj0hMSxzPTA7Y29uc3QgbD10LnN0ZXBzLm1hcCgodD0+e2NvbnN0IG49dGhpcy5fbWFrZVN0eWxlQXN0KHQsZSk7bGV0IGw9bnVsbCE9bi5vZmZzZXQ/bi5vZmZzZXQ6KGZ1bmN0aW9uIGModCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBudWxsO2xldCBlPW51bGw7aWYoQXJyYXkuaXNBcnJheSh0KSl0LmZvckVhY2goKHQ9PntpZihMUCh0KSYmdC5oYXNPd25Qcm9wZXJ0eSgib2Zmc2V0Iikpe2NvbnN0IG49dDtlPXBhcnNlRmxvYXQobi5vZmZzZXQpLGRlbGV0ZSBuLm9mZnNldH19KSk7ZWxzZSBpZihMUCh0KSYmdC5oYXNPd25Qcm9wZXJ0eSgib2Zmc2V0Iikpe2NvbnN0IG49dDtlPXBhcnNlRmxvYXQobi5vZmZzZXQpLGRlbGV0ZSBuLm9mZnNldH1yZXR1cm4gZX0pKG4uc3R5bGVzKSxkPTA7cmV0dXJuIG51bGwhPWwmJihvKyssZD1uLm9mZnNldD1sKSxyPXJ8fGQ8MHx8ZD4xLGE9YXx8ZDxzLHM9ZCxpLnB1c2goZCksbn0pKTtyJiZlLmVycm9ycy5wdXNoKCJQbGVhc2UgZW5zdXJlIHRoYXQgYWxsIGtleWZyYW1lIG9mZnNldHMgYXJlIGJldHdlZW4gMCBhbmQgMSIpLGEmJmUuZXJyb3JzLnB1c2goIlBsZWFzZSBlbnN1cmUgdGhhdCBhbGwga2V5ZnJhbWUgb2Zmc2V0cyBhcmUgaW4gb3JkZXIiKTtjb25zdCBjPXQuc3RlcHMubGVuZ3RoO2xldCBkPTA7bz4wJiZvPGM/ZS5lcnJvcnMucHVzaCgiTm90IGFsbCBzdHlsZSgpIHN0ZXBzIHdpdGhpbiB0aGUgZGVjbGFyZWQga2V5ZnJhbWVzKCkgY29udGFpbiBvZmZzZXRzIik6MD09byYmKGQ9MS8oYy0xKSk7Y29uc3QgcD1jLTEsbT1lLmN1cnJlbnRUaW1lLGY9ZS5jdXJyZW50QW5pbWF0ZVRpbWluZ3MsdT1mLmR1cmF0aW9uO3JldHVybiBsLmZvckVhY2goKCh0LG8pPT57Y29uc3QgYT1kPjA/bz09cD8xOmQqbzppW29dLHI9YSp1O2UuY3VycmVudFRpbWU9bStmLmRlbGF5K3IsZi5kdXJhdGlvbj1yLHRoaXMuX3ZhbGlkYXRlU3R5bGVBc3QodCxlKSx0Lm9mZnNldD1hLG4uc3R5bGVzLnB1c2godCl9KSksbn12aXNpdFJlZmVyZW5jZSh0LGUpe3JldHVybnt0eXBlOjgsYW5pbWF0aW9uOmtQKHRoaXMseVAodC5hbmltYXRpb24pLGUpLG9wdGlvbnM6QlAodC5vcHRpb25zKX19dmlzaXRBbmltYXRlQ2hpbGQodCxlKXtyZXR1cm4gZS5kZXBDb3VudCsrLHt0eXBlOjksb3B0aW9uczpCUCh0Lm9wdGlvbnMpfX12aXNpdEFuaW1hdGVSZWYodCxlKXtyZXR1cm57dHlwZToxMCxhbmltYXRpb246dGhpcy52aXNpdFJlZmVyZW5jZSh0LmFuaW1hdGlvbixlKSxvcHRpb25zOkJQKHQub3B0aW9ucyl9fXZpc2l0UXVlcnkodCxlKXtjb25zdCBuPWUuY3VycmVudFF1ZXJ5U2VsZWN0b3Isbz10Lm9wdGlvbnN8fHt9O2UucXVlcnlDb3VudCsrLGUuY3VycmVudFF1ZXJ5PXQ7Y29uc3RbaSxhXT0oZnVuY3Rpb24gcih0KXtjb25zdCBlPSEhdC5zcGxpdCgvXHMqLFxzKi8pLmZpbmQoKHQ9PnQ9PU5QKSk7ZSYmKHQ9dC5yZXBsYWNlKHpQLCIiKSk7cmV0dXJuW3Q9dC5yZXBsYWNlKC9AXCovZyxyUCkucmVwbGFjZSgvQFx3Ky9nLCh0PT4iLm5nLXRyaWdnZXItIit0LnN1YnN0cigxKSkpLnJlcGxhY2UoLzphbmltYXRpbmcvZyxsUCksZV19KSh0LnNlbGVjdG9yKTtlLmN1cnJlbnRRdWVyeVNlbGVjdG9yPW4ubGVuZ3RoP24rIiAiK2k6aSxqTyhlLmNvbGxlY3RlZFN0eWxlcyxlLmN1cnJlbnRRdWVyeVNlbGVjdG9yLHt9KTtjb25zdCBzPWtQKHRoaXMseVAodC5hbmltYXRpb24pLGUpO3JldHVybiBlLmN1cnJlbnRRdWVyeT1udWxsLGUuY3VycmVudFF1ZXJ5U2VsZWN0b3I9bix7dHlwZToxMSxzZWxlY3RvcjppLGxpbWl0Om8ubGltaXR8fDAsb3B0aW9uYWw6ISFvLm9wdGlvbmFsLGluY2x1ZGVTZWxmOmEsYW5pbWF0aW9uOnMsb3JpZ2luYWxTZWxlY3Rvcjp0LnNlbGVjdG9yLG9wdGlvbnM6QlAodC5vcHRpb25zKX19dmlzaXRTdGFnZ2VyKHQsZSl7ZS5jdXJyZW50UXVlcnl8fGUuZXJyb3JzLnB1c2goInN0YWdnZXIoKSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBvZiBxdWVyeSgpIik7Y29uc3Qgbj0iZnVsbCI9PT10LnRpbWluZ3M/e2R1cmF0aW9uOjAsZGVsYXk6MCxlYXNpbmc6ImZ1bGwifTpwUCh0LnRpbWluZ3MsZS5lcnJvcnMsITApO3JldHVybnt0eXBlOjEyLGFuaW1hdGlvbjprUCh0aGlzLHlQKHQuYW5pbWF0aW9uKSxlKSx0aW1pbmdzOm4sb3B0aW9uczpudWxsfX19Y2xhc3MgRlB7Y29uc3RydWN0b3IodCl7dGhpcy5lcnJvcnM9dCx0aGlzLnF1ZXJ5Q291bnQ9MCx0aGlzLmRlcENvdW50PTAsdGhpcy5jdXJyZW50VHJhbnNpdGlvbj1udWxsLHRoaXMuY3VycmVudFF1ZXJ5PW51bGwsdGhpcy5jdXJyZW50UXVlcnlTZWxlY3Rvcj1udWxsLHRoaXMuY3VycmVudEFuaW1hdGVUaW1pbmdzPW51bGwsdGhpcy5jdXJyZW50VGltZT0wLHRoaXMuY29sbGVjdGVkU3R5bGVzPXt9LHRoaXMub3B0aW9ucz1udWxsfX1mdW5jdGlvbiBMUCh0KXtyZXR1cm4hQXJyYXkuaXNBcnJheSh0KSYmIm9iamVjdCI9PXR5cGVvZiB0fWZ1bmN0aW9uIEJQKHQpe3JldHVybiB0Pyh0PW1QKHQpKS5wYXJhbXMmJih0LnBhcmFtcz0oZnVuY3Rpb24gZSh0KXtyZXR1cm4gdD9tUCh0KTpudWxsfSkodC5wYXJhbXMpKTp0PXt9LHR9ZnVuY3Rpb24gVlAodCxlLG4pe3JldHVybntkdXJhdGlvbjp0LGRlbGF5OmUsZWFzaW5nOm59fWZ1bmN0aW9uIGpQKHQsZSxuLG8saSxhLHI9bnVsbCxzPSExKXtyZXR1cm57dHlwZToxLGVsZW1lbnQ6dCxrZXlmcmFtZXM6ZSxwcmVTdHlsZVByb3BzOm4scG9zdFN0eWxlUHJvcHM6byxkdXJhdGlvbjppLGRlbGF5OmEsdG90YWxUaW1lOmkrYSxlYXNpbmc6cixzdWJUaW1lbGluZTpzfX1jbGFzcyBVUHtjb25zdHJ1Y3Rvcigpe3RoaXMuX21hcD1uZXcgTWFwfWNvbnN1bWUodCl7bGV0IGU9dGhpcy5fbWFwLmdldCh0KTtyZXR1cm4gZT90aGlzLl9tYXAuZGVsZXRlKHQpOmU9W10sZX1hcHBlbmQodCxlKXtsZXQgbj10aGlzLl9tYXAuZ2V0KHQpO258fHRoaXMuX21hcC5zZXQodCxuPVtdKSxuLnB1c2goLi4uZSl9aGFzKHQpe3JldHVybiB0aGlzLl9tYXAuaGFzKHQpfWNsZWFyKCl7dGhpcy5fbWFwLmNsZWFyKCl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBXUD1uZXcgUmVnRXhwKCI6ZW50ZXIiLCJnIiksR1A9bmV3IFJlZ0V4cCgiOmxlYXZlIiwiZyIpO2Z1bmN0aW9uIFlQKHQsZSxuLG8saSxhPXt9LHI9e30scyxsLGM9W10pe3JldHVybihuZXcgcVApLmJ1aWxkS2V5ZnJhbWVzKHQsZSxuLG8saSxhLHIscyxsLGMpfWNsYXNzIHFQe2J1aWxkS2V5ZnJhbWVzKHQsZSxuLG8saSxhLHIscyxsLGM9W10pe2w9bHx8bmV3IFVQO2NvbnN0IGQ9bmV3IFhQKHQsZSxsLG8saSxjLFtdKTtkLm9wdGlvbnM9cyxkLmN1cnJlbnRUaW1lbGluZS5zZXRTdHlsZXMoW2FdLG51bGwsZC5lcnJvcnMscyksa1AodGhpcyxuLGQpO2NvbnN0IHA9ZC50aW1lbGluZXMuZmlsdGVyKCh0PT50LmNvbnRhaW5zQW5pbWF0aW9uKCkpKTtpZihwLmxlbmd0aCYmT2JqZWN0LmtleXMocikubGVuZ3RoKXtjb25zdCB0PXBbcC5sZW5ndGgtMV07dC5hbGxvd09ubHlUaW1lbGluZVN0eWxlcygpfHx0LnNldFN0eWxlcyhbcl0sbnVsbCxkLmVycm9ycyxzKX1yZXR1cm4gcC5sZW5ndGg/cC5tYXAoKHQ9PnQuYnVpbGRLZXlmcmFtZXMoKSkpOltqUChlLFtdLFtdLFtdLDAsMCwiIiwhMSldfXZpc2l0VHJpZ2dlcih0LGUpe312aXNpdFN0YXRlKHQsZSl7fXZpc2l0VHJhbnNpdGlvbih0LGUpe312aXNpdEFuaW1hdGVDaGlsZCh0LGUpe2NvbnN0IG49ZS5zdWJJbnN0cnVjdGlvbnMuY29uc3VtZShlLmVsZW1lbnQpO2lmKG4pe2NvbnN0IG89ZS5jcmVhdGVTdWJDb250ZXh0KHQub3B0aW9ucyksaT1lLmN1cnJlbnRUaW1lbGluZS5jdXJyZW50VGltZSxhPXRoaXMuX3Zpc2l0U3ViSW5zdHJ1Y3Rpb25zKG4sbyxvLm9wdGlvbnMpO2khPWEmJmUudHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKGEpfWUucHJldmlvdXNOb2RlPXR9dmlzaXRBbmltYXRlUmVmKHQsZSl7Y29uc3Qgbj1lLmNyZWF0ZVN1YkNvbnRleHQodC5vcHRpb25zKTtuLnRyYW5zZm9ybUludG9OZXdUaW1lbGluZSgpLHRoaXMudmlzaXRSZWZlcmVuY2UodC5hbmltYXRpb24sbiksZS50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUobi5jdXJyZW50VGltZWxpbmUuY3VycmVudFRpbWUpLGUucHJldmlvdXNOb2RlPXR9X3Zpc2l0U3ViSW5zdHJ1Y3Rpb25zKHQsZSxuKXtsZXQgbz1lLmN1cnJlbnRUaW1lbGluZS5jdXJyZW50VGltZTtjb25zdCBpPW51bGwhPW4uZHVyYXRpb24/Y1Aobi5kdXJhdGlvbik6bnVsbCxhPW51bGwhPW4uZGVsYXk/Y1Aobi5kZWxheSk6bnVsbDtyZXR1cm4gMCE9PWkmJnQuZm9yRWFjaCgodD0+e2NvbnN0IG49ZS5hcHBlbmRJbnN0cnVjdGlvblRvVGltZWxpbmUodCxpLGEpO289TWF0aC5tYXgobyxuLmR1cmF0aW9uK24uZGVsYXkpfSkpLG99dmlzaXRSZWZlcmVuY2UodCxlKXtlLnVwZGF0ZU9wdGlvbnModC5vcHRpb25zLCEwKSxrUCh0aGlzLHQuYW5pbWF0aW9uLGUpLGUucHJldmlvdXNOb2RlPXR9dmlzaXRTZXF1ZW5jZSh0LGUpe2NvbnN0IG49ZS5zdWJDb250ZXh0Q291bnQ7bGV0IG89ZTtjb25zdCBpPXQub3B0aW9ucztpZihpJiYoaS5wYXJhbXN8fGkuZGVsYXkpJiYobz1lLmNyZWF0ZVN1YkNvbnRleHQoaSksby50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUoKSxudWxsIT1pLmRlbGF5KSl7Nj09by5wcmV2aW91c05vZGUudHlwZSYmKG8uY3VycmVudFRpbWVsaW5lLnNuYXBzaG90Q3VycmVudFN0eWxlcygpLG8ucHJldmlvdXNOb2RlPVpQKTtjb25zdCB0PWNQKGkuZGVsYXkpO28uZGVsYXlOZXh0U3RlcCh0KX10LnN0ZXBzLmxlbmd0aCYmKHQuc3RlcHMuZm9yRWFjaCgodD0+a1AodGhpcyx0LG8pKSksby5jdXJyZW50VGltZWxpbmUuYXBwbHlTdHlsZXNUb0tleWZyYW1lKCksby5zdWJDb250ZXh0Q291bnQ+biYmby50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUoKSksZS5wcmV2aW91c05vZGU9dH12aXNpdEdyb3VwKHQsZSl7Y29uc3Qgbj1bXTtsZXQgbz1lLmN1cnJlbnRUaW1lbGluZS5jdXJyZW50VGltZTtjb25zdCBpPXQub3B0aW9ucyYmdC5vcHRpb25zLmRlbGF5P2NQKHQub3B0aW9ucy5kZWxheSk6MDt0LnN0ZXBzLmZvckVhY2goKGE9Pntjb25zdCByPWUuY3JlYXRlU3ViQ29udGV4dCh0Lm9wdGlvbnMpO2kmJnIuZGVsYXlOZXh0U3RlcChpKSxrUCh0aGlzLGEsciksbz1NYXRoLm1heChvLHIuY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lKSxuLnB1c2goci5jdXJyZW50VGltZWxpbmUpfSkpLG4uZm9yRWFjaCgodD0+ZS5jdXJyZW50VGltZWxpbmUubWVyZ2VUaW1lbGluZUNvbGxlY3RlZFN0eWxlcyh0KSkpLGUudHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKG8pLGUucHJldmlvdXNOb2RlPXR9X3Zpc2l0VGltaW5nKHQsZSl7aWYodC5keW5hbWljKXtjb25zdCBuPXQuc3RyVmFsdWU7cmV0dXJuIHBQKGUucGFyYW1zP01QKG4sZS5wYXJhbXMsZS5lcnJvcnMpOm4sZS5lcnJvcnMpfXJldHVybntkdXJhdGlvbjp0LmR1cmF0aW9uLGRlbGF5OnQuZGVsYXksZWFzaW5nOnQuZWFzaW5nfX12aXNpdEFuaW1hdGUodCxlKXtjb25zdCBuPWUuY3VycmVudEFuaW1hdGVUaW1pbmdzPXRoaXMuX3Zpc2l0VGltaW5nKHQudGltaW5ncyxlKSxvPWUuY3VycmVudFRpbWVsaW5lO24uZGVsYXkmJihlLmluY3JlbWVudFRpbWUobi5kZWxheSksby5zbmFwc2hvdEN1cnJlbnRTdHlsZXMoKSk7Y29uc3QgaT10LnN0eWxlOzU9PWkudHlwZT90aGlzLnZpc2l0S2V5ZnJhbWVzKGksZSk6KGUuaW5jcmVtZW50VGltZShuLmR1cmF0aW9uKSx0aGlzLnZpc2l0U3R5bGUoaSxlKSxvLmFwcGx5U3R5bGVzVG9LZXlmcmFtZSgpKSxlLmN1cnJlbnRBbmltYXRlVGltaW5ncz1udWxsLGUucHJldmlvdXNOb2RlPXR9dmlzaXRTdHlsZSh0LGUpe2NvbnN0IG49ZS5jdXJyZW50VGltZWxpbmUsbz1lLmN1cnJlbnRBbmltYXRlVGltaW5nczshbyYmbi5nZXRDdXJyZW50U3R5bGVQcm9wZXJ0aWVzKCkubGVuZ3RoJiZuLmZvcndhcmRGcmFtZSgpO2NvbnN0IGk9byYmby5lYXNpbmd8fHQuZWFzaW5nO3QuaXNFbXB0eVN0ZXA/bi5hcHBseUVtcHR5U3RlcChpKTpuLnNldFN0eWxlcyh0LnN0eWxlcyxpLGUuZXJyb3JzLGUub3B0aW9ucyksZS5wcmV2aW91c05vZGU9dH12aXNpdEtleWZyYW1lcyh0LGUpe2NvbnN0IG49ZS5jdXJyZW50QW5pbWF0ZVRpbWluZ3Msbz1lLmN1cnJlbnRUaW1lbGluZS5kdXJhdGlvbixpPW4uZHVyYXRpb24sYT1lLmNyZWF0ZVN1YkNvbnRleHQoKS5jdXJyZW50VGltZWxpbmU7YS5lYXNpbmc9bi5lYXNpbmcsdC5zdHlsZXMuZm9yRWFjaCgodD0+e2EuZm9yd2FyZFRpbWUoKHQub2Zmc2V0fHwwKSppKSxhLnNldFN0eWxlcyh0LnN0eWxlcyx0LmVhc2luZyxlLmVycm9ycyxlLm9wdGlvbnMpLGEuYXBwbHlTdHlsZXNUb0tleWZyYW1lKCl9KSksZS5jdXJyZW50VGltZWxpbmUubWVyZ2VUaW1lbGluZUNvbGxlY3RlZFN0eWxlcyhhKSxlLnRyYW5zZm9ybUludG9OZXdUaW1lbGluZShvK2kpLGUucHJldmlvdXNOb2RlPXR9dmlzaXRRdWVyeSh0LGUpe2NvbnN0IG49ZS5jdXJyZW50VGltZWxpbmUuY3VycmVudFRpbWUsbz10Lm9wdGlvbnN8fHt9LGk9by5kZWxheT9jUChvLmRlbGF5KTowO2kmJig2PT09ZS5wcmV2aW91c05vZGUudHlwZXx8MD09biYmZS5jdXJyZW50VGltZWxpbmUuZ2V0Q3VycmVudFN0eWxlUHJvcGVydGllcygpLmxlbmd0aCkmJihlLmN1cnJlbnRUaW1lbGluZS5zbmFwc2hvdEN1cnJlbnRTdHlsZXMoKSxlLnByZXZpb3VzTm9kZT1aUCk7bGV0IGE9bjtjb25zdCByPWUuaW52b2tlUXVlcnkodC5zZWxlY3Rvcix0Lm9yaWdpbmFsU2VsZWN0b3IsdC5saW1pdCx0LmluY2x1ZGVTZWxmLCEhby5vcHRpb25hbCxlLmVycm9ycyk7ZS5jdXJyZW50UXVlcnlUb3RhbD1yLmxlbmd0aDtsZXQgcz1udWxsO3IuZm9yRWFjaCgoKG4sbyk9PntlLmN1cnJlbnRRdWVyeUluZGV4PW87Y29uc3Qgcj1lLmNyZWF0ZVN1YkNvbnRleHQodC5vcHRpb25zLG4pO2kmJnIuZGVsYXlOZXh0U3RlcChpKSxuPT09ZS5lbGVtZW50JiYocz1yLmN1cnJlbnRUaW1lbGluZSksa1AodGhpcyx0LmFuaW1hdGlvbixyKSxyLmN1cnJlbnRUaW1lbGluZS5hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKTthPU1hdGgubWF4KGEsci5jdXJyZW50VGltZWxpbmUuY3VycmVudFRpbWUpfSkpLGUuY3VycmVudFF1ZXJ5SW5kZXg9MCxlLmN1cnJlbnRRdWVyeVRvdGFsPTAsZS50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUoYSkscyYmKGUuY3VycmVudFRpbWVsaW5lLm1lcmdlVGltZWxpbmVDb2xsZWN0ZWRTdHlsZXMocyksZS5jdXJyZW50VGltZWxpbmUuc25hcHNob3RDdXJyZW50U3R5bGVzKCkpLGUucHJldmlvdXNOb2RlPXR9dmlzaXRTdGFnZ2VyKHQsZSl7Y29uc3Qgbj1lLnBhcmVudENvbnRleHQsbz1lLmN1cnJlbnRUaW1lbGluZSxpPXQudGltaW5ncyxhPU1hdGguYWJzKGkuZHVyYXRpb24pLHI9YSooZS5jdXJyZW50UXVlcnlUb3RhbC0xKTtsZXQgcz1hKmUuY3VycmVudFF1ZXJ5SW5kZXg7c3dpdGNoKGkuZHVyYXRpb248MD8icmV2ZXJzZSI6aS5lYXNpbmcpe2Nhc2UicmV2ZXJzZSI6cz1yLXM7YnJlYWs7Y2FzZSJmdWxsIjpzPW4uY3VycmVudFN0YWdnZXJUaW1lfWNvbnN0IGw9ZS5jdXJyZW50VGltZWxpbmU7cyYmbC5kZWxheU5leHRTdGVwKHMpO2NvbnN0IGM9bC5jdXJyZW50VGltZTtrUCh0aGlzLHQuYW5pbWF0aW9uLGUpLGUucHJldmlvdXNOb2RlPXQsbi5jdXJyZW50U3RhZ2dlclRpbWU9by5jdXJyZW50VGltZS1jKyhvLnN0YXJ0VGltZS1uLmN1cnJlbnRUaW1lbGluZS5zdGFydFRpbWUpfX1jb25zdCBaUD17fTtjbGFzcyBYUHtjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyLHMpe3RoaXMuX2RyaXZlcj10LHRoaXMuZWxlbWVudD1lLHRoaXMuc3ViSW5zdHJ1Y3Rpb25zPW4sdGhpcy5fZW50ZXJDbGFzc05hbWU9byx0aGlzLl9sZWF2ZUNsYXNzTmFtZT1pLHRoaXMuZXJyb3JzPWEsdGhpcy50aW1lbGluZXM9cix0aGlzLnBhcmVudENvbnRleHQ9bnVsbCx0aGlzLmN1cnJlbnRBbmltYXRlVGltaW5ncz1udWxsLHRoaXMucHJldmlvdXNOb2RlPVpQLHRoaXMuc3ViQ29udGV4dENvdW50PTAsdGhpcy5vcHRpb25zPXt9LHRoaXMuY3VycmVudFF1ZXJ5SW5kZXg9MCx0aGlzLmN1cnJlbnRRdWVyeVRvdGFsPTAsdGhpcy5jdXJyZW50U3RhZ2dlclRpbWU9MCx0aGlzLmN1cnJlbnRUaW1lbGluZT1zfHxuZXcgS1AodGhpcy5fZHJpdmVyLGUsMCksci5wdXNoKHRoaXMuY3VycmVudFRpbWVsaW5lKX1nZXQgcGFyYW1zKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5wYXJhbXN9dXBkYXRlT3B0aW9ucyh0LGUpe2lmKCF0KXJldHVybjtjb25zdCBuPXQ7bGV0IG89dGhpcy5vcHRpb25zO251bGwhPW4uZHVyYXRpb24mJihvLmR1cmF0aW9uPWNQKG4uZHVyYXRpb24pKSxudWxsIT1uLmRlbGF5JiYoby5kZWxheT1jUChuLmRlbGF5KSk7Y29uc3QgaT1uLnBhcmFtcztpZihpKXtsZXQgdD1vLnBhcmFtczt0fHwodD10aGlzLm9wdGlvbnMucGFyYW1zPXt9KSxPYmplY3Qua2V5cyhpKS5mb3JFYWNoKChuPT57ZSYmdC5oYXNPd25Qcm9wZXJ0eShuKXx8KHRbbl09TVAoaVtuXSx0LHRoaXMuZXJyb3JzKSl9KSl9fV9jb3B5T3B0aW9ucygpe2NvbnN0IHQ9e307aWYodGhpcy5vcHRpb25zKXtjb25zdCBlPXRoaXMub3B0aW9ucy5wYXJhbXM7aWYoZSl7Y29uc3Qgbj10LnBhcmFtcz17fTtPYmplY3Qua2V5cyhlKS5mb3JFYWNoKCh0PT57blt0XT1lW3RdfSkpfX1yZXR1cm4gdH1jcmVhdGVTdWJDb250ZXh0KHQ9bnVsbCxlLG4pe2NvbnN0IG89ZXx8dGhpcy5lbGVtZW50LGk9bmV3IFhQKHRoaXMuX2RyaXZlcixvLHRoaXMuc3ViSW5zdHJ1Y3Rpb25zLHRoaXMuX2VudGVyQ2xhc3NOYW1lLHRoaXMuX2xlYXZlQ2xhc3NOYW1lLHRoaXMuZXJyb3JzLHRoaXMudGltZWxpbmVzLHRoaXMuY3VycmVudFRpbWVsaW5lLmZvcmsobyxufHwwKSk7cmV0dXJuIGkucHJldmlvdXNOb2RlPXRoaXMucHJldmlvdXNOb2RlLGkuY3VycmVudEFuaW1hdGVUaW1pbmdzPXRoaXMuY3VycmVudEFuaW1hdGVUaW1pbmdzLGkub3B0aW9ucz10aGlzLl9jb3B5T3B0aW9ucygpLGkudXBkYXRlT3B0aW9ucyh0KSxpLmN1cnJlbnRRdWVyeUluZGV4PXRoaXMuY3VycmVudFF1ZXJ5SW5kZXgsaS5jdXJyZW50UXVlcnlUb3RhbD10aGlzLmN1cnJlbnRRdWVyeVRvdGFsLGkucGFyZW50Q29udGV4dD10aGlzLHRoaXMuc3ViQ29udGV4dENvdW50KyssaX10cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUodCl7cmV0dXJuIHRoaXMucHJldmlvdXNOb2RlPVpQLHRoaXMuY3VycmVudFRpbWVsaW5lPXRoaXMuY3VycmVudFRpbWVsaW5lLmZvcmsodGhpcy5lbGVtZW50LHQpLHRoaXMudGltZWxpbmVzLnB1c2godGhpcy5jdXJyZW50VGltZWxpbmUpLHRoaXMuY3VycmVudFRpbWVsaW5lfWFwcGVuZEluc3RydWN0aW9uVG9UaW1lbGluZSh0LGUsbil7Y29uc3Qgbz17ZHVyYXRpb246bnVsbCE9ZT9lOnQuZHVyYXRpb24sZGVsYXk6dGhpcy5jdXJyZW50VGltZWxpbmUuY3VycmVudFRpbWUrKG51bGwhPW4/bjowKSt0LmRlbGF5LGVhc2luZzoiIn0saT1uZXcgSlAodGhpcy5fZHJpdmVyLHQuZWxlbWVudCx0LmtleWZyYW1lcyx0LnByZVN0eWxlUHJvcHMsdC5wb3N0U3R5bGVQcm9wcyxvLHQuc3RyZXRjaFN0YXJ0aW5nS2V5ZnJhbWUpO3JldHVybiB0aGlzLnRpbWVsaW5lcy5wdXNoKGkpLG99aW5jcmVtZW50VGltZSh0KXt0aGlzLmN1cnJlbnRUaW1lbGluZS5mb3J3YXJkVGltZSh0aGlzLmN1cnJlbnRUaW1lbGluZS5kdXJhdGlvbit0KX1kZWxheU5leHRTdGVwKHQpe3Q+MCYmdGhpcy5jdXJyZW50VGltZWxpbmUuZGVsYXlOZXh0U3RlcCh0KX1pbnZva2VRdWVyeSh0LGUsbixvLGksYSl7bGV0IHI9W107aWYobyYmci5wdXNoKHRoaXMuZWxlbWVudCksdC5sZW5ndGg+MCl7dD0odD10LnJlcGxhY2UoV1AsIi4iK3RoaXMuX2VudGVyQ2xhc3NOYW1lKSkucmVwbGFjZShHUCwiLiIrdGhpcy5fbGVhdmVDbGFzc05hbWUpO2xldCBlPXRoaXMuX2RyaXZlci5xdWVyeSh0aGlzLmVsZW1lbnQsdCwxIT1uKTswIT09biYmKGU9bjwwP2Uuc2xpY2UoZS5sZW5ndGgrbixlLmxlbmd0aCk6ZS5zbGljZSgwLG4pKSxyLnB1c2goLi4uZSl9cmV0dXJuIGl8fDAhPXIubGVuZ3RofHxhLnB1c2goYFxgcXVlcnkoIiR7ZX0iKVxgIHJldHVybmVkIHplcm8gZWxlbWVudHMuIChVc2UgXGBxdWVyeSgiJHtlfSIsIHsgb3B0aW9uYWw6IHRydWUgfSlcYCBpZiB5b3Ugd2lzaCB0byBhbGxvdyB0aGlzLilgKSxyfX1jbGFzcyBLUHtjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLl9kcml2ZXI9dCx0aGlzLmVsZW1lbnQ9ZSx0aGlzLnN0YXJ0VGltZT1uLHRoaXMuX2VsZW1lbnRUaW1lbGluZVN0eWxlc0xvb2t1cD1vLHRoaXMuZHVyYXRpb249MCx0aGlzLl9wcmV2aW91c0tleWZyYW1lPXt9LHRoaXMuX2N1cnJlbnRLZXlmcmFtZT17fSx0aGlzLl9rZXlmcmFtZXM9bmV3IE1hcCx0aGlzLl9zdHlsZVN1bW1hcnk9e30sdGhpcy5fcGVuZGluZ1N0eWxlcz17fSx0aGlzLl9iYWNrRmlsbD17fSx0aGlzLl9jdXJyZW50RW1wdHlTdGVwS2V5ZnJhbWU9bnVsbCx0aGlzLl9lbGVtZW50VGltZWxpbmVTdHlsZXNMb29rdXB8fCh0aGlzLl9lbGVtZW50VGltZWxpbmVTdHlsZXNMb29rdXA9bmV3IE1hcCksdGhpcy5fbG9jYWxUaW1lbGluZVN0eWxlcz1PYmplY3QuY3JlYXRlKHRoaXMuX2JhY2tGaWxsLHt9KSx0aGlzLl9nbG9iYWxUaW1lbGluZVN0eWxlcz10aGlzLl9lbGVtZW50VGltZWxpbmVTdHlsZXNMb29rdXAuZ2V0KGUpLHRoaXMuX2dsb2JhbFRpbWVsaW5lU3R5bGVzfHwodGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXM9dGhpcy5fbG9jYWxUaW1lbGluZVN0eWxlcyx0aGlzLl9lbGVtZW50VGltZWxpbmVTdHlsZXNMb29rdXAuc2V0KGUsdGhpcy5fbG9jYWxUaW1lbGluZVN0eWxlcykpLHRoaXMuX2xvYWRLZXlmcmFtZSgpfWNvbnRhaW5zQW5pbWF0aW9uKCl7c3dpdGNoKHRoaXMuX2tleWZyYW1lcy5zaXplKXtjYXNlIDA6cmV0dXJuITE7Y2FzZSAxOnJldHVybiB0aGlzLmdldEN1cnJlbnRTdHlsZVByb3BlcnRpZXMoKS5sZW5ndGg+MDtkZWZhdWx0OnJldHVybiEwfX1nZXRDdXJyZW50U3R5bGVQcm9wZXJ0aWVzKCl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX2N1cnJlbnRLZXlmcmFtZSl9Z2V0IGN1cnJlbnRUaW1lKCl7cmV0dXJuIHRoaXMuc3RhcnRUaW1lK3RoaXMuZHVyYXRpb259ZGVsYXlOZXh0U3RlcCh0KXtjb25zdCBlPTE9PXRoaXMuX2tleWZyYW1lcy5zaXplJiZPYmplY3Qua2V5cyh0aGlzLl9wZW5kaW5nU3R5bGVzKS5sZW5ndGg7dGhpcy5kdXJhdGlvbnx8ZT8odGhpcy5mb3J3YXJkVGltZSh0aGlzLmN1cnJlbnRUaW1lK3QpLGUmJnRoaXMuc25hcHNob3RDdXJyZW50U3R5bGVzKCkpOnRoaXMuc3RhcnRUaW1lKz10fWZvcmsodCxlKXtyZXR1cm4gdGhpcy5hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKSxuZXcgS1AodGhpcy5fZHJpdmVyLHQsZXx8dGhpcy5jdXJyZW50VGltZSx0aGlzLl9lbGVtZW50VGltZWxpbmVTdHlsZXNMb29rdXApfV9sb2FkS2V5ZnJhbWUoKXt0aGlzLl9jdXJyZW50S2V5ZnJhbWUmJih0aGlzLl9wcmV2aW91c0tleWZyYW1lPXRoaXMuX2N1cnJlbnRLZXlmcmFtZSksdGhpcy5fY3VycmVudEtleWZyYW1lPXRoaXMuX2tleWZyYW1lcy5nZXQodGhpcy5kdXJhdGlvbiksdGhpcy5fY3VycmVudEtleWZyYW1lfHwodGhpcy5fY3VycmVudEtleWZyYW1lPU9iamVjdC5jcmVhdGUodGhpcy5fYmFja0ZpbGwse30pLHRoaXMuX2tleWZyYW1lcy5zZXQodGhpcy5kdXJhdGlvbix0aGlzLl9jdXJyZW50S2V5ZnJhbWUpKX1mb3J3YXJkRnJhbWUoKXt0aGlzLmR1cmF0aW9uKz0xLHRoaXMuX2xvYWRLZXlmcmFtZSgpfWZvcndhcmRUaW1lKHQpe3RoaXMuYXBwbHlTdHlsZXNUb0tleWZyYW1lKCksdGhpcy5kdXJhdGlvbj10LHRoaXMuX2xvYWRLZXlmcmFtZSgpfV91cGRhdGVTdHlsZSh0LGUpe3RoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXNbdF09ZSx0aGlzLl9nbG9iYWxUaW1lbGluZVN0eWxlc1t0XT1lLHRoaXMuX3N0eWxlU3VtbWFyeVt0XT17dGltZTp0aGlzLmN1cnJlbnRUaW1lLHZhbHVlOmV9fWFsbG93T25seVRpbWVsaW5lU3R5bGVzKCl7cmV0dXJuIHRoaXMuX2N1cnJlbnRFbXB0eVN0ZXBLZXlmcmFtZSE9PXRoaXMuX2N1cnJlbnRLZXlmcmFtZX1hcHBseUVtcHR5U3RlcCh0KXt0JiYodGhpcy5fcHJldmlvdXNLZXlmcmFtZS5lYXNpbmc9dCksT2JqZWN0LmtleXModGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXMpLmZvckVhY2goKHQ9Pnt0aGlzLl9iYWNrRmlsbFt0XT10aGlzLl9nbG9iYWxUaW1lbGluZVN0eWxlc1t0XXx8dk8sdGhpcy5fY3VycmVudEtleWZyYW1lW3RdPXZPfSkpLHRoaXMuX2N1cnJlbnRFbXB0eVN0ZXBLZXlmcmFtZT10aGlzLl9jdXJyZW50S2V5ZnJhbWV9c2V0U3R5bGVzKHQsZSxuLG8pe2UmJih0aGlzLl9wcmV2aW91c0tleWZyYW1lLmVhc2luZz1lKTtjb25zdCBpPW8mJm8ucGFyYW1zfHx7fSxhPShmdW5jdGlvbiByKHQsZSl7Y29uc3Qgbj17fTtsZXQgbztyZXR1cm4gdC5mb3JFYWNoKCh0PT57IioiPT09dD8obz1vfHxPYmplY3Qua2V5cyhlKSxvLmZvckVhY2goKHQ9PntuW3RdPXZPfSkpKTpmUCh0LCExLG4pfSkpLG59Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLykodCx0aGlzLl9nbG9iYWxUaW1lbGluZVN0eWxlcyk7T2JqZWN0LmtleXMoYSkuZm9yRWFjaCgodD0+e2NvbnN0IGU9TVAoYVt0XSxpLG4pO3RoaXMuX3BlbmRpbmdTdHlsZXNbdF09ZSx0aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzLmhhc093blByb3BlcnR5KHQpfHwodGhpcy5fYmFja0ZpbGxbdF09dGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXMuaGFzT3duUHJvcGVydHkodCk/dGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXNbdF06dk8pLHRoaXMuX3VwZGF0ZVN0eWxlKHQsZSl9KSl9YXBwbHlTdHlsZXNUb0tleWZyYW1lKCl7Y29uc3QgdD10aGlzLl9wZW5kaW5nU3R5bGVzLGU9T2JqZWN0LmtleXModCk7MCE9ZS5sZW5ndGgmJih0aGlzLl9wZW5kaW5nU3R5bGVzPXt9LGUuZm9yRWFjaCgoZT0+e3RoaXMuX2N1cnJlbnRLZXlmcmFtZVtlXT10W2VdfSkpLE9iamVjdC5rZXlzKHRoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXMpLmZvckVhY2goKHQ9Pnt0aGlzLl9jdXJyZW50S2V5ZnJhbWUuaGFzT3duUHJvcGVydHkodCl8fCh0aGlzLl9jdXJyZW50S2V5ZnJhbWVbdF09dGhpcy5fbG9jYWxUaW1lbGluZVN0eWxlc1t0XSl9KSkpfXNuYXBzaG90Q3VycmVudFN0eWxlcygpe09iamVjdC5rZXlzKHRoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXMpLmZvckVhY2goKHQ9Pntjb25zdCBlPXRoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXNbdF07dGhpcy5fcGVuZGluZ1N0eWxlc1t0XT1lLHRoaXMuX3VwZGF0ZVN0eWxlKHQsZSl9KSl9Z2V0RmluYWxLZXlmcmFtZSgpe3JldHVybiB0aGlzLl9rZXlmcmFtZXMuZ2V0KHRoaXMuZHVyYXRpb24pfWdldCBwcm9wZXJ0aWVzKCl7Y29uc3QgdD1bXTtmb3IobGV0IGUgaW4gdGhpcy5fY3VycmVudEtleWZyYW1lKXQucHVzaChlKTtyZXR1cm4gdH1tZXJnZVRpbWVsaW5lQ29sbGVjdGVkU3R5bGVzKHQpe09iamVjdC5rZXlzKHQuX3N0eWxlU3VtbWFyeSkuZm9yRWFjaCgoZT0+e2NvbnN0IG49dGhpcy5fc3R5bGVTdW1tYXJ5W2VdLG89dC5fc3R5bGVTdW1tYXJ5W2VdOyghbnx8by50aW1lPm4udGltZSkmJnRoaXMuX3VwZGF0ZVN0eWxlKGUsby52YWx1ZSl9KSl9YnVpbGRLZXlmcmFtZXMoKXt0aGlzLmFwcGx5U3R5bGVzVG9LZXlmcmFtZSgpO2NvbnN0IHQ9bmV3IFNldCxlPW5ldyBTZXQsbj0xPT09dGhpcy5fa2V5ZnJhbWVzLnNpemUmJjA9PT10aGlzLmR1cmF0aW9uO2xldCBvPVtdO3RoaXMuX2tleWZyYW1lcy5mb3JFYWNoKCgoaSxhKT0+e2NvbnN0IHI9ZlAoaSwhMCk7T2JqZWN0LmtleXMocikuZm9yRWFjaCgobj0+e2NvbnN0IG89cltuXTsiISI9PW8/dC5hZGQobik6bz09dk8mJmUuYWRkKG4pfSkpLG58fChyLm9mZnNldD1hL3RoaXMuZHVyYXRpb24pLG8ucHVzaChyKX0pKTtjb25zdCBpPXQuc2l6ZT92UCh0LnZhbHVlcygpKTpbXSxhPWUuc2l6ZT92UChlLnZhbHVlcygpKTpbXTtpZihuKXtjb25zdCB0PW9bMF0sZT1tUCh0KTt0Lm9mZnNldD0wLGUub2Zmc2V0PTEsbz1bdCxlXX1yZXR1cm4galAodGhpcy5lbGVtZW50LG8saSxhLHRoaXMuZHVyYXRpb24sdGhpcy5zdGFydFRpbWUsdGhpcy5lYXNpbmcsITEpfX1jbGFzcyBKUCBleHRlbmRzIEtQe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHI9ITEpe3N1cGVyKHQsZSxhLmRlbGF5KSx0aGlzLmtleWZyYW1lcz1uLHRoaXMucHJlU3R5bGVQcm9wcz1vLHRoaXMucG9zdFN0eWxlUHJvcHM9aSx0aGlzLl9zdHJldGNoU3RhcnRpbmdLZXlmcmFtZT1yLHRoaXMudGltaW5ncz17ZHVyYXRpb246YS5kdXJhdGlvbixkZWxheTphLmRlbGF5LGVhc2luZzphLmVhc2luZ319Y29udGFpbnNBbmltYXRpb24oKXtyZXR1cm4gdGhpcy5rZXlmcmFtZXMubGVuZ3RoPjF9YnVpbGRLZXlmcmFtZXMoKXtsZXQgdD10aGlzLmtleWZyYW1lcyx7ZGVsYXk6ZSxkdXJhdGlvbjpuLGVhc2luZzpvfT10aGlzLnRpbWluZ3M7aWYodGhpcy5fc3RyZXRjaFN0YXJ0aW5nS2V5ZnJhbWUmJmUpe2NvbnN0IGk9W10sYT1uK2Uscj1lL2Escz1mUCh0WzBdLCExKTtzLm9mZnNldD0wLGkucHVzaChzKTtjb25zdCBsPWZQKHRbMF0sITEpO2wub2Zmc2V0PVFQKHIpLGkucHVzaChsKTtjb25zdCBjPXQubGVuZ3RoLTE7Zm9yKGxldCBvPTE7bzw9YztvKyspe2xldCByPWZQKHRbb10sITEpO3Iub2Zmc2V0PVFQKChlK3Iub2Zmc2V0Km4pL2EpLGkucHVzaChyKX1uPWEsZT0wLG89IiIsdD1pfXJldHVybiBqUCh0aGlzLmVsZW1lbnQsdCx0aGlzLnByZVN0eWxlUHJvcHMsdGhpcy5wb3N0U3R5bGVQcm9wcyxuLGUsbywhMCl9fWZ1bmN0aW9uIFFQKHQsZT0zKXtjb25zdCBuPU1hdGgucG93KDEwLGUtMSk7cmV0dXJuIE1hdGgucm91bmQodCpuKS9ufWNsYXNzICRQe30KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgdHcgZXh0ZW5kcyAkUHtub3JtYWxpemVQcm9wZXJ0eU5hbWUodCxlKXtyZXR1cm4gT1AodCl9bm9ybWFsaXplU3R5bGVWYWx1ZSh0LGUsbixvKXtsZXQgaT0iIjtjb25zdCBhPW4udG9TdHJpbmcoKS50cmltKCk7aWYoZXdbZV0mJjAhPT1uJiYiMCIhPT1uKWlmKCJudW1iZXIiPT10eXBlb2YgbilpPSJweCI7ZWxzZXtjb25zdCBlPW4ubWF0Y2goL15bKy1dP1tcZFwuXSsoW2Etel0qKSQvKTtlJiYwPT1lWzFdLmxlbmd0aCYmby5wdXNoKGBQbGVhc2UgcHJvdmlkZSBhIENTUyB1bml0IHZhbHVlIGZvciAke3R9OiR7bn1gKX1yZXR1cm4gYStpfX1jb25zdCBldz0oZnVuY3Rpb24gbncodCl7Y29uc3QgZT17fTtyZXR1cm4gdC5mb3JFYWNoKCh0PT5lW3RdPSEwKSksZX0pKCJ3aWR0aCxoZWlnaHQsbWluV2lkdGgsbWluSGVpZ2h0LG1heFdpZHRoLG1heEhlaWdodCxsZWZ0LHRvcCxib3R0b20scmlnaHQsZm9udFNpemUsb3V0bGluZVdpZHRoLG91dGxpbmVPZmZzZXQscGFkZGluZ1RvcCxwYWRkaW5nTGVmdCxwYWRkaW5nQm90dG9tLHBhZGRpbmdSaWdodCxtYXJnaW5Ub3AsbWFyZ2luTGVmdCxtYXJnaW5Cb3R0b20sbWFyZ2luUmlnaHQsYm9yZGVyUmFkaXVzLGJvcmRlcldpZHRoLGJvcmRlclRvcFdpZHRoLGJvcmRlckxlZnRXaWR0aCxib3JkZXJSaWdodFdpZHRoLGJvcmRlckJvdHRvbVdpZHRoLHRleHRJbmRlbnQscGVyc3BlY3RpdmUiLnNwbGl0KCIsIikpO2Z1bmN0aW9uIG93KHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0pe3JldHVybnt0eXBlOjAsZWxlbWVudDp0LHRyaWdnZXJOYW1lOmUsaXNSZW1vdmFsVHJhbnNpdGlvbjppLGZyb21TdGF0ZTpuLGZyb21TdHlsZXM6YSx0b1N0YXRlOm8sdG9TdHlsZXM6cix0aW1lbGluZXM6cyxxdWVyaWVkRWxlbWVudHM6bCxwcmVTdHlsZVByb3BzOmMscG9zdFN0eWxlUHJvcHM6ZCx0b3RhbFRpbWU6cCxlcnJvcnM6bX19Y29uc3QgaXc9e307Y2xhc3MgYXd7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuX3RyaWdnZXJOYW1lPXQsdGhpcy5hc3Q9ZSx0aGlzLl9zdGF0ZVN0eWxlcz1ufW1hdGNoKHQsZSxuLG8pe3JldHVybihmdW5jdGlvbiBpKHQsZSxuLG8sYSl7cmV0dXJuIHQuc29tZSgodD0+dChlLG4sbyxhKSkpfSkodGhpcy5hc3QubWF0Y2hlcnMsdCxlLG4sbyl9YnVpbGRTdHlsZXModCxlLG4pe2NvbnN0IG89dGhpcy5fc3RhdGVTdHlsZXNbIioiXSxpPXRoaXMuX3N0YXRlU3R5bGVzW3RdLGE9bz9vLmJ1aWxkU3R5bGVzKGUsbik6e307cmV0dXJuIGk/aS5idWlsZFN0eWxlcyhlLG4pOmF9YnVpbGQodCxlLG4sbyxpLGEscixzLGwsYyl7Y29uc3QgZD1bXSxwPXRoaXMuYXN0Lm9wdGlvbnMmJnRoaXMuYXN0Lm9wdGlvbnMucGFyYW1zfHxpdyxtPXRoaXMuYnVpbGRTdHlsZXMobixyJiZyLnBhcmFtc3x8aXcsZCksZj1zJiZzLnBhcmFtc3x8aXcsdT10aGlzLmJ1aWxkU3R5bGVzKG8sZixkKSxnPW5ldyBTZXQsaD1uZXcgTWFwLGI9bmV3IE1hcCx5PSJ2b2lkIj09PW8sXz17cGFyYW1zOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxwKSxmKX0sQz1jP1tdOllQKHQsZSx0aGlzLmFzdC5hbmltYXRpb24saSxhLG0sdSxfLGwsZCk7bGV0IE09MDtpZihDLmZvckVhY2goKHQ9PntNPU1hdGgubWF4KHQuZHVyYXRpb24rdC5kZWxheSxNKX0pKSxkLmxlbmd0aClyZXR1cm4gb3coZSx0aGlzLl90cmlnZ2VyTmFtZSxuLG8seSxtLHUsW10sW10saCxiLE0sZCk7Qy5mb3JFYWNoKCh0PT57Y29uc3Qgbj10LmVsZW1lbnQsbz1qTyhoLG4se30pO3QucHJlU3R5bGVQcm9wcy5mb3JFYWNoKCh0PT5vW3RdPSEwKSk7Y29uc3QgaT1qTyhiLG4se30pO3QucG9zdFN0eWxlUHJvcHMuZm9yRWFjaCgodD0+aVt0XT0hMCkpLG4hPT1lJiZnLmFkZChuKX0pKTtjb25zdCB2PXZQKGcudmFsdWVzKCkpO3JldHVybiBvdyhlLHRoaXMuX3RyaWdnZXJOYW1lLG4sbyx5LG0sdSxDLHYsaCxiLE0pfX1jbGFzcyByd3tjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5zdHlsZXM9dCx0aGlzLmRlZmF1bHRQYXJhbXM9ZSx0aGlzLm5vcm1hbGl6ZXI9bn1idWlsZFN0eWxlcyh0LGUpe2NvbnN0IG49e30sbz1tUCh0aGlzLmRlZmF1bHRQYXJhbXMpO3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChlPT57Y29uc3Qgbj10W2VdO251bGwhPW4mJihvW2VdPW4pfSkpLHRoaXMuc3R5bGVzLnN0eWxlcy5mb3JFYWNoKCh0PT57aWYoInN0cmluZyIhPXR5cGVvZiB0KXtjb25zdCBpPXQ7T2JqZWN0LmtleXMoaSkuZm9yRWFjaCgodD0+e2xldCBhPWlbdF07YS5sZW5ndGg+MSYmKGE9TVAoYSxvLGUpKTtjb25zdCByPXRoaXMubm9ybWFsaXplci5ub3JtYWxpemVQcm9wZXJ0eU5hbWUodCxlKTthPXRoaXMubm9ybWFsaXplci5ub3JtYWxpemVTdHlsZVZhbHVlKHQscixhLGUpLG5bcl09YX0pKX19KSksbn19Y2xhc3Mgc3d7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMubmFtZT10LHRoaXMuYXN0PWUsdGhpcy5fbm9ybWFsaXplcj1uLHRoaXMudHJhbnNpdGlvbkZhY3Rvcmllcz1bXSx0aGlzLnN0YXRlcz17fSxlLnN0YXRlcy5mb3JFYWNoKCh0PT57dGhpcy5zdGF0ZXNbdC5uYW1lXT1uZXcgcncodC5zdHlsZSx0Lm9wdGlvbnMmJnQub3B0aW9ucy5wYXJhbXN8fHt9LG4pfSkpLGx3KHRoaXMuc3RhdGVzLCJ0cnVlIiwiMSIpLGx3KHRoaXMuc3RhdGVzLCJmYWxzZSIsIjAiKSxlLnRyYW5zaXRpb25zLmZvckVhY2goKGU9Pnt0aGlzLnRyYW5zaXRpb25GYWN0b3JpZXMucHVzaChuZXcgYXcodCxlLHRoaXMuc3RhdGVzKSl9KSksdGhpcy5mYWxsYmFja1RyYW5zaXRpb249KGZ1bmN0aW9uIG8odCxlLG4pe3JldHVybiBuZXcgYXcodCx7dHlwZToxLGFuaW1hdGlvbjp7dHlwZToyLHN0ZXBzOltdLG9wdGlvbnM6bnVsbH0sbWF0Y2hlcnM6Wyh0LGUpPT4hMF0sb3B0aW9uczpudWxsLHF1ZXJ5Q291bnQ6MCxkZXBDb3VudDowfSxlKX0pKHQsdGhpcy5zdGF0ZXMpfWdldCBjb250YWluc1F1ZXJpZXMoKXtyZXR1cm4gdGhpcy5hc3QucXVlcnlDb3VudD4wfW1hdGNoVHJhbnNpdGlvbih0LGUsbixvKXtyZXR1cm4gdGhpcy50cmFuc2l0aW9uRmFjdG9yaWVzLmZpbmQoKGk9PmkubWF0Y2godCxlLG4sbykpKXx8bnVsbH1tYXRjaFN0eWxlcyh0LGUsbil7cmV0dXJuIHRoaXMuZmFsbGJhY2tUcmFuc2l0aW9uLmJ1aWxkU3R5bGVzKHQsZSxuKX19ZnVuY3Rpb24gbHcodCxlLG4pe3QuaGFzT3duUHJvcGVydHkoZSk/dC5oYXNPd25Qcm9wZXJ0eShuKXx8KHRbbl09dFtlXSk6dC5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbZV09dFtuXSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IGN3PW5ldyBVUDtjbGFzcyBkd3tjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5ib2R5Tm9kZT10LHRoaXMuX2RyaXZlcj1lLHRoaXMuX25vcm1hbGl6ZXI9bix0aGlzLl9hbmltYXRpb25zPXt9LHRoaXMuX3BsYXllcnNCeUlkPXt9LHRoaXMucGxheWVycz1bXX1yZWdpc3Rlcih0LGUpe2NvbnN0IG49W10sbz1JUCh0aGlzLl9kcml2ZXIsZSxuKTtpZihuLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBidWlsZCB0aGUgYW5pbWF0aW9uIGR1ZSB0byB0aGUgZm9sbG93aW5nIGVycm9yczogJHtuLmpvaW4oIlxuIil9YCk7dGhpcy5fYW5pbWF0aW9uc1t0XT1vfV9idWlsZFBsYXllcih0LGUsbil7Y29uc3Qgbz10LmVsZW1lbnQsaT1GTygwLHRoaXMuX25vcm1hbGl6ZXIsMCx0LmtleWZyYW1lcyxlLG4pO3JldHVybiB0aGlzLl9kcml2ZXIuYW5pbWF0ZShvLGksdC5kdXJhdGlvbix0LmRlbGF5LHQuZWFzaW5nLFtdLCEwKX1jcmVhdGUodCxlLG49e30pe2NvbnN0IG89W10saT10aGlzLl9hbmltYXRpb25zW3RdO2xldCBhO2NvbnN0IHI9bmV3IE1hcDtpZihpPyhhPVlQKHRoaXMuX2RyaXZlcixlLGksb1AsaVAse30se30sbixjdyxvKSxhLmZvckVhY2goKHQ9Pntjb25zdCBlPWpPKHIsdC5lbGVtZW50LHt9KTt0LnBvc3RTdHlsZVByb3BzLmZvckVhY2goKHQ9PmVbdF09bnVsbCkpfSkpKTooby5wdXNoKCJUaGUgcmVxdWVzdGVkIGFuaW1hdGlvbiBkb2Vzbid0IGV4aXN0IG9yIGhhcyBhbHJlYWR5IGJlZW4gZGVzdHJveWVkIiksYT1bXSksby5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gY3JlYXRlIHRoZSBhbmltYXRpb24gZHVlIHRvIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiAke28uam9pbigiXG4iKX1gKTtyLmZvckVhY2goKCh0LGUpPT57T2JqZWN0LmtleXModCkuZm9yRWFjaCgobj0+e3Rbbl09dGhpcy5fZHJpdmVyLmNvbXB1dGVTdHlsZShlLG4sdk8pfSkpfSkpO2NvbnN0IHM9SE8oYS5tYXAoKHQ9Pntjb25zdCBlPXIuZ2V0KHQuZWxlbWVudCk7cmV0dXJuIHRoaXMuX2J1aWxkUGxheWVyKHQse30sZSl9KSkpO3JldHVybiB0aGlzLl9wbGF5ZXJzQnlJZFt0XT1zLHMub25EZXN0cm95KCgoKT0+dGhpcy5kZXN0cm95KHQpKSksdGhpcy5wbGF5ZXJzLnB1c2gocyksc31kZXN0cm95KHQpe2NvbnN0IGU9dGhpcy5fZ2V0UGxheWVyKHQpO2UuZGVzdHJveSgpLGRlbGV0ZSB0aGlzLl9wbGF5ZXJzQnlJZFt0XTtjb25zdCBuPXRoaXMucGxheWVycy5pbmRleE9mKGUpO24+PTAmJnRoaXMucGxheWVycy5zcGxpY2UobiwxKX1fZ2V0UGxheWVyKHQpe2NvbnN0IGU9dGhpcy5fcGxheWVyc0J5SWRbdF07aWYoIWUpdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gZmluZCB0aGUgdGltZWxpbmUgcGxheWVyIHJlZmVyZW5jZWQgYnkgJHt0fWApO3JldHVybiBlfWxpc3Rlbih0LGUsbixvKXtjb25zdCBpPVZPKGUsIiIsIiIsIiIpO3JldHVybiBMTyh0aGlzLl9nZXRQbGF5ZXIodCksbixpLG8pLCgpPT57fX1jb21tYW5kKHQsZSxuLG8pe2lmKCJyZWdpc3RlciI9PW4pcmV0dXJuIHZvaWQgdGhpcy5yZWdpc3Rlcih0LG9bMF0pO2lmKCJjcmVhdGUiPT1uKXtyZXR1cm4gdm9pZCB0aGlzLmNyZWF0ZSh0LGUsb1swXXx8e30pfWNvbnN0IGk9dGhpcy5fZ2V0UGxheWVyKHQpO3N3aXRjaChuKXtjYXNlInBsYXkiOmkucGxheSgpO2JyZWFrO2Nhc2UicGF1c2UiOmkucGF1c2UoKTticmVhaztjYXNlInJlc2V0IjppLnJlc2V0KCk7YnJlYWs7Y2FzZSJyZXN0YXJ0IjppLnJlc3RhcnQoKTticmVhaztjYXNlImZpbmlzaCI6aS5maW5pc2goKTticmVhaztjYXNlImluaXQiOmkuaW5pdCgpO2JyZWFrO2Nhc2Uic2V0UG9zaXRpb24iOmkuc2V0UG9zaXRpb24ocGFyc2VGbG9hdChvWzBdKSk7YnJlYWs7Y2FzZSJkZXN0cm95Ijp0aGlzLmRlc3Ryb3kodCl9fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgcHc9Im5nLWFuaW1hdGUtcXVldWVkIixtdz0ibmctYW5pbWF0ZS1kaXNhYmxlZCIsZnc9Ii5uZy1hbmltYXRlLWRpc2FibGVkIix1dz1bXSxndz17bmFtZXNwYWNlSWQ6IiIsc2V0Rm9yUmVtb3ZhbDohMSxzZXRGb3JNb3ZlOiExLGhhc0FuaW1hdGlvbjohMSxyZW1vdmVkQmVmb3JlUXVlcmllZDohMX0saHc9e25hbWVzcGFjZUlkOiIiLHNldEZvck1vdmU6ITEsc2V0Rm9yUmVtb3ZhbDohMSxoYXNBbmltYXRpb246ITEscmVtb3ZlZEJlZm9yZVF1ZXJpZWQ6ITB9O2NsYXNzIGJ3e2NvbnN0cnVjdG9yKHQsZT0iIil7dGhpcy5uYW1lc3BhY2VJZD1lO2NvbnN0IG49dCYmdC5oYXNPd25Qcm9wZXJ0eSgidmFsdWUiKTtpZih0aGlzLnZhbHVlPShmdW5jdGlvbiBvKHQpe3JldHVybiBudWxsIT10P3Q6bnVsbH0pKG4/dC52YWx1ZTp0KSxuKXtjb25zdCBlPW1QKHQpO2RlbGV0ZSBlLnZhbHVlLHRoaXMub3B0aW9ucz1lfWVsc2UgdGhpcy5vcHRpb25zPXt9O3RoaXMub3B0aW9ucy5wYXJhbXN8fCh0aGlzLm9wdGlvbnMucGFyYW1zPXt9KX1nZXQgcGFyYW1zKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5wYXJhbXN9YWJzb3JiT3B0aW9ucyh0KXtjb25zdCBlPXQucGFyYW1zO2lmKGUpe2NvbnN0IHQ9dGhpcy5vcHRpb25zLnBhcmFtcztPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChuPT57bnVsbD09dFtuXSYmKHRbbl09ZVtuXSl9KSl9fX1jb25zdCB5dz0idm9pZCIsX3c9bmV3IGJ3KHl3KTtjbGFzcyBDd3tjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5pZD10LHRoaXMuaG9zdEVsZW1lbnQ9ZSx0aGlzLl9lbmdpbmU9bix0aGlzLnBsYXllcnM9W10sdGhpcy5fdHJpZ2dlcnM9e30sdGhpcy5fcXVldWU9W10sdGhpcy5fZWxlbWVudExpc3RlbmVycz1uZXcgTWFwLHRoaXMuX2hvc3RDbGFzc05hbWU9Im5nLXRucy0iK3Qsa3coZSx0aGlzLl9ob3N0Q2xhc3NOYW1lKX1saXN0ZW4odCxlLG4sbyl7aWYoIXRoaXMuX3RyaWdnZXJzLmhhc093blByb3BlcnR5KGUpKXRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGxpc3RlbiBvbiB0aGUgYW5pbWF0aW9uIHRyaWdnZXIgZXZlbnQgIiR7bn0iIGJlY2F1c2UgdGhlIGFuaW1hdGlvbiB0cmlnZ2VyICIke2V9IiBkb2Vzbid0IGV4aXN0IWApO2lmKG51bGw9PW58fDA9PW4ubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGxpc3RlbiBvbiB0aGUgYW5pbWF0aW9uIHRyaWdnZXIgIiR7ZX0iIGJlY2F1c2UgdGhlIHByb3ZpZGVkIGV2ZW50IGlzIHVuZGVmaW5lZCFgKTtpZighKGZ1bmN0aW9uIGkodCl7cmV0dXJuInN0YXJ0Ij09dHx8ImRvbmUiPT10fSkobikpdGhyb3cgbmV3IEVycm9yKGBUaGUgcHJvdmlkZWQgYW5pbWF0aW9uIHRyaWdnZXIgZXZlbnQgIiR7bn0iIGZvciB0aGUgYW5pbWF0aW9uIHRyaWdnZXIgIiR7ZX0iIGlzIG5vdCBzdXBwb3J0ZWQhYCk7Y29uc3QgYT1qTyh0aGlzLl9lbGVtZW50TGlzdGVuZXJzLHQsW10pLHI9e25hbWU6ZSxwaGFzZTpuLGNhbGxiYWNrOm99O2EucHVzaChyKTtjb25zdCBzPWpPKHRoaXMuX2VuZ2luZS5zdGF0ZXNCeUVsZW1lbnQsdCx7fSk7cmV0dXJuIHMuaGFzT3duUHJvcGVydHkoZSl8fChrdyh0LGFQKSxrdyh0LCJuZy10cmlnZ2VyLSIrZSksc1tlXT1fdyksKCk9Pnt0aGlzLl9lbmdpbmUuYWZ0ZXJGbHVzaCgoKCk9Pntjb25zdCB0PWEuaW5kZXhPZihyKTt0Pj0wJiZhLnNwbGljZSh0LDEpLHRoaXMuX3RyaWdnZXJzW2VdfHxkZWxldGUgc1tlXX0pKX19cmVnaXN0ZXIodCxlKXtyZXR1cm4hdGhpcy5fdHJpZ2dlcnNbdF0mJih0aGlzLl90cmlnZ2Vyc1t0XT1lLCEwKX1fZ2V0VHJpZ2dlcih0KXtjb25zdCBlPXRoaXMuX3RyaWdnZXJzW3RdO2lmKCFlKXRocm93IG5ldyBFcnJvcihgVGhlIHByb3ZpZGVkIGFuaW1hdGlvbiB0cmlnZ2VyICIke3R9IiBoYXMgbm90IGJlZW4gcmVnaXN0ZXJlZCFgKTtyZXR1cm4gZX10cmlnZ2VyKHQsZSxuLG89ITApe2NvbnN0IGk9dGhpcy5fZ2V0VHJpZ2dlcihlKSxhPW5ldyB2dyh0aGlzLmlkLGUsdCk7bGV0IHI9dGhpcy5fZW5naW5lLnN0YXRlc0J5RWxlbWVudC5nZXQodCk7cnx8KGt3KHQsYVApLGt3KHQsIm5nLXRyaWdnZXItIitlKSx0aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LnNldCh0LHI9e30pKTtsZXQgcz1yW2VdO2NvbnN0IGw9bmV3IGJ3KG4sdGhpcy5pZCk7IShuJiZuLmhhc093blByb3BlcnR5KCJ2YWx1ZSIpKSYmcyYmbC5hYnNvcmJPcHRpb25zKHMub3B0aW9ucykscltlXT1sLHN8fChzPV93KTtpZighKGwudmFsdWU9PT15dykmJnMudmFsdWU9PT1sLnZhbHVlKXtpZighKGZ1bmN0aW9uIGUodCxuKXtjb25zdCBvPU9iamVjdC5rZXlzKHQpLGk9T2JqZWN0LmtleXMobik7aWYoby5sZW5ndGghPWkubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgZT0wO2U8by5sZW5ndGg7ZSsrKXtjb25zdCBpPW9bZV07aWYoIW4uaGFzT3duUHJvcGVydHkoaSl8fHRbaV0hPT1uW2ldKXJldHVybiExfXJldHVybiEwfSkocy5wYXJhbXMsbC5wYXJhbXMpKXtjb25zdCBlPVtdLG49aS5tYXRjaFN0eWxlcyhzLnZhbHVlLHMucGFyYW1zLGUpLG89aS5tYXRjaFN0eWxlcyhsLnZhbHVlLGwucGFyYW1zLGUpO2UubGVuZ3RoP3RoaXMuX2VuZ2luZS5yZXBvcnRFcnJvcihlKTp0aGlzLl9lbmdpbmUuYWZ0ZXJGbHVzaCgoKCk9PntiUCh0LG4pLGhQKHQsbyl9KSl9cmV0dXJufWNvbnN0IGM9ak8odGhpcy5fZW5naW5lLnBsYXllcnNCeUVsZW1lbnQsdCxbXSk7Yy5mb3JFYWNoKCh0PT57dC5uYW1lc3BhY2VJZD09dGhpcy5pZCYmdC50cmlnZ2VyTmFtZT09ZSYmdC5xdWV1ZWQmJnQuZGVzdHJveSgpfSkpO2xldCBkPWkubWF0Y2hUcmFuc2l0aW9uKHMudmFsdWUsbC52YWx1ZSx0LGwucGFyYW1zKSxwPSExO2lmKCFkKXtpZighbylyZXR1cm47ZD1pLmZhbGxiYWNrVHJhbnNpdGlvbixwPSEwfXJldHVybiB0aGlzLl9lbmdpbmUudG90YWxRdWV1ZWRQbGF5ZXJzKyssdGhpcy5fcXVldWUucHVzaCh7ZWxlbWVudDp0LHRyaWdnZXJOYW1lOmUsdHJhbnNpdGlvbjpkLGZyb21TdGF0ZTpzLHRvU3RhdGU6bCxwbGF5ZXI6YSxpc0ZhbGxiYWNrVHJhbnNpdGlvbjpwfSkscHx8KGt3KHQscHcpLGEub25TdGFydCgoKCk9PntTdyh0LHB3KX0pKSksYS5vbkRvbmUoKCgpPT57bGV0IGU9dGhpcy5wbGF5ZXJzLmluZGV4T2YoYSk7ZT49MCYmdGhpcy5wbGF5ZXJzLnNwbGljZShlLDEpO2NvbnN0IG49dGhpcy5fZW5naW5lLnBsYXllcnNCeUVsZW1lbnQuZ2V0KHQpO2lmKG4pe2xldCB0PW4uaW5kZXhPZihhKTt0Pj0wJiZuLnNwbGljZSh0LDEpfX0pKSx0aGlzLnBsYXllcnMucHVzaChhKSxjLnB1c2goYSksYX1kZXJlZ2lzdGVyKHQpe2RlbGV0ZSB0aGlzLl90cmlnZ2Vyc1t0XSx0aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LmZvckVhY2goKChlLG4pPT57ZGVsZXRlIGVbdF19KSksdGhpcy5fZWxlbWVudExpc3RlbmVycy5mb3JFYWNoKCgoZSxuKT0+e3RoaXMuX2VsZW1lbnRMaXN0ZW5lcnMuc2V0KG4sZS5maWx0ZXIoKGU9PmUubmFtZSE9dCkpKX0pKX1jbGVhckVsZW1lbnRDYWNoZSh0KXt0aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LmRlbGV0ZSh0KSx0aGlzLl9lbGVtZW50TGlzdGVuZXJzLmRlbGV0ZSh0KTtjb25zdCBlPXRoaXMuX2VuZ2luZS5wbGF5ZXJzQnlFbGVtZW50LmdldCh0KTtlJiYoZS5mb3JFYWNoKCh0PT50LmRlc3Ryb3koKSkpLHRoaXMuX2VuZ2luZS5wbGF5ZXJzQnlFbGVtZW50LmRlbGV0ZSh0KSl9X3NpZ25hbFJlbW92YWxGb3JJbm5lclRyaWdnZXJzKHQsZSl7Y29uc3Qgbj10aGlzLl9lbmdpbmUuZHJpdmVyLnF1ZXJ5KHQsclAsITApO24uZm9yRWFjaCgodD0+e2lmKHQuX19uZ19yZW1vdmVkKXJldHVybjtjb25zdCBuPXRoaXMuX2VuZ2luZS5mZXRjaE5hbWVzcGFjZXNCeUVsZW1lbnQodCk7bi5zaXplP24uZm9yRWFjaCgobj0+bi50cmlnZ2VyTGVhdmVBbmltYXRpb24odCxlLCExLCEwKSkpOnRoaXMuY2xlYXJFbGVtZW50Q2FjaGUodCl9KSksdGhpcy5fZW5naW5lLmFmdGVyRmx1c2hBbmltYXRpb25zRG9uZSgoKCk9Pm4uZm9yRWFjaCgodD0+dGhpcy5jbGVhckVsZW1lbnRDYWNoZSh0KSkpKSl9dHJpZ2dlckxlYXZlQW5pbWF0aW9uKHQsZSxuLG8pe2NvbnN0IGk9dGhpcy5fZW5naW5lLnN0YXRlc0J5RWxlbWVudC5nZXQodCk7aWYoaSl7Y29uc3QgYT1bXTtpZihPYmplY3Qua2V5cyhpKS5mb3JFYWNoKChlPT57aWYodGhpcy5fdHJpZ2dlcnNbZV0pe2NvbnN0IG49dGhpcy50cmlnZ2VyKHQsZSx5dyxvKTtuJiZhLnB1c2gobil9fSkpLGEubGVuZ3RoKXJldHVybiB0aGlzLl9lbmdpbmUubWFya0VsZW1lbnRBc1JlbW92ZWQodGhpcy5pZCx0LCEwLGUpLG4mJkhPKGEpLm9uRG9uZSgoKCk9PnRoaXMuX2VuZ2luZS5wcm9jZXNzTGVhdmVOb2RlKHQpKSksITB9cmV0dXJuITF9cHJlcGFyZUxlYXZlQW5pbWF0aW9uTGlzdGVuZXJzKHQpe2NvbnN0IGU9dGhpcy5fZWxlbWVudExpc3RlbmVycy5nZXQodCksbj10aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LmdldCh0KTtpZihlJiZuKXtjb25zdCBvPW5ldyBTZXQ7ZS5mb3JFYWNoKChlPT57Y29uc3QgaT1lLm5hbWU7aWYoby5oYXMoaSkpcmV0dXJuO28uYWRkKGkpO2NvbnN0IGE9dGhpcy5fdHJpZ2dlcnNbaV0uZmFsbGJhY2tUcmFuc2l0aW9uLHI9bltpXXx8X3cscz1uZXcgYncoeXcpLGw9bmV3IHZ3KHRoaXMuaWQsaSx0KTt0aGlzLl9lbmdpbmUudG90YWxRdWV1ZWRQbGF5ZXJzKyssdGhpcy5fcXVldWUucHVzaCh7ZWxlbWVudDp0LHRyaWdnZXJOYW1lOmksdHJhbnNpdGlvbjphLGZyb21TdGF0ZTpyLHRvU3RhdGU6cyxwbGF5ZXI6bCxpc0ZhbGxiYWNrVHJhbnNpdGlvbjohMH0pfSkpfX1yZW1vdmVOb2RlKHQsZSl7Y29uc3Qgbj10aGlzLl9lbmdpbmU7aWYodC5jaGlsZEVsZW1lbnRDb3VudCYmdGhpcy5fc2lnbmFsUmVtb3ZhbEZvcklubmVyVHJpZ2dlcnModCxlKSx0aGlzLnRyaWdnZXJMZWF2ZUFuaW1hdGlvbih0LGUsITApKXJldHVybjtsZXQgbz0hMTtpZihuLnRvdGFsQW5pbWF0aW9ucyl7Y29uc3QgZT1uLnBsYXllcnMubGVuZ3RoP24ucGxheWVyc0J5UXVlcmllZEVsZW1lbnQuZ2V0KHQpOltdO2lmKGUmJmUubGVuZ3RoKW89ITA7ZWxzZXtsZXQgZT10O2Zvcig7ZT1lLnBhcmVudE5vZGU7KXtpZihuLnN0YXRlc0J5RWxlbWVudC5nZXQoZSkpe289ITA7YnJlYWt9fX19aWYodGhpcy5wcmVwYXJlTGVhdmVBbmltYXRpb25MaXN0ZW5lcnModCksbyluLm1hcmtFbGVtZW50QXNSZW1vdmVkKHRoaXMuaWQsdCwhMSxlKTtlbHNle2NvbnN0IG89dC5fX25nX3JlbW92ZWQ7byYmbyE9PWd3fHwobi5hZnRlckZsdXNoKCgoKT0+dGhpcy5jbGVhckVsZW1lbnRDYWNoZSh0KSkpLG4uZGVzdHJveUlubmVyQW5pbWF0aW9ucyh0KSxuLl9vblJlbW92YWxDb21wbGV0ZSh0LGUpKX19aW5zZXJ0Tm9kZSh0LGUpe2t3KHQsdGhpcy5faG9zdENsYXNzTmFtZSl9ZHJhaW5RdWV1ZWRUcmFuc2l0aW9ucyh0KXtjb25zdCBlPVtdO3JldHVybiB0aGlzLl9xdWV1ZS5mb3JFYWNoKChuPT57Y29uc3Qgbz1uLnBsYXllcjtpZihvLmRlc3Ryb3llZClyZXR1cm47Y29uc3QgaT1uLmVsZW1lbnQsYT10aGlzLl9lbGVtZW50TGlzdGVuZXJzLmdldChpKTthJiZhLmZvckVhY2goKGU9PntpZihlLm5hbWU9PW4udHJpZ2dlck5hbWUpe2NvbnN0IG89Vk8oaSxuLnRyaWdnZXJOYW1lLG4uZnJvbVN0YXRlLnZhbHVlLG4udG9TdGF0ZS52YWx1ZSk7by5fZGF0YT10LExPKG4ucGxheWVyLGUucGhhc2UsbyxlLmNhbGxiYWNrKX19KSksby5tYXJrZWRGb3JEZXN0cm95P3RoaXMuX2VuZ2luZS5hZnRlckZsdXNoKCgoKT0+e28uZGVzdHJveSgpfSkpOmUucHVzaChuKX0pKSx0aGlzLl9xdWV1ZT1bXSxlLnNvcnQoKCh0LGUpPT57Y29uc3Qgbj10LnRyYW5zaXRpb24uYXN0LmRlcENvdW50LG89ZS50cmFuc2l0aW9uLmFzdC5kZXBDb3VudDtyZXR1cm4gMD09bnx8MD09bz9uLW86dGhpcy5fZW5naW5lLmRyaXZlci5jb250YWluc0VsZW1lbnQodC5lbGVtZW50LGUuZWxlbWVudCk/MTotMX0pKX1kZXN0cm95KHQpe3RoaXMucGxheWVycy5mb3JFYWNoKCh0PT50LmRlc3Ryb3koKSkpLHRoaXMuX3NpZ25hbFJlbW92YWxGb3JJbm5lclRyaWdnZXJzKHRoaXMuaG9zdEVsZW1lbnQsdCl9ZWxlbWVudENvbnRhaW5zRGF0YSh0KXtsZXQgZT0hMTtyZXR1cm4gdGhpcy5fZWxlbWVudExpc3RlbmVycy5oYXModCkmJihlPSEwKSxlPSEhdGhpcy5fcXVldWUuZmluZCgoZT0+ZS5lbGVtZW50PT09dCkpfHxlLGV9fWNsYXNzIE13e2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLmJvZHlOb2RlPXQsdGhpcy5kcml2ZXI9ZSx0aGlzLl9ub3JtYWxpemVyPW4sdGhpcy5wbGF5ZXJzPVtdLHRoaXMubmV3SG9zdEVsZW1lbnRzPW5ldyBNYXAsdGhpcy5wbGF5ZXJzQnlFbGVtZW50PW5ldyBNYXAsdGhpcy5wbGF5ZXJzQnlRdWVyaWVkRWxlbWVudD1uZXcgTWFwLHRoaXMuc3RhdGVzQnlFbGVtZW50PW5ldyBNYXAsdGhpcy5kaXNhYmxlZE5vZGVzPW5ldyBTZXQsdGhpcy50b3RhbEFuaW1hdGlvbnM9MCx0aGlzLnRvdGFsUXVldWVkUGxheWVycz0wLHRoaXMuX25hbWVzcGFjZUxvb2t1cD17fSx0aGlzLl9uYW1lc3BhY2VMaXN0PVtdLHRoaXMuX2ZsdXNoRm5zPVtdLHRoaXMuX3doZW5RdWlldEZucz1bXSx0aGlzLm5hbWVzcGFjZXNCeUhvc3RFbGVtZW50PW5ldyBNYXAsdGhpcy5jb2xsZWN0ZWRFbnRlckVsZW1lbnRzPVtdLHRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cz1bXSx0aGlzLm9uUmVtb3ZhbENvbXBsZXRlPSh0LGUpPT57fX1fb25SZW1vdmFsQ29tcGxldGUodCxlKXt0aGlzLm9uUmVtb3ZhbENvbXBsZXRlKHQsZSl9Z2V0IHF1ZXVlZFBsYXllcnMoKXtjb25zdCB0PVtdO3JldHVybiB0aGlzLl9uYW1lc3BhY2VMaXN0LmZvckVhY2goKGU9PntlLnBsYXllcnMuZm9yRWFjaCgoZT0+e2UucXVldWVkJiZ0LnB1c2goZSl9KSl9KSksdH1jcmVhdGVOYW1lc3BhY2UodCxlKXtjb25zdCBuPW5ldyBDdyh0LGUsdGhpcyk7cmV0dXJuIHRoaXMuYm9keU5vZGUmJnRoaXMuZHJpdmVyLmNvbnRhaW5zRWxlbWVudCh0aGlzLmJvZHlOb2RlLGUpP3RoaXMuX2JhbGFuY2VOYW1lc3BhY2VMaXN0KG4sZSk6KHRoaXMubmV3SG9zdEVsZW1lbnRzLnNldChlLG4pLHRoaXMuY29sbGVjdEVudGVyRWxlbWVudChlKSksdGhpcy5fbmFtZXNwYWNlTG9va3VwW3RdPW59X2JhbGFuY2VOYW1lc3BhY2VMaXN0KHQsZSl7Y29uc3Qgbj10aGlzLl9uYW1lc3BhY2VMaXN0Lmxlbmd0aC0xO2lmKG4+PTApe2xldCBvPSExO2ZvcihsZXQgaT1uO2k+PTA7aS0tKXtpZih0aGlzLmRyaXZlci5jb250YWluc0VsZW1lbnQodGhpcy5fbmFtZXNwYWNlTGlzdFtpXS5ob3N0RWxlbWVudCxlKSl7dGhpcy5fbmFtZXNwYWNlTGlzdC5zcGxpY2UoaSsxLDAsdCksbz0hMDticmVha319b3x8dGhpcy5fbmFtZXNwYWNlTGlzdC5zcGxpY2UoMCwwLHQpfWVsc2UgdGhpcy5fbmFtZXNwYWNlTGlzdC5wdXNoKHQpO3JldHVybiB0aGlzLm5hbWVzcGFjZXNCeUhvc3RFbGVtZW50LnNldChlLHQpLHR9cmVnaXN0ZXIodCxlKXtsZXQgbj10aGlzLl9uYW1lc3BhY2VMb29rdXBbdF07cmV0dXJuIG58fChuPXRoaXMuY3JlYXRlTmFtZXNwYWNlKHQsZSkpLG59cmVnaXN0ZXJUcmlnZ2VyKHQsZSxuKXtsZXQgbz10aGlzLl9uYW1lc3BhY2VMb29rdXBbdF07byYmby5yZWdpc3RlcihlLG4pJiZ0aGlzLnRvdGFsQW5pbWF0aW9ucysrfWRlc3Ryb3kodCxlKXtpZighdClyZXR1cm47Y29uc3Qgbj10aGlzLl9mZXRjaE5hbWVzcGFjZSh0KTt0aGlzLmFmdGVyRmx1c2goKCgpPT57dGhpcy5uYW1lc3BhY2VzQnlIb3N0RWxlbWVudC5kZWxldGUobi5ob3N0RWxlbWVudCksZGVsZXRlIHRoaXMuX25hbWVzcGFjZUxvb2t1cFt0XTtjb25zdCBlPXRoaXMuX25hbWVzcGFjZUxpc3QuaW5kZXhPZihuKTtlPj0wJiZ0aGlzLl9uYW1lc3BhY2VMaXN0LnNwbGljZShlLDEpfSkpLHRoaXMuYWZ0ZXJGbHVzaEFuaW1hdGlvbnNEb25lKCgoKT0+bi5kZXN0cm95KGUpKSl9X2ZldGNoTmFtZXNwYWNlKHQpe3JldHVybiB0aGlzLl9uYW1lc3BhY2VMb29rdXBbdF19ZmV0Y2hOYW1lc3BhY2VzQnlFbGVtZW50KHQpe2NvbnN0IGU9bmV3IFNldCxuPXRoaXMuc3RhdGVzQnlFbGVtZW50LmdldCh0KTtpZihuKXtjb25zdCB0PU9iamVjdC5rZXlzKG4pO2ZvcihsZXQgbz0wO288dC5sZW5ndGg7bysrKXtjb25zdCBpPW5bdFtvXV0ubmFtZXNwYWNlSWQ7aWYoaSl7Y29uc3QgdD10aGlzLl9mZXRjaE5hbWVzcGFjZShpKTt0JiZlLmFkZCh0KX19fXJldHVybiBlfXRyaWdnZXIodCxlLG4sbyl7aWYoeHcoZSkpe2NvbnN0IGk9dGhpcy5fZmV0Y2hOYW1lc3BhY2UodCk7aWYoaSlyZXR1cm4gaS50cmlnZ2VyKGUsbixvKSwhMH1yZXR1cm4hMX1pbnNlcnROb2RlKHQsZSxuLG8pe2lmKCF4dyhlKSlyZXR1cm47Y29uc3QgaT1lLl9fbmdfcmVtb3ZlZDtpZihpJiZpLnNldEZvclJlbW92YWwpe2kuc2V0Rm9yUmVtb3ZhbD0hMSxpLnNldEZvck1vdmU9ITA7Y29uc3QgdD10aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHMuaW5kZXhPZihlKTt0Pj0wJiZ0aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHMuc3BsaWNlKHQsMSl9aWYodCl7Y29uc3Qgbz10aGlzLl9mZXRjaE5hbWVzcGFjZSh0KTtvJiZvLmluc2VydE5vZGUoZSxuKX1vJiZ0aGlzLmNvbGxlY3RFbnRlckVsZW1lbnQoZSl9Y29sbGVjdEVudGVyRWxlbWVudCh0KXt0aGlzLmNvbGxlY3RlZEVudGVyRWxlbWVudHMucHVzaCh0KX1tYXJrRWxlbWVudEFzRGlzYWJsZWQodCxlKXtlP3RoaXMuZGlzYWJsZWROb2Rlcy5oYXModCl8fCh0aGlzLmRpc2FibGVkTm9kZXMuYWRkKHQpLGt3KHQsbXcpKTp0aGlzLmRpc2FibGVkTm9kZXMuaGFzKHQpJiYodGhpcy5kaXNhYmxlZE5vZGVzLmRlbGV0ZSh0KSxTdyh0LG13KSl9cmVtb3ZlTm9kZSh0LGUsbixvKXtpZih4dyhlKSl7Y29uc3QgaT10P3RoaXMuX2ZldGNoTmFtZXNwYWNlKHQpOm51bGw7aWYoaT9pLnJlbW92ZU5vZGUoZSxvKTp0aGlzLm1hcmtFbGVtZW50QXNSZW1vdmVkKHQsZSwhMSxvKSxuKXtjb25zdCBuPXRoaXMubmFtZXNwYWNlc0J5SG9zdEVsZW1lbnQuZ2V0KGUpO24mJm4uaWQhPT10JiZuLnJlbW92ZU5vZGUoZSxvKX19ZWxzZSB0aGlzLl9vblJlbW92YWxDb21wbGV0ZShlLG8pfW1hcmtFbGVtZW50QXNSZW1vdmVkKHQsZSxuLG8pe3RoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5wdXNoKGUpLGUuX19uZ19yZW1vdmVkPXtuYW1lc3BhY2VJZDp0LHNldEZvclJlbW92YWw6byxoYXNBbmltYXRpb246bixyZW1vdmVkQmVmb3JlUXVlcmllZDohMX19bGlzdGVuKHQsZSxuLG8saSl7cmV0dXJuIHh3KGUpP3RoaXMuX2ZldGNoTmFtZXNwYWNlKHQpLmxpc3RlbihlLG4sbyxpKTooKT0+e319X2J1aWxkSW5zdHJ1Y3Rpb24odCxlLG4sbyxpKXtyZXR1cm4gdC50cmFuc2l0aW9uLmJ1aWxkKHRoaXMuZHJpdmVyLHQuZWxlbWVudCx0LmZyb21TdGF0ZS52YWx1ZSx0LnRvU3RhdGUudmFsdWUsbixvLHQuZnJvbVN0YXRlLm9wdGlvbnMsdC50b1N0YXRlLm9wdGlvbnMsZSxpKX1kZXN0cm95SW5uZXJBbmltYXRpb25zKHQpe2xldCBlPXRoaXMuZHJpdmVyLnF1ZXJ5KHQsclAsITApO2UuZm9yRWFjaCgodD0+dGhpcy5kZXN0cm95QWN0aXZlQW5pbWF0aW9uc0ZvckVsZW1lbnQodCkpKSwwIT10aGlzLnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50LnNpemUmJihlPXRoaXMuZHJpdmVyLnF1ZXJ5KHQsbFAsITApLGUuZm9yRWFjaCgodD0+dGhpcy5maW5pc2hBY3RpdmVRdWVyaWVkQW5pbWF0aW9uT25FbGVtZW50KHQpKSkpfWRlc3Ryb3lBY3RpdmVBbmltYXRpb25zRm9yRWxlbWVudCh0KXtjb25zdCBlPXRoaXMucGxheWVyc0J5RWxlbWVudC5nZXQodCk7ZSYmZS5mb3JFYWNoKCh0PT57dC5xdWV1ZWQ/dC5tYXJrZWRGb3JEZXN0cm95PSEwOnQuZGVzdHJveSgpfSkpfWZpbmlzaEFjdGl2ZVF1ZXJpZWRBbmltYXRpb25PbkVsZW1lbnQodCl7Y29uc3QgZT10aGlzLnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50LmdldCh0KTtlJiZlLmZvckVhY2goKHQ9PnQuZmluaXNoKCkpKX13aGVuUmVuZGVyaW5nRG9uZSgpe3JldHVybiBuZXcgUHJvbWlzZSgodD0+e2lmKHRoaXMucGxheWVycy5sZW5ndGgpcmV0dXJuIEhPKHRoaXMucGxheWVycykub25Eb25lKCgoKT0+dCgpKSk7dCgpfSkpfXByb2Nlc3NMZWF2ZU5vZGUodCl7Y29uc3QgZT10Ll9fbmdfcmVtb3ZlZDtpZihlJiZlLnNldEZvclJlbW92YWwpe2lmKHQuX19uZ19yZW1vdmVkPWd3LGUubmFtZXNwYWNlSWQpe3RoaXMuZGVzdHJveUlubmVyQW5pbWF0aW9ucyh0KTtjb25zdCBuPXRoaXMuX2ZldGNoTmFtZXNwYWNlKGUubmFtZXNwYWNlSWQpO24mJm4uY2xlYXJFbGVtZW50Q2FjaGUodCl9dGhpcy5fb25SZW1vdmFsQ29tcGxldGUodCxlLnNldEZvclJlbW92YWwpfXRoaXMuZHJpdmVyLm1hdGNoZXNFbGVtZW50KHQsZncpJiZ0aGlzLm1hcmtFbGVtZW50QXNEaXNhYmxlZCh0LCExKSx0aGlzLmRyaXZlci5xdWVyeSh0LGZ3LCEwKS5mb3JFYWNoKCh0PT57dGhpcy5tYXJrRWxlbWVudEFzRGlzYWJsZWQodCwhMSl9KSl9Zmx1c2godD0tMSl7bGV0IGU9W107aWYodGhpcy5uZXdIb3N0RWxlbWVudHMuc2l6ZSYmKHRoaXMubmV3SG9zdEVsZW1lbnRzLmZvckVhY2goKCh0LGUpPT50aGlzLl9iYWxhbmNlTmFtZXNwYWNlTGlzdCh0LGUpKSksdGhpcy5uZXdIb3N0RWxlbWVudHMuY2xlYXIoKSksdGhpcy50b3RhbEFuaW1hdGlvbnMmJnRoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50cy5sZW5ndGgpZm9yKGxldCB0PTA7dDx0aGlzLmNvbGxlY3RlZEVudGVyRWxlbWVudHMubGVuZ3RoO3QrKyl7a3codGhpcy5jb2xsZWN0ZWRFbnRlckVsZW1lbnRzW3RdLCJuZy1zdGFyLWluc2VydGVkIil9aWYodGhpcy5fbmFtZXNwYWNlTGlzdC5sZW5ndGgmJih0aGlzLnRvdGFsUXVldWVkUGxheWVyc3x8dGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzLmxlbmd0aCkpe2NvbnN0IG49W107dHJ5e2U9dGhpcy5fZmx1c2hBbmltYXRpb25zKG4sdCl9ZmluYWxseXtmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoO3QrKyluW3RdKCl9fWVsc2UgZm9yKGxldCB0PTA7dDx0aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHMubGVuZ3RoO3QrKyl7dGhpcy5wcm9jZXNzTGVhdmVOb2RlKHRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50c1t0XSl9aWYodGhpcy50b3RhbFF1ZXVlZFBsYXllcnM9MCx0aGlzLmNvbGxlY3RlZEVudGVyRWxlbWVudHMubGVuZ3RoPTAsdGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzLmxlbmd0aD0wLHRoaXMuX2ZsdXNoRm5zLmZvckVhY2goKHQ9PnQoKSkpLHRoaXMuX2ZsdXNoRm5zPVtdLHRoaXMuX3doZW5RdWlldEZucy5sZW5ndGgpe2NvbnN0IHQ9dGhpcy5fd2hlblF1aWV0Rm5zO3RoaXMuX3doZW5RdWlldEZucz1bXSxlLmxlbmd0aD9ITyhlKS5vbkRvbmUoKCgpPT57dC5mb3JFYWNoKCh0PT50KCkpKX0pKTp0LmZvckVhY2goKHQ9PnQoKSkpfX1yZXBvcnRFcnJvcih0KXt0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBwcm9jZXNzIGFuaW1hdGlvbnMgZHVlIHRvIHRoZSBmb2xsb3dpbmcgZmFpbGVkIHRyaWdnZXIgdHJhbnNpdGlvbnNcbiAke3Quam9pbigiXG4iKX1gKX1fZmx1c2hBbmltYXRpb25zKHQsZSl7Y29uc3Qgbj1uZXcgVVAsbz1bXSxpPW5ldyBNYXAsYT1bXSxyPW5ldyBNYXAscz1uZXcgTWFwLGw9bmV3IE1hcCxjPW5ldyBTZXQ7dGhpcy5kaXNhYmxlZE5vZGVzLmZvckVhY2goKHQ9PntjLmFkZCh0KTtjb25zdCBlPXRoaXMuZHJpdmVyLnF1ZXJ5KHQsIi5uZy1hbmltYXRlLXF1ZXVlZCIsITApO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWMuYWRkKGVbdF0pfSkpO2NvbnN0IGQ9dGhpcy5ib2R5Tm9kZSxwPUFycmF5LmZyb20odGhpcy5zdGF0ZXNCeUVsZW1lbnQua2V5cygpKSxtPXd3KHAsdGhpcy5jb2xsZWN0ZWRFbnRlckVsZW1lbnRzKSxmPW5ldyBNYXA7bGV0IHU9MDttLmZvckVhY2goKCh0LGUpPT57Y29uc3Qgbj1vUCt1Kys7Zi5zZXQoZSxuKSx0LmZvckVhY2goKHQ9Pmt3KHQsbikpKX0pKTtjb25zdCBnPVtdLGg9bmV3IFNldCxiPW5ldyBTZXQ7Zm9yKGxldCB0PTA7dDx0aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHMubGVuZ3RoO3QrKyl7Y29uc3QgZT10aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHNbdF0sbj1lLl9fbmdfcmVtb3ZlZDtuJiZuLnNldEZvclJlbW92YWwmJihnLnB1c2goZSksaC5hZGQoZSksbi5oYXNBbmltYXRpb24/dGhpcy5kcml2ZXIucXVlcnkoZSwiLm5nLXN0YXItaW5zZXJ0ZWQiLCEwKS5mb3JFYWNoKCh0PT5oLmFkZCh0KSkpOmIuYWRkKGUpKX1jb25zdCB5PW5ldyBNYXAsXz13dyhwLEFycmF5LmZyb20oaCkpO18uZm9yRWFjaCgoKHQsZSk9Pntjb25zdCBuPWlQK3UrKzt5LnNldChlLG4pLHQuZm9yRWFjaCgodD0+a3codCxuKSkpfSkpLHQucHVzaCgoKCk9PnttLmZvckVhY2goKCh0LGUpPT57Y29uc3Qgbj1mLmdldChlKTt0LmZvckVhY2goKHQ9PlN3KHQsbikpKX0pKSxfLmZvckVhY2goKCh0LGUpPT57Y29uc3Qgbj15LmdldChlKTt0LmZvckVhY2goKHQ9PlN3KHQsbikpKX0pKSxnLmZvckVhY2goKHQ9Pnt0aGlzLnByb2Nlc3NMZWF2ZU5vZGUodCl9KSl9KSk7Y29uc3QgQz1bXSxNPVtdO2ZvcihsZXQgdD10aGlzLl9uYW1lc3BhY2VMaXN0Lmxlbmd0aC0xO3Q+PTA7dC0tKXt0aGlzLl9uYW1lc3BhY2VMaXN0W3RdLmRyYWluUXVldWVkVHJhbnNpdGlvbnMoZSkuZm9yRWFjaCgodD0+e2NvbnN0IGU9dC5wbGF5ZXIsaT10LmVsZW1lbnQ7aWYoQy5wdXNoKGUpLHRoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50cy5sZW5ndGgpe2NvbnN0IHQ9aS5fX25nX3JlbW92ZWQ7aWYodCYmdC5zZXRGb3JNb3ZlKXJldHVybiB2b2lkIGUuZGVzdHJveSgpfWNvbnN0IGM9IWR8fCF0aGlzLmRyaXZlci5jb250YWluc0VsZW1lbnQoZCxpKSxwPXkuZ2V0KGkpLG09Zi5nZXQoaSksdT10aGlzLl9idWlsZEluc3RydWN0aW9uKHQsbixtLHAsYyk7aWYodS5lcnJvcnMmJnUuZXJyb3JzLmxlbmd0aClyZXR1cm4gdm9pZCBNLnB1c2godSk7aWYoYylyZXR1cm4gZS5vblN0YXJ0KCgoKT0+YlAoaSx1LmZyb21TdHlsZXMpKSksZS5vbkRlc3Ryb3koKCgpPT5oUChpLHUudG9TdHlsZXMpKSksdm9pZCBvLnB1c2goZSk7aWYodC5pc0ZhbGxiYWNrVHJhbnNpdGlvbilyZXR1cm4gZS5vblN0YXJ0KCgoKT0+YlAoaSx1LmZyb21TdHlsZXMpKSksZS5vbkRlc3Ryb3koKCgpPT5oUChpLHUudG9TdHlsZXMpKSksdm9pZCBvLnB1c2goZSk7dS50aW1lbGluZXMuZm9yRWFjaCgodD0+dC5zdHJldGNoU3RhcnRpbmdLZXlmcmFtZT0hMCkpLG4uYXBwZW5kKGksdS50aW1lbGluZXMpO2EucHVzaCh7aW5zdHJ1Y3Rpb246dSxwbGF5ZXI6ZSxlbGVtZW50Oml9KSx1LnF1ZXJpZWRFbGVtZW50cy5mb3JFYWNoKCh0PT5qTyhyLHQsW10pLnB1c2goZSkpKSx1LnByZVN0eWxlUHJvcHMuZm9yRWFjaCgoKHQsZSk9Pntjb25zdCBuPU9iamVjdC5rZXlzKHQpO2lmKG4ubGVuZ3RoKXtsZXQgdD1zLmdldChlKTt0fHxzLnNldChlLHQ9bmV3IFNldCksbi5mb3JFYWNoKChlPT50LmFkZChlKSkpfX0pKSx1LnBvc3RTdHlsZVByb3BzLmZvckVhY2goKCh0LGUpPT57Y29uc3Qgbj1PYmplY3Qua2V5cyh0KTtsZXQgbz1sLmdldChlKTtvfHxsLnNldChlLG89bmV3IFNldCksbi5mb3JFYWNoKCh0PT5vLmFkZCh0KSkpfSkpfSkpfWlmKE0ubGVuZ3RoKXtjb25zdCB0PVtdO00uZm9yRWFjaCgoZT0+e3QucHVzaChgQCR7ZS50cmlnZ2VyTmFtZX0gaGFzIGZhaWxlZCBkdWUgdG86XG5gKSxlLmVycm9ycy5mb3JFYWNoKChlPT50LnB1c2goYC0gJHtlfVxuYCkpKX0pKSxDLmZvckVhY2goKHQ9PnQuZGVzdHJveSgpKSksdGhpcy5yZXBvcnRFcnJvcih0KX1jb25zdCB2PW5ldyBNYXAseD1uZXcgTWFwO2EuZm9yRWFjaCgodD0+e2NvbnN0IGU9dC5lbGVtZW50O24uaGFzKGUpJiYoeC5zZXQoZSxlKSx0aGlzLl9iZWZvcmVBbmltYXRpb25CdWlsZCh0LnBsYXllci5uYW1lc3BhY2VJZCx0Lmluc3RydWN0aW9uLHYpKX0pKSxvLmZvckVhY2goKHQ9Pntjb25zdCBlPXQuZWxlbWVudDt0aGlzLl9nZXRQcmV2aW91c1BsYXllcnMoZSwhMSx0Lm5hbWVzcGFjZUlkLHQudHJpZ2dlck5hbWUsbnVsbCkuZm9yRWFjaCgodD0+e2pPKHYsZSxbXSkucHVzaCh0KSx0LmRlc3Ryb3koKX0pKX0pKTtjb25zdCBPPWcuZmlsdGVyKCh0PT5Fdyh0LHMsbCkpKSxQPW5ldyBNYXA7UHcoUCx0aGlzLmRyaXZlcixiLGwsdk8pLmZvckVhY2goKHQ9PntFdyh0LHMsbCkmJk8ucHVzaCh0KX0pKTtjb25zdCB3PW5ldyBNYXA7bS5mb3JFYWNoKCgodCxlKT0+e1B3KHcsdGhpcy5kcml2ZXIsbmV3IFNldCh0KSxzLCIhIil9KSksTy5mb3JFYWNoKCh0PT57Y29uc3QgZT1QLmdldCh0KSxuPXcuZ2V0KHQpO1Auc2V0KHQsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLG4pKX0pKTtjb25zdCBrPVtdLFM9W10sRD17fTthLmZvckVhY2goKHQ9Pntjb25zdHtlbGVtZW50OmUscGxheWVyOmEsaW5zdHJ1Y3Rpb246cn09dDtpZihuLmhhcyhlKSl7aWYoYy5oYXMoZSkpcmV0dXJuIGEub25EZXN0cm95KCgoKT0+aFAoZSxyLnRvU3R5bGVzKSkpLGEuZGlzYWJsZWQ9ITAsYS5vdmVycmlkZVRvdGFsVGltZShyLnRvdGFsVGltZSksdm9pZCBvLnB1c2goYSk7bGV0IHQ9RDtpZih4LnNpemU+MSl7bGV0IG49ZTtjb25zdCBvPVtdO2Zvcig7bj1uLnBhcmVudE5vZGU7KXtjb25zdCBlPXguZ2V0KG4pO2lmKGUpe3Q9ZTticmVha31vLnB1c2gobil9by5mb3JFYWNoKChlPT54LnNldChlLHQpKSl9Y29uc3Qgbj10aGlzLl9idWlsZEFuaW1hdGlvbihhLm5hbWVzcGFjZUlkLHIsdixpLHcsUCk7aWYoYS5zZXRSZWFsUGxheWVyKG4pLHQ9PT1EKWsucHVzaChhKTtlbHNle2NvbnN0IGU9dGhpcy5wbGF5ZXJzQnlFbGVtZW50LmdldCh0KTtlJiZlLmxlbmd0aCYmKGEucGFyZW50UGxheWVyPUhPKGUpKSxvLnB1c2goYSl9fWVsc2UgYlAoZSxyLmZyb21TdHlsZXMpLGEub25EZXN0cm95KCgoKT0+aFAoZSxyLnRvU3R5bGVzKSkpLFMucHVzaChhKSxjLmhhcyhlKSYmby5wdXNoKGEpfSkpLFMuZm9yRWFjaCgodD0+e2NvbnN0IGU9aS5nZXQodC5lbGVtZW50KTtpZihlJiZlLmxlbmd0aCl7Y29uc3Qgbj1ITyhlKTt0LnNldFJlYWxQbGF5ZXIobil9fSkpLG8uZm9yRWFjaCgodD0+e3QucGFyZW50UGxheWVyP3Quc3luY1BsYXllckV2ZW50cyh0LnBhcmVudFBsYXllcik6dC5kZXN0cm95KCl9KSk7Zm9yKGxldCB0PTA7dDxnLmxlbmd0aDt0Kyspe2NvbnN0IGU9Z1t0XSxuPWUuX19uZ19yZW1vdmVkO2lmKFN3KGUsaVApLG4mJm4uaGFzQW5pbWF0aW9uKWNvbnRpbnVlO2xldCBvPVtdO2lmKHIuc2l6ZSl7bGV0IHQ9ci5nZXQoZSk7dCYmdC5sZW5ndGgmJm8ucHVzaCguLi50KTtsZXQgbj10aGlzLmRyaXZlci5xdWVyeShlLGxQLCEwKTtmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoO3QrKyl7bGV0IGU9ci5nZXQoblt0XSk7ZSYmZS5sZW5ndGgmJm8ucHVzaCguLi5lKX19Y29uc3QgaT1vLmZpbHRlcigodD0+IXQuZGVzdHJveWVkKSk7aS5sZW5ndGg/RHcodGhpcyxlLGkpOnRoaXMucHJvY2Vzc0xlYXZlTm9kZShlKX1yZXR1cm4gZy5sZW5ndGg9MCxrLmZvckVhY2goKHQ9Pnt0aGlzLnBsYXllcnMucHVzaCh0KSx0Lm9uRG9uZSgoKCk9Pnt0LmRlc3Ryb3koKTtjb25zdCBlPXRoaXMucGxheWVycy5pbmRleE9mKHQpO3RoaXMucGxheWVycy5zcGxpY2UoZSwxKX0pKSx0LnBsYXkoKX0pKSxrfWVsZW1lbnRDb250YWluc0RhdGEodCxlKXtsZXQgbj0hMTtjb25zdCBvPWUuX19uZ19yZW1vdmVkO3JldHVybiBvJiZvLnNldEZvclJlbW92YWwmJihuPSEwKSx0aGlzLnBsYXllcnNCeUVsZW1lbnQuaGFzKGUpJiYobj0hMCksdGhpcy5wbGF5ZXJzQnlRdWVyaWVkRWxlbWVudC5oYXMoZSkmJihuPSEwKSx0aGlzLnN0YXRlc0J5RWxlbWVudC5oYXMoZSkmJihuPSEwKSx0aGlzLl9mZXRjaE5hbWVzcGFjZSh0KS5lbGVtZW50Q29udGFpbnNEYXRhKGUpfHxufWFmdGVyRmx1c2godCl7dGhpcy5fZmx1c2hGbnMucHVzaCh0KX1hZnRlckZsdXNoQW5pbWF0aW9uc0RvbmUodCl7dGhpcy5fd2hlblF1aWV0Rm5zLnB1c2godCl9X2dldFByZXZpb3VzUGxheWVycyh0LGUsbixvLGkpe2xldCBhPVtdO2lmKGUpe2NvbnN0IGU9dGhpcy5wbGF5ZXJzQnlRdWVyaWVkRWxlbWVudC5nZXQodCk7ZSYmKGE9ZSl9ZWxzZXtjb25zdCBlPXRoaXMucGxheWVyc0J5RWxlbWVudC5nZXQodCk7aWYoZSl7Y29uc3QgdD0haXx8aT09eXc7ZS5mb3JFYWNoKChlPT57ZS5xdWV1ZWR8fCh0fHxlLnRyaWdnZXJOYW1lPT1vKSYmYS5wdXNoKGUpfSkpfX1yZXR1cm4obnx8bykmJihhPWEuZmlsdGVyKCh0PT4oIW58fG49PXQubmFtZXNwYWNlSWQpJiYoIW98fG89PXQudHJpZ2dlck5hbWUpKSkpLGF9X2JlZm9yZUFuaW1hdGlvbkJ1aWxkKHQsZSxuKXtjb25zdCBvPWUuZWxlbWVudCxpPWUuaXNSZW1vdmFsVHJhbnNpdGlvbj92b2lkIDA6dCxhPWUuaXNSZW1vdmFsVHJhbnNpdGlvbj92b2lkIDA6ZS50cmlnZ2VyTmFtZTtmb3IoY29uc3QgdCBvZiBlLnRpbWVsaW5lcyl7Y29uc3Qgcj10LmVsZW1lbnQscz1yIT09byxsPWpPKG4scixbXSk7dGhpcy5fZ2V0UHJldmlvdXNQbGF5ZXJzKHIscyxpLGEsZS50b1N0YXRlKS5mb3JFYWNoKCh0PT57Y29uc3QgZT10LmdldFJlYWxQbGF5ZXIoKTtlLmJlZm9yZURlc3Ryb3kmJmUuYmVmb3JlRGVzdHJveSgpLHQuZGVzdHJveSgpLGwucHVzaCh0KX0pKX1iUChvLGUuZnJvbVN0eWxlcyl9X2J1aWxkQW5pbWF0aW9uKHQsZSxuLG8saSxhKXtjb25zdCByPWUudHJpZ2dlck5hbWUscz1lLmVsZW1lbnQsbD1bXSxjPW5ldyBTZXQsZD1uZXcgU2V0LHA9ZS50aW1lbGluZXMubWFwKChlPT57Y29uc3QgcD1lLmVsZW1lbnQ7Yy5hZGQocCk7Y29uc3QgbT1wLl9fbmdfcmVtb3ZlZDtpZihtJiZtLnJlbW92ZWRCZWZvcmVRdWVyaWVkKXJldHVybiBuZXcgVE8oZS5kdXJhdGlvbixlLmRlbGF5KTtjb25zdCBmPXAhPT1zLHU9KGZ1bmN0aW9uIGcodCl7Y29uc3QgZT1bXTtyZXR1cm4gUncodCxlKSxlfSkoKG4uZ2V0KHApfHx1dykubWFwKCh0PT50LmdldFJlYWxQbGF5ZXIoKSkpKS5maWx0ZXIoKHQ9PiEhdC5lbGVtZW50JiZ0LmVsZW1lbnQ9PT1wKSksaD1pLmdldChwKSxiPWEuZ2V0KHApLHk9Rk8oMCx0aGlzLl9ub3JtYWxpemVyLDAsZS5rZXlmcmFtZXMsaCxiKSxfPXRoaXMuX2J1aWxkUGxheWVyKGUseSx1KTtpZihlLnN1YlRpbWVsaW5lJiZvJiZkLmFkZChwKSxmKXtjb25zdCBlPW5ldyB2dyh0LHIscCk7ZS5zZXRSZWFsUGxheWVyKF8pLGwucHVzaChlKX1yZXR1cm4gX30pKTtsLmZvckVhY2goKHQ9PntqTyh0aGlzLnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50LHQuZWxlbWVudCxbXSkucHVzaCh0KSx0Lm9uRG9uZSgoKCk9PihmdW5jdGlvbiBlKHQsbixvKXtsZXQgaTtpZih0IGluc3RhbmNlb2YgTWFwKXtpZihpPXQuZ2V0KG4pLGkpe2lmKGkubGVuZ3RoKXtjb25zdCB0PWkuaW5kZXhPZihvKTtpLnNwbGljZSh0LDEpfTA9PWkubGVuZ3RoJiZ0LmRlbGV0ZShuKX19ZWxzZSBpZihpPXRbbl0saSl7aWYoaS5sZW5ndGgpe2NvbnN0IHQ9aS5pbmRleE9mKG8pO2kuc3BsaWNlKHQsMSl9MD09aS5sZW5ndGgmJmRlbGV0ZSB0W25dfXJldHVybiBpfSkodGhpcy5wbGF5ZXJzQnlRdWVyaWVkRWxlbWVudCx0LmVsZW1lbnQsdCkpKX0pKSxjLmZvckVhY2goKHQ9Pmt3KHQsc1ApKSk7Y29uc3QgbT1ITyhwKTtyZXR1cm4gbS5vbkRlc3Ryb3koKCgpPT57Yy5mb3JFYWNoKCh0PT5Tdyh0LHNQKSkpLGhQKHMsZS50b1N0eWxlcyl9KSksZC5mb3JFYWNoKCh0PT57ak8obyx0LFtdKS5wdXNoKG0pfSkpLG19X2J1aWxkUGxheWVyKHQsZSxuKXtyZXR1cm4gZS5sZW5ndGg+MD90aGlzLmRyaXZlci5hbmltYXRlKHQuZWxlbWVudCxlLHQuZHVyYXRpb24sdC5kZWxheSx0LmVhc2luZyxuKTpuZXcgVE8odC5kdXJhdGlvbix0LmRlbGF5KX19Y2xhc3Mgdnd7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMubmFtZXNwYWNlSWQ9dCx0aGlzLnRyaWdnZXJOYW1lPWUsdGhpcy5lbGVtZW50PW4sdGhpcy5fcGxheWVyPW5ldyBUTyx0aGlzLl9jb250YWluc1JlYWxQbGF5ZXI9ITEsdGhpcy5fcXVldWVkQ2FsbGJhY2tzPXt9LHRoaXMuZGVzdHJveWVkPSExLHRoaXMubWFya2VkRm9yRGVzdHJveT0hMSx0aGlzLmRpc2FibGVkPSExLHRoaXMucXVldWVkPSEwLHRoaXMudG90YWxUaW1lPTB9c2V0UmVhbFBsYXllcih0KXt0aGlzLl9jb250YWluc1JlYWxQbGF5ZXJ8fCh0aGlzLl9wbGF5ZXI9dCxPYmplY3Qua2V5cyh0aGlzLl9xdWV1ZWRDYWxsYmFja3MpLmZvckVhY2goKGU9Pnt0aGlzLl9xdWV1ZWRDYWxsYmFja3NbZV0uZm9yRWFjaCgobj0+TE8odCxlLHZvaWQgMCxuKSkpfSkpLHRoaXMuX3F1ZXVlZENhbGxiYWNrcz17fSx0aGlzLl9jb250YWluc1JlYWxQbGF5ZXI9ITAsdGhpcy5vdmVycmlkZVRvdGFsVGltZSh0LnRvdGFsVGltZSksdGhpcy5xdWV1ZWQ9ITEpfWdldFJlYWxQbGF5ZXIoKXtyZXR1cm4gdGhpcy5fcGxheWVyfW92ZXJyaWRlVG90YWxUaW1lKHQpe3RoaXMudG90YWxUaW1lPXR9c3luY1BsYXllckV2ZW50cyh0KXtjb25zdCBlPXRoaXMuX3BsYXllcjtlLnRyaWdnZXJDYWxsYmFjayYmdC5vblN0YXJ0KCgoKT0+ZS50cmlnZ2VyQ2FsbGJhY2soInN0YXJ0IikpKSx0Lm9uRG9uZSgoKCk9PnRoaXMuZmluaXNoKCkpKSx0Lm9uRGVzdHJveSgoKCk9PnRoaXMuZGVzdHJveSgpKSl9X3F1ZXVlRXZlbnQodCxlKXtqTyh0aGlzLl9xdWV1ZWRDYWxsYmFja3MsdCxbXSkucHVzaChlKX1vbkRvbmUodCl7dGhpcy5xdWV1ZWQmJnRoaXMuX3F1ZXVlRXZlbnQoImRvbmUiLHQpLHRoaXMuX3BsYXllci5vbkRvbmUodCl9b25TdGFydCh0KXt0aGlzLnF1ZXVlZCYmdGhpcy5fcXVldWVFdmVudCgic3RhcnQiLHQpLHRoaXMuX3BsYXllci5vblN0YXJ0KHQpfW9uRGVzdHJveSh0KXt0aGlzLnF1ZXVlZCYmdGhpcy5fcXVldWVFdmVudCgiZGVzdHJveSIsdCksdGhpcy5fcGxheWVyLm9uRGVzdHJveSh0KX1pbml0KCl7dGhpcy5fcGxheWVyLmluaXQoKX1oYXNTdGFydGVkKCl7cmV0dXJuIXRoaXMucXVldWVkJiZ0aGlzLl9wbGF5ZXIuaGFzU3RhcnRlZCgpfXBsYXkoKXshdGhpcy5xdWV1ZWQmJnRoaXMuX3BsYXllci5wbGF5KCl9cGF1c2UoKXshdGhpcy5xdWV1ZWQmJnRoaXMuX3BsYXllci5wYXVzZSgpfXJlc3RhcnQoKXshdGhpcy5xdWV1ZWQmJnRoaXMuX3BsYXllci5yZXN0YXJ0KCl9ZmluaXNoKCl7dGhpcy5fcGxheWVyLmZpbmlzaCgpfWRlc3Ryb3koKXt0aGlzLmRlc3Ryb3llZD0hMCx0aGlzLl9wbGF5ZXIuZGVzdHJveSgpfXJlc2V0KCl7IXRoaXMucXVldWVkJiZ0aGlzLl9wbGF5ZXIucmVzZXQoKX1zZXRQb3NpdGlvbih0KXt0aGlzLnF1ZXVlZHx8dGhpcy5fcGxheWVyLnNldFBvc2l0aW9uKHQpfWdldFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMucXVldWVkPzA6dGhpcy5fcGxheWVyLmdldFBvc2l0aW9uKCl9dHJpZ2dlckNhbGxiYWNrKHQpe2NvbnN0IGU9dGhpcy5fcGxheWVyO2UudHJpZ2dlckNhbGxiYWNrJiZlLnRyaWdnZXJDYWxsYmFjayh0KX19ZnVuY3Rpb24geHcodCl7cmV0dXJuIHQmJjE9PT10Lm5vZGVUeXBlfWZ1bmN0aW9uIE93KHQsZSl7Y29uc3Qgbj10LnN0eWxlLmRpc3BsYXk7cmV0dXJuIHQuc3R5bGUuZGlzcGxheT1udWxsIT1lP2U6Im5vbmUiLG59ZnVuY3Rpb24gUHcodCxlLG4sbyxpKXtjb25zdCBhPVtdO24uZm9yRWFjaCgodD0+YS5wdXNoKE93KHQpKSkpO2NvbnN0IHI9W107by5mb3JFYWNoKCgobixvKT0+e2NvbnN0IGE9e307bi5mb3JFYWNoKCh0PT57Y29uc3Qgbj1hW3RdPWUuY29tcHV0ZVN0eWxlKG8sdCxpKTtuJiYwIT1uLmxlbmd0aHx8KG8uX19uZ19yZW1vdmVkPWh3LHIucHVzaChvKSl9KSksdC5zZXQobyxhKX0pKTtsZXQgcz0wO3JldHVybiBuLmZvckVhY2goKHQ9Pk93KHQsYVtzKytdKSkpLHJ9ZnVuY3Rpb24gd3codCxlKXtjb25zdCBuPW5ldyBNYXA7aWYodC5mb3JFYWNoKCh0PT5uLnNldCh0LFtdKSkpLDA9PWUubGVuZ3RoKXJldHVybiBuO2NvbnN0IG89bmV3IFNldChlKSxpPW5ldyBNYXA7ZnVuY3Rpb24gYSh0KXtpZighdClyZXR1cm4gMTtsZXQgZT1pLmdldCh0KTtpZihlKXJldHVybiBlO2NvbnN0IHI9dC5wYXJlbnROb2RlO3JldHVybiBlPW4uaGFzKHIpP3I6by5oYXMocik/MTphKHIpLGkuc2V0KHQsZSksZX1yZXR1cm4gZS5mb3JFYWNoKCh0PT57Y29uc3QgZT1hKHQpOzEhPT1lJiZuLmdldChlKS5wdXNoKHQpfSkpLG59ZnVuY3Rpb24ga3codCxlKXtpZih0LmNsYXNzTGlzdCl0LmNsYXNzTGlzdC5hZGQoZSk7ZWxzZXtsZXQgbj10LiQkY2xhc3NlcztufHwobj10LiQkY2xhc3Nlcz17fSksbltlXT0hMH19ZnVuY3Rpb24gU3codCxlKXtpZih0LmNsYXNzTGlzdCl0LmNsYXNzTGlzdC5yZW1vdmUoZSk7ZWxzZXtsZXQgbj10LiQkY2xhc3NlcztuJiZkZWxldGUgbltlXX19ZnVuY3Rpb24gRHcodCxlLG4pe0hPKG4pLm9uRG9uZSgoKCk9PnQucHJvY2Vzc0xlYXZlTm9kZShlKSkpfWZ1bmN0aW9uIFJ3KHQsZSl7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2NvbnN0IG89dFtuXTtvIGluc3RhbmNlb2YgTk8/Uncoby5wbGF5ZXJzLGUpOmUucHVzaChvKX19ZnVuY3Rpb24gRXcodCxlLG4pe2NvbnN0IG89bi5nZXQodCk7aWYoIW8pcmV0dXJuITE7bGV0IGk9ZS5nZXQodCk7cmV0dXJuIGk/by5mb3JFYWNoKCh0PT5pLmFkZCh0KSkpOmUuc2V0KHQsbyksbi5kZWxldGUodCksITB9Y2xhc3MgQXd7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuYm9keU5vZGU9dCx0aGlzLl9kcml2ZXI9ZSx0aGlzLl9ub3JtYWxpemVyPW4sdGhpcy5fdHJpZ2dlckNhY2hlPXt9LHRoaXMub25SZW1vdmFsQ29tcGxldGU9KHQsZSk9Pnt9LHRoaXMuX3RyYW5zaXRpb25FbmdpbmU9bmV3IE13KHQsZSxuKSx0aGlzLl90aW1lbGluZUVuZ2luZT1uZXcgZHcodCxlLG4pLHRoaXMuX3RyYW5zaXRpb25FbmdpbmUub25SZW1vdmFsQ29tcGxldGU9KHQsZSk9PnRoaXMub25SZW1vdmFsQ29tcGxldGUodCxlKX1yZWdpc3RlclRyaWdnZXIodCxlLG4sbyxpKXtjb25zdCBhPXQrIi0iK287bGV0IHI9dGhpcy5fdHJpZ2dlckNhY2hlW2FdO2lmKCFyKXtjb25zdCB0PVtdLGU9SVAodGhpcy5fZHJpdmVyLGksdCk7aWYodC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBUaGUgYW5pbWF0aW9uIHRyaWdnZXIgIiR7b30iIGhhcyBmYWlsZWQgdG8gYnVpbGQgZHVlIHRvIHRoZSBmb2xsb3dpbmcgZXJyb3JzOlxuIC0gJHt0LmpvaW4oIlxuIC0gIil9YCk7cj0oZnVuY3Rpb24gbih0LGUsbyl7cmV0dXJuIG5ldyBzdyh0LGUsbyl9KShvLGUsdGhpcy5fbm9ybWFsaXplciksdGhpcy5fdHJpZ2dlckNhY2hlW2FdPXJ9dGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5yZWdpc3RlclRyaWdnZXIoZSxvLHIpfXJlZ2lzdGVyKHQsZSl7dGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5yZWdpc3Rlcih0LGUpfWRlc3Ryb3kodCxlKXt0aGlzLl90cmFuc2l0aW9uRW5naW5lLmRlc3Ryb3kodCxlKX1vbkluc2VydCh0LGUsbixvKXt0aGlzLl90cmFuc2l0aW9uRW5naW5lLmluc2VydE5vZGUodCxlLG4sbyl9b25SZW1vdmUodCxlLG4sbyl7dGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5yZW1vdmVOb2RlKHQsZSxvfHwhMSxuKX1kaXNhYmxlQW5pbWF0aW9ucyh0LGUpe3RoaXMuX3RyYW5zaXRpb25FbmdpbmUubWFya0VsZW1lbnRBc0Rpc2FibGVkKHQsZSl9cHJvY2Vzcyh0LGUsbixvKXtpZigiQCI9PW4uY2hhckF0KDApKXtjb25zdFt0LGldPVVPKG4pO3RoaXMuX3RpbWVsaW5lRW5naW5lLmNvbW1hbmQodCxlLGksbyl9ZWxzZSB0aGlzLl90cmFuc2l0aW9uRW5naW5lLnRyaWdnZXIodCxlLG4sbyl9bGlzdGVuKHQsZSxuLG8saSl7aWYoIkAiPT1uLmNoYXJBdCgwKSl7Y29uc3RbdCxvXT1VTyhuKTtyZXR1cm4gdGhpcy5fdGltZWxpbmVFbmdpbmUubGlzdGVuKHQsZSxvLGkpfXJldHVybiB0aGlzLl90cmFuc2l0aW9uRW5naW5lLmxpc3Rlbih0LGUsbixvLGkpfWZsdXNoKHQ9LTEpe3RoaXMuX3RyYW5zaXRpb25FbmdpbmUuZmx1c2godCl9Z2V0IHBsYXllcnMoKXtyZXR1cm4gdGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5wbGF5ZXJzLmNvbmNhdCh0aGlzLl90aW1lbGluZUVuZ2luZS5wbGF5ZXJzKX13aGVuUmVuZGVyaW5nRG9uZSgpe3JldHVybiB0aGlzLl90cmFuc2l0aW9uRW5naW5lLndoZW5SZW5kZXJpbmdEb25lKCl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBUdyh0LGUpe2xldCBuPW51bGwsbz1udWxsO3JldHVybiBBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aD8obj16dyhlWzBdKSxlLmxlbmd0aD4xJiYobz16dyhlW2UubGVuZ3RoLTFdKSkpOmUmJihuPXp3KGUpKSxufHxvP25ldyBOdyh0LG4sbyk6bnVsbH1jbGFzcyBOd3tjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5fZWxlbWVudD10LHRoaXMuX3N0YXJ0U3R5bGVzPWUsdGhpcy5fZW5kU3R5bGVzPW4sdGhpcy5fc3RhdGU9MDtsZXQgbz1Ody5pbml0aWFsU3R5bGVzQnlFbGVtZW50LmdldCh0KTtvfHxOdy5pbml0aWFsU3R5bGVzQnlFbGVtZW50LnNldCh0LG89e30pLHRoaXMuX2luaXRpYWxTdHlsZXM9b31zdGFydCgpe3RoaXMuX3N0YXRlPDEmJih0aGlzLl9zdGFydFN0eWxlcyYmaFAodGhpcy5fZWxlbWVudCx0aGlzLl9zdGFydFN0eWxlcyx0aGlzLl9pbml0aWFsU3R5bGVzKSx0aGlzLl9zdGF0ZT0xKX1maW5pc2goKXt0aGlzLnN0YXJ0KCksdGhpcy5fc3RhdGU8MiYmKGhQKHRoaXMuX2VsZW1lbnQsdGhpcy5faW5pdGlhbFN0eWxlcyksdGhpcy5fZW5kU3R5bGVzJiYoaFAodGhpcy5fZWxlbWVudCx0aGlzLl9lbmRTdHlsZXMpLHRoaXMuX2VuZFN0eWxlcz1udWxsKSx0aGlzLl9zdGF0ZT0xKX1kZXN0cm95KCl7dGhpcy5maW5pc2goKSx0aGlzLl9zdGF0ZTwzJiYoTncuaW5pdGlhbFN0eWxlc0J5RWxlbWVudC5kZWxldGUodGhpcy5fZWxlbWVudCksdGhpcy5fc3RhcnRTdHlsZXMmJihiUCh0aGlzLl9lbGVtZW50LHRoaXMuX3N0YXJ0U3R5bGVzKSx0aGlzLl9lbmRTdHlsZXM9bnVsbCksdGhpcy5fZW5kU3R5bGVzJiYoYlAodGhpcy5fZWxlbWVudCx0aGlzLl9lbmRTdHlsZXMpLHRoaXMuX2VuZFN0eWxlcz1udWxsKSxoUCh0aGlzLl9lbGVtZW50LHRoaXMuX2luaXRpYWxTdHlsZXMpLHRoaXMuX3N0YXRlPTMpfX1mdW5jdGlvbiB6dyh0KXtsZXQgZT1udWxsO2NvbnN0IG49T2JqZWN0LmtleXModCk7Zm9yKGxldCBvPTA7bzxuLmxlbmd0aDtvKyspe2NvbnN0IGk9bltvXTtJdyhpKSYmKGU9ZXx8e30sZVtpXT10W2ldKX1yZXR1cm4gZX1mdW5jdGlvbiBJdyh0KXtyZXR1cm4iZGlzcGxheSI9PT10fHwicG9zaXRpb24iPT09dH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovTncuaW5pdGlhbFN0eWxlc0J5RWxlbWVudD1uZXcgV2Vha01hcDtjb25zdCBIdz0iYW5pbWF0aW9uIixGdz0iYW5pbWF0aW9uZW5kIjtjbGFzcyBMd3tjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyKXt0aGlzLl9lbGVtZW50PXQsdGhpcy5fbmFtZT1lLHRoaXMuX2R1cmF0aW9uPW4sdGhpcy5fZGVsYXk9byx0aGlzLl9lYXNpbmc9aSx0aGlzLl9maWxsTW9kZT1hLHRoaXMuX29uRG9uZUZuPXIsdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5fZGVzdHJveWVkPSExLHRoaXMuX3N0YXJ0VGltZT0wLHRoaXMuX3Bvc2l0aW9uPTAsdGhpcy5fZXZlbnRGbj10PT50aGlzLl9oYW5kbGVDYWxsYmFjayh0KX1hcHBseSgpeyEoZnVuY3Rpb24gdChlLG4pe2NvbnN0IG89R3coZSwiIikudHJpbSgpO2xldCBpPTA7by5sZW5ndGgmJihpPShmdW5jdGlvbiBhKHQsZSl7bGV0IG49MDtmb3IobGV0IG89MDtvPHQubGVuZ3RoO28rKyl7dC5jaGFyQXQobyk9PT1lJiZuKyt9cmV0dXJuIG59KShvLCIsIikrMSxuPWAke299LCAke259YCk7cmV0dXJuIFd3KGUsIiIsbiksaX0pKHRoaXMuX2VsZW1lbnQsYCR7dGhpcy5fZHVyYXRpb259bXMgJHt0aGlzLl9lYXNpbmd9ICR7dGhpcy5fZGVsYXl9bXMgMSBub3JtYWwgJHt0aGlzLl9maWxsTW9kZX0gJHt0aGlzLl9uYW1lfWApLFV3KHRoaXMuX2VsZW1lbnQsdGhpcy5fZXZlbnRGbiwhMSksdGhpcy5fc3RhcnRUaW1lPURhdGUubm93KCl9cGF1c2UoKXtCdyh0aGlzLl9lbGVtZW50LHRoaXMuX25hbWUsInBhdXNlZCIpfXJlc3VtZSgpe0J3KHRoaXMuX2VsZW1lbnQsdGhpcy5fbmFtZSwicnVubmluZyIpfXNldFBvc2l0aW9uKHQpe2NvbnN0IGU9VncodGhpcy5fZWxlbWVudCx0aGlzLl9uYW1lKTt0aGlzLl9wb3NpdGlvbj10KnRoaXMuX2R1cmF0aW9uLFd3KHRoaXMuX2VsZW1lbnQsIkRlbGF5IixgLSR7dGhpcy5fcG9zaXRpb259bXNgLGUpfWdldFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuX3Bvc2l0aW9ufV9oYW5kbGVDYWxsYmFjayh0KXtjb25zdCBlPXQuX25nVGVzdE1hbnVhbFRpbWVzdGFtcHx8RGF0ZS5ub3coKSxuPTFlMypwYXJzZUZsb2F0KHQuZWxhcHNlZFRpbWUudG9GaXhlZCgzKSk7dC5hbmltYXRpb25OYW1lPT10aGlzLl9uYW1lJiZNYXRoLm1heChlLXRoaXMuX3N0YXJ0VGltZSwwKT49dGhpcy5fZGVsYXkmJm4+PXRoaXMuX2R1cmF0aW9uJiZ0aGlzLmZpbmlzaCgpfWZpbmlzaCgpe3RoaXMuX2ZpbmlzaGVkfHwodGhpcy5fZmluaXNoZWQ9ITAsdGhpcy5fb25Eb25lRm4oKSxVdyh0aGlzLl9lbGVtZW50LHRoaXMuX2V2ZW50Rm4sITApKX1kZXN0cm95KCl7dGhpcy5fZGVzdHJveWVkfHwodGhpcy5fZGVzdHJveWVkPSEwLHRoaXMuZmluaXNoKCksKGZ1bmN0aW9uIHQoZSxuKXtjb25zdCBvPUd3KGUsIiIpLnNwbGl0KCIsIiksaT1qdyhvLG4pO2lmKGk+PTApe28uc3BsaWNlKGksMSk7V3coZSwiIixvLmpvaW4oIiwiKSl9fSkodGhpcy5fZWxlbWVudCx0aGlzLl9uYW1lKSl9fWZ1bmN0aW9uIEJ3KHQsZSxuKXtXdyh0LCJQbGF5U3RhdGUiLG4sVncodCxlKSl9ZnVuY3Rpb24gVncodCxlKXtjb25zdCBuPUd3KHQsIiIpO2lmKG4uaW5kZXhPZigiLCIpPjApe3JldHVybiBqdyhuLnNwbGl0KCIsIiksZSl9cmV0dXJuIGp3KFtuXSxlKX1mdW5jdGlvbiBqdyh0LGUpe2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKWlmKHRbbl0uaW5kZXhPZihlKT49MClyZXR1cm4gbjtyZXR1cm4tMX1mdW5jdGlvbiBVdyh0LGUsbil7bj90LnJlbW92ZUV2ZW50TGlzdGVuZXIoRncsZSk6dC5hZGRFdmVudExpc3RlbmVyKEZ3LGUpfWZ1bmN0aW9uIFd3KHQsZSxuLG8pe2NvbnN0IGk9SHcrZTtpZihudWxsIT1vKXtjb25zdCBlPXQuc3R5bGVbaV07aWYoZS5sZW5ndGgpe2NvbnN0IHQ9ZS5zcGxpdCgiLCIpO3Rbb109bixuPXQuam9pbigiLCIpfX10LnN0eWxlW2ldPW59ZnVuY3Rpb24gR3codCxlKXtyZXR1cm4gdC5zdHlsZVtIdytlXXx8IiJ9Y2xhc3MgWXd7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscixzKXt0aGlzLmVsZW1lbnQ9dCx0aGlzLmtleWZyYW1lcz1lLHRoaXMuYW5pbWF0aW9uTmFtZT1uLHRoaXMuX2R1cmF0aW9uPW8sdGhpcy5fZGVsYXk9aSx0aGlzLl9maW5hbFN0eWxlcz1yLHRoaXMuX3NwZWNpYWxTdHlsZXM9cyx0aGlzLl9vbkRvbmVGbnM9W10sdGhpcy5fb25TdGFydEZucz1bXSx0aGlzLl9vbkRlc3Ryb3lGbnM9W10sdGhpcy5jdXJyZW50U25hcHNob3Q9e30sdGhpcy5fc3RhdGU9MCx0aGlzLmVhc2luZz1hfHwibGluZWFyIix0aGlzLnRvdGFsVGltZT1vK2ksdGhpcy5fYnVpbGRTdHlsZXIoKX1vblN0YXJ0KHQpe3RoaXMuX29uU3RhcnRGbnMucHVzaCh0KX1vbkRvbmUodCl7dGhpcy5fb25Eb25lRm5zLnB1c2godCl9b25EZXN0cm95KHQpe3RoaXMuX29uRGVzdHJveUZucy5wdXNoKHQpfWRlc3Ryb3koKXt0aGlzLmluaXQoKSx0aGlzLl9zdGF0ZT49NHx8KHRoaXMuX3N0YXRlPTQsdGhpcy5fc3R5bGVyLmRlc3Ryb3koKSx0aGlzLl9mbHVzaFN0YXJ0Rm5zKCksdGhpcy5fZmx1c2hEb25lRm5zKCksdGhpcy5fc3BlY2lhbFN0eWxlcyYmdGhpcy5fc3BlY2lhbFN0eWxlcy5kZXN0cm95KCksdGhpcy5fb25EZXN0cm95Rm5zLmZvckVhY2goKHQ9PnQoKSkpLHRoaXMuX29uRGVzdHJveUZucz1bXSl9X2ZsdXNoRG9uZUZucygpe3RoaXMuX29uRG9uZUZucy5mb3JFYWNoKCh0PT50KCkpKSx0aGlzLl9vbkRvbmVGbnM9W119X2ZsdXNoU3RhcnRGbnMoKXt0aGlzLl9vblN0YXJ0Rm5zLmZvckVhY2goKHQ9PnQoKSkpLHRoaXMuX29uU3RhcnRGbnM9W119ZmluaXNoKCl7dGhpcy5pbml0KCksdGhpcy5fc3RhdGU+PTN8fCh0aGlzLl9zdGF0ZT0zLHRoaXMuX3N0eWxlci5maW5pc2goKSx0aGlzLl9mbHVzaFN0YXJ0Rm5zKCksdGhpcy5fc3BlY2lhbFN0eWxlcyYmdGhpcy5fc3BlY2lhbFN0eWxlcy5maW5pc2goKSx0aGlzLl9mbHVzaERvbmVGbnMoKSl9c2V0UG9zaXRpb24odCl7dGhpcy5fc3R5bGVyLnNldFBvc2l0aW9uKHQpfWdldFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuX3N0eWxlci5nZXRQb3NpdGlvbigpfWhhc1N0YXJ0ZWQoKXtyZXR1cm4gdGhpcy5fc3RhdGU+PTJ9aW5pdCgpe3RoaXMuX3N0YXRlPj0xfHwodGhpcy5fc3RhdGU9MSx0aGlzLl9zdHlsZXIuYXBwbHkoKSx0aGlzLl9kZWxheSYmdGhpcy5fc3R5bGVyLnBhdXNlKCkpfXBsYXkoKXt0aGlzLmluaXQoKSx0aGlzLmhhc1N0YXJ0ZWQoKXx8KHRoaXMuX2ZsdXNoU3RhcnRGbnMoKSx0aGlzLl9zdGF0ZT0yLHRoaXMuX3NwZWNpYWxTdHlsZXMmJnRoaXMuX3NwZWNpYWxTdHlsZXMuc3RhcnQoKSksdGhpcy5fc3R5bGVyLnJlc3VtZSgpfXBhdXNlKCl7dGhpcy5pbml0KCksdGhpcy5fc3R5bGVyLnBhdXNlKCl9cmVzdGFydCgpe3RoaXMucmVzZXQoKSx0aGlzLnBsYXkoKX1yZXNldCgpe3RoaXMuX3N0YXRlPTAsdGhpcy5fc3R5bGVyLmRlc3Ryb3koKSx0aGlzLl9idWlsZFN0eWxlcigpLHRoaXMuX3N0eWxlci5hcHBseSgpfV9idWlsZFN0eWxlcigpe3RoaXMuX3N0eWxlcj1uZXcgTHcodGhpcy5lbGVtZW50LHRoaXMuYW5pbWF0aW9uTmFtZSx0aGlzLl9kdXJhdGlvbix0aGlzLl9kZWxheSx0aGlzLmVhc2luZywiZm9yd2FyZHMiLCgoKT0+dGhpcy5maW5pc2goKSkpfXRyaWdnZXJDYWxsYmFjayh0KXtjb25zdCBlPSJzdGFydCI9PXQ/dGhpcy5fb25TdGFydEZuczp0aGlzLl9vbkRvbmVGbnM7ZS5mb3JFYWNoKCh0PT50KCkpKSxlLmxlbmd0aD0wfWJlZm9yZURlc3Ryb3koKXt0aGlzLmluaXQoKTtjb25zdCB0PXt9O2lmKHRoaXMuaGFzU3RhcnRlZCgpKXtjb25zdCBlPXRoaXMuX3N0YXRlPj0zO09iamVjdC5rZXlzKHRoaXMuX2ZpbmFsU3R5bGVzKS5mb3JFYWNoKChuPT57Im9mZnNldCIhPW4mJih0W25dPWU/dGhpcy5fZmluYWxTdHlsZXNbbl06U1AodGhpcy5lbGVtZW50LG4pKX0pKX10aGlzLmN1cnJlbnRTbmFwc2hvdD10fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgcXcgZXh0ZW5kcyBUT3tjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKCksdGhpcy5lbGVtZW50PXQsdGhpcy5fc3RhcnRpbmdTdHlsZXM9e30sdGhpcy5fX2luaXRpYWxpemVkPSExLHRoaXMuX3N0eWxlcz10UChlKX1pbml0KCl7IXRoaXMuX19pbml0aWFsaXplZCYmdGhpcy5fc3RhcnRpbmdTdHlsZXMmJih0aGlzLl9faW5pdGlhbGl6ZWQ9ITAsT2JqZWN0LmtleXModGhpcy5fc3R5bGVzKS5mb3JFYWNoKCh0PT57dGhpcy5fc3RhcnRpbmdTdHlsZXNbdF09dGhpcy5lbGVtZW50LnN0eWxlW3RdfSkpLHN1cGVyLmluaXQoKSl9cGxheSgpe3RoaXMuX3N0YXJ0aW5nU3R5bGVzJiYodGhpcy5pbml0KCksT2JqZWN0LmtleXModGhpcy5fc3R5bGVzKS5mb3JFYWNoKCh0PT50aGlzLmVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkodCx0aGlzLl9zdHlsZXNbdF0pKSksc3VwZXIucGxheSgpKX1kZXN0cm95KCl7dGhpcy5fc3RhcnRpbmdTdHlsZXMmJihPYmplY3Qua2V5cyh0aGlzLl9zdGFydGluZ1N0eWxlcykuZm9yRWFjaCgodD0+e2NvbnN0IGU9dGhpcy5fc3RhcnRpbmdTdHlsZXNbdF07ZT90aGlzLmVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkodCxlKTp0aGlzLmVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkodCl9KSksdGhpcy5fc3RhcnRpbmdTdHlsZXM9bnVsbCxzdXBlci5kZXN0cm95KCkpfX1jbGFzcyBad3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2NvdW50PTB9dmFsaWRhdGVTdHlsZVByb3BlcnR5KHQpe3JldHVybiBLTyh0KX1tYXRjaGVzRWxlbWVudCh0LGUpe3JldHVybiBKTyh0LGUpfWNvbnRhaW5zRWxlbWVudCh0LGUpe3JldHVybiBRTyh0LGUpfXF1ZXJ5KHQsZSxuKXtyZXR1cm4gJE8odCxlLG4pfWNvbXB1dGVTdHlsZSh0LGUsbil7cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpW2VdfWJ1aWxkS2V5ZnJhbWVFbGVtZW50KHQsZSxuKXtuPW4ubWFwKCh0PT50UCh0KSkpO2xldCBvPWBAa2V5ZnJhbWVzICR7ZX0ge1xuYCxpPSIiO24uZm9yRWFjaCgodD0+e2k9IiAiO2NvbnN0IGU9cGFyc2VGbG9hdCh0Lm9mZnNldCk7bys9YCR7aX0kezEwMCplfSUge1xuYCxpKz0iICIsT2JqZWN0LmtleXModCkuZm9yRWFjaCgoZT0+e2NvbnN0IG49dFtlXTtzd2l0Y2goZSl7Y2FzZSJvZmZzZXQiOnJldHVybjtjYXNlImVhc2luZyI6cmV0dXJuIHZvaWQobiYmKG8rPWAke2l9YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogJHtufTtcbmApKTtkZWZhdWx0OnJldHVybiB2b2lkKG8rPWAke2l9JHtlfTogJHtufTtcbmApfX0pKSxvKz1gJHtpfX1cbmB9KSksbys9In1cbiI7Y29uc3QgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO3JldHVybiBhLnRleHRDb250ZW50PW8sYX1hbmltYXRlKHQsZSxuLG8saSxhPVtdLHIpeygidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmciYmKGZ1bmN0aW9uIHMoKXtpZihYdylyZXR1cm47Y29uc29sZS53YXJuKCJAYW5ndWxhci9hbmltYXRpb25zOiBwbGVhc2UgbG9hZCB0aGUgd2ViLWFuaW1hdGlvbnMuanMgcG9seWZpbGwgdG8gYWxsb3cgcHJvZ3JhbW1hdGljIGFjY2Vzcy4uLlxuIiwiICB2aXNpdCBodHRwczovL2JpdC5seS9JV3VrYW0gdG8gbGVhcm4gbW9yZSBhYm91dCB1c2luZyB0aGUgd2ViLWFuaW1hdGlvbi1qcyBwb2x5ZmlsbC4iKSxYdz0hMH0pKCk7Y29uc3QgbD1hLmZpbHRlcigodD0+dCBpbnN0YW5jZW9mIFl3KSksYz17fTtQUChuLG8pJiZsLmZvckVhY2goKHQ9PntsZXQgZT10LmN1cnJlbnRTbmFwc2hvdDtPYmplY3Qua2V5cyhlKS5mb3JFYWNoKCh0PT5jW3RdPWVbdF0pKX0pKTtjb25zdCBkPShmdW5jdGlvbiBwKHQpe2xldCBlPXt9O2lmKHQpeyhBcnJheS5pc0FycmF5KHQpP3Q6W3RdKS5mb3JFYWNoKCh0PT57T2JqZWN0LmtleXModCkuZm9yRWFjaCgobj0+eyJvZmZzZXQiIT1uJiYiZWFzaW5nIiE9biYmKGVbbl09dFtuXSl9KSl9KSl9cmV0dXJuIGV9KShlPXdQKHQsZSxjKSk7aWYoMD09bilyZXR1cm4gbmV3IHF3KHQsZCk7Y29uc3QgbT0iZ2VuX2Nzc19rZl8iK3RoaXMuX2NvdW50KyssZj10aGlzLmJ1aWxkS2V5ZnJhbWVFbGVtZW50KHQsbSxlKTsoZnVuY3Rpb24gdSh0KXt2YXIgZTtjb25zdCBuPW51bGw9PT0oZT10LmdldFJvb3ROb2RlKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5jYWxsKHQpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU2hhZG93Um9vdCYmbiBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QpcmV0dXJuIG47cmV0dXJuIGRvY3VtZW50LmhlYWR9KSh0KS5hcHBlbmRDaGlsZChmKTtjb25zdCBnPVR3KHQsZSksaD1uZXcgWXcodCxlLG0sbixvLGksZCxnKTtyZXR1cm4gaC5vbkRlc3Ryb3koKCgpPT4oZnVuY3Rpb24gdChlKXtlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSl9KShmKSkpLGh9fWxldCBYdz0hMTtjbGFzcyBLd3tjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLmVsZW1lbnQ9dCx0aGlzLmtleWZyYW1lcz1lLHRoaXMub3B0aW9ucz1uLHRoaXMuX3NwZWNpYWxTdHlsZXM9byx0aGlzLl9vbkRvbmVGbnM9W10sdGhpcy5fb25TdGFydEZucz1bXSx0aGlzLl9vbkRlc3Ryb3lGbnM9W10sdGhpcy5faW5pdGlhbGl6ZWQ9ITEsdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5fc3RhcnRlZD0hMSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy50aW1lPTAsdGhpcy5wYXJlbnRQbGF5ZXI9bnVsbCx0aGlzLmN1cnJlbnRTbmFwc2hvdD17fSx0aGlzLl9kdXJhdGlvbj1uLmR1cmF0aW9uLHRoaXMuX2RlbGF5PW4uZGVsYXl8fDAsdGhpcy50aW1lPXRoaXMuX2R1cmF0aW9uK3RoaXMuX2RlbGF5fV9vbkZpbmlzaCgpe3RoaXMuX2ZpbmlzaGVkfHwodGhpcy5fZmluaXNoZWQ9ITAsdGhpcy5fb25Eb25lRm5zLmZvckVhY2goKHQ9PnQoKSkpLHRoaXMuX29uRG9uZUZucz1bXSl9aW5pdCgpe3RoaXMuX2J1aWxkUGxheWVyKCksdGhpcy5fcHJlcGFyZVBsYXllckJlZm9yZVN0YXJ0KCl9X2J1aWxkUGxheWVyKCl7aWYodGhpcy5faW5pdGlhbGl6ZWQpcmV0dXJuO3RoaXMuX2luaXRpYWxpemVkPSEwO2NvbnN0IHQ9dGhpcy5rZXlmcmFtZXM7dGhpcy5kb21QbGF5ZXI9dGhpcy5fdHJpZ2dlcldlYkFuaW1hdGlvbih0aGlzLmVsZW1lbnQsdCx0aGlzLm9wdGlvbnMpLHRoaXMuX2ZpbmFsS2V5ZnJhbWU9dC5sZW5ndGg/dFt0Lmxlbmd0aC0xXTp7fSx0aGlzLmRvbVBsYXllci5hZGRFdmVudExpc3RlbmVyKCJmaW5pc2giLCgoKT0+dGhpcy5fb25GaW5pc2goKSkpfV9wcmVwYXJlUGxheWVyQmVmb3JlU3RhcnQoKXt0aGlzLl9kZWxheT90aGlzLl9yZXNldERvbVBsYXllclN0YXRlKCk6dGhpcy5kb21QbGF5ZXIucGF1c2UoKX1fdHJpZ2dlcldlYkFuaW1hdGlvbih0LGUsbil7cmV0dXJuIHQuYW5pbWF0ZShlLG4pfW9uU3RhcnQodCl7dGhpcy5fb25TdGFydEZucy5wdXNoKHQpfW9uRG9uZSh0KXt0aGlzLl9vbkRvbmVGbnMucHVzaCh0KX1vbkRlc3Ryb3kodCl7dGhpcy5fb25EZXN0cm95Rm5zLnB1c2godCl9cGxheSgpe3RoaXMuX2J1aWxkUGxheWVyKCksdGhpcy5oYXNTdGFydGVkKCl8fCh0aGlzLl9vblN0YXJ0Rm5zLmZvckVhY2goKHQ9PnQoKSkpLHRoaXMuX29uU3RhcnRGbnM9W10sdGhpcy5fc3RhcnRlZD0hMCx0aGlzLl9zcGVjaWFsU3R5bGVzJiZ0aGlzLl9zcGVjaWFsU3R5bGVzLnN0YXJ0KCkpLHRoaXMuZG9tUGxheWVyLnBsYXkoKX1wYXVzZSgpe3RoaXMuaW5pdCgpLHRoaXMuZG9tUGxheWVyLnBhdXNlKCl9ZmluaXNoKCl7dGhpcy5pbml0KCksdGhpcy5fc3BlY2lhbFN0eWxlcyYmdGhpcy5fc3BlY2lhbFN0eWxlcy5maW5pc2goKSx0aGlzLl9vbkZpbmlzaCgpLHRoaXMuZG9tUGxheWVyLmZpbmlzaCgpfXJlc2V0KCl7dGhpcy5fcmVzZXREb21QbGF5ZXJTdGF0ZSgpLHRoaXMuX2Rlc3Ryb3llZD0hMSx0aGlzLl9maW5pc2hlZD0hMSx0aGlzLl9zdGFydGVkPSExfV9yZXNldERvbVBsYXllclN0YXRlKCl7dGhpcy5kb21QbGF5ZXImJnRoaXMuZG9tUGxheWVyLmNhbmNlbCgpfXJlc3RhcnQoKXt0aGlzLnJlc2V0KCksdGhpcy5wbGF5KCl9aGFzU3RhcnRlZCgpe3JldHVybiB0aGlzLl9zdGFydGVkfWRlc3Ryb3koKXt0aGlzLl9kZXN0cm95ZWR8fCh0aGlzLl9kZXN0cm95ZWQ9ITAsdGhpcy5fcmVzZXREb21QbGF5ZXJTdGF0ZSgpLHRoaXMuX29uRmluaXNoKCksdGhpcy5fc3BlY2lhbFN0eWxlcyYmdGhpcy5fc3BlY2lhbFN0eWxlcy5kZXN0cm95KCksdGhpcy5fb25EZXN0cm95Rm5zLmZvckVhY2goKHQ9PnQoKSkpLHRoaXMuX29uRGVzdHJveUZucz1bXSl9c2V0UG9zaXRpb24odCl7dm9pZCAwPT09dGhpcy5kb21QbGF5ZXImJnRoaXMuaW5pdCgpLHRoaXMuZG9tUGxheWVyLmN1cnJlbnRUaW1lPXQqdGhpcy50aW1lfWdldFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuZG9tUGxheWVyLmN1cnJlbnRUaW1lL3RoaXMudGltZX1nZXQgdG90YWxUaW1lKCl7cmV0dXJuIHRoaXMuX2RlbGF5K3RoaXMuX2R1cmF0aW9ufWJlZm9yZURlc3Ryb3koKXtjb25zdCB0PXt9O3RoaXMuaGFzU3RhcnRlZCgpJiZPYmplY3Qua2V5cyh0aGlzLl9maW5hbEtleWZyYW1lKS5mb3JFYWNoKChlPT57Im9mZnNldCIhPWUmJih0W2VdPXRoaXMuX2ZpbmlzaGVkP3RoaXMuX2ZpbmFsS2V5ZnJhbWVbZV06U1AodGhpcy5lbGVtZW50LGUpKX0pKSx0aGlzLmN1cnJlbnRTbmFwc2hvdD10fXRyaWdnZXJDYWxsYmFjayh0KXtjb25zdCBlPSJzdGFydCI9PXQ/dGhpcy5fb25TdGFydEZuczp0aGlzLl9vbkRvbmVGbnM7ZS5mb3JFYWNoKCh0PT50KCkpKSxlLmxlbmd0aD0wfX1jbGFzcyBKd3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2lzTmF0aXZlSW1wbD0vXHtccypcW25hdGl2ZVxzK2NvZGVcXVxzKlx9Ly50ZXN0KFF3KCkudG9TdHJpbmcoKSksdGhpcy5fY3NzS2V5ZnJhbWVzRHJpdmVyPW5ldyBad312YWxpZGF0ZVN0eWxlUHJvcGVydHkodCl7cmV0dXJuIEtPKHQpfW1hdGNoZXNFbGVtZW50KHQsZSl7cmV0dXJuIEpPKHQsZSl9Y29udGFpbnNFbGVtZW50KHQsZSl7cmV0dXJuIFFPKHQsZSl9cXVlcnkodCxlLG4pe3JldHVybiAkTyh0LGUsbil9Y29tcHV0ZVN0eWxlKHQsZSxuKXtyZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUodClbZV19b3ZlcnJpZGVXZWJBbmltYXRpb25zU3VwcG9ydCh0KXt0aGlzLl9pc05hdGl2ZUltcGw9dH1hbmltYXRlKHQsZSxuLG8saSxhPVtdLHIpe2lmKCFyJiYhdGhpcy5faXNOYXRpdmVJbXBsKXJldHVybiB0aGlzLl9jc3NLZXlmcmFtZXNEcml2ZXIuYW5pbWF0ZSh0LGUsbixvLGksYSk7Y29uc3Qgcz17ZHVyYXRpb246bixkZWxheTpvLGZpbGw6MD09bz8iYm90aCI6ImZvcndhcmRzIn07aSYmKHMuZWFzaW5nPWkpO2NvbnN0IGw9e30sYz1hLmZpbHRlcigodD0+dCBpbnN0YW5jZW9mIEt3KSk7UFAobixvKSYmYy5mb3JFYWNoKCh0PT57bGV0IGU9dC5jdXJyZW50U25hcHNob3Q7T2JqZWN0LmtleXMoZSkuZm9yRWFjaCgodD0+bFt0XT1lW3RdKSl9KSk7Y29uc3QgZD1Udyh0LGU9d1AodCxlPWUubWFwKCh0PT5mUCh0LCExKSkpLGwpKTtyZXR1cm4gbmV3IEt3KHQsZSxzLGQpfX1mdW5jdGlvbiBRdygpe3JldHVybiB6TygpJiZFbGVtZW50LnByb3RvdHlwZS5hbmltYXRlfHx7fX0KLyoqCiAgICAgKiBAbGljZW5zZSBBbmd1bGFyIHYxMi4yLjEKICAgICAqIChjKSAyMDEwLTIwMjEgR29vZ2xlIExMQy4gaHR0cHM6Ly9hbmd1bGFyLmlvLwogICAgICogTGljZW5zZTogTUlUCiAgICAgKi9jbGFzcyAkdyBleHRlbmRzIE1Pe2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKSx0aGlzLl9uZXh0QW5pbWF0aW9uSWQ9MDt0aGlzLl9yZW5kZXJlcj10LmNyZWF0ZVJlbmRlcmVyKGUuYm9keSx7aWQ6IjAiLGVuY2Fwc3VsYXRpb246V24uTm9uZSxzdHlsZXM6W10sZGF0YTp7YW5pbWF0aW9uOltdfX0pfWJ1aWxkKHQpe2NvbnN0IGU9dGhpcy5fbmV4dEFuaW1hdGlvbklkLnRvU3RyaW5nKCk7dGhpcy5fbmV4dEFuaW1hdGlvbklkKys7Y29uc3Qgbj1BcnJheS5pc0FycmF5KHQpP1BPKHQpOnQ7cmV0dXJuIG5rKHRoaXMuX3JlbmRlcmVyLG51bGwsZSwicmVnaXN0ZXIiLFtuXSksbmV3IHRrKGUsdGhpcy5fcmVuZGVyZXIpfX0kdy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8JHcpKFRyKFFoKSxUcihzTSkpfSwkdy7JtXByb3Y9U24oe3Rva2VuOiR3LGZhY3Rvcnk6JHcuybVmYWN9KSwkdy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlFofSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKCR3LFt7dHlwZTpVbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpRaH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfV19KSxudWxsKTtjbGFzcyB0ayBleHRlbmRzIGNsYXNze317Y29uc3RydWN0b3IodCxlKXtzdXBlcigpLHRoaXMuX2lkPXQsdGhpcy5fcmVuZGVyZXI9ZX1jcmVhdGUodCxlKXtyZXR1cm4gbmV3IGVrKHRoaXMuX2lkLHQsZXx8e30sdGhpcy5fcmVuZGVyZXIpfX1jbGFzcyBla3tjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLmlkPXQsdGhpcy5lbGVtZW50PWUsdGhpcy5fcmVuZGVyZXI9byx0aGlzLnBhcmVudFBsYXllcj1udWxsLHRoaXMuX3N0YXJ0ZWQ9ITEsdGhpcy50b3RhbFRpbWU9MCx0aGlzLl9jb21tYW5kKCJjcmVhdGUiLG4pfV9saXN0ZW4odCxlKXtyZXR1cm4gdGhpcy5fcmVuZGVyZXIubGlzdGVuKHRoaXMuZWxlbWVudCxgQEAke3RoaXMuaWR9OiR7dH1gLGUpfV9jb21tYW5kKHQsLi4uZSl7cmV0dXJuIG5rKHRoaXMuX3JlbmRlcmVyLHRoaXMuZWxlbWVudCx0aGlzLmlkLHQsZSl9b25Eb25lKHQpe3RoaXMuX2xpc3RlbigiZG9uZSIsdCl9b25TdGFydCh0KXt0aGlzLl9saXN0ZW4oInN0YXJ0Iix0KX1vbkRlc3Ryb3kodCl7dGhpcy5fbGlzdGVuKCJkZXN0cm95Iix0KX1pbml0KCl7dGhpcy5fY29tbWFuZCgiaW5pdCIpfWhhc1N0YXJ0ZWQoKXtyZXR1cm4gdGhpcy5fc3RhcnRlZH1wbGF5KCl7dGhpcy5fY29tbWFuZCgicGxheSIpLHRoaXMuX3N0YXJ0ZWQ9ITB9cGF1c2UoKXt0aGlzLl9jb21tYW5kKCJwYXVzZSIpfXJlc3RhcnQoKXt0aGlzLl9jb21tYW5kKCJyZXN0YXJ0Iil9ZmluaXNoKCl7dGhpcy5fY29tbWFuZCgiZmluaXNoIil9ZGVzdHJveSgpe3RoaXMuX2NvbW1hbmQoImRlc3Ryb3kiKX1yZXNldCgpe3RoaXMuX2NvbW1hbmQoInJlc2V0IiksdGhpcy5fc3RhcnRlZD0hMX1zZXRQb3NpdGlvbih0KXt0aGlzLl9jb21tYW5kKCJzZXRQb3NpdGlvbiIsdCl9Z2V0UG9zaXRpb24oKXt2YXIgdCxlO3JldHVybiBudWxsIT09KGU9bnVsbD09PSh0PXRoaXMuX3JlbmRlcmVyLmVuZ2luZS5wbGF5ZXJzWyt0aGlzLmlkXSl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuZ2V0UG9zaXRpb24oKSkmJnZvaWQgMCE9PWU/ZTowfX1mdW5jdGlvbiBuayh0LGUsbixvLGkpe3JldHVybiB0LnNldFByb3BlcnR5KGUsYEBAJHtufToke299YCxpKX1jb25zdCBvaz0iQCIsaWs9IkAuZGlzYWJsZWQiO2NsYXNzIGFre2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLmRlbGVnYXRlPXQsdGhpcy5lbmdpbmU9ZSx0aGlzLl96b25lPW4sdGhpcy5fY3VycmVudElkPTAsdGhpcy5fbWljcm90YXNrSWQ9MSx0aGlzLl9hbmltYXRpb25DYWxsYmFja3NCdWZmZXI9W10sdGhpcy5fcmVuZGVyZXJDYWNoZT1uZXcgTWFwLHRoaXMuX2NkUmVjdXJEZXB0aD0wLHRoaXMucHJvbWlzZT1Qcm9taXNlLnJlc29sdmUoMCksZS5vblJlbW92YWxDb21wbGV0ZT0odCxlKT0+e2UmJmUucGFyZW50Tm9kZSh0KSYmZS5yZW1vdmVDaGlsZCh0LnBhcmVudE5vZGUsdCl9fWNyZWF0ZVJlbmRlcmVyKHQsZSl7Y29uc3Qgbj10aGlzLmRlbGVnYXRlLmNyZWF0ZVJlbmRlcmVyKHQsZSk7aWYoISh0JiZlJiZlLmRhdGEmJmUuZGF0YS5hbmltYXRpb24pKXtsZXQgdD10aGlzLl9yZW5kZXJlckNhY2hlLmdldChuKTtyZXR1cm4gdHx8KHQ9bmV3IHJrKCIiLG4sdGhpcy5lbmdpbmUpLHRoaXMuX3JlbmRlcmVyQ2FjaGUuc2V0KG4sdCkpLHR9Y29uc3Qgbz1lLmlkLGk9ZS5pZCsiLSIrdGhpcy5fY3VycmVudElkO3RoaXMuX2N1cnJlbnRJZCsrLHRoaXMuZW5naW5lLnJlZ2lzdGVyKGksdCk7Y29uc3QgYT1lPT57QXJyYXkuaXNBcnJheShlKT9lLmZvckVhY2goYSk6dGhpcy5lbmdpbmUucmVnaXN0ZXJUcmlnZ2VyKG8saSx0LGUubmFtZSxlKX07cmV0dXJuIGUuZGF0YS5hbmltYXRpb24uZm9yRWFjaChhKSxuZXcgc2sodGhpcyxpLG4sdGhpcy5lbmdpbmUpfWJlZ2luKCl7dGhpcy5fY2RSZWN1ckRlcHRoKyssdGhpcy5kZWxlZ2F0ZS5iZWdpbiYmdGhpcy5kZWxlZ2F0ZS5iZWdpbigpfV9zY2hlZHVsZUNvdW50VGFzaygpe3RoaXMucHJvbWlzZS50aGVuKCgoKT0+e3RoaXMuX21pY3JvdGFza0lkKyt9KSl9c2NoZWR1bGVMaXN0ZW5lckNhbGxiYWNrKHQsZSxuKXt0Pj0wJiZ0PHRoaXMuX21pY3JvdGFza0lkP3RoaXMuX3pvbmUucnVuKCgoKT0+ZShuKSkpOigwPT10aGlzLl9hbmltYXRpb25DYWxsYmFja3NCdWZmZXIubGVuZ3RoJiZQcm9taXNlLnJlc29sdmUobnVsbCkudGhlbigoKCk9Pnt0aGlzLl96b25lLnJ1bigoKCk9Pnt0aGlzLl9hbmltYXRpb25DYWxsYmFja3NCdWZmZXIuZm9yRWFjaCgodD0+e2NvbnN0W2Usbl09dDtlKG4pfSkpLHRoaXMuX2FuaW1hdGlvbkNhbGxiYWNrc0J1ZmZlcj1bXX0pKX0pKSx0aGlzLl9hbmltYXRpb25DYWxsYmFja3NCdWZmZXIucHVzaChbZSxuXSkpfWVuZCgpe3RoaXMuX2NkUmVjdXJEZXB0aC0tLDA9PXRoaXMuX2NkUmVjdXJEZXB0aCYmdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9Pnt0aGlzLl9zY2hlZHVsZUNvdW50VGFzaygpLHRoaXMuZW5naW5lLmZsdXNoKHRoaXMuX21pY3JvdGFza0lkKX0pKSx0aGlzLmRlbGVnYXRlLmVuZCYmdGhpcy5kZWxlZ2F0ZS5lbmQoKX13aGVuUmVuZGVyaW5nRG9uZSgpe3JldHVybiB0aGlzLmVuZ2luZS53aGVuUmVuZGVyaW5nRG9uZSgpfX1hay7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8YWspKFRyKFFoKSxUcihBdyksVHIobUMpKX0sYWsuybVwcm92PVNuKHt0b2tlbjphayxmYWN0b3J5OmFrLsm1ZmFjfSksYWsuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpRaH0se3R5cGU6QXd9LHt0eXBlOm1DfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihhayxbe3R5cGU6VW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6UWh9LHt0eXBlOkF3fSx7dHlwZTptQ31dfSksbnVsbCk7Y2xhc3Mgcmt7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMubmFtZXNwYWNlSWQ9dCx0aGlzLmRlbGVnYXRlPWUsdGhpcy5lbmdpbmU9bix0aGlzLmRlc3Ryb3lOb2RlPXRoaXMuZGVsZWdhdGUuZGVzdHJveU5vZGU/dD0+ZS5kZXN0cm95Tm9kZSh0KTpudWxsfWdldCBkYXRhKCl7cmV0dXJuIHRoaXMuZGVsZWdhdGUuZGF0YX1kZXN0cm95KCl7dGhpcy5lbmdpbmUuZGVzdHJveSh0aGlzLm5hbWVzcGFjZUlkLHRoaXMuZGVsZWdhdGUpLHRoaXMuZGVsZWdhdGUuZGVzdHJveSgpfWNyZWF0ZUVsZW1lbnQodCxlKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZS5jcmVhdGVFbGVtZW50KHQsZSl9Y3JlYXRlQ29tbWVudCh0KXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZS5jcmVhdGVDb21tZW50KHQpfWNyZWF0ZVRleHQodCl7cmV0dXJuIHRoaXMuZGVsZWdhdGUuY3JlYXRlVGV4dCh0KX1hcHBlbmRDaGlsZCh0LGUpe3RoaXMuZGVsZWdhdGUuYXBwZW5kQ2hpbGQodCxlKSx0aGlzLmVuZ2luZS5vbkluc2VydCh0aGlzLm5hbWVzcGFjZUlkLGUsdCwhMSl9aW5zZXJ0QmVmb3JlKHQsZSxuLG89ITApe3RoaXMuZGVsZWdhdGUuaW5zZXJ0QmVmb3JlKHQsZSxuKSx0aGlzLmVuZ2luZS5vbkluc2VydCh0aGlzLm5hbWVzcGFjZUlkLGUsdCxvKX1yZW1vdmVDaGlsZCh0LGUsbil7dGhpcy5lbmdpbmUub25SZW1vdmUodGhpcy5uYW1lc3BhY2VJZCxlLHRoaXMuZGVsZWdhdGUsbil9c2VsZWN0Um9vdEVsZW1lbnQodCxlKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZS5zZWxlY3RSb290RWxlbWVudCh0LGUpfXBhcmVudE5vZGUodCl7cmV0dXJuIHRoaXMuZGVsZWdhdGUucGFyZW50Tm9kZSh0KX1uZXh0U2libGluZyh0KXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZS5uZXh0U2libGluZyh0KX1zZXRBdHRyaWJ1dGUodCxlLG4sbyl7dGhpcy5kZWxlZ2F0ZS5zZXRBdHRyaWJ1dGUodCxlLG4sbyl9cmVtb3ZlQXR0cmlidXRlKHQsZSxuKXt0aGlzLmRlbGVnYXRlLnJlbW92ZUF0dHJpYnV0ZSh0LGUsbil9YWRkQ2xhc3ModCxlKXt0aGlzLmRlbGVnYXRlLmFkZENsYXNzKHQsZSl9cmVtb3ZlQ2xhc3ModCxlKXt0aGlzLmRlbGVnYXRlLnJlbW92ZUNsYXNzKHQsZSl9c2V0U3R5bGUodCxlLG4sbyl7dGhpcy5kZWxlZ2F0ZS5zZXRTdHlsZSh0LGUsbixvKX1yZW1vdmVTdHlsZSh0LGUsbil7dGhpcy5kZWxlZ2F0ZS5yZW1vdmVTdHlsZSh0LGUsbil9c2V0UHJvcGVydHkodCxlLG4pe2UuY2hhckF0KDApPT1vayYmZT09aWs/dGhpcy5kaXNhYmxlQW5pbWF0aW9ucyh0LCEhbik6dGhpcy5kZWxlZ2F0ZS5zZXRQcm9wZXJ0eSh0LGUsbil9c2V0VmFsdWUodCxlKXt0aGlzLmRlbGVnYXRlLnNldFZhbHVlKHQsZSl9bGlzdGVuKHQsZSxuKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZS5saXN0ZW4odCxlLG4pfWRpc2FibGVBbmltYXRpb25zKHQsZSl7dGhpcy5lbmdpbmUuZGlzYWJsZUFuaW1hdGlvbnModCxlKX19Y2xhc3Mgc2sgZXh0ZW5kcyBya3tjb25zdHJ1Y3Rvcih0LGUsbixvKXtzdXBlcihlLG4sbyksdGhpcy5mYWN0b3J5PXQsdGhpcy5uYW1lc3BhY2VJZD1lfXNldFByb3BlcnR5KHQsZSxuKXtlLmNoYXJBdCgwKT09b2s/Ii4iPT1lLmNoYXJBdCgxKSYmZT09aWs/dGhpcy5kaXNhYmxlQW5pbWF0aW9ucyh0LG49dm9pZCAwPT09bnx8ISFuKTp0aGlzLmVuZ2luZS5wcm9jZXNzKHRoaXMubmFtZXNwYWNlSWQsdCxlLnN1YnN0cigxKSxuKTp0aGlzLmRlbGVnYXRlLnNldFByb3BlcnR5KHQsZSxuKX1saXN0ZW4odCxlLG4pe2lmKGUuY2hhckF0KDApPT1vayl7Y29uc3Qgbz0oZnVuY3Rpb24gaSh0KXtzd2l0Y2godCl7Y2FzZSJib2R5IjpyZXR1cm4gZG9jdW1lbnQuYm9keTtjYXNlImRvY3VtZW50IjpyZXR1cm4gZG9jdW1lbnQ7Y2FzZSJ3aW5kb3ciOnJldHVybiB3aW5kb3c7ZGVmYXVsdDpyZXR1cm4gdH19KSh0KTtsZXQgYT1lLnN1YnN0cigxKSxyPSIiO3JldHVybiBhLmNoYXJBdCgwKSE9b2smJihbYSxyXT0oZnVuY3Rpb24gcyh0KXtjb25zdCBlPXQuaW5kZXhPZigiLiIpLG49dC5zdWJzdHJpbmcoMCxlKSxvPXQuc3Vic3RyKGUrMSk7cmV0dXJuW24sb119Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLykoYSkpLHRoaXMuZW5naW5lLmxpc3Rlbih0aGlzLm5hbWVzcGFjZUlkLG8sYSxyLCh0PT57dGhpcy5mYWN0b3J5LnNjaGVkdWxlTGlzdGVuZXJDYWxsYmFjayh0Ll9kYXRhfHwtMSxuLHQpfSkpfXJldHVybiB0aGlzLmRlbGVnYXRlLmxpc3Rlbih0LGUsbil9fWNsYXNzIGxrIGV4dGVuZHMgQXd7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKHQuYm9keSxlLG4pfW5nT25EZXN0cm95KCl7dGhpcy5mbHVzaCgpfX1say7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bGspKFRyKHNNKSxUcihuUCksVHIoJFApKX0sbGsuybVwcm92PVNuKHt0b2tlbjpsayxmYWN0b3J5OmxrLsm1ZmFjfSksbGsuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19LHt0eXBlOm5QfSx7dHlwZTokUH1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIobGssW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX0se3R5cGU6blB9LHt0eXBlOiRQfV19KSxudWxsKTtjb25zdCBjaz1uZXcgZXIoIkFuaW1hdGlvbk1vZHVsZVR5cGUiKSxkaz1be3Byb3ZpZGU6TU8sdXNlQ2xhc3M6JHd9LHtwcm92aWRlOiRQLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gcGsoKXtyZXR1cm4gbmV3IHR3fX0se3Byb3ZpZGU6QXcsdXNlQ2xhc3M6bGt9LHtwcm92aWRlOlFoLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gbWsodCxlLG4pe3JldHVybiBuZXcgYWsodCxlLG4pfSxkZXBzOlt6eCxBdyxtQ119XSxmaz1be3Byb3ZpZGU6blAsdXNlRmFjdG9yeTpmdW5jdGlvbiB1aygpe3JldHVybihmdW5jdGlvbiB0KCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIFF3KCl9KSgpP25ldyBKdzpuZXcgWnd9fSx7cHJvdmlkZTpjayx1c2VWYWx1ZToiQnJvd3NlckFuaW1hdGlvbnMifSwuLi5ka10sZ2s9W3twcm92aWRlOm5QLHVzZUNsYXNzOmVQfSx7cHJvdmlkZTpjayx1c2VWYWx1ZToiTm9vcEFuaW1hdGlvbnMifSwuLi5ka107Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBoa3tzdGF0aWMgd2l0aENvbmZpZyh0KXtyZXR1cm57bmdNb2R1bGU6aGsscHJvdmlkZXJzOnQuZGlzYWJsZUFuaW1hdGlvbnM/Z2s6Zmt9fX1oay7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8aGspfSxoay7JtW1vZD1mbyh7dHlwZTpoa30pLGhrLsm1aW5qPURuKHtwcm92aWRlcnM6ZmssaW1wb3J0czpbZE9dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihoayxbe3R5cGU6TF8sYXJnczpbe2V4cG9ydHM6W2RPXSxwcm92aWRlcnM6Zmt9XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhoayx7ZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltkT119fSk7Y2xhc3MgYmt7fWJrLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxiayl9LGJrLsm1bW9kPWZvKHt0eXBlOmJrfSksYmsuybVpbmo9RG4oe3Byb3ZpZGVyczpnayxpbXBvcnRzOltkT119KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGJrLFt7dHlwZTpMXyxhcmdzOlt7ZXhwb3J0czpbZE9dLHByb3ZpZGVyczpna31dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKGJrLHtleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW2RPXX19KTtjb25zdCB5az17fTtmdW5jdGlvbiBfayh0LGUpe2lmKHlrW3RdPSh5a1t0XXx8MCkrMSwiZnVuY3Rpb24iPT10eXBlb2YgZSlyZXR1cm4gQ2sodCwoKC4uLm4pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSguLi5uKSkse3R5cGU6dH0pKSk7c3dpdGNoKGU/ZS5fYXM6ImVtcHR5Iil7Y2FzZSJlbXB0eSI6cmV0dXJuIENrKHQsKCgpPT4oe3R5cGU6dH0pKSk7Y2FzZSJwcm9wcyI6cmV0dXJuIENrKHQsKGU9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSx7dHlwZTp0fSkpKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBjb25maWcuIil9fWZ1bmN0aW9uIENrKHQsZSl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJ0eXBlIix7dmFsdWU6dCx3cml0YWJsZTohMX0pfWNvbnN0IE1rPSJAbmdyeC9zdG9yZS9pbml0IjtjbGFzcyB2ayBleHRlbmRzIGp7Y29uc3RydWN0b3IoKXtzdXBlcih7dHlwZTpNa30pfW5leHQodCl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiXG4gICAgICAgIERpc3BhdGNoIGV4cGVjdGVkIGFuIG9iamVjdCwgaW5zdGVhZCBpdCByZWNlaXZlZCBhIGZ1bmN0aW9uLlxuICAgICAgICBJZiB5b3UncmUgdXNpbmcgdGhlIGNyZWF0ZUFjdGlvbiBmdW5jdGlvbiwgbWFrZSBzdXJlIHRvIGludm9rZSB0aGUgZnVuY3Rpb25cbiAgICAgICAgYmVmb3JlIGRpc3BhdGNoaW5nIHRoZSBhY3Rpb24uIEZvciBleGFtcGxlLCBzb21lQWN0aW9uIHNob3VsZCBiZSBzb21lQWN0aW9uKCkuIik7aWYodm9pZCAwPT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJBY3Rpb25zIG11c3QgYmUgb2JqZWN0cyIpO2lmKHZvaWQgMD09PXQudHlwZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBY3Rpb25zIG11c3QgaGF2ZSBhIHR5cGUgcHJvcGVydHkiKTtzdXBlci5uZXh0KHQpfWNvbXBsZXRlKCl7fW5nT25EZXN0cm95KCl7c3VwZXIuY29tcGxldGUoKX19dmsuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHZrKX0sdmsuybVwcm92PVNuKHt0b2tlbjp2ayxmYWN0b3J5OnZrLsm1ZmFjfSksdmsuY3RvclBhcmFtZXRlcnM9KCk9PltdLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIodmssW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW119KSxudWxsKTtjb25zdCB4az1bdmtdLE9rPW5ldyBlcigiQG5ncngvc3RvcmUgSW50ZXJuYWwgUm9vdCBHdWFyZCIpLFBrPW5ldyBlcigiQG5ncngvc3RvcmUgSW50ZXJuYWwgSW5pdGlhbCBTdGF0ZSIpLHdrPW5ldyBlcigiQG5ncngvc3RvcmUgSW5pdGlhbCBTdGF0ZSIpLGtrPW5ldyBlcigiQG5ncngvc3RvcmUgUmVkdWNlciBGYWN0b3J5IiksU2s9bmV3IGVyKCJAbmdyeC9zdG9yZSBJbnRlcm5hbCBSZWR1Y2VyIEZhY3RvcnkgUHJvdmlkZXIiKSxEaz1uZXcgZXIoIkBuZ3J4L3N0b3JlIEluaXRpYWwgUmVkdWNlcnMiKSxSaz1uZXcgZXIoIkBuZ3J4L3N0b3JlIEludGVybmFsIEluaXRpYWwgUmVkdWNlcnMiKSxFaz1uZXcgZXIoIkBuZ3J4L3N0b3JlIFN0b3JlIEZlYXR1cmVzIiksQWs9bmV3IGVyKCJAbmdyeC9zdG9yZSBJbnRlcm5hbCBTdG9yZSBSZWR1Y2VycyIpLFRrPW5ldyBlcigiQG5ncngvc3RvcmUgSW50ZXJuYWwgRmVhdHVyZSBSZWR1Y2VycyIpLE5rPW5ldyBlcigiQG5ncngvc3RvcmUgSW50ZXJuYWwgRmVhdHVyZSBDb25maWdzIiksems9bmV3IGVyKCJAbmdyeC9zdG9yZSBJbnRlcm5hbCBTdG9yZSBGZWF0dXJlcyIpLElrPW5ldyBlcigiQG5ncngvc3RvcmUgSW50ZXJuYWwgRmVhdHVyZSBSZWR1Y2VycyBUb2tlbiIpLEhrPW5ldyBlcigiQG5ncngvc3RvcmUgRmVhdHVyZSBSZWR1Y2VycyIpLEZrPW5ldyBlcigiQG5ncngvc3RvcmUgVXNlciBQcm92aWRlZCBNZXRhIFJlZHVjZXJzIiksTGs9bmV3IGVyKCJAbmdyeC9zdG9yZSBNZXRhIFJlZHVjZXJzIiksQms9bmV3IGVyKCJAbmdyeC9zdG9yZSBJbnRlcm5hbCBSZXNvbHZlZCBNZXRhIFJlZHVjZXJzIiksVms9bmV3IGVyKCJAbmdyeC9zdG9yZSBVc2VyIFJ1bnRpbWUgQ2hlY2tzIENvbmZpZyIpLGprPW5ldyBlcigiQG5ncngvc3RvcmUgSW50ZXJuYWwgVXNlciBSdW50aW1lIENoZWNrcyBDb25maWciKSxVaz1uZXcgZXIoIkBuZ3J4L3N0b3JlIEludGVybmFsIFJ1bnRpbWUgQ2hlY2tzIiksV2s9bmV3IGVyKCJAbmdyeC9zdG9yZSBDaGVjayBpZiBBY3Rpb24gdHlwZXMgYXJlIHVuaXF1ZSIpO2Z1bmN0aW9uIEdrKHQsZT17fSl7Y29uc3Qgbj1PYmplY3Qua2V5cyh0KSxvPXt9O2ZvcihsZXQgZT0wO2U8bi5sZW5ndGg7ZSsrKXtjb25zdCBpPW5bZV07ImZ1bmN0aW9uIj09dHlwZW9mIHRbaV0mJihvW2ldPXRbaV0pfWNvbnN0IGk9T2JqZWN0LmtleXMobyk7cmV0dXJuIGZ1bmN0aW9uIHQobixhKXtuPXZvaWQgMD09PW4/ZTpuO2xldCByPSExO2NvbnN0IHM9e307Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0IGU9aVt0XSxsPW5bZV0sYz0oMCxvW2VdKShsLGEpO3NbZV09YyxyPXJ8fGMhPT1sfXJldHVybiByP3M6bn19ZnVuY3Rpb24gWWsoLi4udCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKDA9PT10Lmxlbmd0aClyZXR1cm4gZTtjb25zdCBuPXRbdC5sZW5ndGgtMV07cmV0dXJuIHQuc2xpY2UoMCwtMSkucmVkdWNlUmlnaHQoKCh0LGUpPT5lKHQpKSxuKGUpKX19ZnVuY3Rpb24gcWsodCxlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKSYmZS5sZW5ndGg+MCYmKHQ9WWsuYXBwbHkobnVsbCxbLi4uZSx0XSkpLChlLG4pPT57Y29uc3Qgbz10KGUpO3JldHVybih0LGUpPT5vKHQ9dm9pZCAwPT09dD9uOnQsZSl9fWNsYXNzIFprIGV4dGVuZHMgVHt9Y2xhc3MgWGsgZXh0ZW5kcyB2a3t9Y2xhc3MgS2sgZXh0ZW5kcyBqe2NvbnN0cnVjdG9yKHQsZSxuLG8pe3N1cGVyKG8obixlKSksdGhpcy5kaXNwYXRjaGVyPXQsdGhpcy5pbml0aWFsU3RhdGU9ZSx0aGlzLnJlZHVjZXJzPW4sdGhpcy5yZWR1Y2VyRmFjdG9yeT1vfWdldCBjdXJyZW50UmVkdWNlcnMoKXtyZXR1cm4gdGhpcy5yZWR1Y2Vyc31hZGRGZWF0dXJlKHQpe3RoaXMuYWRkRmVhdHVyZXMoW3RdKX1hZGRGZWF0dXJlcyh0KXtjb25zdCBlPXQucmVkdWNlKCgodCx7cmVkdWNlcnM6ZSxyZWR1Y2VyRmFjdG9yeTpuLG1ldGFSZWR1Y2VyczpvLGluaXRpYWxTdGF0ZTppLGtleTphfSk9Pntjb25zdCByPSJmdW5jdGlvbiI9PXR5cGVvZiBlPyhmdW5jdGlvbiBzKHQpe2NvbnN0IGU9QXJyYXkuaXNBcnJheSh0KSYmdC5sZW5ndGg+MD9ZayguLi50KTp0PT50O3JldHVybih0LG4pPT4odD1lKHQpLChlLG8pPT50KGU9dm9pZCAwPT09ZT9uOmUsbykpfSkobykoZSxpKTpxayhuLG8pKGUsaSk7cmV0dXJuIHRbYV09cix0fSkse30pO3RoaXMuYWRkUmVkdWNlcnMoZSl9cmVtb3ZlRmVhdHVyZSh0KXt0aGlzLnJlbW92ZUZlYXR1cmVzKFt0XSl9cmVtb3ZlRmVhdHVyZXModCl7dGhpcy5yZW1vdmVSZWR1Y2Vycyh0Lm1hcCgodD0+dC5rZXkpKSl9YWRkUmVkdWNlcih0LGUpe3RoaXMuYWRkUmVkdWNlcnMoe1t0XTplfSl9YWRkUmVkdWNlcnModCl7dGhpcy5yZWR1Y2Vycz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5yZWR1Y2VycyksdCksdGhpcy51cGRhdGVSZWR1Y2VycyhPYmplY3Qua2V5cyh0KSl9cmVtb3ZlUmVkdWNlcih0KXt0aGlzLnJlbW92ZVJlZHVjZXJzKFt0XSl9cmVtb3ZlUmVkdWNlcnModCl7dC5mb3JFYWNoKCh0PT57dGhpcy5yZWR1Y2Vycz0oZnVuY3Rpb24gZSh0LG4pe3JldHVybiBPYmplY3Qua2V5cyh0KS5maWx0ZXIoKHQ9PnQhPT1uKSkucmVkdWNlKCgoZSxuKT0+T2JqZWN0LmFzc2lnbihlLHtbbl06dFtuXX0pKSx7fSl9KSh0aGlzLnJlZHVjZXJzLHQpfSkpLHRoaXMudXBkYXRlUmVkdWNlcnModCl9dXBkYXRlUmVkdWNlcnModCl7dGhpcy5uZXh0KHRoaXMucmVkdWNlckZhY3RvcnkodGhpcy5yZWR1Y2Vycyx0aGlzLmluaXRpYWxTdGF0ZSkpLHRoaXMuZGlzcGF0Y2hlci5uZXh0KHt0eXBlOiJAbmdyeC9zdG9yZS91cGRhdGUtcmVkdWNlcnMiLGZlYXR1cmVzOnR9KX1uZ09uRGVzdHJveSgpe3RoaXMuY29tcGxldGUoKX19S2suybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEtrKShUcihYayksVHIod2spLFRyKERrKSxUcihraykpfSxLay7JtXByb3Y9U24oe3Rva2VuOktrLGZhY3Rvcnk6S2suybVmYWN9KSxLay5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlhrfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbd2tdfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltEa119XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W2trXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihLayxbe3R5cGU6VW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6WGt9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOlt3a119XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W0RrXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpba2tdfV19XX0pLG51bGwpO2NvbnN0IEprPVtLayx7cHJvdmlkZTpaayx1c2VFeGlzdGluZzpLa30se3Byb3ZpZGU6WGssdXNlRXhpc3Rpbmc6dmt9XTtjbGFzcyBRayBleHRlbmRzIEJ7bmdPbkRlc3Ryb3koKXt0aGlzLmNvbXBsZXRlKCl9fVFrLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1VYShRaykpKShufHxRayl9fSkoKSxRay7JtXByb3Y9U24oe3Rva2VuOlFrLGZhY3Rvcnk6UWsuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFFrLFt7dHlwZTpVbX1dLG51bGwsbnVsbCk7Y29uc3QgJGs9W1FrXTtjbGFzcyB0UyBleHRlbmRzIFR7fWNsYXNzIGVTIGV4dGVuZHMgantjb25zdHJ1Y3Rvcih0LGUsbixvKXtzdXBlcihvKTtjb25zdCBpPXQucGlwZSgoZnVuY3Rpb24gcih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT0wKSx6KChmdW5jdGlvbihuLG8pe24uc3Vic2NyaWJlKG5ldyBIKG8sKGZ1bmN0aW9uKG4pe3JldHVybiBvLmFkZCh0LnNjaGVkdWxlKChmdW5jdGlvbigpe3JldHVybiBvLm5leHQobil9KSxlKSl9KSwoZnVuY3Rpb24oKXtyZXR1cm4gby5hZGQodC5zY2hlZHVsZSgoZnVuY3Rpb24oKXtyZXR1cm4gby5jb21wbGV0ZSgpfSksZSkpfSksKGZ1bmN0aW9uKG4pe3JldHVybiBvLmFkZCh0LnNjaGVkdWxlKChmdW5jdGlvbigpe3JldHVybiBvLmVycm9yKG4pfSksZSkpfSkpKX0pKX0pKHN0KSkucGlwZShxZShlKSkucGlwZSgoZnVuY3Rpb24gYSh0LGUpe3JldHVybiB6KGJlKHQsZSxhcmd1bWVudHMubGVuZ3RoPj0yLCEwKSl9KShuUyx7c3RhdGU6b30pKTt0aGlzLnN0YXRlU3Vic2NyaXB0aW9uPWkuc3Vic2NyaWJlKCgoe3N0YXRlOnQsYWN0aW9uOmV9KT0+e3RoaXMubmV4dCh0KSxuLm5leHQoZSl9KSl9bmdPbkRlc3Ryb3koKXt0aGlzLnN0YXRlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5jb21wbGV0ZSgpfX1mdW5jdGlvbiBuUyh0PXtzdGF0ZTp2b2lkIDB9LFtlLG5dKXtjb25zdHtzdGF0ZTpvfT10O3JldHVybntzdGF0ZTpuKG8sZSksYWN0aW9uOmV9fWVTLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxlUykoVHIodmspLFRyKFprKSxUcihRayksVHIod2spKX0sZVMuybVwcm92PVNuKHt0b2tlbjplUyxmYWN0b3J5OmVTLsm1ZmFjfSksZVMuSU5JVD1NayxlUy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnZrfSx7dHlwZTpaa30se3R5cGU6UWt9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOlt3a119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZVMsW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZrfSx7dHlwZTpaa30se3R5cGU6UWt9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOlt3a119XX1dfSksbnVsbCk7Y29uc3Qgb1M9W2VTLHtwcm92aWRlOnRTLHVzZUV4aXN0aW5nOmVTfV07Y2xhc3MgaVMgZXh0ZW5kcyBUe2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcigpLHRoaXMuYWN0aW9uc09ic2VydmVyPWUsdGhpcy5yZWR1Y2VyTWFuYWdlcj1uLHRoaXMuc291cmNlPXR9c2VsZWN0KHQsLi4uZSl7cmV0dXJuIHJTLmNhbGwobnVsbCx0LC4uLmUpKHRoaXMpfWxpZnQodCl7Y29uc3QgZT1uZXcgaVModGhpcyx0aGlzLmFjdGlvbnNPYnNlcnZlcix0aGlzLnJlZHVjZXJNYW5hZ2VyKTtyZXR1cm4gZS5vcGVyYXRvcj10LGV9ZGlzcGF0Y2godCl7dGhpcy5hY3Rpb25zT2JzZXJ2ZXIubmV4dCh0KX1uZXh0KHQpe3RoaXMuYWN0aW9uc09ic2VydmVyLm5leHQodCl9ZXJyb3IodCl7dGhpcy5hY3Rpb25zT2JzZXJ2ZXIuZXJyb3IodCl9Y29tcGxldGUoKXt0aGlzLmFjdGlvbnNPYnNlcnZlci5jb21wbGV0ZSgpfWFkZFJlZHVjZXIodCxlKXt0aGlzLnJlZHVjZXJNYW5hZ2VyLmFkZFJlZHVjZXIodCxlKX1yZW1vdmVSZWR1Y2VyKHQpe3RoaXMucmVkdWNlck1hbmFnZXIucmVtb3ZlUmVkdWNlcih0KX19aVMuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGlTKShUcih0UyksVHIodmspLFRyKEtrKSl9LGlTLsm1cHJvdj1Tbih7dG9rZW46aVMsZmFjdG9yeTppUy7JtWZhY30pLGlTLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dFN9LHt0eXBlOnZrfSx7dHlwZTpLa31dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoaVMsW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnRTfSx7dHlwZTp2a30se3R5cGU6S2t9XX0pLG51bGwpO2NvbnN0IGFTPVtpU107ZnVuY3Rpb24gclModCxlLC4uLm4pe3JldHVybiBmdW5jdGlvbiBvKGkpe2xldCBhO2lmKCJzdHJpbmciPT10eXBlb2YgdCl7Y29uc3Qgbz1bZSwuLi5uXS5maWx0ZXIoQm9vbGVhbik7YT1pLnBpcGUoKGZ1bmN0aW9uIHIoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49dC5sZW5ndGg7aWYoMD09PW4pdGhyb3cgbmV3IEVycm9yKCJsaXN0IG9mIHByb3BlcnRpZXMgY2Fubm90IGJlIGVtcHR5LiIpO3JldHVybiBWdCgoZnVuY3Rpb24oZSl7Zm9yKHZhciBvPWUsaT0wO2k8bjtpKyspe3ZhciBhPW51bGw9PW8/dm9pZCAwOm9bdFtpXV07aWYodm9pZCAwPT09YSlyZXR1cm47bz1hfXJldHVybiBvfSkpfSkodCwuLi5vKSl9ZWxzZXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKGBVbmV4cGVjdGVkIHR5cGUgJyR7dHlwZW9mIHR9JyBpbiBzZWxlY3Qgb3BlcmF0b3IsIGV4cGVjdGVkICdzdHJpbmcnIG9yICdmdW5jdGlvbidgKTthPWkucGlwZShWdCgobj0+dChuLGUpKSkpfXJldHVybiBhLnBpcGUod2UoKSl9fWNvbnN0IHNTPSJodHRwczovL25ncnguaW8vZ3VpZGUvc3RvcmUvY29uZmlndXJhdGlvbi9ydW50aW1lLWNoZWNrcyI7ZnVuY3Rpb24gbFModCl7cmV0dXJuIHZvaWQgMD09PXR9ZnVuY3Rpb24gY1ModCl7cmV0dXJuIG51bGw9PT10fWZ1bmN0aW9uIGRTKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpfWZ1bmN0aW9uIHBTKHQpe3JldHVybiJvYmplY3QiPT10eXBlb2YgdCYmbnVsbCE9PXR9ZnVuY3Rpb24gbVModCl7aWYoIShmdW5jdGlvbiBlKHQpe3JldHVybiBwUyh0KSYmIWRTKHQpfSkodCkpcmV0dXJuITE7Y29uc3Qgbj1PYmplY3QuZ2V0UHJvdG90eXBlT2YodCk7cmV0dXJuIG49PT1PYmplY3QucHJvdG90eXBlfHxudWxsPT09bn1mdW5jdGlvbiBmUyh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdH1mdW5jdGlvbiB1Uyh0LGUpe3JldHVybiB0PT09ZX1mdW5jdGlvbiBnUyh0LGUsbil7Zm9yKGxldCBvPTA7bzx0Lmxlbmd0aDtvKyspaWYoIW4odFtvXSxlW29dKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBoUyh0LGU9dVMsbj11Uyl7bGV0IG8saT1udWxsLGE9bnVsbDtyZXR1cm57bWVtb2l6ZWQ6ZnVuY3Rpb24gcigpe2lmKHZvaWQgMCE9PW8pcmV0dXJuIG8ucmVzdWx0O2lmKCFpKXJldHVybiBhPXQuYXBwbHkobnVsbCxhcmd1bWVudHMpLGk9YXJndW1lbnRzLGE7aWYoIWdTKGFyZ3VtZW50cyxpLGUpKXJldHVybiBhO2NvbnN0IHI9dC5hcHBseShudWxsLGFyZ3VtZW50cyk7cmV0dXJuIGk9YXJndW1lbnRzLG4oYSxyKT9hOihhPXIscil9LHJlc2V0OmZ1bmN0aW9uIHMoKXtpPW51bGwsYT1udWxsfSxzZXRSZXN1bHQ6ZnVuY3Rpb24gbCh0KXtvPXtyZXN1bHQ6dH19LGNsZWFyUmVzdWx0OmZ1bmN0aW9uIGMoKXtvPXZvaWQgMH19fWZ1bmN0aW9uIGJTKC4uLnQpe3JldHVybihmdW5jdGlvbiBlKHQsbj17c3RhdGVGbjp5U30pe3JldHVybiBmdW5jdGlvbiguLi5lKXtsZXQgbz1lO2lmKEFycmF5LmlzQXJyYXkob1swXSkpe2NvbnN0W3QsLi4uZV09bztvPVsuLi50LC4uLmVdfWNvbnN0IGk9by5zbGljZSgwLG8ubGVuZ3RoLTEpLGE9b1tvLmxlbmd0aC0xXSxyPWkuZmlsdGVyKCh0PT50LnJlbGVhc2UmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LnJlbGVhc2UpKSxzPXQoKGZ1bmN0aW9uKC4uLnQpe3JldHVybiBhLmFwcGx5KG51bGwsdCl9KSksbD1oUygoZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5zdGF0ZUZuLmFwcGx5KG51bGwsW3QsaSxlLHNdKX0pKTtmdW5jdGlvbiBjKCl7bC5yZXNldCgpLHMucmVzZXQoKSxyLmZvckVhY2goKHQ9PnQucmVsZWFzZSgpKSl9cmV0dXJuIE9iamVjdC5hc3NpZ24obC5tZW1vaXplZCx7cmVsZWFzZTpjLHByb2plY3RvcjpzLm1lbW9pemVkLHNldFJlc3VsdDpsLnNldFJlc3VsdCxjbGVhclJlc3VsdDpsLmNsZWFyUmVzdWx0fSl9fSkoaFMpKC4uLnQpfWZ1bmN0aW9uIHlTKHQsZSxuLG8pe2lmKHZvaWQgMD09PW4pe2NvbnN0IG49ZS5tYXAoKGU9PmUodCkpKTtyZXR1cm4gby5tZW1vaXplZC5hcHBseShudWxsLG4pfWNvbnN0IGk9ZS5tYXAoKGU9PmUodCxuKSkpO3JldHVybiBvLm1lbW9pemVkLmFwcGx5KG51bGwsWy4uLmksbl0pfWZ1bmN0aW9uIF9TKHQpe3JldHVybiBiUygoZT0+e2NvbnN0IG49ZVt0XTtyZXR1cm4gUEMoKSYmISh0IGluIGUpJiZjb25zb2xlLndhcm4oYEBuZ3J4L3N0b3JlOiBUaGUgZmVhdHVyZSBuYW1lICIke3R9IiBkb2VzIG5vdCBleGlzdCBpbiB0aGUgc3RhdGUsIHRoZXJlZm9yZSBjcmVhdGVGZWF0dXJlU2VsZWN0b3IgY2Fubm90IGFjY2VzcyBpdC4gIEJlIHN1cmUgaXQgaXMgaW1wb3J0ZWQgaW4gYSBsb2FkZWQgbW9kdWxlIHVzaW5nIFN0b3JlTW9kdWxlLmZvclJvb3QoJyR7dH0nLCAuLi4pIG9yIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoJyR7dH0nLCAuLi4pLiAgSWYgdGhlIGRlZmF1bHQgc3RhdGUgaXMgaW50ZW5kZWQgdG8gYmUgdW5kZWZpbmVkLCBhcyBpcyB0aGUgY2FzZSB3aXRoIHJvdXRlciBzdGF0ZSwgdGhpcyBkZXZlbG9wbWVudC1vbmx5IHdhcm5pbmcgbWVzc2FnZSBjYW4gYmUgaWdub3JlZC5gKSxufSksKHQ9PnQpKX1mdW5jdGlvbiBDUyh0KXtPYmplY3QuZnJlZXplKHQpO2NvbnN0IGU9ZlModCk7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHQpLmZvckVhY2goKG49PntpZighbi5zdGFydHNXaXRoKCLJtSIpJiYoZnVuY3Rpb24gbyh0LGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKX0pKHQsbikmJighZXx8ImNhbGxlciIhPT1uJiYiY2FsbGVlIiE9PW4mJiJhcmd1bWVudHMiIT09bikpe2NvbnN0IGU9dFtuXTshcFMoZSkmJiFmUyhlKXx8T2JqZWN0LmlzRnJvemVuKGUpfHxDUyhlKX19KSksdH1mdW5jdGlvbiBNUyh0LGU9W10pe2lmKChsUyh0KXx8Y1ModCkpJiYwPT09ZS5sZW5ndGgpcmV0dXJue3BhdGg6WyJyb290Il0sdmFsdWU6dH07cmV0dXJuIE9iamVjdC5rZXlzKHQpLnJlZHVjZSgoKG4sbyk9PntpZihuKXJldHVybiBuO2NvbnN0IGk9dFtvXTtyZXR1cm4oZnVuY3Rpb24gYSh0KXtyZXR1cm4gZlModCkmJnQuaGFzT3duUHJvcGVydHkoIsm1Y21wIil9KShpKT9uOiEobFMoaSl8fGNTKGkpfHwoZnVuY3Rpb24gcih0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHR9KShpKXx8KGZ1bmN0aW9uIHModCl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdH0pKGkpfHwoZnVuY3Rpb24gbCh0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHR9KShpKXx8ZFMoaSkpJiYobVMoaSk/TVMoaSxbLi4uZSxvXSk6e3BhdGg6Wy4uLmUsb10sdmFsdWU6aX0pfSksITEpfWZ1bmN0aW9uIHZTKHQsZSl7aWYoITE9PT10KXJldHVybjtjb25zdCBuPXQucGF0aC5qb2luKCIuIiksbz1uZXcgRXJyb3IoYERldGVjdGVkIHVuc2VyaWFsaXphYmxlICR7ZX0gYXQgIiR7bn0iLiAke3NTfSNzdHJpY3Qke2V9c2VyaWFsaXphYmlsaXR5YCk7dGhyb3cgby52YWx1ZT10LnZhbHVlLG8udW5zZXJpYWxpemFibGVQYXRoPW4sb31mdW5jdGlvbiB4Uyh0KXtyZXR1cm4gUEMoKT9PYmplY3QuYXNzaWduKHtzdHJpY3RTdGF0ZVNlcmlhbGl6YWJpbGl0eTohMSxzdHJpY3RBY3Rpb25TZXJpYWxpemFiaWxpdHk6ITEsc3RyaWN0U3RhdGVJbW11dGFiaWxpdHk6ITAsc3RyaWN0QWN0aW9uSW1tdXRhYmlsaXR5OiEwLHN0cmljdEFjdGlvbldpdGhpbk5nWm9uZTohMSxzdHJpY3RBY3Rpb25UeXBlVW5pcXVlbmVzczohMX0sdCk6e3N0cmljdFN0YXRlU2VyaWFsaXphYmlsaXR5OiExLHN0cmljdEFjdGlvblNlcmlhbGl6YWJpbGl0eTohMSxzdHJpY3RTdGF0ZUltbXV0YWJpbGl0eTohMSxzdHJpY3RBY3Rpb25JbW11dGFiaWxpdHk6ITEsc3RyaWN0QWN0aW9uV2l0aGluTmdab25lOiExLHN0cmljdEFjdGlvblR5cGVVbmlxdWVuZXNzOiExfX1mdW5jdGlvbiBPUyh7c3RyaWN0QWN0aW9uU2VyaWFsaXphYmlsaXR5OnQsc3RyaWN0U3RhdGVTZXJpYWxpemFiaWxpdHk6ZX0pe3JldHVybiBuPT50fHxlPyhmdW5jdGlvbiBvKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4sbyl7ZS5hY3Rpb24obykmJnZTKE1TKG8pLCJhY3Rpb24iKTtjb25zdCBpPXQobixvKTtyZXR1cm4gZS5zdGF0ZSgpJiZ2UyhNUyhpKSwic3RhdGUiKSxpfX0pKG4se2FjdGlvbjplPT50JiYhd1MoZSksc3RhdGU6KCk9PmV9KTpufWZ1bmN0aW9uIFBTKHtzdHJpY3RBY3Rpb25JbW11dGFiaWxpdHk6dCxzdHJpY3RTdGF0ZUltbXV0YWJpbGl0eTplfSl7cmV0dXJuIG49PnR8fGU/KGZ1bmN0aW9uIG8odCxlKXtyZXR1cm4gZnVuY3Rpb24obixvKXtjb25zdCBpPWUuYWN0aW9uKG8pP0NTKG8pOm8sYT10KG4saSk7cmV0dXJuIGUuc3RhdGUoKT9DUyhhKTphfX0pKG4se2FjdGlvbjplPT50JiYhd1MoZSksc3RhdGU6KCk9PmV9KTpufWZ1bmN0aW9uIHdTKHQpe3JldHVybiB0LnR5cGUuc3RhcnRzV2l0aCgiQG5ncngiKX1mdW5jdGlvbiBrUyh7c3RyaWN0QWN0aW9uV2l0aGluTmdab25lOnR9KXtyZXR1cm4gZT0+dD8oZnVuY3Rpb24gbih0LGUpe3JldHVybiBmdW5jdGlvbihuLG8pe2lmKGUuYWN0aW9uKG8pJiYhbUMuaXNJbkFuZ3VsYXJab25lKCkpdGhyb3cgbmV3IEVycm9yKGBBY3Rpb24gJyR7by50eXBlfScgcnVubmluZyBvdXRzaWRlIE5nWm9uZS4gJHtzU30jc3RyaWN0YWN0aW9ud2l0aGlubmd6b25lYCk7cmV0dXJuIHQobixvKX19KShlLHthY3Rpb246ZT0+dCYmIXdTKGUpfSk6ZX1mdW5jdGlvbiBTUygpe3JldHVyblt7cHJvdmlkZTpXayxtdWx0aTohMCxkZXBzOltVa10sdXNlRmFjdG9yeTpSU31dfWZ1bmN0aW9uIERTKHQpe3JldHVybiB0fWZ1bmN0aW9uIFJTKHQpe2lmKCF0LnN0cmljdEFjdGlvblR5cGVVbmlxdWVuZXNzKXJldHVybjtjb25zdCBlPU9iamVjdC5lbnRyaWVzKHlrKS5maWx0ZXIoKChbLHRdKT0+dD4xKSkubWFwKCgoW3RdKT0+dCkpO2lmKGUubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgQWN0aW9uIHR5cGVzIGFyZSByZWdpc3RlcmVkIG1vcmUgdGhhbiBvbmNlLCAke2UubWFwKCh0PT5gIiR7dH0iYCkpLmpvaW4oIiwgIil9LiAke3NTfSNzdHJpY3RhY3Rpb250eXBldW5pcXVlbmVzc2ApfWNsYXNzIEVTe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhKXt9fUVTLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxFUykoVHIodmspLFRyKFprKSxUcihRayksVHIoaVMpLFRyKE9rLDgpLFRyKFdrLDgpKX0sRVMuybVtb2Q9Zm8oe3R5cGU6RVN9KSxFUy7JtWluaj1Ebih7fSksRVMuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2a30se3R5cGU6Wmt9LHt0eXBlOlFrfSx7dHlwZTppU30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltPa119XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltXa119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoRVMsW3t0eXBlOkxfLGFyZ3M6W3t9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2a30se3R5cGU6Wmt9LHt0eXBlOlFrfSx7dHlwZTppU30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltPa119XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltXa119XX1dfSksbnVsbCk7Y2xhc3MgQVN7Y29uc3RydWN0b3IodCxlLG4sbyxpKXt0aGlzLmZlYXR1cmVzPXQsdGhpcy5mZWF0dXJlUmVkdWNlcnM9ZSx0aGlzLnJlZHVjZXJNYW5hZ2VyPW47Y29uc3QgYT10Lm1hcCgoKHQsbik9Pntjb25zdCBvPWUuc2hpZnQoKVtuXTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtyZWR1Y2VyczpvLGluaXRpYWxTdGF0ZTpIUyh0LmluaXRpYWxTdGF0ZSl9KX0pKTtuLmFkZEZlYXR1cmVzKGEpfW5nT25EZXN0cm95KCl7dGhpcy5yZWR1Y2VyTWFuYWdlci5yZW1vdmVGZWF0dXJlcyh0aGlzLmZlYXR1cmVzKX19QVMuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEFTKShUcih6ayksVHIoSGspLFRyKEtrKSxUcihFUyksVHIoV2ssOCkpfSxBUy7JtW1vZD1mbyh7dHlwZTpBU30pLEFTLsm1aW5qPURuKHt9KSxBUy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3prXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltIa119XX0se3R5cGU6S2t9LHt0eXBlOkVTfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W1drXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihBUyxbe3R5cGU6TF8sYXJnczpbe31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3prXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltIa119XX0se3R5cGU6S2t9LHt0eXBlOkVTfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W1drXX1dfV19KSxudWxsKTtjbGFzcyBUU3tzdGF0aWMgZm9yUm9vdCh0LGU9e30pe3JldHVybntuZ01vZHVsZTpFUyxwcm92aWRlcnM6W3twcm92aWRlOk9rLHVzZUZhY3Rvcnk6TFMsZGVwczpbW2lTLG5ldyBCcixuZXcganJdXX0se3Byb3ZpZGU6UGssdXNlVmFsdWU6ZS5pbml0aWFsU3RhdGV9LHtwcm92aWRlOndrLHVzZUZhY3Rvcnk6SFMsZGVwczpbUGtdfSx7cHJvdmlkZTpSayx1c2VWYWx1ZTp0fSx7cHJvdmlkZTpBayx1c2VFeGlzdGluZzp0IGluc3RhbmNlb2YgZXI/dDpSa30se3Byb3ZpZGU6RGssZGVwczpbTnAsUmssW25ldyBMcihBayldXSx1c2VGYWN0b3J5Ok5TfSx7cHJvdmlkZTpGayx1c2VWYWx1ZTplLm1ldGFSZWR1Y2Vycz9lLm1ldGFSZWR1Y2VyczpbXX0se3Byb3ZpZGU6QmssZGVwczpbTGssRmtdLHVzZUZhY3Rvcnk6RlN9LHtwcm92aWRlOlNrLHVzZVZhbHVlOmUucmVkdWNlckZhY3Rvcnk/ZS5yZWR1Y2VyRmFjdG9yeTpHa30se3Byb3ZpZGU6a2ssZGVwczpbU2ssQmtdLHVzZUZhY3Rvcnk6cWt9LHhrLEprLCRrLG9TLGFTLChuPWUucnVudGltZUNoZWNrcyxbe3Byb3ZpZGU6amssdXNlVmFsdWU6bn0se3Byb3ZpZGU6VmssdXNlRmFjdG9yeTpEUyxkZXBzOltqa119LHtwcm92aWRlOlVrLGRlcHM6W1ZrXSx1c2VGYWN0b3J5OnhTfSx7cHJvdmlkZTpMayxtdWx0aTohMCxkZXBzOltVa10sdXNlRmFjdG9yeTpQU30se3Byb3ZpZGU6TGssbXVsdGk6ITAsZGVwczpbVWtdLHVzZUZhY3Rvcnk6T1N9LHtwcm92aWRlOkxrLG11bHRpOiEwLGRlcHM6W1VrXSx1c2VGYWN0b3J5OmtTfV0pLFNTKCldfTt2YXIgbn1zdGF0aWMgZm9yRmVhdHVyZSh0LGUsbj17fSl7cmV0dXJue25nTW9kdWxlOkFTLHByb3ZpZGVyczpbe3Byb3ZpZGU6TmssbXVsdGk6ITAsdXNlVmFsdWU6dCBpbnN0YW5jZW9mIE9iamVjdD97fTpufSx7cHJvdmlkZTpFayxtdWx0aTohMCx1c2VWYWx1ZTp7a2V5OnQgaW5zdGFuY2VvZiBPYmplY3Q/dC5uYW1lOnQscmVkdWNlckZhY3Rvcnk6biBpbnN0YW5jZW9mIGVyfHwhbi5yZWR1Y2VyRmFjdG9yeT9HazpuLnJlZHVjZXJGYWN0b3J5LG1ldGFSZWR1Y2VyczpuIGluc3RhbmNlb2YgZXJ8fCFuLm1ldGFSZWR1Y2Vycz9bXTpuLm1ldGFSZWR1Y2Vycyxpbml0aWFsU3RhdGU6biBpbnN0YW5jZW9mIGVyfHwhbi5pbml0aWFsU3RhdGU/dm9pZCAwOm4uaW5pdGlhbFN0YXRlfX0se3Byb3ZpZGU6emssZGVwczpbTnAsTmssRWtdLHVzZUZhY3Rvcnk6elN9LHtwcm92aWRlOlRrLG11bHRpOiEwLHVzZVZhbHVlOnQgaW5zdGFuY2VvZiBPYmplY3Q/dC5yZWR1Y2VyOmV9LHtwcm92aWRlOklrLG11bHRpOiEwLHVzZUV4aXN0aW5nOmUgaW5zdGFuY2VvZiBlcj9lOlRrfSx7cHJvdmlkZTpIayxtdWx0aTohMCxkZXBzOltOcCxUayxbbmV3IExyKElrKV1dLHVzZUZhY3Rvcnk6SVN9LFNTKCldfX19ZnVuY3Rpb24gTlModCxlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGVyP3QuZ2V0KGUpOmV9ZnVuY3Rpb24gelModCxlLG4pe3JldHVybiBuLm1hcCgoKG4sbyk9PntpZihlW29daW5zdGFuY2VvZiBlcil7Y29uc3QgaT10LmdldChlW29dKTtyZXR1cm57a2V5Om4ua2V5LHJlZHVjZXJGYWN0b3J5OmkucmVkdWNlckZhY3Rvcnk/aS5yZWR1Y2VyRmFjdG9yeTpHayxtZXRhUmVkdWNlcnM6aS5tZXRhUmVkdWNlcnM/aS5tZXRhUmVkdWNlcnM6W10saW5pdGlhbFN0YXRlOmkuaW5pdGlhbFN0YXRlfX1yZXR1cm4gbn0pKX1mdW5jdGlvbiBJUyh0LGUpe3JldHVybiBlLm1hcCgoZT0+ZSBpbnN0YW5jZW9mIGVyP3QuZ2V0KGUpOmUpKX1mdW5jdGlvbiBIUyh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90KCk6dH1mdW5jdGlvbiBGUyh0LGUpe3JldHVybiB0LmNvbmNhdChlKX1mdW5jdGlvbiBMUyh0KXtpZih0KXRocm93IG5ldyBUeXBlRXJyb3IoIlN0b3JlTW9kdWxlLmZvclJvb3QoKSBjYWxsZWQgdHdpY2UuIEZlYXR1cmUgbW9kdWxlcyBzaG91bGQgdXNlIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoKSBpbnN0ZWFkLiIpO3JldHVybiJndWFyZGVkIn1mdW5jdGlvbiBCUyguLi50KXtyZXR1cm57cmVkdWNlcjp0LnBvcCgpLHR5cGVzOnQubWFwKCh0PT50LnR5cGUpKX19ZnVuY3Rpb24gVlModCwuLi5lKXtjb25zdCBuPW5ldyBNYXA7Zm9yKGNvbnN0IHQgb2YgZSlmb3IoY29uc3QgZSBvZiB0LnR5cGVzKXtjb25zdCBvPW4uZ2V0KGUpO2lmKG8pe24uc2V0KGUsKChlLG4pPT50LnJlZHVjZXIobyhlLG4pLG4pKSl9ZWxzZSBuLnNldChlLHQucmVkdWNlcil9cmV0dXJuIGZ1bmN0aW9uKGU9dCxvKXtjb25zdCBpPW4uZ2V0KG8udHlwZSk7cmV0dXJuIGk/aShlLG8pOmV9fVRTLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxUUyl9LFRTLsm1bW9kPWZvKHt0eXBlOlRTfSksVFMuybVpbmo9RG4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoVFMsW3t0eXBlOkxfLGFyZ3M6W3t9XX1dLG51bGwsbnVsbCk7Y29uc3QgalM9e2Rpc3BhdGNoOiEwLHVzZUVmZmVjdHNFcnJvckhhbmRsZXI6ITB9LFVTPSJfX0BuZ3J4L2VmZmVjdHNfY3JlYXRlX18iO2Z1bmN0aW9uIFdTKHQsZSl7Y29uc3Qgbj10KCksbz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30salMpLGUpO3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobixVUyx7dmFsdWU6b30pLG59ZnVuY3Rpb24gR1ModCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHQpLmZpbHRlcigoZT0+e2lmKHRbZV0mJnRbZV0uaGFzT3duUHJvcGVydHkoVVMpKXtyZXR1cm4gdFtlXVtVU10uaGFzT3duUHJvcGVydHkoImRpc3BhdGNoIil9cmV0dXJuITF9KSkubWFwKChlPT5PYmplY3QuYXNzaWduKHtwcm9wZXJ0eU5hbWU6ZX0sdFtlXVtVU10pKSl9ZnVuY3Rpb24gWVModCl7cmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZih0KX1jb25zdCBxUz0iX19AbmdyeC9lZmZlY3RzX18iO2Z1bmN0aW9uIFpTKHQpe3JldHVybiBZayhYUyxZUykodCl9ZnVuY3Rpb24gWFModCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuIHQuY29uc3RydWN0b3IuaGFzT3duUHJvcGVydHkocVMpfSkodCk/dC5jb25zdHJ1Y3RvcltxU106W119ZnVuY3Rpb24gS1ModCxlLG4pe2NvbnN0IG89WVModCkuY29uc3RydWN0b3IubmFtZTtyZXR1cm4gcGUoLi4uKGZ1bmN0aW9uIGkodCl7cmV0dXJuW1pTLEdTXS5yZWR1Y2UoKChlLG4pPT5lLmNvbmNhdChuKHQpKSksW10pfSkodCkubWFwKCgoe3Byb3BlcnR5TmFtZTppLGRpc3BhdGNoOmEsdXNlRWZmZWN0c0Vycm9ySGFuZGxlcjpyfSk9Pntjb25zdCBzPSJmdW5jdGlvbiI9PXR5cGVvZiB0W2ldP3RbaV0oKTp0W2ldLGw9cj9uKHMsZSk6cztpZighMT09PWEpcmV0dXJuIGwucGlwZSh4ZSgpKTtyZXR1cm4gbC5waXBlKChmdW5jdGlvbiBjKCl7cmV0dXJuIHooKGZ1bmN0aW9uKHQsZSl7dC5zdWJzY3JpYmUobmV3IEgoZSwoZnVuY3Rpb24odCl7ZS5uZXh0KEh0LmNyZWF0ZU5leHQodCkpfSksKGZ1bmN0aW9uKCl7ZS5uZXh0KEh0LmNyZWF0ZUNvbXBsZXRlKCkpLGUuY29tcGxldGUoKX0pLChmdW5jdGlvbih0KXtlLm5leHQoSHQuY3JlYXRlRXJyb3IodCkpLGUuY29tcGxldGUoKX0pKSl9KSl9KSgpKS5waXBlKFZ0KChlPT4oe2VmZmVjdDp0W2ldLG5vdGlmaWNhdGlvbjplLHByb3BlcnR5TmFtZTppLHNvdXJjZU5hbWU6byxzb3VyY2VJbnN0YW5jZTp0fSkpKSl9KSkpfWZ1bmN0aW9uIEpTKHQsZSxuPTEwKXtyZXR1cm4gdC5waXBlKGhlKChvPT4oZSYmZS5oYW5kbGVFcnJvcihvKSxuPD0xP3Q6SlModCxlLG4tMSkpKSkpfWNsYXNzIFFTIGV4dGVuZHMgVHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHQmJih0aGlzLnNvdXJjZT10KX1saWZ0KHQpe2NvbnN0IGU9bmV3IFFTO3JldHVybiBlLnNvdXJjZT10aGlzLGUub3BlcmF0b3I9dCxlfX1mdW5jdGlvbiAkUyguLi50KXtyZXR1cm4gdWUoKGU9PnQuc29tZSgodD0+InN0cmluZyI9PXR5cGVvZiB0P3Q9PT1lLnR5cGU6dC50eXBlPT09ZS50eXBlKSkpKX1mdW5jdGlvbiB0RCh0LGUpe2lmKCJOIj09PXQubm90aWZpY2F0aW9uLmtpbmQpe2NvbnN0IG49dC5ub3RpZmljYXRpb24udmFsdWU7IShmdW5jdGlvbiBuKHQpe3JldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0JiZ0JiZ0LnR5cGUmJiJzdHJpbmciPT10eXBlb2YgdC50eXBlfSkobikmJmUuaGFuZGxlRXJyb3IobmV3IEVycm9yKGBFZmZlY3QgJHsoZnVuY3Rpb24gbyh7cHJvcGVydHlOYW1lOnQsc291cmNlSW5zdGFuY2U6ZSxzb3VyY2VOYW1lOm59KXtjb25zdCBvPSJmdW5jdGlvbiI9PXR5cGVvZiBlW3RdO3JldHVybmAiJHtufS4ke1N0cmluZyh0KX0ke28/IigpIjoiIn0iYH0pKHQpfSBkaXNwYXRjaGVkIGFuIGludmFsaWQgYWN0aW9uOiAkeyhmdW5jdGlvbiBpKHQpe3RyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCl9Y2F0Y2goZSl7cmV0dXJuIHR9fSkobil9YCkpfX1RUy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UVMpKFRyKFFrKSl9LFFTLsm1cHJvdj1Tbih7dG9rZW46UVMsZmFjdG9yeTpRUy7JtWZhY30pLFFTLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6VCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltRa119XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoUVMsW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlQsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbUWtdfV19XX0pLG51bGwpO2Z1bmN0aW9uIGVEKHQpe3JldHVybiBuRCh0LCJuZ3J4T25Jbml0RWZmZWN0cyIpfWZ1bmN0aW9uIG5EKHQsZSl7cmV0dXJuIHQmJmUgaW4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIHRbZV19Y29uc3Qgb0Q9bmV3IGVyKCJAbmdyeC9lZmZlY3RzIEludGVybmFsIFJvb3QgR3VhcmQiKSxpRD1uZXcgZXIoIkBuZ3J4L2VmZmVjdHMgVXNlciBQcm92aWRlZCBFZmZlY3RzIiksYUQ9bmV3IGVyKCJAbmdyeC9lZmZlY3RzIEludGVybmFsIFJvb3QgRWZmZWN0cyIpLHJEPW5ldyBlcigiQG5ncngvZWZmZWN0cyBSb290IEVmZmVjdHMiKSxzRD1uZXcgZXIoIkBuZ3J4L2VmZmVjdHMgSW50ZXJuYWwgRmVhdHVyZSBFZmZlY3RzIiksbEQ9bmV3IGVyKCJAbmdyeC9lZmZlY3RzIEZlYXR1cmUgRWZmZWN0cyIpLGNEPW5ldyBlcigiQG5ncngvZWZmZWN0cyBFZmZlY3RzIEVycm9yIEhhbmRsZXIiKTtjbGFzcyBkRCBleHRlbmRzIEJ7Y29uc3RydWN0b3IodCxlKXtzdXBlcigpLHRoaXMuZXJyb3JIYW5kbGVyPXQsdGhpcy5lZmZlY3RzRXJyb3JIYW5kbGVyPWV9YWRkRWZmZWN0cyh0KXt0aGlzLm5leHQodCl9dG9BY3Rpb25zKCl7cmV0dXJuIHRoaXMucGlwZShFZShZUyksJHQoKHQ9PnQucGlwZShFZShwRCkpKSksJHQoKHQ9PnBlKHQucGlwZShSZSgodD0+KGZ1bmN0aW9uIGUodCxuKXtyZXR1cm4gZT0+e2NvbnN0IG89S1MoZSx0LG4pO3JldHVybihmdW5jdGlvbiBpKHQpe3JldHVybiBuRCh0LCJuZ3J4T25SdW5FZmZlY3RzIil9KShlKT9lLm5ncnhPblJ1bkVmZmVjdHMobyk6b319KSh0aGlzLmVycm9ySGFuZGxlcix0aGlzLmVmZmVjdHNFcnJvckhhbmRsZXIpKHQpKSksVnQoKHQ9Pih0RCh0LHRoaXMuZXJyb3JIYW5kbGVyKSx0Lm5vdGlmaWNhdGlvbikpKSx1ZSgodD0+Ik4iPT09dC5raW5kJiZudWxsIT10LnZhbHVlKSksKGZ1bmN0aW9uIGUoKXtyZXR1cm4geigoZnVuY3Rpb24odCxlKXt0LnN1YnNjcmliZShuZXcgSChlLChmdW5jdGlvbih0KXtyZXR1cm4gRnQodCxlKX0pKSl9KSl9KSgpKSx0LnBpcGUodmUoMSksdWUoZUQpLFZ0KCh0PT50Lm5ncnhPbkluaXRFZmZlY3RzKCkpKSkpKSkpfX1mdW5jdGlvbiBwRCh0KXtyZXR1cm4oZnVuY3Rpb24gZSh0KXtyZXR1cm4gbkQodCwibmdyeE9uSWRlbnRpZnlFZmZlY3RzIil9KSh0KT90Lm5ncnhPbklkZW50aWZ5RWZmZWN0cygpOiIifWRELsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxkRCkoVHIodWwpLFRyKGNEKSl9LGRELsm1cHJvdj1Tbih7dG9rZW46ZEQsZmFjdG9yeTpkRC7JtWZhY30pLGRELmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dWx9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltjRF19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZEQsW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnVsfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbY0RdfV19XX0pLG51bGwpO2NsYXNzIG1Ee2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5lZmZlY3RTb3VyY2VzPXQsdGhpcy5zdG9yZT1lLHRoaXMuZWZmZWN0c1N1YnNjcmlwdGlvbj1udWxsfXN0YXJ0KCl7dGhpcy5lZmZlY3RzU3Vic2NyaXB0aW9ufHwodGhpcy5lZmZlY3RzU3Vic2NyaXB0aW9uPXRoaXMuZWZmZWN0U291cmNlcy50b0FjdGlvbnMoKS5zdWJzY3JpYmUodGhpcy5zdG9yZSkpfW5nT25EZXN0cm95KCl7dGhpcy5lZmZlY3RzU3Vic2NyaXB0aW9uJiYodGhpcy5lZmZlY3RzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5lZmZlY3RzU3Vic2NyaXB0aW9uPW51bGwpfX1tRC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bUQpKFRyKGREKSxUcihpUykpfSxtRC7JtXByb3Y9U24oe3Rva2VuOm1ELGZhY3Rvcnk6bUQuybVmYWN9KSxtRC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmREfSx7dHlwZTppU31dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIobUQsW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmREfSx7dHlwZTppU31dfSksbnVsbCk7Y29uc3QgZkQ9IkBuZ3J4L2VmZmVjdHMvaW5pdCI7X2soZkQpO2NsYXNzIHVEe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIpe3RoaXMuc291cmNlcz10LGUuc3RhcnQoKSxvLmZvckVhY2goKGU9PnQuYWRkRWZmZWN0cyhlKSkpLG4uZGlzcGF0Y2goe3R5cGU6ZkR9KX1hZGRFZmZlY3RzKHQpe3RoaXMuc291cmNlcy5hZGRFZmZlY3RzKHQpfX11RC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dUQpKFRyKGREKSxUcihtRCksVHIoaVMpLFRyKHJEKSxUcihFUyw4KSxUcihBUyw4KSxUcihvRCw4KSl9LHVELsm1bW9kPWZvKHt0eXBlOnVEfSksdUQuybVpbmo9RG4oe30pLHVELmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6ZER9LHt0eXBlOm1EfSx7dHlwZTppU30se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbckRdfV19LHt0eXBlOkVTLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOkFTLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbb0RdfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHVELFt7dHlwZTpMXyxhcmdzOlt7fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6ZER9LHt0eXBlOm1EfSx7dHlwZTppU30se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbckRdfV19LHt0eXBlOkVTLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOkFTLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbb0RdfV19XX0pLG51bGwpO2NsYXNzIGdEe2NvbnN0cnVjdG9yKHQsZSxuLG8pe2UuZm9yRWFjaCgoZT0+ZS5mb3JFYWNoKChlPT50LmFkZEVmZmVjdHMoZSkpKSkpfX1nRC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Z0QpKFRyKHVEKSxUcihsRCksVHIoRVMsOCksVHIoQVMsOCkpfSxnRC7JtW1vZD1mbyh7dHlwZTpnRH0pLGdELsm1aW5qPURuKHt9KSxnRC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnVEfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltsRF19XX0se3R5cGU6RVMsZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX0se3R5cGU6QVMsZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZ0QsW3t0eXBlOkxfLGFyZ3M6W3t9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp1RH0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbbERdfV19LHt0eXBlOkVTLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOkFTLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19XX0pLG51bGwpO2NsYXNzIGhEe3N0YXRpYyBmb3JGZWF0dXJlKHQ9W10pe3JldHVybntuZ01vZHVsZTpnRCxwcm92aWRlcnM6W3Qse3Byb3ZpZGU6c0QsbXVsdGk6ITAsdXNlVmFsdWU6dH0se3Byb3ZpZGU6aUQsbXVsdGk6ITAsdXNlVmFsdWU6W119LHtwcm92aWRlOmxELG11bHRpOiEwLHVzZUZhY3Rvcnk6YkQsZGVwczpbTnAsc0QsaURdfV19fXN0YXRpYyBmb3JSb290KHQ9W10pe3JldHVybntuZ01vZHVsZTp1RCxwcm92aWRlcnM6W3twcm92aWRlOmNELHVzZVZhbHVlOkpTfSxtRCxkRCxRUyx0LHtwcm92aWRlOmFELHVzZVZhbHVlOlt0XX0se3Byb3ZpZGU6b0QsdXNlRmFjdG9yeTp5RCxkZXBzOltbbUQsbmV3IEJyLG5ldyBqcl0sW2FELG5ldyBWcl1dfSx7cHJvdmlkZTppRCxtdWx0aTohMCx1c2VWYWx1ZTpbXX0se3Byb3ZpZGU6ckQsdXNlRmFjdG9yeTpiRCxkZXBzOltOcCxhRCxpRF19XX19fWZ1bmN0aW9uIGJEKHQsZSxuKXtjb25zdCBvPVtdO2Zvcihjb25zdCB0IG9mIGUpby5wdXNoKC4uLnQpO2Zvcihjb25zdCB0IG9mIG4pby5wdXNoKC4uLnQpO3JldHVybihmdW5jdGlvbiBpKHQsZSl7cmV0dXJuIGUubWFwKChlPT50LmdldChlKSkpfSkodCxvKX1mdW5jdGlvbiB5RCh0LGUpe2lmKCEoMT09PWUubGVuZ3RoJiYwPT09ZVswXS5sZW5ndGgpJiZ0KXRocm93IG5ldyBUeXBlRXJyb3IoIkVmZmVjdHNNb2R1bGUuZm9yUm9vdCgpIGNhbGxlZCB0d2ljZS4gRmVhdHVyZSBtb2R1bGVzIHNob3VsZCB1c2UgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKCkgaW5zdGVhZC4iKTtyZXR1cm4iZ3VhcmRlZCJ9dmFyIF9EO2hELsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxoRCl9LGhELsm1bW9kPWZvKHt0eXBlOmhEfSksaEQuybVpbmo9RG4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoaEQsW3t0eXBlOkxfLGFyZ3M6W3t9XX1dLG51bGwsbnVsbCksKGZ1bmN0aW9uKHQpe3RbdC5VTktOT1dOPTBdPSJVTktOT1dOIix0W3QuRVhQRVJJTUVOVFM9MV09IkVYUEVSSU1FTlRTIix0W3QuRVhQRVJJTUVOVD0yXT0iRVhQRVJJTUVOVCIsdFt0LkNPTVBBUkVfRVhQRVJJTUVOVD0zXT0iQ09NUEFSRV9FWFBFUklNRU5UIix0W3QuTk9UX1NFVD00XT0iTk9UX1NFVCJ9KShfRHx8KF9EPXt9KSk7Y29uc3QgQ0Q9ImRlZmF1bHRFeHBlcmltZW50SWQiO2Z1bmN0aW9uIE1EKHQpe3JldHVybiB0LnNwbGl0KCIsIikubWFwKCh0PT57Y29uc3QgZT10LmluZGV4T2YoIjoiKTtpZihlPDApdGhyb3cgbmV3IEVycm9yKGBFeHBlY3QgY29sb24gZGVsaW1pdGluZyBuYW1lIGFuZCBJRDogJHt0fWApO2NvbnN0IG49dC5zbGljZSgwLGUpLG89dC5zbGljZShlKzEpO2lmKCFvKXRocm93IG5ldyBFcnJvcihgRXhwZWN0IGlkIHRvIGJlIG5vbi1mYWxzeTogJHt0fWApO3JldHVybntuYW1lOm4saWQ6b319KSl9ZnVuY3Rpb24gdkQodCxlKXtzd2l0Y2godCl7Y2FzZSBfRC5FWFBFUklNRU5UOnJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSwiZXhwZXJpbWVudElkIik/W2UuZXhwZXJpbWVudElkXTpbQ0RdO2Nhc2UgX0QuQ09NUEFSRV9FWFBFUklNRU5UOnJldHVybiBNRChlLmV4cGVyaW1lbnRJZHMpLm1hcCgoKHtpZDp0fSk9PnQpKTtjYXNlIF9ELkVYUEVSSU1FTlRTOmRlZmF1bHQ6cmV0dXJuIG51bGx9fWZ1bmN0aW9uIHhEKHQsZSl7aWYoIXR8fCFlKXJldHVybiB0PT09ZTtpZih0LnJvdXRlS2luZCE9PWUucm91dGVLaW5kKXJldHVybiExO2NvbnN0IG49dkQodC5yb3V0ZUtpbmQsdC5wYXJhbXMpLG89dkQoZS5yb3V0ZUtpbmQsZS5wYXJhbXMpO2lmKG51bGw9PT1ufHxudWxsPT09bylyZXR1cm4gbj09PW87aWYobi5sZW5ndGghPT1vLmxlbmd0aClyZXR1cm4hMTtjb25zdCBpPW8uc29ydCgpO3JldHVybiBuLnNvcnQoKS5ldmVyeSgoKHQsZSk9PmlbZV09PT10KSl9Y29uc3QgT0Q9e2dldEhyZWY6KCk9PndpbmRvdy5sb2NhdGlvbi5ocmVmfTtjbGFzcyBQRHtnZXRIcmVmKCl7cmV0dXJuIE9ELmdldEhyZWYoKX1nZXRTZWFyY2goKXtjb25zdCB0PW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCksZT1bXTtyZXR1cm4gdC5mb3JFYWNoKCgodCxuKT0+e2UucHVzaCh7a2V5Om4sdmFsdWU6dH0pfSkpLGV9Z2V0SGFzaCgpe3JldHVybiB3aW5kb3cubG9jYXRpb24uaGFzaH1nZXRQYXRoKCl7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX1nZXRIaXN0b3J5U3RhdGUoKXtyZXR1cm4gd2luZG93Lmhpc3Rvcnkuc3RhdGV9cmVwbGFjZVN0YXRlVXJsKHQpe3dpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh3aW5kb3cuaGlzdG9yeS5zdGF0ZSwiIix0KX1wdXNoU3RhdGVVcmwodCl7d2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKG51bGwsIiIsdCl9cmVwbGFjZVN0YXRlRGF0YSh0KXt3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUodCwiIil9b25Qb3BTdGF0ZSgpe3JldHVybiBsZSh3aW5kb3csInBvcHN0YXRlIikucGlwZShWdCgodD0+KHtwYXRobmFtZTp0aGlzLmdldFBhdGgoKSxzdGF0ZTp0LnN0YXRlfSkpKSl9Z2V0UmVzb2x2ZWRQYXRoKHQpe3JldHVybiBuZXcgVVJMKHQsT0QuZ2V0SHJlZigpKS5wYXRobmFtZX1nZXRGdWxsUGF0aEZyb21Sb3V0ZSh0LGUpe2NvbnN0IG49dGhpcy5nZXRSZXNvbHZlZFBhdGgodC5wYXRobmFtZSk7bGV0IG89IiI7dC5xdWVyeVBhcmFtcy5sZW5ndGgmJihvPSI/IisoZnVuY3Rpb24gaSh0KXtjb25zdCBlPW5ldyBVUkxTZWFyY2hQYXJhbXM7Zm9yKGNvbnN0e2tleTpuLHZhbHVlOm99b2YgdCllLmFwcGVuZChuLG8pO3JldHVybiBlfSkodC5xdWVyeVBhcmFtcykudG9TdHJpbmcoKSk7cmV0dXJuYCR7bn0ke299JHtlP3RoaXMuZ2V0SGFzaCgpOiIifWB9fVBELsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxQRCl9LFBELsm1cHJvdj1Tbih7dG9rZW46UEQsZmFjdG9yeTpQRC7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoUEQsW3t0eXBlOlVtfV0sbnVsbCxudWxsKTtjbGFzcyB3RHtjb25zdHJ1Y3Rvcih0KXt0aGlzLmFwcFJvb3Q9dGhpcy5nZXRBcHBSb290RnJvbU1ldGFFbGVtZW50KHQpfWdldEFwcFJvb3RGcm9tTWV0YUVsZW1lbnQodCl7Y29uc3QgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdoZWFkIG1ldGFbbmFtZT0idGItcmVsYXRpdmUtcm9vdCJdJyk7aWYoIWUpcmV0dXJuIi8iO2NvbnN0e3BhdGhuYW1lOm59PW5ldyBVUkwoZS5jb250ZW50LHQuZ2V0SHJlZigpKTtyZXR1cm4gbi5yZXBsYWNlKC9cLyokLywiLyIpfWdldEFic1BhdGhuYW1lV2l0aEFwcFJvb3QodCl7cmV0dXJuIHRoaXMuYXBwUm9vdC5zbGljZSgwLC0xKSt0fWdldEFwcFJvb3RsZXNzUGF0aG5hbWUodCl7cmV0dXJuIHQuc3RhcnRzV2l0aCh0aGlzLmFwcFJvb3QpPyIvIit0LnNsaWNlKHRoaXMuYXBwUm9vdC5sZW5ndGgpOnR9fXdELsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx3RCkoVHIoUEQpKX0sd0QuybVwcm92PVNuKHt0b2tlbjp3RCxmYWN0b3J5OndELsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih3RCxbe3R5cGU6VW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6UER9XX0pLG51bGwpO2NsYXNzIGtEIGV4dGVuZHMgd0R7Z2V0QXBwUm9vdCgpe3JldHVybiB0aGlzLmFwcFJvb3R9c2V0QXBwUm9vdCh0KXt0aGlzLmFwcFJvb3Q9dH19a0QuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PVVhKGtEKSkpKG58fGtEKX19KSgpLGtELsm1cHJvdj1Tbih7dG9rZW46a0QsZmFjdG9yeTprRC7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoa0QsW3t0eXBlOlVtfV0sbnVsbCxudWxsKTtjbGFzcyBTRHt9U0QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFNEKX0sU0QuybVtb2Q9Zm8oe3R5cGU6U0R9KSxTRC7JtWluaj1Ebih7cHJvdmlkZXJzOltQRF19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFNELFt7dHlwZTpMXyxhcmdzOlt7cHJvdmlkZXJzOltQRF19XX1dLG51bGwsbnVsbCk7Y2xhc3MgRER7fURELsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxERCl9LERELsm1bW9kPWZvKHt0eXBlOkREfSksREQuybVpbmo9RG4oe3Byb3ZpZGVyczpbd0RdLGltcG9ydHM6W1tTRF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihERCxbe3R5cGU6TF8sYXJnczpbe2ltcG9ydHM6W1NEXSxwcm92aWRlcnM6W3dEXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKERELHtpbXBvcnRzOltTRF19KTtjb25zdCBSRD1uZXcgZXIoIltBcHAgUm91dGluZ10gRGlydHkgVXBkYXRlcyIpO2NsYXNzIEVEe2NvbnN0cnVjdG9yKHQpe3RoaXMuZGlydHlVcGRhdGVzU2VsZWN0b3JGYWN0b3JpZXM9dH1nZXREaXJ0eVVwZGF0ZXNTZWxlY3RvcnMoKXt2YXIgdDtyZXR1cm4gbnVsbCE9PSh0PXRoaXMuZGlydHlVcGRhdGVzU2VsZWN0b3JGYWN0b3JpZXMpJiZ2b2lkIDAhPT10P3Q6W119c3RhdGljIHJlZ2lzdGVyRGlydHlVcGRhdGVzKHQpe3JldHVybntuZ01vZHVsZTpFRCxwcm92aWRlcnM6W3twcm92aWRlOlJELG11bHRpOiEwLHVzZUZhY3Rvcnk6dH1dfX19RUQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEVEKShUcihSRCw4KSl9LEVELsm1bW9kPWZvKHt0eXBlOkVEfSksRUQuybVpbmo9RG4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoRUQsW3t0eXBlOkxffV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltSRF19XX1dfSksbnVsbCk7Y29uc3QgQUQ9ImZlYXR1cmUiLFREPV9TKEFEKSxORD1iUyhURCwodD0+dC5pc0ZlYXR1cmVGbGFnc0xvYWRlZCkpLHpEPWJTKFRELCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5kZWZhdWx0RmxhZ3MpLHQuZmxhZ092ZXJyaWRlcykpKSxJRD1iUyhURCwodD0+dC5mbGFnT3ZlcnJpZGVzfHx7fSkpLEhEPWJTKHpELCh0PT50LmlzQXV0b0RhcmtNb2RlQWxsb3dlZCkpLEZEPWJTKHpELCh0PT5udWxsIT09dC5lbmFibGVEYXJrTW9kZU92ZXJyaWRlP3QuZW5hYmxlRGFya01vZGVPdmVycmlkZTp0LmRlZmF1bHRFbmFibGVEYXJrTW9kZSkpLExEPWJTKHpELCh0PT50LmVuYWJsZURhcmtNb2RlT3ZlcnJpZGUpKSxCRD1iUyh6RCwodD0+dC5lbmFibGVkRXhwZXJpbWVudGFsUGx1Z2lucykpLFZEPWJTKHpELCh0PT50LmluQ29sYWIpKSxqRD1iUyh6RCwodD0+dC5lbmFibGVkQ29sb3JHcm91cCkpLFVEPWJTKHpELCh0PT50LmVuYWJsZWRDb2xvckdyb3VwQnlSZWdleCkpLFdEPWJTKHpELCh0PT50Lm1ldHJpY3NJbWFnZVN1cHBvcnRFbmFibGVkKSksR0Q9YlMoekQsKHQ9PnQuZW5hYmxlZExpbmtlZFRpbWUpKSxZRD1iUyh6RCwodD0+dC5lbmFibGVUaW1lU2VyaWVzUHJvbW90aW9uKSkscUQ9YlMoekQsKHQ9PnQuZW5hYmxlZENhcmRXaWR0aFNldHRpbmcpKSxaRD1iUyh6RCwodD0+dC5lbmFibGVkVGltZU5hbWVzcGFjZWRTdGF0ZSkpLFhEPV9rKCJbQXBwIFJvdXRpbmddIERpc2NhcmRpbmcgVW5zYXZlZCBVcGRhdGVzIiksS0Q9X2soIltBcHAgUm91dGluZ10gU3RhdGUgUmVoeWRyYXRlZCBGcm9tIFVybCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLEpEPV9rKCJbQXBwIFJvdXRpbmddIFJvdXRlIENvbmZpZyBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxRRD1faygiW0FwcCBSb3V0aW5nXSBJbiBBcHAgTmF2aWdhdGlvbiBSZXF1ZXN0ZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSwkRD1faygiW0FwcCBSb3V0aW5nXSBJbiBBcHAgTmF2aWdhdGluZyIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLHRSPV9rKCJbQXBwIFJvdXRpbmddIEluIEFwcCBOYXZpZ2F0ZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxlUj1uZXcgZXIoIltBcHAgUm91dGluZ10gUHJvZ3JhbW1hdGljYWwgTmF2aWdhdGlvbiBQcm92aWRlciIpO2NsYXNzIG5Se2NvbnN0cnVjdG9yKHQpe3RoaXMucHJvdmlkZXJzPW5ldyBNYXA7Zm9yKGNvbnN0IGUgb2YgdHx8W10pe2lmKHRoaXMucHJvdmlkZXJzLmhhcyhlLmFjdGlvbkNyZWF0b3IudHlwZSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYCIke2UuYWN0aW9uQ3JlYXRvci50eXBlfSIgaXMgYWxyZWFkeSByZWdpc3RlcmVkIGZvciBuYXYuIE11bHRpcGxlIG5hdmlnYXRpb25zIG9uIHNhbWUga2ljayBpcyBub3QgYWxsb3dlZC5gKTt0aGlzLnByb3ZpZGVycy5zZXQoZS5hY3Rpb25DcmVhdG9yLnR5cGUsZS5sYW1iZGEpfX1nZXROYXZpZ2F0aW9uKHQpe2NvbnN0IGU9dGhpcy5wcm92aWRlcnMuZ2V0KHQudHlwZSk7cmV0dXJuIGU/ZSh0KTpudWxsfXN0YXRpYyByZWdpc3RlclByb2dyYW1tYXRpY2FsTmF2aWdhdGlvbih0KXtyZXR1cm57bmdNb2R1bGU6blIscHJvdmlkZXJzOlt7cHJvdmlkZTplUixtdWx0aTohMCx1c2VGYWN0b3J5OnR9XX19fWZ1bmN0aW9uIG9SKHQpe3JldHVybiBudWxsIT10LnJvdXRlS2luZH1mdW5jdGlvbiBpUih0KXtyZXR1cm4gZFIodCkubWFwKCh0PT57Y29uc3QgZT10LnN0YXJ0c1dpdGgoIjoiKTtyZXR1cm4gZT97cGF0aFBhcnQ6dCxpc1BhcmFtOiEwLHBhcmFtTmFtZTp0LnNsaWNlKDEpfTp7cGF0aFBhcnQ6dCxpc1BhcmFtOmV9fSkpfW5SLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxuUikoVHIoZVIsOCkpfSxuUi7JtW1vZD1mbyh7dHlwZTpuUn0pLG5SLsm1aW5qPURuKHt9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKG5SLFt7dHlwZTpMXyxhcmdzOlt7fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltlUl19XX1dfSksbnVsbCk7Y2xhc3MgYVJ7Y29uc3RydWN0b3IodCl7dGhpcy52YWxpZGF0ZUNvbmZpZyh0KSx0aGlzLnBhdGhGcmFnbWVudHM9aVIodC5wYXRoKSx0aGlzLnBhdGhNYXRjaGVycz10aGlzLmdldFBhdGhNYXRjaGVycyh0aGlzLnBhdGhGcmFnbWVudHMpfXN0YXRpYyBnZXRNYXRjaGVyKHQpe3JldHVybiBvUih0KT9uZXcgclIodCk6KGZ1bmN0aW9uIGUodCl7cmV0dXJuIHZvaWQgMCE9PXQucmVkaXJlY3Rpb25QYXRofSkodCk/bmV3IHNSKHQpOm5ldyBsUih0KX12YWxpZGF0ZUNvbmZpZyh7cGF0aDp0fSl7aWYoIXQuc3RhcnRzV2l0aCgiLyIpKXRocm93IG5ldyBSYW5nZUVycm9yKGBjb25maWcucGF0aCBzaG91bGQgc3RhcnQgd2l0aCAnLycuICR7dH1gKTtsZXQgZT0wO2Zvcig7KGU9dC5pbmRleE9mKCI6IixlKzEpKT49MDspe2lmKCIvIiE9PXRbZS0xXSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgY29uZmlnLnBhdGggcGFyYW1ldGVyIHNob3VsZCBjb21lIGFmdGVyICcvJy4gJHt0fWApO2lmKHZvaWQgMD09PXRbZSsxXXx8Ii8iPT09dFtlKzFdKXRocm93IG5ldyBSYW5nZUVycm9yKGBjb25maWcucGF0aCBwYXJhbWV0ZXIgc2hvdWxkIGhhdmUgbm9uLWVtcHR5IG5hbWUuICR7dH1gKX19Z2V0UGF0aE1hdGNoZXJzKHQpe3JldHVybiB0Lm1hcCgodD0+e2NvbnN0e3BhdGhQYXJ0OmV9PXQ7cmV0dXJuIHQuaXNQYXJhbT9lPT4oe2lzUGFyYW1QYXRoUGFydDohMCxwYXJ0TWF0Y2hlZDohMCxwYXJhbU5hbWU6dC5wYXJhbU5hbWUscGFyYW1WYWx1ZTplfSk6dD0+KHtpc1BhcmFtUGF0aFBhcnQ6ITEscGFydE1hdGNoZWQ6dD09PWV9KX0pKX1tYXRjaCh0KXtsZXQgZT17fTtpZih0aGlzLnBhdGhNYXRjaGVycy5sZW5ndGghPT10Lmxlbmd0aClyZXR1cm57cmVzdWx0OiExfTtsZXQgbj0wO2Zvcihjb25zdCBvIG9mIHRoaXMucGF0aE1hdGNoZXJzKXtjb25zdCBpPW8odFtuKytdKTtpZighaS5wYXJ0TWF0Y2hlZClyZXR1cm57cmVzdWx0OiExfTtpLmlzUGFyYW1QYXRoUGFydCYmKGU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHtbaS5wYXJhbU5hbWVdOmkucGFyYW1WYWx1ZX0pKX1yZXR1cm57cmVzdWx0OiEwLHBhcmFtczplLHBhdGhQYXJ0czp0LGlzUmVkaXJlY3Rpb246ITEscmVkaXJlY3Rpb25RdWVyeVBhcmFtczp2b2lkIDB9fW1hdGNoQnlQYXJhbXModCl7cmV0dXJue3Jlc3VsdDohMCxwYXJhbXM6dCxwYXRoUGFydHM6dGhpcy5yZXByb2plY3RQYXRoQnlQYXJhbXModGhpcy5wYXRoRnJhZ21lbnRzLHQpLGlzUmVkaXJlY3Rpb246ITEscmVkaXJlY3Rpb25RdWVyeVBhcmFtczp2b2lkIDB9fXJlcHJvamVjdFBhdGhCeVBhcmFtcyh0LGUpe2NvbnN0IG49W107Zm9yKGNvbnN0IG8gb2YgdClpZihvLmlzUGFyYW0pe2NvbnN0e3BhcmFtTmFtZTp0fT1vO2lmKCFlLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBSYW5nZUVycm9yKGBGYWlsZWQgdG8gcmVwcm9qZWN0IHBhcmFtZXRlci4gIiR7dH0iIHBhcmFtZXRlciBzaG91bGQgYmUgcHJlc2VudC5gKTtuLnB1c2goZVt0XSl9ZWxzZSBuLnB1c2goby5wYXRoUGFydCk7cmV0dXJuIG59fWNsYXNzIHJSIGV4dGVuZHMgYVJ7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5kZWZpbml0aW9uPXR9fWNsYXNzIHNSIGV4dGVuZHMgYVJ7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5kZWZpbml0aW9uPXQsdGhpcy5yZWRpcmVjdGlvbkZyYWdtZW50cz1pUih0LnJlZGlyZWN0aW9uUGF0aCl9bWF0Y2godCl7Y29uc3QgZT1zdXBlci5tYXRjaCh0KTtpZighZS5yZXN1bHQpcmV0dXJuIGU7Y29uc3Qgbj10aGlzLnJlcHJvamVjdFBhdGhCeVBhcmFtcyh0aGlzLnJlZGlyZWN0aW9uRnJhZ21lbnRzLGUucGFyYW1zKTtyZXR1cm57cmVzdWx0OiEwLHBhcmFtczplLnBhcmFtcyxwYXRoUGFydHM6bixpc1JlZGlyZWN0aW9uOiEwLHJlZGlyZWN0aW9uUXVlcnlQYXJhbXM6dm9pZCAwfX19Y2xhc3MgbFIgZXh0ZW5kcyBhUntjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLmRlZmluaXRpb249dH1tYXRjaCh0KXtjb25zdCBlPXN1cGVyLm1hdGNoKHQpO2lmKCFlLnJlc3VsdClyZXR1cm4gZTtjb25zdHtwYXRoUGFydHM6bixxdWVyeVBhcmFtczpvfT10aGlzLmRlZmluaXRpb24ucmVkaXJlY3Rvcih0KTtyZXR1cm57cmVzdWx0OiEwLHBhcmFtczplLnBhcmFtcyxwYXRoUGFydHM6bixpc1JlZGlyZWN0aW9uOiEwLHJlZGlyZWN0aW9uUXVlcnlQYXJhbXM6b319fWNsYXNzIGNSe2NvbnN0cnVjdG9yKHQsZT0zKXtpZih0aGlzLm1heFJlZGlyZWN0aW9uPWUsZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJtYXhSZWRpcmVjdGlvbiBoYXMgdG8gYmUgbm9uLW5lZ2F0aXZlIG51bWJlciIpO3RoaXMudmFsaWRhdGVSb3V0ZUNvbmZpZ3ModCksdGhpcy5kZWZhdWx0Um91dGVDb25maWc9bnVsbCx0aGlzLnJvdXRlS2luZFRvQ29uY3JldGVDb25maWdNYXRjaGVycz1uZXcgTWFwLHRoaXMuY29uZmlnTWF0Y2hlcnM9W107Zm9yKGNvbnN0IGUgb2YgdCl7Y29uc3QgdD1hUi5nZXRNYXRjaGVyKGUpO3RoaXMuY29uZmlnTWF0Y2hlcnMucHVzaCh0KSx0IGluc3RhbmNlb2YgclImJih0aGlzLnJvdXRlS2luZFRvQ29uY3JldGVDb25maWdNYXRjaGVycy5zZXQodC5kZWZpbml0aW9uLnJvdXRlS2luZCx0KSx0LmRlZmluaXRpb24uZGVmYXVsdFJvdXRlJiYodGhpcy5kZWZhdWx0Um91dGVDb25maWc9dCkpfX12YWxpZGF0ZVJvdXRlQ29uZmlncyh0KXtjb25zdCBlPXQuZmlsdGVyKG9SKSxuPWUuZmlsdGVyKCh0PT50LmRlZmF1bHRSb3V0ZSkpO2lmKG4ubGVuZ3RoPjEpe2NvbnN0IHQ9bi5tYXAoKCh7cGF0aDp0fSk9PnQpKS5qb2luKCIsICIpO3Rocm93IG5ldyBSYW5nZUVycm9yKGBUaGVyZSBhcmUgbW9yZSB0aGFuIG9uZSBkZWZhdWx0Um91dGVzLiAke3R9YCl9aWYoMT09PW4ubGVuZ3RoKXtjb25zdHtwYXRoOnR9PW5bMF07aWYoQm9vbGVhbihpUih0KS5maW5kKCgoe2lzUGFyYW06dH0pPT50KSkpKXRocm93IG5ldyBSYW5nZUVycm9yKGBBIGRlZmF1bHRSb3V0ZSBjYW5ub3QgaGF2ZSBhbnkgcGFyYW1zLiAke3R9YCl9Y29uc3Qgbz1uZXcgU2V0O2Zvcihjb25zdHtyb3V0ZUtpbmQ6dH1vZiBlKXtpZihvLmhhcyh0KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgTXVsdGlwbGUgcm91dGUgY29uZmlndXJhdGlvbiBmb3Iga2luZDogJHt0fS4gQ29uZmlndXJhdGlvbnMgc2hvdWxkIGhhdmUgdW5pcXVlIHJvdXRlS2luZHNgKTtvLmFkZCh0KX19bWF0Y2godCl7dmFyIGU7aWYoIXQucGF0aG5hbWUuc3RhcnRzV2l0aCgiLyIpKXRocm93IG5ldyBSYW5nZUVycm9yKCdOYXZpZ2F0aW9uIGhhcyB0byBtYWRlIHdpdGggcGF0aG5hbWUgdGhhdCBzdGFydHMgd2l0aCAiLyInKTtsZXQgbixvPWRSKHQucGF0aG5hbWUpLGk9MCxhPSExO2Zvcig7Oyl7bGV0IHQ9ITE7Zm9yKGNvbnN0IGUgb2YgdGhpcy5jb25maWdNYXRjaGVycyl7Y29uc3QgaT1lLm1hdGNoKG8pO2lmKGkucmVzdWx0KXt0PSEwO2NvbnN0e3BhcmFtczpyLHBhdGhQYXJ0czpzLGlzUmVkaXJlY3Rpb246bH09aTtpZihsKXtvPXMsYT0hMCxuPWkucmVkaXJlY3Rpb25RdWVyeVBhcmFtczticmVha31pZighKGUgaW5zdGFuY2VvZiByUikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk5vIGNvbmNyZXRlIHJvdXRlIGRlZmluaXRpb24gYG1hdGNoYCByZXR1cm4gcmVkaXJlY3Rpb24iKTtjb25zdHtkZWZpbml0aW9uOmN9PWUsZD17cm91dGVLaW5kOmMucm91dGVLaW5kLHBhcmFtczpyLHBhdGhuYW1lOnBSKHMpLGRlZXBMaW5rUHJvdmlkZXI6Yy5kZWVwTGlua1Byb3ZpZGVyfHxudWxsfTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGQpLGE/e29yaWdpbmF0ZUZyb21SZWRpcmVjdGlvbjohMCxyZWRpcmVjdGlvbk9ubHlRdWVyeVBhcmFtczpufTp7b3JpZ2luYXRlRnJvbVJlZGlyZWN0aW9uOiExfSl9fWlmKGEmJmkrKywhdHx8aT50aGlzLm1heFJlZGlyZWN0aW9uKWJyZWFrfWlmKGk+dGhpcy5tYXhSZWRpcmVjdGlvbil0aHJvdyBuZXcgRXJyb3IoYFBvdGVudGlhbCByZWRpcmVjdGlvbiBsb29wIChyZWRpcmVjdGluZyBtb3JlIHRoYW4gJHt0aGlzLm1heFJlZGlyZWN0aW9ufSB0aW1lcy4gUGxlYXNlIGRvIG5vdCBoYXZlIGN5Y2xlcyBpbiB0aGUgcm91dGVzLmApO2lmKHRoaXMuZGVmYXVsdFJvdXRlQ29uZmlnKXtjb25zdHtkZWZpbml0aW9uOnR9PXRoaXMuZGVmYXVsdFJvdXRlQ29uZmlnO3JldHVybntyb3V0ZUtpbmQ6dC5yb3V0ZUtpbmQsZGVlcExpbmtQcm92aWRlcjpudWxsIT09KGU9dC5kZWVwTGlua1Byb3ZpZGVyKSYmdm9pZCAwIT09ZT9lOm51bGwscGF0aG5hbWU6dC5wYXRoLHBhcmFtczp7fSxvcmlnaW5hdGVGcm9tUmVkaXJlY3Rpb246ITAscmVkaXJlY3Rpb25Pbmx5UXVlcnlQYXJhbXM6dm9pZCAwfX1yZXR1cm4gbnVsbH1tYXRjaEJ5Um91dGVLaW5kKHQsZSl7Y29uc3Qgbj10aGlzLnJvdXRlS2luZFRvQ29uY3JldGVDb25maWdNYXRjaGVycy5nZXQodCk7aWYoIW4pdGhyb3cgbmV3IFJhbmdlRXJyb3IoYFJlcXVpcmVzIGNvbmZpZ3VyYXRpb24gZm9yIHJvdXRlS2luZDogJHt0fWApO3JldHVybntyb3V0ZUtpbmQ6dCxwYXJhbXM6ZSxwYXRobmFtZTpwUihuLm1hdGNoQnlQYXJhbXMoZSkucGF0aFBhcnRzKSxkZWVwTGlua1Byb3ZpZGVyOm4uZGVmaW5pdGlvbi5kZWVwTGlua1Byb3ZpZGVyfHxudWxsLG9yaWdpbmF0ZUZyb21SZWRpcmVjdGlvbjohMX19fWZ1bmN0aW9uIGRSKHQpe3JldHVybiB0LnNwbGl0KCIvIikuc2xpY2UoMSl9ZnVuY3Rpb24gcFIodCl7cmV0dXJuIi8iK3Quam9pbigiLyIpfWNvbnN0IG1SPW5ldyBlcigiW0FwcCBSb3V0aW5nXSBSb3V0ZSBDb25maWciKTtjbGFzcyBmUntjb25zdHJ1Y3Rvcih0KXtpZih0aGlzLnJvdXRlS2luZFRvTmdDb21wb25lbnQ9bmV3IE1hcCwhdClyZXR1cm4gdm9pZCh0aGlzLnJvdXRlQ29uZmlncz1uZXcgY1IoW10pKTtjb25zdCBlPVtdO2Zvcihjb25zdCBuIG9mIHQpZm9yKGNvbnN0IHQgb2YgbillLnB1c2godCk7dGhpcy5yb3V0ZUNvbmZpZ3M9bmV3IGNSKGUpLGUuZm9yRWFjaCgodD0+e29SKHQpJiZ0aGlzLnJvdXRlS2luZFRvTmdDb21wb25lbnQuc2V0KHQucm91dGVLaW5kLHQubmdDb21wb25lbnQpfSkpfWdldFJlZ2lzdGVyZWRSb3V0ZUtpbmRzKCl7cmV0dXJuIHRoaXMucm91dGVLaW5kVG9OZ0NvbXBvbmVudC5rZXlzKCl9Z2V0Um91dGVDb25maWdzKCl7cmV0dXJuIHRoaXMucm91dGVDb25maWdzfWdldE5nQ29tcG9uZW50QnlSb3V0ZUtpbmQodCl7cmV0dXJuIHRoaXMucm91dGVLaW5kVG9OZ0NvbXBvbmVudC5nZXQodCl8fG51bGx9c3RhdGljIHJlZ2lzdGVyUm91dGVzKHQpe3JldHVybntuZ01vZHVsZTpmUixwcm92aWRlcnM6W3twcm92aWRlOm1SLG11bHRpOiEwLHVzZUZhY3Rvcnk6dH1dfX19ZlIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGZSKShUcihtUiw4KSl9LGZSLsm1bW9kPWZvKHt0eXBlOmZSfSksZlIuybVpbmo9RG4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZlIsW3t0eXBlOkxfLGFyZ3M6W3t9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W21SXX1dfV19KSxudWxsKTtjb25zdCB1Uj0iYXBwX3JvdXRpbmciLGdSPV9TKHVSKSxoUj1iUyhnUiwodD0+dC5hY3RpdmVSb3V0ZSkpLGJSPWJTKGdSLCh0PT50Lm5leHRSb3V0ZSkpLHlSPWJTKGdSLCh0PT50LmFjdGl2ZU5hbWVzcGFjZUlkKSksX1I9YlMoZ1IsKHQ9PnQua25vd25OYW1lc3BhY2VJZHMpKSxDUj1iUyhnUiwodD0+dC5yZWdpc3RlcmVkUm91dGVLZXlzKSksTVI9YlMoaFIsKHQ9PnQ/dC5yb3V0ZUtpbmQ6X0QuTk9UX1NFVCkpLHZSPWJTKGhSLCh0PT50P3QucGFyYW1zOnt9KSkseFI9YlMoTVIsdlIsKCh0LGUpPT52RCh0LGUpKSk7YlMoTVIsdlIsKCh0LGUpPT57aWYodCE9PV9ELkNPTVBBUkVfRVhQRVJJTUVOVClyZXR1cm57fTtjb25zdCBuPShmdW5jdGlvbiBvKHQpe2NvbnN0IGU9bmV3IE1hcCxuPU1EKHQuZXhwZXJpbWVudElkcyk7Zm9yKGNvbnN0e2lkOnQsbmFtZTpvfW9mIG4pbyYmZS5zZXQodCxvKTtyZXR1cm4gZX0pKGUpO3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMobi5lbnRyaWVzKCkpfSkpO2NvbnN0IE9SPWJTKE1SLHZSLCgodCxlKT0+e2lmKHQhPT1fRC5DT01QQVJFX0VYUEVSSU1FTlQpcmV0dXJue307Y29uc3Qgbj0oZnVuY3Rpb24gbyh0KXtjb25zdCBlPW5ldyBNYXAsbj1NRCh0LmV4cGVyaW1lbnRJZHMpO2xldCBvPTA7Zm9yKGNvbnN0e2lkOnQsbmFtZTppfW9mIG4pbysrLCFlLmhhcyh0KSYmaSYmZS5zZXQodCx7YWxpYXNUZXh0OmksYWxpYXNOdW1iZXI6b30pO3JldHVybiBlfSkoZSk7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhuLmVudHJpZXMoKSl9KSksUFI9X2soIltBcHAgUm91dGluZ10gRWZmZWN0cyBJbml0Iik7dmFyIHdSOyEoZnVuY3Rpb24odCl7dFt0LlVOQ0hBTkdFRD0wXT0iVU5DSEFOR0VEIix0W3QuTkVXPTFdPSJORVciLHRbdC5GUk9NX0hJU1RPUlk9Ml09IkZST01fSElTVE9SWSJ9KSh3Unx8KHdSPXt9KSk7Y2xhc3Mga1J7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscil7dGhpcy5hY3Rpb25zJD10LHRoaXMuc3RvcmU9ZSx0aGlzLmxvY2F0aW9uPW4sdGhpcy5kaXJ0eVVwZGF0ZXNSZWdpc3RyeT1vLHRoaXMucmVnaXN0cnk9aSx0aGlzLnByb2dyYW1tYXRpY2FsTmF2TW9kdWxlPWEsdGhpcy5hcHBSb290UHJvdmlkZXI9cix0aGlzLm9uTmF2aWdhdGlvblJlcXVlc3RlZCQ9dGhpcy5hY3Rpb25zJC5waXBlKCRTKFFEKSxWdCgodD0+e3ZhciBlO3JldHVybntwYXRobmFtZTp0LnBhdGhuYW1lLnN0YXJ0c1dpdGgoIi8iKT90aGlzLmFwcFJvb3RQcm92aWRlci5nZXRBYnNQYXRobmFtZVdpdGhBcHBSb290KHQucGF0aG5hbWUpOnRoaXMubG9jYXRpb24uZ2V0UmVzb2x2ZWRQYXRoKHQucGF0aG5hbWUpLG9wdGlvbnM6e2Jyb3dzZXJJbml0aWF0ZWQ6ITEscmVwbGFjZVN0YXRlOm51bGwhPT0oZT10LnJlcGxhY2VTdGF0ZSkmJnZvaWQgMCE9PWUmJmUsbmFtZXNwYWNlVXBkYXRlOntvcHRpb246dC5yZXNldE5hbWVzcGFjZWRTdGF0ZT93Ui5ORVc6d1IuVU5DSEFOR0VEfX19fSkpKSx0aGlzLmJvb3RzdHJhcFJlZHVjZXJzJD1XUygoKCk9PnRoaXMuYWN0aW9ucyQucGlwZSgkUyhQUiksVnQoKCgpPT5KRCh7cm91dGVLaW5kczpuZXcgU2V0KHRoaXMucmVnaXN0cnkuZ2V0UmVnaXN0ZXJlZFJvdXRlS2luZHMoKSl9KSkpKSkpLHRoaXMub25Jbml0JD10aGlzLmFjdGlvbnMkLnBpcGUoJFMoUFIpKS5waXBlKFBlKDApLFZ0KCgoKT0+e3ZhciB0O2NvbnN0IGU9bnVsbD09PSh0PXRoaXMubG9jYXRpb24uZ2V0SGlzdG9yeVN0YXRlKCkpfHx2b2lkIDA9PT10P3ZvaWQgMDp0Lm5hbWVzcGFjZUlkLG49dm9pZCAwPT09ZT97b3B0aW9uOndSLk5FV306e29wdGlvbjp3Ui5GUk9NX0hJU1RPUlksbmFtZXNwYWNlSWQ6ZX07cmV0dXJue3BhdGhuYW1lOnRoaXMubG9jYXRpb24uZ2V0UGF0aCgpLG9wdGlvbnM6e2Jyb3dzZXJJbml0aWF0ZWQ6ITAscmVwbGFjZVN0YXRlOiEwLG5hbWVzcGFjZVVwZGF0ZTpufX19KSkpLHRoaXMub25Qb3BTdGF0ZSQ9dGhpcy5sb2NhdGlvbi5vblBvcFN0YXRlKCkucGlwZShWdCgodD0+e3ZhciBlO3JldHVybntwYXRobmFtZTp0LnBhdGhuYW1lLG9wdGlvbnM6e2Jyb3dzZXJJbml0aWF0ZWQ6ITAscmVwbGFjZVN0YXRlOiEwLG5hbWVzcGFjZVVwZGF0ZTp7b3B0aW9uOndSLkZST01fSElTVE9SWSxuYW1lc3BhY2VJZDpudWxsPT09KGU9dC5zdGF0ZSl8fHZvaWQgMD09PWU/dm9pZCAwOmUubmFtZXNwYWNlSWR9fX19KSkpLHRoaXMudXNlckluaXROYXZSb3V0ZSQ9cGUodGhpcy5vbk5hdmlnYXRpb25SZXF1ZXN0ZWQkLHRoaXMub25Jbml0JCx0aGlzLm9uUG9wU3RhdGUkKS5waXBlKFZ0KCh0PT57aWYoIXQucGF0aG5hbWUuc3RhcnRzV2l0aCgiLyIpKXRocm93IG5ldyBFcnJvcihgW0FwcCByb3V0aW5nXSBwYXRobmFtZSBtdXN0IHN0YXJ0IHdpdGggJy8nLiBHb3Q6ICR7dC5wYXRobmFtZX1gKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtwYXRobmFtZTp0aGlzLmFwcFJvb3RQcm92aWRlci5nZXRBcHBSb290bGVzc1BhdGhuYW1lKHQucGF0aG5hbWUpfSl9KSksVnQoKHQ9Pih7cm91dGVNYXRjaDp0aGlzLnJvdXRlQ29uZmlncy5tYXRjaCh0KSxvcHRpb25zOnQub3B0aW9uc30pKSkpLHRoaXMucHJvZ3JhbW1hdGljYWxOYXZSb3V0ZSQ9dGhpcy5hY3Rpb25zJC5waXBlKFZ0KCh0PT50aGlzLnByb2dyYW1tYXRpY2FsTmF2TW9kdWxlLmdldE5hdmlnYXRpb24odCkpKSx1ZSgodD0+bnVsbCE9PXQpKSxWdCgodD0+e2NvbnN0IGU9dCxuPWUucm91dGVLaW5kO2xldCBvO3N3aXRjaChlLnJvdXRlS2luZCl7Y2FzZSBfRC5DT01QQVJFX0VYUEVSSU1FTlQ6bz17ZXhwZXJpbWVudElkczooaT1lLnJvdXRlUGFyYW1zLmFsaWFzQW5kRXhwZXJpbWVudElkcyxpLm1hcCgoKHthbGlhczp0LGlkOmV9KT0+YCR7dH06JHtlfWApKS5qb2luKCIsIikpfTticmVhaztkZWZhdWx0Om89ZS5yb3V0ZVBhcmFtc312YXIgaTtyZXR1cm57cm91dGVLaW5kOm4scm91dGVQYXJhbXM6b319KSksVnQoKCh7cm91dGVLaW5kOnQscm91dGVQYXJhbXM6ZX0pPT4oe3JvdXRlTWF0Y2g6dGhpcy5yb3V0ZUNvbmZpZ3M/dGhpcy5yb3V0ZUNvbmZpZ3MubWF0Y2hCeVJvdXRlS2luZCh0LGUpOm51bGwsb3B0aW9uczp7cmVwbGFjZVN0YXRlOiExLGJyb3dzZXJJbml0aWF0ZWQ6ITEsbmFtZXNwYWNlVXBkYXRlOntvcHRpb246d1IuVU5DSEFOR0VEfX19KSkpKSx0aGlzLnZhbGlkYXRlZFJvdXRlTWF0Y2gkPXBlKHRoaXMudXNlckluaXROYXZSb3V0ZSQsdGhpcy5wcm9ncmFtbWF0aWNhbE5hdlJvdXRlJCkucGlwZSh1ZSgoKHtyb3V0ZU1hdGNoOnR9KT0+Qm9vbGVhbih0KSkpLFZ0KCgoe3JvdXRlTWF0Y2g6dCxvcHRpb25zOmV9KT0+KHtyb3V0ZU1hdGNoOnQsb3B0aW9uczplfSkpKSksdGhpcy5uYXZpZ2F0ZSQ9V1MoKCgpPT50aGlzLnZhbGlkYXRlZFJvdXRlTWF0Y2gkLnBpcGUocWUodGhpcy5zdG9yZS5zZWxlY3QoaFIpKSwkdCgoKFt0LGVdKT0+e2NvbnN0IG49bnVsbCE9PWUmJnhEKGUsdC5yb3V0ZU1hdGNoKSxvPXRoaXMuZGlydHlVcGRhdGVzUmVnaXN0cnkuZ2V0RGlydHlVcGRhdGVzU2VsZWN0b3JzKCk7cmV0dXJuIG58fCFvLmxlbmd0aD96dCh0KTppZSh0aGlzLmRpcnR5VXBkYXRlc1JlZ2lzdHJ5LmdldERpcnR5VXBkYXRlc1NlbGVjdG9ycygpLm1hcCgodD0+dGhpcy5zdG9yZS5zZWxlY3QodCkucGlwZSh2ZSgxKSkpKSkucGlwZShWdCgodD0+dm9pZCAwIT09dFswXS5leHBlcmltZW50SWRzJiZ0WzBdLmV4cGVyaW1lbnRJZHMubGVuZ3RoPjApKSx1ZSgodD0+e2lmKHQpe2NvbnN0IHQ9d2luZG93LmNvbmZpcm0oIllvdSBoYXZlIHVuc2F2ZWQgZWRpdHMsIGFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkaXNjYXJkIHRoZW0/Iik7cmV0dXJuIHQmJnRoaXMuc3RvcmUuZGlzcGF0Y2goWEQoKSksdH1yZXR1cm4hMH0pKSxWdCgoKCk9PnQpKSl9KSkscWUodGhpcy5zdG9yZS5zZWxlY3QoX1IpKSxXZSgoKFt7cm91dGVNYXRjaDp0LG9wdGlvbnM6ZX0sbl0pPT57Y29uc3Qgbz1lLm5hbWVzcGFjZVVwZGF0ZS5vcHRpb249PT13Ui5GUk9NX0hJU1RPUlkmJm4uaGFzKGUubmFtZXNwYWNlVXBkYXRlLm5hbWVzcGFjZUlkKTtpZighZS5icm93c2VySW5pdGlhdGVkfHxvfHwhdC5kZWVwTGlua1Byb3ZpZGVyKXJldHVybjtjb25zdCBpPXQub3JpZ2luYXRlRnJvbVJlZGlyZWN0aW9uJiZ0LnJlZGlyZWN0aW9uT25seVF1ZXJ5UGFyYW1zP3QucmVkaXJlY3Rpb25Pbmx5UXVlcnlQYXJhbXM6dGhpcy5sb2NhdGlvbi5nZXRTZWFyY2goKSxhPXQuZGVlcExpbmtQcm92aWRlci5kZXNlcmlhbGl6ZVF1ZXJ5UGFyYW1zKGkpO3RoaXMuc3RvcmUuZGlzcGF0Y2goS0Qoe3JvdXRlS2luZDp0LnJvdXRlS2luZCxwYXJ0aWFsU3RhdGU6YX0pKX0pKSxWZSgoKFt7cm91dGVNYXRjaDp0LG9wdGlvbnM6ZX1dKT0+bnVsbD09PXQuZGVlcExpbmtQcm92aWRlcj96dCh7cm91dGU6e3JvdXRlS2luZDp0LnJvdXRlS2luZCxwYXJhbXM6dC5wYXJhbXMscGF0aG5hbWU6dC5wYXRobmFtZSxxdWVyeVBhcmFtczpbXX0sb3B0aW9uczplfSk6dC5kZWVwTGlua1Byb3ZpZGVyLnNlcmlhbGl6ZVN0YXRlVG9RdWVyeVBhcmFtcyh0aGlzLnN0b3JlKS5waXBlKFZ0KCgobixvKT0+KHtyb3V0ZTp7cm91dGVLaW5kOnQucm91dGVLaW5kLHBhcmFtczp0LnBhcmFtcyxwYXRobmFtZTp0LnBhdGhuYW1lLHF1ZXJ5UGFyYW1zOm59LG9wdGlvbnM6MD09PW8/ZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSkse3JlcGxhY2VTdGF0ZTohMCxyZXNldE5hbWVzcGFjZWRTdGF0ZTohMX0pfSkpKSkpKSxXZSgoKHtyb3V0ZTp0fSk9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKCREKHthZnRlcjp0fSkpfSkpLENlKDApKS5waXBlKHFlKHRoaXMuc3RvcmUuc2VsZWN0KGhSKSksVnQoKChbe3JvdXRlOnQsb3B0aW9uczplfSxuXSk9Pih7cHJlc2VydmVIYXNoOm51bGw9PT1ufHxudWxsPT09dHx8eEQobix0KSxyb3V0ZTp0LG9wdGlvbnM6ZX0pKSksV2UoKCh7cHJlc2VydmVIYXNoOnQscm91dGU6ZSxvcHRpb25zOm59KT0+eyEoZnVuY3Rpb24gbyh0LGUpe3JldHVybiB0LnBhdGhuYW1lPT09ZS5wYXRobmFtZSYmdC5xdWVyeVBhcmFtcy5sZW5ndGg9PT1lLnF1ZXJ5UGFyYW1zLmxlbmd0aCYmdC5xdWVyeVBhcmFtcy5ldmVyeSgoKHQsbik9Pntjb25zdCBvPWUucXVlcnlQYXJhbXNbbl07cmV0dXJuIHQua2V5PT09by5rZXkmJnQudmFsdWU9PT1vLnZhbHVlfSkpfSkoZSx7cGF0aG5hbWU6dGhpcy5hcHBSb290UHJvdmlkZXIuZ2V0QXBwUm9vdGxlc3NQYXRobmFtZSh0aGlzLmxvY2F0aW9uLmdldFBhdGgoKSkscXVlcnlQYXJhbXM6dGhpcy5sb2NhdGlvbi5nZXRTZWFyY2goKX0pJiYobi5yZXBsYWNlU3RhdGU/dGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGVVcmwodGhpcy5hcHBSb290UHJvdmlkZXIuZ2V0QWJzUGF0aG5hbWVXaXRoQXBwUm9vdCh0aGlzLmxvY2F0aW9uLmdldEZ1bGxQYXRoRnJvbVJvdXRlKGUsdCkpKTp0aGlzLmxvY2F0aW9uLnB1c2hTdGF0ZVVybCh0aGlzLmFwcFJvb3RQcm92aWRlci5nZXRBYnNQYXRobmFtZVdpdGhBcHBSb290KHRoaXMubG9jYXRpb24uZ2V0RnVsbFBhdGhGcm9tUm91dGUoZSx0KSkpKX0pKSkucGlwZShxZSh0aGlzLnN0b3JlLnNlbGVjdChoUiksdGhpcy5zdG9yZS5zZWxlY3QoeVIpLHRoaXMuc3RvcmUuc2VsZWN0KFpEKSksVnQoKChbe3JvdXRlOnQsb3B0aW9uczplfSxuLG8saV0pPT57Y29uc3QgYT0oZnVuY3Rpb24gcih0LGUsbixvKXtyZXR1cm4gdD9uLm5hbWVzcGFjZVVwZGF0ZS5vcHRpb249PT13Ui5GUk9NX0hJU1RPUlk/bi5uYW1lc3BhY2VVcGRhdGUubmFtZXNwYWNlSWQ6bnVsbD09b3x8bi5uYW1lc3BhY2VVcGRhdGUub3B0aW9uPT09d1IuTkVXP0RhdGUubm93KCkudG9TdHJpbmcoKTpvOihmdW5jdGlvbiBpKHQsZSl7dmFyIG47c3dpdGNoKHQpe2Nhc2UgX0QuQ09NUEFSRV9FWFBFUklNRU5UOmNhc2UgX0QuRVhQRVJJTUVOVDp7Y29uc3Qgbz1udWxsIT09KG49dkQodCxlKSkmJnZvaWQgMCE9PW4/bjpbXTtyZXR1cm4gby5zb3J0KCksYCR7dH0vJHtvLmpvaW4oIiwiKX1gfWNhc2UgX0QuRVhQRVJJTUVOVFM6cmV0dXJuIFN0cmluZyh0KTtjYXNlIF9ELk5PVF9TRVQ6cmV0dXJuIl9fbm90X3NldCI7ZGVmYXVsdDpyZXR1cm4iIn19KShlLnJvdXRlS2luZCxlLnBhcmFtcyl9KShpLHQsZSxvKTtyZXR1cm4gdGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGVEYXRhKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLmxvY2F0aW9uLmdldEhpc3RvcnlTdGF0ZSgpKSx7bmFtZXNwYWNlSWQ6YX0pKSx0Uih7YmVmb3JlOm4sYWZ0ZXI6dCxiZWZvcmVOYW1lc3BhY2VJZDpvLGFmdGVyTmFtZXNwYWNlSWQ6YX0pfSkpKSkpLHRoaXMucm91dGVDb25maWdzPWkuZ2V0Um91dGVDb25maWdzKCl9bmdyeE9uSW5pdEVmZmVjdHMoKXtyZXR1cm4gUFIoKX19a1IuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGtSKShUcihRUyksVHIoaVMpLFRyKFBEKSxUcihFRCksVHIoZlIpLFRyKG5SKSxUcih3RCkpfSxrUi7JtXByb3Y9U24oe3Rva2VuOmtSLGZhY3Rvcnk6a1IuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGtSLFt7dHlwZTpVbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpRU30se3R5cGU6aVN9LHt0eXBlOlBEfSx7dHlwZTpFRH0se3R5cGU6ZlJ9LHt0eXBlOm5SfSx7dHlwZTp3RH1dfSksbnVsbCk7Y29uc3QgU1I9VlMoe2FjdGl2ZVJvdXRlOm51bGwsbmV4dFJvdXRlOm51bGwsYWN0aXZlTmFtZXNwYWNlSWQ6bnVsbCxrbm93bk5hbWVzcGFjZUlkczpuZXcgU2V0LHJlZ2lzdGVyZWRSb3V0ZUtleXM6bmV3IFNldH0sQlMoJEQsKCh0LHthZnRlcjplfSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7bmV4dFJvdXRlOmV9KSkpLEJTKHRSLCgodCx7YWZ0ZXI6ZSxhZnRlck5hbWVzcGFjZUlkOm59KT0+e2xldCBvPXQua25vd25OYW1lc3BhY2VJZHM7cmV0dXJuIHQua25vd25OYW1lc3BhY2VJZHMuaGFzKG4pfHwobz1uZXcgU2V0KHQua25vd25OYW1lc3BhY2VJZHMpLG8uYWRkKG4pKSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2FjdGl2ZVJvdXRlOmUsbmV4dFJvdXRlOm51bGwsYWN0aXZlTmFtZXNwYWNlSWQ6bixrbm93bk5hbWVzcGFjZUlkczpvfSl9KSksQlMoSkQsKCh0LHtyb3V0ZUtpbmRzOmV9KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtyZWdpc3RlcmVkUm91dGVLZXlzOmV9KSkpKTtmdW5jdGlvbiBEUih0LGUpe3JldHVybiBTUih0LGUpfWNsYXNzIFJSe31SUi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UlIpfSxSUi7JtW1vZD1mbyh7dHlwZTpSUn0pLFJSLsm1aW5qPURuKHtwcm92aWRlcnM6W0VELG5SXSxpbXBvcnRzOltbZlIsVFMuZm9yRmVhdHVyZSh1UixEUiksaEQuZm9yRmVhdHVyZShba1JdKSxERCxTRF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihSUixbe3R5cGU6TF8sYXJnczpbe2ltcG9ydHM6W2ZSLFRTLmZvckZlYXR1cmUodVIsRFIpLGhELmZvckZlYXR1cmUoW2tSXSksREQsU0RdLHByb3ZpZGVyczpbRUQsblJdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oUlIse2ltcG9ydHM6W2ZSLEFTLGdELERELFNEXX0pO2NvbnN0IEVSPSJfX3RhYl9fIjtjbGFzcyBBUntjb25zdHJ1Y3Rvcigpe3RoaXMudGZTdG9yYWdlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRmLXN0b3JhZ2UiKTtkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Zi1nbG9iYWxzIikudGZfZ2xvYmFscy5zZXRVc2VIYXNoKCEwKSx0aGlzLnRmU3RvcmFnZS50Zl9zdG9yYWdlLm1pZ3JhdGVMZWdhY3lVUkxTY2hlbWUoKX1nZXRTdHJpbmcodCl7cmV0dXJuIHRoaXMudGZTdG9yYWdlLnRmX3N0b3JhZ2UuZ2V0U3RyaW5nKHQpfXNldFN0cmluZyh0LGUsbil7dGhpcy50ZlN0b3JhZ2UudGZfc3RvcmFnZS5zZXRTdHJpbmcodCxlLG4pfWdldFBsdWdpbklkKCl7cmV0dXJuIHRoaXMuZ2V0U3RyaW5nKEVSKX1zZXRQbHVnaW5JZCh0LGUpe3RoaXMuc2V0U3RyaW5nKEVSLHQsZSl9fUFSLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxBUil9LEFSLsm1cHJvdj1Tbih7dG9rZW46QVIsZmFjdG9yeTpBUi7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoQVIsW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW119KSxudWxsKTtjbGFzcyBUUnt9Y29uc3QgTlI9bmV3IGVyKCJbUGVyc2lzdGVudCBTZXR0aW5nc10gR2xvYmFsIFNldHRpbmdzIik7Y2xhc3MgelJ7Y29uc3RydWN0b3IodCl7dGhpcy5nbG9iYWxTZXR0aW5nU2VsZWN0b3JzPVtdLHQmJih0aGlzLmdsb2JhbFNldHRpbmdTZWxlY3RvcnM9dC5tYXAoKHQ9PnQoKSkpKX1nZXRHbG9iYWxTZXR0aW5nU2VsZWN0b3JzKCl7dmFyIHQ7cmV0dXJuIG51bGwhPT0odD10aGlzLmdsb2JhbFNldHRpbmdTZWxlY3RvcnMpJiZ2b2lkIDAhPT10P3Q6W119c3RhdGljIGRlZmluZUdsb2JhbFNldHRpbmcodCl7cmV0dXJue25nTW9kdWxlOnpSLHByb3ZpZGVyczpbe3Byb3ZpZGU6TlIsbXVsdGk6ITAsdXNlVmFsdWU6dH1dfX19elIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHpSKShUcihOUiw4KSl9LHpSLsm1bW9kPWZvKHt0eXBlOnpSfSkselIuybVpbmo9RG4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoelIsW3t0eXBlOkxffV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltOUl19XX1dfSksbnVsbCk7Y2xhc3MgSVJ7c2V0SXRlbSh0LGUpe2xvY2FsU3RvcmFnZS5zZXRJdGVtKHQsZSl9Z2V0SXRlbSh0KXtyZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0odCl9cmVtb3ZlSXRlbSh0KXtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0KX19SVIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fElSKX0sSVIuybVwcm92PVNuKHt0b2tlbjpJUixmYWN0b3J5OklSLsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihJUixbe3R5cGU6VW19XSxudWxsLG51bGwpO2NsYXNzIEhSe312YXIgRlI7SFIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEhSKX0sSFIuybVtb2Q9Zm8oe3R5cGU6SFJ9KSxIUi7JtWluaj1Ebih7cHJvdmlkZXJzOltJUl19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEhSLFt7dHlwZTpMXyxhcmdzOlt7cHJvdmlkZXJzOltJUl19XX1dLG51bGwsbnVsbCksKGZ1bmN0aW9uKHQpe3QuQlJPV1NFUl9ERUZBVUxUPSJicm93c2VyX2RlZmF1bHQiLHQuTElHSFQ9ImxpZ2h0Iix0LkRBUks9ImRhcmsifSkoRlJ8fChGUj17fSkpO2NvbnN0IExSPSJfdGJfZ2xvYmFsX3NldHRpbmdzLnRpbWVzZXJpZXMiLEJSPSJfdGJfZ2xvYmFsX3NldHRpbmdzIixWUj0ibm90aWZpY2F0aW9uTGFzdFJlYWRUaW1lc3RhbXAiO2NsYXNzIGpSe31qUi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8alIpfSxqUi7JtXByb3Y9U24oe3Rva2VuOmpSLGZhY3Rvcnk6alIuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGpSLFt7dHlwZTpVbX1dLG51bGwsbnVsbCk7Y2xhc3MgVVJ7fVVSLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxVUil9LFVSLsm1cHJvdj1Tbih7dG9rZW46VVIsZmFjdG9yeTpVUi7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoVVIsW3t0eXBlOlVtfV0sbnVsbCxudWxsKTtjbGFzcyBXUiBleHRlbmRzIFVSe3VpVG9CYWNrZW5kKHQpe2NvbnN0IGU9e307cmV0dXJuIHZvaWQgMCE9PXQuaWdub3JlT3V0bGllcnMmJihlLmlnbm9yZU91dGxpZXJzPXQuaWdub3JlT3V0bGllcnMpLHZvaWQgMCE9PXQuc2NhbGFyU21vb3RoaW5nJiYoZS5zY2FsYXJTbW9vdGhpbmc9dC5zY2FsYXJTbW9vdGhpbmcpLHZvaWQgMCE9PXQudG9vbHRpcFNvcnRTdHJpbmcmJihlLnRvb2x0aXBTb3J0PXQudG9vbHRpcFNvcnRTdHJpbmcpLHZvaWQgMCE9PXQuYXV0b1JlbG9hZCYmKGUuYXV0b1JlbG9hZD10LmF1dG9SZWxvYWQpLHZvaWQgMCE9PXQuYXV0b1JlbG9hZFBlcmlvZEluTXMmJihlLmF1dG9SZWxvYWRQZXJpb2RJbk1zPXQuYXV0b1JlbG9hZFBlcmlvZEluTXMpLHZvaWQgMCE9PXQucGFnZVNpemUmJihlLnBhZ2luYXRpb25TaXplPXQucGFnZVNpemUpLHZvaWQgMCE9PXQudGhlbWVPdmVycmlkZSYmKGUudGhlbWU9dC50aGVtZU92ZXJyaWRlKSx2b2lkIDAhPT10Lm5vdGlmaWNhdGlvbkxhc3RSZWFkVGltZUluTXMmJihlLm5vdGlmaWNhdGlvbkxhc3RSZWFkVGltZUluTXM9dC5ub3RpZmljYXRpb25MYXN0UmVhZFRpbWVJbk1zKSx2b2lkIDAhPT10LnNpZGVCYXJXaWR0aEluUGVyY2VudCYmKGUuc2lkZUJhcldpZHRoSW5QZXJjZW50PXQuc2lkZUJhcldpZHRoSW5QZXJjZW50KSx2b2lkIDAhPT10LnRpbWVTZXJpZXNQcm9tb3Rpb25EaXNtaXNzZWQmJihlLnRpbWVTZXJpZXNQcm9tb3Rpb25EaXNtaXNzZWQ9dC50aW1lU2VyaWVzUHJvbW90aW9uRGlzbWlzc2VkKSx2b2lkIDAhPT10LnRpbWVTZXJpZXNTZXR0aW5nc1BhbmVPcGVuZWQmJihlLnRpbWVTZXJpZXNTZXR0aW5nc1BhbmVPcGVuZWQ9dC50aW1lU2VyaWVzU2V0dGluZ3NQYW5lT3BlbmVkKSx2b2lkIDAhPT10LnRpbWVTZXJpZXNDYXJkTWluV2lkdGgmJihlLnRpbWVTZXJpZXNDYXJkTWluV2lkdGg9dC50aW1lU2VyaWVzQ2FyZE1pbldpZHRoKSxlfWJhY2tlbmRUb1VpKHQpe2NvbnN0IGU9e307cmV0dXJuIHQuaGFzT3duUHJvcGVydHkoInNjYWxhclNtb290aGluZyIpJiYibnVtYmVyIj09dHlwZW9mIHQuc2NhbGFyU21vb3RoaW5nJiYoZS5zY2FsYXJTbW9vdGhpbmc9dC5zY2FsYXJTbW9vdGhpbmcpLHQuaGFzT3duUHJvcGVydHkoImlnbm9yZU91dGxpZXJzIikmJiJib29sZWFuIj09dHlwZW9mIHQuaWdub3JlT3V0bGllcnMmJihlLmlnbm9yZU91dGxpZXJzPXQuaWdub3JlT3V0bGllcnMpLHQuaGFzT3duUHJvcGVydHkoInRvb2x0aXBTb3J0IikmJiJzdHJpbmciPT10eXBlb2YgdC50b29sdGlwU29ydCYmKGUudG9vbHRpcFNvcnRTdHJpbmc9dC50b29sdGlwU29ydCksdC5oYXNPd25Qcm9wZXJ0eSgiYXV0b1JlbG9hZCIpJiYiYm9vbGVhbiI9PXR5cGVvZiB0LmF1dG9SZWxvYWQmJihlLmF1dG9SZWxvYWQ9dC5hdXRvUmVsb2FkKSx0Lmhhc093blByb3BlcnR5KCJhdXRvUmVsb2FkUGVyaW9kSW5NcyIpJiYibnVtYmVyIj09dHlwZW9mIHQuYXV0b1JlbG9hZFBlcmlvZEluTXMmJihlLmF1dG9SZWxvYWRQZXJpb2RJbk1zPXQuYXV0b1JlbG9hZFBlcmlvZEluTXMpLHQuaGFzT3duUHJvcGVydHkoInBhZ2luYXRpb25TaXplIikmJiJudW1iZXIiPT10eXBlb2YgdC5wYWdpbmF0aW9uU2l6ZSYmKGUucGFnZVNpemU9dC5wYWdpbmF0aW9uU2l6ZSksdC5oYXNPd25Qcm9wZXJ0eSgidGhlbWUiKSYmInN0cmluZyI9PXR5cGVvZiB0LnRoZW1lJiZuZXcgU2V0KE9iamVjdC52YWx1ZXMoRlIpKS5oYXModC50aGVtZSkmJihlLnRoZW1lT3ZlcnJpZGU9dC50aGVtZSksdC5oYXNPd25Qcm9wZXJ0eSgibm90aWZpY2F0aW9uTGFzdFJlYWRUaW1lSW5NcyIpJiYibnVtYmVyIj09dHlwZW9mIHQubm90aWZpY2F0aW9uTGFzdFJlYWRUaW1lSW5NcyYmKGUubm90aWZpY2F0aW9uTGFzdFJlYWRUaW1lSW5Ncz10Lm5vdGlmaWNhdGlvbkxhc3RSZWFkVGltZUluTXMpLHQuaGFzT3duUHJvcGVydHkoInNpZGVCYXJXaWR0aEluUGVyY2VudCIpJiYibnVtYmVyIj09dHlwZW9mIHQuc2lkZUJhcldpZHRoSW5QZXJjZW50JiYoZS5zaWRlQmFyV2lkdGhJblBlcmNlbnQ9dC5zaWRlQmFyV2lkdGhJblBlcmNlbnQpLHQuaGFzT3duUHJvcGVydHkoInRpbWVTZXJpZXNQcm9tb3Rpb25EaXNtaXNzZWQiKSYmImJvb2xlYW4iPT10eXBlb2YgdC50aW1lU2VyaWVzUHJvbW90aW9uRGlzbWlzc2VkJiYoZS50aW1lU2VyaWVzUHJvbW90aW9uRGlzbWlzc2VkPXQudGltZVNlcmllc1Byb21vdGlvbkRpc21pc3NlZCksdC5oYXNPd25Qcm9wZXJ0eSgidGltZVNlcmllc1NldHRpbmdzUGFuZU9wZW5lZCIpJiYiYm9vbGVhbiI9PXR5cGVvZiB0LnRpbWVTZXJpZXNTZXR0aW5nc1BhbmVPcGVuZWQmJihlLnRpbWVTZXJpZXNTZXR0aW5nc1BhbmVPcGVuZWQ9dC50aW1lU2VyaWVzU2V0dGluZ3NQYW5lT3BlbmVkKSx0Lmhhc093blByb3BlcnR5KCJ0aW1lU2VyaWVzQ2FyZE1pbldpZHRoIikmJiJudW1iZXIiPT10eXBlb2YgdC50aW1lU2VyaWVzQ2FyZE1pbldpZHRoJiYoZS50aW1lU2VyaWVzQ2FyZE1pbldpZHRoPXQudGltZVNlcmllc0NhcmRNaW5XaWR0aCksZX19V1IuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PVVhKFdSKSkpKG58fFdSKX19KSgpLFdSLsm1cHJvdj1Tbih7dG9rZW46V1IsZmFjdG9yeTpXUi7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoV1IsW3t0eXBlOlVtfV0sbnVsbCxudWxsKTtjbGFzcyBHUntjb25zdHJ1Y3Rvcih0LGUpe3RoaXMubG9jYWxTdG9yYWdlPXQsdGhpcy5jb252ZXJ0ZXI9ZX1zZXRTZXR0aW5ncyh0KXtyZXR1cm4gT2JqZWN0LmtleXModCk/dGhpcy5nZXRTZXR0aW5ncygpLnBpcGUoV2UoKGU9Pnt0aGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKEJSLEpTT04uc3RyaW5naWZ5KHRoaXMuY29udmVydGVyLnVpVG9CYWNrZW5kKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSx0KSkpKSx0aGlzLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKExSKSx0aGlzLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFZSKX0pKSxWdCgoKCk9Pnt9KSkpOmR0fWRlc2VyaWFsaXplKHQpe3RyeXtyZXR1cm4gSlNPTi5wYXJzZSh0KX1jYXRjaCh0KXtyZXR1cm57fX19Z2V0U2V0dGluZ3MoKXt2YXIgdCxlO2NvbnN0IG49dGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShWUiksbz10aGlzLmNvbnZlcnRlci5iYWNrZW5kVG9VaSh0aGlzLmRlc2VyaWFsaXplKG4/SlNPTi5zdHJpbmdpZnkoe25vdGlmaWNhdGlvbkxhc3RSZWFkVGltZUluTXM6TnVtYmVyKG4pfSk6Int9IikpLGk9dGhpcy5jb252ZXJ0ZXIuYmFja2VuZFRvVWkodGhpcy5kZXNlcmlhbGl6ZShudWxsIT09KHQ9dGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShMUikpJiZ2b2lkIDAhPT10P3Q6Int9IikpLGE9dGhpcy5jb252ZXJ0ZXIuYmFja2VuZFRvVWkodGhpcy5kZXNlcmlhbGl6ZShudWxsIT09KGU9dGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShCUikpJiZ2b2lkIDAhPT1lP2U6Int9IikpO3JldHVybiB6dChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxvKSxpKSxhKSl9fUdSLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxHUikoVHIoSVIpLFRyKFVSKSl9LEdSLsm1cHJvdj1Tbih7dG9rZW46R1IsZmFjdG9yeTpHUi7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoR1IsW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOklSfSx7dHlwZTpVUn1dfSksbnVsbCk7Y2xhc3MgWVJ7fVlSLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxZUil9LFlSLsm1bW9kPWZvKHt0eXBlOllSfSksWVIuybVpbmo9RG4oe3Byb3ZpZGVyczpbe3Byb3ZpZGU6alIsdXNlQ2xhc3M6R1J9LFdSLHtwcm92aWRlOlVSLHVzZUV4aXN0aW5nOldSfV0saW1wb3J0czpbW0hSXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFlSLFt7dHlwZTpMXyxhcmdzOlt7aW1wb3J0czpbSFJdLHByb3ZpZGVyczpbe3Byb3ZpZGU6alIsdXNlQ2xhc3M6R1J9LFdSLHtwcm92aWRlOlVSLHVzZUV4aXN0aW5nOldSfV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhZUix7aW1wb3J0czpbSFJdfSk7Y29uc3QgcVI9X2soIltQZXJzaXN0ZW50IFNldHRpbmdzXSBHbG9iYWwgU2V0dGluZ3MgTG9hZGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksWlI9X2soIltQZXJzaXN0ZW50IFNldHRpbmdzXSBFZmZlY3RzIEluaXQiKTtjbGFzcyBYUntjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLmFjdGlvbnMkPXQsdGhpcy5zdG9yZT1lLHRoaXMuY29uZmlnTW9kdWxlPW4sdGhpcy5kYXRhU291cmNlPW8sdGhpcy5pbml0aWFsaXplQW5kVXBkYXRlU2V0dGluZ3MkPVdTKCgoKT0+e2NvbnN0IHQ9dGhpcy5hY3Rpb25zJC5waXBlKCRTKFpSKSwkdCgoKCk9PnRoaXMuZGF0YVNvdXJjZS5nZXRTZXR0aW5ncygpKSksV2UoKHQ9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKHFSKHtwYXJ0aWFsU2V0dGluZ3M6dH0pKX0pKSxQZSgwKSwkdCgoKCk9PnBlKC4uLnRoaXMuY29uZmlnTW9kdWxlLmdldEdsb2JhbFNldHRpbmdTZWxlY3RvcnMoKS5tYXAoKHQ9PnRoaXMuc3RvcmUuc2VsZWN0KHQpLnBpcGUod2UoKCh0LGUpPT57Y29uc3Qgbj1PYmplY3QudmFsdWVzKHQpLG89T2JqZWN0LnZhbHVlcyhlKTtyZXR1cm4gbi5sZW5ndGg9PT1vLmxlbmd0aCYmbi5ldmVyeSgoKHQsZSk9PnQ9PT1vW2VdKSl9KSksTGUoMSkpKSkpKSksSWUoKSk7cmV0dXJuIHQucGlwZSgoZnVuY3Rpb24gZSh0KXtyZXR1cm4geigoZnVuY3Rpb24oZSxuKXt2YXIgbz1bXTtyZXR1cm4gZS5zdWJzY3JpYmUobmV3IEgobiwoZnVuY3Rpb24odCl7cmV0dXJuIG8ucHVzaCh0KX0pLChmdW5jdGlvbigpe24ubmV4dChvKSxuLmNvbXBsZXRlKCl9KSkpLHQuc3Vic2NyaWJlKG5ldyBIKG4sKGZ1bmN0aW9uKCl7dmFyIHQ9bztvPVtdLG4ubmV4dCh0KX0pLE0pKSxmdW5jdGlvbigpe289bnVsbH19KSl9KSh0LnBpcGUoQ2UoNTAwKSkpLCR0KCh0PT57Y29uc3QgZT17fTtmb3IoY29uc3QgbiBvZiB0KU9iamVjdC5hc3NpZ24oZSxuKTtyZXR1cm4gdGhpcy5kYXRhU291cmNlLnNldFNldHRpbmdzKGUpfSkpKX0pLHtkaXNwYXRjaDohMX0pfW5ncnhPbkluaXRFZmZlY3RzKCl7cmV0dXJuIFpSKCl9fVhSLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxYUikoVHIoUVMpLFRyKGlTKSxUcih6UiksVHIoalIpKX0sWFIuybVwcm92PVNuKHt0b2tlbjpYUixmYWN0b3J5OlhSLsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihYUixbe3R5cGU6VW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6UVN9LHt0eXBlOmlTfSx7dHlwZTp6Un0se3R5cGU6alJ9XX0pLG51bGwpO2NsYXNzIEtSe31LUi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8S1IpfSxLUi7JtW1vZD1mbyh7dHlwZTpLUn0pLEtSLsm1aW5qPURuKHtwcm92aWRlcnM6W3pSXSxpbXBvcnRzOltbaEQuZm9yRmVhdHVyZShbWFJdKSxZUl1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihLUixbe3R5cGU6TF8sYXJnczpbe2ltcG9ydHM6W2hELmZvckZlYXR1cmUoW1hSXSksWVJdLHByb3ZpZGVyczpbelJdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oS1Ise2ltcG9ydHM6W2dELFlSXX0pOwovKioKICAgICAqIEBsaWNlbnNlIEFuZ3VsYXIgdjEyLjIuMQogICAgICogKGMpIDIwMTAtMjAyMSBHb29nbGUgTExDLiBodHRwczovL2FuZ3VsYXIuaW8vCiAgICAgKiBMaWNlbnNlOiBNSVQKICAgICAqLwpjbGFzcyBKUnt9Y2xhc3MgUVJ7fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyAkUntjb25zdHJ1Y3Rvcih0KXt0aGlzLm5vcm1hbGl6ZWROYW1lcz1uZXcgTWFwLHRoaXMubGF6eVVwZGF0ZT1udWxsLHQ/dGhpcy5sYXp5SW5pdD0ic3RyaW5nIj09dHlwZW9mIHQ/KCk9Pnt0aGlzLmhlYWRlcnM9bmV3IE1hcCx0LnNwbGl0KCJcbiIpLmZvckVhY2goKHQ9Pntjb25zdCBlPXQuaW5kZXhPZigiOiIpO2lmKGU+MCl7Y29uc3Qgbj10LnNsaWNlKDAsZSksbz1uLnRvTG93ZXJDYXNlKCksaT10LnNsaWNlKGUrMSkudHJpbSgpO3RoaXMubWF5YmVTZXROb3JtYWxpemVkTmFtZShuLG8pLHRoaXMuaGVhZGVycy5oYXMobyk/dGhpcy5oZWFkZXJzLmdldChvKS5wdXNoKGkpOnRoaXMuaGVhZGVycy5zZXQobyxbaV0pfX0pKX06KCk9Pnt0aGlzLmhlYWRlcnM9bmV3IE1hcCxPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChlPT57bGV0IG49dFtlXTtjb25zdCBvPWUudG9Mb3dlckNhc2UoKTsic3RyaW5nIj09dHlwZW9mIG4mJihuPVtuXSksbi5sZW5ndGg+MCYmKHRoaXMuaGVhZGVycy5zZXQobyxuKSx0aGlzLm1heWJlU2V0Tm9ybWFsaXplZE5hbWUoZSxvKSl9KSl9OnRoaXMuaGVhZGVycz1uZXcgTWFwfWhhcyh0KXtyZXR1cm4gdGhpcy5pbml0KCksdGhpcy5oZWFkZXJzLmhhcyh0LnRvTG93ZXJDYXNlKCkpfWdldCh0KXt0aGlzLmluaXQoKTtjb25zdCBlPXRoaXMuaGVhZGVycy5nZXQodC50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gZSYmZS5sZW5ndGg+MD9lWzBdOm51bGx9a2V5cygpe3JldHVybiB0aGlzLmluaXQoKSxBcnJheS5mcm9tKHRoaXMubm9ybWFsaXplZE5hbWVzLnZhbHVlcygpKX1nZXRBbGwodCl7cmV0dXJuIHRoaXMuaW5pdCgpLHRoaXMuaGVhZGVycy5nZXQodC50b0xvd2VyQ2FzZSgpKXx8bnVsbH1hcHBlbmQodCxlKXtyZXR1cm4gdGhpcy5jbG9uZSh7bmFtZTp0LHZhbHVlOmUsb3A6ImEifSl9c2V0KHQsZSl7cmV0dXJuIHRoaXMuY2xvbmUoe25hbWU6dCx2YWx1ZTplLG9wOiJzIn0pfWRlbGV0ZSh0LGUpe3JldHVybiB0aGlzLmNsb25lKHtuYW1lOnQsdmFsdWU6ZSxvcDoiZCJ9KX1tYXliZVNldE5vcm1hbGl6ZWROYW1lKHQsZSl7dGhpcy5ub3JtYWxpemVkTmFtZXMuaGFzKGUpfHx0aGlzLm5vcm1hbGl6ZWROYW1lcy5zZXQoZSx0KX1pbml0KCl7dGhpcy5sYXp5SW5pdCYmKHRoaXMubGF6eUluaXQgaW5zdGFuY2VvZiAkUj90aGlzLmNvcHlGcm9tKHRoaXMubGF6eUluaXQpOnRoaXMubGF6eUluaXQoKSx0aGlzLmxhenlJbml0PW51bGwsdGhpcy5sYXp5VXBkYXRlJiYodGhpcy5sYXp5VXBkYXRlLmZvckVhY2goKHQ9PnRoaXMuYXBwbHlVcGRhdGUodCkpKSx0aGlzLmxhenlVcGRhdGU9bnVsbCkpfWNvcHlGcm9tKHQpe3QuaW5pdCgpLEFycmF5LmZyb20odC5oZWFkZXJzLmtleXMoKSkuZm9yRWFjaCgoZT0+e3RoaXMuaGVhZGVycy5zZXQoZSx0LmhlYWRlcnMuZ2V0KGUpKSx0aGlzLm5vcm1hbGl6ZWROYW1lcy5zZXQoZSx0Lm5vcm1hbGl6ZWROYW1lcy5nZXQoZSkpfSkpfWNsb25lKHQpe2NvbnN0IGU9bmV3ICRSO3JldHVybiBlLmxhenlJbml0PXRoaXMubGF6eUluaXQmJnRoaXMubGF6eUluaXQgaW5zdGFuY2VvZiAkUj90aGlzLmxhenlJbml0OnRoaXMsZS5sYXp5VXBkYXRlPSh0aGlzLmxhenlVcGRhdGV8fFtdKS5jb25jYXQoW3RdKSxlfWFwcGx5VXBkYXRlKHQpe2NvbnN0IGU9dC5uYW1lLnRvTG93ZXJDYXNlKCk7c3dpdGNoKHQub3Ape2Nhc2UiYSI6Y2FzZSJzIjpsZXQgbj10LnZhbHVlO2lmKCJzdHJpbmciPT10eXBlb2YgbiYmKG49W25dKSwwPT09bi5sZW5ndGgpcmV0dXJuO3RoaXMubWF5YmVTZXROb3JtYWxpemVkTmFtZSh0Lm5hbWUsZSk7Y29uc3Qgbz0oImEiPT09dC5vcD90aGlzLmhlYWRlcnMuZ2V0KGUpOnZvaWQgMCl8fFtdO28ucHVzaCguLi5uKSx0aGlzLmhlYWRlcnMuc2V0KGUsbyk7YnJlYWs7Y2FzZSJkIjpjb25zdCBpPXQudmFsdWU7aWYoaSl7bGV0IHQ9dGhpcy5oZWFkZXJzLmdldChlKTtpZighdClyZXR1cm47dD10LmZpbHRlcigodD0+LTE9PT1pLmluZGV4T2YodCkpKSwwPT09dC5sZW5ndGg/KHRoaXMuaGVhZGVycy5kZWxldGUoZSksdGhpcy5ub3JtYWxpemVkTmFtZXMuZGVsZXRlKGUpKTp0aGlzLmhlYWRlcnMuc2V0KGUsdCl9ZWxzZSB0aGlzLmhlYWRlcnMuZGVsZXRlKGUpLHRoaXMubm9ybWFsaXplZE5hbWVzLmRlbGV0ZShlKX19Zm9yRWFjaCh0KXt0aGlzLmluaXQoKSxBcnJheS5mcm9tKHRoaXMubm9ybWFsaXplZE5hbWVzLmtleXMoKSkuZm9yRWFjaCgoZT0+dCh0aGlzLm5vcm1hbGl6ZWROYW1lcy5nZXQoZSksdGhpcy5oZWFkZXJzLmdldChlKSkpKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIHRFe2VuY29kZUtleSh0KXtyZXR1cm4gZUUodCl9ZW5jb2RlVmFsdWUodCl7cmV0dXJuIGVFKHQpfWRlY29kZUtleSh0KXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHQpfWRlY29kZVZhbHVlKHQpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQodCl9fWZ1bmN0aW9uIGVFKHQpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQodCkucmVwbGFjZSgvJTQwL2dpLCJAIikucmVwbGFjZSgvJTNBL2dpLCI6IikucmVwbGFjZSgvJTI0L2dpLCIkIikucmVwbGFjZSgvJTJDL2dpLCIsIikucmVwbGFjZSgvJTNCL2dpLCI7IikucmVwbGFjZSgvJTJCL2dpLCIrIikucmVwbGFjZSgvJTNEL2dpLCI9IikucmVwbGFjZSgvJTNGL2dpLCI/IikucmVwbGFjZSgvJTJGL2dpLCIvIil9ZnVuY3Rpb24gbkUodCl7cmV0dXJuYCR7dH1gfWNsYXNzIG9Fe2NvbnN0cnVjdG9yKHQ9e30pe2lmKHRoaXMudXBkYXRlcz1udWxsLHRoaXMuY2xvbmVGcm9tPW51bGwsdGhpcy5lbmNvZGVyPXQuZW5jb2Rlcnx8bmV3IHRFLHQuZnJvbVN0cmluZyl7aWYodC5mcm9tT2JqZWN0KXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNwZWNpZnkgYm90aCBmcm9tU3RyaW5nIGFuZCBmcm9tT2JqZWN0LiIpO3RoaXMubWFwPShmdW5jdGlvbiBlKHQsbil7Y29uc3Qgbz1uZXcgTWFwO3QubGVuZ3RoPjAmJnQucmVwbGFjZSgvXlw/LywiIikuc3BsaXQoIiYiKS5mb3JFYWNoKCh0PT57Y29uc3QgZT10LmluZGV4T2YoIj0iKSxbaSxhXT0tMT09ZT9bbi5kZWNvZGVLZXkodCksIiJdOltuLmRlY29kZUtleSh0LnNsaWNlKDAsZSkpLG4uZGVjb2RlVmFsdWUodC5zbGljZShlKzEpKV0scj1vLmdldChpKXx8W107ci5wdXNoKGEpLG8uc2V0KGkscil9KSk7cmV0dXJuIG99KSh0LmZyb21TdHJpbmcsdGhpcy5lbmNvZGVyKX1lbHNlIHQuZnJvbU9iamVjdD8odGhpcy5tYXA9bmV3IE1hcCxPYmplY3Qua2V5cyh0LmZyb21PYmplY3QpLmZvckVhY2goKGU9Pntjb25zdCBuPXQuZnJvbU9iamVjdFtlXTt0aGlzLm1hcC5zZXQoZSxBcnJheS5pc0FycmF5KG4pP246W25dKX0pKSk6dGhpcy5tYXA9bnVsbH1oYXModCl7cmV0dXJuIHRoaXMuaW5pdCgpLHRoaXMubWFwLmhhcyh0KX1nZXQodCl7dGhpcy5pbml0KCk7Y29uc3QgZT10aGlzLm1hcC5nZXQodCk7cmV0dXJuIGU/ZVswXTpudWxsfWdldEFsbCh0KXtyZXR1cm4gdGhpcy5pbml0KCksdGhpcy5tYXAuZ2V0KHQpfHxudWxsfWtleXMoKXtyZXR1cm4gdGhpcy5pbml0KCksQXJyYXkuZnJvbSh0aGlzLm1hcC5rZXlzKCkpfWFwcGVuZCh0LGUpe3JldHVybiB0aGlzLmNsb25lKHtwYXJhbTp0LHZhbHVlOmUsb3A6ImEifSl9YXBwZW5kQWxsKHQpe2NvbnN0IGU9W107cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goKG49Pntjb25zdCBvPXRbbl07QXJyYXkuaXNBcnJheShvKT9vLmZvckVhY2goKHQ9PntlLnB1c2goe3BhcmFtOm4sdmFsdWU6dCxvcDoiYSJ9KX0pKTplLnB1c2goe3BhcmFtOm4sdmFsdWU6byxvcDoiYSJ9KX0pKSx0aGlzLmNsb25lKGUpfXNldCh0LGUpe3JldHVybiB0aGlzLmNsb25lKHtwYXJhbTp0LHZhbHVlOmUsb3A6InMifSl9ZGVsZXRlKHQsZSl7cmV0dXJuIHRoaXMuY2xvbmUoe3BhcmFtOnQsdmFsdWU6ZSxvcDoiZCJ9KX10b1N0cmluZygpe3JldHVybiB0aGlzLmluaXQoKSx0aGlzLmtleXMoKS5tYXAoKHQ9Pntjb25zdCBlPXRoaXMuZW5jb2Rlci5lbmNvZGVLZXkodCk7cmV0dXJuIHRoaXMubWFwLmdldCh0KS5tYXAoKHQ9PmUrIj0iK3RoaXMuZW5jb2Rlci5lbmNvZGVWYWx1ZSh0KSkpLmpvaW4oIiYiKX0pKS5maWx0ZXIoKHQ9PiIiIT09dCkpLmpvaW4oIiYiKX1jbG9uZSh0KXtjb25zdCBlPW5ldyBvRSh7ZW5jb2Rlcjp0aGlzLmVuY29kZXJ9KTtyZXR1cm4gZS5jbG9uZUZyb209dGhpcy5jbG9uZUZyb218fHRoaXMsZS51cGRhdGVzPSh0aGlzLnVwZGF0ZXN8fFtdKS5jb25jYXQodCksZX1pbml0KCl7bnVsbD09PXRoaXMubWFwJiYodGhpcy5tYXA9bmV3IE1hcCksbnVsbCE9PXRoaXMuY2xvbmVGcm9tJiYodGhpcy5jbG9uZUZyb20uaW5pdCgpLHRoaXMuY2xvbmVGcm9tLmtleXMoKS5mb3JFYWNoKCh0PT50aGlzLm1hcC5zZXQodCx0aGlzLmNsb25lRnJvbS5tYXAuZ2V0KHQpKSkpLHRoaXMudXBkYXRlcy5mb3JFYWNoKCh0PT57c3dpdGNoKHQub3Ape2Nhc2UiYSI6Y2FzZSJzIjpjb25zdCBlPSgiYSI9PT10Lm9wP3RoaXMubWFwLmdldCh0LnBhcmFtKTp2b2lkIDApfHxbXTtlLnB1c2gobkUodC52YWx1ZSkpLHRoaXMubWFwLnNldCh0LnBhcmFtLGUpO2JyZWFrO2Nhc2UiZCI6aWYodm9pZCAwPT09dC52YWx1ZSl7dGhpcy5tYXAuZGVsZXRlKHQucGFyYW0pO2JyZWFrfXtsZXQgZT10aGlzLm1hcC5nZXQodC5wYXJhbSl8fFtdO2NvbnN0IG49ZS5pbmRleE9mKG5FKHQudmFsdWUpKTstMSE9PW4mJmUuc3BsaWNlKG4sMSksZS5sZW5ndGg+MD90aGlzLm1hcC5zZXQodC5wYXJhbSxlKTp0aGlzLm1hcC5kZWxldGUodC5wYXJhbSl9fX0pKSx0aGlzLmNsb25lRnJvbT10aGlzLnVwZGF0ZXM9bnVsbCl9fWNsYXNzIGlFe2NvbnN0cnVjdG9yKCl7dGhpcy5tYXA9bmV3IE1hcH1zZXQodCxlKXtyZXR1cm4gdGhpcy5tYXAuc2V0KHQsZSksdGhpc31nZXQodCl7cmV0dXJuIHRoaXMubWFwLmhhcyh0KXx8dGhpcy5tYXAuc2V0KHQsdC5kZWZhdWx0VmFsdWUoKSksdGhpcy5tYXAuZ2V0KHQpfWRlbGV0ZSh0KXtyZXR1cm4gdGhpcy5tYXAuZGVsZXRlKHQpLHRoaXN9a2V5cygpe3JldHVybiB0aGlzLm1hcC5rZXlzKCl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBhRSh0KXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiZ0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ9ZnVuY3Rpb24gckUodCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBCbG9iJiZ0IGluc3RhbmNlb2YgQmxvYn1mdW5jdGlvbiBzRSh0KXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEZvcm1EYXRhJiZ0IGluc3RhbmNlb2YgRm9ybURhdGF9Y2xhc3MgbEV7Y29uc3RydWN0b3IodCxlLG4sbyl7bGV0IGk7aWYodGhpcy51cmw9ZSx0aGlzLmJvZHk9bnVsbCx0aGlzLnJlcG9ydFByb2dyZXNzPSExLHRoaXMud2l0aENyZWRlbnRpYWxzPSExLHRoaXMucmVzcG9uc2VUeXBlPSJqc29uIix0aGlzLm1ldGhvZD10LnRvVXBwZXJDYXNlKCksKGZ1bmN0aW9uIGEodCl7c3dpdGNoKHQpe2Nhc2UiREVMRVRFIjpjYXNlIkdFVCI6Y2FzZSJIRUFEIjpjYXNlIk9QVElPTlMiOmNhc2UiSlNPTlAiOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fSkodGhpcy5tZXRob2QpfHxvPyh0aGlzLmJvZHk9dm9pZCAwIT09bj9uOm51bGwsaT1vKTppPW4saSYmKHRoaXMucmVwb3J0UHJvZ3Jlc3M9ISFpLnJlcG9ydFByb2dyZXNzLHRoaXMud2l0aENyZWRlbnRpYWxzPSEhaS53aXRoQ3JlZGVudGlhbHMsaS5yZXNwb25zZVR5cGUmJih0aGlzLnJlc3BvbnNlVHlwZT1pLnJlc3BvbnNlVHlwZSksaS5oZWFkZXJzJiYodGhpcy5oZWFkZXJzPWkuaGVhZGVycyksaS5jb250ZXh0JiYodGhpcy5jb250ZXh0PWkuY29udGV4dCksaS5wYXJhbXMmJih0aGlzLnBhcmFtcz1pLnBhcmFtcykpLHRoaXMuaGVhZGVyc3x8KHRoaXMuaGVhZGVycz1uZXcgJFIpLHRoaXMuY29udGV4dHx8KHRoaXMuY29udGV4dD1uZXcgaUUpLHRoaXMucGFyYW1zKXtjb25zdCB0PXRoaXMucGFyYW1zLnRvU3RyaW5nKCk7aWYoMD09PXQubGVuZ3RoKXRoaXMudXJsV2l0aFBhcmFtcz1lO2Vsc2V7Y29uc3Qgbj1lLmluZGV4T2YoIj8iKTt0aGlzLnVybFdpdGhQYXJhbXM9ZSsoLTE9PT1uPyI/IjpuPGUubGVuZ3RoLTE/IiYiOiIiKSt0fX1lbHNlIHRoaXMucGFyYW1zPW5ldyBvRSx0aGlzLnVybFdpdGhQYXJhbXM9ZX1zZXJpYWxpemVCb2R5KCl7cmV0dXJuIG51bGw9PT10aGlzLmJvZHk/bnVsbDphRSh0aGlzLmJvZHkpfHxyRSh0aGlzLmJvZHkpfHxzRSh0aGlzLmJvZHkpfHwoZnVuY3Rpb24gdChlKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIFVSTFNlYXJjaFBhcmFtcyYmZSBpbnN0YW5jZW9mIFVSTFNlYXJjaFBhcmFtc30pKHRoaXMuYm9keSl8fCJzdHJpbmciPT10eXBlb2YgdGhpcy5ib2R5P3RoaXMuYm9keTp0aGlzLmJvZHkgaW5zdGFuY2VvZiBvRT90aGlzLmJvZHkudG9TdHJpbmcoKToib2JqZWN0Ij09dHlwZW9mIHRoaXMuYm9keXx8ImJvb2xlYW4iPT10eXBlb2YgdGhpcy5ib2R5fHxBcnJheS5pc0FycmF5KHRoaXMuYm9keSk/SlNPTi5zdHJpbmdpZnkodGhpcy5ib2R5KTp0aGlzLmJvZHkudG9TdHJpbmcoKX1kZXRlY3RDb250ZW50VHlwZUhlYWRlcigpe3JldHVybiBudWxsPT09dGhpcy5ib2R5fHxzRSh0aGlzLmJvZHkpP251bGw6ckUodGhpcy5ib2R5KT90aGlzLmJvZHkudHlwZXx8bnVsbDphRSh0aGlzLmJvZHkpP251bGw6InN0cmluZyI9PXR5cGVvZiB0aGlzLmJvZHk/InRleHQvcGxhaW4iOnRoaXMuYm9keSBpbnN0YW5jZW9mIG9FPyJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCI6Im9iamVjdCI9PXR5cGVvZiB0aGlzLmJvZHl8fCJudW1iZXIiPT10eXBlb2YgdGhpcy5ib2R5fHwiYm9vbGVhbiI9PXR5cGVvZiB0aGlzLmJvZHk/ImFwcGxpY2F0aW9uL2pzb24iOm51bGx9Y2xvbmUodD17fSl7dmFyIGU7Y29uc3Qgbj10Lm1ldGhvZHx8dGhpcy5tZXRob2Qsbz10LnVybHx8dGhpcy51cmwsaT10LnJlc3BvbnNlVHlwZXx8dGhpcy5yZXNwb25zZVR5cGUsYT12b2lkIDAhPT10LmJvZHk/dC5ib2R5OnRoaXMuYm9keSxyPXZvaWQgMCE9PXQud2l0aENyZWRlbnRpYWxzP3Qud2l0aENyZWRlbnRpYWxzOnRoaXMud2l0aENyZWRlbnRpYWxzLHM9dm9pZCAwIT09dC5yZXBvcnRQcm9ncmVzcz90LnJlcG9ydFByb2dyZXNzOnRoaXMucmVwb3J0UHJvZ3Jlc3M7bGV0IGw9dC5oZWFkZXJzfHx0aGlzLmhlYWRlcnMsYz10LnBhcmFtc3x8dGhpcy5wYXJhbXM7Y29uc3QgZD1udWxsIT09KGU9dC5jb250ZXh0KSYmdm9pZCAwIT09ZT9lOnRoaXMuY29udGV4dDtyZXR1cm4gdm9pZCAwIT09dC5zZXRIZWFkZXJzJiYobD1PYmplY3Qua2V5cyh0LnNldEhlYWRlcnMpLnJlZHVjZSgoKGUsbik9PmUuc2V0KG4sdC5zZXRIZWFkZXJzW25dKSksbCkpLHQuc2V0UGFyYW1zJiYoYz1PYmplY3Qua2V5cyh0LnNldFBhcmFtcykucmVkdWNlKCgoZSxuKT0+ZS5zZXQobix0LnNldFBhcmFtc1tuXSkpLGMpKSxuZXcgbEUobixvLGEse3BhcmFtczpjLGhlYWRlcnM6bCxjb250ZXh0OmQscmVwb3J0UHJvZ3Jlc3M6cyxyZXNwb25zZVR5cGU6aSx3aXRoQ3JlZGVudGlhbHM6cn0pfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovdmFyIGNFOyEoZnVuY3Rpb24odCl7dFt0LlNlbnQ9MF09IlNlbnQiLHRbdC5VcGxvYWRQcm9ncmVzcz0xXT0iVXBsb2FkUHJvZ3Jlc3MiLHRbdC5SZXNwb25zZUhlYWRlcj0yXT0iUmVzcG9uc2VIZWFkZXIiLHRbdC5Eb3dubG9hZFByb2dyZXNzPTNdPSJEb3dubG9hZFByb2dyZXNzIix0W3QuUmVzcG9uc2U9NF09IlJlc3BvbnNlIix0W3QuVXNlcj01XT0iVXNlciJ9KShjRXx8KGNFPXt9KSk7Y2xhc3MgZEV7Y29uc3RydWN0b3IodCxlPTIwMCxuPSJPSyIpe3RoaXMuaGVhZGVycz10LmhlYWRlcnN8fG5ldyAkUix0aGlzLnN0YXR1cz12b2lkIDAhPT10LnN0YXR1cz90LnN0YXR1czplLHRoaXMuc3RhdHVzVGV4dD10LnN0YXR1c1RleHR8fG4sdGhpcy51cmw9dC51cmx8fG51bGwsdGhpcy5vaz10aGlzLnN0YXR1cz49MjAwJiZ0aGlzLnN0YXR1czwzMDB9fWNsYXNzIHBFIGV4dGVuZHMgZEV7Y29uc3RydWN0b3IodD17fSl7c3VwZXIodCksdGhpcy50eXBlPWNFLlJlc3BvbnNlSGVhZGVyfWNsb25lKHQ9e30pe3JldHVybiBuZXcgcEUoe2hlYWRlcnM6dC5oZWFkZXJzfHx0aGlzLmhlYWRlcnMsc3RhdHVzOnZvaWQgMCE9PXQuc3RhdHVzP3Quc3RhdHVzOnRoaXMuc3RhdHVzLHN0YXR1c1RleHQ6dC5zdGF0dXNUZXh0fHx0aGlzLnN0YXR1c1RleHQsdXJsOnQudXJsfHx0aGlzLnVybHx8dm9pZCAwfSl9fWNsYXNzIG1FIGV4dGVuZHMgZEV7Y29uc3RydWN0b3IodD17fSl7c3VwZXIodCksdGhpcy50eXBlPWNFLlJlc3BvbnNlLHRoaXMuYm9keT12b2lkIDAhPT10LmJvZHk/dC5ib2R5Om51bGx9Y2xvbmUodD17fSl7cmV0dXJuIG5ldyBtRSh7Ym9keTp2b2lkIDAhPT10LmJvZHk/dC5ib2R5OnRoaXMuYm9keSxoZWFkZXJzOnQuaGVhZGVyc3x8dGhpcy5oZWFkZXJzLHN0YXR1czp2b2lkIDAhPT10LnN0YXR1cz90LnN0YXR1czp0aGlzLnN0YXR1cyxzdGF0dXNUZXh0OnQuc3RhdHVzVGV4dHx8dGhpcy5zdGF0dXNUZXh0LHVybDp0LnVybHx8dGhpcy51cmx8fHZvaWQgMH0pfX1jbGFzcyBmRSBleHRlbmRzIGRFe2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQsMCwiVW5rbm93biBFcnJvciIpLHRoaXMubmFtZT0iSHR0cEVycm9yUmVzcG9uc2UiLHRoaXMub2s9ITEsdGhpcy5tZXNzYWdlPXRoaXMuc3RhdHVzPj0yMDAmJnRoaXMuc3RhdHVzPDMwMD9gSHR0cCBmYWlsdXJlIGR1cmluZyBwYXJzaW5nIGZvciAke3QudXJsfHwiKHVua25vd24gdXJsKSJ9YDpgSHR0cCBmYWlsdXJlIHJlc3BvbnNlIGZvciAke3QudXJsfHwiKHVua25vd24gdXJsKSJ9OiAke3Quc3RhdHVzfSAke3Quc3RhdHVzVGV4dH1gLHRoaXMuZXJyb3I9dC5lcnJvcnx8bnVsbH19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIHVFKHQsZSl7cmV0dXJue2JvZHk6ZSxoZWFkZXJzOnQuaGVhZGVycyxjb250ZXh0OnQuY29udGV4dCxvYnNlcnZlOnQub2JzZXJ2ZSxwYXJhbXM6dC5wYXJhbXMscmVwb3J0UHJvZ3Jlc3M6dC5yZXBvcnRQcm9ncmVzcyxyZXNwb25zZVR5cGU6dC5yZXNwb25zZVR5cGUsd2l0aENyZWRlbnRpYWxzOnQud2l0aENyZWRlbnRpYWxzfX1jbGFzcyBnRXtjb25zdHJ1Y3Rvcih0KXt0aGlzLmhhbmRsZXI9dH1yZXF1ZXN0KHQsZSxuPXt9KXtsZXQgbztpZih0IGluc3RhbmNlb2YgbEUpbz10O2Vsc2V7bGV0IGksYTtpPW4uaGVhZGVycyBpbnN0YW5jZW9mICRSP24uaGVhZGVyczpuZXcgJFIobi5oZWFkZXJzKSxuLnBhcmFtcyYmKGE9bi5wYXJhbXMgaW5zdGFuY2VvZiBvRT9uLnBhcmFtczpuZXcgb0Uoe2Zyb21PYmplY3Q6bi5wYXJhbXN9KSksbz1uZXcgbEUodCxlLHZvaWQgMCE9PW4uYm9keT9uLmJvZHk6bnVsbCx7aGVhZGVyczppLGNvbnRleHQ6bi5jb250ZXh0LHBhcmFtczphLHJlcG9ydFByb2dyZXNzOm4ucmVwb3J0UHJvZ3Jlc3MscmVzcG9uc2VUeXBlOm4ucmVzcG9uc2VUeXBlfHwianNvbiIsd2l0aENyZWRlbnRpYWxzOm4ud2l0aENyZWRlbnRpYWxzfSl9Y29uc3QgaT16dChvKS5waXBlKChmdW5jdGlvbiBhKHQsZSl7cmV0dXJuIGQoZSk/JHQodCxlLDEpOiR0KHQsMSl9KSgodD0+dGhpcy5oYW5kbGVyLmhhbmRsZSh0KSkpKTtpZih0IGluc3RhbmNlb2YgbEV8fCJldmVudHMiPT09bi5vYnNlcnZlKXJldHVybiBpO2NvbnN0IHI9aS5waXBlKHVlKCh0PT50IGluc3RhbmNlb2YgbUUpKSk7c3dpdGNoKG4ub2JzZXJ2ZXx8ImJvZHkiKXtjYXNlImJvZHkiOnN3aXRjaChvLnJlc3BvbnNlVHlwZSl7Y2FzZSJhcnJheWJ1ZmZlciI6cmV0dXJuIHIucGlwZShWdCgodD0+e2lmKG51bGwhPT10LmJvZHkmJiEodC5ib2R5IGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpKXRocm93IG5ldyBFcnJvcigiUmVzcG9uc2UgaXMgbm90IGFuIEFycmF5QnVmZmVyLiIpO3JldHVybiB0LmJvZHl9KSkpO2Nhc2UiYmxvYiI6cmV0dXJuIHIucGlwZShWdCgodD0+e2lmKG51bGwhPT10LmJvZHkmJiEodC5ib2R5IGluc3RhbmNlb2YgQmxvYikpdGhyb3cgbmV3IEVycm9yKCJSZXNwb25zZSBpcyBub3QgYSBCbG9iLiIpO3JldHVybiB0LmJvZHl9KSkpO2Nhc2UidGV4dCI6cmV0dXJuIHIucGlwZShWdCgodD0+e2lmKG51bGwhPT10LmJvZHkmJiJzdHJpbmciIT10eXBlb2YgdC5ib2R5KXRocm93IG5ldyBFcnJvcigiUmVzcG9uc2UgaXMgbm90IGEgc3RyaW5nLiIpO3JldHVybiB0LmJvZHl9KSkpO2Nhc2UianNvbiI6ZGVmYXVsdDpyZXR1cm4gci5waXBlKFZ0KCh0PT50LmJvZHkpKSl9Y2FzZSJyZXNwb25zZSI6cmV0dXJuIHI7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVucmVhY2hhYmxlOiB1bmhhbmRsZWQgb2JzZXJ2ZSB0eXBlICR7bi5vYnNlcnZlfX1gKX19ZGVsZXRlKHQsZT17fSl7cmV0dXJuIHRoaXMucmVxdWVzdCgiREVMRVRFIix0LGUpfWdldCh0LGU9e30pe3JldHVybiB0aGlzLnJlcXVlc3QoIkdFVCIsdCxlKX1oZWFkKHQsZT17fSl7cmV0dXJuIHRoaXMucmVxdWVzdCgiSEVBRCIsdCxlKX1qc29ucCh0LGUpe3JldHVybiB0aGlzLnJlcXVlc3QoIkpTT05QIix0LHtwYXJhbXM6KG5ldyBvRSkuYXBwZW5kKGUsIkpTT05QX0NBTExCQUNLIiksb2JzZXJ2ZToiYm9keSIscmVzcG9uc2VUeXBlOiJqc29uIn0pfW9wdGlvbnModCxlPXt9KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCJPUFRJT05TIix0LGUpfXBhdGNoKHQsZSxuPXt9KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCJQQVRDSCIsdCx1RShuLGUpKX1wb3N0KHQsZSxuPXt9KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCJQT1NUIix0LHVFKG4sZSkpfXB1dCh0LGUsbj17fSl7cmV0dXJuIHRoaXMucmVxdWVzdCgiUFVUIix0LHVFKG4sZSkpfX1nRS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Z0UpKFRyKEpSKSl9LGdFLsm1cHJvdj1Tbih7dG9rZW46Z0UsZmFjdG9yeTpnRS7JtWZhY30pLGdFLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6SlJ9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGdFLFt7dHlwZTpVbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpKUn1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBoRXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMubmV4dD10LHRoaXMuaW50ZXJjZXB0b3I9ZX1oYW5kbGUodCl7cmV0dXJuIHRoaXMuaW50ZXJjZXB0b3IuaW50ZXJjZXB0KHQsdGhpcy5uZXh0KX19Y29uc3QgYkU9bmV3IGVyKCJIVFRQX0lOVEVSQ0VQVE9SUyIpO2NsYXNzIHlFe2ludGVyY2VwdCh0LGUpe3JldHVybiBlLmhhbmRsZSh0KX19eUUuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHlFKX0seUUuybVwcm92PVNuKHt0b2tlbjp5RSxmYWN0b3J5OnlFLsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih5RSxbe3R5cGU6VW19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KbGV0IF9FPTA7Y2xhc3MgQ0V7fWNsYXNzIE1Fe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5jYWxsYmFja01hcD10LHRoaXMuZG9jdW1lbnQ9ZSx0aGlzLnJlc29sdmVkUHJvbWlzZT1Qcm9taXNlLnJlc29sdmUoKX1uZXh0Q2FsbGJhY2soKXtyZXR1cm4ibmdfanNvbnBfY2FsbGJhY2tfIitfRSsrfWhhbmRsZSh0KXtpZigiSlNPTlAiIT09dC5tZXRob2QpdGhyb3cgbmV3IEVycm9yKCJKU09OUCByZXF1ZXN0cyBtdXN0IHVzZSBKU09OUCByZXF1ZXN0IG1ldGhvZC4iKTtpZigianNvbiIhPT10LnJlc3BvbnNlVHlwZSl0aHJvdyBuZXcgRXJyb3IoIkpTT05QIHJlcXVlc3RzIG11c3QgdXNlIEpzb24gcmVzcG9uc2UgdHlwZS4iKTtyZXR1cm4gbmV3IFQoKGU9Pntjb25zdCBuPXRoaXMubmV4dENhbGxiYWNrKCksbz10LnVybFdpdGhQYXJhbXMucmVwbGFjZSgvPUpTT05QX0NBTExCQUNLKCZ8JCkvLGA9JHtufSQxYCksaT10aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2kuc3JjPW87bGV0IGE9bnVsbCxyPSExLHM9ITE7dGhpcy5jYWxsYmFja01hcFtuXT10PT57ZGVsZXRlIHRoaXMuY2FsbGJhY2tNYXBbbl0sc3x8KGE9dCxyPSEwKX07Y29uc3QgbD0oKT0+e2kucGFyZW50Tm9kZSYmaS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGkpLGRlbGV0ZSB0aGlzLmNhbGxiYWNrTWFwW25dfSxjPXQ9PntzfHx0aGlzLnJlc29sdmVkUHJvbWlzZS50aGVuKCgoKT0+e2woKSxyPyhlLm5leHQobmV3IG1FKHtib2R5OmEsc3RhdHVzOjIwMCxzdGF0dXNUZXh0OiJPSyIsdXJsOm99KSksZS5jb21wbGV0ZSgpKTplLmVycm9yKG5ldyBmRSh7dXJsOm8sc3RhdHVzOjAsc3RhdHVzVGV4dDoiSlNPTlAgRXJyb3IiLGVycm9yOm5ldyBFcnJvcigiSlNPTlAgaW5qZWN0ZWQgc2NyaXB0IGRpZCBub3QgaW52b2tlIGNhbGxiYWNrLiIpfSkpfSkpfSxkPXQ9PntzfHwobCgpLGUuZXJyb3IobmV3IGZFKHtlcnJvcjp0LHN0YXR1czowLHN0YXR1c1RleHQ6IkpTT05QIEVycm9yIix1cmw6b30pKSl9O3JldHVybiBpLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGMpLGkuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGQpLHRoaXMuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpKSxlLm5leHQoe3R5cGU6Y0UuU2VudH0pLCgpPT57cz0hMCxpLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLGMpLGkucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGQpLGwoKX19KSl9fU1FLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxNRSkoVHIoQ0UpLFRyKHNNKSl9LE1FLsm1cHJvdj1Tbih7dG9rZW46TUUsZmFjdG9yeTpNRS7JtWZhY30pLE1FLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6Q0V9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoTUUsW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkNFfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19XX0pLG51bGwpO2NsYXNzIHZFe2NvbnN0cnVjdG9yKHQpe3RoaXMuanNvbnA9dH1pbnRlcmNlcHQodCxlKXtyZXR1cm4iSlNPTlAiPT09dC5tZXRob2Q/dGhpcy5qc29ucC5oYW5kbGUodCk6ZS5oYW5kbGUodCl9fXZFLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx2RSkoVHIoTUUpKX0sdkUuybVwcm92PVNuKHt0b2tlbjp2RSxmYWN0b3J5OnZFLsm1ZmFjfSksdkUuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpNRX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIodkUsW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOk1FfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IHhFPS9eXClcXVx9Jyw/XG4vO2NsYXNzIE9Fe2NvbnN0cnVjdG9yKHQpe3RoaXMueGhyRmFjdG9yeT10fWhhbmRsZSh0KXtpZigiSlNPTlAiPT09dC5tZXRob2QpdGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0ZWQgdG8gY29uc3RydWN0IEpzb25wIHJlcXVlc3Qgd2l0aG91dCBIdHRwQ2xpZW50SnNvbnBNb2R1bGUgaW5zdGFsbGVkLiIpO3JldHVybiBuZXcgVCgoZT0+e2NvbnN0IG49dGhpcy54aHJGYWN0b3J5LmJ1aWxkKCk7aWYobi5vcGVuKHQubWV0aG9kLHQudXJsV2l0aFBhcmFtcyksdC53aXRoQ3JlZGVudGlhbHMmJihuLndpdGhDcmVkZW50aWFscz0hMCksdC5oZWFkZXJzLmZvckVhY2goKCh0LGUpPT5uLnNldFJlcXVlc3RIZWFkZXIodCxlLmpvaW4oIiwiKSkpKSx0LmhlYWRlcnMuaGFzKCJBY2NlcHQiKXx8bi5zZXRSZXF1ZXN0SGVhZGVyKCJBY2NlcHQiLCJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoiKSwhdC5oZWFkZXJzLmhhcygiQ29udGVudC1UeXBlIikpe2NvbnN0IGU9dC5kZXRlY3RDb250ZW50VHlwZUhlYWRlcigpO251bGwhPT1lJiZuLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsZSl9aWYodC5yZXNwb25zZVR5cGUpe2NvbnN0IGU9dC5yZXNwb25zZVR5cGUudG9Mb3dlckNhc2UoKTtuLnJlc3BvbnNlVHlwZT0ianNvbiIhPT1lP2U6InRleHQifWNvbnN0IG89dC5zZXJpYWxpemVCb2R5KCk7bGV0IGk9bnVsbDtjb25zdCBhPSgpPT57aWYobnVsbCE9PWkpcmV0dXJuIGk7Y29uc3QgZT0xMjIzPT09bi5zdGF0dXM/MjA0Om4uc3RhdHVzLG89bi5zdGF0dXNUZXh0fHwiT0siLGE9bmV3ICRSKG4uZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLHI9KGZ1bmN0aW9uIHModCl7cmV0dXJuInJlc3BvbnNlVVJMImluIHQmJnQucmVzcG9uc2VVUkw/dC5yZXNwb25zZVVSTDovXlgtUmVxdWVzdC1VUkw6L20udGVzdCh0LmdldEFsbFJlc3BvbnNlSGVhZGVycygpKT90LmdldFJlc3BvbnNlSGVhZGVyKCJYLVJlcXVlc3QtVVJMIik6bnVsbH0pKG4pfHx0LnVybDtyZXR1cm4gaT1uZXcgcEUoe2hlYWRlcnM6YSxzdGF0dXM6ZSxzdGF0dXNUZXh0Om8sdXJsOnJ9KSxpfSxyPSgpPT57bGV0e2hlYWRlcnM6byxzdGF0dXM6aSxzdGF0dXNUZXh0OnIsdXJsOnN9PWEoKSxsPW51bGw7MjA0IT09aSYmKGw9dm9pZCAwPT09bi5yZXNwb25zZT9uLnJlc3BvbnNlVGV4dDpuLnJlc3BvbnNlKSwwPT09aSYmKGk9bD8yMDA6MCk7bGV0IGM9aT49MjAwJiZpPDMwMDtpZigianNvbiI9PT10LnJlc3BvbnNlVHlwZSYmInN0cmluZyI9PXR5cGVvZiBsKXtjb25zdCB0PWw7bD1sLnJlcGxhY2UoeEUsIiIpO3RyeXtsPSIiIT09bD9KU09OLnBhcnNlKGwpOm51bGx9Y2F0Y2goZSl7bD10LGMmJihjPSExLGw9e2Vycm9yOmUsdGV4dDpsfSl9fWM/KGUubmV4dChuZXcgbUUoe2JvZHk6bCxoZWFkZXJzOm8sc3RhdHVzOmksc3RhdHVzVGV4dDpyLHVybDpzfHx2b2lkIDB9KSksZS5jb21wbGV0ZSgpKTplLmVycm9yKG5ldyBmRSh7ZXJyb3I6bCxoZWFkZXJzOm8sc3RhdHVzOmksc3RhdHVzVGV4dDpyLHVybDpzfHx2b2lkIDB9KSl9LHM9dD0+e2NvbnN0e3VybDpvfT1hKCksaT1uZXcgZkUoe2Vycm9yOnQsc3RhdHVzOm4uc3RhdHVzfHwwLHN0YXR1c1RleHQ6bi5zdGF0dXNUZXh0fHwiVW5rbm93biBFcnJvciIsdXJsOm98fHZvaWQgMH0pO2UuZXJyb3IoaSl9O2xldCBsPSExO2NvbnN0IGM9bz0+e2x8fChlLm5leHQoYSgpKSxsPSEwKTtsZXQgaT17dHlwZTpjRS5Eb3dubG9hZFByb2dyZXNzLGxvYWRlZDpvLmxvYWRlZH07by5sZW5ndGhDb21wdXRhYmxlJiYoaS50b3RhbD1vLnRvdGFsKSwidGV4dCI9PT10LnJlc3BvbnNlVHlwZSYmbi5yZXNwb25zZVRleHQmJihpLnBhcnRpYWxUZXh0PW4ucmVzcG9uc2VUZXh0KSxlLm5leHQoaSl9LGQ9dD0+e2xldCBuPXt0eXBlOmNFLlVwbG9hZFByb2dyZXNzLGxvYWRlZDp0LmxvYWRlZH07dC5sZW5ndGhDb21wdXRhYmxlJiYobi50b3RhbD10LnRvdGFsKSxlLm5leHQobil9O3JldHVybiBuLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLHIpLG4uYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLHMpLG4uYWRkRXZlbnRMaXN0ZW5lcigidGltZW91dCIscyksbi5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIscyksdC5yZXBvcnRQcm9ncmVzcyYmKG4uYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGMpLG51bGwhPT1vJiZuLnVwbG9hZCYmbi51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGQpKSxuLnNlbmQobyksZS5uZXh0KHt0eXBlOmNFLlNlbnR9KSwoKT0+e24ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLHMpLG4ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHMpLG4ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsciksbi5yZW1vdmVFdmVudExpc3RlbmVyKCJ0aW1lb3V0IixzKSx0LnJlcG9ydFByb2dyZXNzJiYobi5yZW1vdmVFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsYyksbnVsbCE9PW8mJm4udXBsb2FkJiZuLnVwbG9hZC5yZW1vdmVFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZCkpLG4ucmVhZHlTdGF0ZSE9PW4uRE9ORSYmbi5hYm9ydCgpfX0pKX19T0UuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE9FKShUcihweCkpfSxPRS7JtXByb3Y9U24oe3Rva2VuOk9FLGZhY3Rvcnk6T0UuybVmYWN9KSxPRS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnB4fV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihPRSxbe3R5cGU6VW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6cHh9XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgUEU9bmV3IGVyKCJYU1JGX0NPT0tJRV9OQU1FIiksd0U9bmV3IGVyKCJYU1JGX0hFQURFUl9OQU1FIik7Y2xhc3Mga0V7fWNsYXNzIFNFe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLmRvYz10LHRoaXMucGxhdGZvcm09ZSx0aGlzLmNvb2tpZU5hbWU9bix0aGlzLmxhc3RDb29raWVTdHJpbmc9IiIsdGhpcy5sYXN0VG9rZW49bnVsbCx0aGlzLnBhcnNlQ291bnQ9MH1nZXRUb2tlbigpe2lmKCJzZXJ2ZXIiPT09dGhpcy5wbGF0Zm9ybSlyZXR1cm4gbnVsbDtjb25zdCB0PXRoaXMuZG9jLmNvb2tpZXx8IiI7cmV0dXJuIHQhPT10aGlzLmxhc3RDb29raWVTdHJpbmcmJih0aGlzLnBhcnNlQ291bnQrKyx0aGlzLmxhc3RUb2tlbj1fdih0LHRoaXMuY29va2llTmFtZSksdGhpcy5sYXN0Q29va2llU3RyaW5nPXQpLHRoaXMubGFzdFRva2VufX1TRS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8U0UpKFRyKHNNKSxUcihYXyksVHIoUEUpKX0sU0UuybVwcm92PVNuKHt0b2tlbjpTRSxmYWN0b3J5OlNFLsm1ZmFjfSksU0UuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltYX119XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W1BFXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihTRSxbe3R5cGU6VW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbWF9dfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltQRV19XX1dfSksbnVsbCk7Y2xhc3MgREV7Y29uc3RydWN0b3IodCxlKXt0aGlzLnRva2VuU2VydmljZT10LHRoaXMuaGVhZGVyTmFtZT1lfWludGVyY2VwdCh0LGUpe2NvbnN0IG49dC51cmwudG9Mb3dlckNhc2UoKTtpZigiR0VUIj09PXQubWV0aG9kfHwiSEVBRCI9PT10Lm1ldGhvZHx8bi5zdGFydHNXaXRoKCJodHRwOi8vIil8fG4uc3RhcnRzV2l0aCgiaHR0cHM6Ly8iKSlyZXR1cm4gZS5oYW5kbGUodCk7Y29uc3Qgbz10aGlzLnRva2VuU2VydmljZS5nZXRUb2tlbigpO3JldHVybiBudWxsPT09b3x8dC5oZWFkZXJzLmhhcyh0aGlzLmhlYWRlck5hbWUpfHwodD10LmNsb25lKHtoZWFkZXJzOnQuaGVhZGVycy5zZXQodGhpcy5oZWFkZXJOYW1lLG8pfSkpLGUuaGFuZGxlKHQpfX1ERS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8REUpKFRyKGtFKSxUcih3RSkpfSxERS7JtXByb3Y9U24oe3Rva2VuOkRFLGZhY3Rvcnk6REUuybVmYWN9KSxERS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmtFfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbd0VdfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKERFLFt7dHlwZTpVbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTprRX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3dFXX1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIFJFe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5iYWNrZW5kPXQsdGhpcy5pbmplY3Rvcj1lLHRoaXMuY2hhaW49bnVsbH1oYW5kbGUodCl7aWYobnVsbD09PXRoaXMuY2hhaW4pe2NvbnN0IHQ9dGhpcy5pbmplY3Rvci5nZXQoYkUsW10pO3RoaXMuY2hhaW49dC5yZWR1Y2VSaWdodCgoKHQsZSk9Pm5ldyBoRSh0LGUpKSx0aGlzLmJhY2tlbmQpfXJldHVybiB0aGlzLmNoYWluLmhhbmRsZSh0KX19ZnVuY3Rpb24gRUUoKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHdpbmRvdz93aW5kb3c6e319UkUuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFJFKShUcihRUiksVHIoTnApKX0sUkUuybVwcm92PVNuKHt0b2tlbjpSRSxmYWN0b3J5OlJFLsm1ZmFjfSksUkUuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpRUn0se3R5cGU6TnB9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFJFLFt7dHlwZTpVbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpRUn0se3R5cGU6TnB9XX0pLG51bGwpO2NsYXNzIEFFe3N0YXRpYyBkaXNhYmxlKCl7cmV0dXJue25nTW9kdWxlOkFFLHByb3ZpZGVyczpbe3Byb3ZpZGU6REUsdXNlQ2xhc3M6eUV9XX19c3RhdGljIHdpdGhPcHRpb25zKHQ9e30pe3JldHVybntuZ01vZHVsZTpBRSxwcm92aWRlcnM6W3QuY29va2llTmFtZT97cHJvdmlkZTpQRSx1c2VWYWx1ZTp0LmNvb2tpZU5hbWV9OltdLHQuaGVhZGVyTmFtZT97cHJvdmlkZTp3RSx1c2VWYWx1ZTp0LmhlYWRlck5hbWV9OltdXX19fUFFLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxBRSl9LEFFLsm1bW9kPWZvKHt0eXBlOkFFfSksQUUuybVpbmo9RG4oe3Byb3ZpZGVyczpbREUse3Byb3ZpZGU6YkUsdXNlRXhpc3Rpbmc6REUsbXVsdGk6ITB9LHtwcm92aWRlOmtFLHVzZUNsYXNzOlNFfSx7cHJvdmlkZTpQRSx1c2VWYWx1ZToiWFNSRi1UT0tFTiJ9LHtwcm92aWRlOndFLHVzZVZhbHVlOiJYLVhTUkYtVE9LRU4ifV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEFFLFt7dHlwZTpMXyxhcmdzOlt7cHJvdmlkZXJzOltERSx7cHJvdmlkZTpiRSx1c2VFeGlzdGluZzpERSxtdWx0aTohMH0se3Byb3ZpZGU6a0UsdXNlQ2xhc3M6U0V9LHtwcm92aWRlOlBFLHVzZVZhbHVlOiJYU1JGLVRPS0VOIn0se3Byb3ZpZGU6d0UsdXNlVmFsdWU6IlgtWFNSRi1UT0tFTiJ9XX1dfV0sbnVsbCxudWxsKTtjbGFzcyBURXt9VEUuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFRFKX0sVEUuybVtb2Q9Zm8oe3R5cGU6VEV9KSxURS7JtWluaj1Ebih7cHJvdmlkZXJzOltnRSx7cHJvdmlkZTpKUix1c2VDbGFzczpSRX0sT0Use3Byb3ZpZGU6UVIsdXNlRXhpc3Rpbmc6T0V9XSxpbXBvcnRzOltbQUUud2l0aE9wdGlvbnMoe2Nvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLGhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiJ9KV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihURSxbe3R5cGU6TF8sYXJnczpbe2ltcG9ydHM6W0FFLndpdGhPcHRpb25zKHtjb29raWVOYW1lOiJYU1JGLVRPS0VOIixoZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4ifSldLHByb3ZpZGVyczpbZ0Use3Byb3ZpZGU6SlIsdXNlQ2xhc3M6UkV9LE9FLHtwcm92aWRlOlFSLHVzZUV4aXN0aW5nOk9FfV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhURSx7aW1wb3J0czpbQUVdfSk7Y2xhc3MgTkV7fWZ1bmN0aW9uIHpFKHQpe2NvbnN0IGU9e307Zm9yKGNvbnN0W24sb11vZiB0LmVudHJpZXMoKSllW25dPW87cmV0dXJuIGV9TkUuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE5FKX0sTkUuybVtb2Q9Zm8oe3R5cGU6TkV9KSxORS7JtWluaj1Ebih7cHJvdmlkZXJzOltNRSx7cHJvdmlkZTpDRSx1c2VGYWN0b3J5OkVFfSx7cHJvdmlkZTpiRSx1c2VDbGFzczp2RSxtdWx0aTohMH1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihORSxbe3R5cGU6TF8sYXJnczpbe3Byb3ZpZGVyczpbTUUse3Byb3ZpZGU6Q0UsdXNlRmFjdG9yeTpFRX0se3Byb3ZpZGU6YkUsdXNlQ2xhc3M6dkUsbXVsdGk6ITB9XX1dfV0sbnVsbCxudWxsKTtmdW5jdGlvbiBJRSh0KXtsZXQgZT10LmhlYWRlcnN8fG5ldyAkUjtyZXR1cm4gZT1lLmFwcGVuZCgiWC1YU1JGLVByb3RlY3RlZCIsIjEiKSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2hlYWRlcnM6ZX0pfWNsYXNzIEhFe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLmFwcFJvb3RQcm92aWRlcj10LHRoaXMuaHR0cD1lLHRoaXMuc3RvcmU9bn1yZXNvbHZlQXBwUm9vdCh0KXtyZXR1cm4gdC5zdGFydHNXaXRoKCIvIik/dGhpcy5hcHBSb290UHJvdmlkZXIuZ2V0QWJzUGF0aG5hbWVXaXRoQXBwUm9vdCh0KTp0fWdldCh0LGU9e30pe3JldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMucmVzb2x2ZUFwcFJvb3QodCksZSl9cG9zdCh0LGUsbj17fSl7cmV0dXJuIG49SUUobiksdGhpcy5zdG9yZS5zZWxlY3QoTkQpLnBpcGUodWUoKHQ9PkJvb2xlYW4odCkpKSx2ZSgxKSxxZSh0aGlzLnN0b3JlLnNlbGVjdChWRCkpLCR0KCgoWyxvXSk9Pnt2YXIgaTtjb25zdCBhPXRoaXMucmVzb2x2ZUFwcFJvb3QodCk7cmV0dXJuIG8/dGhpcy5odHRwLmdldChhLHtoZWFkZXJzOm51bGwhPT0oaT1uLmhlYWRlcnMpJiZ2b2lkIDAhPT1pP2k6e30scGFyYW1zOnpFKGUpfSk6dGhpcy5odHRwLnBvc3QoYSxlLG4pfSkpKX1wdXQodCxlLG49e30pe3JldHVybiB0aGlzLmh0dHAucHV0KHRoaXMucmVzb2x2ZUFwcFJvb3QodCksZSxJRShuKSl9ZGVsZXRlKHQsZT17fSl7cmV0dXJuIHRoaXMuaHR0cC5kZWxldGUodGhpcy5yZXNvbHZlQXBwUm9vdCh0KSxJRShlKSl9fUhFLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxIRSkoVHIod0QpLFRyKGdFKSxUcihpUykpfSxIRS7JtXByb3Y9U24oe3Rva2VuOkhFLGZhY3Rvcnk6SEUuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEhFLFt7dHlwZTpVbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp3RH0se3R5cGU6Z0V9LHt0eXBlOmlTfV19KSxudWxsKTtjbGFzcyBGRXt9dmFyIExFO0ZFLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxGRSl9LEZFLsm1bW9kPWZvKHt0eXBlOkZFfSksRkUuybVpbmo9RG4oe3Byb3ZpZGVyczpbSEVdLGltcG9ydHM6W1tURSxERF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihGRSxbe3R5cGU6TF8sYXJnczpbe2ltcG9ydHM6W1RFLEREXSxwcm92aWRlcnM6W0hFXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKEZFLHtpbXBvcnRzOltURSxERF19KSwoZnVuY3Rpb24odCl7dC5VTktOT1dOPSJVTktOT1dOIix0Lk5PVF9GT1VORD0iTk9UX0ZPVU5EIn0pKExFfHwoTEU9e30pKTtjb25zdCBCRT1uZXcgZXIoIlRlbnNvckJvYXJkIGJyYW5kIG5hbWUiKTt2YXIgVkUsakUsVUU7ZnVuY3Rpb24gV0UodCl7bGV0IGU9TEUuVU5LTk9XTjtyZXR1cm4gdCBpbnN0YW5jZW9mIGZFJiY0MDQ9PT10LnN0YXR1cyYmKGU9TEUuTk9UX0ZPVU5EKSxJdChuZXcgR0UoZSkpfSEoZnVuY3Rpb24odCl7dC5TVEVQPSJzdGVwIix0LldBTExfVElNRT0id2FsbF90aW1lIix0LlJFTEFUSVZFPSJyZWxhdGl2ZSJ9KShWRXx8KFZFPXt9KSksKGZ1bmN0aW9uKHQpe3QuT0ZGU0VUPSJvZmZzZXQiLHQuT1ZFUkxBWT0ib3ZlcmxheSJ9KShqRXx8KGpFPXt9KSk7Y2xhc3MgR0V7Y29uc3RydWN0b3IodCl7dGhpcy5mYWlsdXJlQ29kZT10fX1jbGFzcyBZRXtjb25zdHJ1Y3Rvcih0KXt0aGlzLmh0dHA9dCx0aGlzLnRmQmFja2VuZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Zi1iYWNrZW5kIikudGZfYmFja2VuZH1mZXRjaFBsdWdpbnNMaXN0aW5nKHQpe2NvbnN0IGU9KGZ1bmN0aW9uIG4odCl7aWYoIXQubGVuZ3RoKXJldHVybiBudWxsO2NvbnN0IGU9bmV3IFVSTFNlYXJjaFBhcmFtcztmb3IoY29uc3QgbiBvZiB0KWUuYXBwZW5kKCJleHBlcmltZW50YWxQbHVnaW4iLG4pO3JldHVybiBlfSkodCksbz1lP2BkYXRhL3BsdWdpbnNfbGlzdGluZz8ke2UudG9TdHJpbmcoKX1gOiJkYXRhL3BsdWdpbnNfbGlzdGluZyI7cmV0dXJuIHRoaXMuaHR0cC5nZXQobykucGlwZShoZShXRSkpfWZldGNoRW52aXJvbm1lbnQoKXtyZXR1cm4gaWUoW3RoaXMuaHR0cC5nZXQoImRhdGEvZW52aXJvbm1lbnQiKSxQdCh0aGlzLnRmQmFja2VuZC5lbnZpcm9ubWVudFN0b3JlLnJlZnJlc2goKSldKS5waXBlKFZ0KCgoW3RdKT0+dCkpLGhlKFdFKSl9fVlFLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxZRSkoVHIoSEUpKX0sWUUuybVwcm92PVNuKHt0b2tlbjpZRSxmYWN0b3J5OllFLsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihZRSxbe3R5cGU6VW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SEV9XX0pLG51bGwpO2NsYXNzIHFFe31xRS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cUUpfSxxRS7JtW1vZD1mbyh7dHlwZTpxRX0pLHFFLsm1aW5qPURuKHtwcm92aWRlcnM6W1lFXSxpbXBvcnRzOltbRkVdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIocUUsW3t0eXBlOkxfLGFyZ3M6W3tpbXBvcnRzOltGRV0scHJvdmlkZXJzOltZRV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhxRSx7aW1wb3J0czpbRkVdfSksKGZ1bmN0aW9uKHQpe3RbdC5OT1RfTE9BREVEPTBdPSJOT1RfTE9BREVEIix0W3QuTE9BREVEPTFdPSJMT0FERUQiLHRbdC5MT0FESU5HPTJdPSJMT0FESU5HIix0W3QuRkFJTEVEPTNdPSJGQUlMRUQifSkoVUV8fChVRT17fSkpO2NvbnN0IFpFPV9rKCJbQ29yZV0gUGx1Z2luIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxYRT1faygiW0NvcmVdIFBsdWdpbiBVcmwgSGFzaCBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksS0U9X2soIltDb3JlXSBMb2FkZWQiKSxKRT1faygiW0NvcmVdIFVzZXIgVHJpZ2dlcmVkIFJlbG9hZCIpLFFFPV9rKCJbQ29yZV0gQXV0byBSZWxvYWQiKSwkRT1faygiW0NvcmVdIFBsdWdpbkxpc3RpbmcgRmV0Y2ggUmVxdWVzdGVkIiksdEE9X2soIltDb3JlXSBQbHVnaW5MaXN0aW5nIEZldGNoIFN1Y2Nlc3NmdWwiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxlQT1faygiW0NvcmVdIFBsdWdpbkxpc3RpbmcgRmV0Y2ggRmFpbGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksbkE9X2soIltDb3JlXSBQb2x5bWVyIENvbXBvbmVudCBSdW5zIEZldGNoIFJlcXVlc3RlZCIpLG9BPV9rKCJbQ29yZV0gUG9seW1lciBDb21wb25lbnQgUnVucyBGZXRjaCBTdWNjZXNzZnVsIiksaUE9X2soIltDb3JlXSBQb2x5bWVyIENvbXBvbmVudCBSdW5zIEZldGNoIEZhaWxlZCIpLGFBPV9rKCJbQ29yZV0gRW52aXJvbm1lbnQgRmV0Y2ggU3VjY2Vzc2Z1bCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLHJBPV9rKCJbQ29yZV0gUnVuIFNlbGVjdGlvbiBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksc0E9X2soIltDb3JlXSBSdW4gRmV0Y2ggU3VjY2Vzc2Z1bCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLGxBPV9rKCJbQ29yZV0gU2lkZSBCYXIgV2lkdGggQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pO2Z1bmN0aW9uIGNBKHQsZSxuKXtjb25zdCBvPU9iamVjdC5rZXlzKHQpLGk9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCksZSkse3ByaXZhdGVOYW1lc3BhY2VkU3RhdGU6e319KTtyZXR1cm57aW5pdGlhbFN0YXRlOmkscmVkdWNlcnM6VlMoaSxCUyh0UiwoKGUse2JlZm9yZTppLGFmdGVyOmEsYmVmb3JlTmFtZXNwYWNlSWQ6cixhZnRlck5hbWVzcGFjZUlkOnN9KT0+e2xldCBsPWU7cmV0dXJuIHIhPT1zJiYobD0oZnVuY3Rpb24gYyhlLG4saSl7dmFyIGE7bGV0IHI9T2JqZWN0LmFzc2lnbih7fSxlLnByaXZhdGVOYW1lc3BhY2VkU3RhdGUpO2lmKG4pe2NvbnN0IHQ9e307Zm9yKGNvbnN0IG4gb2Ygbyl0W25dPWVbbl07cj1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scikse1tuXTp0fSl9bGV0IHM9e307cmV0dXJuKG51bGw9PT0oYT1lLnByaXZhdGVOYW1lc3BhY2VkU3RhdGUpfHx2b2lkIDA9PT1hP3ZvaWQgMDphW2ldKT9zPWUucHJpdmF0ZU5hbWVzcGFjZWRTdGF0ZVtpXTpuJiYocz10KSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSxzKSx7cHJpdmF0ZU5hbWVzcGFjZWRTdGF0ZTpyfSl9KShlLHIscykpLCF4RChpLGEpJiZuJiYobD1uKGwsYSkpLGx9KSkpfX1jb25zdCBkQT1faygiW01ldHJpY3NdIE1ldHJpY3MgU2V0dGluZ3MgUGFuZSBDbG9zZWQiKSxwQT1faygiW01ldHJpY3NdIE1ldHJpY3MgU2V0dGluZ3MgUGFuZSBUb2dnbGVkIiksbUE9X2soIltNZXRyaWNzXSBNZXRyaWNzIFRhZyBNZXRhZGF0YSBSZXF1ZXN0ZWQiKSxmQT1faygiW01ldHJpY3NdIE1ldHJpY3MgVGFnIE1ldGFkYXRhIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLHVBPV9rKCJbTWV0cmljc10gTWV0cmljcyBUYWcgTWV0YWRhdGEgRmFpbGVkIiksZ0E9X2soIltNZXRyaWNzXSBNZXRyaWNzIFNldHRpbmdzIENoYW5nZSBUb29sdGlwIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSk7X2soIltNZXRyaWNzXSBNZXRyaWNzIFNldHRpbmdzIFRvZ2dsZSBTaG93IERhdGEgRG93bmxvYWQiKTtjb25zdCBoQT1faygiW01ldHJpY3NdIE1ldHJpY3MgU2V0dGluZyBUb2dnbGUgSWdub3JlIE91dGxpZXIiKSxiQT1faygiW01ldHJpY3NdIE1ldHJpY3MgU2V0dGluZyBDaGFuZ2UgWCBBeGlzIFR5cGUiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSx5QT1faygiW01ldHJpY3NdIE1ldHJpY3MgU2V0dGluZyBDaGFuZ2UgQ2FyZCBXaWR0aCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLF9BPV9rKCJbTWV0cmljc10gTWV0cmljcyBTZXR0aW5nIFJlc2V0IENhcmQgV2lkdGgiKSxDQT1faygiW01ldHJpY3NdIE1ldHJpY3MgU2V0dGluZyBDaGFuZ2UgU2NhbGFyIFNtb290aGluZyIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLE1BPV9rKCJbTWV0cmljc10gTWV0cmljcyBTZXR0aW5nIFBhcnRpdGlvbiBOb24gTW9ub3RvbmljIFggVG9nZ2xlZCIpLHZBPV9rKCJbTWV0cmljc10gTWV0cmljcyBTZXR0aW5nIENoYW5nZSBJbWFnZSBCcmlnaHRuZXNzIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSkseEE9X2soIltNZXRyaWNzXSBNZXRyaWNzIFNldHRpbmcgQ2hhbmdlIEltYWdlIENvbnRyYXN0Iix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksT0E9X2soIltNZXRyaWNzXSBJbWFnZSBCcmlnaHRuZXNzIFNldHRpbmcgUmVzZXQiKSxQQT1faygiW01ldHJpY3NdIEltYWdlIENvbnRyYXN0IFNldHRpbmcgUmVzZXQiKSx3QT1faygiW01ldHJpY3NdIE1ldHJpY3MgU2V0dGluZyBUb2dnbGUgSW1hZ2UgU2hvdyBBY3R1YWwgU2l6ZSIpLGtBPV9rKCJbTWV0cmljc10gTWV0cmljcyBTZXR0aW5nIENoYW5nZSBIaXN0b2dyYW0gTW9kZSIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLFNBPV9rKCJbTWV0cmljc10gTXVsdGlwbGUgVGltZSBTZXJpZXMgUmVxdWVzdGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksREE9X2soIltNZXRyaWNzXSBGZXRjaCBUaW1lIFNlcmllcyBSZXF1ZXN0IEZhaWxlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLFJBPV9rKCJbTWV0cmljc10gRmV0Y2ggVGltZSBTZXJpZXMgUmVzcG9uc2UgTG9hZGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksRUE9X2soIltNZXRyaWNzXSBDYXJkIFZpc2liaWxpdHkgQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLEFBPV9rKCJbTWV0cmljc10gQ2FyZCBTdGVwIFNsaWRlciBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksVEE9X2soIltNZXRyaWNzXSBUYWcgRmlsdGVyIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxOQT1faygiW01ldHJpY3NdIE1ldHJpY3MgVGFnIEdyb3VwIEV4cGFuc2lvbiBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksekE9X2soIltNZXRyaWNzXSBDYXJkIFBpbiBTdGF0ZSBUb2dnbGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksSUE9X2soIltNZXRyaWNzXSBUb2dnbGUgVmlzaWJsZSBQbHVnaW4iLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxIQT1faygiW01ldHJpY3NdIFRvZ2dsZSBTaG93IEFsbCBQbHVnaW5zIiksRkE9X2soIltNZXRyaWNzXSBMaW5rZWQgVGltZSBTZWxlY3Rpb24gQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLExBPV9rKCJbTWV0cmljc10gTGlua2VkIFRpbWUgU2VsZWN0aW9uIENsZWFyZWQiKSxCQT1faygiW01ldHJpY3NdIFNlbGVjdCBUaW1lIEVuYWJsZSBUb2dnbGUiKSxWQT1faygiW01ldHJpY3NdIFVzZSBSYW5nZSBTZWxlY3QgVGltZSBUb2dnbGUiKSxqQT1faygiW01ldHJpY3NdIE1ldHJpY3MgUHJvbW8gRGlzbWlzc2VkIiksVUE9X2soIltNZXRyaWNzXSBNZXRyaWNzIFByb21vIEdvIFRvIFNjYWxhcnMiKTtmdW5jdGlvbiBXQSguLi50KXtyZXR1cm4oZSxuKT0+e2xldCBvPWU7Zm9yKGNvbnN0IGUgb2YgdClvPWUobyxuKTtyZXR1cm4gb319Y29uc3QgR0E9ImNvcmUiLFlBPXthY3RpdmVQbHVnaW46bnVsbCxwbHVnaW5zOnt9LGNvcmVEYXRhTG9hZFN0YXRlOntzdGF0ZTpVRS5OT1RfTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpudWxsfSxwbHVnaW5zTGlzdExvYWRlZDp7c3RhdGU6VUUuTk9UX0xPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6bnVsbCxmYWlsdXJlQ29kZTpudWxsfSxlbnZpcm9ubWVudDp7ZGF0YV9sb2NhdGlvbjoiIix3aW5kb3dfdGl0bGU6IiJ9LHBvbHltZXJSdW5zTG9hZFN0YXRlOntzdGF0ZTpVRS5OT1RfTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpudWxsfSxwb2x5bWVySW50ZXJvcFJ1bnM6W10scG9seW1lckludGVyb3BSdW5TZWxlY3Rpb246bmV3IFNldCxzaWRlQmFyV2lkdGhJblBlcmNlbnQ6MjB9LHFBPVZTKFlBLEJTKFpFLFhFLCgodCx7cGx1Z2luOmV9KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHthY3RpdmVQbHVnaW46ZX0pKSksQlMoJEUsKHQ9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7Y29yZURhdGFMb2FkU3RhdGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuY29yZURhdGFMb2FkU3RhdGUpLHtzdGF0ZTpVRS5MT0FESU5HfSkscGx1Z2luc0xpc3RMb2FkZWQ6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQucGx1Z2luc0xpc3RMb2FkZWQpLHtzdGF0ZTpVRS5MT0FESU5HfSl9KSkpLEJTKGVBLCgodCx7ZmFpbHVyZUNvZGU6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2NvcmVEYXRhTG9hZFN0YXRlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmNvcmVEYXRhTG9hZFN0YXRlKSx7c3RhdGU6VUUuRkFJTEVEfSkscGx1Z2luc0xpc3RMb2FkZWQ6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQucGx1Z2luc0xpc3RMb2FkZWQpLHtzdGF0ZTpVRS5GQUlMRUQsZmFpbHVyZUNvZGU6ZX0pfSkpKSxCUyh0QSwoKHQse3BsdWdpbnM6ZX0pPT57Y29uc3Qgbj1PYmplY3Qua2V5cyhlKS5maW5kKCh0PT5lW3RdLmVuYWJsZWQpKXx8bnVsbCxvPXQuYWN0aXZlUGx1Z2lufHxuLGk9RGF0ZS5ub3coKTtsZXQgYT10LmNvcmVEYXRhTG9hZFN0YXRlO3JldHVybiB0LnBvbHltZXJSdW5zTG9hZFN0YXRlLnN0YXRlPT09VUUuTE9BREVEJiYoYT17c3RhdGU6VUUuTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczppfSksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHthY3RpdmVQbHVnaW46byxjb3JlRGF0YUxvYWRTdGF0ZTphLHBsdWdpbnM6ZSxwbHVnaW5zTGlzdExvYWRlZDp7c3RhdGU6VUUuTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczppLGZhaWx1cmVDb2RlOm51bGx9fSl9KSksQlMobkEsKHQ9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7Y29yZURhdGFMb2FkU3RhdGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuY29yZURhdGFMb2FkU3RhdGUpLHtzdGF0ZTpVRS5MT0FESU5HfSkscG9seW1lclJ1bnNMb2FkU3RhdGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQucG9seW1lclJ1bnNMb2FkU3RhdGUpLHtzdGF0ZTpVRS5MT0FESU5HfSl9KSkpLEJTKG9BLCh0PT57Y29uc3QgZT1EYXRlLm5vdygpO2xldCBuPXQuY29yZURhdGFMb2FkU3RhdGU7cmV0dXJuIHQucGx1Z2luc0xpc3RMb2FkZWQuc3RhdGU9PT1VRS5MT0FERUQmJihuPXtzdGF0ZTpVRS5MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOmV9KSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2NvcmVEYXRhTG9hZFN0YXRlOm4scG9seW1lclJ1bnNMb2FkU3RhdGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQucG9seW1lclJ1bnNMb2FkU3RhdGUpLHtzdGF0ZTpVRS5MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOmV9KX0pfSkpLEJTKGlBLCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2NvcmVEYXRhTG9hZFN0YXRlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmNvcmVEYXRhTG9hZFN0YXRlKSx7c3RhdGU6VUUuRkFJTEVEfSkscG9seW1lclJ1bnNMb2FkU3RhdGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQucG9seW1lclJ1bnNMb2FkU3RhdGUpLHtzdGF0ZTpVRS5GQUlMRUR9KX0pKSksQlMoYUEsKCh0LHtlbnZpcm9ubWVudDplfSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7ZW52aXJvbm1lbnQ6ZX0pKSksQlMoc0EsKCh0LHtydW5zOmV9KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtwb2x5bWVySW50ZXJvcFJ1bnM6ZX0pKSksQlMockEsKCh0LHtuZXh0U2VsZWN0aW9uOmV9KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtwb2x5bWVySW50ZXJvcFJ1blNlbGVjdGlvbjpuZXcgU2V0KGUpfSkpKSxCUyhsQSwoKHQse3dpZHRoSW5QZXJjZW50OmV9KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzaWRlQmFyV2lkdGhJblBlcmNlbnQ6TWF0aC5taW4oTWF0aC5tYXgoMCxlKSwxMDApfSkpKSxCUyhxUiwoKHQse3BhcnRpYWxTZXR0aW5nczplfSk9Pntjb25zdCBuPU9iamVjdC5hc3NpZ24oe30sdCksbz1lLnNpZGVCYXJXaWR0aEluUGVyY2VudDtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIG8mJm8+PTAmJm88PTEwMCYmKG4uc2lkZUJhcldpZHRoSW5QZXJjZW50PW8pLG59KSksQlMoVUEsKHQ9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7YWN0aXZlUGx1Z2luOiJzY2FsYXJzIn0pKSkpLHtyZWR1Y2VyczpaQX09Y0EoWUEse30pO2Z1bmN0aW9uIFhBKHQsZSl7cmV0dXJuIFdBKHFBLFpBKSh0LGUpfWNvbnN0IEtBPV9TKEdBKSxKQT1iUyhLQSwodD0+dC5wbHVnaW5zTGlzdExvYWRlZCkpLFFBPWJTKEtBLCh0PT50LnBvbHltZXJSdW5zTG9hZFN0YXRlKSksJEE9YlMoS0EsKHQ9PnQuY29yZURhdGFMb2FkU3RhdGUuc3RhdGUpKSx0VD1iUyhLQSwodD0+dC5jb3JlRGF0YUxvYWRTdGF0ZS5sYXN0TG9hZGVkVGltZUluTXMpKSxlVD1iUyhLQSwodD0+dC5hY3RpdmVQbHVnaW4pKSxuVD1iUyhLQSwodD0+dC5wbHVnaW5zKSksb1Q9YlMoS0EsKHQ9PnQuZW52aXJvbm1lbnQpKSxpVD1iUyhLQSwodD0+dC5zaWRlQmFyV2lkdGhJblBlcmNlbnQpKSxhVD1uZXcgU2V0KFtfRC5DT01QQVJFX0VYUEVSSU1FTlQsX0QuRVhQRVJJTUVOVCxfRC5OT1RfU0VUXSk7Y2xhc3MgclR7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuYWN0aW9ucyQ9dCx0aGlzLnN0b3JlPWUsdGhpcy53ZWJhcHBEYXRhU291cmNlPW4sdGhpcy50ZkJhY2tlbmQ9e3JlZjpkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Zi1iYWNrZW5kIikudGZfYmFja2VuZH0sdGhpcy5vbkRhc2hib2FyZExvYWQkPXBlKHRoaXMuYWN0aW9ucyQucGlwZSgkUyhLRSx0UikscWUodGhpcy5zdG9yZS5zZWxlY3QoaFIpKSx3ZSgoKFssdF0sWyxlXSk9PnhEKHQsZSkpKSksdGhpcy5hY3Rpb25zJC5waXBlKCRTKFFFLEpFKSkpLnBpcGUocWUodGhpcy5zdG9yZS5zZWxlY3QoTVIpKSx1ZSgoKFssdF0pPT5hVC5oYXModCkpKSxZZSgxLHZvaWQgMCx7bGVhZGluZzohMH0pKSx0aGlzLmZldGNoV2ViQXBwRGF0YSQ9V1MoKCgpPT5wZSh0aGlzLm9uRGFzaGJvYXJkTG9hZCQucGlwZShxZSh0aGlzLnN0b3JlLnNlbGVjdChKQSksdGhpcy5zdG9yZS5zZWxlY3QoQkQpKSx1ZSgoKFsse3N0YXRlOnR9XSk9PnQhPT1VRS5MT0FESU5HKSksV2UoKCgpPT50aGlzLnN0b3JlLmRpc3BhdGNoKCRFKCkpKSksJHQoKChbLCx0XSk9PihmdW5jdGlvbiBlKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBuPUF0KHQpLG89ZmUodCk7cmV0dXJuIG8ubGVuZ3RoP25ldyBUKChmdW5jdGlvbih0KXt2YXIgZT1vLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm5bXX0pKSxpPW8ubWFwKChmdW5jdGlvbigpe3JldHVybiExfSkpO3QuYWRkKChmdW5jdGlvbigpe2U9aT1udWxsfSkpO2Zvcih2YXIgcz1mdW5jdGlvbihzKXt3dChvW3NdKS5zdWJzY3JpYmUobmV3IEgodCwoZnVuY3Rpb24obyl7aWYoZVtzXS5wdXNoKG8pLGUuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmxlbmd0aH0pKSl7dmFyIGw9ZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNoaWZ0KCl9KSk7dC5uZXh0KG4/bi5hcHBseSh2b2lkIDAscihbXSxhKGwpKSk6bCksZS5zb21lKChmdW5jdGlvbih0LGUpe3JldHVybiF0Lmxlbmd0aCYmaVtlXX0pKSYmdC5jb21wbGV0ZSgpfX0pLChmdW5jdGlvbigpe2lbc109ITAsIWVbc10ubGVuZ3RoJiZ0LmNvbXBsZXRlKCl9KSkpfSxsPTA7IXQuY2xvc2VkJiZsPG8ubGVuZ3RoO2wrKylzKGwpO3JldHVybiBmdW5jdGlvbigpe2U9aT1udWxsfX0pKTpkdH0pKHRoaXMud2ViYXBwRGF0YVNvdXJjZS5mZXRjaFBsdWdpbnNMaXN0aW5nKHQpLHRoaXMuZmV0Y2hFbnZpcm9ubWVudCgpKS5waXBlKFZ0KCgoW3RdKT0+e3RoaXMuc3RvcmUuZGlzcGF0Y2godEEoe3BsdWdpbnM6dH0pKX0pKSxoZSgodD0+KHRoaXMuc3RvcmUuZGlzcGF0Y2goZUEodCBpbnN0YW5jZW9mIEdFP3tmYWlsdXJlQ29kZTp0LmZhaWx1cmVDb2RlfTp7ZmFpbHVyZUNvZGU6TEUuVU5LTk9XTn0pKSxkdCkpKSkpKSksdGhpcy5vbkRhc2hib2FyZExvYWQkLnBpcGUoVnQoKChbLHRdKT0+dCkpLFZlKCh0PT50IT09X0QuQ09NUEFSRV9FWFBFUklNRU5UP3p0KFtdKTp0aGlzLnN0b3JlLnNlbGVjdChPUikucGlwZSh3ZSgoKHQsZSk9Pntjb25zdCBuPU9iamVjdC5lbnRyaWVzKHQpLG89bmV3IE1hcChPYmplY3QuZW50cmllcyhlKSk7aWYobi5sZW5ndGghPT1vLnNpemUpcmV0dXJuITE7Zm9yKGNvbnN0W3QsZV1vZiBuKXtpZighby5nZXQodCkpcmV0dXJuITE7aWYoby5nZXQodCkuYWxpYXNUZXh0IT09ZS5hbGlhc1RleHR8fG8uZ2V0KHQpLmFsaWFzTnVtYmVyIT09ZS5hbGlhc051bWJlcilyZXR1cm4hMX1yZXR1cm4hMH0pKSxQZSgwKSxZZSg1MDAsdm9pZCAwLHtsZWFkaW5nOiEwLHRyYWlsaW5nOiEwfSkpKSkscWUodGhpcy5zdG9yZS5zZWxlY3QoTVIpLHRoaXMuc3RvcmUuc2VsZWN0KFFBKSksdWUoKChbLHQsZV0pPT5hVC5oYXModCkmJmUuc3RhdGUhPT1VRS5MT0FESU5HKSksV2UoKCgpPT57dGhpcy5zdG9yZS5kaXNwYXRjaChuQSgpKX0pKSxWZSgoKCk9PnRoaXMucmVmcmVzaFBvbHltZXJSdW5zKCkpKSxXZSgoKCk9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKG9BKCkpfSkpLGhlKCgoKT0+KHRoaXMuc3RvcmUuZGlzcGF0Y2goaUEoKSksZHQpKSkpKSkse2Rpc3BhdGNoOiExfSksdGhpcy5kaXNwYXRjaENoYW5nZVBsdWdpbiQ9V1MoKCgpPT5wZSh0aGlzLm9uRGFzaGJvYXJkTG9hZCQsdGhpcy5hY3Rpb25zJC5waXBlKCRTKHRBKSkpLnBpcGUocWUodGhpcy5zdG9yZS5zZWxlY3QoZVQpKSxWdCgoKFssdF0pPT50KSksd2UoKSx1ZSgodD0+bnVsbCE9PXQpKSx2ZSgxKSxXZSgodD0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goWkUoe3BsdWdpbjp0fSkpfSkpKSkse2Rpc3BhdGNoOiExfSl9cmVmcmVzaFBvbHltZXJSdW5zKCl7cmV0dXJuIFB0KHRoaXMudGZCYWNrZW5kLnJlZi5ydW5zU3RvcmUucmVmcmVzaCgpKX1mZXRjaEVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMud2ViYXBwRGF0YVNvdXJjZS5mZXRjaEVudmlyb25tZW50KCkucGlwZShXZSgodD0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goYUEoe2Vudmlyb25tZW50OnR9KSl9KSkpfX1yVC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8clQpKFRyKFFTKSxUcihpUyksVHIoWUUpKX0sclQuybVwcm92PVNuKHt0b2tlbjpyVCxmYWN0b3J5OnJULsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihyVCxbe3R5cGU6VW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6UVN9LHt0eXBlOmlTfSx7dHlwZTpZRX1dfSksbnVsbCk7Y29uc3Qgc1Q9bmV3IGVyKCJDb3JlIEZlYXR1cmUgQ29uZmlnIik7ZnVuY3Rpb24gbFQodCl7cmV0dXJue2luaXRpYWxTdGF0ZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sWUEpLHthY3RpdmVQbHVnaW46dC5nZXRQbHVnaW5JZCgpfHxudWxsfSl9fWZ1bmN0aW9uIGNUKCl7cmV0dXJuIGJTKGlULCh0PT4oe3NpZGVCYXJXaWR0aEluUGVyY2VudDp0fSkpKX1jbGFzcyBkVHt9ZFQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGRUKX0sZFQuybVtb2Q9Zm8oe3R5cGU6ZFR9KSxkVC7JtWluaj1Ebih7cHJvdmlkZXJzOlt7cHJvdmlkZTpzVCxkZXBzOltUUl0sdXNlRmFjdG9yeTpsVH1dLGltcG9ydHM6W1toRC5mb3JGZWF0dXJlKFtyVF0pLFRTLmZvckZlYXR1cmUoR0EsWEEsc1QpLHFFLHpSLmRlZmluZUdsb2JhbFNldHRpbmcoY1QpXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGRULFt7dHlwZTpMXyxhcmdzOlt7aW1wb3J0czpbaEQuZm9yRmVhdHVyZShbclRdKSxUUy5mb3JGZWF0dXJlKEdBLFhBLHNUKSxxRSx6Ui5kZWZpbmVHbG9iYWxTZXR0aW5nKGNUKV0scHJvdmlkZXJzOlt7cHJvdmlkZTpzVCxkZXBzOltUUl0sdXNlRmFjdG9yeTpsVH1dfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oZFQse2ltcG9ydHM6W2dELEFTLHFFLHpSXX0pO2NvbnN0IHBUPW5ldyBlcigiW0FsZXJ0XSBBY3Rpb24tVG8tQWxlcnQgUHJvdmlkZXIiKTtjbGFzcyBtVHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnByb3ZpZGVycz1uZXcgTWFwO2Zvcihjb25zdCBlIG9mIHR8fFtdKWZvcihjb25zdCB0IG9mIGUpe2lmKHRoaXMucHJvdmlkZXJzLmhhcyh0LmFjdGlvbkNyZWF0b3IudHlwZSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYCIke3QuYWN0aW9uQ3JlYXRvci50eXBlfSIgaXMgYWxyZWFkeSByZWdpc3RlcmVkIGZvciBhbGVydHMuIE11bHRpcGxlIGFsZXJ0cyBmb3IgdGhlIHNhbWUgYWN0aW9uIGlzIG5vdCBhbGxvd2VkLmApO3RoaXMucHJvdmlkZXJzLnNldCh0LmFjdGlvbkNyZWF0b3IudHlwZSx0LmFsZXJ0RnJvbUFjdGlvbil9fWdldEFsZXJ0RnJvbUFjdGlvbih0KXtjb25zdCBlPXRoaXMucHJvdmlkZXJzLmdldCh0LnR5cGUpO3JldHVybiBlP2UodCk6bnVsbH1zdGF0aWMgcmVnaXN0ZXJBbGVydEFjdGlvbnModCl7cmV0dXJue25nTW9kdWxlOm1ULHByb3ZpZGVyczpbe3Byb3ZpZGU6cFQsbXVsdGk6ITAsdXNlRmFjdG9yeTp0fV19fX1tVC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bVQpKFRyKHBULDgpKX0sbVQuybVtb2Q9Zm8oe3R5cGU6bVR9KSxtVC7JtWluaj1Ebih7fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihtVCxbe3R5cGU6TF8sYXJnczpbe31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbcFRdfV19XX0pLG51bGwpO2NvbnN0IGZUPV9rKCJbUnVuc10gRmV0Y2ggUnVucyBSZXF1ZXN0ZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSx1VD1faygiW1J1bnNdIEZldGNoIFJ1bnMgU3VjY2VlZGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksZ1Q9X2soIltSdW5zXSBGZXRjaCBSdW5zIEZhaWxlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLGhUPV9rKCJbUnVuc10gUnVuIFNlbGVjdGlvbiBUb2dnbGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksYlQ9X2soIltSdW5zXSBSdW4gUGFnZSBTZWxlY3Rpb24gVG9nZ2xlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLHlUPV9rKCJbUnVuc10gUnVuIFNlbGVjdG9yIFBhZ2luYXRpb24gT3B0aW9uIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxfVD1faygiW1J1bnNdIFJ1biBTZWxlY3RvciBTb3J0IENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxDVD1faygiW1J1bnNdIFJ1biBTZWxlY3RvciBSZWdleCBGaWx0ZXIgQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLE1UPV9rKCJbUnVuc10gUnVuIENvbG9yIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSx2VD1faygiW1J1bnNdIFJ1biBUYWJsZSBTaG93biIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLHhUPV9rKCJbUnVuc10gUnVuIEdyb3VwIEJ5IENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KTt2YXIgT1QsUFQsd1Qsa1Q7IShmdW5jdGlvbih0KXt0LkRBVEFTRVRfVU5LTk9XTj0iREFUQVNFVF9VTktOT1dOIix0LkRBVEFTRVRfVFJBSU5JTkc9IkRBVEFTRVRfVFJBSU5JTkciLHQuREFUQVNFVF9WQUxJREFUSU9OPSJEQVRBU0VUX1ZBTElEQVRJT04ifSkoT1R8fChPVD17fSkpLChmdW5jdGlvbih0KXt0LlNUQVRVU19VTktOT1dOPSJTVEFUVVNfVU5LTk9XTiIsdC5TVEFUVVNfU1VDQ0VTUz0iU1RBVFVTX1NVQ0NFU1MiLHQuU1RBVFVTX0ZBSUxVUkU9IlNUQVRVU19GQUlMVVJFIix0LlNUQVRVU19SVU5OSU5HPSJTVEFUVVNfUlVOTklORyJ9KShQVHx8KFBUPXt9KSksKGZ1bmN0aW9uKHQpe3QuREFUQV9UWVBFX1VOU0VUPSJEQVRBX1RZUEVfVU5TRVQiLHQuREFUQV9UWVBFX1NUUklORz0iREFUQV9UWVBFX1NUUklORyIsdC5EQVRBX1RZUEVfQk9PTD0iREFUQV9UWVBFX0JPT0wiLHQuREFUQV9UWVBFX0ZMT0FUNjQ9IkRBVEFfVFlQRV9GTE9BVDY0In0pKHdUfHwod1Q9e30pKSwoZnVuY3Rpb24odCl7dFt0LkRJU0NSRVRFPTBdPSJESVNDUkVURSIsdFt0LklOVEVSVkFMPTFdPSJJTlRFUlZBTCJ9KShrVHx8KGtUPXt9KSk7Y2xhc3MgU1R7fVNULsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxTVCl9LFNULsm1cHJvdj1Tbih7dG9rZW46U1QsZmFjdG9yeTpTVC7JtWZhYyxwcm92aWRlZEluOiJyb290In0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoU1QsW3t0eXBlOlVtLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sbnVsbCxudWxsKTtjb25zdCBEVD1faygiW0hwYXJhbXNdIEhwYXJhbXMgRGlzY3JldGUgSHBhcmFtIEZpbHRlciBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksUlQ9X2soIltIcGFyYW1zXSBIcGFyYW1zIEludGVydmFsIEhwYXJhbSBGaWx0ZXIgQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLEVUPV9rKCJbSHBhcmFtc10gSHBhcmFtcyBNZXRyaWMgRmlsdGVyIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KTtmdW5jdGlvbiBBVCh0KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoWy4uLnRdLnNvcnQoKSl9ZnVuY3Rpb24gVFQodCl7dmFyIGUsbixvLGk7Y29uc3QgYT1uZXcgTWFwLHI9bmV3IE1hcCxzPW5ldyBNYXA7Zm9yKGNvbnN0IGEgb2YgdClmb3IoY29uc3RbdCxsXW9mIGEpaWYobC50eXBlPT09a1QuRElTQ1JFVEUpe2NvbnN0e3Bvc3NpYmxlVmFsdWVzOmUsdmFsdWVzOm59PXIuZ2V0KHQpfHx7cG9zc2libGVWYWx1ZXM6bmV3IFNldCx2YWx1ZXM6bmV3IFNldH07Zm9yKGNvbnN0IHQgb2YgbC5maWx0ZXJWYWx1ZXMpbi5hZGQodCk7Zm9yKGNvbnN0IHQgb2YgbC5wb3NzaWJsZVZhbHVlcyllLmFkZCh0KTtyLnNldCh0LHtwb3NzaWJsZVZhbHVlczplLHZhbHVlczpufSl9ZWxzZXtjb25zdCBhPXMuZ2V0KHQpO3Muc2V0KHQse2ZpbHRlckxvd2VyVmFsdWU6TWF0aC5taW4obC5maWx0ZXJMb3dlclZhbHVlLG51bGwhPT0oZT1udWxsPT1hP3ZvaWQgMDphLmZpbHRlckxvd2VyVmFsdWUpJiZ2b2lkIDAhPT1lP2U6MS8wKSxmaWx0ZXJVcHBlclZhbHVlOk1hdGgubWF4KGwuZmlsdGVyVXBwZXJWYWx1ZSxudWxsIT09KG49bnVsbD09YT92b2lkIDA6YS5maWx0ZXJVcHBlclZhbHVlKSYmdm9pZCAwIT09bj9uOi0xLzApLG1pblZhbHVlOk1hdGgubWluKGwubWluVmFsdWUsbnVsbCE9PShvPW51bGw9PWE/dm9pZCAwOmEubWluVmFsdWUpJiZ2b2lkIDAhPT1vP286MS8wKSxtYXhWYWx1ZTpNYXRoLm1heChsLm1heFZhbHVlLG51bGwhPT0oaT1udWxsPT1hP3ZvaWQgMDphLm1heFZhbHVlKSYmdm9pZCAwIT09aT9pOi0xLzApfSl9Zm9yKGNvbnN0W3Qse3ZhbHVlczplLHBvc3NpYmxlVmFsdWVzOm59XW9mIHIpYS5zZXQodCx7dHlwZTprVC5ESVNDUkVURSxpbmNsdWRlVW5kZWZpbmVkOiEwLHBvc3NpYmxlVmFsdWVzOlsuLi5uXSxmaWx0ZXJWYWx1ZXM6Wy4uLmVdfSk7Zm9yKGNvbnN0W3Qse21pblZhbHVlOmUsbWF4VmFsdWU6bixmaWx0ZXJMb3dlclZhbHVlOm8sZmlsdGVyVXBwZXJWYWx1ZTppfV1vZiBzKXtpZihhLmhhcyh0KSl7Y29uc3QgZT1hLmdldCh0KTtpZihlLnR5cGU9PT1rVC5ESVNDUkVURSYmZS5wb3NzaWJsZVZhbHVlcy5zb21lKCh0PT50KSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYENhbm5vdCBjb21iaW5lIGhwYXJhbSwgJHt0fSwgYXMgaXQgaXMgb2YgbWl4ZWQgdHlwZXMuYCl9YS5zZXQodCx7dHlwZTprVC5JTlRFUlZBTCxpbmNsdWRlVW5kZWZpbmVkOiEwLG1pblZhbHVlOmUsbWF4VmFsdWU6bixmaWx0ZXJMb3dlclZhbHVlOm8sZmlsdGVyVXBwZXJWYWx1ZTppfSl9cmV0dXJuIGF9ZnVuY3Rpb24gTlQodCl7dmFyIGUsbixvLGk7Y29uc3QgYT1uZXcgTWFwO2Zvcihjb25zdCByIG9mIHQpZm9yKGNvbnN0W3Qsc11vZiByKXtjb25zdCByPWEuZ2V0KHQpO2Euc2V0KHQsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt0eXBlOmtULklOVEVSVkFMLGluY2x1ZGVVbmRlZmluZWQ6ITB9LHIpLHttaW5WYWx1ZTpNYXRoLm1pbihzLm1pblZhbHVlLG51bGwhPT0oZT1udWxsPT1yP3ZvaWQgMDpyLm1pblZhbHVlKSYmdm9pZCAwIT09ZT9lOjEvMCksbWF4VmFsdWU6TWF0aC5tYXgocy5tYXhWYWx1ZSxudWxsIT09KG49bnVsbD09cj92b2lkIDA6ci5tYXhWYWx1ZSkmJnZvaWQgMCE9PW4/bjotMS8wKSxmaWx0ZXJMb3dlclZhbHVlOk1hdGgubWluKHMuZmlsdGVyTG93ZXJWYWx1ZSxudWxsIT09KG89bnVsbD09cj92b2lkIDA6ci5maWx0ZXJMb3dlclZhbHVlKSYmdm9pZCAwIT09bz9vOjEvMCksZmlsdGVyVXBwZXJWYWx1ZTpNYXRoLm1heChzLmZpbHRlclVwcGVyVmFsdWUsbnVsbCE9PShpPW51bGw9PXI/dm9pZCAwOnIuZmlsdGVyVXBwZXJWYWx1ZSkmJnZvaWQgMCE9PWk/aTotMS8wKX0pKX1yZXR1cm4gYX1jb25zdCB6VD1WUyh7c3BlY3M6e30sZmlsdGVyczp7fX0sQlMoRFQsKCh0LGUpPT57dmFyIG47Y29uc3R7ZXhwZXJpbWVudElkczpvLGhwYXJhbU5hbWU6aSxmaWx0ZXJWYWx1ZXM6YSxpbmNsdWRlVW5kZWZpbmVkOnJ9PWUscz1BVChvKSxsPW51bGwhPT0obj10LmZpbHRlcnNbc10pJiZ2b2lkIDAhPT1uP246e2hwYXJhbXM6bmV3IE1hcH0sYz1sLmhwYXJhbXMuZ2V0KGkpO2lmKGMmJmMudHlwZSE9PWtULkRJU0NSRVRFKXRocm93IG5ldyBSYW5nZUVycm9yKGBOZXcgZGlzY3JldGUgZmlsdGVyIG9mICR7aX0gY29uZmxpY3RzIGV4aXN0aW5nIGZpbHRlciBvZiBgK2tUW2MudHlwZV0pO2NvbnN0IGQ9VFQoby5maWx0ZXIoKGU9PkJvb2xlYW4odC5zcGVjc1tlXSkpKS5tYXAoKGU9PnQuc3BlY3NbZV0uaHBhcmFtLmRlZmF1bHRGaWx0ZXJzKSkpLmdldChpKTtpZighZCl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBzZXQgaHBhcmFtLCAke2l9LCB3aGVuIGl0IGlzIG5vdCBrbm93biBmb3IgZXhwZXJpbWVudElkczogJHtvLmpvaW4oIiwgIil9YCk7aWYoZC50eXBlIT09a1QuRElTQ1JFVEUpdGhyb3cgbmV3IEVycm9yKGBDYW5ub3Qgc2V0ICR7aX0gd2hlbiBkZWZhdWx0IGZpbHRlciBpcyBub3Qgb2YgZGlzY3JldGUgdHlwZS5gKTtjb25zdCBwPW5ldyBTZXQoZC5wb3NzaWJsZVZhbHVlcyksbT1bLi4uYV0uZmlsdGVyKCh0PT4hcC5oYXModCkpKTtpZihtLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYE5ldyBmaWx0ZXIgZm9yICR7aX0gaGFzIG1vcmUgdGhhbiBvbmUgdmFsdWUgdGhhdCBpcyBub3QgcHJlc2VudCBpbiB0aGUgc3BlYy4gQmFkIHZhbHVlczogJHttLmpvaW4oIiwgIil9YCk7Y29uc3QgZj1uZXcgTWFwKGwuaHBhcmFtcyk7cmV0dXJuIGYuc2V0KGksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGMpLHt0eXBlOmtULkRJU0NSRVRFLGluY2x1ZGVVbmRlZmluZWQ6cixwb3NzaWJsZVZhbHVlczpbLi4ucF0sZmlsdGVyVmFsdWVzOmF9KSksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtmaWx0ZXJzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmZpbHRlcnMpLHtbc106T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGwpLHtocGFyYW1zOmZ9KX0pfSl9KSksQlMoUlQsKCh0LGUpPT57dmFyIG47Y29uc3R7ZXhwZXJpbWVudElkczpvLGhwYXJhbU5hbWU6aSxmaWx0ZXJMb3dlclZhbHVlOmEsZmlsdGVyVXBwZXJWYWx1ZTpyLGluY2x1ZGVVbmRlZmluZWQ6c309ZSxsPUFUKG8pLGM9bnVsbCE9PShuPXQuZmlsdGVyc1tsXSkmJnZvaWQgMCE9PW4/bjp7bWV0cmljczpuZXcgTWFwLGhwYXJhbXM6bmV3IE1hcH0sZD1jLmhwYXJhbXMuZ2V0KGkpO2lmKGQmJmQudHlwZSE9PWtULklOVEVSVkFMKXRocm93IG5ldyBSYW5nZUVycm9yKGBOZXcgaW50ZXJ2YWwgZmlsdGVyIG9mICR7aX0gY29uZmxpY3RzIGV4aXN0aW5nIGZpbHRlciBvZiBgK2tUW2QudHlwZV0pO2NvbnN0IHA9VFQoby5maWx0ZXIoKGU9PkJvb2xlYW4odC5zcGVjc1tlXSkpKS5tYXAoKGU9PnQuc3BlY3NbZV0uaHBhcmFtLmRlZmF1bHRGaWx0ZXJzKSkpLmdldChpKTtpZighcCl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBzZXQgaHBhcmEsICR7aX0sIHdoZW4gaXQgaXMgbm90IGtub3duIGZvciBleHBlcmltZW50SWRzOiAke28uam9pbigiLCAiKX1gKTtpZihwLnR5cGUhPT1rVC5JTlRFUlZBTCl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBzZXQgJHtpfSB3aGVuIGRlZmF1bHQgZmlsdGVyIGlzIG5vdCBvZiBpbnRlcnZhbCB0eXBlLmApO2NvbnN0IG09bmV3IE1hcChjLmhwYXJhbXMpO3JldHVybiBtLnNldChpLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxkKSx7dHlwZTprVC5JTlRFUlZBTCxpbmNsdWRlVW5kZWZpbmVkOnMsbWluVmFsdWU6cC5taW5WYWx1ZSxtYXhWYWx1ZTpwLm1heFZhbHVlLGZpbHRlckxvd2VyVmFsdWU6YSxmaWx0ZXJVcHBlclZhbHVlOnJ9KSksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtmaWx0ZXJzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmZpbHRlcnMpLHtbbF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGMpLHtocGFyYW1zOm19KX0pfSl9KSksQlMoRVQsKCh0LGUpPT57dmFyIG47Y29uc3R7ZXhwZXJpbWVudElkczpvLG1ldHJpY1RhZzppLGZpbHRlckxvd2VyVmFsdWU6YSxmaWx0ZXJVcHBlclZhbHVlOnIsaW5jbHVkZVVuZGVmaW5lZDpzfT1lLGw9QVQobyksYz1udWxsIT09KG49dC5maWx0ZXJzW2xdKSYmdm9pZCAwIT09bj9uOnttZXRyaWNzOm5ldyBNYXAsaHBhcmFtczpuZXcgTWFwfSxkPU5UKG8uZmlsdGVyKChlPT5Cb29sZWFuKHQuc3BlY3NbZV0pKSkubWFwKChlPT50LnNwZWNzW2VdLm1ldHJpYy5kZWZhdWx0RmlsdGVycykpKS5nZXQoaSk7aWYoIWQpdGhyb3cgbmV3IEVycm9yKGBDYW5ub3Qgc2V0IG1ldHJpYywgJHtpfSwgd2hlbiBpdCBpcyBub3Qga25vd24gZm9yIGV4cGVyaW1lbnRJZHM6ICR7by5qb2luKCIsICIpfWApO2NvbnN0IHA9Yy5tZXRyaWNzLmdldChpKSxtPW5ldyBNYXAoYy5tZXRyaWNzKTtyZXR1cm4gbS5zZXQoaSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scCkse3R5cGU6a1QuSU5URVJWQUwsaW5jbHVkZVVuZGVmaW5lZDpzLG1pblZhbHVlOmQubWluVmFsdWUsbWF4VmFsdWU6ZC5tYXhWYWx1ZSxmaWx0ZXJMb3dlclZhbHVlOmEsZmlsdGVyVXBwZXJWYWx1ZTpyfSkpLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7ZmlsdGVyczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5maWx0ZXJzKSx7W2xdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxjKSx7bWV0cmljczptfSl9KX0pfSkpLEJTKHVULCgodCxlKT0+e3ZhciBuLG8saSxhO2lmKDA9PT1PYmplY3Qua2V5cyhlLm5ld1J1bnNBbmRNZXRhZGF0YSkubGVuZ3RoKXJldHVybiB0O2NvbnN0IHI9T2JqZWN0LmFzc2lnbih7fSx0LnNwZWNzKSxzPW5ldyBNYXAsbD1uZXcgU2V0O2Zvcihjb25zdCB0IG9mIE9iamVjdC5rZXlzKGUubmV3UnVuc0FuZE1ldGFkYXRhKSl7Y29uc3QgYz1uZXcgTWFwLGQ9bmV3IE1hcCxwPW5ldyBNYXAsbT1uZXcgTWFwLHtydW5zOmYsbWV0YWRhdGE6dX09ZS5uZXdSdW5zQW5kTWV0YWRhdGFbdF07Zm9yKGNvbnN0IHQgb2YgZil7Y29uc3QgZT11LnJ1blRvSHBhcmFtc0FuZE1ldHJpY3NbdC5pZF07aWYoZSlmb3IoY29uc3QgdCBvZiBlLm1ldHJpY3Mpe2NvbnN0IGU9cy5nZXQodC50YWcpO3Muc2V0KHQudGFnLHttaW46ZT9NYXRoLm1pbihlLm1pbix0LnZhbHVlKTp0LnZhbHVlLG1heDplP01hdGgubWF4KGUubWF4LHQudmFsdWUpOnQudmFsdWV9KX19Zm9yKGNvbnN0e25hbWU6dCxkb21haW46ZX1vZiB1LmhwYXJhbVNwZWNzKWlmKGUudHlwZT09PWtULkRJU0NSRVRFKXtjb25zdCBuPXAuZ2V0KHQpfHxuZXcgU2V0O2Zvcihjb25zdCB0IG9mIGUudmFsdWVzKW4uYWRkKHQpO3Auc2V0KHQsbil9ZWxzZXtjb25zdCBuPW0uZ2V0KHQpO20uc2V0KHQse21pblZhbHVlOm4/TWF0aC5taW4oZS5taW5WYWx1ZSxuLm1pblZhbHVlKTplLm1pblZhbHVlLG1heFZhbHVlOm4/TWF0aC5tYXgoZS5tYXhWYWx1ZSxuLm1heFZhbHVlKTplLm1heFZhbHVlfSl9Zm9yKGNvbnN0IHQgb2YgdS5tZXRyaWNTcGVjcylsLmFkZCh0LnRhZyk7Zm9yKGNvbnN0W3QsZV1vZiBwKWMuc2V0KHQse3R5cGU6a1QuRElTQ1JFVEUsaW5jbHVkZVVuZGVmaW5lZDohMCxwb3NzaWJsZVZhbHVlczpbLi4uZV0sZmlsdGVyVmFsdWVzOlsuLi5lXX0pO2Zvcihjb25zdFt0LHttaW5WYWx1ZTplLG1heFZhbHVlOm59XW9mIG0pYy5zZXQodCx7dHlwZTprVC5JTlRFUlZBTCxpbmNsdWRlVW5kZWZpbmVkOiEwLG1pblZhbHVlOmUsbWF4VmFsdWU6bixmaWx0ZXJMb3dlclZhbHVlOmUsZmlsdGVyVXBwZXJWYWx1ZTpufSk7Zm9yKGNvbnN0IHQgb2YgbCl7Y29uc3QgZT1zLmdldCh0KSxpPW51bGwhPT0obj1udWxsPT1lP3ZvaWQgMDplLm1pbikmJnZvaWQgMCE9PW4/bjowLGE9bnVsbCE9PShvPW51bGw9PWU/dm9pZCAwOmUubWF4KSYmdm9pZCAwIT09bz9vOjA7ZC5zZXQodCx7dHlwZTprVC5JTlRFUlZBTCxpbmNsdWRlVW5kZWZpbmVkOiEwLG1pblZhbHVlOmksbWF4VmFsdWU6YSxmaWx0ZXJMb3dlclZhbHVlOmksZmlsdGVyVXBwZXJWYWx1ZTphfSl9clt0XT17aHBhcmFtOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxudWxsPT09KGk9clt0XSl8fHZvaWQgMD09PWk/dm9pZCAwOmkuaHBhcmFtKSx7c3BlY3M6dS5ocGFyYW1TcGVjcyxkZWZhdWx0RmlsdGVyczpjfSksbWV0cmljOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxudWxsPT09KGE9clt0XSl8fHZvaWQgMD09PWE/dm9pZCAwOmEubWV0cmljKSx7c3BlY3M6dS5tZXRyaWNTcGVjcyxkZWZhdWx0RmlsdGVyczpkfSl9fXJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NwZWNzOnJ9KX0pKSk7ZnVuY3Rpb24gSVQodCxlKXtyZXR1cm4gelQodCxlKX1jb25zdCBIVD0iaHBhcmFtcyI7Y2xhc3MgRlR7fUZULsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxGVCl9LEZULsm1bW9kPWZvKHt0eXBlOkZUfSksRlQuybVpbmo9RG4oe2ltcG9ydHM6W1tUUy5mb3JGZWF0dXJlKEhULElUKV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihGVCxbe3R5cGU6TF8sYXJnczpbe2ltcG9ydHM6W1RTLmZvckZlYXR1cmUoSFQsSVQpXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKEZULHtpbXBvcnRzOltBU119KTtjbGFzcyBMVHt9ZnVuY3Rpb24gQlQodCxlKXtyZXR1cm5gJHtlfS8ke3R9YH1MVC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TFQpfSxMVC7JtW1vZD1mbyh7dHlwZTpMVH0pLExULsm1aW5qPURuKHtpbXBvcnRzOltbRlRdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoTFQsW3t0eXBlOkxfLGFyZ3M6W3tpbXBvcnRzOltGVF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhMVCx7aW1wb3J0czpbRlRdfSk7Y2xhc3MgVlR7Y29uc3RydWN0b3IodCl7dGhpcy5odHRwPXR9ZmV0Y2hSdW5zKHQpe3JldHVybiB0aGlzLmh0dHAuZ2V0KCJkYXRhL3J1bnMiKS5waXBlKFZ0KChlPT5lLm1hcCgoZT0+KHtpZDpCVChlLHQpLG5hbWU6ZSxzdGFydFRpbWU6MH0pKSkpKSl9ZmV0Y2hIcGFyYW1zTWV0YWRhdGEodCl7cmV0dXJuIHp0KHtocGFyYW1TcGVjczpbXSxtZXRyaWNTcGVjczpbXSxydW5Ub0hwYXJhbXNBbmRNZXRyaWNzOnt9fSl9fVZULsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxWVCkoVHIoSEUpKX0sVlQuybVwcm92PVNuKHt0b2tlbjpWVCxmYWN0b3J5OlZULsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihWVCxbe3R5cGU6VW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6SEV9XX0pLG51bGwpO2NsYXNzIGpUe31qVC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8alQpfSxqVC7JtW1vZD1mbyh7dHlwZTpqVH0pLGpULsm1aW5qPURuKHtwcm92aWRlcnM6W3twcm92aWRlOlNULHVzZUNsYXNzOlZUfV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGpULFt7dHlwZTpMXyxhcmdzOlt7cHJvdmlkZXJzOlt7cHJvdmlkZTpTVCx1c2VDbGFzczpWVH1dfV19XSxudWxsLG51bGwpO2NvbnN0IFVUPSJhbGVydHMiLFdUPWJTKF9TKFVUKSwodD0+dC5sYXRlc3RBbGVydCkpLEdUPSJleHBlcmltZW50cyIsWVQ9YlMoX1MoR1QpLCh0PT50LmRhdGEpKSxxVD1iUyhZVCwoKHQsZSk9Pntjb25zdHtleHBlcmltZW50SWQ6bn09ZTtyZXR1cm4gdC5leHBlcmltZW50TWFwW25dfHxudWxsfSkpOwovKiEgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLgoKICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQogICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLgoKICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRICiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkKICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCwKICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTQogICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IKICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IKICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuCiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLwpmdW5jdGlvbiBaVCh0LGUpe3ZhciBuPXt9O2Zvcih2YXIgbyBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG8pJiZlLmluZGV4T2Yobyk8MCYmKG5bb109dFtvXSk7aWYobnVsbCE9dCYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBpPTA7Zm9yKG89T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPG8ubGVuZ3RoO2krKyllLmluZGV4T2Yob1tpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQsb1tpXSkmJihuW29baV1dPXRbb1tpXV0pfXJldHVybiBufWZ1bmN0aW9uIFhUKHQsZSxuLG8pe3JldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKChmdW5jdGlvbihpLGEpe2Z1bmN0aW9uIHIodCl7dHJ5e2woby5uZXh0KHQpKX1jYXRjaCh0KXthKHQpfX1mdW5jdGlvbiBzKHQpe3RyeXtsKG8udGhyb3codCkpfWNhdGNoKHQpe2EodCl9fWZ1bmN0aW9uIGwodCl7dC5kb25lP2kodC52YWx1ZSk6KGZ1bmN0aW9uIGUodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBuP3Q6bmV3IG4oKGZ1bmN0aW9uKGUpe2UodCl9KSl9KSh0LnZhbHVlKS50aGVuKHIscyl9bCgobz1vLmFwcGx5KHQsZXx8W10pKS5uZXh0KCkpfSkpfXZhciBLVCxKVCxRVDshKGZ1bmN0aW9uKHQpe3QuU0NBTEFSUz0ic2NhbGFycyIsdC5ISVNUT0dSQU1TPSJoaXN0b2dyYW1zIix0LklNQUdFUz0iaW1hZ2VzIn0pKEtUfHwoS1Q9e30pKSwoZnVuY3Rpb24odCl7dC5ERUZBVUxUPSJkZWZhdWx0Iix0LkFMUEhBQkVUSUNBTD0iYWxwaGFiZXRpY2FsIix0LkFTQ0VORElORz0iYXNjZW5kaW5nIix0LkRFU0NFTkRJTkc9ImRlc2NlbmRpbmciLHQuTkVBUkVTVD0ibmVhcmVzdCJ9KShKVHx8KEpUPXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5TVEVQPTBdPSJTVEVQIix0W3QuUkVMQVRJVkU9MV09IlJFTEFUSVZFIix0W3QuV0FMTF9USU1FPTJdPSJXQUxMX1RJTUUifSkoUVR8fChRVD17fSkpO2NvbnN0ICRUPSJ0aW1lc2VyaWVzIjtjb25zdCB0Tj1bS1QuSU1BR0VTXTtmdW5jdGlvbiBlTih0KXtyZXR1cm4gdE4uaW5jbHVkZXModCl9Y29uc3Qgbk49W0tULkhJU1RPR1JBTVMsS1QuSU1BR0VTXTtmdW5jdGlvbiBvTih0KXtyZXR1cm4gbk4uaW5jbHVkZXModCl9ZnVuY3Rpb24gaU4odCl7cmV0dXJuIG9OKHQucGx1Z2luKX1jbGFzcyBhTnt9ZnVuY3Rpb24gck4odCl7cmV0dXJuIHQuaGFzT3duUHJvcGVydHkoImVycm9yIil9Y29uc3Qgc049ImRhdGEvcGx1Z2luL3RpbWVzZXJpZXMiO2Z1bmN0aW9uIGxOKHQpe2NvbnN0IGU9dC5pbmRleE9mKCIvIik7cmV0dXJue3J1bjp0LnN1YnN0cmluZyhlKzEpLGV4cGVyaW1lbnRJZDp0LnN1YnN0cmluZygwLGUpfX1mdW5jdGlvbiBjTih0LGUpe3JldHVybmAke2V9LyR7dH1gfWZ1bmN0aW9uIGROKHQsZSl7Y29uc3R7cnVuVG9TZXJpZXM6bixydW46b309dCxpPVpUKHQsWyJydW5Ub1NlcmllcyIsInJ1biJdKSxhPU9iamVjdC5hc3NpZ24oe30saSk7cmV0dXJuIG4mJihhLnJ1blRvU2VyaWVzPXBOKG4sZSkpLG8mJihhLnJ1bklkPWNOKG8sZSkpLGF9ZnVuY3Rpb24gcE4odCxlKXtjb25zdCBuPXt9O2Zvcihjb25zdCBvIGluIHQpaWYodC5oYXNPd25Qcm9wZXJ0eShvKSl7bltjTihvLGUpXT10W29dfXJldHVybiBufWNsYXNzIG1Oe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5odHRwPXQsdGhpcy5zdG9yZT1lfWZldGNoVGFnTWV0YWRhdGEodCl7Y29uc3QgZT10Lm1hcCgodD0+dGhpcy5odHRwLmdldChgL2V4cGVyaW1lbnQvJHt0fS8ke3NOfS90YWdzYCkucGlwZShWdCgoZT0+KGZ1bmN0aW9uIG4odCxlKXtjb25zdCBuPXt9O2Zvcihjb25zdCBvIG9mIE9iamVjdC5rZXlzKHQpKXtjb25zdCBpPW87aWYoZU4oaSkpe2NvbnN0IG89dFtpXSx7dGFnUnVuU2FtcGxlZEluZm86YX09byxyPVpUKG8sWyJ0YWdSdW5TYW1wbGVkSW5mbyJdKSxzPXt9O2Zvcihjb25zdCB0IGluIGEpYS5oYXNPd25Qcm9wZXJ0eSh0KSYmKHNbdF09cE4oYVt0XSxlKSk7bltpXT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scikse3RhZ1J1blNhbXBsZWRJbmZvOnN9KX1lbHNle2NvbnN0IG89dFtpXSx7cnVuVGFnSW5mbzphfT1vLHI9WlQobyxbInJ1blRhZ0luZm8iXSk7bltpXT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scikse3J1blRhZ0luZm86cE4oYSxlKX0pfX1yZXR1cm4gbn0pKGUsdCkpKSkpKSxuPXRoaXMuc3RvcmUuc2VsZWN0KE5EKS5waXBlKHVlKEJvb2xlYW4pLHZlKDEpLHFlKHRoaXMuc3RvcmUuc2VsZWN0KFdEKSksVnQoKChbLHRdKT0+dCkpKTtyZXR1cm4gaWUoZSkucGlwZShxZShuKSxWdCgoKFt0LGVdKT0+e2NvbnN0IG49KGZ1bmN0aW9uIG8odCl7Y29uc3QgZT17fTtmb3IoY29uc3QgbiBvZiB0KWZvcihjb25zdCB0IG9mIE9iamVjdC52YWx1ZXMoS1QpKWlmKGVOKHQpKXtlW3RdPWVbdF18fHt0YWdEZXNjcmlwdGlvbnM6e30sdGFnUnVuU2FtcGxlZEluZm86e319O2NvbnN0e3RhZ0Rlc2NyaXB0aW9uczpvLHRhZ1J1blNhbXBsZWRJbmZvOml9PW5bdF07ZVt0XS50YWdEZXNjcmlwdGlvbnM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGVbdF0udGFnRGVzY3JpcHRpb25zKSxvKTtjb25zdCBhPWVbdF0udGFnUnVuU2FtcGxlZEluZm87Zm9yKGNvbnN0IHQgb2YgT2JqZWN0LmtleXMoaSkpe2FbdF09YVt0XXx8e307Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmtleXMoaVt0XSkpYVt0XVtlXT1pW3RdW2VdfX1lbHNle2VbdF09ZVt0XXx8e3RhZ0Rlc2NyaXB0aW9uczp7fSxydW5UYWdJbmZvOnt9fTtjb25zdHt0YWdEZXNjcmlwdGlvbnM6byxydW5UYWdJbmZvOml9PW5bdF07ZVt0XS50YWdEZXNjcmlwdGlvbnM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGVbdF0udGFnRGVzY3JpcHRpb25zKSxvKSxlW3RdLnJ1blRhZ0luZm89T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGVbdF0ucnVuVGFnSW5mbyksaSl9cmV0dXJuIGV9KSh0KTtyZXR1cm4gZXx8KG5bS1QuSU1BR0VTXT17dGFnRGVzY3JpcHRpb25zOnt9LHRhZ1J1blNhbXBsZWRJbmZvOnt9fSksbn0pKSl9ZmV0Y2hUaW1lU2VyaWVzKHQpe2NvbnN0IGU9dC5tYXAoKHQ9PntpZihvTih0LnBsdWdpbikpe2NvbnN0IGU9dCx7cnVuSWQ6bn09ZSxvPVpUKGUsWyJydW5JZCJdKSx7cnVuOmksZXhwZXJpbWVudElkOmF9PWxOKG4pLHI9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG8pLHtydW46aX0pO3JldHVybiB0aGlzLmZldGNoVGltZVNlcmllc0JhY2tlbmRSZXF1ZXN0KHIsYSkucGlwZShWdCgoKHtyZXNwb25zZTp0LGV4cGVyaW1lbnRJZDplfSk9PmROKHQsZSkpKSl9Y29uc3QgZT10LHtleHBlcmltZW50SWRzOm59PWUsbz1aVChlLFsiZXhwZXJpbWVudElkcyJdKTtyZXR1cm4gaWUobi5tYXAoKHQ9PnRoaXMuZmV0Y2hUaW1lU2VyaWVzQmFja2VuZFJlcXVlc3Qobyx0KSkpKS5waXBlKFZ0KCh0PT57Y29uc3QgZT1aVCh0WzBdLnJlc3BvbnNlLFsicnVuVG9TZXJpZXMiLCJlcnJvciJdKTtmb3IoY29uc3R7cmVzcG9uc2U6bixleHBlcmltZW50SWQ6b31vZiB0KXtjb25zdCB0PWROKG4sbyk7aWYoZS5lcnJvciljb250aW51ZTtjb25zdHtydW5Ub1NlcmllczppLGVycm9yOmF9PXQ7aWYoYSllLmVycm9yPWEsZS5ydW5Ub1Nlcmllcz12b2lkIDA7ZWxzZXtlLnJ1blRvU2VyaWVzPWUucnVuVG9TZXJpZXN8fHt9O2Zvcihjb25zdCB0IG9mIE9iamVjdC5rZXlzKGkpKWUucnVuVG9TZXJpZXNbdF09aVt0XX19cmV0dXJuIGV9KSkpfSkpO3JldHVybiBpZShlKX1mZXRjaFRpbWVTZXJpZXNCYWNrZW5kUmVxdWVzdCh0LGUpe2NvbnN0IG49bmV3IEZvcm1EYXRhO3JldHVybiBuLmFwcGVuZCgicmVxdWVzdHMiLEpTT04uc3RyaW5naWZ5KFt0XSkpLHRoaXMuaHR0cC5wb3N0KGAvZXhwZXJpbWVudC8ke2V9LyR7c059L3RpbWVTZXJpZXNgLG4pLnBpcGUoVnQoKHQ9Pih7cmVzcG9uc2U6dFswXSxleHBlcmltZW50SWQ6ZX0pKSkpfWltYWdlVXJsKHQpe3JldHVybmAke3NOfS9pbWFnZURhdGE/aW1hZ2VJZD0ke3R9YH1kb3dubG9hZFVybCh0LGUsbixvKXtjb25zdHtydW46aSxleHBlcmltZW50SWQ6YX09bE4obik7bGV0IHI7c3dpdGNoKHQpe2Nhc2UgS1QuU0NBTEFSUzpyPSJzY2FsYXJzL3NjYWxhcnMiO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBOb3QgaW1wbGVtZW50ZWQ6IGRvd25sb2FkVXJsIGZvciAke3R9IGlzIG5vdCBpbXBsZW1lbnRlZCB5ZXRgKX1pZighYSl0aHJvdyBuZXcgRXJyb3IoImV4cGVyaW1lbnRJZCBpcyBlbXB0eTsgaXQgaXMgcmVxdWlyZWQgdG8gZm9ybSBkb3dubG9hZFVybC4iKTtyZXR1cm5gL2V4cGVyaW1lbnQvJHthfS9kYXRhL3BsdWdpbi8ke3J9PyR7bmV3IFVSTFNlYXJjaFBhcmFtcyh7dGFnOmUscnVuOmksZm9ybWF0Om99KX1gfX1tTi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bU4pKFRyKEhFKSxUcihpUykpfSxtTi7JtXByb3Y9U24oe3Rva2VuOm1OLGZhY3Rvcnk6bU4uybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKG1OLFt7dHlwZTpVbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpIRX0se3R5cGU6aVN9XX0pLG51bGwpO2NvbnN0IGZOPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7Y2xhc3MgdU57Z2V0UGFyYW1zKCl7cmV0dXJuIGZOfX11Ti7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dU4pfSx1Ti7JtXByb3Y9U24oe3Rva2VuOnVOLGZhY3Rvcnk6dU4uybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHVOLFt7dHlwZTpVbX1dLG51bGwsbnVsbCk7Y2xhc3MgZ057fWdOLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxnTil9LGdOLsm1cHJvdj1Tbih7dG9rZW46Z04sZmFjdG9yeTpnTi7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZ04sW3t0eXBlOlVtfV0sbnVsbCxudWxsKTtjb25zdCBoTj0iZXhwZXJpbWVudGFsUGx1Z2luIixiTj0ic2NhbGFyc0JhdGNoU2l6ZSIseU49ImVuYWJsZUNhcmRXaWR0aFNldHRpbmciLF9OPSJlbmFibGVDb2xvckdyb3VwIixDTj0iZW5hYmxlQ29sb3JHcm91cEJ5UmVnZXgiLE1OPSJkYXJrTW9kZSIsdk49ImVuYWJsZUxpbmtUaW1lIix4Tj0iZW5hYmxlVGltZU5hbWVzcGFjZWRTdGF0ZSI7Y2xhc3MgT057Y29uc3RydWN0b3IodCl7dGhpcy5xdWVyeVBhcmFtcz10fWdldEZlYXR1cmVzKHQ9ITEpe2NvbnN0IGU9dGhpcy5xdWVyeVBhcmFtcy5nZXRQYXJhbXMoKSxuPXQ/dGhpcy5nZXRQYXJ0aWFsRmVhdHVyZXNGcm9tTWVkaWFRdWVyeSgpOnt9O3JldHVybiBlLmhhcyhoTikmJihuLmVuYWJsZWRFeHBlcmltZW50YWxQbHVnaW5zPWUuZ2V0QWxsKGhOKSksZS5oYXMoInRlbnNvcmJvYXJkQ29sYWIiKSYmKG4uaW5Db2xhYj0idHJ1ZSI9PT1lLmdldCgidGVuc29yYm9hcmRDb2xhYiIpKSxlLmhhcyhiTikmJihuLnNjYWxhcnNCYXRjaFNpemU9TnVtYmVyKGUuZ2V0KGJOKSkpLGUuaGFzKF9OKSYmKG4uZW5hYmxlZENvbG9yR3JvdXA9ImZhbHNlIiE9PWUuZ2V0KF9OKSksZS5oYXMoQ04pJiYobi5lbmFibGVkQ29sb3JHcm91cEJ5UmVnZXg9ImZhbHNlIiE9PWUuZ2V0KENOKSksZS5oYXMoTU4pJiYobi5kZWZhdWx0RW5hYmxlRGFya01vZGU9ImZhbHNlIiE9PWUuZ2V0KE1OKSksZS5oYXModk4pJiYobi5lbmFibGVkTGlua2VkVGltZT0iZmFsc2UiIT09ZS5nZXQodk4pKSxlLmhhcyh5TikmJihuLmVuYWJsZWRDYXJkV2lkdGhTZXR0aW5nPSJmYWxzZSIhPT1lLmdldCh5TikpLGUuaGFzKHhOKSYmKG4uZW5hYmxlZFRpbWVOYW1lc3BhY2VkU3RhdGU9ImZhbHNlIiE9PWUuZ2V0KHhOKSksbn1nZXRQYXJ0aWFsRmVhdHVyZXNGcm9tTWVkaWFRdWVyeSgpe2NvbnN0IHQ9e307cmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIikubWF0Y2hlcyYmKHQuZGVmYXVsdEVuYWJsZURhcmtNb2RlPSEwKSx0fX1PTi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8T04pKFRyKHVOKSl9LE9OLsm1cHJvdj1Tbih7dG9rZW46T04sZmFjdG9yeTpPTi7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoT04sW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnVOfV19KSxudWxsKTtjbGFzcyBQTnt9UE4uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFBOKX0sUE4uybVtb2Q9Zm8oe3R5cGU6UE59KSxQTi7JtWluaj1Ebih7cHJvdmlkZXJzOltPTix1Tix7cHJvdmlkZTpnTix1c2VDbGFzczpPTn1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihQTixbe3R5cGU6TF8sYXJnczpbe3Byb3ZpZGVyczpbT04sdU4se3Byb3ZpZGU6Z04sdXNlQ2xhc3M6T059XX1dfV0sbnVsbCxudWxsKTtjb25zdCB3Tj1faygiW0ZFQVRVUkUgRkxBR10gUGFydGlhbCBGZWF0dXJlIEZsYWdzIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLGtOPV9rKCJbRkVBVFVSRSBGTEFHXSBFbmFibGUgRGFyayBNb2RlIE92ZXJyaWRlIENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxTTj1faygiW0ZFQVRVUkUgRkxBR10gRWZmZWN0cyBJbml0Iik7Y2xhc3MgRE57Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuYWN0aW9ucyQ9dCx0aGlzLnN0b3JlPWUsdGhpcy5kYXRhU291cmNlPW4sdGhpcy5nZXRGZWF0dXJlRmxhZ3MkPVdTKCgoKT0+dGhpcy5hY3Rpb25zJC5waXBlKCRTKFNOKSxfZSh0aGlzLnN0b3JlLnNlbGVjdChIRCkpLFZ0KCgoWyx0XSk9Pntjb25zdCBlPXRoaXMuZGF0YVNvdXJjZS5nZXRGZWF0dXJlcyh0KTtyZXR1cm4gd04oe2ZlYXR1cmVzOmV9KX0pKSkpKX1uZ3J4T25Jbml0RWZmZWN0cygpe3JldHVybiBTTigpfX1ETi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RE4pKFRyKFFTKSxUcihpUyksVHIoZ04pKX0sRE4uybVwcm92PVNuKHt0b2tlbjpETixmYWN0b3J5OkROLsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihETixbe3R5cGU6VW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6UVN9LHt0eXBlOmlTfSx7dHlwZTpnTn1dfSksbnVsbCk7Y29uc3QgUk49e2lzRmVhdHVyZUZsYWdzTG9hZGVkOiExLGRlZmF1bHRGbGFnczp7aXNBdXRvRGFya01vZGVBbGxvd2VkOiEwLGRlZmF1bHRFbmFibGVEYXJrTW9kZTohMSxlbmFibGVEYXJrTW9kZU92ZXJyaWRlOm51bGwsZW5hYmxlZENvbG9yR3JvdXA6ITAsZW5hYmxlZENvbG9yR3JvdXBCeVJlZ2V4OiEwLGVuYWJsZWRFeHBlcmltZW50YWxQbHVnaW5zOltdLGluQ29sYWI6ITEsc2NhbGFyc0JhdGNoU2l6ZTp2b2lkIDAsbWV0cmljc0ltYWdlU3VwcG9ydEVuYWJsZWQ6ITAsZW5hYmxlZExpbmtlZFRpbWU6ITEsZW5hYmxlVGltZVNlcmllc1Byb21vdGlvbjohMSxlbmFibGVkQ2FyZFdpZHRoU2V0dGluZzohMCxlbmFibGVkVGltZU5hbWVzcGFjZWRTdGF0ZTohMX0sZmxhZ092ZXJyaWRlczp7fX0sRU49bmV3IGVyKCJbRmVhdHVyZSBGbGFnXSBTdG9yZSBDb25maWciKTtmdW5jdGlvbiBBTigpe3JldHVybntpbml0aWFsU3RhdGU6Uk59fWNvbnN0IFROPVZTKFJOLEJTKHdOLCgodCx7ZmVhdHVyZXM6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2lzRmVhdHVyZUZsYWdzTG9hZGVkOiEwLGZsYWdPdmVycmlkZXM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZmxhZ092ZXJyaWRlcyksZSl9KSkpLEJTKGtOLCgodCx7ZW5hYmxlRGFya01vZGU6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2ZsYWdPdmVycmlkZXM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZmxhZ092ZXJyaWRlcykse2VuYWJsZURhcmtNb2RlT3ZlcnJpZGU6ZX0pfSkpKSxCUyhxUiwoKHQse3BhcnRpYWxTZXR0aW5nczplfSk9PntpZighZS50aGVtZU92ZXJyaWRlKXJldHVybiB0O2xldCBuO3N3aXRjaChlLnRoZW1lT3ZlcnJpZGUpe2Nhc2UgRlIuQlJPV1NFUl9ERUZBVUxUOm49bnVsbDticmVhaztjYXNlIEZSLkRBUks6bj0hMDticmVhaztjYXNlIEZSLkxJR0hUOm49ITF9cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7ZmxhZ092ZXJyaWRlczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5mbGFnT3ZlcnJpZGVzKSx7ZW5hYmxlRGFya01vZGVPdmVycmlkZTpufSl9KX0pKSk7ZnVuY3Rpb24gTk4odCxlKXtyZXR1cm4gVE4odCxlKX1mdW5jdGlvbiB6Tigpe3JldHVybiBiUyhMRCwodD0+bnVsbD09PXQ/e3RoZW1lT3ZlcnJpZGU6RlIuQlJPV1NFUl9ERUZBVUxUfTp7dGhlbWVPdmVycmlkZTp0P0ZSLkRBUks6RlIuTElHSFR9KSl9Y2xhc3MgSU57fUlOLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxJTil9LElOLsm1bW9kPWZvKHt0eXBlOklOfSksSU4uybVpbmo9RG4oe3Byb3ZpZGVyczpbe3Byb3ZpZGU6RU4sdXNlRmFjdG9yeTpBTn1dLGltcG9ydHM6W1tQTixUUy5mb3JGZWF0dXJlKEFELE5OLEVOKSxoRC5mb3JGZWF0dXJlKFtETl0pLHpSLmRlZmluZUdsb2JhbFNldHRpbmcoek4pXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKElOLFt7dHlwZTpMXyxhcmdzOlt7aW1wb3J0czpbUE4sVFMuZm9yRmVhdHVyZShBRCxOTixFTiksaEQuZm9yRmVhdHVyZShbRE5dKSx6Ui5kZWZpbmVHbG9iYWxTZXR0aW5nKHpOKV0scHJvdmlkZXJzOlt7cHJvdmlkZTpFTix1c2VGYWN0b3J5OkFOfV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhJTix7aW1wb3J0czpbUE4sQVMsZ0QselJdfSk7Y2xhc3MgSE57fWZ1bmN0aW9uIEZOKHQsZSxuLG8pe3JldHVybiB0W2VdLmhhc093blByb3BlcnR5KG4pP2VOKGUpP3RbZV1bbl0uaGFzT3duUHJvcGVydHkobyk/dFtlXVtuXVtvXTpudWxsOnRbZV1bbl06bnVsbH1mdW5jdGlvbiBMTih0LGUsbixvKXtpZihlTihlKSl7Y29uc3QgaT1PYmplY3QuYXNzaWduKHt9LHRbZV0pLGE9KGZ1bmN0aW9uIGkodCxlLG4pe2NvbnN0IG89dC5oYXNPd25Qcm9wZXJ0eShlKT9PYmplY3QuYXNzaWduKHt9LHRbZV0pOnt9LGk9by5oYXNPd25Qcm9wZXJ0eShuKTtyZXR1cm4gb1tuXT1pP09iamVjdC5hc3NpZ24oe30sb1tuXSk6e3J1blRvU2VyaWVzOnt9LHJ1blRvTG9hZFN0YXRlOnt9fSxvfSkoaSxuLG8pO3JldHVybiBpW25dPWEsaX1jb25zdCBhPU9iamVjdC5hc3NpZ24oe30sdFtlXSkscj1hLmhhc093blByb3BlcnR5KG4pO3JldHVybiBhW25dPXI/T2JqZWN0LmFzc2lnbih7fSxhW25dKTp7cnVuVG9TZXJpZXM6e30scnVuVG9Mb2FkU3RhdGU6e319LGF9ZnVuY3Rpb24gQk4odCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpfWZ1bmN0aW9uIFZOKHQsZSxuKXtjb25zdCBvPU9iamVjdC5hc3NpZ24oe30sbik7Zm9yKGNvbnN0IG4gb2YgZSlvW25dPXQ7cmV0dXJuIG99ZnVuY3Rpb24gak4odCxlLG4sbyl7aWYoZU4oZSkpe2NvbnN0IGk9dFtlXS50YWdSdW5TYW1wbGVkSW5mbztpZighaS5oYXNPd25Qcm9wZXJ0eShuKSlyZXR1cm5bXTtyZXR1cm4gT2JqZWN0LmtleXMoaVtuXSkuZmlsdGVyKCh0PT5vPGlbbl1bdF0ubWF4U2FtcGxlc1BlclN0ZXApKX1jb25zdCBpPXRbZV0udGFnVG9SdW5zO3JldHVybiBpLmhhc093blByb3BlcnR5KG4pP2lbbl06W119ZnVuY3Rpb24gVU4odCxlKXtyZXR1cm4gdC5wbHVnaW49PT1lLnBsdWdpbiYmdC50YWc9PT1lLnRhZyYmdC5zYW1wbGU9PT1lLnNhbXBsZSYmKHQucnVuSWQ9PT1lLnJ1bklkfHwhdC5ydW5JZCYmIWUucnVuSWQpfWZ1bmN0aW9uIFdOKHQsZSxuLG8saSxhKXtjb25zdCByPW5ldyBTZXQodCkscz1bXTtmb3IoY29uc3QgbyBvZiB0KWZvcihjb25zdCB0IG9mIGUpe2lmKFVOKG5bdF0sbykpe3MucHVzaCh0KSxyLmRlbGV0ZShvKTticmVha319aWYoIXMubGVuZ3RoKXJldHVybnt1bnJlc29sdmVkSW1wb3J0ZWRQaW5uZWRDYXJkczp0LGNhcmRNZXRhZGF0YU1hcDpuLGNhcmRUb1Bpbm5lZENvcHk6byxwaW5uZWRDYXJkVG9PcmlnaW5hbDppLGNhcmRTdGVwSW5kZXg6YX07bGV0IGw9e2NhcmRUb1Bpbm5lZENvcHk6byxwaW5uZWRDYXJkVG9PcmlnaW5hbDppLGNhcmRTdGVwSW5kZXg6YSxjYXJkTWV0YWRhdGFNYXA6bn07Zm9yKGNvbnN0IHQgb2YgcylsPUdOKHQsbC5jYXJkVG9QaW5uZWRDb3B5LGwucGlubmVkQ2FyZFRvT3JpZ2luYWwsbC5jYXJkU3RlcEluZGV4LGwuY2FyZE1ldGFkYXRhTWFwKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGwpLHt1bnJlc29sdmVkSW1wb3J0ZWRQaW5uZWRDYXJkczpbLi4ucl19KX1mdW5jdGlvbiBHTih0LGUsbixvLGkpe2lmKGUuaGFzKHQpKXJldHVybntjYXJkVG9QaW5uZWRDb3B5OmUscGlubmVkQ2FyZFRvT3JpZ2luYWw6bixjYXJkU3RlcEluZGV4Om8sY2FyZE1ldGFkYXRhTWFwOml9O2NvbnN0IGE9bmV3IE1hcChlKSxyPW5ldyBNYXAobikscz1PYmplY3QuYXNzaWduKHt9LG8pLGw9T2JqZWN0LmFzc2lnbih7fSxpKSxjPShmdW5jdGlvbiBkKHQpe3JldHVybiBKU09OLnN0cmluZ2lmeSh7YmFzZUNhcmRJZDp0fSl9KSh0KTthLnNldCh0LGMpLHIuc2V0KGMsdCksby5oYXNPd25Qcm9wZXJ0eSh0KSYmKHNbY109b1t0XSk7Y29uc3QgcD1pW3RdO2lmKCFwKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHBpbiBhIGNhcmQgd2l0aG91dCBtZXRhZGF0YSIpO3JldHVybiBsW2NdPXAse2NhcmRUb1Bpbm5lZENvcHk6YSxwaW5uZWRDYXJkVG9PcmlnaW5hbDpyLGNhcmRTdGVwSW5kZXg6cyxjYXJkTWV0YWRhdGFNYXA6bH19SE4uybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEhOKX0sSE4uybVtb2Q9Zm8oe3R5cGU6SE59KSxITi7JtWluaj1Ebih7cHJvdmlkZXJzOlt7cHJvdmlkZTphTix1c2VDbGFzczptTn1dLGltcG9ydHM6W1tJTixGRV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihITixbe3R5cGU6TF8sYXJnczpbe2ltcG9ydHM6W0lOLEZFXSxwcm92aWRlcnM6W3twcm92aWRlOmFOLHVzZUNsYXNzOm1OfV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhITix7aW1wb3J0czpbSU4sRkVdfSk7Y29uc3QgWU49MTA7ZnVuY3Rpb24gcU4odCl7cmV0dXJuIHQucGlubmVkQ2FyZFRvT3JpZ2luYWwuc2l6ZSt0LnVucmVzb2x2ZWRJbXBvcnRlZFBpbm5lZENhcmRzLmxlbmd0aDxZTn1jb25zdCBaTj0ibWV0cmljcyIsWE49e2NhcmRNaW5XaWR0aDpudWxsLHRvb2x0aXBTb3J0OkpULkFMUEhBQkVUSUNBTCxpZ25vcmVPdXRsaWVyczohMCx4QXhpc1R5cGU6UVQuU1RFUCxzY2FsYXJTbW9vdGhpbmc6LjYsc2NhbGFyUGFydGl0aW9uTm9uTW9ub3RvbmljWDohMSxpbWFnZUJyaWdodG5lc3NJbk1pbGxpOjFlMyxpbWFnZUNvbnRyYXN0SW5NaWxsaToxZTMsaW1hZ2VTaG93QWN0dWFsU2l6ZTohMSxoaXN0b2dyYW1Nb2RlOmpFLk9GRlNFVH0sS049X1MoWk4pLEpOPWJTKEtOLCh0PT50LnRhZ01ldGFkYXRhTG9hZFN0YXRlKSk7YlMoS04sKHQ9PnQudGFnTWV0YWRhdGEpKTtjb25zdCBRTj1iUyhLTiwodD0+dC5jYXJkTGlzdCkpLCROPWJTKEtOLCgodCxlKT0+e2lmKCF0LmNhcmRNZXRhZGF0YU1hcC5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4gVUUuTk9UX0xPQURFRDtjb25zdHtwbHVnaW46bix0YWc6byxydW5JZDppLHNhbXBsZTphfT10LmNhcmRNZXRhZGF0YU1hcFtlXSxyPUZOKHQudGltZVNlcmllc0RhdGEsbixvLGEpO2lmKCFyKXJldHVybiBVRS5OT1RfTE9BREVEO2NvbnN0IHM9ci5ydW5Ub0xvYWRTdGF0ZTtpZihpKXJldHVybiBzLmhhc093blByb3BlcnR5KGkpP3NbaV06VUUuTk9UX0xPQURFRDtjb25zdCBsPWpOKHQudGFnTWV0YWRhdGEsbixvLGEpO2lmKCFsLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBsb2FkIGEgY2FyZCB3aG9zZSB0YWcgaGFzIG5vIHJ1bnMiKTtyZXR1cm4gbC5ldmVyeSgodD0+c1t0XT09PVVFLkxPQURFRCkpP1VFLkxPQURFRDpsLnNvbWUoKHQ9PnNbdF09PT1VRS5MT0FESU5HKSk/VUUuTE9BRElORzpVRS5OT1RfTE9BREVEfSkpLHR6PWJTKEtOLCgodCxlKT0+e2lmKCF0LmNhcmRNZXRhZGF0YU1hcC5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4gbnVsbDtjb25zdHtwbHVnaW46bix0YWc6byxzYW1wbGU6aX09dC5jYXJkTWV0YWRhdGFNYXBbZV0sYT1GTih0LnRpbWVTZXJpZXNEYXRhLG4sbyxpKTtyZXR1cm4gYT9hLnJ1blRvU2VyaWVzOm51bGx9KSksZXo9YlMoS04sKHQ9PnQuY2FyZE1ldGFkYXRhTWFwKSksbno9YlMoZXosKCh0LGUpPT50Lmhhc093blByb3BlcnR5KGUpP3RbZV06bnVsbCkpLG96PWJTKEtOLCh0PT50LnZpc2libGVDYXJkTWFwKSksaXo9YlMob3osKHQ9Pm5ldyBTZXQodC52YWx1ZXMoKSkpKSxhej1iUyhRTixleiwoKHQsZSk9PnQuZmlsdGVyKCh0PT5lLmhhc093blByb3BlcnR5KHQpKSkubWFwKCh0PT5PYmplY3QuYXNzaWduKHtjYXJkSWQ6dH0sZVt0XSkpKSkpLHJ6PWJTKEtOLCgodCxlKT0+dC5jYXJkU3RlcEluZGV4Lmhhc093blByb3BlcnR5KGUpP3QuY2FyZFN0ZXBJbmRleFtlXTpudWxsKSksc3o9YlMoS04sKHQ9PnQuY2FyZFRvUGlubmVkQ29weSkpLGx6PWJTKEtOLCh0PT50LnBpbm5lZENhcmRUb09yaWdpbmFsKSksY3o9YlMoc3osZXosKCh0LGUpPT5bLi4udC52YWx1ZXMoKV0uZmlsdGVyKCh0PT5lLmhhc093blByb3BlcnR5KHQpKSkubWFwKCh0PT5PYmplY3QuYXNzaWduKHtjYXJkSWQ6dH0sZVt0XSkpKSkpLGR6PWJTKHN6LGx6LCgodCxlLG4pPT50LmhhcyhuKXx8ZS5oYXMobikpKSxwej1iUyhLTiwodD0+dC51bnJlc29sdmVkSW1wb3J0ZWRQaW5uZWRDYXJkcykpLG16PWJTKEtOLCh0PT5xTih0KSkpLGZ6PWJTKEtOLCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5ncyksdC5zZXR0aW5nT3ZlcnJpZGVzKSkpLHV6PWJTKEtOLCh0PT50LnNldHRpbmdPdmVycmlkZXMpKSxnej1iUyhmeiwodD0+dC5jYXJkTWluV2lkdGgpKSxoej1iUyhmeiwodD0+dC50b29sdGlwU29ydCkpLGJ6PWJTKGZ6LCh0PT50Lmlnbm9yZU91dGxpZXJzKSkseXo9YlMoZnosKHQ9PnQueEF4aXNUeXBlKSksX3o9YlMoZnosKHQ9PnQuaGlzdG9ncmFtTW9kZSkpLEN6PWJTKGZ6LCh0PT50LnNjYWxhclNtb290aGluZykpLE16PWJTKGZ6LCh0PT50LnNjYWxhclBhcnRpdGlvbk5vbk1vbm90b25pY1gpKSx2ej1iUyhmeiwodD0+dC5pbWFnZUJyaWdodG5lc3NJbk1pbGxpKSkseHo9YlMoZnosKHQ9PnQuaW1hZ2VDb250cmFzdEluTWlsbGkpKSxPej1iUyhmeiwodD0+dC5pbWFnZVNob3dBY3R1YWxTaXplKSksUHo9YlMoS04sKHQ9PnQudGFnRmlsdGVyKSksd3o9YlMoS04sKCh0LGUpPT5Cb29sZWFuKHQudGFnR3JvdXBFeHBhbmRlZC5nZXQoZSkpKSksa3o9YlMoS04sKHQ9PnQuc2VsZWN0VGltZUVuYWJsZWQpKSxTej1iUyhLTiwodD0+dC51c2VSYW5nZVNlbGVjdFRpbWUpKSxEej1iUyhLTiwodD0+e2NvbnN0e21pbjplLG1heDpufT10LnN0ZXBNaW5NYXg7cmV0dXJue21pbjplPT09MS8wPzA6ZSxtYXg6bj09PS0xLzA/MWUzOm59fSkpLFJ6PWJTKEtOLER6LCgodCxlKT0+e3ZhciBuO3JldHVybiB0LnNlbGVjdGVkVGltZT9PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zZWxlY3RlZFRpbWUpLHtlbmQ6bnVsbCE9PShuPXQuc2VsZWN0ZWRUaW1lLmVuZCkmJnZvaWQgMCE9PW4/bjp7c3RlcDplLm1heH19KTp7c3RhcnQ6e3N0ZXA6ZS5taW59LGVuZDp7c3RlcDplLm1heH19fSkpLEV6PWJTKEtOLFJ6LCgodCxlKT0+dC5zZWxlY3RUaW1lRW5hYmxlZD90LnVzZVJhbmdlU2VsZWN0VGltZT9lOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSx7ZW5kOm51bGx9KTpudWxsKSksQXo9YlMoS04sKHQ9PnQuZmlsdGVyZWRQbHVnaW5UeXBlcykpLFR6PWJTKEtOLCh0PT50LnByb21vdGVUaW1lU2VyaWVzKSksTno9YlMoS04sKHQ9PnQuaXNTZXR0aW5nc1BhbmVPcGVuKSk7dmFyIHp6OyEoZnVuY3Rpb24odCl7dFt0Lk5PTkU9MF09Ik5PTkUiLHRbdC5XSEFUU19ORVc9MV09IldIQVRTX05FVyJ9KSh6enx8KHp6PXt9KSk7Y29uc3QgSXo9X1MoIm5vdGlmaWNhdGlvbiIpO2JTKEl6LCh0PT50Lm5vdGlmaWNhdGlvbnMpKSxiUyhJeiwodD0+e3ZhciBlO3JldHVybiBudWxsIT09KGU9dC5sYXN0UmVhZFRpbWVzdGFtcEluTXMpJiZ2b2lkIDAhPT1lP2U6LTF9KSk7Y29uc3QgSHo9InJ1bnMiO3ZhciBGeixMejtmdW5jdGlvbiBCeih0KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodC5zbGljZSgpLnNvcnQoKSl9ZnVuY3Rpb24gVnoodCxlLG4pe2NvbnN0IG89e30saT1bXSxhPXttYXRjaGVzOm8sbm9uTWF0Y2hlczppfTtzd2l0Y2godC5rZXkpe2Nhc2UgTHouUlVOOmZvcihjb25zdCB0IG9mIGUpb1t0LmlkXT1bdF07YnJlYWs7Y2FzZSBMei5FWFBFUklNRU5UOmZvcihjb25zdCB0IG9mIGUpe2NvbnN0IGU9blt0LmlkXSxpPW9bZV18fFtdO2kucHVzaCh0KSxvW2VdPWl9YnJlYWs7Y2FzZSBMei5SRUdFWDppZighdC5yZWdleFN0cmluZylicmVhaztsZXQgYTt0cnl7YT1uZXcgUmVnRXhwKHQucmVnZXhTdHJpbmcpfWNhdGNoKHQpe2JyZWFrfWZvcihjb25zdCB0IG9mIGUpe2NvbnN0IGU9dC5uYW1lLm1hdGNoKGEpO2lmKGUpe2NvbnN0IG49ZS5sZW5ndGg+MT9KU09OLnN0cmluZ2lmeShlLnNsaWNlKDEpKToicHNldWRvX2dyb3VwIixpPW9bbl18fFtdO2kucHVzaCh0KSxvW25dPWl9ZWxzZSBpLnB1c2godCl9fXJldHVybiBhfWZ1bmN0aW9uIGp6KHQsZSl7c3dpdGNoKHQpe2Nhc2UgTHouUkVHRVg6cmV0dXJue2tleTp0LHJlZ2V4U3RyaW5nOm51bGwhPWU/ZToiIn07Y2FzZSBMei5SVU46Y2FzZSBMei5FWFBFUklNRU5UOmRlZmF1bHQ6cmV0dXJue2tleTp0fX19IShmdW5jdGlvbih0KXt0W3QuRVhQRVJJTUVOVF9OQU1FPTBdPSJFWFBFUklNRU5UX05BTUUiLHRbdC5IUEFSQU09MV09IkhQQVJBTSIsdFt0Lk1FVFJJQz0yXT0iTUVUUklDIix0W3QuUlVOX05BTUU9M109IlJVTl9OQU1FIn0pKEZ6fHwoRno9e30pKSwoZnVuY3Rpb24odCl7dFt0LlJVTj0wXT0iUlVOIix0W3QuRVhQRVJJTUVOVD0xXT0iRVhQRVJJTUVOVCIsdFt0LlJFR0VYPTJdPSJSRUdFWCJ9KShMenx8KEx6PXt9KSk7Y29uc3QgVXo9X1MoSHopLFd6PWJTKFV6LCh0PT50LmRhdGEpKSxHej1iUyhXeiwoKHQsZSk9Pnt2YXIgbjtyZXR1cm4gbnVsbCE9PShuPXQucnVuSWRUb0V4cElkW2UucnVuSWRdKSYmdm9pZCAwIT09bj9uOm51bGx9KSksWXo9YlMoV3osKCh0LGUpPT57dmFyIG47cmV0dXJuIG51bGwhPT0obj10LnJ1bk1ldGFkYXRhW2UucnVuSWRdKSYmdm9pZCAwIT09bj9uOm51bGx9KSkscXo9YlMoV3osKCh0LGUpPT4odC5ydW5JZHNbZS5leHBlcmltZW50SWRdfHxbXSkuZmlsdGVyKChlPT5Cb29sZWFuKHQucnVuTWV0YWRhdGFbZV0pKSkubWFwKChlPT50LnJ1bk1ldGFkYXRhW2VdKSkpKSxaej1iUyhXeiwoKHQsZSk9Pnt2YXIgbjtyZXR1cm4gbnVsbCE9PShuPXQucnVuSWRzW2UuZXhwZXJpbWVudElkXSkmJnZvaWQgMCE9PW4/bjpbXX0pKSxYej1iUyhXeiwodD0+bmV3IE1hcChPYmplY3QuZW50cmllcyh0LnJ1bk1ldGFkYXRhKSkpKSxLej1iUyhXeiwoKHQsZSk9PnQucnVuc0xvYWRTdGF0ZVtlLmV4cGVyaW1lbnRJZF18fHtsYXN0TG9hZGVkVGltZUluTXM6bnVsbCxzdGF0ZTpVRS5OT1RfTE9BREVEfSkpLEp6PWJTKFd6LCgodCxlKT0+e2NvbnN0IG49QnooZS5leHBlcmltZW50SWRzKTtyZXR1cm4gdC5zZWxlY3Rpb25TdGF0ZS5nZXQobil8fG5ldyBNYXB9KSksUXo9YlMoV3osKHQ9Pm51bGwhPT10LnVzZXJTZXRHcm91cEJ5S2V5P2p6KHQudXNlclNldEdyb3VwQnlLZXksdC5jb2xvckdyb3VwUmVnZXhTdHJpbmcpOm51bGwpKSwkej1iUyhReixXeiwoKHQsZSk9Pm51bGwhPXQ/dDplLmluaXRpYWxHcm91cEJ5KSksdEk9YlMoV3osKHQ9PnQucmVnZXhGaWx0ZXIpKSxlST1iUyhVeiwodD0+dC51aSkpLG5JPWJTKGVJLCh0PT50LnBhZ2luYXRpb25PcHRpb24pKSxvST1iUyhlSSwodD0+dC5zb3J0KSksaUk9YlMoV3osKHQ9PnQucnVuQ29sb3JPdmVycmlkZUZvckdyb3VwQnkpKSxhST1iUyhXeiwodD0+dC5kZWZhdWx0UnVuQ29sb3JJZEZvckdyb3VwQnkpKSxyST1iUyhXeiwodD0+dC5jb2xvckdyb3VwUmVnZXhTdHJpbmcpKSxzST1faygiW1NldHRpbmdzXSBSZWxvYWQgRW5hYmxlIFRvZ2dsZWQiKSxsST1faygiW1NldHRpbmdzXSBSZWxvYWQgUGVyaW9kIENoYW5nZSIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLGNJPV9rKCJbU2V0dGluZ3NdIFBhZ2UgU2l6ZSBDaGFuZ2UiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxkST0ic2V0dGluZ3MiLHBJPXtzdGF0ZTpVRS5MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOkRhdGUubm93KCksc2V0dGluZ3M6e3JlbG9hZFBlcmlvZEluTXM6M2U0LHJlbG9hZEVuYWJsZWQ6ITEscGFnZVNpemU6MTIsY29sb3JQYWxldHRlOntpZDoiZGVmYXVsdCIsbmFtZToiRGVmYWx0Iixjb2xvcnM6W3tuYW1lOiJTbGF0ZSIsbGlnaHRIZXg6IiM0MjUwNjYiLGRhcmtIZXg6IiM4ZTk4YTMifSx7bmFtZToiQ3lhbiIsbGlnaHRIZXg6IiMxMmI1Y2IiLGRhcmtIZXg6IiMxMmI1Y2IifSx7bmFtZToiUGluayIsbGlnaHRIZXg6IiNlNTI1OTIiLGRhcmtIZXg6IiNlNTI1OTIifSx7bmFtZToiWWVsbG93IixsaWdodEhleDoiI2Y5YWIwMCIsZGFya0hleDoiI2Y5YWIwMCJ9LHtuYW1lOiJQdXJwbGUiLGxpZ2h0SGV4OiIjOTMzNGU2IixkYXJrSGV4OiIjOTMzNGU2In0se25hbWU6IkxpZ2h0IEdyZWVuIixsaWdodEhleDoiIzdjYjM0MiIsZGFya0hleDoiIzdjYjM0MiJ9LHtuYW1lOiJPcmFuZ2UiLGxpZ2h0SGV4OiIjZTg3MTBhIixkYXJrSGV4OiIjZTg3MTBhIn1dLGluYWN0aXZlOntuYW1lOiJHcmF5IixsaWdodEhleDoiI2UwZTBlMCIsZGFya0hleDoiIzNiM2IzYiJ9fX19LG1JPV9TKGRJKSxmST1iUyhtSSwodD0+dC5zdGF0ZSkpLHVJPWJTKG1JLCh0PT50LnNldHRpbmdzLnJlbG9hZEVuYWJsZWQpKSxnST1iUyhtSSwodD0+dC5zZXR0aW5ncy5yZWxvYWRQZXJpb2RJbk1zKSksaEk9YlMobUksKHQ9PnQuc2V0dGluZ3MucGFnZVNpemUpKSxiST1iUyhtSSwodD0+dC5zZXR0aW5ncy5jb2xvclBhbGV0dGUpKTtmdW5jdGlvbiB5SSh0LGUsbil7aWYoIWUpcmV0dXJuITA7bGV0IG87dHJ5e289bmV3IFJlZ0V4cChlLCJpIil9Y2F0Y2godCl7cmV0dXJuITF9Y29uc3QgaT1bdC5ydW5OYW1lXTtyZXR1cm4gbiYmaS5wdXNoKHQuZXhwZXJpbWVudEFsaWFzLmFsaWFzVGV4dCxgJHt0LmV4cGVyaW1lbnRBbGlhcy5hbGlhc1RleHR9LyR7dC5ydW5OYW1lfWApLGkuc29tZSgodD0+by50ZXN0KHQpKSl9Y29uc3QgX0k9YlMoKHQ9Pntjb25zdCBlPXhSKHQpO3JldHVybiBlP0p6KHQse2V4cGVyaW1lbnRJZHM6ZX0pOm51bGx9KSx0SSwodD0+e3ZhciBlO2NvbnN0IG49bnVsbCE9PShlPXhSKHQpKSYmdm9pZCAwIT09ZT9lOltdLG89T1IodCksaT1uZXcgTWFwO2Zvcihjb25zdCBlIG9mIG4pe2NvbnN0IG49cXoodCx7ZXhwZXJpbWVudElkOmV9KTtmb3IoY29uc3QgdCBvZiBuKWkuc2V0KHQuaWQse3J1bk5hbWU6dC5uYW1lLGV4cGVyaW1lbnRBbGlhczpvW2VdfSl9cmV0dXJuIGl9KSxNUiwoKHQsZSxuLG8pPT57aWYoIXQpcmV0dXJuIG51bGw7Y29uc3QgaT1vPT09X0QuQ09NUEFSRV9FWFBFUklNRU5ULGE9bmV3IE1hcDtmb3IoY29uc3RbbyxyXW9mIHQuZW50cmllcygpKXtjb25zdCB0PW4uZ2V0KG8pO2Euc2V0KG8seUkodCxlLGkpJiZyKX1yZXR1cm4gYX0pKSxDST1iUyhiSSxhSSxpSSxGRCwoKHQsZSxuLG8pPT57Y29uc3QgaT17fTtyZXR1cm4gZS5mb3JFYWNoKCgoZSxhKT0+e2xldCByPW8/dC5pbmFjdGl2ZS5kYXJrSGV4OnQuaW5hY3RpdmUubGlnaHRIZXg7aWYobi5oYXMoYSkpcj1uLmdldChhKTtlbHNlIGlmKGU+PTApe2NvbnN0IG49dC5jb2xvcnNbZSV0LmNvbG9ycy5sZW5ndGhdO3I9bz9uLmRhcmtIZXg6bi5saWdodEhleH1pW2FdPXJ9KSksaX0pKTtjbGFzcyBNSXtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5hY3Rpb25zJD10LHRoaXMuc3RvcmU9ZSx0aGlzLnJ1bnNEYXRhU291cmNlPW4sdGhpcy5sb2FkUnVuc09uUnVuVGFibGVTaG93biQ9V1MoKCgpPT50aGlzLmFjdGlvbnMkLnBpcGUoJFModlQpLCR0KCgoe2V4cGVyaW1lbnRJZHM6dH0pPT50aGlzLmdldEV4cGVyaW1lbnRzV2l0aExvYWRTdGF0ZSh0LCh0PT50PT09VUUuRkFJTEVEfHx0PT09VUUuTk9UX0xPQURFRCkpLnBpcGUodWUoKHQ9PiEhdC5sZW5ndGgpKSwkdCgoZT0+dGhpcy5mZXRjaEFsbFJ1bnNMaXN0KHQsZSkpKSkpKSkpLHtkaXNwYXRjaDohMX0pLHRoaXMuZXhwZXJpbWVudHNXaXRoU3RhbGVSdW5zT25Sb3V0ZUNoYW5nZSQ9dGhpcy5hY3Rpb25zJC5waXBlKCRTKHRSKSxxZSh0aGlzLnN0b3JlLnNlbGVjdChoUikpLHdlKCgoWyx0XSxbLGVdKT0+eEQodCxlKSkpLHFlKHRoaXMuc3RvcmUuc2VsZWN0KHhSKSksdWUoKChbLHRdKT0+ISF0KSksVnQoKChbLHRdKT0+dCkpLCR0KCh0PT50aGlzLmdldEV4cGVyaW1lbnRzV2l0aExvYWRTdGF0ZSh0LCh0PT50PT09VUUuRkFJTEVEfHx0PT09VUUuTk9UX0xPQURFRCkpLnBpcGUoVnQoKGU9Pih7ZXhwZXJpbWVudElkczp0LGV4cGVyaW1lbnRJZHNUb0JlRmV0Y2hlZDplfSkpKSkpKSksdGhpcy5leHBlcmltZW50c1dpdGhTdGFsZVJ1bnNPblJlbG9hZCQ9dGhpcy5hY3Rpb25zJC5waXBlKCRTKFFFLEpFKSxxZSh0aGlzLnN0b3JlLnNlbGVjdCh4UikpLHVlKCgoWyx0XSk9PiEhdCkpLFZ0KCgoWyx0XSk9PnQpKSwkdCgodD0+dGhpcy5nZXRFeHBlcmltZW50c1dpdGhMb2FkU3RhdGUodCwodD0+dCE9PVVFLkxPQURJTkcpKS5waXBlKFZ0KChlPT4oe2V4cGVyaW1lbnRJZHM6dCxleHBlcmltZW50SWRzVG9CZUZldGNoZWQ6ZX0pKSkpKSkpLHRoaXMubG9hZFJ1bnNPbk5hdmlnYXRpb25PclJlbG9hZCQ9V1MoKCgpPT5wZSh0aGlzLmV4cGVyaW1lbnRzV2l0aFN0YWxlUnVuc09uUm91dGVDaGFuZ2UkLHRoaXMuZXhwZXJpbWVudHNXaXRoU3RhbGVSdW5zT25SZWxvYWQkKS5waXBlKCR0KCgoe2V4cGVyaW1lbnRJZHM6dCxleHBlcmltZW50SWRzVG9CZUZldGNoZWQ6ZX0pPT50aGlzLmZldGNoQWxsUnVuc0xpc3QodCxlKSkpKSkse2Rpc3BhdGNoOiExfSl9Z2V0UnVuc0xpc3RMb2FkU3RhdGUodCl7cmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KEt6LHtleHBlcmltZW50SWQ6dH0pLnBpcGUodmUoMSkpfWdldEV4cGVyaW1lbnRzV2l0aExvYWRTdGF0ZSh0LGUpe3JldHVybiBpZSh0Lm1hcCgodD0+dGhpcy5nZXRSdW5zTGlzdExvYWRTdGF0ZSh0KSkpKS5waXBlKFZ0KChuPT50LmZpbHRlcigoKHQsbyk9PmUobltvXS5zdGF0ZSkpKSkpKX1mZXRjaEFsbFJ1bnNMaXN0KHQsZSl7cmV0dXJuIHp0KHtleHBlcmltZW50SWRzOnQsZXhwZXJpbWVudElkc1RvQmVGZXRjaGVkOmV9KS5waXBlKFdlKCgoKT0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goZlQoe2V4cGVyaW1lbnRJZHM6dCxyZXF1ZXN0ZWRFeHBlcmltZW50SWRzOmV9KSl9KSksJHQoKCgpPT57Y29uc3Qgbj1uZXcgU2V0KGUpO3JldHVybiBpZSh0Lm1hcCgodD0+bi5oYXModCk/dGhpcy5mZXRjaFJ1bnNGb3JFeHBlcmltZW50KHQpOnRoaXMubWF5YmVXYWl0Rm9yUnVuc0FuZEdldFJ1bnModCkpKSl9KSksVnQoKHQ9Pntjb25zdCBlPXt9LG49W107Zm9yKGNvbnN0IG8gb2YgdCluLnB1c2goLi4uby5ydW5zKSxvLmZyb21SZW1vdGUmJihlW28uZXhwZXJpbWVudElkXT17cnVuczpvLnJ1bnMsbWV0YWRhdGE6by5tZXRhZGF0YX0pO3JldHVybntuZXdSdW5zQW5kTWV0YWRhdGE6ZSxydW5zRm9yQWxsRXhwZXJpbWVudHM6bn19KSksV2UoKCh7bmV3UnVuc0FuZE1ldGFkYXRhOmUscnVuc0ZvckFsbEV4cGVyaW1lbnRzOm59KT0+e3RoaXMuc3RvcmUuZGlzcGF0Y2godVQoe2V4cGVyaW1lbnRJZHM6dCxuZXdSdW5zQW5kTWV0YWRhdGE6ZSxydW5zRm9yQWxsRXhwZXJpbWVudHM6bn0pKX0pKSxoZSgobj0+KHRoaXMuc3RvcmUuZGlzcGF0Y2goZ1Qoe2V4cGVyaW1lbnRJZHM6dCxyZXF1ZXN0ZWRFeHBlcmltZW50SWRzOmV9KSksenQobnVsbCkpKSksVnQoKCgpPT5udWxsKSkpfW1heWJlV2FpdEZvclJ1bnNBbmRHZXRSdW5zKHQpe3JldHVybiB0aGlzLnN0b3JlLnNlbGVjdChLeix7ZXhwZXJpbWVudElkOnR9KS5waXBlKHVlKCh0PT50LnN0YXRlIT09VUUuTE9BRElORykpLHZlKDEpLCR0KCh0PT50LnN0YXRlPT09VUUuRkFJTEVEP0l0KG5ldyBFcnJvcigiUGVuZGluZyByZXF1ZXN0IGZhaWxlZCIpKTp6dCh0KSkpLHFlKHRoaXMuc3RvcmUuc2VsZWN0KHF6LHtleHBlcmltZW50SWQ6dH0pKSxWdCgoKFssZV0pPT4oe2Zyb21SZW1vdGU6ITEsZXhwZXJpbWVudElkOnQscnVuczplfSkpKSl9ZmV0Y2hSdW5zRm9yRXhwZXJpbWVudCh0KXtyZXR1cm4gaWUoW3RoaXMucnVuc0RhdGFTb3VyY2UuZmV0Y2hSdW5zKHQpLHRoaXMucnVuc0RhdGFTb3VyY2UuZmV0Y2hIcGFyYW1zTWV0YWRhdGEodCldKS5waXBlKFZ0KCgoW2Usbl0pPT4oe2Zyb21SZW1vdGU6ITAsZXhwZXJpbWVudElkOnQscnVuczplLG1ldGFkYXRhOm59KSkpKX19dmFyIHZJLHhJO01JLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxNSSkoVHIoUVMpLFRyKGlTKSxUcihTVCkpfSxNSS7JtXByb3Y9U24oe3Rva2VuOk1JLGZhY3Rvcnk6TUkuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKE1JLFt7dHlwZTpVbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpRU30se3R5cGU6aVN9LHt0eXBlOlNUfV19KSxudWxsKSwoZnVuY3Rpb24odCl7dC5BU0M9ImFzYyIsdC5ERVNDPSJkZXNjIix0LlVOU0VUPSIifSkodkl8fCh2ST17fSkpLChmdW5jdGlvbih0KXt0LkVYUEVSSU1FTlRfSUQ9ImlkIix0LlVTRVI9InVzZXIiLHQuQkVGT1JFPSJiZWZvcmUiLHQuQUZURVI9ImFmdGVyIix0LlJFR0VYPSJyZWdleCJ9KSh4SXx8KHhJPXt9KSk7Y29uc3R7aW5pdGlhbFN0YXRlOk9JLHJlZHVjZXJzOlBJfT1jQSh7cnVuQ29sb3JPdmVycmlkZUZvckdyb3VwQnk6bmV3IE1hcCxkZWZhdWx0UnVuQ29sb3JJZEZvckdyb3VwQnk6bmV3IE1hcCxncm91cEtleVRvQ29sb3JJZDpuZXcgTWFwLGluaXRpYWxHcm91cEJ5OntrZXk6THouUlVOfSx1c2VyU2V0R3JvdXBCeUtleTpudWxsLGNvbG9yR3JvdXBSZWdleFN0cmluZzoiIixyZWdleEZpbHRlcjoiIn0se3J1bklkczp7fSxydW5JZFRvRXhwSWQ6e30scnVuTWV0YWRhdGE6e30scnVuc0xvYWRTdGF0ZTp7fSxzZWxlY3Rpb25TdGF0ZTpuZXcgTWFwfSwoKHQsZSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7aW5pdGlhbEdyb3VwQnk6e2tleTplLnJvdXRlS2luZD09PV9ELkNPTVBBUkVfRVhQRVJJTUVOVD9Mei5FWFBFUklNRU5UOkx6LlJVTn19KSkpLHdJPVdBKFZTKE9JLEJTKEtELCgodCx7cm91dGVLaW5kOmUscGFydGlhbFN0YXRlOm59KT0+e3ZhciBvLGk7aWYoZSE9PV9ELkNPTVBBUkVfRVhQRVJJTUVOVCYmZSE9PV9ELkVYUEVSSU1FTlQpcmV0dXJuIHQ7Y29uc3QgYT1uLnJ1bnMuZ3JvdXBCeSxyPW51bGwhPT0obz1uLnJ1bnMucmVnZXhGaWx0ZXIpJiZ2b2lkIDAhPT1vP286IiI7aWYoIWEmJiFyKXJldHVybiB0O2xldHtjb2xvckdyb3VwUmVnZXhTdHJpbmc6cyx1c2VyU2V0R3JvdXBCeUtleTpsfT10O2lmKGEpe3M9YS5rZXk9PT1Mei5SRUdFWD9hLnJlZ2V4U3RyaW5nOnQuY29sb3JHcm91cFJlZ2V4U3RyaW5nLGw9bnVsbCE9PShpPWEua2V5KSYmdm9pZCAwIT09aT9pOm51bGx9cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7Y29sb3JHcm91cFJlZ2V4U3RyaW5nOnMscmVnZXhGaWx0ZXI6cix1c2VyU2V0R3JvdXBCeUtleTpsfSl9KSksQlMoZlQsKCh0LGUpPT57Y29uc3Qgbj1PYmplY3QuYXNzaWduKHt9LHQucnVuc0xvYWRTdGF0ZSk7Zm9yKGNvbnN0IHQgb2YgZS5yZXF1ZXN0ZWRFeHBlcmltZW50SWRzKW5bdF09blt0XT9PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sblt0XSkse3N0YXRlOlVFLkxPQURJTkd9KTp7bGFzdExvYWRlZFRpbWVJbk1zOm51bGwsc3RhdGU6VUUuTE9BRElOR307cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7cnVuc0xvYWRTdGF0ZTpufSl9KSksQlModVQsKCh0LGUpPT57dmFyIG47Y29uc3Qgbz1PYmplY3QuYXNzaWduKHt9LHQucnVuSWRzKSxpPU9iamVjdC5hc3NpZ24oe30sdC5ydW5NZXRhZGF0YSksYT1PYmplY3QuYXNzaWduKHt9LHQucnVuSWRUb0V4cElkKSxyPU9iamVjdC5hc3NpZ24oe30sdC5ydW5zTG9hZFN0YXRlKSxzPW5ldyBNYXAodC5zZWxlY3Rpb25TdGF0ZSk7Zm9yKGNvbnN0IHQgb2YgT2JqZWN0LmtleXMoZS5uZXdSdW5zQW5kTWV0YWRhdGEpKXtjb25zdHtydW5zOm4sbWV0YWRhdGE6c309ZS5uZXdSdW5zQW5kTWV0YWRhdGFbdF07b1t0XT1uLm1hcCgoKHtpZDp0fSk9PnQpKSxyW3RdPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxyW3RdKSx7bGFzdExvYWRlZFRpbWVJbk1zOkRhdGUubm93KCksc3RhdGU6VUUuTE9BREVEfSk7Zm9yKGNvbnN0IGUgb2Ygbil7Y29uc3Qgbj1zLnJ1blRvSHBhcmFtc0FuZE1ldHJpY3NbZS5pZF07aVtlLmlkXT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSkse2hwYXJhbXM6bj9uLmhwYXJhbXM6bnVsbCxtZXRyaWNzOm4/bi5tZXRyaWNzOm51bGx9KSxhW2UuaWRdPXR9fWNvbnN0IGw9QnooZS5leHBlcmltZW50SWRzKSxjPW5ldyBNYXAobnVsbCE9PShuPXMuZ2V0KGwpKSYmdm9pZCAwIT09bj9uOltdKSxkPWUucnVuc0ZvckFsbEV4cGVyaW1lbnRzLmxlbmd0aDw9NTAwO2Zvcihjb25zdCB0IG9mIGUucnVuc0ZvckFsbEV4cGVyaW1lbnRzKWMuaGFzKHQuaWQpfHxjLnNldCh0LmlkLGQpO3JldHVybiBzLnNldChsLGMpLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7cnVuSWRzOm8scnVuSWRUb0V4cElkOmEscnVuTWV0YWRhdGE6aSxydW5zTG9hZFN0YXRlOnIsc2VsZWN0aW9uU3RhdGU6c30pfSkpLEJTKGdULCgodCxlKT0+e2NvbnN0IG49T2JqZWN0LmFzc2lnbih7fSx0LnJ1bnNMb2FkU3RhdGUpO2Zvcihjb25zdCB0IG9mIGUucmVxdWVzdGVkRXhwZXJpbWVudElkcyluW3RdPW5bdF0/T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG5bdF0pLHtzdGF0ZTpVRS5GQUlMRUR9KTp7bGFzdExvYWRlZFRpbWVJbk1zOm51bGwsc3RhdGU6VUUuRkFJTEVEfTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtydW5zTG9hZFN0YXRlOm59KX0pKSxCUyhoVCwoKHQse2V4cGVyaW1lbnRJZHM6ZSxydW5JZDpufSk9Pnt2YXIgbztjb25zdCBpPUJ6KGUpLGE9bmV3IE1hcCh0LnNlbGVjdGlvblN0YXRlKSxyPW5ldyBNYXAobnVsbCE9PShvPWEuZ2V0KGkpKSYmdm9pZCAwIT09bz9vOltdKTtyZXR1cm4gci5zZXQobiwhQm9vbGVhbihyLmdldChuKSkpLGEuc2V0KGksciksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZWxlY3Rpb25TdGF0ZTphfSl9KSksQlMoYlQsKCh0LHtleHBlcmltZW50SWRzOmUscnVuSWRzOm59KT0+e3ZhciBvO2NvbnN0IGk9QnooZSksYT1uZXcgTWFwKHQuc2VsZWN0aW9uU3RhdGUpLHI9bmV3IE1hcChudWxsIT09KG89YS5nZXQoaSkpJiZ2b2lkIDAhPT1vP286W10pLHM9IW4uZXZlcnkoKHQ9PkJvb2xlYW4oci5nZXQodCkpKSk7Zm9yKGNvbnN0IHQgb2YgbilyLnNldCh0LHMpO3JldHVybiBhLnNldChpLHIpLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2VsZWN0aW9uU3RhdGU6YX0pfSkpLEJTKHVULCgodCx7cnVuc0ZvckFsbEV4cGVyaW1lbnRzOmV9KT0+e2NvbnN0IG49bmV3IE1hcCh0Lmdyb3VwS2V5VG9Db2xvcklkKSxvPW5ldyBNYXAodC5kZWZhdWx0UnVuQ29sb3JJZEZvckdyb3VwQnkpO2xldCBpPXQuaW5pdGlhbEdyb3VwQnk7bnVsbCE9PXQudXNlclNldEdyb3VwQnlLZXkmJihpPWp6KHQudXNlclNldEdyb3VwQnlLZXksdC5jb2xvckdyb3VwUmVnZXhTdHJpbmcpKTtjb25zdCBhPVZ6KGksZSx0LnJ1bklkVG9FeHBJZCk7T2JqZWN0LmVudHJpZXMoYS5tYXRjaGVzKS5mb3JFYWNoKCgoW3QsZV0pPT57dmFyIGk7Y29uc3QgYT1udWxsIT09KGk9bi5nZXQodCkpJiZ2b2lkIDAhPT1pP2k6bi5zaXplO24uc2V0KHQsYSk7Zm9yKGNvbnN0IHQgb2YgZSlvLnNldCh0LmlkLGEpfSkpO2Zvcihjb25zdCB0IG9mIGEubm9uTWF0Y2hlcylvLnNldCh0LmlkLC0xKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtkZWZhdWx0UnVuQ29sb3JJZEZvckdyb3VwQnk6byxncm91cEtleVRvQ29sb3JJZDpufSl9KSksQlMoeFQsKCh0LHtleHBlcmltZW50SWRzOmUsZ3JvdXBCeTpufSk9Pntjb25zdCBvPW5ldyBNYXAsaT1uZXcgTWFwKHQuZGVmYXVsdFJ1bkNvbG9ySWRGb3JHcm91cEJ5KSxhPVZ6KG4sZS5mbGF0TWFwKChlPT50LnJ1bklkc1tlXSkpLm1hcCgoZT0+dC5ydW5NZXRhZGF0YVtlXSkpLHQucnVuSWRUb0V4cElkKTtPYmplY3QuZW50cmllcyhhLm1hdGNoZXMpLmZvckVhY2goKChbdCxlXSk9Pnt2YXIgbjtjb25zdCBhPW51bGwhPT0obj1vLmdldCh0KSkmJnZvaWQgMCE9PW4/bjpvLnNpemU7by5zZXQodCxhKTtmb3IoY29uc3QgdCBvZiBlKWkuc2V0KHQuaWQsYSl9KSk7Zm9yKGNvbnN0IHQgb2YgYS5ub25NYXRjaGVzKWkuc2V0KHQuaWQsLTEpO2NvbnN0IHI9bi5rZXk9PT1Mei5SRUdFWD9uLnJlZ2V4U3RyaW5nOnQuY29sb3JHcm91cFJlZ2V4U3RyaW5nO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2NvbG9yR3JvdXBSZWdleFN0cmluZzpyLHVzZXJTZXRHcm91cEJ5S2V5Om4ua2V5LGRlZmF1bHRSdW5Db2xvcklkRm9yR3JvdXBCeTppLGdyb3VwS2V5VG9Db2xvcklkOm8scnVuQ29sb3JPdmVycmlkZUZvckdyb3VwQnk6bmV3IE1hcH0pfSkpLEJTKE1ULCgodCx7cnVuSWQ6ZSxuZXdDb2xvcjpufSk9Pntjb25zdCBvPW5ldyBNYXAodC5ydW5Db2xvck92ZXJyaWRlRm9yR3JvdXBCeSk7cmV0dXJuIG8uc2V0KGUsbiksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtydW5Db2xvck92ZXJyaWRlRm9yR3JvdXBCeTpvfSl9KSksQlMoQ1QsKCh0LGUpPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3JlZ2V4RmlsdGVyOmUucmVnZXhTdHJpbmd9KSkpKSxQSSksa0k9e2tleTpudWxsLGRpcmVjdGlvbjp2SS5VTlNFVH0se2luaXRpYWxTdGF0ZTpTSSxyZWR1Y2VyczpESX09Y0Eoe3BhZ2luYXRpb25PcHRpb246e3BhZ2VJbmRleDowLHBhZ2VTaXplOjEwfSxzb3J0OmtJfSx7fSksUkk9V0EoVlMoU0ksQlMoeVQsKCh0LHtwYWdlU2l6ZTplLHBhZ2VJbmRleDpufSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7cGFnaW5hdGlvbk9wdGlvbjp7cGFnZVNpemU6ZSxwYWdlSW5kZXg6bn19KSkpLEJTKENULCgodCxlKT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtwYWdpbmF0aW9uT3B0aW9uOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnBhZ2luYXRpb25PcHRpb24pLHtwYWdlSW5kZXg6MH0pfSkpKSxCUyhfVCwoKHQsZSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c29ydDp7a2V5OmUua2V5LGRpcmVjdGlvbjplLmRpcmVjdGlvbn19KSkpKSxESSk7ZnVuY3Rpb24gRUkodCxlKXtyZXR1cm4gR2soe2RhdGE6d0ksdWk6Ukl9KSh0LGUpfWZ1bmN0aW9uIEFJKCl7cmV0dXJuW3thY3Rpb25DcmVhdG9yOmdULGFsZXJ0RnJvbUFjdGlvbjooKT0+KHtsb2NhbGl6ZWRNZXNzYWdlOiJGYWlsZWQgdG8gZmV0Y2ggcnVucyJ9KX1dfWNsYXNzIFRJe312YXIgTkk7VEkuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFRJKX0sVEkuybVtb2Q9Zm8oe3R5cGU6VEl9KSxUSS7JtWluaj1Ebih7aW1wb3J0czpbW1RTLmZvckZlYXR1cmUoSHosRUkpLGhELmZvckZlYXR1cmUoW01JXSksalQsbVQucmVnaXN0ZXJBbGVydEFjdGlvbnMoQUkpLExUXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFRJLFt7dHlwZTpMXyxhcmdzOlt7aW1wb3J0czpbVFMuZm9yRmVhdHVyZShIeixFSSksaEQuZm9yRmVhdHVyZShbTUldKSxqVCxtVC5yZWdpc3RlckFsZXJ0QWN0aW9ucyhBSSksTFRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oVEkse2ltcG9ydHM6W0FTLGdELGpULG1ULExUXX0pLChmdW5jdGlvbih0KXt0LlJVTlNfQ0hBTkdFRD0iZXhwZXJpbWVudGFsLlJ1bnNDaGFuZ2VkIix0LkdFVF9SVU5TPSJleHBlcmltZW50YWwuR2V0UnVucyIsdC5HRVRfVVJMX0RBVEE9ImV4cGVyaW1lbnRhbC5HZXRVUkxQbHVnaW5EYXRhIix0LkRBVEFfUkVMT0FERUQ9ImV4cGVyaW1lbnRhbC5EYXRhUmVsb2FkZWQifSkoTkl8fChOST17fSkpO2NsYXNzIHpJe2NvbnN0cnVjdG9yKHQpe3RoaXMucG9ydD10LHRoaXMuaWQ9MCx0aGlzLnJlc3BvbnNlV2FpdHM9bmV3IE1hcCx0aGlzLmxpc3RlbmVycz1uZXcgTWFwLHRoaXMucG9ydC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwodD0+dGhpcy5vbk1lc3NhZ2UodCkpKX1saXN0ZW4odCxlKXt0aGlzLmxpc3RlbmVycy5zZXQodCxlKX11bmxpc3Rlbih0KXt0aGlzLmxpc3RlbmVycy5kZWxldGUodCl9b25NZXNzYWdlKHQpe3JldHVybiBYVCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IGU9SlNPTi5wYXJzZSh0LmRhdGEpLG49ZS50eXBlLG89ZS5pZCxpPWUucGF5bG9hZCxhPWUuZXJyb3I7aWYoZS5pc1JlcGx5KXtpZighdGhpcy5yZXNwb25zZVdhaXRzLmhhcyhvKSlyZXR1cm47Y29uc3R7cmVzb2x2ZTp0LHJlamVjdDplfT10aGlzLnJlc3BvbnNlV2FpdHMuZ2V0KG8pO3JldHVybiB0aGlzLnJlc3BvbnNlV2FpdHMuZGVsZXRlKG8pLHZvaWQoYT9lKG5ldyBFcnJvcihhKSk6dChpKSl9bGV0IHI9bnVsbCxzPW51bGw7aWYodGhpcy5saXN0ZW5lcnMuaGFzKG4pKXtjb25zdCB0PXRoaXMubGlzdGVuZXJzLmdldChuKTt0cnl7cj15aWVsZCB0KGkpfWNhdGNoKHQpe3M9dH19dGhpcy5wb3N0TWVzc2FnZSh7dHlwZTpuLGlkOm8scGF5bG9hZDpyLGVycm9yOnMsaXNSZXBseTohMH0pfSkpfXBvc3RNZXNzYWdlKHQpe3RoaXMucG9ydC5wb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeSh0KSl9c2VuZE1lc3NhZ2UodCxlKXtjb25zdCBuPXRoaXMuaWQrKztyZXR1cm4gdGhpcy5wb3N0TWVzc2FnZSh7dHlwZTp0LGlkOm4scGF5bG9hZDplLGVycm9yOm51bGwsaXNSZXBseTohMX0pLG5ldyBQcm9taXNlKCgodCxlKT0+e3RoaXMucmVzcG9uc2VXYWl0cy5zZXQobix7cmVzb2x2ZTp0LHJlamVjdDplfSl9KSl9fWNvbnN0IElJPW5ldyBXZWFrTWFwLEhJPW5ldyBTZXQsRkk9bmV3IE1hcCxMST1uZXcgTWFwO2Z1bmN0aW9uIEJJKHQsZSl7cmV0dXJuIG49Pntjb25zdCBvPUxJLmdldChlKSxpPUlJLmdldChvKXx8bnVsbDtyZXR1cm4gdChpLG4pfX13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKHQ9PntpZigiZXhwZXJpbWVudGFsLmJvb3RzdHJhcCIhPT10LmRhdGEpcmV0dXJuO2NvbnN0IGU9dC5wb3J0c1swXTtpZighZSlyZXR1cm47Y29uc3Qgbj10LnNvdXJjZT90LnNvdXJjZS5mcmFtZUVsZW1lbnQ6bnVsbDtuJiYoZnVuY3Rpb24gbyh0LGUpe2NvbnN0IG49bmV3IHpJKHQpO0hJLmFkZChuKSxMSS5zZXQobixlKSx0LnN0YXJ0KCk7Zm9yKGNvbnN0W3QsZV1vZiBGSSl7Y29uc3Qgbz1CSShlLG4pO24ubGlzdGVuKHQsbyl9fSkoZSxuKX0pKTtjbGFzcyBWSXticm9hZGNhc3QodCxlKXtyZXR1cm4oZnVuY3Rpb24gbih0LGUpe2Zvcihjb25zdCB0IG9mIEhJKUxJLmdldCh0KS5pc0Nvbm5lY3RlZHx8KEhJLmRlbGV0ZSh0KSxMSS5kZWxldGUodCkpO2NvbnN0IG49Wy4uLkhJXS5tYXAoKG49Pm4uc2VuZE1lc3NhZ2UodCxlKSkpO3JldHVybiBQcm9taXNlLmFsbChuKX0pKHQsZSl9bGlzdGVuKHQsZSl7IShmdW5jdGlvbiBuKHQsZSl7Rkkuc2V0KHQsZSk7Zm9yKGNvbnN0IG4gb2YgSEkpe2NvbnN0IG89QkkoZSxuKTtuLmxpc3Rlbih0LG8pfX0pKHQsZSl9dW5saXN0ZW4odCl7IShmdW5jdGlvbiBlKHQpe0ZJLmRlbGV0ZSh0KTtmb3IoY29uc3QgZSBvZiBISSllLnVubGlzdGVuKHQpfSkodCl9fVZJLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxWSSl9LFZJLsm1cHJvdj1Tbih7dG9rZW46VkksZmFjdG9yeTpWSS7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoVkksW3t0eXBlOlVtfV0sbnVsbCxudWxsKTtjbGFzcyBqSXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuaXBjPXQsdGhpcy5zdG9yZT1lfWluaXQoKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRmLXN0b3JhZ2UiKTt0aGlzLmlwYy5saXN0ZW4oTkkuR0VUX1VSTF9EQVRBLChlPT57aWYoIWUpcmV0dXJuO2NvbnN0IG49YHAuJHtlLnBsdWdpbk5hbWV9LmAsbz17fSxpPXQudGZfc3RvcmFnZS5nZXRVcmxIYXNoRGljdCgpO2ZvcihsZXQgdCBpbiBpKWlmKHQuc3RhcnRzV2l0aChuKSl7b1t0LnN1YnN0cmluZyhuLmxlbmd0aCldPWlbdF19cmV0dXJuIG99KSksdGhpcy5zdG9yZS5zZWxlY3QodFQpLnBpcGUodWUoKHQ9Pm51bGwhPT10KSksd2UoKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuaXBjLmJyb2FkY2FzdChOSS5EQVRBX1JFTE9BREVELHZvaWQgMCl9KSl9fWpJLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxqSSkoVHIoVkkpLFRyKGlTKSl9LGpJLsm1cHJvdj1Tbih7dG9rZW46akksZmFjdG9yeTpqSS7JtWZhYyxwcm92aWRlZEluOiJyb290In0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoakksW3t0eXBlOlVtLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlZJfSx7dHlwZTppU31dfSksbnVsbCk7Y2xhc3MgVUl7Y29uc3RydWN0b3IodCxlKXt0aGlzLmlwYz10LHRoaXMuc3RvcmU9ZX1pbml0KCl7Y29uc3QgdD10aGlzLnN0b3JlLnNlbGVjdCh4UikucGlwZSgkdCgodD0+e2lmKCF0KXJldHVybiB6dChbXSk7cmV0dXJuIEt0KHQubWFwKCh0PT50aGlzLnN0b3JlLnNlbGVjdChxeix7ZXhwZXJpbWVudElkOnR9KSkpKS5waXBlKFZ0KCh0PT50LmZsYXQoKSkpLHdlKCgodCxlKT0+dC5sZW5ndGg9PT1lLmxlbmd0aCYmdC5ldmVyeSgoKHQsbik9PmVbbl0uaWQ9PT10LmlkKSkpKSxWdCgodD0+dC5tYXAoKCh7bmFtZTp0fSk9PnQpKSkpKX0pKSk7dC5zdWJzY3JpYmUoKHQ9Pnt0aGlzLmlwYy5icm9hZGNhc3QoTkkuUlVOU19DSEFOR0VELHQpfSkpLHRoaXMuaXBjLmxpc3RlbihOSS5HRVRfUlVOUywoKCk9PnQucGlwZSh2ZSgxKSkudG9Qcm9taXNlKCkpKX19VUkuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFVJKShUcihWSSksVHIoaVMpKX0sVUkuybVwcm92PVNuKHt0b2tlbjpVSSxmYWN0b3J5OlVJLsm1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihVSSxbe3R5cGU6VW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6Vkl9LHt0eXBlOmlTfV19KSxudWxsKTtjbGFzcyBXSXtjb25zdHJ1Y3Rvcih0LGUpe2UuaW5pdCgpLHQuaW5pdCgpfXJlZ2lzdGVyUGx1Z2luSWZyYW1lKHQsZSl7IShmdW5jdGlvbiBuKHQsZSl7SUkuc2V0KHQse3BsdWdpbk5hbWU6ZX0pfSkodCxlKX19V0kuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFdJKShUcihVSSksVHIoakkpKX0sV0kuybVtb2Q9Zm8oe3R5cGU6V0l9KSxXSS7JtWluaj1Ebih7cHJvdmlkZXJzOltWSSxqSSxVSV0saW1wb3J0czpbW1JSLGRULFRJXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFdJLFt7dHlwZTpMXyxhcmdzOlt7cHJvdmlkZXJzOltWSSxqSSxVSV0saW1wb3J0czpbUlIsZFQsVEldfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6VUl9LHt0eXBlOmpJfV19KSxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKFdJLHtpbXBvcnRzOltSUixkVCxUSV19KTtjb25zdCBHST1faygiW0FsZXJ0XSBBbGVydCBSZXBvcnRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pO2NsYXNzIFlJe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLmFjdGlvbnMkPXQsdGhpcy5zdG9yZT1lLHRoaXMuYWxlcnRBY3Rpb25Nb2R1bGU9bix0aGlzLnJlcG9ydFJlZ2lzdGVyZWRBY3Rpb25BbGVydHMkPVdTKCgoKT0+dGhpcy5hY3Rpb25zJC5waXBlKFdlKCh0PT57Y29uc3QgZT10aGlzLmFsZXJ0QWN0aW9uTW9kdWxlLmdldEFsZXJ0RnJvbUFjdGlvbih0KTtlJiZ0aGlzLnN0b3JlLmRpc3BhdGNoKEdJKGUpKX0pKSkpLHtkaXNwYXRjaDohMX0pfX1ZSS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WUkpKFRyKFFTKSxUcihpUyksVHIobVQpKX0sWUkuybVwcm92PVNuKHt0b2tlbjpZSSxmYWN0b3J5OllJLsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihZSSxbe3R5cGU6VW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6UVN9LHt0eXBlOmlTfSx7dHlwZTptVH1dfSksbnVsbCk7Y29uc3QgcUk9VlMoe2xhdGVzdEFsZXJ0Om51bGx9LEJTKEdJLCgodCx7bG9jYWxpemVkTWVzc2FnZTplLGZvbGxvd3VwQWN0aW9uOm59KT0+e2NvbnN0IG89e2xvY2FsaXplZE1lc3NhZ2U6ZSxjcmVhdGVkOkRhdGUubm93KCl9O3JldHVybiBuJiYoby5mb2xsb3d1cEFjdGlvbj1uKSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2xhdGVzdEFsZXJ0Om99KX0pKSk7ZnVuY3Rpb24gWkkodCxlKXtyZXR1cm4gcUkodCxlKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgWEk9MTMsS0k9MjcsSkk9MzIsUUk9MzgsJEk9NDA7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiB0SCh0LC4uLmUpe3JldHVybiBlLmxlbmd0aD9lLnNvbWUoKGU9PnRbZV0pKTp0LmFsdEtleXx8dC5zaGlmdEtleXx8dC5jdHJsS2V5fHx0Lm1ldGFLZXl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIGVIKHQpe3JldHVybiBudWxsIT10JiYiZmFsc2UiIT1gJHt0fWB9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIG5IKHQsZT0wKXtyZXR1cm4gb0godCk/TnVtYmVyKHQpOmV9ZnVuY3Rpb24gb0godCl7cmV0dXJuIWlzTmFOKHBhcnNlRmxvYXQodCkpJiYhaXNOYU4oTnVtYmVyKHQpKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gaUgodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dDpbdF19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIGFIKHQpe3JldHVybiBudWxsPT10PyIiOiJzdHJpbmciPT10eXBlb2YgdD90OmAke3R9cHhgfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBySCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIEtoP3QubmF0aXZlRWxlbWVudDp0fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9sZXQgc0gsbEg7dHJ5e3NIPSJ1bmRlZmluZWQiIT10eXBlb2YgSW50bCYmSW50bC52OEJyZWFrSXRlcmF0b3J9Y2F0Y2gobUN0KXtzSD0hMX1jbGFzcyBjSHtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9wbGF0Zm9ybUlkPXQsdGhpcy5pc0Jyb3dzZXI9dGhpcy5fcGxhdGZvcm1JZD8oZnVuY3Rpb24gZSh0KXtyZXR1cm4gdD09PXN4fSkodGhpcy5fcGxhdGZvcm1JZCk6Im9iamVjdCI9PXR5cGVvZiBkb2N1bWVudCYmISFkb2N1bWVudCx0aGlzLkVER0U9dGhpcy5pc0Jyb3dzZXImJi8oZWRnZSkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLHRoaXMuVFJJREVOVD10aGlzLmlzQnJvd3NlciYmLyhtc2llfHRyaWRlbnQpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSx0aGlzLkJMSU5LPXRoaXMuaXNCcm93c2VyJiYhKCF3aW5kb3cuY2hyb21lJiYhc0gpJiYidW5kZWZpbmVkIiE9dHlwZW9mIENTUyYmIXRoaXMuRURHRSYmIXRoaXMuVFJJREVOVCx0aGlzLldFQktJVD10aGlzLmlzQnJvd3NlciYmL0FwcGxlV2ViS2l0L2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmIXRoaXMuQkxJTksmJiF0aGlzLkVER0UmJiF0aGlzLlRSSURFTlQsdGhpcy5JT1M9dGhpcy5pc0Jyb3dzZXImJi9pUGFkfGlQaG9uZXxpUG9kLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYhKCJNU1N0cmVhbSJpbiB3aW5kb3cpLHRoaXMuRklSRUZPWD10aGlzLmlzQnJvd3NlciYmLyhmaXJlZm94fG1pbmVmaWVsZCkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLHRoaXMuQU5EUk9JRD10aGlzLmlzQnJvd3NlciYmL2FuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYhdGhpcy5UUklERU5ULHRoaXMuU0FGQVJJPXRoaXMuaXNCcm93c2VyJiYvc2FmYXJpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmdGhpcy5XRUJLSVR9fWNILsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxjSCkoVHIoWF8pKX0sY0guybVwcm92PVNuKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IGNIKFRyKFhfKSl9LHRva2VuOmNILHByb3ZpZGVkSW46InJvb3QifSksY0guY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpPYmplY3QsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbWF9dfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGNILFt7dHlwZTpVbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpPYmplY3QsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbWF9dfV19XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgZEh7fWRILsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxkSCl9LGRILsm1bW9kPWZvKHt0eXBlOmRIfSksZEguybVpbmo9RG4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZEgsW3t0eXBlOkxfLGFyZ3M6W3t9XX1dLG51bGwsbnVsbCk7Y29uc3QgcEg9WyJjb2xvciIsImJ1dHRvbiIsImNoZWNrYm94IiwiZGF0ZSIsImRhdGV0aW1lLWxvY2FsIiwiZW1haWwiLCJmaWxlIiwiaGlkZGVuIiwiaW1hZ2UiLCJtb250aCIsIm51bWJlciIsInBhc3N3b3JkIiwicmFkaW8iLCJyYW5nZSIsInJlc2V0Iiwic2VhcmNoIiwic3VibWl0IiwidGVsIiwidGV4dCIsInRpbWUiLCJ1cmwiLCJ3ZWVrIl07ZnVuY3Rpb24gbUgoKXtpZihsSClyZXR1cm4gbEg7aWYoIm9iamVjdCIhPXR5cGVvZiBkb2N1bWVudHx8IWRvY3VtZW50KXJldHVybiBsSD1uZXcgU2V0KHBIKSxsSDtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3JldHVybiBsSD1uZXcgU2V0KHBILmZpbHRlcigoZT0+KHQuc2V0QXR0cmlidXRlKCJ0eXBlIixlKSx0LnR5cGU9PT1lKSkpKSxsSH0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovbGV0IGZILHVILGdILGhIO2Z1bmN0aW9uIGJIKHQpe3JldHVybihmdW5jdGlvbiBlKCl7aWYobnVsbD09ZkgmJiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93KXRyeXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsbnVsbCxPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6KCk9PmZIPSEwfSkpfWZpbmFsbHl7Zkg9Zkh8fCExfXJldHVybiBmSH0pKCk/dDohIXQuY2FwdHVyZX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24geUgoKXtpZihudWxsPT1nSCl7aWYoIm9iamVjdCIhPXR5cGVvZiBkb2N1bWVudHx8IWRvY3VtZW50fHwiZnVuY3Rpb24iIT10eXBlb2YgRWxlbWVudHx8IUVsZW1lbnQpcmV0dXJuIGdIPSExLGdIO2lmKCJzY3JvbGxCZWhhdmlvciJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUpZ0g9ITA7ZWxzZXtjb25zdCB0PUVsZW1lbnQucHJvdG90eXBlLnNjcm9sbFRvO2dIPSEhdCYmIS9ce1xzKlxbbmF0aXZlIGNvZGVcXVxzKlx9Ly50ZXN0KHQudG9TdHJpbmcoKSl9fXJldHVybiBnSH1mdW5jdGlvbiBfSCgpe2lmKCJvYmplY3QiIT10eXBlb2YgZG9jdW1lbnR8fCFkb2N1bWVudClyZXR1cm4gMDtpZihudWxsPT11SCl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlPXQuc3R5bGU7dC5kaXI9InJ0bCIsZS53aWR0aD0iMXB4IixlLm92ZXJmbG93PSJhdXRvIixlLnZpc2liaWxpdHk9ImhpZGRlbiIsZS5wb2ludGVyRXZlbnRzPSJub25lIixlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7Y29uc3Qgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxvPW4uc3R5bGU7by53aWR0aD0iMnB4IixvLmhlaWdodD0iMXB4Iix0LmFwcGVuZENoaWxkKG4pLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCksdUg9MCwwPT09dC5zY3JvbGxMZWZ0JiYodC5zY3JvbGxMZWZ0PTEsdUg9MD09PXQuc2Nyb2xsTGVmdD8xOjIpLHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KX1yZXR1cm4gdUh9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIENIKHQpe2lmKChmdW5jdGlvbiBlKCl7aWYobnVsbD09aEgpe2NvbnN0IHQ9InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudC5oZWFkOm51bGw7aEg9ISghdHx8IXQuY3JlYXRlU2hhZG93Um9vdCYmIXQuYXR0YWNoU2hhZG93KX1yZXR1cm4gaEh9KSgpKXtjb25zdCBlPXQuZ2V0Um9vdE5vZGU/dC5nZXRSb290Tm9kZSgpOm51bGw7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTaGFkb3dSb290JiZTaGFkb3dSb290JiZlIGluc3RhbmNlb2YgU2hhZG93Um9vdClyZXR1cm4gZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBNSCgpe2xldCB0PSJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50P2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ6bnVsbDtmb3IoO3QmJnQuc2hhZG93Um9vdDspe2NvbnN0IGU9dC5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQ7aWYoZT09PXQpYnJlYWs7dD1lfXJldHVybiB0fWZ1bmN0aW9uIHZIKHQpe3JldHVybiB0LmNvbXBvc2VkUGF0aD90LmNvbXBvc2VkUGF0aCgpWzBdOnQudGFyZ2V0fWNsYXNzIHhIe2NyZWF0ZSh0KXtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXI/bnVsbDpuZXcgTXV0YXRpb25PYnNlcnZlcih0KX19eEguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHhIKX0seEguybVwcm92PVNuKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IHhIfSx0b2tlbjp4SCxwcm92aWRlZEluOiJyb290In0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoeEgsW3t0eXBlOlVtLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sbnVsbCxudWxsKTtjbGFzcyBPSHtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9tdXRhdGlvbk9ic2VydmVyRmFjdG9yeT10LHRoaXMuX29ic2VydmVkRWxlbWVudHM9bmV3IE1hcH1uZ09uRGVzdHJveSgpe3RoaXMuX29ic2VydmVkRWxlbWVudHMuZm9yRWFjaCgoKHQsZSk9PnRoaXMuX2NsZWFudXBPYnNlcnZlcihlKSkpfW9ic2VydmUodCl7Y29uc3QgZT1ySCh0KTtyZXR1cm4gbmV3IFQoKHQ9Pntjb25zdCBuPXRoaXMuX29ic2VydmVFbGVtZW50KGUpLnN1YnNjcmliZSh0KTtyZXR1cm4oKT0+e24udW5zdWJzY3JpYmUoKSx0aGlzLl91bm9ic2VydmVFbGVtZW50KGUpfX0pKX1fb2JzZXJ2ZUVsZW1lbnQodCl7aWYodGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5oYXModCkpdGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5nZXQodCkuY291bnQrKztlbHNle2NvbnN0IGU9bmV3IEIsbj10aGlzLl9tdXRhdGlvbk9ic2VydmVyRmFjdG9yeS5jcmVhdGUoKHQ9PmUubmV4dCh0KSkpO24mJm4ub2JzZXJ2ZSh0LHtjaGFyYWN0ZXJEYXRhOiEwLGNoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSksdGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5zZXQodCx7b2JzZXJ2ZXI6bixzdHJlYW06ZSxjb3VudDoxfSl9cmV0dXJuIHRoaXMuX29ic2VydmVkRWxlbWVudHMuZ2V0KHQpLnN0cmVhbX1fdW5vYnNlcnZlRWxlbWVudCh0KXt0aGlzLl9vYnNlcnZlZEVsZW1lbnRzLmhhcyh0KSYmKHRoaXMuX29ic2VydmVkRWxlbWVudHMuZ2V0KHQpLmNvdW50LS0sdGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5nZXQodCkuY291bnR8fHRoaXMuX2NsZWFudXBPYnNlcnZlcih0KSl9X2NsZWFudXBPYnNlcnZlcih0KXtpZih0aGlzLl9vYnNlcnZlZEVsZW1lbnRzLmhhcyh0KSl7Y29uc3R7b2JzZXJ2ZXI6ZSxzdHJlYW06bn09dGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5nZXQodCk7ZSYmZS5kaXNjb25uZWN0KCksbi5jb21wbGV0ZSgpLHRoaXMuX29ic2VydmVkRWxlbWVudHMuZGVsZXRlKHQpfX19T0guybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE9IKShUcih4SCkpfSxPSC7JtXByb3Y9U24oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgT0goVHIoeEgpKX0sdG9rZW46T0gscHJvdmlkZWRJbjoicm9vdCJ9KSxPSC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnhIfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihPSCxbe3R5cGU6VW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6eEh9XX0pLG51bGwpO2NsYXNzIFBIe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl9jb250ZW50T2JzZXJ2ZXI9dCx0aGlzLl9lbGVtZW50UmVmPWUsdGhpcy5fbmdab25lPW4sdGhpcy5ldmVudD1uZXcgU3ksdGhpcy5fZGlzYWJsZWQ9ITEsdGhpcy5fY3VycmVudFN1YnNjcmlwdGlvbj1udWxsfWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLl9kaXNhYmxlZH1zZXQgZGlzYWJsZWQodCl7dGhpcy5fZGlzYWJsZWQ9ZUgodCksdGhpcy5fZGlzYWJsZWQ/dGhpcy5fdW5zdWJzY3JpYmUoKTp0aGlzLl9zdWJzY3JpYmUoKX1nZXQgZGVib3VuY2UoKXtyZXR1cm4gdGhpcy5fZGVib3VuY2V9c2V0IGRlYm91bmNlKHQpe3RoaXMuX2RlYm91bmNlPW5IKHQpLHRoaXMuX3N1YnNjcmliZSgpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX2N1cnJlbnRTdWJzY3JpcHRpb258fHRoaXMuZGlzYWJsZWR8fHRoaXMuX3N1YnNjcmliZSgpfW5nT25EZXN0cm95KCl7dGhpcy5fdW5zdWJzY3JpYmUoKX1fc3Vic2NyaWJlKCl7dGhpcy5fdW5zdWJzY3JpYmUoKTtjb25zdCB0PXRoaXMuX2NvbnRlbnRPYnNlcnZlci5vYnNlcnZlKHRoaXMuX2VsZW1lbnRSZWYpO3RoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9Pnt0aGlzLl9jdXJyZW50U3Vic2NyaXB0aW9uPSh0aGlzLmRlYm91bmNlP3QucGlwZShDZSh0aGlzLmRlYm91bmNlKSk6dCkuc3Vic2NyaWJlKHRoaXMuZXZlbnQpfSkpfV91bnN1YnNjcmliZSgpe3ZhciB0O251bGw9PT0odD10aGlzLl9jdXJyZW50U3Vic2NyaXB0aW9uKXx8dm9pZCAwPT09dHx8dC51bnN1YnNjcmliZSgpfX1QSC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UEgpKGdmKE9IKSxnZihLaCksZ2YobUMpKX0sUEguybVkaXI9aG8oe3R5cGU6UEgsc2VsZWN0b3JzOltbIiIsImNka09ic2VydmVDb250ZW50IiwiIl1dLGlucHV0czp7ZGlzYWJsZWQ6WyJjZGtPYnNlcnZlQ29udGVudERpc2FibGVkIiwiZGlzYWJsZWQiXSxkZWJvdW5jZToiZGVib3VuY2UifSxvdXRwdXRzOntldmVudDoiY2RrT2JzZXJ2ZUNvbnRlbnQifSxleHBvcnRBczpbImNka09ic2VydmVDb250ZW50Il19KSxQSC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOk9IfSx7dHlwZTpLaH0se3R5cGU6bUN9XSxQSC5wcm9wRGVjb3JhdG9ycz17ZXZlbnQ6W3t0eXBlOkVfLGFyZ3M6WyJjZGtPYnNlcnZlQ29udGVudCJdfV0sZGlzYWJsZWQ6W3t0eXBlOlJfLGFyZ3M6WyJjZGtPYnNlcnZlQ29udGVudERpc2FibGVkIl19XSxkZWJvdW5jZTpbe3R5cGU6Ul99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihQSCxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJbY2RrT2JzZXJ2ZUNvbnRlbnRdIixleHBvcnRBczoiY2RrT2JzZXJ2ZUNvbnRlbnQifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6T0h9LHt0eXBlOktofSx7dHlwZTptQ31dfSkse2V2ZW50Olt7dHlwZTpFXyxhcmdzOlsiY2RrT2JzZXJ2ZUNvbnRlbnQiXX1dLGRpc2FibGVkOlt7dHlwZTpSXyxhcmdzOlsiY2RrT2JzZXJ2ZUNvbnRlbnREaXNhYmxlZCJdfV0sZGVib3VuY2U6W3t0eXBlOlJffV19KTtjbGFzcyB3SHt9d0guybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHdIKX0sd0guybVtb2Q9Zm8oe3R5cGU6d0h9KSx3SC7JtWluaj1Ebih7cHJvdmlkZXJzOlt4SF19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHdILFt7dHlwZTpMXyxhcmdzOlt7ZXhwb3J0czpbUEhdLGRlY2xhcmF0aW9uczpbUEhdLHByb3ZpZGVyczpbeEhdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8od0gse2RlY2xhcmF0aW9uczpbUEhdLGV4cG9ydHM6W1BIXX0pO2Z1bmN0aW9uIGtIKHQsZSl7cmV0dXJuKHQuZ2V0QXR0cmlidXRlKGUpfHwiIikubWF0Y2goL1xTKy9nKXx8W119Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IFNIPSJjZGstZGVzY3JpYmVkYnktbWVzc2FnZS1jb250YWluZXIiLERIPSJjZGstZGVzY3JpYmVkYnktbWVzc2FnZSIsUkg9ImNkay1kZXNjcmliZWRieS1ob3N0IjtsZXQgRUg9MDtjb25zdCBBSD1uZXcgTWFwO2xldCBUSD1udWxsO2NsYXNzIE5Ie2NvbnN0cnVjdG9yKHQpe3RoaXMuX2RvY3VtZW50PXR9ZGVzY3JpYmUodCxlLG4pe2lmKCF0aGlzLl9jYW5CZURlc2NyaWJlZCh0LGUpKXJldHVybjtjb25zdCBvPXpIKGUsbik7InN0cmluZyIhPXR5cGVvZiBlPyhJSChlKSxBSC5zZXQobyx7bWVzc2FnZUVsZW1lbnQ6ZSxyZWZlcmVuY2VDb3VudDowfSkpOkFILmhhcyhvKXx8dGhpcy5fY3JlYXRlTWVzc2FnZUVsZW1lbnQoZSxuKSx0aGlzLl9pc0VsZW1lbnREZXNjcmliZWRCeU1lc3NhZ2UodCxvKXx8dGhpcy5fYWRkTWVzc2FnZVJlZmVyZW5jZSh0LG8pfXJlbW92ZURlc2NyaXB0aW9uKHQsZSxuKXtpZighZXx8IXRoaXMuX2lzRWxlbWVudE5vZGUodCkpcmV0dXJuO2NvbnN0IG89ekgoZSxuKTtpZih0aGlzLl9pc0VsZW1lbnREZXNjcmliZWRCeU1lc3NhZ2UodCxvKSYmdGhpcy5fcmVtb3ZlTWVzc2FnZVJlZmVyZW5jZSh0LG8pLCJzdHJpbmciPT10eXBlb2YgZSl7Y29uc3QgdD1BSC5nZXQobyk7dCYmMD09PXQucmVmZXJlbmNlQ291bnQmJnRoaXMuX2RlbGV0ZU1lc3NhZ2VFbGVtZW50KG8pfVRIJiYwPT09VEguY2hpbGROb2Rlcy5sZW5ndGgmJnRoaXMuX2RlbGV0ZU1lc3NhZ2VzQ29udGFpbmVyKCl9bmdPbkRlc3Ryb3koKXtjb25zdCB0PXRoaXMuX2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltjZGstZGVzY3JpYmVkYnktaG9zdF0iKTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl0aGlzLl9yZW1vdmVDZGtEZXNjcmliZWRCeVJlZmVyZW5jZUlkcyh0W2VdKSx0W2VdLnJlbW92ZUF0dHJpYnV0ZShSSCk7VEgmJnRoaXMuX2RlbGV0ZU1lc3NhZ2VzQ29udGFpbmVyKCksQUguY2xlYXIoKX1fY3JlYXRlTWVzc2FnZUVsZW1lbnQodCxlKXtjb25zdCBuPXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO0lIKG4pLG4udGV4dENvbnRlbnQ9dCxlJiZuLnNldEF0dHJpYnV0ZSgicm9sZSIsZSksdGhpcy5fY3JlYXRlTWVzc2FnZXNDb250YWluZXIoKSxUSC5hcHBlbmRDaGlsZChuKSxBSC5zZXQoekgodCxlKSx7bWVzc2FnZUVsZW1lbnQ6bixyZWZlcmVuY2VDb3VudDowfSl9X2RlbGV0ZU1lc3NhZ2VFbGVtZW50KHQpe2NvbnN0IGU9QUguZ2V0KHQpLG49ZSYmZS5tZXNzYWdlRWxlbWVudDtUSCYmbiYmVEgucmVtb3ZlQ2hpbGQobiksQUguZGVsZXRlKHQpfV9jcmVhdGVNZXNzYWdlc0NvbnRhaW5lcigpe2lmKCFUSCl7Y29uc3QgdD10aGlzLl9kb2N1bWVudC5nZXRFbGVtZW50QnlJZChTSCk7dCYmdC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCksVEg9dGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksVEguaWQ9U0gsVEguc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIixUSC5jbGFzc0xpc3QuYWRkKCJjZGstdmlzdWFsbHktaGlkZGVuIiksdGhpcy5fZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChUSCl9fV9kZWxldGVNZXNzYWdlc0NvbnRhaW5lcigpe1RIJiZUSC5wYXJlbnROb2RlJiYoVEgucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChUSCksVEg9bnVsbCl9X3JlbW92ZUNka0Rlc2NyaWJlZEJ5UmVmZXJlbmNlSWRzKHQpe2NvbnN0IGU9a0godCwiYXJpYS1kZXNjcmliZWRieSIpLmZpbHRlcigodD0+MCE9dC5pbmRleE9mKERIKSkpO3Quc2V0QXR0cmlidXRlKCJhcmlhLWRlc2NyaWJlZGJ5IixlLmpvaW4oIiAiKSl9X2FkZE1lc3NhZ2VSZWZlcmVuY2UodCxlKXtjb25zdCBuPUFILmdldChlKTshKGZ1bmN0aW9uIG8odCxlLG4pe2NvbnN0IG89a0godCxlKTtvLnNvbWUoKHQ9PnQudHJpbSgpPT1uLnRyaW0oKSkpfHwoby5wdXNoKG4udHJpbSgpKSx0LnNldEF0dHJpYnV0ZShlLG8uam9pbigiICIpKSl9KSh0LCJhcmlhLWRlc2NyaWJlZGJ5IixuLm1lc3NhZ2VFbGVtZW50LmlkKSx0LnNldEF0dHJpYnV0ZShSSCwiIiksbi5yZWZlcmVuY2VDb3VudCsrfV9yZW1vdmVNZXNzYWdlUmVmZXJlbmNlKHQsZSl7Y29uc3Qgbj1BSC5nZXQoZSk7bi5yZWZlcmVuY2VDb3VudC0tLChmdW5jdGlvbiBvKHQsZSxuKXtjb25zdCBvPWtIKHQsZSkuZmlsdGVyKCh0PT50IT1uLnRyaW0oKSkpO28ubGVuZ3RoP3Quc2V0QXR0cmlidXRlKGUsby5qb2luKCIgIikpOnQucmVtb3ZlQXR0cmlidXRlKGUpfSkodCwiYXJpYS1kZXNjcmliZWRieSIsbi5tZXNzYWdlRWxlbWVudC5pZCksdC5yZW1vdmVBdHRyaWJ1dGUoUkgpfV9pc0VsZW1lbnREZXNjcmliZWRCeU1lc3NhZ2UodCxlKXtjb25zdCBuPWtIKHQsImFyaWEtZGVzY3JpYmVkYnkiKSxvPUFILmdldChlKSxpPW8mJm8ubWVzc2FnZUVsZW1lbnQuaWQ7cmV0dXJuISFpJiYtMSE9bi5pbmRleE9mKGkpfV9jYW5CZURlc2NyaWJlZCh0LGUpe2lmKCF0aGlzLl9pc0VsZW1lbnROb2RlKHQpKXJldHVybiExO2lmKGUmJiJvYmplY3QiPT10eXBlb2YgZSlyZXR1cm4hMDtjb25zdCBuPW51bGw9PWU/IiI6YCR7ZX1gLnRyaW0oKSxvPXQuZ2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIik7cmV0dXJuISFuJiYoIW98fG8udHJpbSgpIT09bil9X2lzRWxlbWVudE5vZGUodCl7cmV0dXJuIHQubm9kZVR5cGU9PT10aGlzLl9kb2N1bWVudC5FTEVNRU5UX05PREV9fWZ1bmN0aW9uIHpIKHQsZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P2Ake2V8fCIifS8ke3R9YDp0fWZ1bmN0aW9uIElIKHQpe3QuaWR8fCh0LmlkPSJjZGstZGVzY3JpYmVkYnktbWVzc2FnZS0iK0VIKyspfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9OSC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TkgpKFRyKHNNKSl9LE5ILsm1cHJvdj1Tbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBOSChUcihzTSkpfSx0b2tlbjpOSCxwcm92aWRlZEluOiJyb290In0pLE5ILmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihOSCxbe3R5cGU6VW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfV19KSxudWxsKTtjbGFzcyBISHtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9pdGVtcz10LHRoaXMuX2FjdGl2ZUl0ZW1JbmRleD0tMSx0aGlzLl9hY3RpdmVJdGVtPW51bGwsdGhpcy5fd3JhcD0hMSx0aGlzLl9sZXR0ZXJLZXlTdHJlYW09bmV3IEIsdGhpcy5fdHlwZWFoZWFkU3Vic2NyaXB0aW9uPXUuRU1QVFksdGhpcy5fdmVydGljYWw9ITAsdGhpcy5fYWxsb3dlZE1vZGlmaWVyS2V5cz1bXSx0aGlzLl9ob21lQW5kRW5kPSExLHRoaXMuX3NraXBQcmVkaWNhdGVGbj10PT50LmRpc2FibGVkLHRoaXMuX3ByZXNzZWRMZXR0ZXJzPVtdLHRoaXMudGFiT3V0PW5ldyBCLHRoaXMuY2hhbmdlPW5ldyBCLHQgaW5zdGFuY2VvZiBSeSYmdC5jaGFuZ2VzLnN1YnNjcmliZSgodD0+e2lmKHRoaXMuX2FjdGl2ZUl0ZW0pe2NvbnN0IGU9dC50b0FycmF5KCkuaW5kZXhPZih0aGlzLl9hY3RpdmVJdGVtKTtlPi0xJiZlIT09dGhpcy5fYWN0aXZlSXRlbUluZGV4JiYodGhpcy5fYWN0aXZlSXRlbUluZGV4PWUpfX0pKX1za2lwUHJlZGljYXRlKHQpe3JldHVybiB0aGlzLl9za2lwUHJlZGljYXRlRm49dCx0aGlzfXdpdGhXcmFwKHQ9ITApe3JldHVybiB0aGlzLl93cmFwPXQsdGhpc313aXRoVmVydGljYWxPcmllbnRhdGlvbih0PSEwKXtyZXR1cm4gdGhpcy5fdmVydGljYWw9dCx0aGlzfXdpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odCl7cmV0dXJuIHRoaXMuX2hvcml6b250YWw9dCx0aGlzfXdpdGhBbGxvd2VkTW9kaWZpZXJLZXlzKHQpe3JldHVybiB0aGlzLl9hbGxvd2VkTW9kaWZpZXJLZXlzPXQsdGhpc313aXRoVHlwZUFoZWFkKHQ9MjAwKXtpZigoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJnRoaXMuX2l0ZW1zLmxlbmd0aCYmdGhpcy5faXRlbXMuc29tZSgodD0+ImZ1bmN0aW9uIiE9dHlwZW9mIHQuZ2V0TGFiZWwpKSl0aHJvdyBFcnJvcigiTGlzdEtleU1hbmFnZXIgaXRlbXMgaW4gdHlwZWFoZWFkIG1vZGUgbXVzdCBpbXBsZW1lbnQgdGhlIGBnZXRMYWJlbGAgbWV0aG9kLiIpO3JldHVybiB0aGlzLl90eXBlYWhlYWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl90eXBlYWhlYWRTdWJzY3JpcHRpb249dGhpcy5fbGV0dGVyS2V5U3RyZWFtLnBpcGUoV2UoKHQ9PnRoaXMuX3ByZXNzZWRMZXR0ZXJzLnB1c2godCkpKSxDZSh0KSx1ZSgoKCk9PnRoaXMuX3ByZXNzZWRMZXR0ZXJzLmxlbmd0aD4wKSksVnQoKCgpPT50aGlzLl9wcmVzc2VkTGV0dGVycy5qb2luKCIiKSkpKS5zdWJzY3JpYmUoKHQ9Pntjb25zdCBlPXRoaXMuX2dldEl0ZW1zQXJyYXkoKTtmb3IobGV0IG49MTtuPGUubGVuZ3RoKzE7bisrKXtjb25zdCBvPSh0aGlzLl9hY3RpdmVJdGVtSW5kZXgrbiklZS5sZW5ndGgsaT1lW29dO2lmKCF0aGlzLl9za2lwUHJlZGljYXRlRm4oaSkmJjA9PT1pLmdldExhYmVsKCkudG9VcHBlckNhc2UoKS50cmltKCkuaW5kZXhPZih0KSl7dGhpcy5zZXRBY3RpdmVJdGVtKG8pO2JyZWFrfX10aGlzLl9wcmVzc2VkTGV0dGVycz1bXX0pKSx0aGlzfXdpdGhIb21lQW5kRW5kKHQ9ITApe3JldHVybiB0aGlzLl9ob21lQW5kRW5kPXQsdGhpc31zZXRBY3RpdmVJdGVtKHQpe2NvbnN0IGU9dGhpcy5fYWN0aXZlSXRlbTt0aGlzLnVwZGF0ZUFjdGl2ZUl0ZW0odCksdGhpcy5fYWN0aXZlSXRlbSE9PWUmJnRoaXMuY2hhbmdlLm5leHQodGhpcy5fYWN0aXZlSXRlbUluZGV4KX1vbktleWRvd24odCl7Y29uc3QgZT10LmtleUNvZGUsbj1bImFsdEtleSIsImN0cmxLZXkiLCJtZXRhS2V5Iiwic2hpZnRLZXkiXS5ldmVyeSgoZT0+IXRbZV18fHRoaXMuX2FsbG93ZWRNb2RpZmllcktleXMuaW5kZXhPZihlKT4tMSkpO3N3aXRjaChlKXtjYXNlIDk6cmV0dXJuIHZvaWQgdGhpcy50YWJPdXQubmV4dCgpO2Nhc2UgJEk6aWYodGhpcy5fdmVydGljYWwmJm4pe3RoaXMuc2V0TmV4dEl0ZW1BY3RpdmUoKTticmVha31yZXR1cm47Y2FzZSBRSTppZih0aGlzLl92ZXJ0aWNhbCYmbil7dGhpcy5zZXRQcmV2aW91c0l0ZW1BY3RpdmUoKTticmVha31yZXR1cm47Y2FzZSAzOTppZih0aGlzLl9ob3Jpem9udGFsJiZuKXsicnRsIj09PXRoaXMuX2hvcml6b250YWw/dGhpcy5zZXRQcmV2aW91c0l0ZW1BY3RpdmUoKTp0aGlzLnNldE5leHRJdGVtQWN0aXZlKCk7YnJlYWt9cmV0dXJuO2Nhc2UgMzc6aWYodGhpcy5faG9yaXpvbnRhbCYmbil7InJ0bCI9PT10aGlzLl9ob3Jpem9udGFsP3RoaXMuc2V0TmV4dEl0ZW1BY3RpdmUoKTp0aGlzLnNldFByZXZpb3VzSXRlbUFjdGl2ZSgpO2JyZWFrfXJldHVybjtjYXNlIDM2OmlmKHRoaXMuX2hvbWVBbmRFbmQmJm4pe3RoaXMuc2V0Rmlyc3RJdGVtQWN0aXZlKCk7YnJlYWt9cmV0dXJuO2Nhc2UgMzU6aWYodGhpcy5faG9tZUFuZEVuZCYmbil7dGhpcy5zZXRMYXN0SXRlbUFjdGl2ZSgpO2JyZWFrfXJldHVybjtkZWZhdWx0OnJldHVybiB2b2lkKChufHx0SCh0LCJzaGlmdEtleSIpKSYmKHQua2V5JiYxPT09dC5rZXkubGVuZ3RoP3RoaXMuX2xldHRlcktleVN0cmVhbS5uZXh0KHQua2V5LnRvTG9jYWxlVXBwZXJDYXNlKCkpOihlPj02NSYmZTw9OTB8fGU+PTQ4JiZlPD01NykmJnRoaXMuX2xldHRlcktleVN0cmVhbS5uZXh0KFN0cmluZy5mcm9tQ2hhckNvZGUoZSkpKSl9dGhpcy5fcHJlc3NlZExldHRlcnM9W10sdC5wcmV2ZW50RGVmYXVsdCgpfWdldCBhY3RpdmVJdGVtSW5kZXgoKXtyZXR1cm4gdGhpcy5fYWN0aXZlSXRlbUluZGV4fWdldCBhY3RpdmVJdGVtKCl7cmV0dXJuIHRoaXMuX2FjdGl2ZUl0ZW19aXNUeXBpbmcoKXtyZXR1cm4gdGhpcy5fcHJlc3NlZExldHRlcnMubGVuZ3RoPjB9c2V0Rmlyc3RJdGVtQWN0aXZlKCl7dGhpcy5fc2V0QWN0aXZlSXRlbUJ5SW5kZXgoMCwxKX1zZXRMYXN0SXRlbUFjdGl2ZSgpe3RoaXMuX3NldEFjdGl2ZUl0ZW1CeUluZGV4KHRoaXMuX2l0ZW1zLmxlbmd0aC0xLC0xKX1zZXROZXh0SXRlbUFjdGl2ZSgpe3RoaXMuX2FjdGl2ZUl0ZW1JbmRleDwwP3RoaXMuc2V0Rmlyc3RJdGVtQWN0aXZlKCk6dGhpcy5fc2V0QWN0aXZlSXRlbUJ5RGVsdGEoMSl9c2V0UHJldmlvdXNJdGVtQWN0aXZlKCl7dGhpcy5fYWN0aXZlSXRlbUluZGV4PDAmJnRoaXMuX3dyYXA/dGhpcy5zZXRMYXN0SXRlbUFjdGl2ZSgpOnRoaXMuX3NldEFjdGl2ZUl0ZW1CeURlbHRhKC0xKX11cGRhdGVBY3RpdmVJdGVtKHQpe2NvbnN0IGU9dGhpcy5fZ2V0SXRlbXNBcnJheSgpLG49Im51bWJlciI9PXR5cGVvZiB0P3Q6ZS5pbmRleE9mKHQpLG89ZVtuXTt0aGlzLl9hY3RpdmVJdGVtPW51bGw9PW8/bnVsbDpvLHRoaXMuX2FjdGl2ZUl0ZW1JbmRleD1ufV9zZXRBY3RpdmVJdGVtQnlEZWx0YSh0KXt0aGlzLl93cmFwP3RoaXMuX3NldEFjdGl2ZUluV3JhcE1vZGUodCk6dGhpcy5fc2V0QWN0aXZlSW5EZWZhdWx0TW9kZSh0KX1fc2V0QWN0aXZlSW5XcmFwTW9kZSh0KXtjb25zdCBlPXRoaXMuX2dldEl0ZW1zQXJyYXkoKTtmb3IobGV0IG49MTtuPD1lLmxlbmd0aDtuKyspe2NvbnN0IG89KHRoaXMuX2FjdGl2ZUl0ZW1JbmRleCt0Km4rZS5sZW5ndGgpJWUubGVuZ3RoO2lmKCF0aGlzLl9za2lwUHJlZGljYXRlRm4oZVtvXSkpcmV0dXJuIHZvaWQgdGhpcy5zZXRBY3RpdmVJdGVtKG8pfX1fc2V0QWN0aXZlSW5EZWZhdWx0TW9kZSh0KXt0aGlzLl9zZXRBY3RpdmVJdGVtQnlJbmRleCh0aGlzLl9hY3RpdmVJdGVtSW5kZXgrdCx0KX1fc2V0QWN0aXZlSXRlbUJ5SW5kZXgodCxlKXtjb25zdCBuPXRoaXMuX2dldEl0ZW1zQXJyYXkoKTtpZihuW3RdKXtmb3IoO3RoaXMuX3NraXBQcmVkaWNhdGVGbihuW3RdKTspaWYoIW5bdCs9ZV0pcmV0dXJuO3RoaXMuc2V0QWN0aXZlSXRlbSh0KX19X2dldEl0ZW1zQXJyYXkoKXtyZXR1cm4gdGhpcy5faXRlbXMgaW5zdGFuY2VvZiBSeT90aGlzLl9pdGVtcy50b0FycmF5KCk6dGhpcy5faXRlbXN9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBGSCBleHRlbmRzIEhIe3NldEFjdGl2ZUl0ZW0odCl7dGhpcy5hY3RpdmVJdGVtJiZ0aGlzLmFjdGl2ZUl0ZW0uc2V0SW5hY3RpdmVTdHlsZXMoKSxzdXBlci5zZXRBY3RpdmVJdGVtKHQpLHRoaXMuYWN0aXZlSXRlbSYmdGhpcy5hY3RpdmVJdGVtLnNldEFjdGl2ZVN0eWxlcygpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgTEggZXh0ZW5kcyBISHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fb3JpZ2luPSJwcm9ncmFtIn1zZXRGb2N1c09yaWdpbih0KXtyZXR1cm4gdGhpcy5fb3JpZ2luPXQsdGhpc31zZXRBY3RpdmVJdGVtKHQpe3N1cGVyLnNldEFjdGl2ZUl0ZW0odCksdGhpcy5hY3RpdmVJdGVtJiZ0aGlzLmFjdGl2ZUl0ZW0uZm9jdXModGhpcy5fb3JpZ2luKX19Y2xhc3MgQkh7Y29uc3RydWN0b3IodCl7dGhpcy5fcGxhdGZvcm09dH1pc0Rpc2FibGVkKHQpe3JldHVybiB0Lmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKX1pc1Zpc2libGUodCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuISEodC5vZmZzZXRXaWR0aHx8dC5vZmZzZXRIZWlnaHR8fCJmdW5jdGlvbiI9PXR5cGVvZiB0LmdldENsaWVudFJlY3RzJiZ0LmdldENsaWVudFJlY3RzKCkubGVuZ3RoKX0pKHQpJiYidmlzaWJsZSI9PT1nZXRDb21wdXRlZFN0eWxlKHQpLnZpc2liaWxpdHl9aXNUYWJiYWJsZSh0KXtpZighdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyKXJldHVybiExO2NvbnN0IGU9KGZ1bmN0aW9uIG8odCl7dHJ5e3JldHVybiB0LmZyYW1lRWxlbWVudH1jYXRjaCh0KXtyZXR1cm4gbnVsbH19KSgoZnVuY3Rpb24gbih0KXtyZXR1cm4gdC5vd25lckRvY3VtZW50JiZ0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvd30KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSh0KSk7aWYoZSl7aWYoLTE9PT1qSChlKSlyZXR1cm4hMTtpZighdGhpcy5pc1Zpc2libGUoZSkpcmV0dXJuITF9bGV0IGk9dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLGE9akgodCk7cmV0dXJuIHQuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKT8tMSE9PWE6ImlmcmFtZSIhPT1pJiYib2JqZWN0IiE9PWkmJighKHRoaXMuX3BsYXRmb3JtLldFQktJVCYmdGhpcy5fcGxhdGZvcm0uSU9TJiYhKGZ1bmN0aW9uIHIodCl7bGV0IGU9dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLG49ImlucHV0Ij09PWUmJnQudHlwZTtyZXR1cm4idGV4dCI9PT1ufHwicGFzc3dvcmQiPT09bnx8InNlbGVjdCI9PT1lfHwidGV4dGFyZWEiPT09ZX0pKHQpKSYmKCJhdWRpbyI9PT1pPyEhdC5oYXNBdHRyaWJ1dGUoImNvbnRyb2xzIikmJi0xIT09YToidmlkZW8iPT09aT8tMSE9PWEmJihudWxsIT09YXx8KHRoaXMuX3BsYXRmb3JtLkZJUkVGT1h8fHQuaGFzQXR0cmlidXRlKCJjb250cm9scyIpKSk6dC50YWJJbmRleD49MCkpfWlzRm9jdXNhYmxlKHQsZSl7cmV0dXJuKGZ1bmN0aW9uIG4odCl7aWYoKGZ1bmN0aW9uIGUodCl7cmV0dXJuKGZ1bmN0aW9uIGUodCl7cmV0dXJuImlucHV0Ij09dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpfSkodCkmJiJoaWRkZW4iPT10LnR5cGV9KSh0KSlyZXR1cm4hMTtyZXR1cm4oZnVuY3Rpb24gbih0KXtsZXQgZT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWV8fCJzZWxlY3QiPT09ZXx8ImJ1dHRvbiI9PT1lfHwidGV4dGFyZWEiPT09ZX0pKHQpfHwoZnVuY3Rpb24gbyh0KXtyZXR1cm4oZnVuY3Rpb24gZSh0KXtyZXR1cm4iYSI9PXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKX0pKHQpJiZ0Lmhhc0F0dHJpYnV0ZSgiaHJlZiIpfSkodCl8fHQuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8VkgodCl9KSh0KSYmIXRoaXMuaXNEaXNhYmxlZCh0KSYmKChudWxsPT1lP3ZvaWQgMDplLmlnbm9yZVZpc2liaWxpdHkpfHx0aGlzLmlzVmlzaWJsZSh0KSl9fWZ1bmN0aW9uIFZIKHQpe2lmKCF0Lmhhc0F0dHJpYnV0ZSgidGFiaW5kZXgiKXx8dm9pZCAwPT09dC50YWJJbmRleClyZXR1cm4hMTtsZXQgZT10LmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKTtyZXR1cm4iLTMyNzY4IiE9ZSYmISghZXx8aXNOYU4ocGFyc2VJbnQoZSwxMCkpKX1mdW5jdGlvbiBqSCh0KXtpZighVkgodCkpcmV0dXJuIG51bGw7Y29uc3QgZT1wYXJzZUludCh0LmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKXx8IiIsMTApO3JldHVybiBpc05hTihlKT8tMTplfUJILsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxCSCkoVHIoY0gpKX0sQkguybVwcm92PVNuKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IEJIKFRyKGNIKSl9LHRva2VuOkJILHByb3ZpZGVkSW46InJvb3QifSksQkguY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpjSH1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoQkgsW3t0eXBlOlVtLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmNIfV19KSxudWxsKTtjbGFzcyBVSHtjb25zdHJ1Y3Rvcih0LGUsbixvLGk9ITEpe3RoaXMuX2VsZW1lbnQ9dCx0aGlzLl9jaGVja2VyPWUsdGhpcy5fbmdab25lPW4sdGhpcy5fZG9jdW1lbnQ9byx0aGlzLl9oYXNBdHRhY2hlZD0hMSx0aGlzLnN0YXJ0QW5jaG9yTGlzdGVuZXI9KCk9PnRoaXMuZm9jdXNMYXN0VGFiYmFibGVFbGVtZW50KCksdGhpcy5lbmRBbmNob3JMaXN0ZW5lcj0oKT0+dGhpcy5mb2N1c0ZpcnN0VGFiYmFibGVFbGVtZW50KCksdGhpcy5fZW5hYmxlZD0hMCxpfHx0aGlzLmF0dGFjaEFuY2hvcnMoKX1nZXQgZW5hYmxlZCgpe3JldHVybiB0aGlzLl9lbmFibGVkfXNldCBlbmFibGVkKHQpe3RoaXMuX2VuYWJsZWQ9dCx0aGlzLl9zdGFydEFuY2hvciYmdGhpcy5fZW5kQW5jaG9yJiYodGhpcy5fdG9nZ2xlQW5jaG9yVGFiSW5kZXgodCx0aGlzLl9zdGFydEFuY2hvciksdGhpcy5fdG9nZ2xlQW5jaG9yVGFiSW5kZXgodCx0aGlzLl9lbmRBbmNob3IpKX1kZXN0cm95KCl7Y29uc3QgdD10aGlzLl9zdGFydEFuY2hvcixlPXRoaXMuX2VuZEFuY2hvcjt0JiYodC5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5zdGFydEFuY2hvckxpc3RlbmVyKSx0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSksZSYmKGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuZW5kQW5jaG9yTGlzdGVuZXIpLGUucGFyZW50Tm9kZSYmZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpKSx0aGlzLl9zdGFydEFuY2hvcj10aGlzLl9lbmRBbmNob3I9bnVsbCx0aGlzLl9oYXNBdHRhY2hlZD0hMX1hdHRhY2hBbmNob3JzKCl7cmV0dXJuISF0aGlzLl9oYXNBdHRhY2hlZHx8KHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9Pnt0aGlzLl9zdGFydEFuY2hvcnx8KHRoaXMuX3N0YXJ0QW5jaG9yPXRoaXMuX2NyZWF0ZUFuY2hvcigpLHRoaXMuX3N0YXJ0QW5jaG9yLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLnN0YXJ0QW5jaG9yTGlzdGVuZXIpKSx0aGlzLl9lbmRBbmNob3J8fCh0aGlzLl9lbmRBbmNob3I9dGhpcy5fY3JlYXRlQW5jaG9yKCksdGhpcy5fZW5kQW5jaG9yLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLmVuZEFuY2hvckxpc3RlbmVyKSl9KSksdGhpcy5fZWxlbWVudC5wYXJlbnROb2RlJiYodGhpcy5fZWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLl9zdGFydEFuY2hvcix0aGlzLl9lbGVtZW50KSx0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMuX2VuZEFuY2hvcix0aGlzLl9lbGVtZW50Lm5leHRTaWJsaW5nKSx0aGlzLl9oYXNBdHRhY2hlZD0hMCksdGhpcy5faGFzQXR0YWNoZWQpfWZvY3VzSW5pdGlhbEVsZW1lbnRXaGVuUmVhZHkodCl7cmV0dXJuIG5ldyBQcm9taXNlKChlPT57dGhpcy5fZXhlY3V0ZU9uU3RhYmxlKCgoKT0+ZSh0aGlzLmZvY3VzSW5pdGlhbEVsZW1lbnQodCkpKSl9KSl9Zm9jdXNGaXJzdFRhYmJhYmxlRWxlbWVudFdoZW5SZWFkeSh0KXtyZXR1cm4gbmV3IFByb21pc2UoKGU9Pnt0aGlzLl9leGVjdXRlT25TdGFibGUoKCgpPT5lKHRoaXMuZm9jdXNGaXJzdFRhYmJhYmxlRWxlbWVudCh0KSkpKX0pKX1mb2N1c0xhc3RUYWJiYWJsZUVsZW1lbnRXaGVuUmVhZHkodCl7cmV0dXJuIG5ldyBQcm9taXNlKChlPT57dGhpcy5fZXhlY3V0ZU9uU3RhYmxlKCgoKT0+ZSh0aGlzLmZvY3VzTGFzdFRhYmJhYmxlRWxlbWVudCh0KSkpKX0pKX1fZ2V0UmVnaW9uQm91bmRhcnkodCl7bGV0IGU9dGhpcy5fZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKGBbY2RrLWZvY3VzLXJlZ2lvbi0ke3R9XSwgW2Nka0ZvY3VzUmVnaW9uJHt0fV0sIFtjZGstZm9jdXMtJHt0fV1gKTtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyllW25dLmhhc0F0dHJpYnV0ZShgY2RrLWZvY3VzLSR7dH1gKT9jb25zb2xlLndhcm4oYEZvdW5kIHVzZSBvZiBkZXByZWNhdGVkIGF0dHJpYnV0ZSAnY2RrLWZvY3VzLSR7dH0nLCB1c2UgJ2Nka0ZvY3VzUmVnaW9uJHt0fScgaW5zdGVhZC4gVGhlIGRlcHJlY2F0ZWQgYXR0cmlidXRlIHdpbGwgYmUgcmVtb3ZlZCBpbiA4LjAuMC5gLGVbbl0pOmVbbl0uaGFzQXR0cmlidXRlKGBjZGstZm9jdXMtcmVnaW9uLSR7dH1gKSYmY29uc29sZS53YXJuKGBGb3VuZCB1c2Ugb2YgZGVwcmVjYXRlZCBhdHRyaWJ1dGUgJ2Nkay1mb2N1cy1yZWdpb24tJHt0fScsIHVzZSAnY2RrRm9jdXNSZWdpb24ke3R9JyBpbnN0ZWFkLiBUaGUgZGVwcmVjYXRlZCBhdHRyaWJ1dGUgd2lsbCBiZSByZW1vdmVkIGluIDguMC4wLmAsZVtuXSk7cmV0dXJuInN0YXJ0Ij09dD9lLmxlbmd0aD9lWzBdOnRoaXMuX2dldEZpcnN0VGFiYmFibGVFbGVtZW50KHRoaXMuX2VsZW1lbnQpOmUubGVuZ3RoP2VbZS5sZW5ndGgtMV06dGhpcy5fZ2V0TGFzdFRhYmJhYmxlRWxlbWVudCh0aGlzLl9lbGVtZW50KX1mb2N1c0luaXRpYWxFbGVtZW50KHQpe2NvbnN0IGU9dGhpcy5fZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJbY2RrLWZvY3VzLWluaXRpYWxdLCBbY2RrRm9jdXNJbml0aWFsXSIpO2lmKGUpe2lmKGUuaGFzQXR0cmlidXRlKCJjZGstZm9jdXMtaW5pdGlhbCIpJiZjb25zb2xlLndhcm4oIkZvdW5kIHVzZSBvZiBkZXByZWNhdGVkIGF0dHJpYnV0ZSAnY2RrLWZvY3VzLWluaXRpYWwnLCB1c2UgJ2Nka0ZvY3VzSW5pdGlhbCcgaW5zdGVhZC4gVGhlIGRlcHJlY2F0ZWQgYXR0cmlidXRlIHdpbGwgYmUgcmVtb3ZlZCBpbiA4LjAuMCIsZSksInVuZGVmaW5lZCIhPXR5cGVvZiBuZ0Rldk1vZGUmJiFuZ0Rldk1vZGV8fHRoaXMuX2NoZWNrZXIuaXNGb2N1c2FibGUoZSl8fGNvbnNvbGUud2FybigiRWxlbWVudCBtYXRjaGluZyAnW2Nka0ZvY3VzSW5pdGlhbF0nIGlzIG5vdCBmb2N1c2FibGUuIixlKSwhdGhpcy5fY2hlY2tlci5pc0ZvY3VzYWJsZShlKSl7Y29uc3Qgbj10aGlzLl9nZXRGaXJzdFRhYmJhYmxlRWxlbWVudChlKTtyZXR1cm4gbnVsbD09bnx8bi5mb2N1cyh0KSwhIW59cmV0dXJuIGUuZm9jdXModCksITB9cmV0dXJuIHRoaXMuZm9jdXNGaXJzdFRhYmJhYmxlRWxlbWVudCh0KX1mb2N1c0ZpcnN0VGFiYmFibGVFbGVtZW50KHQpe2NvbnN0IGU9dGhpcy5fZ2V0UmVnaW9uQm91bmRhcnkoInN0YXJ0Iik7cmV0dXJuIGUmJmUuZm9jdXModCksISFlfWZvY3VzTGFzdFRhYmJhYmxlRWxlbWVudCh0KXtjb25zdCBlPXRoaXMuX2dldFJlZ2lvbkJvdW5kYXJ5KCJlbmQiKTtyZXR1cm4gZSYmZS5mb2N1cyh0KSwhIWV9aGFzQXR0YWNoZWQoKXtyZXR1cm4gdGhpcy5faGFzQXR0YWNoZWR9X2dldEZpcnN0VGFiYmFibGVFbGVtZW50KHQpe2lmKHRoaXMuX2NoZWNrZXIuaXNGb2N1c2FibGUodCkmJnRoaXMuX2NoZWNrZXIuaXNUYWJiYWJsZSh0KSlyZXR1cm4gdDtsZXQgZT10LmNoaWxkcmVufHx0LmNoaWxkTm9kZXM7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2xldCBuPWVbdF0ubm9kZVR5cGU9PT10aGlzLl9kb2N1bWVudC5FTEVNRU5UX05PREU/dGhpcy5fZ2V0Rmlyc3RUYWJiYWJsZUVsZW1lbnQoZVt0XSk6bnVsbDtpZihuKXJldHVybiBufXJldHVybiBudWxsfV9nZXRMYXN0VGFiYmFibGVFbGVtZW50KHQpe2lmKHRoaXMuX2NoZWNrZXIuaXNGb2N1c2FibGUodCkmJnRoaXMuX2NoZWNrZXIuaXNUYWJiYWJsZSh0KSlyZXR1cm4gdDtsZXQgZT10LmNoaWxkcmVufHx0LmNoaWxkTm9kZXM7Zm9yKGxldCB0PWUubGVuZ3RoLTE7dD49MDt0LS0pe2xldCBuPWVbdF0ubm9kZVR5cGU9PT10aGlzLl9kb2N1bWVudC5FTEVNRU5UX05PREU/dGhpcy5fZ2V0TGFzdFRhYmJhYmxlRWxlbWVudChlW3RdKTpudWxsO2lmKG4pcmV0dXJuIG59cmV0dXJuIG51bGx9X2NyZWF0ZUFuY2hvcigpe2NvbnN0IHQ9dGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHRoaXMuX3RvZ2dsZUFuY2hvclRhYkluZGV4KHRoaXMuX2VuYWJsZWQsdCksdC5jbGFzc0xpc3QuYWRkKCJjZGstdmlzdWFsbHktaGlkZGVuIiksdC5jbGFzc0xpc3QuYWRkKCJjZGstZm9jdXMtdHJhcC1hbmNob3IiKSx0LnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIiksdH1fdG9nZ2xlQW5jaG9yVGFiSW5kZXgodCxlKXt0P2Uuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKTplLnJlbW92ZUF0dHJpYnV0ZSgidGFiaW5kZXgiKX10b2dnbGVBbmNob3JzKHQpe3RoaXMuX3N0YXJ0QW5jaG9yJiZ0aGlzLl9lbmRBbmNob3ImJih0aGlzLl90b2dnbGVBbmNob3JUYWJJbmRleCh0LHRoaXMuX3N0YXJ0QW5jaG9yKSx0aGlzLl90b2dnbGVBbmNob3JUYWJJbmRleCh0LHRoaXMuX2VuZEFuY2hvcikpfV9leGVjdXRlT25TdGFibGUodCl7dGhpcy5fbmdab25lLmlzU3RhYmxlP3QoKTp0aGlzLl9uZ1pvbmUub25TdGFibGUucGlwZSh2ZSgxKSkuc3Vic2NyaWJlKHQpfX1jbGFzcyBXSHtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5fY2hlY2tlcj10LHRoaXMuX25nWm9uZT1lLHRoaXMuX2RvY3VtZW50PW59Y3JlYXRlKHQsZT0hMSl7cmV0dXJuIG5ldyBVSCh0LHRoaXMuX2NoZWNrZXIsdGhpcy5fbmdab25lLHRoaXMuX2RvY3VtZW50LGUpfX1XSC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8V0gpKFRyKEJIKSxUcihtQyksVHIoc00pKX0sV0guybVwcm92PVNuKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IFdIKFRyKEJIKSxUcihtQyksVHIoc00pKX0sdG9rZW46V0gscHJvdmlkZWRJbjoicm9vdCJ9KSxXSC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkJIfSx7dHlwZTptQ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihXSCxbe3R5cGU6VW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6Qkh9LHt0eXBlOm1DfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19XX0pLG51bGwpO2NsYXNzIEdIe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl9lbGVtZW50UmVmPXQsdGhpcy5fZm9jdXNUcmFwRmFjdG9yeT1lLHRoaXMuX3ByZXZpb3VzbHlGb2N1c2VkRWxlbWVudD1udWxsLHRoaXMuZm9jdXNUcmFwPXRoaXMuX2ZvY3VzVHJhcEZhY3RvcnkuY3JlYXRlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwhMCl9Z2V0IGVuYWJsZWQoKXtyZXR1cm4gdGhpcy5mb2N1c1RyYXAuZW5hYmxlZH1zZXQgZW5hYmxlZCh0KXt0aGlzLmZvY3VzVHJhcC5lbmFibGVkPWVIKHQpfWdldCBhdXRvQ2FwdHVyZSgpe3JldHVybiB0aGlzLl9hdXRvQ2FwdHVyZX1zZXQgYXV0b0NhcHR1cmUodCl7dGhpcy5fYXV0b0NhcHR1cmU9ZUgodCl9bmdPbkRlc3Ryb3koKXt0aGlzLmZvY3VzVHJhcC5kZXN0cm95KCksdGhpcy5fcHJldmlvdXNseUZvY3VzZWRFbGVtZW50JiYodGhpcy5fcHJldmlvdXNseUZvY3VzZWRFbGVtZW50LmZvY3VzKCksdGhpcy5fcHJldmlvdXNseUZvY3VzZWRFbGVtZW50PW51bGwpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuZm9jdXNUcmFwLmF0dGFjaEFuY2hvcnMoKSx0aGlzLmF1dG9DYXB0dXJlJiZ0aGlzLl9jYXB0dXJlRm9jdXMoKX1uZ0RvQ2hlY2soKXt0aGlzLmZvY3VzVHJhcC5oYXNBdHRhY2hlZCgpfHx0aGlzLmZvY3VzVHJhcC5hdHRhY2hBbmNob3JzKCl9bmdPbkNoYW5nZXModCl7Y29uc3QgZT10LmF1dG9DYXB0dXJlO2UmJiFlLmZpcnN0Q2hhbmdlJiZ0aGlzLmF1dG9DYXB0dXJlJiZ0aGlzLmZvY3VzVHJhcC5oYXNBdHRhY2hlZCgpJiZ0aGlzLl9jYXB0dXJlRm9jdXMoKX1fY2FwdHVyZUZvY3VzKCl7dGhpcy5fcHJldmlvdXNseUZvY3VzZWRFbGVtZW50PU1IKCksdGhpcy5mb2N1c1RyYXAuZm9jdXNJbml0aWFsRWxlbWVudFdoZW5SZWFkeSgpfX1HSC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8R0gpKGdmKEtoKSxnZihXSCksZ2Yoc00pKX0sR0guybVkaXI9aG8oe3R5cGU6R0gsc2VsZWN0b3JzOltbIiIsImNka1RyYXBGb2N1cyIsIiJdXSxpbnB1dHM6e2VuYWJsZWQ6WyJjZGtUcmFwRm9jdXMiLCJlbmFibGVkIl0sYXV0b0NhcHR1cmU6WyJjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZSIsImF1dG9DYXB0dXJlIl19LGV4cG9ydEFzOlsiY2RrVHJhcEZvY3VzIl0sZmVhdHVyZXM6W3FvXX0pLEdILmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6S2h9LHt0eXBlOldIfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19XSxHSC5wcm9wRGVjb3JhdG9ycz17ZW5hYmxlZDpbe3R5cGU6Ul8sYXJnczpbImNka1RyYXBGb2N1cyJdfV0sYXV0b0NhcHR1cmU6W3t0eXBlOlJfLGFyZ3M6WyJjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZSJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoR0gsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW2Nka1RyYXBGb2N1c10iLGV4cG9ydEFzOiJjZGtUcmFwRm9jdXMifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6S2h9LHt0eXBlOldIfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19XX0pLHtlbmFibGVkOlt7dHlwZTpSXyxhcmdzOlsiY2RrVHJhcEZvY3VzIl19XSxhdXRvQ2FwdHVyZTpbe3R5cGU6Ul8sYXJnczpbImNka1RyYXBGb2N1c0F1dG9DYXB0dXJlIl19XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgWUggZXh0ZW5kcyBVSHtjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyKXtzdXBlcih0LGUsbixvLHIuZGVmZXIpLHRoaXMuX2ZvY3VzVHJhcE1hbmFnZXI9aSx0aGlzLl9pbmVydFN0cmF0ZWd5PWEsdGhpcy5fZm9jdXNUcmFwTWFuYWdlci5yZWdpc3Rlcih0aGlzKX1nZXQgZW5hYmxlZCgpe3JldHVybiB0aGlzLl9lbmFibGVkfXNldCBlbmFibGVkKHQpe3RoaXMuX2VuYWJsZWQ9dCx0aGlzLl9lbmFibGVkP3RoaXMuX2ZvY3VzVHJhcE1hbmFnZXIucmVnaXN0ZXIodGhpcyk6dGhpcy5fZm9jdXNUcmFwTWFuYWdlci5kZXJlZ2lzdGVyKHRoaXMpfWRlc3Ryb3koKXt0aGlzLl9mb2N1c1RyYXBNYW5hZ2VyLmRlcmVnaXN0ZXIodGhpcyksc3VwZXIuZGVzdHJveSgpfV9lbmFibGUoKXt0aGlzLl9pbmVydFN0cmF0ZWd5LnByZXZlbnRGb2N1cyh0aGlzKSx0aGlzLnRvZ2dsZUFuY2hvcnMoITApfV9kaXNhYmxlKCl7dGhpcy5faW5lcnRTdHJhdGVneS5hbGxvd0ZvY3VzKHRoaXMpLHRoaXMudG9nZ2xlQW5jaG9ycyghMSl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgcUg9bmV3IGVyKCJGT0NVU19UUkFQX0lORVJUX1NUUkFURUdZIik7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIFpIKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgTm9kZSkpcmV0dXJuIG51bGw7bGV0IG49dDtmb3IoO251bGwhPW4mJiEobiBpbnN0YW5jZW9mIEVsZW1lbnQpOyluPW4ucGFyZW50Tm9kZTtyZXR1cm4gbiYmKFhIP24uY2xvc2VzdChlKTooZnVuY3Rpb24gbyh0LGUpe2xldCBuPXQ7Zm9yKDtudWxsIT1uJiYhKG4gaW5zdGFuY2VvZiBFbGVtZW50JiZLSChuLGUpKTspbj1uLnBhcmVudE5vZGU7cmV0dXJuIG58fG51bGx9KShuLGUpKX1jb25zdCBYSD0idW5kZWZpbmVkIiE9dHlwZW9mIEVsZW1lbnQmJiEhRWxlbWVudC5wcm90b3R5cGUuY2xvc2VzdDtmdW5jdGlvbiBLSCh0LGUpe3JldHVybiB0Lm1hdGNoZXM/dC5tYXRjaGVzKGUpOnQubXNNYXRjaGVzU2VsZWN0b3IoZSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIEpIe2NvbnN0cnVjdG9yKCl7dGhpcy5fbGlzdGVuZXI9bnVsbH1wcmV2ZW50Rm9jdXModCl7dGhpcy5fbGlzdGVuZXImJnQuX2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLl9saXN0ZW5lciwhMCksdGhpcy5fbGlzdGVuZXI9ZT0+dGhpcy5fdHJhcEZvY3VzKHQsZSksdC5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e3QuX2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLl9saXN0ZW5lciwhMCl9KSl9YWxsb3dGb2N1cyh0KXt0aGlzLl9saXN0ZW5lciYmKHQuX2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLl9saXN0ZW5lciwhMCksdGhpcy5fbGlzdGVuZXI9bnVsbCl9X3RyYXBGb2N1cyh0LGUpe2NvbnN0IG49ZS50YXJnZXQsbz10Ll9lbGVtZW50O28uY29udGFpbnMobil8fG51bGwhPT1aSChuLCJkaXYuY2RrLW92ZXJsYXktcGFuZSIpfHxzZXRUaW1lb3V0KCgoKT0+e3QuZW5hYmxlZCYmIW8uY29udGFpbnModC5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkmJnQuZm9jdXNGaXJzdFRhYmJhYmxlRWxlbWVudCgpfSkpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgUUh7Y29uc3RydWN0b3IoKXt0aGlzLl9mb2N1c1RyYXBTdGFjaz1bXX1yZWdpc3Rlcih0KXt0aGlzLl9mb2N1c1RyYXBTdGFjaz10aGlzLl9mb2N1c1RyYXBTdGFjay5maWx0ZXIoKGU9PmUhPT10KSk7bGV0IGU9dGhpcy5fZm9jdXNUcmFwU3RhY2s7ZS5sZW5ndGgmJmVbZS5sZW5ndGgtMV0uX2Rpc2FibGUoKSxlLnB1c2godCksdC5fZW5hYmxlKCl9ZGVyZWdpc3Rlcih0KXt0Ll9kaXNhYmxlKCk7Y29uc3QgZT10aGlzLl9mb2N1c1RyYXBTdGFjayxuPWUuaW5kZXhPZih0KTstMSE9PW4mJihlLnNwbGljZShuLDEpLGUubGVuZ3RoJiZlW2UubGVuZ3RoLTFdLl9lbmFibGUoKSl9fVFILsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxRSCl9LFFILsm1cHJvdj1Tbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBRSH0sdG9rZW46UUgscHJvdmlkZWRJbjoicm9vdCJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFFILFt7dHlwZTpVbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVybltdfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyAkSHtjb25zdHJ1Y3Rvcih0LGUsbixvLGkpe3RoaXMuX2NoZWNrZXI9dCx0aGlzLl9uZ1pvbmU9ZSx0aGlzLl9mb2N1c1RyYXBNYW5hZ2VyPW4sdGhpcy5fZG9jdW1lbnQ9byx0aGlzLl9pbmVydFN0cmF0ZWd5PWl8fG5ldyBKSH1jcmVhdGUodCxlPXtkZWZlcjohMX0pe2xldCBuO3JldHVybiBuPSJib29sZWFuIj09dHlwZW9mIGU/e2RlZmVyOmV9OmUsbmV3IFlIKHQsdGhpcy5fY2hlY2tlcix0aGlzLl9uZ1pvbmUsdGhpcy5fZG9jdW1lbnQsdGhpcy5fZm9jdXNUcmFwTWFuYWdlcix0aGlzLl9pbmVydFN0cmF0ZWd5LG4pfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIHRGKHQpe3JldHVybiAwPT09dC5vZmZzZXRYJiYwPT09dC5vZmZzZXRZfWZ1bmN0aW9uIGVGKHQpe2NvbnN0IGU9dC50b3VjaGVzJiZ0LnRvdWNoZXNbMF18fHQuY2hhbmdlZFRvdWNoZXMmJnQuY2hhbmdlZFRvdWNoZXNbMF07cmV0dXJuISghZXx8LTEhPT1lLmlkZW50aWZpZXJ8fG51bGwhPWUucmFkaXVzWCYmMSE9PWUucmFkaXVzWHx8bnVsbCE9ZS5yYWRpdXNZJiYxIT09ZS5yYWRpdXNZKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovJEguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fCRIKShUcihCSCksVHIobUMpLFRyKFFIKSxUcihzTSksVHIocUgsOCkpfSwkSC7JtXByb3Y9U24oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgJEgoVHIoQkgpLFRyKG1DKSxUcihRSCksVHIoc00pLFRyKHFILDgpKX0sdG9rZW46JEgscHJvdmlkZWRJbjoicm9vdCJ9KSwkSC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkJIfSx7dHlwZTptQ30se3R5cGU6UUh9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltxSF19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoJEgsW3t0eXBlOlVtLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkJIfSx7dHlwZTptQ30se3R5cGU6UUh9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltxSF19XX1dfSksbnVsbCk7Y29uc3QgbkY9bmV3IGVyKCJjZGstaW5wdXQtbW9kYWxpdHktZGV0ZWN0b3Itb3B0aW9ucyIpLG9GPXtpZ25vcmVLZXlzOlsxOCwxNywyMjQsOTEsMTZdfSxpRj1iSCh7cGFzc2l2ZTohMCxjYXB0dXJlOiEwfSk7Y2xhc3MgYUZ7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5fcGxhdGZvcm09dCx0aGlzLl9tb3N0UmVjZW50VGFyZ2V0PW51bGwsdGhpcy5fbW9kYWxpdHk9bmV3IGoobnVsbCksdGhpcy5fbGFzdFRvdWNoTXM9MCx0aGlzLl9vbktleWRvd249dD0+e3ZhciBlLG47KG51bGw9PT0obj1udWxsPT09KGU9dGhpcy5fb3B0aW9ucyl8fHZvaWQgMD09PWU/dm9pZCAwOmUuaWdub3JlS2V5cyl8fHZvaWQgMD09PW4/dm9pZCAwOm4uc29tZSgoZT0+ZT09PXQua2V5Q29kZSkpKXx8KHRoaXMuX21vZGFsaXR5Lm5leHQoImtleWJvYXJkIiksdGhpcy5fbW9zdFJlY2VudFRhcmdldD12SCh0KSl9LHRoaXMuX29uTW91c2Vkb3duPXQ9PntEYXRlLm5vdygpLXRoaXMuX2xhc3RUb3VjaE1zPDY1MHx8KHRoaXMuX21vZGFsaXR5Lm5leHQodEYodCk/ImtleWJvYXJkIjoibW91c2UiKSx0aGlzLl9tb3N0UmVjZW50VGFyZ2V0PXZIKHQpKX0sdGhpcy5fb25Ub3VjaHN0YXJ0PXQ9PntlRih0KT90aGlzLl9tb2RhbGl0eS5uZXh0KCJrZXlib2FyZCIpOih0aGlzLl9sYXN0VG91Y2hNcz1EYXRlLm5vdygpLHRoaXMuX21vZGFsaXR5Lm5leHQoInRvdWNoIiksdGhpcy5fbW9zdFJlY2VudFRhcmdldD12SCh0KSl9LHRoaXMuX29wdGlvbnM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG9GKSxvKSx0aGlzLm1vZGFsaXR5RGV0ZWN0ZWQ9dGhpcy5fbW9kYWxpdHkucGlwZShMZSgxKSksdGhpcy5tb2RhbGl0eUNoYW5nZWQ9dGhpcy5tb2RhbGl0eURldGVjdGVkLnBpcGUod2UoKSksdC5pc0Jyb3dzZXImJmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57bi5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9vbktleWRvd24saUYpLG4uYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLl9vbk1vdXNlZG93bixpRiksbi5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLl9vblRvdWNoc3RhcnQsaUYpfSkpfWdldCBtb3N0UmVjZW50TW9kYWxpdHkoKXtyZXR1cm4gdGhpcy5fbW9kYWxpdHkudmFsdWV9bmdPbkRlc3Ryb3koKXt0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9vbktleWRvd24saUYpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5fb25Nb3VzZWRvd24saUYpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuX29uVG91Y2hzdGFydCxpRikpfX1hRi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8YUYpKFRyKGNIKSxUcihtQyksVHIoc00pLFRyKG5GLDgpKX0sYUYuybVwcm92PVNuKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IGFGKFRyKGNIKSxUcihtQyksVHIoc00pLFRyKG5GLDgpKX0sdG9rZW46YUYscHJvdmlkZWRJbjoicm9vdCJ9KSxhRi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmNIfSx7dHlwZTptQ30se3R5cGU6RG9jdW1lbnQsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbbkZdfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGFGLFt7dHlwZTpVbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpjSH0se3R5cGU6bUN9LHt0eXBlOkRvY3VtZW50LGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W25GXX1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IHJGPW5ldyBlcigibGl2ZUFubm91bmNlckVsZW1lbnQiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OmZ1bmN0aW9uIHNGKCl7cmV0dXJuIG51bGx9fSk7Y29uc3QgbEY9bmV3IGVyKCJMSVZFX0FOTk9VTkNFUl9ERUZBVUxUX09QVElPTlMiKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgY0Z7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5fbmdab25lPWUsdGhpcy5fZGVmYXVsdE9wdGlvbnM9byx0aGlzLl9kb2N1bWVudD1uLHRoaXMuX2xpdmVFbGVtZW50PXR8fHRoaXMuX2NyZWF0ZUxpdmVFbGVtZW50KCl9YW5ub3VuY2UodCwuLi5lKXtjb25zdCBuPXRoaXMuX2RlZmF1bHRPcHRpb25zO2xldCBvLGk7cmV0dXJuIDE9PT1lLmxlbmd0aCYmIm51bWJlciI9PXR5cGVvZiBlWzBdP2k9ZVswXTpbbyxpXT1lLHRoaXMuY2xlYXIoKSxjbGVhclRpbWVvdXQodGhpcy5fcHJldmlvdXNUaW1lb3V0KSxvfHwobz1uJiZuLnBvbGl0ZW5lc3M/bi5wb2xpdGVuZXNzOiJwb2xpdGUiKSxudWxsPT1pJiZuJiYoaT1uLmR1cmF0aW9uKSx0aGlzLl9saXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFyaWEtbGl2ZSIsbyksdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+bmV3IFByb21pc2UoKGU9PntjbGVhclRpbWVvdXQodGhpcy5fcHJldmlvdXNUaW1lb3V0KSx0aGlzLl9wcmV2aW91c1RpbWVvdXQ9c2V0VGltZW91dCgoKCk9Pnt0aGlzLl9saXZlRWxlbWVudC50ZXh0Q29udGVudD10LGUoKSwibnVtYmVyIj09dHlwZW9mIGkmJih0aGlzLl9wcmV2aW91c1RpbWVvdXQ9c2V0VGltZW91dCgoKCk9PnRoaXMuY2xlYXIoKSksaSkpfSksMTAwKX0pKSkpfWNsZWFyKCl7dGhpcy5fbGl2ZUVsZW1lbnQmJih0aGlzLl9saXZlRWxlbWVudC50ZXh0Q29udGVudD0iIil9bmdPbkRlc3Ryb3koKXtjbGVhclRpbWVvdXQodGhpcy5fcHJldmlvdXNUaW1lb3V0KSx0aGlzLl9saXZlRWxlbWVudCYmdGhpcy5fbGl2ZUVsZW1lbnQucGFyZW50Tm9kZSYmKHRoaXMuX2xpdmVFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5fbGl2ZUVsZW1lbnQpLHRoaXMuX2xpdmVFbGVtZW50PW51bGwpfV9jcmVhdGVMaXZlRWxlbWVudCgpe2NvbnN0IHQ9ImNkay1saXZlLWFubm91bmNlci1lbGVtZW50IixlPXRoaXMuX2RvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUodCksbj10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyllW3RdLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZVt0XSk7cmV0dXJuIG4uY2xhc3NMaXN0LmFkZCh0KSxuLmNsYXNzTGlzdC5hZGQoImNkay12aXN1YWxseS1oaWRkZW4iKSxuLnNldEF0dHJpYnV0ZSgiYXJpYS1hdG9taWMiLCJ0cnVlIiksbi5zZXRBdHRyaWJ1dGUoImFyaWEtbGl2ZSIsInBvbGl0ZSIpLHRoaXMuX2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobiksbn19Y0YuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGNGKShUcihyRiw4KSxUcihtQyksVHIoc00pLFRyKGxGLDgpKX0sY0YuybVwcm92PVNuKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IGNGKFRyKHJGLDgpLFRyKG1DKSxUcihzTSksVHIobEYsOCkpfSx0b2tlbjpjRixwcm92aWRlZEluOiJyb290In0pLGNGLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltyRl19XX0se3R5cGU6bUN9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltsRl19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoY0YsW3t0eXBlOlVtLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbckZdfV19LHt0eXBlOm1DfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbbEZdfV19XX0pLG51bGwpO2NsYXNzIGRGe2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMuX2VsZW1lbnRSZWY9dCx0aGlzLl9saXZlQW5ub3VuY2VyPWUsdGhpcy5fY29udGVudE9ic2VydmVyPW4sdGhpcy5fbmdab25lPW8sdGhpcy5fcG9saXRlbmVzcz0icG9saXRlIn1nZXQgcG9saXRlbmVzcygpe3JldHVybiB0aGlzLl9wb2xpdGVuZXNzfXNldCBwb2xpdGVuZXNzKHQpe3RoaXMuX3BvbGl0ZW5lc3M9Im9mZiI9PT10fHwiYXNzZXJ0aXZlIj09PXQ/dDoicG9saXRlIiwib2ZmIj09PXRoaXMuX3BvbGl0ZW5lc3M/dGhpcy5fc3Vic2NyaXB0aW9uJiYodGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fc3Vic2NyaXB0aW9uPW51bGwpOnRoaXMuX3N1YnNjcmlwdGlvbnx8KHRoaXMuX3N1YnNjcmlwdGlvbj10aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT50aGlzLl9jb250ZW50T2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9lbGVtZW50UmVmKS5zdWJzY3JpYmUoKCgpPT57Y29uc3QgdD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQ7dCE9PXRoaXMuX3ByZXZpb3VzQW5ub3VuY2VkVGV4dCYmKHRoaXMuX2xpdmVBbm5vdW5jZXIuYW5ub3VuY2UodCx0aGlzLl9wb2xpdGVuZXNzKSx0aGlzLl9wcmV2aW91c0Fubm91bmNlZFRleHQ9dCl9KSkpKSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9zdWJzY3JpcHRpb24mJnRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfX1kRi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ZEYpKGdmKEtoKSxnZihjRiksZ2YoT0gpLGdmKG1DKSl9LGRGLsm1ZGlyPWhvKHt0eXBlOmRGLHNlbGVjdG9yczpbWyIiLCJjZGtBcmlhTGl2ZSIsIiJdXSxpbnB1dHM6e3BvbGl0ZW5lc3M6WyJjZGtBcmlhTGl2ZSIsInBvbGl0ZW5lc3MiXX0sZXhwb3J0QXM6WyJjZGtBcmlhTGl2ZSJdfSksZEYuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpLaH0se3R5cGU6Y0Z9LHt0eXBlOk9IfSx7dHlwZTptQ31dLGRGLnByb3BEZWNvcmF0b3JzPXtwb2xpdGVuZXNzOlt7dHlwZTpSXyxhcmdzOlsiY2RrQXJpYUxpdmUiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGRGLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IltjZGtBcmlhTGl2ZV0iLGV4cG9ydEFzOiJjZGtBcmlhTGl2ZSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpLaH0se3R5cGU6Y0Z9LHt0eXBlOk9IfSx7dHlwZTptQ31dfSkse3BvbGl0ZW5lc3M6W3t0eXBlOlJfLGFyZ3M6WyJjZGtBcmlhTGl2ZSJdfV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IHBGPW5ldyBlcigiY2RrLWZvY3VzLW1vbml0b3ItZGVmYXVsdC1vcHRpb25zIiksbUY9Ykgoe3Bhc3NpdmU6ITAsY2FwdHVyZTohMH0pO2NsYXNzIGZGe2NvbnN0cnVjdG9yKHQsZSxuLG8saSl7dGhpcy5fbmdab25lPXQsdGhpcy5fcGxhdGZvcm09ZSx0aGlzLl9pbnB1dE1vZGFsaXR5RGV0ZWN0b3I9bix0aGlzLl9vcmlnaW49bnVsbCx0aGlzLl93aW5kb3dGb2N1c2VkPSExLHRoaXMuX29yaWdpbkZyb21Ub3VjaEludGVyYWN0aW9uPSExLHRoaXMuX2VsZW1lbnRJbmZvPW5ldyBNYXAsdGhpcy5fbW9uaXRvcmVkRWxlbWVudENvdW50PTAsdGhpcy5fcm9vdE5vZGVGb2N1c0xpc3RlbmVyQ291bnQ9bmV3IE1hcCx0aGlzLl93aW5kb3dGb2N1c0xpc3RlbmVyPSgpPT57dGhpcy5fd2luZG93Rm9jdXNlZD0hMCx0aGlzLl93aW5kb3dGb2N1c1RpbWVvdXRJZD1zZXRUaW1lb3V0KCgoKT0+dGhpcy5fd2luZG93Rm9jdXNlZD0hMSkpfSx0aGlzLl9zdG9wSW5wdXRNb2RhbGl0eURldGVjdG9yPW5ldyBCLHRoaXMuX3Jvb3ROb2RlRm9jdXNBbmRCbHVyTGlzdGVuZXI9dD0+e2NvbnN0IGU9dkgodCksbj0iZm9jdXMiPT09dC50eXBlP3RoaXMuX29uRm9jdXM6dGhpcy5fb25CbHVyO2ZvcihsZXQgbz1lO287bz1vLnBhcmVudEVsZW1lbnQpbi5jYWxsKHRoaXMsdCxvKX0sdGhpcy5fZG9jdW1lbnQ9byx0aGlzLl9kZXRlY3Rpb25Nb2RlPShudWxsPT1pP3ZvaWQgMDppLmRldGVjdGlvbk1vZGUpfHwwfW1vbml0b3IodCxlPSExKXtjb25zdCBuPXJIKHQpO2lmKCF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXJ8fDEhPT1uLm5vZGVUeXBlKXJldHVybiB6dChudWxsKTtjb25zdCBvPUNIKG4pfHx0aGlzLl9nZXREb2N1bWVudCgpLGk9dGhpcy5fZWxlbWVudEluZm8uZ2V0KG4pO2lmKGkpcmV0dXJuIGUmJihpLmNoZWNrQ2hpbGRyZW49ITApLGkuc3ViamVjdDtjb25zdCBhPXtjaGVja0NoaWxkcmVuOmUsc3ViamVjdDpuZXcgQixyb290Tm9kZTpvfTtyZXR1cm4gdGhpcy5fZWxlbWVudEluZm8uc2V0KG4sYSksdGhpcy5fcmVnaXN0ZXJHbG9iYWxMaXN0ZW5lcnMoYSksYS5zdWJqZWN0fXN0b3BNb25pdG9yaW5nKHQpe2NvbnN0IGU9ckgodCksbj10aGlzLl9lbGVtZW50SW5mby5nZXQoZSk7biYmKG4uc3ViamVjdC5jb21wbGV0ZSgpLHRoaXMuX3NldENsYXNzZXMoZSksdGhpcy5fZWxlbWVudEluZm8uZGVsZXRlKGUpLHRoaXMuX3JlbW92ZUdsb2JhbExpc3RlbmVycyhuKSl9Zm9jdXNWaWEodCxlLG4pe2NvbnN0IG89ckgodCk7bz09PXRoaXMuX2dldERvY3VtZW50KCkuYWN0aXZlRWxlbWVudD90aGlzLl9nZXRDbG9zZXN0RWxlbWVudHNJbmZvKG8pLmZvckVhY2goKChbdCxuXSk9PnRoaXMuX29yaWdpbkNoYW5nZWQodCxlLG4pKSk6KHRoaXMuX3NldE9yaWdpbihlKSwiZnVuY3Rpb24iPT10eXBlb2Ygby5mb2N1cyYmby5mb2N1cyhuKSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9lbGVtZW50SW5mby5mb3JFYWNoKCgodCxlKT0+dGhpcy5zdG9wTW9uaXRvcmluZyhlKSkpfV9nZXREb2N1bWVudCgpe3JldHVybiB0aGlzLl9kb2N1bWVudHx8ZG9jdW1lbnR9X2dldFdpbmRvdygpe3JldHVybiB0aGlzLl9nZXREb2N1bWVudCgpLmRlZmF1bHRWaWV3fHx3aW5kb3d9X3RvZ2dsZUNsYXNzKHQsZSxuKXtuP3QuY2xhc3NMaXN0LmFkZChlKTp0LmNsYXNzTGlzdC5yZW1vdmUoZSl9X2dldEZvY3VzT3JpZ2luKHQpe3JldHVybiB0aGlzLl9vcmlnaW4/dGhpcy5fb3JpZ2luRnJvbVRvdWNoSW50ZXJhY3Rpb24/dGhpcy5fc2hvdWxkQmVBdHRyaWJ1dGVkVG9Ub3VjaCh0KT8idG91Y2giOiJwcm9ncmFtIjp0aGlzLl9vcmlnaW46dGhpcy5fd2luZG93Rm9jdXNlZCYmdGhpcy5fbGFzdEZvY3VzT3JpZ2luP3RoaXMuX2xhc3RGb2N1c09yaWdpbjoicHJvZ3JhbSJ9X3Nob3VsZEJlQXR0cmlidXRlZFRvVG91Y2godCl7cmV0dXJuIDE9PT10aGlzLl9kZXRlY3Rpb25Nb2RlfHwhIShudWxsPT10P3ZvaWQgMDp0LmNvbnRhaW5zKHRoaXMuX2lucHV0TW9kYWxpdHlEZXRlY3Rvci5fbW9zdFJlY2VudFRhcmdldCkpfV9zZXRDbGFzc2VzKHQsZSl7dGhpcy5fdG9nZ2xlQ2xhc3ModCwiY2RrLWZvY3VzZWQiLCEhZSksdGhpcy5fdG9nZ2xlQ2xhc3ModCwiY2RrLXRvdWNoLWZvY3VzZWQiLCJ0b3VjaCI9PT1lKSx0aGlzLl90b2dnbGVDbGFzcyh0LCJjZGsta2V5Ym9hcmQtZm9jdXNlZCIsImtleWJvYXJkIj09PWUpLHRoaXMuX3RvZ2dsZUNsYXNzKHQsImNkay1tb3VzZS1mb2N1c2VkIiwibW91c2UiPT09ZSksdGhpcy5fdG9nZ2xlQ2xhc3ModCwiY2RrLXByb2dyYW0tZm9jdXNlZCIsInByb2dyYW0iPT09ZSl9X3NldE9yaWdpbih0LGU9ITEpe3RoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PntpZih0aGlzLl9vcmlnaW49dCx0aGlzLl9vcmlnaW5Gcm9tVG91Y2hJbnRlcmFjdGlvbj0idG91Y2giPT09dCYmZSwwPT09dGhpcy5fZGV0ZWN0aW9uTW9kZSl7Y2xlYXJUaW1lb3V0KHRoaXMuX29yaWdpblRpbWVvdXRJZCk7dGhpcy5fb3JpZ2luVGltZW91dElkPXNldFRpbWVvdXQoKCgpPT50aGlzLl9vcmlnaW49bnVsbCksdGhpcy5fb3JpZ2luRnJvbVRvdWNoSW50ZXJhY3Rpb24/NjUwOjEpfX0pKX1fb25Gb2N1cyh0LGUpe2NvbnN0IG49dGhpcy5fZWxlbWVudEluZm8uZ2V0KGUpLG89dkgodCk7biYmKG4uY2hlY2tDaGlsZHJlbnx8ZT09PW8pJiZ0aGlzLl9vcmlnaW5DaGFuZ2VkKGUsdGhpcy5fZ2V0Rm9jdXNPcmlnaW4obyksbil9X29uQmx1cih0LGUpe2NvbnN0IG49dGhpcy5fZWxlbWVudEluZm8uZ2V0KGUpOyFufHxuLmNoZWNrQ2hpbGRyZW4mJnQucmVsYXRlZFRhcmdldCBpbnN0YW5jZW9mIE5vZGUmJmUuY29udGFpbnModC5yZWxhdGVkVGFyZ2V0KXx8KHRoaXMuX3NldENsYXNzZXMoZSksdGhpcy5fZW1pdE9yaWdpbihuLnN1YmplY3QsbnVsbCkpfV9lbWl0T3JpZ2luKHQsZSl7dGhpcy5fbmdab25lLnJ1bigoKCk9PnQubmV4dChlKSkpfV9yZWdpc3Rlckdsb2JhbExpc3RlbmVycyh0KXtpZighdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyKXJldHVybjtjb25zdCBlPXQucm9vdE5vZGUsbj10aGlzLl9yb290Tm9kZUZvY3VzTGlzdGVuZXJDb3VudC5nZXQoZSl8fDA7bnx8dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e2UuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuX3Jvb3ROb2RlRm9jdXNBbmRCbHVyTGlzdGVuZXIsbUYpLGUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcy5fcm9vdE5vZGVGb2N1c0FuZEJsdXJMaXN0ZW5lcixtRil9KSksdGhpcy5fcm9vdE5vZGVGb2N1c0xpc3RlbmVyQ291bnQuc2V0KGUsbisxKSwxPT0rK3RoaXMuX21vbml0b3JlZEVsZW1lbnRDb3VudCYmKHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9Pnt0aGlzLl9nZXRXaW5kb3coKS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5fd2luZG93Rm9jdXNMaXN0ZW5lcil9KSksdGhpcy5faW5wdXRNb2RhbGl0eURldGVjdG9yLm1vZGFsaXR5RGV0ZWN0ZWQucGlwZShqZSh0aGlzLl9zdG9wSW5wdXRNb2RhbGl0eURldGVjdG9yKSkuc3Vic2NyaWJlKCh0PT57dGhpcy5fc2V0T3JpZ2luKHQsITApfSkpKX1fcmVtb3ZlR2xvYmFsTGlzdGVuZXJzKHQpe2NvbnN0IGU9dC5yb290Tm9kZTtpZih0aGlzLl9yb290Tm9kZUZvY3VzTGlzdGVuZXJDb3VudC5oYXMoZSkpe2NvbnN0IHQ9dGhpcy5fcm9vdE5vZGVGb2N1c0xpc3RlbmVyQ291bnQuZ2V0KGUpO3Q+MT90aGlzLl9yb290Tm9kZUZvY3VzTGlzdGVuZXJDb3VudC5zZXQoZSx0LTEpOihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLl9yb290Tm9kZUZvY3VzQW5kQmx1ckxpc3RlbmVyLG1GKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLHRoaXMuX3Jvb3ROb2RlRm9jdXNBbmRCbHVyTGlzdGVuZXIsbUYpLHRoaXMuX3Jvb3ROb2RlRm9jdXNMaXN0ZW5lckNvdW50LmRlbGV0ZShlKSl9aWYoIS0tdGhpcy5fbW9uaXRvcmVkRWxlbWVudENvdW50KXt0aGlzLl9nZXRXaW5kb3coKS5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5fd2luZG93Rm9jdXNMaXN0ZW5lciksdGhpcy5fc3RvcElucHV0TW9kYWxpdHlEZXRlY3Rvci5uZXh0KCksY2xlYXJUaW1lb3V0KHRoaXMuX3dpbmRvd0ZvY3VzVGltZW91dElkKSxjbGVhclRpbWVvdXQodGhpcy5fb3JpZ2luVGltZW91dElkKX19X29yaWdpbkNoYW5nZWQodCxlLG4pe3RoaXMuX3NldENsYXNzZXModCxlKSx0aGlzLl9lbWl0T3JpZ2luKG4uc3ViamVjdCxlKSx0aGlzLl9sYXN0Rm9jdXNPcmlnaW49ZX1fZ2V0Q2xvc2VzdEVsZW1lbnRzSW5mbyh0KXtjb25zdCBlPVtdO3JldHVybiB0aGlzLl9lbGVtZW50SW5mby5mb3JFYWNoKCgobixvKT0+eyhvPT09dHx8bi5jaGVja0NoaWxkcmVuJiZvLmNvbnRhaW5zKHQpKSYmZS5wdXNoKFtvLG5dKX0pKSxlfX1mRi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ZkYpKFRyKG1DKSxUcihjSCksVHIoYUYpLFRyKHNNLDgpLFRyKHBGLDgpKX0sZkYuybVwcm92PVNuKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IGZGKFRyKG1DKSxUcihjSCksVHIoYUYpLFRyKHNNLDgpLFRyKHBGLDgpKX0sdG9rZW46ZkYscHJvdmlkZWRJbjoicm9vdCJ9KSxmRi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOm1DfSx7dHlwZTpjSH0se3R5cGU6YUZ9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbc01dfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbcEZdfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGZGLFt7dHlwZTpVbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTptQ30se3R5cGU6Y0h9LHt0eXBlOmFGfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W3NNXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W3BGXX1dfV19KSxudWxsKTtjbGFzcyB1Rntjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX2VsZW1lbnRSZWY9dCx0aGlzLl9mb2N1c01vbml0b3I9ZSx0aGlzLmNka0ZvY3VzQ2hhbmdlPW5ldyBTeX1uZ0FmdGVyVmlld0luaXQoKXtjb25zdCB0PXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDt0aGlzLl9tb25pdG9yU3Vic2NyaXB0aW9uPXRoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHQsMT09PXQubm9kZVR5cGUmJnQuaGFzQXR0cmlidXRlKCJjZGtNb25pdG9yU3VidHJlZUZvY3VzIikpLnN1YnNjcmliZSgodD0+dGhpcy5jZGtGb2N1c0NoYW5nZS5lbWl0KHQpKSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZiksdGhpcy5fbW9uaXRvclN1YnNjcmlwdGlvbiYmdGhpcy5fbW9uaXRvclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfX11Ri7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dUYpKGdmKEtoKSxnZihmRikpfSx1Ri7JtWRpcj1obyh7dHlwZTp1RixzZWxlY3RvcnM6W1siIiwiY2RrTW9uaXRvckVsZW1lbnRGb2N1cyIsIiJdLFsiIiwiY2RrTW9uaXRvclN1YnRyZWVGb2N1cyIsIiJdXSxvdXRwdXRzOntjZGtGb2N1c0NoYW5nZToiY2RrRm9jdXNDaGFuZ2UifX0pLHVGLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6S2h9LHt0eXBlOmZGfV0sdUYucHJvcERlY29yYXRvcnM9e2Nka0ZvY3VzQ2hhbmdlOlt7dHlwZTpFX31dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHVGLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IltjZGtNb25pdG9yRWxlbWVudEZvY3VzXSwgW2Nka01vbml0b3JTdWJ0cmVlRm9jdXNdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOktofSx7dHlwZTpmRn1dfSkse2Nka0ZvY3VzQ2hhbmdlOlt7dHlwZTpFX31dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBnRj0iY2RrLWhpZ2gtY29udHJhc3QtYmxhY2stb24td2hpdGUiLGhGPSJjZGstaGlnaC1jb250cmFzdC13aGl0ZS1vbi1ibGFjayIsYkY9ImNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSI7Y2xhc3MgeUZ7Y29uc3RydWN0b3IodCxlKXt0aGlzLl9wbGF0Zm9ybT10LHRoaXMuX2RvY3VtZW50PWV9Z2V0SGlnaENvbnRyYXN0TW9kZSgpe2lmKCF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIpcmV0dXJuIDA7Y29uc3QgdD10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LnN0eWxlLmJhY2tncm91bmRDb2xvcj0icmdiKDEsMiwzKSIsdC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHRoaXMuX2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCk7Y29uc3QgZT10aGlzLl9kb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93LG49ZSYmZS5nZXRDb21wdXRlZFN0eWxlP2UuZ2V0Q29tcHV0ZWRTdHlsZSh0KTpudWxsLG89KG4mJm4uYmFja2dyb3VuZENvbG9yfHwiIikucmVwbGFjZSgvIC9nLCIiKTtzd2l0Y2godGhpcy5fZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0KSxvKXtjYXNlInJnYigwLDAsMCkiOnJldHVybiAyO2Nhc2UicmdiKDI1NSwyNTUsMjU1KSI6cmV0dXJuIDF9cmV0dXJuIDB9X2FwcGx5Qm9keUhpZ2hDb250cmFzdE1vZGVDc3NDbGFzc2VzKCl7aWYoIXRoaXMuX2hhc0NoZWNrZWRIaWdoQ29udHJhc3RNb2RlJiZ0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXImJnRoaXMuX2RvY3VtZW50LmJvZHkpe2NvbnN0IHQ9dGhpcy5fZG9jdW1lbnQuYm9keS5jbGFzc0xpc3Q7dC5yZW1vdmUoYkYpLHQucmVtb3ZlKGdGKSx0LnJlbW92ZShoRiksdGhpcy5faGFzQ2hlY2tlZEhpZ2hDb250cmFzdE1vZGU9ITA7Y29uc3QgZT10aGlzLmdldEhpZ2hDb250cmFzdE1vZGUoKTsxPT09ZT8odC5hZGQoYkYpLHQuYWRkKGdGKSk6Mj09PWUmJih0LmFkZChiRiksdC5hZGQoaEYpKX19fXlGLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx5RikoVHIoY0gpLFRyKHNNKSl9LHlGLsm1cHJvdj1Tbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyB5RihUcihjSCksVHIoc00pKX0sdG9rZW46eUYscHJvdmlkZWRJbjoicm9vdCJ9KSx5Ri5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmNIfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHlGLFt7dHlwZTpVbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpjSH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIF9Ge2NvbnN0cnVjdG9yKHQpe3QuX2FwcGx5Qm9keUhpZ2hDb250cmFzdE1vZGVDc3NDbGFzc2VzKCl9fV9GLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxfRikoVHIoeUYpKX0sX0YuybVtb2Q9Zm8oe3R5cGU6X0Z9KSxfRi7JtWluaj1Ebih7aW1wb3J0czpbW2RILHdIXV19KSxfRi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnlGfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihfRixbe3R5cGU6TF8sYXJnczpbe2ltcG9ydHM6W2RILHdIXSxkZWNsYXJhdGlvbnM6W2RGLEdILHVGXSxleHBvcnRzOltkRixHSCx1Rl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp5Rn1dfSksbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhfRix7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW2RGLEdILHVGXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltkSCx3SF19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bZEYsR0gsdUZdfX0pO2NvbnN0IENGPW5ldyBlcigiY2RrLWRpci1kb2MiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OmZ1bmN0aW9uIE1GKCl7cmV0dXJuIHpyKHNNKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovfSk7Y2xhc3MgdkZ7Y29uc3RydWN0b3IodCl7aWYodGhpcy52YWx1ZT0ibHRyIix0aGlzLmNoYW5nZT1uZXcgU3ksdCl7Y29uc3QgZT10LmRvY3VtZW50RWxlbWVudD90LmRvY3VtZW50RWxlbWVudC5kaXI6bnVsbCxuPSh0LmJvZHk/dC5ib2R5LmRpcjpudWxsKXx8ZTt0aGlzLnZhbHVlPSJsdHIiPT09bnx8InJ0bCI9PT1uP246Imx0ciJ9fW5nT25EZXN0cm95KCl7dGhpcy5jaGFuZ2UuY29tcGxldGUoKX19dkYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHZGKShUcihDRiw4KSl9LHZGLsm1cHJvdj1Tbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyB2RihUcihDRiw4KSl9LHRva2VuOnZGLHByb3ZpZGVkSW46InJvb3QifSksdkYuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W0NGXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih2Rixbe3R5cGU6VW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltDRl19XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyB4Rntjb25zdHJ1Y3Rvcigpe3RoaXMuX2Rpcj0ibHRyIix0aGlzLl9pc0luaXRpYWxpemVkPSExLHRoaXMuY2hhbmdlPW5ldyBTeX1nZXQgZGlyKCl7cmV0dXJuIHRoaXMuX2Rpcn1zZXQgZGlyKHQpe2NvbnN0IGU9dGhpcy5fZGlyLG49dD90LnRvTG93ZXJDYXNlKCk6dDt0aGlzLl9yYXdEaXI9dCx0aGlzLl9kaXI9Imx0ciI9PT1ufHwicnRsIj09PW4/bjoibHRyIixlIT09dGhpcy5fZGlyJiZ0aGlzLl9pc0luaXRpYWxpemVkJiZ0aGlzLmNoYW5nZS5lbWl0KHRoaXMuX2Rpcil9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuZGlyfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX2lzSW5pdGlhbGl6ZWQ9ITB9bmdPbkRlc3Ryb3koKXt0aGlzLmNoYW5nZS5jb21wbGV0ZSgpfX14Ri7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8eEYpfSx4Ri7JtWRpcj1obyh7dHlwZTp4RixzZWxlY3RvcnM6W1siIiwiZGlyIiwiIl1dLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJnltKCJkaXIiLG4uX3Jhd0Rpcil9LGlucHV0czp7ZGlyOiJkaXIifSxvdXRwdXRzOntjaGFuZ2U6ImRpckNoYW5nZSJ9LGV4cG9ydEFzOlsiZGlyIl0sZmVhdHVyZXM6W2poKFt7cHJvdmlkZTp2Rix1c2VFeGlzdGluZzp4Rn1dKV19KSx4Ri5wcm9wRGVjb3JhdG9ycz17Y2hhbmdlOlt7dHlwZTpFXyxhcmdzOlsiZGlyQ2hhbmdlIl19XSxkaXI6W3t0eXBlOlJffV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoeEYsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW2Rpcl0iLHByb3ZpZGVyczpbe3Byb3ZpZGU6dkYsdXNlRXhpc3Rpbmc6eEZ9XSxob3N0OnsiW2F0dHIuZGlyXSI6Il9yYXdEaXIifSxleHBvcnRBczoiZGlyIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW119KSx7Y2hhbmdlOlt7dHlwZTpFXyxhcmdzOlsiZGlyQ2hhbmdlIl19XSxkaXI6W3t0eXBlOlJffV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIE9Ge31PRi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8T0YpfSxPRi7JtW1vZD1mbyh7dHlwZTpPRn0pLE9GLsm1aW5qPURuKHt9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKE9GLFt7dHlwZTpMXyxhcmdzOlt7ZXhwb3J0czpbeEZdLGRlY2xhcmF0aW9uczpbeEZdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oT0Yse2RlY2xhcmF0aW9uczpbeEZdLGV4cG9ydHM6W3hGXX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgUEY9bmV3IG9iKCIxMi4yLjEiKSx3Rj1bIioiLFtbIm1hdC1vcHRpb24iXSxbIm5nLWNvbnRhaW5lciJdXV07ZnVuY3Rpb24ga0YodCxlKXtpZigxJnQmJnZmKDAsIm1hdC1wc2V1ZG8tY2hlY2tib3giLDQpLDImdCl7Y29uc3QgdD16ZigpO2JmKCJzdGF0ZSIsdC5zZWxlY3RlZD8iY2hlY2tlZCI6InVuY2hlY2tlZCIpKCJkaXNhYmxlZCIsdC5kaXNhYmxlZCl9fWZ1bmN0aW9uIFNGKHQsZSl7aWYoMSZ0JiYoQ2YoMCwic3BhbiIsNSksUHUoMSksTWYoKSksMiZ0KXtjb25zdCB0PXpmKCk7RGMoMSksa3UoIigiLHQuZ3JvdXAubGFiZWwsIikiKX19bmV3IG9iKCIxMi4yLjMiKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIERGe31ERi5TVEFOREFSRF9DVVJWRT0iY3ViaWMtYmV6aWVyKDAuNCwwLjAsMC4yLDEpIixERi5ERUNFTEVSQVRJT05fQ1VSVkU9ImN1YmljLWJlemllcigwLjAsMC4wLDAuMiwxKSIsREYuQUNDRUxFUkFUSU9OX0NVUlZFPSJjdWJpYy1iZXppZXIoMC40LDAuMCwxLDEpIixERi5TSEFSUF9DVVJWRT0iY3ViaWMtYmV6aWVyKDAuNCwwLjAsMC42LDEpIjtjbGFzcyBSRnt9UkYuQ09NUExFWD0iMzc1bXMiLFJGLkVOVEVSSU5HPSIyMjVtcyIsUkYuRVhJVElORz0iMTk1bXMiOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgRUY9bmV3IG9iKCIxMi4yLjMiKTtjb25zdCBBRj1uZXcgZXIoIm1hdC1zYW5pdHktY2hlY2tzIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbiBURigpe3JldHVybiEwfX0pO2NsYXNzIE5Ge2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl9oYXNEb25lR2xvYmFsQ2hlY2tzPSExLHRoaXMuX2RvY3VtZW50PW4sdC5fYXBwbHlCb2R5SGlnaENvbnRyYXN0TW9kZUNzc0NsYXNzZXMoKSx0aGlzLl9zYW5pdHlDaGVja3M9ZSx0aGlzLl9oYXNEb25lR2xvYmFsQ2hlY2tzfHwodGhpcy5fY2hlY2tEb2N0eXBlSXNEZWZpbmVkKCksdGhpcy5fY2hlY2tUaGVtZUlzUHJlc2VudCgpLHRoaXMuX2NoZWNrQ2RrVmVyc2lvbk1hdGNoKCksdGhpcy5faGFzRG9uZUdsb2JhbENoZWNrcz0hMCl9X2dldFdpbmRvdygpe2NvbnN0IHQ9dGhpcy5fZG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvdztyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJnQ/dDpudWxsfV9jaGVja0lzRW5hYmxlZCh0KXtyZXR1cm4hKCFQQygpfHx0aGlzLl9pc1Rlc3RFbnYoKSkmJigiYm9vbGVhbiI9PXR5cGVvZiB0aGlzLl9zYW5pdHlDaGVja3M/dGhpcy5fc2FuaXR5Q2hlY2tzOiEhdGhpcy5fc2FuaXR5Q2hlY2tzW3RdKX1faXNUZXN0RW52KCl7Y29uc3QgdD10aGlzLl9nZXRXaW5kb3coKTtyZXR1cm4gdCYmKHQuX19rYXJtYV9ffHx0Lmphc21pbmUpfV9jaGVja0RvY3R5cGVJc0RlZmluZWQoKXt0aGlzLl9jaGVja0lzRW5hYmxlZCgiZG9jdHlwZSIpJiYhdGhpcy5fZG9jdW1lbnQuZG9jdHlwZSYmY29uc29sZS53YXJuKCJDdXJyZW50IGRvY3VtZW50IGRvZXMgbm90IGhhdmUgYSBkb2N0eXBlLiBUaGlzIG1heSBjYXVzZSBzb21lIEFuZ3VsYXIgTWF0ZXJpYWwgY29tcG9uZW50cyBub3QgdG8gYmVoYXZlIGFzIGV4cGVjdGVkLiIpfV9jaGVja1RoZW1lSXNQcmVzZW50KCl7aWYoIXRoaXMuX2NoZWNrSXNFbmFibGVkKCJ0aGVtZSIpfHwhdGhpcy5fZG9jdW1lbnQuYm9keXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGdldENvbXB1dGVkU3R5bGUpcmV0dXJuO2NvbnN0IHQ9dGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dC5jbGFzc0xpc3QuYWRkKCJtYXQtdGhlbWUtbG9hZGVkLW1hcmtlciIpLHRoaXMuX2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCk7Y29uc3QgZT1nZXRDb21wdXRlZFN0eWxlKHQpO2UmJiJub25lIiE9PWUuZGlzcGxheSYmY29uc29sZS53YXJuKCJDb3VsZCBub3QgZmluZCBBbmd1bGFyIE1hdGVyaWFsIGNvcmUgdGhlbWUuIE1vc3QgTWF0ZXJpYWwgY29tcG9uZW50cyBtYXkgbm90IHdvcmsgYXMgZXhwZWN0ZWQuIEZvciBtb3JlIGluZm8gcmVmZXIgdG8gdGhlIHRoZW1pbmcgZ3VpZGU6IGh0dHBzOi8vbWF0ZXJpYWwuYW5ndWxhci5pby9ndWlkZS90aGVtaW5nIiksdGhpcy5fZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0KX1fY2hlY2tDZGtWZXJzaW9uTWF0Y2goKXt0aGlzLl9jaGVja0lzRW5hYmxlZCgidmVyc2lvbiIpJiZFRi5mdWxsIT09UEYuZnVsbCYmY29uc29sZS53YXJuKCJUaGUgQW5ndWxhciBNYXRlcmlhbCB2ZXJzaW9uICgiK0VGLmZ1bGwrIikgZG9lcyBub3QgbWF0Y2ggdGhlIEFuZ3VsYXIgQ0RLIHZlcnNpb24gKCIrUEYuZnVsbCsiKS5cblBsZWFzZSBlbnN1cmUgdGhlIHZlcnNpb25zIG9mIHRoZXNlIHR3byBwYWNrYWdlcyBleGFjdGx5IG1hdGNoLiIpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIHpGKHQpe3JldHVybiBjbGFzcyBleHRlbmRzIHR7Y29uc3RydWN0b3IoLi4udCl7c3VwZXIoLi4udCksdGhpcy5fZGlzYWJsZWQ9ITF9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVkfXNldCBkaXNhYmxlZCh0KXt0aGlzLl9kaXNhYmxlZD1lSCh0KX19fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBJRih0LGUpe3JldHVybiBjbGFzcyBleHRlbmRzIHR7Y29uc3RydWN0b3IoLi4udCl7c3VwZXIoLi4udCksdGhpcy5kZWZhdWx0Q29sb3I9ZSx0aGlzLmNvbG9yPWV9Z2V0IGNvbG9yKCl7cmV0dXJuIHRoaXMuX2NvbG9yfXNldCBjb2xvcih0KXtjb25zdCBlPXR8fHRoaXMuZGVmYXVsdENvbG9yO2UhPT10aGlzLl9jb2xvciYmKHRoaXMuX2NvbG9yJiZ0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShgbWF0LSR7dGhpcy5fY29sb3J9YCksZSYmdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYG1hdC0ke2V9YCksdGhpcy5fY29sb3I9ZSl9fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gSEYodCl7cmV0dXJuIGNsYXNzIGV4dGVuZHMgdHtjb25zdHJ1Y3RvciguLi50KXtzdXBlciguLi50KSx0aGlzLl9kaXNhYmxlUmlwcGxlPSExfWdldCBkaXNhYmxlUmlwcGxlKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVSaXBwbGV9c2V0IGRpc2FibGVSaXBwbGUodCl7dGhpcy5fZGlzYWJsZVJpcHBsZT1lSCh0KX19fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBGRih0LGU9MCl7cmV0dXJuIGNsYXNzIGV4dGVuZHMgdHtjb25zdHJ1Y3RvciguLi50KXtzdXBlciguLi50KSx0aGlzLl90YWJJbmRleD1lLHRoaXMuZGVmYXVsdFRhYkluZGV4PWV9Z2V0IHRhYkluZGV4KCl7cmV0dXJuIHRoaXMuZGlzYWJsZWQ/LTE6dGhpcy5fdGFiSW5kZXh9c2V0IHRhYkluZGV4KHQpe3RoaXMuX3RhYkluZGV4PW51bGwhPXQ/bkgodCk6dGhpcy5kZWZhdWx0VGFiSW5kZXh9fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gTEYodCl7cmV0dXJuIGNsYXNzIGV4dGVuZHMgdHtjb25zdHJ1Y3RvciguLi50KXtzdXBlciguLi50KSx0aGlzLnN0YXRlQ2hhbmdlcz1uZXcgQix0aGlzLmVycm9yU3RhdGU9ITF9dXBkYXRlRXJyb3JTdGF0ZSgpe2NvbnN0IHQ9dGhpcy5lcnJvclN0YXRlLGU9KHRoaXMuZXJyb3JTdGF0ZU1hdGNoZXJ8fHRoaXMuX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcikuaXNFcnJvclN0YXRlKHRoaXMubmdDb250cm9sP3RoaXMubmdDb250cm9sLmNvbnRyb2w6bnVsbCx0aGlzLl9wYXJlbnRGb3JtR3JvdXB8fHRoaXMuX3BhcmVudEZvcm0pO2UhPT10JiYodGhpcy5lcnJvclN0YXRlPWUsdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpKX19fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBCRih0KXtyZXR1cm4gY2xhc3MgZXh0ZW5kcyB0e2NvbnN0cnVjdG9yKC4uLnQpe3N1cGVyKC4uLnQpLHRoaXMuX2lzSW5pdGlhbGl6ZWQ9ITEsdGhpcy5fcGVuZGluZ1N1YnNjcmliZXJzPVtdLHRoaXMuaW5pdGlhbGl6ZWQ9bmV3IFQoKHQ9Pnt0aGlzLl9pc0luaXRpYWxpemVkP3RoaXMuX25vdGlmeVN1YnNjcmliZXIodCk6dGhpcy5fcGVuZGluZ1N1YnNjcmliZXJzLnB1c2godCl9KSl9X21hcmtJbml0aWFsaXplZCgpe2lmKHRoaXMuX2lzSW5pdGlhbGl6ZWQmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyBFcnJvcigiVGhpcyBkaXJlY3RpdmUgaGFzIGFscmVhZHkgYmVlbiBtYXJrZWQgYXMgaW5pdGlhbGl6ZWQgYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIHR3aWNlLiIpO3RoaXMuX2lzSW5pdGlhbGl6ZWQ9ITAsdGhpcy5fcGVuZGluZ1N1YnNjcmliZXJzLmZvckVhY2godGhpcy5fbm90aWZ5U3Vic2NyaWJlciksdGhpcy5fcGVuZGluZ1N1YnNjcmliZXJzPW51bGx9X25vdGlmeVN1YnNjcmliZXIodCl7dC5uZXh0KCksdC5jb21wbGV0ZSgpfX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9ORi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TkYpKFRyKHlGKSxUcihBRiw4KSxUcihzTSkpfSxORi7JtW1vZD1mbyh7dHlwZTpORn0pLE5GLsm1aW5qPURuKHtpbXBvcnRzOltbT0ZdLE9GXX0pLE5GLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6eUZ9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbQUZdfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoTkYsW3t0eXBlOkxfLGFyZ3M6W3tpbXBvcnRzOltPRl0sZXhwb3J0czpbT0ZdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6eUZ9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbQUZdfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX1dfSksbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhORix7aW1wb3J0czpmdW5jdGlvbigpe3JldHVybltPRl19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bT0ZdfX0pO2NvbnN0IFZGPW5ldyBlcigiTUFUX0RBVEVfTE9DQUxFIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbiBqRigpe3JldHVybiB6cihRXyl9fSk7Y2xhc3MgVUZ7Y29uc3RydWN0b3IoKXt0aGlzLl9sb2NhbGVDaGFuZ2VzPW5ldyBCLHRoaXMubG9jYWxlQ2hhbmdlcz10aGlzLl9sb2NhbGVDaGFuZ2VzfWdldFZhbGlkRGF0ZU9yTnVsbCh0KXtyZXR1cm4gdGhpcy5pc0RhdGVJbnN0YW5jZSh0KSYmdGhpcy5pc1ZhbGlkKHQpP3Q6bnVsbH1kZXNlcmlhbGl6ZSh0KXtyZXR1cm4gbnVsbD09dHx8dGhpcy5pc0RhdGVJbnN0YW5jZSh0KSYmdGhpcy5pc1ZhbGlkKHQpP3Q6dGhpcy5pbnZhbGlkKCl9c2V0TG9jYWxlKHQpe3RoaXMubG9jYWxlPXQsdGhpcy5fbG9jYWxlQ2hhbmdlcy5uZXh0KCl9Y29tcGFyZURhdGUodCxlKXtyZXR1cm4gdGhpcy5nZXRZZWFyKHQpLXRoaXMuZ2V0WWVhcihlKXx8dGhpcy5nZXRNb250aCh0KS10aGlzLmdldE1vbnRoKGUpfHx0aGlzLmdldERhdGUodCktdGhpcy5nZXREYXRlKGUpfXNhbWVEYXRlKHQsZSl7aWYodCYmZSl7bGV0IG49dGhpcy5pc1ZhbGlkKHQpLG89dGhpcy5pc1ZhbGlkKGUpO3JldHVybiBuJiZvPyF0aGlzLmNvbXBhcmVEYXRlKHQsZSk6bj09b31yZXR1cm4gdD09ZX1jbGFtcERhdGUodCxlLG4pe3JldHVybiBlJiZ0aGlzLmNvbXBhcmVEYXRlKHQsZSk8MD9lOm4mJnRoaXMuY29tcGFyZURhdGUodCxuKT4wP246dH19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IFdGPW5ldyBlcigibWF0LWRhdGUtZm9ybWF0cyIpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9sZXQgR0Y7dHJ5e0dGPSJ1bmRlZmluZWQiIT10eXBlb2YgSW50bH1jYXRjaChtQ3Qpe0dGPSExfWNvbnN0IFlGPXtsb25nOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXSxzaG9ydDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLG5hcnJvdzpbIkoiLCJGIiwiTSIsIkEiLCJNIiwiSiIsIkoiLCJBIiwiUyIsIk8iLCJOIiwiRCJdfSxxRj1LRigzMSwodD0+U3RyaW5nKHQrMSkpKSxaRj17bG9uZzpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sc2hvcnQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxuYXJyb3c6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl19LFhGPS9eXGR7NH0tXGR7Mn0tXGR7Mn0oPzpUXGR7Mn06XGR7Mn06XGR7Mn0oPzpcLlxkKyk/KD86WnwoPzooPzpcK3wtKVxkezJ9OlxkezJ9KSk/KT8kLztmdW5jdGlvbiBLRih0LGUpe2NvbnN0IG49QXJyYXkodCk7Zm9yKGxldCBvPTA7bzx0O28rKyluW29dPWUobyk7cmV0dXJuIG59Y2xhc3MgSkYgZXh0ZW5kcyBVRntjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKCksdGhpcy51c2VVdGNGb3JEaXNwbGF5PSEwLHN1cGVyLnNldExvY2FsZSh0KSx0aGlzLnVzZVV0Y0ZvckRpc3BsYXk9IWUuVFJJREVOVCx0aGlzLl9jbGFtcERhdGU9ZS5UUklERU5UfHxlLkVER0V9Z2V0WWVhcih0KXtyZXR1cm4gdC5nZXRGdWxsWWVhcigpfWdldE1vbnRoKHQpe3JldHVybiB0LmdldE1vbnRoKCl9Z2V0RGF0ZSh0KXtyZXR1cm4gdC5nZXREYXRlKCl9Z2V0RGF5T2ZXZWVrKHQpe3JldHVybiB0LmdldERheSgpfWdldE1vbnRoTmFtZXModCl7aWYoR0Ype2NvbnN0IGU9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodGhpcy5sb2NhbGUse21vbnRoOnQsdGltZVpvbmU6InV0YyJ9KTtyZXR1cm4gS0YoMTIsKHQ9PnRoaXMuX3N0cmlwRGlyZWN0aW9uYWxpdHlDaGFyYWN0ZXJzKHRoaXMuX2Zvcm1hdChlLG5ldyBEYXRlKDIwMTcsdCwxKSkpKSl9cmV0dXJuIFlGW3RdfWdldERhdGVOYW1lcygpe2lmKEdGKXtjb25zdCB0PW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMubG9jYWxlLHtkYXk6Im51bWVyaWMiLHRpbWVab25lOiJ1dGMifSk7cmV0dXJuIEtGKDMxLChlPT50aGlzLl9zdHJpcERpcmVjdGlvbmFsaXR5Q2hhcmFjdGVycyh0aGlzLl9mb3JtYXQodCxuZXcgRGF0ZSgyMDE3LDAsZSsxKSkpKSl9cmV0dXJuIHFGfWdldERheU9mV2Vla05hbWVzKHQpe2lmKEdGKXtjb25zdCBlPW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMubG9jYWxlLHt3ZWVrZGF5OnQsdGltZVpvbmU6InV0YyJ9KTtyZXR1cm4gS0YoNywodD0+dGhpcy5fc3RyaXBEaXJlY3Rpb25hbGl0eUNoYXJhY3RlcnModGhpcy5fZm9ybWF0KGUsbmV3IERhdGUoMjAxNywwLHQrMSkpKSkpfXJldHVybiBaRlt0XX1nZXRZZWFyTmFtZSh0KXtpZihHRil7Y29uc3QgZT1uZXcgSW50bC5EYXRlVGltZUZvcm1hdCh0aGlzLmxvY2FsZSx7eWVhcjoibnVtZXJpYyIsdGltZVpvbmU6InV0YyJ9KTtyZXR1cm4gdGhpcy5fc3RyaXBEaXJlY3Rpb25hbGl0eUNoYXJhY3RlcnModGhpcy5fZm9ybWF0KGUsdCkpfXJldHVybiBTdHJpbmcodGhpcy5nZXRZZWFyKHQpKX1nZXRGaXJzdERheU9mV2Vlaygpe3JldHVybiAwfWdldE51bURheXNJbk1vbnRoKHQpe3JldHVybiB0aGlzLmdldERhdGUodGhpcy5fY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh0aGlzLmdldFllYXIodCksdGhpcy5nZXRNb250aCh0KSsxLDApKX1jbG9uZSh0KXtyZXR1cm4gbmV3IERhdGUodC5nZXRUaW1lKCkpfWNyZWF0ZURhdGUodCxlLG4pe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpe2lmKGU8MHx8ZT4xMSl0aHJvdyBFcnJvcihgSW52YWxpZCBtb250aCBpbmRleCAiJHtlfSIuIE1vbnRoIGluZGV4IGhhcyB0byBiZSBiZXR3ZWVuIDAgYW5kIDExLmApO2lmKG48MSl0aHJvdyBFcnJvcihgSW52YWxpZCBkYXRlICIke259Ii4gRGF0ZSBoYXMgdG8gYmUgZ3JlYXRlciB0aGFuIDAuYCl9bGV0IG89dGhpcy5fY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh0LGUsbik7aWYoby5nZXRNb250aCgpIT1lJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3cgRXJyb3IoYEludmFsaWQgZGF0ZSAiJHtufSIgZm9yIG1vbnRoIHdpdGggaW5kZXggIiR7ZX0iLmApO3JldHVybiBvfXRvZGF5KCl7cmV0dXJuIG5ldyBEYXRlfXBhcnNlKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdD9uZXcgRGF0ZSh0KTp0P25ldyBEYXRlKERhdGUucGFyc2UodCkpOm51bGx9Zm9ybWF0KHQsZSl7aWYoIXRoaXMuaXNWYWxpZCh0KSl0aHJvdyBFcnJvcigiTmF0aXZlRGF0ZUFkYXB0ZXI6IENhbm5vdCBmb3JtYXQgaW52YWxpZCBkYXRlLiIpO2lmKEdGKXt0aGlzLl9jbGFtcERhdGUmJih0LmdldEZ1bGxZZWFyKCk8MXx8dC5nZXRGdWxsWWVhcigpPjk5OTkpJiYodD10aGlzLmNsb25lKHQpKS5zZXRGdWxsWWVhcihNYXRoLm1heCgxLE1hdGgubWluKDk5OTksdC5nZXRGdWxsWWVhcigpKSkpLGU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHt0aW1lWm9uZToidXRjIn0pO2NvbnN0IG49bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodGhpcy5sb2NhbGUsZSk7cmV0dXJuIHRoaXMuX3N0cmlwRGlyZWN0aW9uYWxpdHlDaGFyYWN0ZXJzKHRoaXMuX2Zvcm1hdChuLHQpKX1yZXR1cm4gdGhpcy5fc3RyaXBEaXJlY3Rpb25hbGl0eUNoYXJhY3RlcnModC50b0RhdGVTdHJpbmcoKSl9YWRkQ2FsZW5kYXJZZWFycyh0LGUpe3JldHVybiB0aGlzLmFkZENhbGVuZGFyTW9udGhzKHQsMTIqZSl9YWRkQ2FsZW5kYXJNb250aHModCxlKXtsZXQgbj10aGlzLl9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHRoaXMuZ2V0WWVhcih0KSx0aGlzLmdldE1vbnRoKHQpK2UsdGhpcy5nZXREYXRlKHQpKTtyZXR1cm4gdGhpcy5nZXRNb250aChuKSE9KCh0aGlzLmdldE1vbnRoKHQpK2UpJTEyKzEyKSUxMiYmKG49dGhpcy5fY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh0aGlzLmdldFllYXIobiksdGhpcy5nZXRNb250aChuKSwwKSksbn1hZGRDYWxlbmRhckRheXModCxlKXtyZXR1cm4gdGhpcy5fY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh0aGlzLmdldFllYXIodCksdGhpcy5nZXRNb250aCh0KSx0aGlzLmdldERhdGUodCkrZSl9dG9Jc284NjAxKHQpe3JldHVyblt0LmdldFVUQ0Z1bGxZZWFyKCksdGhpcy5fMmRpZ2l0KHQuZ2V0VVRDTW9udGgoKSsxKSx0aGlzLl8yZGlnaXQodC5nZXRVVENEYXRlKCkpXS5qb2luKCItIil9ZGVzZXJpYWxpemUodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtpZighdClyZXR1cm4gbnVsbDtpZihYRi50ZXN0KHQpKXtsZXQgZT1uZXcgRGF0ZSh0KTtpZih0aGlzLmlzVmFsaWQoZSkpcmV0dXJuIGV9fXJldHVybiBzdXBlci5kZXNlcmlhbGl6ZSh0KX1pc0RhdGVJbnN0YW5jZSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIERhdGV9aXNWYWxpZCh0KXtyZXR1cm4haXNOYU4odC5nZXRUaW1lKCkpfWludmFsaWQoKXtyZXR1cm4gbmV3IERhdGUoTmFOKX1fY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh0LGUsbil7Y29uc3Qgbz1uZXcgRGF0ZTtyZXR1cm4gby5zZXRGdWxsWWVhcih0LGUsbiksby5zZXRIb3VycygwLDAsMCwwKSxvfV8yZGlnaXQodCl7cmV0dXJuKCIwMCIrdCkuc2xpY2UoLTIpfV9zdHJpcERpcmVjdGlvbmFsaXR5Q2hhcmFjdGVycyh0KXtyZXR1cm4gdC5yZXBsYWNlKC9bXHUyMDBlXHUyMDBmXS9nLCIiKX1fZm9ybWF0KHQsZSl7Y29uc3Qgbj1uZXcgRGF0ZTtyZXR1cm4gbi5zZXRVVENGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCksZS5nZXRNb250aCgpLGUuZ2V0RGF0ZSgpKSxuLnNldFVUQ0hvdXJzKGUuZ2V0SG91cnMoKSxlLmdldE1pbnV0ZXMoKSxlLmdldFNlY29uZHMoKSxlLmdldE1pbGxpc2Vjb25kcygpKSx0LmZvcm1hdChuKX19SkYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEpGKShUcihWRiw4KSxUcihjSCkpfSxKRi7JtXByb3Y9U24oe3Rva2VuOkpGLGZhY3Rvcnk6SkYuybVmYWN9KSxKRi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbVkZdfV19LHt0eXBlOmNIfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihKRixbe3R5cGU6VW19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltWRl19XX0se3R5cGU6Y0h9XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgUUZ7fVFGLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxRRil9LFFGLsm1bW9kPWZvKHt0eXBlOlFGfSksUUYuybVpbmo9RG4oe3Byb3ZpZGVyczpbe3Byb3ZpZGU6VUYsdXNlQ2xhc3M6SkZ9XSxpbXBvcnRzOltbZEhdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoUUYsW3t0eXBlOkxfLGFyZ3M6W3tpbXBvcnRzOltkSF0scHJvdmlkZXJzOlt7cHJvdmlkZTpVRix1c2VDbGFzczpKRn1dfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oUUYse2ltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bZEhdfX0pO2NvbnN0ICRGPXtwYXJzZTp7ZGF0ZUlucHV0Om51bGx9LGRpc3BsYXk6e2RhdGVJbnB1dDp7eWVhcjoibnVtZXJpYyIsbW9udGg6Im51bWVyaWMiLGRheToibnVtZXJpYyJ9LG1vbnRoWWVhckxhYmVsOnt5ZWFyOiJudW1lcmljIixtb250aDoic2hvcnQifSxkYXRlQTExeUxhYmVsOnt5ZWFyOiJudW1lcmljIixtb250aDoibG9uZyIsZGF5OiJudW1lcmljIn0sbW9udGhZZWFyQTExeUxhYmVsOnt5ZWFyOiJudW1lcmljIixtb250aDoibG9uZyJ9fX07Y2xhc3MgdEx7fXRMLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx0TCl9LHRMLsm1bW9kPWZvKHt0eXBlOnRMfSksdEwuybVpbmo9RG4oe3Byb3ZpZGVyczpbe3Byb3ZpZGU6V0YsdXNlVmFsdWU6JEZ9XSxpbXBvcnRzOltbUUZdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIodEwsW3t0eXBlOkxfLGFyZ3M6W3tpbXBvcnRzOltRRl0scHJvdmlkZXJzOlt7cHJvdmlkZTpXRix1c2VWYWx1ZTokRn1dfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8odEwse2ltcG9ydHM6W1FGXX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgZUx7aXNFcnJvclN0YXRlKHQsZSl7cmV0dXJuISEodCYmdC5pbnZhbGlkJiYodC5kaXJ0eXx8ZSYmZS5zdWJtaXR0ZWQpKX19ZUwuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGVMKX0sZUwuybVwcm92PVNuKHt0b2tlbjplTCxmYWN0b3J5OmVMLsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihlTCxbe3R5cGU6VW19XSxudWxsLG51bGwpO2NsYXNzIG5Me2lzRXJyb3JTdGF0ZSh0LGUpe3JldHVybiEhKHQmJnQuaW52YWxpZCYmKHQudG91Y2hlZHx8ZSYmZS5zdWJtaXR0ZWQpKX19bkwuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG5MKX0sbkwuybVwcm92PVNuKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IG5MfSx0b2tlbjpuTCxwcm92aWRlZEluOiJyb290In0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIobkwsW3t0eXBlOlVtLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIG9Me31vTC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8b0wpfSxvTC7JtWRpcj1obyh7dHlwZTpvTCxzZWxlY3RvcnM6W1siIiwibWF0LWxpbmUiLCIiXSxbIiIsIm1hdExpbmUiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtbGluZSJdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihvTCxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJbbWF0LWxpbmVdLCBbbWF0TGluZV0iLGhvc3Q6e2NsYXNzOiJtYXQtbGluZSJ9fV19XSxudWxsLG51bGwpO2NsYXNzIGlMe31pTC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8aUwpfSxpTC7JtW1vZD1mbyh7dHlwZTppTH0pLGlMLsm1aW5qPURuKHtpbXBvcnRzOltbTkZdLE5GXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoaUwsW3t0eXBlOkxfLGFyZ3M6W3tpbXBvcnRzOltORl0sZXhwb3J0czpbb0wsTkZdLGRlY2xhcmF0aW9uczpbb0xdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oaUwse2RlY2xhcmF0aW9uczpbb0xdLGltcG9ydHM6W05GXSxleHBvcnRzOltvTCxORl19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIGFMe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl9yZW5kZXJlcj10LHRoaXMuZWxlbWVudD1lLHRoaXMuY29uZmlnPW4sdGhpcy5zdGF0ZT0zfWZhZGVPdXQoKXt0aGlzLl9yZW5kZXJlci5mYWRlT3V0UmlwcGxlKHRoaXMpfX1jb25zdCByTD17ZW50ZXJEdXJhdGlvbjoyMjUsZXhpdER1cmF0aW9uOjE1MH0sc0w9Ykgoe3Bhc3NpdmU6ITB9KSxsTD1bIm1vdXNlZG93biIsInRvdWNoc3RhcnQiXSxjTD1bIm1vdXNldXAiLCJtb3VzZWxlYXZlIiwidG91Y2hlbmQiLCJ0b3VjaGNhbmNlbCJdO2NsYXNzIGRMe2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMuX3RhcmdldD10LHRoaXMuX25nWm9uZT1lLHRoaXMuX2lzUG9pbnRlckRvd249ITEsdGhpcy5fYWN0aXZlUmlwcGxlcz1uZXcgU2V0LHRoaXMuX3BvaW50ZXJVcEV2ZW50c1JlZ2lzdGVyZWQ9ITEsby5pc0Jyb3dzZXImJih0aGlzLl9jb250YWluZXJFbGVtZW50PXJIKG4pKX1mYWRlSW5SaXBwbGUodCxlLG49e30pe2NvbnN0IG89dGhpcy5fY29udGFpbmVyUmVjdD10aGlzLl9jb250YWluZXJSZWN0fHx0aGlzLl9jb250YWluZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHJMKSxuLmFuaW1hdGlvbik7bi5jZW50ZXJlZCYmKHQ9by5sZWZ0K28ud2lkdGgvMixlPW8udG9wK28uaGVpZ2h0LzIpO2NvbnN0IGE9bi5yYWRpdXN8fChmdW5jdGlvbiByKHQsZSxuKXtjb25zdCBvPU1hdGgubWF4KE1hdGguYWJzKHQtbi5sZWZ0KSxNYXRoLmFicyh0LW4ucmlnaHQpKSxpPU1hdGgubWF4KE1hdGguYWJzKGUtbi50b3ApLE1hdGguYWJzKGUtbi5ib3R0b20pKTtyZXR1cm4gTWF0aC5zcXJ0KG8qbytpKmkpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKHQsZSxvKSxzPXQtby5sZWZ0LGw9ZS1vLnRvcCxjPWkuZW50ZXJEdXJhdGlvbixkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2QuY2xhc3NMaXN0LmFkZCgibWF0LXJpcHBsZS1lbGVtZW50IiksZC5zdHlsZS5sZWZ0PXMtYSsicHgiLGQuc3R5bGUudG9wPWwtYSsicHgiLGQuc3R5bGUuaGVpZ2h0PTIqYSsicHgiLGQuc3R5bGUud2lkdGg9MiphKyJweCIsbnVsbCE9bi5jb2xvciYmKGQuc3R5bGUuYmFja2dyb3VuZENvbG9yPW4uY29sb3IpLGQuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uPWAke2N9bXNgLHRoaXMuX2NvbnRhaW5lckVsZW1lbnQuYXBwZW5kQ2hpbGQoZCksKGZ1bmN0aW9uIHAodCl7d2luZG93LmdldENvbXB1dGVkU3R5bGUodCkuZ2V0UHJvcGVydHlWYWx1ZSgib3BhY2l0eSIpfSkoZCksZC5zdHlsZS50cmFuc2Zvcm09InNjYWxlKDEpIjtjb25zdCBtPW5ldyBhTCh0aGlzLGQsbik7cmV0dXJuIG0uc3RhdGU9MCx0aGlzLl9hY3RpdmVSaXBwbGVzLmFkZChtKSxuLnBlcnNpc3RlbnR8fCh0aGlzLl9tb3N0UmVjZW50VHJhbnNpZW50UmlwcGxlPW0pLHRoaXMuX3J1blRpbWVvdXRPdXRzaWRlWm9uZSgoKCk9Pntjb25zdCB0PW09PT10aGlzLl9tb3N0UmVjZW50VHJhbnNpZW50UmlwcGxlO20uc3RhdGU9MSxuLnBlcnNpc3RlbnR8fHQmJnRoaXMuX2lzUG9pbnRlckRvd258fG0uZmFkZU91dCgpfSksYyksbX1mYWRlT3V0UmlwcGxlKHQpe2NvbnN0IGU9dGhpcy5fYWN0aXZlUmlwcGxlcy5kZWxldGUodCk7aWYodD09PXRoaXMuX21vc3RSZWNlbnRUcmFuc2llbnRSaXBwbGUmJih0aGlzLl9tb3N0UmVjZW50VHJhbnNpZW50UmlwcGxlPW51bGwpLHRoaXMuX2FjdGl2ZVJpcHBsZXMuc2l6ZXx8KHRoaXMuX2NvbnRhaW5lclJlY3Q9bnVsbCksIWUpcmV0dXJuO2NvbnN0IG49dC5lbGVtZW50LG89T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHJMKSx0LmNvbmZpZy5hbmltYXRpb24pO24uc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uPWAke28uZXhpdER1cmF0aW9ufW1zYCxuLnN0eWxlLm9wYWNpdHk9IjAiLHQuc3RhdGU9Mix0aGlzLl9ydW5UaW1lb3V0T3V0c2lkZVpvbmUoKCgpPT57dC5zdGF0ZT0zLG4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKX0pLG8uZXhpdER1cmF0aW9uKX1mYWRlT3V0QWxsKCl7dGhpcy5fYWN0aXZlUmlwcGxlcy5mb3JFYWNoKCh0PT50LmZhZGVPdXQoKSkpfWZhZGVPdXRBbGxOb25QZXJzaXN0ZW50KCl7dGhpcy5fYWN0aXZlUmlwcGxlcy5mb3JFYWNoKCh0PT57dC5jb25maWcucGVyc2lzdGVudHx8dC5mYWRlT3V0KCl9KSl9c2V0dXBUcmlnZ2VyRXZlbnRzKHQpe2NvbnN0IGU9ckgodCk7ZSYmZSE9PXRoaXMuX3RyaWdnZXJFbGVtZW50JiYodGhpcy5fcmVtb3ZlVHJpZ2dlckV2ZW50cygpLHRoaXMuX3RyaWdnZXJFbGVtZW50PWUsdGhpcy5fcmVnaXN0ZXJFdmVudHMobEwpKX1oYW5kbGVFdmVudCh0KXsibW91c2Vkb3duIj09PXQudHlwZT90aGlzLl9vbk1vdXNlZG93bih0KToidG91Y2hzdGFydCI9PT10LnR5cGU/dGhpcy5fb25Ub3VjaFN0YXJ0KHQpOnRoaXMuX29uUG9pbnRlclVwKCksdGhpcy5fcG9pbnRlclVwRXZlbnRzUmVnaXN0ZXJlZHx8KHRoaXMuX3JlZ2lzdGVyRXZlbnRzKGNMKSx0aGlzLl9wb2ludGVyVXBFdmVudHNSZWdpc3RlcmVkPSEwKX1fb25Nb3VzZWRvd24odCl7Y29uc3QgZT10Rih0KSxuPXRoaXMuX2xhc3RUb3VjaFN0YXJ0RXZlbnQmJkRhdGUubm93KCk8dGhpcy5fbGFzdFRvdWNoU3RhcnRFdmVudCs4MDA7dGhpcy5fdGFyZ2V0LnJpcHBsZURpc2FibGVkfHxlfHxufHwodGhpcy5faXNQb2ludGVyRG93bj0hMCx0aGlzLmZhZGVJblJpcHBsZSh0LmNsaWVudFgsdC5jbGllbnRZLHRoaXMuX3RhcmdldC5yaXBwbGVDb25maWcpKX1fb25Ub3VjaFN0YXJ0KHQpe2lmKCF0aGlzLl90YXJnZXQucmlwcGxlRGlzYWJsZWQmJiFlRih0KSl7dGhpcy5fbGFzdFRvdWNoU3RhcnRFdmVudD1EYXRlLm5vdygpLHRoaXMuX2lzUG9pbnRlckRvd249ITA7Y29uc3QgZT10LmNoYW5nZWRUb3VjaGVzO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXRoaXMuZmFkZUluUmlwcGxlKGVbdF0uY2xpZW50WCxlW3RdLmNsaWVudFksdGhpcy5fdGFyZ2V0LnJpcHBsZUNvbmZpZyl9fV9vblBvaW50ZXJVcCgpe3RoaXMuX2lzUG9pbnRlckRvd24mJih0aGlzLl9pc1BvaW50ZXJEb3duPSExLHRoaXMuX2FjdGl2ZVJpcHBsZXMuZm9yRWFjaCgodD0+eyF0LmNvbmZpZy5wZXJzaXN0ZW50JiYoMT09PXQuc3RhdGV8fHQuY29uZmlnLnRlcm1pbmF0ZU9uUG9pbnRlclVwJiYwPT09dC5zdGF0ZSkmJnQuZmFkZU91dCgpfSkpKX1fcnVuVGltZW91dE91dHNpZGVab25lKHQsZT0wKXt0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT5zZXRUaW1lb3V0KHQsZSkpKX1fcmVnaXN0ZXJFdmVudHModCl7dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e3QuZm9yRWFjaCgodD0+e3RoaXMuX3RyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodCx0aGlzLHNMKX0pKX0pKX1fcmVtb3ZlVHJpZ2dlckV2ZW50cygpe3RoaXMuX3RyaWdnZXJFbGVtZW50JiYobEwuZm9yRWFjaCgodD0+e3RoaXMuX3RyaWdnZXJFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIodCx0aGlzLHNMKX0pKSx0aGlzLl9wb2ludGVyVXBFdmVudHNSZWdpc3RlcmVkJiZjTC5mb3JFYWNoKCh0PT57dGhpcy5fdHJpZ2dlckVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LHRoaXMsc0wpfSkpKX19Y29uc3QgcEw9bmV3IGVyKCJtYXQtcmlwcGxlLWdsb2JhbC1vcHRpb25zIik7Y2xhc3MgbUx7Y29uc3RydWN0b3IodCxlLG4sbyxpKXt0aGlzLl9lbGVtZW50UmVmPXQsdGhpcy5fYW5pbWF0aW9uTW9kZT1pLHRoaXMucmFkaXVzPTAsdGhpcy5fZGlzYWJsZWQ9ITEsdGhpcy5faXNJbml0aWFsaXplZD0hMSx0aGlzLl9nbG9iYWxPcHRpb25zPW98fHt9LHRoaXMuX3JpcHBsZVJlbmRlcmVyPW5ldyBkTCh0aGlzLGUsdCxuKX1nZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5fZGlzYWJsZWR9c2V0IGRpc2FibGVkKHQpe3QmJnRoaXMuZmFkZU91dEFsbE5vblBlcnNpc3RlbnQoKSx0aGlzLl9kaXNhYmxlZD10LHRoaXMuX3NldHVwVHJpZ2dlckV2ZW50c0lmRW5hYmxlZCgpfWdldCB0cmlnZ2VyKCl7cmV0dXJuIHRoaXMuX3RyaWdnZXJ8fHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudH1zZXQgdHJpZ2dlcih0KXt0aGlzLl90cmlnZ2VyPXQsdGhpcy5fc2V0dXBUcmlnZ2VyRXZlbnRzSWZFbmFibGVkKCl9bmdPbkluaXQoKXt0aGlzLl9pc0luaXRpYWxpemVkPSEwLHRoaXMuX3NldHVwVHJpZ2dlckV2ZW50c0lmRW5hYmxlZCgpfW5nT25EZXN0cm95KCl7dGhpcy5fcmlwcGxlUmVuZGVyZXIuX3JlbW92ZVRyaWdnZXJFdmVudHMoKX1mYWRlT3V0QWxsKCl7dGhpcy5fcmlwcGxlUmVuZGVyZXIuZmFkZU91dEFsbCgpfWZhZGVPdXRBbGxOb25QZXJzaXN0ZW50KCl7dGhpcy5fcmlwcGxlUmVuZGVyZXIuZmFkZU91dEFsbE5vblBlcnNpc3RlbnQoKX1nZXQgcmlwcGxlQ29uZmlnKCl7cmV0dXJue2NlbnRlcmVkOnRoaXMuY2VudGVyZWQscmFkaXVzOnRoaXMucmFkaXVzLGNvbG9yOnRoaXMuY29sb3IsYW5pbWF0aW9uOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMuX2dsb2JhbE9wdGlvbnMuYW5pbWF0aW9uKSwiTm9vcEFuaW1hdGlvbnMiPT09dGhpcy5fYW5pbWF0aW9uTW9kZT97ZW50ZXJEdXJhdGlvbjowLGV4aXREdXJhdGlvbjowfTp7fSksdGhpcy5hbmltYXRpb24pLHRlcm1pbmF0ZU9uUG9pbnRlclVwOnRoaXMuX2dsb2JhbE9wdGlvbnMudGVybWluYXRlT25Qb2ludGVyVXB9fWdldCByaXBwbGVEaXNhYmxlZCgpe3JldHVybiB0aGlzLmRpc2FibGVkfHwhIXRoaXMuX2dsb2JhbE9wdGlvbnMuZGlzYWJsZWR9X3NldHVwVHJpZ2dlckV2ZW50c0lmRW5hYmxlZCgpeyF0aGlzLmRpc2FibGVkJiZ0aGlzLl9pc0luaXRpYWxpemVkJiZ0aGlzLl9yaXBwbGVSZW5kZXJlci5zZXR1cFRyaWdnZXJFdmVudHModGhpcy50cmlnZ2VyKX1sYXVuY2godCxlPTAsbil7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0P3RoaXMuX3JpcHBsZVJlbmRlcmVyLmZhZGVJblJpcHBsZSh0LGUsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMucmlwcGxlQ29uZmlnKSxuKSk6dGhpcy5fcmlwcGxlUmVuZGVyZXIuZmFkZUluUmlwcGxlKDAsMCxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5yaXBwbGVDb25maWcpLHQpKX19bUwuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG1MKShnZihLaCksZ2YobUMpLGdmKGNIKSxnZihwTCw4KSxnZihjayw4KSl9LG1MLsm1ZGlyPWhvKHt0eXBlOm1MLHNlbGVjdG9yczpbWyIiLCJtYXQtcmlwcGxlIiwiIl0sWyIiLCJtYXRSaXBwbGUiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtcmlwcGxlIl0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmY3UoIm1hdC1yaXBwbGUtdW5ib3VuZGVkIixuLnVuYm91bmRlZCl9LGlucHV0czp7cmFkaXVzOlsibWF0UmlwcGxlUmFkaXVzIiwicmFkaXVzIl0sZGlzYWJsZWQ6WyJtYXRSaXBwbGVEaXNhYmxlZCIsImRpc2FibGVkIl0sdHJpZ2dlcjpbIm1hdFJpcHBsZVRyaWdnZXIiLCJ0cmlnZ2VyIl0sY29sb3I6WyJtYXRSaXBwbGVDb2xvciIsImNvbG9yIl0sdW5ib3VuZGVkOlsibWF0UmlwcGxlVW5ib3VuZGVkIiwidW5ib3VuZGVkIl0sY2VudGVyZWQ6WyJtYXRSaXBwbGVDZW50ZXJlZCIsImNlbnRlcmVkIl0sYW5pbWF0aW9uOlsibWF0UmlwcGxlQW5pbWF0aW9uIiwiYW5pbWF0aW9uIl19LGV4cG9ydEFzOlsibWF0UmlwcGxlIl19KSxtTC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOktofSx7dHlwZTptQ30se3R5cGU6Y0h9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbcExdfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbY2tdfV19XSxtTC5wcm9wRGVjb3JhdG9ycz17Y29sb3I6W3t0eXBlOlJfLGFyZ3M6WyJtYXRSaXBwbGVDb2xvciJdfV0sdW5ib3VuZGVkOlt7dHlwZTpSXyxhcmdzOlsibWF0UmlwcGxlVW5ib3VuZGVkIl19XSxjZW50ZXJlZDpbe3R5cGU6Ul8sYXJnczpbIm1hdFJpcHBsZUNlbnRlcmVkIl19XSxyYWRpdXM6W3t0eXBlOlJfLGFyZ3M6WyJtYXRSaXBwbGVSYWRpdXMiXX1dLGFuaW1hdGlvbjpbe3R5cGU6Ul8sYXJnczpbIm1hdFJpcHBsZUFuaW1hdGlvbiJdfV0sZGlzYWJsZWQ6W3t0eXBlOlJfLGFyZ3M6WyJtYXRSaXBwbGVEaXNhYmxlZCJdfV0sdHJpZ2dlcjpbe3R5cGU6Ul8sYXJnczpbIm1hdFJpcHBsZVRyaWdnZXIiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKG1MLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IlttYXQtcmlwcGxlXSwgW21hdFJpcHBsZV0iLGV4cG9ydEFzOiJtYXRSaXBwbGUiLGhvc3Q6e2NsYXNzOiJtYXQtcmlwcGxlIiwiW2NsYXNzLm1hdC1yaXBwbGUtdW5ib3VuZGVkXSI6InVuYm91bmRlZCJ9fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6S2h9LHt0eXBlOm1DfSx7dHlwZTpjSH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltwTF19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltja119XX1dfSkse3JhZGl1czpbe3R5cGU6Ul8sYXJnczpbIm1hdFJpcHBsZVJhZGl1cyJdfV0sZGlzYWJsZWQ6W3t0eXBlOlJfLGFyZ3M6WyJtYXRSaXBwbGVEaXNhYmxlZCJdfV0sdHJpZ2dlcjpbe3R5cGU6Ul8sYXJnczpbIm1hdFJpcHBsZVRyaWdnZXIiXX1dLGNvbG9yOlt7dHlwZTpSXyxhcmdzOlsibWF0UmlwcGxlQ29sb3IiXX1dLHVuYm91bmRlZDpbe3R5cGU6Ul8sYXJnczpbIm1hdFJpcHBsZVVuYm91bmRlZCJdfV0sY2VudGVyZWQ6W3t0eXBlOlJfLGFyZ3M6WyJtYXRSaXBwbGVDZW50ZXJlZCJdfV0sYW5pbWF0aW9uOlt7dHlwZTpSXyxhcmdzOlsibWF0UmlwcGxlQW5pbWF0aW9uIl19XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgZkx7fWZMLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxmTCl9LGZMLsm1bW9kPWZvKHt0eXBlOmZMfSksZkwuybVpbmo9RG4oe2ltcG9ydHM6W1tORixkSF0sTkZdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihmTCxbe3R5cGU6TF8sYXJnczpbe2ltcG9ydHM6W05GLGRIXSxleHBvcnRzOlttTCxORl0sZGVjbGFyYXRpb25zOlttTF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhmTCx7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW21MXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltORixkSF19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bbUwsTkZdfX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgdUx7Y29uc3RydWN0b3IodCl7dGhpcy5fYW5pbWF0aW9uTW9kZT10LHRoaXMuc3RhdGU9InVuY2hlY2tlZCIsdGhpcy5kaXNhYmxlZD0hMX19dUwuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHVMKShnZihjayw4KSl9LHVMLsm1Y21wPXNvKHt0eXBlOnVMLHNlbGVjdG9yczpbWyJtYXQtcHNldWRvLWNoZWNrYm94Il1dLGhvc3RBdHRyczpbMSwibWF0LXBzZXVkby1jaGVja2JveCJdLGhvc3RWYXJzOjgsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJmN1KCJtYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUiLCJpbmRldGVybWluYXRlIj09PW4uc3RhdGUpKCJtYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQiLCJjaGVja2VkIj09PW4uc3RhdGUpKCJtYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIixuLmRpc2FibGVkKSgiX21hdC1hbmltYXRpb24tbm9vcGFibGUiLCJOb29wQW5pbWF0aW9ucyI9PT1uLl9hbmltYXRpb25Nb2RlKX0saW5wdXRzOntzdGF0ZToic3RhdGUiLGRpc2FibGVkOiJkaXNhYmxlZCJ9LGRlY2xzOjAsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXt9LHN0eWxlczpbJy5tYXQtcHNldWRvLWNoZWNrYm94e3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7Ym9yZGVyOjJweCBzb2xpZDtib3JkZXItcmFkaXVzOjJweDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXgtc2hyaW5rOjA7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgOTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpLGJhY2tncm91bmQtY29sb3IgOTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpfS5tYXQtcHNldWRvLWNoZWNrYm94OjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtvcGFjaXR5OjA7Y29udGVudDoiIjtib3JkZXItYm90dG9tOjJweCBzb2xpZCBjdXJyZW50Q29sb3I7dHJhbnNpdGlvbjpvcGFjaXR5IDkwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKX0ubWF0LXBzZXVkby1jaGVja2JveC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsLm1hdC1wc2V1ZG8tY2hlY2tib3gubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRle2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXBzZXVkby1jaGVja2JveHt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVye3RyYW5zaXRpb246bm9uZX0ubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0ubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlOjphZnRlcnt0b3A6NXB4O2xlZnQ6MXB4O3dpZHRoOjEwcHg7b3BhY2l0eToxO2JvcmRlci1yYWRpdXM6MnB4fS5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQ6OmFmdGVye3RvcDoyLjRweDtsZWZ0OjFweDt3aWR0aDo4cHg7aGVpZ2h0OjNweDtib3JkZXItbGVmdDoycHggc29saWQgY3VycmVudENvbG9yO3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTtvcGFjaXR5OjE7Ym94LXNpemluZzpjb250ZW50LWJveH1cbiddLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLHVMLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltja119XX1dLHVMLnByb3BEZWNvcmF0b3JzPXtzdGF0ZTpbe3R5cGU6Ul99XSxkaXNhYmxlZDpbe3R5cGU6Ul99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih1TCxbe3R5cGU6U18sYXJnczpbe2VuY2Fwc3VsYXRpb246V24uTm9uZSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNoLHNlbGVjdG9yOiJtYXQtcHNldWRvLWNoZWNrYm94Iix0ZW1wbGF0ZToiIixob3N0OntjbGFzczoibWF0LXBzZXVkby1jaGVja2JveCIsIltjbGFzcy5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGVdIjonc3RhdGUgPT09ICJpbmRldGVybWluYXRlIicsIltjbGFzcy5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWRdIjonc3RhdGUgPT09ICJjaGVja2VkIicsIltjbGFzcy5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkXSI6ImRpc2FibGVkIiwiW2NsYXNzLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlXSI6J19hbmltYXRpb25Nb2RlID09PSAiTm9vcEFuaW1hdGlvbnMiJ30sc3R5bGVzOlsnLm1hdC1wc2V1ZG8tY2hlY2tib3h7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtib3JkZXI6MnB4IHNvbGlkO2JvcmRlci1yYWRpdXM6MnB4O2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmU7ZmxleC1zaHJpbms6MDt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciA5MG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSksYmFja2dyb3VuZC1jb2xvciA5MG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSl9Lm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO29wYWNpdHk6MDtjb250ZW50OiIiO2JvcmRlci1ib3R0b206MnB4IHNvbGlkIGN1cnJlbnRDb2xvcjt0cmFuc2l0aW9uOm9wYWNpdHkgOTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpfS5tYXQtcHNldWRvLWNoZWNrYm94Lm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCwubWF0LXBzZXVkby1jaGVja2JveC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGV7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtcHNldWRvLWNoZWNrYm94e3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXBzZXVkby1jaGVja2JveDo6YWZ0ZXJ7dHJhbnNpdGlvbjpub25lfS5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGU6OmFmdGVye3RvcDo1cHg7bGVmdDoxcHg7d2lkdGg6MTBweDtvcGFjaXR5OjE7Ym9yZGVyLXJhZGl1czoycHh9Lm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZDo6YWZ0ZXJ7dG9wOjIuNHB4O2xlZnQ6MXB4O3dpZHRoOjhweDtoZWlnaHQ6M3B4O2JvcmRlci1sZWZ0OjJweCBzb2xpZCBjdXJyZW50Q29sb3I7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO29wYWNpdHk6MTtib3gtc2l6aW5nOmNvbnRlbnQtYm94fVxuJ119XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W2NrXX1dfV19KSx7c3RhdGU6W3t0eXBlOlJffV0sZGlzYWJsZWQ6W3t0eXBlOlJffV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIGdMe31nTC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Z0wpfSxnTC7JtW1vZD1mbyh7dHlwZTpnTH0pLGdMLsm1aW5qPURuKHtpbXBvcnRzOltbTkZdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZ0wsW3t0eXBlOkxfLGFyZ3M6W3tpbXBvcnRzOltORl0sZXhwb3J0czpbdUxdLGRlY2xhcmF0aW9uczpbdUxdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oZ0wse2RlY2xhcmF0aW9uczpbdUxdLGltcG9ydHM6W05GXSxleHBvcnRzOlt1TF19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IGhMPW5ldyBlcigiTUFUX09QVElPTl9QQVJFTlRfQ09NUE9ORU5UIiksYkw9ekYoY2xhc3N7fSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2xldCB5TD0wO2NsYXNzIF9MIGV4dGVuZHMgYkx7Y29uc3RydWN0b3IodCl7dmFyIGU7c3VwZXIoKSx0aGlzLl9sYWJlbElkPSJtYXQtb3B0Z3JvdXAtbGFiZWwtIit5TCsrLHRoaXMuX2luZXJ0PW51bGwhPT0oZT1udWxsPT10P3ZvaWQgMDp0LmluZXJ0R3JvdXBzKSYmdm9pZCAwIT09ZSYmZX19X0wuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fF9MKShnZihoTCw4KSl9LF9MLsm1ZGlyPWhvKHt0eXBlOl9MLGlucHV0czp7bGFiZWw6ImxhYmVsIn0sZmVhdHVyZXM6W1FwXX0pLF9MLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W2hMXX0se3R5cGU6QnJ9XX1dLF9MLnByb3BEZWNvcmF0b3JzPXtsYWJlbDpbe3R5cGU6Ul99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihfTCxbe3R5cGU6a199XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W2hMXX0se3R5cGU6QnJ9XX1dfSkse2xhYmVsOlt7dHlwZTpSX31dfSk7Y29uc3QgQ0w9bmV3IGVyKCJNYXRPcHRncm91cCIpO2NsYXNzIE1MIGV4dGVuZHMgX0x7fU1MLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1VYShNTCkpKShufHxNTCl9fSkoKSxNTC7JtWNtcD1zbyh7dHlwZTpNTCxzZWxlY3RvcnM6W1sibWF0LW9wdGdyb3VwIl1dLGhvc3RBdHRyczpbMSwibWF0LW9wdGdyb3VwIl0saG9zdFZhcnM6NSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmKHltKCJyb2xlIixuLl9pbmVydD9udWxsOiJncm91cCIpKCJhcmlhLWRpc2FibGVkIixuLl9pbmVydD9udWxsOm4uZGlzYWJsZWQudG9TdHJpbmcoKSkoImFyaWEtbGFiZWxsZWRieSIsbi5faW5lcnQ/bnVsbDpuLl9sYWJlbElkKSxjdSgibWF0LW9wdGdyb3VwLWRpc2FibGVkIixuLmRpc2FibGVkKSl9LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIn0sZXhwb3J0QXM6WyJtYXRPcHRncm91cCJdLGZlYXR1cmVzOltqaChbe3Byb3ZpZGU6Q0wsdXNlRXhpc3Rpbmc6TUx9XSksUXBdLG5nQ29udGVudFNlbGVjdG9yczpbIioiLCJtYXQtb3B0aW9uLCBuZy1jb250YWluZXIiXSxkZWNsczo0LHZhcnM6Mixjb25zdHM6W1siYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJtYXQtb3B0Z3JvdXAtbGFiZWwiLDMsImlkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihIZih3RiksQ2YoMCwic3BhbiIsMCksUHUoMSksRmYoMiksTWYoKSxGZigzLDEpKSwyJmUmJihiZigiaWQiLG4uX2xhYmVsSWQpLERjKDEpLGt1KCIiLG4ubGFiZWwsIiAiKSl9LHN0eWxlczpbIi5tYXQtb3B0Z3JvdXAtbGFiZWx7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6NDhweDtoZWlnaHQ6NDhweDtwYWRkaW5nOjAgMTZweDt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7bWF4LXdpZHRoOjEwMCU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpkZWZhdWx0fS5tYXQtb3B0Z3JvdXAtbGFiZWxbZGlzYWJsZWRde2N1cnNvcjpkZWZhdWx0fVtkaXI9cnRsXSAubWF0LW9wdGdyb3VwLWxhYmVse3RleHQtYWxpZ246cmlnaHR9Lm1hdC1vcHRncm91cC1sYWJlbCAubWF0LWljb257bWFyZ2luLXJpZ2h0OjE2cHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tYXQtb3B0Z3JvdXAtbGFiZWwgLm1hdC1pY29uIHN2Z3t2ZXJ0aWNhbC1hbGlnbjp0b3B9W2Rpcj1ydGxdIC5tYXQtb3B0Z3JvdXAtbGFiZWwgLm1hdC1pY29ue21hcmdpbi1sZWZ0OjE2cHg7bWFyZ2luLXJpZ2h0OjB9XG4iXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKE1MLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im1hdC1vcHRncm91cCIsZXhwb3J0QXM6Im1hdE9wdGdyb3VwIix0ZW1wbGF0ZTonPHNwYW4gY2xhc3M9Im1hdC1vcHRncm91cC1sYWJlbCIgYXJpYS1oaWRkZW49InRydWUiIFtpZF09Il9sYWJlbElkIj57eyBsYWJlbCB9fSA8bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9zcGFuPlxuPG5nLWNvbnRlbnQgc2VsZWN0PSJtYXQtb3B0aW9uLCBuZy1jb250YWluZXIiPjwvbmctY29udGVudD5cbicsZW5jYXBzdWxhdGlvbjpXbi5Ob25lLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2gsaW5wdXRzOlsiZGlzYWJsZWQiXSxob3N0OntjbGFzczoibWF0LW9wdGdyb3VwIiwiW2F0dHIucm9sZV0iOidfaW5lcnQgPyBudWxsIDogImdyb3VwIicsIlthdHRyLmFyaWEtZGlzYWJsZWRdIjoiX2luZXJ0ID8gbnVsbCA6IGRpc2FibGVkLnRvU3RyaW5nKCkiLCJbYXR0ci5hcmlhLWxhYmVsbGVkYnldIjoiX2luZXJ0ID8gbnVsbCA6IF9sYWJlbElkIiwiW2NsYXNzLm1hdC1vcHRncm91cC1kaXNhYmxlZF0iOiJkaXNhYmxlZCJ9LHByb3ZpZGVyczpbe3Byb3ZpZGU6Q0wsdXNlRXhpc3Rpbmc6TUx9XSxzdHlsZXM6WyIubWF0LW9wdGdyb3VwLWxhYmVse3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2xpbmUtaGVpZ2h0OjQ4cHg7aGVpZ2h0OjQ4cHg7cGFkZGluZzowIDE2cHg7dGV4dC1hbGlnbjpsZWZ0O3RleHQtZGVjb3JhdGlvbjpub25lO21heC13aWR0aDoxMDAlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6ZGVmYXVsdH0ubWF0LW9wdGdyb3VwLWxhYmVsW2Rpc2FibGVkXXtjdXJzb3I6ZGVmYXVsdH1bZGlyPXJ0bF0gLm1hdC1vcHRncm91cC1sYWJlbHt0ZXh0LWFsaWduOnJpZ2h0fS5tYXQtb3B0Z3JvdXAtbGFiZWwgLm1hdC1pY29ue21hcmdpbi1yaWdodDoxNnB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ubWF0LW9wdGdyb3VwLWxhYmVsIC5tYXQtaWNvbiBzdmd7dmVydGljYWwtYWxpZ246dG9wfVtkaXI9cnRsXSAubWF0LW9wdGdyb3VwLWxhYmVsIC5tYXQtaWNvbnttYXJnaW4tbGVmdDoxNnB4O21hcmdpbi1yaWdodDowfVxuIl19XX1dLG51bGwsbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpsZXQgdkw9MDtjbGFzcyB4THtjb25zdHJ1Y3Rvcih0LGU9ITEpe3RoaXMuc291cmNlPXQsdGhpcy5pc1VzZXJJbnB1dD1lfX1jbGFzcyBPTHtjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLl9lbGVtZW50PXQsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9ZSx0aGlzLl9wYXJlbnQ9bix0aGlzLmdyb3VwPW8sdGhpcy5fc2VsZWN0ZWQ9ITEsdGhpcy5fYWN0aXZlPSExLHRoaXMuX2Rpc2FibGVkPSExLHRoaXMuX21vc3RSZWNlbnRWaWV3VmFsdWU9IiIsdGhpcy5pZD0ibWF0LW9wdGlvbi0iK3ZMKyssdGhpcy5vblNlbGVjdGlvbkNoYW5nZT1uZXcgU3ksdGhpcy5fc3RhdGVDaGFuZ2VzPW5ldyBCfWdldCBtdWx0aXBsZSgpe3JldHVybiB0aGlzLl9wYXJlbnQmJnRoaXMuX3BhcmVudC5tdWx0aXBsZX1nZXQgc2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy5fc2VsZWN0ZWR9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuZ3JvdXAmJnRoaXMuZ3JvdXAuZGlzYWJsZWR8fHRoaXMuX2Rpc2FibGVkfXNldCBkaXNhYmxlZCh0KXt0aGlzLl9kaXNhYmxlZD1lSCh0KX1nZXQgZGlzYWJsZVJpcHBsZSgpe3JldHVybiB0aGlzLl9wYXJlbnQmJnRoaXMuX3BhcmVudC5kaXNhYmxlUmlwcGxlfWdldCBhY3RpdmUoKXtyZXR1cm4gdGhpcy5fYWN0aXZlfWdldCB2aWV3VmFsdWUoKXtyZXR1cm4odGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS50ZXh0Q29udGVudHx8IiIpLnRyaW0oKX1zZWxlY3QoKXt0aGlzLl9zZWxlY3RlZHx8KHRoaXMuX3NlbGVjdGVkPSEwLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpLHRoaXMuX2VtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudCgpKX1kZXNlbGVjdCgpe3RoaXMuX3NlbGVjdGVkJiYodGhpcy5fc2VsZWN0ZWQ9ITEsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCksdGhpcy5fZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCkpfWZvY3VzKHQsZSl7Y29uc3Qgbj10aGlzLl9nZXRIb3N0RWxlbWVudCgpOyJmdW5jdGlvbiI9PXR5cGVvZiBuLmZvY3VzJiZuLmZvY3VzKGUpfXNldEFjdGl2ZVN0eWxlcygpe3RoaXMuX2FjdGl2ZXx8KHRoaXMuX2FjdGl2ZT0hMCx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSl9c2V0SW5hY3RpdmVTdHlsZXMoKXt0aGlzLl9hY3RpdmUmJih0aGlzLl9hY3RpdmU9ITEsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfWdldExhYmVsKCl7cmV0dXJuIHRoaXMudmlld1ZhbHVlfV9oYW5kbGVLZXlkb3duKHQpe3Qua2V5Q29kZSE9PVhJJiZ0LmtleUNvZGUhPT1KSXx8dEgodCl8fCh0aGlzLl9zZWxlY3RWaWFJbnRlcmFjdGlvbigpLHQucHJldmVudERlZmF1bHQoKSl9X3NlbGVjdFZpYUludGVyYWN0aW9uKCl7dGhpcy5kaXNhYmxlZHx8KHRoaXMuX3NlbGVjdGVkPSF0aGlzLm11bHRpcGxlfHwhdGhpcy5fc2VsZWN0ZWQsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCksdGhpcy5fZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCEwKSl9X2dldEFyaWFTZWxlY3RlZCgpe3JldHVybiB0aGlzLnNlbGVjdGVkfHwhdGhpcy5tdWx0aXBsZSYmbnVsbH1fZ2V0VGFiSW5kZXgoKXtyZXR1cm4gdGhpcy5kaXNhYmxlZD8iLTEiOiIwIn1fZ2V0SG9zdEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50fW5nQWZ0ZXJWaWV3Q2hlY2tlZCgpe2lmKHRoaXMuX3NlbGVjdGVkKXtjb25zdCB0PXRoaXMudmlld1ZhbHVlO3QhPT10aGlzLl9tb3N0UmVjZW50Vmlld1ZhbHVlJiYodGhpcy5fbW9zdFJlY2VudFZpZXdWYWx1ZT10LHRoaXMuX3N0YXRlQ2hhbmdlcy5uZXh0KCkpfX1uZ09uRGVzdHJveSgpe3RoaXMuX3N0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpfV9lbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnQodD0hMSl7dGhpcy5vblNlbGVjdGlvbkNoYW5nZS5lbWl0KG5ldyB4TCh0aGlzLHQpKX19T0wuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE9MKShnZihLaCksZ2YoT2IpLGdmKHZvaWQgMCksZ2YoX0wpKX0sT0wuybVkaXI9aG8oe3R5cGU6T0wsaW5wdXRzOntpZDoiaWQiLGRpc2FibGVkOiJkaXNhYmxlZCIsdmFsdWU6InZhbHVlIn0sb3V0cHV0czp7b25TZWxlY3Rpb25DaGFuZ2U6Im9uU2VsZWN0aW9uQ2hhbmdlIn19KSxPTC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOktofSx7dHlwZTpPYn0se3R5cGU6dm9pZCAwfSx7dHlwZTpfTH1dLE9MLnByb3BEZWNvcmF0b3JzPXt2YWx1ZTpbe3R5cGU6Ul99XSxpZDpbe3R5cGU6Ul99XSxkaXNhYmxlZDpbe3R5cGU6Ul99XSxvblNlbGVjdGlvbkNoYW5nZTpbe3R5cGU6RV99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihPTCxbe3R5cGU6a199XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6S2h9LHt0eXBlOk9ifSx7dHlwZTp2b2lkIDB9LHt0eXBlOl9MfV19KSx7aWQ6W3t0eXBlOlJffV0sb25TZWxlY3Rpb25DaGFuZ2U6W3t0eXBlOkVffV0sZGlzYWJsZWQ6W3t0eXBlOlJffV0sdmFsdWU6W3t0eXBlOlJffV19KTtjbGFzcyBQTCBleHRlbmRzIE9Me2NvbnN0cnVjdG9yKHQsZSxuLG8pe3N1cGVyKHQsZSxuLG8pfX1mdW5jdGlvbiB3TCh0LGUsbil7aWYobi5sZW5ndGgpe2xldCBvPWUudG9BcnJheSgpLGk9bi50b0FycmF5KCksYT0wO2ZvcihsZXQgZT0wO2U8dCsxO2UrKylvW2VdLmdyb3VwJiZvW2VdLmdyb3VwPT09aVthXSYmYSsrO3JldHVybiBhfXJldHVybiAwfWZ1bmN0aW9uIGtMKHQsZSxuLG8pe3JldHVybiB0PG4/dDp0K2U+bitvP01hdGgubWF4KDAsdC1vK2UpOm59Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL1BMLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxQTCkoZ2YoS2gpLGdmKE9iKSxnZihoTCw4KSxnZihDTCw4KSl9LFBMLsm1Y21wPXNvKHt0eXBlOlBMLHNlbGVjdG9yczpbWyJtYXQtb3B0aW9uIl1dLGhvc3RBdHRyczpbInJvbGUiLCJvcHRpb24iLDEsIm1hdC1vcHRpb24iLCJtYXQtZm9jdXMtaW5kaWNhdG9yIl0saG9zdFZhcnM6MTIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlJmKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fc2VsZWN0VmlhSW50ZXJhY3Rpb24oKX0pKSgia2V5ZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2hhbmRsZUtleWRvd24oZSl9KSksMiZlJiYoY2coImlkIixuLmlkKSx5bSgidGFiaW5kZXgiLG4uX2dldFRhYkluZGV4KCkpKCJhcmlhLXNlbGVjdGVkIixuLl9nZXRBcmlhU2VsZWN0ZWQoKSkoImFyaWEtZGlzYWJsZWQiLG4uZGlzYWJsZWQudG9TdHJpbmcoKSksY3UoIm1hdC1zZWxlY3RlZCIsbi5zZWxlY3RlZCkoIm1hdC1vcHRpb24tbXVsdGlwbGUiLG4ubXVsdGlwbGUpKCJtYXQtYWN0aXZlIixuLmFjdGl2ZSkoIm1hdC1vcHRpb24tZGlzYWJsZWQiLG4uZGlzYWJsZWQpKX0sZXhwb3J0QXM6WyJtYXRPcHRpb24iXSxmZWF0dXJlczpbUXBdLG5nQ29udGVudFNlbGVjdG9yczpbIioiXSxkZWNsczo1LHZhcnM6NCxjb25zdHM6W1siY2xhc3MiLCJtYXQtb3B0aW9uLXBzZXVkby1jaGVja2JveCIsMywic3RhdGUiLCJkaXNhYmxlZCIsNCwibmdJZiJdLFsxLCJtYXQtb3B0aW9uLXRleHQiXSxbImNsYXNzIiwiY2RrLXZpc3VhbGx5LWhpZGRlbiIsNCwibmdJZiJdLFsibWF0LXJpcHBsZSIsIiIsMSwibWF0LW9wdGlvbi1yaXBwbGUiLDMsIm1hdFJpcHBsZVRyaWdnZXIiLCJtYXRSaXBwbGVEaXNhYmxlZCJdLFsxLCJtYXQtb3B0aW9uLXBzZXVkby1jaGVja2JveCIsMywic3RhdGUiLCJkaXNhYmxlZCJdLFsxLCJjZGstdmlzdWFsbHktaGlkZGVuIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihIZigpLEhtKDAsa0YsMSwyLCJtYXQtcHNldWRvLWNoZWNrYm94IiwwKSxDZigxLCJzcGFuIiwxKSxGZigyKSxNZigpLEhtKDMsU0YsMiwxLCJzcGFuIiwyKSx2Zig0LCJkaXYiLDMpKSwyJmUmJihiZigibmdJZiIsbi5tdWx0aXBsZSksRGMoMyksYmYoIm5nSWYiLG4uZ3JvdXAmJm4uZ3JvdXAuX2luZXJ0KSxEYygxKSxiZigibWF0UmlwcGxlVHJpZ2dlciIsbi5fZ2V0SG9zdEVsZW1lbnQoKSkoIm1hdFJpcHBsZURpc2FibGVkIixuLmRpc2FibGVkfHxuLmRpc2FibGVSaXBwbGUpKX0sZGlyZWN0aXZlczpbUHYsbUwsdUxdLHN0eWxlczpbIi5tYXQtb3B0aW9ue3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2xpbmUtaGVpZ2h0OjQ4cHg7aGVpZ2h0OjQ4cHg7cGFkZGluZzowIDE2cHg7dGV4dC1hbGlnbjpsZWZ0O3RleHQtZGVjb3JhdGlvbjpub25lO21heC13aWR0aDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O21heC13aWR0aDoxMDAlO2JveC1zaXppbmc6Ym9yZGVyLWJveDthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fS5tYXQtb3B0aW9uW2Rpc2FibGVkXXtjdXJzb3I6ZGVmYXVsdH1bZGlyPXJ0bF0gLm1hdC1vcHRpb257dGV4dC1hbGlnbjpyaWdodH0ubWF0LW9wdGlvbiAubWF0LWljb257bWFyZ2luLXJpZ2h0OjE2cHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tYXQtb3B0aW9uIC5tYXQtaWNvbiBzdmd7dmVydGljYWwtYWxpZ246dG9wfVtkaXI9cnRsXSAubWF0LW9wdGlvbiAubWF0LWljb257bWFyZ2luLWxlZnQ6MTZweDttYXJnaW4tcmlnaHQ6MH0ubWF0LW9wdGlvblthcmlhLWRpc2FibGVkPXRydWVdey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6ZGVmYXVsdH0ubWF0LW9wdGdyb3VwIC5tYXQtb3B0aW9uOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSl7cGFkZGluZy1sZWZ0OjMycHh9W2Rpcj1ydGxdIC5tYXQtb3B0Z3JvdXAgLm1hdC1vcHRpb246bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKXtwYWRkaW5nLWxlZnQ6MTZweDtwYWRkaW5nLXJpZ2h0OjMycHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW9wdGlvbnttYXJnaW46MCAxcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW9wdGlvbi5tYXQtYWN0aXZle2JvcmRlcjpzb2xpZCAxcHggY3VycmVudENvbG9yO21hcmdpbjowfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1vcHRpb25bYXJpYS1kaXNhYmxlZD10cnVlXXtvcGFjaXR5Oi41fS5tYXQtb3B0aW9uLXRleHR7ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmxleC1ncm93OjE7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lm1hdC1vcHRpb24gLm1hdC1vcHRpb24tcmlwcGxle3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmV9Lm1hdC1vcHRpb24tcHNldWRvLWNoZWNrYm94e21hcmdpbi1yaWdodDo4cHh9W2Rpcj1ydGxdIC5tYXQtb3B0aW9uLXBzZXVkby1jaGVja2JveHttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0OjB9XG4iXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxQTC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOktofSx7dHlwZTpPYn0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltoTF19XX0se3R5cGU6TUwsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W0NMXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihQTCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJtYXQtb3B0aW9uIixleHBvcnRBczoibWF0T3B0aW9uIixob3N0Ontyb2xlOiJvcHRpb24iLCJbYXR0ci50YWJpbmRleF0iOiJfZ2V0VGFiSW5kZXgoKSIsIltjbGFzcy5tYXQtc2VsZWN0ZWRdIjoic2VsZWN0ZWQiLCJbY2xhc3MubWF0LW9wdGlvbi1tdWx0aXBsZV0iOiJtdWx0aXBsZSIsIltjbGFzcy5tYXQtYWN0aXZlXSI6ImFjdGl2ZSIsIltpZF0iOiJpZCIsIlthdHRyLmFyaWEtc2VsZWN0ZWRdIjoiX2dldEFyaWFTZWxlY3RlZCgpIiwiW2F0dHIuYXJpYS1kaXNhYmxlZF0iOiJkaXNhYmxlZC50b1N0cmluZygpIiwiW2NsYXNzLm1hdC1vcHRpb24tZGlzYWJsZWRdIjoiZGlzYWJsZWQiLCIoY2xpY2spIjoiX3NlbGVjdFZpYUludGVyYWN0aW9uKCkiLCIoa2V5ZG93bikiOiJfaGFuZGxlS2V5ZG93bigkZXZlbnQpIixjbGFzczoibWF0LW9wdGlvbiBtYXQtZm9jdXMtaW5kaWNhdG9yIn0sdGVtcGxhdGU6JzxtYXQtcHNldWRvLWNoZWNrYm94ICpuZ0lmPSJtdWx0aXBsZSIgY2xhc3M9Im1hdC1vcHRpb24tcHNldWRvLWNoZWNrYm94IlxuICAgIFtzdGF0ZV09InNlbGVjdGVkID8gXCdjaGVja2VkXCcgOiBcJ3VuY2hlY2tlZFwnIiBbZGlzYWJsZWRdPSJkaXNhYmxlZCI+PC9tYXQtcHNldWRvLWNoZWNrYm94PlxuXG48c3BhbiBjbGFzcz0ibWF0LW9wdGlvbi10ZXh0Ij48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9zcGFuPlxuXG5ceDNjIS0tIFNlZSBhMTF5IG5vdGVzIGluc2lkZSBvcHRncm91cC50cyBmb3IgY29udGV4dCBiZWhpbmQgdGhpcyBlbGVtZW50LiAtLVx4M2VcbjxzcGFuIGNsYXNzPSJjZGstdmlzdWFsbHktaGlkZGVuIiAqbmdJZj0iZ3JvdXAgJiYgZ3JvdXAuX2luZXJ0Ij4oe3sgZ3JvdXAubGFiZWwgfX0pPC9zcGFuPlxuXG48ZGl2IGNsYXNzPSJtYXQtb3B0aW9uLXJpcHBsZSIgbWF0LXJpcHBsZVxuICAgICBbbWF0UmlwcGxlVHJpZ2dlcl09Il9nZXRIb3N0RWxlbWVudCgpIlxuICAgICBbbWF0UmlwcGxlRGlzYWJsZWRdPSJkaXNhYmxlZCB8fCBkaXNhYmxlUmlwcGxlIj5cbjwvZGl2PlxuJyxlbmNhcHN1bGF0aW9uOlduLk5vbmUsY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaCxzdHlsZXM6WyIubWF0LW9wdGlvbnt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDo0OHB4O2hlaWdodDo0OHB4O3BhZGRpbmc6MCAxNnB4O3RleHQtYWxpZ246bGVmdDt0ZXh0LWRlY29yYXRpb246bm9uZTttYXgtd2lkdGg6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdzttYXgtd2lkdGg6MTAwJTtib3gtc2l6aW5nOmJvcmRlci1ib3g7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0ubWF0LW9wdGlvbltkaXNhYmxlZF17Y3Vyc29yOmRlZmF1bHR9W2Rpcj1ydGxdIC5tYXQtb3B0aW9ue3RleHQtYWxpZ246cmlnaHR9Lm1hdC1vcHRpb24gLm1hdC1pY29ue21hcmdpbi1yaWdodDoxNnB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ubWF0LW9wdGlvbiAubWF0LWljb24gc3Zne3ZlcnRpY2FsLWFsaWduOnRvcH1bZGlyPXJ0bF0gLm1hdC1vcHRpb24gLm1hdC1pY29ue21hcmdpbi1sZWZ0OjE2cHg7bWFyZ2luLXJpZ2h0OjB9Lm1hdC1vcHRpb25bYXJpYS1kaXNhYmxlZD10cnVlXXstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7Y3Vyc29yOmRlZmF1bHR9Lm1hdC1vcHRncm91cCAubWF0LW9wdGlvbjpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpe3BhZGRpbmctbGVmdDozMnB4fVtkaXI9cnRsXSAubWF0LW9wdGdyb3VwIC5tYXQtb3B0aW9uOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSl7cGFkZGluZy1sZWZ0OjE2cHg7cGFkZGluZy1yaWdodDozMnB4fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1vcHRpb257bWFyZ2luOjAgMXB4fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1vcHRpb24ubWF0LWFjdGl2ZXtib3JkZXI6c29saWQgMXB4IGN1cnJlbnRDb2xvcjttYXJnaW46MH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtb3B0aW9uW2FyaWEtZGlzYWJsZWQ9dHJ1ZV17b3BhY2l0eTouNX0ubWF0LW9wdGlvbi10ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZsZXgtZ3JvdzoxO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5tYXQtb3B0aW9uIC5tYXQtb3B0aW9uLXJpcHBsZXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lfS5tYXQtb3B0aW9uLXBzZXVkby1jaGVja2JveHttYXJnaW4tcmlnaHQ6OHB4fVtkaXI9cnRsXSAubWF0LW9wdGlvbi1wc2V1ZG8tY2hlY2tib3h7bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDowfVxuIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpLaH0se3R5cGU6T2J9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbaExdfV19LHt0eXBlOk1MLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltDTF19XX1dfSksbnVsbCk7Y2xhc3MgU0x7fVNMLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxTTCl9LFNMLsm1bW9kPWZvKHt0eXBlOlNMfSksU0wuybVpbmo9RG4oe2ltcG9ydHM6W1tmTCxyeCxORixnTF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihTTCxbe3R5cGU6TF8sYXJnczpbe2ltcG9ydHM6W2ZMLHJ4LE5GLGdMXSxleHBvcnRzOltQTCxNTF0sZGVjbGFyYXRpb25zOltQTCxNTF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhTTCx7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW1BMLE1MXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltmTCxyeCxORixnTF19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bUEwsTUxdfX0pO2NvbnN0IERMPVsibWF0LWJ1dHRvbiIsIiJdLFJMPVsiKiJdLEVMPSIubWF0LWJ1dHRvbiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtaWNvbi1idXR0b24gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5OjB9Lm1hdC1idXR0b246aG92ZXI6bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtc3Ryb2tlZC1idXR0b246aG92ZXI6bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjA0fUBtZWRpYShob3Zlcjogbm9uZSl7Lm1hdC1idXR0b246aG92ZXI6bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtc3Ryb2tlZC1idXR0b246aG92ZXI6bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6MH19Lm1hdC1idXR0b24sLm1hdC1pY29uLWJ1dHRvbiwubWF0LXN0cm9rZWQtYnV0dG9uLC5tYXQtZmxhdC1idXR0b257Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmU7Ym9yZGVyOm5vbmU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MDttaW4td2lkdGg6NjRweDtsaW5lLWhlaWdodDozNnB4O3BhZGRpbmc6MCAxNnB4O2JvcmRlci1yYWRpdXM6NHB4O292ZXJmbG93OnZpc2libGV9Lm1hdC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsLm1hdC1pY29uLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwubWF0LXN0cm9rZWQtYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLC5tYXQtZmxhdC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Lm1hdC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LWljb24tYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtZmxhdC1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0ubWF0LWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LWljb24tYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1pY29uLWJ1dHRvbi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtc3Ryb2tlZC1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtZmxhdC1idXR0b24uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LWZsYXQtYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4xMn0ubWF0LWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwubWF0LWljb24tYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLC5tYXQtc3Ryb2tlZC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsLm1hdC1mbGF0LWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH0ubWF0LXJhaXNlZC1idXR0b257Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmU7Ym9yZGVyOm5vbmU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MDttaW4td2lkdGg6NjRweDtsaW5lLWhlaWdodDozNnB4O3BhZGRpbmc6MCAxNnB4O2JvcmRlci1yYWRpdXM6NHB4O292ZXJmbG93OnZpc2libGU7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO3RyYW5zaXRpb246YmFja2dyb3VuZCA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxib3gtc2hhZG93IDI4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSl9Lm1hdC1yYWlzZWQtYnV0dG9uOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtcmFpc2VkLWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtcmFpc2VkLWJ1dHRvbi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTouMTJ9Lm1hdC1yYWlzZWQtYnV0dG9uOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtcmFpc2VkLWJ1dHRvbnt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC1zdHJva2VkLWJ1dHRvbntib3JkZXI6MXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtwYWRkaW5nOjAgMTVweDtsaW5lLWhlaWdodDozNHB4fS5tYXQtc3Ryb2tlZC1idXR0b24gLm1hdC1idXR0b24tcmlwcGxlLm1hdC1yaXBwbGUsLm1hdC1zdHJva2VkLWJ1dHRvbiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e3RvcDotMXB4O2xlZnQ6LTFweDtyaWdodDotMXB4O2JvdHRvbTotMXB4fS5tYXQtZmFie2JveC1zaXppbmc6Ym9yZGVyLWJveDtwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZTpub25lO2JvcmRlcjpub25lOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDtkaXNwbGF5OmlubGluZS1ibG9jazt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjA7bWluLXdpZHRoOjY0cHg7bGluZS1oZWlnaHQ6MzZweDtwYWRkaW5nOjAgMTZweDtib3JkZXItcmFkaXVzOjRweDtvdmVyZmxvdzp2aXNpYmxlO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAwLCAwKTt0cmFuc2l0aW9uOmJhY2tncm91bmQgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksYm94LXNoYWRvdyAyODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO21pbi13aWR0aDowO2JvcmRlci1yYWRpdXM6NTAlO3dpZHRoOjU2cHg7aGVpZ2h0OjU2cHg7cGFkZGluZzowO2ZsZXgtc2hyaW5rOjB9Lm1hdC1mYWI6Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Lm1hdC1mYWIubWF0LWJ1dHRvbi1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0ubWF0LWZhYi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtZmFiLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4xMn0ubWF0LWZhYjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LWZhYnt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC1mYWIgLm1hdC1idXR0b24td3JhcHBlcntwYWRkaW5nOjE2cHggMDtkaXNwbGF5OmlubGluZS1ibG9jaztsaW5lLWhlaWdodDoyNHB4fS5tYXQtbWluaS1mYWJ7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmU7Ym9yZGVyOm5vbmU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MDttaW4td2lkdGg6NjRweDtsaW5lLWhlaWdodDozNnB4O3BhZGRpbmc6MCAxNnB4O2JvcmRlci1yYWRpdXM6NHB4O292ZXJmbG93OnZpc2libGU7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO3RyYW5zaXRpb246YmFja2dyb3VuZCA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxib3gtc2hhZG93IDI4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7bWluLXdpZHRoOjA7Ym9yZGVyLXJhZGl1czo1MCU7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtwYWRkaW5nOjA7ZmxleC1zaHJpbms6MH0ubWF0LW1pbmktZmFiOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5tYXQtbWluaS1mYWIubWF0LWJ1dHRvbi1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0ubWF0LW1pbmktZmFiLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1taW5pLWZhYi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTouMTJ9Lm1hdC1taW5pLWZhYjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LW1pbmktZmFie3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LW1pbmktZmFiIC5tYXQtYnV0dG9uLXdyYXBwZXJ7cGFkZGluZzo4cHggMDtkaXNwbGF5OmlubGluZS1ibG9jaztsaW5lLWhlaWdodDoyNHB4fS5tYXQtaWNvbi1idXR0b257cGFkZGluZzowO21pbi13aWR0aDowO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7ZmxleC1zaHJpbms6MDtsaW5lLWhlaWdodDo0MHB4O2JvcmRlci1yYWRpdXM6NTAlfS5tYXQtaWNvbi1idXR0b24gaSwubWF0LWljb24tYnV0dG9uIC5tYXQtaWNvbntsaW5lLWhlaWdodDoyNHB4fS5tYXQtYnV0dG9uLXJpcHBsZS5tYXQtcmlwcGxlLC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6bm9uZTtib3JkZXItcmFkaXVzOmluaGVyaXR9Lm1hdC1idXR0b24tcmlwcGxlLm1hdC1yaXBwbGU6bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDIwMG1zIGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKSxiYWNrZ3JvdW5kLWNvbG9yIDIwMG1zIGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXt0cmFuc2l0aW9uOm5vbmV9Lm1hdC1idXR0b24tcmlwcGxlLXJvdW5ke2JvcmRlci1yYWRpdXM6NTAlO3otaW5kZXg6MX0ubWF0LWJ1dHRvbiAubWF0LWJ1dHRvbi13cmFwcGVyPiosLm1hdC1mbGF0LWJ1dHRvbiAubWF0LWJ1dHRvbi13cmFwcGVyPiosLm1hdC1zdHJva2VkLWJ1dHRvbiAubWF0LWJ1dHRvbi13cmFwcGVyPiosLm1hdC1yYWlzZWQtYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LWljb24tYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LWZhYiAubWF0LWJ1dHRvbi13cmFwcGVyPiosLm1hdC1taW5pLWZhYiAubWF0LWJ1dHRvbi13cmFwcGVyPip7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tYXQtZm9ybS1maWVsZDpub3QoLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5KSAubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbi1idXR0b24sLm1hdC1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kpIC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbntkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2ZvbnQtc2l6ZTppbmhlcml0O3dpZHRoOjIuNWVtO2hlaWdodDoyLjVlbX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mbGF0LWJ1dHRvbiwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtcmFpc2VkLWJ1dHRvbiwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtaWNvbi1idXR0b24sLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZhYiwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtbWluaS1mYWJ7b3V0bGluZTpzb2xpZCAxcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi1iYXNlLmNkay1rZXlib2FyZC1mb2N1c2VkLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24tYmFzZS5jZGstcHJvZ3JhbS1mb2N1c2Vke291dGxpbmU6c29saWQgM3B4fVxuIixBTD1bIm1hdC1idXR0b24iLCJtYXQtZmxhdC1idXR0b24iLCJtYXQtaWNvbi1idXR0b24iLCJtYXQtcmFpc2VkLWJ1dHRvbiIsIm1hdC1zdHJva2VkLWJ1dHRvbiIsIm1hdC1taW5pLWZhYiIsIm1hdC1mYWIiXSxUTD1JRih6RihIRihjbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLl9lbGVtZW50UmVmPXR9fSkpKTtjbGFzcyBOTCBleHRlbmRzIFRMe2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcih0KSx0aGlzLl9mb2N1c01vbml0b3I9ZSx0aGlzLl9hbmltYXRpb25Nb2RlPW4sdGhpcy5pc1JvdW5kQnV0dG9uPXRoaXMuX2hhc0hvc3RBdHRyaWJ1dGVzKCJtYXQtZmFiIiwibWF0LW1pbmktZmFiIiksdGhpcy5pc0ljb25CdXR0b249dGhpcy5faGFzSG9zdEF0dHJpYnV0ZXMoIm1hdC1pY29uLWJ1dHRvbiIpO2Zvcihjb25zdCB0IG9mIEFMKXRoaXMuX2hhc0hvc3RBdHRyaWJ1dGVzKHQpJiZ0aGlzLl9nZXRIb3N0RWxlbWVudCgpLmNsYXNzTGlzdC5hZGQodCk7dC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoIm1hdC1idXR0b24tYmFzZSIpLHRoaXMuaXNSb3VuZEJ1dHRvbiYmKHRoaXMuY29sb3I9ImFjY2VudCIpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsZW1lbnRSZWYsITApfW5nT25EZXN0cm95KCl7dGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYpfWZvY3VzKHQsZSl7dD90aGlzLl9mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5fZ2V0SG9zdEVsZW1lbnQoKSx0LGUpOnRoaXMuX2dldEhvc3RFbGVtZW50KCkuZm9jdXMoZSl9X2dldEhvc3RFbGVtZW50KCl7cmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudH1faXNSaXBwbGVEaXNhYmxlZCgpe3JldHVybiB0aGlzLmRpc2FibGVSaXBwbGV8fHRoaXMuZGlzYWJsZWR9X2hhc0hvc3RBdHRyaWJ1dGVzKC4uLnQpe3JldHVybiB0LnNvbWUoKHQ9PnRoaXMuX2dldEhvc3RFbGVtZW50KCkuaGFzQXR0cmlidXRlKHQpKSl9fU5MLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxOTCkoZ2YoS2gpLGdmKGZGKSxnZihjayw4KSl9LE5MLsm1Y21wPXNvKHt0eXBlOk5MLHNlbGVjdG9yczpbWyJidXR0b24iLCJtYXQtYnV0dG9uIiwiIl0sWyJidXR0b24iLCJtYXQtcmFpc2VkLWJ1dHRvbiIsIiJdLFsiYnV0dG9uIiwibWF0LWljb24tYnV0dG9uIiwiIl0sWyJidXR0b24iLCJtYXQtZmFiIiwiIl0sWyJidXR0b24iLCJtYXQtbWluaS1mYWIiLCIiXSxbImJ1dHRvbiIsIm1hdC1zdHJva2VkLWJ1dHRvbiIsIiJdLFsiYnV0dG9uIiwibWF0LWZsYXQtYnV0dG9uIiwiIl1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiZWeShtTCw1KSwyJmUpe2xldCB0O0J5KHQ9VXkoKSkmJihuLnJpcHBsZT10LmZpcnN0KX19LGhvc3RBdHRyczpbMSwibWF0LWZvY3VzLWluZGljYXRvciJdLGhvc3RWYXJzOjUsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJih5bSgiZGlzYWJsZWQiLG4uZGlzYWJsZWR8fG51bGwpLGN1KCJfbWF0LWFuaW1hdGlvbi1ub29wYWJsZSIsIk5vb3BBbmltYXRpb25zIj09PW4uX2FuaW1hdGlvbk1vZGUpKCJtYXQtYnV0dG9uLWRpc2FibGVkIixuLmRpc2FibGVkKSl9LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIixkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIixjb2xvcjoiY29sb3IifSxleHBvcnRBczpbIm1hdEJ1dHRvbiJdLGZlYXR1cmVzOltRcF0sYXR0cnM6REwsbmdDb250ZW50U2VsZWN0b3JzOlJMLGRlY2xzOjQsdmFyczo1LGNvbnN0czpbWzEsIm1hdC1idXR0b24td3JhcHBlciJdLFsibWF0UmlwcGxlIiwiIiwxLCJtYXQtYnV0dG9uLXJpcHBsZSIsMywibWF0UmlwcGxlRGlzYWJsZWQiLCJtYXRSaXBwbGVDZW50ZXJlZCIsIm1hdFJpcHBsZVRyaWdnZXIiXSxbMSwibWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5Il1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihIZigpLENmKDAsInNwYW4iLDApLEZmKDEpLE1mKCksdmYoMiwic3BhbiIsMSksdmYoMywic3BhbiIsMikpLDImZSYmKERjKDIpLGN1KCJtYXQtYnV0dG9uLXJpcHBsZS1yb3VuZCIsbi5pc1JvdW5kQnV0dG9ufHxuLmlzSWNvbkJ1dHRvbiksYmYoIm1hdFJpcHBsZURpc2FibGVkIixuLl9pc1JpcHBsZURpc2FibGVkKCkpKCJtYXRSaXBwbGVDZW50ZXJlZCIsbi5pc0ljb25CdXR0b24pKCJtYXRSaXBwbGVUcmlnZ2VyIixuLl9nZXRIb3N0RWxlbWVudCgpKSl9LGRpcmVjdGl2ZXM6W21MXSxzdHlsZXM6W0VMXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxOTC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOktofSx7dHlwZTpmRn0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltja119XX1dLE5MLnByb3BEZWNvcmF0b3JzPXtyaXBwbGU6W3t0eXBlOmFyLGFyZ3M6W21MXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKE5MLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6ImJ1dHRvblttYXQtYnV0dG9uXSwgYnV0dG9uW21hdC1yYWlzZWQtYnV0dG9uXSwgYnV0dG9uW21hdC1pY29uLWJ1dHRvbl0sXG4gICAgICAgICAgICAgYnV0dG9uW21hdC1mYWJdLCBidXR0b25bbWF0LW1pbmktZmFiXSwgYnV0dG9uW21hdC1zdHJva2VkLWJ1dHRvbl0sXG4gICAgICAgICAgICAgYnV0dG9uW21hdC1mbGF0LWJ1dHRvbl0iLGV4cG9ydEFzOiJtYXRCdXR0b24iLGhvc3Q6eyJbYXR0ci5kaXNhYmxlZF0iOiJkaXNhYmxlZCB8fCBudWxsIiwiW2NsYXNzLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlXSI6J19hbmltYXRpb25Nb2RlID09PSAiTm9vcEFuaW1hdGlvbnMiJywiW2NsYXNzLm1hdC1idXR0b24tZGlzYWJsZWRdIjoiZGlzYWJsZWQiLGNsYXNzOiJtYXQtZm9jdXMtaW5kaWNhdG9yIn0sdGVtcGxhdGU6JzxzcGFuIGNsYXNzPSJtYXQtYnV0dG9uLXdyYXBwZXIiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L3NwYW4+XG48c3BhbiBtYXRSaXBwbGUgY2xhc3M9Im1hdC1idXR0b24tcmlwcGxlIlxuICAgICAgW2NsYXNzLm1hdC1idXR0b24tcmlwcGxlLXJvdW5kXT0iaXNSb3VuZEJ1dHRvbiB8fCBpc0ljb25CdXR0b24iXG4gICAgICBbbWF0UmlwcGxlRGlzYWJsZWRdPSJfaXNSaXBwbGVEaXNhYmxlZCgpIlxuICAgICAgW21hdFJpcHBsZUNlbnRlcmVkXT0iaXNJY29uQnV0dG9uIlxuICAgICAgW21hdFJpcHBsZVRyaWdnZXJdPSJfZ2V0SG9zdEVsZW1lbnQoKSI+PC9zcGFuPlxuPHNwYW4gY2xhc3M9Im1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSI+PC9zcGFuPlxuJyxpbnB1dHM6WyJkaXNhYmxlZCIsImRpc2FibGVSaXBwbGUiLCJjb2xvciJdLGVuY2Fwc3VsYXRpb246V24uTm9uZSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNoLHN0eWxlczpbIi5tYXQtYnV0dG9uIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1pY29uLWJ1dHRvbiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6MH0ubWF0LWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTouMDR9QG1lZGlhKGhvdmVyOiBub25lKXsubWF0LWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTowfX0ubWF0LWJ1dHRvbiwubWF0LWljb24tYnV0dG9uLC5tYXQtc3Ryb2tlZC1idXR0b24sLm1hdC1mbGF0LWJ1dHRvbntib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO21pbi13aWR0aDo2NHB4O2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwubWF0LWljb24tYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLC5tYXQtc3Ryb2tlZC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsLm1hdC1mbGF0LWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH0ubWF0LWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtaWNvbi1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtaWNvbi1idXR0b24uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LWljb24tYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LXN0cm9rZWQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1mbGF0LWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtZmxhdC1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjEyfS5tYXQtYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLC5tYXQtaWNvbi1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsLm1hdC1zdHJva2VkLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwubWF0LWZsYXQtYnV0dG9uOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5tYXQtcmFpc2VkLWJ1dHRvbntib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO21pbi13aWR0aDo2NHB4O2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7b3ZlcmZsb3c6dmlzaWJsZTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJveC1zaGFkb3cgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKX0ubWF0LXJhaXNlZC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Lm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHR9Lm1hdC1yYWlzZWQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1yYWlzZWQtYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4xMn0ubWF0LXJhaXNlZC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1yYWlzZWQtYnV0dG9ue3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXN0cm9rZWQtYnV0dG9ue2JvcmRlcjoxcHggc29saWQgY3VycmVudENvbG9yO3BhZGRpbmc6MCAxNXB4O2xpbmUtaGVpZ2h0OjM0cHh9Lm1hdC1zdHJva2VkLWJ1dHRvbiAubWF0LWJ1dHRvbi1yaXBwbGUubWF0LXJpcHBsZSwubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7dG9wOi0xcHg7bGVmdDotMXB4O3JpZ2h0Oi0xcHg7Ym90dG9tOi0xcHh9Lm1hdC1mYWJ7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmU7Ym9yZGVyOm5vbmU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MDttaW4td2lkdGg6NjRweDtsaW5lLWhlaWdodDozNnB4O3BhZGRpbmc6MCAxNnB4O2JvcmRlci1yYWRpdXM6NHB4O292ZXJmbG93OnZpc2libGU7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO3RyYW5zaXRpb246YmFja2dyb3VuZCA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxib3gtc2hhZG93IDI4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7bWluLXdpZHRoOjA7Ym9yZGVyLXJhZGl1czo1MCU7d2lkdGg6NTZweDtoZWlnaHQ6NTZweDtwYWRkaW5nOjA7ZmxleC1zaHJpbms6MH0ubWF0LWZhYjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH0ubWF0LWZhYi5tYXQtYnV0dG9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtZmFiLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1mYWIuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjEyfS5tYXQtZmFiOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtZmFie3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LWZhYiAubWF0LWJ1dHRvbi13cmFwcGVye3BhZGRpbmc6MTZweCAwO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1taW5pLWZhYntib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO21pbi13aWR0aDo2NHB4O2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7b3ZlcmZsb3c6dmlzaWJsZTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJveC1zaGFkb3cgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTttaW4td2lkdGg6MDtib3JkZXItcmFkaXVzOjUwJTt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O3BhZGRpbmc6MDtmbGV4LXNocmluazowfS5tYXQtbWluaS1mYWI6Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Lm1hdC1taW5pLWZhYi5tYXQtYnV0dG9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtbWluaS1mYWIuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LW1pbmktZmFiLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4xMn0ubWF0LW1pbmktZmFiOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtbWluaS1mYWJ7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtbWluaS1mYWIgLm1hdC1idXR0b24td3JhcHBlcntwYWRkaW5nOjhweCAwO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1pY29uLWJ1dHRvbntwYWRkaW5nOjA7bWluLXdpZHRoOjA7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtmbGV4LXNocmluazowO2xpbmUtaGVpZ2h0OjQwcHg7Ym9yZGVyLXJhZGl1czo1MCV9Lm1hdC1pY29uLWJ1dHRvbiBpLC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29ue2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1idXR0b24tcmlwcGxlLm1hdC1yaXBwbGUsLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lO2JvcmRlci1yYWRpdXM6aW5oZXJpdH0ubWF0LWJ1dHRvbi1yaXBwbGUubWF0LXJpcHBsZTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMjAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpLGJhY2tncm91bmQtY29sb3IgMjAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e3RyYW5zaXRpb246bm9uZX0ubWF0LWJ1dHRvbi1yaXBwbGUtcm91bmR7Ym9yZGVyLXJhZGl1czo1MCU7ei1pbmRleDoxfS5tYXQtYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LWZsYXQtYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LXJhaXNlZC1idXR0b24gLm1hdC1idXR0b24td3JhcHBlcj4qLC5tYXQtaWNvbi1idXR0b24gLm1hdC1idXR0b24td3JhcHBlcj4qLC5tYXQtZmFiIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LW1pbmktZmFiIC5tYXQtYnV0dG9uLXdyYXBwZXI+Knt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lm1hdC1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kpIC5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiwubWF0LWZvcm0tZmllbGQ6bm90KC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSkgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24tYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Zm9udC1zaXplOmluaGVyaXQ7d2lkdGg6Mi41ZW07aGVpZ2h0OjIuNWVtfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24sLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZsYXQtYnV0dG9uLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1yYWlzZWQtYnV0dG9uLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1pY29uLWJ1dHRvbiwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZmFiLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1taW5pLWZhYntvdXRsaW5lOnNvbGlkIDFweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLWJhc2UuY2RrLWtleWJvYXJkLWZvY3VzZWQsLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi1iYXNlLmNkay1wcm9ncmFtLWZvY3VzZWR7b3V0bGluZTpzb2xpZCAzcHh9XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOktofSx7dHlwZTpmRn0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltja119XX1dfSkse3JpcHBsZTpbe3R5cGU6YXIsYXJnczpbbUxdfV19KTtjbGFzcyB6TCBleHRlbmRzIE5Me2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcihlLHQsbil9X2hhbHREaXNhYmxlZEV2ZW50cyh0KXt0aGlzLmRpc2FibGVkJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkpfX16TC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ekwpKGdmKGZGKSxnZihLaCksZ2YoY2ssOCkpfSx6TC7JtWNtcD1zbyh7dHlwZTp6TCxzZWxlY3RvcnM6W1siYSIsIm1hdC1idXR0b24iLCIiXSxbImEiLCJtYXQtcmFpc2VkLWJ1dHRvbiIsIiJdLFsiYSIsIm1hdC1pY29uLWJ1dHRvbiIsIiJdLFsiYSIsIm1hdC1mYWIiLCIiXSxbImEiLCJtYXQtbWluaS1mYWIiLCIiXSxbImEiLCJtYXQtc3Ryb2tlZC1idXR0b24iLCIiXSxbImEiLCJtYXQtZmxhdC1idXR0b24iLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtZm9jdXMtaW5kaWNhdG9yIl0saG9zdFZhcnM6Nyxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmUmYoImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5faGFsdERpc2FibGVkRXZlbnRzKGUpfSkpLDImZSYmKHltKCJ0YWJpbmRleCIsbi5kaXNhYmxlZD8tMTpuLnRhYkluZGV4fHwwKSgiZGlzYWJsZWQiLG4uZGlzYWJsZWR8fG51bGwpKCJhcmlhLWRpc2FibGVkIixuLmRpc2FibGVkLnRvU3RyaW5nKCkpLGN1KCJfbWF0LWFuaW1hdGlvbi1ub29wYWJsZSIsIk5vb3BBbmltYXRpb25zIj09PW4uX2FuaW1hdGlvbk1vZGUpKCJtYXQtYnV0dG9uLWRpc2FibGVkIixuLmRpc2FibGVkKSl9LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIixkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIixjb2xvcjoiY29sb3IiLHRhYkluZGV4OiJ0YWJJbmRleCJ9LGV4cG9ydEFzOlsibWF0QnV0dG9uIiwibWF0QW5jaG9yIl0sZmVhdHVyZXM6W1FwXSxhdHRyczpETCxuZ0NvbnRlbnRTZWxlY3RvcnM6UkwsZGVjbHM6NCx2YXJzOjUsY29uc3RzOltbMSwibWF0LWJ1dHRvbi13cmFwcGVyIl0sWyJtYXRSaXBwbGUiLCIiLDEsIm1hdC1idXR0b24tcmlwcGxlIiwzLCJtYXRSaXBwbGVEaXNhYmxlZCIsIm1hdFJpcHBsZUNlbnRlcmVkIiwibWF0UmlwcGxlVHJpZ2dlciJdLFsxLCJtYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKEhmKCksQ2YoMCwic3BhbiIsMCksRmYoMSksTWYoKSx2ZigyLCJzcGFuIiwxKSx2ZigzLCJzcGFuIiwyKSksMiZlJiYoRGMoMiksY3UoIm1hdC1idXR0b24tcmlwcGxlLXJvdW5kIixuLmlzUm91bmRCdXR0b258fG4uaXNJY29uQnV0dG9uKSxiZigibWF0UmlwcGxlRGlzYWJsZWQiLG4uX2lzUmlwcGxlRGlzYWJsZWQoKSkoIm1hdFJpcHBsZUNlbnRlcmVkIixuLmlzSWNvbkJ1dHRvbikoIm1hdFJpcHBsZVRyaWdnZXIiLG4uX2dldEhvc3RFbGVtZW50KCkpKX0sZGlyZWN0aXZlczpbbUxdLHN0eWxlczpbRUxdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLHpMLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6ZkZ9LHt0eXBlOktofSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W2NrXX1dfV0sekwucHJvcERlY29yYXRvcnM9e3RhYkluZGV4Olt7dHlwZTpSX31dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHpMLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6ImFbbWF0LWJ1dHRvbl0sIGFbbWF0LXJhaXNlZC1idXR0b25dLCBhW21hdC1pY29uLWJ1dHRvbl0sIGFbbWF0LWZhYl0sXG4gICAgICAgICAgICAgYVttYXQtbWluaS1mYWJdLCBhW21hdC1zdHJva2VkLWJ1dHRvbl0sIGFbbWF0LWZsYXQtYnV0dG9uXSIsZXhwb3J0QXM6Im1hdEJ1dHRvbiwgbWF0QW5jaG9yIixob3N0OnsiW2F0dHIudGFiaW5kZXhdIjoiZGlzYWJsZWQgPyAtMSA6ICh0YWJJbmRleCB8fCAwKSIsIlthdHRyLmRpc2FibGVkXSI6ImRpc2FibGVkIHx8IG51bGwiLCJbYXR0ci5hcmlhLWRpc2FibGVkXSI6ImRpc2FibGVkLnRvU3RyaW5nKCkiLCIoY2xpY2spIjoiX2hhbHREaXNhYmxlZEV2ZW50cygkZXZlbnQpIiwiW2NsYXNzLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlXSI6J19hbmltYXRpb25Nb2RlID09PSAiTm9vcEFuaW1hdGlvbnMiJywiW2NsYXNzLm1hdC1idXR0b24tZGlzYWJsZWRdIjoiZGlzYWJsZWQiLGNsYXNzOiJtYXQtZm9jdXMtaW5kaWNhdG9yIn0saW5wdXRzOlsiZGlzYWJsZWQiLCJkaXNhYmxlUmlwcGxlIiwiY29sb3IiXSx0ZW1wbGF0ZTonPHNwYW4gY2xhc3M9Im1hdC1idXR0b24td3JhcHBlciI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pjwvc3Bhbj5cbjxzcGFuIG1hdFJpcHBsZSBjbGFzcz0ibWF0LWJ1dHRvbi1yaXBwbGUiXG4gICAgICBbY2xhc3MubWF0LWJ1dHRvbi1yaXBwbGUtcm91bmRdPSJpc1JvdW5kQnV0dG9uIHx8IGlzSWNvbkJ1dHRvbiJcbiAgICAgIFttYXRSaXBwbGVEaXNhYmxlZF09Il9pc1JpcHBsZURpc2FibGVkKCkiXG4gICAgICBbbWF0UmlwcGxlQ2VudGVyZWRdPSJpc0ljb25CdXR0b24iXG4gICAgICBbbWF0UmlwcGxlVHJpZ2dlcl09Il9nZXRIb3N0RWxlbWVudCgpIj48L3NwYW4+XG48c3BhbiBjbGFzcz0ibWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5Ij48L3NwYW4+XG4nLGVuY2Fwc3VsYXRpb246V24uTm9uZSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNoLHN0eWxlczpbIi5tYXQtYnV0dG9uIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1pY29uLWJ1dHRvbiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6MH0ubWF0LWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTouMDR9QG1lZGlhKGhvdmVyOiBub25lKXsubWF0LWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbjpob3Zlcjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTowfX0ubWF0LWJ1dHRvbiwubWF0LWljb24tYnV0dG9uLC5tYXQtc3Ryb2tlZC1idXR0b24sLm1hdC1mbGF0LWJ1dHRvbntib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO21pbi13aWR0aDo2NHB4O2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwubWF0LWljb24tYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLC5tYXQtc3Ryb2tlZC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsLm1hdC1mbGF0LWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH0ubWF0LWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVkLC5tYXQtaWNvbi1idXR0b24ubWF0LWJ1dHRvbi1kaXNhYmxlZCwubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWQsLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYnV0dG9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtaWNvbi1idXR0b24uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LWljb24tYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LXN0cm9rZWQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1mbGF0LWJ1dHRvbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtZmxhdC1idXR0b24uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjEyfS5tYXQtYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLC5tYXQtaWNvbi1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsLm1hdC1zdHJva2VkLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwubWF0LWZsYXQtYnV0dG9uOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5tYXQtcmFpc2VkLWJ1dHRvbntib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO21pbi13aWR0aDo2NHB4O2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7b3ZlcmZsb3c6dmlzaWJsZTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJveC1zaGFkb3cgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKX0ubWF0LXJhaXNlZC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Lm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1idXR0b24tZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHR9Lm1hdC1yYWlzZWQtYnV0dG9uLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1yYWlzZWQtYnV0dG9uLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4xMn0ubWF0LXJhaXNlZC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1yYWlzZWQtYnV0dG9ue3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXN0cm9rZWQtYnV0dG9ue2JvcmRlcjoxcHggc29saWQgY3VycmVudENvbG9yO3BhZGRpbmc6MCAxNXB4O2xpbmUtaGVpZ2h0OjM0cHh9Lm1hdC1zdHJva2VkLWJ1dHRvbiAubWF0LWJ1dHRvbi1yaXBwbGUubWF0LXJpcHBsZSwubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7dG9wOi0xcHg7bGVmdDotMXB4O3JpZ2h0Oi0xcHg7Ym90dG9tOi0xcHh9Lm1hdC1mYWJ7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmU7Ym9yZGVyOm5vbmU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MDttaW4td2lkdGg6NjRweDtsaW5lLWhlaWdodDozNnB4O3BhZGRpbmc6MCAxNnB4O2JvcmRlci1yYWRpdXM6NHB4O292ZXJmbG93OnZpc2libGU7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO3RyYW5zaXRpb246YmFja2dyb3VuZCA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxib3gtc2hhZG93IDI4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7bWluLXdpZHRoOjA7Ym9yZGVyLXJhZGl1czo1MCU7d2lkdGg6NTZweDtoZWlnaHQ6NTZweDtwYWRkaW5nOjA7ZmxleC1zaHJpbms6MH0ubWF0LWZhYjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH0ubWF0LWZhYi5tYXQtYnV0dG9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtZmFiLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1mYWIuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjEyfS5tYXQtZmFiOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtZmFie3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LWZhYiAubWF0LWJ1dHRvbi13cmFwcGVye3BhZGRpbmc6MTZweCAwO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1taW5pLWZhYntib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO21pbi13aWR0aDo2NHB4O2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7b3ZlcmZsb3c6dmlzaWJsZTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJveC1zaGFkb3cgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTttaW4td2lkdGg6MDtib3JkZXItcmFkaXVzOjUwJTt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O3BhZGRpbmc6MDtmbGV4LXNocmluazowfS5tYXQtbWluaS1mYWI6Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Lm1hdC1taW5pLWZhYi5tYXQtYnV0dG9uLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5tYXQtbWluaS1mYWIuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LW1pbmktZmFiLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi4xMn0ubWF0LW1pbmktZmFiOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtbWluaS1mYWJ7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtbWluaS1mYWIgLm1hdC1idXR0b24td3JhcHBlcntwYWRkaW5nOjhweCAwO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1pY29uLWJ1dHRvbntwYWRkaW5nOjA7bWluLXdpZHRoOjA7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtmbGV4LXNocmluazowO2xpbmUtaGVpZ2h0OjQwcHg7Ym9yZGVyLXJhZGl1czo1MCV9Lm1hdC1pY29uLWJ1dHRvbiBpLC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29ue2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1idXR0b24tcmlwcGxlLm1hdC1yaXBwbGUsLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lO2JvcmRlci1yYWRpdXM6aW5oZXJpdH0ubWF0LWJ1dHRvbi1yaXBwbGUubWF0LXJpcHBsZTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMjAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpLGJhY2tncm91bmQtY29sb3IgMjAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e3RyYW5zaXRpb246bm9uZX0ubWF0LWJ1dHRvbi1yaXBwbGUtcm91bmR7Ym9yZGVyLXJhZGl1czo1MCU7ei1pbmRleDoxfS5tYXQtYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LWZsYXQtYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LXJhaXNlZC1idXR0b24gLm1hdC1idXR0b24td3JhcHBlcj4qLC5tYXQtaWNvbi1idXR0b24gLm1hdC1idXR0b24td3JhcHBlcj4qLC5tYXQtZmFiIC5tYXQtYnV0dG9uLXdyYXBwZXI+KiwubWF0LW1pbmktZmFiIC5tYXQtYnV0dG9uLXdyYXBwZXI+Knt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lm1hdC1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kpIC5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiwubWF0LWZvcm0tZmllbGQ6bm90KC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSkgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24tYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Zm9udC1zaXplOmluaGVyaXQ7d2lkdGg6Mi41ZW07aGVpZ2h0OjIuNWVtfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24sLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZsYXQtYnV0dG9uLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1yYWlzZWQtYnV0dG9uLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1pY29uLWJ1dHRvbiwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZmFiLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1taW5pLWZhYntvdXRsaW5lOnNvbGlkIDFweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLWJhc2UuY2RrLWtleWJvYXJkLWZvY3VzZWQsLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi1iYXNlLmNkay1wcm9ncmFtLWZvY3VzZWR7b3V0bGluZTpzb2xpZCAzcHh9XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmZGfSx7dHlwZTpLaH0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltja119XX1dfSkse3RhYkluZGV4Olt7dHlwZTpSX31dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBJTHt9SUwuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fElMKX0sSUwuybVtb2Q9Zm8oe3R5cGU6SUx9KSxJTC7JtWluaj1Ebih7aW1wb3J0czpbW2ZMLE5GXSxORl19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKElMLFt7dHlwZTpMXyxhcmdzOlt7aW1wb3J0czpbZkwsTkZdLGV4cG9ydHM6W05MLHpMLE5GXSxkZWNsYXJhdGlvbnM6W05MLHpMXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKElMLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bTkwsekxdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW2ZMLE5GXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltOTCx6TCxORl19fSk7Y2xhc3MgSEx7fWZ1bmN0aW9uIEZMKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgdC5jb25uZWN0fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBMTCBleHRlbmRzIEhMe2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5fZGF0YT10fWNvbm5lY3QoKXtyZXR1cm4gTHQodGhpcy5fZGF0YSk/dGhpcy5fZGF0YTp6dCh0aGlzLl9kYXRhKX1kaXNjb25uZWN0KCl7fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIEJMe2FwcGx5Q2hhbmdlcyh0LGUsbixvLGkpe3QuZm9yRWFjaE9wZXJhdGlvbigoKHQsbyxhKT0+e2xldCByLHM7aWYobnVsbD09dC5wcmV2aW91c0luZGV4KXtjb25zdCBpPW4odCxvLGEpO3I9ZS5jcmVhdGVFbWJlZGRlZFZpZXcoaS50ZW1wbGF0ZVJlZixpLmNvbnRleHQsaS5pbmRleCkscz0xfWVsc2UgbnVsbD09YT8oZS5yZW1vdmUobykscz0zKToocj1lLmdldChvKSxlLm1vdmUocixhKSxzPTIpO2kmJmkoe2NvbnRleHQ6bnVsbD09cj92b2lkIDA6ci5jb250ZXh0LG9wZXJhdGlvbjpzLHJlY29yZDp0fSl9KSl9ZGV0YWNoKCl7fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgVkx7Y29uc3RydWN0b3IoKXt0aGlzLnZpZXdDYWNoZVNpemU9MjAsdGhpcy5fdmlld0NhY2hlPVtdfWFwcGx5Q2hhbmdlcyh0LGUsbixvLGkpe3QuZm9yRWFjaE9wZXJhdGlvbigoKHQsYSxyKT0+e2xldCBzLGw7aWYobnVsbD09dC5wcmV2aW91c0luZGV4KXtzPXRoaXMuX2luc2VydFZpZXcoKCgpPT5uKHQsYSxyKSkscixlLG8odCkpLGw9cz8xOjB9ZWxzZSBudWxsPT1yPyh0aGlzLl9kZXRhY2hBbmRDYWNoZVZpZXcoYSxlKSxsPTMpOihzPXRoaXMuX21vdmVWaWV3KGEscixlLG8odCkpLGw9Mik7aSYmaSh7Y29udGV4dDpudWxsPT1zP3ZvaWQgMDpzLmNvbnRleHQsb3BlcmF0aW9uOmwscmVjb3JkOnR9KX0pKX1kZXRhY2goKXtmb3IoY29uc3QgdCBvZiB0aGlzLl92aWV3Q2FjaGUpdC5kZXN0cm95KCk7dGhpcy5fdmlld0NhY2hlPVtdfV9pbnNlcnRWaWV3KHQsZSxuLG8pe2NvbnN0IGk9dGhpcy5faW5zZXJ0Vmlld0Zyb21DYWNoZShlLG4pO2lmKGkpcmV0dXJuIHZvaWQoaS5jb250ZXh0LiRpbXBsaWNpdD1vKTtjb25zdCBhPXQoKTtyZXR1cm4gbi5jcmVhdGVFbWJlZGRlZFZpZXcoYS50ZW1wbGF0ZVJlZixhLmNvbnRleHQsYS5pbmRleCl9X2RldGFjaEFuZENhY2hlVmlldyh0LGUpe2NvbnN0IG49ZS5kZXRhY2godCk7dGhpcy5fbWF5YmVDYWNoZVZpZXcobixlKX1fbW92ZVZpZXcodCxlLG4sbyl7Y29uc3QgaT1uLmdldCh0KTtyZXR1cm4gbi5tb3ZlKGksZSksaS5jb250ZXh0LiRpbXBsaWNpdD1vLGl9X21heWJlQ2FjaGVWaWV3KHQsZSl7aWYodGhpcy5fdmlld0NhY2hlLmxlbmd0aDx0aGlzLnZpZXdDYWNoZVNpemUpdGhpcy5fdmlld0NhY2hlLnB1c2godCk7ZWxzZXtjb25zdCBuPWUuaW5kZXhPZih0KTstMT09PW4/dC5kZXN0cm95KCk6ZS5yZW1vdmUobil9fV9pbnNlcnRWaWV3RnJvbUNhY2hlKHQsZSl7Y29uc3Qgbj10aGlzLl92aWV3Q2FjaGUucG9wKCk7cmV0dXJuIG4mJmUuaW5zZXJ0KG4sdCksbnx8bnVsbH19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIGpMe2NvbnN0cnVjdG9yKHQ9ITEsZSxuPSEwKXt0aGlzLl9tdWx0aXBsZT10LHRoaXMuX2VtaXRDaGFuZ2VzPW4sdGhpcy5fc2VsZWN0aW9uPW5ldyBTZXQsdGhpcy5fZGVzZWxlY3RlZFRvRW1pdD1bXSx0aGlzLl9zZWxlY3RlZFRvRW1pdD1bXSx0aGlzLmNoYW5nZWQ9bmV3IEIsZSYmZS5sZW5ndGgmJih0P2UuZm9yRWFjaCgodD0+dGhpcy5fbWFya1NlbGVjdGVkKHQpKSk6dGhpcy5fbWFya1NlbGVjdGVkKGVbMF0pLHRoaXMuX3NlbGVjdGVkVG9FbWl0Lmxlbmd0aD0wKX1nZXQgc2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy5fc2VsZWN0ZWR8fCh0aGlzLl9zZWxlY3RlZD1BcnJheS5mcm9tKHRoaXMuX3NlbGVjdGlvbi52YWx1ZXMoKSkpLHRoaXMuX3NlbGVjdGVkfXNlbGVjdCguLi50KXt0aGlzLl92ZXJpZnlWYWx1ZUFzc2lnbm1lbnQodCksdC5mb3JFYWNoKCh0PT50aGlzLl9tYXJrU2VsZWN0ZWQodCkpKSx0aGlzLl9lbWl0Q2hhbmdlRXZlbnQoKX1kZXNlbGVjdCguLi50KXt0aGlzLl92ZXJpZnlWYWx1ZUFzc2lnbm1lbnQodCksdC5mb3JFYWNoKCh0PT50aGlzLl91bm1hcmtTZWxlY3RlZCh0KSkpLHRoaXMuX2VtaXRDaGFuZ2VFdmVudCgpfXRvZ2dsZSh0KXt0aGlzLmlzU2VsZWN0ZWQodCk/dGhpcy5kZXNlbGVjdCh0KTp0aGlzLnNlbGVjdCh0KX1jbGVhcigpe3RoaXMuX3VubWFya0FsbCgpLHRoaXMuX2VtaXRDaGFuZ2VFdmVudCgpfWlzU2VsZWN0ZWQodCl7cmV0dXJuIHRoaXMuX3NlbGVjdGlvbi5oYXModCl9aXNFbXB0eSgpe3JldHVybiAwPT09dGhpcy5fc2VsZWN0aW9uLnNpemV9aGFzVmFsdWUoKXtyZXR1cm4hdGhpcy5pc0VtcHR5KCl9c29ydCh0KXt0aGlzLl9tdWx0aXBsZSYmdGhpcy5zZWxlY3RlZCYmdGhpcy5fc2VsZWN0ZWQuc29ydCh0KX1pc011bHRpcGxlU2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMuX211bHRpcGxlfV9lbWl0Q2hhbmdlRXZlbnQoKXt0aGlzLl9zZWxlY3RlZD1udWxsLCh0aGlzLl9zZWxlY3RlZFRvRW1pdC5sZW5ndGh8fHRoaXMuX2Rlc2VsZWN0ZWRUb0VtaXQubGVuZ3RoKSYmKHRoaXMuY2hhbmdlZC5uZXh0KHtzb3VyY2U6dGhpcyxhZGRlZDp0aGlzLl9zZWxlY3RlZFRvRW1pdCxyZW1vdmVkOnRoaXMuX2Rlc2VsZWN0ZWRUb0VtaXR9KSx0aGlzLl9kZXNlbGVjdGVkVG9FbWl0PVtdLHRoaXMuX3NlbGVjdGVkVG9FbWl0PVtdKX1fbWFya1NlbGVjdGVkKHQpe3RoaXMuaXNTZWxlY3RlZCh0KXx8KHRoaXMuX211bHRpcGxlfHx0aGlzLl91bm1hcmtBbGwoKSx0aGlzLl9zZWxlY3Rpb24uYWRkKHQpLHRoaXMuX2VtaXRDaGFuZ2VzJiZ0aGlzLl9zZWxlY3RlZFRvRW1pdC5wdXNoKHQpKX1fdW5tYXJrU2VsZWN0ZWQodCl7dGhpcy5pc1NlbGVjdGVkKHQpJiYodGhpcy5fc2VsZWN0aW9uLmRlbGV0ZSh0KSx0aGlzLl9lbWl0Q2hhbmdlcyYmdGhpcy5fZGVzZWxlY3RlZFRvRW1pdC5wdXNoKHQpKX1fdW5tYXJrQWxsKCl7dGhpcy5pc0VtcHR5KCl8fHRoaXMuX3NlbGVjdGlvbi5mb3JFYWNoKCh0PT50aGlzLl91bm1hcmtTZWxlY3RlZCh0KSkpfV92ZXJpZnlWYWx1ZUFzc2lnbm1lbnQodCl7aWYodC5sZW5ndGg+MSYmIXRoaXMuX211bHRpcGxlJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3coZnVuY3Rpb24gZSgpe3JldHVybiBFcnJvcigiQ2Fubm90IHBhc3MgbXVsdGlwbGUgdmFsdWVzIGludG8gU2VsZWN0aW9uTW9kZWwgd2l0aCBzaW5nbGUtdmFsdWUgbW9kZS4iKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovKSgpfX1jbGFzcyBVTHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2xpc3RlbmVycz1bXX1ub3RpZnkodCxlKXtmb3IobGV0IG4gb2YgdGhpcy5fbGlzdGVuZXJzKW4odCxlKX1saXN0ZW4odCl7cmV0dXJuIHRoaXMuX2xpc3RlbmVycy5wdXNoKHQpLCgpPT57dGhpcy5fbGlzdGVuZXJzPXRoaXMuX2xpc3RlbmVycy5maWx0ZXIoKGU9PnQhPT1lKSl9fW5nT25EZXN0cm95KCl7dGhpcy5fbGlzdGVuZXJzPVtdfX1VTC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VUwpfSxVTC7JtXByb3Y9U24oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgVUx9LHRva2VuOlVMLHByb3ZpZGVkSW46InJvb3QifSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihVTCxbe3R5cGU6VW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IFdMPW5ldyBlcigiX1ZpZXdSZXBlYXRlciIpLEdMPVsiY29udGVudFdyYXBwZXIiXSxZTD1uZXcgZXIoIlZJUlRVQUxfU0NST0xMX1NUUkFURUdZIik7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBxTHtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5fc2Nyb2xsZWRJbmRleENoYW5nZT1uZXcgQix0aGlzLnNjcm9sbGVkSW5kZXhDaGFuZ2U9dGhpcy5fc2Nyb2xsZWRJbmRleENoYW5nZS5waXBlKHdlKCkpLHRoaXMuX3ZpZXdwb3J0PW51bGwsdGhpcy5faXRlbVNpemU9dCx0aGlzLl9taW5CdWZmZXJQeD1lLHRoaXMuX21heEJ1ZmZlclB4PW59YXR0YWNoKHQpe3RoaXMuX3ZpZXdwb3J0PXQsdGhpcy5fdXBkYXRlVG90YWxDb250ZW50U2l6ZSgpLHRoaXMuX3VwZGF0ZVJlbmRlcmVkUmFuZ2UoKX1kZXRhY2goKXt0aGlzLl9zY3JvbGxlZEluZGV4Q2hhbmdlLmNvbXBsZXRlKCksdGhpcy5fdmlld3BvcnQ9bnVsbH11cGRhdGVJdGVtQW5kQnVmZmVyU2l6ZSh0LGUsbil7aWYobjxlJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3cgRXJyb3IoIkNESyB2aXJ0dWFsIHNjcm9sbDogbWF4QnVmZmVyUHggbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gbWluQnVmZmVyUHgiKTt0aGlzLl9pdGVtU2l6ZT10LHRoaXMuX21pbkJ1ZmZlclB4PWUsdGhpcy5fbWF4QnVmZmVyUHg9bix0aGlzLl91cGRhdGVUb3RhbENvbnRlbnRTaXplKCksdGhpcy5fdXBkYXRlUmVuZGVyZWRSYW5nZSgpfW9uQ29udGVudFNjcm9sbGVkKCl7dGhpcy5fdXBkYXRlUmVuZGVyZWRSYW5nZSgpfW9uRGF0YUxlbmd0aENoYW5nZWQoKXt0aGlzLl91cGRhdGVUb3RhbENvbnRlbnRTaXplKCksdGhpcy5fdXBkYXRlUmVuZGVyZWRSYW5nZSgpfW9uQ29udGVudFJlbmRlcmVkKCl7fW9uUmVuZGVyZWRPZmZzZXRDaGFuZ2VkKCl7fXNjcm9sbFRvSW5kZXgodCxlKXt0aGlzLl92aWV3cG9ydCYmdGhpcy5fdmlld3BvcnQuc2Nyb2xsVG9PZmZzZXQodCp0aGlzLl9pdGVtU2l6ZSxlKX1fdXBkYXRlVG90YWxDb250ZW50U2l6ZSgpe3RoaXMuX3ZpZXdwb3J0JiZ0aGlzLl92aWV3cG9ydC5zZXRUb3RhbENvbnRlbnRTaXplKHRoaXMuX3ZpZXdwb3J0LmdldERhdGFMZW5ndGgoKSp0aGlzLl9pdGVtU2l6ZSl9X3VwZGF0ZVJlbmRlcmVkUmFuZ2UoKXtpZighdGhpcy5fdmlld3BvcnQpcmV0dXJuO2NvbnN0IHQ9dGhpcy5fdmlld3BvcnQuZ2V0UmVuZGVyZWRSYW5nZSgpLGU9e3N0YXJ0OnQuc3RhcnQsZW5kOnQuZW5kfSxuPXRoaXMuX3ZpZXdwb3J0LmdldFZpZXdwb3J0U2l6ZSgpLG89dGhpcy5fdmlld3BvcnQuZ2V0RGF0YUxlbmd0aCgpO2xldCBpPXRoaXMuX3ZpZXdwb3J0Lm1lYXN1cmVTY3JvbGxPZmZzZXQoKSxhPXRoaXMuX2l0ZW1TaXplPjA/aS90aGlzLl9pdGVtU2l6ZTowO2lmKGUuZW5kPm8pe2NvbnN0IHQ9TWF0aC5jZWlsKG4vdGhpcy5faXRlbVNpemUpLHI9TWF0aC5tYXgoMCxNYXRoLm1pbihhLG8tdCkpO2EhPXImJihhPXIsaT1yKnRoaXMuX2l0ZW1TaXplLGUuc3RhcnQ9TWF0aC5mbG9vcihhKSksZS5lbmQ9TWF0aC5tYXgoMCxNYXRoLm1pbihvLGUuc3RhcnQrdCkpfWNvbnN0IHI9aS1lLnN0YXJ0KnRoaXMuX2l0ZW1TaXplO2lmKHI8dGhpcy5fbWluQnVmZmVyUHgmJjAhPWUuc3RhcnQpe2NvbnN0IHQ9TWF0aC5jZWlsKCh0aGlzLl9tYXhCdWZmZXJQeC1yKS90aGlzLl9pdGVtU2l6ZSk7ZS5zdGFydD1NYXRoLm1heCgwLGUuc3RhcnQtdCksZS5lbmQ9TWF0aC5taW4obyxNYXRoLmNlaWwoYSsobit0aGlzLl9taW5CdWZmZXJQeCkvdGhpcy5faXRlbVNpemUpKX1lbHNle2NvbnN0IHQ9ZS5lbmQqdGhpcy5faXRlbVNpemUtKGkrbik7aWYodDx0aGlzLl9taW5CdWZmZXJQeCYmZS5lbmQhPW8pe2NvbnN0IG49TWF0aC5jZWlsKCh0aGlzLl9tYXhCdWZmZXJQeC10KS90aGlzLl9pdGVtU2l6ZSk7bj4wJiYoZS5lbmQ9TWF0aC5taW4obyxlLmVuZCtuKSxlLnN0YXJ0PU1hdGgubWF4KDAsTWF0aC5mbG9vcihhLXRoaXMuX21pbkJ1ZmZlclB4L3RoaXMuX2l0ZW1TaXplKSkpfX10aGlzLl92aWV3cG9ydC5zZXRSZW5kZXJlZFJhbmdlKGUpLHRoaXMuX3ZpZXdwb3J0LnNldFJlbmRlcmVkQ29udGVudE9mZnNldCh0aGlzLl9pdGVtU2l6ZSplLnN0YXJ0KSx0aGlzLl9zY3JvbGxlZEluZGV4Q2hhbmdlLm5leHQoTWF0aC5mbG9vcihhKSl9fWZ1bmN0aW9uIFpMKHQpe3JldHVybiB0Ll9zY3JvbGxTdHJhdGVneX1jbGFzcyBYTHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2l0ZW1TaXplPTIwLHRoaXMuX21pbkJ1ZmZlclB4PTEwMCx0aGlzLl9tYXhCdWZmZXJQeD0yMDAsdGhpcy5fc2Nyb2xsU3RyYXRlZ3k9bmV3IHFMKHRoaXMuaXRlbVNpemUsdGhpcy5taW5CdWZmZXJQeCx0aGlzLm1heEJ1ZmZlclB4KX1nZXQgaXRlbVNpemUoKXtyZXR1cm4gdGhpcy5faXRlbVNpemV9c2V0IGl0ZW1TaXplKHQpe3RoaXMuX2l0ZW1TaXplPW5IKHQpfWdldCBtaW5CdWZmZXJQeCgpe3JldHVybiB0aGlzLl9taW5CdWZmZXJQeH1zZXQgbWluQnVmZmVyUHgodCl7dGhpcy5fbWluQnVmZmVyUHg9bkgodCl9Z2V0IG1heEJ1ZmZlclB4KCl7cmV0dXJuIHRoaXMuX21heEJ1ZmZlclB4fXNldCBtYXhCdWZmZXJQeCh0KXt0aGlzLl9tYXhCdWZmZXJQeD1uSCh0KX1uZ09uQ2hhbmdlcygpe3RoaXMuX3Njcm9sbFN0cmF0ZWd5LnVwZGF0ZUl0ZW1BbmRCdWZmZXJTaXplKHRoaXMuaXRlbVNpemUsdGhpcy5taW5CdWZmZXJQeCx0aGlzLm1heEJ1ZmZlclB4KX19WEwuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFhMKX0sWEwuybVkaXI9aG8oe3R5cGU6WEwsc2VsZWN0b3JzOltbImNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCIsIml0ZW1TaXplIiwiIl1dLGlucHV0czp7aXRlbVNpemU6Iml0ZW1TaXplIixtaW5CdWZmZXJQeDoibWluQnVmZmVyUHgiLG1heEJ1ZmZlclB4OiJtYXhCdWZmZXJQeCJ9LGZlYXR1cmVzOltqaChbe3Byb3ZpZGU6WUwsdXNlRmFjdG9yeTpaTCxkZXBzOlskZSgoKCk9PlhMKSldfV0pLHFvXX0pLFhMLnByb3BEZWNvcmF0b3JzPXtpdGVtU2l6ZTpbe3R5cGU6Ul99XSxtaW5CdWZmZXJQeDpbe3R5cGU6Ul99XSxtYXhCdWZmZXJQeDpbe3R5cGU6Ul99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihYTCxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnRbaXRlbVNpemVdIixwcm92aWRlcnM6W3twcm92aWRlOllMLHVzZUZhY3Rvcnk6WkwsZGVwczpbJGUoKCgpPT5YTCkpXX1dfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLHtpdGVtU2l6ZTpbe3R5cGU6Ul99XSxtaW5CdWZmZXJQeDpbe3R5cGU6Ul99XSxtYXhCdWZmZXJQeDpbe3R5cGU6Ul99XX0pO2NsYXNzIEtMe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl9uZ1pvbmU9dCx0aGlzLl9wbGF0Zm9ybT1lLHRoaXMuX3Njcm9sbGVkPW5ldyBCLHRoaXMuX2dsb2JhbFN1YnNjcmlwdGlvbj1udWxsLHRoaXMuX3Njcm9sbGVkQ291bnQ9MCx0aGlzLnNjcm9sbENvbnRhaW5lcnM9bmV3IE1hcCx0aGlzLl9kb2N1bWVudD1ufXJlZ2lzdGVyKHQpe3RoaXMuc2Nyb2xsQ29udGFpbmVycy5oYXModCl8fHRoaXMuc2Nyb2xsQ29udGFpbmVycy5zZXQodCx0LmVsZW1lbnRTY3JvbGxlZCgpLnN1YnNjcmliZSgoKCk9PnRoaXMuX3Njcm9sbGVkLm5leHQodCkpKSl9ZGVyZWdpc3Rlcih0KXtjb25zdCBlPXRoaXMuc2Nyb2xsQ29udGFpbmVycy5nZXQodCk7ZSYmKGUudW5zdWJzY3JpYmUoKSx0aGlzLnNjcm9sbENvbnRhaW5lcnMuZGVsZXRlKHQpKX1zY3JvbGxlZCh0PTIwKXtyZXR1cm4gdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyP25ldyBUKChlPT57dGhpcy5fZ2xvYmFsU3Vic2NyaXB0aW9ufHx0aGlzLl9hZGRHbG9iYWxMaXN0ZW5lcigpO2NvbnN0IG49dD4wP3RoaXMuX3Njcm9sbGVkLnBpcGUoZ2UodCkpLnN1YnNjcmliZShlKTp0aGlzLl9zY3JvbGxlZC5zdWJzY3JpYmUoZSk7cmV0dXJuIHRoaXMuX3Njcm9sbGVkQ291bnQrKywoKT0+e24udW5zdWJzY3JpYmUoKSx0aGlzLl9zY3JvbGxlZENvdW50LS0sdGhpcy5fc2Nyb2xsZWRDb3VudHx8dGhpcy5fcmVtb3ZlR2xvYmFsTGlzdGVuZXIoKX19KSk6enQoKX1uZ09uRGVzdHJveSgpe3RoaXMuX3JlbW92ZUdsb2JhbExpc3RlbmVyKCksdGhpcy5zY3JvbGxDb250YWluZXJzLmZvckVhY2goKCh0LGUpPT50aGlzLmRlcmVnaXN0ZXIoZSkpKSx0aGlzLl9zY3JvbGxlZC5jb21wbGV0ZSgpfWFuY2VzdG9yU2Nyb2xsZWQodCxlKXtjb25zdCBuPXRoaXMuZ2V0QW5jZXN0b3JTY3JvbGxDb250YWluZXJzKHQpO3JldHVybiB0aGlzLnNjcm9sbGVkKGUpLnBpcGUodWUoKHQ9PiF0fHxuLmluZGV4T2YodCk+LTEpKSl9Z2V0QW5jZXN0b3JTY3JvbGxDb250YWluZXJzKHQpe2NvbnN0IGU9W107cmV0dXJuIHRoaXMuc2Nyb2xsQ29udGFpbmVycy5mb3JFYWNoKCgobixvKT0+e3RoaXMuX3Njcm9sbGFibGVDb250YWluc0VsZW1lbnQobyx0KSYmZS5wdXNoKG8pfSkpLGV9X2dldFdpbmRvdygpe3JldHVybiB0aGlzLl9kb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93fV9zY3JvbGxhYmxlQ29udGFpbnNFbGVtZW50KHQsZSl7bGV0IG49ckgoZSksbz10LmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50O2Rve2lmKG49PW8pcmV0dXJuITB9d2hpbGUobj1uLnBhcmVudEVsZW1lbnQpO3JldHVybiExfV9hZGRHbG9iYWxMaXN0ZW5lcigpe3RoaXMuX2dsb2JhbFN1YnNjcmlwdGlvbj10aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT5sZSh0aGlzLl9nZXRXaW5kb3coKS5kb2N1bWVudCwic2Nyb2xsIikuc3Vic2NyaWJlKCgoKT0+dGhpcy5fc2Nyb2xsZWQubmV4dCgpKSkpKX1fcmVtb3ZlR2xvYmFsTGlzdGVuZXIoKXt0aGlzLl9nbG9iYWxTdWJzY3JpcHRpb24mJih0aGlzLl9nbG9iYWxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9nbG9iYWxTdWJzY3JpcHRpb249bnVsbCl9fUtMLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxLTCkoVHIobUMpLFRyKGNIKSxUcihzTSw4KSl9LEtMLsm1cHJvdj1Tbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBLTChUcihtQyksVHIoY0gpLFRyKHNNLDgpKX0sdG9rZW46S0wscHJvdmlkZWRJbjoicm9vdCJ9KSxLTC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOm1DfSx7dHlwZTpjSH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltzTV19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoS0wsW3t0eXBlOlVtLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOm1DfSx7dHlwZTpjSH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltzTV19XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBKTHtjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLmVsZW1lbnRSZWY9dCx0aGlzLnNjcm9sbERpc3BhdGNoZXI9ZSx0aGlzLm5nWm9uZT1uLHRoaXMuZGlyPW8sdGhpcy5fZGVzdHJveWVkPW5ldyBCLHRoaXMuX2VsZW1lbnRTY3JvbGxlZD1uZXcgVCgodD0+dGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT5sZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwic2Nyb2xsIikucGlwZShqZSh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUodCkpKSkpfW5nT25Jbml0KCl7dGhpcy5zY3JvbGxEaXNwYXRjaGVyLnJlZ2lzdGVyKHRoaXMpfW5nT25EZXN0cm95KCl7dGhpcy5zY3JvbGxEaXNwYXRjaGVyLmRlcmVnaXN0ZXIodGhpcyksdGhpcy5fZGVzdHJveWVkLm5leHQoKSx0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKX1lbGVtZW50U2Nyb2xsZWQoKXtyZXR1cm4gdGhpcy5fZWxlbWVudFNjcm9sbGVkfWdldEVsZW1lbnRSZWYoKXtyZXR1cm4gdGhpcy5lbGVtZW50UmVmfXNjcm9sbFRvKHQpe2NvbnN0IGU9dGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsbj10aGlzLmRpciYmInJ0bCI9PXRoaXMuZGlyLnZhbHVlO251bGw9PXQubGVmdCYmKHQubGVmdD1uP3QuZW5kOnQuc3RhcnQpLG51bGw9PXQucmlnaHQmJih0LnJpZ2h0PW4/dC5zdGFydDp0LmVuZCksbnVsbCE9dC5ib3R0b20mJih0LnRvcD1lLnNjcm9sbEhlaWdodC1lLmNsaWVudEhlaWdodC10LmJvdHRvbSksbiYmMCE9X0goKT8obnVsbCE9dC5sZWZ0JiYodC5yaWdodD1lLnNjcm9sbFdpZHRoLWUuY2xpZW50V2lkdGgtdC5sZWZ0KSwyPT1fSCgpP3QubGVmdD10LnJpZ2h0OjE9PV9IKCkmJih0LmxlZnQ9dC5yaWdodD8tdC5yaWdodDp0LnJpZ2h0KSk6bnVsbCE9dC5yaWdodCYmKHQubGVmdD1lLnNjcm9sbFdpZHRoLWUuY2xpZW50V2lkdGgtdC5yaWdodCksdGhpcy5fYXBwbHlTY3JvbGxUb09wdGlvbnModCl9X2FwcGx5U2Nyb2xsVG9PcHRpb25zKHQpe2NvbnN0IGU9dGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7eUgoKT9lLnNjcm9sbFRvKHQpOihudWxsIT10LnRvcCYmKGUuc2Nyb2xsVG9wPXQudG9wKSxudWxsIT10LmxlZnQmJihlLnNjcm9sbExlZnQ9dC5sZWZ0KSl9bWVhc3VyZVNjcm9sbE9mZnNldCh0KXtjb25zdCBlPSJsZWZ0IixuPSJyaWdodCIsbz10aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtpZigidG9wIj09dClyZXR1cm4gby5zY3JvbGxUb3A7aWYoImJvdHRvbSI9PXQpcmV0dXJuIG8uc2Nyb2xsSGVpZ2h0LW8uY2xpZW50SGVpZ2h0LW8uc2Nyb2xsVG9wO2NvbnN0IGk9dGhpcy5kaXImJiJydGwiPT10aGlzLmRpci52YWx1ZTtyZXR1cm4ic3RhcnQiPT10P3Q9aT9uOmU6ImVuZCI9PXQmJih0PWk/ZTpuKSxpJiYyPT1fSCgpP3Q9PWU/by5zY3JvbGxXaWR0aC1vLmNsaWVudFdpZHRoLW8uc2Nyb2xsTGVmdDpvLnNjcm9sbExlZnQ6aSYmMT09X0goKT90PT1lP28uc2Nyb2xsTGVmdCtvLnNjcm9sbFdpZHRoLW8uY2xpZW50V2lkdGg6LW8uc2Nyb2xsTGVmdDp0PT1lP28uc2Nyb2xsTGVmdDpvLnNjcm9sbFdpZHRoLW8uY2xpZW50V2lkdGgtby5zY3JvbGxMZWZ0fX1KTC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SkwpKGdmKEtoKSxnZihLTCksZ2YobUMpLGdmKHZGLDgpKX0sSkwuybVkaXI9aG8oe3R5cGU6Skwsc2VsZWN0b3JzOltbIiIsImNkay1zY3JvbGxhYmxlIiwiIl0sWyIiLCJjZGtTY3JvbGxhYmxlIiwiIl1dfSksSkwuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpLaH0se3R5cGU6S0x9LHt0eXBlOm1DfSx7dHlwZTp2RixkZWNvcmF0b3JzOlt7dHlwZTpCcn1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihKTCxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJbY2RrLXNjcm9sbGFibGVdLCBbY2RrU2Nyb2xsYWJsZV0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6S2h9LHt0eXBlOktMfSx7dHlwZTptQ30se3R5cGU6dkYsZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX1dfSksbnVsbCk7Y2xhc3MgUUx7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuX3BsYXRmb3JtPXQsdGhpcy5fY2hhbmdlPW5ldyBCLHRoaXMuX2NoYW5nZUxpc3RlbmVyPXQ9Pnt0aGlzLl9jaGFuZ2UubmV4dCh0KX0sdGhpcy5fZG9jdW1lbnQ9bixlLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e2lmKHQuaXNCcm93c2VyKXtjb25zdCB0PXRoaXMuX2dldFdpbmRvdygpO3QuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9jaGFuZ2VMaXN0ZW5lciksdC5hZGRFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsdGhpcy5fY2hhbmdlTGlzdGVuZXIpfXRoaXMuY2hhbmdlKCkuc3Vic2NyaWJlKCgoKT0+dGhpcy5fdmlld3BvcnRTaXplPW51bGwpKX0pKX1uZ09uRGVzdHJveSgpe2lmKHRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcil7Y29uc3QgdD10aGlzLl9nZXRXaW5kb3coKTt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5fY2hhbmdlTGlzdGVuZXIpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigib3JpZW50YXRpb25jaGFuZ2UiLHRoaXMuX2NoYW5nZUxpc3RlbmVyKX10aGlzLl9jaGFuZ2UuY29tcGxldGUoKX1nZXRWaWV3cG9ydFNpemUoKXt0aGlzLl92aWV3cG9ydFNpemV8fHRoaXMuX3VwZGF0ZVZpZXdwb3J0U2l6ZSgpO2NvbnN0IHQ9e3dpZHRoOnRoaXMuX3ZpZXdwb3J0U2l6ZS53aWR0aCxoZWlnaHQ6dGhpcy5fdmlld3BvcnRTaXplLmhlaWdodH07cmV0dXJuIHRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcnx8KHRoaXMuX3ZpZXdwb3J0U2l6ZT1udWxsKSx0fWdldFZpZXdwb3J0UmVjdCgpe2NvbnN0IHQ9dGhpcy5nZXRWaWV3cG9ydFNjcm9sbFBvc2l0aW9uKCkse3dpZHRoOmUsaGVpZ2h0Om59PXRoaXMuZ2V0Vmlld3BvcnRTaXplKCk7cmV0dXJue3RvcDp0LnRvcCxsZWZ0OnQubGVmdCxib3R0b206dC50b3ArbixyaWdodDp0LmxlZnQrZSxoZWlnaHQ6bix3aWR0aDplfX1nZXRWaWV3cG9ydFNjcm9sbFBvc2l0aW9uKCl7aWYoIXRoaXMuX3BsYXRmb3JtLmlzQnJvd3NlcilyZXR1cm57dG9wOjAsbGVmdDowfTtjb25zdCB0PXRoaXMuX2RvY3VtZW50LGU9dGhpcy5fZ2V0V2luZG93KCksbj10LmRvY3VtZW50RWxlbWVudCxvPW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJue3RvcDotby50b3B8fHQuYm9keS5zY3JvbGxUb3B8fGUuc2Nyb2xsWXx8bi5zY3JvbGxUb3B8fDAsbGVmdDotby5sZWZ0fHx0LmJvZHkuc2Nyb2xsTGVmdHx8ZS5zY3JvbGxYfHxuLnNjcm9sbExlZnR8fDB9fWNoYW5nZSh0PTIwKXtyZXR1cm4gdD4wP3RoaXMuX2NoYW5nZS5waXBlKGdlKHQpKTp0aGlzLl9jaGFuZ2V9X2dldFdpbmRvdygpe3JldHVybiB0aGlzLl9kb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93fV91cGRhdGVWaWV3cG9ydFNpemUoKXtjb25zdCB0PXRoaXMuX2dldFdpbmRvdygpO3RoaXMuX3ZpZXdwb3J0U2l6ZT10aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXI/e3dpZHRoOnQuaW5uZXJXaWR0aCxoZWlnaHQ6dC5pbm5lckhlaWdodH06e3dpZHRoOjAsaGVpZ2h0OjB9fX1RTC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UUwpKFRyKGNIKSxUcihtQyksVHIoc00sOCkpfSxRTC7JtXByb3Y9U24oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgUUwoVHIoY0gpLFRyKG1DKSxUcihzTSw4KSl9LHRva2VuOlFMLHByb3ZpZGVkSW46InJvb3QifSksUUwuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpjSH0se3R5cGU6bUN9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbc01dfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFFMLFt7dHlwZTpVbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpjSH0se3R5cGU6bUN9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbc01dfV19XX0pLG51bGwpO2NvbnN0ICRMPSJ1bmRlZmluZWQiIT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lP2N0Om90O2NsYXNzIHRCIGV4dGVuZHMgSkx7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscil7aWYoc3VwZXIodCxhLG4saSksdGhpcy5lbGVtZW50UmVmPXQsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9ZSx0aGlzLl9zY3JvbGxTdHJhdGVneT1vLHRoaXMuX2RldGFjaGVkU3ViamVjdD1uZXcgQix0aGlzLl9yZW5kZXJlZFJhbmdlU3ViamVjdD1uZXcgQix0aGlzLl9vcmllbnRhdGlvbj0idmVydGljYWwiLHRoaXMuX2FwcGVuZE9ubHk9ITEsdGhpcy5zY3JvbGxlZEluZGV4Q2hhbmdlPW5ldyBUKCh0PT50aGlzLl9zY3JvbGxTdHJhdGVneS5zY3JvbGxlZEluZGV4Q2hhbmdlLnN1YnNjcmliZSgoZT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKCk9PnRoaXMubmdab25lLnJ1bigoKCk9PnQubmV4dChlKSkpKSkpKSkpLHRoaXMucmVuZGVyZWRSYW5nZVN0cmVhbT10aGlzLl9yZW5kZXJlZFJhbmdlU3ViamVjdCx0aGlzLl90b3RhbENvbnRlbnRTaXplPTAsdGhpcy5fdG90YWxDb250ZW50V2lkdGg9IiIsdGhpcy5fdG90YWxDb250ZW50SGVpZ2h0PSIiLHRoaXMuX3JlbmRlcmVkUmFuZ2U9e3N0YXJ0OjAsZW5kOjB9LHRoaXMuX2RhdGFMZW5ndGg9MCx0aGlzLl92aWV3cG9ydFNpemU9MCx0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXQ9MCx0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXROZWVkc1Jld3JpdGU9ITEsdGhpcy5faXNDaGFuZ2VEZXRlY3Rpb25QZW5kaW5nPSExLHRoaXMuX3J1bkFmdGVyQ2hhbmdlRGV0ZWN0aW9uPVtdLHRoaXMuX3ZpZXdwb3J0Q2hhbmdlcz11LkVNUFRZLCFvJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3cgRXJyb3IoJ0Vycm9yOiBjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQgcmVxdWlyZXMgdGhlICJpdGVtU2l6ZSIgcHJvcGVydHkgdG8gYmUgc2V0LicpO3RoaXMuX3ZpZXdwb3J0Q2hhbmdlcz1yLmNoYW5nZSgpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLmNoZWNrVmlld3BvcnRTaXplKCl9KSl9Z2V0IG9yaWVudGF0aW9uKCl7cmV0dXJuIHRoaXMuX29yaWVudGF0aW9ufXNldCBvcmllbnRhdGlvbih0KXt0aGlzLl9vcmllbnRhdGlvbiE9PXQmJih0aGlzLl9vcmllbnRhdGlvbj10LHRoaXMuX2NhbGN1bGF0ZVNwYWNlclNpemUoKSl9Z2V0IGFwcGVuZE9ubHkoKXtyZXR1cm4gdGhpcy5fYXBwZW5kT25seX1zZXQgYXBwZW5kT25seSh0KXt0aGlzLl9hcHBlbmRPbmx5PWVIKHQpfW5nT25Jbml0KCl7c3VwZXIubmdPbkluaXQoKSx0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCgpPT57dGhpcy5fbWVhc3VyZVZpZXdwb3J0U2l6ZSgpLHRoaXMuX3Njcm9sbFN0cmF0ZWd5LmF0dGFjaCh0aGlzKSx0aGlzLmVsZW1lbnRTY3JvbGxlZCgpLnBpcGUoQmUobnVsbCksZ2UoMCwkTCkpLnN1YnNjcmliZSgoKCk9PnRoaXMuX3Njcm9sbFN0cmF0ZWd5Lm9uQ29udGVudFNjcm9sbGVkKCkpKSx0aGlzLl9tYXJrQ2hhbmdlRGV0ZWN0aW9uTmVlZGVkKCl9KSkpKX1uZ09uRGVzdHJveSgpe3RoaXMuZGV0YWNoKCksdGhpcy5fc2Nyb2xsU3RyYXRlZ3kuZGV0YWNoKCksdGhpcy5fcmVuZGVyZWRSYW5nZVN1YmplY3QuY29tcGxldGUoKSx0aGlzLl9kZXRhY2hlZFN1YmplY3QuY29tcGxldGUoKSx0aGlzLl92aWV3cG9ydENoYW5nZXMudW5zdWJzY3JpYmUoKSxzdXBlci5uZ09uRGVzdHJveSgpfWF0dGFjaCh0KXtpZih0aGlzLl9mb3JPZiYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93IEVycm9yKCJDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQgaXMgYWxyZWFkeSBhdHRhY2hlZC4iKTt0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9Pnt0aGlzLl9mb3JPZj10LHRoaXMuX2Zvck9mLmRhdGFTdHJlYW0ucGlwZShqZSh0aGlzLl9kZXRhY2hlZFN1YmplY3QpKS5zdWJzY3JpYmUoKHQ9Pntjb25zdCBlPXQubGVuZ3RoO2UhPT10aGlzLl9kYXRhTGVuZ3RoJiYodGhpcy5fZGF0YUxlbmd0aD1lLHRoaXMuX3Njcm9sbFN0cmF0ZWd5Lm9uRGF0YUxlbmd0aENoYW5nZWQoKSksdGhpcy5fZG9DaGFuZ2VEZXRlY3Rpb24oKX0pKX0pKX1kZXRhY2goKXt0aGlzLl9mb3JPZj1udWxsLHRoaXMuX2RldGFjaGVkU3ViamVjdC5uZXh0KCl9Z2V0RGF0YUxlbmd0aCgpe3JldHVybiB0aGlzLl9kYXRhTGVuZ3RofWdldFZpZXdwb3J0U2l6ZSgpe3JldHVybiB0aGlzLl92aWV3cG9ydFNpemV9Z2V0UmVuZGVyZWRSYW5nZSgpe3JldHVybiB0aGlzLl9yZW5kZXJlZFJhbmdlfXNldFRvdGFsQ29udGVudFNpemUodCl7dGhpcy5fdG90YWxDb250ZW50U2l6ZSE9PXQmJih0aGlzLl90b3RhbENvbnRlbnRTaXplPXQsdGhpcy5fY2FsY3VsYXRlU3BhY2VyU2l6ZSgpLHRoaXMuX21hcmtDaGFuZ2VEZXRlY3Rpb25OZWVkZWQoKSl9c2V0UmVuZGVyZWRSYW5nZSh0KXsoCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBlKHQsbil7cmV0dXJuIHQuc3RhcnQ9PW4uc3RhcnQmJnQuZW5kPT1uLmVuZH0pKHRoaXMuX3JlbmRlcmVkUmFuZ2UsdCl8fCh0aGlzLmFwcGVuZE9ubHkmJih0PXtzdGFydDowLGVuZDpNYXRoLm1heCh0aGlzLl9yZW5kZXJlZFJhbmdlLmVuZCx0LmVuZCl9KSx0aGlzLl9yZW5kZXJlZFJhbmdlU3ViamVjdC5uZXh0KHRoaXMuX3JlbmRlcmVkUmFuZ2U9dCksdGhpcy5fbWFya0NoYW5nZURldGVjdGlvbk5lZWRlZCgoKCk9PnRoaXMuX3Njcm9sbFN0cmF0ZWd5Lm9uQ29udGVudFJlbmRlcmVkKCkpKSl9Z2V0T2Zmc2V0VG9SZW5kZXJlZENvbnRlbnRTdGFydCgpe3JldHVybiB0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXROZWVkc1Jld3JpdGU/bnVsbDp0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXR9c2V0UmVuZGVyZWRDb250ZW50T2Zmc2V0KHQsZT0idG8tc3RhcnQiKXtjb25zdCBuPSJob3Jpem9udGFsIj09dGhpcy5vcmllbnRhdGlvbixvPW4/IlgiOiJZIjtsZXQgaT1gdHJhbnNsYXRlJHtvfSgke051bWJlcigobiYmKHRoaXMuZGlyJiYicnRsIj09dGhpcy5kaXIudmFsdWUpPy0xOjEpKnQpfXB4KWA7dGhpcy5fcmVuZGVyZWRDb250ZW50T2Zmc2V0PXQsInRvLWVuZCI9PT1lJiYoaSs9YCB0cmFuc2xhdGUke299KC0xMDAlKWAsdGhpcy5fcmVuZGVyZWRDb250ZW50T2Zmc2V0TmVlZHNSZXdyaXRlPSEwKSx0aGlzLl9yZW5kZXJlZENvbnRlbnRUcmFuc2Zvcm0hPWkmJih0aGlzLl9yZW5kZXJlZENvbnRlbnRUcmFuc2Zvcm09aSx0aGlzLl9tYXJrQ2hhbmdlRGV0ZWN0aW9uTmVlZGVkKCgoKT0+e3RoaXMuX3JlbmRlcmVkQ29udGVudE9mZnNldE5lZWRzUmV3cml0ZT8odGhpcy5fcmVuZGVyZWRDb250ZW50T2Zmc2V0LT10aGlzLm1lYXN1cmVSZW5kZXJlZENvbnRlbnRTaXplKCksdGhpcy5fcmVuZGVyZWRDb250ZW50T2Zmc2V0TmVlZHNSZXdyaXRlPSExLHRoaXMuc2V0UmVuZGVyZWRDb250ZW50T2Zmc2V0KHRoaXMuX3JlbmRlcmVkQ29udGVudE9mZnNldCkpOnRoaXMuX3Njcm9sbFN0cmF0ZWd5Lm9uUmVuZGVyZWRPZmZzZXRDaGFuZ2VkKCl9KSkpfXNjcm9sbFRvT2Zmc2V0KHQsZT0iYXV0byIpe2NvbnN0IG49e2JlaGF2aW9yOmV9OyJob3Jpem9udGFsIj09PXRoaXMub3JpZW50YXRpb24/bi5zdGFydD10Om4udG9wPXQsdGhpcy5zY3JvbGxUbyhuKX1zY3JvbGxUb0luZGV4KHQsZT0iYXV0byIpe3RoaXMuX3Njcm9sbFN0cmF0ZWd5LnNjcm9sbFRvSW5kZXgodCxlKX1tZWFzdXJlU2Nyb2xsT2Zmc2V0KHQpe3JldHVybiBzdXBlci5tZWFzdXJlU2Nyb2xsT2Zmc2V0KHR8fCgiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uPyJzdGFydCI6InRvcCIpKX1tZWFzdXJlUmVuZGVyZWRDb250ZW50U2l6ZSgpe2NvbnN0IHQ9dGhpcy5fY29udGVudFdyYXBwZXIubmF0aXZlRWxlbWVudDtyZXR1cm4iaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uP3Qub2Zmc2V0V2lkdGg6dC5vZmZzZXRIZWlnaHR9bWVhc3VyZVJhbmdlU2l6ZSh0KXtyZXR1cm4gdGhpcy5fZm9yT2Y/dGhpcy5fZm9yT2YubWVhc3VyZVJhbmdlU2l6ZSh0LHRoaXMub3JpZW50YXRpb24pOjB9Y2hlY2tWaWV3cG9ydFNpemUoKXt0aGlzLl9tZWFzdXJlVmlld3BvcnRTaXplKCksdGhpcy5fc2Nyb2xsU3RyYXRlZ3kub25EYXRhTGVuZ3RoQ2hhbmdlZCgpfV9tZWFzdXJlVmlld3BvcnRTaXplKCl7Y29uc3QgdD10aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDt0aGlzLl92aWV3cG9ydFNpemU9Imhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbj90LmNsaWVudFdpZHRoOnQuY2xpZW50SGVpZ2h0fV9tYXJrQ2hhbmdlRGV0ZWN0aW9uTmVlZGVkKHQpe3QmJnRoaXMuX3J1bkFmdGVyQ2hhbmdlRGV0ZWN0aW9uLnB1c2godCksdGhpcy5faXNDaGFuZ2VEZXRlY3Rpb25QZW5kaW5nfHwodGhpcy5faXNDaGFuZ2VEZXRlY3Rpb25QZW5kaW5nPSEwLHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKCk9Pnt0aGlzLl9kb0NoYW5nZURldGVjdGlvbigpfSkpKSkpfV9kb0NoYW5nZURldGVjdGlvbigpe3RoaXMuX2lzQ2hhbmdlRGV0ZWN0aW9uUGVuZGluZz0hMSx0aGlzLl9jb250ZW50V3JhcHBlci5uYXRpdmVFbGVtZW50LnN0eWxlLnRyYW5zZm9ybT10aGlzLl9yZW5kZXJlZENvbnRlbnRUcmFuc2Zvcm0sdGhpcy5uZ1pvbmUucnVuKCgoKT0+dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpKTtjb25zdCB0PXRoaXMuX3J1bkFmdGVyQ2hhbmdlRGV0ZWN0aW9uO3RoaXMuX3J1bkFmdGVyQ2hhbmdlRGV0ZWN0aW9uPVtdO2Zvcihjb25zdCBlIG9mIHQpZSgpfV9jYWxjdWxhdGVTcGFjZXJTaXplKCl7dGhpcy5fdG90YWxDb250ZW50SGVpZ2h0PSJob3Jpem9udGFsIj09PXRoaXMub3JpZW50YXRpb24/IiI6YCR7dGhpcy5fdG90YWxDb250ZW50U2l6ZX1weGAsdGhpcy5fdG90YWxDb250ZW50V2lkdGg9Imhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbj9gJHt0aGlzLl90b3RhbENvbnRlbnRTaXplfXB4YDoiIn19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpmdW5jdGlvbiBlQih0LGUsbil7aWYoIW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KXJldHVybiAwO2NvbnN0IG89bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4iaG9yaXpvbnRhbCI9PT10PyJzdGFydCI9PT1lP28ubGVmdDpvLnJpZ2h0OiJzdGFydCI9PT1lP28udG9wOm8uYm90dG9tfXRCLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx0QikoZ2YoS2gpLGdmKE9iKSxnZihtQyksZ2YoWUwsOCksZ2YodkYsOCksZ2YoS0wpLGdmKFFMKSl9LHRCLsm1Y21wPXNvKHt0eXBlOnRCLHNlbGVjdG9yczpbWyJjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJlZ5KEdMLDcpLDImZSl7bGV0IHQ7QnkodD1VeSgpKSYmKG4uX2NvbnRlbnRXcmFwcGVyPXQuZmlyc3QpfX0saG9zdEF0dHJzOlsxLCJjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQiXSxob3N0VmFyczo0LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZjdSgiY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLWhvcml6b250YWwiLCJob3Jpem9udGFsIj09PW4ub3JpZW50YXRpb24pKCJjZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24tdmVydGljYWwiLCJob3Jpem9udGFsIiE9PW4ub3JpZW50YXRpb24pfSxpbnB1dHM6e29yaWVudGF0aW9uOiJvcmllbnRhdGlvbiIsYXBwZW5kT25seToiYXBwZW5kT25seSJ9LG91dHB1dHM6e3Njcm9sbGVkSW5kZXhDaGFuZ2U6InNjcm9sbGVkSW5kZXhDaGFuZ2UifSxmZWF0dXJlczpbamgoW3twcm92aWRlOkpMLHVzZUV4aXN0aW5nOnRCfV0pLFFwXSxuZ0NvbnRlbnRTZWxlY3RvcnM6WyIqIl0sZGVjbHM6NCx2YXJzOjQsY29uc3RzOltbMSwiY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlciJdLFsiY29udGVudFdyYXBwZXIiLCIiXSxbMSwiY2RrLXZpcnR1YWwtc2Nyb2xsLXNwYWNlciJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoSGYoKSxDZigwLCJkaXYiLDAsMSksRmYoMiksTWYoKSx2ZigzLCJkaXYiLDIpKSwyJmUmJihEYygzKSxsdSgid2lkdGgiLG4uX3RvdGFsQ29udGVudFdpZHRoKSgiaGVpZ2h0IixuLl90b3RhbENvbnRlbnRIZWlnaHQpKX0sc3R5bGVzOlsiY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0e2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6YXV0bztjb250YWluOnN0cmljdDt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt3aWxsLWNoYW5nZTpzY3JvbGwtcG9zaXRpb247LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9LmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2NvbnRhaW46Y29udGVudH1bZGlyPXJ0bF0gLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXJ7cmlnaHQ6MDtsZWZ0OmF1dG99LmNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVye21pbi1oZWlnaHQ6MTAwJX0uY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLWhvcml6b250YWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXI+ZGw6bm90KFtjZGtWaXJ0dWFsRm9yXSksLmNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyPm9sOm5vdChbY2RrVmlydHVhbEZvcl0pLC5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24taG9yaXpvbnRhbCAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcj50YWJsZTpub3QoW2Nka1ZpcnR1YWxGb3JdKSwuY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLWhvcml6b250YWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXI+dWw6bm90KFtjZGtWaXJ0dWFsRm9yXSl7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowO21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjA7Ym9yZGVyLWxlZnQtd2lkdGg6MDtib3JkZXItcmlnaHQtd2lkdGg6MDtvdXRsaW5lOm5vbmV9LmNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi12ZXJ0aWNhbCAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcnttaW4td2lkdGg6MTAwJX0uY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLXZlcnRpY2FsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyPmRsOm5vdChbY2RrVmlydHVhbEZvcl0pLC5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24tdmVydGljYWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXI+b2w6bm90KFtjZGtWaXJ0dWFsRm9yXSksLmNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi12ZXJ0aWNhbCAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcj50YWJsZTpub3QoW2Nka1ZpcnR1YWxGb3JdKSwuY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLXZlcnRpY2FsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyPnVsOm5vdChbY2RrVmlydHVhbEZvcl0pe3BhZGRpbmctdG9wOjA7cGFkZGluZy1ib3R0b206MDttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowO2JvcmRlci10b3Atd2lkdGg6MDtib3JkZXItYm90dG9tLXdpZHRoOjA7b3V0bGluZTpub25lfS5jZGstdmlydHVhbC1zY3JvbGwtc3BhY2Vye3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MXB4O3dpZHRoOjFweDt0cmFuc2Zvcm0tb3JpZ2luOjAgMH1bZGlyPXJ0bF0gLmNkay12aXJ0dWFsLXNjcm9sbC1zcGFjZXJ7cmlnaHQ6MDtsZWZ0OmF1dG87dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDB9XG4iXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSx0Qi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOktofSx7dHlwZTpPYn0se3R5cGU6bUN9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbWUxdfV19LHt0eXBlOnZGLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOktMfSx7dHlwZTpRTH1dLHRCLnByb3BEZWNvcmF0b3JzPXtvcmllbnRhdGlvbjpbe3R5cGU6Ul99XSxhcHBlbmRPbmx5Olt7dHlwZTpSX31dLHNjcm9sbGVkSW5kZXhDaGFuZ2U6W3t0eXBlOkVffV0sX2NvbnRlbnRXcmFwcGVyOlt7dHlwZTphcixhcmdzOlsiY29udGVudFdyYXBwZXIiLHtzdGF0aWM6ITB9XX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHRCLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6ImNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCIsdGVtcGxhdGU6J1x4M2MhLS1cbiAgV3JhcCB0aGUgcmVuZGVyZWQgY29udGVudCBpbiBhbiBlbGVtZW50IHRoYXQgd2lsbCBiZSB1c2VkIHRvIG9mZnNldCBpdCBiYXNlZCBvbiB0aGUgc2Nyb2xsXG4gIHBvc2l0aW9uLlxuLS1ceDNlXG48ZGl2ICNjb250ZW50V3JhcHBlciBjbGFzcz0iY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlciI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuXHgzYyEtLVxuICBTcGFjZXIgdXNlZCB0byBmb3JjZSB0aGUgc2Nyb2xsaW5nIGNvbnRhaW5lciB0byB0aGUgY29ycmVjdCBzaXplIGZvciB0aGUgKnRvdGFsKiBudW1iZXIgb2YgaXRlbXNcbiAgc28gdGhhdCB0aGUgc2Nyb2xsYmFyIGNhcHR1cmVzIHRoZSBzaXplIG9mIHRoZSBlbnRpcmUgZGF0YSBzZXQuXG4tLVx4M2VcbjxkaXYgY2xhc3M9ImNkay12aXJ0dWFsLXNjcm9sbC1zcGFjZXIiXG4gICAgIFtzdHlsZS53aWR0aF09Il90b3RhbENvbnRlbnRXaWR0aCIgW3N0eWxlLmhlaWdodF09Il90b3RhbENvbnRlbnRIZWlnaHQiPjwvZGl2PlxuJyxob3N0OntjbGFzczoiY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0IiwiW2NsYXNzLmNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi1ob3Jpem9udGFsXSI6J29yaWVudGF0aW9uID09PSAiaG9yaXpvbnRhbCInLCJbY2xhc3MuY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLXZlcnRpY2FsXSI6J29yaWVudGF0aW9uICE9PSAiaG9yaXpvbnRhbCInfSxlbmNhcHN1bGF0aW9uOlduLk5vbmUsY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaCxwcm92aWRlcnM6W3twcm92aWRlOkpMLHVzZUV4aXN0aW5nOnRCfV0sc3R5bGVzOlsiY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0e2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6YXV0bztjb250YWluOnN0cmljdDt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt3aWxsLWNoYW5nZTpzY3JvbGwtcG9zaXRpb247LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9LmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2NvbnRhaW46Y29udGVudH1bZGlyPXJ0bF0gLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXJ7cmlnaHQ6MDtsZWZ0OmF1dG99LmNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVye21pbi1oZWlnaHQ6MTAwJX0uY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLWhvcml6b250YWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXI+ZGw6bm90KFtjZGtWaXJ0dWFsRm9yXSksLmNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyPm9sOm5vdChbY2RrVmlydHVhbEZvcl0pLC5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24taG9yaXpvbnRhbCAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcj50YWJsZTpub3QoW2Nka1ZpcnR1YWxGb3JdKSwuY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLWhvcml6b250YWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXI+dWw6bm90KFtjZGtWaXJ0dWFsRm9yXSl7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowO21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjA7Ym9yZGVyLWxlZnQtd2lkdGg6MDtib3JkZXItcmlnaHQtd2lkdGg6MDtvdXRsaW5lOm5vbmV9LmNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi12ZXJ0aWNhbCAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcnttaW4td2lkdGg6MTAwJX0uY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLXZlcnRpY2FsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyPmRsOm5vdChbY2RrVmlydHVhbEZvcl0pLC5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24tdmVydGljYWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXI+b2w6bm90KFtjZGtWaXJ0dWFsRm9yXSksLmNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi12ZXJ0aWNhbCAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcj50YWJsZTpub3QoW2Nka1ZpcnR1YWxGb3JdKSwuY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLXZlcnRpY2FsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyPnVsOm5vdChbY2RrVmlydHVhbEZvcl0pe3BhZGRpbmctdG9wOjA7cGFkZGluZy1ib3R0b206MDttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowO2JvcmRlci10b3Atd2lkdGg6MDtib3JkZXItYm90dG9tLXdpZHRoOjA7b3V0bGluZTpub25lfS5jZGstdmlydHVhbC1zY3JvbGwtc3BhY2Vye3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MXB4O3dpZHRoOjFweDt0cmFuc2Zvcm0tb3JpZ2luOjAgMH1bZGlyPXJ0bF0gLmNkay12aXJ0dWFsLXNjcm9sbC1zcGFjZXJ7cmlnaHQ6MDtsZWZ0OmF1dG87dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDB9XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOktofSx7dHlwZTpPYn0se3R5cGU6bUN9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbWUxdfV19LHt0eXBlOnZGLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOktMfSx7dHlwZTpRTH1dfSkse3Njcm9sbGVkSW5kZXhDaGFuZ2U6W3t0eXBlOkVffV0sb3JpZW50YXRpb246W3t0eXBlOlJffV0sYXBwZW5kT25seTpbe3R5cGU6Ul99XSxfY29udGVudFdyYXBwZXI6W3t0eXBlOmFyLGFyZ3M6WyJjb250ZW50V3JhcHBlciIse3N0YXRpYzohMH1dfV19KTtjbGFzcyBuQntjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSl7dGhpcy5fdmlld0NvbnRhaW5lclJlZj10LHRoaXMuX3RlbXBsYXRlPWUsdGhpcy5fZGlmZmVycz1uLHRoaXMuX3ZpZXdSZXBlYXRlcj1vLHRoaXMuX3ZpZXdwb3J0PWksdGhpcy52aWV3Q2hhbmdlPW5ldyBCLHRoaXMuX2RhdGFTb3VyY2VDaGFuZ2VzPW5ldyBCLHRoaXMuZGF0YVN0cmVhbT10aGlzLl9kYXRhU291cmNlQ2hhbmdlcy5waXBlKEJlKG51bGwpLE5lKCksVmUoKChbdCxlXSk9PnRoaXMuX2NoYW5nZURhdGFTb3VyY2UodCxlKSkpLEZlKDEpKSx0aGlzLl9kaWZmZXI9bnVsbCx0aGlzLl9uZWVkc1VwZGF0ZT0hMSx0aGlzLl9kZXN0cm95ZWQ9bmV3IEIsdGhpcy5kYXRhU3RyZWFtLnN1YnNjcmliZSgodD0+e3RoaXMuX2RhdGE9dCx0aGlzLl9vblJlbmRlcmVkRGF0YUNoYW5nZSgpfSkpLHRoaXMuX3ZpZXdwb3J0LnJlbmRlcmVkUmFuZ2VTdHJlYW0ucGlwZShqZSh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKHQ9Pnt0aGlzLl9yZW5kZXJlZFJhbmdlPXQsYS5ydW4oKCgpPT50aGlzLnZpZXdDaGFuZ2UubmV4dCh0aGlzLl9yZW5kZXJlZFJhbmdlKSkpLHRoaXMuX29uUmVuZGVyZWREYXRhQ2hhbmdlKCl9KSksdGhpcy5fdmlld3BvcnQuYXR0YWNoKHRoaXMpfWdldCBjZGtWaXJ0dWFsRm9yT2YoKXtyZXR1cm4gdGhpcy5fY2RrVmlydHVhbEZvck9mfXNldCBjZGtWaXJ0dWFsRm9yT2YodCl7dGhpcy5fY2RrVmlydHVhbEZvck9mPXQsRkwodCk/dGhpcy5fZGF0YVNvdXJjZUNoYW5nZXMubmV4dCh0KTp0aGlzLl9kYXRhU291cmNlQ2hhbmdlcy5uZXh0KG5ldyBMTChMdCh0KT90OkFycmF5LmZyb20odHx8W10pKSl9Z2V0IGNka1ZpcnR1YWxGb3JUcmFja0J5KCl7cmV0dXJuIHRoaXMuX2Nka1ZpcnR1YWxGb3JUcmFja0J5fXNldCBjZGtWaXJ0dWFsRm9yVHJhY2tCeSh0KXt0aGlzLl9uZWVkc1VwZGF0ZT0hMCx0aGlzLl9jZGtWaXJ0dWFsRm9yVHJhY2tCeT10PyhlLG4pPT50KGUrKHRoaXMuX3JlbmRlcmVkUmFuZ2U/dGhpcy5fcmVuZGVyZWRSYW5nZS5zdGFydDowKSxuKTp2b2lkIDB9c2V0IGNka1ZpcnR1YWxGb3JUZW1wbGF0ZSh0KXt0JiYodGhpcy5fbmVlZHNVcGRhdGU9ITAsdGhpcy5fdGVtcGxhdGU9dCl9Z2V0IGNka1ZpcnR1YWxGb3JUZW1wbGF0ZUNhY2hlU2l6ZSgpe3JldHVybiB0aGlzLl92aWV3UmVwZWF0ZXIudmlld0NhY2hlU2l6ZX1zZXQgY2RrVmlydHVhbEZvclRlbXBsYXRlQ2FjaGVTaXplKHQpe3RoaXMuX3ZpZXdSZXBlYXRlci52aWV3Q2FjaGVTaXplPW5IKHQpfW1lYXN1cmVSYW5nZVNpemUodCxlKXtpZih0LnN0YXJ0Pj10LmVuZClyZXR1cm4gMDtpZigodC5zdGFydDx0aGlzLl9yZW5kZXJlZFJhbmdlLnN0YXJ0fHx0LmVuZD50aGlzLl9yZW5kZXJlZFJhbmdlLmVuZCkmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyBFcnJvcigiRXJyb3I6IGF0dGVtcHRlZCB0byBtZWFzdXJlIGFuIGl0ZW0gdGhhdCBpc24ndCByZW5kZXJlZC4iKTtjb25zdCBuPXQuc3RhcnQtdGhpcy5fcmVuZGVyZWRSYW5nZS5zdGFydCxvPXQuZW5kLXQuc3RhcnQ7bGV0IGksYTtmb3IobGV0IHQ9MDt0PG87dCsrKXtjb25zdCBlPXRoaXMuX3ZpZXdDb250YWluZXJSZWYuZ2V0KHQrbik7aWYoZSYmZS5yb290Tm9kZXMubGVuZ3RoKXtpPWE9ZS5yb290Tm9kZXNbMF07YnJlYWt9fWZvcihsZXQgdD1vLTE7dD4tMTt0LS0pe2NvbnN0IGU9dGhpcy5fdmlld0NvbnRhaW5lclJlZi5nZXQodCtuKTtpZihlJiZlLnJvb3ROb2Rlcy5sZW5ndGgpe2E9ZS5yb290Tm9kZXNbZS5yb290Tm9kZXMubGVuZ3RoLTFdO2JyZWFrfX1yZXR1cm4gaSYmYT9lQihlLCJlbmQiLGEpLWVCKGUsInN0YXJ0IixpKTowfW5nRG9DaGVjaygpe2lmKHRoaXMuX2RpZmZlciYmdGhpcy5fbmVlZHNVcGRhdGUpe2NvbnN0IHQ9dGhpcy5fZGlmZmVyLmRpZmYodGhpcy5fcmVuZGVyZWRJdGVtcyk7dD90aGlzLl9hcHBseUNoYW5nZXModCk6dGhpcy5fdXBkYXRlQ29udGV4dCgpLHRoaXMuX25lZWRzVXBkYXRlPSExfX1uZ09uRGVzdHJveSgpe3RoaXMuX3ZpZXdwb3J0LmRldGFjaCgpLHRoaXMuX2RhdGFTb3VyY2VDaGFuZ2VzLm5leHQodm9pZCAwKSx0aGlzLl9kYXRhU291cmNlQ2hhbmdlcy5jb21wbGV0ZSgpLHRoaXMudmlld0NoYW5nZS5jb21wbGV0ZSgpLHRoaXMuX2Rlc3Ryb3llZC5uZXh0KCksdGhpcy5fZGVzdHJveWVkLmNvbXBsZXRlKCksdGhpcy5fdmlld1JlcGVhdGVyLmRldGFjaCgpfV9vblJlbmRlcmVkRGF0YUNoYW5nZSgpe3RoaXMuX3JlbmRlcmVkUmFuZ2UmJih0aGlzLl9yZW5kZXJlZEl0ZW1zPXRoaXMuX2RhdGEuc2xpY2UodGhpcy5fcmVuZGVyZWRSYW5nZS5zdGFydCx0aGlzLl9yZW5kZXJlZFJhbmdlLmVuZCksdGhpcy5fZGlmZmVyfHwodGhpcy5fZGlmZmVyPXRoaXMuX2RpZmZlcnMuZmluZCh0aGlzLl9yZW5kZXJlZEl0ZW1zKS5jcmVhdGUoKCh0LGUpPT50aGlzLmNka1ZpcnR1YWxGb3JUcmFja0J5P3RoaXMuY2RrVmlydHVhbEZvclRyYWNrQnkodCxlKTplKSkpLHRoaXMuX25lZWRzVXBkYXRlPSEwKX1fY2hhbmdlRGF0YVNvdXJjZSh0LGUpe3JldHVybiB0JiZ0LmRpc2Nvbm5lY3QodGhpcyksdGhpcy5fbmVlZHNVcGRhdGU9ITAsZT9lLmNvbm5lY3QodGhpcyk6enQoKX1fdXBkYXRlQ29udGV4dCgpe2NvbnN0IHQ9dGhpcy5fZGF0YS5sZW5ndGg7bGV0IGU9dGhpcy5fdmlld0NvbnRhaW5lclJlZi5sZW5ndGg7Zm9yKDtlLS07KXtjb25zdCBuPXRoaXMuX3ZpZXdDb250YWluZXJSZWYuZ2V0KGUpO24uY29udGV4dC5pbmRleD10aGlzLl9yZW5kZXJlZFJhbmdlLnN0YXJ0K2Usbi5jb250ZXh0LmNvdW50PXQsdGhpcy5fdXBkYXRlQ29tcHV0ZWRDb250ZXh0UHJvcGVydGllcyhuLmNvbnRleHQpLG4uZGV0ZWN0Q2hhbmdlcygpfX1fYXBwbHlDaGFuZ2VzKHQpe3RoaXMuX3ZpZXdSZXBlYXRlci5hcHBseUNoYW5nZXModCx0aGlzLl92aWV3Q29udGFpbmVyUmVmLCgodCxlLG4pPT50aGlzLl9nZXRFbWJlZGRlZFZpZXdBcmdzKHQsbikpLCh0PT50Lml0ZW0pKSx0LmZvckVhY2hJZGVudGl0eUNoYW5nZSgodD0+e3RoaXMuX3ZpZXdDb250YWluZXJSZWYuZ2V0KHQuY3VycmVudEluZGV4KS5jb250ZXh0LiRpbXBsaWNpdD10Lml0ZW19KSk7Y29uc3QgZT10aGlzLl9kYXRhLmxlbmd0aDtsZXQgbj10aGlzLl92aWV3Q29udGFpbmVyUmVmLmxlbmd0aDtmb3IoO24tLTspe2NvbnN0IHQ9dGhpcy5fdmlld0NvbnRhaW5lclJlZi5nZXQobik7dC5jb250ZXh0LmluZGV4PXRoaXMuX3JlbmRlcmVkUmFuZ2Uuc3RhcnQrbix0LmNvbnRleHQuY291bnQ9ZSx0aGlzLl91cGRhdGVDb21wdXRlZENvbnRleHRQcm9wZXJ0aWVzKHQuY29udGV4dCl9fV91cGRhdGVDb21wdXRlZENvbnRleHRQcm9wZXJ0aWVzKHQpe3QuZmlyc3Q9MD09PXQuaW5kZXgsdC5sYXN0PXQuaW5kZXg9PT10LmNvdW50LTEsdC5ldmVuPXQuaW5kZXglMj09MCx0Lm9kZD0hdC5ldmVufV9nZXRFbWJlZGRlZFZpZXdBcmdzKHQsZSl7cmV0dXJue3RlbXBsYXRlUmVmOnRoaXMuX3RlbXBsYXRlLGNvbnRleHQ6eyRpbXBsaWNpdDp0Lml0ZW0sY2RrVmlydHVhbEZvck9mOnRoaXMuX2Nka1ZpcnR1YWxGb3JPZixpbmRleDotMSxjb3VudDotMSxmaXJzdDohMSxsYXN0OiExLG9kZDohMSxldmVuOiExfSxpbmRleDplfX19bkIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG5CKShnZihGYiksZ2YoRWIpLGdmKGhiKSxnZihXTCksZ2YodEIsNCksZ2YobUMpKX0sbkIuybVkaXI9aG8oe3R5cGU6bkIsc2VsZWN0b3JzOltbIiIsImNka1ZpcnR1YWxGb3IiLCIiLCJjZGtWaXJ0dWFsRm9yT2YiLCIiXV0saW5wdXRzOntjZGtWaXJ0dWFsRm9yT2Y6ImNka1ZpcnR1YWxGb3JPZiIsY2RrVmlydHVhbEZvclRyYWNrQnk6ImNka1ZpcnR1YWxGb3JUcmFja0J5IixjZGtWaXJ0dWFsRm9yVGVtcGxhdGU6ImNka1ZpcnR1YWxGb3JUZW1wbGF0ZSIsY2RrVmlydHVhbEZvclRlbXBsYXRlQ2FjaGVTaXplOiJjZGtWaXJ0dWFsRm9yVGVtcGxhdGVDYWNoZVNpemUifSxmZWF0dXJlczpbamgoW3twcm92aWRlOldMLHVzZUNsYXNzOlZMfV0pXX0pLG5CLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6RmJ9LHt0eXBlOkVifSx7dHlwZTpoYn0se3R5cGU6VkwsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbV0xdfV19LHt0eXBlOnRCLGRlY29yYXRvcnM6W3t0eXBlOmpyfV19LHt0eXBlOm1DfV0sbkIucHJvcERlY29yYXRvcnM9e2Nka1ZpcnR1YWxGb3JPZjpbe3R5cGU6Ul99XSxjZGtWaXJ0dWFsRm9yVHJhY2tCeTpbe3R5cGU6Ul99XSxjZGtWaXJ0dWFsRm9yVGVtcGxhdGU6W3t0eXBlOlJffV0sY2RrVmlydHVhbEZvclRlbXBsYXRlQ2FjaGVTaXplOlt7dHlwZTpSX31dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKG5CLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IltjZGtWaXJ0dWFsRm9yXVtjZGtWaXJ0dWFsRm9yT2ZdIixwcm92aWRlcnM6W3twcm92aWRlOldMLHVzZUNsYXNzOlZMfV19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpGYn0se3R5cGU6RWJ9LHt0eXBlOmhifSx7dHlwZTpWTCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltXTF19XX0se3R5cGU6dEIsZGVjb3JhdG9yczpbe3R5cGU6anJ9XX0se3R5cGU6bUN9XX0pLHtjZGtWaXJ0dWFsRm9yT2Y6W3t0eXBlOlJffV0sY2RrVmlydHVhbEZvclRyYWNrQnk6W3t0eXBlOlJffV0sY2RrVmlydHVhbEZvclRlbXBsYXRlOlt7dHlwZTpSX31dLGNka1ZpcnR1YWxGb3JUZW1wbGF0ZUNhY2hlU2l6ZTpbe3R5cGU6Ul99XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3Mgb0J7fW9CLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxvQil9LG9CLsm1bW9kPWZvKHt0eXBlOm9CfSksb0IuybVpbmo9RG4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIob0IsW3t0eXBlOkxfLGFyZ3M6W3tleHBvcnRzOltKTF0sZGVjbGFyYXRpb25zOltKTF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhvQix7ZGVjbGFyYXRpb25zOltKTF0sZXhwb3J0czpbSkxdfSk7Y2xhc3MgaUJ7fWZ1bmN0aW9uIGFCKCl7dGhyb3cgRXJyb3IoIkhvc3QgYWxyZWFkeSBoYXMgYSBwb3J0YWwgYXR0YWNoZWQiKX1pQi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8aUIpfSxpQi7JtW1vZD1mbyh7dHlwZTppQn0pLGlCLsm1aW5qPURuKHtpbXBvcnRzOltbT0YsZEgsb0JdLE9GLG9CXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoaUIsW3t0eXBlOkxfLGFyZ3M6W3tpbXBvcnRzOltPRixkSCxvQl0sZXhwb3J0czpbT0Ysb0IsWEwsbkIsdEJdLGRlY2xhcmF0aW9uczpbWEwsbkIsdEJdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oaUIse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVybltYTCxuQix0Ql19LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bT0YsZEgsb0JdfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW09GLG9CLFhMLG5CLHRCXX19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIHJCe2F0dGFjaCh0KXtyZXR1cm4oInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJihudWxsPT10JiYoZnVuY3Rpb24gZSgpe3Rocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGF0dGFjaCBhIHBvcnRhbCB0byBhIG51bGwgUG9ydGFsT3V0bGV0Iil9KSgpLHQuaGFzQXR0YWNoZWQoKSYmYUIoKSksdGhpcy5fYXR0YWNoZWRIb3N0PXQsdC5hdHRhY2godGhpcyl9ZGV0YWNoKCl7bGV0IHQ9dGhpcy5fYXR0YWNoZWRIb3N0O251bGwhPXQ/KHRoaXMuX2F0dGFjaGVkSG9zdD1udWxsLHQuZGV0YWNoKCkpOigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmKGZ1bmN0aW9uIGUoKXt0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBkZXRhY2ggYSBwb3J0YWwgdGhhdCBpcyBub3QgYXR0YWNoZWQgdG8gYSBob3N0Iil9KSgpfWdldCBpc0F0dGFjaGVkKCl7cmV0dXJuIG51bGwhPXRoaXMuX2F0dGFjaGVkSG9zdH1zZXRBdHRhY2hlZEhvc3QodCl7dGhpcy5fYXR0YWNoZWRIb3N0PXR9fWNsYXNzIHNCIGV4dGVuZHMgckJ7Y29uc3RydWN0b3IodCxlLG4sbyl7c3VwZXIoKSx0aGlzLmNvbXBvbmVudD10LHRoaXMudmlld0NvbnRhaW5lclJlZj1lLHRoaXMuaW5qZWN0b3I9bix0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcj1vfX1jbGFzcyBsQiBleHRlbmRzIHJCe2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcigpLHRoaXMudGVtcGxhdGVSZWY9dCx0aGlzLnZpZXdDb250YWluZXJSZWY9ZSx0aGlzLmNvbnRleHQ9bn1nZXQgb3JpZ2luKCl7cmV0dXJuIHRoaXMudGVtcGxhdGVSZWYuZWxlbWVudFJlZn1hdHRhY2godCxlPXRoaXMuY29udGV4dCl7cmV0dXJuIHRoaXMuY29udGV4dD1lLHN1cGVyLmF0dGFjaCh0KX1kZXRhY2goKXtyZXR1cm4gdGhpcy5jb250ZXh0PXZvaWQgMCxzdXBlci5kZXRhY2goKX19Y2xhc3MgY0IgZXh0ZW5kcyByQntjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuZWxlbWVudD10IGluc3RhbmNlb2YgS2g/dC5uYXRpdmVFbGVtZW50OnR9fWNsYXNzIGRCe2NvbnN0cnVjdG9yKCl7dGhpcy5faXNEaXNwb3NlZD0hMSx0aGlzLmF0dGFjaERvbVBvcnRhbD1udWxsfWhhc0F0dGFjaGVkKCl7cmV0dXJuISF0aGlzLl9hdHRhY2hlZFBvcnRhbH1hdHRhY2godCl7cmV0dXJuKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiYodHx8KGZ1bmN0aW9uIGUoKXt0aHJvdyBFcnJvcigiTXVzdCBwcm92aWRlIGEgcG9ydGFsIHRvIGF0dGFjaCIpfSkoKSx0aGlzLmhhc0F0dGFjaGVkKCkmJmFCKCksdGhpcy5faXNEaXNwb3NlZCYmKGZ1bmN0aW9uIG4oKXt0aHJvdyBFcnJvcigiVGhpcyBQb3J0YWxPdXRsZXQgaGFzIGFscmVhZHkgYmVlbiBkaXNwb3NlZCIpfSkoKSksdCBpbnN0YW5jZW9mIHNCPyh0aGlzLl9hdHRhY2hlZFBvcnRhbD10LHRoaXMuYXR0YWNoQ29tcG9uZW50UG9ydGFsKHQpKTp0IGluc3RhbmNlb2YgbEI/KHRoaXMuX2F0dGFjaGVkUG9ydGFsPXQsdGhpcy5hdHRhY2hUZW1wbGF0ZVBvcnRhbCh0KSk6dGhpcy5hdHRhY2hEb21Qb3J0YWwmJnQgaW5zdGFuY2VvZiBjQj8odGhpcy5fYXR0YWNoZWRQb3J0YWw9dCx0aGlzLmF0dGFjaERvbVBvcnRhbCh0KSk6dm9pZCgoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJihmdW5jdGlvbiBvKCl7dGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYXR0YWNoIGFuIHVua25vd24gUG9ydGFsIHR5cGUuIEJhc2VQb3J0YWxPdXRsZXQgYWNjZXB0cyBlaXRoZXIgYSBDb21wb25lbnRQb3J0YWwgb3IgYSBUZW1wbGF0ZVBvcnRhbC4iKX0pKCkpfWRldGFjaCgpe3RoaXMuX2F0dGFjaGVkUG9ydGFsJiYodGhpcy5fYXR0YWNoZWRQb3J0YWwuc2V0QXR0YWNoZWRIb3N0KG51bGwpLHRoaXMuX2F0dGFjaGVkUG9ydGFsPW51bGwpLHRoaXMuX2ludm9rZURpc3Bvc2VGbigpfWRpc3Bvc2UoKXt0aGlzLmhhc0F0dGFjaGVkKCkmJnRoaXMuZGV0YWNoKCksdGhpcy5faW52b2tlRGlzcG9zZUZuKCksdGhpcy5faXNEaXNwb3NlZD0hMH1zZXREaXNwb3NlRm4odCl7dGhpcy5fZGlzcG9zZUZuPXR9X2ludm9rZURpc3Bvc2VGbigpe3RoaXMuX2Rpc3Bvc2VGbiYmKHRoaXMuX2Rpc3Bvc2VGbigpLHRoaXMuX2Rpc3Bvc2VGbj1udWxsKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIHBCIGV4dGVuZHMgZEJ7Y29uc3RydWN0b3IodCxlLG4sbyxpKXtzdXBlcigpLHRoaXMub3V0bGV0RWxlbWVudD10LHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcj1lLHRoaXMuX2FwcFJlZj1uLHRoaXMuX2RlZmF1bHRJbmplY3Rvcj1vLHRoaXMuYXR0YWNoRG9tUG9ydGFsPXQ9PntpZighdGhpcy5fZG9jdW1lbnQmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyBFcnJvcigiQ2Fubm90IGF0dGFjaCBET00gcG9ydGFsIHdpdGhvdXQgX2RvY3VtZW50IGNvbnN0cnVjdG9yIHBhcmFtZXRlciIpO2NvbnN0IGU9dC5lbGVtZW50O2lmKCFlLnBhcmVudE5vZGUmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyBFcnJvcigiRE9NIHBvcnRhbCBjb250ZW50IG11c3QgYmUgYXR0YWNoZWQgdG8gYSBwYXJlbnQgbm9kZS4iKTtjb25zdCBuPXRoaXMuX2RvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImRvbS1wb3J0YWwiKTtlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG4sZSksdGhpcy5vdXRsZXRFbGVtZW50LmFwcGVuZENoaWxkKGUpLHRoaXMuX2F0dGFjaGVkUG9ydGFsPXQsc3VwZXIuc2V0RGlzcG9zZUZuKCgoKT0+e24ucGFyZW50Tm9kZSYmbi5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChlLG4pfSkpfSx0aGlzLl9kb2N1bWVudD1pfWF0dGFjaENvbXBvbmVudFBvcnRhbCh0KXtjb25zdCBlPSh0LmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcnx8dGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyKS5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0LmNvbXBvbmVudCk7bGV0IG47cmV0dXJuIHQudmlld0NvbnRhaW5lclJlZj8obj10LnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGUsdC52aWV3Q29udGFpbmVyUmVmLmxlbmd0aCx0LmluamVjdG9yfHx0LnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3IpLHRoaXMuc2V0RGlzcG9zZUZuKCgoKT0+bi5kZXN0cm95KCkpKSk6KG49ZS5jcmVhdGUodC5pbmplY3Rvcnx8dGhpcy5fZGVmYXVsdEluamVjdG9yKSx0aGlzLl9hcHBSZWYuYXR0YWNoVmlldyhuLmhvc3RWaWV3KSx0aGlzLnNldERpc3Bvc2VGbigoKCk9Pnt0aGlzLl9hcHBSZWYuZGV0YWNoVmlldyhuLmhvc3RWaWV3KSxuLmRlc3Ryb3koKX0pKSksdGhpcy5vdXRsZXRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2dldENvbXBvbmVudFJvb3ROb2RlKG4pKSx0aGlzLl9hdHRhY2hlZFBvcnRhbD10LG59YXR0YWNoVGVtcGxhdGVQb3J0YWwodCl7bGV0IGU9dC52aWV3Q29udGFpbmVyUmVmLG49ZS5jcmVhdGVFbWJlZGRlZFZpZXcodC50ZW1wbGF0ZVJlZix0LmNvbnRleHQpO3JldHVybiBuLnJvb3ROb2Rlcy5mb3JFYWNoKCh0PT50aGlzLm91dGxldEVsZW1lbnQuYXBwZW5kQ2hpbGQodCkpKSxuLmRldGVjdENoYW5nZXMoKSx0aGlzLnNldERpc3Bvc2VGbigoKCk9PntsZXQgdD1lLmluZGV4T2Yobik7LTEhPT10JiZlLnJlbW92ZSh0KX0pKSx0aGlzLl9hdHRhY2hlZFBvcnRhbD10LG59ZGlzcG9zZSgpe3N1cGVyLmRpc3Bvc2UoKSxudWxsIT10aGlzLm91dGxldEVsZW1lbnQucGFyZW50Tm9kZSYmdGhpcy5vdXRsZXRFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5vdXRsZXRFbGVtZW50KX1fZ2V0Q29tcG9uZW50Um9vdE5vZGUodCl7cmV0dXJuIHQuaG9zdFZpZXcucm9vdE5vZGVzWzBdfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgbUIgZXh0ZW5kcyBsQntjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsZSl9fW1CLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxtQikoZ2YoRWIpLGdmKEZiKSl9LG1CLsm1ZGlyPWhvKHt0eXBlOm1CLHNlbGVjdG9yczpbWyIiLCJjZGtQb3J0YWwiLCIiXV0sZXhwb3J0QXM6WyJjZGtQb3J0YWwiXSxmZWF0dXJlczpbUXBdfSksbUIuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpFYn0se3R5cGU6RmJ9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKG1CLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IltjZGtQb3J0YWxdIixleHBvcnRBczoiY2RrUG9ydGFsIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkVifSx7dHlwZTpGYn1dfSksbnVsbCk7Y2xhc3MgZkIgZXh0ZW5kcyBtQnt9ZkIuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PVVhKGZCKSkpKG58fGZCKX19KSgpLGZCLsm1ZGlyPWhvKHt0eXBlOmZCLHNlbGVjdG9yczpbWyIiLCJjZGstcG9ydGFsIiwiIl0sWyIiLCJwb3J0YWwiLCIiXV0sZXhwb3J0QXM6WyJjZGtQb3J0YWwiXSxmZWF0dXJlczpbamgoW3twcm92aWRlOm1CLHVzZUV4aXN0aW5nOmZCfV0pLFFwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZkIsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW2Nkay1wb3J0YWxdLCBbcG9ydGFsXSIsZXhwb3J0QXM6ImNka1BvcnRhbCIscHJvdmlkZXJzOlt7cHJvdmlkZTptQix1c2VFeGlzdGluZzpmQn1dfV19XSxudWxsLG51bGwpO2NsYXNzIHVCIGV4dGVuZHMgZEJ7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKCksdGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPXQsdGhpcy5fdmlld0NvbnRhaW5lclJlZj1lLHRoaXMuX2lzSW5pdGlhbGl6ZWQ9ITEsdGhpcy5hdHRhY2hlZD1uZXcgU3ksdGhpcy5hdHRhY2hEb21Qb3J0YWw9dD0+e2lmKCF0aGlzLl9kb2N1bWVudCYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93IEVycm9yKCJDYW5ub3QgYXR0YWNoIERPTSBwb3J0YWwgd2l0aG91dCBfZG9jdW1lbnQgY29uc3RydWN0b3IgcGFyYW1ldGVyIik7Y29uc3QgZT10LmVsZW1lbnQ7aWYoIWUucGFyZW50Tm9kZSYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93IEVycm9yKCJET00gcG9ydGFsIGNvbnRlbnQgbXVzdCBiZSBhdHRhY2hlZCB0byBhIHBhcmVudCBub2RlLiIpO2NvbnN0IG49dGhpcy5fZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiZG9tLXBvcnRhbCIpO3Quc2V0QXR0YWNoZWRIb3N0KHRoaXMpLGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobixlKSx0aGlzLl9nZXRSb290Tm9kZSgpLmFwcGVuZENoaWxkKGUpLHRoaXMuX2F0dGFjaGVkUG9ydGFsPXQsc3VwZXIuc2V0RGlzcG9zZUZuKCgoKT0+e24ucGFyZW50Tm9kZSYmbi5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChlLG4pfSkpfSx0aGlzLl9kb2N1bWVudD1ufWdldCBwb3J0YWwoKXtyZXR1cm4gdGhpcy5fYXR0YWNoZWRQb3J0YWx9c2V0IHBvcnRhbCh0KXsoIXRoaXMuaGFzQXR0YWNoZWQoKXx8dHx8dGhpcy5faXNJbml0aWFsaXplZCkmJih0aGlzLmhhc0F0dGFjaGVkKCkmJnN1cGVyLmRldGFjaCgpLHQmJnN1cGVyLmF0dGFjaCh0KSx0aGlzLl9hdHRhY2hlZFBvcnRhbD10KX1nZXQgYXR0YWNoZWRSZWYoKXtyZXR1cm4gdGhpcy5fYXR0YWNoZWRSZWZ9bmdPbkluaXQoKXt0aGlzLl9pc0luaXRpYWxpemVkPSEwfW5nT25EZXN0cm95KCl7c3VwZXIuZGlzcG9zZSgpLHRoaXMuX2F0dGFjaGVkUG9ydGFsPW51bGwsdGhpcy5fYXR0YWNoZWRSZWY9bnVsbH1hdHRhY2hDb21wb25lbnRQb3J0YWwodCl7dC5zZXRBdHRhY2hlZEhvc3QodGhpcyk7Y29uc3QgZT1udWxsIT10LnZpZXdDb250YWluZXJSZWY/dC52aWV3Q29udGFpbmVyUmVmOnRoaXMuX3ZpZXdDb250YWluZXJSZWYsbj0odC5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJ8fHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodC5jb21wb25lbnQpLG89ZS5jcmVhdGVDb21wb25lbnQobixlLmxlbmd0aCx0LmluamVjdG9yfHxlLmluamVjdG9yKTtyZXR1cm4gZSE9PXRoaXMuX3ZpZXdDb250YWluZXJSZWYmJnRoaXMuX2dldFJvb3ROb2RlKCkuYXBwZW5kQ2hpbGQoby5ob3N0Vmlldy5yb290Tm9kZXNbMF0pLHN1cGVyLnNldERpc3Bvc2VGbigoKCk9Pm8uZGVzdHJveSgpKSksdGhpcy5fYXR0YWNoZWRQb3J0YWw9dCx0aGlzLl9hdHRhY2hlZFJlZj1vLHRoaXMuYXR0YWNoZWQuZW1pdChvKSxvfWF0dGFjaFRlbXBsYXRlUG9ydGFsKHQpe3Quc2V0QXR0YWNoZWRIb3N0KHRoaXMpO2NvbnN0IGU9dGhpcy5fdmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodC50ZW1wbGF0ZVJlZix0LmNvbnRleHQpO3JldHVybiBzdXBlci5zZXREaXNwb3NlRm4oKCgpPT50aGlzLl92aWV3Q29udGFpbmVyUmVmLmNsZWFyKCkpKSx0aGlzLl9hdHRhY2hlZFBvcnRhbD10LHRoaXMuX2F0dGFjaGVkUmVmPWUsdGhpcy5hdHRhY2hlZC5lbWl0KGUpLGV9X2dldFJvb3ROb2RlKCl7Y29uc3QgdD10aGlzLl92aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudDtyZXR1cm4gdC5ub2RlVHlwZT09PXQuRUxFTUVOVF9OT0RFP3Q6dC5wYXJlbnROb2RlfX11Qi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dUIpKGdmKEdoKSxnZihGYiksZ2Yoc00pKX0sdUIuybVkaXI9aG8oe3R5cGU6dUIsc2VsZWN0b3JzOltbIiIsImNka1BvcnRhbE91dGxldCIsIiJdXSxpbnB1dHM6e3BvcnRhbDpbImNka1BvcnRhbE91dGxldCIsInBvcnRhbCJdfSxvdXRwdXRzOnthdHRhY2hlZDoiYXR0YWNoZWQifSxleHBvcnRBczpbImNka1BvcnRhbE91dGxldCJdLGZlYXR1cmVzOltRcF19KSx1Qi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkdofSx7dHlwZTpGYn0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfV0sdUIucHJvcERlY29yYXRvcnM9e2F0dGFjaGVkOlt7dHlwZTpFX31dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHVCLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IltjZGtQb3J0YWxPdXRsZXRdIixleHBvcnRBczoiY2RrUG9ydGFsT3V0bGV0IixpbnB1dHM6WyJwb3J0YWw6IGNka1BvcnRhbE91dGxldCJdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6R2h9LHt0eXBlOkZifSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19XX0pLHthdHRhY2hlZDpbe3R5cGU6RV99XX0pO2NsYXNzIGdCIGV4dGVuZHMgdUJ7fWdCLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1VYShnQikpKShufHxnQil9fSkoKSxnQi7JtWRpcj1obyh7dHlwZTpnQixzZWxlY3RvcnM6W1siIiwiY2RrUG9ydGFsSG9zdCIsIiJdLFsiIiwicG9ydGFsSG9zdCIsIiJdXSxpbnB1dHM6e3BvcnRhbDpbImNka1BvcnRhbEhvc3QiLCJwb3J0YWwiXX0sZXhwb3J0QXM6WyJjZGtQb3J0YWxIb3N0Il0sZmVhdHVyZXM6W2poKFt7cHJvdmlkZTp1Qix1c2VFeGlzdGluZzpnQn1dKSxRcF19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGdCLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IltjZGtQb3J0YWxIb3N0XSwgW3BvcnRhbEhvc3RdIixleHBvcnRBczoiY2RrUG9ydGFsSG9zdCIsaW5wdXRzOlsicG9ydGFsOiBjZGtQb3J0YWxIb3N0Il0scHJvdmlkZXJzOlt7cHJvdmlkZTp1Qix1c2VFeGlzdGluZzpnQn1dfV19XSxudWxsLG51bGwpO2NsYXNzIGhCe31oQi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8aEIpfSxoQi7JtW1vZD1mbyh7dHlwZTpoQn0pLGhCLsm1aW5qPURuKHt9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGhCLFt7dHlwZTpMXyxhcmdzOlt7ZXhwb3J0czpbbUIsdUIsZkIsZ0JdLGRlY2xhcmF0aW9uczpbbUIsdUIsZkIsZ0JdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oaEIse2RlY2xhcmF0aW9uczpbbUIsdUIsZkIsZ0JdLGV4cG9ydHM6W21CLHVCLGZCLGdCXX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgYkI9eUgoKTtjbGFzcyB5Qntjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX3ZpZXdwb3J0UnVsZXI9dCx0aGlzLl9wcmV2aW91c0hUTUxTdHlsZXM9e3RvcDoiIixsZWZ0OiIifSx0aGlzLl9pc0VuYWJsZWQ9ITEsdGhpcy5fZG9jdW1lbnQ9ZX1hdHRhY2goKXt9ZW5hYmxlKCl7aWYodGhpcy5fY2FuQmVFbmFibGVkKCkpe2NvbnN0IHQ9dGhpcy5fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O3RoaXMuX3ByZXZpb3VzU2Nyb2xsUG9zaXRpb249dGhpcy5fdmlld3BvcnRSdWxlci5nZXRWaWV3cG9ydFNjcm9sbFBvc2l0aW9uKCksdGhpcy5fcHJldmlvdXNIVE1MU3R5bGVzLmxlZnQ9dC5zdHlsZS5sZWZ0fHwiIix0aGlzLl9wcmV2aW91c0hUTUxTdHlsZXMudG9wPXQuc3R5bGUudG9wfHwiIix0LnN0eWxlLmxlZnQ9YUgoLXRoaXMuX3ByZXZpb3VzU2Nyb2xsUG9zaXRpb24ubGVmdCksdC5zdHlsZS50b3A9YUgoLXRoaXMuX3ByZXZpb3VzU2Nyb2xsUG9zaXRpb24udG9wKSx0LmNsYXNzTGlzdC5hZGQoImNkay1nbG9iYWwtc2Nyb2xsYmxvY2siKSx0aGlzLl9pc0VuYWJsZWQ9ITB9fWRpc2FibGUoKXtpZih0aGlzLl9pc0VuYWJsZWQpe2NvbnN0IHQ9dGhpcy5fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGU9dC5zdHlsZSxuPXRoaXMuX2RvY3VtZW50LmJvZHkuc3R5bGUsbz1lLnNjcm9sbEJlaGF2aW9yfHwiIixpPW4uc2Nyb2xsQmVoYXZpb3J8fCIiO3RoaXMuX2lzRW5hYmxlZD0hMSxlLmxlZnQ9dGhpcy5fcHJldmlvdXNIVE1MU3R5bGVzLmxlZnQsZS50b3A9dGhpcy5fcHJldmlvdXNIVE1MU3R5bGVzLnRvcCx0LmNsYXNzTGlzdC5yZW1vdmUoImNkay1nbG9iYWwtc2Nyb2xsYmxvY2siKSxiQiYmKGUuc2Nyb2xsQmVoYXZpb3I9bi5zY3JvbGxCZWhhdmlvcj0iYXV0byIpLHdpbmRvdy5zY3JvbGwodGhpcy5fcHJldmlvdXNTY3JvbGxQb3NpdGlvbi5sZWZ0LHRoaXMuX3ByZXZpb3VzU2Nyb2xsUG9zaXRpb24udG9wKSxiQiYmKGUuc2Nyb2xsQmVoYXZpb3I9byxuLnNjcm9sbEJlaGF2aW9yPWkpfX1fY2FuQmVFbmFibGVkKCl7aWYodGhpcy5fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiY2RrLWdsb2JhbC1zY3JvbGxibG9jayIpfHx0aGlzLl9pc0VuYWJsZWQpcmV0dXJuITE7Y29uc3QgdD10aGlzLl9kb2N1bWVudC5ib2R5LGU9dGhpcy5fdmlld3BvcnRSdWxlci5nZXRWaWV3cG9ydFNpemUoKTtyZXR1cm4gdC5zY3JvbGxIZWlnaHQ+ZS5oZWlnaHR8fHQuc2Nyb2xsV2lkdGg+ZS53aWR0aH19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIF9CKCl7cmV0dXJuIEVycm9yKCJTY3JvbGwgc3RyYXRlZ3kgaGFzIGFscmVhZHkgYmVlbiBhdHRhY2hlZC4iKX1jbGFzcyBDQntjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLl9zY3JvbGxEaXNwYXRjaGVyPXQsdGhpcy5fbmdab25lPWUsdGhpcy5fdmlld3BvcnRSdWxlcj1uLHRoaXMuX2NvbmZpZz1vLHRoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbj1udWxsLHRoaXMuX2RldGFjaD0oKT0+e3RoaXMuZGlzYWJsZSgpLHRoaXMuX292ZXJsYXlSZWYuaGFzQXR0YWNoZWQoKSYmdGhpcy5fbmdab25lLnJ1bigoKCk9PnRoaXMuX292ZXJsYXlSZWYuZGV0YWNoKCkpKX19YXR0YWNoKHQpe2lmKHRoaXMuX292ZXJsYXlSZWYmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyBfQigpO3RoaXMuX292ZXJsYXlSZWY9dH1lbmFibGUoKXtpZih0aGlzLl9zY3JvbGxTdWJzY3JpcHRpb24pcmV0dXJuO2NvbnN0IHQ9dGhpcy5fc2Nyb2xsRGlzcGF0Y2hlci5zY3JvbGxlZCgwKTt0aGlzLl9jb25maWcmJnRoaXMuX2NvbmZpZy50aHJlc2hvbGQmJnRoaXMuX2NvbmZpZy50aHJlc2hvbGQ+MT8odGhpcy5faW5pdGlhbFNjcm9sbFBvc2l0aW9uPXRoaXMuX3ZpZXdwb3J0UnVsZXIuZ2V0Vmlld3BvcnRTY3JvbGxQb3NpdGlvbigpLnRvcCx0aGlzLl9zY3JvbGxTdWJzY3JpcHRpb249dC5zdWJzY3JpYmUoKCgpPT57Y29uc3QgdD10aGlzLl92aWV3cG9ydFJ1bGVyLmdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKS50b3A7TWF0aC5hYnModC10aGlzLl9pbml0aWFsU2Nyb2xsUG9zaXRpb24pPnRoaXMuX2NvbmZpZy50aHJlc2hvbGQ/dGhpcy5fZGV0YWNoKCk6dGhpcy5fb3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpfSkpKTp0aGlzLl9zY3JvbGxTdWJzY3JpcHRpb249dC5zdWJzY3JpYmUodGhpcy5fZGV0YWNoKX1kaXNhYmxlKCl7dGhpcy5fc2Nyb2xsU3Vic2NyaXB0aW9uJiYodGhpcy5fc2Nyb2xsU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fc2Nyb2xsU3Vic2NyaXB0aW9uPW51bGwpfWRldGFjaCgpe3RoaXMuZGlzYWJsZSgpLHRoaXMuX292ZXJsYXlSZWY9bnVsbH19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIE1Ce2VuYWJsZSgpe31kaXNhYmxlKCl7fWF0dGFjaCgpe319Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2Z1bmN0aW9uIHZCKHQsZSl7cmV0dXJuIGUuc29tZSgoZT0+dC5ib3R0b208ZS50b3B8fHQudG9wPmUuYm90dG9tfHx0LnJpZ2h0PGUubGVmdHx8dC5sZWZ0PmUucmlnaHQpKX1mdW5jdGlvbiB4Qih0LGUpe3JldHVybiBlLnNvbWUoKGU9PnQudG9wPGUudG9wfHx0LmJvdHRvbT5lLmJvdHRvbXx8dC5sZWZ0PGUubGVmdHx8dC5yaWdodD5lLnJpZ2h0KSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIE9Ce2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMuX3Njcm9sbERpc3BhdGNoZXI9dCx0aGlzLl92aWV3cG9ydFJ1bGVyPWUsdGhpcy5fbmdab25lPW4sdGhpcy5fY29uZmlnPW8sdGhpcy5fc2Nyb2xsU3Vic2NyaXB0aW9uPW51bGx9YXR0YWNoKHQpe2lmKHRoaXMuX292ZXJsYXlSZWYmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyBfQigpO3RoaXMuX292ZXJsYXlSZWY9dH1lbmFibGUoKXtpZighdGhpcy5fc2Nyb2xsU3Vic2NyaXB0aW9uKXt0aGlzLl9zY3JvbGxTdWJzY3JpcHRpb249dGhpcy5fc2Nyb2xsRGlzcGF0Y2hlci5zY3JvbGxlZCh0aGlzLl9jb25maWc/dGhpcy5fY29uZmlnLnNjcm9sbFRocm90dGxlOjApLnN1YnNjcmliZSgoKCk9PntpZih0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCksdGhpcy5fY29uZmlnJiZ0aGlzLl9jb25maWcuYXV0b0Nsb3NlKXtjb25zdCB0PXRoaXMuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkse3dpZHRoOmUsaGVpZ2h0Om59PXRoaXMuX3ZpZXdwb3J0UnVsZXIuZ2V0Vmlld3BvcnRTaXplKCk7dkIodCxbe3dpZHRoOmUsaGVpZ2h0Om4sYm90dG9tOm4scmlnaHQ6ZSx0b3A6MCxsZWZ0OjB9XSkmJih0aGlzLmRpc2FibGUoKSx0aGlzLl9uZ1pvbmUucnVuKCgoKT0+dGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKSkpKX19KSl9fWRpc2FibGUoKXt0aGlzLl9zY3JvbGxTdWJzY3JpcHRpb24mJih0aGlzLl9zY3JvbGxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9zY3JvbGxTdWJzY3JpcHRpb249bnVsbCl9ZGV0YWNoKCl7dGhpcy5kaXNhYmxlKCksdGhpcy5fb3ZlcmxheVJlZj1udWxsfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgUEJ7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5fc2Nyb2xsRGlzcGF0Y2hlcj10LHRoaXMuX3ZpZXdwb3J0UnVsZXI9ZSx0aGlzLl9uZ1pvbmU9bix0aGlzLm5vb3A9KCk9Pm5ldyBNQix0aGlzLmNsb3NlPXQ9Pm5ldyBDQih0aGlzLl9zY3JvbGxEaXNwYXRjaGVyLHRoaXMuX25nWm9uZSx0aGlzLl92aWV3cG9ydFJ1bGVyLHQpLHRoaXMuYmxvY2s9KCk9Pm5ldyB5Qih0aGlzLl92aWV3cG9ydFJ1bGVyLHRoaXMuX2RvY3VtZW50KSx0aGlzLnJlcG9zaXRpb249dD0+bmV3IE9CKHRoaXMuX3Njcm9sbERpc3BhdGNoZXIsdGhpcy5fdmlld3BvcnRSdWxlcix0aGlzLl9uZ1pvbmUsdCksdGhpcy5fZG9jdW1lbnQ9b319UEIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFBCKShUcihLTCksVHIoUUwpLFRyKG1DKSxUcihzTSkpfSxQQi7JtXByb3Y9U24oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgUEIoVHIoS0wpLFRyKFFMKSxUcihtQyksVHIoc00pKX0sdG9rZW46UEIscHJvdmlkZWRJbjoicm9vdCJ9KSxQQi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOktMfSx7dHlwZTpRTH0se3R5cGU6bUN9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoUEIsW3t0eXBlOlVtLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOktMfSx7dHlwZTpRTH0se3R5cGU6bUN9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3Mgd0J7Y29uc3RydWN0b3IodCl7aWYodGhpcy5zY3JvbGxTdHJhdGVneT1uZXcgTUIsdGhpcy5wYW5lbENsYXNzPSIiLHRoaXMuaGFzQmFja2Ryb3A9ITEsdGhpcy5iYWNrZHJvcENsYXNzPSJjZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wIix0aGlzLmRpc3Bvc2VPbk5hdmlnYXRpb249ITEsdCl7Y29uc3QgZT1PYmplY3Qua2V5cyh0KTtmb3IoY29uc3QgbiBvZiBlKXZvaWQgMCE9PXRbbl0mJih0aGlzW25dPXRbbl0pfX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIGtCe2NvbnN0cnVjdG9yKHQsZSxuLG8saSl7dGhpcy5vZmZzZXRYPW4sdGhpcy5vZmZzZXRZPW8sdGhpcy5wYW5lbENsYXNzPWksdGhpcy5vcmlnaW5YPXQub3JpZ2luWCx0aGlzLm9yaWdpblk9dC5vcmlnaW5ZLHRoaXMub3ZlcmxheVg9ZS5vdmVybGF5WCx0aGlzLm92ZXJsYXlZPWUub3ZlcmxheVl9fWNsYXNzIFNCe31jbGFzcyBEQntjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuY29ubmVjdGlvblBhaXI9dCx0aGlzLnNjcm9sbGFibGVWaWV3UHJvcGVydGllcz1lfX1mdW5jdGlvbiBSQih0LGUpe2lmKCJ0b3AiIT09ZSYmImJvdHRvbSIhPT1lJiYiY2VudGVyIiE9PWUpdGhyb3cgRXJyb3IoYENvbm5lY3RlZFBvc2l0aW9uOiBJbnZhbGlkICR7dH0gIiR7ZX0iLiBFeHBlY3RlZCAidG9wIiwgImJvdHRvbSIgb3IgImNlbnRlciIuYCl9ZnVuY3Rpb24gRUIodCxlKXtpZigic3RhcnQiIT09ZSYmImVuZCIhPT1lJiYiY2VudGVyIiE9PWUpdGhyb3cgRXJyb3IoYENvbm5lY3RlZFBvc2l0aW9uOiBJbnZhbGlkICR7dH0gIiR7ZX0iLiBFeHBlY3RlZCAic3RhcnQiLCAiZW5kIiBvciAiY2VudGVyIi5gKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovREIuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTprQn0se3R5cGU6U0IsZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX1dO2NsYXNzIEFCe2NvbnN0cnVjdG9yKHQpe3RoaXMuX2F0dGFjaGVkT3ZlcmxheXM9W10sdGhpcy5fZG9jdW1lbnQ9dH1uZ09uRGVzdHJveSgpe3RoaXMuZGV0YWNoKCl9YWRkKHQpe3RoaXMucmVtb3ZlKHQpLHRoaXMuX2F0dGFjaGVkT3ZlcmxheXMucHVzaCh0KX1yZW1vdmUodCl7Y29uc3QgZT10aGlzLl9hdHRhY2hlZE92ZXJsYXlzLmluZGV4T2YodCk7ZT4tMSYmdGhpcy5fYXR0YWNoZWRPdmVybGF5cy5zcGxpY2UoZSwxKSwwPT09dGhpcy5fYXR0YWNoZWRPdmVybGF5cy5sZW5ndGgmJnRoaXMuZGV0YWNoKCl9fUFCLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxBQikoVHIoc00pKX0sQUIuybVwcm92PVNuKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IEFCKFRyKHNNKSl9LHRva2VuOkFCLHByb3ZpZGVkSW46InJvb3QifSksQUIuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEFCLFt7dHlwZTpVbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgVEIgZXh0ZW5kcyBBQntjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLl9rZXlkb3duTGlzdGVuZXI9dD0+e2NvbnN0IGU9dGhpcy5fYXR0YWNoZWRPdmVybGF5cztmb3IobGV0IG49ZS5sZW5ndGgtMTtuPi0xO24tLSlpZihlW25dLl9rZXlkb3duRXZlbnRzLm9ic2VydmVycy5sZW5ndGg+MCl7ZVtuXS5fa2V5ZG93bkV2ZW50cy5uZXh0KHQpO2JyZWFrfX19YWRkKHQpe3N1cGVyLmFkZCh0KSx0aGlzLl9pc0F0dGFjaGVkfHwodGhpcy5fZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9rZXlkb3duTGlzdGVuZXIpLHRoaXMuX2lzQXR0YWNoZWQ9ITApfWRldGFjaCgpe3RoaXMuX2lzQXR0YWNoZWQmJih0aGlzLl9kb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuX2tleWRvd25MaXN0ZW5lciksdGhpcy5faXNBdHRhY2hlZD0hMSl9fVRCLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxUQikoVHIoc00pKX0sVEIuybVwcm92PVNuKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IFRCKFRyKHNNKSl9LHRva2VuOlRCLHByb3ZpZGVkSW46InJvb3QifSksVEIuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFRCLFt7dHlwZTpVbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgTkIgZXh0ZW5kcyBBQntjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQpLHRoaXMuX3BsYXRmb3JtPWUsdGhpcy5fY3Vyc29yU3R5bGVJc1NldD0hMSx0aGlzLl9jbGlja0xpc3RlbmVyPXQ9Pntjb25zdCBlPXZIKHQpLG49dGhpcy5fYXR0YWNoZWRPdmVybGF5cy5zbGljZSgpO2ZvcihsZXQgbz1uLmxlbmd0aC0xO28+LTE7by0tKXtjb25zdCBpPW5bb107aWYoIShpLl9vdXRzaWRlUG9pbnRlckV2ZW50cy5vYnNlcnZlcnMubGVuZ3RoPDEpJiZpLmhhc0F0dGFjaGVkKCkpe2lmKGkub3ZlcmxheUVsZW1lbnQuY29udGFpbnMoZSkpYnJlYWs7aS5fb3V0c2lkZVBvaW50ZXJFdmVudHMubmV4dCh0KX19fX1hZGQodCl7aWYoc3VwZXIuYWRkKHQpLCF0aGlzLl9pc0F0dGFjaGVkKXtjb25zdCB0PXRoaXMuX2RvY3VtZW50LmJvZHk7dC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5fY2xpY2tMaXN0ZW5lciwhMCksdC5hZGRFdmVudExpc3RlbmVyKCJhdXhjbGljayIsdGhpcy5fY2xpY2tMaXN0ZW5lciwhMCksdC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsdGhpcy5fY2xpY2tMaXN0ZW5lciwhMCksdGhpcy5fcGxhdGZvcm0uSU9TJiYhdGhpcy5fY3Vyc29yU3R5bGVJc1NldCYmKHRoaXMuX2N1cnNvck9yaWdpbmFsVmFsdWU9dC5zdHlsZS5jdXJzb3IsdC5zdHlsZS5jdXJzb3I9InBvaW50ZXIiLHRoaXMuX2N1cnNvclN0eWxlSXNTZXQ9ITApLHRoaXMuX2lzQXR0YWNoZWQ9ITB9fWRldGFjaCgpe2lmKHRoaXMuX2lzQXR0YWNoZWQpe2NvbnN0IHQ9dGhpcy5fZG9jdW1lbnQuYm9keTt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9jbGlja0xpc3RlbmVyLCEwKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImF1eGNsaWNrIix0aGlzLl9jbGlja0xpc3RlbmVyLCEwKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzLl9jbGlja0xpc3RlbmVyLCEwKSx0aGlzLl9wbGF0Zm9ybS5JT1MmJnRoaXMuX2N1cnNvclN0eWxlSXNTZXQmJih0LnN0eWxlLmN1cnNvcj10aGlzLl9jdXJzb3JPcmlnaW5hbFZhbHVlLHRoaXMuX2N1cnNvclN0eWxlSXNTZXQ9ITEpLHRoaXMuX2lzQXR0YWNoZWQ9ITF9fX1OQi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TkIpKFRyKHNNKSxUcihjSCkpfSxOQi7JtXByb3Y9U24oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgTkIoVHIoc00pLFRyKGNIKSl9LHRva2VuOk5CLHByb3ZpZGVkSW46InJvb3QifSksTkIuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19LHt0eXBlOmNIfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihOQixbe3R5cGU6VW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfSx7dHlwZTpjSH1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCB6Qj0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30sSUI9dm9pZCAwIT09ekIuX19rYXJtYV9fJiYhIXpCLl9fa2FybWFfX3x8dm9pZCAwIT09ekIuamFzbWluZSYmISF6Qi5qYXNtaW5lfHx2b2lkIDAhPT16Qi5qZXN0JiYhIXpCLmplc3R8fHZvaWQgMCE9PXpCLk1vY2hhJiYhIXpCLk1vY2hhO2NsYXNzIEhCe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fcGxhdGZvcm09ZSx0aGlzLl9kb2N1bWVudD10fW5nT25EZXN0cm95KCl7Y29uc3QgdD10aGlzLl9jb250YWluZXJFbGVtZW50O3QmJnQucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpfWdldENvbnRhaW5lckVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fY29udGFpbmVyRWxlbWVudHx8dGhpcy5fY3JlYXRlQ29udGFpbmVyKCksdGhpcy5fY29udGFpbmVyRWxlbWVudH1fY3JlYXRlQ29udGFpbmVyKCl7Y29uc3QgdD0iY2RrLW92ZXJsYXktY29udGFpbmVyIjtpZih0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXJ8fElCKXtjb25zdCBlPXRoaXMuX2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYC4ke3R9W3BsYXRmb3JtPSJzZXJ2ZXIiXSwgLiR7dH1bcGxhdGZvcm09InRlc3QiXWApO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlW3RdKX1jb25zdCBlPXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuY2xhc3NMaXN0LmFkZCh0KSxJQj9lLnNldEF0dHJpYnV0ZSgicGxhdGZvcm0iLCJ0ZXN0Iik6dGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyfHxlLnNldEF0dHJpYnV0ZSgicGxhdGZvcm0iLCJzZXJ2ZXIiKSx0aGlzLl9kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpLHRoaXMuX2NvbnRhaW5lckVsZW1lbnQ9ZX19SEIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEhCKShUcihzTSksVHIoY0gpKX0sSEIuybVwcm92PVNuKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IEhCKFRyKHNNKSxUcihjSCkpfSx0b2tlbjpIQixwcm92aWRlZEluOiJyb290In0pLEhCLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfSx7dHlwZTpjSH1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoSEIsW3t0eXBlOlVtLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX0se3R5cGU6Y0h9XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgRkJ7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscixzLGwpe3RoaXMuX3BvcnRhbE91dGxldD10LHRoaXMuX2hvc3Q9ZSx0aGlzLl9wYW5lPW4sdGhpcy5fY29uZmlnPW8sdGhpcy5fbmdab25lPWksdGhpcy5fa2V5Ym9hcmREaXNwYXRjaGVyPWEsdGhpcy5fZG9jdW1lbnQ9cix0aGlzLl9sb2NhdGlvbj1zLHRoaXMuX291dHNpZGVDbGlja0Rpc3BhdGNoZXI9bCx0aGlzLl9iYWNrZHJvcEVsZW1lbnQ9bnVsbCx0aGlzLl9iYWNrZHJvcENsaWNrPW5ldyBCLHRoaXMuX2F0dGFjaG1lbnRzPW5ldyBCLHRoaXMuX2RldGFjaG1lbnRzPW5ldyBCLHRoaXMuX2xvY2F0aW9uQ2hhbmdlcz11LkVNUFRZLHRoaXMuX2JhY2tkcm9wQ2xpY2tIYW5kbGVyPXQ9PnRoaXMuX2JhY2tkcm9wQ2xpY2submV4dCh0KSx0aGlzLl9rZXlkb3duRXZlbnRzPW5ldyBCLHRoaXMuX291dHNpZGVQb2ludGVyRXZlbnRzPW5ldyBCLG8uc2Nyb2xsU3RyYXRlZ3kmJih0aGlzLl9zY3JvbGxTdHJhdGVneT1vLnNjcm9sbFN0cmF0ZWd5LHRoaXMuX3Njcm9sbFN0cmF0ZWd5LmF0dGFjaCh0aGlzKSksdGhpcy5fcG9zaXRpb25TdHJhdGVneT1vLnBvc2l0aW9uU3RyYXRlZ3l9Z2V0IG92ZXJsYXlFbGVtZW50KCl7cmV0dXJuIHRoaXMuX3BhbmV9Z2V0IGJhY2tkcm9wRWxlbWVudCgpe3JldHVybiB0aGlzLl9iYWNrZHJvcEVsZW1lbnR9Z2V0IGhvc3RFbGVtZW50KCl7cmV0dXJuIHRoaXMuX2hvc3R9YXR0YWNoKHQpe2xldCBlPXRoaXMuX3BvcnRhbE91dGxldC5hdHRhY2godCk7cmV0dXJuIXRoaXMuX2hvc3QucGFyZW50RWxlbWVudCYmdGhpcy5fcHJldmlvdXNIb3N0UGFyZW50JiZ0aGlzLl9wcmV2aW91c0hvc3RQYXJlbnQuYXBwZW5kQ2hpbGQodGhpcy5faG9zdCksdGhpcy5fcG9zaXRpb25TdHJhdGVneSYmdGhpcy5fcG9zaXRpb25TdHJhdGVneS5hdHRhY2godGhpcyksdGhpcy5fdXBkYXRlU3RhY2tpbmdPcmRlcigpLHRoaXMuX3VwZGF0ZUVsZW1lbnRTaXplKCksdGhpcy5fdXBkYXRlRWxlbWVudERpcmVjdGlvbigpLHRoaXMuX3Njcm9sbFN0cmF0ZWd5JiZ0aGlzLl9zY3JvbGxTdHJhdGVneS5lbmFibGUoKSx0aGlzLl9uZ1pvbmUub25TdGFibGUucGlwZSh2ZSgxKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuaGFzQXR0YWNoZWQoKSYmdGhpcy51cGRhdGVQb3NpdGlvbigpfSkpLHRoaXMuX3RvZ2dsZVBvaW50ZXJFdmVudHMoITApLHRoaXMuX2NvbmZpZy5oYXNCYWNrZHJvcCYmdGhpcy5fYXR0YWNoQmFja2Ryb3AoKSx0aGlzLl9jb25maWcucGFuZWxDbGFzcyYmdGhpcy5fdG9nZ2xlQ2xhc3Nlcyh0aGlzLl9wYW5lLHRoaXMuX2NvbmZpZy5wYW5lbENsYXNzLCEwKSx0aGlzLl9hdHRhY2htZW50cy5uZXh0KCksdGhpcy5fa2V5Ym9hcmREaXNwYXRjaGVyLmFkZCh0aGlzKSx0aGlzLl9jb25maWcuZGlzcG9zZU9uTmF2aWdhdGlvbiYmKHRoaXMuX2xvY2F0aW9uQ2hhbmdlcz10aGlzLl9sb2NhdGlvbi5zdWJzY3JpYmUoKCgpPT50aGlzLmRpc3Bvc2UoKSkpKSx0aGlzLl9vdXRzaWRlQ2xpY2tEaXNwYXRjaGVyLmFkZCh0aGlzKSxlfWRldGFjaCgpe2lmKCF0aGlzLmhhc0F0dGFjaGVkKCkpcmV0dXJuO3RoaXMuZGV0YWNoQmFja2Ryb3AoKSx0aGlzLl90b2dnbGVQb2ludGVyRXZlbnRzKCExKSx0aGlzLl9wb3NpdGlvblN0cmF0ZWd5JiZ0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LmRldGFjaCYmdGhpcy5fcG9zaXRpb25TdHJhdGVneS5kZXRhY2goKSx0aGlzLl9zY3JvbGxTdHJhdGVneSYmdGhpcy5fc2Nyb2xsU3RyYXRlZ3kuZGlzYWJsZSgpO2NvbnN0IHQ9dGhpcy5fcG9ydGFsT3V0bGV0LmRldGFjaCgpO3JldHVybiB0aGlzLl9kZXRhY2htZW50cy5uZXh0KCksdGhpcy5fa2V5Ym9hcmREaXNwYXRjaGVyLnJlbW92ZSh0aGlzKSx0aGlzLl9kZXRhY2hDb250ZW50V2hlblN0YWJsZSgpLHRoaXMuX2xvY2F0aW9uQ2hhbmdlcy51bnN1YnNjcmliZSgpLHRoaXMuX291dHNpZGVDbGlja0Rpc3BhdGNoZXIucmVtb3ZlKHRoaXMpLHR9ZGlzcG9zZSgpe2NvbnN0IHQ9dGhpcy5oYXNBdHRhY2hlZCgpO3RoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kmJnRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kuZGlzcG9zZSgpLHRoaXMuX2Rpc3Bvc2VTY3JvbGxTdHJhdGVneSgpLHRoaXMuZGV0YWNoQmFja2Ryb3AoKSx0aGlzLl9sb2NhdGlvbkNoYW5nZXMudW5zdWJzY3JpYmUoKSx0aGlzLl9rZXlib2FyZERpc3BhdGNoZXIucmVtb3ZlKHRoaXMpLHRoaXMuX3BvcnRhbE91dGxldC5kaXNwb3NlKCksdGhpcy5fYXR0YWNobWVudHMuY29tcGxldGUoKSx0aGlzLl9iYWNrZHJvcENsaWNrLmNvbXBsZXRlKCksdGhpcy5fa2V5ZG93bkV2ZW50cy5jb21wbGV0ZSgpLHRoaXMuX291dHNpZGVQb2ludGVyRXZlbnRzLmNvbXBsZXRlKCksdGhpcy5fb3V0c2lkZUNsaWNrRGlzcGF0Y2hlci5yZW1vdmUodGhpcyksdGhpcy5faG9zdCYmdGhpcy5faG9zdC5wYXJlbnROb2RlJiYodGhpcy5faG9zdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuX2hvc3QpLHRoaXMuX2hvc3Q9bnVsbCksdGhpcy5fcHJldmlvdXNIb3N0UGFyZW50PXRoaXMuX3BhbmU9bnVsbCx0JiZ0aGlzLl9kZXRhY2htZW50cy5uZXh0KCksdGhpcy5fZGV0YWNobWVudHMuY29tcGxldGUoKX1oYXNBdHRhY2hlZCgpe3JldHVybiB0aGlzLl9wb3J0YWxPdXRsZXQuaGFzQXR0YWNoZWQoKX1iYWNrZHJvcENsaWNrKCl7cmV0dXJuIHRoaXMuX2JhY2tkcm9wQ2xpY2t9YXR0YWNobWVudHMoKXtyZXR1cm4gdGhpcy5fYXR0YWNobWVudHN9ZGV0YWNobWVudHMoKXtyZXR1cm4gdGhpcy5fZGV0YWNobWVudHN9a2V5ZG93bkV2ZW50cygpe3JldHVybiB0aGlzLl9rZXlkb3duRXZlbnRzfW91dHNpZGVQb2ludGVyRXZlbnRzKCl7cmV0dXJuIHRoaXMuX291dHNpZGVQb2ludGVyRXZlbnRzfWdldENvbmZpZygpe3JldHVybiB0aGlzLl9jb25maWd9dXBkYXRlUG9zaXRpb24oKXt0aGlzLl9wb3NpdGlvblN0cmF0ZWd5JiZ0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LmFwcGx5KCl9dXBkYXRlUG9zaXRpb25TdHJhdGVneSh0KXt0IT09dGhpcy5fcG9zaXRpb25TdHJhdGVneSYmKHRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kmJnRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kuZGlzcG9zZSgpLHRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3k9dCx0aGlzLmhhc0F0dGFjaGVkKCkmJih0LmF0dGFjaCh0aGlzKSx0aGlzLnVwZGF0ZVBvc2l0aW9uKCkpKX11cGRhdGVTaXplKHQpe3RoaXMuX2NvbmZpZz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5fY29uZmlnKSx0KSx0aGlzLl91cGRhdGVFbGVtZW50U2l6ZSgpfXNldERpcmVjdGlvbih0KXt0aGlzLl9jb25maWc9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMuX2NvbmZpZykse2RpcmVjdGlvbjp0fSksdGhpcy5fdXBkYXRlRWxlbWVudERpcmVjdGlvbigpfWFkZFBhbmVsQ2xhc3ModCl7dGhpcy5fcGFuZSYmdGhpcy5fdG9nZ2xlQ2xhc3Nlcyh0aGlzLl9wYW5lLHQsITApfXJlbW92ZVBhbmVsQ2xhc3ModCl7dGhpcy5fcGFuZSYmdGhpcy5fdG9nZ2xlQ2xhc3Nlcyh0aGlzLl9wYW5lLHQsITEpfWdldERpcmVjdGlvbigpe2NvbnN0IHQ9dGhpcy5fY29uZmlnLmRpcmVjdGlvbjtyZXR1cm4gdD8ic3RyaW5nIj09dHlwZW9mIHQ/dDp0LnZhbHVlOiJsdHIifXVwZGF0ZVNjcm9sbFN0cmF0ZWd5KHQpe3QhPT10aGlzLl9zY3JvbGxTdHJhdGVneSYmKHRoaXMuX2Rpc3Bvc2VTY3JvbGxTdHJhdGVneSgpLHRoaXMuX3Njcm9sbFN0cmF0ZWd5PXQsdGhpcy5oYXNBdHRhY2hlZCgpJiYodC5hdHRhY2godGhpcyksdC5lbmFibGUoKSkpfV91cGRhdGVFbGVtZW50RGlyZWN0aW9uKCl7dGhpcy5faG9zdC5zZXRBdHRyaWJ1dGUoImRpciIsdGhpcy5nZXREaXJlY3Rpb24oKSl9X3VwZGF0ZUVsZW1lbnRTaXplKCl7aWYoIXRoaXMuX3BhbmUpcmV0dXJuO2NvbnN0IHQ9dGhpcy5fcGFuZS5zdHlsZTt0LndpZHRoPWFIKHRoaXMuX2NvbmZpZy53aWR0aCksdC5oZWlnaHQ9YUgodGhpcy5fY29uZmlnLmhlaWdodCksdC5taW5XaWR0aD1hSCh0aGlzLl9jb25maWcubWluV2lkdGgpLHQubWluSGVpZ2h0PWFIKHRoaXMuX2NvbmZpZy5taW5IZWlnaHQpLHQubWF4V2lkdGg9YUgodGhpcy5fY29uZmlnLm1heFdpZHRoKSx0Lm1heEhlaWdodD1hSCh0aGlzLl9jb25maWcubWF4SGVpZ2h0KX1fdG9nZ2xlUG9pbnRlckV2ZW50cyh0KXt0aGlzLl9wYW5lLnN0eWxlLnBvaW50ZXJFdmVudHM9dD8iIjoibm9uZSJ9X2F0dGFjaEJhY2tkcm9wKCl7Y29uc3QgdD0iY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyI7dGhpcy5fYmFja2Ryb3BFbGVtZW50PXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuX2JhY2tkcm9wRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJjZGstb3ZlcmxheS1iYWNrZHJvcCIpLHRoaXMuX2NvbmZpZy5iYWNrZHJvcENsYXNzJiZ0aGlzLl90b2dnbGVDbGFzc2VzKHRoaXMuX2JhY2tkcm9wRWxlbWVudCx0aGlzLl9jb25maWcuYmFja2Ryb3BDbGFzcywhMCksdGhpcy5faG9zdC5wYXJlbnRFbGVtZW50Lmluc2VydEJlZm9yZSh0aGlzLl9iYWNrZHJvcEVsZW1lbnQsdGhpcy5faG9zdCksdGhpcy5fYmFja2Ryb3BFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9iYWNrZHJvcENsaWNrSGFuZGxlciksInVuZGVmaW5lZCIhPXR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU/dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9Pnt0aGlzLl9iYWNrZHJvcEVsZW1lbnQmJnRoaXMuX2JhY2tkcm9wRWxlbWVudC5jbGFzc0xpc3QuYWRkKHQpfSkpfSkpOnRoaXMuX2JhY2tkcm9wRWxlbWVudC5jbGFzc0xpc3QuYWRkKHQpfV91cGRhdGVTdGFja2luZ09yZGVyKCl7dGhpcy5faG9zdC5uZXh0U2libGluZyYmdGhpcy5faG9zdC5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHRoaXMuX2hvc3QpfWRldGFjaEJhY2tkcm9wKCl7bGV0IHQsZT10aGlzLl9iYWNrZHJvcEVsZW1lbnQ7aWYoIWUpcmV0dXJuO2xldCBuPSgpPT57ZSYmKGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX2JhY2tkcm9wQ2xpY2tIYW5kbGVyKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLG4pLGUucGFyZW50Tm9kZSYmZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpKSx0aGlzLl9iYWNrZHJvcEVsZW1lbnQ9PWUmJih0aGlzLl9iYWNrZHJvcEVsZW1lbnQ9bnVsbCksdGhpcy5fY29uZmlnLmJhY2tkcm9wQ2xhc3MmJnRoaXMuX3RvZ2dsZUNsYXNzZXMoZSx0aGlzLl9jb25maWcuYmFja2Ryb3BDbGFzcywhMSksY2xlYXJUaW1lb3V0KHQpfTtlLmNsYXNzTGlzdC5yZW1vdmUoImNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmciKSx0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57ZS5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIixuKX0pKSxlLnN0eWxlLnBvaW50ZXJFdmVudHM9Im5vbmUiLHQ9dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+c2V0VGltZW91dChuLDUwMCkpKX1fdG9nZ2xlQ2xhc3Nlcyh0LGUsbil7Y29uc3Qgbz10LmNsYXNzTGlzdDtpSChlKS5mb3JFYWNoKCh0PT57dCYmKG4/by5hZGQodCk6by5yZW1vdmUodCkpfSkpfV9kZXRhY2hDb250ZW50V2hlblN0YWJsZSgpe3RoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9Pntjb25zdCB0PXRoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKGplKHBlKHRoaXMuX2F0dGFjaG1lbnRzLHRoaXMuX2RldGFjaG1lbnRzKSkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl9wYW5lJiZ0aGlzLl9ob3N0JiYwIT09dGhpcy5fcGFuZS5jaGlsZHJlbi5sZW5ndGh8fCh0aGlzLl9wYW5lJiZ0aGlzLl9jb25maWcucGFuZWxDbGFzcyYmdGhpcy5fdG9nZ2xlQ2xhc3Nlcyh0aGlzLl9wYW5lLHRoaXMuX2NvbmZpZy5wYW5lbENsYXNzLCExKSx0aGlzLl9ob3N0JiZ0aGlzLl9ob3N0LnBhcmVudEVsZW1lbnQmJih0aGlzLl9wcmV2aW91c0hvc3RQYXJlbnQ9dGhpcy5faG9zdC5wYXJlbnRFbGVtZW50LHRoaXMuX3ByZXZpb3VzSG9zdFBhcmVudC5yZW1vdmVDaGlsZCh0aGlzLl9ob3N0KSksdC51bnN1YnNjcmliZSgpKX0pKX0pKX1fZGlzcG9zZVNjcm9sbFN0cmF0ZWd5KCl7Y29uc3QgdD10aGlzLl9zY3JvbGxTdHJhdGVneTt0JiYodC5kaXNhYmxlKCksdC5kZXRhY2gmJnQuZGV0YWNoKCkpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgTEI9ImNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3giLEJCPS8oW0EtWmEteiVdKykkLztjbGFzcyBWQntjb25zdHJ1Y3Rvcih0LGUsbixvLGkpe3RoaXMuX3ZpZXdwb3J0UnVsZXI9ZSx0aGlzLl9kb2N1bWVudD1uLHRoaXMuX3BsYXRmb3JtPW8sdGhpcy5fb3ZlcmxheUNvbnRhaW5lcj1pLHRoaXMuX2xhc3RCb3VuZGluZ0JveFNpemU9e3dpZHRoOjAsaGVpZ2h0OjB9LHRoaXMuX2lzUHVzaGVkPSExLHRoaXMuX2NhblB1c2g9ITAsdGhpcy5fZ3Jvd0FmdGVyT3Blbj0hMSx0aGlzLl9oYXNGbGV4aWJsZURpbWVuc2lvbnM9ITAsdGhpcy5fcG9zaXRpb25Mb2NrZWQ9ITEsdGhpcy5fdmlld3BvcnRNYXJnaW49MCx0aGlzLl9zY3JvbGxhYmxlcz1bXSx0aGlzLl9wcmVmZXJyZWRQb3NpdGlvbnM9W10sdGhpcy5fcG9zaXRpb25DaGFuZ2VzPW5ldyBCLHRoaXMuX3Jlc2l6ZVN1YnNjcmlwdGlvbj11LkVNUFRZLHRoaXMuX29mZnNldFg9MCx0aGlzLl9vZmZzZXRZPTAsdGhpcy5fYXBwbGllZFBhbmVsQ2xhc3Nlcz1bXSx0aGlzLnBvc2l0aW9uQ2hhbmdlcz10aGlzLl9wb3NpdGlvbkNoYW5nZXMsdGhpcy5zZXRPcmlnaW4odCl9Z2V0IHBvc2l0aW9ucygpe3JldHVybiB0aGlzLl9wcmVmZXJyZWRQb3NpdGlvbnN9YXR0YWNoKHQpe2lmKHRoaXMuX292ZXJsYXlSZWYmJnQhPT10aGlzLl9vdmVybGF5UmVmJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3cgRXJyb3IoIlRoaXMgcG9zaXRpb24gc3RyYXRlZ3kgaXMgYWxyZWFkeSBhdHRhY2hlZCB0byBhbiBvdmVybGF5Iik7dGhpcy5fdmFsaWRhdGVQb3NpdGlvbnMoKSx0Lmhvc3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoTEIpLHRoaXMuX292ZXJsYXlSZWY9dCx0aGlzLl9ib3VuZGluZ0JveD10Lmhvc3RFbGVtZW50LHRoaXMuX3BhbmU9dC5vdmVybGF5RWxlbWVudCx0aGlzLl9pc0Rpc3Bvc2VkPSExLHRoaXMuX2lzSW5pdGlhbFJlbmRlcj0hMCx0aGlzLl9sYXN0UG9zaXRpb249bnVsbCx0aGlzLl9yZXNpemVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9yZXNpemVTdWJzY3JpcHRpb249dGhpcy5fdmlld3BvcnRSdWxlci5jaGFuZ2UoKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5faXNJbml0aWFsUmVuZGVyPSEwLHRoaXMuYXBwbHkoKX0pKX1hcHBseSgpe2lmKHRoaXMuX2lzRGlzcG9zZWR8fCF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIpcmV0dXJuO2lmKCF0aGlzLl9pc0luaXRpYWxSZW5kZXImJnRoaXMuX3Bvc2l0aW9uTG9ja2VkJiZ0aGlzLl9sYXN0UG9zaXRpb24pcmV0dXJuIHZvaWQgdGhpcy5yZWFwcGx5TGFzdFBvc2l0aW9uKCk7dGhpcy5fY2xlYXJQYW5lbENsYXNzZXMoKSx0aGlzLl9yZXNldE92ZXJsYXlFbGVtZW50U3R5bGVzKCksdGhpcy5fcmVzZXRCb3VuZGluZ0JveFN0eWxlcygpLHRoaXMuX3ZpZXdwb3J0UmVjdD10aGlzLl9nZXROYXJyb3dlZFZpZXdwb3J0UmVjdCgpLHRoaXMuX29yaWdpblJlY3Q9dGhpcy5fZ2V0T3JpZ2luUmVjdCgpLHRoaXMuX292ZXJsYXlSZWN0PXRoaXMuX3BhbmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Y29uc3QgdD10aGlzLl9vcmlnaW5SZWN0LGU9dGhpcy5fb3ZlcmxheVJlY3Qsbj10aGlzLl92aWV3cG9ydFJlY3Qsbz1bXTtsZXQgaTtmb3IobGV0IGEgb2YgdGhpcy5fcHJlZmVycmVkUG9zaXRpb25zKXtsZXQgcj10aGlzLl9nZXRPcmlnaW5Qb2ludCh0LGEpLHM9dGhpcy5fZ2V0T3ZlcmxheVBvaW50KHIsZSxhKSxsPXRoaXMuX2dldE92ZXJsYXlGaXQocyxlLG4sYSk7aWYobC5pc0NvbXBsZXRlbHlXaXRoaW5WaWV3cG9ydClyZXR1cm4gdGhpcy5faXNQdXNoZWQ9ITEsdm9pZCB0aGlzLl9hcHBseVBvc2l0aW9uKGEscik7dGhpcy5fY2FuRml0V2l0aEZsZXhpYmxlRGltZW5zaW9ucyhsLHMsbik/by5wdXNoKHtwb3NpdGlvbjphLG9yaWdpbjpyLG92ZXJsYXlSZWN0OmUsYm91bmRpbmdCb3hSZWN0OnRoaXMuX2NhbGN1bGF0ZUJvdW5kaW5nQm94UmVjdChyLGEpfSk6KCFpfHxpLm92ZXJsYXlGaXQudmlzaWJsZUFyZWE8bC52aXNpYmxlQXJlYSkmJihpPXtvdmVybGF5Rml0Omwsb3ZlcmxheVBvaW50OnMsb3JpZ2luUG9pbnQ6cixwb3NpdGlvbjphLG92ZXJsYXlSZWN0OmV9KX1pZihvLmxlbmd0aCl7bGV0IHQ9bnVsbCxlPS0xO2Zvcihjb25zdCBuIG9mIG8pe2NvbnN0IG89bi5ib3VuZGluZ0JveFJlY3Qud2lkdGgqbi5ib3VuZGluZ0JveFJlY3QuaGVpZ2h0KihuLnBvc2l0aW9uLndlaWdodHx8MSk7bz5lJiYoZT1vLHQ9bil9cmV0dXJuIHRoaXMuX2lzUHVzaGVkPSExLHZvaWQgdGhpcy5fYXBwbHlQb3NpdGlvbih0LnBvc2l0aW9uLHQub3JpZ2luKX1pZih0aGlzLl9jYW5QdXNoKXJldHVybiB0aGlzLl9pc1B1c2hlZD0hMCx2b2lkIHRoaXMuX2FwcGx5UG9zaXRpb24oaS5wb3NpdGlvbixpLm9yaWdpblBvaW50KTt0aGlzLl9hcHBseVBvc2l0aW9uKGkucG9zaXRpb24saS5vcmlnaW5Qb2ludCl9ZGV0YWNoKCl7dGhpcy5fY2xlYXJQYW5lbENsYXNzZXMoKSx0aGlzLl9sYXN0UG9zaXRpb249bnVsbCx0aGlzLl9wcmV2aW91c1B1c2hBbW91bnQ9bnVsbCx0aGlzLl9yZXNpemVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX1kaXNwb3NlKCl7dGhpcy5faXNEaXNwb3NlZHx8KHRoaXMuX2JvdW5kaW5nQm94JiZqQih0aGlzLl9ib3VuZGluZ0JveC5zdHlsZSx7dG9wOiIiLGxlZnQ6IiIscmlnaHQ6IiIsYm90dG9tOiIiLGhlaWdodDoiIix3aWR0aDoiIixhbGlnbkl0ZW1zOiIiLGp1c3RpZnlDb250ZW50OiIifSksdGhpcy5fcGFuZSYmdGhpcy5fcmVzZXRPdmVybGF5RWxlbWVudFN0eWxlcygpLHRoaXMuX292ZXJsYXlSZWYmJnRoaXMuX292ZXJsYXlSZWYuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShMQiksdGhpcy5kZXRhY2goKSx0aGlzLl9wb3NpdGlvbkNoYW5nZXMuY29tcGxldGUoKSx0aGlzLl9vdmVybGF5UmVmPXRoaXMuX2JvdW5kaW5nQm94PW51bGwsdGhpcy5faXNEaXNwb3NlZD0hMCl9cmVhcHBseUxhc3RQb3NpdGlvbigpe2lmKCF0aGlzLl9pc0Rpc3Bvc2VkJiYoIXRoaXMuX3BsYXRmb3JtfHx0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIpKXt0aGlzLl9vcmlnaW5SZWN0PXRoaXMuX2dldE9yaWdpblJlY3QoKSx0aGlzLl9vdmVybGF5UmVjdD10aGlzLl9wYW5lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHRoaXMuX3ZpZXdwb3J0UmVjdD10aGlzLl9nZXROYXJyb3dlZFZpZXdwb3J0UmVjdCgpO2NvbnN0IHQ9dGhpcy5fbGFzdFBvc2l0aW9ufHx0aGlzLl9wcmVmZXJyZWRQb3NpdGlvbnNbMF0sZT10aGlzLl9nZXRPcmlnaW5Qb2ludCh0aGlzLl9vcmlnaW5SZWN0LHQpO3RoaXMuX2FwcGx5UG9zaXRpb24odCxlKX19d2l0aFNjcm9sbGFibGVDb250YWluZXJzKHQpe3JldHVybiB0aGlzLl9zY3JvbGxhYmxlcz10LHRoaXN9d2l0aFBvc2l0aW9ucyh0KXtyZXR1cm4gdGhpcy5fcHJlZmVycmVkUG9zaXRpb25zPXQsLTE9PT10LmluZGV4T2YodGhpcy5fbGFzdFBvc2l0aW9uKSYmKHRoaXMuX2xhc3RQb3NpdGlvbj1udWxsKSx0aGlzLl92YWxpZGF0ZVBvc2l0aW9ucygpLHRoaXN9d2l0aFZpZXdwb3J0TWFyZ2luKHQpe3JldHVybiB0aGlzLl92aWV3cG9ydE1hcmdpbj10LHRoaXN9d2l0aEZsZXhpYmxlRGltZW5zaW9ucyh0PSEwKXtyZXR1cm4gdGhpcy5faGFzRmxleGlibGVEaW1lbnNpb25zPXQsdGhpc313aXRoR3Jvd0FmdGVyT3Blbih0PSEwKXtyZXR1cm4gdGhpcy5fZ3Jvd0FmdGVyT3Blbj10LHRoaXN9d2l0aFB1c2godD0hMCl7cmV0dXJuIHRoaXMuX2NhblB1c2g9dCx0aGlzfXdpdGhMb2NrZWRQb3NpdGlvbih0PSEwKXtyZXR1cm4gdGhpcy5fcG9zaXRpb25Mb2NrZWQ9dCx0aGlzfXNldE9yaWdpbih0KXtyZXR1cm4gdGhpcy5fb3JpZ2luPXQsdGhpc313aXRoRGVmYXVsdE9mZnNldFgodCl7cmV0dXJuIHRoaXMuX29mZnNldFg9dCx0aGlzfXdpdGhEZWZhdWx0T2Zmc2V0WSh0KXtyZXR1cm4gdGhpcy5fb2Zmc2V0WT10LHRoaXN9d2l0aFRyYW5zZm9ybU9yaWdpbk9uKHQpe3JldHVybiB0aGlzLl90cmFuc2Zvcm1PcmlnaW5TZWxlY3Rvcj10LHRoaXN9X2dldE9yaWdpblBvaW50KHQsZSl7bGV0IG4sbztpZigiY2VudGVyIj09ZS5vcmlnaW5YKW49dC5sZWZ0K3Qud2lkdGgvMjtlbHNle2NvbnN0IG89dGhpcy5faXNSdGwoKT90LnJpZ2h0OnQubGVmdCxpPXRoaXMuX2lzUnRsKCk/dC5sZWZ0OnQucmlnaHQ7bj0ic3RhcnQiPT1lLm9yaWdpblg/bzppfXJldHVybiBvPSJjZW50ZXIiPT1lLm9yaWdpblk/dC50b3ArdC5oZWlnaHQvMjoidG9wIj09ZS5vcmlnaW5ZP3QudG9wOnQuYm90dG9tLHt4Om4seTpvfX1fZ2V0T3ZlcmxheVBvaW50KHQsZSxuKXtsZXQgbyxpO3JldHVybiBvPSJjZW50ZXIiPT1uLm92ZXJsYXlYPy1lLndpZHRoLzI6InN0YXJ0Ij09PW4ub3ZlcmxheVg/dGhpcy5faXNSdGwoKT8tZS53aWR0aDowOnRoaXMuX2lzUnRsKCk/MDotZS53aWR0aCxpPSJjZW50ZXIiPT1uLm92ZXJsYXlZPy1lLmhlaWdodC8yOiJ0b3AiPT1uLm92ZXJsYXlZPzA6LWUuaGVpZ2h0LHt4OnQueCtvLHk6dC55K2l9fV9nZXRPdmVybGF5Rml0KHQsZSxuLG8pe2NvbnN0IGk9V0IoZSk7bGV0e3g6YSx5OnJ9PXQscz10aGlzLl9nZXRPZmZzZXQobywieCIpLGw9dGhpcy5fZ2V0T2Zmc2V0KG8sInkiKTtzJiYoYSs9cyksbCYmKHIrPWwpO2xldCBjPTAtcixkPXIraS5oZWlnaHQtbi5oZWlnaHQscD10aGlzLl9zdWJ0cmFjdE92ZXJmbG93cyhpLndpZHRoLDAtYSxhK2kud2lkdGgtbi53aWR0aCksbT10aGlzLl9zdWJ0cmFjdE92ZXJmbG93cyhpLmhlaWdodCxjLGQpLGY9cCptO3JldHVybnt2aXNpYmxlQXJlYTpmLGlzQ29tcGxldGVseVdpdGhpblZpZXdwb3J0Omkud2lkdGgqaS5oZWlnaHQ9PT1mLGZpdHNJblZpZXdwb3J0VmVydGljYWxseTptPT09aS5oZWlnaHQsZml0c0luVmlld3BvcnRIb3Jpem9udGFsbHk6cD09aS53aWR0aH19X2NhbkZpdFdpdGhGbGV4aWJsZURpbWVuc2lvbnModCxlLG4pe2lmKHRoaXMuX2hhc0ZsZXhpYmxlRGltZW5zaW9ucyl7Y29uc3Qgbz1uLmJvdHRvbS1lLnksaT1uLnJpZ2h0LWUueCxhPVVCKHRoaXMuX292ZXJsYXlSZWYuZ2V0Q29uZmlnKCkubWluSGVpZ2h0KSxyPVVCKHRoaXMuX292ZXJsYXlSZWYuZ2V0Q29uZmlnKCkubWluV2lkdGgpLHM9dC5maXRzSW5WaWV3cG9ydEhvcml6b250YWxseXx8bnVsbCE9ciYmcjw9aTtyZXR1cm4odC5maXRzSW5WaWV3cG9ydFZlcnRpY2FsbHl8fG51bGwhPWEmJmE8PW8pJiZzfXJldHVybiExfV9wdXNoT3ZlcmxheU9uU2NyZWVuKHQsZSxuKXtpZih0aGlzLl9wcmV2aW91c1B1c2hBbW91bnQmJnRoaXMuX3Bvc2l0aW9uTG9ja2VkKXJldHVybnt4OnQueCt0aGlzLl9wcmV2aW91c1B1c2hBbW91bnQueCx5OnQueSt0aGlzLl9wcmV2aW91c1B1c2hBbW91bnQueX07Y29uc3Qgbz1XQihlKSxpPXRoaXMuX3ZpZXdwb3J0UmVjdCxhPU1hdGgubWF4KHQueCtvLndpZHRoLWkud2lkdGgsMCkscj1NYXRoLm1heCh0Lnkrby5oZWlnaHQtaS5oZWlnaHQsMCkscz1NYXRoLm1heChpLnRvcC1uLnRvcC10LnksMCksbD1NYXRoLm1heChpLmxlZnQtbi5sZWZ0LXQueCwwKTtsZXQgYz0wLGQ9MDtyZXR1cm4gYz1vLndpZHRoPD1pLndpZHRoP2x8fC1hOnQueDx0aGlzLl92aWV3cG9ydE1hcmdpbj9pLmxlZnQtbi5sZWZ0LXQueDowLGQ9by5oZWlnaHQ8PWkuaGVpZ2h0P3N8fC1yOnQueTx0aGlzLl92aWV3cG9ydE1hcmdpbj9pLnRvcC1uLnRvcC10Lnk6MCx0aGlzLl9wcmV2aW91c1B1c2hBbW91bnQ9e3g6Yyx5OmR9LHt4OnQueCtjLHk6dC55K2R9fV9hcHBseVBvc2l0aW9uKHQsZSl7aWYodGhpcy5fc2V0VHJhbnNmb3JtT3JpZ2luKHQpLHRoaXMuX3NldE92ZXJsYXlFbGVtZW50U3R5bGVzKGUsdCksdGhpcy5fc2V0Qm91bmRpbmdCb3hTdHlsZXMoZSx0KSx0LnBhbmVsQ2xhc3MmJnRoaXMuX2FkZFBhbmVsQ2xhc3Nlcyh0LnBhbmVsQ2xhc3MpLHRoaXMuX2xhc3RQb3NpdGlvbj10LHRoaXMuX3Bvc2l0aW9uQ2hhbmdlcy5vYnNlcnZlcnMubGVuZ3RoKXtjb25zdCBlPXRoaXMuX2dldFNjcm9sbFZpc2liaWxpdHkoKSxuPW5ldyBEQih0LGUpO3RoaXMuX3Bvc2l0aW9uQ2hhbmdlcy5uZXh0KG4pfXRoaXMuX2lzSW5pdGlhbFJlbmRlcj0hMX1fc2V0VHJhbnNmb3JtT3JpZ2luKHQpe2lmKCF0aGlzLl90cmFuc2Zvcm1PcmlnaW5TZWxlY3RvcilyZXR1cm47Y29uc3QgZT10aGlzLl9ib3VuZGluZ0JveC5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuX3RyYW5zZm9ybU9yaWdpblNlbGVjdG9yKTtsZXQgbixvPXQub3ZlcmxheVk7bj0iY2VudGVyIj09PXQub3ZlcmxheVg/ImNlbnRlciI6dGhpcy5faXNSdGwoKT8ic3RhcnQiPT09dC5vdmVybGF5WD8icmlnaHQiOiJsZWZ0Ijoic3RhcnQiPT09dC5vdmVybGF5WD8ibGVmdCI6InJpZ2h0Ijtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyllW3RdLnN0eWxlLnRyYW5zZm9ybU9yaWdpbj1gJHtufSAke299YH1fY2FsY3VsYXRlQm91bmRpbmdCb3hSZWN0KHQsZSl7Y29uc3Qgbj10aGlzLl92aWV3cG9ydFJlY3Qsbz10aGlzLl9pc1J0bCgpO2xldCBpLGEscjtpZigidG9wIj09PWUub3ZlcmxheVkpYT10LnksaT1uLmhlaWdodC1hK3RoaXMuX3ZpZXdwb3J0TWFyZ2luO2Vsc2UgaWYoImJvdHRvbSI9PT1lLm92ZXJsYXlZKXI9bi5oZWlnaHQtdC55KzIqdGhpcy5fdmlld3BvcnRNYXJnaW4saT1uLmhlaWdodC1yK3RoaXMuX3ZpZXdwb3J0TWFyZ2luO2Vsc2V7Y29uc3QgZT1NYXRoLm1pbihuLmJvdHRvbS10Lnkrbi50b3AsdC55KSxvPXRoaXMuX2xhc3RCb3VuZGluZ0JveFNpemUuaGVpZ2h0O2k9MiplLGE9dC55LWUsaT5vJiYhdGhpcy5faXNJbml0aWFsUmVuZGVyJiYhdGhpcy5fZ3Jvd0FmdGVyT3BlbiYmKGE9dC55LW8vMil9bGV0IHMsbCxjO2lmKCJlbmQiPT09ZS5vdmVybGF5WCYmIW98fCJzdGFydCI9PT1lLm92ZXJsYXlYJiZvKWM9bi53aWR0aC10LngrdGhpcy5fdmlld3BvcnRNYXJnaW4scz10LngtdGhpcy5fdmlld3BvcnRNYXJnaW47ZWxzZSBpZigic3RhcnQiPT09ZS5vdmVybGF5WCYmIW98fCJlbmQiPT09ZS5vdmVybGF5WCYmbylsPXQueCxzPW4ucmlnaHQtdC54O2Vsc2V7Y29uc3QgZT1NYXRoLm1pbihuLnJpZ2h0LXQueCtuLmxlZnQsdC54KSxvPXRoaXMuX2xhc3RCb3VuZGluZ0JveFNpemUud2lkdGg7cz0yKmUsbD10LngtZSxzPm8mJiF0aGlzLl9pc0luaXRpYWxSZW5kZXImJiF0aGlzLl9ncm93QWZ0ZXJPcGVuJiYobD10Lngtby8yKX1yZXR1cm57dG9wOmEsbGVmdDpsLGJvdHRvbTpyLHJpZ2h0OmMsd2lkdGg6cyxoZWlnaHQ6aX19X3NldEJvdW5kaW5nQm94U3R5bGVzKHQsZSl7Y29uc3Qgbj10aGlzLl9jYWxjdWxhdGVCb3VuZGluZ0JveFJlY3QodCxlKTt0aGlzLl9pc0luaXRpYWxSZW5kZXJ8fHRoaXMuX2dyb3dBZnRlck9wZW58fChuLmhlaWdodD1NYXRoLm1pbihuLmhlaWdodCx0aGlzLl9sYXN0Qm91bmRpbmdCb3hTaXplLmhlaWdodCksbi53aWR0aD1NYXRoLm1pbihuLndpZHRoLHRoaXMuX2xhc3RCb3VuZGluZ0JveFNpemUud2lkdGgpKTtjb25zdCBvPXt9O2lmKHRoaXMuX2hhc0V4YWN0UG9zaXRpb24oKSlvLnRvcD1vLmxlZnQ9IjAiLG8uYm90dG9tPW8ucmlnaHQ9by5tYXhIZWlnaHQ9by5tYXhXaWR0aD0iIixvLndpZHRoPW8uaGVpZ2h0PSIxMDAlIjtlbHNle2NvbnN0IHQ9dGhpcy5fb3ZlcmxheVJlZi5nZXRDb25maWcoKS5tYXhIZWlnaHQsaT10aGlzLl9vdmVybGF5UmVmLmdldENvbmZpZygpLm1heFdpZHRoO28uaGVpZ2h0PWFIKG4uaGVpZ2h0KSxvLnRvcD1hSChuLnRvcCksby5ib3R0b209YUgobi5ib3R0b20pLG8ud2lkdGg9YUgobi53aWR0aCksby5sZWZ0PWFIKG4ubGVmdCksby5yaWdodD1hSChuLnJpZ2h0KSxvLmFsaWduSXRlbXM9ImNlbnRlciI9PT1lLm92ZXJsYXlYPyJjZW50ZXIiOiJlbmQiPT09ZS5vdmVybGF5WD8iZmxleC1lbmQiOiJmbGV4LXN0YXJ0IixvLmp1c3RpZnlDb250ZW50PSJjZW50ZXIiPT09ZS5vdmVybGF5WT8iY2VudGVyIjoiYm90dG9tIj09PWUub3ZlcmxheVk/ImZsZXgtZW5kIjoiZmxleC1zdGFydCIsdCYmKG8ubWF4SGVpZ2h0PWFIKHQpKSxpJiYoby5tYXhXaWR0aD1hSChpKSl9dGhpcy5fbGFzdEJvdW5kaW5nQm94U2l6ZT1uLGpCKHRoaXMuX2JvdW5kaW5nQm94LnN0eWxlLG8pfV9yZXNldEJvdW5kaW5nQm94U3R5bGVzKCl7akIodGhpcy5fYm91bmRpbmdCb3guc3R5bGUse3RvcDoiMCIsbGVmdDoiMCIscmlnaHQ6IjAiLGJvdHRvbToiMCIsaGVpZ2h0OiIiLHdpZHRoOiIiLGFsaWduSXRlbXM6IiIsanVzdGlmeUNvbnRlbnQ6IiJ9KX1fcmVzZXRPdmVybGF5RWxlbWVudFN0eWxlcygpe2pCKHRoaXMuX3BhbmUuc3R5bGUse3RvcDoiIixsZWZ0OiIiLGJvdHRvbToiIixyaWdodDoiIixwb3NpdGlvbjoiIix0cmFuc2Zvcm06IiJ9KX1fc2V0T3ZlcmxheUVsZW1lbnRTdHlsZXModCxlKXtjb25zdCBuPXt9LG89dGhpcy5faGFzRXhhY3RQb3NpdGlvbigpLGk9dGhpcy5faGFzRmxleGlibGVEaW1lbnNpb25zLGE9dGhpcy5fb3ZlcmxheVJlZi5nZXRDb25maWcoKTtpZihvKXtjb25zdCBvPXRoaXMuX3ZpZXdwb3J0UnVsZXIuZ2V0Vmlld3BvcnRTY3JvbGxQb3NpdGlvbigpO2pCKG4sdGhpcy5fZ2V0RXhhY3RPdmVybGF5WShlLHQsbykpLGpCKG4sdGhpcy5fZ2V0RXhhY3RPdmVybGF5WChlLHQsbykpfWVsc2Ugbi5wb3NpdGlvbj0ic3RhdGljIjtsZXQgcj0iIixzPXRoaXMuX2dldE9mZnNldChlLCJ4IiksbD10aGlzLl9nZXRPZmZzZXQoZSwieSIpO3MmJihyKz1gdHJhbnNsYXRlWCgke3N9cHgpIGApLGwmJihyKz1gdHJhbnNsYXRlWSgke2x9cHgpYCksbi50cmFuc2Zvcm09ci50cmltKCksYS5tYXhIZWlnaHQmJihvP24ubWF4SGVpZ2h0PWFIKGEubWF4SGVpZ2h0KTppJiYobi5tYXhIZWlnaHQ9IiIpKSxhLm1heFdpZHRoJiYobz9uLm1heFdpZHRoPWFIKGEubWF4V2lkdGgpOmkmJihuLm1heFdpZHRoPSIiKSksakIodGhpcy5fcGFuZS5zdHlsZSxuKX1fZ2V0RXhhY3RPdmVybGF5WSh0LGUsbil7bGV0IG89e3RvcDoiIixib3R0b206IiJ9LGk9dGhpcy5fZ2V0T3ZlcmxheVBvaW50KGUsdGhpcy5fb3ZlcmxheVJlY3QsdCk7dGhpcy5faXNQdXNoZWQmJihpPXRoaXMuX3B1c2hPdmVybGF5T25TY3JlZW4oaSx0aGlzLl9vdmVybGF5UmVjdCxuKSk7bGV0IGE9dGhpcy5fb3ZlcmxheUNvbnRhaW5lci5nZXRDb250YWluZXJFbGVtZW50KCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO2lmKGkueS09YSwiYm90dG9tIj09PXQub3ZlcmxheVkpe28uYm90dG9tPXRoaXMuX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQtKGkueSt0aGlzLl9vdmVybGF5UmVjdC5oZWlnaHQpKyJweCJ9ZWxzZSBvLnRvcD1hSChpLnkpO3JldHVybiBvfV9nZXRFeGFjdE92ZXJsYXlYKHQsZSxuKXtsZXQgbyxpPXtsZWZ0OiIiLHJpZ2h0OiIifSxhPXRoaXMuX2dldE92ZXJsYXlQb2ludChlLHRoaXMuX292ZXJsYXlSZWN0LHQpO2lmKHRoaXMuX2lzUHVzaGVkJiYoYT10aGlzLl9wdXNoT3ZlcmxheU9uU2NyZWVuKGEsdGhpcy5fb3ZlcmxheVJlY3QsbikpLG89dGhpcy5faXNSdGwoKT8iZW5kIj09PXQub3ZlcmxheVg/ImxlZnQiOiJyaWdodCI6ImVuZCI9PT10Lm92ZXJsYXlYPyJyaWdodCI6ImxlZnQiLCJyaWdodCI9PT1vKXtpLnJpZ2h0PXRoaXMuX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aC0oYS54K3RoaXMuX292ZXJsYXlSZWN0LndpZHRoKSsicHgifWVsc2UgaS5sZWZ0PWFIKGEueCk7cmV0dXJuIGl9X2dldFNjcm9sbFZpc2liaWxpdHkoKXtjb25zdCB0PXRoaXMuX2dldE9yaWdpblJlY3QoKSxlPXRoaXMuX3BhbmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj10aGlzLl9zY3JvbGxhYmxlcy5tYXAoKHQ9PnQuZ2V0RWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpKTtyZXR1cm57aXNPcmlnaW5DbGlwcGVkOnhCKHQsbiksaXNPcmlnaW5PdXRzaWRlVmlldzp2Qih0LG4pLGlzT3ZlcmxheUNsaXBwZWQ6eEIoZSxuKSxpc092ZXJsYXlPdXRzaWRlVmlldzp2QihlLG4pfX1fc3VidHJhY3RPdmVyZmxvd3ModCwuLi5lKXtyZXR1cm4gZS5yZWR1Y2UoKCh0LGUpPT50LU1hdGgubWF4KGUsMCkpLHQpfV9nZXROYXJyb3dlZFZpZXdwb3J0UmVjdCgpe2NvbnN0IHQ9dGhpcy5fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLGU9dGhpcy5fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCxuPXRoaXMuX3ZpZXdwb3J0UnVsZXIuZ2V0Vmlld3BvcnRTY3JvbGxQb3NpdGlvbigpO3JldHVybnt0b3A6bi50b3ArdGhpcy5fdmlld3BvcnRNYXJnaW4sbGVmdDpuLmxlZnQrdGhpcy5fdmlld3BvcnRNYXJnaW4scmlnaHQ6bi5sZWZ0K3QtdGhpcy5fdmlld3BvcnRNYXJnaW4sYm90dG9tOm4udG9wK2UtdGhpcy5fdmlld3BvcnRNYXJnaW4sd2lkdGg6dC0yKnRoaXMuX3ZpZXdwb3J0TWFyZ2luLGhlaWdodDplLTIqdGhpcy5fdmlld3BvcnRNYXJnaW59fV9pc1J0bCgpe3JldHVybiJydGwiPT09dGhpcy5fb3ZlcmxheVJlZi5nZXREaXJlY3Rpb24oKX1faGFzRXhhY3RQb3NpdGlvbigpe3JldHVybiF0aGlzLl9oYXNGbGV4aWJsZURpbWVuc2lvbnN8fHRoaXMuX2lzUHVzaGVkfV9nZXRPZmZzZXQodCxlKXtyZXR1cm4ieCI9PT1lP251bGw9PXQub2Zmc2V0WD90aGlzLl9vZmZzZXRYOnQub2Zmc2V0WDpudWxsPT10Lm9mZnNldFk/dGhpcy5fb2Zmc2V0WTp0Lm9mZnNldFl9X3ZhbGlkYXRlUG9zaXRpb25zKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSl7aWYoIXRoaXMuX3ByZWZlcnJlZFBvc2l0aW9ucy5sZW5ndGgpdGhyb3cgRXJyb3IoIkZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneTogQXQgbGVhc3Qgb25lIHBvc2l0aW9uIGlzIHJlcXVpcmVkLiIpO3RoaXMuX3ByZWZlcnJlZFBvc2l0aW9ucy5mb3JFYWNoKCh0PT57RUIoIm9yaWdpblgiLHQub3JpZ2luWCksUkIoIm9yaWdpblkiLHQub3JpZ2luWSksRUIoIm92ZXJsYXlYIix0Lm92ZXJsYXlYKSxSQigib3ZlcmxheVkiLHQub3ZlcmxheVkpfSkpfX1fYWRkUGFuZWxDbGFzc2VzKHQpe3RoaXMuX3BhbmUmJmlIKHQpLmZvckVhY2goKHQ9PnsiIiE9PXQmJi0xPT09dGhpcy5fYXBwbGllZFBhbmVsQ2xhc3Nlcy5pbmRleE9mKHQpJiYodGhpcy5fYXBwbGllZFBhbmVsQ2xhc3Nlcy5wdXNoKHQpLHRoaXMuX3BhbmUuY2xhc3NMaXN0LmFkZCh0KSl9KSl9X2NsZWFyUGFuZWxDbGFzc2VzKCl7dGhpcy5fcGFuZSYmKHRoaXMuX2FwcGxpZWRQYW5lbENsYXNzZXMuZm9yRWFjaCgodD0+e3RoaXMuX3BhbmUuY2xhc3NMaXN0LnJlbW92ZSh0KX0pKSx0aGlzLl9hcHBsaWVkUGFuZWxDbGFzc2VzPVtdKX1fZ2V0T3JpZ2luUmVjdCgpe2NvbnN0IHQ9dGhpcy5fb3JpZ2luO2lmKHQgaW5zdGFuY2VvZiBLaClyZXR1cm4gdC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKHQgaW5zdGFuY2VvZiBFbGVtZW50KXJldHVybiB0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2NvbnN0IGU9dC53aWR0aHx8MCxuPXQuaGVpZ2h0fHwwO3JldHVybnt0b3A6dC55LGJvdHRvbTp0LnkrbixsZWZ0OnQueCxyaWdodDp0LngrZSxoZWlnaHQ6bix3aWR0aDplfX19ZnVuY3Rpb24gakIodCxlKXtmb3IobGV0IG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKTtyZXR1cm4gdH1mdW5jdGlvbiBVQih0KXtpZigibnVtYmVyIiE9dHlwZW9mIHQmJm51bGwhPXQpe2NvbnN0W2Usbl09dC5zcGxpdChCQik7cmV0dXJuIG4mJiJweCIhPT1uP251bGw6cGFyc2VGbG9hdChlKX1yZXR1cm4gdHx8bnVsbH1mdW5jdGlvbiBXQih0KXtyZXR1cm57dG9wOk1hdGguZmxvb3IodC50b3ApLHJpZ2h0Ok1hdGguZmxvb3IodC5yaWdodCksYm90dG9tOk1hdGguZmxvb3IodC5ib3R0b20pLGxlZnQ6TWF0aC5mbG9vcih0LmxlZnQpLHdpZHRoOk1hdGguZmxvb3IodC53aWR0aCksaGVpZ2h0Ok1hdGguZmxvb3IodC5oZWlnaHQpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgR0J7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscil7dGhpcy5fcHJlZmVycmVkUG9zaXRpb25zPVtdLHRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3k9bmV3IFZCKG4sbyxpLGEscikud2l0aEZsZXhpYmxlRGltZW5zaW9ucyghMSkud2l0aFB1c2goITEpLndpdGhWaWV3cG9ydE1hcmdpbigwKSx0aGlzLndpdGhGYWxsYmFja1Bvc2l0aW9uKHQsZSksdGhpcy5vblBvc2l0aW9uQ2hhbmdlPXRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kucG9zaXRpb25DaGFuZ2VzfWdldCBwb3NpdGlvbnMoKXtyZXR1cm4gdGhpcy5fcHJlZmVycmVkUG9zaXRpb25zfWF0dGFjaCh0KXt0aGlzLl9vdmVybGF5UmVmPXQsdGhpcy5fcG9zaXRpb25TdHJhdGVneS5hdHRhY2godCksdGhpcy5fZGlyZWN0aW9uJiYodC5zZXREaXJlY3Rpb24odGhpcy5fZGlyZWN0aW9uKSx0aGlzLl9kaXJlY3Rpb249bnVsbCl9ZGlzcG9zZSgpe3RoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kuZGlzcG9zZSgpfWRldGFjaCgpe3RoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kuZGV0YWNoKCl9YXBwbHkoKXt0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LmFwcGx5KCl9cmVjYWxjdWxhdGVMYXN0UG9zaXRpb24oKXt0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LnJlYXBwbHlMYXN0UG9zaXRpb24oKX13aXRoU2Nyb2xsYWJsZUNvbnRhaW5lcnModCl7dGhpcy5fcG9zaXRpb25TdHJhdGVneS53aXRoU2Nyb2xsYWJsZUNvbnRhaW5lcnModCl9d2l0aEZhbGxiYWNrUG9zaXRpb24odCxlLG4sbyl7Y29uc3QgaT1uZXcga0IodCxlLG4sbyk7cmV0dXJuIHRoaXMuX3ByZWZlcnJlZFBvc2l0aW9ucy5wdXNoKGkpLHRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kud2l0aFBvc2l0aW9ucyh0aGlzLl9wcmVmZXJyZWRQb3NpdGlvbnMpLHRoaXN9d2l0aERpcmVjdGlvbih0KXtyZXR1cm4gdGhpcy5fb3ZlcmxheVJlZj90aGlzLl9vdmVybGF5UmVmLnNldERpcmVjdGlvbih0KTp0aGlzLl9kaXJlY3Rpb249dCx0aGlzfXdpdGhPZmZzZXRYKHQpe3JldHVybiB0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LndpdGhEZWZhdWx0T2Zmc2V0WCh0KSx0aGlzfXdpdGhPZmZzZXRZKHQpe3JldHVybiB0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LndpdGhEZWZhdWx0T2Zmc2V0WSh0KSx0aGlzfXdpdGhMb2NrZWRQb3NpdGlvbih0KXtyZXR1cm4gdGhpcy5fcG9zaXRpb25TdHJhdGVneS53aXRoTG9ja2VkUG9zaXRpb24odCksdGhpc313aXRoUG9zaXRpb25zKHQpe3JldHVybiB0aGlzLl9wcmVmZXJyZWRQb3NpdGlvbnM9dC5zbGljZSgpLHRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kud2l0aFBvc2l0aW9ucyh0aGlzLl9wcmVmZXJyZWRQb3NpdGlvbnMpLHRoaXN9c2V0T3JpZ2luKHQpe3JldHVybiB0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LnNldE9yaWdpbih0KSx0aGlzfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgWUI9ImNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIjtjbGFzcyBxQntjb25zdHJ1Y3Rvcigpe3RoaXMuX2Nzc1Bvc2l0aW9uPSJzdGF0aWMiLHRoaXMuX3RvcE9mZnNldD0iIix0aGlzLl9ib3R0b21PZmZzZXQ9IiIsdGhpcy5fbGVmdE9mZnNldD0iIix0aGlzLl9yaWdodE9mZnNldD0iIix0aGlzLl9hbGlnbkl0ZW1zPSIiLHRoaXMuX2p1c3RpZnlDb250ZW50PSIiLHRoaXMuX3dpZHRoPSIiLHRoaXMuX2hlaWdodD0iIn1hdHRhY2godCl7Y29uc3QgZT10LmdldENvbmZpZygpO3RoaXMuX292ZXJsYXlSZWY9dCx0aGlzLl93aWR0aCYmIWUud2lkdGgmJnQudXBkYXRlU2l6ZSh7d2lkdGg6dGhpcy5fd2lkdGh9KSx0aGlzLl9oZWlnaHQmJiFlLmhlaWdodCYmdC51cGRhdGVTaXplKHtoZWlnaHQ6dGhpcy5faGVpZ2h0fSksdC5ob3N0RWxlbWVudC5jbGFzc0xpc3QuYWRkKFlCKSx0aGlzLl9pc0Rpc3Bvc2VkPSExfXRvcCh0PSIiKXtyZXR1cm4gdGhpcy5fYm90dG9tT2Zmc2V0PSIiLHRoaXMuX3RvcE9mZnNldD10LHRoaXMuX2FsaWduSXRlbXM9ImZsZXgtc3RhcnQiLHRoaXN9bGVmdCh0PSIiKXtyZXR1cm4gdGhpcy5fcmlnaHRPZmZzZXQ9IiIsdGhpcy5fbGVmdE9mZnNldD10LHRoaXMuX2p1c3RpZnlDb250ZW50PSJmbGV4LXN0YXJ0Iix0aGlzfWJvdHRvbSh0PSIiKXtyZXR1cm4gdGhpcy5fdG9wT2Zmc2V0PSIiLHRoaXMuX2JvdHRvbU9mZnNldD10LHRoaXMuX2FsaWduSXRlbXM9ImZsZXgtZW5kIix0aGlzfXJpZ2h0KHQ9IiIpe3JldHVybiB0aGlzLl9sZWZ0T2Zmc2V0PSIiLHRoaXMuX3JpZ2h0T2Zmc2V0PXQsdGhpcy5fanVzdGlmeUNvbnRlbnQ9ImZsZXgtZW5kIix0aGlzfXdpZHRoKHQ9IiIpe3JldHVybiB0aGlzLl9vdmVybGF5UmVmP3RoaXMuX292ZXJsYXlSZWYudXBkYXRlU2l6ZSh7d2lkdGg6dH0pOnRoaXMuX3dpZHRoPXQsdGhpc31oZWlnaHQodD0iIil7cmV0dXJuIHRoaXMuX292ZXJsYXlSZWY/dGhpcy5fb3ZlcmxheVJlZi51cGRhdGVTaXplKHtoZWlnaHQ6dH0pOnRoaXMuX2hlaWdodD10LHRoaXN9Y2VudGVySG9yaXpvbnRhbGx5KHQ9IiIpe3JldHVybiB0aGlzLmxlZnQodCksdGhpcy5fanVzdGlmeUNvbnRlbnQ9ImNlbnRlciIsdGhpc31jZW50ZXJWZXJ0aWNhbGx5KHQ9IiIpe3JldHVybiB0aGlzLnRvcCh0KSx0aGlzLl9hbGlnbkl0ZW1zPSJjZW50ZXIiLHRoaXN9YXBwbHkoKXtpZighdGhpcy5fb3ZlcmxheVJlZnx8IXRoaXMuX292ZXJsYXlSZWYuaGFzQXR0YWNoZWQoKSlyZXR1cm47Y29uc3QgdD10aGlzLl9vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50LnN0eWxlLGU9dGhpcy5fb3ZlcmxheVJlZi5ob3N0RWxlbWVudC5zdHlsZSxuPXRoaXMuX292ZXJsYXlSZWYuZ2V0Q29uZmlnKCkse3dpZHRoOm8saGVpZ2h0OmksbWF4V2lkdGg6YSxtYXhIZWlnaHQ6cn09bixzPSEoIjEwMCUiIT09byYmIjEwMHZ3IiE9PW98fGEmJiIxMDAlIiE9PWEmJiIxMDB2dyIhPT1hKSxsPSEoIjEwMCUiIT09aSYmIjEwMHZoIiE9PWl8fHImJiIxMDAlIiE9PXImJiIxMDB2aCIhPT1yKTt0LnBvc2l0aW9uPXRoaXMuX2Nzc1Bvc2l0aW9uLHQubWFyZ2luTGVmdD1zPyIwIjp0aGlzLl9sZWZ0T2Zmc2V0LHQubWFyZ2luVG9wPWw/IjAiOnRoaXMuX3RvcE9mZnNldCx0Lm1hcmdpbkJvdHRvbT10aGlzLl9ib3R0b21PZmZzZXQsdC5tYXJnaW5SaWdodD10aGlzLl9yaWdodE9mZnNldCxzP2UuanVzdGlmeUNvbnRlbnQ9ImZsZXgtc3RhcnQiOiJjZW50ZXIiPT09dGhpcy5fanVzdGlmeUNvbnRlbnQ/ZS5qdXN0aWZ5Q29udGVudD0iY2VudGVyIjoicnRsIj09PXRoaXMuX292ZXJsYXlSZWYuZ2V0Q29uZmlnKCkuZGlyZWN0aW9uPyJmbGV4LXN0YXJ0Ij09PXRoaXMuX2p1c3RpZnlDb250ZW50P2UuanVzdGlmeUNvbnRlbnQ9ImZsZXgtZW5kIjoiZmxleC1lbmQiPT09dGhpcy5fanVzdGlmeUNvbnRlbnQmJihlLmp1c3RpZnlDb250ZW50PSJmbGV4LXN0YXJ0Iik6ZS5qdXN0aWZ5Q29udGVudD10aGlzLl9qdXN0aWZ5Q29udGVudCxlLmFsaWduSXRlbXM9bD8iZmxleC1zdGFydCI6dGhpcy5fYWxpZ25JdGVtc31kaXNwb3NlKCl7aWYodGhpcy5faXNEaXNwb3NlZHx8IXRoaXMuX292ZXJsYXlSZWYpcmV0dXJuO2NvbnN0IHQ9dGhpcy5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5zdHlsZSxlPXRoaXMuX292ZXJsYXlSZWYuaG9zdEVsZW1lbnQsbj1lLnN0eWxlO2UuY2xhc3NMaXN0LnJlbW92ZShZQiksbi5qdXN0aWZ5Q29udGVudD1uLmFsaWduSXRlbXM9dC5tYXJnaW5Ub3A9dC5tYXJnaW5Cb3R0b209dC5tYXJnaW5MZWZ0PXQubWFyZ2luUmlnaHQ9dC5wb3NpdGlvbj0iIix0aGlzLl9vdmVybGF5UmVmPW51bGwsdGhpcy5faXNEaXNwb3NlZD0hMH19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NsYXNzIFpCe2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMuX3ZpZXdwb3J0UnVsZXI9dCx0aGlzLl9kb2N1bWVudD1lLHRoaXMuX3BsYXRmb3JtPW4sdGhpcy5fb3ZlcmxheUNvbnRhaW5lcj1vfWdsb2JhbCgpe3JldHVybiBuZXcgcUJ9Y29ubmVjdGVkVG8odCxlLG4pe3JldHVybiBuZXcgR0IoZSxuLHQsdGhpcy5fdmlld3BvcnRSdWxlcix0aGlzLl9kb2N1bWVudCx0aGlzLl9wbGF0Zm9ybSx0aGlzLl9vdmVybGF5Q29udGFpbmVyKX1mbGV4aWJsZUNvbm5lY3RlZFRvKHQpe3JldHVybiBuZXcgVkIodCx0aGlzLl92aWV3cG9ydFJ1bGVyLHRoaXMuX2RvY3VtZW50LHRoaXMuX3BsYXRmb3JtLHRoaXMuX292ZXJsYXlDb250YWluZXIpfX1aQi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WkIpKFRyKFFMKSxUcihzTSksVHIoY0gpLFRyKEhCKSl9LFpCLsm1cHJvdj1Tbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBaQihUcihRTCksVHIoc00pLFRyKGNIKSxUcihIQikpfSx0b2tlbjpaQixwcm92aWRlZEluOiJyb290In0pLFpCLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6UUx9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX0se3R5cGU6Y0h9LHt0eXBlOkhCfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihaQixbe3R5cGU6VW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6UUx9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX0se3R5cGU6Y0h9LHt0eXBlOkhCfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmxldCBYQj0wO2NsYXNzIEtCe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyxsLGMsZCl7dGhpcy5zY3JvbGxTdHJhdGVnaWVzPXQsdGhpcy5fb3ZlcmxheUNvbnRhaW5lcj1lLHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcj1uLHRoaXMuX3Bvc2l0aW9uQnVpbGRlcj1vLHRoaXMuX2tleWJvYXJkRGlzcGF0Y2hlcj1pLHRoaXMuX2luamVjdG9yPWEsdGhpcy5fbmdab25lPXIsdGhpcy5fZG9jdW1lbnQ9cyx0aGlzLl9kaXJlY3Rpb25hbGl0eT1sLHRoaXMuX2xvY2F0aW9uPWMsdGhpcy5fb3V0c2lkZUNsaWNrRGlzcGF0Y2hlcj1kfWNyZWF0ZSh0KXtjb25zdCBlPXRoaXMuX2NyZWF0ZUhvc3RFbGVtZW50KCksbj10aGlzLl9jcmVhdGVQYW5lRWxlbWVudChlKSxvPXRoaXMuX2NyZWF0ZVBvcnRhbE91dGxldChuKSxpPW5ldyB3Qih0KTtyZXR1cm4gaS5kaXJlY3Rpb249aS5kaXJlY3Rpb258fHRoaXMuX2RpcmVjdGlvbmFsaXR5LnZhbHVlLG5ldyBGQihvLGUsbixpLHRoaXMuX25nWm9uZSx0aGlzLl9rZXlib2FyZERpc3BhdGNoZXIsdGhpcy5fZG9jdW1lbnQsdGhpcy5fbG9jYXRpb24sdGhpcy5fb3V0c2lkZUNsaWNrRGlzcGF0Y2hlcil9cG9zaXRpb24oKXtyZXR1cm4gdGhpcy5fcG9zaXRpb25CdWlsZGVyfV9jcmVhdGVQYW5lRWxlbWVudCh0KXtjb25zdCBlPXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBlLmlkPSJjZGstb3ZlcmxheS0iK1hCKyssZS5jbGFzc0xpc3QuYWRkKCJjZGstb3ZlcmxheS1wYW5lIiksdC5hcHBlbmRDaGlsZChlKSxlfV9jcmVhdGVIb3N0RWxlbWVudCgpe2NvbnN0IHQ9dGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHRoaXMuX292ZXJsYXlDb250YWluZXIuZ2V0Q29udGFpbmVyRWxlbWVudCgpLmFwcGVuZENoaWxkKHQpLHR9X2NyZWF0ZVBvcnRhbE91dGxldCh0KXtyZXR1cm4gdGhpcy5fYXBwUmVmfHwodGhpcy5fYXBwUmVmPXRoaXMuX2luamVjdG9yLmdldChIQykpLG5ldyBwQih0LHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcix0aGlzLl9hcHBSZWYsdGhpcy5faW5qZWN0b3IsdGhpcy5fZG9jdW1lbnQpfX1LQi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8S0IpKFRyKFBCKSxUcihIQiksVHIoR2gpLFRyKFpCKSxUcihUQiksVHIoTnApLFRyKG1DKSxUcihzTSksVHIodkYpLFRyKE1NKSxUcihOQikpfSxLQi7JtXByb3Y9U24oe3Rva2VuOktCLGZhY3Rvcnk6S0IuybVmYWN9KSxLQi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlBCfSx7dHlwZTpIQn0se3R5cGU6R2h9LHt0eXBlOlpCfSx7dHlwZTpUQn0se3R5cGU6TnB9LHt0eXBlOm1DfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19LHt0eXBlOnZGfSx7dHlwZTpNTX0se3R5cGU6TkJ9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEtCLFt7dHlwZTpVbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpQQn0se3R5cGU6SEJ9LHt0eXBlOkdofSx7dHlwZTpaQn0se3R5cGU6VEJ9LHt0eXBlOk5wfSx7dHlwZTptQ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfSx7dHlwZTp2Rn0se3R5cGU6TU19LHt0eXBlOk5CfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IEpCPVt7b3JpZ2luWDoic3RhcnQiLG9yaWdpblk6ImJvdHRvbSIsb3ZlcmxheVg6InN0YXJ0IixvdmVybGF5WToidG9wIn0se29yaWdpblg6InN0YXJ0IixvcmlnaW5ZOiJ0b3AiLG92ZXJsYXlYOiJzdGFydCIsb3ZlcmxheVk6ImJvdHRvbSJ9LHtvcmlnaW5YOiJlbmQiLG9yaWdpblk6InRvcCIsb3ZlcmxheVg6ImVuZCIsb3ZlcmxheVk6ImJvdHRvbSJ9LHtvcmlnaW5YOiJlbmQiLG9yaWdpblk6ImJvdHRvbSIsb3ZlcmxheVg6ImVuZCIsb3ZlcmxheVk6InRvcCJ9XSxRQj1uZXcgZXIoImNkay1jb25uZWN0ZWQtb3ZlcmxheS1zY3JvbGwtc3RyYXRlZ3kiKTtjbGFzcyAkQntjb25zdHJ1Y3Rvcih0KXt0aGlzLmVsZW1lbnRSZWY9dH19JEIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fCRCKShnZihLaCkpfSwkQi7JtWRpcj1obyh7dHlwZTokQixzZWxlY3RvcnM6W1siIiwiY2RrLW92ZXJsYXktb3JpZ2luIiwiIl0sWyIiLCJvdmVybGF5LW9yaWdpbiIsIiJdLFsiIiwiY2RrT3ZlcmxheU9yaWdpbiIsIiJdXSxleHBvcnRBczpbImNka092ZXJsYXlPcmlnaW4iXX0pLCRCLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6S2h9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKCRCLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IltjZGstb3ZlcmxheS1vcmlnaW5dLCBbb3ZlcmxheS1vcmlnaW5dLCBbY2RrT3ZlcmxheU9yaWdpbl0iLGV4cG9ydEFzOiJjZGtPdmVybGF5T3JpZ2luIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOktofV19KSxudWxsKTtjbGFzcyB0Vntjb25zdHJ1Y3Rvcih0LGUsbixvLGkpe3RoaXMuX292ZXJsYXk9dCx0aGlzLl9kaXI9aSx0aGlzLl9oYXNCYWNrZHJvcD0hMSx0aGlzLl9sb2NrUG9zaXRpb249ITEsdGhpcy5fZ3Jvd0FmdGVyT3Blbj0hMSx0aGlzLl9mbGV4aWJsZURpbWVuc2lvbnM9ITEsdGhpcy5fcHVzaD0hMSx0aGlzLl9iYWNrZHJvcFN1YnNjcmlwdGlvbj11LkVNUFRZLHRoaXMuX2F0dGFjaFN1YnNjcmlwdGlvbj11LkVNUFRZLHRoaXMuX2RldGFjaFN1YnNjcmlwdGlvbj11LkVNUFRZLHRoaXMuX3Bvc2l0aW9uU3Vic2NyaXB0aW9uPXUuRU1QVFksdGhpcy52aWV3cG9ydE1hcmdpbj0wLHRoaXMub3Blbj0hMSx0aGlzLmRpc2FibGVDbG9zZT0hMSx0aGlzLmJhY2tkcm9wQ2xpY2s9bmV3IFN5LHRoaXMucG9zaXRpb25DaGFuZ2U9bmV3IFN5LHRoaXMuYXR0YWNoPW5ldyBTeSx0aGlzLmRldGFjaD1uZXcgU3ksdGhpcy5vdmVybGF5S2V5ZG93bj1uZXcgU3ksdGhpcy5vdmVybGF5T3V0c2lkZUNsaWNrPW5ldyBTeSx0aGlzLl90ZW1wbGF0ZVBvcnRhbD1uZXcgbEIoZSxuKSx0aGlzLl9zY3JvbGxTdHJhdGVneUZhY3Rvcnk9byx0aGlzLnNjcm9sbFN0cmF0ZWd5PXRoaXMuX3Njcm9sbFN0cmF0ZWd5RmFjdG9yeSgpfWdldCBvZmZzZXRYKCl7cmV0dXJuIHRoaXMuX29mZnNldFh9c2V0IG9mZnNldFgodCl7dGhpcy5fb2Zmc2V0WD10LHRoaXMuX3Bvc2l0aW9uJiZ0aGlzLl91cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHRoaXMuX3Bvc2l0aW9uKX1nZXQgb2Zmc2V0WSgpe3JldHVybiB0aGlzLl9vZmZzZXRZfXNldCBvZmZzZXRZKHQpe3RoaXMuX29mZnNldFk9dCx0aGlzLl9wb3NpdGlvbiYmdGhpcy5fdXBkYXRlUG9zaXRpb25TdHJhdGVneSh0aGlzLl9wb3NpdGlvbil9Z2V0IGhhc0JhY2tkcm9wKCl7cmV0dXJuIHRoaXMuX2hhc0JhY2tkcm9wfXNldCBoYXNCYWNrZHJvcCh0KXt0aGlzLl9oYXNCYWNrZHJvcD1lSCh0KX1nZXQgbG9ja1Bvc2l0aW9uKCl7cmV0dXJuIHRoaXMuX2xvY2tQb3NpdGlvbn1zZXQgbG9ja1Bvc2l0aW9uKHQpe3RoaXMuX2xvY2tQb3NpdGlvbj1lSCh0KX1nZXQgZmxleGlibGVEaW1lbnNpb25zKCl7cmV0dXJuIHRoaXMuX2ZsZXhpYmxlRGltZW5zaW9uc31zZXQgZmxleGlibGVEaW1lbnNpb25zKHQpe3RoaXMuX2ZsZXhpYmxlRGltZW5zaW9ucz1lSCh0KX1nZXQgZ3Jvd0FmdGVyT3Blbigpe3JldHVybiB0aGlzLl9ncm93QWZ0ZXJPcGVufXNldCBncm93QWZ0ZXJPcGVuKHQpe3RoaXMuX2dyb3dBZnRlck9wZW49ZUgodCl9Z2V0IHB1c2goKXtyZXR1cm4gdGhpcy5fcHVzaH1zZXQgcHVzaCh0KXt0aGlzLl9wdXNoPWVIKHQpfWdldCBvdmVybGF5UmVmKCl7cmV0dXJuIHRoaXMuX292ZXJsYXlSZWZ9Z2V0IGRpcigpe3JldHVybiB0aGlzLl9kaXI/dGhpcy5fZGlyLnZhbHVlOiJsdHIifW5nT25EZXN0cm95KCl7dGhpcy5fYXR0YWNoU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fZGV0YWNoU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fYmFja2Ryb3BTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9wb3NpdGlvblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX292ZXJsYXlSZWYmJnRoaXMuX292ZXJsYXlSZWYuZGlzcG9zZSgpfW5nT25DaGFuZ2VzKHQpe3RoaXMuX3Bvc2l0aW9uJiYodGhpcy5fdXBkYXRlUG9zaXRpb25TdHJhdGVneSh0aGlzLl9wb3NpdGlvbiksdGhpcy5fb3ZlcmxheVJlZi51cGRhdGVTaXplKHt3aWR0aDp0aGlzLndpZHRoLG1pbldpZHRoOnRoaXMubWluV2lkdGgsaGVpZ2h0OnRoaXMuaGVpZ2h0LG1pbkhlaWdodDp0aGlzLm1pbkhlaWdodH0pLHQub3JpZ2luJiZ0aGlzLm9wZW4mJnRoaXMuX3Bvc2l0aW9uLmFwcGx5KCkpLHQub3BlbiYmKHRoaXMub3Blbj90aGlzLl9hdHRhY2hPdmVybGF5KCk6dGhpcy5fZGV0YWNoT3ZlcmxheSgpKX1fY3JlYXRlT3ZlcmxheSgpe3RoaXMucG9zaXRpb25zJiZ0aGlzLnBvc2l0aW9ucy5sZW5ndGh8fCh0aGlzLnBvc2l0aW9ucz1KQik7Y29uc3QgdD10aGlzLl9vdmVybGF5UmVmPXRoaXMuX292ZXJsYXkuY3JlYXRlKHRoaXMuX2J1aWxkQ29uZmlnKCkpO3RoaXMuX2F0dGFjaFN1YnNjcmlwdGlvbj10LmF0dGFjaG1lbnRzKCkuc3Vic2NyaWJlKCgoKT0+dGhpcy5hdHRhY2guZW1pdCgpKSksdGhpcy5fZGV0YWNoU3Vic2NyaXB0aW9uPXQuZGV0YWNobWVudHMoKS5zdWJzY3JpYmUoKCgpPT50aGlzLmRldGFjaC5lbWl0KCkpKSx0LmtleWRvd25FdmVudHMoKS5zdWJzY3JpYmUoKHQ9Pnt0aGlzLm92ZXJsYXlLZXlkb3duLm5leHQodCksdC5rZXlDb2RlIT09S0l8fHRoaXMuZGlzYWJsZUNsb3NlfHx0SCh0KXx8KHQucHJldmVudERlZmF1bHQoKSx0aGlzLl9kZXRhY2hPdmVybGF5KCkpfSkpLHRoaXMuX292ZXJsYXlSZWYub3V0c2lkZVBvaW50ZXJFdmVudHMoKS5zdWJzY3JpYmUoKHQ9Pnt0aGlzLm92ZXJsYXlPdXRzaWRlQ2xpY2submV4dCh0KX0pKX1fYnVpbGRDb25maWcoKXtjb25zdCB0PXRoaXMuX3Bvc2l0aW9uPXRoaXMucG9zaXRpb25TdHJhdGVneXx8dGhpcy5fY3JlYXRlUG9zaXRpb25TdHJhdGVneSgpLGU9bmV3IHdCKHtkaXJlY3Rpb246dGhpcy5fZGlyLHBvc2l0aW9uU3RyYXRlZ3k6dCxzY3JvbGxTdHJhdGVneTp0aGlzLnNjcm9sbFN0cmF0ZWd5LGhhc0JhY2tkcm9wOnRoaXMuaGFzQmFja2Ryb3B9KTtyZXR1cm4odGhpcy53aWR0aHx8MD09PXRoaXMud2lkdGgpJiYoZS53aWR0aD10aGlzLndpZHRoKSwodGhpcy5oZWlnaHR8fDA9PT10aGlzLmhlaWdodCkmJihlLmhlaWdodD10aGlzLmhlaWdodCksKHRoaXMubWluV2lkdGh8fDA9PT10aGlzLm1pbldpZHRoKSYmKGUubWluV2lkdGg9dGhpcy5taW5XaWR0aCksKHRoaXMubWluSGVpZ2h0fHwwPT09dGhpcy5taW5IZWlnaHQpJiYoZS5taW5IZWlnaHQ9dGhpcy5taW5IZWlnaHQpLHRoaXMuYmFja2Ryb3BDbGFzcyYmKGUuYmFja2Ryb3BDbGFzcz10aGlzLmJhY2tkcm9wQ2xhc3MpLHRoaXMucGFuZWxDbGFzcyYmKGUucGFuZWxDbGFzcz10aGlzLnBhbmVsQ2xhc3MpLGV9X3VwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodCl7Y29uc3QgZT10aGlzLnBvc2l0aW9ucy5tYXAoKHQ9Pih7b3JpZ2luWDp0Lm9yaWdpblgsb3JpZ2luWTp0Lm9yaWdpblksb3ZlcmxheVg6dC5vdmVybGF5WCxvdmVybGF5WTp0Lm92ZXJsYXlZLG9mZnNldFg6dC5vZmZzZXRYfHx0aGlzLm9mZnNldFgsb2Zmc2V0WTp0Lm9mZnNldFl8fHRoaXMub2Zmc2V0WSxwYW5lbENsYXNzOnQucGFuZWxDbGFzc3x8dm9pZCAwfSkpKTtyZXR1cm4gdC5zZXRPcmlnaW4odGhpcy5vcmlnaW4uZWxlbWVudFJlZikud2l0aFBvc2l0aW9ucyhlKS53aXRoRmxleGlibGVEaW1lbnNpb25zKHRoaXMuZmxleGlibGVEaW1lbnNpb25zKS53aXRoUHVzaCh0aGlzLnB1c2gpLndpdGhHcm93QWZ0ZXJPcGVuKHRoaXMuZ3Jvd0FmdGVyT3Blbikud2l0aFZpZXdwb3J0TWFyZ2luKHRoaXMudmlld3BvcnRNYXJnaW4pLndpdGhMb2NrZWRQb3NpdGlvbih0aGlzLmxvY2tQb3NpdGlvbikud2l0aFRyYW5zZm9ybU9yaWdpbk9uKHRoaXMudHJhbnNmb3JtT3JpZ2luU2VsZWN0b3IpfV9jcmVhdGVQb3NpdGlvblN0cmF0ZWd5KCl7Y29uc3QgdD10aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLm9yaWdpbi5lbGVtZW50UmVmKTtyZXR1cm4gdGhpcy5fdXBkYXRlUG9zaXRpb25TdHJhdGVneSh0KSx0fV9hdHRhY2hPdmVybGF5KCl7dGhpcy5fb3ZlcmxheVJlZj90aGlzLl9vdmVybGF5UmVmLmdldENvbmZpZygpLmhhc0JhY2tkcm9wPXRoaXMuaGFzQmFja2Ryb3A6dGhpcy5fY3JlYXRlT3ZlcmxheSgpLHRoaXMuX292ZXJsYXlSZWYuaGFzQXR0YWNoZWQoKXx8dGhpcy5fb3ZlcmxheVJlZi5hdHRhY2godGhpcy5fdGVtcGxhdGVQb3J0YWwpLHRoaXMuaGFzQmFja2Ryb3A/dGhpcy5fYmFja2Ryb3BTdWJzY3JpcHRpb249dGhpcy5fb3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCh0PT57dGhpcy5iYWNrZHJvcENsaWNrLmVtaXQodCl9KSk6dGhpcy5fYmFja2Ryb3BTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9wb3NpdGlvblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMucG9zaXRpb25DaGFuZ2Uub2JzZXJ2ZXJzLmxlbmd0aD4wJiYodGhpcy5fcG9zaXRpb25TdWJzY3JpcHRpb249dGhpcy5fcG9zaXRpb24ucG9zaXRpb25DaGFuZ2VzLnBpcGUoVWUoKCgpPT50aGlzLnBvc2l0aW9uQ2hhbmdlLm9ic2VydmVycy5sZW5ndGg+MCkpKS5zdWJzY3JpYmUoKHQ9Pnt0aGlzLnBvc2l0aW9uQ2hhbmdlLmVtaXQodCksMD09PXRoaXMucG9zaXRpb25DaGFuZ2Uub2JzZXJ2ZXJzLmxlbmd0aCYmdGhpcy5fcG9zaXRpb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX0pKSl9X2RldGFjaE92ZXJsYXkoKXt0aGlzLl9vdmVybGF5UmVmJiZ0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpLHRoaXMuX2JhY2tkcm9wU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fcG9zaXRpb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX19dFYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHRWKShnZihLQiksZ2YoRWIpLGdmKEZiKSxnZihRQiksZ2YodkYsOCkpfSx0Vi7JtWRpcj1obyh7dHlwZTp0VixzZWxlY3RvcnM6W1siIiwiY2RrLWNvbm5lY3RlZC1vdmVybGF5IiwiIl0sWyIiLCJjb25uZWN0ZWQtb3ZlcmxheSIsIiJdLFsiIiwiY2RrQ29ubmVjdGVkT3ZlcmxheSIsIiJdXSxpbnB1dHM6e3ZpZXdwb3J0TWFyZ2luOlsiY2RrQ29ubmVjdGVkT3ZlcmxheVZpZXdwb3J0TWFyZ2luIiwidmlld3BvcnRNYXJnaW4iXSxvcGVuOlsiY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW4iLCJvcGVuIl0sZGlzYWJsZUNsb3NlOlsiY2RrQ29ubmVjdGVkT3ZlcmxheURpc2FibGVDbG9zZSIsImRpc2FibGVDbG9zZSJdLHNjcm9sbFN0cmF0ZWd5OlsiY2RrQ29ubmVjdGVkT3ZlcmxheVNjcm9sbFN0cmF0ZWd5Iiwic2Nyb2xsU3RyYXRlZ3kiXSxvZmZzZXRYOlsiY2RrQ29ubmVjdGVkT3ZlcmxheU9mZnNldFgiLCJvZmZzZXRYIl0sb2Zmc2V0WTpbImNka0Nvbm5lY3RlZE92ZXJsYXlPZmZzZXRZIiwib2Zmc2V0WSJdLGhhc0JhY2tkcm9wOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUhhc0JhY2tkcm9wIiwiaGFzQmFja2Ryb3AiXSxsb2NrUG9zaXRpb246WyJjZGtDb25uZWN0ZWRPdmVybGF5TG9ja1Bvc2l0aW9uIiwibG9ja1Bvc2l0aW9uIl0sZmxleGlibGVEaW1lbnNpb25zOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUZsZXhpYmxlRGltZW5zaW9ucyIsImZsZXhpYmxlRGltZW5zaW9ucyJdLGdyb3dBZnRlck9wZW46WyJjZGtDb25uZWN0ZWRPdmVybGF5R3Jvd0FmdGVyT3BlbiIsImdyb3dBZnRlck9wZW4iXSxwdXNoOlsiY2RrQ29ubmVjdGVkT3ZlcmxheVB1c2giLCJwdXNoIl0scG9zaXRpb25zOlsiY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9ucyIsInBvc2l0aW9ucyJdLG9yaWdpbjpbImNka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW4iLCJvcmlnaW4iXSxwb3NpdGlvblN0cmF0ZWd5OlsiY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uU3RyYXRlZ3kiLCJwb3NpdGlvblN0cmF0ZWd5Il0sd2lkdGg6WyJjZGtDb25uZWN0ZWRPdmVybGF5V2lkdGgiLCJ3aWR0aCJdLGhlaWdodDpbImNka0Nvbm5lY3RlZE92ZXJsYXlIZWlnaHQiLCJoZWlnaHQiXSxtaW5XaWR0aDpbImNka0Nvbm5lY3RlZE92ZXJsYXlNaW5XaWR0aCIsIm1pbldpZHRoIl0sbWluSGVpZ2h0OlsiY2RrQ29ubmVjdGVkT3ZlcmxheU1pbkhlaWdodCIsIm1pbkhlaWdodCJdLGJhY2tkcm9wQ2xhc3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5QmFja2Ryb3BDbGFzcyIsImJhY2tkcm9wQ2xhc3MiXSxwYW5lbENsYXNzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheVBhbmVsQ2xhc3MiLCJwYW5lbENsYXNzIl0sdHJhbnNmb3JtT3JpZ2luU2VsZWN0b3I6WyJjZGtDb25uZWN0ZWRPdmVybGF5VHJhbnNmb3JtT3JpZ2luT24iLCJ0cmFuc2Zvcm1PcmlnaW5TZWxlY3RvciJdfSxvdXRwdXRzOntiYWNrZHJvcENsaWNrOiJiYWNrZHJvcENsaWNrIixwb3NpdGlvbkNoYW5nZToicG9zaXRpb25DaGFuZ2UiLGF0dGFjaDoiYXR0YWNoIixkZXRhY2g6ImRldGFjaCIsb3ZlcmxheUtleWRvd246Im92ZXJsYXlLZXlkb3duIixvdmVybGF5T3V0c2lkZUNsaWNrOiJvdmVybGF5T3V0c2lkZUNsaWNrIn0sZXhwb3J0QXM6WyJjZGtDb25uZWN0ZWRPdmVybGF5Il0sZmVhdHVyZXM6W3FvXX0pLHRWLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6S0J9LHt0eXBlOkVifSx7dHlwZTpGYn0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W1FCXX1dfSx7dHlwZTp2RixkZWNvcmF0b3JzOlt7dHlwZTpCcn1dfV0sdFYucHJvcERlY29yYXRvcnM9e29yaWdpbjpbe3R5cGU6Ul8sYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW4iXX1dLHBvc2l0aW9uczpbe3R5cGU6Ul8sYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbnMiXX1dLHBvc2l0aW9uU3RyYXRlZ3k6W3t0eXBlOlJfLGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25TdHJhdGVneSJdfV0sb2Zmc2V0WDpbe3R5cGU6Ul8sYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlPZmZzZXRYIl19XSxvZmZzZXRZOlt7dHlwZTpSXyxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheU9mZnNldFkiXX1dLHdpZHRoOlt7dHlwZTpSXyxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheVdpZHRoIl19XSxoZWlnaHQ6W3t0eXBlOlJfLGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5SGVpZ2h0Il19XSxtaW5XaWR0aDpbe3R5cGU6Ul8sYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlNaW5XaWR0aCJdfV0sbWluSGVpZ2h0Olt7dHlwZTpSXyxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheU1pbkhlaWdodCJdfV0sYmFja2Ryb3BDbGFzczpbe3R5cGU6Ul8sYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlCYWNrZHJvcENsYXNzIl19XSxwYW5lbENsYXNzOlt7dHlwZTpSXyxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheVBhbmVsQ2xhc3MiXX1dLHZpZXdwb3J0TWFyZ2luOlt7dHlwZTpSXyxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheVZpZXdwb3J0TWFyZ2luIl19XSxzY3JvbGxTdHJhdGVneTpbe3R5cGU6Ul8sYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlTY3JvbGxTdHJhdGVneSJdfV0sb3Blbjpbe3R5cGU6Ul8sYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlPcGVuIl19XSxkaXNhYmxlQ2xvc2U6W3t0eXBlOlJfLGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5RGlzYWJsZUNsb3NlIl19XSx0cmFuc2Zvcm1PcmlnaW5TZWxlY3Rvcjpbe3R5cGU6Ul8sYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlUcmFuc2Zvcm1PcmlnaW5PbiJdfV0saGFzQmFja2Ryb3A6W3t0eXBlOlJfLGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5SGFzQmFja2Ryb3AiXX1dLGxvY2tQb3NpdGlvbjpbe3R5cGU6Ul8sYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlMb2NrUG9zaXRpb24iXX1dLGZsZXhpYmxlRGltZW5zaW9uczpbe3R5cGU6Ul8sYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlGbGV4aWJsZURpbWVuc2lvbnMiXX1dLGdyb3dBZnRlck9wZW46W3t0eXBlOlJfLGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5R3Jvd0FmdGVyT3BlbiJdfV0scHVzaDpbe3R5cGU6Ul8sYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlQdXNoIl19XSxiYWNrZHJvcENsaWNrOlt7dHlwZTpFX31dLHBvc2l0aW9uQ2hhbmdlOlt7dHlwZTpFX31dLGF0dGFjaDpbe3R5cGU6RV99XSxkZXRhY2g6W3t0eXBlOkVffV0sb3ZlcmxheUtleWRvd246W3t0eXBlOkVffV0sb3ZlcmxheU91dHNpZGVDbGljazpbe3R5cGU6RV99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih0Vixbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJbY2RrLWNvbm5lY3RlZC1vdmVybGF5XSwgW2Nvbm5lY3RlZC1vdmVybGF5XSwgW2Nka0Nvbm5lY3RlZE92ZXJsYXldIixleHBvcnRBczoiY2RrQ29ubmVjdGVkT3ZlcmxheSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpLQn0se3R5cGU6RWJ9LHt0eXBlOkZifSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbUUJdfV19LHt0eXBlOnZGLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19XX0pLHt2aWV3cG9ydE1hcmdpbjpbe3R5cGU6Ul8sYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlWaWV3cG9ydE1hcmdpbiJdfV0sb3Blbjpbe3R5cGU6Ul8sYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlPcGVuIl19XSxkaXNhYmxlQ2xvc2U6W3t0eXBlOlJfLGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5RGlzYWJsZUNsb3NlIl19XSxiYWNrZHJvcENsaWNrOlt7dHlwZTpFX31dLHBvc2l0aW9uQ2hhbmdlOlt7dHlwZTpFX31dLGF0dGFjaDpbe3R5cGU6RV99XSxkZXRhY2g6W3t0eXBlOkVffV0sb3ZlcmxheUtleWRvd246W3t0eXBlOkVffV0sb3ZlcmxheU91dHNpZGVDbGljazpbe3R5cGU6RV99XSxzY3JvbGxTdHJhdGVneTpbe3R5cGU6Ul8sYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlTY3JvbGxTdHJhdGVneSJdfV0sb2Zmc2V0WDpbe3R5cGU6Ul8sYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlPZmZzZXRYIl19XSxvZmZzZXRZOlt7dHlwZTpSXyxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheU9mZnNldFkiXX1dLGhhc0JhY2tkcm9wOlt7dHlwZTpSXyxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUhhc0JhY2tkcm9wIl19XSxsb2NrUG9zaXRpb246W3t0eXBlOlJfLGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5TG9ja1Bvc2l0aW9uIl19XSxmbGV4aWJsZURpbWVuc2lvbnM6W3t0eXBlOlJfLGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5RmxleGlibGVEaW1lbnNpb25zIl19XSxncm93QWZ0ZXJPcGVuOlt7dHlwZTpSXyxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUdyb3dBZnRlck9wZW4iXX1dLHB1c2g6W3t0eXBlOlJfLGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5UHVzaCJdfV0scG9zaXRpb25zOlt7dHlwZTpSXyxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9ucyJdfV0sb3JpZ2luOlt7dHlwZTpSXyxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbiJdfV0scG9zaXRpb25TdHJhdGVneTpbe3R5cGU6Ul8sYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvblN0cmF0ZWd5Il19XSx3aWR0aDpbe3R5cGU6Ul8sYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlXaWR0aCJdfV0saGVpZ2h0Olt7dHlwZTpSXyxhcmdzOlsiY2RrQ29ubmVjdGVkT3ZlcmxheUhlaWdodCJdfV0sbWluV2lkdGg6W3t0eXBlOlJfLGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5TWluV2lkdGgiXX1dLG1pbkhlaWdodDpbe3R5cGU6Ul8sYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlNaW5IZWlnaHQiXX1dLGJhY2tkcm9wQ2xhc3M6W3t0eXBlOlJfLGFyZ3M6WyJjZGtDb25uZWN0ZWRPdmVybGF5QmFja2Ryb3BDbGFzcyJdfV0scGFuZWxDbGFzczpbe3R5cGU6Ul8sYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlQYW5lbENsYXNzIl19XSx0cmFuc2Zvcm1PcmlnaW5TZWxlY3Rvcjpbe3R5cGU6Ul8sYXJnczpbImNka0Nvbm5lY3RlZE92ZXJsYXlUcmFuc2Zvcm1PcmlnaW5PbiJdfV19KTtjb25zdCBlVj17cHJvdmlkZTpRQixkZXBzOltLQl0sdXNlRmFjdG9yeTpmdW5jdGlvbiBuVih0KXtyZXR1cm4oKT0+dC5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKX19OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBvVnt9b1YuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG9WKX0sb1YuybVtb2Q9Zm8oe3R5cGU6b1Z9KSxvVi7JtWluaj1Ebih7cHJvdmlkZXJzOltLQixlVl0saW1wb3J0czpbW09GLGhCLGlCXSxpQl19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKG9WLFt7dHlwZTpMXyxhcmdzOlt7aW1wb3J0czpbT0YsaEIsaUJdLGV4cG9ydHM6W3RWLCRCLGlCXSxkZWNsYXJhdGlvbnM6W3RWLCRCXSxwcm92aWRlcnM6W0tCLGVWXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKG9WLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bdFYsJEJdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW09GLGhCLGlCXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVyblt0ViwkQixpQl19fSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgaVYgZXh0ZW5kcyBIQntjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsZSl9bmdPbkRlc3Ryb3koKXtzdXBlci5uZ09uRGVzdHJveSgpLHRoaXMuX2Z1bGxTY3JlZW5FdmVudE5hbWUmJnRoaXMuX2Z1bGxTY3JlZW5MaXN0ZW5lciYmdGhpcy5fZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLl9mdWxsU2NyZWVuRXZlbnROYW1lLHRoaXMuX2Z1bGxTY3JlZW5MaXN0ZW5lcil9X2NyZWF0ZUNvbnRhaW5lcigpe3N1cGVyLl9jcmVhdGVDb250YWluZXIoKSx0aGlzLl9hZGp1c3RQYXJlbnRGb3JGdWxsc2NyZWVuQ2hhbmdlKCksdGhpcy5fYWRkRnVsbHNjcmVlbkNoYW5nZUxpc3RlbmVyKCgoKT0+dGhpcy5fYWRqdXN0UGFyZW50Rm9yRnVsbHNjcmVlbkNoYW5nZSgpKSl9X2FkanVzdFBhcmVudEZvckZ1bGxzY3JlZW5DaGFuZ2UoKXtpZighdGhpcy5fY29udGFpbmVyRWxlbWVudClyZXR1cm47KHRoaXMuZ2V0RnVsbHNjcmVlbkVsZW1lbnQoKXx8dGhpcy5fZG9jdW1lbnQuYm9keSkuYXBwZW5kQ2hpbGQodGhpcy5fY29udGFpbmVyRWxlbWVudCl9X2FkZEZ1bGxzY3JlZW5DaGFuZ2VMaXN0ZW5lcih0KXtjb25zdCBlPXRoaXMuX2dldEV2ZW50TmFtZSgpO2UmJih0aGlzLl9mdWxsU2NyZWVuTGlzdGVuZXImJnRoaXMuX2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0aGlzLl9mdWxsU2NyZWVuTGlzdGVuZXIpLHRoaXMuX2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoZSx0KSx0aGlzLl9mdWxsU2NyZWVuTGlzdGVuZXI9dCl9X2dldEV2ZW50TmFtZSgpe2lmKCF0aGlzLl9mdWxsU2NyZWVuRXZlbnROYW1lKXtjb25zdCB0PXRoaXMuX2RvY3VtZW50O3QuZnVsbHNjcmVlbkVuYWJsZWQ/dGhpcy5fZnVsbFNjcmVlbkV2ZW50TmFtZT0iZnVsbHNjcmVlbmNoYW5nZSI6dC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZD90aGlzLl9mdWxsU2NyZWVuRXZlbnROYW1lPSJ3ZWJraXRmdWxsc2NyZWVuY2hhbmdlIjp0Lm1vekZ1bGxTY3JlZW5FbmFibGVkP3RoaXMuX2Z1bGxTY3JlZW5FdmVudE5hbWU9Im1vemZ1bGxzY3JlZW5jaGFuZ2UiOnQubXNGdWxsc2NyZWVuRW5hYmxlZCYmKHRoaXMuX2Z1bGxTY3JlZW5FdmVudE5hbWU9Ik1TRnVsbHNjcmVlbkNoYW5nZSIpfXJldHVybiB0aGlzLl9mdWxsU2NyZWVuRXZlbnROYW1lfWdldEZ1bGxzY3JlZW5FbGVtZW50KCl7Y29uc3QgdD10aGlzLl9kb2N1bWVudDtyZXR1cm4gdC5mdWxsc2NyZWVuRWxlbWVudHx8dC53ZWJraXRGdWxsc2NyZWVuRWxlbWVudHx8dC5tb3pGdWxsU2NyZWVuRWxlbWVudHx8dC5tc0Z1bGxzY3JlZW5FbGVtZW50fHxudWxsfX1pVi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8aVYpKFRyKHNNKSxUcihjSCkpfSxpVi7JtXByb3Y9U24oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgaVYoVHIoc00pLFRyKGNIKSl9LHRva2VuOmlWLHByb3ZpZGVkSW46InJvb3QifSksaVYuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19LHt0eXBlOmNIfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihpVixbe3R5cGU6VW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfSx7dHlwZTpjSH1dfSksbnVsbCk7Y2xhc3MgYVZ7fWFWLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxhVil9LGFWLsm1bW9kPWZvKHt0eXBlOmFWfSksYVYuybVpbmo9RG4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoYVYsW3t0eXBlOkxfLGFyZ3M6W3t9XX1dLG51bGwsbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCByVj1uZXcgU2V0O2xldCBzVjtjbGFzcyBsVntjb25zdHJ1Y3Rvcih0KXt0aGlzLl9wbGF0Zm9ybT10LHRoaXMuX21hdGNoTWVkaWE9dGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyJiZ3aW5kb3cubWF0Y2hNZWRpYT93aW5kb3cubWF0Y2hNZWRpYS5iaW5kKHdpbmRvdyk6Y1Z9bWF0Y2hNZWRpYSh0KXtyZXR1cm4gdGhpcy5fcGxhdGZvcm0uV0VCS0lUJiYoZnVuY3Rpb24gZSh0KXtpZihyVi5oYXModCkpcmV0dXJuO3RyeXtzVnx8KHNWPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIiksc1Yuc2V0QXR0cmlidXRlKCJ0eXBlIiwidGV4dC9jc3MiKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNWKSksc1Yuc2hlZXQmJihzVi5zaGVldC5pbnNlcnRSdWxlKGBAbWVkaWEgJHt0fSB7LmZ4LXF1ZXJ5LXRlc3R7IH19YCwwKSxyVi5hZGQodCkpfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IodCl9fSkodCksdGhpcy5fbWF0Y2hNZWRpYSh0KX19ZnVuY3Rpb24gY1YodCl7cmV0dXJue21hdGNoZXM6ImFsbCI9PT10fHwiIj09PXQsbWVkaWE6dCxhZGRMaXN0ZW5lcjooKT0+e30scmVtb3ZlTGlzdGVuZXI6KCk9Pnt9fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovbFYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGxWKShUcihjSCkpfSxsVi7JtXByb3Y9U24oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgbFYoVHIoY0gpKX0sdG9rZW46bFYscHJvdmlkZWRJbjoicm9vdCJ9KSxsVi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOmNIfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihsVixbe3R5cGU6VW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6Y0h9XX0pLG51bGwpO2NsYXNzIGRWe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fbWVkaWFNYXRjaGVyPXQsdGhpcy5fem9uZT1lLHRoaXMuX3F1ZXJpZXM9bmV3IE1hcCx0aGlzLl9kZXN0cm95U3ViamVjdD1uZXcgQn1uZ09uRGVzdHJveSgpe3RoaXMuX2Rlc3Ryb3lTdWJqZWN0Lm5leHQoKSx0aGlzLl9kZXN0cm95U3ViamVjdC5jb21wbGV0ZSgpfWlzTWF0Y2hlZCh0KXtyZXR1cm4gcFYoaUgodCkpLnNvbWUoKHQ9PnRoaXMuX3JlZ2lzdGVyUXVlcnkodCkubXFsLm1hdGNoZXMpKX1vYnNlcnZlKHQpe2xldCBlPUt0KHBWKGlIKHQpKS5tYXAoKHQ9PnRoaXMuX3JlZ2lzdGVyUXVlcnkodCkub2JzZXJ2YWJsZSkpKTtyZXR1cm4gZT1uZShlLnBpcGUodmUoMSkpLGUucGlwZShMZSgxKSxDZSgwKSkpLGUucGlwZShWdCgodD0+e2NvbnN0IGU9e21hdGNoZXM6ITEsYnJlYWtwb2ludHM6e319O3JldHVybiB0LmZvckVhY2goKCh7bWF0Y2hlczp0LHF1ZXJ5Om59KT0+e2UubWF0Y2hlcz1lLm1hdGNoZXN8fHQsZS5icmVha3BvaW50c1tuXT10fSkpLGV9KSkpfV9yZWdpc3RlclF1ZXJ5KHQpe2lmKHRoaXMuX3F1ZXJpZXMuaGFzKHQpKXJldHVybiB0aGlzLl9xdWVyaWVzLmdldCh0KTtjb25zdCBlPXRoaXMuX21lZGlhTWF0Y2hlci5tYXRjaE1lZGlhKHQpLG49e29ic2VydmFibGU6bmV3IFQoKHQ9Pntjb25zdCBuPWU9PnRoaXMuX3pvbmUucnVuKCgoKT0+dC5uZXh0KGUpKSk7cmV0dXJuIGUuYWRkTGlzdGVuZXIobiksKCk9PntlLnJlbW92ZUxpc3RlbmVyKG4pfX0pKS5waXBlKEJlKGUpLFZ0KCgoe21hdGNoZXM6ZX0pPT4oe3F1ZXJ5OnQsbWF0Y2hlczplfSkpKSxqZSh0aGlzLl9kZXN0cm95U3ViamVjdCkpLG1xbDplfTtyZXR1cm4gdGhpcy5fcXVlcmllcy5zZXQodCxuKSxufX1mdW5jdGlvbiBwVih0KXtyZXR1cm4gdC5tYXAoKHQ9PnQuc3BsaXQoIiwiKSkpLnJlZHVjZSgoKHQsZSk9PnQuY29uY2F0KGUpKSkubWFwKCh0PT50LnRyaW0oKSkpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9kVi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ZFYpKFRyKGxWKSxUcihtQykpfSxkVi7JtXByb3Y9U24oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgZFYoVHIobFYpLFRyKG1DKSl9LHRva2VuOmRWLHByb3ZpZGVkSW46InJvb3QifSksZFYuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpsVn0se3R5cGU6bUN9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGRWLFt7dHlwZTpVbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpsVn0se3R5cGU6bUN9XX0pLG51bGwpO2NvbnN0IG1WPSIobWF4LXdpZHRoOiA1OTkuOThweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpLCAobWF4LXdpZHRoOiA5NTkuOThweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSIsZlY9IihtYXgtd2lkdGg6IDU5OS45OHB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkiO2Z1bmN0aW9uIHVWKHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwiZGl2IiwxKSxDZigxLCJidXR0b24iLDIpLFJmKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtQaSh0KTtyZXR1cm4gemYoKS5hY3Rpb24oKX0pKSxQdSgyKSxNZigpLE1mKCl9aWYoMiZ0KXtjb25zdCB0PXpmKCk7RGMoMiksd3UodC5kYXRhLmFjdGlvbil9fWZ1bmN0aW9uIGdWKHQsZSl7fWNvbnN0IGhWPW5ldyBlcigiTWF0U25hY2tCYXJEYXRhIik7Y2xhc3MgYlZ7Y29uc3RydWN0b3IoKXt0aGlzLnBvbGl0ZW5lc3M9ImFzc2VydGl2ZSIsdGhpcy5hbm5vdW5jZW1lbnRNZXNzYWdlPSIiLHRoaXMuZHVyYXRpb249MCx0aGlzLmRhdGE9bnVsbCx0aGlzLmhvcml6b250YWxQb3NpdGlvbj0iY2VudGVyIix0aGlzLnZlcnRpY2FsUG9zaXRpb249ImJvdHRvbSJ9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCB5Vj1NYXRoLnBvdygyLDMxKS0xO2NsYXNzIF9We2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fb3ZlcmxheVJlZj1lLHRoaXMuX2FmdGVyRGlzbWlzc2VkPW5ldyBCLHRoaXMuX2FmdGVyT3BlbmVkPW5ldyBCLHRoaXMuX29uQWN0aW9uPW5ldyBCLHRoaXMuX2Rpc21pc3NlZEJ5QWN0aW9uPSExLHRoaXMuY29udGFpbmVySW5zdGFuY2U9dCx0aGlzLm9uQWN0aW9uKCkuc3Vic2NyaWJlKCgoKT0+dGhpcy5kaXNtaXNzKCkpKSx0Ll9vbkV4aXQuc3Vic2NyaWJlKCgoKT0+dGhpcy5fZmluaXNoRGlzbWlzcygpKSl9ZGlzbWlzcygpe3RoaXMuX2FmdGVyRGlzbWlzc2VkLmNsb3NlZHx8dGhpcy5jb250YWluZXJJbnN0YW5jZS5leGl0KCksY2xlYXJUaW1lb3V0KHRoaXMuX2R1cmF0aW9uVGltZW91dElkKX1kaXNtaXNzV2l0aEFjdGlvbigpe3RoaXMuX29uQWN0aW9uLmNsb3NlZHx8KHRoaXMuX2Rpc21pc3NlZEJ5QWN0aW9uPSEwLHRoaXMuX29uQWN0aW9uLm5leHQoKSx0aGlzLl9vbkFjdGlvbi5jb21wbGV0ZSgpKSxjbGVhclRpbWVvdXQodGhpcy5fZHVyYXRpb25UaW1lb3V0SWQpfWNsb3NlV2l0aEFjdGlvbigpe3RoaXMuZGlzbWlzc1dpdGhBY3Rpb24oKX1fZGlzbWlzc0FmdGVyKHQpe3RoaXMuX2R1cmF0aW9uVGltZW91dElkPXNldFRpbWVvdXQoKCgpPT50aGlzLmRpc21pc3MoKSksTWF0aC5taW4odCx5VikpfV9vcGVuKCl7dGhpcy5fYWZ0ZXJPcGVuZWQuY2xvc2VkfHwodGhpcy5fYWZ0ZXJPcGVuZWQubmV4dCgpLHRoaXMuX2FmdGVyT3BlbmVkLmNvbXBsZXRlKCkpfV9maW5pc2hEaXNtaXNzKCl7dGhpcy5fb3ZlcmxheVJlZi5kaXNwb3NlKCksdGhpcy5fb25BY3Rpb24uY2xvc2VkfHx0aGlzLl9vbkFjdGlvbi5jb21wbGV0ZSgpLHRoaXMuX2FmdGVyRGlzbWlzc2VkLm5leHQoe2Rpc21pc3NlZEJ5QWN0aW9uOnRoaXMuX2Rpc21pc3NlZEJ5QWN0aW9ufSksdGhpcy5fYWZ0ZXJEaXNtaXNzZWQuY29tcGxldGUoKSx0aGlzLl9kaXNtaXNzZWRCeUFjdGlvbj0hMX1hZnRlckRpc21pc3NlZCgpe3JldHVybiB0aGlzLl9hZnRlckRpc21pc3NlZH1hZnRlck9wZW5lZCgpe3JldHVybiB0aGlzLmNvbnRhaW5lckluc3RhbmNlLl9vbkVudGVyfW9uQWN0aW9uKCl7cmV0dXJuIHRoaXMuX29uQWN0aW9ufX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgQ1Z7Y29uc3RydWN0b3IodCxlKXt0aGlzLnNuYWNrQmFyUmVmPXQsdGhpcy5kYXRhPWV9YWN0aW9uKCl7dGhpcy5zbmFja0JhclJlZi5kaXNtaXNzV2l0aEFjdGlvbigpfWdldCBoYXNBY3Rpb24oKXtyZXR1cm4hIXRoaXMuZGF0YS5hY3Rpb259fUNWLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxDVikoZ2YoX1YpLGdmKGhWKSl9LENWLsm1Y21wPXNvKHt0eXBlOkNWLHNlbGVjdG9yczpbWyJzaW1wbGUtc25hY2stYmFyIl1dLGhvc3RBdHRyczpbMSwibWF0LXNpbXBsZS1zbmFja2JhciJdLGRlY2xzOjMsdmFyczoyLGNvbnN0czpbWyJjbGFzcyIsIm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIiw0LCJuZ0lmIl0sWzEsIm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIl0sWyJtYXQtYnV0dG9uIiwiIiwzLCJjbGljayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwic3BhbiIpLFB1KDEpLE1mKCksSG0oMix1ViwzLDEsImRpdiIsMCkpLDImZSYmKERjKDEpLHd1KG4uZGF0YS5tZXNzYWdlKSxEYygxKSxiZigibmdJZiIsbi5oYXNBY3Rpb24pKX0sZGlyZWN0aXZlczpbUHYsTkxdLHN0eWxlczpbIi5tYXQtc2ltcGxlLXNuYWNrYmFye2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7bGluZS1oZWlnaHQ6MjBweDtvcGFjaXR5OjF9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9ue2ZsZXgtc2hyaW5rOjA7bWFyZ2luOi04cHggLThweCAtOHB4IDhweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24gYnV0dG9ue21heC1oZWlnaHQ6MzZweDttaW4td2lkdGg6MH1bZGlyPXJ0bF0gLm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9ue21hcmdpbi1sZWZ0Oi04cHg7bWFyZ2luLXJpZ2h0OjhweH1cbiJdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLENWLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6X1Z9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltoVl19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoQ1YsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3Rvcjoic2ltcGxlLXNuYWNrLWJhciIsdGVtcGxhdGU6JzxzcGFuPnt7ZGF0YS5tZXNzYWdlfX08L3NwYW4+XG48ZGl2IGNsYXNzPSJtYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiIgICpuZ0lmPSJoYXNBY3Rpb24iPlxuICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT0iYWN0aW9uKCkiPnt7ZGF0YS5hY3Rpb259fTwvYnV0dG9uPlxuPC9kaXY+XG4nLGVuY2Fwc3VsYXRpb246V24uTm9uZSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNoLGhvc3Q6e2NsYXNzOiJtYXQtc2ltcGxlLXNuYWNrYmFyIn0sc3R5bGVzOlsiLm1hdC1zaW1wbGUtc25hY2tiYXJ7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjtsaW5lLWhlaWdodDoyMHB4O29wYWNpdHk6MX0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb257ZmxleC1zaHJpbms6MDttYXJnaW46LThweCAtOHB4IC04cHggOHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiBidXR0b257bWF4LWhlaWdodDozNnB4O21pbi13aWR0aDowfVtkaXI9cnRsXSAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb257bWFyZ2luLWxlZnQ6LThweDttYXJnaW4tcmlnaHQ6OHB4fVxuIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpfVn0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W2hWXX1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IE1WPXtzbmFja0JhclN0YXRlOnhPKCJzdGF0ZSIsW2tPKCJ2b2lkLCBoaWRkZW4iLHdPKHt0cmFuc2Zvcm06InNjYWxlKDAuOCkiLG9wYWNpdHk6MH0pKSxrTygidmlzaWJsZSIsd08oe3RyYW5zZm9ybToic2NhbGUoMSkiLG9wYWNpdHk6MX0pKSxETygiKiA9PiB2aXNpYmxlIixPTygiMTUwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSkiKSksRE8oIiogPT4gdm9pZCwgKiA9PiBoaWRkZW4iLE9PKCI3NW1zIGN1YmljLWJlemllcigwLjQsIDAuMCwgMSwgMSkiLHdPKHtvcGFjaXR5OjB9KSkpXSl9OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyB2ViBleHRlbmRzIGRCe2NvbnN0cnVjdG9yKHQsZSxuLG8saSl7c3VwZXIoKSx0aGlzLl9uZ1pvbmU9dCx0aGlzLl9lbGVtZW50UmVmPWUsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9bix0aGlzLl9wbGF0Zm9ybT1vLHRoaXMuc25hY2tCYXJDb25maWc9aSx0aGlzLl9hbm5vdW5jZURlbGF5PTE1MCx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fb25Bbm5vdW5jZT1uZXcgQix0aGlzLl9vbkV4aXQ9bmV3IEIsdGhpcy5fb25FbnRlcj1uZXcgQix0aGlzLl9hbmltYXRpb25TdGF0ZT0idm9pZCIsdGhpcy5hdHRhY2hEb21Qb3J0YWw9dD0+KHRoaXMuX2Fzc2VydE5vdEF0dGFjaGVkKCksdGhpcy5fYXBwbHlTbmFja0JhckNsYXNzZXMoKSx0aGlzLl9wb3J0YWxPdXRsZXQuYXR0YWNoRG9tUG9ydGFsKHQpKSx0aGlzLl9saXZlPSJhc3NlcnRpdmUiIT09aS5wb2xpdGVuZXNzfHxpLmFubm91bmNlbWVudE1lc3NhZ2U/Im9mZiI9PT1pLnBvbGl0ZW5lc3M/Im9mZiI6InBvbGl0ZSI6ImFzc2VydGl2ZSIsdGhpcy5fcGxhdGZvcm0uRklSRUZPWCYmKCJwb2xpdGUiPT09dGhpcy5fbGl2ZSYmKHRoaXMuX3JvbGU9InN0YXR1cyIpLCJhc3NlcnRpdmUiPT09dGhpcy5fbGl2ZSYmKHRoaXMuX3JvbGU9ImFsZXJ0IikpfWF0dGFjaENvbXBvbmVudFBvcnRhbCh0KXtyZXR1cm4gdGhpcy5fYXNzZXJ0Tm90QXR0YWNoZWQoKSx0aGlzLl9hcHBseVNuYWNrQmFyQ2xhc3NlcygpLHRoaXMuX3BvcnRhbE91dGxldC5hdHRhY2hDb21wb25lbnRQb3J0YWwodCl9YXR0YWNoVGVtcGxhdGVQb3J0YWwodCl7cmV0dXJuIHRoaXMuX2Fzc2VydE5vdEF0dGFjaGVkKCksdGhpcy5fYXBwbHlTbmFja0JhckNsYXNzZXMoKSx0aGlzLl9wb3J0YWxPdXRsZXQuYXR0YWNoVGVtcGxhdGVQb3J0YWwodCl9b25BbmltYXRpb25FbmQodCl7Y29uc3R7ZnJvbVN0YXRlOmUsdG9TdGF0ZTpufT10O2lmKCgidm9pZCI9PT1uJiYidm9pZCIhPT1lfHwiaGlkZGVuIj09PW4pJiZ0aGlzLl9jb21wbGV0ZUV4aXQoKSwidmlzaWJsZSI9PT1uKXtjb25zdCB0PXRoaXMuX29uRW50ZXI7dGhpcy5fbmdab25lLnJ1bigoKCk9Pnt0Lm5leHQoKSx0LmNvbXBsZXRlKCl9KSl9fWVudGVyKCl7dGhpcy5fZGVzdHJveWVkfHwodGhpcy5fYW5pbWF0aW9uU3RhdGU9InZpc2libGUiLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKSx0aGlzLl9zY3JlZW5SZWFkZXJBbm5vdW5jZSgpKX1leGl0KCl7cmV0dXJuIHRoaXMuX2FuaW1hdGlvblN0YXRlPSJoaWRkZW4iLHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1hdC1leGl0IiwiIiksY2xlYXJUaW1lb3V0KHRoaXMuX2Fubm91bmNlVGltZW91dElkKSx0aGlzLl9vbkV4aXR9bmdPbkRlc3Ryb3koKXt0aGlzLl9kZXN0cm95ZWQ9ITAsdGhpcy5fY29tcGxldGVFeGl0KCl9X2NvbXBsZXRlRXhpdCgpe3RoaXMuX25nWm9uZS5vbk1pY3JvdGFza0VtcHR5LnBpcGUodmUoMSkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl9vbkV4aXQubmV4dCgpLHRoaXMuX29uRXhpdC5jb21wbGV0ZSgpfSkpfV9hcHBseVNuYWNrQmFyQ2xhc3Nlcygpe2NvbnN0IHQ9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LGU9dGhpcy5zbmFja0JhckNvbmZpZy5wYW5lbENsYXNzO2UmJihBcnJheS5pc0FycmF5KGUpP2UuZm9yRWFjaCgoZT0+dC5jbGFzc0xpc3QuYWRkKGUpKSk6dC5jbGFzc0xpc3QuYWRkKGUpKSwiY2VudGVyIj09PXRoaXMuc25hY2tCYXJDb25maWcuaG9yaXpvbnRhbFBvc2l0aW9uJiZ0LmNsYXNzTGlzdC5hZGQoIm1hdC1zbmFjay1iYXItY2VudGVyIiksInRvcCI9PT10aGlzLnNuYWNrQmFyQ29uZmlnLnZlcnRpY2FsUG9zaXRpb24mJnQuY2xhc3NMaXN0LmFkZCgibWF0LXNuYWNrLWJhci10b3AiKX1fYXNzZXJ0Tm90QXR0YWNoZWQoKXtpZih0aGlzLl9wb3J0YWxPdXRsZXQuaGFzQXR0YWNoZWQoKSYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGF0dGFjaCBzbmFjayBiYXIgY29udGVudCBhZnRlciBjb250ZW50IGlzIGFscmVhZHkgYXR0YWNoZWQiKX1fc2NyZWVuUmVhZGVyQW5ub3VuY2UoKXt0aGlzLl9hbm5vdW5jZVRpbWVvdXRJZHx8dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e3RoaXMuX2Fubm91bmNlVGltZW91dElkPXNldFRpbWVvdXQoKCgpPT57Y29uc3QgdD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigiW2FyaWEtaGlkZGVuXSIpLGU9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIlthcmlhLWxpdmVdIik7aWYodCYmZSl7bGV0IG49bnVsbDt0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXImJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmdC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSYmKG49ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCksdC5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiksZS5hcHBlbmRDaGlsZCh0KSxudWxsPT1ufHxuLmZvY3VzKCksdGhpcy5fb25Bbm5vdW5jZS5uZXh0KCksdGhpcy5fb25Bbm5vdW5jZS5jb21wbGV0ZSgpfX0pLHRoaXMuX2Fubm91bmNlRGVsYXkpfSkpfX12Vi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dlYpKGdmKG1DKSxnZihLaCksZ2YoT2IpLGdmKGNIKSxnZihiVikpfSx2Vi7JtWNtcD1zbyh7dHlwZTp2VixzZWxlY3RvcnM6W1sic25hY2stYmFyLWNvbnRhaW5lciJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmVnkodUIsNyksMiZlKXtsZXQgdDtCeSh0PVV5KCkpJiYobi5fcG9ydGFsT3V0bGV0PXQuZmlyc3QpfX0saG9zdEF0dHJzOlsxLCJtYXQtc25hY2stYmFyLWNvbnRhaW5lciJdLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJkVmKCJAc3RhdGUuZG9uZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25BbmltYXRpb25FbmQoZSl9KSksMiZlJiZkZygiQHN0YXRlIixuLl9hbmltYXRpb25TdGF0ZSl9LGZlYXR1cmVzOltRcF0sZGVjbHM6Myx2YXJzOjIsY29uc3RzOltbImFyaWEtaGlkZGVuIiwidHJ1ZSJdLFsiY2RrUG9ydGFsT3V0bGV0IiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJkaXYiLDApLEhtKDEsZ1YsMCwwLCJuZy10ZW1wbGF0ZSIsMSksTWYoKSx2ZigyLCJkaXYiKSksMiZlJiYoRGMoMikseW0oImFyaWEtbGl2ZSIsbi5fbGl2ZSkoInJvbGUiLG4uX3JvbGUpKX0sZGlyZWN0aXZlczpbdUJdLHN0eWxlczpbIi5tYXQtc25hY2stYmFyLWNvbnRhaW5lcntib3JkZXItcmFkaXVzOjRweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpibG9jazttYXJnaW46MjRweDttYXgtd2lkdGg6MzN2dzttaW4td2lkdGg6MzQ0cHg7cGFkZGluZzoxNHB4IDE2cHg7bWluLWhlaWdodDo0OHB4O3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zbmFjay1iYXItY29udGFpbmVye2JvcmRlcjpzb2xpZCAxcHh9Lm1hdC1zbmFjay1iYXItaGFuZHNldHt3aWR0aDoxMDAlfS5tYXQtc25hY2stYmFyLWhhbmRzZXQgLm1hdC1zbmFjay1iYXItY29udGFpbmVye21hcmdpbjo4cHg7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7d2lkdGg6MTAwJX1cbiJdLGVuY2Fwc3VsYXRpb246MixkYXRhOnthbmltYXRpb246W01WLnNuYWNrQmFyU3RhdGVdfX0pLHZWLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6bUN9LHt0eXBlOktofSx7dHlwZTpPYn0se3R5cGU6Y0h9LHt0eXBlOmJWfV0sdlYucHJvcERlY29yYXRvcnM9e19wb3J0YWxPdXRsZXQ6W3t0eXBlOmFyLGFyZ3M6W3VCLHtzdGF0aWM6ITB9XX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHZWLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6InNuYWNrLWJhci1jb250YWluZXIiLHRlbXBsYXRlOidceDNjIS0tIEluaXRpYWxseSBob2xkcyB0aGUgc25hY2sgYmFyIGNvbnRlbnQsIHdpbGwgYmUgZW1wdHkgYWZ0ZXIgYW5ub3VuY2luZyB0byBzY3JlZW4gcmVhZGVycy4gLS1ceDNlXG48ZGl2IGFyaWEtaGlkZGVuPSJ0cnVlIj5cbiAgPG5nLXRlbXBsYXRlIGNka1BvcnRhbE91dGxldD48L25nLXRlbXBsYXRlPlxuPC9kaXY+XG5cblx4M2MhLS0gV2lsbCByZWNlaXZlIHRoZSBzbmFjayBiYXIgY29udGVudCBmcm9tIHRoZSBub24tbGl2ZSBkaXYsIG1vdmUgd2lsbCBoYXBwZW4gYSBzaG9ydCBkZWxheSBhZnRlciBvcGVuaW5nIC0tXHgzZVxuPGRpdiBbYXR0ci5hcmlhLWxpdmVdPSJfbGl2ZSIgW2F0dHIucm9sZV09Il9yb2xlIj48L2Rpdj5cbicsY2hhbmdlRGV0ZWN0aW9uOmpuLkRlZmF1bHQsZW5jYXBzdWxhdGlvbjpXbi5Ob25lLGFuaW1hdGlvbnM6W01WLnNuYWNrQmFyU3RhdGVdLGhvc3Q6e2NsYXNzOiJtYXQtc25hY2stYmFyLWNvbnRhaW5lciIsIltAc3RhdGVdIjoiX2FuaW1hdGlvblN0YXRlIiwiKEBzdGF0ZS5kb25lKSI6Im9uQW5pbWF0aW9uRW5kKCRldmVudCkifSxzdHlsZXM6WyIubWF0LXNuYWNrLWJhci1jb250YWluZXJ7Ym9yZGVyLXJhZGl1czo0cHg7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjI0cHg7bWF4LXdpZHRoOjMzdnc7bWluLXdpZHRoOjM0NHB4O3BhZGRpbmc6MTRweCAxNnB4O21pbi1oZWlnaHQ6NDhweDt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcn0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc25hY2stYmFyLWNvbnRhaW5lcntib3JkZXI6c29saWQgMXB4fS5tYXQtc25hY2stYmFyLWhhbmRzZXR7d2lkdGg6MTAwJX0ubWF0LXNuYWNrLWJhci1oYW5kc2V0IC5tYXQtc25hY2stYmFyLWNvbnRhaW5lcnttYXJnaW46OHB4O21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO3dpZHRoOjEwMCV9XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOm1DfSx7dHlwZTpLaH0se3R5cGU6T2J9LHt0eXBlOmNIfSx7dHlwZTpiVn1dfSkse19wb3J0YWxPdXRsZXQ6W3t0eXBlOmFyLGFyZ3M6W3VCLHtzdGF0aWM6ITB9XX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyB4Vnt9eFYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHhWKX0seFYuybVtb2Q9Zm8oe3R5cGU6eFZ9KSx4Vi7JtWluaj1Ebih7aW1wb3J0czpbW29WLGhCLHJ4LElMLE5GXSxORl19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHhWLFt7dHlwZTpMXyxhcmdzOlt7aW1wb3J0czpbb1YsaEIscngsSUwsTkZdLGV4cG9ydHM6W3ZWLE5GXSxkZWNsYXJhdGlvbnM6W3ZWLENWXSxlbnRyeUNvbXBvbmVudHM6W3ZWLENWXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKHhWLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bdlYsQ1ZdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW29WLGhCLHJ4LElMLE5GXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVyblt2VixORl19fSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBPVj1uZXcgZXIoIm1hdC1zbmFjay1iYXItZGVmYXVsdC1vcHRpb25zIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbiBQVigpe3JldHVybiBuZXcgYlZ9fSk7Y2xhc3Mgd1Z7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEpe3RoaXMuX292ZXJsYXk9dCx0aGlzLl9saXZlPWUsdGhpcy5faW5qZWN0b3I9bix0aGlzLl9icmVha3BvaW50T2JzZXJ2ZXI9byx0aGlzLl9wYXJlbnRTbmFja0Jhcj1pLHRoaXMuX2RlZmF1bHRDb25maWc9YSx0aGlzLl9zbmFja0JhclJlZkF0VGhpc0xldmVsPW51bGwsdGhpcy5zaW1wbGVTbmFja0JhckNvbXBvbmVudD1DVix0aGlzLnNuYWNrQmFyQ29udGFpbmVyQ29tcG9uZW50PXZWLHRoaXMuaGFuZHNldENzc0NsYXNzPSJtYXQtc25hY2stYmFyLWhhbmRzZXQifWdldCBfb3BlbmVkU25hY2tCYXJSZWYoKXtjb25zdCB0PXRoaXMuX3BhcmVudFNuYWNrQmFyO3JldHVybiB0P3QuX29wZW5lZFNuYWNrQmFyUmVmOnRoaXMuX3NuYWNrQmFyUmVmQXRUaGlzTGV2ZWx9c2V0IF9vcGVuZWRTbmFja0JhclJlZih0KXt0aGlzLl9wYXJlbnRTbmFja0Jhcj90aGlzLl9wYXJlbnRTbmFja0Jhci5fb3BlbmVkU25hY2tCYXJSZWY9dDp0aGlzLl9zbmFja0JhclJlZkF0VGhpc0xldmVsPXR9b3BlbkZyb21Db21wb25lbnQodCxlKXtyZXR1cm4gdGhpcy5fYXR0YWNoKHQsZSl9b3BlbkZyb21UZW1wbGF0ZSh0LGUpe3JldHVybiB0aGlzLl9hdHRhY2godCxlKX1vcGVuKHQsZT0iIixuKXtjb25zdCBvPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLl9kZWZhdWx0Q29uZmlnKSxuKTtyZXR1cm4gby5kYXRhPXttZXNzYWdlOnQsYWN0aW9uOmV9LG8uYW5ub3VuY2VtZW50TWVzc2FnZT09PXQmJihvLmFubm91bmNlbWVudE1lc3NhZ2U9dm9pZCAwKSx0aGlzLm9wZW5Gcm9tQ29tcG9uZW50KHRoaXMuc2ltcGxlU25hY2tCYXJDb21wb25lbnQsbyl9ZGlzbWlzcygpe3RoaXMuX29wZW5lZFNuYWNrQmFyUmVmJiZ0aGlzLl9vcGVuZWRTbmFja0JhclJlZi5kaXNtaXNzKCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9zbmFja0JhclJlZkF0VGhpc0xldmVsJiZ0aGlzLl9zbmFja0JhclJlZkF0VGhpc0xldmVsLmRpc21pc3MoKX1fYXR0YWNoU25hY2tCYXJDb250YWluZXIodCxlKXtjb25zdCBuPU5wLmNyZWF0ZSh7cGFyZW50OmUmJmUudmlld0NvbnRhaW5lclJlZiYmZS52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yfHx0aGlzLl9pbmplY3Rvcixwcm92aWRlcnM6W3twcm92aWRlOmJWLHVzZVZhbHVlOmV9XX0pLG89bmV3IHNCKHRoaXMuc25hY2tCYXJDb250YWluZXJDb21wb25lbnQsZS52aWV3Q29udGFpbmVyUmVmLG4pLGk9dC5hdHRhY2gobyk7cmV0dXJuIGkuaW5zdGFuY2Uuc25hY2tCYXJDb25maWc9ZSxpLmluc3RhbmNlfV9hdHRhY2godCxlKXtjb25zdCBuPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG5ldyBiViksdGhpcy5fZGVmYXVsdENvbmZpZyksZSksbz10aGlzLl9jcmVhdGVPdmVybGF5KG4pLGk9dGhpcy5fYXR0YWNoU25hY2tCYXJDb250YWluZXIobyxuKSxhPW5ldyBfVihpLG8pO2lmKHQgaW5zdGFuY2VvZiBFYil7Y29uc3QgZT1uZXcgbEIodCxudWxsLHskaW1wbGljaXQ6bi5kYXRhLHNuYWNrQmFyUmVmOmF9KTthLmluc3RhbmNlPWkuYXR0YWNoVGVtcGxhdGVQb3J0YWwoZSl9ZWxzZXtjb25zdCBlPXRoaXMuX2NyZWF0ZUluamVjdG9yKG4sYSksbz1uZXcgc0IodCx2b2lkIDAsZSkscj1pLmF0dGFjaENvbXBvbmVudFBvcnRhbChvKTthLmluc3RhbmNlPXIuaW5zdGFuY2V9cmV0dXJuIHRoaXMuX2JyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKGZWKS5waXBlKGplKG8uZGV0YWNobWVudHMoKSkpLnN1YnNjcmliZSgodD0+e2NvbnN0IGU9by5vdmVybGF5RWxlbWVudC5jbGFzc0xpc3Q7dC5tYXRjaGVzP2UuYWRkKHRoaXMuaGFuZHNldENzc0NsYXNzKTplLnJlbW92ZSh0aGlzLmhhbmRzZXRDc3NDbGFzcyl9KSksbi5hbm5vdW5jZW1lbnRNZXNzYWdlJiZpLl9vbkFubm91bmNlLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl9saXZlLmFubm91bmNlKG4uYW5ub3VuY2VtZW50TWVzc2FnZSxuLnBvbGl0ZW5lc3MpfSkpLHRoaXMuX2FuaW1hdGVTbmFja0JhcihhLG4pLHRoaXMuX29wZW5lZFNuYWNrQmFyUmVmPWEsdGhpcy5fb3BlbmVkU25hY2tCYXJSZWZ9X2FuaW1hdGVTbmFja0Jhcih0LGUpe3QuYWZ0ZXJEaXNtaXNzZWQoKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fb3BlbmVkU25hY2tCYXJSZWY9PXQmJih0aGlzLl9vcGVuZWRTbmFja0JhclJlZj1udWxsKSxlLmFubm91bmNlbWVudE1lc3NhZ2UmJnRoaXMuX2xpdmUuY2xlYXIoKX0pKSx0aGlzLl9vcGVuZWRTbmFja0JhclJlZj8odGhpcy5fb3BlbmVkU25hY2tCYXJSZWYuYWZ0ZXJEaXNtaXNzZWQoKS5zdWJzY3JpYmUoKCgpPT57dC5jb250YWluZXJJbnN0YW5jZS5lbnRlcigpfSkpLHRoaXMuX29wZW5lZFNuYWNrQmFyUmVmLmRpc21pc3MoKSk6dC5jb250YWluZXJJbnN0YW5jZS5lbnRlcigpLGUuZHVyYXRpb24mJmUuZHVyYXRpb24+MCYmdC5hZnRlck9wZW5lZCgpLnN1YnNjcmliZSgoKCk9PnQuX2Rpc21pc3NBZnRlcihlLmR1cmF0aW9uKSkpfV9jcmVhdGVPdmVybGF5KHQpe2NvbnN0IGU9bmV3IHdCO2UuZGlyZWN0aW9uPXQuZGlyZWN0aW9uO2xldCBuPXRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKTtjb25zdCBvPSJydGwiPT09dC5kaXJlY3Rpb24saT0ibGVmdCI9PT10Lmhvcml6b250YWxQb3NpdGlvbnx8InN0YXJ0Ij09PXQuaG9yaXpvbnRhbFBvc2l0aW9uJiYhb3x8ImVuZCI9PT10Lmhvcml6b250YWxQb3NpdGlvbiYmbyxhPSFpJiYiY2VudGVyIiE9PXQuaG9yaXpvbnRhbFBvc2l0aW9uO3JldHVybiBpP24ubGVmdCgiMCIpOmE/bi5yaWdodCgiMCIpOm4uY2VudGVySG9yaXpvbnRhbGx5KCksInRvcCI9PT10LnZlcnRpY2FsUG9zaXRpb24/bi50b3AoIjAiKTpuLmJvdHRvbSgiMCIpLGUucG9zaXRpb25TdHJhdGVneT1uLHRoaXMuX292ZXJsYXkuY3JlYXRlKGUpfV9jcmVhdGVJbmplY3Rvcih0LGUpe3JldHVybiBOcC5jcmVhdGUoe3BhcmVudDp0JiZ0LnZpZXdDb250YWluZXJSZWYmJnQudmlld0NvbnRhaW5lclJlZi5pbmplY3Rvcnx8dGhpcy5faW5qZWN0b3IscHJvdmlkZXJzOlt7cHJvdmlkZTpfVix1c2VWYWx1ZTplfSx7cHJvdmlkZTpoVix1c2VWYWx1ZTp0LmRhdGF9XX0pfX13Vi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8d1YpKFRyKEtCKSxUcihjRiksVHIoTnApLFRyKGRWKSxUcih3ViwxMiksVHIoT1YpKX0sd1YuybVwcm92PVNuKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IHdWKFRyKEtCKSxUcihjRiksVHIoeXApLFRyKGRWKSxUcih3ViwxMiksVHIoT1YpKX0sdG9rZW46d1YscHJvdmlkZWRJbjp4Vn0pLHdWLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6S0J9LHt0eXBlOmNGfSx7dHlwZTpOcH0se3R5cGU6ZFZ9LHt0eXBlOndWLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpqcn1dfSx7dHlwZTpiVixkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltPVl19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIod1YsW3t0eXBlOlVtLGFyZ3M6W3twcm92aWRlZEluOnhWfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6S0J9LHt0eXBlOmNGfSx7dHlwZTpOcH0se3R5cGU6ZFZ9LHt0eXBlOndWLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpqcn1dfSx7dHlwZTpiVixkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltPVl19XX1dfSksbnVsbCk7Y29uc3Qga1Y9L1tcXF4kLiorPygpW1xde318XS9nO2NvbnN0IFNWPSJcXHUwMDAwLVxcdTAwMjBcXHUwMDdmLVxcdTAwOWYiLERWPW5ldyBSZWdFeHAoIig/OlthLXpBLVpdW2EtekEtWjAtOSsuLV17Mix9OlxcL1xcL3xkYXRhOnx3d3dcXC4pW15cXHMiK1NWKyciXXsyLH1bXlxccycrU1YrIlwiJyl9XFxdLDo7LiE/XSIsImd1Iik7ZnVuY3Rpb24gUlYodCl7cmV0dXJuKGZ1bmN0aW9uIGUodCxuKXtuLmZsYWdzLmluY2x1ZGVzKCJnIil8fChuPW5ldyBSZWdFeHAobixuLmZsYWdzKyJnIikpO2NvbnN0IG89W107bGV0IGk9MDtmb3IoY29uc3QgZSBvZiB0Lm1hdGNoQWxsKG4pKXtjb25zdCBuPWUuaW5kZXgsYT1lWzBdO24+aSYmby5wdXNoKHtpbmRleDppLHRleHQ6dC5zdWJzdHJpbmcoaSxuKSxtYXRjaGVzUmVnZXg6ITF9KSxvLnB1c2goe2luZGV4Om4sdGV4dDphLG1hdGNoZXNSZWdleDohMH0pLGk9bithLmxlbmd0aH1yZXR1cm4gdC5sZW5ndGg+aSYmby5wdXNoKHtpbmRleDppLHRleHQ6dC5zdWJzdHJpbmcoaSx0Lmxlbmd0aCksbWF0Y2hlc1JlZ2V4OiExfSksb30pKHQsRFYpLm1hcCgoKHttYXRjaGVzUmVnZXg6dCx0ZXh0OmV9KT0+KHtpc1VSTDp0LHRleHQ6ZX0pKSl9ZnVuY3Rpb24gRVYodCxlKXtpZigxJnQmJih4ZigwKSxQdSgxKSxPZigpKSwyJnQpe2NvbnN0IHQ9emYoKS4kaW1wbGljaXQ7RGMoMSksa3UoIiAiLHQudGV4dCwiICIpfX1mdW5jdGlvbiBBVih0LGUpe2lmKDEmdCYmKENmKDAsImEiLDcpLFB1KDEpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigpLiRpbXBsaWNpdDtMZigiaHJlZiIsdC50ZXh0LFhzKSxEYygxKSx3dSh0LnRleHQpfX1mdW5jdGlvbiBUVih0LGUpe2lmKDEmdCYmKHhmKDApLEhtKDEsRVYsMiwxLCJuZy1jb250YWluZXIiLDUpLEhtKDIsQVYsMiwyLCJuZy10ZW1wbGF0ZSIsbnVsbCw2LHF5KSxPZigpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj1GbSgzKTtEYygxKSxiZigibmdJZiIsIXQuaXNVUkwpKCJuZ0lmRWxzZSIsbil9fWZ1bmN0aW9uIE5WKHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwiYnV0dG9uIiw4KSxSZigiY2xpY2siLChmdW5jdGlvbiBlKCl7UGkodCk7cmV0dXJuIHpmKCkub25BY3Rpb25CdXR0b25DbGlja2VkKCl9KSksUHUoMSksTWYoKX1pZigyJnQpe2NvbnN0IHQ9emYoKTtEYygxKSxrdSgiICIsdC5hbGVydC5mb2xsb3d1cEFjdGlvbi5sb2NhbGl6ZWRMYWJlbCwiICIpfX1jbGFzcyB6Vntjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5zbmFja0JhclJlZj10LHRoaXMudW5rbm93bkRhdGE9ZSx0aGlzLnN0b3JlPW4sdGhpcy5zcGxpdEJ5VVJMPVJWLHRoaXMuYWxlcnQ9ZX1vbkFjdGlvbkJ1dHRvbkNsaWNrZWQoKXtyZXR1cm4gWFQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXt0aGlzLnNuYWNrQmFyUmVmLmRpc21pc3MoKTtjb25zdCB0PXlpZWxkIHRoaXMuYWxlcnQuZm9sbG93dXBBY3Rpb24uZ2V0Rm9sbG93dXBBY3Rpb24odGhpcy5zdG9yZSk7dGhpcy5zdG9yZS5kaXNwYXRjaCh0KX0pKX1vbkNsb3NlQnV0dG9uQ2xpY2tlZCgpe3RoaXMuc25hY2tCYXJSZWYuZGlzbWlzcygpfX16Vi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8elYpKGdmKF9WKSxnZihoViksZ2YoaVMpKX0selYuybVjbXA9c28oe3R5cGU6elYsc2VsZWN0b3JzOltbImFsZXJ0LWRpc3BsYXktc25hY2tiYXIiXV0sZGVjbHM6Nix2YXJzOjIsY29uc3RzOmZ1bmN0aW9uKCl7bGV0IHQ7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGUpe3Q9Z29vZy5nZXRNc2coIkRpc21pc3MiKX1lbHNlIHQ9JGxvY2FsaXplYDpBIGJ1dHRvbiB0byBjbG9zZSB0aGUgc25hY2tiYXIgbWVzc2FnZeKQn2VhNGQ5ZmU2MTQyMGEzZmNlODFjZjU0YzRjNjE1ZTNjMTljNjQ2YTbikJ8xNTM2MDg3NTE5NzQzNzA3MzYyOkRpc21pc3NgO3JldHVybltbMSwibWVzc2FnZSJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiY29udHJvbHMiXSxbIm1hdC1idXR0b24iLCIiLCJjbGFzcyIsImZvbGxvd3VwLWJ1dHRvbiIsMywiY2xpY2siLDQsIm5nSWYiXSxbIm1hdC1idXR0b24iLCIiLCJhcmlhLWxhYmVsIix0LDEsImRpc21pc3MtYnV0dG9uIiwzLCJjbGljayJdLFs0LCJuZ0lmIiwibmdJZkVsc2UiXSxbImxpbmtQaWVjZSIsIiJdLFsicmVsIiwibm9yZWZlcnJlciBub29wZW5lciIsInRhcmdldCIsIl9ibGFuayIsMywiaHJlZiJdLFsibWF0LWJ1dHRvbiIsIiIsMSwiZm9sbG93dXAtYnV0dG9uIiwzLCJjbGljayJdXX0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKENmKDAsImRpdiIsMCksSG0oMSxUViw0LDIsIm5nLWNvbnRhaW5lciIsMSksTWYoKSxDZigyLCJkaXYiLDIpLEhtKDMsTlYsMiwxLCJidXR0b24iLDMpLENmKDQsImJ1dHRvbiIsNCksUmYoImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uQ2xvc2VCdXR0b25DbGlja2VkKCl9KSksUHUoNSwiIERpc21pc3MgIiksTWYoKSxNZigpKSwyJmUmJihEYygxKSxiZigibmdGb3JPZiIsbi5zcGxpdEJ5VVJMKG4uYWxlcnQubG9jYWxpemVkTWVzc2FnZSkpLERjKDIpLGJmKCJuZ0lmIixuLmFsZXJ0LmZvbGxvd3VwQWN0aW9uKSl9LGRpcmVjdGl2ZXM6W3h2LFB2LE5MXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcH0ubWVzc2FnZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7YWxpZ24tc2VsZjpjZW50ZXI7bWFyZ2luOjVweCAwO3dvcmQtYnJlYWs6YnJlYWstd29yZH0ubWVzc2FnZVtfbmdjb250ZW50LSVDT01QJV0gICBhW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjppbmhlcml0fS5jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO21hcmdpbi1sZWZ0OmF1dG99YnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHpWLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6ImFsZXJ0LWRpc3BsYXktc25hY2tiYXIiLHRlbXBsYXRlVXJsOiIuL2FsZXJ0X2Rpc3BsYXlfc25hY2tiYXJfY29udGFpbmVyLm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vYWxlcnRfZGlzcGxheV9zbmFja2Jhcl9jb250YWluZXIuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOl9WfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbaFZdfV19LHt0eXBlOmlTfV19KSxudWxsKTtjbGFzcyBJVntjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuc3RvcmU9dCx0aGlzLnNuYWNrQmFyPWUsdGhpcy5uZ1Vuc3Vic2NyaWJlPW5ldyBCfW5nT25Jbml0KCl7dGhpcy5zdG9yZS5zZWxlY3QoV1QpLnBpcGUoamUodGhpcy5uZ1Vuc3Vic2NyaWJlKSx1ZSgodD0+Qm9vbGVhbih0KSkpKS5zdWJzY3JpYmUoKHQ9Pnt0aGlzLnNob3dBbGVydCh0KX0pKX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9c2hvd0FsZXJ0KHQpe3RoaXMuc25hY2tCYXIub3BlbkZyb21Db21wb25lbnQoelYse2R1cmF0aW9uOjVlMyxob3Jpem9udGFsUG9zaXRpb246InN0YXJ0Iix2ZXJ0aWNhbFBvc2l0aW9uOiJib3R0b20iLGRhdGE6dH0pfX1JVi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SVYpKGdmKGlTKSxnZih3VikpfSxJVi7JtWNtcD1zbyh7dHlwZTpJVixzZWxlY3RvcnM6W1siYWxlcnQtc25hY2tiYXIiXV0sZGVjbHM6MCx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe30sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihJVixbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJhbGVydC1zbmFja2JhciIsdGVtcGxhdGU6IiIsY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfSx7dHlwZTp3Vn1dfSksbnVsbCk7Y2xhc3MgSFZ7fUhWLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxIVil9LEhWLsm1bW9kPWZvKHt0eXBlOkhWfSksSFYuybVpbmo9RG4oe2ltcG9ydHM6W1tyeCxJTCx4Vl1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihIVixbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbSVYselZdLGV4cG9ydHM6W0lWXSxpbXBvcnRzOltyeCxJTCx4Vl0sZW50cnlDb21wb25lbnRzOlt6Vl19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhIVix7ZGVjbGFyYXRpb25zOltJVix6Vl0saW1wb3J0czpbcngsSUwseFZdLGV4cG9ydHM6W0lWXX0pO2NsYXNzIEZWe31GVi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RlYpfSxGVi7JtW1vZD1mbyh7dHlwZTpGVn0pLEZWLsm1aW5qPURuKHtpbXBvcnRzOltbbVQsSFYsVFMuZm9yRmVhdHVyZShVVCxaSSksaEQuZm9yRmVhdHVyZShbWUldKV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihGVixbe3R5cGU6TF8sYXJnczpbe2ltcG9ydHM6W21ULEhWLFRTLmZvckZlYXR1cmUoVVQsWkkpLGhELmZvckZlYXR1cmUoW1lJXSldfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oRlYse2ltcG9ydHM6W21ULEhWLEFTLGdEXX0pO2NvbnN0IExWPVsiKiIsW1sibWF0LXRvb2xiYXItcm93Il1dXSxCVj1JRihjbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLl9lbGVtZW50UmVmPXR9fSk7Y2xhc3MgVlZ7fVZWLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxWVil9LFZWLsm1ZGlyPWhvKHt0eXBlOlZWLHNlbGVjdG9yczpbWyJtYXQtdG9vbGJhci1yb3ciXV0saG9zdEF0dHJzOlsxLCJtYXQtdG9vbGJhci1yb3ciXSxleHBvcnRBczpbIm1hdFRvb2xiYXJSb3ciXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoVlYsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoibWF0LXRvb2xiYXItcm93IixleHBvcnRBczoibWF0VG9vbGJhclJvdyIsaG9zdDp7Y2xhc3M6Im1hdC10b29sYmFyLXJvdyJ9fV19XSxudWxsLG51bGwpO2NsYXNzIGpWIGV4dGVuZHMgQlZ7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKHQpLHRoaXMuX3BsYXRmb3JtPWUsdGhpcy5fZG9jdW1lbnQ9bn1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXImJih0aGlzLl9jaGVja1Rvb2xiYXJNaXhlZE1vZGVzKCksdGhpcy5fdG9vbGJhclJvd3MuY2hhbmdlcy5zdWJzY3JpYmUoKCgpPT50aGlzLl9jaGVja1Rvb2xiYXJNaXhlZE1vZGVzKCkpKSl9X2NoZWNrVG9vbGJhck1peGVkTW9kZXMoKXtpZih0aGlzLl90b29sYmFyUm93cy5sZW5ndGgmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl7QXJyYXkuZnJvbSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGROb2RlcykuZmlsdGVyKCh0PT4hKHQuY2xhc3NMaXN0JiZ0LmNsYXNzTGlzdC5jb250YWlucygibWF0LXRvb2xiYXItcm93IikpKSkuZmlsdGVyKCh0PT50Lm5vZGVUeXBlIT09KHRoaXMuX2RvY3VtZW50P3RoaXMuX2RvY3VtZW50LkNPTU1FTlRfTk9ERTo4KSkpLnNvbWUoKHQ9PiEoIXQudGV4dENvbnRlbnR8fCF0LnRleHRDb250ZW50LnRyaW0oKSkpKSYmKGZ1bmN0aW9uIHQoKXt0aHJvdyBFcnJvcigiTWF0VG9vbGJhcjogQXR0ZW1wdGluZyB0byBjb21iaW5lIGRpZmZlcmVudCB0b29sYmFyIG1vZGVzLiBFaXRoZXIgc3BlY2lmeSBtdWx0aXBsZSBgPG1hdC10b29sYmFyLXJvdz5gIGVsZW1lbnRzIGV4cGxpY2l0bHkgb3IganVzdCBwbGFjZSBjb250ZW50IGluc2lkZSBvZiBhIGA8bWF0LXRvb2xiYXI+YCBmb3IgYSBzaW5nbGUgcm93LiIpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKCl9fX1qVi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8alYpKGdmKEtoKSxnZihjSCksZ2Yoc00pKX0salYuybVjbXA9c28oe3R5cGU6alYsc2VsZWN0b3JzOltbIm1hdC10b29sYmFyIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uIHQoZSxuLG8pe2lmKDEmZSYmankobyxWViw1KSwyJmUpe2xldCB0O0J5KHQ9VXkoKSkmJihuLl90b29sYmFyUm93cz10KX19LGhvc3RBdHRyczpbMSwibWF0LXRvb2xiYXIiXSxob3N0VmFyczo0LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZjdSgibWF0LXRvb2xiYXItbXVsdGlwbGUtcm93cyIsbi5fdG9vbGJhclJvd3MubGVuZ3RoPjApKCJtYXQtdG9vbGJhci1zaW5nbGUtcm93IiwwPT09bi5fdG9vbGJhclJvd3MubGVuZ3RoKX0saW5wdXRzOntjb2xvcjoiY29sb3IifSxleHBvcnRBczpbIm1hdFRvb2xiYXIiXSxmZWF0dXJlczpbUXBdLG5nQ29udGVudFNlbGVjdG9yczpbIioiLCJtYXQtdG9vbGJhci1yb3ciXSxkZWNsczoyLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoSGYoTFYpLEZmKDApLEZmKDEsMSkpfSxzdHlsZXM6WyIuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdG9vbGJhcntvdXRsaW5lOnNvbGlkIDFweH0ubWF0LXRvb2xiYXItcm93LC5tYXQtdG9vbGJhci1zaW5nbGUtcm93e2Rpc3BsYXk6ZmxleDtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzowIDE2cHg7d2lkdGg6MTAwJTtmbGV4LWRpcmVjdGlvbjpyb3c7YWxpZ24taXRlbXM6Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcH0ubWF0LXRvb2xiYXItbXVsdGlwbGUtcm93c3tkaXNwbGF5OmZsZXg7Ym94LXNpemluZzpib3JkZXItYm94O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt3aWR0aDoxMDAlfVxuIl0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksalYuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpLaH0se3R5cGU6Y0h9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX1dLGpWLnByb3BEZWNvcmF0b3JzPXtfdG9vbGJhclJvd3M6W3t0eXBlOm9yLGFyZ3M6W1ZWLHtkZXNjZW5kYW50czohMH1dfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoalYsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibWF0LXRvb2xiYXIiLGV4cG9ydEFzOiJtYXRUb29sYmFyIix0ZW1wbGF0ZTonPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPG5nLWNvbnRlbnQgc2VsZWN0PSJtYXQtdG9vbGJhci1yb3ciPjwvbmctY29udGVudD5cbicsaW5wdXRzOlsiY29sb3IiXSxob3N0OntjbGFzczoibWF0LXRvb2xiYXIiLCJbY2xhc3MubWF0LXRvb2xiYXItbXVsdGlwbGUtcm93c10iOiJfdG9vbGJhclJvd3MubGVuZ3RoID4gMCIsIltjbGFzcy5tYXQtdG9vbGJhci1zaW5nbGUtcm93XSI6Il90b29sYmFyUm93cy5sZW5ndGggPT09IDAifSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNoLGVuY2Fwc3VsYXRpb246V24uTm9uZSxzdHlsZXM6WyIuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdG9vbGJhcntvdXRsaW5lOnNvbGlkIDFweH0ubWF0LXRvb2xiYXItcm93LC5tYXQtdG9vbGJhci1zaW5nbGUtcm93e2Rpc3BsYXk6ZmxleDtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzowIDE2cHg7d2lkdGg6MTAwJTtmbGV4LWRpcmVjdGlvbjpyb3c7YWxpZ24taXRlbXM6Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcH0ubWF0LXRvb2xiYXItbXVsdGlwbGUtcm93c3tkaXNwbGF5OmZsZXg7Ym94LXNpemluZzpib3JkZXItYm94O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt3aWR0aDoxMDAlfVxuIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpLaH0se3R5cGU6Y0h9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX1dfSkse190b29sYmFyUm93czpbe3R5cGU6b3IsYXJnczpbVlYse2Rlc2NlbmRhbnRzOiEwfV19XX0pO2NsYXNzIFVWe31mdW5jdGlvbiBXVih0LGUpezEmdCYmRmYoMCl9VVYuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFVWKX0sVVYuybVtb2Q9Zm8oe3R5cGU6VVZ9KSxVVi7JtWluaj1Ebih7aW1wb3J0czpbW05GXSxORl19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFVWLFt7dHlwZTpMXyxhcmdzOlt7aW1wb3J0czpbTkZdLGV4cG9ydHM6W2pWLFZWLE5GXSxkZWNsYXJhdGlvbnM6W2pWLFZWXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKFVWLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5balYsVlZdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW05GXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltqVixWVixORl19fSk7Y29uc3QgR1Y9WyIqIl07ZnVuY3Rpb24gWVYodCxlKXt9Y29uc3QgcVY9ZnVuY3Rpb24odCl7cmV0dXJue2FuaW1hdGlvbkR1cmF0aW9uOnR9fSxaVj1mdW5jdGlvbih0LGUpe3JldHVybnt2YWx1ZTp0LHBhcmFtczplfX0sWFY9WyJ0YWJCb2R5V3JhcHBlciJdLEtWPVsidGFiSGVhZGVyIl07ZnVuY3Rpb24gSlYodCxlKXt9ZnVuY3Rpb24gUVYodCxlKXtpZigxJnQmJkhtKDAsSlYsMCwwLCJuZy10ZW1wbGF0ZSIsOSksMiZ0KXtiZigiY2RrUG9ydGFsT3V0bGV0Iix6ZigpLiRpbXBsaWNpdC50ZW1wbGF0ZUxhYmVsKX19ZnVuY3Rpb24gJFYodCxlKXtpZigxJnQmJlB1KDApLDImdCl7d3UoemYoKS4kaW1wbGljaXQudGV4dExhYmVsKX19ZnVuY3Rpb24gdGoodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJkaXYiLDYpLFJmKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtjb25zdCBuPVBpKHQpLG89bi4kaW1wbGljaXQsaT1uLmluZGV4LGE9emYoKSxyPUZtKDEpO3JldHVybiBhLl9oYW5kbGVDbGljayhvLHIsaSl9KSkoImNka0ZvY3VzQ2hhbmdlIiwoZnVuY3Rpb24gZShuKXtjb25zdCBvPVBpKHQpLmluZGV4O3JldHVybiB6ZigpLl90YWJGb2N1c0NoYW5nZWQobixvKX0pKSxDZigxLCJkaXYiLDcpLEhtKDIsUVYsMSwxLCJuZy10ZW1wbGF0ZSIsOCksSG0oMywkViwxLDEsIm5nLXRlbXBsYXRlIiw4KSxNZigpLE1mKCl9aWYoMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49ZS5pbmRleCxvPXpmKCk7Y3UoIm1hdC10YWItbGFiZWwtYWN0aXZlIixvLnNlbGVjdGVkSW5kZXg9PW4pLGJmKCJpZCIsby5fZ2V0VGFiTGFiZWxJZChuKSkoImRpc2FibGVkIix0LmRpc2FibGVkKSgibWF0UmlwcGxlRGlzYWJsZWQiLHQuZGlzYWJsZWR8fG8uZGlzYWJsZVJpcHBsZSkseW0oInRhYkluZGV4IixvLl9nZXRUYWJJbmRleCh0LG4pKSgiYXJpYS1wb3NpbnNldCIsbisxKSgiYXJpYS1zZXRzaXplIixvLl90YWJzLmxlbmd0aCkoImFyaWEtY29udHJvbHMiLG8uX2dldFRhYkNvbnRlbnRJZChuKSkoImFyaWEtc2VsZWN0ZWQiLG8uc2VsZWN0ZWRJbmRleD09bikoImFyaWEtbGFiZWwiLHQuYXJpYUxhYmVsfHxudWxsKSgiYXJpYS1sYWJlbGxlZGJ5IiwhdC5hcmlhTGFiZWwmJnQuYXJpYUxhYmVsbGVkYnk/dC5hcmlhTGFiZWxsZWRieTpudWxsKSxEYygyKSxiZigibmdJZiIsdC50ZW1wbGF0ZUxhYmVsKSxEYygxKSxiZigibmdJZiIsIXQudGVtcGxhdGVMYWJlbCl9fWZ1bmN0aW9uIGVqKHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwibWF0LXRhYi1ib2R5IiwxMCksUmYoIl9vbkNlbnRlcmVkIiwoZnVuY3Rpb24gZSgpe1BpKHQpO3JldHVybiB6ZigpLl9yZW1vdmVUYWJCb2R5V3JhcHBlckhlaWdodCgpfSkpKCJfb25DZW50ZXJpbmciLChmdW5jdGlvbiBlKG4pe1BpKHQpO3JldHVybiB6ZigpLl9zZXRUYWJCb2R5V3JhcHBlckhlaWdodChuKX0pKSxNZigpfWlmKDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdCxuPWUuaW5kZXgsbz16ZigpO2N1KCJtYXQtdGFiLWJvZHktYWN0aXZlIixvLnNlbGVjdGVkSW5kZXg9PT1uKSxiZigiaWQiLG8uX2dldFRhYkNvbnRlbnRJZChuKSkoImNvbnRlbnQiLHQuY29udGVudCkoInBvc2l0aW9uIix0LnBvc2l0aW9uKSgib3JpZ2luIix0Lm9yaWdpbikoImFuaW1hdGlvbkR1cmF0aW9uIixvLmFuaW1hdGlvbkR1cmF0aW9uKSx5bSgidGFiaW5kZXgiLG51bGwhPW8uY29udGVudFRhYkluZGV4JiZvLnNlbGVjdGVkSW5kZXg9PT1uP28uY29udGVudFRhYkluZGV4Om51bGwpKCJhcmlhLWxhYmVsbGVkYnkiLG8uX2dldFRhYkxhYmVsSWQobikpfX1jb25zdCBuaj1bInRhYkxpc3RDb250YWluZXIiXSxvaj1bInRhYkxpc3QiXSxpaj1bIm5leHRQYWdpbmF0b3IiXSxhaj1bInByZXZpb3VzUGFnaW5hdG9yIl0scmo9bmV3IGVyKCJNYXRJbmtCYXJQb3NpdGlvbmVyIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbiBzaigpe3JldHVybiB0PT4oe2xlZnQ6dD8odC5vZmZzZXRMZWZ0fHwwKSsicHgiOiIwIix3aWR0aDp0Pyh0Lm9mZnNldFdpZHRofHwwKSsicHgiOiIwIn0pfX0pO2NsYXNzIGxqe2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMuX2VsZW1lbnRSZWY9dCx0aGlzLl9uZ1pvbmU9ZSx0aGlzLl9pbmtCYXJQb3NpdGlvbmVyPW4sdGhpcy5fYW5pbWF0aW9uTW9kZT1vfWFsaWduVG9FbGVtZW50KHQpe3RoaXMuc2hvdygpLCJ1bmRlZmluZWQiIT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lP3RoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PntyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT50aGlzLl9zZXRTdHlsZXModCkpKX0pKTp0aGlzLl9zZXRTdHlsZXModCl9c2hvdygpe3RoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS52aXNpYmlsaXR5PSJ2aXNpYmxlIn1oaWRlKCl7dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiJ9X3NldFN0eWxlcyh0KXtjb25zdCBlPXRoaXMuX2lua0JhclBvc2l0aW9uZXIodCksbj10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7bi5zdHlsZS5sZWZ0PWUubGVmdCxuLnN0eWxlLndpZHRoPWUud2lkdGh9fWxqLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxsaikoZ2YoS2gpLGdmKG1DKSxnZihyaiksZ2YoY2ssOCkpfSxsai7JtWRpcj1obyh7dHlwZTpsaixzZWxlY3RvcnM6W1sibWF0LWluay1iYXIiXV0saG9zdEF0dHJzOlsxLCJtYXQtaW5rLWJhciJdLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJmN1KCJfbWF0LWFuaW1hdGlvbi1ub29wYWJsZSIsIk5vb3BBbmltYXRpb25zIj09PW4uX2FuaW1hdGlvbk1vZGUpfX0pLGxqLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6S2h9LHt0eXBlOm1DfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbcmpdfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbY2tdfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGxqLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6Im1hdC1pbmstYmFyIixob3N0OntjbGFzczoibWF0LWluay1iYXIiLCJbY2xhc3MuX21hdC1hbmltYXRpb24tbm9vcGFibGVdIjoiX2FuaW1hdGlvbk1vZGUgPT09ICdOb29wQW5pbWF0aW9ucycifX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOktofSx7dHlwZTptQ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3JqXX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W2NrXX1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IGNqPW5ldyBlcigiTWF0VGFiQ29udGVudCIpO2NsYXNzIGRqe2NvbnN0cnVjdG9yKHQpe3RoaXMudGVtcGxhdGU9dH19ZGouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGRqKShnZihFYikpfSxkai7JtWRpcj1obyh7dHlwZTpkaixzZWxlY3RvcnM6W1siIiwibWF0VGFiQ29udGVudCIsIiJdXSxmZWF0dXJlczpbamgoW3twcm92aWRlOmNqLHVzZUV4aXN0aW5nOmRqfV0pXX0pLGRqLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6RWJ9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGRqLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IlttYXRUYWJDb250ZW50XSIscHJvdmlkZXJzOlt7cHJvdmlkZTpjaix1c2VFeGlzdGluZzpkan1dfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6RWJ9XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgcGo9bmV3IGVyKCJNYXRUYWJMYWJlbCIpO2NsYXNzIG1qIGV4dGVuZHMgbUJ7fW1qLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1VYShtaikpKShufHxtail9fSkoKSxtai7JtWRpcj1obyh7dHlwZTptaixzZWxlY3RvcnM6W1siIiwibWF0LXRhYi1sYWJlbCIsIiJdLFsiIiwibWF0VGFiTGFiZWwiLCIiXV0sZmVhdHVyZXM6W2poKFt7cHJvdmlkZTpwaix1c2VFeGlzdGluZzptan1dKSxRcF19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKG1qLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IlttYXQtdGFiLWxhYmVsXSwgW21hdFRhYkxhYmVsXSIscHJvdmlkZXJzOlt7cHJvdmlkZTpwaix1c2VFeGlzdGluZzptan1dfV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgZmo9ekYoY2xhc3N7fSksdWo9bmV3IGVyKCJNQVRfVEFCX0dST1VQIik7Y2xhc3MgZ2ogZXh0ZW5kcyBmantjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKCksdGhpcy5fdmlld0NvbnRhaW5lclJlZj10LHRoaXMuX2Nsb3Nlc3RUYWJHcm91cD1lLHRoaXMudGV4dExhYmVsPSIiLHRoaXMuX2NvbnRlbnRQb3J0YWw9bnVsbCx0aGlzLl9zdGF0ZUNoYW5nZXM9bmV3IEIsdGhpcy5wb3NpdGlvbj1udWxsLHRoaXMub3JpZ2luPW51bGwsdGhpcy5pc0FjdGl2ZT0hMX1nZXQgdGVtcGxhdGVMYWJlbCgpe3JldHVybiB0aGlzLl90ZW1wbGF0ZUxhYmVsfXNldCB0ZW1wbGF0ZUxhYmVsKHQpe3RoaXMuX3NldFRlbXBsYXRlTGFiZWxJbnB1dCh0KX1nZXQgY29udGVudCgpe3JldHVybiB0aGlzLl9jb250ZW50UG9ydGFsfW5nT25DaGFuZ2VzKHQpeyh0Lmhhc093blByb3BlcnR5KCJ0ZXh0TGFiZWwiKXx8dC5oYXNPd25Qcm9wZXJ0eSgiZGlzYWJsZWQiKSkmJnRoaXMuX3N0YXRlQ2hhbmdlcy5uZXh0KCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9zdGF0ZUNoYW5nZXMuY29tcGxldGUoKX1uZ09uSW5pdCgpe3RoaXMuX2NvbnRlbnRQb3J0YWw9bmV3IGxCKHRoaXMuX2V4cGxpY2l0Q29udGVudHx8dGhpcy5faW1wbGljaXRDb250ZW50LHRoaXMuX3ZpZXdDb250YWluZXJSZWYpfV9zZXRUZW1wbGF0ZUxhYmVsSW5wdXQodCl7dCYmKHRoaXMuX3RlbXBsYXRlTGFiZWw9dCl9fWdqLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxnaikoZ2YoRmIpLGdmKHVqLDgpKX0sZ2ouybVjbXA9c28oe3R5cGU6Z2osc2VsZWN0b3JzOltbIm1hdC10YWIiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24gdChlLG4sbyl7aWYoMSZlJiYoankobyxwaiw1KSxqeShvLGNqLDcsRWIpKSwyJmUpe2xldCB0O0J5KHQ9VXkoKSkmJihuLnRlbXBsYXRlTGFiZWw9dC5maXJzdCksQnkodD1VeSgpKSYmKG4uX2V4cGxpY2l0Q29udGVudD10LmZpcnN0KX19LHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiZWeShFYiw3KSwyJmUpe2xldCB0O0J5KHQ9VXkoKSkmJihuLl9pbXBsaWNpdENvbnRlbnQ9dC5maXJzdCl9fSxpbnB1dHM6e2Rpc2FibGVkOiJkaXNhYmxlZCIsdGV4dExhYmVsOlsibGFiZWwiLCJ0ZXh0TGFiZWwiXSxhcmlhTGFiZWw6WyJhcmlhLWxhYmVsIiwiYXJpYUxhYmVsIl0sYXJpYUxhYmVsbGVkYnk6WyJhcmlhLWxhYmVsbGVkYnkiLCJhcmlhTGFiZWxsZWRieSJdfSxleHBvcnRBczpbIm1hdFRhYiJdLGZlYXR1cmVzOltRcCxxb10sbmdDb250ZW50U2VsZWN0b3JzOkdWLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihIZigpLEhtKDAsV1YsMSwwLCJuZy10ZW1wbGF0ZSIpKX0sZW5jYXBzdWxhdGlvbjoyfSksZ2ouY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpGYn0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3VqXX0se3R5cGU6QnJ9XX1dLGdqLnByb3BEZWNvcmF0b3JzPXt0ZW1wbGF0ZUxhYmVsOlt7dHlwZTppcixhcmdzOltwal19XSxfZXhwbGljaXRDb250ZW50Olt7dHlwZTppcixhcmdzOltjaix7cmVhZDpFYixzdGF0aWM6ITB9XX1dLF9pbXBsaWNpdENvbnRlbnQ6W3t0eXBlOmFyLGFyZ3M6W0ViLHtzdGF0aWM6ITB9XX1dLHRleHRMYWJlbDpbe3R5cGU6Ul8sYXJnczpbImxhYmVsIl19XSxhcmlhTGFiZWw6W3t0eXBlOlJfLGFyZ3M6WyJhcmlhLWxhYmVsIl19XSxhcmlhTGFiZWxsZWRieTpbe3R5cGU6Ul8sYXJnczpbImFyaWEtbGFiZWxsZWRieSJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZ2osW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibWF0LXRhYiIsdGVtcGxhdGU6Ilx4M2MhLS0gQ3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBjb250ZW50IG9mIHRoZSA8bWF0LXRhYj4gc28gdGhhdCB3ZSBjYW4gZ3JhYiBhIHJlZmVyZW5jZSB0byB0aGlzXG4gICAgVGVtcGxhdGVSZWYgYW5kIHVzZSBpdCBpbiBhIFBvcnRhbCB0byByZW5kZXIgdGhlIHRhYiBjb250ZW50IGluIHRoZSBhcHByb3ByaWF0ZSBwbGFjZSBpbiB0aGVcbiAgICB0YWItZ3JvdXAuIC0tXHgzZVxuPG5nLXRlbXBsYXRlPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L25nLXRlbXBsYXRlPlxuIixpbnB1dHM6WyJkaXNhYmxlZCJdLGNoYW5nZURldGVjdGlvbjpqbi5EZWZhdWx0LGVuY2Fwc3VsYXRpb246V24uTm9uZSxleHBvcnRBczoibWF0VGFiIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkZifSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbdWpdfSx7dHlwZTpCcn1dfV19KSx7dGV4dExhYmVsOlt7dHlwZTpSXyxhcmdzOlsibGFiZWwiXX1dLHRlbXBsYXRlTGFiZWw6W3t0eXBlOmlyLGFyZ3M6W3BqXX1dLF9leHBsaWNpdENvbnRlbnQ6W3t0eXBlOmlyLGFyZ3M6W2NqLHtyZWFkOkViLHN0YXRpYzohMH1dfV0sX2ltcGxpY2l0Q29udGVudDpbe3R5cGU6YXIsYXJnczpbRWIse3N0YXRpYzohMH1dfV0sYXJpYUxhYmVsOlt7dHlwZTpSXyxhcmdzOlsiYXJpYS1sYWJlbCJdfV0sYXJpYUxhYmVsbGVkYnk6W3t0eXBlOlJfLGFyZ3M6WyJhcmlhLWxhYmVsbGVkYnkiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBoaj17dHJhbnNsYXRlVGFiOnhPKCJ0cmFuc2xhdGVUYWIiLFtrTygiY2VudGVyLCB2b2lkLCBsZWZ0LW9yaWdpbi1jZW50ZXIsIHJpZ2h0LW9yaWdpbi1jZW50ZXIiLHdPKHt0cmFuc2Zvcm06Im5vbmUifSkpLGtPKCJsZWZ0Iix3Tyh7dHJhbnNmb3JtOiJ0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCkiLG1pbkhlaWdodDoiMXB4In0pKSxrTygicmlnaHQiLHdPKHt0cmFuc2Zvcm06InRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIixtaW5IZWlnaHQ6IjFweCJ9KSksRE8oIiogPT4gbGVmdCwgKiA9PiByaWdodCwgbGVmdCA9PiBjZW50ZXIsIHJpZ2h0ID0+IGNlbnRlciIsT08oInt7YW5pbWF0aW9uRHVyYXRpb259fSBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSkiKSksRE8oInZvaWQgPT4gbGVmdC1vcmlnaW4tY2VudGVyIixbd08oe3RyYW5zZm9ybToidHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApIn0pLE9PKCJ7e2FuaW1hdGlvbkR1cmF0aW9ufX0gY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpIildKSxETygidm9pZCA9PiByaWdodC1vcmlnaW4tY2VudGVyIixbd08oe3RyYW5zZm9ybToidHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkifSksT08oInt7YW5pbWF0aW9uRHVyYXRpb259fSBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSkiKV0pXSl9OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBiaiBleHRlbmRzIHVCe2NvbnN0cnVjdG9yKHQsZSxuLG8pe3N1cGVyKHQsZSxvKSx0aGlzLl9ob3N0PW4sdGhpcy5fY2VudGVyaW5nU3ViPXUuRU1QVFksdGhpcy5fbGVhdmluZ1N1Yj11LkVNUFRZfW5nT25Jbml0KCl7c3VwZXIubmdPbkluaXQoKSx0aGlzLl9jZW50ZXJpbmdTdWI9dGhpcy5faG9zdC5fYmVmb3JlQ2VudGVyaW5nLnBpcGUoQmUodGhpcy5faG9zdC5faXNDZW50ZXJQb3NpdGlvbih0aGlzLl9ob3N0Ll9wb3NpdGlvbikpKS5zdWJzY3JpYmUoKHQ9Pnt0JiYhdGhpcy5oYXNBdHRhY2hlZCgpJiZ0aGlzLmF0dGFjaCh0aGlzLl9ob3N0Ll9jb250ZW50KX0pKSx0aGlzLl9sZWF2aW5nU3ViPXRoaXMuX2hvc3QuX2FmdGVyTGVhdmluZ0NlbnRlci5zdWJzY3JpYmUoKCgpPT57dGhpcy5kZXRhY2goKX0pKX1uZ09uRGVzdHJveSgpe3N1cGVyLm5nT25EZXN0cm95KCksdGhpcy5fY2VudGVyaW5nU3ViLnVuc3Vic2NyaWJlKCksdGhpcy5fbGVhdmluZ1N1Yi51bnN1YnNjcmliZSgpfX1iai7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8YmopKGdmKEdoKSxnZihGYiksZ2YoJGUoKCgpPT5faikpKSxnZihzTSkpfSxiai7JtWRpcj1obyh7dHlwZTpiaixzZWxlY3RvcnM6W1siIiwibWF0VGFiQm9keUhvc3QiLCIiXV0sZmVhdHVyZXM6W1FwXX0pLGJqLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6R2h9LHt0eXBlOkZifSx7dHlwZTpfaixkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOlskZSgoKCk9Pl9qKSldfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoYmosW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW21hdFRhYkJvZHlIb3N0XSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpHaH0se3R5cGU6RmJ9LHt0eXBlOl9qLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6WyRlKCgoKT0+X2opKV19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfV19KSxudWxsKTtjbGFzcyB5antjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5fZWxlbWVudFJlZj10LHRoaXMuX2Rpcj1lLHRoaXMuX2RpckNoYW5nZVN1YnNjcmlwdGlvbj11LkVNUFRZLHRoaXMuX3RyYW5zbGF0ZVRhYkNvbXBsZXRlPW5ldyBCLHRoaXMuX29uQ2VudGVyaW5nPW5ldyBTeSx0aGlzLl9iZWZvcmVDZW50ZXJpbmc9bmV3IFN5LHRoaXMuX2FmdGVyTGVhdmluZ0NlbnRlcj1uZXcgU3ksdGhpcy5fb25DZW50ZXJlZD1uZXcgU3koITApLHRoaXMuYW5pbWF0aW9uRHVyYXRpb249IjUwMG1zIixlJiYodGhpcy5fZGlyQ2hhbmdlU3Vic2NyaXB0aW9uPWUuY2hhbmdlLnN1YnNjcmliZSgodD0+e3RoaXMuX2NvbXB1dGVQb3NpdGlvbkFuaW1hdGlvblN0YXRlKHQpLG4ubWFya0ZvckNoZWNrKCl9KSkpLHRoaXMuX3RyYW5zbGF0ZVRhYkNvbXBsZXRlLnBpcGUod2UoKCh0LGUpPT50LmZyb21TdGF0ZT09PWUuZnJvbVN0YXRlJiZ0LnRvU3RhdGU9PT1lLnRvU3RhdGUpKSkuc3Vic2NyaWJlKCh0PT57dGhpcy5faXNDZW50ZXJQb3NpdGlvbih0LnRvU3RhdGUpJiZ0aGlzLl9pc0NlbnRlclBvc2l0aW9uKHRoaXMuX3Bvc2l0aW9uKSYmdGhpcy5fb25DZW50ZXJlZC5lbWl0KCksdGhpcy5faXNDZW50ZXJQb3NpdGlvbih0LmZyb21TdGF0ZSkmJiF0aGlzLl9pc0NlbnRlclBvc2l0aW9uKHRoaXMuX3Bvc2l0aW9uKSYmdGhpcy5fYWZ0ZXJMZWF2aW5nQ2VudGVyLmVtaXQoKX0pKX1zZXQgcG9zaXRpb24odCl7dGhpcy5fcG9zaXRpb25JbmRleD10LHRoaXMuX2NvbXB1dGVQb3NpdGlvbkFuaW1hdGlvblN0YXRlKCl9bmdPbkluaXQoKXsiY2VudGVyIj09dGhpcy5fcG9zaXRpb24mJm51bGwhPXRoaXMub3JpZ2luJiYodGhpcy5fcG9zaXRpb249dGhpcy5fY29tcHV0ZVBvc2l0aW9uRnJvbU9yaWdpbih0aGlzLm9yaWdpbikpfW5nT25EZXN0cm95KCl7dGhpcy5fZGlyQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fdHJhbnNsYXRlVGFiQ29tcGxldGUuY29tcGxldGUoKX1fb25UcmFuc2xhdGVUYWJTdGFydGVkKHQpe2NvbnN0IGU9dGhpcy5faXNDZW50ZXJQb3NpdGlvbih0LnRvU3RhdGUpO3RoaXMuX2JlZm9yZUNlbnRlcmluZy5lbWl0KGUpLGUmJnRoaXMuX29uQ2VudGVyaW5nLmVtaXQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCl9X2dldExheW91dERpcmVjdGlvbigpe3JldHVybiB0aGlzLl9kaXImJiJydGwiPT09dGhpcy5fZGlyLnZhbHVlPyJydGwiOiJsdHIifV9pc0NlbnRlclBvc2l0aW9uKHQpe3JldHVybiJjZW50ZXIiPT10fHwibGVmdC1vcmlnaW4tY2VudGVyIj09dHx8InJpZ2h0LW9yaWdpbi1jZW50ZXIiPT10fV9jb21wdXRlUG9zaXRpb25BbmltYXRpb25TdGF0ZSh0PXRoaXMuX2dldExheW91dERpcmVjdGlvbigpKXt0aGlzLl9wb3NpdGlvbj10aGlzLl9wb3NpdGlvbkluZGV4PDA/Imx0ciI9PXQ/ImxlZnQiOiJyaWdodCI6dGhpcy5fcG9zaXRpb25JbmRleD4wPyJsdHIiPT10PyJyaWdodCI6ImxlZnQiOiJjZW50ZXIifV9jb21wdXRlUG9zaXRpb25Gcm9tT3JpZ2luKHQpe2NvbnN0IGU9dGhpcy5fZ2V0TGF5b3V0RGlyZWN0aW9uKCk7cmV0dXJuImx0ciI9PWUmJnQ8PTB8fCJydGwiPT1lJiZ0PjA/ImxlZnQtb3JpZ2luLWNlbnRlciI6InJpZ2h0LW9yaWdpbi1jZW50ZXIifX15ai7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8eWopKGdmKEtoKSxnZih2Riw4KSxnZihPYikpfSx5ai7JtWRpcj1obyh7dHlwZTp5aixpbnB1dHM6e2FuaW1hdGlvbkR1cmF0aW9uOiJhbmltYXRpb25EdXJhdGlvbiIscG9zaXRpb246InBvc2l0aW9uIixfY29udGVudDpbImNvbnRlbnQiLCJfY29udGVudCJdLG9yaWdpbjoib3JpZ2luIn0sb3V0cHV0czp7X29uQ2VudGVyaW5nOiJfb25DZW50ZXJpbmciLF9iZWZvcmVDZW50ZXJpbmc6Il9iZWZvcmVDZW50ZXJpbmciLF9hZnRlckxlYXZpbmdDZW50ZXI6Il9hZnRlckxlYXZpbmdDZW50ZXIiLF9vbkNlbnRlcmVkOiJfb25DZW50ZXJlZCJ9fSkseWouY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpLaH0se3R5cGU6dkYsZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX0se3R5cGU6T2J9XSx5ai5wcm9wRGVjb3JhdG9ycz17X29uQ2VudGVyaW5nOlt7dHlwZTpFX31dLF9iZWZvcmVDZW50ZXJpbmc6W3t0eXBlOkVffV0sX2FmdGVyTGVhdmluZ0NlbnRlcjpbe3R5cGU6RV99XSxfb25DZW50ZXJlZDpbe3R5cGU6RV99XSxfY29udGVudDpbe3R5cGU6Ul8sYXJnczpbImNvbnRlbnQiXX1dLG9yaWdpbjpbe3R5cGU6Ul99XSxhbmltYXRpb25EdXJhdGlvbjpbe3R5cGU6Ul99XSxwb3NpdGlvbjpbe3R5cGU6Ul99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih5aixbe3R5cGU6a199XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6S2h9LHt0eXBlOnZGLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOk9ifV19KSx7X29uQ2VudGVyaW5nOlt7dHlwZTpFX31dLF9iZWZvcmVDZW50ZXJpbmc6W3t0eXBlOkVffV0sX2FmdGVyTGVhdmluZ0NlbnRlcjpbe3R5cGU6RV99XSxfb25DZW50ZXJlZDpbe3R5cGU6RV99XSxhbmltYXRpb25EdXJhdGlvbjpbe3R5cGU6Ul99XSxwb3NpdGlvbjpbe3R5cGU6Ul99XSxfY29udGVudDpbe3R5cGU6Ul8sYXJnczpbImNvbnRlbnQiXX1dLG9yaWdpbjpbe3R5cGU6Ul99XX0pO2NsYXNzIF9qIGV4dGVuZHMgeWp7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKHQsZSxuKX19X2ouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fF9qKShnZihLaCksZ2YodkYsOCksZ2YoT2IpKX0sX2ouybVjbXA9c28oe3R5cGU6X2osc2VsZWN0b3JzOltbIm1hdC10YWItYm9keSJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmVnkodUIsNSksMiZlKXtsZXQgdDtCeSh0PVV5KCkpJiYobi5fcG9ydGFsSG9zdD10LmZpcnN0KX19LGhvc3RBdHRyczpbMSwibWF0LXRhYi1ib2R5Il0sZmVhdHVyZXM6W1FwXSxkZWNsczozLHZhcnM6Nixjb25zdHM6W1siY2RrU2Nyb2xsYWJsZSIsIiIsMSwibWF0LXRhYi1ib2R5LWNvbnRlbnQiXSxbImNvbnRlbnQiLCIiXSxbIm1hdFRhYkJvZHlIb3N0IiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJkaXYiLDAsMSksUmYoIkB0cmFuc2xhdGVUYWIuc3RhcnQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9vblRyYW5zbGF0ZVRhYlN0YXJ0ZWQoZSl9KSkoIkB0cmFuc2xhdGVUYWIuZG9uZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX3RyYW5zbGF0ZVRhYkNvbXBsZXRlLm5leHQoZSl9KSksSG0oMixZViwwLDAsIm5nLXRlbXBsYXRlIiwyKSxNZigpKSwyJmUmJmJmKCJAdHJhbnNsYXRlVGFiIixheSgzLFpWLG4uX3Bvc2l0aW9uLGl5KDEscVYsbi5hbmltYXRpb25EdXJhdGlvbikpKX0sZGlyZWN0aXZlczpbYmpdLHN0eWxlczpbIi5tYXQtdGFiLWJvZHktY29udGVudHtoZWlnaHQ6MTAwJTtvdmVyZmxvdzphdXRvfS5tYXQtdGFiLWdyb3VwLWR5bmFtaWMtaGVpZ2h0IC5tYXQtdGFiLWJvZHktY29udGVudHtvdmVyZmxvdzpoaWRkZW59XG4iXSxlbmNhcHN1bGF0aW9uOjIsZGF0YTp7YW5pbWF0aW9uOltoai50cmFuc2xhdGVUYWJdfX0pLF9qLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6S2h9LHt0eXBlOnZGLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOk9ifV0sX2oucHJvcERlY29yYXRvcnM9e19wb3J0YWxIb3N0Olt7dHlwZTphcixhcmdzOlt1Ql19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihfaixbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJtYXQtdGFiLWJvZHkiLHRlbXBsYXRlOic8ZGl2IGNsYXNzPSJtYXQtdGFiLWJvZHktY29udGVudCIgI2NvbnRlbnRcbiAgICAgW0B0cmFuc2xhdGVUYWJdPSJ7XG4gICAgICAgIHZhbHVlOiBfcG9zaXRpb24sXG4gICAgICAgIHBhcmFtczoge2FuaW1hdGlvbkR1cmF0aW9uOiBhbmltYXRpb25EdXJhdGlvbn1cbiAgICAgfSJcbiAgICAgKEB0cmFuc2xhdGVUYWIuc3RhcnQpPSJfb25UcmFuc2xhdGVUYWJTdGFydGVkKCRldmVudCkiXG4gICAgIChAdHJhbnNsYXRlVGFiLmRvbmUpPSJfdHJhbnNsYXRlVGFiQ29tcGxldGUubmV4dCgkZXZlbnQpIlxuICAgICBjZGtTY3JvbGxhYmxlPlxuICA8bmctdGVtcGxhdGUgbWF0VGFiQm9keUhvc3Q+PC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuJyxlbmNhcHN1bGF0aW9uOlduLk5vbmUsY2hhbmdlRGV0ZWN0aW9uOmpuLkRlZmF1bHQsYW5pbWF0aW9uczpbaGoudHJhbnNsYXRlVGFiXSxob3N0OntjbGFzczoibWF0LXRhYi1ib2R5In0sc3R5bGVzOlsiLm1hdC10YWItYm9keS1jb250ZW50e2hlaWdodDoxMDAlO292ZXJmbG93OmF1dG99Lm1hdC10YWItZ3JvdXAtZHluYW1pYy1oZWlnaHQgLm1hdC10YWItYm9keS1jb250ZW50e292ZXJmbG93OmhpZGRlbn1cbiJdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6S2h9LHt0eXBlOnZGLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOk9ifV19KSx7X3BvcnRhbEhvc3Q6W3t0eXBlOmFyLGFyZ3M6W3VCXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBDaj1uZXcgZXIoIk1BVF9UQUJTX0NPTkZJRyIpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9sZXQgTWo9MDtjbGFzcyB2ant9Y29uc3QgeGo9SUYoSEYoY2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5fZWxlbWVudFJlZj10fX0pLCJwcmltYXJ5Iik7Y2xhc3MgT2ogZXh0ZW5kcyB4antjb25zdHJ1Y3Rvcih0LGUsbixvKXt2YXIgaTtzdXBlcih0KSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj1lLHRoaXMuX2FuaW1hdGlvbk1vZGU9byx0aGlzLl90YWJzPW5ldyBSeSx0aGlzLl9pbmRleFRvU2VsZWN0PTAsdGhpcy5fdGFiQm9keVdyYXBwZXJIZWlnaHQ9MCx0aGlzLl90YWJzU3Vic2NyaXB0aW9uPXUuRU1QVFksdGhpcy5fdGFiTGFiZWxTdWJzY3JpcHRpb249dS5FTVBUWSx0aGlzLl9zZWxlY3RlZEluZGV4PW51bGwsdGhpcy5oZWFkZXJQb3NpdGlvbj0iYWJvdmUiLHRoaXMuc2VsZWN0ZWRJbmRleENoYW5nZT1uZXcgU3ksdGhpcy5mb2N1c0NoYW5nZT1uZXcgU3ksdGhpcy5hbmltYXRpb25Eb25lPW5ldyBTeSx0aGlzLnNlbGVjdGVkVGFiQ2hhbmdlPW5ldyBTeSghMCksdGhpcy5fZ3JvdXBJZD1NaisrLHRoaXMuYW5pbWF0aW9uRHVyYXRpb249biYmbi5hbmltYXRpb25EdXJhdGlvbj9uLmFuaW1hdGlvbkR1cmF0aW9uOiI1MDBtcyIsdGhpcy5kaXNhYmxlUGFnaW5hdGlvbj0hKCFufHxudWxsPT1uLmRpc2FibGVQYWdpbmF0aW9uKSYmbi5kaXNhYmxlUGFnaW5hdGlvbix0aGlzLmR5bmFtaWNIZWlnaHQ9ISghbnx8bnVsbD09bi5keW5hbWljSGVpZ2h0KSYmbi5keW5hbWljSGVpZ2h0LHRoaXMuY29udGVudFRhYkluZGV4PW51bGwhPT0oaT1udWxsPT1uP3ZvaWQgMDpuLmNvbnRlbnRUYWJJbmRleCkmJnZvaWQgMCE9PWk/aTpudWxsfWdldCBkeW5hbWljSGVpZ2h0KCl7cmV0dXJuIHRoaXMuX2R5bmFtaWNIZWlnaHR9c2V0IGR5bmFtaWNIZWlnaHQodCl7dGhpcy5fZHluYW1pY0hlaWdodD1lSCh0KX1nZXQgc2VsZWN0ZWRJbmRleCgpe3JldHVybiB0aGlzLl9zZWxlY3RlZEluZGV4fXNldCBzZWxlY3RlZEluZGV4KHQpe3RoaXMuX2luZGV4VG9TZWxlY3Q9bkgodCxudWxsKX1nZXQgYW5pbWF0aW9uRHVyYXRpb24oKXtyZXR1cm4gdGhpcy5fYW5pbWF0aW9uRHVyYXRpb259c2V0IGFuaW1hdGlvbkR1cmF0aW9uKHQpe3RoaXMuX2FuaW1hdGlvbkR1cmF0aW9uPS9eXGQrJC8udGVzdCh0KT90KyJtcyI6dH1nZXQgY29udGVudFRhYkluZGV4KCl7cmV0dXJuIHRoaXMuX2NvbnRlbnRUYWJJbmRleH1zZXQgY29udGVudFRhYkluZGV4KHQpe3RoaXMuX2NvbnRlbnRUYWJJbmRleD1uSCh0LG51bGwpfWdldCBiYWNrZ3JvdW5kQ29sb3IoKXtyZXR1cm4gdGhpcy5fYmFja2dyb3VuZENvbG9yfXNldCBiYWNrZ3JvdW5kQ29sb3IodCl7Y29uc3QgZT10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7ZS5jbGFzc0xpc3QucmVtb3ZlKGBtYXQtYmFja2dyb3VuZC0ke3RoaXMuYmFja2dyb3VuZENvbG9yfWApLHQmJmUuY2xhc3NMaXN0LmFkZChgbWF0LWJhY2tncm91bmQtJHt0fWApLHRoaXMuX2JhY2tncm91bmRDb2xvcj10fW5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpe2NvbnN0IHQ9dGhpcy5faW5kZXhUb1NlbGVjdD10aGlzLl9jbGFtcFRhYkluZGV4KHRoaXMuX2luZGV4VG9TZWxlY3QpO2lmKHRoaXMuX3NlbGVjdGVkSW5kZXghPXQpe2NvbnN0IGU9bnVsbD09dGhpcy5fc2VsZWN0ZWRJbmRleDtpZighZSl7dGhpcy5zZWxlY3RlZFRhYkNoYW5nZS5lbWl0KHRoaXMuX2NyZWF0ZUNoYW5nZUV2ZW50KHQpKTtjb25zdCBlPXRoaXMuX3RhYkJvZHlXcmFwcGVyLm5hdGl2ZUVsZW1lbnQ7ZS5zdHlsZS5taW5IZWlnaHQ9ZS5jbGllbnRIZWlnaHQrInB4In1Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e3RoaXMuX3RhYnMuZm9yRWFjaCgoKGUsbik9PmUuaXNBY3RpdmU9bj09PXQpKSxlfHwodGhpcy5zZWxlY3RlZEluZGV4Q2hhbmdlLmVtaXQodCksdGhpcy5fdGFiQm9keVdyYXBwZXIubmF0aXZlRWxlbWVudC5zdHlsZS5taW5IZWlnaHQ9IiIpfSkpfXRoaXMuX3RhYnMuZm9yRWFjaCgoKGUsbik9PntlLnBvc2l0aW9uPW4tdCxudWxsPT10aGlzLl9zZWxlY3RlZEluZGV4fHwwIT1lLnBvc2l0aW9ufHxlLm9yaWdpbnx8KGUub3JpZ2luPXQtdGhpcy5fc2VsZWN0ZWRJbmRleCl9KSksdGhpcy5fc2VsZWN0ZWRJbmRleCE9PXQmJih0aGlzLl9zZWxlY3RlZEluZGV4PXQsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX3N1YnNjcmliZVRvQWxsVGFiQ2hhbmdlcygpLHRoaXMuX3N1YnNjcmliZVRvVGFiTGFiZWxzKCksdGhpcy5fdGFic1N1YnNjcmlwdGlvbj10aGlzLl90YWJzLmNoYW5nZXMuc3Vic2NyaWJlKCgoKT0+e2lmKHRoaXMuX2NsYW1wVGFiSW5kZXgodGhpcy5faW5kZXhUb1NlbGVjdCk9PT10aGlzLl9zZWxlY3RlZEluZGV4KXtjb25zdCB0PXRoaXMuX3RhYnMudG9BcnJheSgpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKWlmKHRbZV0uaXNBY3RpdmUpe3RoaXMuX2luZGV4VG9TZWxlY3Q9dGhpcy5fc2VsZWN0ZWRJbmRleD1lO2JyZWFrfX10aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX0pKX1fc3Vic2NyaWJlVG9BbGxUYWJDaGFuZ2VzKCl7dGhpcy5fYWxsVGFicy5jaGFuZ2VzLnBpcGUoQmUodGhpcy5fYWxsVGFicykpLnN1YnNjcmliZSgodD0+e3RoaXMuX3RhYnMucmVzZXQodC5maWx0ZXIoKHQ9PnQuX2Nsb3Nlc3RUYWJHcm91cD09PXRoaXN8fCF0Ll9jbG9zZXN0VGFiR3JvdXApKSksdGhpcy5fdGFicy5ub3RpZnlPbkNoYW5nZXMoKX0pKX1uZ09uRGVzdHJveSgpe3RoaXMuX3RhYnMuZGVzdHJveSgpLHRoaXMuX3RhYnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl90YWJMYWJlbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfXJlYWxpZ25JbmtCYXIoKXt0aGlzLl90YWJIZWFkZXImJnRoaXMuX3RhYkhlYWRlci5fYWxpZ25JbmtCYXJUb1NlbGVjdGVkVGFiKCl9Zm9jdXNUYWIodCl7Y29uc3QgZT10aGlzLl90YWJIZWFkZXI7ZSYmKGUuZm9jdXNJbmRleD10KX1fZm9jdXNDaGFuZ2VkKHQpe3RoaXMuZm9jdXNDaGFuZ2UuZW1pdCh0aGlzLl9jcmVhdGVDaGFuZ2VFdmVudCh0KSl9X2NyZWF0ZUNoYW5nZUV2ZW50KHQpe2NvbnN0IGU9bmV3IHZqO3JldHVybiBlLmluZGV4PXQsdGhpcy5fdGFicyYmdGhpcy5fdGFicy5sZW5ndGgmJihlLnRhYj10aGlzLl90YWJzLnRvQXJyYXkoKVt0XSksZX1fc3Vic2NyaWJlVG9UYWJMYWJlbHMoKXt0aGlzLl90YWJMYWJlbFN1YnNjcmlwdGlvbiYmdGhpcy5fdGFiTGFiZWxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl90YWJMYWJlbFN1YnNjcmlwdGlvbj1wZSguLi50aGlzLl90YWJzLm1hcCgodD0+dC5fc3RhdGVDaGFuZ2VzKSkpLnN1YnNjcmliZSgoKCk9PnRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKSl9X2NsYW1wVGFiSW5kZXgodCl7cmV0dXJuIE1hdGgubWluKHRoaXMuX3RhYnMubGVuZ3RoLTEsTWF0aC5tYXgodHx8MCwwKSl9X2dldFRhYkxhYmVsSWQodCl7cmV0dXJuYG1hdC10YWItbGFiZWwtJHt0aGlzLl9ncm91cElkfS0ke3R9YH1fZ2V0VGFiQ29udGVudElkKHQpe3JldHVybmBtYXQtdGFiLWNvbnRlbnQtJHt0aGlzLl9ncm91cElkfS0ke3R9YH1fc2V0VGFiQm9keVdyYXBwZXJIZWlnaHQodCl7aWYoIXRoaXMuX2R5bmFtaWNIZWlnaHR8fCF0aGlzLl90YWJCb2R5V3JhcHBlckhlaWdodClyZXR1cm47Y29uc3QgZT10aGlzLl90YWJCb2R5V3JhcHBlci5uYXRpdmVFbGVtZW50O2Uuc3R5bGUuaGVpZ2h0PXRoaXMuX3RhYkJvZHlXcmFwcGVySGVpZ2h0KyJweCIsdGhpcy5fdGFiQm9keVdyYXBwZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQmJihlLnN0eWxlLmhlaWdodD10KyJweCIpfV9yZW1vdmVUYWJCb2R5V3JhcHBlckhlaWdodCgpe2NvbnN0IHQ9dGhpcy5fdGFiQm9keVdyYXBwZXIubmF0aXZlRWxlbWVudDt0aGlzLl90YWJCb2R5V3JhcHBlckhlaWdodD10LmNsaWVudEhlaWdodCx0LnN0eWxlLmhlaWdodD0iIix0aGlzLmFuaW1hdGlvbkRvbmUuZW1pdCgpfV9oYW5kbGVDbGljayh0LGUsbil7dC5kaXNhYmxlZHx8KHRoaXMuc2VsZWN0ZWRJbmRleD1lLmZvY3VzSW5kZXg9bil9X2dldFRhYkluZGV4KHQsZSl7cmV0dXJuIHQuZGlzYWJsZWQ/bnVsbDp0aGlzLnNlbGVjdGVkSW5kZXg9PT1lPzA6LTF9X3RhYkZvY3VzQ2hhbmdlZCh0LGUpe3QmJiJtb3VzZSIhPT10JiYidG91Y2giIT09dCYmKHRoaXMuX3RhYkhlYWRlci5mb2N1c0luZGV4PWUpfX1Pai7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8T2opKGdmKEtoKSxnZihPYiksZ2YoQ2osOCksZ2YoY2ssOCkpfSxPai7JtWRpcj1obyh7dHlwZTpPaixpbnB1dHM6e2hlYWRlclBvc2l0aW9uOiJoZWFkZXJQb3NpdGlvbiIsYW5pbWF0aW9uRHVyYXRpb246ImFuaW1hdGlvbkR1cmF0aW9uIixkaXNhYmxlUGFnaW5hdGlvbjoiZGlzYWJsZVBhZ2luYXRpb24iLGR5bmFtaWNIZWlnaHQ6ImR5bmFtaWNIZWlnaHQiLGNvbnRlbnRUYWJJbmRleDoiY29udGVudFRhYkluZGV4IixzZWxlY3RlZEluZGV4OiJzZWxlY3RlZEluZGV4IixiYWNrZ3JvdW5kQ29sb3I6ImJhY2tncm91bmRDb2xvciJ9LG91dHB1dHM6e3NlbGVjdGVkSW5kZXhDaGFuZ2U6InNlbGVjdGVkSW5kZXhDaGFuZ2UiLGZvY3VzQ2hhbmdlOiJmb2N1c0NoYW5nZSIsYW5pbWF0aW9uRG9uZToiYW5pbWF0aW9uRG9uZSIsc2VsZWN0ZWRUYWJDaGFuZ2U6InNlbGVjdGVkVGFiQ2hhbmdlIn0sZmVhdHVyZXM6W1FwXX0pLE9qLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6S2h9LHt0eXBlOk9ifSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbQ2pdfSx7dHlwZTpCcn1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W2NrXX1dfV0sT2oucHJvcERlY29yYXRvcnM9e2R5bmFtaWNIZWlnaHQ6W3t0eXBlOlJffV0sc2VsZWN0ZWRJbmRleDpbe3R5cGU6Ul99XSxoZWFkZXJQb3NpdGlvbjpbe3R5cGU6Ul99XSxhbmltYXRpb25EdXJhdGlvbjpbe3R5cGU6Ul99XSxjb250ZW50VGFiSW5kZXg6W3t0eXBlOlJffV0sZGlzYWJsZVBhZ2luYXRpb246W3t0eXBlOlJffV0sYmFja2dyb3VuZENvbG9yOlt7dHlwZTpSX31dLHNlbGVjdGVkSW5kZXhDaGFuZ2U6W3t0eXBlOkVffV0sZm9jdXNDaGFuZ2U6W3t0eXBlOkVffV0sYW5pbWF0aW9uRG9uZTpbe3R5cGU6RV99XSxzZWxlY3RlZFRhYkNoYW5nZTpbe3R5cGU6RV99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihPaixbe3R5cGU6a199XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6S2h9LHt0eXBlOk9ifSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbQ2pdfSx7dHlwZTpCcn1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W2NrXX1dfV19KSx7aGVhZGVyUG9zaXRpb246W3t0eXBlOlJffV0sc2VsZWN0ZWRJbmRleENoYW5nZTpbe3R5cGU6RV99XSxmb2N1c0NoYW5nZTpbe3R5cGU6RV99XSxhbmltYXRpb25Eb25lOlt7dHlwZTpFX31dLHNlbGVjdGVkVGFiQ2hhbmdlOlt7dHlwZTpFX31dLGFuaW1hdGlvbkR1cmF0aW9uOlt7dHlwZTpSX31dLGRpc2FibGVQYWdpbmF0aW9uOlt7dHlwZTpSX31dLGR5bmFtaWNIZWlnaHQ6W3t0eXBlOlJffV0sY29udGVudFRhYkluZGV4Olt7dHlwZTpSX31dLHNlbGVjdGVkSW5kZXg6W3t0eXBlOlJffV0sYmFja2dyb3VuZENvbG9yOlt7dHlwZTpSX31dfSk7Y2xhc3MgUGogZXh0ZW5kcyBPantjb25zdHJ1Y3Rvcih0LGUsbixvKXtzdXBlcih0LGUsbixvKX19UGouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFBqKShnZihLaCksZ2YoT2IpLGdmKENqLDgpLGdmKGNrLDgpKX0sUGouybVjbXA9c28oe3R5cGU6UGosc2VsZWN0b3JzOltbIm1hdC10YWItZ3JvdXAiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24gdChlLG4sbyl7aWYoMSZlJiZqeShvLGdqLDUpLDImZSl7bGV0IHQ7QnkodD1VeSgpKSYmKG4uX2FsbFRhYnM9dCl9fSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFZ5KFhWLDUpLFZ5KEtWLDUpKSwyJmUpe2xldCB0O0J5KHQ9VXkoKSkmJihuLl90YWJCb2R5V3JhcHBlcj10LmZpcnN0KSxCeSh0PVV5KCkpJiYobi5fdGFiSGVhZGVyPXQuZmlyc3QpfX0saG9zdEF0dHJzOlsxLCJtYXQtdGFiLWdyb3VwIl0saG9zdFZhcnM6NCxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmY3UoIm1hdC10YWItZ3JvdXAtZHluYW1pYy1oZWlnaHQiLG4uZHluYW1pY0hlaWdodCkoIm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIiwiYmVsb3ciPT09bi5oZWFkZXJQb3NpdGlvbil9LGlucHV0czp7Y29sb3I6ImNvbG9yIixkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIn0sZXhwb3J0QXM6WyJtYXRUYWJHcm91cCJdLGZlYXR1cmVzOltqaChbe3Byb3ZpZGU6dWosdXNlRXhpc3Rpbmc6UGp9XSksUXBdLGRlY2xzOjYsdmFyczo3LGNvbnN0czpbWzMsInNlbGVjdGVkSW5kZXgiLCJkaXNhYmxlUmlwcGxlIiwiZGlzYWJsZVBhZ2luYXRpb24iLCJpbmRleEZvY3VzZWQiLCJzZWxlY3RGb2N1c2VkSW5kZXgiXSxbInRhYkhlYWRlciIsIiJdLFsiY2xhc3MiLCJtYXQtdGFiLWxhYmVsIG1hdC1mb2N1cy1pbmRpY2F0b3IiLCJyb2xlIiwidGFiIiwibWF0VGFiTGFiZWxXcmFwcGVyIiwiIiwibWF0LXJpcHBsZSIsIiIsImNka01vbml0b3JFbGVtZW50Rm9jdXMiLCIiLDMsImlkIiwibWF0LXRhYi1sYWJlbC1hY3RpdmUiLCJkaXNhYmxlZCIsIm1hdFJpcHBsZURpc2FibGVkIiwiY2xpY2siLCJjZGtGb2N1c0NoYW5nZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsIm1hdC10YWItYm9keS13cmFwcGVyIl0sWyJ0YWJCb2R5V3JhcHBlciIsIiJdLFsicm9sZSIsInRhYnBhbmVsIiwzLCJpZCIsIm1hdC10YWItYm9keS1hY3RpdmUiLCJjb250ZW50IiwicG9zaXRpb24iLCJvcmlnaW4iLCJhbmltYXRpb25EdXJhdGlvbiIsIl9vbkNlbnRlcmVkIiwiX29uQ2VudGVyaW5nIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbInJvbGUiLCJ0YWIiLCJtYXRUYWJMYWJlbFdyYXBwZXIiLCIiLCJtYXQtcmlwcGxlIiwiIiwiY2RrTW9uaXRvckVsZW1lbnRGb2N1cyIsIiIsMSwibWF0LXRhYi1sYWJlbCIsIm1hdC1mb2N1cy1pbmRpY2F0b3IiLDMsImlkIiwiZGlzYWJsZWQiLCJtYXRSaXBwbGVEaXNhYmxlZCIsImNsaWNrIiwiY2RrRm9jdXNDaGFuZ2UiXSxbMSwibWF0LXRhYi1sYWJlbC1jb250ZW50Il0sWzMsIm5nSWYiXSxbMywiY2RrUG9ydGFsT3V0bGV0Il0sWyJyb2xlIiwidGFicGFuZWwiLDMsImlkIiwiY29udGVudCIsInBvc2l0aW9uIiwib3JpZ2luIiwiYW5pbWF0aW9uRHVyYXRpb24iLCJfb25DZW50ZXJlZCIsIl9vbkNlbnRlcmluZyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwibWF0LXRhYi1oZWFkZXIiLDAsMSksUmYoImluZGV4Rm9jdXNlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2ZvY3VzQ2hhbmdlZChlKX0pKSgic2VsZWN0Rm9jdXNlZEluZGV4IiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5zZWxlY3RlZEluZGV4PWV9KSksSG0oMix0aiw0LDE0LCJkaXYiLDIpLE1mKCksQ2YoMywiZGl2IiwzLDQpLEhtKDUsZWosMSw5LCJtYXQtdGFiLWJvZHkiLDUpLE1mKCkpLDImZSYmKGJmKCJzZWxlY3RlZEluZGV4IixuLnNlbGVjdGVkSW5kZXh8fDApKCJkaXNhYmxlUmlwcGxlIixuLmRpc2FibGVSaXBwbGUpKCJkaXNhYmxlUGFnaW5hdGlvbiIsbi5kaXNhYmxlUGFnaW5hdGlvbiksRGMoMiksYmYoIm5nRm9yT2YiLG4uX3RhYnMpLERjKDEpLGN1KCJfbWF0LWFuaW1hdGlvbi1ub29wYWJsZSIsIk5vb3BBbmltYXRpb25zIj09PW4uX2FuaW1hdGlvbk1vZGUpLERjKDIpLGJmKCJuZ0Zvck9mIixuLl90YWJzKSl9LGRpcmVjdGl2ZXM6ZnVuY3Rpb24oKXtyZXR1cm5bRWoseHYsa2osbUwsdUYsUHYsdUIsX2pdfSxzdHlsZXM6WyIubWF0LXRhYi1ncm91cHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21heC13aWR0aDoxMDAlfS5tYXQtdGFiLWdyb3VwLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVye2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlfS5tYXQtdGFiLWxhYmVse2hlaWdodDo0OHB4O3BhZGRpbmc6MCAyNHB4O2N1cnNvcjpwb2ludGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtvcGFjaXR5Oi42O21pbi13aWR0aDoxNjBweDt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXRhYi1sYWJlbDpmb2N1c3tvdXRsaW5lOm5vbmV9Lm1hdC10YWItbGFiZWw6Zm9jdXM6bm90KC5tYXQtdGFiLWRpc2FibGVkKXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXRhYi1sYWJlbDpmb2N1c3tvdXRsaW5lOmRvdHRlZCAycHg7b3V0bGluZS1vZmZzZXQ6LTJweH0ubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZHtvcGFjaXR5Oi41fS5tYXQtdGFiLWxhYmVsIC5tYXQtdGFiLWxhYmVsLWNvbnRlbnR7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXB9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXRhYi1sYWJlbHtvcGFjaXR5OjF9QG1lZGlhKG1heC13aWR0aDogNTk5cHgpey5tYXQtdGFiLWxhYmVse3BhZGRpbmc6MCAxMnB4fX1AbWVkaWEobWF4LXdpZHRoOiA5NTlweCl7Lm1hdC10YWItbGFiZWx7cGFkZGluZzowIDEycHh9fS5tYXQtdGFiLWdyb3VwW21hdC1zdHJldGNoLXRhYnNdPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbHtmbGV4LWJhc2lzOjA7ZmxleC1ncm93OjF9Lm1hdC10YWItYm9keS13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmZsZXg7dHJhbnNpdGlvbjpoZWlnaHQgNTAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtdGFiLWJvZHktd3JhcHBlcnt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC10YWItYm9keXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO292ZXJmbG93OmhpZGRlbjtvdXRsaW5lOjA7ZmxleC1iYXNpczoxMDAlfS5tYXQtdGFiLWJvZHkubWF0LXRhYi1ib2R5LWFjdGl2ZXtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87ei1pbmRleDoxO2ZsZXgtZ3JvdzoxfS5tYXQtdGFiLWdyb3VwLm1hdC10YWItZ3JvdXAtZHluYW1pYy1oZWlnaHQgLm1hdC10YWItYm9keS5tYXQtdGFiLWJvZHktYWN0aXZle292ZXJmbG93LXk6aGlkZGVufVxuIl0sZW5jYXBzdWxhdGlvbjoyfSksUGouY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpLaH0se3R5cGU6T2J9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltDal19LHt0eXBlOkJyfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbY2tdfV19XSxQai5wcm9wRGVjb3JhdG9ycz17X2FsbFRhYnM6W3t0eXBlOm9yLGFyZ3M6W2dqLHtkZXNjZW5kYW50czohMH1dfV0sX3RhYkJvZHlXcmFwcGVyOlt7dHlwZTphcixhcmdzOlsidGFiQm9keVdyYXBwZXIiXX1dLF90YWJIZWFkZXI6W3t0eXBlOmFyLGFyZ3M6WyJ0YWJIZWFkZXIiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFBqLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im1hdC10YWItZ3JvdXAiLGV4cG9ydEFzOiJtYXRUYWJHcm91cCIsdGVtcGxhdGU6JzxtYXQtdGFiLWhlYWRlciAjdGFiSGVhZGVyXG4gICAgICAgICAgICAgICBbc2VsZWN0ZWRJbmRleF09InNlbGVjdGVkSW5kZXggfHwgMCJcbiAgICAgICAgICAgICAgIFtkaXNhYmxlUmlwcGxlXT0iZGlzYWJsZVJpcHBsZSJcbiAgICAgICAgICAgICAgIFtkaXNhYmxlUGFnaW5hdGlvbl09ImRpc2FibGVQYWdpbmF0aW9uIlxuICAgICAgICAgICAgICAgKGluZGV4Rm9jdXNlZCk9Il9mb2N1c0NoYW5nZWQoJGV2ZW50KSJcbiAgICAgICAgICAgICAgIChzZWxlY3RGb2N1c2VkSW5kZXgpPSJzZWxlY3RlZEluZGV4ID0gJGV2ZW50Ij5cbiAgPGRpdiBjbGFzcz0ibWF0LXRhYi1sYWJlbCBtYXQtZm9jdXMtaW5kaWNhdG9yIiByb2xlPSJ0YWIiIG1hdFRhYkxhYmVsV3JhcHBlciBtYXQtcmlwcGxlIGNka01vbml0b3JFbGVtZW50Rm9jdXNcbiAgICAgICAqbmdGb3I9ImxldCB0YWIgb2YgX3RhYnM7IGxldCBpID0gaW5kZXgiXG4gICAgICAgW2lkXT0iX2dldFRhYkxhYmVsSWQoaSkiXG4gICAgICAgW2F0dHIudGFiSW5kZXhdPSJfZ2V0VGFiSW5kZXgodGFiLCBpKSJcbiAgICAgICBbYXR0ci5hcmlhLXBvc2luc2V0XT0iaSArIDEiXG4gICAgICAgW2F0dHIuYXJpYS1zZXRzaXplXT0iX3RhYnMubGVuZ3RoIlxuICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPSJfZ2V0VGFiQ29udGVudElkKGkpIlxuICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPSJzZWxlY3RlZEluZGV4ID09IGkiXG4gICAgICAgW2F0dHIuYXJpYS1sYWJlbF09InRhYi5hcmlhTGFiZWwgfHwgbnVsbCJcbiAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPSIoIXRhYi5hcmlhTGFiZWwgJiYgdGFiLmFyaWFMYWJlbGxlZGJ5KSA/IHRhYi5hcmlhTGFiZWxsZWRieSA6IG51bGwiXG4gICAgICAgW2NsYXNzLm1hdC10YWItbGFiZWwtYWN0aXZlXT0ic2VsZWN0ZWRJbmRleCA9PSBpIlxuICAgICAgIFtkaXNhYmxlZF09InRhYi5kaXNhYmxlZCJcbiAgICAgICBbbWF0UmlwcGxlRGlzYWJsZWRdPSJ0YWIuZGlzYWJsZWQgfHwgZGlzYWJsZVJpcHBsZSJcbiAgICAgICAoY2xpY2spPSJfaGFuZGxlQ2xpY2sodGFiLCB0YWJIZWFkZXIsIGkpIlxuICAgICAgIChjZGtGb2N1c0NoYW5nZSk9Il90YWJGb2N1c0NoYW5nZWQoJGV2ZW50LCBpKSI+XG5cblxuICAgIDxkaXYgY2xhc3M9Im1hdC10YWItbGFiZWwtY29udGVudCI+XG4gICAgICBceDNjIS0tIElmIHRoZXJlIGlzIGEgbGFiZWwgdGVtcGxhdGUsIHVzZSBpdC4gLS1ceDNlXG4gICAgICA8bmctdGVtcGxhdGUgW25nSWZdPSJ0YWIudGVtcGxhdGVMYWJlbCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT0idGFiLnRlbXBsYXRlTGFiZWwiPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICBceDNjIS0tIElmIHRoZXJlIGlzIG5vdCBhIGxhYmVsIHRlbXBsYXRlLCBmYWxsIGJhY2sgdG8gdGhlIHRleHQgbGFiZWwuIC0tXHgzZVxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT0iIXRhYi50ZW1wbGF0ZUxhYmVsIj57e3RhYi50ZXh0TGFiZWx9fTwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9tYXQtdGFiLWhlYWRlcj5cblxuPGRpdlxuICBjbGFzcz0ibWF0LXRhYi1ib2R5LXdyYXBwZXIiXG4gIFtjbGFzcy5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZV09Il9hbmltYXRpb25Nb2RlID09PSBcJ05vb3BBbmltYXRpb25zXCciXG4gICN0YWJCb2R5V3JhcHBlcj5cbiAgPG1hdC10YWItYm9keSByb2xlPSJ0YWJwYW5lbCJcbiAgICAgICAgICAgICAgICpuZ0Zvcj0ibGV0IHRhYiBvZiBfdGFiczsgbGV0IGkgPSBpbmRleCJcbiAgICAgICAgICAgICAgIFtpZF09Il9nZXRUYWJDb250ZW50SWQoaSkiXG4gICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09Iihjb250ZW50VGFiSW5kZXggIT0gbnVsbCAmJiBzZWxlY3RlZEluZGV4ID09PSBpKSA/IGNvbnRlbnRUYWJJbmRleCA6IG51bGwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPSJfZ2V0VGFiTGFiZWxJZChpKSJcbiAgICAgICAgICAgICAgIFtjbGFzcy5tYXQtdGFiLWJvZHktYWN0aXZlXT0ic2VsZWN0ZWRJbmRleCA9PT0gaSJcbiAgICAgICAgICAgICAgIFtjb250ZW50XT0idGFiLmNvbnRlbnQhIlxuICAgICAgICAgICAgICAgW3Bvc2l0aW9uXT0idGFiLnBvc2l0aW9uISJcbiAgICAgICAgICAgICAgIFtvcmlnaW5dPSJ0YWIub3JpZ2luIlxuICAgICAgICAgICAgICAgW2FuaW1hdGlvbkR1cmF0aW9uXT0iYW5pbWF0aW9uRHVyYXRpb24iXG4gICAgICAgICAgICAgICAoX29uQ2VudGVyZWQpPSJfcmVtb3ZlVGFiQm9keVdyYXBwZXJIZWlnaHQoKSJcbiAgICAgICAgICAgICAgIChfb25DZW50ZXJpbmcpPSJfc2V0VGFiQm9keVdyYXBwZXJIZWlnaHQoJGV2ZW50KSI+XG4gIDwvbWF0LXRhYi1ib2R5PlxuPC9kaXY+XG4nLGVuY2Fwc3VsYXRpb246V24uTm9uZSxjaGFuZ2VEZXRlY3Rpb246am4uRGVmYXVsdCxpbnB1dHM6WyJjb2xvciIsImRpc2FibGVSaXBwbGUiXSxwcm92aWRlcnM6W3twcm92aWRlOnVqLHVzZUV4aXN0aW5nOlBqfV0saG9zdDp7Y2xhc3M6Im1hdC10YWItZ3JvdXAiLCJbY2xhc3MubWF0LXRhYi1ncm91cC1keW5hbWljLWhlaWdodF0iOiJkeW5hbWljSGVpZ2h0IiwiW2NsYXNzLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyXSI6J2hlYWRlclBvc2l0aW9uID09PSAiYmVsb3ciJ30sc3R5bGVzOlsiLm1hdC10YWItZ3JvdXB7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttYXgtd2lkdGg6MTAwJX0ubWF0LXRhYi1ncm91cC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlcntmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZX0ubWF0LXRhYi1sYWJlbHtoZWlnaHQ6NDhweDtwYWRkaW5nOjAgMjRweDtjdXJzb3I6cG9pbnRlcjtib3gtc2l6aW5nOmJvcmRlci1ib3g7b3BhY2l0eTouNjttaW4td2lkdGg6MTYwcHg7dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXA7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC10YWItbGFiZWw6Zm9jdXN7b3V0bGluZTpub25lfS5tYXQtdGFiLWxhYmVsOmZvY3VzOm5vdCgubWF0LXRhYi1kaXNhYmxlZCl7b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10YWItbGFiZWw6Zm9jdXN7b3V0bGluZTpkb3R0ZWQgMnB4O291dGxpbmUtb2Zmc2V0Oi0ycHh9Lm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWR7b3BhY2l0eTouNX0ubWF0LXRhYi1sYWJlbCAubWF0LXRhYi1sYWJlbC1jb250ZW50e2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10YWItbGFiZWx7b3BhY2l0eToxfUBtZWRpYShtYXgtd2lkdGg6IDU5OXB4KXsubWF0LXRhYi1sYWJlbHtwYWRkaW5nOjAgMTJweH19QG1lZGlhKG1heC13aWR0aDogOTU5cHgpey5tYXQtdGFiLWxhYmVse3BhZGRpbmc6MCAxMnB4fX0ubWF0LXRhYi1ncm91cFttYXQtc3RyZXRjaC10YWJzXT4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWx7ZmxleC1iYXNpczowO2ZsZXgtZ3JvdzoxfS5tYXQtdGFiLWJvZHktd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpmbGV4O3RyYW5zaXRpb246aGVpZ2h0IDUwMG1zIGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXRhYi1ib2R5LXdyYXBwZXJ7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtdGFiLWJvZHl7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jaztvdmVyZmxvdzpoaWRkZW47b3V0bGluZTowO2ZsZXgtYmFzaXM6MTAwJX0ubWF0LXRhYi1ib2R5Lm1hdC10YWItYm9keS1hY3RpdmV7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO3otaW5kZXg6MTtmbGV4LWdyb3c6MX0ubWF0LXRhYi1ncm91cC5tYXQtdGFiLWdyb3VwLWR5bmFtaWMtaGVpZ2h0IC5tYXQtdGFiLWJvZHkubWF0LXRhYi1ib2R5LWFjdGl2ZXtvdmVyZmxvdy15OmhpZGRlbn1cbiJdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6S2h9LHt0eXBlOk9ifSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbQ2pdfSx7dHlwZTpCcn1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W2NrXX1dfV19KSx7X2FsbFRhYnM6W3t0eXBlOm9yLGFyZ3M6W2dqLHtkZXNjZW5kYW50czohMH1dfV0sX3RhYkJvZHlXcmFwcGVyOlt7dHlwZTphcixhcmdzOlsidGFiQm9keVdyYXBwZXIiXX1dLF90YWJIZWFkZXI6W3t0eXBlOmFyLGFyZ3M6WyJ0YWJIZWFkZXIiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCB3aj16RihjbGFzc3t9KTtjbGFzcyBraiBleHRlbmRzIHdqe2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5lbGVtZW50UmVmPXR9Zm9jdXMoKXt0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpfWdldE9mZnNldExlZnQoKXtyZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdH1nZXRPZmZzZXRXaWR0aCgpe3JldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aH19a2ouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGtqKShnZihLaCkpfSxrai7JtWRpcj1obyh7dHlwZTpraixzZWxlY3RvcnM6W1siIiwibWF0VGFiTGFiZWxXcmFwcGVyIiwiIl1dLGhvc3RWYXJzOjMsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJih5bSgiYXJpYS1kaXNhYmxlZCIsISFuLmRpc2FibGVkKSxjdSgibWF0LXRhYi1kaXNhYmxlZCIsbi5kaXNhYmxlZCkpfSxpbnB1dHM6e2Rpc2FibGVkOiJkaXNhYmxlZCJ9LGZlYXR1cmVzOltRcF19KSxrai5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOktofV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihraixbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJbbWF0VGFiTGFiZWxXcmFwcGVyXSIsaW5wdXRzOlsiZGlzYWJsZWQiXSxob3N0OnsiW2NsYXNzLm1hdC10YWItZGlzYWJsZWRdIjoiZGlzYWJsZWQiLCJbYXR0ci5hcmlhLWRpc2FibGVkXSI6IiEhZGlzYWJsZWQifX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOktofV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IFNqPWJIKHtwYXNzaXZlOiEwfSk7Y2xhc3MgRGp7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscil7dGhpcy5fZWxlbWVudFJlZj10LHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWUsdGhpcy5fdmlld3BvcnRSdWxlcj1uLHRoaXMuX2Rpcj1vLHRoaXMuX25nWm9uZT1pLHRoaXMuX3BsYXRmb3JtPWEsdGhpcy5fYW5pbWF0aW9uTW9kZT1yLHRoaXMuX3Njcm9sbERpc3RhbmNlPTAsdGhpcy5fc2VsZWN0ZWRJbmRleENoYW5nZWQ9ITEsdGhpcy5fZGVzdHJveWVkPW5ldyBCLHRoaXMuX3Nob3dQYWdpbmF0aW9uQ29udHJvbHM9ITEsdGhpcy5fZGlzYWJsZVNjcm9sbEFmdGVyPSEwLHRoaXMuX2Rpc2FibGVTY3JvbGxCZWZvcmU9ITAsdGhpcy5fc3RvcFNjcm9sbGluZz1uZXcgQix0aGlzLmRpc2FibGVQYWdpbmF0aW9uPSExLHRoaXMuX3NlbGVjdGVkSW5kZXg9MCx0aGlzLnNlbGVjdEZvY3VzZWRJbmRleD1uZXcgU3ksdGhpcy5pbmRleEZvY3VzZWQ9bmV3IFN5LGkucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57bGUodC5uYXRpdmVFbGVtZW50LCJtb3VzZWxlYXZlIikucGlwZShqZSh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fc3RvcEludGVydmFsKCl9KSl9KSl9Z2V0IHNlbGVjdGVkSW5kZXgoKXtyZXR1cm4gdGhpcy5fc2VsZWN0ZWRJbmRleH1zZXQgc2VsZWN0ZWRJbmRleCh0KXt0PW5IKHQpLHRoaXMuX3NlbGVjdGVkSW5kZXghPXQmJih0aGlzLl9zZWxlY3RlZEluZGV4Q2hhbmdlZD0hMCx0aGlzLl9zZWxlY3RlZEluZGV4PXQsdGhpcy5fa2V5TWFuYWdlciYmdGhpcy5fa2V5TWFuYWdlci51cGRhdGVBY3RpdmVJdGVtKHQpKX1uZ0FmdGVyVmlld0luaXQoKXtsZSh0aGlzLl9wcmV2aW91c1BhZ2luYXRvci5uYXRpdmVFbGVtZW50LCJ0b3VjaHN0YXJ0IixTaikucGlwZShqZSh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5faGFuZGxlUGFnaW5hdG9yUHJlc3MoImJlZm9yZSIpfSkpLGxlKHRoaXMuX25leHRQYWdpbmF0b3IubmF0aXZlRWxlbWVudCwidG91Y2hzdGFydCIsU2opLnBpcGUoamUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX2hhbmRsZVBhZ2luYXRvclByZXNzKCJhZnRlciIpfSkpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe2NvbnN0IHQ9dGhpcy5fZGlyP3RoaXMuX2Rpci5jaGFuZ2U6enQoImx0ciIpLGU9dGhpcy5fdmlld3BvcnRSdWxlci5jaGFuZ2UoMTUwKSxuPSgpPT57dGhpcy51cGRhdGVQYWdpbmF0aW9uKCksdGhpcy5fYWxpZ25JbmtCYXJUb1NlbGVjdGVkVGFiKCl9O3RoaXMuX2tleU1hbmFnZXI9bmV3IExIKHRoaXMuX2l0ZW1zKS53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKHRoaXMuX2dldExheW91dERpcmVjdGlvbigpKS53aXRoSG9tZUFuZEVuZCgpLndpdGhXcmFwKCksdGhpcy5fa2V5TWFuYWdlci51cGRhdGVBY3RpdmVJdGVtKHRoaXMuX3NlbGVjdGVkSW5kZXgpLCJ1bmRlZmluZWQiIT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lP3JlcXVlc3RBbmltYXRpb25GcmFtZShuKTpuKCkscGUodCxlLHRoaXMuX2l0ZW1zLmNoYW5nZXMpLnBpcGUoamUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX25nWm9uZS5ydW4oKCgpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKG4pKSksdGhpcy5fa2V5TWFuYWdlci53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKHRoaXMuX2dldExheW91dERpcmVjdGlvbigpKX0pKSx0aGlzLl9rZXlNYW5hZ2VyLmNoYW5nZS5waXBlKGplKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgodD0+e3RoaXMuaW5kZXhGb2N1c2VkLmVtaXQodCksdGhpcy5fc2V0VGFiRm9jdXModCl9KSl9bmdBZnRlckNvbnRlbnRDaGVja2VkKCl7dGhpcy5fdGFiTGFiZWxDb3VudCE9dGhpcy5faXRlbXMubGVuZ3RoJiYodGhpcy51cGRhdGVQYWdpbmF0aW9uKCksdGhpcy5fdGFiTGFiZWxDb3VudD10aGlzLl9pdGVtcy5sZW5ndGgsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpLHRoaXMuX3NlbGVjdGVkSW5kZXhDaGFuZ2VkJiYodGhpcy5fc2Nyb2xsVG9MYWJlbCh0aGlzLl9zZWxlY3RlZEluZGV4KSx0aGlzLl9jaGVja1Njcm9sbGluZ0NvbnRyb2xzKCksdGhpcy5fYWxpZ25JbmtCYXJUb1NlbGVjdGVkVGFiKCksdGhpcy5fc2VsZWN0ZWRJbmRleENoYW5nZWQ9ITEsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpLHRoaXMuX3Njcm9sbERpc3RhbmNlQ2hhbmdlZCYmKHRoaXMuX3VwZGF0ZVRhYlNjcm9sbFBvc2l0aW9uKCksdGhpcy5fc2Nyb2xsRGlzdGFuY2VDaGFuZ2VkPSExLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX1uZ09uRGVzdHJveSgpe3RoaXMuX2Rlc3Ryb3llZC5uZXh0KCksdGhpcy5fZGVzdHJveWVkLmNvbXBsZXRlKCksdGhpcy5fc3RvcFNjcm9sbGluZy5jb21wbGV0ZSgpfV9oYW5kbGVLZXlkb3duKHQpe2lmKCF0SCh0KSlzd2l0Y2godC5rZXlDb2RlKXtjYXNlIFhJOmNhc2UgSkk6dGhpcy5mb2N1c0luZGV4IT09dGhpcy5zZWxlY3RlZEluZGV4JiYodGhpcy5zZWxlY3RGb2N1c2VkSW5kZXguZW1pdCh0aGlzLmZvY3VzSW5kZXgpLHRoaXMuX2l0ZW1TZWxlY3RlZCh0KSk7YnJlYWs7ZGVmYXVsdDp0aGlzLl9rZXlNYW5hZ2VyLm9uS2V5ZG93bih0KX19X29uQ29udGVudENoYW5nZXMoKXtjb25zdCB0PXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudDt0IT09dGhpcy5fY3VycmVudFRleHRDb250ZW50JiYodGhpcy5fY3VycmVudFRleHRDb250ZW50PXR8fCIiLHRoaXMuX25nWm9uZS5ydW4oKCgpPT57dGhpcy51cGRhdGVQYWdpbmF0aW9uKCksdGhpcy5fYWxpZ25JbmtCYXJUb1NlbGVjdGVkVGFiKCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9KSkpfXVwZGF0ZVBhZ2luYXRpb24oKXt0aGlzLl9jaGVja1BhZ2luYXRpb25FbmFibGVkKCksdGhpcy5fY2hlY2tTY3JvbGxpbmdDb250cm9scygpLHRoaXMuX3VwZGF0ZVRhYlNjcm9sbFBvc2l0aW9uKCl9Z2V0IGZvY3VzSW5kZXgoKXtyZXR1cm4gdGhpcy5fa2V5TWFuYWdlcj90aGlzLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1JbmRleDowfXNldCBmb2N1c0luZGV4KHQpe3RoaXMuX2lzVmFsaWRJbmRleCh0KSYmdGhpcy5mb2N1c0luZGV4IT09dCYmdGhpcy5fa2V5TWFuYWdlciYmdGhpcy5fa2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKHQpfV9pc1ZhbGlkSW5kZXgodCl7aWYoIXRoaXMuX2l0ZW1zKXJldHVybiEwO2NvbnN0IGU9dGhpcy5faXRlbXM/dGhpcy5faXRlbXMudG9BcnJheSgpW3RdOm51bGw7cmV0dXJuISFlJiYhZS5kaXNhYmxlZH1fc2V0VGFiRm9jdXModCl7aWYodGhpcy5fc2hvd1BhZ2luYXRpb25Db250cm9scyYmdGhpcy5fc2Nyb2xsVG9MYWJlbCh0KSx0aGlzLl9pdGVtcyYmdGhpcy5faXRlbXMubGVuZ3RoKXt0aGlzLl9pdGVtcy50b0FycmF5KClbdF0uZm9jdXMoKTtjb25zdCBlPXRoaXMuX3RhYkxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudCxuPXRoaXMuX2dldExheW91dERpcmVjdGlvbigpO2Uuc2Nyb2xsTGVmdD0ibHRyIj09bj8wOmUuc2Nyb2xsV2lkdGgtZS5vZmZzZXRXaWR0aH19X2dldExheW91dERpcmVjdGlvbigpe3JldHVybiB0aGlzLl9kaXImJiJydGwiPT09dGhpcy5fZGlyLnZhbHVlPyJydGwiOiJsdHIifV91cGRhdGVUYWJTY3JvbGxQb3NpdGlvbigpe2lmKHRoaXMuZGlzYWJsZVBhZ2luYXRpb24pcmV0dXJuO2NvbnN0IHQ9dGhpcy5zY3JvbGxEaXN0YW5jZSxlPSJsdHIiPT09dGhpcy5fZ2V0TGF5b3V0RGlyZWN0aW9uKCk/LXQ6dDt0aGlzLl90YWJMaXN0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGVYKCR7TWF0aC5yb3VuZChlKX1weClgLCh0aGlzLl9wbGF0Zm9ybS5UUklERU5UfHx0aGlzLl9wbGF0Zm9ybS5FREdFKSYmKHRoaXMuX3RhYkxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0PTApfWdldCBzY3JvbGxEaXN0YW5jZSgpe3JldHVybiB0aGlzLl9zY3JvbGxEaXN0YW5jZX1zZXQgc2Nyb2xsRGlzdGFuY2UodCl7dGhpcy5fc2Nyb2xsVG8odCl9X3Njcm9sbEhlYWRlcih0KXtyZXR1cm4gdGhpcy5fc2Nyb2xsVG8odGhpcy5fc2Nyb2xsRGlzdGFuY2UrKCJiZWZvcmUiPT10Py0xOjEpKnRoaXMuX3RhYkxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aC8zKX1faGFuZGxlUGFnaW5hdG9yQ2xpY2sodCl7dGhpcy5fc3RvcEludGVydmFsKCksdGhpcy5fc2Nyb2xsSGVhZGVyKHQpfV9zY3JvbGxUb0xhYmVsKHQpe2lmKHRoaXMuZGlzYWJsZVBhZ2luYXRpb24pcmV0dXJuO2NvbnN0IGU9dGhpcy5faXRlbXM/dGhpcy5faXRlbXMudG9BcnJheSgpW3RdOm51bGw7aWYoIWUpcmV0dXJuO2NvbnN0IG49dGhpcy5fdGFiTGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoLHtvZmZzZXRMZWZ0Om8sb2Zmc2V0V2lkdGg6aX09ZS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7bGV0IGEscjsibHRyIj09dGhpcy5fZ2V0TGF5b3V0RGlyZWN0aW9uKCk/KGE9byxyPWEraSk6KHI9dGhpcy5fdGFiTGlzdC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoLW8sYT1yLWkpO2NvbnN0IHM9dGhpcy5zY3JvbGxEaXN0YW5jZSxsPXRoaXMuc2Nyb2xsRGlzdGFuY2UrbjthPHM/dGhpcy5zY3JvbGxEaXN0YW5jZS09cy1hKzYwOnI+bCYmKHRoaXMuc2Nyb2xsRGlzdGFuY2UrPXItbCs2MCl9X2NoZWNrUGFnaW5hdGlvbkVuYWJsZWQoKXtpZih0aGlzLmRpc2FibGVQYWdpbmF0aW9uKXRoaXMuX3Nob3dQYWdpbmF0aW9uQ29udHJvbHM9ITE7ZWxzZXtjb25zdCB0PXRoaXMuX3RhYkxpc3QubmF0aXZlRWxlbWVudC5zY3JvbGxXaWR0aD50aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7dHx8KHRoaXMuc2Nyb2xsRGlzdGFuY2U9MCksdCE9PXRoaXMuX3Nob3dQYWdpbmF0aW9uQ29udHJvbHMmJnRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpLHRoaXMuX3Nob3dQYWdpbmF0aW9uQ29udHJvbHM9dH19X2NoZWNrU2Nyb2xsaW5nQ29udHJvbHMoKXt0aGlzLmRpc2FibGVQYWdpbmF0aW9uP3RoaXMuX2Rpc2FibGVTY3JvbGxBZnRlcj10aGlzLl9kaXNhYmxlU2Nyb2xsQmVmb3JlPSEwOih0aGlzLl9kaXNhYmxlU2Nyb2xsQmVmb3JlPTA9PXRoaXMuc2Nyb2xsRGlzdGFuY2UsdGhpcy5fZGlzYWJsZVNjcm9sbEFmdGVyPXRoaXMuc2Nyb2xsRGlzdGFuY2U9PXRoaXMuX2dldE1heFNjcm9sbERpc3RhbmNlKCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfV9nZXRNYXhTY3JvbGxEaXN0YW5jZSgpe3JldHVybiB0aGlzLl90YWJMaXN0Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsV2lkdGgtdGhpcy5fdGFiTGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRofHwwfV9hbGlnbklua0JhclRvU2VsZWN0ZWRUYWIoKXtjb25zdCB0PXRoaXMuX2l0ZW1zJiZ0aGlzLl9pdGVtcy5sZW5ndGg/dGhpcy5faXRlbXMudG9BcnJheSgpW3RoaXMuc2VsZWN0ZWRJbmRleF06bnVsbCxlPXQ/dC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ6bnVsbDtlP3RoaXMuX2lua0Jhci5hbGlnblRvRWxlbWVudChlKTp0aGlzLl9pbmtCYXIuaGlkZSgpfV9zdG9wSW50ZXJ2YWwoKXt0aGlzLl9zdG9wU2Nyb2xsaW5nLm5leHQoKX1faGFuZGxlUGFnaW5hdG9yUHJlc3ModCxlKXtlJiZudWxsIT1lLmJ1dHRvbiYmMCE9PWUuYnV0dG9ufHwodGhpcy5fc3RvcEludGVydmFsKCksZGUoNjUwLDEwMCkucGlwZShqZShwZSh0aGlzLl9zdG9wU2Nyb2xsaW5nLHRoaXMuX2Rlc3Ryb3llZCkpKS5zdWJzY3JpYmUoKCgpPT57Y29uc3R7bWF4U2Nyb2xsRGlzdGFuY2U6ZSxkaXN0YW5jZTpufT10aGlzLl9zY3JvbGxIZWFkZXIodCk7KDA9PT1ufHxuPj1lKSYmdGhpcy5fc3RvcEludGVydmFsKCl9KSkpfV9zY3JvbGxUbyh0KXtpZih0aGlzLmRpc2FibGVQYWdpbmF0aW9uKXJldHVybnttYXhTY3JvbGxEaXN0YW5jZTowLGRpc3RhbmNlOjB9O2NvbnN0IGU9dGhpcy5fZ2V0TWF4U2Nyb2xsRGlzdGFuY2UoKTtyZXR1cm4gdGhpcy5fc2Nyb2xsRGlzdGFuY2U9TWF0aC5tYXgoMCxNYXRoLm1pbihlLHQpKSx0aGlzLl9zY3JvbGxEaXN0YW5jZUNoYW5nZWQ9ITAsdGhpcy5fY2hlY2tTY3JvbGxpbmdDb250cm9scygpLHttYXhTY3JvbGxEaXN0YW5jZTplLGRpc3RhbmNlOnRoaXMuX3Njcm9sbERpc3RhbmNlfX19RGouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fERqKShnZihLaCksZ2YoT2IpLGdmKFFMKSxnZih2Riw4KSxnZihtQyksZ2YoY0gpLGdmKGNrLDgpKX0sRGouybVkaXI9aG8oe3R5cGU6RGosaW5wdXRzOntkaXNhYmxlUGFnaW5hdGlvbjoiZGlzYWJsZVBhZ2luYXRpb24ifX0pLERqLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6S2h9LHt0eXBlOk9ifSx7dHlwZTpRTH0se3R5cGU6dkYsZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX0se3R5cGU6bUN9LHt0eXBlOmNIfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W2NrXX1dfV0sRGoucHJvcERlY29yYXRvcnM9e2Rpc2FibGVQYWdpbmF0aW9uOlt7dHlwZTpSX31dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKERqLFt7dHlwZTprX31dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpLaH0se3R5cGU6T2J9LHt0eXBlOlFMfSx7dHlwZTp2RixkZWNvcmF0b3JzOlt7dHlwZTpCcn1dfSx7dHlwZTptQ30se3R5cGU6Y0h9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbY2tdfV19XX0pLHtkaXNhYmxlUGFnaW5hdGlvbjpbe3R5cGU6Ul99XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgUmogZXh0ZW5kcyBEantjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyKXtzdXBlcih0LGUsbixvLGksYSxyKSx0aGlzLl9kaXNhYmxlUmlwcGxlPSExfWdldCBkaXNhYmxlUmlwcGxlKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVSaXBwbGV9c2V0IGRpc2FibGVSaXBwbGUodCl7dGhpcy5fZGlzYWJsZVJpcHBsZT1lSCh0KX1faXRlbVNlbGVjdGVkKHQpe3QucHJldmVudERlZmF1bHQoKX19UmouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFJqKShnZihLaCksZ2YoT2IpLGdmKFFMKSxnZih2Riw4KSxnZihtQyksZ2YoY0gpLGdmKGNrLDgpKX0sUmouybVkaXI9aG8oe3R5cGU6UmosaW5wdXRzOntkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIn0sZmVhdHVyZXM6W1FwXX0pLFJqLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6S2h9LHt0eXBlOk9ifSx7dHlwZTpRTH0se3R5cGU6dkYsZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX0se3R5cGU6bUN9LHt0eXBlOmNIfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W2NrXX1dfV0sUmoucHJvcERlY29yYXRvcnM9e2Rpc2FibGVSaXBwbGU6W3t0eXBlOlJffV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoUmosW3t0eXBlOmtffV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOktofSx7dHlwZTpPYn0se3R5cGU6UUx9LHt0eXBlOnZGLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOm1DfSx7dHlwZTpjSH0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltja119XX1dfSkse2Rpc2FibGVSaXBwbGU6W3t0eXBlOlJffV19KTtjbGFzcyBFaiBleHRlbmRzIFJqe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIpe3N1cGVyKHQsZSxuLG8saSxhLHIpfX1Fai7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RWopKGdmKEtoKSxnZihPYiksZ2YoUUwpLGdmKHZGLDgpLGdmKG1DKSxnZihjSCksZ2YoY2ssOCkpfSxFai7JtWNtcD1zbyh7dHlwZTpFaixzZWxlY3RvcnM6W1sibWF0LXRhYi1oZWFkZXIiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24gdChlLG4sbyl7aWYoMSZlJiZqeShvLGtqLDQpLDImZSl7bGV0IHQ7QnkodD1VeSgpKSYmKG4uX2l0ZW1zPXQpfX0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihWeShsaiw3KSxWeShuaiw3KSxWeShvaiw3KSxWeShpaiw1KSxWeShhaiw1KSksMiZlKXtsZXQgdDtCeSh0PVV5KCkpJiYobi5faW5rQmFyPXQuZmlyc3QpLEJ5KHQ9VXkoKSkmJihuLl90YWJMaXN0Q29udGFpbmVyPXQuZmlyc3QpLEJ5KHQ9VXkoKSkmJihuLl90YWJMaXN0PXQuZmlyc3QpLEJ5KHQ9VXkoKSkmJihuLl9uZXh0UGFnaW5hdG9yPXQuZmlyc3QpLEJ5KHQ9VXkoKSkmJihuLl9wcmV2aW91c1BhZ2luYXRvcj10LmZpcnN0KX19LGhvc3RBdHRyczpbMSwibWF0LXRhYi1oZWFkZXIiXSxob3N0VmFyczo0LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZjdSgibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jb250cm9scy1lbmFibGVkIixuLl9zaG93UGFnaW5hdGlvbkNvbnRyb2xzKSgibWF0LXRhYi1oZWFkZXItcnRsIiwicnRsIj09bi5fZ2V0TGF5b3V0RGlyZWN0aW9uKCkpfSxpbnB1dHM6e3NlbGVjdGVkSW5kZXg6InNlbGVjdGVkSW5kZXgifSxvdXRwdXRzOntzZWxlY3RGb2N1c2VkSW5kZXg6InNlbGVjdEZvY3VzZWRJbmRleCIsaW5kZXhGb2N1c2VkOiJpbmRleEZvY3VzZWQifSxmZWF0dXJlczpbUXBdLG5nQ29udGVudFNlbGVjdG9yczpHVixkZWNsczoxMyx2YXJzOjgsY29uc3RzOltbImFyaWEtaGlkZGVuIiwidHJ1ZSIsIm1hdC1yaXBwbGUiLCIiLDEsIm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24iLCJtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSIsIm1hdC1lbGV2YXRpb24tejQiLDMsIm1hdFJpcHBsZURpc2FibGVkIiwiY2xpY2siLCJtb3VzZWRvd24iLCJ0b3VjaGVuZCJdLFsicHJldmlvdXNQYWdpbmF0b3IiLCIiXSxbMSwibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIl0sWzEsIm1hdC10YWItbGFiZWwtY29udGFpbmVyIiwzLCJrZXlkb3duIl0sWyJ0YWJMaXN0Q29udGFpbmVyIiwiIl0sWyJyb2xlIiwidGFibGlzdCIsMSwibWF0LXRhYi1saXN0IiwzLCJjZGtPYnNlcnZlQ29udGVudCJdLFsidGFiTGlzdCIsIiJdLFsxLCJtYXQtdGFiLWxhYmVscyJdLFsiYXJpYS1oaWRkZW4iLCJ0cnVlIiwibWF0LXJpcHBsZSIsIiIsMSwibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiIsIm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYWZ0ZXIiLCJtYXQtZWxldmF0aW9uLXo0IiwzLCJtYXRSaXBwbGVEaXNhYmxlZCIsIm1vdXNlZG93biIsImNsaWNrIiwidG91Y2hlbmQiXSxbIm5leHRQYWdpbmF0b3IiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKEhmKCksQ2YoMCwiZGl2IiwwLDEpLFJmKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5faGFuZGxlUGFnaW5hdG9yQ2xpY2soImJlZm9yZSIpfSkpKCJtb3VzZWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9oYW5kbGVQYWdpbmF0b3JQcmVzcygiYmVmb3JlIixlKX0pKSgidG91Y2hlbmQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX3N0b3BJbnRlcnZhbCgpfSkpLHZmKDIsImRpdiIsMiksTWYoKSxDZigzLCJkaXYiLDMsNCksUmYoImtleWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9oYW5kbGVLZXlkb3duKGUpfSkpLENmKDUsImRpdiIsNSw2KSxSZigiY2RrT2JzZXJ2ZUNvbnRlbnQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX29uQ29udGVudENoYW5nZXMoKX0pKSxDZig3LCJkaXYiLDcpLEZmKDgpLE1mKCksdmYoOSwibWF0LWluay1iYXIiKSxNZigpLE1mKCksQ2YoMTAsImRpdiIsOCw5KSxSZigibW91c2Vkb3duIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5faGFuZGxlUGFnaW5hdG9yUHJlc3MoImFmdGVyIixlKX0pKSgiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX2hhbmRsZVBhZ2luYXRvckNsaWNrKCJhZnRlciIpfSkpKCJ0b3VjaGVuZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fc3RvcEludGVydmFsKCl9KSksdmYoMTIsImRpdiIsMiksTWYoKSksMiZlJiYoY3UoIm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQiLG4uX2Rpc2FibGVTY3JvbGxCZWZvcmUpLGJmKCJtYXRSaXBwbGVEaXNhYmxlZCIsbi5fZGlzYWJsZVNjcm9sbEJlZm9yZXx8bi5kaXNhYmxlUmlwcGxlKSxEYyg1KSxjdSgiX21hdC1hbmltYXRpb24tbm9vcGFibGUiLCJOb29wQW5pbWF0aW9ucyI9PT1uLl9hbmltYXRpb25Nb2RlKSxEYyg1KSxjdSgibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCIsbi5fZGlzYWJsZVNjcm9sbEFmdGVyKSxiZigibWF0UmlwcGxlRGlzYWJsZWQiLG4uX2Rpc2FibGVTY3JvbGxBZnRlcnx8bi5kaXNhYmxlUmlwcGxlKSl9LGRpcmVjdGl2ZXM6W21MLFBILGxqXSxzdHlsZXM6WycubWF0LXRhYi1oZWFkZXJ7ZGlzcGxheTpmbGV4O292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4LXNocmluazowfS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Om5vbmU7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWluLXdpZHRoOjMycHg7Y3Vyc29yOnBvaW50ZXI7ei1pbmRleDoyOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0b3VjaC1hY3Rpb246bm9uZX0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jb250cm9scy1lbmFibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9ue2Rpc3BsYXk6ZmxleH0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1iZWZvcmUsLm1hdC10YWItaGVhZGVyLXJ0bCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1hZnRlcntwYWRkaW5nLWxlZnQ6NHB4fS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWhlYWRlci1ydGwgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYWZ0ZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbnt0cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpfS5tYXQtdGFiLWhlYWRlci1ydGwgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYmVmb3JlLC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWFmdGVye3BhZGRpbmctcmlnaHQ6NHB4fS5tYXQtdGFiLWhlYWRlci1ydGwgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYmVmb3JlIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYWZ0ZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbnt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MnB4IDJweCAwIDA7Y29udGVudDoiIjtoZWlnaHQ6OHB4O3dpZHRoOjhweH0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZHtib3gtc2hhZG93Om5vbmU7Y3Vyc29yOmRlZmF1bHR9Lm1hdC10YWItbGlzdHtmbGV4LWdyb3c6MTtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOnRyYW5zZm9ybSA1MDBtcyBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSl9Lm1hdC1pbmstYmFye3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2hlaWdodDoycHg7dHJhbnNpdGlvbjo1MDBtcyBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSl9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1pbmstYmFye3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC1pbmstYmFye2JvdHRvbTphdXRvO3RvcDowfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1pbmstYmFye291dGxpbmU6c29saWQgMnB4O2hlaWdodDowfS5tYXQtdGFiLWxhYmVsc3tkaXNwbGF5OmZsZXh9W21hdC1hbGlnbi10YWJzPWNlbnRlcl0+Lm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsc3tqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfVttYXQtYWxpZ24tdGFicz1lbmRdPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbHN7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5tYXQtdGFiLWxhYmVsLWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjE7b3ZlcmZsb3c6aGlkZGVuO3otaW5kZXg6MX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXRhYi1saXN0e3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXRhYi1sYWJlbHtoZWlnaHQ6NDhweDtwYWRkaW5nOjAgMjRweDtjdXJzb3I6cG9pbnRlcjtib3gtc2l6aW5nOmJvcmRlci1ib3g7b3BhY2l0eTouNjttaW4td2lkdGg6MTYwcHg7dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXA7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC10YWItbGFiZWw6Zm9jdXN7b3V0bGluZTpub25lfS5tYXQtdGFiLWxhYmVsOmZvY3VzOm5vdCgubWF0LXRhYi1kaXNhYmxlZCl7b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10YWItbGFiZWw6Zm9jdXN7b3V0bGluZTpkb3R0ZWQgMnB4O291dGxpbmUtb2Zmc2V0Oi0ycHh9Lm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWR7b3BhY2l0eTouNX0ubWF0LXRhYi1sYWJlbCAubWF0LXRhYi1sYWJlbC1jb250ZW50e2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10YWItbGFiZWx7b3BhY2l0eToxfUBtZWRpYShtYXgtd2lkdGg6IDU5OXB4KXsubWF0LXRhYi1sYWJlbHttaW4td2lkdGg6NzJweH19XG4nXSxlbmNhcHN1bGF0aW9uOjJ9KSxFai5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOktofSx7dHlwZTpPYn0se3R5cGU6UUx9LHt0eXBlOnZGLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOm1DfSx7dHlwZTpjSH0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltja119XX1dLEVqLnByb3BEZWNvcmF0b3JzPXtfaXRlbXM6W3t0eXBlOm9yLGFyZ3M6W2tqLHtkZXNjZW5kYW50czohMX1dfV0sX2lua0Jhcjpbe3R5cGU6YXIsYXJnczpbbGose3N0YXRpYzohMH1dfV0sX3RhYkxpc3RDb250YWluZXI6W3t0eXBlOmFyLGFyZ3M6WyJ0YWJMaXN0Q29udGFpbmVyIix7c3RhdGljOiEwfV19XSxfdGFiTGlzdDpbe3R5cGU6YXIsYXJnczpbInRhYkxpc3QiLHtzdGF0aWM6ITB9XX1dLF9uZXh0UGFnaW5hdG9yOlt7dHlwZTphcixhcmdzOlsibmV4dFBhZ2luYXRvciJdfV0sX3ByZXZpb3VzUGFnaW5hdG9yOlt7dHlwZTphcixhcmdzOlsicHJldmlvdXNQYWdpbmF0b3IiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEVqLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im1hdC10YWItaGVhZGVyIix0ZW1wbGF0ZTonPGRpdiBjbGFzcz0ibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiBtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSBtYXQtZWxldmF0aW9uLXo0IlxuICAgICAjcHJldmlvdXNQYWdpbmF0b3JcbiAgICAgYXJpYS1oaWRkZW49InRydWUiXG4gICAgIG1hdC1yaXBwbGUgW21hdFJpcHBsZURpc2FibGVkXT0iX2Rpc2FibGVTY3JvbGxCZWZvcmUgfHwgZGlzYWJsZVJpcHBsZSJcbiAgICAgW2NsYXNzLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWRdPSJfZGlzYWJsZVNjcm9sbEJlZm9yZSJcbiAgICAgKGNsaWNrKT0iX2hhbmRsZVBhZ2luYXRvckNsaWNrKFwnYmVmb3JlXCcpIlxuICAgICAobW91c2Vkb3duKT0iX2hhbmRsZVBhZ2luYXRvclByZXNzKFwnYmVmb3JlXCcsICRldmVudCkiXG4gICAgICh0b3VjaGVuZCk9Il9zdG9wSW50ZXJ2YWwoKSI+XG4gIDxkaXYgY2xhc3M9Im1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiI+PC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz0ibWF0LXRhYi1sYWJlbC1jb250YWluZXIiICN0YWJMaXN0Q29udGFpbmVyIChrZXlkb3duKT0iX2hhbmRsZUtleWRvd24oJGV2ZW50KSI+XG4gIDxkaXZcbiAgICAjdGFiTGlzdFxuICAgIGNsYXNzPSJtYXQtdGFiLWxpc3QiXG4gICAgW2NsYXNzLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlXT0iX2FuaW1hdGlvbk1vZGUgPT09IFwnTm9vcEFuaW1hdGlvbnNcJyJcbiAgICByb2xlPSJ0YWJsaXN0IlxuICAgIChjZGtPYnNlcnZlQ29udGVudCk9Il9vbkNvbnRlbnRDaGFuZ2VzKCkiPlxuICAgIDxkaXYgY2xhc3M9Im1hdC10YWItbGFiZWxzIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8bWF0LWluay1iYXI+PC9tYXQtaW5rLWJhcj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz0ibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiBtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWFmdGVyIG1hdC1lbGV2YXRpb24tejQiXG4gICAgICNuZXh0UGFnaW5hdG9yXG4gICAgIGFyaWEtaGlkZGVuPSJ0cnVlIlxuICAgICBtYXQtcmlwcGxlIFttYXRSaXBwbGVEaXNhYmxlZF09Il9kaXNhYmxlU2Nyb2xsQWZ0ZXIgfHwgZGlzYWJsZVJpcHBsZSJcbiAgICAgW2NsYXNzLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWRdPSJfZGlzYWJsZVNjcm9sbEFmdGVyIlxuICAgICAobW91c2Vkb3duKT0iX2hhbmRsZVBhZ2luYXRvclByZXNzKFwnYWZ0ZXJcJywgJGV2ZW50KSJcbiAgICAgKGNsaWNrKT0iX2hhbmRsZVBhZ2luYXRvckNsaWNrKFwnYWZ0ZXJcJykiXG4gICAgICh0b3VjaGVuZCk9Il9zdG9wSW50ZXJ2YWwoKSI+XG4gIDxkaXYgY2xhc3M9Im1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiI+PC9kaXY+XG48L2Rpdj5cbicsaW5wdXRzOlsic2VsZWN0ZWRJbmRleCJdLG91dHB1dHM6WyJzZWxlY3RGb2N1c2VkSW5kZXgiLCJpbmRleEZvY3VzZWQiXSxlbmNhcHN1bGF0aW9uOlduLk5vbmUsY2hhbmdlRGV0ZWN0aW9uOmpuLkRlZmF1bHQsaG9zdDp7Y2xhc3M6Im1hdC10YWItaGVhZGVyIiwiW2NsYXNzLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY29udHJvbHMtZW5hYmxlZF0iOiJfc2hvd1BhZ2luYXRpb25Db250cm9scyIsIltjbGFzcy5tYXQtdGFiLWhlYWRlci1ydGxdIjoiX2dldExheW91dERpcmVjdGlvbigpID09ICdydGwnIn0sc3R5bGVzOlsnLm1hdC10YWItaGVhZGVye2Rpc3BsYXk6ZmxleDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7ZmxleC1zaHJpbms6MH0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbnstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpub25lO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21pbi13aWR0aDozMnB4O2N1cnNvcjpwb2ludGVyO3otaW5kZXg6Mjstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dG91Y2gtYWN0aW9uOm5vbmV9Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY29udHJvbHMtZW5hYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbntkaXNwbGF5OmZsZXh9Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYmVmb3JlLC5tYXQtdGFiLWhlYWRlci1ydGwgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYWZ0ZXJ7cGFkZGluZy1sZWZ0OjRweH0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1iZWZvcmUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1oZWFkZXItcnRsIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWFmdGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257dHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKX0ubWF0LXRhYi1oZWFkZXItcnRsIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSwubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1hZnRlcntwYWRkaW5nLXJpZ2h0OjRweH0ubWF0LXRhYi1oZWFkZXItcnRsIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWFmdGVyIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjJweCAycHggMCAwO2NvbnRlbnQ6IiI7aGVpZ2h0OjhweDt3aWR0aDo4cHh9Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWR7Ym94LXNoYWRvdzpub25lO2N1cnNvcjpkZWZhdWx0fS5tYXQtdGFiLWxpc3R7ZmxleC1ncm93OjE7cG9zaXRpb246cmVsYXRpdmU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNTAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpfS5tYXQtaW5rLWJhcntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtoZWlnaHQ6MnB4O3RyYW5zaXRpb246NTAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtaW5rLWJhcnt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtaW5rLWJhcntib3R0b206YXV0bzt0b3A6MH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtaW5rLWJhcntvdXRsaW5lOnNvbGlkIDJweDtoZWlnaHQ6MH0ubWF0LXRhYi1sYWJlbHN7ZGlzcGxheTpmbGV4fVttYXQtYWxpZ24tdGFicz1jZW50ZXJdPi5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbHN7anVzdGlmeS1jb250ZW50OmNlbnRlcn1bbWF0LWFsaWduLXRhYnM9ZW5kXT4ubWF0LXRhYi1oZWFkZXIgLm1hdC10YWItbGFiZWxze2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0ubWF0LXRhYi1sYWJlbC1jb250YWluZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZ3JvdzoxO292ZXJmbG93OmhpZGRlbjt6LWluZGV4OjF9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC10YWItbGlzdHt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC10YWItbGFiZWx7aGVpZ2h0OjQ4cHg7cGFkZGluZzowIDI0cHg7Y3Vyc29yOnBvaW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O29wYWNpdHk6LjY7bWluLXdpZHRoOjE2MHB4O3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtdGFiLWxhYmVsOmZvY3Vze291dGxpbmU6bm9uZX0ubWF0LXRhYi1sYWJlbDpmb2N1czpub3QoLm1hdC10YWItZGlzYWJsZWQpe29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdGFiLWxhYmVsOmZvY3Vze291dGxpbmU6ZG90dGVkIDJweDtvdXRsaW5lLW9mZnNldDotMnB4fS5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHR9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVke29wYWNpdHk6LjV9Lm1hdC10YWItbGFiZWwgLm1hdC10YWItbGFiZWwtY29udGVudHtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdGFiLWxhYmVse29wYWNpdHk6MX1AbWVkaWEobWF4LXdpZHRoOiA1OTlweCl7Lm1hdC10YWItbGFiZWx7bWluLXdpZHRoOjcycHh9fVxuJ119XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpLaH0se3R5cGU6T2J9LHt0eXBlOlFMfSx7dHlwZTp2RixkZWNvcmF0b3JzOlt7dHlwZTpCcn1dfSx7dHlwZTptQ30se3R5cGU6Y0h9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbY2tdfV19XX0pLHtfaXRlbXM6W3t0eXBlOm9yLGFyZ3M6W2tqLHtkZXNjZW5kYW50czohMX1dfV0sX2lua0Jhcjpbe3R5cGU6YXIsYXJnczpbbGose3N0YXRpYzohMH1dfV0sX3RhYkxpc3RDb250YWluZXI6W3t0eXBlOmFyLGFyZ3M6WyJ0YWJMaXN0Q29udGFpbmVyIix7c3RhdGljOiEwfV19XSxfdGFiTGlzdDpbe3R5cGU6YXIsYXJnczpbInRhYkxpc3QiLHtzdGF0aWM6ITB9XX1dLF9uZXh0UGFnaW5hdG9yOlt7dHlwZTphcixhcmdzOlsibmV4dFBhZ2luYXRvciJdfV0sX3ByZXZpb3VzUGFnaW5hdG9yOlt7dHlwZTphcixhcmdzOlsicHJldmlvdXNQYWdpbmF0b3IiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBBaiBleHRlbmRzIERqe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIpe3N1cGVyKHQsbyxpLGUsbixhLHIpLHRoaXMuX2Rpc2FibGVSaXBwbGU9ITEsdGhpcy5jb2xvcj0icHJpbWFyeSJ9Z2V0IGJhY2tncm91bmRDb2xvcigpe3JldHVybiB0aGlzLl9iYWNrZ3JvdW5kQ29sb3J9c2V0IGJhY2tncm91bmRDb2xvcih0KXtjb25zdCBlPXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3Q7ZS5yZW1vdmUoYG1hdC1iYWNrZ3JvdW5kLSR7dGhpcy5iYWNrZ3JvdW5kQ29sb3J9YCksdCYmZS5hZGQoYG1hdC1iYWNrZ3JvdW5kLSR7dH1gKSx0aGlzLl9iYWNrZ3JvdW5kQ29sb3I9dH1nZXQgZGlzYWJsZVJpcHBsZSgpe3JldHVybiB0aGlzLl9kaXNhYmxlUmlwcGxlfXNldCBkaXNhYmxlUmlwcGxlKHQpe3RoaXMuX2Rpc2FibGVSaXBwbGU9ZUgodCl9X2l0ZW1TZWxlY3RlZCgpe31uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLl9pdGVtcy5jaGFuZ2VzLnBpcGUoQmUobnVsbCksamUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMudXBkYXRlQWN0aXZlTGluaygpfSkpLHN1cGVyLm5nQWZ0ZXJDb250ZW50SW5pdCgpfXVwZGF0ZUFjdGl2ZUxpbmsoKXtpZighdGhpcy5faXRlbXMpcmV0dXJuO2NvbnN0IHQ9dGhpcy5faXRlbXMudG9BcnJheSgpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKWlmKHRbZV0uYWN0aXZlKXJldHVybiB0aGlzLnNlbGVjdGVkSW5kZXg9ZSx2b2lkIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO3RoaXMuc2VsZWN0ZWRJbmRleD0tMSx0aGlzLl9pbmtCYXIuaGlkZSgpfX1Bai7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8QWopKGdmKEtoKSxnZih2Riw4KSxnZihtQyksZ2YoT2IpLGdmKFFMKSxnZihjSCksZ2YoY2ssOCkpfSxBai7JtWRpcj1obyh7dHlwZTpBaixpbnB1dHM6e2NvbG9yOiJjb2xvciIsYmFja2dyb3VuZENvbG9yOiJiYWNrZ3JvdW5kQ29sb3IiLGRpc2FibGVSaXBwbGU6ImRpc2FibGVSaXBwbGUifSxmZWF0dXJlczpbUXBdfSksQWouY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpLaH0se3R5cGU6dkYsZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX0se3R5cGU6bUN9LHt0eXBlOk9ifSx7dHlwZTpRTH0se3R5cGU6Y0h9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbY2tdfV19XSxBai5wcm9wRGVjb3JhdG9ycz17YmFja2dyb3VuZENvbG9yOlt7dHlwZTpSX31dLGRpc2FibGVSaXBwbGU6W3t0eXBlOlJffV0sY29sb3I6W3t0eXBlOlJffV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoQWosW3t0eXBlOmtffV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOktofSx7dHlwZTp2RixkZWNvcmF0b3JzOlt7dHlwZTpCcn1dfSx7dHlwZTptQ30se3R5cGU6T2J9LHt0eXBlOlFMfSx7dHlwZTpjSH0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltja119XX1dfSkse2NvbG9yOlt7dHlwZTpSX31dLGJhY2tncm91bmRDb2xvcjpbe3R5cGU6Ul99XSxkaXNhYmxlUmlwcGxlOlt7dHlwZTpSX31dfSk7Y2xhc3MgVGogZXh0ZW5kcyBBantjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyKXtzdXBlcih0LGUsbixvLGksYSxyKX19VGouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFRqKShnZihLaCksZ2YodkYsOCksZ2YobUMpLGdmKE9iKSxnZihRTCksZ2YoY0gpLGdmKGNrLDgpKX0sVGouybVjbXA9c28oe3R5cGU6VGosc2VsZWN0b3JzOltbIiIsIm1hdC10YWItbmF2LWJhciIsIiJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbiB0KGUsbixvKXtpZigxJmUmJmp5KG8sSWosNSksMiZlKXtsZXQgdDtCeSh0PVV5KCkpJiYobi5faXRlbXM9dCl9fSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFZ5KGxqLDcpLFZ5KG5qLDcpLFZ5KG9qLDcpLFZ5KGlqLDUpLFZ5KGFqLDUpKSwyJmUpe2xldCB0O0J5KHQ9VXkoKSkmJihuLl9pbmtCYXI9dC5maXJzdCksQnkodD1VeSgpKSYmKG4uX3RhYkxpc3RDb250YWluZXI9dC5maXJzdCksQnkodD1VeSgpKSYmKG4uX3RhYkxpc3Q9dC5maXJzdCksQnkodD1VeSgpKSYmKG4uX25leHRQYWdpbmF0b3I9dC5maXJzdCksQnkodD1VeSgpKSYmKG4uX3ByZXZpb3VzUGFnaW5hdG9yPXQuZmlyc3QpfX0saG9zdEF0dHJzOlsxLCJtYXQtdGFiLW5hdi1iYXIiLCJtYXQtdGFiLWhlYWRlciJdLGhvc3RWYXJzOjEwLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZjdSgibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jb250cm9scy1lbmFibGVkIixuLl9zaG93UGFnaW5hdGlvbkNvbnRyb2xzKSgibWF0LXRhYi1oZWFkZXItcnRsIiwicnRsIj09bi5fZ2V0TGF5b3V0RGlyZWN0aW9uKCkpKCJtYXQtcHJpbWFyeSIsIndhcm4iIT09bi5jb2xvciYmImFjY2VudCIhPT1uLmNvbG9yKSgibWF0LWFjY2VudCIsImFjY2VudCI9PT1uLmNvbG9yKSgibWF0LXdhcm4iLCJ3YXJuIj09PW4uY29sb3IpfSxpbnB1dHM6e2NvbG9yOiJjb2xvciJ9LGV4cG9ydEFzOlsibWF0VGFiTmF2QmFyIiwibWF0VGFiTmF2Il0sZmVhdHVyZXM6W1FwXSxhdHRyczpbIm1hdC10YWItbmF2LWJhciIsIiJdLG5nQ29udGVudFNlbGVjdG9yczpHVixkZWNsczoxMyx2YXJzOjgsY29uc3RzOltbImFyaWEtaGlkZGVuIiwidHJ1ZSIsIm1hdC1yaXBwbGUiLCIiLDEsIm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24iLCJtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSIsIm1hdC1lbGV2YXRpb24tejQiLDMsIm1hdFJpcHBsZURpc2FibGVkIiwiY2xpY2siLCJtb3VzZWRvd24iLCJ0b3VjaGVuZCJdLFsicHJldmlvdXNQYWdpbmF0b3IiLCIiXSxbMSwibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIl0sWzEsIm1hdC10YWItbGluay1jb250YWluZXIiLDMsImtleWRvd24iXSxbInRhYkxpc3RDb250YWluZXIiLCIiXSxbMSwibWF0LXRhYi1saXN0IiwzLCJjZGtPYnNlcnZlQ29udGVudCJdLFsidGFiTGlzdCIsIiJdLFsxLCJtYXQtdGFiLWxpbmtzIl0sWyJhcmlhLWhpZGRlbiIsInRydWUiLCJtYXQtcmlwcGxlIiwiIiwxLCJtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIiwibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1hZnRlciIsIm1hdC1lbGV2YXRpb24tejQiLDMsIm1hdFJpcHBsZURpc2FibGVkIiwibW91c2Vkb3duIiwiY2xpY2siLCJ0b3VjaGVuZCJdLFsibmV4dFBhZ2luYXRvciIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoSGYoKSxDZigwLCJkaXYiLDAsMSksUmYoImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9oYW5kbGVQYWdpbmF0b3JDbGljaygiYmVmb3JlIil9KSkoIm1vdXNlZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2hhbmRsZVBhZ2luYXRvclByZXNzKCJiZWZvcmUiLGUpfSkpKCJ0b3VjaGVuZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fc3RvcEludGVydmFsKCl9KSksdmYoMiwiZGl2IiwyKSxNZigpLENmKDMsImRpdiIsMyw0KSxSZigia2V5ZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2hhbmRsZUtleWRvd24oZSl9KSksQ2YoNSwiZGl2Iiw1LDYpLFJmKCJjZGtPYnNlcnZlQ29udGVudCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fb25Db250ZW50Q2hhbmdlcygpfSkpLENmKDcsImRpdiIsNyksRmYoOCksTWYoKSx2Zig5LCJtYXQtaW5rLWJhciIpLE1mKCksTWYoKSxDZigxMCwiZGl2Iiw4LDkpLFJmKCJtb3VzZWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9oYW5kbGVQYWdpbmF0b3JQcmVzcygiYWZ0ZXIiLGUpfSkpKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5faGFuZGxlUGFnaW5hdG9yQ2xpY2soImFmdGVyIil9KSkoInRvdWNoZW5kIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9zdG9wSW50ZXJ2YWwoKX0pKSx2ZigxMiwiZGl2IiwyKSxNZigpKSwyJmUmJihjdSgibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCIsbi5fZGlzYWJsZVNjcm9sbEJlZm9yZSksYmYoIm1hdFJpcHBsZURpc2FibGVkIixuLl9kaXNhYmxlU2Nyb2xsQmVmb3JlfHxuLmRpc2FibGVSaXBwbGUpLERjKDUpLGN1KCJfbWF0LWFuaW1hdGlvbi1ub29wYWJsZSIsIk5vb3BBbmltYXRpb25zIj09PW4uX2FuaW1hdGlvbk1vZGUpLERjKDUpLGN1KCJtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIixuLl9kaXNhYmxlU2Nyb2xsQWZ0ZXIpLGJmKCJtYXRSaXBwbGVEaXNhYmxlZCIsbi5fZGlzYWJsZVNjcm9sbEFmdGVyfHxuLmRpc2FibGVSaXBwbGUpKX0sZGlyZWN0aXZlczpbbUwsUEgsbGpdLHN0eWxlczpbJy5tYXQtdGFiLWhlYWRlcntkaXNwbGF5OmZsZXg7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXgtc2hyaW5rOjB9Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb257LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6bm9uZTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjttaW4td2lkdGg6MzJweDtjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjI7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RvdWNoLWFjdGlvbjpub25lfS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNvbnRyb2xzLWVuYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb257ZGlzcGxheTpmbGV4fS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSwubWF0LXRhYi1oZWFkZXItcnRsIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWFmdGVye3BhZGRpbmctbGVmdDo0cHh9Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYmVmb3JlIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItaGVhZGVyLXJ0bCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1hZnRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue3RyYW5zZm9ybTpyb3RhdGUoLTEzNWRlZyl9Lm1hdC10YWItaGVhZGVyLXJ0bCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1iZWZvcmUsLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYWZ0ZXJ7cGFkZGluZy1yaWdodDo0cHh9Lm1hdC10YWItaGVhZGVyLXJ0bCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1iZWZvcmUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1hZnRlciAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoycHggMnB4IDAgMDtjb250ZW50OiIiO2hlaWdodDo4cHg7d2lkdGg6OHB4fS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVke2JveC1zaGFkb3c6bm9uZTtjdXJzb3I6ZGVmYXVsdH0ubWF0LXRhYi1saXN0e2ZsZXgtZ3JvdzoxO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb246dHJhbnNmb3JtIDUwMG1zIGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKX0ubWF0LXRhYi1saW5rc3tkaXNwbGF5OmZsZXh9W21hdC1hbGlnbi10YWJzPWNlbnRlcl0+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGlua3N7anVzdGlmeS1jb250ZW50OmNlbnRlcn1bbWF0LWFsaWduLXRhYnM9ZW5kXT4ubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5rc3tqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9Lm1hdC1pbmstYmFye3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2hlaWdodDoycHg7dHJhbnNpdGlvbjo1MDBtcyBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSl9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1pbmstYmFye3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC1pbmstYmFye2JvdHRvbTphdXRvO3RvcDowfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1pbmstYmFye291dGxpbmU6c29saWQgMnB4O2hlaWdodDowfS5tYXQtdGFiLWxpbmstY29udGFpbmVye2Rpc3BsYXk6ZmxleDtmbGV4LWdyb3c6MTtvdmVyZmxvdzpoaWRkZW47ei1pbmRleDoxfS5tYXQtdGFiLWxpbmt7aGVpZ2h0OjQ4cHg7cGFkZGluZzowIDI0cHg7Y3Vyc29yOnBvaW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O29wYWNpdHk6LjY7bWluLXdpZHRoOjE2MHB4O3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO3ZlcnRpY2FsLWFsaWduOnRvcDt0ZXh0LWRlY29yYXRpb246bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fS5tYXQtdGFiLWxpbms6Zm9jdXN7b3V0bGluZTpub25lfS5tYXQtdGFiLWxpbms6Zm9jdXM6bm90KC5tYXQtdGFiLWRpc2FibGVkKXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXRhYi1saW5rOmZvY3Vze291dGxpbmU6ZG90dGVkIDJweDtvdXRsaW5lLW9mZnNldDotMnB4fS5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZHtvcGFjaXR5Oi41fS5tYXQtdGFiLWxpbmsgLm1hdC10YWItbGFiZWwtY29udGVudHtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdGFiLWxpbmt7b3BhY2l0eToxfVttYXQtc3RyZXRjaC10YWJzXSAubWF0LXRhYi1saW5re2ZsZXgtYmFzaXM6MDtmbGV4LWdyb3c6MX0ubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWR7cG9pbnRlci1ldmVudHM6bm9uZX1AbWVkaWEobWF4LXdpZHRoOiA1OTlweCl7Lm1hdC10YWItbGlua3ttaW4td2lkdGg6NzJweH19XG4nXSxlbmNhcHN1bGF0aW9uOjJ9KSxUai5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOktofSx7dHlwZTp2RixkZWNvcmF0b3JzOlt7dHlwZTpCcn1dfSx7dHlwZTptQ30se3R5cGU6T2J9LHt0eXBlOlFMfSx7dHlwZTpjSH0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltja119XX1dLFRqLnByb3BEZWNvcmF0b3JzPXtfaXRlbXM6W3t0eXBlOm9yLGFyZ3M6WyRlKCgoKT0+SWopKSx7ZGVzY2VuZGFudHM6ITB9XX1dLF9pbmtCYXI6W3t0eXBlOmFyLGFyZ3M6W2xqLHtzdGF0aWM6ITB9XX1dLF90YWJMaXN0Q29udGFpbmVyOlt7dHlwZTphcixhcmdzOlsidGFiTGlzdENvbnRhaW5lciIse3N0YXRpYzohMH1dfV0sX3RhYkxpc3Q6W3t0eXBlOmFyLGFyZ3M6WyJ0YWJMaXN0Iix7c3RhdGljOiEwfV19XSxfbmV4dFBhZ2luYXRvcjpbe3R5cGU6YXIsYXJnczpbIm5leHRQYWdpbmF0b3IiXX1dLF9wcmV2aW91c1BhZ2luYXRvcjpbe3R5cGU6YXIsYXJnczpbInByZXZpb3VzUGFnaW5hdG9yIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihUaixbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJbbWF0LXRhYi1uYXYtYmFyXSIsZXhwb3J0QXM6Im1hdFRhYk5hdkJhciwgbWF0VGFiTmF2IixpbnB1dHM6WyJjb2xvciJdLHRlbXBsYXRlOic8ZGl2IGNsYXNzPSJtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIG1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYmVmb3JlIG1hdC1lbGV2YXRpb24tejQiXG4gICAgICNwcmV2aW91c1BhZ2luYXRvclxuICAgICBhcmlhLWhpZGRlbj0idHJ1ZSJcbiAgICAgbWF0LXJpcHBsZSBbbWF0UmlwcGxlRGlzYWJsZWRdPSJfZGlzYWJsZVNjcm9sbEJlZm9yZSB8fCBkaXNhYmxlUmlwcGxlIlxuICAgICBbY2xhc3MubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZF09Il9kaXNhYmxlU2Nyb2xsQmVmb3JlIlxuICAgICAoY2xpY2spPSJfaGFuZGxlUGFnaW5hdG9yQ2xpY2soXCdiZWZvcmVcJykiXG4gICAgIChtb3VzZWRvd24pPSJfaGFuZGxlUGFnaW5hdG9yUHJlc3MoXCdiZWZvcmVcJywgJGV2ZW50KSJcbiAgICAgKHRvdWNoZW5kKT0iX3N0b3BJbnRlcnZhbCgpIj5cbiAgPGRpdiBjbGFzcz0ibWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIj48L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPSJtYXQtdGFiLWxpbmstY29udGFpbmVyIiAjdGFiTGlzdENvbnRhaW5lciAoa2V5ZG93bik9Il9oYW5kbGVLZXlkb3duKCRldmVudCkiPlxuICA8ZGl2XG4gICAgY2xhc3M9Im1hdC10YWItbGlzdCJcbiAgICBbY2xhc3MuX21hdC1hbmltYXRpb24tbm9vcGFibGVdPSJfYW5pbWF0aW9uTW9kZSA9PT0gXCdOb29wQW5pbWF0aW9uc1wnIlxuICAgICN0YWJMaXN0XG4gICAgKGNka09ic2VydmVDb250ZW50KT0iX29uQ29udGVudENoYW5nZXMoKSI+XG4gICAgPGRpdiBjbGFzcz0ibWF0LXRhYi1saW5rcyI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPG1hdC1pbmstYmFyPjwvbWF0LWluay1iYXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9Im1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24gbWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1hZnRlciBtYXQtZWxldmF0aW9uLXo0IlxuICAgICAjbmV4dFBhZ2luYXRvclxuICAgICBhcmlhLWhpZGRlbj0idHJ1ZSJcbiAgICAgbWF0LXJpcHBsZSBbbWF0UmlwcGxlRGlzYWJsZWRdPSJfZGlzYWJsZVNjcm9sbEFmdGVyIHx8IGRpc2FibGVSaXBwbGUiXG4gICAgIFtjbGFzcy5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkXT0iX2Rpc2FibGVTY3JvbGxBZnRlciJcbiAgICAgKG1vdXNlZG93bik9Il9oYW5kbGVQYWdpbmF0b3JQcmVzcyhcJ2FmdGVyXCcsICRldmVudCkiXG4gICAgIChjbGljayk9Il9oYW5kbGVQYWdpbmF0b3JDbGljayhcJ2FmdGVyXCcpIlxuICAgICAodG91Y2hlbmQpPSJfc3RvcEludGVydmFsKCkiPlxuICA8ZGl2IGNsYXNzPSJtYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24iPjwvZGl2PlxuPC9kaXY+XG4nLGhvc3Q6e2NsYXNzOiJtYXQtdGFiLW5hdi1iYXIgbWF0LXRhYi1oZWFkZXIiLCJbY2xhc3MubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jb250cm9scy1lbmFibGVkXSI6Il9zaG93UGFnaW5hdGlvbkNvbnRyb2xzIiwiW2NsYXNzLm1hdC10YWItaGVhZGVyLXJ0bF0iOiJfZ2V0TGF5b3V0RGlyZWN0aW9uKCkgPT0gJ3J0bCciLCJbY2xhc3MubWF0LXByaW1hcnldIjonY29sb3IgIT09ICJ3YXJuIiAmJiBjb2xvciAhPT0gImFjY2VudCInLCJbY2xhc3MubWF0LWFjY2VudF0iOidjb2xvciA9PT0gImFjY2VudCInLCJbY2xhc3MubWF0LXdhcm5dIjonY29sb3IgPT09ICJ3YXJuIid9LGVuY2Fwc3VsYXRpb246V24uTm9uZSxjaGFuZ2VEZXRlY3Rpb246am4uRGVmYXVsdCxzdHlsZXM6WycubWF0LXRhYi1oZWFkZXJ7ZGlzcGxheTpmbGV4O292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4LXNocmluazowfS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Om5vbmU7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWluLXdpZHRoOjMycHg7Y3Vyc29yOnBvaW50ZXI7ei1pbmRleDoyOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0b3VjaC1hY3Rpb246bm9uZX0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jb250cm9scy1lbmFibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9ue2Rpc3BsYXk6ZmxleH0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1iZWZvcmUsLm1hdC10YWItaGVhZGVyLXJ0bCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1hZnRlcntwYWRkaW5nLWxlZnQ6NHB4fS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWJlZm9yZSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLWhlYWRlci1ydGwgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYWZ0ZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbnt0cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpfS5tYXQtdGFiLWhlYWRlci1ydGwgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYmVmb3JlLC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWFmdGVye3BhZGRpbmctcmlnaHQ6NHB4fS5tYXQtdGFiLWhlYWRlci1ydGwgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYmVmb3JlIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tYWZ0ZXIgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbnt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MnB4IDJweCAwIDA7Y29udGVudDoiIjtoZWlnaHQ6OHB4O3dpZHRoOjhweH0ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZHtib3gtc2hhZG93Om5vbmU7Y3Vyc29yOmRlZmF1bHR9Lm1hdC10YWItbGlzdHtmbGV4LWdyb3c6MTtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOnRyYW5zZm9ybSA1MDBtcyBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSl9Lm1hdC10YWItbGlua3N7ZGlzcGxheTpmbGV4fVttYXQtYWxpZ24tdGFicz1jZW50ZXJdPi5tYXQtdGFiLWxpbmstY29udGFpbmVyIC5tYXQtdGFiLWxpbmtze2p1c3RpZnktY29udGVudDpjZW50ZXJ9W21hdC1hbGlnbi10YWJzPWVuZF0+Lm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC10YWItbGlua3N7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5tYXQtaW5rLWJhcntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtoZWlnaHQ6MnB4O3RyYW5zaXRpb246NTAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtaW5rLWJhcnt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtaW5rLWJhcntib3R0b206YXV0bzt0b3A6MH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtaW5rLWJhcntvdXRsaW5lOnNvbGlkIDJweDtoZWlnaHQ6MH0ubWF0LXRhYi1saW5rLWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjE7b3ZlcmZsb3c6aGlkZGVuO3otaW5kZXg6MX0ubWF0LXRhYi1saW5re2hlaWdodDo0OHB4O3BhZGRpbmc6MCAyNHB4O2N1cnNvcjpwb2ludGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtvcGFjaXR5Oi42O21pbi13aWR0aDoxNjBweDt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDt2ZXJ0aWNhbC1hbGlnbjp0b3A7dGV4dC1kZWNvcmF0aW9uOm5vbmU7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0ubWF0LXRhYi1saW5rOmZvY3Vze291dGxpbmU6bm9uZX0ubWF0LXRhYi1saW5rOmZvY3VzOm5vdCgubWF0LXRhYi1kaXNhYmxlZCl7b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC10YWItbGluazpmb2N1c3tvdXRsaW5lOmRvdHRlZCAycHg7b3V0bGluZS1vZmZzZXQ6LTJweH0ubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHR9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWR7b3BhY2l0eTouNX0ubWF0LXRhYi1saW5rIC5tYXQtdGFiLWxhYmVsLWNvbnRlbnR7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXB9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXRhYi1saW5re29wYWNpdHk6MX1bbWF0LXN0cmV0Y2gtdGFic10gLm1hdC10YWItbGlua3tmbGV4LWJhc2lzOjA7ZmxleC1ncm93OjF9Lm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVke3BvaW50ZXItZXZlbnRzOm5vbmV9QG1lZGlhKG1heC13aWR0aDogNTk5cHgpey5tYXQtdGFiLWxpbmt7bWluLXdpZHRoOjcycHh9fVxuJ119XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpLaH0se3R5cGU6dkYsZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX0se3R5cGU6bUN9LHt0eXBlOk9ifSx7dHlwZTpRTH0se3R5cGU6Y0h9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbY2tdfV19XX0pLHtfaXRlbXM6W3t0eXBlOm9yLGFyZ3M6WyRlKCgoKT0+SWopKSx7ZGVzY2VuZGFudHM6ITB9XX1dLF9pbmtCYXI6W3t0eXBlOmFyLGFyZ3M6W2xqLHtzdGF0aWM6ITB9XX1dLF90YWJMaXN0Q29udGFpbmVyOlt7dHlwZTphcixhcmdzOlsidGFiTGlzdENvbnRhaW5lciIse3N0YXRpYzohMH1dfV0sX3RhYkxpc3Q6W3t0eXBlOmFyLGFyZ3M6WyJ0YWJMaXN0Iix7c3RhdGljOiEwfV19XSxfbmV4dFBhZ2luYXRvcjpbe3R5cGU6YXIsYXJnczpbIm5leHRQYWdpbmF0b3IiXX1dLF9wcmV2aW91c1BhZ2luYXRvcjpbe3R5cGU6YXIsYXJnczpbInByZXZpb3VzUGFnaW5hdG9yIl19XX0pO2NvbnN0IE5qPUZGKEhGKHpGKGNsYXNze30pKSk7Y2xhc3MgemogZXh0ZW5kcyBOantjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSl7c3VwZXIoKSx0aGlzLl90YWJOYXZCYXI9dCx0aGlzLmVsZW1lbnRSZWY9ZSx0aGlzLl9mb2N1c01vbml0b3I9aSx0aGlzLl9pc0FjdGl2ZT0hMSx0aGlzLnJpcHBsZUNvbmZpZz1ufHx7fSx0aGlzLnRhYkluZGV4PXBhcnNlSW50KG8pfHwwLCJOb29wQW5pbWF0aW9ucyI9PT1hJiYodGhpcy5yaXBwbGVDb25maWcuYW5pbWF0aW9uPXtlbnRlckR1cmF0aW9uOjAsZXhpdER1cmF0aW9uOjB9KX1nZXQgYWN0aXZlKCl7cmV0dXJuIHRoaXMuX2lzQWN0aXZlfXNldCBhY3RpdmUodCl7ZUgodCkhPT10aGlzLl9pc0FjdGl2ZSYmKHRoaXMuX2lzQWN0aXZlPXQsdGhpcy5fdGFiTmF2QmFyLnVwZGF0ZUFjdGl2ZUxpbmsoKSl9Z2V0IHJpcHBsZURpc2FibGVkKCl7cmV0dXJuIHRoaXMuZGlzYWJsZWR8fHRoaXMuZGlzYWJsZVJpcHBsZXx8dGhpcy5fdGFiTmF2QmFyLmRpc2FibGVSaXBwbGV8fCEhdGhpcy5yaXBwbGVDb25maWcuZGlzYWJsZWR9Zm9jdXMoKXt0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuZWxlbWVudFJlZil9bmdPbkRlc3Ryb3koKXt0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5lbGVtZW50UmVmKX1faGFuZGxlRm9jdXMoKXt0aGlzLl90YWJOYXZCYXIuZm9jdXNJbmRleD10aGlzLl90YWJOYXZCYXIuX2l0ZW1zLnRvQXJyYXkoKS5pbmRleE9mKHRoaXMpfX16ai7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8emopKGdmKEFqKSxnZihLaCksZ2YocEwsOCksR2EoInRhYmluZGV4IiksZ2YoZkYpLGdmKGNrLDgpKX0semouybVkaXI9aG8oe3R5cGU6emosaW5wdXRzOnthY3RpdmU6ImFjdGl2ZSJ9LGZlYXR1cmVzOltRcF19KSx6ai5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkFqfSx7dHlwZTpLaH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltwTF19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOiRhLGFyZ3M6WyJ0YWJpbmRleCJdfV19LHt0eXBlOmZGfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W2NrXX1dfV0semoucHJvcERlY29yYXRvcnM9e2FjdGl2ZTpbe3R5cGU6Ul99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih6aixbe3R5cGU6a199XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6QWp9LHt0eXBlOktofSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W3BMXX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6JGEsYXJnczpbInRhYmluZGV4Il19XX0se3R5cGU6ZkZ9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbY2tdfV19XX0pLHthY3RpdmU6W3t0eXBlOlJffV19KTtjbGFzcyBJaiBleHRlbmRzIHpqe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyl7c3VwZXIodCxlLGksYSxyLHMpLHRoaXMuX3RhYkxpbmtSaXBwbGU9bmV3IGRMKHRoaXMsbixlLG8pLHRoaXMuX3RhYkxpbmtSaXBwbGUuc2V0dXBUcmlnZ2VyRXZlbnRzKGUubmF0aXZlRWxlbWVudCl9bmdPbkRlc3Ryb3koKXtzdXBlci5uZ09uRGVzdHJveSgpLHRoaXMuX3RhYkxpbmtSaXBwbGUuX3JlbW92ZVRyaWdnZXJFdmVudHMoKX19SWouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fElqKShnZihUaiksZ2YoS2gpLGdmKG1DKSxnZihjSCksZ2YocEwsOCksR2EoInRhYmluZGV4IiksZ2YoZkYpLGdmKGNrLDgpKX0sSWouybVkaXI9aG8oe3R5cGU6SWosc2VsZWN0b3JzOltbIiIsIm1hdC10YWItbGluayIsIiJdLFsiIiwibWF0VGFiTGluayIsIiJdXSxob3N0QXR0cnM6WzEsIm1hdC10YWItbGluayIsIm1hdC1mb2N1cy1pbmRpY2F0b3IiXSxob3N0VmFyczo3LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZSZigiZm9jdXMiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX2hhbmRsZUZvY3VzKCl9KSksMiZlJiYoeW0oImFyaWEtY3VycmVudCIsbi5hY3RpdmU/InBhZ2UiOm51bGwpKCJhcmlhLWRpc2FibGVkIixuLmRpc2FibGVkKSgidGFiSW5kZXgiLG4udGFiSW5kZXgpLGN1KCJtYXQtdGFiLWRpc2FibGVkIixuLmRpc2FibGVkKSgibWF0LXRhYi1sYWJlbC1hY3RpdmUiLG4uYWN0aXZlKSl9LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIixkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIix0YWJJbmRleDoidGFiSW5kZXgifSxleHBvcnRBczpbIm1hdFRhYkxpbmsiXSxmZWF0dXJlczpbUXBdfSksSWouY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpUan0se3R5cGU6S2h9LHt0eXBlOm1DfSx7dHlwZTpjSH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltwTF19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOiRhLGFyZ3M6WyJ0YWJpbmRleCJdfV19LHt0eXBlOmZGfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W2NrXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihJaixbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJbbWF0LXRhYi1saW5rXSwgW21hdFRhYkxpbmtdIixleHBvcnRBczoibWF0VGFiTGluayIsaW5wdXRzOlsiZGlzYWJsZWQiLCJkaXNhYmxlUmlwcGxlIiwidGFiSW5kZXgiXSxob3N0OntjbGFzczoibWF0LXRhYi1saW5rIG1hdC1mb2N1cy1pbmRpY2F0b3IiLCJbYXR0ci5hcmlhLWN1cnJlbnRdIjonYWN0aXZlID8gInBhZ2UiIDogbnVsbCcsIlthdHRyLmFyaWEtZGlzYWJsZWRdIjoiZGlzYWJsZWQiLCJbYXR0ci50YWJJbmRleF0iOiJ0YWJJbmRleCIsIltjbGFzcy5tYXQtdGFiLWRpc2FibGVkXSI6ImRpc2FibGVkIiwiW2NsYXNzLm1hdC10YWItbGFiZWwtYWN0aXZlXSI6ImFjdGl2ZSIsIihmb2N1cykiOiJfaGFuZGxlRm9jdXMoKSJ9fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6VGp9LHt0eXBlOktofSx7dHlwZTptQ30se3R5cGU6Y0h9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbcExdfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTokYSxhcmdzOlsidGFiaW5kZXgiXX1dfSx7dHlwZTpmRn0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltja119XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBIant9SGouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEhqKX0sSGouybVtb2Q9Zm8oe3R5cGU6SGp9KSxIai7JtWluaj1Ebih7aW1wb3J0czpbW3J4LE5GLGhCLGZMLHdILF9GXSxORl19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEhqLFt7dHlwZTpMXyxhcmdzOlt7aW1wb3J0czpbcngsTkYsaEIsZkwsd0gsX0ZdLGV4cG9ydHM6W05GLFBqLG1qLGdqLFRqLElqLGRqXSxkZWNsYXJhdGlvbnM6W1BqLG1qLGdqLGxqLGtqLFRqLElqLF9qLGJqLEVqLGRqXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKEhqLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bUGosbWosZ2osbGosa2osVGosSWosX2osYmosRWosZGpdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW3J4LE5GLGhCLGZMLHdILF9GXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltORixQaixtaixnaixUaixJaixkal19fSk7Y29uc3QgRmo9WyJ1bmRlcmxpbmUiXSxMaj1bImNvbm5lY3Rpb25Db250YWluZXIiXSxCaj1bImlucHV0Q29udGFpbmVyIl0sVmo9WyJsYWJlbCJdO2Z1bmN0aW9uIGpqKHQsZSl7MSZ0JiYoeGYoMCksQ2YoMSwiZGl2IiwxNCksdmYoMiwiZGl2IiwxNSksdmYoMywiZGl2IiwxNiksdmYoNCwiZGl2IiwxNyksTWYoKSxDZig1LCJkaXYiLDE4KSx2Zig2LCJkaXYiLDE1KSx2Zig3LCJkaXYiLDE2KSx2Zig4LCJkaXYiLDE3KSxNZigpLE9mKCkpfWZ1bmN0aW9uIFVqKHQsZSl7MSZ0JiYoQ2YoMCwiZGl2IiwxOSksRmYoMSwxKSxNZigpKX1mdW5jdGlvbiBXaih0LGUpe2lmKDEmdCYmKHhmKDApLEZmKDEsMiksQ2YoMiwic3BhbiIpLFB1KDMpLE1mKCksT2YoKSksMiZ0KXtjb25zdCB0PXpmKDIpO0RjKDMpLHd1KHQuX2NvbnRyb2wucGxhY2Vob2xkZXIpfX1mdW5jdGlvbiBHaih0LGUpezEmdCYmRmYoMCwzLFsiKm5nU3dpdGNoQ2FzZSIsInRydWUiXSl9ZnVuY3Rpb24gWWoodCxlKXsxJnQmJihDZigwLCJzcGFuIiwyMyksUHUoMSwiICoiKSxNZigpKX1mdW5jdGlvbiBxaih0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO0NmKDAsImxhYmVsIiwyMCwyMSksUmYoImNka09ic2VydmVDb250ZW50IiwoZnVuY3Rpb24gZSgpe1BpKHQpO3JldHVybiB6ZigpLnVwZGF0ZU91dGxpbmVHYXAoKX0pKSxIbSgyLFdqLDQsMSwibmctY29udGFpbmVyIiwxMiksSG0oMyxHaiwxLDAsIm5nLWNvbnRlbnQiLDEyKSxIbSg0LFlqLDIsMCwic3BhbiIsMjIpLE1mKCl9aWYoMiZ0KXtjb25zdCB0PXpmKCk7Y3UoIm1hdC1lbXB0eSIsdC5fY29udHJvbC5lbXB0eSYmIXQuX3Nob3VsZEFsd2F5c0Zsb2F0KCkpKCJtYXQtZm9ybS1maWVsZC1lbXB0eSIsdC5fY29udHJvbC5lbXB0eSYmIXQuX3Nob3VsZEFsd2F5c0Zsb2F0KCkpKCJtYXQtYWNjZW50IiwiYWNjZW50Ij09dC5jb2xvcikoIm1hdC13YXJuIiwid2FybiI9PXQuY29sb3IpLGJmKCJjZGtPYnNlcnZlQ29udGVudERpc2FibGVkIiwib3V0bGluZSIhPXQuYXBwZWFyYW5jZSkoImlkIix0Ll9sYWJlbElkKSgibmdTd2l0Y2giLHQuX2hhc0xhYmVsKCkpLHltKCJmb3IiLHQuX2NvbnRyb2wuaWQpKCJhcmlhLW93bnMiLHQuX2NvbnRyb2wuaWQpLERjKDIpLGJmKCJuZ1N3aXRjaENhc2UiLCExKSxEYygxKSxiZigibmdTd2l0Y2hDYXNlIiwhMCksRGMoMSksYmYoIm5nSWYiLCF0LmhpZGVSZXF1aXJlZE1hcmtlciYmdC5fY29udHJvbC5yZXF1aXJlZCYmIXQuX2NvbnRyb2wuZGlzYWJsZWQpfX1mdW5jdGlvbiBaaih0LGUpezEmdCYmKENmKDAsImRpdiIsMjQpLEZmKDEsNCksTWYoKSl9ZnVuY3Rpb24gWGoodCxlKXtpZigxJnQmJihDZigwLCJkaXYiLDI1LDI2KSx2ZigyLCJzcGFuIiwyNyksTWYoKSksMiZ0KXtjb25zdCB0PXpmKCk7RGMoMiksY3UoIm1hdC1hY2NlbnQiLCJhY2NlbnQiPT10LmNvbG9yKSgibWF0LXdhcm4iLCJ3YXJuIj09dC5jb2xvcil9fWZ1bmN0aW9uIEtqKHQsZSl7aWYoMSZ0JiYoQ2YoMCwiZGl2IiksRmYoMSw1KSxNZigpKSwyJnQpe2JmKCJAdHJhbnNpdGlvbk1lc3NhZ2VzIix6ZigpLl9zdWJzY3JpcHRBbmltYXRpb25TdGF0ZSl9fWZ1bmN0aW9uIEpqKHQsZSl7aWYoMSZ0JiYoQ2YoMCwiZGl2IiwzMSksUHUoMSksTWYoKSksMiZ0KXtjb25zdCB0PXpmKDIpO2JmKCJpZCIsdC5faGludExhYmVsSWQpLERjKDEpLHd1KHQuaGludExhYmVsKX19ZnVuY3Rpb24gUWoodCxlKXtpZigxJnQmJihDZigwLCJkaXYiLDI4KSxIbSgxLEpqLDIsMiwiZGl2IiwyOSksRmYoMiw2KSx2ZigzLCJkaXYiLDMwKSxGZig0LDcpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigpO2JmKCJAdHJhbnNpdGlvbk1lc3NhZ2VzIix0Ll9zdWJzY3JpcHRBbmltYXRpb25TdGF0ZSksRGMoMSksYmYoIm5nSWYiLHQuaGludExhYmVsKX19Y29uc3QgJGo9WyIqIixbWyIiLCJtYXRQcmVmaXgiLCIiXV0sW1sibWF0LXBsYWNlaG9sZGVyIl1dLFtbIm1hdC1sYWJlbCJdXSxbWyIiLCJtYXRTdWZmaXgiLCIiXV0sW1sibWF0LWVycm9yIl1dLFtbIm1hdC1oaW50IiwzLCJhbGlnbiIsImVuZCJdXSxbWyJtYXQtaGludCIsImFsaWduIiwiZW5kIl1dXTtsZXQgdFU9MDtjb25zdCBlVT1uZXcgZXIoIk1hdEVycm9yIik7Y2xhc3MgblV7Y29uc3RydWN0b3IodCxlKXt0aGlzLmlkPSJtYXQtZXJyb3ItIit0VSsrLHR8fGUubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFyaWEtbGl2ZSIsInBvbGl0ZSIpfX1uVS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8blUpKEdhKCJhcmlhLWxpdmUiKSxnZihLaCkpfSxuVS7JtWRpcj1obyh7dHlwZTpuVSxzZWxlY3RvcnM6W1sibWF0LWVycm9yIl1dLGhvc3RBdHRyczpbImFyaWEtYXRvbWljIiwidHJ1ZSIsMSwibWF0LWVycm9yIl0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmeW0oImlkIixuLmlkKX0saW5wdXRzOntpZDoiaWQifSxmZWF0dXJlczpbamgoW3twcm92aWRlOmVVLHVzZUV4aXN0aW5nOm5VfV0pXX0pLG5VLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOiRhLGFyZ3M6WyJhcmlhLWxpdmUiXX1dfSx7dHlwZTpLaH1dLG5VLnByb3BEZWNvcmF0b3JzPXtpZDpbe3R5cGU6Ul99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihuVSxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJtYXQtZXJyb3IiLGhvc3Q6e2NsYXNzOiJtYXQtZXJyb3IiLCJbYXR0ci5pZF0iOiJpZCIsImFyaWEtYXRvbWljIjoidHJ1ZSJ9LHByb3ZpZGVyczpbe3Byb3ZpZGU6ZVUsdXNlRXhpc3Rpbmc6blV9XX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTokYSxhcmdzOlsiYXJpYS1saXZlIl19XX0se3R5cGU6S2h9XX0pLHtpZDpbe3R5cGU6Ul99XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3Qgb1U9e3RyYW5zaXRpb25NZXNzYWdlczp4TygidHJhbnNpdGlvbk1lc3NhZ2VzIixba08oImVudGVyIix3Tyh7b3BhY2l0eToxLHRyYW5zZm9ybToidHJhbnNsYXRlWSgwJSkifSkpLERPKCJ2b2lkID0+IGVudGVyIixbd08oe29wYWNpdHk6MCx0cmFuc2Zvcm06InRyYW5zbGF0ZVkoLTVweCkifSksT08oIjMwMG1zIGN1YmljLWJlemllcigwLjU1LCAwLCAwLjU1LCAwLjIpIildKV0pfTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgaVV7fWZ1bmN0aW9uIGFVKHQpe3JldHVybiBFcnJvcihgQSBoaW50IHdhcyBhbHJlYWR5IGRlY2xhcmVkIGZvciAnYWxpZ249IiR7dH0iJy5gKX1pVS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8aVUpfSxpVS7JtWRpcj1obyh7dHlwZTppVX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoaVUsW3t0eXBlOmtffV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmxldCByVT0wO2NvbnN0IHNVPW5ldyBlcigiTWF0SGludCIpO2NsYXNzIGxVe2NvbnN0cnVjdG9yKCl7dGhpcy5hbGlnbj0ic3RhcnQiLHRoaXMuaWQ9Im1hdC1oaW50LSIrclUrK319bFUuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGxVKX0sbFUuybVkaXI9aG8oe3R5cGU6bFUsc2VsZWN0b3JzOltbIm1hdC1oaW50Il1dLGhvc3RBdHRyczpbMSwibWF0LWhpbnQiXSxob3N0VmFyczo0LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiYoeW0oImlkIixuLmlkKSgiYWxpZ24iLG51bGwpLGN1KCJtYXQtZm9ybS1maWVsZC1oaW50LWVuZCIsImVuZCI9PT1uLmFsaWduKSl9LGlucHV0czp7YWxpZ246ImFsaWduIixpZDoiaWQifSxmZWF0dXJlczpbamgoW3twcm92aWRlOnNVLHVzZUV4aXN0aW5nOmxVfV0pXX0pLGxVLnByb3BEZWNvcmF0b3JzPXthbGlnbjpbe3R5cGU6Ul99XSxpZDpbe3R5cGU6Ul99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihsVSxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJtYXQtaGludCIsaG9zdDp7Y2xhc3M6Im1hdC1oaW50IiwiW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWhpbnQtZW5kXSI6J2FsaWduID09PSAiZW5kIicsIlthdHRyLmlkXSI6ImlkIiwiW2F0dHIuYWxpZ25dIjoibnVsbCJ9LHByb3ZpZGVyczpbe3Byb3ZpZGU6c1UsdXNlRXhpc3Rpbmc6bFV9XX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW119KSx7YWxpZ246W3t0eXBlOlJffV0saWQ6W3t0eXBlOlJffV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIGNVe31jVS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Y1UpfSxjVS7JtWRpcj1obyh7dHlwZTpjVSxzZWxlY3RvcnM6W1sibWF0LWxhYmVsIl1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihjVSxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJtYXQtbGFiZWwifV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgZFV7fWRVLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxkVSl9LGRVLsm1ZGlyPWhvKHt0eXBlOmRVLHNlbGVjdG9yczpbWyJtYXQtcGxhY2Vob2xkZXIiXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGRVLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6Im1hdC1wbGFjZWhvbGRlciJ9XX1dLG51bGwsbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBwVT1uZXcgZXIoIk1hdFByZWZpeCIpO2NsYXNzIG1Ve31tVS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bVUpfSxtVS7JtWRpcj1obyh7dHlwZTptVSxzZWxlY3RvcnM6W1siIiwibWF0UHJlZml4IiwiIl1dLGZlYXR1cmVzOltqaChbe3Byb3ZpZGU6cFUsdXNlRXhpc3Rpbmc6bVV9XSldfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihtVSxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJbbWF0UHJlZml4XSIscHJvdmlkZXJzOlt7cHJvdmlkZTpwVSx1c2VFeGlzdGluZzptVX1dfV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgZlU9bmV3IGVyKCJNYXRTdWZmaXgiKTtjbGFzcyB1VXt9dVUuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHVVKX0sdVUuybVkaXI9aG8oe3R5cGU6dVUsc2VsZWN0b3JzOltbIiIsIm1hdFN1ZmZpeCIsIiJdXSxmZWF0dXJlczpbamgoW3twcm92aWRlOmZVLHVzZUV4aXN0aW5nOnVVfV0pXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIodVUsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW21hdFN1ZmZpeF0iLHByb3ZpZGVyczpbe3Byb3ZpZGU6ZlUsdXNlRXhpc3Rpbmc6dVV9XX1dfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmxldCBnVT0wO2NvbnN0IGhVPUlGKGNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuX2VsZW1lbnRSZWY9dH19LCJwcmltYXJ5IiksYlU9bmV3IGVyKCJNQVRfRk9STV9GSUVMRF9ERUZBVUxUX09QVElPTlMiKSx5VT1uZXcgZXIoIk1hdEZvcm1GaWVsZCIpO2NsYXNzIF9VIGV4dGVuZHMgaFV7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscixzKXtzdXBlcih0KSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj1lLHRoaXMuX2Rpcj1vLHRoaXMuX2RlZmF1bHRzPWksdGhpcy5fcGxhdGZvcm09YSx0aGlzLl9uZ1pvbmU9cix0aGlzLl9vdXRsaW5lR2FwQ2FsY3VsYXRpb25OZWVkZWRJbW1lZGlhdGVseT0hMSx0aGlzLl9vdXRsaW5lR2FwQ2FsY3VsYXRpb25OZWVkZWRPblN0YWJsZT0hMSx0aGlzLl9kZXN0cm95ZWQ9bmV3IEIsdGhpcy5fc2hvd0Fsd2F5c0FuaW1hdGU9ITEsdGhpcy5fc3Vic2NyaXB0QW5pbWF0aW9uU3RhdGU9IiIsdGhpcy5faGludExhYmVsPSIiLHRoaXMuX2hpbnRMYWJlbElkPSJtYXQtaGludC0iK2dVKyssdGhpcy5fbGFiZWxJZD0ibWF0LWZvcm0tZmllbGQtbGFiZWwtIitnVSsrLHRoaXMuZmxvYXRMYWJlbD10aGlzLl9nZXREZWZhdWx0RmxvYXRMYWJlbFN0YXRlKCksdGhpcy5fYW5pbWF0aW9uc0VuYWJsZWQ9Ik5vb3BBbmltYXRpb25zIiE9PXMsdGhpcy5hcHBlYXJhbmNlPWkmJmkuYXBwZWFyYW5jZT9pLmFwcGVhcmFuY2U6ImxlZ2FjeSIsdGhpcy5faGlkZVJlcXVpcmVkTWFya2VyPSEoIWl8fG51bGw9PWkuaGlkZVJlcXVpcmVkTWFya2VyKSYmaS5oaWRlUmVxdWlyZWRNYXJrZXJ9Z2V0IGFwcGVhcmFuY2UoKXtyZXR1cm4gdGhpcy5fYXBwZWFyYW5jZX1zZXQgYXBwZWFyYW5jZSh0KXtjb25zdCBlPXRoaXMuX2FwcGVhcmFuY2U7dGhpcy5fYXBwZWFyYW5jZT10fHx0aGlzLl9kZWZhdWx0cyYmdGhpcy5fZGVmYXVsdHMuYXBwZWFyYW5jZXx8ImxlZ2FjeSIsIm91dGxpbmUiPT09dGhpcy5fYXBwZWFyYW5jZSYmZSE9PXQmJih0aGlzLl9vdXRsaW5lR2FwQ2FsY3VsYXRpb25OZWVkZWRPblN0YWJsZT0hMCl9Z2V0IGhpZGVSZXF1aXJlZE1hcmtlcigpe3JldHVybiB0aGlzLl9oaWRlUmVxdWlyZWRNYXJrZXJ9c2V0IGhpZGVSZXF1aXJlZE1hcmtlcih0KXt0aGlzLl9oaWRlUmVxdWlyZWRNYXJrZXI9ZUgodCl9X3Nob3VsZEFsd2F5c0Zsb2F0KCl7cmV0dXJuImFsd2F5cyI9PT10aGlzLmZsb2F0TGFiZWwmJiF0aGlzLl9zaG93QWx3YXlzQW5pbWF0ZX1fY2FuTGFiZWxGbG9hdCgpe3JldHVybiJuZXZlciIhPT10aGlzLmZsb2F0TGFiZWx9Z2V0IGhpbnRMYWJlbCgpe3JldHVybiB0aGlzLl9oaW50TGFiZWx9c2V0IGhpbnRMYWJlbCh0KXt0aGlzLl9oaW50TGFiZWw9dCx0aGlzLl9wcm9jZXNzSGludHMoKX1nZXQgZmxvYXRMYWJlbCgpe3JldHVybiJsZWdhY3kiIT09dGhpcy5hcHBlYXJhbmNlJiYibmV2ZXIiPT09dGhpcy5fZmxvYXRMYWJlbD8iYXV0byI6dGhpcy5fZmxvYXRMYWJlbH1zZXQgZmxvYXRMYWJlbCh0KXt0IT09dGhpcy5fZmxvYXRMYWJlbCYmKHRoaXMuX2Zsb2F0TGFiZWw9dHx8dGhpcy5fZ2V0RGVmYXVsdEZsb2F0TGFiZWxTdGF0ZSgpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX1nZXQgX2NvbnRyb2woKXtyZXR1cm4gdGhpcy5fZXhwbGljaXRGb3JtRmllbGRDb250cm9sfHx0aGlzLl9jb250cm9sTm9uU3RhdGljfHx0aGlzLl9jb250cm9sU3RhdGljfXNldCBfY29udHJvbCh0KXt0aGlzLl9leHBsaWNpdEZvcm1GaWVsZENvbnRyb2w9dH1nZXRMYWJlbElkKCl7cmV0dXJuIHRoaXMuX2hhc0Zsb2F0aW5nTGFiZWwoKT90aGlzLl9sYWJlbElkOm51bGx9Z2V0Q29ubmVjdGVkT3ZlcmxheU9yaWdpbigpe3JldHVybiB0aGlzLl9jb25uZWN0aW9uQ29udGFpbmVyUmVmfHx0aGlzLl9lbGVtZW50UmVmfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX3ZhbGlkYXRlQ29udHJvbENoaWxkKCk7Y29uc3QgdD10aGlzLl9jb250cm9sO3QuY29udHJvbFR5cGUmJnRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGBtYXQtZm9ybS1maWVsZC10eXBlLSR7dC5jb250cm9sVHlwZX1gKSx0LnN0YXRlQ2hhbmdlcy5waXBlKEJlKG51bGwpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fdmFsaWRhdGVQbGFjZWhvbGRlcnMoKSx0aGlzLl9zeW5jRGVzY3JpYmVkQnlJZHMoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX0pKSx0Lm5nQ29udHJvbCYmdC5uZ0NvbnRyb2wudmFsdWVDaGFuZ2VzJiZ0Lm5nQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShqZSh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCgpPT50aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSkpLHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9Pnt0aGlzLl9uZ1pvbmUub25TdGFibGUucGlwZShqZSh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fb3V0bGluZUdhcENhbGN1bGF0aW9uTmVlZGVkT25TdGFibGUmJnRoaXMudXBkYXRlT3V0bGluZUdhcCgpfSkpfSkpLHBlKHRoaXMuX3ByZWZpeENoaWxkcmVuLmNoYW5nZXMsdGhpcy5fc3VmZml4Q2hpbGRyZW4uY2hhbmdlcykuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX291dGxpbmVHYXBDYWxjdWxhdGlvbk5lZWRlZE9uU3RhYmxlPSEwLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfSkpLHRoaXMuX2hpbnRDaGlsZHJlbi5jaGFuZ2VzLnBpcGUoQmUobnVsbCkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl9wcm9jZXNzSGludHMoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX0pKSx0aGlzLl9lcnJvckNoaWxkcmVuLmNoYW5nZXMucGlwZShCZShudWxsKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX3N5bmNEZXNjcmliZWRCeUlkcygpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfSkpLHRoaXMuX2RpciYmdGhpcy5fZGlyLmNoYW5nZS5waXBlKGplKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKCk9PnsiZnVuY3Rpb24iPT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lP3RoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PntyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT50aGlzLnVwZGF0ZU91dGxpbmVHYXAoKSkpfSkpOnRoaXMudXBkYXRlT3V0bGluZUdhcCgpfSkpfW5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpe3RoaXMuX3ZhbGlkYXRlQ29udHJvbENoaWxkKCksdGhpcy5fb3V0bGluZUdhcENhbGN1bGF0aW9uTmVlZGVkSW1tZWRpYXRlbHkmJnRoaXMudXBkYXRlT3V0bGluZUdhcCgpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX3N1YnNjcmlwdEFuaW1hdGlvblN0YXRlPSJlbnRlciIsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpfW5nT25EZXN0cm95KCl7dGhpcy5fZGVzdHJveWVkLm5leHQoKSx0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKX1fc2hvdWxkRm9yd2FyZCh0KXtjb25zdCBlPXRoaXMuX2NvbnRyb2w/dGhpcy5fY29udHJvbC5uZ0NvbnRyb2w6bnVsbDtyZXR1cm4gZSYmZVt0XX1faGFzUGxhY2Vob2xkZXIoKXtyZXR1cm4hISh0aGlzLl9jb250cm9sJiZ0aGlzLl9jb250cm9sLnBsYWNlaG9sZGVyfHx0aGlzLl9wbGFjZWhvbGRlckNoaWxkKX1faGFzTGFiZWwoKXtyZXR1cm4hKCF0aGlzLl9sYWJlbENoaWxkTm9uU3RhdGljJiYhdGhpcy5fbGFiZWxDaGlsZFN0YXRpYyl9X3Nob3VsZExhYmVsRmxvYXQoKXtyZXR1cm4gdGhpcy5fY2FuTGFiZWxGbG9hdCgpJiYodGhpcy5fY29udHJvbCYmdGhpcy5fY29udHJvbC5zaG91bGRMYWJlbEZsb2F0fHx0aGlzLl9zaG91bGRBbHdheXNGbG9hdCgpKX1faGlkZUNvbnRyb2xQbGFjZWhvbGRlcigpe3JldHVybiJsZWdhY3kiPT09dGhpcy5hcHBlYXJhbmNlJiYhdGhpcy5faGFzTGFiZWwoKXx8dGhpcy5faGFzTGFiZWwoKSYmIXRoaXMuX3Nob3VsZExhYmVsRmxvYXQoKX1faGFzRmxvYXRpbmdMYWJlbCgpe3JldHVybiB0aGlzLl9oYXNMYWJlbCgpfHwibGVnYWN5Ij09PXRoaXMuYXBwZWFyYW5jZSYmdGhpcy5faGFzUGxhY2Vob2xkZXIoKX1fZ2V0RGlzcGxheWVkTWVzc2FnZXMoKXtyZXR1cm4gdGhpcy5fZXJyb3JDaGlsZHJlbiYmdGhpcy5fZXJyb3JDaGlsZHJlbi5sZW5ndGg+MCYmdGhpcy5fY29udHJvbC5lcnJvclN0YXRlPyJlcnJvciI6ImhpbnQifV9hbmltYXRlQW5kTG9ja0xhYmVsKCl7dGhpcy5faGFzRmxvYXRpbmdMYWJlbCgpJiZ0aGlzLl9jYW5MYWJlbEZsb2F0KCkmJih0aGlzLl9hbmltYXRpb25zRW5hYmxlZCYmdGhpcy5fbGFiZWwmJih0aGlzLl9zaG93QWx3YXlzQW5pbWF0ZT0hMCxsZSh0aGlzLl9sYWJlbC5uYXRpdmVFbGVtZW50LCJ0cmFuc2l0aW9uZW5kIikucGlwZSh2ZSgxKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX3Nob3dBbHdheXNBbmltYXRlPSExfSkpKSx0aGlzLmZsb2F0TGFiZWw9ImFsd2F5cyIsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfV92YWxpZGF0ZVBsYWNlaG9sZGVycygpe2lmKHRoaXMuX2NvbnRyb2wucGxhY2Vob2xkZXImJnRoaXMuX3BsYWNlaG9sZGVyQ2hpbGQmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSkKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCnRocm93KGZ1bmN0aW9uIHQoKXtyZXR1cm4gRXJyb3IoIlBsYWNlaG9sZGVyIGF0dHJpYnV0ZSBhbmQgY2hpbGQgZWxlbWVudCB3ZXJlIGJvdGggc3BlY2lmaWVkLiIpfSkoKX1fcHJvY2Vzc0hpbnRzKCl7dGhpcy5fdmFsaWRhdGVIaW50cygpLHRoaXMuX3N5bmNEZXNjcmliZWRCeUlkcygpfV92YWxpZGF0ZUhpbnRzKCl7aWYodGhpcy5faGludENoaWxkcmVuJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpe2xldCB0LGU7dGhpcy5faGludENoaWxkcmVuLmZvckVhY2goKG49PntpZigic3RhcnQiPT09bi5hbGlnbil7aWYodHx8dGhpcy5oaW50TGFiZWwpdGhyb3cgYVUoInN0YXJ0Iik7dD1ufWVsc2UgaWYoImVuZCI9PT1uLmFsaWduKXtpZihlKXRocm93IGFVKCJlbmQiKTtlPW59fSkpfX1fZ2V0RGVmYXVsdEZsb2F0TGFiZWxTdGF0ZSgpe3JldHVybiB0aGlzLl9kZWZhdWx0cyYmdGhpcy5fZGVmYXVsdHMuZmxvYXRMYWJlbHx8ImF1dG8ifV9zeW5jRGVzY3JpYmVkQnlJZHMoKXtpZih0aGlzLl9jb250cm9sKXtsZXQgdD1bXTtpZih0aGlzLl9jb250cm9sLnVzZXJBcmlhRGVzY3JpYmVkQnkmJiJzdHJpbmciPT10eXBlb2YgdGhpcy5fY29udHJvbC51c2VyQXJpYURlc2NyaWJlZEJ5JiZ0LnB1c2goLi4udGhpcy5fY29udHJvbC51c2VyQXJpYURlc2NyaWJlZEJ5LnNwbGl0KCIgIikpLCJoaW50Ij09PXRoaXMuX2dldERpc3BsYXllZE1lc3NhZ2VzKCkpe2NvbnN0IGU9dGhpcy5faGludENoaWxkcmVuP3RoaXMuX2hpbnRDaGlsZHJlbi5maW5kKCh0PT4ic3RhcnQiPT09dC5hbGlnbikpOm51bGwsbj10aGlzLl9oaW50Q2hpbGRyZW4/dGhpcy5faGludENoaWxkcmVuLmZpbmQoKHQ9PiJlbmQiPT09dC5hbGlnbikpOm51bGw7ZT90LnB1c2goZS5pZCk6dGhpcy5faGludExhYmVsJiZ0LnB1c2godGhpcy5faGludExhYmVsSWQpLG4mJnQucHVzaChuLmlkKX1lbHNlIHRoaXMuX2Vycm9yQ2hpbGRyZW4mJnQucHVzaCguLi50aGlzLl9lcnJvckNoaWxkcmVuLm1hcCgodD0+dC5pZCkpKTt0aGlzLl9jb250cm9sLnNldERlc2NyaWJlZEJ5SWRzKHQpfX1fdmFsaWRhdGVDb250cm9sQ2hpbGQoKXtpZighdGhpcy5fY29udHJvbCYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93KGZ1bmN0aW9uIHQoKXtyZXR1cm4gRXJyb3IoIm1hdC1mb3JtLWZpZWxkIG11c3QgY29udGFpbiBhIE1hdEZvcm1GaWVsZENvbnRyb2wuIil9KSgpfXVwZGF0ZU91dGxpbmVHYXAoKXtjb25zdCB0PXRoaXMuX2xhYmVsP3RoaXMuX2xhYmVsLm5hdGl2ZUVsZW1lbnQ6bnVsbDtpZigib3V0bGluZSIhPT10aGlzLmFwcGVhcmFuY2V8fCF0fHwhdC5jaGlsZHJlbi5sZW5ndGh8fCF0LnRleHRDb250ZW50LnRyaW0oKSlyZXR1cm47aWYoIXRoaXMuX3BsYXRmb3JtLmlzQnJvd3NlcilyZXR1cm47aWYoIXRoaXMuX2lzQXR0YWNoZWRUb0RPTSgpKXJldHVybiB2b2lkKHRoaXMuX291dGxpbmVHYXBDYWxjdWxhdGlvbk5lZWRlZEltbWVkaWF0ZWx5PSEwKTtsZXQgZT0wLG49MDtjb25zdCBvPXRoaXMuX2Nvbm5lY3Rpb25Db250YWluZXJSZWYubmF0aXZlRWxlbWVudCxpPW8ucXVlcnlTZWxlY3RvckFsbCgiLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtc3RhcnQiKSxhPW8ucXVlcnlTZWxlY3RvckFsbCgiLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZ2FwIik7aWYodGhpcy5fbGFiZWwmJnRoaXMuX2xhYmVsLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoKXtjb25zdCBpPW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoMD09PWkud2lkdGgmJjA9PT1pLmhlaWdodClyZXR1cm4gdGhpcy5fb3V0bGluZUdhcENhbGN1bGF0aW9uTmVlZGVkT25TdGFibGU9ITAsdm9pZCh0aGlzLl9vdXRsaW5lR2FwQ2FsY3VsYXRpb25OZWVkZWRJbW1lZGlhdGVseT0hMSk7Y29uc3QgYT10aGlzLl9nZXRTdGFydEVuZChpKSxyPXQuY2hpbGRyZW4scz10aGlzLl9nZXRTdGFydEVuZChyWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTtsZXQgbD0wO2ZvcihsZXQgdD0wO3Q8ci5sZW5ndGg7dCsrKWwrPXJbdF0ub2Zmc2V0V2lkdGg7ZT1NYXRoLmFicyhzLWEpLTUsbj1sPjA/Ljc1KmwrMTA6MH1mb3IobGV0IHQ9MDt0PGkubGVuZ3RoO3QrKylpW3RdLnN0eWxlLndpZHRoPWAke2V9cHhgO2ZvcihsZXQgdD0wO3Q8YS5sZW5ndGg7dCsrKWFbdF0uc3R5bGUud2lkdGg9YCR7bn1weGA7dGhpcy5fb3V0bGluZUdhcENhbGN1bGF0aW9uTmVlZGVkT25TdGFibGU9dGhpcy5fb3V0bGluZUdhcENhbGN1bGF0aW9uTmVlZGVkSW1tZWRpYXRlbHk9ITF9X2dldFN0YXJ0RW5kKHQpe3JldHVybiB0aGlzLl9kaXImJiJydGwiPT09dGhpcy5fZGlyLnZhbHVlP3QucmlnaHQ6dC5sZWZ0fV9pc0F0dGFjaGVkVG9ET00oKXtjb25zdCB0PXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtpZih0LmdldFJvb3ROb2RlKXtjb25zdCBlPXQuZ2V0Um9vdE5vZGUoKTtyZXR1cm4gZSYmZSE9PXR9cmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jb250YWlucyh0KX19X1UuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fF9VKShnZihLaCksZ2YoT2IpLGdmKEtoKSxnZih2Riw4KSxnZihiVSw4KSxnZihjSCksZ2YobUMpLGdmKGNrLDgpKX0sX1UuybVjbXA9c28oe3R5cGU6X1Usc2VsZWN0b3JzOltbIm1hdC1mb3JtLWZpZWxkIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uIHQoZSxuLG8pe2lmKDEmZSYmKGp5KG8saVUsNSksankobyxpVSw3KSxqeShvLGNVLDUpLGp5KG8sY1UsNyksankobyxkVSw1KSxqeShvLGVVLDUpLGp5KG8sc1UsNSksankobyxwVSw1KSxqeShvLGZVLDUpKSwyJmUpe2xldCB0O0J5KHQ9VXkoKSkmJihuLl9jb250cm9sTm9uU3RhdGljPXQuZmlyc3QpLEJ5KHQ9VXkoKSkmJihuLl9jb250cm9sU3RhdGljPXQuZmlyc3QpLEJ5KHQ9VXkoKSkmJihuLl9sYWJlbENoaWxkTm9uU3RhdGljPXQuZmlyc3QpLEJ5KHQ9VXkoKSkmJihuLl9sYWJlbENoaWxkU3RhdGljPXQuZmlyc3QpLEJ5KHQ9VXkoKSkmJihuLl9wbGFjZWhvbGRlckNoaWxkPXQuZmlyc3QpLEJ5KHQ9VXkoKSkmJihuLl9lcnJvckNoaWxkcmVuPXQpLEJ5KHQ9VXkoKSkmJihuLl9oaW50Q2hpbGRyZW49dCksQnkodD1VeSgpKSYmKG4uX3ByZWZpeENoaWxkcmVuPXQpLEJ5KHQ9VXkoKSkmJihuLl9zdWZmaXhDaGlsZHJlbj10KX19LHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoVnkoRmosNSksVnkoTGosNyksVnkoQmosNSksVnkoVmosNSkpLDImZSl7bGV0IHQ7QnkodD1VeSgpKSYmKG4udW5kZXJsaW5lUmVmPXQuZmlyc3QpLEJ5KHQ9VXkoKSkmJihuLl9jb25uZWN0aW9uQ29udGFpbmVyUmVmPXQuZmlyc3QpLEJ5KHQ9VXkoKSkmJihuLl9pbnB1dENvbnRhaW5lclJlZj10LmZpcnN0KSxCeSh0PVV5KCkpJiYobi5fbGFiZWw9dC5maXJzdCl9fSxob3N0QXR0cnM6WzEsIm1hdC1mb3JtLWZpZWxkIl0saG9zdFZhcnM6NDAsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJmN1KCJtYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIiwic3RhbmRhcmQiPT1uLmFwcGVhcmFuY2UpKCJtYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwiLCJmaWxsIj09bi5hcHBlYXJhbmNlKSgibWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIiwib3V0bGluZSI9PW4uYXBwZWFyYW5jZSkoIm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IiwibGVnYWN5Ij09bi5hcHBlYXJhbmNlKSgibWF0LWZvcm0tZmllbGQtaW52YWxpZCIsbi5fY29udHJvbC5lcnJvclN0YXRlKSgibWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IixuLl9jYW5MYWJlbEZsb2F0KCkpKCJtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQiLG4uX3Nob3VsZExhYmVsRmxvYXQoKSkoIm1hdC1mb3JtLWZpZWxkLWhhcy1sYWJlbCIsbi5faGFzRmxvYXRpbmdMYWJlbCgpKSgibWF0LWZvcm0tZmllbGQtaGlkZS1wbGFjZWhvbGRlciIsbi5faGlkZUNvbnRyb2xQbGFjZWhvbGRlcigpKSgibWF0LWZvcm0tZmllbGQtZGlzYWJsZWQiLG4uX2NvbnRyb2wuZGlzYWJsZWQpKCJtYXQtZm9ybS1maWVsZC1hdXRvZmlsbGVkIixuLl9jb250cm9sLmF1dG9maWxsZWQpKCJtYXQtZm9jdXNlZCIsbi5fY29udHJvbC5mb2N1c2VkKSgibmctdW50b3VjaGVkIixuLl9zaG91bGRGb3J3YXJkKCJ1bnRvdWNoZWQiKSkoIm5nLXRvdWNoZWQiLG4uX3Nob3VsZEZvcndhcmQoInRvdWNoZWQiKSkoIm5nLXByaXN0aW5lIixuLl9zaG91bGRGb3J3YXJkKCJwcmlzdGluZSIpKSgibmctZGlydHkiLG4uX3Nob3VsZEZvcndhcmQoImRpcnR5IikpKCJuZy12YWxpZCIsbi5fc2hvdWxkRm9yd2FyZCgidmFsaWQiKSkoIm5nLWludmFsaWQiLG4uX3Nob3VsZEZvcndhcmQoImludmFsaWQiKSkoIm5nLXBlbmRpbmciLG4uX3Nob3VsZEZvcndhcmQoInBlbmRpbmciKSkoIl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIiwhbi5fYW5pbWF0aW9uc0VuYWJsZWQpfSxpbnB1dHM6e2NvbG9yOiJjb2xvciIsZmxvYXRMYWJlbDoiZmxvYXRMYWJlbCIsYXBwZWFyYW5jZToiYXBwZWFyYW5jZSIsaGlkZVJlcXVpcmVkTWFya2VyOiJoaWRlUmVxdWlyZWRNYXJrZXIiLGhpbnRMYWJlbDoiaGludExhYmVsIn0sZXhwb3J0QXM6WyJtYXRGb3JtRmllbGQiXSxmZWF0dXJlczpbamgoW3twcm92aWRlOnlVLHVzZUV4aXN0aW5nOl9VfV0pLFFwXSxuZ0NvbnRlbnRTZWxlY3RvcnM6WyIqIiwiW21hdFByZWZpeF0iLCJtYXQtcGxhY2Vob2xkZXIiLCJtYXQtbGFiZWwiLCJbbWF0U3VmZml4XSIsIm1hdC1lcnJvciIsIm1hdC1oaW50Om5vdChbYWxpZ249J2VuZCddKSIsIm1hdC1oaW50W2FsaWduPSdlbmQnXSJdLGRlY2xzOjE1LHZhcnM6OCxjb25zdHM6W1sxLCJtYXQtZm9ybS1maWVsZC13cmFwcGVyIl0sWzEsIm1hdC1mb3JtLWZpZWxkLWZsZXgiLDMsImNsaWNrIl0sWyJjb25uZWN0aW9uQ29udGFpbmVyIiwiIl0sWzQsIm5nSWYiXSxbImNsYXNzIiwibWF0LWZvcm0tZmllbGQtcHJlZml4Iiw0LCJuZ0lmIl0sWzEsIm1hdC1mb3JtLWZpZWxkLWluZml4Il0sWyJpbnB1dENvbnRhaW5lciIsIiJdLFsxLCJtYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIl0sWyJjbGFzcyIsIm1hdC1mb3JtLWZpZWxkLWxhYmVsIiwzLCJjZGtPYnNlcnZlQ29udGVudERpc2FibGVkIiwiaWQiLCJtYXQtZW1wdHkiLCJtYXQtZm9ybS1maWVsZC1lbXB0eSIsIm1hdC1hY2NlbnQiLCJtYXQtd2FybiIsIm5nU3dpdGNoIiwiY2RrT2JzZXJ2ZUNvbnRlbnQiLDQsIm5nSWYiXSxbImNsYXNzIiwibWF0LWZvcm0tZmllbGQtc3VmZml4Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsIm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSIsNCwibmdJZiJdLFsxLCJtYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciIsMywibmdTd2l0Y2giXSxbNCwibmdTd2l0Y2hDYXNlIl0sWyJjbGFzcyIsIm1hdC1mb3JtLWZpZWxkLWhpbnQtd3JhcHBlciIsNCwibmdTd2l0Y2hDYXNlIl0sWzEsIm1hdC1mb3JtLWZpZWxkLW91dGxpbmUiXSxbMSwibWF0LWZvcm0tZmllbGQtb3V0bGluZS1zdGFydCJdLFsxLCJtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWdhcCJdLFsxLCJtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWVuZCJdLFsxLCJtYXQtZm9ybS1maWVsZC1vdXRsaW5lIiwibWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayJdLFsxLCJtYXQtZm9ybS1maWVsZC1wcmVmaXgiXSxbMSwibWF0LWZvcm0tZmllbGQtbGFiZWwiLDMsImNka09ic2VydmVDb250ZW50RGlzYWJsZWQiLCJpZCIsIm5nU3dpdGNoIiwiY2RrT2JzZXJ2ZUNvbnRlbnQiXSxbImxhYmVsIiwiIl0sWyJjbGFzcyIsIm1hdC1wbGFjZWhvbGRlci1yZXF1aXJlZCBtYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxbImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwibWF0LXBsYWNlaG9sZGVyLXJlcXVpcmVkIiwibWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIl0sWzEsIm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCJdLFsxLCJtYXQtZm9ybS1maWVsZC11bmRlcmxpbmUiXSxbInVuZGVybGluZSIsIiJdLFsxLCJtYXQtZm9ybS1maWVsZC1yaXBwbGUiXSxbMSwibWF0LWZvcm0tZmllbGQtaGludC13cmFwcGVyIl0sWyJjbGFzcyIsIm1hdC1oaW50IiwzLCJpZCIsNCwibmdJZiJdLFsxLCJtYXQtZm9ybS1maWVsZC1oaW50LXNwYWNlciJdLFsxLCJtYXQtaGludCIsMywiaWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKEhmKCRqKSxDZigwLCJkaXYiLDApLENmKDEsImRpdiIsMSwyKSxSZigiY2xpY2siLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9jb250cm9sLm9uQ29udGFpbmVyQ2xpY2smJm4uX2NvbnRyb2wub25Db250YWluZXJDbGljayhlKX0pKSxIbSgzLGpqLDksMCwibmctY29udGFpbmVyIiwzKSxIbSg0LFVqLDIsMCwiZGl2Iiw0KSxDZig1LCJkaXYiLDUsNiksRmYoNyksQ2YoOCwic3BhbiIsNyksSG0oOSxxaiw1LDE2LCJsYWJlbCIsOCksTWYoKSxNZigpLEhtKDEwLFpqLDIsMCwiZGl2Iiw5KSxNZigpLEhtKDExLFhqLDMsNCwiZGl2IiwxMCksQ2YoMTIsImRpdiIsMTEpLEhtKDEzLEtqLDIsMSwiZGl2IiwxMiksSG0oMTQsUWosNSwyLCJkaXYiLDEzKSxNZigpLE1mKCkpLDImZSYmKERjKDMpLGJmKCJuZ0lmIiwib3V0bGluZSI9PW4uYXBwZWFyYW5jZSksRGMoMSksYmYoIm5nSWYiLG4uX3ByZWZpeENoaWxkcmVuLmxlbmd0aCksRGMoNSksYmYoIm5nSWYiLG4uX2hhc0Zsb2F0aW5nTGFiZWwoKSksRGMoMSksYmYoIm5nSWYiLG4uX3N1ZmZpeENoaWxkcmVuLmxlbmd0aCksRGMoMSksYmYoIm5nSWYiLCJvdXRsaW5lIiE9bi5hcHBlYXJhbmNlKSxEYygxKSxiZigibmdTd2l0Y2giLG4uX2dldERpc3BsYXllZE1lc3NhZ2VzKCkpLERjKDEpLGJmKCJuZ1N3aXRjaENhc2UiLCJlcnJvciIpLERjKDEpLGJmKCJuZ1N3aXRjaENhc2UiLCJoaW50IikpfSxkaXJlY3RpdmVzOltQdixEdixSdixQSF0sc3R5bGVzOlsiLm1hdC1mb3JtLWZpZWxke2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246bGVmdH1bZGlyPXJ0bF0gLm1hdC1mb3JtLWZpZWxke3RleHQtYWxpZ246cmlnaHR9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1mb3JtLWZpZWxkLWZsZXh7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpiYXNlbGluZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTAwJX0ubWF0LWZvcm0tZmllbGQtcHJlZml4LC5tYXQtZm9ybS1maWVsZC1zdWZmaXh7d2hpdGUtc3BhY2U6bm93cmFwO2ZsZXg6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LWZvcm0tZmllbGQtaW5maXh7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4OmF1dG87bWluLXdpZHRoOjA7d2lkdGg6MTgwcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtaW5maXh7Ym9yZGVyLWltYWdlOmxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQpfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3BvaW50ZXItZXZlbnRzOm5vbmV9W2Rpcj1ydGxdIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVye2xlZnQ6YXV0bztyaWdodDowfS5tYXQtZm9ybS1maWVsZC1sYWJlbHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7Zm9udDppbmhlcml0O3BvaW50ZXItZXZlbnRzOm5vbmU7d2lkdGg6MTAwJTt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztvdmVyZmxvdzpoaWRkZW47dHJhbnNmb3JtLW9yaWdpbjowIDA7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksY29sb3IgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksd2lkdGggNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7ZGlzcGxheTpub25lfVtkaXI9cnRsXSAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDA7bGVmdDphdXRvO3JpZ2h0OjB9Lm1hdC1mb3JtLWZpZWxkLWVtcHR5Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbHtkaXNwbGF5OmJsb2NrfS5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2Rpc3BsYXk6bm9uZX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2Rpc3BsYXk6YmxvY2s7dHJhbnNpdGlvbjpub25lfS5tYXQtaW5wdXQtc2VydmVyOmZvY3VzKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LWlucHV0LXNlcnZlcltwbGFjZWhvbGRlcl06bm90KDpwbGFjZWhvbGRlci1zaG93bikrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2Rpc3BsYXk6bm9uZX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW3BsYWNlaG9sZGVyXTpub3QoOnBsYWNlaG9sZGVyLXNob3duKSsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7ZGlzcGxheTpibG9ja30ubWF0LWZvcm0tZmllbGQtbGFiZWw6bm90KC5tYXQtZm9ybS1maWVsZC1lbXB0eSl7dHJhbnNpdGlvbjpub25lfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zZm9ybTpzY2FsZTNkKDEsIDEuMDAwMSwgMSl9Lm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7d2lkdGg6MTAwJTt0cmFuc2Zvcm0tb3JpZ2luOjUwJTt0cmFuc2Zvcm06c2NhbGVYKDAuNSk7b3BhY2l0eTowO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAzMDBtcyBjdWJpYy1iZXppZXIoMC41NSwgMCwgMC41NSwgMC4yKX0ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSwubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtcmlwcGxle29wYWNpdHk6MTt0cmFuc2Zvcm06bm9uZTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAzMDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxvcGFjaXR5IDEwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJhY2tncm91bmQtY29sb3IgMzAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVye3Bvc2l0aW9uOmFic29sdXRlO2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbn0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXIgLm1hdC1pY29uLC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtaWNvbnt3aWR0aDoxZW07aGVpZ2h0OjFlbTtmb250LXNpemU6aW5oZXJpdDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX0ubWF0LWZvcm0tZmllbGQtaGludC13cmFwcGVye2Rpc3BsYXk6ZmxleH0ubWF0LWZvcm0tZmllbGQtaGludC1zcGFjZXJ7ZmxleDoxIDAgMWVtfS5tYXQtZXJyb3J7ZGlzcGxheTpibG9ja30ubWF0LWZvcm0tZmllbGQtY29udHJvbC13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtZm9ybS1maWVsZC1oaW50LWVuZHtvcmRlcjoxfS5tYXQtZm9ybS1maWVsZC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7dHJhbnNpdGlvbjpub25lfVxuIiwnLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleHtib3JkZXItcmFkaXVzOjRweCA0cHggMCAwO3BhZGRpbmc6Ljc1ZW0gLjc1ZW0gMCAuNzVlbX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLWZsZXh7b3V0bGluZTpzb2xpZCAxcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1mbGV4e291dGxpbmU6ZGFzaGVkIDNweH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7aGVpZ2h0OjFweDt3aWR0aDoxMDAlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtib3R0b206MDtoZWlnaHQ6MnB4fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtcmlwcGxle2hlaWdodDowfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGw6bm90KC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCkgLm1hdC1mb3JtLWZpZWxkLWZsZXg6aG92ZXJ+Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtcmlwcGxle29wYWNpdHk6MTt0cmFuc2Zvcm06bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHkgNjAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZTpub3QoLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkKSAubWF0LWZvcm0tZmllbGQtZmxleDpob3Zlcn4ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7dHJhbnNpdGlvbjpub25lfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVye3BhZGRpbmc6MCAxZW19XG4nLCcubWF0LWlucHV0LWVsZW1lbnR7Zm9udDppbmhlcml0O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6Y3VycmVudENvbG9yO2JvcmRlcjpub25lO291dGxpbmU6bm9uZTtwYWRkaW5nOjA7bWFyZ2luOjA7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTt2ZXJ0aWNhbC1hbGlnbjpib3R0b207dGV4dC1hbGlnbjppbmhlcml0O2JveC1zaXppbmc6Y29udGVudC1ib3h9Lm1hdC1pbnB1dC1lbGVtZW50Oi1tb3otdWktaW52YWxpZHtib3gtc2hhZG93Om5vbmV9Lm1hdC1pbnB1dC1lbGVtZW50OjotbXMtY2xlYXIsLm1hdC1pbnB1dC1lbGVtZW50OjotbXMtcmV2ZWFse2Rpc3BsYXk6bm9uZX0ubWF0LWlucHV0LWVsZW1lbnQsLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLC5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiwubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uLC5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lfS5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1jb250YWN0cy1hdXRvLWZpbGwtYnV0dG9uLC5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1jYXBzLWxvY2staW5kaWNhdG9yLC5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1jcmVkZW50aWFscy1hdXRvLWZpbGwtYnV0dG9ue3Zpc2liaWxpdHk6aGlkZGVufS5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPWRhdGVdLC5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPWRhdGV0aW1lXSwubWF0LWlucHV0LWVsZW1lbnRbdHlwZT1kYXRldGltZS1sb2NhbF0sLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9bW9udGhdLC5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPXdlZWtdLC5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPXRpbWVde2xpbmUtaGVpZ2h0OjF9Lm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9ZGF0ZV06OmFmdGVyLC5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPWRhdGV0aW1lXTo6YWZ0ZXIsLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOjphZnRlciwubWF0LWlucHV0LWVsZW1lbnRbdHlwZT1tb250aF06OmFmdGVyLC5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPXdlZWtdOjphZnRlciwubWF0LWlucHV0LWVsZW1lbnRbdHlwZT10aW1lXTo6YWZ0ZXJ7Y29udGVudDoiICI7d2hpdGUtc3BhY2U6cHJlO3dpZHRoOjFweH0ubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3IsLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWNsZWFyLWJ1dHRvbntmb250LXNpemU6Ljc1ZW19Lm1hdC1pbnB1dC1lbGVtZW50OjpwbGFjZWhvbGRlcnstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7dHJhbnNpdGlvbjpjb2xvciA0MDBtcyAxMzMuMzMzMzMzMzMzM21zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtaW5wdXQtZWxlbWVudDo6cGxhY2Vob2xkZXI6LW1zLWlucHV0LXBsYWNlaG9sZGVyey1tcy11c2VyLXNlbGVjdDp0ZXh0fS5tYXQtaW5wdXQtZWxlbWVudDo6LW1vei1wbGFjZWhvbGRlcnstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7dHJhbnNpdGlvbjpjb2xvciA0MDBtcyAxMzMuMzMzMzMzMzMzM21zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtaW5wdXQtZWxlbWVudDo6LW1vei1wbGFjZWhvbGRlcjotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7LW1zLXVzZXItc2VsZWN0OnRleHR9Lm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTt0cmFuc2l0aW9uOmNvbG9yIDQwMG1zIDEzMy4zMzMzMzMzMzMzbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyOi1tcy1pbnB1dC1wbGFjZWhvbGRlcnstbXMtdXNlci1zZWxlY3Q6dGV4dH0ubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTt0cmFuc2l0aW9uOmNvbG9yIDQwMG1zIDEzMy4zMzMzMzMzMzMzbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1pbnB1dC1lbGVtZW50Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcjotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7LW1zLXVzZXItc2VsZWN0OnRleHR9Lm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIgLm1hdC1pbnB1dC1lbGVtZW50OjpwbGFjZWhvbGRlcntjb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246bm9uZX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1oaWRlLXBsYWNlaG9sZGVyIC5tYXQtaW5wdXQtZWxlbWVudDo6cGxhY2Vob2xkZXJ7b3BhY2l0eTowfS5tYXQtZm9ybS1maWVsZC1oaWRlLXBsYWNlaG9sZGVyIC5tYXQtaW5wdXQtZWxlbWVudDo6LW1vei1wbGFjZWhvbGRlcntjb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246bm9uZX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1oaWRlLXBsYWNlaG9sZGVyIC5tYXQtaW5wdXQtZWxlbWVudDo6LW1vei1wbGFjZWhvbGRlcntvcGFjaXR5OjB9Lm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIgLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIgLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye29wYWNpdHk6MH0ubWF0LWZvcm0tZmllbGQtaGlkZS1wbGFjZWhvbGRlciAubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIgLm1hdC1pbnB1dC1lbGVtZW50Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcntvcGFjaXR5OjB9dGV4dGFyZWEubWF0LWlucHV0LWVsZW1lbnR7cmVzaXplOnZlcnRpY2FsO292ZXJmbG93OmF1dG99dGV4dGFyZWEubWF0LWlucHV0LWVsZW1lbnQuY2RrLXRleHRhcmVhLWF1dG9zaXple3Jlc2l6ZTpub25lfXRleHRhcmVhLm1hdC1pbnB1dC1lbGVtZW50e3BhZGRpbmc6MnB4IDA7bWFyZ2luOi0ycHggMH1zZWxlY3QubWF0LWlucHV0LWVsZW1lbnR7LW1vei1hcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtkaXNwbGF5OmlubGluZS1mbGV4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nLXRvcDoxZW07dG9wOi0xZW07bWFyZ2luLWJvdHRvbTotMWVtfXNlbGVjdC5tYXQtaW5wdXQtZWxlbWVudDo6LW1zLWV4cGFuZHtkaXNwbGF5Om5vbmV9c2VsZWN0Lm1hdC1pbnB1dC1lbGVtZW50OjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfXNlbGVjdC5tYXQtaW5wdXQtZWxlbWVudDpub3QoOmRpc2FibGVkKXtjdXJzb3I6cG9pbnRlcn1zZWxlY3QubWF0LWlucHV0LWVsZW1lbnQ6Oi1tcy12YWx1ZXtjb2xvcjppbmhlcml0O2JhY2tncm91bmQ6bm9uZX0ubWF0LWZvY3VzZWQgLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSBzZWxlY3QubWF0LWlucHV0LWVsZW1lbnQ6Oi1tcy12YWx1ZXtjb2xvcjppbmhlcml0fS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7Y29udGVudDoiIjt3aWR0aDowO2hlaWdodDowO2JvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6NXB4IHNvbGlkO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7cmlnaHQ6MDttYXJnaW4tdG9wOi0yLjVweDtwb2ludGVyLWV2ZW50czpub25lfVtkaXI9cnRsXSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye3JpZ2h0OmF1dG87bGVmdDowfS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtaW5wdXQtZWxlbWVudHtwYWRkaW5nLXJpZ2h0OjE1cHh9W2Rpcj1ydGxdIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtaW5wdXQtZWxlbWVudHtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjE1cHh9Lm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJ7bWF4LXdpZHRoOmNhbGMoMTAwJSAtIDEwcHgpfS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye21hcmdpbi10b3A6LTVweH0ubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcnttYXJnaW4tdG9wOi0xMHB4fVxuJywiLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoMTAwcHgpOy1tcy10cmFuc2Zvcm06bm9uZX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24sLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29ue3dpZHRoOjFlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24tYnV0dG9uLC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbi1idXR0b257Zm9udDppbmhlcml0O3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29uLC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29ue2ZvbnQtc2l6ZTppbmhlcml0fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2hlaWdodDoxcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtoZWlnaHQ6MDtib3JkZXItdG9wOnNvbGlkIDFweH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXt0b3A6MDtoZWlnaHQ6MnB4O292ZXJmbG93OmhpZGRlbn0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtcmlwcGxle2hlaWdodDowO2JvcmRlci10b3A6c29saWQgMnB4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2JhY2tncm91bmQtcG9zaXRpb246MDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7Ym9yZGVyLXRvcC1zdHlsZTpkb3R0ZWQ7Ym9yZGVyLXRvcC13aWR0aDoycHh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWludmFsaWQ6bm90KC5tYXQtZm9jdXNlZCkgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtoZWlnaHQ6MXB4fVxuIiwiLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtd3JhcHBlcnttYXJnaW46LjI1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1mbGV4e3BhZGRpbmc6MCAuNzVlbSAwIC43NWVtO21hcmdpbi10b3A6LTAuMjVlbTtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1wcmVmaXgsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtc3VmZml4e3RvcDouMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5le2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LjI1ZW07bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9pbnRlci1ldmVudHM6bm9uZX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXN0YXJ0LC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZW5ke2JvcmRlcjoxcHggc29saWQgY3VycmVudENvbG9yO21pbi13aWR0aDo1cHh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1zdGFydHtib3JkZXItcmFkaXVzOjVweCAwIDAgNXB4O2JvcmRlci1yaWdodC1zdHlsZTpub25lfVtkaXI9cnRsXSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXN0YXJ0e2JvcmRlci1yaWdodC1zdHlsZTpzb2xpZDtib3JkZXItbGVmdC1zdHlsZTpub25lO2JvcmRlci1yYWRpdXM6MCA1cHggNXB4IDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1lbmR7Ym9yZGVyLXJhZGl1czowIDVweCA1cHggMDtib3JkZXItbGVmdC1zdHlsZTpub25lO2ZsZXgtZ3JvdzoxfVtkaXI9cnRsXSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWVuZHtib3JkZXItbGVmdC1zdHlsZTpzb2xpZDtib3JkZXItcmlnaHQtc3R5bGU6bm9uZTtib3JkZXItcmFkaXVzOjVweCAwIDAgNXB4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZ2Fwe2JvcmRlci1yYWRpdXM6LjAwMDAwMXB4O2JvcmRlcjoxcHggc29saWQgY3VycmVudENvbG9yO2JvcmRlci1sZWZ0LXN0eWxlOm5vbmU7Ym9yZGVyLXJpZ2h0LXN0eWxlOm5vbmV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWdhcHtib3JkZXItdG9wLWNvbG9yOnRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7b3BhY2l0eTowfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtc3RhcnQsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1lbmQsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1nYXB7Ym9yZGVyLXdpZHRoOjJweH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZXtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDEwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2ssLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNre29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7Ym9yZGVyOjNweCBkYXNoZWR9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZTpub3QoLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkKSAubWF0LWZvcm0tZmllbGQtZmxleDpob3ZlciAubWF0LWZvcm0tZmllbGQtb3V0bGluZXtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDYwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmU6bm90KC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCkgLm1hdC1mb3JtLWZpZWxkLWZsZXg6aG92ZXIgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7b3BhY2l0eToxfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVye3BhZGRpbmc6MCAxZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZTpub3QoLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkKSAubWF0LWZvcm0tZmllbGQtZmxleDpob3Zlcn4ubWF0LWZvcm0tZmllbGQtb3V0bGluZSwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtc3RhcnQsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1lbmQsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1nYXB7dHJhbnNpdGlvbjpub25lfVxuIiwiLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1mb3JtLWZpZWxkLWZsZXh7cGFkZGluZy10b3A6Ljc1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtoZWlnaHQ6MXB4fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtoZWlnaHQ6MDtib3JkZXItdG9wOnNvbGlkIDFweH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtcmlwcGxle2JvdHRvbTowO2hlaWdodDoycHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtcmlwcGxle2hlaWdodDowO2JvcmRlci10b3A6c29saWQgMnB4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1wb3NpdGlvbjowO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2JvcmRlci10b3Atc3R5bGU6ZG90dGVkO2JvcmRlci10b3Atd2lkdGg6MnB4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkOm5vdCgubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQpIC5tYXQtZm9ybS1maWVsZC1mbGV4OmhvdmVyfi5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtvcGFjaXR5OjE7dHJhbnNmb3JtOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5IDYwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlOm5vdCgubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQpIC5tYXQtZm9ybS1maWVsZC1mbGV4OmhvdmVyfi5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXt0cmFuc2l0aW9uOm5vbmV9XG4iXSxlbmNhcHN1bGF0aW9uOjIsZGF0YTp7YW5pbWF0aW9uOltvVS50cmFuc2l0aW9uTWVzc2FnZXNdfSxjaGFuZ2VEZXRlY3Rpb246MH0pLF9VLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6S2h9LHt0eXBlOk9ifSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbS2hdfV19LHt0eXBlOnZGLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbYlVdfV19LHt0eXBlOmNIfSx7dHlwZTptQ30se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltja119XX1dLF9VLnByb3BEZWNvcmF0b3JzPXthcHBlYXJhbmNlOlt7dHlwZTpSX31dLGhpZGVSZXF1aXJlZE1hcmtlcjpbe3R5cGU6Ul99XSxoaW50TGFiZWw6W3t0eXBlOlJffV0sZmxvYXRMYWJlbDpbe3R5cGU6Ul99XSx1bmRlcmxpbmVSZWY6W3t0eXBlOmFyLGFyZ3M6WyJ1bmRlcmxpbmUiXX1dLF9jb25uZWN0aW9uQ29udGFpbmVyUmVmOlt7dHlwZTphcixhcmdzOlsiY29ubmVjdGlvbkNvbnRhaW5lciIse3N0YXRpYzohMH1dfV0sX2lucHV0Q29udGFpbmVyUmVmOlt7dHlwZTphcixhcmdzOlsiaW5wdXRDb250YWluZXIiXX1dLF9sYWJlbDpbe3R5cGU6YXIsYXJnczpbImxhYmVsIl19XSxfY29udHJvbE5vblN0YXRpYzpbe3R5cGU6aXIsYXJnczpbaVVdfV0sX2NvbnRyb2xTdGF0aWM6W3t0eXBlOmlyLGFyZ3M6W2lVLHtzdGF0aWM6ITB9XX1dLF9sYWJlbENoaWxkTm9uU3RhdGljOlt7dHlwZTppcixhcmdzOltjVV19XSxfbGFiZWxDaGlsZFN0YXRpYzpbe3R5cGU6aXIsYXJnczpbY1Use3N0YXRpYzohMH1dfV0sX3BsYWNlaG9sZGVyQ2hpbGQ6W3t0eXBlOmlyLGFyZ3M6W2RVXX1dLF9lcnJvckNoaWxkcmVuOlt7dHlwZTpvcixhcmdzOltlVSx7ZGVzY2VuZGFudHM6ITB9XX1dLF9oaW50Q2hpbGRyZW46W3t0eXBlOm9yLGFyZ3M6W3NVLHtkZXNjZW5kYW50czohMH1dfV0sX3ByZWZpeENoaWxkcmVuOlt7dHlwZTpvcixhcmdzOltwVSx7ZGVzY2VuZGFudHM6ITB9XX1dLF9zdWZmaXhDaGlsZHJlbjpbe3R5cGU6b3IsYXJnczpbZlUse2Rlc2NlbmRhbnRzOiEwfV19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihfVSxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJtYXQtZm9ybS1maWVsZCIsZXhwb3J0QXM6Im1hdEZvcm1GaWVsZCIsdGVtcGxhdGU6JzxkaXYgY2xhc3M9Im1hdC1mb3JtLWZpZWxkLXdyYXBwZXIiPlxuICA8ZGl2IGNsYXNzPSJtYXQtZm9ybS1maWVsZC1mbGV4IiAjY29ubmVjdGlvbkNvbnRhaW5lclxuICAgICAgIChjbGljayk9Il9jb250cm9sLm9uQ29udGFpbmVyQ2xpY2sgJiYgX2NvbnRyb2wub25Db250YWluZXJDbGljaygkZXZlbnQpIj5cblxuICAgIFx4M2MhLS0gT3V0bGluZSB1c2VkIGZvciBvdXRsaW5lIGFwcGVhcmFuY2UuIC0tXHgzZVxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9ImFwcGVhcmFuY2UgPT0gXCdvdXRsaW5lXCciPlxuICAgICAgPGRpdiBjbGFzcz0ibWF0LWZvcm0tZmllbGQtb3V0bGluZSI+XG4gICAgICAgIDxkaXYgY2xhc3M9Im1hdC1mb3JtLWZpZWxkLW91dGxpbmUtc3RhcnQiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPSJtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWdhcCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9Im1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZW5kIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz0ibWF0LWZvcm0tZmllbGQtb3V0bGluZSBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIj5cbiAgICAgICAgPGRpdiBjbGFzcz0ibWF0LWZvcm0tZmllbGQtb3V0bGluZS1zdGFydCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9Im1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZ2FwIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz0ibWF0LWZvcm0tZmllbGQtb3V0bGluZS1lbmQiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2IGNsYXNzPSJtYXQtZm9ybS1maWVsZC1wcmVmaXgiICpuZ0lmPSJfcHJlZml4Q2hpbGRyZW4ubGVuZ3RoIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD0iW21hdFByZWZpeF0iPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9Im1hdC1mb3JtLWZpZWxkLWluZml4IiAjaW5wdXRDb250YWluZXI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgICAgIDxzcGFuIGNsYXNzPSJtYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIj5cbiAgICAgICAgXHgzYyEtLSBXZSBhZGQgYXJpYS1vd25zIGFzIGEgd29ya2Fyb3VuZCBmb3IgYW4gaXNzdWUgaW4gSkFXUyAmIE5WREEgd2hlcmUgdGhlIGxhYmVsIGlzblwndFxuICAgICAgICAgICAgIHJlYWQgaWYgaXQgY29tZXMgYmVmb3JlIHRoZSBjb250cm9sIGluIHRoZSBET00uIC0tXHgzZVxuICAgICAgICA8bGFiZWwgY2xhc3M9Im1hdC1mb3JtLWZpZWxkLWxhYmVsIlxuICAgICAgICAgICAgICAgKGNka09ic2VydmVDb250ZW50KT0idXBkYXRlT3V0bGluZUdhcCgpIlxuICAgICAgICAgICAgICAgW2Nka09ic2VydmVDb250ZW50RGlzYWJsZWRdPSJhcHBlYXJhbmNlICE9IFwnb3V0bGluZVwnIlxuICAgICAgICAgICAgICAgW2lkXT0iX2xhYmVsSWQiXG4gICAgICAgICAgICAgICBbYXR0ci5mb3JdPSJfY29udHJvbC5pZCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWEtb3duc109Il9jb250cm9sLmlkIlxuICAgICAgICAgICAgICAgW2NsYXNzLm1hdC1lbXB0eV09Il9jb250cm9sLmVtcHR5ICYmICFfc2hvdWxkQWx3YXlzRmxvYXQoKSJcbiAgICAgICAgICAgICAgIFtjbGFzcy5tYXQtZm9ybS1maWVsZC1lbXB0eV09Il9jb250cm9sLmVtcHR5ICYmICFfc2hvdWxkQWx3YXlzRmxvYXQoKSJcbiAgICAgICAgICAgICAgIFtjbGFzcy5tYXQtYWNjZW50XT0iY29sb3IgPT0gXCdhY2NlbnRcJyJcbiAgICAgICAgICAgICAgIFtjbGFzcy5tYXQtd2Fybl09ImNvbG9yID09IFwnd2FyblwnIlxuICAgICAgICAgICAgICAgI2xhYmVsXG4gICAgICAgICAgICAgICAqbmdJZj0iX2hhc0Zsb2F0aW5nTGFiZWwoKSJcbiAgICAgICAgICAgICAgIFtuZ1N3aXRjaF09Il9oYXNMYWJlbCgpIj5cblxuICAgICAgICAgIFx4M2MhLS0gQGJyZWFraW5nLWNoYW5nZSA4LjAuMCByZW1vdmUgaW4gZmF2b3Igb2YgbWF0LWxhYmVsIGVsZW1lbnQgYW4gcGxhY2Vob2xkZXIgYXR0ci4gLS1ceDNlXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPSJmYWxzZSI+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9Im1hdC1wbGFjZWhvbGRlciI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPHNwYW4+e3tfY29udHJvbC5wbGFjZWhvbGRlcn19PC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSJtYXQtbGFiZWwiICpuZ1N3aXRjaENhc2U9InRydWUiPjwvbmctY29udGVudD5cblxuICAgICAgICAgIFx4M2MhLS0gQGJyZWFraW5nLWNoYW5nZSA4LjAuMCByZW1vdmUgYG1hdC1wbGFjZWhvbGRlci1yZXF1aXJlZGAgY2xhc3MgLS1ceDNlXG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPSJtYXQtcGxhY2Vob2xkZXItcmVxdWlyZWQgbWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIlxuICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiXG4gICAgICAgICAgICAqbmdJZj0iIWhpZGVSZXF1aXJlZE1hcmtlciAmJiBfY29udHJvbC5yZXF1aXJlZCAmJiAhX2NvbnRyb2wuZGlzYWJsZWQiPiYjMzI7Kjwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9Im1hdC1mb3JtLWZpZWxkLXN1ZmZpeCIgKm5nSWY9Il9zdWZmaXhDaGlsZHJlbi5sZW5ndGgiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSJbbWF0U3VmZml4XSI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICBceDNjIS0tIFVuZGVybGluZSB1c2VkIGZvciBsZWdhY3ksIHN0YW5kYXJkLCBhbmQgYm94IGFwcGVhcmFuY2VzLiAtLVx4M2VcbiAgPGRpdiBjbGFzcz0ibWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIiAjdW5kZXJsaW5lXG4gICAgICAgKm5nSWY9ImFwcGVhcmFuY2UgIT0gXCdvdXRsaW5lXCciPlxuICAgIDxzcGFuIGNsYXNzPSJtYXQtZm9ybS1maWVsZC1yaXBwbGUiXG4gICAgICAgICAgW2NsYXNzLm1hdC1hY2NlbnRdPSJjb2xvciA9PSBcJ2FjY2VudFwnIlxuICAgICAgICAgIFtjbGFzcy5tYXQtd2Fybl09ImNvbG9yID09IFwnd2FyblwnIj48L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9Im1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIlxuICAgICAgIFtuZ1N3aXRjaF09Il9nZXREaXNwbGF5ZWRNZXNzYWdlcygpIj5cbiAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9IlwnZXJyb3JcJyIgW0B0cmFuc2l0aW9uTWVzc2FnZXNdPSJfc3Vic2NyaXB0QW5pbWF0aW9uU3RhdGUiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSJtYXQtZXJyb3IiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9Im1hdC1mb3JtLWZpZWxkLWhpbnQtd3JhcHBlciIgKm5nU3dpdGNoQ2FzZT0iXCdoaW50XCciXG4gICAgICBbQHRyYW5zaXRpb25NZXNzYWdlc109Il9zdWJzY3JpcHRBbmltYXRpb25TdGF0ZSI+XG4gICAgICBceDNjIS0tIFRPRE8obW1hbGVyYmEpOiB1c2UgYW4gYWN0dWFsIDxtYXQtaGludD4gb25jZSBhbGwgc2VsZWN0b3JzIGFyZSBzd2l0Y2hlZCB0byBtYXQtKiAtLVx4M2VcbiAgICAgIDxkaXYgKm5nSWY9ImhpbnRMYWJlbCIgW2lkXT0iX2hpbnRMYWJlbElkIiBjbGFzcz0ibWF0LWhpbnQiPnt7aGludExhYmVsfX08L2Rpdj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD0ibWF0LWhpbnQ6bm90KFthbGlnbj1cJ2VuZFwnXSkiPjwvbmctY29udGVudD5cbiAgICAgIDxkaXYgY2xhc3M9Im1hdC1mb3JtLWZpZWxkLWhpbnQtc3BhY2VyIj48L2Rpdj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD0ibWF0LWhpbnRbYWxpZ249XCdlbmRcJ10iPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbicsYW5pbWF0aW9uczpbb1UudHJhbnNpdGlvbk1lc3NhZ2VzXSxob3N0OntjbGFzczoibWF0LWZvcm0tZmllbGQiLCJbY2xhc3MubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZF0iOidhcHBlYXJhbmNlID09ICJzdGFuZGFyZCInLCJbY2xhc3MubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsXSI6J2FwcGVhcmFuY2UgPT0gImZpbGwiJywiW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZV0iOidhcHBlYXJhbmNlID09ICJvdXRsaW5lIicsIltjbGFzcy5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeV0iOidhcHBlYXJhbmNlID09ICJsZWdhY3kiJywiW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWludmFsaWRdIjoiX2NvbnRyb2wuZXJyb3JTdGF0ZSIsIltjbGFzcy5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRdIjoiX2NhbkxhYmVsRmxvYXQoKSIsIltjbGFzcy5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRdIjoiX3Nob3VsZExhYmVsRmxvYXQoKSIsIltjbGFzcy5tYXQtZm9ybS1maWVsZC1oYXMtbGFiZWxdIjoiX2hhc0Zsb2F0aW5nTGFiZWwoKSIsIltjbGFzcy5tYXQtZm9ybS1maWVsZC1oaWRlLXBsYWNlaG9sZGVyXSI6Il9oaWRlQ29udHJvbFBsYWNlaG9sZGVyKCkiLCJbY2xhc3MubWF0LWZvcm0tZmllbGQtZGlzYWJsZWRdIjoiX2NvbnRyb2wuZGlzYWJsZWQiLCJbY2xhc3MubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGxlZF0iOiJfY29udHJvbC5hdXRvZmlsbGVkIiwiW2NsYXNzLm1hdC1mb2N1c2VkXSI6Il9jb250cm9sLmZvY3VzZWQiLCJbY2xhc3MubmctdW50b3VjaGVkXSI6J19zaG91bGRGb3J3YXJkKCJ1bnRvdWNoZWQiKScsIltjbGFzcy5uZy10b3VjaGVkXSI6J19zaG91bGRGb3J3YXJkKCJ0b3VjaGVkIiknLCJbY2xhc3MubmctcHJpc3RpbmVdIjonX3Nob3VsZEZvcndhcmQoInByaXN0aW5lIiknLCJbY2xhc3MubmctZGlydHldIjonX3Nob3VsZEZvcndhcmQoImRpcnR5IiknLCJbY2xhc3MubmctdmFsaWRdIjonX3Nob3VsZEZvcndhcmQoInZhbGlkIiknLCJbY2xhc3MubmctaW52YWxpZF0iOidfc2hvdWxkRm9yd2FyZCgiaW52YWxpZCIpJywiW2NsYXNzLm5nLXBlbmRpbmddIjonX3Nob3VsZEZvcndhcmQoInBlbmRpbmciKScsIltjbGFzcy5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZV0iOiIhX2FuaW1hdGlvbnNFbmFibGVkIn0saW5wdXRzOlsiY29sb3IiXSxlbmNhcHN1bGF0aW9uOlduLk5vbmUsY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaCxwcm92aWRlcnM6W3twcm92aWRlOnlVLHVzZUV4aXN0aW5nOl9VfV0sc3R5bGVzOlsiLm1hdC1mb3JtLWZpZWxke2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246bGVmdH1bZGlyPXJ0bF0gLm1hdC1mb3JtLWZpZWxke3RleHQtYWxpZ246cmlnaHR9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1mb3JtLWZpZWxkLWZsZXh7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpiYXNlbGluZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTAwJX0ubWF0LWZvcm0tZmllbGQtcHJlZml4LC5tYXQtZm9ybS1maWVsZC1zdWZmaXh7d2hpdGUtc3BhY2U6bm93cmFwO2ZsZXg6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LWZvcm0tZmllbGQtaW5maXh7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4OmF1dG87bWluLXdpZHRoOjA7d2lkdGg6MTgwcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtaW5maXh7Ym9yZGVyLWltYWdlOmxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQpfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3BvaW50ZXItZXZlbnRzOm5vbmV9W2Rpcj1ydGxdIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVye2xlZnQ6YXV0bztyaWdodDowfS5tYXQtZm9ybS1maWVsZC1sYWJlbHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7Zm9udDppbmhlcml0O3BvaW50ZXItZXZlbnRzOm5vbmU7d2lkdGg6MTAwJTt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztvdmVyZmxvdzpoaWRkZW47dHJhbnNmb3JtLW9yaWdpbjowIDA7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksY29sb3IgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksd2lkdGggNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7ZGlzcGxheTpub25lfVtkaXI9cnRsXSAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDA7bGVmdDphdXRvO3JpZ2h0OjB9Lm1hdC1mb3JtLWZpZWxkLWVtcHR5Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbHtkaXNwbGF5OmJsb2NrfS5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2Rpc3BsYXk6bm9uZX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2Rpc3BsYXk6YmxvY2s7dHJhbnNpdGlvbjpub25lfS5tYXQtaW5wdXQtc2VydmVyOmZvY3VzKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LWlucHV0LXNlcnZlcltwbGFjZWhvbGRlcl06bm90KDpwbGFjZWhvbGRlci1zaG93bikrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2Rpc3BsYXk6bm9uZX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW3BsYWNlaG9sZGVyXTpub3QoOnBsYWNlaG9sZGVyLXNob3duKSsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7ZGlzcGxheTpibG9ja30ubWF0LWZvcm0tZmllbGQtbGFiZWw6bm90KC5tYXQtZm9ybS1maWVsZC1lbXB0eSl7dHJhbnNpdGlvbjpub25lfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zZm9ybTpzY2FsZTNkKDEsIDEuMDAwMSwgMSl9Lm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7d2lkdGg6MTAwJTt0cmFuc2Zvcm0tb3JpZ2luOjUwJTt0cmFuc2Zvcm06c2NhbGVYKDAuNSk7b3BhY2l0eTowO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAzMDBtcyBjdWJpYy1iZXppZXIoMC41NSwgMCwgMC41NSwgMC4yKX0ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSwubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtcmlwcGxle29wYWNpdHk6MTt0cmFuc2Zvcm06bm9uZTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAzMDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxvcGFjaXR5IDEwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJhY2tncm91bmQtY29sb3IgMzAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVye3Bvc2l0aW9uOmFic29sdXRlO2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbn0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXIgLm1hdC1pY29uLC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtaWNvbnt3aWR0aDoxZW07aGVpZ2h0OjFlbTtmb250LXNpemU6aW5oZXJpdDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX0ubWF0LWZvcm0tZmllbGQtaGludC13cmFwcGVye2Rpc3BsYXk6ZmxleH0ubWF0LWZvcm0tZmllbGQtaGludC1zcGFjZXJ7ZmxleDoxIDAgMWVtfS5tYXQtZXJyb3J7ZGlzcGxheTpibG9ja30ubWF0LWZvcm0tZmllbGQtY29udHJvbC13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtZm9ybS1maWVsZC1oaW50LWVuZHtvcmRlcjoxfS5tYXQtZm9ybS1maWVsZC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7dHJhbnNpdGlvbjpub25lfVxuIiwnLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleHtib3JkZXItcmFkaXVzOjRweCA0cHggMCAwO3BhZGRpbmc6Ljc1ZW0gLjc1ZW0gMCAuNzVlbX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLWZsZXh7b3V0bGluZTpzb2xpZCAxcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1mbGV4e291dGxpbmU6ZGFzaGVkIDNweH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7aGVpZ2h0OjFweDt3aWR0aDoxMDAlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtib3R0b206MDtoZWlnaHQ6MnB4fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtcmlwcGxle2hlaWdodDowfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGw6bm90KC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCkgLm1hdC1mb3JtLWZpZWxkLWZsZXg6aG92ZXJ+Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtcmlwcGxle29wYWNpdHk6MTt0cmFuc2Zvcm06bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHkgNjAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZTpub3QoLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkKSAubWF0LWZvcm0tZmllbGQtZmxleDpob3Zlcn4ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7dHJhbnNpdGlvbjpub25lfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVye3BhZGRpbmc6MCAxZW19XG4nLCcubWF0LWlucHV0LWVsZW1lbnR7Zm9udDppbmhlcml0O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6Y3VycmVudENvbG9yO2JvcmRlcjpub25lO291dGxpbmU6bm9uZTtwYWRkaW5nOjA7bWFyZ2luOjA7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTt2ZXJ0aWNhbC1hbGlnbjpib3R0b207dGV4dC1hbGlnbjppbmhlcml0O2JveC1zaXppbmc6Y29udGVudC1ib3h9Lm1hdC1pbnB1dC1lbGVtZW50Oi1tb3otdWktaW52YWxpZHtib3gtc2hhZG93Om5vbmV9Lm1hdC1pbnB1dC1lbGVtZW50OjotbXMtY2xlYXIsLm1hdC1pbnB1dC1lbGVtZW50OjotbXMtcmV2ZWFse2Rpc3BsYXk6bm9uZX0ubWF0LWlucHV0LWVsZW1lbnQsLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLC5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiwubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uLC5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lfS5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1jb250YWN0cy1hdXRvLWZpbGwtYnV0dG9uLC5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1jYXBzLWxvY2staW5kaWNhdG9yLC5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1jcmVkZW50aWFscy1hdXRvLWZpbGwtYnV0dG9ue3Zpc2liaWxpdHk6aGlkZGVufS5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPWRhdGVdLC5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPWRhdGV0aW1lXSwubWF0LWlucHV0LWVsZW1lbnRbdHlwZT1kYXRldGltZS1sb2NhbF0sLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9bW9udGhdLC5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPXdlZWtdLC5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPXRpbWVde2xpbmUtaGVpZ2h0OjF9Lm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9ZGF0ZV06OmFmdGVyLC5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPWRhdGV0aW1lXTo6YWZ0ZXIsLm1hdC1pbnB1dC1lbGVtZW50W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOjphZnRlciwubWF0LWlucHV0LWVsZW1lbnRbdHlwZT1tb250aF06OmFmdGVyLC5tYXQtaW5wdXQtZWxlbWVudFt0eXBlPXdlZWtdOjphZnRlciwubWF0LWlucHV0LWVsZW1lbnRbdHlwZT10aW1lXTo6YWZ0ZXJ7Y29udGVudDoiICI7d2hpdGUtc3BhY2U6cHJlO3dpZHRoOjFweH0ubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3IsLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWNsZWFyLWJ1dHRvbntmb250LXNpemU6Ljc1ZW19Lm1hdC1pbnB1dC1lbGVtZW50OjpwbGFjZWhvbGRlcnstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7dHJhbnNpdGlvbjpjb2xvciA0MDBtcyAxMzMuMzMzMzMzMzMzM21zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtaW5wdXQtZWxlbWVudDo6cGxhY2Vob2xkZXI6LW1zLWlucHV0LXBsYWNlaG9sZGVyey1tcy11c2VyLXNlbGVjdDp0ZXh0fS5tYXQtaW5wdXQtZWxlbWVudDo6LW1vei1wbGFjZWhvbGRlcnstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7dHJhbnNpdGlvbjpjb2xvciA0MDBtcyAxMzMuMzMzMzMzMzMzM21zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtaW5wdXQtZWxlbWVudDo6LW1vei1wbGFjZWhvbGRlcjotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7LW1zLXVzZXItc2VsZWN0OnRleHR9Lm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTt0cmFuc2l0aW9uOmNvbG9yIDQwMG1zIDEzMy4zMzMzMzMzMzMzbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyOi1tcy1pbnB1dC1wbGFjZWhvbGRlcnstbXMtdXNlci1zZWxlY3Q6dGV4dH0ubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTt0cmFuc2l0aW9uOmNvbG9yIDQwMG1zIDEzMy4zMzMzMzMzMzMzbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1pbnB1dC1lbGVtZW50Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcjotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7LW1zLXVzZXItc2VsZWN0OnRleHR9Lm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIgLm1hdC1pbnB1dC1lbGVtZW50OjpwbGFjZWhvbGRlcntjb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246bm9uZX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1oaWRlLXBsYWNlaG9sZGVyIC5tYXQtaW5wdXQtZWxlbWVudDo6cGxhY2Vob2xkZXJ7b3BhY2l0eTowfS5tYXQtZm9ybS1maWVsZC1oaWRlLXBsYWNlaG9sZGVyIC5tYXQtaW5wdXQtZWxlbWVudDo6LW1vei1wbGFjZWhvbGRlcntjb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246bm9uZX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1oaWRlLXBsYWNlaG9sZGVyIC5tYXQtaW5wdXQtZWxlbWVudDo6LW1vei1wbGFjZWhvbGRlcntvcGFjaXR5OjB9Lm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIgLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIgLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye29wYWNpdHk6MH0ubWF0LWZvcm0tZmllbGQtaGlkZS1wbGFjZWhvbGRlciAubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIgLm1hdC1pbnB1dC1lbGVtZW50Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcntvcGFjaXR5OjB9dGV4dGFyZWEubWF0LWlucHV0LWVsZW1lbnR7cmVzaXplOnZlcnRpY2FsO292ZXJmbG93OmF1dG99dGV4dGFyZWEubWF0LWlucHV0LWVsZW1lbnQuY2RrLXRleHRhcmVhLWF1dG9zaXple3Jlc2l6ZTpub25lfXRleHRhcmVhLm1hdC1pbnB1dC1lbGVtZW50e3BhZGRpbmc6MnB4IDA7bWFyZ2luOi0ycHggMH1zZWxlY3QubWF0LWlucHV0LWVsZW1lbnR7LW1vei1hcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtkaXNwbGF5OmlubGluZS1mbGV4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nLXRvcDoxZW07dG9wOi0xZW07bWFyZ2luLWJvdHRvbTotMWVtfXNlbGVjdC5tYXQtaW5wdXQtZWxlbWVudDo6LW1zLWV4cGFuZHtkaXNwbGF5Om5vbmV9c2VsZWN0Lm1hdC1pbnB1dC1lbGVtZW50OjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfXNlbGVjdC5tYXQtaW5wdXQtZWxlbWVudDpub3QoOmRpc2FibGVkKXtjdXJzb3I6cG9pbnRlcn1zZWxlY3QubWF0LWlucHV0LWVsZW1lbnQ6Oi1tcy12YWx1ZXtjb2xvcjppbmhlcml0O2JhY2tncm91bmQ6bm9uZX0ubWF0LWZvY3VzZWQgLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSBzZWxlY3QubWF0LWlucHV0LWVsZW1lbnQ6Oi1tcy12YWx1ZXtjb2xvcjppbmhlcml0fS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7Y29udGVudDoiIjt3aWR0aDowO2hlaWdodDowO2JvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6NXB4IHNvbGlkO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7cmlnaHQ6MDttYXJnaW4tdG9wOi0yLjVweDtwb2ludGVyLWV2ZW50czpub25lfVtkaXI9cnRsXSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye3JpZ2h0OmF1dG87bGVmdDowfS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtaW5wdXQtZWxlbWVudHtwYWRkaW5nLXJpZ2h0OjE1cHh9W2Rpcj1ydGxdIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtaW5wdXQtZWxlbWVudHtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjE1cHh9Lm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJ7bWF4LXdpZHRoOmNhbGMoMTAwJSAtIDEwcHgpfS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye21hcmdpbi10b3A6LTVweH0ubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcnttYXJnaW4tdG9wOi0xMHB4fVxuJywiLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoMTAwcHgpOy1tcy10cmFuc2Zvcm06bm9uZX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24sLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29ue3dpZHRoOjFlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24tYnV0dG9uLC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbi1idXR0b257Zm9udDppbmhlcml0O3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29uLC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29ue2ZvbnQtc2l6ZTppbmhlcml0fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2hlaWdodDoxcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtoZWlnaHQ6MDtib3JkZXItdG9wOnNvbGlkIDFweH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXt0b3A6MDtoZWlnaHQ6MnB4O292ZXJmbG93OmhpZGRlbn0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtcmlwcGxle2hlaWdodDowO2JvcmRlci10b3A6c29saWQgMnB4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2JhY2tncm91bmQtcG9zaXRpb246MDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7Ym9yZGVyLXRvcC1zdHlsZTpkb3R0ZWQ7Ym9yZGVyLXRvcC13aWR0aDoycHh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWludmFsaWQ6bm90KC5tYXQtZm9jdXNlZCkgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtoZWlnaHQ6MXB4fVxuIiwiLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtd3JhcHBlcnttYXJnaW46LjI1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1mbGV4e3BhZGRpbmc6MCAuNzVlbSAwIC43NWVtO21hcmdpbi10b3A6LTAuMjVlbTtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1wcmVmaXgsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtc3VmZml4e3RvcDouMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5le2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LjI1ZW07bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9pbnRlci1ldmVudHM6bm9uZX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXN0YXJ0LC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZW5ke2JvcmRlcjoxcHggc29saWQgY3VycmVudENvbG9yO21pbi13aWR0aDo1cHh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1zdGFydHtib3JkZXItcmFkaXVzOjVweCAwIDAgNXB4O2JvcmRlci1yaWdodC1zdHlsZTpub25lfVtkaXI9cnRsXSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXN0YXJ0e2JvcmRlci1yaWdodC1zdHlsZTpzb2xpZDtib3JkZXItbGVmdC1zdHlsZTpub25lO2JvcmRlci1yYWRpdXM6MCA1cHggNXB4IDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1lbmR7Ym9yZGVyLXJhZGl1czowIDVweCA1cHggMDtib3JkZXItbGVmdC1zdHlsZTpub25lO2ZsZXgtZ3JvdzoxfVtkaXI9cnRsXSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWVuZHtib3JkZXItbGVmdC1zdHlsZTpzb2xpZDtib3JkZXItcmlnaHQtc3R5bGU6bm9uZTtib3JkZXItcmFkaXVzOjVweCAwIDAgNXB4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZ2Fwe2JvcmRlci1yYWRpdXM6LjAwMDAwMXB4O2JvcmRlcjoxcHggc29saWQgY3VycmVudENvbG9yO2JvcmRlci1sZWZ0LXN0eWxlOm5vbmU7Ym9yZGVyLXJpZ2h0LXN0eWxlOm5vbmV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWdhcHtib3JkZXItdG9wLWNvbG9yOnRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7b3BhY2l0eTowfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtc3RhcnQsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1lbmQsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1nYXB7Ym9yZGVyLXdpZHRoOjJweH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZXtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDEwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2ssLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNre29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7Ym9yZGVyOjNweCBkYXNoZWR9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZTpub3QoLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkKSAubWF0LWZvcm0tZmllbGQtZmxleDpob3ZlciAubWF0LWZvcm0tZmllbGQtb3V0bGluZXtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDYwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmU6bm90KC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCkgLm1hdC1mb3JtLWZpZWxkLWZsZXg6aG92ZXIgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7b3BhY2l0eToxfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVye3BhZGRpbmc6MCAxZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZTpub3QoLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkKSAubWF0LWZvcm0tZmllbGQtZmxleDpob3Zlcn4ubWF0LWZvcm0tZmllbGQtb3V0bGluZSwubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtc3RhcnQsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1lbmQsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1nYXB7dHJhbnNpdGlvbjpub25lfVxuIiwiLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1mb3JtLWZpZWxkLWZsZXh7cGFkZGluZy10b3A6Ljc1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtoZWlnaHQ6MXB4fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtoZWlnaHQ6MDtib3JkZXItdG9wOnNvbGlkIDFweH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtcmlwcGxle2JvdHRvbTowO2hlaWdodDoycHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtcmlwcGxle2hlaWdodDowO2JvcmRlci10b3A6c29saWQgMnB4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1wb3NpdGlvbjowO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2JvcmRlci10b3Atc3R5bGU6ZG90dGVkO2JvcmRlci10b3Atd2lkdGg6MnB4fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkOm5vdCgubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQpIC5tYXQtZm9ybS1maWVsZC1mbGV4OmhvdmVyfi5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXtvcGFjaXR5OjE7dHJhbnNmb3JtOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5IDYwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlOm5vdCgubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQpIC5tYXQtZm9ybS1maWVsZC1mbGV4OmhvdmVyfi5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZXt0cmFuc2l0aW9uOm5vbmV9XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOktofSx7dHlwZTpPYn0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W0toXX1dfSx7dHlwZTp2RixkZWNvcmF0b3JzOlt7dHlwZTpCcn1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W2JVXX1dfSx7dHlwZTpjSH0se3R5cGU6bUN9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbY2tdfV19XX0pLHtmbG9hdExhYmVsOlt7dHlwZTpSX31dLGFwcGVhcmFuY2U6W3t0eXBlOlJffV0saGlkZVJlcXVpcmVkTWFya2VyOlt7dHlwZTpSX31dLGhpbnRMYWJlbDpbe3R5cGU6Ul99XSx1bmRlcmxpbmVSZWY6W3t0eXBlOmFyLGFyZ3M6WyJ1bmRlcmxpbmUiXX1dLF9jb25uZWN0aW9uQ29udGFpbmVyUmVmOlt7dHlwZTphcixhcmdzOlsiY29ubmVjdGlvbkNvbnRhaW5lciIse3N0YXRpYzohMH1dfV0sX2lucHV0Q29udGFpbmVyUmVmOlt7dHlwZTphcixhcmdzOlsiaW5wdXRDb250YWluZXIiXX1dLF9sYWJlbDpbe3R5cGU6YXIsYXJnczpbImxhYmVsIl19XSxfY29udHJvbE5vblN0YXRpYzpbe3R5cGU6aXIsYXJnczpbaVVdfV0sX2NvbnRyb2xTdGF0aWM6W3t0eXBlOmlyLGFyZ3M6W2lVLHtzdGF0aWM6ITB9XX1dLF9sYWJlbENoaWxkTm9uU3RhdGljOlt7dHlwZTppcixhcmdzOltjVV19XSxfbGFiZWxDaGlsZFN0YXRpYzpbe3R5cGU6aXIsYXJnczpbY1Use3N0YXRpYzohMH1dfV0sX3BsYWNlaG9sZGVyQ2hpbGQ6W3t0eXBlOmlyLGFyZ3M6W2RVXX1dLF9lcnJvckNoaWxkcmVuOlt7dHlwZTpvcixhcmdzOltlVSx7ZGVzY2VuZGFudHM6ITB9XX1dLF9oaW50Q2hpbGRyZW46W3t0eXBlOm9yLGFyZ3M6W3NVLHtkZXNjZW5kYW50czohMH1dfV0sX3ByZWZpeENoaWxkcmVuOlt7dHlwZTpvcixhcmdzOltwVSx7ZGVzY2VuZGFudHM6ITB9XX1dLF9zdWZmaXhDaGlsZHJlbjpbe3R5cGU6b3IsYXJnczpbZlUse2Rlc2NlbmRhbnRzOiEwfV19XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgQ1V7fUNVLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxDVSl9LENVLsm1bW9kPWZvKHt0eXBlOkNVfSksQ1UuybVpbmo9RG4oe2ltcG9ydHM6W1tyeCxORix3SF0sTkZdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihDVSxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbblUsX1UsbFUsY1UsZFUsbVUsdVVdLGltcG9ydHM6W3J4LE5GLHdIXSxleHBvcnRzOltORixuVSxfVSxsVSxjVSxkVSxtVSx1VV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhDVSx7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW25VLF9VLGxVLGNVLGRVLG1VLHVVXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltyeCxORix3SF19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bTkYsblUsX1UsbFUsY1UsZFUsbVUsdVVdfX0pOwovKioKICAgICAqIEBsaWNlbnNlIEFuZ3VsYXIgdjEyLjIuMQogICAgICogKGMpIDIwMTAtMjAyMSBHb29nbGUgTExDLiBodHRwczovL2FuZ3VsYXIuaW8vCiAgICAgKiBMaWNlbnNlOiBNSVQKICAgICAqLwpjbGFzcyBNVXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX3JlbmRlcmVyPXQsdGhpcy5fZWxlbWVudFJlZj1lLHRoaXMub25DaGFuZ2U9dD0+e30sdGhpcy5vblRvdWNoZWQ9KCk9Pnt9fXNldFByb3BlcnR5KHQsZSl7dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LHQsZSl9cmVnaXN0ZXJPblRvdWNoZWQodCl7dGhpcy5vblRvdWNoZWQ9dH1yZWdpc3Rlck9uQ2hhbmdlKHQpe3RoaXMub25DaGFuZ2U9dH1zZXREaXNhYmxlZFN0YXRlKHQpe3RoaXMuc2V0UHJvcGVydHkoImRpc2FibGVkIix0KX19TVUuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE1VKShnZigkaCksZ2YoS2gpKX0sTVUuybVkaXI9aG8oe3R5cGU6TVV9KSxNVS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOiRofSx7dHlwZTpLaH1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoTVUsW3t0eXBlOmtffV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOiRofSx7dHlwZTpLaH1dfSksbnVsbCk7Y2xhc3MgdlUgZXh0ZW5kcyBNVXt9dlUuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PVVhKHZVKSkpKG58fHZVKX19KSgpLHZVLsm1ZGlyPWhvKHt0eXBlOnZVLGZlYXR1cmVzOltRcF19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHZVLFt7dHlwZTprX31dLG51bGwsbnVsbCk7Y29uc3QgeFU9bmV3IGVyKCJOZ1ZhbHVlQWNjZXNzb3IiKSxPVT17cHJvdmlkZTp4VSx1c2VFeGlzdGluZzokZSgoKCk9PlBVKSksbXVsdGk6ITB9OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBQVSBleHRlbmRzIHZVe3dyaXRlVmFsdWUodCl7dGhpcy5zZXRQcm9wZXJ0eSgiY2hlY2tlZCIsdCl9fVBVLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1VYShQVSkpKShufHxQVSl9fSkoKSxQVS7JtWRpcj1obyh7dHlwZTpQVSxzZWxlY3RvcnM6W1siaW5wdXQiLCJ0eXBlIiwiY2hlY2tib3giLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbImlucHV0IiwidHlwZSIsImNoZWNrYm94IiwiZm9ybUNvbnRyb2wiLCIiXSxbImlucHV0IiwidHlwZSIsImNoZWNrYm94IiwibmdNb2RlbCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmUmYoImNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25DaGFuZ2UoZS50YXJnZXQuY2hlY2tlZCl9KSkoImJsdXIiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25Ub3VjaGVkKCl9KSl9LGZlYXR1cmVzOltqaChbT1VdKSxRcF19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFBVLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6ImlucHV0W3R5cGU9Y2hlY2tib3hdW2Zvcm1Db250cm9sTmFtZV0saW5wdXRbdHlwZT1jaGVja2JveF1bZm9ybUNvbnRyb2xdLGlucHV0W3R5cGU9Y2hlY2tib3hdW25nTW9kZWxdIixob3N0OnsiKGNoYW5nZSkiOiJvbkNoYW5nZSgkZXZlbnQudGFyZ2V0LmNoZWNrZWQpIiwiKGJsdXIpIjoib25Ub3VjaGVkKCkifSxwcm92aWRlcnM6W09VXX1dfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IHdVPXtwcm92aWRlOnhVLHVzZUV4aXN0aW5nOiRlKCgoKT0+U1UpKSxtdWx0aTohMH07Y29uc3Qga1U9bmV3IGVyKCJDb21wb3NpdGlvbkV2ZW50TW9kZSIpO2NsYXNzIFNVIGV4dGVuZHMgTVV7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKHQsZSksdGhpcy5fY29tcG9zaXRpb25Nb2RlPW4sdGhpcy5fY29tcG9zaW5nPSExLG51bGw9PXRoaXMuX2NvbXBvc2l0aW9uTW9kZSYmKHRoaXMuX2NvbXBvc2l0aW9uTW9kZT0hKGZ1bmN0aW9uIG8oKXtjb25zdCB0PXJNKCk/ck0oKS5nZXRVc2VyQWdlbnQoKToiIjtyZXR1cm4vYW5kcm9pZCAoXGQrKS8udGVzdCh0LnRvTG93ZXJDYXNlKCkpfSkoKSl9d3JpdGVWYWx1ZSh0KXt0aGlzLnNldFByb3BlcnR5KCJ2YWx1ZSIsbnVsbD09dD8iIjp0KX1faGFuZGxlSW5wdXQodCl7KCF0aGlzLl9jb21wb3NpdGlvbk1vZGV8fHRoaXMuX2NvbXBvc2l0aW9uTW9kZSYmIXRoaXMuX2NvbXBvc2luZykmJnRoaXMub25DaGFuZ2UodCl9X2NvbXBvc2l0aW9uU3RhcnQoKXt0aGlzLl9jb21wb3Npbmc9ITB9X2NvbXBvc2l0aW9uRW5kKHQpe3RoaXMuX2NvbXBvc2luZz0hMSx0aGlzLl9jb21wb3NpdGlvbk1vZGUmJnRoaXMub25DaGFuZ2UodCl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gRFUodCl7cmV0dXJuIG51bGw9PXR8fDA9PT10Lmxlbmd0aH1mdW5jdGlvbiBSVSh0KXtyZXR1cm4gbnVsbCE9dCYmIm51bWJlciI9PXR5cGVvZiB0Lmxlbmd0aH1TVS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8U1UpKGdmKCRoKSxnZihLaCksZ2Yoa1UsOCkpfSxTVS7JtWRpcj1obyh7dHlwZTpTVSxzZWxlY3RvcnM6W1siaW5wdXQiLCJmb3JtQ29udHJvbE5hbWUiLCIiLDMsInR5cGUiLCJjaGVja2JveCJdLFsidGV4dGFyZWEiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbImlucHV0IiwiZm9ybUNvbnRyb2wiLCIiLDMsInR5cGUiLCJjaGVja2JveCJdLFsidGV4dGFyZWEiLCJmb3JtQ29udHJvbCIsIiJdLFsiaW5wdXQiLCJuZ01vZGVsIiwiIiwzLCJ0eXBlIiwiY2hlY2tib3giXSxbInRleHRhcmVhIiwibmdNb2RlbCIsIiJdLFsiIiwibmdEZWZhdWx0Q29udHJvbCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmUmYoImlucHV0IiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5faGFuZGxlSW5wdXQoZS50YXJnZXQudmFsdWUpfSkpKCJibHVyIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uVG91Y2hlZCgpfSkpKCJjb21wb3NpdGlvbnN0YXJ0IiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9jb21wb3NpdGlvblN0YXJ0KCl9KSkoImNvbXBvc2l0aW9uZW5kIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5fY29tcG9zaXRpb25FbmQoZS50YXJnZXQudmFsdWUpfSkpfSxmZWF0dXJlczpbamgoW3dVXSksUXBdfSksU1UuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTokaH0se3R5cGU6S2h9LHt0eXBlOkJvb2xlYW4sZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W2tVXX1dfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihTVSxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJpbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdKVtmb3JtQ29udHJvbE5hbWVdLHRleHRhcmVhW2Zvcm1Db250cm9sTmFtZV0saW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSlbZm9ybUNvbnRyb2xdLHRleHRhcmVhW2Zvcm1Db250cm9sXSxpbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdKVtuZ01vZGVsXSx0ZXh0YXJlYVtuZ01vZGVsXSxbbmdEZWZhdWx0Q29udHJvbF0iLGhvc3Q6eyIoaW5wdXQpIjoiJGFueSh0aGlzKS5faGFuZGxlSW5wdXQoJGV2ZW50LnRhcmdldC52YWx1ZSkiLCIoYmx1cikiOiJvblRvdWNoZWQoKSIsIihjb21wb3NpdGlvbnN0YXJ0KSI6IiRhbnkodGhpcykuX2NvbXBvc2l0aW9uU3RhcnQoKSIsIihjb21wb3NpdGlvbmVuZCkiOiIkYW55KHRoaXMpLl9jb21wb3NpdGlvbkVuZCgkZXZlbnQudGFyZ2V0LnZhbHVlKSJ9LHByb3ZpZGVyczpbd1VdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6JGh9LHt0eXBlOktofSx7dHlwZTpCb29sZWFuLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltrVV19XX1dfSksbnVsbCk7Y29uc3QgRVU9bmV3IGVyKCJOZ1ZhbGlkYXRvcnMiKSxBVT1uZXcgZXIoIk5nQXN5bmNWYWxpZGF0b3JzIiksVFU9L14oPz0uezEsMjU0fSQpKD89LnsxLDY0fUApW2EtekEtWjAtOSEjJCUmJyorLz0/Xl9ge3x9fi1dKyg/OlwuW2EtekEtWjAtOSEjJCUmJyorLz0/Xl9ge3x9fi1dKykqQFthLXpBLVowLTldKD86W2EtekEtWjAtOS1dezAsNjF9W2EtekEtWjAtOV0pPyg/OlwuW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KSokLztjbGFzcyBOVXtzdGF0aWMgbWluKHQpe3JldHVybiB6VSh0KX1zdGF0aWMgbWF4KHQpe3JldHVybiBJVSh0KX1zdGF0aWMgcmVxdWlyZWQodCl7cmV0dXJuIEhVKHQpfXN0YXRpYyByZXF1aXJlZFRydWUodCl7cmV0dXJuIEZVKHQpfXN0YXRpYyBlbWFpbCh0KXtyZXR1cm4gTFUodCl9c3RhdGljIG1pbkxlbmd0aCh0KXtyZXR1cm4gQlUodCl9c3RhdGljIG1heExlbmd0aCh0KXtyZXR1cm4gVlUodCl9c3RhdGljIHBhdHRlcm4odCl7cmV0dXJuIGpVKHQpfXN0YXRpYyBudWxsVmFsaWRhdG9yKHQpe3JldHVybiBudWxsfXN0YXRpYyBjb21wb3NlKHQpe3JldHVybiBYVSh0KX1zdGF0aWMgY29tcG9zZUFzeW5jKHQpe3JldHVybiBKVSh0KX19ZnVuY3Rpb24gelUodCl7cmV0dXJuIGU9PntpZihEVShlLnZhbHVlKXx8RFUodCkpcmV0dXJuIG51bGw7Y29uc3Qgbj1wYXJzZUZsb2F0KGUudmFsdWUpO3JldHVybiFpc05hTihuKSYmbjx0P3ttaW46e21pbjp0LGFjdHVhbDplLnZhbHVlfX06bnVsbH19ZnVuY3Rpb24gSVUodCl7cmV0dXJuIGU9PntpZihEVShlLnZhbHVlKXx8RFUodCkpcmV0dXJuIG51bGw7Y29uc3Qgbj1wYXJzZUZsb2F0KGUudmFsdWUpO3JldHVybiFpc05hTihuKSYmbj50P3ttYXg6e21heDp0LGFjdHVhbDplLnZhbHVlfX06bnVsbH19ZnVuY3Rpb24gSFUodCl7cmV0dXJuIERVKHQudmFsdWUpP3tyZXF1aXJlZDohMH06bnVsbH1mdW5jdGlvbiBGVSh0KXtyZXR1cm4hMD09PXQudmFsdWU/bnVsbDp7cmVxdWlyZWQ6ITB9fWZ1bmN0aW9uIExVKHQpe3JldHVybiBEVSh0LnZhbHVlKXx8VFUudGVzdCh0LnZhbHVlKT9udWxsOntlbWFpbDohMH19ZnVuY3Rpb24gQlUodCl7cmV0dXJuIGU9PkRVKGUudmFsdWUpfHwhUlUoZS52YWx1ZSk/bnVsbDplLnZhbHVlLmxlbmd0aDx0P3ttaW5sZW5ndGg6e3JlcXVpcmVkTGVuZ3RoOnQsYWN0dWFsTGVuZ3RoOmUudmFsdWUubGVuZ3RofX06bnVsbH1mdW5jdGlvbiBWVSh0KXtyZXR1cm4gZT0+UlUoZS52YWx1ZSkmJmUudmFsdWUubGVuZ3RoPnQ/e21heGxlbmd0aDp7cmVxdWlyZWRMZW5ndGg6dCxhY3R1YWxMZW5ndGg6ZS52YWx1ZS5sZW5ndGh9fTpudWxsfWZ1bmN0aW9uIGpVKHQpe2lmKCF0KXJldHVybiBVVTtsZXQgZSxuO3JldHVybiJzdHJpbmciPT10eXBlb2YgdD8obj0iIiwiXiIhPT10LmNoYXJBdCgwKSYmKG4rPSJeIiksbis9dCwiJCIhPT10LmNoYXJBdCh0Lmxlbmd0aC0xKSYmKG4rPSIkIiksZT1uZXcgUmVnRXhwKG4pKToobj10LnRvU3RyaW5nKCksZT10KSx0PT57aWYoRFUodC52YWx1ZSkpcmV0dXJuIG51bGw7Y29uc3Qgbz10LnZhbHVlO3JldHVybiBlLnRlc3Qobyk/bnVsbDp7cGF0dGVybjp7cmVxdWlyZWRQYXR0ZXJuOm4sYWN0dWFsVmFsdWU6b319fX1mdW5jdGlvbiBVVSh0KXtyZXR1cm4gbnVsbH1mdW5jdGlvbiBXVSh0KXtyZXR1cm4gbnVsbCE9dH1mdW5jdGlvbiBHVSh0KXtjb25zdCBlPWtmKHQpP1B0KHQpOnQ7aWYoIURmKGUpJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCB2YWxpZGF0b3IgdG8gcmV0dXJuIFByb21pc2Ugb3IgT2JzZXJ2YWJsZS4iKTtyZXR1cm4gZX1mdW5jdGlvbiBZVSh0KXtsZXQgZT17fTtyZXR1cm4gdC5mb3JFYWNoKCh0PT57ZT1udWxsIT10P09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSx0KTplfSkpLDA9PT1PYmplY3Qua2V5cyhlKS5sZW5ndGg/bnVsbDplfWZ1bmN0aW9uIHFVKHQsZSl7cmV0dXJuIGUubWFwKChlPT5lKHQpKSl9ZnVuY3Rpb24gWlUodCl7cmV0dXJuIHQubWFwKCh0PT4oZnVuY3Rpb24gZSh0KXtyZXR1cm4hdC52YWxpZGF0ZX0pKHQpP3Q6ZT0+dC52YWxpZGF0ZShlKSkpfWZ1bmN0aW9uIFhVKHQpe2lmKCF0KXJldHVybiBudWxsO2NvbnN0IGU9dC5maWx0ZXIoV1UpO3JldHVybiAwPT1lLmxlbmd0aD9udWxsOmZ1bmN0aW9uKHQpe3JldHVybiBZVShxVSh0LGUpKX19ZnVuY3Rpb24gS1UodCl7cmV0dXJuIG51bGwhPXQ/WFUoWlUodCkpOm51bGx9ZnVuY3Rpb24gSlUodCl7aWYoIXQpcmV0dXJuIG51bGw7Y29uc3QgZT10LmZpbHRlcihXVSk7cmV0dXJuIDA9PWUubGVuZ3RoP251bGw6ZnVuY3Rpb24odCl7cmV0dXJuIGllKHFVKHQsZSkubWFwKEdVKSkucGlwZShWdChZVSkpfX1mdW5jdGlvbiBRVSh0KXtyZXR1cm4gbnVsbCE9dD9KVShaVSh0KSk6bnVsbH1mdW5jdGlvbiAkVSh0LGUpe3JldHVybiBudWxsPT09dD9bZV06QXJyYXkuaXNBcnJheSh0KT9bLi4udCxlXTpbdCxlXX1mdW5jdGlvbiB0Vyh0KXtyZXR1cm4gdC5fcmF3VmFsaWRhdG9yc31mdW5jdGlvbiBlVyh0KXtyZXR1cm4gdC5fcmF3QXN5bmNWYWxpZGF0b3JzfWZ1bmN0aW9uIG5XKHQpe3JldHVybiB0P0FycmF5LmlzQXJyYXkodCk/dDpbdF06W119ZnVuY3Rpb24gb1codCxlKXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90LmluY2x1ZGVzKGUpOnQ9PT1lfWZ1bmN0aW9uIGlXKHQsZSl7Y29uc3Qgbj1uVyhlKTtyZXR1cm4gblcodCkuZm9yRWFjaCgodD0+e29XKG4sdCl8fG4ucHVzaCh0KX0pKSxufWZ1bmN0aW9uIGFXKHQsZSl7cmV0dXJuIG5XKGUpLmZpbHRlcigoZT0+IW9XKHQsZSkpKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3Mgcld7Y29uc3RydWN0b3IoKXt0aGlzLl9yYXdWYWxpZGF0b3JzPVtdLHRoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycz1bXSx0aGlzLl9vbkRlc3Ryb3lDYWxsYmFja3M9W119Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wudmFsdWU6bnVsbH1nZXQgdmFsaWQoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC52YWxpZDpudWxsfWdldCBpbnZhbGlkKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuaW52YWxpZDpudWxsfWdldCBwZW5kaW5nKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wucGVuZGluZzpudWxsfWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLmRpc2FibGVkOm51bGx9Z2V0IGVuYWJsZWQoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5lbmFibGVkOm51bGx9Z2V0IGVycm9ycygpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLmVycm9yczpudWxsfWdldCBwcmlzdGluZSgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLnByaXN0aW5lOm51bGx9Z2V0IGRpcnR5KCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuZGlydHk6bnVsbH1nZXQgdG91Y2hlZCgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLnRvdWNoZWQ6bnVsbH1nZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuc3RhdHVzOm51bGx9Z2V0IHVudG91Y2hlZCgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLnVudG91Y2hlZDpudWxsfWdldCBzdGF0dXNDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlczpudWxsfWdldCB2YWx1ZUNoYW5nZXMoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC52YWx1ZUNoYW5nZXM6bnVsbH1nZXQgcGF0aCgpe3JldHVybiBudWxsfV9zZXRWYWxpZGF0b3JzKHQpe3RoaXMuX3Jhd1ZhbGlkYXRvcnM9dHx8W10sdGhpcy5fY29tcG9zZWRWYWxpZGF0b3JGbj1LVSh0aGlzLl9yYXdWYWxpZGF0b3JzKX1fc2V0QXN5bmNWYWxpZGF0b3JzKHQpe3RoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycz10fHxbXSx0aGlzLl9jb21wb3NlZEFzeW5jVmFsaWRhdG9yRm49UVUodGhpcy5fcmF3QXN5bmNWYWxpZGF0b3JzKX1nZXQgdmFsaWRhdG9yKCl7cmV0dXJuIHRoaXMuX2NvbXBvc2VkVmFsaWRhdG9yRm58fG51bGx9Z2V0IGFzeW5jVmFsaWRhdG9yKCl7cmV0dXJuIHRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbnx8bnVsbH1fcmVnaXN0ZXJPbkRlc3Ryb3kodCl7dGhpcy5fb25EZXN0cm95Q2FsbGJhY2tzLnB1c2godCl9X2ludm9rZU9uRGVzdHJveUNhbGxiYWNrcygpe3RoaXMuX29uRGVzdHJveUNhbGxiYWNrcy5mb3JFYWNoKCh0PT50KCkpKSx0aGlzLl9vbkRlc3Ryb3lDYWxsYmFja3M9W119cmVzZXQodCl7dGhpcy5jb250cm9sJiZ0aGlzLmNvbnRyb2wucmVzZXQodCl9aGFzRXJyb3IodCxlKXtyZXR1cm4hIXRoaXMuY29udHJvbCYmdGhpcy5jb250cm9sLmhhc0Vycm9yKHQsZSl9Z2V0RXJyb3IodCxlKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5nZXRFcnJvcih0LGUpOm51bGx9fXJXLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxyVyl9LHJXLsm1ZGlyPWhvKHt0eXBlOnJXfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBzVyBleHRlbmRzIHJXe2dldCBmb3JtRGlyZWN0aXZlKCl7cmV0dXJuIG51bGx9Z2V0IHBhdGgoKXtyZXR1cm4gbnVsbH19c1cuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PVVhKHNXKSkpKG58fHNXKX19KSgpLHNXLsm1ZGlyPWhvKHt0eXBlOnNXLGZlYXR1cmVzOltRcF19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIGxXIGV4dGVuZHMgcld7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3BhcmVudD1udWxsLHRoaXMubmFtZT1udWxsLHRoaXMudmFsdWVBY2Nlc3Nvcj1udWxsfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgY1d7Y29uc3RydWN0b3IodCl7dGhpcy5fY2Q9dH1pcyh0KXt2YXIgZSxuLG87cmV0dXJuInN1Ym1pdHRlZCI9PT10PyEhKG51bGw9PT0oZT10aGlzLl9jZCl8fHZvaWQgMD09PWU/dm9pZCAwOmUuc3VibWl0dGVkKTohIShudWxsPT09KG89bnVsbD09PShuPXRoaXMuX2NkKXx8dm9pZCAwPT09bj92b2lkIDA6bi5jb250cm9sKXx8dm9pZCAwPT09bz92b2lkIDA6b1t0XSl9fWNvbnN0IGRXPXsiW2NsYXNzLm5nLXVudG91Y2hlZF0iOidpcygidW50b3VjaGVkIiknLCJbY2xhc3MubmctdG91Y2hlZF0iOidpcygidG91Y2hlZCIpJywiW2NsYXNzLm5nLXByaXN0aW5lXSI6J2lzKCJwcmlzdGluZSIpJywiW2NsYXNzLm5nLWRpcnR5XSI6J2lzKCJkaXJ0eSIpJywiW2NsYXNzLm5nLXZhbGlkXSI6J2lzKCJ2YWxpZCIpJywiW2NsYXNzLm5nLWludmFsaWRdIjonaXMoImludmFsaWQiKScsIltjbGFzcy5uZy1wZW5kaW5nXSI6J2lzKCJwZW5kaW5nIiknfSxwVz17IltjbGFzcy5uZy11bnRvdWNoZWRdIjonaXMoInVudG91Y2hlZCIpJywiW2NsYXNzLm5nLXRvdWNoZWRdIjonaXMoInRvdWNoZWQiKScsIltjbGFzcy5uZy1wcmlzdGluZV0iOidpcygicHJpc3RpbmUiKScsIltjbGFzcy5uZy1kaXJ0eV0iOidpcygiZGlydHkiKScsIltjbGFzcy5uZy12YWxpZF0iOidpcygidmFsaWQiKScsIltjbGFzcy5uZy1pbnZhbGlkXSI6J2lzKCJpbnZhbGlkIiknLCJbY2xhc3MubmctcGVuZGluZ10iOidpcygicGVuZGluZyIpJywiW2NsYXNzLm5nLXN1Ym1pdHRlZF0iOidpcygic3VibWl0dGVkIiknfTtjbGFzcyBtVyBleHRlbmRzIGNXe2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfX1tVy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bVcpKGdmKGxXLDIpKX0sbVcuybVkaXI9aG8oe3R5cGU6bVcsc2VsZWN0b3JzOltbIiIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiIiwibmdNb2RlbCIsIiJdLFsiIiwiZm9ybUNvbnRyb2wiLCIiXV0saG9zdFZhcnM6MTQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJmN1KCJuZy11bnRvdWNoZWQiLG4uaXMoInVudG91Y2hlZCIpKSgibmctdG91Y2hlZCIsbi5pcygidG91Y2hlZCIpKSgibmctcHJpc3RpbmUiLG4uaXMoInByaXN0aW5lIikpKCJuZy1kaXJ0eSIsbi5pcygiZGlydHkiKSkoIm5nLXZhbGlkIixuLmlzKCJ2YWxpZCIpKSgibmctaW52YWxpZCIsbi5pcygiaW52YWxpZCIpKSgibmctcGVuZGluZyIsbi5pcygicGVuZGluZyIpKX0sZmVhdHVyZXM6W1FwXX0pLG1XLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6bFcsZGVjb3JhdG9yczpbe3R5cGU6VnJ9XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIobVcsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW2Zvcm1Db250cm9sTmFtZV0sW25nTW9kZWxdLFtmb3JtQ29udHJvbF0iLGhvc3Q6ZFd9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpsVyxkZWNvcmF0b3JzOlt7dHlwZTpWcn1dfV19KSxudWxsKTtjbGFzcyBmVyBleHRlbmRzIGNXe2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfX1mVy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ZlcpKGdmKHNXLDEwKSl9LGZXLsm1ZGlyPWhvKHt0eXBlOmZXLHNlbGVjdG9yczpbWyIiLCJmb3JtR3JvdXBOYW1lIiwiIl0sWyIiLCJmb3JtQXJyYXlOYW1lIiwiIl0sWyIiLCJuZ01vZGVsR3JvdXAiLCIiXSxbIiIsImZvcm1Hcm91cCIsIiJdLFsiZm9ybSIsMywibmdOb0Zvcm0iLCIiXSxbIiIsIm5nRm9ybSIsIiJdXSxob3N0VmFyczoxNixob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmY3UoIm5nLXVudG91Y2hlZCIsbi5pcygidW50b3VjaGVkIikpKCJuZy10b3VjaGVkIixuLmlzKCJ0b3VjaGVkIikpKCJuZy1wcmlzdGluZSIsbi5pcygicHJpc3RpbmUiKSkoIm5nLWRpcnR5IixuLmlzKCJkaXJ0eSIpKSgibmctdmFsaWQiLG4uaXMoInZhbGlkIikpKCJuZy1pbnZhbGlkIixuLmlzKCJpbnZhbGlkIikpKCJuZy1wZW5kaW5nIixuLmlzKCJwZW5kaW5nIikpKCJuZy1zdWJtaXR0ZWQiLG4uaXMoInN1Ym1pdHRlZCIpKX0sZmVhdHVyZXM6W1FwXX0pLGZXLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6c1csZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGZXLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6Iltmb3JtR3JvdXBOYW1lXSxbZm9ybUFycmF5TmFtZV0sW25nTW9kZWxHcm91cF0sW2Zvcm1Hcm91cF0sZm9ybTpub3QoW25nTm9Gb3JtXSksW25nRm9ybV0iLGhvc3Q6cFd9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpzVyxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6VnJ9XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCB1Vz0nXG4gICAgPGRpdiBbZm9ybUdyb3VwXT0ibXlHcm91cCI+XG4gICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPSJmaXJzdE5hbWUiPlxuICAgIDwvZGl2PlxuXG4gICAgSW4geW91ciBjbGFzczpcblxuICAgIHRoaXMubXlHcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgIGZpcnN0TmFtZTogbmV3IEZvcm1Db250cm9sKClcbiAgICB9KTsnLGdXPSdcbiAgICA8ZGl2IFtmb3JtR3JvdXBdPSJteUdyb3VwIj5cbiAgICAgICA8ZGl2IGZvcm1Hcm91cE5hbWU9InBlcnNvbiI+XG4gICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT0iZmlyc3ROYW1lIj5cbiAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIEluIHlvdXIgY2xhc3M6XG5cbiAgICB0aGlzLm15R3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICBwZXJzb246IG5ldyBGb3JtR3JvdXAoeyBmaXJzdE5hbWU6IG5ldyBGb3JtQ29udHJvbCgpIH0pXG4gICAgfSk7JyxoVz0nXG4gICAgPGRpdiBbZm9ybUdyb3VwXT0ibXlHcm91cCI+XG4gICAgICA8ZGl2IGZvcm1BcnJheU5hbWU9ImNpdGllcyI+XG4gICAgICAgIDxkaXYgKm5nRm9yPSJsZXQgY2l0eSBvZiBjaXR5QXJyYXkuY29udHJvbHM7IGluZGV4IGFzIGkiPlxuICAgICAgICAgIDxpbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT0iaSI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICBJbiB5b3VyIGNsYXNzOlxuXG4gICAgdGhpcy5jaXR5QXJyYXkgPSBuZXcgRm9ybUFycmF5KFtuZXcgRm9ybUNvbnRyb2woXCdTRlwnKV0pO1xuICAgIHRoaXMubXlHcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgY2l0aWVzOiB0aGlzLmNpdHlBcnJheVxuICAgIH0pOycsYlc9J1xuICAgIDxmb3JtPlxuICAgICAgIDxkaXYgbmdNb2RlbEdyb3VwPSJwZXJzb24iPlxuICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT0icGVyc29uLm5hbWUiIG5hbWU9ImZpcnN0TmFtZSI+XG4gICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPicseVc9J1xuICAgIDxkaXYgW2Zvcm1Hcm91cF09Im15R3JvdXAiPlxuICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9ImZpcnN0TmFtZSI+XG4gICAgICAgPGlucHV0IFsobmdNb2RlbCldPSJzaG93TW9yZUNvbnRyb2xzIiBbbmdNb2RlbE9wdGlvbnNdPSJ7c3RhbmRhbG9uZTogdHJ1ZX0iPlxuICAgIDwvZGl2PlxuICAnOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBfV3tzdGF0aWMgY29udHJvbFBhcmVudEV4Y2VwdGlvbigpe3Rocm93IG5ldyBFcnJvcihgZm9ybUNvbnRyb2xOYW1lIG11c3QgYmUgdXNlZCB3aXRoIGEgcGFyZW50IGZvcm1Hcm91cCBkaXJlY3RpdmUuICBZb3UnbGwgd2FudCB0byBhZGQgYSBmb3JtR3JvdXBcbiAgICAgICBkaXJlY3RpdmUgYW5kIHBhc3MgaXQgYW4gZXhpc3RpbmcgRm9ybUdyb3VwIGluc3RhbmNlICh5b3UgY2FuIGNyZWF0ZSBvbmUgaW4geW91ciBjbGFzcykuXG5cbiAgICAgIEV4YW1wbGU6XG5cbiAgICAgICR7dVd9YCl9c3RhdGljIG5nTW9kZWxHcm91cEV4Y2VwdGlvbigpe3Rocm93IG5ldyBFcnJvcihgZm9ybUNvbnRyb2xOYW1lIGNhbm5vdCBiZSB1c2VkIHdpdGggYW4gbmdNb2RlbEdyb3VwIHBhcmVudC4gSXQgaXMgb25seSBjb21wYXRpYmxlIHdpdGggcGFyZW50c1xuICAgICAgIHRoYXQgYWxzbyBoYXZlIGEgImZvcm0iIHByZWZpeDogZm9ybUdyb3VwTmFtZSwgZm9ybUFycmF5TmFtZSwgb3IgZm9ybUdyb3VwLlxuXG4gICAgICAgT3B0aW9uIDE6ICBVcGRhdGUgdGhlIHBhcmVudCB0byBiZSBmb3JtR3JvdXBOYW1lIChyZWFjdGl2ZSBmb3JtIHN0cmF0ZWd5KVxuXG4gICAgICAgICR7Z1d9XG5cbiAgICAgICAgT3B0aW9uIDI6IFVzZSBuZ01vZGVsIGluc3RlYWQgb2YgZm9ybUNvbnRyb2xOYW1lICh0ZW1wbGF0ZS1kcml2ZW4gc3RyYXRlZ3kpXG5cbiAgICAgICAgJHtiV31gKX1zdGF0aWMgbWlzc2luZ0Zvcm1FeGNlcHRpb24oKXt0aHJvdyBuZXcgRXJyb3IoYGZvcm1Hcm91cCBleHBlY3RzIGEgRm9ybUdyb3VwIGluc3RhbmNlLiBQbGVhc2UgcGFzcyBvbmUgaW4uXG5cbiAgICAgICBFeGFtcGxlOlxuXG4gICAgICAgJHt1V31gKX1zdGF0aWMgZ3JvdXBQYXJlbnRFeGNlcHRpb24oKXt0aHJvdyBuZXcgRXJyb3IoYGZvcm1Hcm91cE5hbWUgbXVzdCBiZSB1c2VkIHdpdGggYSBwYXJlbnQgZm9ybUdyb3VwIGRpcmVjdGl2ZS4gIFlvdSdsbCB3YW50IHRvIGFkZCBhIGZvcm1Hcm91cFxuICAgICAgZGlyZWN0aXZlIGFuZCBwYXNzIGl0IGFuIGV4aXN0aW5nIEZvcm1Hcm91cCBpbnN0YW5jZSAoeW91IGNhbiBjcmVhdGUgb25lIGluIHlvdXIgY2xhc3MpLlxuXG4gICAgICBFeGFtcGxlOlxuXG4gICAgICAke2dXfWApfXN0YXRpYyBhcnJheVBhcmVudEV4Y2VwdGlvbigpe3Rocm93IG5ldyBFcnJvcihgZm9ybUFycmF5TmFtZSBtdXN0IGJlIHVzZWQgd2l0aCBhIHBhcmVudCBmb3JtR3JvdXAgZGlyZWN0aXZlLiAgWW91J2xsIHdhbnQgdG8gYWRkIGEgZm9ybUdyb3VwXG4gICAgICAgZGlyZWN0aXZlIGFuZCBwYXNzIGl0IGFuIGV4aXN0aW5nIEZvcm1Hcm91cCBpbnN0YW5jZSAoeW91IGNhbiBjcmVhdGUgb25lIGluIHlvdXIgY2xhc3MpLlxuXG4gICAgICAgIEV4YW1wbGU6XG5cbiAgICAgICAgJHtoV31gKX1zdGF0aWMgZGlzYWJsZWRBdHRyV2FybmluZygpe2NvbnNvbGUud2FybigiXG4gICAgICBJdCBsb29rcyBsaWtlIHlvdSdyZSB1c2luZyB0aGUgZGlzYWJsZWQgYXR0cmlidXRlIHdpdGggYSByZWFjdGl2ZSBmb3JtIGRpcmVjdGl2ZS4gSWYgeW91IHNldCBkaXNhYmxlZCB0byB0cnVlXG4gICAgICB3aGVuIHlvdSBzZXQgdXAgdGhpcyBjb250cm9sIGluIHlvdXIgY29tcG9uZW50IGNsYXNzLCB0aGUgZGlzYWJsZWQgYXR0cmlidXRlIHdpbGwgYWN0dWFsbHkgYmUgc2V0IGluIHRoZSBET00gZm9yXG4gICAgICB5b3UuIFdlIHJlY29tbWVuZCB1c2luZyB0aGlzIGFwcHJvYWNoIHRvIGF2b2lkICdjaGFuZ2VkIGFmdGVyIGNoZWNrZWQnIGVycm9ycy5cblxuICAgICAgRXhhbXBsZTpcbiAgICAgIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgZmlyc3Q6IG5ldyBGb3JtQ29udHJvbCh7dmFsdWU6ICdOYW5jeScsIGRpc2FibGVkOiB0cnVlfSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIGxhc3Q6IG5ldyBGb3JtQ29udHJvbCgnRHJldycsIFZhbGlkYXRvcnMucmVxdWlyZWQpXG4gICAgICB9KTtcbiAgICAiKX1zdGF0aWMgbmdNb2RlbFdhcm5pbmcodCl7Y29uc29sZS53YXJuKGBcbiAgICBJdCBsb29rcyBsaWtlIHlvdSdyZSB1c2luZyBuZ01vZGVsIG9uIHRoZSBzYW1lIGZvcm0gZmllbGQgYXMgJHt0fS5cbiAgICBTdXBwb3J0IGZvciB1c2luZyB0aGUgbmdNb2RlbCBpbnB1dCBwcm9wZXJ0eSBhbmQgbmdNb2RlbENoYW5nZSBldmVudCB3aXRoXG4gICAgcmVhY3RpdmUgZm9ybSBkaXJlY3RpdmVzIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gQW5ndWxhciB2NiBhbmQgd2lsbCBiZSByZW1vdmVkXG4gICAgaW4gYSBmdXR1cmUgdmVyc2lvbiBvZiBBbmd1bGFyLlxuXG4gICAgRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcywgc2VlIG91ciBBUEkgZG9jcyBoZXJlOlxuICAgIGh0dHBzOi8vYW5ndWxhci5pby9hcGkvZm9ybXMvJHsiZm9ybUNvbnRyb2wiPT09dD8iRm9ybUNvbnRyb2xEaXJlY3RpdmUiOiJGb3JtQ29udHJvbE5hbWUifSN1c2Utd2l0aC1uZ21vZGVsXG4gICAgYCl9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBDVyh0LGUpe3JldHVyblsuLi5lLnBhdGgsdF19ZnVuY3Rpb24gTVcodCxlKXsoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJih0fHxTVyhlLCJDYW5ub3QgZmluZCBjb250cm9sIHdpdGgiKSxlLnZhbHVlQWNjZXNzb3J8fFNXKGUsIk5vIHZhbHVlIGFjY2Vzc29yIGZvciBmb3JtIGNvbnRyb2wgd2l0aCIpKSxPVyh0LGUpLGUudmFsdWVBY2Nlc3Nvci53cml0ZVZhbHVlKHQudmFsdWUpLChmdW5jdGlvbiBuKHQsZSl7ZS52YWx1ZUFjY2Vzc29yLnJlZ2lzdGVyT25DaGFuZ2UoKG49Pnt0Ll9wZW5kaW5nVmFsdWU9bix0Ll9wZW5kaW5nQ2hhbmdlPSEwLHQuX3BlbmRpbmdEaXJ0eT0hMCwiY2hhbmdlIj09PXQudXBkYXRlT24mJndXKHQsZSl9KSl9KSh0LGUpLChmdW5jdGlvbiBvKHQsZSl7Y29uc3Qgbj0odCxuKT0+e2UudmFsdWVBY2Nlc3Nvci53cml0ZVZhbHVlKHQpLG4mJmUudmlld1RvTW9kZWxVcGRhdGUodCl9O3QucmVnaXN0ZXJPbkNoYW5nZShuKSxlLl9yZWdpc3Rlck9uRGVzdHJveSgoKCk9Pnt0Ll91bnJlZ2lzdGVyT25DaGFuZ2Uobil9KSl9KSh0LGUpLChmdW5jdGlvbiBpKHQsZSl7ZS52YWx1ZUFjY2Vzc29yLnJlZ2lzdGVyT25Ub3VjaGVkKCgoKT0+e3QuX3BlbmRpbmdUb3VjaGVkPSEwLCJibHVyIj09PXQudXBkYXRlT24mJnQuX3BlbmRpbmdDaGFuZ2UmJndXKHQsZSksInN1Ym1pdCIhPT10LnVwZGF0ZU9uJiZ0Lm1hcmtBc1RvdWNoZWQoKX0pKX0pKHQsZSksKGZ1bmN0aW9uIGEodCxlKXtpZihlLnZhbHVlQWNjZXNzb3Iuc2V0RGlzYWJsZWRTdGF0ZSl7Y29uc3Qgbj10PT57ZS52YWx1ZUFjY2Vzc29yLnNldERpc2FibGVkU3RhdGUodCl9O3QucmVnaXN0ZXJPbkRpc2FibGVkQ2hhbmdlKG4pLGUuX3JlZ2lzdGVyT25EZXN0cm95KCgoKT0+e3QuX3VucmVnaXN0ZXJPbkRpc2FibGVkQ2hhbmdlKG4pfSkpfX0pKHQsZSl9ZnVuY3Rpb24gdlcodCxlLG49ITApe2NvbnN0IG89KCk9PntuJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJihmdW5jdGlvbiB0KGUpe3JldHVybiBTVyhlLCJUaGVyZSBpcyBubyBGb3JtQ29udHJvbCBpbnN0YW5jZSBhdHRhY2hlZCB0byBmb3JtIGNvbnRyb2wgZWxlbWVudCB3aXRoIil9KShlKX07ZS52YWx1ZUFjY2Vzc29yJiYoZS52YWx1ZUFjY2Vzc29yLnJlZ2lzdGVyT25DaGFuZ2UobyksZS52YWx1ZUFjY2Vzc29yLnJlZ2lzdGVyT25Ub3VjaGVkKG8pKSxQVyh0LGUpLHQmJihlLl9pbnZva2VPbkRlc3Ryb3lDYWxsYmFja3MoKSx0Ll9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSgoKCk9Pnt9KSkpfWZ1bmN0aW9uIHhXKHQsZSl7dC5mb3JFYWNoKCh0PT57dC5yZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlJiZ0LnJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZSl9KSl9ZnVuY3Rpb24gT1codCxlKXtjb25zdCBuPXRXKHQpO251bGwhPT1lLnZhbGlkYXRvcj90LnNldFZhbGlkYXRvcnMoJFUobixlLnZhbGlkYXRvcikpOiJmdW5jdGlvbiI9PXR5cGVvZiBuJiZ0LnNldFZhbGlkYXRvcnMoW25dKTtjb25zdCBvPWVXKHQpO251bGwhPT1lLmFzeW5jVmFsaWRhdG9yP3Quc2V0QXN5bmNWYWxpZGF0b3JzKCRVKG8sZS5hc3luY1ZhbGlkYXRvcikpOiJmdW5jdGlvbiI9PXR5cGVvZiBvJiZ0LnNldEFzeW5jVmFsaWRhdG9ycyhbb10pO2NvbnN0IGk9KCk9PnQudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO3hXKGUuX3Jhd1ZhbGlkYXRvcnMsaSkseFcoZS5fcmF3QXN5bmNWYWxpZGF0b3JzLGkpfWZ1bmN0aW9uIFBXKHQsZSl7bGV0IG49ITE7aWYobnVsbCE9PXQpe2lmKG51bGwhPT1lLnZhbGlkYXRvcil7Y29uc3Qgbz10Vyh0KTtpZihBcnJheS5pc0FycmF5KG8pJiZvLmxlbmd0aD4wKXtjb25zdCBpPW8uZmlsdGVyKCh0PT50IT09ZS52YWxpZGF0b3IpKTtpLmxlbmd0aCE9PW8ubGVuZ3RoJiYobj0hMCx0LnNldFZhbGlkYXRvcnMoaSkpfX1pZihudWxsIT09ZS5hc3luY1ZhbGlkYXRvcil7Y29uc3Qgbz1lVyh0KTtpZihBcnJheS5pc0FycmF5KG8pJiZvLmxlbmd0aD4wKXtjb25zdCBpPW8uZmlsdGVyKCh0PT50IT09ZS5hc3luY1ZhbGlkYXRvcikpO2kubGVuZ3RoIT09by5sZW5ndGgmJihuPSEwLHQuc2V0QXN5bmNWYWxpZGF0b3JzKGkpKX19fWNvbnN0IG89KCk9Pnt9O3JldHVybiB4VyhlLl9yYXdWYWxpZGF0b3JzLG8pLHhXKGUuX3Jhd0FzeW5jVmFsaWRhdG9ycyxvKSxufWZ1bmN0aW9uIHdXKHQsZSl7dC5fcGVuZGluZ0RpcnR5JiZ0Lm1hcmtBc0RpcnR5KCksdC5zZXRWYWx1ZSh0Ll9wZW5kaW5nVmFsdWUse2VtaXRNb2RlbFRvVmlld0NoYW5nZTohMX0pLGUudmlld1RvTW9kZWxVcGRhdGUodC5fcGVuZGluZ1ZhbHVlKSx0Ll9wZW5kaW5nQ2hhbmdlPSExfWZ1bmN0aW9uIGtXKHQsZSl7bnVsbCE9dHx8InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0Rldk1vZGUmJiFuZ0Rldk1vZGV8fFNXKGUsIkNhbm5vdCBmaW5kIGNvbnRyb2wgd2l0aCIpLE9XKHQsZSl9ZnVuY3Rpb24gU1codCxlKXtsZXQgbjt0aHJvdyBuPXQucGF0aC5sZW5ndGg+MT9gcGF0aDogJyR7dC5wYXRoLmpvaW4oIiAtPiAiKX0nYDp0LnBhdGhbMF0/YG5hbWU6ICcke3QucGF0aH0nYDoidW5zcGVjaWZpZWQgbmFtZSBhdHRyaWJ1dGUiLG5ldyBFcnJvcihgJHtlfSAke259YCl9ZnVuY3Rpb24gRFcodCxlKXtpZighdC5oYXNPd25Qcm9wZXJ0eSgibW9kZWwiKSlyZXR1cm4hMTtjb25zdCBuPXQubW9kZWw7cmV0dXJuISFuLmlzRmlyc3RDaGFuZ2UoKXx8IU9iamVjdC5pcyhlLG4uY3VycmVudFZhbHVlKX1mdW5jdGlvbiBSVyh0LGUpe3QuX3N5bmNQZW5kaW5nQ29udHJvbHMoKSxlLmZvckVhY2goKHQ9Pntjb25zdCBlPXQuY29udHJvbDsic3VibWl0Ij09PWUudXBkYXRlT24mJmUuX3BlbmRpbmdDaGFuZ2UmJih0LnZpZXdUb01vZGVsVXBkYXRlKGUuX3BlbmRpbmdWYWx1ZSksZS5fcGVuZGluZ0NoYW5nZT0hMSl9KSl9ZnVuY3Rpb24gRVcodCxlKXtpZighZSlyZXR1cm4gbnVsbDtsZXQgbixvLGk7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSl8fCJ1bmRlZmluZWQiIT10eXBlb2YgbmdEZXZNb2RlJiYhbmdEZXZNb2RlfHxTVyh0LCJWYWx1ZSBhY2Nlc3NvciB3YXMgbm90IHByb3ZpZGVkIGFzIGFuIGFycmF5IGZvciBmb3JtIGNvbnRyb2wgd2l0aCIpLGUuZm9yRWFjaCgoZT0+e2UuY29uc3RydWN0b3I9PT1TVT9uPWU6IShmdW5jdGlvbiBhKHQpe3JldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2YodC5jb25zdHJ1Y3Rvcik9PT12VX0pKGUpPyhpJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlNXKHQsIk1vcmUgdGhhbiBvbmUgY3VzdG9tIHZhbHVlIGFjY2Vzc29yIG1hdGNoZXMgZm9ybSBjb250cm9sIHdpdGgiKSxpPWUpOihvJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlNXKHQsIk1vcmUgdGhhbiBvbmUgYnVpbHQtaW4gdmFsdWUgYWNjZXNzb3IgbWF0Y2hlcyBmb3JtIGNvbnRyb2wgd2l0aCIpLG89ZSl9KSksaXx8KG98fChufHwoKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZTVyh0LCJObyB2YWxpZCB2YWx1ZSBhY2Nlc3NvciBmb3IgZm9ybSBjb250cm9sIHdpdGgiKSxudWxsKSkpfWZ1bmN0aW9uIEFXKHQsZSl7Y29uc3Qgbj10LmluZGV4T2YoZSk7bj4tMSYmdC5zcGxpY2UobiwxKX1mdW5jdGlvbiBUVyh0LGUsbixvKXsibmV2ZXIiIT09byYmKChudWxsIT09byYmIm9uY2UiIT09b3x8ZS5fbmdNb2RlbFdhcm5pbmdTZW50T25jZSkmJigiYWx3YXlzIiE9PW98fG4uX25nTW9kZWxXYXJuaW5nU2VudCl8fChfVy5uZ01vZGVsV2FybmluZyh0KSxlLl9uZ01vZGVsV2FybmluZ1NlbnRPbmNlPSEwLG4uX25nTW9kZWxXYXJuaW5nU2VudD0hMCkpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jb25zdCBOVz0iVkFMSUQiLHpXPSJJTlZBTElEIixJVz0iUEVORElORyIsSFc9IkRJU0FCTEVEIjtmdW5jdGlvbiBGVyh0KXtyZXR1cm4oalcodCk/dC52YWxpZGF0b3JzOnQpfHxudWxsfWZ1bmN0aW9uIExXKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP0tVKHQpOnR8fG51bGx9ZnVuY3Rpb24gQlcodCxlKXtyZXR1cm4oalcoZSk/ZS5hc3luY1ZhbGlkYXRvcnM6dCl8fG51bGx9ZnVuY3Rpb24gVlcodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/UVUodCk6dHx8bnVsbH1mdW5jdGlvbiBqVyh0KXtyZXR1cm4gbnVsbCE9dCYmIUFycmF5LmlzQXJyYXkodCkmJiJvYmplY3QiPT10eXBlb2YgdH1jbGFzcyBVV3tjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX2hhc093blBlbmRpbmdBc3luY1ZhbGlkYXRvcj0hMSx0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2U9KCk9Pnt9LHRoaXMuX3BhcmVudD1udWxsLHRoaXMucHJpc3RpbmU9ITAsdGhpcy50b3VjaGVkPSExLHRoaXMuX29uRGlzYWJsZWRDaGFuZ2U9W10sdGhpcy5fcmF3VmFsaWRhdG9ycz10LHRoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycz1lLHRoaXMuX2NvbXBvc2VkVmFsaWRhdG9yRm49TFcodGhpcy5fcmF3VmFsaWRhdG9ycyksdGhpcy5fY29tcG9zZWRBc3luY1ZhbGlkYXRvckZuPVZXKHRoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycyl9Z2V0IHZhbGlkYXRvcigpe3JldHVybiB0aGlzLl9jb21wb3NlZFZhbGlkYXRvckZufXNldCB2YWxpZGF0b3IodCl7dGhpcy5fcmF3VmFsaWRhdG9ycz10aGlzLl9jb21wb3NlZFZhbGlkYXRvckZuPXR9Z2V0IGFzeW5jVmFsaWRhdG9yKCl7cmV0dXJuIHRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbn1zZXQgYXN5bmNWYWxpZGF0b3IodCl7dGhpcy5fcmF3QXN5bmNWYWxpZGF0b3JzPXRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbj10fWdldCBwYXJlbnQoKXtyZXR1cm4gdGhpcy5fcGFyZW50fWdldCB2YWxpZCgpe3JldHVybiB0aGlzLnN0YXR1cz09PU5XfWdldCBpbnZhbGlkKCl7cmV0dXJuIHRoaXMuc3RhdHVzPT09eld9Z2V0IHBlbmRpbmcoKXtyZXR1cm4gdGhpcy5zdGF0dXM9PUlXfWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLnN0YXR1cz09PUhXfWdldCBlbmFibGVkKCl7cmV0dXJuIHRoaXMuc3RhdHVzIT09SFd9Z2V0IGRpcnR5KCl7cmV0dXJuIXRoaXMucHJpc3RpbmV9Z2V0IHVudG91Y2hlZCgpe3JldHVybiF0aGlzLnRvdWNoZWR9Z2V0IHVwZGF0ZU9uKCl7cmV0dXJuIHRoaXMuX3VwZGF0ZU9uP3RoaXMuX3VwZGF0ZU9uOnRoaXMucGFyZW50P3RoaXMucGFyZW50LnVwZGF0ZU9uOiJjaGFuZ2UifXNldFZhbGlkYXRvcnModCl7dGhpcy5fcmF3VmFsaWRhdG9ycz10LHRoaXMuX2NvbXBvc2VkVmFsaWRhdG9yRm49TFcodCl9c2V0QXN5bmNWYWxpZGF0b3JzKHQpe3RoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycz10LHRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbj1WVyh0KX1hZGRWYWxpZGF0b3JzKHQpe3RoaXMuc2V0VmFsaWRhdG9ycyhpVyh0LHRoaXMuX3Jhd1ZhbGlkYXRvcnMpKX1hZGRBc3luY1ZhbGlkYXRvcnModCl7dGhpcy5zZXRBc3luY1ZhbGlkYXRvcnMoaVcodCx0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnMpKX1yZW1vdmVWYWxpZGF0b3JzKHQpe3RoaXMuc2V0VmFsaWRhdG9ycyhhVyh0LHRoaXMuX3Jhd1ZhbGlkYXRvcnMpKX1yZW1vdmVBc3luY1ZhbGlkYXRvcnModCl7dGhpcy5zZXRBc3luY1ZhbGlkYXRvcnMoYVcodCx0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnMpKX1oYXNWYWxpZGF0b3IodCl7cmV0dXJuIG9XKHRoaXMuX3Jhd1ZhbGlkYXRvcnMsdCl9aGFzQXN5bmNWYWxpZGF0b3IodCl7cmV0dXJuIG9XKHRoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycyx0KX1jbGVhclZhbGlkYXRvcnMoKXt0aGlzLnZhbGlkYXRvcj1udWxsfWNsZWFyQXN5bmNWYWxpZGF0b3JzKCl7dGhpcy5hc3luY1ZhbGlkYXRvcj1udWxsfW1hcmtBc1RvdWNoZWQodD17fSl7dGhpcy50b3VjaGVkPSEwLHRoaXMuX3BhcmVudCYmIXQub25seVNlbGYmJnRoaXMuX3BhcmVudC5tYXJrQXNUb3VjaGVkKHQpfW1hcmtBbGxBc1RvdWNoZWQoKXt0aGlzLm1hcmtBc1RvdWNoZWQoe29ubHlTZWxmOiEwfSksdGhpcy5fZm9yRWFjaENoaWxkKCh0PT50Lm1hcmtBbGxBc1RvdWNoZWQoKSkpfW1hcmtBc1VudG91Y2hlZCh0PXt9KXt0aGlzLnRvdWNoZWQ9ITEsdGhpcy5fcGVuZGluZ1RvdWNoZWQ9ITEsdGhpcy5fZm9yRWFjaENoaWxkKCh0PT57dC5tYXJrQXNVbnRvdWNoZWQoe29ubHlTZWxmOiEwfSl9KSksdGhpcy5fcGFyZW50JiYhdC5vbmx5U2VsZiYmdGhpcy5fcGFyZW50Ll91cGRhdGVUb3VjaGVkKHQpfW1hcmtBc0RpcnR5KHQ9e30pe3RoaXMucHJpc3RpbmU9ITEsdGhpcy5fcGFyZW50JiYhdC5vbmx5U2VsZiYmdGhpcy5fcGFyZW50Lm1hcmtBc0RpcnR5KHQpfW1hcmtBc1ByaXN0aW5lKHQ9e30pe3RoaXMucHJpc3RpbmU9ITAsdGhpcy5fcGVuZGluZ0RpcnR5PSExLHRoaXMuX2ZvckVhY2hDaGlsZCgodD0+e3QubWFya0FzUHJpc3RpbmUoe29ubHlTZWxmOiEwfSl9KSksdGhpcy5fcGFyZW50JiYhdC5vbmx5U2VsZiYmdGhpcy5fcGFyZW50Ll91cGRhdGVQcmlzdGluZSh0KX1tYXJrQXNQZW5kaW5nKHQ9e30pe3RoaXMuc3RhdHVzPUlXLCExIT09dC5lbWl0RXZlbnQmJnRoaXMuc3RhdHVzQ2hhbmdlcy5lbWl0KHRoaXMuc3RhdHVzKSx0aGlzLl9wYXJlbnQmJiF0Lm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQubWFya0FzUGVuZGluZyh0KX1kaXNhYmxlKHQ9e30pe2NvbnN0IGU9dGhpcy5fcGFyZW50TWFya2VkRGlydHkodC5vbmx5U2VsZik7dGhpcy5zdGF0dXM9SFcsdGhpcy5lcnJvcnM9bnVsbCx0aGlzLl9mb3JFYWNoQ2hpbGQoKGU9PntlLmRpc2FibGUoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtvbmx5U2VsZjohMH0pKX0pKSx0aGlzLl91cGRhdGVWYWx1ZSgpLCExIT09dC5lbWl0RXZlbnQmJih0aGlzLnZhbHVlQ2hhbmdlcy5lbWl0KHRoaXMudmFsdWUpLHRoaXMuc3RhdHVzQ2hhbmdlcy5lbWl0KHRoaXMuc3RhdHVzKSksdGhpcy5fdXBkYXRlQW5jZXN0b3JzKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2tpcFByaXN0aW5lQ2hlY2s6ZX0pKSx0aGlzLl9vbkRpc2FibGVkQ2hhbmdlLmZvckVhY2goKHQ9PnQoITApKSl9ZW5hYmxlKHQ9e30pe2NvbnN0IGU9dGhpcy5fcGFyZW50TWFya2VkRGlydHkodC5vbmx5U2VsZik7dGhpcy5zdGF0dXM9TlcsdGhpcy5fZm9yRWFjaENoaWxkKChlPT57ZS5lbmFibGUoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtvbmx5U2VsZjohMH0pKX0pKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe29ubHlTZWxmOiEwLGVtaXRFdmVudDp0LmVtaXRFdmVudH0pLHRoaXMuX3VwZGF0ZUFuY2VzdG9ycyhPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NraXBQcmlzdGluZUNoZWNrOmV9KSksdGhpcy5fb25EaXNhYmxlZENoYW5nZS5mb3JFYWNoKCh0PT50KCExKSkpfV91cGRhdGVBbmNlc3RvcnModCl7dGhpcy5fcGFyZW50JiYhdC5vbmx5U2VsZiYmKHRoaXMuX3BhcmVudC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHQpLHQuc2tpcFByaXN0aW5lQ2hlY2t8fHRoaXMuX3BhcmVudC5fdXBkYXRlUHJpc3RpbmUoKSx0aGlzLl9wYXJlbnQuX3VwZGF0ZVRvdWNoZWQoKSl9c2V0UGFyZW50KHQpe3RoaXMuX3BhcmVudD10fXVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkodD17fSl7dGhpcy5fc2V0SW5pdGlhbFN0YXR1cygpLHRoaXMuX3VwZGF0ZVZhbHVlKCksdGhpcy5lbmFibGVkJiYodGhpcy5fY2FuY2VsRXhpc3RpbmdTdWJzY3JpcHRpb24oKSx0aGlzLmVycm9ycz10aGlzLl9ydW5WYWxpZGF0b3IoKSx0aGlzLnN0YXR1cz10aGlzLl9jYWxjdWxhdGVTdGF0dXMoKSx0aGlzLnN0YXR1cyE9PU5XJiZ0aGlzLnN0YXR1cyE9PUlXfHx0aGlzLl9ydW5Bc3luY1ZhbGlkYXRvcih0LmVtaXRFdmVudCkpLCExIT09dC5lbWl0RXZlbnQmJih0aGlzLnZhbHVlQ2hhbmdlcy5lbWl0KHRoaXMudmFsdWUpLHRoaXMuc3RhdHVzQ2hhbmdlcy5lbWl0KHRoaXMuc3RhdHVzKSksdGhpcy5fcGFyZW50JiYhdC5vbmx5U2VsZiYmdGhpcy5fcGFyZW50LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkodCl9X3VwZGF0ZVRyZWVWYWxpZGl0eSh0PXtlbWl0RXZlbnQ6ITB9KXt0aGlzLl9mb3JFYWNoQ2hpbGQoKGU9PmUuX3VwZGF0ZVRyZWVWYWxpZGl0eSh0KSkpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7b25seVNlbGY6ITAsZW1pdEV2ZW50OnQuZW1pdEV2ZW50fSl9X3NldEluaXRpYWxTdGF0dXMoKXt0aGlzLnN0YXR1cz10aGlzLl9hbGxDb250cm9sc0Rpc2FibGVkKCk/SFc6Tld9X3J1blZhbGlkYXRvcigpe3JldHVybiB0aGlzLnZhbGlkYXRvcj90aGlzLnZhbGlkYXRvcih0aGlzKTpudWxsfV9ydW5Bc3luY1ZhbGlkYXRvcih0KXtpZih0aGlzLmFzeW5jVmFsaWRhdG9yKXt0aGlzLnN0YXR1cz1JVyx0aGlzLl9oYXNPd25QZW5kaW5nQXN5bmNWYWxpZGF0b3I9ITA7Y29uc3QgZT1HVSh0aGlzLmFzeW5jVmFsaWRhdG9yKHRoaXMpKTt0aGlzLl9hc3luY1ZhbGlkYXRpb25TdWJzY3JpcHRpb249ZS5zdWJzY3JpYmUoKGU9Pnt0aGlzLl9oYXNPd25QZW5kaW5nQXN5bmNWYWxpZGF0b3I9ITEsdGhpcy5zZXRFcnJvcnMoZSx7ZW1pdEV2ZW50OnR9KX0pKX19X2NhbmNlbEV4aXN0aW5nU3Vic2NyaXB0aW9uKCl7dGhpcy5fYXN5bmNWYWxpZGF0aW9uU3Vic2NyaXB0aW9uJiYodGhpcy5fYXN5bmNWYWxpZGF0aW9uU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5faGFzT3duUGVuZGluZ0FzeW5jVmFsaWRhdG9yPSExKX1zZXRFcnJvcnModCxlPXt9KXt0aGlzLmVycm9ycz10LHRoaXMuX3VwZGF0ZUNvbnRyb2xzRXJyb3JzKCExIT09ZS5lbWl0RXZlbnQpfWdldCh0KXtyZXR1cm4oZnVuY3Rpb24gZSh0LG4sbyl7aWYobnVsbD09bilyZXR1cm4gbnVsbDtpZihBcnJheS5pc0FycmF5KG4pfHwobj1uLnNwbGl0KG8pKSxBcnJheS5pc0FycmF5KG4pJiYwPT09bi5sZW5ndGgpcmV0dXJuIG51bGw7bGV0IGk9dDtyZXR1cm4gbi5mb3JFYWNoKCh0PT57aT1pIGluc3RhbmNlb2YgR1c/aS5jb250cm9scy5oYXNPd25Qcm9wZXJ0eSh0KT9pLmNvbnRyb2xzW3RdOm51bGw6aSBpbnN0YW5jZW9mIFlXJiZpLmF0KHQpfHxudWxsfSkpLGl9KSh0aGlzLHQsIi4iKX1nZXRFcnJvcih0LGUpe2NvbnN0IG49ZT90aGlzLmdldChlKTp0aGlzO3JldHVybiBuJiZuLmVycm9ycz9uLmVycm9yc1t0XTpudWxsfWhhc0Vycm9yKHQsZSl7cmV0dXJuISF0aGlzLmdldEVycm9yKHQsZSl9Z2V0IHJvb3QoKXtsZXQgdD10aGlzO2Zvcig7dC5fcGFyZW50Oyl0PXQuX3BhcmVudDtyZXR1cm4gdH1fdXBkYXRlQ29udHJvbHNFcnJvcnModCl7dGhpcy5zdGF0dXM9dGhpcy5fY2FsY3VsYXRlU3RhdHVzKCksdCYmdGhpcy5zdGF0dXNDaGFuZ2VzLmVtaXQodGhpcy5zdGF0dXMpLHRoaXMuX3BhcmVudCYmdGhpcy5fcGFyZW50Ll91cGRhdGVDb250cm9sc0Vycm9ycyh0KX1faW5pdE9ic2VydmFibGVzKCl7dGhpcy52YWx1ZUNoYW5nZXM9bmV3IFN5LHRoaXMuc3RhdHVzQ2hhbmdlcz1uZXcgU3l9X2NhbGN1bGF0ZVN0YXR1cygpe3JldHVybiB0aGlzLl9hbGxDb250cm9sc0Rpc2FibGVkKCk/SFc6dGhpcy5lcnJvcnM/elc6dGhpcy5faGFzT3duUGVuZGluZ0FzeW5jVmFsaWRhdG9yfHx0aGlzLl9hbnlDb250cm9sc0hhdmVTdGF0dXMoSVcpP0lXOnRoaXMuX2FueUNvbnRyb2xzSGF2ZVN0YXR1cyh6Vyk/elc6Tld9X2FueUNvbnRyb2xzSGF2ZVN0YXR1cyh0KXtyZXR1cm4gdGhpcy5fYW55Q29udHJvbHMoKGU9PmUuc3RhdHVzPT09dCkpfV9hbnlDb250cm9sc0RpcnR5KCl7cmV0dXJuIHRoaXMuX2FueUNvbnRyb2xzKCh0PT50LmRpcnR5KSl9X2FueUNvbnRyb2xzVG91Y2hlZCgpe3JldHVybiB0aGlzLl9hbnlDb250cm9scygodD0+dC50b3VjaGVkKSl9X3VwZGF0ZVByaXN0aW5lKHQ9e30pe3RoaXMucHJpc3RpbmU9IXRoaXMuX2FueUNvbnRyb2xzRGlydHkoKSx0aGlzLl9wYXJlbnQmJiF0Lm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQuX3VwZGF0ZVByaXN0aW5lKHQpfV91cGRhdGVUb3VjaGVkKHQ9e30pe3RoaXMudG91Y2hlZD10aGlzLl9hbnlDb250cm9sc1RvdWNoZWQoKSx0aGlzLl9wYXJlbnQmJiF0Lm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQuX3VwZGF0ZVRvdWNoZWQodCl9X2lzQm94ZWRWYWx1ZSh0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10JiYyPT09T2JqZWN0LmtleXModCkubGVuZ3RoJiYidmFsdWUiaW4gdCYmImRpc2FibGVkImluIHR9X3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKHQpe3RoaXMuX29uQ29sbGVjdGlvbkNoYW5nZT10fV9zZXRVcGRhdGVTdHJhdGVneSh0KXtqVyh0KSYmbnVsbCE9dC51cGRhdGVPbiYmKHRoaXMuX3VwZGF0ZU9uPXQudXBkYXRlT24pfV9wYXJlbnRNYXJrZWREaXJ0eSh0KXtyZXR1cm4hdCYmISEodGhpcy5fcGFyZW50JiZ0aGlzLl9wYXJlbnQuZGlydHkpJiYhdGhpcy5fcGFyZW50Ll9hbnlDb250cm9sc0RpcnR5KCl9fWNsYXNzIFdXIGV4dGVuZHMgVVd7Y29uc3RydWN0b3IodD1udWxsLGUsbil7c3VwZXIoRlcoZSksQlcobixlKSksdGhpcy5fb25DaGFuZ2U9W10sdGhpcy5fYXBwbHlGb3JtU3RhdGUodCksdGhpcy5fc2V0VXBkYXRlU3RyYXRlZ3koZSksdGhpcy5faW5pdE9ic2VydmFibGVzKCksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6ISF0aGlzLmFzeW5jVmFsaWRhdG9yfSl9c2V0VmFsdWUodCxlPXt9KXt0aGlzLnZhbHVlPXRoaXMuX3BlbmRpbmdWYWx1ZT10LHRoaXMuX29uQ2hhbmdlLmxlbmd0aCYmITEhPT1lLmVtaXRNb2RlbFRvVmlld0NoYW5nZSYmdGhpcy5fb25DaGFuZ2UuZm9yRWFjaCgodD0+dCh0aGlzLnZhbHVlLCExIT09ZS5lbWl0Vmlld1RvTW9kZWxDaGFuZ2UpKSksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KGUpfXBhdGNoVmFsdWUodCxlPXt9KXt0aGlzLnNldFZhbHVlKHQsZSl9cmVzZXQodD1udWxsLGU9e30pe3RoaXMuX2FwcGx5Rm9ybVN0YXRlKHQpLHRoaXMubWFya0FzUHJpc3RpbmUoZSksdGhpcy5tYXJrQXNVbnRvdWNoZWQoZSksdGhpcy5zZXRWYWx1ZSh0aGlzLnZhbHVlLGUpLHRoaXMuX3BlbmRpbmdDaGFuZ2U9ITF9X3VwZGF0ZVZhbHVlKCl7fV9hbnlDb250cm9scyh0KXtyZXR1cm4hMX1fYWxsQ29udHJvbHNEaXNhYmxlZCgpe3JldHVybiB0aGlzLmRpc2FibGVkfXJlZ2lzdGVyT25DaGFuZ2UodCl7dGhpcy5fb25DaGFuZ2UucHVzaCh0KX1fdW5yZWdpc3Rlck9uQ2hhbmdlKHQpe0FXKHRoaXMuX29uQ2hhbmdlLHQpfXJlZ2lzdGVyT25EaXNhYmxlZENoYW5nZSh0KXt0aGlzLl9vbkRpc2FibGVkQ2hhbmdlLnB1c2godCl9X3VucmVnaXN0ZXJPbkRpc2FibGVkQ2hhbmdlKHQpe0FXKHRoaXMuX29uRGlzYWJsZWRDaGFuZ2UsdCl9X2ZvckVhY2hDaGlsZCh0KXt9X3N5bmNQZW5kaW5nQ29udHJvbHMoKXtyZXR1cm4hKCJzdWJtaXQiIT09dGhpcy51cGRhdGVPbnx8KHRoaXMuX3BlbmRpbmdEaXJ0eSYmdGhpcy5tYXJrQXNEaXJ0eSgpLHRoaXMuX3BlbmRpbmdUb3VjaGVkJiZ0aGlzLm1hcmtBc1RvdWNoZWQoKSwhdGhpcy5fcGVuZGluZ0NoYW5nZSkpJiYodGhpcy5zZXRWYWx1ZSh0aGlzLl9wZW5kaW5nVmFsdWUse29ubHlTZWxmOiEwLGVtaXRNb2RlbFRvVmlld0NoYW5nZTohMX0pLCEwKX1fYXBwbHlGb3JtU3RhdGUodCl7dGhpcy5faXNCb3hlZFZhbHVlKHQpPyh0aGlzLnZhbHVlPXRoaXMuX3BlbmRpbmdWYWx1ZT10LnZhbHVlLHQuZGlzYWJsZWQ/dGhpcy5kaXNhYmxlKHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6ITF9KTp0aGlzLmVuYWJsZSh7b25seVNlbGY6ITAsZW1pdEV2ZW50OiExfSkpOnRoaXMudmFsdWU9dGhpcy5fcGVuZGluZ1ZhbHVlPXR9fWNsYXNzIEdXIGV4dGVuZHMgVVd7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKEZXKGUpLEJXKG4sZSkpLHRoaXMuY29udHJvbHM9dCx0aGlzLl9pbml0T2JzZXJ2YWJsZXMoKSx0aGlzLl9zZXRVcGRhdGVTdHJhdGVneShlKSx0aGlzLl9zZXRVcENvbnRyb2xzKCksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6ISF0aGlzLmFzeW5jVmFsaWRhdG9yfSl9cmVnaXN0ZXJDb250cm9sKHQsZSl7cmV0dXJuIHRoaXMuY29udHJvbHNbdF0/dGhpcy5jb250cm9sc1t0XToodGhpcy5jb250cm9sc1t0XT1lLGUuc2V0UGFyZW50KHRoaXMpLGUuX3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZSksZSl9YWRkQ29udHJvbCh0LGUsbj17fSl7dGhpcy5yZWdpc3RlckNvbnRyb2wodCxlKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDpuLmVtaXRFdmVudH0pLHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZSgpfXJlbW92ZUNvbnRyb2wodCxlPXt9KXt0aGlzLmNvbnRyb2xzW3RdJiZ0aGlzLmNvbnRyb2xzW3RdLl9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSgoKCk9Pnt9KSksZGVsZXRlIHRoaXMuY29udHJvbHNbdF0sdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6ZS5lbWl0RXZlbnR9KSx0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UoKX1zZXRDb250cm9sKHQsZSxuPXt9KXt0aGlzLmNvbnRyb2xzW3RdJiZ0aGlzLmNvbnRyb2xzW3RdLl9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSgoKCk9Pnt9KSksZGVsZXRlIHRoaXMuY29udHJvbHNbdF0sZSYmdGhpcy5yZWdpc3RlckNvbnRyb2wodCxlKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDpuLmVtaXRFdmVudH0pLHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZSgpfWNvbnRhaW5zKHQpe3JldHVybiB0aGlzLmNvbnRyb2xzLmhhc093blByb3BlcnR5KHQpJiZ0aGlzLmNvbnRyb2xzW3RdLmVuYWJsZWR9c2V0VmFsdWUodCxlPXt9KXt0aGlzLl9jaGVja0FsbFZhbHVlc1ByZXNlbnQodCksT2JqZWN0LmtleXModCkuZm9yRWFjaCgobj0+e3RoaXMuX3Rocm93SWZDb250cm9sTWlzc2luZyhuKSx0aGlzLmNvbnRyb2xzW25dLnNldFZhbHVlKHRbbl0se29ubHlTZWxmOiEwLGVtaXRFdmVudDplLmVtaXRFdmVudH0pfSkpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eShlKX1wYXRjaFZhbHVlKHQsZT17fSl7bnVsbCE9dCYmKE9iamVjdC5rZXlzKHQpLmZvckVhY2goKG49Pnt0aGlzLmNvbnRyb2xzW25dJiZ0aGlzLmNvbnRyb2xzW25dLnBhdGNoVmFsdWUodFtuXSx7b25seVNlbGY6ITAsZW1pdEV2ZW50OmUuZW1pdEV2ZW50fSl9KSksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KGUpKX1yZXNldCh0PXt9LGU9e30pe3RoaXMuX2ZvckVhY2hDaGlsZCgoKG4sbyk9PntuLnJlc2V0KHRbb10se29ubHlTZWxmOiEwLGVtaXRFdmVudDplLmVtaXRFdmVudH0pfSkpLHRoaXMuX3VwZGF0ZVByaXN0aW5lKGUpLHRoaXMuX3VwZGF0ZVRvdWNoZWQoZSksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KGUpfWdldFJhd1ZhbHVlKCl7cmV0dXJuIHRoaXMuX3JlZHVjZUNoaWxkcmVuKHt9LCgodCxlLG4pPT4odFtuXT1lIGluc3RhbmNlb2YgV1c/ZS52YWx1ZTplLmdldFJhd1ZhbHVlKCksdCkpKX1fc3luY1BlbmRpbmdDb250cm9scygpe2xldCB0PXRoaXMuX3JlZHVjZUNoaWxkcmVuKCExLCgodCxlKT0+ISFlLl9zeW5jUGVuZGluZ0NvbnRyb2xzKCl8fHQpKTtyZXR1cm4gdCYmdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtvbmx5U2VsZjohMH0pLHR9X3Rocm93SWZDb250cm9sTWlzc2luZyh0KXtpZighT2JqZWN0LmtleXModGhpcy5jb250cm9scykubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiXG4gICAgICAgIFRoZXJlIGFyZSBubyBmb3JtIGNvbnRyb2xzIHJlZ2lzdGVyZWQgd2l0aCB0aGlzIGdyb3VwIHlldC4gSWYgeW91J3JlIHVzaW5nIG5nTW9kZWwsXG4gICAgICAgIHlvdSBtYXkgd2FudCB0byBjaGVjayBuZXh0IHRpY2sgKGUuZy4gdXNlIHNldFRpbWVvdXQpLlxuICAgICAgIik7aWYoIXRoaXMuY29udHJvbHNbdF0pdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBmb3JtIGNvbnRyb2wgd2l0aCBuYW1lOiAke3R9LmApfV9mb3JFYWNoQ2hpbGQodCl7T2JqZWN0LmtleXModGhpcy5jb250cm9scykuZm9yRWFjaCgoZT0+e2NvbnN0IG49dGhpcy5jb250cm9sc1tlXTtuJiZ0KG4sZSl9KSl9X3NldFVwQ29udHJvbHMoKXt0aGlzLl9mb3JFYWNoQ2hpbGQoKHQ9Pnt0LnNldFBhcmVudCh0aGlzKSx0Ll9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSh0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UpfSkpfV91cGRhdGVWYWx1ZSgpe3RoaXMudmFsdWU9dGhpcy5fcmVkdWNlVmFsdWUoKX1fYW55Q29udHJvbHModCl7Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmtleXModGhpcy5jb250cm9scykpe2NvbnN0IG49dGhpcy5jb250cm9sc1tlXTtpZih0aGlzLmNvbnRhaW5zKGUpJiZ0KG4pKXJldHVybiEwfXJldHVybiExfV9yZWR1Y2VWYWx1ZSgpe3JldHVybiB0aGlzLl9yZWR1Y2VDaGlsZHJlbih7fSwoKHQsZSxuKT0+KChlLmVuYWJsZWR8fHRoaXMuZGlzYWJsZWQpJiYodFtuXT1lLnZhbHVlKSx0KSkpfV9yZWR1Y2VDaGlsZHJlbih0LGUpe2xldCBuPXQ7cmV0dXJuIHRoaXMuX2ZvckVhY2hDaGlsZCgoKHQsbyk9PntuPWUobix0LG8pfSkpLG59X2FsbENvbnRyb2xzRGlzYWJsZWQoKXtmb3IoY29uc3QgdCBvZiBPYmplY3Qua2V5cyh0aGlzLmNvbnRyb2xzKSlpZih0aGlzLmNvbnRyb2xzW3RdLmVuYWJsZWQpcmV0dXJuITE7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuY29udHJvbHMpLmxlbmd0aD4wfHx0aGlzLmRpc2FibGVkfV9jaGVja0FsbFZhbHVlc1ByZXNlbnQodCl7dGhpcy5fZm9yRWFjaENoaWxkKCgoZSxuKT0+e2lmKHZvaWQgMD09PXRbbl0pdGhyb3cgbmV3IEVycm9yKGBNdXN0IHN1cHBseSBhIHZhbHVlIGZvciBmb3JtIGNvbnRyb2wgd2l0aCBuYW1lOiAnJHtufScuYCl9KSl9fWNsYXNzIFlXIGV4dGVuZHMgVVd7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKEZXKGUpLEJXKG4sZSkpLHRoaXMuY29udHJvbHM9dCx0aGlzLl9pbml0T2JzZXJ2YWJsZXMoKSx0aGlzLl9zZXRVcGRhdGVTdHJhdGVneShlKSx0aGlzLl9zZXRVcENvbnRyb2xzKCksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6ISF0aGlzLmFzeW5jVmFsaWRhdG9yfSl9YXQodCl7cmV0dXJuIHRoaXMuY29udHJvbHNbdF19cHVzaCh0LGU9e30pe3RoaXMuY29udHJvbHMucHVzaCh0KSx0aGlzLl9yZWdpc3RlckNvbnRyb2wodCksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6ZS5lbWl0RXZlbnR9KSx0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UoKX1pbnNlcnQodCxlLG49e30pe3RoaXMuY29udHJvbHMuc3BsaWNlKHQsMCxlKSx0aGlzLl9yZWdpc3RlckNvbnRyb2woZSksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6bi5lbWl0RXZlbnR9KX1yZW1vdmVBdCh0LGU9e30pe3RoaXMuY29udHJvbHNbdF0mJnRoaXMuY29udHJvbHNbdF0uX3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKCgoKT0+e30pKSx0aGlzLmNvbnRyb2xzLnNwbGljZSh0LDEpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OmUuZW1pdEV2ZW50fSl9c2V0Q29udHJvbCh0LGUsbj17fSl7dGhpcy5jb250cm9sc1t0XSYmdGhpcy5jb250cm9sc1t0XS5fcmVnaXN0ZXJPbkNvbGxlY3Rpb25DaGFuZ2UoKCgpPT57fSkpLHRoaXMuY29udHJvbHMuc3BsaWNlKHQsMSksZSYmKHRoaXMuY29udHJvbHMuc3BsaWNlKHQsMCxlKSx0aGlzLl9yZWdpc3RlckNvbnRyb2woZSkpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50Om4uZW1pdEV2ZW50fSksdGhpcy5fb25Db2xsZWN0aW9uQ2hhbmdlKCl9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmNvbnRyb2xzLmxlbmd0aH1zZXRWYWx1ZSh0LGU9e30pe3RoaXMuX2NoZWNrQWxsVmFsdWVzUHJlc2VudCh0KSx0LmZvckVhY2goKCh0LG4pPT57dGhpcy5fdGhyb3dJZkNvbnRyb2xNaXNzaW5nKG4pLHRoaXMuYXQobikuc2V0VmFsdWUodCx7b25seVNlbGY6ITAsZW1pdEV2ZW50OmUuZW1pdEV2ZW50fSl9KSksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KGUpfXBhdGNoVmFsdWUodCxlPXt9KXtudWxsIT10JiYodC5mb3JFYWNoKCgodCxuKT0+e3RoaXMuYXQobikmJnRoaXMuYXQobikucGF0Y2hWYWx1ZSh0LHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6ZS5lbWl0RXZlbnR9KX0pKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoZSkpfXJlc2V0KHQ9W10sZT17fSl7dGhpcy5fZm9yRWFjaENoaWxkKCgobixvKT0+e24ucmVzZXQodFtvXSx7b25seVNlbGY6ITAsZW1pdEV2ZW50OmUuZW1pdEV2ZW50fSl9KSksdGhpcy5fdXBkYXRlUHJpc3RpbmUoZSksdGhpcy5fdXBkYXRlVG91Y2hlZChlKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoZSl9Z2V0UmF3VmFsdWUoKXtyZXR1cm4gdGhpcy5jb250cm9scy5tYXAoKHQ9PnQgaW5zdGFuY2VvZiBXVz90LnZhbHVlOnQuZ2V0UmF3VmFsdWUoKSkpfWNsZWFyKHQ9e30pe3RoaXMuY29udHJvbHMubGVuZ3RoPDF8fCh0aGlzLl9mb3JFYWNoQ2hpbGQoKHQ9PnQuX3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKCgoKT0+e30pKSkpLHRoaXMuY29udHJvbHMuc3BsaWNlKDApLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OnQuZW1pdEV2ZW50fSkpfV9zeW5jUGVuZGluZ0NvbnRyb2xzKCl7bGV0IHQ9dGhpcy5jb250cm9scy5yZWR1Y2UoKCh0LGUpPT4hIWUuX3N5bmNQZW5kaW5nQ29udHJvbHMoKXx8dCksITEpO3JldHVybiB0JiZ0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe29ubHlTZWxmOiEwfSksdH1fdGhyb3dJZkNvbnRyb2xNaXNzaW5nKHQpe2lmKCF0aGlzLmNvbnRyb2xzLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIlxuICAgICAgICBUaGVyZSBhcmUgbm8gZm9ybSBjb250cm9scyByZWdpc3RlcmVkIHdpdGggdGhpcyBhcnJheSB5ZXQuIElmIHlvdSdyZSB1c2luZyBuZ01vZGVsLFxuICAgICAgICB5b3UgbWF5IHdhbnQgdG8gY2hlY2sgbmV4dCB0aWNrIChlLmcuIHVzZSBzZXRUaW1lb3V0KS5cbiAgICAgICIpO2lmKCF0aGlzLmF0KHQpKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgZm9ybSBjb250cm9sIGF0IGluZGV4ICR7dH1gKX1fZm9yRWFjaENoaWxkKHQpe3RoaXMuY29udHJvbHMuZm9yRWFjaCgoKGUsbik9Pnt0KGUsbil9KSl9X3VwZGF0ZVZhbHVlKCl7dGhpcy52YWx1ZT10aGlzLmNvbnRyb2xzLmZpbHRlcigodD0+dC5lbmFibGVkfHx0aGlzLmRpc2FibGVkKSkubWFwKCh0PT50LnZhbHVlKSl9X2FueUNvbnRyb2xzKHQpe3JldHVybiB0aGlzLmNvbnRyb2xzLnNvbWUoKGU9PmUuZW5hYmxlZCYmdChlKSkpfV9zZXRVcENvbnRyb2xzKCl7dGhpcy5fZm9yRWFjaENoaWxkKCh0PT50aGlzLl9yZWdpc3RlckNvbnRyb2wodCkpKX1fY2hlY2tBbGxWYWx1ZXNQcmVzZW50KHQpe3RoaXMuX2ZvckVhY2hDaGlsZCgoKGUsbik9PntpZih2b2lkIDA9PT10W25dKXRocm93IG5ldyBFcnJvcihgTXVzdCBzdXBwbHkgYSB2YWx1ZSBmb3IgZm9ybSBjb250cm9sIGF0IGluZGV4OiAke259LmApfSkpfV9hbGxDb250cm9sc0Rpc2FibGVkKCl7Zm9yKGNvbnN0IHQgb2YgdGhpcy5jb250cm9scylpZih0LmVuYWJsZWQpcmV0dXJuITE7cmV0dXJuIHRoaXMuY29udHJvbHMubGVuZ3RoPjB8fHRoaXMuZGlzYWJsZWR9X3JlZ2lzdGVyQ29udHJvbCh0KXt0LnNldFBhcmVudCh0aGlzKSx0Ll9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSh0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgcVc9e3Byb3ZpZGU6c1csdXNlRXhpc3Rpbmc6JGUoKCgpPT5YVykpfSxaVz1Qcm9taXNlLnJlc29sdmUobnVsbCk7Y2xhc3MgWFcgZXh0ZW5kcyBzV3tjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKCksdGhpcy5zdWJtaXR0ZWQ9ITEsdGhpcy5fZGlyZWN0aXZlcz1bXSx0aGlzLm5nU3VibWl0PW5ldyBTeSx0aGlzLmZvcm09bmV3IEdXKHt9LEtVKHQpLFFVKGUpKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl9zZXRVcGRhdGVTdHJhdGVneSgpfWdldCBmb3JtRGlyZWN0aXZlKCl7cmV0dXJuIHRoaXN9Z2V0IGNvbnRyb2woKXtyZXR1cm4gdGhpcy5mb3JtfWdldCBwYXRoKCl7cmV0dXJuW119Z2V0IGNvbnRyb2xzKCl7cmV0dXJuIHRoaXMuZm9ybS5jb250cm9sc31hZGRDb250cm9sKHQpe1pXLnRoZW4oKCgpPT57Y29uc3QgZT10aGlzLl9maW5kQ29udGFpbmVyKHQucGF0aCk7dC5jb250cm9sPWUucmVnaXN0ZXJDb250cm9sKHQubmFtZSx0LmNvbnRyb2wpLE1XKHQuY29udHJvbCx0KSx0LmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSksdGhpcy5fZGlyZWN0aXZlcy5wdXNoKHQpfSkpfWdldENvbnRyb2wodCl7cmV0dXJuIHRoaXMuZm9ybS5nZXQodC5wYXRoKX1yZW1vdmVDb250cm9sKHQpe1pXLnRoZW4oKCgpPT57Y29uc3QgZT10aGlzLl9maW5kQ29udGFpbmVyKHQucGF0aCk7ZSYmZS5yZW1vdmVDb250cm9sKHQubmFtZSksQVcodGhpcy5fZGlyZWN0aXZlcyx0KX0pKX1hZGRGb3JtR3JvdXAodCl7WlcudGhlbigoKCk9Pntjb25zdCBlPXRoaXMuX2ZpbmRDb250YWluZXIodC5wYXRoKSxuPW5ldyBHVyh7fSk7a1cobix0KSxlLnJlZ2lzdGVyQ29udHJvbCh0Lm5hbWUsbiksbi51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6ITF9KX0pKX1yZW1vdmVGb3JtR3JvdXAodCl7WlcudGhlbigoKCk9Pntjb25zdCBlPXRoaXMuX2ZpbmRDb250YWluZXIodC5wYXRoKTtlJiZlLnJlbW92ZUNvbnRyb2wodC5uYW1lKX0pKX1nZXRGb3JtR3JvdXAodCl7cmV0dXJuIHRoaXMuZm9ybS5nZXQodC5wYXRoKX11cGRhdGVNb2RlbCh0LGUpe1pXLnRoZW4oKCgpPT57dGhpcy5mb3JtLmdldCh0LnBhdGgpLnNldFZhbHVlKGUpfSkpfXNldFZhbHVlKHQpe3RoaXMuY29udHJvbC5zZXRWYWx1ZSh0KX1vblN1Ym1pdCh0KXtyZXR1cm4gdGhpcy5zdWJtaXR0ZWQ9ITAsUlcodGhpcy5mb3JtLHRoaXMuX2RpcmVjdGl2ZXMpLHRoaXMubmdTdWJtaXQuZW1pdCh0KSwhMX1vblJlc2V0KCl7dGhpcy5yZXNldEZvcm0oKX1yZXNldEZvcm0odCl7dGhpcy5mb3JtLnJlc2V0KHQpLHRoaXMuc3VibWl0dGVkPSExfV9zZXRVcGRhdGVTdHJhdGVneSgpe3RoaXMub3B0aW9ucyYmbnVsbCE9dGhpcy5vcHRpb25zLnVwZGF0ZU9uJiYodGhpcy5mb3JtLl91cGRhdGVPbj10aGlzLm9wdGlvbnMudXBkYXRlT24pfV9maW5kQ29udGFpbmVyKHQpe3JldHVybiB0LnBvcCgpLHQubGVuZ3RoP3RoaXMuZm9ybS5nZXQodCk6dGhpcy5mb3JtfX1YVy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WFcpKGdmKEVVLDEwKSxnZihBVSwxMCkpfSxYVy7JtWRpcj1obyh7dHlwZTpYVyxzZWxlY3RvcnM6W1siZm9ybSIsMywibmdOb0Zvcm0iLCIiLDMsImZvcm1Hcm91cCIsIiJdLFsibmctZm9ybSJdLFsiIiwibmdGb3JtIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZSZigic3VibWl0IiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblN1Ym1pdChlKX0pKSgicmVzZXQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25SZXNldCgpfSkpfSxpbnB1dHM6e29wdGlvbnM6WyJuZ0Zvcm1PcHRpb25zIiwib3B0aW9ucyJdfSxvdXRwdXRzOntuZ1N1Ym1pdDoibmdTdWJtaXQifSxleHBvcnRBczpbIm5nRm9ybSJdLGZlYXR1cmVzOltqaChbcVddKSxRcF19KSxYVy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpWcn0se3R5cGU6THIsYXJnczpbRVVdfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpWcn0se3R5cGU6THIsYXJnczpbQVVdfV19XSxYVy5wcm9wRGVjb3JhdG9ycz17b3B0aW9uczpbe3R5cGU6Ul8sYXJnczpbIm5nRm9ybU9wdGlvbnMiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFhXLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6ImZvcm06bm90KFtuZ05vRm9ybV0pOm5vdChbZm9ybUdyb3VwXSksbmctZm9ybSxbbmdGb3JtXSIscHJvdmlkZXJzOltxV10saG9zdDp7IihzdWJtaXQpIjoib25TdWJtaXQoJGV2ZW50KSIsIihyZXNldCkiOiJvblJlc2V0KCkifSxvdXRwdXRzOlsibmdTdWJtaXQiXSxleHBvcnRBczoibmdGb3JtIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpWcn0se3R5cGU6THIsYXJnczpbRVVdfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpWcn0se3R5cGU6THIsYXJnczpbQVVdfV19XX0pLHtvcHRpb25zOlt7dHlwZTpSXyxhcmdzOlsibmdGb3JtT3B0aW9ucyJdfV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIEtXIGV4dGVuZHMgc1d7bmdPbkluaXQoKXt0aGlzLl9jaGVja1BhcmVudFR5cGUoKSx0aGlzLmZvcm1EaXJlY3RpdmUuYWRkRm9ybUdyb3VwKHRoaXMpfW5nT25EZXN0cm95KCl7dGhpcy5mb3JtRGlyZWN0aXZlJiZ0aGlzLmZvcm1EaXJlY3RpdmUucmVtb3ZlRm9ybUdyb3VwKHRoaXMpfWdldCBjb250cm9sKCl7cmV0dXJuIHRoaXMuZm9ybURpcmVjdGl2ZS5nZXRGb3JtR3JvdXAodGhpcyl9Z2V0IHBhdGgoKXtyZXR1cm4gQ1cobnVsbD09dGhpcy5uYW1lP3RoaXMubmFtZTp0aGlzLm5hbWUudG9TdHJpbmcoKSx0aGlzLl9wYXJlbnQpfWdldCBmb3JtRGlyZWN0aXZlKCl7cmV0dXJuIHRoaXMuX3BhcmVudD90aGlzLl9wYXJlbnQuZm9ybURpcmVjdGl2ZTpudWxsfV9jaGVja1BhcmVudFR5cGUoKXt9fUtXLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1VYShLVykpKShufHxLVyl9fSkoKSxLVy7JtWRpcj1obyh7dHlwZTpLVyxmZWF0dXJlczpbUXBdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihLVyxbe3R5cGU6a199XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgSld7c3RhdGljIG1vZGVsUGFyZW50RXhjZXB0aW9uKCl7dGhyb3cgbmV3IEVycm9yKGBcbiAgICAgIG5nTW9kZWwgY2Fubm90IGJlIHVzZWQgdG8gcmVnaXN0ZXIgZm9ybSBjb250cm9scyB3aXRoIGEgcGFyZW50IGZvcm1Hcm91cCBkaXJlY3RpdmUuICBUcnkgdXNpbmdcbiAgICAgIGZvcm1Hcm91cCdzIHBhcnRuZXIgZGlyZWN0aXZlICJmb3JtQ29udHJvbE5hbWUiIGluc3RlYWQuICBFeGFtcGxlOlxuXG4gICAgICAke3VXfVxuXG4gICAgICBPciwgaWYgeW91J2QgbGlrZSB0byBhdm9pZCByZWdpc3RlcmluZyB0aGlzIGZvcm0gY29udHJvbCwgaW5kaWNhdGUgdGhhdCBpdCdzIHN0YW5kYWxvbmUgaW4gbmdNb2RlbE9wdGlvbnM6XG5cbiAgICAgIEV4YW1wbGU6XG5cbiAgICAgICR7eVd9YCl9c3RhdGljIGZvcm1Hcm91cE5hbWVFeGNlcHRpb24oKXt0aHJvdyBuZXcgRXJyb3IoYFxuICAgICAgbmdNb2RlbCBjYW5ub3QgYmUgdXNlZCB0byByZWdpc3RlciBmb3JtIGNvbnRyb2xzIHdpdGggYSBwYXJlbnQgZm9ybUdyb3VwTmFtZSBvciBmb3JtQXJyYXlOYW1lIGRpcmVjdGl2ZS5cblxuICAgICAgT3B0aW9uIDE6IFVzZSBmb3JtQ29udHJvbE5hbWUgaW5zdGVhZCBvZiBuZ01vZGVsIChyZWFjdGl2ZSBzdHJhdGVneSk6XG5cbiAgICAgICR7Z1d9XG5cbiAgICAgIE9wdGlvbiAyOiAgVXBkYXRlIG5nTW9kZWwncyBwYXJlbnQgYmUgbmdNb2RlbEdyb3VwICh0ZW1wbGF0ZS1kcml2ZW4gc3RyYXRlZ3kpOlxuXG4gICAgICAke2JXfWApfXN0YXRpYyBtaXNzaW5nTmFtZUV4Y2VwdGlvbigpe3Rocm93IG5ldyBFcnJvcignSWYgbmdNb2RlbCBpcyB1c2VkIHdpdGhpbiBhIGZvcm0gdGFnLCBlaXRoZXIgdGhlIG5hbWUgYXR0cmlidXRlIG11c3QgYmUgc2V0IG9yIHRoZSBmb3JtXG4gICAgICBjb250cm9sIG11c3QgYmUgZGVmaW5lZCBhcyBcJ3N0YW5kYWxvbmVcJyBpbiBuZ01vZGVsT3B0aW9ucy5cblxuICAgICAgRXhhbXBsZSAxOiA8aW5wdXQgWyhuZ01vZGVsKV09InBlcnNvbi5maXJzdE5hbWUiIG5hbWU9ImZpcnN0Ij5cbiAgICAgIEV4YW1wbGUgMjogPGlucHV0IFsobmdNb2RlbCldPSJwZXJzb24uZmlyc3ROYW1lIiBbbmdNb2RlbE9wdGlvbnNdPSJ7c3RhbmRhbG9uZTogdHJ1ZX0iPicpfXN0YXRpYyBtb2RlbEdyb3VwUGFyZW50RXhjZXB0aW9uKCl7dGhyb3cgbmV3IEVycm9yKGBcbiAgICAgIG5nTW9kZWxHcm91cCBjYW5ub3QgYmUgdXNlZCB3aXRoIGEgcGFyZW50IGZvcm1Hcm91cCBkaXJlY3RpdmUuXG5cbiAgICAgIE9wdGlvbiAxOiBVc2UgZm9ybUdyb3VwTmFtZSBpbnN0ZWFkIG9mIG5nTW9kZWxHcm91cCAocmVhY3RpdmUgc3RyYXRlZ3kpOlxuXG4gICAgICAke2dXfVxuXG4gICAgICBPcHRpb24gMjogIFVzZSBhIHJlZ3VsYXIgZm9ybSB0YWcgaW5zdGVhZCBvZiB0aGUgZm9ybUdyb3VwIGRpcmVjdGl2ZSAodGVtcGxhdGUtZHJpdmVuIHN0cmF0ZWd5KTpcblxuICAgICAgJHtiV31gKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IFFXPXtwcm92aWRlOnNXLHVzZUV4aXN0aW5nOiRlKCgoKT0+JFcpKX07Y2xhc3MgJFcgZXh0ZW5kcyBLV3tjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIoKSx0aGlzLl9wYXJlbnQ9dCx0aGlzLl9zZXRWYWxpZGF0b3JzKGUpLHRoaXMuX3NldEFzeW5jVmFsaWRhdG9ycyhuKX1fY2hlY2tQYXJlbnRUeXBlKCl7dGhpcy5fcGFyZW50IGluc3RhbmNlb2YgJFd8fHRoaXMuX3BhcmVudCBpbnN0YW5jZW9mIFhXfHwidW5kZWZpbmVkIiE9dHlwZW9mIG5nRGV2TW9kZSYmIW5nRGV2TW9kZXx8SlcubW9kZWxHcm91cFBhcmVudEV4Y2VwdGlvbigpfX0kVy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8JFcpKGdmKHNXLDUpLGdmKEVVLDEwKSxnZihBVSwxMCkpfSwkVy7JtWRpcj1obyh7dHlwZTokVyxzZWxlY3RvcnM6W1siIiwibmdNb2RlbEdyb3VwIiwiIl1dLGlucHV0czp7bmFtZTpbIm5nTW9kZWxHcm91cCIsIm5hbWUiXX0sZXhwb3J0QXM6WyJuZ01vZGVsR3JvdXAiXSxmZWF0dXJlczpbamgoW1FXXSksUXBdfSksJFcuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpzVyxkZWNvcmF0b3JzOlt7dHlwZTpVcn0se3R5cGU6anJ9XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOltFVV19XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOltBVV19XX1dLCRXLnByb3BEZWNvcmF0b3JzPXtuYW1lOlt7dHlwZTpSXyxhcmdzOlsibmdNb2RlbEdyb3VwIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYigkVyxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJbbmdNb2RlbEdyb3VwXSIscHJvdmlkZXJzOltRV10sZXhwb3J0QXM6Im5nTW9kZWxHcm91cCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpzVyxkZWNvcmF0b3JzOlt7dHlwZTpVcn0se3R5cGU6anJ9XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOltFVV19XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOltBVV19XX1dfSkse25hbWU6W3t0eXBlOlJfLGFyZ3M6WyJuZ01vZGVsR3JvdXAiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCB0Rz17cHJvdmlkZTpsVyx1c2VFeGlzdGluZzokZSgoKCk9Pm5HKSl9LGVHPVByb21pc2UucmVzb2x2ZShudWxsKTtjbGFzcyBuRyBleHRlbmRzIGxXe2NvbnN0cnVjdG9yKHQsZSxuLG8pe3N1cGVyKCksdGhpcy5jb250cm9sPW5ldyBXVyx0aGlzLl9yZWdpc3RlcmVkPSExLHRoaXMudXBkYXRlPW5ldyBTeSx0aGlzLl9wYXJlbnQ9dCx0aGlzLl9zZXRWYWxpZGF0b3JzKGUpLHRoaXMuX3NldEFzeW5jVmFsaWRhdG9ycyhuKSx0aGlzLnZhbHVlQWNjZXNzb3I9RVcodGhpcyxvKX1uZ09uQ2hhbmdlcyh0KXt0aGlzLl9jaGVja0ZvckVycm9ycygpLHRoaXMuX3JlZ2lzdGVyZWR8fHRoaXMuX3NldFVwQ29udHJvbCgpLCJpc0Rpc2FibGVkImluIHQmJnRoaXMuX3VwZGF0ZURpc2FibGVkKHQpLERXKHQsdGhpcy52aWV3TW9kZWwpJiYodGhpcy5fdXBkYXRlVmFsdWUodGhpcy5tb2RlbCksdGhpcy52aWV3TW9kZWw9dGhpcy5tb2RlbCl9bmdPbkRlc3Ryb3koKXt0aGlzLmZvcm1EaXJlY3RpdmUmJnRoaXMuZm9ybURpcmVjdGl2ZS5yZW1vdmVDb250cm9sKHRoaXMpfWdldCBwYXRoKCl7cmV0dXJuIHRoaXMuX3BhcmVudD9DVyh0aGlzLm5hbWUsdGhpcy5fcGFyZW50KTpbdGhpcy5uYW1lXX1nZXQgZm9ybURpcmVjdGl2ZSgpe3JldHVybiB0aGlzLl9wYXJlbnQ/dGhpcy5fcGFyZW50LmZvcm1EaXJlY3RpdmU6bnVsbH12aWV3VG9Nb2RlbFVwZGF0ZSh0KXt0aGlzLnZpZXdNb2RlbD10LHRoaXMudXBkYXRlLmVtaXQodCl9X3NldFVwQ29udHJvbCgpe3RoaXMuX3NldFVwZGF0ZVN0cmF0ZWd5KCksdGhpcy5faXNTdGFuZGFsb25lKCk/dGhpcy5fc2V0VXBTdGFuZGFsb25lKCk6dGhpcy5mb3JtRGlyZWN0aXZlLmFkZENvbnRyb2wodGhpcyksdGhpcy5fcmVnaXN0ZXJlZD0hMH1fc2V0VXBkYXRlU3RyYXRlZ3koKXt0aGlzLm9wdGlvbnMmJm51bGwhPXRoaXMub3B0aW9ucy51cGRhdGVPbiYmKHRoaXMuY29udHJvbC5fdXBkYXRlT249dGhpcy5vcHRpb25zLnVwZGF0ZU9uKX1faXNTdGFuZGFsb25lKCl7cmV0dXJuIXRoaXMuX3BhcmVudHx8ISghdGhpcy5vcHRpb25zfHwhdGhpcy5vcHRpb25zLnN0YW5kYWxvbmUpfV9zZXRVcFN0YW5kYWxvbmUoKXtNVyh0aGlzLmNvbnRyb2wsdGhpcyksdGhpcy5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDohMX0pfV9jaGVja0ZvckVycm9ycygpe3RoaXMuX2lzU3RhbmRhbG9uZSgpfHx0aGlzLl9jaGVja1BhcmVudFR5cGUoKSx0aGlzLl9jaGVja05hbWUoKX1fY2hlY2tQYXJlbnRUeXBlKCl7KCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiYoISh0aGlzLl9wYXJlbnQgaW5zdGFuY2VvZiAkVykmJnRoaXMuX3BhcmVudCBpbnN0YW5jZW9mIEtXP0pXLmZvcm1Hcm91cE5hbWVFeGNlcHRpb24oKTp0aGlzLl9wYXJlbnQgaW5zdGFuY2VvZiAkV3x8dGhpcy5fcGFyZW50IGluc3RhbmNlb2YgWFd8fEpXLm1vZGVsUGFyZW50RXhjZXB0aW9uKCkpfV9jaGVja05hbWUoKXt0aGlzLm9wdGlvbnMmJnRoaXMub3B0aW9ucy5uYW1lJiYodGhpcy5uYW1lPXRoaXMub3B0aW9ucy5uYW1lKSx0aGlzLl9pc1N0YW5kYWxvbmUoKXx8dGhpcy5uYW1lfHwidW5kZWZpbmVkIiE9dHlwZW9mIG5nRGV2TW9kZSYmIW5nRGV2TW9kZXx8SlcubWlzc2luZ05hbWVFeGNlcHRpb24oKX1fdXBkYXRlVmFsdWUodCl7ZUcudGhlbigoKCk9Pnt0aGlzLmNvbnRyb2wuc2V0VmFsdWUodCx7ZW1pdFZpZXdUb01vZGVsQ2hhbmdlOiExfSl9KSl9X3VwZGF0ZURpc2FibGVkKHQpe2NvbnN0IGU9dC5pc0Rpc2FibGVkLmN1cnJlbnRWYWx1ZSxuPSIiPT09ZXx8ZSYmImZhbHNlIiE9PWU7ZUcudGhlbigoKCk9PntuJiYhdGhpcy5jb250cm9sLmRpc2FibGVkP3RoaXMuY29udHJvbC5kaXNhYmxlKCk6IW4mJnRoaXMuY29udHJvbC5kaXNhYmxlZCYmdGhpcy5jb250cm9sLmVuYWJsZSgpfSkpfX1uRy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bkcpKGdmKHNXLDkpLGdmKEVVLDEwKSxnZihBVSwxMCksZ2YoeFUsMTApKX0sbkcuybVkaXI9aG8oe3R5cGU6bkcsc2VsZWN0b3JzOltbIiIsIm5nTW9kZWwiLCIiLDMsImZvcm1Db250cm9sTmFtZSIsIiIsMywiZm9ybUNvbnRyb2wiLCIiXV0saW5wdXRzOntuYW1lOiJuYW1lIixpc0Rpc2FibGVkOlsiZGlzYWJsZWQiLCJpc0Rpc2FibGVkIl0sbW9kZWw6WyJuZ01vZGVsIiwibW9kZWwiXSxvcHRpb25zOlsibmdNb2RlbE9wdGlvbnMiLCJvcHRpb25zIl19LG91dHB1dHM6e3VwZGF0ZToibmdNb2RlbENoYW5nZSJ9LGV4cG9ydEFzOlsibmdNb2RlbCJdLGZlYXR1cmVzOltqaChbdEddKSxRcCxxb119KSxuRy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnNXLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpVcn1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6VnJ9LHt0eXBlOkxyLGFyZ3M6W0VVXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6VnJ9LHt0eXBlOkxyLGFyZ3M6W0FVXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6VnJ9LHt0eXBlOkxyLGFyZ3M6W3hVXX1dfV0sbkcucHJvcERlY29yYXRvcnM9e25hbWU6W3t0eXBlOlJffV0saXNEaXNhYmxlZDpbe3R5cGU6Ul8sYXJnczpbImRpc2FibGVkIl19XSxtb2RlbDpbe3R5cGU6Ul8sYXJnczpbIm5nTW9kZWwiXX1dLG9wdGlvbnM6W3t0eXBlOlJfLGFyZ3M6WyJuZ01vZGVsT3B0aW9ucyJdfV0sdXBkYXRlOlt7dHlwZTpFXyxhcmdzOlsibmdNb2RlbENoYW5nZSJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIobkcsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW25nTW9kZWxdOm5vdChbZm9ybUNvbnRyb2xOYW1lXSk6bm90KFtmb3JtQ29udHJvbF0pIixwcm92aWRlcnM6W3RHXSxleHBvcnRBczoibmdNb2RlbCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpzVyxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6VXJ9XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOltFVV19XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOltBVV19XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOlt4VV19XX1dfSkse3VwZGF0ZTpbe3R5cGU6RV8sYXJnczpbIm5nTW9kZWxDaGFuZ2UiXX1dLG5hbWU6W3t0eXBlOlJffV0saXNEaXNhYmxlZDpbe3R5cGU6Ul8sYXJnczpbImRpc2FibGVkIl19XSxtb2RlbDpbe3R5cGU6Ul8sYXJnczpbIm5nTW9kZWwiXX1dLG9wdGlvbnM6W3t0eXBlOlJfLGFyZ3M6WyJuZ01vZGVsT3B0aW9ucyJdfV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIG9He31vRy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8b0cpfSxvRy7JtWRpcj1obyh7dHlwZTpvRyxzZWxlY3RvcnM6W1siZm9ybSIsMywibmdOb0Zvcm0iLCIiLDMsIm5nTmF0aXZlVmFsaWRhdGUiLCIiXV0saG9zdEF0dHJzOlsibm92YWxpZGF0ZSIsIiJdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihvRyxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJmb3JtOm5vdChbbmdOb0Zvcm1dKTpub3QoW25nTmF0aXZlVmFsaWRhdGVdKSIsaG9zdDp7bm92YWxpZGF0ZToiIn19XX1dLG51bGwsbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBpRz17cHJvdmlkZTp4VSx1c2VFeGlzdGluZzokZSgoKCk9PmFHKSksbXVsdGk6ITB9O2NsYXNzIGFHIGV4dGVuZHMgdlV7d3JpdGVWYWx1ZSh0KXt0aGlzLnNldFByb3BlcnR5KCJ2YWx1ZSIsbnVsbD09dD8iIjp0KX1yZWdpc3Rlck9uQ2hhbmdlKHQpe3RoaXMub25DaGFuZ2U9ZT0+e3QoIiI9PWU/bnVsbDpwYXJzZUZsb2F0KGUpKX19fWFHLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1VYShhRykpKShufHxhRyl9fSkoKSxhRy7JtWRpcj1obyh7dHlwZTphRyxzZWxlY3RvcnM6W1siaW5wdXQiLCJ0eXBlIiwibnVtYmVyIiwiZm9ybUNvbnRyb2xOYW1lIiwiIl0sWyJpbnB1dCIsInR5cGUiLCJudW1iZXIiLCJmb3JtQ29udHJvbCIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwibnVtYmVyIiwibmdNb2RlbCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmUmYoImlucHV0IiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbkNoYW5nZShlLnRhcmdldC52YWx1ZSl9KSkoImJsdXIiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25Ub3VjaGVkKCl9KSl9LGZlYXR1cmVzOltqaChbaUddKSxRcF19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGFHLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6ImlucHV0W3R5cGU9bnVtYmVyXVtmb3JtQ29udHJvbE5hbWVdLGlucHV0W3R5cGU9bnVtYmVyXVtmb3JtQ29udHJvbF0saW5wdXRbdHlwZT1udW1iZXJdW25nTW9kZWxdIixob3N0OnsiKGlucHV0KSI6Im9uQ2hhbmdlKCRldmVudC50YXJnZXQudmFsdWUpIiwiKGJsdXIpIjoib25Ub3VjaGVkKCkifSxwcm92aWRlcnM6W2lHXX1dfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IHJHPXtwcm92aWRlOnhVLHVzZUV4aXN0aW5nOiRlKCgoKT0+Y0cpKSxtdWx0aTohMH07Y2xhc3Mgc0d7fXNHLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxzRyl9LHNHLsm1bW9kPWZvKHt0eXBlOnNHfSksc0cuybVpbmo9RG4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoc0csW3t0eXBlOkxffV0sbnVsbCxudWxsKTtjbGFzcyBsR3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2FjY2Vzc29ycz1bXX1hZGQodCxlKXt0aGlzLl9hY2Nlc3NvcnMucHVzaChbdCxlXSl9cmVtb3ZlKHQpe2ZvcihsZXQgZT10aGlzLl9hY2Nlc3NvcnMubGVuZ3RoLTE7ZT49MDstLWUpaWYodGhpcy5fYWNjZXNzb3JzW2VdWzFdPT09dClyZXR1cm4gdm9pZCB0aGlzLl9hY2Nlc3NvcnMuc3BsaWNlKGUsMSl9c2VsZWN0KHQpe3RoaXMuX2FjY2Vzc29ycy5mb3JFYWNoKChlPT57dGhpcy5faXNTYW1lR3JvdXAoZSx0KSYmZVsxXSE9PXQmJmVbMV0uZmlyZVVuY2hlY2sodC52YWx1ZSl9KSl9X2lzU2FtZUdyb3VwKHQsZSl7cmV0dXJuISF0WzBdLmNvbnRyb2wmJih0WzBdLl9wYXJlbnQ9PT1lLl9jb250cm9sLl9wYXJlbnQmJnRbMV0ubmFtZT09PWUubmFtZSl9fWxHLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxsRyl9LGxHLsm1cHJvdj1Tbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBsR30sdG9rZW46bEcscHJvdmlkZWRJbjpzR30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIobEcsW3t0eXBlOlVtLGFyZ3M6W3twcm92aWRlZEluOnNHfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLG51bGwpO2NsYXNzIGNHIGV4dGVuZHMgdlV7Y29uc3RydWN0b3IodCxlLG4sbyl7c3VwZXIodCxlKSx0aGlzLl9yZWdpc3RyeT1uLHRoaXMuX2luamVjdG9yPW8sdGhpcy5vbkNoYW5nZT0oKT0+e319bmdPbkluaXQoKXt0aGlzLl9jb250cm9sPXRoaXMuX2luamVjdG9yLmdldChsVyksdGhpcy5fY2hlY2tOYW1lKCksdGhpcy5fcmVnaXN0cnkuYWRkKHRoaXMuX2NvbnRyb2wsdGhpcyl9bmdPbkRlc3Ryb3koKXt0aGlzLl9yZWdpc3RyeS5yZW1vdmUodGhpcyl9d3JpdGVWYWx1ZSh0KXt0aGlzLl9zdGF0ZT10PT09dGhpcy52YWx1ZSx0aGlzLnNldFByb3BlcnR5KCJjaGVja2VkIix0aGlzLl9zdGF0ZSl9cmVnaXN0ZXJPbkNoYW5nZSh0KXt0aGlzLl9mbj10LHRoaXMub25DaGFuZ2U9KCk9Pnt0KHRoaXMudmFsdWUpLHRoaXMuX3JlZ2lzdHJ5LnNlbGVjdCh0aGlzKX19ZmlyZVVuY2hlY2sodCl7dGhpcy53cml0ZVZhbHVlKHQpfV9jaGVja05hbWUoKXt0aGlzLm5hbWUmJnRoaXMuZm9ybUNvbnRyb2xOYW1lJiZ0aGlzLm5hbWUhPT10aGlzLmZvcm1Db250cm9sTmFtZSYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiYoZnVuY3Rpb24gdCgpe3Rocm93IG5ldyBFcnJvcignXG4gICAgICBJZiB5b3UgZGVmaW5lIGJvdGggYSBuYW1lIGFuZCBhIGZvcm1Db250cm9sTmFtZSBhdHRyaWJ1dGUgb24geW91ciByYWRpbyBidXR0b24sIHRoZWlyIHZhbHVlc1xuICAgICAgbXVzdCBtYXRjaC4gRXg6IDxpbnB1dCB0eXBlPSJyYWRpbyIgZm9ybUNvbnRyb2xOYW1lPSJmb29kIiBuYW1lPSJmb29kIj5cbiAgICAnKX0pKCksIXRoaXMubmFtZSYmdGhpcy5mb3JtQ29udHJvbE5hbWUmJih0aGlzLm5hbWU9dGhpcy5mb3JtQ29udHJvbE5hbWUpfX1jRy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Y0cpKGdmKCRoKSxnZihLaCksZ2YobEcpLGdmKE5wKSl9LGNHLsm1ZGlyPWhvKHt0eXBlOmNHLHNlbGVjdG9yczpbWyJpbnB1dCIsInR5cGUiLCJyYWRpbyIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwicmFkaW8iLCJmb3JtQ29udHJvbCIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwicmFkaW8iLCJuZ01vZGVsIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZSZigiY2hhbmdlIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uQ2hhbmdlKCl9KSkoImJsdXIiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25Ub3VjaGVkKCl9KSl9LGlucHV0czp7bmFtZToibmFtZSIsZm9ybUNvbnRyb2xOYW1lOiJmb3JtQ29udHJvbE5hbWUiLHZhbHVlOiJ2YWx1ZSJ9LGZlYXR1cmVzOltqaChbckddKSxRcF19KSxjRy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOiRofSx7dHlwZTpLaH0se3R5cGU6bEd9LHt0eXBlOk5wfV0sY0cucHJvcERlY29yYXRvcnM9e25hbWU6W3t0eXBlOlJffV0sZm9ybUNvbnRyb2xOYW1lOlt7dHlwZTpSX31dLHZhbHVlOlt7dHlwZTpSX31dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGNHLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6ImlucHV0W3R5cGU9cmFkaW9dW2Zvcm1Db250cm9sTmFtZV0saW5wdXRbdHlwZT1yYWRpb11bZm9ybUNvbnRyb2xdLGlucHV0W3R5cGU9cmFkaW9dW25nTW9kZWxdIixob3N0OnsiKGNoYW5nZSkiOiJvbkNoYW5nZSgpIiwiKGJsdXIpIjoib25Ub3VjaGVkKCkifSxwcm92aWRlcnM6W3JHXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOiRofSx7dHlwZTpLaH0se3R5cGU6bEd9LHt0eXBlOk5wfV19KSx7bmFtZTpbe3R5cGU6Ul99XSxmb3JtQ29udHJvbE5hbWU6W3t0eXBlOlJffV0sdmFsdWU6W3t0eXBlOlJffV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IGRHPXtwcm92aWRlOnhVLHVzZUV4aXN0aW5nOiRlKCgoKT0+cEcpKSxtdWx0aTohMH07Y2xhc3MgcEcgZXh0ZW5kcyB2VXt3cml0ZVZhbHVlKHQpe3RoaXMuc2V0UHJvcGVydHkoInZhbHVlIixwYXJzZUZsb2F0KHQpKX1yZWdpc3Rlck9uQ2hhbmdlKHQpe3RoaXMub25DaGFuZ2U9ZT0+e3QoIiI9PWU/bnVsbDpwYXJzZUZsb2F0KGUpKX19fXBHLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1VYShwRykpKShufHxwRyl9fSkoKSxwRy7JtWRpcj1obyh7dHlwZTpwRyxzZWxlY3RvcnM6W1siaW5wdXQiLCJ0eXBlIiwicmFuZ2UiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbImlucHV0IiwidHlwZSIsInJhbmdlIiwiZm9ybUNvbnRyb2wiLCIiXSxbImlucHV0IiwidHlwZSIsInJhbmdlIiwibmdNb2RlbCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmUmYoImNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25DaGFuZ2UoZS50YXJnZXQudmFsdWUpfSkpKCJpbnB1dCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25DaGFuZ2UoZS50YXJnZXQudmFsdWUpfSkpKCJibHVyIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uVG91Y2hlZCgpfSkpfSxmZWF0dXJlczpbamgoW2RHXSksUXBdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihwRyxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJpbnB1dFt0eXBlPXJhbmdlXVtmb3JtQ29udHJvbE5hbWVdLGlucHV0W3R5cGU9cmFuZ2VdW2Zvcm1Db250cm9sXSxpbnB1dFt0eXBlPXJhbmdlXVtuZ01vZGVsXSIsaG9zdDp7IihjaGFuZ2UpIjoib25DaGFuZ2UoJGV2ZW50LnRhcmdldC52YWx1ZSkiLCIoaW5wdXQpIjoib25DaGFuZ2UoJGV2ZW50LnRhcmdldC52YWx1ZSkiLCIoYmx1cikiOiJvblRvdWNoZWQoKSJ9LHByb3ZpZGVyczpbZEddfV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgbUc9bmV3IGVyKCJOZ01vZGVsV2l0aEZvcm1Db250cm9sV2FybmluZyIpLGZHPXtwcm92aWRlOmxXLHVzZUV4aXN0aW5nOiRlKCgoKT0+dUcpKX07Y2xhc3MgdUcgZXh0ZW5kcyBsV3tjb25zdHJ1Y3Rvcih0LGUsbixvKXtzdXBlcigpLHRoaXMuX25nTW9kZWxXYXJuaW5nQ29uZmlnPW8sdGhpcy51cGRhdGU9bmV3IFN5LHRoaXMuX25nTW9kZWxXYXJuaW5nU2VudD0hMSx0aGlzLl9zZXRWYWxpZGF0b3JzKHQpLHRoaXMuX3NldEFzeW5jVmFsaWRhdG9ycyhlKSx0aGlzLnZhbHVlQWNjZXNzb3I9RVcodGhpcyxuKX1zZXQgaXNEaXNhYmxlZCh0KXsoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJl9XLmRpc2FibGVkQXR0cldhcm5pbmcoKX1uZ09uQ2hhbmdlcyh0KXtpZih0aGlzLl9pc0NvbnRyb2xDaGFuZ2VkKHQpKXtjb25zdCBlPXQuZm9ybS5wcmV2aW91c1ZhbHVlO2UmJnZXKGUsdGhpcywhMSksTVcodGhpcy5mb3JtLHRoaXMpLHRoaXMuY29udHJvbC5kaXNhYmxlZCYmdGhpcy52YWx1ZUFjY2Vzc29yLnNldERpc2FibGVkU3RhdGUmJnRoaXMudmFsdWVBY2Nlc3Nvci5zZXREaXNhYmxlZFN0YXRlKCEwKSx0aGlzLmZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSl9RFcodCx0aGlzLnZpZXdNb2RlbCkmJigoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlRXKCJmb3JtQ29udHJvbCIsdUcsdGhpcyx0aGlzLl9uZ01vZGVsV2FybmluZ0NvbmZpZyksdGhpcy5mb3JtLnNldFZhbHVlKHRoaXMubW9kZWwpLHRoaXMudmlld01vZGVsPXRoaXMubW9kZWwpfW5nT25EZXN0cm95KCl7dGhpcy5mb3JtJiZ2Vyh0aGlzLmZvcm0sdGhpcywhMSl9Z2V0IHBhdGgoKXtyZXR1cm5bXX1nZXQgY29udHJvbCgpe3JldHVybiB0aGlzLmZvcm19dmlld1RvTW9kZWxVcGRhdGUodCl7dGhpcy52aWV3TW9kZWw9dCx0aGlzLnVwZGF0ZS5lbWl0KHQpfV9pc0NvbnRyb2xDaGFuZ2VkKHQpe3JldHVybiB0Lmhhc093blByb3BlcnR5KCJmb3JtIil9fXVHLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx1RykoZ2YoRVUsMTApLGdmKEFVLDEwKSxnZih4VSwxMCksZ2YobUcsOCkpfSx1Ry7JtWRpcj1obyh7dHlwZTp1RyxzZWxlY3RvcnM6W1siIiwiZm9ybUNvbnRyb2wiLCIiXV0saW5wdXRzOntpc0Rpc2FibGVkOlsiZGlzYWJsZWQiLCJpc0Rpc2FibGVkIl0sZm9ybTpbImZvcm1Db250cm9sIiwiZm9ybSJdLG1vZGVsOlsibmdNb2RlbCIsIm1vZGVsIl19LG91dHB1dHM6e3VwZGF0ZToibmdNb2RlbENoYW5nZSJ9LGV4cG9ydEFzOlsibmdGb3JtIl0sZmVhdHVyZXM6W2poKFtmR10pLFFwLHFvXX0pLHVHLl9uZ01vZGVsV2FybmluZ1NlbnRPbmNlPSExLHVHLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOltFVV19XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOltBVV19XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOlt4VV19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOlttR119XX1dLHVHLnByb3BEZWNvcmF0b3JzPXtmb3JtOlt7dHlwZTpSXyxhcmdzOlsiZm9ybUNvbnRyb2wiXX1dLGlzRGlzYWJsZWQ6W3t0eXBlOlJfLGFyZ3M6WyJkaXNhYmxlZCJdfV0sbW9kZWw6W3t0eXBlOlJfLGFyZ3M6WyJuZ01vZGVsIl19XSx1cGRhdGU6W3t0eXBlOkVfLGFyZ3M6WyJuZ01vZGVsQ2hhbmdlIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih1Ryxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJbZm9ybUNvbnRyb2xdIixwcm92aWRlcnM6W2ZHXSxleHBvcnRBczoibmdGb3JtIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpWcn0se3R5cGU6THIsYXJnczpbRVVdfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpWcn0se3R5cGU6THIsYXJnczpbQVVdfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpWcn0se3R5cGU6THIsYXJnczpbeFVdfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbbUddfV19XX0pLHt1cGRhdGU6W3t0eXBlOkVfLGFyZ3M6WyJuZ01vZGVsQ2hhbmdlIl19XSxpc0Rpc2FibGVkOlt7dHlwZTpSXyxhcmdzOlsiZGlzYWJsZWQiXX1dLGZvcm06W3t0eXBlOlJfLGFyZ3M6WyJmb3JtQ29udHJvbCJdfV0sbW9kZWw6W3t0eXBlOlJfLGFyZ3M6WyJuZ01vZGVsIl19XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgZ0c9e3Byb3ZpZGU6c1csdXNlRXhpc3Rpbmc6JGUoKCgpPT5oRykpfTtjbGFzcyBoRyBleHRlbmRzIHNXe2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKSx0aGlzLnZhbGlkYXRvcnM9dCx0aGlzLmFzeW5jVmFsaWRhdG9ycz1lLHRoaXMuc3VibWl0dGVkPSExLHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZT0oKT0+dGhpcy5fdXBkYXRlRG9tVmFsdWUoKSx0aGlzLmRpcmVjdGl2ZXM9W10sdGhpcy5mb3JtPW51bGwsdGhpcy5uZ1N1Ym1pdD1uZXcgU3ksdGhpcy5fc2V0VmFsaWRhdG9ycyh0KSx0aGlzLl9zZXRBc3luY1ZhbGlkYXRvcnMoZSl9bmdPbkNoYW5nZXModCl7dGhpcy5fY2hlY2tGb3JtUHJlc2VudCgpLHQuaGFzT3duUHJvcGVydHkoImZvcm0iKSYmKHRoaXMuX3VwZGF0ZVZhbGlkYXRvcnMoKSx0aGlzLl91cGRhdGVEb21WYWx1ZSgpLHRoaXMuX3VwZGF0ZVJlZ2lzdHJhdGlvbnMoKSx0aGlzLl9vbGRGb3JtPXRoaXMuZm9ybSl9bmdPbkRlc3Ryb3koKXt0aGlzLmZvcm0mJihQVyh0aGlzLmZvcm0sdGhpcyksdGhpcy5mb3JtLl9vbkNvbGxlY3Rpb25DaGFuZ2U9PT10aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UmJnRoaXMuZm9ybS5fcmVnaXN0ZXJPbkNvbGxlY3Rpb25DaGFuZ2UoKCgpPT57fSkpKX1nZXQgZm9ybURpcmVjdGl2ZSgpe3JldHVybiB0aGlzfWdldCBjb250cm9sKCl7cmV0dXJuIHRoaXMuZm9ybX1nZXQgcGF0aCgpe3JldHVybltdfWFkZENvbnRyb2wodCl7Y29uc3QgZT10aGlzLmZvcm0uZ2V0KHQucGF0aCk7cmV0dXJuIE1XKGUsdCksZS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6ITF9KSx0aGlzLmRpcmVjdGl2ZXMucHVzaCh0KSxlfWdldENvbnRyb2wodCl7cmV0dXJuIHRoaXMuZm9ybS5nZXQodC5wYXRoKX1yZW1vdmVDb250cm9sKHQpe3ZXKHQuY29udHJvbHx8bnVsbCx0LCExKSxBVyh0aGlzLmRpcmVjdGl2ZXMsdCl9YWRkRm9ybUdyb3VwKHQpe3RoaXMuX3NldFVwRm9ybUNvbnRhaW5lcih0KX1yZW1vdmVGb3JtR3JvdXAodCl7dGhpcy5fY2xlYW5VcEZvcm1Db250YWluZXIodCl9Z2V0Rm9ybUdyb3VwKHQpe3JldHVybiB0aGlzLmZvcm0uZ2V0KHQucGF0aCl9YWRkRm9ybUFycmF5KHQpe3RoaXMuX3NldFVwRm9ybUNvbnRhaW5lcih0KX1yZW1vdmVGb3JtQXJyYXkodCl7dGhpcy5fY2xlYW5VcEZvcm1Db250YWluZXIodCl9Z2V0Rm9ybUFycmF5KHQpe3JldHVybiB0aGlzLmZvcm0uZ2V0KHQucGF0aCl9dXBkYXRlTW9kZWwodCxlKXt0aGlzLmZvcm0uZ2V0KHQucGF0aCkuc2V0VmFsdWUoZSl9b25TdWJtaXQodCl7cmV0dXJuIHRoaXMuc3VibWl0dGVkPSEwLFJXKHRoaXMuZm9ybSx0aGlzLmRpcmVjdGl2ZXMpLHRoaXMubmdTdWJtaXQuZW1pdCh0KSwhMX1vblJlc2V0KCl7dGhpcy5yZXNldEZvcm0oKX1yZXNldEZvcm0odCl7dGhpcy5mb3JtLnJlc2V0KHQpLHRoaXMuc3VibWl0dGVkPSExfV91cGRhdGVEb21WYWx1ZSgpe3RoaXMuZGlyZWN0aXZlcy5mb3JFYWNoKCh0PT57Y29uc3QgZT10LmNvbnRyb2wsbj10aGlzLmZvcm0uZ2V0KHQucGF0aCk7ZSE9PW4mJih2VyhlfHxudWxsLHQpLG4gaW5zdGFuY2VvZiBXVyYmKE1XKG4sdCksdC5jb250cm9sPW4pKX0pKSx0aGlzLmZvcm0uX3VwZGF0ZVRyZWVWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSl9X3NldFVwRm9ybUNvbnRhaW5lcih0KXtjb25zdCBlPXRoaXMuZm9ybS5nZXQodC5wYXRoKTtrVyhlLHQpLGUudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSl9X2NsZWFuVXBGb3JtQ29udGFpbmVyKHQpe2lmKHRoaXMuZm9ybSl7Y29uc3QgZT10aGlzLmZvcm0uZ2V0KHQucGF0aCk7aWYoZSl7KGZ1bmN0aW9uIG4odCxlKXtyZXR1cm4gUFcodCxlKX0pKGUsdCkmJmUudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSl9fX1fdXBkYXRlUmVnaXN0cmF0aW9ucygpe3RoaXMuZm9ybS5fcmVnaXN0ZXJPbkNvbGxlY3Rpb25DaGFuZ2UodGhpcy5fb25Db2xsZWN0aW9uQ2hhbmdlKSx0aGlzLl9vbGRGb3JtJiZ0aGlzLl9vbGRGb3JtLl9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSgoKCk9Pnt9KSl9X3VwZGF0ZVZhbGlkYXRvcnMoKXtPVyh0aGlzLmZvcm0sdGhpcyksdGhpcy5fb2xkRm9ybSYmUFcodGhpcy5fb2xkRm9ybSx0aGlzKX1fY2hlY2tGb3JtUHJlc2VudCgpe3RoaXMuZm9ybXx8InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0Rldk1vZGUmJiFuZ0Rldk1vZGV8fF9XLm1pc3NpbmdGb3JtRXhjZXB0aW9uKCl9fWhHLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxoRykoZ2YoRVUsMTApLGdmKEFVLDEwKSl9LGhHLsm1ZGlyPWhvKHt0eXBlOmhHLHNlbGVjdG9yczpbWyIiLCJmb3JtR3JvdXAiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlJmKCJzdWJtaXQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uU3VibWl0KGUpfSkpKCJyZXNldCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblJlc2V0KCl9KSl9LGlucHV0czp7Zm9ybTpbImZvcm1Hcm91cCIsImZvcm0iXX0sb3V0cHV0czp7bmdTdWJtaXQ6Im5nU3VibWl0In0sZXhwb3J0QXM6WyJuZ0Zvcm0iXSxmZWF0dXJlczpbamgoW2dHXSksUXAscW9dfSksaEcuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6VnJ9LHt0eXBlOkxyLGFyZ3M6W0VVXX1dfSx7dHlwZTpBcnJheSxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6VnJ9LHt0eXBlOkxyLGFyZ3M6W0FVXX1dfV0saEcucHJvcERlY29yYXRvcnM9e2Zvcm06W3t0eXBlOlJfLGFyZ3M6WyJmb3JtR3JvdXAiXX1dLG5nU3VibWl0Olt7dHlwZTpFX31dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGhHLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6Iltmb3JtR3JvdXBdIixwcm92aWRlcnM6W2dHXSxob3N0OnsiKHN1Ym1pdCkiOiJvblN1Ym1pdCgkZXZlbnQpIiwiKHJlc2V0KSI6Im9uUmVzZXQoKSJ9LGV4cG9ydEFzOiJuZ0Zvcm0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOltFVV19XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOltBVV19XX1dfSkse2Zvcm06W3t0eXBlOlJfLGFyZ3M6WyJmb3JtR3JvdXAiXX1dLG5nU3VibWl0Olt7dHlwZTpFX31dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBiRz17cHJvdmlkZTpzVyx1c2VFeGlzdGluZzokZSgoKCk9PnlHKSl9O2NsYXNzIHlHIGV4dGVuZHMgS1d7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKCksdGhpcy5fcGFyZW50PXQsdGhpcy5fc2V0VmFsaWRhdG9ycyhlKSx0aGlzLl9zZXRBc3luY1ZhbGlkYXRvcnMobil9X2NoZWNrUGFyZW50VHlwZSgpe01HKHRoaXMuX3BhcmVudCkmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmX1cuZ3JvdXBQYXJlbnRFeGNlcHRpb24oKX19eUcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHlHKShnZihzVywxMyksZ2YoRVUsMTApLGdmKEFVLDEwKSl9LHlHLsm1ZGlyPWhvKHt0eXBlOnlHLHNlbGVjdG9yczpbWyIiLCJmb3JtR3JvdXBOYW1lIiwiIl1dLGlucHV0czp7bmFtZTpbImZvcm1Hcm91cE5hbWUiLCJuYW1lIl19LGZlYXR1cmVzOltqaChbYkddKSxRcF19KSx5Ry5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnNXLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpVcn0se3R5cGU6anJ9XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOltFVV19XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOltBVV19XX1dLHlHLnByb3BEZWNvcmF0b3JzPXtuYW1lOlt7dHlwZTpSXyxhcmdzOlsiZm9ybUdyb3VwTmFtZSJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoeUcsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW2Zvcm1Hcm91cE5hbWVdIixwcm92aWRlcnM6W2JHXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnNXLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpVcn0se3R5cGU6anJ9XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOltFVV19XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOltBVV19XX1dfSkse25hbWU6W3t0eXBlOlJfLGFyZ3M6WyJmb3JtR3JvdXBOYW1lIl19XX0pO2NvbnN0IF9HPXtwcm92aWRlOnNXLHVzZUV4aXN0aW5nOiRlKCgoKT0+Q0cpKX07Y2xhc3MgQ0cgZXh0ZW5kcyBzV3tjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIoKSx0aGlzLl9wYXJlbnQ9dCx0aGlzLl9zZXRWYWxpZGF0b3JzKGUpLHRoaXMuX3NldEFzeW5jVmFsaWRhdG9ycyhuKX1uZ09uSW5pdCgpe3RoaXMuX2NoZWNrUGFyZW50VHlwZSgpLHRoaXMuZm9ybURpcmVjdGl2ZS5hZGRGb3JtQXJyYXkodGhpcyl9bmdPbkRlc3Ryb3koKXt0aGlzLmZvcm1EaXJlY3RpdmUmJnRoaXMuZm9ybURpcmVjdGl2ZS5yZW1vdmVGb3JtQXJyYXkodGhpcyl9Z2V0IGNvbnRyb2woKXtyZXR1cm4gdGhpcy5mb3JtRGlyZWN0aXZlLmdldEZvcm1BcnJheSh0aGlzKX1nZXQgZm9ybURpcmVjdGl2ZSgpe3JldHVybiB0aGlzLl9wYXJlbnQ/dGhpcy5fcGFyZW50LmZvcm1EaXJlY3RpdmU6bnVsbH1nZXQgcGF0aCgpe3JldHVybiBDVyhudWxsPT10aGlzLm5hbWU/dGhpcy5uYW1lOnRoaXMubmFtZS50b1N0cmluZygpLHRoaXMuX3BhcmVudCl9X2NoZWNrUGFyZW50VHlwZSgpe01HKHRoaXMuX3BhcmVudCkmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmX1cuYXJyYXlQYXJlbnRFeGNlcHRpb24oKX19ZnVuY3Rpb24gTUcodCl7cmV0dXJuISh0IGluc3RhbmNlb2YgeUd8fHQgaW5zdGFuY2VvZiBoR3x8dCBpbnN0YW5jZW9mIENHKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovQ0cuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fENHKShnZihzVywxMyksZ2YoRVUsMTApLGdmKEFVLDEwKSl9LENHLsm1ZGlyPWhvKHt0eXBlOkNHLHNlbGVjdG9yczpbWyIiLCJmb3JtQXJyYXlOYW1lIiwiIl1dLGlucHV0czp7bmFtZTpbImZvcm1BcnJheU5hbWUiLCJuYW1lIl19LGZlYXR1cmVzOltqaChbX0ddKSxRcF19KSxDRy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnNXLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpVcn0se3R5cGU6anJ9XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOltFVV19XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOltBVV19XX1dLENHLnByb3BEZWNvcmF0b3JzPXtuYW1lOlt7dHlwZTpSXyxhcmdzOlsiZm9ybUFycmF5TmFtZSJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoQ0csW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW2Zvcm1BcnJheU5hbWVdIixwcm92aWRlcnM6W19HXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnNXLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpVcn0se3R5cGU6anJ9XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOltFVV19XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOltBVV19XX1dfSkse25hbWU6W3t0eXBlOlJfLGFyZ3M6WyJmb3JtQXJyYXlOYW1lIl19XX0pO2NvbnN0IHZHPXtwcm92aWRlOmxXLHVzZUV4aXN0aW5nOiRlKCgoKT0+eEcpKX07Y2xhc3MgeEcgZXh0ZW5kcyBsV3tjb25zdHJ1Y3Rvcih0LGUsbixvLGkpe3N1cGVyKCksdGhpcy5fbmdNb2RlbFdhcm5pbmdDb25maWc9aSx0aGlzLl9hZGRlZD0hMSx0aGlzLnVwZGF0ZT1uZXcgU3ksdGhpcy5fbmdNb2RlbFdhcm5pbmdTZW50PSExLHRoaXMuX3BhcmVudD10LHRoaXMuX3NldFZhbGlkYXRvcnMoZSksdGhpcy5fc2V0QXN5bmNWYWxpZGF0b3JzKG4pLHRoaXMudmFsdWVBY2Nlc3Nvcj1FVyh0aGlzLG8pfXNldCBpc0Rpc2FibGVkKHQpeygidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmX1cuZGlzYWJsZWRBdHRyV2FybmluZygpfW5nT25DaGFuZ2VzKHQpe3RoaXMuX2FkZGVkfHx0aGlzLl9zZXRVcENvbnRyb2woKSxEVyh0LHRoaXMudmlld01vZGVsKSYmKCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmVFcoImZvcm1Db250cm9sTmFtZSIseEcsdGhpcyx0aGlzLl9uZ01vZGVsV2FybmluZ0NvbmZpZyksdGhpcy52aWV3TW9kZWw9dGhpcy5tb2RlbCx0aGlzLmZvcm1EaXJlY3RpdmUudXBkYXRlTW9kZWwodGhpcyx0aGlzLm1vZGVsKSl9bmdPbkRlc3Ryb3koKXt0aGlzLmZvcm1EaXJlY3RpdmUmJnRoaXMuZm9ybURpcmVjdGl2ZS5yZW1vdmVDb250cm9sKHRoaXMpfXZpZXdUb01vZGVsVXBkYXRlKHQpe3RoaXMudmlld01vZGVsPXQsdGhpcy51cGRhdGUuZW1pdCh0KX1nZXQgcGF0aCgpe3JldHVybiBDVyhudWxsPT10aGlzLm5hbWU/dGhpcy5uYW1lOnRoaXMubmFtZS50b1N0cmluZygpLHRoaXMuX3BhcmVudCl9Z2V0IGZvcm1EaXJlY3RpdmUoKXtyZXR1cm4gdGhpcy5fcGFyZW50P3RoaXMuX3BhcmVudC5mb3JtRGlyZWN0aXZlOm51bGx9X2NoZWNrUGFyZW50VHlwZSgpeygidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmKCEodGhpcy5fcGFyZW50IGluc3RhbmNlb2YgeUcpJiZ0aGlzLl9wYXJlbnQgaW5zdGFuY2VvZiBLVz9fVy5uZ01vZGVsR3JvdXBFeGNlcHRpb24oKTp0aGlzLl9wYXJlbnQgaW5zdGFuY2VvZiB5R3x8dGhpcy5fcGFyZW50IGluc3RhbmNlb2YgaEd8fHRoaXMuX3BhcmVudCBpbnN0YW5jZW9mIENHfHxfVy5jb250cm9sUGFyZW50RXhjZXB0aW9uKCkpfV9zZXRVcENvbnRyb2woKXt0aGlzLl9jaGVja1BhcmVudFR5cGUoKSx0aGlzLmNvbnRyb2w9dGhpcy5mb3JtRGlyZWN0aXZlLmFkZENvbnRyb2wodGhpcyksdGhpcy5jb250cm9sLmRpc2FibGVkJiZ0aGlzLnZhbHVlQWNjZXNzb3Iuc2V0RGlzYWJsZWRTdGF0ZSYmdGhpcy52YWx1ZUFjY2Vzc29yLnNldERpc2FibGVkU3RhdGUoITApLHRoaXMuX2FkZGVkPSEwfX14Ry7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8eEcpKGdmKHNXLDEzKSxnZihFVSwxMCksZ2YoQVUsMTApLGdmKHhVLDEwKSxnZihtRyw4KSl9LHhHLsm1ZGlyPWhvKHt0eXBlOnhHLHNlbGVjdG9yczpbWyIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXV0saW5wdXRzOntpc0Rpc2FibGVkOlsiZGlzYWJsZWQiLCJpc0Rpc2FibGVkIl0sbmFtZTpbImZvcm1Db250cm9sTmFtZSIsIm5hbWUiXSxtb2RlbDpbIm5nTW9kZWwiLCJtb2RlbCJdfSxvdXRwdXRzOnt1cGRhdGU6Im5nTW9kZWxDaGFuZ2UifSxmZWF0dXJlczpbamgoW3ZHXSksUXAscW9dfSkseEcuX25nTW9kZWxXYXJuaW5nU2VudE9uY2U9ITEseEcuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpzVyxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6VXJ9LHt0eXBlOmpyfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpWcn0se3R5cGU6THIsYXJnczpbRVVdfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpWcn0se3R5cGU6THIsYXJnczpbQVVdfV19LHt0eXBlOkFycmF5LGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpWcn0se3R5cGU6THIsYXJnczpbeFVdfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbbUddfV19XSx4Ry5wcm9wRGVjb3JhdG9ycz17bmFtZTpbe3R5cGU6Ul8sYXJnczpbImZvcm1Db250cm9sTmFtZSJdfV0saXNEaXNhYmxlZDpbe3R5cGU6Ul8sYXJnczpbImRpc2FibGVkIl19XSxtb2RlbDpbe3R5cGU6Ul8sYXJnczpbIm5nTW9kZWwiXX1dLHVwZGF0ZTpbe3R5cGU6RV8sYXJnczpbIm5nTW9kZWxDaGFuZ2UiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHhHLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6Iltmb3JtQ29udHJvbE5hbWVdIixwcm92aWRlcnM6W3ZHXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnNXLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpVcn0se3R5cGU6anJ9XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOltFVV19XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOltBVV19XX0se3R5cGU6QXJyYXksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOlt4VV19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOlttR119XX1dfSkse3VwZGF0ZTpbe3R5cGU6RV8sYXJnczpbIm5nTW9kZWxDaGFuZ2UiXX1dLGlzRGlzYWJsZWQ6W3t0eXBlOlJfLGFyZ3M6WyJkaXNhYmxlZCJdfV0sbmFtZTpbe3R5cGU6Ul8sYXJnczpbImZvcm1Db250cm9sTmFtZSJdfV0sbW9kZWw6W3t0eXBlOlJfLGFyZ3M6WyJuZ01vZGVsIl19XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgT0c9e3Byb3ZpZGU6eFUsdXNlRXhpc3Rpbmc6JGUoKCgpPT53RykpLG11bHRpOiEwfTtmdW5jdGlvbiBQRyh0LGUpe3JldHVybiBudWxsPT10P2Ake2V9YDooZSYmIm9iamVjdCI9PXR5cGVvZiBlJiYoZT0iT2JqZWN0IiksYCR7dH06ICR7ZX1gLnNsaWNlKDAsNTApKX1jbGFzcyB3RyBleHRlbmRzIHZVe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9vcHRpb25NYXA9bmV3IE1hcCx0aGlzLl9pZENvdW50ZXI9MCx0aGlzLl9jb21wYXJlV2l0aD1PYmplY3QuaXN9c2V0IGNvbXBhcmVXaXRoKHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0JiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3cgbmV3IEVycm9yKGBjb21wYXJlV2l0aCBtdXN0IGJlIGEgZnVuY3Rpb24sIGJ1dCByZWNlaXZlZCAke0pTT04uc3RyaW5naWZ5KHQpfWApO3RoaXMuX2NvbXBhcmVXaXRoPXR9d3JpdGVWYWx1ZSh0KXt0aGlzLnZhbHVlPXQ7Y29uc3QgZT10aGlzLl9nZXRPcHRpb25JZCh0KTtudWxsPT1lJiZ0aGlzLnNldFByb3BlcnR5KCJzZWxlY3RlZEluZGV4IiwtMSk7Y29uc3Qgbj1QRyhlLHQpO3RoaXMuc2V0UHJvcGVydHkoInZhbHVlIixuKX1yZWdpc3Rlck9uQ2hhbmdlKHQpe3RoaXMub25DaGFuZ2U9ZT0+e3RoaXMudmFsdWU9dGhpcy5fZ2V0T3B0aW9uVmFsdWUoZSksdCh0aGlzLnZhbHVlKX19X3JlZ2lzdGVyT3B0aW9uKCl7cmV0dXJuKHRoaXMuX2lkQ291bnRlcisrKS50b1N0cmluZygpfV9nZXRPcHRpb25JZCh0KXtmb3IoY29uc3QgZSBvZiBBcnJheS5mcm9tKHRoaXMuX29wdGlvbk1hcC5rZXlzKCkpKWlmKHRoaXMuX2NvbXBhcmVXaXRoKHRoaXMuX29wdGlvbk1hcC5nZXQoZSksdCkpcmV0dXJuIGU7cmV0dXJuIG51bGx9X2dldE9wdGlvblZhbHVlKHQpe2NvbnN0IGU9KGZ1bmN0aW9uIG4odCl7cmV0dXJuIHQuc3BsaXQoIjoiKVswXX0pKHQpO3JldHVybiB0aGlzLl9vcHRpb25NYXAuaGFzKGUpP3RoaXMuX29wdGlvbk1hcC5nZXQoZSk6dH19d0cuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PVVhKHdHKSkpKG58fHdHKX19KSgpLHdHLsm1ZGlyPWhvKHt0eXBlOndHLHNlbGVjdG9yczpbWyJzZWxlY3QiLCJmb3JtQ29udHJvbE5hbWUiLCIiLDMsIm11bHRpcGxlIiwiIl0sWyJzZWxlY3QiLCJmb3JtQ29udHJvbCIsIiIsMywibXVsdGlwbGUiLCIiXSxbInNlbGVjdCIsIm5nTW9kZWwiLCIiLDMsIm11bHRpcGxlIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZSZigiY2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbkNoYW5nZShlLnRhcmdldC52YWx1ZSl9KSkoImJsdXIiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25Ub3VjaGVkKCl9KSl9LGlucHV0czp7Y29tcGFyZVdpdGg6ImNvbXBhcmVXaXRoIn0sZmVhdHVyZXM6W2poKFtPR10pLFFwXX0pLHdHLnByb3BEZWNvcmF0b3JzPXtjb21wYXJlV2l0aDpbe3R5cGU6Ul99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih3Ryxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJzZWxlY3Q6bm90KFttdWx0aXBsZV0pW2Zvcm1Db250cm9sTmFtZV0sc2VsZWN0Om5vdChbbXVsdGlwbGVdKVtmb3JtQ29udHJvbF0sc2VsZWN0Om5vdChbbXVsdGlwbGVdKVtuZ01vZGVsXSIsaG9zdDp7IihjaGFuZ2UpIjoib25DaGFuZ2UoJGV2ZW50LnRhcmdldC52YWx1ZSkiLCIoYmx1cikiOiJvblRvdWNoZWQoKSJ9LHByb3ZpZGVyczpbT0ddfV19XSxudWxsLHtjb21wYXJlV2l0aDpbe3R5cGU6Ul99XX0pO2NsYXNzIGtHe2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLl9lbGVtZW50PXQsdGhpcy5fcmVuZGVyZXI9ZSx0aGlzLl9zZWxlY3Q9bix0aGlzLl9zZWxlY3QmJih0aGlzLmlkPXRoaXMuX3NlbGVjdC5fcmVnaXN0ZXJPcHRpb24oKSl9c2V0IG5nVmFsdWUodCl7bnVsbCE9dGhpcy5fc2VsZWN0JiYodGhpcy5fc2VsZWN0Ll9vcHRpb25NYXAuc2V0KHRoaXMuaWQsdCksdGhpcy5fc2V0RWxlbWVudFZhbHVlKFBHKHRoaXMuaWQsdCkpLHRoaXMuX3NlbGVjdC53cml0ZVZhbHVlKHRoaXMuX3NlbGVjdC52YWx1ZSkpfXNldCB2YWx1ZSh0KXt0aGlzLl9zZXRFbGVtZW50VmFsdWUodCksdGhpcy5fc2VsZWN0JiZ0aGlzLl9zZWxlY3Qud3JpdGVWYWx1ZSh0aGlzLl9zZWxlY3QudmFsdWUpfV9zZXRFbGVtZW50VmFsdWUodCl7dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCJ2YWx1ZSIsdCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9zZWxlY3QmJih0aGlzLl9zZWxlY3QuX29wdGlvbk1hcC5kZWxldGUodGhpcy5pZCksdGhpcy5fc2VsZWN0LndyaXRlVmFsdWUodGhpcy5fc2VsZWN0LnZhbHVlKSl9fWtHLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxrRykoZ2YoS2gpLGdmKCRoKSxnZih3Ryw5KSl9LGtHLsm1ZGlyPWhvKHt0eXBlOmtHLHNlbGVjdG9yczpbWyJvcHRpb24iXV0saW5wdXRzOntuZ1ZhbHVlOiJuZ1ZhbHVlIix2YWx1ZToidmFsdWUifX0pLGtHLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6S2h9LHt0eXBlOiRofSx7dHlwZTp3RyxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6VXJ9XX1dLGtHLnByb3BEZWNvcmF0b3JzPXtuZ1ZhbHVlOlt7dHlwZTpSXyxhcmdzOlsibmdWYWx1ZSJdfV0sdmFsdWU6W3t0eXBlOlJfLGFyZ3M6WyJ2YWx1ZSJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoa0csW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3Rvcjoib3B0aW9uIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOktofSx7dHlwZTokaH0se3R5cGU6d0csZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlVyfV19XX0pLHtuZ1ZhbHVlOlt7dHlwZTpSXyxhcmdzOlsibmdWYWx1ZSJdfV0sdmFsdWU6W3t0eXBlOlJfLGFyZ3M6WyJ2YWx1ZSJdfV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IFNHPXtwcm92aWRlOnhVLHVzZUV4aXN0aW5nOiRlKCgoKT0+UkcpKSxtdWx0aTohMH07ZnVuY3Rpb24gREcodCxlKXtyZXR1cm4gbnVsbD09dD9gJHtlfWA6KCJzdHJpbmciPT10eXBlb2YgZSYmKGU9YCcke2V9J2ApLGUmJiJvYmplY3QiPT10eXBlb2YgZSYmKGU9Ik9iamVjdCIpLGAke3R9OiAke2V9YC5zbGljZSgwLDUwKSl9Y2xhc3MgUkcgZXh0ZW5kcyB2VXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fb3B0aW9uTWFwPW5ldyBNYXAsdGhpcy5faWRDb3VudGVyPTAsdGhpcy5fY29tcGFyZVdpdGg9T2JqZWN0LmlzfXNldCBjb21wYXJlV2l0aCh0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93IG5ldyBFcnJvcihgY29tcGFyZVdpdGggbXVzdCBiZSBhIGZ1bmN0aW9uLCBidXQgcmVjZWl2ZWQgJHtKU09OLnN0cmluZ2lmeSh0KX1gKTt0aGlzLl9jb21wYXJlV2l0aD10fXdyaXRlVmFsdWUodCl7bGV0IGU7aWYodGhpcy52YWx1ZT10LEFycmF5LmlzQXJyYXkodCkpe2NvbnN0IG49dC5tYXAoKHQ9PnRoaXMuX2dldE9wdGlvbklkKHQpKSk7ZT0odCxlKT0+e3QuX3NldFNlbGVjdGVkKG4uaW5kZXhPZihlLnRvU3RyaW5nKCkpPi0xKX19ZWxzZSBlPSh0LGUpPT57dC5fc2V0U2VsZWN0ZWQoITEpfTt0aGlzLl9vcHRpb25NYXAuZm9yRWFjaChlKX1yZWdpc3Rlck9uQ2hhbmdlKHQpe3RoaXMub25DaGFuZ2U9ZT0+e2NvbnN0IG49W107aWYodm9pZCAwIT09ZS5zZWxlY3RlZE9wdGlvbnMpe2NvbnN0IHQ9ZS5zZWxlY3RlZE9wdGlvbnM7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspe2NvbnN0IG89dC5pdGVtKGUpLGk9dGhpcy5fZ2V0T3B0aW9uVmFsdWUoby52YWx1ZSk7bi5wdXNoKGkpfX1lbHNle2NvbnN0IHQ9ZS5vcHRpb25zO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtjb25zdCBvPXQuaXRlbShlKTtpZihvLnNlbGVjdGVkKXtjb25zdCB0PXRoaXMuX2dldE9wdGlvblZhbHVlKG8udmFsdWUpO24ucHVzaCh0KX19fXRoaXMudmFsdWU9bix0KG4pfX1fcmVnaXN0ZXJPcHRpb24odCl7Y29uc3QgZT0odGhpcy5faWRDb3VudGVyKyspLnRvU3RyaW5nKCk7cmV0dXJuIHRoaXMuX29wdGlvbk1hcC5zZXQoZSx0KSxlfV9nZXRPcHRpb25JZCh0KXtmb3IoY29uc3QgZSBvZiBBcnJheS5mcm9tKHRoaXMuX29wdGlvbk1hcC5rZXlzKCkpKWlmKHRoaXMuX2NvbXBhcmVXaXRoKHRoaXMuX29wdGlvbk1hcC5nZXQoZSkuX3ZhbHVlLHQpKXJldHVybiBlO3JldHVybiBudWxsfV9nZXRPcHRpb25WYWx1ZSh0KXtjb25zdCBlPShmdW5jdGlvbiBuKHQpe3JldHVybiB0LnNwbGl0KCI6IilbMF19KSh0KTtyZXR1cm4gdGhpcy5fb3B0aW9uTWFwLmhhcyhlKT90aGlzLl9vcHRpb25NYXAuZ2V0KGUpLl92YWx1ZTp0fX1SRy7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9VWEoUkcpKSkobnx8UkcpfX0pKCksUkcuybVkaXI9aG8oe3R5cGU6Ukcsc2VsZWN0b3JzOltbInNlbGVjdCIsIm11bHRpcGxlIiwiIiwiZm9ybUNvbnRyb2xOYW1lIiwiIl0sWyJzZWxlY3QiLCJtdWx0aXBsZSIsIiIsImZvcm1Db250cm9sIiwiIl0sWyJzZWxlY3QiLCJtdWx0aXBsZSIsIiIsIm5nTW9kZWwiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlJmKCJjaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uQ2hhbmdlKGUudGFyZ2V0KX0pKSgiYmx1ciIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblRvdWNoZWQoKX0pKX0saW5wdXRzOntjb21wYXJlV2l0aDoiY29tcGFyZVdpdGgifSxmZWF0dXJlczpbamgoW1NHXSksUXBdfSksUkcucHJvcERlY29yYXRvcnM9e2NvbXBhcmVXaXRoOlt7dHlwZTpSX31dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFJHLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6InNlbGVjdFttdWx0aXBsZV1bZm9ybUNvbnRyb2xOYW1lXSxzZWxlY3RbbXVsdGlwbGVdW2Zvcm1Db250cm9sXSxzZWxlY3RbbXVsdGlwbGVdW25nTW9kZWxdIixob3N0OnsiKGNoYW5nZSkiOiJvbkNoYW5nZSgkZXZlbnQudGFyZ2V0KSIsIihibHVyKSI6Im9uVG91Y2hlZCgpIn0scHJvdmlkZXJzOltTR119XX1dLG51bGwse2NvbXBhcmVXaXRoOlt7dHlwZTpSX31dfSk7Y2xhc3MgRUd7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuX2VsZW1lbnQ9dCx0aGlzLl9yZW5kZXJlcj1lLHRoaXMuX3NlbGVjdD1uLHRoaXMuX3NlbGVjdCYmKHRoaXMuaWQ9dGhpcy5fc2VsZWN0Ll9yZWdpc3Rlck9wdGlvbih0aGlzKSl9c2V0IG5nVmFsdWUodCl7bnVsbCE9dGhpcy5fc2VsZWN0JiYodGhpcy5fdmFsdWU9dCx0aGlzLl9zZXRFbGVtZW50VmFsdWUoREcodGhpcy5pZCx0KSksdGhpcy5fc2VsZWN0LndyaXRlVmFsdWUodGhpcy5fc2VsZWN0LnZhbHVlKSl9c2V0IHZhbHVlKHQpe3RoaXMuX3NlbGVjdD8odGhpcy5fdmFsdWU9dCx0aGlzLl9zZXRFbGVtZW50VmFsdWUoREcodGhpcy5pZCx0KSksdGhpcy5fc2VsZWN0LndyaXRlVmFsdWUodGhpcy5fc2VsZWN0LnZhbHVlKSk6dGhpcy5fc2V0RWxlbWVudFZhbHVlKHQpfV9zZXRFbGVtZW50VmFsdWUodCl7dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCJ2YWx1ZSIsdCl9X3NldFNlbGVjdGVkKHQpe3RoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCwic2VsZWN0ZWQiLHQpfW5nT25EZXN0cm95KCl7dGhpcy5fc2VsZWN0JiYodGhpcy5fc2VsZWN0Ll9vcHRpb25NYXAuZGVsZXRlKHRoaXMuaWQpLHRoaXMuX3NlbGVjdC53cml0ZVZhbHVlKHRoaXMuX3NlbGVjdC52YWx1ZSkpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIEFHKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdD90OnBhcnNlSW50KHQsMTApfUVHLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxFRykoZ2YoS2gpLGdmKCRoKSxnZihSRyw5KSl9LEVHLsm1ZGlyPWhvKHt0eXBlOkVHLHNlbGVjdG9yczpbWyJvcHRpb24iXV0saW5wdXRzOntuZ1ZhbHVlOiJuZ1ZhbHVlIix2YWx1ZToidmFsdWUifX0pLEVHLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6S2h9LHt0eXBlOiRofSx7dHlwZTpSRyxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6VXJ9XX1dLEVHLnByb3BEZWNvcmF0b3JzPXtuZ1ZhbHVlOlt7dHlwZTpSXyxhcmdzOlsibmdWYWx1ZSJdfV0sdmFsdWU6W3t0eXBlOlJfLGFyZ3M6WyJ2YWx1ZSJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoRUcsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3Rvcjoib3B0aW9uIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOktofSx7dHlwZTokaH0se3R5cGU6UkcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlVyfV19XX0pLHtuZ1ZhbHVlOlt7dHlwZTpSXyxhcmdzOlsibmdWYWx1ZSJdfV0sdmFsdWU6W3t0eXBlOlJfLGFyZ3M6WyJ2YWx1ZSJdfV19KTtjbGFzcyBUR3tjb25zdHJ1Y3Rvcigpe3RoaXMuX3ZhbGlkYXRvcj1VVX1oYW5kbGVDaGFuZ2VzKHQpe2lmKHRoaXMuaW5wdXROYW1lIGluIHQpe2NvbnN0IGU9dGhpcy5ub3JtYWxpemVJbnB1dCh0W3RoaXMuaW5wdXROYW1lXS5jdXJyZW50VmFsdWUpO3RoaXMuX3ZhbGlkYXRvcj10aGlzLmNyZWF0ZVZhbGlkYXRvcihlKSx0aGlzLl9vbkNoYW5nZSYmdGhpcy5fb25DaGFuZ2UoKX19dmFsaWRhdGUodCl7cmV0dXJuIHRoaXMuX3ZhbGlkYXRvcih0KX1yZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKHQpe3RoaXMuX29uQ2hhbmdlPXR9fVRHLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxURyl9LFRHLsm1ZGlyPWhvKHt0eXBlOlRHfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihURyxbe3R5cGU6a199XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLG51bGwpO2NvbnN0IE5HPXtwcm92aWRlOkVVLHVzZUV4aXN0aW5nOiRlKCgoKT0+ekcpKSxtdWx0aTohMH07Y2xhc3MgekcgZXh0ZW5kcyBUR3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5pbnB1dE5hbWU9Im1heCIsdGhpcy5ub3JtYWxpemVJbnB1dD10PT5wYXJzZUZsb2F0KHQpLHRoaXMuY3JlYXRlVmFsaWRhdG9yPXQ9PklVKHQpfW5nT25DaGFuZ2VzKHQpe3RoaXMuaGFuZGxlQ2hhbmdlcyh0KX19ekcuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PVVhKHpHKSkpKG58fHpHKX19KSgpLHpHLsm1ZGlyPWhvKHt0eXBlOnpHLHNlbGVjdG9yczpbWyJpbnB1dCIsInR5cGUiLCJudW1iZXIiLCJtYXgiLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbImlucHV0IiwidHlwZSIsIm51bWJlciIsIm1heCIsIiIsImZvcm1Db250cm9sIiwiIl0sWyJpbnB1dCIsInR5cGUiLCJudW1iZXIiLCJtYXgiLCIiLCJuZ01vZGVsIiwiIl1dLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXtpZigyJmUpe2xldCB0O3ltKCJtYXgiLG51bGwhPT0odD1uLm1heCkmJnZvaWQgMCE9PXQ/dDpudWxsKX19LGlucHV0czp7bWF4OiJtYXgifSxmZWF0dXJlczpbamgoW05HXSksUXAscW9dfSksekcucHJvcERlY29yYXRvcnM9e21heDpbe3R5cGU6Ul99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih6Ryxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJpbnB1dFt0eXBlPW51bWJlcl1bbWF4XVtmb3JtQ29udHJvbE5hbWVdLGlucHV0W3R5cGU9bnVtYmVyXVttYXhdW2Zvcm1Db250cm9sXSxpbnB1dFt0eXBlPW51bWJlcl1bbWF4XVtuZ01vZGVsXSIscHJvdmlkZXJzOltOR10saG9zdDp7IlthdHRyLm1heF0iOiJtYXggPz8gbnVsbCJ9fV19XSxudWxsLHttYXg6W3t0eXBlOlJffV19KTtjb25zdCBJRz17cHJvdmlkZTpFVSx1c2VFeGlzdGluZzokZSgoKCk9PkhHKSksbXVsdGk6ITB9O2NsYXNzIEhHIGV4dGVuZHMgVEd7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuaW5wdXROYW1lPSJtaW4iLHRoaXMubm9ybWFsaXplSW5wdXQ9dD0+cGFyc2VGbG9hdCh0KSx0aGlzLmNyZWF0ZVZhbGlkYXRvcj10PT56VSh0KX1uZ09uQ2hhbmdlcyh0KXt0aGlzLmhhbmRsZUNoYW5nZXModCl9fUhHLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1VYShIRykpKShufHxIRyl9fSkoKSxIRy7JtWRpcj1obyh7dHlwZTpIRyxzZWxlY3RvcnM6W1siaW5wdXQiLCJ0eXBlIiwibnVtYmVyIiwibWluIiwiIiwiZm9ybUNvbnRyb2xOYW1lIiwiIl0sWyJpbnB1dCIsInR5cGUiLCJudW1iZXIiLCJtaW4iLCIiLCJmb3JtQ29udHJvbCIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwibnVtYmVyIiwibWluIiwiIiwibmdNb2RlbCIsIiJdXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7aWYoMiZlKXtsZXQgdDt5bSgibWluIixudWxsIT09KHQ9bi5taW4pJiZ2b2lkIDAhPT10P3Q6bnVsbCl9fSxpbnB1dHM6e21pbjoibWluIn0sZmVhdHVyZXM6W2poKFtJR10pLFFwLHFvXX0pLEhHLnByb3BEZWNvcmF0b3JzPXttaW46W3t0eXBlOlJffV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoSEcsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiaW5wdXRbdHlwZT1udW1iZXJdW21pbl1bZm9ybUNvbnRyb2xOYW1lXSxpbnB1dFt0eXBlPW51bWJlcl1bbWluXVtmb3JtQ29udHJvbF0saW5wdXRbdHlwZT1udW1iZXJdW21pbl1bbmdNb2RlbF0iLHByb3ZpZGVyczpbSUddLGhvc3Q6eyJbYXR0ci5taW5dIjoibWluID8/IG51bGwifX1dfV0sbnVsbCx7bWluOlt7dHlwZTpSX31dfSk7Y29uc3QgRkc9e3Byb3ZpZGU6RVUsdXNlRXhpc3Rpbmc6JGUoKCgpPT5CRykpLG11bHRpOiEwfSxMRz17cHJvdmlkZTpFVSx1c2VFeGlzdGluZzokZSgoKCk9PlZHKSksbXVsdGk6ITB9O2NsYXNzIEJHe2NvbnN0cnVjdG9yKCl7dGhpcy5fcmVxdWlyZWQ9ITF9Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuX3JlcXVpcmVkfXNldCByZXF1aXJlZCh0KXt0aGlzLl9yZXF1aXJlZD1udWxsIT10JiYhMSE9PXQmJiJmYWxzZSIhPWAke3R9YCx0aGlzLl9vbkNoYW5nZSYmdGhpcy5fb25DaGFuZ2UoKX12YWxpZGF0ZSh0KXtyZXR1cm4gdGhpcy5yZXF1aXJlZD9IVSh0KTpudWxsfXJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UodCl7dGhpcy5fb25DaGFuZ2U9dH19QkcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEJHKX0sQkcuybVkaXI9aG8oe3R5cGU6Qkcsc2VsZWN0b3JzOltbIiIsInJlcXVpcmVkIiwiIiwiZm9ybUNvbnRyb2xOYW1lIiwiIiwzLCJ0eXBlIiwiY2hlY2tib3giXSxbIiIsInJlcXVpcmVkIiwiIiwiZm9ybUNvbnRyb2wiLCIiLDMsInR5cGUiLCJjaGVja2JveCJdLFsiIiwicmVxdWlyZWQiLCIiLCJuZ01vZGVsIiwiIiwzLCJ0eXBlIiwiY2hlY2tib3giXV0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmeW0oInJlcXVpcmVkIixuLnJlcXVpcmVkPyIiOm51bGwpfSxpbnB1dHM6e3JlcXVpcmVkOiJyZXF1aXJlZCJ9LGZlYXR1cmVzOltqaChbRkddKV19KSxCRy5wcm9wRGVjb3JhdG9ycz17cmVxdWlyZWQ6W3t0eXBlOlJffV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoQkcsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiOm5vdChbdHlwZT1jaGVja2JveF0pW3JlcXVpcmVkXVtmb3JtQ29udHJvbE5hbWVdLDpub3QoW3R5cGU9Y2hlY2tib3hdKVtyZXF1aXJlZF1bZm9ybUNvbnRyb2xdLDpub3QoW3R5cGU9Y2hlY2tib3hdKVtyZXF1aXJlZF1bbmdNb2RlbF0iLHByb3ZpZGVyczpbRkddLGhvc3Q6eyJbYXR0ci5yZXF1aXJlZF0iOidyZXF1aXJlZCA/ICIiIDogbnVsbCd9fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLHtyZXF1aXJlZDpbe3R5cGU6Ul99XX0pO2NsYXNzIFZHIGV4dGVuZHMgQkd7dmFsaWRhdGUodCl7cmV0dXJuIHRoaXMucmVxdWlyZWQ/RlUodCk6bnVsbH19VkcuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PVVhKFZHKSkpKG58fFZHKX19KSgpLFZHLsm1ZGlyPWhvKHt0eXBlOlZHLHNlbGVjdG9yczpbWyJpbnB1dCIsInR5cGUiLCJjaGVja2JveCIsInJlcXVpcmVkIiwiIiwiZm9ybUNvbnRyb2xOYW1lIiwiIl0sWyJpbnB1dCIsInR5cGUiLCJjaGVja2JveCIsInJlcXVpcmVkIiwiIiwiZm9ybUNvbnRyb2wiLCIiXSxbImlucHV0IiwidHlwZSIsImNoZWNrYm94IiwicmVxdWlyZWQiLCIiLCJuZ01vZGVsIiwiIl1dLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJnltKCJyZXF1aXJlZCIsbi5yZXF1aXJlZD8iIjpudWxsKX0sZmVhdHVyZXM6W2poKFtMR10pLFFwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoVkcsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiaW5wdXRbdHlwZT1jaGVja2JveF1bcmVxdWlyZWRdW2Zvcm1Db250cm9sTmFtZV0saW5wdXRbdHlwZT1jaGVja2JveF1bcmVxdWlyZWRdW2Zvcm1Db250cm9sXSxpbnB1dFt0eXBlPWNoZWNrYm94XVtyZXF1aXJlZF1bbmdNb2RlbF0iLHByb3ZpZGVyczpbTEddLGhvc3Q6eyJbYXR0ci5yZXF1aXJlZF0iOidyZXF1aXJlZCA/ICIiIDogbnVsbCd9fV19XSxudWxsLG51bGwpO2NvbnN0IGpHPXtwcm92aWRlOkVVLHVzZUV4aXN0aW5nOiRlKCgoKT0+VUcpKSxtdWx0aTohMH07Y2xhc3MgVUd7Y29uc3RydWN0b3IoKXt0aGlzLl9lbmFibGVkPSExfXNldCBlbWFpbCh0KXt0aGlzLl9lbmFibGVkPSIiPT09dHx8ITA9PT10fHwidHJ1ZSI9PT10LHRoaXMuX29uQ2hhbmdlJiZ0aGlzLl9vbkNoYW5nZSgpfXZhbGlkYXRlKHQpe3JldHVybiB0aGlzLl9lbmFibGVkP0xVKHQpOm51bGx9cmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZSh0KXt0aGlzLl9vbkNoYW5nZT10fX1VRy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VUcpfSxVRy7JtWRpcj1obyh7dHlwZTpVRyxzZWxlY3RvcnM6W1siIiwiZW1haWwiLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbIiIsImVtYWlsIiwiIiwiZm9ybUNvbnRyb2wiLCIiXSxbIiIsImVtYWlsIiwiIiwibmdNb2RlbCIsIiJdXSxpbnB1dHM6e2VtYWlsOiJlbWFpbCJ9LGZlYXR1cmVzOltqaChbakddKV19KSxVRy5wcm9wRGVjb3JhdG9ycz17ZW1haWw6W3t0eXBlOlJffV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoVUcsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW2VtYWlsXVtmb3JtQ29udHJvbE5hbWVdLFtlbWFpbF1bZm9ybUNvbnRyb2xdLFtlbWFpbF1bbmdNb2RlbF0iLHByb3ZpZGVyczpbakddfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLHtlbWFpbDpbe3R5cGU6Ul99XX0pO2NvbnN0IFdHPXtwcm92aWRlOkVVLHVzZUV4aXN0aW5nOiRlKCgoKT0+R0cpKSxtdWx0aTohMH07Y2xhc3MgR0d7Y29uc3RydWN0b3IoKXt0aGlzLl92YWxpZGF0b3I9VVV9bmdPbkNoYW5nZXModCl7Im1pbmxlbmd0aCJpbiB0JiYodGhpcy5fY3JlYXRlVmFsaWRhdG9yKCksdGhpcy5fb25DaGFuZ2UmJnRoaXMuX29uQ2hhbmdlKCkpfXZhbGlkYXRlKHQpe3JldHVybiB0aGlzLmVuYWJsZWQoKT90aGlzLl92YWxpZGF0b3IodCk6bnVsbH1yZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKHQpe3RoaXMuX29uQ2hhbmdlPXR9X2NyZWF0ZVZhbGlkYXRvcigpe3RoaXMuX3ZhbGlkYXRvcj10aGlzLmVuYWJsZWQoKT9CVShBRyh0aGlzLm1pbmxlbmd0aCkpOlVVfWVuYWJsZWQoKXtyZXR1cm4gbnVsbCE9dGhpcy5taW5sZW5ndGh9fUdHLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxHRyl9LEdHLsm1ZGlyPWhvKHt0eXBlOkdHLHNlbGVjdG9yczpbWyIiLCJtaW5sZW5ndGgiLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbIiIsIm1pbmxlbmd0aCIsIiIsImZvcm1Db250cm9sIiwiIl0sWyIiLCJtaW5sZW5ndGgiLCIiLCJuZ01vZGVsIiwiIl1dLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJnltKCJtaW5sZW5ndGgiLG4uZW5hYmxlZCgpP24ubWlubGVuZ3RoOm51bGwpfSxpbnB1dHM6e21pbmxlbmd0aDoibWlubGVuZ3RoIn0sZmVhdHVyZXM6W2poKFtXR10pLHFvXX0pLEdHLnByb3BEZWNvcmF0b3JzPXttaW5sZW5ndGg6W3t0eXBlOlJffV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoR0csW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW21pbmxlbmd0aF1bZm9ybUNvbnRyb2xOYW1lXSxbbWlubGVuZ3RoXVtmb3JtQ29udHJvbF0sW21pbmxlbmd0aF1bbmdNb2RlbF0iLHByb3ZpZGVyczpbV0ddLGhvc3Q6eyJbYXR0ci5taW5sZW5ndGhdIjoiZW5hYmxlZCgpID8gbWlubGVuZ3RoIDogbnVsbCJ9fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLHttaW5sZW5ndGg6W3t0eXBlOlJffV19KTtjb25zdCBZRz17cHJvdmlkZTpFVSx1c2VFeGlzdGluZzokZSgoKCk9PnFHKSksbXVsdGk6ITB9O2NsYXNzIHFHe2NvbnN0cnVjdG9yKCl7dGhpcy5fdmFsaWRhdG9yPVVVfW5nT25DaGFuZ2VzKHQpeyJtYXhsZW5ndGgiaW4gdCYmKHRoaXMuX2NyZWF0ZVZhbGlkYXRvcigpLHRoaXMuX29uQ2hhbmdlJiZ0aGlzLl9vbkNoYW5nZSgpKX12YWxpZGF0ZSh0KXtyZXR1cm4gdGhpcy5lbmFibGVkKCk/dGhpcy5fdmFsaWRhdG9yKHQpOm51bGx9cmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZSh0KXt0aGlzLl9vbkNoYW5nZT10fV9jcmVhdGVWYWxpZGF0b3IoKXt0aGlzLl92YWxpZGF0b3I9dGhpcy5lbmFibGVkKCk/VlUoQUcodGhpcy5tYXhsZW5ndGgpKTpVVX1lbmFibGVkKCl7cmV0dXJuIG51bGwhPXRoaXMubWF4bGVuZ3RofX1xRy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cUcpfSxxRy7JtWRpcj1obyh7dHlwZTpxRyxzZWxlY3RvcnM6W1siIiwibWF4bGVuZ3RoIiwiIiwiZm9ybUNvbnRyb2xOYW1lIiwiIl0sWyIiLCJtYXhsZW5ndGgiLCIiLCJmb3JtQ29udHJvbCIsIiJdLFsiIiwibWF4bGVuZ3RoIiwiIiwibmdNb2RlbCIsIiJdXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZ5bSgibWF4bGVuZ3RoIixuLmVuYWJsZWQoKT9uLm1heGxlbmd0aDpudWxsKX0saW5wdXRzOnttYXhsZW5ndGg6Im1heGxlbmd0aCJ9LGZlYXR1cmVzOltqaChbWUddKSxxb119KSxxRy5wcm9wRGVjb3JhdG9ycz17bWF4bGVuZ3RoOlt7dHlwZTpSX31dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHFHLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IlttYXhsZW5ndGhdW2Zvcm1Db250cm9sTmFtZV0sW21heGxlbmd0aF1bZm9ybUNvbnRyb2xdLFttYXhsZW5ndGhdW25nTW9kZWxdIixwcm92aWRlcnM6W1lHXSxob3N0OnsiW2F0dHIubWF4bGVuZ3RoXSI6ImVuYWJsZWQoKSA/IG1heGxlbmd0aCA6IG51bGwifX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW119KSx7bWF4bGVuZ3RoOlt7dHlwZTpSX31dfSk7Y29uc3QgWkc9e3Byb3ZpZGU6RVUsdXNlRXhpc3Rpbmc6JGUoKCgpPT5YRykpLG11bHRpOiEwfTtjbGFzcyBYR3tjb25zdHJ1Y3Rvcigpe3RoaXMuX3ZhbGlkYXRvcj1VVX1uZ09uQ2hhbmdlcyh0KXsicGF0dGVybiJpbiB0JiYodGhpcy5fY3JlYXRlVmFsaWRhdG9yKCksdGhpcy5fb25DaGFuZ2UmJnRoaXMuX29uQ2hhbmdlKCkpfXZhbGlkYXRlKHQpe3JldHVybiB0aGlzLl92YWxpZGF0b3IodCl9cmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZSh0KXt0aGlzLl9vbkNoYW5nZT10fV9jcmVhdGVWYWxpZGF0b3IoKXt0aGlzLl92YWxpZGF0b3I9alUodGhpcy5wYXR0ZXJuKX19WEcuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFhHKX0sWEcuybVkaXI9aG8oe3R5cGU6WEcsc2VsZWN0b3JzOltbIiIsInBhdHRlcm4iLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbIiIsInBhdHRlcm4iLCIiLCJmb3JtQ29udHJvbCIsIiJdLFsiIiwicGF0dGVybiIsIiIsIm5nTW9kZWwiLCIiXV0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmeW0oInBhdHRlcm4iLG4ucGF0dGVybj9uLnBhdHRlcm46bnVsbCl9LGlucHV0czp7cGF0dGVybjoicGF0dGVybiJ9LGZlYXR1cmVzOltqaChbWkddKSxxb119KSxYRy5wcm9wRGVjb3JhdG9ycz17cGF0dGVybjpbe3R5cGU6Ul99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihYRyxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJbcGF0dGVybl1bZm9ybUNvbnRyb2xOYW1lXSxbcGF0dGVybl1bZm9ybUNvbnRyb2xdLFtwYXR0ZXJuXVtuZ01vZGVsXSIscHJvdmlkZXJzOltaR10saG9zdDp7IlthdHRyLnBhdHRlcm5dIjoicGF0dGVybiA/IHBhdHRlcm4gOiBudWxsIn19XX1dLChmdW5jdGlvbigpe3JldHVybltdfSkse3BhdHRlcm46W3t0eXBlOlJffV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IEtHPVtvRyxrRyxFRyxTVSxhRyxwRyxQVSx3RyxSRyxjRyxtVyxmVyxCRyxHRyxxRyxYRyxWRyxVRyxIRyx6R10sSkc9W25HLCRXLFhXXSxRRz1bdUcsaEcseEcseUcsQ0ddO2NsYXNzICRHe30kRy7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8JEcpfSwkRy7JtW1vZD1mbyh7dHlwZTokR30pLCRHLsm1aW5qPURuKHtpbXBvcnRzOltbc0ddXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoJEcsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6S0csaW1wb3J0czpbc0ddLGV4cG9ydHM6S0d9XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1bygkRyx7ZGVjbGFyYXRpb25zOltvRyxrRyxFRyxTVSxhRyxwRyxQVSx3RyxSRyxjRyxtVyxmVyxCRyxHRyxxRyxYRyxWRyxVRyxIRyx6R10saW1wb3J0czpbc0ddLGV4cG9ydHM6W29HLGtHLEVHLFNVLGFHLHBHLFBVLHdHLFJHLGNHLG1XLGZXLEJHLEdHLHFHLFhHLFZHLFVHLEhHLHpHXX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgdFl7fXRZLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx0WSl9LHRZLsm1bW9kPWZvKHt0eXBlOnRZfSksdFkuybVpbmo9RG4oe2ltcG9ydHM6WyRHXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIodFksW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6SkcsZXhwb3J0czpbJEcsSkddfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8odFkse2RlY2xhcmF0aW9uczpbbkcsJFcsWFddLGV4cG9ydHM6WyRHLG5HLCRXLFhXXX0pO2NsYXNzIGVZe3N0YXRpYyB3aXRoQ29uZmlnKHQpe3JldHVybntuZ01vZHVsZTplWSxwcm92aWRlcnM6W3twcm92aWRlOm1HLHVzZVZhbHVlOnQud2Fybk9uTmdNb2RlbFdpdGhGb3JtQ29udHJvbH1dfX19ZVkuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGVZKX0sZVkuybVtb2Q9Zm8oe3R5cGU6ZVl9KSxlWS7JtWluaj1Ebih7aW1wb3J0czpbJEddfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihlWSxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbUUddLGV4cG9ydHM6WyRHLFFHXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKGVZLHtkZWNsYXJhdGlvbnM6W3VHLGhHLHhHLHlHLENHXSxleHBvcnRzOlskRyx1RyxoRyx4Ryx5RyxDR119KTtjbGFzcyBuWXtncm91cCh0LGU9bnVsbCl7Y29uc3Qgbj10aGlzLl9yZWR1Y2VDb250cm9scyh0KTtsZXQgbyxpPW51bGwsYT1udWxsO3JldHVybiBudWxsIT1lJiYoISgKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmZ1bmN0aW9uIHIodCl7cmV0dXJuIHZvaWQgMCE9PXQuYXN5bmNWYWxpZGF0b3JzfHx2b2lkIDAhPT10LnZhbGlkYXRvcnN8fHZvaWQgMCE9PXQudXBkYXRlT259KShlKT8oaT1udWxsIT1lLnZhbGlkYXRvcj9lLnZhbGlkYXRvcjpudWxsLGE9bnVsbCE9ZS5hc3luY1ZhbGlkYXRvcj9lLmFzeW5jVmFsaWRhdG9yOm51bGwpOihpPW51bGwhPWUudmFsaWRhdG9ycz9lLnZhbGlkYXRvcnM6bnVsbCxhPW51bGwhPWUuYXN5bmNWYWxpZGF0b3JzP2UuYXN5bmNWYWxpZGF0b3JzOm51bGwsbz1udWxsIT1lLnVwZGF0ZU9uP2UudXBkYXRlT246dm9pZCAwKSksbmV3IEdXKG4se2FzeW5jVmFsaWRhdG9yczphLHVwZGF0ZU9uOm8sdmFsaWRhdG9yczppfSl9Y29udHJvbCh0LGUsbil7cmV0dXJuIG5ldyBXVyh0LGUsbil9YXJyYXkodCxlLG4pe2NvbnN0IG89dC5tYXAoKHQ9PnRoaXMuX2NyZWF0ZUNvbnRyb2wodCkpKTtyZXR1cm4gbmV3IFlXKG8sZSxuKX1fcmVkdWNlQ29udHJvbHModCl7Y29uc3QgZT17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaCgobj0+e2Vbbl09dGhpcy5fY3JlYXRlQ29udHJvbCh0W25dKX0pKSxlfV9jcmVhdGVDb250cm9sKHQpe2lmKHQgaW5zdGFuY2VvZiBXV3x8dCBpbnN0YW5jZW9mIEdXfHx0IGluc3RhbmNlb2YgWVcpcmV0dXJuIHQ7aWYoQXJyYXkuaXNBcnJheSh0KSl7cmV0dXJuIHRoaXMuY29udHJvbCh0WzBdLHQubGVuZ3RoPjE/dFsxXTpudWxsLHQubGVuZ3RoPjI/dFsyXTpudWxsKX1yZXR1cm4gdGhpcy5jb250cm9sKHQpfX1uWS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8blkpfSxuWS7JtXByb3Y9U24oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgbll9LHRva2VuOm5ZLHByb3ZpZGVkSW46ZVl9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKG5ZLFt7dHlwZTpVbSxhcmdzOlt7cHJvdmlkZWRJbjplWX1dfV0sbnVsbCxudWxsKSwKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCm5ldyBvYigiMTIuMi4xIik7Y29uc3Qgb1k9WyJ0cmlnZ2VyIl0saVk9WyJwYW5lbCJdO2Z1bmN0aW9uIGFZKHQsZSl7aWYoMSZ0JiYoQ2YoMCwic3BhbiIsOCksUHUoMSksTWYoKSksMiZ0KXtjb25zdCB0PXpmKCk7RGMoMSksd3UodC5wbGFjZWhvbGRlcil9fWZ1bmN0aW9uIHJZKHQsZSl7aWYoMSZ0JiYoQ2YoMCwic3BhbiIsMTIpLFB1KDEpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigyKTtEYygxKSx3dSh0LnRyaWdnZXJWYWx1ZSl9fWZ1bmN0aW9uIHNZKHQsZSl7MSZ0JiZGZigwLDAsWyIqbmdTd2l0Y2hDYXNlIiwidHJ1ZSJdKX1mdW5jdGlvbiBsWSh0LGUpe2lmKDEmdCYmKENmKDAsInNwYW4iLDkpLEhtKDEsclksMiwxLCJzcGFuIiwxMCksSG0oMixzWSwxLDAsIm5nLWNvbnRlbnQiLDExKSxNZigpKSwyJnQpe2JmKCJuZ1N3aXRjaCIsISF6ZigpLmN1c3RvbVRyaWdnZXIpLERjKDIpLGJmKCJuZ1N3aXRjaENhc2UiLCEwKX19ZnVuY3Rpb24gY1kodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJkaXYiLDEzKSxDZigxLCJkaXYiLDE0LDE1KSxSZigiQHRyYW5zZm9ybVBhbmVsLmRvbmUiLChmdW5jdGlvbiBlKG4pe1BpKHQpO3JldHVybiB6ZigpLl9wYW5lbERvbmVBbmltYXRpbmdTdHJlYW0ubmV4dChuLnRvU3RhdGUpfSkpKCJrZXlkb3duIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtyZXR1cm4gemYoKS5faGFuZGxlS2V5ZG93bihuKX0pKSxGZigzLDEpLE1mKCksTWYoKX1pZigyJnQpe2NvbnN0IHQ9emYoKTtiZigiQHRyYW5zZm9ybVBhbmVsV3JhcCIsdm9pZCAwKSxEYygxKSxJdSgibWF0LXNlbGVjdC1wYW5lbCAiLHQuX2dldFBhbmVsVGhlbWUoKSwiIiksbHUoInRyYW5zZm9ybS1vcmlnaW4iLHQuX3RyYW5zZm9ybU9yaWdpbikoImZvbnQtc2l6ZSIsdC5fdHJpZ2dlckZvbnRTaXplLCJweCIpLGJmKCJuZ0NsYXNzIix0LnBhbmVsQ2xhc3MpKCJAdHJhbnNmb3JtUGFuZWwiLHQubXVsdGlwbGU/InNob3dpbmctbXVsdGlwbGUiOiJzaG93aW5nIikseW0oImlkIix0LmlkKyItcGFuZWwiKSgiYXJpYS1tdWx0aXNlbGVjdGFibGUiLHQubXVsdGlwbGUpKCJhcmlhLWxhYmVsIix0LmFyaWFMYWJlbHx8bnVsbCkoImFyaWEtbGFiZWxsZWRieSIsdC5fZ2V0UGFuZWxBcmlhTGFiZWxsZWRieSgpKX19Y29uc3QgZFk9W1tbIm1hdC1zZWxlY3QtdHJpZ2dlciJdXSwiKiJdLHBZPXt0cmFuc2Zvcm1QYW5lbFdyYXA6eE8oInRyYW5zZm9ybVBhbmVsV3JhcCIsW0RPKCIqID0+IHZvaWQiLEVPKCJAdHJhbnNmb3JtUGFuZWwiLFtSTygpXSx7b3B0aW9uYWw6ITB9KSldKSx0cmFuc2Zvcm1QYW5lbDp4TygidHJhbnNmb3JtUGFuZWwiLFtrTygidm9pZCIsd08oe3RyYW5zZm9ybToic2NhbGVZKDAuOCkiLG1pbldpZHRoOiIxMDAlIixvcGFjaXR5OjB9KSksa08oInNob3dpbmciLHdPKHtvcGFjaXR5OjEsbWluV2lkdGg6ImNhbGMoMTAwJSArIDMycHgpIix0cmFuc2Zvcm06InNjYWxlWSgxKSJ9KSksa08oInNob3dpbmctbXVsdGlwbGUiLHdPKHtvcGFjaXR5OjEsbWluV2lkdGg6ImNhbGMoMTAwJSArIDY0cHgpIix0cmFuc2Zvcm06InNjYWxlWSgxKSJ9KSksRE8oInZvaWQgPT4gKiIsT08oIjEyMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpIikpLERPKCIqID0+IHZvaWQiLE9PKCIxMDBtcyAyNW1zIGxpbmVhciIsd08oe29wYWNpdHk6MH0pKSldKX07Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpsZXQgbVk9MDtjb25zdCBmWT0yNTYsdVk9MTYsZ1k9bmV3IGVyKCJtYXQtc2VsZWN0LXNjcm9sbC1zdHJhdGVneSIpO2NvbnN0IGhZPW5ldyBlcigiTUFUX1NFTEVDVF9DT05GSUciKSxiWT17cHJvdmlkZTpnWSxkZXBzOltLQl0sdXNlRmFjdG9yeTpmdW5jdGlvbiB5WSh0KXtyZXR1cm4oKT0+dC5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKX19O2NsYXNzIF9Ze2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5zb3VyY2U9dCx0aGlzLnZhbHVlPWV9fWNvbnN0IENZPUhGKEZGKHpGKExGKGNsYXNze2NvbnN0cnVjdG9yKHQsZSxuLG8saSl7dGhpcy5fZWxlbWVudFJlZj10LHRoaXMuX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcj1lLHRoaXMuX3BhcmVudEZvcm09bix0aGlzLl9wYXJlbnRGb3JtR3JvdXA9byx0aGlzLm5nQ29udHJvbD1pfX0pKSkpLE1ZPW5ldyBlcigiTWF0U2VsZWN0VHJpZ2dlciIpO2NsYXNzIHZZe312WS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dlkpfSx2WS7JtWRpcj1obyh7dHlwZTp2WSxzZWxlY3RvcnM6W1sibWF0LXNlbGVjdC10cmlnZ2VyIl1dLGZlYXR1cmVzOltqaChbe3Byb3ZpZGU6TVksdXNlRXhpc3Rpbmc6dll9XSldfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih2WSxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJtYXQtc2VsZWN0LXRyaWdnZXIiLHByb3ZpZGVyczpbe3Byb3ZpZGU6TVksdXNlRXhpc3Rpbmc6dll9XX1dfV0sbnVsbCxudWxsKTtjbGFzcyB4WSBleHRlbmRzIENZe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyxsLGMsZCxwLG0sZil7dmFyIHUsZyxoO3N1cGVyKGksbyxyLHMsYyksdGhpcy5fdmlld3BvcnRSdWxlcj10LHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWUsdGhpcy5fbmdab25lPW4sdGhpcy5fZGlyPWEsdGhpcy5fcGFyZW50Rm9ybUZpZWxkPWwsdGhpcy5fbGl2ZUFubm91bmNlcj1tLHRoaXMuX2RlZmF1bHRPcHRpb25zPWYsdGhpcy5fcGFuZWxPcGVuPSExLHRoaXMuX2NvbXBhcmVXaXRoPSh0LGUpPT50PT09ZSx0aGlzLl91aWQ9Im1hdC1zZWxlY3QtIittWSsrLHRoaXMuX3RyaWdnZXJBcmlhTGFiZWxsZWRCeT1udWxsLHRoaXMuX2Rlc3Ryb3k9bmV3IEIsdGhpcy5fb25DaGFuZ2U9KCk9Pnt9LHRoaXMuX29uVG91Y2hlZD0oKT0+e30sdGhpcy5fdmFsdWVJZD0ibWF0LXNlbGVjdC12YWx1ZS0iK21ZKyssdGhpcy5fcGFuZWxEb25lQW5pbWF0aW5nU3RyZWFtPW5ldyBCLHRoaXMuX292ZXJsYXlQYW5lbENsYXNzPShudWxsPT09KHU9dGhpcy5fZGVmYXVsdE9wdGlvbnMpfHx2b2lkIDA9PT11P3ZvaWQgMDp1Lm92ZXJsYXlQYW5lbENsYXNzKXx8IiIsdGhpcy5fZm9jdXNlZD0hMSx0aGlzLmNvbnRyb2xUeXBlPSJtYXQtc2VsZWN0Iix0aGlzLl9yZXF1aXJlZD0hMSx0aGlzLl9tdWx0aXBsZT0hMSx0aGlzLl9kaXNhYmxlT3B0aW9uQ2VudGVyaW5nPW51bGwhPT0oaD1udWxsPT09KGc9dGhpcy5fZGVmYXVsdE9wdGlvbnMpfHx2b2lkIDA9PT1nP3ZvaWQgMDpnLmRpc2FibGVPcHRpb25DZW50ZXJpbmcpJiZ2b2lkIDAhPT1oJiZoLHRoaXMuYXJpYUxhYmVsPSIiLHRoaXMub3B0aW9uU2VsZWN0aW9uQ2hhbmdlcz1vZSgoKCk9Pntjb25zdCB0PXRoaXMub3B0aW9ucztyZXR1cm4gdD90LmNoYW5nZXMucGlwZShCZSh0KSxWZSgoKCk9PnBlKC4uLnQubWFwKCh0PT50Lm9uU2VsZWN0aW9uQ2hhbmdlKSkpKSkpOnRoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKHZlKDEpLFZlKCgoKT0+dGhpcy5vcHRpb25TZWxlY3Rpb25DaGFuZ2VzKSkpfSkpLHRoaXMub3BlbmVkQ2hhbmdlPW5ldyBTeSx0aGlzLl9vcGVuZWRTdHJlYW09dGhpcy5vcGVuZWRDaGFuZ2UucGlwZSh1ZSgodD0+dCkpLFZ0KCgoKT0+e30pKSksdGhpcy5fY2xvc2VkU3RyZWFtPXRoaXMub3BlbmVkQ2hhbmdlLnBpcGUodWUoKHQ9PiF0KSksVnQoKCgpPT57fSkpKSx0aGlzLnNlbGVjdGlvbkNoYW5nZT1uZXcgU3ksdGhpcy52YWx1ZUNoYW5nZT1uZXcgU3ksdGhpcy5uZ0NvbnRyb2wmJih0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yPXRoaXMpLG51bGwhPShudWxsPT1mP3ZvaWQgMDpmLnR5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWwpJiYodGhpcy5fdHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbD1mLnR5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWwpLHRoaXMuX3Njcm9sbFN0cmF0ZWd5RmFjdG9yeT1wLHRoaXMuX3Njcm9sbFN0cmF0ZWd5PXRoaXMuX3Njcm9sbFN0cmF0ZWd5RmFjdG9yeSgpLHRoaXMudGFiSW5kZXg9cGFyc2VJbnQoZCl8fDAsdGhpcy5pZD10aGlzLmlkfWdldCBmb2N1c2VkKCl7cmV0dXJuIHRoaXMuX2ZvY3VzZWR8fHRoaXMuX3BhbmVsT3Blbn1nZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXJ9c2V0IHBsYWNlaG9sZGVyKHQpe3RoaXMuX3BsYWNlaG9sZGVyPXQsdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpfWdldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLl9yZXF1aXJlZH1zZXQgcmVxdWlyZWQodCl7dGhpcy5fcmVxdWlyZWQ9ZUgodCksdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpfWdldCBtdWx0aXBsZSgpe3JldHVybiB0aGlzLl9tdWx0aXBsZX1zZXQgbXVsdGlwbGUodCl7aWYodGhpcy5fc2VsZWN0aW9uTW9kZWwmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSkKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCnRocm93KGZ1bmN0aW9uIGUoKXtyZXR1cm4gRXJyb3IoIkNhbm5vdCBjaGFuZ2UgYG11bHRpcGxlYCBtb2RlIG9mIHNlbGVjdCBhZnRlciBpbml0aWFsaXphdGlvbi4iKX0pKCk7dGhpcy5fbXVsdGlwbGU9ZUgodCl9Z2V0IGRpc2FibGVPcHRpb25DZW50ZXJpbmcoKXtyZXR1cm4gdGhpcy5fZGlzYWJsZU9wdGlvbkNlbnRlcmluZ31zZXQgZGlzYWJsZU9wdGlvbkNlbnRlcmluZyh0KXt0aGlzLl9kaXNhYmxlT3B0aW9uQ2VudGVyaW5nPWVIKHQpfWdldCBjb21wYXJlV2l0aCgpe3JldHVybiB0aGlzLl9jb21wYXJlV2l0aH1zZXQgY29tcGFyZVdpdGgodCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyhmdW5jdGlvbiBlKCl7cmV0dXJuIEVycm9yKCJgY29tcGFyZVdpdGhgIG11c3QgYmUgYSBmdW5jdGlvbi4iKX0pKCk7dGhpcy5fY29tcGFyZVdpdGg9dCx0aGlzLl9zZWxlY3Rpb25Nb2RlbCYmdGhpcy5faW5pdGlhbGl6ZVNlbGVjdGlvbigpfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLl92YWx1ZX1zZXQgdmFsdWUodCl7KHQhPT10aGlzLl92YWx1ZXx8dGhpcy5fbXVsdGlwbGUmJkFycmF5LmlzQXJyYXkodCkpJiYodGhpcy5vcHRpb25zJiZ0aGlzLl9zZXRTZWxlY3Rpb25CeVZhbHVlKHQpLHRoaXMuX3ZhbHVlPXQpfWdldCB0eXBlYWhlYWREZWJvdW5jZUludGVydmFsKCl7cmV0dXJuIHRoaXMuX3R5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWx9c2V0IHR5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWwodCl7dGhpcy5fdHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbD1uSCh0KX1nZXQgaWQoKXtyZXR1cm4gdGhpcy5faWR9c2V0IGlkKHQpe3RoaXMuX2lkPXR8fHRoaXMuX3VpZCx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCl9bmdPbkluaXQoKXt0aGlzLl9zZWxlY3Rpb25Nb2RlbD1uZXcgakwodGhpcy5tdWx0aXBsZSksdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpLHRoaXMuX3BhbmVsRG9uZUFuaW1hdGluZ1N0cmVhbS5waXBlKHdlKCksamUodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKCk9PnRoaXMuX3BhbmVsRG9uZUFuaW1hdGluZyh0aGlzLnBhbmVsT3BlbikpKX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLl9pbml0S2V5TWFuYWdlcigpLHRoaXMuX3NlbGVjdGlvbk1vZGVsLmNoYW5nZWQucGlwZShqZSh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCh0PT57dC5hZGRlZC5mb3JFYWNoKCh0PT50LnNlbGVjdCgpKSksdC5yZW1vdmVkLmZvckVhY2goKHQ9PnQuZGVzZWxlY3QoKSkpfSkpLHRoaXMub3B0aW9ucy5jaGFuZ2VzLnBpcGUoQmUobnVsbCksamUodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl9yZXNldE9wdGlvbnMoKSx0aGlzLl9pbml0aWFsaXplU2VsZWN0aW9uKCl9KSl9bmdEb0NoZWNrKCl7Y29uc3QgdD10aGlzLl9nZXRUcmlnZ2VyQXJpYUxhYmVsbGVkYnkoKTtpZih0IT09dGhpcy5fdHJpZ2dlckFyaWFMYWJlbGxlZEJ5KXtjb25zdCBlPXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDt0aGlzLl90cmlnZ2VyQXJpYUxhYmVsbGVkQnk9dCx0P2Uuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsbGVkYnkiLHQpOmUucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWxhYmVsbGVkYnkiKX10aGlzLm5nQ29udHJvbCYmdGhpcy51cGRhdGVFcnJvclN0YXRlKCl9bmdPbkNoYW5nZXModCl7dC5kaXNhYmxlZCYmdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpLHQudHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCYmdGhpcy5fa2V5TWFuYWdlciYmdGhpcy5fa2V5TWFuYWdlci53aXRoVHlwZUFoZWFkKHRoaXMuX3R5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWwpfW5nT25EZXN0cm95KCl7dGhpcy5fZGVzdHJveS5uZXh0KCksdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpLHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCl9dG9nZ2xlKCl7dGhpcy5wYW5lbE9wZW4/dGhpcy5jbG9zZSgpOnRoaXMub3BlbigpfW9wZW4oKXt0aGlzLl9jYW5PcGVuKCkmJih0aGlzLl9wYW5lbE9wZW49ITAsdGhpcy5fa2V5TWFuYWdlci53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKG51bGwpLHRoaXMuX2hpZ2hsaWdodENvcnJlY3RPcHRpb24oKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSl9Y2xvc2UoKXt0aGlzLl9wYW5lbE9wZW4mJih0aGlzLl9wYW5lbE9wZW49ITEsdGhpcy5fa2V5TWFuYWdlci53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKHRoaXMuX2lzUnRsKCk/InJ0bCI6Imx0ciIpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpLHRoaXMuX29uVG91Y2hlZCgpKX13cml0ZVZhbHVlKHQpe3RoaXMudmFsdWU9dH1yZWdpc3Rlck9uQ2hhbmdlKHQpe3RoaXMuX29uQ2hhbmdlPXR9cmVnaXN0ZXJPblRvdWNoZWQodCl7dGhpcy5fb25Ub3VjaGVkPXR9c2V0RGlzYWJsZWRTdGF0ZSh0KXt0aGlzLmRpc2FibGVkPXQsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCksdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpfWdldCBwYW5lbE9wZW4oKXtyZXR1cm4gdGhpcy5fcGFuZWxPcGVufWdldCBzZWxlY3RlZCgpe3JldHVybiB0aGlzLm11bHRpcGxlP3RoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkOnRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkWzBdfWdldCB0cmlnZ2VyVmFsdWUoKXtpZih0aGlzLmVtcHR5KXJldHVybiIiO2lmKHRoaXMuX211bHRpcGxlKXtjb25zdCB0PXRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkLm1hcCgodD0+dC52aWV3VmFsdWUpKTtyZXR1cm4gdGhpcy5faXNSdGwoKSYmdC5yZXZlcnNlKCksdC5qb2luKCIsICIpfXJldHVybiB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZFswXS52aWV3VmFsdWV9X2lzUnRsKCl7cmV0dXJuISF0aGlzLl9kaXImJiJydGwiPT09dGhpcy5fZGlyLnZhbHVlfV9oYW5kbGVLZXlkb3duKHQpe3RoaXMuZGlzYWJsZWR8fCh0aGlzLnBhbmVsT3Blbj90aGlzLl9oYW5kbGVPcGVuS2V5ZG93bih0KTp0aGlzLl9oYW5kbGVDbG9zZWRLZXlkb3duKHQpKX1faGFuZGxlQ2xvc2VkS2V5ZG93bih0KXtjb25zdCBlPXQua2V5Q29kZSxuPWU9PT0kSXx8ZT09PVFJfHwzNz09PWV8fDM5PT09ZSxvPWU9PT1YSXx8ZT09PUpJLGk9dGhpcy5fa2V5TWFuYWdlcjtpZighaS5pc1R5cGluZygpJiZvJiYhdEgodCl8fCh0aGlzLm11bHRpcGxlfHx0LmFsdEtleSkmJm4pdC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMub3BlbigpO2Vsc2UgaWYoIXRoaXMubXVsdGlwbGUpe2NvbnN0IGU9dGhpcy5zZWxlY3RlZDtpLm9uS2V5ZG93bih0KTtjb25zdCBuPXRoaXMuc2VsZWN0ZWQ7biYmZSE9PW4mJnRoaXMuX2xpdmVBbm5vdW5jZXIuYW5ub3VuY2Uobi52aWV3VmFsdWUsMWU0KX19X2hhbmRsZU9wZW5LZXlkb3duKHQpe2NvbnN0IGU9dGhpcy5fa2V5TWFuYWdlcixuPXQua2V5Q29kZSxvPW49PT0kSXx8bj09PVFJLGk9ZS5pc1R5cGluZygpO2lmKG8mJnQuYWx0S2V5KXQucHJldmVudERlZmF1bHQoKSx0aGlzLmNsb3NlKCk7ZWxzZSBpZihpfHxuIT09WEkmJm4hPT1KSXx8IWUuYWN0aXZlSXRlbXx8dEgodCkpaWYoIWkmJnRoaXMuX211bHRpcGxlJiY2NT09PW4mJnQuY3RybEtleSl7dC5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IGU9dGhpcy5vcHRpb25zLnNvbWUoKHQ9PiF0LmRpc2FibGVkJiYhdC5zZWxlY3RlZCkpO3RoaXMub3B0aW9ucy5mb3JFYWNoKCh0PT57dC5kaXNhYmxlZHx8KGU/dC5zZWxlY3QoKTp0LmRlc2VsZWN0KCkpfSkpfWVsc2V7Y29uc3Qgbj1lLmFjdGl2ZUl0ZW1JbmRleDtlLm9uS2V5ZG93bih0KSx0aGlzLl9tdWx0aXBsZSYmbyYmdC5zaGlmdEtleSYmZS5hY3RpdmVJdGVtJiZlLmFjdGl2ZUl0ZW1JbmRleCE9PW4mJmUuYWN0aXZlSXRlbS5fc2VsZWN0VmlhSW50ZXJhY3Rpb24oKX1lbHNlIHQucHJldmVudERlZmF1bHQoKSxlLmFjdGl2ZUl0ZW0uX3NlbGVjdFZpYUludGVyYWN0aW9uKCl9X29uRm9jdXMoKXt0aGlzLmRpc2FibGVkfHwodGhpcy5fZm9jdXNlZD0hMCx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCkpfV9vbkJsdXIoKXt0aGlzLl9mb2N1c2VkPSExLHRoaXMuZGlzYWJsZWR8fHRoaXMucGFuZWxPcGVufHwodGhpcy5fb25Ub3VjaGVkKCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCksdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpKX1fb25BdHRhY2hlZCgpe3RoaXMuX292ZXJsYXlEaXIucG9zaXRpb25DaGFuZ2UucGlwZSh2ZSgxKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKSx0aGlzLl9wb3NpdGlvbmluZ1NldHRsZWQoKX0pKX1fZ2V0UGFuZWxUaGVtZSgpe3JldHVybiB0aGlzLl9wYXJlbnRGb3JtRmllbGQ/YG1hdC0ke3RoaXMuX3BhcmVudEZvcm1GaWVsZC5jb2xvcn1gOiIifWdldCBlbXB0eSgpe3JldHVybiF0aGlzLl9zZWxlY3Rpb25Nb2RlbHx8dGhpcy5fc2VsZWN0aW9uTW9kZWwuaXNFbXB0eSgpfV9pbml0aWFsaXplU2VsZWN0aW9uKCl7UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKCk9Pnt0aGlzLl9zZXRTZWxlY3Rpb25CeVZhbHVlKHRoaXMubmdDb250cm9sP3RoaXMubmdDb250cm9sLnZhbHVlOnRoaXMuX3ZhbHVlKSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCl9KSl9X3NldFNlbGVjdGlvbkJ5VmFsdWUodCl7aWYodGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQuZm9yRWFjaCgodD0+dC5zZXRJbmFjdGl2ZVN0eWxlcygpKSksdGhpcy5fc2VsZWN0aW9uTW9kZWwuY2xlYXIoKSx0aGlzLm11bHRpcGxlJiZ0KXtpZighQXJyYXkuaXNBcnJheSh0KSYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93KGZ1bmN0aW9uIGUoKXtyZXR1cm4gRXJyb3IoIlZhbHVlIG11c3QgYmUgYW4gYXJyYXkgaW4gbXVsdGlwbGUtc2VsZWN0aW9uIG1vZGUuIil9KSgpO3QuZm9yRWFjaCgodD0+dGhpcy5fc2VsZWN0VmFsdWUodCkpKSx0aGlzLl9zb3J0VmFsdWVzKCl9ZWxzZXtjb25zdCBlPXRoaXMuX3NlbGVjdFZhbHVlKHQpO2U/dGhpcy5fa2V5TWFuYWdlci51cGRhdGVBY3RpdmVJdGVtKGUpOnRoaXMucGFuZWxPcGVufHx0aGlzLl9rZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0oLTEpfXRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfV9zZWxlY3RWYWx1ZSh0KXtjb25zdCBlPXRoaXMub3B0aW9ucy5maW5kKChlPT57aWYodGhpcy5fc2VsZWN0aW9uTW9kZWwuaXNTZWxlY3RlZChlKSlyZXR1cm4hMTt0cnl7cmV0dXJuIG51bGwhPWUudmFsdWUmJnRoaXMuX2NvbXBhcmVXaXRoKGUudmFsdWUsdCl9Y2F0Y2godCl7cmV0dXJuKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZjb25zb2xlLndhcm4odCksITF9fSkpO3JldHVybiBlJiZ0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3QoZSksZX1faW5pdEtleU1hbmFnZXIoKXt0aGlzLl9rZXlNYW5hZ2VyPW5ldyBGSCh0aGlzLm9wdGlvbnMpLndpdGhUeXBlQWhlYWQodGhpcy5fdHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCkud2l0aFZlcnRpY2FsT3JpZW50YXRpb24oKS53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKHRoaXMuX2lzUnRsKCk/InJ0bCI6Imx0ciIpLndpdGhIb21lQW5kRW5kKCkud2l0aEFsbG93ZWRNb2RpZmllcktleXMoWyJzaGlmdEtleSJdKSx0aGlzLl9rZXlNYW5hZ2VyLnRhYk91dC5waXBlKGplKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5wYW5lbE9wZW4mJighdGhpcy5tdWx0aXBsZSYmdGhpcy5fa2V5TWFuYWdlci5hY3RpdmVJdGVtJiZ0aGlzLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uX3NlbGVjdFZpYUludGVyYWN0aW9uKCksdGhpcy5mb2N1cygpLHRoaXMuY2xvc2UoKSl9KSksdGhpcy5fa2V5TWFuYWdlci5jaGFuZ2UucGlwZShqZSh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX3BhbmVsT3BlbiYmdGhpcy5wYW5lbD90aGlzLl9zY3JvbGxPcHRpb25JbnRvVmlldyh0aGlzLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1JbmRleHx8MCk6dGhpcy5fcGFuZWxPcGVufHx0aGlzLm11bHRpcGxlfHwhdGhpcy5fa2V5TWFuYWdlci5hY3RpdmVJdGVtfHx0aGlzLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uX3NlbGVjdFZpYUludGVyYWN0aW9uKCl9KSl9X3Jlc2V0T3B0aW9ucygpe2NvbnN0IHQ9cGUodGhpcy5vcHRpb25zLmNoYW5nZXMsdGhpcy5fZGVzdHJveSk7dGhpcy5vcHRpb25TZWxlY3Rpb25DaGFuZ2VzLnBpcGUoamUodCkpLnN1YnNjcmliZSgodD0+e3RoaXMuX29uU2VsZWN0KHQuc291cmNlLHQuaXNVc2VySW5wdXQpLHQuaXNVc2VySW5wdXQmJiF0aGlzLm11bHRpcGxlJiZ0aGlzLl9wYW5lbE9wZW4mJih0aGlzLmNsb3NlKCksdGhpcy5mb2N1cygpKX0pKSxwZSguLi50aGlzLm9wdGlvbnMubWFwKCh0PT50Ll9zdGF0ZUNoYW5nZXMpKSkucGlwZShqZSh0KSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX0pKX1fb25TZWxlY3QodCxlKXtjb25zdCBuPXRoaXMuX3NlbGVjdGlvbk1vZGVsLmlzU2VsZWN0ZWQodCk7bnVsbCE9dC52YWx1ZXx8dGhpcy5fbXVsdGlwbGU/KG4hPT10LnNlbGVjdGVkJiYodC5zZWxlY3RlZD90aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3QodCk6dGhpcy5fc2VsZWN0aW9uTW9kZWwuZGVzZWxlY3QodCkpLGUmJnRoaXMuX2tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbSh0KSx0aGlzLm11bHRpcGxlJiYodGhpcy5fc29ydFZhbHVlcygpLGUmJnRoaXMuZm9jdXMoKSkpOih0LmRlc2VsZWN0KCksdGhpcy5fc2VsZWN0aW9uTW9kZWwuY2xlYXIoKSxudWxsIT10aGlzLnZhbHVlJiZ0aGlzLl9wcm9wYWdhdGVDaGFuZ2VzKHQudmFsdWUpKSxuIT09dGhpcy5fc2VsZWN0aW9uTW9kZWwuaXNTZWxlY3RlZCh0KSYmdGhpcy5fcHJvcGFnYXRlQ2hhbmdlcygpLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX1fc29ydFZhbHVlcygpe2lmKHRoaXMubXVsdGlwbGUpe2NvbnN0IHQ9dGhpcy5vcHRpb25zLnRvQXJyYXkoKTt0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zb3J0KCgoZSxuKT0+dGhpcy5zb3J0Q29tcGFyYXRvcj90aGlzLnNvcnRDb21wYXJhdG9yKGUsbix0KTp0LmluZGV4T2YoZSktdC5pbmRleE9mKG4pKSksdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpfX1fcHJvcGFnYXRlQ2hhbmdlcyh0KXtsZXQgZT1udWxsO2U9dGhpcy5tdWx0aXBsZT90aGlzLnNlbGVjdGVkLm1hcCgodD0+dC52YWx1ZSkpOnRoaXMuc2VsZWN0ZWQ/dGhpcy5zZWxlY3RlZC52YWx1ZTp0LHRoaXMuX3ZhbHVlPWUsdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGUpLHRoaXMuX29uQ2hhbmdlKGUpLHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQodGhpcy5fZ2V0Q2hhbmdlRXZlbnQoZSkpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfV9oaWdobGlnaHRDb3JyZWN0T3B0aW9uKCl7dGhpcy5fa2V5TWFuYWdlciYmKHRoaXMuZW1wdHk/dGhpcy5fa2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTp0aGlzLl9rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0odGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWRbMF0pKX1fY2FuT3Blbigpe3ZhciB0O3JldHVybiF0aGlzLl9wYW5lbE9wZW4mJiF0aGlzLmRpc2FibGVkJiYobnVsbD09PSh0PXRoaXMub3B0aW9ucyl8fHZvaWQgMD09PXQ/dm9pZCAwOnQubGVuZ3RoKT4wfWZvY3VzKHQpe3RoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cyh0KX1fZ2V0UGFuZWxBcmlhTGFiZWxsZWRieSgpe3ZhciB0O2lmKHRoaXMuYXJpYUxhYmVsKXJldHVybiBudWxsO2NvbnN0IGU9bnVsbD09PSh0PXRoaXMuX3BhcmVudEZvcm1GaWVsZCl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuZ2V0TGFiZWxJZCgpO3JldHVybiB0aGlzLmFyaWFMYWJlbGxlZGJ5PyhlP2UrIiAiOiIiKSt0aGlzLmFyaWFMYWJlbGxlZGJ5OmV9X2dldEFyaWFBY3RpdmVEZXNjZW5kYW50KCl7cmV0dXJuIHRoaXMucGFuZWxPcGVuJiZ0aGlzLl9rZXlNYW5hZ2VyJiZ0aGlzLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/dGhpcy5fa2V5TWFuYWdlci5hY3RpdmVJdGVtLmlkOm51bGx9X2dldFRyaWdnZXJBcmlhTGFiZWxsZWRieSgpe3ZhciB0O2lmKHRoaXMuYXJpYUxhYmVsKXJldHVybiBudWxsO2NvbnN0IGU9bnVsbD09PSh0PXRoaXMuX3BhcmVudEZvcm1GaWVsZCl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuZ2V0TGFiZWxJZCgpO2xldCBuPShlP2UrIiAiOiIiKSt0aGlzLl92YWx1ZUlkO3JldHVybiB0aGlzLmFyaWFMYWJlbGxlZGJ5JiYobis9IiAiK3RoaXMuYXJpYUxhYmVsbGVkYnkpLG59X3BhbmVsRG9uZUFuaW1hdGluZyh0KXt0aGlzLm9wZW5lZENoYW5nZS5lbWl0KHQpfXNldERlc2NyaWJlZEJ5SWRzKHQpe3RoaXMuX2FyaWFEZXNjcmliZWRieT10LmpvaW4oIiAiKX1vbkNvbnRhaW5lckNsaWNrKCl7dGhpcy5mb2N1cygpLHRoaXMub3BlbigpfWdldCBzaG91bGRMYWJlbEZsb2F0KCl7cmV0dXJuIHRoaXMuX3BhbmVsT3Blbnx8IXRoaXMuZW1wdHl8fHRoaXMuX2ZvY3VzZWQmJiEhdGhpcy5fcGxhY2Vob2xkZXJ9fXhZLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx4WSkoZ2YoUUwpLGdmKE9iKSxnZihtQyksZ2YobkwpLGdmKEtoKSxnZih2Riw4KSxnZihYVyw4KSxnZihoRyw4KSxnZih5VSw4KSxnZihsVywxMCksR2EoInRhYmluZGV4IiksZ2YoZ1kpLGdmKGNGKSxnZihoWSw4KSl9LHhZLsm1ZGlyPWhvKHt0eXBlOnhZLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoVnkob1ksNSksVnkoaVksNSksVnkodFYsNSkpLDImZSl7bGV0IHQ7QnkodD1VeSgpKSYmKG4udHJpZ2dlcj10LmZpcnN0KSxCeSh0PVV5KCkpJiYobi5wYW5lbD10LmZpcnN0KSxCeSh0PVV5KCkpJiYobi5fb3ZlcmxheURpcj10LmZpcnN0KX19LGlucHV0czp7YXJpYUxhYmVsOlsiYXJpYS1sYWJlbCIsImFyaWFMYWJlbCJdLGlkOiJpZCIscGxhY2Vob2xkZXI6InBsYWNlaG9sZGVyIixyZXF1aXJlZDoicmVxdWlyZWQiLG11bHRpcGxlOiJtdWx0aXBsZSIsZGlzYWJsZU9wdGlvbkNlbnRlcmluZzoiZGlzYWJsZU9wdGlvbkNlbnRlcmluZyIsY29tcGFyZVdpdGg6ImNvbXBhcmVXaXRoIix2YWx1ZToidmFsdWUiLHR5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWw6InR5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWwiLHBhbmVsQ2xhc3M6InBhbmVsQ2xhc3MiLGFyaWFMYWJlbGxlZGJ5OlsiYXJpYS1sYWJlbGxlZGJ5IiwiYXJpYUxhYmVsbGVkYnkiXSxlcnJvclN0YXRlTWF0Y2hlcjoiZXJyb3JTdGF0ZU1hdGNoZXIiLHNvcnRDb21wYXJhdG9yOiJzb3J0Q29tcGFyYXRvciJ9LG91dHB1dHM6e29wZW5lZENoYW5nZToib3BlbmVkQ2hhbmdlIixfb3BlbmVkU3RyZWFtOiJvcGVuZWQiLF9jbG9zZWRTdHJlYW06ImNsb3NlZCIsc2VsZWN0aW9uQ2hhbmdlOiJzZWxlY3Rpb25DaGFuZ2UiLHZhbHVlQ2hhbmdlOiJ2YWx1ZUNoYW5nZSJ9LGZlYXR1cmVzOltRcCxxb119KSx4WS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlFMfSx7dHlwZTpPYn0se3R5cGU6bUN9LHt0eXBlOm5MfSx7dHlwZTpLaH0se3R5cGU6dkYsZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX0se3R5cGU6WFcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX0se3R5cGU6aEcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX0se3R5cGU6X1UsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W3lVXX1dfSx7dHlwZTpsVyxkZWNvcmF0b3JzOlt7dHlwZTpWcn0se3R5cGU6QnJ9XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOiRhLGFyZ3M6WyJ0YWJpbmRleCJdfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltnWV19XX0se3R5cGU6Y0Z9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbaFldfV19XSx4WS5wcm9wRGVjb3JhdG9ycz17dHJpZ2dlcjpbe3R5cGU6YXIsYXJnczpbInRyaWdnZXIiXX1dLHBhbmVsOlt7dHlwZTphcixhcmdzOlsicGFuZWwiXX1dLF9vdmVybGF5RGlyOlt7dHlwZTphcixhcmdzOlt0Vl19XSxwYW5lbENsYXNzOlt7dHlwZTpSX31dLHBsYWNlaG9sZGVyOlt7dHlwZTpSX31dLHJlcXVpcmVkOlt7dHlwZTpSX31dLG11bHRpcGxlOlt7dHlwZTpSX31dLGRpc2FibGVPcHRpb25DZW50ZXJpbmc6W3t0eXBlOlJffV0sY29tcGFyZVdpdGg6W3t0eXBlOlJffV0sdmFsdWU6W3t0eXBlOlJffV0sYXJpYUxhYmVsOlt7dHlwZTpSXyxhcmdzOlsiYXJpYS1sYWJlbCJdfV0sYXJpYUxhYmVsbGVkYnk6W3t0eXBlOlJfLGFyZ3M6WyJhcmlhLWxhYmVsbGVkYnkiXX1dLGVycm9yU3RhdGVNYXRjaGVyOlt7dHlwZTpSX31dLHR5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWw6W3t0eXBlOlJffV0sc29ydENvbXBhcmF0b3I6W3t0eXBlOlJffV0saWQ6W3t0eXBlOlJffV0sb3BlbmVkQ2hhbmdlOlt7dHlwZTpFX31dLF9vcGVuZWRTdHJlYW06W3t0eXBlOkVfLGFyZ3M6WyJvcGVuZWQiXX1dLF9jbG9zZWRTdHJlYW06W3t0eXBlOkVfLGFyZ3M6WyJjbG9zZWQiXX1dLHNlbGVjdGlvbkNoYW5nZTpbe3R5cGU6RV99XSx2YWx1ZUNoYW5nZTpbe3R5cGU6RV99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih4WSxbe3R5cGU6a199XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6UUx9LHt0eXBlOk9ifSx7dHlwZTptQ30se3R5cGU6bkx9LHt0eXBlOktofSx7dHlwZTp2RixkZWNvcmF0b3JzOlt7dHlwZTpCcn1dfSx7dHlwZTpYVyxkZWNvcmF0b3JzOlt7dHlwZTpCcn1dfSx7dHlwZTpoRyxkZWNvcmF0b3JzOlt7dHlwZTpCcn1dfSx7dHlwZTpfVSxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbeVVdfV19LHt0eXBlOmxXLGRlY29yYXRvcnM6W3t0eXBlOlZyfSx7dHlwZTpCcn1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6JGEsYXJnczpbInRhYmluZGV4Il19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W2dZXX1dfSx7dHlwZTpjRn0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltoWV19XX1dfSkse2FyaWFMYWJlbDpbe3R5cGU6Ul8sYXJnczpbImFyaWEtbGFiZWwiXX1dLG9wZW5lZENoYW5nZTpbe3R5cGU6RV99XSxfb3BlbmVkU3RyZWFtOlt7dHlwZTpFXyxhcmdzOlsib3BlbmVkIl19XSxfY2xvc2VkU3RyZWFtOlt7dHlwZTpFXyxhcmdzOlsiY2xvc2VkIl19XSxzZWxlY3Rpb25DaGFuZ2U6W3t0eXBlOkVffV0sdmFsdWVDaGFuZ2U6W3t0eXBlOkVffV0saWQ6W3t0eXBlOlJffV0scGxhY2Vob2xkZXI6W3t0eXBlOlJffV0scmVxdWlyZWQ6W3t0eXBlOlJffV0sbXVsdGlwbGU6W3t0eXBlOlJffV0sZGlzYWJsZU9wdGlvbkNlbnRlcmluZzpbe3R5cGU6Ul99XSxjb21wYXJlV2l0aDpbe3R5cGU6Ul99XSx2YWx1ZTpbe3R5cGU6Ul99XSx0eXBlYWhlYWREZWJvdW5jZUludGVydmFsOlt7dHlwZTpSX31dLHRyaWdnZXI6W3t0eXBlOmFyLGFyZ3M6WyJ0cmlnZ2VyIl19XSxwYW5lbDpbe3R5cGU6YXIsYXJnczpbInBhbmVsIl19XSxfb3ZlcmxheURpcjpbe3R5cGU6YXIsYXJnczpbdFZdfV0scGFuZWxDbGFzczpbe3R5cGU6Ul99XSxhcmlhTGFiZWxsZWRieTpbe3R5cGU6Ul8sYXJnczpbImFyaWEtbGFiZWxsZWRieSJdfV0sZXJyb3JTdGF0ZU1hdGNoZXI6W3t0eXBlOlJffV0sc29ydENvbXBhcmF0b3I6W3t0eXBlOlJffV19KTtjbGFzcyBPWSBleHRlbmRzIHhZe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9zY3JvbGxUb3A9MCx0aGlzLl90cmlnZ2VyRm9udFNpemU9MCx0aGlzLl90cmFuc2Zvcm1PcmlnaW49InRvcCIsdGhpcy5fb2Zmc2V0WT0wLHRoaXMuX3Bvc2l0aW9ucz1be29yaWdpblg6InN0YXJ0IixvcmlnaW5ZOiJ0b3AiLG92ZXJsYXlYOiJzdGFydCIsb3ZlcmxheVk6InRvcCJ9LHtvcmlnaW5YOiJzdGFydCIsb3JpZ2luWToiYm90dG9tIixvdmVybGF5WDoic3RhcnQiLG92ZXJsYXlZOiJib3R0b20ifV19X2NhbGN1bGF0ZU92ZXJsYXlTY3JvbGwodCxlLG4pe2NvbnN0IG89dGhpcy5fZ2V0SXRlbUhlaWdodCgpO3JldHVybiBNYXRoLm1pbihNYXRoLm1heCgwLG8qdC1lK28vMiksbil9bmdPbkluaXQoKXtzdXBlci5uZ09uSW5pdCgpLHRoaXMuX3ZpZXdwb3J0UnVsZXIuY2hhbmdlKCkucGlwZShqZSh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMucGFuZWxPcGVuJiYodGhpcy5fdHJpZ2dlclJlY3Q9dGhpcy50cmlnZ2VyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfSkpfW9wZW4oKXtzdXBlci5fY2FuT3BlbigpJiYoc3VwZXIub3BlbigpLHRoaXMuX3RyaWdnZXJSZWN0PXRoaXMudHJpZ2dlci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHRoaXMuX3RyaWdnZXJGb250U2l6ZT1wYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHRoaXMudHJpZ2dlci5uYXRpdmVFbGVtZW50KS5mb250U2l6ZXx8IjAiKSx0aGlzLl9jYWxjdWxhdGVPdmVybGF5UG9zaXRpb24oKSx0aGlzLl9uZ1pvbmUub25TdGFibGUucGlwZSh2ZSgxKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX3RyaWdnZXJGb250U2l6ZSYmdGhpcy5fb3ZlcmxheURpci5vdmVybGF5UmVmJiZ0aGlzLl9vdmVybGF5RGlyLm92ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQmJih0aGlzLl9vdmVybGF5RGlyLm92ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQuc3R5bGUuZm9udFNpemU9YCR7dGhpcy5fdHJpZ2dlckZvbnRTaXplfXB4YCl9KSkpfV9zY3JvbGxPcHRpb25JbnRvVmlldyh0KXtjb25zdCBlPXdMKHQsdGhpcy5vcHRpb25zLHRoaXMub3B0aW9uR3JvdXBzKSxuPXRoaXMuX2dldEl0ZW1IZWlnaHQoKTt0aGlzLnBhbmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wPTA9PT10JiYxPT09ZT8wOmtMKCh0K2UpKm4sbix0aGlzLnBhbmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wLGZZKX1fcG9zaXRpb25pbmdTZXR0bGVkKCl7dGhpcy5fY2FsY3VsYXRlT3ZlcmxheU9mZnNldFgoKSx0aGlzLnBhbmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wPXRoaXMuX3Njcm9sbFRvcH1fcGFuZWxEb25lQW5pbWF0aW5nKHQpe3RoaXMucGFuZWxPcGVuP3RoaXMuX3Njcm9sbFRvcD0wOih0aGlzLl9vdmVybGF5RGlyLm9mZnNldFg9MCx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSksc3VwZXIuX3BhbmVsRG9uZUFuaW1hdGluZyh0KX1fZ2V0Q2hhbmdlRXZlbnQodCl7cmV0dXJuIG5ldyBfWSh0aGlzLHQpfV9jYWxjdWxhdGVPdmVybGF5T2Zmc2V0WCgpe2NvbnN0IHQ9dGhpcy5fb3ZlcmxheURpci5vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGU9dGhpcy5fdmlld3BvcnRSdWxlci5nZXRWaWV3cG9ydFNpemUoKSxuPXRoaXMuX2lzUnRsKCksbz10aGlzLm11bHRpcGxlPzU2OjMyO2xldCBpO2lmKHRoaXMubXVsdGlwbGUpaT00MDtlbHNlIGlmKHRoaXMuZGlzYWJsZU9wdGlvbkNlbnRlcmluZylpPXVZO2Vsc2V7bGV0IHQ9dGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWRbMF18fHRoaXMub3B0aW9ucy5maXJzdDtpPXQmJnQuZ3JvdXA/MzI6dVl9bnx8KGkqPS0xKTtjb25zdCBhPTAtKHQubGVmdCtpLShuP286MCkpLHI9dC5yaWdodCtpLWUud2lkdGgrKG4/MDpvKTthPjA/aSs9YSs4OnI+MCYmKGktPXIrOCksdGhpcy5fb3ZlcmxheURpci5vZmZzZXRYPU1hdGgucm91bmQoaSksdGhpcy5fb3ZlcmxheURpci5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCl9X2NhbGN1bGF0ZU92ZXJsYXlPZmZzZXRZKHQsZSxuKXtjb25zdCBvPXRoaXMuX2dldEl0ZW1IZWlnaHQoKSxpPShvLXRoaXMuX3RyaWdnZXJSZWN0LmhlaWdodCkvMixhPU1hdGguZmxvb3IoZlkvbyk7bGV0IHI7aWYodGhpcy5kaXNhYmxlT3B0aW9uQ2VudGVyaW5nKXJldHVybiAwO2lmKDA9PT10aGlzLl9zY3JvbGxUb3Apcj10Km87ZWxzZSBpZih0aGlzLl9zY3JvbGxUb3A9PT1uKXtyPSh0LSh0aGlzLl9nZXRJdGVtQ291bnQoKS1hKSkqbysoby0odGhpcy5fZ2V0SXRlbUNvdW50KCkqby1mWSklbyl9ZWxzZSByPWUtby8yO3JldHVybiBNYXRoLnJvdW5kKC0xKnItaSl9X2NoZWNrT3ZlcmxheVdpdGhpblZpZXdwb3J0KHQpe2NvbnN0IGU9dGhpcy5fZ2V0SXRlbUhlaWdodCgpLG49dGhpcy5fdmlld3BvcnRSdWxlci5nZXRWaWV3cG9ydFNpemUoKSxvPXRoaXMuX3RyaWdnZXJSZWN0LnRvcC04LGk9bi5oZWlnaHQtdGhpcy5fdHJpZ2dlclJlY3QuYm90dG9tLTgsYT1NYXRoLmFicyh0aGlzLl9vZmZzZXRZKSxyPU1hdGgubWluKHRoaXMuX2dldEl0ZW1Db3VudCgpKmUsZlkpLWEtdGhpcy5fdHJpZ2dlclJlY3QuaGVpZ2h0O3I+aT90aGlzLl9hZGp1c3RQYW5lbFVwKHIsaSk6YT5vP3RoaXMuX2FkanVzdFBhbmVsRG93bihhLG8sdCk6dGhpcy5fdHJhbnNmb3JtT3JpZ2luPXRoaXMuX2dldE9yaWdpbkJhc2VkT25PcHRpb24oKX1fYWRqdXN0UGFuZWxVcCh0LGUpe2NvbnN0IG49TWF0aC5yb3VuZCh0LWUpO3RoaXMuX3Njcm9sbFRvcC09bix0aGlzLl9vZmZzZXRZLT1uLHRoaXMuX3RyYW5zZm9ybU9yaWdpbj10aGlzLl9nZXRPcmlnaW5CYXNlZE9uT3B0aW9uKCksdGhpcy5fc2Nyb2xsVG9wPD0wJiYodGhpcy5fc2Nyb2xsVG9wPTAsdGhpcy5fb2Zmc2V0WT0wLHRoaXMuX3RyYW5zZm9ybU9yaWdpbj0iNTAlIGJvdHRvbSAwcHgiKX1fYWRqdXN0UGFuZWxEb3duKHQsZSxuKXtjb25zdCBvPU1hdGgucm91bmQodC1lKTtpZih0aGlzLl9zY3JvbGxUb3ArPW8sdGhpcy5fb2Zmc2V0WSs9byx0aGlzLl90cmFuc2Zvcm1PcmlnaW49dGhpcy5fZ2V0T3JpZ2luQmFzZWRPbk9wdGlvbigpLHRoaXMuX3Njcm9sbFRvcD49bilyZXR1cm4gdGhpcy5fc2Nyb2xsVG9wPW4sdGhpcy5fb2Zmc2V0WT0wLHZvaWQodGhpcy5fdHJhbnNmb3JtT3JpZ2luPSI1MCUgdG9wIDBweCIpfV9jYWxjdWxhdGVPdmVybGF5UG9zaXRpb24oKXtjb25zdCB0PXRoaXMuX2dldEl0ZW1IZWlnaHQoKSxlPXRoaXMuX2dldEl0ZW1Db3VudCgpLG49TWF0aC5taW4oZSp0LGZZKSxvPWUqdC1uO2xldCBpO2k9dGhpcy5lbXB0eT8wOk1hdGgubWF4KHRoaXMub3B0aW9ucy50b0FycmF5KCkuaW5kZXhPZih0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZFswXSksMCksaSs9d0woaSx0aGlzLm9wdGlvbnMsdGhpcy5vcHRpb25Hcm91cHMpO2NvbnN0IGE9bi8yO3RoaXMuX3Njcm9sbFRvcD10aGlzLl9jYWxjdWxhdGVPdmVybGF5U2Nyb2xsKGksYSxvKSx0aGlzLl9vZmZzZXRZPXRoaXMuX2NhbGN1bGF0ZU92ZXJsYXlPZmZzZXRZKGksYSxvKSx0aGlzLl9jaGVja092ZXJsYXlXaXRoaW5WaWV3cG9ydChvKX1fZ2V0T3JpZ2luQmFzZWRPbk9wdGlvbigpe2NvbnN0IHQ9dGhpcy5fZ2V0SXRlbUhlaWdodCgpLGU9KHQtdGhpcy5fdHJpZ2dlclJlY3QuaGVpZ2h0KS8yO3JldHVybmA1MCUgJHtNYXRoLmFicyh0aGlzLl9vZmZzZXRZKS1lK3QvMn1weCAwcHhgfV9nZXRJdGVtSGVpZ2h0KCl7cmV0dXJuIDMqdGhpcy5fdHJpZ2dlckZvbnRTaXplfV9nZXRJdGVtQ291bnQoKXtyZXR1cm4gdGhpcy5vcHRpb25zLmxlbmd0aCt0aGlzLm9wdGlvbkdyb3Vwcy5sZW5ndGh9fU9ZLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1VYShPWSkpKShufHxPWSl9fSkoKSxPWS7JtWNtcD1zbyh7dHlwZTpPWSxzZWxlY3RvcnM6W1sibWF0LXNlbGVjdCJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbiB0KGUsbixvKXtpZigxJmUmJihqeShvLE1ZLDUpLGp5KG8sUEwsNSksankobyxDTCw1KSksMiZlKXtsZXQgdDtCeSh0PVV5KCkpJiYobi5jdXN0b21UcmlnZ2VyPXQuZmlyc3QpLEJ5KHQ9VXkoKSkmJihuLm9wdGlvbnM9dCksQnkodD1VeSgpKSYmKG4ub3B0aW9uR3JvdXBzPXQpfX0saG9zdEF0dHJzOlsicm9sZSIsImNvbWJvYm94IiwiYXJpYS1hdXRvY29tcGxldGUiLCJub25lIiwiYXJpYS1oYXNwb3B1cCIsInRydWUiLDEsIm1hdC1zZWxlY3QiXSxob3N0VmFyczoyMCxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmUmYoImtleWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9oYW5kbGVLZXlkb3duKGUpfSkpKCJmb2N1cyIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fb25Gb2N1cygpfSkpKCJibHVyIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9vbkJsdXIoKX0pKSwyJmUmJih5bSgiaWQiLG4uaWQpKCJ0YWJpbmRleCIsbi50YWJJbmRleCkoImFyaWEtY29udHJvbHMiLG4ucGFuZWxPcGVuP24uaWQrIi1wYW5lbCI6bnVsbCkoImFyaWEtZXhwYW5kZWQiLG4ucGFuZWxPcGVuKSgiYXJpYS1sYWJlbCIsbi5hcmlhTGFiZWx8fG51bGwpKCJhcmlhLXJlcXVpcmVkIixuLnJlcXVpcmVkLnRvU3RyaW5nKCkpKCJhcmlhLWRpc2FibGVkIixuLmRpc2FibGVkLnRvU3RyaW5nKCkpKCJhcmlhLWludmFsaWQiLG4uZXJyb3JTdGF0ZSkoImFyaWEtZGVzY3JpYmVkYnkiLG4uX2FyaWFEZXNjcmliZWRieXx8bnVsbCkoImFyaWEtYWN0aXZlZGVzY2VuZGFudCIsbi5fZ2V0QXJpYUFjdGl2ZURlc2NlbmRhbnQoKSksY3UoIm1hdC1zZWxlY3QtZGlzYWJsZWQiLG4uZGlzYWJsZWQpKCJtYXQtc2VsZWN0LWludmFsaWQiLG4uZXJyb3JTdGF0ZSkoIm1hdC1zZWxlY3QtcmVxdWlyZWQiLG4ucmVxdWlyZWQpKCJtYXQtc2VsZWN0LWVtcHR5IixuLmVtcHR5KSgibWF0LXNlbGVjdC1tdWx0aXBsZSIsbi5tdWx0aXBsZSkpfSxpbnB1dHM6e2Rpc2FibGVkOiJkaXNhYmxlZCIsZGlzYWJsZVJpcHBsZToiZGlzYWJsZVJpcHBsZSIsdGFiSW5kZXg6InRhYkluZGV4In0sZXhwb3J0QXM6WyJtYXRTZWxlY3QiXSxmZWF0dXJlczpbamgoW3twcm92aWRlOmlVLHVzZUV4aXN0aW5nOk9ZfSx7cHJvdmlkZTpoTCx1c2VFeGlzdGluZzpPWX1dKSxRcF0sbmdDb250ZW50U2VsZWN0b3JzOlsibWF0LXNlbGVjdC10cmlnZ2VyIiwiKiJdLGRlY2xzOjksdmFyczoxMixjb25zdHM6W1siY2RrLW92ZXJsYXktb3JpZ2luIiwiIiwxLCJtYXQtc2VsZWN0LXRyaWdnZXIiLDMsImNsaWNrIl0sWyJvcmlnaW4iLCJjZGtPdmVybGF5T3JpZ2luIiwidHJpZ2dlciIsIiJdLFsxLCJtYXQtc2VsZWN0LXZhbHVlIiwzLCJuZ1N3aXRjaCJdLFsiY2xhc3MiLCJtYXQtc2VsZWN0LXBsYWNlaG9sZGVyIG1hdC1zZWxlY3QtbWluLWxpbmUiLDQsIm5nU3dpdGNoQ2FzZSJdLFsiY2xhc3MiLCJtYXQtc2VsZWN0LXZhbHVlLXRleHQiLDMsIm5nU3dpdGNoIiw0LCJuZ1N3aXRjaENhc2UiXSxbMSwibWF0LXNlbGVjdC1hcnJvdy13cmFwcGVyIl0sWzEsIm1hdC1zZWxlY3QtYXJyb3ciXSxbImNkay1jb25uZWN0ZWQtb3ZlcmxheSIsIiIsImNka0Nvbm5lY3RlZE92ZXJsYXlMb2NrUG9zaXRpb24iLCIiLCJjZGtDb25uZWN0ZWRPdmVybGF5SGFzQmFja2Ryb3AiLCIiLCJjZGtDb25uZWN0ZWRPdmVybGF5QmFja2Ryb3BDbGFzcyIsImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wIiwzLCJjZGtDb25uZWN0ZWRPdmVybGF5UGFuZWxDbGFzcyIsImNka0Nvbm5lY3RlZE92ZXJsYXlTY3JvbGxTdHJhdGVneSIsImNka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW4iLCJjZGtDb25uZWN0ZWRPdmVybGF5T3BlbiIsImNka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbnMiLCJjZGtDb25uZWN0ZWRPdmVybGF5TWluV2lkdGgiLCJjZGtDb25uZWN0ZWRPdmVybGF5T2Zmc2V0WSIsImJhY2tkcm9wQ2xpY2siLCJhdHRhY2giLCJkZXRhY2giXSxbMSwibWF0LXNlbGVjdC1wbGFjZWhvbGRlciIsIm1hdC1zZWxlY3QtbWluLWxpbmUiXSxbMSwibWF0LXNlbGVjdC12YWx1ZS10ZXh0IiwzLCJuZ1N3aXRjaCJdLFsiY2xhc3MiLCJtYXQtc2VsZWN0LW1pbi1saW5lIiw0LCJuZ1N3aXRjaERlZmF1bHQiXSxbNCwibmdTd2l0Y2hDYXNlIl0sWzEsIm1hdC1zZWxlY3QtbWluLWxpbmUiXSxbMSwibWF0LXNlbGVjdC1wYW5lbC13cmFwIl0sWyJyb2xlIiwibGlzdGJveCIsInRhYmluZGV4IiwiLTEiLDMsIm5nQ2xhc3MiLCJrZXlkb3duIl0sWyJwYW5lbCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoSGYoZFkpLENmKDAsImRpdiIsMCwxKSxSZigiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4udG9nZ2xlKCl9KSksQ2YoMywiZGl2IiwyKSxIbSg0LGFZLDIsMSwic3BhbiIsMyksSG0oNSxsWSwzLDIsInNwYW4iLDQpLE1mKCksQ2YoNiwiZGl2Iiw1KSx2Zig3LCJkaXYiLDYpLE1mKCksTWYoKSxIbSg4LGNZLDQsMTQsIm5nLXRlbXBsYXRlIiw3KSxSZigiYmFja2Ryb3BDbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5jbG9zZSgpfSkpKCJhdHRhY2giLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX29uQXR0YWNoZWQoKX0pKSgiZGV0YWNoIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLmNsb3NlKCl9KSkpLDImZSl7Y29uc3QgdD1GbSgxKTt5bSgiYXJpYS1vd25zIixuLnBhbmVsT3Blbj9uLmlkKyItcGFuZWwiOm51bGwpLERjKDMpLGJmKCJuZ1N3aXRjaCIsbi5lbXB0eSkseW0oImlkIixuLl92YWx1ZUlkKSxEYygxKSxiZigibmdTd2l0Y2hDYXNlIiwhMCksRGMoMSksYmYoIm5nU3dpdGNoQ2FzZSIsITEpLERjKDMpLGJmKCJjZGtDb25uZWN0ZWRPdmVybGF5UGFuZWxDbGFzcyIsbi5fb3ZlcmxheVBhbmVsQ2xhc3MpKCJjZGtDb25uZWN0ZWRPdmVybGF5U2Nyb2xsU3RyYXRlZ3kiLG4uX3Njcm9sbFN0cmF0ZWd5KSgiY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbiIsdCkoImNka0Nvbm5lY3RlZE92ZXJsYXlPcGVuIixuLnBhbmVsT3BlbikoImNka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbnMiLG4uX3Bvc2l0aW9ucykoImNka0Nvbm5lY3RlZE92ZXJsYXlNaW5XaWR0aCIsbnVsbD09bi5fdHJpZ2dlclJlY3Q/bnVsbDpuLl90cmlnZ2VyUmVjdC53aWR0aCkoImNka0Nvbm5lY3RlZE92ZXJsYXlPZmZzZXRZIixuLl9vZmZzZXRZKX19LGRpcmVjdGl2ZXM6WyRCLER2LFJ2LHRWLEV2LEN2XSxzdHlsZXM6WycubWF0LXNlbGVjdHtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMDAlO291dGxpbmU6bm9uZX0ubWF0LXNlbGVjdC10cmlnZ2Vye2Rpc3BsYXk6aW5saW5lLXRhYmxlO2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC10cmlnZ2Vyey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6ZGVmYXVsdH0ubWF0LXNlbGVjdC12YWx1ZXtkaXNwbGF5OnRhYmxlLWNlbGw7bWF4LXdpZHRoOjA7d2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9Lm1hdC1zZWxlY3QtdmFsdWUtdGV4dHt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlcntkaXNwbGF5OnRhYmxlLWNlbGw7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTI1JSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWZvcm0tZmllbGQtaGFzLWxhYmVsIC5tYXQtc2VsZWN0Om5vdCgubWF0LXNlbGVjdC1lbXB0eSkgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWVtcHR5IC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXJ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1lbXB0eSAubWF0LXNlbGVjdC1hcnJvdy13cmFwcGVye3RyYW5zaXRpb246bm9uZX0ubWF0LXNlbGVjdC1hcnJvd3t3aWR0aDowO2hlaWdodDowO2JvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6NXB4IHNvbGlkO21hcmdpbjowIDRweH0ubWF0LXNlbGVjdC1wYW5lbC13cmFwe2ZsZXgtYmFzaXM6MTAwJX0ubWF0LXNlbGVjdC1wYW5lbHttaW4td2lkdGg6MTEycHg7bWF4LXdpZHRoOjI4MHB4O292ZXJmbG93OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowO21heC1oZWlnaHQ6MjU2cHg7bWluLXdpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czo0cHg7b3V0bGluZTowfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zZWxlY3QtcGFuZWx7b3V0bGluZTpzb2xpZCAxcHh9Lm1hdC1zZWxlY3QtcGFuZWwgLm1hdC1vcHRncm91cC1sYWJlbCwubWF0LXNlbGVjdC1wYW5lbCAubWF0LW9wdGlvbntmb250LXNpemU6aW5oZXJpdDtsaW5lLWhlaWdodDozZW07aGVpZ2h0OjNlbX0ubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtc2VsZWN0Om5vdCgubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQpIC5tYXQtZm9ybS1maWVsZC1mbGV4e2N1cnNvcjpwb2ludGVyfS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3dpZHRoOmNhbGMoMTAwJSAtIDE4cHgpfS5tYXQtc2VsZWN0LXBsYWNlaG9sZGVye3RyYW5zaXRpb246Y29sb3IgNDAwbXMgMTMzLjMzMzMzMzMzMzNtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zZWxlY3QtcGxhY2Vob2xkZXJ7dHJhbnNpdGlvbjpub25lfS5tYXQtZm9ybS1maWVsZC1oaWRlLXBsYWNlaG9sZGVyIC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVye2NvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246bm9uZTtkaXNwbGF5OmJsb2NrfS5tYXQtc2VsZWN0LW1pbi1saW5lOmVtcHR5OjpiZWZvcmV7Y29udGVudDoiICI7d2hpdGUtc3BhY2U6cHJlO3dpZHRoOjFweDtkaXNwbGF5OmlubGluZS1ibG9jaztvcGFjaXR5OjB9XG4nXSxlbmNhcHN1bGF0aW9uOjIsZGF0YTp7YW5pbWF0aW9uOltwWS50cmFuc2Zvcm1QYW5lbFdyYXAscFkudHJhbnNmb3JtUGFuZWxdfSxjaGFuZ2VEZXRlY3Rpb246MH0pLE9ZLnByb3BEZWNvcmF0b3JzPXtvcHRpb25zOlt7dHlwZTpvcixhcmdzOltQTCx7ZGVzY2VuZGFudHM6ITB9XX1dLG9wdGlvbkdyb3Vwczpbe3R5cGU6b3IsYXJnczpbQ0wse2Rlc2NlbmRhbnRzOiEwfV19XSxjdXN0b21UcmlnZ2VyOlt7dHlwZTppcixhcmdzOltNWV19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihPWSxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJtYXQtc2VsZWN0IixleHBvcnRBczoibWF0U2VsZWN0Iix0ZW1wbGF0ZTonXHgzYyEtLVxuIE5vdGUgdGhhdCB0aGUgc2VsZWN0IHRyaWdnZXIgZWxlbWVudCBzcGVjaWZpZXMgYGFyaWEtb3duc2AgcG9pbnRpbmcgdG8gdGhlIGxpc3Rib3ggb3ZlcmxheS5cbiBXaGlsZSBhcmlhLW93bnMgaXMgbm90IHJlcXVpcmVkIGZvciB0aGUgQVJJQSAxLjIgYHJvbGU9ImNvbWJvYm94ImAgaW50ZXJhY3Rpb24gcGF0dGVybixcbiBpdCBmaXhlcyBhbiBpc3N1ZSB3aXRoIFZvaWNlT3ZlciB3aGVuIHRoZSBzZWxlY3QgYXBwZWFycyBpbnNpZGUgb2YgYW4gYGFyaWEtbW9kZWw9InRydWUiYFxuIGVsZW1lbnQgKGUuZy4gYSBkaWFsb2cpLiBXaXRob3V0IHRoaXMgYGFyaWEtb3duc2AsIHRoZSBgYXJpYS1tb2RhbGAgb24gYSBkaWFsb2cgcHJldmVudHNcbiBWb2ljZU92ZXIgZnJvbSAic2VlaW5nIiB0aGUgc2VsZWN0XCdzIGxpc3Rib3ggb3ZlcmxheSBmb3IgYXJpYS1hY3RpdmVkZXNjZW5kYW50LlxuIFVzaW5nIGBhcmlhLW93bnNgIHJlLXBhcmVudHMgdGhlIHNlbGVjdCBvdmVybGF5IHNvIHRoYXQgaXQgd29ya3MgYWdhaW4uXG4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvaXNzdWVzLzIwNjk0XG4tLVx4M2VcbjxkaXYgY2RrLW92ZXJsYXktb3JpZ2luXG4gICAgIFthdHRyLmFyaWEtb3duc109InBhbmVsT3BlbiA/IGlkICsgXCctcGFuZWxcJyA6IG51bGwiXG4gICAgIGNsYXNzPSJtYXQtc2VsZWN0LXRyaWdnZXIiXG4gICAgIChjbGljayk9InRvZ2dsZSgpIlxuICAgICAjb3JpZ2luPSJjZGtPdmVybGF5T3JpZ2luIlxuICAgICAjdHJpZ2dlcj5cbiAgPGRpdiBjbGFzcz0ibWF0LXNlbGVjdC12YWx1ZSIgW25nU3dpdGNoXT0iZW1wdHkiIFthdHRyLmlkXT0iX3ZhbHVlSWQiPlxuICAgIDxzcGFuIGNsYXNzPSJtYXQtc2VsZWN0LXBsYWNlaG9sZGVyIG1hdC1zZWxlY3QtbWluLWxpbmUiICpuZ1N3aXRjaENhc2U9InRydWUiPnt7cGxhY2Vob2xkZXJ9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz0ibWF0LXNlbGVjdC12YWx1ZS10ZXh0IiAqbmdTd2l0Y2hDYXNlPSJmYWxzZSIgW25nU3dpdGNoXT0iISFjdXN0b21UcmlnZ2VyIj5cbiAgICAgIDxzcGFuIGNsYXNzPSJtYXQtc2VsZWN0LW1pbi1saW5lIiAqbmdTd2l0Y2hEZWZhdWx0Pnt7dHJpZ2dlclZhbHVlfX08L3NwYW4+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9Im1hdC1zZWxlY3QtdHJpZ2dlciIgKm5nU3dpdGNoQ2FzZT0idHJ1ZSI+PC9uZy1jb250ZW50PlxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz0ibWF0LXNlbGVjdC1hcnJvdy13cmFwcGVyIj48ZGl2IGNsYXNzPSJtYXQtc2VsZWN0LWFycm93Ij48L2Rpdj48L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGVcbiAgY2RrLWNvbm5lY3RlZC1vdmVybGF5XG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlMb2NrUG9zaXRpb25cbiAgY2RrQ29ubmVjdGVkT3ZlcmxheUhhc0JhY2tkcm9wXG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlCYWNrZHJvcENsYXNzPSJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlQYW5lbENsYXNzXT0iX292ZXJsYXlQYW5lbENsYXNzIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheVNjcm9sbFN0cmF0ZWd5XT0iX3Njcm9sbFN0cmF0ZWd5IlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09Im9yaWdpbiJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT0icGFuZWxPcGVuIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uc109Il9wb3NpdGlvbnMiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5TWluV2lkdGhdPSJfdHJpZ2dlclJlY3Q/LndpZHRoISJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPZmZzZXRZXT0iX29mZnNldFkiXG4gIChiYWNrZHJvcENsaWNrKT0iY2xvc2UoKSJcbiAgKGF0dGFjaCk9Il9vbkF0dGFjaGVkKCkiXG4gIChkZXRhY2gpPSJjbG9zZSgpIj5cbiAgPGRpdiBjbGFzcz0ibWF0LXNlbGVjdC1wYW5lbC13cmFwIiBbQHRyYW5zZm9ybVBhbmVsV3JhcF0+XG4gICAgPGRpdlxuICAgICAgI3BhbmVsXG4gICAgICByb2xlPSJsaXN0Ym94IlxuICAgICAgdGFiaW5kZXg9Ii0xIlxuICAgICAgY2xhc3M9Im1hdC1zZWxlY3QtcGFuZWwge3sgX2dldFBhbmVsVGhlbWUoKSB9fSJcbiAgICAgIFthdHRyLmlkXT0iaWQgKyBcJy1wYW5lbFwnIlxuICAgICAgW2F0dHIuYXJpYS1tdWx0aXNlbGVjdGFibGVdPSJtdWx0aXBsZSJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPSJhcmlhTGFiZWwgfHwgbnVsbCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09Il9nZXRQYW5lbEFyaWFMYWJlbGxlZGJ5KCkiXG4gICAgICBbbmdDbGFzc109InBhbmVsQ2xhc3MiXG4gICAgICBbQHRyYW5zZm9ybVBhbmVsXT0ibXVsdGlwbGUgPyBcJ3Nob3dpbmctbXVsdGlwbGVcJyA6IFwnc2hvd2luZ1wnIlxuICAgICAgKEB0cmFuc2Zvcm1QYW5lbC5kb25lKT0iX3BhbmVsRG9uZUFuaW1hdGluZ1N0cmVhbS5uZXh0KCRldmVudC50b1N0YXRlKSJcbiAgICAgIFtzdHlsZS50cmFuc2Zvcm1PcmlnaW5dPSJfdHJhbnNmb3JtT3JpZ2luIlxuICAgICAgW3N0eWxlLmZvbnQtc2l6ZS5weF09Il90cmlnZ2VyRm9udFNpemUiXG4gICAgICAoa2V5ZG93bik9Il9oYW5kbGVLZXlkb3duKCRldmVudCkiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4nLGlucHV0czpbImRpc2FibGVkIiwiZGlzYWJsZVJpcHBsZSIsInRhYkluZGV4Il0sZW5jYXBzdWxhdGlvbjpXbi5Ob25lLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2gsaG9zdDp7cm9sZToiY29tYm9ib3giLCJhcmlhLWF1dG9jb21wbGV0ZSI6Im5vbmUiLCJhcmlhLWhhc3BvcHVwIjoidHJ1ZSIsY2xhc3M6Im1hdC1zZWxlY3QiLCJbYXR0ci5pZF0iOiJpZCIsIlthdHRyLnRhYmluZGV4XSI6InRhYkluZGV4IiwiW2F0dHIuYXJpYS1jb250cm9sc10iOidwYW5lbE9wZW4gPyBpZCArICItcGFuZWwiIDogbnVsbCcsIlthdHRyLmFyaWEtZXhwYW5kZWRdIjoicGFuZWxPcGVuIiwiW2F0dHIuYXJpYS1sYWJlbF0iOiJhcmlhTGFiZWwgfHwgbnVsbCIsIlthdHRyLmFyaWEtcmVxdWlyZWRdIjoicmVxdWlyZWQudG9TdHJpbmcoKSIsIlthdHRyLmFyaWEtZGlzYWJsZWRdIjoiZGlzYWJsZWQudG9TdHJpbmcoKSIsIlthdHRyLmFyaWEtaW52YWxpZF0iOiJlcnJvclN0YXRlIiwiW2F0dHIuYXJpYS1kZXNjcmliZWRieV0iOiJfYXJpYURlc2NyaWJlZGJ5IHx8IG51bGwiLCJbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdIjoiX2dldEFyaWFBY3RpdmVEZXNjZW5kYW50KCkiLCJbY2xhc3MubWF0LXNlbGVjdC1kaXNhYmxlZF0iOiJkaXNhYmxlZCIsIltjbGFzcy5tYXQtc2VsZWN0LWludmFsaWRdIjoiZXJyb3JTdGF0ZSIsIltjbGFzcy5tYXQtc2VsZWN0LXJlcXVpcmVkXSI6InJlcXVpcmVkIiwiW2NsYXNzLm1hdC1zZWxlY3QtZW1wdHldIjoiZW1wdHkiLCJbY2xhc3MubWF0LXNlbGVjdC1tdWx0aXBsZV0iOiJtdWx0aXBsZSIsIihrZXlkb3duKSI6Il9oYW5kbGVLZXlkb3duKCRldmVudCkiLCIoZm9jdXMpIjoiX29uRm9jdXMoKSIsIihibHVyKSI6Il9vbkJsdXIoKSJ9LGFuaW1hdGlvbnM6W3BZLnRyYW5zZm9ybVBhbmVsV3JhcCxwWS50cmFuc2Zvcm1QYW5lbF0scHJvdmlkZXJzOlt7cHJvdmlkZTppVSx1c2VFeGlzdGluZzpPWX0se3Byb3ZpZGU6aEwsdXNlRXhpc3Rpbmc6T1l9XSxzdHlsZXM6WycubWF0LXNlbGVjdHtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMDAlO291dGxpbmU6bm9uZX0ubWF0LXNlbGVjdC10cmlnZ2Vye2Rpc3BsYXk6aW5saW5lLXRhYmxlO2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC10cmlnZ2Vyey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6ZGVmYXVsdH0ubWF0LXNlbGVjdC12YWx1ZXtkaXNwbGF5OnRhYmxlLWNlbGw7bWF4LXdpZHRoOjA7d2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9Lm1hdC1zZWxlY3QtdmFsdWUtdGV4dHt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlcntkaXNwbGF5OnRhYmxlLWNlbGw7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTI1JSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWZvcm0tZmllbGQtaGFzLWxhYmVsIC5tYXQtc2VsZWN0Om5vdCgubWF0LXNlbGVjdC1lbXB0eSkgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWVtcHR5IC5tYXQtc2VsZWN0LWFycm93LXdyYXBwZXJ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1lbXB0eSAubWF0LXNlbGVjdC1hcnJvdy13cmFwcGVye3RyYW5zaXRpb246bm9uZX0ubWF0LXNlbGVjdC1hcnJvd3t3aWR0aDowO2hlaWdodDowO2JvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6NXB4IHNvbGlkO21hcmdpbjowIDRweH0ubWF0LXNlbGVjdC1wYW5lbC13cmFwe2ZsZXgtYmFzaXM6MTAwJX0ubWF0LXNlbGVjdC1wYW5lbHttaW4td2lkdGg6MTEycHg7bWF4LXdpZHRoOjI4MHB4O292ZXJmbG93OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowO21heC1oZWlnaHQ6MjU2cHg7bWluLXdpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czo0cHg7b3V0bGluZTowfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zZWxlY3QtcGFuZWx7b3V0bGluZTpzb2xpZCAxcHh9Lm1hdC1zZWxlY3QtcGFuZWwgLm1hdC1vcHRncm91cC1sYWJlbCwubWF0LXNlbGVjdC1wYW5lbCAubWF0LW9wdGlvbntmb250LXNpemU6aW5oZXJpdDtsaW5lLWhlaWdodDozZW07aGVpZ2h0OjNlbX0ubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtc2VsZWN0Om5vdCgubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQpIC5tYXQtZm9ybS1maWVsZC1mbGV4e2N1cnNvcjpwb2ludGVyfS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3dpZHRoOmNhbGMoMTAwJSAtIDE4cHgpfS5tYXQtc2VsZWN0LXBsYWNlaG9sZGVye3RyYW5zaXRpb246Y29sb3IgNDAwbXMgMTMzLjMzMzMzMzMzMzNtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zZWxlY3QtcGxhY2Vob2xkZXJ7dHJhbnNpdGlvbjpub25lfS5tYXQtZm9ybS1maWVsZC1oaWRlLXBsYWNlaG9sZGVyIC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVye2NvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246bm9uZTtkaXNwbGF5OmJsb2NrfS5tYXQtc2VsZWN0LW1pbi1saW5lOmVtcHR5OjpiZWZvcmV7Y29udGVudDoiICI7d2hpdGUtc3BhY2U6cHJlO3dpZHRoOjFweDtkaXNwbGF5OmlubGluZS1ibG9jaztvcGFjaXR5OjB9XG4nXX1dfV0sbnVsbCx7b3B0aW9uczpbe3R5cGU6b3IsYXJnczpbUEwse2Rlc2NlbmRhbnRzOiEwfV19XSxvcHRpb25Hcm91cHM6W3t0eXBlOm9yLGFyZ3M6W0NMLHtkZXNjZW5kYW50czohMH1dfV0sY3VzdG9tVHJpZ2dlcjpbe3R5cGU6aXIsYXJnczpbTVldfV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIFBZe31mdW5jdGlvbiB3WSh0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO0NmKDAsInNwYW4iLDUpLFJmKCJjbGljayIsKGZ1bmN0aW9uIGUobil7UGkodCk7Y29uc3Qgbz16ZigpLiRpbXBsaWNpdDtyZXR1cm4gemYoKS5vbkFjdGl2ZVBsdWdpblNlbGVjdGlvbihuLG8uaWQpfSkpLFB1KDEpLE1mKCl9aWYoMiZ0KXtjb25zdCB0PXpmKCkuJGltcGxpY2l0O3ltKCJkYXRhLXBsdWdpbi1pZCIsdC5pZCksRGMoMSksa3UoIiAiLHQudGFiX25hbWUsIiAiKX19ZnVuY3Rpb24ga1kodCxlKXtpZigxJnQmJihDZigwLCJtYXQtdGFiIiwzKSxIbSgxLHdZLDIsMiwibmctdGVtcGxhdGUiLDQpLE1mKCkpLDImdCl7YmYoImRpc2FibGVkIiwhZS4kaW1wbGljaXQuZW5hYmxlZCl9fWZ1bmN0aW9uIFNZKHQsZSl7aWYoMSZ0JiYoQ2YoMCwibWF0LW9wdGlvbiIsOSksUHUoMSksTWYoKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0O2JmKCJ2YWx1ZSIsdC5pZCkseW0oImRhdGEtcGx1Z2luLWlkIix0LmlkKSxEYygxKSxrdSgiICIsdC50YWJfbmFtZSwiICIpfX1mdW5jdGlvbiBEWSh0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO0NmKDAsIm1hdC1mb3JtLWZpZWxkIiw2KSxDZigxLCJtYXQtbGFiZWwiKSxQdSgyLCJJbmFjdGl2ZSIpLE1mKCksQ2YoMywibWF0LXNlbGVjdCIsNyksUmYoInNlbGVjdGlvbkNoYW5nZSIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKCkub25EaXNhYmxlZFBsdWdpblNlbGVjdGlvbkNoYW5nZWQobil9KSksSG0oNCxTWSwyLDMsIm1hdC1vcHRpb24iLDgpLE1mKCksTWYoKX1pZigyJnQpe2NvbnN0IHQ9emYoKTtEYygzKSxiZigidmFsdWUiLHQuc2VsZWN0ZWRQbHVnaW4pLERjKDEpLGJmKCJuZ0Zvck9mIix0LmRpc2FibGVkUGx1Z2lucyl9fVBZLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxQWSl9LFBZLsm1bW9kPWZvKHt0eXBlOlBZfSksUFkuybVpbmo9RG4oe3Byb3ZpZGVyczpbYlldLGltcG9ydHM6W1tyeCxvVixTTCxORl0sb0IsQ1UsU0wsTkZdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihQWSxbe3R5cGU6TF8sYXJnczpbe2ltcG9ydHM6W3J4LG9WLFNMLE5GXSxleHBvcnRzOltvQixDVSxPWSx2WSxTTCxORl0sZGVjbGFyYXRpb25zOltPWSx2WV0scHJvdmlkZXJzOltiWV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhQWSx7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW09ZLHZZXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltyeCxvVixTTCxORl19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bb0IsQ1UsT1ksdlksU0wsTkZdfX0pO2NsYXNzIFJZe2NvbnN0cnVjdG9yKCl7dGhpcy5vblBsdWdpblNlbGVjdGlvbkNoYW5nZWQ9bmV3IFN5fWdldEFjdGl2ZVBsdWdpbkluZGV4KCl7cmV0dXJuIHRoaXMuYWN0aXZlUGx1Z2lucy5maW5kSW5kZXgoKCh7aWQ6dH0pPT50PT09dGhpcy5zZWxlY3RlZFBsdWdpbikpfW9uQWN0aXZlUGx1Z2luU2VsZWN0aW9uKHQsZSl7dC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLm9uUGx1Z2luU2VsZWN0aW9uQ2hhbmdlZC5lbWl0KGUpfW9uRGlzYWJsZWRQbHVnaW5TZWxlY3Rpb25DaGFuZ2VkKHQpe3RoaXMub25QbHVnaW5TZWxlY3Rpb25DaGFuZ2VkLmVtaXQodC52YWx1ZSl9fVJZLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxSWSl9LFJZLsm1Y21wPXNvKHt0eXBlOlJZLHNlbGVjdG9yczpbWyJwbHVnaW4tc2VsZWN0b3ItY29tcG9uZW50Il1dLGlucHV0czp7YWN0aXZlUGx1Z2luczoiYWN0aXZlUGx1Z2lucyIsZGlzYWJsZWRQbHVnaW5zOiJkaXNhYmxlZFBsdWdpbnMiLHNlbGVjdGVkUGx1Z2luOiJzZWxlY3RlZFBsdWdpbiJ9LG91dHB1dHM6e29uUGx1Z2luU2VsZWN0aW9uQ2hhbmdlZDoib25QbHVnaW5TZWxlY3Rpb25DaGFuZ2VkIn0sZGVjbHM6Myx2YXJzOjMsY29uc3RzOltbImFuaW1hdGlvbkR1cmF0aW9uIiwiMTAwbXMiLDEsImFjdGl2ZS1wbHVnaW4tbGlzdCIsMywic2VsZWN0ZWRJbmRleCJdLFszLCJkaXNhYmxlZCIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJmbG9hdExhYmVsIiwibmV2ZXIiLDQsIm5nSWYiXSxbMywiZGlzYWJsZWQiXSxbIm1hdC10YWItbGFiZWwiLCIiXSxbMSwicGx1Z2luLW5hbWUiLDMsImNsaWNrIl0sWyJmbG9hdExhYmVsIiwibmV2ZXIiXSxbMywidmFsdWUiLCJzZWxlY3Rpb25DaGFuZ2UiXSxbMywidmFsdWUiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJ2YWx1ZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwibWF0LXRhYi1ncm91cCIsMCksSG0oMSxrWSwyLDEsIm1hdC10YWIiLDEpLE1mKCksSG0oMixEWSw1LDIsIm1hdC1mb3JtLWZpZWxkIiwyKSksMiZlJiYoYmYoInNlbGVjdGVkSW5kZXgiLG4uZ2V0QWN0aXZlUGx1Z2luSW5kZXgoKSksRGMoMSksYmYoIm5nRm9yT2YiLG4uYWN0aXZlUGx1Z2lucyksRGMoMSksYmYoIm5nSWYiLG4uZGlzYWJsZWRQbHVnaW5zLmxlbmd0aD4wKSl9LGRpcmVjdGl2ZXM6W1BqLHh2LFB2LGdqLG1qLF9VLGNVLE9ZLFBMXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleDoxIDEgYXV0bztmb250LXNpemU6MTRweDtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW59bWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MCAwO21hcmdpbi10b3A6NXB4O3dpZHRoOjEzMHB4fW1hdC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIG1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVdLCBtYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo1MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS5hY3RpdmUtcGx1Z2luLWxpc3RbX25nY29udGVudC0lQ09NUCVde2FsaWduLXNlbGY6c3RyZXRjaDtmbGV4OjEgMSBhdXRvO292ZXJmbG93OmhpZGRlbn0ucGx1Z2luLW5hbWVbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2hlaWdodDoxMDAlO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzowIDEycHg7d2lkdGg6MTAwJX1bX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0Lm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpc3QgLm1hdC1pbmstYmFye2JhY2tncm91bmQtY29sb3I6Y3VycmVudENvbG9yfVtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgLm1hdC10YWItbGFiZWwsIFtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgLm1hdC10YWItbGlua3tjb2xvcjppbmhlcml0O29wYWNpdHk6Ljd9W19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWxhYmVsLWFjdGl2ZSwgW19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCAubWF0LXRhYi1saW5rLm1hdC10YWItbGFiZWwtYWN0aXZle29wYWNpdHk6MX1bX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLWNvbG9yOmN1cnJlbnRDb2xvcn1bX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVke3Zpc2liaWxpdHk6aGlkZGVufVtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgLm1hdC10YWItZGlzYWJsZWR7ZGlzcGxheTpub25lfVtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgbWF0LXRhYi1saXN0LCBbX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IC5tYXQtdGFiLWhlYWRlciwgW19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCAubWF0LXRhYi1sYWJlbHMsIFtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgLm1hdC10YWItbGFiZWx7aGVpZ2h0OjEwMCV9W19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCAubWF0LXRhYi1sYWJlbHttaW4td2lkdGg6NDhweDtwYWRkaW5nOjA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfVtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgLm1hdC10YWItbGFiZWwtY29udGVudHtoZWlnaHQ6MTAwJX1bX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IG1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxpc3R7cGFkZGluZzowIDM2cHh9W19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCBtYXQtdGFiLWhlYWRlcj46Zmlyc3QtY2hpbGQsIFtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgbWF0LXRhYi1oZWFkZXI+Lm1hdC10YWItbGFiZWwtY29udGFpbmVyLCBbX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IG1hdC10YWItaGVhZGVyPjpsYXN0LWNoaWxke2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowfVtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgbWF0LXRhYi1oZWFkZXI+OmZpcnN0LWNoaWxkLCBbX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IG1hdC10YWItaGVhZGVyPi5tYXQtdGFiLWxhYmVsLWNvbnRhaW5lcntsZWZ0OjB9W19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCBtYXQtdGFiLWhlYWRlcj46bGFzdC1jaGlsZCwgW19uZ2hvc3QtJUNPTVAlXSAgICAgLmFjdGl2ZS1wbHVnaW4tbGlzdCBtYXQtdGFiLWhlYWRlcj4ubWF0LXRhYi1sYWJlbC1jb250YWluZXJ7cmlnaHQ6MH1bX25naG9zdC0lQ09NUCVdICAgICAuYWN0aXZlLXBsdWdpbi1saXN0IG1hdC10YWItaGVhZGVyPi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9ue2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMH1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAgIC5hY3RpdmUtcGx1Z2luLWxpc3QgbWF0LXRhYi1oZWFkZXI+Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb257YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwfSddfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihSWSxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJwbHVnaW4tc2VsZWN0b3ItY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiLi9wbHVnaW5fc2VsZWN0b3JfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vcGx1Z2luX3NlbGVjdG9yX2NvbXBvbmVudC5jc3MiXX1dfV0sbnVsbCx7YWN0aXZlUGx1Z2luczpbe3R5cGU6Ul99XSxkaXNhYmxlZFBsdWdpbnM6W3t0eXBlOlJffV0sc2VsZWN0ZWRQbHVnaW46W3t0eXBlOlJffV0sb25QbHVnaW5TZWxlY3Rpb25DaGFuZ2VkOlt7dHlwZTpFX31dfSk7Y29uc3QgRVk9YlMoblQsKHQ9Pk9iamVjdC5rZXlzKHQpLm1hcCgoZT0+T2JqZWN0LmFzc2lnbih7fSx7aWQ6ZX0sdFtlXSkpKSkpLEFZPWJTKEVZLCh0PT50LmZpbHRlcigodD0+IXQuZW5hYmxlZCkpKSk7Y2xhc3MgVFl7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMuYWN0aXZlUGx1Z2luJD10aGlzLnN0b3JlLnBpcGUoclMoZVQpKSx0aGlzLnBsdWdpbnMkPXRoaXMuc3RvcmUucGlwZShyUyhFWSkpLHRoaXMuZGlzYWJsZWRQbHVnaW5zJD10aGlzLnN0b3JlLnBpcGUoclMoQVkpKX1vblBsdWdpblNlbGVjdGlvbkNoYW5nZSh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKFpFKHtwbHVnaW46dH0pKX19ZnVuY3Rpb24gTlkodCxlKXt9VFkuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFRZKShnZihpUykpfSxUWS7JtWNtcD1zbyh7dHlwZTpUWSxzZWxlY3RvcnM6W1sicGx1Z2luLXNlbGVjdG9yIl1dLGRlY2xzOjQsdmFyczo5LGNvbnN0czpbWzMsImFjdGl2ZVBsdWdpbnMiLCJkaXNhYmxlZFBsdWdpbnMiLCJzZWxlY3RlZFBsdWdpbiIsIm9uUGx1Z2luU2VsZWN0aW9uQ2hhbmdlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwicGx1Z2luLXNlbGVjdG9yLWNvbXBvbmVudCIsMCksUmYoIm9uUGx1Z2luU2VsZWN0aW9uQ2hhbmdlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25QbHVnaW5TZWxlY3Rpb25DaGFuZ2UoZSl9KSksX3koMSwiYXN5bmMiKSxfeSgyLCJhc3luYyIpLF95KDMsImFzeW5jIiksTWYoKSksMiZlJiZiZigiYWN0aXZlUGx1Z2lucyIsQ3koMSwzLG4ucGx1Z2lucyQpKSgiZGlzYWJsZWRQbHVnaW5zIixDeSgyLDUsbi5kaXNhYmxlZFBsdWdpbnMkKSkoInNlbGVjdGVkUGx1Z2luIixDeSgzLDcsbi5hY3RpdmVQbHVnaW4kKSl9LGRpcmVjdGl2ZXM6W1JZXSxwaXBlczpbVnZdLGVuY2Fwc3VsYXRpb246Mn0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoVFksW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoicGx1Z2luLXNlbGVjdG9yIix0ZW1wbGF0ZTonXG4gICAgPHBsdWdpbi1zZWxlY3Rvci1jb21wb25lbnRcbiAgICAgIFthY3RpdmVQbHVnaW5zXT0icGx1Z2lucyQgfCBhc3luYyJcbiAgICAgIFtkaXNhYmxlZFBsdWdpbnNdPSJkaXNhYmxlZFBsdWdpbnMkIHwgYXN5bmMiXG4gICAgICBbc2VsZWN0ZWRQbHVnaW5dPSJhY3RpdmVQbHVnaW4kIHwgYXN5bmMiXG4gICAgICAob25QbHVnaW5TZWxlY3Rpb25DaGFuZ2VkKT0ib25QbHVnaW5TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KSJcbiAgICA+PC9wbHVnaW4tc2VsZWN0b3ItY29tcG9uZW50PlxuICAnfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aVN9XX0pLG51bGwpO2NsYXNzIHpZe2NvbnN0cnVjdG9yKCl7dGhpcy5yb2xlPSJkaWFsb2ciLHRoaXMucGFuZWxDbGFzcz0iIix0aGlzLmhhc0JhY2tkcm9wPSEwLHRoaXMuYmFja2Ryb3BDbGFzcz0iIix0aGlzLmRpc2FibGVDbG9zZT0hMSx0aGlzLndpZHRoPSIiLHRoaXMuaGVpZ2h0PSIiLHRoaXMubWF4V2lkdGg9IjgwdnciLHRoaXMuZGF0YT1udWxsLHRoaXMuYXJpYURlc2NyaWJlZEJ5PW51bGwsdGhpcy5hcmlhTGFiZWxsZWRCeT1udWxsLHRoaXMuYXJpYUxhYmVsPW51bGwsdGhpcy5hdXRvRm9jdXM9ITAsdGhpcy5yZXN0b3JlRm9jdXM9ITAsdGhpcy5jbG9zZU9uTmF2aWdhdGlvbj0hMH19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IElZPXtkaWFsb2dDb250YWluZXI6eE8oImRpYWxvZ0NvbnRhaW5lciIsW2tPKCJ2b2lkLCBleGl0Iix3Tyh7b3BhY2l0eTowLHRyYW5zZm9ybToic2NhbGUoMC43KSJ9KSksa08oImVudGVyIix3Tyh7dHJhbnNmb3JtOiJub25lIn0pKSxETygiKiA9PiBlbnRlciIsT08oIjE1MG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpIix3Tyh7dHJhbnNmb3JtOiJub25lIixvcGFjaXR5OjF9KSkpLERPKCIqID0+IHZvaWQsICogPT4gZXhpdCIsT08oIjc1bXMgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpIix3Tyh7b3BhY2l0eTowfSkpKV0pfTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24gSFkoKXt0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBhdHRhY2ggZGlhbG9nIGNvbnRlbnQgYWZ0ZXIgY29udGVudCBpcyBhbHJlYWR5IGF0dGFjaGVkIil9Y2xhc3MgRlkgZXh0ZW5kcyBkQntjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSl7c3VwZXIoKSx0aGlzLl9lbGVtZW50UmVmPXQsdGhpcy5fZm9jdXNUcmFwRmFjdG9yeT1lLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPW4sdGhpcy5fY29uZmlnPWksdGhpcy5fZm9jdXNNb25pdG9yPWEsdGhpcy5fYW5pbWF0aW9uU3RhdGVDaGFuZ2VkPW5ldyBTeSx0aGlzLl9lbGVtZW50Rm9jdXNlZEJlZm9yZURpYWxvZ1dhc09wZW5lZD1udWxsLHRoaXMuX2Nsb3NlSW50ZXJhY3Rpb25UeXBlPW51bGwsdGhpcy5hdHRhY2hEb21Qb3J0YWw9dD0+KHRoaXMuX3BvcnRhbE91dGxldC5oYXNBdHRhY2hlZCgpJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJkhZKCksdGhpcy5fcG9ydGFsT3V0bGV0LmF0dGFjaERvbVBvcnRhbCh0KSksdGhpcy5fYXJpYUxhYmVsbGVkQnk9aS5hcmlhTGFiZWxsZWRCeXx8bnVsbCx0aGlzLl9kb2N1bWVudD1vfV9pbml0aWFsaXplV2l0aEF0dGFjaGVkQ29udGVudCgpe3RoaXMuX3NldHVwRm9jdXNUcmFwKCksdGhpcy5fY2FwdHVyZVByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCgpLHRoaXMuX2ZvY3VzRGlhbG9nQ29udGFpbmVyKCl9YXR0YWNoQ29tcG9uZW50UG9ydGFsKHQpe3JldHVybiB0aGlzLl9wb3J0YWxPdXRsZXQuaGFzQXR0YWNoZWQoKSYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZIWSgpLHRoaXMuX3BvcnRhbE91dGxldC5hdHRhY2hDb21wb25lbnRQb3J0YWwodCl9YXR0YWNoVGVtcGxhdGVQb3J0YWwodCl7cmV0dXJuIHRoaXMuX3BvcnRhbE91dGxldC5oYXNBdHRhY2hlZCgpJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJkhZKCksdGhpcy5fcG9ydGFsT3V0bGV0LmF0dGFjaFRlbXBsYXRlUG9ydGFsKHQpfV9yZWNhcHR1cmVGb2N1cygpe2lmKCF0aGlzLl9jb250YWluc0ZvY3VzKCkpeyghdGhpcy5fY29uZmlnLmF1dG9Gb2N1c3x8IXRoaXMuX2ZvY3VzVHJhcC5mb2N1c0luaXRpYWxFbGVtZW50KCkpJiZ0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKX19X3RyYXBGb2N1cygpe3RoaXMuX2NvbmZpZy5hdXRvRm9jdXM/dGhpcy5fZm9jdXNUcmFwLmZvY3VzSW5pdGlhbEVsZW1lbnRXaGVuUmVhZHkoKTp0aGlzLl9jb250YWluc0ZvY3VzKCl8fHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpfV9yZXN0b3JlRm9jdXMoKXtjb25zdCB0PXRoaXMuX2VsZW1lbnRGb2N1c2VkQmVmb3JlRGlhbG9nV2FzT3BlbmVkO2lmKHRoaXMuX2NvbmZpZy5yZXN0b3JlRm9jdXMmJnQmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LmZvY3VzKXtjb25zdCBlPU1IKCksbj10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7ZSYmZSE9PXRoaXMuX2RvY3VtZW50LmJvZHkmJmUhPT1uJiYhbi5jb250YWlucyhlKXx8KHRoaXMuX2ZvY3VzTW9uaXRvcj8odGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKHQsdGhpcy5fY2xvc2VJbnRlcmFjdGlvblR5cGUpLHRoaXMuX2Nsb3NlSW50ZXJhY3Rpb25UeXBlPW51bGwpOnQuZm9jdXMoKSl9dGhpcy5fZm9jdXNUcmFwJiZ0aGlzLl9mb2N1c1RyYXAuZGVzdHJveSgpfV9zZXR1cEZvY3VzVHJhcCgpe3RoaXMuX2ZvY3VzVHJhcD10aGlzLl9mb2N1c1RyYXBGYWN0b3J5LmNyZWF0ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpfV9jYXB0dXJlUHJldmlvdXNseUZvY3VzZWRFbGVtZW50KCl7dGhpcy5fZG9jdW1lbnQmJih0aGlzLl9lbGVtZW50Rm9jdXNlZEJlZm9yZURpYWxvZ1dhc09wZW5lZD1NSCgpKX1fZm9jdXNEaWFsb2dDb250YWluZXIoKXt0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMmJnRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpfV9jb250YWluc0ZvY3VzKCl7Y29uc3QgdD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsZT1NSCgpO3JldHVybiB0PT09ZXx8dC5jb250YWlucyhlKX19RlkuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEZZKShnZihLaCksZ2YoV0gpLGdmKE9iKSxnZihzTSw4KSxnZih6WSksZ2YoZkYpKX0sRlkuybVkaXI9aG8oe3R5cGU6Rlksdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJlZ5KHVCLDcpLDImZSl7bGV0IHQ7QnkodD1VeSgpKSYmKG4uX3BvcnRhbE91dGxldD10LmZpcnN0KX19LGZlYXR1cmVzOltRcF19KSxGWS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOktofSx7dHlwZTpXSH0se3R5cGU6T2J9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbc01dfV19LHt0eXBlOnpZfSx7dHlwZTpmRn1dLEZZLnByb3BEZWNvcmF0b3JzPXtfcG9ydGFsT3V0bGV0Olt7dHlwZTphcixhcmdzOlt1Qix7c3RhdGljOiEwfV19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihGWSxbe3R5cGU6a199XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6S2h9LHt0eXBlOldIfSx7dHlwZTpPYn0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltzTV19XX0se3R5cGU6ell9LHt0eXBlOmZGfV19KSx7X3BvcnRhbE91dGxldDpbe3R5cGU6YXIsYXJnczpbdUIse3N0YXRpYzohMH1dfV19KTtjbGFzcyBMWSBleHRlbmRzIEZZe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9zdGF0ZT0iZW50ZXIifV9vbkFuaW1hdGlvbkRvbmUoe3RvU3RhdGU6dCx0b3RhbFRpbWU6ZX0peyJlbnRlciI9PT10Pyh0aGlzLl90cmFwRm9jdXMoKSx0aGlzLl9hbmltYXRpb25TdGF0ZUNoYW5nZWQubmV4dCh7c3RhdGU6Im9wZW5lZCIsdG90YWxUaW1lOmV9KSk6ImV4aXQiPT09dCYmKHRoaXMuX3Jlc3RvcmVGb2N1cygpLHRoaXMuX2FuaW1hdGlvblN0YXRlQ2hhbmdlZC5uZXh0KHtzdGF0ZToiY2xvc2VkIix0b3RhbFRpbWU6ZX0pKX1fb25BbmltYXRpb25TdGFydCh7dG9TdGF0ZTp0LHRvdGFsVGltZTplfSl7ImVudGVyIj09PXQ/dGhpcy5fYW5pbWF0aW9uU3RhdGVDaGFuZ2VkLm5leHQoe3N0YXRlOiJvcGVuaW5nIix0b3RhbFRpbWU6ZX0pOiJleGl0IiE9PXQmJiJ2b2lkIiE9PXR8fHRoaXMuX2FuaW1hdGlvblN0YXRlQ2hhbmdlZC5uZXh0KHtzdGF0ZToiY2xvc2luZyIsdG90YWxUaW1lOmV9KX1fc3RhcnRFeGl0QW5pbWF0aW9uKCl7dGhpcy5fc3RhdGU9ImV4aXQiLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfX1MWS7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9VWEoTFkpKSkobnx8TFkpfX0pKCksTFkuybVjbXA9c28oe3R5cGU6TFksc2VsZWN0b3JzOltbIm1hdC1kaWFsb2ctY29udGFpbmVyIl1dLGhvc3RBdHRyczpbInRhYmluZGV4IiwiLTEiLCJhcmlhLW1vZGFsIiwidHJ1ZSIsMSwibWF0LWRpYWxvZy1jb250YWluZXIiXSxob3N0VmFyczo2LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZFZigiQGRpYWxvZ0NvbnRhaW5lci5zdGFydCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX29uQW5pbWF0aW9uU3RhcnQoZSl9KSkoIkBkaWFsb2dDb250YWluZXIuZG9uZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX29uQW5pbWF0aW9uRG9uZShlKX0pKSwyJmUmJihjZygiaWQiLG4uX2lkKSx5bSgicm9sZSIsbi5fY29uZmlnLnJvbGUpKCJhcmlhLWxhYmVsbGVkYnkiLG4uX2NvbmZpZy5hcmlhTGFiZWw/bnVsbDpuLl9hcmlhTGFiZWxsZWRCeSkoImFyaWEtbGFiZWwiLG4uX2NvbmZpZy5hcmlhTGFiZWwpKCJhcmlhLWRlc2NyaWJlZGJ5IixuLl9jb25maWcuYXJpYURlc2NyaWJlZEJ5fHxudWxsKSxkZygiQGRpYWxvZ0NvbnRhaW5lciIsbi5fc3RhdGUpKX0sZmVhdHVyZXM6W1FwXSxkZWNsczoxLHZhcnM6MCxjb25zdHM6W1siY2RrUG9ydGFsT3V0bGV0IiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJkhtKDAsTlksMCwwLCJuZy10ZW1wbGF0ZSIsMCl9LGRpcmVjdGl2ZXM6W3VCXSxzdHlsZXM6WyIubWF0LWRpYWxvZy1jb250YWluZXJ7ZGlzcGxheTpibG9jaztwYWRkaW5nOjI0cHg7Ym9yZGVyLXJhZGl1czo0cHg7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OmF1dG87b3V0bGluZTowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7bWluLWhlaWdodDppbmhlcml0O21heC1oZWlnaHQ6aW5oZXJpdH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtZGlhbG9nLWNvbnRhaW5lcntvdXRsaW5lOnNvbGlkIDFweH0ubWF0LWRpYWxvZy1jb250ZW50e2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjAgLTI0cHg7cGFkZGluZzowIDI0cHg7bWF4LWhlaWdodDo2NXZoO292ZXJmbG93OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9Lm1hdC1kaWFsb2ctdGl0bGV7bWFyZ2luOjAgMCAyMHB4O2Rpc3BsYXk6YmxvY2t9Lm1hdC1kaWFsb2ctYWN0aW9uc3twYWRkaW5nOjhweCAwO2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDttaW4taGVpZ2h0OjUycHg7YWxpZ24taXRlbXM6Y2VudGVyO2JveC1zaXppbmc6Y29udGVudC1ib3g7bWFyZ2luLWJvdHRvbTotMjRweH0ubWF0LWRpYWxvZy1hY3Rpb25zW2FsaWduPWVuZF17anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5tYXQtZGlhbG9nLWFjdGlvbnNbYWxpZ249Y2VudGVyXXtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5tYXQtZGlhbG9nLWFjdGlvbnMgLm1hdC1idXR0b24tYmFzZSsubWF0LWJ1dHRvbi1iYXNlLC5tYXQtZGlhbG9nLWFjdGlvbnMgLm1hdC1tZGMtYnV0dG9uLWJhc2UrLm1hdC1tZGMtYnV0dG9uLWJhc2V7bWFyZ2luLWxlZnQ6OHB4fVtkaXI9cnRsXSAubWF0LWRpYWxvZy1hY3Rpb25zIC5tYXQtYnV0dG9uLWJhc2UrLm1hdC1idXR0b24tYmFzZSxbZGlyPXJ0bF0gLm1hdC1kaWFsb2ctYWN0aW9ucyAubWF0LW1kYy1idXR0b24tYmFzZSsubWF0LW1kYy1idXR0b24tYmFzZXttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDo4cHh9XG4iXSxlbmNhcHN1bGF0aW9uOjIsZGF0YTp7YW5pbWF0aW9uOltJWS5kaWFsb2dDb250YWluZXJdfX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoTFksW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibWF0LWRpYWxvZy1jb250YWluZXIiLHRlbXBsYXRlOiI8bmctdGVtcGxhdGUgY2RrUG9ydGFsT3V0bGV0PjwvbmctdGVtcGxhdGU+XG4iLGVuY2Fwc3VsYXRpb246V24uTm9uZSxjaGFuZ2VEZXRlY3Rpb246am4uRGVmYXVsdCxhbmltYXRpb25zOltJWS5kaWFsb2dDb250YWluZXJdLGhvc3Q6e2NsYXNzOiJtYXQtZGlhbG9nLWNvbnRhaW5lciIsdGFiaW5kZXg6Ii0xIiwiYXJpYS1tb2RhbCI6InRydWUiLCJbaWRdIjoiX2lkIiwiW2F0dHIucm9sZV0iOiJfY29uZmlnLnJvbGUiLCJbYXR0ci5hcmlhLWxhYmVsbGVkYnldIjoiX2NvbmZpZy5hcmlhTGFiZWwgPyBudWxsIDogX2FyaWFMYWJlbGxlZEJ5IiwiW2F0dHIuYXJpYS1sYWJlbF0iOiJfY29uZmlnLmFyaWFMYWJlbCIsIlthdHRyLmFyaWEtZGVzY3JpYmVkYnldIjoiX2NvbmZpZy5hcmlhRGVzY3JpYmVkQnkgfHwgbnVsbCIsIltAZGlhbG9nQ29udGFpbmVyXSI6Il9zdGF0ZSIsIihAZGlhbG9nQ29udGFpbmVyLnN0YXJ0KSI6Il9vbkFuaW1hdGlvblN0YXJ0KCRldmVudCkiLCIoQGRpYWxvZ0NvbnRhaW5lci5kb25lKSI6Il9vbkFuaW1hdGlvbkRvbmUoJGV2ZW50KSJ9LHN0eWxlczpbIi5tYXQtZGlhbG9nLWNvbnRhaW5lcntkaXNwbGF5OmJsb2NrO3BhZGRpbmc6MjRweDtib3JkZXItcmFkaXVzOjRweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6YXV0bztvdXRsaW5lOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTttaW4taGVpZ2h0OmluaGVyaXQ7bWF4LWhlaWdodDppbmhlcml0fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1kaWFsb2ctY29udGFpbmVye291dGxpbmU6c29saWQgMXB4fS5tYXQtZGlhbG9nLWNvbnRlbnR7ZGlzcGxheTpibG9jazttYXJnaW46MCAtMjRweDtwYWRkaW5nOjAgMjRweDttYXgtaGVpZ2h0OjY1dmg7b3ZlcmZsb3c6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0ubWF0LWRpYWxvZy10aXRsZXttYXJnaW46MCAwIDIwcHg7ZGlzcGxheTpibG9ja30ubWF0LWRpYWxvZy1hY3Rpb25ze3BhZGRpbmc6OHB4IDA7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO21pbi1oZWlnaHQ6NTJweDthbGlnbi1pdGVtczpjZW50ZXI7Ym94LXNpemluZzpjb250ZW50LWJveDttYXJnaW4tYm90dG9tOi0yNHB4fS5tYXQtZGlhbG9nLWFjdGlvbnNbYWxpZ249ZW5kXXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9Lm1hdC1kaWFsb2ctYWN0aW9uc1thbGlnbj1jZW50ZXJde2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lm1hdC1kaWFsb2ctYWN0aW9ucyAubWF0LWJ1dHRvbi1iYXNlKy5tYXQtYnV0dG9uLWJhc2UsLm1hdC1kaWFsb2ctYWN0aW9ucyAubWF0LW1kYy1idXR0b24tYmFzZSsubWF0LW1kYy1idXR0b24tYmFzZXttYXJnaW4tbGVmdDo4cHh9W2Rpcj1ydGxdIC5tYXQtZGlhbG9nLWFjdGlvbnMgLm1hdC1idXR0b24tYmFzZSsubWF0LWJ1dHRvbi1iYXNlLFtkaXI9cnRsXSAubWF0LWRpYWxvZy1hY3Rpb25zIC5tYXQtbWRjLWJ1dHRvbi1iYXNlKy5tYXQtbWRjLWJ1dHRvbi1iYXNle21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjhweH1cbiJdfV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KbGV0IEJZPTA7Y2xhc3MgVll7Y29uc3RydWN0b3IodCxlLG49Im1hdC1kaWFsb2ctIitCWSsrKXt0aGlzLl9vdmVybGF5UmVmPXQsdGhpcy5fY29udGFpbmVySW5zdGFuY2U9ZSx0aGlzLmlkPW4sdGhpcy5kaXNhYmxlQ2xvc2U9dGhpcy5fY29udGFpbmVySW5zdGFuY2UuX2NvbmZpZy5kaXNhYmxlQ2xvc2UsdGhpcy5fYWZ0ZXJPcGVuZWQ9bmV3IEIsdGhpcy5fYWZ0ZXJDbG9zZWQ9bmV3IEIsdGhpcy5fYmVmb3JlQ2xvc2VkPW5ldyBCLHRoaXMuX3N0YXRlPTAsZS5faWQ9bixlLl9hbmltYXRpb25TdGF0ZUNoYW5nZWQucGlwZSh1ZSgodD0+Im9wZW5lZCI9PT10LnN0YXRlKSksdmUoMSkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl9hZnRlck9wZW5lZC5uZXh0KCksdGhpcy5fYWZ0ZXJPcGVuZWQuY29tcGxldGUoKX0pKSxlLl9hbmltYXRpb25TdGF0ZUNoYW5nZWQucGlwZSh1ZSgodD0+ImNsb3NlZCI9PT10LnN0YXRlKSksdmUoMSkpLnN1YnNjcmliZSgoKCk9PntjbGVhclRpbWVvdXQodGhpcy5fY2xvc2VGYWxsYmFja1RpbWVvdXQpLHRoaXMuX2ZpbmlzaERpYWxvZ0Nsb3NlKCl9KSksdC5kZXRhY2htZW50cygpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl9iZWZvcmVDbG9zZWQubmV4dCh0aGlzLl9yZXN1bHQpLHRoaXMuX2JlZm9yZUNsb3NlZC5jb21wbGV0ZSgpLHRoaXMuX2FmdGVyQ2xvc2VkLm5leHQodGhpcy5fcmVzdWx0KSx0aGlzLl9hZnRlckNsb3NlZC5jb21wbGV0ZSgpLHRoaXMuY29tcG9uZW50SW5zdGFuY2U9bnVsbCx0aGlzLl9vdmVybGF5UmVmLmRpc3Bvc2UoKX0pKSx0LmtleWRvd25FdmVudHMoKS5waXBlKHVlKCh0PT50LmtleUNvZGU9PT1LSSYmIXRoaXMuZGlzYWJsZUNsb3NlJiYhdEgodCkpKSkuc3Vic2NyaWJlKCh0PT57dC5wcmV2ZW50RGVmYXVsdCgpLGpZKHRoaXMsImtleWJvYXJkIil9KSksdC5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuZGlzYWJsZUNsb3NlP3RoaXMuX2NvbnRhaW5lckluc3RhbmNlLl9yZWNhcHR1cmVGb2N1cygpOmpZKHRoaXMsIm1vdXNlIil9KSl9Y2xvc2UodCl7dGhpcy5fcmVzdWx0PXQsdGhpcy5fY29udGFpbmVySW5zdGFuY2UuX2FuaW1hdGlvblN0YXRlQ2hhbmdlZC5waXBlKHVlKCh0PT4iY2xvc2luZyI9PT10LnN0YXRlKSksdmUoMSkpLnN1YnNjcmliZSgoZT0+e3RoaXMuX2JlZm9yZUNsb3NlZC5uZXh0KHQpLHRoaXMuX2JlZm9yZUNsb3NlZC5jb21wbGV0ZSgpLHRoaXMuX292ZXJsYXlSZWYuZGV0YWNoQmFja2Ryb3AoKSx0aGlzLl9jbG9zZUZhbGxiYWNrVGltZW91dD1zZXRUaW1lb3V0KCgoKT0+dGhpcy5fZmluaXNoRGlhbG9nQ2xvc2UoKSksZS50b3RhbFRpbWUrMTAwKX0pKSx0aGlzLl9zdGF0ZT0xLHRoaXMuX2NvbnRhaW5lckluc3RhbmNlLl9zdGFydEV4aXRBbmltYXRpb24oKX1hZnRlck9wZW5lZCgpe3JldHVybiB0aGlzLl9hZnRlck9wZW5lZH1hZnRlckNsb3NlZCgpe3JldHVybiB0aGlzLl9hZnRlckNsb3NlZH1iZWZvcmVDbG9zZWQoKXtyZXR1cm4gdGhpcy5fYmVmb3JlQ2xvc2VkfWJhY2tkcm9wQ2xpY2soKXtyZXR1cm4gdGhpcy5fb3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCl9a2V5ZG93bkV2ZW50cygpe3JldHVybiB0aGlzLl9vdmVybGF5UmVmLmtleWRvd25FdmVudHMoKX11cGRhdGVQb3NpdGlvbih0KXtsZXQgZT10aGlzLl9nZXRQb3NpdGlvblN0cmF0ZWd5KCk7cmV0dXJuIHQmJih0LmxlZnR8fHQucmlnaHQpP3QubGVmdD9lLmxlZnQodC5sZWZ0KTplLnJpZ2h0KHQucmlnaHQpOmUuY2VudGVySG9yaXpvbnRhbGx5KCksdCYmKHQudG9wfHx0LmJvdHRvbSk/dC50b3A/ZS50b3AodC50b3ApOmUuYm90dG9tKHQuYm90dG9tKTplLmNlbnRlclZlcnRpY2FsbHkoKSx0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCksdGhpc311cGRhdGVTaXplKHQ9IiIsZT0iIil7cmV0dXJuIHRoaXMuX292ZXJsYXlSZWYudXBkYXRlU2l6ZSh7d2lkdGg6dCxoZWlnaHQ6ZX0pLHRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKSx0aGlzfWFkZFBhbmVsQ2xhc3ModCl7cmV0dXJuIHRoaXMuX292ZXJsYXlSZWYuYWRkUGFuZWxDbGFzcyh0KSx0aGlzfXJlbW92ZVBhbmVsQ2xhc3ModCl7cmV0dXJuIHRoaXMuX292ZXJsYXlSZWYucmVtb3ZlUGFuZWxDbGFzcyh0KSx0aGlzfWdldFN0YXRlKCl7cmV0dXJuIHRoaXMuX3N0YXRlfV9maW5pc2hEaWFsb2dDbG9zZSgpe3RoaXMuX3N0YXRlPTIsdGhpcy5fb3ZlcmxheVJlZi5kaXNwb3NlKCl9X2dldFBvc2l0aW9uU3RyYXRlZ3koKXtyZXR1cm4gdGhpcy5fb3ZlcmxheVJlZi5nZXRDb25maWcoKS5wb3NpdGlvblN0cmF0ZWd5fX1mdW5jdGlvbiBqWSh0LGUsbil7cmV0dXJuIHZvaWQgMCE9PXQuX2NvbnRhaW5lckluc3RhbmNlJiYodC5fY29udGFpbmVySW5zdGFuY2UuX2Nsb3NlSW50ZXJhY3Rpb25UeXBlPWUpLHQuY2xvc2Uobil9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2NvbnN0IFVZPW5ldyBlcigiTWF0RGlhbG9nRGF0YSIpLFdZPW5ldyBlcigibWF0LWRpYWxvZy1kZWZhdWx0LW9wdGlvbnMiKSxHWT1uZXcgZXIoIm1hdC1kaWFsb2ctc2Nyb2xsLXN0cmF0ZWd5Iik7Y29uc3QgWVk9e3Byb3ZpZGU6R1ksZGVwczpbS0JdLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gcVkodCl7cmV0dXJuKCk9PnQuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpfX07Y2xhc3MgWll7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscixzLGwpe3RoaXMuX292ZXJsYXk9dCx0aGlzLl9pbmplY3Rvcj1lLHRoaXMuX2RlZmF1bHRPcHRpb25zPW4sdGhpcy5fcGFyZW50RGlhbG9nPW8sdGhpcy5fb3ZlcmxheUNvbnRhaW5lcj1pLHRoaXMuX2RpYWxvZ1JlZkNvbnN0cnVjdG9yPXIsdGhpcy5fZGlhbG9nQ29udGFpbmVyVHlwZT1zLHRoaXMuX2RpYWxvZ0RhdGFUb2tlbj1sLHRoaXMuX29wZW5EaWFsb2dzQXRUaGlzTGV2ZWw9W10sdGhpcy5fYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbD1uZXcgQix0aGlzLl9hZnRlck9wZW5lZEF0VGhpc0xldmVsPW5ldyBCLHRoaXMuX2FyaWFIaWRkZW5FbGVtZW50cz1uZXcgTWFwLHRoaXMuYWZ0ZXJBbGxDbG9zZWQ9b2UoKCgpPT50aGlzLm9wZW5EaWFsb2dzLmxlbmd0aD90aGlzLl9nZXRBZnRlckFsbENsb3NlZCgpOnRoaXMuX2dldEFmdGVyQWxsQ2xvc2VkKCkucGlwZShCZSh2b2lkIDApKSkpLHRoaXMuX3Njcm9sbFN0cmF0ZWd5PWF9Z2V0IG9wZW5EaWFsb2dzKCl7cmV0dXJuIHRoaXMuX3BhcmVudERpYWxvZz90aGlzLl9wYXJlbnREaWFsb2cub3BlbkRpYWxvZ3M6dGhpcy5fb3BlbkRpYWxvZ3NBdFRoaXNMZXZlbH1nZXQgYWZ0ZXJPcGVuZWQoKXtyZXR1cm4gdGhpcy5fcGFyZW50RGlhbG9nP3RoaXMuX3BhcmVudERpYWxvZy5hZnRlck9wZW5lZDp0aGlzLl9hZnRlck9wZW5lZEF0VGhpc0xldmVsfV9nZXRBZnRlckFsbENsb3NlZCgpe2NvbnN0IHQ9dGhpcy5fcGFyZW50RGlhbG9nO3JldHVybiB0P3QuX2dldEFmdGVyQWxsQ2xvc2VkKCk6dGhpcy5fYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbH1vcGVuKHQsZSl7aWYoKGU9KGZ1bmN0aW9uIG4odCxlKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHQpfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKGUsdGhpcy5fZGVmYXVsdE9wdGlvbnN8fG5ldyB6WSkpLmlkJiZ0aGlzLmdldERpYWxvZ0J5SWQoZS5pZCkmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyBFcnJvcihgRGlhbG9nIHdpdGggaWQgIiR7ZS5pZH0iIGV4aXN0cyBhbHJlYWR5LiBUaGUgZGlhbG9nIGlkIG11c3QgYmUgdW5pcXVlLmApO2NvbnN0IG89dGhpcy5fY3JlYXRlT3ZlcmxheShlKSxpPXRoaXMuX2F0dGFjaERpYWxvZ0NvbnRhaW5lcihvLGUpLGE9dGhpcy5fYXR0YWNoRGlhbG9nQ29udGVudCh0LGksbyxlKTtyZXR1cm4gdGhpcy5vcGVuRGlhbG9ncy5sZW5ndGh8fHRoaXMuX2hpZGVOb25EaWFsb2dDb250ZW50RnJvbUFzc2lzdGl2ZVRlY2hub2xvZ3koKSx0aGlzLm9wZW5EaWFsb2dzLnB1c2goYSksYS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKCk9PnRoaXMuX3JlbW92ZU9wZW5EaWFsb2coYSkpKSx0aGlzLmFmdGVyT3BlbmVkLm5leHQoYSksaS5faW5pdGlhbGl6ZVdpdGhBdHRhY2hlZENvbnRlbnQoKSxhfWNsb3NlQWxsKCl7dGhpcy5fY2xvc2VEaWFsb2dzKHRoaXMub3BlbkRpYWxvZ3MpfWdldERpYWxvZ0J5SWQodCl7cmV0dXJuIHRoaXMub3BlbkRpYWxvZ3MuZmluZCgoZT0+ZS5pZD09PXQpKX1uZ09uRGVzdHJveSgpe3RoaXMuX2Nsb3NlRGlhbG9ncyh0aGlzLl9vcGVuRGlhbG9nc0F0VGhpc0xldmVsKSx0aGlzLl9hZnRlckFsbENsb3NlZEF0VGhpc0xldmVsLmNvbXBsZXRlKCksdGhpcy5fYWZ0ZXJPcGVuZWRBdFRoaXNMZXZlbC5jb21wbGV0ZSgpfV9jcmVhdGVPdmVybGF5KHQpe2NvbnN0IGU9dGhpcy5fZ2V0T3ZlcmxheUNvbmZpZyh0KTtyZXR1cm4gdGhpcy5fb3ZlcmxheS5jcmVhdGUoZSl9X2dldE92ZXJsYXlDb25maWcodCl7Y29uc3QgZT1uZXcgd0Ioe3Bvc2l0aW9uU3RyYXRlZ3k6dGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLHNjcm9sbFN0cmF0ZWd5OnQuc2Nyb2xsU3RyYXRlZ3l8fHRoaXMuX3Njcm9sbFN0cmF0ZWd5KCkscGFuZWxDbGFzczp0LnBhbmVsQ2xhc3MsaGFzQmFja2Ryb3A6dC5oYXNCYWNrZHJvcCxkaXJlY3Rpb246dC5kaXJlY3Rpb24sbWluV2lkdGg6dC5taW5XaWR0aCxtaW5IZWlnaHQ6dC5taW5IZWlnaHQsbWF4V2lkdGg6dC5tYXhXaWR0aCxtYXhIZWlnaHQ6dC5tYXhIZWlnaHQsZGlzcG9zZU9uTmF2aWdhdGlvbjp0LmNsb3NlT25OYXZpZ2F0aW9ufSk7cmV0dXJuIHQuYmFja2Ryb3BDbGFzcyYmKGUuYmFja2Ryb3BDbGFzcz10LmJhY2tkcm9wQ2xhc3MpLGV9X2F0dGFjaERpYWxvZ0NvbnRhaW5lcih0LGUpe2NvbnN0IG49TnAuY3JlYXRlKHtwYXJlbnQ6ZSYmZS52aWV3Q29udGFpbmVyUmVmJiZlLnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3J8fHRoaXMuX2luamVjdG9yLHByb3ZpZGVyczpbe3Byb3ZpZGU6elksdXNlVmFsdWU6ZX1dfSksbz1uZXcgc0IodGhpcy5fZGlhbG9nQ29udGFpbmVyVHlwZSxlLnZpZXdDb250YWluZXJSZWYsbixlLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcik7cmV0dXJuIHQuYXR0YWNoKG8pLmluc3RhbmNlfV9hdHRhY2hEaWFsb2dDb250ZW50KHQsZSxuLG8pe2NvbnN0IGk9bmV3IHRoaXMuX2RpYWxvZ1JlZkNvbnN0cnVjdG9yKG4sZSxvLmlkKTtpZih0IGluc3RhbmNlb2YgRWIpZS5hdHRhY2hUZW1wbGF0ZVBvcnRhbChuZXcgbEIodCxudWxsLHskaW1wbGljaXQ6by5kYXRhLGRpYWxvZ1JlZjppfSkpO2Vsc2V7Y29uc3Qgbj10aGlzLl9jcmVhdGVJbmplY3RvcihvLGksZSksYT1lLmF0dGFjaENvbXBvbmVudFBvcnRhbChuZXcgc0IodCxvLnZpZXdDb250YWluZXJSZWYsbikpO2kuY29tcG9uZW50SW5zdGFuY2U9YS5pbnN0YW5jZX1yZXR1cm4gaS51cGRhdGVTaXplKG8ud2lkdGgsby5oZWlnaHQpLnVwZGF0ZVBvc2l0aW9uKG8ucG9zaXRpb24pLGl9X2NyZWF0ZUluamVjdG9yKHQsZSxuKXtjb25zdCBvPXQmJnQudmlld0NvbnRhaW5lclJlZiYmdC52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yLGk9W3twcm92aWRlOnRoaXMuX2RpYWxvZ0NvbnRhaW5lclR5cGUsdXNlVmFsdWU6bn0se3Byb3ZpZGU6dGhpcy5fZGlhbG9nRGF0YVRva2VuLHVzZVZhbHVlOnQuZGF0YX0se3Byb3ZpZGU6dGhpcy5fZGlhbG9nUmVmQ29uc3RydWN0b3IsdXNlVmFsdWU6ZX1dO3JldHVybiF0LmRpcmVjdGlvbnx8byYmby5nZXQodkYsbnVsbCxIbi5PcHRpb25hbCl8fGkucHVzaCh7cHJvdmlkZTp2Rix1c2VWYWx1ZTp7dmFsdWU6dC5kaXJlY3Rpb24sY2hhbmdlOnp0KCl9fSksTnAuY3JlYXRlKHtwYXJlbnQ6b3x8dGhpcy5faW5qZWN0b3IscHJvdmlkZXJzOml9KX1fcmVtb3ZlT3BlbkRpYWxvZyh0KXtjb25zdCBlPXRoaXMub3BlbkRpYWxvZ3MuaW5kZXhPZih0KTtlPi0xJiYodGhpcy5vcGVuRGlhbG9ncy5zcGxpY2UoZSwxKSx0aGlzLm9wZW5EaWFsb2dzLmxlbmd0aHx8KHRoaXMuX2FyaWFIaWRkZW5FbGVtZW50cy5mb3JFYWNoKCgodCxlKT0+e3Q/ZS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIix0KTplLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iKX0pKSx0aGlzLl9hcmlhSGlkZGVuRWxlbWVudHMuY2xlYXIoKSx0aGlzLl9nZXRBZnRlckFsbENsb3NlZCgpLm5leHQoKSkpfV9oaWRlTm9uRGlhbG9nQ29udGVudEZyb21Bc3Npc3RpdmVUZWNobm9sb2d5KCl7Y29uc3QgdD10aGlzLl9vdmVybGF5Q29udGFpbmVyLmdldENvbnRhaW5lckVsZW1lbnQoKTtpZih0LnBhcmVudEVsZW1lbnQpe2NvbnN0IGU9dC5wYXJlbnRFbGVtZW50LmNoaWxkcmVuO2ZvcihsZXQgbj1lLmxlbmd0aC0xO24+LTE7bi0tKXtsZXQgbz1lW25dO289PT10fHwiU0NSSVBUIj09PW8ubm9kZU5hbWV8fCJTVFlMRSI9PT1vLm5vZGVOYW1lfHxvLmhhc0F0dHJpYnV0ZSgiYXJpYS1saXZlIil8fCh0aGlzLl9hcmlhSGlkZGVuRWxlbWVudHMuc2V0KG8sby5nZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIikpLG8uc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSl9fX1fY2xvc2VEaWFsb2dzKHQpe2xldCBlPXQubGVuZ3RoO2Zvcig7ZS0tOyl0W2VdLmNsb3NlKCl9fVpZLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxaWSkoZ2YoS0IpLGdmKE5wKSxnZih2b2lkIDApLGdmKHZvaWQgMCksZ2YoSEIpLGdmKHZvaWQgMCksZ2YoY3IpLGdmKGNyKSxnZihlcikpfSxaWS7JtWRpcj1obyh7dHlwZTpaWX0pLFpZLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6S0J9LHt0eXBlOk5wfSx7dHlwZTp2b2lkIDB9LHt0eXBlOnZvaWQgMH0se3R5cGU6SEJ9LHt0eXBlOnZvaWQgMH0se3R5cGU6Y3J9LHt0eXBlOmNyfSx7dHlwZTplcn1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoWlksW3t0eXBlOmtffV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOktCfSx7dHlwZTpOcH0se3R5cGU6dm9pZCAwfSx7dHlwZTp2b2lkIDB9LHt0eXBlOkhCfSx7dHlwZTp2b2lkIDB9LHt0eXBlOmNyfSx7dHlwZTpjcn0se3R5cGU6ZXJ9XX0pLG51bGwpO2NsYXNzIFhZIGV4dGVuZHMgWll7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscil7c3VwZXIodCxlLG8sYSxyLGksVlksTFksVVkpfX1YWS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WFkpKFRyKEtCKSxUcihOcCksVHIoTU0sOCksVHIoV1ksOCksVHIoR1kpLFRyKFhZLDEyKSxUcihIQikpfSxYWS7JtXByb3Y9U24oe3Rva2VuOlhZLGZhY3Rvcnk6WFkuybVmYWN9KSxYWS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOktCfSx7dHlwZTpOcH0se3R5cGU6TU0sZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX0se3R5cGU6elksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W1dZXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbR1ldfV19LHt0eXBlOlhZLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpqcn1dfSx7dHlwZTpIQn1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoWFksW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOktCfSx7dHlwZTpOcH0se3R5cGU6TU0sZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX0se3R5cGU6elksZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W1dZXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbR1ldfV19LHt0eXBlOlhZLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpqcn1dfSx7dHlwZTpIQn1dfSksbnVsbCk7bGV0IEtZPTA7Y2xhc3MgSll7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuZGlhbG9nUmVmPXQsdGhpcy5fZWxlbWVudFJlZj1lLHRoaXMuX2RpYWxvZz1uLHRoaXMudHlwZT0iYnV0dG9uIn1uZ09uSW5pdCgpe3RoaXMuZGlhbG9nUmVmfHwodGhpcy5kaWFsb2dSZWY9ZXEodGhpcy5fZWxlbWVudFJlZix0aGlzLl9kaWFsb2cub3BlbkRpYWxvZ3MpKX1uZ09uQ2hhbmdlcyh0KXtjb25zdCBlPXQuX21hdERpYWxvZ0Nsb3NlfHx0Ll9tYXREaWFsb2dDbG9zZVJlc3VsdDtlJiYodGhpcy5kaWFsb2dSZXN1bHQ9ZS5jdXJyZW50VmFsdWUpfV9vbkJ1dHRvbkNsaWNrKHQpe2pZKHRoaXMuZGlhbG9nUmVmLDA9PT10LnNjcmVlblgmJjA9PT10LnNjcmVlblk/ImtleWJvYXJkIjoibW91c2UiLHRoaXMuZGlhbG9nUmVzdWx0KX19SlkuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEpZKShnZihWWSw4KSxnZihLaCksZ2YoWFkpKX0sSlkuybVkaXI9aG8oe3R5cGU6Slksc2VsZWN0b3JzOltbIiIsIm1hdC1kaWFsb2ctY2xvc2UiLCIiXSxbIiIsIm1hdERpYWxvZ0Nsb3NlIiwiIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlJmKCJjbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX29uQnV0dG9uQ2xpY2soZSl9KSksMiZlJiZ5bSgiYXJpYS1sYWJlbCIsbi5hcmlhTGFiZWx8fG51bGwpKCJ0eXBlIixuLnR5cGUpfSxpbnB1dHM6e3R5cGU6InR5cGUiLGRpYWxvZ1Jlc3VsdDpbIm1hdC1kaWFsb2ctY2xvc2UiLCJkaWFsb2dSZXN1bHQiXSxhcmlhTGFiZWw6WyJhcmlhLWxhYmVsIiwiYXJpYUxhYmVsIl0sX21hdERpYWxvZ0Nsb3NlOlsibWF0RGlhbG9nQ2xvc2UiLCJfbWF0RGlhbG9nQ2xvc2UiXX0sZXhwb3J0QXM6WyJtYXREaWFsb2dDbG9zZSJdLGZlYXR1cmVzOltxb119KSxKWS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlZZLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOktofSx7dHlwZTpYWX1dLEpZLnByb3BEZWNvcmF0b3JzPXthcmlhTGFiZWw6W3t0eXBlOlJfLGFyZ3M6WyJhcmlhLWxhYmVsIl19XSx0eXBlOlt7dHlwZTpSX31dLGRpYWxvZ1Jlc3VsdDpbe3R5cGU6Ul8sYXJnczpbIm1hdC1kaWFsb2ctY2xvc2UiXX1dLF9tYXREaWFsb2dDbG9zZTpbe3R5cGU6Ul8sYXJnczpbIm1hdERpYWxvZ0Nsb3NlIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihKWSxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJbbWF0LWRpYWxvZy1jbG9zZV0sIFttYXREaWFsb2dDbG9zZV0iLGV4cG9ydEFzOiJtYXREaWFsb2dDbG9zZSIsaG9zdDp7IihjbGljaykiOiJfb25CdXR0b25DbGljaygkZXZlbnQpIiwiW2F0dHIuYXJpYS1sYWJlbF0iOiJhcmlhTGFiZWwgfHwgbnVsbCIsIlthdHRyLnR5cGVdIjoidHlwZSJ9fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6VlksZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX0se3R5cGU6S2h9LHt0eXBlOlhZfV19KSx7dHlwZTpbe3R5cGU6Ul99XSxkaWFsb2dSZXN1bHQ6W3t0eXBlOlJfLGFyZ3M6WyJtYXQtZGlhbG9nLWNsb3NlIl19XSxhcmlhTGFiZWw6W3t0eXBlOlJfLGFyZ3M6WyJhcmlhLWxhYmVsIl19XSxfbWF0RGlhbG9nQ2xvc2U6W3t0eXBlOlJfLGFyZ3M6WyJtYXREaWFsb2dDbG9zZSJdfV19KTtjbGFzcyBRWXtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5fZGlhbG9nUmVmPXQsdGhpcy5fZWxlbWVudFJlZj1lLHRoaXMuX2RpYWxvZz1uLHRoaXMuaWQ9Im1hdC1kaWFsb2ctdGl0bGUtIitLWSsrfW5nT25Jbml0KCl7dGhpcy5fZGlhbG9nUmVmfHwodGhpcy5fZGlhbG9nUmVmPWVxKHRoaXMuX2VsZW1lbnRSZWYsdGhpcy5fZGlhbG9nLm9wZW5EaWFsb2dzKSksdGhpcy5fZGlhbG9nUmVmJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e2NvbnN0IHQ9dGhpcy5fZGlhbG9nUmVmLl9jb250YWluZXJJbnN0YW5jZTt0JiYhdC5fYXJpYUxhYmVsbGVkQnkmJih0Ll9hcmlhTGFiZWxsZWRCeT10aGlzLmlkKX0pKX19UVkuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFFZKShnZihWWSw4KSxnZihLaCksZ2YoWFkpKX0sUVkuybVkaXI9aG8oe3R5cGU6UVksc2VsZWN0b3JzOltbIiIsIm1hdC1kaWFsb2ctdGl0bGUiLCIiXSxbIiIsIm1hdERpYWxvZ1RpdGxlIiwiIl1dLGhvc3RBdHRyczpbMSwibWF0LWRpYWxvZy10aXRsZSJdLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJmNnKCJpZCIsbi5pZCl9LGlucHV0czp7aWQ6ImlkIn0sZXhwb3J0QXM6WyJtYXREaWFsb2dUaXRsZSJdfSksUVkuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpWWSxkZWNvcmF0b3JzOlt7dHlwZTpCcn1dfSx7dHlwZTpLaH0se3R5cGU6WFl9XSxRWS5wcm9wRGVjb3JhdG9ycz17aWQ6W3t0eXBlOlJffV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoUVksW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW21hdC1kaWFsb2ctdGl0bGVdLCBbbWF0RGlhbG9nVGl0bGVdIixleHBvcnRBczoibWF0RGlhbG9nVGl0bGUiLGhvc3Q6e2NsYXNzOiJtYXQtZGlhbG9nLXRpdGxlIiwiW2lkXSI6ImlkIn19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpWWSxkZWNvcmF0b3JzOlt7dHlwZTpCcn1dfSx7dHlwZTpLaH0se3R5cGU6WFl9XX0pLHtpZDpbe3R5cGU6Ul99XX0pO2NsYXNzICRZe30kWS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8JFkpfSwkWS7JtWRpcj1obyh7dHlwZTokWSxzZWxlY3RvcnM6W1siIiwibWF0LWRpYWxvZy1jb250ZW50IiwiIl0sWyJtYXQtZGlhbG9nLWNvbnRlbnQiXSxbIiIsIm1hdERpYWxvZ0NvbnRlbnQiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtZGlhbG9nLWNvbnRlbnQiXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoJFksW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW21hdC1kaWFsb2ctY29udGVudF0sIG1hdC1kaWFsb2ctY29udGVudCwgW21hdERpYWxvZ0NvbnRlbnRdIixob3N0OntjbGFzczoibWF0LWRpYWxvZy1jb250ZW50In19XX1dLG51bGwsbnVsbCk7Y2xhc3MgdHF7fWZ1bmN0aW9uIGVxKHQsZSl7bGV0IG49dC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7Zm9yKDtuJiYhbi5jbGFzc0xpc3QuY29udGFpbnMoIm1hdC1kaWFsb2ctY29udGFpbmVyIik7KW49bi5wYXJlbnRFbGVtZW50O3JldHVybiBuP2UuZmluZCgodD0+dC5pZD09PW4uaWQpKTpudWxsfQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi90cS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dHEpfSx0cS7JtWRpcj1obyh7dHlwZTp0cSxzZWxlY3RvcnM6W1siIiwibWF0LWRpYWxvZy1hY3Rpb25zIiwiIl0sWyJtYXQtZGlhbG9nLWFjdGlvbnMiXSxbIiIsIm1hdERpYWxvZ0FjdGlvbnMiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtZGlhbG9nLWFjdGlvbnMiXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIodHEsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW21hdC1kaWFsb2ctYWN0aW9uc10sIG1hdC1kaWFsb2ctYWN0aW9ucywgW21hdERpYWxvZ0FjdGlvbnNdIixob3N0OntjbGFzczoibWF0LWRpYWxvZy1hY3Rpb25zIn19XX1dLG51bGwsbnVsbCk7Y2xhc3MgbnF7fW5xLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxucSl9LG5xLsm1bW9kPWZvKHt0eXBlOm5xfSksbnEuybVpbmo9RG4oe3Byb3ZpZGVyczpbWFksWVldLGltcG9ydHM6W1tvVixoQixORl0sTkZdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihucSxbe3R5cGU6TF8sYXJnczpbe2ltcG9ydHM6W29WLGhCLE5GXSxleHBvcnRzOltMWSxKWSxRWSwkWSx0cSxORl0sZGVjbGFyYXRpb25zOltMWSxKWSxRWSx0cSwkWV0scHJvdmlkZXJzOltYWSxZWV0sZW50cnlDb21wb25lbnRzOltMWV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhucSx7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW0xZLEpZLFFZLHRxLCRZXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltvVixoQixORl19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bTFksSlksUVksJFksdHEsTkZdfX0pO2NsYXNzIG9xe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fZG9jdW1lbnQ9ZTtjb25zdCBuPXRoaXMuX3RleHRhcmVhPXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIiksbz1uLnN0eWxlO28ucG9zaXRpb249ImZpeGVkIixvLnRvcD1vLm9wYWNpdHk9IjAiLG8ubGVmdD0iLTk5OWVtIixuLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIiksbi52YWx1ZT10LHRoaXMuX2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobil9Y29weSgpe2NvbnN0IHQ9dGhpcy5fdGV4dGFyZWE7bGV0IGU9ITE7dHJ5e2lmKHQpe2NvbnN0IG49dGhpcy5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudDt0LnNlbGVjdCgpLHQuc2V0U2VsZWN0aW9uUmFuZ2UoMCx0LnZhbHVlLmxlbmd0aCksZT10aGlzLl9kb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpLG4mJm4uZm9jdXMoKX19Y2F0Y2godCl7fXJldHVybiBlfWRlc3Ryb3koKXtjb25zdCB0PXRoaXMuX3RleHRhcmVhO3QmJih0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSx0aGlzLl90ZXh0YXJlYT12b2lkIDApfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgaXF7Y29uc3RydWN0b3IodCl7dGhpcy5fZG9jdW1lbnQ9dH1jb3B5KHQpe2NvbnN0IGU9dGhpcy5iZWdpbkNvcHkodCksbj1lLmNvcHkoKTtyZXR1cm4gZS5kZXN0cm95KCksbn1iZWdpbkNvcHkodCl7cmV0dXJuIG5ldyBvcSh0LHRoaXMuX2RvY3VtZW50KX19aXEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGlxKShUcihzTSkpfSxpcS7JtXByb3Y9U24oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgaXEoVHIoc00pKX0sdG9rZW46aXEscHJvdmlkZWRJbjoicm9vdCJ9KSxpcS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoaXEsW3t0eXBlOlVtLGFyZ3M6W3twcm92aWRlZEluOiJyb290In1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBhcT1uZXcgZXIoIkNES19DT1BZX1RPX0NMSVBCT0FSRF9DT05GSUciKTtjbGFzcyBycXtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5fY2xpcGJvYXJkPXQsdGhpcy5fbmdab25lPWUsdGhpcy50ZXh0PSIiLHRoaXMuYXR0ZW1wdHM9MSx0aGlzLmNvcGllZD1uZXcgU3ksdGhpcy5fcGVuZGluZz1uZXcgU2V0LG4mJm51bGwhPW4uYXR0ZW1wdHMmJih0aGlzLmF0dGVtcHRzPW4uYXR0ZW1wdHMpfWNvcHkodD10aGlzLmF0dGVtcHRzKXtpZih0PjEpe2xldCBlPXQ7Y29uc3Qgbj10aGlzLl9jbGlwYm9hcmQuYmVnaW5Db3B5KHRoaXMudGV4dCk7dGhpcy5fcGVuZGluZy5hZGQobik7Y29uc3Qgbz0oKT0+e2NvbnN0IHQ9bi5jb3B5KCk7dHx8IS0tZXx8dGhpcy5fZGVzdHJveWVkPyh0aGlzLl9jdXJyZW50VGltZW91dD1udWxsLHRoaXMuX3BlbmRpbmcuZGVsZXRlKG4pLG4uZGVzdHJveSgpLHRoaXMuY29waWVkLmVtaXQodCkpOnRoaXMuX2N1cnJlbnRUaW1lb3V0PXRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PnNldFRpbWVvdXQobywxKSkpfTtvKCl9ZWxzZSB0aGlzLmNvcGllZC5lbWl0KHRoaXMuX2NsaXBib2FyZC5jb3B5KHRoaXMudGV4dCkpfW5nT25EZXN0cm95KCl7dGhpcy5fY3VycmVudFRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLl9jdXJyZW50VGltZW91dCksdGhpcy5fcGVuZGluZy5mb3JFYWNoKCh0PT50LmRlc3Ryb3koKSkpLHRoaXMuX3BlbmRpbmcuY2xlYXIoKSx0aGlzLl9kZXN0cm95ZWQ9ITB9fXJxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxycSkoZ2YoaXEpLGdmKG1DKSxnZihhcSw4KSl9LHJxLsm1ZGlyPWhvKHt0eXBlOnJxLHNlbGVjdG9yczpbWyIiLCJjZGtDb3B5VG9DbGlwYm9hcmQiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlJmKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5jb3B5KCl9KSl9LGlucHV0czp7dGV4dDpbImNka0NvcHlUb0NsaXBib2FyZCIsInRleHQiXSxhdHRlbXB0czpbImNka0NvcHlUb0NsaXBib2FyZEF0dGVtcHRzIiwiYXR0ZW1wdHMiXX0sb3V0cHV0czp7Y29waWVkOiJjZGtDb3B5VG9DbGlwYm9hcmRDb3BpZWQifX0pLHJxLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6aXF9LHt0eXBlOm1DfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W2FxXX1dfV0scnEucHJvcERlY29yYXRvcnM9e3RleHQ6W3t0eXBlOlJfLGFyZ3M6WyJjZGtDb3B5VG9DbGlwYm9hcmQiXX1dLGF0dGVtcHRzOlt7dHlwZTpSXyxhcmdzOlsiY2RrQ29weVRvQ2xpcGJvYXJkQXR0ZW1wdHMiXX1dLGNvcGllZDpbe3R5cGU6RV8sYXJnczpbImNka0NvcHlUb0NsaXBib2FyZENvcGllZCJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIocnEsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW2Nka0NvcHlUb0NsaXBib2FyZF0iLGhvc3Q6eyIoY2xpY2spIjoiY29weSgpIn19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppcX0se3R5cGU6bUN9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbYXFdfV19XX0pLHt0ZXh0Olt7dHlwZTpSXyxhcmdzOlsiY2RrQ29weVRvQ2xpcGJvYXJkIl19XSxhdHRlbXB0czpbe3R5cGU6Ul8sYXJnczpbImNka0NvcHlUb0NsaXBib2FyZEF0dGVtcHRzIl19XSxjb3BpZWQ6W3t0eXBlOkVfLGFyZ3M6WyJjZGtDb3B5VG9DbGlwYm9hcmRDb3BpZWQiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBzcXt9c3EuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHNxKX0sc3EuybVtb2Q9Zm8oe3R5cGU6c3F9KSxzcS7JtWluaj1Ebih7fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihzcSxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbcnFdLGV4cG9ydHM6W3JxXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKHNxLHtkZWNsYXJhdGlvbnM6W3JxXSxleHBvcnRzOltycV19KTtmdW5jdGlvbiBscSh0KXtyZXR1cm4gRXJyb3IoYFVuYWJsZSB0byBmaW5kIGljb24gd2l0aCB0aGUgbmFtZSAiJHt0fSJgKX1mdW5jdGlvbiBjcSh0KXtyZXR1cm4gRXJyb3IoYFRoZSBVUkwgcHJvdmlkZWQgdG8gTWF0SWNvblJlZ2lzdHJ5IHdhcyBub3QgdHJ1c3RlZCBhcyBhIHJlc291cmNlIFVSTCB2aWEgQW5ndWxhcidzIERvbVNhbml0aXplci4gQXR0ZW1wdGVkIFVSTCB3YXMgIiR7dH0iLmApfWZ1bmN0aW9uIGRxKHQpe3JldHVybiBFcnJvcihgVGhlIGxpdGVyYWwgcHJvdmlkZWQgdG8gTWF0SWNvblJlZ2lzdHJ5IHdhcyBub3QgdHJ1c3RlZCBhcyBzYWZlIEhUTUwgYnkgQW5ndWxhcidzIERvbVNhbml0aXplci4gQXR0ZW1wdGVkIGxpdGVyYWwgd2FzICIke3R9Ii5gKX1jbGFzcyBwcXtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy51cmw9dCx0aGlzLnN2Z1RleHQ9ZSx0aGlzLm9wdGlvbnM9bn19Y2xhc3MgbXF7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5faHR0cENsaWVudD10LHRoaXMuX3Nhbml0aXplcj1lLHRoaXMuX2Vycm9ySGFuZGxlcj1vLHRoaXMuX3N2Z0ljb25Db25maWdzPW5ldyBNYXAsdGhpcy5faWNvblNldENvbmZpZ3M9bmV3IE1hcCx0aGlzLl9jYWNoZWRJY29uc0J5VXJsPW5ldyBNYXAsdGhpcy5faW5Qcm9ncmVzc1VybEZldGNoZXM9bmV3IE1hcCx0aGlzLl9mb250Q3NzQ2xhc3Nlc0J5QWxpYXM9bmV3IE1hcCx0aGlzLl9yZXNvbHZlcnM9W10sdGhpcy5fZGVmYXVsdEZvbnRTZXRDbGFzcz0ibWF0ZXJpYWwtaWNvbnMiLHRoaXMuX2RvY3VtZW50PW59YWRkU3ZnSWNvbih0LGUsbil7cmV0dXJuIHRoaXMuYWRkU3ZnSWNvbkluTmFtZXNwYWNlKCIiLHQsZSxuKX1hZGRTdmdJY29uTGl0ZXJhbCh0LGUsbil7cmV0dXJuIHRoaXMuYWRkU3ZnSWNvbkxpdGVyYWxJbk5hbWVzcGFjZSgiIix0LGUsbil9YWRkU3ZnSWNvbkluTmFtZXNwYWNlKHQsZSxuLG8pe3JldHVybiB0aGlzLl9hZGRTdmdJY29uQ29uZmlnKHQsZSxuZXcgcHEobixudWxsLG8pKX1hZGRTdmdJY29uUmVzb2x2ZXIodCl7cmV0dXJuIHRoaXMuX3Jlc29sdmVycy5wdXNoKHQpLHRoaXN9YWRkU3ZnSWNvbkxpdGVyYWxJbk5hbWVzcGFjZSh0LGUsbixvKXtjb25zdCBpPXRoaXMuX3Nhbml0aXplci5zYW5pdGl6ZShZcy5IVE1MLG4pO2lmKCFpKXRocm93IGRxKG4pO3JldHVybiB0aGlzLl9hZGRTdmdJY29uQ29uZmlnKHQsZSxuZXcgcHEoIiIsaSxvKSl9YWRkU3ZnSWNvblNldCh0LGUpe3JldHVybiB0aGlzLmFkZFN2Z0ljb25TZXRJbk5hbWVzcGFjZSgiIix0LGUpfWFkZFN2Z0ljb25TZXRMaXRlcmFsKHQsZSl7cmV0dXJuIHRoaXMuYWRkU3ZnSWNvblNldExpdGVyYWxJbk5hbWVzcGFjZSgiIix0LGUpfWFkZFN2Z0ljb25TZXRJbk5hbWVzcGFjZSh0LGUsbil7cmV0dXJuIHRoaXMuX2FkZFN2Z0ljb25TZXRDb25maWcodCxuZXcgcHEoZSxudWxsLG4pKX1hZGRTdmdJY29uU2V0TGl0ZXJhbEluTmFtZXNwYWNlKHQsZSxuKXtjb25zdCBvPXRoaXMuX3Nhbml0aXplci5zYW5pdGl6ZShZcy5IVE1MLGUpO2lmKCFvKXRocm93IGRxKGUpO3JldHVybiB0aGlzLl9hZGRTdmdJY29uU2V0Q29uZmlnKHQsbmV3IHBxKCIiLG8sbikpfXJlZ2lzdGVyRm9udENsYXNzQWxpYXModCxlPXQpe3JldHVybiB0aGlzLl9mb250Q3NzQ2xhc3Nlc0J5QWxpYXMuc2V0KHQsZSksdGhpc31jbGFzc05hbWVGb3JGb250QWxpYXModCl7cmV0dXJuIHRoaXMuX2ZvbnRDc3NDbGFzc2VzQnlBbGlhcy5nZXQodCl8fHR9c2V0RGVmYXVsdEZvbnRTZXRDbGFzcyh0KXtyZXR1cm4gdGhpcy5fZGVmYXVsdEZvbnRTZXRDbGFzcz10LHRoaXN9Z2V0RGVmYXVsdEZvbnRTZXRDbGFzcygpe3JldHVybiB0aGlzLl9kZWZhdWx0Rm9udFNldENsYXNzfWdldFN2Z0ljb25Gcm9tVXJsKHQpe2NvbnN0IGU9dGhpcy5fc2FuaXRpemVyLnNhbml0aXplKFlzLlJFU09VUkNFX1VSTCx0KTtpZighZSl0aHJvdyBjcSh0KTtjb25zdCBuPXRoaXMuX2NhY2hlZEljb25zQnlVcmwuZ2V0KGUpO3JldHVybiBuP3p0KGZxKG4pKTp0aGlzLl9sb2FkU3ZnSWNvbkZyb21Db25maWcobmV3IHBxKHQsbnVsbCkpLnBpcGUoV2UoKHQ9PnRoaXMuX2NhY2hlZEljb25zQnlVcmwuc2V0KGUsdCkpKSxWdCgodD0+ZnEodCkpKSl9Z2V0TmFtZWRTdmdJY29uKHQsZT0iIil7Y29uc3Qgbj11cShlLHQpO2xldCBvPXRoaXMuX3N2Z0ljb25Db25maWdzLmdldChuKTtpZihvKXJldHVybiB0aGlzLl9nZXRTdmdGcm9tQ29uZmlnKG8pO2lmKG89dGhpcy5fZ2V0SWNvbkNvbmZpZ0Zyb21SZXNvbHZlcnMoZSx0KSxvKXJldHVybiB0aGlzLl9zdmdJY29uQ29uZmlncy5zZXQobixvKSx0aGlzLl9nZXRTdmdGcm9tQ29uZmlnKG8pO2NvbnN0IGk9dGhpcy5faWNvblNldENvbmZpZ3MuZ2V0KGUpO3JldHVybiBpP3RoaXMuX2dldFN2Z0Zyb21JY29uU2V0Q29uZmlncyh0LGkpOkl0KGxxKG4pKX1uZ09uRGVzdHJveSgpe3RoaXMuX3Jlc29sdmVycz1bXSx0aGlzLl9zdmdJY29uQ29uZmlncy5jbGVhcigpLHRoaXMuX2ljb25TZXRDb25maWdzLmNsZWFyKCksdGhpcy5fY2FjaGVkSWNvbnNCeVVybC5jbGVhcigpfV9nZXRTdmdGcm9tQ29uZmlnKHQpe3JldHVybiB0LnN2Z1RleHQ/enQoZnEodGhpcy5fc3ZnRWxlbWVudEZyb21Db25maWcodCkpKTp0aGlzLl9sb2FkU3ZnSWNvbkZyb21Db25maWcodCkucGlwZShWdCgodD0+ZnEodCkpKSl9X2dldFN2Z0Zyb21JY29uU2V0Q29uZmlncyh0LGUpe2NvbnN0IG49dGhpcy5fZXh0cmFjdEljb25XaXRoTmFtZUZyb21BbnlTZXQodCxlKTtpZihuKXJldHVybiB6dChuKTtyZXR1cm4gaWUoZS5maWx0ZXIoKHQ9PiF0LnN2Z1RleHQpKS5tYXAoKHQ9PnRoaXMuX2xvYWRTdmdJY29uU2V0RnJvbUNvbmZpZyh0KS5waXBlKGhlKChlPT57Y29uc3Qgbj10aGlzLl9zYW5pdGl6ZXIuc2FuaXRpemUoWXMuUkVTT1VSQ0VfVVJMLHQudXJsKTtyZXR1cm4gdGhpcy5fZXJyb3JIYW5kbGVyLmhhbmRsZUVycm9yKG5ldyBFcnJvcihgTG9hZGluZyBpY29uIHNldCBVUkw6ICR7bn0gZmFpbGVkOiAke2UubWVzc2FnZX1gKSksenQobnVsbCl9KSkpKSkpLnBpcGUoVnQoKCgpPT57Y29uc3Qgbj10aGlzLl9leHRyYWN0SWNvbldpdGhOYW1lRnJvbUFueVNldCh0LGUpO2lmKCFuKXRocm93IGxxKHQpO3JldHVybiBufSkpKX1fZXh0cmFjdEljb25XaXRoTmFtZUZyb21BbnlTZXQodCxlKXtmb3IobGV0IG49ZS5sZW5ndGgtMTtuPj0wO24tLSl7Y29uc3Qgbz1lW25dO2lmKG8uc3ZnVGV4dCYmby5zdmdUZXh0LmluZGV4T2YodCk+LTEpe2NvbnN0IGU9dGhpcy5fc3ZnRWxlbWVudEZyb21Db25maWcobyksbj10aGlzLl9leHRyYWN0U3ZnSWNvbkZyb21TZXQoZSx0LG8ub3B0aW9ucyk7aWYobilyZXR1cm4gbn19cmV0dXJuIG51bGx9X2xvYWRTdmdJY29uRnJvbUNvbmZpZyh0KXtyZXR1cm4gdGhpcy5fZmV0Y2hJY29uKHQpLnBpcGUoV2UoKGU9PnQuc3ZnVGV4dD1lKSksVnQoKCgpPT50aGlzLl9zdmdFbGVtZW50RnJvbUNvbmZpZyh0KSkpKX1fbG9hZFN2Z0ljb25TZXRGcm9tQ29uZmlnKHQpe3JldHVybiB0LnN2Z1RleHQ/enQobnVsbCk6dGhpcy5fZmV0Y2hJY29uKHQpLnBpcGUoV2UoKGU9PnQuc3ZnVGV4dD1lKSkpfV9leHRyYWN0U3ZnSWNvbkZyb21TZXQodCxlLG4pe2NvbnN0IG89dC5xdWVyeVNlbGVjdG9yKGBbaWQ9IiR7ZX0iXWApO2lmKCFvKXJldHVybiBudWxsO2NvbnN0IGk9by5jbG9uZU5vZGUoITApO2lmKGkucmVtb3ZlQXR0cmlidXRlKCJpZCIpLCJzdmciPT09aS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXJldHVybiB0aGlzLl9zZXRTdmdBdHRyaWJ1dGVzKGksbik7aWYoInN5bWJvbCI9PT1pLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpcmV0dXJuIHRoaXMuX3NldFN2Z0F0dHJpYnV0ZXModGhpcy5fdG9TdmdFbGVtZW50KGkpLG4pO2NvbnN0IGE9dGhpcy5fc3ZnRWxlbWVudEZyb21TdHJpbmcoIjxzdmc+PC9zdmc+Iik7cmV0dXJuIGEuYXBwZW5kQ2hpbGQoaSksdGhpcy5fc2V0U3ZnQXR0cmlidXRlcyhhLG4pfV9zdmdFbGVtZW50RnJvbVN0cmluZyh0KXtjb25zdCBlPXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpO2UuaW5uZXJIVE1MPXQ7Y29uc3Qgbj1lLnF1ZXJ5U2VsZWN0b3IoInN2ZyIpO2lmKCFuKXRocm93IEVycm9yKCI8c3ZnPiB0YWcgbm90IGZvdW5kIik7cmV0dXJuIG59X3RvU3ZnRWxlbWVudCh0KXtjb25zdCBlPXRoaXMuX3N2Z0VsZW1lbnRGcm9tU3RyaW5nKCI8c3ZnPjwvc3ZnPiIpLG49dC5hdHRyaWJ1dGVzO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKXtjb25zdHtuYW1lOm8sdmFsdWU6aX09blt0XTsiaWQiIT09byYmZS5zZXRBdHRyaWJ1dGUobyxpKX1mb3IobGV0IG49MDtuPHQuY2hpbGROb2Rlcy5sZW5ndGg7bisrKXQuY2hpbGROb2Rlc1tuXS5ub2RlVHlwZT09PXRoaXMuX2RvY3VtZW50LkVMRU1FTlRfTk9ERSYmZS5hcHBlbmRDaGlsZCh0LmNoaWxkTm9kZXNbbl0uY2xvbmVOb2RlKCEwKSk7cmV0dXJuIGV9X3NldFN2Z0F0dHJpYnV0ZXModCxlKXtyZXR1cm4gdC5zZXRBdHRyaWJ1dGUoImZpdCIsIiIpLHQuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCIxMDAlIiksdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwiMTAwJSIpLHQuc2V0QXR0cmlidXRlKCJwcmVzZXJ2ZUFzcGVjdFJhdGlvIiwieE1pZFlNaWQgbWVldCIpLHQuc2V0QXR0cmlidXRlKCJmb2N1c2FibGUiLCJmYWxzZSIpLGUmJmUudmlld0JveCYmdC5zZXRBdHRyaWJ1dGUoInZpZXdCb3giLGUudmlld0JveCksdH1fZmV0Y2hJY29uKHQpe3ZhciBlO2NvbnN0e3VybDpuLG9wdGlvbnM6b309dCxpPW51bGwhPT0oZT1udWxsPT1vP3ZvaWQgMDpvLndpdGhDcmVkZW50aWFscykmJnZvaWQgMCE9PWUmJmU7aWYoIXRoaXMuX2h0dHBDbGllbnQpdGhyb3coZnVuY3Rpb24gYSgpe3JldHVybiBFcnJvcigiQ291bGQgbm90IGZpbmQgSHR0cENsaWVudCBwcm92aWRlciBmb3IgdXNlIHdpdGggQW5ndWxhciBNYXRlcmlhbCBpY29ucy4gUGxlYXNlIGluY2x1ZGUgdGhlIEh0dHBDbGllbnRNb2R1bGUgZnJvbSBAYW5ndWxhci9jb21tb24vaHR0cCBpbiB5b3VyIGFwcCBpbXBvcnRzLiIpfSkoKTtpZihudWxsPT1uKXRocm93IEVycm9yKGBDYW5ub3QgZmV0Y2ggaWNvbiBmcm9tIFVSTCAiJHtufSIuYCk7Y29uc3Qgcj10aGlzLl9zYW5pdGl6ZXIuc2FuaXRpemUoWXMuUkVTT1VSQ0VfVVJMLG4pO2lmKCFyKXRocm93IGNxKG4pO2NvbnN0IHM9dGhpcy5faW5Qcm9ncmVzc1VybEZldGNoZXMuZ2V0KHIpO2lmKHMpcmV0dXJuIHM7Y29uc3QgbD10aGlzLl9odHRwQ2xpZW50LmdldChyLHtyZXNwb25zZVR5cGU6InRleHQiLHdpdGhDcmVkZW50aWFsczppfSkucGlwZSgoZnVuY3Rpb24gYyh0KXtyZXR1cm4geigoZnVuY3Rpb24oZSxuKXt0cnl7ZS5zdWJzY3JpYmUobil9ZmluYWxseXtuLmFkZCh0KX19KSl9KSgoKCk9PnRoaXMuX2luUHJvZ3Jlc3NVcmxGZXRjaGVzLmRlbGV0ZShyKSkpLEllKCkpO3JldHVybiB0aGlzLl9pblByb2dyZXNzVXJsRmV0Y2hlcy5zZXQocixsKSxsfV9hZGRTdmdJY29uQ29uZmlnKHQsZSxuKXtyZXR1cm4gdGhpcy5fc3ZnSWNvbkNvbmZpZ3Muc2V0KHVxKHQsZSksbiksdGhpc31fYWRkU3ZnSWNvblNldENvbmZpZyh0LGUpe2NvbnN0IG49dGhpcy5faWNvblNldENvbmZpZ3MuZ2V0KHQpO3JldHVybiBuP24ucHVzaChlKTp0aGlzLl9pY29uU2V0Q29uZmlncy5zZXQodCxbZV0pLHRoaXN9X3N2Z0VsZW1lbnRGcm9tQ29uZmlnKHQpe2lmKCF0LnN2Z0VsZW1lbnQpe2NvbnN0IGU9dGhpcy5fc3ZnRWxlbWVudEZyb21TdHJpbmcodC5zdmdUZXh0KTt0aGlzLl9zZXRTdmdBdHRyaWJ1dGVzKGUsdC5vcHRpb25zKSx0LnN2Z0VsZW1lbnQ9ZX1yZXR1cm4gdC5zdmdFbGVtZW50fV9nZXRJY29uQ29uZmlnRnJvbVJlc29sdmVycyh0LGUpe2ZvcihsZXQgbz0wO288dGhpcy5fcmVzb2x2ZXJzLmxlbmd0aDtvKyspe2NvbnN0IGk9dGhpcy5fcmVzb2x2ZXJzW29dKGUsdCk7aWYoaSlyZXR1cm4obj1pKS51cmwmJm4ub3B0aW9ucz9uZXcgcHEoaS51cmwsbnVsbCxpLm9wdGlvbnMpOm5ldyBwcShpLG51bGwpfXZhciBuOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi99fWZ1bmN0aW9uIGZxKHQpe3JldHVybiB0LmNsb25lTm9kZSghMCl9ZnVuY3Rpb24gdXEodCxlKXtyZXR1cm4gdCsiOiIrZX1tcS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bXEpKFRyKGdFLDgpLFRyKGVPKSxUcihzTSw4KSxUcih1bCkpfSxtcS7JtXByb3Y9U24oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgbXEoVHIoZ0UsOCksVHIoZU8pLFRyKHNNLDgpLFRyKHVsKSl9LHRva2VuOm1xLHByb3ZpZGVkSW46InJvb3QifSksbXEuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpnRSxkZWNvcmF0b3JzOlt7dHlwZTpCcn1dfSx7dHlwZTplT30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltzTV19XX0se3R5cGU6dWx9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKG1xLFt7dHlwZTpVbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpnRSxkZWNvcmF0b3JzOlt7dHlwZTpCcn1dfSx7dHlwZTplT30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltzTV19XX0se3R5cGU6dWx9XX0pLG51bGwpLG5ldyBCcixuZXcganIsbmV3IEJyLG5ldyBCcjtjb25zdCBncT1JRihjbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLl9lbGVtZW50UmVmPXR9fSksaHE9bmV3IGVyKCJtYXQtaWNvbi1sb2NhdGlvbiIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6ZnVuY3Rpb24gYnEoKXtjb25zdCB0PXpyKHNNKSxlPXQ/dC5sb2NhdGlvbjpudWxsO3JldHVybntnZXRQYXRobmFtZTooKT0+ZT9lLnBhdGhuYW1lK2Uuc2VhcmNoOiIifX19KTtjb25zdCB5cT1bImNsaXAtcGF0aCIsImNvbG9yLXByb2ZpbGUiLCJzcmMiLCJjdXJzb3IiLCJmaWxsIiwiZmlsdGVyIiwibWFya2VyIiwibWFya2VyLXN0YXJ0IiwibWFya2VyLW1pZCIsIm1hcmtlci1lbmQiLCJtYXNrIiwic3Ryb2tlIl0sX3E9eXEubWFwKCh0PT5gWyR7dH1dYCkpLmpvaW4oIiwgIiksQ3E9L151cmxcKFsnIl0/IyguKj8pWyciXT9cKSQvO2NsYXNzIE1xIGV4dGVuZHMgZ3F7Y29uc3RydWN0b3IodCxlLG4sbyxpKXtzdXBlcih0KSx0aGlzLl9pY29uUmVnaXN0cnk9ZSx0aGlzLl9sb2NhdGlvbj1vLHRoaXMuX2Vycm9ySGFuZGxlcj1pLHRoaXMuX2lubGluZT0hMSx0aGlzLl9jdXJyZW50SWNvbkZldGNoPXUuRU1QVFksbnx8dC5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIil9Z2V0IGlubGluZSgpe3JldHVybiB0aGlzLl9pbmxpbmV9c2V0IGlubGluZSh0KXt0aGlzLl9pbmxpbmU9ZUgodCl9Z2V0IHN2Z0ljb24oKXtyZXR1cm4gdGhpcy5fc3ZnSWNvbn1zZXQgc3ZnSWNvbih0KXt0IT09dGhpcy5fc3ZnSWNvbiYmKHQ/dGhpcy5fdXBkYXRlU3ZnSWNvbih0KTp0aGlzLl9zdmdJY29uJiZ0aGlzLl9jbGVhclN2Z0VsZW1lbnQoKSx0aGlzLl9zdmdJY29uPXQpfWdldCBmb250U2V0KCl7cmV0dXJuIHRoaXMuX2ZvbnRTZXR9c2V0IGZvbnRTZXQodCl7Y29uc3QgZT10aGlzLl9jbGVhbnVwRm9udFZhbHVlKHQpO2UhPT10aGlzLl9mb250U2V0JiYodGhpcy5fZm9udFNldD1lLHRoaXMuX3VwZGF0ZUZvbnRJY29uQ2xhc3NlcygpKX1nZXQgZm9udEljb24oKXtyZXR1cm4gdGhpcy5fZm9udEljb259c2V0IGZvbnRJY29uKHQpe2NvbnN0IGU9dGhpcy5fY2xlYW51cEZvbnRWYWx1ZSh0KTtlIT09dGhpcy5fZm9udEljb24mJih0aGlzLl9mb250SWNvbj1lLHRoaXMuX3VwZGF0ZUZvbnRJY29uQ2xhc3NlcygpKX1fc3BsaXRJY29uTmFtZSh0KXtpZighdClyZXR1cm5bIiIsIiJdO2NvbnN0IGU9dC5zcGxpdCgiOiIpO3N3aXRjaChlLmxlbmd0aCl7Y2FzZSAxOnJldHVyblsiIixlWzBdXTtjYXNlIDI6cmV0dXJuIGU7ZGVmYXVsdDp0aHJvdyBFcnJvcihgSW52YWxpZCBpY29uIG5hbWU6ICIke3R9ImApfX1uZ09uSW5pdCgpe3RoaXMuX3VwZGF0ZUZvbnRJY29uQ2xhc3NlcygpfW5nQWZ0ZXJWaWV3Q2hlY2tlZCgpe2NvbnN0IHQ9dGhpcy5fZWxlbWVudHNXaXRoRXh0ZXJuYWxSZWZlcmVuY2VzO2lmKHQmJnQuc2l6ZSl7Y29uc3QgdD10aGlzLl9sb2NhdGlvbi5nZXRQYXRobmFtZSgpO3QhPT10aGlzLl9wcmV2aW91c1BhdGgmJih0aGlzLl9wcmV2aW91c1BhdGg9dCx0aGlzLl9wcmVwZW5kUGF0aFRvUmVmZXJlbmNlcyh0KSl9fW5nT25EZXN0cm95KCl7dGhpcy5fY3VycmVudEljb25GZXRjaC51bnN1YnNjcmliZSgpLHRoaXMuX2VsZW1lbnRzV2l0aEV4dGVybmFsUmVmZXJlbmNlcyYmdGhpcy5fZWxlbWVudHNXaXRoRXh0ZXJuYWxSZWZlcmVuY2VzLmNsZWFyKCl9X3VzaW5nRm9udEljb24oKXtyZXR1cm4hdGhpcy5zdmdJY29ufV9zZXRTdmdFbGVtZW50KHQpe3RoaXMuX2NsZWFyU3ZnRWxlbWVudCgpO2NvbnN0IGU9dC5xdWVyeVNlbGVjdG9yQWxsKCJzdHlsZSIpO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF0udGV4dENvbnRlbnQrPSIgIjtjb25zdCBuPXRoaXMuX2xvY2F0aW9uLmdldFBhdGhuYW1lKCk7dGhpcy5fcHJldmlvdXNQYXRoPW4sdGhpcy5fY2FjaGVDaGlsZHJlbldpdGhFeHRlcm5hbFJlZmVyZW5jZXModCksdGhpcy5fcHJlcGVuZFBhdGhUb1JlZmVyZW5jZXMobiksdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHQpfV9jbGVhclN2Z0VsZW1lbnQoKXtjb25zdCB0PXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtsZXQgZT10LmNoaWxkTm9kZXMubGVuZ3RoO2Zvcih0aGlzLl9lbGVtZW50c1dpdGhFeHRlcm5hbFJlZmVyZW5jZXMmJnRoaXMuX2VsZW1lbnRzV2l0aEV4dGVybmFsUmVmZXJlbmNlcy5jbGVhcigpO2UtLTspe2NvbnN0IG49dC5jaGlsZE5vZGVzW2VdOzE9PT1uLm5vZGVUeXBlJiYic3ZnIiE9PW4ubm9kZU5hbWUudG9Mb3dlckNhc2UoKXx8dC5yZW1vdmVDaGlsZChuKX19X3VwZGF0ZUZvbnRJY29uQ2xhc3Nlcygpe2lmKCF0aGlzLl91c2luZ0ZvbnRJY29uKCkpcmV0dXJuO2NvbnN0IHQ9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LGU9dGhpcy5mb250U2V0P3RoaXMuX2ljb25SZWdpc3RyeS5jbGFzc05hbWVGb3JGb250QWxpYXModGhpcy5mb250U2V0KTp0aGlzLl9pY29uUmVnaXN0cnkuZ2V0RGVmYXVsdEZvbnRTZXRDbGFzcygpO2UhPXRoaXMuX3ByZXZpb3VzRm9udFNldENsYXNzJiYodGhpcy5fcHJldmlvdXNGb250U2V0Q2xhc3MmJnQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLl9wcmV2aW91c0ZvbnRTZXRDbGFzcyksZSYmdC5jbGFzc0xpc3QuYWRkKGUpLHRoaXMuX3ByZXZpb3VzRm9udFNldENsYXNzPWUpLHRoaXMuZm9udEljb24hPXRoaXMuX3ByZXZpb3VzRm9udEljb25DbGFzcyYmKHRoaXMuX3ByZXZpb3VzRm9udEljb25DbGFzcyYmdC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuX3ByZXZpb3VzRm9udEljb25DbGFzcyksdGhpcy5mb250SWNvbiYmdC5jbGFzc0xpc3QuYWRkKHRoaXMuZm9udEljb24pLHRoaXMuX3ByZXZpb3VzRm9udEljb25DbGFzcz10aGlzLmZvbnRJY29uKX1fY2xlYW51cEZvbnRWYWx1ZSh0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/dC50cmltKCkuc3BsaXQoIiAiKVswXTp0fV9wcmVwZW5kUGF0aFRvUmVmZXJlbmNlcyh0KXtjb25zdCBlPXRoaXMuX2VsZW1lbnRzV2l0aEV4dGVybmFsUmVmZXJlbmNlcztlJiZlLmZvckVhY2goKChlLG4pPT57ZS5mb3JFYWNoKChlPT57bi5zZXRBdHRyaWJ1dGUoZS5uYW1lLGB1cmwoJyR7dH0jJHtlLnZhbHVlfScpYCl9KSl9KSl9X2NhY2hlQ2hpbGRyZW5XaXRoRXh0ZXJuYWxSZWZlcmVuY2VzKHQpe2NvbnN0IGU9dC5xdWVyeVNlbGVjdG9yQWxsKF9xKSxuPXRoaXMuX2VsZW1lbnRzV2l0aEV4dGVybmFsUmVmZXJlbmNlcz10aGlzLl9lbGVtZW50c1dpdGhFeHRlcm5hbFJlZmVyZW5jZXN8fG5ldyBNYXA7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspeXEuZm9yRWFjaCgobz0+e2NvbnN0IGk9ZVt0XSxhPWkuZ2V0QXR0cmlidXRlKG8pLHI9YT9hLm1hdGNoKENxKTpudWxsO2lmKHIpe2xldCB0PW4uZ2V0KGkpO3R8fCh0PVtdLG4uc2V0KGksdCkpLHQucHVzaCh7bmFtZTpvLHZhbHVlOnJbMV19KX19KSl9X3VwZGF0ZVN2Z0ljb24odCl7aWYodGhpcy5fc3ZnTmFtZXNwYWNlPW51bGwsdGhpcy5fc3ZnTmFtZT1udWxsLHRoaXMuX2N1cnJlbnRJY29uRmV0Y2gudW5zdWJzY3JpYmUoKSx0KXtjb25zdFtlLG5dPXRoaXMuX3NwbGl0SWNvbk5hbWUodCk7ZSYmKHRoaXMuX3N2Z05hbWVzcGFjZT1lKSxuJiYodGhpcy5fc3ZnTmFtZT1uKSx0aGlzLl9jdXJyZW50SWNvbkZldGNoPXRoaXMuX2ljb25SZWdpc3RyeS5nZXROYW1lZFN2Z0ljb24obixlKS5waXBlKHZlKDEpKS5zdWJzY3JpYmUoKHQ9PnRoaXMuX3NldFN2Z0VsZW1lbnQodCkpLCh0PT57dGhpcy5fZXJyb3JIYW5kbGVyLmhhbmRsZUVycm9yKG5ldyBFcnJvcihgRXJyb3IgcmV0cmlldmluZyBpY29uICR7ZX06JHtufSEgJHt0Lm1lc3NhZ2V9YCkpfSkpfX19TXEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE1xKShnZihLaCksZ2YobXEpLEdhKCJhcmlhLWhpZGRlbiIpLGdmKGhxKSxnZih1bCkpfSxNcS7JtWNtcD1zbyh7dHlwZTpNcSxzZWxlY3RvcnM6W1sibWF0LWljb24iXV0saG9zdEF0dHJzOlsicm9sZSIsImltZyIsMSwibWF0LWljb24iLCJub3RyYW5zbGF0ZSJdLGhvc3RWYXJzOjcsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJih5bSgiZGF0YS1tYXQtaWNvbi10eXBlIixuLl91c2luZ0ZvbnRJY29uKCk/ImZvbnQiOiJzdmciKSgiZGF0YS1tYXQtaWNvbi1uYW1lIixuLl9zdmdOYW1lfHxuLmZvbnRJY29uKSgiZGF0YS1tYXQtaWNvbi1uYW1lc3BhY2UiLG4uX3N2Z05hbWVzcGFjZXx8bi5mb250U2V0KSxjdSgibWF0LWljb24taW5saW5lIixuLmlubGluZSkoIm1hdC1pY29uLW5vLWNvbG9yIiwicHJpbWFyeSIhPT1uLmNvbG9yJiYiYWNjZW50IiE9PW4uY29sb3ImJiJ3YXJuIiE9PW4uY29sb3IpKX0saW5wdXRzOntjb2xvcjoiY29sb3IiLGlubGluZToiaW5saW5lIixzdmdJY29uOiJzdmdJY29uIixmb250U2V0OiJmb250U2V0Iixmb250SWNvbjoiZm9udEljb24ifSxleHBvcnRBczpbIm1hdEljb24iXSxmZWF0dXJlczpbUXBdLG5nQ29udGVudFNlbGVjdG9yczpbIioiXSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoSGYoKSxGZigwKSl9LHN0eWxlczpbIi5tYXQtaWNvbntiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmlsbDpjdXJyZW50Q29sb3I7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ubWF0LWljb24ubWF0LWljb24taW5saW5le2ZvbnQtc2l6ZTppbmhlcml0O2hlaWdodDppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7d2lkdGg6aW5oZXJpdH1bZGlyPXJ0bF0gLm1hdC1pY29uLXJ0bC1taXJyb3J7dHJhbnNmb3JtOnNjYWxlKC0xLCAxKX0ubWF0LWZvcm0tZmllbGQ6bm90KC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSkgLm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24sLm1hdC1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kpIC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29ue2Rpc3BsYXk6YmxvY2t9Lm1hdC1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kpIC5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb24sLm1hdC1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kpIC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb257bWFyZ2luOmF1dG99XG4iXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxNcS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOktofSx7dHlwZTptcX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOiRhLGFyZ3M6WyJhcmlhLWhpZGRlbiJdfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltocV19XX0se3R5cGU6dWx9XSxNcS5wcm9wRGVjb3JhdG9ycz17aW5saW5lOlt7dHlwZTpSX31dLHN2Z0ljb246W3t0eXBlOlJffV0sZm9udFNldDpbe3R5cGU6Ul99XSxmb250SWNvbjpbe3R5cGU6Ul99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihNcSxbe3R5cGU6U18sYXJnczpbe3RlbXBsYXRlOiI8bmctY29udGVudD48L25nLWNvbnRlbnQ+IixzZWxlY3RvcjoibWF0LWljb24iLGV4cG9ydEFzOiJtYXRJY29uIixpbnB1dHM6WyJjb2xvciJdLGhvc3Q6e3JvbGU6ImltZyIsY2xhc3M6Im1hdC1pY29uIG5vdHJhbnNsYXRlIiwiW2F0dHIuZGF0YS1tYXQtaWNvbi10eXBlXSI6J191c2luZ0ZvbnRJY29uKCkgPyAiZm9udCIgOiAic3ZnIicsIlthdHRyLmRhdGEtbWF0LWljb24tbmFtZV0iOiJfc3ZnTmFtZSB8fCBmb250SWNvbiIsIlthdHRyLmRhdGEtbWF0LWljb24tbmFtZXNwYWNlXSI6Il9zdmdOYW1lc3BhY2UgfHwgZm9udFNldCIsIltjbGFzcy5tYXQtaWNvbi1pbmxpbmVdIjoiaW5saW5lIiwiW2NsYXNzLm1hdC1pY29uLW5vLWNvbG9yXSI6J2NvbG9yICE9PSAicHJpbWFyeSIgJiYgY29sb3IgIT09ICJhY2NlbnQiICYmIGNvbG9yICE9PSAid2FybiInfSxlbmNhcHN1bGF0aW9uOlduLk5vbmUsY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaCxzdHlsZXM6WyIubWF0LWljb257YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZpbGw6Y3VycmVudENvbG9yO2hlaWdodDoyNHB4O3dpZHRoOjI0cHh9Lm1hdC1pY29uLm1hdC1pY29uLWlubGluZXtmb250LXNpemU6aW5oZXJpdDtoZWlnaHQ6aW5oZXJpdDtsaW5lLWhlaWdodDppbmhlcml0O3dpZHRoOmluaGVyaXR9W2Rpcj1ydGxdIC5tYXQtaWNvbi1ydGwtbWlycm9ye3RyYW5zZm9ybTpzY2FsZSgtMSwgMSl9Lm1hdC1mb3JtLWZpZWxkOm5vdCgubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kpIC5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLC5tYXQtZm9ybS1maWVsZDpub3QoLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5KSAubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbntkaXNwbGF5OmJsb2NrfS5tYXQtZm9ybS1maWVsZDpub3QoLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5KSAubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29uLC5tYXQtZm9ybS1maWVsZDpub3QoLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5KSAubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29ue21hcmdpbjphdXRvfVxuIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpLaH0se3R5cGU6bXF9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTokYSxhcmdzOlsiYXJpYS1oaWRkZW4iXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbaHFdfV19LHt0eXBlOnVsfV19KSx7aW5saW5lOlt7dHlwZTpSX31dLHN2Z0ljb246W3t0eXBlOlJffV0sZm9udFNldDpbe3R5cGU6Ul99XSxmb250SWNvbjpbe3R5cGU6Ul99XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgdnF7fXZxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx2cSl9LHZxLsm1bW9kPWZvKHt0eXBlOnZxfSksdnEuybVpbmo9RG4oe2ltcG9ydHM6W1tORl0sTkZdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih2cSxbe3R5cGU6TF8sYXJnczpbe2ltcG9ydHM6W05GXSxleHBvcnRzOltNcSxORl0sZGVjbGFyYXRpb25zOltNcV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byh2cSx7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW01xXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltORl19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bTXEsTkZdfX0pO2NsYXNzIHhxe2NvbnN0cnVjdG9yKHQpe3RoaXMuZGlhbG9nUmVmPXQsdGhpcy50ZW5zb3Jib2FyZERvdERldlVybD0iaHR0cHM6Ly90ZW5zb3Jib2FyZC5kZXYvP3V0bV9zb3VyY2U9dGVuc29yYm9hcmQifW9uQ2xvc2UoKXt0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpfWdldENvbW1hbmRUZXh0KCl7aWYodGhpcy5sb2dkaXIpe3JldHVybiJ0ZW5zb3Jib2FyZCBkZXYgdXBsb2FkIC0tbG9nZGlyIFxcXG4gICAgJyIrdGhpcy5sb2dkaXIucmVwbGFjZSgvJy9nLCInXFwnJyIpKyInIn1yZXR1cm4idGVuc29yYm9hcmQgZGV2IHVwbG9hZCAtLWxvZ2RpciB7bG9nZGlyfSJ9fXhxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx4cSkoZ2YoVlkpKX0seHEuybVjbXA9c28oe3R5cGU6eHEsc2VsZWN0b3JzOltbInRiZGV2LXVwbG9hZC1kaWFsb2ctY29tcG9uZW50Il1dLGlucHV0czp7bG9nZGlyOiJsb2dkaXIifSxkZWNsczoyMSx2YXJzOjQsY29uc3RzOltbInRhcmdldCIsIl9ibGFuayIsInJlbCIsIm5vcmVmZXJyZXIgbm9vcGVuZXIiLDEsImFuY2hvci10ZXh0IiwzLCJocmVmIl0sWzEsImNvbW1hbmQiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsInRpdGxlIiwiQ2xpY2sgdG8gY29weSB0aGUgY29tbWFuZCIsMSwiY29tbWFuZC1jb3B5IiwzLCJjZGtDb3B5VG9DbGlwYm9hcmQiXSxbInN2Z0ljb24iLCJjb250ZW50X2NvcHlfMjRweCJdLFsxLCJib3R0b20tYnV0dG9ucyJdLFsibWF0LWZsYXQtYnV0dG9uIiwiIiwxLCJjbG9zZS1idXR0b24iLDMsImNsaWNrIl0sWyJtYXQtZmxhdC1idXR0b24iLCIiLCJ0YXJnZXQiLCJfYmxhbmsiLCJyZWwiLCJub3JlZmVycmVyIG5vb3BlbmVyIiwxLCJsZWFybi1tb3JlLWJ1dHRvbiIsMywiaHJlZiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwiaDMiKSxQdSgxLCJVcGxvYWQgdG8gVGVuc29yQm9hcmQuZGV2IiksTWYoKSxDZigyLCJwIiksQ2YoMywiYSIsMCksUHUoNCwiIFRlbnNvckJvYXJkLmRldiIpLE1mKCksUHUoNSwiIGVuYWJsZXMgeW91IHRvIGVhc2lseSBob3N0LCB0cmFjaywgYW5kIHNoYXJlIHlvdXIgTUwgZXhwZXJpbWVudHMgd2l0aCBldmVyeW9uZS4gWW91IGNhbiBzaGFyZSBhIGxpbmsgdG8gdGhlIHVwbG9hZGVkIFRlbnNvckJvYXJkIGluIHBhcGVycywgYmxvZyBwb3N0cywgYW5kIHNvY2lhbCBtZWRpYS4gVGhpcyBjYW4gc2hvd2Nhc2UgdGhlIHJlc3VsdHMgbW9yZSBlZmZlY3RpdmVseSBhbmQgaGVscHMgcmVwcm9kdWNpYmlsaXR5LlxuIiksTWYoKSxDZig2LCJwIiksUHUoNywiVG8gdXBsb2FkIGEgbG9nZGlyIHRvIFRlbnNvckJvYXJkLmRldiwgcnVuIHRoZSBjb21tYW5kOiIpLE1mKCksQ2YoOCwiZGl2IiwxKSxDZig5LCJwcmUiKSxDZigxMCwiY29kZSIpLFB1KDExKSxNZigpLE1mKCksQ2YoMTIsImJ1dHRvbiIsMiksdmYoMTMsIm1hdC1pY29uIiwzKSxNZigpLE1mKCksQ2YoMTQsInAiKSxQdSgxNSwiIE9ubHkgY2VydGFpbiBwbHVnaW5zIGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkLiBVcGxvYWRlZCBUZW5zb3JCb2FyZHMgYXJlIHB1YmxpYyBhbmQgdmlzaWJsZSB0byBldmVyeW9uZTsgZG8gbm90IHVwbG9hZCBzZW5zaXRpdmUgZGF0YS5cbiIpLE1mKCksQ2YoMTYsImRpdiIsNCksQ2YoMTcsImJ1dHRvbiIsNSksUmYoImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uQ2xvc2UoKX0pKSxQdSgxOCwiIENsb3NlICIpLE1mKCksQ2YoMTksImEiLDYpLFB1KDIwLCIgTGVhcm4gbW9yZSAiKSxNZigpLE1mKCkpLDImZSYmKERjKDMpLExmKCJocmVmIixuLnRlbnNvcmJvYXJkRG90RGV2VXJsLFhzKSxEYyg4KSx3dShuLmdldENvbW1hbmRUZXh0KCkpLERjKDEpLGJmKCJjZGtDb3B5VG9DbGlwYm9hcmQiLG4uZ2V0Q29tbWFuZFRleHQoKSksRGMoNyksTGYoImhyZWYiLG4udGVuc29yYm9hcmREb3REZXZVcmwsWHMpKX0sZGlyZWN0aXZlczpbTkwscnEsTXEsekxdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfWRpdltfbmdjb250ZW50LSVDT01QJV0sIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjoxNnB4IDB9W19uZ2hvc3QtJUNPTVAlXSA+IFtfbmdjb250ZW50LSVDT01QJV06Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDowfVtfbmdob3N0LSVDT01QJV0gPiBbX25nY29udGVudC0lQ09NUCVdOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfWgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MS41fXBbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiMyMTIxMjE7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MS41fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZmZmfS5hbmNob3ItdGV4dFtfbmdjb250ZW50LSVDT01QJV17dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmNvbW1hbmRbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kOiNmNWY2Zjc7Ym9yZGVyLXJhZGl1czo0cHg7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3BhZGRpbmc6MnB4IDEycHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmNvbW1hbmRbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuY29tbWFuZFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojNjE2MTYxfXByZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3cteDphdXRvfWNvZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjEuNX0uYm90dG9tLWJ1dHRvbnNbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5jbG9zZS1idXR0b25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2MTYxNjE7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO21hcmdpbi1yaWdodDo4cHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmNsb3NlLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5jbG9zZS1idXR0b25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfVtfbmdob3N0LSVDT01QJV0gICAubGVhcm4tbW9yZS1idXR0b25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOiMxOTc2ZDI7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5sZWFybi1tb3JlLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzQyYTVmNX0nXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoeHEsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoidGJkZXYtdXBsb2FkLWRpYWxvZy1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL3RiZGV2X3VwbG9hZF9kaWFsb2dfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vdGJkZXZfdXBsb2FkX2RpYWxvZ19jb21wb25lbnQuY3NzIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpWWX1dfSkse2xvZ2Rpcjpbe3R5cGU6Ul99XX0pO2NvbnN0IE9xPWJTKG9ULCh0PT50LmRhdGFfbG9jYXRpb24pKTtjbGFzcyBQcXtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5sb2dkaXIkPXRoaXMuc3RvcmUucGlwZShyUyhPcSkpfX1mdW5jdGlvbiB3cSh0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO0NmKDAsImJ1dHRvbiIsMSksUmYoImNsaWNrIiwoZnVuY3Rpb24gZSgpe1BpKHQpO3JldHVybiB6ZigpLm9wZW5EaWFsb2coKX0pKSxDZigxLCJzcGFuIiwyKSx2ZigyLCJtYXQtaWNvbiIsMyksUHUoMywiIFVwbG9hZCAiKSxNZigpLE1mKCl9fVBxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxQcSkoZ2YoaVMpKX0sUHEuybVjbXA9c28oe3R5cGU6UHEsc2VsZWN0b3JzOltbInRiZGV2LXVwbG9hZC1kaWFsb2ciXV0sZGVjbHM6Mix2YXJzOjMsY29uc3RzOltbMywibG9nZGlyIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJih2ZigwLCJ0YmRldi11cGxvYWQtZGlhbG9nLWNvbXBvbmVudCIsMCksX3koMSwiYXN5bmMiKSksMiZlJiZiZigibG9nZGlyIixDeSgxLDEsbi5sb2dkaXIkKSl9LGRpcmVjdGl2ZXM6W3hxXSxwaXBlczpbVnZdLGVuY2Fwc3VsYXRpb246Mn0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoUHEsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoidGJkZXYtdXBsb2FkLWRpYWxvZyIsdGVtcGxhdGU6J1xuICAgIDx0YmRldi11cGxvYWQtZGlhbG9nLWNvbXBvbmVudFxuICAgICAgW2xvZ2Rpcl09ImxvZ2RpciQgfCBhc3luYyJcbiAgICA+PC90YmRldi11cGxvYWQtZGlhbG9nLWNvbXBvbmVudD5cbiAgJ31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfV19KSxudWxsKTtjb25zdCBrcT1bImxvY2FsaG9zdCIsIjEyNy4wLjAuMSJdO2NsYXNzIFNxe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy53aW5kb3c9dCx0aGlzLmRpYWxvZz1lLHRoaXMuc2hvd249a3EuaW5jbHVkZXModC5sb2NhdGlvbi5ob3N0bmFtZSl9b3BlbkRpYWxvZygpe3RoaXMuZGlhbG9nLm9wZW4oUHEse3dpZHRoOiI1NjBweCJ9KX19U3EuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFNxKShnZigid2luZG93IiksZ2YoWFkpKX0sU3EuybVjbXA9c28oe3R5cGU6U3Esc2VsZWN0b3JzOltbInRiZGV2LXVwbG9hZC1idXR0b24iXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmY3UoInNob3duIixuLnNob3duKX0sZGVjbHM6MSx2YXJzOjEsY29uc3RzOltbIm1hdC1zdHJva2VkLWJ1dHRvbiIsIiIsMywiY2xpY2siLDQsIm5nSWYiXSxbIm1hdC1zdHJva2VkLWJ1dHRvbiIsIiIsMywiY2xpY2siXSxbMSwiYnV0dG9uLWNvbnRlbnRzIl0sWyJzdmdJY29uIiwiaW5mb19vdXRsaW5lXzI0cHgiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmSG0oMCx3cSw0LDAsImJ1dHRvbiIsMCksMiZlJiZiZigibmdJZiIsbi5zaG93bil9LGRpcmVjdGl2ZXM6W1B2LE5MLE1xXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVdICAgYnV0dG9uLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwO2JvcmRlcjoxcHggc29saWQgI2ViZWJlYn1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICBidXR0b24ubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNlZjZjMDB9LmJ1dHRvbi1jb250ZW50c1tfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9bWF0LWljb25bX25nY29udGVudC0lQ09NUCVde21hcmdpbi1yaWdodDo2cHh9J119KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFNxLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6InRiZGV2LXVwbG9hZC1idXR0b24iLHRlbXBsYXRlVXJsOiIuL3RiZGV2X3VwbG9hZF9idXR0b25fY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vdGJkZXZfdXBsb2FkX2J1dHRvbl9jb21wb25lbnQuY3NzIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpXaW5kb3csZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbIndpbmRvdyJdfV19LHt0eXBlOlhZfV19KSx7c2hvd246W3t0eXBlOkFfLGFyZ3M6WyJjbGFzcy5zaG93biJdfV19KTtmdW5jdGlvbiBEcSh0LGUpezEmdCYmKG9hKCksQ2YoMCwic3ZnIiwyKSx2ZigxLCJwb2x5Z29uIiwzKSxNZigpKX1jb25zdCBScT1bIioiXTtmdW5jdGlvbiBFcSh0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO0NmKDAsImRpdiIsMCksUmYoImtleWRvd24iLChmdW5jdGlvbiBlKG4pe1BpKHQpO3JldHVybiB6ZigpLl9oYW5kbGVLZXlkb3duKG4pfSkpKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtQaSh0KTtyZXR1cm4gemYoKS5jbG9zZWQuZW1pdCgiY2xpY2siKX0pKSgiQHRyYW5zZm9ybU1lbnUuc3RhcnQiLChmdW5jdGlvbiBlKG4pe1BpKHQpO3JldHVybiB6ZigpLl9vbkFuaW1hdGlvblN0YXJ0KG4pfSkpKCJAdHJhbnNmb3JtTWVudS5kb25lIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtyZXR1cm4gemYoKS5fb25BbmltYXRpb25Eb25lKG4pfSkpLENmKDEsImRpdiIsMSksRmYoMiksTWYoKSxNZigpfWlmKDImdCl7Y29uc3QgdD16ZigpO2JmKCJpZCIsdC5wYW5lbElkKSgibmdDbGFzcyIsdC5fY2xhc3NMaXN0KSgiQHRyYW5zZm9ybU1lbnUiLHQuX3BhbmVsQW5pbWF0aW9uU3RhdGUpLHltKCJhcmlhLWxhYmVsIix0LmFyaWFMYWJlbHx8bnVsbCkoImFyaWEtbGFiZWxsZWRieSIsdC5hcmlhTGFiZWxsZWRieXx8bnVsbCkoImFyaWEtZGVzY3JpYmVkYnkiLHQuYXJpYURlc2NyaWJlZGJ5fHxudWxsKX19Y29uc3QgQXE9e3RyYW5zZm9ybU1lbnU6eE8oInRyYW5zZm9ybU1lbnUiLFtrTygidm9pZCIsd08oe29wYWNpdHk6MCx0cmFuc2Zvcm06InNjYWxlKDAuOCkifSkpLERPKCJ2b2lkID0+IGVudGVyIixPTygiMTIwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSkiLHdPKHtvcGFjaXR5OjEsdHJhbnNmb3JtOiJzY2FsZSgxKSJ9KSkpLERPKCIqID0+IHZvaWQiLE9PKCIxMDBtcyAyNW1zIGxpbmVhciIsd08oe29wYWNpdHk6MH0pKSldKSxmYWRlSW5JdGVtczp4TygiZmFkZUluSXRlbXMiLFtrTygic2hvd2luZyIsd08oe29wYWNpdHk6MX0pKSxETygidm9pZCA9PiAqIixbd08oe29wYWNpdHk6MH0pLE9PKCI0MDBtcyAxMDBtcyBjdWJpYy1iZXppZXIoMC41NSwgMCwgMC41NSwgMC4yKSIpXSldKX0sVHE9bmV3IGVyKCJNYXRNZW51Q29udGVudCIpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBOcXtjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyKXt0aGlzLl90ZW1wbGF0ZT10LHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcj1lLHRoaXMuX2FwcFJlZj1uLHRoaXMuX2luamVjdG9yPW8sdGhpcy5fdmlld0NvbnRhaW5lclJlZj1pLHRoaXMuX2RvY3VtZW50PWEsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9cix0aGlzLl9hdHRhY2hlZD1uZXcgQn1hdHRhY2godD17fSl7dGhpcy5fcG9ydGFsfHwodGhpcy5fcG9ydGFsPW5ldyBsQih0aGlzLl90ZW1wbGF0ZSx0aGlzLl92aWV3Q29udGFpbmVyUmVmKSksdGhpcy5kZXRhY2goKSx0aGlzLl9vdXRsZXR8fCh0aGlzLl9vdXRsZXQ9bmV3IHBCKHRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcix0aGlzLl9hcHBSZWYsdGhpcy5faW5qZWN0b3IpKTtjb25zdCBlPXRoaXMuX3RlbXBsYXRlLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMuX291dGxldC5vdXRsZXRFbGVtZW50LGUpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmJiZ0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSx0aGlzLl9wb3J0YWwuYXR0YWNoKHRoaXMuX291dGxldCx0KSx0aGlzLl9hdHRhY2hlZC5uZXh0KCl9ZGV0YWNoKCl7dGhpcy5fcG9ydGFsLmlzQXR0YWNoZWQmJnRoaXMuX3BvcnRhbC5kZXRhY2goKX1uZ09uRGVzdHJveSgpe3RoaXMuX291dGxldCYmdGhpcy5fb3V0bGV0LmRpc3Bvc2UoKX19TnEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE5xKShnZihFYiksZ2YoR2gpLGdmKEhDKSxnZihOcCksZ2YoRmIpLGdmKHNNKSxnZihPYikpfSxOcS7JtWRpcj1obyh7dHlwZTpOcSxzZWxlY3RvcnM6W1sibmctdGVtcGxhdGUiLCJtYXRNZW51Q29udGVudCIsIiJdXSxmZWF0dXJlczpbamgoW3twcm92aWRlOlRxLHVzZUV4aXN0aW5nOk5xfV0pXX0pLE5xLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6RWJ9LHt0eXBlOkdofSx7dHlwZTpIQ30se3R5cGU6TnB9LHt0eXBlOkZifSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19LHt0eXBlOk9ifV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihOcSxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJuZy10ZW1wbGF0ZVttYXRNZW51Q29udGVudF0iLHByb3ZpZGVyczpbe3Byb3ZpZGU6VHEsdXNlRXhpc3Rpbmc6TnF9XX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkVifSx7dHlwZTpHaH0se3R5cGU6SEN9LHt0eXBlOk5wfSx7dHlwZTpGYn0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfSx7dHlwZTpPYn1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCB6cT1uZXcgZXIoIk1BVF9NRU5VX1BBTkVMIiksSXE9SEYoekYoY2xhc3N7fSkpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBIcSBleHRlbmRzIElxe2NvbnN0cnVjdG9yKHQsZSxuLG8saSl7c3VwZXIoKSx0aGlzLl9lbGVtZW50UmVmPXQsdGhpcy5fZm9jdXNNb25pdG9yPW4sdGhpcy5fcGFyZW50TWVudT1vLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWksdGhpcy5yb2xlPSJtZW51aXRlbSIsdGhpcy5faG92ZXJlZD1uZXcgQix0aGlzLl9mb2N1c2VkPW5ldyBCLHRoaXMuX2hpZ2hsaWdodGVkPSExLHRoaXMuX3RyaWdnZXJzU3VibWVudT0hMSxvJiZvLmFkZEl0ZW0mJm8uYWRkSXRlbSh0aGlzKX1mb2N1cyh0LGUpe3RoaXMuX2ZvY3VzTW9uaXRvciYmdD90aGlzLl9mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5fZ2V0SG9zdEVsZW1lbnQoKSx0LGUpOnRoaXMuX2dldEhvc3RFbGVtZW50KCkuZm9jdXMoZSksdGhpcy5fZm9jdXNlZC5uZXh0KHRoaXMpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX2ZvY3VzTW9uaXRvciYmdGhpcy5fZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZiwhMSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9mb2N1c01vbml0b3ImJnRoaXMuX2ZvY3VzTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLl9lbGVtZW50UmVmKSx0aGlzLl9wYXJlbnRNZW51JiZ0aGlzLl9wYXJlbnRNZW51LnJlbW92ZUl0ZW0mJnRoaXMuX3BhcmVudE1lbnUucmVtb3ZlSXRlbSh0aGlzKSx0aGlzLl9ob3ZlcmVkLmNvbXBsZXRlKCksdGhpcy5fZm9jdXNlZC5jb21wbGV0ZSgpfV9nZXRUYWJJbmRleCgpe3JldHVybiB0aGlzLmRpc2FibGVkPyItMSI6IjAifV9nZXRIb3N0RWxlbWVudCgpe3JldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnR9X2NoZWNrRGlzYWJsZWQodCl7dGhpcy5kaXNhYmxlZCYmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpKX1faGFuZGxlTW91c2VFbnRlcigpe3RoaXMuX2hvdmVyZWQubmV4dCh0aGlzKX1nZXRMYWJlbCgpe3ZhciB0LGU7Y29uc3Qgbj10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xvbmVOb2RlKCEwKSxvPW4ucXVlcnlTZWxlY3RvckFsbCgibWF0LWljb24sIC5tYXRlcmlhbC1pY29ucyIpO2ZvcihsZXQgZT0wO2U8by5sZW5ndGg7ZSsrKXtjb25zdCBuPW9bZV07bnVsbD09PSh0PW4ucGFyZW50Tm9kZSl8fHZvaWQgMD09PXR8fHQucmVtb3ZlQ2hpbGQobil9cmV0dXJuKG51bGw9PT0oZT1uLnRleHRDb250ZW50KXx8dm9pZCAwPT09ZT92b2lkIDA6ZS50cmltKCkpfHwiIn1fc2V0SGlnaGxpZ2h0ZWQodCl7dmFyIGU7dGhpcy5faGlnaGxpZ2h0ZWQ9dCxudWxsPT09KGU9dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYpfHx2b2lkIDA9PT1lfHxlLm1hcmtGb3JDaGVjaygpfX1IcS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SHEpKGdmKEtoKSxnZihzTSksZ2YoZkYpLGdmKHpxLDgpLGdmKE9iKSl9LEhxLsm1Y21wPXNvKHt0eXBlOkhxLHNlbGVjdG9yczpbWyIiLCJtYXQtbWVudS1pdGVtIiwiIl1dLGhvc3RBdHRyczpbMSwibWF0LWZvY3VzLWluZGljYXRvciJdLGhvc3RWYXJzOjEwLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZSZigiY2xpY2siLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9jaGVja0Rpc2FibGVkKGUpfSkpKCJtb3VzZWVudGVyIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9oYW5kbGVNb3VzZUVudGVyKCl9KSksMiZlJiYoeW0oInJvbGUiLG4ucm9sZSkoInRhYmluZGV4IixuLl9nZXRUYWJJbmRleCgpKSgiYXJpYS1kaXNhYmxlZCIsbi5kaXNhYmxlZC50b1N0cmluZygpKSgiZGlzYWJsZWQiLG4uZGlzYWJsZWR8fG51bGwpLGN1KCJtYXQtbWVudS1pdGVtIiwhMCkoIm1hdC1tZW51LWl0ZW0taGlnaGxpZ2h0ZWQiLG4uX2hpZ2hsaWdodGVkKSgibWF0LW1lbnUtaXRlbS1zdWJtZW51LXRyaWdnZXIiLG4uX3RyaWdnZXJzU3VibWVudSkpfSxpbnB1dHM6e2Rpc2FibGVkOiJkaXNhYmxlZCIsZGlzYWJsZVJpcHBsZToiZGlzYWJsZVJpcHBsZSIscm9sZToicm9sZSJ9LGV4cG9ydEFzOlsibWF0TWVudUl0ZW0iXSxmZWF0dXJlczpbUXBdLGF0dHJzOlsibWF0LW1lbnUtaXRlbSIsIiJdLG5nQ29udGVudFNlbGVjdG9yczpScSxkZWNsczozLHZhcnM6Myxjb25zdHM6W1sibWF0UmlwcGxlIiwiIiwxLCJtYXQtbWVudS1yaXBwbGUiLDMsIm1hdFJpcHBsZURpc2FibGVkIiwibWF0UmlwcGxlVHJpZ2dlciJdLFsiY2xhc3MiLCJtYXQtbWVudS1zdWJtZW51LWljb24iLCJ2aWV3Qm94IiwiMCAwIDUgMTAiLCJmb2N1c2FibGUiLCJmYWxzZSIsNCwibmdJZiJdLFsidmlld0JveCIsIjAgMCA1IDEwIiwiZm9jdXNhYmxlIiwiZmFsc2UiLDEsIm1hdC1tZW51LXN1Ym1lbnUtaWNvbiJdLFsicG9pbnRzIiwiMCwwIDUsNSAwLDEwIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihIZigpLEZmKDApLHZmKDEsImRpdiIsMCksSG0oMixEcSwyLDAsInN2ZyIsMSkpLDImZSYmKERjKDEpLGJmKCJtYXRSaXBwbGVEaXNhYmxlZCIsbi5kaXNhYmxlUmlwcGxlfHxuLmRpc2FibGVkKSgibWF0UmlwcGxlVHJpZ2dlciIsbi5fZ2V0SG9zdEVsZW1lbnQoKSksRGMoMSksYmYoIm5nSWYiLG4uX3RyaWdnZXJzU3VibWVudSkpfSxkaXJlY3RpdmVzOlttTCxQdl0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksSHEuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpLaH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfSx7dHlwZTpmRn0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3pxXX0se3R5cGU6QnJ9XX0se3R5cGU6T2J9XSxIcS5wcm9wRGVjb3JhdG9ycz17cm9sZTpbe3R5cGU6Ul99XSxfY2hlY2tEaXNhYmxlZDpbe3R5cGU6VF8sYXJnczpbImNsaWNrIixbIiRldmVudCJdXX1dLF9oYW5kbGVNb3VzZUVudGVyOlt7dHlwZTpUXyxhcmdzOlsibW91c2VlbnRlciJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoSHEsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoiW21hdC1tZW51LWl0ZW1dIixleHBvcnRBczoibWF0TWVudUl0ZW0iLGlucHV0czpbImRpc2FibGVkIiwiZGlzYWJsZVJpcHBsZSJdLGhvc3Q6eyJbYXR0ci5yb2xlXSI6InJvbGUiLCJbY2xhc3MubWF0LW1lbnUtaXRlbV0iOiJ0cnVlIiwiW2NsYXNzLm1hdC1tZW51LWl0ZW0taGlnaGxpZ2h0ZWRdIjoiX2hpZ2hsaWdodGVkIiwiW2NsYXNzLm1hdC1tZW51LWl0ZW0tc3VibWVudS10cmlnZ2VyXSI6Il90cmlnZ2Vyc1N1Ym1lbnUiLCJbYXR0ci50YWJpbmRleF0iOiJfZ2V0VGFiSW5kZXgoKSIsIlthdHRyLmFyaWEtZGlzYWJsZWRdIjoiZGlzYWJsZWQudG9TdHJpbmcoKSIsIlthdHRyLmRpc2FibGVkXSI6ImRpc2FibGVkIHx8IG51bGwiLGNsYXNzOiJtYXQtZm9jdXMtaW5kaWNhdG9yIn0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaCxlbmNhcHN1bGF0aW9uOlduLk5vbmUsdGVtcGxhdGU6JzxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjxkaXYgY2xhc3M9Im1hdC1tZW51LXJpcHBsZSIgbWF0UmlwcGxlXG4gICAgIFttYXRSaXBwbGVEaXNhYmxlZF09ImRpc2FibGVSaXBwbGUgfHwgZGlzYWJsZWQiXG4gICAgIFttYXRSaXBwbGVUcmlnZ2VyXT0iX2dldEhvc3RFbGVtZW50KCkiPlxuPC9kaXY+XG5cbjxzdmdcbiAgKm5nSWY9Il90cmlnZ2Vyc1N1Ym1lbnUiXG4gIGNsYXNzPSJtYXQtbWVudS1zdWJtZW51LWljb24iXG4gIHZpZXdCb3g9IjAgMCA1IDEwIlxuICBmb2N1c2FibGU9ImZhbHNlIj48cG9seWdvbiBwb2ludHM9IjAsMCA1LDUgMCwxMCIvPjwvc3ZnPlxuJ31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOktofSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19LHt0eXBlOmZGfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbenFdfSx7dHlwZTpCcn1dfSx7dHlwZTpPYn1dfSkse3JvbGU6W3t0eXBlOlJffV0sX2NoZWNrRGlzYWJsZWQ6W3t0eXBlOlRfLGFyZ3M6WyJjbGljayIsWyIkZXZlbnQiXV19XSxfaGFuZGxlTW91c2VFbnRlcjpbe3R5cGU6VF8sYXJnczpbIm1vdXNlZW50ZXIiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBGcT1uZXcgZXIoIm1hdC1tZW51LWRlZmF1bHQtb3B0aW9ucyIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6ZnVuY3Rpb24gTHEoKXtyZXR1cm57b3ZlcmxhcFRyaWdnZXI6ITEseFBvc2l0aW9uOiJhZnRlciIseVBvc2l0aW9uOiJiZWxvdyIsYmFja2Ryb3BDbGFzczoiY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AifX19KTtsZXQgQnE9MDtjbGFzcyBWcXtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5fZWxlbWVudFJlZj10LHRoaXMuX25nWm9uZT1lLHRoaXMuX2RlZmF1bHRPcHRpb25zPW4sdGhpcy5feFBvc2l0aW9uPXRoaXMuX2RlZmF1bHRPcHRpb25zLnhQb3NpdGlvbix0aGlzLl95UG9zaXRpb249dGhpcy5fZGVmYXVsdE9wdGlvbnMueVBvc2l0aW9uLHRoaXMuX2RpcmVjdERlc2NlbmRhbnRJdGVtcz1uZXcgUnksdGhpcy5fdGFiU3Vic2NyaXB0aW9uPXUuRU1QVFksdGhpcy5fY2xhc3NMaXN0PXt9LHRoaXMuX3BhbmVsQW5pbWF0aW9uU3RhdGU9InZvaWQiLHRoaXMuX2FuaW1hdGlvbkRvbmU9bmV3IEIsdGhpcy5vdmVybGF5UGFuZWxDbGFzcz10aGlzLl9kZWZhdWx0T3B0aW9ucy5vdmVybGF5UGFuZWxDbGFzc3x8IiIsdGhpcy5iYWNrZHJvcENsYXNzPXRoaXMuX2RlZmF1bHRPcHRpb25zLmJhY2tkcm9wQ2xhc3MsdGhpcy5fb3ZlcmxhcFRyaWdnZXI9dGhpcy5fZGVmYXVsdE9wdGlvbnMub3ZlcmxhcFRyaWdnZXIsdGhpcy5faGFzQmFja2Ryb3A9dGhpcy5fZGVmYXVsdE9wdGlvbnMuaGFzQmFja2Ryb3AsdGhpcy5jbG9zZWQ9bmV3IFN5LHRoaXMuY2xvc2U9dGhpcy5jbG9zZWQsdGhpcy5wYW5lbElkPSJtYXQtbWVudS1wYW5lbC0iK0JxKyt9Z2V0IHhQb3NpdGlvbigpe3JldHVybiB0aGlzLl94UG9zaXRpb259c2V0IHhQb3NpdGlvbih0KXsiYmVmb3JlIj09PXR8fCJhZnRlciI9PT10fHwidW5kZWZpbmVkIiE9dHlwZW9mIG5nRGV2TW9kZSYmIW5nRGV2TW9kZXx8KGZ1bmN0aW9uIGUoKXt0aHJvdyBFcnJvcigneFBvc2l0aW9uIHZhbHVlIG11c3QgYmUgZWl0aGVyIFwnYmVmb3JlXCcgb3IgYWZ0ZXJcJy5cbiAgICAgIEV4YW1wbGU6IDxtYXQtbWVudSB4UG9zaXRpb249ImJlZm9yZSIgI21lbnU9Im1hdE1lbnUiPjwvbWF0LW1lbnU+Jyl9KSgpLHRoaXMuX3hQb3NpdGlvbj10LHRoaXMuc2V0UG9zaXRpb25DbGFzc2VzKCl9Z2V0IHlQb3NpdGlvbigpe3JldHVybiB0aGlzLl95UG9zaXRpb259c2V0IHlQb3NpdGlvbih0KXsiYWJvdmUiPT09dHx8ImJlbG93Ij09PXR8fCJ1bmRlZmluZWQiIT10eXBlb2YgbmdEZXZNb2RlJiYhbmdEZXZNb2RlfHwoZnVuY3Rpb24gZSgpe3Rocm93IEVycm9yKCd5UG9zaXRpb24gdmFsdWUgbXVzdCBiZSBlaXRoZXIgXCdhYm92ZVwnIG9yIGJlbG93XCcuXG4gICAgICBFeGFtcGxlOiA8bWF0LW1lbnUgeVBvc2l0aW9uPSJhYm92ZSIgI21lbnU9Im1hdE1lbnUiPjwvbWF0LW1lbnU+Jyl9KSgpLHRoaXMuX3lQb3NpdGlvbj10LHRoaXMuc2V0UG9zaXRpb25DbGFzc2VzKCl9Z2V0IG92ZXJsYXBUcmlnZ2VyKCl7cmV0dXJuIHRoaXMuX292ZXJsYXBUcmlnZ2VyfXNldCBvdmVybGFwVHJpZ2dlcih0KXt0aGlzLl9vdmVybGFwVHJpZ2dlcj1lSCh0KX1nZXQgaGFzQmFja2Ryb3AoKXtyZXR1cm4gdGhpcy5faGFzQmFja2Ryb3B9c2V0IGhhc0JhY2tkcm9wKHQpe3RoaXMuX2hhc0JhY2tkcm9wPWVIKHQpfXNldCBwYW5lbENsYXNzKHQpe2NvbnN0IGU9dGhpcy5fcHJldmlvdXNQYW5lbENsYXNzO2UmJmUubGVuZ3RoJiZlLnNwbGl0KCIgIikuZm9yRWFjaCgodD0+e3RoaXMuX2NsYXNzTGlzdFt0XT0hMX0pKSx0aGlzLl9wcmV2aW91c1BhbmVsQ2xhc3M9dCx0JiZ0Lmxlbmd0aCYmKHQuc3BsaXQoIiAiKS5mb3JFYWNoKCh0PT57dGhpcy5fY2xhc3NMaXN0W3RdPSEwfSkpLHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc05hbWU9IiIpfWdldCBjbGFzc0xpc3QoKXtyZXR1cm4gdGhpcy5wYW5lbENsYXNzfXNldCBjbGFzc0xpc3QodCl7dGhpcy5wYW5lbENsYXNzPXR9bmdPbkluaXQoKXt0aGlzLnNldFBvc2l0aW9uQ2xhc3NlcygpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX3VwZGF0ZURpcmVjdERlc2NlbmRhbnRzKCksdGhpcy5fa2V5TWFuYWdlcj1uZXcgTEgodGhpcy5fZGlyZWN0RGVzY2VuZGFudEl0ZW1zKS53aXRoV3JhcCgpLndpdGhUeXBlQWhlYWQoKS53aXRoSG9tZUFuZEVuZCgpLHRoaXMuX3RhYlN1YnNjcmlwdGlvbj10aGlzLl9rZXlNYW5hZ2VyLnRhYk91dC5zdWJzY3JpYmUoKCgpPT50aGlzLmNsb3NlZC5lbWl0KCJ0YWIiKSkpLHRoaXMuX2RpcmVjdERlc2NlbmRhbnRJdGVtcy5jaGFuZ2VzLnBpcGUoQmUodGhpcy5fZGlyZWN0RGVzY2VuZGFudEl0ZW1zKSxWZSgodD0+cGUoLi4udC5tYXAoKHQ9PnQuX2ZvY3VzZWQpKSkpKSkuc3Vic2NyaWJlKCh0PT50aGlzLl9rZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0odCkpKX1uZ09uRGVzdHJveSgpe3RoaXMuX2RpcmVjdERlc2NlbmRhbnRJdGVtcy5kZXN0cm95KCksdGhpcy5fdGFiU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5jbG9zZWQuY29tcGxldGUoKX1faG92ZXJlZCgpe3JldHVybiB0aGlzLl9kaXJlY3REZXNjZW5kYW50SXRlbXMuY2hhbmdlcy5waXBlKEJlKHRoaXMuX2RpcmVjdERlc2NlbmRhbnRJdGVtcyksVmUoKHQ9PnBlKC4uLnQubWFwKCh0PT50Ll9ob3ZlcmVkKSkpKSkpfWFkZEl0ZW0odCl7fXJlbW92ZUl0ZW0odCl7fV9oYW5kbGVLZXlkb3duKHQpe2NvbnN0IGU9dC5rZXlDb2RlLG49dGhpcy5fa2V5TWFuYWdlcjtzd2l0Y2goZSl7Y2FzZSBLSTp0SCh0KXx8KHQucHJldmVudERlZmF1bHQoKSx0aGlzLmNsb3NlZC5lbWl0KCJrZXlkb3duIikpO2JyZWFrO2Nhc2UgMzc6dGhpcy5wYXJlbnRNZW51JiYibHRyIj09PXRoaXMuZGlyZWN0aW9uJiZ0aGlzLmNsb3NlZC5lbWl0KCJrZXlkb3duIik7YnJlYWs7Y2FzZSAzOTp0aGlzLnBhcmVudE1lbnUmJiJydGwiPT09dGhpcy5kaXJlY3Rpb24mJnRoaXMuY2xvc2VkLmVtaXQoImtleWRvd24iKTticmVhaztkZWZhdWx0OmUhPT1RSSYmZSE9PSRJfHxuLnNldEZvY3VzT3JpZ2luKCJrZXlib2FyZCIpLG4ub25LZXlkb3duKHQpfX1mb2N1c0ZpcnN0SXRlbSh0PSJwcm9ncmFtIil7dGhpcy5sYXp5Q29udGVudD90aGlzLl9uZ1pvbmUub25TdGFibGUucGlwZSh2ZSgxKSkuc3Vic2NyaWJlKCgoKT0+dGhpcy5fZm9jdXNGaXJzdEl0ZW0odCkpKTp0aGlzLl9mb2N1c0ZpcnN0SXRlbSh0KX1fZm9jdXNGaXJzdEl0ZW0odCl7Y29uc3QgZT10aGlzLl9rZXlNYW5hZ2VyO2lmKGUuc2V0Rm9jdXNPcmlnaW4odCkuc2V0Rmlyc3RJdGVtQWN0aXZlKCksIWUuYWN0aXZlSXRlbSYmdGhpcy5fZGlyZWN0RGVzY2VuZGFudEl0ZW1zLmxlbmd0aCl7bGV0IHQ9dGhpcy5fZGlyZWN0RGVzY2VuZGFudEl0ZW1zLmZpcnN0Ll9nZXRIb3N0RWxlbWVudCgpLnBhcmVudEVsZW1lbnQ7Zm9yKDt0Oyl7aWYoIm1lbnUiPT09dC5nZXRBdHRyaWJ1dGUoInJvbGUiKSl7dC5mb2N1cygpO2JyZWFrfXQ9dC5wYXJlbnRFbGVtZW50fX19cmVzZXRBY3RpdmVJdGVtKCl7dGhpcy5fa2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKC0xKX1zZXRFbGV2YXRpb24odCl7Y29uc3QgZT1NYXRoLm1pbih0aGlzLl9iYXNlRWxldmF0aW9uK3QsMjQpLG49YCR7dGhpcy5fZWxldmF0aW9uUHJlZml4fSR7ZX1gLG89T2JqZWN0LmtleXModGhpcy5fY2xhc3NMaXN0KS5maW5kKCh0PT50LnN0YXJ0c1dpdGgodGhpcy5fZWxldmF0aW9uUHJlZml4KSkpO28mJm8hPT10aGlzLl9wcmV2aW91c0VsZXZhdGlvbnx8KHRoaXMuX3ByZXZpb3VzRWxldmF0aW9uJiYodGhpcy5fY2xhc3NMaXN0W3RoaXMuX3ByZXZpb3VzRWxldmF0aW9uXT0hMSksdGhpcy5fY2xhc3NMaXN0W25dPSEwLHRoaXMuX3ByZXZpb3VzRWxldmF0aW9uPW4pfXNldFBvc2l0aW9uQ2xhc3Nlcyh0PXRoaXMueFBvc2l0aW9uLGU9dGhpcy55UG9zaXRpb24pe2NvbnN0IG49dGhpcy5fY2xhc3NMaXN0O25bIm1hdC1tZW51LWJlZm9yZSJdPSJiZWZvcmUiPT09dCxuWyJtYXQtbWVudS1hZnRlciJdPSJhZnRlciI9PT10LG5bIm1hdC1tZW51LWFib3ZlIl09ImFib3ZlIj09PWUsblsibWF0LW1lbnUtYmVsb3ciXT0iYmVsb3ciPT09ZX1fc3RhcnRBbmltYXRpb24oKXt0aGlzLl9wYW5lbEFuaW1hdGlvblN0YXRlPSJlbnRlciJ9X3Jlc2V0QW5pbWF0aW9uKCl7dGhpcy5fcGFuZWxBbmltYXRpb25TdGF0ZT0idm9pZCJ9X29uQW5pbWF0aW9uRG9uZSh0KXt0aGlzLl9hbmltYXRpb25Eb25lLm5leHQodCksdGhpcy5faXNBbmltYXRpbmc9ITF9X29uQW5pbWF0aW9uU3RhcnQodCl7dGhpcy5faXNBbmltYXRpbmc9ITAsImVudGVyIj09PXQudG9TdGF0ZSYmMD09PXRoaXMuX2tleU1hbmFnZXIuYWN0aXZlSXRlbUluZGV4JiYodC5lbGVtZW50LnNjcm9sbFRvcD0wKX1fdXBkYXRlRGlyZWN0RGVzY2VuZGFudHMoKXt0aGlzLl9hbGxJdGVtcy5jaGFuZ2VzLnBpcGUoQmUodGhpcy5fYWxsSXRlbXMpKS5zdWJzY3JpYmUoKHQ9Pnt0aGlzLl9kaXJlY3REZXNjZW5kYW50SXRlbXMucmVzZXQodC5maWx0ZXIoKHQ9PnQuX3BhcmVudE1lbnU9PT10aGlzKSkpLHRoaXMuX2RpcmVjdERlc2NlbmRhbnRJdGVtcy5ub3RpZnlPbkNoYW5nZXMoKX0pKX19VnEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFZxKShnZihLaCksZ2YobUMpLGdmKEZxKSl9LFZxLsm1ZGlyPWhvKHt0eXBlOlZxLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uIHQoZSxuLG8pe2lmKDEmZSYmKGp5KG8sVHEsNSksankobyxIcSw1KSxqeShvLEhxLDQpKSwyJmUpe2xldCB0O0J5KHQ9VXkoKSkmJihuLmxhenlDb250ZW50PXQuZmlyc3QpLEJ5KHQ9VXkoKSkmJihuLl9hbGxJdGVtcz10KSxCeSh0PVV5KCkpJiYobi5pdGVtcz10KX19LHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiZWeShFYiw1KSwyJmUpe2xldCB0O0J5KHQ9VXkoKSkmJihuLnRlbXBsYXRlUmVmPXQuZmlyc3QpfX0saW5wdXRzOntiYWNrZHJvcENsYXNzOiJiYWNrZHJvcENsYXNzIix4UG9zaXRpb246InhQb3NpdGlvbiIseVBvc2l0aW9uOiJ5UG9zaXRpb24iLG92ZXJsYXBUcmlnZ2VyOiJvdmVybGFwVHJpZ2dlciIsaGFzQmFja2Ryb3A6Imhhc0JhY2tkcm9wIixwYW5lbENsYXNzOlsiY2xhc3MiLCJwYW5lbENsYXNzIl0sY2xhc3NMaXN0OiJjbGFzc0xpc3QiLGFyaWFMYWJlbDpbImFyaWEtbGFiZWwiLCJhcmlhTGFiZWwiXSxhcmlhTGFiZWxsZWRieTpbImFyaWEtbGFiZWxsZWRieSIsImFyaWFMYWJlbGxlZGJ5Il0sYXJpYURlc2NyaWJlZGJ5OlsiYXJpYS1kZXNjcmliZWRieSIsImFyaWFEZXNjcmliZWRieSJdfSxvdXRwdXRzOntjbG9zZWQ6ImNsb3NlZCIsY2xvc2U6ImNsb3NlIn19KSxWcS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOktofSx7dHlwZTptQ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W0ZxXX1dfV0sVnEucHJvcERlY29yYXRvcnM9e19hbGxJdGVtczpbe3R5cGU6b3IsYXJnczpbSHEse2Rlc2NlbmRhbnRzOiEwfV19XSxiYWNrZHJvcENsYXNzOlt7dHlwZTpSX31dLGFyaWFMYWJlbDpbe3R5cGU6Ul8sYXJnczpbImFyaWEtbGFiZWwiXX1dLGFyaWFMYWJlbGxlZGJ5Olt7dHlwZTpSXyxhcmdzOlsiYXJpYS1sYWJlbGxlZGJ5Il19XSxhcmlhRGVzY3JpYmVkYnk6W3t0eXBlOlJfLGFyZ3M6WyJhcmlhLWRlc2NyaWJlZGJ5Il19XSx4UG9zaXRpb246W3t0eXBlOlJffV0seVBvc2l0aW9uOlt7dHlwZTpSX31dLHRlbXBsYXRlUmVmOlt7dHlwZTphcixhcmdzOltFYl19XSxpdGVtczpbe3R5cGU6b3IsYXJnczpbSHEse2Rlc2NlbmRhbnRzOiExfV19XSxsYXp5Q29udGVudDpbe3R5cGU6aXIsYXJnczpbVHFdfV0sb3ZlcmxhcFRyaWdnZXI6W3t0eXBlOlJffV0saGFzQmFja2Ryb3A6W3t0eXBlOlJffV0scGFuZWxDbGFzczpbe3R5cGU6Ul8sYXJnczpbImNsYXNzIl19XSxjbGFzc0xpc3Q6W3t0eXBlOlJffV0sY2xvc2VkOlt7dHlwZTpFX31dLGNsb3NlOlt7dHlwZTpFX31dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFZxLFt7dHlwZTprX31dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpLaH0se3R5cGU6bUN9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltGcV19XX1dfSkse2JhY2tkcm9wQ2xhc3M6W3t0eXBlOlJffV0sY2xvc2VkOlt7dHlwZTpFX31dLGNsb3NlOlt7dHlwZTpFX31dLHhQb3NpdGlvbjpbe3R5cGU6Ul99XSx5UG9zaXRpb246W3t0eXBlOlJffV0sb3ZlcmxhcFRyaWdnZXI6W3t0eXBlOlJffV0saGFzQmFja2Ryb3A6W3t0eXBlOlJffV0scGFuZWxDbGFzczpbe3R5cGU6Ul8sYXJnczpbImNsYXNzIl19XSxjbGFzc0xpc3Q6W3t0eXBlOlJffV0sX2FsbEl0ZW1zOlt7dHlwZTpvcixhcmdzOltIcSx7ZGVzY2VuZGFudHM6ITB9XX1dLGFyaWFMYWJlbDpbe3R5cGU6Ul8sYXJnczpbImFyaWEtbGFiZWwiXX1dLGFyaWFMYWJlbGxlZGJ5Olt7dHlwZTpSXyxhcmdzOlsiYXJpYS1sYWJlbGxlZGJ5Il19XSxhcmlhRGVzY3JpYmVkYnk6W3t0eXBlOlJfLGFyZ3M6WyJhcmlhLWRlc2NyaWJlZGJ5Il19XSx0ZW1wbGF0ZVJlZjpbe3R5cGU6YXIsYXJnczpbRWJdfV0saXRlbXM6W3t0eXBlOm9yLGFyZ3M6W0hxLHtkZXNjZW5kYW50czohMX1dfV0sbGF6eUNvbnRlbnQ6W3t0eXBlOmlyLGFyZ3M6W1RxXX1dfSk7Y2xhc3MganEgZXh0ZW5kcyBWcXtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIodCxlLG4pLHRoaXMuX2VsZXZhdGlvblByZWZpeD0ibWF0LWVsZXZhdGlvbi16Iix0aGlzLl9iYXNlRWxldmF0aW9uPTR9fWpxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxqcSkoZ2YoS2gpLGdmKG1DKSxnZihGcSkpfSxqcS7JtWNtcD1zbyh7dHlwZTpqcSxzZWxlY3RvcnM6W1sibWF0LW1lbnUiXV0saG9zdFZhcnM6Myxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmeW0oImFyaWEtbGFiZWwiLG51bGwpKCJhcmlhLWxhYmVsbGVkYnkiLG51bGwpKCJhcmlhLWRlc2NyaWJlZGJ5IixudWxsKX0sZXhwb3J0QXM6WyJtYXRNZW51Il0sZmVhdHVyZXM6W2poKFt7cHJvdmlkZTp6cSx1c2VFeGlzdGluZzpqcX1dKSxRcF0sbmdDb250ZW50U2VsZWN0b3JzOlJxLGRlY2xzOjEsdmFyczowLGNvbnN0czpbWyJ0YWJpbmRleCIsIi0xIiwicm9sZSIsIm1lbnUiLDEsIm1hdC1tZW51LXBhbmVsIiwzLCJpZCIsIm5nQ2xhc3MiLCJrZXlkb3duIiwiY2xpY2siXSxbMSwibWF0LW1lbnUtY29udGVudCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoSGYoKSxIbSgwLEVxLDMsNiwibmctdGVtcGxhdGUiKSl9LGRpcmVjdGl2ZXM6W0N2XSxzdHlsZXM6WyJtYXQtbWVudXtkaXNwbGF5Om5vbmV9Lm1hdC1tZW51LXBhbmVse21pbi13aWR0aDoxMTJweDttYXgtd2lkdGg6MjgwcHg7b3ZlcmZsb3c6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDttYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSA0OHB4KTtib3JkZXItcmFkaXVzOjRweDtvdXRsaW5lOjA7bWluLWhlaWdodDo2NHB4fS5tYXQtbWVudS1wYW5lbC5uZy1hbmltYXRpbmd7cG9pbnRlci1ldmVudHM6bm9uZX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtbWVudS1wYW5lbHtvdXRsaW5lOnNvbGlkIDFweH0ubWF0LW1lbnUtY29udGVudDpub3QoOmVtcHR5KXtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbWVudS1pdGVtey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmU7Ym9yZGVyOm5vbmU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2xpbmUtaGVpZ2h0OjQ4cHg7aGVpZ2h0OjQ4cHg7cGFkZGluZzowIDE2cHg7dGV4dC1hbGlnbjpsZWZ0O3RleHQtZGVjb3JhdGlvbjpub25lO21heC13aWR0aDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWVudS1pdGVtOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5tYXQtbWVudS1pdGVtW2Rpc2FibGVkXXtjdXJzb3I6ZGVmYXVsdH1bZGlyPXJ0bF0gLm1hdC1tZW51LWl0ZW17dGV4dC1hbGlnbjpyaWdodH0ubWF0LW1lbnUtaXRlbSAubWF0LWljb257bWFyZ2luLXJpZ2h0OjE2cHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tYXQtbWVudS1pdGVtIC5tYXQtaWNvbiBzdmd7dmVydGljYWwtYWxpZ246dG9wfVtkaXI9cnRsXSAubWF0LW1lbnUtaXRlbSAubWF0LWljb257bWFyZ2luLWxlZnQ6MTZweDttYXJnaW4tcmlnaHQ6MH0ubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF17cG9pbnRlci1ldmVudHM6bm9uZX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtbWVudS1pdGVte21hcmdpbi10b3A6MXB4fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1tZW51LWl0ZW0uY2RrLXByb2dyYW0tZm9jdXNlZCwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtbWVudS1pdGVtLmNkay1rZXlib2FyZC1mb2N1c2VkLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1tZW51LWl0ZW0taGlnaGxpZ2h0ZWR7b3V0bGluZTpkb3R0ZWQgMXB4fS5tYXQtbWVudS1pdGVtLXN1Ym1lbnUtdHJpZ2dlcntwYWRkaW5nLXJpZ2h0OjMycHh9W2Rpcj1ydGxdIC5tYXQtbWVudS1pdGVtLXN1Ym1lbnUtdHJpZ2dlcntwYWRkaW5nLXJpZ2h0OjE2cHg7cGFkZGluZy1sZWZ0OjMycHh9Lm1hdC1tZW51LXN1Ym1lbnUtaWNvbntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3JpZ2h0OjE2cHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7d2lkdGg6NXB4O2hlaWdodDoxMHB4O2ZpbGw6Y3VycmVudENvbG9yfVtkaXI9cnRsXSAubWF0LW1lbnUtc3VibWVudS1pY29ue3JpZ2h0OmF1dG87bGVmdDoxNnB4O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpIHNjYWxlWCgtMSl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1lbnUtc3VibWVudS1pY29ue2ZpbGw6Q2FudmFzVGV4dH1idXR0b24ubWF0LW1lbnUtaXRlbXt3aWR0aDoxMDAlfS5tYXQtbWVudS1pdGVtIC5tYXQtbWVudS1yaXBwbGV7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6bm9uZX1cbiJdLGVuY2Fwc3VsYXRpb246MixkYXRhOnthbmltYXRpb246W0FxLnRyYW5zZm9ybU1lbnUsQXEuZmFkZUluSXRlbXNdfSxjaGFuZ2VEZXRlY3Rpb246MH0pLGpxLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6S2h9LHt0eXBlOm1DfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbRnFdfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGpxLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im1hdC1tZW51Iix0ZW1wbGF0ZTonPG5nLXRlbXBsYXRlPlxuICA8ZGl2XG4gICAgY2xhc3M9Im1hdC1tZW51LXBhbmVsIlxuICAgIFtpZF09InBhbmVsSWQiXG4gICAgW25nQ2xhc3NdPSJfY2xhc3NMaXN0IlxuICAgIChrZXlkb3duKT0iX2hhbmRsZUtleWRvd24oJGV2ZW50KSJcbiAgICAoY2xpY2spPSJjbG9zZWQuZW1pdChcJ2NsaWNrXCcpIlxuICAgIFtAdHJhbnNmb3JtTWVudV09Il9wYW5lbEFuaW1hdGlvblN0YXRlIlxuICAgIChAdHJhbnNmb3JtTWVudS5zdGFydCk9Il9vbkFuaW1hdGlvblN0YXJ0KCRldmVudCkiXG4gICAgKEB0cmFuc2Zvcm1NZW51LmRvbmUpPSJfb25BbmltYXRpb25Eb25lKCRldmVudCkiXG4gICAgdGFiaW5kZXg9Ii0xIlxuICAgIHJvbGU9Im1lbnUiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09ImFyaWFMYWJlbCB8fCBudWxsIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09ImFyaWFMYWJlbGxlZGJ5IHx8IG51bGwiXG4gICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09ImFyaWFEZXNjcmliZWRieSB8fCBudWxsIj5cbiAgICA8ZGl2IGNsYXNzPSJtYXQtbWVudS1jb250ZW50Ij5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuJyxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNoLGVuY2Fwc3VsYXRpb246V24uTm9uZSxleHBvcnRBczoibWF0TWVudSIsaG9zdDp7IlthdHRyLmFyaWEtbGFiZWxdIjoibnVsbCIsIlthdHRyLmFyaWEtbGFiZWxsZWRieV0iOiJudWxsIiwiW2F0dHIuYXJpYS1kZXNjcmliZWRieV0iOiJudWxsIn0sYW5pbWF0aW9uczpbQXEudHJhbnNmb3JtTWVudSxBcS5mYWRlSW5JdGVtc10scHJvdmlkZXJzOlt7cHJvdmlkZTp6cSx1c2VFeGlzdGluZzpqcX1dLHN0eWxlczpbIm1hdC1tZW51e2Rpc3BsYXk6bm9uZX0ubWF0LW1lbnUtcGFuZWx7bWluLXdpZHRoOjExMnB4O21heC13aWR0aDoyODBweDtvdmVyZmxvdzphdXRvOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO21heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIDQ4cHgpO2JvcmRlci1yYWRpdXM6NHB4O291dGxpbmU6MDttaW4taGVpZ2h0OjY0cHh9Lm1hdC1tZW51LXBhbmVsLm5nLWFuaW1hdGluZ3twb2ludGVyLWV2ZW50czpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1tZW51LXBhbmVse291dGxpbmU6c29saWQgMXB4fS5tYXQtbWVudS1jb250ZW50Om5vdCg6ZW1wdHkpe3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1tZW51LWl0ZW17LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6NDhweDtoZWlnaHQ6NDhweDtwYWRkaW5nOjAgMTZweDt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7bWF4LXdpZHRoOjEwMCU7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZW51LWl0ZW06Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Lm1hdC1tZW51LWl0ZW1bZGlzYWJsZWRde2N1cnNvcjpkZWZhdWx0fVtkaXI9cnRsXSAubWF0LW1lbnUtaXRlbXt0ZXh0LWFsaWduOnJpZ2h0fS5tYXQtbWVudS1pdGVtIC5tYXQtaWNvbnttYXJnaW4tcmlnaHQ6MTZweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uIHN2Z3t2ZXJ0aWNhbC1hbGlnbjp0b3B9W2Rpcj1ydGxdIC5tYXQtbWVudS1pdGVtIC5tYXQtaWNvbnttYXJnaW4tbGVmdDoxNnB4O21hcmdpbi1yaWdodDowfS5tYXQtbWVudS1pdGVtW2Rpc2FibGVkXXtwb2ludGVyLWV2ZW50czpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1tZW51LWl0ZW17bWFyZ2luLXRvcDoxcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1lbnUtaXRlbS5jZGstcHJvZ3JhbS1mb2N1c2VkLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQsLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZHtvdXRsaW5lOmRvdHRlZCAxcHh9Lm1hdC1tZW51LWl0ZW0tc3VibWVudS10cmlnZ2Vye3BhZGRpbmctcmlnaHQ6MzJweH1bZGlyPXJ0bF0gLm1hdC1tZW51LWl0ZW0tc3VibWVudS10cmlnZ2Vye3BhZGRpbmctcmlnaHQ6MTZweDtwYWRkaW5nLWxlZnQ6MzJweH0ubWF0LW1lbnUtc3VibWVudS1pY29ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7cmlnaHQ6MTZweDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTt3aWR0aDo1cHg7aGVpZ2h0OjEwcHg7ZmlsbDpjdXJyZW50Q29sb3J9W2Rpcj1ydGxdIC5tYXQtbWVudS1zdWJtZW51LWljb257cmlnaHQ6YXV0bztsZWZ0OjE2cHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgc2NhbGVYKC0xKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtbWVudS1zdWJtZW51LWljb257ZmlsbDpDYW52YXNUZXh0fWJ1dHRvbi5tYXQtbWVudS1pdGVte3dpZHRoOjEwMCV9Lm1hdC1tZW51LWl0ZW0gLm1hdC1tZW51LXJpcHBsZXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lfVxuIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpLaH0se3R5cGU6bUN9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltGcV19XX1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBVcT1uZXcgZXIoIm1hdC1tZW51LXNjcm9sbC1zdHJhdGVneSIpO2NvbnN0IFdxPXtwcm92aWRlOlVxLGRlcHM6W0tCXSx1c2VGYWN0b3J5OmZ1bmN0aW9uIEdxKHQpe3JldHVybigpPT50LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpfX0sWXE9Ykgoe3Bhc3NpdmU6ITB9KTtjbGFzcyBxcXtjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyLHMpe3RoaXMuX292ZXJsYXk9dCx0aGlzLl9lbGVtZW50PWUsdGhpcy5fdmlld0NvbnRhaW5lclJlZj1uLHRoaXMuX21lbnVJdGVtSW5zdGFuY2U9YSx0aGlzLl9kaXI9cix0aGlzLl9mb2N1c01vbml0b3I9cyx0aGlzLl9vdmVybGF5UmVmPW51bGwsdGhpcy5fbWVudU9wZW49ITEsdGhpcy5fY2xvc2luZ0FjdGlvbnNTdWJzY3JpcHRpb249dS5FTVBUWSx0aGlzLl9ob3ZlclN1YnNjcmlwdGlvbj11LkVNUFRZLHRoaXMuX21lbnVDbG9zZVN1YnNjcmlwdGlvbj11LkVNUFRZLHRoaXMuX2hhbmRsZVRvdWNoU3RhcnQ9dD0+e2VGKHQpfHwodGhpcy5fb3BlbmVkQnk9InRvdWNoIil9LHRoaXMuX29wZW5lZEJ5PXZvaWQgMCx0aGlzLnJlc3RvcmVGb2N1cz0hMCx0aGlzLm1lbnVPcGVuZWQ9bmV3IFN5LHRoaXMub25NZW51T3Blbj10aGlzLm1lbnVPcGVuZWQsdGhpcy5tZW51Q2xvc2VkPW5ldyBTeSx0aGlzLm9uTWVudUNsb3NlPXRoaXMubWVudUNsb3NlZCx0aGlzLl9zY3JvbGxTdHJhdGVneT1vLHRoaXMuX3BhcmVudE1hdGVyaWFsTWVudT1pIGluc3RhbmNlb2YgVnE/aTp2b2lkIDAsZS5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuX2hhbmRsZVRvdWNoU3RhcnQsWXEpLGEmJihhLl90cmlnZ2Vyc1N1Ym1lbnU9dGhpcy50cmlnZ2Vyc1N1Ym1lbnUoKSl9Z2V0IF9kZXByZWNhdGVkTWF0TWVudVRyaWdnZXJGb3IoKXtyZXR1cm4gdGhpcy5tZW51fXNldCBfZGVwcmVjYXRlZE1hdE1lbnVUcmlnZ2VyRm9yKHQpe3RoaXMubWVudT10fWdldCBtZW51KCl7cmV0dXJuIHRoaXMuX21lbnV9c2V0IG1lbnUodCl7dCE9PXRoaXMuX21lbnUmJih0aGlzLl9tZW51PXQsdGhpcy5fbWVudUNsb3NlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdCYmKHQhPT10aGlzLl9wYXJlbnRNYXRlcmlhbE1lbnV8fCJ1bmRlZmluZWQiIT10eXBlb2YgbmdEZXZNb2RlJiYhbmdEZXZNb2RlfHwoZnVuY3Rpb24gZSgpe3Rocm93IEVycm9yKCJtYXRNZW51VHJpZ2dlckZvcjogbWVudSBjYW5ub3QgY29udGFpbiBpdHMgb3duIHRyaWdnZXIuIEFzc2lnbiBhIG1lbnUgdGhhdCBpcyBub3QgYSBwYXJlbnQgb2YgdGhlIHRyaWdnZXIgb3IgbW92ZSB0aGUgdHJpZ2dlciBvdXRzaWRlIG9mIHRoZSBtZW51LiIpfSkoKSx0aGlzLl9tZW51Q2xvc2VTdWJzY3JpcHRpb249dC5jbG9zZS5zdWJzY3JpYmUoKHQ9Pnt0aGlzLl9kZXN0cm95TWVudSh0KSwiY2xpY2siIT09dCYmInRhYiIhPT10fHwhdGhpcy5fcGFyZW50TWF0ZXJpYWxNZW51fHx0aGlzLl9wYXJlbnRNYXRlcmlhbE1lbnUuY2xvc2VkLmVtaXQodCl9KSkpKX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLl9jaGVja01lbnUoKSx0aGlzLl9oYW5kbGVIb3ZlcigpfW5nT25EZXN0cm95KCl7dGhpcy5fb3ZlcmxheVJlZiYmKHRoaXMuX292ZXJsYXlSZWYuZGlzcG9zZSgpLHRoaXMuX292ZXJsYXlSZWY9bnVsbCksdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuX2hhbmRsZVRvdWNoU3RhcnQsWXEpLHRoaXMuX21lbnVDbG9zZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX2Nsb3NpbmdBY3Rpb25zU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5faG92ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX1nZXQgbWVudU9wZW4oKXtyZXR1cm4gdGhpcy5fbWVudU9wZW59Z2V0IGRpcigpe3JldHVybiB0aGlzLl9kaXImJiJydGwiPT09dGhpcy5fZGlyLnZhbHVlPyJydGwiOiJsdHIifXRyaWdnZXJzU3VibWVudSgpe3JldHVybiEoIXRoaXMuX21lbnVJdGVtSW5zdGFuY2V8fCF0aGlzLl9wYXJlbnRNYXRlcmlhbE1lbnUpfXRvZ2dsZU1lbnUoKXtyZXR1cm4gdGhpcy5fbWVudU9wZW4/dGhpcy5jbG9zZU1lbnUoKTp0aGlzLm9wZW5NZW51KCl9b3Blbk1lbnUoKXtpZih0aGlzLl9tZW51T3BlbilyZXR1cm47dGhpcy5fY2hlY2tNZW51KCk7Y29uc3QgdD10aGlzLl9jcmVhdGVPdmVybGF5KCksZT10LmdldENvbmZpZygpO3RoaXMuX3NldFBvc2l0aW9uKGUucG9zaXRpb25TdHJhdGVneSksZS5oYXNCYWNrZHJvcD1udWxsPT10aGlzLm1lbnUuaGFzQmFja2Ryb3A/IXRoaXMudHJpZ2dlcnNTdWJtZW51KCk6dGhpcy5tZW51Lmhhc0JhY2tkcm9wLHQuYXR0YWNoKHRoaXMuX2dldFBvcnRhbCgpKSx0aGlzLm1lbnUubGF6eUNvbnRlbnQmJnRoaXMubWVudS5sYXp5Q29udGVudC5hdHRhY2godGhpcy5tZW51RGF0YSksdGhpcy5fY2xvc2luZ0FjdGlvbnNTdWJzY3JpcHRpb249dGhpcy5fbWVudUNsb3NpbmdBY3Rpb25zKCkuc3Vic2NyaWJlKCgoKT0+dGhpcy5jbG9zZU1lbnUoKSkpLHRoaXMuX2luaXRNZW51KCksdGhpcy5tZW51IGluc3RhbmNlb2YgVnEmJnRoaXMubWVudS5fc3RhcnRBbmltYXRpb24oKX1jbG9zZU1lbnUoKXt0aGlzLm1lbnUuY2xvc2UuZW1pdCgpfWZvY3VzKHQsZSl7dGhpcy5fZm9jdXNNb25pdG9yJiZ0P3RoaXMuX2ZvY3VzTW9uaXRvci5mb2N1c1ZpYSh0aGlzLl9lbGVtZW50LHQsZSk6dGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKGUpfXVwZGF0ZVBvc2l0aW9uKCl7dmFyIHQ7bnVsbD09PSh0PXRoaXMuX292ZXJsYXlSZWYpfHx2b2lkIDA9PT10fHx0LnVwZGF0ZVBvc2l0aW9uKCl9X2Rlc3Ryb3lNZW51KHQpe2lmKCF0aGlzLl9vdmVybGF5UmVmfHwhdGhpcy5tZW51T3BlbilyZXR1cm47Y29uc3QgZT10aGlzLm1lbnU7dGhpcy5fY2xvc2luZ0FjdGlvbnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpLCF0aGlzLnJlc3RvcmVGb2N1c3x8ImtleWRvd24iIT09dCYmdGhpcy5fb3BlbmVkQnkmJnRoaXMudHJpZ2dlcnNTdWJtZW51KCl8fHRoaXMuZm9jdXModGhpcy5fb3BlbmVkQnkpLHRoaXMuX29wZW5lZEJ5PXZvaWQgMCxlIGluc3RhbmNlb2YgVnE/KGUuX3Jlc2V0QW5pbWF0aW9uKCksZS5sYXp5Q29udGVudD9lLl9hbmltYXRpb25Eb25lLnBpcGUodWUoKHQ9PiJ2b2lkIj09PXQudG9TdGF0ZSkpLHZlKDEpLGplKGUubGF6eUNvbnRlbnQuX2F0dGFjaGVkKSkuc3Vic2NyaWJlKHtuZXh0OigpPT5lLmxhenlDb250ZW50LmRldGFjaCgpLGNvbXBsZXRlOigpPT50aGlzLl9zZXRJc01lbnVPcGVuKCExKX0pOnRoaXMuX3NldElzTWVudU9wZW4oITEpKToodGhpcy5fc2V0SXNNZW51T3BlbighMSksZS5sYXp5Q29udGVudCYmZS5sYXp5Q29udGVudC5kZXRhY2goKSl9X2luaXRNZW51KCl7dGhpcy5tZW51LnBhcmVudE1lbnU9dGhpcy50cmlnZ2Vyc1N1Ym1lbnUoKT90aGlzLl9wYXJlbnRNYXRlcmlhbE1lbnU6dm9pZCAwLHRoaXMubWVudS5kaXJlY3Rpb249dGhpcy5kaXIsdGhpcy5fc2V0TWVudUVsZXZhdGlvbigpLHRoaXMubWVudS5mb2N1c0ZpcnN0SXRlbSh0aGlzLl9vcGVuZWRCeXx8InByb2dyYW0iKSx0aGlzLl9zZXRJc01lbnVPcGVuKCEwKX1fc2V0TWVudUVsZXZhdGlvbigpe2lmKHRoaXMubWVudS5zZXRFbGV2YXRpb24pe2xldCB0PTAsZT10aGlzLm1lbnUucGFyZW50TWVudTtmb3IoO2U7KXQrKyxlPWUucGFyZW50TWVudTt0aGlzLm1lbnUuc2V0RWxldmF0aW9uKHQpfX1fc2V0SXNNZW51T3Blbih0KXt0aGlzLl9tZW51T3Blbj10LHRoaXMuX21lbnVPcGVuP3RoaXMubWVudU9wZW5lZC5lbWl0KCk6dGhpcy5tZW51Q2xvc2VkLmVtaXQoKSx0aGlzLnRyaWdnZXJzU3VibWVudSgpJiZ0aGlzLl9tZW51SXRlbUluc3RhbmNlLl9zZXRIaWdobGlnaHRlZCh0KX1fY2hlY2tNZW51KCl7dGhpcy5tZW51fHwidW5kZWZpbmVkIiE9dHlwZW9mIG5nRGV2TW9kZSYmIW5nRGV2TW9kZXx8KAovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KZnVuY3Rpb24gdCgpe3Rocm93IEVycm9yKCdtYXRNZW51VHJpZ2dlckZvcjogbXVzdCBwYXNzIGluIGFuIG1hdC1tZW51IGluc3RhbmNlLlxuXG4gICAgRXhhbXBsZTpcbiAgICAgIDxtYXQtbWVudSAjbWVudT0ibWF0TWVudSI+PC9tYXQtbWVudT5cbiAgICAgIDxidXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT0ibWVudSI+PC9idXR0b24+Jyl9KSgpfV9jcmVhdGVPdmVybGF5KCl7aWYoIXRoaXMuX292ZXJsYXlSZWYpe2NvbnN0IHQ9dGhpcy5fZ2V0T3ZlcmxheUNvbmZpZygpO3RoaXMuX3N1YnNjcmliZVRvUG9zaXRpb25zKHQucG9zaXRpb25TdHJhdGVneSksdGhpcy5fb3ZlcmxheVJlZj10aGlzLl9vdmVybGF5LmNyZWF0ZSh0KSx0aGlzLl9vdmVybGF5UmVmLmtleWRvd25FdmVudHMoKS5zdWJzY3JpYmUoKX1yZXR1cm4gdGhpcy5fb3ZlcmxheVJlZn1fZ2V0T3ZlcmxheUNvbmZpZygpe3JldHVybiBuZXcgd0Ioe3Bvc2l0aW9uU3RyYXRlZ3k6dGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5fZWxlbWVudCkud2l0aExvY2tlZFBvc2l0aW9uKCkud2l0aEdyb3dBZnRlck9wZW4oKS53aXRoVHJhbnNmb3JtT3JpZ2luT24oIi5tYXQtbWVudS1wYW5lbCwgLm1hdC1tZGMtbWVudS1wYW5lbCIpLGJhY2tkcm9wQ2xhc3M6dGhpcy5tZW51LmJhY2tkcm9wQ2xhc3N8fCJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCIscGFuZWxDbGFzczp0aGlzLm1lbnUub3ZlcmxheVBhbmVsQ2xhc3Msc2Nyb2xsU3RyYXRlZ3k6dGhpcy5fc2Nyb2xsU3RyYXRlZ3koKSxkaXJlY3Rpb246dGhpcy5fZGlyfSl9X3N1YnNjcmliZVRvUG9zaXRpb25zKHQpe3RoaXMubWVudS5zZXRQb3NpdGlvbkNsYXNzZXMmJnQucG9zaXRpb25DaGFuZ2VzLnN1YnNjcmliZSgodD0+e3RoaXMubWVudS5zZXRQb3NpdGlvbkNsYXNzZXMoInN0YXJ0Ij09PXQuY29ubmVjdGlvblBhaXIub3ZlcmxheVg/ImFmdGVyIjoiYmVmb3JlIiwidG9wIj09PXQuY29ubmVjdGlvblBhaXIub3ZlcmxheVk/ImJlbG93IjoiYWJvdmUiKX0pKX1fc2V0UG9zaXRpb24odCl7bGV0W2Usbl09ImJlZm9yZSI9PT10aGlzLm1lbnUueFBvc2l0aW9uP1siZW5kIiwic3RhcnQiXTpbInN0YXJ0IiwiZW5kIl0sW28saV09ImFib3ZlIj09PXRoaXMubWVudS55UG9zaXRpb24/WyJib3R0b20iLCJ0b3AiXTpbInRvcCIsImJvdHRvbSJdLFthLHJdPVtvLGldLFtzLGxdPVtlLG5dLGM9MDt0aGlzLnRyaWdnZXJzU3VibWVudSgpPyhsPWU9ImJlZm9yZSI9PT10aGlzLm1lbnUueFBvc2l0aW9uPyJzdGFydCI6ImVuZCIsbj1zPSJlbmQiPT09ZT8ic3RhcnQiOiJlbmQiLGM9ImJvdHRvbSI9PT1vPzg6LTgpOnRoaXMubWVudS5vdmVybGFwVHJpZ2dlcnx8KGE9InRvcCI9PT1vPyJib3R0b20iOiJ0b3AiLHI9InRvcCI9PT1pPyJib3R0b20iOiJ0b3AiKSx0LndpdGhQb3NpdGlvbnMoW3tvcmlnaW5YOmUsb3JpZ2luWTphLG92ZXJsYXlYOnMsb3ZlcmxheVk6byxvZmZzZXRZOmN9LHtvcmlnaW5YOm4sb3JpZ2luWTphLG92ZXJsYXlYOmwsb3ZlcmxheVk6byxvZmZzZXRZOmN9LHtvcmlnaW5YOmUsb3JpZ2luWTpyLG92ZXJsYXlYOnMsb3ZlcmxheVk6aSxvZmZzZXRZOi1jfSx7b3JpZ2luWDpuLG9yaWdpblk6cixvdmVybGF5WDpsLG92ZXJsYXlZOmksb2Zmc2V0WTotY31dKX1fbWVudUNsb3NpbmdBY3Rpb25zKCl7Y29uc3QgdD10aGlzLl9vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKSxlPXRoaXMuX292ZXJsYXlSZWYuZGV0YWNobWVudHMoKTtyZXR1cm4gcGUodCx0aGlzLl9wYXJlbnRNYXRlcmlhbE1lbnU/dGhpcy5fcGFyZW50TWF0ZXJpYWxNZW51LmNsb3NlZDp6dCgpLHRoaXMuX3BhcmVudE1hdGVyaWFsTWVudT90aGlzLl9wYXJlbnRNYXRlcmlhbE1lbnUuX2hvdmVyZWQoKS5waXBlKHVlKCh0PT50IT09dGhpcy5fbWVudUl0ZW1JbnN0YW5jZSkpLHVlKCgoKT0+dGhpcy5fbWVudU9wZW4pKSk6enQoKSxlKX1faGFuZGxlTW91c2Vkb3duKHQpe3RGKHQpfHwodGhpcy5fb3BlbmVkQnk9MD09PXQuYnV0dG9uPyJtb3VzZSI6dm9pZCAwLHRoaXMudHJpZ2dlcnNTdWJtZW51KCkmJnQucHJldmVudERlZmF1bHQoKSl9X2hhbmRsZUtleWRvd24odCl7Y29uc3QgZT10LmtleUNvZGU7ZSE9PVhJJiZlIT09Skl8fCh0aGlzLl9vcGVuZWRCeT0ia2V5Ym9hcmQiKSx0aGlzLnRyaWdnZXJzU3VibWVudSgpJiYoMzk9PT1lJiYibHRyIj09PXRoaXMuZGlyfHwzNz09PWUmJiJydGwiPT09dGhpcy5kaXIpJiYodGhpcy5fb3BlbmVkQnk9ImtleWJvYXJkIix0aGlzLm9wZW5NZW51KCkpfV9oYW5kbGVDbGljayh0KXt0aGlzLnRyaWdnZXJzU3VibWVudSgpPyh0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMub3Blbk1lbnUoKSk6dGhpcy50b2dnbGVNZW51KCl9X2hhbmRsZUhvdmVyKCl7dGhpcy50cmlnZ2Vyc1N1Ym1lbnUoKSYmdGhpcy5fcGFyZW50TWF0ZXJpYWxNZW51JiYodGhpcy5faG92ZXJTdWJzY3JpcHRpb249dGhpcy5fcGFyZW50TWF0ZXJpYWxNZW51Ll9ob3ZlcmVkKCkucGlwZSh1ZSgodD0+dD09PXRoaXMuX21lbnVJdGVtSW5zdGFuY2UmJiF0LmRpc2FibGVkKSksUGUoMCxvdCkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLl9vcGVuZWRCeT0ibW91c2UiLHRoaXMubWVudSBpbnN0YW5jZW9mIFZxJiZ0aGlzLm1lbnUuX2lzQW5pbWF0aW5nP3RoaXMubWVudS5fYW5pbWF0aW9uRG9uZS5waXBlKHZlKDEpLFBlKDAsb3QpLGplKHRoaXMuX3BhcmVudE1hdGVyaWFsTWVudS5faG92ZXJlZCgpKSkuc3Vic2NyaWJlKCgoKT0+dGhpcy5vcGVuTWVudSgpKSk6dGhpcy5vcGVuTWVudSgpfSkpKX1fZ2V0UG9ydGFsKCl7cmV0dXJuIHRoaXMuX3BvcnRhbCYmdGhpcy5fcG9ydGFsLnRlbXBsYXRlUmVmPT09dGhpcy5tZW51LnRlbXBsYXRlUmVmfHwodGhpcy5fcG9ydGFsPW5ldyBsQih0aGlzLm1lbnUudGVtcGxhdGVSZWYsdGhpcy5fdmlld0NvbnRhaW5lclJlZikpLHRoaXMuX3BvcnRhbH19cXEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHFxKShnZihLQiksZ2YoS2gpLGdmKEZiKSxnZihVcSksZ2YoenEsOCksZ2YoSHEsMTApLGdmKHZGLDgpLGdmKGZGKSl9LHFxLsm1ZGlyPWhvKHt0eXBlOnFxLHNlbGVjdG9yczpbWyIiLCJtYXQtbWVudS10cmlnZ2VyLWZvciIsIiJdLFsiIiwibWF0TWVudVRyaWdnZXJGb3IiLCIiXV0saG9zdEF0dHJzOlsiYXJpYS1oYXNwb3B1cCIsInRydWUiLDEsIm1hdC1tZW51LXRyaWdnZXIiXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZSZigibW91c2Vkb3duIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5faGFuZGxlTW91c2Vkb3duKGUpfSkpKCJrZXlkb3duIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5faGFuZGxlS2V5ZG93bihlKX0pKSgiY2xpY2siLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9oYW5kbGVDbGljayhlKX0pKSwyJmUmJnltKCJhcmlhLWV4cGFuZGVkIixuLm1lbnVPcGVufHxudWxsKSgiYXJpYS1jb250cm9scyIsbi5tZW51T3Blbj9uLm1lbnUucGFuZWxJZDpudWxsKX0saW5wdXRzOntyZXN0b3JlRm9jdXM6WyJtYXRNZW51VHJpZ2dlclJlc3RvcmVGb2N1cyIsInJlc3RvcmVGb2N1cyJdLF9kZXByZWNhdGVkTWF0TWVudVRyaWdnZXJGb3I6WyJtYXQtbWVudS10cmlnZ2VyLWZvciIsIl9kZXByZWNhdGVkTWF0TWVudVRyaWdnZXJGb3IiXSxtZW51OlsibWF0TWVudVRyaWdnZXJGb3IiLCJtZW51Il0sbWVudURhdGE6WyJtYXRNZW51VHJpZ2dlckRhdGEiLCJtZW51RGF0YSJdfSxvdXRwdXRzOnttZW51T3BlbmVkOiJtZW51T3BlbmVkIixvbk1lbnVPcGVuOiJvbk1lbnVPcGVuIixtZW51Q2xvc2VkOiJtZW51Q2xvc2VkIixvbk1lbnVDbG9zZToib25NZW51Q2xvc2UifSxleHBvcnRBczpbIm1hdE1lbnVUcmlnZ2VyIl19KSxxcS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOktCfSx7dHlwZTpLaH0se3R5cGU6RmJ9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltVcV19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3pxXX0se3R5cGU6QnJ9XX0se3R5cGU6SHEsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfV19LHt0eXBlOnZGLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOmZGfV0scXEucHJvcERlY29yYXRvcnM9e19kZXByZWNhdGVkTWF0TWVudVRyaWdnZXJGb3I6W3t0eXBlOlJfLGFyZ3M6WyJtYXQtbWVudS10cmlnZ2VyLWZvciJdfV0sbWVudTpbe3R5cGU6Ul8sYXJnczpbIm1hdE1lbnVUcmlnZ2VyRm9yIl19XSxtZW51RGF0YTpbe3R5cGU6Ul8sYXJnczpbIm1hdE1lbnVUcmlnZ2VyRGF0YSJdfV0scmVzdG9yZUZvY3VzOlt7dHlwZTpSXyxhcmdzOlsibWF0TWVudVRyaWdnZXJSZXN0b3JlRm9jdXMiXX1dLG1lbnVPcGVuZWQ6W3t0eXBlOkVffV0sb25NZW51T3Blbjpbe3R5cGU6RV99XSxtZW51Q2xvc2VkOlt7dHlwZTpFX31dLG9uTWVudUNsb3NlOlt7dHlwZTpFX31dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHFxLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IlttYXQtbWVudS10cmlnZ2VyLWZvcl0sIFttYXRNZW51VHJpZ2dlckZvcl0iLGhvc3Q6e2NsYXNzOiJtYXQtbWVudS10cmlnZ2VyIiwiYXJpYS1oYXNwb3B1cCI6InRydWUiLCJbYXR0ci5hcmlhLWV4cGFuZGVkXSI6Im1lbnVPcGVuIHx8IG51bGwiLCJbYXR0ci5hcmlhLWNvbnRyb2xzXSI6Im1lbnVPcGVuID8gbWVudS5wYW5lbElkIDogbnVsbCIsIihtb3VzZWRvd24pIjoiX2hhbmRsZU1vdXNlZG93bigkZXZlbnQpIiwiKGtleWRvd24pIjoiX2hhbmRsZUtleWRvd24oJGV2ZW50KSIsIihjbGljaykiOiJfaGFuZGxlQ2xpY2soJGV2ZW50KSJ9LGV4cG9ydEFzOiJtYXRNZW51VHJpZ2dlciJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpLQn0se3R5cGU6S2h9LHt0eXBlOkZifSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbVXFdfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOlt6cV19LHt0eXBlOkJyfV19LHt0eXBlOkhxLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpWcn1dfSx7dHlwZTp2RixkZWNvcmF0b3JzOlt7dHlwZTpCcn1dfSx7dHlwZTpmRn1dfSkse3Jlc3RvcmVGb2N1czpbe3R5cGU6Ul8sYXJnczpbIm1hdE1lbnVUcmlnZ2VyUmVzdG9yZUZvY3VzIl19XSxtZW51T3BlbmVkOlt7dHlwZTpFX31dLG9uTWVudU9wZW46W3t0eXBlOkVffV0sbWVudUNsb3NlZDpbe3R5cGU6RV99XSxvbk1lbnVDbG9zZTpbe3R5cGU6RV99XSxfZGVwcmVjYXRlZE1hdE1lbnVUcmlnZ2VyRm9yOlt7dHlwZTpSXyxhcmdzOlsibWF0LW1lbnUtdHJpZ2dlci1mb3IiXX1dLG1lbnU6W3t0eXBlOlJfLGFyZ3M6WyJtYXRNZW51VHJpZ2dlckZvciJdfV0sbWVudURhdGE6W3t0eXBlOlJfLGFyZ3M6WyJtYXRNZW51VHJpZ2dlckRhdGEiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBacXt9WnEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFpxKX0sWnEuybVtb2Q9Zm8oe3R5cGU6WnF9KSxacS7JtWluaj1Ebih7cHJvdmlkZXJzOltXcV0saW1wb3J0czpbTkZdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihacSxbe3R5cGU6TF8sYXJnczpbe2V4cG9ydHM6W3FxLE5xLE5GXSxkZWNsYXJhdGlvbnM6W3FxLE5xXSxwcm92aWRlcnM6W1dxXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKFpxLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bcXEsTnFdfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW3FxLE5xLE5GXX19KTtjbGFzcyBYcXt9ZnVuY3Rpb24gS3EodCxlKXsxJnQmJnZmKDAsIm1hdC1pY29uIiw4KX1mdW5jdGlvbiBKcSh0LGUpezEmdCYmdmYoMCwibWF0LWljb24iLDkpfWZ1bmN0aW9uIFFxKHQsZSl7MSZ0JiZ2ZigwLCJtYXQtaWNvbiIsMTApfXZhciAkcTtYcS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WHEpfSxYcS7JtW1vZD1mbyh7dHlwZTpYcX0pLFhxLsm1aW5qPURuKHtwcm92aWRlcnM6W1dxXSxpbXBvcnRzOltbcngsTkYsZkwsb1YsWnFdLG9CLE5GLFpxXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoWHEsW3t0eXBlOkxfLGFyZ3M6W3tpbXBvcnRzOltyeCxORixmTCxvVixacV0sZXhwb3J0czpbb0IsTkYsanEsSHEsWnFdLGRlY2xhcmF0aW9uczpbanEsSHFdLHByb3ZpZGVyczpbV3FdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oWHEse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVybltqcSxIcV19LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bcngsTkYsZkwsb1YsWnFdfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW29CLE5GLGpxLEhxLFpxXX19KSwoZnVuY3Rpb24odCl7dFt0LkRFRkFVTFQ9MF09IkRFRkFVTFQiLHRbdC5EQVJLX01PREVfT049MV09IkRBUktfTU9ERV9PTiIsdFt0LkRBUktfTU9ERV9PRkY9Ml09IkRBUktfTU9ERV9PRkYifSkoJHF8fCgkcT17fSkpO2NsYXNzIHRae2NvbnN0cnVjdG9yKCl7dGhpcy5EYXJrTW9kZU92ZXJyaWRlPSRxLHRoaXMub25PdmVycmlkZUNoYW5nZWQ9bmV3IFN5fWdldEJ1dHRvblRpdGxlKCl7bGV0IHQ7c3dpdGNoKHRoaXMuZGFya01vZGVPdmVycmlkZSl7Y2FzZSAkcS5ERUZBVUxUOnQ9IkJyb3dzZXIgZGVmYXVsdCI7YnJlYWs7Y2FzZSAkcS5EQVJLX01PREVfT046dD0iRGFyayBtb2RlIjticmVhaztjYXNlICRxLkRBUktfTU9ERV9PRkY6dD0iTGlnaHQgbW9kZSJ9cmV0dXJuYEN1cnJlbnQgbW9kZTogWyR7dH1dLiBTd2l0Y2ggYmV0d2VlbiBicm93c2VyIGRlZmF1bHQsIGxpZ2h0LCBvciBkYXJrIHRoZW1lLmB9fXRaLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx0Wil9LHRaLsm1Y21wPXNvKHt0eXBlOnRaLHNlbGVjdG9yczpbWyJhcHAtaGVhZGVyLWRhcmstbW9kZS10b2dnbGUtY29tcG9uZW50Il1dLGlucHV0czp7ZGFya01vZGVPdmVycmlkZToiZGFya01vZGVPdmVycmlkZSJ9LG91dHB1dHM6e29uT3ZlcnJpZGVDaGFuZ2VkOiJvbk92ZXJyaWRlQ2hhbmdlZCJ9LGRlY2xzOjE1LHZhcnM6Nixjb25zdHM6W1sibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsIk1lbnUgZm9yIGNoYW5naW5nIGxpZ2h0IG9yIGRhcmsgdGhlbWUiLDMsIm1hdE1lbnVUcmlnZ2VyRm9yIiwibmdTd2l0Y2giLCJ0aXRsZSJdLFsic3ZnSWNvbiIsImJyaWdodG5lc3NfNl8yNHB4Iiw0LCJuZ1N3aXRjaENhc2UiXSxbInN2Z0ljb24iLCJsaWdodF9tb2RlXzI0cHgiLDQsIm5nU3dpdGNoQ2FzZSJdLFsic3ZnSWNvbiIsImRhcmtfbW9kZV8yNHB4Iiw0LCJuZ1N3aXRjaENhc2UiXSxbIm1lbnUiLCJtYXRNZW51Il0sWyJtYXQtbWVudS1pdGVtIiwiIiwidGl0bGUiLCJTZXQgdGhlIHRoZW1lIHRvIG1hdGNoIHRoZSBkZWZhdWx0IG1vZGUgaW4gdGhlIGJyb3dzZXIuIiwzLCJjbGljayJdLFsibWF0LW1lbnUtaXRlbSIsIiIsInRpdGxlIiwiRm9yY2UgbGlnaHQgVGVuc29yQm9hcmQgdGhlbWUuIiwzLCJjbGljayJdLFsibWF0LW1lbnUtaXRlbSIsIiIsInRpdGxlIiwiRm9yY2UgZGFyayBUZW5zb3JCb2FyZCB0aGVtZS4iLDMsImNsaWNrIl0sWyJzdmdJY29uIiwiYnJpZ2h0bmVzc182XzI0cHgiXSxbInN2Z0ljb24iLCJsaWdodF9tb2RlXzI0cHgiXSxbInN2Z0ljb24iLCJkYXJrX21vZGVfMjRweCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoQ2YoMCwiYnV0dG9uIiwwKSxIbSgxLEtxLDEsMCwibWF0LWljb24iLDEpLEhtKDIsSnEsMSwwLCJtYXQtaWNvbiIsMiksSG0oMyxRcSwxLDAsIm1hdC1pY29uIiwzKSxNZigpLENmKDQsIm1hdC1tZW51IixudWxsLDQpLENmKDYsImJ1dHRvbiIsNSksUmYoImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uT3ZlcnJpZGVDaGFuZ2VkLmVtaXQobi5EYXJrTW9kZU92ZXJyaWRlLkRFRkFVTFQpfSkpLENmKDcsImxhYmVsIiksUHUoOCwiQnJvd3NlciBkZWZhdWx0IiksTWYoKSxNZigpLENmKDksImJ1dHRvbiIsNiksUmYoImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uT3ZlcnJpZGVDaGFuZ2VkLmVtaXQobi5EYXJrTW9kZU92ZXJyaWRlLkRBUktfTU9ERV9PRkYpfSkpLENmKDEwLCJsYWJlbCIpLFB1KDExLCJMaWdodCIpLE1mKCksTWYoKSxDZigxMiwiYnV0dG9uIiw3KSxSZigiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25PdmVycmlkZUNoYW5nZWQuZW1pdChuLkRhcmtNb2RlT3ZlcnJpZGUuREFSS19NT0RFX09OKX0pKSxDZigxMywibGFiZWwiKSxQdSgxNCwiRGFyayIpLE1mKCksTWYoKSxNZigpKSwyJmUpe2JmKCJtYXRNZW51VHJpZ2dlckZvciIsRm0oNSkpKCJuZ1N3aXRjaCIsbi5kYXJrTW9kZU92ZXJyaWRlKSgidGl0bGUiLG4uZ2V0QnV0dG9uVGl0bGUoKSksRGMoMSksYmYoIm5nU3dpdGNoQ2FzZSIsbi5EYXJrTW9kZU92ZXJyaWRlLkRFRkFVTFQpLERjKDEpLGJmKCJuZ1N3aXRjaENhc2UiLG4uRGFya01vZGVPdmVycmlkZS5EQVJLX01PREVfT0ZGKSxEYygxKSxiZigibmdTd2l0Y2hDYXNlIixuLkRhcmtNb2RlT3ZlcnJpZGUuREFSS19NT0RFX09OKX19LGRpcmVjdGl2ZXM6W05MLHFxLER2LFJ2LGpxLEhxLE1xXSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHRaLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6ImFwcC1oZWFkZXItZGFyay1tb2RlLXRvZ2dsZS1jb21wb25lbnQiLHRlbXBsYXRlOidcbiAgICA8YnV0dG9uXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09Im1lbnUiXG4gICAgICBhcmlhLWxhYmVsPSJNZW51IGZvciBjaGFuZ2luZyBsaWdodCBvciBkYXJrIHRoZW1lIlxuICAgICAgW25nU3dpdGNoXT0iZGFya01vZGVPdmVycmlkZSJcbiAgICAgIFt0aXRsZV09ImdldEJ1dHRvblRpdGxlKCkiXG4gICAgPlxuICAgICAgPG1hdC1pY29uXG4gICAgICAgICpuZ1N3aXRjaENhc2U9IkRhcmtNb2RlT3ZlcnJpZGUuREVGQVVMVCJcbiAgICAgICAgc3ZnSWNvbj0iYnJpZ2h0bmVzc182XzI0cHgiXG4gICAgICA+PC9tYXQtaWNvbj5cbiAgICAgIDxtYXQtaWNvblxuICAgICAgICAqbmdTd2l0Y2hDYXNlPSJEYXJrTW9kZU92ZXJyaWRlLkRBUktfTU9ERV9PRkYiXG4gICAgICAgIHN2Z0ljb249ImxpZ2h0X21vZGVfMjRweCJcbiAgICAgID48L21hdC1pY29uPlxuICAgICAgPG1hdC1pY29uXG4gICAgICAgICpuZ1N3aXRjaENhc2U9IkRhcmtNb2RlT3ZlcnJpZGUuREFSS19NT0RFX09OIlxuICAgICAgICBzdmdJY29uPSJkYXJrX21vZGVfMjRweCJcbiAgICAgID48L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxtYXQtbWVudSAjbWVudT0ibWF0TWVudSI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgdGl0bGU9IlNldCB0aGUgdGhlbWUgdG8gbWF0Y2ggdGhlIGRlZmF1bHQgbW9kZSBpbiB0aGUgYnJvd3Nlci4iXG4gICAgICAgIChjbGljayk9Im9uT3ZlcnJpZGVDaGFuZ2VkLmVtaXQoRGFya01vZGVPdmVycmlkZS5ERUZBVUxUKSJcbiAgICAgID5cbiAgICAgICAgPGxhYmVsPkJyb3dzZXIgZGVmYXVsdDwvbGFiZWw+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICB0aXRsZT0iRm9yY2UgbGlnaHQgVGVuc29yQm9hcmQgdGhlbWUuIlxuICAgICAgICAoY2xpY2spPSJvbk92ZXJyaWRlQ2hhbmdlZC5lbWl0KERhcmtNb2RlT3ZlcnJpZGUuREFSS19NT0RFX09GRikiXG4gICAgICA+XG4gICAgICAgIDxsYWJlbD5MaWdodDwvbGFiZWw+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICB0aXRsZT0iRm9yY2UgZGFyayBUZW5zb3JCb2FyZCB0aGVtZS4iXG4gICAgICAgIChjbGljayk9Im9uT3ZlcnJpZGVDaGFuZ2VkLmVtaXQoRGFya01vZGVPdmVycmlkZS5EQVJLX01PREVfT04pIlxuICAgICAgPlxuICAgICAgICA8bGFiZWw+RGFyazwvbGFiZWw+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L21hdC1tZW51PlxuICAnfV19XSxudWxsLHtkYXJrTW9kZU92ZXJyaWRlOlt7dHlwZTpSX31dLG9uT3ZlcnJpZGVDaGFuZ2VkOlt7dHlwZTpFX31dfSk7Y2xhc3MgZVp7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMuZGFya01vZGVPdmVycmlkZSQ9dGhpcy5zdG9yZS5zZWxlY3QoTEQpLnBpcGUoVnQoKHQ9Pm51bGw9PT10PyRxLkRFRkFVTFQ6dD8kcS5EQVJLX01PREVfT046JHEuREFSS19NT0RFX09GRikpKX1jaGFuZ2VEYXJrTW9kZSh0KXtsZXQgZT1udWxsO3N3aXRjaCh0KXtjYXNlICRxLkRFRkFVTFQ6ZT1udWxsO2JyZWFrO2Nhc2UgJHEuREFSS19NT0RFX09GRjplPSExO2JyZWFrO2Nhc2UgJHEuREFSS19NT0RFX09OOmU9ITB9dGhpcy5zdG9yZS5kaXNwYXRjaChrTih7ZW5hYmxlRGFya01vZGU6ZX0pKX19ZVouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGVaKShnZihpUykpfSxlWi7JtWNtcD1zbyh7dHlwZTplWixzZWxlY3RvcnM6W1siYXBwLWhlYWRlci1kYXJrLW1vZGUtdG9nZ2xlIl1dLGRlY2xzOjIsdmFyczozLGNvbnN0czpbWzMsImRhcmtNb2RlT3ZlcnJpZGUiLCJvbk92ZXJyaWRlQ2hhbmdlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwiYXBwLWhlYWRlci1kYXJrLW1vZGUtdG9nZ2xlLWNvbXBvbmVudCIsMCksUmYoIm9uT3ZlcnJpZGVDaGFuZ2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5jaGFuZ2VEYXJrTW9kZShlKX0pKSxfeSgxLCJhc3luYyIpLE1mKCkpLDImZSYmYmYoImRhcmtNb2RlT3ZlcnJpZGUiLEN5KDEsMSxuLmRhcmtNb2RlT3ZlcnJpZGUkKSl9LGRpcmVjdGl2ZXM6W3RaXSxwaXBlczpbVnZdLGVuY2Fwc3VsYXRpb246Mn0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZVosW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoiYXBwLWhlYWRlci1kYXJrLW1vZGUtdG9nZ2xlIix0ZW1wbGF0ZTonXG4gICAgPGFwcC1oZWFkZXItZGFyay1tb2RlLXRvZ2dsZS1jb21wb25lbnRcbiAgICAgIFtkYXJrTW9kZU92ZXJyaWRlXT0iZGFya01vZGVPdmVycmlkZSQgfCBhc3luYyJcbiAgICAgIChvbk92ZXJyaWRlQ2hhbmdlZCk9ImNoYW5nZURhcmtNb2RlKCRldmVudCkiXG4gICAgPlxuICAgIDwvYXBwLWhlYWRlci1kYXJrLW1vZGUtdG9nZ2xlLWNvbXBvbmVudD5cbiAgJ31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfV19KSxudWxsKTtjb25zdCBuWj1iUyhuVCxlVCwoKHQsZSk9PiEoIWV8fCF0W2VdKSYmdFtlXS5kaXNhYmxlX3JlbG9hZCkpO2NsYXNzIG9ae2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLnJlbG9hZERpc2FibGVkJD10aGlzLnN0b3JlLnNlbGVjdChuWiksdGhpcy5pc1JlbG9hZGluZyQ9dGhpcy5zdG9yZS5zZWxlY3QoJEEpLnBpcGUoX2UodGhpcy5yZWxvYWREaXNhYmxlZCQpLFZ0KCgoW3QsZV0pPT4hZSYmdD09PVVFLkxPQURJTkcpKSksdGhpcy5sYXN0TG9hZGVkVGltZUluTXMkPXRoaXMuc3RvcmUuc2VsZWN0KHRUKX10cmlnZ2VyUmVsb2FkKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChKRSgpKX1nZXRSZWxvYWRUaXRsZSh0KXtyZXR1cm4gdD9gTGFzdCBVcGRhdGVkOiAke3R9YDoiTG9hZGluZy4uLiJ9fWZ1bmN0aW9uIGlaKHQpe3JldHVybiB0LnN0YXRlIT09VUUuTk9UX0xPQURFRCYmdC5zdGF0ZSE9PVVFLkxPQURJTkd9b1ouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG9aKShnZihpUykpfSxvWi7JtWNtcD1zbyh7dHlwZTpvWixzZWxlY3RvcnM6W1siYXBwLWhlYWRlci1yZWxvYWQiXV0sZGVjbHM6Nix2YXJzOjEzLGNvbnN0czpbWyJtYXQtaWNvbi1idXR0b24iLCIiLDEsInJlbG9hZC1idXR0b24iLDMsInRpdGxlIiwiZGlzYWJsZWQiLCJjbGljayJdLFsic3ZnSWNvbiIsInJlZnJlc2hfMjRweCIsMSwicmVmcmVzaC1pY29uIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJidXR0b24iLDApLFJmKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi50cmlnZ2VyUmVsb2FkKCl9KSksX3koMSwiYXN5bmMiKSxfeSgyLCJkYXRlIiksX3koMywiYXN5bmMiKSxfeSg0LCJhc3luYyIpLHZmKDUsIm1hdC1pY29uIiwxKSxNZigpKSwyJmUmJihjdSgibG9hZGluZyIsQ3koMSw0LG4uaXNSZWxvYWRpbmckKSksYmYoInRpdGxlIixuLmdldFJlbG9hZFRpdGxlKE15KDIsNixDeSgzLDksbi5sYXN0TG9hZGVkVGltZUluTXMkKSwibWVkaXVtIikpKSgiZGlzYWJsZWQiLEN5KDQsMTEsbi5yZWxvYWREaXNhYmxlZCQpKSl9LGRpcmVjdGl2ZXM6W05MLE1xXSxwaXBlczpbVnYsWXZdLHN0eWxlczpbIi5yZWxvYWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLnJlZnJlc2gtaWNvbltfbmdjb250ZW50LSVDT01QJV0ge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLnJlbG9hZC1idXR0b24ubG9hZGluZ1tfbmdjb250ZW50LSVDT01QJV0ge1xuICAgICAgICBhbmltYXRpb246IHJvdGF0ZSAycyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgcm90YXRlIHtcbiAgICAgICAgMCUge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICB9XG4gICAgICAgIDUwJSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgfVxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICB9XG4gICAgICB9Il19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKG9aLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6ImFwcC1oZWFkZXItcmVsb2FkIix0ZW1wbGF0ZTonXG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9InJlbG9hZC1idXR0b24iXG4gICAgICBbY2xhc3MubG9hZGluZ109ImlzUmVsb2FkaW5nJCB8IGFzeW5jIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAoY2xpY2spPSJ0cmlnZ2VyUmVsb2FkKCkiXG4gICAgICBbdGl0bGVdPSJnZXRSZWxvYWRUaXRsZShsYXN0TG9hZGVkVGltZUluTXMkIHwgYXN5bmMgfCBkYXRlOiBcJ21lZGl1bVwnKSJcbiAgICAgIFtkaXNhYmxlZF09InJlbG9hZERpc2FibGVkJCB8IGFzeW5jIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz0icmVmcmVzaC1pY29uIiBzdmdJY29uPSJyZWZyZXNoXzI0cHgiPjwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gICcsc3R5bGVzOlsiXG4gICAgICAucmVsb2FkLWJ1dHRvbixcbiAgICAgIC5yZWZyZXNoLWljb24ge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLnJlbG9hZC1idXR0b24ubG9hZGluZyB7XG4gICAgICAgIGFuaW1hdGlvbjogcm90YXRlIDJzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyByb3RhdGUge1xuICAgICAgICAwJSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIH1cbiAgICAgICAgNTAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICB9XG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAiXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfV19KSxudWxsKTtjb25zdCBhWj0zZTQsclo9VlMocEksQlMoc0ksKHQ9PmlaKHQpP09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2V0dGluZ3M6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ3MpLHtyZWxvYWRFbmFibGVkOiF0LnNldHRpbmdzLnJlbG9hZEVuYWJsZWR9KX0pOnQpKSxCUyhsSSwoKHQse3BlcmlvZEluTXM6ZX0pPT57aWYoIWlaKHQpKXJldHVybiB0O2NvbnN0IG49ZT49YVo/ZTp0LnNldHRpbmdzLnJlbG9hZFBlcmlvZEluTXM7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2V0dGluZ3M6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ3MpLHtyZWxvYWRQZXJpb2RJbk1zOm59KX0pfSkpLEJTKGNJLCgodCx7c2l6ZTplfSk9PntpZighaVoodCkpcmV0dXJuIHQ7Y29uc3Qgbj1lPjA/ZTp0LnNldHRpbmdzLnBhZ2VTaXplO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NldHRpbmdzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdzKSx7cGFnZVNpemU6bn0pfSl9KSksQlMocVIsKCh0LHtwYXJ0aWFsU2V0dGluZ3M6ZX0pPT57Y29uc3Qgbj17fTtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKGUucGFnZVNpemUpJiZlLnBhZ2VTaXplPjAmJihuLnBhZ2VTaXplPU51bWJlcihlLnBhZ2VTaXplKSksImJvb2xlYW4iPT10eXBlb2YgZS5hdXRvUmVsb2FkJiYobi5yZWxvYWRFbmFibGVkPWUuYXV0b1JlbG9hZCksTnVtYmVyLmlzRmluaXRlKGUuYXV0b1JlbG9hZFBlcmlvZEluTXMpJiZlLmF1dG9SZWxvYWRQZXJpb2RJbk1zPmFaJiYobi5yZWxvYWRQZXJpb2RJbk1zPU51bWJlcihlLmF1dG9SZWxvYWRQZXJpb2RJbk1zKSksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZXR0aW5nczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5ncyksbil9KX0pKSk7ZnVuY3Rpb24gc1oodCxlKXtyZXR1cm4gcloodCxlKX1jb25zdCBsWj1bImlucHV0Il0sY1o9ZnVuY3Rpb24odCl7cmV0dXJue2VudGVyRHVyYXRpb246dH19LGRaPW5ldyBlcigibWF0LWNoZWNrYm94LWRlZmF1bHQtb3B0aW9ucyIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6cFp9KTtmdW5jdGlvbiBwWigpe3JldHVybntjb2xvcjoiYWNjZW50IixjbGlja0FjdGlvbjoiY2hlY2staW5kZXRlcm1pbmF0ZSJ9fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9sZXQgbVo9MDtjb25zdCBmWj17Y29sb3I6ImFjY2VudCIsY2xpY2tBY3Rpb246ImNoZWNrLWluZGV0ZXJtaW5hdGUifSx1Wj17cHJvdmlkZTp4VSx1c2VFeGlzdGluZzokZSgoKCk9PmJaKSksbXVsdGk6ITB9O2NsYXNzIGdae31jb25zdCBoWj1GRihJRihIRih6RihjbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLl9lbGVtZW50UmVmPXR9fSkpKSk7Y2xhc3MgYlogZXh0ZW5kcyBoWntjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyKXtzdXBlcih0KSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj1lLHRoaXMuX2ZvY3VzTW9uaXRvcj1uLHRoaXMuX25nWm9uZT1vLHRoaXMuX2FuaW1hdGlvbk1vZGU9YSx0aGlzLl9vcHRpb25zPXIsdGhpcy5hcmlhTGFiZWw9IiIsdGhpcy5hcmlhTGFiZWxsZWRieT1udWxsLHRoaXMuX3VuaXF1ZUlkPSJtYXQtY2hlY2tib3gtIisgKyttWix0aGlzLmlkPXRoaXMuX3VuaXF1ZUlkLHRoaXMubGFiZWxQb3NpdGlvbj0iYWZ0ZXIiLHRoaXMubmFtZT1udWxsLHRoaXMuY2hhbmdlPW5ldyBTeSx0aGlzLmluZGV0ZXJtaW5hdGVDaGFuZ2U9bmV3IFN5LHRoaXMuX29uVG91Y2hlZD0oKT0+e30sdGhpcy5fY3VycmVudEFuaW1hdGlvbkNsYXNzPSIiLHRoaXMuX2N1cnJlbnRDaGVja1N0YXRlPTAsdGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbj0oKT0+e30sdGhpcy5fY2hlY2tlZD0hMSx0aGlzLl9kaXNhYmxlZD0hMSx0aGlzLl9pbmRldGVybWluYXRlPSExLHRoaXMuX29wdGlvbnM9dGhpcy5fb3B0aW9uc3x8ZlosdGhpcy5jb2xvcj10aGlzLmRlZmF1bHRDb2xvcj10aGlzLl9vcHRpb25zLmNvbG9yfHxmWi5jb2xvcix0aGlzLnRhYkluZGV4PXBhcnNlSW50KGkpfHwwfWdldCBpbnB1dElkKCl7cmV0dXJuYCR7dGhpcy5pZHx8dGhpcy5fdW5pcXVlSWR9LWlucHV0YH1nZXQgcmVxdWlyZWQoKXtyZXR1cm4gdGhpcy5fcmVxdWlyZWR9c2V0IHJlcXVpcmVkKHQpe3RoaXMuX3JlcXVpcmVkPWVIKHQpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsZW1lbnRSZWYsITApLnN1YnNjcmliZSgodD0+e3R8fFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCgpPT57dGhpcy5fb25Ub3VjaGVkKCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9KSl9KSksdGhpcy5fc3luY0luZGV0ZXJtaW5hdGUodGhpcy5faW5kZXRlcm1pbmF0ZSl9bmdBZnRlclZpZXdDaGVja2VkKCl7fW5nT25EZXN0cm95KCl7dGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYpfWdldCBjaGVja2VkKCl7cmV0dXJuIHRoaXMuX2NoZWNrZWR9c2V0IGNoZWNrZWQodCl7dCE9dGhpcy5jaGVja2VkJiYodGhpcy5fY2hlY2tlZD10LHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX1nZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5fZGlzYWJsZWR9c2V0IGRpc2FibGVkKHQpe2NvbnN0IGU9ZUgodCk7ZSE9PXRoaXMuZGlzYWJsZWQmJih0aGlzLl9kaXNhYmxlZD1lLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX1nZXQgaW5kZXRlcm1pbmF0ZSgpe3JldHVybiB0aGlzLl9pbmRldGVybWluYXRlfXNldCBpbmRldGVybWluYXRlKHQpe2NvbnN0IGU9dCE9dGhpcy5faW5kZXRlcm1pbmF0ZTt0aGlzLl9pbmRldGVybWluYXRlPWVIKHQpLGUmJih0aGlzLl90cmFuc2l0aW9uQ2hlY2tTdGF0ZSh0aGlzLl9pbmRldGVybWluYXRlPzM6dGhpcy5jaGVja2VkPzE6MiksdGhpcy5pbmRldGVybWluYXRlQ2hhbmdlLmVtaXQodGhpcy5faW5kZXRlcm1pbmF0ZSkpLHRoaXMuX3N5bmNJbmRldGVybWluYXRlKHRoaXMuX2luZGV0ZXJtaW5hdGUpfV9pc1JpcHBsZURpc2FibGVkKCl7cmV0dXJuIHRoaXMuZGlzYWJsZVJpcHBsZXx8dGhpcy5kaXNhYmxlZH1fb25MYWJlbFRleHRDaGFuZ2UoKXt0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCl9d3JpdGVWYWx1ZSh0KXt0aGlzLmNoZWNrZWQ9ISF0fXJlZ2lzdGVyT25DaGFuZ2UodCl7dGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbj10fXJlZ2lzdGVyT25Ub3VjaGVkKHQpe3RoaXMuX29uVG91Y2hlZD10fXNldERpc2FibGVkU3RhdGUodCl7dGhpcy5kaXNhYmxlZD10fV9nZXRBcmlhQ2hlY2tlZCgpe3JldHVybiB0aGlzLmNoZWNrZWQ/InRydWUiOnRoaXMuaW5kZXRlcm1pbmF0ZT8ibWl4ZWQiOiJmYWxzZSJ9X3RyYW5zaXRpb25DaGVja1N0YXRlKHQpe2xldCBlPXRoaXMuX2N1cnJlbnRDaGVja1N0YXRlLG49dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O2lmKGUhPT10JiYodGhpcy5fY3VycmVudEFuaW1hdGlvbkNsYXNzLmxlbmd0aD4wJiZuLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5fY3VycmVudEFuaW1hdGlvbkNsYXNzKSx0aGlzLl9jdXJyZW50QW5pbWF0aW9uQ2xhc3M9dGhpcy5fZ2V0QW5pbWF0aW9uQ2xhc3NGb3JDaGVja1N0YXRlVHJhbnNpdGlvbihlLHQpLHRoaXMuX2N1cnJlbnRDaGVja1N0YXRlPXQsdGhpcy5fY3VycmVudEFuaW1hdGlvbkNsYXNzLmxlbmd0aD4wKSl7bi5jbGFzc0xpc3QuYWRkKHRoaXMuX2N1cnJlbnRBbmltYXRpb25DbGFzcyk7Y29uc3QgdD10aGlzLl9jdXJyZW50QW5pbWF0aW9uQ2xhc3M7dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e3NldFRpbWVvdXQoKCgpPT57bi5jbGFzc0xpc3QucmVtb3ZlKHQpfSksMWUzKX0pKX19X2VtaXRDaGFuZ2VFdmVudCgpe2NvbnN0IHQ9bmV3IGdaO3Quc291cmNlPXRoaXMsdC5jaGVja2VkPXRoaXMuY2hlY2tlZCx0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuKHRoaXMuY2hlY2tlZCksdGhpcy5jaGFuZ2UuZW1pdCh0KSx0aGlzLl9pbnB1dEVsZW1lbnQmJih0aGlzLl9pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5jaGVja2VkPXRoaXMuY2hlY2tlZCl9dG9nZ2xlKCl7dGhpcy5jaGVja2VkPSF0aGlzLmNoZWNrZWR9X29uSW5wdXRDbGljayh0KXt2YXIgZTtjb25zdCBuPW51bGw9PT0oZT10aGlzLl9vcHRpb25zKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5jbGlja0FjdGlvbjt0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZGlzYWJsZWR8fCJub29wIj09PW4/dGhpcy5kaXNhYmxlZHx8Im5vb3AiIT09bnx8KHRoaXMuX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmNoZWNrZWQ9dGhpcy5jaGVja2VkLHRoaXMuX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmluZGV0ZXJtaW5hdGU9dGhpcy5pbmRldGVybWluYXRlKToodGhpcy5pbmRldGVybWluYXRlJiYiY2hlY2siIT09biYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKCk9Pnt0aGlzLl9pbmRldGVybWluYXRlPSExLHRoaXMuaW5kZXRlcm1pbmF0ZUNoYW5nZS5lbWl0KHRoaXMuX2luZGV0ZXJtaW5hdGUpfSkpLHRoaXMudG9nZ2xlKCksdGhpcy5fdHJhbnNpdGlvbkNoZWNrU3RhdGUodGhpcy5fY2hlY2tlZD8xOjIpLHRoaXMuX2VtaXRDaGFuZ2VFdmVudCgpKX1mb2N1cyh0LGUpe3Q/dGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuX2lucHV0RWxlbWVudCx0LGUpOnRoaXMuX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKGUpfV9vbkludGVyYWN0aW9uRXZlbnQodCl7dC5zdG9wUHJvcGFnYXRpb24oKX1fZ2V0QW5pbWF0aW9uQ2xhc3NGb3JDaGVja1N0YXRlVHJhbnNpdGlvbih0LGUpe2lmKCJOb29wQW5pbWF0aW9ucyI9PT10aGlzLl9hbmltYXRpb25Nb2RlKXJldHVybiIiO2xldCBuPSIiO3N3aXRjaCh0KXtjYXNlIDA6aWYoMT09PWUpbj0idW5jaGVja2VkLWNoZWNrZWQiO2Vsc2V7aWYoMyE9ZSlyZXR1cm4iIjtuPSJ1bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZSJ9YnJlYWs7Y2FzZSAyOm49MT09PWU/InVuY2hlY2tlZC1jaGVja2VkIjoidW5jaGVja2VkLWluZGV0ZXJtaW5hdGUiO2JyZWFrO2Nhc2UgMTpuPTI9PT1lPyJjaGVja2VkLXVuY2hlY2tlZCI6ImNoZWNrZWQtaW5kZXRlcm1pbmF0ZSI7YnJlYWs7Y2FzZSAzOm49MT09PWU/ImluZGV0ZXJtaW5hdGUtY2hlY2tlZCI6ImluZGV0ZXJtaW5hdGUtdW5jaGVja2VkIn1yZXR1cm5gbWF0LWNoZWNrYm94LWFuaW0tJHtufWB9X3N5bmNJbmRldGVybWluYXRlKHQpe2NvbnN0IGU9dGhpcy5faW5wdXRFbGVtZW50O2UmJihlLm5hdGl2ZUVsZW1lbnQuaW5kZXRlcm1pbmF0ZT10KX19YlouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGJaKShnZihLaCksZ2YoT2IpLGdmKGZGKSxnZihtQyksR2EoInRhYmluZGV4IiksZ2YoY2ssOCksZ2YoZFosOCkpfSxiWi7JtWNtcD1zbyh7dHlwZTpiWixzZWxlY3RvcnM6W1sibWF0LWNoZWNrYm94Il1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoVnkobFosNSksVnkobUwsNSkpLDImZSl7bGV0IHQ7QnkodD1VeSgpKSYmKG4uX2lucHV0RWxlbWVudD10LmZpcnN0KSxCeSh0PVV5KCkpJiYobi5yaXBwbGU9dC5maXJzdCl9fSxob3N0QXR0cnM6WzEsIm1hdC1jaGVja2JveCJdLGhvc3RWYXJzOjEyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiYoY2coImlkIixuLmlkKSx5bSgidGFiaW5kZXgiLG51bGwpLGN1KCJtYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSIsbi5pbmRldGVybWluYXRlKSgibWF0LWNoZWNrYm94LWNoZWNrZWQiLG4uY2hlY2tlZCkoIm1hdC1jaGVja2JveC1kaXNhYmxlZCIsbi5kaXNhYmxlZCkoIm1hdC1jaGVja2JveC1sYWJlbC1iZWZvcmUiLCJiZWZvcmUiPT1uLmxhYmVsUG9zaXRpb24pKCJfbWF0LWFuaW1hdGlvbi1ub29wYWJsZSIsIk5vb3BBbmltYXRpb25zIj09PW4uX2FuaW1hdGlvbk1vZGUpKX0saW5wdXRzOntkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIixjb2xvcjoiY29sb3IiLHRhYkluZGV4OiJ0YWJJbmRleCIsYXJpYUxhYmVsOlsiYXJpYS1sYWJlbCIsImFyaWFMYWJlbCJdLGFyaWFMYWJlbGxlZGJ5OlsiYXJpYS1sYWJlbGxlZGJ5IiwiYXJpYUxhYmVsbGVkYnkiXSxpZDoiaWQiLGxhYmVsUG9zaXRpb246ImxhYmVsUG9zaXRpb24iLG5hbWU6Im5hbWUiLHJlcXVpcmVkOiJyZXF1aXJlZCIsY2hlY2tlZDoiY2hlY2tlZCIsZGlzYWJsZWQ6ImRpc2FibGVkIixpbmRldGVybWluYXRlOiJpbmRldGVybWluYXRlIixhcmlhRGVzY3JpYmVkYnk6WyJhcmlhLWRlc2NyaWJlZGJ5IiwiYXJpYURlc2NyaWJlZGJ5Il0sdmFsdWU6InZhbHVlIn0sb3V0cHV0czp7Y2hhbmdlOiJjaGFuZ2UiLGluZGV0ZXJtaW5hdGVDaGFuZ2U6ImluZGV0ZXJtaW5hdGVDaGFuZ2UifSxleHBvcnRBczpbIm1hdENoZWNrYm94Il0sZmVhdHVyZXM6W2poKFt1Wl0pLFFwXSxuZ0NvbnRlbnRTZWxlY3RvcnM6WyIqIl0sZGVjbHM6MTcsdmFyczoyMSxjb25zdHM6W1sxLCJtYXQtY2hlY2tib3gtbGF5b3V0Il0sWyJsYWJlbCIsIiJdLFsxLCJtYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyIl0sWyJ0eXBlIiwiY2hlY2tib3giLDEsIm1hdC1jaGVja2JveC1pbnB1dCIsImNkay12aXN1YWxseS1oaWRkZW4iLDMsImlkIiwicmVxdWlyZWQiLCJjaGVja2VkIiwiZGlzYWJsZWQiLCJ0YWJJbmRleCIsImNoYW5nZSIsImNsaWNrIl0sWyJpbnB1dCIsIiJdLFsibWF0UmlwcGxlIiwiIiwxLCJtYXQtY2hlY2tib3gtcmlwcGxlIiwibWF0LWZvY3VzLWluZGljYXRvciIsMywibWF0UmlwcGxlVHJpZ2dlciIsIm1hdFJpcHBsZURpc2FibGVkIiwibWF0UmlwcGxlUmFkaXVzIiwibWF0UmlwcGxlQ2VudGVyZWQiLCJtYXRSaXBwbGVBbmltYXRpb24iXSxbMSwibWF0LXJpcHBsZS1lbGVtZW50IiwibWF0LWNoZWNrYm94LXBlcnNpc3RlbnQtcmlwcGxlIl0sWzEsIm1hdC1jaGVja2JveC1mcmFtZSJdLFsxLCJtYXQtY2hlY2tib3gtYmFja2dyb3VuZCJdLFsidmVyc2lvbiIsIjEuMSIsImZvY3VzYWJsZSIsImZhbHNlIiwidmlld0JveCIsIjAgMCAyNCAyNCIsMCwieG1sIiwic3BhY2UiLCJwcmVzZXJ2ZSIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwibWF0LWNoZWNrYm94LWNoZWNrbWFyayJdLFsiZmlsbCIsIm5vbmUiLCJzdHJva2UiLCJ3aGl0ZSIsImQiLCJNNC4xLDEyLjcgOSwxNy42IDIwLjMsNi4zIiwxLCJtYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgiXSxbMSwibWF0LWNoZWNrYm94LW1peGVkbWFyayJdLFsxLCJtYXQtY2hlY2tib3gtbGFiZWwiLDMsImNka09ic2VydmVDb250ZW50Il0sWyJjaGVja2JveExhYmVsIiwiIl0sWzIsImRpc3BsYXkiLCJub25lIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihIZigpLENmKDAsImxhYmVsIiwwLDEpLENmKDIsInNwYW4iLDIpLENmKDMsImlucHV0IiwzLDQpLFJmKCJjaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9vbkludGVyYWN0aW9uRXZlbnQoZSl9KSkoImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5fb25JbnB1dENsaWNrKGUpfSkpLE1mKCksQ2YoNSwic3BhbiIsNSksdmYoNiwic3BhbiIsNiksTWYoKSx2Zig3LCJzcGFuIiw3KSxDZig4LCJzcGFuIiw4KSxvYSgpLENmKDksInN2ZyIsOSksdmYoMTAsInBhdGgiLDEwKSxNZigpLGFhKCksdmYoMTEsInNwYW4iLDExKSxNZigpLE1mKCksQ2YoMTIsInNwYW4iLDEyLDEzKSxSZigiY2RrT2JzZXJ2ZUNvbnRlbnQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX29uTGFiZWxUZXh0Q2hhbmdlKCl9KSksQ2YoMTQsInNwYW4iLDE0KSxQdSgxNSwiwqAiKSxNZigpLEZmKDE2KSxNZigpLE1mKCkpLDImZSl7Y29uc3QgdD1GbSgxKSxlPUZtKDEzKTt5bSgiZm9yIixuLmlucHV0SWQpLERjKDIpLGN1KCJtYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyLW5vLXNpZGUtbWFyZ2luIiwhZS50ZXh0Q29udGVudHx8IWUudGV4dENvbnRlbnQudHJpbSgpKSxEYygxKSxiZigiaWQiLG4uaW5wdXRJZCkoInJlcXVpcmVkIixuLnJlcXVpcmVkKSgiY2hlY2tlZCIsbi5jaGVja2VkKSgiZGlzYWJsZWQiLG4uZGlzYWJsZWQpKCJ0YWJJbmRleCIsbi50YWJJbmRleCkseW0oInZhbHVlIixuLnZhbHVlKSgibmFtZSIsbi5uYW1lKSgiYXJpYS1sYWJlbCIsbi5hcmlhTGFiZWx8fG51bGwpKCJhcmlhLWxhYmVsbGVkYnkiLG4uYXJpYUxhYmVsbGVkYnkpKCJhcmlhLWNoZWNrZWQiLG4uX2dldEFyaWFDaGVja2VkKCkpKCJhcmlhLWRlc2NyaWJlZGJ5IixuLmFyaWFEZXNjcmliZWRieSksRGMoMiksYmYoIm1hdFJpcHBsZVRyaWdnZXIiLHQpKCJtYXRSaXBwbGVEaXNhYmxlZCIsbi5faXNSaXBwbGVEaXNhYmxlZCgpKSgibWF0UmlwcGxlUmFkaXVzIiwyMCkoIm1hdFJpcHBsZUNlbnRlcmVkIiwhMCkoIm1hdFJpcHBsZUFuaW1hdGlvbiIsaXkoMTksY1osIk5vb3BBbmltYXRpb25zIj09PW4uX2FuaW1hdGlvbk1vZGU/MDoxNTApKX19LGRpcmVjdGl2ZXM6W21MLFBIXSxzdHlsZXM6WyJAa2V5ZnJhbWVzIG1hdC1jaGVja2JveC1mYWRlLWluLWJhY2tncm91bmR7MCV7b3BhY2l0eTowfTUwJXtvcGFjaXR5OjF9fUBrZXlmcmFtZXMgbWF0LWNoZWNrYm94LWZhZGUtb3V0LWJhY2tncm91bmR7MCUsNTAle29wYWNpdHk6MX0xMDAle29wYWNpdHk6MH19QGtleWZyYW1lcyBtYXQtY2hlY2tib3gtdW5jaGVja2VkLWNoZWNrZWQtY2hlY2ttYXJrLXBhdGh7MCUsNTAle3N0cm9rZS1kYXNob2Zmc2V0OjIyLjkxMDI1OX01MCV7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpfTEwMCV7c3Ryb2tlLWRhc2hvZmZzZXQ6MH19QGtleWZyYW1lcyBtYXQtY2hlY2tib3gtdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUtbWl4ZWRtYXJrezAlLDY4LjIle3RyYW5zZm9ybTpzY2FsZVgoMCl9NjguMiV7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMCwgMCwgMCwgMSl9MTAwJXt0cmFuc2Zvcm06c2NhbGVYKDEpfX1Aa2V5ZnJhbWVzIG1hdC1jaGVja2JveC1jaGVja2VkLXVuY2hlY2tlZC1jaGVja21hcmstcGF0aHtmcm9te2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7c3Ryb2tlLWRhc2hvZmZzZXQ6MH10b3tzdHJva2UtZGFzaG9mZnNldDotMjIuOTEwMjU5fX1Aa2V5ZnJhbWVzIG1hdC1jaGVja2JveC1jaGVja2VkLWluZGV0ZXJtaW5hdGUtY2hlY2ttYXJre2Zyb217YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpO29wYWNpdHk6MTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfXRve29wYWNpdHk6MDt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX19QGtleWZyYW1lcyBtYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLWNoZWNrbWFya3tmcm9te2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuMTQsIDAsIDAsIDEpO29wYWNpdHk6MDt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX1Aa2V5ZnJhbWVzIG1hdC1jaGVja2JveC1jaGVja2VkLWluZGV0ZXJtaW5hdGUtbWl4ZWRtYXJre2Zyb217YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpO29wYWNpdHk6MDt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9fUBrZXlmcmFtZXMgbWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hlY2tlZC1taXhlZG1hcmt7ZnJvbXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLjE0LCAwLCAwLCAxKTtvcGFjaXR5OjE7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX10b3tvcGFjaXR5OjA7dHJhbnNmb3JtOnJvdGF0ZSgzMTVkZWcpfX1Aa2V5ZnJhbWVzIG1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLXVuY2hlY2tlZC1taXhlZG1hcmt7MCV7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpsaW5lYXI7b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZVgoMSl9MzIuOCUsMTAwJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlWCgwKX19Lm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLC5tYXQtY2hlY2tib3gtZnJhbWV7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czoycHg7Ym94LXNpemluZzpib3JkZXItYm94O3BvaW50ZXItZXZlbnRzOm5vbmV9Lm1hdC1jaGVja2JveHtkaXNwbGF5OmlubGluZS1ibG9jazt0cmFuc2l0aW9uOmJhY2tncm91bmQgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksYm94LXNoYWRvdyAyODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO2N1cnNvcjpwb2ludGVyOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LWNoZWNrYm94e3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LWNoZWNrYm94IC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtY2hlY2tib3gtcGVyc2lzdGVudC1yaXBwbGUpe29wYWNpdHk6LjE2fS5tYXQtY2hlY2tib3ggLm1hdC1jaGVja2JveC1yaXBwbGV7cG9zaXRpb246YWJzb2x1dGU7bGVmdDpjYWxjKDUwJSAtIDIwcHgpO3RvcDpjYWxjKDUwJSAtIDIwcHgpO2hlaWdodDo0MHB4O3dpZHRoOjQwcHg7ei1pbmRleDoxO3BvaW50ZXItZXZlbnRzOm5vbmV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWNoZWNrYm94LmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2hlY2tib3gtcmlwcGxle291dGxpbmU6c29saWQgM3B4fS5tYXQtY2hlY2tib3gtbGF5b3V0ey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6aW5oZXJpdDthbGlnbi1pdGVtczpiYXNlbGluZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZGlzcGxheTppbmxpbmUtZmxleDt3aGl0ZS1zcGFjZTpub3dyYXB9Lm1hdC1jaGVja2JveC1sYWJlbHstd2Via2l0LXVzZXItc2VsZWN0OmF1dG87LW1vei11c2VyLXNlbGVjdDphdXRvOy1tcy11c2VyLXNlbGVjdDphdXRvO3VzZXItc2VsZWN0OmF1dG99Lm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjE2cHg7bGluZS1oZWlnaHQ6MDttYXJnaW46YXV0bzttYXJnaW4tcmlnaHQ6OHB4O29yZGVyOjA7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vd3JhcDt3aWR0aDoxNnB4O2ZsZXgtc2hyaW5rOjB9W2Rpcj1ydGxdIC5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVye21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6YXV0b30ubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lci1uby1zaWRlLW1hcmdpbnttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDowfS5tYXQtY2hlY2tib3gtZnJhbWV7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciA5MG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSk7Ym9yZGVyLXdpZHRoOjJweDtib3JkZXItc3R5bGU6c29saWR9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtY2hlY2tib3gtZnJhbWV7dHJhbnNpdGlvbjpub25lfS5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciA5MG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSksb3BhY2l0eSA5MG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSk7LXdlYmtpdC1wcmludC1jb2xvci1hZGp1c3Q6ZXhhY3Q7Y29sb3ItYWRqdXN0OmV4YWN0fS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7dHJhbnNpdGlvbjpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1jaGVja2JveCAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YmFja2dyb3VuZDpub25lfS5tYXQtY2hlY2tib3gtcGVyc2lzdGVudC1yaXBwbGV7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RyYW5zZm9ybTpub25lfS5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyOmhvdmVyIC5tYXQtY2hlY2tib3gtcGVyc2lzdGVudC1yaXBwbGV7b3BhY2l0eTouMDR9Lm1hdC1jaGVja2JveC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNoZWNrYm94LXBlcnNpc3RlbnQtcmlwcGxle29wYWNpdHk6LjEyfS5tYXQtY2hlY2tib3gtcGVyc2lzdGVudC1yaXBwbGUsLm1hdC1jaGVja2JveC5tYXQtY2hlY2tib3gtZGlzYWJsZWQgLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXI6aG92ZXIgLm1hdC1jaGVja2JveC1wZXJzaXN0ZW50LXJpcHBsZXtvcGFjaXR5OjB9QG1lZGlhKGhvdmVyOiBub25lKXsubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lcjpob3ZlciAubWF0LWNoZWNrYm94LXBlcnNpc3RlbnQtcmlwcGxle2Rpc3BsYXk6bm9uZX19Lm1hdC1jaGVja2JveC1jaGVja21hcmt7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJX0ubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoe3N0cm9rZS1kYXNob2Zmc2V0OjIyLjkxMDI1OTtzdHJva2UtZGFzaGFycmF5OjIyLjkxMDI1OTtzdHJva2Utd2lkdGg6Mi4xMzMzMzMzMzMzcHh9LmNkay1oaWdoLWNvbnRyYXN0LWJsYWNrLW9uLXdoaXRlIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGh7c3Ryb2tlOiMwMDAgIWltcG9ydGFudH0ubWF0LWNoZWNrYm94LW1peGVkbWFya3t3aWR0aDpjYWxjKDEwMCUgLSA2cHgpO2hlaWdodDoycHg7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZVgoMCkgcm90YXRlKDBkZWcpO2JvcmRlci1yYWRpdXM6MnB4fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1jaGVja2JveC1taXhlZG1hcmt7aGVpZ2h0OjA7Ym9yZGVyLXRvcDpzb2xpZCAycHg7bWFyZ2luLXRvcDoycHh9Lm1hdC1jaGVja2JveC1sYWJlbC1iZWZvcmUgLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXJ7b3JkZXI6MTttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0OmF1dG99W2Rpcj1ydGxdIC5tYXQtY2hlY2tib3gtbGFiZWwtYmVmb3JlIC5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVye21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OjhweH0ubWF0LWNoZWNrYm94LWNoZWNrZWQgLm1hdC1jaGVja2JveC1jaGVja21hcmt7b3BhY2l0eToxfS5tYXQtY2hlY2tib3gtY2hlY2tlZCAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoe3N0cm9rZS1kYXNob2Zmc2V0OjB9Lm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtbWl4ZWRtYXJre3RyYW5zZm9ybTpzY2FsZVgoMSkgcm90YXRlKC00NWRlZyl9Lm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJre29wYWNpdHk6MDt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0ubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aHtzdHJva2UtZGFzaG9mZnNldDowfS5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LW1peGVkbWFya3tvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlWCgxKSByb3RhdGUoMGRlZyl9Lm1hdC1jaGVja2JveC11bmNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm1hdC1jaGVja2JveC1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtY2hlY2tib3gtZGlzYWJsZWR7b3BhY2l0eTouNX0ubWF0LWNoZWNrYm94LWFuaW0tdW5jaGVja2VkLWNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5ke2FuaW1hdGlvbjoxODBtcyBsaW5lYXIgMG1zIG1hdC1jaGVja2JveC1mYWRlLWluLWJhY2tncm91bmR9Lm1hdC1jaGVja2JveC1hbmltLXVuY2hlY2tlZC1jaGVja2VkIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGh7YW5pbWF0aW9uOjE4MG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LXVuY2hlY2tlZC1jaGVja2VkLWNoZWNrbWFyay1wYXRofS5tYXQtY2hlY2tib3gtYW5pbS11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YW5pbWF0aW9uOjE4MG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LWZhZGUtaW4tYmFja2dyb3VuZH0ubWF0LWNoZWNrYm94LWFuaW0tdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1taXhlZG1hcmt7YW5pbWF0aW9uOjkwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUtbWl4ZWRtYXJrfS5tYXQtY2hlY2tib3gtYW5pbS1jaGVja2VkLXVuY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YW5pbWF0aW9uOjE4MG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LWZhZGUtb3V0LWJhY2tncm91bmR9Lm1hdC1jaGVja2JveC1hbmltLWNoZWNrZWQtdW5jaGVja2VkIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGh7YW5pbWF0aW9uOjkwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtY2hlY2tlZC11bmNoZWNrZWQtY2hlY2ttYXJrLXBhdGh9Lm1hdC1jaGVja2JveC1hbmltLWNoZWNrZWQtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWNoZWNrbWFya3thbmltYXRpb246OTBtcyBsaW5lYXIgMG1zIG1hdC1jaGVja2JveC1jaGVja2VkLWluZGV0ZXJtaW5hdGUtY2hlY2ttYXJrfS5tYXQtY2hlY2tib3gtYW5pbS1jaGVja2VkLWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1taXhlZG1hcmt7YW5pbWF0aW9uOjkwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtY2hlY2tlZC1pbmRldGVybWluYXRlLW1peGVkbWFya30ubWF0LWNoZWNrYm94LWFuaW0taW5kZXRlcm1pbmF0ZS1jaGVja2VkIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJre2FuaW1hdGlvbjo1MDBtcyBsaW5lYXIgMG1zIG1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLWNoZWNrZWQtY2hlY2ttYXJrfS5tYXQtY2hlY2tib3gtYW5pbS1pbmRldGVybWluYXRlLWNoZWNrZWQgLm1hdC1jaGVja2JveC1taXhlZG1hcmt7YW5pbWF0aW9uOjUwMG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hlY2tlZC1taXhlZG1hcmt9Lm1hdC1jaGVja2JveC1hbmltLWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHthbmltYXRpb246MTgwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtZmFkZS1vdXQtYmFja2dyb3VuZH0ubWF0LWNoZWNrYm94LWFuaW0taW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQgLm1hdC1jaGVja2JveC1taXhlZG1hcmt7YW5pbWF0aW9uOjMwMG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkLW1peGVkbWFya30ubWF0LWNoZWNrYm94LWlucHV0e2JvdHRvbTowO2xlZnQ6NTAlfVxuIl0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksYlouY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpLaH0se3R5cGU6T2J9LHt0eXBlOmZGfSx7dHlwZTptQ30se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOiRhLGFyZ3M6WyJ0YWJpbmRleCJdfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbY2tdfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbZFpdfV19XSxiWi5wcm9wRGVjb3JhdG9ycz17YXJpYUxhYmVsOlt7dHlwZTpSXyxhcmdzOlsiYXJpYS1sYWJlbCJdfV0sYXJpYUxhYmVsbGVkYnk6W3t0eXBlOlJfLGFyZ3M6WyJhcmlhLWxhYmVsbGVkYnkiXX1dLGFyaWFEZXNjcmliZWRieTpbe3R5cGU6Ul8sYXJnczpbImFyaWEtZGVzY3JpYmVkYnkiXX1dLGlkOlt7dHlwZTpSX31dLHJlcXVpcmVkOlt7dHlwZTpSX31dLGxhYmVsUG9zaXRpb246W3t0eXBlOlJffV0sbmFtZTpbe3R5cGU6Ul99XSxjaGFuZ2U6W3t0eXBlOkVffV0saW5kZXRlcm1pbmF0ZUNoYW5nZTpbe3R5cGU6RV99XSx2YWx1ZTpbe3R5cGU6Ul99XSxfaW5wdXRFbGVtZW50Olt7dHlwZTphcixhcmdzOlsiaW5wdXQiXX1dLHJpcHBsZTpbe3R5cGU6YXIsYXJnczpbbUxdfV0sY2hlY2tlZDpbe3R5cGU6Ul99XSxkaXNhYmxlZDpbe3R5cGU6Ul99XSxpbmRldGVybWluYXRlOlt7dHlwZTpSX31dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGJaLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im1hdC1jaGVja2JveCIsdGVtcGxhdGU6JzxsYWJlbCBbYXR0ci5mb3JdPSJpbnB1dElkIiBjbGFzcz0ibWF0LWNoZWNrYm94LWxheW91dCIgI2xhYmVsPlxuICA8c3BhbiBjbGFzcz0ibWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lciJcbiAgICAgICBbY2xhc3MubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lci1uby1zaWRlLW1hcmdpbl09IiFjaGVja2JveExhYmVsLnRleHRDb250ZW50IHx8ICFjaGVja2JveExhYmVsLnRleHRDb250ZW50LnRyaW0oKSI+XG4gICAgPGlucHV0ICNpbnB1dFxuICAgICAgICAgICBjbGFzcz0ibWF0LWNoZWNrYm94LWlucHV0IGNkay12aXN1YWxseS1oaWRkZW4iIHR5cGU9ImNoZWNrYm94IlxuICAgICAgICAgICBbaWRdPSJpbnB1dElkIlxuICAgICAgICAgICBbcmVxdWlyZWRdPSJyZXF1aXJlZCJcbiAgICAgICAgICAgW2NoZWNrZWRdPSJjaGVja2VkIlxuICAgICAgICAgICBbYXR0ci52YWx1ZV09InZhbHVlIlxuICAgICAgICAgICBbZGlzYWJsZWRdPSJkaXNhYmxlZCJcbiAgICAgICAgICAgW2F0dHIubmFtZV09Im5hbWUiXG4gICAgICAgICAgIFt0YWJJbmRleF09InRhYkluZGV4IlxuICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT0iYXJpYUxhYmVsIHx8IG51bGwiXG4gICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09ImFyaWFMYWJlbGxlZGJ5IlxuICAgICAgICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPSJfZ2V0QXJpYUNoZWNrZWQoKSJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09ImFyaWFEZXNjcmliZWRieSJcbiAgICAgICAgICAgKGNoYW5nZSk9Il9vbkludGVyYWN0aW9uRXZlbnQoJGV2ZW50KSJcbiAgICAgICAgICAgKGNsaWNrKT0iX29uSW5wdXRDbGljaygkZXZlbnQpIj5cbiAgICA8c3BhbiBtYXRSaXBwbGUgY2xhc3M9Im1hdC1jaGVja2JveC1yaXBwbGUgbWF0LWZvY3VzLWluZGljYXRvciJcbiAgICAgICAgIFttYXRSaXBwbGVUcmlnZ2VyXT0ibGFiZWwiXG4gICAgICAgICBbbWF0UmlwcGxlRGlzYWJsZWRdPSJfaXNSaXBwbGVEaXNhYmxlZCgpIlxuICAgICAgICAgW21hdFJpcHBsZVJhZGl1c109IjIwIlxuICAgICAgICAgW21hdFJpcHBsZUNlbnRlcmVkXT0idHJ1ZSJcbiAgICAgICAgIFttYXRSaXBwbGVBbmltYXRpb25dPSJ7ZW50ZXJEdXJhdGlvbjogX2FuaW1hdGlvbk1vZGUgPT09IFwnTm9vcEFuaW1hdGlvbnNcJyA/IDAgOiAxNTB9Ij5cbiAgICAgIDxzcGFuIGNsYXNzPSJtYXQtcmlwcGxlLWVsZW1lbnQgbWF0LWNoZWNrYm94LXBlcnNpc3RlbnQtcmlwcGxlIj48L3NwYW4+XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPSJtYXQtY2hlY2tib3gtZnJhbWUiPjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz0ibWF0LWNoZWNrYm94LWJhY2tncm91bmQiPlxuICAgICAgPHN2ZyB2ZXJzaW9uPSIxLjEiXG4gICAgICAgICAgIGZvY3VzYWJsZT0iZmFsc2UiXG4gICAgICAgICAgIGNsYXNzPSJtYXQtY2hlY2tib3gtY2hlY2ttYXJrIlxuICAgICAgICAgICB2aWV3Qm94PSIwIDAgMjQgMjQiXG4gICAgICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiXG4gICAgICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIj5cbiAgICAgICAgPHBhdGggY2xhc3M9Im1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCJcbiAgICAgICAgICAgICAgZmlsbD0ibm9uZSJcbiAgICAgICAgICAgICAgc3Ryb2tlPSJ3aGl0ZSJcbiAgICAgICAgICAgICAgZD0iTTQuMSwxMi43IDksMTcuNiAyMC4zLDYuMyIvPlxuICAgICAgPC9zdmc+XG4gICAgICBceDNjIS0tIEVsZW1lbnQgZm9yIHJlbmRlcmluZyB0aGUgaW5kZXRlcm1pbmF0ZSBzdGF0ZSBjaGVja2JveC4gLS1ceDNlXG4gICAgICA8c3BhbiBjbGFzcz0ibWF0LWNoZWNrYm94LW1peGVkbWFyayI+PC9zcGFuPlxuICAgIDwvc3Bhbj5cbiAgPC9zcGFuPlxuICA8c3BhbiBjbGFzcz0ibWF0LWNoZWNrYm94LWxhYmVsIiAjY2hlY2tib3hMYWJlbCAoY2RrT2JzZXJ2ZUNvbnRlbnQpPSJfb25MYWJlbFRleHRDaGFuZ2UoKSI+XG4gICAgXHgzYyEtLSBBZGQgYW4gaW52aXNpYmxlIHNwYW4gc28gSkFXUyBjYW4gcmVhZCB0aGUgbGFiZWwgLS1ceDNlXG4gICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6bm9uZSI+Jm5ic3A7PC9zcGFuPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9zcGFuPlxuPC9sYWJlbD5cbicsZXhwb3J0QXM6Im1hdENoZWNrYm94Iixob3N0OntjbGFzczoibWF0LWNoZWNrYm94IiwiW2lkXSI6ImlkIiwiW2F0dHIudGFiaW5kZXhdIjoibnVsbCIsIltjbGFzcy5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZV0iOiJpbmRldGVybWluYXRlIiwiW2NsYXNzLm1hdC1jaGVja2JveC1jaGVja2VkXSI6ImNoZWNrZWQiLCJbY2xhc3MubWF0LWNoZWNrYm94LWRpc2FibGVkXSI6ImRpc2FibGVkIiwiW2NsYXNzLm1hdC1jaGVja2JveC1sYWJlbC1iZWZvcmVdIjonbGFiZWxQb3NpdGlvbiA9PSAiYmVmb3JlIicsIltjbGFzcy5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZV0iOiJfYW5pbWF0aW9uTW9kZSA9PT0gJ05vb3BBbmltYXRpb25zJyJ9LHByb3ZpZGVyczpbdVpdLGlucHV0czpbImRpc2FibGVSaXBwbGUiLCJjb2xvciIsInRhYkluZGV4Il0sZW5jYXBzdWxhdGlvbjpXbi5Ob25lLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2gsc3R5bGVzOlsiQGtleWZyYW1lcyBtYXQtY2hlY2tib3gtZmFkZS1pbi1iYWNrZ3JvdW5kezAle29wYWNpdHk6MH01MCV7b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIG1hdC1jaGVja2JveC1mYWRlLW91dC1iYWNrZ3JvdW5kezAlLDUwJXtvcGFjaXR5OjF9MTAwJXtvcGFjaXR5OjB9fUBrZXlmcmFtZXMgbWF0LWNoZWNrYm94LXVuY2hlY2tlZC1jaGVja2VkLWNoZWNrbWFyay1wYXRoezAlLDUwJXtzdHJva2UtZGFzaG9mZnNldDoyMi45MTAyNTl9NTAle2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKX0xMDAle3N0cm9rZS1kYXNob2Zmc2V0OjB9fUBrZXlmcmFtZXMgbWF0LWNoZWNrYm94LXVuY2hlY2tlZC1pbmRldGVybWluYXRlLW1peGVkbWFya3swJSw2OC4yJXt0cmFuc2Zvcm06c2NhbGVYKDApfTY4LjIle2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAsIDAsIDAsIDEpfTEwMCV7dHJhbnNmb3JtOnNjYWxlWCgxKX19QGtleWZyYW1lcyBtYXQtY2hlY2tib3gtY2hlY2tlZC11bmNoZWNrZWQtY2hlY2ttYXJrLXBhdGh7ZnJvbXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpO3N0cm9rZS1kYXNob2Zmc2V0OjB9dG97c3Ryb2tlLWRhc2hvZmZzZXQ6LTIyLjkxMDI1OX19QGtleWZyYW1lcyBtYXQtY2hlY2tib3gtY2hlY2tlZC1pbmRldGVybWluYXRlLWNoZWNrbWFya3tmcm9te2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKTtvcGFjaXR5OjE7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX10b3tvcGFjaXR5OjA7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9fUBrZXlmcmFtZXMgbWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hlY2tlZC1jaGVja21hcmt7ZnJvbXthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLjE0LCAwLCAwLCAxKTtvcGFjaXR5OjA7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19QGtleWZyYW1lcyBtYXQtY2hlY2tib3gtY2hlY2tlZC1pbmRldGVybWluYXRlLW1peGVkbWFya3tmcm9te2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKTtvcGFjaXR5OjA7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfX1Aa2V5ZnJhbWVzIG1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLWNoZWNrZWQtbWl4ZWRtYXJre2Zyb217YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMC4xNCwgMCwgMCwgMSk7b3BhY2l0eToxO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9dG97b3BhY2l0eTowO3RyYW5zZm9ybTpyb3RhdGUoMzE1ZGVnKX19QGtleWZyYW1lcyBtYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQtbWl4ZWRtYXJrezAle2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246bGluZWFyO29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGVYKDEpfTMyLjglLDEwMCV7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZVgoMCl9fS5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwubWF0LWNoZWNrYm94LWZyYW1le3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6MnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwb2ludGVyLWV2ZW50czpub25lfS5tYXQtY2hlY2tib3h7ZGlzcGxheTppbmxpbmUtYmxvY2s7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJveC1zaGFkb3cgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1jaGVja2JveHt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC1jaGVja2JveCAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LWNoZWNrYm94LXBlcnNpc3RlbnQtcmlwcGxlKXtvcGFjaXR5Oi4xNn0ubWF0LWNoZWNrYm94IC5tYXQtY2hlY2tib3gtcmlwcGxle3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6Y2FsYyg1MCUgLSAyMHB4KTt0b3A6Y2FsYyg1MCUgLSAyMHB4KTtoZWlnaHQ6NDBweDt3aWR0aDo0MHB4O3otaW5kZXg6MTtwb2ludGVyLWV2ZW50czpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1jaGVja2JveC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNoZWNrYm94LXJpcHBsZXtvdXRsaW5lOnNvbGlkIDNweH0ubWF0LWNoZWNrYm94LWxheW91dHstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7Y3Vyc29yOmluaGVyaXQ7YWxpZ24taXRlbXM6YmFzZWxpbmU7dmVydGljYWwtYWxpZ246bWlkZGxlO2Rpc3BsYXk6aW5saW5lLWZsZXg7d2hpdGUtc3BhY2U6bm93cmFwfS5tYXQtY2hlY2tib3gtbGFiZWx7LXdlYmtpdC11c2VyLXNlbGVjdDphdXRvOy1tb3otdXNlci1zZWxlY3Q6YXV0bzstbXMtdXNlci1zZWxlY3Q6YXV0bzt1c2VyLXNlbGVjdDphdXRvfS5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxNnB4O2xpbmUtaGVpZ2h0OjA7bWFyZ2luOmF1dG87bWFyZ2luLXJpZ2h0OjhweDtvcmRlcjowO3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTpub3dyYXA7d2lkdGg6MTZweDtmbGV4LXNocmluazowfVtkaXI9cnRsXSAubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lcnttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0OmF1dG99Lm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXItbm8tc2lkZS1tYXJnaW57bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MH0ubWF0LWNoZWNrYm94LWZyYW1le2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgOTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpO2JvcmRlci13aWR0aDoycHg7Ym9yZGVyLXN0eWxlOnNvbGlkfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LWNoZWNrYm94LWZyYW1le3RyYW5zaXRpb246bm9uZX0ubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgOTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpLG9wYWNpdHkgOTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpOy13ZWJraXQtcHJpbnQtY29sb3ItYWRqdXN0OmV4YWN0O2NvbG9yLWFkanVzdDpleGFjdH0uX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5ke3RyYW5zaXRpb246bm9uZX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtY2hlY2tib3ggLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6bm9uZX0ubWF0LWNoZWNrYm94LXBlcnNpc3RlbnQtcmlwcGxle2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt0cmFuc2Zvcm06bm9uZX0ubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lcjpob3ZlciAubWF0LWNoZWNrYm94LXBlcnNpc3RlbnQtcmlwcGxle29wYWNpdHk6LjA0fS5tYXQtY2hlY2tib3guY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jaGVja2JveC1wZXJzaXN0ZW50LXJpcHBsZXtvcGFjaXR5Oi4xMn0ubWF0LWNoZWNrYm94LXBlcnNpc3RlbnQtcmlwcGxlLC5tYXQtY2hlY2tib3gubWF0LWNoZWNrYm94LWRpc2FibGVkIC5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyOmhvdmVyIC5tYXQtY2hlY2tib3gtcGVyc2lzdGVudC1yaXBwbGV7b3BhY2l0eTowfUBtZWRpYShob3Zlcjogbm9uZSl7Lm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXI6aG92ZXIgLm1hdC1jaGVja2JveC1wZXJzaXN0ZW50LXJpcHBsZXtkaXNwbGF5Om5vbmV9fS5tYXQtY2hlY2tib3gtY2hlY2ttYXJre3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCV9Lm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aHtzdHJva2UtZGFzaG9mZnNldDoyMi45MTAyNTk7c3Ryb2tlLWRhc2hhcnJheToyMi45MTAyNTk7c3Ryb2tlLXdpZHRoOjIuMTMzMzMzMzMzM3B4fS5jZGstaGlnaC1jb250cmFzdC1ibGFjay1vbi13aGl0ZSAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoe3N0cm9rZTojMDAwICFpbXBvcnRhbnR9Lm1hdC1jaGVja2JveC1taXhlZG1hcmt7d2lkdGg6Y2FsYygxMDAlIC0gNnB4KTtoZWlnaHQ6MnB4O29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGVYKDApIHJvdGF0ZSgwZGVnKTtib3JkZXItcmFkaXVzOjJweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtY2hlY2tib3gtbWl4ZWRtYXJre2hlaWdodDowO2JvcmRlci10b3A6c29saWQgMnB4O21hcmdpbi10b3A6MnB4fS5tYXQtY2hlY2tib3gtbGFiZWwtYmVmb3JlIC5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVye29yZGVyOjE7bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDphdXRvfVtkaXI9cnRsXSAubWF0LWNoZWNrYm94LWxhYmVsLWJlZm9yZSAubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lcnttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDo4cHh9Lm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJre29wYWNpdHk6MX0ubWF0LWNoZWNrYm94LWNoZWNrZWQgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aHtzdHJva2UtZGFzaG9mZnNldDowfS5tYXQtY2hlY2tib3gtY2hlY2tlZCAubWF0LWNoZWNrYm94LW1peGVkbWFya3t0cmFuc2Zvcm06c2NhbGVYKDEpIHJvdGF0ZSgtNDVkZWcpfS5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWNoZWNrbWFya3tvcGFjaXR5OjA7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9Lm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGh7c3Ryb2tlLWRhc2hvZmZzZXQ6MH0ubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1taXhlZG1hcmt7b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZVgoMSkgcm90YXRlKDBkZWcpfS5tYXQtY2hlY2tib3gtdW5jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5tYXQtY2hlY2tib3gtZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHR9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWNoZWNrYm94LWRpc2FibGVke29wYWNpdHk6LjV9Lm1hdC1jaGVja2JveC1hbmltLXVuY2hlY2tlZC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHthbmltYXRpb246MTgwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtZmFkZS1pbi1iYWNrZ3JvdW5kfS5tYXQtY2hlY2tib3gtYW5pbS11bmNoZWNrZWQtY2hlY2tlZCAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoe2FuaW1hdGlvbjoxODBtcyBsaW5lYXIgMG1zIG1hdC1jaGVja2JveC11bmNoZWNrZWQtY2hlY2tlZC1jaGVja21hcmstcGF0aH0ubWF0LWNoZWNrYm94LWFuaW0tdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5ke2FuaW1hdGlvbjoxODBtcyBsaW5lYXIgMG1zIG1hdC1jaGVja2JveC1mYWRlLWluLWJhY2tncm91bmR9Lm1hdC1jaGVja2JveC1hbmltLXVuY2hlY2tlZC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtbWl4ZWRtYXJre2FuaW1hdGlvbjo5MG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LXVuY2hlY2tlZC1pbmRldGVybWluYXRlLW1peGVkbWFya30ubWF0LWNoZWNrYm94LWFuaW0tY2hlY2tlZC11bmNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5ke2FuaW1hdGlvbjoxODBtcyBsaW5lYXIgMG1zIG1hdC1jaGVja2JveC1mYWRlLW91dC1iYWNrZ3JvdW5kfS5tYXQtY2hlY2tib3gtYW5pbS1jaGVja2VkLXVuY2hlY2tlZCAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoe2FuaW1hdGlvbjo5MG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LWNoZWNrZWQtdW5jaGVja2VkLWNoZWNrbWFyay1wYXRofS5tYXQtY2hlY2tib3gtYW5pbS1jaGVja2VkLWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1jaGVja21hcmt7YW5pbWF0aW9uOjkwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtY2hlY2tlZC1pbmRldGVybWluYXRlLWNoZWNrbWFya30ubWF0LWNoZWNrYm94LWFuaW0tY2hlY2tlZC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtbWl4ZWRtYXJre2FuaW1hdGlvbjo5MG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LWNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1taXhlZG1hcmt9Lm1hdC1jaGVja2JveC1hbmltLWluZGV0ZXJtaW5hdGUtY2hlY2tlZCAubWF0LWNoZWNrYm94LWNoZWNrbWFya3thbmltYXRpb246NTAwbXMgbGluZWFyIDBtcyBtYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLWNoZWNrbWFya30ubWF0LWNoZWNrYm94LWFuaW0taW5kZXRlcm1pbmF0ZS1jaGVja2VkIC5tYXQtY2hlY2tib3gtbWl4ZWRtYXJre2FuaW1hdGlvbjo1MDBtcyBsaW5lYXIgMG1zIG1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLWNoZWNrZWQtbWl4ZWRtYXJrfS5tYXQtY2hlY2tib3gtYW5pbS1pbmRldGVybWluYXRlLXVuY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmR7YW5pbWF0aW9uOjE4MG1zIGxpbmVhciAwbXMgbWF0LWNoZWNrYm94LWZhZGUtb3V0LWJhY2tncm91bmR9Lm1hdC1jaGVja2JveC1hbmltLWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkIC5tYXQtY2hlY2tib3gtbWl4ZWRtYXJre2FuaW1hdGlvbjozMDBtcyBsaW5lYXIgMG1zIG1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLXVuY2hlY2tlZC1taXhlZG1hcmt9Lm1hdC1jaGVja2JveC1pbnB1dHtib3R0b206MDtsZWZ0OjUwJX1cbiJdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6S2h9LHt0eXBlOk9ifSx7dHlwZTpmRn0se3R5cGU6bUN9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTokYSxhcmdzOlsidGFiaW5kZXgiXX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W2NrXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W2RaXX1dfV19KSx7YXJpYUxhYmVsOlt7dHlwZTpSXyxhcmdzOlsiYXJpYS1sYWJlbCJdfV0sYXJpYUxhYmVsbGVkYnk6W3t0eXBlOlJfLGFyZ3M6WyJhcmlhLWxhYmVsbGVkYnkiXX1dLGlkOlt7dHlwZTpSX31dLGxhYmVsUG9zaXRpb246W3t0eXBlOlJffV0sbmFtZTpbe3R5cGU6Ul99XSxjaGFuZ2U6W3t0eXBlOkVffV0saW5kZXRlcm1pbmF0ZUNoYW5nZTpbe3R5cGU6RV99XSxyZXF1aXJlZDpbe3R5cGU6Ul99XSxjaGVja2VkOlt7dHlwZTpSX31dLGRpc2FibGVkOlt7dHlwZTpSX31dLGluZGV0ZXJtaW5hdGU6W3t0eXBlOlJffV0sYXJpYURlc2NyaWJlZGJ5Olt7dHlwZTpSXyxhcmdzOlsiYXJpYS1kZXNjcmliZWRieSJdfV0sdmFsdWU6W3t0eXBlOlJffV0sX2lucHV0RWxlbWVudDpbe3R5cGU6YXIsYXJnczpbImlucHV0Il19XSxyaXBwbGU6W3t0eXBlOmFyLGFyZ3M6W21MXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCB5Wj17cHJvdmlkZTpFVSx1c2VFeGlzdGluZzokZSgoKCk9Pl9aKSksbXVsdGk6ITB9O2NsYXNzIF9aIGV4dGVuZHMgVkd7fV9aLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1VYShfWikpKShufHxfWil9fSkoKSxfWi7JtWRpcj1obyh7dHlwZTpfWixzZWxlY3RvcnM6W1sibWF0LWNoZWNrYm94IiwicmVxdWlyZWQiLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbIm1hdC1jaGVja2JveCIsInJlcXVpcmVkIiwiIiwiZm9ybUNvbnRyb2wiLCIiXSxbIm1hdC1jaGVja2JveCIsInJlcXVpcmVkIiwiIiwibmdNb2RlbCIsIiJdXSxmZWF0dXJlczpbamgoW3laXSksUXBdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihfWixbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJtYXQtY2hlY2tib3hbcmVxdWlyZWRdW2Zvcm1Db250cm9sTmFtZV0sXG4gICAgICAgICAgICAgbWF0LWNoZWNrYm94W3JlcXVpcmVkXVtmb3JtQ29udHJvbF0sIG1hdC1jaGVja2JveFtyZXF1aXJlZF1bbmdNb2RlbF0iLHByb3ZpZGVyczpbeVpdfV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgQ1p7fUNaLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxDWil9LENaLsm1bW9kPWZvKHt0eXBlOkNafSksQ1ouybVpbmo9RG4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoQ1osW3t0eXBlOkxfLGFyZ3M6W3tleHBvcnRzOltfWl0sZGVjbGFyYXRpb25zOltfWl19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhDWix7ZGVjbGFyYXRpb25zOltfWl0sZXhwb3J0czpbX1pdfSk7Y2xhc3MgTVp7fU1aLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxNWil9LE1aLsm1bW9kPWZvKHt0eXBlOk1afSksTVouybVpbmo9RG4oe2ltcG9ydHM6W1tmTCxORix3SCxDWl0sTkYsQ1pdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihNWixbe3R5cGU6TF8sYXJnczpbe2ltcG9ydHM6W2ZMLE5GLHdILENaXSxleHBvcnRzOltiWixORixDWl0sZGVjbGFyYXRpb25zOltiWl19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhNWix7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW2JaXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltmTCxORix3SCxDWl19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bYlosTkYsQ1pdfX0pO2NvbnN0IHZaPWJIKHtwYXNzaXZlOiEwfSk7Y2xhc3MgeFp7Y29uc3RydWN0b3IodCxlKXt0aGlzLl9wbGF0Zm9ybT10LHRoaXMuX25nWm9uZT1lLHRoaXMuX21vbml0b3JlZEVsZW1lbnRzPW5ldyBNYXB9bW9uaXRvcih0KXtpZighdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyKXJldHVybiBkdDtjb25zdCBlPXJIKHQpLG49dGhpcy5fbW9uaXRvcmVkRWxlbWVudHMuZ2V0KGUpO2lmKG4pcmV0dXJuIG4uc3ViamVjdDtjb25zdCBvPW5ldyBCLGk9ImNkay10ZXh0LWZpZWxkLWF1dG9maWxsZWQiLGE9dD0+eyJjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCIhPT10LmFuaW1hdGlvbk5hbWV8fGUuY2xhc3NMaXN0LmNvbnRhaW5zKGkpPyJjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQiPT09dC5hbmltYXRpb25OYW1lJiZlLmNsYXNzTGlzdC5jb250YWlucyhpKSYmKGUuY2xhc3NMaXN0LnJlbW92ZShpKSx0aGlzLl9uZ1pvbmUucnVuKCgoKT0+by5uZXh0KHt0YXJnZXQ6dC50YXJnZXQsaXNBdXRvZmlsbGVkOiExfSkpKSk6KGUuY2xhc3NMaXN0LmFkZChpKSx0aGlzLl9uZ1pvbmUucnVuKCgoKT0+by5uZXh0KHt0YXJnZXQ6dC50YXJnZXQsaXNBdXRvZmlsbGVkOiEwfSkpKSl9O3JldHVybiB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57ZS5hZGRFdmVudExpc3RlbmVyKCJhbmltYXRpb25zdGFydCIsYSx2WiksZS5jbGFzc0xpc3QuYWRkKCJjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQiKX0pKSx0aGlzLl9tb25pdG9yZWRFbGVtZW50cy5zZXQoZSx7c3ViamVjdDpvLHVubGlzdGVuOigpPT57ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJhbmltYXRpb25zdGFydCIsYSx2Wil9fSksb31zdG9wTW9uaXRvcmluZyh0KXtjb25zdCBlPXJIKHQpLG49dGhpcy5fbW9uaXRvcmVkRWxlbWVudHMuZ2V0KGUpO24mJihuLnVubGlzdGVuKCksbi5zdWJqZWN0LmNvbXBsZXRlKCksZS5jbGFzc0xpc3QucmVtb3ZlKCJjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQiKSxlLmNsYXNzTGlzdC5yZW1vdmUoImNkay10ZXh0LWZpZWxkLWF1dG9maWxsZWQiKSx0aGlzLl9tb25pdG9yZWRFbGVtZW50cy5kZWxldGUoZSkpfW5nT25EZXN0cm95KCl7dGhpcy5fbW9uaXRvcmVkRWxlbWVudHMuZm9yRWFjaCgoKHQsZSk9PnRoaXMuc3RvcE1vbml0b3JpbmcoZSkpKX19eFouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHhaKShUcihjSCksVHIobUMpKX0seFouybVwcm92PVNuKHtmYWN0b3J5OmZ1bmN0aW9uIHQoKXtyZXR1cm4gbmV3IHhaKFRyKGNIKSxUcihtQykpfSx0b2tlbjp4Wixwcm92aWRlZEluOiJyb290In0pLHhaLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6Y0h9LHt0eXBlOm1DfV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih4Wixbe3R5cGU6VW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6Y0h9LHt0eXBlOm1DfV19KSxudWxsKTtjbGFzcyBPWntjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX2VsZW1lbnRSZWY9dCx0aGlzLl9hdXRvZmlsbE1vbml0b3I9ZSx0aGlzLmNka0F1dG9maWxsPW5ldyBTeX1uZ09uSW5pdCgpe3RoaXMuX2F1dG9maWxsTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsZW1lbnRSZWYpLnN1YnNjcmliZSgodD0+dGhpcy5jZGtBdXRvZmlsbC5lbWl0KHQpKSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9hdXRvZmlsbE1vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZil9fU9aLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxPWikoZ2YoS2gpLGdmKHhaKSl9LE9aLsm1ZGlyPWhvKHt0eXBlOk9aLHNlbGVjdG9yczpbWyIiLCJjZGtBdXRvZmlsbCIsIiJdXSxvdXRwdXRzOntjZGtBdXRvZmlsbDoiY2RrQXV0b2ZpbGwifX0pLE9aLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6S2h9LHt0eXBlOnhafV0sT1oucHJvcERlY29yYXRvcnM9e2Nka0F1dG9maWxsOlt7dHlwZTpFX31dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKE9aLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IltjZGtBdXRvZmlsbF0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6S2h9LHt0eXBlOnhafV19KSx7Y2RrQXV0b2ZpbGw6W3t0eXBlOkVffV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIFBae2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMuX2VsZW1lbnRSZWY9dCx0aGlzLl9wbGF0Zm9ybT1lLHRoaXMuX25nWm9uZT1uLHRoaXMuX2Rlc3Ryb3llZD1uZXcgQix0aGlzLl9lbmFibGVkPSEwLHRoaXMuX3ByZXZpb3VzTWluUm93cz0tMSx0aGlzLl9pc1ZpZXdJbml0ZWQ9ITEsdGhpcy5faGFuZGxlRm9jdXNFdmVudD10PT57dGhpcy5faGFzRm9jdXM9ImZvY3VzIj09PXQudHlwZX0sdGhpcy5fZG9jdW1lbnQ9byx0aGlzLl90ZXh0YXJlYUVsZW1lbnQ9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50fWdldCBtaW5Sb3dzKCl7cmV0dXJuIHRoaXMuX21pblJvd3N9c2V0IG1pblJvd3ModCl7dGhpcy5fbWluUm93cz1uSCh0KSx0aGlzLl9zZXRNaW5IZWlnaHQoKX1nZXQgbWF4Um93cygpe3JldHVybiB0aGlzLl9tYXhSb3dzfXNldCBtYXhSb3dzKHQpe3RoaXMuX21heFJvd3M9bkgodCksdGhpcy5fc2V0TWF4SGVpZ2h0KCl9Z2V0IGVuYWJsZWQoKXtyZXR1cm4gdGhpcy5fZW5hYmxlZH1zZXQgZW5hYmxlZCh0KXt0PWVIKHQpLHRoaXMuX2VuYWJsZWQhPT10JiYoKHRoaXMuX2VuYWJsZWQ9dCk/dGhpcy5yZXNpemVUb0ZpdENvbnRlbnQoITApOnRoaXMucmVzZXQoKSl9Z2V0IHBsYWNlaG9sZGVyKCl7cmV0dXJuIHRoaXMuX3RleHRhcmVhRWxlbWVudC5wbGFjZWhvbGRlcn1zZXQgcGxhY2Vob2xkZXIodCl7dGhpcy5fY2FjaGVkUGxhY2Vob2xkZXJIZWlnaHQ9dm9pZCAwLHRoaXMuX3RleHRhcmVhRWxlbWVudC5wbGFjZWhvbGRlcj10LHRoaXMuX2NhY2hlVGV4dGFyZWFQbGFjZWhvbGRlckhlaWdodCgpfV9zZXRNaW5IZWlnaHQoKXtjb25zdCB0PXRoaXMubWluUm93cyYmdGhpcy5fY2FjaGVkTGluZUhlaWdodD90aGlzLm1pblJvd3MqdGhpcy5fY2FjaGVkTGluZUhlaWdodCsicHgiOm51bGw7dCYmKHRoaXMuX3RleHRhcmVhRWxlbWVudC5zdHlsZS5taW5IZWlnaHQ9dCl9X3NldE1heEhlaWdodCgpe2NvbnN0IHQ9dGhpcy5tYXhSb3dzJiZ0aGlzLl9jYWNoZWRMaW5lSGVpZ2h0P3RoaXMubWF4Um93cyp0aGlzLl9jYWNoZWRMaW5lSGVpZ2h0KyJweCI6bnVsbDt0JiYodGhpcy5fdGV4dGFyZWFFbGVtZW50LnN0eWxlLm1heEhlaWdodD10KX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXImJih0aGlzLl9pbml0aWFsSGVpZ2h0PXRoaXMuX3RleHRhcmVhRWxlbWVudC5zdHlsZS5oZWlnaHQsdGhpcy5yZXNpemVUb0ZpdENvbnRlbnQoKSx0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57bGUodGhpcy5fZ2V0V2luZG93KCksInJlc2l6ZSIpLnBpcGUoZ2UoMTYpLGplKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKCk9PnRoaXMucmVzaXplVG9GaXRDb250ZW50KCEwKSkpLHRoaXMuX3RleHRhcmVhRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5faGFuZGxlRm9jdXNFdmVudCksdGhpcy5fdGV4dGFyZWFFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLHRoaXMuX2hhbmRsZUZvY3VzRXZlbnQpfSkpLHRoaXMuX2lzVmlld0luaXRlZD0hMCx0aGlzLnJlc2l6ZVRvRml0Q29udGVudCghMCkpfW5nT25EZXN0cm95KCl7dGhpcy5fdGV4dGFyZWFFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLl9oYW5kbGVGb2N1c0V2ZW50KSx0aGlzLl90ZXh0YXJlYUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcy5faGFuZGxlRm9jdXNFdmVudCksdGhpcy5fZGVzdHJveWVkLm5leHQoKSx0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKX1fY2FjaGVUZXh0YXJlYUxpbmVIZWlnaHQoKXtpZih0aGlzLl9jYWNoZWRMaW5lSGVpZ2h0KXJldHVybjtsZXQgdD10aGlzLl90ZXh0YXJlYUVsZW1lbnQuY2xvbmVOb2RlKCExKTt0LnJvd3M9MSx0LnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsdC5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iLHQuc3R5bGUuYm9yZGVyPSJub25lIix0LnN0eWxlLnBhZGRpbmc9IjAiLHQuc3R5bGUuaGVpZ2h0PSIiLHQuc3R5bGUubWluSGVpZ2h0PSIiLHQuc3R5bGUubWF4SGVpZ2h0PSIiLHQuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsdGhpcy5fdGV4dGFyZWFFbGVtZW50LnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodCksdGhpcy5fY2FjaGVkTGluZUhlaWdodD10LmNsaWVudEhlaWdodCx0aGlzLl90ZXh0YXJlYUVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSx0aGlzLl9zZXRNaW5IZWlnaHQoKSx0aGlzLl9zZXRNYXhIZWlnaHQoKX1fbWVhc3VyZVNjcm9sbEhlaWdodCgpe2NvbnN0IHQ9dGhpcy5fdGV4dGFyZWFFbGVtZW50LGU9dC5zdHlsZS5tYXJnaW5Cb3R0b218fCIiLG49dGhpcy5fcGxhdGZvcm0uRklSRUZPWCxvPW4mJnRoaXMuX2hhc0ZvY3VzLGk9bj8iY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94IjoiY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZyI7byYmKHQuc3R5bGUubWFyZ2luQm90dG9tPWAke3QuY2xpZW50SGVpZ2h0fXB4YCksdC5jbGFzc0xpc3QuYWRkKGkpO2NvbnN0IGE9dC5zY3JvbGxIZWlnaHQtNDtyZXR1cm4gdC5jbGFzc0xpc3QucmVtb3ZlKGkpLG8mJih0LnN0eWxlLm1hcmdpbkJvdHRvbT1lKSxhfV9jYWNoZVRleHRhcmVhUGxhY2Vob2xkZXJIZWlnaHQoKXtpZighdGhpcy5faXNWaWV3SW5pdGVkfHxudWxsIT10aGlzLl9jYWNoZWRQbGFjZWhvbGRlckhlaWdodClyZXR1cm47aWYoIXRoaXMucGxhY2Vob2xkZXIpcmV0dXJuIHZvaWQodGhpcy5fY2FjaGVkUGxhY2Vob2xkZXJIZWlnaHQ9MCk7Y29uc3QgdD10aGlzLl90ZXh0YXJlYUVsZW1lbnQudmFsdWU7dGhpcy5fdGV4dGFyZWFFbGVtZW50LnZhbHVlPXRoaXMuX3RleHRhcmVhRWxlbWVudC5wbGFjZWhvbGRlcix0aGlzLl9jYWNoZWRQbGFjZWhvbGRlckhlaWdodD10aGlzLl9tZWFzdXJlU2Nyb2xsSGVpZ2h0KCksdGhpcy5fdGV4dGFyZWFFbGVtZW50LnZhbHVlPXR9bmdEb0NoZWNrKCl7dGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyJiZ0aGlzLnJlc2l6ZVRvRml0Q29udGVudCgpfXJlc2l6ZVRvRml0Q29udGVudCh0PSExKXtpZighdGhpcy5fZW5hYmxlZClyZXR1cm47aWYodGhpcy5fY2FjaGVUZXh0YXJlYUxpbmVIZWlnaHQoKSx0aGlzLl9jYWNoZVRleHRhcmVhUGxhY2Vob2xkZXJIZWlnaHQoKSwhdGhpcy5fY2FjaGVkTGluZUhlaWdodClyZXR1cm47Y29uc3QgZT10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsbj1lLnZhbHVlO2lmKCF0JiZ0aGlzLl9taW5Sb3dzPT09dGhpcy5fcHJldmlvdXNNaW5Sb3dzJiZuPT09dGhpcy5fcHJldmlvdXNWYWx1ZSlyZXR1cm47Y29uc3Qgbz10aGlzLl9tZWFzdXJlU2Nyb2xsSGVpZ2h0KCksaT1NYXRoLm1heChvLHRoaXMuX2NhY2hlZFBsYWNlaG9sZGVySGVpZ2h0fHwwKTtlLnN0eWxlLmhlaWdodD1gJHtpfXB4YCx0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCgpPT57InVuZGVmaW5lZCIhPXR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU/cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+dGhpcy5fc2Nyb2xsVG9DYXJldFBvc2l0aW9uKGUpKSk6c2V0VGltZW91dCgoKCk9PnRoaXMuX3Njcm9sbFRvQ2FyZXRQb3NpdGlvbihlKSkpfSkpLHRoaXMuX3ByZXZpb3VzVmFsdWU9bix0aGlzLl9wcmV2aW91c01pblJvd3M9dGhpcy5fbWluUm93c31yZXNldCgpe3ZvaWQgMCE9PXRoaXMuX2luaXRpYWxIZWlnaHQmJih0aGlzLl90ZXh0YXJlYUVsZW1lbnQuc3R5bGUuaGVpZ2h0PXRoaXMuX2luaXRpYWxIZWlnaHQpfV9ub29wSW5wdXRIYW5kbGVyKCl7fV9nZXREb2N1bWVudCgpe3JldHVybiB0aGlzLl9kb2N1bWVudHx8ZG9jdW1lbnR9X2dldFdpbmRvdygpe3JldHVybiB0aGlzLl9nZXREb2N1bWVudCgpLmRlZmF1bHRWaWV3fHx3aW5kb3d9X3Njcm9sbFRvQ2FyZXRQb3NpdGlvbih0KXtjb25zdHtzZWxlY3Rpb25TdGFydDplLHNlbGVjdGlvbkVuZDpufT10OyF0aGlzLl9kZXN0cm95ZWQuaXNTdG9wcGVkJiZ0aGlzLl9oYXNGb2N1cyYmdC5zZXRTZWxlY3Rpb25SYW5nZShlLG4pfX1QWi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UFopKGdmKEtoKSxnZihjSCksZ2YobUMpLGdmKHNNLDgpKX0sUFouybVkaXI9aG8oe3R5cGU6UFosc2VsZWN0b3JzOltbInRleHRhcmVhIiwiY2RrVGV4dGFyZWFBdXRvc2l6ZSIsIiJdXSxob3N0QXR0cnM6WyJyb3dzIiwiMSIsMSwiY2RrLXRleHRhcmVhLWF1dG9zaXplIl0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlJmKCJpbnB1dCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fbm9vcElucHV0SGFuZGxlcigpfSkpfSxpbnB1dHM6e21pblJvd3M6WyJjZGtBdXRvc2l6ZU1pblJvd3MiLCJtaW5Sb3dzIl0sbWF4Um93czpbImNka0F1dG9zaXplTWF4Um93cyIsIm1heFJvd3MiXSxlbmFibGVkOlsiY2RrVGV4dGFyZWFBdXRvc2l6ZSIsImVuYWJsZWQiXSxwbGFjZWhvbGRlcjoicGxhY2Vob2xkZXIifSxleHBvcnRBczpbImNka1RleHRhcmVhQXV0b3NpemUiXX0pLFBaLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6S2h9LHt0eXBlOmNIfSx7dHlwZTptQ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltzTV19XX1dLFBaLnByb3BEZWNvcmF0b3JzPXttaW5Sb3dzOlt7dHlwZTpSXyxhcmdzOlsiY2RrQXV0b3NpemVNaW5Sb3dzIl19XSxtYXhSb3dzOlt7dHlwZTpSXyxhcmdzOlsiY2RrQXV0b3NpemVNYXhSb3dzIl19XSxlbmFibGVkOlt7dHlwZTpSXyxhcmdzOlsiY2RrVGV4dGFyZWFBdXRvc2l6ZSJdfV0scGxhY2Vob2xkZXI6W3t0eXBlOlJffV0sX25vb3BJbnB1dEhhbmRsZXI6W3t0eXBlOlRfLGFyZ3M6WyJpbnB1dCJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoUFosW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoidGV4dGFyZWFbY2RrVGV4dGFyZWFBdXRvc2l6ZV0iLGV4cG9ydEFzOiJjZGtUZXh0YXJlYUF1dG9zaXplIixob3N0OntjbGFzczoiY2RrLXRleHRhcmVhLWF1dG9zaXplIixyb3dzOiIxIn19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpLaH0se3R5cGU6Y0h9LHt0eXBlOm1DfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W3NNXX1dfV19KSx7bWluUm93czpbe3R5cGU6Ul8sYXJnczpbImNka0F1dG9zaXplTWluUm93cyJdfV0sbWF4Um93czpbe3R5cGU6Ul8sYXJnczpbImNka0F1dG9zaXplTWF4Um93cyJdfV0sZW5hYmxlZDpbe3R5cGU6Ul8sYXJnczpbImNka1RleHRhcmVhQXV0b3NpemUiXX1dLHBsYWNlaG9sZGVyOlt7dHlwZTpSX31dLF9ub29wSW5wdXRIYW5kbGVyOlt7dHlwZTpUXyxhcmdzOlsiaW5wdXQiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyB3Wnt9d1ouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHdaKX0sd1ouybVtb2Q9Zm8oe3R5cGU6d1p9KSx3Wi7JtWluaj1Ebih7aW1wb3J0czpbW2RIXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHdaLFt7dHlwZTpMXyxhcmdzOlt7ZGVjbGFyYXRpb25zOltPWixQWl0saW1wb3J0czpbZEhdLGV4cG9ydHM6W09aLFBaXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKHdaLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bT1osUFpdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW2RIXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltPWixQWl19fSk7Y2xhc3Mga1ogZXh0ZW5kcyBQWntnZXQgbWF0QXV0b3NpemVNaW5Sb3dzKCl7cmV0dXJuIHRoaXMubWluUm93c31zZXQgbWF0QXV0b3NpemVNaW5Sb3dzKHQpe3RoaXMubWluUm93cz10fWdldCBtYXRBdXRvc2l6ZU1heFJvd3MoKXtyZXR1cm4gdGhpcy5tYXhSb3dzfXNldCBtYXRBdXRvc2l6ZU1heFJvd3ModCl7dGhpcy5tYXhSb3dzPXR9Z2V0IG1hdEF1dG9zaXplKCl7cmV0dXJuIHRoaXMuZW5hYmxlZH1zZXQgbWF0QXV0b3NpemUodCl7dGhpcy5lbmFibGVkPXR9Z2V0IG1hdFRleHRhcmVhQXV0b3NpemUoKXtyZXR1cm4gdGhpcy5lbmFibGVkfXNldCBtYXRUZXh0YXJlYUF1dG9zaXplKHQpe3RoaXMuZW5hYmxlZD10fX1rWi7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9VWEoa1opKSkobnx8a1opfX0pKCksa1ouybVkaXI9aG8oe3R5cGU6a1osc2VsZWN0b3JzOltbInRleHRhcmVhIiwibWF0LWF1dG9zaXplIiwiIl0sWyJ0ZXh0YXJlYSIsIm1hdFRleHRhcmVhQXV0b3NpemUiLCIiXV0saG9zdEF0dHJzOlsicm93cyIsIjEiLDEsImNkay10ZXh0YXJlYS1hdXRvc2l6ZSIsIm1hdC1hdXRvc2l6ZSJdLGlucHV0czp7Y2RrQXV0b3NpemVNaW5Sb3dzOiJjZGtBdXRvc2l6ZU1pblJvd3MiLGNka0F1dG9zaXplTWF4Um93czoiY2RrQXV0b3NpemVNYXhSb3dzIixtYXRBdXRvc2l6ZU1pblJvd3M6Im1hdEF1dG9zaXplTWluUm93cyIsbWF0QXV0b3NpemVNYXhSb3dzOiJtYXRBdXRvc2l6ZU1heFJvd3MiLG1hdEF1dG9zaXplOlsibWF0LWF1dG9zaXplIiwibWF0QXV0b3NpemUiXSxtYXRUZXh0YXJlYUF1dG9zaXplOiJtYXRUZXh0YXJlYUF1dG9zaXplIn0sZXhwb3J0QXM6WyJtYXRUZXh0YXJlYUF1dG9zaXplIl0sZmVhdHVyZXM6W1FwXX0pLGtaLnByb3BEZWNvcmF0b3JzPXttYXRBdXRvc2l6ZU1pblJvd3M6W3t0eXBlOlJffV0sbWF0QXV0b3NpemVNYXhSb3dzOlt7dHlwZTpSX31dLG1hdEF1dG9zaXplOlt7dHlwZTpSXyxhcmdzOlsibWF0LWF1dG9zaXplIl19XSxtYXRUZXh0YXJlYUF1dG9zaXplOlt7dHlwZTpSX31dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGtaLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6InRleHRhcmVhW21hdC1hdXRvc2l6ZV0sIHRleHRhcmVhW21hdFRleHRhcmVhQXV0b3NpemVdIixleHBvcnRBczoibWF0VGV4dGFyZWFBdXRvc2l6ZSIsaW5wdXRzOlsiY2RrQXV0b3NpemVNaW5Sb3dzIiwiY2RrQXV0b3NpemVNYXhSb3dzIl0saG9zdDp7Y2xhc3M6ImNkay10ZXh0YXJlYS1hdXRvc2l6ZSBtYXQtYXV0b3NpemUiLHJvd3M6IjEifX1dfV0sbnVsbCx7bWF0QXV0b3NpemVNaW5Sb3dzOlt7dHlwZTpSX31dLG1hdEF1dG9zaXplTWF4Um93czpbe3R5cGU6Ul99XSxtYXRBdXRvc2l6ZTpbe3R5cGU6Ul8sYXJnczpbIm1hdC1hdXRvc2l6ZSJdfV0sbWF0VGV4dGFyZWFBdXRvc2l6ZTpbe3R5cGU6Ul99XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgU1o9bmV3IGVyKCJNQVRfSU5QVVRfVkFMVUVfQUNDRVNTT1IiKSxEWj1bImJ1dHRvbiIsImNoZWNrYm94IiwiZmlsZSIsImhpZGRlbiIsImltYWdlIiwicmFkaW8iLCJyYW5nZSIsInJlc2V0Iiwic3VibWl0Il07Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2xldCBSWj0wO2NvbnN0IEVaPUxGKGNsYXNze2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMuX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcj10LHRoaXMuX3BhcmVudEZvcm09ZSx0aGlzLl9wYXJlbnRGb3JtR3JvdXA9bix0aGlzLm5nQ29udHJvbD1vfX0pO2NsYXNzIEFaIGV4dGVuZHMgRVp7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscixzLGwsYyl7c3VwZXIoYSxvLGksbiksdGhpcy5fZWxlbWVudFJlZj10LHRoaXMuX3BsYXRmb3JtPWUsdGhpcy5fYXV0b2ZpbGxNb25pdG9yPXMsdGhpcy5fZm9ybUZpZWxkPWMsdGhpcy5fdWlkPSJtYXQtaW5wdXQtIitSWisrLHRoaXMuZm9jdXNlZD0hMSx0aGlzLnN0YXRlQ2hhbmdlcz1uZXcgQix0aGlzLmNvbnRyb2xUeXBlPSJtYXQtaW5wdXQiLHRoaXMuYXV0b2ZpbGxlZD0hMSx0aGlzLl9kaXNhYmxlZD0hMSx0aGlzLl9yZXF1aXJlZD0hMSx0aGlzLl90eXBlPSJ0ZXh0Iix0aGlzLl9yZWFkb25seT0hMSx0aGlzLl9uZXZlckVtcHR5SW5wdXRUeXBlcz1bImRhdGUiLCJkYXRldGltZSIsImRhdGV0aW1lLWxvY2FsIiwibW9udGgiLCJ0aW1lIiwid2VlayJdLmZpbHRlcigodD0+bUgoKS5oYXModCkpKTtjb25zdCBkPXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxwPWQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTt0aGlzLl9pbnB1dFZhbHVlQWNjZXNzb3I9cnx8ZCx0aGlzLl9wcmV2aW91c05hdGl2ZVZhbHVlPXRoaXMudmFsdWUsdGhpcy5pZD10aGlzLmlkLGUuSU9TJiZsLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e3QubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsKHQ9Pntjb25zdCBlPXQudGFyZ2V0O2UudmFsdWV8fDAhPT1lLnNlbGVjdGlvblN0YXJ0fHwwIT09ZS5zZWxlY3Rpb25FbmR8fChlLnNldFNlbGVjdGlvblJhbmdlKDEsMSksZS5zZXRTZWxlY3Rpb25SYW5nZSgwLDApKX0pKX0pKSx0aGlzLl9pc1NlcnZlcj0hdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyLHRoaXMuX2lzTmF0aXZlU2VsZWN0PSJzZWxlY3QiPT09cCx0aGlzLl9pc1RleHRhcmVhPSJ0ZXh0YXJlYSI9PT1wLHRoaXMuX2lzSW5Gb3JtRmllbGQ9ISFjLHRoaXMuX2lzTmF0aXZlU2VsZWN0JiYodGhpcy5jb250cm9sVHlwZT1kLm11bHRpcGxlPyJtYXQtbmF0aXZlLXNlbGVjdC1tdWx0aXBsZSI6Im1hdC1uYXRpdmUtc2VsZWN0Iil9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMubmdDb250cm9sJiZudWxsIT09dGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQ/dGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQ6dGhpcy5fZGlzYWJsZWR9c2V0IGRpc2FibGVkKHQpe3RoaXMuX2Rpc2FibGVkPWVIKHQpLHRoaXMuZm9jdXNlZCYmKHRoaXMuZm9jdXNlZD0hMSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCkpfWdldCBpZCgpe3JldHVybiB0aGlzLl9pZH1zZXQgaWQodCl7dGhpcy5faWQ9dHx8dGhpcy5fdWlkfWdldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLl9yZXF1aXJlZH1zZXQgcmVxdWlyZWQodCl7dGhpcy5fcmVxdWlyZWQ9ZUgodCl9Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy5fdHlwZX1zZXQgdHlwZSh0KXt0aGlzLl90eXBlPXR8fCJ0ZXh0Iix0aGlzLl92YWxpZGF0ZVR5cGUoKSwhdGhpcy5faXNUZXh0YXJlYSYmbUgoKS5oYXModGhpcy5fdHlwZSkmJih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudHlwZT10aGlzLl90eXBlKX1nZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy5faW5wdXRWYWx1ZUFjY2Vzc29yLnZhbHVlfXNldCB2YWx1ZSh0KXt0IT09dGhpcy52YWx1ZSYmKHRoaXMuX2lucHV0VmFsdWVBY2Nlc3Nvci52YWx1ZT10LHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKSl9Z2V0IHJlYWRvbmx5KCl7cmV0dXJuIHRoaXMuX3JlYWRvbmx5fXNldCByZWFkb25seSh0KXt0aGlzLl9yZWFkb25seT1lSCh0KX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXImJnRoaXMuX2F1dG9maWxsTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkuc3Vic2NyaWJlKCh0PT57dGhpcy5hdXRvZmlsbGVkPXQuaXNBdXRvZmlsbGVkLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX0pKX1uZ09uQ2hhbmdlcygpe3RoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX1uZ09uRGVzdHJveSgpe3RoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCksdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyJiZ0aGlzLl9hdXRvZmlsbE1vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KX1uZ0RvQ2hlY2soKXt0aGlzLm5nQ29udHJvbCYmdGhpcy51cGRhdGVFcnJvclN0YXRlKCksdGhpcy5fZGlydHlDaGVja05hdGl2ZVZhbHVlKCksdGhpcy5fZGlydHlDaGVja1BsYWNlaG9sZGVyKCl9Zm9jdXModCl7dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKHQpfV9mb2N1c0NoYW5nZWQodCl7dCE9PXRoaXMuZm9jdXNlZCYmKHRoaXMuZm9jdXNlZD10LHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKSl9X29uSW5wdXQoKXt9X2RpcnR5Q2hlY2tQbGFjZWhvbGRlcigpe3ZhciB0LGU7Y29uc3Qgbj0obnVsbD09PShlPW51bGw9PT0odD10aGlzLl9mb3JtRmllbGQpfHx2b2lkIDA9PT10P3ZvaWQgMDp0Ll9oaWRlQ29udHJvbFBsYWNlaG9sZGVyKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5jYWxsKHQpKT9udWxsOnRoaXMucGxhY2Vob2xkZXI7aWYobiE9PXRoaXMuX3ByZXZpb3VzUGxhY2Vob2xkZXIpe2NvbnN0IHQ9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O3RoaXMuX3ByZXZpb3VzUGxhY2Vob2xkZXI9bixuP3Quc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsbik6dC5yZW1vdmVBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIil9fV9kaXJ0eUNoZWNrTmF0aXZlVmFsdWUoKXtjb25zdCB0PXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZTt0aGlzLl9wcmV2aW91c05hdGl2ZVZhbHVlIT09dCYmKHRoaXMuX3ByZXZpb3VzTmF0aXZlVmFsdWU9dCx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCkpfV92YWxpZGF0ZVR5cGUoKXtpZihEWi5pbmRleE9mKHRoaXMuX3R5cGUpPi0xJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpCi8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwp0aHJvdyhmdW5jdGlvbiB0KGUpe3JldHVybiBFcnJvcihgSW5wdXQgdHlwZSAiJHtlfSIgaXNuJ3Qgc3VwcG9ydGVkIGJ5IG1hdElucHV0LmApfSkodGhpcy5fdHlwZSl9X2lzTmV2ZXJFbXB0eSgpe3JldHVybiB0aGlzLl9uZXZlckVtcHR5SW5wdXRUeXBlcy5pbmRleE9mKHRoaXMuX3R5cGUpPi0xfV9pc0JhZElucHV0KCl7bGV0IHQ9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbGlkaXR5O3JldHVybiB0JiZ0LmJhZElucHV0fWdldCBlbXB0eSgpe3JldHVybiEodGhpcy5faXNOZXZlckVtcHR5KCl8fHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZXx8dGhpcy5faXNCYWRJbnB1dCgpfHx0aGlzLmF1dG9maWxsZWQpfWdldCBzaG91bGRMYWJlbEZsb2F0KCl7aWYodGhpcy5faXNOYXRpdmVTZWxlY3Qpe2NvbnN0IHQ9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LGU9dC5vcHRpb25zWzBdO3JldHVybiB0aGlzLmZvY3VzZWR8fHQubXVsdGlwbGV8fCF0aGlzLmVtcHR5fHwhISh0LnNlbGVjdGVkSW5kZXg+LTEmJmUmJmUubGFiZWwpfXJldHVybiB0aGlzLmZvY3VzZWR8fCF0aGlzLmVtcHR5fXNldERlc2NyaWJlZEJ5SWRzKHQpe3QubGVuZ3RoP3RoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFyaWEtZGVzY3JpYmVkYnkiLHQuam9pbigiICIpKTp0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWRlc2NyaWJlZGJ5Iil9b25Db250YWluZXJDbGljaygpe3RoaXMuZm9jdXNlZHx8dGhpcy5mb2N1cygpfX1BWi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8QVopKGdmKEtoKSxnZihjSCksZ2YobFcsMTApLGdmKFhXLDgpLGdmKGhHLDgpLGdmKG5MKSxnZihTWiwxMCksZ2YoeFopLGdmKG1DKSxnZih5VSw4KSl9LEFaLsm1ZGlyPWhvKHt0eXBlOkFaLHNlbGVjdG9yczpbWyJpbnB1dCIsIm1hdElucHV0IiwiIl0sWyJ0ZXh0YXJlYSIsIm1hdElucHV0IiwiIl0sWyJzZWxlY3QiLCJtYXROYXRpdmVDb250cm9sIiwiIl0sWyJpbnB1dCIsIm1hdE5hdGl2ZUNvbnRyb2wiLCIiXSxbInRleHRhcmVhIiwibWF0TmF0aXZlQ29udHJvbCIsIiJdXSxob3N0QXR0cnM6WzEsIm1hdC1pbnB1dC1lbGVtZW50IiwibWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbCJdLGhvc3RWYXJzOjksaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlJmKCJmb2N1cyIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fZm9jdXNDaGFuZ2VkKCEwKX0pKSgiYmx1ciIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fZm9jdXNDaGFuZ2VkKCExKX0pKSgiaW5wdXQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX29uSW5wdXQoKX0pKSwyJmUmJihjZygiZGlzYWJsZWQiLG4uZGlzYWJsZWQpKCJyZXF1aXJlZCIsbi5yZXF1aXJlZCkseW0oImlkIixuLmlkKSgiZGF0YS1wbGFjZWhvbGRlciIsbi5wbGFjZWhvbGRlcikoInJlYWRvbmx5IixuLnJlYWRvbmx5JiYhbi5faXNOYXRpdmVTZWxlY3R8fG51bGwpKCJhcmlhLWludmFsaWQiLG4uZW1wdHkmJm4ucmVxdWlyZWQ/bnVsbDpuLmVycm9yU3RhdGUpKCJhcmlhLXJlcXVpcmVkIixuLnJlcXVpcmVkKSxjdSgibWF0LWlucHV0LXNlcnZlciIsbi5faXNTZXJ2ZXIpKX0saW5wdXRzOntpZDoiaWQiLGRpc2FibGVkOiJkaXNhYmxlZCIscmVxdWlyZWQ6InJlcXVpcmVkIix0eXBlOiJ0eXBlIix2YWx1ZToidmFsdWUiLHJlYWRvbmx5OiJyZWFkb25seSIscGxhY2Vob2xkZXI6InBsYWNlaG9sZGVyIixlcnJvclN0YXRlTWF0Y2hlcjoiZXJyb3JTdGF0ZU1hdGNoZXIiLHVzZXJBcmlhRGVzY3JpYmVkQnk6WyJhcmlhLWRlc2NyaWJlZGJ5IiwidXNlckFyaWFEZXNjcmliZWRCeSJdfSxleHBvcnRBczpbIm1hdElucHV0Il0sZmVhdHVyZXM6W2poKFt7cHJvdmlkZTppVSx1c2VFeGlzdGluZzpBWn1dKSxRcCxxb119KSxBWi5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOktofSx7dHlwZTpjSH0se3R5cGU6bFcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfV19LHt0eXBlOlhXLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOmhHLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOm5MfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOlZyfSx7dHlwZTpMcixhcmdzOltTWl19XX0se3R5cGU6eFp9LHt0eXBlOm1DfSx7dHlwZTpfVSxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbeVVdfV19XSxBWi5wcm9wRGVjb3JhdG9ycz17ZGlzYWJsZWQ6W3t0eXBlOlJffV0saWQ6W3t0eXBlOlJffV0scGxhY2Vob2xkZXI6W3t0eXBlOlJffV0scmVxdWlyZWQ6W3t0eXBlOlJffV0sdHlwZTpbe3R5cGU6Ul99XSxlcnJvclN0YXRlTWF0Y2hlcjpbe3R5cGU6Ul99XSx1c2VyQXJpYURlc2NyaWJlZEJ5Olt7dHlwZTpSXyxhcmdzOlsiYXJpYS1kZXNjcmliZWRieSJdfV0sdmFsdWU6W3t0eXBlOlJffV0scmVhZG9ubHk6W3t0eXBlOlJffV0sX2ZvY3VzQ2hhbmdlZDpbe3R5cGU6VF8sYXJnczpbImZvY3VzIixbInRydWUiXV19LHt0eXBlOlRfLGFyZ3M6WyJibHVyIixbImZhbHNlIl1dfV0sX29uSW5wdXQ6W3t0eXBlOlRfLGFyZ3M6WyJpbnB1dCJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoQVosW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiaW5wdXRbbWF0SW5wdXRdLCB0ZXh0YXJlYVttYXRJbnB1dF0sIHNlbGVjdFttYXROYXRpdmVDb250cm9sXSxcbiAgICAgIGlucHV0W21hdE5hdGl2ZUNvbnRyb2xdLCB0ZXh0YXJlYVttYXROYXRpdmVDb250cm9sXSIsZXhwb3J0QXM6Im1hdElucHV0Iixob3N0OntjbGFzczoibWF0LWlucHV0LWVsZW1lbnQgbWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbCIsIltjbGFzcy5tYXQtaW5wdXQtc2VydmVyXSI6Il9pc1NlcnZlciIsIlthdHRyLmlkXSI6ImlkIiwiW2F0dHIuZGF0YS1wbGFjZWhvbGRlcl0iOiJwbGFjZWhvbGRlciIsIltkaXNhYmxlZF0iOiJkaXNhYmxlZCIsIltyZXF1aXJlZF0iOiJyZXF1aXJlZCIsIlthdHRyLnJlYWRvbmx5XSI6InJlYWRvbmx5ICYmICFfaXNOYXRpdmVTZWxlY3QgfHwgbnVsbCIsIlthdHRyLmFyaWEtaW52YWxpZF0iOiIoZW1wdHkgJiYgcmVxdWlyZWQpID8gbnVsbCA6IGVycm9yU3RhdGUiLCJbYXR0ci5hcmlhLXJlcXVpcmVkXSI6InJlcXVpcmVkIn0scHJvdmlkZXJzOlt7cHJvdmlkZTppVSx1c2VFeGlzdGluZzpBWn1dfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6S2h9LHt0eXBlOmNIfSx7dHlwZTpsVyxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6VnJ9XX0se3R5cGU6WFcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX0se3R5cGU6aEcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX0se3R5cGU6bkx9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6VnJ9LHt0eXBlOkxyLGFyZ3M6W1NaXX1dfSx7dHlwZTp4Wn0se3R5cGU6bUN9LHt0eXBlOl9VLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOlt5VV19XX1dfSkse2lkOlt7dHlwZTpSX31dLGRpc2FibGVkOlt7dHlwZTpSX31dLHJlcXVpcmVkOlt7dHlwZTpSX31dLHR5cGU6W3t0eXBlOlJffV0sdmFsdWU6W3t0eXBlOlJffV0scmVhZG9ubHk6W3t0eXBlOlJffV0sX2ZvY3VzQ2hhbmdlZDpbe3R5cGU6VF8sYXJnczpbImZvY3VzIixbInRydWUiXV19LHt0eXBlOlRfLGFyZ3M6WyJibHVyIixbImZhbHNlIl1dfV0sX29uSW5wdXQ6W3t0eXBlOlRfLGFyZ3M6WyJpbnB1dCJdfV0scGxhY2Vob2xkZXI6W3t0eXBlOlJffV0sZXJyb3JTdGF0ZU1hdGNoZXI6W3t0eXBlOlJffV0sdXNlckFyaWFEZXNjcmliZWRCeTpbe3R5cGU6Ul8sYXJnczpbImFyaWEtZGVzY3JpYmVkYnkiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBUWnt9ZnVuY3Rpb24gTloodCxlKXtpZigxJnQmJihDZigwLCJtYXQtZXJyb3IiKSxQdSgxKSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoKTtEYygxKSxrdSgiIFJlbG9hZCBwZXJpb2QgaGFzIHRvIGJlIG1pbmltdW0gb2YgIix0Lk1JTl9SRUxPQURfUEVSSU9EX0lOX1MsIiBzZWNvbmRzLiAiKX19ZnVuY3Rpb24geloodCxlKXsxJnQmJihDZigwLCJtYXQtZXJyb3IiKSxQdSgxLCIgUGFnZSBzaXplIGhhcyB0byBiZSBhIHBvc2l0aXZlIGludGVnZXIuICIpLE1mKCkpfVRaLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxUWil9LFRaLsm1bW9kPWZvKHt0eXBlOlRafSksVFouybVpbmo9RG4oe3Byb3ZpZGVyczpbbkxdLGltcG9ydHM6W1t3WixDVSxORl0sd1osQ1VdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihUWixbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbQVosa1pdLGltcG9ydHM6W3daLENVLE5GXSxleHBvcnRzOlt3WixDVSxBWixrWl0scHJvdmlkZXJzOltuTF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhUWix7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW0FaLGtaXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVyblt3WixDVSxORl19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bd1osQ1UsQVosa1pdfX0pO2NsYXNzIElae2NvbnN0cnVjdG9yKCl7dGhpcy5yZWxvYWRUb2dnbGVkPW5ldyBTeSx0aGlzLnJlbG9hZFBlcmlvZEluTXNDaGFuZ2VkPW5ldyBTeSx0aGlzLnBhZ2VTaXplQ2hhbmdlZD1uZXcgU3ksdGhpcy5NSU5fUkVMT0FEX1BFUklPRF9JTl9TPTMwLHRoaXMucmVsb2FkUGVyaW9kQ29udHJvbD1uZXcgV1codGhpcy5NSU5fUkVMT0FEX1BFUklPRF9JTl9TLFtOVS5yZXF1aXJlZCxOVS5taW4odGhpcy5NSU5fUkVMT0FEX1BFUklPRF9JTl9TKV0pLHRoaXMucGFnaW5hdGlvbkNvbnRyb2w9bmV3IFdXKDEsW05VLnJlcXVpcmVkLE5VLm1pbigxKSx0PT57Y29uc3QgZT1OdW1iZXIodC52YWx1ZSk7cmV0dXJuIE1hdGgucm91bmQoZSk9PT10LnZhbHVlP251bGw6e2ludGVnZXI6e3ZhbHVlOnQudmFsdWV9fX1dKSx0aGlzLm5nVW5zdWJzY3JpYmU9bmV3IEJ9bmdPbkluaXQoKXt0aGlzLnJlbG9hZFBlcmlvZENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoamUodGhpcy5uZ1Vuc3Vic2NyaWJlKSxDZSg1MDApLHVlKCgoKT0+dGhpcy5yZWxvYWRQZXJpb2RDb250cm9sLnZhbGlkKSkpLnN1YnNjcmliZSgoKCk9PntpZighdGhpcy5yZWxvYWRQZXJpb2RDb250cm9sLnZhbGlkKXJldHVybjt0aGlzLnJlbG9hZFBlcmlvZEluTXNDaGFuZ2VkLmVtaXQoMWUzKnRoaXMucmVsb2FkUGVyaW9kQ29udHJvbC52YWx1ZSl9KSksdGhpcy5wYWdpbmF0aW9uQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShqZSh0aGlzLm5nVW5zdWJzY3JpYmUpLENlKDUwMCksdWUoKCgpPT50aGlzLnBhZ2luYXRpb25Db250cm9sLnZhbGlkKSkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLnBhZ2VTaXplQ2hhbmdlZC5lbWl0KHRoaXMucGFnaW5hdGlvbkNvbnRyb2wudmFsdWUpfSkpfW5nT25EZXN0cm95KCl7dGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKSx0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKX1uZ09uQ2hhbmdlcyh0KXtpZih0LnJlbG9hZFBlcmlvZEluTXMpe2NvbnN0IGU9dC5yZWxvYWRQZXJpb2RJbk1zO2UucHJldmlvdXNWYWx1ZSE9PWUuY3VycmVudFZhbHVlJiZ0aGlzLnJlbG9hZFBlcmlvZENvbnRyb2wuc2V0VmFsdWUoZS5jdXJyZW50VmFsdWUvMWUzKX1pZih0LnJlbG9hZEVuYWJsZWQpe3QucmVsb2FkRW5hYmxlZC5jdXJyZW50VmFsdWU/dGhpcy5yZWxvYWRQZXJpb2RDb250cm9sLmVuYWJsZSgpOnRoaXMucmVsb2FkUGVyaW9kQ29udHJvbC5kaXNhYmxlKCl9aWYodC5wYWdlU2l6ZSl7Y29uc3QgZT10LnBhZ2VTaXplO2UucHJldmlvdXNWYWx1ZSE9PWUuY3VycmVudFZhbHVlJiZ0aGlzLnBhZ2luYXRpb25Db250cm9sLnNldFZhbHVlKGUuY3VycmVudFZhbHVlKX19b25SZWxvYWRUb2dnbGUoKXt0aGlzLnJlbG9hZFRvZ2dsZWQuZW1pdCgpfX1JWi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SVopfSxJWi7JtWNtcD1zbyh7dHlwZTpJWixzZWxlY3RvcnM6W1sic2V0dGluZ3MtZGlhbG9nLWNvbXBvbmVudCJdXSxpbnB1dHM6e3JlbG9hZEVuYWJsZWQ6InJlbG9hZEVuYWJsZWQiLHJlbG9hZFBlcmlvZEluTXM6InJlbG9hZFBlcmlvZEluTXMiLHBhZ2VTaXplOiJwYWdlU2l6ZSJ9LG91dHB1dHM6e3JlbG9hZFRvZ2dsZWQ6InJlbG9hZFRvZ2dsZWQiLHJlbG9hZFBlcmlvZEluTXNDaGFuZ2VkOiJyZWxvYWRQZXJpb2RJbk1zQ2hhbmdlZCIscGFnZVNpemVDaGFuZ2VkOiJwYWdlU2l6ZUNoYW5nZWQifSxmZWF0dXJlczpbcW9dLGRlY2xzOjE0LHZhcnM6NSxjb25zdHM6W1sxLCJyZWxvYWQtdG9nZ2xlIl0sWzMsImNoZWNrZWQiLCJjaGFuZ2UiXSxbIm1hdElucHV0IiwiIiwidHlwZSIsIm51bWJlciIsInBsYWNlaG9sZGVyIiwiUmVsb2FkIFBlcmlvZCIsMSwicmVsb2FkLXBlcmlvZCIsMywiZm9ybUNvbnRyb2wiXSxbNCwibmdJZiJdLFsibWF0SW5wdXQiLCIiLCJ0eXBlIiwibnVtYmVyIiwicGxhY2Vob2xkZXIiLCJQYWdpbmF0aW9uIExpbWl0IiwxLCJwYWdlLXNpemUiLDMsImZvcm1Db250cm9sIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJoMyIpLFB1KDEsIlNldHRpbmdzIiksTWYoKSxDZigyLCJkaXYiKSxDZigzLCJkaXYiLDApLENmKDQsIm1hdC1jaGVja2JveCIsMSksUmYoImNoYW5nZSIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblJlbG9hZFRvZ2dsZSgpfSkpLFB1KDUsIlJlbG9hZCBkYXRhIiksTWYoKSxNZigpLENmKDYsImRpdiIpLENmKDcsIm1hdC1mb3JtLWZpZWxkIiksdmYoOCwiaW5wdXQiLDIpLE1mKCksSG0oOSxOWiwyLDEsIm1hdC1lcnJvciIsMyksTWYoKSxNZigpLENmKDEwLCJkaXYiKSxDZigxMSwibWF0LWZvcm0tZmllbGQiKSx2ZigxMiwiaW5wdXQiLDQpLE1mKCksSG0oMTMselosMiwwLCJtYXQtZXJyb3IiLDMpLE1mKCkpLDImZSYmKERjKDQpLGJmKCJjaGVja2VkIixuLnJlbG9hZEVuYWJsZWQpLERjKDQpLGJmKCJmb3JtQ29udHJvbCIsbi5yZWxvYWRQZXJpb2RDb250cm9sKSxEYygxKSxiZigibmdJZiIsbi5yZWxvYWRQZXJpb2RDb250cm9sLmhhc0Vycm9yKCJtaW4iKXx8bi5yZWxvYWRQZXJpb2RDb250cm9sLmhhc0Vycm9yKCJyZXF1aXJlZCIpKSxEYygzKSxiZigiZm9ybUNvbnRyb2wiLG4ucGFnaW5hdGlvbkNvbnRyb2wpLERjKDEpLGJmKCJuZ0lmIixuLnBhZ2luYXRpb25Db250cm9sLmludmFsaWQpKX0sZGlyZWN0aXZlczpbYlosX1UsQVosYUcsU1UsbVcsdUcsUHYsblVdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV0ge1xuICBmb250LXNpemU6IDE1cHg7XG59XG5cbltfbmdob3N0LSVDT01QJV0gICAgPiBkaXZbX25nY29udGVudC0lQ09NUCVdIHtcbiAgbWFyZ2luOiAxMHB4IDA7XG59XG5cbltfbmdob3N0LSVDT01QJV0gICAgPiBbX25nY29udGVudC0lQ09NUCVdOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuW19uZ2hvc3QtJUNPTVAlXSAgICA+IFtfbmdjb250ZW50LSVDT01QJV06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbmgzW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cblxuLnJlbG9hZC10b2dnbGVbX25nY29udGVudC0lQ09NUCVdIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn0iXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoSVosW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3Rvcjoic2V0dGluZ3MtZGlhbG9nLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6InNldHRpbmdzX2RpYWxvZ19jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9zZXR0aW5nc19kaWFsb2dfY29tcG9uZW50LmNzcyJdfV19XSxudWxsLHtyZWxvYWRFbmFibGVkOlt7dHlwZTpSX31dLHJlbG9hZFBlcmlvZEluTXM6W3t0eXBlOlJffV0scGFnZVNpemU6W3t0eXBlOlJffV0scmVsb2FkVG9nZ2xlZDpbe3R5cGU6RV99XSxyZWxvYWRQZXJpb2RJbk1zQ2hhbmdlZDpbe3R5cGU6RV99XSxwYWdlU2l6ZUNoYW5nZWQ6W3t0eXBlOkVffV19KTtjbGFzcyBIWntjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5yZWxvYWRFbmFibGVkJD10aGlzLnN0b3JlLnNlbGVjdCh1SSksdGhpcy5yZWxvYWRQZXJpb2RJbk1zJD10aGlzLnN0b3JlLnNlbGVjdChnSSksdGhpcy5wYWdlU2l6ZSQ9dGhpcy5zdG9yZS5zZWxlY3QoaEkpfW9uUmVsb2FkVG9nZ2xlZCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2goc0koKSl9b25SZWxvYWRQZXJpb2RJbk1zQ2hhbmdlZCh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKGxJKHtwZXJpb2RJbk1zOnR9KSl9b25QYWdlU2l6ZUNoYW5nZWQodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChjSSh7c2l6ZTp0fSkpfX1IWi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SFopKGdmKGlTKSl9LEhaLsm1Y21wPXNvKHt0eXBlOkhaLHNlbGVjdG9yczpbWyJzZXR0aW5ncy1kaWFsb2ciXV0sZGVjbHM6NCx2YXJzOjksY29uc3RzOltbMywicmVsb2FkRW5hYmxlZCIsInJlbG9hZFBlcmlvZEluTXMiLCJwYWdlU2l6ZSIsInJlbG9hZFRvZ2dsZWQiLCJyZWxvYWRQZXJpb2RJbk1zQ2hhbmdlZCIsInBhZ2VTaXplQ2hhbmdlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwic2V0dGluZ3MtZGlhbG9nLWNvbXBvbmVudCIsMCksUmYoInJlbG9hZFRvZ2dsZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25SZWxvYWRUb2dnbGVkKCl9KSkoInJlbG9hZFBlcmlvZEluTXNDaGFuZ2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblJlbG9hZFBlcmlvZEluTXNDaGFuZ2VkKGUpfSkpKCJwYWdlU2l6ZUNoYW5nZWQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uUGFnZVNpemVDaGFuZ2VkKGUpfSkpLF95KDEsImFzeW5jIiksX3koMiwiYXN5bmMiKSxfeSgzLCJhc3luYyIpLE1mKCkpLDImZSYmYmYoInJlbG9hZEVuYWJsZWQiLEN5KDEsMyxuLnJlbG9hZEVuYWJsZWQkKSkoInJlbG9hZFBlcmlvZEluTXMiLEN5KDIsNSxuLnJlbG9hZFBlcmlvZEluTXMkKSkoInBhZ2VTaXplIixDeSgzLDcsbi5wYWdlU2l6ZSQpKX0sZGlyZWN0aXZlczpbSVpdLHBpcGVzOltWdl0sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihIWixbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJzZXR0aW5ncy1kaWFsb2ciLHRlbXBsYXRlOidcbiAgICA8c2V0dGluZ3MtZGlhbG9nLWNvbXBvbmVudFxuICAgICAgW3JlbG9hZEVuYWJsZWRdPSJyZWxvYWRFbmFibGVkJCB8IGFzeW5jIlxuICAgICAgW3JlbG9hZFBlcmlvZEluTXNdPSJyZWxvYWRQZXJpb2RJbk1zJCB8IGFzeW5jIlxuICAgICAgW3BhZ2VTaXplXT0icGFnZVNpemUkIHwgYXN5bmMiXG4gICAgICAocmVsb2FkVG9nZ2xlZCk9Im9uUmVsb2FkVG9nZ2xlZCgpIlxuICAgICAgKHJlbG9hZFBlcmlvZEluTXNDaGFuZ2VkKT0ib25SZWxvYWRQZXJpb2RJbk1zQ2hhbmdlZCgkZXZlbnQpIlxuICAgICAgKHBhZ2VTaXplQ2hhbmdlZCk9Im9uUGFnZVNpemVDaGFuZ2VkKCRldmVudCkiXG4gICAgPjwvc2V0dGluZ3MtZGlhbG9nLWNvbXBvbmVudD5cbiAgJ31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfV19KSxudWxsKTtjbGFzcyBGWntjb25zdHJ1Y3Rvcih0KXt0aGlzLmRpYWxvZz10fWlzQnV0dG9uRGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5zZXR0aW5nc0xvYWRTdGF0ZT09PVVFLk5PVF9MT0FERUR8fHRoaXMuc2V0dGluZ3NMb2FkU3RhdGU9PT1VRS5MT0FESU5HfW9wZW5EaWFsb2coKXt0aGlzLmRpYWxvZy5vcGVuKEhaLHt3aWR0aDoiNDAwcHgifSl9fUZaLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxGWikoZ2YoWFkpKX0sRlouybVjbXA9c28oe3R5cGU6Rlosc2VsZWN0b3JzOltbInNldHRpbmdzLWJ1dHRvbi1jb21wb25lbnQiXV0saW5wdXRzOntzZXR0aW5nc0xvYWRTdGF0ZToic2V0dGluZ3NMb2FkU3RhdGUifSxkZWNsczoyLHZhcnM6MSxjb25zdHM6W1sibWF0LWljb24tYnV0dG9uIiwiIiwzLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJzdmdJY29uIiwic2V0dGluZ3NfMjRweCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwiYnV0dG9uIiwwKSxSZigiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub3BlbkRpYWxvZygpfSkpLHZmKDEsIm1hdC1pY29uIiwxKSxNZigpKSwyJmUmJmJmKCJkaXNhYmxlZCIsbi5pc0J1dHRvbkRpc2FibGVkKCkpfSxkaXJlY3RpdmVzOltOTCxNcV0sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihGWixbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJzZXR0aW5ncy1idXR0b24tY29tcG9uZW50Iix0ZW1wbGF0ZTonXG4gICAgPGJ1dHRvblxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBbZGlzYWJsZWRdPSJpc0J1dHRvbkRpc2FibGVkKCkiXG4gICAgICAoY2xpY2spPSJvcGVuRGlhbG9nKCkiXG4gICAgPlxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249InNldHRpbmdzXzI0cHgiPjwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gICd9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpYWX1dfSkse3NldHRpbmdzTG9hZFN0YXRlOlt7dHlwZTpSX31dfSk7Y2xhc3MgTFp7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMuc2V0dGluZ3NMb2FkU3RhdGUkPXRoaXMuc3RvcmUuc2VsZWN0KGZJKX19TFouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fExaKShnZihpUykpfSxMWi7JtWNtcD1zbyh7dHlwZTpMWixzZWxlY3RvcnM6W1sic2V0dGluZ3MtYnV0dG9uIl1dLGRlY2xzOjIsdmFyczozLGNvbnN0czpbWzMsInNldHRpbmdzTG9hZFN0YXRlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJih2ZigwLCJzZXR0aW5ncy1idXR0b24tY29tcG9uZW50IiwwKSxfeSgxLCJhc3luYyIpKSwyJmUmJmJmKCJzZXR0aW5nc0xvYWRTdGF0ZSIsQ3koMSwxLG4uc2V0dGluZ3NMb2FkU3RhdGUkKSl9LGRpcmVjdGl2ZXM6W0ZaXSxwaXBlczpbVnZdLGVuY2Fwc3VsYXRpb246Mn0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoTFosW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3Rvcjoic2V0dGluZ3MtYnV0dG9uIix0ZW1wbGF0ZTonXG4gICAgPHNldHRpbmdzLWJ1dHRvbi1jb21wb25lbnRcbiAgICAgIFtzZXR0aW5nc0xvYWRTdGF0ZV09InNldHRpbmdzTG9hZFN0YXRlJCB8IGFzeW5jIlxuICAgID48L3NldHRpbmdzLWJ1dHRvbi1jb21wb25lbnQ+XG4gICd9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSksbnVsbCk7Y2xhc3MgQlp7fUJaLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxCWil9LEJaLsm1Y21wPXNvKHt0eXBlOkJaLHNlbGVjdG9yczpbWyJhcHAtaGVhZGVyIl1dLGRlY2xzOjEwLHZhcnM6MCxjb25zdHM6W1sxLCJicmFuZCJdLFsxLCJwbHVnaW5zIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJocmVmIiwiaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIiwicmVsIiwibm9vcGVuZXIgbm9yZWZlcnJlciIsInRhcmdldCIsIl9ibGFuayIsImFyaWEtbGFiZWwiLCJIZWxwIiwxLCJyZWFkbWUiXSxbInN2Z0ljb24iLCJoZWxwX291dGxpbmVfMjRweCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwibWF0LXRvb2xiYXIiKSxDZigxLCJzcGFuIiwwKSxQdSgyLCJUZW5zb3JCb2FyZCIpLE1mKCksdmYoMywicGx1Z2luLXNlbGVjdG9yIiwxKSx2Zig0LCJ0YmRldi11cGxvYWQtYnV0dG9uIiksdmYoNSwiYXBwLWhlYWRlci1kYXJrLW1vZGUtdG9nZ2xlIiksdmYoNiwiYXBwLWhlYWRlci1yZWxvYWQiKSx2Zig3LCJzZXR0aW5ncy1idXR0b24iKSxDZig4LCJhIiwyKSx2Zig5LCJtYXQtaWNvbiIsMyksTWYoKSxNZigpKX0sZGlyZWN0aXZlczpbalYsVFksU3EsZVosb1osTFosekwsTXFdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfW1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6I2ZmZjtkaXNwbGF5OmZsZXg7aGVpZ2h0OjY0cHg7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjEwMCV9dGJkZXYtdXBsb2FkLWJ1dHRvbi5zaG93bltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgOHB4IDAgMTZweH0uYnJhbmRbX25nY29udGVudC0lQ09NUCVdLCAucmVhZG1lW19uZ2NvbnRlbnQtJUNPTVAlXSwgYXBwLWhlYWRlci1yZWxvYWRbX25nY29udGVudC0lQ09NUCVdLCBzZXR0aW5ncy1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZsZXg6MCAwIGF1dG99LmJyYW5kW19uZ2NvbnRlbnQtJUNPTVAlXXtsZXR0ZXItc3BhY2luZzotMC4wMjVlbTttYXJnaW4tbGVmdDoxMHB4O3RleHQtcmVuZGVyaW5nOm9wdGltaXplTGVnaWJpbGl0eX0ucGx1Z2luc1tfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4OjEgMSBhdXRvO2ZvbnQtc2l6ZToxNHB4O2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn0nXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoQlosW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoiYXBwLWhlYWRlciIsdGVtcGxhdGU6J1xuICAgIDxtYXQtdG9vbGJhcj5cbiAgICAgIDxzcGFuIGNsYXNzPSJicmFuZCI+VGVuc29yQm9hcmQ8L3NwYW4+XG4gICAgICA8cGx1Z2luLXNlbGVjdG9yIGNsYXNzPSJwbHVnaW5zIj48L3BsdWdpbi1zZWxlY3Rvcj5cbiAgICAgIDx0YmRldi11cGxvYWQtYnV0dG9uPjwvdGJkZXYtdXBsb2FkLWJ1dHRvbj5cbiAgICAgIDxhcHAtaGVhZGVyLWRhcmstbW9kZS10b2dnbGU+PC9hcHAtaGVhZGVyLWRhcmstbW9kZS10b2dnbGU+XG4gICAgICA8YXBwLWhlYWRlci1yZWxvYWQ+PC9hcHAtaGVhZGVyLXJlbG9hZD5cbiAgICAgIDxzZXR0aW5ncy1idXR0b24+PC9zZXR0aW5ncy1idXR0b24+XG4gICAgICA8YVxuICAgICAgICBjbGFzcz0icmVhZG1lIlxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIlxuICAgICAgICByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiXG4gICAgICAgIHRhcmdldD0iX2JsYW5rIlxuICAgICAgICBhcmlhLWxhYmVsPSJIZWxwIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj0iaGVscF9vdXRsaW5lXzI0cHgiPjwvbWF0LWljb24+XG4gICAgICA8L2E+XG4gICAgPC9tYXQtdG9vbGJhcj5cbiAgJyxzdHlsZVVybHM6WyJoZWFkZXJfY29tcG9uZW50LmNzcyJdfV19XSxudWxsLG51bGwpO2NvbnN0IFZaPVsicm91dGVDb250YWluZXIiXTtjbGFzcyBqWntjb25zdHJ1Y3Rvcih0KXt0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcj10fW5nT25DaGFuZ2VzKHQpe2NvbnN0IGU9dC5hY3RpdmVOZ0NvbXBvbmVudDtpZihlJiYodGhpcy5yb3V0ZUNvbnRhaW5lci5jbGVhcigpLGUuY3VycmVudFZhbHVlKSl7Y29uc3QgdD10aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShlLmN1cnJlbnRWYWx1ZSk7dGhpcy5yb3V0ZUNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQodCl9fX1qWi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8alopKGdmKEdoKSl9LGpaLsm1Y21wPXNvKHt0eXBlOmpaLHNlbGVjdG9yczpbWyJyb3V0ZXItb3V0bGV0LWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmVnkoVlosNyxGYiksMiZlKXtsZXQgdDtCeSh0PVV5KCkpJiYobi5yb3V0ZUNvbnRhaW5lcj10LmZpcnN0KX19LGlucHV0czp7YWN0aXZlTmdDb21wb25lbnQ6ImFjdGl2ZU5nQ29tcG9uZW50In0sZmVhdHVyZXM6W3FvXSxkZWNsczoyLHZhcnM6MCxjb25zdHM6W1sicm91dGVDb250YWluZXIiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmUGYoMCxudWxsLDApfSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGpaLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6InJvdXRlci1vdXRsZXQtY29tcG9uZW50Iix0ZW1wbGF0ZToiIDxuZy1jb250YWluZXIgI3JvdXRlQ29udGFpbmVyPjwvbmctY29udGFpbmVyPiAiLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpHaH1dfSkse3JvdXRlQ29udGFpbmVyOlt7dHlwZTphcixhcmdzOlsicm91dGVDb250YWluZXIiLHtzdGF0aWM6ITAscmVhZDpGYn1dfV0sYWN0aXZlTmdDb21wb25lbnQ6W3t0eXBlOlJffV19KTtjbGFzcyBVWntjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuc3RvcmU9dCx0aGlzLnJlZ2lzdHJ5PWUsdGhpcy5hY3RpdmVOZ0NvbXBvbmVudCQ9S3QoW3RoaXMuc3RvcmUuc2VsZWN0KGhSKSx0aGlzLnN0b3JlLnNlbGVjdChiUildKS5waXBlKFZ0KCgoW3QsZV0pPT57aWYoIXQpcmV0dXJuIG51bGw7cmV0dXJuIG51bGwhPT1lJiYheEQodCxlKT9udWxsOnRoaXMucmVnaXN0cnkuZ2V0TmdDb21wb25lbnRCeVJvdXRlS2luZCh0LnJvdXRlS2luZCl9KSkpfX12YXIgV1o7VVouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFVaKShnZihpUyksZ2YoZlIpKX0sVVouybVjbXA9c28oe3R5cGU6VVosc2VsZWN0b3JzOltbInJvdXRlci1vdXRsZXQiXV0sZGVjbHM6Mix2YXJzOjMsY29uc3RzOltbMywiYWN0aXZlTmdDb21wb25lbnQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKHZmKDAsInJvdXRlci1vdXRsZXQtY29tcG9uZW50IiwwKSxfeSgxLCJhc3luYyIpKSwyJmUmJmJmKCJhY3RpdmVOZ0NvbXBvbmVudCIsQ3koMSwxLG4uYWN0aXZlTmdDb21wb25lbnQkKSl9LGRpcmVjdGl2ZXM6W2paXSxwaXBlczpbVnZdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoVVosW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3Rvcjoicm91dGVyLW91dGxldCIsdGVtcGxhdGU6J1xuICAgIDxyb3V0ZXItb3V0bGV0LWNvbXBvbmVudFxuICAgICAgW2FjdGl2ZU5nQ29tcG9uZW50XT0iYWN0aXZlTmdDb21wb25lbnQkIHwgYXN5bmMiXG4gICAgPjwvcm91dGVyLW91dGxldC1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfSx7dHlwZTpmUn1dfSksbnVsbCksKGZ1bmN0aW9uKHQpe3RbdC5BQ1RJVkVfUExVR0lOPTBdPSJBQ1RJVkVfUExVR0lOIn0pKFdafHwoV1o9e30pKTtjbGFzcyBHWntjb25zdHJ1Y3Rvcih0KXt0aGlzLmRlZXBMaW5rZXI9dCx0aGlzLm9uVmFsdWVDaGFuZ2U9bmV3IFN5LHRoaXMubmdVbnN1YnNjcmliZT1uZXcgQix0aGlzLm9uSGFzaENoYW5nZT1sZSh3aW5kb3csInBvcHN0YXRlIix7cGFzc2l2ZTohMH0pLnBpcGUoamUodGhpcy5uZ1Vuc3Vic2NyaWJlKSl9bmdPbkluaXQoKXt0aGlzLm9uSGFzaENoYW5nZS5zdWJzY3JpYmUoKCgpPT57Y29uc3QgdD10aGlzLmRlZXBMaW5rZXIuZ2V0UGx1Z2luSWQoKTt0IT09dGhpcy5hY3RpdmVQbHVnaW5JZCYmdGhpcy5vblZhbHVlQ2hhbmdlLmVtaXQoe3Byb3A6V1ouQUNUSVZFX1BMVUdJTix2YWx1ZTp0fSl9KSl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpLHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpfW5nT25DaGFuZ2VzKHQpe2lmKHQuYWN0aXZlUGx1Z2luSWQpe2NvbnN0IGU9dC5hY3RpdmVQbHVnaW5JZDt0aGlzLmRlZXBMaW5rZXIuc2V0UGx1Z2luSWQobnVsbD09PWUuY3VycmVudFZhbHVlPyIiOmUuY3VycmVudFZhbHVlLHtkZWZhdWx0VmFsdWU6IiIsdXNlTG9jYXRpb25SZXBsYWNlOm51bGw9PT1lLnByZXZpb3VzVmFsdWV8fGUuZmlyc3RDaGFuZ2V9KX19fUdaLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxHWikoZ2YoVFIpKX0sR1ouybVjbXA9c28oe3R5cGU6R1osc2VsZWN0b3JzOltbImhhc2gtc3RvcmFnZS1jb21wb25lbnQiXV0saW5wdXRzOnthY3RpdmVQbHVnaW5JZDoiYWN0aXZlUGx1Z2luSWQifSxvdXRwdXRzOntvblZhbHVlQ2hhbmdlOiJvblZhbHVlQ2hhbmdlIn0sZmVhdHVyZXM6W3FvXSxkZWNsczowLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7fSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEdaLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Imhhc2gtc3RvcmFnZS1jb21wb25lbnQiLHRlbXBsYXRlOiIiLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpUUn1dfSkse2FjdGl2ZVBsdWdpbklkOlt7dHlwZTpSX31dLG9uVmFsdWVDaGFuZ2U6W3t0eXBlOkVffV19KTtjbGFzcyBZWntjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5hY3RpdmVQbHVnaW5JZCQ9dGhpcy5zdG9yZS5waXBlKHJTKGVUKSl9b25WYWx1ZUNoYW5nZWQodCl7c3dpdGNoKHQucHJvcCl7Y2FzZSBXWi5BQ1RJVkVfUExVR0lOOnRoaXMuc3RvcmUuZGlzcGF0Y2goWEUoe3BsdWdpbjp0LnZhbHVlfSkpfX19WVouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFlaKShnZihpUykpfSxZWi7JtWNtcD1zbyh7dHlwZTpZWixzZWxlY3RvcnM6W1siaGFzaC1zdG9yYWdlIl1dLGRlY2xzOjIsdmFyczozLGNvbnN0czpbWzMsImFjdGl2ZVBsdWdpbklkIiwib25WYWx1ZUNoYW5nZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwiaGFzaC1zdG9yYWdlLWNvbXBvbmVudCIsMCksUmYoIm9uVmFsdWVDaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uVmFsdWVDaGFuZ2VkKGUpfSkpLF95KDEsImFzeW5jIiksTWYoKSksMiZlJiZiZigiYWN0aXZlUGx1Z2luSWQiLEN5KDEsMSxuLmFjdGl2ZVBsdWdpbklkJCkpfSxkaXJlY3RpdmVzOltHWl0scGlwZXM6W1Z2XSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVdIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoWVosW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoiaGFzaC1zdG9yYWdlIix0ZW1wbGF0ZTonXG4gICAgPGhhc2gtc3RvcmFnZS1jb21wb25lbnRcbiAgICAgIFthY3RpdmVQbHVnaW5JZF09ImFjdGl2ZVBsdWdpbklkJCB8IGFzeW5jIlxuICAgICAgKG9uVmFsdWVDaGFuZ2UpPSJvblZhbHVlQ2hhbmdlZCgkZXZlbnQpIlxuICAgID5cbiAgICA8L2hhc2gtc3RvcmFnZS1jb21wb25lbnQ+XG4gICcsc3R5bGVzOlsiXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfV19KSxudWxsKTtjb25zdCBxWj17c2V0RG9jdW1lbnRUaXRsZTpmdW5jdGlvbiBaWih0KXtkb2N1bWVudC50aXRsZT10fX07Y2xhc3MgWFp7bmdPbkNoYW5nZXModCl7dC50aXRsZSYmcVouc2V0RG9jdW1lbnRUaXRsZSh0LnRpdGxlLmN1cnJlbnRWYWx1ZSl9fVhaLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxYWil9LFhaLsm1Y21wPXNvKHt0eXBlOlhaLHNlbGVjdG9yczpbWyJwYWdlLXRpdGxlLWNvbXBvbmVudCJdXSxpbnB1dHM6e3RpdGxlOiJ0aXRsZSJ9LGZlYXR1cmVzOltxb10sZGVjbHM6MCx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe30sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihYWixbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJwYWdlLXRpdGxlLWNvbXBvbmVudCIsdGVtcGxhdGU6IiIsY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sbnVsbCx7dGl0bGU6W3t0eXBlOlJffV19KTtjb25zdCBLWj0iVGVuc29yQm9hcmQiO2NsYXNzIEpae2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5zdG9yZT10LHRoaXMuY3VzdG9tQnJhbmROYW1lPWUsdGhpcy5nZXRFeHBlcmltZW50SWQkPXRoaXMuc3RvcmUuc2VsZWN0KHhSKS5waXBlKFZ0KCh0PT5udWxsPT10P3ZvaWQgMDp0WzBdKSkpLHRoaXMuZXhwZXJpbWVudE5hbWUkPXRoaXMuZ2V0RXhwZXJpbWVudElkJC5waXBlKHVlKEJvb2xlYW4pLCR0KCh0PT50aGlzLnN0b3JlLnNlbGVjdChxVCx7ZXhwZXJpbWVudElkOnR9KSkpLFZ0KCh0PT50P3QubmFtZTpudWxsKSkpLHRoaXMudGl0bGUkPXRoaXMuc3RvcmUuc2VsZWN0KG9UKS5waXBlKF9lKHRoaXMuc3RvcmUuc2VsZWN0KE1SKSx0aGlzLmV4cGVyaW1lbnROYW1lJCksVnQoKChbdCxlLG5dKT0+e2NvbnN0IG89dGhpcy5jdXN0b21CcmFuZE5hbWV8fEtaO3JldHVybiB0LndpbmRvd190aXRsZT90LndpbmRvd190aXRsZTplPT09X0QuRVhQRVJJTUVOVCYmbj9gJHtufSAtICR7b31gOm99KSksQmUodGhpcy5jdXN0b21CcmFuZE5hbWV8fEtaKSx3ZSgpKX19SlouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEpaKShnZihpUyksZ2YoQkUsOCkpfSxKWi7JtWNtcD1zbyh7dHlwZTpKWixzZWxlY3RvcnM6W1sicGFnZS10aXRsZSJdXSxkZWNsczoyLHZhcnM6Myxjb25zdHM6W1szLCJ0aXRsZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYodmYoMCwicGFnZS10aXRsZS1jb21wb25lbnQiLDApLF95KDEsImFzeW5jIikpLDImZSYmYmYoInRpdGxlIixDeSgxLDEsbi50aXRsZSQpKX0sZGlyZWN0aXZlczpbWFpdLHBpcGVzOltWdl0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEpaLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6InBhZ2UtdGl0bGUiLHRlbXBsYXRlOidcbiAgICA8cGFnZS10aXRsZS1jb21wb25lbnQgW3RpdGxlXT0idGl0bGUkIHwgYXN5bmMiPjwvcGFnZS10aXRsZS1jb21wb25lbnQ+XG4gICcsc3R5bGVzOlsiXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W0JFXX1dfV19KSxudWxsKTtjbGFzcyBRWntjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5uZ1Vuc3Vic2NyaWJlPW5ldyBCLHRoaXMuZ2V0UGFnZVNpemUkPXRoaXMuc3RvcmUucGlwZShyUyhoSSkpLHRoaXMucGFnaW5hdGVkVmlld1N0b3JlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRmLXBhZ2luYXRlZC12aWV3LXN0b3JlIikudGZfcGFnaW5hdGVkX3ZpZXd9bmdPbkluaXQoKXt0aGlzLmdldFBhZ2VTaXplJC5waXBlKGplKHRoaXMubmdVbnN1YnNjcmliZSksd2UoKSkuc3Vic2NyaWJlKCh0PT57dGhpcy5wYWdpbmF0ZWRWaWV3U3RvcmUuc2V0TGltaXQodCl9KSl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpLHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpfX1RWi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UVopKGdmKGlTKSl9LFFaLsm1Y21wPXNvKHt0eXBlOlFaLHNlbGVjdG9yczpbWyJzZXR0aW5ncy1wb2x5bWVyLWludGVyb3AiXV0sZGVjbHM6MCx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe30sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihRWixbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJzZXR0aW5ncy1wb2x5bWVyLWludGVyb3AiLHRlbXBsYXRlOiIiLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSksbnVsbCk7Y2xhc3MgJFp7Y29uc3RydWN0b3IodCl7dC5zZWxlY3QoRkQpLnN1YnNjcmliZSgodD0+e2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgiZGFyay1tb2RlIix0KX0pKX19JFouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fCRaKShnZihpUykpfSwkWi7JtWNtcD1zbyh7dHlwZTokWixzZWxlY3RvcnM6W1siZGFyay1tb2RlLXN1cHBvcnRlciJdXSxkZWNsczowLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7fSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVdIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoJFosW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoiZGFyay1tb2RlLXN1cHBvcnRlciIsdGVtcGxhdGU6IiIsc3R5bGVzOlsiXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfV19KSxudWxsKTtjbGFzcyB0WHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnZjUmVmPXR9fXRYLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx0WCkoZ2YoRmIpKX0sdFguybVjbXA9c28oe3R5cGU6dFgsc2VsZWN0b3JzOltbInRiLXdlYmFwcCJdXSxkZWNsczo4LHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYodmYoMCwiYXBwLWhlYWRlciIpLENmKDEsIm1haW4iKSx2ZigyLCJyb3V0ZXItb3V0bGV0IiksTWYoKSx2ZigzLCJhbGVydC1zbmFja2JhciIpLHZmKDQsImhhc2gtc3RvcmFnZSIpLHZmKDUsInBhZ2UtdGl0bGUiKSx2Zig2LCJzZXR0aW5ncy1wb2x5bWVyLWludGVyb3AiKSx2Zig3LCJkYXJrLW1vZGUtc3VwcG9ydGVyIikpfSxkaXJlY3RpdmVzOltCWixVWixJVixZWixKWixRWiwkWl0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9aHRtbFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90byxzYW5zLXNlcmlmO2hlaWdodDoxMDAlO21hcmdpbjowO3BhZGRpbmc6MH1bX25naG9zdC0lQ09NUCVde2JhY2tncm91bmQ6I2Y1ZjVmNTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDoxMDAlfWFwcC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2JveC1zaGFkb3c6MCAxcHggM3B4IDNweCByZ2JhKDAsMCwwLC4yNSk7ZmxleDowIDA7ei1pbmRleDoxfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIGFwcC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICBhcHAtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3gtc2hhZG93OjAgMXB4IDNweCAzcHggcmdiYSgyNTUsMjU1LDI1NSwuMSl9bWFpbltfbmdjb250ZW50LSVDT01QJV17ZmxleC1ncm93OjE7b3ZlcmZsb3c6YXV0b30nXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIodFgsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoidGItd2ViYXBwIix0ZW1wbGF0ZVVybDoiLi9hcHBfY29udGFpbmVyLm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vYXBwX2NvbnRhaW5lci5jc3MiXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkZifV19KSxudWxsKTtjbGFzcyBlWHtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5zdG9yZT10LHRoaXMubG9jYXRpb249ZSx0aGlzLmFwcFJvb3RQcm92aWRlcj1uLHRoaXMucGF0aG5hbWU9bnVsbCx0aGlzLnJlc2V0TmFtZXNwYWNlZFN0YXRlPSExfWhhbmRsZUNsaWNrKHQpeyF0aGlzLnBhdGhuYW1lfHx0LmN0cmxLZXl8fHQubWV0YUtleXx8KHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc3RvcmUuZGlzcGF0Y2goUUQoe3BhdGhuYW1lOnRoaXMucGF0aG5hbWUscmVzZXROYW1lc3BhY2VkU3RhdGU6dGhpcy5yZXNldE5hbWVzcGFjZWRTdGF0ZX0pKSl9Z2V0IGhyZWYoKXtyZXR1cm4gdGhpcy5wYXRobmFtZT90aGlzLmFwcFJvb3RQcm92aWRlci5nZXRBYnNQYXRobmFtZVdpdGhBcHBSb290KHRoaXMubG9jYXRpb24uZ2V0UmVzb2x2ZWRQYXRoKHRoaXMucGF0aG5hbWUpKTpudWxsfXNldCByb3V0ZXJMaW5rKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdCYmKHQ9W3RdKSwwPT09dC5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoInJvdXRlTGluayBzaG91bGQgaGF2ZSBwcm9wZXIgcGF0aC4gR290IG5vdGhpbmcuIik7Y29uc3QgZT1bLi4udF0uam9pbigiLyIpO3RoaXMucGF0aG5hbWU9ZS5lbmRzV2l0aCgiLyIpP2U6ZSsiLyJ9fWVYLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxlWCkoZ2YoaVMpLGdmKFBEKSxnZih3RCkpfSxlWC7JtWRpcj1obyh7dHlwZTplWCxzZWxlY3RvcnM6W1siYSIsInJvdXRlckxpbmsiLCIiXV0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmUmYoImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5oYW5kbGVDbGljayhlKX0pKSwyJmUmJnltKCJocmVmIixuLmhyZWYsWHMpfSxpbnB1dHM6e3JvdXRlckxpbms6InJvdXRlckxpbmsiLHJlc2V0TmFtZXNwYWNlZFN0YXRlOiJyZXNldE5hbWVzcGFjZWRTdGF0ZSJ9fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihlWCxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJhW3JvdXRlckxpbmtdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfSx7dHlwZTpQRH0se3R5cGU6d0R9XX0pLHtoYW5kbGVDbGljazpbe3R5cGU6VF8sYXJnczpbImNsaWNrIixbIiRldmVudCJdXX1dLGhyZWY6W3t0eXBlOkFfLGFyZ3M6WyJhdHRyLmhyZWYiXX1dLHJvdXRlckxpbms6W3t0eXBlOlJffV0scmVzZXROYW1lc3BhY2VkU3RhdGU6W3t0eXBlOlJffV19KTtjbGFzcyBuWHt9blguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG5YKX0sblguybVtb2Q9Zm8oe3R5cGU6blh9KSxuWC7JtWluaj1Ebih7aW1wb3J0czpbW3J4LERELFNELGZSXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKG5YLFt7dHlwZTpMXyxhcmdzOlt7aW1wb3J0czpbcngsREQsU0QsZlJdLGV4cG9ydHM6W1VaLGVYXSxkZWNsYXJhdGlvbnM6W1VaLGpaLGVYXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKG5YLHtkZWNsYXJhdGlvbnM6W1VaLGpaLGVYXSxpbXBvcnRzOltyeCxERCxTRCxmUl0sZXhwb3J0czpbVVosZVhdfSk7Y2xhc3Mgb1h7fW9YLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxvWCl9LG9YLsm1bW9kPWZvKHt0eXBlOm9YfSksb1guybVpbmo9RG4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIob1gsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6WyRaXSxleHBvcnRzOlskWl19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhvWCx7ZGVjbGFyYXRpb25zOlskWl0sZXhwb3J0czpbJFpdfSk7Y2xhc3MgaVh7fWlYLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxpWCl9LGlYLsm1bW9kPWZvKHt0eXBlOmlYfSksaVguybVpbmo9RG4oe3Byb3ZpZGVyczpbe3Byb3ZpZGU6VFIsdXNlQ2xhc3M6QVJ9XX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoaVgsW3t0eXBlOkxfLGFyZ3M6W3twcm92aWRlcnM6W3twcm92aWRlOlRSLHVzZUNsYXNzOkFSfV19XX1dLG51bGwsbnVsbCk7Y2xhc3MgYVh7fWFYLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxhWCl9LGFYLsm1bW9kPWZvKHt0eXBlOmFYfSksYVguybVpbmo9RG4oe2ltcG9ydHM6W1tyeCxpWF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihhWCxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbWVosR1pdLGV4cG9ydHM6W1laXSxpbXBvcnRzOltyeCxpWF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhhWCx7ZGVjbGFyYXRpb25zOltZWixHWl0saW1wb3J0czpbcngsaVhdLGV4cG9ydHM6W1laXX0pO2NsYXNzIHJYe31yWC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8clgpfSxyWC7JtW1vZD1mbyh7dHlwZTpyWH0pLHJYLsm1aW5qPURuKHtpbXBvcnRzOltbcnhdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoclgsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W0paLFhaXSxleHBvcnRzOltKWl0saW1wb3J0czpbcnhdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oclgse2RlY2xhcmF0aW9uczpbSlosWFpdLGltcG9ydHM6W3J4XSxleHBvcnRzOltKWl19KTtjb25zdCBzWD17aWQ6Q0QsbmFtZToiIixzdGFydF90aW1lOjB9LGxYPVZTKHtleHBlcmltZW50TWFwOntbc1guaWRdOnNYfX0pO2Z1bmN0aW9uIGNYKHQsZSl7cmV0dXJuIEdrKHtkYXRhOmxYfSkodCxlKX1jbGFzcyBkWHt9ZFguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGRYKX0sZFguybVtb2Q9Zm8oe3R5cGU6ZFh9KSxkWC7JtWluaj1Ebih7aW1wb3J0czpbW1RTLmZvckZlYXR1cmUoR1QsY1gpXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGRYLFt7dHlwZTpMXyxhcmdzOlt7aW1wb3J0czpbVFMuZm9yRmVhdHVyZShHVCxjWCldfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oZFgse2ltcG9ydHM6W0FTXX0pO2NsYXNzIHBYe31mdW5jdGlvbiBtWCgpe3JldHVybiBiUyh1SSwodD0+KHthdXRvUmVsb2FkOnR9KSkpfWZ1bmN0aW9uIGZYKCl7cmV0dXJuIGJTKGdJLCh0PT4oe2F1dG9SZWxvYWRQZXJpb2RJbk1zOnR9KSkpfWZ1bmN0aW9uIHVYKCl7cmV0dXJuIGJTKGhJLCh0PT4oe3BhZ2VTaXplOnR9KSkpfXBYLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxwWCl9LHBYLsm1bW9kPWZvKHt0eXBlOnBYfSkscFguybVpbmo9RG4oe2ltcG9ydHM6W1tyeCx0WSxlWSxJTCxNWixucSx2cSxUWl1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihwWCxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbRlosTFosSVosSFosUVpdLGV4cG9ydHM6W0ZaLExaLEhaLFFaXSxlbnRyeUNvbXBvbmVudHM6W0haXSxpbXBvcnRzOltyeCx0WSxlWSxJTCxNWixucSx2cSxUWl19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhwWCx7ZGVjbGFyYXRpb25zOltGWixMWixJWixIWixRWl0saW1wb3J0czpbcngsdFksZVksSUwsTVosbnEsdnEsVFpdLGV4cG9ydHM6W0ZaLExaLEhaLFFaXX0pO2NsYXNzIGdYe31nWC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Z1gpfSxnWC7JtW1vZD1mbyh7dHlwZTpnWH0pLGdYLsm1aW5qPURuKHtpbXBvcnRzOltbVFMuZm9yRmVhdHVyZShkSSxzWikselIuZGVmaW5lR2xvYmFsU2V0dGluZyhtWCkselIuZGVmaW5lR2xvYmFsU2V0dGluZyhmWCkselIuZGVmaW5lR2xvYmFsU2V0dGluZyh1WCldLHBYXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZ1gsW3t0eXBlOkxfLGFyZ3M6W3tleHBvcnRzOltwWF0saW1wb3J0czpbVFMuZm9yRmVhdHVyZShkSSxzWikselIuZGVmaW5lR2xvYmFsU2V0dGluZyhtWCkselIuZGVmaW5lR2xvYmFsU2V0dGluZyhmWCkselIuZGVmaW5lR2xvYmFsU2V0dGluZyh1WCldfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oZ1gse2ltcG9ydHM6W0FTLHpSLHpSLHpSXSxleHBvcnRzOltwWF19KTtjbGFzcyBoWHt9aFguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGhYKX0saFguybVtb2Q9Zm8oe3R5cGU6aFh9KSxoWC7JtWluaj1Ebih7cHJvdmlkZXJzOlt7cHJvdmlkZToid2luZG93Iix1c2VWYWx1ZTp3aW5kb3d9XSxpbXBvcnRzOltbc3EscngsSUwsbnEsdnFdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoaFgsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W1NxLHhxLFBxXSxleHBvcnRzOltTcV0sZW50cnlDb21wb25lbnRzOltQcV0saW1wb3J0czpbc3EscngsSUwsbnEsdnFdLHByb3ZpZGVyczpbe3Byb3ZpZGU6IndpbmRvdyIsdXNlVmFsdWU6d2luZG93fV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhoWCx7ZGVjbGFyYXRpb25zOltTcSx4cSxQcV0saW1wb3J0czpbc3EscngsSUwsbnEsdnFdLGV4cG9ydHM6W1NxXX0pO2NsYXNzIGJYe31iWC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8YlgpfSxiWC7JtW1vZD1mbyh7dHlwZTpiWH0pLGJYLsm1aW5qPURuKHtwcm92aWRlcnM6W10saW1wb3J0czpbW0lMLHZxLEhqLFVWLFBZLFhxLHJ4LGRULGdYLGhYXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGJYLFt7dHlwZTpMXyxhcmdzOlt7ZGVjbGFyYXRpb25zOlt0WixlWixCWixSWSxUWSxvWl0sZXhwb3J0czpbZVosQlosVFksb1pdLHByb3ZpZGVyczpbXSxpbXBvcnRzOltJTCx2cSxIaixVVixQWSxYcSxyeCxkVCxnWCxoWF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhiWCx7ZGVjbGFyYXRpb25zOlt0WixlWixCWixSWSxUWSxvWl0saW1wb3J0czpbSUwsdnEsSGosVVYsUFksWHEscngsZFQsZ1gsaFhdLGV4cG9ydHM6W2VaLEJaLFRZLG9aXX0pO2NsYXNzIHlYe2NvbnN0cnVjdG9yKHQsZSl7Y29uc3Qgbj10LmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCgiLi9pY29uX2J1bmRsZS5zdmciKTtlLmFkZFN2Z0ljb25TZXQobil9fXlYLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx5WCkoVHIoZU8pLFRyKG1xKSl9LHlYLsm1bW9kPWZvKHt0eXBlOnlYfSkseVguybVpbmo9RG4oe2ltcG9ydHM6W1t2cV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih5WCxbe3R5cGU6TF8sYXJnczpbe2ltcG9ydHM6W3ZxXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmVPfSx7dHlwZTptcX1dfSksbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byh5WCx7aW1wb3J0czpbdnFdfSk7Y29uc3QgX1g9bmV3IGVyKCJbcGx1Z2luc10gUGx1Z2luIHJlZ2lzdHJ5IGNvbmZpZyIpLENYPW5ldyBNYXA7Y2xhc3MgTVh7Y29uc3RydWN0b3IodCl7aWYoIXQpcmV0dXJuO2NvbnN0IGU9bmV3IFNldCh0Lm1hcCgodD0+dC5wbHVnaW5OYW1lKSkpO2NvbnNvbGUuYXNzZXJ0KGUuc2l6ZT09PXQubGVuZ3RoLCJDYW5ub3QgcmVnaXN0ZXIgdGhlIHNhbWUgcGx1Z2luIG11bHRpcGxlIHRpbWVzLiIpO2Zvcihjb25zdCBlIG9mIHQpe2NvbnN0e3BsdWdpbk5hbWU6dCxjb21wb25lbnRDbGFzczpufT1lO0NYLnNldCh0LG4pfX1zdGF0aWMgZm9yUGx1Z2luKHQsZSl7cmV0dXJue25nTW9kdWxlOk1YLHByb3ZpZGVyczpbe3Byb3ZpZGU6X1gsbXVsdGk6ITAsdXNlVmFsdWU6e3BsdWdpbk5hbWU6dCxjb21wb25lbnRDbGFzczplfX1dfX1nZXRDb21wb25lbnQodCl7cmV0dXJuIENYLmdldCh0KXx8bnVsbH19TVguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE1YKShUcihfWCw4KSl9LE1YLsm1bW9kPWZvKHt0eXBlOk1YfSksTVguybVpbmo9RG4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoTVgsW3t0eXBlOkxfLGFyZ3M6W3t9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W19YXX1dfV19KSxudWxsKTtjbGFzcyB2WHtjb25zdHJ1Y3Rvcih0KXt0aGlzLmh0dHA9dCx0aGlzLmh0dHBQYXRoUHJlZml4PSJkYXRhL3BsdWdpbi9kZWJ1Z2dlci12MiJ9ZmV0Y2hSdW5zKCl7cmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5odHRwUGF0aFByZWZpeCsiL3J1bnMiKX1mZXRjaEV4ZWN1dGlvbkRpZ2VzdHModCxlLG4pe3JldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuaHR0cFBhdGhQcmVmaXgrIi9leGVjdXRpb24vZGlnZXN0cyIse3BhcmFtczp7cnVuOnQsYmVnaW46U3RyaW5nKGUpLGVuZDpTdHJpbmcobil9fSl9ZmV0Y2hFeGVjdXRpb25EYXRhKHQsZSxuKXtyZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmh0dHBQYXRoUHJlZml4KyIvZXhlY3V0aW9uL2RhdGEiLHtwYXJhbXM6e3J1bjp0LGJlZ2luOlN0cmluZyhlKSxlbmQ6U3RyaW5nKG4pfX0pfWZldGNoR3JhcGhFeGVjdXRpb25EaWdlc3RzKHQsZSxuLG8pe2lmKHZvaWQgMCE9PW8pdGhyb3cgbmV3IEVycm9yKCJ0cmFjZV9pZCBpcyBub3QgaW1wbGVtZW50ZWQgZm9yIGZldGNoR3JhcGhFeGVjdXRpb25EaWdlc3RzKCkgeWV0Iik7cmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5odHRwUGF0aFByZWZpeCsiL2dyYXBoX2V4ZWN1dGlvbi9kaWdlc3RzIix7cGFyYW1zOntydW46dCxiZWdpbjpTdHJpbmcoZSksZW5kOlN0cmluZyhuKX19KX1mZXRjaEdyYXBoRXhlY3V0aW9uRGF0YSh0LGUsbixvKXtpZih2b2lkIDAhPT1vKXRocm93IG5ldyBFcnJvcigidHJhY2VfaWQgaXMgbm90IGltcGxlbWVudGVkIGZvciBmZXRjaEdyYXBoRXhlY3V0aW9uRGF0YSgpIHlldCIpO3JldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuaHR0cFBhdGhQcmVmaXgrIi9ncmFwaF9leGVjdXRpb24vZGF0YSIse3BhcmFtczp7cnVuOnQsYmVnaW46U3RyaW5nKGUpLGVuZDpTdHJpbmcobil9fSl9ZmV0Y2hHcmFwaE9wSW5mbyh0LGUsbil7cmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5odHRwUGF0aFByZWZpeCsiL2dyYXBocy9vcF9pbmZvIix7cGFyYW1zOntydW46dCxncmFwaF9pZDplLG9wX25hbWU6bn19KX1mZXRjaFNvdXJjZUZpbGVMaXN0KHQpe3JldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuaHR0cFBhdGhQcmVmaXgrIi9zb3VyY2VfZmlsZXMvbGlzdCIse3BhcmFtczp7cnVuOnR9fSl9ZmV0Y2hTb3VyY2VGaWxlKHQsZSl7cmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5odHRwUGF0aFByZWZpeCsiL3NvdXJjZV9maWxlcy9maWxlIix7cGFyYW1zOntydW46dCxpbmRleDpTdHJpbmcoZSl9fSl9ZmV0Y2hTdGFja0ZyYW1lcyh0LGUpe3JldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuaHR0cFBhdGhQcmVmaXgrIi9zdGFja19mcmFtZXMvc3RhY2tfZnJhbWVzIix7cGFyYW1zOntydW46dCxzdGFja19mcmFtZV9pZHM6ZS5qb2luKCIsIil9fSkucGlwZShWdCgodD0+KHtzdGFja19mcmFtZXM6dC5zdGFja19mcmFtZXMubWFwKCh0PT4oZnVuY3Rpb24gZSh0KXtyZXR1cm57aG9zdF9uYW1lOnRbMF0sZmlsZV9wYXRoOnRbMV0sbGluZW5vOnRbMl0sZnVuY3Rpb25fbmFtZTp0WzNdfX0pKHQpKSl9KSkpKX1mZXRjaEFsZXJ0cyh0LGUsbixvKXtjb25zdCBpPXtydW46dCxiZWdpbjpTdHJpbmcoZSksZW5kOlN0cmluZyhuKX07cmV0dXJuIHZvaWQgMCE9PW8mJihpLmFsZXJ0X3R5cGU9byksdGhpcy5odHRwLmdldCh0aGlzLmh0dHBQYXRoUHJlZml4KyIvYWxlcnRzIix7cGFyYW1zOml9KX19dlguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHZYKShUcihIRSkpfSx2WC7JtXByb3Y9U24oe3Rva2VuOnZYLGZhY3Rvcnk6dlguybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHZYLFt7dHlwZTpVbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpIRX1dfSksbnVsbCk7Y2xhc3MgeFh7fXhYLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx4WCl9LHhYLsm1bW9kPWZvKHt0eXBlOnhYfSkseFguybVpbmo9RG4oe3Byb3ZpZGVyczpbdlhdLGltcG9ydHM6W1tGRV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih4WCxbe3R5cGU6TF8sYXJnczpbe2ltcG9ydHM6W0ZFXSxwcm92aWRlcnM6W3ZYXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKHhYLHtpbXBvcnRzOltGRV19KTtjbGFzcyBPWHt9T1guybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE9YKX0sT1guybVjbXA9c28oe3R5cGU6T1gsc2VsZWN0b3JzOltbImluYWN0aXZlLWNvbXBvbmVudCJdXSxkZWNsczo1NCx2YXJzOjAsY29uc3RzOltbMSwiY29udGFpbmVyIl0sWzEsInRpdGxlIl0sWzEsImNvZGUiXSxbMSwiYXJnIl0sWzEsImV4aGliaXRzLWNvbnRhaW5lciJdLFsxLCJleGhpYml0Il0sWzEsInNjcmVlbnNob3QiXSxbInNyYyIsImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBVFlBQUFFMkNBWUFBQURydkw2cEFBQW95SHBVV0hSU1lYY2djSEp2Wm1sc1pTQjBlWEJsSUdWNGFXWUFBSGphclp4cGRoeTVjb1gvWXhWZUF1WmhPUmdDNTNnSFhyNi9pMkpyZW1xcm4rMVdpNlNLeFV3a0VIR0hRSURPL3VzL3Ivc1AvaHV0WlpkTDYzWFU2dmt2anp6aTVJdnVQLytOOXpINC9ENisvMUw5K2lyOC9Mcjc5bzNJNTZSM2ZyN1I1dWR6bUx4ZXZ2L0FYL2NJNitmWFhmLzZUdXhmRi9yNkJoZitqRUIzMXRmbngwSHlldnk4SHZMWGhZWjl2cWlqdHgrSHVyNHV0TC9lK0lieTlUZC9HOWJuay83dGZucWhNVXVuY0tNVW82V1EvUHVZUHlOSW43K1R2KzE5akx3djhOcE1LUVgzK2ZSMU1TYmtwOGY3NjdQM1AwN1FUNVA4MTFmdTE5bi85dFV2a3gvbjErdnBsN21zWDNQazYrKy9FY292cjZkdnQ0ay9oY08zRWNXZnYzRjd6UC95T0Y5Lzd6MzlYdnM4M2N5VkdhMWZFZlVtKzY4WjBoc1hVNTdlajFYK05QNFd2bTd2eitCUDk5TnZsdno0N1JkL2RoZ2hzaXJYaFJ4T21PRUdlNTkzMkF3eFI0dU56ekh1bU41clBiVTQ0azVhcDZ3LzRjYVdSanFwczI0N21tUE5jb3JmeGhMZWZjZTczdzZkTzUvQVcyUGdZbHJxdi8zai9xZHYvanQvM0wxYlV4UjgvelpYakNzcXJobUdWazRmZVJkTEVPN1h1cFUzd1gvOStWcCsvMFA4RUtxc1lIblQzSG5BNmRmbkVxdUU3N0dWM2pvbjNsZjQvRm5qNE5yNXVnQlR4TDBMZ3dtSkZmQTFwQkpxOEMzR0ZnTHoyRm1neWNoanluR3hBcUdVZUJoa3pDblY2RnJzVWZmbVoxcDQ3NDBsMXFpWHdTWVdvcVJLYm5WV2FMSllPUmZpcCtWT0RNMlNTaTZsMU5KS2QyV1VXVlBOdGRSYVd4WEl6WlphYnFYVjFscHZvODJlZXU2bDE5NTY3NlBQRVVjQ0E4dW9vNDAreHBnenVzbU5KdGVhdkgveXlvb3JyYnpLcXF1dHZzYWFtL0RaZVpkZGQ5dDlqejFQUE9rQUU2ZWVkdm9aWjFwd0JsSll0bUxWbW5VYk5pK3hkdFBOdDl4NjIrMTMzUGx0MWI1VzlWLysvQnVyRnI1V0xiNlYwdnZhdDFYalZkZmFYNWNJZ3BPaU5XUEZZZzZzZU5NS0VOQlJhK1o3eURscTViUm1ma1NTb2tRR1diUTI3Z1N0R0V1WUxjUnl3N2UxKzc1eS8yamRYT24vYU4zaW4xYk9hZW4rUDFiT3NYVC91bTYvV2JVam50dHZ4VDVacURuMWlleTdaWnk0M0k1eDFUTG50SmxhUzJYdUZYTUxhWmVRV3oyMXJucUJrOXZQTHQzSHhyZTZaNVlQbk1Na0hMOXlQYUhvUXIybWZPUHhFM2hmcGQwMTAyRnBrNTZ5TTQ2OVRyNjUzMVVZTFpjRy84NDhPN1JqM0xTc3VGZFk1dG8wbml1bGZYbmtsdkkrbnFRc0J3QmRmVzhtZGQ4V29tK3NaT285NTU3KzRvWWtLTDlsbmpaakp5RDVPSFZ6bTZXdVdjNWNaWmVUSnludnpmTzQyWWM2Um84UnJTR1NQbmxNUzIzbmNRbTFmSS9DeGFVZVRpM3dkZHNnd3RwMzdicHV5TVhhWWJKcnYxWUE3dVhUYWNiVDVkRGEzS3pEQ20weWY1VXhNMzNiNVFrOWhGMW40YVozU1JTRXMyOGZ6V0k2Vm1lSXlXeHM0MXErcmg3V09DMGFWekRpdUsvR1BCRVF3U21KQ09uK3hFUmFZOTdNMEViYnZoeml0bmF5b0xHRVBNSnN1MXBpa1FmZ05jdGw2WHNJMXRmTmxoMXozRzhvZHBLRndjTWh1eTZQNGxFVFFPSHVNNDJ5N0I3TlNDSU9UN3A5WHlZL0hPWDJRaUsxZlJaejFIWUVPWGlZZmtyTithUmx1L2hWZlIrUm1HUnR5VEk3blptb2ljZzcvdVp5RDhHOUR6azZFb05vc2FHUGFneDVaUktOY1laOFd6bjdpQXZQOWJQWktHWWtKdmNOUE5EMW5ZYytQQ1J3UFkxUXlIRHRhdFhjNnJYQ3hKZEpiWk9STWhlVmRMQithMHVSbXhJUmhjbGsyT2UwYm9jdzdpeUVKK1p6Vk1EeWdmK2R4TjJZZXNycnIvWFR5Tmk5V3BuNTlNMDAzV09OQlNZVkV2ZFY2QmF1SFBaS0RETldHeFZZS2JlNFdFY1NjR3crRTZFa3hzbkowQk05dEJLWXQ2QWJWejFPR2d1Z0lmZnZIRVQ2SkZvTDR3UWN6bUN5Szh6V1NLTWFod2ZIeUdHR2txWUdFTllCVG5PRGpNdGNaeEZZMmJZVmNBT1FJMklodDd1TnBTUkY5a1JDZENZWVBPVHJHeUEvVnJjdVltSGNYYStGblJseU9Zblp0VkRTM2p3T29kcHRTZkFrd1U4eU55NloxWGpBS2FCWXVaK3doYlVrRkFoYUEvUkpGdm8rUVFWYkF6Q3ViU2NGb3lka0pwTi9iaUhtSElIT3R3dWh0bmRPZTBtRXdRZkxHOGhSMHdnbEt4UkoyMkp4RTFDRGZONFRlcmRid0VER3lQVldkRHN0QUdPMkM4TGI2Qy9tUmdQTG1KaDRnS3JXenlTbWdmNEZGbGZ3ajVjSlVGRGtLa3dPa1hQbmNZMVpKZ0tQRVZhZ0c2blFvSlNJZGtzeGQ4VlFPMW15K1M0a21TMkZ4QllFVk5ZdWx5UWtZNUZRL2lFTWI2Y1FqdU9za3hKaWxGZ0RNb3p3OEtZQkdWRTZSaGl4MWhJOXQyOWtYeWRLWWp5ekxsWWhJMnVZeXBHQ2dlTTFBWGZlR3lBMDg5T2txSnRNZW1mMGkxd0hNRjYrZjI0a0pNaEZoRVhRaWpnQ0hiRU81QnY4dUMvNUltSWxCZ09NQ21vQ2cyUDdUYWlCM0FFQUJWdFJtSk1GSmlTenFHSEFLYTd1QVVPUEJwcDBCbVNRNGdVTklSTmZZUDFGVk56Yy9ENEFkMEdlb28wclV1MENZUkFCVHlxV3UyazRVQlR0dFhoV0l3Uk5yQXN4RGpKM3JkMVg3Y0lLaFd1VEtTQVNlU0JtSDBpWXl0V05zQWFoaHJtamxTV1ZXQ0x6MnpKRU9zWTlGUTZyd3ZiZWJWOGlrRXVrc2xseUxOQ05zemFBNktZSjN5MkxBY3kydVJnMHlaaFdtdWlVeGhVRUFMVlpJbFFQY01UVkd6UlBzdkxvbXhDY0Z4QWFyV1JDd3RhMUNFbTZUUGdRdXhpL2phNnYrQUFlR3NRaXF3MThJdHBZUjBKZU9Dd1dBVWxMWXVyMktzTUkwbzRuSU5YTjVUU1kraHhaOVhQNUZwZGNDbGVnc0VQSFlHSmg0VWoyVWxZZy9OcmxHbk1zSm1NalZMaFpZRVhUbG1JREZWbVd4SlNqb3pBT3hCY3EyWVBsVVU0M041SFUvWWFGdi8vczlFVUd0a3NtYXJvQWRPOExCWkVFWnlJbGRrSlE5VEJyUlI4Y1VyYklYb01QTWszTVNnT3pab0ZGN0JJWEZ6RllHcU5ackJ4NnlMTmVnRXNpbi9xR3VJS3VqaHpQSFRteVJIQ0VCcmxtRWpSOGU5VGxrT2RubGF0WlBhdW53d2ZqbmR3OEkxb1dkQWI3b3lNazQ5QmVxWEhQR01sbEVtT1VSc0FNTkV3MzVxaEFud0J5T2NnOGtET1RtMnY0WXdVaGdLSElCS1VGcENEUEMvcXh0UDU2VUdSc1lMOEZDUThnTFRtSW5wOHhLWkF1ZE1DSThzT1hmQU9vQUxrOERnK1Z6amFXcDBwSG5BZVI2Q2xtNWFUWmk1WFRGOW0vejE3RUoxbU1jb2w1QXgxTUplQU93Y3E5NEIyUlBRZ0pRaGpVSHVnVnBCeU1kQVc0QUdXVU9IUHRqZ0k4Ly9LeVhtM0tBd3h3MlFOUVFocVFOOEZTWC9ub0ViR1c1V0E5MGE3TXJYY0xXMlZvU2lJeUNla3ZySCtUeEtvRXpnMWkxMFpXMkRwRzhnellkM2Q0STI4bWdYVWhjcVJkajBOaWlYZVFCbVErUzVvQnExU1FDUFBGdk1JRXpHNUZvclNSK0loRzVCd2lPeXRtRTdDQXJKODdPVGlJTllSbHhLOXozNW1ZOTdvV0lnZm9aa2FnTVM3TTRJQUpjQzRkbnBtQmNvdUw2WWRIdHRla3VDQnNxdWVBSk9RMnF5bnhESHNzekFEWVRIREJCd2huSHBVdkNJY05tUFlKODJFSWdoSXpTTnd2aDYyL3FGc3doYWVUa0NJMFlDeFNIV3lYK3I5RFRtS0JUajBiOEVBNHMrNHNDeCtoYzUrUmFYdkRJb2hoWTdxMTVIeGo0SnBLWVdhR3lVRVV5RHFzUmt4MTY1M0Z1TUlXeFhWRnpFR1pDSTJUSlhoZFFoekFXNENwdUFIeVpSUm9OQVlML1JnUDI1RVJnWGtvOEdmZWltK1VRMGZBTGNLU2pPQ0JRYkx0OW43Z2F2Q1RzZkRjbmpTMTlBWlZpSG5NRm9NZjh4UkJHcWc1R0JEZmcrbDZ3MDFKd203MHUxdGdXRldnWENSekp2MlJOUTJHSjlZbmlMbXc1MFJySmtpTXlRVnAwb0pLa1RRcXNzMG5Kb1ltM0JVRi9FQzk2TVlFU1VORzgwenh6UkRBakd0b09MdXFkVitFMkVsZDZvSDVLS3JUbGZEMTJZVmZYdmoxTTg4Qmtac25DbGp5eG1JeVVGSzN5dG9OTFE4cXNVK0Uxc0I0SUZnMnVoOCtSQkloRDhrZVJEaHZ3UzB1RkFUMlUrYXBpcThObzFnRFZnWHJwZVVETTJGSWMwQ2V4OUMwcCtQQkw2SVJUYTRNK2Qyckt5ZEV5bnhnalIwQ2JrRWFNQWRWeXd1SnJMeGRzNDdzeFh6aVVnbG1GbjRsd0JrN0FkSGphSnNQYlMydXdHQU54b0JlMGFHUUY3QkdISGtVb2ljeFR3ZlJWRUVCQUlvaXY0cEZpZkR0S3c0bjRTMEdFOXdKZFZnUmJEdG5zOEI0aWFUS1FITVhKWUlXNnZJc1RLN2hpdURDblFGSkpneTloN2NHUzBHNXhGdkp2cWFFaDNJbVNiZEltYXFVYU0xeDM0cmNRUGZpSTlDSHZVYUZqdzNtc2hLQWd4aEg1c0hPQURrMEVGUEFxUjVWaGRmWDB2SnhaZ2VNRWk2YnFTTWZFUzlkdzdFYjVDTWxSN2tkN0RQSVY3SUJHN3RFQ1pmd0dnMEZIQWNUZmdqQTdiQSt0NkpNSTR4dGsrbkVUbHkvSUkyRGwwMVpNcjBVNG5VRG5TajlQVUg5S2prUDlWd0VKaTVoZ0crT3Q2QVlLdmlCYkNETU10UW1kc3prdXlvdGQrRXZzWDVRTUltUDZpWDRXWktPOVFlbE8yQVo4VHU1T0d3NVVBeWgrUVpSamd1WGJpQk5kRWwrR3c2S0M0MUVrbTlpT1pBODFhOVIwWnk0TGloQWhXMVdGb0lrc1J2RSt5aTF3Vmt6TjJSakJ0K3d0Z1NTS2d1NkczR3lBZU83aENsSFZvaGJvWWFpYkpCTlJ3QTI1bzdjUmxlU3UxYzJoY1ZsWmdGZzFwMHhtT1Myblp3TmFnR0lXQlhRRWlXRlk2N2dzRExaVFRDOE5WVkJ5SDl1TFdGM3lId01mVlJkMTBmSWxEQkRCYWFTNWxCUS9lN216alEyd0xaQzE3OFoyei8rcnZzZnZvM2dIWmkzeWRSVUtMczJTUkNNak9GRXZDcER5TWs0VHdEemVuVG80SHQ1dEJWNU51Z2FUTjk4WjRtMjhZZnBDV0pzZjg4a2ZTakk2Z1QrSWtUQ1NJQXl1cmJzQnRnNWVETmwvR1Z0d1dxMURaVjFnZytkamhDend6eXBOb04wUWI1K2dMWFV2dlFWMmdYMlJWa3RlVXlFVnBtcVFudkJKOCtHaWNkKzRUd2J1blFUMndENUJXdHlSQThOVkJ2UFF5RGpJOUFhcjhhQVJXQXNqdHh2Q0VWNEVHL2pzUkZIUWtRQ0UrZWgwVi9CS2tsRFhCWFFNT0ZYVVZwZ0ZtU25Za1p2cW03OGJrU0FkRVNuSTZUSnhiaE5QbkxqcGcyc0JKY2JNbWc5TTA5aU56eTI3Y0JGSFhaVThnUjl4M1NyYXNFaUJsYnd4U1g0SlcwWGtDbmtlSW1JeGJMRkgrVEU1Q21aS1dWRkdzY2pqM0V1NEFnRElZTFIyQ1VPcEEvS0RLMkxZdVk5ZXlxdXF5MzQ0RjVMQjhPbFM3eVBjV0xJN2kxRWRnRzFmbFZyT0ttR2pPOHBRV212Mm5pSU54Z3g0N1RRUXd2elhQd3dINkpRaW9zNDNCKzQrRDdnQlBCSTZYTlJyb0NJR2ZLb3FSSWNoRWc0aVFCaC9ZSmxuUFRLRUJsU0NIWURLaHhra29UR2ozaE93V3lSU3dnejNtODVTQmtmQ0ZBZWhWczJwb21YcWt6OVFFQTErQUlLQmZ6TlhjZ2NqVGtoTXE4S0NuNGtraGhBUnBYckRQQzh5Qnk4eEFGTVpCYk9aSmNxZjRkd3c1aWhDdEVoSkMzeENRWlBSb3ZiNTJhQU92Zm43ZkJLMFZjQmpWRndQSjJuSXc1c1Y3UVhERUpBRUVFb3ZnaHk0bW1OTWJKUzRhcllTcnFxL25zbVM0WDVneDhMZW42QUg3dE1CV2Jnc2ZkVzlSUGtoc2tOa0x3NVl0Y0JKY3kyYXF3TlQwR3VIZFlEcFRWeG1zd2ZBRlFCK29reElRTHc0N1YyOEpNMXhER2VjRkYzR2VyT3ljV0FCT011aUdnRUVLcHF5Sm1RYXdOSzZVT0tHbUlqRXJhUGVFOUd2YmhDWFRsM01wSjFOSW5maW9oQTJ5MWtQSzRSK1lJTTQ1MVFUdVhmQ0hPVkVaSmtQSlBVV2RJTE1HUkJySHlyN0FWNkhVNjRyVHBaS213dlZITVNiSGV4ZWd1Ym5VT3ZTT25FeHpFUVl5dDY4WkxIQ1NBTGlXK0NCQVZNanNZWm5zNldqYnZJQVVNV2NHTXlxd2tIa1FnZUVpcXF2ZkNvd1BpUmVjSlRkZVViZ2dMaU9vUUl5UzNUVkYzUXM3QWl2ak9mczkvU29tMjRDMHNhSVllTG9tem5WVUhIRURrejVxeDYrZXg1QXhlcVEvaFpnWkZ3dE5raCtjZzZUR050VFNWZjhOeS9FaDJvZytoRFBiK3FKdlluUU12R2NyRUVRN1Y0THllOXRodTRicHhEd0EyZ1ZWQkJYcFZuTXYvakoxWHJCODJEWnlGSVhpL0JlQkx1QlRXSFlxL0llaVFVb3dMOHhkam5xSnlBZEF0RitRRlFza1pqU0NWRHJVaTNoSEt6RElGZ3NqekNvOHJ3a3ozanF0VEh1RjNEaVdPRThheFlIdXlvU0lKVVZIWDU3clZBUTYzOVVCMXNUT3ZvU0RqR0JrNys2NHZOdFU4MGdJMkhHdWhBeE5yVlpzRUowbVBNSUJHS0NHeHlwZmRnTFM3UHRVT2RxZ2hweDhaam9WUjNOMlRocks1Q1krT0JDTG8xdnkvMVJTRXlEY2tXK0RmakIrOUlqZmpBbFM5QnVsNEVuYnhpNVNHWVF4ZUc5N1crcUN5Vzl2YUVrcis5K0U4Ly9lMUhCYnZ1NjZkYlRLbytCRlJ4cmR0dlpCQjhwdklNTVlrNlJHYUdxKzJkRmpzcVRvVm5ySStzWFJmVjE0aUZHQkZ6cXQwZTZkTktsdGpXcm9CQzhFck5HUUJ6dURzMGIzRDAxZzVFT3BYcHFxck40TFFyVjNmaUNvS2lvM3VnUmtnVTBUb0FjOUlyUkJGWnNpelBnek1XOHhUVktyQTJrSTU4SHNhNkU1a1dyMHNKc0FocnFCb0N2MGtoSkhTV2FvbS9HMWw0U3ZQb1ZjVUpXWHVGSmdFWUdmQlV4TVpma2grZm04WXowb2g0TEFoY29rSkpQV21URVBDejEyNnFhbzNaZ3lhRVFCeXd6Q0lFbmZhMnQwcFI4QXlhUEwzU2tYUXljcnFYbXlLWWx5T3d3cGZvWTc1R09hSkFtREVZdmdGZEx5U3V3OTVGV0VGVnRneUt4YXpCTFBUOGxtYkU2U0hyUzBoZVZYU2dIWW1lc1FZcklhako1dkZZVnNiTC9ZNkVZWnA0eHVhS2VSRW1hQ1pCbnlsODhHYWtZekR1Yzg2SThQQ0FYQkdWYm5obUtpZzlxeHl6bkJtQVBCSGpxRmtUbXNCNVZzaUoxeVF5WmNaaE9TZ1RFSUFXeUhRVmZ4b3d3a3dEV0VBMHN1NG13SVhVVEhQQ21vQ3RxclJra3JnS0xESTVHV0FUeHN0UGhxT1hWWkJDN1Rpc1FZQitONmtFWlJ0TEtoUkVScU8vRm9NbGdRRThucFh3dy9zeE5pZ1E5cTRxeXV3bG1FWW1abm1SSHNsOU1rZENTK1VWeEwzMkV1NitNQ0wzYkNRSElRajFRYVg0aEE1dXBKTHhVRUhpRjRhdXpLMDI2Z3hGempLRGc3V2NqRE1uNDdSWmh0c2srdkYzQ1AyTDVnQ3A0WjJsblFrMEhpRmZNVERjcTRvcVhjWjBxdXdudlFJOVZOZ1hsa2xoeTZGY1pET0crdzZicHlEL3NMcEhtdy9ZeUNDcjI3WTIrSFpQK3lMWUkwTUh1Q2RpaEF0Z0V3blpDVjVXeEFoQktLT1hDcEZhWW9GaVgzS1FpdVEvT1lLZVpRV1FQT3BBV054ODVZdmIzdW81V05JVGcwRjZtWkl3aXFvMWhRZ0pTeG1OdDBKV0Z0RXZjaFRXa3JQeWkxd0QxSGU4ZW1ORVJuVnQyMTdwcTRrTVpoNFlFcm9maEJ5bDk2WktWZGNtTWhJSTVRMHFJNXo4d1dBNGVWNjBDN09aNE1vcnpVVEt6anVKeTUyYXNPWUU3UndpUnJURkZBTEVLSmxlVlV5T2pjV2ZSQ1pNU3c2U01RUGdERis3Y21IUFgzY2MvdnpaL2MwM1htSFNFNXcvU04ydmN1VXZyNnBIakNkeXFreWtsTENXYzJ6c1hjS0dJN25nUXBBRGEzRWFHTnFUZ2xKSUFwL0FzUU5OVW1QVHRyK3hGancrOHZnUUZSMVFnTkd5N0dZQ1FsUmd5MHdTcnArOGdlSUlERHlzb1RwMjJFOGNXMGZqc2M0TkVHNTRmVGZsV3JWbkpqZFZ0RHRkRDdKTEdhaUV2ZDZ5akpzQjdKaWhzSGJ2R2RPaktobWtzeUNUS05VK0hIU3Y0bVF3d0dtK1RYK3l0V0VqTmhtSm9vRngxZ3MxZkZHVDd1SG5rTmZKdzNLZElHVmNtRDB1aE1iY0lpaE1pQm5XYThtS1NxV055dU9CbVZmS0hCMkROc1pUdHpXSWtSclgxUDRLdUt4U0xmZU9yazN5R1dtTzMxUHhrZmpSTmh6RDV6NEJMd3BtSXp1MVZjZlBBSDJxRFFOSFFObFJ1d3hRYzNLSkhxZ0ZjZUdscXQyVTNobHdXREZCZkhoRzFJZ0s5eVNqdE93YkFnbU9oMk0yVUxza0xGUUppRi9GT2JsMm1WVFVJWXpieHVFeVRMTlhwcVBGVkpBUFN1NVc0T0JscXBLUkZkclNhZHBKQ1VjNGdpaTczU25BTU1DR3hzR081MUs4NGFvWEQ4Zno1M2FzN1BISVNGeFlWRkJTRldoRm5odEd4WkJtTWdXOGQraUpnVTBHQjRIYXVyRmZBQVBNcG5JZlFzMlBpWHNhVUFiVXJGS0FxY2hVYnhsM2VoVTNWQXcxZExzakVNdFpTRVVpSitNU3h6YjhPalBVQ0lQSmRHT3d5cCtLbFh4MmYzckQrNXpiVTBFL0VWejgrVlgzZVRtckN3RTFMTXdIU0dTM2VWazg4c2M4NC9NYkVkcjBkTDVvaWVBZWlKbmJTWnBUbVNCQWlIeXBRL1VtVm8ybGVjME9zb21nY3VTeFFTNGl2aWdVSFNxL0JrL1VSdUlaQThDaXdRR21iWkVJaFZvNW9seXV0MGxzRUJCWFNKVFd5VzBydDhRY1RmU3piYWZTMWxGVHlXaVZjRlJSQ1c3V1B1a2NRbEdZa3JRUDVFd0k2UGtCQUlqMTRHbUdoanhBU0VPdUN6RUt3ajVmalFyS2hRa2k2azBiaFR3L2RBNnBRSnZFZzk1VENUNlVOTStMV1VyeUhLai9oaFFuVFJ6QWpPSkNaR1FZYTZtS2ZER0pBQk42Zld0UEVmTzhrdTJDTGtFOU1PY2dRNUJwU1ZQa1dERUxyWTZ0elFPeTVMeVo1NUg5djQvV244L3UvNHJXbitqUWhWNkFJTjVlaUJEN3Y0bW1EZmVlRWJCdjJCWSthL0RhR3BvenY2NGVkSzUzMGhqd040WW1MTWdXYVlwcmtPL3J1SlZVK3V6cFpLK2V5Ym04ZHVteTloQ0taRG82bmlraDVUcjZ3cW5KRE5nWnVCVDFUWGpWN0dBWGRXQVl3dnVvMVlEQUF5bjR1WWxuRGIxTDNsUVZZVkdDL2FJYk54WUMyTFBYK1lBeFJLUGFSZTBsaExsS3Y5TURSaDZVMkVXOVVvQUF4dXlxazJHczBodTJaOVpTRnBOUjBVY3NPSk1Xc1dUQXdsak1RRk43QlJKK3FXbWt5NldpQWZqT1BnVDR4QVZtK0JvSXhvYmg0OUNUQ1B2dXdCY0dweDNxSExzdUxxL1oxUWdKbXRYTmNzRmFEWHZLYW5BWFZSWFUwem0xU2RCVTVzWFRJMG1Td3pLamgwL3RYYjA2blZERXR2TG9VTVpSRlloSHIxZWx2ZkRLNHZCdlVMK05qT3dabDhsRUE2cEx4bUhJNzl1MmV3VngrYkpqcjNxdkhXdkVJYWxMOGlCOUcxQnZ0Y2JwVlFkZm9BSitBZnI3Q2tEM3Z3N2xueU5ZWXZRM0lmeEx4ZTJIRVA0UjRJZ1RNTEloWG10UmkxNk8rR1A4ZUN5TDljWktWNVF2RDQ5VnE3YXJIRGlDMEJQQlhxVWNuRUJDQTdJQTBGbU1XQWh0bDNPaHMydGxQVnZIZktwWEVnRWF1am9zSnJvWTB1RTJQVmVWWm1CTkVBakVTMHVYWkFXWENoc3A1UnJVTXR6eDlBb2RtQ2hPUk9ZR2FJOHdWOXhWUUdCK0pEZXAvSml2akZocVRNQ0RmUnpIM1JJV016MkNIS2dZVFFXOGhUaE9GUVcwc0dUb0R6K3h5bDBOZmFCY1VrK2IvaTRRRG43VVprZGhOUkhTWXpnVkdEZnordmJhMFVmaFU2WEVEQmIrNzlwemozSFhyZFJWcVZjRGtMU2U0aDZpR3JFd3dJREFaTVBQVUhwN1pTcDhSWWpTWGdKbDhsTjdudHlsbzVIMHM0Qzh1cW53ZkpnV0ZhdHRxUDJOVkdwZ2RuNmRZdkF5d2tyOWt0cTNTeUpuaUFPUm9KMkRBOTFqUWZFVEpLUnlRclk5WTcxNFhsRDRZcDNkWkxWbXVuNnBsUTJsc3hUejFZTUc2clVpc0M3U1hwMTd2cXV2aTFFQWFVbm1VQW9HeGM2VHMvTFplUXpLM2xQY2J6cTNFQ2ZtRk8vZUZrL3pRd3I4S2NMZFAwMkJQMldBKzY2NUp6RkFrQmIxZEJncUdYYUN0dmREOUxZd0hOQWlHTWVIb3ViVlg2RGQvUXUyQTNTWVpnVDB4dWdGbWUwQTZrMFlMMnJuSGlTREg4cFNHR3NuL1ZXZG1XV25NaWdzZ0RndlNkMkNXNW9XVFF4b0V2cEZFQmRHWk9INTMyUUVNb0RmVkhvbEpxd2tOVlduMVlkRHprRXBFdi8xcXB6ZUVZSmphZGRoRXBuVnQ2Rk95MnEzUklYY0FSbW45bzZJMnlFc1o5eXY1OGdWYlEva0dsbHBobll6U1pLbHU1Y2hHZ3IzSzRYbkFSejVCbUc2TXRrMmNOWXdpWFpReUFpOE9DRGd1QXBFUHRST2NORE9mVExSUk9CYytMcklEWGlDSkgwYWRITGd6akNaYXJDL2c4cjFYQmdzWmd4alBtNW45ZmlOT3pMZUQ4SERpNjlmUzVWRXlHRTh6NHAxcVFuQjM5WHdlUlBMSVFIUDhoWGIwSjE2TlJ3alYvRnRta3BwaUgxU0tsMzFjUUh2eHljbXpBaDRGV2JnNG55bnlnN0UrVkJoYkRRUHdpK0diOEFJcGtmb3JqSUQ2UTFXb2F5RERoUGNYdFJBaHNJMjZXdnRwNWRaQTA0VkZjZWpxWDlwa0NwcTA1N05aZGJ1OWxmeHZyM0pES3NYaUp3cGFnR00yaVZJMmtKSzVvV1FoNGYwOEE1b0JhV3BDV1BDNkFDbnF3aFRWby9waG1NQndTVWRwZE0xVVR2Y1hmWDZCb1l2aENTZUFvU2VjM3oyM0h0Vm5YUjF0Q3ByNG5EMG1EVWNFRWE3NHRYQjFqVDd0NDM0Zi96Wi9jMDMvbkVIUVBjUlZSRVdUS3VlOENITGtyU0IxWkJCVmFVaWdLMEFLT1I0K29XaGdEcmQ4TEZKN0V4ZnFBTlpvMi9xY0FuQ3lxdWlGcjJha2hIS1JITHlhaWxSNDJwR2plRmFNSGRvS0J3ZFlsNGRIT0ZEN1RndEorOWNCK0hpdFZtTzk4UjJ0L3FxVk1nUE5Xek85Yng4WGdnUndjTHhPRGJBQ3A5L2tDQTRjaUk1NGlDemYvNFllSnJxQXQ3STRsN1UxeFl5RDZ2K1gzZ0xndEttcVRRTGtTbzJKWkVKOFM2Nnprd1o1bGlubjFqOHJrTTROWWxRaDdZbFZpbmkrNXEzNnAyS2Z2U2FRZmJocUtyWXlKNWR5MmNYSWRma3VFbUJVUHZDZU12S1hXM1lzQkxZZnVZOUlIYU9PdXlnQWpYTFFabHhuMC9IRjNDR2NpZC84VHpadTJ6dzVGb3lKK3JnWGMxNFoxUTV3UjZwNkZqS1ZJc2hkcDgxU0RMQ1pLR0Z2WGJ6UXkxeitFdWZuSHlrUi9oOStyOVJXbG1OOGlnT2kxUFpScVozYmF0VUJjNGVMS2k2TDBFMWtrQWRPOUFaQ0J1M2s5S056V3Q3cTZrM2w4eGdtdFdsSGRRdWh1TzRBV1M4SW1Jc2pxbStEa0hrckZ1Z1RCZWEwemVienZmWExYSzBjdW9OcS85V1luei83UDV2aWZFOUw5eTN4QWo0Uk9RL0RpbURtQWlURVY0RElsNjN2K1JJbURINVpkT1JNZVNacm5lZTE5TS9uSURBTnI0RGFRTDlxMXVNREF0TDRxbCtkaGplUDhSckJuSTJYQ0N6MWlRTHB0cE1rQ0RFZm5OZUxlc0l5c0p0Tzl4MmNZeFJPOUhNY28zcXRjY3E0MzRhY1lQZ1ltSURaQlFHTE1GZFdTaHR2K0NFQVRaN0hlbllHcEJkNTE5QWFSUjhLd2pEWVF1RkFmYm1nbEdHNzVPMHEwNDhxTzl5cVhZR0d1c3d5WFJYeDBSSXU2QkdXZmpiQXFGOGNNUVdrQVRxNDlldWRvWkJzVFBjUGh2dU5KUFVHVis3dFdIcHB6YitIZTdFOTVuZ09TUURvMndyOTc1MEtJWG9RZGRsRlVSaWJ3ZmszV0JwcXFxV29Va3dNQk5ZelVHbGlOSWN6d0JyQU11Z016bE50QUxTNnBEMUt1WWExTkpLVUhKNWJOWk40RDVLTnV5dFhzUWJNcE9nMHgrWW1taWVhYjd2dUNUMnBUSXo0R01KbUczRTR0WDJQTXQ1WHU4ekNTaU5oc3IwT2dUME5udkZFVWdBNXNoVXBCM3Ewb3dhNTZ2aXF2VmxGNTNDUEZzTlNpVE0rbkRIVUNFclZKUm5Kd3F6Q3VyKzFWMmNIZXRvZy8xNkNab2ttdHFyMGl6L3FJenovYlA3VFgzbmQ5V2RIMTk3cFIzTUpkYXU3cFhSYVlBSnk3K0JYaWtWTW1mc2pBaTFRZndVc21ab245bE9RSEdvS0ZpMHAzTFFZSFY0U2UzUzFCYXJuWGZzdEF2cXdrZi9xbHFwWGkva0lkWmF4dVlNc1NiWEJ4NW0wZUdLaVVBQ0pra1VRRnoxUTNCT0xaT3EvamdTcFduL0hOcVdKQXZpQUxSVWxaa1lhbVFGL2RXb1JGamhQR1RSMUxhaFJsa05IVFdGWmpqekhBY1RsWTVHclZqcFJwQ0NtK1I0bTdlOTB3N1ZKeHpHOTlFa1pROXNGWS9DcE5TbVBXbFpCTGRoa0tyeG9QMzk4QWRpcW5vV0s3eVpZUEhhbndzSlZPSEhkQmYxSXZZZ1p3dW5RYTJEL0sxSFVKdlUyNXZHYXlsL2JieERYYmg3YVljUXlGaVlrS0YyT2dGV3JYSmpUQ05jcTYzUnF0YW5UdlFXWnd3OG9xRG02K0RSOWdTdTRTSjhIbVRob2RZTlFXWW9QZGpHQ1pZTENJSkFvYWt5VFNaS20zcW5iVTBVZG1aQTZ0QU42ajVnK1JFUUdSTkhITVUrSUNwbVQ3M3RpR3F6dHFPMk45b3BVWEtQVUlhZWRYNHRxV1c5ZFo5ZjR4M3FLZXJmQ1p5UTcwRmdDQzNSbUZ4Q3g0VlcvNXlwMWxGd1NVaHNJL2JXU1NZam50WHBpK3lkYitXbTltNlV6RldWVlJ3TE1oblFqeGsvZ0hKWEd5eXBPdS9DSEVKSWt1L2RhWThMVFlHczFvYks3QzNxekp0d2oxemd2ZTBsSzU0bmdRVTZtWWNXNnRsWG5Td2RQSWZPa0xGc0h1NC9Gek9vR3JKT3dPbUlVMUVMNjZoSzQ2UGpCZHRRUUhVUDFNM1N4dUxybitTQm5vRUlrbFRBaXNzcUhrMDFQWU1XMHVPTUNRT3BwblVnbm9qQllDTm1vVDNlcGZYc0M3QmNHNVZtekI3NENBQ0dGcHdLcGR5Zmh3cmEybEhKQzhHRTZsVmp2NDVZUnBEMW5SbHAwa293M0lycVFkd3FNUFNrWXpYdm9JNUxCRHJXZzJBR2pEVFFGZFdzaVl3anUzbHN4V3NpS0ZGK2hiUWhqeit0bkJlVjNsRVEyN1RwaFJWZHFhdEJ3VlRvZ2oySzlpQjErby9rMDZteXJoYWNQeHc2ZUovZHJ5L005THVkMi9FM3I3T2VxSnVHbDNPZWh3R3NWSVpZdGhJY3FiTmhwWXlrVXdGRVhLNXFHQXlxZE1FM3BpTmpxRkI3dS9OcU1EYlpCdnhhOE5ORDE3dkwvY2s2TWpqMU9FaUJialZvUytzT25ZOVVwSVdHNkQxRmlLQitWQWxFd3BwL2RLZDhKV1lqL09FSkxrbFRuZW5EMGxpb1IzWkp2VzFCRnErVC93RktVNnBsakJqeUJCdEU3c3Z2dWxXSWEvUnBtOEFOWVVGV3ZnWGRFcGtaOEVDOElna200cFVNVzhHdnJqT01ZYXNyQ0FEUTBTQUFEMzJFYmh6S3BsNVFRS0FuajAwRUdHTXg5VnV5Nk9yMXdIbGxIV3U5d042Vkt1OWxJS1hxYStVTndKUmpQZFNUcno2bnJhMFMxVUVLUU9WNVo1L29SQkRRZ3A3Z3lOb2lPV1dscG9TMnBXaGJKWXNPUWp1OGJxaGRsbk9oWDh0V1I3anN2Rnc3czZ6ejZJUzJDRncxQWVndnFXYVRYNmRSd0JLaTBPZnJpWWhadmZsSmhqQXh2MXEyT3NMTVY4M21yOU9DcEFRbWN0b2RKVVRlYlIxbkpLbTZqblF3ejZCV3l1YlVkcmluQXFkbWdIcngrSk1sQlpzZ1YvV0E0THEzZlB4bEZDU2Nlb0o3ZjNRRVovS2Rxak9YSXpwQ1U2azZuZ3ByYWpTS2tuMldkZm9MMnBpdnNxNU5nMlpiQWd6M1BKcGtxK3FGRWFRbDZkVVBTVTR2OVVsai9PUFY0UXhGL2xUZm9qYjgwSHVHeG9NVFpvU3BKMitwWUhsOGpXRkxUV2JjOGJVRU9mSmJKMTZBRVNPSmwxcEljQVozRTBYYTF6cWZRajVDT3dlVUtnWXBNOWNYczR4ZXJWRERWZUVlZ25MSTZsZHEwakdmNUYrUE9nQ0t3UENBVFh6dDE4aEtLT2tkU24wSFVPTWVDUmZlV05Ld0paRkx4ZmZQdEhHSVVlNzBDME9ISGdLRnJPT0hPb1h4cmltMkFMTlJPR3IzVVJkTWZtMzdPZ0JVTTRiUGZXN1pzRHM2akR0MUlyUEtQbzFJTW5ENXc0cnNxZTBySXAyNWI2bzJ2T08vK00ycmZqRUdpdlNBKzYrT2hiR3NDeXR3R2ZSZ0RVR0pGZ09HTFJsOEFIZXkzTWp0dzgrbEYxczZqd2xwNDRhSWFsWFEzSzA2SnNQVWtpSjg1SnVIUkFPUGp4Nm9pek1CSHlHMk9vUzlQQXlXc0d2VnA4NG5JYWdRTmI0NmozTWsrSEJyeUUxQ2ZhcHd5OUJFdDR4WVBRVjRrSUpPUHlwUUZCMFAxVzdUaHZrQlpsUjhFbGNXTG9SOWtsYkRxZjBCbG45Q1kzN2lnN3RDWGJDWXlKYXRWbGxoRTZGQko0ZVpFeDN6RzJBR3l6KzBWMkllb0YwQmtVMHVCektBbjJMd09wYW1rM2g0U3ZEbzZLd25ZWTJoVklPS2dFMEt0S21BWFZ0VzZUY0RzV1NjamtzT25ocEpvVUtqam9TK3ZnZlVTSEpFQWg1Nlh2Vm5EMEMzNlZpZ05JeUtGc0Fxcm5vZG5SYnM2dFhJMWxxR0owYVh6SHRPU3NlWFJ5bHV2aE1ES2VvYWdWVTY3OGpNdWtYblVMWVJFc2dpdUpqNXlmbWRrOUZPVEkwNHlxc3lzN3F4dFJQc0pKU2hBclZTVjBtRmhlUFdyNjI1NnQ3UHFobnZaRStiQS93MXFidEtuU2lpSnBBY3lPa2dJdUh0VkRjSlJ5YzVNc0dUbVlaeUZFOXhERFd1RVFvb3RLUTZkYml2WmZNcGJWVEc4VHJZcitvMWRKeW1XK0NsS3ZQQUhnWTBKamtxNExFdWRVMlRyb3I1T0tzaVZoeUtlckRQZm5aV1I0eUJST0tDdDhIUzFGUSs5UXNJTWhuOGRqOVZxaVBSWjFDSHRhb1hxQVVKVDlQdnFDRFJnSE5XaTRUU3IySkk2cUVFYWhrZFdWUlAyYS95QSs5Y0RXUU83ZkhMdnBPNEJFL1NNYnNkbWVXVnRCc2NNSlVIWWEwVEkvNkMyVk9IWC9Ec3dPVzRiNGNCTzRvOE5rblFxOU5HTnBOYTNsL2ZLTm1nTTJNQTF3RjhWVkt4TEFSdEZhYkZlQ1BCQ2srUEwwbUszdTVmK1g2dDE0TkNXSHkwQjZScXFQcnhkVjkxM00ybnhuWHZ0OEh5NiszVjRNWUFqclF5bksvRGpKTHdFUnRRNitmNHE5cml3TkpmeTRkcFpLVVpNWVgxdFQ3R1VjeThaVldoYTBvSkJwQWtMY0dpdWc2NURHOEkrdDBOREV2S2YrbjNWRFMxMzZvU0VnUk5iWVhQK1Q0Y0hjZ1QxZEdpWHNKUWxCZkkzWGNtMGRUT05QeCtIY1U2VG4zZWhvcllweDZOaVNUZjJ1a0RNSnZPVm1vZlVJQ3ZYN1lCWlZicFZjRU9VZTYxSjQ0Q3VNeXhtMTd0T1BoczlCYjZCQXA4OUlPS2FXckMwV1pQbDNnRjE4QTRSTmRhOEJLbzYwZFBIUytONkFFbHN0TzJWd096V2FEWHVRdHZYMi9JMFVTR0tOUGlpam9CSDFHRW9LRWVHUThFOFJIeGFxV2FSQmpMa1Z3UlBML3FCYTVOT3h3NGYvMCtEWlYyZWxFbEFSYUVFb1BNVTlwUGhPRmR1Vi9mWDdVQTJUMEJXM2o5SmloU0xFMUNGOXV1T3ErbDN4UVE5QnQrNXRhdnBqQVUzMmc2RTN1Zkw3MEhVYmtNUzBWMHhLNytvL2RUcjU2b0k5ZjhHeFJsVGhFK1RTNVNwZThoUVlwcTRPblJ2VjNTUUQwL3JFWlFYd3h4YWc3dW5Jb1FKQ3BmcUtYNjg3c2ZqbjZ6Q1c5YThBc29kWmR5R3JRaDlYRWRXK2NLY2xUYnNrNEdBYTZPV2ZTTVl1aFg2YWh6WDRwMWZCMGdJTWFBQ0l1U25UbXJaQnJIZk16NzJWZmxXZFJ2dEl3bmRYM2ppZkRxYW1OcUtNQUlUT3R3SWlLVm1OK1cvWTZDZkdndmFnOTZwUFNNNEg2U0Z5eUR3TlUwNS9DQ0FkRFdXWkNzTGR3dWNhSGZ6aFdDVHFxb2s2UWhNVmo4aGJoQytwYWpYeUtoQmhCMVdPZ2IyTGdWbkZ3cTRrNlRxczR0cG5hdFhaWitwWWM2NS9WZHNhNU9DNkpsbU9oY2xVZ3JhYWNDa0dvK2VUMmpBeEszMnM5WDBMbU5kRmpOZ1JObnBwcnlROGR3MVN5Y1ZDTXNQREpKa0xYRnFaTnhPakx6MTYvTWNnaUU5ZmVWSVJ3ajV0VDlOOUN1dGhqZzZ0MTRBQUFCZzJsRFExQkpRME1nY0hKdlptbHNaUUFBZUp4OWtUMUl3MEFjeFY5VHBhSVZCVHVJT0dTb1RoWkVSUnkxQ2tXb0VHcUZWaDFNTHYyQ0pnMUppb3VqNEZwdzhHT3g2dURpckt1RHF5QUlmb0E0T1RvcHVraUovMHNLTFdJOE9PN0h1M3VQdTNlQVVDOHp6ZW9ZQnpUZE5sT0p1SmpKcm9xaFY0UWdvQjg5Q01qTU11WWtLUW5mOFhXUEFGL3ZZanpMLzl5Zm8xZk5XUXdJaU1TenpEQnQ0ZzNpNlUzYjRMeFBIR0ZGV1NVK0p4NHo2WUxFajF4WFBIN2pYSEJaNEprUk01MmFKNDRRaTRVMlZ0cVlGVTJOZUlvNHFtbzY1UXNaajFYT1c1eTFjcFUxNzhsZkdNN3BLOHRjcHptTUJCYXhCQWtpRkZSUlFoazJZclRxcEZoSTBYN2N4ei9rK2lWeUtlUXFnWkZqQVJWb2tGMC8rQi84N3RiS1QwNTRTZUU0MFBuaU9COGpRR2dYYU5RYzUvdlljUm9uUVBBWnVOSmIva29kbVBra3ZkYlNva2RBM3pad2NkM1NsRDNnY2djWWZESmtVM2FsSUUwaG53ZmV6K2lic3NEQUxkQzk1dlhXM01mcEE1Q21ycEkzd01FaE1GcWc3SFdmZDNlMTkvYnZtV1ovUDhhN2NtTHcwWHh2QUFBQUJtSkxSMFFBL3dEL0FQK2d2YWVUQUFBQUNYQklXWE1BQUFzVEFBQUxFd0VBbXB3WUFBQUFCM1JKVFVVSDVBY0NFQjhmQlZ4SHRBQUFJQUJKUkVGVWVOcnNuWGw4Vk9XOS85L1BtUzA3a0lXd2hNVUVBUkVFcEFXMEltb1JwWXExaUZXdy9rVEZ1clNpWGNDNjBOcUNYYkQxdXR3cVdtcXhyZEQySXJkWHNiVEk5WXBMQ3lpaVV0a0RFUklnZXpLVFdjK2M4L3orbUhNbUo1TUppeUlrOEx4ZnIvTUtaQ1l6a3pOblB2bnVYL0g5cjEzQW1xMVZSSDE5R1RieFp1WmQrQUczejF0RjBSMnJXRHR2R0ZETGlobmptTGRoSElzK1dNNzBQS0Q4R2E2NDlGSEtMMTNNOW1jbjA0cWZGYlBHTXUvTjBTellzSndiaXV6dlJ5bGZzWUNIRnIvQzVqMEJmSVZuTWY3bWU3aW1iZ0YzL0M3S3pHVWJXVGllTGtrNEhPYkFnUVBVMU5SUVYxZEhZMk1qVFUxTkJBSUJXbHBhQ0FhRGhNTmh3dUV3MFdpVWFEUktMQllqRm91aDZ6cTZyaE9QeDVPSFlSakpyNFpoWUpxbTg5L0NORTJjaDVUUy9pcWtsTmdISUZLL0FrZ3BoZlhTazE5VHZpZDI3ZHBWWEZCUTBOdm44eFc3WEs1aVRkT0tORTByRUVMa0F6MkFQQ0ZFSHBBTlpBR1pnTmM2WElCbVBaNEpHRURNT3NKQUNBaEtLZjJBWDByWkpLVnNrRkxXRzRaUnArdDZkU1FTcVRsNDhPREJrU05IMWxpUEl4MUh1LzhMSVZKdnM3OEhJSVVRN2I0NkRxbHBHa0lJTkUxTFBhVEw1Y0xsY3FGcEd2YS8zVzUzOHF0OWVEd2UzRzQzaG1IUXZYdDNmRDRmUHArUHpNeE1Nak16eWM3T0ppY25oOXpjWExwMzcwNlBIajBvTEN5a1o4K2U5T25UaDh6TXpHTzQ2dnlzbXp1Sm16ZFBaZFhhK1F4RGtZcDkwYmVlc2hXekdEdnZUVVl2Mk1EeVZtWDZISWl5YnM1WWJsNVZ4QjJyMWpLdmk3MDdzVmlNQXdjT2NPalFJZXJxNm1ob2FLQ3BxUW0vMzU4VXRGQW9SQ1FTSVJLSkhGSFFuR0xtUEV6VEZMYkFwWWhaR3lHenhja3BVcW1DNWZ4L1RVM040SnljbkVGdXQ3dE0wN1JTSWNSQUljUUFZQUNRMFVsT2N3VFlKNlg4eERUTkNzTXc5c1ppc1QyTmpZM2xBd1lNMkowaWNQSXdndGRPQUczaEUwSzBFVHBOMDJTcXlGbkNsaFE1NStFVU41ZkxoV0VZNU9YbDRmVjY4WHE5K0h3K01qSXl5TWpJSUNzckt5bHdlWGw1ZE8vZW5mejhmQW9MQytuVnF4ZDkrdlRCNi9VZVZ0QzJybmlSbDk1Y3hZcFZsUXhiOENyTGJ5aFJLcFlHZHkzUWFsaHRaZkh2MWhQakxDNGNYM1RjQkd6ck0zTlpWaktQK1ZOTDhObmZMVi9CNG5VQjZEdVZTN3VZcU8zZnY1OURodzVSVzF0TGZYMDlqWTJOK1AxK0FvRkFVdERDNGZCaEJVM1g5YVIxbGlwcTZjVE10c3BzWWJQL0tLVVJzamIvMzdWclY4OCtmZnFNOEhnOEkxd3UxOWxDaUxPQnN5RDVWblJtTW9EQlFvakJ0cEI0dlY1eWNuSXdUVE1LYkROTmMyczhIdDhhRG9jLzNybHo1OGZqeG8ycnN5eEZLUk1uU3RyL2Q0cWNsRklLSWV6N0pBWE9NSXlrOVdaYmM5WWhPaEk1cDdDWnBvbW1hWGc4SGp3ZUQxNnZsM0E0ak0vbkl4UUtFUXdHYVdscElSQUk0UGY3YVdwcW9yR3hrWWFHQm1wcmErblZxeGY5K3ZYcitMTzA2Z2wrdDc2SWNUYy95Wk5LMURxMjJJWmNjRDJUSnc2amlGbzJyMXZEQjFWUWV2TlNWczRmVDk1eGVZcEtWc3lheHJ3My9mUWROWkdKbzB2QXY1WDFyMnhnVDZ3dlZ5NWV5Wk9UaTdyRXlhcXVybTduZGpZM055ZmRUcWVnUlNLUmRvSjJCQ3ROMkc1bmlxQ0pEcXl5ZGhiWnRkZGU2MXF5Wk1rWE16SXl2dUJ5dWNZSUljNEZCcDltMS9RdTB6VGYxM1Y5czkvdmYvL3JYLy82Kyt2V3JUTWQ0cFlVT1NHRW1jNmlTMmZOYVpvbTAxaHh1Rnl1TmlJbnBTUXJLeXZwbmpvRnp1djFKcTIzek14TXNyS3lrdTVwdDI3ZDJybW54Y1hGU3FFK3JiQjkvNmF2c0c3OU51cklwYkJzTkZOdm5zYzkwNGNkSjFHenFXWDlpMCt3ZU5rNk5wZFhFYUNRMHZHVHVmbWVlN2hoZE9jWHRlYm1acXFxcXBKV1dqcTNNMTBjVGRkMVlyRlkwa0pMRTBjVHpqaGFHc3RNcEltWDJWYVorTjczdnVkNitPR0hML0Q1Zk9kcG1uYStFT0k4SUVkZDFtMW9rVkt1ajhmajZ3T0J3TWE3N3Jwci9WLys4cGQ0R3FFem5hNnJRK1NjY1RtWmFzbWx4TitrbEpLTWpJeDJzVGV2MTVzVXVJN2liMDczdEtpb2lGNjlldEczYjErNmRldW0zc1hQR21OVHRLTHJPdnYzNzI5anBUVTFOU1d0dEtPSm82VkxEdGlDbG1LZEpkMU1oMFdHVThpa2xGcERROE93bkp5Y2kxd3UxNFZDaUltQXV1cVA4ZStVYVpwdjZicitkblYxOWRzREJ3N2Nib2xiTzZ2T2FkSFoxcHZ6MzNhQ3dTbHlVa3A4UHA5TWwxeEl0ZDdTeGQ5czY2MTc5KzV0ckxkKy9mcmg4WGpVdTZlRTdiTng2TkFoS2lzcjJ5VUhuRzZuTFdxMmxXWmJhRWNyYUlaaEpOMU0welE3RkxOUUtIU3gxK3VkcEduYUpHQ0VlbmVPSy8rT3grT3YrLzMrTndvTEM5OG1rY1UxVThXdUk1R3prdzIydXdyZzlYcVRGbHhIQW1kYmNMYjFab3ViMHoxTlRTNlVsSlRRcTFjdjlZNHBZVHQyZ3NFZysvYnQ0OENCQTFSWFY2ZE5EaHlwZkNQRjdSUXBpUUduZFNaU0xMU2ttSVhENFNsZXIzZUtFR0lLMEZlOU15ZUVLc013L2hFSUJOYm01K2V2cGJWY0phM0lPV055dHFzSzRIYTdwYk04eEJhNUkxbHZxZTVwYm00dWVYbDU5T2pSZzRLQ0FvcUxpK25UcHcvOSsvY25PenRidlZ0SzJJNk8vZnYzSjYwMFp5d3RYWElnTlphV3hrbzdrcUNKMUpoWk1CaTh4T2Z6WFNXRXVGS0pXYWNRdWRWTlRVMnJpNHFLYkV1dWpjaWxXbkgydngzdWFUdUJjN3ZkSFFxYzAzcExUUzZreHQ1S1Nrb09rejFWS0dFREFvRUFuM3p5Q1ZWVlZXMnN0T2JtNWpZMWFVZFpaQ3RzMTlOMk53OWpuV21OalkzRGMzSnl2cVpwMnRXZ2FpMDdLZHRpc2RnckJ3NGMrRnRwYWVsV2g4QVpEcEZ6eHViYVdIRjI5dFFXT1V2WVpEcjNOTlY2YzlhKzJabFQyM3JyMjdjdkF3WU1JRGMzVjcxRFN0amFXMmwyZ2lCZHhyT2pFZzViMU5JSm1yTkx3Q2xvdHBpdFdyVXFZOUtrU2RlNjNlN3BRb2pMMUdYWWRUQk5jMDBvRkhyNXFhZWVldVhCQng4TUEvR09SQzZkd0RscjROSUpuQzF1SFpXR3BHWk83Y1NDc3Q2VXNBRVFDb1hZdTNkdnV3U0JiYVcxdExRa1kybEg2Qnc0bktBSnA5dloxTlEwSWpzNyt6cE4wNjREMUpYWXhmOG02cnIrMHY3OSsvODZhTkNnYlE1WDFVaDFWUjBDSjQ4a2NCMWxUdTNZVzA1T1R0SjZTMDBzbkhIR0dXUmxaYWwzNW5RVnRvTUhEeVpkejVxYW1qWUpnaVBWcFRsRUxhMmdXUVcxYmR6TlVDZzB4ZXYxemhCQ1hLc3V1VlBTaWx2WjFOVDBVbUZoNGV0U3lyZ1F3aWx3aHRPQ3M0WE9HWWRMRmJpT1ltL3A2dDVzMTdSbno1NUoxN1IzNzk2bi9YdmlQcDErV2NNd0tDOHZaOSsrZlJ3OGVERFpFdFhjM0l6Zjd5Y1lEQ1pGTFJxTnB1MGVzQVhORVVkTEsyZzMzbmlqYThtU0pUZTYzZTRiZ1F2VXgvL1VSZE8wYWZuNStkTmlzZGc3TzNmdS9QTXR0OXp5MHNhTkcrT1dtMnBJS2R0bFZnM0RrS1pwU2szVDdGaXNkSllFeGVOeDZTd1hzajBFWnlqRS9xTnIveEVPaFVMSmRxMnlzakpjTHBjU3RsT2RwcVltOXV6WjB5YnI2V3lKT2xLeGJScTNVemk2QkpLQ3RtblRwdHdSSTBiTWNybGNONkZxems0djkwZUlMMlZuWjMvcFgvLzYxemNqa2NqeVpjdVcvZVcyMjI3elc5WmJ2Q09CazFKS1I2RzJVK0JrYWd1ZXM5ZjRTQUpYV2xwSzkrN2RsU3Q2cWxKWldVbEZSUVdWbFpWcGE5UFNGZHNleGtwTEcwUGJ0bTFiajdLeXNsdGNMdGN0d0NEMU1ULzlNQXlEeXNwS0Jnd1lZSCtyUEJLSi9PR1ZWMTc1ODNYWFhkZG9XM0QyWWNYZ3pIUXhPR2ZkbTlNOVRTMExzWXQ2MDlXOGxaU1VNSERnUUVwS1NwU3duVXBJS2RtNWN5ZWZmUEpKc3VEMmNGblAxQTZDRHR4T084dXBTU25GaHg5K21IZldXV2ZOZHJsY3M0RXk5ZkZXd3VZUU5wczk0WEQ0OTMvNjA1K1czM3JycmMxSEVEalQwWFNmMnJrZzAzVXNkSlExdFF0NkJ3d1l3T0RCZzdHNkpaU3dkV1VDZ1FDN2QrOU94dE5xYW1xU1dVOW53VzBIcnFkSWJZVktzZEswK2ZQbnUrYlBuLzlObDh2MVRWVDkyUWw4WXc5QjlRNW9xSUJ3VStJQXlPeWVPUElIUXZFUXlPM1ZtWVROL2tPN0xSUUt2ZkQxcjM5OTJlclZxMk9Xd05raVp6b0V6a3kxM3B3QzUvRjRaRWY5cHM1cElmbjUrZlRzMlpQZXZYdlR2MzkvQmcwYWROclV2SjJTd2xaZFhVMTVlVG43OSsvbjRNR0Q3VW81VXVOcHpvQnNPcmZUVGd6WVdjNUlKSEs5eCtPNUV4aW5sT1lFMFZBQnU5Y2x2aDROK1FOaDBNVEUxMDRpYkE2QjIrajMrNWQyNzk3OUZTR0VuaUp3N1Z4VVJ3ZURUTFhlVW12ZVVndDY3WktRM3IxNzA2OWZQOHJLeWs2TGNVaW5YUEtnb3FLaVRaTEFucHZXVVR6TmFhWFpnVm1uMitsSURHaWhVT2dTcjlkN2w5WHlwRGhSYlBrclZIMTQ3RUs0c1FMNmpvSVJYKzFjMW9RUVk3dDE2emJXTUl3cmEycHFsdmJ1M2Z1ZlRvRkxUVExZQ1FacldJSk1tZDluLy8rb2tneVJTSVJ3T016QWdRT1ZzSFdWZU5xT0hUdllzMmRQc2pYS0hqUFVVVHl0QTllem5kdlowTkF3T0M4djcxdENpRHVVeXB4QTRoSFk4RUxDL2Z5MFZIMlFjRmZQdlE3Y0daM3ExOU0wN1N1OWV2WDZTaXdXVy9MeHh4Ly9mdlRvMGVVT2diUExSQXpBTkUzVHRQZGIyTmxUdTJYUEtXNnBJbWNud0ZMRkxSS0pNR1RJa0ZNMjduWktDRnM0SEdiSGpoMVVWRlMwNmZlMDY5TTZpcWVsV21tV3FDWGR6bG16WnJtZWUrNjV1MTB1MXh4QXpXRSswV3hZQ29IcTQrUEd2djluR0h0VHAvdzFQUjdQN0ZHalJrMEpCb1BQVHBndzRmZWJOMitPQWJwbHZXbTJpeXFsTk8xeDVsWUNTenFISzZRS1hMcFNFV2ZZeFJhM1kxc2tvNFR0aE5EWTJNak9uVHVwcUtoSURvUjBUdVZJVjU5bS9SVnppcHJUU3RPa2xDSVVDazMyK1h6M0FsOVdDbk9TM00vaklXcE9jZHZ5UDUzT0xYWFFOeXNyNnlmdnZ2dnV4VFUxTlV0NjkrNzlsaEFpNW5CUEJhMDlxVExGZ25NS25FeTNGQ2lkZTJwWEFRd2VQSmdlUFhxY1lzTG1YOEdNVWZQWWtIc052L3Z3VVNaMm9SZGZYVjNkcHB6RGJtSlBWM1RyS09VUXRubWV4a3JUS2lzcmV4VVhGOStyYWRwM2xMcWNKQm9xamoybWRyUnVhZCtSSnpTaDhDbmMwNHQ3OWVwMWNUUWEvZlhycjcvK3V5bFRwaHl5M0ZQTktYQ0pYVFRDN01oNmM3aXFISTJiT25qdzRGTXFxZEJsTGJiOSsvZXphOWN1UHZua2syUTVoN09USUYyU0lOVktNd3pEYWFWcGtVaGt1c2ZqK1E0d1JxbkxTV1RYRzYzLzFnL3gwSS8vd2JJR0dEZmo2eXlma0FrWVZINjRpWWRlM2N2NnlnaGtaak42NUFqbVRSL0NhS3NIUExwL053dFdiT0dWdlg0Q1pGQTZ1RDkzVEIvTDlOM3JZT3pBVG44S3ZGN3Z0eTY3N0xMejYrdnJueTBvS0ZndGhIQlo3cW51aUwwSlovd3RqY0IxR0h0THRlQnNnZXZ5VTBMODVheDdaUm51U2FQbXNRY2c4QkkzbDY1ajVrc2JXVmkybFJjWFBNVGlOVnVwaXZyb08yd2lOODlmeUMyajh6ckZheTh2TDJmMzd0MUpVYlBMT1ZLYjJEc1NOV2ZHVTBxcFZWZFg5eXNvS1BpdUVPSXVwU29ubWNBaGFQd2srZCt0cjI5a1JVUEt0ZnZ4djVqeGJEbFZlQ2dkV0l5dm9aWU42OWN6b3g3V2ZtY0lKYzE3bWZQNE83d1doc0xpWW9iUnpJYXRPNW4zZUl5OEg3cVlmTmFoazFMbmRxd0lJVWJuNStjdmpzVml2M25ublhlZXYvamlpeXVGRUpyRFBZMWp0ZkxaazBUc3pLbFQzSnhiejV6TGcrellzbk80UXl3V282eXNLOWFabDdOaXpod1dyZG1HMzVlTGUrYk1DL25kc2plcDhwWnk2UTNYY0dtUm4zVVB6V0wrS2o5OUw1ek9IU1hsdkxKc0ZRdG4rY2xidTVUcEozbXAxUGJ0MjVPRnQ4NmV6OE5rUG9XejE5TlJsNlpKS1VVa0Vwbm04WGkrQjN4QnFVcG5pQzlzYi8xMy9RNFd2TnBJTE9VdVc3ZldFczNMNXNJckxtZnBoQndJN1diV0Q5N2h6YjM3V0I4YXd1U0tmV3oxWk5CMzJGaFczbm9HUmJUdy9LS1hXRmhSeGFxOU1MbStva3NJbTQzSDQ3bHQ0c1NKWTJwcmF4Y1hGUld0c1dKdm1pVnF0dlZHd25DVHFkYWJTSW5Ea2VxaU9qZW4yUUkzZE9qUUxuYmhSS0hvR3VZdm44cmt2Qlc0YjVsM0phOHRlNU1xMzJobXpyK1RpWlR6VEhrZFVNclVlZk9aTnl6S3BXY3RadFdlWFBMOE9MWXJuMWlrbEh6ODhjZnMzcjI3emNKaWUydVVQWmtqSlVtUUttckplTnIyN2R1N2w1V1ZmVi9UdEhsS1RUb1I5UlhXUDJLcytlc0hiS0FINHdhMnNLRkNUOTVsL0xWZlkyTzZBVkFlTDNrZXlCczVrYmRHcG50d0Yza2VTendIanU5U3AwVUljVzVoWWVGemtVamtpVC8rOFkrL25UMTdkcU5sdmVtMGpzZ3liRUZ6eHQ3c1FhZE9jVXRkKzVnUXVTaE5GZS95NXlmMlVqanJQM2xzNXRsZHFCeGtHTlBuRDdPTnQzUXh0akltWGptS0o3Wjl3T0lyeDdKbTFIakdYM29OTSsrWnpMQ1Q1SW5xdXM3SEgzK2M3Q1pJTGJ4TkxlZXcwdG1wV2M5a2dpQVlERjdvOC9ubUNpRW1LeVhwWkZndFV0RzltMWl3S1VMZkN5WnljM3hkRzJHenFmMXdFd3ZlYTZaMmJ4VWI0aGxjZU8wb0pqczMxQjNhelVPdlZsRlpmNGoxRlJwOXg0emxqc0ZBUE5wbFQ0L1A1N3ZuNXB0dlBudlNwRW5QRGh3NDhGMHI5aGF6WEZNaGhEQVNobHByM00zcG1xWk1Fa2tJV3p4QzNkNHR2TDUvUHdmOEp1Nk1Ya3lkdklNUFA0eHo5dGxuZDhtMWYybVRCOFB1WE03YTBTdFl0dXcxMXExZng3SkhYMlBaNzY1azhkb25tWHlDeFMwU2lhUVZOYnZ3TnQwK0FvZWxsdXA2YXJGWTdIYVh5M1VmMEVlcFNDY2swZ3cwOC96eTNWUmw5dU9KcTN1UnR5TDlYZjE3OTdGcWt6L3huN3h1REN0T3FjZnkxN0ptVXdWMUFPNXNocDNSTGJFSS9MTVUvSFlDTkUyYk5HREFnR0Yrdi84LzgvTHkvZ3hvbG51YXROeHdKQlpzajhleTNvVGxzbUthVVJxcnlxbHRDcU9qNGMzcnlhQnpoelAyM0hNNFM2dGc1ODZFcTNyMjJXZVRrWkhSdGM0UmdNL3lVYU5Sd0wrZVorYk1aZEZyZWN4OGNpbXZibHpMUTZPQXVuV3MybnhpWDF3d0dPU2pqejQ2YkoxYVNseE54R0l4WWZkOFdtYTJacHFtVmxWVjFTY2Vqei9tY3JtZVVLTFd1YW45MTBZV1Y4SzRxOGN5OVRDVHJzdXUvaHA3bnY0R0crNDlpN05DMVN4KzlsK3NDVG51TVBnOE5qNTlFOXNXWE13MUJVRmVXL0U2aS9ZYXA4cHA2cE9ibS92VGFEUjYvNnBWcTBxa2xCbldSOWtMZUtTVUxpbWxabC8vVmd4TjJONU1KQklSNFdBejFRMGhvcVlnbytnTVJvNFl6QmtGR2VqTk5SdzRjSUNLaWdwMjd0ekpSeDk5UkRBWTdHSVdtNitJdkZ3Z3NJWUYwMlpSdm5BaGViVnJXTFZxSFZzclAyQnlTUzNyeWdGdkdhTk9ZTElrRUFpMHNkU2NMVksyb0RuSGQ5dXVwMVdmMWlickdRd0dKL2g4dnZ1RUVKY3EyZWprWkJpcytMOERCSUFOeTEraWRIbnJUUnVXLzRVSis3L0NxNWQ1cWRWZDVCWGtVT1J4VVRSNEdOZVViR05oUlMwYnFtRmlmZ3VWWVFOZlhqZEtzc0JYMEorWnc3SjVxVHJJNXAwdGNNN2dVK1owZWIzZTJWT21UQ25kdTNmdk0yZWNjY1o3VnR6TlRpd0lJWVJobXFacEwzaHVHM2R6aVc3ZE1tVkxNRUs0ZWpjYmF6OGh0N0F2WldjT1lxakRYYldQczg4K3U4dE1CM0hqbThnOTg2OWs2NEkxN0NrdnB5cGF3cDFQTHNYLzBBSit0KzUzTEk1NUtUenJVdTZZdDVCYlRsQlRVWE56YzFMVTdHYjIrdnI2ZHU3bllUS2Z5WGhhTkJyOWh0dnR2aDgxL0xGcmtObVRzalA3Y0tFajVGRmJlWWh0ZnBQYzRtTEdueUZZcy94bDVtMkZjVE8reHZJSk9SQnE0SU1HQUMrRm1WQzUvblV1L1o5R2NzZGN6RnUzOWllUE1PWFZZVUFqTDgvYjZYcEdqNE5yZXNtQUFRTUdORFEwUEpXZm4vK0s1WnFLRk5jVVo5ek5Gam1QSjFOMEwrd21QZWdFQTM2YWF6L2hnOW9xYXVPWGNxSFYyZURzVVQzNzdMUHAxcTFiMTRpeGxVMS9rclhUbmQ4ZXo1M1B2c3FkSitFRk5UVTFmV3BSY3lRSnRGdHV1Y1cxZVBIaUgyaWE5aUNuMlc2SExrM0JjQ1pmZXluT3JNNzYzLytabWVzakRMdGtJbytlbDBtdHB5K0ZXL2V6WWZuTFRIb3ZIMTkxTGR2OGtIdm1FS2IyZ2hMUEVNYXRXYytHVGV1WVZGMUVtZDdNaG1vVDh2b3hjMWdtRkE4OTVVNmJFS0tzUjQ4ZXZ3eUZRbjNHangrLzVLT1BQdEljMXB0dWlWa3k3aGFQeDl0a1RLWFhLM01LZWxQWUcyTEJJTzVvTTQyTnliS1JOc2ZaWjUvZDZVZU9kNm9QZkdOajR4RkZMWjM3bVpva09IVG9VTCtDZ29MN2hSQ3psVkowTVlxSEp1YXVIWWFpTDB4a09adFlzR1l2NjNkVlEyWWU0eTRZd2Z5ckJ5VW1GUlFNNGRsN1hTeGFzWVUxZTZ2WlFBWm5EVHVMTzZhUFlXbzNvR0RncVhyMjNKbVptZlBlZSsrOTR0ZGZmLzAzbDE5K2VhVnR1Vm5XVzl5K1k3cWtRdUtMajh6Y0FqSmxDODNONllYTkZyZk8zRi9hYVFaTk9rWE56bjdhb3VhTXFhV3gxT3pXS00wMFRSRUlCTDZRbVpuNWdKcVoxb1hac0xSTjk4RnhwY2NBR0RmcmMzbm9veDAwZVNJd0RHUDF6cDA3Rnc4Yk5td0xFTFd5cGpxUVhBK29hWm9VUXBqV2RGNXA3VlNRenBIajlrVGU3dDI3VTFCUVFLOWV2WklES3p1enVIVUtpODNwZnFhSzJ1SGNUNnZmTStsK2hzUGh5N3hlNzRPb3liWmRtek12Z28wdmZINlBmUnJnY3JtbURCMDZ0S0N5c3ZMcGtwS1N0NnhFZ20yNUlZVEFtVlN3ZzI2dGxsc3lGc2ZoakovaHc0ZDNTcmYwcEF1Yk0xSGdGTFhHeHNhMEV6cFMzTStrcUVXajBSbHV0L3RCNEV5bERGMmMvSUdKS1J6SGU4SkhKNS9zOFRuRTNjYjI2ZE1udjY2dTdxbkN3c0svU1NtZFNRVWRSMUxCSVdEU2NsM2JxVms2Z1JOQ01IejQ4RTZYVURpcHd1WXM2WERHMUd4Uk81ejc2UlMxV0N4Mmg4dmxlb2lUMXZDbE9PNk11QnI4aDQ3ZlRMWWVBeEtQZVpvaGhCaFVVRkR3VUZOVFUwNzM3dDMveTJHNXRRbEYyZUlXajhmVGlsdEhvbVlmSTBhTTZGU2xJQ2ROMklMQllJZUpnalIxYXNLNTQ5TXBhcnF1ejlVMDdTRWdRNm5CS2NhNFdjZG5pbTZQQVREbSt0UDVUQloxNjladGZrdExTM1pPVHM3dm5XNnBVN1RTaVp1ZFhFZ1Z0RlJoMHpTTkVTTkdrSjJkM1NsK1llMWtQS216VGVvb3NwL0N1VUhLanFrOS9mVFRIbDNYZjZocDJrSWxhcWNvN2d6NDBoMEpGL0t6dUovalpwMXl0V3VmZ296czdPd0hRcUhRN1ZkZWVXVzJvMVBCQTdpdFRnV1hhWnJDTUF6aDZGSWdHbzBLKy9NWURBYngrLzAwTlRWUlgxL1BvVU9IcUt5c3BMeThuSTgvL3BoSUpOSXBmbG5Yd3c4L2ZFS2ZVTmQxL3YzdmY3Y1pQZVMwMUZKaWFzTGV5RzRuQ3FTVTR0MTMzODM1eWxlKzhpTk4wMzZnUHYybkFjVkRFN0d4VUpQVlMzcVVWdG81VjUvUUtSNVNTdngrZjZldThmSjRQT2RObXpZTmw4dTFkZDI2ZGZFT3BuZklOSWtEa2VxU09wcnMyeHhGUlVXNFhLN1RSOWlrbEd6WnNxV05xS1hiSkpVNmRzZ3BhanQyN09neGRPalFIMnFhOWwzMWlUK055T3dPSmFNU0l1ZkxTVGhLbmd5SVdUMk11Y1dRWFpnUXNpR1RvUFNDeE0rY1FMcUNzQUc0M2U2eDU1OS92aWd1THQ3K3Q3LzlUWGRtUmpzU042Y0FPdXZaVWdYTy9scGNYSHhTUng2ZDBCaGJSNzJmVHZlem81SU9LYVVvTHk4djZOKy8vNE5DaUx2VkovMDBKYmRYNGxBTmNwOEpuODkzKzIyMzNhWjV2ZDRsdDk5K2V5MjB4czRjVnBsaEdJYnRhYlZKS0RqamE4NDRtOHZsd3Q1YVAzejQ4Rk5mMk96SnR4Mk5IanBNOFczU1VsT2lwbEFjVjNHNzdhYWJiaUlhalQ0M1o4NmNCcWRsbGs3Y2NHUkxPeEsyVkhFN1daTjRUNGdyV2w1ZW50d21kZkRnd1E3SGVhY3I2YkJqYXBiN09VZGRqb3JPU2xkeFJWUGMwakVqUjQ2VVFvaC92L25tbTRabGpiVnpTMVBFcmwyOHpYa09uTzZweStVaVB6Ly8xTFBZOXUvZmY5UXh0WFIxYWs4Ly9iUm41TWlSRDJxYWRvLzY2Q2dVeDUrTWpJemJIM2pnZ2ZpbVRadWVYYjE2TmVrc045TTBEV2d0QmJIS1JlVGgzRkdYeTRYVnBuWEN0MTk5cnNKV1hWMmRYSkdYdW5qbGNERTFaNTNhN05tekg5UTA3ZnZxOGxNb1BqOHlNek8vdFdMRmlsaDJkdlp2YlVGemlKdkVXdEpzK2FiSm1Kc1FRanJkVU9kaHU2TzJ1SjNJdmFXZm03RFpHOXFkN21kSDQ3eFRZMm9weGJjUHFzdE9vZmo4eWNySytrNGdFSWprNXViK2tiWlpVcGxheEd0L1h5U1FIY1haYkt2TkZyY1QxVFQvdVFoYk9CeHVJMnIyNHBYbTV1YkR1cC9XS085a201VFZVYUJRS0U0UU9UazUzMmxzYkF6MTZORmpwV1cxU1ZKaWJKYTRPUzAySVlTUXRxZzVCYzYyMkd4aE8rZWNjOGpNek94NndpYWxaTWVPSGUxMkZLUmFhdFkyS2VjU1kreUZLOUZvZEliVis2azZDaFNLRTB0RzkrN2Q1MVJYVndlTGk0di9MaFA5VjIwKzMvWlhlMkNsWmEyMXNkeWNGcHZUSmZYNWZJd2NPZkp6cjNFNzdzTG1GTFhVN0tlOTk3T2p5YmVtYVlwd09IeVpOYVZETmJRckZDZUhvcUtpb3J2Mjd0M3JQK09NTS82Wllyblo4VGE3OUFPSG9BbE4wMlJIY1RaYjJESXlNajczTXBEakttd1ZGUlhzMmJPSHFxcXFwS1dXNm40NnVncElLZXZRQW9IQUY2eDVhbXIwa0VKeEVoRkNET3Jmdi8vdG16ZHZiaG85ZXZUSGx1V1duTnNtaEdoanRaR1NJVTJOczduZGJ0eHVOMTZ2RjYvWFMwWkdCZ01IRHV6OHdsWmRYWjBVdGVycTZxU28yZjJmRHZlelRhdVVjNXgzWm1ibUE2Z2hrUXBGcDBEVHRDK09HREZpOXNxVkt4K2RObTFhbFVQY3BHTjJHNlpwbW5hbU5KM1Zac2ZhbkJsU2UwTHY1NVVwUFM3Q0ZnZ0VrcE02cXF1cjJ6UzFPMk5xNmNvNnBKVGlsbHR1Y1ZrN0N0UTRiNFdpRStGeXVTNi80b29yYW9jT0hmclk5dTNielJSeHN6T24wdDRxYjR1Yk01bGdXMnoyVjYvWG0zUkpzN0t5UHBjNWJwOVoyS1NVN1ZxbG5KWmF1cWIyMUF6bzRzV0xmNkFXcnlnVW5ST3YxM3ZqdSsrK1c1T2JtL3Q3UzlETUZIR1RxWmxTVGRQYVdHN3BTajk4UGgrWm1abU1HalhxdUNjVFByT3c3ZHk1azMzNzlpWExPbzVtVFY1S0J2UWJxbFpOb2VqYzVPVGszRk5kWFgyb3VMajQ3NENaeGkxdEUzT3p5ajZTNG5hNFdGdFdWaFpEaGd6cFBNSldXVm5acmxhdGcxWXAwbVZBZzhIZ0JHdVpzZHI3cVZCMGJ0eEZSVVYzYk4yNjlkQ3dZY1BldDZ3ejIwcHJseW1OeCtPeW80TGRkTEcyN094c1NrcU8zMGIyVHkwb1RVMU5hV3ZWT2hBMWtiS2xYVHR3NEVBZm44OTNIMm9BalVMUkpSQkNsQTBlUFBpV0YxOTg4Y0FOTjl4d3dPR1NKaTI0bFBxMnBFdWFUdGljNHBhVmxVVk9UczV4R3lEZy9qVDdHdzNUWk0rL3QxSzVldy9WKzZ0b09GUkRjMzA5Z2FabVF2NEFrV0NJU0NoRU5CSkJqOFNFcnNlSTYzRmhHcWFRTWlGc1BUM2hlYUpwMzZYcWNsR2NuRStwQmk0UGFKN0V3RXB2dGpvblI0SEw1YnA0MnJScEZjQlR0TWJiVE5Ja0UxTEZ6WmxJY0xxa3prVEN5SkVqajh2MDNVOWxzWlh2L1lUS3FvTlUxOVRSME5CSXM5OVBTMHVRVUNoTU9CSWhFbzBTamNYUVk3clE0M0hpY1NNeE5saEtJU1ZhckhyMzdVS0l1OVJsb2pocFNCUGlVU0FLc1JZSU5VSkdMbVRrMmQ2VW9nTXlNakp1cnErdnJ5Z29LUGdyWUhTVVRCQkNTRHZlbG1xNU9kMVJwN0RsNU9Rd2VQRGdFeTlzQjZ0cjJGZFp4YUhxV3VvYkdtbHE5aE1JdEJBTWhRaUZJMFFpVWFMUkdIcE1KeUZxY1JJeE5TbWtsQ0pZdGUxQ2w4dDFuN284RkoxTDZBd0lONEVlaHB5ZUNZdE8wU0g1K2ZsM2JOMjZ0Y0tLdDVrcGg1UlN5b1MyQ2VMeGVESTdHbzFHNlVqY01qTXprK1Vmdlh2M1BuSENGZ3FGK1dSL0pRY1AxVkJiWDA5alV6TW9NaklCQUFBZ0FFbEVRVlQrUUFzdFNWR0xFSTNGaU9reDlIaGM2UEU0aHRFNmdtajdodi90N3ZQNTVnSjkxS1doNkpURW8rQS9tQkEzbCtkemY3cDE2OVoxbWwvOW9vc3VPcGE3OXdadUF2YVNpTEcxRVRaQVdpVmRwbUVZeE9OeEdZdkZSRFFhbGZhMnE1YVdsdVMycStycWFxcXFxcWlvcUdEbnpwMlVsWldSa2ZIcFc4V1BTZGoyN3R0UDFjRnFhdXRzVVF2UUVuUllhckVZc1ppT3JzZUZyc2N4REJORFdpNG9pTEl6Qm54ZndHVDE2VkYwYXN3NGhPb1R1eFZPQUdWbmZyYSt5ZkpkMndIdzlmM2lwMzZNYU5XN0FGU2QrZVN4L05nbFlUTzJiVkQ1OTM5TFlxdThnWjFJQUNrUVVrZ3BNRTFKWEVMVWdHQmNhQ0ltTldKb0lvSkxoSENKSUc2WEg3ZXJDWStuRG8vM0VBY1haWEhHR1dkdzVtMGZmYXJmNTZqdDdmMVZCNmlzT2toTmJSMzFqVTAwK3dNRVdvS0V3bUVpNFVSY0xSYUxFZE4xZEQxTzNEQXdERk5JTXhGWGl4emNPVTNUdEhucVU2UG9NcGJiMGE3Nk80M0oxTHpmZW5mZ2p5ZVFtTVRqQTd5V3dlU1NTSmNFVFNLRmlSUUdramdtT2dZeDRrUmxuSWpVQ2Nzb1FUTkt3QXpUYUFTcGkvdXByYTJscHFibVU3K3VveEsyUUVzTCt5c1BjS2ltbHZyNlJwcWIvUVJhV2hMSkFxZW9XZFphc2w3TnlvQlc3M2l2bjhmai9wNjZEQlJkaW5CeklzbWdPTHhQNnVrKzY5bWlXYjA3RURkTmdtWTZ4RTJYcGtpS0d6b1JxUk9TVVZyTUNINGpUR004bUhSUFc0eFB0NEQ1cUZ6UlQvWlZjYUM2aHJyNkJocWJFM0cxWURCTXlKRUJqU1dTQmJhb1lab1NLYVdRU0swZ3Y4ZDNnUytvUytBVTh0YWFZd1NlMjBIa1g5VVlWYUV1OFpwZGZiUEpPSzhudWQ4Y2d0Yk5leFEvSVJON1MzMjVKKzAxZi9MWEozbUdhL241MWIxUDl0bkQ5L09iS0xpaWpzWXhMeE9PdGQ0aUVLTXZ6UnZ4ZFdyNXRlMlNTakNFTTVrQTBrUktBeE1CYU5JUUxpR2tTMnE0aFlaYnV2Q1lVYnpDamM5d296VTNrNW1aU2FVZVlhanIyRVB5UjdUWTlsY2RwT3JnSVdycjZtbXdrZ1dKREtpenNWMXY2NEphR2RDRUM3cHJ1aXJ0T1BYd1AvRXh3UlY3dTR5b0FSaFZRWUlyOXVKLzR1T2oveUU5ck43c284Q25lVzUrYitCUEpqZ3NOaS9nQWR3U3FRR2FCR0ZDV3BjMEtuWENVcmRjMGdoK3Y1K21waVlPNlUwYzBCdVByOFVXRElhb1BIQ1E2dG82R2hxYWt2VnF3WkF0YWpHaWxxakY0M0VSTjZ3c3FPV0NWbjY4dnBmSDQvNk9ldHRQUFNML3F1bXlyejI2cWY3bzd4eVBkc25mc2ZvZmovRFMzbUlLM0g1YUdnTzRoMDFrY0dBTGU1cjhOSWVMR2YrTm16aTM2UGhtZlh0NXV0MEVmSnpPYXBOSUNVS2FTRk1BQmxMR3BTazBZVWczY2FKb3VIRVJsaTY4cGhzUkROTGMzRXl0SGlWSHk2QzdLNHNzelhkOExMWkV2VnBOc2w3TkZyVkVFVzRzVVlTYkdCaHB1YUFtcGpSdEYxUVVGeFhkQzR4Uk1uQnFJUU02WmtPMHk3NStvemFNR2RDUDhwZnR1akcyZU9HWCtPcnM3M0xydHk4blkrTmE2cys5Z3h2dWVKQ1pZLzI4dmE3aXVEK2ZRSXdDcGx0V213L3dTaXZXWm1tTklHRzFZVnR0Y1dtSUdBWXhhUkNWT2hFWkl5U2poRUloV2xwYWFJd0hxWTM3cVlvMUhCOVg5RkIxTFFjT1ZWTmIxNUFvN1docG9TVVlJaHdKRTdXS2NHTkphODJ3dXd2c0xLZ0lIZGd4V2RPRXN0Wk9RVVN1cDJ2L0FvWkU2K3Evd3hIeGtKMmJtMWdha3BsUGRrNHgvZnNsZnVlYzNFemlrYy9OeGY3bUgvLzR4M1BUdUtSMmxsU2taa25qR09qRWlVa3JVMnJxUkNJUlFxRVFUVWFJK25pQVEzb3pOYnIvc3dtYkhvOWJMbWc5RFZacHh5ZnZyT0t2ZjkvQTN1WW9rVmcwVVlTcjY4U2pBZEhVN0Nlc3QzWVh6SnB4amN2bjlkNmI3ckUzLy9SNlNzKzdseGNQcE54UTl6SXp6cHZHUSsrbGNSMys3eWVNdldrWjVVcFRUaU95eVBqMUxmVForVFd5Q3gwWDdJVHp5Rjk5QzcxMzNrM3ZkNjZueHpmN3Q3bUlqM1M3NHZPblQ1OCtNd2VJN2hrT3E4MWpoYjAwYWNYYVpFTFlFdUxXSmtzYUowSkMyTUxoY0tJRUpCNmlMaDdnb041SVhCcWZYdGlTcFIwTmpUVDUvYlFFZzBSMEEwdy9GZVhWaEdLNm5RVWxiaVJNZGRsYWlLczk5L2pQN3dhKzNPR3p4ajVrMGE5ZXAvYW9YbUlMYTFaOVFNblVTeWhUMTh6cFl4Vk9ta0MzUzFNYTAwdkhrUC8wQ0Z3Yi8wbjlWWCtrN3BkMXVPKytuTzVmeXpxNjJ4VW5CRTNUSnE0KzR3ZFRIVmFicDFYY3BJdWt1TFc2cERwRzRwQnhZbEluR28wU2lVUUlHaEg4Um9qR2VJdmxralorT21GcjlnYzRjS2c2VWRyUjFKem9BdzJHaU1STnBBRFpjcENxeG9qZEJ5cmloa3k0MTFJS3BCUU41UjhNZHJsY2N3NzdyRG5aOE1aL3N1aWZMVWQraFhWdjg5SjdnNWg1VVM5MXhad3U1UFluNzRFQkdLOVZZanBDZWU1SlorS3AzVW56STl1SmJXOUUvKzgzYWRuZ3dqZXA3MUhkcmpoeGRITmwzZlRINHR2N09jV050clZ0d2xuYjVyVGFZc1NKeFdKRW8xRkNNa2FMR2FIWkNGRWZiNkU2M2tUQUNCKzdzRlVkU0hRWE5EUTJPVnFtd3NUaUpyaTdrWjhoQ2RmWEVkVGoxdURJNUtRU0laRmFYcDc0MXVabFB5bVpObmt5cFdNbU0vYWFlU3o2Wjl2QW4zZmdWZHd6R1Y3NjZYTnNQa0lNdXZhTnY3UDVDNWN6dWZCdzRyZVB6VnYyNFZmWFV5Y1RxQjU0Si9URjdTd0RHM3NSUmUvZFFON1lqa2JUdVBEY1BZSE11azAwLzNmYlVwTDQwdi9pME9WdkVZdWwvSWpQZFZTM2QwVUdYRDNuVTlXd0ZWODJqMXN2c3djM25zbVZjKy9tSEd0UHNmdWNPL251Tjg0NXhrYzBpUDdnZVE2TWFGdkRkaGo2bnA4eitHcFNFd2xDdUt4RFF4TkpxODFJSkJLSVc0a0VYZGVKeFdLRVpZeVFHU1ZnUkdpS0I2azdveS9oMzF4RXo5ZHZTaDVGLzNGbXUza3NiY285cW12ck9GUlRTNTA5dGNOcW1RcEhvc1RpRWt4QlpsRTNYQWVhOERlN1JKYTN0UThVaVFnZjJINUozYXI1ZDh4Nk5zWU5QMXZDczROaDYvS2ZNK2YreHpocjFVS21KaS93ZkNaLzc5dHN1T2JuUFBUY1ZieDZkMGV6SmcveHlpdjdHRDlyTEhuMnR3Njh6WUtmTG1OenJEL1gzUDF0SmdlZVk4N1NGc3A2dDdENXFWRTgrdFJNaHZtVXBweHd2SVZrL2VKaXNrdmp4RmYraytZTlJYVDd5Wm13SjRycmdiRkV2dk15TGRzTnFOcEg1TlVvK3A0T1lpVkR4OUo5R29SdS9RQzlhRkpLQ01OQU9nVFFOV0VjT2VPaVJPN2JkM1MzbnlZYzJGZkJDOC8reHhIdk4rbUtyL0hGOHk4NnFzZjBYVFNRZ3VlbUFoQmF1WTJtSDZ3OThzOW9ucHZlNlBmQU94ZnQvK2ttSUc0ZGlYNVNwQW5DTkVHQXhBQnBJSVdPSVYzRUVaYXdSV1Nja0JuREp5SmtHbDZhbTNiUXdCZW85NFNURzY1aWRhT1E3T3BZMkE0Y1RHUkJtNXFhQ2JRa0NuSERZYXNJMTVCSWFhRExESEo5UWpSR3drUTBqOUJNS1VpOE9NM3I5ZDZWZDk2M1diazhuN0krT1FCTW5IRTV3NVl0NDRNS21EckM4V1NGbHpELzdwZVo5S3ZIZVA2YXA3a2xYU0g0M3RkNTZlQW81cDJmay96VytxWEw0UGJIV2RsN0s0c2V1SXNadWRONTlybXJLQVBXLy9SZVh0bzVrMkVqbE02YzhMakt0UFBKcW4yVDJ2dGlaUHppTW9xdTkrUC8xbjhUM2dQaWExZFJjRVVQV3JiWFFkVWVBai9hMDhHajlDRDdKeU1Rci82ZHdJY0dUT3JBb252Z2VncG41Q044Y2VJci8wSHozMExIY1B1cFQ1LytBN24va1NlTzYyTkczNmpnd09Dbmp2bm5TbjA5cndIK0RlaUFMcVdNQzd2T1RhS1I2RXJBQk9LWVVwTkN4SVVoUlR5ZXNOcGtuQWh1UW1iQ0pXMm9yR0hIZFM4UXp5aG1lR2EvSTd1aSs2dGFYZEJtZjhJRlRmU0JKa1lSNllZRWFSQ1B4OEhud3lVa2hoN0hxdkxSN3YvYnJ1dUZFRmY2Q25Pby9jZGpUTHZ5U29hZU41blN5LzZERGJFWTZUek9rdW5mNXA2QnUzbmlwMytuTXMzdFcxZjlIZjlGVnpIZVlZSDV2RkM1WXg5YmQrNm1QT29sTDdDUHlnQkFDLzVBNG5iRmlVZjY0NGlpSG5oSEZlUHJDMmJNaDZjdzhXWm9lUzVrNE1qWkxOZjFFOGp0K3duK1grNXpXRjd0WFNMOXViOVJlKzFmYVBqaEx1U2tTZlM0cWNjeDNLNDRrYmlFZHRtbWdUKzV3T0dTZWxwcjI1SWRDWmhPbDVURTlGMWQxNU5kQ1JFWlMzUWxHR0dhakNCMWV1Q3dIUWx1Z0ppdWM2aTZwdFVGRGJaT3c3WHIxZUptUXRpTWVGekVEWUhISllRUk40VmhDbTFvWHFGTGM3bnZCQ2hmOWhDelh1ckZ3bC85bnFsRDh2RUYvczZNeWM5MThQU0R1T1dCcTNocDFuTXNlbU42cXF5eDdCOHhKdjlzRkU3UGN2VGRQK0RLNTVieHU0cEIzUHlySll5dWY1bTUzNzZMeGJRUUhUaUxKNGVvaStta0NOdmYzc0JmZEQ3Wk0rTEVubnFWNW0wOXlQdVBhUlRsdVlCcUFuY2RJWnZsTFNiN213UFFpcURIUDB1dHYySnVCTkR0Lys0a2ErbC9VZnVyT2l1bTJraThEdUxiNnpEUDZrdkJ0S0c0WC9nWDhXVE05UWkzSzA0b1BUM2RyaDJoOWY3WEZ2T2dibGx1VHBkVWdwQVNhVnJpSnVQU0ZDSWVseTZYQ3gwelVRSWlkY0ptakJZalFyTVdwc0Zvb1VadnBzaWRoMGU0MGd2YkFhc1h0TEdweVdwd1Q4eFlpOW9ON3JwTzNBQ2thWThqd2hRdU5CRVhwcFRDazkvdm04QTRhR0h6UDNlVE4rYWJUQitTbjNpR1FBdUh5dy80UnN4aS9wV3ZjL05UeThpTmVaTWxIZEgzWG1hTjd4S1dwcnFWdnY1TXZmc0hURTI2dEZmeDVBdFhFWTJDVDhYV1RpSWhvaStzSmZxQy9mOEEvaHYzZ2RjRnNhT29QWXJWMFRKN09TR254VDNxZkFwL2trWHcxcldFOS9qeFBuQTkzVXUzMFREN3c2Ukl5U2lKbkJzdXZBOWNlNWpiRlNjdFRJSDQ0cklCZDA4ZXNmZUJWVW1YRkd5WDFHcTVRaVJNcDBUNWg1WVlUb2t1VFhSY1JORUp5eGcrMDBPTEViRUtkMXM0cERmUnoxdlEvam5Ea1FpSGFscG5yTFVFZzRuQmtkRldhMDNYZGVKU0lqR0ZFVTh1T2haQ0NIRk5XZSs4RmlHK21YaTRITW9HNWxQM3IyVTgvOC9kYkgzdjd6eDAvMUkraUVHMFEzWExZZUxkMytaU2dnUmFyM0xXdmJTUm9pc3ZaOWhSbmp3bGFwMlVWRkhyVzBydXo4L0RWOWpleFRUMzFCSGY3ampxb2hDTkpyNWZGMFBmV0ljWU40YThiNWJpTHUyQlo5Slk4cTdJSXY3V25rVDErbUZ2VjV4TWVyaXpyNzA3NTh1NXBEVElKMXhScWFWMkpCaUdJUXpEd0ZrQ2ttaVVqeEUwSXdTczhVYTF1cCtJMmI0OVRtdFhzNVpjbmRjcWFyb2V4N0NHajVpbWFTMW1RVWlFZUd6dTJObGVXdlZuOU8wLzVLRVJoM2ppZTdjeDdZRVYrQytieGN6aE9VVHJEMU96Vm5nSjgrOGUyZnFITmZBMkwvMnpGOWRjMWw5ZEVhY2FmZnVUT2FrVVg5OWpMOEdRYS8rUCtoL3VRWHh0RWtWLy93YUZQeTVGdnJxV3hsOVdIOVh0aXBPSFFBeTlzK2VsbDlLMmFMZE5INmxkdEdzbWhBM0RTSlIvNk5MdUpVMklXOGgyU1kwUTlVWUwxWHBUKytmNzV6OWVZbGQ1UmJzRkxmNFd5eVZ0M1R3bG90SEVMb080WVFocFNtM3Jodi9OSDF4MnhqdHduSnNDRHJ6TjgvL01ZZXIwVVJTcGE2SlRjbURjeTEzNjlmZlpjTlV4bUJzRGp1cHVobUZRV1ZuSmdBRURqdnFodS9ET2d3NTU0NDAzMHY5aGtuTFBILzd3aHp1ZWYvNzVPaUFJaElDd0VDSm11YWlHRU1LMHRsbEphOUdMdExkWTJjdGVjbkp5Nk5hdEcvbjUrUlFYRjFOU1VzS2dRWVBhN0VodzE5VzNyMW16VnVjbHJEVnIwMVE4Ym1CWTFwcVVDWFV0R3pqZ2x1TXVhZ0I5THVDVzZVbzhGS2MrRXlkTzdEU3ZwWFV0Nk9kRzZhaFJveVk5Ly96eksrMVlteEJDeHlyL0VFS1lRb2prbWo3bjNsRjdXM3hPVGc1NWVYbms1K2RUVkZSRTc5Njk2ZCsvUDRNR0RhS3NyRldLTkhzcFN6RG9xRm16ZHhmWW9tYjV1NlpwQ3ROcW5kcjBmNnR5WFM3dEZuVnBLaFNLbzZWYnQyN1h6SjA3TnpmcGprcnBzZHpScEV1YVdOZHBDbXU3bGJCTFB4THJCeEt0VnZhbUs3L2ZUMk5qSXpVMU5ZUkNyZldLbWoxbkxSUU90NDc1dHVKcXVwNFV0bmJXMm9oaFEyWUJnOVJiZFhyaTZwVjFlcngyemFYZTdPT0lFS0xzdnZ2dXU1ajJTUVNYbEZKTFRONld3alJOTEdGTDFyVFo0bVkzeU5zejIrd1Zmb2NPSFdwOTJ4SWRCZ2tYTkdLTitVNjRvRHB4bzYyMUppMXI3Y2F2WCsxeXVWdzNxYmZwOU1VM3BxRHJ2dll2RkI2RENxcGFrZU5OZm43K1YwdExTNzFwckRiTnR0b3NjV3RudGRuaVpvODFDZ2FEQkFJQkdoc2JxYTJ0SlJKSkxIL1JuTmFhTXd0cUQ0ODBEQVBUTUszbExBbHJiY21UaTI0RVZPUFNhVXplUFdlVGRYVi9YSDJ6dTQ2bDFqZUw3T2xua0RkbjJOSC9rQ2RUdmRuSDMybzcrKzIzMzU1d05GYmI0U3czcDlYVzNOemN4bXB6Si9ZWFJOUEcxaEsxSkNhR1phMVpGcHZtZHJ0dlZHL1A2WTNXelV2MyswZWQ0cDlBRGJ3NTZzMytIQ2d1THI0Q2VOTVN0cGlVMGkyRWNKTklKR2d5Z2JES1BxUmhHQ0llajh2VVdGc2tFbWxqdGRYVjFWRlNVb0xiS3VXd2Q0SW1sVEZ1MVpFWXBvRXBKVkpLSklqUXdSMVRnQXZVVzZNNDVjbnNCa0o4L3M5akduQm9LN1RVbkRaYnNUUTRiK2VyaTBjTnZ1S09qWmJGNWtGS0hZRkxTZ3dTaGhTbU5ER2tnU0YxNG1hVXVCRW1IZytpeHdQRVlrMUVvZzJFSXpXMGhBL1FIUHlFK3BiZEhQTC9PeUZzeVdMY3VHMnRHUmkyRzJwS3BKbFl6Z0pTZUQyZUdlcUtWNXp5dUgzZ3kvdjhueWZVQ0pXYlFRK2RkcWQ0WU4vaVNjQUhTYXNOUEVJU1IwZ1hDRk1paFpSZ1Npa053OFF3VE9LR2lXNFk2THBCVEk4VDFYWENrU2pCY0pSQU1FeFRvSVc2eG1hMGFDVGhndXB4dlcwVzFISkRyYVFCVWlLYTltNFpJWVM0VmwzMWlsUGJuSEJCVHM4VDgxd3ROYWVscUFGNDNPNnIvdmUzQy9zbExiWkVuQzFsTndLWVVnb2pFV3NUY1NNUis5ZU5PSG84VGl5bUU0MVo0aFlLMHh3STBkQVVRSE9XZHlRTGNXMFgxRFFUYm1qQ1d0T3lzN091VTFlOTRwUzMxUEo2SitKcko0TG1BNmYxNlI0N1lzaUZwR3l6UWxvWlVva21wUlNtbEppbXhMQVRDYmE0eFExaThUalJtRTRrR2lNWWlSSUlobWdNQk5HU1RlNU9VVXRhYTNiQ0FMSHFUNy9MMERSTkNadmkxRVM0d0pzTnViMFMvejVSbk9hYjVuT3lNcTZZT1dWQ2htMjFTVnZjRXJQYUJJbVpSaUpodFVrTXd4UUpsOVNhL3FISGllbHhJcGJWMWhLTzRBOEUwZXdzcUc2NW9IYlNJR210V1NVZWt5NjY0RnFnbi9vRUtFNE5JZE1TMXBrM0I3SUxvWHNKYmZiOG5TaTY4RUxtNDBUSm8zTnZIWmZHSFhWSjBLUzBoWTJrMVJZM1RPSnhFOTIyMnZSV3F5MFVqaElJaFhIcnVJbmp4c0JGWEFvTUtZUWhCWVlsYUpacWF1N0MwdWtuSkVPa1VDaE9LM29XZEw4RWVOdGh0Ym1GeElXUVd1SXZrSlJTSWd3cE1Vd3BEZE1RY2NPUXR1V214MU9zdGxBRXJkVU5qU2RIaFNSYXA2UjlpTWJHeHVGQ2lNdlVXNkJRZEQyaWIvNkdvWGU4ek5aTyt2cmNMdGNsYTVjc1NFMGl1Q3lyTFRuT1NKclNLdGcxTGN1dE5kWm1KeElTVmxzRWQ3SnV6UkkyTTlrVG1oQTFRT1RrNUh4TlhSNEt4UW1rOGpXdXVQTVZ0clYrL01udE9aREowNmN4ZjBvSmh5MUVhZHpGaS8vclovejBNU2R3eWZndUhycnhLWmFsamtiem5NdmlsYk9ZZklTZi91THd3ZU9BVDFLc05oMkJoaVJSK2lHUXBta2xFcXpTRHp0ODFqYldGbXNWdHRha2dUWEZ3elJ0TjFSb21uYTF1dElVaWhPTVp4QUxmanVIRzNvQTZGUnVXczJjUjU5aWJ2YVBlUGJDd3pUeU4yN2pkOHVxeUx0OERHVW50SEhDemFVUFBzYXo0NC85SjNPek15Y0IvMDNiT0pzYlpOeXFraGFtRldzelRGTWFpVDVTbVlpM0dlaEdhNnd0SEkyaHBicWc5b0hWaUJvTUJpOEJocW1yVEtFNHFTcEh5WmdwM0R4RVovT1dHaXIvNTFkdDNjdnFONWcyN1JmODhyK2VZZXdEYjdCSDM4WGMyUTh6ZDVOMXUxN05TNC8vaWduVDVqRDArb1hNV1Z1ZDNFVVNyZHpFUS9jL3pNaHAzMlhvamIvZzloVzdxTFZ1Vy8vNGc0ejkwWitaZS84dm1IVGpmWXk4NHhtZTMzNk1kWGV4U3A2WjgxMnVXRnFaZU03R1RkeCsvWVBjL3FhMTRyejZJeFkrOE1qUVFmMzZEYlVFcmRVZGxiaE1LVFhEbENKdW1DSnFtQmlteE5RakhLenpVeCt6eXovQzdQN3czN3k1UDhUdURXK2gyYUtXTHI0R0NKL1BkNVc2cUJTS2s0MU83ZlozV0xiRHc3QWgrWlJjT0k3Uk5SK3h5bHJSV3Z2K1Iyd3RPWmV2WFhzbkczOTZFYVdlTTNsMHljTThPc2I2OFpvcWFvZC9nMWRYL29xMXM0dFp2K1JsMXJRQXNRb1dMZndMVzRmY3dOcVZqL0hoenliaFc3MkVPYXZyazg5Y1Z4bm0wbnZ2WSswZkZySjBURDJMWG5nL0tYeEhoYmVFVys2OUNQNytaMTZzOUxQdU55dlpQUHdxRmw2WUI3RUtGdnpvUlRZUHVZN1gvL3I0ZWM0NG03UXlvNENtQ1NGY0FqQk5Jb2JFTUVGQ011YVdHSzBHcG1IUzgreHpFNjZvdy8zRWJuYTNEazBJY2FXNnFCU0trNkZsdTVuLy8rWXdQeGxqNjh2RTZiT1pQeWtQT0lkcmhxeGs4WnVWekN2Tlo5MzZLc291dks3am1GcmZjN2xqVWpGNVFONlljeWg3K2cxcWd4RGQ4VFlyZ2lONGR1YVppVEg4SldPWVAvMGRKcXgrbi9JcGx3SlFPT0pMVEM1T1dJMmpSNVRBK21vcUljM1kvaml2UFRLSFVzZDNMcnpuNXl5ZGxJV3ZkQXFQWHI2TkdRdWZKQzlZd3J3bngxRUVSTGU4d1lyZ0NKNmNlU2I5dkZ3Q0xFMjEyb1JJZENJZ2hLbUJRRXJNaFBVbFRNT1VpVGliaGlIQnRGeFNkNnExWnJ1aGdBaUh3MU9BdnVvS1V5aE9kb3d0bFR3bWZ2bE1Gcnk4amZMcCtieTJJNThyYnlzK1dxODI0WUxxRUcwTUVDMCtpeExIMkxtaW52bjRHcXM3dE1wOG55ckc1bUhZVnk5aTlNc3ZVdjdsNjVodS9VN1JSaitCcGdwdXYvNTlnRDREQnZRZjhja24rOTVyRzJkREJ3UVNJWVFRbWtDYTFoUnowelN0amdRd3BVd0ttNVlxYXBhbEJpQzhYdThVZFhVcEZKMlRvdkZqR1YzelBzdit2b1hOSmVPWVduTHNqK0hya1ltdnVwcktXT3YzYW1zYWlQWW9QczZMbEVLc1g3YWF6U1VEOEwyMW1oZXR4V0crbkR4eWUzNko1U3NmWS92S3g5aSs4aisrbUdxeFNkbmFpV0JLaVNHbE1HV3FLMm9tRnBTYWlkSVB6UkkwZTZpYnNNczhMRGRVQ1p0QzBWbkpPWXRyaGpmdzRyS1BLSmt3Z3FTdWVUUHhFYUt5NmNoQmZ0K0lpNWp1Zlo5Rnl5cW9CYUxWbTFpd29vclJVODQ5cnFVaTBTMnZNUGV0Zk9ZOU9JZEh2K3huMGVOdlV3bjRobzlsTWh0WnRLSUNQNUNoTjE2VVlxMGxWL1JKcEdaYW9tYUNFRWlpRVYzb1JweHd3RTlkSEtTWnFHdHpweVlOYkRjMEZBcGRyTnhRaGFJems4WEVTWVB3YmZCejVYakhxUGFTYzdqNTNIZDQ2TTRmcyszQmhUeDZ1SWZ3RG1UZWo3L09nbDh2WmRJMFA5SHNmQ1orZFRaUFR2azBvOS9ieDlqZ0xCYTlNSWtQZnIyQm9objNjVU94QjJaTVkvSTlMekIzOVZrc256S01oVCtleG9KZkwyWENNajlSYjE2ZnkyWitlOGcvbHYzbmh5VDdSbkZKbVJnWmpoQkNBeUdsa0Y2WElLcEhPVmdmdytWeTQ5TWtwbFgrSVhyMjdFazBHaFd4V0l4NFBDNU0wOVNrbEM1ZDEzK21hZHAzMU1XalVCd2RuMmF2S0IrditteVcwS1kvTW1sNUNjdC9lUkVscDhoNURJWWlTM0xHWHZzaTBBSUVnS0NBTUlLb1FPaENZR2hDbUc2WEpyMGVGejZ2UjJiNnZHVDZmR1JsK3NqT3pFQkx6WWFTcUYvVE5FMmJwQzVWaGFMekVtMnM0UGtWMnlqNThybW5qS2dCWkdYNnprdm5pbUxOYWNOdXM1SlNKRG9SVEd1RmdaSHNSTkJTaW5LUlVvcUdob1pocUdVdENrWG5aYy9MWEhIck03elU0eW9XVHNrN3BYNDFJY1RacTUvNVVlOE94RTFJaVVDQ0thMU1xTE9IMURyY3FRM3ZKSHBETDFKWGprTFJpU205aXJVclQ5M2ErVEZubnprTTJHOExtd1NYa0dnSTIyS1RRb0tVZHUrb2RkaGJyWkpaVVZwSEZBbVh5M1dodW5JVUNzWEpvbnRlemlqTFNrdE8ra2djc2xXcnBOMC9LcE9WSFlaMWFLa1cyL2UrOXoyWEVHS2lPclVLaGVKazRYRzd6aHQ1WnIrVWh2aGtuSzExbEJHV0t5cmJ1cU5haWh2S3d3OC9mQUhRVFoxYWhVSnhFdW4yL0NQZkxYVmFiVExSRkovWUZpL0JtcTZMdEVRdE9kTElhYkZaQ0ovUGQ1NDZwd3FGNG1SVFd0SnJTSHRYRkszVkhVMFlaYVoxR0xJMUVhbzV5enhJekY0N1g1MVNoVUp4c3NuSnpqekhZYkcxS2Z1dzlVcGFXVkpwN1Q4MlpHS3NrV1piYTFKS2NlMjExN3FFRU1waVV5Z1VKeDIzeS9XRkFiM3lYU2tXbThzU05FMUtCRmh4dGpidWFHdU1UUUJpeVpJbFh3UnkxQ2xWS0JTZHdXaGI5dWg5L1oyaUpxMTlvemhXOHlYaWJNNmFOb2ZGQnBDUmtmRUZkUzRWQ2tWbjRjd0JmZHNrRUdnYlp5TTF6aWFsaVNuTlZ1VWpVYjgyUnAxS2hVTFJXZWlXbXpXRWRzbUR0bkUySEhFMjAweTBXYmtkWTRxRUVPSmNkU29WQ2tWbndlTjJENmQ5akMzWkw0cXpuaTNwanJaYWJPemF0YXNuTUZpZFNvVkMwVmtRUWd6NjVmZG01WFFrYmlSVUxWblBacnVsZG94TjlPblRSelc5S3hTS1RzZWw1NS9ieHhJeWErQWtHaEpoVDlXVldKVWRWaGVDbEk3c2dzZmpVY0ttVUNnNkhYMkxDL283ckxSMnRXeFlJNHhhdXhBU3dvYVVVcmhjcnJQVktWUW9GSjJObkt6TU14eWkxa2JZckRoYndpT1ZDTXNWRlpyZEl5cUVVTUttVUNnNkhSNlBlMUNLcUxrY0ZodXQ0cFpJSU5pdUtOWWR6bEtuVUtGUWREWTBJWVk0ckxUMkpSOXBFZ2dhSUdwcWFnWnp1SFdCQ29WQ2NTU3FOekYzem9NTW5Yb2ZjOWJyeC9PUmZTc2Z2Ny9RS1dqU21zZEdzdVREVGlBNExMYWNuSnhCNmwxUktFNVgvTHg0L3k5WVZBbFV2OEcwNzc5QjVURS9oczZhRi83Q3VwNVhzZmFsWC9Ea2VFL2JtN2UveElRYmw3SW05dWxlNGREU2ZrV2tMZEsxT3hBU2dxYnJCdUc0WmJHNTNlNHk5ZVlxRktjcExidDRzM0VnRjVaQTdaWnRSSWNQK2hUTFljTFVOdXFVakJqVVpxdDhrdEtMZUhMZUZNWjdQOTFMTE95UlY1ekdIUlZ0RHlrTTB4UzZBVzRwcGRBMHJWUzl1d3JGNmNaVzV0NzZJdXVDWWVwaUhqYmYrQkhSWUlDb3Q1SUpOZGV4ZHQ0NWJlTlRzVXBlZlByUExGNWZSUzJaRER0M0NndnZ1b0JoT1pVODgvMW5lR0pIbk5pT1JZeGRQWlpuRjEvRGFPZlA3bGpMN1kvb1BQcW5iekQremQ4d2NobmNVQnBtM1k1cWFtT1pUTHpwTmg2ZFZJeXY4VzFtM1BvT2VSZG1Vcm05Z2RvbUtQdnlOQmJjT0tSUFcwc3RHVjhUSmxKb2dHN2F4bU0wNFlvS0lRYXFOMW1oT04wWXhxTy9mWVNWTS9veWF1WjMyZmlIT2R4Uk1vajV6enpDVzZtaVJvZzFqei9ERTQxamVIYkpZMnhmY2lmWEJGY3o2L0ZOMUZMQ25iKzhqL25EM1l5NmFSNGJVMFV0SFRVTk1HVVdhMy83Q0cvZE81RDFTMTVtVFV1cmE4endHMWk1K0dFMlBqT05vdlV2OHBNM1E3MHR5Nnk5dUFGU0NPRjJpY1FkM043RURVS0lBZXBOVmloT1IzUzI3Z2hRZGtZeHRGVHlRYXd2dzNxa2MxZTNzR3g5SnROdnVvaGhPVUJPQ1RmY05vNjg5OTloWGVPbmVOcWVaM0hOaU1UYXdMelNNeW1MTlZBYnRHOHM1c0l4QlFsaDdYRU9kMHpJWmVNN08wbzZFRFY3c1Fza0J4VkozTllOU3RnVWl0T015dFhQTUdOWkpmNm1NR3g1a0hXRXFRdDYySHhyQlRjLytEM3VkQWFvbXZ6VVVrQnBUNmM0OWFXRWo5alRDUFQ0REMvRXlqTkVkU0JOREs2b09BLytIZW1YWXJFSkNacEltYVpyeTV1MmE5ZXVZaUJEdmMwS3hlbEZ5WlE3ZWV1WmFZenYreVdXL3VFUlhwMTVKbWRkZFRjYmY1c2lhZ0RkOHlpaW5qMDFiZDNKV3ZJbzdmSDV2czdLeWdiSXpzMzQyYnhiY2pxMDJGTFFDZ29LZXF1M1dLRTRUYW1wb0prdkJxQUFBQ0FBU1VSQlZMeTRoREtnZkU4OUphWEY2ZStYTTRLWjQ4T3NlT0Z0dHJZQUxaVzh1UFFOYXMvOUVoT1B1N0JWc2VwL0svQUQwY3EzZWVMTk1PTW5uTWtYQjUrUjV4Q3kxbnEyRktScDR2YjVmTVhxM1ZVb1RrLzhsUTFRTW9ZOC9KUlhlaWliNHVuZ25sbE12dmRPYXAvK003Tm1yOFFmeTZScy9CU2V2V3NNUmNmOVZlV1NWN21hYWRmdm9qS1d4K2dwTi9Eb3BEeWFkL2ZJNjhCYWExMUdKUkNHYVVnUmpVYnY5SHE5VDZ1M1dLSDRiQmlHUVdWbEpRTUdIRVBJK3VOVjZzUTVhWHliR2JlK3o1Vy9uY01OS1paZ1pYWGRnbjVmdnZrZElHQWZBa0lJSWdJUkV3SkRFOEowYVpwMGE1cFdwTTZtUXFIbzdHUmwrUEljYm1nYlM4MDU1UU1rbXFacEJlcVVLUlNLem83WDQyNFhZeU5kakExd0N5SHkxU2xUS0JTZGdoNFhzSHpsQldsdmNydmJDRnY3UXlKc21kUDRiQlVvQ29WQ2NVSndhVm82VjVRMlZwdFZxS3NCZWVxVUtSU0t6bzZtaVJ6U3hkWmtHM0VURXRDRUVFcllGQXBGcDBlSTlzS1dhcm5aWFZVYWtLMU9tVUtoNlBUQ2x0QXFwL3VacHV0QUpvVXRTNTB5aFVMUkJTeTJ6QlJSYzJpZWJDTndHcENwVHBsQ29lZ0NaQnpHRFcxanRXbWs3YWRYS0JTS1RvZTN2WGVhVHRaUXdxWlFLSTZHRUp0WFBNT0U2Ny9MME8rL1J2bkpFN1oyQ1lOMkFpZGI1NGNyRklwVGxTMS9adExDajRpaXMyN1JRdVp1K2hRYnBDcmY0YUZsZmlZL3ZKRHR2N3lVNDdja3BaNTEvL01HYTZxUDZzNnV3MWhzMWtaNE1HbHRTMUFvRktjb1d6ZFZVRFJtSUQ2cWVHMVBNUmNPOFJ6N2d6UTJVSnZkbHd1SEh1OWNZd092clZqTmEwZTNGa3ZyMEVxelRMWEVKbmdRVWtxcDNucUY0clBUMmFaN2xQL1BrOHhZVVlXL1NjZlhQUk9mbmxqYVVwamRrNXQvM0g2WVpPMm1sNW43bTNkWVg2UGo2M2ttMDJkOW5mbmpDNGl1WDhxRXh6K2lMZ2k1MlptTW4zMGZ6MDVxVy80YXJkekVnbCsvd2lzNy9FU3ppNW40MVdrc25ING1SY0M2UmZjeE4zczJHNzkxWnVMTzYzL0QwTi9rcy96SGVTeTRmeTFibThLUW5Vdlo1YmZ4NmxjcjB5NXplZlMyY3lnQnhQQ3AwNEFnaWVrZWZxQUZDQXFJU3RDQk9DQTFFcGFiUXFFNHhTajc2aHcyL3ZZbXB2WThoMGQvK3dodjNYc09mUytjemNZL3BKbVFXL2thc3g3OWlKSlo4L2h3NVM5WWUxcys2eDVmd3FJOTRCcy9pNDBQanFPdys3azgrYWRIMm9rYXNRb1dMZndMVzRmY3dOcVZqL0hoenliaFc3MkVPYXZyRC84Q1N5NWw1UjltTTcxN0psUG5Qc0tyc3daYU43UmY1dkxRV2orSDFTcVJtQk9lR01xbW9RR0d1Z1FVaWxPVW1pcktldzVpbUJmS3QxZFROcnh2MnJ0dFh2ME9sY09uTUc5OEFUNDhGSTJaeXJ6aERheFlYWEhFcDRodWVac1Z3UkhNbTVtdzBId2xZNWcvdlMrYlY3Ly9LWk1NN1plNXJIOXJHLzcyV3RXK1Y5VENEY1JJcmxOUUtCU25CbHQ1Nkk2L3NLYkpUMTBzazJrM3JrN3NETTEraEFudlQrUFZlV1BhTkluWE5vYkpLeTV3ZkMrTGtwSmMvSlgxUkJtWXNvb3ZSZGdhQTBTTHoycXpLTG1vWno2K3htcHFqOE52a2xqbUVzYWYwS3FqUXVNWTdxeFFLTG9LdzFpNCtHR1dmam1mQys5NmtJMS9tTVhVbmlNU0xtbUtxQUVVOWNqRVgxMlBQL2tkbmNxYUFIazlDZzRyYWdDK0hwbjRxcXVwZENoSmJVMEQwUjdGaWJIaG43R2d6RnJtUWw1N3JaSXBYOXNJVzFoZEJBckZxVWlJOG1vb0s4bUN4bXJLdmNXVWRTQXlvNmQ4aVpKL3IyWFJKajlSRW9tRUo5N1BaL3FVZ1VkOEZ0K0lpNWp1Zlo5Rnl5cW9CYUxWbTFpd29vclJVODZsRENncHljZS81U1BXTitwRUd5dDRmbldGUTZFOCtMdzZ0VFgxUkpQZlM3L01KUThpUi9Wcnk0UXJHbElYZ0VKeEt0TEFCNVVGbkZVQzdLMml0dWVnanV2UFNpNWw2ZHd3YzMvekNDTWZzYktpOTg1bVh1bFJQSTEzSVBOKy9IVVcvSG9wazZiNWlXYm5NL0dyczNseVNtSTRkOW5sMTNIUGxxWGMvdi9XRWUwK2dLa2o4c2xOL25CZnJwa3lrRm0vZVlSSmUrN2tyWm5RMFRJWEtXVTRqWFhtK0w5QUNJa3BUU21rbEI4QUk5VkZvRkI4TnRReWwrUEFZWmE1bUZKdWNZMjQ2b2UwbG5zNEY3cEVCVUlYZ3JnbWhLbEpLZjNxYkNvVWlzNk9sTEtsWTJ2Tm5wMmJRQU9Vc0NrVWlrNlBhY29XaDRESmRJSm1lYVM0cFpSTlFnaDExaFFLeGNubk1NdGNETU1JSE1aaWMrb2FtcFN5UVoxTmhVTFIyWWtiaGovRllwUHB4VTJnU1NucjFTbFRLQlNkbldoTTkzZmdma3JIdWdNQU5NTXc2dFFwVXlnVW5aMVFKQnFnZld4TnRuZEVRZE4xdlZxZE1vVkMwZGxwOGdjN2NrV1RZbWRuQzl5UlNLUW1KeWRIblRXRm9oUHh5WUVhZFJKUytHRDdua0RIb2lhdEZhT0pRV3p1Z3djUEhpd3NMRlJuVGFIb1JBem8wMU9kaEJTcTZ4dnRjZy9URmpXUjhENmw3WUlLSWRBMGdUWnk1TWdhanJZSFM2RlFLRTRPa2JtL1dobzZqQ3Y2Lzl0NzgvaW82bnYvLy9VNTIreExsc2tlRWhLV0VFUkFLK0R2aWxoLzZOV3FiUzlZV3JTOVNsdSthUHVyMUc4TDFRcTl0cUJ0b2N0RmJ5dFdyMWhic0ZxZ1ZXcFJSQlRVRmxjVU5TeWFSQ0FRUXNqQ3pHU1ptWFBPNS9mSG5IUHltWk16U2JCc3d1ZjFlQndUQW1hWk0vUE02NzE5M3RUYUNZKytvM2IzODhlTmk0dnJUQldsOUlBTlpEcmozREpFRExCUlN1aysvdEJ4Y1hHZHFkSjAvYUFOYWhsdXpkeVliQVNrYWJEcHV2NHhmK2k0dUxqT1ZDV1Rhck9EWTNOcytTQWt2Zk9BYXByV3lCODZMaTZ1TTFYeDdwNW1oeEEwYSt1SGxLWmhza0ZSK041a0xpNnVNMEVwYkZqNkE4eC9UVTMvc1dBYWZuN0haMW94aEJ3YklTUmRHUVZBT3pvNjZ2bUR5Y1YxWmluUjlCWVczWGszeGw5M0cycSs5a3NzMk56RW5ESTdORURVYlg0ZWEzZWZyTE5rVzdCcDdTdlkzbkdpUDYrTTZ4YjlDcnZXL1JMdkxCZ0hCVUJEL2I0MkJtWTIxMmFPVXhIcnZ3SUFXbEZSOFJGd25JOFpGeGZYeVZQeVF5eForaVIyVk0zQStzZC9oczBMejBmVHd3OWd3ZmJqZ1ZRUGRyeXdFV3Yybkt6VC8xdXdiczFMMk5aeGNqNjdTNUVSVEFlU2lUdSt2N3pEN3RRSW9JTms5TFNsQ3dna0hZcWExbTRYZ0FuOEdjWEZkZm9WM2Y0U05tQVNIcDE3ZnZvNDczRlhZT24xYitPYXA5NUQ2NVRKaURpY05MdHA2Zi9Ga3NMYjhQTGNTdXg0OU9lWTkydzdvbDBxa251V1lmempBT1FSV0h6ZlhGeWZBMFEzUDRCSmF5VmNWOWlPSFEzdGFGVktjZjNjRzdGNFN2bzQ3OFMyaHpCK1RTSFdyL3c4YWdFQUgyTFIxeDVHOUxzL3gzMFh0dUNSTysvRGlrWVZpVlFQdHY3d0IxZ053RFg4YWp6KzA4dXlIeitlb1c1c1g3c2FTNTdhaGZvdUlGZzJCblBtZmhtM2pnczYvRnU2eHdZMUhZQk9BUW9LQ3FTM3ZoTmlMQmFsZWpySGhuUmx0RTRRQkE0MkxxNHpRRTBOTFVEVlpBTXFhVldQcmtUd3FROVJqOG5wN1U4RGFPTE5QOERyTjBleCtzNjdzVzdLUXF6L1FsNy9mOVNwWXNLaS80dmxaVEphdHorS0dmKzlHbFVyYnNPTmhZTjlkNFg0K2svdndkZXhFL05tUEkzcWV4Y05iVGNDRzJhL3RSNjNQUVVzL09uUGNYMVpDblViZjQrYjcxbVA2b2R2eHBXMkNVOWQxK3ZSUDdlbUE5Q0oyWlJMUVRWS0lZR0FDQ0lFUWdnRlFGVlZyZU5QSnk2dU0wT0pMaFV1UmNwY2ZlZVQ0RXFwSnk1blZEQUNVOHJTSzRValU2N0dEUVVmNDIvdm5hSUR0UlVacmxRUFdqdWlpTUtMMnF1L2ljMFB6TUkwaDdGMVhVdnVRLy84R2hPQ0Vpb1FBSlJDQTFNOEFFQjdlbm8rNEU4bkxxNHpReTZmaEVUU0JyRXVGUWxaR25UUDV5ZFRBR1U1UUxUejFHempkSTJiZ2NlL093YTcxanlBNlYrNUM5UC9hejAydEtpT1AxdXlOMzdRQmpRTjlwWVBRaWhKVDhKVFF2cEdxdWpldlhzNTJMaTR6aEJWMXhRQ2V6NUVYVVo0Mm9SbzJVZ2poeVVEU0NGeHd0YWR4OURVQWdURG5qUjRGQm11Vk9xa1ZSUVRMUzFJakw0TTkvMTBFVjcvMDEyNGIyb1BWdDY5R21zZENoSFI5Z010QnNBMEJtckdaVlJFS1FVRklCQ1N2a3ppVFo0OCtTaUFEL2xUaW92ckRIQnNGMXlCNitYWHNlU2hPdFRIdTlHNit5VXNXTnVPSzc4d0xwMWZ5eWxGYmNGQi9PM2xKa1NSUXV2dTU3SHFmZFgyV1R3b3k1RlIvL1l1MUNlQlJEeUtLQXZDSXp1eGFYYzNnQlRxTnorTlZVY3FjYTJadkI5ZWllcU9YZmpiZTkwQXVsRzMrU1ZzNnJSL2wwR1U1YlJqKzl0TmlBS0lkblFQR1lTdDI1L0FOWGMrZ1UwdEtRQmVSQW9EY0NYN2c3UTNnWStPSGQ3Wmc2eXRIdWxMcHdDSUFKbWtpd2hXOFFDQXJ1djYyNElnak9SUEt5NnUweXlsRWdzWHpjS1MzenlKYTJhM0ErRlNYSG5EclZnK3hXdjhnekxNLy9abG1QZmZ2OEtFMzhzb1BlOENYSGxlQUUwWm4wVEd0SnRtNE1wN25zWTFNNThFd2hXWWY5ZjNjR3VOOGRjK0wzWTkvaXRNZXE4ZDBaeEtYTC93eHI3Q1FlRy9ZZWxOSCtLMmV4WmhWZEtEQ1pkZWdDbWw5bSt5RXJmTW5ZeDV2L2tWSnZ3ZUNKVCtHKzY3YnlhbURhSFh2K3dMTitQQmp2Vlk5djBmNExZdXdGVlFpZXUvZTZOUjRlMXIwS1dVZnVBVWhwSjBWVlNuNmVQWEFFS29MS2JkR2lFRVJCUkZXZGQxQ1lEYzA5TnpxOHZsK2hsL1ZuRnhIYjgrVFF1VG81c2Z3S1NuUitDWis2NFlZbnZHNmRIaG94Mi9MTDdzUDE5RmVrbHlISmxMa25zQmtoSUlWRUtJTGdrQ1ZTU0JLb3FjenJHWmxkRm9OUG8yZjNweWNYR2RLZHJkY0dDZnphMnhPVFpLakpFcW96R1hrblNPalFwc25EcHIxcXkzRFNweWNYRnhuVzdGdi9hRDVTM0lySVJtZ00yOENDR1VrTDRUZENWQ2lIRktPUFN0VzdmcWxOTHRoSkRwL0RIbDRqcDdGWngrSzNhZjRhOXlWZFBlYW1ydDdBYzFZNVNLQXNSd2JlYU1hQnBxYkI4YmpMZTZxcXJiK1czbjR1STYzWXJHdTk5M0NFUFpjSlNtWTFCWWJvMlk3UjdHSDZpWlo0dkZZcS96aDVTTGkrdDBhKy9IQnhzR2dockpPRG1YUUNCR0g1c2dJQ1BIQmtELzFyZSt0UjNBTWY2d2NuRnhuVVlkKzhhaVh6ZGxnWnBEamcyVUNBU0NRS2dnR0k2TkVYM3l5U2RWWGRkZjVvOHJGeGVYa3lnOStWOGpwYXF2MVRVZVlzTlFOUk51Zldld01lRW5DQkVnRUNGZFBDQ0VtSDF1RklDZVNxVmVjYmxjMS9KYnlNWEZCYVM3WVErblBEaVNVS0NCSUo3UVR1clhhMnRyMjVrdERLWHBBZ0tsNXRRQkNGS1VBRlFFcUFpcWkybXdBVll2bTA0cHBTMHRMYThNR3phTTMwMHVMaTdvRk5nUkN3S3VBUHg1UWZoOGZoU2U1Sy81NFVkL3IzZUFtZ1pBTTFsRkNLRkVFQ0FJQW1SWmhxSzQ0SEs1NEhhNzA4Y1dtWVVEMDdGVlZsYnVCdkErdjZWY1hGeUhVMjdBRlVCaFVRbDhQdjhwQ0hWcDNkeHZmcjNORm9hcUJ0UnNSeGFaUFd5Q2tWOUxnMDRRQkFGTW5zMkNtNnFxVy9ndDVlTGlPcEpRNEE4RVQ5blg2K3JxZWczT3ViVytpbWpha0JrdEhnSUVnY0NDbWloWTdSNW1LQXJqZjlTajBlaEwvSlp5Y1ozYm9oVFFxSkRkcWJWdHg4cnZmUVdmdS94aVRML3FQL0REdnpjREFKcWYvQ1l1dmVSaTQvb20vdHc4OUs5WlgvOVJIVEx6YTdiQ0FYVExpQm1UQm9JZ2dCaFFFd1VSa3VuWUdMaFJTcW1lbjUvL2lwN2V2bHpLYnk4WDE3a3BRb0I0VXN1U1U0dmg1ZnNXNDFsOEN5dWUrZytNVkdLSUlRQUFLSjcxTUxaOUlZRkUrOSt4NE1abmp1ZExIcnIyYzFmdHQ0V2d4bVVQUXlrMFZZY2twNkVtc283TnNHOU9TMGMxVGRPZTQ3ZVdpNHZMV2MzNDRNTWthcS8rSEVZR0FMZ0NDTEJINExwY2NCM251dUtlbnA1dDJkd2FJZENRc1hLUFVsM1hxSjUyYkZRUVJJaUNDRkh2N08vWXpMbFJBSG9zRnRzY0RvZS96bThnRnhjWEUzOWk0NTMvaWZ0M0pKR01KNEZmWEl2UC9RS0FNZ1YzL25rSnBycUc5amxlKytNeVBQamtkdXlQS3lpYWVBM21mZis3eU85c2ZOY0dOYXR3WUxSNTZBUklBODM0VE1sNEhPM3hPQVJQQkZWbFBvakVuUWFiZWVtNm5nRzMzTnpjelR3YzVlTGl5bFFlcnY3cE03Z2FlN0h5aHJuWS8vVy80ZDdweDdlSllkK1RQOENQLzE2Qk94L2NoS201Y2J5MjhuYjgrSHUvUGZUZTFwODBHc1pLdFlNTmxPb2doSUlRS2dvaVJLSWhxUko0d2lFRWpUWVBVUlFnZW5JZ3BDMmNrREV2eXBSVWRVM1ROdklieWNYRmRlSzBGeHYvK2lGcXYvcGRUQzEyQWE0OFRMN2xHNWg0OU9tWDRKaGI2ejlLUlVoNk94VWhBREhDVUVFVUlZb2lSRW1DSUlxaTVkak1rQlI5Ky91MHpzNU9Eall1THE0VHFIYTB0L3RSVkJ6bys1Q3JBZ0Z2MjQ1c1lhZ0Z0NHcyRHdBZ1NFTXRYUTBWUlJHU0tLYkJac0tOZ1pyVnp4YUpSRjVCZWtzOEZ4Y1gxd2xRTG5KejR6amNGck0rUW51Yjkvem1qUVAyYW1qS2hCckpQREhYT0NrMy9mK3lVQk5GQ1pJVzY2dUttbStaWTR5c0FkUmtNcm1CM3d3dUxxNVBySXcxZ2FOdzlSZEhvdTZSMytMbDVnU0FOcnp5MndkZVF2OUpnNHpDZ1hXd3BNRW9RUlJBb05ORWtrSVVDWFFLU0pJSWljWWdzWTZOeWJVUnBqcXFIVHAwNk8rVmxaVUwrZDNoNHVJYWlwcWYvQ2ErZkYvZnF1SjNicndZOXdPWTlNTk4rTVhuQXFpWTlYUDhWOXNTM0QvdlN2dzRya0FMalhqWHdhM1pHM01wVE9NbENCQmtCWDZ0Ry9HT0kyanNKSkQ5WlJpWG13TTVNQkpreElnUjZPM3RSVzl2TDBra0VraWxVa1JWVmFMcnVrQXBsWkRlek9wU1ZmV1BnaUJjeVc4WkY1ZXpQazFicW9ZcVNvRzNZMkVVVnB5OHJaeXFxcjQ0dktKc0pZQmU5RzJqTXE5dVFrZ0NRSW9Rb2hKQ2RGRVVxU1RKVkZFVXVOd3U2bmE3NFhGNzRQVjY0ZlA3RVF3RUlFaVNaRHEyak9xb1BSenQ3dTUrbWo5MXViak9MUkVDU0VSSFY5ZkoyL0hVM0h6b1ZZY1FOQVZBSllSa2JxVXkyQ1FJQWtSUm9GWnVUUkloU1JKa1NZS3NLSDNGQTNzUndWWWQxZSsvLy80TkFBN3dXODNGZFc2cFFFbWdLM1p5RHRXbWxEYjkxNDhXNzJMQWxyS0ZvVHJNSTRyTW5RYlcyRlFmdHlSUlNvTk5scUVvU3A5alkvTnNnaUNBb2FNT1FMdnJycnQ2VXFuVU9uNmJ1YmpPTFJVcENkQkVIRWVhbTA2NGM0dkg0ODg5dittNWxKTmJBNGc5djVhR216RVhhb2VhSk11UUZRVXVsd3VTSktVL2FQd2pLb29pMFRTTkNvSUFUZE1vNDlyVUF3Y08vTFdxcXVxNy9GWnpjWjFiNGVnRmdTaU9KTHB4dUMyTzJGRVJYY2tUYzRMdUs2Kzg4bllXdDZZQzFCeDhUM09JR3RKMWFKcEdOVTJGcXFhUVNvbElKa1ZJdlNKNlpRazlMcVVQYkV5dWpRMUhNMlpIUjR3WXNVdFYxZldDSU16Z3Q1dUw2OXlDVzZGYlJhRTdCa3FCekZVcG4weUpaT3B2bHkxYWROVG0xRklBVWdSUVFjd3dGRlFnb0NJQlpCRlFKTUN0RUhnVXdPc0N2RzRnNEFWQ2ZpQTNDQlRrQUlJc3k3QzVOdGdINDQxUkt3M3BTUVFlam5KeG5lT1FPeEhhM1hqZ1ZRZTNsdEhta2JGaXp6aDNUUlRUb2Fna2lwQWtFYklrUXBZa0tJb010MHVCMStQdUE1c29pdVpiYW9hbHpKSGhWblUwUHo5L0M2WDBWWDU3dWJpNFBxazBUZDgrWWViOHhnSGNtdFozL2xyYVhJbUVVRkVnRUFXUlNxSUlVVXpEVFpZa0tMSUV0eUxENDNiQjczVkRVQlFGc2l6RDd0eHNEYnRXRVFHQTJ0WFY5UVMvTlZ4Y1hKOVVCdzYzdmpDQVcxTU50NmFUOUpaM0toQkFFSWpoMUFSSWttQTROUkdLTE1GbHVUVVhBbDVQSDlnY2lnam1pRlhHN0NnQWJmcjA2ZXNvcFh6WkN4Y1gxM0ZMcDdSdTZsZS8vMzRXdDJiTWgvWVZEZEpnTTl5YUtGRFRxYVhiTzJ4dXplTkdNT0NENEhLNWtBVnVHYTZORFVkZmYvMTF0YmUzOTNGK2k3aTR1STVYUjlvNm4yMXE3V1NobGpTdU5OU0llWkpIdW45Tk1QWWFtQzBlYkc1TmtmcmNtcy90UXNEblJZNGRiRGE0c2E3TlBoaXZybG16NWtrQTlmdzJjWEZ4RFZXVTBvWWYzZitISFlPRW9kWkp1UVJBMnEwSkVNVjBiazJTUk1paVpCVU1YSVpiODNrOUNBVzh5QTBISUhnOEhqakJ6VlloWlVOU0RZQTJkKzdjYUc5djd4LzRyZUxpNGhxcVdqdWlHeDVhOTN6Q3lhMFJJR1VVRFRUQVBFZ3k3ZGhFVVRDS0JRSmtVWVFzRzdrMTJZQ2F4NFdBejROd3dJLzhuRkFhYkc2M3UxODRtcVg5STZQMVk4T0dEVThBYU9DM2k0dUxhd2h1clhIWncwKytaWU1hNjlqNldqelNSUU1JaEVDMGlnWnB0MmJPaENxeURMZExoc2Vsd08vMUlCVHdJUzhjUUZGZURnU2Z6d2UzMjIyNU5oWnc5dFlQVzY1Ti9mS1h2OXpSMDlQekdMOWxYRnhjZzdxMTltTlAvL0t4cDN0dElhanAxbFNRdmhWN3Bsc1RCVUxUYmkwZGhxYUJsbGtKOVhuY0NQZzh5QW1tM1pva2lSRDhmais4WG0rR2F6dWUxbzgvL2VsUGoxTksrUW03WEZ4Y0E3bTFQWGYvNW85dk9rRE5kRzBPTFI1RzBVQVVqUllQZXpPdURLL2JCYi9QY0d1aEFJcnljd0FBUWlBUWdNL25nejBrWmVEbTFQcGhWVWkvOFkxdkhPdnU3djQ5djNWY1hGeloxTnphL3ZRRFR6NDNXRzR0b3lGWE1OeWFKQXEwSDlRVUdSNlhLOE90UlhKRGNCdUxUSVZ3T0F6V3RRMVFKYzNxMm1iTm1yV0dVdm82djMxY1hGeDI2YnIrNXZSdi9IQ0hBOVFHY0d1QUtCQklnamxkMERkaDRKSmx1SlYwTTY3ZjUwRTQ0RU5lT0lpaS9GenJhd281T1RrSUJvT1dhM1BLdGJHdWpka2FiMjFyM3JoeFl6SWFqVDdLYnlFWEY1ZGREVTJIbjluVmVFakY0SlZRSFNCVVNCOGtTVVZCZ0NTSmhsdExRMDJSbWZZT2p4dEJueGM1d1FBS2NzUHdldnAybXdyNStma0loOE1JQkFMd2VyMFczRXpITmxUWEZnNkhOK2k2L25kK0c3bTR1RXlsVlBYNWtaK2J0OHZCcVEzdTFzUk10eVliQlFPUDJ4aWQ4bmtRRHZxUW54TkVVU1FuNCtzS0JRVUZ5TTNOUlRBWWhOL3Z0M0p0RGhNSkE3azJsUkNTT25Ma0NIZHRYRnhjbG5ic3F0K0V6R1pjQzJ5R1cxT0g2dFpjVm51SE1Ucmw5eUkzRkVCQlhoZytqenNUYkNVbEpjalB6MGRPVGc3TVFzSlFjbTFtTVlGMWJjWEZ4ZjlJcFZJUDg5dkp4Y1hWMWRPN1p2THM3eCt3UVMyUnphMEpSaVhVeWEwcHNnU1h5Mnp2Y0NIZzkxcnRIU1dSdkg1ZlcvQjRQQ2dxS2tKZVhoNUNvVkRXUW9KVGhkVGUxMFlJU1gzd3dRZVBBVGpJYnlzWDE3a3JDaHo4NitaL2JvTnp3WUIxYXhsOWExWWwxTzdXRktOZzRIYW4yenY4WHVTRmdpakt6NEhIcmZRSEd3Q1VsSlFnRW9tQUxTUjR2VjY0WEM1a0c1TFBsbXViT0hGaWZYZDM5NFA4MW5KeG5iczZjclRqeWEvZSthc09tMVBMNnRaSWhsc1RNODVaY3lreVhJb0NyMXVCejJzVURFSUJSSEpES0NuSWMvejZBZ0FvaW9LaW9pSmtLeVRZcXFUVW5FcXdyK2d6WGR2VXFWTWYwM1g5Ulg1N3ViZ0drZUk3NjM0a1ZkTmUvc3lYYm50akNHNU5NOXlhYms0WlNFYmZXcjhxcUhFeWJzQ2JidS9JRHdkUkZNbUZJa3Zad1FZQTVlWGxNQXNKWmtqcVZFaGdoK1NaR1ZLZGRXMDdkdXhJSGpseWhPZmF1TGdHVTZqa3JQdVJkdTVwZkthcHRkTStYWkFBa0NETUJpckRyZW5FT2tTU1dFNU50bzFOZVR6cGszSE4wenNLOHNJb0w4clArajBJN0IvTWtOUjBiUVAwdGxtdWpabElZSjFicXJpNCtPVmtNdmtiL3N6bDRocEFrWkZubFd1THhyc2Z2WERXN1I4YmJvMkZXdC9BZS8vejFxaElDRTBQdUlzMGZTcXVuT0hXMGhNR1hvU0Rma1J5c29lZ2ptQXJMQ3pNR3BJNmpGdFJTWkl5Q2dtc2F5T0VKTGRzMmJLS1VycURQM3U1dUxLSUNFRDFwVUJPQlNCN1B0VS9pcTdUZHgvNDB6UDJnb0dWV3lOQTBneEJtZlBXcUdDRm9HbW9aWnlLNnhTQzV1ZWlNQzg4NFBmU0wwQXRMUzFGZTNzN290RW80dkU0ZW5wNmtFZ2trRXdta1V3bWtVcWxvS29xVkZXRnBtblFOQTI2cm9OWjA2ZFJTZ1VBNnRWWFgzMjRyYTN0d2R6YzNKWDhHY3pGbGMxZWlFREp1RS85ai9IaG5qM3I3L2p2eCtJT1VFczdOa0xTQlFOQ05DTjlSUVZSaENqTGtGd3VTQzRYWkk4SGl0Y0xsOThQZHpBSWJ6Z01mMTRlZ29XRnlCMDJEQVVqUnFCMDNEZ2dGQnE2WXdPQVVDZ0VwOTYyTEkyN0dTRXBISnAyOC9MeU5xWlNxWWY0czVlTDYreFZQQjVmWFZOVHM0Y0pRVE9nUmdoaDErcnBBTktOdUtKSXpWWXlXWmFoR0p2YzNXNDNQQjRQZkQ0ZkFvRUFjbkp5a0orZmo1S1NFb1FHZ1pvajJJQjBJY0hzYldPSDVMUE5rdHFhZG5WQ2lOVnBUQWhKdmZycXE0OVFTdC9tdDUrTDYreVRydXZ2UFByb295K2lmMTZOaFZyS01Ec2FJVVEzSnBpc3RaOG0xRXl3ZVR3ZWVMMWUrUDEraE1OaDVPWGxvYWlvQ09YbDVVTXp3VTRmbEdVWlpXVmxLQ3dzN0ZjbGRUaHhkNkJDZ2dvZzlkblBmcmFwcmEyTmg2TmNYR2VoOXV6WnMvNDczL2xPTkdzSTJ0ZTNabXgySjFuZG11blVQQjRQL0g0L1FxRVFjbk56VVZoWWlMS3lNc2l5UEtUdlNjcjJGMFZGUmVqbzZFQTBHa1ZYVjFmV1hCdWJaOU4xbmVxNmJtNjEwaWlseEhCdFFpUVMyZFRiMjd2QzVYTE41MDhGTHE2elE4ZU9IWHU0dHJaMjd3QnV6ZG8rWmJnMWFvTE5iUGhublpycDF2eCtQNExCSUhKeWNoQ0pSRkJTVW9LaW9xSWhmMS9TUUg4NWJOZ3dkSFoySWhhTG9idTdPd051WmdIQnVLaXU2OFJXU0tBQWRFcXBWU1g5NHgvLytMOXo1c3daS3dqQ2RQNlU0T0lDOXUzYjk2bjkzbFZWZmVtZWUrNTUyUWExWHB0Ynk4aXJBYUNFRU90ekdDWUlBSkRHUnZxdHdSSHJZOGY3V0EwSU5wL1BoN0t5TXN1MWRYZDNXMkJMcFZKMjEwWTFUU082cmxQakc5TU54MmJtMjRSdmZ2T2JIZE9uVDMrd29xS2lGa0FKZjFwem5ldXFxS2o0dEg3cnphKysrdXFHVmF0VzlUaUVvTDJ3RlF5TXZKcHVPRFZxT0RScTV0TE1Ja0U0SEVadWJpNEtDZ3BRVmxhR3Fxb3ExTmJXRGptM05pU3dBZWxDd3JGanh5elgxdHZibXdFM3R2WERDRWRCMDRMUjEwWW9wV29hemtTb3JLeDhJeHFOL2s4Z0VMaVhQNjI1dUQ2ZE9uanc0Qjh2dWVTU0pnTnFMTkRzSWFocVRpWVJRcXk4bXIxWTRIYTdMY0FGZzBIazV1WWlFb21ndExUMHVLRUdaQ2tlT1AxV1lWdEEyRUY1V3dzSWRSaVNaOGV0VW9TUVpEQVlmQ0taVFBLUkt5NnVNMVIxUzZhaXF1cG1ySTMyLzd0NFBMNjZyS3pzYldTMmRsZ2hxQzJ2WmtITlZnV2wyYURHdG5aOFVrYzdKTEFGQW9HTUZwQlFLT1E0bFdDRG0xa2x6UmlTTngrSTU1OS8vbUZkMTdmd3B4QVhWMXJSdXJWWU11OGFUQjFmZzZxcUdveWZOQjJ6Rnp5Q3JhMW56dmVvcXVyV2xTdFhib0Z6QmRTQUcwMVNTbFZLcWFicnVxNXBtcTVwT3RWaHVUV3FLQXBFdFF2dDdURWs1WFE0R2dnRUVBcUZNbG83QW9IQUovbytwYUgrdy9MeWNzZHBCSWRjVzdhUUZFYk9UU1dFSksrOTl0cERqWTJORDFSVVZGUVFRcXI1MDVyclhGYnIxZ1dZUFc4ZEdvSVRjTzMxODNGREtSRGJ0UTBiTml6Rm5LMnZZY1V6RCtLNnlPbjlIaW1sRGR1M2IzOTZ3WUlGTVljUXRCZnBJZmNrcFdiQmdHaUVwRWVuS05WcEt0R0RoTWVIZ0dHQ3hHZ3ptbzhvQ05lY2x3RTFNNy8yU1VMUTR3WWJBQXdmUHR5eFF1b3daa1YxWFNkbVpRTUExWFdkYlFFaGhCQmgrUERoYjdhM3Q5K2ZrNVB6aStQOVhyaTR6aDZydGhYTEZxeERRMlFtVnExZmpta1d3RzdGTFRjc3dZeVpxN0JrMlZaY3VYd2FYS2ZSckRVMk5xNlpPblZxazgydFpZYWdsS1lMQmtUUVJNSHFWNE1rYU9qdVNhRTNucUJDWGhBdWx3dWlMSUFRRVc1dlptdEhhV2twaGc4Zi9pOTlzOEx4L0dPdjE0dUtpZ29VRnhkbkhFeVo1ZFJkS3N0eXY1RFVOcFdReU0zTjNkRFQwL01yL3V6bU9uZTV0Z1liamlxNGRQNUMwU0F4c2dBQUlBQkpSRUZVQm1wcEJTZmVnc1VMYnNDVmtRUmFiZm12WmFzWFlNYlVHbFNOWDRDdGFkK0hyUS9jaGhsVHg2T21xZ28xazY3QnpVczJvU25CZk1LdHQyRjgxWFFzV3JzYWkyWlB4L2lhS3RTTW40b1pDOWFpemlHZmxxamZnRVd6cDJQc2lJcUhxcXVyMzJlY1dpOTdFVUlTWUErUVRKL2NvWnVOdUxMTEI3OGtVSUhxSUhvNzluN3dBZDQ3bEFRaGNieS82Uzk0NUsvdkl4V0pvUGpJVTVnemF3NXUvLzJmY05zMWsxQlROUlZMNmdCc21vZWFxa2xZc0Qzeis5dTZZRHlxYXVaaEUvdkJwcTNINzVLS2k0c0hkRzFtT01xR3BHWUxpQkdhc3ZrMkFZQXdaY3FVaDk5ODg4MUNXWlp2NGs5enJuTk5kYS90UUJLMXVHS0tVNndad2JSYmwySmF2NDl2dzhwbFZiamkrdmxZVkZXTGFrU3hkZEVNekZtVHdPUWI1bVBwQkJkYVgxdUhsYXR1d2V6b0ttek9jSHNOV0xOb0ZhNmRQeC8zelE4aXVtMFZscTFjaU5sUkZ6WS9lQjM2dm92dFdIWnpIU28rKy9rbjlyZjhnKzFYNnhlQ3NsQURvRk1LU296RlQrbThtZ0ovVVNtS3ZWNzRQQkp5eHBZQnh4cnd3V0UzeGw0eEhSZVBIb054UlVVWTVnMUJrUko0ZnZrS2pMbjJSc3lmV1lXSkVRQk5RM2UvQzJiUCtXVGhYM1YxTmVMeGVOYjJEd1pzR1NFcHBaVHF1bTV2QVNFN2QrNFV0bXpaOHREMDZkTUxSRkc4bWovVnVjNGRKZERhR2dXVUNDSXMxNkt0YUdXZEZsd0lSb0lNbkVveDg3NzFXRDR0YVB6N1RWaXhIWmh3eTRONGRPSEU5TCs3L2pwRVdpZGg0YWEvWWZ2eWFRd2NGVXhlL0RqdXU5SDRnbE9tb0N3eEhUTlhyY0NxdXV1d3NMYnZhNDYvODRuTm56bXk0ZmtOOFI2blhqVjdGVlFsQXRHaFU1MVNuYVpTS1ZBSVVFUVpzaXhUYTdqZGx3NDlKYmtadTQ1NFVUbHVJaTQ1dndMRHk4cFFmU3k5UnEvcWxzZXhmbUh0Y1lmZWRTdVhZTjNCcWs4R05sRVVVVlZWMVE5czdEU0NiY3lLbUlVRUkrZkdGaE1JSVVTNDZxcXJtdXJxNmxiVzFOVGtFVUltOFNjODE3a0N0a1FpRFJFWDh5cmV2dVFhM0xEdWFOOEhBak94NnQzbERKeXFNWGxpa0lsWnI4VHl6VmZhUG5jUTFXVVJZSHNyb2dtZ2p4SXVSTW9pR2RDY09QTTZWSzFhaWUwN1dvRmE4KzhtdkZXdTdIMTYvdno1VVZ0T3JjZTRlbTM5YXVsR1hJbFFVSjFxdWs3VlpDK090U2RvM09WSFVYa0llVVpyUnlBUWdCU1ZJWW91QlBNTHJXWmM4VjBDSUlEYXliV2ZJSjlZajYxYkc0QXhDejU1d2o0Y0RxT3lzdEtDVzdZS0tldmNUTGdaVXdrZ2hKakZCSUVRUW1wcmE5OXJhbXI2YlVsSlNTNGhaQVIvMG5PZC9US0JaZ0RPZURYWDNuSWZWbDJiQUJERnRtWHpzV29vb1ZpMERtdFhyTUNhVGR0UmR6Q0dwR1hRcXROSUdvZ1VaVlVvQTFEZjBBUWdBa3BSMzlQVDl1ZDdaMTdWWW9OYVh3V1V5YXNadVhNcnJ5YkxMaXJMTW1SQnAycWlGL0dlT0pvYlBnTDFUY2Jra3JSamt6c1VTSklMNGNJU1ZGWldJaHdPLzR1UFpTc2FXZ0ZsWXZXL1Zva3NLeXV6QnVSWnVHWEx0UmxRTTRlL3pMQlVNeDRjQWtBb0t5dDcrZWpSby9mbjVlVXRBaERoVDN5dXN4MXNrVWdRU0RhaHFSVkFtZUcxcXFkZ1dqVUFSTkc2U2hsQ2pxa09EOHllZ2VXdEV6Rm40WElzckM1RDBBWFVyYndaQ3pjTjFUdGFPbnFndlh2MTRjT3ZOQ0p6c0wzWElhK1dNdk5xNWpKMWRyckE3WGJEazErRVNpV0ZwcjM3Y0tUaE1EQ2hDams1T1ZEYVhaQWtEL0xMS2xCV1ZuWkNIOVYvdWNWaTFLaFJHYTZORFVudEozOVFTdGw4bTI0T3d4cmhLU0dFRUVvcHljL1AvM3RuWjZjL0ZBb3RCdURtVDM2dXMxbTFsMDVFWU0xVy9HMVRFNzcrOVUvNEF0K3hCbXQyQVpldWVCQ0xyK3NMVVJQQklRWjA5ZStnQ1VDa3FxejM0TUdEcTY1ZThYWWQrdG82elBDVGRXdjlRbEJDcUs0bWswaUpMbmg5TWhSRnNmSnEza0FleXZNUG9MTXRpVlFnalB6OGZMaU91cUVvUGhSVmpSclNMd0Fna1VIZi9vcWdLZ0lrbTVxT3I5M0RTWVFRakJneHdwcE15TS9QdHlZVDdHTlhaZ3VJYmZHeU9YSmx0b0FrQVNUQzRmQ2Z1N3E2ZUJzSTExbXY0TFJiY0gxcEV1K3NXSUJINmhMOXdxdlcxdVFRN0ZZQ1VRQ0pLUFAvSitydy9JNVd1eHNERUVOOVhUMGJ3MkxUcWswNGlER1lNZ29QR2VOU0xOUjZHYmhsbkxGbXZuN05maldCZ0ZJOWhTVHBLeFo0dlY3NFBDbkU0Z1NDUHc5bGhma29LaXBDUldFSWlxSWdtU1NELzN5UkNDS0lvYjYrS2VQbmU2MHV4dnlqYWt5YlZnWHNXbk5pbW1JRGdRQ3FxNnY3RlJJMFRjczJJRDlZTVlGUVNvbmY3MytzdTd2YjQvRjRidWRQZjY2ek54cWRpSVVQTGtMZDdLVllPbU02bnIvdVNsdzZwaFE0Mm9EWE5tM0F0b1lBSnR3eUV4TUh0SDNYNHNyOGRWaTNaRGJtTlZ5SmFyUml4NllOMkhFd0NTQ0tSQlFBVTJ2WXRYdzJaalJjajJzbjVPUG9hMnV3K205SEViNzA5Z2QvTUtuZ0h3Nmhadzh5anlPeU9UV3pFVmVpYmg4UTYwclMrTkVXSkx1RHlBbW4wQk5ydzc3Mk5yUW5YYWllUGhVWEdJZEdqblNOUXVpSkxWaXpaQWx3eGFXNDdzWnBLQnZvNXl0ZGhWWExic2E4Z3pNeHdYVVE3MnphZ09jYkFEQ0w0R3R2V1l5WkcrYWN1Rzcvd3NKQ3gxeWJxcXBzUDF0R1dNb1dFNHhQbzluRDBsbXpaajM4NXovL1dYRzczZC9tcndDdXM1WnR0Vi9INDV0cjhjaXlGVml6ZFMxV3JJc2hxZVNqcW5ZYWJsazVIL092ckI2NFNoaWNocVdQTDROcjBRcHNXTDBTVzExVm1ITDlmWGg4d3ZOWXRMSUpCNW44SFJEQUZZc1dvMnpiQ3F4YzBvQ29xeFFqcjczN2tmcFhmN2tWL2FjS3JCQ1VFQ1FvTlZmb1dWRHJhOEtWWlNpS2o1YUdLSHFpY2NSN1kyZzlITU5SUVVHNHNBcFRwMTZPYS85dEpFcExTMUZWVllYeXkrL0U0amVic1d6REtxeG96Y2UwRzZjTkRQOUhseUc2WUFVMnJWcU9yWUVxVEx4dU1aWk5YSUdGR3pJZmgrV1Byd1JoRDNJN0VkcTllemQyNzk2TnhzWkdIRHAwQ0VlT0hFRjdlM3ZHMFVjR0FBa0RRR0wwdXdrQVJFcXBCRUFHNEtLVXVuLzBveCtGZi9qREg5N2ljcm5tOFpjQTE1a3FUZFBRMU5SMFpwK3h0dlUyakorekZkTld2WXY3REk3RVlySGZmL3ZiMzk3OGh6LzhvWWR4WlQwQXVvMjNQWVFRcTJCQWpHMVQ3UGxxek5IZTFobHI1dnluZWI1YVNVa0poZzhmanBxYUd0VFUxSnpVSC9PRXoyZU9IajNhQ2tudDdSOVpYSnQ1NGk2UVdTbTF3dEtmL09Rbm5aRkk1T0c1YytjS0xwZHJMbjhKY1hHZEdNVmlzVDhzWHJ4NGl3RzFKQU8xSGdacS9VN0RkYXFBc3NVQ244L25lTHgzWldVbFJvOGVmZEovcmhNT05rSUlSbzhlYllITjN2cWhhWnAxNUMrVGI4dFdLYlUrNTNlKzg1MDJSVkVldnVtbW04RGh4c1YxWXFDMmRPblN6U3RXck9oQ1pxR0FiY0RObGxmVEJVRmdOMHhSY3hHTC9jQkkwNjJaVUdPUEJ2L1VnQTBBUEI0UFJvMGExYTlwMTliUDFxK1lZTGcwMDdXeGNDT0VFREp2M3J6V1JDTHh1N2x6NStwdXQ1dUhwVnhjbjFESjd0anZGeTlldkdVQXFMRk9yZC9xUE9QQVNHcDNhdWJLdkZBb1pCMFlXVnhjaklxS0Nvd2FOUW9lejZuWmRpL2VmZmZkSitVVG13ZFFtbkF6SzZRczNHelhZQmluQUxCeDQ4WVVJZVQ5aXkrK1dKVmxtWTllY1oweG9wUWlHbzJlZ0E3Nms2aktxM0hEelRjODh2U3kvMi9MNzM3M3UrNXNUZzBPa3dWc29jQ0Vtc3Zsb3V3SnVQYVZlV2FoWU15WU1jalB6ejlsUCtaSlBRT3RzTEN3M3pTQ1E0VVVUSjdOcXBRQ2dHMWdIb1FRVUVxeGRPbFN2UFhXV3crdVhiczI2ZlY2ZVNzSUY5Y1ExZEhSOGVBVlYxeXg5YTIzM2twbWMycXdIVVBFVmo4eks2QjlUczNjMnM3bTFJcUtpbEJSVVlHUkkwZWlzTER3bFA2Y0ovMXd4L0x5OGd6WHhrNGoyRjFiK3BjZUpRQ29xcW9tM0RRMkxEWGh0bkhqUnZoOHZ2K054V0s5ZnIvL2R2QUpCUzZ1Z2RUYjJ0cjZVRUZCd1QvUS8vVGJnYUNtRVVJMG9lOElvcXpoWnpBWVJEaWNuaW9vS2lyQ3NHSERyT2I5VTYxVGNtcHRkWFYxMXVQRG1WTjJUVHR2NWRwVVZUWC96aEZ1QUJBSUJQN1kwZEhSSFE2SGJ3T2ZMZVhpY3RMUmd3Y1ByakltQ3RqWnp4NWIrT2tJTldiQmNRYlVuRmJubVZBckx5L0hpQkVqVUYxOWVrNzlQMlhIY2RmVTFHVGJpK0RvM0V5NEFlbitvQUhnUm5OeWN0YTN0TFIwUlNLUmIvRlRRYmk0d0JxRit2cjYrdFVqUjQ2c0c4U3BKYkpCamMycFpRcy9uYUIyc252VnpnaXdBY0RZc1dQN3dTMEwyQ3k0bVFtM2JIQXovMXhZV1Boc1kyTmpkTml3WWZNRVFiaUlQNlc1em5WcG12Yld1KysrKytjTEw3eXdFZjFuUHdkcjZiQ2dObGhPellSYVlXRWh5c3ZMVVYxZGpiRmp4NTdXbi8yVWdvMFFnckZqeDJaMWJRNi9iVmdINXdnMzQvTlNTaWtkUG56NFAzYnMyTkU1YnR5NGI0cWllQlYvYW5PZDhUcjJ1NVB5YVZNcGJmT1diYnVldm1ybS9TMU0rR21mL2V3aHhycThUS2hSalJCS1JZRlFVYUJVbG5USW9nNlhwTUl0cS9BcUtmamRTUVE5Q1lTOVBjanpkNkV3RkVkNVhoVFZoWjBZVzk0R0VuMzkzQUViQU1peWJNRnRFTWZHNXR1eXdZMGFINmRtYURweDRzUVAxcTlmdi95YWE2NXBWUlRsYS95VnczV3VxYnM3K2NURGoyMTdmdjRkZjQ0T0FMVmVBaVJBWUt0K1FpTUVhYWlKaE1xeUFFVVc0WEpKMU8yVzRmVW84UGxjQ1BqZENJZTh5TXYxbzZnd2hQTFNYRlFQTDhEWW1sTElrbmphSDRQVHN2TE83WFpqN05peGpuazIxcTJ4SVNraEJLbFVLbjBVU1ByLzAvcllsdW5jWnN5WWNiQ21wdVpYYjd6eHhoRy8zejhmZkxVZjE3a2h0YTA5L3RENGYvdXZsdzgyeCswN0N0anoxRXlvMlp3YWRJR0FDZ0toa2dFMVdSYVE2RXpRenFBTFkzTFNVQXNHR0tnVmhGQldtb3ZxNFJHTUhWTUN0MXMrSXg2STAvYUM5L2w4RnR6c1lMT0hwWVFRYXVUVDdLMGc5Z2tGYXNKdDkrN2RlaUFRZUt5bHBlVndKQks1aFM5bDVqcFR0ZjJlKzNIejBmOFg3LzY2OWhQdkRhV1VOalR1TzdxbWVzS2k5NUc1VGFyZmVXb00xTlNCb0tZb0luVXBJcWlRUkZLUjRmZTVFVENobHVkSFVVR3dEMm8xcGZCNVhhaC85cC9Zbmo4T04zN0c3L0JkeHJIMXZtZXc1T245YUlwSmlJd2JoOFUvbVk0clM4NGlzQUhwYzl6R2poM3I2TmpZdkJ4Ny93YUJHMldkR3dCYVdGajRiRjFkM2VGUm8wWjlYUlRGei9LWEVkZFpaOU5VYmV2Mk54cWVubnIxTDV5V0dkdVA4MDZBOUIzcDNRYzFRZ1VCVkpJRUtrdkVnSm9NdDF1QUpoS0lMaGNDQVRkeVdLZFcxZ2UxUU1BTlFFWGRjNjlnWlVtVkk5aGFuMzBHdHowdFllbGp0K082a2w1cy9kRWF6THZqRFd4KzdDS1VuVTFnQTRCUUtHVEJiUkNvOVlPYmtXOWp6M096Z0diQVRRZWcxOWJXdnIxNjllcERNMmJNK05qdGRzL2hMd1d1TTFXSlo5ZGgvSVBBamFNVDJMcXpEYTFKRjZiZE5oUExQNThIRjFxdzdEL1dZUHZvS3JqMnRLQXBsb0JZTldiMWVTUFZMYis1NXk4eFpMWnoyTU5QYSs2VFVxUUVRalFRNkNiVVJBRlVUZWswbWRRQlFxZ2dFNVNWeXZCNlJHZ1MwTzEyR1ZEelFEdTBIMzk2TG9aTzNZdnlDOGZqaHo4ZWp1dUMrN0hrUDU3QzJrTWFZbGlEU1hzdXdlTVBYNFMrTUVuRmp1Y09JZmp2czNCZGlRVEFqMmx6eHFINkt4OWllK3dpWEorb3c3eXZiRVhrWjdkaTZXZk9BckFCNlkxWEE1V0hUY0FSUXN5TEVrS0ltWE16YzIyNnJsTzJ2NDExYmpmZWVPTWhBUGUzdGJWOW5KdWJld3VBWXY0eTRqb2pkZWdZY05jc2JQNlpIOUZYbjhIME8xN0Nwcy9PeEhVQkFFaWdWUm1EOVgvNVFuUHk0LzEvTEp0d3o5dGIrNWFxSkJtSXNVZDVKd2hCa2xLa1FLQUtJQm9JTklHQUVvSG9va0JBVXhyVmlJQ2NQQmYxU3hUdHJRbTBkSXNvSzNCQmxRVW8zblQ0NlRuNk1WYnZDdUsySDgvQXZNdHo4ZkZqeitMbWIyOUc1QzlYWWZGZmJzV0UyMytOWlNVMzRPVUY5aEdxWHJUR1ZFUktHQ2VYNzBjRXZXZzlDbUQ0TU54eTE3OGpPTzRzY1d5bWNuSnlNdURHUUt3ZjJPek9EUUJoNWtyN09UY0F1dUhlYUY1ZTNsL3I2dW8rSGpWcTFFMmlLRjdPWDBWY1o1eEtxakRUQ09XQ280ZWhPdmtHV21NQUFnQWdvbVp5eFV0N3QzKzQ0WktyZnRHRWdiZXo5OXBDVHhWSWg1NkVRQmNFUWdXQlFKSUlKUnBCVWdjbGdnaVgzNFVSdVVFb1hpK0NBUWtwUlVEVTcwTnhnUXYxcjNXaCtrdWZ4N3pMaHlFbjdFWE9iWmZodXFmWFljMC9wbVBLWUltZWZxc2JSQUFxWWtrQThHUGlaLzFuVHlocWg5dDU1NTNYRDJvRFFJNlN0UHJsM0N3YjE5Y09Zb2FtV20xdDdkcy8rOW5QR3Ivem5lL3M4bnE5L01oeHJqTlhSalVoWVd4ajZVbHBENy95Mk5xWEgzNXVXNDh0bjlaLzd5ZVFwRUNLV0ZDRER2UkJUUlFKbFNRQ1dSS2dlQ1hxN2traDJ0Nk56clllQkNLNU9ML1lqWnl3Z3FSYlJHY29pUEl5TnhwVUwyb3ZISUdjc05kTUpxR3FSTVh6UjNzeDZMaTJZditBQmtCQ1FEbnhEOXNaMXdZUkRvZUhCRGQ3V0dxK2J4eU5wSnRBWTRvS09pSEVkRzc2SFhmY29kOXh4eDMvZStEQWdiMmxwYVUzRTBJbThsY1IxNWtxcXROM2R1MDVzdjd1VnhyM0FvMnFRejR0dzZVUmdpU29CVFNORUdpZzBFRkFCWkZRU1NCVWt0THRISW9pVWdrRXZrSS95djBLZkxLTzVvK080dDJtZkV3WTRVZlNJNkV0TndjanF2TVFyWGdmcjBaMTVqdUxvK0dvaEVqK1lHZFF1QkhKbDlCNktBNGdsUDdRMFRoYTRVUGtKSnhtSkp5Sk56RVVDbUhjdUhFWU9YSWtoZzBiaHVMaVlrUWlFZVRrNUdSYjdVY1ZSUUd6Mm84eXEvMDA0NHoyRklBa0lTUkJDREhQYys4dUx5L2Z1bTdkdWgvMjl2YXU0aThmcmpOUnFxNnRmdkdKTGY5VE8vbC9kaU56ejZmMVBHWXVhMFVlTloyYWNaWmEraGM4Mjg0aEdJMjNJbExIZXJDL1RZWHNkU09VNDBlK1g0TGk4Nkc0S0loOG40SkFRVDdHamFuQkYyY1BSOTJxRjdEaGtBcWdGenNlMllvTkdJTWIvaDhKZ0FTWFMwS2k3UmhhRS8wOTFKVExoaUg2M0hhc2JWU0J4REZzV3ZVTzZzZU53cFJBR3BBN1hteEFmZUlzZFd5bUFvRUF4bzBiQjBFUUhDOUNpUDJ0NWR4U3FaUlpNV1dMQ3BRSlRVMzNwZ0hRdnZTbEx6VUIrRTFUVTlQT2twS1Ntd2doRS9qTGlldDBTOWZwdXgvV3Q2OWYrK0diZTdEc1RaVUpQWk9PTG8yQkdhVjkrd2xJdWo5TkZ5aEZTdGRwVDFLRXp5dENVU1RxZGtsd3UyWGtqMUNnSEl6aG5UZmpvS0tNZ29waG1IMVZHU3JLdlVnRVhEaFlXb0pBd0kzQTU3K0FCNDgrZ3lYLytXc3NpRW1JakI2RHhiK1pqaWxHeUR6bCtuRW91K01wVFAzUFMvRE1FeGVEYlI0Tlh2WHZlUERRYzFnMDk5ZFlaUFN4M2ZlVGllbFdqNlA3c2ZKSFcxSDJtMXV4K1B4Ly9iRTc0VnVxVHJSNmUzdnh3UWNmb0w2K0hnY09ITURodzRkeDlPaFJkSFoySWhxTm9xdXJ5OXA4bFVna3pGMExoTmwrQlYzWENhVlVNQzhqYXlrQmtDbWxpcEhKY0FGd3JWcTFLakpyMXF6cnZWN3YvK0V2TGE3ajBTZmFVcFZsVmpRYTYzbjBnZjk5Y2RzZGR6OFZSMStCZ0IyUFlzUFFkT2dKTnZRa09rSC9Jb0VzQ1pCbGticVV0THZ5dUdWNHZhNk1pWUw4dkFDS0NrSW9MOHV4eHFUT2xJbUNUNzFqc3lKenR4dm5uMzgrUkZIc2Q3SHV6ZWJnc2hVVktKTjdNNHNLT3RKVlV3MkFPbWZPSEczT25Ea1A3ZDI3OTYycXFxb2JSRkdjeGwreVhLY3M3RlQxbDNlK2YrQ1pDeSs3OTJNRFVuYVh4dWJVa2dSSVprd1JvSzgvelhCcVZCU1lJb0VpVWtXUjRIYkpjQnRROC90Y0NBWTh5QWw1a1ovSHpINVdGV0RzbUROajl2T3NBeHVRSHB3ZlAzNDhKRW5xQnpiN1d3WjJWQkFFSWdnQ1ZGV2x6TDZGOU42L3Z0RFVxQlFSelF4TkFhaWpSbzE2ZmNTSUVUdGZmLzMxNjNKeWNtNENVTXBmZGx3blM1VGk0SkhXWTA5K1p0cFAzbWhLejNteVVFczRYRWtIbDlZWGVwcVRCR0pma1NEdDFHUzQzUkxjYmdVK2IzcjJNeFR3SUJ6MklXSkNyU3dYSTRZWFl1eVlVcHlDaFZMbkx0aUFkSHZIZWVlZEIwbVNqZ2R3L1NxbWhCQnFoS1pnblp1WmQwTjZHNzBHUVAzb280L1UzTnpjOVJzM2Juempzc3N1KzZMYjdiNkp2d1M1VHFoQy93ZGRYVjFyL3ZyWHYyNzc2bGZuZFF6aTBneWdFUk5vS2VNWHNYVitHck9iQUpJa09lNzhORSsrdGUvOVpJL3pQcDJIUko1VFlETlZVMU1EV1piTkNpaU1OV0NPSWFvSk4rTXRZZUFHUFMzclNDU3pnZGZKdlYxOTlkV05BSDViVjFmMzZzaVJJMmRLa3ZUdi9CWEo5YThxbFVvOXYyUEhqazJUSjA4K3dBQXRHOVNTRE5SVTlBMndteEdIdFd6Rk9NYmJmSjFRUlZGZ1B5RFNoRnB1Ym03R2lyelRlWnozT1EwMklMMUR3V3p2TUM4V2NFNmhxWEhEcmRDVXFacGFybzBKVFRYR3ZWbFBvdHJhMnJjQXZOL1UxUFJDY1hIeGwvaEp2VnlmUkxxdXY5blEwUERNeUpFamQ1bS9QRzFBU3pxNHRKU0RTOU9aaXhxLzJMTkN6ZXYxd3V2MUloQUlXSHMvQ3dvS0xLaU5IRG55dEN4ZTRXQmpWRjVlbmdFMzgyYWFvYXJkeFJtZ3MrQ1dTcVVvSWNRODhOSmVXTkFad0dXNE53Q3Bzckt5RnkrODhNSi9QdnZzczFmbTVlVjlpUkJTdzErdVhJUG4wZWllNXVibXA2ZFBuNzVqMTY1ZEtwTWZZM05wN051a0RXb3E4MHZYQXBxNUVrOFVSZmFYUFhXNVhCbFFNNWV1bUhzL0k1RUlTa3BLckdYR3AzcEYzc25VU1Z1WWZDcGsybW1uZkp6NWRvQnhMSHRhMUp3cmhRRTRHSEN6R24xTjJBSFFtNXVidGVYTGx6ZWtVcWtYTHJqZ2dtYTMyMTFDQ01uaEw5OXpHbHlPQzVNcHBZMnRyYTJQTFZ5NDhFK3paOC9lZi9Ub1Vic3I2M2RrTjlMTFZYcnQrVFJtY2JIVFJuWW9pa0lWUmVtWFMyT0J4aTVkcWE2dVB1WExqTGxqRzRKeWNuSncvdm5udy96dHhFd2daT1RoMkN1UlNEaUdwb3g3TTRmckJWdDRxZ0ZRamZBMEJTQjE3NzMzSnUrOTk5Ni9MRjI2OUlWdmYvdmIwME9oMEV4K3FDV1hBYlNHMXRiV0RjdVdMWHZybDcvOFpTK1RHM1BLcGJGaGFBcnA0NFZVUW1CR0N4cEEra1lGQVVwQWFQcXBTa0JCUUNtb1RnRktDWFFLYURxRnBnT3FScEhTZ0pRR0pGV0toQW9rVWtCdmlxQW5SYkQ3b3dNQURweFZqLzJuMnJHWmttVVpoWVdGanFlQURISGUxRzdnekJONzJSTkM3TlZUeTcwQjBMWnMyWkw0K2M5L3ZyZTd1L3Y1Q3k2NG9Nbmo4ZVFTUWdyNHkvdmNjMnpCWUxDdXBhWGxEOS83M3ZjZW56MTdkdU0vLy9uUFhnZUgxbStucHkybnBoSmlnZERJcDZXZmk0UUlFQVdSaXBJSVNUSnlhYklNUlVuL2NuZTUzWEM3UGZCNmZmRDUvQWdFQXdpRndzakp5VVYrcEFERnhTVW9IellNVmRVaklFbnlXWGt2enZqSmcrUFZ4eDkvaklhR0JqUTFOVmxUQ2gwZEhZaEdvNGpGWXVqdTdrWjNkemQ2ZTN1UlNDU1FUQ2JOVGZXRVhlcXM2em94TCtOeE1xY1cyTWtGaVZJcUE1Q1JQcnZBdXFxcXFwUlhYbmxsYW1GaDRUV0NJRnpNWC9abnY1TEo1UFkzM25qamhhOTg1U3Z2TnpVMW1TTk5yRU96RndneUhKb3gwOHlNUWhIemx5aGxLNTVtb1l3dEVHUXJFcGp0SEdiNFdWWldocXFxS2xSV1ZwN1Y5K0tzVzNKU1dWa0pqOGRqRHNlYmVZZWhGQmlvVVUwbHFxcGE0YW5aOTJhNk5TTTgxUWNJVDVNQWxJYUdCcVdrcE9RRkFOdjI3dDA3b2JLeWNyb3N5NS9uTC8relQ0bEU0bSs3ZCs5K2RjS0VDWTBNek5pd00ra0FOUloycWdFMXE5cHBnSTJheFFIanVVbVo1NjRGTkRPbnhoWUovSDUvUms2dHVMall5cW1kVFVXQ2N3WnNBRkJZV0FpdjEyc0J6dTEyZzMwUzJPSFcyOXRyQVM2WlRHYkx2VkZLS1dIUGVEUFBkMk9lbUNuRHdWbUFBNkNNR2pYcWRRRHZ2UERDQzA5TW1qVHBVci9mZncxd3dvOTU1enExWVdkVExCWjc3c1VYWDN6N2kxLzg0dEVzUUhPQ211bk9yR0YxSTQrbTI2dWRCdFJnVmp6TjU2dVRTek9oWmk4VW1PMGNadU50SUJBNEorN1BXUmVLMm5NZWUvZnV4YjU5KzNEbzBDRzB0TFNndmIzZEdxQ1B4K1BXQUwwWm1ocEQ5RWdtazFCVjFYUnZHZUdwc1hoR29KUVN3OEdaNGFsNXNTRXFHNnJLQUpRYmJyakJ2WHo1OHNrRkJRV1hTNUxFVC9IOUZFbFYxUmNQSERqdzZ1MjMzNzdycWFlZVNnMFJhQ2s3MEFDMktKQUJNOTJjZDJiRFR0YWx5YklNdHBYRFBra1FEb2VSbTV1THdzTENqSFlPOG1tZGorSmdjMVpUVXhNKy92aGpORFUxb2FXbEJXMXRiUVBtM2N6Y1d5cVZnbmxLQ0FNNFlxd01KT3cxQU9Da0xJQ1RBY2liTjI4dXYraWlpeVlIQW9IcHZCL3VqUDBGdWFlenMvT2xiZHUydmZ2RkwzNnhqUUdTRTlCU1dZQ20yb0ZtSG54cWhwdDJsOFlDemV4UE0xM2FRUG0wdkx3OEZCWVdvcXlzREpXVmxTZ3JPL2VDZzNNQ2JBRFEyZG1aVVZSb2JXMUZSMGNIamgwN2hsZ3NaaDEvMU52YjYxUllnQUUyWXJvM0ZuQk1nWUVGSEZ0a0VBMEhaNGRjeHZYZWUrL1ZWRmRYWCt6eGVDNEhVTUtSY2xwaGRxaTd1L3VsdXJxNkhaTW1UZHFQdmlyNFlFQ3o1ODVZVjJjUE9hbDVJQU9UNDJWZEdqdnI2Umg2c2syMzdNeW5XU1N3OTlSeHNKMkYwalFOOWZYMTJMOS9QNXFibTlIYTJvcTJ0alljTzNiTU90dXRxNnZMT3R1dHQ3YzNBMjRPN3MwTVQ4MHozd1lDM0ZBZ1ozNU0ycjE3OTdpS2lvcUwzRzczWlJ4eXB3NW1QVDA5Mno3NjZLTjN4NDhmMzJnTEY1MkFwZzRSWnYyQUJtc1BCeWdSQ0JSWjdoZDJzaTdOTEJDNFhDNXIzdFBuOHlFWURDSVVDaUV2THcrUlNNVEtwMVZYVjBNVXhYUDJYcDVUWURQVjNOeU1mZnYyNGVEQmd6aHk1RWhHYUJxUHh5MjRzWWRYc25CakFjY1VGd1lDSERIQUpqaUVxWklOYXJMdFk5TE9uVHRIVjFWVlRmQjZ2UmNUUXNaeUJKMDQ2YnBlMTlYVjlkcWVQWHZxTHJyb0l0YVo2UXlZQmdLYXlnQk5wWlNxUnFYYzZuRTBONld4UURNcm5icXVVMEVRNFhhNytnSE5IbnA2UEo1K1EreG02RmxRVUlEUzBsSlVWRlNndUpodmxqd253UVlBM2QzZGFHeHN6T2gzYTI5dng3Rmp4eENQeHhHUHh5MjRPWVdtV2NKVEMzQU9PVGpDT0xpTVhCd0RPQ2ZRWmZ6ZHhvMGJpeSs4OE1MYWNEZzhRWmJsaTJGdHh1QWFvbzZsVXFuWDJ0cmFkdjd6bi8rc256RmpScHNCSUgwQWQrWUVOZmFFalg3RkFNYWhXYmt6Tm9kbUZnWTBUWWNvaXZENXZPendlci9RMDRTYTMrL3YxOHBoaHA3RGh3K0gxK3ZsZC9oY0JwdXBBd2NPNE1DQkF6aDA2QkJhVzFzSHJKcXlvYWt0OXpZWTRNQVdHV3lRTTUyY0dhYUtkcGc1QVE2QU9INzhlUG1SUng2cHFxcXFHdTMzKzgrWEpPa3pBUHo4YVoyaHVLcXFiMFdqMGZmMzd0M2I4STF2ZktPcHJxNnUzK1NJTFhUTUJqUVdadXovbzl1QVpqazA0NElkYUdiWXFhb2FGU1VKQWI4dkEyaHNiMXEycXFjNXhGNWVYbjdXbk1yQndYWUNGWXZGck5DVXJacWE3czFwcjBJVzk1WUJPRjNYN1ZWVVpBbFQ3WkF6UTFVckwrY0FOc24yZDJKRlJZVzRaczJhWVNOSGpxd0toVUtqWlZrK2p4QXk0aHpMazMyVVRDWS82T2pvK0dqMzd0Mzd2dmExcjdVME5UWHBObGZtNU02eXVUVHI3OHhtYk52bnlJQ1p6YUdCclhLYXgybXhoWUZrU29Va1NRaUhnaGt1elF3OTdRMjNiTlhUREQzUGxkNDBEclovd2IyeFZWUFR2Y1Zpc2F3OWJ3NjVOd3R3cG5zeklXY1BVeG5BT1lXcTluQlZ0QUhPNlgzUmZ2M2lGNy93WDNIRkZTV2xwYVhEL0g3L2NGbVdSd2lDTUJyV0t0NVByUks2cnU5SkpwUDFzVmhzMy83OSt3OCs5OXh6TFhmZGRWZVBDWmhCWUpZTmFobnZNODRzSTh4a1EwM1k1b21adzAySXBRaVhBQUFHR1VsRVFWUXRtREV1alRLTnRrZ2tVNUFrR1htNTRheTlhWUZBSU1PbG1hRW5kMmtjYkVOV1YxY1g5dS9mYnpYMDJudmVzaFVXc2dGTzA3VEJBR2QzY1NiZ2lBUGtCQWZJRGZhKzZPQUdoZlhyMStmWDFOUkU4dlB6Qy8xK2Y0a3N5OFdpS0pZUlFzb3g2RXJ2VTZaZVN1a0JUZE1PSnBQSjVuZzgzbnpreUpIV3VycTZ0aTkvK2NzZFlBNG1HQVJtMlJ5YTQvdjI1RDhMTS9RdEFLSnNNY0IwWndBZ1NWSS9vTEY5YVd4eG9LYzNtVDdFb1NDL1g0SEFxVGV0cEtRRXc0WU5nOC9uNHk5V0RyYmoxK0hEaC9zVkZ1enV6ZDdVYTA0c09MZzNxL2VOQlp5bWFTYll3UFRDd2NIRjJTRm5BWXFCM0dDWFlIdGZzTDF2NWY5Ky9ldGYrOGVOR3hjc0tpb0toa0tob05mckRTcUtFcFFrS1NpS1lsQVFCRDhoeEU4SThSRkNQQVlJelFNQXpNOEpCZ3pXMmpoS2FRK2x0SXRTR3RkMVBhNXBXa3hWMVdnaWtZaDJkM2ZIT2pzN284M056YkdkTzNmR0Z5eFkwTTNBaTlwQVJnZUFtVzV6V05wZ2wvMjh2V3d3WTBGbXVqTm1TeG9GQUVWUkxKalpXamd5aWdPeUxLTzdKd2xGVVZCU1hHQTEyOXBkR2xzZ0tDb3E0aTlPRHJaL1RhbFV5aW9zSERseXhOcG5PdFNtM3FFQ3p1YmlXQWMzRU9RY1ljZE1Qd2dEUUUxMEFKdjlZci9PUUJjYzN0cmZ6MGlET2J6UHZoM29zb1BNZm1WemFmM2VONDkrZDRMWVlEQXozN2Z0MUlBb2lxQ1V3dVZ5WlFXYXZlSVo3K3FGeStWQ3hiRFNqR2JiY0RpTS9QeDhGQlFVV0FVQ1daYjVpNUtEN2NUcDJMRmpPSGp3WUwvYzIxRDYzb3laVTN0NG1oR21HdTdOZ3B3eHpXQ0Zxc3g5c3Vma2lBT0Vzc0ZPeUFJemNRaGdZd0VuT0VCdElNQU5CRGM3ME9BQXNZRWNtcDdGcmRrVCs0TkNqQ2tBVUZ1WWFjTE1LZ1F3RmM2TUhSdWlLRkpLS2R4dWR3YlFKRW15SEpxOU9CQ05kY1B0OFdEVWlPSDlLcDVGUlVVb0xTMUZLTVE3ZWpqWVRxSmFXbG95M0JzN2tqVlFhMGcyOThhMmg1alZVNXVMQXpOMGI3bzNlMDRPRG81dVVPRFpxckZPUUJzSWJzZmozSTRIYk1jVGRqb0NqcWxPWmdVWUF5OFdubUJ6WnVhZjJUQ1RYUTdFQUkyeXVUUktLYnhlYjFhWFptL2g2SXgyd2V2MTRmenphcXh6MDB5WGRpNGNMOFRCZGdicHdJRURsbnR6S2k3WXE2ZE9yU0dwVk1weWJqYkFRZGQxNGdBNDFzbkJGcXJhM1p6OXozWW9aWFZpRHVFdUdRUnMyVnliUFNTbEE4QnRJTURwVG45bW9EU1FzN1AvUHhsZmkvMnpMZFNFM1puWmdFWnRsVTdyYkQ5ZDErSHorUVpzdEdWblBOczZZZ2dFZ3BneWFhTGwwbmkxazRQdHRDbVpUT0xRb1VQOWlndHNlRHBZL20wQTl6WWc1TXhpQStQazdHNE9XUnlkSFVSTzE2RE9qQTJIVDBhT3piWlVodzRSZVBZTHRpUGRZUWVaM1pXWnpvekpuMldGbVIxcUp0ZzBUVU13R0J4d2FKMXR0RzA1ZWd6aGNBNnV1UHdTbEpTVVFGRVUvdUxpWUR2OTZ1bnA2UmVlc3RYVG9iU0gyT0ZtbTJCd21rZTFRNDV0SFlGRFhnNDJLTUhCMldFQUp6YlVmSm9UekxJNXRxRVdFdXlBd3dBQWd4MWM5andaa3krRExXOW0zME9iQVRPMmZZTmQxRzNQcFdtYWhuQTRuSFcrMDZ4Mm1tSG53Y1B0eUk4VTRMSkwrSXJhRXltSlB3VC9tandlRDZxcnExRlVWSVREaHc5bkROV3orVGNUY0hZSE4xRDExQUZ3bE1uREVSdmdxQTEwNWtWTm9GRkt6Y01HMlY5b2c0TEtDWVlEd0d5b3B4blNvVUxPWVMwaWJDRWwrMjh6M21lY21TUElISUJHN1V1M0J3TWFlMm1haHB5Y25INWIxOW1qaGN5aDlhS2lJa0NxNXk4aURyWXpWejZmRDlYVjFTZ3VMdTZYZjJQYlEreUFzOCtlWm1rUGNRcFJxUWsxVGRPcy9Kc1Q2RXpBTWE3T2hGMC8xODVBYkRCb1pRUFlKd1ZiVnNBeEo3LzIwYmdQZHJBNXNneUkyY0xNZmlBek42amJROC9Cd2s1N0RzMjhWRlZGZm42K2RheVFIV2htSG8wUHEzT3dmYXJrOVhwUlZWV0ZrcElTSy8vVzF0YVcwZi9tVkVFOUhnZG5DMDh6M0J5YmczTndjSGJZbVhCajMyWkFqLzI3VTVIQ1lCMlg3V1A5NEdWNzZ3Z3hCNkJsNU5CWXFObkR6c0VjbWoySDVuYTdrVXFsVUZKU2t0R1BscGVYWnpYWnV0MXUvaUxoWVB2MHl1MTJXOGN5c3dVR3RvTEtBdTU0Y25BTzdzMnBUY1FPdW40RkI5UFoyUUhIL0preVJRblcxZldqbWhQOGh1TFVuTTdoWnovR2dzdm14dXp1TEFObWJJdEdsdnlaWTdnNVZJZG16NkdaVXdPcFZBcVZsWlhJeWNuSm1CcVFKUDVTTzVYNi93SEYxRm5aOGoxaXh3QUFBQUJKUlU1RXJrSmdnZz09Il0sWzEsImRlc2NyaXB0aW9uIl0sWyJzcmMiLCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVRZQUFBRTJDQVlBQUFEcnZMNnBBQUJNQzNwVVdIUlNZWGNnY0hKdlptbHNaU0IwZVhCbElHVjRhV1lBQUhqYXJmMVp0aVc1bFdVTC9rc3JvZ2tpcUFSb0Rpb1o0L1VnbTU5ejRpaU5SdEk5SXZ4bG1sSUwzbnV1Rk1BdTF0b1ZydjMvK1grKzYzLzlyLy8xdktta0srVzNsbGJLelgrcHBSWTYvNmozNzc5Mi9uenVkUDQ4LzhYeTUxL1B2Mzc5K3VzYmdiK2puL3g5NCsyL3Y1L08xL00vZitBZjkzakd2Mzc5cW4rK0UrcWZDLzM1QmhmK1BZRjM5dC9yN3cvSjE4UHY2MC82YzZHMmYvOG9yYjUvZjlUeDUwTHp6d2ZQby96NW5mNTZyTjlmL3Yvclg3N3dza29yYzZNWXdvNVB2TStmNmZjRThmZTc4L3M5ZndZKzkvQzFIbU1zRjM4OThmMXpNUmJrWDE3dkgzL2Y5OThYNkY4VytSLy91djU5OWYvNjE3OHRmdWgvdmg3L2JTM0xuelc2eTMvOWpTZi8yOWZqWDdjSi95SU9mejFSK05kdjNDSEYvM2lkUDcrL2I5WHYyNyszNjBoaFMrV1BSSjNGZnY1eEdUNDRXUEo0ZnF6dzYrVjM1dC92K2RYNFZlOStUN1o4M2ZNZS9KcFBld0s3OGwxUGV0YlRuKy9aNSsvNVRCNHhoUjFlL2c1aGhuaStWdU1iV3BqUmZVcitlcjd3eGhaWHJPemJEUHRpNjFJTWZ6M0xjKzdienYzbVU3bnpldmhvZUxpWVcvM2YvcnIrZDkvOG4veTZ2bSs2Uk05ZC8xb3JuaXNvMXp5R08rZWZmSW9OZWI0Lys1YlBBdi9qMTUvdHYvOG1QNGdxTzVqUE1sZGVzTi9qZDRtUm4zL0tWano3SFBsYzV1K2ZDajNYdS81Y2dDWGkzcG1IZVNJN2NKY241cWM4OXh2Qyt6eXNZMldET2s4ZVlncURIWGh5RG91SFJGNWlDZGNiYXZEZS9NejduTStHSEVyd3k5Z21OaUxIZ201VmRxaXpXU2xsNU9kTkZSbnFPZWFVY3k3NXpmWEtMZmNTU3lxNWxQSVdqVngvNDV2ZS9KYjNmZXZiM2w1alRUWFhVdDlhYTZ1OWhSYXhnYm1WOXJiYVd1czlYSjBiZGE3VitYem5LeU9NT05MSW80eDMxTkZHbjRqUFREUFBNdDlaWjV0OWhSVVhabUtWOWE2NjJ1cjd1VGFXWXFlZGQ5bnZycnZ0L2lGclgvelNsNy95dlYvOTJ0Zi8yclUvdS9vZnYvNEh1L2I4MmJWd2RzclB2WC90R2wrOTN2Y2ZsM2cwSjlrOVk4ZENldGp4MXgxQW9JTjdkdGNucGVET3VXZDNDeWhGRGp4a2RtK3U5YmhqYkdIYVQ4amY4OWZlL1hQbi9xLzI3Y3IxLzJyZnd2OXA1eTYzN3Y4Zk8zZXhkZis1Yi8vRnJpMzkzRHc3OXROQzEvU09hQitmNmFGZS9MNXYvdmpyYng2cDdwN0w2SG4xa1dkZXFhTWk5NzdmRjRmeWNObVpZbjkzdjFOWU82VXZocFRlSzliUWE4Wk81YStOc2Q1N2JOYzhzRFp2K3VwVDhGclBkcW5penBVMXJuMitiWS82MUw3ak84dkhoM2R1VjRtNHlCRXdaWVZscjJGekU0eGYvN2hvU3l6QnlPL3FmYzMwM2pQdzFud1hieHZZMGR4YS9ZbytPbzc3WXNPL09ubVorTDVmcVd6RDJobWZIc1lJdmV5TVJ3UUlQTHhsbmFPdHROTllMZk9jdVlYTXBuN0lFd0pVcjRFUlhwWG5DcW4xUFYvZXVlYjFmbThyOWV1MWpQWStYMEVvSXErNVcxOGRPOU16Ky9IdVozQ2hOMjA4d1hzOTdCNHVvdll2NTQ4djFQeWw4ZDFuVC9IZ2RjZTYyVS8ycnFlRW9JNVVTd2hydHZmRncxUldaQjNkdWNvN25sMTR6VmxIaWp6TllBay8xQUlkd0g0OXBha01uMUw1N2Z6bCtaWEpvOFZudDd6MnF1K2VIMXRjVUpGNWYzM3R3ZDUrTWRZNzl6QlN1dG1kOTVsMXphVVhXdC9kZWNiOERsNXZmVWhQV09OYisvbG1yeXU5Kzd0NGlxeDQ3UGNwNzNkdmZNSEx6OHhSMm14WXlQZDk0c2F2enBCdjlndWREM2ZKZGFQckc2ZjI3SW5FUFN0Y0kwMWVrajhpdCtvKzloZm5qWmNiM3JPbFhka3lkaTZ1Kzlzam9Wbzk4WWc3c0lNWWx6SkNyU0d4L1JPUmFDbjB2VldudVQ3V2xsdVArYjBvM1U0RnVZajM3clBpZFhkZ0M5QzV3YzY5TGgxWHcvWWdGL25DUG9Ua3hTcHFGbmZ4L2R0dXdiL1hOOC8vZjNwaHM1Nm5aVFM3M1RFMmZYZ1liM2kvMkhkZUk2MXJMRjRtM1BWTHJHRmlEenNPS2JjUmUvdFFjT0J1VzJOZ21DYmJ3Zjh3Vm14VGIvRWJvV0Nwa0tuVTN0d3ZmTk5DTXdjN0hWSkJxZ2VHQjdBQXNwdklGelp1YllUanJldkxBMlVaZS9LWU55L2xEU0pyMitabXQ2K05UajF6RlV4YlExYjd5bHZkZjdGSTkrQlJFS0cxUUl4ejhyRTNIRDBzV0krZXhoeiticXYwOWFDMDJpYmM1NDVlTGN6R005MnJwcktScjRhdGlieDFmN25MZzB6c2pxbGFxN1FXTUZBcGxkcnZ2TGdPeUw5aXhQWWNEeVlaUk5YQlZ4R2JJaTVlNmR0UC9saFdWZ3ZKU2JraU1hM3hrYlhxTE9sN0VOUVhGVTF4UWlFKzNqUnJUQkhWK21Jd3NBWCtMOFRCNXM0K1o4UWZvTHgzVGhnbDlCZ2wzOXc5THBUM2V3RjZvUTlzZHJ2ZFl2UVQrTVhiOCsrWSsxMnd6YkgzdDk1alloZmkzZG8zSzR2Q1U5MjVZVTE0aFRsQi9yRXNsdnZDek1YTmpzeGNucFI3VFJqcThLUTNJSU1kTHFDSHV3dUxneWZJZzQwYWhlY2N1d0ZXeHV4bGxZU0hBRVRVbVBKNGNrVFVKMnBYc084VDNMcmJmTit1TUxIM3JPUERzaURzdlBsdUdBM1cwVjNFcDdFay9VWXZMcGE1cE1ETEQyMUw0c1ZRSUM1MmYvNTRYaXhmd2dFTlJHVy8yTitNU3FMMGZLNDJibzZ3aDgwRjl0VzRZNHQ1cnJjTzFCem5zSEJ5dURLRUR1L1YwZmZZNTUxS0tNL0h2MnY1VUY5TU9UOHhQOXhGM0R2anhhRlpHNXVYRTUvQUFLWStzRTY4YnVVdlRENWVBdUY4ZTZxajNCT0ZCbVVETmpGeGVYd0ZiVVlpTXo3andXV3ZoUnRwWGg5bm05N2FlbVpWMFFoV0Z2SEg2bUtHZmVmQk15TmhyNUx4ZklNbmEvVjQzdlcxV2E5SEN5S3c1eG5SRnN4NUx3RkJ3STY2L0E4K0d5ZVJ0SWpOVmVUYkJiRFBXN0RTN0ZoVDBsNFpwRnVNVVFOS1lIa2p0cFJYeTFoUlZpYS82RCtDV1ZyR2tDTSsrR0YwclFxbnY3bGJTWURSa2p2T1pWelNndzlHOElZUlpzVUF5VlhDOXVJZG1VSmxrSjVVUGtES2hpdjBnWWdqSDBYUDlXSE1jWWhMYTMwOXFPVVJwWFhqejlhSDJyZHYrWUg3UXhLaEVBVVFrR0NtTENieXhZOGhBN21pTkI4cnpSODM5dll0MTFzbkYwY0pWd2U4N2JleUl3cmRNeFl1ODFiZXNONVR3SUF2akJxMnIyYzgyQXg0eHc5UitmYis4Q0s4SytnQTRJSVJ3b2hqOFlCbGoyNmQ3V3Y3Z3gwTkVNOUNLRUZCS0M2QzhHMFdQN0o2SDc0Qng5QVJodXZHQ29SM0RGejBERHpqM1dOUkZWa3NTQUtQMnBDRDJZb2NXQlB6WWNBQk9Ed1M5OGFWWWtqdzdSSGp2M2paamRGSndDVllJVGRhZU8xajlNZUdaUDM5SnhyS3picC83NUdma0F1N2dZWlhEUGVGN2VVaURTZ3hwRVRsUlZ0QkZHOTlYTlZieGVkR1BDdTdFU2FlVDBjTGF2eGFqZ3BPeGcxaTBGOEFPeVlVQlh1ZlVQQUtlQSswbGdzQXk5Qlp4SGgvZ3hYTEdLRGVubmV5K3FrOEQ1Z25nVGg1SWxaUWczYTlFL1BMT3BaUFUrbEs3YWNDSDBabDYzc3JlYlQwRnFBVzBvaWZIamp5K1FEWXBqR0NxcmlpM1R3WFFHdlA5dUVBRmV3RjZzR2xjR0hVRkNlUGlSTTVndDJ3VDAvSEZVajlVRHBzVlB0dXR2RURmTU9Obm5JMW5BWXFnM0haQmJERjVvQWZzVnFaalgzQU9NMTM1MllWZzg0LzhYMlFYY3dsL2pHT3dpYmphUkhBZENIdFNGbGNRVU1PbW4vVGdpRUNWc1E0b1VBcWNvQktsSXhqdUpWdGRBaVpQOGdETkFFdUwySGdsYTVibUlOb0taTVF4M0dXSGhkWGdhWW85WU92QmdLK0dHTitQSlNXbG55UzF3c1pnY1gvSWNaM25lbWFGVE8xVmU4bXdjZER4L3VOMEZYV1RjU1IwVXpFSFMvT1ZvTlhjcGh6QXdyeGlZSEwzQ3c3TnFpVks3SUhXTGdHL0FNN0k3MW9PU3Yxdks3eWc1NkhoZy9EK0FZd05nUVB1UHNoZWVLdG1yazVxcFVnVFB2cTZCUXdJUmVjV0FJeklBZ29QcThGT1lZYUpZZ0hkMEh5SjJDVkhaL0lGWmoxdzNOdnZBSGZPVngrWFZpbXg4akpDeVg1eDllUHZ5NTFQVEtHOWZzQUZ1VHZINW5IcHYzdEo2Ly85ei82cno5NW5SL2RvK1M3WWd4N2F0aWVDSnFjWTJKT1lTbUk2SVBSaFphQzlMRGZDR25MRUlDWEhTcWlrZC9iWHZOSUs5Ymh4ZTIvOCtBQWRMVCtZeVYrMzRCRitDMlY5MEFaVE5ETnphS2F6eTNuVGhjQ09QRnlvTCtBSG1GdFhpQXI2b082SHVUSFBrSms4Z3NkMkYySGt6SHU3S0M0SFVCWC9mUERNMStMN1VHNzN4VUVkZy9NQU1VT01zOGN2VFdrWmVEbWNXOTR1dyt2SkU2TGdNUTNkamowRFJBZlJqb3VjSERCR1dPQnNac05nY0dBaHhlNENLWm1LYmduZG0wQWNnR2JQR3BNY1dnVEVxaDFwTHVCYWhOeTNPTjFieTRGcWNHUGJSWm5vQzJzQk9hUGp3VEpJSzQrUkZ3WVZvbEhHYkFqckxEUlQ0aGpiM3VQdmRhbzMyWG9DdUFxb0ZMUDBTelVEWjRjV0JBWU5adGJFbWF2cy8wTkdaMDRwcG1mTU1TbjdEUFVHMk4wZi9tcWNHdUFKZENndmtwSmlobjNCUHY0S3A0NUQ1eCtydHh6ZGhGWVNWS01oQ0dhK203czBvSTJMNjU5VFRRU1NsamZJVHBpalhDV2NUenBHOUQvUGxnMWVQNkh6TUNTeDFmeGRqc0hIQlppMVdTUkQyNityUEZnMkxqekIrd0FqZUJESUFqdm01OThLQVIrQWxTR0NQWENZdDBpL1RkTTlMNjlBVjVRUlNKdzZ3UmtYeGVxSGZSVUJidUJ0SDFmKzRQSEFPOXhZNWphRVZoZ0lkWXN3bmcvWE5QODhEdm9pQnl4QXRUWnp5dGovUnF3SDZ6K3BNQnQ1ZUxuaDFHS0cvekE0K1hJM21ON2VDM2VuMzFubFo4TUZvcEE4WTRGRGUwRnNiRWZRRTJlQTFvQjJVS3FOb1JpcHdSNVlVZUN6QXVVOG9DY01KNll4QWc5d3RtaHVDelhEZVNTb2x6RlhjZkRBWFIxbkJtbUpibzNwaWd3TGVnZnNBR1V6dTQwT0lBc21wL2xIYll1YWNKOU1XUGh1WDc4ck9MdG9KYTd2MndUb3BCNWQ1VDFabFZ1VER1MjFUQUdEQjZ6Q1ppTE9NQ2huMDI4WGtxbzdydzZJQnRFaGs0VWJTK09DSGpUV1V6OENZNUJ6b1RvWWVqaE14MUVDQk9GVGtpMjJNNEhhQVhrZkRSc0NUM283eDRzUFJzeThLcUdIOUNXRFBERGMyRW5CTU0za09jYjJBQnNUeEFuZWowZUwyRE1XYjN5WG1VamU5c2NBekNzMyt4U3llOUJoMi9HdjdGRU9OWlZXUkxqYnM4TFRPa2JHN0x3ZExPQWpockVtblcvUU5aWWlpQlpLdm5CaVJvMUFhYkEyTytXSDNYemhNTEV2RGpZd3JPM0ZjTXFBRng0Q2VqdlpRM3ZjcTNxSG1TbGNIVE1Sb1hpSkw0SUJJMlNZdkFOc0czaGpZYVNBdHlJaWdXaTlPb0gxUW53ejQyS0hDWVBtTUpVOFNCcnZTQjZsQi9oNEw2YlZjS0pZYzRDQ2kwWkc1V05CY0hOVzdXOTN3RWhoRzdzQzRJTDlrSFV3ZGY1L011ZGcrT3pZcENxZ0kxR1lQa1NXTmVRNHR3dk9CZWJuc0V1aGlSUVhBUzhYNENZZ0YvQUM1YU5QT0NLdFZ0VG1NRHl1ZXlvVGw4R0NtS29idzRxY3BlMnNtNExFUXlWRndQNnNUZ1lEVVFNdFVSY3VUZXlFUnFNSE13R2FoQ2xWR3c4SGtxdml6MWx6WkNNelRibWdUSFJoT1BicjVNNkFhQXZzUld3Qm16NUhTZ2RjQ0RmMjNIdXJDRzYvQUVPY0pPZjRmWVhIS2tDQVg0MmN1Sy9UVUpwRU1ieFo0TmJJZnBZZm9CV1FMNXF5TytFTFhXOERsNElLNDJkbCtrQkdQazhKQUtXaVZLOXo1VmcrVGphdHU3ZHE2ckFOcUlEckdMSUlqak1icm1CS3dOZXQ5bkhKUDJHb2Y3alNmN3hJTmVmSjBFUCtyR0tCbjBFMVh5SzNVRkl2N3hPZkplMWhnMFhTRFBZQzhWaWRlSmROSjYzRHYzS01GZE1yczVBRXQxUWJYNmcxSUpBWTdaaGM0akFnNmJmZmNsWnZ2TG4xbmp4OVAzejl0ZmY3eDgvd0sxb0F5TEtBcDBGN1N2ajBnRzZCbG1rUWMzb21ORS9CYlBINTJ1WXROd3ZURnFTaWhiSWZ4TkFnOEZiZERGbHNDOE1EUG4rak9nbTZhQ3hJSmdqdHBVdE5jUjlGbjIwY0NVOFVPQ3hmRGZNTnFBVi93YWlEcytJUU9JQWoxUm1jYWI1T1NMellzV2hWTU9jNE4vQ0dwZHhqZFlibmdIZmNvUmdISkFsc1AwRHQvNXRmLzdyN2JuKzJoOHQvd0NCNEN6eWcvK0YzK0JaRjZRSEd3YnN5TFZnT2xJNFVjVWJwTERuMFU4ajZTakx0YkNRYStiS0MwekRCZ0hsWWRNYjJzYzJicnhVbEZzY29MNm1pQXQrTm5CNzZBQVB4eGFEVEZoWUxPUytIeUQ5MHpvdktNM0xFM3M0MEV5TWJOREh3MGw1NmdlSzYxN2lZOS96cW8veDhyMzdUMW11dTVRNzdxckZFeGd2dlB0RUd5RzFrcTRURTRPWHlScll1eE9kVG51QU96NXN6RjVWNW84Q2xIcE5IQ0hLWFRMd3B3Q1RFSVEzd25OQnFCQVVLSGRmVDNCdEIxNk42L085VlFXdWZDTHlUT3dydXJrMEk0anlQV0RBS0JSbW1MWHBFU0tNbTB3UlVJSGx1Q1Zhc21EZUh5dUUxUVVsU1lDZVZlSEtHM2YwakF1RU53d2FHTjFIWmhkcUpOVjh4MmQ4R0JRTWJPblF3aGhpVWRrTldBL2o4SzlCbEtYeGI2dUVkU0hOTUdtRG5Ed2prZzFkZ0thT2IyWWM3YU5aNkJXeWdLeGxLTXFlMHFHeXNaUEdwa1BTbmlKVkkxMUd6bHBubFg1N1d4dE9RQWdIcW1oUWQ3T3JyQ0Uvelpla3B4aGhRK25pdXNERmNaVGdLL2pLVlJzVzJEVDMvYXBMb3J4dkYwWFlUQVJNc3FPQ09JcVYyc2J3c3pOQTA2NVMzRkJsdkRyUGlud1lRS2g0aW5yamJpclVxT25raGlRS1JJKzNpUk1VQTdQN01zdUNnWTN6Qjd3Z2VSR29rbVlBOEVNbzZoVkVRaER1bGNGUCsyQTE0T3YzYmlRYVVpd0kzem5pOHlGbkgxcXc4Ym52QjVUaEpoK1dISk5UOEpoVHhKYkJIK3JzUE9xNGpTMFhWZzI4T1NlMGMrQWpqQUZEUW5HdllHTjR4c2RGY2VHWXpGWnJpZERRQzE3OExwZGQwYTA0RGZnUnEyaUFrNFZQT0dXZUZ3K3dZaDlyNTJXQXc0MVBPck9HRUppb3h0NWY0Snh0M0NFMGJyaGtMM2xVMEUweUFZQVRPK0lYUG53c1duaVhiNlBhS1R6b2Z0WG56VGRXZ05LYVY5MjRiMURZbDJ0Q3NjRE1DTzhOOFgxZ05pdHh1N3FCT3hEdS9EN2dINU1uY0RVdzJNMXRBQXREM1dueE1qUTBaY2NRNm9DdHdEd2x0UmlTZ0dEK0kzUmZzVTFQaHRpKzBFaDBialhFUndlUVZvc2dqU2RmQVMxeVlUZGVlRWltOTZ0MTI1aUNEREsrTzdnVWZ3cnZpMGEwUUxJYkMzaFhjekdGSmZwKzBQN2tSWkJnby9PUEllMG5KYUF6QXNVK0JoMHkwZzNPM2RLQ1J6ZGw0bjdNOVFCSmNWTy9uQkpMbks4aEdETGtnUkZwaUJ2YWJqRHhSSStCSlZKWUVGWXZFcGtRVVNIZUQ1SEZ0Y016dExwUVg2U3FYeGlVa1JBRVZnRi9OdlBocjF0bkFMaUlRcldGSEdKM3NSY0w4OGJydzlJU3VBaWZlWnM0ZUJhVWFGKzZTendIMndTSGhvYTJwMFlBUENKeWcwL3lFWGJJTDZ6dzQ0RmZTQ0FmUUdLNWIwYnVRZjVnUlJ6WkJYcGNieXFEYjQwSi94NzhSalc1aEtIbkFxb0VSeGovdUxHendNY25MK0g0L1Z2aXB4cWdXeXc0K0tpYXQ5ZWNpWE1OdjJoMHFrYkpid0J4bnR1ZzI5MTF5WWFsMEg1WTJtNXhQWGxHSlFIbHVNU01ZS0tOMFVSV09oQnFwaStFYm5YTjFwMXJ0K2FTR2d5SkFQaVVaY05oY1MrTWNZakJqRW9HUkZTd1pQOFA0UlBuLzIzZE1BaDhNR09ySS9BaG9vV1ovOTdYZVBhZEowK0s4VzhtcGRDeEpkbXl4Q2ViSkdXZkRURmhGZmNHNjBNUEJDYi9manNFOHNjRDQ2VTR4bi9lL2NGVFlDbnJNSTJrU0p0clN5Y3FBaitCZE1TVGhHTFhhOCt4Ui9OK3JZZnhYcCtGTGJWalAxSFIyOWcxUk9NRi9KZit6OXVkdTAyREFGdDRPdXVCRUR3UTNuUGh1d0JQRjhKZkUzZ2Y0SVE1eDhzVUF3SjREM3dxZnROMFg2eVloMSt1RDdNWmtzOHdOL0tCUWdCVnh0RFdYUHpiVDZZdllpaTNBZnp2WkFsOTE3TWdmeTBIK0pnSGlUZHdQT0NDc1cyNDFsWngxWERrKzJLSHh6M2h1cmp6cmFpQk5iV3ZrbzErdGg0OGhkbHIvNGViWFArNFN6NFNBVWptM1lFR2FMVUxEOFpENFRDWXVMc09UOG5uOFYvQS9NdDJBQTdteWZMaGZDN2diUnpZNTR4dmVqNFVHb3ZzbXM2VGpmM1hCL2pidHYvTGU4WWFRUDRzRFJ3REl3Rml3b1ZrVGZHSjZXQXlHOXVDRFVIWlFaZEdrYnFrNWUrN2gvWEMrdlN4TDBnNldvbFV5dEFOT09LWEkyWVZNWmJzakNkQzVORkY3REc4NTMyQnYrQTVKS2RYNUMvcXZrenhLWkQ0YnpZQUlpU016bFdhTnF1R3pqaUNGQkZZQnJvcVg5RUdoWm54UkRqdzl5OVFXaWFROFNyQ3VmRUhtcU9WRTRxTFA4VWxRNUFiMmdRVktDK1diVXYvYnBPRnoxR0NabUprUDloUmRIYysxNUJjR01xQnd0enhYdWptTU04SzFvVE5taHpCaEpaM2M5Rzh6d2FBUlQ0enRaQWhQMzFqUExBb2x6NXZtT21ZK0lOOUloRGNqMlhHeDZmNjRXNHhsU2JKd0NhTlp3UTVyY0x5c3VLc25RVmxHYVRSOTJYQWNuMG1ia3J2WEFWbmhJaU1lbWRaRlR1QzZaOW8wSy9LWmZMcTIxZ1lQamF6UWRVOHZrWVN1cjRUeGlQd1hpYlJYK09kNFBScFRka1RQak5VOG9yZXNaWGJJQnY4MzJqWlNRVWE2Q3JyYWV3UHFMWUI4aDgwZnhnOWovMEJFTEd6Y24xY1NHZGpKcVprakNQU1ZVSWhpREFTemNydllPWTRocThIdkVnNzlZbHd1ME1sUHJqbGhMc1ZUR1FHcFVXcjZmZ1paQzByS1ZQSlI2WndhOXorUzVnU3J2Mll6bEE0VFRWSGxwMVZnU3hiaHZDTGFZSDd1NVVqM0RzTmdCNTcyTER5TDh4UlB3aGdCdFVDTFo1OVJlQWxaQ0dEeE9SNG90MjNJWGxKWklodkxTdkRxMXFZNlFTbjJFeUFDK3lETlRTK1h2UEo1RDJtNlJ0MExCWFRHY2FvOFMxY1RFdHV2WU4wVlN5cytjUEhyRU9WWUlOZ2p2UWtCSjM3NDIyeGtkZnptSFNva3gzQVdJeGpXOFBQKzhLanVPTWI0SU1MaElDSUFIQlJhTVRydFdnbWZnQXpBQW52SFBjRlJ2QmJxSk5xdytzaGpMTjNKQjhvQmwrdGVMWnZRZUdXZ1k3OEdMSlMvLys2NDdtZnlVejkweERpb3lUb2RjVHg0TEFnL2pIaGJzVmhpVjJER0NCSCtIU1RnUG5GVTZNQmo5OFB4a3UrZmpYOE5ONW5BblhhKzVqNkJDV0M4WEEyUXFCUWpBTHhMbENXdUZHa2x2QlhKOWxkQVErZ3laR0tNT3JpVVlCd0E0dUREdDVZVThnQ05HcURBU3JZTytYNFlMYVEvMmNOOXEwY0hnYktRWW5CNFA2NUVKaUpQZnBiamtIY0QwQkt0NG5vWDhidnh4VWp5cHpMNFlxWUdmalJCL1FCNUpna1MrOER3Uy9YMXdjWUtpMWVDU2tDSWdMU3A3YnpPWWtIeGRtNm9CdWptdzB5Z3preGozbGpKdzJyOFB3WStyb25oaTNrb1o1dU1XMHlWN3RNdTNmTE9VQ0NTR1FVdExlbDdSUm5Md1AzM1NEaFNVekdYOHIrMHZGSGpPVUh1TTNscERSK2JQN0J1ZTRIQk1iM3Y2YVIrcjJNMG94d3ZMb0JNVFJlQS9xTzBsYVVITitiSVNuV3ZTQ2tCaTd4aVR4L1J5eXl0VXlnRi9CQnJnQ2h1azRCTlVDTHI0RGg0YTVKTk5KTWVrUlVKUFZYVHplTnpnRmFVNDl2d2lJaWdZWWhlU3VVdmNSa3JBNXZQWUJJMGJEY1l4WVJRbnhGODVQc1RyQktSY3FLalZZTnhoaStoN1JCcnhLTHNWV2NTTVhaWW1DeExqaTdjcTlmREtDVUN3c0NyVGdMRmtvK1A0UVJnT2dCL2pDL3JBK0FBNXVCYU93RjhBY0NBcUVtR2phd0pwZ1M3aHRHWFNCL2ZLSkpBTmxOUlJSV3g2RVpOK0RkYmpsQ040akJicUhYVm9weHp3UytFbTZNdjczNEJVK0hHRm1PdHdZdzRzRk9mTUhhRlRnak1tNGxqd2dKbSszV205RUFxeVFnR080WXVDaGVoSzNkMjByZnVBQUZ0UjVCNFBkU0g3SDRIK2dQQUc3cXE4UGxBK3hyak00aWxjejZXRHRpNlZHMFhNRDgyZ2N1aEd3K3hnQS85dVhCcVBQS3JHUnNRMFdDa3FOZ3dMSnlGcTJlOVFQUW16cWYzSVJyWVJMcTFhQVBrSU1ialc4dzluTFNveDlXRVhPSDgrTDN4cDRNakg5OVRmbnZDbWZsZmdLYzIwVFc4YjRqWHRFUTFYbVg4UDZXTUJzVndIWkIzVzVqN29BdGtDTW9CRVNVZ2hsQlNCR2NXNS95R3ZaK2tKNThJWmEzRjBMZVlEd3NVTG9iajlqUjduYkNFam1mdEJhMElxQjdWaXhpa3RrTHNhakpVdlBGT05lejJKWEw1SGREaTRlbEFZY1ZRU0JBRWF3S3lHNXVFSXFBUWJMQVhtQUxjQjVJc01WU1pSbzltWmVSUVpacytkN28xUnJzY0RReXRBeWU2VG0ybVFjNG82Vi9vby83TTBzeEFhdDgwWW9qci9kZE1JV2VyZUVTTW9kYWNJbzMxczJ5aHdTQTJQR1lpUnRuQXhQY2x2NEJDbnZkRFU4Q1dNMElHRVJ0dGdzTGJFUkdlSmg3TlErRlBxTG5HTFo2U20wQXl0V0VOSStYWXNaNkEvQkFoVkNqOVZoU2NHUHVNQWlBQ0o4SDZHRFdMWnJiUndicVFoYkJUK1UrSmRrWnNqMXcyaGJJWTdBTndBRDhkVVliRnkzZ3llT2FXSWVOQi84c21RSlUxMnJBUWIyTTNDSVhnekhmSVJHc3RlbDYxamRYby9pbXdaRHFWSkc0TmkremY1dDdmNERLOXZaaTZHcytJRHVYR0E2QUlOekJNT1g5amZHcjNMOTNISllWQ3NuTnY3SnFMMDhVNzdSUHJTRWdoMGV0cHJjTTJRd2xQT0NkTUtVR2kzQWNpYlY5bXFVTXhnaTNWZWdBc1g1cVF5K3NNcFRLekUweUNtbHBPbERBU2dZeGlMY0hZbVJFeitvQjYzYkFRUjBFanMxN0UzSTF1blVYRDd0V1VUME1NRGZNMnpJelh1M1JqbjI4UGpDaFdTZG9jQTJ2MExSZFlMM0JUc09WbGNOVmVYYkFON3EydDZVVkpvWUFZNy9rUE1TZWEvbyswTGREQTVCa05CYy9oSERMQkxKNTcySlFOb1lUdVYyc2tmZ0llUVludkJWUVBqSkVKQmpEZkRBZ3dMTStoNldURmVqRzZrSUYrNHVBRnhZWkV6YjdBeUR1YjduMkN4UkZiZ0EyWnJSYTNOTTBtcFV2Z0IzaklkKzB3SEVhY0R2NTBSUGJUMzU1TEdReEh3VDJvR3RUSjQxTzdveHQ0WGRTcmpWOGVLWUVlOENXM01naVd4V01WdFlwU2VhS0FsM1E2N1FjTmdmcklRM001WEkva0JaV2hFdmkrcE5PYW9mT3ZyQVh0NFdsNzdES3cyenVsRHVlY0hzM2pKaGVFT0ZsTmVTZnJFUFYxa2JyUmZqaUwxZUwwVFNDekplZzVjbXlhYXRXMUFSNWk2V2UrME1KY0R3Zy93Y0VCUy9PMll2MXRuR01PTS8zUmErbjRSS1RaRHdRV0FBRDJ3empyMmd4Z0xWalNpVk1qQVc4MHZydkh2YmZuMVZUYlREelZ5TVJiaFpDN3d3UVp6L0RaWmhMYVR4MW1LZzlHS0Nua0tCKzBEUTBLV0NacGd5bDUxTyswR1JCVmpKTlhBZG1Ca0lGQTQvcENtd0NnQWhROWVpcXpCQWExZWFudnYvcXFmNDgvbC9KalQ4dk1QSmwwZnc2M3dJcEhCdUZtQlJjNllrQ2hjT3RjenN4M21DVUVvcWJtb0YxSE9EM0V6TGp3Zmw2MVhkMFBJckhrVEVBeWR4OFNzZ0tsSHQxMDEyc2dyeTk3TU1OMTFxditCV29CL01HQjdNb3NLT3EyWVA4VDR2cUJDalZOSElDL21KdThzbGdKK1N2WWVzQVFCYXZKUFBxa05NTUdKbFkrRzRjQjNka08wRDY2VWI0ZmtwUWZsVnN1azZBblJVMXI3c2FUelhiOGF6YjZrRTRMRitZRFNkWjhnVUJZTjlnUmV3WXptSGpBbmx6WEhFQ3lHUFo1MHdnbmhNUldzYWVIMnM1Z1IxQVZaYm13Nyt4YXZsYjEwa1BRRnh1cUhUYkp0T01oVUFzc0grUHhaTGhHMko4bnE3OEl4bjExNk1kMGpST1U4bUZoRXR1VDJ6OXMwSmxHUWxvL3JpUDBIbzB2NkkxSHZoTXN6bTV6aUFWVXZqNXMwNDg0dXFYRnVqR3dUYXd1dVdrMVlMbFZYaE5pQXQyQmM2RUh3WlNscHdOQ2NrT0FpNGlXL0J6M2hIT0JBYStEQTdNZitUSlhPWHh5NkQ5YzVYLzgyVitVT2JGb1lsc29rYjVRWTRPMjhERUE2QlNNTXp5enZITFZvbS9oQ213aHBGWnhWQnV1OFFDNjgxYW5DUkNBd0ZqUHRFMXl4NEVJVkNiKzFldkx1ZEZzd0xNQmljZnNSd3dDQUFsUUJQNkF2Y01tbGFXaDFkRDlMRmFzb01yS1hRNG5BZEVpSWdpaWpDQS9QNWFmVjVERWMxQThuZGFackNTMnR3aGZZYnlCMUNwVFB3R0YxNUdPSU5PMDRRRmFONW1rLy9wcW8wT3AvMUxPTlAzV3pZWWJJNTJKeVRRL1lpamJMTmtKcGZTdEpRQlMyTWR2dVd5ZVJvZEttMWo4VnpzbUc1Z1dNTkNza0R1UFdhUzJ4c1BBMzBYaUdyRy9YSVIvQU9Zb2dQTit1RVcxb1ZEN0VMZ0JhOW45T2VuWWN0V2pHS2NnL1VWclUwNDlyT2EvbnZITzFjdk8wVVArRGFjTDVRWHNIbi85SE9mcEhnL0pGTmptdUl2NEcySjJIRzEvVFV6S1RWM0RmQ01acFBZNWJidUNlZTAxSHh1Q0NPNkZxcmRWY2JPY1VDMkpKZzNlMW13WllrTW9CMUVqZ3V3akJta2lnQmFZR1kwNXpIcmZVUlR2M0VwT1hIVzMxNTgzQlVlUE8yQ1lUMStYN1BraEZkQWhJOFh4VWppUW5oM05nTHppRU8yL21GZUZyN3hxaFhrcjc0OXVNME9vUVF2c1Y3TE5FblpBOXFDRmJFYWN6MW1IaXhtZk15K1ZlUHQ3T29ET1k0NjBQRWZxd01xdjMreWhHRndFYlg4K1FDVytBdmF3YWp2MzRMWk9IQk4yelVSdTN0TGFSQXZaQmJNaEttd3pjc2FJOGpEampnUkMxOTdmV2Y4UUkvc0t5eENYdnZsWW16NytsanhhaTJMelNSWlBwdngwYmZ0TGkvT0FlLzE5dnNFVlgydUIzS04yMnRZbTEydEFVSEYwVHN3TUo2Mnd3M1JSVjU4V2M5a2p1WlRwbUlwa0M0QlNZVGdQbmlhaWRtTDJDalFLMWJpQkdhbXhkNUFMeE4xMml6OGVRbWdKTU5LcGxUdmFtMEFVTHNBWTRWWXRoeFptd0pJKzdSKzRLenZUNUxsdDdzWEx0UTBtWjRudlBCUGxobWJ6MlpJK0FNcktWNkRackhoRnYxSTBvSEttUFFuVnd0ajd0ZmkvejJ1ekRmYk5vQWM1ZytUdlVheE9raFpKQUFUQ0xZbHhYeHlXZmlXK2t6SXJFVlFBZnJiakI1YW9IOHRnQVVnSVNCZDFlUjlZWGRuTFR3RkdQUzI1OHNWV0pZSmdqS0xKWW80WHcwVlZoWEEvaHBWZzNkY3I5MFhjZ0owcWhpUmg4RStXaXBUTGpPQ1NOZW9keHNOaWRnYlc4bHF2OFppbzQwVnBXTlN4b1BzWHRrNkJIemQrMkJ5Z2xIQitTdkFRYmFCRzQvMTNValQ5QVhaZDVNSXNCbXJkTmtIYkhoa2I4Q2J6OVhNVkcxb3h5bTNoc3MrVm1qRENrQjdvSE13R3JUaWZubkJ0NTMvaSt3OHdJZkM0NWI3eTgrbzJKUUpZcHQyUFVCcWpvdkVmaUVxN0NuSU52Q0R2QWI4aTMxL0Nnd01lbXY1MHdPaGd5c0F2bkpHMEFPWUxkNlhqMnpqajdsTWtOakhtMWRiUWxsTGtWMHhEbjRiZGhrbm1vK2t0bWJlRklsNVBvc1dSQzZQRHZKVEVjNDJjbWZ3RDQ3TnFzTXRSOVNzeFpQWHQwVUxGTmpFZmJOYVVNSUw1OU1qOHV3S283dXlyWFFEeTEveUNDZ1M1aXpmS1ExZkIwYkFRMmJjOTJNczB0b1JNMVJ2ejZlMUNkTTVnRkxSeXFyN21paE5BcXdIaVNEMk5PT2EwaTgzYW1yZjZrbzA1OWxOeW1SZWZwWmZkVmNDYzMwTFd3a2wrdVVnc1VVL2ExT3M5VWtuUFduOVpZVDkzeWM2Rk4vL3ZOamY3bm51ZUV3dHlCWklhY0V2bG9WZGVMSFJvVC80K1JmOEJhS0d0UmdOQk12SUNic0I5OWZvaUltUmIwNlVOVi90Ly9LTy83d2grQVlUdml4RHJTYTg3YzVGYWEzd1NSSFBnREIydUdjSGZleW84N3J4QXljYTlWb2hnYW5VdW9TVFBaQWduU0lDRVlOZUNRWlpRSGw5TmE2UC83VDdnMGMyM1JsaHNSRGZvVnRLRWR4eGVqOHdVYk5ZSklXaFJ5Y0JlQmxrYlJFdHZoOVl4N1hjL0lCMVEyM1JWOVFPbWRQNk50OEQwcCtSLzJVN0ZwK0hwRTE0NUVKYjhaSmNHOFp4d1NXVEtkaGZLOVFHWHFIcEZ2MW1TR0RoU3NzTU1wU1l4MEJoaDJuYlVYRExCWE13Wmg0R2NRVVJ6ekJuY1dCTHNYQ25tVHAvMFVVOGNMYXdEM2lDOEQzUmN0YmJMUFJ0bjJOUGFMaWhTalFScWxXUTdGUWI3OXZTblpHemQxbHpjb3YzT2g5ZkZVS2F0dlY1Q1JObk1NeGtxc0VHNjlnQ1hzVU9UdnZQcnJzZ0hiYStueHdQL3k0ejdPM0RBV1hRUW4wcFc0YmMvT3FScFU1NGw5UFJDcjh3QXdlbnVOc1YwQXRydU5Lako3NFBUbjRWb2JFTUFVRXQ4ZjRiUkpPZko3MFdMNXJBd3loQUt1dmRyWm01YlhpNUxNTXg3V3I0OUhQYnJIdVozUzVsaUxpdG9XWWR6Ly9rODM3QlVoYWtJRFpBVmx0OCtFRXFMNzBremdHaWpWTkRIbitVWloyWUNzOVhzbDAxdHNXODJVNndiOThMNjQ3ODNnYVFSb21vVk5peEE5Z25iZ21pZ3hldnZCeUdOZHZMdGF6N2U1QzlPN1lLbEY2R1RTZlMxSzF1Wkd0aE11aW1WWE8zelpHWHdBQXRPRzA0M1M0NFdJaTE0QWFBeStoSlRtaWpkYlVOVkZ6SGZvN0dTeGE4R2dhQ1MvRXlrSnBxWVVlMFR0Z1FOV3NIZU9rZDN3cUJ3NDNWOXJKSkEzRTBoSG9IYlBtOHhRc1p0cnB2T1N6dmsyYTZVS014dWpLQVkwRWlZSkJXQmtQanpLMmNlcEtWTEtCQjhLMXJRTXBDTWRVL2JCL2IvdUJudzlZRnYzaGF0Sm5Gc29rQXhjM0JlUmYzcjlidVJuZnRkc2FpUG5iZEJRdFJjbzg4S0x4MlFwTXR0T0VScmxvd1hKYUw1ZklyNGx0VzRDZjRLeXNRQkZiVHd2VngrbTROUDBBZlpoSjNSQi9KZm9udEY2NXBFQ3lDUEFNN3lRNmR2SVVKSWR1T3JkaFd1RzhiWG80K2RvakhpWjBsYkRJMDZaVVRBQ2NhaUMzYkNZVWtBOWNBQ3ZNR2wvSmNHS2JIUWtUK0Z5SFpFMkNMYnpzWGh1R2hTSjkxcHNrY0J1UWVNUHE5eTQ2QnZaZUZFVHh3MDZIanZMQitFN2VRd3BrZmczSkdheFhTeEQ4Nm9jTW5xVkNjKzdITE9kMFhUSFBxUjVMSkt2WUhEeFAxMHlDR1lZSHpLb2FnNUErMVlRVWVwOGRnVEIzK1lldkdON1hJNzNkZnRqbEE2Y3FKTTBGVTY3QktwMzVyMWV3NjFjOE12c2g0L1lDQnFNbHNBQ0RsRVdBQXd1NDA4MVY5bTJ3N245NzBzL2UxL0JyWDVtNkdsUnFMZ0sycDVvd2UrTTNhVWxOSkZMU2ExWURlRyt3RytWdkdZNzdIM21BMGtLZDVnRlZmaXZZTVRzdUVPeUsxb3kzaEZRT2FkZmpXMmUzYkpCNm9kd1BKcm1KVlNtT0RiNlhSdmNCbnJiQ2JuWlh3M1c3VmtCR0s3TndJNjdRRm90RTFLOUFkSU9MSE5oVjgvelRpakUxOGJQSkh5SGwrOERPU1p2a2IzcVRaK1hCcXRZQkdwdy84Tlo3UDB4a0gyWGsvTDFoM1h3NmpFTk4rMDU3Sk5uUWt4WWc2R0JuUUFZNDNhMmZhK2IxMXhVRjJEWFlBVU5wNTNwTFY5M2RmMXRXZWR0MWhXNER4WTc0Tk9zTU5JSXdmYm5uV2hCV1BCZ1FRZUFQb0ZkWlJtcGp6VFNrT25TbFUxTmdzUDVBQTYxZ3RLOGJITkVsclZwZWwvekJoUm5kcjBoNThBTnBuV1hsLzkvWktYSGpZZUtvVnJ4V3RJUWkxc0JlZ1k2Zzdvb0FPZ1RkZmROT3VOaXo5YWNROWxCMVViVHZMQnpFQWgyQzVYeXZWNTc3YStCV1pEbXNQZGJ0bXhnUG10cUFaN1o4QmoxOVY4bXQxQ0FvZ285c0YycmJtYTZRNVAxNEkwYmp6MDRDY3ZHK3lwdmdCdFg4RkRXVDVnTDQxb0dHUHIvdVlxYnF0Uzc3TmVlZFdPZzdJZlBuMS9xcnhoNE5jOERsUEhJWURwb0hvejNRREtzSnF1dFJnak1lSW5WV3RwcFFOa3RoaW5ubjUrVnc0QlR1UldBdWNyQ0pxdEJOMStVNWhFbTRjQjJBUExONm0zS2dDcUw0cVU3Y0Y0U2lJVVVCem5sZTI2djdyanJWd3B0T3ZJanR1eWZnN3NYamdlREFHdUczaDY3Q2p1T1JpTlFPMFl1c1owMzc3aGpkY1dDS00xTVFzN1JhNEsvY0ZhQ0diZ3FLVEdMVFVZYkZJOVFiRmZraVY3UENKb0NORXIvRkpmTUtLRjVhZGwwSUoyVXRjb0ROTE9tK0thaTV6NmFjRkhYc045YmVieFhqTXRPTUM4Y0w1N2RIdDlXUTN3b1VUc2Nwaldlc0lXMlB2UU9vTDA3Vk1jdHBtanBHMGZBVCtEN1JmV2VVd2lZQVhlaHhLMEZLSEp0Y0xrTm1xZVNxdzl2MUFsRjQ3eVJxdXhraE5ONHhnZWJ3c09laVgrTmZEVXE1VHBldGJQalpqM2VXeWxla3RQNmxGZ3NISHhoTGk5eE8yQlVuL0pyTFBBd3dqK3JvS3FCNXVHUmRtbmhSMGhIM285NFZmL0xhanZuZ0ExdGU1Tm05SmVpSk10L2xJYS9WUS9mYldkVHVNQnZDVjlPV2dNRVF1Yjl0Zys4YlRzc3ZSeGdRdzlPbi9LRnpEZkgwMndqenN0dWtuczVxc1h4Qms4WDc3QVBvTndaNGlnNDFEdjlBZnE0cmlabHRmRUhKSTNEajVpbVpqV0RTZ3haTlBCOGs3ZVV3YjZONWs4M0VDOUo3WUp0YmlUbGMxeExiakVjVFhDb2J5TEhOMm16VjVPdVRPTWxKOVg1ejJHSlFUMjRoQUFXTWtDYkxDRG9BWnRpb0NKbTAyNFFGdmwyTnFESWFGVTRzTWpnY293bVpWOTNVeU5MeFVzRFNqbi9BOWdORWVSejV4L1I4K01qVjRqaFZ3QkUyMjlRbDZISVRQdVFnVG12U2c3VEV1bHVPRWt1b25BRDVZSFAvUXJWNXpoQXZDYkR3K0FUeFo3aTdFd2p3Q2NEQWVlbDVuTmZRT2w3MldOVnZMSG5XMjNqamo1NVFTU0REbU5waUtyS2U2NmdSMGJMbEIrT0VxQmdoNUpKTjZFOU1BNmRhd0xXTXhXRmNnQnNZODNGYStOMXcrWkFiYk5MdVc2Yk5DTEM1OFZiWlFxanFKQjVjSEFnSzJodzFndHlZa3VndjVzWnFrVDhFTU9qMDZTQXlpNEpnTmk5YmdReG5sQWtuQU5CQ0xHMUF2OXVqSUdSRHh1d0xpL3FIengrWTFhUjBQaiswelBsVW4ydzZrUU9vVHB2UERKSnRZMFgxdHl4ZmduY1hDT0V6dGdJc0FLOUgzZnFyUkM3b2hjUi9WK241OGJNYUJRTCtlSUZuWXAyOHJhd3M2QUdvTHE0OFZBb2RmV2xyOUV0TEhTMWg2K0oxRjVnYnZ2NGlEZEREYkFTOXpTSFl5c2s3b0FCQUhyQUFWeGM5ejlSSE5LNE1WeXd0d0dNRVVCMjRmSzNTZnlVaC9YVk42YnpEMng1WEdMMExBQ2x4bjJKSlZhNWhhczByclYzUno2bDMvN2N2RzBITDlieTU1L2ZPYS83OWQ4dnF2SHZQL3pTV3YvLzJiczd5b0lpUTBZRzV2YStLRTBpZjZrSDRMZVRjY24zRklKejhzZyt6MytJL0wvQ3lIY3hCK3RzTXNwZTIrTVBlZ252ZmY0SUJUdTN6OSs5Y05IdjBYTDJ1ZEpPWUZOZDZJbzUxVXVmMW8xN0xNOUF1WFExdWdaSmdpZkNkVzBNTG5Qait3SWh3cGgybzhoSFd3Wk85VEZHMW0xQ1RvaDBRVHVEV3JOc3ZWM20wUEtmYndYTisrS0J6eHJLNFpvR1pWc0RVZUQ3dXd3cHdPdlVHWjRKSExrbmowUmtoczZPYjZiT2I3ckhVR1c1U0JaZGhXZ3pWNzlEc2VheHNVL09JeDNWWnliSXRoYjl1QkhQMFJzRG1mSTVRc3EzN3QrZnF3elJsc2lFTkV4Wko5YXYxNUxJUUFEZk0xVE1vQ2htclA3Q2ZBQW42R21kakU2YlNEMUM4c2FJZkR0RlFDak8wV2pqdEQ3eGpPTjd6THJqSEwvWUp4TlNjZzdRRGdkdnJNNTJ3MTUwN0FDWnBnRk9XSENzT3VvZzJyZU96UDhIODUxWnJSQnVwa21mVm5kYUxmMUNkRE81Rkt5STNKMHUva3RpNFdDNE1KN3Rxd1NDaUNwc2R3ZExGMHlkaTVmdmZPUHB3ellaQkE4UWtJeUM0bDJ5QUNIaUdZcDUxbjlscTNsWDdjRWtNcHhiUXF4Z2Q3VHFPRkpYcXV6MGtmbWRHRUFkejFjTXJIbUR3c0hONlBpdVR1OXA5Q1dNVHh3MlZEN1NQR1pqeXVaUlVHRnlpcDJhdzE4QU1CcDFLQlIxQkV4ZkNiVmlBNDYwTU90VXdhaFZPZkc1emZ4ZzRub3phVzRTNG43U1FMR3V4VWorQXNiUE50UlFxK3JEM3c0eXZjZ29xU3dRYThUY1R4NXo4Vm8zc3NpZFp0WU1PeHBILzl6Zk82RzlYSmZBQnJLT2Q2KzJrNlpZc0ZLamY3QnZDMFZ1aXpNc1FhVllBOGtFYWkxRSt2L3lmYTNXQk9tT1NMVHp5N0NFLzhlRFVUZElvanFNbm04NDRvZ2M1aWJhQkI1eVhzYWY4RlBnWFFCNUp1eHJUZ0NwSzc1THlPamg5YSs4cllvd25LZi9LcDFFZ1dQeWN1RVIxamd4cW5XRXl6Qk9kQ0RXdlljVTdnOVR3aDNSVStMRlYyVE5hRmxDYzI2OHVIcVlJZGRGK0RIWjIrSDhBR2pKWWN1bW1GRFI1OGRoT2lmaFZENHJnWk5JbWRYSmRSSWhNUW9KaU5YSDJ2cERuZXpyNTY0WDRxVjA4akE2YWRXY1crckZTY0ZLZ0REWTVYbTg0OEt0bW8zOWRPSTlkMkxnK3lETDhRbTIyTVUxYjlUMjJ0ZzV6QTNOemxEbVhQMCtBMnNKbVFLR3U4OXJwMHE5QWpPT1pHSmV5N0dNQWdlSkRCTXJHM1JvRFhXYzZGM2ZPa3VrOXgyTnJQbVRsa3JSRlk1bkxTaGZrdExyRGhmMWdpVUt3OXJvNGNhbGhHN004d0NnUVlTaCs2RDIxaC9leGJDZllKWXRjL2N5QVhhQkwvMEU5UzFwQ1ZMc0ZhdFdMT3o1UkR3VmFjVVlmOU9mV2RJZzZ6UVFzQXI3a3JnSVFTeDNWaW5MRllDZHJ2VmNvOWZHM2N1SE1FNnNNWGlnR3RaQVZBZkQ2UXJ6MHM2N1NQYUtqR3I5UXpYVGFyWlhZQk84SnRSc0MyZDJmZzJhMThRMWJ0ZVVnZENXZEo0VkNBYlg4WTJ4a21ycVpOMlBZMFQyUy95Qm03QnVGN0R4NTZONHNrUTg2aVZNU3UyS2pGbi9kb0xMSnhOaU5ucDZNcG41U01jMENRYkpocXNMYnZrTjdxYUtUMWE4MEY5Wm5ZUEpNNVdqVmRtaUhoblo5dk1lUG53bE1iaU1iWmNuMlB5d1FlNzRrdk5uUTUyc24rTzUzUWNWdFlBc2NFYXA0c2NqMnp3Nnh6Y3ppRjB4ak9hdy9SS2RBUDlKNmp5cE5ZNTJVMzFRamxRY1N4VHJFa3kzcHU3MitGNlBQc1dqRDhUcmw3TFNacnR4TjJIcmp0ZGFmakQ4dy9yejJqdFZIZHlISjJobDl1em5jS1JVTGZUNWs5aG5qeDJmdXhiUGlaaGc2YzZ3VmQvL25YZWlxYkhjVmg0ZWRuL3dYNm9iSUgrK2JMWTVQeGQ0dnBIWGgxaGlnYUhyVmMwMExDbmk5WEptRUxNL3R1YkxMYk8zUjNqSThpblo2K2tuT3k3dXhrcEZoNEcyQUpCaW80ZCtwR3E4Nk9MOW1SUGRZMkNaY1BVQXBzeHJJajdOREtZRWtHUGhkYmJWSHJOSXI5dnBGcnB2WWFjc0NsWUFaUlpCemVaWWtRSnBkZnh0anc2Z2dYcERTYmNJeEFHa0dXeVFNY0UwYldHVWRMaWV0Mkx5Sy9xWnJEUi9pdkh0OWpkNFdEZVZ2Q3NoeXlkaGVuRmpxV1l0c0Q4Q0MyR2FZNzdhZVAwYkdNRmlmYUFZeHd3SG4yOVNURnlqSTJRelN2UmFaV3RGblpDV000Q1ZVYkh4elhOL01OSTMyek5YeHMxVDR6Ry9qQmJ1bm1sYzR3UDd1VExhRnc3aGxMNTU3ajNuU01mQXREWWVVc2l6OC95NTk1OU9lTVQwVFJxMmxBVEVtNEZvNm5JMXloTzIvcVBVbUo5U3dzbXoyR1RrZUM3VXdzTnM0aldyeWFMVWFTejhDRjdER2NKclhMZDdHcEFkRWNmQmljQlNiQWU3Q3I5Mm1CZ0pEZ3pzemtETXpZc2xyRE1rellDaUp1bEd3WVlhaldLRjdSOFpOdlNoTllaREwvTnhjeXNxbjZLQTBscEZ1ZG5mWjhuZ0dnYjNST1N2dWdheGpqTUhyQUZrSkY0V3UzMC92TWlnS2dINmpxWjBzTTJtd3I4R09zekM3MVlWTDJzZllyNUk3VzI1WGk0Rm9NZkovOXNvL0hvVzdRK2ZLY1dBSzJIbmdGRkhvNmNtckxTM1JpREFidlVEVTg4SXZCc3NEVEVHZVZRdS8yWHY5KzE2YzVqTEtPdi9jOGZZYm1ZL3lYai83NnN2NzY4SHV0OTlkVy8xOSsyb28ybTJZY3MyRTIwWG04dU05OU85UmdSSXhMZXh6WFluRUZGZzhuc2o0aHB5WGIrMUVOWUFzWmZ5QkJmTWRVdXZsak9rdXRtalVCeWlLbXhjRmZyOVdhVmVMMzNkVnFKZENRUFBxSGplS2ZSTUZwZEJIQ0c3ZGF6YWhzTXFBRU5FaC9taW02NGNocEVnb2R4dVUxaDhvNHRndGJheGNNTG1WYnhCckFSc3ZlZFdjVW1WZDAxSWR3ekVsc2dGZm5XWHd2YkpnMVNoWnhPbm9EVmNkdk81bkYydVFIWTVmNEY1UTRkSWUxMmd6bkZJVzdDZzJSSFQ2emJLaTNjdmU3T202a3h0amRWRXdGTmxhaHRvUnhWa3lpcWZmZEg1Tmh3QlV3eTBRSFR2QjQyQzJCcDhyMloyS1BCdHVHR1J5T3RJTHl4OU15UEgvVk0vdXpFRktKRjlDZU52UDNoeS90TU1nc084c2F1cFBhL296aytYM2l6L2Vmdnk3WC8zNDVuRUw5MTd2NTdiL3VkZjF1OXU4WCszT3pZWnY3KzRBNXdWbzRHSUM1ZnRZSmV1dTBBSm5RUWNEYm50ZWZCV25sdjdqZC8rM0xPWFhwTW1nSkttR2xMVEhGQm1sZklVYWZVb1ZYaGhYQ1g5N3o5ZGFIeGN0RGFobFAvTkZSRFRndDAvU25nK1kzWFhTViswOWxKazl3aXNrUTAxT3lqSE0zRHY0Q2NFYzZVVDRINTVuM2h1RmFIeEZRMnBGTzJXaHp1RkpDbVVCM1RsdnFqckxVNFJ6QVA3czVxWk1NZ1AwKy9UUGJacmV2ZFJ3MzhEcGV1Nlh0dUJIczJENnIwK2RaZk50Sy96enM3MUZ0MVhQU2I5UmxPaThRZC9SYVpmZllmRjJ1VXV1WVozelV2RSt6VE5vQ01qMDJTL0hzcms1N3lBTm9CUHk1bmFXS0FZZEFSTjFXL2NmY0U1RC9mejRKcE5zaEtkRVorZEJ1YTN1TElkb2MwWFZuWUJRMEpGbjNaSjNLWjA5NXU4Qkx2cXdlSXI0aUhpOW9tOG5FYnlaVEozek1OaVY4VzBOZzdFWlhkRWFNelp6M3dOb0tqSzVvYk1GSm1OYitQK0FTcDVjMHAwM01GSVVXay9mb2o2MjExWEc0SVFHUU1USHhWR25nMjRlOWZXVmNqOFBFQnRwbEZCaW9hT1U4Zmo5aGtuTUZhNHJOeStoeWhkMTJjWnpTRkJra0VCN290STZZdWcyMGw2MVYzU1lDUG4xTTFZMG5ldXhtNDRraXZpZndvbkQxM2NOcnRQZ2RDYnJqcXQ0T2NWYjZNRXRmdll6em5xNnp4eXBIVUtqMW5lY2dDZXhLa0gvYjBkUUJHZFpKWWUxNFRJK1hlREIzRDg0WFI4NFNMVlRFZEFBT3lFamx4NElEY2Ezc2M5ekZzbitUSmNNM2RTSENWZ2Ewejh1U1FHN3NTSVIvekNmSEhUbWtDY0M1Q2p6ZXdZZmdGNFVrR3ZBM2JlSElqZkE2d2hoOFVSMXVCcjIwUUxJMWdLVXpYKzFydHUzTStsN0FvNTFyeHIyWDRSQ2JvMWFSa2JYeHE2Und0eDNmaEMxWmpyYnNOdDA2bXJUWkpoMHV4eCtFaEg4RklJSUNiOGU2R01rNEpZb3hPeGtITUhVYjRyUnJhY3ZHckJoNlBXakRnbjBUREVqOGhZWVg2Yk1KV3JNWUMzTDE4R0pwREljQlliZC9NNkRPZkkvYlFWcE9ZZ05RU0hZVjd3ZVozMjFkZGErVFJuZWtLcHdqTy9kMU9FWWt2bzREZGhqK0djRTBucnV5dUdjMkZvRFNzckU3OVpxbFdPV2N3dkR1bk9ZNE15dXpnL0dCYXdyaTQ5em1NNGhrbEYvaG5vYlVtSVVzSHdQZ3pDelRTaGlDQmRHLzBFaFFITlRWdVRaQ25MYVBWZXY2dVhRN1p2Nk1lVisyemZJU29oZHJZVnQzSUlLbGFyQktRT2pGN2pkc2UvSkpIL2t4OStuamNkemN0b0tGMVRlU2J3R1Vsc2lBRkFyOG1DT2Jwb1k3dEFjb0VDNlA0bkE2aHVVTXAxUlNaQXUxL1pWTXZHY3k3ZW5yZDlhVk9lbmwrUS9RUWg3dHBIczYzaFk1WWRmczNPZS9aYk1pVW1TZ1dDNEQvTXZSbWppSFg2RDMzNGtyNlZKTVhyWlNMRmdLMWlzaXM3a0RqNDA3T2t3aE9CaXVRSHZDeWVNNW9VTHNhbkhhWWd1ZEZ2QnQzUUo3S2tWdlR0aVMrRmwyczY1ZG0wMDF3UmpQNUhtZHZNdWwzcE1iZzBBNTNXN0FPRHFJWTlvTEVneldMSHZjc2pLNk16QUE4Ym84cldHaVhzVmhQZ2tFYmwwd0dJR2ZldTM5QSt0SDUyMWlEcjVwODJNcGdoRWJwTzFTYmJhUGFnSXVQcEhuTktYY25QLytBdmRaVVpPUTJRNTlGSGFoM0V1MzdieVFWTGNRMEs0SkdOeGZZNnNReVBjNHhYOGJYU1U3TmdCNUI4ZFEyQnpDbDE5WDNjd29QdEVDQjE4K1FVMjNTWmIzUWw4dytzV3VKMjluSGF3VG1DcytvVGtZMzk2WmFuK2VrUmhkcTEzOWF4Z3lmUzN5UDJWTWQ3b3YwVlpsMjUyNlpnc05FcThZdjZmZGFUazN4dk9Gd3EvQkhxWUU3Ri9SbWhTbk85OUdmZmNKbjF4bzl3ZU4rRHl5Qld6czNNdHpwc2lYbm1pUnFaMGsyUmR5dE42L0pJTnQ0UG5uOUtyckgrT3JUS0RDR1ROY1o3RzVEaWMwL0dYenRPYzFGQ3YxK002MkpnWlB3UVo4VHRSeElqUU9NYldyQkFzNllNUGZWL0swWVE3U1o5UTFzejBRNHJVMTNwYk9Jay93WFNFUUsycHJFdHVLeW1wRTBhekxtY2VtaW02TXFIUFFVU3hXODhYcllhdTFOZEdPdTU0ek1vQjJzOEFzVnJIYkdHeGcvL2hJNHdNMlgvekViZ1dLZHVielduSUwvd3c0clhMR0w3L0FzQWFZRlpwaG84YXRNTllEWlhHMlJsRVFQbEJMdXh5MVpXOHlaSHBiWFZ4US9TQmN5cGEvcy8rc2lpMHNFK1Z6cUluaXNrOVN6V0J4YzJnNE9qNDMwSzh0eStudEdKeVc3ejdPdUxUekZsS0NKUGRqZHJHWThqMEVGa3A0VzhnVzdTMHZkalZhN3ZhT0s1WnNsNS9sbHVaYkxWcEhzT3B2c3VGdGRHSGdZdkNkR3ZjWm5aZFRuSXlRNjNJOVR3Sk5ZQWluL1pPNk94bGQwVU5VTVIwYTR1a1ZSdHFHRXdhaHFvZ2J6Z1FENUtEdzRXd3g0SktqVkR3bTVESzAvMWl0Q1RNMWh1ZjhWNHdHckFUcVlEN0U2Z04rMnFrZ0huNnc5bTVOUDJER0huVlBJempMT1Y5R2N3VmF4YzRzWHVqTVZpeUNZWFNXbDEvT202MU9sd3ptTVQzSVkySnRicTRNamlwWWFSczdXN3lTSmN3V2UzZ1NUN2RkeHE2Wnp3SkI1Nzg3MkRlbHoyS1U3cUJvVzVSOXdBWVE4WkFKamJyenZMN0w3cDdITWo5ci9lMVl6YzV0QmtMd0FqZHd4RzVlNEtUZGNmZm5EQlI3MjdOczEra2tnS2xsRnRTb0g1TG9kSGVZUFU0ME9lcjZYbzdkNG9HcUk1UU02emxWeGxaT0FGV1Foajl2cWc2akFzS01BWjVCQ0s4Y3ExV2p4OHJaTGZJdHAvS2lBT09NZER6YW5mcDYwalRnbUFxUW96alV5cWJGS0RjbzQ0VGpyN2dkTlpSQWpzYWg4Q0dhTlJ2MzdQVzMwdmFjS3VBRXlSSzVQZThlSGd2UERYTy80YlI0bm5rV0YwaU1hK05ieTRCMHoxMnRyTm0ybnpza0paaitCM0k1dTk2aFA5aU1kaVl1QThHclUwT0FBVHJxV2ZCcjRjbkcrZmM2UlgrYWZGYmx6QUZ3aERsNjVVU284Zm9zemFsYzFlbkhqNTJjRS92blJ2Q0NrSnJQU2FMZENiMjJ3L01Hd2VnaDdCZFcvc3lGRllxWkpXdmwxcnc2dE43REVTQWFxS2I5cEkrVHR1TzRUa2xqUGlOdGVYVUhFUlM3a3M0RzhNcjl6SVhVVE85VHkrR0V0MkszK1BLNEJZQklldkZ2MElQTGVwZDU2dGlzcGtBRnN4bDJHM2lUNGNWMHlwMUJ5S2MxcmhlYkdCOXIyRUcraUFZd3J0NW5jUDNGYXRnNmNzVFplcTBqMEZiTW1pZHF2L1RKZzVmL2paMCtFWXBkQnliQzNwdS82Y0FGTk1oT3JuQW9POThZOVVGcDU2K3QrKzNoc3gzODN5NTUzTVcvL0JUN2Z2MVRxSjczRGhXYzhadGZZckZyLy9kTDVwOVgvdHZQOFBRT3g1N3JPbTJUKzBhZHNSdFNhdERGdWoxbUFTY2QyK256WDh0SjFyRmdYdS84cGpQTzRIWkduYk9qMmpodmVQMXpYWDd2S0VQOVBlLy83UG11ZjMzQWZ6eGZCQXkxVlJ5bSs4QVQrMnRhYmp2SXltcmhRMXl6aFdUM2hIZ0hlKzh2Si9hbDkwK2IxOUVXREdob1dIL2tlK1V6Z2p3QWRvS1JHbmI5SElqenJDK2ZTanFMYUNOUTlKa1hacVpGQi9zdW85Vm5Ndmo0NEVleHZ0bm9mTFVrc1owT2lnZU54Rm5EUkR5MkIzNjZmS0w2RnVOL09NaHpSb1V6MVZ5YU5OZzdRTy9lVHA1ajllMVhyTGFpbndwcGlFVURuajhOV2pyMGZjMTRDY3YzWGF2Vlg1djA5MXRJQ2E3elVESXdkd3RPUUFnVGtRZC9ZV3FEWFp2WWs5Y1JCbVU3Ui9nSTZjMGFtV3Q1REV6djRUU3p3Q3Fpc3RZYkJ0Ti9Ob0VOY1VYVnZ3V25yR0VmdjM0N0ZOUVJjSjQwOGE1d2RZODYrdXhmOEFYT21GdkxWbmZ3K0ozdDZ6Nk92SE0yY1hWMkpaWUVZTHVhQ25lT0g5aW5GaVZmbHFQYVRIeE9mTE4xSU5qQ2J3SUVQYmYwZnZ4NjUrQjJtQ3Nza29YUnhlcFE0KzFHdzlLUksvdjd2OXVoSXlmYnlzOVpCV2pmb3FNWnJDMndXVDJmVXlhSDFYVk8vLzh6YXVXY0paWnhwZTB0OGJJWXhrazUzUW01TmlUb3pWNGpNN2dBOGU5WDg2L3lvUUFxTXErRGV3TDBKUHNFdUFOYytuR3c5OFVLZUpsdDdRRTNQNE94c3pkK2s0ZXN4TjRobUNGM1l6cmRvc2o4Y1p2eFdGenVYSWJqeDVEMHF6dkdjejhuaUtIdnJUYm1aTFBpYk13Wk1tcXpUZ2Rhb25RQlJ1bm8zZjQ2WGRKdW1uRG5DY1Z0VHF0K3pWREpIZU1haGp5QmRmYW1PRWpRR0M4S2dWbSsyN2JjYWxxQ09VNWVFRGZhOFJQR3doY28rS3IxeklhWVFxVG1DSU8yeHVOSktmSUttNVF4SXUxZEh0amxxVkZHMEl5L0EvS2NNeFZDZGd5RXNSR1dZWTFpQXl0SzQ4UUE1NDJiQzdZTFlOdEo2SW1ZemRQV0tqaW1DMTBkaXJlc0szRGUza25Jd1duWm1OZFl6YXRCeHNGQkdCMTlaUWUzalh6T0ZzV0ZoWFBnbUFIV1J6RGtsT3BxLzQ1VEJWN0lTZ2NlNHpsWE94cnlaL1N1cDJ2QWR4T0FFTjRJYnVGQy9PY2NEUWRjUEwybWF1TnBIcFpRWVFYcVBuWCtzTmd6NldlOURqVEJ2TDRPRUpsUS9XV0I5N1pIUERudTFRbW1BOUtQNlFBQ2R0WURhY0pwclFlcGdFSmc5QUtJSlRzWFpNOEhON2xnSlU5ZTZEWTR5NVkrYkxUSFVEUlBXektHSEhqR3gzSnBRZloyd0Jpa0pqdEVibjNPemJiSDdBN2I0SlBSRmRUVzdybGx6WnFKdzVGc3REdmI5OERaUEJPdzVXankzOU5WMkRVNzNMZW54bGh3NGlHc096bnpGdkF5RUIzbnpOZ0RjM3VjWEMvL01ndmJ3cVl5L3ZUVHJyK1pzNXovL3ExLy9jNFptbW5hMElIWXcrRjRTOVNRem5sc0ZqSlZxRGtneTU0OUozNGoxL0VjMVZOdFFSdW5yZ1loVHNueDBKYmNJQWpiM3JMVkZwN2Y4ZXpEYWNUMWdqMEQ4bkowSU1ZcGJiSkw1VDBaaVBramR1Q2svKzdyRzNRS0NhczlOb2Nwc0pvNVFKNnFjMlphc01FNnozTjQwV3RJTldHN25qNGQ2M3BtVE5zMGRRcElteFgvQUc4ZStZa1hGc3l3OFRZMWZsc045ajk4cG1LZmZCd0RtcldPcTBxMVNxOGZFSmVlRnhLQVpRNnZoWXlmQjl2QkFaYjcxb0tWQWw4emNPdEpUWFo1UEU0WnhvUlg2eUtBMG0xRDBXMHlkNmJTaVNMWFgyVFlzMjRNVW5pNG5tTWg0NWxZZ3BOMHJ2Q0p1K1Z3cllWN21WYm9POW9SOFppdjRZUHFxQmN3Tjl0NG5qLy82YS8vRFFhM21lc2M5MlVtNk1oTHZJNjRIR0ZoMWY0cFNQSGZ2aTU5M2JxcWZCRC9hMEdEVll0V21zQUVlcnlLM1NnQTh3cTczc1hJMkZxZUJ3QnlIQTcvZENZemJNMDVkbllreE5xQ25pT1krUmVkUDVLaENJVzROZHJzV0xJWWY4azFrM05qMlYvRGljTW12QS9XMEkyS25LbXJ3VnJuNHJGY0ZsSTRJZVdrMWEvL05xL3VtWGIyWWV1NFVZY3prQW9HNGxRVXlQUDBFS1VCV2hTTTQ4UHlKZkMrblV4Z0JiZlJRS2VncmVuOFM2T1pnODEzcUxlVkx2czljNnN0MDlKYWFFL0RtOUY5UXdZWE1LTURUQ1FRY0xKdUlIS2hoUG11VGxWL25DTnVCMkg5bkwvRXowaEwwam5BemtIb0EvNTlnNGJnSW13aE8zWG5BdXBvNW4wL1IxNkJOWndVTmswR2RTbmU2N3dMUkpBMTNBWnJzRWlHcnozaVlJQXNjNGNjODNPbUwvczlTbUczcG1jdW5CcG0yTFZJQmF2bHFaaUlQSTZTSGZIY1NLZytUc3ltclZHSHVZam53b0FCY1l6ZExOU2dUVXc4cmcvbytTNEw4WjdIdHVuaTNOeHNPKzNub0JnYjd5d1pibmZCVEJlanAvQitUS2FuQVZUcmhMTjFFL0djM2dPZ3ZIZkZjSDlHSEVCaVdGV0xXSVlENDdkRE1MbjE2N2xOc0U3ZUJGMnp2QitIZXRjS0JuRzBlUDg4eEk3bk5HY1RuMmRZWi9mbnlDdVB3b0hTL3M3SWFyZ293K1hoSEp5RXE3SC8rM01NdHVld05tZTA0QzdSWUtSb2ZSVWJ3U1dkVStRWXpISnlMYTloeUF6QkJlMTRFa091bDNQSFc3V1h3bmx0ck84SHRrYWVuWWtsbFB0ekdpT2dFUTd4MDd4UExPM1FobmVkempsWTUwVDdiNFBtT3g2bGdmLzliMzdVb0hZOThZVHFKSlhpYVdmQlRuZFcxTUM0VSs2c25KYm1lOUFkZ3Y3OEFOV050Sm5nRzhsTUNWemRtd0h0SEFFenpsR1JxNkRZb0RHbkREZjcweE13cVlLUW5EWDdIQ0x0eU5LN2ZkWFRPejA1OWN4M1FmcnJjRHlEZHJMQUxJRDdEbEQ1S3J1bXhKeUlpWlRIczE4OFpRL2s3YUc0dytIK3dTRkw4VDdCbHBvZHZnZUtWNTVQZHZCclRxcXpXMHhvNFBTNjRjUkZEMGV0UUtLNlBDUFM4U3hkc3V5cjhrOUFoVlUvejMwYUFUeWYwN3A0YkVudjdUcUpGOUNsZzJhVmllaWg1WkM5UitvdkI3REJBb2RRN0hBby9WUWEyMEpsMVE4bTBIR0pTTjFiQUtOcm56TW5vR0JCL1p1Ty9Cb3ZiQnNEYWsyZFo1M1lsb3ZpUEFHaTFQM0JkZWJWb2pPZXc0YkphNWZwL2pySzQwUUtYTXp6TEQzZEVna0oydTNhVC9ZemRyUGxZR2d3RkovSmY1MTNXcitUKzIrWGRZSDNPZHJIQks1UlRNdTFxb25pWUR0TFlWMkFOcERJSTJKL0JBeGt6RlliY3dkbDJpQ1lFY2hUc1c4OThmQW93SGxLWmw2bkhqaFFFMlZ6aXA1OXlSQ2RmV3V0djJqRjdqNk5uTk9CZFpDdmpvWHN2NGtoeTlFUDZWK1Z3b2cvTUJiejI2b0htb0phV2NFRG5XMTVsWDBYNXp4N0NvTVRiMDZ4Mll1dUJ5VVZNMncweFZOdVlyQUZyVnJwNDZrdGtBZnJHZi8yaWtlSGpnWmQ5emxDcHRXRDZJc1RLb0taaXZ2YnhUa1ljWGhnQVlUVUh1dlg4ZGU1ZUE0Wmh0VVUrdHhXaUdEQjM4dVdCQ2R3Mld0NzZ2L3pMMGJDNHRaUWYyWHAzNS8zenZpUCtEcGtPR0liWXJubFpmMTBIcS9MZzJYUVZDZlFUSDRZeEZxc1Q0Mi9uaFljMWZyZlhmcmtyWUtEMDY4bCtMWnRBUmlNT0ZyZGhqbVl4NDk1Mk5BNTZRNi9GZlJYNW91dHpFUHpEVnhDQVlQdE9pYkFMMzJDZ1NlRGpZNmJEeDRQZ0dMQ2NzN1p3STdBZkR6cEdMVjUwMWgydUtmYndmYnY4YTNnVzZoV0hGYzk3V2FtZE9YeVJWeGN6UzNvZjdjVkVjT2h3Q2ExQzQ3S2s1QTlabU1iZ0JxZVZYc0x1a3l3T0hJWExDbjdpNmJjUHFjdEd0TXNRVXAwVGlscUo2ZDVvMzJtSXg4blY1YUQ1aEgrYUlOem1QUDZwU29GYXNIMHROT2YwMkQ5bHFOM25kRWI0enJUbWMyc3RUT1l6VURmNDRtb3poN3BKeTN6b212ak50MWpxV0p4aXFPbE0veVk4MU1xSy9VQXBSMm1XVytQdXdSSEZEdGNBQmt0Z2ZkZTV5SzNQL05xZVVpWThNblF6TlNkQzJTZStINHdBTHVlU1BHTXU4YmtNYjdaREJlT3VucWVGTXpRTXQxNENtRytDd2RXSCtjQ3ZtVTFzQTk0Mm41YnozNTF2TUE2WTF3ODBleHhMay8rZFZNOGY4N1Z3c0J0VDY0QmRGMVdUTnVRNy9HQXJMT1QvZmM1SE9aOHRCNjNQSm9ub0p3SVRzQzdyNG9yaTU1NitwMVJxeDdNbU9EOVZyRkFRSjBYamJleWlMLzhUUzA5Ly91RkJNZm1hUXBPZFRRRVpxT0RTZnVURVR4RFVDOU1qR2JaZVFmSXlHMEZuUU9tSEhhMFR6cXQ1Tjg1UHRaZEZhZXMyMEg0bi9wLzZVS2RvL0NkdlAzZks4M2ZadkFXUkhMYUJUM2w3VTM0eFZvZFRGQTgzdkp6T1BuNzRnKzNaL253bzlwS2VJaGQzazZVQ3c1OXkwaVEyNDM4VktNcjAyTlZzSDhuVHZTZTA3V2hDajFZRGNvbnJuaHFUWkRrVTNuVG5aNTRzeUxvd0x6UElRT2oyVzZKRUU4bktOcDhiM0d5SWJieU9Ea1poZ0RvU0pjTkx0YVBXVG0yaHZQaGtzZmtnYUVmaDhNSEo1YS9uZ3I2Mmd6ZG5PMnBMM0w2cVJXWW5yV0J2RUhYMzlmanc4VHhqL044K1Jtbk8rQ0lkYVpXN0s3b3NNOXUvUTRPK3daMk8zcjhPY1Z5ZUFCMmFEcE00RG9oRkFDNStHVTYyZ0ZnNWJBZ2c5UFJVOEtEeHhFNS9NekRUNnl0aE94Nzh0M3lhRGxJaEFLUzhQMC8wb0tjTjFOaWdHWkQxMkU2cmNhSjJxK05EaW44OHRIMmJpZlU4UFdjS1N1dGNlWEpRdWRRN3N0Y2RRd1oxbStlZHppdVl0M0NRanZSRGV1Yks1SXh6eE9UdzMyV09UQWxveDhrMGV1SUtET28xck1Ta1dYZFRJRkkyS2xSREpuK0NpdzFUTTZlM3RGRGZLM3g3UmFFYnVNTDJHSGtkVHYwc1RuWjY4OWswN25QSVhNZTBwREZhR3hyR3lmVmhLa2YyOWxtRW1qUFMweW1mOHpqLzg0N0F1cjlacks4QzFPQmVTMmUrUHhyZ2JRbXBKNGhua1hHNlFHTjFWbmlGaVpoNHExbWZteDF4S2ZiakhRNldLWm52enpid1ZPNGpUZWVmQjJ2M2U5d3N1YU9uclJvekJTVnc1ejVUQTdBaHZyMWc5YnZEeVhEdFhtMldKYVlwdGtTQW96bU90SGZFNmxONFFHbHpwRkdOcFFBOHl3TEhSNjEzaDJpM0o1cXM0SDlXTTZybFdBODV0M1J5eGgyUUdNTW5qMm1EeDNRVUIyY1d5eWVsdVp0TEhnemNlRXVPNURXSkNPc3RsMW53aXcyMi9PL3krZTVndmFOVEpkbHRHTTVrY1BuOUkwNkNPSjJCb09EWWhUTlpGdnJPUXNsTFk5eWFpZjV4MjRhWGJIeHFXbmVUdnJPWkp3elJ0WFk3V25BVmt4Z0V1SDEvdGpkalZMakE2dERGSk1CYnE5L2gyTWhEcEhTWEVIZWx0bjltTTVSV3g3QXhMN1pHOHU3MnJpaHF6WWN1YkgybDlVZXJ6bnpjelM5REdlbk03YXBXZk53Q2xkVzV6WGY5M1I4WTVGd21kbkdHNk9BbnZzVHo3SGZGK1ROZ2pWTFM1cjhJdU81N3p3OGRDSmo2UlpiWUNWRkVoMDYrUTAzalgzVElYZ3YrWkJkcDlhd3Z4N2VpZzJ3RU1hS0pydzZUMlgwZEZwMyttWHJZVDh1Q01IQ3VaZmxvUjNZeDlJTlpUM3VnTW5UeTAxWVo5Nzk0TW51NVpFWUNJQnpSb1NrRm0rSm9MZkYzR2RtMWhsbzdSQ3d1czhCMzFhN2xQWmRBUy9aN00wS1R0d2Q5em5zT1ZuVHREekJRalY5ekN1YkVuUzRQUGFlYjJlSHdsYjcxN09uRmZlK0w5dWpIVCtGM21WUDMrck9CdkRjUC90WHduTU9WUExRR0E5eHFpYmcyRi9KWnZmSWVnK3R3YXpwZjY1ekxDckk1ZnIvQXBZVHFBOGFKZXJZQUFBQmcybERRMUJKUTBNZ2NISnZabWxzWlFBQWVKeDlrVDFJdzBBY3hWOVRwYUlWQlR1SU9HU29UaFpFUlJ5MUNrV29FR3FGVmgxTUx2MkNKZzFKaW91ajRGcHc4R094NnVEaXJLdURxeUFJZm9BNE9Ub3B1a2lKLzBzS0xXSThPTzdIdTN1UHUzZUFVQzh6emVvWUJ6VGRObE9KdUpqSnJvcWhWNFFnb0I4OUNNak1NdVlrS1FuZjhYV1BBRi92WWp6TC85eWZvMWZOV1F3SWlNU3p6REJ0NGczaTZVM2I0THhQSEdGRldTVStKeDR6NllMRWoxeFhQSDdqWEhCWjRKa1JNNTJhSjQ0UWk0VTJWdHFZRlUyTmVJbzRxbW82NVFzWmoxWE9XNXkxY3BVMTc4bGZHTTdwSzh0Y3B6bU1CQmF4QkFraUZGUlJRaGsyWXJUcXBGaEkwWDdjeHovaytpVnlLZVFxZ1pGakFSVm9rRjAvK0IvODd0YktUMDU0U2VFNDBQbmlPQjhqUUdnWGFOUWM1L3ZZY1JvblFQQVp1TkpiL2tvZG1Qa2t2ZGJTb2tkQTN6WndjZDNTbEQzZ2NnY1lmREprVTNhbElFMGhud2ZleitpYnNzREFMZEM5NXZYVzNNZnBBNUNtcnBJM3dNRWhNRnFnN0hXZmQzZTE5L2J2bVdaL1A4YTdjbUx3MFh4dkFBQUFCbUpMUjBRQS93RC9BUCtndmFlVEFBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFBQjNSSlRVVUg1QWNDRUNRU1IxL1VNUUFBSUFCSlJFRlVlTnJzWFdkNEZGWGJ2cy9NMW5UU0V3SkpxRUtvU3ErQ1NGRXNLS0orb29DZ2lJclN1d2d2dlNnZFFTa1dSSDFGUklvRkMvS0NnQ0NDUWlDMGtKQzJ1OGx1eXZhZGNyNGZPek5zR29ZU2l1eHpYWE50c2p1N00zUG1uSHVlZWorRVVvcTdWZjc4ODArTUdERUNmLy85TjhMRHc5R3paMC9FeHNiaXE2Kyt3dG16WndFQUd6ZHV4T3paczVHYm00dEhIMzBVTE1zaUpDUUVhOWFzQVFEczNic1hJMGVPeE9uVHA1R1ltSWhHalJyaHQ5OSt3OWl4WTJHejJiQjU4MllVRmhiaTBVY2ZoZHZ0aHNQaHdOR2pSMkV5bVFBQW9hR2hTRTVPaGlpSzRIa2VnaUFvcjRJZ1FCUkYzNytKS0lydzNTaWw4aXVobEVMZUFKQ3lyd0JBS1NYUzVTdXZaZDRqNTg2ZGk0bUlpSWpUYXJVeExNdkdNQXdUeFRCTUJDRWtIRUFOQUNHRWtCQUFnUUFDQU9nQmFLU05CY0JJdnljQ0VBQjRwTTBKd0FIQVRpa3RBVkJDS1MyaWxGb29wV1pCRUFvNGpqTzZYQzVUWGw1ZVh2UG16VTNTNzFDZnJkei9oSkN5bjhudkFRQWxoSlI3OWRrb3d6QWdoSUJobUxJYlpWa1dMTXVDWVJqSWY2dFVLdVZWM3RScU5kUnFOVFFhRFRRYURiUmFMYlJhTGZSNlBmUjZQUUlEQXhFVUZJVGc0R0NFaFlXaFJvMGFpSXlNUkhSME5PTGo0M0g0OEdIVXJYOFAvSEpqaE56TndIWTk0dkY0a0p1YkM0UEJnSUtDQWxnc0ZoUVZGYUdrcEFRMm13MTJ1eDBPaHdNdWx3c3Vsd3R1dHhzZWp3Y2Vqd2NjeDRIak9QQThYMnFUQWN4M0UwV1J5QUJYQnN4S0FabjhmeGtBS3dWWXZ2OXYyN2F0Z1Y2dnI4ZXliRjJHWWVvQVNDS0VKQUpJQktDN1RZYlpCZUFTcFRTVFVwb2hpdUpGanVQU3JWYnJoUUVEQnB5WHdjMEgyQ29EdkhJQVNBaWgwbmhSRUhKNVlBZ3BCWHkrSU9jTGVtWEJ6aGYwZk1GT3A5ZERwOVVpTkRRVU1URXhDc0NGaElRZ0xDd000ZUhoaUl5TVJFWkdCdHEyN3dTMVd1MWZYSDVndTNZWk9YSWtWcTVjZVZ1ZFUzUjB0RmZOcVFETVpLMU1CamI1M3NtYW1pOTQrZjYvYi8vQjZKalkyS1pxdGJvcHd6QXBoSkFVQUkwQWFPL3dXK2dHY0ZvVXhWT0NJSnh5dVp5cDZSZlNVeC9wMjZkQTBoUjlRVTBzQTRDZ2xDci9YMEdqbzRSaHdCQUdERVBBTURLWU1aUmgyQXBCalZXeFVLblVVS3RVVUtuVjBLalZFaGdTcURVYTFFcElRRUJBQUFJREF4RWNISXlRa0JEVXFGRURPVGs1YU5xc0pRUkJRRXhNakIrWi9NQjI4OFJvTkNJM054Y21rd2tGQlFVb0xDeEVjWEV4ckZZcmJEWWJIQTRIbkU2bm9xV1YxZEQrUVVzanN0bFpCdEI4TmJOUzJsaFpVSHU0N3lQczRuZVd0TmJwZEswWWhybVBFSEl2Z0FaMzJXMDZKNHJpbjdrNVdjYzBHdldmWThlTStYUHYzcjJpRDlpSmxRQ2VaTVlTU2dnb1FFQklaU0RIZ0dFWnNBd0RobUZwS1lCVHNWQ3hsN1UybFd5aXF0VVFSUkhCd1VHSWlJaUFYcTlIUUVDQVlwNGFqVWJVYjNBUGFrZ2FYR3hNTENLam92eUx6ZzlzMVNmRnhjWEl5Y21Cd1dCQWZuNStoV2FuMCttRTArbUUyKzFXekU2TzQrRHhlTUR6ZkNsUTgvR2pFVjgvV2dXYUdhbkFYNlpvWm1QSGptVWZlK3p4VHVHUlVlMkRnb0k3RUVMYUF3ankzekhBYnJmQldsS01WdmZkYTZPVUh1SjUvcERWYWozODZxdXZIdnJpaXk5NFFraFpvQk1yTW0zTGFIRzBsRitPVWNBTkxNdUFZYjBncDJKWnNMN2dKZ0Vjd3pCZ2lGY3pMK3QvTTV2TnFGVTdDYUdob1Y0VE5TSUMwZEhSaUl1TFEzQndpUCtHK29IdHhnbkhjY2pLeWlxbHBSVVZGU2xhV2xYOGFHVzFORms3OHcwT3lKcVpiR2I2YUdTK3ZqSkNLV1VzRmt2am9LQ2crMW1XN1FLUXJrZU9IQW1OVDZqdHYxa1ZTRzdPSmJScDNicmNjK3JRNzRmM1JVWEg3aThveU4vZnZtM3JOQW5VS3RMcXhFcEE3cklteHpDVUlUNGFITXVDbGJXNGN0cWJDcUlnSWpJeVFna3c2SFE2NkhRNkZCVVZJUzZ1SmdLREFoRWNISUxRMEZCRmU0dUppVVZ3VUJDeXN6Smh0OXNxdmQ3QXdDQWtKZGRGU0dqb0xSdnprdUppWkZ5OGNNdlBVM1czVFhaS0tRd0dBMHdtRTNoQmdNMXFyWEEvaThVQ2s4bFVTanV6MisyS2R1WUxaUDhBWWhWR05XV0h2MlQvZ1BqNHg4cUNtY1BoNktiUmFIb3dETk1EUUZQZjgzUTZIWDRFcTBTY2pnckhKdFR0Y3ZiVmFyVjlhOVpNd0tYc3ZKTTh6LzlpczlsK2JaclNhRDhoRUh5QmpsSmFUcU9UL0hNQUlaU0lJa1JDd0lnTUJNSlFoaEhBc2d4aEdCWXN6MUtlNWFGU1NSb2NwNElnOExEWnROQm9OSXAyNzNLNVVGSlNBcTFPRDZmTHEvazdITjY1WnJOYVVWSlNnaUpMQVFJREF4RVdGblpGTFRYajRnVTBhM0h2TFJ2emkrbm40WERZLzFHYnJ1N3pWTjF0b0hiczJER0FNQWdNQ2taZ1lCQmlZa3Z2NDNBNGtKT1REYmVIQjhlTDRBUVJna2doVWlpdkZLVDBSbEZtbzZBVUVDbUZLRklpS3BGTDcxYld4S1NVRWlxWm1jUWJybU9jVG1jZmpVYlRoeERTQjBETmE3M21IM2YvZ0kwYjFzTmtNaUkrUGg0ZmIvb001ODZkeGRBaGc1UjlKazJaaG9jZWV2aHV4YjhtS3BXcVNWaFkyQnRaT1hrNWdpRDhZTGZiZjBwcDFPQW55VndWS2dVNVNpa0ZvZDRBS3dVaElrU1JRQkI4QUk1bHdmTXNXQlZQVmJ3S29pakE0WENBNHppbzFXckZYV0czMjZFcExsYUFUblp0T0J4MjJPdzJGSmlNQ0EwTmhjMW1RMlJrSkhRNlhhV2djU3ZsbjBEdFpwM25YUVZzQm9NQklBeWlZK0lxTmwxeWM1R1htd3RUdmdsbXN4bEZoWVdLSDgzaHNNTXBtNTF1Tnp4dU56eWNCNXhIMHRaNEh4OGFMMEFRZU1uY0ZDR0tzc2xKQ2FVaUtBVUJLTGxzY25yLy8rMjNBOTBURTJzL0doOGYzL2Q2d016M2VoYk1uNHVacythZ2RlczJLQ2twQVFEVXExY2ZQLzc4S3dEZ3BhR0RxMjI4TjZ4Zmg4Y2U3NGVJaUloeTU3VnN5VHM0Y2VKdmFEUWE5SGl3RjBhOCtocFlsZ1VBWkdkblk4V3lKVGh4OGdTMFdpMTY5dXlGbDRlUFVENnZEcEdPV2ZQRXlSTXZhclhhRjZkTW5aWXpkTmpMMzludDl1K2FOV20wWHdJNG9ZelpXbGFMazRJUElrU1JnU2dTeWdnQ0JJWUZLekJFWUhtSW9raWRUbWM1WUhNNEhGQ3JOVjVYaGpTLzNHNDNuRTRYSEE0bkNpMEZFdEE1WUxmYkVSRVJnY2pJU0w5YTdnYzJ3R1RLUjJCUWNMbjNiVFlic3JPenZEbHArZm13RkZwUVhDVDcwUzVITzkwdUY5d2VOenh1anhmVU9BNDh4NEZUQUkwSEx3Y0VGRkFUSlRDVEUyaTlJQ2FibWFkT24yMFNFQmpZajJHWXgrMTJXK1A4L0h6RXg4ZmZrT3M5azNZYWtaR1I2Tml4RXdBb0M0RVFBcTFXcS94ZFhmTGh4dlhvM0tWTE9XQ2I4ZlkwTkduU0ZQK1pQUmZGUlVVWU0vcE4xRXlvaVg3OW5vUW9pcGcwWVJ5NmRYOEFzK2JNZzhsb3hMaXhveEFWRlkzK1R3Mm9sdk9zNUpnMW82S2loL1YvYXNDd3JCekQ2YzRkMiszNHoreTUzNzR3OFA5T0FSQWs3VTBneEt1WVg5YmtLS1dVVUVJRVNpa2hvaWhTUWtRSUFrTloxdXVPY0xsY1VLbFVWQTRxcWRWcXVGd3VxTlIyeWFYaDlkTzZQUjdKWEhXaHVLaFEwZVpjTGhjY0RnY2NEZ2Vpb3FLZzErdXY2YnEvMnZJbDNsdTlFai85c2hjQThNckx3MkN4V0VxNVl5Wk5ub0llRC9ZRUFKdytmUXE3ZHU1QTgrWXQ4R0RQWHRXK1hoZk1uNHR2ZCsxVTV1anJJOTlFLzZjR0lEMDlIVXZlWFl5UzRpSUVoNFJpNHFUSnFGWEw2MmMrZU9BM3JGbXordTRDTmw3Z0VSZ1lWRVo3eUVGdVRpNk1SaVBNWm04S2gxZExzMTcycDhuUlRvL2tVL1BJL2pRdnFBazhENTczRFFnSXZta2FwSFJBQU14SEgzK2k2OXlsNjFNc3kvWW5oUFR5ZGFyYVNvcXUrenFQSHorR0dkT25LWnJBNDQ5NnpjeCtUL1RIb01GRHF2UWJodzRld01vVnkyRXc1Q0V4TVFsanhvNUhTcE1teXVkN2Y5MkREUnZXSWQ5a1FreHNMSVlQSDRGMjdUc0FBRWErL2lxeUxtVUNBRWEvK1FaVUtoWUpDYld3Y3ZVYWlLS0lybDI3NGVHK2ZhSFZhaEVkRTROV3JWdmo3Smt6eW1LcUVSNk81d1lPaEVhalFVS3RXdWpZcVRQUzBrNVgyN3lvd2pFYkVVSWF4Y2JHVHJpVW5iZmI2WFJzbnpIOXJSMmZmYmJaQ1lDWE5EY1o3QlNRazMxeGhGQlE2alZUS2FYVTdYYUQ1M2tpQlJVb3ovTnd1OTFnV1JWNE5RK092K3l6NWFSZ2xMV2tSQWxNZVR5ZVVnQVhHUmxab2ZZbWlpSVloaW4zTndEazVlWGgyMTA3UysyLzV2MTF5dDl1bHd0REJyK0FqcDA2QXdCV3IxcUo5UFFMY05qdHFGZXYvdFhaK2syYUtJbnNWenJIc3Y5YnpHYTh0K1lETkU1SktmV2RXZjk1RzZOR2pVSHpGaTJ4YStjT0xGKzJGSXNXdnd1WHk0bUZDK1poNWVxMVlPNG1ZUE1ORkRpZFRwdzVjd1puejU3RnhZdnB5TTdPUWw1ZUh2THpUUXJBRlJjWHd5cVpvamE3SFE2N0EwNkgweWRYelEyMzIwM2NiZy94QmhFODRIbU9TRGxwUkJSRlJoUkZobExLVWtyWjFOTm5tMmRjeXA3ZHJmc0RKMVFxMVFlK29PYXJQVjZ2dEdqUkV0dTI3OEtibzhhZ1pzMEViTnUrQzl1Mjc2b3lxRjA0Zng1dlRadUNFYSs5amwzZjdjWlRBNTdHbU5GdndHUTBBZ0F5TXpNd2U5Wk1USnc0QlR1Ly9RR1BQUElZcGs2ZERJZmtyRit4Y2pXMmJkOEZBRml5YkRtMmJkK0ZsYXU5SldnTXcrQzVnYzhqTEt5RzE5bDhNUjBIZnZzTmJkdTJVN1RLRlN0WFE2ZlRLeFA5K0xGamFOYXNlYlhOaTZzNUppR2taMEJBNE1vRmk5N1pYNzlCZ3lscjMxL1hqRktxaFRmaFdRTkFEVkFWcFZRbDMzZDVIa2h6Z25BY1J6eVNOdVp5dVlqTDVTSXlXRG1kVGpnZFRqanNEdGpzZHRoc05saWx3SlhOWmtOeGNURUtDd3RoTnB0aE1wbVFsNWVIckt3c1hMcDBDVzYzV3puUEkwY09ZK3JraWVBNERoYUxCUzhOSFZKS0cxdTBjRDVHdnZGbXBXUHkzWGZmb2xQbkxvbzJPT3lsbDdING5TV29VN2Z1Vlk5dlNFZ0lOQnBOaFordFgvYytObis2Q1FCdzRzVGZlUE9OMThzOWNNcjZ5Ujk5N0hFMGI5RVNBSERQUFkxZ2xnQXpMeThQWVdFMVVMTm16YnN2S3VvMVNZM0l6c3FXbmlMNUtDeTA0TUtGQzlqOXcvZm8xdTBCdUZ4T09GMnV5NmFucEtWbFptWWdyRVlORUVJZzhEemhlYStHNXZHNElRZ0NZVlVxOEJ4SFpKSE56ZDY5Ky9SWis4SDZaL2Y5Yis5VEgyN2NBSTdqVUxkZVBVeWFQRVZaVExlVDdOeTVIVjN2NzZhWXNMMzdQSVR2dnR1RjNidC93TURuWDBCRVJDUTJiUHdZdFdwNzFmOUhIbjBNUzVlOGc2eXNTMmpZc0dyMWpxa25UMkwwcUpGd3VWeTR2MXQzZE9sNmY0WDdyWGx2RmZRQkFYam80YjQzN2ZxcmNreENTSzJJOEloUlFjSEJvekt6Y3JlV2xCUi8xVFNsMFM4QTRhWElxaUJwYllLdkJnZUE4anhQR1lhUjh4ZXBsTmRJR0lZQkw2Z29ML2dtY1h2OXQwNkhvMVErcEt6UmVSUnoxV3VtUmtsSnZhMWF0Y2F2ZTM3QnpCblRrWk9UalNlZmZBcmhFa2hzLzJZYjZ0YXRoMGFOVXlvMXpiZCs5U1VXTG41WGVhOHlZTHBlZWZiL0JtTDBxRGRnTmhkZzMvLytoMWx6NWlxZm1TMW1USjgyQldhTEdXM2F0TVhvTWVPZzFXclJyOStUeWo1ZmZQNFpldmJ1RFFDSWpZMkR4V0pHZW5yNjNhV3hpYUtJOVBRTE9IUG1qS1NsWFVKZVhoNU1KaFBPcEtXQjUzbGN5cnFrVkJMSWVXcE9oeE5PbHhPVVVuamNIdUp4dTB0cGFGTGFCcUdpeUJCQ0dFb3AwKytKSjFVWExsNGFQRzc4aEIrN2RMMS9xOWxzZm1yRjhtVjRkK2t5ZlBMcFoxQ3IxTmo2MVZlM2JaQWxMcTYwbjY5MjdTUVlESGtBZ0tDZ0lCdzkrZ2VHdnp3VXp6MzdOQWEvTUZBWjM2cEtTcE1tMlAzVEhueng1VmJrNWVWaHcvcDE1ZmI1K0tNUDhmdnZoekIzN255b1ZEZm5HVnpWWTFKS1lTbTBJQ2d3Q0F6RFBCRVdWdVBUUzlsNVc5TE9ubisyZWZNV2VrcXBEcGVKQVh3MU9JWlN5Z2lDd1BBOFQzaWVKeHpIRVo3bjVjQUJjYnZjeE9WeWVWTS9IRTRsVjFJT0h2QThyMVFzaElhR1FxL1h3MlF5SVRjM0YxbFpXVWhQdndCS0tZWVBINEUvai80QnJVYXJnTFRSYU1DTzdkOWcyTENYS3IyMjMvYnZRMUp5SGNUR3hsM1hXUGJ1M1J2OSsvZEhmSHc4T25Ub2dQNzkrNk54NDhhbDlna0tDc0lycjd5S0wvLzdCYnAxNzE3cXdUaCsvRVM4OCs1U2JQcjBjNWpOWm55OWRVdXA3Mjc1OHI4b01CZmdxYWVlQmdEbzlYcE1uaklOOCtmTnZuczB0cUtpSXB3L2Z4NnNTZ3RUdmhFV3N6Yy96V3IxbXBwWldaY1FHeGVIM053Y3hNVEVLRTlDUTE0ZU9JNERJUVNVVXNKeEhnQUVITWNSUWVDQjBqV2FaUE5uWHdRdldqaC84SktseXdjUlFwb2VQSGdBOCtZdkJCVkZ2REZxdEdLQ05iem5IdVRsNWQ2V1l4VVRFd05EWGw2cDkzSnlzdEd5cFRmdmFOLy85dUxUVFo5Z3lkTGxTS2hWQ3dEUXBWUDdpclNhY21EbmRybnczWGZmb2srZmg2RFY2UkFYRjRjZVBSN0UvdjM3eWszYUgzZi9nR1VyVnQyMGhOT3JPZWFSSTRlaFVhdlJvR0ZEMyt2dEdCZ1kySEg3em05ZmRydmRuMzM5OVZmL25UQnViQWtoUkpCOGNiSVdwL2ppQkVHZ2xGSXFpaUk0am9NZ2lKUmxSUWlpUUFSQm9JSktnQ0I0UWM4M0o5SnV0ME9qMFVDbjB5bmxXYkwvN2Z5NTh5aklMOENhTmFzdzhQbEJPSHNtRFF2bXo4V2t5Vk94YzhjT1dHMVd2REw4SllCNHlSeUdESG9lYTlaK0FLMlVRdkxGNTUvaDVWZEdYUGQ0ZnYvOTl3Q0FEaDA2SUNNakE3bTU1ZWY3aFFzWE1IL2VIUHhuMWh4czNMQU90Uk9UOFBERGZTRUlBbHEwdkZjeGhYdjI3SVhEdi8rdWZPL1hQYi9neHg5L3dMdExscGVLbHJkcjN3SHQybmU0T3pTMjdPeHNuRHg1RWxsWldjakt1b1M4M0R5WVRKZURCVWFEQVlJZ0lpZ3dDRVdGaFlvZnJTQS9INElnSUNRa2xHaTFPa0lwaFNBSWhCZDRJZ2c4WVNRQndEejVaUC93aTVuWll6dDE3bklvSmpaMmNkcnBVMDJ6c2k0QkFKS1NraEVWSFkzT25ic29pM3ZIam0vUW84ZUR0eTZRSXBrNkFFQWx5aVFaaEI3dSt3ajI3dDJEdzRkL0I4L3orT1dYbjVGNjhnUjY5dks2Qk0xbU13Z0JHSlpGY1hHUjRpT2hZdWtxbHJqNGVCdzZlQkFjeHlGZm9tblNhTFg0NU9PUDhQbm5tOEZ4SElxS0NyRnYzLy9RckZtenk2YndqdTNZOXZWV0xGMitVakdmcXQzOHJ1SXgzVzQzZmo5MEVQUG56Y0h3VjE1RllHQmdSWURlUktmVHpYbjIyZWUrUDM4aFk4VHE5OVpHU1JxY2xsS3FvWlNxZlRVNHlRL0xlTWtQZU1MeEhQRUdEZHpFN1hZVGw4c05INTljS2UzTmJyZkRLaVh4eXI2M3JLeExPSFRvQU9yVXFZdHUzUi9BdE9rem9ORm9ZYkZZTUhUWVMvajhpeTNZK05FbldMTjJIVFFhRFRaKzlJa0NhcWRQbllMYjQ2bFduNmF2SFAzakNDWk5ub3I3dTNYSHUwdFg0RlRxU1ZCS1VWeGNqQmNHL3ArU29uVDgrREVrSlNjcmYzLzA0VWJNWDdDb3d2RUgvdVhwSHBSU25EMTdGcG1abVFyRkVLdFNvNlM0QkZhYkZRNjdIUTZuRTlrNTJRZ0kwRXZPVjRMaTRtSVFoc0RsY2hPMVdnVVA1NEVvQ2dCQWZPaUJHQURraHg5L0NibDBLWFBZZ2YzN2hqRU1VeGNBT25ic2pJTUhEeUl3TUJDZE8zY3RadzdQbVRNTER6elFvMUlmUjNWTDJRVGRCZlBuWXNIOHVYaXdaeSs4TlgwRzZ0ZHZnTGRuenNKN3ExZkNrSmVIMm9tSldMajRYY1JJMmN4OUhub1lKMCtld05BaEw0QmxWWGpzOFg2b1g3OEJMSVdXVXNjWk0yWWNGaTlhNkgwUzE2Nk5kUnMrZ2thandZS0ZpN0Z5eFRKODhmbG5VS3ZWNkhwL053d2EvQ0lBUUJBRUxGcm9OUU9mZmJwL2FUTngwK2JyTm84cWtxb2VjK1JycjRJUUlERXhDV1BIVFZCOGtGZVF1bHFkYmtiZlJ4NTlvY2VEUFQvK1p0dlhuNDBiTzdwWTF0NGsvNXVpeFhsVFE0aElLQVgxVnFoUVFSUWhpZ0xoZVI0c3kxSzVjcVVpaWl2NVlXVXc1S0ZHalhBMGFOQVFaOCtlZ2NQaHdKaXg0NnFVMnZQNVo1L2lxUnVjVm5QZ3dJRktQeHZ3OURQSzN4RVJFUmcvWVJJQUlEdzhIQzhPRzRiWFh4ME9Tb0hrT25YUTd3bXZiMjMrdkRsd3U5MFk1Uk5vbVByVzIyalFvQ0VLQ3kxNGVkalFmMit0cU5WcXhmbno1M0hwMG1VLzJsOS8vUVdHVmNGdXM4SHVrNXVXbG5iNnN2WkNLZFJxTmRIcGRMQmFyVEx2RnBHSUlBbkRNSVJTeWlRbEpiRjc5dTUvbVdYWmwzLzY2Y2ZHKy8rM0Z6UCtNeHNBa0o2ZWpubHpaeU1vTUJDRFh4eUs1czFiS09lMWJPbTc0RGdPNDhaUHJEZ2llUzROWGJ0MnJmSjE3dDI3MTA5UVdJbFVOcGEzY014T3A1NDQvdEh5NWNzM2YvZmRkeDRKNEJRVEZkN2FWUG1WeXNYMkRNTlFRUkFVL2plVlNrVlpsb1ZhcllaS3BWTElMV1hUTkNtNWpzVDNKcEZaeHNTZ1pzMEVKQ2NubFV0M3V0Rnk4TGYvVlhuZjloMjdWTnQ1L0NzMU5xUFJpQXNYTGlBcnk1dkM0VXNFeWJBcXJ6UFc2WVRMN1lMZGJnZlA4NGlPaVFIUGNYQzZYTVJodDROaFdSQkNpQ0FJY2k2YUV1VThmZWI4TXk4TS9MOFJScU94Ylh4OFBQTEsrQTdxMUtrRHU4Mkdnb0o4TkcxNjJjVGEvT2ttbU0xbXpKZzU2NFpkcTE0ZjRFZXdxeHliV3pobWpXclVDSisvYytmT0owcEtTajRNQ3d2YlFRamhmQUZPMHVLSVY0c0RwVlNnb2xTckovbmpJSW9pVWFsVTFKY1ZSdGJhQUlLaW9pTHdISzhrKzdyZGJyaGRMcmhjVGlRbEpsVXJIVkpBUUdDVnlxb0NBZ0tyZGFEL2RjQ1drWkdCOVBSMFpHZG5LMG1CY3RLdDFXb0Z3N0JLS29mSDQ0SEZiSUZLcFlMYjVTWTh6NE5LQmVyZXRBMkdpQ0pQQkVFZ0FKZzJiZHAyZjJmSjBsY0RBd1A3VHBveUZWTW5UMFNOOEhDb1ZDd0N5aXlXanAwNm82UzRTRWsyTkJvTldQUGVLaVFrMU1LUVFkNG9Jc093MlBqUko5ZDF2U3pMd202M1ZmdVQrRTRUdTgxYWFRa1djNHZHekc2emdsV3BRQWhwRXhvYTJrWVFoTDRtaytuRHVMaTRBNFFRamxMS0UwSmtnQk5CSUlKQ2hDZ3FCSm1pNk0wYWthbXRSRkZVekZNQTBPbjBzSmFVZUZOQ2VEa2xoTHRjeWVCeXcrbHlvWllVOUxuUmtseW4zajhXd2djRUJDSzVUcjFxSGV0L2pTbEtLY1daTTJlUW5wNk9uSndjR0kxR2hXWklydmZNeWNrQllSZ3ZLMGVwc2lpZWVOazRlRi82SUZsTFkwNmtwalVJRGc1K2pSRHl5cTB5bnlvSDhreVlMUmJFeE1iNzBjeFhhemZrSWpJeUFvbTF5MU02WldSbXdteSsrV05tTk9RaUlpSUNTWW1sejRuanVIV3BxYWtmdDJ6WjhnSUFEZ0F2UlZJVkg1ek1IK2ZMQ2VkRGNFbkxtcVV5SlpJY01aVlRROExEd3hFVkZZVzR1RGpVcmwyN1drdnFicVg4S3pRMnVZb2dJeU5EQVRXejJZemk0bUtmSW5ZSDNHNDNSRXA5eTZJSXovUGdCUjZpUWl0RUNRVWxvSlQwZjJvQXUzRFJPeU5abG4wRFFNTE51SmFnNE9DcjJqOHhzVGJ5ODAwd0duSVJGQnh5MTJ0dWRwc1ZOcHNWQXM5WENHb0FrSlNZQ0pQcDVvMlpmRTZpSUpRRE5RQlFxOVhEV3JSbzBjZHV0Ni90M0xueng4ZU9IZlBJQUFkdmtNcTNBRi9oaHBOQmptRVlJdm5mcUV4Ujd0dGNSZ1k0WDlaZXVlZEN3NFlOcjduVzlIYVdPMTVqS3l3c3hObXpaNVU4R1Y4T3RiSmtrSVdGaGZCV0MvRGdLdGZTR0FEazNJV01uaHFOWmhTQUIyN21vblM3bldqV3RPbFZhNnNYTXpKaHNaZ2g4Q0pjcnJ1VG8wMnZEd0REc29pTWlFUmlZcTEvMUVZeU15OGh2NkFBQWk5VTI1anA5UUZnVmFvS05iV0tSQlRGUFNhVGFWMWNYTncrUW9odmdJR1hORGRCQWpSUkRpNndMRXQ5d0l5cTFlcFNKSmErUFJia0JqSnlkNnlrcENRMGFOQUFOV3JVOEFQYmJXTnVHSTJsMGpsazJ1NktHRzdkYmpmc2RqdGNMaGNSS1lVZ0VVRXFXaHFsQktETWthUEhZcU9pb2tjUlFrYmY3T3N4R2ZNUUZ4dUR1TGc0K09YdUZvL0hzK3FYWDM3WjJLZFBINE1VWUpBMU9NRW5jaXFERzVXMU5WbFRVNnZWVkc0QldCYmNmRTNTK1BoNEpDWW1va0dEQnYrcUpqSjNyQ21hbFpXRmMrZk9JVE16VTBubjhHMnVJdE82K0RMZENvSkFQQjZ1SXZZTkJnQno0ZUtsL2lxVmFqU0ErMjdtdFRqc050aXNKUUNvSDlUOEFnRFFhRFN2OWVyVnE0UFpiRjRiRVJIeEhTR0VsY0NOODhsL0kxNGxUeFI5R3Y1UUg2cDVXbG11VzJWMXA5VVZWUEFEV3hYa3dvVUxPSC8rdkFKcWNqcEgyZVlxWmVpN0NjZHhBS2g4MCtVdVQ4eTJiZHRxaFlTRWpNbThlUDdWbTMwdHdjSEJVS2xVaUkrUFEyeHNySDlGKytXeU9VVkl5L0R3OERVZWorZUQzMzc3YlVPM2J0MnlDU0dNYkpwU1NubGNabDRXdlY0SjZoc3BKYjVSMDdMcElUSjl2UysxdmNmalFkMXJZUER3QTl0MVNscGFtcEo0SzNlTktpekZkT3NvQzJyRXB4ZUI0a3VEVkRuZ2RydWZVS3ZWWXdHMDhpOGx2OXlPb2xhclgrcmF0ZXQ5K2ZuNWE2S2lvblpMdmpkR0FqVlplNU5UUWNwcWIrWFNRc3BXTHZoMlRwTUI3cDU3N3V5a2I1S1JrWEZIbktoY0hpVUhDWHo5YVdXMU5KOU9VY1JiV096dERDV25jRkJLeWM4Ly94eVdtSmc0am1HWUNmNmw0NWM3eVBlMmJPdldyZXNuVFpwVUNNRGprK0FyeVA0M3VXcEJTZ254OWIxUjN3b0Z1ZlZmVUZCUU9iK2JIRlM0VTlOQlZJbUppYmY5U1hJY2g5VFVWTVYzVmxHSHFBcTZRdmwyVS9jRk5jWnV0M2ZSYXJYakNTRTkvVXZGTDNlWXZEbCsvUGlVWjU1NVptMVNVdElSQUN3QU9YcEtVSnJKRjZJb2doQWlsMlFSbWYrdHJJYm1XMlR2Y0RoZ3RWcFJWRlNFbEpRVXFOVnF2eWw2bzhYbGNpRTFOVlVwa1pLckNYeGI0aWs5Q1NUQ1BWbFRrMDFQQ2RnWVNpbmo4WGlHc3l3N0VZQS9vOVV2ZDZRd0ROTWpNVEd4Y1VsSnljcVFrSkF2QURDU2VTb25sWmNLTE1nV0QvVUtrYXNYZlByWTRrckY5U2twS1pWMnhicHRUZEhiT2QzRGJyZVhBcld5MVFSbEd4YkwvalRKL0pUclBCbFJGRWx1Ym01OGRIVDBCRUxJcS82bDRaZmIxZDFpTUJoZ05Kb2dDQUpzTnVzL2ZvZm4rWFZIamh4Wk4zbnk1RnhKYzVNckY1VGllcCs4TjBpcElYSVNyNUx6Sm5lbUwxdWxFQjBkalpvMWF5STVPZm0yQUxmZzRCQ3dMSVBvNk9nclpoRGN0aHFiMVdxdEZOUmtobHU1OTZKdmtFQUdOWi9JSjJPMzJ6dHJ0ZHFKaEpBSC9jdkhMN2NycUIwN2Rnd1VSS21HcUdKVzJiRDZEUnZYNmRydGdmYzZ0R3Z6QndBRzNzaXBUSURxcFVYeS9rT2x2cmRlalkxU0wwT1MxQWRYM3VRZXVvSkl3UXNVSEMvQzdSR1FtSnlBb0tCYlg5bGl0OXVRbTJkQWJsNGU3cnYzM2pzSDJJcUxpeFZRazR2WnpXWnpoWnBhSlpGUHhaL21kcnNIcWxTcXlRRHErWmVQWDI1WE1SZ01vQ0RYVkwvS01FejNXclZxSjU1TVRWdlJKT1dlSGFDVW9ZQnYzdzFCb2dzUnZiRUFDc2tDQmJ6cmhDb21xUnhSbGN4VVVhUVFxUlJOcFNJYU5taUk0SkNRV3pwV2dZRkJDQXdNZ3NtWUI0UEJVR0dhMUczRm9QdkREeitnZmZ2MmlJbUpRZGV1WFRGaHdnVHMyYk5IWWVpb0tBTHFWdm9QZUgxcTBzYUlvcWlhUDMvK2xQVDA5TFhmZi8vOWJRTnFQTTlqMUtoUmlJNk9SbWhvS0lZUEg2NTBkL0xMM1NzbVV6NkNncThMTU9xR2hvVXRQbmYrNHZDRzl6UUtBS0NUdW1mSlBSZFlTc0ZTS25mTEVnalBjL0J3bkplcDErV1dlaXg0dTJOWnJWWVVGeFhCWWpIRFpEUWhKeWNIR1Jjdkl1MU1Ha3FLaTIrTE1Rc01Db1pSNnB4V1Z0Z1pNMmJjRmllNWQrOWU5T3paRXlrcEtYamdnUWVRbEpTRW9xSWlIRDU4V0k3c0tJQlcxdnlVdFRRdnRiTEFwS1NrMVByODg4L25kdTNhZGN5QUFRT1lrSkFRZE9uUzViYTR6b2tUSjJMYnRtMzQ5Tk5QOGV5enoyTHAwcVU0ZGVvVUhudnNNZi9xdm9zbE56Y1hOY0lqcnZwN3AwK2xZdDVVN01lSEFBQWdBRWxFUVZTYzJlalZ1dzhBTUNxMXV1T3ovL2RjU0t2V2JTNTh2ZlVyQitCVjNTb3pmeWxBY0xtUnQyU08wc3VicEtrVkZPVGowTUdES0N3c1JFUkVCSUtDZ3FIVDZmRDExMTloL3R6WjJMWnRLd290aFdncG1ZYjUrZmw0YTlvVWJONjhDVC8vOUJPYU5HMkswTkF3QU1CZmZ4M0h0Q21Uc0hYckZody85aWRhdDJsN1RWMndOQm9Ock5aaXhGZmdhN3R0VE5HMWE5ZWlhZE9tZU9hWlo1Q1ZsUVZDQ0ZxMmJJbUNnZ0tjT1hNR0tTa3BsU1hlbGdvU1BQamdnNjBhTldvMHBWdTNibjNsbTNlN2lOMXV4NnBWcTdCcDB5YUZtdWo5OTk5SHo1NDlzV0RCZ2dxYjN2cmw3aENydFFUUjEyQ0dOcnluRWQ2ZStaOVM3Nm5WNmtGZHVuU0ovdVhYLzYzcGZuK1hFNVJTUmtJM3hUU1ZzVTBVQkpHWGZHMkE5OVVMZUJLd2dlSkMrZ1Z3SEFlV1lSRVJFWUdNakF4UUFJR0JnZGk2WlF2V2ZyQWVHbzBHWThlOGlTTkhEcU4xNnpaWXZXb0Z1bmQvQUgwZmVSUi8vSEVFQytiTnhhcjMxb0xuZWN5Yk13dnpGeTVHVWxJeTFuM2c3U3Y2MHN2RHIybmNmSHNGMzNhbWFGRlJFZXgyTzNKeWNuRGh3b1ZTUHJYRXhFUWtKaVlxS1IxMnV4MzUrZm1rc0xBUU5wdU51Rnd1SWdnQ0k0b2lrNVNVMVB2SEgzOWNzbno1OHI2RUVIVHAwZ1ZIang3RlcyKzloWGJ0dkExNTI3VnJoOW16WjZONzkrNElDQWhBdlhyMThQMzMzMlBac21WSVNFaEFhR2dvaGcwYnBoRDNVVW94Yjk0ODFLOWZIeHFOQmhFUkVSZzBhQkRzZGpzOEhnK2FObTJLQngrOEhKUFl0R2tUdEZvdGpoOC9EZ0RvMzc4L1dyWHlGalVjTzNZTVRxZXpGTjlhNTg3ZVR0c0hEeDcwcjI2L2xCT3oyWXl4WTBaaDBQUC9oOEdEQnVMM1E5NTVrcDJkalFIOW44Q1QvUjdGcURkR2x2ck81SW5qTVdUUTgzMW0vMmZHMUpTVWxDNEFkS0RVdDVFTUs0b2lLNjhicFlrTXg2R2twSmdZREhsZVFrcW50M0Z6WkdRa0dqWm9DSTFXZzVLU0V1VG01aUF6SXdPN2YvZ0JLVTJhSUNEQVM3SmFJNndHL3BMbS9WOS9IVWVYTHQ1NUhob2FpclMwMC9CNFBERGs1VUduMXlNcHlkdVlKVHc4SEg4ZFAzYkR4KzJXYTJ4eW9LQmR1M2I0OXR0dk1YZnVYTVRGeFNFa0pBUjZ2UjR5MTd1YzBtRTJtd2tBcUZRcVFpbVZ1NjR6VnF2MVdZMUdNN1Z2Mzc3MUd6WnNpRVdMRm9GaEdMUnYzeDZQUFBJSXBreVpvaHh6L3Z6NTJMRmpCenAxNm9SWFhua0YvZnIxdytPUFA0N1RwMC9qMUtsVDZOYXRHeDU2NkNFODhjUVRXTFZxRlJZdVhJak5temVqY2VQR09INzhPQVlPSElqbXpadGp6Smd4K1BEREQ5R3VYVHQ4OHNrbjZONjlPMGFPSEltWk0yZWlSWXNXQ3JBVkZoWUNBSEp5Y2hSdzlIbTZJaUlpQXRuWjJmNVY3SmR5OHNYbm05R3NXVE1NR3Z3aTB0UFRzWHJWQ3JSdDF4NEpDUW40NzVhdE9IZnVMT2JPTGswMVAyL0JJbWx0RmJVWi90TFE4QTgvK21URjRFSFBmeXNwTWtTeVRqa0tDTjRIT0JHbGZGNFFRcWhLcFNKdXQ5dXJ4QUdnb0NDRWdkdmxnczFtUTc0cEh3QkJabVlHQWdJQ2NQRmlPbFlzV3dwQkZCQXMrUW1MaTR1aDFlbXdZL3MzK09tbjNkQm9OTERaYkNncEtZRldxNFhINDhIS0ZjdVFtNXVMb3FLaUd6NXV0MVJqODAzcEVFVVJBd2NPUk4yNmRXRXltWERxMUNrY1BYb1VxYW1wS0NrcGdkdnRSa2xKQ1pIQVFJbjRNQXpEQkFjSHYvTGxsMTh1MG1nMDllV0dGenFkRGhxTkJvUVFoVmxVbG43OStxRmJ0MjVRcTlWNDRva240SEs1TUhmdVhBUUhCNk50MjdabzBxUUpVbE5UQVFCSlNVbFl2MzQ5K3ZUcGc4VEVSRHoyMkdQbzJyV3I4dmw5OTkySFNaTW1ZZno0OFJneVpBaWFOR21DQ1JNdVYyazk4OHd6R0RIQzI2UFI0WEJVbUF1azFXcWxEbGwrOFV0cGFkMm1MWDcrNlVkODlPRkd1RjB1TEg1blNaVytKNG9pWnM1NEd3LzNmYlRlQXowZW5IWXE3ZHdBQURwcDAxQksxYUJVQllBRktLT2tSd0dFWlZYZ09BL3h1RDArcmY3c2NIczhjRGdjc0JSYWtKOXZRbEZSRVU3OC9SZkdqeHVENTU1L0FkMjZsYVl1bkRkbkZqSXlMbUx4TzB1aDFXcExLVE5qUnIrSnhvMVRNUEtOTjZ0bDNHNFpzUGttMzhvcEhTNlhDM1hxMUVHclZxM1F1SEZqUkVSRVFCQUVHSTFHNG5hN0pYWU83eE5IemxIak9HNThTa3JLZ3RUVTFDcDNxUEF0STVNSFBDRWhvWlJUVWdhYXZuMzdvbmJ0MnBnNWN5YWVlKzQ1dEdqUkF0OTk5NTNVT01NcjA2ZFBSMFJFQlBiczJZT1BQLzVZNlhOUVZ2UjZQVHdlVDduMzNXNTNwZjBSL1hLWEExdnJObGk1YWcxcUppVGc0NDgyNHUyM3BsYnBlK3ZYdlErZFRvZUJ6NzhBQUZIQndjRnZmZjNOOXNFQTlCSzRhUWtoYWtLSWlsTEtBbUI4QW5DRTQzaDRPQTlSSXFaT0p6aVBGK2hLaW90aHNWamdjYnRSWEZLQ3h4OS9BZ1FFSmRZU2hJYUZLZVpuaDQ2ZE1QS05VVkNyMWZCNFBBcHpiMGx4TVVhUEdZZmVmUjZDeStWQ21QU2RPeDdZZk11a3NyT3prWk9UZ3kxYnR1RGl4WXRLbmhySGNkRHI5UWdKQ1NHQWwvN2JGOVJXcjE2dDVqaHVPc013czBWUjFKWHRPSDVGKzF0VjNnS3ZyTmgzeVpJbDZOQ2hBekl6TTlHaFF3ZXNYYnNXdlh2M0xyV1AwV2hFVGs0T0tLWDQ5ZGRmS3oxdVFrSUNYQzVYS2RXYjR6aVl6V2JVckZuVHY0cjlVazdteloyTncwY09vMGVQQnpGNXlqUWNPblFRL3pUWDkrL2ZoNzIvL29vcFU5L3luZGU2SmsyYVRybjMzbnVITjJ2V1BCQlNPZ2lsVkEwcEhRUUFTMFdSOER4SEJJRW5QRmM2SFlUbmViamRic1drVkdzMGNEZ2NLQ2pJeDhXTDZkajl3L2RvMUxneEFLQkZpNWJLZWY1NTlDaVNrcEtoMFdnUUd4ZUgwTEF3YUNVTGF2KytmV2plb3NXZDcyT1RDOXA5YXorTGlvcVFuNThQaDhPQjVPUmszK1JiSW1zNGN2czdBR1RuenAxQlBYdjJuTW93ekxpaW9pS2NPblVLUTRjT3JmQjQxOHRPc0dUSkVreWVQQmt6Wjg1VTNzdkl5Q2dWd1h6cHBaZlFva1VMOU92WEQ2TkhqMGJQbmowckJLcVdMVnRDcjlkajM3NTllT1NSUjZSSnVCOE13eWpCRGIvNHhWY0dEbndCaXhjdndPZWJQNFVvaWhnemRqd1loa0YyZGpiR2pIb0RIT2RCY1hFeEJ2Ui9BdmZlZHg4bVRaNktsY3VYd3VWeTRiVVJMeXUvczNMMVdnUUhCMlBCb25kR3Y3Tm9vYWFnSUg5ZGJtNnUvSVNWbzZXOHROWUViMk1zd2V0aWsvYmhlWUY2T0s4NUNnSUVCd1VqTGk0ZW4yN3lkcEsvOTk3N0VCd2NESjduOGVwckl6Ri8zaHg4K2Q4dm9OZnJNWEh5RkVXcG1ETDFMY3lhTlFPY2gwT3RXclV3WWRLVU94dllLS1hseXFUazZHZHljakxPbnorUDFOUlVCQVFFUUJBRXVOM2Vwd1FoUkNiVEl5a3BLVFZtejU0OU5TSWk0azIxV28wcFU2WWdKQ1FFQXdaVTNMMDZLQ2dJQnc4ZXhLRkRoNjRKUE1MRHczSGd3QUhrNXVaQ0VBUXNYTGdRcDA2ZFFsT3BMOEg2OWV1eFo4OGUvUDMzMzZoWHJ4NDJiZHFFbDE1NkNkOSsreTBBNFBQUFAwZGhZU0ZHakJpQndNQkFEQjA2RksrLy9qcUNnNE9oMFdnd2ZQaHdEQmt5Qk9IaDRmNVY3SmR5VXF0MmJTeGJ2cXBDN2YrL1c3WlcrSjNQLy90VnBiOTN6ejJOOE1INmphKzUzVzdWNWs4M3JadisxbFN6dExaOGxBRUdsSXFDS0RLbHdDMG9LQWdhclVhMm5rQkFVQ01zREVsSlNZaUlpRUJNVEN3eU16TEFzaXdhTjA2cDFCL1l0R2t6ckgxL2ZiV08yMDAxUmE5VTBCNFVGSVRZMkZpSW9paWJvMFFHTlpabENhV1VYTGh3SWVMNzc3OS9LeTR1N3MwSEhuZ0FYYnAwZ1ZhcnhmNzkreXUxMDE5NzdUVWNPSEFBZ3djUHZxWnozckJoQTBwS1NsQzNibDIwYTljT05wc05reVpOd3A5Ly9vbXNyQ3lNR1RNR1U2ZE9SWU1HRGNBd0RENzQ0QVA4K09PUDJMQmhBd0JneTVZdFdMLys4azFjdkhneEhucm9JVHorK09QbzI3Y3Y3ci8vZml4YnRzeS9ndjF5VTBXcjFRNS9idURBbCtjdFdCUUZRQ3RWS2FpOXlvNVNwVUJFMFp0NTRHM0E3QTBvdU4zZUtnV0h3K0UxU3lXZm04bGtRbTV1TGpJeU1uRDJ6SmxiZW4wM2pkMGpMUzBOYVdscFNvczh1WnVVWENibHkzeGJKdm1XVUVySm1UTm5hdFNwVStjdFFzaEkvN1FzTGFJb0lpUHpFaXdXQ3dSQmdNdDVkNVpvNmZSNnNDeUw4Qm9SU0VxcVhXa1FSN1lldkdObUJzOVgzNWpwOUhxb1ZDcEVoRWNnS2FseTdzTzllL2VpYnYyYnoxcnJjYnMvMkxUcGsvZmZuajdOQXNCRkNIRkRhUnhEQkVJZ0VNSW9EV1BVYWhYVUdnM1ZhcVMrcFFFQkNBb01STERVemk4aUloS3hzYkdvWGJzMjZ0YXJqM3IxcXJlYXNiSSt2RGZGRkpWN0ZKVGxVNU03U1IwL2Z0eTNRb0Q0MnYzU0ZsU3ZYcjJwQVA3Vm9HWXdHSzY2VTVEYjdjRmZmLzBGVnFWQ2NFaW92NitvM1liQ29rSVVITTFIaStZdG9OR29Ld1MxUC80NENvWmxFUlJjL1dObXQ5dGd0bGlRWDVDUDFxMnV6RUNmYy9QekdWL3ExcTI3ZUhISWkycy8zTGhCV1lkZTA5UmJZZ1dJZ2loU1VHOHhQQlVFa1FpOFFKVnU4ejRrbFU2SEEzYTdEVlpyQ1lvS2kyQXVLQ2lWY1hBanBlWVZmcmZhZ1Mwcks2dFVqNEt5M2RrZERnZHExNjZ0YUdvZWo2ZFU3ZWZxMWF2Vnc0WU5tOG93ekp2d1N6bkpNK1NCVmFuOG5lQWxrWmtmaklaYzVPYmxJcWtDaHVpTEdabGdXUGFtalpudk9XVm1Ya0xpRmZxTDFreEl1QlhETm56cXRPbDhSa2JHMmwvMy9GS1poaXRjQmp1UlVpb1NTc3YzVWVBbFpsNlBoNFBMNDgyQkk0UWcvaVpIL2FzVjJJeEdvOUlpcjJ6amxRbzZTWkdLdU5Ra1VCdm5YN0lWaTduQWpLQ1FVUDlBbEpHZzRCQVVGSmdyQkRhTHhZTGdXekJtUWNFaEtEQVhYQkhZYnBrWnI5Tzk5djRINnowTjZpV3ZsN1ZhT2FCQXZkRUZLcGJLTXlFVUlBUWdjbGQ2RUVMQWVNa3N3VEFzV0phRmlsVkI1VFZmRVJVVmRlY0RtOXloWFc2Umw1K2ZYeW1kZDFtZm1tL3lMY013VS8zTHRESS9FU0FJd2wxdmZsYW1KUlVYV1NyODdGYU5XV0JnRUlvTExkZjAzWkxpWW1SY3ZBQzczWGJGMzA5S3JvdVEwR3NEYmIxZVB6cnQ3QVhYUFEzcWJwTHdUSmxxUG1NblhtN2Z4MUdPOHhBSitFQVlBc0l3RXJBeFlGa0dLcFhDMWd1TlJvUFEwTkE3RjlpY1RtY3BVQ3ZMcDFZSlNhVGNmSVZJdlFsZVlSaG0ycFVYOXRWVEtkOXVVbFdxNDRxRUVNRHA5SE81VlRvUEsrRzV1NVhCbFd1OVh4ZlR6OFBoc0Y5eEg3dmRob3lMRjlDc3hiM1hBYjZCbzArZU91Tm8wcmpoVmg5UW8yVTBPQkVBRlVXUjhEeFBuVTRIWVZtV01vU0FFQVlNUXlDWE5ubzNGVlJxTlRScURSbzFibnhUS01adk9MQlJTbkhtekJtbFRaNGMvU3lycVpXSmZzcU5KUmlKOWZaWmxtV253VnY2VWVseHJwRksrYmFUcWxBZFg2djh1UHNIYk55d0hpYVRFZkh4OGZoNDAyYzRkKzRzaGc0WnBPd3phY28wUFBUUXczNGt2STNsbjBETmR5NWRyMVVhR2hyNnhyRy9UdHBiTm0veXZhKzJWZ2JjQUVDa2xIcDlhcHlIZUhzclhBWTJobVhCTWhLd3lWcWJWb1BHalZPcXZhM2ZEUWMyWDFBcjI4ellicmRYU09mdDYxZHpPcDI5VkNyVlZBQlhOTWl2aDByNWRqU2Ivb25xK0Zva056Y1hDK2JQeGN4WmM5QzZkUnVVbEpRQUFPclZxNDhmZi80VkFQRFMwTUhWZGwwYjFxL0RZNC8zSzhWbUlwL1hzaVh2NE1TSnY2SFJhTkRqd1Y0WThlcHJZRmtXZ0plU1o4V3lKVGh4OGdTMFdpMTY5dXlGbDRlUFVENnZEdm1uWTNicDFCNXF0UnFFTUVoS1NzS1FvY1BRc1dPbmZ5dU9Sa1ZFUkx5NmN1WEtrdGRmZi8xQUdjMk5Fa0tvOUQrUm0yRHhIT2ZsSW1jSUpRd0JReVEvbTZTNUtjQ20xa0NyMGFKZS9mclZlZ0UzTkVFM0l5TUQ2ZW5wbGVhcHlkUkRVb3M4K0xMZlVrb1pxOVhhU3FQUlRBWHdqMWQ5QTZpVWJ6K0F1d0xWOFRVOVpOSk9Jekl5RWgwN2RvSkdvMUhLd0FnaFNtZWk2bnh5ZnJoeFBTd1djN24zWjd3OURUVVRFdkQxTnp2eC9nY2JjT2pnQVd6ZnZnMkFOeWR2MG9SeGFORHdIbXo3WmlkV3JGaU52Yi91d2RkYnY2cTI4NnpxTVZldVhvTWR1NzdEa0tIRHNIamhmR3o5YXNzdG1TZUVFTng3NzczbzJiTW5ldlRvZ2ZqNHEzdTRDNEtBMzM3Ymo4a1R4eU03SzZ1eVk5U0xpb29hdm1EQmdzYVM1U1RUakt1VnVsSks1VzcwaE9kNThKdzM5Y05US3ZYRGpzS2lRdnowNDI2c1hmTWU1cytmZy8zNzl5RkxPbTdXcFVzWStmcXJlUGFacHpCbTFCc29LaXBVenVHakR6Zml1V2VmeGpOUDk4ZXVuVHR1amNabU5Cb1ZVRE1halFxb3libHF2bDNhZlRxMEs2Qm1NQmhxNmZYNktRRGFWdlhtL051YzVvR0JRYkJacjU5UC92anhZNWd4ZlJvOEVzM000NDk2emN4K1QvVEhvTUZEcXZRYmh3NGV3TW9WeTJFdzVDRXhNUWxqeG81SFNwTW15dWQ3ZjkyRERSdldJZDlrUWt4c0xJWVBINEYyN1RzQUFFYSsvaXF5TG1VQ0FFYS8rUVpVS2hZSkNiV3djdlVhaUtLSXJsMjc0ZUcrZmFIVmFoRWRFNE5XclZzcm1lb1dpd1Uxd3NQeDNNQ0IwR2cwU0toVkN4MDdkVVphMnVscUcvZXJPYVplcjBmSGpwMmduaklOYjArZmhsNjkrOXgwWnBiazVHU3dMSXZkdTNkRHE5V2llL2Z1eU0vUGg4UitVd3F3NVNSbDM3L2ZmT04xMUt4WkU2ZFBuNElnQ2xjQzBOYUppWW5EeG80ZHUraWRkOTdKa2JVMkg1K2JIR0FRQlVFRUlieTM3cEV3bERBTUNFUEFzQXh5YzNOQkNNRURQWG9BbEdMRCtuV29WNzgrOURvZGxpNTVCNDg5M2c4OWVqeUlMejcvRE8rdFhvWEpVNmJoeEltL3ZYTnM0MGR3dTkwWVBud1lXdDU3WDVWQi9JWm9iRmFyVldIcThLMy9sRHUzWHltdGcxSktYbnp4UlRZaUltSXlJYVJ2MVk5WmNrTW5pOWxzeHVSSkUvRGNzMDlqM3R6WnR3emNLcU02dmhwcDBhSWx0bTNmaFRkSGpVSE5tZ25ZdG4wWHRtM2ZWV1ZRdTNEK1BONmFOZ1VqWG5zZHU3N2JqYWNHUEkweG85K0FTZEltTXpNek1IdldURXljT0FVN3YvMEJqenp5R0taT25hdzBwVm14Y2pXMmJkOEZBRml5YkRtMmJkK0ZsYXZYZUNjY3crQzVnYzhqTEt5RzF5bCtNUjBIZnZzTmJkdDY2M2dqSXlPeFl1VnE2SFI2WlVFZVAzWU16Wm8xcjdZeHY1Wmp0bTdURmg2T3V5V2xRNUdSa2NqTnpWVjhYYUlvb2thTkdxWDJPWExrTUtaT25naU80MkN4V1BEUzBDR3dXTHdSMlhlWExNUGtLZE9xcEJnd0ROUDd2dnZ1R3h3VEU2T1h0RGFmMGl1d0FCaHZSemlSdUZ3dTRuSzV3SEVlWWpHYmtaZWJDNWZUaGVMaUlnUUdCcUtrcEFRcXRScUNJQ0QxNUFsa1pHWWdMZTIwY3U4ZmVyZ3ZEdjkrQ0FCdy90eFp0R2paRWxxZERpR2hvV2pmdmdQK09ITDQ1cG1pbE5KeVZRVyttcHB2Qk5TM1E3dHZCSFRObWpXVENDSERic1JOLzJyTGwzanUyYWZ4N0ROUFlmNjhPWEM3WEZYNjN2dHIzOE05OXpUQ3A1OTlnYkhqTGhORm1veEc3Tnl4L2E1eVZPL2N1UjFkNysrR2poMDdRYXZWb25lZmgzQlBvMGJZdmZzSEFFQkVSQ1EyYlB3WWpWTlN3REFNSG5uME1YQWVEN0t5TGxYNUdLa25UNkpuajI0WTlQeHp1S2RSSTNUcGVuK0YrNjE1YnhYMEFRRjQ2T0crTiszNnEzSk1RZ2pDYTRURGR2M08rcXNXalVZRFFSQVFFUkdCVHAwNlFSVEZVa1NPQU5DcVZXdUVSMFJnNW96cEdEdm1UZlI3NGttRmFPRnFHNmVvVktybkZ5MWFOQkJlTGpkZmsxUWxZUWdqVWtvWWhvSEg0eUUybXcwdWw0c0VCZ2JDN1haRHBWTEJZTWlEMVdwRmRuWTJDZ3N0eU0zTlJXNU9EaUlqb3lBbkJSODZlQUJXcTNjODY5U3RoNk4vSEZFb2tsSlRUOEptczkwOFlEdDc5aXd1WGJxa3BIVlVwZmRubVFqb3dCdVZxM2JpeE4vWXN1Vy9XUHZCZW55NitRc3dESVAxNjlkVjZidm56NTFEaDQ0ZHk5MzQvUHg4N05qeHpWMEZiQWFEQVhGeHBWWCsycldUWUREa0FmQ3lQQnc5K2dlR3Z6d1V6ejM3TkFhL01GRFJkS29xS1UyYVlQZFBlL0RGbDF1Umw1ZUhEUlhjcDQ4LytoQy8vMzRJYytmT3I1QkRyenFrcXNla2xNSlNhRUhRTFhLSEpDY25vMUdqUnZqdHQ5K1VvRkJaNEIwK2ZBVCtQUG9IdEJydGRUMFk5SG85Qmc0YytLYkJZT2haZ2IvTnE3bDUvVzBNSVFTQ0lFQ3Qxa0FRQk9MeHVCRVVGQXhlRUhENDkwTTRmU29WRE1QQTRYREFaREtoVjYvZStPYWJyekZrOFBOSVRUMkp3RUJ2LzRUbXpWdWdaNjgrR1BuNkNFeWZOZ1VCK2dEb0EvUTN4OGVXbloxZExsZk50MVRLQjlSUVVRVFVicmQzbHBvWjM1QlphN05hRVJRVWpJQ0FBREFNZ3hlSHZvU0xGOU9seFpxSFJRc1hJTjlrUkdoWURZd2JQd0dKaVVuNCtlZWY4Tjh2UGtObVppYm16cGtGalVhRDU1NTdIbDI2M28rbFM5N0JzVCtQd21Bd1lQakxYcjYzdGUrdng0YjE2L0RubjBkaE5CaVEwcVFKTHFaZlFHUlVOTjU1ZHlrb3BWaTlhaVgrK09Nd09BK0g5aDA2NHJYWFI0SlNpbkZqUnVIK2J0M3h5S09QNGNTSnZ6Rm45bit3YnYySHQwVjNiVitKaVltQklTK3YxSHM1T2RsbzJkS2Jpckx2ZjN2eDZhWlBzR1RwY2lUVXFnWEFHeldzYUhHVkJUdTN5NFh2dnZzV2ZmbzhCSzFPaDdpNE9QVG84U0QyNzk5WGFyOHRYLzRYUCs3K0FjdFdyTHJtaE5PcmxhczU1cEVqaDZGUnE5R2dZY09iZm4ra3NrUDgrZWVmQUFDV1pjdFJ5OXRzTm93ZlB3WURueCtFczJmU3NHRCtYRXlhUFBXYWdrVk9weE5idG14UkFYamxyNy8rTWpSdjN2eFB5ZGNtU3Y0MkpXSktLU1VNdzhMamNWT24wOXVVbmpBTW9xS2lFQkFRQUoxT2g3Ly8rZ3VpSU1KaU1VTWJGNC9uWHhpTUJnMGE0bUo2T2k1bFppckhmVzdnODNodTRQTUFnSmVHdllpNmRhdGVVSC9OR2x0UlVWR0Z1V3FWZ0JvcDA2V2R5YzNOamRkcXRSTnhBenUwdDI3VEZqVnIxc1RMdzE3RTExdTNRS2ZUb1hYck5nQ0FPYk5ub1dmUFh2aDQwMmQ0L29WQm1DNVJMRC93UUErc2ZYODlhdGFNeDdTM1ptRHQrK3NWczJqVTZMR1lNSEVLa3BLVHNmYjk5YVU0cE5xMmJZY1pNMmNoTXpNREgzMnlHWmN5TTJHeFdHQTBHaEFZR0lBTkd6L0d4NXMySS9Ya0NSdy9mZ3lFRUV5Wk5oMmZidm9ZYVdtbk1YZk9MRXg3NisxYkJtclMvZkJxSDZLb2FOSUE4SERmUjdCMzd4NGNQdnc3ZUo3SEw3LzhqTlNUSjlDelZ5L0ZIMGtJd0xBc2lvdUxzUG5UVGRMdmxHYUtpWXVQeDZHREI4RnhIUEpOSnE4MnJOWGlrNDgvd3VlZmJ3YkhjU2dxS3NTK2ZmOURzMmJOTHB2Q083WmoyOWRic1hUNXlwdkdVMWZWWTdyZGJ2eCs2Q0RtejV1RDRhKzhla3NvM2ZQejh4V0EwbWcwQ0FzTEs5Y1E1Y0tGOCtqYXRSdis3N21CbURaOUJqUWFyZUpqdXc2cFc3OSsvUmRIalJvVlc1Ry9qVkxLTUF6RHlGUmpIbzhISE04UnpzUEI0M2JEWVhmZ3pKa3ppSXFLZ3QxaFIxRlJFUW9LQ21BMEdQREhIMGV3Zk5rU1BQbFVhVjVGanVPdzZaT1BRWWlYeDYxYU5UWkJFSkNlbnE0RUMzd2pvQldrZFpBeWFSMkVVc3BFUjBkUElJUThlQ052dUVxbHdveVpzM0Q2VkNxKy9mWmJESDVoSUdiTm5vczZkZXZpN0prMDlGemhKZXhyMDZZdDNuVzVZRElhRVIxemJXbTlXcTBXT3IxZU1Wc0RBdlRnT1E2eHNYR0lqSXpDeEFsandUSXNERWF2MzlIcm00ckE2REhqOFBxcnIrRDVGd2FqU1pPbXR3VFV5aWJvTHBnL0Z3dm16OFdEUFh2aHJla3pVTDkrQTd3OWN4YmVXNzBTaHJ3ODFFNU14TUxGN3lJbXhwdGYxK2VoaDNIeTVBa01IZklDV0ZhRnh4N3ZoL3IxRzhCU3BseG96Smh4V0x4b0lUWnVXSWZhdFd0ajNZYVBvTkZvc0dEaFlxeGNzUXhmZlA0WjFHbzF1dDdmRFlNR3Y2ak1yVVVMdldiZ3MwLzNMMjBtYnRxTTJOaTRHejRlVlQzbXlOZGVCU0ZBWW1JU3hvNmJjRVB6MklLRGc2dThiMFpHQnNMQ3d0Q2pSdzhBd1BIang4djEwbWpldkFXYU4yK2hySXV4NDhiZklQL3J6bTZ0VzdmT0FMRENSMnNUQVZCQ2lEZEdTa1VxMTR2eVBFOFp3cEFTYXdubE9RNmhvV0dJam9tRjNXNkhXcVdHV3EzR3JsMDd3RElzbm5yNmFiU1hJdXVBbCtKOCtkSjMwYng1Uzh4ZnNMaENiYk95Y2JzbVlQT05nRmJHcVZZRzFHUUdBTGxjYWpnaDVOVWJQVUZQbno0Rm5VNkhSbzFUMEtoeENyNzl0akUrK0dBdDVzMWJvSmhHaXBuRU1LQzQ4VngwZi8xMUhMdDI3c0RTWlN1ZzFla3dZM3JwcWpDSHd3RzFXZzJYeTFudEFOYXJkeCs1UTNncHFWKy9BZjYzLzhwOVREdDI3RlRwd3RWcXRaajIxdHVsM3F1bzRXMmJ0dTBxWkhtdFY3OCtsaTVmV2VGdnN5eUx2ZnNPM0ZTZ3I4b3gvMm04YnNRNTJPMjJLa1VxNWFxYjY1VlBQL3ZpbXI2blZxdUhiTml3SWVQRkYxL2NCaS9GcmtnQktyV1NwL0NtZ1lpaUtGS0JGOEFURG9FQkFVU3IxVkdkWGdlMzJ3V253MXVOb0ZLcjBLMWJkOFRHeHFGV3Jkckl5TGlJT25YcUFnQTZkZXFNVHAwNlYzb2VkcHUxVWovb1ZadWllWGw1Q2dXUmIxcEhCUkZRK0lDYW9xM1o3Zll1TE10T3JJN0prWFhwRWhiT253ZTczVnQrWWk0b1FHaG9LTFE2SGVvM2FJZ2ZwYWplSDM4Y2dWcWxRblQwUDJ0cm9hR2hLTWd2cUxDN1ZFVmlOcHVoMSt1aDFtaVFuNS92ellXU2lva05oank4dDNvbDN2OWdBdzcvL2p1T1hFWDR1bkxIYmdEOGNuVmpjeXZIckxKalIwZEh3M0dGV3VlQWdLcVp2RlhkNzNwL0t5Z282SlYzMzMyM2hSSk1rSnJDeUNhcG5BSWlpZ0xoZVFFY3o0UGpQUEI0WkFaZUZ4d09CK3cyRzBxS1M3d012UGxHS2JtL2FrbnFkcHNWMGRIUjF3OXNEb2VqRkZ2SFB3UUx5aVhocHFXbGhXbTEydkVBcXFVT3FtZXYzdWpjcFN0ZUh2WWlubjNtS2FTZVBJSFhSM3BwM0taT200NXZkKzNFNEVFRHNYSDlPc3o0ejV3cU9WSVRhdFZDMjNidDhQU0FKL0hDd0dkaE5CcXV1SCtuVHAyaDArdngxSlA5TUgzYUZOU3RWeDkydXgwOHoyUG0yOVB4MHN1dm9GYnQycGo2MXR0WXZIRCtkZnM5NUNlOVg4cFArc3BLc0poYk5HWjJteFZzSlJwR1hGd2NLQldSYjh5cjhOeVM2OVQ3UjlBS0NBaEVjcDBieDFqN0Q4ZU1pNCtQSC9UQ0M0TnF5T0JHeTRNYlF5a2xvaWdRZ2VmQmNiemtiL1BBN1hMQjVYVEM3bkRBYXJPaXVMZ0lGck1GSnFNUjJWblpTbCtGeXNiUlpNZ0ZDQ290UDd3cWF2RFUxRlNrcGFVaE16TlRxUVgxTlVWOUtneUlyTFZKdmpWR29pR2F4VERNaEJzeDZMZUtTcm02cFRLcTQ4cjlMWmt3V3l4K29za3lZalRrSWpJeUFvbTF5M09mWldSbXdteSsrV05tTk9RaUlpSUNTVmZnWXpPWlREQVlET0I1SGxicjdjOVc0M0s1VnZYdTNYczlBSWUwdVFCNENDRWNBSjRRSWhKQ1JJbGFYS1l2b2xxdGwxbzhJQ0FBZ1lHQkNBNE9SbzBhTlJBUkVZRzR1RGpVcmwwYnljbko1VFhGNEdDb1ZTckV4c1pXcXExZGxZOHRLeXNMMmRuWk1KbE1NSnZORlFZTFBCNVB1ZFFPT1ZqZ2NybWV1RkdnZHJYTzFqdEpydmE2RWhOckl6L2ZCS01oVjJFNXVkczFOWnZOQ29Ibkt3UTFBRWhLVElUSmRQUEdURDRuVVJDdUNHcXlTWHFsQlhzYnltdFpXVmxuYTlXcXRWZjJ0eEZDbElBQ0FIaFpQd2hrY0ZPcFZOQm9OTkJxdGREcjlRcXdoWWFHSWp3OEhGRlJVWWlMaTBPZE9uVlFTMG9udWxxcEVyQlpyVmFsc3FBc3FQbldnUHFtZHZpYW9FYWpzWlphclI1N3E1eXRkOUtpdk5wRVZFSUlXclZxaFlzWm1iQll6Q2l5V09CeTNaMGNiWHA5QUJpV1JXUkVKQklUcjd3ZzJyUnVqY3pNUzhndktLaldNZFByQThDcVZQK29xZDNKVXJObXpjRmZmdm5sMmFlZWVpb2JsNk9rTXJCUk9aTGdKYWZrS2NNd2hHVlp5cklzWEM1WEtTSktHZXdDQWdJUUhKdGcwTndBQUNBQVNVUkJWQnlNc0xDd2ExSmlxclNLWk5QVE53bTNnc29DWDFDVHF3c0lwWlNKaUlnWUE2RFZqUnpNNk9ob0dBekdmeDJ3eGNkZmZUb0RJUVIxa3BOUUp6bkpiNE5lcGJhYitDOEZtNXNwaEpDV2ZmdjJIUUJnRlFCQjZvL2dqWlpLcEpUd0VsTlNDZHpBY1p3Q2JpcVZxa0p3Q3d3TVJFaElDSnI0a0M5VVZmNHhlSkNWbFlXY25CekZuMVlacUYzQkJPMWZIYWtkaXJQVlpJRGpEbmVlTyt3MnJ6TVU5SVp4c2ZuRkx6ZFRkRHJka096czdNNlF5cTBvcFJwSXlidStnUVJCRUlnRWJBcHV5QjJ1SEJMTlVVbUpOMHFhbjUrUG5Kd2NoZUxvaG1sc2RydTl3bncxWDhKSUdkaDRuaTluZ21ablo4ZXExZXJSMVRXWTk5NTdMNHhHSTR3bUU2d2x4WGNrTmJqc0RFMUlxSG1uK1ZiODRwZFNFaDhmUDJqanhvMnBRNFlNRVNSL20rQnJscFkxU2FYcUJPcExSR20zMnhXdFRRNHNoSVNFSUR3OC9LcXFQSzRJYkdYejFjcEVQbjN6MVNveVFVbE1UTXdvQVBkVjUyREd4TVJjZFM5T3YvakZMOVZpa3JZWU1HQkEveUZEaG53QWdQY3hTUVhKSkJYaFpkMVZURktHWVloS3BhSXlDNGh2WUtHb3FLaVVyNjFSbzBaVkI3Wk1uNkpUWDhuUHo4ZVpNMmRLTVhlVTlhK1ZEUno0Y3F5bHBhWDF6TXJLR3UyLzNYN3h5MTBsTCsvWnMrZG90MjdkRHN2Z0JpbFNLaGZMUzAxZzVLcDVoVlB1Y3Zlcnk2WnFXVE8xcWkzOFZJbGhQNVI3aytNRjVGL01BbkVhUU54bUVFOHhDR2NESTloQkJCY2d1QURCNDkxRWpsQlJBQ2dsOGpiNC85cXc5YVAzalBMZlk3LzQ1ZTZUaEdiaS85VkxydkgzK1l1RlBBQ0JBQUpBWmJPVWdSZk5BQ3FDaWp5RjZDWVFYQlNDQXhDc0lJSU9qR0FCNGZKQlBMa2c3a3dRNXpuQWxvcjQ1RnBRcS82NTkwV0Z3WU9zYkFzTXBtS1lMVFlVRlR0aHM3bmdjTHJoZEhKd3V6bDRQRHc4SEErT0Y4RHpJZ1NCUWhRcFJFb0pCWmozbHcwZUNlQUIveTMyaTErdVRTaTljOCtkWlptdWgvZE1md1J5SU1FYlJKQURDU3lWaUNsRmtVSVFLSGhlQk1jTDhIQThQQjRlYmpjSHA1T0R3K21HemVaQ1ViRVRab3NOQmxNeExtVlZyVktubkkrdHVNU0ozTHdpRkJSWVVWamtnTlhxaE4zaEJUV1htNFBidzhQakVjQnhBbmhlSkx4QUlRaVVpSlFTVUJETHhYY2JzQ3p6aG45cStzVXZWeWNpQlF5V1NKZ0t3eUNJTEd4M2RqcmlvQVVMRmh5Wk9ISGlSYTlKNmcwbWVFMVNpSklGU2tSS3dBdUVjZ0pEUER4TDNad0tUbzhhTnBjYUpVNHRDbTA2RkZqMU1CWUZJdHNjQkVOeENQSks0bEFuZ1VOY2VBRXFxNG9zQjJ3NXVZVXc1WmZBVW1oSGlkVUptOTBOaDlNRGw4c2pnUm9QanVQQisycHJGS0FVaEFKTVNJaitOUUFKL21ucUY3OWNIYWdkTzFjZllNTVFGSEpuOThtVnBHWkM3ZVRISjA2Y3VCb0FEMitFVkg0VlFRZ0Z2RzM4Q0NFZ1VyTmxJdEVkc1NvMVZDbzFWR29OMUJvdE5Gb2R0TG9BaUNRUXhUWTE4b29Ta0djT3c3MzF6MWNJYnFWTVVXTitDUXpHWWhSWWJDZ3Fkc0JxYzhIaDhNRHA0dUJ5eTZBbXlDWW80YjBtS0tFaUpaU0NPUEpXZENlRXZQSnZtbkRqcG0zQi9YM2Z1V0cveC9NQ1JrMytBdEgxeGlHMDlwc1lQbW9USEE2UGYyWGY1V0lvakFUWU1NVEV4djlya3M2MVd1MmdQYi91YTQ3TFZPSWFTdUZESmU3Tm5oQkZrUWlDQUY3Z0NjOTVBd2VjNS8vWk8rL3dLS28yaXY5bXRtVlRJRTE2Q1VoSGFWSkUwQUFmVWtSQkJDc2xJQWdxTFlMU2xkNkQ5TjVFcFNnSWlpQktFWkFlbENJSVVnVUVFdEo3c21WbXZqOW1kNUpOSXlCTjJmTTgrMEIyWm5idTNwMTU1MjMzSENzV3F3V0xROFpQMVQ1SUpENHVqdVNVRkhRNkErZ0tjelBlTDlkenV4aTJHeEVKUk1jbWs1Q2dHclhVTkF2cEdkYk12SnJEc05udHNtQzNPMEpRR1VFQkFSQ05Sc1A3N2tzMGZ3d2JzNUZOUC96T3VzOTZzV2wxSDNidStaTitnOWU2SitZUlIxUjhvZitjVGk1QXVmTGxPMlF4YkFaUURHU3FXNG5PMWpCSmxnWEpMbUczMndXYjNaWlpGYlZtVmtWVFVsSklURXdrTGphV3lKdVJlUHY0M3Rxdy9YMDlUZzFCNDFKSlRFb2pKZFZDZXBxVmpBd2JGb3VqV0pEcHJTRkpNcktzT0FzY1lrYlV2RGNFZ1JmZGwyamVTRTIxTUcvcGJzTEdkeUM0Y1NXQ0cxZGk4YXpPckZ4emtKaFlOL1hRb3dwRkFVblMzNUduZHViMEh3d012ZmNwN1ROblRoTTJiWXJHYWVqRXhvM2ZFTkxsTFVLNmRuSVI1SW1Pam1iZ0J3TjR1M3ZYbGkxYXRtcE1GaXB4UlZIVUlvS2lpQTdtSHhSSHE0Y2syYlYyRHlmRlVZYWo1U00xTlpYazVDU05Vand4TVFtN3JNKzEwQ0lDV0cxMk5RU05UU0VoS1kza0ZBdHBhUmJTblViTldUQ3dTOWp0a21DWFpDUVp4N0lweEk4L2FxMHo2SFh2UGVnTDVPbm1rd2tkOWhYQmJjSUlxakdjSnhxTzRmdXRKN1R0ZFp0TVpQallqVlN0UDRyaWxUL2k3UGxJTEJZYll5WnZwbnpORVhnVTdVTzlwaFBac2R0VktOZG1rK2dkK2lYZUpmdFR2UEpIZkRwdmUrWVBHSlBNSzUwWDRsZjJBN3hMOXVlRlYrZHc0VktVdHIxajEwWFViVElSZ0dPLy8wMTZ1bzNnUnBXMDdjODJWRVh2RDRaZmROL2hqeWdFQVZMU2hEczZ0bktWcW93YU0vYWVqbS8rdkxrc1c3cUVTeGN2YWlTdUFGZXZYbUhEK3ZVc1dMU1VaY3RYY3VMRU1ZMDhkZjY4T1RScjlqOVdmcjZLZDk5Ny8xVVBEN09ITXh6RlVTRVZCRUVIT0kyYnl0c21TVWlPVlV3Mm13MnJMWXV5ZkhvNnFTbXBKQ2FxSVdsMFZCUUppVkt1T1RZOXdJMGJDVVRISkJPZmtFcFNrbG9GVFhPMGRsaXNkcXlhcHliaHFJSTZ2RFUxRFAxNDhFdTlLS0NDKzczR2dtVy9zSFY5UDVvOVY0WE5QLzdPSzEwV2Nuam5VR3JYVUJjN3o1aS9rNVVMdW1FeTZxbFVvU2c5KzMzQmp6di9ZT0duYjFHcFFsR1dmcjZQRjE2ZHcvRzlJNmxXUmVYck9uRDRJdVhLQm5CMHp3aU9ucmhLajM2ZlU4akhUTSt1alFrZDlqVVdxNDN3bjRjQzBHL3dWNFM4OXhuN2YxSVptanEycTBOOGdscmV1aDZSZ05Hb0o4QS84OGxzTU9nSThQZmkybzBFOXgzdVJnN0V4c1l5Y2NJNFlxS2pFRVNSOTk3clE0T25HM0x0MmpVR2h2YkhaclBpNit2SGlwVmZaS1k3aG56RWpSdlhBVlYweWRQTGl6VnIxd0VxcmYrY1dUTklURXJFMzgrZndVT0hhVm9XQU91Ky9vb05HOVpyK3dQMGZLY1hScU9Sc0dsVFhNYjIrNGtUUEZXM0xwNmVudGp0ZHZ4OC9UaHgvRGoxNnRYbnhJbmpmUENCU3VqajYrdGJyMFNKNGkwdVhicTBHYkE1WGxvaFFWRVUyUkdTT2xZa1NPaDBkdXgyR3phYkhxdk4wYWlibms2YVNRMUpFeElTaUltTndXVEl2YWRObjU1dTFYcldFcE95VkVFMW8rYklxemx5YTQ0UTFPbXRDU2YyZlZ4SXB4TjdQU3dYd2xzZDY5SHNPWldBOHNWV05XamVwQ29MbC8vQ29wbXE5bVdiRmsveVdudVZhQ1F1UHBYUFZoOWcxWklldk5SYVZmMmVOcTRqaDM3OWl5bXpmbUxsQWxVNXZWalJRaXliMHhXVHlVQ2xDa1g1N2ZnVjVpemVSYyt1amJsOE5aYlNKZjBvV2R3UFQwOGp5K2QyNWRxTmVHMDhiM1NvcC8wL0xkMktoNGMrbHlTckhvdlY3cjZMM2NpQnI5YXVwa2FOR29SMGU1dExseTR4Zjk0Y0dqemRrRktsU3ZIMStnMmNQMytPaWVQSHVSd3phY28wQUJJVEUrajlUZzgrR1BnaG9NcjJUUncvbHZFVEoxTzhlSEYrK25FckMrYlBZL1NZek9OcjFxcVZnM2s0TDRIbHhNUkVQRHc4aUk2T1p0S0VjVWl5aEk4alQ1aVltSWpKdzRQdk4zM0hqaDNiOFBUMGZMVkh6M2YyTEZ1NnhPbzBiSTVWQ1pJajM2YklpaUlJYWtpcTJDVzdZTFByRkwwekpEV29JV2w2ZWpxcHFTbHFTQm9majBFdmtwNHVZemE3amxHOEVhbUdvUEdKbVQxckdlbVpCUU9iemRtemx0VmJBOW5oclZXdFhMd25VTzFodVJEcTFIU2xvYWxlcFRpbnp0elEvcTc0ZU9aQzh6Tm5JNUJsaFliMXlyc2MwL2pwQ3Z4eEpsTlhzMjd0SUV3bWcvWjMvYWZLOGVlNVNHUlpac2lBbG56LzQrOEVQajZRTnEvTjRic2ZUbEM5U3U3TXJHWVBBMWFybE9OOWk4V09sNmZSZlJlN2tRUDE2amRnNTQ3dHJQeHNCWmFNRE1LbXp5alFjYklzTTJiMEtOcTgySmI2OWRWZzZxKy9Mbkh0MnQ4TUh6cVk3aUZkV0wzNlM2SnV1dW9MVktwVW1WYzZkQ3p3K0U2Zi9vT1JJNGJ5VHU5M2FkclV0U2QvMG9SeFhMNzhGMkhUWjJJeW1hcDA2OTdqZVZ3S0NZNEtxWm9TRTFDOU5tUlpRckpMU0hhN1F5dEJyWkphTFJZeUxCbWtwNlZyaFlURXhFUnVSQ2JtOU5qVW5yVVVraHplV3JyVFc3TTRRbEJuejVva0M1SmQ5ZGFjemJobndzZjQ2WFJpejRmcFFwQ3phVnRtV096b2RKbkYzNndHSkx1Vnovb1pXWVYramRuY1hiMWVSSzhYRVVXUnRpL1U1UHFaS1h5LzlYZCszUGtIdzhkK3kveGx1em04WXhpZTJZeFZxUkorWkdUWVNFaE13N2V3cDVhL2k0MUxwV1J4WC9kZDdFWk93MWF2UG5QbkxTVDhTRGlmcjF5QjBXaGt6TGdKdHp4dTJkTEZlSGg0MExsTDF5eTVZaHZGaWhWekNWdi9DUW9YTGt4R1JnWmgwMmRTcUZBaFRwdzRUbUZmWDIzYk00MGEwNkpsSzgxYkxGNjgrS3U5ZXIyN2MvSGloZFlzNGFpZExMeHRMbDZiWFJKMGRydmlVaVcxV0VqUFNDYzFOWTNrNUdUME9vR29hSmxpUlF2aDVXbks5TmhpWXBOSlNFeFhlOWJTclZyQndLWlZRZVZNYjAxV3ZUVm5idTN4Y28rOURUeitNRjBJNFVjdnUveDk2TWdsYXRmSW5VMjFZdmtpNlBVaUI0OWNjbm4vUVBoRnFsVEt6RHVjdmVENlZEdCs4bStxVlZZSklZZU0yc0Q1aTFGMGVlTnBWaTNwd2Y2ZlB1TFU2UnNjUDVtVFE2cDJqZEtZelFiMkhqaXZ2YmZ2MEFWRVVlRHBiRjZqRzI0QVRKbzRudkFqNFRSdi9qekRoby9rMEtHRExnL2QzTEJ2MzE3MjdON044QkVmdXdnV1ZhaFFnYVNrSkg3WnMxdkx0MzIvNlR1WFk4K2ZQOGZHamQ4VWFHeFAxcWlCMVdyRlpESWhTUklIRCt5blppMVZ5N1JXcmRyYU9JLys5aHRCUWVVd21VemwrL1R0MTV4c1JZVHNYcHZzOU5yVVFrSm1sZFNtQ2k5Yk1qSklUMWR6YlNrcEtjVEVKaE41MDlWcjA4Y25xQ3NNVWgzZW1zVmlVOWRzT1VOUW04TmJrMXk5dGQvMkRQZlI2Y1MzSDdxY3hJWmZlYWIrNHp6ZnRDb3JWaDNnNU9ucnJGclNJOWQ5Zlh3ODZOZXJHWU5HcnNmYnkwU2xDa1ZaL3VWK0RvWmZZdXJXRDdYOS9qaHpnNFhMOS9EdTI4RWMvdlV2NWl6YXhkSTVYUnhHTDVJK0g2NWhYdGliQlBoN3NXTFZBYnk5VFpwaFhQdk5FZUlUMG5pdlJ6QmVYaVo2ZEdsTTM4RnI4Zkh4d0dqUTB6djBTN3AzZWdaL1B5LzNYZXhHRG5UdTNKV3dzQ21zWGIwS1daWVpPT2dqUkZGMEtSNGtKaWJ5V3NkWHFQUFVVd3dkTm9LNXMyZVNrWkZCbi9jeVU5OXo1eS9DeDhlSFNWT21NZlBUNlN4YXVBQlBUMDhHWmhOU1BuYjBLQnMycktkOSt3NjNIRnZac2tHMGI5K0JkM3YxUkVIaDJXZURxVmV2UGdEdjkrbkg1RWtUV1BmMVY1ak5ab1lNR3c2QW43OS9oL2F2ZE5pK2NjTTNOc0RxTUc1MlZHVXJsVzFYYmRwMTVOcFVyeTFybGRSaXRXcTliVG9SNGhNa29xS1RLVjdVVjR1U2hGbVRYK1ZHUkR4Uk1jbkV4NmVTbUt3dWVrOU5zMnBMcVRJc2ttQzFTdGp0aWlESmlxZ29pTmJvK2YxME9qSHNZYm9Jbm00K21TZXFsdURDWDlFY09uS0pHdFZMTVgxOFI1NTlSbTJwcU50a0lpKzNxY25Jajlwb3gxaXRka2FPLzQ0dnZqcEVRbUk2dFo0c3pmaVJiZmxmc01yOTlPSEk5Wnc1RjRHZnJ5Yy8vM0lXblU1a2FHZ3IrcnpUQkZEYlBRWU0vWXJ0dTg2UW5KSkJuWnBsbURhMkE0MmVWbVhRT25aZHhPV3JzZnk2ZTdnam4yWWpkTmpYclBubUNLSWcwTEZkSFdaUGVRTVBENFA3TG42RXNlZDQ1ZitrNmxwdWlJK1BuMWpqaWFyZkF5bEFLcEFtQ0lJRlZkM0s3bEMxa25VNm5XSXdHakVaVFlxSGh3a1BzeGxQc3lkZTNsNzQrQlRDdDdBdm9nZ05hMG1VRDNxTWFsVktVRDVJcFRVU3hvOTh5WFVabGNON1MwMnprcDVoSlNQREpsaXNFamFiSWtpU0xNZ3lZdWZYNitrL1c5RGpNUERrdzJiWVdqV3Z6dWloTHoyeU40aWlnQ0M0di92RE1tY0YvZXhIeWJBcGl2SkhvNFlOM3YvNzc2c3BEdU9XSmdoQ09tQkJsZXlUUkZHVVJWRlVEQWFEb2hKUGVpZ2VIaDZZUGMxNGVucmg3ZTFONFVLRkVRU0Zlay9LbENubFQ2VUt4YWo1UkdrOFBBem9VeHk1dFl3TUcxWkwxdFVGV1JhNVordGJXenFuVzVlSHphaGxoK0RiKzEvM2cwZWVtMGJSSXJlL3JFWlM5RnlPcWt4OGtoNUpGc2xJZnpSVnFqek1ablNpZ244aE8wRkZ6aUlLZWJmUXlBcGNpYWxNYklJSlNkYmRzemxUeHlRVFdOaEMyY2ZPM3RMSVhiOTI3Vkg0cWFvdldMajQyUmZidE5ycHlMWFpGRVd4Z1dBWEJMV1FJTXV5QUNnMm15M1RJT0pZNlNTckt4VThUQ2ExdVRsRklqRXBrOW9vcUV3Zyt0UTBpNE81STF0dVRaS1JKRm1RSk1XeHlrQjlvU0RxOWJvdUQvMVRJV0hSSTNFenA5djkrUDFDS2ZRR0Qzd0t1M1ZGVTFOVGlFOU9JaWFoS2pVZnY0cEpuNWlyVWZ2MTNCUG85T2I3TW1lcHFTbkVKaWNSRmY4RTlTcWR5dGU0bFN6MWFCRGpGQzlSb2czd2k4T3dXUUc5SUtESDBkZUdxbXdscU12UUJRVUVRUlFFUlJUVmJnUlJwOE5pdFNLZ2tKb21rWnljUVh4Q0dqRXh5WlFxNFllWW5tNVR2VFdyU3lNdWRydUVKTWxxSmRSQm5xU0FrSFp6Ym11ZzhjTTRXWWQyREgza3d0REl1Q0xvRFI3L0tWYUlmd0l2TDIrS0ZpdUJUdTlCUkZ6dWlsK1hvNnVoMDV2djI1eGxqc25NbFpqS3VBR2lLRGJjcy9kQUxUSkpLQTJLb3VoUUs2U3FOVk1VRkVWV0s2U3lNNHJNdXBaVWxTUklUN2VSa3BwQllsSWFzZkdwUkVZbElhWnJQR3RxejVyTkxtR1hIRWJOR1lKbU1uZ0lSb1B1VGZmUDh2QWdOdEgwbjJTRitLZnc5aWxFVEtJcDEyMXhpZm9ITW1mZVBvV0lTVEM1Znh3SFNwY3VuYjMxdzhuOG9YT3lmamhvalpBbHRmM0Q3bGdrYjdmWnNEcGFRTkl6cktTbVdVbE95U0FoSVkyWTJHVDBGa3NtZWFUV3M2Ym0xZ1MxYjAxeFdFNkVoQ3N6bnhRRTRkWGJDZ2tmNFdUMnZaNGZTZFloeVRxM3A1YUhsNVFZSDRzc2d5aTZ6dmVEbWpOMVRIRjM5SnNuSlNaeSthK0xwT2Fqb2V2bDVVMVF1Y2NwVkxqd1hSbnZ2VDZud1dCb3UvYXI5Vis5OFhySEMyUlNoK3NGUWJBN3dsRlpsZXhUQkVtU0ZVbVNCTWt1S1U2dnpXNnpBUW9XaTB4NnVwWFVWQXVKeWVuRXhhV2lWM05yV1pkTnlRNXZUVmFMQmdvNCtkYTh2RXl2RjJUQS96R0s0M3Y3RlBjRW5VNmlpRzlDdmxUSHVVRW5Tbzlzb2FBZ1NFOVBkekZxb0JxVUJ6bG42ZWxwZC9RZysrdlNCZExTVXZQZEp6VTFoY3QvWGFSR3JUcDNaYXozNDV5MTY5UitEcmlhSmRkbWRYaHRrcUtvdVRaRmtSVlZ4VXB5cFRheTJ4RlFzRmdsTWl3MjFXdEx6aUErTVExOUZ2MENOYTltenl3YXlBNVhFQVZoODFkOVBFUlJlTDBnUnUwL1JuRjh6NUdhbWtKRWdsKytWTWQzaXUzYmZtTEY4bVZFUmQya1JJa1NmUDdsR3M2ZlAwZVA3aUhhUGtPSGorU0ZGOXE0ZjRpSEdMY3lNRm12cFgvVE9UMDl2ZHEwZTduOSt1KyszV2pKekxWaEV3UkVVQnk1TmtGUUZCbEpraFZKbGdTN3VrZ2V1OTJHQUZpdE1oa1dHK25wVmxKU00waEtTa2VmblVEU25pVzNsblg1VlBPbTFWNEZTdDlxb0ZrcGp0MG9lSWppNWVYTnpVaVptL0YrRlBPUHZ5dWZlK1BHRGFaTW5zaVljUk9vVjY4K1NVbEpBRlNvVUpIdE8zY0Q4RTZQYnZmc2V5MWZ0cFIyTDdjbklDQWd4N2htelpqT3laTy9ZelFhYWY1OFM5NTd2NC9HS25IdDJqWG16SnJCeVZNbk1abE10R2pSa2w2OTM4dkJPbkUzY2F0elB0ZTRJUWFEQVVFUUNRb0tvbnVQbmpScTFOaDk4ZjV6bEJyNThhZ0czMzI3Y1JmYUVpdEZEMEttUG9KS0lhNWt6YldwaStRbFFNRnFrN0ZZN0dSWWJLU2xxN2syMFJtQ1NwS2MyZUloWjdaNDRHengwT2tLdE9UL3YwcHhmRi9DMG55b2p1OEVaLzg4UTJCZ0lJMGFOY1pvTkJJWUdPZ0l4d1JNSmhNbWs4bGxMZUhkeG1jcmxoRVhGNXZqL2RHalJsS3lWQ2syZnJlWnhVdVdjK2pnQVRadCtsYjErR1dab1lNL3BGTGxLbno3M1dibXpKblBudDI3MkxqaG0zczJ6b0tlYys3OGhYeS9aU3ZkZS9Ra2JPcGtObnl6L29GY0o0SWdVS2RPSFZxMGFFSHo1czBwVWVMMm5BaEprdGkvZngvRGhuekV0Yi8vdmk4cGdiRmpSdkhXRzYvUnZWc1h6cHcrclczNysrcFZ4bzhiMDR3czFWRWM2MGVkREx1U0pBbVNKQW1LSWd1U2F0d0VwN0N5SktrUnA5VnFkL0hhTk1QbTB0NGhPU20vMVJhUCtLc3puaEFFV3Q3cUMvd1RpbU0zVk04dEw2cmoyOEh4NDhkNHVXMGJwazJkVEdSa0pDKzNiY1BMYmR1dzhyTVZCZjZNUXdjUDBQbXROMmplTEpnZTNVUDQ0OVFwbCsxN2R1OGlwR3NuWG1qMVBOMjdkZUhRd1FQYXRuNTkzK2ZsdG1wbys4R0EvcnpjdGcxOTMzOVhNeUxCd1UzcEd0SU5rOGxFa2FKRnFWdXZIdWZPbmdVZ0xpNE9QMzkvT25YdWpORm9wRlRwMGpScS9DeC8vbm5tbnMzNzdaelRiRGJUcUZGamhnMGZ5WkxGQzEwWVplOFh5cFVyaDA2blk5dTJiZXpkdTVlYU5XdGlNQmh5TmRpNS9YOUEvNzc4c21jM1o4NmNScEtsMnpwMzQ4YU4wZXYxZVQ0Z2N2dDczZGRmNGVucHllcTFYek40OEZER2p4dUQ0cmpJWjg2WXpzdnRYMm0yWnUyNjBtVFRId1YwZ2lBSW9pZzYxNDRpYXpVQVNYczVxZFdzRmpzWkdUYlMwcXlJem9LQlhTc1lPTFVNdEtLQjRPM2wwYjVnVDVJN3B6aDJRMFZLcXZDUGMyeTFhdFhtMjAxYkdCQTZrSklsUy9IdHBpMTh1MmtMSWQyNkYrajRpeGN1OFBISTRielhweTlidG03ajFkZGVaK0FIL1RYdXJpdFhMak4rM0JpR0RCbk81aDkrNHFXWDJqRml4RERTMHRTay9KeTU4L2wyMHhZQVpzeWF6YmVidGpCMy9rSUFSRkdrVStjdStQcXFudWxmZjEzaXdQNzlOR2p3TkFDQmdZSE1tVHNmRHcremRuTWNQM2FNR2pWcTNyTTV2NU56MXF2ZkFLdk5waG5rKzRuQXdFQnUzTGpoY0NaVWlpMC9QMWRQLzhpUmNFWU1HNExOWmlNdUxvNTNlblFuTGs0VkcvNTB4aXlHRFI5NVJ3NUlRRUJBbmw3K2h3TkRPWDdzcUdiTUZzeWY1N2llem11L2I5VnExVEVhalZ5N3BucUs1OCtmbzBHRHA2bFZ1MWFEWEx3MkVSQVZCVUVRQkxYdFE4bGFSSEMwZ05pemVtMTIwak9zaUhaSjFzUlpuR0dvckdTeWVLQW9naWdLTC8rVEgyTFF3RkJlNjlpZWtDNXYwYlh6bTJ6Wi9MMlcxM2l0NHl1MGIvY2kzVVB1N1dLRzdpRmR1SGp4OW5RRnR2MzBJNjkxZklVWFdyZGc5cXk4Q2Y1MjdOak82RTlHL21lTTYrYk5td2h1MHBSR2pScGpNcGxvMWZvRnFsU3R5amFIa0VkQVFDRExWM3hPdGVyVkVVV1JsOXEydzJhMTh2ZmZWd3Q4amo5T25hSkY4NmFFZE9sRWxhcFZlUzY0U2E3N0xWd3dEN09uSnkrMHVYODZRUVU1cHlBSStQdjVrNUo2LzBWNGpFWWpraVFSRUJCQTQ4YU5rV1VaazhtMVA2NXUzWHI0QndRd1p2UW5EQm80Z1BhdmRNRGYzMTg3L2w2Z1Q5LytUSnd3bnJselpyUDFoeTEwNmFvV3FCNnZVSUZmOXV4QmxtVXVYYnJFelp1UnBDU3I4L2I0NHhYWXMzc1hYbDdlemJNWk5YMm1jY3ZzYVZOa1J6anExRWVRVk1kTVZaS1hzRmh0cEdmWUVMTVlOYTFnSUN1QW8yaVFHakczR1hlQklmZWpJY05ZK2NWcTVzeGJ3T2NyVjNEcDBpV04zbmhxMktjUDVRM2VvbVVydmw2L2dXN2QzdVpSUW1Sa0pNV0x1K1p0eXBRSklqSlNaUlgyOXZibXQ5OStwWGV2SG5SNjgzVzZkZTJjYXlpU0g2by84UVRiZHV6aXEzVWJpSWlJY0ZFNGN1THpsWjl4K1BBaEprNmNuR2Y0YzdkUjBITXFpa0pjZkJ6ZUR5anRVcTVjT2FwV3JjcisvZnUxb2xCMnc5dTc5M3NjL2UxWFRFYlRQM293bU0xbU9uYnNTTWVPSFRFWURMUnIxNDZPSFR2eTJHT1B1ZXozZUlVSzZqM3oxUnA2OVg2WFFvWFVYUHVycjcyQlRxK2plN2N1ZlBINVozaDdlMlAyVkwzalFSOE81dWVmZC9KMjk2NVZ1b2FFVkhFWXM2eDVOcDJpS0NwWG0zTTFnaXdqT1VOVFdkWTZPbFN2VGNKaXNhR1hzcXd5Y0RUa09zTlFBTUZrMHJlOW16OUk0Y0srUFBGa0RTNWVPRS81OG5tVEt5WW1KakI1NGdTaW9xS3cyMjEwNnR4VlkrTThjK1kwTTJkTUp6MHRqU0pGaXpGMDJBZ3RNYjU3MTgrc1h2MGxsb3dNcWoveEpCOE0vRkRMUCt6NmVTZGpSMzlNZW5vR2ZmdjExN3lFYjlhdlU1UFhpa0xUWnYralcvY2V0L3dlUjQ2RTgrbjBhWWlDU01sU0pmRTBlMnJiOGh0RDgyYkI5Qi93QVV1WExFSlI0UHN0V3g4NncxYTBhRkVpSXlKYzNydCsvUnExYTZ1OVNudC8yY09xTDc5Z3hzelpsQ3F0RnNxZmE5d3cxNXNydTdHelpHU3dkZXNQdEc3OUFpWVBENG9YTDA3ejVzK3piOTllbC8zV3IvdWE3ZHQrWXRhY2VYZXQ0ZlJXdUoxekhqa1NqdEZnb0ZMbCs3OUV5bXExWXJmYk9YcFVEZnQwT2gwV2k4VTFwWkdTd2tjZkRhUnpseERPbmYyVEtaTW5NblRZaURzcUZxV25wN04rdlZvb2FkZXVIVC84OEFOWkY2ZG5qWEIyNy9xWjhSTW1NVDFzR2hNbVRhWlNwY3FZeldhR0Roc0JRRkpTRW0rODFvRVNKVW9DVUtwMGFUNmRNY3R4Myt4cStQbktsWDlrTld5Q0lEakNVVVhJR25xcktUTUpSUkdRSkFXN1hmWGFiRFk3Rm90ZERVVlZiMDBXSEVVRFRhaEZVUlJSRUlTN0dnTkVSMFZ4NnVUdlZLbFNOZC85enAwN3gvK2FQOCt5RlN1Wk0zY0JzMmJPd09wWUd6YnE0eEdFaGc3azh5L1g4TXd6alZpeWFJR1dyMW0vZmgxejVzeG41UmVyQWZoaHkyYnRNMzE4ZkZqNXhXcEdqeG5IL1BsekFaVlliL1BtVFN4Y3RKUWx5ejdqdDk5K1k5ZlBPL01kbThWaVljSzRNWXdhUFpZdlY2K2xUT215MnJaYmpjRnV0eE1WRmNXNmI3NWwvVGNiSDVqeGNuWnZBeWl5ak4xdTE0eFFteGRmWXMrZVhZU0hIOFp1dC9Qenp6djU0OVJKV3JSVTYwZXhzYkVJQW9nNkhZbUpDYXhlOWFYamMxeXJIc1ZMbE9EUXdZUFliRGFpbzFSSlFxUEp4QmVmcjJUdDJ0WFliRFlTRXVMWnUvY1hhdFNva1JrS2Y3K0piemR1WU9ic3VWcjRkTS9EN3dLZTAyS3hjUGpRUVNaUG1rRHZkOS9IeSt2K0U0UkdSMGRyQnNwb05PTHI2MHRDZ3F2SzJjV0xGd2dPYnNwYm5Ub3o4cFBSR0kwbUxjZDJyM0R5NUVrK25UR0w1NEtiTU9MalQvanQxeU11MjVPU2twZzJkVEl2dnRRMlJ6ajg5OTlYV2JaMGNiTXNJYWhXUkhCNGJLSWdDQzdMckZRYU5kbFJJM0ROdGVuVlNxaXNlV3V5eW1FcEFFSjY1THpXUU1tNzhhV25oMDNGN0dIR2FETFNwMjkvU3BjcGsrLytOV3ZXWXZteUpXemI5aU02blI2TEpZUGs1R1FTNHVQeDl2YWhhclhxQUx6VXRoMU5telVENFBEaFExejcreXJ2OW41SGU3SjVlL3RrNWgwYzdKNVZxMVhURXVIaDRZZDQvdm1XbU0ycWEvemlpeThSSG42WXBzMytsK2ZZcmw2OXdtT1BGZEdNYzVWcTFkajN5NTRDalFHZ2EwaTNlNWJuS0FpeU4raE9tVHlSS1pNbjhueUxsbno4eVdncVZxekVxREhqV0RCL0xwRVJFWlFwVzVhcFlaOXFNbTJ0WDJqRHFWTW42ZEc5S3pxZG5uWXZ0NmRpeFVyRXhidmVPQU1IZmtqWXRLbXNXTDZVTW1YS3NIVDVTb3hHSTFPbWhqRjN6aXkrV3JzR2c4RkFjSk9taERqQ2ZVbVNtRFpWRFFQZmZOMjF3K2p6TDFkVHJGanh1ejRmQlQxbnZ6N3ZJd2dxYyt5Z0R3ZmZ0VDQyUlFGdno0S1h3aTlmdm95dnJ5L05temNINFBqeDQxaXQxaHozdzYyQXVRQUFJQUJKUkVGVVQ4MmFLazIzWHE5blVEYW0zRHZGZDk5OWwzY3VQY3M1YXRXcVRhMWF0YlcvRnk5YXdPNWR1L2hmOCtkekZMSDY5M3VmbE9RVVFycS9YV0wwMlBGUE5ubXUwYS9aOG13MlFiWGt6bkJVVVlzSU1vS2dlbXlTbzFiZ3pMWHBKYWZ5bEhQNWxKcGJBeENNUmwzcnUzWHhEUHB3c0VZYlhCQ3NYYk1LdTgzT2xLblRFUVJCYXg5d2hqaE9HQXdHL1B6VUo2ek5haU80U1ZOTmJpeS94Ry9XRUNtcmR5NElnbGFLemkrL2tsZXphRUhHSUdaZjUzT1AwTEpWYTFxMnl2a1RWcXhZaVYvMkhjejMyRWFOR3VkNTQ1cE1Ka1orUE1ybHZYZDY1ZVMvcTkvZ2FiNWV2eUhIK3hVcVZtVG03TG01ZnJaT3AyUFAzZ1AzMWRBWDVKeTNtcTkvQWtFQXZjNU9hbXBLZ1NxVmlxSnc3Tml4ZjN6ZVZXdSt1bTl6M0t2M2UvVHFuYnVtK3V3NTg3T21LdW9CeDdPRm83cHM0YWlneUxJaVNYWkVRVVNTQk1maWdreXZUWlNkWWFpakdxcVN1V2xoYUdzZUVLS2pZL0QyOFVZUUJJNGZQMFpTVWhLS29sQzZUQm1TazVNNWYvNGNBRC85dUZVVGNxMVh2ejQvNzl6SjlldXFXT3pPblRzNGVmTDNmTTlUdDI1OXRtL2JSbnA2T2phYmpSKzJiS2Erb3pTZEY4cVdEU0k2T2xvcnVVZmN5SlQzdTVNeC9KTW52VGxMYnMrTjdFbHZ6eHc5Z1E5NnpuSWJFMEFSM3dSU2svTVd6ZmIwTEZqSVc5RDk3dVpuM2Mxem1qdzhtbVR6MXB3OWJhTGo1U0RsVUFSSmtoQUV1eUE3bzg0c1hwdGVDME1WQlNWTEdKb1dNYmZwM1FwRDgwSitnaFN2dmZZNlk4ZU00b2N0VzZoY3BRb1ZLbFlrTVNHQndNQkF4b3diejZkaDA3QllMQVErRnNpUW9XcGlza3FWcXZUclA0Q2hnei9FWnJkUkxxZ2NnNGNPeTNjTVQ5V3RTOHRXclhtM2wxb3dlUGE1SmpSdDJreExoaTVkc3BpVTFCUmtTV0xmM3IxMDZSckNTMjNiTVhUNENFWU1HNEtmdno5NnZVNHJIdHpKR1A3SmsxNFU1UUkvNlI4bHBLWWtJNHB5anA1QWRjNmtCekpucVNuSjZFUXAxejdGWXY1eDNJajFKeXBTd2N2SEw4Zll5cFd2Y010RjZaNmVYcFFyWCtHdWpmZEJuQk1vc1gzSHJzclBOMjk2Z2l3MFJrNmpwaG8yQkZtV0hlNGJTTEtnZFhZNEs2UkNrVUF6RnF0ZHNGcGw3SklpeUtwWWk4NFdzMkNTS0FvZjNPNm9IaVh1OW51QmkrZi9KTGhXd1pzK0wwZFZKamE1a0h0dGJqYmNqTHhCUUtFa2doN0xPWmVYb3lzVG0zVC81eXkvTVRtOXlhajRRa1RHQjJDVGpLUStvc1F0NmVucFMxdTNicjBLVlE4aEdWWHdKZDBoK0dJVEJDUlJGR1NEWGxDTVJoR1RVYStZUFF5WXpRWTh6U2E4dkV6b25XR29rb1hKUTFFVVVSU0Y1dmM2Q2VwR1RuaDdLcmZGMTFVbThEeFI4ZFc1R1hrRGJ4ODNOWGhxU2pJcEtjblliUm1VQ1RpWGV5b2g4Q3hSY1UvZXR6bHpqa215cDFNMjhHeStIbmhSL3lTSytpYzk0cUk4U2tQZ3F5emhxTTdCOXFGV1J4RWNDK05CbGhWRlZwdDJGVWxTMUFxcFhVS2ZyU2tYQllTNHl6T3FjUWRpTGJlYkJIVWo1dzJnMTlsdjY0SVdSWm02bGM1d09ib3ljWWxXRXVMaXlNaDROQi8xWnJNbm9pZ1RVTmhHMmNmT0lRcEtudGRwdlVvbnVSSlRtWmdFeXoyZE03UFpFNTBvRWVCcm9XemcyUUwvdG84eU9hc2dDTlczcnU5YnZIWEh1WDlweGsxQmgrRElzWUVnS0tyTmttWFViZzVIWmRUNTBxdlUzOW5XaG5wN05MblRRUlh4VFNBaUljRnQyTzRBS1NtSmxQUzdmY29pVWJCVHZzZ2ZsQy9pbHQrN0hjTVI5TmhaZ2g1N09PVDMzSERGVTdXQ3FnRi9PdzJiQWpvaGF3RkJ6YlVwaXFOTlRYS3NSbkQwdHlFNnZEVUJiVzBvZ2s0VW43dlRBUlh6ajBPUkVvaTZlWTIwQjdDTzd0K0l0TlFVb2lLdWdwUklVYjkveHNYMmFEL3BINzQ1Y3h1MU80T3ZyMmN0MUtLQm5zd0NnaXIwb3RHcEtZS3NJRGk4TmtHV2xTd2VtNU9leU9HeERlclhUQ2NJQlArVEgvS3BTcGU0R2UvRHpmZ0FraE9OcEtTNmY2aTg0TzBGQnAyVlVvRnhGUEZOY2srSUcyNEFCcjJ1WWMzcXhRd24vb2pVWndsSFJRUkVCVVVBUVZBVXh4SXJ4Ykc0d0VHN0pza3lncGRaSjlqc2lpQ3AxVkF4K2Zyc3BwNW00NC91cVhYRERUY2VKSTZldU5MbnFlQ0pwOGhTSFJVRTBnR3JJQWcyUVVEV2FkVlJIUjRtdmVMaFljQnNOcUszUzFrV3ZpdUtjRE1xc2VIOTZveDN3dzAzM01qVGF6UG9LZ04vWmcxRkZRVlJFRkE3T0JDUVpRVzdCSUpOUmhEc2FzZ29nT0RoNFNIYTdYWkJVUlJSVVJTZDNXN2ZKQWpDOCs1cGRjTU5OeDRrN0hiN2JvUEJNREdMeDVZaUNFSXFZQkVFd1NvSWdpUUlncXpYNnhXajBhZzQ2TzRWczltTTZGd1hxU2lLOE9xcnIrb0VRV2pvbmxJMzNIRGpRVU92MTljdFc3WnMxc0tCVmtCd09HS3VWRVpaWG9MUmFCUWxTUklWUmRFbEppWTI5UGIyM3VXZVVqZmN1UDlRRklYSXlFaHUzb3hDa2lSU1VwSWYrVGs1ZGVwVTc3NTkrNTUxZW15T1Y3b2dDRmJBN3ZUYWREcWRvdGZyTVJnTWlzbGtRcCtWeWNMRHc2T3UrL0p5dzQwSFk5U09IVHVHZ3FDdGhuRHI4WUt2LzJQbGdRdGthZnR3a0U5cWpUU0NJQ0FJQXFLb1E2L1hvOWNiTWhlV0FvSk9wM3ZxMy9qbFEwTkRhZFdxVllIMlRVbEpRUkFFZHUvZWZjZm5xMVdyRnBNblQ3N1R2QUdob2FFVUtWS0V3b1VMMDd0M2IwMEV4WTFIRjVHUmtTZ0lGQzFXd3QzY25nVStQajZWczRXaG9wTjRNcXZ0VWhtSlpMV2ZUWkhWSEp0em5hZ2dDSFhjVTNsdk1XellNRFp0MnNTNmRldll0R2tUTzNmdXBGKy9mdTZKZWNRUkZSWHQxdVBOQlFhRDRRbHk1dGl5R1RVRmxXNU5RVkZrRkZuV2R1RDgrZk5GZ0VydXFieDNTRTFOWmQ2OGVZU0ZoUkVjSEV4d2NEQ0xGeTltNWNxVnhNVEV1Q2ZvRVlZa1NYZmtxWjA1L1FjRFEvdmY4L0dkT1hPYXNHbFQyTzVRS25OaTQ4WnZDT255RmlGZE83a0k4a1JIUnpQd2d3R0VkTzFFM3o3dmNmWHFGVzNiaVJQSDZmbDJON3FGZEdiMEp5UHoxV1lWQktIQ3lJOUhlZWRqM0FBRUhBc05uTTI2enFxb1VLSkVpU2YvS3hmSmQ5OTlSLzM2OVRHYnpYaDVlZEc4ZVhQT25YTmxldmpsbDErb1ZxMGFIaDRlTkd2V2pMLysra3ZiSnNzeVk4ZU9wWFRwMG5oN2U5T29VU1AyNzkrZjY3bWlvNk41NVpWWDhQUHp3OXZibXhkZWVJRUxGeTVvMndNREEvbndRNVZOOTlpeFk2U25weE1jbkxtdzQ5bG5ud1hnNE1HRDdydjdFVVp5OHAydE9xbGNwU3FqeG95OXAyT2JQMjh1eTVZdTRkTEZpeTVHNk9yVksyeFl2NTRGaTVheWJQbEtUcHc0eHBFajRZNWo1dENzMmY5WStma3F1blYvbXltVEptcXBtRWtUeGpIeWsxRjh0dkpMU3BVdW8ybG01SVZubndzdTRUQmtMb1NUanJCVVc0R2dLbGlwWHB2bTBoa01oditFWWZ2OTk5OTU1WlZYNk55NU0yZk9uR0hIamgzY3ZIbFRNeTVPekpvMWkwbVRKbkg4K0hHOHZiMXAxcXlacHJ3emNlSkVsaXhad3BJbFN6aDU4aVFkT25TZ2VmUG1uTTFGSERjME5CU0x4VUo0ZURqSGpoMURsbVZDUWpMMUJBWU5HcVJ4MDErL2ZoMmowVWhBUUVCV1Y1dUFnQUN1WGJ2bXZydmR5SUhZMkZnR0RRd2xwTXRiZEF2cHpPRkQ2Z1BRcWNuYm9YMWJRdnU3cGpLR0RmbEk5YUs2dkVXN2wxN2d6VGRlMWJaZHZIaVIwUDU5NmQ2dEM0TStHTURObTVFdXg2NzcraXVYL1FGNnZ0T0xzT2t6S1AvNDQ2NzMyb2tUUEZXM0xwNmVLc21xbjY4Zko0NGYxN3l5NTU1VEgrQ0ZDeGZtenovUFlMVmFpWXlJd01Oc0ppaW9IQUQrL3Y2Y09KNC96WG54WXNYS1pERnFqanhiMW5CVXlReEoxVHdiZWxCNzJIUTZYZlgvd29XZ0tBcWZmdm9wL2Z1cjdubFFVQkFoSVNFc1dMREFaYjlQUHZtRWR1M2FBYkJpeFFwS2xTckY1czJiZWVtbGw1ZzhlVExMbHkvWENoSURCdzVrMTY1ZHpKdzVNOGZuWEw1OG1kS2xTMU95WkVrOFBUMVp2bnk1aTVFYU5peVRQVGN0TFEwUEQ0OGNZemFaVERuazA5eHdBK0NydGF1cFVhTUdJZDNlNXRLbFM4eWZONGNHVHpmVU5IblBuei9IeFBIalhJNlpOR1Vhb0VwWTluNm5oNmEvWWJWYW1UaCtMT01uVHFaNDhlTDg5T05XRnN5ZngrZ3htY2ZYckZVcmg1NUhYc0pEaVltSmVIaDRFQjBkemFRSjQ1QmtDUjlIbmpBeE1SR1Rod2ZmYi9xT0hUdTJZVFFhU1VsSklTa3BDWlBKaE5WcVplNmNXZHk0Y1NPSHdsWjJlSGw3bDh0aTFCd0dUaEVkRkFPT1hqYWN0UUpGVVJSQjcyeHlFd1RoUDJIWWF0YXNTVUJBQU5PblQrZk1tVE9jUFh1V1gzLzlsYUpGWFl2bmpSdG5DcFVFQkFSUXZueDUvdmpqRDU1ODhrbFNVMVBwMXEwYmI3K2RLWlJzdFZwZGpuRml5SkFodlBubW13UUdCdEswYVZOZWZQRkZ1bmJ0bXV2WXpHWnpEalVoVUNYZEhvU01teHNQUCtyVmI4Q2NXVE1BZ2ZyMUd4QTJmVWFCanBObG1UR2pSOUhteGJiVXI5OEFVS1VocjEzN20rRkRCNnY3S0RKZTJmUUtLbFdxVEtWS0JkZEtQWDM2RDQ2TkdFcm9CNE00KytlZlhNeVNocGswWVJ3QmdZR0VUWi9KcXgxZWRqR0lBejhZd0lzdnZrU0hqcTh5WXRqUWZNOWhNQmdxWk11dDVjeXhvYUNBVmtEUVoyNmc2bi9oUWpoNDhDRE5taldqU1pNbU5HM2FsTmRlZTQzdzhIQ1dMbDJhNzFOSXI5ZGpOQm8xcmMwMWE5WlF2YnFycmMvTjIycmJ0aTNYcjEvbisrKy81OGNmZjJUNDhPSE1ueitmdzRjUGF5NjZFNlZLbFNJakk0T0VoQVI4ZlgwQnNObHN4TWJHVXJKa1NmZGQ3RVpPdzFhdlBuUG5MU1Q4U0RpZnIxeUIwV2hrekxnSnR6eHUyZExGZUhoNDBMbEw1a1BXWnJOUnJGZ3hWcXo4NHE2TXJYRGh3bVJrWkJBMmZTYUZDaFhpeEluakZIWmMxNFVMRithWlJvMDFrWE5WaHRLYlFvVUtrWlNZeUlTSlUzajg4Y2M1ZS9aUDdWN0lDNElnVk02U1c4dWFaOHRlUUZDY0JRUVJFS0tpb2lvQnB2L0NoYkJnd1FMcTE2L1AxcTFiR1R4NE1DMWF0T0RHalJzNUpQV3k1c3VTazVPNWVQRWkxYXRYcDN6NThwaE1KaTVjdUVDRkNoVzAxNkpGaTlpeVpVdXVIdHY1OCtmcDBxVUxxMWF0WXYvKy9adzZkWXJqamx4RFZ0U3VYUnV6MmN6ZXZabXE1L3YyN1VNVVJaNSsrbW4zWGV4R0RreWFPSjd3SStFMGIvNDh3NGFQNU5DaGd5N1NrYmxoMzc2OTdObTltK0VqUG5hUnFxeFFvUUpKU1VuOHNtZTNsbS83ZnBPclR1ajU4K2ZZdVBHYkFvM3R5Um8xc0ZxdG1Fd21KRW5pNElIOTFLeWxhcG5XcWxWYkcrZlIzMzRqS0tnY1JxT1JZc1dMVTlqWEY1UERzZGkzZDY5MlRENHdMVjY2UERBWGc2YjFzQUZaUERaSGpzM2IyN3ZDZitWQzhQZjNaK2ZPblp3OGVaS1NKVXV5YnQwNmxpMWJocCtmbjh0KzQ4ZVBwM0hqeHZqNitoSWFHa3JGaWhWcDNibzFvaWd5Y09CQXhvNGRTN0ZpeFdqWXNDSHIxNjlueG93WmJOKytQY2Y1enA0OVM1OCtmWmczYng0QkFRR3NXTEVDYjI5dnFsUlJCVzBtVFpwRTdkcTFhZFdxRlY1ZVh2VG8wWU8rZmZ2aTQrT0QwV2lrZCsvZWRPL2UvYjRwbnJ2eDcwTG56bDBKQzV2QzJ0V3JrR1daZ1lNK1FoVEZmQlhlNXM2ZVNVWkdCbjNlNjZWOXp0ejVpL0R4OFdIU2xHbk0vSFE2aXhZdXdOUFRrNEhaaEpTUEhUM0toZzNyYWQrK3d5M0hWclpzRU8zYmQrRGRYajFSVUhqMjJXQk5PL2o5UHYyWVBHa0M2NzcrQ3JQWnpKQmh3N1hJYVBpSWp4azNialEycTQzU3BVc3plT2p3VzU2clFvV0tqd0hYYy9mWUhEb2hHcmVrZ2lDS29vZkZZaG1nMStzbi8xdC8vTkRRVVA3ODgwOSsvUEZIWW1OajZkbXpKenQzN3NSZ01QRFVVMC94eGh0djBMTm5UNjVldllxdnJ5OCtQajVNblRxVmxTdFg4dmZmZjlPb1VTTVdMbHhJR1ljNnZjMW1ZOHlZTVh6MjJXZkV4TVJRdVhKbFB2bmtFenAwNk9CNEd0WGlqVGZlWU9qUW9VUkhSek5nd0FDMmI5OU9jbkl5ZGVyVVlkcTBhVFJxMUFoUTJ6MjZkZXRHV0ZpWWxrOExEUTFselpvMWlLSkl4NDRkbVQxN2RxNWhyaHVQRHZiczJlTldkOHNIY2JHeFlUVnJWTitPdW1iVStVb1RCQ0VEVlNsZUVrVlJYVE5xTUNpQ0lBaG11OTArVXhURlh1N3BjOE1OdDJGN0dKR1JucjY2WW9WeVgyUXpiS2xaREp0ZEVFUlpweE1WdmNHZzZCM0p1YUIvNnhlZU4yOGVmZnYyL1UvOGVKR1JrVG1xdHdXQkxNdGN2bktWdUxnNEpFa2lJLzNSWEh2cVlUYWowK253OXdzZ0tLZ00rUkdtS29yaW1MTlk3UFo3TjJjZVpqTjZ2WjRBL3dDQ2dzcmVjdi9yN243R1hDRkpVbkVjVGJsWlg0cWlwaEhWN2c0WldRYkpMaUVJZ3VBcHkvSlJvTEo3K3Y1OXNGaXNuRGh4QXAxZTc5WVZCVkpUVTBoSlRrS1M3TlNxV1F1ajBaQ3JVZnYxMTk4UWRicjdveXZxR0pNc1M5U3JXOWZ0c2QwQkZFVTVYNlpVOFEvSUpKMTBFazg2cWNMdGpuQlUwZXYxaXJPNlVOWTlkZjlPUkVSR29OUHIzYXdRRG5oNWVWTzBXQWwwT2owM0ltN2t1czlmbDY4ZzZuVDNiYzZjWXhKRkhWZXVYSFZmdEhjQVFSQktaL1BZc3YvZnBWbFhQSC8rZkZIQW5ibitseUkySnRiTkNwRUx2SDBLRVJNVG0rdTJ1TGk0QnpKbjNqNkZpSWwxa3gzY2FWVC95ZWd4M3VUWjh1SFViUUZRMEFjRUJCUjN6OW0vMVQyL2MxYUlSOEZ6UzB5SXkzWGJnNW96THk5dkV1UGo3dWpZcE1SRUx2OTFrZFI4dEhxOXZMd0pLdmM0aFFvWGZtRHpmaS9IV2JWS3RVSkFUQzdlbXZPT3dObjZvVGVaVEVYdi9nM25wamd1S0h4OENxSFRpUlFwVW9UaXhXL3ZHU01Ja0o3dUpxbk1DK2w1RUhnK3lPTEtuZjVlZjEyNlFGcGEvZ0s5cWFrcFhQN3JJalZxUFRoYXhYczV6c2VLRkNtVTNWdHpGQThFMTNCVVVmUTZuZTZ1R2pZM3hmSHRJelUxaFJzUmtkeUlpT0NwT25mM290eSs3U2RXTEY5R1ZOUk5TcFFvd2VkZnJ1SDgrWFAwNko3SlFESjArRWhlZUtHTis0ZDRpSEVyWTVIMVd2cXZqck5Rb1VLRnNoZ3daM091NEZnTW56V1NFZlNpS0Q1Mk43OVlWb3BqTndvZW9uaDVlUk4xTTRMSXlFaUtGU3QyVno3M3hvMGJUSms4a1RIakpsQ3ZYbjJTa2xUT3J3b1ZLcko5NTI0QTN1blI3WjU5citYTGx0THU1Zll1TkUzT2NjMmFNWjJUSjMvSGFEVFMvUG1XdlBkK0g0MVY0dHExYTh5Wk5ZT1RwMDVpTXBsbzBhSWx2WHEvbDROMTRtN2lWdWQ4cm5GRERBWURnaUFTRkJSRTl4NDlhZFNvc2Z2aXZZOHdtejBLdVJxMUhDL0gwa2tGVVJURmdMdDVjamZGOFQ4d2NONCszTHg1ODY1OTN0ay96eEFZR0VpalJvMHhHbzBFQmdZNlFsZ0Jod2FqeTFyQ3U0M1BWaXdqTGk1bkFuLzBxSkdVTEZXS2pkOXRadkdTNVJ3NmVJQk5tNzRGMUo2OG9ZTS9wRkxsS256NzNXYm16Sm5QbnQyNzJMamhtM3Myem9LZWMrNzhoWHkvWlN2ZGUvUWtiT3BrTm55ei9vRmNKNElnVUtkT0hWcTBhRUh6NXMwcFVlTDJuSWlEQi9ZVDByVVRyNy82Q2pNK0RkUFdkTnBzTnNLbVRTR2t5MXQwRCtuQ3ZuMlphNXJ6WThTOWQ1Rk1LcHUrKzVhaGcxWGFKWVBCbU4xakUzRVVEckpHakZhckZWRVFoTHU2U05HZHpQNW5ucHRka3Y3eDV4dy9mb3lYMjdaaDJ0VEpSRVpHOG5MYk5yemN0ZzByUDF0UjRNODRkUEFBbmQ5NmcrYk5ndW5SUFlRL1RwMXkyYjVuOXk1Q3VuYmloVmJQMDcxYkZ3NGRQS0J0NjlmM2ZWNXVxNGEySHd6b3o4dHQyOUQzL1hjMUl4SWMzSlN1SWQwd21Vd1VLVnFVdXZYcWNjNUJTaEFYRjRlZnZ6K2RPbmZHYURSU3FuUnBHalYrbGovL1BIUFA1djEyem1rMm0yblVxREhEaG85a3llS0YrZEphM3l1VUsxY09uVTdIdG0zYjJMdDNMelZyMXNSZ01PUnFzTFAvUHlNam5hbFRKakZ4MGxSV3IxMUhURXdNMjM3NkVZQ3RQMndoSXlPRGxWK3NadnFNV2N5ZSthbm01ZWZGaUZzUVBQSEVFOXBETmI4eFp2MDdKaWFHZDNwMDU4S0Y4OXJ2b05mckMrWGhxV2t2V1piUjYvV0lnTi9kblBRN3BUaDJRMFZLOGo4dnROU3FWWnR2TjIxaFFPaEFTcFlzeGJlYnR2RHRwaTJFZE90ZW9PTXZYcmpBeHlPSDgxNmZ2bXpadW8xWFgzdWRnUi8wSjhyaFRWNjVjcG54NDhZd1pNaHdOdi93RXkrOTFJNFJJNFpwYWx0ejVzN24yMDBxRThxTVdiUDVkdE1XNXM1ZkNJQW9pblRxM0FWZlgvV3krK3V2U3h6WXY1OEdEVlIyazhEQVFPYk1uWStIaDFtNzBJOGZPMGFOR2pYdjJaemZ5VG5yMVcrQTFXYlREUEw5UkdCZ0lEZHUzTkE4RkZtV2M1QThIRGtTem9oaFE3RFpiTVRGeGZGT2orN0V4Y1VSRVJHQnI2OGZKVXVXUktmVDBhcFZhdzRmUGdTb3JMZlBQdnVjNDNjU01CaU1uRHQzVnR1V0d5TnVBWE5qZVpKVkxsdTZXS01HUDNueWR3YjBWMWNSK2ZyNjhzV3FOWVIweStSRTFPbDB1WVdpdUlhaHFrY3JBdmM4Ymh3ME1KVFhPcllucE10YmRPMzhKbHMyZjYvbE5WN3IrQXJ0MjcxSTk1QXU5M1FNM1VPNmNQSGl4ZHM2WnR0UFAvSmF4MWQ0b1hVTFpzL0ttK0J2eDQ3dGpQNWs1SC9HdUc3ZXZJbmdKazFwMUtneEpwT0pWcTFmb0VyVnFteHpDSGtFQkFTeWZNWG5WS3RlSFZFVWVhbHRPMnhXSzMvL1hmRG0wejlPbmFKRjg2YUVkT2xFbGFwVmVTNjRTYTc3TFZ3d0Q3T25KeSswZWZHK2ZmK0NuRk1RQlB6OS9FbDVBTWw2bzlHSUpFa0VCQVRRdUhGalpGbkdaSEpsSGF0YnR4NytBUUdNR2YwSmd3WU9vUDBySGZEMzk2ZFlzZUxFeGNWeTZkSWw3SFk3NGVIaHBLU28zOEhKaUh2cTFFbUdEUDRRbzhsSVltS2l0czNKaUR0M3ppeU5FZmVmNHMyM09yTnIxOC9NbVQyVGNXTkcwN2RmZjZkM2xpT25LZ2lDZHo2NU5SY2pweGNFNGI0a3hENGFNb3g2OWVxVG1KaEFyNTV2VTdXYXluMldGNzN4dzRBV0xWdlJvbVVydnY1cUxaR1JFWStNMXhnWkdVbUZDaFZkM2l0VEpraWJBMjl2YjNaczM4YjQ4V05JU1U3Sk02eklEOVdmZUlKdE8zWVJFUkhCSngrUFlQbXlwZlI4eDVXSDRmT1ZuM0g0OENIbXpKbVBYcSsvTDkrOW9PZFVGSVc0K0RpOEgxRGF4Um1PN3QrL24xcTU4SmtKZ2tEdjN1L3h4dXNkS1ZPbXJHYWt6V1l6dzRhUFpQS2s4WTdmdFN5ZVpyTjIzUGZmYnlJOVBaMUprNmN4ZSthbkxwK1pGeU51WG1qVnFoWGUzdXI4T1BPQXAwK2Y1dlRwMDlvKzN0N2V2UHZ1KzN3UTJvODMzK3BFNWNwNUx5c1RSZEU3bnpCVU0ybzJtdzA5Y0Y4NXFRc1g5dVdKSjJ0dzhjSjV5cGN2bitkK2lZa0pUSjQ0Z2Fpb0tPeDJHNTA2ZDlYWU9NK2NPYzNNR2ROSlQwdWpTTkZpREIwMlFvdmhkKy82bWRXcnY4U1NrVUgxSjU3a2c0RWZhdm1IWFQvdlpPem9qMGxQejZCdnYvNmFsL0ROK25WcThscFJhTnJzZjNUcjN1T1czK1BJa1hBK25UNE5VUkFwV2Fva251Wk10dHo4eHRDOFdURDlCM3pBMGlXTFVCVDRmc3ZXaDg2d0ZTMWFsTWdJVjBOKy9mbzFhdGRXVzFIMi9yS0hWVjkrd1l5WnN5bFZ1alNnVmcxenU3bXlHenRMUmdaYnQvNUE2OVl2WVBMd29Iang0alJ2L3J4TG9ocGcvYnF2MmI3dEoyYk5tWGZmR2s1djU1eEhqb1JqTkJpb1ZQbitMN0cyV3EzWTdYYU9IajNxRE5GeWFHYWtwS1R3MFVjRDZkd2xoSE5uLzJUSzVJa01IVFlDUVJCNHV1RXpQTjN3R1VmdWJLNUdTMSs0Y0dITVpqTmp4MDFBRkVVc0ZndUZIZk9RRnlOdWZ2anhSelYzOTh3enozRDU4bVV0ZkhaSmUxeTh5T1JKRXhnN2JnSXJsaStsVE5rZzJ1VHRLWHRsTTJKWmpKcVFOV1JGQkR6djU0OFNIUlhGcVpPL1U2Vksva3prNTg2ZDQzL05uMmZaaXBYTW1idUFXVE5uWUxWYXNWcXRqUHA0QktHaEEvbjh5elU4ODB3amxpeGFvT1ZyMXE5Zng1dzU4MW41eFdvQWZ0aXlXZnRNSHg4ZlZuNnhtdEZqeGpGLy9seEFKZGJidkhrVEN4Y3RaY215ei9qdHQ5L1k5ZlBPZk1kbXNWaVlNRzRNbzBhUDVjdlZheWxUT25PcDdhM0dZTGZiaVlxS1l0MDMzN0wrbTQwUHpIalo3WGFOQmwyUlpleDJ1MmFFMnJ6NEVudjI3Q0k4L0RCMnU1MmZmOTdKSDZkTzBxSmxTMEJWVGhJRUVIVTZFaE1UdEJ5SklydXlGQmN2VVlKREJ3OWlzOW1Jam9wU3d5aVRpUzgrWDhuYXRhdXgyV3drSk1TemQrOHYxS2hSSXpNVS9uNFQzMjdjd016WmMrOGJBV2RCejJteFdEaDg2Q0NUSjAyZzk3dnZQeEN0aXVqb2FLMmFiVFFhOGZYMXpTR0ljdkhpQllLRG0vSldwODZNL0dRMFJxT0p1RGpYVlErSER4MWt4NDV0V2c5anJWcTFzZHZ0aUtKSVFrSThGeTllcEZMRlN0cTIzQmh4L3lsKysvVUlRNGVOb0VuVFpudzZjdzZuL3ppVmcrMDZ5NFBTbk0yb1pYMkd1cFQzOVlENWZ2d1kwOE9tWXZZd1l6UVo2ZE8zUDZVZHBJNTVvV2JOV2l4ZnRvUnQyMzVFcDlOanNXU1FuSnhNUW53ODN0NCtWSzJtNmhHODFMWWRUWnMxVTMrb3c0ZTQ5dmRWM3UzOVRwYW5pazltM3NIQjdsbTFXalV0RVI0ZWZvam5uMitKMmVHT3YvamlTNFNISDZacHMvL2xPYmFyVjYvdzJHTkZOT05jcFZvMTl2MnlwMEJqQU9nYTB1MnVYQlIzaXV3TnVsTW1UMlRLNUlrODM2SWxIMzh5bW9vVkt6RnF6RGdXeko5TFpFUUVaY3FXWldyWXB4UXRxdmJYdFg2aERhZE9uYVJIOTY3b2RIcmF2ZHllaWhVckVaZHR1ZERBZ1I4U05tMnEraVF1VTRhbHkxZGlOQnFaTWpXTXVYTm04ZFhhTlJnTUJvS2JOTldTeEpJa01XM3FaUFI2UFcrKzN0RTFUUHh5TmNXSzNmMFZnQVU5Wjc4Kzd5TUlLblBzb0E4SDM5VStOaDhmbndMdmUvbnlaWHg5ZlRWWngrUEhqK2RJNU5lc1dZdWFOV3RwK2FwQldaaHk0K1BqNk5XekI2VkxsMmJpcENrOFZxU0k5cnVlTzNkT3kzZjNHeENxZWE1NU1lSVdCQWNPSE1oejIydXZ2Nkg5UHlBZ2dJOEc1eXZzNHBGUEdPcXdjQ0tTSktFSDdzc2ROdWpEd1JwdGNFR3dkczBxN0RZN1U2Wk9SeEFFclgzQWFaNmRNQmdNK1BtcFQxaWIxVVp3azZhYTNGaCtpZCtzSVZMV1ZpNUJFUEo4WW1UTnIrVFZMRnFRTWVUSEUzWTMwYkpWYTFxMmFwM2ovWW9WSy9ITHZ2d0ZtaHMxYXB6bmpXc3ltUmo1OFNpWDk5N3AxVHZIZnZVYlBNM1g2emZrZUw5Q3hZck1uRDAzMTgvVzZYVHMyWHZndmhyNmdwenpWdk4xTjhhUW1wcFNvRllwNStxZU80V2Zuei9yY29rV3NodkFyQWdNREN5d1F0YmRSRUJBZ0ZaaHo4VldDZG50Z1NDQVRxZTJlenc0MXlGZmR6c0dieDl2QkVIZytQRmpKQ1Vsb1NnS3BjdVVJVGs1bWZQblZXWDNuMzdjU3RpMEtRRFVxMStmbjNmdTVQcjE2d0RzM0xtRGt5ZC96L2M4ZGV2V1ovdTJiYVNucDJPejJmaGh5MmJxTjhoZldLVnMyU0NpbzZPMW5FRkVsdHpCbll6aG44QnM5c1NOMjV1YkJ6bG5lWjI3U0pFaXBPV3pwdHJUczJBaGIwSDN1MWU0eCtNMDV1S3BDVW8ycjgwWml1b2UxQ1RrSjBqeDJtdXZNM2JNS0g3WXNvWEtWYXBRb1dKRkVoTVNDQXdNWk15NDhYd2FOZzJMeFVMZ1k0RU1HVHBDRFFtclZLVmYvd0VNSGZ3aE5ydU5ja0hsR0R4MFdMNWplS3B1WFZxMmFzMjd2ZFNDd2JQUE5hRnBVelcwM2ZiVGp5eGRzcGlVMUJSa1NXTGYzcjEwNlJyQ1MyM2JNWFQ0Q0VZTUc0S2Z2ejk2dlU0ckh0ekpHTzdYay81UlFtcEtjcDVldGZpQTVpdzFKUmxkSHBYVzRzV0xFeEVSUWZUTkNEeTlmWEtNclZ6NUNyZGNZTzdwNlVXNThnOVdsK2tlajFPWG04ZVdXOTVOVUc0VmQ5MG1qaDQ5U3BGaWJvM01PMFZVNUhYcTNNWkMrTXVYcnhBYkYrZGVtNXNOTnlOdkVCZ1lRTmxjY3JtWHIxd2hOdmIrejluTnlCc0VCQVFRVkRidi9ISlVWQlNSa1pIWTdYYVNrOTJzT05uUnBFbVQ5a0FhS29OdUVwbWlMaFkwN1FOQnZ1dk5RVzRQNHA4OTBXKzNYNnRzMlRKRVIwY2pudHFQQUFBZ0FFbEVRVlJ4TS9LR214cmNNWWNwS2NsSWRudXVSZzBncUd4Wm9xTHUzNXc1eHlSTFVyNUd6Um1TRm5Fazg5M0lGZG5EVHNHWll4TUVRVjExSUlxQ29DaUtoTHBFNGE0Z0lpS0N5TWliUEZiVXpWOTUrOTdhRFVxVUtIN2I3QjZLb3ZEWDVTdkV4Y1VpMldVeU1oNU5qamF6MlJOUnB5TXdJSkN5WlV2ZmNvSC9sU3RYaVk2SlFiSkw5MnpPekdaUGRIcjlMVDAxTndvRVdSQ0Vqa0JxRm84dFJSQ0VWTUFpQ0lKTkVBUzdLSXFLb0NpS0ZURGM3WEJVRUhWNGVYbmo2ZmJjYm9rMGg5Z0hLTGNWaHJyaHhpTUdteUFJcjJjeGJNbEFzaUFJYVVCR1ZzT21CKzY2WWF0VHB3NDNiOTdrWmxRVXlVbUpiZ2JkZk9EdDQ0TkJyNmRVcVpMdUVNUU5OL0tIdGFBN09nM2JYYThSRnkxYTlJNDBNdDF3d3cwM0NtallsR3ovYWhDQmRQZDh1ZUdHRy84Q1pCVFlZN3R5NVlwYkRjUU5OOXg0NktFb1Nub3UzcG1pT0JSZG5KMXJpcUlvK3JKbHk2YTZwOHdOTjl4NDJDSExjbXFXMEZNemNObmJQUVJCUUZRVXhVMTU2NFliYnZ3YlBMYnN6SlpLdHY5cmYrdFJlMEhjY01PTkIzL2p1dlY0ODRIZGJrL0pZc0NVTEtHb2tqVVVsV1VadmFJb0NmZFNxY2dOTjl3b21GRno2L0htRDR2RmtweWJ4K1pxdnpKRDBiaEhiWUpLbFNwRnRXclZjaFdqOFBiMjVyUFBQcnVYVHgxQ1EwTXBVcVFJaFFzWHBuZnYzcG9JaWh1UExyTHE4YnFYSStaNTd5Umw4OWdVY21uMUFOV3d4VDZLazNUbXpCa21UWnAwMzg4N2JOZ3dObTNheExwMTY5aTBhUk03ZCs2a1g3OSs3cXYyRVlkYmovZldzRnF0U1ZrOHRWenlhNExLclNpQUtFbFN6S000U2VYS2xXUGl4SW1jT1hQbXZwMHpOVFdWZWZQbUVSWVdSbkJ3TU1IQndTeGV2SmlWSzFjU0V4UGp2bklmWWR5cEh1K1owMzh3TUxUL2ZYQUVUaE0yYlFyYkhVcGxUbXpjK0EwaFhkNGlwR3NubGk5YnFyMmZuOER5aVJQSDZmbDJON3FGZEdiMEp5TUxyTTJhbnA2V2pHdFRicmJxcU5OZkE5Rm1zOTE4RkMrazNyMTdVNzE2ZGQ1NTU1MThHWFBYcjEvUGswOCtpZGxzcG5yMTZpeGR1dFJsKzg4Ly8weWRPblV3bTgzVXExZVBzTEF3RjNIWXdNQkFQdnhRWmRNOWR1d1k2ZW5wQkFjSGE5dWZmZlpaQUE0ZVBPaSt1eDloM0trZWIrVXFWUmsxWnV3OUhkdjhlWE5adG5RSmx5NWVkREZDVjY5ZVljUDY5U3hZdEpSbHkxZHk0c1F4amh3SmR4eVR1OEN5M1c1bjBvUnhqUHhrRkordC9KSlNwY3RvbWhtM1FsSmlVbDZoYUk0VkNQcU1qSXlvVzZuTi9CZWgwK2xZc21RSkRSbzBZTkdpUmJ6NzdyczU5dG03ZHkrZE9uVmk5dXpadEdyVmlxTkhqOUs3ZDI5ME9oM2R1M2ZuNHNXTHRHblRocjU5KzdKbXpScCsrZVVYK3Zmdjd5THdNV2pRSUdyWHJnM0E5ZXZYTVJxTkJBUUVhTnNOQmdNQkFRRmN1M2JOZlhlN2tRT3hzYkZNbkRDT21PZ29CRkhrdmZmNjBPRHBoaTRrcmI2K2ZxeFkrVVZtdW1QSVI5eTRvVEk0SnlRazRPbmx4WnExNndCVkZXck9yQmtrSmlYaTcrZlA0S0hETkMwTGdIVmZmOFdHRGV1MS9RRjZ2dE1MbzlHb01WVTc4ZnVKRXp4VnR5NmVucDdZN1hiOGZQMDRjZnc0OWVyVjU4U0o0M3p3d1NEQVZXQTU2dVpOUE14bWdvTEtBZUR2NzgvUE8zY1VhQzV1UnQxTUxvQlJVd0QwRVJFUkVYbkp6Ly9YOGRSVFR4RWFHc3FRSVVObzI3YXRwbjNveElRSkUralJvd2U5ZTZ0OC9tWExsdVhTcFV0TW5UcVY3dDI3czNEaFFxcFVxY0swYWRQVXAyZmx5cHc4ZVpMVnExZTc1TlNjU0V0THc4UERJOGM0VENaVER2azBOOXdBK0dydGFtclVxRUZJdDdlNWRPa1M4K2ZOb2NIVERTbFZxbFNlbXJ5VHBxalhZMkppQXIzZjZhSHBiMWl0VmlhT0g4djRpWk1wWHJ3NFAvMjRsUVh6NXpGNlRPYnhOV3ZWeXNFOG5KZndrRk5nT1RvNm1ra1R4aUhKRWo2T1BHRldnZVVkTzdacEFzdEpTVW1ZVENhc1ZpdHo1OHppeG8wYk9SUzI4ZzY3VHp2YlBlUzhQRFZuTUNyV3JGa3ppdHRZZy9WZnc5aXhZd2tJQ0tCdjM3NDV0cDA2ZFlwbHk1Ymg3ZTJ0dlVhT0hNbUZDeGVRSkluang0OVR2NzZyUUUyalJvM3lQSmZaYk02MUVtdXhXQjZJakpzYkR6L3ExVy9BemgzYldmblpDaXdaR1FVV1ZKRmxtVEdqUjlIbXhiYlVyOThBVUtVaHIxMzdtK0ZEQjlNOXBBdXJWMytwcWJVNVVhbFNaVjdwMExIQTR6dDkrZzlHamhqS083M2ZwV2xUVjJXM1NSUEdjZm55WDRSTm4rbWlWSitZbU1qQUR3WlFyVnAxK3ZVZlVOQlRaVXdZUHpZdG4xQlVNM1NDb0Rib0Fsd0ZLajJLRjQ2bnB5Y0xGeTZrWmN1V2JOem9xdHhqdDlzWk5HZ1FiNy85ZG83alJGRkVyOWZuRUFUT0wxOVhxbFFwTWpJeVNFaEl3TmZYRjFCVnEyTmpZeWxaMGsybjdrWXVocTFlZmViT1cwajRrWEErWDdrQ285SEltSEVUYm5uY3NxV0w4ZkR3b0hPWHJ0cDdOcHVOWXNXS3VZU3Qvd1NGQ3hjbUl5T0RzT2t6S1ZTb0VDZE9IS2V3NDdyT1MyQzVVS0ZDSkNVbU1tSGlGQjUvL0hIT252MVR1eGZ5ZzZJb2YyY3pZSElXenkzbi9ha2VvMXg1bEMrZUZpMWEwTGx6Wi9yMjdhdUpDQU5VcTFhTmt5ZFBVcUZDQmUxMTRNQUJaczJhaFNBSVBQbmtreHc1Y3NUbHM3TC9uUlcxYTlmR2JEYXpkMittNnZtK2Zmc1FSWkdubjM3YWZSZTdrUU9USm80bi9FZzR6WnMvejdEaEl6bDA2R0NPaDJsMjdOdTNsejI3ZHpOOHhNY3V6YXNWS2xRZ0tTbUpYL2JzMXZKdDMyLzZ6dVhZOCtmUHNYSGpOd1VhMjVNMWFtQzFXakdaVEVpU3hNRUQrNmxaUzlVeXpVdGd1Vmp4NGhUMjljWGtDRy8zN2QyckhaTWZKRW02bnMybzVlR3RxZjBlZWtDUlpmbHlYb28randwbXpKaEIxYXBWWFhKZFE0WU1vVldyVm93ZVBacE9uVHB4K3ZScCt2ZnZ6OENCQXdIbzI3Y3ZzMmZQWnVqUW9iejk5dHNjT25TSUJRc1d1SVNWa3laTm9uYnQyclJxMVFvdkx5OTY5T2hCMzc1OThmSHh3V2cwMHJ0M2I3cDM3MzdmRk0vZCtIZWhjK2V1aElWTlllM3FWY2l5ek1CQkh5R0tZcjRLYjNObnp5UWpJNE0rNy9YU1BtZnUvRVg0K1Bnd2FjbzBabjQ2blVVTEYrRHA2Y25BYkRxaXg0NGVaY09HOWJSdjMrR1dZeXRiTm9qMjdUdndicStlS0NnOCsyeXdwaDJjbDhDeVhxOW4rSWlQR1RkdU5EYXJqZEtsU3pONDZLM0ZsMjAyVzBRdUhwdWlxdSs1ZW0yQ2dDSUlndUNka1pIUnoyZzBUbnhVTHBaU3BVb1JHaHFxdFdFNDhjVVhYOUMxYTFkV3JGaEJ0MjdkQUZpMWFoVVRKMDdrd29VTEZDdFdqSjQ5ZXpKeTVFanRTZmpUVHo4eGNPQkFMbHk0UU8zYXRXblFvQUhyMTYvWGRFVURBd1BwMXEwYllXRmhXajR0TkRTVU5XdldJSW9pSFR0MlpQYnMyYmtXRmR4NGRMQm56eDRlcjFqRlBSRjVJQ1ltNXRQYU5aLzRCVmRhOEJRbkxUZ3FiYmdraXFLczArbFZ3NWFVbE5URzI5dDdyWHY2Ymc4blQ1NGtMUzJOQmcwYWFPK05IajJhSDM3NGdmRHc4UHMyRGxtV3VYemxLbkZ4Y1VpU1JFYjZvN2xFeThOc1JxZlQ0ZThYUUZCUUdVUlJ6QzluNDVpeldPejJlemRuSG1ZemVyMmVBUDhBZ29MS3VnM2JIZUxzbjM4T2EvNi9KcWZKS2VTU0RqaWs5MFJKRkVWWnI5Y3Bla0NKajQrLytDajBza21TZE52eWR2bmRHQmN1WEtCTGx5NnNXcldLV3JWcWNmTGtTZWJObThmdzRjUEpqUGNManNqSXlOdW1VN2RZckp3NGNRS2RYbzlQb2NKdStiM1VGT0lUNG9uNUxacGFOV3RoTkJweS9lMSsvZlUzUkowT2I1OTdQMmVwcVNuRXhzVVJIUk5OdmJwMTg5MzN1cnVmTVZjY09uZ2dsc3lDZ1ZZNGNEQjdPRUpSQlFVRldaWVJCRUh3Qkl6L1orKzc0NXVvLy8rZmQ1ZGNkdmVtcFlXMkRGR2dTQUUvRkJGL2JCemdGMFVGUkN4WWtDRWdJaFFVRkdRclFnc2lVNUNsSUdKWkFySmt5aXBZaG15UTBxYnBidE9SY1hlL1AyNDBTZE5Tb0dYbTlYaEVhZFpkM25mM3ZOZDhQbG1XMVFOUXVKYnc3bXpxMUtsWXZIZ3gwdExTRUJ3Y2pMaTRPSXdlUGJwU2I2RTY3V0dKL3o3cXhvc1RleUVzdEx5WGRPMzZEZVRtNWo0VXdXUWZiMitFT3BIaGMzbHNsZCsvUTJvRjlBRXZZMkIwQ0VWTEFKZ0ZvV1NHSkVsT0pwTnhKTXFTY1JkYzYzZjNGaDhmait2WHI4TmtNdUhxMWFzWU0yYk1Bd00xQU1qT3luWU5UenN4cmM0TldWbk8rUjF5Y25JZXlwcHBkVzdJeW5iTkJOOURxdVVpN0ZzOGJGczk3SXNISW9PdTZKMnpMSHZldFlTUGwzSGN2UTlQUCttbTBXakJza3lGS1ltSHNXWWFqUmFNbFhFZG5MczBpOFZ5RmVYNzF4ejcySGgyRHdIY1pBUkJjQnpIY1ZhcjlYeEZveE11ZXpTTklJQ1NFaGVYVzBWV1VnSFAzY01zcnR6cjhTckl6OGVONjFkUlZHU3NGRGpENm9URHpkMzlvZjIrbXRoUG83SHdwaE5BSytleEVVU1o3b0ZNZktHa3BPU2NDOWdxODQ1NDJtYUR3UUFydzhCWVdEMjB6VnF0RGpLNURINit2Z2dNREt6Mi9kNjFjd2VXTDFzS2d5RURRVUZCV0xscUxTNWZ2b1RZL3Yyazk0eU5uNEN1WGJ1NUR2SWpiTmV2WFVGeGNlWDBQa1ZGUnR5NGZoV05telo3b3Ziejl1MjAydzZBeGdCZ2hhSkJ1WWNJYkFEQVhicDA2VngwZExUckRLb0ExSktUa3dHQ2hFYXI0Mm1iQTZydis0dUtqRWpYWnlBOVBSM05tbFhmU1ptV2xvWVowNmZpeThsZkl6cTZCUW9LZUdxY2lJaEk3TnE5RHdBd01QYjlHbHUzWlV1WDRQWHVQZXpZVE1UOW1qdm5HNlNrL0FPYXB0RytReWNNL21pSU5IeWRtcHFLaExsemtISTJCUXFGQWgwN2RzS0hjWU5SazAza2Q5cm1pekV2UUM2WGd5QkloSVdGb1gvc0FMUnVIZlBBenNFN2dZWHR1ZlF3clNiMmMvKyt2UmtDYURFaXFObDdiYnlYQmx1VktoSGxXclpzbVFYZ3Nndkd5cHRlcndjSUVuNytnVFdTbTlGb3RQRHpEd1JBSUQwOXZkcSs5K0svRitEajQ0UFdyV05BMDdURUUwY1FCQlFLQlJRS0JXcFM3K0xINVV1UmsxTStnVDlwNGdUVUNnN0diNzl2d2FMRnkzRDB5R0VrSlcwQ3dQZmtqUjB6R3ZYcU44Q20zN2NnSVdFQjl1L2JpOTgyL2xwaisxblZiU1l1V0lqTlc3ZWpmK3dBeko0NUhSdC8zZUM2T0dyZXFiZ3ljOGEwa3NyQ1VJSVFRbEhZaDZJUTNzQ3lMSHVLSk1sSTEzTGFtOEdRQ1kxV1YrUGIwZWpjWURBWTdqc2tQWDA2R1pPK21BQ3oyWXppNG1KMGY0MFBNM3U4MFJQOTN1OWZwZTg0ZXVRd0VoUG1RYTlQUjJob0dFWjk4aWthUGZ1czdWMFV5NVl0UWFiQkFQK0FBTVRGRFVhckYvNEhBQmcyOUNQY0VoaFRSMzQ4SERJWmhlRGdFQ1F1V0FpV1pkRzJiVHQwZStVVktCUUsrUG43bzNsME5DNWR2QWlBcjFoNmVubWhkNTgrb0drYXdTRWhhQjNUQnYvK1czTkYrN3ZacGtxbFF1dldNWkRIVDhERUx5YWdVK2N1angwekM4TXdPSHIwQ0xZay9ZNGhRNGNqT0NRRUFEOGtQL2U3YjVIeXp4bVFKSVhZZ1I4aUpvWW5RczNNek1TMHFWT1FuWjBGbmM0Tll6NGJpOXExUXl2ZERrRVFpSXFLZ28rUEQxaVd4Zm56NTVHV2xsYmwvVnp4NDNMOHNYM2JPV2RoS0FDVzR6aTJMTDlHY0NBSXZrRzlvRUFxSGdBQVo3RllraFVLUlM4WGxObWJsYkUra0NxYVJxT0ZzU0R2dnIrbmFkTW9iRXJhaWgxL2JNZktGVDlpOWRxZjcrcnpWNjljd2VjVDRqSHBxeWxvM2p3YWUvZnN4cWlSdy9IVHFyWHc4L2ZIelpzM01HWHlsNWc3Yno0YU5HeUlUYjl0eFBqeDQ3QjV5M2FvMVdva0pDNlF3cmM1YytjaE1yS01PSVlrU2ZUdTA3Y3NKM1A5R2c0Zk9vU1BodkMwVVQ0K1B0TG5SVy9xZEhJeVh1L2VvOGJXL1Y2MkdkMmlKY3dXQ3k1ZHZJaW9aczBleWZPV1pWbXA5Y2oyM3g4UEg0cGF0V3Jod29YellHd3F4OXUzYlVWcGFTbFcvTFFHT1RrNUdQUmhMQm8zYmdJM056ZUpFZmVWVjEvRGlSUEhNV1BhVk16Ly9vZEt0MStuVGgxUUZJV2RPM2RDb1ZEZzVaZGZSbVptSml3V2k5Tjl0UDA3SmVVZjdOKzNGN05tZjN2bGhWYlJqbUdvYlk0TklvQVJBamhydFZxKzNVTk13aFVVRkp4eXdWaDVxNjVDUVpXMlpUUSs5Tis3WlVzUzJyN1VEcTFieDBDaFVLQnpsNjVvMExBaGRncDg5OTdlUGxpMmZDV2VhZFFJSkVuaTFkZGVoOFZzeHExYi8xVjVHK2ZPbmtYSDl1M1FyMjl2TkdqWUVDKzJmY25wK3haK1B4OHF0UnBkdTczeXdINS9WYlpKRUFTOFBMMWdMREkra3VmczhlUEhNSDdjWjdCWUxNakp5Y0hBMlA3SXllRUY2YjZkTXhmajRpZVV1MW1mT1hNYWJkcThLTnlBQ01qbE5DNWR1aWk5OXVLTFBLVzlMU1B1blc0WW9vZkdjZnhFZ0tlbnA5MTdsaTVaSkZHRHA2VDhnNCtIOHplNEs1Y3ZvV2xVRkc3eHJyK3R0OFk0Q1VmQmNad0VjSEk1YmRlZ3k3MzExbHVud0hmMnVxd1NPM1BtTkRwMWVCbDVlYm1TaDlPdjc3dFBWRTR4TU5DK0s3OTI3VERvOVh6K1Q2dlY0dVRKRTRqN01CYTkzK21GOTkvckk5MXRxMnFObm4wV08vL2NpNS9YYjBSNmVycWRFSWhvSzFmOGlMLy9Qb3FwVTZkWDJ5amNuYXlxMitRNERqbTVPZEErb2oyRXpadEh3OHZiRzE5TytnS2ZqUG9ZUGQ3NFA0bEI1azZNdUdmUHB1Q3pNYU5CSzJqazUrZExyNG1NdUlrSmN5VkczTXFNcG1rd0RBTnZiMi9FeE1TQVpWazd3a2tBZU9mZFB0aTdkdzhTNW4ySHlWOU93dEJodkRCTjNmQUluRHh4M0RoMHlFY1pEaUdvSGJBSllGWk8xSVVVa3NjY0FIYi8vdjBzeDNGSFhkQjFaeXNwS2NHYTFhdWZ5Ti9tNys4UHZVTVI0L2J0VklrYi84QmYrN0Y2MVUvNC9QTkpXTDMyNXdwRFhZSWd5b0dkcWJRVW0zN2JDRk1wVDlvY0dCaUk5dTA3NE15WjAzYnYyN0QrRit6YXVRTnp2a3Q0WUgxWmQ3UE40OGVQZ1piTFVhOSsvWWR5ZkRwMjdDZzlIRm1jeGJXUGl4dU1VeWRQUUVFcnF1enhidDZjaE9YTGxtTGE5RmtJZGNpaFZjU0llNmR3dEdIRGhqaDA2SkJVbGJjMXJWYUxRWU0rd3ZwZmZrYTdsMTlHL2ZyOFdGbVRKazNSdmtPbmt3WkRSbVdneHBiTmlZckJLSy96UU1LZU41eTFXcTB1WUt2aUFkdTdaN2ZrM3R2YXZyMTc4T0hBRDlDdjc3dVlPV09hbEZOSVMwdkRvQThIb1BjN3ZUQnI1blFwcWY5UThvWldxMFNxeWJFc3JGYXJCRUxkWG5rVisvZnZ4YkZqZjhOcXRXTFBudDA0ZHpZRkhUdDFBc0FMakJBRVFGSVU4dlB6cEZDQ1krM0pUQU9EZ25EMHlCRllMQlprR2d6OFhWeWh3RThyVjJEZHVqV3dXQ3pJeTh2RmdRTi9vWEhqeG1XaDhPWWtiUHB0STc2YmwvakFlT3FxdWsyVHlZUy9qeDdCOUdsZkkyN1FSdytsY0pDUmtZR2RPM2RLRDJkTU1rYWpFWjkrT2dwOSt2WkRRRUFBWmt5ZldpbTdzeGhpZW5oNFlOYnNiK0hsNVFXVHlRUjNBZUJGUnR4aHcwZEFMcGRMakxpVm1kbHNoc2xrd3NHREIyRXltVUJSVkRsdGo2dFhyMkw2dEsveDFlU3ZjZlRJWVd6ZHVrVjY3ZFZYWHp2ckpBeGxiSE5zb21OR0VJU1VxM056ZDRkTUtJOXlvbHRYV0ZoNHpFVjZlR2RUcXpYbzJLa0xWcTlhaVM1ZHlnRHErdlZyMkxCaFBSSVNGa0NoVkdMbWpHbll0blVMWHUvZUEzUG5mSVAySFRxaTU1dHY0ZGpmUjNIbzRJR0hzdStPRGJvenBrL0ZqT2xUMGFGakozeit4U1JFUnRiRHhDOG40L3NGaWRDbnA2TjJhQ2htenY1Vzh0aTZkTzJHczJkVEVOdi9QVkNVREs5Mzc0SEl5SHJJeWJVSCtWR2pSbVAyckpsWXZtd0phdGV1alNYTFZvQ21hY3lZT1J1SkNYUHg4N3Exa012bGFQdFNPL1I3bjZkZlp4Z0dzMmJ5WWVBN3ZleTU5MWV1V29PQWdPcHZZcTdxTm9jTitRZ0V3Uk1zZmpKNnpBUHRZN3RidTNyMUN0cTJiWWQzZS9lQjFXckYzTy9tSUNjbnAxeFBvYTAxYlJxRmMrZk9naVJKNU9YbDR1clZxNmduRkg0cVlzU3R6REl6TSszQ1h3OFBqM0xDTFNkUEhNZlljZVB4ZlBQbWVLNXhFeXhidWhoZHUzWURRUkM0ZHYzYXRZcEFEUTVUQnlSSlFTYWpZRFlERkVtVlRSNklIdHRISDMxMGROMjZkZmtBM0Yzd1ZibTk4WDg5MGE5dmI0azFGQUQrL3Zzb1VtLzloMEZ4QTZXN2xsWm9GVWxKK1FjVEJVV2c4SWlhNzZycDFMa0xPblh1VXU3NXlNaDYrT3RnNVRxbXJWdkhWSGpoS2hRS1RQaDhvdDF6QXorTUsvZStGaTFiNFpjTkc4czlIeEVaaWUvbUpUcjlib3Fpc1AvQTRRZDZIS3V5elR1dDEvMmFUbGU5N1VSTm1qUkZreVk4NWJaTUpzTW5Ea3k1enF4TDEyNjRkT2tTK3ZmanE5YkRQaDRoaGVRVk1lSldaamR1M0lDSGh3ZmF0MjhQQURoOStuUzVnc05idmQ2Vy91M3Q3WTFQeDR5VlVuNXhBMk5UbllJYVFiRGdPSllUakNSSmppUUpqaUJJYUxWYUxqYzNoL2ZZYkhPaXYvenlpM1hObWpVSFNKSjh4UVZkRlJ0QkVGQ3BWSGlqWjArc1dsVW1qbUV4VzlEMnBYYVM1Smxqd3JrbUcySmQ5dmdhUlZFb0tqSSswT0Y4eDl4b1pRRG80K05UWllVczIvTTlPVG41bnZiTllySDhyZGZyYmNOUXF3aHVCQTl1bkRSbFFKSWdDQklrU1lCV0tPRHU3c0VYRHh4bXJsaUx4WExRZGFyZEdkZ0FvRWYzTjNBNzlaYjBmSFNMRnRpemU3ZEVEYjU3OTU5SVNmbEhjdWUzYjl2S2g0TkNHZjErVGFWU3V3N0dYYTdOdzF5emlyYnQ1K2VIWW1OaHBhbVBxcVpJSG5hS3BqcmVsNXViKzA4bFlhaERLQ3FNVXBFa1NJSUVTWkpTVlJSQ0lvNEZ3R1ZrWkxpQXJZcW1VQ3JScDI5WnZxcEJnNFlZTnZ4ampCMHpHbS8zNm9rL2QrNUFjSEF3QUdENGlGSFl1ZU1QOUg2bkY3WnQyd3F5R21ZZnhUdTl5K3l0eUZoWTRXd3ArWkRXck1oWUNLcUNGcExBd0VCd0hJdk1qSFNuKzFhbmJzUWR3VUN0MXFCTzNZaUh1dTdWdForblRwNjQ2Z1RVeEVlWm1BdEI4SVVza2lnRE5aSUVvVktwQ0t2VlNyQXNTM0ljUjNFY0p3ZWdZRmwySDRCblhaY0ljUExVS2ZnSDNML3U1NFVMNTFHclZqRGMzTnl3Wjg5dWJOKzJGYk5tZjJ2M25nejliVHgvRjUzc04yN2NSSGFPaTBIWDBUTDBhZkR4OFVabzdmSnN0UStMZFpobjlmVkdtQk1HWGRFTUJnUDBlajJzVmlzS0gyQmorS05rSE1lZGI5ZXUzU1R3SWkyMjRpMUZBSW9KZ2hBMERnaUdJQWlXSkVtT29palFOTTNSTkEyRlFnRVpINTlLZVI4cEhMVmFyWHRrTXBrTDJBRElxaW4vVVZwU2lqR2pSL0hLNzFvdFBoczdydHdkWFM2WDM5VjNob2JXUm1hbUFSbjZOR2gxYmk3TkEyTWhqTVpDTUZhclUxQURnTERRVUJnTUQyN054SDFpR2FaU1VCTkRVajgvdjZmNkdCWVdGdjROSjdrMUFJd1lWWXF0SGhSRlFTNlhnNlpwS0pWS0tKVktxRlFxRUZxdGxyQllMQVRETUFUTHNoVEhjUlFBT2lzcjYyVXZMNitOTGxnRDB0UFRrYTdQRUJnNGFzNE1HZWtJRFBDLzZ5RjRqdU53L2NaTjVPUmtnN0d5S0MxOU9za25WU28xU0lxQ2o3Y1BRa05EN2xpb3VYbnpQMlJtWllHeE1qVzJaaXFWR3BSTWRrZFB6V1ZsZHVMRWlVK2pvNk92QWloR21jYUJrU0NJSXNHTE13djZCZ3hGVVp4Y0x1Y1VDZ1dVU2lXblZDcWhWcXRCdUxtNUVXYXpXUVEyMjNCVXliSnNNb0JhcnFVR1RwMUtCa0VRMEdoMVVGZnpIYjY0eUFoallRRUFybHI1MkZ6bXNzY3dERTBqU1hLa1RSaHFDMndsQUVvSmdyRFJFS1U0bXFZbFlGT3BWRkNyMVh3b1NwSWt4ekNNYlNqS0FXQVlodGxCVWRRSHJ1VUdtaldMUW5wNk9neUdUQlFXNUZYYnNMcE9wNE5NSmtOUVVDQUNBZ0pjQysyeXA5cEtTa3IrZ24wMTFDNFVkY0Fvb1llTnh6Q1NKRUZSRkNpS0tzdXhpVzBmd2xBcEM0QXRMQ3o4MDhQRHd3VnNnZ1VHQnRZSWZiZkxYT1l5M3E1Y3VYTEdBZFNzQUt3RVFkaTFlaEFPZld3aW9Jbi9Kc1h5cURoblpkUFR4bnA1ZWYwSjRMWnJ1VjNtTXBjOWlEQzBTWk1tMXdYd3NqbzhHRnRRQXdCYjdMSUZONHFpSUdOWmx1TTRyb3h0MHNaakE4QmV1M1p0TzBWUkExekw3aktYdWF5R3c5QjlqcDZhQTZpSnpMbWNHRjBLUEc4Y3d6QmdHQVpXcXhVV2l3VXloVUloa3JSSjAvOEMyTEVBR0hkMzkrM2UzdDR1WUhPWnkxeFdvM2I4K1BIa1NzSlFpZEZEOU5Ca01obmtjam1Fd2dIRXdvRldxd1ZwRzV2YWNMTko0YWl2cis5QnVGVGlYZVl5bDlWc0dIcXhSWXNXL3ptQW1nVVZNSG80NXRha0VGUW00eDgyRlFXQ0pFbU9aVmxDaUdGRnNRVEdiRFp2cG1tNm9XdjVYZWF5R3IyNG9kZnJrWkZoQU1Nd01CcWZuc21Ed3NMQ2ZiQnZ5cFVlSE1lSmpia2l3U1JZbHVVc0ZndHNkQS9BY1p3VWpzcHNQVGJCYStPSU1vVVhGZ0NUbHBhMkxTd3NiSXpyMUhPWnkyb08xSktUazhHQmtLWWgvSitpMzc5enh4OW5uSGhyVnZEVEJuYkVraVJKY3BSTUJscE9RNkdnb1ZBcW9WS3FvRktyb0ZGcm9OUHB5a0pSVzNCekRFZnIxcTE3bm1YWm5VL2FZaVltSmtLcFZEN1FiVnF0Vm93WU1RSitmbjV3ZDNkSFhGd2Npb3VMWFZmMlUyNTZ2UjRjQ1BnSEJEMTFZM0ZXcTNWdjdBZnZaOXNBbThYQmF5c2Zob29ENzdaaEtDV0RUQzZIWEM0SEtaUEpSRkRqYkR3MnpvYnRnd1hBRkJjWEo3bE92L3UzY2VQR0lTa3BDZXZYcjBkU1VoSjI3OTZOWWNPR3VSYm1LVGVESVJOYW5kdFQrZHZUMDlNT09RbEJMYWk0ZjAxb3hpVTVpaFNBVGNibjErUXlHZVEwWFJhS09oWVJDSUt3YS8xSVNFallQRzdjdU04QWhMaE93M3V6b3FJaXpKOC9INnRXclVMYnRyeVUyYUpGaTlDeFkwZk1tREZEVW1wMzJkTm5ETVBjazZkMjRmdzVMRjcwQTc3OWJsNk43dCtGQytleGRjdG1OR25TRkIwNmRwS2UvKzIzWDdGcDQ2OEFRYUJ0MjNiNElKWnZvS2hNWVBuTW1kTkltUHNkckl3VllhRmhxZGV1WDcvZzRLMUpZYWlJUDQ0TnVTUkZnaVFkdkRXaFNrclRkSm5IWmh1S2l1R29qZGZHakI4L3ZzUmlzZno2dEoxd2E5ZXVSWk1tVGFCU3FWQzNibDNNbTJkL0F1M1pzd2ZObWpXRFNxVkNkSFEwWnMrZWJRZFFQWHYyUlBQbXpRRUF5Y25KS0NrcGtVQU5BTnEwNFpXMmp4dzU0cnE2bjJJckxDeTRwOC9WYjlBUUU3Lzhxa2IzYmNIOFJDeGRzaGpYcmw1RlVWR1I5UHgvLzkzRXhnMGI4UDBQUzdCMDJRcWNPWk9NNDhlUENaL2hCWlpYckZ5TjkvdC9nQm5UcGtxcG1HbGZUOGFFTHliaXh4V3I0T1BydDJQdm50MFdaOTRhUU5oWFJFVndJMGxRdHVOVEFxako1SExJUmRvaXNUd3F2SW1qS0lwZ0dJWWpTUklNdzBoNU5nRFdXN2R1YmFwYnQrNklwK1ZrKyttbm54QWJHNHR2dnZrR25UdDN4bDkvL1lYaHc0ZERyVlpqd0lBQnVIcjFLcnAxNjRhaFE0ZGk3ZHExMHV1MnlrVTllL1pFYmk2dlAzcjc5bTNRTkcwbnFDR1h5K0h0N1kzVTFGVFgxZTJ5Y3BhZG5ZMnBYMDlHVnFZQkJFbGk4T0FoYU5ucUJhU21wbUxVaU9Hd1dNenc4UERFOGhWbDlQVGpQdnNVYVduOHdGQmVYaDdVR2czV3Jsc1BnRmVGU3BnN0Iva0YrZkR5OU1LWXNlTWtrUjRBV1AvTHo5aTRjWVAwZmdBWU1QQkQwRFNOMmJObTJPM2JQMmZPNFBubXphRldxMkcxV3VIcDRZa3pwMDhqT3JvRnpwdzVqWkVqUHdGZ0w3QnN5TWlBVXFWQ1dGZ2QwYk03VllHM1ppVUlNYjlHY0FEQkVRQkhrQ1JIa1NSSWt1S2tTRk1NUXdWdlRhRlFsZ0diVGE3Tk5oeTFteDJOaUlpNFlMVmFONUlrK2NiVGNGSjk4ODAzK09DREQ2UWNXR1JrSkc3Y3VJSEpreWRqd0lBQldMaHdJUm8wYUlCWnMyYnhkOC82OVpHU2tvSTFhOVpJMy9IMjIyVmlGY1hGeFU2TEZRcUZvcHdzbWN0Y0JnQS9yMXVEeG8wYm85LzdIK0RhdFd0WU1EOEJMVnU5Z09EZ1lQeXlZU011WDc2RXFWTW0yMzFtMmd6K2ZNelB6MFBjd0ZoSmY4TnNObVBxbEs4d1plcDBCQVlHWXNjZjIvSDlndm1ZOVBqTzdyUUFBQ0FBU1VSQlZHWFo1NXMwYlZxT2VmaE9Bc3VabVptWTl2VmtNQ3dEblpBbnRCVlkvdlBQblpMQWNrRkJBUlFLQmN4bU0rWis5KzJXWlVzWFp6bDRhcmJnSm9TaDRQaUhXRFN3U1ovSnlydzFXbWpXVmFtVUlPVnlPUnk4TmpnT3hndTlJZ3dBSmk4djc2a0pSOCtmUDQ4WFhuakI3cm1ZbUJqODk5OS9NQnFOT0gzNmREbXgydGF0VzFmNGZTcVZxcHhLRDhCclZUNE1mVXFYUGZvVzNhSWxkdis1Q3l0K1hBNVRhV21WQlZWWWxzV1hreWFpMnl1dm9VV0xsZ0I0YWNqVTFGdUlIenNHL2Z2MXhabzFxMkRJeUxEN1hMMTY5ZkhHLy9XOGkydmtIQ2FNSDR1QmNZUFFydDMvc3dmWUNnU1c4L1B6TVdya3gvQnc5empreEZ1ekxScEliQjYydVRXS3NnbERaUlJrTXJtTnQ2YUFTcVdHVEFRMnNXdFhERWNwaXVJRUhVSGIyVkhHeDhkbkQ4TXdod2lDYVAya24xUXFsY3JwQ1NQK1h5YVRsVk02cjB5VU5qZzRHS1dscGNqTHk0T0hod2NBd0dLeElEczdHN1ZxdVdqdlhPWUUyS0piSUhIK1FodzdmZ3dyVnl3SFRkUDRjdkxYZC96YzBpV0xvRlFxMGFmdmU5SnpGb3NGQVFFQmRtSHIvWmk3dXp0S1Mwc3grNXZ2NE9ibWhqTm5Uc05kT0s5RmdlV09uVHBMM3FKV3E0V2JteHNLOHZNeGVjcTBveSsvMU9aNkpkNmEyTHZHbG5WcENHRW9qMUdTUXlhWHlVREw1YUFWQ2lpVktxZzFhcEEwVFVNdTlINVVFSkxhRlJFQVdJdUtpbjUrR2s2cWhnMGJsa3ZxSHo1OEdJR0JnWEJ6YzhOenp6Mkg0OGVQMjczdStMZXRSVVZGUWFWUzRjQ0JNcUhrZ3djUGdpUkp0R3JWeW5VVnU2eWNUWnM2QmNlT0gwUDc5aDB3TG40Q2poNDlVdTVtNm1nSER4N0EvbjM3RUQvK2N6c1c0WWlJQ0JRVUZPQ3YvZnVrZk52bXBOL3RQbnY1OGlYODlsdlZnckxuR2plRzJXeUdRcUVBd3pBNGN2Z1FtalRsdFV3ckVsZ09DQXlFdTRjSDhuSnpkMWZrclFHRUhac0hRTmg0YkdWNU5jck9XMU5BcVZCQ3JWWkJxOUZDSmdKYlJVVUVtN1lQYVJLaGZmdjJ2eDQ1Y3VSRGdpQWVlMDBFbG1YeHh4OS9sSHUrYmR1MmlJK1BSOCtlUGZIc3M4K2ljK2ZPT0hqd0lPYk1tWU9KRTNteDRLRkRoMkxldkhrWU8zWXNQdmpnQXh3OWVoVGZmLys5WFZpNWJ0MDY1T2JtWXZEZ3dkQm9OSWlOamNYUW9VT2gwK2xBMHpUaTR1TFF2MzkvU1RIYlpTNnp0VDU5M3NQczJUT3diczFxc0N5TFVaOThDcElrN1lvSCtmbjVlS3ZuRzJqMi9QTVlPMjQ4RXVkOWg5TFNVZ3daL0tIMFBZa0xmb0JPcDhPMEdiUHczYmZmNEllRjMwT3RWbU9VZzQ1bzhxbFQyTGh4QTNyMCtMODc3bHRvYUJoNjlQZy9EUHB3QURod2FOT21yU1FlWHBIQXNrd213N2o0Q2VkZmU2WHIyUXE4TlF0QmlLQW1GQTBJOE40YVJZSWlLVTRtVlVMbFV0OGFyYUNoVkNtaEZpWVBpSjQ5ZXlJL1B4K0ZoWVVvS2lwQ2NYRXhTa3BLWURLWkNKUEpCQnM5QkpMak9Ca0FPUUJsVVZIUkFKVks5ZlhqZk5Ja0ppWlcyQng3L2ZwMWhJV0ZZZG15WlpneFl3WnUzTGlCc0xBd0RCOCtIRU9HREpIZXQyUEhEb3dhTlFwWHJseEJWRlFVV3Jac2lRMGJOa2k2b2oxNzlzU05HemR3NHNRSktaODJZc1FJckYyN0ZpUkpvbWZQbnBnM2I5NERuNEJ3MmFObCsvZnZSM2hrZzZmaXR4b01obStmajJwOEJEejl0NmhyWUFSUEJWNUNFRVFwRDNDRWxWZWhvamlaVENZcVVIRzJUQjRhclJZNm5RNmVucDd3OGZGRlVGQVF3c0xDUVBUdTNSdDVlWGtvS0NoQVVWRVJpb3FLVUZKU2d0TFNVcGhNSnNKc05zTnF0WklzeXhJMmVnajA0c1dMdldKalkvOEFFUDYwbm93cEtTa29MaTVHeTVZdHBlY21UWnFFYmR1MjRkaXhZdy9VNjd4eDh6L2s1T1NBWVJpVWxqeWRJMXBLbFFvVVJjSEwweHRoWWJVbDhsUm54bkdjc0diWnNGcHJiczJVS2hWa01obTh2YndSRmhiNjFBTWJ4M0hYUGhzemV1TGFOYXVMQUpTZ1ROZkFDRjVhcndTQVdRQTJScERXWTRWd2sxTW9GZnhjcUVvRnRVWURuVllMTjNkM2VIbDV3OS9mRDhIQklRaVBpSUJNcFZLaHBLUUVORTNEYkRaRExwZkRZckU0VmtodFExSUdBRE53NE1DQzNyMTcvNlJVS2ljOWpnczhiTmd3SkNZbTNzOEJ3cFVyVjlDM2IxK3NYcjBhVFpzMlJVcEtDdWJQbjQvNGVON3R2cE5La3FQcDlYcjQrOS9kNkxQSlpNYVpNMmRBeVdUUXVibTc1UGVLak1qTnkwWFd5VXcwYmRJVU5DMTNldXhPbkRnSmtxS2cxZFg4bWhVVkdaR2RrNFBNckV4RUM4M2FGZG50Sjd5Zk1UYzNkL1BhTmF0Tk5pR29XUVF5QUJZT1lBZ0hiUVB4UHh6SGdXTTVzQ3dMbG1WNUpnK0J6Y05xdGNCaXNjQmlOc05zTXZQQXBsUXFVVkpTWXBkcms4bGtzRnF0b0NnS0RNT0E0emlKTnB6ak9BWUFzM256NXAvZmZQUE45d0RVZmR3V09DRWhBUWtKQ2ZmMUhUMTY5RUI4ZkR4R2pCaUJ0TFEwQkFjSDQ5TlBQOFhISDM4c1hVQTFiZW42ZEZBeW1Vc3dXVENOUmd1TlJvc01mUnJTMHRNUUZscmVTN3ArNHlaSWlucGdhMmE3VHpkdi9vZlFTbVQ0YWdVSFA4bmUydldsUzVlY2RBQTFtOXhhV1l0SEdhRWtCYmxNMUEzbHE1Nml0NmJWYXVIdTdnNVBUeS80K2ZraE9EZ1lkY1BEMGFqUnN5QTFHZzJVU2lVVUNnVm9tb1p0TVVFb0lvQ2lLTTZtbjAxcy9iRDI2dFVydDZTa1pPWFRmQ0hGeDhmait2WHJNSmxNdUhyMUtzYU1HVk5wQ0ZUZGxwMlYvZFFPVDFkbVdwMGJzckt5bmI2V2s1UHpVTlpNcTNORFZuYldVM3RNc3JPemt4WXZXbGdLKzRLQkNHNFNrNGR0aXdjZmlwS2daQlJIVVE3TnVNS1VnVnF0a2tETzI4c2JNcGtNcEZhcmhWcXRobEtweEwyMGZxeGJ0MjR0eDNFdWh0MkhjZ2U4OStIcHA4RnpZMW5HNldzUGE4MDBHaTBZSy9PVW5xdmN4VzltenpyaEJOVEVmRm81d1JaZTZaMTBtQWZsUjZma0FxaXBWRXBvTkJxNHVibkJ3OU1Udm42K0FBQ1pUcWVUS3FKQ3djQXUxeWFUeVRpcjFVb3dET08wWVRjMk5qYi9yYmZlV3FIUmFLWS80UWNHZXIwZUJvTUJWb2FCc2JCNjJFMjFXaDFrY2huOGZIM3ZXdHFQSUlDU0VoZVhXMFZXVWdIUDNjTXNydHpyOFNLU00wSE1Ud2F1NU4zYmhpTTh3QTJKQWhmbFd5Mi9veUEvSHpldVgwVlJrYkZTSUErckV3NDNkM2RrWkdRa3JmcHBSWVc1TlRocHlDVkprdVA3MW1TY1RFYnhvQ2FUZzZiTGRBNTRqUU1kNzYxNSswQ2g0THNMWkI0ZUhpZ29LSURSYUpTcW9XYXpXUUkzcTlVS21Vd0dobUhFcEozVTB5YmsycXh2dmZYV21pMWJ0cnhCRUVTTEp4WFVrcE9UQVlLRVJxdmoyVTJyVWR1NHFNaUlkSDBHMHRQVHExMEpmdGZPSFZpK2JDa01oZ3dFQlFWaDVhcTF1SHo1RW1MNzk1UGVNelorQXJwMjdlWkN3a2ZaRXBPQnEzbjMvdmtyZVNEbUo0TmIwckZhZHVmNnRTc29MaTY2NDNsOTQvcFZQTnU0NllsM2VyMlo3QVRVbkhwcmtKaHliWWZjNVpETDVKRFRmRE91UXFHQVVxV0NSc05QTTNoNjhYazIwV1NlbnA3SXk4dERZV0doYlE4YmFKcm1xd3dPWHBzTjY0ZWsxcng5KzNaelFVSEJqKzd1N2s4a3NPbjFlb0FnNGVkZk0yTEpZbkxab0U5RGVucDZ0WWt5cDZXbFljYjBxZmh5OHRlSWptNkJnZ0tlR2ljaUloSzdkdThEQUF5TWZiL0cxbTNaMGlWNHZYc1BPellUY2IvbXp2a0dLU24vZ0tacHRPL1FDWU0vR2lJTlg2ZW1waUpoN2h5a25FMkJRcUZBeDQ2ZDhHSGM0SExEMmRWcGQ5cm1pekV2UUM2WGd5QkloSVdGb1gvc0FMUnVIZlBBemtIaWZrRE5CdHlxeSs0RWFyYmc5dC9ObTF1dlhMbHN2WU8zeHBUUHJWR1FVUlFualU3SjVUd2RPRTJYZVdzNkxkdzlQT0R0N1dNM0FrbjYrUGpBdzhNRE9wME9hclVhS3BVS0NvVkN5clU1eTdjNXk3VjVlSGhzWmxsMjI1TUliQVpESmpSYVhjM25ZSFJ1TUJnTTFmWjlGLys5QUI4Zkg3UnVIUU9hcGlXZU9JSWdvRkR3ZDcyN2JVbTVHL3R4K1ZMazVKUlA0RSthT0FHMWdvUHgyKzlic0dqeE1odzljaGhKU1pzQThEMTVZOGVNUnIzNkRiRHA5eTFJU0ZpQS9mdjI0cmVOTmNlOVVOVnRKaTVZaU0xYnQ2Ti83QURNbmprZEczL2Q0UElrNzJCV3EzVlhtNWdYTGpqeDFDcjAxa2c3YjYwTTFPVENQS2hDcVlSS3hjdnN1YnU1dzh2VEMvNDIzaG9Ba0g1K2Z2RHk4b0tibXh1MFdpM0U5Zyt4U21vRGJKd05oYmpkaUJYNGFYeUx3V0Q0OFlrOE9JejFnU1NiTlJvdHJGYnJmWC9QNmRQSjZQNWFOOHlhT1IxNnZSN2RYK3VHN3E5MXc0b2ZsMWY1TzQ0ZU9Zdys3NzZOOWkrM1JXei9mamgzOXF6ZDYvdjM3VVcvOTNxamErY082UDkrWHh3OWNsaDZiZGpRajlEOU5UNjBIZm54Y0hSL3JSdUdmalJJQXBHMmJkdmh2WDd2UTZGUXdNL2ZIODJqbzNIcDRrVUFmTVhTMDhzTHZmdjBBVTNUQ0E0SlFldVlOdmozMzVxclQ5M05ObFVxRlZxM2pzRzQrQWxZdkdpaEhmSGlrMkJGUlVWSStuMFR4bzRaWFQwaDYvWHJPMkUvRTJvSGJCekhXVG1PWXppT1kxbVc1UWhBOHRaS1NvcTVUSU1CcWJkdW9hQ2dvSXk5UTZtQ1JxT0dRcUhBZ3ZtSk9IandMNmpVYW50Z0N3b0tnbytQRHp3OVBhSFQ2ZURZL2xGSmxiU2MxeFlZR0hqWVlyRXNlZEtBcmJvS0JWWGFsdEY0MzkvUnRHa1VOaVZ0eGNjalJxRldyV0JzU3RxS1RVbGIwZS85L2xYNi9OVXJWL0Q1aEhnTUhqSVVXN2Z2eEp0djljS29rY01saXB1Yk4yOWd5dVF2OGRsbjhkaXliUWRlZmZWMWpCOC9UaEtsU1VoY2dFMUpXd0VBYytiT3c2YWtyVWhjc0pBLzRVZ1N2ZnYwaFllSHAzRGlYOFBoUTRmUXNpVlBBdURqNDRPRXhBVlFLbFVTRUo1T1RrYmp4azFxYk0zdlpadlJMVnJDYkxGSWdQdzRtZU1RdmZoM1ZsWVdCc2IyeDVVcmw2dmxSbEphV3JwbS9Qanh0eHhBemVUb3JmRmpVenllTUF3RGtxVEFzZ3dzRmdzL1NSQWVqc3lzVExBY0I2VkNDWlhRM25IczJGRW9sVXE0dWJtWDJ6YXBVcWtRRUJBQWIyOXZ1THU3dzdiOW96S3Z6VmxmRzBFUWxuUG56cTBFY052bGhEKyt0bVZMRXRxKzFBNnRXOGRBb1ZDZ2M1ZXVhTkN3SVhidTNBRUE4UGIyd2JMbEsvRk1vMFlnU1JLdnZ2WTZMR1l6YnQzNnI4cmJPSGYyTERxMmI0ZCtmWHVqUWNPR2VMSHRTMDdmdC9ENytWQ3AxZWphN1pVSDl2dXJzazJDSU9EbDZRVmprZkhST1hBRW9QMGdDbTZqL3dkQ0tZUHF0ZnB3RzljR2hKdkM3bTJqUjQzQTZlUlRBSGpHM084WHpBY0FlSGg0NEtmVmE5SHYvUStxWTI5dUh6dDI3SzhLUERYYjNqVVc0SE5yRkVWeEhNZHhGRVdCWlZsT29WQUl3KzBxZUh0NXdXZ3NoRW9vR09UbDVjRnNNdUhGRjErRVhGNSt1b1FFZ0tDZ0lQajYrc0xUMHhOdWJtN1FhRFJRcTlWU0hzWVpBMGhGdWJhb3FLaXJ4Y1hGUHp6cEYzL1h6aDFRV1Boa0N0cnE5WG9FQnRwMzVkZXVIUWE5UGgwQW9OVnFjZkxrQ2NSOUdJdmU3L1RDKysvMWNlb0pWR2FObm4wV08vL2NpNS9YYjBSNmVqcVdMUzN2Nks5YzhTUCsvdnNvcGs2ZERwbE05a0IrZTFXM3lYRWNjbkp6b0gyRWVnaVZIU05BcU9SZ2Mwcmd2ZlExcU45b2lOSS9yOEw5VTN2cXhDRkRoMlBxMTFPUW1EQVAyN2R0UmQvMytBcTVlRzFYaCtYbDVmMlNtSmlZNitDcG1aem4xaml1VE1vWWtNa29LSlJLbU0xbVVDU1BOY1hGeFNBSVFuQzZGRGg4NkJBR0RJaUR6czE1bzdVTTRLbC9Bd0lDa0pPVFUySHJoOFZpRVdheXJKekE5c0d4TEF1Q0lGaU80d2piWEZ1Yk5tMVdIajkrdkIxSmt1MWMvcy9qWi83Ky90Q25wOXZmZm0rbklpcUtiMFU1OE5kK3JGNzFFK1o4TncvQklieG8yWXN4THpqMWFoekJ6bFJhaXUzYnQ2RkxsNjVRS0pVSURBeEUrL1lkY1BEZ0FidjNiVmovQzNidDNJRzVDZlBoNXU3K1FINzMzV3p6K1BGam9PVnkxS3RmLzRFZkgwWHJFTGpIdnlqOWJmazNFN21mN0lTOG5qZEt0bDJHOVhvdWRNTmJJbmZrRHBpUHAwSDdnWDBMVVhoRUJEcDI2b3lWSzVaajVxeHY0T1oyNzFNWWNya2M3ZHJaWCtZN2R1dzRNSHIwNk9OVjhOWVlBVDlZcTlYS0NaRWdLSm1NVXlxVUlBa0NOMjVjbDRZSGVEWVBEVTZmVHNaTDdWNUd2UVlOOE8vRkN4VURHd0NFaElRZ0t5dkxhZXVIQ0d3aXVERU1JejJFR1ZJV0FDSDJ0U1VuSjVzTkJzT1NnSUNBcHhMWWZ0MnducS95Y1J6YXZmei84SDcvV0FCOG04TlhrNzVBWVdFaG1rWkY0ZERCQTFJdTZrR2JiWkdDWTFsWXJWWnB3cVRiSzY5aXlPQTRkT2pVQ2MyYVBZKy8vdHFQYzJkVDhOblljUUI0Z1JHQ0FFaUtRbjUrSHJadTJTSjhqLzFzYkdCUUVJNGVPWUs2ZGNPUmw1c0xYejgvMEFvRmZscTVBdm41ZVhpM2QxOFVGUmx4NE1CZmFOS2tMSisxWlhNU052MjJFWE1UNWo4d25ycXFidE5rTXVGMDhpbk1tREVOY1lNK2VpaVU3cVpEdDJEb3RycjhNYjJlQzdxSlArVFArY0Y2TXcrcVYrdkJjamtiY0RndU8zZjhnWDE3OTJESzE5UHd6ZXhaK0hyYWROU3JkMjhBYmJGWXNIT252WmI2dFd2WHRoWVVGRGhPRjRnZVd6bUdYSXFpUUZJVXdIRlMzNnhjTGtkQVlDQTBHZzEwV2gzKytlY00vUDBEUU5NS1hMMXlCWVVGaGJqNDd3WGs1R1NESkVuSTVYTDBldnVkOHNBbWhxUzV1Ym5JejgrSDBXaEVjWEV4VENhVEhialplbTBNdzNBY3gwRjRTTk1JQUN5QmdZRUhUQ2JUZkpxbWh6eE5vSlo4NmhTMmJFbkN3aCtXZ0tJb2ZESnFCRUpEdzlEdTVmK0h1WE8rUWZzT0hkSHp6YmR3N08rak9PVGdwVHdvYzJ6UW5URjlLbVpNbjRvT0hUdmg4eThtSVRLeUhpWitPUm5mTDBpRVBqMGR0VU5ETVhQMnQ1S2FVWmV1M1hEMmJBcGkrNzhIaXBMaDllNDlFQmxaRHptNU9YYmJHVFZxTkdiUG1vbmx5NWFnZHUzYVdMSnNCV2lheG95WnM1R1lNQmMvcjFzTHVWeU90aSsxay9JNkRNTmcxa3crREh5bmx6MzMvc3BWYXhBUVVQMjloRlhkNXJBaEg0RWdlSUxGVDBhUGVhQjliRld4a3UyWDRmYkovMEQ1cUpIVmV5TTBiejREOTg5aWtEL2pvTjM3VWxKUzhPMmN1ZkR6OTRlYnV6dE9uamgrejhCV2JoOUtTbjRjTjI3Y0RRRzh6STRGQTFRd1pRQ0FzMWdzMEdpMW5OeEd3MEF1cDVHV25nYVpUSVk2ZGVyQ3o4OFAwMmZPUm9QNkRlRGo2NHVGMzgrSFZxdXpBN1Z5d09idjc0L3M3R3prNWVWSndDYU9XWWtlbTQzWDVoaVMyazBqRUFSaDNyTm56L0pPblRyOWp5Q0lxS2NGMkk0ZE80b09IVHBKellLdnZQSXFqaDM3RysxZS9uOUlTZmtIRXdWRm9QQ0l5QnJmbDA2ZHU2QlQ1eTdsbm8rTXJJZS9EbGF1WTlxNmRVeUZGNjVDb2NDRXp5ZmFQVGZ3dzdoeTcydlJzaFYrMmJDeDNQTVJrWkg0YnA1enlpaUtvckQvd09FSGVzeXFzczA3cmRmOW1rNVhEWDJTREllQ21ZZWtQNDNMVHdQTFQ1ZDcyeWMyckxsTm0wYWhhZFBxdVR3NWpqdnp4eDkvT0JZTWJITnJaaW0zUmhDc1FQbk5XYTFXRGdDVVNpV24wK21rV2RDaW9tSmN1bmdSL3Y0QjZOQ3hFOC9rSVV3WStQaFdQaHBXTGp0YXExYXRjcmsyMFdOejhOcWtjSlJsV1Z2VmVJYmpPQktBdFV1WEx2cnM3T3dmdkx5OEZqNU5YcHR0ejZ2QVl5Y2xuR3V5SWRabGo2OVJGSVdpSXVNalFXamc3ZTE5VHltU3RMUzBqV3ZYcmpVNkFUV1RIYWp4bkdzc1FZQWpTWktuOXBielBXcmkySlNDcHVIdDVZWDY5ZXNMdEVTKzhQRHdnSStQajkxa3pxREJ6Z1BDY3Z3Njd1N3VjTmJiVmtIakxpZlNHMVhVdE92dDdiM2RZckVzZmxwTzBPYk5XMkRYenAwb0tTbUJ4V0xCdHExYjBFTG8wV3JhTkFyYnQvRW56T1ZMMWRQL3BGS3BYYWh3bDJ2ek1OZXNvbTM3K2ZtaDJGaHhsWjBMOTdoL2o2b2F2a00wdGRvK3QxaGFXcnA2NU1pUkYyMUNVSk9EdDJaWE1DQUlnaU9FWm44WnJ6akZ5ZVV5WVJhVWxtWkIrU0YzZ1NYWDJ4disvZ0dTZHVsZGVXd0FYMGdRdlRaYnFuQkhyODIyaUNCNmJTeGZCbU9FU2lsSkVBUjE2TkNoWlczYnRuMmVJSWhtVDlLRk0rQ0RmaUFFN2pWZlh6OGtKQzdBODgyYm8xUG5MaGowSVY4d2FQUGlTMmpYN21VQXdQQVJvL0RseE0veDY0YjFDSStJNEJPbVQ5Q2QvbEd5SW1OaGhhMEw1RU5hc3lKaklhZ0tXa2dDQXdPUm5wNk96SXgwcUFXaUJUc2JHZ1V1TWZtZVowYTVjQTlnYVBWbGhPclVqWkFHNFRtT083MW56NTY5VHZKcXR1MGRqa1VEZm5SS0hKdVN5eUNYQzU0YkxZNU5sUTI1ZTNsNndjL1hyOG95bFU1WFdTNlhJemc0Mks2SVlFdHBKSWFpanUwZlRnb0pWZ0NXZHUzYXBXWm1aaTcwOGZGWjlEaGVKRm9uK1k5dGYreXE4UDI5M242blhESVRBUEx5Y2pGejlyZHdjM1BEbmoyN1VWSlNVcVZ0M1Nsc3lNN0pjUUdiZ3htTmhmRHg5WEg2bW8rUE43S3pIL3lhR1kyRjVRZ0JiSzFaczJZd0dBelE2L1VvS3N5Mzc1UFVBaGhiRzBEdCs5aURiT0J5ZHZWZEYxb050Rm9OYnQ2OHVmSEhIMzhzcUNnRWhZT3lPNStWRVpUdk9BNGN5M0ljeTRKbEdUQ01sWDlZTGJCYXpMQ1lTMkV4bDhKVVdneFRhUkZ1WHI5eTc4QUdBQUVCQWNqTnpiWHoycHpsMm13OU5vZENndWkxV1FpQ0lIMTlmWGVXbHBiT1ZTZ1VIejl1RjRtc211N3dwU1dsR0RONkZLLzhydFZLN1JPMmQzUm5YZFNWV1dob2JXUm1HcENoVDROVzUrYlNQREFXd21nc0JHTzFJclMyY3hBSUN3MkZ3ZkRnMWt6Y0o1WmhFQlphT1RENStmblowZTg4NnBhZm43L2twWmRldWxTUnQwWVFoQWhzREVFUWpNamNJYXBPMFRRTmxVb2xlR2RsZE45ZVhsN3c5UzFUbldyUW9BRWFObXhZOVd1MnNoZHIxNjVkWVYrYm85ZkdzaXpoVUVnb1Z5VmR0V3JWMHY3OSt6Y2lTYkw5NDNTeCtQbjVJVjJmY2Q4WFFGU3pabGk0cU9KUjJxSWlJd0lEN2s3TWhTQUlORy9lSE5kdjNFUk9UamJ5Y25KUVd2cDBraytxVkdxUUZBVWZieCtFaG9aVSt0NFcwZEc0ZWZNL1pHWmwxZWlhcVZScVVESVp2TDI5N3docWo1dFpyZFo5RXlkT1BPQUFhcVVpc0FtZ1pwOVhFN1FNUkNWM3VWek95ZVZseEpHMkFPZmg0UUZ2YjI4RUJBU2dkdTI3V3p2aVRvSWp0Mjdkd3ZuejUzSHQyaldrcHFiQ1lEQWdKeWRIQWp4SExWSUI5QWlXWlFtV1pTbU80eWp3V3FRMHgzSEtHemR1dEFvTkRaMEw0TEZTSHpsMUtoa0VRVUNqMVVGZHpYZjQ0aUlqaklVRkFMaHFKNXAwbWN0cXlOSVBIVG8wT3lZbTVwWUFaQ1hnTlVLTFlLOFBhaXVseDloNmF3cUZncFAwUVRXODBMR0hod2U4dkd6RVdlcld4VFBQUElPUWtKQzdpN0x1OUlhUWtCQkpVTmt4MStiWStpSEtZbkc4MlU0a1dIbm5naUREd3NLT0Z4UVVKT3AwdXFtUDAxRnMxaXdLNmVucE1CZ3lVVmlRVnkwc0hBRGZ2eVNUeVJBVUZJaUFnQURYNWVLeXg4SnUzNzY5S2lZbUpsVUlNOFhRczlSSkNHb1Z2RFZwMEYwaWpSUkNVVnVhYjFHL1FBeEZhOVdxZGRlZ1ZpVmc0L000b1U1emJVNTYyc1JDZ21Odm16aHVaU0VJZ25KemMvdlpaRExWcFdsNndPTjBNQU1EQTZ1TjNkWmxMbnRjeldnMHJnNE9EajRGKzlZT3h4RFVZaE9Dc3M1QzBJcEFqVmQxOTBGUVVCQkNRMFB2YVIrcnBCT24wK2tRRWhKaVIyOWt5N2dyRHFrSy9XMTJ2VzJDMXliMXRva0xzV3ZYcmlVc3krNXhuU1l1YzlsamxWZmJ2M0Rod2oxd1hnR1ZQRFk0eklNSzVKR2NMYWpSQXNXM0dJN3FkS0lvQzU5WEN3a0p1ZWVKRE5uTm16ZXJqb0k4VlpIVDdubnhPZkYxNFNFbThGaWhBNThRd2UyVlYxNUpPM0Rnd1BjaElTR2hBTUpkcDR6TFhQWm9HOGR4MTA2Y09KSDA2YWVmRmpvSlFjdUJtaUNBYkNlblo0c2ZGZUVJTCtSQ2dtVlozQTArMlFIYjNiaDZ2cjYrVGljUmJBU1dZVU1mVHBoTUpoQUVBVUc2VDJvQklmaGZSTFpwMCtaRVRrNU9ncWVuNSt5cWhzVXVjNW5MSG82emR1M2F0VFZ2dnZsbXFvTzM1aXdFdGRxMmRvamhwOER2S0JVTXRGcXRYZWdwVmo4akl5UFJ1SEZqcU5YM1BpRnlWMkNpVnFzUkdocGFib2EwZ3ZsUmptVlpRaXdrY0J6SENnVUYyNmtFMHN2TGEzTnhjWEdRU3FVYTR6cDNYT2F5UjlPeXM3TVhoNGVIbjdYeDFFcHRId1JCbUd4QnpURUVGU1FHeXVYVmJNSE5WOURXRFEwTnZTOVF1MnRnQS9nRWVrVjhiYzdHck1UR1hRSGNPR0VxUWN5M2tRRElWcTFhTFRseDRvUy9YQzd2NXpxRlhQWVVoM3JRNi9YSXlEQ0FZUmdZalk4R1EzTnBhZW5QNzc3N3JtMi9XcmtRbE9NNENkUTRqbU1GUmx5T1pWbU9ZUmc3dmo4eHNoTWZZcFZVb1ZCQXJWWkRMcGZqMHFWTER4YllBQ0E4UE56cHFKV1RhUVJPNkdjVFI2M0VXVkxiRmhEaW4zLytJZmZzMmJPNGZmdjJmaFJGZFhHZDRpNTdHa0V0T1RrWkhBaHBHc0wvRWRndmk4WHk1MDhyVit6S3ljbXhPQUUxMndrRGZteUtJRmdDWVBsMEZLL2VMakIzY0VvbEw4U2kwV2o1bmpWM0QzaDVlOEhmUHdDMWdvTVJYamRjMHRHNFg3dW5iNkFvQ25YcjFrVndjREQ4L2YzaDVlVmxWeWxWS3BXMitUZE9aQUt4VmJZUzNGVXIrQllRYytmT25WTXZYYnEwa09PNFk0L3pDYnBwMHlZb2xjcUtFeFZXSzBhTUdBRS9Qeis0dTdzakxpNU9VbmR5MmROcmVyMGVIQWo0QndROU1tTnhMTXVlUEhUd1lOTEVMeVlVT09UVVNvUkhxUjJvU1hSRUpGZStDbHArdWtEbnBvT0hoNmRFUlZRN05MUmFRTzJlZ1EzZ0ZXM0N3c0lRRkJRRVIyMVNKeXBYb3BxelhRdUlBN2labm5ubW1aUzB0TFFGSE1kZGVWSlA0SEhqeGlFcEtRbnIxNjlIVWxJU2R1L2VqV0hEaHJtdTdLZmNESVpNYUhWdWo4eitjQngzOWR5NWMrdjc5bmtud3dIVWJDdWdKanRRRTNyV1NGS2FCNFZjSnVma3RDaDBySUJLWlQ5bDRPUGpBLytBQUlTRTFMNHY3WVZxQXpZQUNBNE9SbWhvS0FJREF5WCt0a3JBRGJiOWJRSi9tMFFsTGp4TXdjSEJCM0p5Y2hJQVpENXBKMjlSVVJIbXo1K1AyYk5ubzIzYnRtamJ0aTBXTFZxRUZTdFdJQ3NyeTNWMVA4WEdNTXc5ZVdvWHpwL0RxQkhEcTN0M3NtN2V2TG02YStjTzEyRS8yRzRIYkFSQldEaU9zNGlDeHh6SENSeHJGRWVRSklxS2pNak56VUdtd1FBQ3ZOaTBScTJHMldUQ2diLyt3cFl0bS9IbnJwM3c5dmF1OXNiMysvYjc2dFdyaDlxMWEwdmc1dUhoWVNmaFp3TnVZa2dxOXNPeHprSlNBQ1lmSDU5dCtmbjUzd2tMV0tQV3FsVXJUSmt5QlMrLy9ETFVhalVpSWlMd3h4OS9ZTzdjdVFnT0RvYTd1enNHREJnZ3FTMk5HREVDblR0M3R2dU83dDI3WTlDZ1FVNi92MmZQbm1qZXZEa0FJRGs1R1NVbEpXamJ0cTMwZXBzMmJRQUFSNDRjY1YzZFQ3RVZGaGJjMCtmcU4yaUlpVjkrVloyN1VxclhweTl2MDdyVmVaUzFkWlRhaEo2OHQyYlgya0V5SkVteEhNZXg0RGpJWkJUTUpoTlVLalVYRWxJYi9nRUJTRTlQaDFxdGdWcWpRVXJLUDNqbDFWY3hldlFZUkVSRTR2Q2hROVcrbnZmZE8wWVFCQ0lpSXB3cVdqbXJqb290SUFBSUFFNkxDUnpIa1I0ZUh1dU5ScU5HbzlIRTEvUkpOWDM2ZEd6ZXZCa3hNVEVZTkdnUWV2VG9nZTdkdStQQ2hRczRmLzQ4MnJWcmg2NWR1K0tOTjk2NDYrL3UyYk1uY25OekFRQzNiOThHVGROMm5GeHl1UnplM3Q1SVRVMTFYZDB1SzJmWjJkbVkrdlZrWkdVYVFKQWtCZzhlZ3BhdFhrQnFhaXBHalJnT2k4VU1EdzlQTEYveFUxbTY0N05Qa1piR2E1Ym41ZVZCcmRGZzdicjFBSUNyVjY4aVllNGM1QmZrdzh2VEMyUEdqcE5FZWdCZytiS2xpNy80ZlB3cEIxQXJ0UUUzdmxnQVdJUnJsaVVJc0FSSmNBUkhnT000VGlhVGdXVlp6dDNESFFxRkFnUkJRSitlRHJWS0RZcWlvRmFyVWI5QlF3VFZxb1dpSWlNT0hUejRNcm5Fd0FBQUlBQkpSRUZVNkFFYndJOWNoWWVIbHlPakZNdThUZ2JrYmZ2YklJU2s0bVNDQ0c2RVZxdGRXVnhjckZLcFZDTnI4dVRwMGFPSHBJMzR4aHR2WU5teVpaZzZkU3AwT2gxYXRteUpaNTk5RnVmT25ic25ZSHY3N2JlbGZ4Y1hGenN0TENnVUNwaE1KdGRWN0xKeTl2TzZOV2pjdURINnZmOEJybDI3aGdYekU5Q3kxUXNJRGc3R0x4czI0dkxsUzVnNlpiTGRaNmJObUFVQXlNL1BROXpBV0l3Y05Sb0FZRGFiTVhYS1Y1Z3lkVG9DQXdPeDQ0L3QrSDdCZkV3U0JJYnk4L04rK09MejhZZWRoSjRsZDhpcmNTekRpRlJsa010cFVad0ZSVVZGTUFwc3hrb1ZINzFwdEZyNCt2cGkrN2F0eU0vUFIxNWUzcU1KYkFDdmNHVkxJVzdidEd2anNkbjJ0VW5neHBhcDZqSUMwRW5nOXRaYmJ5MVp2MzQ5clZRcWEwekd6M2I2UXFGUVNQbEQwV2lhcmhiZ1VhbFVNSnZONVo0M21Vd1BSWi9TWlkrK1JiZG9pWVM1Y3dBUWFOR2lKV1ovTTZkS24yTlpGbDlPbW9odXI3eUdGaTFhQWdDdVg3K0cxTlJiaUIvTDk4S3pIQXVOb0YxUVdGaTQ3SjFlYisxSCtha0MreERVUmtKUEZEdG1HSWFUeStVYzc1eUFvMm1lTERYVFlJQkdvMFYwZEF2OC9mZFJ1THQ3UUtWVWdtVlpyUGh4T1hyMWVoc05uM2tHNDhlTmZYU0JEUURDd3NMc3RCRWNweEZzaUNoaDQ2MXhBdmlKa3drUW12MUFFQVN4WmNzV1l0cTBhVXZpNCtObENvVWlyaVpPSHBrVEh2cUsxS1NjUFcreFdLcTBuZURnWUpTV2xpSXZMdzhlSGg3U1o3T3pzNnZNNWU2eXB3ellvbHNnY2Y1Q0hEdCtEQ3RYTEFkTjAvaHk4dGQzL056U0pZdWdWQ3JScCs5N2R1ZHBRRUNBWGRnS0FFYWpjY1dFK0hGN1UxTCtjZXhUY3dRMU96WmNvZG1lb3hVS2pwYkxZYlpZUUpFa2FJVUNGRVhCMTljWGRlclVoYnU3QndpQ1FHQlFJSFJhSFJpckZSTStuNGp3OEhCY3ZQaXZkQzA4c3NBR0FQWHIxeStuUmVvWWpqcDRiU0s5RVd4eWJveVFneU1JZ2lDKyt1cXJQRjlmM3lVREJ3NGtGUXJGd0lkNW90RTBYYzUxdm5UcFVwVTRvNktpb3FCU3FYRGd3QUc4K3VxckFJQ0RCdytDSkVtMGF0WEtkUlc3ckp4Tm16b0YwUzFhb24zN0RtZ1IzUUp2OXV3QmxtVXI3ZmM2ZVBBQTl1L2JoNFdMbHRqZGlDTWlJbEJRVUlDLzl1L0RpMjFmd3RXclYzSHE1SW1menA0OXUyZmp4ZzBsTnA1YWljUERSQkNFV2NpcDJiSGhNaXpMeVNnWlpESTVTa3BLT0hjdmJ5aVZTdWgwYmxBbytQK1hta3I1SnR4YXdRZ0xEVU5BWUNBVU5NM3Y2NEVEYU5LMDZhTVBiQVJCb0g3OStoS3dPWHBzRE1QWWVteTI0QVpoRkFOQ3ZzM3VPNGNORzVaTjAvU1NmdjM2NFdHQ1c4dVdMVEY3OW13c1c3WU16WnMzeDZKRmk1Q2VubDdoKzlldFc0ZmMzRndNSGp3WUdvMEdzYkd4R0RwMEtIUTZIV2lhUmx4Y0hQcjM3dzh2THkvWFZleXljdGFuejN1WVBYc0cxcTFaRFpabE1lcVRUMEdTcEYzeElEOC9IMi8xZkFQTm5uOGVZOGVOUitLODcxQmFXb29oZ3orVXZpZHh3US9RNlhTWU5tTVd2dnYyRy95dzhIdlFOUDJUaDZmbm54dlcvMUlFKzBLQmJRT3V5WEVPVk9wWG95Z1FESU9Ta21LVWxwWndhclVhbmw1ZVVLbFVxRmUvUG03ZXVJR2pSdzlEcDlPaDE5dnZJaVE0QlBYcTEwZjgrTTh4ZWZJa1dNd1doSVNFWU16WStFY2YyTVJjVXIxNjlld3FwTGE1TmlHdlZxNllBUHRLcVMyNEVRUkJFSEZ4Y1prbWsyblJ3SUVEV2FWU0dmY3dUclRYWDM4ZEkwZU94T2pSbzhHeUxQcjE2NGNCQXdhZ3ROUjVaOHFHRFJ0dzQ4WU5EQjQ4R0FBd2UvWnNXSzFXZE8vZUhTUkpvbWZQbnBnN2Q2N3JDbmFaVXd1cFhSdHo1ODEzbXRiNFpjTkc1emZUWDM2dDhQc2FOR2lJaFl1V3dHZzBycGcxYzhhZVpVc1hWd1Jxa3FjbWdocEprZ3hRUmhvcG95aE9ybFNDcGhVYzMzd3JpTEtvTlhCemQwZGtaQ1Q4L1B3UUZGUUxZWFhxb0c1NE9KUktKWjU3cmpGK1dMUzBSdGZ0anBvSDkyTVpHUms0ZCs0Y3JseTVndFRVVk9qMWVtUm5aNWZUU3hCQ1YwSUFRRUpnNFNVNGppTnROQlBrSE1jcEFDZ25USmpnSGg4Zkg2dFNxWWE0VG4wK1VYemo1bi9JeWNrQnd6QW9MWGs2UjdTVUtoVW9pb0tYcHpmQ3dtcFhHcTV4SENlc1dUYXMxcHBiTTZWS0JabE1CbTh2YjRTRlZVd1J0bi8vZm9SSE5uZ2c2MVJZV0xoc1F2eTR2VGJocHpOUXMyWHNzSWlNSFdKelBVWEpPSUhlbXdjMXBiMjRzYWRubWNwVWFGZ1k2dGR2QUY5ZjN3ZDJMdFFvQjVxL3YzKzU0WGduRlZMWTVObWtTcWx3d2RyMnVJbUZCVXlaTWdVblQ1NzhZY09HRFdhMVduM1ByU0FkT25UQW4zLysrY2hjbUhxOUh2NytkemY2YkRLWmNlYk1HVkF5R1hSdTdpNzV2U0lqY3ZOeWtYVXlFMDJiTklWWW9YTUV0Uk1uVG9La0tHaDFOYjltUlVWR1pPZmtJRE1yRTlGQ3MzWkZkcnVHK3hrTENncCtHRHBrOFA1TGx5NmFLd00xbEZWQUpUMVFnVGhXVUpvaUlJeE9TYXdkSkNWUWYxTVU1RElaeFBsUXRWSUZzOGxVNDcvdGdRRWJ3SXZCaU9CV1dYVlVySkFLdld5YzFXb1Z3WTJ4RFV0RmNOdStmVHMwR3MzU3dzTENVcTFXT3hLQThtNzNiZGV1WFkvOWhaeXVUd2NsazhFL0lBZ3VBelFhTFRRYUxUTDBhVWhMVDBPWUV5TFY2emR1Z3FTb0I3Wm10dnQwOCtaL0NLMUVocStXVFp0Uk5WdHBkbmIyNGxZdG14OUdlZmJiaWp3MUt3aUNJUUNHRUR3MUdVVnhNcG5ncVlsRDdXbzF0Qm9OZEhha2tZR29YVHNVa1pHUkNBMExlK0Rud1FOaHJRMFBENjlJWUZrQ09KdTdxWlJyczFxdDRtdE93UTBBZERyZHF0emMzR0lQRDQvaEFIeWZ0Z3M1T3lzYldqZDNGNkk1bUZibmhxeXNiS2ZBbHBPVEE5MURXRE90emcxWjJWbVZBbHNOV1paZW43NDgrdm1vVTdDZi9YVDAwdXhCRFFLb0VTUkhFaVJIa1FKYkIyMURHQ25NZjJvRnZRSStCUFZEclZwOFh1MWhnTm9EQXpZK2FkbkFLYkE1ZW0yaTV5YUNHOEFQQ0ZjQ2JweW5wK2ZHakl5TUlsOWYzNDhJZ29oNFdpNWVqcnYzNGVtbndYUEx6OHR4K3RyRFdqT05Sb3Y4M0p4NytpeVJuQWxpZmpKdzVlNjY5RGx3VjIrYXNsYTMvbS95K1R0NGFxWnlvRVlJb0VZU0FndXVESEk1elNsb2thbERBRFdKQmRjTGJqb2RMT1pTNU9WbUl6TkRnOHlNTktmckVGWW5IRzd1N284L3NBRkFvMGFOeW9GYkJjQW1nWnVZY0tzSTNNUy8vZjM5LzdoKy9YcEI3ZHExNDBpU2pLNStFT0haVFEwR0E2d01BMk5oOWJDYmFyVTZ5T1F5K0FtMHlIZDFzaE5BU1ltTHk2MGlLNm1BNSs1aEZsZnUrWGdsSmdOWDd3N1VXSEFuejVYY1d0ODVkZloxbEovOXRHL3BzTXVwbFFjMW1RQnF0SUwzMUJ5TEJhTElzZFZpZ29lSFI2WEs3VVZGUnR5NGZoV05telo3TW9DTklBZzBhdFNvUXEvTkdaalllSEJPd1UzNFhvN2pPSzVPblRxSGs1T1Q4NTU3N3JrQkZFVjFyazVRUzA1T0JnZ1NHcTJPWnpldFJtM2pvaUlqMHZVWlNFOVByM1lsK0YwN2QyRDVzcVV3R0RJUUZCU0VsYXZXNHZMbFM0anRYOGJDUGpaK0FycDI3ZVpDd2tmWWlMc0VOUXZIL0htdzhHSlNuNHlGR1RiaHArUHNaNGtBYXVaeU9UVTdVSk9ERmdTT2xRcEJMay9qV0FIMVEyQlFFSXdGZVpXQ211MDUvMFNFb3FMSjVYSUozTzdnc2RubTJ5b0NOM0h3bGhORDA2aW9xSE1iTjI2YzFhMWJ0MHlhcHZ0V3h6N3I5WHFBSU9Iblh6Tml5V0p5MmFCUFEzcDZlclZ4VTZXbHBXSEc5S240Y3ZMWGlJNXVnWUlDbmhvbklpSVN1M2J2QXdBTWpIMi94bzcxc3FWTDhIcjNIblpzSnVKK3paM3pEVkpTL2dGTjAyamZvUk1HZnpRRUZFVUJBRkpUVTVFd2R3NVN6cVpBb1ZDZ1k4ZE8rREJ1c1BSNlRkaWR0dmxpekF1UXkrVWdDQkpoWVdIb0h6c0FyVnZIUEpxZUttditlVTMyb1YxZjVQMVdVQW1vbGZQVUJBTFlDa0NONzFWVHFrUVJGbDBacVBueGJSMWhvV0hJejh1dTBlTlVWU01meGthVlNpVWFOV3FFOFBCd0JBY0hTMExNdGx4dVlyT2ZRcUdReEZWbE1obG5JOFRNMkhLNUNUbUNVZ0FsYjd6eHh1MG1UWnA4YXpRYXZ4RmV2eTh6R0RLaDBlcHFmRjAwT2pjWURJWnErNzZMLzE2QWo0OFBXcmVPQVUzVDhQSHhrVHhuUVFxdHdwblk2ckFmbHk5RlRrNTJ1ZWNuVFp5QVdzSEIrTzMzTFZpMGVCbU9Iam1NcEtSTmZQakVzaGc3WmpUcTFXK0FUYjl2UVVMQ0F1emZ0eGUvYmZ5MXh2YXpxdHRNWExBUW03ZHVSLy9ZQVpnOWN6bzIvcnJob1Z5MDNqOTJoOXZvLzBsL2V5VjBoYkpUQkFCWWM2MUYzN2UrTnZIM0wvSit5M2ZJcFJVTGo3THFweTJvZ1dCZ1UvMmtLRms1VUFNSFpHWm1vcmk0V01xcCtmcjZJaWd3Q0tHaFlhaFh2ejVvWVZSS1BNK2FOV3VHamgwN29uMzc5Z2dLdXJzcTlJb2ZsNlAzTzczd2RxK2UyTHBsYzVrM2FyRmc5cXdaNk5mM1hmVHYxeGNIRHg1NCtCNWJtWmVpUWFOR2pad054WmNMUzBXeFZkaFVTNFVUMG5GQ2dSUEQwbi8vL1pmVjZYUXJNekl5OUw2K3ZvTUlncmhuVVdZclkzMGd5V2FOUmd0andmMVR1Sncrbll4SlgweUEyV3hHY1hFeHVyL0doNWs5M3VpSmZ1LzNyOUozSEQxeUdJa0o4NkRYcHlNME5BeWpQdmtValo1OVZucDkvNzY5V0xac0NUSU5CdmdIQkNBdWJqQmF2Y0JmYk1PR2ZvUmIvL0ZDdHlNL0hnNlpqRUp3Y0FnU0Z5d0V5N0pvMjdZZHVyM3lDaFFLQmZ6OC9kRThPaHFYTGw0RXdGY3NQYjI4MEx0UEg5QTBqZUNRRUxTT2FZTi8vNzFRWSt0K045dFVxVlJvM1RvRzh2Z0ptUGpGQkhUcTNPV2hNTE5vK2pTR2NWa3kySndTSVp6aHJ2MW56bHJ6d3MydnpzSmVUY29abjVvUWZoSldnQk5CamVVZEJ0S21VQ0RuYUtGUWtKK2ZEMFpRbXFKcEdsNWVaWjVhYUJnUGFvNlNlWFhxMUFGRlVkaTVjeWNVQ2dWZWZ2bGxaR1ptMnBGR09NNjlpbitucFB6RG4yUExWOEJrTWlFdWJnQ2ltajJQb0tBZ2JOKzJGYVdscFZqeDB4cms1T1JnMElleGFOeTRpVVF0bnA2ZS9uQThOdEYwT3AxVHo4M1QweE02bmM0WnhiaWRNSXlvbitEZ3Vaa0Z6NjBVUUxHL3YvOGYvLzc3N3lTR1lmYmU2MzVXVjZHZ1N0c3kzbi91b1duVEtHeEsyb3FQUjR4Q3JWckIySlMwRlp1U3RsWVoxSzVldVlMUEo4Umo4SkNoMkxwOUo5NThxeGRHalJ3T1EwWUdBT0RtelJ1WU12bExmUFpaUExaczI0RlhYMzBkNDhlUGswUnBFaElYWUZQU1ZnREFuTG56c0NscEt4SVhMT1JEQkpKRTd6NTk0ZUhoQ1lDbjBqbDg2QkJhdHVSSkFIeDhmSkNRdUFCS3BVbzYwVThuSjZOeDR5WTF0dWIzc3Mzb0ZpMWh0bGdrUUg3UVpqbHJnUGJENS9rYkwydmQvL2Z0Yy9OZnVQbFZDdXdaYjRzZEhxVUUvekFEaEFVRXlrQ056K3h3VnF1Rms4bDVDdis4dkh6STVES29WQ3JVQ2F1RHFHYlB3OHZiRzFxdEZyNitmcnluRmhhRyt2WHFRNnZWT2wzWHRMUTB5VmxoV1JhZW5wNTI3MW02WkJIV3JGNEZBRWhKK1FjZkR4OEtBTGh5K1JLYVJrVkJvVlRDemQwZEw3endQNXc0enVzOG5UbHpHbTNhdkNpY1R3VGtjaHFYTHBVZGgxa3pwejljWUFNQWQzZDNDZHhDUWtMc3dPME9GT08yWVNrcmhLYmluVW9FdHhJQXhjODg4OHlwbjMvK2VVcHBhZWx5VnhyNnpyWmxTeExhdnRRT3JWdkhRS0ZRb0hPWHJtalFzQ0YyN3R6QmgwTGVQbGkyZktVa2xmYnFhNi9EWWpiajFxMy9xcnlOYzJmUG9tUDdkdWpYdHpjYU5HeUlGOXUrNVBSOUM3K2ZENVZhamE3ZFhubGd2NzhxMnlRSUFsNmVYakRXY0JLOHdodmd5ak5RZFk1QWlTZTFPdUhYNVN1Ny9UYm1sZ09vT1FKYkNRR1VBb1NaZjhCS0NLcFNKTUNSSURpYXBqbVNKRkZTWE13VkZCVEEzY01kT3EyT24vMTBjNE83dXp0VUtoWGMzTno0bkpvQWFyb0tSRmhvbWdiRE1QRDI5a1pNVEF4WWxwWDREa1Y3NTkwKzJMdDNEeExtZllmSlgwN0MwR0c4ZmtQZDhBaWNQSEVjUnFNUkJRVUZPSGZ1ckhUVHo4L1BoMUtweE5tektmaHN6R2pRQ2hyNStma0FnS1RmTnlFOFBPTGhoYUsyNXVIaGdVYU5HbFY2RW9uL0Z4NGNRUkNFeFdMaGJPc01MTXR5dHYxdFlsZ0tnT3ZkdTNjYWdJVHM3T3diWGw1ZWd3RGNjNGIrd29YemlCc1lpMlhMVnlJaU1oSkxseXpHNXFSTmtwZFNrWDAzNXhzY1BuUUlPVGs1bURqcFM3UjVzZTBqQ1d4NnZSNFJFWkYyejlXdUhRYTlubWN4MFdxMStIUFhUa3laOGlXTWhVYTdNS0txMXVqWlo3SHp6NzFJVDAvSEY1K1B4N0tsU3pCZzRJZDI3MW01NGtmOC9mZFJKQ1FzY01xWlZ4TlcxVzF5SEllYzNCeG9IMUlQSVZka1NiODhmL2VxaHNlR25NSXhpZnhSQkRaVEJhR25CZUJFcFhhR0FNRUp3QVlLQkNlWHk2RlVxcmk4dkZ4UWxBd0IvZ0ZDOVZNSE56YzNlSGw1UWEvWHdOUExTd2cvRzl5eEYwME1SdzhkT29TbVR1aUp0Rm90QmczNkNDTkhETU03Ny9aRy9mcjh2R3lUSmszUnNWTVhEQnM2R081dTdsQ3IxRkNwVmRMbk5tOU9Ra2xKQ2FaTm40VjUzMzBMQU1qSTBHTnowdTlJblAvOW93RnNBT0RwNldrSGJqWWdWZzdZeEdPTHNpWmV3bWF1VkFRNmFhNE5BQ3VTNG5sN2UyODZmLzc4alhyMTZ2V2pLT3JsZTkxZnVWeU92LzdhajRqSVNCdytWRFhPOWhFalA4R0lrWjlnbk1CZytxaWF2NzgvOUE1VVRMZHZweUlxaW05Rk9mRFhmcXhlOVJQbWZEY1B3UUlQM1lzeEx6aTlJVG1DbmFtMEZOdTNiME9YTGwyaFVDb1JHQmlJOXUwN2xFc0FiMWovQzNidDNJRzVDZk5ydEpIelhyZDUvUGd4MEhJNTZ0V3YvOENQajVXeDd2dGJmMzV6dHgvalUxR0pPcnQ5Z1lDUWV0UUFnaVVKZ2lWQWNDVEhnZ0xKeVVCQ0pwTnorZmw1Y0hOM0IyTzF3bURJd0xQUE5TNmJLUER6aFZ2cUxmajYrcUYrL2YvZjNwbkhSMVhlKy8vem5HWDJ5YjRNeVlTRWtJUmN0dUNsd3JWaVhTNHVWRnNwdUsrWHFxMC8vZlc2SWxhOXJiVjFCWmNxeXExNlJhdTFldVVWYmRVZjlkNjZ3cjBnb2xHSkNZUWtKQ1FrSVNHUVpTYVptYk04dnovT2VVNmVPWmxKUUFGSnpQTjZIZVprTXBNWnpweDVuODkzTDBmcUtNZUlOWnY5N0xQUEFCanppTzJkcUJzYUd2REEvZmZpbnQvZWk3WFBQWXZKaFVVNDIxVEtsMTUyT1M2OXpFaHN1T2JxbjJMcTFCTEx5bk83M2JqbnQvZENFQVJFbzFHa3BxYmlyVGZmUkgrb0g5ZisvSnB2M3hTMXcyM216SmtvS1NsQlFVRkIzRmkvMU5SVXkrZm1kcnVaYVVyWjNGS2JXY3I4Ym9yTk5CMWdwdW1xVmF2dUhoZ1llUExydnRkL21ENERIMys4Q1hWMU94RGcwak0rM3J3Sks1YmZZdjM4NkNPcnZyWG8yWWhmRHJPN01RQlFYYmZhU2dIQTJlZjhDQjkrK0Q2MmJQa1lxcXJpdmZmZXhWZlYyM0RHbVdjQ01BYU1FQUlJb29qZTNoN0xSMEwxK0tEUHBMdzhiTjYwQ1lxaW9NdU05anFjVHJ6NHh4Znd5aXN2UTFFVTlQUWN3SVlOSDJIMjdObERwdkNiZjhVYnIxZmlzY2RYSDdVK2RRZjdtdEZvRkI5djNvUUg3cjhYUDcvMnVxTWVPT2pUQnArOS9mSGZyVDM3YjNlTVpub09BSWlZMDZSaUFCUkN6SUhHRkxvZ2lWUWtBcFVnVUJrQ0hFU2toQUIrZndyeTg0T1lWdjRQY0xuY2NMdmN5TWpJUkU1T0R2THo4cEdlbG82OHZMeFJvUVlZRVZRbVJCd09COUxTMG9ZMWFmMTA2eWU0L1pkMzRwUlRUOE1qanoyQm1xK3E0NEtIaXFMZ3BSZi9DRUtBV2JObVd6NWsxUXhrOVBRY1FFTkRBOHBLeTNEVjFkZmdsVmZYWWUwTEx4NDdpbzAzUzJmT25EbE1zWTJ3VVdJc0VFS3NOdU9ta3FOY2dxL09lclFEMEcrLy9YYjk5dHR2LzQrV2xwYTYvUHo4ZnlHRUhIY283OU1oeS9CNlBIanhqeTlnd1VrbjRhdnFiV1BHaDJaUDBIM3dnZnZ3NEFQMzRmUXp6c1MvL2VwdWxKYVc0ZGUvK1MzV1BMVWFIZTN0bUZ4WWlJZFdQV0pOTTFyMHc3TlJYYjBOVnkyN0FxSW80ZHpGUDBGcGFSbjIyOHFGYnI3NVZxeGErWkJ4Slo0OEdjOCs5d0ljRGdjZWZHZ1ZWai94ZTd6NnlwOGh5ekpPUHVWVVhQa3ZQd1ZnNUNtdWZPZ0JTSktFaXk4OEw5NU1mT2xsQkFLSFA1ZndZRi96RjlkZkIwS0F3c0lpM0hMcmJVYzFqMDBIL2J3aHNyZnlsSmI3NnRBNGxPSmtVMnJXTGNGUUh6VUFSaVVCaUE1UUtnQlVwSVJLZ2dCUkEyUWlVaWNrT05QU2gyby9mVDRVRkJRTTVhbVpnWUlkTzdZUGkzNG1XMDFOVFVoTFM4UENoUXNCQUo5Ly92bXdtUjhYWERnMDdDZ3pNeFBMYnh1YWY3Qng0d1k4L3RnanFLZzREZzg4dU1xQzVLSWZubzI2dWpvc3U5SlFjNys0NGNaaENsczZGcjk0cWFtcG1EVnJsdFVPaFJCaTNmTDczSDBXM0FCUXJxcEI1M3h3aVV4VHJhQ2c0TVBYWG51dDdweHp6cm5BNVhJdE85ajNxS2dxVHZ2bmhmajlZNC9naGh0dnhoL1dQSFhNSGNjenoxcUVNODlhTk96KzB0SXlmTFJ4NURtbUo1NjRJT2tYMStsMDRxNS8rM1hjZmRmOGJIamZ6M256L3lsaE04U1MwbEk4OXZqcWhIOWJGRVY4dU9GL2orcHhPcGpYSE8xNGZkUGw5eWZQa3h3SWgvLzAycjRQMzcvclFHVWZaM3JHRWdITjlLY3BBRFdnUmcyZ0VRcWRnRklDUWtVUUtpb2FKQUF5a1F5b1FZYmI0ekdTYi8xRFByWHM3QndqcGNQTVUvdmU5dzYrV3RHcTJQbWFhOEdDazdCZ3dVbkQ3cGNrQ2JmY3VuekU1eDZUWUdNZk5BODMrNVlBY0JiY0ZFV2hab1VDSDFTZ1hLVUNVMjhhQU8zODg4OXZCZkJrYTJ2cmwzbDVlVmNTUWtadHdxNXJHcjUvNGdJME5UWEZSWG9FVVlSK0JKdDNUcXp4dVVSUlJEZ2Npc3VYMUhYOWkxMjdkbFdlOG9NVGQ0QkxaeG9CYWpFeXBOSllkdzZkQUdhUWdFQUVvUklFeUJBc3FMa2d3K1gwd09QendlZnpXVDYxbkJ5alRLcW9NSEdlV3FMbDhYZ3hNQkErcU1jZHlTVWR5eCsyMSt2RjdObXpJWXFpdFkwQ09tb3FPQll4dFFjVm1HMnEyMDFUQUZvd0dQeGc3ZHExWDExd3dRWG5lVHllbjQzMi9qSXlNdkIvZi9HdjZPZnkzUEx6ZzlqZDNJUllMQWFxNjZpdHJVRmhZZEVSTzBadXQyZUNDb2Q0Ykw3Tlk1YnN0WE55Y3REUnNkY0NXeWpVLy93ZlgzaitvL3Z2dXpka1UybDg1SlBmZUtpWlppZDBFMmpVaUh3S1ZBS0JURVRxZ0FnSFpMaUlETGZEQTA5SkRueG1TZ2VER3QvOTFwNm1rV3hOS1M3QnJzYjZFZUhtOFhneHBiamt1d3Myd0NpL3NzUE5EcmtFSmlwVGIvWXFCY3I1M3BocHFwdW1xUVpBWGJac21iWnMyYkpuNnVycVBpMHVMcjVFRk1WRHlzbkl5OHZEcWFmOU15Ni85Q0trcEtSYVpVeEFmTHJIVjlYYjhNVGp2OGY5RHp5RXFTVmYvME5PZEtXZldFRFlITktiYUFuZjBqRUxoL29oSmtraG1UUnBFdHJiMjlIUjFycGhkMHZyMjB1WExHNUtvdEo0bnhvTGpNV0dWSm94UmNxNGNCczFuNElnVWtrU0lVbG1odzZIREFkckVtbk9LR0Q5MUN6ek16L2Z5Rk9iVm41SXFUWXBxYW1vT0c3dXQvNzVIOUdaQjRkelVVcXQrUWt0TFMzbzZPaEFWMWNYZW5wNjBOdmJpM0E0akhBNGpFZ2t3by8vSTl6Z1pxTHJPcHVsUUFDd2VRcWlDWGlaVXVvQTRBRGdCT0FzS1NseGJkbXk1VWVOdTNaZG1SczRPb00vOTNic3dkeEQ2UERSMU5TTTd2MzdKenJvRGp1T2Jjakt5a1JoZ2s0VFRjM042TzQrK3Nkc2IwY2JNak16VVpTZzBTU2xkRTluWitkL3pwa3o1NU9Pamc3RkJyVm9Jb1VHSzlwSlZCaU5JVFRURXFGc015dDBJRWtTSk1tYVV3QW5CemFQeHdPLzM0KzB0RFJrWkdRZ056Y1grZm41bURKbHloR3RKZjVPS3phTHdJUmc1c3laN0FNYXB0enN0K1kyTEdKS0NLRW0zTUFyTjJhYXdwaEdyd0ZRNit2cjFZeU1qTW9ubjN6eWt3VS9PR1Z4UmtibWxVZjZpaTdMOGlFOXA3QndNcnE2T3JHM293MCtmOHJFeklOUVAwS2hmbWlxbWhCcUFGQlVXSWpPenFOM3pOaDcwalV0SWRUQzRmRExiN3p4eGtlWFhYYlpnVkZVV3BSVGFOWkVkbE9sYVNiTWRBNW1Sc2RiMmRiSzI4MzFValBiZVdkblp5TVFDR0R5NU1rb0tTbEJlWG41bUQ0UHhveGk0MWREUXdQcTYrdlIzTnlNOXZaMjdOdTNEL3YzNzBkZlh4OUNvUkRDNFRBR0J3Y3Q1V2JPWENEY0dFQmV2UW1tZWhOTTBFc0FKRTY5V1FydS9RODJWRXdwTGw0cWl1S1pSK0wvMWJtM0haTUN1WWZjdG9oU2lsMU56ZGkvdnh1YXFpTVMrVzQybjNTN1BSQkVFVm1aV1Nnc0xCaFZiVFEzNzBiWHZuM1FWTzJJSFRPMzJ3TlJraElxTlVWUi9ydXFxdXEvNXMrZjM4SUJMUm5VRXBtZDZwRFphUUhObUUxZ0FzMG9aSTlYYUY2djE0SmFSa1lHc3JLeU1HblNKQlFXRnFLa3BBUlRwMDRkOCtmQ21BUWJBTFMwdEdEbnpwMFczRG83TzNIZ3dBSDA5dmFpdjc4ZkF3TUQvR2kvWVhEVE5JMll3NXZabUQ4R04yYWVzcEYvTWc4M0FNNVBQcTFha0pPVGUvN2g2dFE3RUE0aDFOOEhnQjcyUnBNVDY5aGJ1cTV2Yld4c2ZMdTB0TFRXVkZ4MmxSWkxvTktVQkNwTjV6WnFXakJKb2VZeDB6bjgxbnlDZENQeWFVS3R0TFFVQldZbHlWaGYwbGg5NHdVRkJUQ3JEbUFXeFZ1M2ljeFYwMFNsZ2lBUVFSQ2dLQW9saExDR2wvYkFnaFVwSllRdzA5UTZBWStmZTl6N0pTVWxteDUrK09FelVsSlN6aWVFZkczZDd2ZjdJVWtTOHZJbUlSQUlUSHpyeC9HaWxPNW9iMi8vNjhLRkM2dHFhMnNaek95K3RKak5oOFpEelJZY3NJWVhVMUVVcVNpSzF2ZEJsbVhLZXU0eHFIbTlYZ3RxUnBEQWJEdFVXSWl5c3JKREh2MDRBYllqdEhKemM4R2FVUEtBU3dRMXp2ZkdaaUVTUlZGQUNHRUp2WlFPRFRYVmJXa2hHZ0RWbkcrcW1QNDM1ZHh6ejMzcmpqdnUrUERXVzI4OVBTMHQ3WHhDU1BIRTEzZGlKUURhcnE2dXJyL2VmZmZkVzllc1dSUGxUTWxZQXRPVDNTcDJzNU9kaTh5WHhpYXkyMVdhTE1zVzBPeFFZd0VDbHM1UlZGU0Vzckt5WWUyRXhyd3AydFRVTk9iL0U1RklCSTJOalZhMGROKytmVmEwTkJRS1lXQmdBSU9EZzRoR281WlphaGJvRWxZenljeFNMbXBLYkthcFNDbVZtSW5LK2Q4Y0FKeTMzSEpMeWhWWFhMRXdKU1ZsNlRkcGFqbXh4aFhRR3ZmdjMvL21talZyUG4zMjJXY2pIS0NVSkVDTGNiQ3pSenVaVXJPaW5jejg1S3dVcTlzMFUydDhvQ0ExTlJWcGFXbm0zTThBQ2dvS1VGeGNESmZMTmU2Ty9aajFzU1U0aWJCanh3NDBOalppejU0OTJMdDNyd1U0RmxSZ2dPUDlic3ozeGdHT21GMTlDZk8vSVQ0MVJJUVJYRWdFT01meTVjdjlLMWFzT0RVakkrTmNRc2lNaWEvM2Q5S0hWdFBaMmZtM1gvM3FWMVhQUFBOTWRBU2cyVGZGTkR0VkRtWWFiM2JhVlpxcDFPS0FsaWp5eVlER1VqbUtpNHN4YmRxME1adk84WjBCRzF0TlRVMW9iR3hFYTJ1cnBkNE9IRGlBdnI2K3BFR0ZCSUdGdU1ncFUyOE1jaGpLZlVzS3VPTGlZc2ZHalJ0UHlzM05QVnNRaEJNbXZ1N2pmMm1hdHJtbHBlWGRrMDQ2cWJxMXRaWEJpUWVhY2hCQVk4K3pBZ01BS0IveFpDcU5EeEFrQ3hLa3hFMW5EeUFZREtLNHVCaEYzOUlnNHdrZjI5ZGNSVVZGZkZ1ak9CL2NLQUVHZGlWazZvMXFtbWJsdmNITWRUUFZXMXh3d2VaL2l3RndORFkyT3ZMeTh0NEY4RkZkWGQyY29xS2loYklzLzNqaTZ6LytWalFhZld2Nzl1My9NMmZPbkYwY3pIaVZGa3NBTlNVSjBQamdRRnlTTGEvU2VMUFQ0WEFNODZjeDA1TlA1eWdvS01EVXFWUEhWWkRnT3dNMndBZ3E4SDNiWEM0WCtKUEFEcmRJSkdJQkxoYUxXWkZUQmpjdXVFRDRrWCtzUXdpTWZDSVZnR0lxT0F0d0FCeGxaV1ZiQUh6KzdydnZ2anB2M3J3ZitIeStzd0VFSjVBd3BsMGZyZjM5L2UrOC8vNzdueTFldkhoZkVxQWxncG95a2tJekw1aDhsQjRzcHNXdGtKVHlBQUFUVGtsRVFWVG1CdWk2VG5WZGg2WnBWbDh5UlZHc0JIV202QndPQjhMaE1OeHVOL3I3KzlIYjI0dnQyN2RqKy9idGgrVVkrUDBwRUVYQlNobVpNRVdQb3QrdHJxNE96YzNOYUd0cnc5NjllN0YvLy80Ui9XNW1LVmJDNEFLWDFBdlROR1dsV1hGQkJwdUp5cHVxTWdESEpaZGM0bHE1Y3VYOG5KeWMweVJKT20wQ0UyTm5xYXI2Zmt0THkvL2NkTk5OdFgvNXkxK1Vnd1Nha2dCbzlxQUFnNWxPaUFDanhsT2dnaWhDRWtXSXJDUktraUU3WkRoa0I0eXA3S1pTYzd2aDhYcmg5L21Sa21xTXhzdkt5a0p1SUlCZzBBZ1NIQWwvV3BqTHdaeDdET1Znaml1d1hYVFJSWGoxMVZkeC9mWFhZL1hxb1g1ZnJhMnRhR3Bxd2cwMzNJRFBQdnNNNTU1N0xnb0tDcEw2M2JpRVhwaCt0NUdDQzJRVXdFbEpBQ2NEa0JjdFdsU3dkdTNhK1RrNU9RdS9TVDdjeERxaUY4Z2RQVDA5SDN6MDBVZGZMRjY4dUp1RFVpS2dLVW1BcGlZRG10a2prREpmR2hFRWlLWXZUUlFOb0VteVdSb2xPeUE3SEhDYVVITzdYSERINWFnWjZSeFoyZG1tK1RuNXFLaXB6cjN0eUpzVU9HWnlNY2VkS1NyTE10NTQ0dzA4OGNRVDFoVXFHQXhDRUFSVVYxY0RNRHAxQmdLQllUNDRleTVjTEJhREtJcFFGSVZsZFpORTVxbk5COGM2aFFpbWlTcHhKcXBrbnZBVzJOYXZYMThmQ0FTYUFieStiZHUyOHFsVHA1N2dkcnRQQXpCUjFmN3R3cXh0WUdEZ2c1cWFtcXA1OCtidFpqN1Znd0FhdjZtbVF0TVNtWndNYUlJZ1VFcXBtVjlwSk5xS2tnaEpaTFdlRW1UWllTZzFGaVJ3R3BGUHR4bjU5UHVOeUdkR1pnWnlzbk9SbDVlSHlZV0YxcXpOSTcyOFBqLzI3dDA3QWJZanRSWXNXSUFOR3paZ3k1WXRtRDkvdm5YL3hvMGJNV2ZPSEd6ZHV0VXE5alVuemNjQkxod09XMEdHU0NSaUFjNVViOVFlWE5CMW5ROHdKQW95YUFCRTg0b3RVVW9aMk94S1RwNDFhOWJuQUw0QzhQejI3ZHRuRlJZV0h1OXl1VTZaZ056Umc5bmc0T0JIOWZYMVgxUlVWT3ppMVZVU29La0hDYk9FUU9NREE3cXVVMW1XTVV5bHhabWVUcmo0ZEE2dkY3Rm9GRnMvK1FRWFgzSUpNak96a0dPbWN4UVZUWWtiUlB4TlYyMXREZDUrNjAxVVZNekI2V2NNTDVYMmVuMEk5ZmNlTTUvbHVBTmJSa1lHVGozMVZGUldWc2FCYmQyNmRiamdnZ3Z3NmFlZkloZ01vclMwRkI2UEJ6VTFOYWlzckVSUFR3L2NiamZLeTh1Um41K1B3Y0ZCU0pLRW5UdDNZdCsrZmRhZ0UwbVNhR1ptSmtSUkpLRlFDSkZJaElxaUNOYXhGd0FSUmRFQ25LN3JnbWwyaUdia1ZEUlBmR2FtU2dsQUo1V1hsMjhGOERtQXRWOSsrZVcwNHVMaU9SNlA1NFNKM0xqRHUzUmRyd21Id3gvdjJMR2o1dmpqaitlVm1jNkJhU1NncVJ6UTdPWW1pNXpUWkVCajZSdXFxc0xoY0VCa0hUa2swNEpnS3MzaGhOTTEzUFQwcDZSZ3puSEhJUmljYktSekZBU1JrM040bzU1UFBia2FqWTBOR0FpSGg0MWw1TmZSSEN6K25RTWJBQ3hkdWhRUFAvd3dIbnp3UVFEQTRPQWcxcTlmajVVclYyTEZpaFZJVDAvSDdObXpVVmRYaCtlZmZ4NlhYSElKQ2dvS1VGdGJpemZmZkJPeUxDTVlER0wzN3QzbzZ1cENhV2twWkZsR1QwOFA5dXpaZzRHQkFhU21wdEpZTElaSUpFSjBYWWZYNjZXYXBpRVNpVURYZFNwSkV1R2lxTVM4V2dzMk01V3ZhT0EzSG5UUzdObXp2ekNWM0t2cjE2K2ZOSGZ1M09scGFXbHpaRmsrQVVEcUJKNE9hZlVxaXZKeGQzZjNsNXMyYldwWXNtUkpONFlpa2NuVVdTS284UjAyVk50emRVNmhVYjQvR2t1d0ZTd2ZtaEhCRkFTQk9wMHVQajhOc3NNQmdSRHMzcjBibXFwQ2xDVE1ualViK2NFZ0tBWCszOXR2UVJBRXBLZG40SkhISHJlc2tGK3VXSTYydGowQWdKNmVIbmk4WHZ6NWxkY0FHSjF4bnZqOW8ranQ2MFZHZWdadXUvMlgxcEFlQUhqdFAxOUZaZVU2Ni9FQWNQVTFQNFBENGNDcWxRK09tUTk1WElKdDhlTEZ1TzY2NjFCZFhZMlpNMmRpL2ZyMW1ENTlPZ29MQzYzSGVEd2V2UHp5eTdqNDRvdHg3YlhYb3EydERjRmdFS0ZRQ0pzMmJVSkZSUVZ5YzNQaDkvdVJsWldGU0NRQ244K0hmZnYyUWRNMHVOMXVSQ0lSQUtEcDZla1FCTUV5VVZWVmhTaUtiTllDaTZJUzB6UVZ6UHNZNEVUeml5S1pxazYwUVk0SG5iUm8wYUpkQUZvQS9MMmlva0orN3JubmlvdUxpNmY1Zkw3WmtpUjlEOEJFSzEyYmtGQlY5ZE8rdnI3cXVycTZ4cXV1dXFxMXBxWkd0eWt6eldZNkpnTWFEelArT2JyTjNMUVVtcmtoR2RCWXp6UkNDRnd1MXpDVnRxZHREM0t5Y3pCOXhneW9xb3J0dGJXWS8wOG5JRDA5SGQvLy9vbUl4YUo0OVpVL1l4bzMzL1QrQjFjYUJPL3R3Yyt2dVFvMzNYd3JBR1BPNTMyL3V3ZS91KzhCVEpvMENlLzhiVDNXUFBVazd2N05iNjNuVnN5Wk02enpzTVBoR0hNZityak5ZMXV3WUFGZWYvMTF6Snc1RSt2V3JjTjU1NTAzN0hIVjFkWG82dXBDWldVbHVNbFcwSFVkMmRuWmNMbGNhR3hzeE02ZE82MDBFVVZSa0pLU0FxL1hpNEVCbzRlWDMrK0hwbWxVVlZVTURnNFNWVlVoeTdLVmEyUkdVVmsrRWpYSGFRMVRjS2FaYWxVMmNKQkxCRHZwaXkrK2tPYk9uVnNOWUR1QXR3b0xDOFdYWDM1NWNtbHBhWEZxYXVvMFdaWm5Fa0pLdmtzVW81VFd4Mkt4cnc0Y09GQy9mZnYyNXNzdnYzeHZhMnVyYmxObGlkUlpNcFZtL1k0bFk5ditCdTgzaXpNM2VhQnhDZUJ4UUdNS2pSQUN0OGM5bE1aaG1wN0JZQUYyMXUxQVcxc2JTa3BLY01sbGx5RWozWWg2QmdJQlJLTlJ1TjN1UkNZMmZuUDNyM0gyT1QvR3ZIbUdTMmJYcmthMHRyYmdEbk5ndDA1MWVHMURWY3JLcHFHc2JOcVlQdytrOFhxQ0wxMjZGR3ZYcnNWdHQ5Mkd0OTkrRy9mZWUrK3d4NmlxaWx0dXVRVS8vYWt4MDdLOXZkMXFPUzZLSXQ1NDR3Mjg4ODQ3S0M0dXh1VEprekZqeGd4VVZWVkJraVQ0ZkQ1cmlJdlg2N1ZTUTJSWnB0Rm9GRTZuazVqUlUycUxvREt3V1ZQc0thVzZlUitEbkFBalJZQXZ3QmR0Z0J1MjM5emNMSjU0NG9rN0FOUURlQmVBdUdyVkt0L3BwNStlbDUrZlA5bm44MDJSWmJsRUVJUnBNSHJMamVVVjFYVjlSeXdXYStqdjcyL2V2WHYzbm5mZWVXZnZuWGZlT1FndUoyd0VtQ1dEV3R3K3A4eml6RXliT3FNMm9GRytrd3pmWWNZT05MWUJnTmZqalE4UWVEekl5OHZIak9uVGNhQ25CenZyZHFDOXJRMDMzblFMSnVYbElTOHZEenQzMWlVOE9QL3g3Tk53dVZ5NDdQSXJyUHNVUlVFZ0VNRGFGMTRjOXhlNGNRdTJKVXVXNE1ZYmI4VFRUeitOc3JJeVRKa3laZGhqcGsrZmptM2J0cUhFSEtaU1VsS0NaNTU1QmhzM2JzUlZWMTJGVFpzMlllSENoVml3WUlHVjg3WjU4MmE0M1c3NC9YNXJxclhYNjdVaXB3NkhnNWtWbEc5b3FXa2FCRUdncXFxQ1VncFJGQ21sbEpoQkI4S3BPRlo0VHpqSUNTYmtoQVNRRzNILzFsdHZIUVRRRGFDR00zMkZ5c3JLclBMeTh1eXNyS3hjbjgrWEo4dnlKRkVVZzRTUUFnREhTcnVIQ0tXMFJkTzBQYkZZckQwVUNyVjNkbloyMWRUVWRGOTQ0WVVITUpTZHI0OENzMlFLTGVFK0J6UGREak1NRFFDaXlkUlpJcURaaXRhdGpVWGpBY0RuOThlVlJ2bDhQbXpkK2dtbVRTdkhxYWVlQnJmYmpYdC9kdyttbFpmRDUwdnVjZGk0Y1FNKy9PQUQvUHZUejhZbDVaYVVsS0N2cnc4ZmZmZ0JmbkR5S1dob2FFRE5WOVg0MFkvUHRSNnpjMmNkcXF1MzRTYy9XVG9CdG1OeEJZTkJ6SnMzRDNmZGRSZnV2UFBPaEk5WnNXSUZ6anJyTE54OTk5MjQ5TkpMVVZOVGcrWExsK1BtbTIvR2pCa3prSldWaFk2T0R2ajlmaWlLZ3ZmZWV3K1JTQVN5TENNOVBSMzc5eHVUejMwK24xV3h3RTVTdDlzTlZWV3hmLzkrcWlnS2ZENGZKRWtpZzRPRDBEU05NajhHU3hjUkJJRVYyNE1CYmdUSVdZQ3lkUjBaYWVPVGg0VWxTNVlNQU5qRC9WMzJHdVRSUngvMXpabzFLeVVRQ0tTa3BxYW1lRHllRklmRGtTSkpVb29vaWltQ0lQZ0lJVDVDaUpjUTRqWkJ5Qm9Bc05jQ0J3WnJiQnlsZEpCU0dxYVVoblJkRDJtYTFxK3FhbDgwR3UwYkdCam83K25wNld0dmIrLy84c3N2UTh1WEx4L2c0RVZ0SUtNandFeTNLU3h0dEkxMTBVZ0FzamlZOFNBRFM2ZzFwNlR4NWlhRG1hMnRVQnpRV044MHA5TUpTaWxTVTFOdHJidFRjZFpaUDhTNzcvNDNHaHZxNFhRNmNlZGR2NExQNTBOcmF5dHV2dkZmb1NneDlQYjI0b0x6bHVBZjU4N0Y3Yis4RTZzZmZ3eVJTQVRYLzUraENaS3JuL29EL0g0LzduOXdKUjU3NUdIODRkL1h3T1B4NEdiYjRPR3F6ejVEWmVXNk1RKzJjVmQ1b0tvcTFxMWJCd0JZdVhJbGJydnROalEwTktDNDJPZ0JLVWtTWG5ycEpWeDAwVVVBZ0QvOTZVKzQ3Nzc3VUY5ZmowQWdnS3V2dmhwMzNYVVhDQ0hZc21VTHJyNzZhdFRXMXNMajhhQzgzSml2V0ZWVmhXWExscUcydGhaLy8vdmZzWGp4WXF0cVlkZXVYV2h1YmtaRlJRVVVSY0hPblR1aHFpcUN3U0NibG9YdTdtNm0xQ0FJQWp1eENlZUxzeURIOWhOQUxnNTJuSm9URW9Fc3dUNS9tMmpqWDJla0RRbHU3ZnR4YnJBRSsvenRTSnNkWlBZdG1Vb2J0czhHOXlTQzJHZ3dZL3UyeHFVSEJUUmVwZkhOSUh0NmVqQnBVajY4UGkvOGZuTytwMW5BbnBzYlFINSsvaUdOd2ZzMlZzUE83VGo1NUpNbndEWldWbTl2TC9iczJXUDUzK3oxcG14NGpMMlpKVmR6Q200TW9GVzh6TXhVUHNqQXlyVzRzaTMrY3lJMjBNVkJqbElRZ0E2RDNTSCtuQWhzUE9DRUJGQWJDWEFqd2MwT05DU0EyRWdLVFUraTF1eU8vVkVoWm5zOTNtL0dZR2JkY3FhbmZYQTN0WGR0WmpCenVkeElTZkVQYXdMSkZGcDNkemNLSmhkWnpTQXpNak90NG5LL1AyVk1mRStPSmJDTkcxUDBoQk5Pd09iTm04ZGNFSSsveUtTbXBqTHpsSEpkSEFqWDNZRVFRdUpVSEl4eGdjVHcwMEVBQ0VrRUpVb2gyS0JIUmdIYVNIQTdGT1YyS0dBN0ZMTXpHZUNvRFdnakFVeTNBd3dnbEJCUWdJQVFDMlFHekFRQkFqRWhKZ29RK1JJb3RobWxVRU5xVFpZaENBUUNJVkExRGRtcHFjTWFRZnI5ZmhCQ0VBd0dvV2thZkQ0L1VsTlM0ZlY0MGRmYmg3N2V2bVArUk00UEhsdk5hc1lOMkRadDJuVFVYb3NmMk56ZDNSM1h5REljRG8vVXFkZFNib3FpV01yTlZHOThEU3JoRkJ6bGxCeTdwVFpUbGNGRTU5VWRyN0lJQVVrRVBRNlNvNEZNR0FWb3lhQkdFa0I4TkxWR2t5aTNaS0JqY05KSGVnNXo5ck9ac3B6elA1RXFzOEdNUUJEWTdGcUJDc0x3bVJxU0pCbGdrMlRJSnRRY1pxS3QwK0dBcnV1UUpCbVptWmxXNVFCckJDbUtJb3FMcHlMYm5FVXdzU2JBZHRSWFFVRUJjbk56MGRiV1puWHBUV1Nlc280aEl3R08zeGpZUm9NY0J6aG9ta1lKa3hoRFFJdURqVTNoeFVHUFN6MFpCakRUdEIwSlpFZlN4MmI3bVNtcHBNQ2ppWjdQZGM3QXNIMkQ5Z2JRQ0FFQkFSRUlGUWhCbkRvekZCb1ZCUUdDS0VLMFEwMlNJRW5NcDJaQVRYWTQ0SkJsT0V5ejA2Z3FFQ0dLQWdLQmdOV3VteldDbEdVWjAyZk1PT1NCMlJOckFteUhkVGtjRGhRVkZWbUE2K3pzdE5xUTkvVDBvTCsvZjBUL1d6TEFjZjQzcTRNSUR6a3VpZGlDbkdtZUluNjRQYS9jQ0V4QVlRaDJJT3c3bmd4WU5wVTNxaitOc24wNmltSWoxczNCUUc0VTRQRS9HK1lqLzNkc1RuOEFvTHBPSVFnQ0RKNFJhdlkvQTdHVW1jQUZCa1RUN0RSdmVZVW1Nb1hHQWMxVWFQSEJBVGM4SHNPWHBpb0tKaytlYkxYclp0T2lvdEhvaUZBalZWMGdUMVlCOVQySC8yUXVTUU85L2pqUTQ3SW53RFllRjZVVUhSMGQ2T3pzaEtwcGgxVFVHNGxFME4vZmI1bWpiRXZXeUpKdGxBSTZwWkFrQ1U2bmN5VEFRZE0wdnByQmdwd2dpS0JVcDdwT1RjRHBvQlNnb0t6OUtnQkNUUENaMzNlWUlCd09LaTZnUkVhNWpkdTNlSFZ3L1F6cElTcTUrRGVmNEhkY3poWmwrYytpS0ZyUFllYWxwbWtRUldrWXpBaWZnMmI0enl5b2plWkhrMDJ6MCtGd3d1RjB4QUhONHhtYXZENFE3a2RwYVNseWNuSVFDQVRnOVhvUDdnUmJYUVUwOUJ5WkU3KytCK1RKS3RCbno1Z0EyM2lFV2xWVkZVQUVlSDErZUwwKzVINk4xbEtEZzRQbzdPeEVkL2MrOUppVDZmdjYreEFPaFJBT0QyQndjQUNSd1FnaTBRaGlwbm9iR0J4RUpESUlWVkdNcTNwaTh6UnVZNHBOVlZWSWtnUmRwMFNuT3FpdXd3Q2NNUnFWUldWTkFCRFo0WUJ1bXJxTVJ5eTZOOFFuQWs3TklZbDV5WU1TQjJHQ2pnSTJBa0tTQWk0T1dQR1A0MzRtaEplYW9KUmFkWmpzLzBnSU1TcEVIQTdtTzZNTWFoYk1ERC9hY0xOelJLQ3h0a0l1dU53dXVOMGVlTDBlZUgwK3BKanBHMm5wNlFqMzk2S2lvZ0llaitlUXppdHlwS0RHd1czQ0ZCMkhxNk9qQXlBQ2NuSy9XYmRSdDl1TndzSkNCQUs1Nk9yc1F2ZCtNN2pRMjJ1WnB3TURZUXdNR0RDTFJxTndlenlJeFdMbzcrdUZKRWx3dTkwam1xaE10V21hQmtWUklFbnlVSkJoQ0c1RVZZMi80WFE2emNlWS9qaFJoSzRiMWxzMEdqV1VpaWhpeUpaRkhOZ1NwQVF4Zm1Bb2RrRVRYaXlTdGFObWJhRGkxWlQxUEdyL3ZablF6SVBOQWxnQ3B6OElJZEEwRFE2SHd3SWFNeThCd09sd3hxZHFpSUwxR1ZGSzRUTHJORjF1RjBSUndoZWZWMWwvMStQeG9LUzBGSG1abVhIcEczYUY1dmY3a1pLYWl2VDBkR1JtWkNJN0p4dXR1NXNPR1dvVGF3SnNYM3QxZG5iQjYvTWZ0ci9uZExvUUxDaEFZTklrTS9ldDIxSncvZjM5Q0lWREdEQVYzT0JnQk5Gb0JBNVp4dURnQUh3KzM0ZytPSDZMeFdLUVpVZGNBYjhKT0txR0ZCQkM0UGY3VFJWSENhVTZkTXBNVm1vTXJ5RUNaRW5pL1hTY3YyN0lGY1lCei9xSERPME5neDhiTkdLREcxVlYxWUlWcFlDbXFTQ0VRaENNYWd4RlVVQUVBWkpvdkNkVlZhRHJsQnJGNGtNcXpYTDYyemFCR0NhbXBxblU1WElOeXpkajRPS2hGZ3FGRUFxRlVGdzhGUzYzRzNzN090RFd0Z2V6WnMwR1UzM2ZPMzRlMHRMUzBOZlhoK3B0WDhMcGNHTEd6Rmx3bXdyTjQvWEE1L1daTGJvTmhaYVJrWW5zN096RG1seWIrZnhpS05XZDZGdjF2d0NBakNkK2lJRzM2aEI1cHo3cGMvelhIUS9uS1VYWWQ0SFJqc2g3K1d4SVU5TFJlOCtIQi8yNm96V2JQSmJXL3djYUx0Ynd1T0xUcXdBQUFBQkpSVTVFcmtKZ2dnPT0iXSxbInNyYyIsImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBVFlBQUFFMkNBWUFBQURydkw2cEFBQktvbnBVV0hSU1lYY2djSEp2Wm1sc1pTQjBlWEJsSUdWNGFXWUFBSGphcloxdGx1VzRyV1gvYXhSdkNCSy9PUnp4UTJ2MURIcjR2VGNqczF4VnRsLzdyVzZYcXlJejRzYTlFZ2tjbkFNQzBMWC85Ly82cnYvNnIvOTZTbXZoU3JtMjBrdTUrVi9xcVllWFA3VDc1My85L1BlNTAvbnYrVjhzdi83MC9QWDcxeDgvQ0h5TnZ2TG5CL1g5K2ZxOGZELy80eGQrZjhZei92cjlxLzM2U1dpLzN1alhEM2pqbnl2d2svM3ordk5GOHYzdzgvMG4vWHFqdm4vK1VIcXJmNzdVOGV1TjVxOFhua3Y1OVcvNjQ3Sit2dmozNnkvZnFLelN5bnhRREdISEo5N252K25uQ3VMUHZ5Ly8xdlBmd091ZUdQbnpFOXQxdnZ5K0pSYmtMN2YzKyt0OS8zbUIvckxJdi85MC9YMzEvL2pUM3hZL3ZMKytILysybHVYWEd0M2xYLy9neVgvN2Z2empZOEpmek9HUEt3cC8vY0VZNlo5djU5ZS8zN2ZhOSsyZnUzdFRZVVhMTDRzNmkvMzhmaHRlT0ZqeWVINnQ4RS9sMzh5ZjYvbW44MCs3MzN1eTVldWU5K0NmK2ZRbnNDdmY5YVJuUGUvelBmdDhuYy9rRWxQWW9mSTFoQm5pK1Y2TE5mUXdvL3VVL09mNVFvMDlydGpZeXhuMnhmYWxHUDY0bHVkOGJqK2ZONS9HSjYrSGw0YUhOM3Y0bFgvN3ovWGYvZkIvOHMvMWZkTWxldTcyeDFweFhVRzc1akxjT2YvTHE5aUQ1L3UxYi9rczhPOS9mbTMvL1NmN3dWVFp3WHlXdVhHRDd6MSszbUxrNXgrMkZjOCtSMTZYK2ZxenljOVYxNjgzWUluNDdNekZQSkVkdU1zVDgxT2V1NFpRbjRkMWJHelF5NVdIbU1KZ0I1NmN3K0lpUTRxeGhLdUdGdnhzZnFjKzU3VWhoeEw4TnRqRVJ1Ulk4SzNHRHIxc1Zrb1orNm1wWVVOdmpqbmxuRXV1dVYyNTU3ZkVra291cGRRaXlMMDExbFJ6TGJYV1ZudDlXMnlwNVZaYWJhMzE5dmJRSXhpWWUrbTF0OTc3KzRicjVZTmUzdXZsOVMvZkdXSEVrVVllWmRUUlJoL3Z4SHhtbW5tV1dXZWJmYjRyckxpQWlWVldYVzMxOWU3bjJpREZUanZ2c3V0dXUrLzN3OWErK0tVdmYrV3JYL3Y2OS82eGE3OTI5Wi8rK1IvczJ2TnIxOExaS1Y5WC85ZzF2bnZWK3ZzdEh1RWt1MmZzV0VnUE8xN2RBUXc2dUdkM2UxSUs3cHg3ZHZlQVUrVEFSV2IzNWxxUE84WVdwdjJFL0QxLzdOMC9kdTQvMnJjcnQvOW8zOEwvYmVjdXQrNy94ODVkYk4wLzc5dS8yTFZsbkp0bngzNjgwRFc5STk3SGE5N0FGWDFqZmZ5MXhDKy84YXZqMjdOdVlkSWYvK2MvdlY3dlo3LzE0VjdMdStwVGMwaWx2V3h1SEozTEdIUGlWMmxFTDJXL2laZU1IZExYV255NWc5bldNKzg5cmpCbkhMdTJKKzg2ZHN4ZmU0RzZiK3kxVjU0SmU5cVR6MXExMzJ2dDhYQWZNKzkzalRWQ0duenVFL29NcVY1UDQ2MG02NFgxM1h2WG1RWTJzTCtZNy81OE5lMzY4TE9ZNTczbUhwM3RIUFVlVDhwanMyT0EvOHN1WWxUWFRLTFZzK2FxTDhRa3gwMTRmZGZMT25RdU1lVEJubGJXSjR6U0FmWTN6L3FOVk4vd0xTeHJmaVhPWEVlNklEVjEzaXhHYlFtRDdrU1ozc3Yzc01GZjNTekdIUHh4eGEvTkw5eGNudjR6b0NGMThxNnh6b0J6enE5ZGJlV1MwbUtkWnI1SHVWc1A3UHNjUUg3ZnE0VTFTMXhoclB0TCtWc1kwRno0UVk5NXJ4cHEzeVd3RVNtWHE3U0hQZmxxNXVhTU4rdTcyWXpPNjl6WWY3UDV6OHlyY1RIQVFTejl1MGNxMXpEZ3hidVV0UWF3d3EyRnVQRWpEQk96aldzVXRqbHlLWFBFL1BJSkJjZC9CNSs4NDZoY3lvTWg4R3ZYR01lcS9qdUwreGMvbTZXTVdQYVk4Y09wOTJ6ZkZkWXFIZmVPaWJET1BXTWJLVXhYcHNjMlYvYlcxajYzK1h3dllQL0hXMk10SWJBaFJQcjJmQmVoL1FGOUZtQ0NLZlc1dWNmK3hsQXg0bWVYd1hLWDhSVSt2UlI4OHlQQ1l5ZnRUZmViV250NVQ4eDlyblcxOHVVSmlIM0huTXFMRFg3LzdncStmdlBpcjZWdngvcHhRVEdOc0h0Ym9PUDFzb1A4dFh3UkFNSzd1VXBRRE44SEZVYm5mbk1BU2NTczJPVis3N05lYkNBYUJSZi81bzlYNzY5ZVVoNHV2dGZ2aWQvWi9mMDFYZUZsaTJyQldwNVpndWF5ODRRbUxqeGs4LzZzSWV5R1QzMjBsVEJodFlTVHhJY2tQUXgzL1BhajV3NXNhb1JudlBWaks3aitZNWNkTUs2d0JSY3UxZGJmTC9MaGtYZTRObEc2bDhhT0R1Z1NLMVJUK2JCalhqbEhMOXQ3WHZ5aEZaYWtoNmZuRzJzTEtRZnViNy9TNzdyRzgxNnBqRldlZC9JcGdHdHZCQUt3R09OLzhsdnpSK0J2TlU3d2xML09BejR6cHhiM3lDek1malRIY1dOVTE4TTlWWnowVGJNMjdoNUhlOWRSRUptOWxJN0pMbExBMTBKZ0pmK2R5VjcvdVQwL1h2SEtHdzRYSmpmTkJSY2lUK2NlcERVM3hqZUJWVHhhT2xwRHdUS0pydlV0R3lOczd5N2xHNERBZ3BEbGN2ZlJpbXZFUlk5S0dKMVZUSG9IVjlRelZERUJwcE9RcHJrV1ByVHp5ZzF1d25uNC8vZXlpckVOWUpLVjRwNzUwekQyQVR2c3lWcFB2OHJUZExXT05RSlFmT0p1OGRDdXpYczloQzhDWWt4RXhNZFBHUnU4aWdSVklta3BzZDBFOC9SaUd2dGEvVTQ1Z28rZG5jZW5TOFpRSGx5clB4MThZSjltNUJjcWNjWlBXcVcrWHd0N0VqSW4vc1J2YmFJQWNZMzd3RnJaNWtCRVh1bmV4TS8rZU5zdmlBT3lEZEIxMTRKb1drRERBMFpoTWMvZ2QwZHEvVDdzRysrNVFPRmtWRFdDRFlKYzIxWGt4ZWkrQXRCa1FoUG9jRStDL2lEK3M3SjFQanZpOXgzR1V4OUR6cTQ1WFdQaTd2RVJFTURZeGtKeStiemxuQVQrR3JtaU1jcXp1TTNiMEFRUmdPaDhIU3dCL2lOK0dTQXJmTzlLOFNVOGNodjh6U1VocW1DNjVka3BHOGJBSlZaLzg0dG44VEdMbGdGckl4Vy9qemtsc0FFeUVhK1JGb3NPUUk2YXhTaG9GUHpxL25hQU9zQzI5b2RZTFFOQ1JkUWpYb3pBSGNBaXFtamEwaUljZjVOMXV6Wk9DSVpGU0VlcXdENlVZMGxDcHRZRGpFU1FzUzhpVFNHNFZqQ3NOTDZ1dlo4SmZNU1ZoYkV2dlZkSmE5OGd3ZDczT3dpM2tXQ2VYdXc4QXk4ZjcvSHRZcEM1VTJFbFo5dkljYkFLLzBPTHNWdllQcHp0SmtDK2hPUWJ1cGQwcHp1dnRVSW0zTDdiQ3dVRVNzejVXYmxCSE91SFMzUFJtTUtRSlJMU1lERWZzQkhZTlJ5K2x3eDI5bHN0QmJ6aVFSdkN4d2RqZmRBVUdDQXh6VVdGeExWYUNPRmpBOURneFFmZFpITUpKUmU2ekhDQ3pSUGVJVWg0TjVmUDRzUDFRSFo0M3MwTnNVNHBEYUltZG5BTEJqS24vdjVjRmplVzR4VXlSR2krSFhMWUMvNkN4QUtWY0NQOGpoc2hxT1pudndUbXNEYjJuRURWaVRNUVplL2FpWDdZS0phdjhJdlF4ZzVtOTRGNVlFejNCOW9BRzRtTDc4QXc5S2pnM1VSMGRoNEVaM1hlbk5oWjNwZGJ4V1Q3M250ZFMzNUJOQW9ZZDRzRHozZzdMdnBKQS9BYUtCWnZnQk1YMW4yOVdNbWNIZGJSY3lDWUpTVlc1WGQ2dmZTZVJQZ0k4QnRDOWF1ZHdDZ211QTZsSS83Y0IvV1FCa0FNWkJLK1dONVFGd3FoNUFGWTFjNlBCbS9VZVBsczNuWGlWckVNcENCMG5vMURYMWVNSXh2bmVvTkpnZ0VMcmM2YWFrdWJWWGxZbDRWbEJRSWtiTXJOVGMwZFJjZWtHZ2hvcUljMmMrdDU0b2tUTXdBdVFBYmVlMkUxaTFENlFNWUMwZ0NxU2VSWUY4eXVtU0tBanFVcUhpQkljQTU1R1ZFd3NaUlFwRGsvc0creElZU3JDVTBCUjNadVdncHNZY0w1MkRYQXZHdktQVWFpQXdJS2x3V3BXSFB6UGZ3V1ZCTmtqdEF3VENPV2I3NWdub3QrUWhXdndLbnJ2bnJDbTlZTDJ6VHlQVFVBeklRTDRESmtkQVdYRGdxaFBrQ1laMjNlSFJ3QmFOeHEyR3JxT0FnN2VvUFpnQWg0RHVKcWh2ZFRqVE5xc0JjSlhURENSSFI5Mk1EcFp3Z09OMkU3dzhwQmF3SXpEbG9ENEhvQjVIQ0xVREo0OVFiV0N4VGlBb24reUFEczVlMndpL0tDbkVRWGpIYjM1eDR2Q3h6QlVvSUlXOHJXb1VXZ3IwUWIvSE9OcEJXai8xaXhUdUJoWSsrcHo1NTBHeXNFUnR4dzVwNGpJVGRPSWhpVUFFSjhBL0lRclNlVmhZWUpRanM3N0gyK2NDUXVHWDhrSEJDOE96aUZIRzBoSmNJc1lWTWdMdGd2VXFVU1A5VU1GMFFwanU4dUh4NnNXZ256WXpIblU4SGtyK2NLeHpkU0FUeVREWUlrVHJidWdUQUNQQldUZnJHcmhHOWVMOUhLUDZKTStSTkdVSlArNnk5MWJpWEJzN2lxZ0o0QzFBSExoUVJDVmdTa1RKUTlZa2U0TE5RUHZJa2RKb0NPaWxJNUNkR0FrOVVYaEk0RUtaeDgrOEdHT3Q4WHFwYkN5OW9EVTVDS3lwSzFXY2VGZlV3WXdyY0NvaFg5M1JNc0VIN29Uc0FFMGJtOEFRZ3dDTVBwVWJSQjBJM0ZMNlFFbklhMHNNdDN2ZEFrMzBOY2hLR3lwSERhSmpYZXQxSWJVK3FUaTlrOVpKZ2Y5UGcxakhrRkV6S0dHNktGNzdJaDF3bmhSNmoxcGlEampTVU9vTklORkJwckJ5R08vK0JaZXN6NzVjNTFGUlRsQm9sYklPSmwvQnBKeDFaZUVjditqSTEzbDQrQ3dvRVk5TEsyUkVWZXlKMHZUTjBQWVZNSkZ4MlRhd2d4Z2pPWWl4SHRQSUNrQzdjWUgrOFA0bjFMVGY2OU4wNnZqZ1RtVW1oZ0M0dUh3NEVvMkNUT0FnRUQ2aUJWbnd1R1JZLzh0Z3MwakhzaEJGQUZEZmNObUVyMmN4QzRpK0J1S3F5ejZnTW43cUFRd1pOb2puYzExU3ZtR0hDOHVIRVJYZ2tNYnN4RzVNaUdZUUpRZmt0NkFOZTM0VkhObldjTkRpRDFrMVpFNDM1dk96RnA0akFENGNmSHNoTUp3aEpnNVRBRkZ1ZjgxZ0E4TUNlRFVkc0dJbHk1SnhPYUl4THAyRHN3Q3NrTW5zQjhMdmdBZkp4OU53b013UHJlSU4zTnZSQzdNZU1YTzRiRVRwWWZQdjZDZzF3Rmk4VjExd1RyZWdzYjJVYTRaSE1nQmFvZWlXc3VGYU5KWExNOHBCTnA5dEVvbU1lSUNlRDd5ckd6bDZWbEtURS9TRFpMUDVFUWdBdmsrTlhqbDJaRzRBZGxvQk80U0NWU3dmaUlJWlYvdi81RU16UklpVWVYSm1wT0JkNElZOHpyVFJnOGtRVyt6VzlYV0dFMFJUSkN4NGVKRWdBZ2R3SHlmRk41WHpFUzFQNDlzRnpvMzNvRVFaWWxYeTBaN0RHTDczTzdJakljVGNsNnZRQ0l2MDRVYmtab2ZpV1BEMUkrRXlTQmVBUEhiZnpwWFFpSkhTNTBZTTY5dzJ2TC9neTZCUFBLVnZ4YURoY2pFWWhRaWIyYmdJQUNzemhQVFRkUnFiRzF5QVFXdEpsaGYvZzczeFhIUzVBQmJLUXMxbzZqQ095QVVpb3plYkF3RVRWZlJnMzZTWWczS0czSk4rdk5HN1h3Qk5qZDRIS0krTUFQY2FraTVIQnRERGVqKzlnempHS1lNTVRKaUFBZzI1MzRYRmtOL0NHR2hjVmRFMHZlQ2s2azViY2lLLzF6UWR5RWx5VHFIYTcyNVVHWVFESHp1Wkcvb25wQjVZclNmUkNUZlVOR1lkWTNuSFBJWkFKeUQvNmNYendLQm9uUGNTUEFGWnJQZTRaVndqakdxTVh3U2lSOE5QRE94U0N6cXZENXI1YVZnSWlZUkpNVVJENWU4YjRxUHZpN0Y1TUM3MGNvYnhncGtwQXJZaStoS1lxTHBkOGs0aU4zK21IcGtLcWdac201aEhQa2xYbHYrSXFadEk0NzhUMkUyMjlidi83cFFoQWVLUEJ6SmdGU1lZNnNDT3h0QzNoM0FLSUQyaWplUmxsVys4R0xIaVJSdXZobDZUdWNLK0pWaElZTU9VSU9RRFVLWlA4TExNaG1sWEJzeURBaHlqd21sNy8rdGp2WDkzdHpjTkVjRGp2bURiaWhuUk9Pai9hUmZrYzJDeVoxQ0dEYmtERndGeFNxSzV2VUsxOVpGL3JtSVJ3VDdMeFRqMlpNRldmMkZpYi9uWk01S0J3b1FIamQzQlpzOWc5ei9jZEZzVWJiSzY4WksvbHUxRTh3ek8raDYwSzh3R3o4RFZuUmVLOGxyMFZheE5kTUw2UnU5M0diNlVXV2huakJmRk9ycHNyVVpWa1VoWEdFb2YzOXEwOG1aa2kxVFgraUxZQWErWEo5dUtKOW05dG1IV0NGSGJxeVppRFdvTGlBZkN6SENBZFlZcWNtdkJGUUQzK0R0MmJzR1Y0SHFRYW4wS2tROWc0VE80bW50eUpDUy93M1Y4SUs2TEd4d2poWXJGQU5mOHArSUJVeWVSR3VDdEVUTVlWQThKUjJtME1DODkrQi9YNTF3K2FnS093T2tmZE81dUtXeW1pZ0JBdnFMR2dLNE01MW44djQvdXlvZjc2UWp6MEc5cEN4alNoQzdNWVB3UisyRk9XTnIvRCtjUFRTRzhDR1ZtZ05KWHQvQlZZRyswUEJoeUdoQk53N0lUUEJBR1dxUlAveHFvMGdhWmdZNFA3ZUFEaWtBVFZ5N2VlRnR1NnQ5b0pPUWM0RkZSZzZ2UHJGMU1HZVhUL0UrZ1BxcGc5V2h0U0ZnQU8rQ0llWjNJc0t4RjdRUWVMMWN6d2ptM3NzQ01pQ2VxdlRvNVM0aHprbjJRMXZuRG82SFZva2hxc0x3VFRDMkFNRDJSZWhuc1dBTTNTbzJ3ZnRoeVpBR0Q1MzVYbjVWYVFsd211bXdtMFFOTUNGQ0QzQ05jdnU3RE1lRFV5T1pqNzdoeDdoNU5nSFV0SXMyRHNWaUliS2JDb2FWcDBDTWFoNWpBUDNmVEZMZUJVRWxpZ0hQK1NTTC9VdWxrelEzcmZISEpBT1VDeDZxdHkwY3lrQWVyc1hreVVUR0J6L0dnYXZoR1ErWndQbEhGaW5RLy9RTy9EQlYva0hjR1djQWRuVTRHNGdhekRCNFE3eWxqQmJyamRyLzNnL1AyTDFrVzltc0JBU1k2RllSTTEzNFpLWURmc2lBUUV2Q1NkOENqc1BpM2lmMjBUSVJHczh4T3pyZy8zaWhxQlBXRENMWVdvTUFOdmI3QmJMU3B5RzFTQ1FRRjVBR0NkcEd5Zi96TG1pVEovMkZjK3VJRnEvVHZtRnJNZGZPQm54eVdWTFc3RHZpVkVpa2VEeEExV0ZtMFhzaEhVQjV6QnJOTUdFMW02UE13aFJZRTB6dzVuUUhlemFEVmplSUJOdmpBNzU3cDhVNzRSakxQT2szUGQ0YnUrZlVCUlordlRHY3ZrbHY4bzlJbkJQNkErcEpKdmhrVmhCSXhkVGhCRGVneEJRTnFKa0lBaUdqLy80blR0ajhOKytWTHJmQ2JYdzU0VkJCUk9pR3dHQTViTmx2QzF2VE9BSkNpelRjWVowb2dJQjdtTmxaUTR2dGc4ZWdZVlFRUzQrZUtiTmRpRGNDYXNEQnpSTjVCRjlOK1dKVnVtSFBSVitCTWk4VC9tTWZxbDUxQzBiZWZkRVd3K3dybmt3QXkwRTR3bGhEeHdUaTBEVFdINHczRXZvWXovWkhSVjJCN3d6ZUkyd04rbnJZa1RQcjVROWlwWEYvektNaW5qL0lnTUJYV3hwdGladjczampvL0dDYVd5ZktRSzJjMEVUTDZ3Tklib251eFhEQUptTzNHa1JodEZ1ZHJpYWFrVko4NVkzOFNTWlJNZEF1RnpJVTN4dVhtK2VaMTRtYWowQnd5YUEvY3dPc3NxbUdFQlNMbjFnR2JlSG1oTkdVUU1CQ1ViS3k3aVUwUlZqTmNDU0FuZ0VhcmtzbWRYQUlWajNDblNqREpJL3hjeUJUR1F6TzZJOEI1MlIxZHk0YUdndUszZEFHa0JvL1dMVm9rZXFzczlzRHU0eFZ5QVBVR1crejhSK3NmUjFrc0VwbjNPdUFGQTB6NFYwanFtU2UrS0JFYWkvMG9WMVlGZkxCK2VEUFlNV3c2UUZ3UWQyakl3YmdOczM0RnFMSFlNSVJZVHZzOGRraitIUjE0S05OYzJkVDlDYkg4d285Qzk0Nk5XTS8rSXNzY25ySktCREx3TFhORjVvbm1lQmhJWkJuT3JKek9pUnpnTTZSaERrMzlpSmMwaG9FeDEzckhDOFdhYld2VytjQlRoN01pVFovRHJ4SVJIS3NEZENkb05ZOFJWSEtBRHo5cXpRUThlNUlBTlEvTytjbGo0QkdZQjhSSTQ4QVJUbmdyRW4zQnlGalJEYnJQaUZxK1VZQVdoQ1RabGRvd3d2OGNqTTJGNDNsMkMrK2I2SnQ4MWNYczluZllnb0EwWUlQZ0xzUU5wM2VmenRTVEJHMEhDYjZhSFdMSjV3dWtpN1JzKzhBYlNIVDRXRFpVVHBqU2NYZVlmcFhUNGNXQ3hnTnB1MWM0UVZFc0M1YTZ5ZHBSdjZnam93UG1xOGtuRUpOQURnNG5uQkIxT1FxZDBJbklEWUFzbS9xNThqTU5nMFBnakh3Tzg4cW5qalMrd0pVQjh3Q2c3WElKVlFIVURRT0xsMm5oMEhuYXpmbkh4YTdkWkUrS1hpWk1FY2p3b2MzdjZrS2tYNkNCQUxGaDFNc1dXdUFsVDk5b3ZwNEFiZklwUmcyMWdYNkh2bDBuTkpyWXNCSC94K21VZ3o1bnhvSG9nVkxHc1MzeXN3aGd4aGRTcUxGRTUwY2tzc0JZQkExK2ZpTS9PVFFDVElEUGpKZFhzWWlEMjl0YjFjVW9RYnd1WFBnY09ReTZBRmN5dG1nN2NudVI5V2g2eUx2Qkc4Q1JhYk1wSDlQV3dITzVkUUI1VDlGNUk2S21NZGt4Zy9DWnVZSGF2SkhzTjcwTFlZbzZ4bXNtdmZuYzA4WUtGcEhBVDRJTEVzRlIvVk52RVBzLzlraDZ3S09yT2hQelBXNFdGRGZXRHhlRG5zazhWTzdnWDZFd2FTWVdhK2NVbFI4WHR6U1dBcVhBNFhHY3Jld2QzazduRVE3N21RME85M2t0K3MvY1ZHSnBPa2tmODAxaGFWUWNTSXJpRU96SjVpeEN3OHpHTWNkYzdtQnZWU3ZORUxqOWlOQy9NcDJORURTOWtmWVFMVzBJRW1OSWVxSGw0VWpLVGJzeWJRdE4xNFdJdFlLMzhEcVRJYldHY2tKbVF6T0pjNmVucTRiVjFUelBMaURqUlg3TndFVFVvSk8wTGFjaG1JZkZuRmtxRkdrd090c3h6M1NvVVB2Z2pkY0FzVXlrbER3VEF3Tnk3VkUwK1dNSjZERytKc2d3MXpmNnNRdXNmTjlkK2Ztc0xqekd6S2ZsektRY0IvUXk5Z0o3RDNpZWEya3FZQWN1RlFBaHozeTZZb1AwOWNmMzBsM0RlTFQyN1l5Z3Qzdm9KT25ZMzloSTVVZ3A4Rnl1UVA2czc3d2lMeEI0SCtlVmpvZ28vaWIzdzFpSnVQQkxPSlYxaDI4SXY1V3lJN3NhaXVUckErQlJpeXZtYXhnV3lXV0liUVJnZ2h6bDVwNVZnUW1tWFVBc3NoaVZmUHBwb3RaeWp6M21iNVpHS3lnUVEvQWhNQVgwU2UvczV0VEVJSEVXY3JOV0dQT1cwMEgwSHJDOWZIdldZaURCYnZNWEQ3elZsdVM0OStjUllzOEpBV3YvNm1MWWg1L0l6bC8zNFkwT1Y1RUpkcmpVekdWcTJBeUlxUUxuRnFQNVVSNkJ6ZTMrTnBmQVU0Ky9XRFg5OW1PL2pCWmRWcU9uVUdlRW8za2Zld3ljU2pZS2tTenJKWTBZRGRBT2x3NUtWVCt4UGpuWnc2UVF1UTNPa0NRYUxSazlqbUFjTk0yWElsd2pZVXR2MmNTU1NEQXpIOHNXNGwrZG9Kbm52dUZzdDRUNlZKd3RlZ1RTVnNYcTJjWXk4TlJkd2ZGMi9RUWdkbWVBZ3VtTTM4UmVqSmhLVkhWd2w3KzlRcGlBYnprSXNZSU9oRU0vdGFFdW9HU01FOVZPc2VwN0xOZzQwSXJBWGhYbTRGa3JIcW5xeHREQno5QkI2aDlFSEM0QW5JVWoxOW9TVmpHd29DdkdpZXRkMFZydWpCN0NzMzBFL2VmRnNUZ1Q1Q1Q4WXhQWUx1VUdiYzRnVnlJK292L05iNlppd0paNE1ZV2N3NHhXYVZJandobitOd1pDZmlsMGpiUVhZbzk3cFlmZ2drNUFuVUp1S0JEb1ZZQUhzWWFncmVzSGwrRGl5VzVzY0JlRmh3U2FqVEczT0ZFOHdQMHZhdWE5MWNFaUlkY0s0cHZxYU1NWUxDQnNDWDJQM2pKQURMMTBYbUFNZ1JDRGNSZ3N1SGZTV0oyZ0l1TGd0N0lLZTNDSkNlMTN3anZqYlVDcDRhcWhMWnlqcFpKalllUU5NZXUwa0V6d3E0ZHpaMUxld0k0WlZiZ29SWVZRYlAzZENXNWYyZ1FSY1hrenlJQXdkeFYvUU0xTWxVVEFnblNuYlBrdkJzRER4Y3hJbHVMdWdHL2tDTmVKTGpyeUkvSUJwWnZWY2ptTTNnZ2t5VEk0VnpOdm15YmNDRnJLU3lJTmZSZDZnMUJGRXFUMHFZeDRDZG0zajF2Qnl1WkNHSmxIYXREd0dSY0ZIcmJLWlZYTkdqUWV5SnYxOGVGTTdpZ2ZYTEN5dVlnNTU4MkZ3UUZ2a0x1VFdCZzBJcGFYSi9jSXQ4dng2MGJqMHpHOU83U2RmcnVTWGphRTlNNyszcWNHVDlubnRDTEt6VllnOENieFB1VWFmbFkwMHJHcGlBRlJnRUJUZ2dhaTdBajVUQ1ZpWDI1Mlk5RFNYRTdJWnk1QmZoSjU0eEVtMkkxTkUxaDdFSGF3THdqQUlwK0Y3dkJ2NWFMamFQeFNkQWg2Y3ZyTUxqdVY4NnoyUnBSZXQ4ZWc4TURQYThDSENzQVJqU0lBNHhudFNoWlNQek10ZXdQbFFDV0RndGxVaXNNazZWd1pOUUxDK0J1UlBBOHBzOEl3Q05SM3JpMXVnOW8wSnllMnlkKzJYVm1qVTcwQ1BJUW1GaGtYZ3h3bTFhTE83SVBPVlJyRHU4RkRLNGdyQzA1Yjc4ZzZTMi9xTDE3MUlabm16NnRLcGtla3FIQ3NFaXNQYmFNaUNEN3hLVDhXb1kwSWhHR1NMK1l6VVJUSVJWZzR2dzI5ZkRqNkFzME5FR3UxK285S1A5UHp5WXkzeVFjMzE3d0tXZE5lUVRzb2RJSWlNUjEzRi9sQ29Xdks4eWRydk5hWUVHWFBDRzB6WlBYOTZBcDJZcjFtQm1XQnAweWxNbWdpWnVpc1FHS3daMytwMWpQbXdjcUlXQUZDQm40RFNTSzFIWlBJV25hUStoNFVQeVdVN1NNUC9rMFdnbGRPSHVPeGRVQjN0L2QwakF2RTQyQi9mUzRNRFpMeEQ0SmxweWU3S044V1lnazRpQW12M3dLSWdyOGR3Q0NmWWlXNTExRXpvZU5OcEY4SjRQU0pIUTBGNWt4S1BqQjg1akRBblJBdU41OWNKRFkxNVBnWEI5aE1zODVZSEVHZUJDMkxocWhmbUQrT3o3U3F3dmhKVDFqRStjMzcwOFd1ZTlFYWRWczRKaEdkQytVMWgxa3R5OUtPeDE5Q3RDTVZYRXBadGl5ZFkyQTRnbTF2c0E3Vm9hdC9rMjRlelR4aHZHM2l4WHdpOEpaTU55TzI0blhFUWYxTDVITCtZZmVWdDhJbkROQ09mUUJ1dVpWU2pkMCtpWndrOGQyd3hBeU1PMno0Z2ZIWkhiTUVoQ0N0ekhZZ0ZZVEZ2TjBtTkMxU0wyVmlVT3VMSUhqTnJpa3cxZlN3WmlZdDBIMENvd3VZSEFyUkd3WUJFQnNudnlsZWFNdVp6SGNsOVdlbHFJU3h5dHcwekhucm4vOEpaa2FZRkhJT003b3NqRFRIRDVaRVJZMGZNVkR2Mk5NSElBMllpTWgyMThZRDVzNjJSbldNbnp0Y0ozNEsyUTVHRFJIZXJvNXcyYXF2cHdFV0lGSENUOC9PRFAzNFpYRXd3ZVpEaTBMQ05GRTJ3N0FlZzNXRWFBQlBJSSsraVhCOUNLeVlOS1hOeVRTY2lKdVJURVp4andOWXZaaVpaRWJpQlpvMGsvbkNtejM1OTVTRlBYVnVBVFlxRURFTWdXOFE4enc1RC91QWlZNFpYNVZpZ1RkbW9SVDhBaXBiMmdLeTQ0WnVhS0NITUE2aXVmSDBiN1l2RU9ZZTlGejJHY2dNSE9saW53VGxDQTVkNFFjOU5YM2wwOStRVkRDUUR4YXJDb2hrNUE3dktHajNtS2x3L0hlT0Rsbms5K2ZncHk1ejBWM0hDOVlnVU11QldoTFZrakJCZ0dlSVFOVjlBRFVXUEppUTVIK014UTBVV2MvenduaFBkZ0hjWGNSUkVDaVRGcllYZ0VxUnVIUnZQaXhsY05uaktoQklnenNtSVFHSnd3YzVnc3ZIemhpTVAxZ0x2NFpaMzhCVGMzOS9aSTV5UkhhbHdXNkdaTUhPV3dNbmFER09KdGxmeVlKaDZJNTRscm5tOWtzMWMxSGNrN1gxNWlFYUhKM0w0VEYzNnhteXhreTNCN0FKV3dWNENRRE0rekJvOFFvRktLQ0NJUDhyOWR6Mms2b2loWk1vdFZnRkd2UlJuelFwNjQ3NW13bGphTW9pZ25QZHY0dXZLZExRSEtTdWNqVXJmMjB2cVNHeTNBbFFIakE1cGt6dVpOT0czMEhWK1BlamV1VDNUeXlKN3cwME1GbzJBY2pVMW0vL2tLQXB2M0JkUzlLU3RWTEpmMGlDQmYrU2xXVnVMVlpoQ3g1M21EcUFVL2dZZGJRVzdlZnB0T1dOWGFNNnYyVGY0cytTclVDbXFRaUlEemdwV1diWEVac1N5S0RwMlZHM3dHWVQ2WmpLOWY1ZFZkaFdOdHdjWk0wU0tvYm5odkRCNEF3cEZEdk41SC80R2VJK3pGU1U5MFhXZ2dUU3BIZUFraDVCdDA1aDFkb21xbEZ0d1VpRVAzWWFIcWpWUXYweUxGbnBVdmVvWnJ3aGh2KzFEQjhPd01zQzU3aXhEcTMydWxkaXQ0YkpGb0tURm15OFNJT1UyeWVPcGNMUnhKMW95cVdaRFZxa1pXNjMzTW9pcmRjT0JzMGNCandrT3JUNS90RG55RzlTb1FqWGhKYVYrMldlOENtRnMzdFhCYlYyZHhocFdQZUxGNVNuTVkxVkRIZHFOTXNhRjlKNlFKRWhlWGJOalJTYmhtT050VTdySjVzRHJpNC9Ra1pYbFloZmhBNVFIOXczd1ZvdlN6RlNGOEN2bHFRb2RYak1zNmxUWk9xNDh4MUNvL1VNNktHcVR3dWIvTmxYT0R5MmFnUkJodjVpM1IvamFOUUZiT3I1ZDJIVWpyMXNUMDkvRU0veFJYbmFRak1SRCsxUWpnWEhBTG51L0JzT1J0dUJEclY2eW16eWNmY3BkTC95REc0WlZKYmMvVkVDcDlPMjQyWlFGZzVJZGRzUjZNT0llRVlZa3c2Qml5cm9RdmhKTXJ1anl3eGdDMng2WkZhWlVzOWtWK2N1R2JXQkhiOXliUHVvcThXOGU3N1pSQkVjSkVWT29DQUpkMDNkOUo5QUtFSGx3UFAxVkZDS1MrWmdKaGFVSEx0M2o0c1cxdjJ3QlJvSkhZUDR1QnVYbSsvcXpMRTFsM2lrMEJ2RHBvMTB6TlFEUnY2eWNhUE5hVHdHTGhIZ1NZU01hL0NETm8yWHJWY1lYM2duZGREWjVQSU1TSVh1dmhlejVIMHVobnFIQ3N5end2SnZ3TjNyUGV3U0tmMjFSRVZrZmVrSDZDLzNvQXV3c3oyZ1ZDWVM4RWl3cnFZQUxaSlBPNHQxazJjQk0xaUh3SFlTMVg5elQxMjFCWTFtWS9Ia1N0RnllK2Jtemh0bHAydmVWV2I0YjJlVUx3SlF0UTlvc1VqQjllQ0dVS2NBQ2JIOWdRYzRhbklNbmNhSlNsWEF0MitMelFHbUV5V3ZFSGtQWU9WeUVTWTQ5Sk5meHBCekFXNVRCNmhMdkNVVjhFbkdrc3BHU0RSSnk0RDc5RkJKVTVVZUlzdHZtYkV1QWVqYjJ2cHVwTk1scVRYQzEzeHpxZ1U0UUZsdlFKMWRPU3VTL0xKSW5GbUVVbERJQVVjSHZUVzNWd3o3bjNXbGdza05naUQ2SWZFZXk5VHhVenFxdFkzeVl2aEFaY2lOK2Zia3dyZVRFbjhRRXdlSHN3bzNNYmdMY0ZtaG1pVGdSQXNZQm5BMTVrOUFGZlhHbndaVmxXYlVrWjhmdFU4eUs0Q1drS3FTZXRVM2VBSUlIUXNqQVQxUTJKOEtnakRmUk1oNTI3NTJ3eUNBalBQdFgwbGlUZU54b2RhZFYzdHRpaERvM05JdW0wakRLNVNuZUZKVnU4MnQ4eVRkZC9ubXI2dDVrbUlES25DK1BJcDRwKzNoN1lXYzVhMm8wL1AyaHV2L0hhai94Ly8zcjlKeS9FUUwrbXRBNjdib3MzUWR4NDloZXNjdU5tZXkvdUQ2V1BDbEQwZ1JJNXFxNEpaY0dNd2VrSEdxdlVvMVpQcVJwRVEraDNqMUh2dHFmczUwTkN3Snl6WjkrUXpXbDUvcFEwMitGUW9Sa1YvUE13YnMzWHVrRUxPT3A5aWh5TjE3Q1E1Rm51YThmV1pTbWVhRnR0QVNsVGtZWXJSUTgxS3NJaHZ4V3FBU0VBZzFCZEhnaWlrcERXdUdERFh3bGhmcnVuaS9oYjl5bFF0R1RXZzdueVUxYVIwS3daTmcwclRzMDJtdnNoVUJERlRPNWE4RSs0R3FqNXRPMjdhVmZmMmdvc3Q3SHBTNEsxUVo2QTV4eGJoOHBDUHN4L1ZHTFBUMFo1ZWtoeWpyYjVVSlFtU2ljL1Z3YWxyTHQ2ckZJREFQNWhQTmpVTC9PQm1tbEFmdFdBTkovOFZ3SHhwT3ZmQ0FoOGIySGY0QXVJWkdGRUJsRHVjenh1a3lBK3JFSjhna1NtVFVqUnhZNWk1eDU5MjdrUVpDV3RleWpYSUVVR3ptcllHelovZWZCK0UycUl3LzNlN0d1MEgrV3p5YUxlMTRaenhlR2gycHVoNXpnczRkM0RENXM3b2gxZ0ZqYTFJaUdDMHNMNHRnYklVc0lVSVZpSnV3ZHc3Y3kwemhEbW1LeGxKd3hvUmVqVkl4SU1UeS9raUlWOHZtTDhBazZnVndhRmRIK0laaERyNS9TWFhjdmFEc0RMaW9JNzlvRkhHWnRaSHl0eE5od0VqSUpDOHRiYlZ1TzFMSDM4aW9NS0NPTHBOYVYrM2VkMCtnNzRRclRPOUFVb3VXVVRHUGFDVEl0Tmk4ZUdxNEdIMktiY0ZQSG9ZZWhMa0xESkcxVmFMOHU4eHZzaG5UejVObWNhMzNkYVM1VE5pc3JncDgxTHJNT3cyQzE2VjRRTG5EZDUvdGVuRFJscFhqOFY1NmxteTdyWTdoMWdDY05PRUg0WC80UVVQZk93SmE4TTl2amFIT1JaU05WTzdaUE8vSGhkL0lkdHZLc25udUZXQVZiN3Y0TG50REpjWEJtdzl1aFZDUmM4cmJmWGdNQXk4ZVVNc0Z1cWtQTUZ0Vlh6QXJDc2Q3RTBJd1I3MUJJWHhNb2pRU2UveHR2aTR6REw1NjBRaUk1ck51MGh4Zzk5d0VhTnEyY0N1Y0s1bjQ2Qi9tcEFvMldQS203ZEtVNTc1bEZCSDRUL0ZWYzJGdTBwZWJ3Sm9xZVdGWnBEN0VldFFCclNZNDN4NmYrSW1DQ0tGcDV2VFkwbzVYa1h2TG9wcWdEenoycEtZak1xUzFVSDJNdVBoTHB2blB3b3Q5SHdvcG93RHVMYU9aMTRCU0MyRktLQmF5eGdEUzRNSDhNK0pXRlFvS2RCNXVCSFpaNXlTbUo4Wm1NOFhtTEZZTHhzT3BvanRQSGVmTWNRRGtMY0xnOUFjWHVtSW1TbzJjNVhTejJuYVlGbFVTTUJCYU9UUVdlcjBFR0swV1hucVgrYis5NW93enNFOWJrbEpETWFoOHhjNHliWFNnUmw3ZzNlYkRrYVpsVGE1dzVQdTA3Wk9LVDZkNXZ3WGFhTk1EM0NPWXJmUGpVK1BkU2Z2Rkh4WE1RU0dzbnB0bExIWE0yclhuNHRuRVI2b0dtZTZuRXhHdE9hWURTTnhWYnZ1b25YWU53Z1NBSXkxMk41VkxSYVB4TjFZR3hRTFN3cnZLYjRQUWMxdEkxNFRxZms3MkFHTG05REgyNkNxVmlZNXBuQ2xjL0Z3c3B2MDBlQk5VZmNOL2p6WStEeFhKTGJRbVRZOXhUUGVkZmNrR25yVHRHWllEeDB6MmtDbDZtZG5RNlBNTnRkVDRLbm1PRjVmNTFNL1NYRDg1M1dRZkg1QjUwUE5qc0w1UHBUZnVjSHRYL3lPei9ablpQYnNUVG5qK3pPN3h3T1FlZVAxSTdpRDZlVmV1SVVpeFY1YlpuL1VMakk3WjBscUY4TGxtRVppZE50WitZdHN3a1NTTVc3WndMRVBKSGhRdWg3QklBMnR3U0FuUXNtdzNNRnltMGtpV3pUR3NCR1BOM0ZNbDM3a2lyeExSTUk4YlRhUFcwY0Y1UUxYcVhZUnpCK3RwL2NNdEQ1M3RZNnZUYXZJcEpaUHhRb1FvWXJnQ2w3T3BXRzRpS0FyYTBDOGRkMFpVOTlpRjA0dDVvVXJ3aFdMdGhzQURZUUVvcWRMUTJaYzAvelJWdFRXcXphOE9BcFlMb1FkaFF1Sk5hZ2dneUdvNFNJaUo2akhXbUJVUFBVc3lUQlJDUWhaRUcxVjhSRDhmcmNUOCsvZlRMMWdzbWlZdkMzaytNaWltV1BkajBJRlZDdDlhMGIzMzhMZ3NQdXJXSFJIQ3JWRSsvYk9IQVRpcjhYY2R4TlRyS2lxSWFBWnhlNDlsZHFCcEc1ZUpqMU1uOUlyR3V2OVNQZGNvQTJyZkN5UldVb1hiNlJHNkxHUGxMUDgwYUI2VnREbGl3ditPYnRNUnErdk9SQ2FPRlRJem05Wlg2S3JNZGFvS0UyMUJHaFFyN1FyVVJpT0RoTEVrOXVHQ1FZZDdZUkZDVEJZZmtRQy9ROXM3TVNpQVY5OFZhNEdMYUVVV3picUV1OTJHSG9VN2NZSENIK0pxakVBcXFFWnB5WXo1QXMrMm53ZWpQYWIzREtRaUpZUnoweFB1VlVickZyWDdhZERTbldMVWZGTllqMnBkc2xBSnN3aHJNUkhtczBlY3lLL0xENVNTMzkycERubFhSRnQzOWhrOG1TSG1TTUtRTTdaSzFvYlRicDNnZEo4LzNIVjZ6NkJwMGhML2plSFo1b0RjRzhMM1ljaTl6Mzk0eTFJVDVyUTdGd3RpT0NXVXlUSkpXTCtDeU5lSDRUNG1DYlNEdDBlS2F2OFdhb0kvajNwMERLSnNqTVpTUTRoYjIrbUNwQXNDd3o2bTlWWjI1RFZKdldYWnNWcmVFemJNVVBMbkRaMTczNkdDWUlocXpOWG1ZWUwzelp5dExrb1lLdEZYcVNMYzNFQ0FESG1seHJrakMzdUxsSkZydXNaVTlMTEJrVnVvc0ZCN2pTeVc2Q2pmWnpkb2hWd2UvdEJPcjdIdGF3b3hJZUs3WkNMbVlQaU80WHEyTXUxS1JLOWppR1RjUENoMG1mYW9iWlRuWEwxNkVOeGZROS9Bb0RZWGZoTlhnMEcvVlk4ZGl1MC9xUzJUdjdwOUVxV0JDM1pYZFZ1QWZFeFdLdEdON3ErWkx1YTllYmRTK0liTWlrV2Nxa3BvV043T1VwYURTaFM0ejdxZmdiME5PRDJLUEdPM1FwNDJOM3BvWTkyZEZwQ2pRQ3NNbVpTOEQrd1B0L3VpVFp1MDYwWUM5WWVWdUg0UE8rMnRCRGxBUFdRN2Vub0VPM2hpWDdHNTVyZEZIMUUxYjdaUVVjM2dXdTRvZ2Y4Tlh0dFFuMkNPR25ZSWNqYTlnUlpQdXc5UlY3d0ZBa2xpZUt6OWNHZVJpaDNhdklhSFMwNGFoQ01oYmFOMzBlUzhjQlZUcDVMSHZPaUJnSUxXTEd3QnBxcS9DY2lZOXdrWjhXZjltWGg3TURiOHFMaEJvSFpqeFZ0RDBaQW5qYkJvMENaeHNBeG1FNUNsU0hCYnVmKy9Ub1JHTTRscDFodUJxTjgwRkt0dUVBRGRSKzhvK0xxSXFvUUZuY2xreDN4VjUyUnNyQ1B0aWpVNlpzVWU1VDltVWhaVFJ4aXluWEUreTM4cnoyMCtLRVcwTmoyVmpDWXZZOHN2MzVMOE5oV1orQ2E2WExHa2tMRGdQQjFKemViU1YwaFJ0dkR6R3NFYlR2UGllUEZrL040dW5SdCszSlVzc3h3eTQyKzBCR29jb3ZzWThvQkxDZHMvSWJ6bUVueU5MMnVFZVcwOGtoaFZVM0VmdHVBQVQvdGtldnl1RVF3ZDB5eHVIQkl2WVI3dHdxQk1DVCtmZ2tHM3JzNWcvOFB4RllIUDB3alZlWVN6THA5VVhBQXVqajkzRHlDNXJPajl3QVNGUDd3QzlpUk1JNHQrVlhIWE8zOE9KOTdqUVZpdkt3YytDRExUbE9BV00weTlIV2hTTEhKZ25wbnB0OU50MjJFdTdYSTJnLzJLSnAyeFVnSlhhcUNxU1BSN3AyT0Nkb0tWS2pnYVhodWV5R3g1a3hudWVyZzdqM3ZkK3BvdzBUVWJCNGp5U0JKT1NqWlorYkFMdk1QVUhvZ0tKNWl2UHg3NGJ3ZS9OeUhsaDdmaVo1Z0tyQTZZQXduVGFkYXBVMnY0VmZQeGp1UkpUQTMrMHBPdDIzN054cDRCcmo4aUlkSldFZFFuNklZZzRtd1I3NXRJRFdBNjdpK296Y0lOeEk3Q0pYSUFtMHN2QlVvVG04QUtPNlRsVVFIL0M2U3QzMHBiTmlHaXlEaFpYL2VsWmhKVEdMeDRJRTV4NndVNTVXNVJ2NVorbWFKeUtYZlRBQkxPdFdjTUdTMFozb1BrU2d4Uml3VGxRM0RERTYxYU1OOTZoNmhBUGdqMmRwUURZMVFkakNGWnVOWThsNDVrZ25HYUNESnJUY1J3VmFUNjRSNDhja3JTejc4MS9rM0dBenB2TFdDd0k5WlJ0UVpEemdCa0FncjdZWFk2Tld3VXZtTXpwRzFwK1QxUS9OQTdISFJvRGFSSkxHbmdXSDMvRkRhM3VKSHNSS0xUQkNuNU5kc3M4UDNxemJuZ3lMNElJVkFZWHdMc094cHdtZU9nMGMvYnYrakk1UVNHVEp6YkpNQTJxeU5BRHU5SjBnbDg1UWc1dXR1Z1cyZldhQUNGV3ZSd0g5VWhSOEFXRnpHci82R2dSZEM5bWlaMzJZZFNLOFlVRElVM1BGSnBXd1FidUJUbkV4ZnRRMlRtQmY5c09xT0Jya0NNTS9yYU9KUnJQR09KcEYxZyswM2VKZUdGU3h6aEl6OEt3ZXY2eEhrVGxLSlVsa1VmVm5KNGQ1M2drenQxN0hBenhFc0gyUXhWNWNhd3EzS05JZVI4bDRvQUpGQStnZk1MdStaNG9JNEdMSGJMUnAxcmlZUFZHNms0NXNpZitmY2JIeDQyWHpyNEhOUW1Uczhic2lVSm1zbCtINm9ZamRkUFNSY3BZZDN3TG5Qb1RjWmxKTG05My9aWVZycW56T3kxWGFZYmJqaGJERytzWW5nT3BKbm4rcml0ZjNUQk1yc0kzSERubUVZQnFuWlVpQ041RWhqN0tud0tCN2htcGVyS0F6Wmo3TFd1QWN4NUJlbTBtc2owQVdsUXBXMjJHVG1rSXlUWnRsVHBFMEROdUtYbXRQVTNOa0lXeWd5Vk4xbzNxYTA3SUNnS3RzWjU0T1FJRWtLRmJybUt0MGxrMHdqSjRwUWhGb3RUMitYaXpHK094YnJRdFVZRFhzclZtd2htRGJPOXUxZ2FWcWpTbmZYQkdHVXgzWTByRlI4Rzg1RU1WVlRSQ3RhU3J5ak9xeGhPTk1BYnFqZmNvZjlMM1pSYk9reVkxTGcvVEJxVzdMZng5bDF5bll1NjBPT3J0bTlTcWFuSHUxZHJWVm0yS1JYb252SVR0bWI2Y2ZGSmJTTnJHSXEzalhUNjZ3bnVFaHBwRHVkWUh3ZDdZQjlrVzl0cG9KTzl1NVFzUFhlTDZ1QklJOUlJb2VqTnloQU1zVUVPd2JGc0hXM3ZkSlplRWlQNk1WdUd0VWlBWE1kekluQW1kcDQ0ZGF4Ny9YUC95cjhvZnJmMXovQUg1YU9HUVpPM2JOeFJJZEg1dVhuUkFUUFVpOVpUWGJpbXJ6RGNzVGQvVGRBaEpxc2xFWE0vRmtEbmNoZGp2S3hzazVZWjVFMC8xYzUvVGFPc3p1U0pMUUdzUTdHeS81M0czbGFuRHdUYldIQWxjZml1OVJGcGJaaTUwdDNTaUJXQTVYc0VsYWlaUS9ITHlhRWljUUkvQk9TTWJWYjQ5Umt0VlFOc2VjbVQ1SVpNK0phbStZSnlMV1pOaUZnV0JpdTM0ZDQ3SmNuVEFTVGQzT0JWWERWenhDaHBKVmh3MHNQcU5uQzhuUElGRDkrSDVzbnJON0ZTVDJZb1pWT3RnenIzSll4eTBsZEJwQjk4RFpRVGhIdllQMUVWM0xkUk1aK0trZHlkbUVTTG1Lc3pYZ251Z3hqRG9IbEYrSGVFR1F1aE11Y0xzVnovVEQxMFdxVDdKUE1IdUF3R3VzNWp3ZGlTK1dqVXFyNHlIYUZQU0QxUkIyNFh5MUlna3NjSnEyWHp1OElKeVkrazAvMWNsLzBwNlJjZVE2MkFWTHp3Rit5N3lKY253aVc5QnRXUHlRRE9xK0FDRXl0VzM5MWpRTGpabUF2aXhpa2w5Tlc3WnNIMEN1VjhkL25lRlVMMWorVFJ1OTJOd1A3bzA5bVIwN2RiYjNaNHQyUkJTak00dlZaYytaUlFEbFJmek5jZG1SQmJXeGxmTzBRcldmd1hOSVdkNGd2dXhjRWpHKzNFVTlKSjFDMnV6cHRISktRaFNWQ00zaGQ2RE51S1hYWnVmQUFWc3VBQlRlM3g1T0lnbnNkbHF4bHh6Z1lGMUIxYldKeE9hVkliVTJBRjFsOE9sY20yVWFKWEo5ZGJQLzdIN0MwTHVwQzlNTlQ3Y3NoTldwOXM4OUZnNG9Lci9LZmdDb2hQaXJFWG1iTGQ0bXVyVmlHeWVkYVRvOVJiSlBmZndhN21IN0RQQU1TN0ZFWHJFMHpzZ1IxTk00TTFsZ3lyZWpSQ3A0UjZnd0dXSFZ4dlQ4dWhMV3FpMkg2QnRIM2ppSllscm5pWnNjb3BneXdZS1lNNi8zN3J6YWdRaE9hdUd1c1BlcThzOW13KzYxU2lVbzFRUWR0M3ZlbkdNaHlHS1U0WkVtaEFmayszSzRia3ZkTElqWjBhYks5NXlMejI3d05Zc0wrL1BZRGtGRE9QTzA4bFNnY2tmVlJZZDVSdXZkVUtTWGM0bFFsSXVBZzNpQU41eENjU3MrWCtnQVNoakw2bDRKS0FwZmY1VFh3WUtqS20zeTNGOWhOZVBGTzhPNzdHeDB5b1ZETk12SGhVQUE4UFhGeDhFbnAyT0F5bnRTOEN3aWEyZEZyeVB2SE5YRzMxQVQ0TkZXNGtEemw3eU9FRFhVaytha0F1NXo2aEU5TU5zcXlZMjZzeWkxdjkwalYvemI3aGRFMmszc1ArMnVOZG16MjI0ejVPS01LUUdQNmkwUUtrUTRPMEtTczhLU1V5ekRaK0hFTXpkRTFhcFMvZVZhZXptdkFDT0h3cnlaQzI0UUVIQUExMTJXNmVKZGtIQTdXZVA0R1hsa1NYeXc2cmJhQUV1WVF6c0wvazRKR1N0c3h6UWd2bXhQc0Z0NjJXQnUzUzUwVmNpcUd5cndnV2JOMlg2d2dkNHRjV0JYNEJiN0ptUURzRGR4OFN4c3MxNGRVL0N1TUZ1WW5LM2VqdmNzelpZdlFMTnpnNDdVTzNVaCtod3FFN2VEWjc5bmRxbWQvYkF2cStteEhKUVgvby9Mb3BvN24yRm5mSmxJczFqT1hMUElXdzUyTm0raDBwbGVsMVBnTEloK29ZSndBeFR4K0lnY0x3cDFPYXZGZ0dGeXhoUG1ZcFI0aTNYSmFhTmx4NWswWjRGWHlwYyttZXhhYVNkWHgzNVVzM1phcDZNeVc5V2hsbW5LZFVZSVd0RDdoTStJWVNQNDh0QWM1UUhQdG44bUJpZURmQjY2bm82TVd3NkpxRjNPbkgzc3hjMjREQjVwM1F5TVp6WUhYa0E5VXdJUjdaL3RGOXEybTU0bWFuK0NsbnEyT212bWxNNTBCd1FrU3dOTlJXNUhYam9FeGdoSlJMSlJIUm8vbGFRNExTUXhlcnBSN0pERWUrNkdmSHFKSzhFYVdPazNOM1I3S1o5OVJxZmt2cGpmeERiUTVOeThReit1RnUvdGRKZEtHRnpPN0pDa1RZZnVlWVJwMjhjMExYeWZZdHlLMk9HTnEvT01uSzRRUFQ2NHR6SGdzZ0VTSVpzd1l0VGdhNi81czdtWnluSTBTL1VkSFFzWXNCSFR1VFNkS0JSTXZ6d3FEWENVaU9JMHBHdEd1MFl0T0IyM2c4TEVIWWRSc01VT1FhbTh1L2xLTE96R2daRktFS0JvQ2drS21LRWhlcUhvY0ZrOGJMK1VmZ05MbTl0R01rZEx3UjZ4azk2emhjTmVSN2Z1MHg0NVp4amxKRHNCdTBSK3MyalgvMU5Mem9aaXoxZnpjaEp6OUFEanpPT0RIU0VEMGlNdnpXTTVHY0IyUVBndTI0Y202aGtiQ2VkSWVkbGxrMDgrdFNja3JYTzBWaE5CYlg5NzBVN0padjl6V284YXZKWE5CYUFDWDk3WFlpU3JkbzFWdHNWQWRYck5aK29BTGtKSWNtN0hlckl0N2NYWlFleE5pK3V6d1JBUEZtV3lsQTVjbDllWnNMQVNld0RmZ0prN2JUZkV0Vm4xT3Q1bytsSXl0dmRqVWYzS1lJQjE1UkNGYm5jTGhLZnAyVW9FaTVuU2l6Vmx0Nkp4L3dGZ0s5Qm5pOWo0TzdIS28rL0hVdlY2Y3EzQm9jcjJjeFMwUElqaTRCYXU2Sndxb0FHaXVkTzdtOHF6aHAwZGR3NGVETXhCWTNnOGtZK1kxcTNPTWp0bi9xZkhjMkZlUkROOTcvRElNVE1oMFBsNHRmYnJjZklJOHF6ZVZnRGNRUEhKODVnNUtJNERhZjloTWN2MSt3OThORzcyUmFVT1hCRFQ3eTlhaDh2YnJQZVlhSFBIQjVVelZUT1kzM1FqVUMvd3hNOUJBYWRlL3U0T2hTVnNPaEhyNlU2N08rZFcyQW9CMVNQSEl5U3l3d0N5cmpmL2lpMEo1bS9iQ1FSaW52R29lNnhwZXRLcWVaVFdaOHV2OUFYRkRsTkFISFkxaUQzczlwdUFDZmxNNVFYeDZ1WHM4ZWRNTVlDUERZSlJzZSsxbmxFM2RzMXVhRjZBa2lUbk5jQmliaWR4dmE3L0diTmlsc2Z4MSsxQ040VFRBV0RuVWJROWMvdkJYZ3hibzcwTkoxK3pTTzh3N1dMeGJIZXdYaWV1bnVvYVhCZi8xZnUzdllnT29iMm5rNHNjNmZYWnhJdzlnT2RGZUVNeERLQ3NPUmpxTTFMYi9QMFI5d2g2anI3emVMV2o4c3FwS3Q3Mm9pQ1duTGxjRllOZ1ZtZ2VURmhhdE02QXJoYndwK2JzUTJ1S0FJRFBDdnorMU12bzhqcUhwWG9WMXFJVUQvMXdOY2NkalhiS3kyRU9DWVd4UGZNbUppQXJwc1dObnZUZlo3ejNHeTZvMkQraFVScEswTDlxeWhjelE3NkowS3poR1c3V1hZb0pPMzN4NXN1RmN3VFY0L2dqTzJtS1F5VDNHVm50L0RuSXZQVXpVdVpodmFQZE9aSy9nYmRPcS84UVJRNXlRV1VUbDkya1plOEVhMm5DRFM5OEFYTEgyRVhWcFMxMDRUUXZUUk9iTUNNSCtVNUZwM2w0cTJhdXR3SEpBV3RJRHJSR0ZoYWJSQWg2emxvdEhsdHVod0U0d29hVmN6ajI3enFWdzhYQkRsUHJCV0JEZEExRmFQU1F5ZnFRR1J5TUxRNVh1TjFZRGpFdWpvU2RpZGR0MXBQZFc2WnhQNURXNTNhWTVyNmNFMXljaCtjMFJNelowNXB3TDJBU29zL2xwRE12ZFlHZjZSeVI4Z2M0K1RJTnptZG1TN2tKN2M5anliQ2VhSGNySzJxZ3Nya1BpY2oyZU52OEJKb0JCd25tOWp3dWNKWm82ZEdSSGl3Z2xNVXN1SThGV1phbmVJNTYwcnVaYnpnMUJEcTBDclJ0V3Bqd09wak4vQzRYSGR3U0lPV3hOR1E2NDhHcFYrdUtFRElmcllHMlFwQk9PeDJtSlR2TlVZTFd1Nk8zeStlUGNNQ2l1TDJkK0NBa0wraUNyVU1FREpoLytkZ2tEeENjelNCYjNQbFJ2RnNEQVgwTzlaU2lPc242N2JjbnF0bnhWQjJ1UFpKam0wR2JaWTN4aGRzL3MyUWtxN01XSWNUM0dlTmJZY2g1Yi9tUE8yVzFsbWVQVmc3ZERoTUowMkViYzhwNklSYmx1VHcyaTA3QTR6NHJmTlJCamtHVkg1MHpiOVlnclE3dk1WVU10MEpFSjhoRjZpQ2I5U0tJVFdoYlNlbWFMcDFIZHBBS3p6aXFoK2pCSTh4enlieE5VZzQ3VE0yVGRXeEVQaHlNdmc3WmNkWm5YSkM5aXdYTUdYNzBkc2Z0b1Q2Uk11aGFoN281RStBSTR0Y3lXQmFEbjVtSlBLVjFEbnE1WHlzRWlyMEZuU3VLWjc0SFJMUFlyVTBnOXNoWGQrTzMrNHlDdzdJa0p3Y2Y0MkVxMHRMMFBURS9iT0hCMmVaK3kzVnNidU8waHpIeDRhM1pydXhnT0V6YlRtM3I1bStWZGJLczMrSWw1elRDVkk3c2FNN05ubm5ad2ZKNUVqUk85aUtBUXdUWkRXS3hXbDkzd3VGZy80YWQ1Y0ZheERPNDdNT09paFZ3enNnOFIrL3pxaTNyanpiTmdkWFJtbVJFYVkybjZQdUZTamduU2ZZUXpvbU9mZVFZQktMTXJ2a3p3YzdPOFp3dngrNmY0ZllQQkVuY2VDVkt6NmxXVGFZcm0yMnBjVFJMRWRBOTJxdjFNYzVVdUNIYTIvNzJCUnNCTEIxMkFLNklIcFBMeHJQZjVCeGNCMGJaZUJmdEZMR1V6RWNCNUZkZXRVMzJFQmZMM1J4ZmlicTZBUElVcmI2MDJUNmZLZEtRdkFBdlk0M3Q1cTAyeWNWNVlPcWdYUHVzRERXcjlWcU44Slg5Ni9raTJJVFZVRDdVWVZvWG9QVG5zajMvYnR5Q2pjWWorUnFjeXpxTnh5NGJlZVhqbU1uYlUyV2c0eHFLci9zZFVYMktRSzAycnNleXA3eDNFSitSQ0M5ZlFLdmw1QitSZkczSG5kc1JsQWEzUXdBSW1WMUxKdmVlNHVobFFrUkc3N3dKS1pmc0NLM3pPUWZVWnlxbXd6QnRWMHFFTkxZV3VGeW1kcXFqVnNEc3dqM3NFdXd0Tmxub3RDS3ovVTZmSFVzbURPZGVHb2Z6czNlZDVzNm5kYXI3REdRTVcwbGVpTFErZ2NOUjJGeG9IUjBBZStDSVFMNkhTY1Y0RHgrWUUyWmVrYWtZRnJJS3NpY0xiQVpnRzdUdFJMN09JNEdzQkhwUTBRNmk5akVSblVoNFNtbE45Y1ZmcWZ4N1F1ZVFEaTk0VlFuRURvb01UdFhhbFNEREd0blBDb0lRMFZsc0E3V0gvMjg5WTV3czRmbHI2SFlpYzJ0U0FLRHdUSHpHQTlBczF5bnV0Q29wK2N3SVQvQlJiYXVlMlJaT0luSjhxVnhQbW50T1dKeEpqaUpiQlZWeGp1Q1FacWlDeTdaclowK1lQWWxPUkF5RVlQU2lGTHQxL2dWY3h6bDNzVFhrT1pPNG5NMW9sL1FaTHNSclBNKy93blF1SElEQ0lqcHVibHVKdno1QnpKNzZoQjYzTk5LWlhPOHI2eHZkWTRKa2Q1QkpxK0swYnJ0OHRtTS9Tbldvc01PRE1ERTA0SEppM0YyRHg0WFA4ckV2NXU4ZHd1TlFMdE1QM1Q2K25LeGJDY04raGl2RGIvT1ppZXVBR1FkT1pQMklHOTVvMWZjOHBNcVNwdFBicmZKVGdBWWZLR052a3ZPUnQwOGJtUmYyMFcxdHNMVHlTK0VwNDNhYzRuTzYvWjFJdnUwd1I3WEU2dXhpL05tU2FmNis3UUo4N0dpUzVUaXVHSmJrZFVySGlwTzJUanNoUHR1enRVMVdQRVZreG1zamtHY3NIdGE0eks5anBHQXhYRGtoWlY5V2hMUFFZMGhDUWZaWW5DOXZuc2xHRDBlblRvOE5MU3MyZUxDZ3RpRUxGa1FQTUJxL1FrM0VkS0VTQjl4M09HRy9PcXpiYytVN08vUU1FbXA5b3pNNVlYVk83UWtlM1Rrc0lVNGZJd005WklOWm16SHFaUmRldDM0WldVVTBIUVNheDBJQUVCMU9qSGtSOGZGQzNPWG4rVlV6TmJPd1RuTTJnZVRJN0dYZG5OUFBWdFdqOSsxSjhubUVUc3NlMVRUc09ZbWlxWnpKenQxQ1VqYkVrbGxJZ2hKcm5tZGJGUWRMWGVNOG1DRytDQ3M3M1ZzOFBVNTludEgwSGl3RmorM251VDByTjYyRWhxY2lxT2Vwc2JGWFFXUkNpd3l1M2NkVkNJUGd6SFNLbDlVVmhBLzdqWHlhRlZ4M255Rnh6dWNiRXVGRGFnZUNFZlJweHJLTEdNY0cxZWM4eG9WRkM1Wk1ycy8yVWdMSFo4TmRQc09hc3NZL0hPQVNwSnk5clFjZGhjL3NjeGg1V1JUOUFsa2VqQklDMkZySHJmTFNSY0NQOHVVV3dta25URTZPVjJEWTRGT3JKZzZkcmFkSDhDdlhxeGMvbmd3QXpNMm5YWlNOcEd2eWhHYUNncUJLV0o0d2xCTVVYck1hUGxmRE05MDVMYm5rWFV1NUhCeTFidDRob0ltY1EvUVltanhySDVBZGJzV1p5Q1U1QnM0SGpIbVVPOC9NaG16cnVNaGt3K0FMaHdUbXBKcnJnMVRwSDE4MVRMTnlNU0FmSVlUck5uK0VKWVIwQ29vOXdmS3dhNXhuUnRnd05DcVJGbnJpMEhtSFBVcmhjdjJpVTFvY2cyL2VIdk5uKzNCY1p6S2tkVW94WGdMa1poY01sT3E0TTB6NzRrMVpNMGNxUDdhR212WlhnSG00cEVOeDAzMDVUZUZrK2U0enN2UjliU2diVS9WT2pFZHNGd3d5M3phMm4yZVpmT1laNEp1dzVtQnZHMDd4Uk1mN1EyeFlSQ2RlV3B3Umc4Zmp6dUQwRVNMVG04TWpyd290ZEVobFErWkRmMTVQVTZFaHpZbmgzMm1FZGNLTUZkM2JpZ1VucDhYNzFORi90amxMTTFnT3BDalVhSnVIUkhSL1owNDNHR0MzeUxmOW44blFuUkVNSGk2Zkt2Nzl5VUJBdE1VRjMxYTRxYnFMYklTMVU3dHZITVhpVitkT090TEQ2aE5ZS2lFL3p1REpPRCtOTWpaN1BzOVAxOC9JSDJ3RXNMK2NZZ1NYeHRpakU4RXNOVHd0enE4QS9kMjJ4ei8yQ0hUMnhPWVdKQ09PQzJFR1grNC9xc2FKL1E3YlFRQlpvWWNHdWxXdTFlb3ZyTkU1cnRzcFI1OFliTVVMN0tBNm8vaDk2NWxydVRCTTFOWUdOODhBbkR0Z0E4RmhtUWpONlNEb0JlWkRCTE9QQmJEakhFTHdWZDVjZlltT3RwVUNUUUkzMm1kSTBoZlNaVzF2UDQvVklhcER4bDZrOW52TEFCT29LZkt1TTdOQ1BMQ2p2eUsxUk9xZWJjOTQ3QWhTdDkvWHVPMlVLSStqTW53Q0RqUXUyKzRFUEtsV05OdG4ydkl5dkVrdmRxVEVwUTROanQwN3ovMGc0TmpDTUIyK0RuVERtQkQwVHNmM0lWQnpnTnZRNi9ZemhsTmFycnBTbFVHZnUrZkZ6UUhGODhVZzQ4ZXRvV0E4Z0Ivd016dk1hem5WL0E3d3RxcnE3czZVZW4xMmhGMVF2TmR0SVZwWUJNa0owNnNGVE1SUkw3TzRsaFUyczhDQjJIWUdhRXF3VC9YZmFZSHljTWl4K1gzNGtNSk1KQjBPbkxjNDByWnJLZmdIclhGV2c2ak4rL3U0SE1UNjRjL2JLR2VXRFFKamdZeGo3NTA2aGlna0RGbkZBNEttZVZ0NURGZThRQllZOUxkNklNNWo4SGJUelBFTjA2MGQ4d1VvUFhFa2ZpMFBQUWlrUVA3eTJRanMybXpCL0ZWS2xudllIeDU4T0E5czNQeVNUVWZ1UjhGMUxBODNDVmk0TXdkTDMyOXdZcFd4M2o2K24vS29hdU1wck5idXNuNmU4VE1PaFhYV1BRcjljUWQ5TEJEczBVa25acG50MDRBOXFLelk0b25hOGF6VHFkZDVYczR3N2FhelFJd2tGQ0RwQUJBZ3dybWNyK2Mwc3BYWnpJdG11QnNSb0RvVUdnMmY1RGFuWWRFNUVkRklMbXFkZ3ZCbWR0RHhkTU5YMVdvTnZROXVFUWliZGFESlBEWHJMVUxiL0RESGVTYmFldzFqd3VOa2Z2aml5YXRidEdkQnVQWER5Tkg3VjVuYzU4RCs0UFMxQndMNUZvamg2WkU1VTdReHlONWZINVBuVThoWVRaOFFVY3lyQnlLb1RkWUJIKzRQd1luSTVxTWVzek95YlNhMU5zcHNNU0NUbk1kK2ZVS3lVMzU4SXBVUEV3aU9rcldiL05UaFkxQ0ZOVmJrMkZQc09CM0VySlZxYi9JNUtwYVB5S3pMTloxQWMwb2RvNDl1eUVGUXhxOFFDZmVaeER6RVRaOVQxcVd6RG5UY0hxQzlmRnIwak0wbjZPd0ZyUWxPRFN2MmZTVnJWc3JwaE1WSlVOZG55Q0NZMElGTUk5NlEySnc4M2o3UGw0eU9XSzhSZWZMQklaL3d0WHhTSGphVW0rb1o3N1FySldQeFhFNXhVQ3dLMUFlc2JLT1NUZkdPZlBtNlJQbk1nY1Y2ek5VU3d5MnNIaVhhTzB2NFNJTVhPZVFTTkR4SjB0UDRmYWJhcWZGaC9zdGFKQUlDdi9ZNGJ6dDlWeFlwSkZVTzBYWXVUenE1L25rb3UvSEExT3hKTEh2MnZKMjBCN05wNXJQR012QnhYeXhGZ3ZvdER3NlhCK2pGYnMrNStsaU8zTGZRR2VkSXArcmVzckc1N3VqYzNZM2RPc1lmWSsvZXZvTzE3OHZCRW5leUJBTWk1RUFSOWJRZEx1TzBjeW05enpSVnJNc0RUc05nUm01NkcvYlFtQ1k3UVlQRnZzRVczcHdMSkZaOVRrYVdJamh6eEVmdlFXS2NBdS80Y1hqVk5nZnBXU0ZyWFdkQnF2dUFoNG9kWHdnNmZvWFA1UHF3Ryt4b0JuejZ0SVJidE04aU9hU3BPZmZVc2JtT2tuak91SXpwdWZBY3lyZnc1c3NScnl5SkZQUFhzOU13eUdrVHVNODZlVEUrWU5iNXo0NHI4ZnpFZG9UUHlBdjRQVTVYbVYxMjRPZ0NxM2R1TUxuSWJDdG8rOGdGQUZtazFEcXpvM3pvbk95TEJlUm1wYU1lUmNGSnpUNlpQdnVlaTQxblM1N1hHdTNndVkvVFdRQlRLSGVGVjY5dFRaa0greW9taTJ6T2M5dWVIY2JuUXgvMEZ4K08xYS8zVENpMTFNaE9ZR0lIckxIN2JDZXJzdGxESjhkVkoraDZ6T2ZEUFJ3bGtwMDVXbndLVFBJdVRkMWNJN3BYenpQeVQ1bGVObHc2M2dKRzlxQUNsSENQTGZ0UWlzOENoalBQenc0NTYxRWNWcGxmUi9aZTJJbFBuWU9heEF3bjgzZ1pjSWdvQy9UNnlWcURiUFk4bktkZHpXb3Yrc05LQjRQUjgvajRGeTVzK3JBN2EzRjhvcFoxbXltY1pGeDAzTnVwdC9ZeGRQMHRVSDY4OVIxbldwV0hOdXdLTXVXUjBRTUhNNjdydTAvNUtmdnpoVlZPVnQvU041RFVKOFE1VU1hSFBWaHFOTXlVbU9xTHhCK1dtWS8zc1ljSWU3YTJYWTZYZGlpaWJXNDQ2ODlNWkd3YXh2dTVKeU9jeHpqc2JmL1RZMTdmTWp1YkN5Q2J6bW00bXdlYjR6cVJPL2xZWWVodzhyR1B5OVF3Nkg2eXNkc0gxK0syNTdBMjJoWmpoMlV4a3hOOWhBOE1FWmVFK0RwcmJOa3NrYU1QOCswK29jN1JURWZ3TGl2R2lJUmVDbmJoOFlIc3Zwc3ljSnc2RUlzZjVWUFNjNWxXVUxmNllMdm5IR0RZZUswY1JKN0FUeDdpQmN5TDNmUkpJdzQveFBNOUtYMGo3bHJzdXpsbmxsZER5dmlJaGVjMkxZMjVmUEZNQncvTFRyNWdmWVJUaHdnMnhBZTIydGtFNk96aFUrSFdjdjY0bytTMG8yMWZvTW1qZTV4SGU1YndGSityTVFGbHgxaDlCSE1mK3VSakhHQlIrZGVvcWZ2MHo1aVlQWDRNSGprU3gvTnFXR1VqMkcySEREcmdLeE5wWVhIZFpwWGlRNWtMdU9DY3NtYndSUUlhWHl5ejhEUGZlb204NlZjL0k0cnF0YXdmTmVxMFVqMkEzYkk0eDBjMzJibnNRMTdzUUQxUHViS3BHTnN3N3p6MlJiU1lSaFdIbnBxdDRyY3RteVo4RW9BbXhCYjVacnFia0Izbk14NWJhWHdpeE9jakhoM0RpVHBzRnVnQ2xzMnVNcXR3eTdiU0JEbjNzRGg4RWdCUHdQaFRUeVBCNVBuZG5WN0ZFdnYvZVo4eGg3Tjk3Q0tNU0NHZkFGc0pSaDZiblRHcll6cTVQWHVzV1oyQ0dJZlBkNElGL3IzaGtkVzR0a2Q0UG43cmtZR2JxSExlRU84QzZ6QllFMm5FVFpPZ1RqcVJRVHNJQ1hlSzJlZWNkc2M2eExhdVUxV3JCWml0T2dQYmEyMU9GL1NRenZHM1ZreGd1WHRHQjVXZHB5Q2RWdjd1V0NZVFV5THNlQzRIV0ZydFlNdEtkQW9RaXNRSjYrTnpOQ3ZZOFp5Ukt3NDh4UUNoYThnY09LTlpWQ3VLZ2s4cGZYekNRRlhLcnZBNUU5OE8yZXpqQjZyOXZpamY1VE4vRytLMU9QeTZPOG9TVW5JN0dyOURlN0Y4SStEc25tV2o5VDJmeHlpTEhJb0ZnSSs2OEo1NzRTeE8zYTdMNThQNGJKMEEvcjNxcFNSQi9FenhlUnFSZlFJVHhoaUFWcGpGbUQ3Y2JKdTI5Umpma3Ywelh1MDdCeCtPNXhDK2ZXNVdQdW1vZWNvWUVWOEFjcnYyUExOTWtHZndSVlpLVU1TSnN5VWlIakhHMTltSHFUdSszeDZUSHM2elNhQmV3SWZEK29vUGRBNzJISCtWdXh6V0o5bXBCdXQzakh5MnJRekYzQ3JvYW1JZm1MdWRNTUNOUWRSc3IvQTVqNXMzdzJCWnZldk1BU2svbGNTT0xEelBKNFdPTCtOR3NSbHlxRHpmWGoyMUR6NDJPUHRvaWNma2NiU21mSjJ6MjR1bEhvN0U1aXFRaWhha1R4K1RHcERlTXoxQzJVZjR6QjMxNWZOVUxQVzUyK05qcVo5NysxeW5ZQkhVNHlOVG5UUnpwamVpYzMwR2VmbDV4dGdwSC9MSkFzUVk0N3dkYVdDVkE0SldjVFRwTU4zdHdUVC9zbXU3VjgrKytDN3JBRGtFOXg3SENWaHc4bnBnN0lPcEhYWG84eHA5cU9PcC92Rmh5TDRZazM3VTA5RkJremJIM2FnREJ4dXdXdDI0T2thMU5XQWxqMElSRkQ2emFaWUdlWHJpT2NDM1dKL2xyY3VXdSs4ODdheWZydjdoZ2FYajhweStWeUptZDVxSEljMldyampNd0dNZ0tCZlUyTm84eStVcjB2aStjVnVqOCtWNGcyMEJrMCtzdzRZOWh1WENpVUdPVFhmcUdwVFpKeUY1K2o1Zm43c21mOXYyNHpxeC93VDR1dXBWUEhJZ05IZ1c1SUZ1UDdNOXZvUkxmZFZIRDhHSUFmZnNBY1I5R3ZlVEQwQWJCZG1IQTN5UGVlRVhMZEtHbTRyN29aN1BYRWY4QkNKdm5ScXY5eG1OVnQxR0h3NTlocDFqSDhSdEsxVXNpMkZsZllidERENnB3bno3emhIRWM1enpycWRRREJhbWhTenA1NW56WmFzWnZvRTVMZ25rNFpUSnMxdmxmRW5UY1h6ejFKZEVINXhta2lEeUJxOUQ4ckZqYkljRmwvTE94ZldiZzdRbXloSFdEd1NCejc0L2JxZjduR09zNnZVMHdRZk5BUm5Pckx0dDVhaHE2L2M4eFdQZU9UbmNzMFdUZkZZcjNSNHBwek9nVHp6QlJ5NnJuQUNFODh5MEp3MldNcW1uaStOOWJhYXhlOENHZm9tQ3d3THMvZmc4ZXpZVlBCeGtyaXRhZ1dDVGdnY3pQVHZFMzRkdUpwK2ltQjJ3ZFNyMVgydlpBRUZqNkRlQXpXS2F4SWR3UHpBM3Uza2lvdU02RDFKS1g1cWVmTXRLdWRKbGhwdG8ySDFNd1p1ZHR3WEVxdWVjOHd1YXNXT0FyR08rNjdRamkrVytQaDkvKzRxVEZpVzBEaUI2U05LRzAvaHR6MFc0d3BpMlJsODN1NUVTOGdQZHlmWjRQb2lSR2J2aVpibWxOWWFXZkZvbGlMQllwalNmZDNZRjRPdUVGTHVYMXZESnUydlk4dTJENnQvMlpXUUlkdTVVbTN3VkM5VzZjK1J0OGJQWkdtZGp5WjNZeEJyYk1YdGI3dm42Q0hFY3cvUDU2cEFWYktsWk9rQzQ1SXJTOVZrTWRkdVVaOE5Fc04za3RrTjN3YmJsN0dCcFF3QzJuZzArbm9vNDhqaWFyOGRqN0xVQVp2OFBQUGZ2RWE2TzBVNEFBQUdEYVVORFVFbERReUJ3Y205bWFXeGxBQUI0bkgyUlBVakRRQnpGWDFPbG9oVUZPNGc0WktoT0ZrUkZITFVLUmFnUWFvVldIVXd1L1lJbURVbUtpNlBnV25Ed1k3SHE0T0tzcTRPcklBaCtnRGc1T2ltNlNJbi9Td290WWp3NDdzZTdlNCs3ZDRCUUx6UE42aGdITk4wMlU0bTRtTW11aXFGWGhDQ2dIejBJeU13eTVpUXBDZC94ZFk4QVgrOWlQTXYvM0oralY4MVpEQWlJeExQTU1HM2lEZUxwVGR2Z3ZFOGNZVVZaSlQ0bkhqUHBnc1NQWEZjOGZ1TmNjRm5nbVJFem5ab25qaENMaFRaVzJwZ1ZUWTE0aWppcWFqcmxDeG1QVmM1Ym5MVnlsVFh2eVY4WXp1a3J5MXluT1l3RUZyRUVDU0lVVkZGQ0dUWml0T3FrV0VqUmZ0ekhQK1Q2SlhJcDVDcUJrV01CRldpUVhULzRIL3p1MXNwUFRuaEo0VGpRK2VJNEh5TkFhQmRvMUJ6bis5aHhHaWRBOEJtNDBsditTaDJZK1NTOTF0S2lSMERmTm5CeDNkS1VQZUJ5QnhoOE1tUlRkcVVnVFNHZkI5N1A2SnV5d01BdDBMM205ZGJjeCtrRGtLYXVramZBd1NFd1dxRHNkWjkzZDdYMzl1K1pabjgveHJ0eVl2RFJmRzhBQUFBR1lrdEhSQUQvQVA4QS82QzlwNU1BQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBQUhkRWxOUlFma0J3SVJFZytzaDBPcUFBQWdBRWxFUVZSNDJ1eGRkM2dVMWQ1K3oyekxwdmVFa0lSaUNDMFFhZ2hkT3FHSU5CRkVVY0VHSW9JRnBQaGh1VjdBY20zWDNwQXJLZ29pSUNBaXZZbDBFa3BDU085bGU1dlptZlA5c1R2RDdHWkRVVVRVL1QzUFBKdmR6Y3llT1hQbW5mZlhDYVVVZnZudFlyUFpVRjVlanVycWF0VFcxa0tuMDBHdjE4TmtNc0ZzTnNOaXNjQm1zOEZtczhIaGNNRGhjSUJsV2JBc0M0N2p3SEVjbkU2bnRQRThMNzN5UEE5QkVPUi9FMEVRSU44b3BlSXJvWlJDM0FBUTcxY0FvSlFTOTlDbFY2L1BTRjVlWGx4VVZGUVRqVVlUcDFBbzRoaUdpV0VZSm9vUUVna2dBa0FvSVNRVVFCQ0FRQUJhQUdyM3BnREF1SThuQU9BQnNPN05Cc0FLd0VJcE5RSXdVa3IxbE5KNlNta2R6L08xSE1kVjJlMzI2b3FLaW9yMDlQUnE5M0dvYkd2d25oRGkvWjM0R1FCUVFraURWOWxHR1lZQklRUU13MEFRQktqVmFqQU1BNFpocUVLaGdFS2hBTU13RVA5V0twWFNxN2lwVkNxb1ZDcW8xV3FvMVdwb05CcG9OQnBvdFZwb3RWb0VCUVVoT0RnWUlTRWhDQThQUjBSRUJLS2pveEViRzR1RWhBUm90VnIvelhRZGhmaUI3YmNKeTdJb0x5OUhaV1VsYW10clVWOWZENzFlRDZQUktBR2ExV3FGM1c2SDNXNi9JcURKd1V5K0NZSkFSSUR6QWpNUElCUEJTUTVTM29BbGYxOWRYWjBhSEJ5Y29sUXFiMkVZcGlVaHBEa2hwQm1BWmdBQ2JwSnB0Z01vcHBRV0NZSlF5UE44QWN1eUYzVTZYWDZ6WnMwdWVBRWN2UXpnTlFCQUVmZ0lJUjVBUnltbFNxVlNCRFlKME9RZ0o5L2s0TllZd0FVRUJDQWdJQUNCZ1lFU3dJV0doaUk4UEJ5UmtaR0lqbzVHZkh3OEVoSVNvRmFyL1RlWEg5aitIQ2twS1VGbFpTVnFhbXBRVjFjSG5VNEhvOUVJazhra0Fack5acnNzb0hFY0o3RXpiMUR6QldZaUt4T0JUYngyUG9ETTQzMWVYbDVzUWtKQ0I1VksxVUdoVUxRbmhMUUgwQmFBNXE5OERYaWVkNVNXbHA1TlNrbzY0M1E2ejloc3RwemMzTnljSGoxNjFMcVpvaHpVQkRkVDgyQjIza0FuQXBzSWFDS2J1eExJaWFDbVVDaWdVcWt1QzNCYXJWWUN1SkNRRUlTR2hpSWlJZ0pSVVZHSWlZbEJmSHc4a3BLUy9EZVpIOWh1bkZSVlZUVlFPdzBHZzZSMnlnSE5icmMzQUxRcnNEUWlxcDFlZ0VZYVlXVU5HTm5FaVJNVkgzMzBVZmVBZ0lCdUNvV2lLeUdrQzREVXYrTzE0SGtlcGFXbGFOYXNtZmRYZVlJZ0hPTTQ3cmpSYUR4Mnh4MTNITnU5ZTdjZ0F6c0o5QWdoZ2plamN3TmJBemJITUF6MUFYQlFLQlQwU3V4TkRuQWlleE1CVGxSUHc4TENHcWluY1hGeC9wdk9EMngvbkJnTUJwU1ZsVWtzelpmYTZjdU94bkVjV0phVkdKb1BPeHFSMjlGOE1EUGl3MTRtc2pMeXhCTlBLSll1WGRwSG85SDBaQmltRnlHa0o0RGdmOEkxdVF5d2VZdVpVbnJJNlhRZU1wbE1oMmZPbkhsb3pabzFUaDlBSjRqQTVnWTA2c011UjcyWm5KZjlqWHJiMzBRR3AxYXJKWUJyelA0bVYwOUY5dGEwYVZPRWhZWDViMEkvc0YwLzRUZ09KU1VsSGl4TnI5ZExMTzFxN0dpK25BTWlvSG14TTBuTmxERXl5SUdNVXNyVTE5ZTNDdzRPdmxXaFVQUWpoUFFIOEk5YzlkY0FiQTJlVTRJZzdPVTRibDlWVmRXKzVzMmJuM09EV3dOV0oyZDBJbnVUL3kwNkdPUWdKd0pjWTg2Rks5bmZSUFlXSGg3dXdkNlNrcEtnVXFuOE42VWYySDZmVkZaV29yUzB0SUZ6UUs1MmlxQW1zalNSb1YwdG9QRThMNm1aZ2lBMENtWldxM1dBV3EwZXpERE1ZQUFkL0ZmbmR3R2J0MlE3bmM0ZFJxTnhWM1IwOUQ2NHZMaUNOOWcxQm5JTXcwanFxa0tob0ZjTGNDS0RFOW1iQ0c1eTlkVGJ1WkNZbUlqNCtIai94ZmNEMjdXTHhXSkJjWEV4eXN2TFVWVlY1ZE01Y0tYd0RTKzFrM2c1QnVUc2pIZ3hOQW5NYkRaYmxscXR6aUtFWkFGbzZyOHlOMFRLZUo3LzBXUXliWStNak55T1MrRXFQa0ZPcHE1NnFLb2lpL1B5b05JcnNUZHY5ZFRidVJBWEY0ZUVoQVFrSnljaktDaklmN1g4d0haMVVsSlNJckUwdVMzTmwzUEEyNWJtZzZWZENkQ0l0ODNNWXJFTTFHZzB0eEZDUnZuQjdLWUF1UzE2dlg1TFRFeU15T1E4UU02YnhjbEFybEdBVXlxVmpRS2NuTDE1T3hlOGJXK0ppWWwrNzZrZjJDNHZKcE1KUlVWRktDc3I4MkJwQm9QQkl5YnRLb05zaWFoNml1cm1aZGdabzlQcDBvS0RnOGN5REhNN2dIYitKWGxUeWxtV1pUZVdsNWR2YnRteTVSa1p3UEV5a0tPeTF3WXNUcTZtdW9HTlhrMXdyenoyVGZTY2l1eXRhZE9tYU5hc0dVSkNRdnhYeUE5c0RWbWE2Q0R3NWZGc0xJUkRCRFZmZ0NiUEVwQURtZ2htbXpadENoZzhlUEJFcFZJNWdSQXl6TDhNL3pvaUNNSTJxOVc2NGEyMzN0cTRhTkVpR3dDbkhPUmtMRTRRMlp1M211b1ZIdUlCY0NLNE5SWWE0dTA1RlIwTGZ2Ym1CellBZ05WcVJVRkJRUU1IZ2NqU3pHYXpaRXU3UXViQTVRQ055TlZPdlY3ZklTZ29hQkxETUpNQStGZmlYL3laeUhIYzJwS1NrdlVwS1Nsblphb3E3NjJxeWdDT1hnbmdMaGZZcTlWcUVSd2NMTEUzYjhkQ2l4WXRFQmdZNkw4eS8xUmdxNmlva0ZUUDZ1cHFEd2ZCbGVMU1pLRG1FOURjQWJVZTZxYlZhczFTcTlXVENTRVQvVXZ1YjhuaTF1bjErclhSMGRFNzNBeE9EbkM4THpWVkZpYlNBT0FhczczNWluc1RWZFBZMkZoSk5XM1NwTWsvL3Bvby8wa255L004OHZQelVWeGNqSXFLQ2lrbHltQXd3R2cwd21LeFNLRG1jRGg4WmcrSWdDYXpvL2tFdEx2dnZsdngwVWNmM2ExVUt1OEcwTWQvKy85OWhXR1ljWkdSa2VONG50OXZzVmkrSGp4NDhOckRodzg3UlpDamxEYndyUEk4VHdWQm9HTGlQYy96VkI0UzVIUTZxVHhjU05RUTVLWVE4YUVyUG9TdFZpdk1aak5NSmhOdXVlVVdLQlNLZnk1akt5d3MvRWVjcU5GbzlBbG9vc2RUcm5aZXpvN21TK1dVc1RPeWFkT21rTmF0VzkrclVDaW13Ujl6OW84VVNtbTJ3K0g0Y3YzNjlXc1dMRmhnSklUd01pYlhRRTJWc1RodkJuZForNXRjUFJVRGU4V2MweVpObWlBNU9SbWhvYUgvVEdEak9PNXZmNUpsWldVb0xDeVV2SjVpQm9HMzZ0bFlHSWVYMmtsa2FVOFNxR1ZuWjBlMGJObnlmb1ZDY1QrQUZQL3Q3UmNBK1hhN2ZkV21UWnUrbmpKbGlzNUxUZVhkNENhcHFPNWdYeXJQUWZWV1QzMkZoWGluWkVWSFIwdGUwK2JObTZOcDAzOWU1TkRmMnNaR0tVVnViaTZLaW9xa2dOdkxlVDI5TXdnYVVUdEZMeWRES1NVblQ1NE1iZHUyN1F5RlFqRUR3QzMrZTlrdlB1U2l6V2I3L0t1dnZ2cHkrdlRwaHNzQkhDRkVrQ1hkZTJjdVVGOFpDNDE1VGNXQTNtYk5taUUxTlJYdWJBay9zUDJWeFdReTRjS0ZDNUw2V1YxZExYazk1UUczamVSNUV1OVVLQzlQSjdOa3lSTEZraVZMSGxRb0ZBL0NIMy9tbDZ0NzBKNjFXcTByNzdqamp0VmJ0bXhoM1FBbnFhZ3lnQlBrSGxUdjFDeVZTa1VieXplVnE2V1JrWkdJalkyVjFOS1VsSlIvVE16YjN4TFlxcXFxa0orZmo1S1NFbFJVVkRRSTVmQk9YcGZiMUx4WW1vZGpRUFJ5MnUzMk8xVXExU01BZXZodlY3LzhCb0E3YkRRYVB3c1BEOTlJQ09HOEFNNmJ3VkZaQmdQMVptL2VNVy9lQWIxaVNFaVRKazJRbEpTRVcyNjU1UjlSRHVsdjV4VXRMQ3pFeFlzWFBlTFQ1TG1lM3NucmNwWW1PZ3JrYXFmTWpzWllyZGFCYXJWNnBqdmx5UzkrK1cxc2dwQ01zTEN3REo3blIxVlhWMy9XcEVtVEEzS0E4L2FpOGp4UDNRSkJFS2hYL1Q3eFBYeDVVVVd6aXVoRnRkdnRzTmxzYU42OHVSL1kvaXIydFBQbnorUGl4WXVOT2drdVU5bTJBVXVUcTUzMTlmV3BvYUdoc3dnaEQvdHZTNzljTDJFWVprUjhmUHdJbG1VL3lzbkorYnh6NTg3NU1vQVR3MFI0QUlJZ0NJTFkzOEs5VVRGbFR3NXUzaUFuT3NDOHdjMXV0Nk4xNjlaL1c3dmIzd0xZYkRZYnpwOC83K0g1bE1lbk5XWlA4MlpwYmxDVDFNNTc3NzFYOGNFSEg4eFdLQlNQQVVqMDM0cCsrU05FcFZMTjZOU3BVNWJGWW5tL2I5KytueDgvZnB3RndMblpHeU9xcUpSU3FSaW0yNEZGNWNVVnZBSE91MXF6SE9CWWxwWEE3ZS9ZU09ZdkQydzZuUTY1dWJrb0xDeVVDa0xLcTNMNEtnYnBmb3JKUVUzTzBoaEtLYkZhclVNMUdzM2pBQWI1YnoyLzNBQnBHaGdZK1B5dnYvNDZvTHE2K3FNbVRacnNKWVN3TXZXVTRGSk9LdlZpY0hLQW83NmFBdmxTVDhVb2dOVFVWRVJFUlBpQjdXYVJxcW9xajNBT01ZbmRWNFZiV1NnSEVlbTVENWJHbEphV3hzZkZ4VDNPTU14Yy83M21sejlCUFIwUUh4OC93T0Z3L0hmSGpoMmZabVZsVmJyVlUwWU9jSzRLNWtSb2pMM0pWRlZjalpxYW1wcjZ0M0lxL0dXQnJhU2tCSGw1ZVNncUtwTENPZVROVlh3NUNieFpHcy96Y3BiRzJPMzJDU3FWYW03cHVlTmR5eDNCeUVodmRWT2RjMzE5UFdwcmE1R2FtdXBIZ0wrQTZQVjZiTnEwQ1E2SEE0TUdEYm9tZzcxYXJaNDFiTml3WG5WMWRlOUhSVVZ0SVlRbzNPb3BKN085RWJuOVRRNXdMTXNTbG1VYnRiMTVNemlPNDFCVFV3T3oyUXdBaUlpSVFPdldyWDgzOFNnb0tBQUF4TWZIWDlYNVYxUlV3T0Z3L0c3bkJ0UG9ONndlbnl4N0VvUDdaeUlqc3o4ZVdmZ3F5a3pPbTJMQjVPZm40OHlaTXg1eGFwZlltZzdGRjg3ZzJKRmZrWjJkZzhMaU1saHNkamdjRGlJQ25EczFpZ2lDd0FpQ29LaXNyRXgyT3AydnFWU3Evd0hvdXZvLzgzRFB3bmR1aW5NOWZQZ3czbnp6VFFEQWtTTkg4TnByci8ycFkvZzl3bkVjQmcwYUJJUEI4S2VONFhyTDJiTm5ZYmZiRzN6dWREb3hZY0lFRkJVVklUQXdFRmFyOVpxUFRRanBIQmtaK1I3THNvdDM3TmpSakZJYVFDblZ3TldZV2tVcFZWQktGWUlnS0FSQllIaWVKMDZuazdBc0M1UEpCS1BSU0VRdnFEeVAxR0F3U0ZXaUt5b3FVRnhjakFzWEx1RFFvVVA0K09PUDhmYmJiLy9tZGZiU1N5L2h6Smt6QUlDQ2dnS3NXN2NPSzFhc3dLcFZxNjVxUFd6WnNzWG4vMTdyZW1nVTJMWjk4Q3hlL0hRM1JrNS9CdiszNEQ3ay9mZ2VIbm4yNHo5OUlaMDdkdzVuejU1RmZuNitSN1Zia2ExVkZlY2h2NlFheXNCUWhBUUhnSE5ZU0gyOW5vaU16YzNVaUNBSUlrc2JGeDBkL1JVaFpPYk4rTlQvOHNzdmtaR1I4YmNZZzBxbHd2dnZ2LytidWk3ZERQUGdTK2JNbVlPU2twSUduK2ZsNVlFUWdrV0xGbUh5NU1sbzE2N2Q3NW0zQi9yMzcvL2ZFeWRPWkFIUXd0VVRWZ1EzcFJ2Z0dCSGMzTDAwQ00vemNEZ2N4RzYzRXhIY0xCWUxUQ1lUVHA0OGlZS0NBdFRVMUVqOVBWaVd4Wmd4WXpCdzRNRGZORTZUeVlUZHUzZWpUWnMyQUlETXpFeXNXTEVDdDkxMjJ3MWZENDBDVzFGUkVVaEVjMHlaTkFZamI3OFhMeTkvRWNPNkpNRUpRRjk0RkhQdm40Q01qRXpjTnZraDdENVhCUUE0dXY1TkRNKzZGM2syQUhEaXhZZEc0dUZsWDdwNStVbE15aHFPZDcvWWlEbFRiMGRtUmlZKzIxM29ZbUNIdnNjOTQ0WWlJNk1YcGo3NkhQSnJIU0p0eE5aUGxtUDBnTDdJN0RzWUR5NTRCYWZQblVOQlFZSFVEcys3SjBGRmVUWEFxQkFhRkFDVldrdlVTZ1dvNEhTQm10TkpPSTVsbkU0bjAyUEFpUEJ2OXAxNVFhVlNmUW1nMjRGdjM4VHcvcjB3OExaN2NMalFKS2V1SG1OWTh1WWFPRzdRVFdNMEduSDI3Rm4wNkhFcER0aHF0V0xldkhubzM3OC9IbnZzTVRnY3J0R1l6V1k4OWRSVEdEcDBLQ1pObW9SVHAwNEJBTDc0NGdzOCt1aWpHREJnQUJZdlhveXNyQ3pNbVROSGJMcU10V3ZYWXVUSWtjakt5dkw1cFBRMWhsOSsrUVhqeDQvSDRNR0RzV1RKRXRoc05nQkFiVzB0WnMrZWpheXNMSXdmUHg2Ly9QS0x0TTlkZDkyRmtTTkhZczZjT1pLNkk4cW5uMzZLNGNPSFk4aVFJWGp0dGRmZ0hUVHVQWWJ2di84ZTc3MzNudlQ5NmRPbnNXREJBb2twTFZ1MkRFT0hEc1hZc1dPbE1aak5aa3lmUGgydnYvNDZoZ3daZ29rVEo2S29xQWdBOE1JTEwyRC8vdjNTOFZhdlhvM1ZxMWRmOXRyczJiTUhFeWRPUkdscEtlYk9uWXVKRXlkaTU4NmRBSUNubjM0YVR6enhCQ29xS2pCeDRrUk1uRGdSTE10ZTluanIxNi9INjYrL2poa3pacUJmdjM1WXVuU3BOQS9MbHkvSHFGR2p1aXhjdVBDRFhidDJ6ZjN3d3crakthVUJBRFNVVWhXbFZDa0lncExuZVViYzNNQkdEQVlEYW10clVWdGJTMncyRzNRNkhVNmZQZzJqMFlqczdHeHMyN1lOUjQ4ZVJXVmxKY3JLeWxCUVVJRGk0bUxVMWRWSnY1K1hsNGQ3N3JrSGdpQkk0NTA5ZXphT0hqM3FjUTRiTjI3RXFGR2p3RERNRmRmMjVkYkR1WFBuTUdIQ0JBd1lNQUNmZnZycEZkZmtoUXNYTUhQbVREend3QVBvMzc4L0ZpNWNDTWgwYzQrdDhzUUc5R2pmRXAxNmpjRFNWOTdCNlJMWGlWTGVnRmtqT3FIN3NHbjRidE42ekpwd0sxcjNtSUFTTzhXdWorZWpSWXMrT0dtbW9KVERJNE5TTUd6Mlc2NzlxdmVoUzRzV2FObTZFMmJNbTQ5Rjg1L0Uzbnd6K0xvVEdOQytKVVkvK0N3MnJGK04wVDNiWXRUanJuMU9yRnVHbGkzYVl2N3JLL0hLMGpsSWlvbEMxclFuTUgvK2ZFeWZQaDNqeG8zRDRNR0RrWm1aaVk0ZE95STFOUlVhQlFGUmFoQVpHVWxDUWtLSVZxc2xhcldhVVNxVkN1S3lLYXBYcmZsMjhPSUhSLy9Zc20wZmVxeWFvNDdTUGJSclNnczY5cUdsZFAzYWxYUll0MVRhZXNUamxGSktUNnhiUmx1MmFFdWZlZXQvZE8ybksyaW5sSlowMmJvVDlFYklxbFdyNk50dnZ5MjkvL0hISDJuLy92MXBXVmtaZFRnYzlNNDc3NlJyMTY2bGxGSzZZTUVDK3E5Ly9Zc0tna0FQSHo1TWUvVG9RYTFXSzMzOTlkZnBmLzd6SDNya3lCRTZkT2hReW5FYzdkV3JGNjJ0cmFVSER4NmtJMGVPcEhxOW51cjFlanBreUJCNjh1VEp5NDVCcDlQUjd0MjcwN05uejFLZTUrbkNoUXZwRzIrOFFTbWw5UDMzMzZlZmYvNDVwWlRTUTRjTzBYNzkra243bVV3bWFqUWFhWHA2T2pVWUROTG41OCtmcC8zNjlhTVdpNFZhTEJZNlpjb1Urc3N2djF4MkREVTFOYlIzNzk2VTR6aEtLYVZMbGl5aGE5YXNvWlJTK3ZycnI5T25uMzZhT3AxT2V2YnNXWnFabVVudGRqczFHQXcwSlNXRkhqaHdnRkpLNllvVksrajgrZk9sZVowNWM2WjAvR0hEaHRIQ3dzS3J1a1pEaGd5aHVibTVEVDQvY2VJRUhUTm16RlZmNjQ4Ly9wamVkdHR0VktmVFViUFpUQWNPSEVoLy9mVlhTaW1sTnB1TkdvMUdPbVBHRFByamp6OVNudWQvS2l3c25BQ2dHWUFtQUtJSUlXRUFnZ0FFTUF5akpvUW9DU0VLdFZyTkJBUUVFQUFrTEN5TXhNZkhJems1R1FFQkFXamV2RGt5TXpNeGVQQmdqQnMzRHRPblQ4ZjgrZlB4MEVNUFllREFnVGgrL0RoWWxnV2xGR1BHak1IT25UdEJLY1c1YytmUXQyOWZPSjFPRDh3WU4yNGN5c3JLR21ESnA1OStpdWVmZjk3ak03ZXFqUFQwZEJnTUJ1bnpqei8rR0dQSGpvWFpiRVpWVlJVeU16T1JuWjN0c2UrcVZhdnc5dHR2Uys5UG56Nk5ybDI3b3F5c0RGYXJGUk1uVG15Y3NjV2xqOGJXcmQvanZxd08yUC9OZXhnemVBZysrZmtjaE9JRDJISFdnSWtQUG8zYlI0N0Jvc2Z1Qmx0OUZMdFAxbDhWQ3huMTZISjgrT295dkxqc1pmUnBHWVNDZzd0UmFHVXdmZDRpakI0ekdXKzgrd0ZtanV2dGVnSjh2d0UwTEFGOHhSbmtGQmtRb0hEaTlQR2pVcHlhZDBpSHpXWURUeWtnOEI2cXA4dnJLVEFVVU14K1k5UERVeWVPWDdsay9zeWhHbnNadHUzT1JmNnZoMURQQitEQnA1L0JtSEgzWUdDWGhFdFBvZTgzQUJGSlNGQVlVV1VMUkdJRWcxMjc5dDBReHJaMjdWcU1HemZPNDdNMmJkb2dJU0VCYXJVYTNicDFRMFZGQlFEZ3A1OSt3b3daTTBBSVFmZnUzWkdjbkl3VEowNEFnRlIxTlNRa0JFcWxFa0ZCUVdCWkZwczNiMGFUSmsyd2R1MWFyRjI3RmpFeE1UaDA2TkJseDNENDhHRjA2TkFCYmRxMEFjTXdXTEJnQWNhUEh3OEFtREZqQmhJU0V2RDIyMjlqNTg2ZHFLbXBrZllUZjk4N0lEUXVMZzRxbFFydnZQTU9UcDgralpVclZ6WlFNYnpIRUIwZGpTNWR1bUQzN3QxZ1dSYTdkKy9HcUZHdVpKQWZmdmdCSVNFaFdMbHlKUTRjT0FDR1lYRCsvSGxwREQxNzlnUUFaR1Jrb0tyS3BXa01IRGdRT1RrNTBPbDBPSG55Sk9MaTRxNUhXNzlybHU3ZHV5TThQQnhCUVVGbzM3NDlLaXNyQVFBQkFRRUlDUW1SNnFzeERETzRXYk5tYjN6enpUZFQzS3BwZ0tpYUFoQlZVd1VBUnN5ZUlZUVF0eU9OMk8xMjhEd1B1OTB1cWFaNnZSNTFkWFZTWUx2UmFFUnViaTVPblRvRnU5Mk9HVE5tNFBQUFB3Y0FmUFhWVjdqbm5uczg2cjNsNXVZaUpDUUVDUWtKVjNXdWphMEhBT2pjdVRPQ2dvSVFHeHVMWWNPR2VURC94dTZMaElRRUpDUWtRS3ZWNHE2Nzdtb00yRmhzVy9NWjloY3llR3p4TW16YnN4ZTNkMURobGRmZWQzbFFBR2cwcnVhdEt2Y3J4L0x1ZlFYSUdHc0RDZmVLbDJFNUJ3QUZOQnFYZzdaRmVoOWs5ZTNzb3B3bUN6aWJIaGZPbjBkaFlSSENrMUlSRzZLOFhQY29Ra0VJcFlKVU84M3A1QmllNTVuaXZPMEp2VnEyZUMxQXEzMERRSUpTbzRZQ0FNZXo0Snc4QUFXVW1vWk9ZcnZORGlYRG82YXlFcFdWMWVpU05RVlp2ZHJlRUZ0aWVIajRaYXVoTWd3anFRc2N4MEdqMFVqZmFiWGFLNm8vTnBzTm9hR2gwaloyN0ZqMDZkUG5zbVBnT0E1cXRWcDZIeElTSXBYRmVlMjExN0IrL1hyMDZORURJMGFNdUtyekRBc0x3OGFORzVHYW1vcHZ2dmtHdzRZTlExbFoyUlhuWWVyVXFmajIyMit4ZmZ0MkRCbzBTQW95dGRsc2lJeU1sTTVwN3R5NVB1ZFFQbmRLcFJMang0L0g5OTkvajNYcjF1R3V1Kzc2MDIxM2hCQmNJWTg3UWExV3Z6Uno1c3huTm0zYWxDaXFwaktBRTRHTmNkdVRJUWdDY1FmbkVrRVFpTVBoOEhBcTZQVjY2ZDZ5V0N3b0xDeVV3SzF2Mzc3SXo4L0h1WFBuc0czYk5reWFOTWxqTUd2V3JNR0VDUk91K3p5bzFXcklTNnRkelgyaDBXZ2FBellsanYrNEVrOHRlQlo3VCthanRMUVFlclByeGxFMDY0Wk8wU3I4c081L0tDd3R4YW92TndDQkxkR3RZd3ppWStJQTFPR1hnOW5JUDdrTEY2cjVLdzY4WlpjTVJDaFliUHBtSGNwSzgvRFl1RXowdnVkRm1Fd21ORW0rQlpiYUtnaWg4YmlsWlRNb0JSWUJha1dET0RWM3hWdkNzaXdVaEFCVUlDekxFWjduR1VHZ3pOQ0hYKzNYcEhubWg1bnR3MmJ1MnJnRzU0cEw4ZTJxTmJDUUVHUjBhWTFiT25SRUlDeFl2Mm9kQ3M4ZnhjbThPbWw4ZlhyM0JLZlhJU0VqQ3c4L09BMXQ0c09Ra2RIbEQxL1lhOWFzd1IxMzNIRk5UL3N0VzdaSWJ2YnM3R3gwN05qeGl2dFVWVlZoekpneG1EQmhBbHEzYnUyeFlIeU5vWFBuempoNjlDajBlcjMwUHg5ODhJSGt0UjAzYmh5NmQrOHVxUWxYa2wyN2R1SGxsMS9HYmJmZGhsZGVlUVZ0MjdiRndZTUhyemdQM2J0M1IybHBLVmF1WElrcFU2WkluMmRrWklCbFdVeVlNQUVUSmt4QVFrTENWUVdmVHBvMENldlhyOGZodzRldnlYaXUxV3BSVjFmM3A0QmZlbm82amg0OU9xTlhyMTR2RlJRVTlQRGxXQUNnRUFTQkVkbWI2RFdsbE1LWFUwSE0xckhaYkZJSi9ieThQSnc5ZXhhVEprM0NvNDgraXFGRGgzcFVDZUU0RHJ0MjdjTFFvVU92eTNrVkZoYUNVZ3FIdzRIZHUzZWpRNGNPVjF3UE9wMU9zamYvOU5OUGpjV3hNWGpzcGYraWV2NUN6QmczQkJ3Rm9sdDJ3Y3N2ejRGUzNRVExYdjhYWnM1N0hnUDdyWUk2ckNtZWVlVnRwSVVDR0h3blJxVjlnK1VQMzRaUFcvZERpNlpoMEYzaEpEVEovZkhLMGdmeDFMOFhvZSs3SEtLYWQ4VnpDNmZnOU9uVGlPNDRCSm10TCtEbmJ6NEQ2K1NoMElhZ1pZb0dBWEI2eDZoSjhXbFFLQWdSQkNJSVBBSEFESjc0eU5UWC8rL2had2pScGl4NCtYVVVQVElQSTI3dEIwVkFCTzViK2hxR3R0SUNHSW9sRHc3QnN4OCtqUjlYeDZKOXdxV3FvOE1mZmg2UGx6NkJOeDZmZ3VVOEVOMnFLMTdxUHhsQStCKzJZRm1XeFo0OWV5U0QrTlhJMHFWTE1YUG1UR3phdEFrVkZSVll1blRwRlcvbzhlUEg0L1RwMDhqS3lrSk1UQXdVQ29YazVtOXNEQWtKQ1pnN2R5NG1USmlBbUpnWUFKRGM3ak5tek1EQ2hRc1JHeHVMMk5oWUNJSUFnOEdBc0xBd2pCczNEdlgxOVRDWlRCZzFhaFNDZ29Ld1pjc1daR1ptWXZYcTFSZ3pab3pyd2FsUVNEZkk1ZWFCRUlLSkV5ZGl5NVl0U0VtNVZOZHo0Y0tGZVBUUlJ6RjI3RmhRU3RHdVhidXI4cWFLUFFOYXRXb0ZwZkxxd3p1blRwMktPWFBtb0huejVoZzllalNtVHAxNjNkZkQ4ODgvangwN2RxQzJ0aGJIamgzRFN5KzloUGZmZngrdFc3ZkcxS2xUTVdyVXFJRnhjWEhOQmcwYTlOYlBQLys4MFoyR0phL3N6QU1BcFZSd3gyNUNvVkJRa1JDbzFXb2FIeDhQczltTVU2ZE9TV3p4czg4K1EvdjI3VEZ5NUVnSWdvQTJiZHFndUxnWTk5NTdyOGY0ZnY3NVovVHQyOWVEeVFQQWhnMGI4TnBycjhGa01zSHBkT0xubjMvR0k0ODhna21USmpXNkhrU1FHanQyTFBSNlBYcjA2Q0daRHk2M0hod09CKzY5OTE0cDlPYUtaWXRZaHdsV0I0UHdVSy9PMDRJVDlYbzlna09qb2ZaWUJ3TDA5WG9FUjBaZVUvU3Z3RHFnTjlzQUJqaWJrK01SemxGZFhZWGFlaDBjTmx1RGJBSTVxTW15Q0pocGQwOVZMUC9QZnhkRWh3Y3Rna2Nnc210ODJ1QndhTlNlaE5WbTBRUEtZR2g5cUtTc3d3S2pqVWQwK0I5ZmF2bnMyYk00Y3VRSTdyNzc3bXZldDY2dURxR2hvVkNwVkZlOWo4MW1BOGR4SG1Xa3J6UUdsbVZoTnBzUkdSblpZSUhaYkRhRWgxOGI4SnRNSmhCQ0VCd2NmRjNtd1dBd1FLMVcvKzQ4eUNsVHBqU0l1OXU0Y2FPSDUwL3NrWEdsY3k0dUxzWWpqenppOFZuNzl1MnhZc1dLM3p5K21wb2FhTFZhTUF5RGYvM3JYODdFeE1UWDNudnZ2WTlPblRwbGQ2ZGtjZTdONmE3ekpoQkNCSGtoUzQxR0E3VmFUY1hhYm1McEk3Rm9aVlJVRk9MajQyRTBHcEdUazROVnExWjVuT3VubjM2S1BuMzZvRldyNnhmUUxpYnJ5ME5CR2xzUDJkblpXTGh3SWI3Nzdqdm85WHBFUmtiZVhQWFlkRG9kY3J4QVRYUVNpTTFXNU4yalpLQW1yNXZHVkZaV0prVkZSVDFEQ0prQnYvamxieXFDSU9EdXUrOUcwNlpOd2ZNOFRwMDZoYSsvL2hvaElTRXJkK3pZOGVIdzRjTkxDU0VPTDNEanZjQk5LajB1Z3B1OEc1WUlicVdscFNnb0tNQ3NXYlBRcDA4ZnRHL2YvcWJKTHhXQmJjT0dEWmNZL2MwQ2JISlFLeWtwOFFBMWVjTVZIMHhOVEkxaUJFRWdKcE9wbTFhclhlaXZtZWFYZndxNFpXZG53MjYzSXowOVhYSWc4VHkvSlRjMzk3MTI3ZHFkQnVDUXNUZW51N2tNNys2eElJaU5ZK1RnSnBZY0Y3MlhZZzIzbEpRVXFXRGx6UUp1VnFzVmhZV0ZIa0hRTndXdzZmVjZaR2RuK3dRMWthbjVVajlsV1FTRVVzclliTFpoYXJWNkVmeVZiZjNpRjFCS0Q1ZVhsNytUbUppNDF3dmNPRGU0U2N6TlhYNjhBYmcxcHBhSzRKYVdsbmJOWm9jYklYOTZFcnpCWVBESjFIUTZuYzhLSFY3cXB3UnFEb2Rqc2xLcFhBU2dsWDlKKzhVdnJrcTlDUWtKa2JXMXRXOUZSMGR2cHBReXhCVTRSaWlsSE54T0JjR2RVdUFtT1JRdXh3UDFBWlMrZmdOcGFXbS9LUzNxYnd0c0pwUEpwMDFOQkxYTHFaOXlVR05aOW1HRlFyRVlRSXgvT2Z2Rkx4N0FreElWRmJWWXI5Y0hoNGVIZitNdWQwUzhOVFlSM0p4T3AwOXdhd3pVeEsxRGh3NDNWYU1ZNXMvNllZdkYwcWlqd0VjVFk5SVlxSEVjOTVSQ29WanVCN1hHN1EvMzNYZmZUVFdtd3NKQy9OVWFkYi84OHN2bzNiczNoZzRkS3FVYVRaNDhHWk1uVDhiMDZkT3YrKy90Mzc4ZjE3SG5iMHhZV05nU3M5bDhMd0N0TEpoWG5xa2daU2s0blU3aXJscEpSN1FBQUNBQVNVUkJWTk1tSmREYmJEYVBRTjY2dWpvcGVUNC9QeDg1T1Rtd1dDdzRlL2FzbE5IaExmUG16Wk15WlJxVHpaczNTeGtPZnpsZ3M5dnQxK0w5SlBJT1VxSk43WjEzM2xGeEhQY3N3ekF2d3BWUzRoY2Z3dk04amh3NWNsT042Y1VYWDRURllwSGVHNDFHeko0OSs2YWR3NU1uVDJMTGxpMzQ2YWVmc0czYk5uVHExQWtxbFFxdnZQSUtubnZ1dWVzK3Z6VTFOVmkrZlBrMWhlejRrb3NYTCtLNTU1NFQzd1lFQlFVdHJLeXNmRWlqMFFRMUFtNEtRUkNJdlB5UnU5S3VCRzRXaXdWR283RlJjSHZpaVNjOFVxM2tjdXJVS2FsZ1FtTlNXVmtwRlNmNFM2bWlITWRkMXZ2cFpWTVRjejRoTDhmeTY2Ky9CcWVucHk5aUdPYkp2eU1ZSFRod0FNMmJOOGYrL2ZzUkZ4ZUh2bjM3U2psMVpyTVoyN2R2QndEMDZkTUgwZEhSMG43bDVlWFl0MjhmSWlNak1YRGdRSjlWRms2ZE9nV05SaU1WRWF5dHJjWE9uVHNSR0JpSWZ2MzZlYWdUUjQ4ZVJWNWVIdnIxNjRmYzNGemNldXV0a2xxeWI5OCtsSmVYbzNmdjNraE12TlFPb3F5c0RQdjI3VU5vYUNnR0Roem9rZVlGdUxJaWFtcHEwTDU5ZXdCQVRrNE96cDQ5aTkyN2QyUGJ0bTBBZ0w1OSswcnhaOFhGeFRodzRBQ1NrNVBScTFjdkNRZ3ZYTGlBbUpnWTdOKy9INm1wcWVqU3Bjc1Z4MEFweGQ2OWUxRlJVWUdlUFhzaU9UbFoyaWNuSndkUlVWRW9MUzFGYm00dSt2WHJoOFRFUk96Y3VST0hEaDFDUkVRRTl1M2JCN1ZhTGMxRDA2Wk5ZVEtaR21XbGh3NGRRbEpTRW5yMTZnVkNDSTRkTzRiVTFGUm90VnFjUG4wYW5UcDF3b1VMRnhBWUdPaVJZN2x1M1RxTUhUdjJpdXZoK1BIamlJNk9SbEpTRWdCSWViT0RCZzNDc1dQSGNQVG9VZXphdFVzS2NCMDZkQ2kwV3UzYzFxMWJxNGNORy9iUnl5Ky9ySGVybEtMZHplbFdTM2wzcVh4UkxZWEQ0U0NDSUZDajBRaTFXbzNFeEVRUFZaUVFncEtTRWdRRUJIalkyOFRyNTZ0czA5R2pSNUdibTR0dTNicDV4TUFKZ29BZE8zYWd2cjRlUTRZTWtZNzN5eSsvb0UyYk5nZ0xDd1BMc2podzRJQjBMZXgyTzdadDJ3YWxVb2wyN2RyZFdNWkdLZlVBTlhreXUzZlRGVmx2QWc5UU8zLytmRVI2ZXZyU3Z5dW9BYTR5T2s4KytTVDBlajJXTFZzbVpRUG9kRHJjZHR0dEtDMHRSV0ZoSVVhUEhvM2EybG9Bd0xGanh6QnAwaVRvOVhwczNyd1pEenp3UUlQamJ0bXlCZlBuejVmQThPTEZpNWc0Y2FLVS9EMW16QmdwTFdYMTZ0VjQrdW1uWVRRYXNXalJJano5OU5NZUtzWFhYMzhObzlHSUtWT21JRHM3R3dCdy9QaHgzSDMzM1RBYWpkaTVjeWNtVDU3Y3dEYXpidDA2andUbXVybzZsSmFXUWhBRUZCVVZvYWlvU0xUellPZk9uWGpnZ1FkZ3NWanc3cnZ2U29Hc3BhV2xtRFZyRnQ1NDR3M29kRHJNbWpVTHUzYnR1dUlZNXMyYmh5KysrQUlta3dsVHAwNzFLRlcwYXRVcVRKOCtIZSsrK3k1eWNuSlFYKzhxNmxCU1VvS2FtaHJZYkRZVUZSV2h0TFQwaXRkdjU4NmR1TysrKzJDeFdQRFJSeDlKa2ZJYk4yN0VrU05IY1Bic1dUenh4Qk1BZ1BmZmY5OURQYU9VNHZ2dnY4ZnR0OTkreGZWdy92eDVQUC84ODlML2JkMjZGWjkvL2prWWhrRjFkVFVxS3l2QnNxdzByNkt3TER2TDRYQThQSEhpeEdnQVl2RktGUUNsSUFnS0FBcEtLV0ZaVmxKTFRTWVRxcXFxWUxGWVVGMWRqWnljSEEvbVZsVlZoYTFidDZKZHUzYkl5Y2tCcFJSbnpwekIrUEhqVVYxZGpjOC8vOXhqN2w1OTlWVzgvdnJyc0ZxdGVPU1JSN0JqeHc3cHV3MGJOdURvMGFNNGZmbzB4b3daSTdINzVjdVhTeVlNbzlHSUo1OThVZ0xDcVZPbll2djI3Y2pQejNkbGZ6Uld0dWlQMkU2ZlBvMXZ2LzBXcjd6eUN1Yk5tNGVwVTZkaTVNaVI2Tk9uRHpwMTZvVFUxRlFrSlNVaE5qWVc0ZUhoSkNnb2lHZzBHa2FwVkNvVUNvV3lzTEF3VGhDRU4rbmZYSVlQSDA2enM3TXBwWlNXbHBiU0RoMDZVS2ZUU1d0cmErbXhZOGNvcFpTeUxFdG56SmhCdDJ6WlFpbWw5UDc3NzZlYk5tMmk3dExRZE1HQ0JWU24wMUdqMFVqVDB0TG8xcTFiNlpBaFEyaFZWWlgwTzZXbHBmVE1tVFBTOGJLeXN1anAwNmNwcFpUMjc5OWZHa041ZVRudDNyMDdwWlRTNDhlUDB4RWpSbEJYTldwS3Yvbm1HL3JVVTA5UlNpbjk5Tk5QNmV6WnM2blQ2WlMrczlsczB1OEpna0N6c3JLb1RxZnpPTithbWhyYXRXdlhCdk13ZVBCZ2FRd1dpNFYyN3R5Wk9od09tcE9UUXdjTkdpU040WU1QUHFEUFBmZmNaY2R3NXN3WmV1dXR0MUt4UitldVhidm8rUEhqcGQrYVAzOCtmZjc1NTMxZWowMmJOdEZaczJiNS9NNW9OTktPSFR0NmZEWnExQ2g2K1BCaFNpbWxITWZSbmoxNzB2ejhmUHJkZDkvUmQ5NTVoMzc0NFlkMDRNQ0J0TEt5a280ZE85WmpqbzRjT2RMZ3R4cGJEM2E3bldaa1pORGk0bUpLS2FWMzNua24zYkZqeDJWTEp4a01CcHFXbGtZNWpxTjJ1LzJEMmJOblp3Qm9BU0FCUUJTQVVFSklJTU13R2dCS2htRVVHbzJHSVlTUXdNQkFFaHNiaTRTRUJEQU1nMDZkT3FGUG56NFlPWElrSmsrZWpDWk5tbURGaWhYNDl0dHZwUnA1SDMvOHNYVC85K3ZYRC9uNSthaXNyRVJHUmdic2Rqc29wVGg0OENDbVRKa2lsUzFhdEdpUnRNLzA2ZE94ZnYxNlVFb3hkdXhZbkRoeEFwUlMxTlRVb0d2WHJxQ1U0cGRmZnNHSUVTTWdzc3kzM25ycnhxbWk1ODZkdzRVTEZ5VDFVOTd6VTdTcE5SSjhLekcxNU9Ua1JZU1EyZmdIaUppdjJMUnBVekFNQTZQUmlKQ1FFS3hldlJvclZxeEFhR2dvY25KeXBDZDdZV0docEY0U1F2RHZmLzhiZ012emJMZmJNWC8rZlBUczJWUEs3d1JjcFdPZWYvNTVXQ3dXQkFjSG82S2lBanpQUzZ4SVBKN2MxcE9ibTR2eThuS01IRGxTc3VHMWJldXFkako1OG1RVUZSVmgyTEJoU0UxTnhiUnAweEFRY01uOGVlVElFYVNrcEZ4VjNCUFA4OGpQejhkVFR6M2xNVjR4K1Y2cjFVcnFlWEJ3c0ZUSnBMRXhGQlFVb0czYnRwSjZucGFXSnRYakYrVjZwUVJkdkhoUlVyMlVTaVhhdEdtRHdzSkNwS2VuWStmT25YQTRISmc2ZFNvT0hqd0lwVkxwTVVlTkpYbjdXZzhSRVJHWU9uVXFWcTFhaGNtVEo2T21wZ2I5Ky9lL3FyWGwzaDRZTjI0Yzl1N2QrOEdKRXlmcXZiVXJkODRvTCthWDhqeFBXWllWKy8vQlpyTkphbWg1ZVRsaVkyTlJYVjBObFVvRmhVS0IwNmRQUytXazVPc29QejhmRm90RlVyY0ZRZkJZRTNMelJXcHFxa2UxRjE5U1ZsYm0wU05WcFZMZEdHREx6OC8zQ1dvK0tuUTBDT2tRYldvdFdyVDR4NENhWEl4R0kxaVdSWEJ3TUxaczJRS2owWWd2djNSVkpYNzAwVWVsLzR1T2prWkZSWVdVRUw1bnp4NTA3OTdkNVNGaUdHemV2Qm56NXMzRGUrKzlKK1Vycmw2OUdvbUppVml5WkFrQWVLZy9VVkZScUt5czlMQ2ZpWiszYmR2V1o0WFp2THc4UFB6d3czajIyV2R4N05neFBQamdnOWkyYlJ1aW9xSXVlOU1TUWp5cXN3S0FRcUZBZUhnNFB2endRNmtza2lpaSt1MUxHaHREVEV5TXh3MVNWbGJtQWZMWFU4VGZFcHZ1aUwvVnZIbHpWRlpXSWpBd0VJTUdEY0xpeFlzOUdxWllMQlljUDM1Y2VpaGRhVDBBcmlUOEVTTkdnR1ZaVEpzMnpjT3U2bXRldlVXdFZqL1FwazBiWWRTb1VlKy8rT0tMYUF6Y1JBRGlPRTRLQlJFZEFZUVFYTHg0RWQyNmRVTnRiUzBVQ29Ya1FEaCsvRGg2OSs0dEhVOWNROUhSMGRpMGFaTlBPN0I4ek9YbDVjak16QlRIS2ozQTVDYU9xS2lvQnVyOEh3NXNKU1VsVXRNVmI2Ym1iVlB6RmRMeHpqdnZxTnlPZ2puL0pFQjc3NzMzTUdYS0ZLeGF0UW9qUm95QVNxVkNiR3lzVkErcnVMZ1l1M2J0a2tyc1RKczJUZktrNWVibTRxdXZ2c0tHRFJ2Z2REcWhWcXVSa0pDQXQ5NTZDN2ZmZmp2YXRXdUgvdjM3SXlZbUJsdTNic1dPSFR0dzRzUUpuRGx6UnJLeFRabzBDUXNYTHNTRER6N29rWVBYdDI5ZnZQTEtLM2oxMVZmUnYzOS83Tml4QTBsSlNaZzhlVEtPSERtQ2JkdTJZYzZjT2FpcHFZRmFyWmFldm1MbGlPWExsemM0MS9Ed2NDZ1VDbnoxMVZkbzBxUUoyclZyaDVpWUdEend3QU9ZTTJjTzVzMmJoN3E2T216WnNnWC8vZTkvTHp0dmpZMmhhOWV1SUlUZzdiZmZSa1pHQnBZdFc5YWdTc1cxZXBzM2JOZ0F1OTBPanVQdzNYZmZJVFEwRklNR0RjTDk5OStQSlV1VzRNa25uOFRldlhzUkZoYUd0TFEwRUVJUUdCaUl0bTNiSWprNUdVVkZSUjc5QURadjNvemh3NGY3dk5sOXJRZkExVTFxOE9EQjJMQmhBL2J0OHl5QW1wU1VoT0xpWXZ6d3d3OElDQWlRQU1KYkZBckZRd3NYTG5UdTNMbnovZjM3OXpld2k3cmY4NElnU0hGdWxGTGljRGdvSVFUeXB1TjZ2VjRDdHRUVVZMejc3cnVJakl5RXpXWkRjWEV4QUtCMTY5Wm8zcnc1RmkxYWhQSGp4K1BZc1dPd1dDeVlPM2V1TkE5ZHUzYUZ5V1RDL3YzN3NYanhZZ0JBMTY1ZDhmbm5uOFBoY09DSEgzNlF4cGVabVluLys3Ly93M3Z2dllkV3JWcGh6Wm8xVUN4ZHV2UVB1em1ycXFwd3p0MmpRTjdNMkdBd2VCU0k5RTZUa3NlcHJWKy9mZ25ETUF2K1NhRDJ4UmRmWU5Tb1VUaDQ4Q0JhdEdpQnVYUG5RcVZTSVRFeEVZbUppZGkzYngvaTQrTXhZY0lFUkVWRklURXhFYTFhdFVKU1VwS3JGcFZTaVJkZWVFSHlMQ29VQ25UdjNoMUJRVUhvMGFNSHpwdzVnL1QwZExScjF3NHFsUXFIRGgxQ1dsb2FoZzRkaW9TRUJNVEV4Q0FqSXdOV3F4VkhqaHhCdDI3ZGNPalFJVXlmUGgwS2hRSzMzWFliY25OemNmVG9VYlJwMHdZVEprd0F3ekJJVDA5SFVGQVFkdTdjQ1l2RmdzV0xGMHU5S3RldFc0Y21UWnBJSGpxNU1BeURYcjE2WWQrK2ZhaW9xRUJhV2hwQ1EwT2xpcktpK2pacjFpeUpxUVFHQm5yVTZZcUxpME9MRmkwYUhRTWhCQ05IamtSMmRqYU9IeitPaVJNbk5tZ3kwckpsUzhUR3h2cThKbEZSVVEwOGQ5dTNiNGZGWWtHM2J0MWdNQmpnZERxUm5wNk85UFIwaElXRllmdjI3WWlLaXNLenp6NHJsZlNKaUloQXQyN2RFQjBkamVqb2FHUm1aa3FlNk9lZWV3NlBQLzU0Z3lqK3h0YURuRHcwYjk0Y0F3WU04TmhQcTlXaVk4ZU8yTE5uRDNRNkhUcDE2b1NBZ0FBb0ZBcDA2OVpOK3Ird3NEQjA3Tmd4NDg0Nzc3Uy85TkpMcDJXTVQwUTRLcXFjY2lhblZDcUo2TlFLQ1FueHFLUkNLVVZrWkNTYU5XdUdFeWRPSUNrcENWbFpXVWhMUzROV3EwVldWaGFxcTZ0eDhPQkJ4TWJHNHQ1Nzc1WFU3ZDY5ZXlNdkx3OWxaV1Y0OXRsbkplOTF0MjdkVUZwYWlweWNIRXlhTkFteHNiSG8ycldyVk9ycThPSERxS3FxUW54OC9CK1hLNnJUNlpDZG5lM0Ixcnl6Q3J6RE91UnhhbUx3clR0T3pTOSs4Y3NORUxQWi9PK1FrSkQvQWJDNUs0TTRBTENRVlFZUmMwdVZTaVYxTTJJcTVwV0tTZk1SRVJGU1htbHljakpTVWxLUWxwWjJ3NUxtL3hCVjFHYXpTUjNhS3lvcVVGdGJLN1hIdTV6NnlmTTg1R2xTRE1NczlpODF2L2pseGtsd2NQQmNuVTVuallpSVdPZG1aaFR1V0RhdjlDdnFJblhFbGFORkNHVVlCZ3pEZ0JBQzhXK2xVZ21WU2dWM2NqMDZkdXo0dTJ2ay9TbkFSaW5GK2ZQblVWaFk2S0YreXF0MGlCNVFlWkZJdDZ1V0VSUGEzYm1mL293Q3Yvamx4a3BBZUhqNFkxVlZWWmE0dUxpdDFKVmM2bTF2Zzd1SGd1QjBPa1hQcUFoeUlJUklkalp4RXdGT285RWdQVDNkWnhPWG14clk1S0FtTmpJV0hRVVdpK1d5bFc4RlFTQTJtMjJZdTBxSFAvZlRMMzc1Y3lRbUppWm1aa0ZCZ2JGRml4WUh2SmdiQlVBRlFSQzlvNUFCR2hHTFY0cWJITlJFWUFzSUNKQ2FLdjhsZ0syd3NCQVhMMTVFV1ZtWlQwZUIzVzV2a0ZVZ0MrdGdUQ1pUTjNjOU5YL3BJYi80NVU4VVFraEtjbkx5UThlUEg5ZDM3dHc1eDgzY1JKV1VpbjBSUk5ZR21ZTkJWRVc5R1p0U3FZUmFyWVphclpiNm12NVJjdDI4b2xWVlZaSmRyYnk4M0tkZHJURVBxRmpPT3pRMDlDVkN5RUQvc3ZLTFgyNEtjR3NhRXhNVDJxbFRwOU5mZi8yMXpRMWVrcWNVUG1xMnVWVlM4Vy81NTVCL0xvYSt5SHRjWEZmR2RqMWFoNW5OWnB3NWMwWmlhMklPcUhlYlBJZkQ0ZUVCRmRYUHUrNjZTd0hnbWZyNmVuODViNy80NWVhUzRabVptVFVwS1NtdlhiaHdRWkF4TjFmNmdmc1A5eXZjV1FuRW5VSUgrZVowT3FYTlhUVUU3ZHExKzBQQVRmbDdhejVSU3BHWGw0Zmk0bUpVVkZRMHNLczFWdExiN1N3Z0FKaGx5NVl0Y0RxZE42VHhpdGhUMGJ2cXhKWEVZckVnTUZBTFFoai9VdmZMUDQyNTNiMTE2OWJxbEpTVXo5MDRKc2pCalJBUnh3VEs4enpoT0k2NmFSc1Z2YVJ5RmRYYlk5cStmZnZyN2t4UUJnVUYvcTRENU9YbG9iYTJCbnE5RG1hekNWYXJCWGE3cEhMS0tuUTRpUmlkTFBlQTF0YldUSFU3QzI2SThMd1RUaWVQYXoxdm5VNkh5TWlJYStvNWFUQVlFUklTN0RPUzNDOSsrU3RKVUZEZ25QejhDNVczM0pLeUZZQTNjNVArVHhBRWdlZDVPSjFPS0JRTTRUaU9LcFZLaWFIWjdUWllyUmFZelNibzlUclUxdGFnb3FMOHVyYnVBd0RsdGR5bzNsSldWb2F5c25KVVY5ZWd2bDRIZzhFSXM3bEJqd0kzdUVtZ1J0eFVsZFRXMXZRTkNBaDRCamV3THB6cmFTSGd0NXkzYUFDOVdqR1pUQWdMQzhYdm1XTy8rT1VtRVdWOGZQekR4NDhmcSt6Y3Vjc3hYOHpOL1VvRVFRRFA4NVRqbkdBWXppdmtRd21WU2cyMVdnT05KZ0JhYlNDQ2dvSVJHaHJhSUNmNGR3MjJzV3FYVjVMUzhqSWNQM3NCT25kR2djRndLYW5kYkxiQWJMV0J2UVJzSWxzanZDQVFLbENtcUtnd0lTZ29hRDZBbEJ0THF4a3B6dVphVlc1NWN1OGZ0YzhmSWZwamU2Qm9sb0dRcUJzVEZrZzVPNncxOVZCR1JFT2pWUU53b21Mckp0aHNnS3BwR3lSbHRQbGIzT20vWlY1dGhUbXdPS01SblJMWHlIL1lVYlhqTUNKdjdRZVZtK2c3aWs2ajdGZytBSUxZUWFNUkhNcGN4N0ZFSURvbDRXcDN1YVYxNjliM3IxeTVzbnphdEdubEFNUkFYZkdWaXA1U251ZmhEdHFWUWtBdWVVY3Q3dEFQdGJzVGxoYkJ3VUVJQ3d1N3BxWXdqdEpjR0l4YXhMWkxhbkJPeW10V2s2Z1ZpejdZZ1AxRjVTQjFaU2l2cVVmWHVGQW9MU1pZTEdhVWxKV2hzTjRNd3RrZ0NFQ0lFc1RwZE1MSmNjVEJPUW5nc3F1OWsydCsrcm40K0NIa1QxaVFsT0thMVVNeFArNWE5dnN0Ky93UlV2TFpjZ1JOL2d4aHZRUC84TitxMi9ZWkRyL3lKYlROV3NCUlZvQm04OTlGbS81SlVBVUV3bkp1Tjg0ZHFFS3p6SFovQzJEN0xmTnFPTEFHaGZwTXhLYU9iSXpuSS8rOXp4RFk5MVpvM0VTZlVXcWcxZ2JnNHRzdlFKMStHMExERzY2bnl1OC9Sc0R0YVFpTDhSeEx3ZnRMb2V6MUdKSTZSRGJZeDN6aVI1UVlPaU0yTmZGYU5KNEI0OGFOSzV3MmJkcGJNdFlteUZnYjRJcHpnMXNscFF6REVJV0NvUTZIQWtxbGF4TXpFZFRxUzIzK2dvT0QwYkZqeDZzbUFwYmptM0gyVkJMaTA1bzFPS2RyQnphbzBUK3REWG8yRFVGaG9ScTc5cFppN3prZHVrY29ZTmJYNFdLZEZZbmhnZUR0UUVWMUhURXJsVkFJVG5DdUNHVkNBTVpTbS8vUXlEZjJ6TXpKVEVYSEc1eGJJRGRpL2pZMWx2bkQ5d0VFVURCdzZxdkEwU0FFUm5oNmpTZ0VFREN3VjVWRDBJUWpNUHpTWXJaWGxZSlhoaUlvS3ZUU0Rxd2RvQVRPdW1vSW1qQUVoSHFtdERpTmRiQVpIUWlNaTRkQzlkdEJtQy9kai8yTFY2TEgybzFvMGl3VUVHeXcxbk5nR0EzaUI0OUFNRk9PL0FLTGova1E0S2lwQnNjcEVKUVFBOCtISFE5YmVRVUVWVEFDWThJOXZxTU9LOHhWdGRERXhFR3QxZHhrOCtyN25BalBnVG9GVUtzQk5nc1FIQmZoT1Q1bkRQcCsreG1JYkk2MHpkcWhlYk4ycVB4b0NZQ0dhNWM2bldqLzNDb1FaY1BQemFjT1FObHFPb2dRRGlpVjBqaW80RVQ4N2ZNUUwvdnMwakE0V01zcndFVEdJU0JRMDJDdDhFYkhmVlVWVllWeFRlTFdBK0I5cWFTQ0lBaUVFT3AwT3NFd0JBNGJKWVF3MUtYQktLRlV1dE9zVkdvRWFOUlFPT3pRS0xVSURRMTEyOXNFMkNyTFFRTWlQYTREQUhDNktuQWtCRVRnUUoyOE5CL3ljMUplcXplaW9xSWVhazZQa3FwSzFOWFZnemhaMk13bVdOUXExT29NSUFvQ2NDNjdtb0pRY0N3TEVFcW9xNlk2c1ZoTS9aVE91dmtjbzBTd2tvQ1FHdzFzbHdEdXR6QzJhOW52dCt3REFPZWZtWWlMdVNvd1NpV0V5b3NJdm4waCtzNGQ3ZnJTZUFycit6K0RwR0V4cUR5bEE4dzZkUGprSnpSTE11TFFmVk5SWjQyRXlsSUdrallSdDc0Nkd5b0dvRTRPaFcvTlI3RktBWHZCR2NUUFhvSHVkN2tLRWhiKzUxR2MzRlNDaU9ZUk1GNm9ROFozR3hFclBkd2RPUG5rVEtnR3pVSzdyQzVYWGhzL3JJZXErd1FrTkhlckU0cEFCTW55UndnVlFIbkJhejZxc1hQd2VMQXhMYUdDQVNaZEtQcXUraENSTVJwUVV6SDJUTGtIOXRDV1VBczYyQk1HSXV0VlYwaysvZTdQc1dmUkp3aHRtd0o3MlVVa1Ava0oyZzFzZnBQTWErUG5CSUdIOGVlVjJIN2dLekNXTXFEMW5SajR4aXdvQVZTdSt5OU9mYmtEK21OMUdIeG1MeUs5c1pyakFIaXVKL2JzejlqOS9FZXduUDRWcmQvZWk3YTNObkdwWk1jMllkL0xYOENTVXdKUzhEaktQOUVpK3JaSDBHVnlQd0JsT0hEM2s5QVZua2ZJN1l2Ui8rbExwZHJ0dVh1d2U5WWlNRTFhZ1MzTVE5eERMNkhiWFgxOXJaV0g5eHpJTHV6WEsrMllTeFdsQWtBRVVTMTF1MGtKejdKdzJ1MVVTUWpzT2gzNDZIZzNhMU9DNk10UTlRdUxXcFVkUWVwZ1hGVCtpSUIzWGtDZ3ZReDV6endITnJRWlVIOFJRVVBub3ZjVDQwQWc0T0pyczNGeVl5SENZalhnV0FkSW0yVDNmSGllMHpVQm05VnFsY0k2YW12cm9LK3Z4dkhDU3NRRmg3cmFjOW5zSUx3QW85RUdvOE5KRkZRQUZTaWhEQWhEd0l4YnNpTDhrVFU3bjZxdjB5ZE1HejhZS2VvL1F4SDliY0QyZS9hN1poRGxuWEJHOXNLb2o1NENNZVhoaDh6eHFKZ3lBZ254U2hldnFEa0ZSZVptakY3ZUVRQUxKNnRFMWVvM1VhWHFoOUhmTDRiQ2FjQ3VJWm5JMnpNTzdRY2tBcndUeXJRc0RINXVDcHpsZTdGK3dCSzBHcmNMRVlIVk9QZmhYbVRzT29XRU9BQk9GandqZjlnSU1KdzZBazE3M1ZXZGcrWENCUVFuOTJ6OGY2a0F3ZWtOYkJIb3MzNDcxQ0V1NnA3M3doU2MrV29YK2o0MkhPWURQNkErYkRER2ZlRXFoTW16ckxSdjRlY2ZvTm5UbjZIVEdOZlRuV2VGSzQ3eHhzMXI0K2NFZ1ljVnlSajc3WnRRQ3dic0hOUUQrWWZ1UUp1ZXNXZ3lmZzZhakIrTEg5cE1kQU9ZMS9pZEhFQTlnVTNUYmpDR2ZqVVlSKzdxQnRCTGF5Mnc2MmdNL1dvMGp0L2ZHNm83MzBMYTBHVFprUkxSNTh1dlVQTCtZN2hRVDJYSHMrTElZM09Rc09CcmRCemNHb0xwUERiM200SDZNWHNSRmRKZ3JUUmhxV0xhc21YL0xsaXc0Qm1CVWdpRVFJRE1ZMG9wQlFVRXlpaWcwQVpRRlp6RVhGdER0YUdCVUNqc0lDd0xjMTAxNG9lUFJHeUxKb2lMamtadFJRVjIvdWRWSkkxOEdjTm5EUUdjT3V3WU9BQ2w0MGFpcWZvUWpuNXlBVU1QYjBWNGtJRGo5dzlHbGZTZzlEeW5hM0xYRlJRVW9Lek1uUU5hWDR1REo4N0FvUXBDc3NJSnM5a09qbVVoY0FLYzFFbkFTNG50RUFRUVFhREVrZHpweWJuOTJ3MnRMem1QVjdjZndhalVFWWhUd1M4K0pMWlBMMWVublpCV2lHa0QxSjhxUjBLOGUzRnFVbkhMNkk2U2FVQ3BCblFuVHlLdTc1TlFBSUF5REUxNnQwZjE2ZFBBQUpmOUpLNm5xNHFwTXFFN29xSXVvajdmam9nT2tZanZHWWtqRDB4RDhwQitpQjg0RFBIdDVmYVdRUFQvNmRRZmZLWU1xamUrZzl6dmRzTm10b090TGtLSXU1eTBOcTBybUZNUFlOY2NCK0o2ZEVYeXlKRUlVcnZucDJjdkhQalhMRGpQamtCVWozNUlIdERsSnBwWFphUG5CQUJSbVpsUU13Q1lNTVIzYjRYNjdHeWc1MDJRY0dQS1JYVzJEWXE5MytEWVFaZHFUcDJsMEJXWUVkWFI1MW9aT0h2MjdMTUxGanp6c1ZzbDViM3NiZFNOMEpUbmVUQXFCZ0xsaWMzT1VxVkNBY0p5Y0FaR1FDQXNqRVlqTkJvTkFtc0tVSCtzQ0h6MGVoeXIvd1VVQU90MG9ENm5CQkdxTTJEU01oQWV4QUJnRU4rM0o2ck9OTGFxcnRaUVdsS0MwdEpTVkZkWG9hNnVGa2RPbkVLSlE0SFdvVXJZN2E1cUhWUVFJSEFjR01KQXpRQzhRQWxBQ2FXVW1mYjhmOFpOSGRybjZaN040ekd5YngrMDV3cXhyZERpUjdCRzZjVmx2dE1HNGZkRmtCRDNsVmVpODBmYjBIdnhkS2k1TXV3ZlB4UjV4MnArODFHRFdqYUhzYUQ0bXZheDdGK0pneCtmUkpkMy9vZVJXN2FnNi8xRDNkb01vRXpzZ2RIN2ZrTEtrRTR3N1ZxRkgyNS9ES3g3djZZUHZJd1JYNjVBZUh3QXppKzVCNGZlMzNIVHpPdmx6c25uWG96aUpsbDBBcUNLUlB6SUxDUm1aU0VwYXlSNmZMb1dUVzhKYkhTdEJBWUd6aW9wS2U0TFZ5VWVEYVZVRFZmNGxvSlNxcUFBUXlsMTl5cmx3UVBnT0JZczY0Q0Q0OEJCZ05WcWhjbGtoc0ZnUUYyZERqcU9BZHVxTFVpWExrakt5a0tYTi8rSGxGN1hGZ3B5VmNCbU1wazhlb0FlUDNVS1o0d1VIYUkwWU8wMjJPME9zS3dEQ2dDVXRST0hLMmFOVUVFZ0JHQ3Fxa3FUUWdQVlR4VFZHbHpUWnplZ3hFSVFIT0NQNzJwTXF2Y2VjQmtyVEhtb09RZEVkcnk4U3o0aXZRT3E5dTRGRHdCT0F5cjI1eUJTVm1HMjZ1QmVsL0czL0ZmVTZWb2hxa1VBQUJhc1JVQlVSaiswbS9jc1V2ckZ3cGd2NytMTkl1Zi81dUQ4OXF0amJRbWp4NEhkdHhwbEJRYjNmV0tGcGRwd3llMFVHUW0yckFST3VYbWpyQXdCcmRJUkhoTUVDQmFVL2JUM2txSGFaQUxDNHBBNGFnSzZ2N1lVeXBKenNMcDNaazBtQk4zU0NTbjNQb3hPRDk0Ry9ibThtMlplTDNkT0FGQzNieDlZd1hXOHlsL3pFTmtoN2VyY2RwSGhzRnloc1ltM0tEVWFzSFgxVi9mUElXMFEyOW9HcXlrY3NkMjZJclpiVjRTM2FBWlZFSFBadGRLMGFkTjd2L2xtVFJNUjNBQkk0QWFBb1FMUHVPeHRUc0lUUUhCeWhHVTVPRGduV040Sm04MFZ0T3NDTnc2MGFTREtDcXRnaXdpSHRuVXFvbHEzaERva0VFR2RPb0JtSDRiZUlnQndvbkx2d2NiUCsyck8xNVhZN2k0WVdWT0tBM21Wc0xGMjdDbTNRV0R0Z0FBa0JDbmhwQ0FxeHRXOUJ0UlZoNDRCbUtpb3VIbVBqdXpkN1lGdk4rTG9rUmpvYTJ1UjBMRW5SaVJwL0FqV2lDaHFEK0xIY1hlQXI3NkkwQWRlY051QkdwZjRPeDlIM0E5MzRvY1JKNkN5bFlHa1BZUlcvUytwbGR6SkxkZzZjU3ZzQldmUWZNbGJjRG1hcXJGcjJGandDYWxRb3g1Rzh5MFlPRlFlaXNHaGN0TTNVTWNPUit2QkhhOThFeVgzUjc5L1Q4SCsyL3Nqb0VVTE9FcUxrZkxTYW5RWTZuSW1hTHFNUkt1V1gyRjl0OTdRZEJtQjBSOHNRdFNnU1ZDL2RSZTJURHdLeGxhUGdPaExEZ0R6d2YvaDU4VmZJcUpOQzlnS3ppQjY1Z0tFdWFmaDdJSTdVSFJSaTVBWU5YUzUxZWo2d2VNM3pid0tsemtuQU5BcXl2SFQ3ZVBBV01yQWRIb010MlJFQWREaDREMzNRRmZ2Z05GUWdRUGpSa09wYllFK2E5K0UyTUs2OWR6NTJQbllPT1F2RFViN2w3OUVxNTRKeUZ2eEtQTDJGTUdhV3cxU2NpOEtYOU1pYmZuL2tOemV0VmZ5UFE5ajF4T1BvT3lURU1UZCtUUXlwZzlHN2RaM2NQanRMV0FyTDhMQi9Zck4rMWVpeVgwTDBYbDhUM1I3ODNYc2ZuQXFTdDVMZ1pLcmhkbVNnQ0UvZll6Z3k2d1ZRa2puVWFORzNRSGd2ektWbEhmVFZJRlNTZ1dua3dvQVZTclZjRHFkNERpT0VKNm5uRUJodDl2ZHdidXV5aDlSUFFlZ2F2dEtiRHorRTNJaUF4QmxEVVBmRGQ4akpyNHZ1ajdRRWo4UEc0N1FXQzE0cW5FMURBUWFuQk9oR21uUWdRQUFJQUJKUkVGVVZMaWlDaW9tdUplV2l1V0k2cURYRzN4MW1YSW51SE9FNXdWQ0tWWFk3YmFKS3BYcWZ5N3JMNGR5Z3dVYWJSQ2l0SCtPY2EyNnVob3N5eUV4OGRxb2JYWjJEbEpUVzBtMTYvK29mUURnN0ZPalllbTZGQjJISllJVGdoRVVGWFRWKzdyQ0VrSVFGTlV3ME5GUlV3a2hJQlRha0VBUDljTldXUWtuVkFpT2o4SDFjT2RRMWdwemVUVlVNZkVJQ0xxS2VCNkJoYW00RXVyWUJHZ0NsVjVmV1dHcHJJVXFJaFlCSVo3SFlnMDFjQmdjQ0V4SWhFSjVrODNyWmM0SkFIaExIV3hteGl2YzQyWVJBZGJ5VWxCTkJJS2lRcTU2clpTVmxjMU5URXphQmNBQ1YybHhPNldVSllSdzdyTGl2SGRKY2ExV2k4REFRQVFGQlNFa0pBVGg0V0dJakl4Q2JHd3M0a0lEMGF4WkszVHVuWW5rcEV0QnVHeGRGWnhNTUFJamduNGJZN05ZTENndExVVlZsYnkybWdrV2k5V2REM29wYmNycGxISkJpU0M0Z25CTFMwdmlWU3JWM0V1UFN4VVNJc1BobDZzVGRVUWMxTmU0VDBCYzQ4R1dtcGg0bjlZSWJYekNkUjAzVVFjaTVGcHFiVEZxaERSUGJ1U3JRSVFrKy81T0hSWURkZGhOT3ErWE9TY0FVQVJGSVRqb1psMTVEQUlUa3E5NXJTUWtKRXo3OU5OUGN1Njc3MzRlQUE5UWliWGhVb0ZLTVplVUtoUUt3cklzZFdVa0tLQlNLV0d4cUtUT1lvR0JXaGhZTzhwS1N4RVZHWW1nSU5lRXFhT3VmUDB1YTJPNzFJVEYxVEpQQkRWWGFXOEhIQTRXSE9lUk1pVjZRZ21sbE1URnhUME9vS3Nmb3E1TkVtZjhIMUp1VGZGUGhIOWUvMUpDQ09sMHh4MTNUSERiMlRTVVF1NUlZRVJja0dVbGdPTTR3bkVzSEE0V2Ryc0ROcHNORm92Vm5TU3ZSMTFkTFNvcks2WFdmVmR0VzJ6c2k4cktTcS95M2lhWXpSYlliRllQcHNheW5GUmpTUkI0S2NIZGFyVU1aUmhtcnY5eVg3dUV0TzdtbndUL3ZQNGxKVEF3OE1IYzNQTkhVMU5iSHdiZ2RERzNTN1kyU0lueVVyb1ZXSmFEUXNGS1NmSTJtd3BtczlxZEpLOURVRkFRUWtOREVSRVJnZmo0K0t2a25ENkU0emd2RmRSVlc4MW1zOEptczd1OW9LeFUybHV1Z2xKS3liMzNUbE5vTkpySC9aZlpMMzc1NTBuTGxpMm5wS1NreUQya0tqZUpZdUFPL3hBRU1RVEVDYWZUU1RpT0E4dUtyTTBPbTgwS3M5a01nOEdJK3ZwNlZGVlZvN1MwRkZkYlA5SW5zTGxDTzZyY0txaEJxck5tczhtWkd1dlJBZHBkSlpOUVNwa1BQdmhnTm9CQi9rdDg3VkpkWFkzUzBqTC9SUGpsTHlzS2hhTC80Y08vakJhQmpWS3FFc0dOVXFxZ2xETHU2dGx5bFZUQ0ZZZkRCVzZYNnJZWjNDcHBGVXBLU240YnNCa01CbmZQZ2hyb2RIcVlUSzYyZVdMTFBIbU5OYWVUSS9JdVV3QklmWDFkcWtLaGVNeC9lZjNpbDMrdVJFUkVUTnV5WlhPU0Y3aEpzVzBBaUNBSU10YkdTYXpOVlpEUzdyYTNXV0F5R2FIVDZWRmJXNFB5OG5JWURJWnJCelo1aHlsWGVXOExyRlpQVURPYXpLZzFtS0EzV1dGak9ibkRnQkU0NjZ4WE51eE1YTEJ1TC9hV21TNGQyR25ITjdzUDRjbXZ0dUhmMjArZ3lrSDlWLzk2aTlPQzJ0UG5YY0drdjFNcVZyK0FnKzl2dSs1RDVDdC94WTdaeXozR2FEaTJIY2VXek1lKzJYTng1cnU5RUg3WEx3alFuOWlQOHgrK2d4TnZyb1RENjd1cXJTdHhjUFpqT1BMS2g3QmFaYi9rck1PKysyZkM1RStHdVY3UzlOWmJiNzNkRFd3ZVFic2lhL04wSkhneU54SGNyRlliekdZTGpFYVhTbHBkWFkyeXF3aFM5Z0MycXFvcVZGWld1aExjM1hGcUxoWFVKck9yMldHdzJNRVFWeUVQd2NrUnB5dG1qVmdORlFObmY3VDVZUzRxRVNOYi9qOTc1eDBmUlozLy8rZk1sdXhtMDNzMmdTUWtoQllnR0NEU0lRS0NvS0FDSXZZR25PVzhzNWV2RFU4NXozTHF6M1lxbGtOUkViRmdwQmNGUktRSENNMlFoUFJlTjl0bmZuL3NKdGtVVWhDVTAzazl6QU96bTVuNXpPZnptZmU4Nit0dDRLSDN2dUZBdldzTGY1VCtIVXR6Yk13ZE1Zamcyanh1WHZIenI5ekFDdHJBZEpRdDF6N2FWSGIwcTJSa1hSbVd5dHF6UHNUakx6MUw4TVV6OFN3aXl2bGlKWDdESnhFM1l4VFpqOTlNNW9iY1gzR0ZLakpmZUlYcXpEMWt2dnB4aTdtbzN2dzJQL3pqYTZMblhvZTJhQ09iN251MXVjSktIVXpNRUMwSDN0K2c3S096QkoxT2QwTm01dUhCSGxyYjZhS2tMYlMybHY2Mnhxb0VsMGxhWGw1QmNYRXhKU1VsWFJkc2hZV3VaaXpWMVZVdFRGQ3IxWUxOMWlqWUpQeTl0WUpXRkJBRkJORlZ4aThBWXVISjdOdVArTVZ5LzZqZWpFbStnTGtKQWl2MkZ3QldOaHd1NGRaSkl4a2FFOEg4UzBkZ1AzYVVnMlpsOGM4V2lyNWV3djZYbHVLb084bmh4WXZadi9oNXFpcWtSaWxGMXB2UHMvMk9POW43OGhJYVRGMTdwY2gxaFJ4YS9BamI3MzJFZ294OFQ2bEg5anN2c2YyT085bjkwcEtXbWsrSGd2Y0l4OWFhaUp2Y3A4WEhnNTk1ZzRSTEp4STFjUmFSS1NHWUNvdC94VXdFTS9LajVhVGVmdzJ0S3pDelAxeEs3TUtINlRGcUdJTVdQWUw5dS85UzVtSFZSTTIrbk9ML3ZvZEZlZU9lTmZUdTNmdEtXZ1lSTkI3bWFLUFcxbFJMNmhsSXNObXNXSzB0VGRMcTZpckt5c29vTEN6cW1tREx5M01WdUxlT2dycE1VRmRhaDBlVDQrYUFnU3VDSzFvczVybkh5NnVuSjBTRTRHeW81MVNkbGNTSUVJNlhWZ0ZPSEpLTVN1VytuS2hDSmRkenN0S3VyUHhaZ2svL1lZU05HWUtvQ1NJNExZMnd0TEhvOWE3NVB2SDBBbzd1cVNIK3RsdlI1RzlrdzkwdmRrbGJMbHJ4R2VvaDA0aWRFTWRQMTh5anZNSUJPTWk0ZXc2L1pEcEpXREFmSC9NZU52NzEzMTA2WDkzUFAyQlBISTdmYWJJcmk1Y3RJanUzRi8wdUgzWU9ac2hDOWRFOC9Qc25Vbi95R0RhdlJBSWl5cW5KYW5hWGlCRXBCSWw3S2M2eUtSdnFMRUd0VmwrY241ODNtcWJjdG1aZlcyTkRKemVkZUl0QWdrdTQyZDM1YlcyanBLV2xKZVRsNVhjczJHdzJHOFhGcmxyUTZ1cHF0d25hNEJFRlBVMTZoOU1weUxJczN2SFFZeXFOUnZNWHM4Mkd0MWJGcDJ2V2NzMktuOUZyMU5UYUhZQTNJK0tEV1BGakJtWDFEYXpkdW85Y1djQnNkU2dyZjViZzIzc1F4bUZKaUxvQUlsSlRNYWFtb3ZNR0tDTjc1UzZTSG4yY2lPUmtCaTU2Rk9lNjVWVFVkMzVPLzZsWDAzZktLS0ttMzBiOE1DYzVHektRUzNkeWJLT1RvWXZ1SWlneGtmaTc3MFhjc1lLcWhzN1BWM3Z5Sklib21IYS9hOWkvZ20ydjdTTnQrUkw4Zk04Rmxib0pteGxVbW1LMlRCeExabm91YWowNDZqek5CaDk4WW5UVVpSVXJHK29zSWpJeWNuWktTb3JPcmJXMUNTUTBtcVh0cFgrNHRMYkdLR21EMnlTdHByeThuT0xpSW15MjlsOUNhcGNKV3RpaUg2aXIvck94WktwWlcydE14SFU2bmE0MmRwSWtDSUlndlBMMFkvT0JWTDFXUzRQSnlkWFRMK0VTcDVxOU96ZmpwM0hWaE40Mll3cld0VHU1ZldrV0EvdjBaWHpRQ2J3VmRvOXpEMGMxRGRYK2VJZTUxU1R2VVBTKzFWZ3FnVTc2MUJvOGtpSDF4a2pLSzh0eGxOWml0UlN5NjlZYm05UjlyNlFrc0FLZFVQL0xPT0EwTk9rVk83WVJjUEZzQWtQUEZWZThBYTBlblBZSUp2NjBEMDFJRUQ4c0JyV3Z2dTJmU2s1bDM1eEZpS0k0Yk0yYTFaTkRROE8rQmV6dUh3ZHVXbkZjeWJ1Q3V5OXBrNXp4MU5xMFdsY2dRYWR6QlJLcXFocE4wa0ppMnluZlU1dk41aVk2SWxjdHFHZVQ0NWI1YWc2SFEzQUxOY0h1Y0FtMWpBUDcvVlFxMVh5QVBxR0IvSEswSE5Gck1LSEE4ZUp5RW51NE9oSnB2UU80NS9LTDNTNmFRaVpzOCtYK1VJVmw4dXp1SUFGQmNyYWtIRk1INEIxUVEwT3BEZUswWUNyRFhCZUFMcWdMT282SHI4dGNXSVIrc0JGMW1BRXZRenlqUHY0VVF6ZmZTMzZSY1pnM3RKK0hGRFR4V3BKc29lMGJrU1g1NEIySXp2ZlhGRmZxQ09qZmc1ck00K2d1R0FhbURLcEx3eGdRNzl2Q1hHMG9NQkVTRjludUdKeGFmd3lCdnNvK094UFBaM0R3N0VjZWVmajdaNTlkYkFQc3NpdzczQXdnVHJmVzFxSjFuOXN5bEp1anBEWjNsTFRSSksyaG9zSVZTQWdQRDBldmIvbUNFcHZvaUtvYTIrYzFlRFE4dGpiV2d1SndOUHJXSE5oc0RnQUJXUmIyMURodVhiYi9WSCtBMkw1OTZWZWJ3L1BiVDdCbC8xNCt6WktabGV3cUhpNDZsY3RIZTA2dzZlQXgvcjUwRTRNdUhFcWNJdGZPc2xJU2c2LzZCSm52ZlVIZXVnMDBtQUJDaWIxaUdJZWUrUWZGR2ZzNStNUmlWSlBuRU96VCtlbHExbjdNMFRYYktmajJIYkwyYU9nNXNUOUNXQ3A5eHRyNDhmN25LZDZmUWRIbU5leCs0WjB1cFpqNGpSaUprTGtIVXpzZWlNcE5Lem0rZW5lN3grMjVkZ3piWDE3VjVXa28rdllqam55K0FhZTluS3dQUGlSNyt5RUFlbDEzUFRsdlBFUHU5enM1OFBpemFLWmNTNmhIRWIxY2NZQnkweUFpK3JUVkdnL2NNWVh2bjEydTdMRXpoQ0FJZmUrNzc3NUp0SzFHOEV6OWFKRzA2M0EwK3ZXYlRWS0x4VlZMV2xkWDU4NXRLMjgza0tDYU8vY3FqOXkxS21wcmE5cHBlbXpGWm5PRllwME9SeE43eHlQdmZSYWs5dlo1M1NwcWc0WkhCNEhLaTdSK1VSdzRsa1ZHcFpNN0x4M0hNSGVmUTZmTndwYk1iUGFYMURJd2FUQVBqSW5uOStBTk5abE1PSjBTZm41KzNUcXV0TFNNNE9EZ2J2VUlQWk5qem5SOHJ0M2pqWEhTaFppT0hxUWh2d2pEd0F2UmV3c0VqNW1NcXV3d2VhdTNJTWFPWlBpamYwSGJoWDRUd2VNbVl6dXdscExNV2dZKy9VL0NZL3dBa2ZBcE0xQ1ZIaVF2ZlFPMWhiVUVqeHhMVUZ4azU1Ukgra2pzR1V1cDhSNURXSytXTEMrU3RRRjFXQ3hCY2ExcUFhVmlEdi96Yll4M1BFWlliTmVZWWFwKzJrUkRyWmF3NFFNUkdreUlmajBKN20xRUYzY0JJVkYyVHFXdlJZZ2V6ZkJIRnFEVk5JKzY2SlBYYU9nMW5jUXg3ZmM5OVJzd2pPRDRTRVZLbmFuT3JOTVpOUnJOK2syYk5sdHgxNDgyVW9rTGd0RFlXZDZ6azV3Z2lnS2lxSEwvaU80T1Z5cDNseXMxV3EwV25jNkxvS0NnRnZSZ3dqZmZmTzNSeTZCUnVOVzZtVHdhazNQTldDeU5YR3NPd2VsMGlySXNpemFiOVY2VlN2WHMvOUxrbnU5OGJHYzZ2djhWMkxJMnNQSHBINW44d2VOZGVySFpNcjVnMVNNL00rUGI1emluSGxsSEJWdXUrQXVEUHZ5VW9FQlJrVUxuQ05YVjFmOEtEQXhhaVl1enpTUUlRZ011RDYxTkVBU0hJQWlTU3FXU0dqbmJkRG92V2FmVDQrMnR4MkF3NE9Qamk1K2ZIMEZCZ1lTR2hoRVZaU1F1TG83Ky9mc1RIeC9mYklwNkJnemNaSkdOR2hwMnU4T3RFam9GZDNwSFUrblVuajI3ZlZVcTFjM0tVaW5vRHJUeEU1bmFSYUVHb0UyYXdlVmZMZWFjaDVuVXdZei9acmtpMU00eC9QMzlyN3ovL3Z0OEc4MVJkNFJVUmF0U0szZHVHdzZISzFKcXR6dXcyZXdlVVZKWGJsdGpJS0cwdEpTR2h1YlF2T2dxY3E5dlpYcTJ6RmxyajJ0dDRNQ0JOd0lLdVpXQ2N3dFJqYWhXaE0wZnlOY1cvK0NERDA1d0M3WjJmVzJ0T2R2YTVyWlpXd1FTWEVYeXJrQkMwN1pwV2VUZW1LL1dOaExxWnU0UUFPRzY2NjVWcVZTcUc1UmxVcUJBUVhjUkZCUTBvMWV2WHRwMnREYXhVV3Z6cUVob3lwMXREaVI0a2xJMkZzbTcwajhzRm90THNMbTBOVmVSZXp0Q3paT1NxRWxiZS9mZGQ2OERCaXBMZFBiaEl0VlRVZ29VL0tHMXRnSGJ0bTBkMHhXdHJYM05yVkc0TlJiSnQwei9BQkJicG5mWVd2alduRTZuTzIrdG1Sa1hFTlZxOVhYSzhweEx3ZWFuVElTQ1B6VEN3OE9udVFWYW85YW1waFVaWldNMVFxTU1hdWxyczUwMi9jUGhjS0J1ckFkdDFOWWE4OVdhS3d5YWZHdTRLYituQXFPcmEydXBzWXRFQmZyUXJndkVLWU9xZFFLQWs2S3FPZ3pldnZoNXFaVFZQUTJLMTN4S1ZiRVZNYVFYZmFhUDZkSXh0dndqbEJTSzlCamVwOHZYc1JjZklXdk56OGhBK01RckNJbytWNXFpaE9Sb1cwMHFxTlZucFN0V2l5dFY1Wkt6dDR4ZUYzV0RCcnd1bjJOZmJFUUNBbE12SnFKZjEraW5LN2F2UnRWN0hBRmgzbDIrVk1YV2RFcXp5aEYwNGNUUG5jTFpTdVdVR2lvbzNMSU5xMG5FZU9tbDZIVy8zWDQxbmRoTnJUV1V5S1NZTGg4aml1S0k0OGVQSmJzcHhCdUw0KzF1cmMzcE5rZWJORGFuMDRuRFpzRlVYNDlUcTRYUVNMeTh2RnJWa1RacWJTV0lybnJRNWdvREQyMnRUY0FBRUxScTI5VjMvZnNEcHIzMUxYLy82RXRHdjdTQ0hhV045WFpXbnZ2b0MwWSs5UjhTRmkzSHMwVFZZYXBnL2lzZnNlQ3p6Vno2NGxJK1BGS21TTERUUU9WbFFGTnpoRDJ2Zk43bFl4cjJmY3UrRDlaMnp5UVF0V2dNQm9vL2VaSEN6S3B6ZGorbjNubVlsU2xEV1ptU3pDZkdhRDRmTXBTVktVUForTVJIditxOCtSOHQ1c2lHSXkxZm5RVzcrUG1GLzNidlJLSWFqY0ZBNWRvUHlmN3hlSmNQeTM3ak1Zb09WWGZ2VWw1NnRHSTUrNTk2bmJOWGF1OWc5MDJYOE11bVE1aEx5NUhPSVR2SndZZHVvcml3NVFVcU55MGo4OHRkM1Q1WGJHenNSRTl6dEZXRVZHZ2RTSEE2blRobEdXdDFPZldWZFUwVkNXYXpwVWxyYzlXUmxpRTJVaEo1Q2pWM2hZRm4wQUJabG9YcTZxcUJna283ZThHc21XeC9ZQjRyNzc2T0IvcDdzV2pEd2NaSGtza2pMMlRWZ290by9lNWY5ZjJQMVBVY3pEY0xMMmZsTlVONSthdnRWQ2owTU8waWRNS2w5SnFjZW5ydHJLS0UybE9GT051WlAyZERIWFg1cGJTaDhaUnNtRTdsWURGWm1qNVNoOFVUUDNzV2dWRytwMzFnR3ZKUFVWOVN4YStoQmUxNTIzUE1PckNmV1FkVzRlY2R5S2kxKzVsMVlEOFRuN3EyZVhpU1M3TXo1ZWRncWJOMHJxRTRISmlPSGFEbVZEbVN3MEdiOXJpU2picWNmT3kyTG13eVF3UzlaczhpTlBFMHJlVWNOa3o1cHpCVnRNL2NhaTB0eEZ6VDBNNWExRkNiazk5aW5RS0hweEUvNHlKT0YraVZMQ1pxYzNLd05saTZPTHNTa2lPZnNuMGlTWXNlcFA5ZmJzRGdvVUE2VFJYVW5jcHZkNi9JQUE0TGRUazVYWm9ueWVHZ2V1Y1dURFUyMTV5M3UvZUsyeks5dUs5aGJXaFpjcUxSYUM3YnVIRkREdytOcmNrY2JmSzF1VnNPdUlRYWd1anREUm9WRG1kakxha0h0VkZkRGFVNTJSUms1NkgyVE85b0xwdHk0blJLU0ZLenhnYUlCb1BoS2hCSjh1amczalBJSDB0SkkvMlFtaUc5b3FBbXA4MFU3c2dxWk1KRll3RUlqdWxGUDhkV2RwWTV1U1JjTVVtN1k5THR2R29NWmVaSXZIMGxxck1iU0gzL0U2TDZ1SnJ1Mmc2dlpzMnN6V2lvd3F3Znh1UlBua2V2QmZPeExXeWUveUFxWXlMVzdPTkUzUDR2aGw4L3JzTXJ5WFc1YkprOUQ0dHZMN1J5Slphb1NVeDdwYmsvaiszWUpyWXVXazd5RzI4UjdQOHI3K3JJbDN5eTRITVNldFZSVmlSaHIzSXdldjFhTEovZXcvSFNrVnowMkN6QXdwYVIvWWo5T0pzWXpRN1cvZTFGTENjT1lqYzhSZlYzQVJoR3ptSE1QWFBjNW1nV1c2NmJpNjJ1bnVwU1B5YXZYMEhBR1ZyWjloUHJXSFhOMC9qMjdvVlVmaElwYmpvWHZmRWdXcmRneW43MVhuTFZLaXpabVVUZS9SS3AxNDhISkU2OTh3aTdsL3lFZjN3UXRmbDJSbjY0alBEWWpnZFJ2Zmw5TmovNEx2NzlFN0FVWkJIejRGSUdUSXpyOEppODkvN0I0VzkyVWx0VHhFL3o1cUpXQnpEcy9YY0o5b1dDOXg3aHB6ZTJFUkFYU0hXdWpaR2ZmVXBrbkd1eENwZmN6NEdkRW1MMkxwd2FiNnoreWN6ODVKK25kUTJVci9zUHU5OWVRMTIybVlwN3J1YUVRVVhQK1UvUmYvSUFBTXo3dm1iOXRjdVJLbjVCNm5NTlU5KytGeFZRdldNNVA5ejlQUG8rZlRFZCs0WEVmN3piZEF6QThPR3BZNEZUYnEzTkJySU5CQld5N0pSbFdaUkFscHhPV1JCRTFHcVg1aVpMTW9Ma2JKSCswVkJ5Z3IwcnZpUXkya2lKMUlDNnRXK3QwVkhuMHRhYVRkQnZ2LzFXSjRyaVZTMVgzY1I3TzdPWU0rbXlUcmFIbGJJNkJ5UDhSRjc0YkEzSm8wY1I3Z05sdFdZSTkxSGtWZGNOR1lhOHV3YXRyK3NCS2ZyZ0VmYS9zNUtvRjI1eHpYSzFscWxydjhTZ3M3SDdxbEZrZnIyZmxObUo3UDdyMzRoKzdETUdUZXlEVkhlTTc4YmVTc1hsV3dudTREbXIzNTVPVmZBVXJ2ajRNZGZidUJVOWpMT3VsSXI5aDdDZEpYdEtQckdId0JjMmt6cmNDQTRMVHFEd2RDWjA5QWltckZqQjhTZm1VaFgzZDFKdmJLbmRTcVVtQnE3OW1tQi9rZDFYRFNmMyt5d0Nwc2VmbVZzZ2FnU1gvcmdWalJyQXdyWXBROG5kUFovZXcxMHZFKzNnUzVuNDFEd2NoVnY1YXNKakpNN2FnaUY3TlR2L2M0eUxOMi9DejFlay9JdG4rT241OTVuK2VzZXRRTEtYdmt2Y294K1FQS00zSU9Ic2doYlY0K2JINlhIektWWWxYTTNJRlNzSWFzeGtyc3ZnNTMrdVovUzJyWVNINmNoLy9XNTJQZmMrbDczVi9IS3Eybm1VU3phdEl5QlloOU5pNmREZkdUSjVBVk1tTDJEcmhEaWlYdjJjWHIxYnBreWJIVVl1LytZNTFKWWMwZ2ZOcEt6aVhpSjhDOWw1K3o5SVdycVJYa21oMlBPMzhQWE1wNGlidUJ3M1ZTQStQb1pwOCtiTlc3RnMyVEtyeXh4Rkl5RGJaUkFGd2ZXZjRDS3p4ZWwweWs2blU1QWxXUmFjVG5jdHFic0JqQ0dBNk5temlJd01wMmZQQ05TTlVWQ1hHZXIwU1BGbzZWK2JPSEhpYktDNXo3eGs1L1V2VnVOSVNHVkIvK0N1ZW5VdzZEUm9SRUdSVVdlSW11MHJ5Znc0SFZORkhZN3FFcVMremU4YVE4cG9ERG9BTFNHamgzSDh3Q0dZQXFXSHpLaTJmczdlSFNBaklUdnlxY3F1SjNqUTZWOHErcVFVeEl6YjJISzNsZkRVRkhwT200YkJvekpNUDNRdWN3N1BQWHMzRm5NaHZZYTdUVUcxN2xmVkVhdmlrd2oyZHoxNGh1aEk2cXFyei9oY2dtamh4UE9MeWQ5NUFMdFZ3cHhUUzBCbERlQVNiT0VqUnJtR2JCeEdjUEJKS3JNc21IZHZBMi9JZXZsWlZ3djB5aFBVSFBUQzZYWWVuUTVoSTBieTR6TjM0RGh5Q2NHcFkrazU0WUl6SHJmbFdBYm1xR0dFaGJtaUNCRmp4MUM3TkwzRkdBSW16aVRBWGN1dDB2MjZhRU5neWhCWGRZZ3VBa05JRFpaYWNKYnZvcnpHaTZBdi8wUFZsNEJrUnF6TXBLWUs5TTBpSS9yNTUvK1Z1bXpac3MyTjVxanNNa2NkSUR0bEdjbmxiNU5rU1hLMjB0ZzhvcVJhTThVL2JhR2lwcDRDalJmcVJoUFU2V3lkNHRHY2tBdUlhclZxbHNmN21rOVhyV2FyR01mN1UvdlRlVjY0RjZHK2FzcHFuZnhseGtWQUEvK3BoMUEvdlNLcE9yWThXN29xVHE1ank2UExHZmZGZndtTERhYnE2eGZaOHJXdEl3WFBkUkpORUJIVHB1TGpYcWdlVTZmakcrL2Q0YlhVMGFsY3VtMDlSVnUzVXZqTlV0TGZXY3ZNelcraFBVZTNLdW9OcDlsSFV0Ty9jaGQ1U1FWUEIxWTNpaGJhZTkxbXYvb1ErYVVwakYyMkNKMjNtdDNYRFVPVzVOT2Z3WDA5cjVqQlJFMmQ2djU4S2oxdkRtZ3hsUGF1RlhYYjgxeVN0cCtpclQ5eDdMSHJLYnp1VlVZdFNEdG4yMHZyYy9hZVAwRThUZEdiZnpSUlU2YzJsY1QxbURhN2pWc2dMQ3dzRGRqV3l0Zm1tYkFydTFJL1hKUkdzb3dnT0oyeVMyYTUzR2hWbVlkQk5qSmdTaHJSUFl5SXpjbTR6dmJTTzVCbFdhaXFxa3dTQk9IaVJuOVordnIxZkZZWHdqdFhwalNwbEoxdG1aR0pSallmeXdhZ0xQY2t4OVNScElZcS9yWFR6bGh3Q09yeVhFd2Vjc3RlVklRYzJaZmcyR0RBUWQ2NmxvMUhUSHUyVVc4QnNGRytiUmVoQXdlQmIxL0MrcGhwcUFzZ2JHZ0tZVU5UQ0lpTFFXTm9Yamh0U0FoMUJTMGJxRGpxNnNBL25PanBzeGoyMHBPbzg0N2k2ZnUxWlcxbCsxMFBVMWwzN3ViQUt5Q0FCamY5czdQNEFKVkZMY21SMUhvRGxzcnlzL2VnaHdSaE90V1NicnFob0lDQUljUFFlYXR4Vmh5aWFHZExQcm1TSFZ0ZDgxVzRpNHFxM2dUSDZRZ1pQaHByMWlIMC9ZWTB6Ym1mTWFoWm1CbUMwRHFLTVZXMWxOUzJ1am9NOGNrazNMaVE1UG1YVVgzMHhCbmZpNjdQSUhRRnV5Z3RkUVVoaW4vWWlsL3k0Ri9OcUtQMjFXTXI3MW9FWFJVM2pCQnlzUnBpbStjaExncE5xN2VqV3ExTzI3QmhmWTkyQkp1cTBXSnNsRWVTSkNFTDRMRFpXblMyc3BnYUVQejljVGl0MUpkbm8yNFVhbTJyREpxQ0JvS1BqOC9semNaMENZczNaVkdyOHlMdFdWZW9YUnZhaSswTEp3RHc1TnNma0Y1c284N21ZTWFpSlNRTkhzYUhNd1l4ZmN3b3ZudG5GWmU5ZVpLYXFscitldmswZ3BVU3dOTUx0ckFSREo0Wnd1b0xSNkEycG5EeHQ2K2hIellWSTIremV1WmN0R0lkdXFDUWxvSWdTT0tIV1planBncUw3MFFtenhnRXdOQlhYK2I3K2RlUzkxWUNhbnM1OVNZams5WXZhU0xRN1hYTFBXeTYrVDYrZkY5SDNOOWZKUG5Lb2RUditJaU4vL2NKZ1gzak1HZG5Fbkw3US9oN3ZKU2Q1U2ZKL3V3clloNWJUTkE1U244TG1YZ0Zxbi9PSVgzbVQ2ajlJdEdGdE5SempKZGZ6OUZiSCtLYjFhL2dOLzU2eGo5NjdhKzZYdlRjQlp5WU41K1ZJOThrNHBxSEdIbkhOR0t1dVpYMUN4WlF0M0VnbGhyUUo3UmtYYkVmV00yYTJXdXdaR2NTKzlqL0k4QWJHRENWMUp1MnMzN0NPUHo3eFdJK2xZM2ZwUTh5OXA1TDNVOXlUd2JmZHhGYjAwYWc4b3RoVFBvS2duM2d5RU56eUQycHh6ZFVTOVh4VWxMZS90dVozNHp2SUZJZnVwanQweWZqSHg5TWRiYU5rWjhzK3RWcmtuRFRRcmJmUFpOZi9BM0UzUDBTQTZjbmRmQ21NSkw2MmtOc3ZXa0tKK0w3SWxlVllnbEtaZnBIaTlvSTJHSERocVVDdVo3Q1RaWmx1K0NLa0VxeUlMak5VUW1WbHc3SlZFOVZ0Z2xiWURqYVdDOTA0VVpxTTM4aXEvd2tKWUlPWWZEZ3dlNytCbVlzRm90Z3RWcXgyKzJDdytFUTNDRlhsZFBwMkFQMFB4dTJWVWxWUFhxREFUL3Q3Nk90bmUrMFJaM0RnU2svSDFWZ0JEcERXNytJczZHT2hsb0xQaEdocmN3ZGlZYkNmR1N2UUF6QlhaTkVrcTBCVTNFNW1zQXdkTDY2MzJXOVpKdUordEk2dktNaitMMzBlMmRESFEybE5YajNqRWJWenN2WVdsYU1wUE5ENzl2U3ZKY3NKa3lsRlhpRlJhRFZkVzBQMkdyS3NOWlk4VFpHb3pvTGxDWk9VdzBORlNhOG80M3RqdjIzY2FuWU1PVVhJL3FIb1BkdlA1bFpsdVdqb3FpNkE2Z0g2bkJSR3BrQmk0QmdGMFRCS1FpQ3BGYXJaWTFHSTN0NWVhSFQ2V1M5WG8rM3Q3ZUwwc2hiajQ5V1QxalBIaTZOcmRrRWJkYlljQ2ZJbVV6MWFXZEhxTGtjSHVHQlNyblFyelFHTUVUSG5sNzk5L2JGMTl1MzNibjNOdmJzM21wcHZmSHQyZk4zdlZ0QmE4QTMydkM3amtIbDdZdHZCNmthWHFIdFZ5cUlPZ08rUGJzM2RxMS9LRnIvc3poMmd6KytCdi9mZDh1S1dneWQ3Q05CRVBvZVBKalJkK0RBUWZ2Ym1LUElUbVFrUVJBRVNYSnBiWTJCQk04NlVvY2tJMm5WMkd3V3hNYkdMTTI1YTgzK05VRHc4dks2VEJFbUNoUW9PTmVJajQ4ZjBjb1ViYzM0UVhPWmxZU243UElza0xkYWJZZ2V2alhCN1ZzVFBCeDJvaUFJMDVVcFY2QkF3Ym1HWHE5UG83bjZvTjBXZmE0ZnFaSDVRMmloc1RWMXRySTFhbXlTUitEQXBha0JndG5jTUJXSVVxWmNnUUlGdndHTVI0OGVHVWpMOHFwR3hvL0cxRE5Ca2p5TDQ1czF0MmIyanliQjFvWnp6ZVhlMEdxbktuUDkyNkswdEpUOC9BSmxJaFQ4S1JFVEV6UE1VMk56bTZPcVZ1Wm9DNjQyTjRWNEM2MU5kQWNNbWxTN3hnUGRacWdpMkJRb1VQQ2JRYWZUalcrbHJiVm5qcmFRV2EwRENYYTdIZEhUREczVTFBQ2hvY0Uwb1gwejFNbk9qTU1zV3JtQmU1ZHY0djE5dVI3MEt6SlplWGw4dW0wdnIyNDhTSzNIVVE1ckE5c1BIZWV0alR0Wm5sbWlyT0J2aUVQM1hjR0pIY1hud1Vna2ZyNTZQQVduL2poemF5dk5wYnF3NGd5UHJtUGJaWmRTMnFYRGJWUmxITUorRmhoeGFqY3RZY01UUzgvcVBNZ05GWlFleVczeitjL1hqQ1V2cDN2bWFFYkdnVDRlV2xzTGphM3hweVZYbTlRbVFpcTJNa1B4TUVNbnRyODM2L2hxYnlGOVltUEV6UktVQUFBZ0FFbEVRVlM0dEg4VW03ZHM0UEVmR2tkdTVyMzFlemhTWE1KYlAyUzJFR3lsZVRtOHN6ZWIvYitjNUl0amltRDdMV0V0SzhCdXRwMEhJeEdKbnJjUXY4QS9rT3RnMVN2c1diTCtqQVc5cFNBUFIxZTZUVlBPanF0dnBOcDhGbDR2cGtvYXlzNHUvNTZVK3dNYi92cGltODh0ZVRuWTdkMDdWNjlldlpJOU5iYlRtS040bXFQTldwdExzS21ibzZHTlRCNHVNMVFVeGZZRm14akE0aHNuTmYwYTJGREdYL2Jud3RoWXdKdG5icDRKTlRsOGMzQm5TekdjMEo4UEV2cXplc05hUHFoVGhNMjVRUFhPZEk0dlg0OGREUUVqcDlIL3l2Rk5TYnEyNHFQc2UreDF6RlpmRXY5Mk55RkdYOEJDM3JJUEtkcDdGTHRkVGZDa1dmU1pub29BVlArY1RtV2xub1k5RzZpcEZJbTc2WGFNU2U0aWRVY2QyZSsvUStIK2szakZENkgvd3B2dzl1NDQrOU4wNkFkT3JOb09vaGJ2MGEwRWI4NStNcGQ4Z3FuYWlpRitDSDBYM3RBNUEreHB4bEN6ZHcxRkJmNzB2WFFFQUpXYlYxSWxKUkovVVJKbDZ6NmlRVzJrY25NNkZtY3dDZlB2SURUVzMvMndsM0w4blhlb3lDckJrRFNPL3JkY2lWYmRxSTJVY2VLOTl5ZzdVb0JYejBRU2JyNlZBUDlxTWw5K240bzlHZFRWbGJGL2NUWkNaREtEYjNSNWJ4d1ZXUng5OTBPcVQ5VVNNUFl5K2wyVjVrNHd0cEgzMFZ1YzJubVNnTFRKZEVVQnEveCtCYWQrM0kvWlZNT0pGeFpUb0JXSm5MT1E4SGgvMS9tV3ZVdmVqcU9valFra3pwL2ZWTmplc1FKWXpiR1huNlU4dTRySVdUZlRhMHkvSnMwdy8vUDN5UHZoRUtxSVJCSVhkbjYrM0E5ZW92TGdBZVRpWFBZdFhveWdDcVQzM3hZMmtTYVlUK3hrOTVKUHNYdEZNK0NldS9Gemw3Qlk4ak00OXM3SDFGVTdDSjE2TllsVGhpSUEzdDdlSTREUFdwdWlqZVlvc2lRNUpVbkE2VVFscW1WSkl3bE91MDAyMWRSZ2t5UXNYdDZJalZMUG5aU0xMQ05VVmxiMHA0dk5XbzZVbHBOb0RGR2t5dThNdVdRbkcrWS9UK2pNYStsejNSVUk1cG9XUklBbmwzOUY2Q1d6Q2RCbHMvWEIxNXBNb1pwQ08xR3pyNlAzdkdrVXZYSTdCOWNjQTZCbVZ6bzcvdlk0bXBScHhFN293WTZycjZXaVJnSWNaTnc5aDE4eW5TUXNtSStQZVE4Yi8vcnZUaDlRVFhnc1lXbWpLZm44VlZxU2JUU3c4NmJyY2ZhNW1IN3piOFEvUU1MYTZSdis5R1B3Nnp1SXdsZnY0OFR1UW14Wlcvbmg0ZjhRTUNqUnBmT3MvNHdkRDd4STRPUzVHQk1kYkxuMlRzd09seFd5ODVvWmxKbU1KTjUySXh6OWpCK2VXOTVrb2Z3MDd6SUtDbjFKdUcwKzRiMjhxTTJ0QkxVdndlUFM4RThNUXh2ZGw3QzBOTUtISnJwdktaOHRNK2ZRRUpCQ245dXVvdjdiWjluOXdYWUFTajU5bGwyZkhpTHVwaHNSOXEya3JMRHp5bjVkM0VEQzBsSlJhNzBJSEpOR1dOcDRmSUpjbklpRlN4NWoxNmNaeE41ME13R2FrNnlmZDErWG1IbnIxbjFLUStTRnhNOGN5YUU3cnlMM21JdEVNK3U1djdCL1ZUYXhOODBuTkt5VXpkYzkxT241L0llT0lXUllFdmhHRUo2V1J0aTRDOTAwVHk2dE5HZEZPc1paMTZBdDNjSlB6eTl6T2JSSzk3TnU1aTJJZ3liUlo5NWxGTDU4QjRjM1pRR3VaaStyVjM4WDJaNmZEVmtXWkFSQkVBUVFhSEtqT2UxV25LalJCSWVpRGRDaGJsM3dqcXMyZEh4WEhxWlQyWWQ1ODdDVGQrN3NwMGlXMzl0NzFWQ0p3NkZIYjR3bUpENkNrT1NXMzhkZGR5ZlJJL29qUjExTnh1VWZZQU8waERMZ3J6ZFJzWDgvNW1vYi9vUGlLTjkxRUthNCtpWUVYSHdOZmFhTUFrWVJ0K0k5Y2pjZEkyaFVKY2MyT3BtNDZ5NThOQkIwOTcxa3BWNUxWY085QkhkQS9hOE43WWt4MU1ndmJUUTdLNVpxSzRGaFlRUU1TQ0o0WUhMblFyeDBad2RqTURMeXRhZFpjOHR0NUJocTZmdmlSd1NITnBjelJjNWJTT3lZWVRCbU1Ma2ZEaUIvYnhVeDZ2WGtsdmRuNXIxWG93TDg3NzJEcjJlOGp1WFJPWWdacThrcFR1REtyMjUzTVpza045ZEdocWVtWWo4VVFaazJIbU5xTXlkYzFmcmwxQmluTWY2R2k1R0JRWGZkeUtwRlh6SDh4bEhrcmxoSjc3OStqZkdDT0l6OTcrZkVoMWQyZXIvZVBmdmczZE1YalVaSFNHb3FvWVptb1pHOTRpdjZQdlE5eGdzaUlQa0pjcFplUU1HSmw0anIzWEVKbCthQ1MwbStLZzBCNkRmek0zTFRmeUFtZmpCSGx1d2llZE9QaElhb2tmdmZUKzdTRVJSbE9ZaUpQMzE5VjBEU01IeFYrUWlHdkJiejBJamVDLytPY1dnZ2dmWlpySHJPVlY5ZThQbjdhTWJmU3Y5cG81R0FnUXV1WU1meWRKTFNYSngxS1NrcC9ZRThUM05VRUlTbVpGMEVRVUFVWlVIRXBaaHB2TkQ1YW5BNnJOZ0ZMNWRnYSt6dTN2aWpVcW5HZGpiWkZVVTVMUGo4QUl0dW1FbWlRYWxtLzcyaGlwdkV5SHN5T0hEbkhING90R0s4NXUrTWVHQnVVMzJsVjZDcjVGM1FhUkVjRGlUQVdaSEoraGszNFQxeUtnRVIvalFVMXlQNU5GTlNlMGVFTnYyL1BqU002c29TSEtYbFdDMkY3THIxeGlZYUhxK2tKTEFDM21jeThrQ0d2Zm9NKzE5OW1DLytua2ZBaU1zWThjcVQrSGF3cHh5bFJSMk9RZGRuUERHSml6aGVNSmp4bzFvMkdOR0hOZEovYS9FMit0TlFYazJEc3hpcE1vTnROOXpZUEtvQjhVaUF0YkFZVFV4OHQraWE2b3Z6Y1J6ZHc1WWJtdnNuQlBjZTdqcGZhUjFCWVdGdVZTd0NROEN2S1FnMVl5azFvMnUwbU1SQURHRmdxNndET3VaSTFJVkZOYmtwZE1Zd0dySXFvYVlJczluTW9YdHY1V2pUbStBQ1ZOamM4dVhNL0tycVFKZFRWYVZSSVZ1dHJwRVhGV0Q2OFFpYmI5amNyUGtOYVM1eUNnZ0lTQVkyZUdocnJoOEJBVmtXSktkVGtKMlNJSW9xSkVtU0hlWmFvYWJVS2h0OGZCRjB0cllhMjczMzNxc1NCS0ZEM3VpNmlnSnUrV2diZDg2ZHdiZ0liMFdxbkJkUTAvT1dCK2w1eTRQWVNqTllOMjQyUmRmT0pkcllnZTltNHdvY1EyNWc3TDl1QitENEU3dndERmcyRkRjMzNER1hsZUoxWVRqcU1BMWVobmhHZmZ3cEJ2WFpHWG5nbUZsTUdETUwyVkxGam5tVE9mN2RIRkptbjU0MVFoMFcyZUVZeXI5NWtkenFJY1QzK29XZlg5L0FxRHVhM2NYbTRrSWdCYkRSVUZoRFpFZ0EzdW9JVkpHcFRQanN0VGFGOWpaakJQYmNuZGdrbXVqQVBTRUlBbktyN2lrK0VkRjRwWVF5OGIySDJ3cVVjSC9NcGFWQUhGaUtNVlU3dWl3Z0JGRnExZHRCank1TWo2V3dISHBIZ0ZTRnFSU01YYUJic1pRV0lMczFHVXRoS2Q0UlFlQWZqdDdnejVDM2xoRWVlQWJLU2plNnlPZ2pqZmhmTkpPSlQ3ZlB5S0xSYUVZTUhqeEljK0JBUnF0RVhVRjA2V3VDZ0N6aHROdVJOR3JzWmdzYW4yQjBZZjdvdkhXb1c1bWhQUG5rRTZPQjAxZk4ydXU0YzBrNnV1ZytWQlprczdRQVZQb0E1aVc3aWx5M0h6akV5WXB5ckU0elgyN1BJQ0U4a3FrSm9VZ04xU3c3Y0lyRHA2b3B0VWtzM1FHcEEvcVI2S2RSWk5KWmdDMXJPMGMyRlJDWk9nQkgvazZzMmhoOEFqb3hjYUo2MExBbm5ZS2ZSMFB4TG81OXV3Lzk5RXVhZ3hGclArYm9ta0g0T2c2UnZjL0ErRmY2SVBoTDlCbHI0OGY3bjJmZ0RSY2pWeFZTc0NlUElmZmQxaUg3UnRYKzdaaHFySmhOVGlwM2JrRjl5b3VRMUJIb2RLVWMvTmNLZ3NhTlJFc2w5YVYyZ21QQ094eTNFSlo2MmpFNHM3YXo3UjlyR2ZYTk40VDRsckYreWh4T3BQYW45MUNYaEMvNjVDMXlVaU1Rc2xkVFlyK1FZUmNFb2hXbjB0UDNSYlkvczRRK2w2YmlLRHhHU2JiRUJYK1pqWGJRVkdJai9zMzIvM3VEL25QSFlzdmRneHc1aVo3dTgvbkg5NlhxZzY4NE9UUUliV2dNMGNQN0VUaHBEajR2WE03UGIvWW1ia3dpNXF4RFZKdkNHRFJ2SWpGenJtVGJxNHNKQ2JtZHFxL2VvTDZyY28wUUFtSWNuSGh6S2Ria1NBSlNSdU1ickNOdTFreCtldkZKQW53WFVyL3BBMm9pcGhIVnUzUDkwcjQzblgyZlhZd3hvb1lqM3h4bHlLZmpRZTFMdjVzR3N2dXVoMG4rNnpXbzdlVVViZHBQd21QMzBCbUJ2eW82SG4zQk14ejZmQlgrZ1VHRWp4L1ZGSHhwRDFHemIrVEFKWDhobzM4SXhnRkc2bzd1eE9xVFROOUxoalVwY08rOTkzNnZsSlNVUXpRM1UxWUpJQ0lJSXJMc1JFWkFGR1JabHBGRkFidTVGbHVEQnJtNkZKVmFyUmJjaWJrQ0lENzExSk5YaTZKNGVoK2JaS2ZLcGlMY29NRmlkMkN4TzdDS1dvWkhCd0Z3TFBjVWVWWTFRMk5Ed2VGQXJmY2xLY3dYMlZyUEQ5bGwrUGdIMGkvSUc0dmRRVlI0QkJINjM1YU14bVF5NFhSSzNXNUtYRnBhUm5Cd01DcVY2cHdlYzZialEzQlN0V3M3UlpzMlUxc3FNSERSMDRRYW03ZWpiNzhVRElIdTZKWW1nTEJoL2RIMUhFeGdVQTA1WDY3QmpKR2syMlpqNkpGQVlGdzROYnZTY2NSY2hMNXNENlhIVFF4OCtwK0U5L0FGUk1LbnpFQlZlcEM4OUEzVUZ0WVNQSElzUVhHUkhYTG1sNjFiU2RYeGZIeVRVaEZyQ3pFWGxPQnpRU282THpCbkhhQm8weWJLRHVjUWZjdWpKSTVONkZSN09kMFl5cmR2Sm5UMlh6RDJqVURRQmhBNW9pOFZod3NKR1JoUHhmcFAwSTJkaStQZ0pxcktmRWg1N2duOEEzUWdlQkYxMlV4c1I3ZVR2KzRIVEZWMndzYU93ejhxQkFRdm9pK2JnVDE3Si9scmY4RHFDTUE0WVFRNmI5ZFRxNDBkVEVpVVFQWGg0MWpNV3NJSDl3YU5IejFuVEtMdTU4MFViTnlLMWFvbFl1eDRmTU44TVF3WWdhK1lUKzQzbTlHTm1VMU1TaStDaGc3RnExTlpKQkkrTVExYjFpSHE4L0xSeFNWakNOTGhlOEU0Zk9RQ1RxMWFqODBRei9Cbkg4YmczYmtxYlJpZWhsZkJ6K1QvbkVYQy9jOFNrK3dTMUVHakw4RkhLQ0l2L1R1cXNvcnh1MkEwWWYxaU9pY2k5Z29uYW13L2FqSU9ZUzZzeG45NENvM01aQUhKSTlDN0RUdkJONXl3UVFtSWhraGlMeGxCeFpZMUZHNzdDWWNZVE9UWTBYZ0hORnVBZXIwKzY3bm5uanVCcTkrb0hYQUk0QUNjZ0NRSW9peXFSRmtRQk5SZU9sU1NFNm5CZ3RvUWlLRFQ2VVJQN2pXSHcvNk5JQWlUL3FpYXpmbk94M2FtNHp2YnlIMzlkckpOa3hqL3dPVi9tTFUvY3YrbG1GS2VaT2pjRkVYRi94K0F3K0hZb3RGb242V1pvNjFlRUFRVFlCVUV3U1lJelJ4dFdxMkxvODNMeThYUkpyb1RjcEZsV1pnOWU1WktFSVFSeXBRcThBcUx3eWNpNkE5MVQ3cVlSTHhERkovdy80elhXSzBlR2hNVDB4dzRhTmxNV1d4MG43bVNkUnQvWEtscmFzODBqM2ZmZlhjWW9QVERVMERFN1B1SitJUGRVOXlkTHlvTCs3OEZuMlhMUHU0NWF0VG9ZelQzUUJEZGFSK05wVldDTE11eUxEZm40MHFTMUt5eEFlaDB1cUhLWENwUW9PQjhRZS9ldlh1NWhacG4ya2VqWUtPbHh1YnExU0pKVXN2Q1VwVktwVGdmemlMQ3drSzdGVGdBTUJnTStQbjVLcE9uUUFIZzcrL2ZwNVVaS25yOENLMDBOeVRKUldtazlxQXBFZ1JCdUVDWnlyTXAyTUs2Zll6QllGQW1Ub0VDTnpRYVRSSnRmV3lOeGZCTlRCK2VSZkdlR2hzblRod1BBeEs3ZXNIcTJscHlLK3B4bkM0bno5bTJxYXpWYkNhM3JCcXpRMVpXVElFQ0JaMUNFSVNFRjE1NDNxZWxZSk5ibTZOQ2N6NnVSL0FBRUl4R1k1ZUszcEhxdWV1VkZleTFhd24zY2xKbzEvUHY2NmN4SWt3UFdIbnVvMi81T3F1Y1VpbUFMVTlkUmJUN3NQZFhydVNOekRwNkJIaVJWMlZod1JXWGNPdUFNR1hsRkNoUTBDRW1UWnBrQkNwb0lweEVGQVFFRDgwTmFQYTF5YktFdXRGRzFXaTBYUk5zb29ZRnMyYVMxTU9WMXI3eXUxVXMybkNRMWZPR0F5b21qN3lRV3llYW1mam1uaGFIalVnZHhUVXp3OUdLa0g5MEQ1TlhiT1B5QVZkMFV0R21RSUdDUHp1aW9xSjZBcGx1UWRhaWN4VnRvcU11NFNhNkpaMmdVb2tEdW5ZWnJ5YWhCdEF6eUI5TEU4K01taUc5b2dqV3Q4MTg3aHNWM2xSckZ4YmtoK2l3WTVXVVJWT2dRRUhIOFBIeGlmTVFhcTFiOGpYbHNyazdXQ0ZKa3RDVTVDWUl3b0J1WDlGdTRyMmRXY3hKN2R1TmcyUSsyWHFRWWNPVE1DcWtJQW9VS09nRUdvMG1vWlZRYStGamE1Mm9LOHR5VXdtWUFIU1BWRTJ5OC9vWHEzRWtwTEtnZjljTnloMC9iK1hqY2o5ZW1EUkFXVEVGQ2hSMENsRVUrM2hvYVc2aEpudWFvOUFpZ09BU2JFSnBhVWtpNE5YMVN6bjVkTlZxdG9weHZESzFQMTFWdkE1bTdPS3huMnA1NTdvMGdoVlNEd1VLRkhRTlhpdFhmaEhpSWR4RVdhWUZoNlJuQUVHV1hla2UrUGo0SkhUOUdqTHA2OWZ6V1YwSTcxeVpncjZMVXUzRThRUDhmVk1CYjl3MGhSaHZ4UVpWb0VCQjE5RzNiOTlRVHArazZ5SFVYT2FvR2hEVWFuVjhsNjlnTG1IeHBpeHFkVjZrUGV1aStkV0c5bUw3d2drQVBQbjJCNlFYMjZpek9aaXhhQWxKZzRmeDRZeEIvR2YxRGdvclJhNTUrVVAzaWZTOGQ5ODhCdXFWUlZPZ1FFSEhDQWtKRFc5cmpyYlUyanpNVVZrUUJFSHZjTmhmRmtWeC9wOWhnbjVMMmlJRkNoU2NIWmpONW1YZTNvYWx1T2lMNm9BNk40V1JCYkFMZ3VBUVJWRlNxOVd5UnFPUlJRQkJFR0tWcVZPZ1FNSDVDbzFHRStuV3lzVFRtS0tlYVIrdUx3UkJpRkdtVG9FQ0JlY3JWQ3BWOUdtRW11QWgzQUFaa0p1K1ZBU2JBZ1VLemxzSWd0Q2psY1lteUhLTGxBOTM5UUhJTW9nblRod1BCM1RLMUNsUW9PQThodTdmLzM3SnAzT056V1dPaXNIQndaSEtuQ2xRb09COHg4Q0JBLzA4QkZtYmRJOUdvU2JMTXFLWGwxZjRtVnprVEdpTHpPWUdjc3VxTWRuL1BMUkZzdVJBa3BTaVdBVUtmaTBpSWlMOFRxT3R0ZjVCclZLcHVpZll6cEMyNktPdlZ2TG1VUlBodmxvS0swM2NPR01xQ3dmOXdaWEZ3azBzVDc0ZVZZOElaSnNGcjdnVWhyLzRFaEc5T3k5Qk0rMyttZ1BiSFl5OCswcGxSeXRRQVBqNys3ZlcyRTVuaWdxaUtJcWgzVHE3bTdabyt3UHpXSG4zZFR6UTM0dEZHdzY2djNUUkZxMWFjQkd0eWEydm5EcWQ3UTlkeDhvN3JpTDkycUc4K3MxUFZQd1pWc01ya1VsN2RqUDc0SDc2RG5Hdy9mLytYNHV2SFRWbDFPWVhJN1hROGlUc3hkbVVIdndGeWRFOWpVOEdjRmlveThuQmJwUGM1M045WjZzcW83NjBwczB4OXBveWFrL2w0N0FwbXFXQzh4ZmUzdDUrcHhGcVRkVGdqYVZWYWxFVXUwbUo1a1ZTaitheTBwNUIvbGhLV3RJV1VaUFQ1aWk5UjBkWUNWQ3J4QTRiN1A3eG9DWnNlQXFXelVkeEFpb3NISHY2TGc1dnlNTS9WRU50YlJBVFBsdENRR0FkTytmZlJzV0pIQnJLSk5iTjNRVUJTVXg0OTBtOEtDUzk3K1VNMzdPVFVBTlVmcm1ZYmVzTlhQYkdYMTBLNHBMN09iQlRRc3plaFZQampkVS9tWm1mL0pPOU42VlNJUXhCTmxYVGNEU0RpTCsveFlpYnh3S1EvY0pDOW4yVFMyQnNFTFcvbEhQaHFyV0VOKzBJQy92L3ZnRDFSWGVSTkYzcDg2UGc5NFZXcSszVXgrYlcyRkFMZ25EbXpTTWJhWXNtWGRhbFAvOXB6eTVlM1pYTnlRb3IvNWgzS1VGL2h0V1E2aWpldElscVN3MG5YL3VDdUd1ZVFnVlViM2lQakIwYUx0dTRCaTgxNUx3OG4zMXZyV0xDdzVkejRic3JxUG51VlRaL1pXWEsyL2QzNjNKVk80OXl5YVoxQkFUcmNGb3NUYXV1NlRlVkNRL093TEo3R1YvZXU0emhONDlGUlNsSGwvekloVnN5TUlZRERodk9GbVc4RWpXSDl1RTFzRnA1cWhUOC9xcUJXdTFIeDc0MW9WbU5nTUF6ZTJDN1QxczBzRzgvbmpMR3NHM3ZIbDdkdUorTGJoM1BINzUxaVZSTDhhcHZFWXFQVWFNZnl1UWJKZ0pRdG4wN0drUXlGLzhEQ2JEblZsQmxQUVQ4dXM3ckFSTm5FaERzeXQ1UjZacXplTUtHREFaQUZ4Mk5XRjJOSFZBUlJNU0lJSGJmZGdNOUo0MGxJdTFpSWdaRWV5ci9qRnVmb1R4UkNzNExxRlNxZGt4UkdSQ0UxZzRaRWZEci9pWE9qTGJJWVBDaGQyUVlOMDBkalYvK01YNnMrQk5FUjlWUkpQLzdKY1orc29wZWtjZlk5VnA2MCtRYmtsS0ptanFWSGxPbjBtdmhJNHg5L0phdVNNcm01V3NuSkszMWFaOVZRRkM3VjBsc2FSNFBlWGNkby83dkZyVDJBclpmT1prVGU4dVVKMGpCZVFsUkZIMW80MXRyV1ZMbC9neFJFSVJ1Q3JZem9TMlNLS294TmYxV1dWcE1ua05Mb083UDVHVVQ2WGYvQTVRc2VaN0tHb25RVVNPcHpUeUJmM0lLWVVOVENCczZHRU5Rcy82cTlqVmdMNitrcGVqeXhjdW5sb2JDQnBmV3QyL1ByeHlURFp0SkluajRXUHJmOHpnSlk4T296U3BwOGYzaEorN20yQVpGYTFQdyswTVFCSjlPVE5BbVhqWTFkTk1hUENQYW9yNjhzdlF6dHB0MWhPcEZjaXRNekpsK0VVUC9aQzAwTmJGcDlCMy9MQWYvazg2NEIyNGxhY2ZkcEkrYlRFQ3ZjT3B6ZnlIcWpwZEl1V3FFUzd0Tm1Vb2tOL0xOdUlsb0lsSzQ2TFBuME9GTDcrc25zWFBXeFJ4TENFZHJFTUhuMTR5b2xDMFhYNDdUbUlpV1NtcnI0MG1iM04vamV6dkYzMzZPTm13S2ZTWU9VcDRzQmIrM1lEUFFzdWk5VGFvSHpSSk9LZ0NNdjhYQVRBMG1LaXdPZ24xOU1XaCtIN0xKODQyMnlHbXFvYUdxRG4yWUViVzJhM05pTFN0RTBnV2c5L1UrQ3lPUU1CY1g0MENEVDBUb255eFNyZUIvREVXQ0lDNEVUTGlvaTJxQmVrRVF6SUJWRUFTN0lBaE9sVW9scVlIZmpPclI0RzNBNEsyc2ppZFVCbjk4RGY3ZE9zWXI5R3kraDBUMEVVWmxJUlQ4TDBEWGdSbnFBVmZ3UUdGT1ZLQkF3ZjhDV3N1cWRnME1XVVlSYkFvVUtQaWZFbXh0QWdidENiaEcvbkFGQ2hRb09OK2g2a0JqYXlIZ0dzc1NGSndESERwMEdKdk5wa3lFQWdWbkIySkhXbHA3ZjZoQWdRSUYvd3NRT3ZrZFFCQ0JibEk2T05tWmNaaEZLemR3Ny9KTnZMOHZsMmFkUkNZckw0OVB0KzNsMVkwSHFXM3ZjSWVKOXpmK3hKYjhHbVdKT29LdG1NeC9QVWZlL3R6ZjVmSy92SFF2NlpkTVl2bm9HMmc0aDljeFo2U1RQdjFTVmc0Znd0SHY4My9YS2EvUE9vU3BSdEd3ejJOMFdWYUpnTE43cDY3anE3MkY5SW1ONGRMK1VXemVzb0hIZjhocDNLYTh0MzRQUjRwTGVPdUh6SFlGMitvdDIzamp4d3kyRk5RcXk5VFJRN2JqYXc1OXNKVDkvL255ZDdsK3dqMHZNdTJUNXhHcktqbVhoVy82UWRPWTl1MHFlaVY1NDdEK3ZyUkpKNTVaUVBiT1ltWHpuYjl3bmtaYmE2TzFxUUVib09tNmxSdkE0aHNuTmYwYTJGREdYL2Jud3RoWXdKdG5icDRKTlRsOGMzQm5tME5yaTdOWld1akQ3RGp2YzZvRi9CR1F0M29OdmU1OWlQeVhQNmJXOWpmOHVoQzdydDZaenZIbDY3R2pJV0RrTlBwZk9iNXB4VTFIdG5OczJUZVlheVg4TDd5WWZsZFBSSVdGdkdVZlVyVDNLSGE3bXVCSnMrZ3pQYlhUSk4ySzdhdklYZjBqRFZVbWZBZU5vZTlOczJsa3BhcmJ1NDdTbWlDOFNuNGlkK3RSZk1aY3dlQzVhV2Y4Z2k3NWJpblphM2VCWHhUeHR5d2tOTmJGMlNBM2xITHM3WGNvUDFHRWx6R0dYamNzSkRqYXhRSm9PcnlWSXgrdXhHb1Y4UmswbHY2M3pPaHdnMXV6ZG5GaytRWktqcFlqcm5nVHh4NC8vRVplU3E5eFNVM25PN2IwSzh4V0xWRnpieVEydFE4QWhWKzhnMndjUk9sM0t6RmJmVW44MjkyRUdGMWpzT2JzSjNQSko1aXFyUmppaDlCMzRRM29kUjNmRTVnNDhmcFNncWRjU002U3BWZ2N2dlQ1Mi8wRUd3M0tBK0cyWTdxanNmMHEzZnRJYVRtSnhwQXU3RkViejMzN013dW5Ec05MU1cvdlpLNnF5RitYVGVUVU9VUW1scERmQlMxQ0x0bkpodm5QRXpyeld2cGNkd1dDdWFaSjA3SWNXY09hZVErZ0czb3hmVzZhZzFEVzZENm9vNmJRVHRUczYrZzlieHBGcjl6T3dUWEhPcjFXWFZZdWdXblQ2YmZnZXFUTXovamhtWSthdjl1M25yMzMvWTFUMlY3RXpKcUoybEYzeGhwZjlZYlgrT0haZEtMbTNreGtuSk10Vjk1RXJmdU5lUHpaMjhrdkRLVHY3UXVKSE5JRFM2VzdGdG1Xei9mejdzSTdiUTU5YjVtTEhoT09UcTZqRG9vaUxDME43eEFEUG9NdUpDd3REZis0OE9hNXUvNVJmTkpta25ERk9JN2VlejNaQjZzQUtQcm1YWFkrOXlHaGw4d21RSmZOMWdkZmM1K3hnWjAzWFkreno4WDBtMzhqL2dFU1Zudm45d1Ftc2w1N2tSLy83elg4UjE1TTlLZ0VMT1YxeXZOd2VzRW10L3EzaGNabTVneXBpMDVsSCtiTncwN2V1Yk5mcDMvNzg4NGRWUGRJWm15b2xuM0tBblVJYThaR0tueFNDVGRxa2RMR2NHVHRPdnFQdWI1aldkaFFpY09oUjIrTUppUStncERrNXU5eWxyNU42SFdQMG4rR1MzTUtTUjdtL2lhVUFYKzlpWXI5K3pGWDIvQWZGRWY1cm9Nd3BVK0gxNHE5L25acWoreW5wcUFjLzZUK0hGdXhHN2kyK1cyWmtNYUloMjlEQUtKL3hUemtMbDlCM08wdjBXUEVCVEJpRUlVckI1SDNVejREMHFLeFZsYWlpUXJCTDc0dklRT1NQTForTlZhVENsMVlCSUdENGdnZU5LelQ2NmdDalJoVGpaU0U2TkVrRHNHWTJyTjU3dDcvRDJFM1BFU3ZzY09RZ2I2emg1R2R2b200Z1M3SzlyanI3aVI2Ukgva3FLdkp1UHdEYklBV0s1WnFLNEZoWVFRTVNDSjRZSEtYN3NuMWlKcnBjKzl6eEE4TlZoNkV0ckIwUjJNN0k2dXdvaWlIQlo4ZllORU5VMGswZEJKY3RWWHdqNDNaREEzWHNQN3dTVTdXMk1rckxPWlFoVWxacW5aUXVHNHRHcjJGbzYrL1FVVmVQV1ZyMTJMdDdPR01tOFRJZThaejRNNDVMQitjeXJaL2ZkcmtrREFYRk9BYkY5ZldZVkdSeWRxME5ESlhyS2ZxMEdFYWl1dVJISjN0SFJPN3I3K1lINS85TDVYN0QxT1hYWVJrczdWNFpmb21KcDZWbWxOTFpTWGVJV0ZONzJCOVdDQ1cwbklBK2p6d0FsNTVYL1B0aUtGOGZjbTFGSjV3RTgzN0pESHlwZHM0K2VRQ3ZoaVF6S1lIWHNicU9QTXhtRW9LS2Z2eVRiYmNjQ1BmMzNBanYveFlqazl3czJub0ZlaGlJUkIwV2dTSHcrM2REbVRZcTg5US9zN0RmREV3bVhXM1BrNmRTZXIwbmx3TEdZSnZ2Q0xVMnJWS1pObmNqbmJXbmtFZ3EzRVZsSFlMZFJVRjNQTFJOdTZjTzROeEVWMG8vcFJWakIwWVMyN3VLWEtCN0hvNzl0SlNUbFRFa2hTcytBOWF2NVR5MTI4bGZNSzlxQXhhVkgxSEVwRCtUd29PbXVnMXNLTzVVdFB6bGdmcGVjdUQyRW96V0RkdU5rWFh6aVhhQ1BvZVVaUmtad010TmV2S2pTdHdETG1Cc2YrNjNXWGVQYkdMVXkya3BSclI0V2l4YytUOEhadzRITUdWZTE1R0M5UnVlSTNET3pKZGRIK05iOHN6U0NJUzFDcWtSbnZORFYxUUVBM2xwVUJQd0lHNXRBcS9NSmZid3l2MkFpNTg2MlBBUWRiaUJleC9hd1hHRnhjQUVIN1pRc0l2VzRpekpwOHQweWFRcy9jRytnenZvbEhTcXIrRUlkeEk1T2g3R0hIYm1HN2RUK0NZV1V3WU13dlpVc1dPZVpNNS90MGNVbVluZFhoUGRESi90b3BpYkE0dmZNSUQvNnlDemVRaHpEcjBjS2hsV2E0VmhHNjhYKzExM0xra0hWMTBIeW9Mc2xsYUFDcDlBUE9TWGVyNzlnT0hPRmxSanRWcDVzdnRHU1NFUnpJMUlaVDdab3h2T3NVckgrZFRsVENJeXhOREZUbldXb3ZLLzVIQzNKNU12ZSsycG9DQmZQQXI4amQrVDYrQmw1eGVLYzdhenBGTkJVU21Ec0NSdnhPck5nYWZBTGZwZU0xOERzOTdpc3g0SFdGeHZwUituMEhjWGJmZ0hkV0RoajNwRlB3OEdvcDNjZXpiZmVpbmUxekRweGVoc1VWa3ZQQWhFWDBpTVU2ZGpDNHdDbS96UWJMVzdTRFlZT0x3cXg4RFEzNzFmWWVtam1EWGYxL0JJRTNDZjlDRmhNU0YwblBPTERZOCtTL0M0eDVDeWxwTmZsRWlGMS9vTXRteVAzZ1ZvZWN3ZkVNMVZKekl3eWY1S3JjcGNZZ0R5L1lRUGlZRm9TYUxCcE12dmwxMHZ2djFUdURZOG5meEZjZmlIVGVJME40UnhONndnTU0zUE1iUnlDY0o2ZWxIOWQ0ZkVIdlBvTmVvdUE3T1ZNckJmNjBnYU54SXRGUlNYMm9uT01ibHMrdm9uanJETDA5ZVQyYnBTR1o5OXVTZlZiRFZkNkN0dFJCMnFpZWVlT0pLUVJBU3UrN1l0bE5sVXhGdTBHQ3hPN0RZSFZoRkxjT2pYUjBNanVXZUlzK3FabWhzS0RnY3FQVytKSVg1dGpsTmRIZzRzWDYvZmJjT3Npd0FBQ0FBU1VSQlZBTjZrOG1FMHluaDU5YzlmczNTMGpLQ2c0TlJxVlRuOUJoclFTSHF2c1Bva1J6ZjlKbDNsQkdIWFVOby85Z09WQjRuVmJ1MlU3UnBNN1dsQWdNWFBVMm8wV1VtcVVNVGlCazNnSksxNlJUL2ZBaDk3MVRDQjhiaTFYTXdnVUUxNUh5NUJqTkdrbTZiamFGSEFvRnhqUjBaTlJndnZnanpzUXdzSlNZQ2hxYWc5UTdGbUJwTHdjb3ZxY3F0cDk5ZHQrTWRIa1Y0Y3JQNTZSVVo3M0dPcnNFM2VRdytZaVcxV2Jtb0l4UHhqd3hBMzJzWW9VWWJwNzVLeDFRZnhKQi9MaUlvMUVWRzQ2ak1wV2pUWmtwKzNJY2hkUzdKdDE2Q1NnUkVnZHFNSFJSdDJVVGxMMVVrUHZnMDBmM0N1cVpsRFJ1UDJseE0zUzg1NEJkRllHd1k2ckFFWXNiMHBuaE5Pc1UvSFVEd2pjVTRiamc2Z3l2TzZ0c3ZCVU9nZXg5ckFnZ2I1bUtVTm1jZG9HalRKc29PNXhCOXk2TWtqazBBNlBDZVhOQVNOR3dvV25YN1l6VDBIa3pvZ05nLzUwdmY2VHo2OU5QLytCbFhFTUhhK0s4Z0NIYkFLUWlDSkFpQ0xBaUNMRGlkam85RVViem16ekk1dnlVZjI3bmljRk9nNEUvcHBMRllWdXIxM3YrbExSOWJBeTM0MkVSSmxHVzVVcGt5QlFvVW5POXdPQnkxSGlhbmZIcGZtNEFveTNLRk1tVUtGQ2c0MzJHMVdodkxsVm9MdERZQ1RuUTZuZVhLbENsUW9PQjhSME5EUXgwdGszSlBHeDBWN1haN2lUSmw1d1poWWFIZENod29VS0RnOUtpdXJqNmRLZG9rN0JvelBFU0x4VktxVE5tNUVteGhpbUJUb09Bc29haW9xSzYxUUJPRU5tVlZzaUNBV0ZSVVhIUkcwck8ybHR5S2VoeW5JMlJ3dHRJUUpSbUhVMnI2a2FRL3o0TEk3bngwdVIzV2xkTVZ1elY5TGlrYldvRUNnSXlNZy9YdVIwTnFGbTVDTzQrUGdIcnc0TUdsa3VTMDRPb0Ewem1rZXU1NlpRVjc3VnJDdlp3VTJ2WDgrL3BwakFqVEExYWUrK2hidnM0cXAxUUtZTXRUVnpYVkNuNjFialdQN0NqQXo1MmdNL3JDVWJ4d1VlSWZmelZxOXZERnBIOHo0K2NuU0I5d0Q1TU9yMnBxNUpxLzVCNU8xa3lnbi9FQUI0NGtNUEdwdVUySGJadVFST3lIaHlpOEo1blFwM2ZUcTU5YTJka0svc3l3M0gvLy9RMGRtS0l0L0cyTlQ4c3BvR3RTUnRTd1lOWk1rbnE0MHRwWGZyZUtSUnNPc25yZWNFREY1SkVYY3V0RU14UGZiTnVsZk9xRUNidzRQa0ZaSWdVS0ZIVFA2cEhsdkZZQ1RQTFEzRnJxYTRLQTZEcEc3Z1pOcTFlVFVBUG9HZVNQcGFuR1Q4MlFYbEVFNjl2WExxcXJxOWh5Sklmc0dzdWZhRWtFVkY1ZWdJaEtyMjlSSEM2cXZCQzFJb0pLaGRncTFWelU2MEVFMFV2djRqbFdvT0JQREtmVFdkQktxTFh5dFFteUlBZzBCZy9VZ0N4SlVzNFpPYm50SnQ3Ym1jV2NTWmQxK3FjYUx4MzJrbkpXN1M5aDYvSjFUSjh5aGNjOTZHSCtzUEMvZ011M0xnSGcwdDNMVzN4bHZIRXhybGJGMDJoTnhUanF1MTBBOVBoNGg3S3JGZnpwWWJQWml0clIyTnBOK1JBRVFWWURzdFBwek82MllKUHN2UDdGYWh3SnFTem8zem5OeXJRSmFVeHovMzlaN21FbXZMZWQ2eS9vU2F4R1dUUUZDaFIwalByNitxSjJUTkRUK3RsRXR6UTgyVTNGa0U5WHJXYXJHTWNyVS90M3U5VlZhSFFrVVk1NlRpbjg0QW9VS09nQ1NrdEx5K2lDajYzUkhCVUJ1YXFxS3F2cmw1QkpYNytleitwQ2VPZktGUFJpMTQ2cHJEYzMvWloxN0NRRittRDYrQ2dMcGtDQmdzNlJtWmxaNFNITXBFNU1VUVJCRUx3QnJTUTVpd0d2VHE5Z0xtYjBvaStvMVhuaEpib2NkZHJRWG14Zk9BR0FKOS8rZ1BSaUcxVm1CLzU2TDVJR0QrUERHUU80NzVYMzJPUHd3Vjhqa1ZjcmNlL3NxY3pyRS9LYlQ5QnZ5ZTZoUUlHQ3N3S3JJSWpYNG1walVJK0wyYU5PRUlSNjkyYzJRUkFjb2lnNlZTcFIxbWcwc2lBSWd0NHQyTFlBeWVkdWJCSmwxZldZblFMaEFiNTQvVTRKK1lwZ1U2RGdmd3VTSkdXb1ZPcEZ1Tm9ZZUFvMms0ZGdjN29FbTByV2FEUnlZNDZCTEVsU3BpaUs1MUN3aVlRRytDbXJwRUNCZ203QlpyTmwwZGEzMXRySEpudVlvWWlDSU1pQTdIQTRNcFVwVktCQXdmbUd1cnE2M0hZRVdwT1ByWFVPVzFQd0FKRE5adk5oWlFvVktGQnd2dUhVcVZNRnJRU2FrOU9rZkRRS3VjYVlwbno4K0FsRnNDbFFvT0M4dzlxMTYwcmNnc3ZwSWRUYXBIczBtYUdpNEtvOEFPVFUxTlJ5U1hLZUFIci9wcU4rNTlLMm4xMXdOYVRNVTFaVWdZSS9PV1JaL3VYUlJ4ODF0elpEM1hSRm5wcWFoM0FUbTRyZ1pVQ1NKR212S0lxOS84Z1Q1VldUaTZvd0U2cTcxNVRXNzlRcFJNY0pVQ3NzR3dvVS9GYXcyZXlIMnpWRFpTUUVXUUpCUnBaQmxtUkJsaEdjSURqa3B1QUJnR3kzMi9kMWZpa25Pek1PczJqbEJ1NWR2b24zOStWaWE1YXZaT1hsOGVtMnZieTY4U0MxclczbC9CeWUrWElqOTYzWXpFZVpoWCs2UlNyZnQ1bXhUMzdSNHJPVDI3NWwrcjlXdC92M1A2NVp3ZWpaZDVFODYxSDIxbmg4NGFobDBaUC9ZTkFWZDNQSjRxOS8yNXR3RkhQdFRROHk5SXFGWFB2R0QxMCs3SVVuSCtHL2U2dTZkYWxsLzNtTjBkZituZWdaejNBMjJWQy9XN242LzdOMzduRlIxZm4vZjU0ekY0WmhHRVlZWUVSRVJGSkRSRU15SkRVemM4M016Rnh6eTh5MXNqSXoxM1ZiYTExei9mVTF0MjI3bUd0bWRqTXoxOHpNVE0xWU5EUFh5c3pJQzVrUklSSWlJZ3pETU16bGZINS96SVVad0d2cVZzNzc4VGdQWmM3bDh6bm44em12ODc2K1BwelI3SE0zc0t1b2xCTXRLTC9talpmSkdUV1pubVAvU2NWNWUvQXU5dTByeHRhTW4yLzVpMDh6NS8xdnoraEtCYXRmcCsrNDZhUmQrd2QyMjg1aEZ4VWJVNmJQNDREOTNKRUlIcmZhRHJaaWhnYjcyUENUVFVwSXlGSlQ4QUIvWk5ScXRlNDZkZWZyV0xPcm5DNnBIYmdob3gyYnQrUXphMnVKYjJjREwzLzRCZnNyanJCbzY3NFFZRHRXZG9EZnZicU51TGJKREwwMEdkbmx2dWlBemUyb3AvUm9iY2h2c1IweXVPdnFMcTBjWGNmc2Y3N0h6UGxQc252Vi81RWQwN1NuL0xPUGVMazhnWjJybjJYOXd6ZGUySnRRVzFqMnl0K1pOeXFMR3J2cjlFSDlhQ1ZXdStlTW1ycjFuc2xzV3pnSmRhMlZjL0dxNUc5NGo0SUR4eml3NXh1cTdjZVovL0phcWs1bkd0cExHWDcvaTdTNk9JaTltQmt2RnJKczZiUHNYdlpITE9mdHdkY3ljZEpjaXBvUjQxaXJxNm11ZDUzUmxRYU92SjF0Uy85Q2txdnV4RVN4WnlHRm05YXlyMDBXbmZYbmpvNm1xUGpRRDgyMHRXQWZtNUQ4NE9ZRE9GK3FoMUFIMjZtalI5K3lhL1BtQWh0dzRtSW4yY1RqNDY4Ti9ObkdmcFQ3ZHY4QS9WTUJQZjgzWVFUVWxyRDI2MDlEVGx1eGJSZlhEUnJJdmJsSkZ4V1lPWTRmNXNtWDExSmNyMlZvdWk3a0M3enN0YmNvc2lwWUxzME9PV2ZudHYrdzVzdHZLYXgyczNybFcyeFRSVEx4enB0SmliU3orTVYzMkxYM2F4eFZHdVk4dDR6WWpwbE1HOWJ6WjNHdmJsc1ZpMWZtcy92N0NoU2RrZEUzM2NEZ2pQZ21jQ3Y5aG9mbXZJbE5uOENVMzQrZ2E1eTMwTVYrL0RBTDN0aklubklibWJsOW1UcThGNmRLZzFZYWpyTm8yWHZzK1A0WXNZbUpqQnM5Z3V5MitwTy8wQU91WXRuS3RiejhTU0ZibERVOE5QNG16S2Z3TEd6NVlCMzVYeGRqclQvTUU4OHRRNC9NcldQSGtORkdKdi85dFd6Wjh5MWxqZ2FXdlBRbWVsMGMwKzYrRHRNSnI5YkkwdGMzVWVPcTVxQTlnYUdkbkt6OC9CalQ3NytkakRnTnV6Ly9oQlVGZXlpdmJTRHQwaDVNSFhNMUpnM3MvdTltVnUwOFNJbTlua1dMbG1IUlNBeTk0VWJ5VWcwK0JiNktKeGNzWnM5UkdELzJ0d3k0cE0xUEdFUTd5OTlZdzZadmptRHBlQWxUYnh1S3hRZFVaVVc3ZVdMRlJ5aHRraG1lRlk4anRoUERlN1FMV0hLTC9sM0FyVk9mRHJIdVZpeC9CMk5xZTlaLzhDbTZ4STVNLy8zMVdIeDFtRFVsKzFtMjMwbU85a2VXRkJTUjBPa3laazY0Q2owdTFxOWV4Nm92ZnJDOXNXSHJrV1phbWdkUWhOY2M5Vk9EQzBsQ0tJcUNyY0dEcmRHRjdITzZDVUQ1NktPUEZDSEVqak41RHZzcnEraWNkS3JTS0JkN1MydUpFY2U1Yy9GYjNQcnlCajc0b2VaaThCQXdmZHBzRHVxN01HbFlOc3ZleVEvYXB5STdweWRkdFVkWmxCK2FRcGpjSVowaHVkMHdTUkhrNVdZekpLODdSZzJBaHQ2OUx5T3ZjeUlHY3lKRHJzeW0vNlZ0VDlvRDY2RUR6Rm40SnJPYmJadUt6djNpWk03cUNxcTFDWXkvWlRoais3Vm42b04vWVh0Vms1YTI1SjB0REJvMmhOeW9IeG55aHhleEF6UWNaZFNFUjZtTTZjeVVXNitoWk5QclRQLzMxNmRzYThuOHAxaC9KSnBwZDl6STBPNEpWQjF2T09VNXhRZjJzK09IT3BMajQwblFPZGoweWQ0V3BsMXpTZXQ4S1VONlg0Sk9ZNlQvbGRrTXViSW5DVHJ2aTVuZTlWS0c1S1NqMHhrWWVHVTJneS92Y2dvYTZrYVd2dkltY3FmZWxIKzhuTVY3dGVSR1ZmREV1MThCY0xDa2dwd3I4NWcyZGdnY0tHRE1zNXNBU0VycHhKQXJNNGpWYU9qZE81c2hWMTVHU3BzbTZGKzk3aitrOWVyTHNJNkMwWDk1aVovQ0xmSHFNLzlnZm1FOUUyOGRSdXlQWHpENHJ5dTg2bEZ0TVVNbnpTY2w5eXBHOXpJeWJmWjhWbjhaWk5EYmZtRFRnU2o2ZG9zT0FiWlZiNzdCak5jL1ovU282NGl0M01uSXVVMnVrNW9maXBqOTVIUE0vMjhOSTYrL2lsU2RDd2RRc0h3SlU5NzlqdHQrZTkwWFRwZGJhY1VFOVp1aGlpS0VrUERxYlkxdUJZMUdUWXhlRzRpS0JzRE43WGJ2MEdnMGcwN25JWlIrdjVmbjkzcDRjZktscC9vTVlITzVXYi92Q00rUEdZYXQvQnNtdkxhUmpnK040ZGRNRHE1VTdHWEY5M0hzZVdrZ0ZobG0zdDZmVVIvNEg3ZE1ScmNNNU1PNzRmdlE4eXp0TzJCcHI4T2dpU0NuVndhWkFhMUNRODhlR2FqTGQyTW9qNlJ2ZHNhcExVZU5sZ1J6U3gzQ29EbjNOVzM2bEV5bUQ2L2hzMisrd3laTVpDUTQrR3hmTlhuOXZWcmJtTnQreStEc1M2RG5IYno4MW4xc09UeUoxRDBGN0V2c3c2clJWeUFEYys0Y1NzYlRXNWwvUy9lVHRsVjkzSXErYlF4cHFSM28yU1h0dFBvbkd5ek1lK1ErWHA3N0RFTm0zQWRGM3lPZndtcEs2ZGlKbERnM1dtMDB1ZGtaSWFabWFxZExTSTJwUnhjUlRWNTJ4a2swdGVEdldSeUQrbDJLODBNelNxL0xHT0NwWjlVWDNvL01xTi9lUlBHM0J5bjZzWmJNcnFuTVgxY0VEQ2FoWFFvSjdmUVlOVnF5c3pQSWFhYVlEaHgySFNQN1pNRGwwY3hlT0k4U0oyU2NWZVZmRFV2WDcyZm1xNCtRbDZJaHI5TTRsdlNmeTI3N3JjZ2ZmNEl6YXhEVGgzaXRnd2xYZjBoaDhFZnR4ekxLWXhKSWFVVUR2dmZPMituZlBZYitLV05ZK0p0RkZEOTZFMm0rNCt5R05CYlBIT00xRWZNQUZKYS8vekZUSmovSFpSMjFlMW94UXoyQVI1Szg0Q1lFSUNIOGE3cW8xU29pSXlKUSszSS9oUGNnSWVycTZqNkxqWTA5NVNNNDltTUo5N3oxRlhQdUdFSG5xRlBaMUdyMGFoalcrekpTalpGZ3pLSlAxSFkrSzdmL3FvSE5XVk9MclUwY1p0L2pzY1RHQXhkMlVUQTVRb2ZGM05JME1lcFBIZDFkdHVCSlpxN2REOGc4OGR4OFJuZUpQUG1IYmxjK2cyYSt5NUJCdVNSRXFhbXllM0M0bS93L3lXYmZ2SktOV0dKY1ZOWTBJbGRXWWozNERTTWZQQlE0cm5mSFMxSGdwSFJZOTk1L1A0OHNXRUgyc05mUkpYWmsvditieXNDT0p5L1pTK3ZVQVlBaE4xOVBFbURzMnZIQ1R3cFpqVm9HV2FWQzFraG9aUlgyUmdFME1IUEtJMndScVF6cVpvSGpWVGhjcHhlQk54dDk5NjFXb1ZhNVVjUloreEtvckRWZ01mdElFaU5OSkVUWktEOE82dG9hTE9ZbVd2K0UySmpRanppZ3lGSXJGOVdRbE9BN05pYVdCTWxLcFIzU2ZGMU83cGpjek8vVlNFVlZJME1zSmc2VWZGdmNHcWdGKzllRWQwT1NaYlFvMURjNHNOa2RoUGpZQUdYU3BQdDNyRmp4WmkwUWM2TDdyenQybUR1WGJXUHltQnU1eXFJL2pTZW1vV09pQVpmYkhYZ01MbytFUnY1MUwwMm5qVFZoUEg2TUtnVXNNbFJVSGIzd1ByN3FvNnovNlBNV3p2Y2hwbFF5MjBhZjlOeXhrNmN6ZHZJSjdrMmp4dUVLRFFhc2VtY0RJeWRPWmQ2SVRvQ0w0aTN2aE93dnE2b0N6S0JZcWFqVmtSUWJRWEpDQWdsWmJkajQxTmdUYURncVpMZW5SVVRTMUw0ekMvOCtDL0N3YlA0L21QbmFGcmJQSG41YXo2UnJ0elBNYUpJbFpNVnp4Z0VNbTdXV0tyc2cxWElhdXR5UGUxbjRUUnlsSHp5SUFTaloralpQZkZFU2RJQUUwcG12N3VhMDJ5Zy8za2h5dXppYWtjK2pWU2s0Z29kUWJTQWh4a1pGbFF0U05HQ3ZvYkxlUUZJYjBKbmpLZDNXRlBNdHF6Z0tRZDhSWFdJOENjY3JLVmNnVFE1MVE1VWZxWUVVRTlSV1V5bU1tSU1nUTI0QmhoRll6QkdVVjlUVVB2cjRNMlVuQUxXUWtpclpWM0VRcWRQU1Jxc1JHaFZlalMxSXhNcVZLOTNMbDcveHNTekx3MXAzbDlVeCthWDMwU1Yzb2Zydzk3eCtHRlNSSm03dDZhWDUvdVNyUFJRZnE2TFIwOEE3bnhTU250aVc2OUxqdWJIWHBVd28rQzg5alRuVUh6N0k1NHFGdjdhTCtGVURtNXlRd2EzcHg1anh3bVltWDJIaXNUYytob1MrWHNDcFBjcTJmWWNwUGZBajlxTnE4dis3RzFOQ01qbWR6aTJWazZsVGR4Yi9yZnM1djdlczd0MG9ldWtkRm1mcFNVMXV6K0FlSFVocGw4Q0tyVnZZMlZWaTM4Y2ZzUDRISlVRalgvbkcyd3hPR1UzbHArOVQycUVmZmR2SzZFMERTVnYwQ05OZWE4ZXRWNlJRV1ZMTUhuc2JIaHFaNHowcHFoMEQyaDlqenZNYkdOekp6TUNCbHhPcmhsWC9YZ1h0dXRMWnJHYm45NVdrWjE1ei9nWlNuMGhYZFJrTFZueEVYdHNvY2k3UDRYUys1eHZmWE15WWRSNXM3ODA0OVJKd01mRWtPYjVqMlVkN3lORTdlT0tsRHduTmxUZVIwZDdEb3FVYnFleG1KaU1yaTdRMnA3WTNDemU5emVWemQvSHRaODhTdW94U0RQMTdSUEhVb3JjcDcyVWhMNjhQeVFZVDQ0WmV5bVBQTGlYMnp2NXNXL1VtdXY1WDAxTVBjcjkrSkQ4OWsrbXZwWkFUV2NXcm54NGhOM2h3amVrTTdsakw5cUlHMGpKQ05mdEZMeThqTS9JM2JGKzFrdVJyQjVCK1VrVlU1dGJyKzNIUDh5OTlldkQ3OG1BejFCMENic0svTXFXdlJsUW8xRHNFa2lTanVEMm8xR3ExSklSQUNDSDV0SC81NFljZlRsQ3IxYTM3MlJRWHg1MHFFcU0wT0Z4dUhDNDNqYktXM3NsZU0rT2JIMG81MUtnbUp6VWUzRzdVa2RGa0prUmpUa3lpbTc2UkRWLy93STlLSkErUDZFY25neHAydmRteWpiYmRJYW43ZVptampkWGxLSFZIMGV2MVozUmViVzB0MGRIUnlQS1poTEpWRE9pWHc0R2RPL2pQL3FQY2Njc3dPcVVra2R1NUxiYUtVbFordklkYUtab2VTVkdVVmxSaDE1ckk3aGdNYkZwNlpYY21xaFVOUHlvdWdaeU84Zjh6ME5hWlV4amMxY2dYUlQ5UXI0bWhkM29pR2QyekVPVUhlUHVqUXFJdTdjdTkxM1NrVTNwblV0cDRQMkRYWDNVNS84bmZ6QTlTSWd2K2ZDdUprU3JRUkhIemIzTDQ5c3N2V2ZmSlYxUTZ0UXpzY3hrZDR2UUJOOFkxQTNMNDhidGlTcW9hNk5HakM5RnFzTmRVc09tVFhlUi9mb0NVN0VITXZqV1hpUE8xNkkyazR6Zjl1MUY4c0pqaThtT2tYWnBCZkdUUW9HZ005T21SU212dmEzeFNDbGQxVHdreXExWDA2SkZPSkpEY3NSUEpNVnAwSmpPWFhaTEc0T3kyckZ1L2xjL0xHbmhnd2syMGl6ZlRyMXY3d0F0L1ZiOWVWSlY4ejdlSGo1S1lrazU3azlZWFhPaElla0pVWU03a1pIY2gyRHNVYmJZd29OY2xOSGNrOUwzeUN1b3JTdmp1eCtPa2RlMUdnbDZpWisvZTZLdS9aK1htTDlFa1o3TGd3WnVJMWtpZ01YTFRvQ3dPZkYxRWpiNDkvUklhT0dycXlnM2RMWUg3U2hCVkxOaFZ6MjE5T2dhQ0J5dmZmSThieG81aWUvNFdHaTBaTEhqZ0JxSTBUYzlPWnpMVE96MDBTYVpqOTU3RVdnKzk4ODcydlljQUo5QUlPSHovT2dHWEgrQlVzcXlvSkFtMVNrWlJCRTYzQjZjaUllbDBPdG50ZGt0Q0NGa0lvUkpDYUV0S3Z1K2VrcEt5N1lLOElSZTRwS3IyMjg5eGwrOGpMdTdNS2c5S1MwdEpTa3BDSGE0OENNdEZLa1hmZkVkcXAwNm9uY2U1OWZkL1pPak1weG5mUGNoajVhcGgxTDFQTWVmWjJXUVlaTURKcUJ2R01YYlJDa2FjR2YwaDcrUnZ2Mi9rSCtiOVNDZ0htMDJDZWlRYUpTU25KT0dSSkVsUnk3TFFxbVVSb2RVUUVhRVIvdUNCa0NRSjRZMHZDRUJKVGUxWXBDaWVQVUJtZURqREVwYXdBR3o5Y0EzalpwZWhTSkVNSFRXSmNkMmJ1ZUUxSmxhOU5DZkVMNWpldFJPeFo3aGdreUxFdnBGL21IZXNtUm5xcG1XNmg1QjhPV3orSUtoS2tsSEpFbXBabGdueXN3WEF6ZTEyRjZqVjZsOGRzTGtqWW5ESHBrRkM0cG1ac0xVU0lqNFZOT0ZsdGNKeWNjckVPUzh3OFF6UG1mZmFXMmZjVHIydC90TVQrTlk4U0pJWDFDUUVrb1FreTk0SXMxcUxTcU5GMWtZZ1IrZ0M2UjVJa3VSVDJyeUlhTFZhdDhUR3hrNzV0UTJPUjJmQ0pVZEJ3cG5weG8yVkxrVDhKUkNtQmc5TFdNNnJmRk82Y3graGFSNXV3Q05KVXBER0ppRkpzcEJrRlpKS2c2elJJbXQxeUZvZHFnaDlrOGJXTEo5Tk1admp0eW1LNXpEUTdyemVSZmJ2V3Y3V3RudDRkTU1TbG90UWhCRGxsMS9ldTdTWkNlcmZmSlJGVWdocnJpekxnVTJsVXFGU3lWNWdrMlZaZUR5ZVlGTlVBQjZQeC9PQlNxV2FjRjd2Sk15N0ZwYXdoTVVuRFEwTlcxdlQxb0syRUI0MldaYUZIOE84d09ZRk43azFqYzJQakhWMXR2d1RkYURHYXVXSFk3WVRzd040UXRPZkZVWEI3UW5kZnZXaVZMTmk4U0lXTFZyRSt1MUZ2N3JicXlrdll2V0s1U3hmZHlFQzZFNEtWcSttMG5FUnZOMk9LdGJuZjNiQzNmdTJiNlN3TkxUV2V2ZVdOUlJWdEY0bFdsbThrNVhMbDdObXkrNW04OVBKWndWcldiNXNHWHRLbTdoNFBpdFlUNVh6ZjNQckJ3OSs5MVV6VUhNRDdsQXpsQllhV3hPZ3FWQ3AxRjVnODI4UTREWVNnQkliRzVzUEhBNTlHRFllZVBwVnJsKzBqajhzZTRlK1Q2M2l2NVgrQXVSRy9yN3NiZkwrOWdMcGMxWlNGampKeFVQL2VvMis4M3piNHk5ejZjd2xmRlFqZnVVelZNWmdNRkM2NHkwV3J0N3hpK3U5dTJRTG82YzgxZnBPNng0RzVWM1A5cUpTS2lwck9QK2ZLVHRQVEh1UXdvdUFPMkhkTTM5aS9iNFRFNld0WC93d3E3ZVhoZnkyOGRXL3MrMkF0U1ZHbG13aWQrQ2Q3Q2t0bzdJNjlPR3RuZmQ3N24zaWJjcktLN0RhbTJvN2JIdldNSDMreHYrSkdkcWpSNC92ZmVEVjNBeHRLcVh5RllZR1k1Y1gwSm8ydFUrRms1clNQaVFoU1NoQ0NBVlFQQjdQQnBWS2RWZlR1NnJobmxFanlHenZMUk5admY0OTV1Ui96WVpiZXdNcUJ1ZmxjdGVnQmdZOS8wVlFselU4K2NEdkEzK1ZGMzNKeU0zSDZXT1NmdVc0Wm1MWXJXUFJWWDlDWWNrSnRKN0tNbXJjT2xLYk02UW9Uc3BLeTVBTlpwTE1vVFdRRGxzMTVaVld6RW5KR0hYbkthOU9VWERVbExGcCsxZTQzVzZRWmRUKzVHUkZ3VnEwazFMTFFPYk5uTzZkV0tkMVRVQUdlMDBWbFRaSVRXNjZaNmU5aHJJS0swbXBLZWlDTCtaMlVGSldpU1hsREpkdVZKeVVsWmFqajdVUWE5U0ZkS0t5ckJTMzNreFNyT0gwQU41aHBjb0dsbGd0WmVVMUpDVmJtdTdYTjA0NmN4Sm1RMmc3MVJYbFdKMXFVbElzSWM5SEFSUzdsYklxRzhrcFNhR0p2YzVTNWkzWnljTGRyN1I0ZUJXbHBlak1MV20vRkxlYjZVcytRYTJXVzFoSnhUdDJZT2g3QzdPbVQwT1cxU0huYk4rK2czRlROak41Y0doKzVzRHhrNWlhL1FDbFU0YVFjZ0ZqWlhhN2Zjc0pmR3VlSVArYUFnRWZXOEFNOVd0c2FyVUt0VnFOMm1lUEVteVMrc0tqQ3VDcHFhblpFQmNYMXdSc1JKRFp2cWtVS2lVMkJzY1JmNkd6bXN2UzJrRnR5VWx2NEsyZGV4bVdmVFVYZFh4UnNURjMvQTI4V3VnbVJWOURsYkV2RzljOGowVUg5cklkREI1MEc3cjBuc2pXTW1MNzM4K0t4OFlCc09YVnYzRFgzUFZrWmFaUWV1QUFNNVovenFnc3d6bnYzaE9UaDdOKzV3L1lEbFF4YU1oMXFPVkVGcTVkUm1jZFBEWnhDSnQySDZibVlBMURobHlIbkhvVkc1Zk1QQ1c0amUvZEJuMy9DV3pOMzRKZWRqQmd5Z3M4TVNHUHRmTWZaT3FDcldSME5sTlUyc2lyYTliVE44MklyWFE3Z3diOURsMTZGZzZIaTVvZ2pxRXhtWkdNV3RYQXFLNVFzMk1KWGFkK1NzV09Gd0U0c0cwcG84Yy9TbXpuTEp4VkpReWE5aUt6eC9UR1hyNkwwU051bzhxWUJsVUhTQjN4S010bmp6MXB2OGZudHFYRW5FdnBycy9vbXRzSGEvRlg5Sno0QWdzbURhUnkzeVpHanJrZmJYSUdOUWYzTVhENjh6dzVjUkJRd2Npc2ZsUW1kQ2FXR2c1VW0xaTUvbTJ5TERvMlBuTTNqNnc5UWl5TjJLdUtjR2JjeWZZVnN3THZRa25CS2lvNi80YVFJWFZXTVduRU5XeXJTY0NFQTdldG1zRkRmSXB6NFRwR1RudVdvbDNibUw3OFc2WU9TZmFkVk1XVWtiOWo1OEVERkZmS0RCbXlHVXZ1TFN4NzdDNUt0eTVqd3B6WEtOcFZqcUg4TnRZOXBXUGNySmNZMTk5YkZvbXhKNE03bDdPcW9JUnBRMUl2MkN1eGI5LytMMDlpaGdacGJLRkJneVlUMUd1R3F0VnFTRTV1aDlsc2xxS2pvNldJaUFoWnJWYXJaRm5XU0pJVUtVbVNVWktrQkNHVWZVSW9vc1htckJQM1BmT1NXTGozYU9qdk5jV2k1NnczeGFGV3puSFZIUko1czVlSy9RMnRYTzhDYkVlT1ZJaERodzZkOFhsZmYvMjFhR3gwbkZXYkh6NTNqN2orankrSC9QYkRCMCtLeEY2M2lGcVBJb1J3aUQ5ZmY2bDQ4SVd0UWdoRi9PZTVlOFhWOXkwTUhCdmM3dTJYeFloWFByZjYvbmFLeGtiM1Nkdis4YVBGb20xaW9raHN0ajM2eG1lbjdIZkQxOHRGVEs4N1d0MTMvUE9YUmVLVjk1elJjN2lqVjVTNDVyNW5oTXQvL1FhN3FQMXFsVWpzZUpYNHZ0WjdIMSs4TVVQMHVuMnVFRUlSejk3ZFIvenU4VFhlOXI1YUlXS2tSUEhoajk1emIra1dJZDdhNyt2TGZ4ZUx4Q3Z1OUxiaktoTlh0NDhYcjN4UzVtdlhMWTRkcnhGQ0tPTFJtN3VMKzU3Tjl4MVhKVzdzMWs2OCs2Mzk1SDIrSWxHOHRkOHBYdnZ6OWVMMmY2d1J4ejVaSXJyOWRvNFF3aVorZjNrNzhmZjM5d2doRk9HcDNTTjZ0YjlVZkZIckhjL2EycWJydnZibjY4VHR2dnZZOFBTZG9sMi9lMFc5VUlSb09DaDZ0V2tuUGo3YTFONWJmN3RGM1BqdzBwQStmUEhHSTZManRkTkVvMUNFYUNnVlY3WFRpRWZmTEF3NTVzL1hkeEJQYnlodE9XL2ZuQ1Y2M1BGRXEvZjJ4K3M3aU9jK0xHOTEzK3NQM3lodStkdktDL1plS29xbkNCZ05EQWNHQWJsQU55QlZrcVFFSHhaRnlyS3NVYXZWcW9pSUNEazZPbG95bTgxU2NuSTcwdFBUeWNyS29rK2ZQbHg3N2JXb1pWbmxqeWhJc2l3TFJWRWtYeERCYjQ1Nm5FN25lMXF0TnBSMFRYSHhyN2MzNEU2L2duc3lUcjg4YWR2Ty9jUmYycFd1T2k1cTJiWHJTM3IydlFhakRLQmx3T0E4SHR1NUd5YjJKYk4zZnc3TS9UUGo1Ukw2NXZWbDVNaWgrSW1rQmd6c3k1eTdidVRBeU92b08yZ29RL05PenNsbTZYOFg1UlYzL1d4OGptUEdqZzJZWGpxZGpoM2JDbEQwc0dqdVg3elRxcXFJUGJ0MEtNQ3VuWHNZT01GTEdtREtHa0JQODZrTlh2ZUJiWHdtOTJadFhsS2d6VmlURWFoa3k5WUR4Sm8vWU1hTUQ3MDZqZHRCNGU0U2hxZDNQY2tWOVJnTWFqQWFNQmxpTVJqdE9PdzJzTzVqeTI0N2NzSHJ6TmpxTlJXZDdsTDJITFNSbmExang2b25XYmppUXlxdERtb3Fpa2tkZFhQZ2lqMXplNk1IMENXUm1sQkRWUTNnczhxcnE2c3dKWWV5Z1JUdS9wSzhBWGQ2dFRwZE1nUHowcys3VDlNWWE2S3E3TUk1Tkd0cWFyYlFzdElneEJTVkpFa0pyQnNhRWcwTjhxMnAxV2cwR3E4cDJzd2NGVkpUdHE0Q2VNckx5OWVucHFZK0ZCVHlaTVY3Ry9oWTdzZ3IxMlZ3MnJYSFNpTXJzU09ncEFBQUlBQkpSRUZVZHhZemNzUkZsdUp4aHNYWkNiM0hzRzkzTGdYNUJheGUramVlWExHZGZXdm5JZ01Ubm55WC9ydTJVYkJsQ3pORzlXUDN3bzk0Wk1TSkMwUXFkNnhnOEwxL2IvSDd1Tm12TVcxRTFvVVBwaGhia2c5WTBub3hZb1IvN1lZYkdUVTU5cFNQek92Vjh6cnRGRVZwZXRGUGVxS2VBVU52b25lQzk2OFJJMjRrSlQzbDlBWlA5akZFZU9FVFVGQzBaZ2FQdkpFVTJYKzltMG5ycktkOHkwSW1MUGlDL0kzdjBUWEJ3UG9uNzJSK1JSTVVxZVVUKzBXTkpoTldxN1dWUHNnWGRLUnNWaXNtaytHQ3RiZDE2OGRmTlFNMTEwbk1VQkdhdHhia1cvTUJtK3hQYUdzQ3R3QlZlQ0E2bXBiV2FaK2lLSnQ4c1F2ZS8vQkQvbDFuNXNXYmV4RjVCcy83NkEvZjhJbW5MY1BUREJjVnJsbGkyMUpjWEJMeWxjM092b3pkMi82RFZRRndzbVhqZG5KeWVnWW1sU0VobFJHM1RtRHhNdzlUc1c4L0RwOEQyV3ExazU3ZG40blRadkhRK0w3czJYZmdwRzJiczRlemZ0MTdyR3UyM1RXNDZ5bjdyZFhwVUtxcmZIMDhmVm4yeEJUbUxzMC9yV096K3c2azZzQlhKR1gySmpjM2w5emNYTko4UVlYczNKNFViUEdta3RRVWJtRlhWVk5IWXMxR1NrdThrY0VkMjNZRW5xMDZ2Uys5bGM5WUdZZ2FLdFRVV0lFRUJ2UlA1bUNGTTlCT2RrYm5Wb0gyOUZTYVRBWm0yQ20xeGdhdWw1bWVodEVnVTFGYVNrTFhYblJOTUlCaVkrMjZndE8rYkU1MkwvYnRDYVdLejg2K2pPMWJ0bmxYZzNPVWtiLzk0UG4zZCszWlEwNTJ6Z1Y1UDl4dTkrWVJJMFljQ3dJMkZ5MFRjNE55MTZTUVpOeGczNXBHbzBhcjFhSldxOVYrVVBORlIyVWhTUXJOelZHN3ZXR3R3UkExbUlZalBGN3dIVlpkQkFQbjd2ZStBUEZwZkhMdjFRRE1YdndxNzFjNHFYTzZ1WEhPUzJUMnVKelhidlJxQm05L3ZwOSt2WHBoa2k4cVhDTnorQVR5WHI2SnRLNXZrVFgwUHRZK05abVVRUk9ac3Z4OWNuS3VJa1ZucGNyWW40M2p2R2JYWnl0bU0vR1pqOG5zbWtKeDRXNG1QZktTMTNUQnpVUERlN0JMU1NmSjZLU3d4TTN5OVlOUHJtOW85U1FsbjkzTEs2Y1BaR3J2WjhuSnVneWpJWlZsQmUvUTlUUXV0V1BUVyt4Tzc4d2o0MDdOTUcvTUdzSGlTUjh4c0dkM3VtYW1VMVZ5a0s2ai9zYXJNMGR4MXlOL1orWGczekZnNjRzNDNZTGtJRk4wM01TN0dUcStINXV5T21NeFJ5RGpXL3RCbmNTaTVmOWd6TGlyV05ZMUU2V3FqRUZUbjJmbW1ONDhOUDhWeG82OG5aemx5VmkwRGc2V0NaWnQzVXJPV1ZIZzZabjM2a3VNSG5NRGE1L3FpczVaU2FtdEhmazdWNUUxZER6bUo2NG5iL0NuNk94VldCTFNUdnVxNllOR1lwaDJHd2NkaitGZit5ZHIxQlNHTGIyR25MeHJpWlZkS09ZbW1wK1haOS9CeS9uRkZPK3JRRmR5RTZzZTB6Tmo0WHNNeXpLZS9ZUzFIMkRqTGlQTGw2VmZrUGZqMEtHeVQxb3hRVjBuTUVPRkpNbEIwZEFtVGMydnJXbTFXcVJ1M2JyUjBOQkFRME1EalkwT3FiSFJpY3Zsa2hSRmtSVkZrWVVRYWtEN2YvLzNtUEhoaHgvZUJyVC9KWU5NWldVbFRxZUw1T1F6cXhUYnMyY3ZuVHRmZ3ZZYzE0cldWSlZqZFd0SnNZUytYVTY3bGZMS2Frd0pTWmowMmhiblZOdGxVcEl0cUg4bEh3bTN3MFo1UlJXeGxpUU1PbTN3RHNyS3FraElTVWJiN0Y1dFZlWFlNR0l4dDJJQktFN0tTOHZSbVMzRUdrSWR1dFVWcFRqUVk3R1l6NEdCcDFCUlZncTZXQ3pCYVRtS2s5S1Njb3lXWkV6Nk0wdkpXVDdySm5hblBjd1Q0M3VIdEZOWlhvYk9sSFJhdE80L1JiWXZtY2FUcFRtc25uUCtYVVpDaUxLYmJocjU1M2ZmZmRkT0UwV1JEYkJKa21USHk4UG1sQ1RKTGN1eUlzdXlvdEZvUkVTRWxvZ0luWWlNakNReU1wS29xQ2dNQmdOR281SFkyRFpJUFhyMHdHNjMwOURRZ01QaGtCb2JHM0c1WEZJempqWU5vR3RzZER5aTBXaW1ob0V0TEdFNWY2SllpMW02cVlUeG93YitUOW92V1BVcTZVUEdrV0k0LzE5TnE5WDZVa3lNNlFPZ2dWRHV0WHBKa2hvQWh5UkpMa21Tdk54cmFyWHdBbHNFT3AwWDJQUjZQVkZSVVVSSFJ4TVRFME5jWEp6WEZQV2JveXFWU3FoVUtzbmo4UWhabHZCNFJIQ0psZnZRb1VOcjB0TFNwb2FuWGxoK1BWTEQ4b1hMcUc3Rmoyako3TXVvQVJkK3pWYlptTWI0VVduL3N5Y3ljTlQ0QzliVzVzMWJkalh6clozUXZ5YkxrdkNibno2c0NqSkIxV2kxR2lJaUlvaU0xUG1CVFVXUXI4MFhIWlh4eGtZRDBWRWxQZjJTL1c2M2E3VXN5eVBETDBSWWZoMWk0dFpKazhPUDRYOGdqWTJONjBhTUdGRkZxRi9OQmJna1NRcXdlUkNvRFExbDhRakdMcjl2VGFlTElESlNqNnpSYUFJSEJLZCtCQmZHK3dJSkhyeVZDRytIaHlRc1lRbkxUNVdpb3FKUFd0SFdnb01HbnRZb2lwcW5lR2cwR2pRYUxWcHRCRHFkRHIwK0FHeWFRTGpVcitLcFZMSm96dllCZU16bStBSWh4Q2ZoWVFsTFdNSnl0dUx4ZUhiMDdIblo5eWZSMWxxd2VhaFVUV2FvRjZ2VXFOV2FGdHFhd1JDRldxdlZvTkY0YlZTWHk0dUFicmNiYjBXQ2dxSW9BWEFUUW5nQWQzMTkvYi9kaW5KbHJVdW1YUnRENjVFNWp3QlZzeUozajR2eTR6WWlvZ3pFUllZcHRuL09zcnRnTlRzT1ZJSXVpWEhqaDZNUFA1S3duRU01ZEtqc1B5ZlIxdnlNdVVwb3Nic3F4QVQxNDViZnQ2YlRlUU1KMGRIUnFMVmFMUnFORnJYYTJVb1F3ZDFpb1JmQWs5SWw4KzFMSDV3N01USENrMW51aXVUcGNkZlRKeUVTTDIzUk90Nzlyb3BLeGNTV3Y5MkN2eVQzeUtGdkdiOXNHM0dXZUk1WEhxVnpyenorT2FnTGNuaU1XNVh5SFRCbkN5eWE4YjlwWDZ2VFk1QXJtZnJRRzR3SUExdFl6cUVvaXJLdlg3KytlMXJYMXBxVzFzTy9ZSXNrQ1ZtV1dna2ErRTFRdjdZV2ljRVFoZEVZZ3h3UkVZRlhhL09hcEUzZ0p2dTBOam1Rck9zSHR1UGxoOXo1RDl6MDV1b0hiK2VoakFqbTVIL3Q2N0tYdHVpOWU2NmgrUnJqYjJ6OWxPNTVWN1BzOThONGQ5SzFmTHA1TzE4MVhDUUQ2ZnZYV2dWbEZhSDc3RFZRWEVySVN1ZUtBclp5MkxvTDNHN09hUFZ2QmU5VUtTa0d1ek8wQTdicWx1MmZTREx5aGpCMjlGQk9GUEYzTzZ3VUY1ZGdkN2JzWEUxbEdTV2w1YlRZcFRncEt5bW12TW9hZnJzdllxbXNyTnhZVm5ZNEdOU2NCTllMRFNtaFVrSzF0ZUNnZ2Q4RWJkTFdvcUs4MmxxYk5pYmtpQWdkV20yRXp3SFhsTUdyVXFtRnZ5SWhLSWpnYXd6Mzh1WExWd0xmcGNURzRHZ01wUzJLaTJ5WlFHalFhbEg1bDdPWEFMVVdnK3JpR01qK0ZwajJFT1FOZ3VHRFlJR3ZPRzN4RE9qWkg2Wk1nS3plVUZUdC9mMmhNVEJ1TnBSc2dTRkRZUEFZOE8waTF3eTdmUnlFZTFaQXo3Rk43ZVF2Z0FGallIQXVqQmtMMlNPOHY4OFlDVU5Hd3NneE1DZ2JKaS84aVdicTJtZm8zTGtYVTZiY1E5Zk9QVmk1bzlTM3g4bVRFNitoNzlBN21EcjU5L1RNSG81L2o3MXNCMzB6TG1YODVEOHhmdVMxakptNU5QeUdYNFFpaENpZU5ldlJMMDloaHJZb2VQZVZUWW5nOUE0dnNFVVFFYUh6SmVrYWlJbUpJVFkyRm5Wa3BJNkdCcTg2NTNScWZMNDJkZk1JYWJCSjZnRThkOTg5MFhyYjZCR3Z2L3pwZDdOSFh6djhsRGQweDNYWDhNRHJteGhmdkpmcVl6WGNPZnBhTHJsWWNsM2RFdFd4Z2owK1ptYUhBNHJYdzJOYm9YQVhtTlN3ZGk0ODlCU3NmUXllWEFrSDE4Q0lGWkMvNHN5YTJya05kdTZHRExPM25jQ0hKUk5XellHYUhaQTZFWjZaQkdlVnY2NVVNbTNTLytPeHRkOXdhN2FaZmF0bU0yRGFZNHpZdmhodHpXNFdyTEt5cGVwelVtVlFuTTZBdHJwanpWSzBBLzlFL3NKN3ZSRG9kSWJmOG90UWpoNDkrdDZMTDc3WTJKcTJKa21TM3d6MTBFVC9MVUlqb2NHZ3BpVWlRa3RrcEM2Z3JabE1Kc3ptZU9USVNEMDZuWTRtWDV1R1prbTd3ZWtmSWFrZmsyYiszNy9kNlZjVW53NXQwWmJQdnFCU1orR2VxN0s1NS9KMnZKRy9rd0EvNWE5ZFpNR3RRWnFWVGdmYnRvQWVtRGNUWnN5QWpidGhUK0ZQYjZyblVDK28rZHZ4UzU2dk9zZVVBcnBxYjNyMzJUbi9DaW0wWnpBZzI5dEl4c0JCcUFzL3AxUUJqT24wVDY5a3pMRGJtZnZNSW5hWDFRVEFNN04zZnc2c2VaenhrMmV3WlBrNmJJbzYvSlpmZk5yYTkwODg4Y1FYelVBdFdHTnJrZUxSSE5SYSt0WjB2a2lvSVZCMVlMRWtJa2RGNmRIcEl2SDYyclQ0bzZTaHFSOHFFUVJxQ3Q0SXFmdVYrYzhjLy91QWprdFBIUUJvWk9XbjMzTGJ0VmZTSjlYQzlmMzYwczFWd3FhUytvc0UyTUJvYU9rTFMra0pJMFo0dDNIVFlOVVRaK2F6VTl3dDl4bFBVUHNjWU1vNW45RWFPWmFsMi9jeWYvb3R5Qlc3R056N2NyYVdlVFV6THhYVFI0ekk2OHpXcFg4amIvUk1sUEM3ZnJGcGEydi8rYytuSE0xTVVMKzIxdW9TZThFWUZGeGg0TlhXV3ZyV3pHWXphclVhMldBd29OZEhobWh0VFVtNzZ0YTQybnpnSm5ra1NYS3ZXYm5pVFNIRS9wUGZrZ3BEaElvZnFtcTlMNlNqbGtQMUVnYmR4ZnZWN2o4QURoUkMxeHpJemZWdUtVRjE4SG9qV0N0RGd3b0FDVVlvOVRIeWJQdnNQSGZTWU1ic0xxZWtPcWdYU1psazZmZXhaVmNWQVBzSzhuRm5YZTdsSkhQYXNMcjE5QjQ0akJuekZqSWkzVUZSaVZjM1BERVZVMWd1RW0zdG05bXpaKzlzQmRTY1FmNjFWbEk4WkVKTHAwSzFOYjArc3BtMjVtVStVVWRIRzZtcnE2TyszbzdEMFVCall5Tk9weGFOeG9YTDVVS3RWZ3UzMnkxNVBCNmhlTU56UWdnVUVJb1FlQ1pNdUxQMmhUckxhenVtWERjUFRreGJOUG42SzdsNzFYdDhzVE9lbXFvcWtyTDZNRFJvN1lTTFRkS0d3c3l0a0pNRm1lbmVLT2JRaDJEdU9COSs1SHI1a2JPeXdKQUVHemRDTERCaEl0dzFDQloyQmJNQk9KL1VkdXBVWnM4YXlxMDl1NkEzcGJGaSs0ZGtHaXc4dGVDdmpCclpoK1daYWV6WlY4NkM1ZTk3MlYxckN1bWZlenZtakN6a21oSnFFc1l3TDlmTC9YdGlLcWF3WEF6eTQ0OC9ybjMrK1VXbjhxMkZKT1FHMFJLSmxxQVdFV0QxaUk0MjBxWk5HK0xqNDlINS9DL1NhNis5U21scEtSVVZSemgycklxYW1scnE2cXpZYlBXbnkvcWh2ZTY2SWZwMTY5YXRraVNwOTBudnp1T2l2TGFlaU1pby8xbUM3cytOM2NOaGc0cHFzRmhBZDVxWHJxNEVSUWRtNC85dW9yb2ROc29xcWtoSVRrRWZuS0d0T0ttb0tNZXROcEdjRUVweGZUSXFwckQ4ZWtWUmxKMlptZDJmMnI5L3Z3TXZpMGU5YjdNQmRoK0xoL04wV0R3TUJpK1FtVXd4eE1XWnNWZ1NTVWxKNFpKTExxRkhqeDdvOWQ3UHBicE5temJVMU5SUVYyZkRicStub2NGQlkyTUVXcTBUbDhzYklWV3JWY0x0OXJOK3lIZzhua0N5THVEWnNHR2owMnExdmhvVEUzTnlZRk5wU0lvMWhVYzZTSFFHU0QxRHJTczI0WC9mYjdYT1FHcHJIWmUxV0pKU1d6MUhxemVTbW1vTUQvcEZKc1hGeGUvdjM3L2Z6YWtqb1FwTnE3djd0TFhtdnJVSUg0T0hWMXN6R3IzYVdrSkNRZ0RVQUdTejJZekpaQ0k2Mm9CZUgwVmtwSTZJaUFpZnI2MTFmMXRRMUNLdytJTEoxT1k5UlZIV2g0Y3hMR0VKaTE5Y0x0ZUhsMXpTZVg4elFEdWxiNjAxdjVwR293M1FFdW4xVVVSSEczenBIZWFBYnkwQWJBa0ppY1RHeG1JMHhtQXdST0ZOLzRpZ3FTSkI3VXNCVVlrZ0N2R1FFaXU4aXk2NEtpc3JYdzBQWlZqQ0VoYS9mUG5sbDVzSVRjWU5BSnRQVzNPZlhGdlROS3NIYlNwME54cTl5YmdKQ1lsRVJVV0ZBbHRTVWx2TVpqTnQycGlJam80bU5QMGpJa2hyMHpTUGtyYlEydHEyVGRydWNybVdoSWN6TEdFSlMzMTkvZklycnNnOTFBelVHaytrcmZtWDFHdGVOdVduSkRwUmVrZFNVdHVXSHBISXlFZ3NGZ3R4Y1hIRXhNVGdUZi93SnUxR1JHaDlLU0FCY3pTNHpFbzBxeUYxUzVMazJydDM3MUxnOEs5dGtESXp1NFZwd2NNU2x0TVVJY1RoTld2V2JHMU5VMnVtcllYa3JiVVdDZlZYR1BpNTFwcW5kMFJHUnJZRU5vQ2twQ1RpNCtOcDA2WU5ScU9ScUtnbzlQcElJaUw4NEtZNWJWL2JaWmRsZjJlMzIxOElEMjFZd25MeFNtVmw1Y3F4WTI4LzNreFRPNkcyZGlMZm10Y0UxUklSNGMxWkN3NFl4TWZIazVTVTFHcjczblhJdFZvc0ZxOUo2ZzBrUktQWDZ3T0JCSzAySWxoekU0b1FPTjBlNGZZb1FoRk5yQjkrZE83YUkzdnBzL21GbTBNNEhOd08zdnBvQjlOWGJPTHgvTjBjYVJUaDBROUxXSDZGNG5hN1A4N0p5Zm44TkxTMWtLWDEvTlVGdmxRUFh5VlVSRkRBSUxnZTFJekYwdmFFVmxRZ0FhbDkrMlQ4Z1lTWUdDTUdnd0YvSFdtdzFxYlJ5RGpkb05ab1VLbFVJQVRDMXprL3VCMDZlTUM1WU1OL2x3UUQyN0wzMS9ONmlaTXhmYktJc3g1aXdxclB3aVUxWVFuTHIxQUtDd3ZmTHlzNzNMeTZvQkZvREFZMUg2QXB3VFdoVFZIUUptMHR0QjdVR0FnWXRHK2ZmTUkraEZRT0ppVzFKVDQrSHBPcERkSFJYcE0wTXRKcmtqWnBiVHJNYmFLRklUS0NDSzFHcUZTeThHSmJ3RmIyU0JLdWcwL2Q5N0hMNmZ5WDk4cU41Tzg5d2wzWDVwSFR3Y0xFRy9yZytxYUlyeHZDa3lBc1lmazFpZFZxZmJWWHI1d1NIM2dGZzFwd3dYdHp2aldmdHFacVJWdlRoVlFZbUV4K0U3VHRTZnNSQW15SmlZbFlMQmJNNWpoTXBoaWZTZW9GTjUydXlSejFSVW1GV3ExR0JOR0xOR2x0a2h0d2Jpc29lRVVJOFNWNGNDc0NsY3JYbkt4Q0pXd1VWN3ZDTXlFc1lmbVZpS0lvWHozLy9LTG1BWU9BYjAyU0pDZXQrOVo4SnFoR05HbHJUV1ZUM3B5MWFFeW1HTXhtYjhBZ01USHg5SUVOb0YyN2RpUWtKUGh5MjR3WURGR0JJbmsvQTRnL2tBQUtpcEJRYTlRQklrcEpDakJndXNkZE43VGkrUEhqTDRDZVBwMWlXYlc5a0tNMk94OTgvQ1UvQ0ltR1JuZDROb1FsTEw4UytmYmJiMWZQbURIRDFncW8rVFUyUDZnRnAzaTBXSEdxaWJuRFgrUWU1VnZoUFphRWhBVGF0VHQxT1dRTFlJdUppU0VwS1Ftek9kNlgyOVpra2dhRG15eEJuY01qZEhvOUdwV3ExYVJkSk1rVkYyZmU0SEs1WHJ6N3hpRjA1d2lUWHQvQXAwb2lBMkpWNkhWaFRxNndoT1hYSURhYjdZMnVYUy85SnNnRWJXeW1yYldhak5zVU1OQ0k1cUFXV3VUdUpaQk1Ta29pSmlibWxQMXBGVm5hdDI5UGRYVTFWcXVWK3ZwNlh5RjhJMDZuRTZmVGlhT2huaU8yUm93bUUycVBrOFpHQlVWUkVFSUlSVkVVRUI0aGtDU1FrU1RWSjU5ODh2SlZWMTNWYTlwTnY4a0djTmVWYy9XMmFQNFVIMTZwS2l4aCtSV1lvTHRmZmZXMXphMzQxWUpCellVMzE5VWpTWkxTUEJtM3lhOFdXalpsTUVTSEZMeTNiOS8rdFByVUtyQnBOQnFTazVPcHJhM0ZacXZEYnJmamNEaThsRWFPQnI0K1ZvY3FNZ3BKdUdod0s4SXRKRW10VWdraEZEd2U4TklhU1lvQU53TFgxVmNQTE52ejVhNUZYM3FpRmlkcEZkNzUrSE95Y252VE1ZeHJZUW5MTDE2KytlYWIxUTg4OElEMUpDWm9pMlJjMzZwVExkSTd2SDYxbGxIUXhNUUVrcE9UMFdoT0R6Uk95S2Rxc1ZpYUplNUcrMnBKSTRtUGk4T2tqd0NWQ2ttbFFwSzlxQ3ZMS2lGSkNDUkpTSkt2WWwvQ0pVbVNNL095N0UybEpTWFByaTg2VE0vZWZYbDZjT2Z3akFoTFdIN2hVbHRidXlRam85dUJrMmhyZm1Eeis5WjhBWU1BcUlVdzRucWpvUDVhME9pUVJOem1oZTVuckxINUpTVWxKWWpTeU82ak5Hb2tQVm54Y2JiWnFLKzMwOURRSUJvYkd5V1B4NE5hcmNiajhRaWZCQlpabGlUSm1WaFQrdEtNMy8rK215ekxnOEpUSWl4aCtXV0wyKzNlOHVpanN6OXVCbW9PbW5MV1RoUUZEVFpCaFplMUk1ZzhVdTh6UVUwK0U5UkNTa3JLR2ZYdHBBejRVVkZSSkNjbms1aVk0RXZjamNGZ0NDNlVid29tK0d1N1ZMNUFnbitwUG9JcUV1NjY2KzdqaHc0ZGVnRW9EMCtMc0lUbEZ5MC9mdnJwcCs4OSsreXpEYTJZb0k1bUptaWd3aUEwWUtBV3dacWF2OERkWUlnT0xLUG5OMEdiczNmOEpJME52SUdFMnRyYWdOWVc4TFU1dmRUaGJyY2J0OXVOeCtOQlVacUNDRUlJZk9BbUNTSGNnQ1JKa3B5YTJ2RnpxN1YyUVhSMDlOenczQWhMV0g2WmN2anc0V1Y5Ky9Zcjg0RlhNS0ExTjBIZFFSVUdvbWxSbHRCZ2diL0FQU3JLNEV2dGFFTjh2RGUxNDNRREJtY0ViQUFkT25Ud1JVaHRORFEwME5qb3dPbDA0bkk1ZzRETmpjZmpFUjZQUndvR09KL1dKdmxNVXBja1NTcWpNZWJmalkyT05LMVdlMWQ0aW9RbExMOHNzZGxzYnlRbnQ5OUZhR3BIY3hQVVJXalpWQXNUdElsakxiakFQWlNPcUVPSERtZlZ4OU5hakMwNk9wcjI3ZHNIMFJzRk0rNzZxeEw4eEpTYVU1bWtUcUR4d3cvemx5aUtVaENlSm1FSnl5OUgzRzczUjRzV0xTcWc5UWhvUUdNN21RbnFCeld0TnFKWmRZR0JtQmhUZ0k2b2ZmdjJSRWRIbjFVL1R6dER0bjM3OWxpdDNrVmVRclUydjBucXdlUHg0UEVvSnpKSkVVSklQdFhVT1d6WXNQTHZ2eTkrdmtPSDFBNlNSS2Z3bEFsTFdIN2VJb1FvM3JGang5by8vZW1odWxaTVVBY3RBd2FlRTV1Z1hrMU5wNHYwc1hiNE9kYThCZTdKeWNsblpZS2VrY2JtbDQ0ZE85S3VuVGNGSkZLdkIwMGsrcWlvSUdMS0NMUWFEWklzQzFubFgwaytoRzAzRUVpUUpNblpzV1BhenBxYTQ4L1Jjdm5NaTBhc3BYdFl2MjNQdWJuTzluMFhwTS9iMXErZ3pQcHpmNjZ3ZnR1RmFzMU93Zm90T0g4aGM2VzVmTFpwTlFlclQva0t1b3UvL3UveWZ2MzZselhUMWxvelFmMkp1TDdxQXE4SnF0SDR0YlZRdjVxL1pLcE5tMWppNCtOcDF5NkpqaDA3L3FSN09pTmcwK3YxZEdodjVxMVBDbm45NnpJK0tTbG4wM2VWTktpOU5ySWtQSlJVMTNITTdzUnFkd2k3UzBGV3FZVXNTMEtTVUJUaFhZdFVDT0VXQXBja1NZMnhzWEh2TlRRMFBQVkxBYUluSm85a1c5bTVJMXlxTE16bm1aVmJmdkoxeWo5YnhTTUwxMTZRZTFydzBPL1o4VE9QYTFjV3dqTXJXM2xPTytEZWVlZTJyZDByNS9Ga3dVRzB2NUM1MGx4ZW5uTS8yNHB0SnozbTJMSHFGOU43OU4wVHBLazVnamRKa2hxRFFhM0pCSldFU3FVV1hsRFRpaFBWZ1hyejFjeTBiWnRFaHc0ZFFsYWNPdS9BQnRDMlhYc20vbTRNODM4L2dnZHVHRVMvOWtiMjF6aUppb3JDRUIzRHBSM2FrWjZVUUx1RU5raEN3WVdNTEt1RUlvUUFTY2l5djFCZStCa0FHbk56YzVlNFhLN1hmZ0grQlFxM2ZVaFpqVGRvRWlyZUNhdzRiQlFYbCtJTW1zLzJtaXFLaTB1d3UwTW51YUlvcEE2WnpNYjVrMXU5bHNOV1JVbFoxWm4xMFc2bHBMU2lCZGVkdzFaRFNYRXhOb2Y3RE83SnUzNW9jVWtwZG1mTEY3U21zb3lLNnBZdmhLMnF2TlYrSzA0N0pjWEZWRm50NTNXY0ZBVlNoOERHK1MxL3Q1WEQxbDNnZG52L0R0bnZnSklTc0xlaWVpbDQ3WXFTNHViNzdUejV4QnRNbWpUMmx6VlhGQ2RsSlNYWVdoblg1dU5rdDl2LzNhTkhqK0I4dFJZbUtDMVRPM3hyR0toRU1NZGE4MkNCbnppeUtWK3RQVzNidHYzSmMrQXNxdEFqdUs1dlQ3NzZTc1p1YnlERmtzQ250ZFVZREJHNFhHNGtXY2FHZ3NmalFhMVJDNkZTUzJvWkhJMU9aRmtTRWlLUUFpSzhLU0JTWWVIWGNrRkJ3WXVEQmcxS1VLbFUxLzBjUWExdzNUTk1lK1pkQ2cvYTJYM1hkU3d4cUJrMjlaOU1IWllGd0t2VGIyUjFUVWNxUDlzTWVoM3F6SnZadG1RR1Q5dzdpR1c3UGFRbDZOaXpyNXpacjc3TjJMN3BnSU5aNDRhVFgvZ050cXo3MkxOc1JxQ3RSVk4vdzRvRGNhamR4Nms2V0VqSzZNZFpPMi84S2Z0WVhiaUdBWU0rUUVjMUZmbzhDdFkvVDRJV1ZzNFp5NnpWMzlNNTFjekJ3aUxHUC9FR0Q0M0tPZVU5clZ2d0lGT2Uya1JHVm1mS0R4UXpkKzBYREVuMzZpWExabzluc2ZVSSszYnVZdXJMLzJINnNFeHdWek5yL00yc0xGSkkwZHVwTnZSbTNlcC9ZZEZCeGU0MURCNzFKMUl5czdCVkhpUjcvTk04TlhIZ2VSbXJXZU1ndnhCc1diQm5XZFB2RDQyQmJVVlFVZ0ZEaGdDeHNISWx4QUk3VnNMNEdaQ2VDUWVLWU81eUdKWGpQUzkvQWN6WkJycURZTlZDalFtS2ZBdE5Pb3JXVTJEUFlVbWE3aGN6VjVTYWc0d2MvQnNxREYyUjdRMDRLcDNrK3ZZMUg2ZWV0LzhqUDgzMXpZZUhEeDl1TFZldE5STlVDYTRGOWE4SnF0Rm9SZE1xVTVHQk90Q1lHQk94c1hFa0ppYVNuTnllVHAzT2tidGRDT1dzdHVQSHEvbDQ4d2YwdjJVODE5My9aKzY3N3o1R2ovNHQxMTU3TFZkY2NRV2RMMGxETnNRUmIybExiR3diU1ZLcEpKVldLMHV5ckpKa1dRTlNCSklVSlVtU1NaS2tSS0REdm4xN2h5dUs1MU52d2NMNTJZNGNxUkNIRGgwNjYvTnY2eEVsM3RydmJQSDdLMys4WHNUM0dpVitySGNMSVJUUjBHZ1hRaWlpdHJZbWNNejNHNTRRSGE2ZEduTGUvcmRtaVc2M3pRMzU3ZmtIcnhHWDN6WlhlSVFpWEljTFJMdTRLOFFQbnBQM2EvOWJzNFNtWFQ5eHFFRVJRampFSDMvVFVmenA5YzlhOUtGdS95b1IzK1ZtVVgrS2U2cjlhcFdJYTNlRjJIL000ZjJ0c1VZY3IvUGUyeTNkVk9LUEwyNFhRaWhpNzc5bmlrNDN6QkJDS0dMemM1TkVqNXNmRVkxQ0VVSzR4ZE4zWHluKzhPSTIzL081VHR6eGo3V0I2emMyT2s3K3JCdjNpVDV0RTBWaVl1aDI5ZjN6VDJ1YzlyK2xpRzYzdGZ6OTIzY1UwZTJXME44OFJ4WFJLVkVSbnh6Mi92M2p4NHBvMzA4Ukx0LytENTlUUkdRN1Jldzk2djI3b2FIcDNDOWVteUc2Lys2eFg5UmNlZmZ4c2FMZmZkN24ySGhraCtnVXFSS3ZmRjdkWXB6Y2J0Zk85OTViK3dEd1cyQTRNQmpvQzJRRFhZRU9raVFsK3Q3aEtGbVdJMVFxbFVhdFZxc2lJaUprZzhFZ3hjYkdTbTNidGlVdHJTT1ptZDI0NG9vcnVQYmFheGs5K3JmY2Q5OTkvTzF2ZitPVlYxN200NCszY3Z4NDlWbmpVZlB0ckhtRFRNWW90dXd0SnJKYkg0YkZleWd2Sy9ORlNOMDBOdFJ6eU9yQ2toaUh4dDJJUTNpRUpNbVNKS3VFMS95V0ZDRjVrTHhxcXdUSWtpUkpHUm5kdmk0ck83UXdLU2twVnBLazlGOWFJR0R3eUZ1eDZMM1d2VTdyL1lKWEZHNWk4ak92Y0tDc0dzVlJSYVdjZDFyWDZwMlhpd3pJU2NtWW5kVlluWUR1NU9lazVWNU5zZzVBUy8rQmVTemN1UnZHNW1BcjNjbU1lZjlpOThFS0ZMZU5tbW9qVnVCa1hveGRPd3BJSFhRelhXTjluaU90RVpPMlNkSHZuZWRWWjVKU1VyQlZmUTdBMXEyYjBkcHptRFhqWVFCS1MreFU2QXFCUExMNzltUEc1RDl4YjhWbjVQWHR6NmhoZ3pqcG1sL2FybXd2Ly9HQ2pGdkpkaWhYdzVyNXNOWnJwV0hkNHkyUDhSZnk5QndLR1didi8zVkI0MUJaZlJTak1ma1hOVmQyN2Z5Yy9pT25leDl6UWc1OU00eUJmVTNqOU9sM1NXMlQzbnAwK3YxSG1nVUtnaU9nSi9DcnlhSnBCWGQvc0tBcEFtb3dHSHhyZ3JZaEljRmJCNXFhbW9ySlpEcG5ZM3FXd09aaHhYc2IyQk9md3hQWEdQaitteUtjUGxvamg3Mk9UNDdXMFM0NW1XakZRWDI5MXo4Z3ExUklzcG9JTGNMamNlTlVFRWlTZ2k5eDF3OXd5Y250UDY2cU92cGNYRnpjVENEK2x3UnNPcU9obWJPcGtGR2ovc3BqNno5Z1dIWUs5bDFMc1V6NDhQUUdSZzRhR3ZuTUhkQ0szNE9xVkRGaCtHME1XL1FoOHdkbm9xN2NnaVh6cno4NURDMEg5OC9uckZLQXJOeHJHVEhZOTAwYWNTUEdoRlFBc2tiTVlGL09jUEkzRmJCMDNuMHMzZkpIOHArNTk4UU5PQTh5SXUrM2xEVHJhTmRoRDdEaXNRbm5mT3lNeVRCeVJOUGZJOGRBUXZCK1krdm5tWTNSMk96V1g5WmNrZVhXM0hUQjQxUzE3UFYvdi9IZzlQdS9KN1N3M2RHS1h5MUE5UjIwMkxId3J3bmFNZ0pxOEFVTHZQeHFiZHQ2azNDVGs1UFA2WGllQmJBSjN2L3dRLzVkWjJicDczcGhrQVdlaGdZY0RnY09XdzNyZGh3ak9TMmRSQnhZcmJWNHpGTmlBQUFnQUVsRVFWU0JVcXVveUFoUjV4U1NUcTFHOGJnQlNaRWxDUUY0Q3hTOC9qWWhoR1EyeDYrdnFUbHVpSW1KK2V1cDlaUUxLd2FqbnFyS2F1aWFjT3FEcThzb1ZhZlF0MmNLTXJCK3pidTQwWiszdmhYdjJFeVpZemJKT2lmYkNyYVRNL1lQNEs2a3ROcEkvN3hNMU1DTzlldXBWRTU5VDltNUF5bVo4dytLcXFkNHRUYTNsUnFIQVpQaHhQR21BZjJ2NXFGdHhXVFBHdXZWeGhRN1ZUWGV4cXhXSzdISkdZeWVrRUZ1a3B1OEo0dE9malBhVkJhdmZZL212bTJ0NGFkOTFmVkdzRlo2dmR6K3laK2FCNFpTa0ZPaHQ0OUFvcXJxOUNaZTE1NDVsRCt6QVNlMDBFQi9ybk9sZDA0djVtM2JDcmRtNGF6Y3liWWlLd044KzZ4V3E2TkJpbm5sd1VmKzN6NmEwam9jUUVNSXFMVk03ZkJyYThIOGFxSzF5Z0wvS2xOdDIxcElTZWxBNTg3bm51bm56SUd0NFFpUEYzeUhWUmZCd0xuN0FWQkZXM2lxZHdxRmhWOXlTTkdpUG5LTWIreDF1QnZzdE5GSFl0YnBpRFhGVUgva21LaHY5RWpDSTRSS3JaWmsvTVNVSWZXa2toQkNOcG5hdkdXejFVVkZSVVU5OG5NQ3RnbVQvc0Q0Q1ZleDJHUmd6Q012OHRESW5pYytPR1VBVS9JZXBXL3VOYVFaRk13cDhZRUhYckZqQmFPbS93dDdWUWtsVlRKOSs3NVA1ckFIV1RSajFGbjN6V0wyTUhiUTFhaXBwdEk0bElMUjJhQlZtRDZoTThOeis5QXpXWStjMUI2TGZPcDdNbWFONE5VWkh6RTBwd2NaV1oycExDM2xzWldmTWpqOXhBYmtnSWx6R1ByWmI4bnNlU1VaS1NZT0hpaG04b0wzdVhlUWdiVlBqT2V4OVVmSlNJMWxYMkVSanl4OCs1UlRNeUhwekwvaUZUdGcxSFN3VjBGSkZmVHRDNW5EWUpIUDM1NlVDNE9BckN3d0pNSEdqUkJyaHVYellWeWVOM2hnTFFkdER1UXZPbzBQWGMraDVMa2ZaV3VaazBISjJsL0VYQmx5N3l4ZUhuUTl1UU0vUU8xMFliUTBxYVBMSHYzZGkvYy9zMkZYTTFCekJJR2J0eGEwbFdDQmY2RmpYd1JVdEJZQmpZa3hCZFl0YU44K2hmVDBUa2lTZE03ZlUwbUljNU5uYytUSUVmYnUzY3QzMzMzSG9VTmxIRGxTd2JGanh6aCt2SWE2dWpycTY3MUY5UFgxRFRoZFRzbnRMYUNYUEI2UEpJU1FmWnNhMEFCYUlZUU9pTFRiNisrSmpJejh3N202NGNyS1NweE9GOG5KN1M0WUdGYVZsZURXbTdIRUdzNTdXMjY3bGZJYUI4bEpDU0c1UERXVlpkZ3drSnh3WmhxUDIyR2p2TElhc3lVWnZmYjBzb1BzTlpWVVdkMVlrcExRQm4wNkhiWXF5cXRzV0pKU1R2dGFGMUlVTjVTVmdkRU1wak1ZcW0xTHBqSy9OSStWYzBiL2d1YUttL0xTY2t4QjQzcjgrUEVYWW1QanRqUXpQUnNBdSs5ZnI5WW1TVTdKbTJRZkFEWmZaWUUvVDAwMEFacUI2R2h2L1dkY1hCeUppUmJhdDArbVU2ZE9kT3ZXN1pTTHNweXRxR2JQZnZUY21HZ0dBNUlrMGRqb0xZNTN1ZnlGOFFxSzR2R1hXUGxEc1Q1UUZVMi9CZHU2WHMwTmdLKysrbXJQeUpFalVhdlZ2YzlGUCt2cjYvRjRGSXduY3BxY0I5RWJUUmdpdFJla0xWa1RRVXgwRk0yL2dib29JOGFvTTdmcVpiV1dtSmdZTktyVC82cHFkRkhFeEVTamFvWmRhcTJlTmliVEdWM3JRb29rUTR3SmRHYzRWQ2xadldrOFhFYlhIbDFSL1dMbWlreDAwTGpXMXRhK1BHalF0WnQvL1BGSFZ5dkE1azNDOWZuVkpFbHlOVE0vQTZEbU56LzlDeHo3QXdWdDJyVHhyVm5RTm1CK25tdS8yamtJSHJRdXFhbXBPQndPbkU0dnJaSGI3UXBRR25rOGlnL2t2R0RXQkdwQ2VKTWxGY1ZYVjRvUXd1VjN1cTFiOTc3MCtPUHpsanp5eU1QcWlJaUllN2hvcFlibEM1ZFIzWXFDYmNuc3k2Z0JQUW5MLzBqVXNZd2ROK0lYTzFmcTZ1cGVlK0NCQnpaLzhjVVh6ZlBVbWtETkd3SDFhMm9lZk13ZC9naG84d1JjYndUVW42c1d1c0pVV2xwSFVsTlR6KytRbk9zTGR1blN4Y2ZaNWd5a2YvZ0w1UDJhbTI4VFFnaWYxa1pBbFZNVTRXY0NrZncrdHpsejV0VEV4NXVYM0gzMzNYSkVSTVRkRitmYlkrTFdTWlBESUJLV2N6cFg2dXJxWHYvclgyY1Z2UDc2c29ZZ1RhMGhlUE9ER2tHVkJiSXN0UllCRGZqVnZJU1JocUFhMElSQVdrZVhMbDNPLzdmbW5Ldnpra1NYTGwxb2JHejA4Ylc1L0Z4dEFjMnRLWkZPQklHYlFBaWgrSWhBUWt4VVNaSjQ0SUVweDdSYTdaSTc3cmlEaXhmY3doS1djeWQxZFhXdlAvYllZL25QUHZ0c1BhR0Jnb0EvelFkcUlmbHFYaE5VYmhFQjlTL0UwcHd3MHB1cjFwYlUxQTUwNmRMbHZBUUx6anV3QVVSR1J0SzVjK2NnV2lPdjF0YmthL09hcEQ2ejFBOXV3cWVsK1NPbHdlQW1TUkxTUGZmY2U3U3hzWEh4M1hmZnJlaDB1bnZDVXpNc1lUbHJVSHZ0cjMrZFZYQVNVR3VRcE5CVnBvS1h6Z3VPZ0RacGFrMEp1REV4eG9CZnpaK3Ixcmx6WnlJakl5L0kvWjJ6NEVGcjRLYlQ2UUxnNXZINHdTM0ExZWJYMnZ5YkQ4YkZpWFJCQWJCaHcwYVhKRWw3K3ZUSmRXczBtak1PS1B3dmdnZGhDY3ZQU1dwcmExK2VQSGx5d2VMRkw5cFBwS25SU21WQkU2akp3ci9BY1dnRU5LckZlZ1YrbjlxbGwxNksyV3krWVBkNEZqRjNENThXN21YTzZueit1TEtBVjc3OEljQkQxVmhmdy9LUFBtWEd2emZ4bDNlM1U2eEVjY2tsbDlDaFF3b0o1amdhRkluRDlZM1VDSzF2ZFhsOThPcnlRcVBSb0ZLcGhUK0QyUjkxb1luRHJSRndQUGJZWTdVMzN6enFCYnZkL3ZTRm5oUUg5K3lrMm5HdXJ1WmszNjdkMkU0NzQ2YWNrVG0vNGNCWkVIOVpLNG9wT2dQMmgyMnZQc0s5VDY3NTJiK2tJM09ncUpYbnNXOFhaL0JjVDBmY3pMdHJORnRLN0QvcHVaNUtLa3VMS0trOFM3STc5d0dHWk45TTJVa09PWDc4K0F2WFhETW9QOGluMWtKVG95VU5VWEJodTQrR0tOU25GaG1wOXlYZ2Vxc0s0dVBOV0N4dDZkQWhoVXN1dWVTOHBYV2NPMkJUNmxpenE1d3VxUjI0SWFNZG03ZmtNMnRyQ1FBL0ZKZndkYjNNMWQwN2t4MHJlT0NGVlJ3MnRDVTlQWjFvblliOURSTDFIc0VSUllQUmFNUmdhRVpTNlFNM3Rkb1BibDV5eW1ZRWxZMkFZOE9HRGZWUlVZYVhiRGJiNDc2QnVTQXllK3pWRkpTY0sxN01TaVlPdllraSsra0RZV2xKTWM2emVHRS9XL1U0MHhlc08rM2piVFZIcWFpeS9leUJiZnhVU0dobEZrOGN5aGs4MTlNWXFSMUxXVkdSUnY5VS9VOTZycWVTdGZQL3dMelZoV2Y5b1N3cExqMVJ1WnpqNk5Hano4WEd4bTBKaW42ZURxaDVKRW55K0lNRkxjM1BVTEpJZjFXQm40SW9QVDM5SnpIaFhqZ2ZtMnppOGZIWEJ2NXNZei9LZmJ0L2dQNnBkTzdlazhlNysvZWtzbXZ2ZnJaK1g4MUQyWjF3dVFZU2s5Q085emV1cDZEY2dja2srY3pTUU5vSFByOWF3TmZtZHVNckpjVVQ3SFB6cFlRQUVCMXRYSGI4ZUxYZFpESk40VHpXbHBidVhNZmlOWjlTV09IRS9zeWo3RGJMNUk2NG0yRTUzakxwZlZ0WHMyVDUrMWpsTm95NWR5cURzcnc1T29xOWdrWFB6R2RIMFdGaWt6c3k3dDVwWktjWTJaMi9qRlZidnFERVZzT2lPWC9Gb3BVWk91NFA1SFUrZFFMdDd2eWx6RisxbVlTTXE1ZytiVHdtTmJpdFpTeGU5REs3aTc1SDBjY3hlc0lVQm1lbmdMT2NwK1krejg0ZHV6aGdyV1Rtek8vUUpmZGk1cjBqQWk5RC9zckZyTnI0QlJqYU1tckNKQWIxOVBYZFdjMlN1WSt3N2VBeGhrMzRJNlA2K2twZjNGWldMSnpQcHAzZmt0RDVjcVpPbXhRbzZONjNiVFdMbHI2UERTMFpBMjVpMnEyRE9SK3B1UHUyd3ZKTjNobmNPK1Rad0tvdFVHS0RSWFBBb29XaDR5RFAxL1h0NjJEWkduQWJZT0kweVBGWHVUdmdtUVV3WkRBc1hnQjJBMHlmQmVtKzRYaDE4UXNNSC90QzA3MmM0cm5hcXc2d1lQNGk5cFRVa2pub3Qwd2ROeVJRY3JWajNXSmVYZjFmbkZvamVjTnY0NjZodlZHcTlqSG4vN2QzN3VGUmxIZjcvOHpzSVp2TlpyTXNJUWtoaVRGZ2lDSEVpQmdSSXlJaUlsSkVSS1NJaUpRaVdxcldvclZLS1M4dlB6elVJcVVVclZJOElaNFFFUkVwSXFVVUVSQVJNVWFNTWNRUVlnZ2hoR1d6MmV6T3p2UDdZL1l3dXptQWVLSytQdGMxMTU1blptZWV1ZWYrbnU3dndoZll0YldDdXJLL002dm1uNlFWWHNhTWNZTlB3TkpjTEYvNENCdEx2MkxJMkl1amtheWhnb1VMRjFOV2Zhd2hQam45cVNjZWZXQTMwYldmTFRIbVo3dWdwbXR3SEFWcWtVQkJBb21KMGFDbVZSWDArdlpraUw1ellJc1puOVkza0p0K1Z0c1AvTWVwT0tJeUtUVUpnTHk4UEJSRm9WdEtOK0piV2toT1J1ZHJDeTFoOEFxREcwQWcwQ200aVM1ZG5Lc09IYXByN3RhdDIyM2ZsU3FJUFNPUDRjTnRiSC94RVlwS0xtTkl0cG0wRE0xUFY3NWhFU1B1ZkkwRmkvNlhaRjhsTThaY3hkSnQ3MU9jWW1icGZUZXl6bmNGODJhT283NXlEdzBOYnNpeWs5NnJIOE10RnRZc2VaSGlJVmVRYjRPczVKTklvRldxV1BaeU9RL2Uva3RXekwrRHlYTXNySjQzSGw5OUpZMldiQ2JmTmdwZi9XNXVHMzBaUzNkK3lzQVVPNE9HWG9IczJrMWxiUitHRDc4QzJSYXBYWHh4OWczTTIyWm53Wnhic1hwcUtOMVhIZ2EyTFM4L3g4Z2xEekVoZXhzVHh0NU1jZlc3WkprVkhweHlCWnZOVnpEN3pqc29YZmtvSXlZM3N1dmwyVkMzbFJIai80Y0Z6LzZkYkx1UGJYczB3Y3ZPZ0czYnFzZlpzUGRRek0yeks3ZmRONE9VVG1ablNqWU1Id3BUUjhQWWV5RXQrTjMwWGpEY0FtdVdRUEVRZ3NjMWFGNHZnNmxQd01KSGdGb1lQd3cyN1lFc1N4RFk1c0c2N1RCMU10QUlqUzdBQWREQSt2V1YzRGV2VUhmbGRISmNQZFdNSFh3RitWTWY0dlpSYVN5Yit4dG1laXdzbWo2WXh0MHJHRDN6RlpZdmV3aUgyc0R1YXMyTWxhMHBEQjErQmQ3eURjaFpGekI4ZUJIVzVCTTNDVjQ1N3hjczNKdkJvdnQreWJwRjkxS2hvMnR6cHY2TStuTm5mWEg5OWJiblI0NjhKbFQ3R1p1bkZscGFPd0sxVUZWQlorYW5CbXBkU1V0TEpUTXprMTY5ZXBLWGwvZURNZmx2Qkd6Vit6L2hzVThDUERuajdGaDdsV2ZXYkNUdTdBRmMyU011L0c2ZlBuMUlUMDhub2JtWjFGUTZDaUlFdnkwRWhLT2xIWUliYUlDWW1wcTJmdi8rL2E2c3JNeGJaRmsrLzlzK1VJNjBYcFNrOVNMTlppUy8veUJLOGlLSGJ1bkN2ekJ4MXF1TUtNa0Qrak4xNkZPc1dMdUw0aWtEYVd4b3dKcVZRazV1QVVXRlJib0xNNStVYkR0MnM0VitKU1gwUDlrS0d0bkt6TGx6S000MlVqajN0NlNNZWc3WHZQSFlldzFpNXFROGR1N1pqVnROSVQvZHpjN2R0UXdja1VYL2toS2E5cVNUYk02bHBLUkVCNUxWTEZ5OGxRVjd2bVJZbGhrb1J2Y3BCU052Wk5xb0lVQXhBMmY5bWIyMWtHWFp5c0oxQ3Bzcjd5WGJEUDN1K3dOUDlQb1pwWjdaNUxzYmFGS3NwR1JrMFM4M25YNzlUL3gzTEE0bmFXbHRiaU1ZVDBEemtyT2dKQXRzeHJhQWw1SU5kalAwS3lIcXVDNTZCTzU2QWdZSDkydjAwN0I2Szl3K05QZ0ZEOXk3Q0lha3gyeXNxWkpLVndiWitpSmIyZGJoY1MxYit5eGxHZGV3Y3Zvb1pHRHV2YmVTZjgrTExKbytHRzlESTZyRlJscEdOZ1ZaL1FnZkltc3lKU1VsN0Z2dHBLbFhVZlI1NnRoaHdQSVZHNW01NmlBREM2d1V6NzJISmF2L0VQR25IV3I4b0xYVi9jcklrVGZ1cDIzdHA2NUVpbGFKamtITllEQUlrOG1JMld6U2dWcHNVWHVvWENvelhDNzFRNDVUQnJZalgxVnh5eXNmTWZlbTBlUW02R2VoWU1PbWpieDZQSm5sTnhaRzNhMGxTU0k3TzV2RTR5NHlNOUNab21xVU9ScGFqOGJnb0RQbUJoSWFlUlBpekRQUDNQYmhoN3ViK3ZidE85VmdNQXovdmc1aWRYVXRaWXQveDY1blEvL1d3dENoMnZQcGMvL09mYlArbDM2NTkyUEpLR0xSc3FjWWt2Y05va055Q3VsQmVtSkp5OERhVkU4ajBMVDFhWVpPZnBUaFk2NG14VzZtd2EzZzlaMGd5dUN1cFVaTkl5ZXIvUktlWkljelBFM01aZ1ZGQVc5ZERZM2VHdTRjZDAza2UwWG5vSHJCMkdza3o4N2F6YXhKVjFCZTQyWDQxUHQ1Zk03a1RuWFhiSTRVMHRKaXZpSGJ2NU04cE9wYVdEb0xWdW1JY1QvOWhoeVFtOTZ1WXhsRi9qcmIrUkpYNlhiR2pQNDAvRjV4M2tXb1FQclF5VHc0cG9LcEl5K2syaVV6K2Q1SG1ULzlWS2RxRTNYMUZqS1NOYitmTVMwTlozQS8vWDcveG9zbjNyN214aG0zSHRLWm4zcFFDeGUxUzdSUjZvZ0JOUk1tVTNzTldFS3kzbTFCN2Z2SVZmdldnZTM0a1lQOFl2bFdab3kvbWt2U29wMnA3NzczSC83eXVjelROMStNdlozQ09ZUFJnQ09ySnozUEZLaHFJSWF0aFlBczVHOExtNlFkZ1ZzSURVWElORDMzM0g2ZnJGcjE2cCt1dXVxcXcyYXorY1p2UGRvaXk2Z3hZdmxaV1JrVVRmOGI5NDVxYXdVN2NvcFpzdUlOUUdINXJKOHphOEZ5dGoxeFp5UjJJNnR0dFBjN0Q5N1VVMU9yVUpSanhGdFhnOGVaUVRMd3hMTEhHRFByS1I2YzNBL3dVYm5tejdFNzNtYS9zYVdUSWRkUldlMmpWOWJKMVNlYTB6Sncybko1ZXUxYllmTlBQNTFHelpqTHFCbHpjZFh0Wm5EaDVXeWVPcGxoblpRRVZ1N1p3dHB0QjJKV2swcnhpQ0hZdjRselRtN2IweUFySGNZc2h2RUZYek9VNXNnbXgxSkhUUVAwU3VHRXh6VXIvUXhTQnFTeWZ1VzhkclpoWThyc2hVeVp2WkQ2MGxVVURmdzlVNllPcDVkUlA3OU9OampsSUQzRlMwMkRCOUtzS0hWMU5LclE0dkc4OU5qU2Y3eDl4eDEvY0hVQ2FsNmRXYXFQZnJZQnRVaGhlN3hPcWNPdTYxV1FHaXhzejZGUG56NllUS1lmUEtqMDlZSE5mNXdaLzNnVFMwWnZHZy91NTdtRFlJaDNNS0VvaS8zbGU3ajFyYys1NGRMK3JQOUFpK3ljZGNhWkRFaFBSUFUwc2VLamFqNnBidUtJVDJWdk55ZjJ0RFBJVUtOOWJEcFFDejBYSWF2VDc5ZHkyYlJFWHdJUmJBc3pRaUdFRUdQR1hIc3dMeTl2d2Z2djc2eTMyV3gzOEMwbUl1Zm45Mkw1b2dWWVJoYlFxM0FnK1ZsT3B0NzVLNGJmOVV0eXpQOURybE5tNTZiMTVJeTZoNkg1ZGxZKy9pQmtEeVEzemN5dWZWWDA2bitUM25BaVAwZmg4UVZQVU44L2cvd0JROGc1a1o5TjliSmd6aXhTYmgvRml2bC9adGpFMzJFRHNyS3plWEh0OCt3cWtpbGI5d1RyeWhYMEtsZTV1WDNZdmVRbFhoeVFqQ010aCtFREM4Q1l4WjB6U3JocnlxMHNtUE1yck40YTlqWGFtRHF1NDE0RWNsb0pkdzcxTVhuNkhHWk5Id1dOTmF6ZFhzWGMyYmZqSzkvTW92WFZEQ2twd2xPOWxRWnpEdG5PenYvTzhDbXpHWDRLdXBHN3QwS2pGMXcrMkw0Skdxd3djSEJFRlRnL0J4NWZBUFg5SVg4QTVDVEQ3VE5oNmpTd3pkZUNDbHZXdytEYm9kOEpDWFFhdzRhbXNHMTdPWU5IUld1SHRYZGM4MGRPSW1mdXBkeTFJSThKUS9LcEw5OURxVHVOZTZhTW9HcnJhbGFWK3hqY0w1ZmEzYnVRczdKSjFzM092RjVuOCtDS2Y3QXF3MDF5Umg2RCtuWG1Ncll4Y2VKdzVzKytuNno3ZnM2YVJZOG94eFhseVV0emUvL25VTnNlQlhwQTgwcVMxQ3FFYUNmNVZoOG9NSWFZbW9pUEQ1bWZOaDFUMDBBdDFLdWdUNTgrV0N5bmgzemkxMC9RVmYwYzlSbElUVERoOVN0NC9RcXRzcG5pRENmSG0xdXcybXlZUkNEOFdWSVhKemxKRmtTcm15MzdEMk5MNnNMWlRpdCtJWkdYbTR2VEtGQVVCVldObEZ1cHFnaWJvanF5Um9pOUNkSGgzZ2xKa2dRZ0dob2ExQWNlZUtEc3R0dHVyYkphclQwbFNYTENOMC9RTFI1eUZVcmRQajZ0cUNLK1J4OXkwNVBvMm5NQVZ4WTVXZlBxcTJ4K3Z3eHJabCtHWG53ZWlYRXlub1pLTnF6L0p4czM3eVNyWkRKemZqMmFPRGxDRVM0WmNTVU41WHY0Zkg4MXFiMzZrOW4xQkJORFRtWFVzRE40L3BtVk9NLzlPUS9kTTU0NEdmSXZ1QlJSdFlOWDMvZ1hDZjNHTVgxMEVUMzdGSk9WckdWNkorV2N4NEFzaWQwZmZVcWR4OHpGNTJtTzNZSkxSNU5ycWVPMVYxL240Mm9YRncrOWd1eFU3ZGc0TTNwVGtKTWEzdGMreFJlVEhDOVRNbW9jbHJvUFdiVnFIWjhlT0VhL1M0WnlUcThlR0NTRkQ3ZjlpdzNyLzBuWlZ4Si9XUEFvNS9WSS9FNG03dHN2dzBjVjBQZENjQitFNmhvNGQxQUUyQzRaQVEzbDhQbCtTTzBGbVYwaDYxd1kwQjFXdlFvN1BvSzBQakQ0ZkxBWUlyZjVBUU1ocnAzdFpYZnhNK2ZwWFV3YmUwblUrKzBlVjFNUzE0Njdpcy9mWGMvYXR6WlIzeHJIa0tIRE9DUFZqb3lYN1p2ZjVxMzE3L0JsU3pjZS9zc0RuSmtVT2VlWjU1WndWdHd4UGl3cngyMTBjbjUrZHFmSDRleUxobUUvOUFFdnJYdTNNbWZ3MVkrdFgvblkrODNIajNlazBLRlA1L0FGQVMwcStUWTIraGxxdmhJZnI1bWZpWW4yb0FTUkpoU3BCUXA2VVZCUWdNMW00M1FaMzVvZTI2bU9ZOGVPVVZwYVNrWEZGeHc0Y0lDNnVqcU9IR21JMFhGckNSYld0K0x6K1NSL1VNdE5WVlZKVmRXUW5wc0JNS0RwdVptRUVIRm9jOVJTVnZaSlVXNXU3aFNEd1hEcEQ2SEg5dFA0TVF3UGQ0NitrbEVMMzJKSXR2VzAyak5GVWY2OWZmdjJOUjAwTSs2Z1Q0SHdDMEZBbHVXQVB2bTIvVHkxV0YyMVVFcUhGdjBzS0NnZ0tTbnB0RG9teGg5NkI1S1NrdWpUcDQvTzlOU2JsbEZFVFUvZkpOQjZKMmltYWRqSklVSit0NkJacWdKcWZuNmYzYzgvLzN6dG1ESFhWQUUzbjg2WFQvbXVUZXl0YW16bkV6dkR4ZzdqcDBLd0gycFlXYmo2MzkvN1ZuME5GYXpadktmZHozS0xoNUxqTkQ3LytPT1BiN3I3N251T0U1M09FV3QrNnR2aytTVkpEa2dTcXI1TXFyMktnbENlV3F6NXFSZUxQTjFBN2JRQU5nQ0h3MEdmUHZrNlVKTjBqMUlZNENSSkNpMUNraVJKODdrcFFVQlRVVlVoOVBsdElaOGJJRzY0NFlaYTRLK2ZmYmF2eW1wTm1BNTBQeDB2bjR5OEl1d1o3VVF6WlNPMm45RGwvOXd3MmpNWVZHS2pIYnZxSzdmSHRUd3hNVHNrNDYxUDU5Q2JvTzMxL2d3QUFhMnlSMWJiTDJqWGZHb2g4ek1VL2RTWVdnalU4ci9WemxJL09tQUQ2TktsU3pEM0pRSm1Hb2lGbUpzVWZoM0wzQUJKVlNVVlZDa0VhbnJtQnFoQjlpWjY5ODVidlduVHBxcnUzZE51TWhnTVEwNjNFMksxT2JIK2hHQS9qZEQ5ekd3aEpTYlJUMUdVelR0MjdIaWpwT1RpR2pydnpxNnZKR2l2OFVxb3FYR2Jpb0pJOG0xSGdZSjh1blRwY3RvZXQrOU0zZU5VUm54OFBIYTdQYXpmRmdva2hMSTZPZ2dhZEpZd0U3WnRRd0FIaUdlZWVlYXcxV3JkMGE5ZlA4K3BLSVQ4Tkg0YVA5UTRkdXpZMHZ2dXUvLzFXMjY1NVlqTzlEeFJ6V2RVTWJ0T2VpZ21uY09pNjlJZUt6Mms5Nm4xT2ExQkRVNkQ0RUVISjQ5UFBpbmppeSsrb0tibUFIVjFoemh5NUFoTlRVMjRYQzZhbTV2eGVEenRCQlQ4S0VvZ0ZGQ0lEU29ZMFlJS1pvSkJCU0R1d0lIcWkzdjA2REZaa3FSemY3cHNmaHFuNjFCVmRjOW5uMzIyS2orL1QzbVFwY1g2MC9RbWFKVHBpU2JqSFdKcUl0TFEyRVRIUGpXOStSbk4xRTVIbjlxM3h0aWFYQzRPdWYzWUxHWmtQV2NLS05RMkhzTWpETmpNMFJtNnJTMHRIR3hxSmk0dURwUGNNZEd5V0N3NEhJNXdUOUxvNmdUQ3ZyaVk1R2FwSS9JV1NnSFJtNmFoMTQ4Kyt1akJnb0tDblRrNU9YNmowZmk5ZzV1cnVwUjNQcTduckt5VWsvK1J0NTVWYTNiUTgrd3p2M0h6a05OcFZPM2R5dnAzdGxEWFlpR25SOWZ2ZndkTzhiaHVYZnNpY2xvQjlyanZacmZjYnZmelR6NjU5T1dSSTBjZXBQMTZUMzBxaDFmcXVPZW5ydTdUSEdacVF2Rmh0am13MnhKSVRJdzBYd2xKRDRWVU9nb0tDazZZSnJWM3l6b0NYWHVTYUpaQWJlVEZKNTloNi91N3FQZlpPQ3Z6KzlOaisvbytOdFhOci8reWt0MStNNmx4QVdyOThUdzY2U291VEltbjV2T1B1ZTdGSFRnZGRqeXU0M1R2MVplL1gxZE1vZ3hQclZyRmtyTGpaRHJpT0hEVXl5MWpSakMxVDhjWGMySmlJbjM3OWtXV1pXVFpFSHlNTEpLa2Y0d0VGQ1JKd3UvM2kyQ0ZnaEJDb0twcVZDQWhxUEdtQ2swNkpIRGRkZU5xZ0wvVjFCelltNTZlZnBNa1NkOXFaNVQxUzJkUmtUNmVHU1BhcHJ6WDc5M0l3ZzFHUnBRVW5Qd0tQVlhNZjNBcGc4Y013ZmxmQkZ4NzFpeGtWV01CY3ljUGJmTlozYlluR0RUbE9hWlAvaGx5aXVjNzI0ZmE3Uzh6ZDdQQzQvZE8rSmFPcThxS0JYOWtWTUY0TXI3bGtMV3FxaDk5L3ZubnEvTHl6djVNeDlKaU83TjN4TklVU1pJQ1FxaXFFQWpaYUZJTkJnT1JFcWxJbmxyZG9hOHdkYzBpTVRFeHFxQTlVaWFsVlJRa0pDUjBmbCtvM3N6a1dTK3daY3VJa0ljUW04M0czZzFQc2JiQ3dvaUJlYWN4c01rbWJoazdtb0pNTFJxeWF0MGJ6TjM0TVc5TktNYnFUT2ZWMzk1RXV0V0U2bk16YWNGenZGU2V4OVE4T3hkZWNCRTNqRTdGTEVQTnZnOFl0bklyMS9RWlEyZjM1WVNFQkFvTEM5Rk9pSXpCMEI3SVNVRmdrd21LVTZKRlRQM0JvRUs0SVROaHBOTVlteXBKVWlpb29BS0JqSXpNelU4OXRleVRjZVBHamJWYXJkUGF2WHMyMVZQdlVzbktTb3M2ZUNyZ2RUWFE0SmJKU285Y0ZxcWlVRjMyQWFXK0lTaUtnaXdia2VYd3hDVjcrQXpXanpTMnVWamNqZlg0ekU3c3NvYzZ0MHhHaWozOG1XTHZ4ODd0eTl0VUFDbEtkQ21PYkRSR3ZxUDZxS211d1pLY1RyTE5FcnM1a0ZYcXFxc3dPdEpKdG4vNzJlT3FxbEJYOVFtN2ErenRIQWVGbmR2ZW85L1lXN2huNW5oazQ4bE5TOFhyb3JxMmtiU01tRDZsS3FpS20rcmFKdEt6TThLMXFxcXE0cTZ0WU10dWIzQWZ0RGwwd3VQcWRkSGdoalNubVpyYUp0SXowc0xmVVJTVlJScy9iVk8wcnlwS1ZDUlQvMzhCbXVxcWNjdjJObjFlUTJvb0IvZVhQLzIzZjZ6WThzRC9tK3NtRWlEUWwwZnB6ZEQyVEU5VmtpUlZWVFhyUktnaXVwbXgyWXdzeThSWnJKaGtpRSt3NFhBNHRNVnV3MktPSXkwOWc5emNzNElWQldadER0VTJrcDZSUmtOTk5iYTBMS3k2VS9Yc3dnY1lNdmwvSXRGNzJjSElDUk94Tkw3TDNxb083dEZOOWRTNUZMS3kwcU91SjhYcnBxYTJIa2RLT283WStSbzhTbzIxMWZnc3pxZ2VyS3JQUTNWdHc2bEVSZU1veUl4dzdpeG5FdDVEZmdDY1hTTXdKWnNUeUxBYmFmRnBGMXRlajRpQ1pvclRqcXo0YVQyUnBrM1FMSTJBbXlFRzVDS3NMY0xncEJEQVNaSWtpZERGSGdRNGdTNWkyZzU3VTI2K2VVcmc1cHVuUEZsZS90a0hPVGs1RXd3R3d5V2hnL24wZlQ5bnp1cEs4dE5rS3R6cHJGNzNFdm5KWmxZL2NpT3pWaDdBYmpRZ2U2b3hGOTNDdW1Vek1WZHZZZmlVLzZWbTMyNmFiSGRUc2NwSjl1QWJXVHByRXVCbDlxUlJiTno3R2U3Q1d5bGRIbXhWN3Q1RGJ0YlBLQ2pKWS92ZVJnYjBTMlBmN3IzTVcvMHhZNG9jckh4NEJvK3YyY0cyS2lmVk5XOFRKdmMxV3hnKy92Nmc0cWFQMHAyN1diVDlLSlA2MmFndjI4Q1k4Yi9DbkpGUFUwVVpRMlkreGlQVE5OYWtsTDZJWS94elRNazl4dFlhZ2FkUlljV3VIZlQ3TnFQNDNuSW1qZm9WWmRXbFZMbTNNWHozQzFoeUwyZnRrbnZBVmNyNHNiK2h2THlVR25VWHc3Yy9ROUhvTzNoa3hzZ1Rzcjh4TS81R2ZtRU9lMHRyZWVURk54azNJSXVtN1V2Sm1mQVlSU2xXTEZhRmZlNTBObXg4aFY3Mkp1NFpmejFiOTFWUVZhY3lmUGg3NER5SGwxOStCQ2QwZUZ3bkQraE9WZklBcW5mdkpHL0FoYmdxUDZKbzJ0OVpmTnNReWpjczViYUhuMmZ2OXUwczJkUEMySEQxazR1N3h2Mk1YZlVhdEZYdjI4M1FXYSt3N000UnFLNUtwbzI5anQwZUp3NWZQUlQ4bkxYTDdnMVdUTlJ4Y1dyLy81d3hyT2pORjVhdnErcUFwZW5OVUY4UTBIeDZsaGE2YVV0YXVFM0VtUXlpVlZFSjlmMDBHK0dyMm9Pb0JoUHlWNGVRVkxBbUp0RzFxNU5Ebi95SDF5czlaR2VrOFB3enk3bmwwWmM1N3p3THkrKzlodm1ibXJHN1A4V1ljUjQyNVN2cWs2OWs5OHR6Z3BkSFBTKytYTWJzZTA4MkZ1ZmxpYWN4dkRnQUFDQUFTVVJCVkh0djRwRjFWZVNtbUtsMEpiTnEvU3ZrT1kxc2ZmbytKai84TmdXNTZWU1hsVEx3dHIrdytNN2dmR2phUlhiZXJZd2RuY3FHWFVkUVhJM01XL01SK2FXUE1QemhMUlE1QkUxTnRlZzZScDNDNGp2T3JRdi93WkpQRHJmNXJIWi9LUmZPZjRVRDN0amZCWGg2NVVvbXYvbngxOXFXcWdiNCtPTzl2UGJhYXl4YTlCZnV1Ky8zL1BLWHYrUzY2OFl5Yk5nd0xycG9JRVZGUmVUbDlTWTdPNXZ1M2J1VG5Kd3NKU1VsU1FrSlZpa3VMazQybVV3R2c4RmdsR1haSk10eW5DUkpWa21TRWlWSjZpSkpVZ3FRQWVRQVp3TkZ2WHIxR3REWWVPVC9DYUhXTkgrNlNuVHRmcUhZMzZ3SUlWVHh0MTlkS241Mi83TkNDRlc4OXFjYlJMY0xKb3ZqQVZVSWY0TzQrdXl1NHFrZERVSUlWUWloaWlkL2U0VzQ1YkV0NGRmNjVkTlhab3MrTjh5UHZIZDh0emlyeDZYaXNGREV6ZWNsaVgrODN5aGVlK0FHOGF2SE5rVytjM2lMNk5Iak1uRzRuZlVKb1lwM0h2dTFPUGZxZTdUOUVXNXg4L2s5eEVOdmxnb2hWQkU0VmlyT3l6eGJmSEJNKzY3LzR4WENZT2dpbm5xM1d2dTkzeU5hL08ydlZ3aFZ2UC84YkpHYW1ocXpkQmRQL3J1Mnc5K0VscmYvK2d0eDFlK1d0ZnZaRzMrNlNWejd4eFVuWEljUXFoQ0JPbkZwank3aStRL3FoUkNxK09TVjJhTGJoVk5GcTFERjBmZWVFSWI0czhTT3cxNGhoQ3IrL011THhFMFByUTMvOXZQWDVvcysxODl1ZjczdEhOZWJMa2dWcjN6cUU4Lzg3aXB4NDU5V2l5UHZMaFY5cnB1cis1MVBYTjhuUWJ6eWVmdjcrdFdISzBYdjNpWGk0K0QrUEhYM1ZlTEszeTRUQWFFS0lUemlqc3ZPRW45NXAxcW9hcUNtcnU2akJUTDhIQmdMakFhdUFpNEhCZ0VYQUVYQnVaa0RaRWlTbEJLY3U0bVNKRmxsV1k2VFpkbGtNQmlNSnBQSllKUWxHY2tnSmRrVEpBa2taMnAzc3JPelNYUEVZYktuY3RGRkE3bDg4UG1ZSkNpNWVoTDMzZmQ3SG5yb0lWNTc3VFUrL25ndnJyS1ZkT3Q5TGMxQzVibmZYYzJ2SDl2TWwyODhUT1pWZHlJQzVaeDc1aVVjQ2w2ZmdmM3I2Tkw5TWc2M2MrMisvZGRidU9xM3k2TGUrK0xOaDhtODhBYU8rclhYci8rLzYvblovU3NRUXVYNHNTWUNvZlVlM1U3UHJ1ZnlSZkI3NHVoT3pqQ1orTU1MdTRMcjh0TFNxdkRwSzNPSlAvTUtEcldxQ09INkJubHNxcCsvdmZvV1NxOEx1Q1UvMnFCc2J2eUtXMS8rZ1B0dnVJYU1HSWZxZXp2L3cvTU5kbDZZOHZYMG1pUkpvcUNnQUtQUmlORm93R0F3aGhtY0xPc2ZvM3h4WWIrYkpDa2g5aVpVVlEwcmh1allXNmkvUWlERTNpb3FLaFNucyt1cXQ5NWE5MzdYUTl0SE93ZGNlbE4yVUNsMjZKRExtUC9FYm1BaUFNV0RCbUdUQWRuSjRJRTU3TnBkeXVUaVFhZDBhR1diSFJzeWRvY2R1ODJPeldiRDdUazVtZTdxcmM4eWZVazU2N2E4b2UyUHE0ek5lenpJbTU3ajNpMGE4L1FwMVpSV3VPblhUNlB3NXB4QmpCOFlsT0F3V3VqTUVPMC9ZUTUxRStiOHNNNjYycjNzOWVRek9GaTluajlrS01iSnY2WmFoV1RBbmorUS9zbWFBVHBrME1Vc1c3c0xHSEdLRzdOaXN4bkJic05oYzJLemUvQ2U1TG53TlpReWJ2ejl6SC94WHhRRTkyZlR4aTM0Y3JPNTc5N1BBQ2gzcXh4NWYvdUtGVisxYnBrNDhjYWpKMkJwb1JwUG55UkpvVFNPZ0M3cUtmVDVhVDdGTDR4eDhaamo0akViUEtMVkQ5YXU4YmdQK2VuYW96dDJleEoyZXlLWjl0MGtkVTJoUjQ4TUVrUWpMeTVkVEhXREIxVngwOVJvSjlTQndXNnpZM1hZY2RvOElOdXc0aWJrRGZVMk5lQ3hPemhab3I5MTg3K3hJdlBnck45ckhMZXlubEx2SG1BOGFsTUY5OTcxSjNhV1ZlRlZmZFM3RzJod1EwNW81Wlo4Sm8zdEYzeGh4aEwwTldUM3Y0QVVNNER0VklFdHdJdHZ2TVYvNURONTZzcjhLR3V5MWQzQXJjOXU1TnFycitLcXJPaE0wNC8zdnM4ZnRydjR4OVFSZEQxRlpaTzh2RHhDemsrajBZakJFQUs2aUptcStlSEN2amdSZkpTQ0VWR2RiellLNEZRZHdJWEFMUUFvVjE0NVlqK3dKUE95WDc2cktNcTFScVB4aXBOeEtuL3pJVWRzOVpOWW5hZDJOK09uL0puRnEvOUZMNGN4dkIrcU9abGhZNjRtSzdpcTBhT3ZKU2MzVXU4b1cyMmNyRmR0NytvRlRKcnpYSnYzNzMzOG40d2ZrTUtQYjhqaGg4alpPQWxaSWFXSjI4ZmZRTW5zcHhoVGxCYTF2Z0ZEcjJaa2dRMUZVZDQrNjZ4ZUc2Wk9IWGRnZVFUUU9nSTF2WTlOMFptZVlYOXhxRStJTEJ1RTBTRHdla0gxdWtWRGF6TUlnYi9GUzBLQ2pUaXpqTWxxbzB1WExqaWREcXhHaWE2cFBlaDVabGZtL2ZJUFhMOXNNOU9IRldDczMweGF3UjlpL20zN2M5Sml0MlAydUhCQjI4Q0wzTjdWb1pKVmRER2pSNGR1L2xjejFaRUJLTnczNldvc2s1NW53eE9ETUZOTmNmSkYwZFBmYXNQU0RuTEpzdkViQkE4UXZQbjIyN3gwUEpsbmYzNGU4YnFkVmp4TjNQSFVlZ1lPR2NhTnZhUC8zdWZsSC9HYlRRZFo4b3VSbkdIOVppcjRQWHYyeEd3MkJ3SE9pTWtVRFhEdE1MY2d3RWxTUkhvOFVxRVFZbTI2d0VKQXg5N0NrK2pBTzA5K1lESTlXVnBUYytDZHQ5L1plRjIvL2xQQ1NyMDd0MnpCclU3R3BqYXllVnNsbzZaR1pLUnRWaHVORGZYZjdmWG5xMmY2dUJzWStlQUxETXZYSFh0N0FVUHlQVlM3bkl3YnJrbnV1QnNhTU5wTzdSemtEWnZLMnY3ajJzeGNaOHFKUS9sV2F5SU5EViszbzVPUGhUT25ZeDB5ZzJramduZnA5QUlLcldWczN0M0FoSDdKbEczYWlGSjRQbGt5ZUFCWDJWWjJOZmdvVGphemFjdC82Ti92OTVGOXNOdHcxZGVnOEYyVzNhZ3N2ZWRHYWdwL3paSUpBNkkrR1RKMElLOStYck5yMHVDU04zdWZsZnRwNk9ZWkEyanRnSnJrbHlRTitJUVFBUUVCT1p4d2l4b0lxQUxKZ05sb0VrYWpFZUZyQnRra3pzaE0xd1FpWlM4ZmYvWVZSbHNpNmFsZCtkenRvVnUzYmppdFhnNDJCUmllY1NiNXVRa2NjWGRsME1BQ2pNRDJkZXVvUDhuN3M1emRqMExmUHNvYW9TUUcyZEtjM2FuY1dCVWxFejlvOENYTW1mOFplZjN2UWJzSEs1cHNQaDZxcXoxTUxTbkdMRVBWcGpYc1BZV21YVi8vM0xZYzRvRk5YK0N5eERGa3ZxWVFhdTZXdzd2VEwyWEhoeCt5c2U0NEg3eStsbis4SG1RSGx3L2ovZ0daL1AydDk2aHRsTGxoNFRQQkZjV3piT1lFK3A1aS85VE16RXdkdUpuUWtnMk5ZVk0xbXNXRmdVNElJYVJnUGFtUXBFQW9WeTRjV05DeHR4REFSYkUzd0orUmtma3YyUmovM3I4L2VYNllFT0k2SUMrRlNvWU51Z3lqcHdaenllK1pNQ0J5ZG9lTnY0VkY0MzVGMGVvSHlCdDJDeS9PbjByZDloY1pPL052ZUJxcXFHcVFLU2w1azRLUmQvRDRqRTcwdDd6N0dEZnNsOVI2WGRUWFZ6T3k1R0xNR1JlejhjWDUxRzk2a2VXNzZpaWNlek12ejlWTzdid1YvMlprdnBVSG4vNEg0OGIvakRVTDhyRDQ2cWwyOTJEanJwVmtuTUp4TjF2dFpGaFBMYStoLzhoSk9CNi9nWUtpRjNBV1hjT1dwMmVkRkxCdFhQa2NqclJSRVdDVDAxaXcrQStNSFhNaEt3cHlLQzJyWmZHS056R2pBWnM5emM2OUl5L0ZhbFVwZDJldzdwR0lRbTM2Z05FTTVSb0tDOC9EbG40QjY5Y3Z3ZG5KY2Uxc3pKOTJCZXZLM095cjlMQjMzRVVzdERwWXNPcE5pdTE3ZVhEUmVzaXJvVi9SMzdUcllPWmYrZU1ORjMwMjlCZXoxdnlxNzZBUGV6OGNVSFJSVEwwaWh5K1dvVW5nRjVvYWh4S2NoMm9FMUNRaHl3aEZFVUpJTW1hemRqMGNiM1lKYzBKeXVBdWMxZXJFWVR5QXF6V080dUtMYUZqM1QxNSt6VVc4MFlTemF6d1pQZlBJN05tTG1WTnlHVFhnUW9veXJNanBtYVNkN1AxUHptRGM2Q3pXYjloRHlmam9iS21DVVZNWXVPd2Fjdkplb1hERXJheFpNSU9jRWJjemE4dk45Qzg4bjRKZTZWUlY3bVBFUFU4eWY5SWdicnR6QWxPSFg4Q3lnalM4MXU3ME9vV2NwdE95OHVEcmpLTkhqMUplWGs1VjFaZlUxdFpTWDE5UFkrTVJtcHFPQldXUFFsVUtMWGk5clhnOEhudytIMEtva3RhaFhpRVFDRWpCL2d1aGFnVXBXTEVnQjhIZkNCaURWUXNtdE1vRk14QjMzMzIvVHp6YlVuSDU2c0ExMXkyL2EyaE9nMWNtSStWMHpDNVRxYXVwQm91VHRPUWZoMGFJNG5WVFU5ZEFTa1lXMW1DK1JkUDJwZVROL0lEYVRYK2lwczVGZWt3YXdROHhoQkQ3RHg4K3ZHYk9uRG03SG52czhWYWRLZWxyeC9RTVBmcURFVTlGdDZoNlgxcXdpb0JnMG0zUWVqR0hHaGxqc1VTNnMydXF0NGs0SEVrNG5WMUpTZWxLdk5uQzJlZWNSMkdmM2xFbFVrMzFOYml4dFVsRk9kRndsYTJoWk1ZR2RtNWFmTkt1RGErN2licEdGMmxwR1ZoMEtUdnV4bm9hUERKWkdjbW4xT1hNK044K3VidDA2VUpoWVNGeGNYSEV4Wm5EZHl3OWc5TXpOeUhVVUljckljdCtTWlpsRkVVUmdVQVVld3NWMThzeDVta0FVSUxtcVIvd3o1Ly9nQTk0cmZjZzhZNzN6dUZEZTNSTHVoYm9lZm9kS1ptMGpPd2ZsZmZMYUxHUm5kMitZb0JzdHBHVlpmdWhBYTN5OE9IRGJ6ejg4TU1mL1BuUEM3dzZnUEozQUdpeGdRRkZIeHdJQXBzSWxVVUY1YnZSUUUzTFR3dFdFMFNCbXMybXFkNG1KWVg2RTJnZDJyT3pzK25kdXpmeDhkRm1reU1sZzFQSjlySG5qMkxoakVacVhTbzVKNm5yYnJFNXlMYTEzWnJObVlMdEcvQ0QvM3JHcHB0RWZQYlpaMVJXN3VmZ3dSb09IVHBFUTBPa3Z0VHRkdVB4ZUhDNWp0SFM0a1VJZ2MvbncrZno0ZmY3SlVWcGw3MUpRZ2c1Q0hDaG1sTkRrTDJaZ3V6TnJGL3V2bnRtNHU5Kzk3dExuVTduMVpJazllR244ZjJ5dUtZYXR1eHpNV1JBL2cvSGpWVzFyTDYrZnYzczJYLzg4TWtubjJ6dEJOQmlGMzhRMU5vRE5EMm9oVmxhRU5SRU1FY052ZVJRQk5UMDFRU3A5T2lSUVU3T21mVHUzZnNIYjdyeVhZMGZEYkNGUmxWVkZaV1ZsZFRVMUZCWFYwZERnNmJHNjNJZDQvaHhOMGVQSHNYajhTQ0VDQmJRdCtMeitmSDcvU0ZsM2lCekMwaXFLcVJnNURSa29vWkNRZ2FkZWRvdXdPWGs1SmkzYnYzUHhhbXBxVmZKc256aFQ1RHo0eCtCUUdEN2dRTTE3MXg4Y1VscFRjMUJKU1l3MEJtbzZRRXQ3RWNMVlE4QVFoL3hiTXZTVEpqTmNlZ1ZiNjFXZmQxbnBKRnhSa1lHT1RrNVpHZG4vNmpQaGZISDlvZXlzN09KajQvSFlva25MaTRPc3prdUhHUXdHazBFQWdGa1dVWUlvVE5UV3pFWURLRTdZWWk5aVVBZ2dDUkpvYnkza0VrcXh3WVhZc3hUSDJDdXJLdzBwNmYzZUFmWVVsNytXVkYyZHZaUWs4azA2cWZMLzhjM1dsdGIxKzdidCsvZG9xSno5K3ZBVE0vU2ZPMkFtcjhEUUF2b1VqakNabWNzU3pNYWpVR1dwb0dheFdMUnlYZ25ZTE1sa3BTVWhOT3BseDNLb21mUEhGSlRVMy8wNThUNFkveFRxYW1wV0szV0lNQlpzRmdpQUJjSUtCZ01CbFJWRFVkUXZWNWpDTnp3K1h4Q2x1WDJmRzhpYUpyR1JrOERCSnRpb0lYaVRYcUFBOHk1dWIxM0FudmVlV2ZqUzhYRkZ3eXkyUkt1Z2xNS1N2NDBUaC9YUjgzeDQ4Zi8rYTkvYmQ0OWV2VG9oZzRBclQxUTgzZkcwRG95TzBNc3JYM1RVKzlQMDRJRVNVa09uRTRuS1NuZDZONjlPMWxaWjlDclYwOFNFeFAvVDV5ZlV6WkZtMXd1anZsbGVuU3hSUmNBQnhScWp4N0hFSjlBYWtKMHI4cVdGZy8xYmgvSmppUVNUTkwzTWZrb0x5L255eSsxaU9taFEvVWNPRkROMGFOTnFHb0F0MXVMbUxhMFJKckZ0TGEyNHZmNzhQbTBoakU2M3h1aDVqRnFRS0FLSVFmYm1ZWk0xSTU4Y0hwVDFRU1lKMHlZWVBuVG54NitJQ1VsWllqUmFPeFF4WGZQNXRWWThvYVJsM2J5elVOcXk2QkNnVUdGUDY2SldyRnJNMnBHTWJuaFk2R2lLRkZsNWhpREUvRkVKY2lxcXVxSzM2TStvYjZtR3AvWjBTWWkyTlJRUTZNYjB0TFQvblhvWU0yN3Yvbk5iejU5L2ZYWC9TY0phUDUyQUMzUUFVTlRRL1hPd1FBQjBTd3Qwcnk0clQ4dG9xUG1kR3BCZ3ZUMGRNNDQ0d3h5YzNPL1UzOWE5ZDZ0dUoyRjVHZWNIaEgzNzAyMmFQbnFWVHkycjVuVVJETzFqYzFNdnZwS3BoZCt0MjBISkVtaWQrL2VKQ1FrQlBONTR2SDcvUmdNUmxRMUVKWGtHNWs4QmxwYmpSZ01QdngrdjlDK0wwdUtFa0JSRktINEF2aFZGVWtTS3RwTk5hd1dFc3gzTXdRbmE0akJHWU9BNWdzQjI0b1ZLMXBYckZqeEwyRHJ4bzF2UDNYKytlZGZrSmlZT0ZTU3BDaGRsL1ZQUDBUeWxBRmZDOWoyYllNVmpUOHVZRk5kNVV5Wit2OVlzZjN0OEhzcjU5M0F4QWZYayt5d2hhZnlJMnMrWW55L1JvcHQ1ekp2MzFHR3Q4ZUpQV1VVcEJWZ0gvY3cyNWZPakFCWHhWYkdqYnVKV21NR2RxVWV1ZkJtdGo1OUQzanJ1V1BDMVordC9zUzNPY25RL05ISG41WWYwWUZTZTREbTd3RFFsQk1BbW1nL09HREFhRFRwcFlhSWl6TVRGMmRweDUrbUtkNTI3WnBNYW1vcUdSazkyUDM2WXR6WExhTDNkeHdrc0NrMWpKbStsbTFySDhSOEdzeVpVMkJzclpRZWFJbVNMWHF5S1pXM0poVFRlT1FJM25oN2xHelI0TkUzTURYUFRrdXJqL2c0N1M4ZjJiK1hpNS8vZ3YvTXVvYnZTMDZ3cWFtSnlzcjlsSmFXVWx0YlN5QVE0T2pSUm80ZDA0SUtzZmx1UVdYZVVOUVVSVkh3Ky8xUzgvRUFmalZBbkRrU1BkVUZHQ1Foa0tGTmtNRVFaSERHR0JZWHRYejg4ZDY4bmoxN1hoZ2ZIejlFVlpSMFZjZENUZ29BVkcyUmpUR01KVWhoM0kzUTVJT010SzhKTEY2b3FvV01iQWlsR25tYW9LNFIwcktJa3E0SjFiNVVWMEZ5QmxoMXMxenhRblVkWkdXM3ZhT3F3YzlTMHFOL0E3QngwVFNXTkE1aDFaenhPbUQ3T1F0ckxtSHI0OU5qMWxSRi8wNkFyWEx0ZzR4ZHNndDMyV0UyVi95YmRDT0FtMG45ZTJLZjloS0xwdzBHb0xTMHJQYk1NOC9ZL05KRDB6Nzh4ZisrVUIzeXFaNEVvT2tYSmNqUUF1MlpuQVNGVDRNMXpURm1wd0dEd1JSc1dteWlJOU16SVNHQlJKc1ZDWWt1S2VuMHpNNElCZ2t5eWM3SzRwRnBBM0ZNZnBPN1JtUkh5MWdCN29aYUdyeG1zak9TMjh5VnhycHFGR3N5S2Zib202cW5xWjY2Smk5cDZSblJVbEg0bUQ2b0Q0TVh2cy80Zmo5OGc1ZnZUYllvQkdxaFkyYzB5SHlmZ1dhSHc4RTU1eFRTMnVyRlpES2hLSDdpNHkzRXhWbUNRUWJORWR2Y2JNSm9iTUZrTXVMMWFpek81L1BoYi9WenBNRWdWRldSQkFxdHJZcVE1QUJtazRxRUpIeCtEZHhDUVFaWkRnY1pBa0pnQUNsWXhTTkN6SzBOeVBYdFc3Z0grQVI0K29JTEx1aDc0TE1QejcvN2hZckJkdzdQU0QrWi96aHRPT3lxZ093SnNIcGU1UDE3eDhBZUdWUTNWSmZDMEZtdytMWVRyKy9wbWJDcUNlcDNBbFl3RnNEV3BmRHdkRmkrQjNKU29MUU01andORTB2QXZRY3l4c0hJWEdod3daNDYyTElMY3UxUXR4c0dqNGFNUXUyZjc5c01XNXNnRzlqK01reStGM29WUVBrK21MOEN4dllQd3lFclZyek82RVVQZnl2ellNM3FOeGc2NFZHOFM2OWw3ZllHcHBVazQ5MjNudFVWV2V5WmZFbXR4K1BaVWxIeHhVZm5uSFBPZmoyNzZnRFEyZ08yMEh1aG9GSWdER2l5ckVwQ3FHcW9JemdJSkVrWVRTWU1zaVM4TFMzSTVnUzZXT1BBM3l3YWpyckl6TTdHYXRGQXpXS0pJeTR1MUpIZFNrS0NqWGpKemVzdnY0RTE3UXppMUdaU2lzZng1SnpCMkJwMk0yNzhQWlR2cWNGWWVSTWJGbGtaTVA1dTVrMGRCa29qc3lkZnk4djdWTEtzSGhwdHhheGQ5VGZTTERCelJDYmJQSDB4bWczVVYrNWw5T3puZUhDeVZzLzU0dHdibVBWeUpZVzlrcW5ZVjg4VFczY3dJSXlKWmthTnVvZ2xMNjlsZkwrSlVjZmNWYmFlQ2ZjOHk3emxLeWh5bkxiQXBoditacGJ0K0lKeGw3Y045bjFWOVNsYmpqbDVXVmN6dXYyRDkxbjAvbjRxajdReWI4TFB2bmYxVjRQQlFNK2VQWW1McytEenRXSzFKZ1M3WE1jQ25KbVdGaTJLMnRyYXFvR2IwY2NaMlVhTzF2bUZLK0NuUzZJV1BRMEVBcUxGRndCSnhXeFNoYXFxa3FJZ0NSQ1NGSTZpQmdDREpLR0FaQWhPZkdQUVREVzJBM1RHSFR0MjdBTDIvT2JLcktjdTIvdFI3NXljbkNLcjFYcGhaN2x4U3pmQTJvV3d0SjF5VEZzQnJKd0xUZHNoZXhvc3ZPM2tUdjcyUGJCM082Ulp3UnZzQ2pqOVliZ242RXFwV2crRDU4TEVEY0U3ZWgzY3N4TUtIWERQY0ZpNUVlNGJBdy9mQzJNZmhIa1RvR29EOU5vWXZNazF3TVRiNGRuZE1EQWQ2clpDOFYwd2VrdHcvM3dWN0N5MWMzdEIyeXVpZE0xZkdGcnhxamFSMHk1ZzlmSjVuV2U4cTNXc1hsZkY3SG45OGRSZXl1TnIxekYxNE1TeThnLzM3ZkIwY1pUMWpEUG9tWm1xWTFtZEFacWlZMmVLSHN3a0NUWFlsRmhvaWd1U2tHUkpHTU9SVG9sV2I2dFFoWUY0czRuNE9CT05UY2RGZ0hpT0hXc2hMYXNuU2JiNHNEOHQwajNLaXMybXFkMGUrYlNVaEw0amVmaXVjZlRva1U1NmVqcFpXVm1RbTh2R2plT1pOZlpzSEpPZlorYkk3UEJoMlB6NGJOWjRMMkx2cm5tWVVWazQ3UkllWHI2TkJWTUhhaVJnd0RqV1BUd1pUL1ZHZXZXL20ybmpkNUJqcVdQSjRzMHMyM3VRUVdtQTRzTVhZMHdVRmhheDY4R2RoQlJ2d3JjbVZ4MjdkbjJFMi9mZkVCVTlCZG1pdm5sbjh6L3BaN0IxOXdjc2VtY1BsMDBkVE1JUFFGTlRVbEp3T3J1UW1KaUl6WllRRlVIVkp0RngzRzR6WnJPSGxoYU40WVZNMDJhekQ4bHZ4R0x4aTJCZ1FmSzRGUXltZ0RBYXRSNE5BVVVWSUNSWkRrZFJKUTNraEJ5OFVPVGdoV0FJbXFuaHNxMTJnTTVZV0hqT1IwRW05OUpiYjYzcmZ0NTU1K1U3SEk0aWs4bDBJWEJTblRVR0J2WC9IRmxnYVFRM25GUjIrYkF4R3FnQllYbVl1cjB3WXlHVTEyZ21aTDF1Z3R0eU5WQUR5TXFDVU8vblhidGg5dFBhOCt5QmtCR2NlVlhib05ZSXF4ZkJHa0QxZ2FzVWFvRXNBRmNEalVZSGpuYmNqRG1Ecm1QeG5LREV0OUYyUXQ5TzQvYTFsS1pkZHV6OHJvRWQ5VVhGZTkrWjlOY3ZEQTlOUGhMeWtYYkN6dG9ETmIzQ1JyVHZERlNCcEdxUFFvUjdic2l5TU1nSTdZYW9DSkMwM3BFR0l4YUxSUmlOUnRLTmNQQndBL2JVYkxwM3Rlc0NCQnFvMld6UnFSelpDZWZ6K3FLVlBMc3lnV0hEUnBCYmRHS2h4eTFiL29YWjA1L1o5LzQrNkRid1VHZlpDMmpBTm1TUVpvNWJzd1pTYkM5bGQ1VkNUbDR5UXdZbGM5dTRheGczOGpJR0R4L0ZvTUtzcVBYYW5RNWM5VWZhYk04NVlESjFkWk5QZDFNVVRsVzJLQ0hCeGxrSk5zNjZzb1EzNXE1ZzI1Rkx1THpyRDVQNWJMVmE2ZE9uRDNhN25jVEVSQklTYkZpdFZxeldlSnFhTkFibmRzZGhOamRqTnB2d2VrMTR2YTBjTnhzeDRDYytQdXg3RTdMa0IyTkFNcHMxQnVkcjFSaWNMR3NwSW9HQVFKS0ZoQWdIN0tUZ1hWM1dtSnprMS9uaURERWdwd2M2WTFCQzZRQ3c4Wnh6Q2szTGxqMlZrNU56Wm0rYnpWWm9OQnI3US90OWxjT0tMbCt6OE00U0crUnl3OWl4TUc4ZGpPd0hudDJRTnFXZDdjUnNTemFDVDRuNEl2U2VYWHNHakJrZGVUMW1QSVFGa093TzdJb0xseGRpNlpqVmtVNWUzZ2wxOU4yS29uemdjcmxLRno3K1ZPV1JEN2ZYMk0zTDFSaG1Gb2p4ZzNVRWFIb3cwLzlHMWZ2UGdvMGlWVWxDSUJDeUxLTUdBa0tXRGFoS3F4RElKTm9UTVp1TUhHdHNFQWFUQmw0bWt3bVA1d2l5TE9Ieks5Z1NiY1RIdE1RTDlmbDBPcDEwNjVaQ2V2cUZiTHZtSmo3NzlGTldQZnNnZjMzdEE4cld6Tzg4S2d3VURyaWMwY09DZ2d1anI4YWVrbjFDcUpqejh2dU0zcjZGTFpzMk1ISEkrVHk0N21NbUZFZWtxdHhOTG16TzA2T0QxZmNrVzZUeTFiRVd1aWRwL0t5eHZvNERpcGt1bGgrK25DTXpNeE9Id3hFRU9Gc1k0T0xqajJLeGFPQ21CUlphTUpsYU9CWm53b0NQaEFSanFHS0JoRGdqTHNVdkxIWURpaThndVlXQ3lSd1FKbGtsRUFqZzk2dElraURZVHliVTZGbHZwc3JCQzhRZ1NWSTQ2S0FEdWZiQXp2alJSM3VONTUxM1hpbXdEMWg3eGhsbkdHNGI5WHhXcStHc0hKOHZxYmZKWkNxUUpLblh0M3JBR3FIYUNDVkYyazZ2VzMxUzZtUU1HZ2pyMThDSUdiQjNQZFFvRWZabXF3WTVHNHFEUVkyR0JoMkdtWE1wem0ya3ROeERZZUdKbzhOQ2lBcFZpRStPSHE2cjJGeXg3OHNiYjV4MHFLYW1SbzFoWmUyeHM0NVlXdml6b05LTEVyTU9WUWloVDlVUVdndGNTY2d5QkZTRXdXQkE4ZnVGd1dSQ1ZWb3htT0t4eHNjSmd4UkFVU0UrVG10N0o3eE5mSFZNMEsrNG1PcTlIMURqeXViOE5JY3U0VllmOWRUcVBidDI2VUpxang2Y2ZlNkZETy9uSUcza2MzZzFsNmpHb0MwVzZoc2EwTHlaMmhnODZGTHUyVnBKdjlrVE5aYXJlbWhvaXR4cU5tM1p4TXlSVS9CVWIyT25xNEFGMlViQWg4dXRValJ3S0VVRGg5SlUray9LeW10QkIyeGxaYVVVOVcvTEdOM2xtNWd4ZnhYM0xGcE12djEwQmJaVGtpMUs1Uy9QdmNTN0xSYTZ4Y3Q4ZWFTWmNTTXZvMy9DYVFIdUpDWW1VbEJRUUZKU2tnN2dFckJhRzJscWlzZGljUkVYMTB4Y25KbkdPRE1tNGNWbU05SGFxa1ZOMHpKOXVDdE0xQi8ySTFSRnlHWUZlNElpQlpON2hkY2JRRGFxUWhhcUZFcjAxUVVhUWlBWFpuSEJ2RGcvMGJseGhoaUFhL1A4eXkrL05QenVyeVdmQVJWeEMza0hNRHp5eUo5c2g1b3VUMDkwOWNocWJiV2RhUkttWGlEM1JsTW8rZm9qQzI0ZkNDVURJTWNHeVZrbk40bnVlaGhHajRIOHBaRGJIN0tDZHFPY0RDc1d3YVNCV3ZEQVZRdm0vckR4OFloVGV1eTRLMWk1ZmlNVENrZEZoK2VGK016cjlYNXgvUGp4TDZ1cnF3Lys4NThiRHQxLy8vMHRnRHFoWDdvNEFaaDFCR3F4ejhOTDhQeEVKZElHMndNSmlLUnJJRWxDUXNKb2tJUmYwZEtLZksxZVRPWTRMQ1pWSEdseWM3akJDMExDYUpBd3g4VmpOY1BlZlhYazlSdElhbGM3R1lNdjR1Mk5PL0hrOXlhN1czSlFsY05KdDI3ZHdxVlJtWm1aYkhyaUxpNWUrQjhLOHJLbzNMdUgyKzc3QjNyNEh6dnRONHlkZGdNYkY5c1pQUGwvV0RCakJJT256V1hFenVzb0tMcUkvQ3dIRmVXVnpGajhKdE9IYW1TL2FmdkxEQnI2R2syVnBVeDYrQmx5TEFCMWpDKytGSGRHUG5ZYXFIVG5zbVprWVJSNVdidm0zNHlkTzYvTnVmZldsL1BNTXk4eDhjSHZEOWkrMTFyUlprOHpSN3dLWFJNVFNUREpQd2lJMWRmWDQvUDV5Y2pvMGY0K05qZFRYVjBkVHVnOWNpUlVhK29LeXlDMXRHaSt0OVpXYnhEY3RIcFRqOXVISWhTRXFxV0hoSXJxUTlVTHdScFVnaldvb1VKN1FrQ25lNVNEZ0NmcmxwQ01raUdtQ2ZTSm5odGlmdy9JcTFhOW1weVhsOWN0T2JsYnFzMldrRzR5bWJvYkRJWU1TWkl5MnhwOWJVZEREU2hXU1B1YUVTQkZBV29oYXlpVWwwZnNabFdCbWhxd0o0TWpZa3g3aFJBSFdnL3ZPamh3K0IrL1dySDI2YStVeHZyRFpXVmxSNjYvZnZ4UklocDY0ZlNKRHNDc0k0Ylc0Zk5ROGJudTkvb1VqWENxUnVneDJCMHRxTllzaVpCY3ZXNkpsRU1aWkFRUzFnUWJscmhRbmFjNUdQRU1CUWdTd3Uzd3VuUnhoRmxhS0RpZ2I0WG44N2lvclcvVU9qcFpUejZMek5OVVQ0TkxJUzA5SFhQdzdqUnplQ2JaTTk5bllxR0NZbkdTSEpYdW9kSlFXNHNiTTFucEtkR3BJL3ZXTW5ENk9yWnZYb0wxTkNBclA3b2krRzhLYktGUlYxY1hMS1EvUkVQRFlSb2JHNE1hYnhHbEVJK24vWW9Gdjk4ZnpuM1RWeTRFQW9vVUNLaGhnQXNFMUNDd3FhaHFHTlRRTWJxT1FDNE1VREdxSTUwdGNzeHpPZVo1YUJ2U280OHVzUFh0MjllZWxwWm1UMHBLc2x1dFZydlpiTFlialVhN3dXQ3d5N0pza3lUSkprbFNnaVJKOFVFZ0RBa0FHSFRldFJBdytHcTM0cHY1TE41emU0dVdiYStKNXZRSndyM3dsNm83RUFnY1Z4VEYxZHJhNnZKNFBNZWJtcHBjWDMzMTFmRzllejkyMzMzMzNSNGRlSWtZSUJPZGIrLzA0Z0FBQzh4SlJFRlVnSmtleURwaWFsRkxKMEFXQldaNklBT0VMRXRDNjVJbVlURElPa0NUTVJpTXNaVURSQkp0MjFZUWFNbTJtaUpIWXFJOXpOS1NrN3NGdTdGck9XcmY1UWdCMjR5aFgyODcrN2F0cGNGUlRFbis2U0VQL3hPd2RaYk40dmR6NE1DQnNJQ2xKb04wbEdQSFhPMktXRWFyaGZpQ0FLZTBBM0FSRnFkMXVsZEQ1VnJFTUxqT1FLNWRzTk9WZDhtZGdKcWhIV0NMWGZUYjZXeWhuY2ZZNTlGTzJyYlA5WStkTGJGQUZydDB4TkxhUEE5SnY3Y0hZaWNDczlEem1KNGFVZXlzTGFDRlFDMVN1TjZSR0dSU2toMkhvd3ZKeVYxeHlHNys4MkVsRG1jWERJYm8vdlQ5aDQxblFPNjMyMTE5Mzg3TldIc05KTXRwL3ErK3puOEN0cE1ZeDQ0ZDQrREJnOVRWMVhINGNJaTlSWFRlbXBzOU92TTBVclVRcVRtTkJyaEFJQkJscHFxcUdnVnlRcWlTcW9xd3FVcTQ0Yk9RaEVBUGRGSTdJQlFEVU1LZ1ZVTzB5OUk2QXplcEE0Q1Qyd0cxemdDdU0zQ0xCVFRhQWJIT0dKcmFBVnVMZXEybDJraWRnbGpRWjZick54djJtNFhBTEdocVNraFNOSmpwUUUyRUZHUDBnR1kwUmhoYXFIcWdiVjZhVFZmbkdmR2w5ZWpSZzZTa0pINGEzM2xVOVAvZVNFcEtJaWtwaWE1ZHUxSmIreFgxOVllQ09tOUhneVZaeDRNRjljM2hnbnF2VjErU3BXZHZJUk0xRUtVZW9nbGNCZ2dFVkZSVkZVR1FFNnFxU3FGK00xcS9CcUpZWFBBQ2ptVjBPZ0NTWkVtS0JUd2hCd0d5TTBEckROeStEblA3T3NEMmRjek9kZ0V1Q0VpZEFoalJ6YkxEb0tyM21ZVmVCd0V0aXBscFFDYUgyajZLRUZPTDFIWWF3d3JPRVpZV3FSNndSS1Z3aEZoYUVsMjZkQ0U1T1ptVWxGVFMwN3YvbjVBWCtnbllmdUJSV3ZvSnVibG5rWnFheW9FRE5kVFZmY1hodzRjNWN1UklsSkJseUR6Vks0Ym9hMDQxMzVzR2NvRkFHT0FJQkFKNmlTUkp4K0JFaE1tSjBLT0lNVlhSUjFjamJGeEk3WU5TRk5oRmZhY2RjMWM2QWJCMXhOcGlUVkxSQ2JoMUJuQnFlNjkxb05RWnM0djlUZFMyOUs5alRFMWtXZFlGQS9TQVppQ2t1aEVMYUFaRGhLSHBpOWJiVTdiVnpNNklFR1RYcmwyRExLMDdtWmsvS1ZyOUJHdy93TWpNekNBMU5ZWGEydHF3U205Yjg3UTVHRndJQVp3dnh2L1docjJGQWd4QmtGTTdCRGtkd0JITjVxUllvSXQ2M3M1bmJaWmdIbDBuekV4TDB2b3VmV3hCMW5XeVRLNmpCYjFwR2ZPYTlsaFppSm5wL0dmdGdGbkk3RFIyd3RMMGZqUnpVQk13WGljQ0dXMTJodFJ0MDlQVE1adk5QMTFnUHd5d0JkaXhkeC8vclBpS1k0cE13Vms5dWVIY016QURyYzFOdkxyck0vYldIY05nc1RHeXVKQUx1OGNrd2l2TlBQWHZqem16OTlrTXp2anY5UjJZeldheXM3TkpUVTF0WTU3cW82ZlIvamM5ZytzNGVxb29Db3EvbFpaV0NZdFppZ0k1WGJDaFBaQWowaVlWS2ZaUlZWVWtXUTRKMk1ReU96cGhZcnJYVWtqVzYyVEJyQ1BHRnZXZUNOblpKMlp5ZEFKZ2tkOExJVlJWWURESVVVeE01eTlEbjZJUkMyYWh3SUMrQ2JlZW9YVVc3WXo0MFN4dC9HaWhhR2VzMlJuYlVLVzlVYllic29xZzNaYXc3aW9tVEhtWXhTdVc0TlJkMWJYbGU1QlQ4a2x6ZkR1QTZTbGR4ZUM1dTlqNTh2eHZ2SjRoYzNleC9SVFdjekwvNlJUMDJJNnplbmN0UllYWnBKcFZscjI5a2MrT1g4YURnN0w1c3JLS2o1dGxMdTJiaS92SVFYNzk5NVVzdm1NaUE3cEVOdlBXNXEwc2VlOUxyckwxK0s4R3R0Q0lqNCtuWjg4YzB0SlNxYXVybzc2K1BtaWU2djF2SVlCcmFTT0wxRkgwdExuaENJY2JBK1JrcGVqVFE0VE9ENmNIT1lSUWhSWndVQWtHSHNKQUY3ek9KU0VFa2l3alJjQ09rMkZkTWNCM0lqQTcyWEtTTnFhcGlQdzRDcVJDN0tvanRxY0h4UER6NFA4ekdBemg5Mk1DQUVRZVk4Rk0xalhkMWdPYUlkaVl1Nk5vWjdTc1VFaUZRd08waUIrdGE5ZXVwS1Nra0phV0ZwV1BkcUl4YlFRc3JJRCs3UlROclZzeUI4dUE4VkdnQnJEa3ZwL2ptUHhXVkJIOE43cWhweFZ3KzZSdm50S2hlbDFVVlI4K3BkK2V6SC82K3NBbU8zaGc4dVhobDEwOGg3bDF6NWN3S0p2Y3ZrVTgwRGYwU1RhN1AvbVVMZnNiR2RCRk94Q3V1djA4VjJ2anVqT3RlSDVrMURjaElZR2VQWHZTdlh2M2NQVDBTTzFuUFAvQ2UvUXRLY0hlY2h6WG9VbzJmVkpMbjc2NUpMUzJCQU1Nc1F6T3k0RXZ2cURwV0ROQ0VSdzVjZ1JWTXBHUzRvUkFnSURpNWZEaFkxaXRSbkhNNVVKRnhwN2tRQloreWVWeW93UzBXSUlwemlKTVJna2hCQUcvRDE4Z0lBQkpsZzFJaE1CT1JWRlVMU0NocXFDeGxwTUZyVFlBcGtYWXBUQ2xDNmJrSTdjdmNpakMzd21CclBiOVlGNFlZWUFLN20yUTFXbUFKSVFxaE5CK0wwa3lScU1oQkhBRUZEOENDVW5Xb3BRaFVBdjRXMUV4b3JTMkVoQmd0ZG14eHBuQ1FOWk8yZ1p0ZldudE16U3Q3MEFRMEl6eDdQbkVTdTRaTm5ac1M2UmJUaEkzVDNTUTNrM3pveDJ0U09OdnoxaHh5VEIrT2d3dEJEeXdjQkdNdnhQU0xPQ3JoMGVlaFJsM1FlVW1XTGtacXR6dytGeElNOE9JU1RBd040UVNqU3grNGwvY3RXVnArT0EybFc5andiTnZzYm0wSHN2eVA5TzAzVUhlNEd1Wk9GUnJabHk1Y3kxYm01SkpxZDNDaTVzK0lYZkl6N2x2OG5BcWQyM2c2WmZmb3JxdWtmVGM4NWx4KzNUUzdScE1ySHY2WWJaVkhNZWFkWDdVaWF6WXZvYnRqWGE4ZXphd3RlSUlJNmY4bHJFbHVTZHgxZmhZdldRZWEzWitTYitSTjNIYjJCSmtvTDU4TzB1ZlhVVjU5U0djR2IyWmR2dWQ1S1ZaVC9pZlZFODl5eFl2Wm12cEFiNXgrdituOVEza3ByZVRTK00vVHNVUmxUNnBRVmFtK25obzdVNm1YM2srY1QvT2psK0FWbHlmazVQRE9lZWNRLzY1Z3pqSDBjQ0xHOHZJeWtwangvbzFtRFB5eVV4THBWdTNGSktUdStKME9uRTR1b1RMdWV4Mk82azlNa2gxSmlLWkUwaExTeU0xcFNzSlZvMEJ4TWNaY0x1UGMrUm9NM2FIRTd2Tmd0RWNSNXhSRnJJcFR0aVRrb1F0d1N4OExjMWdER2EwV3pRNUpzMDJNd21UeVNTTVJxTXdHaVFSQkFoaE1CcUUxc1JCVWcwR2d5ckxjbnRMSUxpRUd2ZEdMNXIybkNKSmtxWjRvZFZWaGwvSExBRkprZ0t5SkFWa1dRNG15V3JybG1VcHZCMkJVSVdHdW1wd3U2ckJZRkFsdEk1TkpwTlJTS2hDQ2FqQ2FEUUtrOGtrVENhek1FaUlnQ3AwaXJOeGlJQkNhMnVyc0NRa0NwdFpGbTdYY1JFWHIvbS9Jbzc5NEhHT2o4ZHF0WEM4c1o1RGh3NVJWMWRIYlcwdEJ3OGU1S3NqYnV4Mk8wbEpTVGdjWFlKK3NxNTA2NVpDYW1vcTZjbmRlVzlMQm1VTlozRDk5VGswN3N4bFcxMCs1NXh6RGtwRkR0ZmVhYVZrTEV3YUNYZU5nWjMxZ0JXeWZERHBIazBzZE5ZVWNLV0JYWWIwWGpCOE9Eak5VRHhFZTU2bHUrUjg1WnZZS2ZkblFIcUVwMWlTc3hnMi9BcXlVMnowNm5jeHc0ZGZRYjllRVZtL3lwMXZjdCswWDdDcXdzTDRpZGRqVlZ3QVZGV1UwMnZBbGR4KzF4MWt1ZDlqMkpSNVljR0N2SDZES2NrSzhNaXlOMktBN1ExbVRMc2J0V0FvRTRabU1uM3N6VlNmaEVSUjArNVZiSEQxWXZxVWExazkrem9XYjZnRW9LYXlBbWQrQ1hmZWRRY2xLWWNZTnVJVzNDZjZUNnFMR1NNdVpsMk5uV20zMy9ITmdnZlYrei9oc1U4Q1BEbmo3RmlpeVROck5oSjM5Z0N1N0tHVkpPN2M4UjVObVVVTTZtYm13LzhEemt1THhVSjJkalozTFg2QlR5Ky9tTWNmLzRER3pKSE12dTRTM0M1OWlvaW5UWW1XMVpxSVRiaW85UGpKeU1pSTlzRVp0Um1UY1ZadkVnMUNaNlphTU1mN2FQWTBvMGp4eUhLTFVERVFGMmRHbU0zRVdWUWFXcjJTMFJ4SG5DRm9zaXFDRnE5ZnhOc1NrSVdndGFVWlJZRFJhQ1Jpd1lxUU9Sb21Xa0VpRmtXK2hORGlwcW8vQUxLTWpDb0ZBbUF3R0pHbGprMVFqV1JKK0gwK0pJTVJveHg1RDBBRUFnUWtDWXNsTHNxa05KdE5CQlNGZ0Nvd0dtUjhBVUZjbkJsSmtwRXNGcFFXRjY1V1NWZ3NjV0Z6cy9XNGhDa3VpV1NuQTFsSzRIaGxMWEpjUFBGR2ZiV0FQakFnMDJwTEpJNW9jOVNjMkFXbnMwdVVEMDNmU01WT0VpYWpnOS8rMFVtLzFHNTBQNTdLcXpWR0xCWll1aEFtem9JUkpkci9uem9VVnF5RjRpa3daaFpzSGdGanhrQlRDbXdNeXBxbFpHdUwzUXo5U3RxYW9yWGxWVmh5TXFOa1hTek9ERXBLTWxpZllzV1JYMHhKU1Z1enpaaDNCWS9QdXgwWkdCNThiOGo0R2RSVzdHVnZlUTBaaGVkUzkreGJOQUxKUUU1aE1TbStNdVJsYlUzSWdwRTNNbTNVRUtDWWdiUCt6TjVhVFNtNTA1RStpUG4zanNjQnpKcHhEZmU4dUlyYmg4MmszL0NKWkZmdlkwOVpKZVplNTJDcGZJQUtOeFIxOHA5Y3UxZXp2RGFQbXMwenNRUC9IM2l4Z0ptUU81d3VBQUFBQUVsRlRrU3VRbUNDIl0sWzEsImRldGFpbHMtY29udGFpbmVyIl0sWzEsImRldGFpbHMiXSxbImhyZWYiLCJodHRwczovL3d3dy50ZW5zb3JmbG93Lm9yZy9hcGlfZG9jcy9weXRob24vdGYvZGVidWdnaW5nL2V4cGVyaW1lbnRhbC9lbmFibGVfZHVtcF9kZWJ1Z19pbmZvIiwidGFyZ2V0IiwiYmxhbmsiLCJyZWwiLCJub3JlZmVycmVyIG5vb3BlbmVyIl0sWyJocmVmIiwiaHR0cHM6Ly93d3cudGVuc29yZmxvdy5vcmcvYXBpX2RvY3MvcHl0aG9uL3RmL2RlYnVnZ2luZyIsInRhcmdldCIsImJsYW5rIiwicmVsIiwibm9yZWZlcnJlciBub29wZW5lciJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwiZGl2IiwwKSxDZigxLCJkaXYiLDEpLFB1KDIsIkRlYnVnZ2VyIFYyIGlzIGluYWN0aXZlIGJlY2F1c2Ugbm8gZGF0YSBpcyBhdmFpbGFibGUuIiksTWYoKSxDZigzLCJkaXYiKSxQdSg0LCJUbyB1c2UgdGhlIGRlYnVnZ2VyLCIpLE1mKCksQ2YoNSwiZGl2IiksQ2YoNiwib2wiKSxDZig3LCJsaSIpLFB1KDgsIiBBZGQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHRoZSBiZWdpbm5pbmcgb2YgeW91ciBwcm9ncmFtOiAiKSxDZig5LCJkaXYiLDIpLENmKDEwLCJzcGFuIiksUHUoMTEsInRmLmRlYnVnZ2luZy5leHBlcmltZW50YWwuZW5hYmxlX2R1bXBfZGVidWdfaW5mbygiKSxNZigpLENmKDEyLCJzcGFuIiwzKSxQdSgxMywibG9nZGlyIiksTWYoKSxQdSgxNCwiLCAiKSxDZigxNSwic3BhbiIsMyksUHUoMTYsJ3RlbnNvcl9kZWJ1Z19tb2RlPSJGVUxMX0hFQUxUSCInKSxNZigpLFB1KDE3LCIsICIpLENmKDE4LCJzcGFuIiwzKSxQdSgxOSwiY2lyY3VsYXJfYnVmZmVyX3NpemU9LTEiKSxNZigpLENmKDIwLCJzcGFuIiksUHUoMjEsIikiKSxNZigpLE1mKCksTWYoKSxDZigyMiwibGkiKSxQdSgyMywiUmUtcnVuIHRoZSBwcm9ncmFtLiIpLE1mKCksTWYoKSxNZigpLENmKDI0LCJkaXYiLDQpLENmKDI1LCJkaXYiLDUpLENmKDI2LCJkaXYiLDYpLHZmKDI3LCJpbWciLDcpLE1mKCksQ2YoMjgsImRpdiIsOCksUHUoMjksIkF1dG8tYWxlcnRzIGZvciBwcm9ibGVtcyBmb3VuZCIpLE1mKCksTWYoKSxDZigzMCwiZGl2Iiw1KSxDZigzMSwiZGl2Iiw2KSx2ZigzMiwiaW1nIiw5KSxNZigpLENmKDMzLCJkaXYiLDgpLFB1KDM0LCIgSW50ZWdyYXRlZCBkZWJ1Z2dpbmcgdG8gdHJhY2UgcHJvYmxlbXMgdG8gdGhlaXIgY2F1c2VzICIpLE1mKCksTWYoKSxDZigzNSwiZGl2Iiw1KSxDZigzNiwiZGl2Iiw2KSx2ZigzNywiaW1nIiwxMCksTWYoKSxDZigzOCwiZGl2Iiw4KSxQdSgzOSwiTGluayBsb2cgdG8gY29kZSIpLE1mKCksTWYoKSxNZigpLENmKDQwLCJkaXYiLDExKSxDZig0MSwiZGl2IiwxMiksUHUoNDIsIiBUaGUgbG9nIGRpcmVjdG9yeSBtdXN0IGNvbnRhaW4gVGVuc29yRmxvdyBEZWJ1Z2dlciAoVjIpIGRhdGEuIHRmLmRlYnVnZ2luZy5leHBlcmltZW50YWwuZW5hYmxlX2R1bXBfZGVidWdfaW5mbygpIHdpbGwgY29sbGVjdCB0ZW5zb3IgZGF0YSwgZ3JhcGggc3RydWN0dXJlcywgdGhlIGFzc29jaWF0ZWQgc3RhY2sgdHJhY2VzLCBhbmQgc291cmNlIGNvZGUgdG8gdGhlIHNwZWNpZmljZWQgZGlyZWN0b3J5IGxvZ2RpciBhcyB0aGUgaW5zdHJ1bWVudGVkIFRlbnNvckZsb3cgcHJvZ3JhbSBleGVjdXRlcy4gIiksTWYoKSxDZig0MywiZGl2IiwxMiksQ2YoNDQsImRpdiIpLFB1KDQ1LCIgU2VlICIpLENmKDQ2LCJhIiwxMyksUHUoNDcsIiBkb2N1bWVudGF0aW9uICIpLE1mKCksUHUoNDgsIiBvZiB0aGUgUHl0aG9uIEFQSSBvZiBEZWJ1Z2dlciBWMi4gIiksTWYoKSxDZig0OSwiZGl2IiksUHUoNTAsIiBTZWUgIiksQ2YoNTEsImEiLDE0KSxQdSg1MiwiIGhlcmUgIiksTWYoKSxQdSg1MywiIGZvciBvdGhlciBUZW5zb3JGbG93IGRlYnVnZ2luZyBBUElzLiAiKSxNZigpLE1mKCksTWYoKSxNZigpKX0sc3R5bGVzOlsiLmFyZ1tfbmdjb250ZW50LSVDT01QJV0ge1xuICBjb2xvcjogbGlnaHRibHVlO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIG1hcmdpbjogMnB4O1xufVxuXG4uY29kZVtfbmdjb250ZW50LSVDT01QJV0ge1xuICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJywgbW9ub3NwYWNlO1xuICBtYXJnaW46IDEwcHg7XG59XG5cbi5jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LWZhbWlseTogUm9ib3RvO1xuICBmb250LXNpemU6IDE1cHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBhZGRpbmc6IDUwcHg7XG59XG5cbi5kZXRhaWxzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5kZXRhaWxzW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAxMHB4IDYwcHg7XG4gIHdpZHRoOiA1MCU7XG59XG5cbi5leGhpYml0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0ge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmV4aGliaXRbX25nY29udGVudC0lQ09NUCVdIHtcbiAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMTBweCA2MHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB3aWR0aDogMzEwcHg7XG59XG5cbi5leGhpYml0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kZXNjcmlwdGlvbltfbmdjb250ZW50LSVDT01QJV0ge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMzEwcHg7XG59XG5cbi5leGhpYml0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zY3JlZW5zaG90W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNhbnZhc1tfbmdjb250ZW50LSVDT01QJV0ge1xuICBoZWlnaHQ6IDIwMHB4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGZvbnQtc2l6ZTogMTM1JTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XG59Il19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKE9YLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6ImluYWN0aXZlLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vaW5hY3RpdmVfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vaW5hY3RpdmVfY29tcG9uZW50LmNzcyJdfV19XSxudWxsLG51bGwpO2NsYXNzIFBYe2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dH19UFguybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFBYKShnZihpUykpfSxQWC7JtWNtcD1zbyh7dHlwZTpQWCxzZWxlY3RvcnM6W1sidGYtZGVidWdnZXItdjItaW5hY3RpdmUiXV0sZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmdmYoMCwiaW5hY3RpdmUtY29tcG9uZW50Iil9LGRpcmVjdGl2ZXM6W09YXSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFBYLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6InRmLWRlYnVnZ2VyLXYyLWluYWN0aXZlIix0ZW1wbGF0ZToiIDxpbmFjdGl2ZS1jb21wb25lbnQ+PC9pbmFjdGl2ZS1jb21wb25lbnQ+ICJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSksbnVsbCk7Y29uc3Qgd1g9X2soIltEZWJ1Z2dlcl0gRGVidWdnZXIgTG9hZGVkIiksa1g9X2soIltEZWJ1Z2dlcl0gRGVidWdnZXIgVW5sb2FkZWQiKSxTWD1faygiW0RlYnVnZ2VyXSBBIE5ldyBEZWJ1Z2dlciBEYXRhIFBvbGxpbmcgRXZlbnQgQmVnaW5zIiksRFg9X2soIltEZWJ1Z2dlcl0gRGVidWdnZXIgUnVucyBSZXF1ZXN0ZWQiKSxSWD1faygiW0RlYnVnZ2VyXSBEZWJ1Z2dlciBSdW5zIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLEVYPV9rKCJbRGVidWdnZXJdIERlYnVnZ2VyIFJ1bnMgUmVxdWVzdCBGYWlsZWQiKSxBWD1faygiW0RlYnVnZ2VyXSBOdW1iZXIgYW5kIEJyZWFrZG93biBvZiBBbGVydHMgUmVxdWVzdGVkIiksVFg9X2soIltEZWJ1Z2dlcl0gTnVtYmVyIGFuZCBCcmVha2Rvd24gb2YgQWxlcnRzIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLE5YPV9rKCJbRGVidWdnZXJdIEFsZXJ0cyBEYXRhIG9mIGFuIEFsZXJ0VHlwZSBJcyBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSx6WD1faygiW0RlYnVnZ2VyXSBBbGVydCBUeXBlIEZvY3VzIFRvZ2dsZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxJWD1faygiW0RlYnVnZ2VyXSBOdW1iZXIgb2YgVG9wLUxldmVsIEV4ZWN1dGlvbnMgUmVxdWVzdGVkIiksSFg9X2soIltEZWJ1Z2dlcl0gTnVtYmVyIG9mIFRvcC1MZXZlbCBFeGVjdXRpb25zIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLEZYPV9rKCJbRGVidWdnZXJdIEV4ZWN1dGlvbkRpZ2VzdHMgUmVxdWVzdGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksTFg9X2soIltEZWJ1Z2dlcl0gRXhlY3V0aW9uRGlnZXN0cyBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxCWD1faygiW0RlYnVnZ2VyXSBTY3JvbGwgTGVmdHdhcmQgb24gdGhlIEV4ZWN1dGlvbiBUaW1lbGluZSIpLFZYPV9rKCJbRGVidWdnZXJdIFNjcm9sbCBSaWdodHdhcmQgb24gdGhlIEV4ZWN1dGlvbiBUaW1lbGluZSIpLGpYPV9rKCJbRGVidWdnZXJdIFNjcm9sbCB0aGUgRXhlY3V0aW9uIFRpbWVsaW5lIHRvIEdpdmVuIEluZGV4Iix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksVVg9X2soIltEZWJ1Z2dlcl0gRXhlY3V0aW9uIERhdGEgT2JqZWN0cyBCZWluZyBGb2N1c2VkIE9uIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksV1g9X2soIltEZWJ1Z2dlcl0gRXhlY3V0aW9uIERhdGEgT2JqZWN0cyBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxHWD1faygiW0RlYnVnZ2VyXSBOdW1iZXIgb2YgSW50cmEtR3JhcGggRXhlY3V0aW9ucyBSZXF1ZXN0ZWQiKSxZWD1faygiW0RlYnVnZ2VyXSBOdW1iZXIgb2YgSW50cmEtR3JhcGggRXhlY3V0aW9ucyBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxxWD1faygiW0RlYnVnZ2VyXSBJbnRyYS1HcmFwaCBFeGVjdXRpb24gRGF0YSBSZXF1ZXN0ZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxaWD1faygiW0RlYnVnZ2VyXSBJbnRyYS1HcmFwaCBFeGVjdXRpb24gRGF0YSBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxYWD1faygiW0RlYnVnZ2VyXSBTY3JvbGwgSW50cmEtR3JhcGggRXhlY3V0aW9uIExpc3QgdG8gR2l2ZW4gSW5kZXgiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxLWD1faygiW0RlYnVnZ2VyXSBHcmFwaCBFeGVjdXRpb24gaXMgRm9jdXNlZCBPbiIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLEpYPV9rKCJbRGVidWdnZXJdIEdyYXBoIE9wIElzIEZvY3VzZWQgT24iLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxRWD1faygiW0RlYnVnZ2VyXSBHcmFwaCBPcCBJbmZvIFJlcXVlc3RlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLCRYPV9rKCJbRGVidWdnZXJdIEdyYXBoIE9wIEluZm8gTG9hZGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksdEs9X2soIltEZWJ1Z2dlcl0gU291cmNlIEZpbGUgTGlzdCBSZXF1ZXN0ZWQuIiksZUs9X2soIltEZWJ1Z2dlcl0gU291cmNlIEZpbGUgTGlzdCBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxuSz1faygiW0RlYnVnZ2VyXSBTb3VyY2UgRmlsZSBMaW5lIElzIEZvY3VzZWQgb24iLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxvSz1faygiW0RlYnVnZ2VyXSBTb3VyY2UgRmlsZSBSZXF1ZXN0ZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxpSz1faygiW0RlYnVnZ2VyXSBTb3VyY2UgRmlsZSBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxhSz1faygiW0RlYnVnZ2VyXSBBIFNldCBvZiBTdGFjayBGcmFtZXMgSGF2ZSBCZWVuIExvYWRlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLHJLPSJkZWJ1Z2dlciI7dmFyIHNLLGxLLGNLO2Z1bmN0aW9uIGRLKHQpe2lmKG51bGw9PT10LmNvZGVMb2NhdGlvbkZvY3VzVHlwZSlyZXR1cm4gbnVsbDtsZXQgZT1bXTtpZih0LmNvZGVMb2NhdGlvbkZvY3VzVHlwZT09PWNLLkVYRUNVVElPTil7Y29uc3R7Zm9jdXNJbmRleDpuLGV4ZWN1dGlvbkRhdGE6b309dC5leGVjdXRpb25zO2lmKG51bGw9PT1ufHx2b2lkIDA9PT1vW25dKXJldHVybiBudWxsO2U9b1tuXS5zdGFja19mcmFtZV9pZHN9ZWxzZXtpZihudWxsPT09dC5ncmFwaHMuZm9jdXNlZE9wKXJldHVybiBudWxsO2NvbnN0e2dyYXBoSWQ6bixvcE5hbWU6b309dC5ncmFwaHMuZm9jdXNlZE9wO2lmKHZvaWQgMD09PXQuZ3JhcGhzLm9wc1tuXXx8IXQuZ3JhcGhzLm9wc1tuXS5oYXMobykpcmV0dXJuIG51bGw7ZT10LmdyYXBocy5vcHNbbl0uZ2V0KG8pLnN0YWNrX2ZyYW1lX2lkc31jb25zdCBuPVtdO2Zvcihjb25zdCBvIG9mIGUpe2lmKG51bGw9PXQuc3RhY2tGcmFtZXNbb10pcmV0dXJuIG51bGw7bi5wdXNoKHQuc3RhY2tGcmFtZXNbb10pfXJldHVybiBufWZ1bmN0aW9uIHBLKHQsZSl7cmV0dXJuIHQuZmluZEluZGV4KCh0PT50Lmhvc3RfbmFtZT09PWUuaG9zdF9uYW1lJiZ0LmZpbGVfcGF0aD09PWUuZmlsZV9wYXRoKSl9ZnVuY3Rpb24gbUsodCxlLG4pe2lmKGU+PW4pdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBiZWdpbiB0byBiZSBsZXNzIHRoYW4gZW5kLCBidXQgZ290IGJlZ2luPSR7ZX0sIGVuZD0ke259YCk7cmV0dXJuIHQuZmluZEluZGV4KCh0PT50LmJlZ2luPT09ZSYmdC5lbmQ9PT1uKSl9ZnVuY3Rpb24gZksodCl7Y29uc3QgZT10LnNvdXJjZUNvZGUuZm9jdXNMaW5lU3BlYztpZighdC5zdGlja1RvQm90dG9tbW9zdEZyYW1lSW5Gb2N1c2VkRmlsZSlyZXR1cm4gZTtjb25zdCBuPWRLKHQpO2lmKG51bGw9PT1uKXJldHVybiBlO2NvbnN0IG89KGZ1bmN0aW9uIGkodCxlKXtpZihudWxsPT09ZSlyZXR1cm4gbnVsbDtmb3IobGV0IG49dC5sZW5ndGgtMTtuPj0wOy0tbil7Y29uc3Qgbz10W25dLHtob3N0X25hbWU6aSxmaWxlX3BhdGg6YX09bztpZihpPT09ZS5ob3N0X25hbWUmJmE9PT1lLmZpbGVfcGF0aClyZXR1cm4gb31yZXR1cm4gbnVsbH0pKG4sZSk7cmV0dXJuIG51bGw9PT1vP2U6b30hKGZ1bmN0aW9uKHQpe3RbdC5VTlNQRUNJRklFRD0wXT0iVU5TUEVDSUZJRUQiLHRbdC5OT19URU5TT1I9MV09Ik5PX1RFTlNPUiIsdFt0LkNVUlRfSEVBTFRIPTJdPSJDVVJUX0hFQUxUSCIsdFt0LkNPTkNJU0VfSEVBTFRIPTNdPSJDT05DSVNFX0hFQUxUSCIsdFt0LkZVTExfSEVBTFRIPTRdPSJGVUxMX0hFQUxUSCIsdFt0LlNIQVBFPTVdPSJTSEFQRSIsdFt0LkZVTExfTlVNRVJJQ1M9Nl09IkZVTExfTlVNRVJJQ1MiLHRbdC5GVUxMX1RFTlNPUj03XT0iRlVMTF9URU5TT1IiLHRbdC5SRURVQ0VfSU5GX05BTl9USFJFRV9TTE9UUz04XT0iUkVEVUNFX0lORl9OQU5fVEhSRUVfU0xPVFMifSkoc0t8fChzSz17fSkpLChmdW5jdGlvbih0KXt0LkZVTkNUSU9OX1JFQ09NUElMRV9BTEVSVD0iRnVuY3Rpb25SZWNvbXBpbGVzQWxlcnQiLHQuSU5GX05BTl9BTEVSVD0iSW5mTmFuQWxlcnQiLHQuVEVOU09SX1NIQVBFX0FMRVJUPSJUZW5zb3JTaGFwZUFsZXJ0In0pKGxLfHwobEs9e30pKSwoZnVuY3Rpb24odCl7dFt0LkVYRUNVVElPTj0wXT0iRVhFQ1VUSU9OIix0W3QuR1JBUEhfT1BfQ1JFQVRJT049MV09IkdSQVBIX09QX0NSRUFUSU9OIn0pKGNLfHwoY0s9e30pKTtjb25zdCB1Sz1WUyh7cnVuczp7fSxydW5zTG9hZGVkOntzdGF0ZTpVRS5OT1RfTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpudWxsfSxhY3RpdmVSdW5JZDpudWxsLGxhc3REYXRhUG9sbE9uc2V0VGltZU1zOi0xLGxhc3ROb25FbXB0eVBvbGxEYXRhVGltZU1zOjEsYWxlcnRzOnthbGVydHNMb2FkZWQ6e3N0YXRlOlVFLk5PVF9MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOm51bGx9LG51bUFsZXJ0czowLGFsZXJ0c0JyZWFrZG93bjp7fSxhbGVydHM6e30sZXhlY3V0aW9uSW5kaWNlczp7fSxncmFwaEV4ZWN1dGlvbkluZGljZXM6e30sZm9jdXNUeXBlOm51bGx9LGV4ZWN1dGlvbnM6KGZ1bmN0aW9uIGdLKCl7cmV0dXJue251bUV4ZWN1dGlvbnNMb2FkZWQ6e3N0YXRlOlVFLk5PVF9MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOm51bGx9LGV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQ6e2xvYWRpbmdSYW5nZXM6W10sbnVtRXhlY3V0aW9uczowLHBhZ2VMb2FkZWRTaXplczp7fX0sZGlzcGxheUNvdW50OjUwLHBhZ2VTaXplOjEwMCxzY3JvbGxCZWdpbkluZGV4OjAsZm9jdXNJbmRleDpudWxsLGV4ZWN1dGlvbkRpZ2VzdHM6e30sZXhlY3V0aW9uRGF0YTp7fX19KSgpLGdyYXBoRXhlY3V0aW9uczooZnVuY3Rpb24gaEsoKXtyZXR1cm57bnVtRXhlY3V0aW9uc0xvYWRlZDp7c3RhdGU6VUUuTk9UX0xPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6bnVsbH0sZXhlY3V0aW9uRGlnZXN0c0xvYWRlZDp7bG9hZGluZ1JhbmdlczpbXSxudW1FeGVjdXRpb25zOjAscGFnZUxvYWRlZFNpemVzOnt9fSxkaXNwbGF5Q291bnQ6MTAwLHBhZ2VTaXplOjIwMCxzY3JvbGxCZWdpbkluZGV4OjAsZm9jdXNJbmRleDpudWxsLGdyYXBoRXhlY3V0aW9uRGlnZXN0czp7fSxncmFwaEV4ZWN1dGlvbkRhdGFMb2FkaW5nUGFnZXM6W10sZ3JhcGhFeGVjdXRpb25EYXRhUGFnZUxvYWRlZFNpemVzOnt9LGdyYXBoRXhlY3V0aW9uRGF0YTp7fX19KSgpLGdyYXBoczp7b3BzOnt9LGxvYWRpbmdPcHM6e30sZm9jdXNlZE9wOm51bGx9LHN0YWNrRnJhbWVzOnt9LGNvZGVMb2NhdGlvbkZvY3VzVHlwZTpudWxsLHN0aWNrVG9Cb3R0b21tb3N0RnJhbWVJbkZvY3VzZWRGaWxlOiExLHNvdXJjZUNvZGU6e3NvdXJjZUZpbGVMaXN0TG9hZGVkOntzdGF0ZTpVRS5OT1RfTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpudWxsfSxzb3VyY2VGaWxlTGlzdDpbXSxmaWxlQ29udGVudHM6W10sZm9jdXNMaW5lU3BlYzpudWxsfX0sQlMoRFgsKHQ9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7cnVuc0xvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5ydW5zTG9hZGVkKSx7c3RhdGU6VUUuTE9BRElOR30pfSkpKSxCUyhFWCwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtydW5zTG9hZGVkOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnJ1bnNMb2FkZWQpLHtzdGF0ZTpVRS5GQUlMRUR9KX0pKSksQlMoUlgsKCh0LHtydW5zOmV9KT0+e2NvbnN0IG49T2JqZWN0LmtleXMoZSksbz1uLmxlbmd0aD4wJiZudWxsPT09dC5hY3RpdmVSdW5JZDtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtsYXN0Tm9uRW1wdHlQb2xsRGF0YVRpbWVNczpvP0RhdGUubm93KCk6dC5sYXN0Tm9uRW1wdHlQb2xsRGF0YVRpbWVNcyxydW5zOmUscnVuc0xvYWRlZDp7c3RhdGU6VUUuTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpEYXRlLm5vdygpfSxhY3RpdmVSdW5JZDpuLmxlbmd0aD4wP25bMF06bnVsbH0pfSkpLEJTKFNYLCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2xhc3REYXRhUG9sbE9uc2V0VGltZU1zOkRhdGUubm93KCl9KSkpLEJTKEFYLCh0PT5udWxsPT09dC5hY3RpdmVSdW5JZD90Ok9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7YWxlcnRzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmFsZXJ0cykse2FsZXJ0c0xvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5hbGVydHMuYWxlcnRzTG9hZGVkKSx7c3RhdGU6VUUuTE9BRElOR30pfSl9KSkpLEJTKFRYLCgodCx7bnVtQWxlcnRzOmUsYWxlcnRzQnJlYWtkb3duOm59KT0+e2lmKG51bGw9PT10LmFjdGl2ZVJ1bklkKXJldHVybiB0O2NvbnN0IG89ZT50LmFsZXJ0cy5udW1BbGVydHM7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7bGFzdE5vbkVtcHR5UG9sbERhdGFUaW1lTXM6bz9EYXRlLm5vdygpOnQubGFzdE5vbkVtcHR5UG9sbERhdGFUaW1lTXMsYWxlcnRzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmFsZXJ0cykse2FsZXJ0c0xvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5hbGVydHMuYWxlcnRzTG9hZGVkKSx7c3RhdGU6VUUuTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpEYXRlLm5vdygpfSksbnVtQWxlcnRzOmUsYWxlcnRzQnJlYWtkb3duOm59KX0pfSkpLEJTKE5YLCgodCx7bnVtQWxlcnRzOmUsYWxlcnRzQnJlYWtkb3duOm4sYWxlcnRUeXBlOm8sYmVnaW46aSxhbGVydHM6YX0pPT57aWYobnVsbD09PXQuYWN0aXZlUnVuSWQpcmV0dXJuIHQ7Y29uc3Qgcj17fSxzPXQuYWxlcnRzLmV4ZWN1dGlvbkluZGljZXNbb10/dC5hbGVydHMuZXhlY3V0aW9uSW5kaWNlc1tvXS5zbGljZSgpOltdLGw9dC5hbGVydHMuZ3JhcGhFeGVjdXRpb25JbmRpY2VzW29dP3QuYWxlcnRzLmdyYXBoRXhlY3V0aW9uSW5kaWNlc1tvXS5zbGljZSgpOltdO2ZvcihsZXQgdD0wO3Q8YS5sZW5ndGg7Kyt0KXtjb25zdCBlPWkrdCxuPWFbdF07aWYocltlXT1uLG4uYWxlcnRfdHlwZT09PWxLLklORl9OQU5fQUxFUlQpe2NvbnN0IHQ9bjtzW2VdPXQuZXhlY3V0aW9uX2luZGV4LG51bGwhPT10LmdyYXBoX2V4ZWN1dGlvbl90cmFjZV9pbmRleCYmKGxbZV09dC5ncmFwaF9leGVjdXRpb25fdHJhY2VfaW5kZXgpfX12b2lkIDAhPT10LmFsZXJ0cy5hbGVydHNbb10mJk9iamVjdC5hc3NpZ24ocix0LmFsZXJ0cy5hbGVydHNbb10pO2xldCBjPXQuZXhlY3V0aW9ucy5zY3JvbGxCZWdpbkluZGV4LGQ9dC5ncmFwaEV4ZWN1dGlvbnMuZm9jdXNJbmRleDtpZihvPT09bEsuSU5GX05BTl9BTEVSVCYmMD09PWkpe2NvbnN0IGU9YVswXTtjPU1hdGgubWF4KDAsZS5leGVjdXRpb25faW5kZXgtTWF0aC5mbG9vcih0LmV4ZWN1dGlvbnMuZGlzcGxheUNvdW50LzIpKSxudWxsIT09ZS5ncmFwaF9leGVjdXRpb25fdHJhY2VfaW5kZXgmJihkPWUuZ3JhcGhfZXhlY3V0aW9uX3RyYWNlX2luZGV4KX1yZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtleGVjdXRpb25zOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmV4ZWN1dGlvbnMpLHtzY3JvbGxCZWdpbkluZGV4OmN9KSxncmFwaEV4ZWN1dGlvbnM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZ3JhcGhFeGVjdXRpb25zKSx7Zm9jdXNJbmRleDpkfSksYWxlcnRzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmFsZXJ0cykse2FsZXJ0c0xvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5hbGVydHMuYWxlcnRzTG9hZGVkKSx7c3RhdGU6VUUuTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpEYXRlLm5vdygpfSksbnVtQWxlcnRzOmUsYWxlcnRzQnJlYWtkb3duOm4sYWxlcnRzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmFsZXJ0cy5hbGVydHMpLHtbb106cn0pLGV4ZWN1dGlvbkluZGljZXM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuYWxlcnRzLmV4ZWN1dGlvbkluZGljZXMpLHtbb106c30pLGdyYXBoRXhlY3V0aW9uSW5kaWNlczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5hbGVydHMuZ3JhcGhFeGVjdXRpb25JbmRpY2VzKSx7W29dOmx9KX0pfSl9KSksQlMoelgsKCh0LHthbGVydFR5cGU6ZX0pPT57Y29uc3Qgbj1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2FsZXJ0czpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5hbGVydHMpLHtmb2N1c1R5cGU6dC5hbGVydHMuZm9jdXNUeXBlPT09ZT9udWxsOmV9KX0pLG89bi5hbGVydHMuZm9jdXNUeXBlO2lmKG51bGwhPT1vKXtjb25zdCB0PW4uYWxlcnRzLmV4ZWN1dGlvbkluZGljZXNbb118fFtdO3ZvaWQgMCE9PXRbMF0mJihuLmV4ZWN1dGlvbnM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4uZXhlY3V0aW9ucykse3Njcm9sbEJlZ2luSW5kZXg6TWF0aC5tYXgoMCxOdW1iZXIodFswXSktTWF0aC5mbG9vcihuLmV4ZWN1dGlvbnMuZGlzcGxheUNvdW50LzIpKX0pKX1yZXR1cm4gbn0pKSxCUyhJWCwodD0+bnVsbD09PXQuYWN0aXZlUnVuSWQ/dDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2V4ZWN1dGlvbnM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZXhlY3V0aW9ucykse251bUV4ZWN1dGlvbnNMb2FkZWQ6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZXhlY3V0aW9ucy5udW1FeGVjdXRpb25zTG9hZGVkKSx7c3RhdGU6VUUuTE9BRElOR30pfSl9KSkpLEJTKEhYLCgodCx7bnVtRXhlY3V0aW9uczplfSk9PntpZihudWxsPT09dC5hY3RpdmVSdW5JZClyZXR1cm4gdDtjb25zdCBuPWU+dC5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQubnVtRXhlY3V0aW9ucyxvPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7bGFzdE5vbkVtcHR5UG9sbERhdGFUaW1lTXM6bj9EYXRlLm5vdygpOnQubGFzdE5vbkVtcHR5UG9sbERhdGFUaW1lTXMsZXhlY3V0aW9uczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5leGVjdXRpb25zKSx7bnVtRXhlY3V0aW9uc0xvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5leGVjdXRpb25zLm51bUV4ZWN1dGlvbnNMb2FkZWQpLHtzdGF0ZTpVRS5MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOkRhdGUubm93KCl9KSxleGVjdXRpb25EaWdlc3RzTG9hZGVkOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmV4ZWN1dGlvbnMuZXhlY3V0aW9uRGlnZXN0c0xvYWRlZCkse251bUV4ZWN1dGlvbnM6ZX0pfSl9KTtyZXR1cm4gZT4wJiZudWxsPT09dC5leGVjdXRpb25zLmZvY3VzSW5kZXgmJihvLmV4ZWN1dGlvbnMuZm9jdXNJbmRleD0wKSxvfSkpLEJTKEZYLCgodCxlKT0+e2lmKG51bGw9PT10LmFjdGl2ZVJ1bklkKXJldHVybiB0O2NvbnN0IG49Wy4uLnQuZXhlY3V0aW9ucy5leGVjdXRpb25EaWdlc3RzTG9hZGVkLmxvYWRpbmdSYW5nZXNdOy0xPT09bUsobixlLmJlZ2luLGUuZW5kKSYmbi5wdXNoKHtiZWdpbjplLmJlZ2luLGVuZDplLmVuZH0pO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2V4ZWN1dGlvbnM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZXhlY3V0aW9ucykse2V4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQ6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZXhlY3V0aW9ucy5leGVjdXRpb25EaWdlc3RzTG9hZGVkKSx7bG9hZGluZ1JhbmdlczpufSl9KX0pfSkpLEJTKExYLCgodCxlKT0+e2lmKG51bGw9PT10LmFjdGl2ZVJ1bklkKXJldHVybiB0O2NvbnN0IG49Wy4uLnQuZXhlY3V0aW9ucy5leGVjdXRpb25EaWdlc3RzTG9hZGVkLmxvYWRpbmdSYW5nZXNdLG89bUsobixlLmJlZ2luLGUuZW5kKTstMSE9PW8mJm4uc3BsaWNlKG8sMSk7Y29uc3QgaT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2V4ZWN1dGlvbnM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZXhlY3V0aW9ucykse2V4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQ6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZXhlY3V0aW9ucy5leGVjdXRpb25EaWdlc3RzTG9hZGVkKSx7bnVtRXhlY3V0aW9uczplLm51bV9kaWdlc3RzLGxvYWRpbmdSYW5nZXM6bn0pLGV4ZWN1dGlvbkRpZ2VzdHM6T2JqZWN0LmFzc2lnbih7fSx0LmV4ZWN1dGlvbnMuZXhlY3V0aW9uRGlnZXN0cyl9KX0pO2ZvcihsZXQgdD1lLmJlZ2luO3Q8ZS5lbmQ7Kyt0KWkuZXhlY3V0aW9ucy5leGVjdXRpb25EaWdlc3RzW3RdPWUuZXhlY3V0aW9uX2RpZ2VzdHNbdC1lLmJlZ2luXTtpZihlLmVuZD5lLmJlZ2luKXtjb25zdCBuPWUuYmVnaW4vdC5leGVjdXRpb25zLnBhZ2VTaXplO2kuZXhlY3V0aW9ucy5leGVjdXRpb25EaWdlc3RzTG9hZGVkLnBhZ2VMb2FkZWRTaXplcz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saS5leGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQucGFnZUxvYWRlZFNpemVzKSx7W25dOmUuZW5kLWUuYmVnaW59KX1yZXR1cm4gaX0pKSxCUyhCWCwodD0+e2lmKG51bGw9PT10LmFjdGl2ZVJ1bklkKXJldHVybiB0O2xldCBlPXQuZXhlY3V0aW9ucy5zY3JvbGxCZWdpbkluZGV4O3JldHVybiBlPjAmJmUtLSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2V4ZWN1dGlvbnM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZXhlY3V0aW9ucykse3Njcm9sbEJlZ2luSW5kZXg6ZX0pfSl9KSksQlMoVlgsKHQ9PntpZihudWxsPT09dC5hY3RpdmVSdW5JZClyZXR1cm4gdDtsZXQgZT10LmV4ZWN1dGlvbnMuc2Nyb2xsQmVnaW5JbmRleDtyZXR1cm4gZSt0LmV4ZWN1dGlvbnMuZGlzcGxheUNvdW50KzE8PXQuZXhlY3V0aW9ucy5leGVjdXRpb25EaWdlc3RzTG9hZGVkLm51bUV4ZWN1dGlvbnMmJmUrKyxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2V4ZWN1dGlvbnM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZXhlY3V0aW9ucykse3Njcm9sbEJlZ2luSW5kZXg6ZX0pfSl9KSksQlMoalgsKCh0LGUpPT57aWYoZS5pbmRleDwwfHwhTnVtYmVyLmlzSW50ZWdlcihlLmluZGV4KSl0aHJvdyBuZXcgRXJyb3IoYEF0dGVtcHQgdG8gc2Nyb2xsIHRvIG5lZ2F0aXZlIG9yIG5vbi1pbnRlZ2VyIGV4ZWN1dGlvbiBpbmRleCAoJHtlLmluZGV4fSlgKTtjb25zdHtkaXNwbGF5Q291bnQ6bn09dC5leGVjdXRpb25zLHtudW1FeGVjdXRpb25zOm99PXQuZXhlY3V0aW9ucy5leGVjdXRpb25EaWdlc3RzTG9hZGVkO2lmKGUuaW5kZXg+TWF0aC5tYXgoMCxvLW4pKXRocm93IG5ldyBFcnJvcihgQXR0ZW1wdCB0byBzY3JvbGwgdG8gZXhlY3V0aW9uIGluZGV4ICgke2UuaW5kZXh9KSwgd2hpY2ggZXhjZWVkcyBtYXhpbXVtIGFsbG93ZWQgaW5kZXggKG51bUV4ZWN1dGlvbnM9JHtvfTsgZGlzcGxheUNvdW50PSR7bn0pYCk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7ZXhlY3V0aW9uczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5leGVjdXRpb25zKSx7c2Nyb2xsQmVnaW5JbmRleDplLmluZGV4fSl9KX0pKSxCUyhVWCwoKHQsZSk9Pntjb25zdCBuPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7ZXhlY3V0aW9uczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5leGVjdXRpb25zKSx7Zm9jdXNJbmRleDp0LmV4ZWN1dGlvbnMuc2Nyb2xsQmVnaW5JbmRleCtlLmRpc3BsYXlJbmRleH0pLGNvZGVMb2NhdGlvbkZvY3VzVHlwZTpjSy5FWEVDVVRJT04sc291cmNlQ29kZTpPYmplY3QuYXNzaWduKHt9LHQuc291cmNlQ29kZSl9KTtyZXR1cm4gbi5zb3VyY2VDb2RlLmZvY3VzTGluZVNwZWM9Zksobiksbn0pKSxCUyhXWCwoKHQsZSk9PntpZihudWxsPT09dC5hY3RpdmVSdW5JZClyZXR1cm4gdDtjb25zdCBuPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7ZXhlY3V0aW9uczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5leGVjdXRpb25zKSx7ZXhlY3V0aW9uRGF0YTpPYmplY3QuYXNzaWduKHt9LHQuZXhlY3V0aW9ucy5leGVjdXRpb25EYXRhKX0pfSk7Zm9yKGxldCB0PWUuYmVnaW47dDxlLmVuZDsrK3Qpbi5leGVjdXRpb25zLmV4ZWN1dGlvbkRhdGFbdF09ZS5leGVjdXRpb25zW3QtZS5iZWdpbl07cmV0dXJuIG59KSksQlMoR1gsKHQ9Pm51bGw9PT10LmFjdGl2ZVJ1bklkP3Q6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtncmFwaEV4ZWN1dGlvbnM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZ3JhcGhFeGVjdXRpb25zKSx7bnVtRXhlY3V0aW9uc0xvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5ncmFwaEV4ZWN1dGlvbnMubnVtRXhlY3V0aW9uc0xvYWRlZCkse3N0YXRlOlVFLkxPQURJTkd9KX0pfSkpKSxCUyhZWCwoKHQse251bUdyYXBoRXhlY3V0aW9uczplfSk9PntpZihudWxsPT09dC5hY3RpdmVSdW5JZClyZXR1cm4gdDtjb25zdCBuPWU+dC5ncmFwaEV4ZWN1dGlvbnMuZXhlY3V0aW9uRGlnZXN0c0xvYWRlZC5udW1FeGVjdXRpb25zLG89T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtsYXN0Tm9uRW1wdHlQb2xsRGF0YVRpbWVNczpuP0RhdGUubm93KCk6dC5sYXN0Tm9uRW1wdHlQb2xsRGF0YVRpbWVNcyxncmFwaEV4ZWN1dGlvbnM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZ3JhcGhFeGVjdXRpb25zKSx7bnVtRXhlY3V0aW9uc0xvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5ncmFwaEV4ZWN1dGlvbnMubnVtRXhlY3V0aW9uc0xvYWRlZCkse3N0YXRlOlVFLkxPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6RGF0ZS5ub3coKX0pLGV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQ6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZ3JhcGhFeGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQpLHtudW1FeGVjdXRpb25zOmV9KX0pfSk7cmV0dXJuIGU+MCYmbnVsbD09PXQuZ3JhcGhFeGVjdXRpb25zLmZvY3VzSW5kZXgmJihvLmdyYXBoRXhlY3V0aW9ucy5mb2N1c0luZGV4PTApLG99KSksQlMocVgsKCh0LHtwYWdlSW5kZXg6ZX0pPT57aWYobnVsbD09PXQuYWN0aXZlUnVuSWQpcmV0dXJuIHQ7Y29uc3Qgbj10LmdyYXBoRXhlY3V0aW9ucy5ncmFwaEV4ZWN1dGlvbkRhdGFMb2FkaW5nUGFnZXMuc2xpY2UoKTtyZXR1cm4tMT09PW4uaW5kZXhPZihlKSYmbi5wdXNoKGUpLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7Z3JhcGhFeGVjdXRpb25zOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmdyYXBoRXhlY3V0aW9ucykse2dyYXBoRXhlY3V0aW9uRGF0YUxvYWRpbmdQYWdlczpufSl9KX0pKSxCUyhaWCwoKHQsZSk9PntpZihudWxsPT09dC5hY3RpdmVSdW5JZClyZXR1cm4gdDtjb25zdHtwYWdlU2l6ZTpufT10LmdyYXBoRXhlY3V0aW9ucyxvPXQuZ3JhcGhFeGVjdXRpb25zLmdyYXBoRXhlY3V0aW9uRGF0YUxvYWRpbmdQYWdlcy5zbGljZSgpLGk9T2JqZWN0LmFzc2lnbih7fSx0LmdyYXBoRXhlY3V0aW9ucy5ncmFwaEV4ZWN1dGlvbkRhdGFQYWdlTG9hZGVkU2l6ZXMpLGE9T2JqZWN0LmFzc2lnbih7fSx0LmdyYXBoRXhlY3V0aW9ucy5ncmFwaEV4ZWN1dGlvbkRhdGEpO2ZvcihsZXQgdD1lLmJlZ2luO3Q8ZS5lbmQ7Kyt0KXtjb25zdCByPU1hdGguZmxvb3IodC9uKTstMSE9PW8uaW5kZXhPZihyKSYmby5zcGxpY2Uoby5pbmRleE9mKHIpLDEpLHZvaWQgMD09PWlbcl0mJihpW3JdPTApLHZvaWQgMD09PWFbdF0mJmlbcl0rKyxhW3RdPWUuZ3JhcGhfZXhlY3V0aW9uc1t0LWUuYmVnaW5dfXJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2dyYXBoRXhlY3V0aW9uczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5ncmFwaEV4ZWN1dGlvbnMpLHtncmFwaEV4ZWN1dGlvbkRhdGFMb2FkaW5nUGFnZXM6byxncmFwaEV4ZWN1dGlvbkRhdGFQYWdlTG9hZGVkU2l6ZXM6aSxncmFwaEV4ZWN1dGlvbkRhdGE6YX0pfSl9KSksQlMoWFgsKCh0LGUpPT57aWYoZS5pbmRleDwwfHwhTnVtYmVyLmlzSW50ZWdlcihlLmluZGV4KSl0aHJvdyBuZXcgRXJyb3IoYEF0dGVtcHQgdG8gc2Nyb2xsIHRvIG5lZ2F0aXZlIG9yIG5vbi1pbnRlZ2VyIGdyYXBoLWV4ZWN1dGlvbiBpbmRleCAoJHtlLmluZGV4fSlgKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtncmFwaEV4ZWN1dGlvbnM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZ3JhcGhFeGVjdXRpb25zKSx7c2Nyb2xsQmVnaW5JbmRleDplLmluZGV4fSl9KX0pKSxCUyhLWCwoKHQsZSk9PmJLKHQsZS5ncmFwaF9pZCxlLm9wX25hbWUsZS5pbmRleCkpKSxCUyhKWCwoKHQsZSk9PmJLKHQsZS5ncmFwaF9pZCxlLm9wX25hbWUpKSksQlMoUVgsKCh0LGUpPT57Y29uc3R7Z3JhcGhfaWQ6bixvcF9uYW1lOm99PWUsaT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2dyYXBoczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5ncmFwaHMpLHtsb2FkaW5nT3BzOk9iamVjdC5hc3NpZ24oe30sdC5ncmFwaHMubG9hZGluZ09wcyl9KX0pO3JldHVybiB2b2lkIDA9PT1pLmdyYXBocy5sb2FkaW5nT3BzW25dJiYoaS5ncmFwaHMubG9hZGluZ09wc1tuXT1uZXcgTWFwKSxpLmdyYXBocy5sb2FkaW5nT3BzW25dLmhhcyhvKXx8aS5ncmFwaHMubG9hZGluZ09wc1tuXS5zZXQobyxVRS5MT0FESU5HKSxpfSkpLEJTKCRYLCgodCxlKT0+e2NvbnN0e2dyYXBoT3BJbmZvUmVzcG9uc2U6bn09ZSx7Z3JhcGhfaWRzOm99PW4saT1vW28ubGVuZ3RoLTFdLGE9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtncmFwaHM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZ3JhcGhzKSx7b3BzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmdyYXBocy5vcHMpLHtbaV06bmV3IE1hcCh0LmdyYXBocy5vcHNbaV0pfSksbG9hZGluZ09wczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5ncmFwaHMubG9hZGluZ09wcykse1tpXTpuZXcgTWFwKHQuZ3JhcGhzLmxvYWRpbmdPcHNbaV0pfSl9KX0pO2Zvcihjb25zdCB0IG9mIG4uaW5wdXRzKXQuZGF0YSYmYS5ncmFwaHMub3BzW2ldLnNldCh0Lm9wX25hbWUsdC5kYXRhKTtmb3IobGV0IHQ9MDt0PG4uY29uc3VtZXJzLmxlbmd0aDsrK3QpZm9yKGNvbnN0IGUgb2Ygbi5jb25zdW1lcnNbdF0pZS5kYXRhJiZhLmdyYXBocy5vcHNbaV0uc2V0KGUub3BfbmFtZSxlLmRhdGEpO3JldHVybiBhLmdyYXBocy5vcHNbaV0uc2V0KG4ub3BfbmFtZSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbikse2lucHV0czpuLmlucHV0cy5tYXAoKHQ9Pih7b3BfbmFtZTp0Lm9wX25hbWUsb3V0cHV0X3Nsb3Q6dC5vdXRwdXRfc2xvdH0pKSksY29uc3VtZXJzOm4uY29uc3VtZXJzLm1hcCgodD0+dC5tYXAoKHQ9Pih7b3BfbmFtZTp0Lm9wX25hbWUsaW5wdXRfc2xvdDp0LmlucHV0X3Nsb3R9KSkpKSl9KSksYS5ncmFwaHMubG9hZGluZ09wc1tpXS5zZXQobi5vcF9uYW1lLFVFLkxPQURFRCksYX0pKSxCUyh0SywodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzb3VyY2VDb2RlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNvdXJjZUNvZGUpLHtzb3VyY2VGaWxlTGlzdExvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zb3VyY2VDb2RlLnNvdXJjZUZpbGVMaXN0TG9hZGVkKSx7c3RhdGU6VUUuTE9BRElOR30pfSl9KSkpLEJTKGVLLCgodCxlKT0+e3ZhciBuO2NvbnN0IG89T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzb3VyY2VDb2RlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNvdXJjZUNvZGUpLHtzb3VyY2VGaWxlTGlzdExvYWRlZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zb3VyY2VDb2RlLnNvdXJjZUZpbGVMaXN0TG9hZGVkKSx7c3RhdGU6VUUuTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpEYXRlLm5vdygpfSksc291cmNlRmlsZUxpc3Q6ZS5zb3VyY2VGaWxlcyxmaWxlQ29udGVudHM6dC5zb3VyY2VDb2RlLmZpbGVDb250ZW50cy5zbGljZSgpfSl9KSxpPWUuc291cmNlRmlsZXMubGVuZ3RoLHtmaWxlQ29udGVudHM6YX09by5zb3VyY2VDb2RlO2ZvcihsZXQgZT0wO2U8aTsrK2UpYVtlXT1udWxsIT09KG49dC5zb3VyY2VDb2RlLmZpbGVDb250ZW50c1tlXSkmJnZvaWQgMCE9PW4/bjp7bG9hZFN0YXRlOlVFLk5PVF9MT0FERUQsbGluZXM6bnVsbH07cmV0dXJuIG99KSksQlMobkssKCh0LGUpPT57Y29uc3Qgbj1kSyh0KSxvPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c291cmNlQ29kZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zb3VyY2VDb2RlKSx7Zm9jdXNMaW5lU3BlYzplLnN0YWNrRnJhbWV9KX0pO3JldHVybiBudWxsIT09biYmKG8uc3RpY2tUb0JvdHRvbW1vc3RGcmFtZUluRm9jdXNlZEZpbGU9KGZ1bmN0aW9uIGkodCxlKXtsZXQgbj0tMSxvPS0xO2lmKHQuZm9yRWFjaCgoKHtmaWxlX3BhdGg6dCxsaW5lbm86aX0sYSk9Pnt0PT09ZS5maWxlX3BhdGgmJihvPWEsaT09PWUubGluZW5vJiYobj1hKSl9KSksLTE9PT1uKXRocm93IG5ldyBFcnJvcihgU3RhY2sgZnJhbWUgJHtKU09OLnN0cmluZ2lmeShlKX0gaXMgbm90IGZvdW5kLmApO3JldHVybiBuPT09b30pKG4sZS5zdGFja0ZyYW1lKSksb30pKSxCUyhvSywoKHQsZSk9Pntjb25zdCBuPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c291cmNlQ29kZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zb3VyY2VDb2RlKSx7ZmlsZUNvbnRlbnRzOnQuc291cmNlQ29kZS5maWxlQ29udGVudHMuc2xpY2UoKX0pfSksbz1wSyhuLnNvdXJjZUNvZGUuc291cmNlRmlsZUxpc3QsZSk7aWYoIShvPj0wKSl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBmaW5kIHRoZSBmb2xsb3dpbmcgZmlsZSBpbiBmaWxlIGxpc3Q6IGhvc3RfbmFtZT0iJHtlLmhvc3RfbmFtZX0iLCBmaWxlX3BhdGg9IiR7ZS5maWxlX3BhdGh9ImApO3JldHVybiBuLnNvdXJjZUNvZGUuZmlsZUNvbnRlbnRzLnNwbGljZShvLDEsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4uc291cmNlQ29kZS5maWxlQ29udGVudHNbb10pLHtsb2FkU3RhdGU6VUUuTE9BRElOR30pKSxufSkpLEJTKGlLLCgodCxlKT0+e2NvbnN0IG49T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzb3VyY2VDb2RlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNvdXJjZUNvZGUpLHtmaWxlQ29udGVudHM6dC5zb3VyY2VDb2RlLmZpbGVDb250ZW50cy5zbGljZSgpfSl9KSxvPXBLKG4uc291cmNlQ29kZS5zb3VyY2VGaWxlTGlzdCxlKTtpZighKG8+PTApKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgdGhlIGZvbGxvd2luZyBmaWxlIGluIGZpbGUgbGlzdDogaG9zdF9uYW1lPSIke2UuaG9zdF9uYW1lfSIsIGZpbGVfcGF0aD0iJHtlLmZpbGVfcGF0aH0iYCk7cmV0dXJuIG4uc291cmNlQ29kZS5maWxlQ29udGVudHMuc3BsaWNlKG8sMSx7bG9hZFN0YXRlOlVFLkxPQURFRCxsaW5lczplLmxpbmVzfSksbn0pKSxCUyhhSywoKHQsZSk9PntpZihudWxsPT09dC5hY3RpdmVSdW5JZClyZXR1cm4gdDtjb25zdCBuPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c3RhY2tGcmFtZXM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc3RhY2tGcmFtZXMpLGUuc3RhY2tGcmFtZXMpLHNvdXJjZUNvZGU6T2JqZWN0LmFzc2lnbih7fSx0LnNvdXJjZUNvZGUpfSk7cmV0dXJuIG4uc291cmNlQ29kZS5mb2N1c0xpbmVTcGVjPWZLKG4pLG59KSkpO2Z1bmN0aW9uIGJLKHQsZSxuLG8pe2NvbnN0IGk9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtncmFwaHM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuZ3JhcGhzKSx7Zm9jdXNlZE9wOntncmFwaElkOmUsb3BOYW1lOm59fSksY29kZUxvY2F0aW9uRm9jdXNUeXBlOmNLLkdSQVBIX09QX0NSRUFUSU9OLHNvdXJjZUNvZGU6T2JqZWN0LmFzc2lnbih7fSx0LnNvdXJjZUNvZGUpfSk7cmV0dXJuIGkuc291cmNlQ29kZS5mb2N1c0xpbmVTcGVjPWZLKGkpLHZvaWQgMCE9PW8mJihpLmdyYXBoRXhlY3V0aW9ucz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5ncmFwaEV4ZWN1dGlvbnMpLHtmb2N1c0luZGV4Om99KSksaX1mdW5jdGlvbiB5Syh0LGUpe3JldHVybiB1Syh0LGUpfWNvbnN0IF9LPV9TKHJLKSxDSz1iUyhfSywodD0+dC5ydW5zKSksTUs9YlMoX0ssKHQ9PnQucnVuc0xvYWRlZCkpLHZLPWJTKF9LLCh0PT50LmFjdGl2ZVJ1bklkKSkseEs9YlMoX0ssKHQ9PnQubGFzdERhdGFQb2xsT25zZXRUaW1lTXMtdC5sYXN0Tm9uRW1wdHlQb2xsRGF0YVRpbWVNcykpLE9LPWJTKF9LLCh0PT50LmFsZXJ0cykpLFBLPWJTKE9LLCh0PT50LmFsZXJ0c0xvYWRlZCkpLHdLPWJTKE9LLCh0PT50Lm51bUFsZXJ0cykpLGtLPWJTKE9LLCh0PT50LmZvY3VzVHlwZSkpLFNLPWJTKE9LLCh0PT5udWxsPT09dC5mb2N1c1R5cGU/MDp0LmFsZXJ0c0JyZWFrZG93blt0LmZvY3VzVHlwZV18fDApKSxESz1iUyhPSywodD0+bnVsbD09PXQuZm9jdXNUeXBlfHx2b2lkIDA9PT10LmFsZXJ0c1t0LmZvY3VzVHlwZV0/bnVsbDp0LmFsZXJ0c1t0LmZvY3VzVHlwZV0pKSxSSz1iUyhPSywodD0+dC5hbGVydHNCcmVha2Rvd24pKSxFSz1iUyhfSywodD0+dC5leGVjdXRpb25zKSksQUs9YlMoRUssKHQ9PnQubnVtRXhlY3V0aW9uc0xvYWRlZCkpLFRLPWJTKEVLLCh0PT50LmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQpKSxOSz1iUyhFSywodD0+dC5leGVjdXRpb25EaWdlc3RzTG9hZGVkLm51bUV4ZWN1dGlvbnMpKSx6Sz1iUyhFSywodD0+dC5zY3JvbGxCZWdpbkluZGV4KSksSUs9YlMoRUssKHQ9PnQucGFnZVNpemUpKSxISz1iUyhFSywodD0+dC5kaXNwbGF5Q291bnQpKSxGSz1iUyhFSywodD0+e2NvbnN0IGU9W107Zm9yKGxldCBuPXQuc2Nyb2xsQmVnaW5JbmRleDtuPHQuc2Nyb2xsQmVnaW5JbmRleCt0LmRpc3BsYXlDb3VudDsrK24pZS5wdXNoKG4gaW4gdC5leGVjdXRpb25EaWdlc3RzP3QuZXhlY3V0aW9uRGlnZXN0c1tuXTpudWxsKTtyZXR1cm4gZX0pKSxMSz1iUyhfSywodD0+dC5ncmFwaEV4ZWN1dGlvbnMpKSxCSz1iUyhMSywodD0+dC5udW1FeGVjdXRpb25zTG9hZGVkKSksVks9YlMoX0ssKHQ9PnQuZ3JhcGhFeGVjdXRpb25zLmV4ZWN1dGlvbkRpZ2VzdHNMb2FkZWQubnVtRXhlY3V0aW9ucykpLGpLPWJTKExLLCh0PT50LnNjcm9sbEJlZ2luSW5kZXgpKSxVSz1iUyhMSywodD0+dC5kaXNwbGF5Q291bnQpKSxXSz1iUyhMSywodD0+dC5wYWdlU2l6ZSkpLEdLPWJTKExLLCh0PT50LmdyYXBoRXhlY3V0aW9uRGF0YUxvYWRpbmdQYWdlcykpLFlLPWJTKExLLCh0PT50LmdyYXBoRXhlY3V0aW9uRGF0YVBhZ2VMb2FkZWRTaXplcykpLHFLPWJTKExLLCh0PT50LmdyYXBoRXhlY3V0aW9uRGF0YSkpLFpLPWJTKExLLCh0PT50LmZvY3VzSW5kZXgpKSxYSz1iUyhfSywodD0+dC5ncmFwaHMpKSxLSz1iUyhYSywodD0+e2NvbnN0e2ZvY3VzZWRPcDplLG9wczpufT10O3JldHVybiBudWxsPT09ZXx8dm9pZCAwPT09bltlLmdyYXBoSWRdP251bGw6bltlLmdyYXBoSWRdLmdldChlLm9wTmFtZSl8fG51bGx9KSksSks9YlMoWEssKHQ9Pntjb25zdHtmb2N1c2VkT3A6ZSxvcHM6bn09dDtpZihudWxsIT09ZSYmdm9pZCAwIT09bltlLmdyYXBoSWRdJiZuW2UuZ3JhcGhJZF0uaGFzKGUub3BOYW1lKSl7Y29uc3QgdD1uW2UuZ3JhcGhJZF0se2lucHV0czpvfT10LmdldChlLm9wTmFtZSk7cmV0dXJuIG8ubWFwKChlPT57Y29uc3Qgbj1PYmplY3QuYXNzaWduKHt9LGUpO3JldHVybiB0LmhhcyhlLm9wX25hbWUpJiYobi5kYXRhPXQuZ2V0KGUub3BfbmFtZSkpLG59KSl9cmV0dXJuIG51bGx9KSksUUs9YlMoWksscUssSkssKCh0LGUsbik9PntpZihudWxsPT09dHx8bnVsbD09PW4pcmV0dXJuIG51bGw7Y29uc3Qgbz1uLm1hcCgodD0+ITEpKSxpPVtdO2lmKDA9PT1uLmxlbmd0aClyZXR1cm4gaTtjb25zdCBhPWVbdF0uZ3JhcGhfaWQscj1NYXRoLm1heCgwLHQtMjAwKTtmb3IobGV0IHM9dC0xO3M+PXI7LS1zKWlmKHZvaWQgMCE9PWVbc10pZm9yKGxldCB0PTA7dDxuLmxlbmd0aCYmKG9bdF18fGVbc10uZ3JhcGhfaWQhPT1hfHxlW3NdLm9wX25hbWUhPT1uW3RdLm9wX25hbWV8fGVbc10ub3V0cHV0X3Nsb3QhPT1uW3RdLm91dHB1dF9zbG90fHwoaS5wdXNoKHMpLG9bdF09ITAsaS5sZW5ndGghPT1uLmxlbmd0aCkpOysrdCk7cmV0dXJuIGl9KSksJEs9YlMoWEssKHQ9Pntjb25zdHtmb2N1c2VkT3A6ZSxvcHM6bn09dDtpZihudWxsIT09ZSYmdm9pZCAwIT09bltlLmdyYXBoSWRdJiZuW2UuZ3JhcGhJZF0uaGFzKGUub3BOYW1lKSl7Y29uc3QgdD1uW2UuZ3JhcGhJZF0se2NvbnN1bWVyczpvfT10LmdldChlLm9wTmFtZSk7cmV0dXJuIG8ubWFwKChlPT5lLm1hcCgoZT0+e2NvbnN0IG49T2JqZWN0LmFzc2lnbih7fSxlKTtyZXR1cm4gdC5oYXMoZS5vcF9uYW1lKSYmKG4uZGF0YT10LmdldChlLm9wX25hbWUpKSxufSkpKSl9cmV0dXJuIG51bGx9KSksdEo9YlMoX0ssKHQ9Pntjb25zdCBlPXQuZXhlY3V0aW9ucy5zY3JvbGxCZWdpbkluZGV4LG49dC5leGVjdXRpb25zLnNjcm9sbEJlZ2luSW5kZXgrdC5leGVjdXRpb25zLmRpc3BsYXlDb3VudCxvPW5ldyBBcnJheShuLWUpLmZpbGwobnVsbCksaT10LmFsZXJ0cy5mb2N1c1R5cGU7aWYobnVsbD09PWkpcmV0dXJuIG87Y29uc3QgYT10LmFsZXJ0cy5leGVjdXRpb25JbmRpY2VzW2ldO2lmKHZvaWQgMD09PWEpcmV0dXJuIG87Zm9yKGxldCBpPWU7aTxuOysraSlhLmluY2x1ZGVzKGkpJiYob1tpLWVdPXQuYWxlcnRzLmZvY3VzVHlwZSk7cmV0dXJuIG99KSksZUo9YlMoX0ssKHQ9PnQuZXhlY3V0aW9ucykpLG5KPWJTKGVKLCh0PT50LmZvY3VzSW5kZXgpKSxvSj1iUyhlSiwodD0+e2lmKG51bGw9PT10LmZvY3VzSW5kZXgpcmV0dXJuIG51bGw7Y29uc3R7Zm9jdXNJbmRleDplLHNjcm9sbEJlZ2luSW5kZXg6bixkaXNwbGF5Q291bnQ6b309dDtyZXR1cm4gZTxufHxlPj1uK28/bnVsbDplLW59KSksaUo9YlMoZUosKHQ9PnQuZXhlY3V0aW9uRGF0YSkpLGFKPWJTKF9LLCh0PT50LmdyYXBocy5sb2FkaW5nT3BzKSkscko9YlMoX0ssKHQ9PnQuc3RhY2tGcmFtZXMpKSxzSj1iUyhlSiwodD0+e2NvbnN0e2ZvY3VzSW5kZXg6ZSxleGVjdXRpb25EYXRhOm59PXQ7cmV0dXJuIG51bGw9PT1lfHx2b2lkIDA9PT1uW2VdP251bGw6bltlXX0pKSxsSj1iUyhfSyxuSixzSixLSywoKHQsZSxuLG8pPT57Y29uc3R7Y29kZUxvY2F0aW9uRm9jdXNUeXBlOml9PXQ7cmV0dXJuIG51bGw9PT1pP251bGw6aT09PWNLLkVYRUNVVElPTj9udWxsPT09ZXx8bnVsbD09PW4/bnVsbDp7Y29kZUxvY2F0aW9uVHlwZTpjSy5FWEVDVVRJT04sb3BUeXBlOm4ub3BfdHlwZSxleGVjdXRpb25JbmRleDplfTpudWxsPT09bz9udWxsOntjb2RlTG9jYXRpb25UeXBlOmNLLkdSQVBIX09QX0NSRUFUSU9OLG9wVHlwZTpvLm9wX3R5cGUsb3BOYW1lOm8ub3BfbmFtZX19KSksY0o9YlMoX0ssZEspLGRKPWJTKF9LLCh0PT50LnNvdXJjZUNvZGUpKSxwSj1iUyhkSiwodD0+dC5zb3VyY2VGaWxlTGlzdExvYWRlZCkpO2JTKGRKLCh0PT50LnNvdXJjZUZpbGVMaXN0KSk7Y29uc3QgbUo9YlMoZEosKHQ9Pntjb25zdHtzb3VyY2VGaWxlTGlzdDplLGZvY3VzTGluZVNwZWM6bn09dDtyZXR1cm4gbnVsbD09PW4/LTE6cEsoZSxuKX0pKSxmSj1iUyhkSixtSiwoKHQsZSk9Pi0xPT09ZT9udWxsOnQuZmlsZUNvbnRlbnRzW2VdfHxudWxsKSksdUo9YlMoX0ssKHQ9PnQuc291cmNlQ29kZS5mb2N1c0xpbmVTcGVjKSksZ0o9YlMoX0ssKHQ9PnQuc3RpY2tUb0JvdHRvbW1vc3RGcmFtZUluRm9jdXNlZEZpbGUpKSxoSj1mdW5jdGlvbih0KXtyZXR1cm5bdF19O2Z1bmN0aW9uIGJKKHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwiZGl2Iiw3KSxSZigiY2xpY2siLChmdW5jdGlvbiBlKCl7Y29uc3Qgbj1QaSh0KS4kaW1wbGljaXQ7cmV0dXJuIHpmKCkub25Ub2dnbGVGb2N1c1R5cGUuZW1pdChuLnR5cGUpfSkpLENmKDEsImRpdiIsOCksUHUoMiksTWYoKSxDZigzLCJkaXYiLDkpLFB1KDQpLE1mKCksdmYoNSwiZGl2IiksTWYoKX1pZigyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj16ZigpO2JmKCJuZ0NsYXNzIixpeSg0LGhKLHQudHlwZT09PW4uZm9jdXNUeXBlPyJmb2N1cyI6IiIpKSxEYygyKSx3dSh0LmRpc3BsYXlOYW1lKSxEYygyKSxTdSgiICIsdC5kaXNwbGF5U3ltYm9sLCI6ICIsdC5jb3VudCwiICIpfX1jbGFzcyB5Sntjb25zdHJ1Y3Rvcigpe3RoaXMubnVtQWxlcnRzPTAsdGhpcy5hbGVydHNCcmVha2Rvd249W10sdGhpcy5mb2N1c1R5cGU9bnVsbCx0aGlzLm9uVG9nZ2xlRm9jdXNUeXBlPW5ldyBTeX19eUouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHlKKX0seUouybVjbXA9c28oe3R5cGU6eUosc2VsZWN0b3JzOltbImFsZXJ0cy1jb21wb25lbnQiXV0saW5wdXRzOntudW1BbGVydHM6Im51bUFsZXJ0cyIsYWxlcnRzQnJlYWtkb3duOiJhbGVydHNCcmVha2Rvd24iLGZvY3VzVHlwZToiZm9jdXNUeXBlIn0sb3V0cHV0czp7b25Ub2dnbGVGb2N1c1R5cGU6Im9uVG9nZ2xlRm9jdXNUeXBlIn0sZGVjbHM6MTAsdmFyczo1LGNvbnN0czpbWzEsImFsZXJ0cy1jb250YWluZXIiXSxbMSwiZGVidWdnaW5nLXRpdGxlIl0sWzEsIm51bS1hbGVydHMtY29udGFpbmVyIl0sWzEsIm51bS1hbGVydHMtbGFiZWwiXSxbMSwibnVtLWFsZXJ0cy12YWx1ZSIsMywibmdDbGFzcyJdLFsxLCJhbGVydHMtYnJlYWtkb3duLWNvbnRhaW5lciJdLFsiY2xhc3MiLCJhbGVydHMtYnJlYWtkb3duLXR5cGUiLDMsIm5nQ2xhc3MiLCJjbGljayIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImFsZXJ0cy1icmVha2Rvd24tdHlwZSIsMywibmdDbGFzcyIsImNsaWNrIl0sWzEsImFsZXJ0LXR5cGUtbmFtZSJdLFsxLCJhbGVydC10eXBlLWNvdW50Il1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJkaXYiLDApLENmKDEsImRpdiIsMSksUHUoMiwiRGVidWdnaW5nIiksTWYoKSxDZigzLCJkaXYiLDIpLENmKDQsImRpdiIsMyksUHUoNSwiQWxlcnRzIiksTWYoKSxDZig2LCJkaXYiLDQpLFB1KDcpLE1mKCksTWYoKSxDZig4LCJkaXYiLDUpLEhtKDksYkosNiw2LCJkaXYiLDYpLE1mKCksTWYoKSksMiZlJiYoRGMoNiksYmYoIm5nQ2xhc3MiLGl5KDMsaEosbi5udW1BbGVydHM+MD8ibm9uLXplcm8iOiIiKSksRGMoMSksa3UoIiAiLG4ubnVtQWxlcnRzLCIgIiksRGMoMiksYmYoIm5nRm9yT2YiLG4uYWxlcnRzQnJlYWtkb3duKSl9LGRpcmVjdGl2ZXM6W0N2LHh2XSxzdHlsZXM6WyIuYWxlcnRzLWJyZWFrZG93bi1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBwYWRkaW5nOiAxMHB4IDEwcHggMTBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYWxlcnRzLWJyZWFrZG93bi10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMTBweCAxMHB4IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogNnB4IDAgNnB4IDUwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5hbGVydHMtYnJlYWtkb3duLXR5cGUuZm9jdXNbX25nY29udGVudC0lQ09NUCVdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZWVlMDtcbn1cblxuLmFsZXJ0cy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xufVxuXG4uYWxlcnQtdHlwZS1jb3VudFtfbmdjb250ZW50LSVDT01QJV0ge1xuICBcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U1MjU5MjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBjb2xvcjogI2ZmZjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAzcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDIwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5hbGVydC10eXBlLW5hbWVbX25nY29udGVudC0lQ09NUCVdIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAzcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kZWJ1Z2dpbmctdGl0bGVbX25nY29udGVudC0lQ09NUCVdIHtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4ubnVtLWFsZXJ0cy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDEwcHggMTBweCAxMHB4IDMwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm51bS1hbGVydHMtbGFiZWxbX25nY29udGVudC0lQ09NUCVdIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5udW0tYWxlcnRzLXZhbHVlW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMjBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogMjRweDtcbn1cblxuLm51bS1hbGVydHMtdmFsdWUubm9uLXplcm9bX25nY29udGVudC0lQ09NUCVdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYjc4MDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59Il19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHlKLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6ImFsZXJ0cy1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL2FsZXJ0c19jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9hbGVydHNfY29tcG9uZW50LmNzcyJdfV19XSxudWxsLHtudW1BbGVydHM6W3t0eXBlOlJffV0sYWxlcnRzQnJlYWtkb3duOlt7dHlwZTpSX31dLGZvY3VzVHlwZTpbe3R5cGU6Ul99XSxvblRvZ2dsZUZvY3VzVHlwZTpbe3R5cGU6RV99XX0pO2NvbnN0IF9KPXtbbEsuRlVOQ1RJT05fUkVDT01QSUxFX0FMRVJUXTp7ZGlzcGxheU5hbWU6IkZ1bmN0aW9uIHJlY29tcGlsZXMiLGRpc3BsYXlTeW1ib2w6IkMifSxbbEsuSU5GX05BTl9BTEVSVF06e2Rpc3BsYXlOYW1lOiJOYU4v4oieIixkaXNwbGF5U3ltYm9sOiLiiJ4ifSxbbEsuVEVOU09SX1NIQVBFX0FMRVJUXTp7ZGlzcGxheU5hbWU6IlRlbnNvciBzaGFwZSIsZGlzcGxheVN5bWJvbDoi4pagIn19O2NsYXNzIENKe2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLm51bUFsZXJ0cyQ9dGhpcy5zdG9yZS5waXBlKHJTKHdLKSksdGhpcy5hbGVydHNCcmVha2Rvd24kPXRoaXMuc3RvcmUucGlwZShyUyhiUyhSSywodD0+e2NvbnN0IGU9T2JqZWN0LmtleXModCk7cmV0dXJuIGUuc29ydCgpLGUubWFwKChlPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe3R5cGU6ZX0sX0pbZV0pLHtjb3VudDp0W2VdfSkpKX0pKSkpLHRoaXMuZm9jdXNUeXBlJD10aGlzLnN0b3JlLnBpcGUoclMoa0spKX1vblRvZ2dsZUZvY3VzVHlwZSh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKHpYKHthbGVydFR5cGU6dH0pKX19Q0ouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fENKKShnZihpUykpfSxDSi7JtWNtcD1zbyh7dHlwZTpDSixzZWxlY3RvcnM6W1sidGYtZGVidWdnZXItdjItYWxlcnRzIl1dLGRlY2xzOjQsdmFyczo5LGNvbnN0czpbWzMsIm51bUFsZXJ0cyIsImFsZXJ0c0JyZWFrZG93biIsImZvY3VzVHlwZSIsIm9uVG9nZ2xlRm9jdXNUeXBlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJhbGVydHMtY29tcG9uZW50IiwwKSxSZigib25Ub2dnbGVGb2N1c1R5cGUiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uVG9nZ2xlRm9jdXNUeXBlKGUpfSkpLF95KDEsImFzeW5jIiksX3koMiwiYXN5bmMiKSxfeSgzLCJhc3luYyIpLE1mKCkpLDImZSYmYmYoIm51bUFsZXJ0cyIsQ3koMSwzLG4ubnVtQWxlcnRzJCkpKCJhbGVydHNCcmVha2Rvd24iLEN5KDIsNSxuLmFsZXJ0c0JyZWFrZG93biQpKSgiZm9jdXNUeXBlIixDeSgzLDcsbi5mb2N1c1R5cGUkKSl9LGRpcmVjdGl2ZXM6W3lKXSxwaXBlczpbVnZdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoQ0osW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoidGYtZGVidWdnZXItdjItYWxlcnRzIix0ZW1wbGF0ZTonXG4gICAgPGFsZXJ0cy1jb21wb25lbnRcbiAgICAgIFtudW1BbGVydHNdPSJudW1BbGVydHMkIHwgYXN5bmMiXG4gICAgICBbYWxlcnRzQnJlYWtkb3duXT0iYWxlcnRzQnJlYWtkb3duJCB8IGFzeW5jIlxuICAgICAgW2ZvY3VzVHlwZV09ImZvY3VzVHlwZSQgfCBhc3luYyJcbiAgICAgIChvblRvZ2dsZUZvY3VzVHlwZSk9Im9uVG9nZ2xlRm9jdXNUeXBlKCRldmVudCkiXG4gICAgPlxuICAgIDwvYWxlcnRzLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aVN9XX0pLG51bGwpO2NvbnN0IE1KPVsic2xpZGVyV3JhcHBlciJdLHZKPWJIKHtwYXNzaXZlOiExfSkseEo9e3Byb3ZpZGU6eFUsdXNlRXhpc3Rpbmc6JGUoKCgpPT53SikpLG11bHRpOiEwfTtjbGFzcyBPSnt9Y29uc3QgUEo9RkYoSUYoekYoY2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5fZWxlbWVudFJlZj10fX0pLCJhY2NlbnQiKSk7Y2xhc3Mgd0ogZXh0ZW5kcyBQSntjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyLHMpe3N1cGVyKHQpLHRoaXMuX2ZvY3VzTW9uaXRvcj1lLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPW4sdGhpcy5fZGlyPW8sdGhpcy5fbmdab25lPWEsdGhpcy5fYW5pbWF0aW9uTW9kZT1zLHRoaXMuX2ludmVydD0hMSx0aGlzLl9tYXg9MTAwLHRoaXMuX21pbj0wLHRoaXMuX3N0ZXA9MSx0aGlzLl90aHVtYkxhYmVsPSExLHRoaXMuX3RpY2tJbnRlcnZhbD0wLHRoaXMuX3ZhbHVlPW51bGwsdGhpcy5fdmVydGljYWw9ITEsdGhpcy5jaGFuZ2U9bmV3IFN5LHRoaXMuaW5wdXQ9bmV3IFN5LHRoaXMudmFsdWVDaGFuZ2U9bmV3IFN5LHRoaXMub25Ub3VjaGVkPSgpPT57fSx0aGlzLl9wZXJjZW50PTAsdGhpcy5faXNTbGlkaW5nPW51bGwsdGhpcy5faXNBY3RpdmU9ITEsdGhpcy5fdGlja0ludGVydmFsUGVyY2VudD0wLHRoaXMuX3NsaWRlckRpbWVuc2lvbnM9bnVsbCx0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuPSgpPT57fSx0aGlzLl9kaXJDaGFuZ2VTdWJzY3JpcHRpb249dS5FTVBUWSx0aGlzLl9wb2ludGVyRG93bj10PT57dGhpcy5kaXNhYmxlZHx8dGhpcy5faXNTbGlkaW5nfHwha0oodCkmJjAhPT10LmJ1dHRvbnx8dGhpcy5fbmdab25lLnJ1bigoKCk9Pnt0aGlzLl90b3VjaElkPWtKKHQpPyhmdW5jdGlvbiBlKHQsbil7Zm9yKGxldCBlPTA7ZTx0LnRvdWNoZXMubGVuZ3RoO2UrKyl7Y29uc3Qgbz10LnRvdWNoZXNbZV0udGFyZ2V0O2lmKG49PT1vfHxuLmNvbnRhaW5zKG8pKXJldHVybiB0LnRvdWNoZXNbZV0uaWRlbnRpZmllcn1yZXR1cm59Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLykodCx0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpOnZvaWQgMDtjb25zdCBuPVNKKHQsdGhpcy5fdG91Y2hJZCk7aWYobil7Y29uc3QgZT10aGlzLnZhbHVlO3RoaXMuX2lzU2xpZGluZz0icG9pbnRlciIsdGhpcy5fbGFzdFBvaW50ZXJFdmVudD10LHQucHJldmVudERlZmF1bHQoKSx0aGlzLl9mb2N1c0hvc3RFbGVtZW50KCksdGhpcy5fb25Nb3VzZWVudGVyKCksdGhpcy5fYmluZEdsb2JhbEV2ZW50cyh0KSx0aGlzLl9mb2N1c0hvc3RFbGVtZW50KCksdGhpcy5fdXBkYXRlVmFsdWVGcm9tUG9zaXRpb24obiksdGhpcy5fdmFsdWVPblNsaWRlU3RhcnQ9ZSxlIT10aGlzLnZhbHVlJiZ0aGlzLl9lbWl0SW5wdXRFdmVudCgpfX0pKX0sdGhpcy5fcG9pbnRlck1vdmU9dD0+e2lmKCJwb2ludGVyIj09PXRoaXMuX2lzU2xpZGluZyl7Y29uc3QgZT1TSih0LHRoaXMuX3RvdWNoSWQpO2lmKGUpe3QucHJldmVudERlZmF1bHQoKTtjb25zdCBuPXRoaXMudmFsdWU7dGhpcy5fbGFzdFBvaW50ZXJFdmVudD10LHRoaXMuX3VwZGF0ZVZhbHVlRnJvbVBvc2l0aW9uKGUpLG4hPXRoaXMudmFsdWUmJnRoaXMuX2VtaXRJbnB1dEV2ZW50KCl9fX0sdGhpcy5fcG9pbnRlclVwPXQ9PnsicG9pbnRlciI9PT10aGlzLl9pc1NsaWRpbmcmJihrSih0KSYmIm51bWJlciI9PXR5cGVvZiB0aGlzLl90b3VjaElkJiYhREoodC5jaGFuZ2VkVG91Y2hlcyx0aGlzLl90b3VjaElkKXx8KHQucHJldmVudERlZmF1bHQoKSx0aGlzLl9yZW1vdmVHbG9iYWxFdmVudHMoKSx0aGlzLl9pc1NsaWRpbmc9bnVsbCx0aGlzLl90b3VjaElkPXZvaWQgMCx0aGlzLl92YWx1ZU9uU2xpZGVTdGFydD09dGhpcy52YWx1ZXx8dGhpcy5kaXNhYmxlZHx8dGhpcy5fZW1pdENoYW5nZUV2ZW50KCksdGhpcy5fdmFsdWVPblNsaWRlU3RhcnQ9dGhpcy5fbGFzdFBvaW50ZXJFdmVudD1udWxsKSl9LHRoaXMuX3dpbmRvd0JsdXI9KCk9Pnt0aGlzLl9sYXN0UG9pbnRlckV2ZW50JiZ0aGlzLl9wb2ludGVyVXAodGhpcy5fbGFzdFBvaW50ZXJFdmVudCl9LHRoaXMuX2RvY3VtZW50PXIsdGhpcy50YWJJbmRleD1wYXJzZUludChpKXx8MCxhLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e2NvbnN0IGU9dC5uYXRpdmVFbGVtZW50O2UuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLl9wb2ludGVyRG93bix2SiksZS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLl9wb2ludGVyRG93bix2Sil9KSl9Z2V0IGludmVydCgpe3JldHVybiB0aGlzLl9pbnZlcnR9c2V0IGludmVydCh0KXt0aGlzLl9pbnZlcnQ9ZUgodCl9Z2V0IG1heCgpe3JldHVybiB0aGlzLl9tYXh9c2V0IG1heCh0KXt0aGlzLl9tYXg9bkgodCx0aGlzLl9tYXgpLHRoaXMuX3BlcmNlbnQ9dGhpcy5fY2FsY3VsYXRlUGVyY2VudGFnZSh0aGlzLl92YWx1ZSksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9Z2V0IG1pbigpe3JldHVybiB0aGlzLl9taW59c2V0IG1pbih0KXt0aGlzLl9taW49bkgodCx0aGlzLl9taW4pLHRoaXMuX3BlcmNlbnQ9dGhpcy5fY2FsY3VsYXRlUGVyY2VudGFnZSh0aGlzLl92YWx1ZSksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9Z2V0IHN0ZXAoKXtyZXR1cm4gdGhpcy5fc3RlcH1zZXQgc3RlcCh0KXt0aGlzLl9zdGVwPW5IKHQsdGhpcy5fc3RlcCksdGhpcy5fc3RlcCUxIT0wJiYodGhpcy5fcm91bmRUb0RlY2ltYWw9dGhpcy5fc3RlcC50b1N0cmluZygpLnNwbGl0KCIuIikucG9wKCkubGVuZ3RoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX1nZXQgdGh1bWJMYWJlbCgpe3JldHVybiB0aGlzLl90aHVtYkxhYmVsfXNldCB0aHVtYkxhYmVsKHQpe3RoaXMuX3RodW1iTGFiZWw9ZUgodCl9Z2V0IHRpY2tJbnRlcnZhbCgpe3JldHVybiB0aGlzLl90aWNrSW50ZXJ2YWx9c2V0IHRpY2tJbnRlcnZhbCh0KXt0aGlzLl90aWNrSW50ZXJ2YWw9ImF1dG8iPT09dD8iYXV0byI6Im51bWJlciI9PXR5cGVvZiB0fHwic3RyaW5nIj09dHlwZW9mIHQ/bkgodCx0aGlzLl90aWNrSW50ZXJ2YWwpOjB9Z2V0IHZhbHVlKCl7cmV0dXJuIG51bGw9PT10aGlzLl92YWx1ZSYmKHRoaXMudmFsdWU9dGhpcy5fbWluKSx0aGlzLl92YWx1ZX1zZXQgdmFsdWUodCl7aWYodCE9PXRoaXMuX3ZhbHVlKXtsZXQgZT1uSCh0LDApO3RoaXMuX3JvdW5kVG9EZWNpbWFsJiZlIT09dGhpcy5taW4mJmUhPT10aGlzLm1heCYmKGU9cGFyc2VGbG9hdChlLnRvRml4ZWQodGhpcy5fcm91bmRUb0RlY2ltYWwpKSksdGhpcy5fdmFsdWU9ZSx0aGlzLl9wZXJjZW50PXRoaXMuX2NhbGN1bGF0ZVBlcmNlbnRhZ2UodGhpcy5fdmFsdWUpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfX1nZXQgdmVydGljYWwoKXtyZXR1cm4gdGhpcy5fdmVydGljYWx9c2V0IHZlcnRpY2FsKHQpe3RoaXMuX3ZlcnRpY2FsPWVIKHQpfWdldCBkaXNwbGF5VmFsdWUoKXtyZXR1cm4gdGhpcy5kaXNwbGF5V2l0aD90aGlzLmRpc3BsYXlXaXRoKHRoaXMudmFsdWUpOnRoaXMuX3JvdW5kVG9EZWNpbWFsJiZ0aGlzLnZhbHVlJiZ0aGlzLnZhbHVlJTEhPTA/dGhpcy52YWx1ZS50b0ZpeGVkKHRoaXMuX3JvdW5kVG9EZWNpbWFsKTp0aGlzLnZhbHVlfHwwfWZvY3VzKHQpe3RoaXMuX2ZvY3VzSG9zdEVsZW1lbnQodCl9Ymx1cigpe3RoaXMuX2JsdXJIb3N0RWxlbWVudCgpfWdldCBwZXJjZW50KCl7cmV0dXJuIHRoaXMuX2NsYW1wKHRoaXMuX3BlcmNlbnQpfV9zaG91bGRJbnZlcnRBeGlzKCl7cmV0dXJuIHRoaXMudmVydGljYWw/IXRoaXMuaW52ZXJ0OnRoaXMuaW52ZXJ0fV9pc01pblZhbHVlKCl7cmV0dXJuIDA9PT10aGlzLnBlcmNlbnR9X2dldFRodW1iR2FwKCl7cmV0dXJuIHRoaXMuZGlzYWJsZWQ/Nzp0aGlzLl9pc01pblZhbHVlKCkmJiF0aGlzLnRodW1iTGFiZWw/dGhpcy5faXNBY3RpdmU/MTA6NzowfV9nZXRUcmFja0JhY2tncm91bmRTdHlsZXMoKXtjb25zdCB0PXRoaXMudmVydGljYWw/YDEsICR7MS10aGlzLnBlcmNlbnR9LCAxYDoxLXRoaXMucGVyY2VudCsiLCAxLCAxIjtyZXR1cm57dHJhbnNmb3JtOmB0cmFuc2xhdGUke3RoaXMudmVydGljYWw/IlkiOiJYIn0oJHt0aGlzLl9zaG91bGRJbnZlcnRNb3VzZUNvb3JkcygpPyItIjoiIn0ke3RoaXMuX2dldFRodW1iR2FwKCl9cHgpIHNjYWxlM2QoJHt0fSlgfX1fZ2V0VHJhY2tGaWxsU3R5bGVzKCl7Y29uc3QgdD10aGlzLnBlcmNlbnQsZT10aGlzLnZlcnRpY2FsP2AxLCAke3R9LCAxYDpgJHt0fSwgMSwgMWA7cmV0dXJue3RyYW5zZm9ybTpgdHJhbnNsYXRlJHt0aGlzLnZlcnRpY2FsPyJZIjoiWCJ9KCR7dGhpcy5fc2hvdWxkSW52ZXJ0TW91c2VDb29yZHMoKT8iIjoiLSJ9JHt0aGlzLl9nZXRUaHVtYkdhcCgpfXB4KSBzY2FsZTNkKCR7ZX0pYCxkaXNwbGF5OjA9PT10PyJub25lIjoiIn19X2dldFRpY2tzQ29udGFpbmVyU3R5bGVzKCl7cmV0dXJue3RyYW5zZm9ybTpgdHJhbnNsYXRlJHt0aGlzLnZlcnRpY2FsPyJZIjoiWCJ9KCR7dGhpcy52ZXJ0aWNhbHx8InJ0bCIhPXRoaXMuX2dldERpcmVjdGlvbigpPyItIjoiIn0ke3RoaXMuX3RpY2tJbnRlcnZhbFBlcmNlbnQvMioxMDB9JSlgfX1fZ2V0VGlja3NTdHlsZXMoKXtsZXQgdD0xMDAqdGhpcy5fdGlja0ludGVydmFsUGVyY2VudCxlPXtiYWNrZ3JvdW5kU2l6ZTp0aGlzLnZlcnRpY2FsP2AycHggJHt0fSVgOmAke3R9JSAycHhgLHRyYW5zZm9ybTpgdHJhbnNsYXRlWigwKSB0cmFuc2xhdGUke3RoaXMudmVydGljYWw/IlkiOiJYIn0oJHt0aGlzLnZlcnRpY2FsfHwicnRsIiE9dGhpcy5fZ2V0RGlyZWN0aW9uKCk/IiI6Ii0ifSR7dC8yfSUpJHt0aGlzLnZlcnRpY2FsfHwicnRsIiE9dGhpcy5fZ2V0RGlyZWN0aW9uKCk/IiI6IiByb3RhdGUoMTgwZGVnKSJ9YH07aWYodGhpcy5faXNNaW5WYWx1ZSgpJiZ0aGlzLl9nZXRUaHVtYkdhcCgpKXtjb25zdCB0PXRoaXMuX3Nob3VsZEludmVydEF4aXMoKTtsZXQgbjtuPXRoaXMudmVydGljYWw/dD8iQm90dG9tIjoiVG9wIjp0PyJSaWdodCI6IkxlZnQiLGVbYHBhZGRpbmcke259YF09YCR7dGhpcy5fZ2V0VGh1bWJHYXAoKX1weGB9cmV0dXJuIGV9X2dldFRodW1iQ29udGFpbmVyU3R5bGVzKCl7Y29uc3QgdD10aGlzLl9zaG91bGRJbnZlcnRBeGlzKCk7cmV0dXJue3RyYW5zZm9ybTpgdHJhbnNsYXRlJHt0aGlzLnZlcnRpY2FsPyJZIjoiWCJ9KC0kezEwMCooKCJydGwiIT10aGlzLl9nZXREaXJlY3Rpb24oKXx8dGhpcy52ZXJ0aWNhbD90OiF0KT90aGlzLnBlcmNlbnQ6MS10aGlzLnBlcmNlbnQpfSUpYH19X3Nob3VsZEludmVydE1vdXNlQ29vcmRzKCl7Y29uc3QgdD10aGlzLl9zaG91bGRJbnZlcnRBeGlzKCk7cmV0dXJuInJ0bCIhPXRoaXMuX2dldERpcmVjdGlvbigpfHx0aGlzLnZlcnRpY2FsP3Q6IXR9X2dldERpcmVjdGlvbigpe3JldHVybiB0aGlzLl9kaXImJiJydGwiPT10aGlzLl9kaXIudmFsdWU/InJ0bCI6Imx0ciJ9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5fZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZiwhMCkuc3Vic2NyaWJlKCh0PT57dGhpcy5faXNBY3RpdmU9ISF0JiYia2V5Ym9hcmQiIT09dCx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCl9KSksdGhpcy5fZGlyJiYodGhpcy5fZGlyQ2hhbmdlU3Vic2NyaXB0aW9uPXRoaXMuX2Rpci5jaGFuZ2Uuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfSkpKX1uZ09uRGVzdHJveSgpe2NvbnN0IHQ9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLl9wb2ludGVyRG93bix2SiksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLl9wb2ludGVyRG93bix2SiksdGhpcy5fbGFzdFBvaW50ZXJFdmVudD1udWxsLHRoaXMuX3JlbW92ZUdsb2JhbEV2ZW50cygpLHRoaXMuX2ZvY3VzTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLl9lbGVtZW50UmVmKSx0aGlzLl9kaXJDaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX1fb25Nb3VzZWVudGVyKCl7dGhpcy5kaXNhYmxlZHx8KHRoaXMuX3NsaWRlckRpbWVuc2lvbnM9dGhpcy5fZ2V0U2xpZGVyRGltZW5zaW9ucygpLHRoaXMuX3VwZGF0ZVRpY2tJbnRlcnZhbFBlcmNlbnQoKSl9X29uRm9jdXMoKXt0aGlzLl9zbGlkZXJEaW1lbnNpb25zPXRoaXMuX2dldFNsaWRlckRpbWVuc2lvbnMoKSx0aGlzLl91cGRhdGVUaWNrSW50ZXJ2YWxQZXJjZW50KCl9X29uQmx1cigpe3RoaXMub25Ub3VjaGVkKCl9X29uS2V5ZG93bih0KXtpZih0aGlzLmRpc2FibGVkfHx0SCh0KXx8dGhpcy5faXNTbGlkaW5nJiYia2V5Ym9hcmQiIT09dGhpcy5faXNTbGlkaW5nKXJldHVybjtjb25zdCBlPXRoaXMudmFsdWU7c3dpdGNoKHQua2V5Q29kZSl7Y2FzZSAzMzp0aGlzLl9pbmNyZW1lbnQoMTApO2JyZWFrO2Nhc2UgMzQ6dGhpcy5faW5jcmVtZW50KC0xMCk7YnJlYWs7Y2FzZSAzNTp0aGlzLnZhbHVlPXRoaXMubWF4O2JyZWFrO2Nhc2UgMzY6dGhpcy52YWx1ZT10aGlzLm1pbjticmVhaztjYXNlIDM3OnRoaXMuX2luY3JlbWVudCgicnRsIj09dGhpcy5fZ2V0RGlyZWN0aW9uKCk/MTotMSk7YnJlYWs7Y2FzZSBRSTp0aGlzLl9pbmNyZW1lbnQoMSk7YnJlYWs7Y2FzZSAzOTp0aGlzLl9pbmNyZW1lbnQoInJ0bCI9PXRoaXMuX2dldERpcmVjdGlvbigpPy0xOjEpO2JyZWFrO2Nhc2UgJEk6dGhpcy5faW5jcmVtZW50KC0xKTticmVhaztkZWZhdWx0OnJldHVybn1lIT10aGlzLnZhbHVlJiYodGhpcy5fZW1pdElucHV0RXZlbnQoKSx0aGlzLl9lbWl0Q2hhbmdlRXZlbnQoKSksdGhpcy5faXNTbGlkaW5nPSJrZXlib2FyZCIsdC5wcmV2ZW50RGVmYXVsdCgpfV9vbktleXVwKCl7ImtleWJvYXJkIj09PXRoaXMuX2lzU2xpZGluZyYmKHRoaXMuX2lzU2xpZGluZz1udWxsKX1fZ2V0V2luZG93KCl7cmV0dXJuIHRoaXMuX2RvY3VtZW50LmRlZmF1bHRWaWV3fHx3aW5kb3d9X2JpbmRHbG9iYWxFdmVudHModCl7Y29uc3QgZT10aGlzLl9kb2N1bWVudCxuPWtKKHQpLG89bj8idG91Y2hlbmQiOiJtb3VzZXVwIjtlLmFkZEV2ZW50TGlzdGVuZXIobj8idG91Y2htb3ZlIjoibW91c2Vtb3ZlIix0aGlzLl9wb2ludGVyTW92ZSx2SiksZS5hZGRFdmVudExpc3RlbmVyKG8sdGhpcy5fcG9pbnRlclVwLHZKKSxuJiZlLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoY2FuY2VsIix0aGlzLl9wb2ludGVyVXAsdkopO2NvbnN0IGk9dGhpcy5fZ2V0V2luZG93KCk7dm9pZCAwIT09aSYmaSYmaS5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl93aW5kb3dCbHVyKX1fcmVtb3ZlR2xvYmFsRXZlbnRzKCl7Y29uc3QgdD10aGlzLl9kb2N1bWVudDt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5fcG9pbnRlck1vdmUsdkopLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5fcG9pbnRlclVwLHZKKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5fcG9pbnRlck1vdmUsdkopLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMuX3BvaW50ZXJVcCx2SiksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGNhbmNlbCIsdGhpcy5fcG9pbnRlclVwLHZKKTtjb25zdCBlPXRoaXMuX2dldFdpbmRvdygpO3ZvaWQgMCE9PWUmJmUmJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcy5fd2luZG93Qmx1cil9X2luY3JlbWVudCh0KXt0aGlzLnZhbHVlPXRoaXMuX2NsYW1wKCh0aGlzLnZhbHVlfHwwKSt0aGlzLnN0ZXAqdCx0aGlzLm1pbix0aGlzLm1heCl9X3VwZGF0ZVZhbHVlRnJvbVBvc2l0aW9uKHQpe2lmKCF0aGlzLl9zbGlkZXJEaW1lbnNpb25zKXJldHVybjtsZXQgZT10aGlzLl9jbGFtcCgoKHRoaXMudmVydGljYWw/dC55OnQueCktKHRoaXMudmVydGljYWw/dGhpcy5fc2xpZGVyRGltZW5zaW9ucy50b3A6dGhpcy5fc2xpZGVyRGltZW5zaW9ucy5sZWZ0KSkvKHRoaXMudmVydGljYWw/dGhpcy5fc2xpZGVyRGltZW5zaW9ucy5oZWlnaHQ6dGhpcy5fc2xpZGVyRGltZW5zaW9ucy53aWR0aCkpO2lmKHRoaXMuX3Nob3VsZEludmVydE1vdXNlQ29vcmRzKCkmJihlPTEtZSksMD09PWUpdGhpcy52YWx1ZT10aGlzLm1pbjtlbHNlIGlmKDE9PT1lKXRoaXMudmFsdWU9dGhpcy5tYXg7ZWxzZXtjb25zdCB0PXRoaXMuX2NhbGN1bGF0ZVZhbHVlKGUpLG49TWF0aC5yb3VuZCgodC10aGlzLm1pbikvdGhpcy5zdGVwKSp0aGlzLnN0ZXArdGhpcy5taW47dGhpcy52YWx1ZT10aGlzLl9jbGFtcChuLHRoaXMubWluLHRoaXMubWF4KX19X2VtaXRDaGFuZ2VFdmVudCgpe3RoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4odGhpcy52YWx1ZSksdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpLHRoaXMuY2hhbmdlLmVtaXQodGhpcy5fY3JlYXRlQ2hhbmdlRXZlbnQoKSl9X2VtaXRJbnB1dEV2ZW50KCl7dGhpcy5pbnB1dC5lbWl0KHRoaXMuX2NyZWF0ZUNoYW5nZUV2ZW50KCkpfV91cGRhdGVUaWNrSW50ZXJ2YWxQZXJjZW50KCl7aWYodGhpcy50aWNrSW50ZXJ2YWwmJnRoaXMuX3NsaWRlckRpbWVuc2lvbnMpaWYoImF1dG8iPT10aGlzLnRpY2tJbnRlcnZhbCl7bGV0IHQ9dGhpcy52ZXJ0aWNhbD90aGlzLl9zbGlkZXJEaW1lbnNpb25zLmhlaWdodDp0aGlzLl9zbGlkZXJEaW1lbnNpb25zLndpZHRoLGU9TWF0aC5jZWlsKDMwLyh0KnRoaXMuc3RlcC8odGhpcy5tYXgtdGhpcy5taW4pKSk7dGhpcy5fdGlja0ludGVydmFsUGVyY2VudD1lKnRoaXMuc3RlcC90fWVsc2UgdGhpcy5fdGlja0ludGVydmFsUGVyY2VudD10aGlzLnRpY2tJbnRlcnZhbCp0aGlzLnN0ZXAvKHRoaXMubWF4LXRoaXMubWluKX1fY3JlYXRlQ2hhbmdlRXZlbnQodD10aGlzLnZhbHVlKXtsZXQgZT1uZXcgT0o7cmV0dXJuIGUuc291cmNlPXRoaXMsZS52YWx1ZT10LGV9X2NhbGN1bGF0ZVBlcmNlbnRhZ2UodCl7cmV0dXJuKCh0fHwwKS10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKX1fY2FsY3VsYXRlVmFsdWUodCl7cmV0dXJuIHRoaXMubWluK3QqKHRoaXMubWF4LXRoaXMubWluKX1fY2xhbXAodCxlPTAsbj0xKXtyZXR1cm4gTWF0aC5tYXgoZSxNYXRoLm1pbih0LG4pKX1fZ2V0U2xpZGVyRGltZW5zaW9ucygpe3JldHVybiB0aGlzLl9zbGlkZXJXcmFwcGVyP3RoaXMuX3NsaWRlcldyYXBwZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTpudWxsfV9mb2N1c0hvc3RFbGVtZW50KHQpe3RoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cyh0KX1fYmx1ckhvc3RFbGVtZW50KCl7dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmJsdXIoKX13cml0ZVZhbHVlKHQpe3RoaXMudmFsdWU9dH1yZWdpc3Rlck9uQ2hhbmdlKHQpe3RoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm49dH1yZWdpc3Rlck9uVG91Y2hlZCh0KXt0aGlzLm9uVG91Y2hlZD10fXNldERpc2FibGVkU3RhdGUodCl7dGhpcy5kaXNhYmxlZD10fX1mdW5jdGlvbiBrSih0KXtyZXR1cm4idCI9PT10LnR5cGVbMF19ZnVuY3Rpb24gU0oodCxlKXtsZXQgbjtyZXR1cm4gbj1rSih0KT8ibnVtYmVyIj09dHlwZW9mIGU/REoodC50b3VjaGVzLGUpfHxESih0LmNoYW5nZWRUb3VjaGVzLGUpOnQudG91Y2hlc1swXXx8dC5jaGFuZ2VkVG91Y2hlc1swXTp0LG4/e3g6bi5jbGllbnRYLHk6bi5jbGllbnRZfTp2b2lkIDB9ZnVuY3Rpb24gREoodCxlKXtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKylpZih0W25dLmlkZW50aWZpZXI9PT1lKXJldHVybiB0W25dfXdKLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx3SikoZ2YoS2gpLGdmKGZGKSxnZihPYiksZ2YodkYsOCksR2EoInRhYmluZGV4IiksZ2YobUMpLGdmKHNNKSxnZihjayw4KSl9LHdKLsm1Y21wPXNvKHt0eXBlOndKLHNlbGVjdG9yczpbWyJtYXQtc2xpZGVyIl1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiZWeShNSiw1KSwyJmUpe2xldCB0O0J5KHQ9VXkoKSkmJihuLl9zbGlkZXJXcmFwcGVyPXQuZmlyc3QpfX0saG9zdEF0dHJzOlsicm9sZSIsInNsaWRlciIsMSwibWF0LXNsaWRlciIsIm1hdC1mb2N1cy1pbmRpY2F0b3IiXSxob3N0VmFyczoyOSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmUmYoImZvY3VzIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9vbkZvY3VzKCl9KSkoImJsdXIiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX29uQmx1cigpfSkpKCJrZXlkb3duIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5fb25LZXlkb3duKGUpfSkpKCJrZXl1cCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fb25LZXl1cCgpfSkpKCJtb3VzZWVudGVyIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9vbk1vdXNlZW50ZXIoKX0pKSgic2VsZWN0c3RhcnQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBlLnByZXZlbnREZWZhdWx0KCl9KSksMiZlJiYoY2coInRhYkluZGV4IixuLnRhYkluZGV4KSx5bSgiYXJpYS1kaXNhYmxlZCIsbi5kaXNhYmxlZCkoImFyaWEtdmFsdWVtYXgiLG4ubWF4KSgiYXJpYS12YWx1ZW1pbiIsbi5taW4pKCJhcmlhLXZhbHVlbm93IixuLnZhbHVlKSgiYXJpYS12YWx1ZXRleHQiLG51bGw9PW4udmFsdWVUZXh0P24uZGlzcGxheVZhbHVlOm4udmFsdWVUZXh0KSgiYXJpYS1vcmllbnRhdGlvbiIsbi52ZXJ0aWNhbD8idmVydGljYWwiOiJob3Jpem9udGFsIiksY3UoIm1hdC1zbGlkZXItZGlzYWJsZWQiLG4uZGlzYWJsZWQpKCJtYXQtc2xpZGVyLWhhcy10aWNrcyIsbi50aWNrSW50ZXJ2YWwpKCJtYXQtc2xpZGVyLWhvcml6b250YWwiLCFuLnZlcnRpY2FsKSgibWF0LXNsaWRlci1heGlzLWludmVydGVkIixuLl9zaG91bGRJbnZlcnRBeGlzKCkpKCJtYXQtc2xpZGVyLWludmVydC1tb3VzZS1jb29yZHMiLG4uX3Nob3VsZEludmVydE1vdXNlQ29vcmRzKCkpKCJtYXQtc2xpZGVyLXNsaWRpbmciLG4uX2lzU2xpZGluZykoIm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyIsbi50aHVtYkxhYmVsKSgibWF0LXNsaWRlci12ZXJ0aWNhbCIsbi52ZXJ0aWNhbCkoIm1hdC1zbGlkZXItbWluLXZhbHVlIixuLl9pc01pblZhbHVlKCkpKCJtYXQtc2xpZGVyLWhpZGUtbGFzdC10aWNrIixuLmRpc2FibGVkfHxuLl9pc01pblZhbHVlKCkmJm4uX2dldFRodW1iR2FwKCkmJm4uX3Nob3VsZEludmVydEF4aXMoKSkoIl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIiwiTm9vcEFuaW1hdGlvbnMiPT09bi5fYW5pbWF0aW9uTW9kZSkpfSxpbnB1dHM6e2Rpc2FibGVkOiJkaXNhYmxlZCIsY29sb3I6ImNvbG9yIix0YWJJbmRleDoidGFiSW5kZXgiLGludmVydDoiaW52ZXJ0IixtYXg6Im1heCIsbWluOiJtaW4iLHN0ZXA6InN0ZXAiLHRodW1iTGFiZWw6InRodW1iTGFiZWwiLHRpY2tJbnRlcnZhbDoidGlja0ludGVydmFsIix2YWx1ZToidmFsdWUiLHZlcnRpY2FsOiJ2ZXJ0aWNhbCIsZGlzcGxheVdpdGg6ImRpc3BsYXlXaXRoIix2YWx1ZVRleHQ6InZhbHVlVGV4dCJ9LG91dHB1dHM6e2NoYW5nZToiY2hhbmdlIixpbnB1dDoiaW5wdXQiLHZhbHVlQ2hhbmdlOiJ2YWx1ZUNoYW5nZSJ9LGV4cG9ydEFzOlsibWF0U2xpZGVyIl0sZmVhdHVyZXM6W2poKFt4Sl0pLFFwXSxkZWNsczoxMyx2YXJzOjYsY29uc3RzOltbMSwibWF0LXNsaWRlci13cmFwcGVyIl0sWyJzbGlkZXJXcmFwcGVyIiwiIl0sWzEsIm1hdC1zbGlkZXItdHJhY2std3JhcHBlciJdLFsxLCJtYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQiLDMsIm5nU3R5bGUiXSxbMSwibWF0LXNsaWRlci10cmFjay1maWxsIiwzLCJuZ1N0eWxlIl0sWzEsIm1hdC1zbGlkZXItdGlja3MtY29udGFpbmVyIiwzLCJuZ1N0eWxlIl0sWzEsIm1hdC1zbGlkZXItdGlja3MiLDMsIm5nU3R5bGUiXSxbMSwibWF0LXNsaWRlci10aHVtYi1jb250YWluZXIiLDMsIm5nU3R5bGUiXSxbMSwibWF0LXNsaWRlci1mb2N1cy1yaW5nIl0sWzEsIm1hdC1zbGlkZXItdGh1bWIiXSxbMSwibWF0LXNsaWRlci10aHVtYi1sYWJlbCJdLFsxLCJtYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKENmKDAsImRpdiIsMCwxKSxDZigyLCJkaXYiLDIpLHZmKDMsImRpdiIsMyksdmYoNCwiZGl2Iiw0KSxNZigpLENmKDUsImRpdiIsNSksdmYoNiwiZGl2Iiw2KSxNZigpLENmKDcsImRpdiIsNyksdmYoOCwiZGl2Iiw4KSx2Zig5LCJkaXYiLDkpLENmKDEwLCJkaXYiLDEwKSxDZigxMSwic3BhbiIsMTEpLFB1KDEyKSxNZigpLE1mKCksTWYoKSxNZigpKSwyJmUmJihEYygzKSxiZigibmdTdHlsZSIsbi5fZ2V0VHJhY2tCYWNrZ3JvdW5kU3R5bGVzKCkpLERjKDEpLGJmKCJuZ1N0eWxlIixuLl9nZXRUcmFja0ZpbGxTdHlsZXMoKSksRGMoMSksYmYoIm5nU3R5bGUiLG4uX2dldFRpY2tzQ29udGFpbmVyU3R5bGVzKCkpLERjKDEpLGJmKCJuZ1N0eWxlIixuLl9nZXRUaWNrc1N0eWxlcygpKSxEYygxKSxiZigibmdTdHlsZSIsbi5fZ2V0VGh1bWJDb250YWluZXJTdHlsZXMoKSksRGMoNSksd3Uobi5kaXNwbGF5VmFsdWUpKX0sZGlyZWN0aXZlczpbenZdLHN0eWxlczpbJy5tYXQtc2xpZGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjhweDtvdXRsaW5lOm5vbmU7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tYXQtc2xpZGVyOm5vdCgubWF0LXNsaWRlci1kaXNhYmxlZCk6YWN0aXZlLC5tYXQtc2xpZGVyLm1hdC1zbGlkZXItc2xpZGluZzpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpe2N1cnNvcjotd2Via2l0LWdyYWJiaW5nO2N1cnNvcjpncmFiYmluZ30ubWF0LXNsaWRlci13cmFwcGVyey13ZWJraXQtcHJpbnQtY29sb3ItYWRqdXN0OmV4YWN0O2NvbG9yLWFkanVzdDpleGFjdDtwb3NpdGlvbjphYnNvbHV0ZX0ubWF0LXNsaWRlci10cmFjay13cmFwcGVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtvdmVyZmxvdzpoaWRkZW59Lm1hdC1zbGlkZXItdHJhY2stZmlsbHtwb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2Zvcm0tb3JpZ2luOjAgMDt0cmFuc2l0aW9uOnRyYW5zZm9ybSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxiYWNrZ3JvdW5kLWNvbG9yIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmR7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDEwMCU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksYmFja2dyb3VuZC1jb2xvciA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LXNsaWRlci10aWNrcy1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO292ZXJmbG93OmhpZGRlbn0ubWF0LXNsaWRlci10aWNrc3std2Via2l0LWJhY2tncm91bmQtY2xpcDpjb250ZW50LWJveDtiYWNrZ3JvdW5kLWNsaXA6Y29udGVudC1ib3g7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0O2JveC1zaXppbmc6Ym9yZGVyLWJveDtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtc2xpZGVyLXRodW1iLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjE7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1zbGlkZXItZm9jdXMtcmluZ3twb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDozMHB4O2hlaWdodDozMHB4O2JvcmRlci1yYWRpdXM6NTAlO3RyYW5zZm9ybTpzY2FsZSgwKTtvcGFjaXR5OjA7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksYmFja2dyb3VuZC1jb2xvciA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtc2xpZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcsLm1hdC1zbGlkZXIuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LXNsaWRlci1mb2N1cy1yaW5ne3RyYW5zZm9ybTpzY2FsZSgxKTtvcGFjaXR5OjF9Lm1hdC1zbGlkZXI6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKTpub3QoLm1hdC1zbGlkZXItc2xpZGluZykgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwsLm1hdC1zbGlkZXI6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKTpub3QoLm1hdC1zbGlkZXItc2xpZGluZykgLm1hdC1zbGlkZXItdGh1bWJ7Y3Vyc29yOi13ZWJraXQtZ3JhYjtjdXJzb3I6Z3JhYn0ubWF0LXNsaWRlci10aHVtYntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotMTBweDtib3R0b206LTEwcHg7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Ym9yZGVyOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjUwJTt0cmFuc2Zvcm06c2NhbGUoMC43KTt0cmFuc2l0aW9uOnRyYW5zZm9ybSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxiYWNrZ3JvdW5kLWNvbG9yIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJvcmRlci1jb2xvciA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LXNsaWRlci10aHVtYi1sYWJlbHtkaXNwbGF5Om5vbmU7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MjhweDtoZWlnaHQ6MjhweDtib3JkZXItcmFkaXVzOjUwJTt0cmFuc2l0aW9uOnRyYW5zZm9ybSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxib3JkZXItcmFkaXVzIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJhY2tncm91bmQtY29sb3IgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXNsaWRlci10aHVtYi1sYWJlbHtvdXRsaW5lOnNvbGlkIDFweH0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e3otaW5kZXg6MTtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtc2xpZGVyLXNsaWRpbmcgLm1hdC1zbGlkZXItdHJhY2stZmlsbCwubWF0LXNsaWRlci1zbGlkaW5nIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsLm1hdC1zbGlkZXItc2xpZGluZyAubWF0LXNsaWRlci10aHVtYi1jb250YWluZXJ7dHJhbnNpdGlvbi1kdXJhdGlvbjowbXN9Lm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXdpZHRoOjA7Ym9yZGVyLXN0eWxlOnNvbGlkO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1zbGlkZXItaGFzLXRpY2tzLmNkay1mb2N1c2VkOm5vdCgubWF0LXNsaWRlci1oaWRlLWxhc3QtdGljaykgLm1hdC1zbGlkZXItd3JhcHBlcjo6YWZ0ZXIsLm1hdC1zbGlkZXItaGFzLXRpY2tzOmhvdmVyOm5vdCgubWF0LXNsaWRlci1oaWRlLWxhc3QtdGljaykgLm1hdC1zbGlkZXItd3JhcHBlcjo6YWZ0ZXJ7b3BhY2l0eToxfS5tYXQtc2xpZGVyLWhhcy10aWNrcy5jZGstZm9jdXNlZDpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpIC5tYXQtc2xpZGVyLXRpY2tzLC5tYXQtc2xpZGVyLWhhcy10aWNrczpob3Zlcjpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpIC5tYXQtc2xpZGVyLXRpY2tze29wYWNpdHk6MX0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7ZGlzcGxheTpub25lfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7ZGlzcGxheTpmbGV4fS5tYXQtc2xpZGVyLWF4aXMtaW52ZXJ0ZWQgLm1hdC1zbGlkZXItdHJhY2stZmlsbHt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMTAwJX0ubWF0LXNsaWRlci1heGlzLWludmVydGVkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmR7dHJhbnNmb3JtLW9yaWdpbjowIDB9Lm1hdC1zbGlkZXI6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKS5jZGstZm9jdXNlZC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWJ7dHJhbnNmb3JtOnNjYWxlKDApfS5tYXQtc2xpZGVyOm5vdCgubWF0LXNsaWRlci1kaXNhYmxlZCkuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7Ym9yZGVyLXJhZGl1czo1MCUgNTAlIDB9Lm1hdC1zbGlkZXI6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKS5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e29wYWNpdHk6MX0ubWF0LXNsaWRlcjpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpLmNkay1tb3VzZS1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLC5tYXQtc2xpZGVyOm5vdCgubWF0LXNsaWRlci1kaXNhYmxlZCkuY2RrLXRvdWNoLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWIsLm1hdC1zbGlkZXI6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKS5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1ie2JvcmRlci13aWR0aDoycHg7dHJhbnNmb3JtOnNjYWxlKDEpfS5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7dHJhbnNmb3JtOnNjYWxlKDApO29wYWNpdHk6MH0ubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYntib3JkZXItd2lkdGg6NHB4O3RyYW5zZm9ybTpzY2FsZSgwLjUpfS5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse2Rpc3BsYXk6bm9uZX0ubWF0LXNsaWRlci1ob3Jpem9udGFse2hlaWdodDo0OHB4O21pbi13aWR0aDoxMjhweH0ubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXdyYXBwZXJ7aGVpZ2h0OjJweDt0b3A6MjNweDtsZWZ0OjhweDtyaWdodDo4cHh9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlcntoZWlnaHQ6MnB4O2JvcmRlci1sZWZ0LXdpZHRoOjJweDtyaWdodDowO3RvcDowfS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdHJhY2std3JhcHBlcntoZWlnaHQ6MnB4O3dpZHRoOjEwMCV9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10cmFjay1maWxse2hlaWdodDoycHg7d2lkdGg6MTAwJTt0cmFuc2Zvcm06c2NhbGVYKDApfS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZHtoZWlnaHQ6MnB4O3dpZHRoOjEwMCU7dHJhbnNmb3JtOnNjYWxlWCgxKX0ubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRpY2tzLWNvbnRhaW5lcntoZWlnaHQ6MnB4O3dpZHRoOjEwMCV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRpY2tzLWNvbnRhaW5lcntoZWlnaHQ6MDtvdXRsaW5lOnNvbGlkIDJweDt0b3A6MXB4fS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdGlja3N7aGVpZ2h0OjJweDt3aWR0aDoxMDAlfS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdGh1bWItY29udGFpbmVye3dpZHRoOjEwMCU7aGVpZ2h0OjA7dG9wOjUwJX0ubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7dG9wOi0xNXB4O3JpZ2h0Oi0xNXB4fS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7cmlnaHQ6LTE0cHg7dG9wOi00MHB4O3RyYW5zZm9ybTp0cmFuc2xhdGVZKDI2cHgpIHNjYWxlKDAuMDEpIHJvdGF0ZSg0NWRlZyl9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKX0ubWF0LXNsaWRlci1ob3Jpem9udGFsLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zbGlkZXItaG9yaXpvbnRhbC5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYi1sYWJlbCwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc2xpZGVyLWhvcml6b250YWwuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dHt0cmFuc2Zvcm06bm9uZX0ubWF0LXNsaWRlci12ZXJ0aWNhbHt3aWR0aDo0OHB4O21pbi1oZWlnaHQ6MTI4cHh9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItd3JhcHBlcnt3aWR0aDoycHg7dG9wOjhweDtib3R0b206OHB4O2xlZnQ6MjNweH0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlcnt3aWR0aDoycHg7Ym9yZGVyLXRvcC13aWR0aDoycHg7Ym90dG9tOjA7bGVmdDowfS5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRyYWNrLXdyYXBwZXJ7aGVpZ2h0OjEwMCU7d2lkdGg6MnB4fS5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGx7aGVpZ2h0OjEwMCU7d2lkdGg6MnB4O3RyYW5zZm9ybTpzY2FsZVkoMCl9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZHtoZWlnaHQ6MTAwJTt3aWR0aDoycHg7dHJhbnNmb3JtOnNjYWxlWSgxKX0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcy1jb250YWluZXJ7d2lkdGg6MnB4O2hlaWdodDoxMDAlfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdGlja3MtY29udGFpbmVye3dpZHRoOjA7b3V0bGluZTpzb2xpZCAycHg7bGVmdDoxcHh9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItZm9jdXMtcmluZ3tib3R0b206LTE1cHg7bGVmdDotMTVweH0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrc3t3aWR0aDoycHg7aGVpZ2h0OjEwMCV9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdGh1bWItY29udGFpbmVye2hlaWdodDoxMDAlO3dpZHRoOjA7bGVmdDo1MCV9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdGh1bWJ7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbn0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aHVtYi1sYWJlbHtib3R0b206LTE0cHg7bGVmdDotNDBweDt0cmFuc2Zvcm06dHJhbnNsYXRlWCgyNnB4KSBzY2FsZSgwLjAxKSByb3RhdGUoLTQ1ZGVnKX0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5tYXQtc2xpZGVyLXZlcnRpY2FsLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKX1bZGlyPXJ0bF0gLm1hdC1zbGlkZXItd3JhcHBlcjo6YWZ0ZXJ7bGVmdDowO3JpZ2h0OmF1dG99W2Rpcj1ydGxdIC5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdHJhY2stZmlsbHt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMTAwJX1bZGlyPXJ0bF0gLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5ke3RyYW5zZm9ybS1vcmlnaW46MCAwfVtkaXI9cnRsXSAubWF0LXNsaWRlci1ob3Jpem9udGFsLm1hdC1zbGlkZXItYXhpcy1pbnZlcnRlZCAubWF0LXNsaWRlci10cmFjay1maWxse3RyYW5zZm9ybS1vcmlnaW46MCAwfVtkaXI9cnRsXSAubWF0LXNsaWRlci1ob3Jpem9udGFsLm1hdC1zbGlkZXItYXhpcy1pbnZlcnRlZCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5ke3RyYW5zZm9ybS1vcmlnaW46MTAwJSAxMDAlfS5tYXQtc2xpZGVyLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsLm1hdC1zbGlkZXIuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCwubWF0LXNsaWRlci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlci10aWNrcywubWF0LXNsaWRlci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlci10aHVtYi1jb250YWluZXIsLm1hdC1zbGlkZXIuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zbGlkZXItZm9jdXMtcmluZywubWF0LXNsaWRlci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlci10aHVtYiwubWF0LXNsaWRlci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlci10aHVtYi1sYWJlbCwubWF0LXNsaWRlci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0LC5tYXQtc2xpZGVyLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGVyLWhhcy10aWNrcyAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlcnt0cmFuc2l0aW9uOm5vbmV9XG4nXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSx3Si5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOktofSx7dHlwZTpmRn0se3R5cGU6T2J9LHt0eXBlOnZGLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTokYSxhcmdzOlsidGFiaW5kZXgiXX1dfSx7dHlwZTptQ30se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W2NrXX1dfV0sd0oucHJvcERlY29yYXRvcnM9e2ludmVydDpbe3R5cGU6Ul99XSxtYXg6W3t0eXBlOlJffV0sbWluOlt7dHlwZTpSX31dLHN0ZXA6W3t0eXBlOlJffV0sdGh1bWJMYWJlbDpbe3R5cGU6Ul99XSx0aWNrSW50ZXJ2YWw6W3t0eXBlOlJffV0sdmFsdWU6W3t0eXBlOlJffV0sZGlzcGxheVdpdGg6W3t0eXBlOlJffV0sdmFsdWVUZXh0Olt7dHlwZTpSX31dLHZlcnRpY2FsOlt7dHlwZTpSX31dLGNoYW5nZTpbe3R5cGU6RV99XSxpbnB1dDpbe3R5cGU6RV99XSx2YWx1ZUNoYW5nZTpbe3R5cGU6RV99XSxfc2xpZGVyV3JhcHBlcjpbe3R5cGU6YXIsYXJnczpbInNsaWRlcldyYXBwZXIiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHdKLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im1hdC1zbGlkZXIiLGV4cG9ydEFzOiJtYXRTbGlkZXIiLHByb3ZpZGVyczpbeEpdLGhvc3Q6eyIoZm9jdXMpIjoiX29uRm9jdXMoKSIsIihibHVyKSI6Il9vbkJsdXIoKSIsIihrZXlkb3duKSI6Il9vbktleWRvd24oJGV2ZW50KSIsIihrZXl1cCkiOiJfb25LZXl1cCgpIiwiKG1vdXNlZW50ZXIpIjoiX29uTW91c2VlbnRlcigpIiwiKHNlbGVjdHN0YXJ0KSI6IiRldmVudC5wcmV2ZW50RGVmYXVsdCgpIixjbGFzczoibWF0LXNsaWRlciBtYXQtZm9jdXMtaW5kaWNhdG9yIixyb2xlOiJzbGlkZXIiLCJbdGFiSW5kZXhdIjoidGFiSW5kZXgiLCJbYXR0ci5hcmlhLWRpc2FibGVkXSI6ImRpc2FibGVkIiwiW2F0dHIuYXJpYS12YWx1ZW1heF0iOiJtYXgiLCJbYXR0ci5hcmlhLXZhbHVlbWluXSI6Im1pbiIsIlthdHRyLmFyaWEtdmFsdWVub3ddIjoidmFsdWUiLCJbYXR0ci5hcmlhLXZhbHVldGV4dF0iOiJ2YWx1ZVRleHQgPT0gbnVsbCA/IGRpc3BsYXlWYWx1ZSA6IHZhbHVlVGV4dCIsIlthdHRyLmFyaWEtb3JpZW50YXRpb25dIjondmVydGljYWwgPyAidmVydGljYWwiIDogImhvcml6b250YWwiJywiW2NsYXNzLm1hdC1zbGlkZXItZGlzYWJsZWRdIjoiZGlzYWJsZWQiLCJbY2xhc3MubWF0LXNsaWRlci1oYXMtdGlja3NdIjoidGlja0ludGVydmFsIiwiW2NsYXNzLm1hdC1zbGlkZXItaG9yaXpvbnRhbF0iOiIhdmVydGljYWwiLCJbY2xhc3MubWF0LXNsaWRlci1heGlzLWludmVydGVkXSI6Il9zaG91bGRJbnZlcnRBeGlzKCkiLCJbY2xhc3MubWF0LXNsaWRlci1pbnZlcnQtbW91c2UtY29vcmRzXSI6Il9zaG91bGRJbnZlcnRNb3VzZUNvb3JkcygpIiwiW2NsYXNzLm1hdC1zbGlkZXItc2xpZGluZ10iOiJfaXNTbGlkaW5nIiwiW2NsYXNzLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZ10iOiJ0aHVtYkxhYmVsIiwiW2NsYXNzLm1hdC1zbGlkZXItdmVydGljYWxdIjoidmVydGljYWwiLCJbY2xhc3MubWF0LXNsaWRlci1taW4tdmFsdWVdIjoiX2lzTWluVmFsdWUoKSIsIltjbGFzcy5tYXQtc2xpZGVyLWhpZGUtbGFzdC10aWNrXSI6ImRpc2FibGVkIHx8IF9pc01pblZhbHVlKCkgJiYgX2dldFRodW1iR2FwKCkgJiYgX3Nob3VsZEludmVydEF4aXMoKSIsIltjbGFzcy5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZV0iOidfYW5pbWF0aW9uTW9kZSA9PT0gIk5vb3BBbmltYXRpb25zIid9LHRlbXBsYXRlOic8ZGl2IGNsYXNzPSJtYXQtc2xpZGVyLXdyYXBwZXIiICNzbGlkZXJXcmFwcGVyPlxuICA8ZGl2IGNsYXNzPSJtYXQtc2xpZGVyLXRyYWNrLXdyYXBwZXIiPlxuICAgIDxkaXYgY2xhc3M9Im1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCIgW25nU3R5bGVdPSJfZ2V0VHJhY2tCYWNrZ3JvdW5kU3R5bGVzKCkiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9Im1hdC1zbGlkZXItdHJhY2stZmlsbCIgW25nU3R5bGVdPSJfZ2V0VHJhY2tGaWxsU3R5bGVzKCkiPjwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz0ibWF0LXNsaWRlci10aWNrcy1jb250YWluZXIiIFtuZ1N0eWxlXT0iX2dldFRpY2tzQ29udGFpbmVyU3R5bGVzKCkiPlxuICAgIDxkaXYgY2xhc3M9Im1hdC1zbGlkZXItdGlja3MiIFtuZ1N0eWxlXT0iX2dldFRpY2tzU3R5bGVzKCkiPjwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz0ibWF0LXNsaWRlci10aHVtYi1jb250YWluZXIiIFtuZ1N0eWxlXT0iX2dldFRodW1iQ29udGFpbmVyU3R5bGVzKCkiPlxuICAgIDxkaXYgY2xhc3M9Im1hdC1zbGlkZXItZm9jdXMtcmluZyI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz0ibWF0LXNsaWRlci10aHVtYiI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz0ibWF0LXNsaWRlci10aHVtYi1sYWJlbCI+XG4gICAgICA8c3BhbiBjbGFzcz0ibWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0Ij57e2Rpc3BsYXlWYWx1ZX19PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuJyxpbnB1dHM6WyJkaXNhYmxlZCIsImNvbG9yIiwidGFiSW5kZXgiXSxlbmNhcHN1bGF0aW9uOlduLk5vbmUsY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaCxzdHlsZXM6WycubWF0LXNsaWRlcntkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzo4cHg7b3V0bGluZTpub25lO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ubWF0LXNsaWRlcjpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpOmFjdGl2ZSwubWF0LXNsaWRlci5tYXQtc2xpZGVyLXNsaWRpbmc6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKXtjdXJzb3I6LXdlYmtpdC1ncmFiYmluZztjdXJzb3I6Z3JhYmJpbmd9Lm1hdC1zbGlkZXItd3JhcHBlcnstd2Via2l0LXByaW50LWNvbG9yLWFkanVzdDpleGFjdDtjb2xvci1hZGp1c3Q6ZXhhY3Q7cG9zaXRpb246YWJzb2x1dGV9Lm1hdC1zbGlkZXItdHJhY2std3JhcHBlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7b3ZlcmZsb3c6aGlkZGVufS5tYXQtc2xpZGVyLXRyYWNrLWZpbGx7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtLW9yaWdpbjowIDA7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksYmFja2dyb3VuZC1jb2xvciA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5ke3Bvc2l0aW9uOmFic29sdXRlO3RyYW5zZm9ybS1vcmlnaW46MTAwJSAxMDAlO3RyYW5zaXRpb246dHJhbnNmb3JtIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJhY2tncm91bmQtY29sb3IgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1zbGlkZXItdGlja3MtY29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtvdmVyZmxvdzpoaWRkZW59Lm1hdC1zbGlkZXItdGlja3N7LXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6Y29udGVudC1ib3g7YmFja2dyb3VuZC1jbGlwOmNvbnRlbnQtYm94O2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdDtib3gtc2l6aW5nOmJvcmRlci1ib3g7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LXNsaWRlci10aHVtYi1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxO3RyYW5zaXRpb246dHJhbnNmb3JtIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MzBweDtoZWlnaHQ6MzBweDtib3JkZXItcmFkaXVzOjUwJTt0cmFuc2Zvcm06c2NhbGUoMCk7b3BhY2l0eTowO3RyYW5zaXRpb246dHJhbnNmb3JtIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpLGJhY2tncm91bmQtY29sb3IgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksb3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LXNsaWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LXNsaWRlci1mb2N1cy1yaW5nLC5tYXQtc2xpZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1zbGlkZXItZm9jdXMtcmluZ3t0cmFuc2Zvcm06c2NhbGUoMSk7b3BhY2l0eToxfS5tYXQtc2xpZGVyOm5vdCgubWF0LXNsaWRlci1kaXNhYmxlZCk6bm90KC5tYXQtc2xpZGVyLXNsaWRpbmcpIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLC5tYXQtc2xpZGVyOm5vdCgubWF0LXNsaWRlci1kaXNhYmxlZCk6bm90KC5tYXQtc2xpZGVyLXNsaWRpbmcpIC5tYXQtc2xpZGVyLXRodW1ie2N1cnNvcjotd2Via2l0LWdyYWI7Y3Vyc29yOmdyYWJ9Lm1hdC1zbGlkZXItdGh1bWJ7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6LTEwcHg7Ym90dG9tOi0xMHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2JvcmRlcjozcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czo1MCU7dHJhbnNmb3JtOnNjYWxlKDAuNyk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksYmFja2dyb3VuZC1jb2xvciA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxib3JkZXItY29sb3IgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSl9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWx7ZGlzcGxheTpub25lO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjI4cHg7aGVpZ2h0OjI4cHg7Ym9yZGVyLXJhZGl1czo1MCU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSksYm9yZGVyLXJhZGl1cyA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSxiYWNrZ3JvdW5kLWNvbG9yIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7b3V0bGluZTpzb2xpZCAxcHh9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dHt6LWluZGV4OjE7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKX0ubWF0LXNsaWRlci1zbGlkaW5nIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsLm1hdC1zbGlkZXItc2xpZGluZyAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLC5tYXQtc2xpZGVyLXNsaWRpbmcgLm1hdC1zbGlkZXItdGh1bWItY29udGFpbmVye3RyYW5zaXRpb24tZHVyYXRpb246MG1zfS5tYXQtc2xpZGVyLWhhcy10aWNrcyAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci13aWR0aDowO2JvcmRlci1zdHlsZTpzb2xpZDtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpfS5tYXQtc2xpZGVyLWhhcy10aWNrcy5jZGstZm9jdXNlZDpub3QoLm1hdC1zbGlkZXItaGlkZS1sYXN0LXRpY2spIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVyLC5tYXQtc2xpZGVyLWhhcy10aWNrczpob3Zlcjpub3QoLm1hdC1zbGlkZXItaGlkZS1sYXN0LXRpY2spIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVye29wYWNpdHk6MX0ubWF0LXNsaWRlci1oYXMtdGlja3MuY2RrLWZvY3VzZWQ6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKSAubWF0LXNsaWRlci10aWNrcywubWF0LXNsaWRlci1oYXMtdGlja3M6aG92ZXI6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKSAubWF0LXNsaWRlci10aWNrc3tvcGFjaXR5OjF9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci1mb2N1cy1yaW5ne2Rpc3BsYXk6bm9uZX0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse2Rpc3BsYXk6ZmxleH0ubWF0LXNsaWRlci1heGlzLWludmVydGVkIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGx7dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDEwMCV9Lm1hdC1zbGlkZXItYXhpcy1pbnZlcnRlZCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5ke3RyYW5zZm9ybS1vcmlnaW46MCAwfS5tYXQtc2xpZGVyOm5vdCgubWF0LXNsaWRlci1kaXNhYmxlZCkuY2RrLWZvY3VzZWQubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIC5tYXQtc2xpZGVyLXRodW1ie3RyYW5zZm9ybTpzY2FsZSgwKX0ubWF0LXNsaWRlcjpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse2JvcmRlci1yYWRpdXM6NTAlIDUwJSAwfS5tYXQtc2xpZGVyOm5vdCgubWF0LXNsaWRlci1kaXNhYmxlZCkuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dHtvcGFjaXR5OjF9Lm1hdC1zbGlkZXI6bm90KC5tYXQtc2xpZGVyLWRpc2FibGVkKS5jZGstbW91c2UtZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYiwubWF0LXNsaWRlcjpub3QoLm1hdC1zbGlkZXItZGlzYWJsZWQpLmNkay10b3VjaC1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLC5tYXQtc2xpZGVyOm5vdCgubWF0LXNsaWRlci1kaXNhYmxlZCkuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYntib3JkZXItd2lkdGg6MnB4O3RyYW5zZm9ybTpzY2FsZSgxKX0ubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci1mb2N1cy1yaW5ne3RyYW5zZm9ybTpzY2FsZSgwKTtvcGFjaXR5OjB9Lm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWJ7Ym9yZGVyLXdpZHRoOjRweDt0cmFuc2Zvcm06c2NhbGUoMC41KX0ubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYi1sYWJlbHtkaXNwbGF5Om5vbmV9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbHtoZWlnaHQ6NDhweDttaW4td2lkdGg6MTI4cHh9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci13cmFwcGVye2hlaWdodDoycHg7dG9wOjIzcHg7bGVmdDo4cHg7cmlnaHQ6OHB4fS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItd3JhcHBlcjo6YWZ0ZXJ7aGVpZ2h0OjJweDtib3JkZXItbGVmdC13aWR0aDoycHg7cmlnaHQ6MDt0b3A6MH0ubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRyYWNrLXdyYXBwZXJ7aGVpZ2h0OjJweDt3aWR0aDoxMDAlfS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdHJhY2stZmlsbHtoZWlnaHQ6MnB4O3dpZHRoOjEwMCU7dHJhbnNmb3JtOnNjYWxlWCgwKX0ubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmR7aGVpZ2h0OjJweDt3aWR0aDoxMDAlO3RyYW5zZm9ybTpzY2FsZVgoMSl9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcy1jb250YWluZXJ7aGVpZ2h0OjJweDt3aWR0aDoxMDAlfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcy1jb250YWluZXJ7aGVpZ2h0OjA7b3V0bGluZTpzb2xpZCAycHg7dG9wOjFweH0ubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRpY2tze2hlaWdodDoycHg7d2lkdGg6MTAwJX0ubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRodW1iLWNvbnRhaW5lcnt3aWR0aDoxMDAlO2hlaWdodDowO3RvcDo1MCV9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci1mb2N1cy1yaW5ne3RvcDotMTVweDtyaWdodDotMTVweH0ubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse3JpZ2h0Oi0xNHB4O3RvcDotNDBweDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgyNnB4KSBzY2FsZSgwLjAxKSByb3RhdGUoNDVkZWcpfS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dHt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9Lm1hdC1zbGlkZXItaG9yaXpvbnRhbC5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYi1sYWJlbHt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc2xpZGVyLWhvcml6b250YWwuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwsLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXNsaWRlci1ob3Jpem9udGFsLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHR7dHJhbnNmb3JtOm5vbmV9Lm1hdC1zbGlkZXItdmVydGljYWx7d2lkdGg6NDhweDttaW4taGVpZ2h0OjEyOHB4fS5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXdyYXBwZXJ7d2lkdGg6MnB4O3RvcDo4cHg7Ym90dG9tOjhweDtsZWZ0OjIzcHh9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItd3JhcHBlcjo6YWZ0ZXJ7d2lkdGg6MnB4O2JvcmRlci10b3Atd2lkdGg6MnB4O2JvdHRvbTowO2xlZnQ6MH0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10cmFjay13cmFwcGVye2hlaWdodDoxMDAlO3dpZHRoOjJweH0ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10cmFjay1maWxse2hlaWdodDoxMDAlO3dpZHRoOjJweDt0cmFuc2Zvcm06c2NhbGVZKDApfS5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmR7aGVpZ2h0OjEwMCU7d2lkdGg6MnB4O3RyYW5zZm9ybTpzY2FsZVkoMSl9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdGlja3MtY29udGFpbmVye3dpZHRoOjJweDtoZWlnaHQ6MTAwJX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRpY2tzLWNvbnRhaW5lcnt3aWR0aDowO291dGxpbmU6c29saWQgMnB4O2xlZnQ6MXB4fS5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmd7Ym90dG9tOi0xNXB4O2xlZnQ6LTE1cHh9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdGlja3N7d2lkdGg6MnB4O2hlaWdodDoxMDAlfS5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRodW1iLWNvbnRhaW5lcntoZWlnaHQ6MTAwJTt3aWR0aDowO2xlZnQ6NTAlfS5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRodW1iey13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW59Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7Ym90dG9tOi0xNHB4O2xlZnQ6LTQwcHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjZweCkgc2NhbGUoMC4wMSkgcm90YXRlKC00NWRlZyl9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dHt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0ubWF0LXNsaWRlci12ZXJ0aWNhbC5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYi1sYWJlbHt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9W2Rpcj1ydGxdIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVye2xlZnQ6MDtyaWdodDphdXRvfVtkaXI9cnRsXSAubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGx7dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDEwMCV9W2Rpcj1ydGxdIC5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZHt0cmFuc2Zvcm0tb3JpZ2luOjAgMH1bZGlyPXJ0bF0gLm1hdC1zbGlkZXItaG9yaXpvbnRhbC5tYXQtc2xpZGVyLWF4aXMtaW52ZXJ0ZWQgLm1hdC1zbGlkZXItdHJhY2stZmlsbHt0cmFuc2Zvcm0tb3JpZ2luOjAgMH1bZGlyPXJ0bF0gLm1hdC1zbGlkZXItaG9yaXpvbnRhbC5tYXQtc2xpZGVyLWF4aXMtaW52ZXJ0ZWQgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZHt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMTAwJX0ubWF0LXNsaWRlci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlci10cmFjay1maWxsLC5tYXQtc2xpZGVyLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsLm1hdC1zbGlkZXIuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zbGlkZXItdGlja3MsLm1hdC1zbGlkZXIuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zbGlkZXItdGh1bWItY29udGFpbmVyLC5tYXQtc2xpZGVyLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcsLm1hdC1zbGlkZXIuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zbGlkZXItdGh1bWIsLm1hdC1zbGlkZXIuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwsLm1hdC1zbGlkZXIuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCwubWF0LXNsaWRlci5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlci1oYXMtdGlja3MgLm1hdC1zbGlkZXItd3JhcHBlcjo6YWZ0ZXJ7dHJhbnNpdGlvbjpub25lfVxuJ119XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpLaH0se3R5cGU6ZkZ9LHt0eXBlOk9ifSx7dHlwZTp2RixkZWNvcmF0b3JzOlt7dHlwZTpCcn1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6JGEsYXJnczpbInRhYmluZGV4Il19XX0se3R5cGU6bUN9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltja119XX1dfSkse2NoYW5nZTpbe3R5cGU6RV99XSxpbnB1dDpbe3R5cGU6RV99XSx2YWx1ZUNoYW5nZTpbe3R5cGU6RV99XSxpbnZlcnQ6W3t0eXBlOlJffV0sbWF4Olt7dHlwZTpSX31dLG1pbjpbe3R5cGU6Ul99XSxzdGVwOlt7dHlwZTpSX31dLHRodW1iTGFiZWw6W3t0eXBlOlJffV0sdGlja0ludGVydmFsOlt7dHlwZTpSX31dLHZhbHVlOlt7dHlwZTpSX31dLHZlcnRpY2FsOlt7dHlwZTpSX31dLGRpc3BsYXlXaXRoOlt7dHlwZTpSX31dLHZhbHVlVGV4dDpbe3R5cGU6Ul99XSxfc2xpZGVyV3JhcHBlcjpbe3R5cGU6YXIsYXJnczpbInNsaWRlcldyYXBwZXIiXX1dfSk7Y2xhc3MgUkp7fVJKLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxSSil9LFJKLsm1bW9kPWZvKHt0eXBlOlJKfSksUkouybVpbmo9RG4oe2ltcG9ydHM6W1tyeCxORl0sTkZdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihSSixbe3R5cGU6TF8sYXJnczpbe2ltcG9ydHM6W3J4LE5GXSxleHBvcnRzOlt3SixORl0sZGVjbGFyYXRpb25zOlt3Sl19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhSSix7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW3dKXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltyeCxORl19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bd0osTkZdfX0pO2NvbnN0IEVKPXsxOToiZmxvYXQxNiIsMToiZmxvYXQzMiIsMjoiZmxvYXQ2NCIsMzoiaW50MzIiLDQ6InVpbnQ4IiwxNzoidWludDE2IiwyMjoidWludDMyIiwyMzoidWludDY0Iiw1OiJpbnQxNiIsNjoiaW50OCIsNzoic3RyaW5nIiw4OiJjb21wbGV4NjQiLDE4OiJjb21wbGV4MTI4Iiw5OiJpbnQ2NCIsMTA6ImJvb2wiLDExOiJxaW50OCIsMTI6InF1aW50OCIsMTU6InFpbnQxNiIsMTY6InF1aW50MTYiLDEzOiJxaW50MzIiLDE0OiJiZmxvYXQxNiIsMjA6InJlc291cmNlIiwyMToidmFyaWFudCIsMTE5OiJmbG9hdDE2X3JlZiIsMTAxOiJmbG9hdDMyX3JlZiIsMTAyOiJmbG9hdDY0X3JlZiIsMTAzOiJpbnQzMl9yZWYiLDEyMjoidWludDMyX3JlZiIsMTA0OiJ1aW50OF9yZWYiLDExNzoidWludDE2X3JlZiIsMTA1OiJpbnQxNl9yZWYiLDEwNjoiaW50OF9yZWYiLDEwNzoic3RyaW5nX3JlZiIsMTA4OiJjb21wbGV4NjRfcmVmIiwxMTg6ImNvbXBsZXgxMjhfcmVmIiwxMDk6ImludDY0X3JlZiIsMTIzOiJ1aW50NjRfcmVmIiwxMTA6ImJvb2xfcmVmIiwxMTE6InFpbnQ4X3JlZiIsMTEyOiJxdWludDhfcmVmIiwxMTU6InFpbnQxNl9yZWYiLDExNjoicXVpbnQxNl9yZWYiLDExMzoicWludDMyX3JlZiIsMTE0OiJiZmxvYXQxNl9yZWYiLDEyMDoicmVzb3VyY2VfcmVmIiwxMjE6InZhcmlhbnRfcmVmIn07ZnVuY3Rpb24gQUoodCl7Y29uc3R7dGVuc29yRGVidWdNb2RlOmUsYXJyYXk6bn09dDtzd2l0Y2goZSl7Y2FzZSBzSy5OT19URU5TT1I6aWYobnVsbCE9PW4pdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkbHkgcmVjZWl2ZWQgbm9uLW51bGwgZGVidWctdGVuc29yLXZhbHVlIGFycmF5IHVuZGVyIE5PX1RFTlNPUiBtb2RlIik7cmV0dXJue307Y2FzZSBzSy5DVVJUX0hFQUxUSDppZihudWxsPT09bnx8MiE9PW4ubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgVW5kZXIgQ1VSVF9IRUFMVEggbW9kZSwgZXhwZWN0ZWQgZGVidWctdGVuc29yLXZhbHVlIGFycmF5IHRvIGhhdmUgbGVuZ3RoIDIsIGJ1dCBnb3QgJHtKU09OLnN0cmluZ2lmeShuKX1gKTtyZXR1cm57aGFzSW5mT3JOYU46Qm9vbGVhbihuWzFdKX07Y2FzZSBzSy5DT05DSVNFX0hFQUxUSDp7aWYobnVsbD09PW58fDUhPT1uLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYFVuZGVyIENPTkNJU0VfSEVBTFRIIG1vZGUsIGV4cGVjdGVkIGRlYnVnLXRlbnNvci12YWx1ZSBhcnJheSB0byBoYXZlIGxlbmd0aCA1LCBidXQgZ290ICR7SlNPTi5zdHJpbmdpZnkobil9YCk7Y29uc3QgdD17c2l6ZTpuWzFdfTtyZXR1cm4gblsyXT4wJiYodC5udW1OZWdhdGl2ZUluZnM9blsyXSksblszXT4wJiYodC5udW1Qb3NpdGl2ZUluZnM9blszXSksbls0XT4wJiYodC5udW1OYU5zPW5bNF0pLHR9Y2FzZSBzSy5TSEFQRTp7aWYobnVsbD09PW58fDEwIT09bi5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBVbmRlciBTSEFQRSBtb2RlLCBleHBlY3RlZCBkZWJ1Zy10ZW5zb3ItdmFsdWUgYXJyYXkgdG8gaGF2ZSBsZW5ndGggMTAsIGJ1dCBnb3QgJHtKU09OLnN0cmluZ2lmeShuKX1gKTtjb25zdCB0PW5bMl07bGV0IGU9bi5zbGljZSg0LE1hdGgubWluKDQrdCxuLmxlbmd0aCkpO3JldHVybiBlLmxlbmd0aDx0JiYoZT1uZXcgQXJyYXkodC1lLmxlbmd0aCkuY29uY2F0KGUpKSx7ZHR5cGU6RUpbblsxXV0scmFuazp0LHNpemU6blszXSxzaGFwZTplfX1jYXNlIHNLLkZVTExfSEVBTFRIOntpZihudWxsPT09bnx8MTEhPT1uLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYFVuZGVyIEZVTExfSEVBTFRIIG1vZGUsIGV4cGVjdGVkIGRlYnVnLXRlbnNvci12YWx1ZSBhcnJheSB0byBoYXZlIGxlbmd0aCAxMSwgYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KG4pfWApO2NvbnN0IHQ9e2R0eXBlOkVKW25bMl1dLHJhbms6blszXSxzaXplOm5bNF19O3JldHVybiBuWzVdPjAmJih0Lm51bU5lZ2F0aXZlSW5mcz1uWzVdKSxuWzZdPjAmJih0Lm51bVBvc2l0aXZlSW5mcz1uWzZdKSxuWzddPjAmJih0Lm51bU5hTnM9bls3XSksbls4XT4wJiYodC5udW1OZWdhdGl2ZUZpbml0ZXM9bls4XSksbls5XT4wJiYodC5udW1aZXJvcz1uWzldKSxuWzEwXT4wJiYodC5udW1Qb3NpdGl2ZUZpbml0ZXM9blsxMF0pLHR9Y2FzZSBzSy5GVUxMX1RFTlNPUjppZihudWxsIT09bil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWRseSByZWNlaXZlZCBub24tbnVsbCBkZWJ1Zy10ZW5zb3ItdmFsdWUgYXJyYXkgdW5kZXIgRlVMTF9URU5TT1IgbW9kZSIpO3JldHVybnt9O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBVbnJlY29nbml6ZWQgdGVuc29yRGVidWdNb2RlOiAke2V9YCl9fWNvbnN0IFRKPSJbX25naG9zdC0lQ09NUCVdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTNlNWU4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nLCBtb25vc3BhY2U7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICAgIG1hcmdpbjogMCAycHg7XG4gICAgcGFkZGluZzogMXB4IDNweDtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gIH0iO2Z1bmN0aW9uIE5KKHQsZSl7MSZ0JiZ2ZigwLCJkaXYiLDQpfWZ1bmN0aW9uIHpKKHQsZSl7aWYoMSZ0JiYoQ2YoMCwiZGl2Iiw3KSxDZigxLCJzcGFuIiw4KSxQdSgyLCJOYU4iKSxNZigpLENmKDMsInNwYW4iLDkpLFB1KDQpLE1mKCksTWYoKSksMiZ0KXtjb25zdCB0PXpmKDIpO0RjKDQpLGt1KCLDlyIsdC5udW1OYU5zLCIiKX19ZnVuY3Rpb24gSUoodCxlKXtpZigxJnQmJihDZigwLCJkaXYiLDcpLENmKDEsInNwYW4iLDgpLFB1KDIsIi3iiJ4iKSxNZigpLENmKDMsInNwYW4iLDkpLFB1KDQpLE1mKCksTWYoKSksMiZ0KXtjb25zdCB0PXpmKDIpO0RjKDQpLGt1KCLDlyIsdC5udW1OZWdhdGl2ZUluZnMsIiIpfX1mdW5jdGlvbiBISih0LGUpe2lmKDEmdCYmKENmKDAsImRpdiIsNyksQ2YoMSwic3BhbiIsOCksUHUoMiwiK+KIniIpLE1mKCksQ2YoMywic3BhbiIsOSksUHUoNCksTWYoKSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoMik7RGMoNCksa3UoIsOXIix0Lm51bVBvc2l0aXZlSW5mcywiIil9fWZ1bmN0aW9uIEZKKHQsZSl7aWYoMSZ0JiYoQ2YoMCwiZGl2Iiw3KSxDZigxLCJzcGFuIiwxMCksUHUoMiwiLSIpLE1mKCksQ2YoMywic3BhbiIsOSksUHUoNCksTWYoKSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoMik7RGMoNCksa3UoIsOXIix0Lm51bU5lZ2F0aXZlRmluaXRlcywiIil9fWZ1bmN0aW9uIExKKHQsZSl7aWYoMSZ0JiYoQ2YoMCwiZGl2Iiw3KSxDZigxLCJzcGFuIiwxMCksUHUoMiwiMCIpLE1mKCksQ2YoMywic3BhbiIsOSksUHUoNCksTWYoKSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoMik7RGMoNCksa3UoIsOXIix0Lm51bVplcm9zLCIiKX19ZnVuY3Rpb24gQkoodCxlKXtpZigxJnQmJihDZigwLCJkaXYiLDcpLENmKDEsInNwYW4iLDEwKSxQdSgyLCIrIiksTWYoKSxDZigzLCJzcGFuIiw5KSxQdSg0KSxNZigpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigyKTtEYyg0KSxrdSgiw5ciLHQubnVtUG9zaXRpdmVGaW5pdGVzLCIiKX19ZnVuY3Rpb24gVkoodCxlKXtpZigxJnQmJihDZigwLCJkaXYiLDUpLEhtKDEsekosNSwxLCJkaXYiLDYpLEhtKDIsSUosNSwxLCJkaXYiLDYpLEhtKDMsSEosNSwxLCJkaXYiLDYpLEhtKDQsRkosNSwxLCJkaXYiLDYpLEhtKDUsTEosNSwxLCJkaXYiLDYpLEhtKDYsQkosNSwxLCJkaXYiLDYpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigpO0RjKDEpLGJmKCJuZ0lmIix2b2lkIDAhPT10Lm51bU5hTnMmJnQubnVtTmFOcz4wKSxEYygxKSxiZigibmdJZiIsdm9pZCAwIT09dC5udW1OZWdhdGl2ZUluZnMmJnQubnVtTmVnYXRpdmVJbmZzPjApLERjKDEpLGJmKCJuZ0lmIix2b2lkIDAhPT10Lm51bVBvc2l0aXZlSW5mcyYmdC5udW1Qb3NpdGl2ZUluZnM+MCksRGMoMSksYmYoIm5nSWYiLHZvaWQgMCE9PXQubnVtTmVnYXRpdmVGaW5pdGVzJiZ0Lm51bU5lZ2F0aXZlRmluaXRlcz4wKSxEYygxKSxiZigibmdJZiIsdm9pZCAwIT09dC5udW1aZXJvcyYmdC5udW1aZXJvcz4wKSxEYygxKSxiZigibmdJZiIsdm9pZCAwIT09dC5udW1Qb3NpdGl2ZUZpbml0ZXMmJnQubnVtUG9zaXRpdmVGaW5pdGVzPjApfX1jb25zdCBqSj1mdW5jdGlvbih0KXtyZXR1cm5bImNvbnRhaW5lciIsdF19O2Z1bmN0aW9uIFVKKHQsZSl7aWYoMSZ0JiZ2ZigwLCJkZWJ1Zy10ZW5zb3ItZHR5cGUiLDUpLDImdCl7YmYoImR0eXBlIix6ZigpLmRlYnVnVGVuc29yVmFsdWUuZHR5cGUpfX1mdW5jdGlvbiBXSih0LGUpe2lmKDEmdCYmdmYoMCwiZGVidWctdGVuc29yLXJhbmsiLDYpLDImdCl7YmYoInJhbmsiLHpmKCkuZGVidWdUZW5zb3JWYWx1ZS5yYW5rKX19ZnVuY3Rpb24gR0oodCxlKXtpZigxJnQmJnZmKDAsImRlYnVnLXRlbnNvci1zaGFwZSIsNyksMiZ0KXtiZigic2hhcGUiLHpmKCkuZGVidWdUZW5zb3JWYWx1ZS5zaGFwZSl9fWZ1bmN0aW9uIFlKKHQsZSl7aWYoMSZ0JiZ2ZigwLCJkZWJ1Zy10ZW5zb3ItaGFzLWluZi1vci1uYW4iLDgpLDImdCl7YmYoImhhc0luZk9yTmFOIix6ZigpLmRlYnVnVGVuc29yVmFsdWUuaGFzSW5mT3JOYU4pfX1mdW5jdGlvbiBxSih0LGUpe2lmKDEmdCYmdmYoMCwiZGVidWctdGVuc29yLW51bWVyaWMtYnJlYWtkb3duIiw5KSwyJnQpe2NvbnN0IHQ9emYoKTtMZigic2l6ZSIsdC5kZWJ1Z1RlbnNvclZhbHVlLnNpemUpLGJmKCJudW1OZWdhdGl2ZUluZnMiLHQuZGVidWdUZW5zb3JWYWx1ZS5udW1OZWdhdGl2ZUluZnMpKCJudW1Qb3NpdGl2ZUluZnMiLHQuZGVidWdUZW5zb3JWYWx1ZS5udW1Qb3NpdGl2ZUluZnMpKCJudW1OYU5zIix0LmRlYnVnVGVuc29yVmFsdWUubnVtTmFOcykoIm51bU5lZ2F0aXZlRmluaXRlcyIsdC5kZWJ1Z1RlbnNvclZhbHVlLm51bU5lZ2F0aXZlRmluaXRlcykoIm51bVplcm9zIix0LmRlYnVnVGVuc29yVmFsdWUubnVtWmVyb3MpKCJudW1Qb3NpdGl2ZUZpbml0ZXMiLHQuZGVidWdUZW5zb3JWYWx1ZS5udW1Qb3NpdGl2ZUZpbml0ZXMpfX1jb25zdCBaSj0iXG4gIDpob3N0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTNlNWU4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvIE1vbm8nLCBtb25vc3BhY2U7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICAgIG1hcmdpbjogMCAycHg7XG4gICAgcGFkZGluZzogMXB4IDNweDtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gIH1cbiI7Y2xhc3MgWEp7fVhKLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxYSil9LFhKLsm1Y21wPXNvKHt0eXBlOlhKLHNlbGVjdG9yczpbWyJkZWJ1Zy10ZW5zb3ItZHR5cGUiXV0saW5wdXRzOntkdHlwZToiZHR5cGUifSxkZWNsczoxLHZhcnM6MSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZQdSgwKSwyJmUmJmt1KCIgIixuLmR0eXBlLCIgIil9LHN0eWxlczpbVEpdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihYSixbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJkZWJ1Zy10ZW5zb3ItZHR5cGUiLHRlbXBsYXRlOiIge3sgZHR5cGUgfX0gIixzdHlsZXM6W1pKXX1dfV0sbnVsbCx7ZHR5cGU6W3t0eXBlOlJffV19KTtjbGFzcyBLSnt9S0ouybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEtKKX0sS0ouybVjbXA9c28oe3R5cGU6S0osc2VsZWN0b3JzOltbImRlYnVnLXRlbnNvci1yYW5rIl1dLGlucHV0czp7cmFuazoicmFuayJ9LGRlY2xzOjEsdmFyczoxLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlB1KDApLDImZSYma3UoIiAiLG4ucmFuaywiRCAiKX0sc3R5bGVzOltUSl19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEtKLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6ImRlYnVnLXRlbnNvci1yYW5rIix0ZW1wbGF0ZToiIHt7IHJhbmsgfX1EICIsc3R5bGVzOltaSl19XX1dLG51bGwse3Jhbms6W3t0eXBlOlJffV19KTtjbGFzcyBKSntnZXQgc2hhcGVTdHJpbmcoKXtyZXR1cm4iWyIrdGhpcy5zaGFwZS5tYXAoKHQ9PnZvaWQgMD09PXQ/Ij8iOlN0cmluZyh0KSkpLmpvaW4oIiwiKSsiXSJ9fUpKLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxKSil9LEpKLsm1Y21wPXNvKHt0eXBlOkpKLHNlbGVjdG9yczpbWyJkZWJ1Zy10ZW5zb3Itc2hhcGUiXV0saW5wdXRzOntzaGFwZToic2hhcGUifSxkZWNsczoxLHZhcnM6MSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZQdSgwKSwyJmUmJmt1KCIgc2hhcGU6IixuLnNoYXBlU3RyaW5nLCIgIil9LHN0eWxlczpbVEpdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihKSixbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJkZWJ1Zy10ZW5zb3Itc2hhcGUiLHRlbXBsYXRlOiIgc2hhcGU6e3sgc2hhcGVTdHJpbmcgfX0gIixzdHlsZXM6W1pKXX1dfV0sbnVsbCx7c2hhcGU6W3t0eXBlOlJffV19KTtjbGFzcyBRSntnZXQgYnJlYWtkb3duRXhpc3RzKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMubnVtTmFOc3x8dm9pZCAwIT09dGhpcy5udW1OZWdhdGl2ZUluZnN8fHZvaWQgMCE9PXRoaXMubnVtUG9zaXRpdmVJbmZzfHx2b2lkIDAhPT10aGlzLm51bU5lZ2F0aXZlRmluaXRlc3x8dm9pZCAwIT09dGhpcy5udW1aZXJvc3x8dm9pZCAwIT09dGhpcy5udW1Qb3NpdGl2ZUZpbml0ZXN9fVFKLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxRSil9LFFKLsm1Y21wPXNvKHt0eXBlOlFKLHNlbGVjdG9yczpbWyJkZWJ1Zy10ZW5zb3ItbnVtZXJpYy1icmVha2Rvd24iXV0saW5wdXRzOntzaXplOiJzaXplIixudW1OYU5zOiJudW1OYU5zIixudW1OZWdhdGl2ZUluZnM6Im51bU5lZ2F0aXZlSW5mcyIsbnVtUG9zaXRpdmVJbmZzOiJudW1Qb3NpdGl2ZUluZnMiLG51bU5lZ2F0aXZlRmluaXRlczoibnVtTmVnYXRpdmVGaW5pdGVzIixudW1aZXJvczoibnVtWmVyb3MiLG51bVBvc2l0aXZlRmluaXRlczoibnVtUG9zaXRpdmVGaW5pdGVzIn0sZGVjbHM6Nyx2YXJzOjMsY29uc3RzOltbMSwic2l6ZSJdLFsxLCJzaXplLXZhbHVlIl0sWyJjbGFzcyIsImJyZWFrIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImJyZWFrZG93biIsNCwibmdJZiJdLFsxLCJicmVhayJdLFsxLCJicmVha2Rvd24iXSxbImNsYXNzIiwiY2F0ZWdvcnkiLDQsIm5nSWYiXSxbMSwiY2F0ZWdvcnkiXSxbMSwiY2F0ZWdvcnktdGFnIiwiaW5maW5pdGUiXSxbMSwiY2F0ZWdvcnktY291bnQiXSxbMSwiY2F0ZWdvcnktdGFnIiwiZmluaXRlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJkaXYiLDApLENmKDEsInNwYW4iKSxQdSgyLCJzaXplOiIpLE1mKCksQ2YoMywic3BhbiIsMSksUHUoNCksTWYoKSxNZigpLEhtKDUsTkosMSwwLCJkaXYiLDIpLEhtKDYsVkosNyw2LCJkaXYiLDMpKSwyJmUmJihEYyg0KSx3dShuLnNpemUpLERjKDEpLGJmKCJuZ0lmIixuLmJyZWFrZG93bkV4aXN0cyksRGMoMSksYmYoIm5nSWYiLG4uYnJlYWtkb3duRXhpc3RzKSl9LGRpcmVjdGl2ZXM6W1B2XSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVdIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UzZTVlODtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJywgbW9ub3NwYWNlO1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIG1hcmdpbjogMCAycHg7XG4gICAgICAgIHBhZGRpbmc6IDFweDtcbiAgICAgIH1cbiAgICAgIC5icmVha1tfbmdjb250ZW50LSVDT01QJV0ge1xuICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgIH1cbiAgICAgIC5zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDExcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxMXB4O1xuICAgICAgICBtYXJnaW46IDAgM3B4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuICAgICAgLmJyZWFrZG93bltfbmdjb250ZW50LSVDT01QJV0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgaGVpZ2h0OiAxMXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTFweDtcbiAgICAgICAgcGFkZGluZzogMnB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuICAgICAgLmNhdGVnb3J5W19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICBoZWlndGg6IDEwMCU7XG4gICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAgIH1cbiAgICAgIC5jYXRlZ29yeS10YWdbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICBwYWRkaW5nOiAwIDJweDtcbiAgICAgIH1cbiAgICAgIC5maW5pdGVbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2FhYTtcbiAgICAgICAgY29sb3I6ICNmZWZlZmU7XG4gICAgICB9XG4gICAgICAuaW5maW5pdGVbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U1MjU5MjtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB9Il19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFFKLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6ImRlYnVnLXRlbnNvci1udW1lcmljLWJyZWFrZG93biIsdGVtcGxhdGU6J1xuICAgIDxkaXYgY2xhc3M9InNpemUiPlxuICAgICAgPHNwYW4+c2l6ZTo8L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz0ic2l6ZS12YWx1ZSI+e3sgc2l6ZSB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPSJicmVha2Rvd25FeGlzdHMiIGNsYXNzPSJicmVhayI+PC9kaXY+XG4gICAgPGRpdiAqbmdJZj0iYnJlYWtkb3duRXhpc3RzIiBjbGFzcz0iYnJlYWtkb3duIj5cbiAgICAgIDxkaXYgKm5nSWY9Im51bU5hTnMgIT09IHVuZGVmaW5lZCAmJiBudW1OYU5zID4gMCIgY2xhc3M9ImNhdGVnb3J5Ij5cbiAgICAgICAgPHNwYW4gY2xhc3M9ImNhdGVnb3J5LXRhZyBpbmZpbml0ZSI+TmFOPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz0iY2F0ZWdvcnktY291bnQiPsOXe3sgbnVtTmFOcyB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj0ibnVtTmVnYXRpdmVJbmZzICE9PSB1bmRlZmluZWQgJiYgbnVtTmVnYXRpdmVJbmZzID4gMCJcbiAgICAgICAgY2xhc3M9ImNhdGVnb3J5IlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz0iY2F0ZWdvcnktdGFnIGluZmluaXRlIj4t4oiePC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz0iY2F0ZWdvcnktY291bnQiPsOXe3sgbnVtTmVnYXRpdmVJbmZzIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPSJudW1Qb3NpdGl2ZUluZnMgIT09IHVuZGVmaW5lZCAmJiBudW1Qb3NpdGl2ZUluZnMgPiAwIlxuICAgICAgICBjbGFzcz0iY2F0ZWdvcnkiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPSJjYXRlZ29yeS10YWcgaW5maW5pdGUiPiviiJ48L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPSJjYXRlZ29yeS1jb3VudCI+w5d7eyBudW1Qb3NpdGl2ZUluZnMgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9Im51bU5lZ2F0aXZlRmluaXRlcyAhPT0gdW5kZWZpbmVkICYmIG51bU5lZ2F0aXZlRmluaXRlcyA+IDAiXG4gICAgICAgIGNsYXNzPSJjYXRlZ29yeSJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9ImNhdGVnb3J5LXRhZyBmaW5pdGUiPi08L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPSJjYXRlZ29yeS1jb3VudCI+w5d7eyBudW1OZWdhdGl2ZUZpbml0ZXMgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9Im51bVplcm9zICE9PSB1bmRlZmluZWQgJiYgbnVtWmVyb3MgPiAwIiBjbGFzcz0iY2F0ZWdvcnkiPlxuICAgICAgICA8c3BhbiBjbGFzcz0iY2F0ZWdvcnktdGFnIGZpbml0ZSI+MDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9ImNhdGVnb3J5LWNvdW50Ij7Dl3t7IG51bVplcm9zIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPSJudW1Qb3NpdGl2ZUZpbml0ZXMgIT09IHVuZGVmaW5lZCAmJiBudW1Qb3NpdGl2ZUZpbml0ZXMgPiAwIlxuICAgICAgICBjbGFzcz0iY2F0ZWdvcnkiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPSJjYXRlZ29yeS10YWcgZmluaXRlIj4rPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz0iY2F0ZWdvcnktY291bnQiPsOXe3sgbnVtUG9zaXRpdmVGaW5pdGVzIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICcsc3R5bGVzOlsiXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlM2U1ZTg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdSb2JvdG8gTW9ubycsIG1vbm9zcGFjZTtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICBtYXJnaW46IDAgMnB4O1xuICAgICAgICBwYWRkaW5nOiAxcHg7XG4gICAgICB9XG4gICAgICAuYnJlYWsge1xuICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgIH1cbiAgICAgIC5zaXplIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTFweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDExcHg7XG4gICAgICAgIG1hcmdpbjogMCAzcHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG4gICAgICAuYnJlYWtkb3duIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGhlaWdodDogMTFweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDExcHg7XG4gICAgICAgIHBhZGRpbmc6IDJweDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgICAgIC5jYXRlZ29yeSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICBoZWlndGg6IDEwMCU7XG4gICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAgIH1cbiAgICAgIC5jYXRlZ29yeS10YWcge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMnB4O1xuICAgICAgfVxuICAgICAgLmZpbml0ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhYWE7XG4gICAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgfVxuICAgICAgLmluZmluaXRlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U1MjU5MjtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB9XG4gICAgIl19XX1dLG51bGwse3NpemU6W3t0eXBlOlJffV0sbnVtTmFOczpbe3R5cGU6Ul99XSxudW1OZWdhdGl2ZUluZnM6W3t0eXBlOlJffV0sbnVtUG9zaXRpdmVJbmZzOlt7dHlwZTpSX31dLG51bU5lZ2F0aXZlRmluaXRlczpbe3R5cGU6Ul99XSxudW1aZXJvczpbe3R5cGU6Ul99XSxudW1Qb3NpdGl2ZUZpbml0ZXM6W3t0eXBlOlJffV19KTtjbGFzcyAkSntnZXQgaW5mb1N0cmluZygpe3JldHVybiB0aGlzLmhhc0luZk9yTmFOPyJIYXMg4oieL05hTiI6Ik5vIOKIni9OYU4ifX0kSi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8JEopfSwkSi7JtWNtcD1zbyh7dHlwZTokSixzZWxlY3RvcnM6W1siZGVidWctdGVuc29yLWhhcy1pbmYtb3ItbmFuIl1dLGlucHV0czp7aGFzSW5mT3JOYU46Imhhc0luZk9yTmFOIn0sZGVjbHM6Mix2YXJzOjQsY29uc3RzOltbMywibmdDbGFzcyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwiZGl2IiwwKSxQdSgxKSxNZigpKSwyJmUmJihiZigibmdDbGFzcyIsaXkoMixqSixuLmhhc0luZk9yTmFOPyJoYXMtaW5mLW9yLW5hbiI6IiIpKSxEYygxKSxrdSgiICIsbi5pbmZvU3RyaW5nLCIgIikpfSxkaXJlY3RpdmVzOltDdl0sc3R5bGVzOlsiLmNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTNlNWU4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGNvbG9yOiAjNjY2NjY2O1xuICAgICAgICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJywgbW9ub3NwYWNlO1xuICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICAgICAgICBtYXJnaW46IDAgMnB4O1xuICAgICAgICBwYWRkaW5nOiAxcHggM3B4O1xuICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgICB9XG4gICAgICAuaGFzLWluZi1vci1uYW5bX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U1MjU5MjtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB9Il19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKCRKLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6ImRlYnVnLXRlbnNvci1oYXMtaW5mLW9yLW5hbiIsdGVtcGxhdGU6IlxuICAgIDxkaXYgW25nQ2xhc3NdPVwiWydjb250YWluZXInLCBoYXNJbmZPck5hTiA/ICdoYXMtaW5mLW9yLW5hbicgOiAnJ11cIj5cbiAgICAgIHt7IGluZm9TdHJpbmcgfX1cbiAgICA8L2Rpdj5cbiAgIixzdHlsZXM6WyJcbiAgICAgIC5jb250YWluZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTNlNWU4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGNvbG9yOiAjNjY2NjY2O1xuICAgICAgICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJywgbW9ub3NwYWNlO1xuICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICAgICAgICBtYXJnaW46IDAgMnB4O1xuICAgICAgICBwYWRkaW5nOiAxcHggM3B4O1xuICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgICB9XG4gICAgICAuaGFzLWluZi1vci1uYW4ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTUyNTkyO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIH1cbiAgICAiXX1dfV0sbnVsbCx7aGFzSW5mT3JOYU46W3t0eXBlOlJffV19KTtjbGFzcyB0UXt9dFEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHRRKX0sdFEuybVjbXA9c28oe3R5cGU6dFEsc2VsZWN0b3JzOltbImRlYnVnLXRlbnNvci12YWx1ZSJdXSxpbnB1dHM6e2RlYnVnVGVuc29yVmFsdWU6ImRlYnVnVGVuc29yVmFsdWUifSxkZWNsczo1LHZhcnM6NSxjb25zdHM6W1szLCJkdHlwZSIsNCwibmdJZiJdLFszLCJyYW5rIiw0LCJuZ0lmIl0sWzMsInNoYXBlIiw0LCJuZ0lmIl0sWzMsImhhc0luZk9yTmFOIiw0LCJuZ0lmIl0sWzMsInNpemUiLCJudW1OZWdhdGl2ZUluZnMiLCJudW1Qb3NpdGl2ZUluZnMiLCJudW1OYU5zIiwibnVtTmVnYXRpdmVGaW5pdGVzIiwibnVtWmVyb3MiLCJudW1Qb3NpdGl2ZUZpbml0ZXMiLDQsIm5nSWYiXSxbMywiZHR5cGUiXSxbMywicmFuayJdLFszLCJzaGFwZSJdLFszLCJoYXNJbmZPck5hTiJdLFszLCJzaXplIiwibnVtTmVnYXRpdmVJbmZzIiwibnVtUG9zaXRpdmVJbmZzIiwibnVtTmFOcyIsIm51bU5lZ2F0aXZlRmluaXRlcyIsIm51bVplcm9zIiwibnVtUG9zaXRpdmVGaW5pdGVzIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihIbSgwLFVKLDEsMSwiZGVidWctdGVuc29yLWR0eXBlIiwwKSxIbSgxLFdKLDEsMSwiZGVidWctdGVuc29yLXJhbmsiLDEpLEhtKDIsR0osMSwxLCJkZWJ1Zy10ZW5zb3Itc2hhcGUiLDIpLEhtKDMsWUosMSwxLCJkZWJ1Zy10ZW5zb3ItaGFzLWluZi1vci1uYW4iLDMpLEhtKDQscUosMSw3LCJkZWJ1Zy10ZW5zb3ItbnVtZXJpYy1icmVha2Rvd24iLDQpKSwyJmUmJihiZigibmdJZiIsdm9pZCAwIT09bi5kZWJ1Z1RlbnNvclZhbHVlLmR0eXBlKSxEYygxKSxiZigibmdJZiIsdm9pZCAwIT09bi5kZWJ1Z1RlbnNvclZhbHVlLnJhbmspLERjKDEpLGJmKCJuZ0lmIix2b2lkIDAhPT1uLmRlYnVnVGVuc29yVmFsdWUuc2hhcGUpLERjKDEpLGJmKCJuZ0lmIix2b2lkIDAhPT1uLmRlYnVnVGVuc29yVmFsdWUuaGFzSW5mT3JOYU4pLERjKDEpLGJmKCJuZ0lmIix2b2lkIDAhPT1uLmRlYnVnVGVuc29yVmFsdWUuc2l6ZSkpfSxkaXJlY3RpdmVzOltQdixYSixLSixKSiwkSixRSl0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXSB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIH1cbiAgICAgIGRlYnVnLXRlbnNvci1udW1lcmljLWJyZWFrZG93bltfbmdjb250ZW50LSVDT01QJV0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9Il19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHRRLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6ImRlYnVnLXRlbnNvci12YWx1ZSIsdGVtcGxhdGU6J1xuICAgIDxkZWJ1Zy10ZW5zb3ItZHR5cGVcbiAgICAgICpuZ0lmPSJkZWJ1Z1RlbnNvclZhbHVlLmR0eXBlICE9PSB1bmRlZmluZWQiXG4gICAgICBbZHR5cGVdPSJkZWJ1Z1RlbnNvclZhbHVlLmR0eXBlIlxuICAgID5cbiAgICA8L2RlYnVnLXRlbnNvci1kdHlwZT5cbiAgICA8ZGVidWctdGVuc29yLXJhbmtcbiAgICAgICpuZ0lmPSJkZWJ1Z1RlbnNvclZhbHVlLnJhbmsgIT09IHVuZGVmaW5lZCJcbiAgICAgIFtyYW5rXT0iZGVidWdUZW5zb3JWYWx1ZS5yYW5rIlxuICAgID5cbiAgICA8L2RlYnVnLXRlbnNvci1yYW5rPlxuICAgIDxkZWJ1Zy10ZW5zb3Itc2hhcGVcbiAgICAgICpuZ0lmPSJkZWJ1Z1RlbnNvclZhbHVlLnNoYXBlICE9PSB1bmRlZmluZWQiXG4gICAgICBbc2hhcGVdPSJkZWJ1Z1RlbnNvclZhbHVlLnNoYXBlIlxuICAgID5cbiAgICA8L2RlYnVnLXRlbnNvci1zaGFwZT5cbiAgICA8ZGVidWctdGVuc29yLWhhcy1pbmYtb3ItbmFuXG4gICAgICAqbmdJZj0iZGVidWdUZW5zb3JWYWx1ZS5oYXNJbmZPck5hTiAhPT0gdW5kZWZpbmVkIlxuICAgICAgW2hhc0luZk9yTmFOXT0iZGVidWdUZW5zb3JWYWx1ZS5oYXNJbmZPck5hTiJcbiAgICA+XG4gICAgPC9kZWJ1Zy10ZW5zb3ItaGFzLWluZi1vci1uYW4+XG4gICAgPGRlYnVnLXRlbnNvci1udW1lcmljLWJyZWFrZG93blxuICAgICAgKm5nSWY9ImRlYnVnVGVuc29yVmFsdWUuc2l6ZSAhPT0gdW5kZWZpbmVkIlxuICAgICAgc2l6ZT0ie3sgZGVidWdUZW5zb3JWYWx1ZS5zaXplIH19IlxuICAgICAgW251bU5lZ2F0aXZlSW5mc109ImRlYnVnVGVuc29yVmFsdWUubnVtTmVnYXRpdmVJbmZzIlxuICAgICAgW251bVBvc2l0aXZlSW5mc109ImRlYnVnVGVuc29yVmFsdWUubnVtUG9zaXRpdmVJbmZzIlxuICAgICAgW251bU5hTnNdPSJkZWJ1Z1RlbnNvclZhbHVlLm51bU5hTnMiXG4gICAgICBbbnVtTmVnYXRpdmVGaW5pdGVzXT0iZGVidWdUZW5zb3JWYWx1ZS5udW1OZWdhdGl2ZUZpbml0ZXMiXG4gICAgICBbbnVtWmVyb3NdPSJkZWJ1Z1RlbnNvclZhbHVlLm51bVplcm9zIlxuICAgICAgW251bVBvc2l0aXZlRmluaXRlc109ImRlYnVnVGVuc29yVmFsdWUubnVtUG9zaXRpdmVGaW5pdGVzIlxuICAgID5cbiAgICA8L2RlYnVnLXRlbnNvci1udW1lcmljLWJyZWFrZG93bj5cbiAgJyxzdHlsZXM6WyJcbiAgICAgIDpob3N0IHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgfVxuICAgICAgZGVidWctdGVuc29yLW51bWVyaWMtYnJlYWtkb3duIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgICJdfV19XSxudWxsLHtkZWJ1Z1RlbnNvclZhbHVlOlt7dHlwZTpSX31dfSk7Y29uc3QgZVE9ZnVuY3Rpb24odCxlKXtyZXR1cm57dGVuc29yRGVidWdNb2RlOnQsYXJyYXk6ZX19O2Z1bmN0aW9uIG5RKHQsZSl7aWYoMSZ0JiYoQ2YoMCwiZGl2IiwxMiksQ2YoMSwiZGl2IiwxMyksUHUoMiksTWYoKSxDZigzLCJkaXYiLDE0KSx2Zig0LCJkZWJ1Zy10ZW5zb3ItdmFsdWUiLDE1KSxNZigpLE1mKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdCxuPWUuaW5kZXgsbz16ZigzKTtEYygyKSxrdSgiT3V0cHV0IHNsb3QgIixuLCI6IiksRGMoMiksYmYoImRlYnVnVGVuc29yVmFsdWUiLG8ucGFyc2VEZWJ1Z1RlbnNvclZhbHVlKGF5KDIsZVEsby50ZW5zb3JEZWJ1Z01vZGUsdCkpKX19ZnVuY3Rpb24gb1EodCxlKXtpZigxJnQmJihDZigwLCJkaXYiLDEwKSxIbSgxLG5RLDUsNSwiZGl2IiwxMSksTWYoKSksMiZ0KXtjb25zdCB0PXpmKDIpO0RjKDEpLGJmKCJuZ0Zvck9mIix0LmRlYnVnVGVuc29yVmFsdWVzKX19ZnVuY3Rpb24gaVEodCxlKXtpZigxJnQmJihDZigwLCJkaXYiKSxDZigxLCJkaXYiKSxDZigyLCJkaXYiLDMpLENmKDMsInNwYW4iLDQpLFB1KDQsIiBPcDogIiksTWYoKSxDZig1LCJzcGFuIiw1KSxQdSg2KSxNZigpLE1mKCksQ2YoNywiZGl2IiwzKSxDZig4LCJzcGFuIiw0KSxQdSg5LCIgIyBvZiBpbnB1dCB0ZW5zb3JzOiAiKSxNZigpLENmKDEwLCJzcGFuIiw2KSxQdSgxMSksTWYoKSxNZigpLENmKDEyLCJkaXYiLDMpLENmKDEzLCJzcGFuIiw0KSxQdSgxNCwiICMgb2Ygb3V0cHV0IHRlbnNvcnM6ICIpLE1mKCksQ2YoMTUsInNwYW4iLDcpLFB1KDE2KSxNZigpLENmKDE3LCJzcGFuIiw4KSxQdSgxOCksTWYoKSxNZigpLEhtKDE5LG9RLDIsMSwiZGl2Iiw5KSxNZigpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigpO0RjKDYpLGt1KCIgIix0LmZvY3VzZWRFeGVjdXRpb25EYXRhLm9wX3R5cGUsIiAiKSxEYyg1KSxrdSgiICIsbnVsbD09dC5mb2N1c2VkRXhlY3V0aW9uRGF0YS5pbnB1dF90ZW5zb3JfaWRzPzA6dC5mb2N1c2VkRXhlY3V0aW9uRGF0YS5pbnB1dF90ZW5zb3JfaWRzLmxlbmd0aCwiICIpLERjKDUpLGt1KCIgIixudWxsPT10LmZvY3VzZWRFeGVjdXRpb25EYXRhLm91dHB1dF90ZW5zb3JfaWRzPzA6dC5mb2N1c2VkRXhlY3V0aW9uRGF0YS5vdXRwdXRfdGVuc29yX2lkcy5sZW5ndGgsIiAiKSxEYygyKSxrdSgiIChkZWJ1ZyBtb2RlOiAiLHQuVGVuc29yRGVidWdNb2RlW3QudGVuc29yRGVidWdNb2RlXSwiKSAiKSxEYygxKSxiZigibmdJZiIsdC5oYXNEZWJ1Z1RlbnNvclZhbHVlcyl9fWZ1bmN0aW9uIGFRKHQsZSl7fWNsYXNzIHJRe2NvbnN0cnVjdG9yKCl7dGhpcy50ZW5zb3JEZWJ1Z01vZGU9c0suVU5TUEVDSUZJRUQsdGhpcy5oYXNEZWJ1Z1RlbnNvclZhbHVlcz0hMSx0aGlzLmRlYnVnVGVuc29yVmFsdWVzPW51bGwsdGhpcy5kZWJ1Z1RlbnNvckR0eXBlcz1udWxsLHRoaXMuVGVuc29yRGVidWdNb2RlPXNLLHRoaXMucGFyc2VEZWJ1Z1RlbnNvclZhbHVlPUFKfX1yUS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8clEpfSxyUS7JtWNtcD1zbyh7dHlwZTpyUSxzZWxlY3RvcnM6W1siZXhlY3V0aW9uLWRhdGEtY29tcG9uZW50Il1dLGlucHV0czp7Zm9jdXNlZEV4ZWN1dGlvbkluZGV4OiJmb2N1c2VkRXhlY3V0aW9uSW5kZXgiLGZvY3VzZWRFeGVjdXRpb25EYXRhOiJmb2N1c2VkRXhlY3V0aW9uRGF0YSIsdGVuc29yRGVidWdNb2RlOiJ0ZW5zb3JEZWJ1Z01vZGUiLGhhc0RlYnVnVGVuc29yVmFsdWVzOiJoYXNEZWJ1Z1RlbnNvclZhbHVlcyIsZGVidWdUZW5zb3JWYWx1ZXM6ImRlYnVnVGVuc29yVmFsdWVzIixkZWJ1Z1RlbnNvckR0eXBlczoiZGVidWdUZW5zb3JEdHlwZXMifSxkZWNsczo3LHZhcnM6Myxjb25zdHM6W1sxLCJmb2N1cy1leGVjdXRpb24tY29udGFpbmVyIl0sWzQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsibG9hZGluZ19zZWN0aW9uIiwiIl0sWzEsImV4ZWN1dGlvbi1kYXRhLWZpZWxkIl0sWzEsImV4ZWN1dGlvbi1kYXRhLWtleSJdLFsxLCJleGVjdXRpb24tZGF0YS12YWx1ZSIsIm9wLXR5cGUiXSxbMSwiZXhlY3V0aW9uLWRhdGEtdmFsdWUiLCJpbnB1dC10ZW5zb3JzIl0sWzEsImV4ZWN1dGlvbi1kYXRhLXZhbHVlIiwib3V0cHV0LXRlbnNvcnMiXSxbMSwiZXhlY3V0aW9uLWRhdGEtdmFsdWUiXSxbImNsYXNzIiwib3V0cHV0LXNsb3RzIiw0LCJuZ0lmIl0sWzEsIm91dHB1dC1zbG90cyJdLFsiY2xhc3MiLCJvdXRwdXQtc2xvdC1jb250YWluZXIiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJvdXRwdXQtc2xvdC1jb250YWluZXIiXSxbMSwib3V0cHV0LXNsb3QtbnVtYmVyIl0sWzEsIm91dHB1dC1zbG90LWRlYnVnLXRlbnNvci12YWx1ZSJdLFszLCJkZWJ1Z1RlbnNvclZhbHVlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihDZigwLCJkaXYiLDApLENmKDEsImRpdiIpLENmKDIsInNwYW4iKSxQdSgzKSxNZigpLE1mKCksSG0oNCxpUSwyMCw1LCJkaXYiLDEpLEhtKDUsYVEsMCwwLCJuZy10ZW1wbGF0ZSIsbnVsbCwyLHF5KSxNZigpKSwyJmUpe2NvbnN0IHQ9Rm0oNik7RGMoMyksa3UoIiBQeXRob24gRXhlY3V0aW9uICMiLG4uZm9jdXNlZEV4ZWN1dGlvbkluZGV4LCIgIiksRGMoMSksYmYoIm5nSWYiLG51bGwhPT1uLmZvY3VzZWRFeGVjdXRpb25EYXRhKSgibmdJZkVsc2UiLHQpfX0sZGlyZWN0aXZlczpbUHYseHYsdFFdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5kZWJ1Zy10ZW5zb3ItdmFsdWVzLXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlfS5kZWJ1Zy10ZW5zb3ItdmFsdWVzLXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRkW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItdG9wOjFweCBzb2xpZCAjMDAwO3RleHQtYWxpZ246bGVmdH0uZGVidWctdGVuc29yLXZhbHVlcy10YWJsZVtfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17dGV4dC1hbGlnbjpsZWZ0fS5leGVjdXRpb24tZGF0YS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwfS5leGVjdXRpb24tZGF0YS1rZXlbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrO21heC13aWR0aDoxMjBweDt0ZXh0LWFsaWduOnJpZ2h0O3dpZHRoOjEyMHB4fS5leGVjdXRpb24tZGF0YS12YWx1ZVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6MTBweH0uZm9jdXMtZXhlY3V0aW9uLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmZjYzgwO2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtc2l6ZToxMnB4O2hlaWdodDoxMjBweDtwYWRkaW5nOjVweDt3aWR0aDozNjBweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZm9jdXMtZXhlY3V0aW9uLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5mb2N1cy1leGVjdXRpb24tY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNlNjUxMDB9Lm91dHB1dC1zbG90c1tfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjYwcHg7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6YXV0b30ub3V0cHV0LXNsb3QtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItdG9wOjFweCBzb2xpZCAjZWJlYmViO21hcmdpbi10b3A6NXB4O3BhZGRpbmc6MnB4IDA7dmVydGljYWwtYWxpZ246dG9wfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5vdXRwdXQtc2xvdC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAub3V0cHV0LXNsb3QtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItdG9wOjFweCBzb2xpZCAjNTU1fS5vdXRwdXQtc2xvdC1udW1iZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2s7Zm9udC1mYW1pbHk6IlJvYm90byBNb25vIixtb25vc3BhY2V9Lm91dHB1dC1zbG90LWRlYnVnLXRlbnNvci12YWx1ZVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpibG9jazttYXJnaW46M3B4IDAgM3B4IDMwcHh9Lm91dHB1dC10ZW5zb3JzW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjVweH0nXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoclEsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoiZXhlY3V0aW9uLWRhdGEtY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiLi9leGVjdXRpb25fZGF0YV9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9leGVjdXRpb25fZGF0YV9jb21wb25lbnQuY3NzIl19XX1dLG51bGwse2ZvY3VzZWRFeGVjdXRpb25JbmRleDpbe3R5cGU6Ul99XSxmb2N1c2VkRXhlY3V0aW9uRGF0YTpbe3R5cGU6Ul99XSx0ZW5zb3JEZWJ1Z01vZGU6W3t0eXBlOlJffV0saGFzRGVidWdUZW5zb3JWYWx1ZXM6W3t0eXBlOlJffV0sZGVidWdUZW5zb3JWYWx1ZXM6W3t0eXBlOlJffV0sZGVidWdUZW5zb3JEdHlwZXM6W3t0eXBlOlJffV19KTtjb25zdCBzUT0iVW5rbm93biBkdHlwZSI7Y2xhc3MgbFF7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMuZm9jdXNlZEV4ZWN1dGlvbkRhdGEkPXRoaXMuc3RvcmUucGlwZShyUyhzSikpLHRoaXMudGVuc29yRGVidWdNb2RlJD10aGlzLnN0b3JlLnBpcGUoclMoYlMoc0osKHQ9Pm51bGw9PT10P3NLLlVOU1BFQ0lGSUVEOnQudGVuc29yX2RlYnVnX21vZGUpKSkpLHRoaXMuaGFzRGVidWdUZW5zb3JWYWx1ZXMkPXRoaXMuc3RvcmUucGlwZShyUyhiUyhzSiwodD0+e2lmKG51bGw9PT10fHxudWxsPT09dC5kZWJ1Z190ZW5zb3JfdmFsdWVzKXJldHVybiExO2Zvcihjb25zdCBlIG9mIHQuZGVidWdfdGVuc29yX3ZhbHVlcylpZihudWxsIT09ZSYmZS5sZW5ndGg+MClyZXR1cm4hMDtyZXR1cm4hMX0pKSkpLHRoaXMuZGVidWdUZW5zb3JWYWx1ZXMkPXRoaXMuc3RvcmUucGlwZShyUyhiUyhzSiwodD0+bnVsbD09PXQ/bnVsbDp0LmRlYnVnX3RlbnNvcl92YWx1ZXMpKSkpLHRoaXMuZGVidWdUZW5zb3JEdHlwZXMkPXRoaXMuc3RvcmUucGlwZShyUyhiUyhzSiwodD0+e2lmKG51bGw9PT10fHxudWxsPT09dC5kZWJ1Z190ZW5zb3JfdmFsdWVzKXJldHVybiBudWxsO2lmKHQudGVuc29yX2RlYnVnX21vZGUhPT1zSy5GVUxMX0hFQUxUSCYmdC50ZW5zb3JfZGVidWdfbW9kZSE9PXNLLlNIQVBFKXJldHVybiBudWxsO2NvbnN0IGU9W107Zm9yKGNvbnN0IG4gb2YgdC5kZWJ1Z190ZW5zb3JfdmFsdWVzKWlmKG51bGw9PT1uKWUucHVzaChzUSk7ZWxzZXtjb25zdCBvPVN0cmluZyh0LnRlbnNvcl9kZWJ1Z19tb2RlPT09c0suRlVMTF9IRUFMVEg/blsyXTpuWzFdKTtlLnB1c2goRUpbb118fHNRKX1yZXR1cm4gZX0pKSkpfX1mdW5jdGlvbiBjUSh0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO0NmKDAsIm1hdC1zbGlkZXIiLDExKSxSZigiaW5wdXQiLChmdW5jdGlvbiBlKG4pe1BpKHQpO3JldHVybiB6ZigyKS5vblNsaWRlckNoYW5nZS5lbWl0KG4udmFsdWUpfSkpLE1mKCl9aWYoMiZ0KXtjb25zdCB0PXpmKDIpO2JmKCJtaW4iLDApKCJtYXgiLHQuc2Nyb2xsQmVnaW5JbmRleFVwcGVyTGltaXQpKCJ2YWx1ZSIsdC5zY3JvbGxCZWdpbkluZGV4KX19ZnVuY3Rpb24gZFEodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJkaXYiLDYpLENmKDEsImJ1dHRvbiIsNyksUmYoImNsaWNrIiwoZnVuY3Rpb24gZSgpe1BpKHQpO3JldHVybiB6ZigpLm9uTmF2aWdhdGVMZWZ0LmVtaXQoKX0pKSxQdSgyLCIgPCAiKSxNZigpLENmKDMsImRpdiIsOCksUHUoNCksTWYoKSxDZig1LCJidXR0b24iLDkpLFJmKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtQaSh0KTtyZXR1cm4gemYoKS5vbk5hdmlnYXRlUmlnaHQuZW1pdCgpfSkpLFB1KDYsIiA+ICIpLE1mKCksSG0oNyxjUSwxLDMsIm1hdC1zbGlkZXIiLDEwKSxNZigpfWlmKDImdCl7Y29uc3QgdD16ZigpO0RjKDQpLER1KCIgIix0LnNjcm9sbEJlZ2luSW5kZXgsIiB+ICIsdC5zY3JvbGxCZWdpbkluZGV4K3QuZGlzcGxheUNvdW50LTEsIiBvZiAiLHQubnVtRXhlY3V0aW9ucywiICIpLERjKDMpLGJmKCJuZ0lmIix0LnNjcm9sbEJlZ2luSW5kZXhVcHBlckxpbWl0PjApfX1sUS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bFEpKGdmKGlTKSl9LGxRLsm1Y21wPXNvKHt0eXBlOmxRLHNlbGVjdG9yczpbWyJ0Zi1kZWJ1Z2dlci12Mi1leGVjdXRpb24tZGF0YSJdXSxpbnB1dHM6e2ZvY3VzZWRFeGVjdXRpb25JbmRleDoiZm9jdXNlZEV4ZWN1dGlvbkluZGV4In0sZGVjbHM6Nix2YXJzOjE2LGNvbnN0czpbWzMsImZvY3VzZWRFeGVjdXRpb25JbmRleCIsImZvY3VzZWRFeGVjdXRpb25EYXRhIiwidGVuc29yRGVidWdNb2RlIiwiaGFzRGVidWdUZW5zb3JWYWx1ZXMiLCJkZWJ1Z1RlbnNvclZhbHVlcyIsImRlYnVnVGVuc29yRHR5cGVzIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJih2ZigwLCJleGVjdXRpb24tZGF0YS1jb21wb25lbnQiLDApLF95KDEsImFzeW5jIiksX3koMiwiYXN5bmMiKSxfeSgzLCJhc3luYyIpLF95KDQsImFzeW5jIiksX3koNSwiYXN5bmMiKSksMiZlJiZiZigiZm9jdXNlZEV4ZWN1dGlvbkluZGV4IixuLmZvY3VzZWRFeGVjdXRpb25JbmRleCkoImZvY3VzZWRFeGVjdXRpb25EYXRhIixDeSgxLDYsbi5mb2N1c2VkRXhlY3V0aW9uRGF0YSQpKSgidGVuc29yRGVidWdNb2RlIixDeSgyLDgsbi50ZW5zb3JEZWJ1Z01vZGUkKSkoImhhc0RlYnVnVGVuc29yVmFsdWVzIixDeSgzLDEwLG4uaGFzRGVidWdUZW5zb3JWYWx1ZXMkKSkoImRlYnVnVGVuc29yVmFsdWVzIixDeSg0LDEyLG4uZGVidWdUZW5zb3JWYWx1ZXMkKSkoImRlYnVnVGVuc29yRHR5cGVzIixDeSg1LDE0LG4uZGVidWdUZW5zb3JEdHlwZXMkKSl9LGRpcmVjdGl2ZXM6W3JRXSxwaXBlczpbVnZdLGVuY2Fwc3VsYXRpb246Mn0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIobFEsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoidGYtZGVidWdnZXItdjItZXhlY3V0aW9uLWRhdGEiLHRlbXBsYXRlOidcbiAgICA8ZXhlY3V0aW9uLWRhdGEtY29tcG9uZW50XG4gICAgICBbZm9jdXNlZEV4ZWN1dGlvbkluZGV4XT0iZm9jdXNlZEV4ZWN1dGlvbkluZGV4IlxuICAgICAgW2ZvY3VzZWRFeGVjdXRpb25EYXRhXT0iZm9jdXNlZEV4ZWN1dGlvbkRhdGEkIHwgYXN5bmMiXG4gICAgICBbdGVuc29yRGVidWdNb2RlXT0idGVuc29yRGVidWdNb2RlJCB8IGFzeW5jIlxuICAgICAgW2hhc0RlYnVnVGVuc29yVmFsdWVzXT0iaGFzRGVidWdUZW5zb3JWYWx1ZXMkIHwgYXN5bmMiXG4gICAgICBbZGVidWdUZW5zb3JWYWx1ZXNdPSJkZWJ1Z1RlbnNvclZhbHVlcyQgfCBhc3luYyJcbiAgICAgIFtkZWJ1Z1RlbnNvckR0eXBlc109ImRlYnVnVGVuc29yRHR5cGVzJCB8IGFzeW5jIlxuICAgID48L2V4ZWN1dGlvbi1kYXRhLWNvbXBvbmVudD5cbiAgJ31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfV19KSx7Zm9jdXNlZEV4ZWN1dGlvbkluZGV4Olt7dHlwZTpSX31dfSk7Y29uc3QgcFE9ZnVuY3Rpb24odCxlLG4pe3JldHVyblt0LGUsbl19O2Z1bmN0aW9uIG1RKHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwiZGl2IiwxNCksUmYoImNsaWNrIiwoZnVuY3Rpb24gZSgpe2NvbnN0IG49UGkodCkuaW5kZXg7cmV0dXJuIHpmKDIpLm9uRXhlY3V0aW9uRGlnZXN0Q2xpY2tlZC5lbWl0KG4pfSkpLENmKDEsImRpdiIsMTUpLFB1KDIpLE1mKCksTWYoKX1pZigyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj1lLmluZGV4LG89emYoMik7RGMoMSksTGYoInRpdGxlIix0Lm9wX3R5cGUpLGJmKCJuZ0NsYXNzIixyeSgzLHBRLHQuaXNfZ3JhcGg/ImZ1bmMtZ3JhcGgtZXhlY3V0aW9uIjoiIixuPT09by5mb2N1c2VkRXhlY3V0aW9uRGlzcGxheUluZGV4PyJmb2N1c2VkIjoiIixvLmRpc3BsYXlGb2N1c2VkQWxlcnRUeXBlc1tuXXx8IiIpKSxEYygxKSxrdSgiICIsdC5zaG9ydF9vcF90eXBlLCIgIil9fWZ1bmN0aW9uIGZRKHQsZSl7aWYoMSZ0JiYoQ2YoMCwiZGl2IiwxMiksSG0oMSxtUSwzLDcsImRpdiIsMTMpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigpO0RjKDEpLGJmKCJuZ0Zvck9mIix0LmRpc3BsYXlFeGVjdXRpb25EaWdlc3RzKX19ZnVuY3Rpb24gdVEodCxlKXtpZigxJnQmJih4ZigwKSx2ZigxLCJ0Zi1kZWJ1Z2dlci12Mi1leGVjdXRpb24tZGF0YSIsMTYpLE9mKCkpLDImdCl7Y29uc3QgdD16ZigpO0RjKDEpLGJmKCJmb2N1c2VkRXhlY3V0aW9uSW5kZXgiLHQuZm9jdXNlZEV4ZWN1dGlvbkluZGV4KX19Y2xhc3MgZ1F7Y29uc3RydWN0b3IoKXt0aGlzLmFjdGl2ZVJ1bklkPW51bGwsdGhpcy5sb2FkaW5nTnVtRXhlY3V0aW9ucz0hMSx0aGlzLm51bUV4ZWN1dGlvbnM9MCx0aGlzLnNjcm9sbEJlZ2luSW5kZXg9MCx0aGlzLnNjcm9sbEJlZ2luSW5kZXhVcHBlckxpbWl0PTAsdGhpcy5wYWdlU2l6ZT0wLHRoaXMuZGlzcGxheUNvdW50PTAsdGhpcy5kaXNwbGF5RXhlY3V0aW9uRGlnZXN0cz1bXSx0aGlzLmRpc3BsYXlGb2N1c2VkQWxlcnRUeXBlcz1bXSx0aGlzLmZvY3VzZWRFeGVjdXRpb25JbmRleD1udWxsLHRoaXMuZm9jdXNlZEV4ZWN1dGlvbkRpc3BsYXlJbmRleD1udWxsLHRoaXMuZm9jdXNlZEV4ZWN1dGlvbkRhdGE9bnVsbCx0aGlzLm9uTmF2aWdhdGVMZWZ0PW5ldyBTeSx0aGlzLm9uTmF2aWdhdGVSaWdodD1uZXcgU3ksdGhpcy5vbkV4ZWN1dGlvbkRpZ2VzdENsaWNrZWQ9bmV3IFN5LHRoaXMub25TbGlkZXJDaGFuZ2U9bmV3IFN5fX1nUS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Z1EpfSxnUS7JtWNtcD1zbyh7dHlwZTpnUSxzZWxlY3RvcnM6W1sidGltZWxpbmUtY29tcG9uZW50Il1dLGlucHV0czp7YWN0aXZlUnVuSWQ6ImFjdGl2ZVJ1bklkIixsb2FkaW5nTnVtRXhlY3V0aW9uczoibG9hZGluZ051bUV4ZWN1dGlvbnMiLG51bUV4ZWN1dGlvbnM6Im51bUV4ZWN1dGlvbnMiLHNjcm9sbEJlZ2luSW5kZXg6InNjcm9sbEJlZ2luSW5kZXgiLHNjcm9sbEJlZ2luSW5kZXhVcHBlckxpbWl0OiJzY3JvbGxCZWdpbkluZGV4VXBwZXJMaW1pdCIscGFnZVNpemU6InBhZ2VTaXplIixkaXNwbGF5Q291bnQ6ImRpc3BsYXlDb3VudCIsZGlzcGxheUV4ZWN1dGlvbkRpZ2VzdHM6ImRpc3BsYXlFeGVjdXRpb25EaWdlc3RzIixkaXNwbGF5Rm9jdXNlZEFsZXJ0VHlwZXM6ImRpc3BsYXlGb2N1c2VkQWxlcnRUeXBlcyIsZm9jdXNlZEV4ZWN1dGlvbkluZGV4OiJmb2N1c2VkRXhlY3V0aW9uSW5kZXgiLGZvY3VzZWRFeGVjdXRpb25EaXNwbGF5SW5kZXg6ImZvY3VzZWRFeGVjdXRpb25EaXNwbGF5SW5kZXgiLGZvY3VzZWRFeGVjdXRpb25EYXRhOiJmb2N1c2VkRXhlY3V0aW9uRGF0YSJ9LG91dHB1dHM6e29uTmF2aWdhdGVMZWZ0OiJvbk5hdmlnYXRlTGVmdCIsb25OYXZpZ2F0ZVJpZ2h0OiJvbk5hdmlnYXRlUmlnaHQiLG9uRXhlY3V0aW9uRGlnZXN0Q2xpY2tlZDoib25FeGVjdXRpb25EaWdlc3RDbGlja2VkIixvblNsaWRlckNoYW5nZToib25TbGlkZXJDaGFuZ2UifSxkZWNsczo5LHZhcnM6NCxjb25zdHM6W1sxLCJ0aW1lbGluZS10aXRsZSJdLFsxLCJleGVjdXRpb24tY291bnQiXSxbMSwidG9wLWxldmVsLWV4ZWN1dGlvbnMiXSxbImNsYXNzIiwibmF2aWdhdGlvbi1zZWN0aW9uIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImV4ZWN1dGlvbi10aW1lbGluZSIsNCwibmdJZiJdLFs0LCJuZ0lmIl0sWzEsIm5hdmlnYXRpb24tc2VjdGlvbiJdLFsibWF0LWJ1dHRvbiIsIiIsMSwibmF2aWdhdGlvbi1idXR0b24tbGVmdCIsMywiY2xpY2siXSxbMSwibmF2aWdhdGlvbi1wb3NpdGlvbi1pbmZvIl0sWyJtYXQtYnV0dG9uIiwiIiwxLCJuYXZpZ2F0aW9uLWJ1dHRvbi1yaWdodCIsMywiY2xpY2siXSxbImNsYXNzIiwidGltZWxpbmUtc2xpZGVyIiwic3RlcCIsIjEiLDMsIm1pbiIsIm1heCIsInZhbHVlIiwiaW5wdXQiLDQsIm5nSWYiXSxbInN0ZXAiLCIxIiwxLCJ0aW1lbGluZS1zbGlkZXIiLDMsIm1pbiIsIm1heCIsInZhbHVlIiwiaW5wdXQiXSxbMSwiZXhlY3V0aW9uLXRpbWVsaW5lIl0sWzMsImNsaWNrIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMywiY2xpY2siXSxbMSwiZXhlY3V0aW9uLWRpZ2VzdCIsMywibmdDbGFzcyIsInRpdGxlIl0sWzMsImZvY3VzZWRFeGVjdXRpb25JbmRleCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwiZGl2IiksQ2YoMSwiZGl2IiwwKSxQdSgyLCIgUHl0aG9uIEV4ZWN1dGlvbiBUaW1lbGluZSAiKSxDZigzLCJzcGFuIiwxKSxQdSg0KSxNZigpLE1mKCksQ2YoNSwiZGl2IiwyKSxIbSg2LGRRLDgsNCwiZGl2IiwzKSxIbSg3LGZRLDIsMSwiZGl2Iiw0KSxIbSg4LHVRLDIsMSwibmctY29udGFpbmVyIiw1KSxNZigpLE1mKCkpLDImZSYmKERjKDQpLGt1KCIgKCIsbi5udW1FeGVjdXRpb25zLCIpICIpLERjKDIpLGJmKCJuZ0lmIixuLm51bUV4ZWN1dGlvbnMpLERjKDEpLGJmKCJuZ0lmIixuLm51bUV4ZWN1dGlvbnMpLERjKDEpLGJmKCJuZ0lmIixudWxsIT09bi5hY3RpdmVSdW5JZCYmbnVsbCE9PW4uZm9jdXNlZEV4ZWN1dGlvbkluZGV4KSl9LGRpcmVjdGl2ZXM6W1B2LE5MLHdKLHh2LEN2LGxRXSxzdHlsZXM6WyIuZXhlY3V0aW9uLWRpZ2VzdFtfbmdjb250ZW50LSVDT01QJV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTNlNWU4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBjb2xvcjogIzQyNTA2NjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGhlaWdodDogMTVweDtcbiAgcGFkZGluZzogMXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAxMnB4O1xufVxuXG4uZXhlY3V0aW9uLWRpZ2VzdC5mdW5jLWdyYXBoLWV4ZWN1dGlvbltfbmdjb250ZW50LSVDT01QJV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzdkYmY1O1xuICBjb2xvcjogIzRlNTY2NDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5leGVjdXRpb24tZGlnZXN0LmZvY3VzZWRbX25nY29udGVudC0lQ09NUCVdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDRiMztcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5leGVjdXRpb24tZGlnZXN0LkluZk5hbkFsZXJ0W19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNTI1OTI7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG5cbi5leGVjdXRpb24tZGlnZXN0W19uZ2NvbnRlbnQtJUNPTVAlXTpob3ZlciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZXhlY3V0aW9uLXRpbWVsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4udGltZWxpbmUtc2xpZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiA0OHB4O1xuICBsZWZ0OiAzNDBweDsgXG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDQwcHg7XG59XG5cbiAgLnRpbWVsaW5lLXNsaWRlciAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgcmlnaHQ6IC00MHB4O1xuICB3aWR0aDogODBweDtcbn1cblxuXG4ubmF2aWdhdGlvbi1wb3NpdGlvbi1pbmZvW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIG1heC13aWR0aDogMjAwcHg7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubmF2aWdhdGlvbi1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGhlaWdodDogNDhweDtcbiAgbGluZS1oZWlnaHQ6IDQ4cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6IDEwMCU7XG59Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGdRLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6InRpbWVsaW5lLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vdGltZWxpbmVfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vdGltZWxpbmVfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLG51bGwse2FjdGl2ZVJ1bklkOlt7dHlwZTpSX31dLGxvYWRpbmdOdW1FeGVjdXRpb25zOlt7dHlwZTpSX31dLG51bUV4ZWN1dGlvbnM6W3t0eXBlOlJffV0sc2Nyb2xsQmVnaW5JbmRleDpbe3R5cGU6Ul99XSxzY3JvbGxCZWdpbkluZGV4VXBwZXJMaW1pdDpbe3R5cGU6Ul99XSxwYWdlU2l6ZTpbe3R5cGU6Ul99XSxkaXNwbGF5Q291bnQ6W3t0eXBlOlJffV0sZGlzcGxheUV4ZWN1dGlvbkRpZ2VzdHM6W3t0eXBlOlJffV0sZGlzcGxheUZvY3VzZWRBbGVydFR5cGVzOlt7dHlwZTpSX31dLGZvY3VzZWRFeGVjdXRpb25JbmRleDpbe3R5cGU6Ul99XSxmb2N1c2VkRXhlY3V0aW9uRGlzcGxheUluZGV4Olt7dHlwZTpSX31dLGZvY3VzZWRFeGVjdXRpb25EYXRhOlt7dHlwZTpSX31dLG9uTmF2aWdhdGVMZWZ0Olt7dHlwZTpFX31dLG9uTmF2aWdhdGVSaWdodDpbe3R5cGU6RV99XSxvbkV4ZWN1dGlvbkRpZ2VzdENsaWNrZWQ6W3t0eXBlOkVffV0sb25TbGlkZXJDaGFuZ2U6W3t0eXBlOkVffV19KTtjb25zdCBoUT1bIl9fZm9yd2FyZF8iLCJfX2JhY2t3YXJkXyIsIl9faW5mZXJlbmNlXyJdO2NsYXNzIGJRe2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLmFjdGl2ZVJ1bklkJD10aGlzLnN0b3JlLnBpcGUoclModkspKSx0aGlzLmxvYWRpbmdOdW1FeGVjdXRpb25zJD10aGlzLnN0b3JlLnBpcGUoclMoYlMoQUssKHQ9PnQuc3RhdGU9PVVFLkxPQURJTkcpKSkpLHRoaXMuc2Nyb2xsQmVnaW5JbmRleCQ9dGhpcy5zdG9yZS5waXBlKHJTKHpLKSksdGhpcy5zY3JvbGxCZWdpbkluZGV4VXBwZXJMaW1pdCQ9dGhpcy5zdG9yZS5waXBlKHJTKGJTKE5LLEhLLCgodCxlKT0+TWF0aC5tYXgoMCx0LWUpKSkpKSx0aGlzLnBhZ2VTaXplJD10aGlzLnN0b3JlLnBpcGUoclMoSUspKSx0aGlzLmRpc3BsYXlDb3VudCQ9dGhpcy5zdG9yZS5waXBlKHJTKEhLKSksdGhpcy5kaXNwbGF5RXhlY3V0aW9uRGlnZXN0cyQ9dGhpcy5zdG9yZS5waXBlKHJTKGJTKEZLLCh0PT50Lm1hcCgodD0+KGZ1bmN0aW9uIGUodCxuPTEpe2lmKCF0KXJldHVybntvcF90eXBlOiIoTi9BKSIsc2hvcnRfb3BfdHlwZToiLi4iLGlzX2dyYXBoOiExfTtjb25zdCBvPWhRLmZpbHRlcigoZT0+dC5vcF90eXBlLnN0YXJ0c1dpdGgoZSkpKTtpZihvLmxlbmd0aCl7Y29uc3QgZT10Lm9wX3R5cGUuc2xpY2Uob1swXS5sZW5ndGgpO3JldHVybntvcF90eXBlOnQub3BfdHlwZSxzaG9ydF9vcF90eXBlOmUuc2xpY2UoMCxuKSxpc19ncmFwaDohMH19cmV0dXJue29wX3R5cGU6dC5vcF90eXBlLHNob3J0X29wX3R5cGU6dC5vcF90eXBlLnNsaWNlKDAsbiksaXNfZ3JhcGg6ITF9fSkodCkpKSkpKSksdGhpcy5kaXNwbGF5Rm9jdXNlZEFsZXJ0VHlwZXMkPXRoaXMuc3RvcmUucGlwZShyUyh0SikpLHRoaXMuZm9jdXNlZEV4ZWN1dGlvbkluZGV4JD10aGlzLnN0b3JlLnBpcGUoclMobkopKSx0aGlzLmZvY3VzZWRFeGVjdXRpb25EaXNwbGF5SW5kZXgkPXRoaXMuc3RvcmUucGlwZShyUyhvSikpLHRoaXMubnVtRXhlY3V0aW9ucyQ9dGhpcy5zdG9yZS5waXBlKHJTKE5LKSl9b25OYXZpZ2F0ZUxlZnQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKEJYKCkpfW9uTmF2aWdhdGVSaWdodCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2goVlgoKSl9b25FeGVjdXRpb25EaWdlc3RDbGlja2VkKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2goVVgoe2Rpc3BsYXlJbmRleDp0fSkpfW9uU2xpZGVyQ2hhbmdlKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2goalgoe2luZGV4OnR9KSl9fWZ1bmN0aW9uIHlRKHQsZSl7MSZ0JiYoQ2YoMCwic3BhbiIpLFB1KDEsIiBPdXRwdXQgIiksTWYoKSl9ZnVuY3Rpb24gX1EodCxlKXsxJnQmJihDZigwLCJzcGFuIiksUHUoMSwiIElucHV0ICIpLE1mKCkpfWZ1bmN0aW9uIENRKHQsZSl7aWYoMSZ0JiYoQ2YoMCwiZGl2Iiw2KSxDZigxLCJzcGFuIiw3KSxIbSgyLHlRLDIsMCwic3BhbiIsOCksSG0oMyxfUSwyLDAsInNwYW4iLDgpLE1mKCksUHUoNCksTWYoKSksMiZ0KXtjb25zdCB0PXpmKCk7RGMoMSksYmYoIm5nU3dpdGNoIix0LmtpbmQpLERjKDEpLGJmKCJuZ1N3aXRjaENhc2UiLCJpbnB1dCIpLERjKDEpLGJmKCJuZ1N3aXRjaENhc2UiLCJjb25zdW1lciIpLERjKDEpLGt1KCIgc2xvdDogIix0LnNsb3QsIiAiKX19ZnVuY3Rpb24gTVEodCxlKXtpZigxJnQmJihDZigwLCJkaXYiLDkpLFB1KDEpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigpO0RjKDEpLGt1KCIgIix0Lm9wRGF0YS5vcF90eXBlLCIgIil9fWZ1bmN0aW9uIHZRKHQsZSl7MSZ0JiYoQ2YoMCwic3BhbiIsMTApLFB1KDEsIiAoT3AgaW5mbyB1bmF2YWlsYWJsZS4pICIpLE1mKCkpfWJRLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxiUSkoZ2YoaVMpKX0sYlEuybVjbXA9c28oe3R5cGU6YlEsc2VsZWN0b3JzOltbInRmLWRlYnVnZ2VyLXYyLXRpbWVsaW5lIl1dLGRlY2xzOjEyLHZhcnM6MzMsY29uc3RzOltbMywiYWN0aXZlUnVuSWQiLCJsb2FkaW5nTnVtRXhlY3V0aW9ucyIsIm51bUV4ZWN1dGlvbnMiLCJzY3JvbGxCZWdpbkluZGV4Iiwic2Nyb2xsQmVnaW5JbmRleFVwcGVyTGltaXQiLCJwYWdlU2l6ZSIsImRpc3BsYXlDb3VudCIsImRpc3BsYXlFeGVjdXRpb25EaWdlc3RzIiwiZGlzcGxheUZvY3VzZWRBbGVydFR5cGVzIiwiZm9jdXNlZEV4ZWN1dGlvbkluZGV4IiwiZm9jdXNlZEV4ZWN1dGlvbkRpc3BsYXlJbmRleCIsIm9uTmF2aWdhdGVMZWZ0Iiwib25OYXZpZ2F0ZVJpZ2h0Iiwib25FeGVjdXRpb25EaWdlc3RDbGlja2VkIiwib25TbGlkZXJDaGFuZ2UiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKENmKDAsInRpbWVsaW5lLWNvbXBvbmVudCIsMCksUmYoIm9uTmF2aWdhdGVMZWZ0IiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uTmF2aWdhdGVMZWZ0KCl9KSkoIm9uTmF2aWdhdGVSaWdodCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbk5hdmlnYXRlUmlnaHQoKX0pKSgib25FeGVjdXRpb25EaWdlc3RDbGlja2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbkV4ZWN1dGlvbkRpZ2VzdENsaWNrZWQoZSl9KSkoIm9uU2xpZGVyQ2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblNsaWRlckNoYW5nZShlKX0pKSxfeSgxLCJhc3luYyIpLF95KDIsImFzeW5jIiksX3koMywiYXN5bmMiKSxfeSg0LCJhc3luYyIpLF95KDUsImFzeW5jIiksX3koNiwiYXN5bmMiKSxfeSg3LCJhc3luYyIpLF95KDgsImFzeW5jIiksX3koOSwiYXN5bmMiKSxfeSgxMCwiYXN5bmMiKSxfeSgxMSwiYXN5bmMiKSxNZigpKSwyJmUmJmJmKCJhY3RpdmVSdW5JZCIsQ3koMSwxMSxuLmFjdGl2ZVJ1bklkJCkpKCJsb2FkaW5nTnVtRXhlY3V0aW9ucyIsQ3koMiwxMyxuLmxvYWRpbmdOdW1FeGVjdXRpb25zJCkpKCJudW1FeGVjdXRpb25zIixDeSgzLDE1LG4ubnVtRXhlY3V0aW9ucyQpKSgic2Nyb2xsQmVnaW5JbmRleCIsQ3koNCwxNyxuLnNjcm9sbEJlZ2luSW5kZXgkKSkoInNjcm9sbEJlZ2luSW5kZXhVcHBlckxpbWl0IixDeSg1LDE5LG4uc2Nyb2xsQmVnaW5JbmRleFVwcGVyTGltaXQkKSkoInBhZ2VTaXplIixDeSg2LDIxLG4ucGFnZVNpemUkKSkoImRpc3BsYXlDb3VudCIsQ3koNywyMyxuLmRpc3BsYXlDb3VudCQpKSgiZGlzcGxheUV4ZWN1dGlvbkRpZ2VzdHMiLEN5KDgsMjUsbi5kaXNwbGF5RXhlY3V0aW9uRGlnZXN0cyQpKSgiZGlzcGxheUZvY3VzZWRBbGVydFR5cGVzIixDeSg5LDI3LG4uZGlzcGxheUZvY3VzZWRBbGVydFR5cGVzJCkpKCJmb2N1c2VkRXhlY3V0aW9uSW5kZXgiLEN5KDEwLDI5LG4uZm9jdXNlZEV4ZWN1dGlvbkluZGV4JCkpKCJmb2N1c2VkRXhlY3V0aW9uRGlzcGxheUluZGV4IixDeSgxMSwzMSxuLmZvY3VzZWRFeGVjdXRpb25EaXNwbGF5SW5kZXgkKSl9LGRpcmVjdGl2ZXM6W2dRXSxwaXBlczpbVnZdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoYlEsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoidGYtZGVidWdnZXItdjItdGltZWxpbmUiLHRlbXBsYXRlOidcbiAgICA8dGltZWxpbmUtY29tcG9uZW50XG4gICAgICBbYWN0aXZlUnVuSWRdPSJhY3RpdmVSdW5JZCQgfCBhc3luYyJcbiAgICAgIFtsb2FkaW5nTnVtRXhlY3V0aW9uc109ImxvYWRpbmdOdW1FeGVjdXRpb25zJCB8IGFzeW5jIlxuICAgICAgW251bUV4ZWN1dGlvbnNdPSJudW1FeGVjdXRpb25zJCB8IGFzeW5jIlxuICAgICAgW3Njcm9sbEJlZ2luSW5kZXhdPSJzY3JvbGxCZWdpbkluZGV4JCB8IGFzeW5jIlxuICAgICAgW3Njcm9sbEJlZ2luSW5kZXhVcHBlckxpbWl0XT0ic2Nyb2xsQmVnaW5JbmRleFVwcGVyTGltaXQkIHwgYXN5bmMiXG4gICAgICBbcGFnZVNpemVdPSJwYWdlU2l6ZSQgfCBhc3luYyJcbiAgICAgIFtkaXNwbGF5Q291bnRdPSJkaXNwbGF5Q291bnQkIHwgYXN5bmMiXG4gICAgICBbZGlzcGxheUV4ZWN1dGlvbkRpZ2VzdHNdPSJkaXNwbGF5RXhlY3V0aW9uRGlnZXN0cyQgfCBhc3luYyJcbiAgICAgIFtkaXNwbGF5Rm9jdXNlZEFsZXJ0VHlwZXNdPSJkaXNwbGF5Rm9jdXNlZEFsZXJ0VHlwZXMkIHwgYXN5bmMiXG4gICAgICBbZm9jdXNlZEV4ZWN1dGlvbkluZGV4XT0iZm9jdXNlZEV4ZWN1dGlvbkluZGV4JCB8IGFzeW5jIlxuICAgICAgW2ZvY3VzZWRFeGVjdXRpb25EaXNwbGF5SW5kZXhdPSJmb2N1c2VkRXhlY3V0aW9uRGlzcGxheUluZGV4JCB8IGFzeW5jIlxuICAgICAgKG9uTmF2aWdhdGVMZWZ0KT0ib25OYXZpZ2F0ZUxlZnQoKSJcbiAgICAgIChvbk5hdmlnYXRlUmlnaHQpPSJvbk5hdmlnYXRlUmlnaHQoKSJcbiAgICAgIChvbkV4ZWN1dGlvbkRpZ2VzdENsaWNrZWQpPSJvbkV4ZWN1dGlvbkRpZ2VzdENsaWNrZWQoJGV2ZW50KSJcbiAgICAgIChvblNsaWRlckNoYW5nZSk9Im9uU2xpZGVyQ2hhbmdlKCRldmVudCkiXG4gICAgPjwvdGltZWxpbmUtY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSksbnVsbCk7Y29uc3QgeFE9ZnVuY3Rpb24odCl7cmV0dXJuW3RdfTtjbGFzcyBPUXtjb25zdHJ1Y3Rvcigpe3RoaXMub25PcE5hbWVDbGljaz1uZXcgU3l9fWZ1bmN0aW9uIFBRKHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwiZGl2IiwxMyksQ2YoMSwiZGl2IiwxNCksUHUoMiksTWYoKSxDZigzLCJncmFwaC1vcCIsMTUpLFJmKCJvbk9wTmFtZUNsaWNrIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtjb25zdCBvPXpmKDMpO3JldHVybiBvLm9uR3JhcGhPcE5hdmlnYXRlLmVtaXQoe29wX25hbWU6bi5vcF9uYW1lLGdyYXBoX2lkOm8uZ3JhcGhJZH0pfSkpLE1mKCksTWYoKX1pZigyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj1lLmluZGV4O0RjKDIpLGt1KCJJbnB1dCBzbG90ICIsbiwiOiIpLERjKDEpLGJmKCJraW5kIiwiaW5wdXQiKSgib3BOYW1lIix0Lm9wX25hbWUpKCJzbG90Iix0Lm91dHB1dF9zbG90KSgib3BEYXRhIix0LmRhdGEpfX1mdW5jdGlvbiB3USh0LGUpe2lmKDEmdCYmKENmKDAsImRpdiIsMTEpLENmKDEsImRpdiIpLEhtKDIsUFEsNCw1LCJkaXYiLDEyKSxNZigpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigyKTtEYygyKSxiZigibmdGb3JPZiIsdC5pbnB1dE9wcyl9fWZ1bmN0aW9uIGtRKHQsZSl7MSZ0JiYoQ2YoMCwiZGl2IiwxNiksUHUoMSwiIChUaGlzIG9wIGhhcyBubyBpbnB1dCB0ZW5zb3IuKSAiKSxNZigpKX1mdW5jdGlvbiBTUSh0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO0NmKDAsImRpdiIsMjMpLENmKDEsImdyYXBoLW9wIiwxNSksUmYoIm9uT3BOYW1lQ2xpY2siLChmdW5jdGlvbiBlKG4pe1BpKHQpO2NvbnN0IG89emYoNCk7cmV0dXJuIG8ub25HcmFwaE9wTmF2aWdhdGUuZW1pdCh7b3BfbmFtZTpuLm9wX25hbWUsZ3JhcGhfaWQ6by5ncmFwaElkfSl9KSksTWYoKSxNZigpfWlmKDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdDtEYygxKSxiZigia2luZCIsImNvbnN1bWVyIikoIm9wTmFtZSIsdC5vcF9uYW1lKSgic2xvdCIsdC5pbnB1dF9zbG90KSgib3BEYXRhIix0LmRhdGEpfX1mdW5jdGlvbiBEUSh0LGUpe2lmKDEmdCYmKENmKDAsImRpdiIsMTkpLENmKDEsImRpdiIsMjApLFB1KDIpLENmKDMsInNwYW4iKSxSaCg0LDIxKSxNZigpLFB1KDUsIikgIiksTWYoKSxIbSg2LFNRLDIsNCwiZGl2IiwyMiksTWYoKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49ZS5pbmRleDtEYygyKSxTdSgiIE91dHB1dCBzbG90ICIsbiwiOiAoIix0Lmxlbmd0aCwiICIpLERjKDIpLEFoKHQubGVuZ3RoKSxUaCg0KSxEYygyKSxiZigibmdGb3JPZiIsdCl9fWZ1bmN0aW9uIFJRKHQsZSl7aWYoMSZ0JiYoQ2YoMCwiZGl2IiwxNyksQ2YoMSwiZGl2IiksSG0oMixEUSw3LDQsImRpdiIsMTgpLE1mKCksTWYoKSksMiZ0KXtjb25zdCB0PXpmKDIpO0RjKDIpLGJmKCJuZ0Zvck9mIix0LmNvbnN1bWVyT3BzKX19ZnVuY3Rpb24gRVEodCxlKXtpZigxJnQmJihDZigwLCJkaXYiLDI0KSxQdSgxKSxDZigyLCJzcGFuIiksUmgoMywyNSksTWYoKSxQdSg0LCIgYW5kIG5vIGNvbnN1bWVyLikgIiksTWYoKSksMiZ0KXtjb25zdCB0PXpmKDIpO0RjKDEpLGt1KCIgKFRoaXMgb3AgaGFzICIsdC5vcEluZm8uY29uc3VtZXJzLmxlbmd0aCwiIG91dHB1dCAiKSxEYygyKSxBaCh0Lm9wSW5mby5jb25zdW1lcnMubGVuZ3RoKSxUaCgzKX19ZnVuY3Rpb24gQVEodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJkaXYiKSxIbSgxLHdRLDMsMSwiZGl2Iiw0KSxIbSgyLGtRLDIsMCwibmctdGVtcGxhdGUiLG51bGwsNSxxeSksQ2YoNCwiZGl2Iiw2KSxDZig1LCJkaXYiLDcpLFB1KDYsIk9wOiIpLE1mKCksQ2YoNywiZ3JhcGgtb3AiLDgpLFJmKCJvbk9wTmFtZUNsaWNrIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtjb25zdCBvPXpmKCk7cmV0dXJuIG8ub25HcmFwaE9wTmF2aWdhdGUuZW1pdCh7b3BfbmFtZTpuLm9wX25hbWUsZ3JhcGhfaWQ6by5ncmFwaElkfSl9KSksTWYoKSxNZigpLEhtKDgsUlEsMywxLCJkaXYiLDkpLEhtKDksRVEsNSwyLCJuZy10ZW1wbGF0ZSIsbnVsbCwxMCxxeSksTWYoKX1pZigyJnQpe2NvbnN0IHQ9Rm0oMyksZT1GbSgxMCksbj16ZigpO0RjKDEpLGJmKCJuZ0lmIixuLmlucHV0T3BzLmxlbmd0aD4wKSgibmdJZkVsc2UiLHQpLERjKDYpLGJmKCJraW5kIiwic2VsZiIpKCJvcE5hbWUiLG4ub3BJbmZvLm9wX25hbWUpKCJvcERhdGEiLG4ub3BJbmZvKSxEYygxKSxiZigibmdJZiIsbi50b3RhbE51bUNvbnN1bWVycz4wKSgibmdJZkVsc2UiLGUpfX1mdW5jdGlvbiBUUSh0LGUpezEmdCYmKENmKDAsInNwYW4iLDI2KSxQdSgxLCIgKE9wIGluZm8gdW5hdmFpbGFibGUuKSAiKSxNZigpKX1mdW5jdGlvbiBOUSh0LGUpezEmdCYmKENmKDAsImRpdiIsMjcpLFB1KDEsIiBObyBncmFwaCBvcCBzZWxlY3RlZC4gQ2xpY2sgYSB0ZW5zb3IgbmFtZSBpbiB0aGUgR3JhcGggRXhlY3V0aW9ucyB0YWJsZSB0byB2aWV3IHRoZSBuZWlnaGJvcmhvb2Qgb2YgdGhlIHRlbnNvcidzIG9wIGluIGl0cyBncmFwaC4gIiksTWYoKSl9T1EuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE9RKX0sT1EuybVjbXA9c28oe3R5cGU6T1Esc2VsZWN0b3JzOltbImdyYXBoLW9wIl1dLGlucHV0czp7a2luZDoia2luZCIsb3BOYW1lOiJvcE5hbWUiLHNsb3Q6InNsb3QiLG9wRGF0YToib3BEYXRhIn0sb3V0cHV0czp7b25PcE5hbWVDbGljazoib25PcE5hbWVDbGljayJ9LGRlY2xzOjksdmFyczo3LGNvbnN0czpbWzEsIm9wLWNvbnRhaW5lciJdLFsxLCJpbnB1dC10ZW5zb3ItbmFtZSJdLFsxLCJvcC1uYW1lIiwzLCJuZ0NsYXNzIiwiY2xpY2siXSxbImNsYXNzIiwic2xvdCIsNCwibmdJZiJdLFsiY2xhc3MiLCJvcC10eXBlIiw0LCJuZ0lmIiwibmdJZkVsc2UiXSxbIm9wSW5mb01pc3NpbmciLCIiXSxbMSwic2xvdCJdLFszLCJuZ1N3aXRjaCJdLFs0LCJuZ1N3aXRjaENhc2UiXSxbMSwib3AtdHlwZSJdLFsxLCJvcC1pbmZvLW1pc3NpbmciXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKENmKDAsImJ1dHRvbiIsMCksQ2YoMSwiZGl2IiwxKSxDZigyLCJidXR0b24iLDIpLFJmKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbk9wTmFtZUNsaWNrLmVtaXQoe29wX25hbWU6bi5vcE5hbWV9KX0pKSxDZigzLCJzcGFuIiksUHUoNCksTWYoKSxNZigpLEhtKDUsQ1EsNSw0LCJkaXYiLDMpLE1mKCksSG0oNixNUSwyLDEsImRpdiIsNCksSG0oNyx2USwyLDAsIm5nLXRlbXBsYXRlIixudWxsLDUscXkpLE1mKCkpLDImZSl7Y29uc3QgdD1GbSg4KTtEYygyKSxiZigibmdDbGFzcyIsaXkoNSx4USwic2VsZiI9PT1uLmtpbmQ/InNlbGYtb3AtbmFtZSI6IiIpKSxEYygyKSx3dShuLm9wTmFtZSksRGMoMSksYmYoIm5nSWYiLCJzZWxmIiE9PW4ua2luZCksRGMoMSksYmYoIm5nSWYiLHZvaWQgMCE9PW4ub3BEYXRhKSgibmdJZkVsc2UiLHQpfX0sZGlyZWN0aXZlczpbQ3YsUHYsRHYsUnZdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5vcC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAub3AtbmFtZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6aW5oZXJpdDtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXR9Lm9wLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjJweCBzb2xpZCAjZWJlYmViO2JvcmRlci1yYWRpdXM6NHB4O2JveC1zaGFkb3c6MXB4IDNweCAjZWVlO2N1cnNvcjpwb2ludGVyO21hcmdpbjowIDVweCAwIDA7cGFkZGluZzoycHggNnB4O3RleHQtYWxpZ246cmlnaHQ7d2lkdGg6MjAwcHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLm9wLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjoycHggc29saWQgIzU1NX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAub3AtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm9wLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym94LXNoYWRvdzoxcHggM3B4ICM3NTc1NzV9Lm9wLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXN7b3V0bGluZTowfS5vcC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmhvdmVye2JvcmRlcjoycHggc29saWQgI2ZmZDNiMn0ub3AtaW5mby1taXNzaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpncmF5fS5vcC1uYW1lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jaztvdmVyZmxvdy13cmFwOmFueXdoZXJlO3BhZGRpbmc6MDt0ZXh0LWFsaWduOnJpZ2h0O3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7d2hpdGUtc3BhY2U6cHJlLXdyYXB9Lm9wLW5hbWVbX25nY29udGVudC0lQ09NUCVdOmZvY3Vze291dGxpbmU6MH0ub3AtdHlwZVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZWNlZmYxO2JvcmRlcjoxcHggc29saWQgI2ViZWJlYjtib3JkZXItcmFkaXVzOjRweDtmb250LWZhbWlseToiUm9ib3RvIE1vbm8iLG1vbm9zcGFjZTtmb250LXNpemU6MTBweDtoZWlnaHQ6MTRweDtsaW5lLWhlaWdodDoxNHB4O3BhZGRpbmc6MXB4IDNweDt3aWR0aDptYXgtY29udGVudDtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tdG9wOjNweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAub3AtdHlwZVtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MXB4IHNvbGlkICM1NTV9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLm9wLXR5cGVbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAub3AtdHlwZVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojNDU1YTY0fS5zZWxmLW9wLW5hbWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OmJvbGQ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnNsb3RbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLnNsb3RbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuc2xvdFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9J119KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKE9RLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6ImdyYXBoLW9wIix0ZW1wbGF0ZVVybDoiZ3JhcGhfb3BfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vZ3JhcGhfb3BfY29tcG9uZW50LmNzcyJdfV19XSxudWxsLHtraW5kOlt7dHlwZTpSX31dLG9wTmFtZTpbe3R5cGU6Ul99XSxzbG90Olt7dHlwZTpSX31dLG9wRGF0YTpbe3R5cGU6Ul99XSxvbk9wTmFtZUNsaWNrOlt7dHlwZTpFX31dfSk7Y2xhc3MgelF7Y29uc3RydWN0b3IoKXt0aGlzLm9uR3JhcGhPcE5hdmlnYXRlPW5ldyBTeX1nZXQgZ3JhcGhJZCgpe3JldHVybiB0aGlzLm9wSW5mby5ncmFwaF9pZHNbdGhpcy5vcEluZm8uZ3JhcGhfaWRzLmxlbmd0aC0xXX1nZXQgdG90YWxOdW1Db25zdW1lcnMoKXtyZXR1cm4gdGhpcy5jb25zdW1lck9wcy5yZWR1Y2UoKCh0LGUpPT50K2UubGVuZ3RoKSwwKX19elEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHpRKX0selEuybVjbXA9c28oe3R5cGU6elEsc2VsZWN0b3JzOltbImdyYXBoLWNvbXBvbmVudCJdXSxpbnB1dHM6e29wSW5mbzoib3BJbmZvIixpbnB1dE9wczoiaW5wdXRPcHMiLGNvbnN1bWVyT3BzOiJjb25zdW1lck9wcyJ9LG91dHB1dHM6e29uR3JhcGhPcE5hdmlnYXRlOiJvbkdyYXBoT3BOYXZpZ2F0ZSJ9LGRlY2xzOjksdmFyczoyLGNvbnN0czpmdW5jdGlvbigpe2xldCB0LGUsbixvO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlKXt0PWdvb2cuZ2V0TXNnKCJ7VkFSX1BMVVJBTCwgcGx1cmFsLCA9MCB7Y29uc3VtZXJ9ID0xIHtjb25zdW1lcn0gb3RoZXIge2NvbnN1bWVyc319Iil9ZWxzZSB0PSRsb2NhbGl6ZWA64pCfZmU1NWY5YjE5M2VhMjBhYWU1YjU2MzVlNjhkOTM4NjUwMzg0Nzc0NuKQnzQ5NTUxMzM3NDA4NDEyOTk4NTE6e1ZBUl9QTFVSQUwsIHBsdXJhbCwgPTAge2NvbnN1bWVyfSA9MSB7Y29uc3VtZXJ9IG90aGVyIHtjb25zdW1lcnN9fWA7aWYodD1OaCh0LHtWQVJfUExVUkFMOiLvv70w77+9In0pLCJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlKXtlPWdvb2cuZ2V0TXNnKCIgeyRpY3V9Iix7aWN1OnR9KX1lbHNlIGU9JGxvY2FsaXplYDrikJ9iYWE0NjBlMmYyYjg1N2UyNjI5MmIyNDZmYzE4YWUwZWE5YjVlNTM34pCfNTU1NjM0MDM0Mzg1MDE2NTUxNjogJHt0fTpJQ1U6YDtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZSl7bj1nb29nLmdldE1zZygie1ZBUl9QTFVSQUwsIHBsdXJhbCwgPTAge3RlbnNvcn0gPTEge3RlbnNvcn0gb3RoZXIge3RlbnNvcnN9fSIpfWVsc2Ugbj0kbG9jYWxpemVgOuKQnzZhYTc1ZjYyN2UwZGMxNjE1MGVmNDQ4NDY0ZTBjODU3YWFhMGRjMTjikJ81MTU2NzEyOTM1MTUwNTg2ODc4OntWQVJfUExVUkFMLCBwbHVyYWwsID0wIHt0ZW5zb3J9ID0xIHt0ZW5zb3J9IG90aGVyIHt0ZW5zb3JzfX1gO2lmKG49Tmgobix7VkFSX1BMVVJBTDoi77+9MO+/vSJ9KSwidW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZSl7bz1nb29nLmdldE1zZygiIHskaWN1fSIse2ljdTpufSl9ZWxzZSBvPSRsb2NhbGl6ZWA64pCfODkzNDc2YzJjNDIxY2VlNDc2NjNjOTczMmZhNDFhNzUwZDNhNzNkZuKQnzI0NjA2NzA1MzczNTE2MjYzNDogJHtufTpJQ1U6YDtyZXR1cm5bWzEsImdyYXBoLXN0cnVjdHVyZS1jb250YWluZXIiXSxbNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJvcEluZm9NaXNzaW5nIiwiIl0sWyJub09wRm9jdXNlZCIsIiJdLFsiY2xhc3MiLCJpbnB1dHMtY29udGFpbmVyIiw0LCJuZ0lmIiwibmdJZkVsc2UiXSxbIm5vSW5wdXRzIiwiIl0sWzEsInNlbGYtb3AtY29udGFpbmVyIl0sWzEsInNlbGYtb3AtaGVhZGVyIl0sWzMsImtpbmQiLCJvcE5hbWUiLCJvcERhdGEiLCJvbk9wTmFtZUNsaWNrIl0sWyJjbGFzcyIsImNvbnN1bWVycy1jb250YWluZXIiLDQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsibm9Db25zdW1lcnMiLCIiXSxbMSwiaW5wdXRzLWNvbnRhaW5lciJdLFsiY2xhc3MiLCJpbnB1dC1vcC1zZWN0aW9uIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiaW5wdXQtb3Atc2VjdGlvbiJdLFsxLCJpbnB1dC1zbG90LWhlYWRlciJdLFszLCJraW5kIiwib3BOYW1lIiwic2xvdCIsIm9wRGF0YSIsIm9uT3BOYW1lQ2xpY2siXSxbMSwiaW5wdXRzLWNvbnRhaW5lciIsIm5vLWlucHV0cy1pbmRpY2F0b3IiXSxbMSwiY29uc3VtZXJzLWNvbnRhaW5lciJdLFsiY2xhc3MiLCJzbG90LWNvbnN1bWVycy1jb250YWluZXIiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJzbG90LWNvbnN1bWVycy1jb250YWluZXIiXSxbMSwic2xvdC1jb25zdW1lcnMtaGVhZGVyIl0sZSxbImNsYXNzIiwiY29uc3VtZXItc2VjdGlvbiIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImNvbnN1bWVyLXNlY3Rpb24iXSxbMSwib3AtY29uc3VtZXJzLWNvbnRhaW5lciJdLG8sWzEsIm9wLWluZm8tbWlzc2luZyJdLFsxLCJuby1vcC1mb2N1c2VkIl1dfSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoQ2YoMCwiZGl2IiksQ2YoMSwiZGl2IiksUHUoMiwiR3JhcGggU3RydWN0dXJlIiksTWYoKSxDZigzLCJkaXYiLDApLEhtKDQsQVEsMTEsNywiZGl2IiwxKSxNZigpLEhtKDUsVFEsMiwwLCJuZy10ZW1wbGF0ZSIsbnVsbCwyLHF5KSxIbSg3LE5RLDIsMCwibmctdGVtcGxhdGUiLG51bGwsMyxxeSksTWYoKSksMiZlKXtjb25zdCB0PUZtKDgpO0RjKDQpLGJmKCJuZ0lmIixudWxsIT1uLm9wSW5mbykoIm5nSWZFbHNlIix0KX19LGRpcmVjdGl2ZXM6W1B2LE9RLHh2XSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde292ZXJmbG93LXk6YXV0b30uY29uc3VtZXJzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206NXB4O292ZXJmbG93LXg6YXV0bzt3aGl0ZS1zcGFjZTpub3dyYXB9LmNvbnN1bWVyLXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjVweCAwfS5ncmFwaC1zdHJ1Y3R1cmUtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtvdmVyZmxvdy15OmF1dG87d2hpdGUtc3BhY2U6bm93cmFwfS5pbnB1dHMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xMik7bWFyZ2luLXRvcDo1cHg7b3ZlcmZsb3cteDphdXRvO3BhZGRpbmctYm90dG9tOjA7d2hpdGUtc3BhY2U6bm93cmFwfS5pbnB1dC1vcC1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEyKTtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6NXB4O3BhZGRpbmctYm90dG9tOjVweH0uaW5wdXQtc2xvdC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2ZmZjA5OTttYXJnaW4tYm90dG9tOjVweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuaW5wdXQtc2xvdC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuaW5wdXQtc2xvdC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2U2NTEwMH0uaW5wdXQtdGVuc29yLW5hbWVbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwfS5uby1vcC1mb2N1c2VkW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpncmF5O2ZvbnQtZmFtaWx5OiJSb2JvdG8iLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxM3B4O3doaXRlLXNwYWNlOm5vcm1hbH0uc2VsZi1vcC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OmJvbGQ7bWFyZ2luLWJvdHRvbTo1cHh9LnNlbGYtb3AtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xMik7cGFkZGluZy1ib3R0b206NXB4fS5zbG90LWNvbnN1bWVycy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgwLDAsMCwuMTIpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDo1cHg7cGFkZGluZy10b3A6NXB4O3ZlcnRpY2FsLWFsaWduOnRvcH0uc2xvdC1jb25zdW1lcnMtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXB9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHpRLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6ImdyYXBoLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vZ3JhcGhfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vZ3JhcGhfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLG51bGwse29wSW5mbzpbe3R5cGU6Ul99XSxpbnB1dE9wczpbe3R5cGU6Ul99XSxjb25zdW1lck9wczpbe3R5cGU6Ul99XSxvbkdyYXBoT3BOYXZpZ2F0ZTpbe3R5cGU6RV99XX0pO2NsYXNzIElRe2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLm9wSW5mbyQ9dGhpcy5zdG9yZS5waXBlKHJTKEtLKSksdGhpcy5pbnB1dE9wcyQ9dGhpcy5zdG9yZS5waXBlKHJTKEpLKSksdGhpcy5jb25zdW1lck9wcyQ9dGhpcy5zdG9yZS5waXBlKHJTKCRLKSl9b25HcmFwaE9wTmF2aWdhdGUodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChKWCh0KSl9fWZ1bmN0aW9uIEhRKHQsZSl7MSZ0JiYoQ2YoMCwiZGl2IiwxMiksUHUoMSwi4pa2IiksTWYoKSl9SVEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fElRKShnZihpUykpfSxJUS7JtWNtcD1zbyh7dHlwZTpJUSxzZWxlY3RvcnM6W1sidGYtZGVidWdnZXItdjItZ3JhcGgiXV0sZGVjbHM6NCx2YXJzOjksY29uc3RzOltbMywib3BJbmZvIiwiaW5wdXRPcHMiLCJjb25zdW1lck9wcyIsIm9uR3JhcGhPcE5hdmlnYXRlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJncmFwaC1jb21wb25lbnQiLDApLFJmKCJvbkdyYXBoT3BOYXZpZ2F0ZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25HcmFwaE9wTmF2aWdhdGUoZSl9KSksX3koMSwiYXN5bmMiKSxfeSgyLCJhc3luYyIpLF95KDMsImFzeW5jIiksTWYoKSksMiZlJiZiZigib3BJbmZvIixDeSgxLDMsbi5vcEluZm8kKSkoImlucHV0T3BzIixDeSgyLDUsbi5pbnB1dE9wcyQpKSgiY29uc3VtZXJPcHMiLEN5KDMsNyxuLmNvbnN1bWVyT3BzJCkpfSxkaXJlY3RpdmVzOlt6UV0scGlwZXM6W1Z2XSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKElRLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6InRmLWRlYnVnZ2VyLXYyLWdyYXBoIix0ZW1wbGF0ZTonXG4gICAgPGdyYXBoLWNvbXBvbmVudFxuICAgICAgW29wSW5mb109Im9wSW5mbyQgfCBhc3luYyJcbiAgICAgIFtpbnB1dE9wc109ImlucHV0T3BzJCB8IGFzeW5jIlxuICAgICAgW2NvbnN1bWVyT3BzXT0iY29uc3VtZXJPcHMkIHwgYXN5bmMiXG4gICAgICAob25HcmFwaE9wTmF2aWdhdGUpPSJvbkdyYXBoT3BOYXZpZ2F0ZSgkZXZlbnQpIlxuICAgID48L2dyYXBoLWNvbXBvbmVudD5cbiAgJ31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfV19KSxudWxsKTtjb25zdCBGUT1mdW5jdGlvbih0LGUpe3JldHVybnt0ZW5zb3JEZWJ1Z01vZGU6dCxhcnJheTplfX07ZnVuY3Rpb24gTFEodCxlKXtpZigxJnQmJnZmKDAsImRlYnVnLXRlbnNvci12YWx1ZSIsMTcpLDImdCl7Y29uc3QgdD16ZigyKS4kaW1wbGljaXQsZT16ZigyKTtiZigiZGVidWdUZW5zb3JWYWx1ZSIsZS5wYXJzZURlYnVnVGVuc29yVmFsdWUoYXkoMSxGUSxlLmdyYXBoRXhlY3V0aW9uRGF0YVt0XS50ZW5zb3JfZGVidWdfbW9kZSxlLmdyYXBoRXhlY3V0aW9uRGF0YVt0XS5kZWJ1Z190ZW5zb3JfdmFsdWUpKSl9fWZ1bmN0aW9uIEJRKHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwiZGl2IiksQ2YoMSwiZGl2IiwxMyksQ2YoMiwiYnV0dG9uIiwxNCksUmYoImNsaWNrIiwoZnVuY3Rpb24gZSgpe1BpKHQpO2NvbnN0IG49emYoKS4kaW1wbGljaXQsbz16ZigyKTtyZXR1cm4gby5vblRlbnNvck5hbWVDbGljay5lbWl0KHtpbmRleDpuLGdyYXBoX2lkOm8uZ3JhcGhFeGVjdXRpb25EYXRhW25dLmdyYXBoX2lkLG9wX25hbWU6by5ncmFwaEV4ZWN1dGlvbkRhdGFbbl0ub3BfbmFtZX0pfSkpLFB1KDMpLE1mKCksQ2YoNCwiZGl2IiwxNSksUHUoNSksTWYoKSxNZigpLEhtKDYsTFEsMSw0LCJkZWJ1Zy10ZW5zb3ItdmFsdWUiLDE2KSxNZigpfWlmKDImdCl7Y29uc3QgdD16ZigpLiRpbXBsaWNpdCxlPXpmKDIpO0RjKDIpLExmKCJ0aXRsZSIsZS5nZXRUZW5zb3JOYW1lKHQpKSxEYygxKSxrdSgiICIsZS5nZXRUZW5zb3JOYW1lKHQpLCIgIiksRGMoMiksd3UoZS5ncmFwaEV4ZWN1dGlvbkRhdGFbdF0ub3BfdHlwZSksRGMoMSksYmYoIm5nSWYiLG51bGwhPT1lLmdyYXBoRXhlY3V0aW9uRGF0YVt0XS5kZWJ1Z190ZW5zb3JfdmFsdWUpfX1mdW5jdGlvbiBWUSh0LGUpezEmdCYmKENmKDAsImRpdiIsMTgpLFB1KDEsIiBMb2FkaW5nLi4uICIpLE1mKCkpfWNvbnN0IGpRPWZ1bmN0aW9uKHQpe3JldHVybnsiaW5wdXQtb2YtZm9jdXMiOnR9fTtmdW5jdGlvbiBVUSh0LGUpe2lmKDEmdCYmKENmKDAsImRpdiIsNSksQ2YoMSwiZGl2Iiw2KSxDZigyLCJkaXYiLDcpLEhtKDMsSFEsMiwwLCJkaXYiLDgpLFB1KDQpLE1mKCksSG0oNSxCUSw3LDQsImRpdiIsOSksSG0oNixWUSwyLDAsIm5nLXRlbXBsYXRlIiwxMCwxMSxxeSksTWYoKSxNZigpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj1GbSg3KSxvPXpmKDIpO0RjKDEpLGJmKCJuZ0NsYXNzIixpeSg1LGpRLG8uaXNJbnB1dE9mRm9jdXModCkpKSxEYygyKSxiZigibmdJZiIsdD09PW8uZm9jdXNJbmRleCksRGMoMSksa3UoIiAiLHQsIiAiKSxEYygxKSxiZigibmdJZiIsby5ncmFwaEV4ZWN1dGlvbkRhdGFbdF0pKCJuZ0lmRWxzZSIsbil9fWZ1bmN0aW9uIFdRKHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwiY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0IiwzKSxSZigic2Nyb2xsZWRJbmRleENoYW5nZSIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKCkub25TY3JvbGxlZEluZGV4Q2hhbmdlLmVtaXQobil9KSksSG0oMSxVUSw4LDcsImRpdiIsNCksTWYoKX1pZigyJnQpe2NvbnN0IHQ9emYoKTtEYygxKSxiZigiY2RrVmlydHVhbEZvck9mIix0LmdyYXBoRXhlY3V0aW9uSW5kaWNlcyl9fWNsYXNzIEdRe2NvbnN0cnVjdG9yKCl7dGhpcy5vblNjcm9sbGVkSW5kZXhDaGFuZ2U9bmV3IFN5LHRoaXMub25UZW5zb3JOYW1lQ2xpY2s9bmV3IFN5LHRoaXMucGFyc2VEZWJ1Z1RlbnNvclZhbHVlPUFKLHRoaXMuVEVTVF9PTkxZPXtnZXRWaWV3UG9ydDooKT0+dGhpcy52aWV3UG9ydH19bmdPbkNoYW5nZXModCl7aWYodGhpcy52aWV3UG9ydCYmdC5mb2N1c0luZGV4JiZudWxsIT09dC5mb2N1c0luZGV4LmN1cnJlbnRWYWx1ZSl7Y29uc3QgZT10aGlzLnZpZXdQb3J0LmdldFJlbmRlcmVkUmFuZ2UoKSxuPXQuZm9jdXNJbmRleC5jdXJyZW50VmFsdWUsbz1NYXRoLnJvdW5kKChlLmVuZC1lLnN0YXJ0KS8zKSxpPU1hdGgubWF4KG4tbywwKTt0aGlzLnZpZXdQb3J0LnNjcm9sbFRvSW5kZXgoaSxuPj1lLnN0YXJ0JiZuPGUuZW5kPyJzbW9vdGgiOnZvaWQgMCl9fWdldFRlbnNvck5hbWUodCl7cmV0dXJuYCR7dGhpcy5ncmFwaEV4ZWN1dGlvbkRhdGFbdF0ub3BfbmFtZX06JHt0aGlzLmdyYXBoRXhlY3V0aW9uRGF0YVt0XS5vdXRwdXRfc2xvdH1gfWlzSW5wdXRPZkZvY3VzKHQpe3JldHVybiBudWxsIT09dGhpcy5mb2N1c0lucHV0SW5kaWNlcyYmdGhpcy5mb2N1c0lucHV0SW5kaWNlcy5pbmNsdWRlcyh0KX19R1EuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEdRKX0sR1EuybVjbXA9c28oe3R5cGU6R1Esc2VsZWN0b3JzOltbImdyYXBoLWV4ZWN1dGlvbnMtY29tcG9uZW50Il1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiZWeSh0Qiw1KSwyJmUpe2xldCB0O0J5KHQ9VXkoKSkmJihuLnZpZXdQb3J0PXQuZmlyc3QpfX0saW5wdXRzOntudW1HcmFwaEV4ZWN1dGlvbnM6Im51bUdyYXBoRXhlY3V0aW9ucyIsZ3JhcGhFeGVjdXRpb25EYXRhOiJncmFwaEV4ZWN1dGlvbkRhdGEiLGdyYXBoRXhlY3V0aW9uSW5kaWNlczoiZ3JhcGhFeGVjdXRpb25JbmRpY2VzIixmb2N1c0luZGV4OiJmb2N1c0luZGV4Iixmb2N1c0lucHV0SW5kaWNlczoiZm9jdXNJbnB1dEluZGljZXMifSxvdXRwdXRzOntvblNjcm9sbGVkSW5kZXhDaGFuZ2U6Im9uU2Nyb2xsZWRJbmRleENoYW5nZSIsb25UZW5zb3JOYW1lQ2xpY2s6Im9uVGVuc29yTmFtZUNsaWNrIn0sZmVhdHVyZXM6W3FvXSxkZWNsczo0LHZhcnM6Mixjb25zdHM6W1sxLCJncmFwaC1leGVjdXRpb25zLWNvbnRhaW5lciJdLFsxLCJncmFwaC1leGVjdXRpb25zLXRpdGxlIl0sWyJpdGVtU2l6ZSIsIjM4IiwiY2xhc3MiLCJncmFwaC1leGVjdXRpb25zLXZpZXdwb3J0IiwzLCJzY3JvbGxlZEluZGV4Q2hhbmdlIiw0LCJuZ0lmIl0sWyJpdGVtU2l6ZSIsIjM4IiwxLCJncmFwaC1leGVjdXRpb25zLXZpZXdwb3J0IiwzLCJzY3JvbGxlZEluZGV4Q2hhbmdlIl0sWyJjbGFzcyIsInRlbnNvci1jb250YWluZXIiLDQsImNka1ZpcnR1YWxGb3IiLCJjZGtWaXJ0dWFsRm9yT2YiXSxbMSwidGVuc29yLWNvbnRhaW5lciJdLFsxLCJ0ZW5zb3ItaXRlbSIsMywibmdDbGFzcyJdLFsxLCJncmFwaC1leGVjdXRpb24taW5kZXgiXSxbImNsYXNzIiwiZ3JhcGgtZXhlY3V0aW9uLWZvY3VzIiw0LCJuZ0lmIl0sWzQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsiY2xhc3MiLCJ0ZW5zb3ItaXRlbSJdLFsiZGF0YUxvYWRpbmciLCIiXSxbMSwiZ3JhcGgtZXhlY3V0aW9uLWZvY3VzIl0sWzEsInRlbnNvci1uYW1lLWFuZC1vcC10eXBlIl0sWzEsInRlbnNvci1uYW1lIiwzLCJ0aXRsZSIsImNsaWNrIl0sWzEsIm9wLXR5cGUiXSxbMywiZGVidWdUZW5zb3JWYWx1ZSIsNCwibmdJZiJdLFszLCJkZWJ1Z1RlbnNvclZhbHVlIl0sWzEsImxvYWRpbmctc3Bpbm5lciJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwiZGl2IiwwKSxDZigxLCJkaXYiLDEpLFB1KDIpLE1mKCksSG0oMyxXUSwyLDEsImNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCIsMiksTWYoKSksMiZlJiYoRGMoMiksa3UoIiBHcmFwaCBFeGVjdXRpb25zICgiLG4ubnVtR3JhcGhFeGVjdXRpb25zLCIpICIpLERjKDEpLGJmKCJuZ0lmIixudWxsIT09bi5udW1HcmFwaEV4ZWN1dGlvbnMmJm4ubnVtR3JhcGhFeGVjdXRpb25zPjApKX0sZGlyZWN0aXZlczpbUHYsdEIsWEwsbkIsQ3YsdFFdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5ncmFwaC1leGVjdXRpb25zLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNlYmViZWI7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtoZWlnaHQ6MTAwJTttYXJnaW4tbGVmdDo4cHg7cGFkZGluZy1sZWZ0OjEwcHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmdyYXBoLWV4ZWN1dGlvbnMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyYXBoLWV4ZWN1dGlvbnMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItbGVmdDoxcHggc29saWQgIzU1NX0uZ3JhcGgtZXhlY3V0aW9uLWZvY3VzW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1ibG9ja30uZ3JhcGgtZXhlY3V0aW9uLWluZGV4W19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmctcmlnaHQ6NHB4O3RleHQtYWxpZ246cmlnaHQ7d2lkdGg6NDBweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZ3JhcGgtZXhlY3V0aW9uLWluZGV4W19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyYXBoLWV4ZWN1dGlvbi1pbmRleFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9LmdyYXBoLWV4ZWN1dGlvbnMtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2JveC1zaGFkb3c6MCA1cHggM3B4IC0zcHggI2NjYztwYWRkaW5nLWJvdHRvbTo1cHh9LmdyYXBoLWV4ZWN1dGlvbnMtdmlld3BvcnRbX25nY29udGVudC0lQ09NUCVde2ZsZXgtZ3JvdzoxO2ZvbnQtc2l6ZToxMnB4O3dpZHRoOjEwMCU7b3ZlcmZsb3cteDpoaWRkZW59LmlucHV0LW9mLWZvY3VzW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmYwOTl9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmlucHV0LW9mLWZvY3VzW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmlucHV0LW9mLWZvY3VzW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNlNjUxMDB9LmxvYWRpbmctc3Bpbm5lcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2t9Lm9wLXR5cGVbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2VjZWZmMTtib3JkZXI6MXB4IHNvbGlkICNlYmViZWI7Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC1mYW1pbHk6IlJvYm90byBNb25vIixtb25vc3BhY2U7Zm9udC1zaXplOjEwcHg7aGVpZ2h0OjE0cHg7bGluZS1oZWlnaHQ6MTRweDtwYWRkaW5nOjFweCAzcHg7d2lkdGg6bWF4LWNvbnRlbnQ7ZGlyZWN0aW9uOnJ0bDtkaXNwbGF5OmJsb2NrfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm9wLXR5cGVbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjoxcHggc29saWQgIzU1NX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAub3AtdHlwZVtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiM0NTVhNjR9LnRlbnNvci1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCV9LnRlbnNvci1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6bm93cmFwO2hlaWdodDozOHB4O2xpbmUtaGVpZ2h0OjM4cHg7dGV4dC1hbGlnbjpsZWZ0O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTpub3dyYXA7d2lkdGg6MTAwJX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAudGVuc29yLWl0ZW1bX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAudGVuc29yLWl0ZW1bX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM1NTV9LnRlbnNvci1uYW1lW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjppbmhlcml0O2N1cnNvcjpwb2ludGVyO2RpcmVjdGlvbjpydGw7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTZweDtsaW5lLWhlaWdodDoxNnB4O21hcmdpbjoycHggMCAxcHg7bWF4LXdpZHRoOmNhbGMoMTAwJSAtIDJweCk7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MCAycHg7dGV4dC1hbGlnbjpyaWdodDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS50ZW5zb3ItbmFtZVtfbmdjb250ZW50LSVDT01QJV06Zm9jdXN7b3V0bGluZToxcHggc29saWQgI2M2Y2FkMX0udGVuc29yLW5hbWUtYW5kLW9wLXR5cGVbX25nY29udGVudC0lQ09NUCVde2RpcmVjdGlvbjpydGw7ZGlzcGxheTppbmxpbmUtYmxvY2s7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmctcmlnaHQ6OHB4O3RleHQtYWxpZ246cmlnaHQ7d2lkdGg6MjQwcHh9ZGVidWctdGVuc29yLXZhbHVlW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MnB4IDB9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEdRLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6ImdyYXBoLWV4ZWN1dGlvbnMtY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiLi9ncmFwaF9leGVjdXRpb25zX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL2dyYXBoX2V4ZWN1dGlvbnNfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLG51bGwse251bUdyYXBoRXhlY3V0aW9uczpbe3R5cGU6Ul99XSxncmFwaEV4ZWN1dGlvbkRhdGE6W3t0eXBlOlJffV0sZ3JhcGhFeGVjdXRpb25JbmRpY2VzOlt7dHlwZTpSX31dLGZvY3VzSW5kZXg6W3t0eXBlOlJffV0sZm9jdXNJbnB1dEluZGljZXM6W3t0eXBlOlJffV0sb25TY3JvbGxlZEluZGV4Q2hhbmdlOlt7dHlwZTpFX31dLG9uVGVuc29yTmFtZUNsaWNrOlt7dHlwZTpFX31dLHZpZXdQb3J0Olt7dHlwZTphcixhcmdzOlt0Qix7c3RhdGljOiExfV19XX0pO2NsYXNzIFlRe2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLm51bUdyYXBoRXhlY3V0aW9ucyQ9dGhpcy5zdG9yZS5waXBlKHJTKFZLKSksdGhpcy5ncmFwaEV4ZWN1dGlvbkRhdGEkPXRoaXMuc3RvcmUucGlwZShyUyhxSykpLHRoaXMuZ3JhcGhFeGVjdXRpb25JbmRpY2VzJD10aGlzLnN0b3JlLnBpcGUoclMoYlMoVkssKHQ9PjA9PT10P251bGw6QXJyYXkuZnJvbSh7bGVuZ3RoOnR9KS5tYXAoKCh0LGUpPT5lKSkpKSkpLHRoaXMuZm9jdXNJbmRleCQ9dGhpcy5zdG9yZS5waXBlKHJTKFpLKSksdGhpcy5mb2N1c0lucHV0SW5kaWNlcyQ9dGhpcy5zdG9yZS5waXBlKHJTKFFLKSl9b25TY3JvbGxlZEluZGV4Q2hhbmdlKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2goWFgoe2luZGV4OnR9KSl9b25UZW5zb3JOYW1lQ2xpY2sodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChLWCh0KSl9fVlRLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxZUSkoZ2YoaVMpKX0sWVEuybVjbXA9c28oe3R5cGU6WVEsc2VsZWN0b3JzOltbInRmLWRlYnVnZ2VyLXYyLWdyYXBoLWV4ZWN1dGlvbnMiXV0sZGVjbHM6Nix2YXJzOjE1LGNvbnN0czpbWzMsIm51bUdyYXBoRXhlY3V0aW9ucyIsImdyYXBoRXhlY3V0aW9uRGF0YSIsImdyYXBoRXhlY3V0aW9uSW5kaWNlcyIsImZvY3VzSW5kZXgiLCJmb2N1c0lucHV0SW5kaWNlcyIsIm9uU2Nyb2xsZWRJbmRleENoYW5nZSIsIm9uVGVuc29yTmFtZUNsaWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJncmFwaC1leGVjdXRpb25zLWNvbXBvbmVudCIsMCksUmYoIm9uU2Nyb2xsZWRJbmRleENoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25TY3JvbGxlZEluZGV4Q2hhbmdlKGUpfSkpKCJvblRlbnNvck5hbWVDbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25UZW5zb3JOYW1lQ2xpY2soZSl9KSksX3koMSwiYXN5bmMiKSxfeSgyLCJhc3luYyIpLF95KDMsImFzeW5jIiksX3koNCwiYXN5bmMiKSxfeSg1LCJhc3luYyIpLE1mKCkpLDImZSYmYmYoIm51bUdyYXBoRXhlY3V0aW9ucyIsQ3koMSw1LG4ubnVtR3JhcGhFeGVjdXRpb25zJCkpKCJncmFwaEV4ZWN1dGlvbkRhdGEiLEN5KDIsNyxuLmdyYXBoRXhlY3V0aW9uRGF0YSQpKSgiZ3JhcGhFeGVjdXRpb25JbmRpY2VzIixDeSgzLDksbi5ncmFwaEV4ZWN1dGlvbkluZGljZXMkKSkoImZvY3VzSW5kZXgiLEN5KDQsMTEsbi5mb2N1c0luZGV4JCkpKCJmb2N1c0lucHV0SW5kaWNlcyIsQ3koNSwxMyxuLmZvY3VzSW5wdXRJbmRpY2VzJCkpfSxkaXJlY3RpdmVzOltHUV0scGlwZXM6W1Z2XSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFlRLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6InRmLWRlYnVnZ2VyLXYyLWdyYXBoLWV4ZWN1dGlvbnMiLHRlbXBsYXRlOidcbiAgICA8Z3JhcGgtZXhlY3V0aW9ucy1jb21wb25lbnRcbiAgICAgIFtudW1HcmFwaEV4ZWN1dGlvbnNdPSJudW1HcmFwaEV4ZWN1dGlvbnMkIHwgYXN5bmMiXG4gICAgICBbZ3JhcGhFeGVjdXRpb25EYXRhXT0iZ3JhcGhFeGVjdXRpb25EYXRhJCB8IGFzeW5jIlxuICAgICAgW2dyYXBoRXhlY3V0aW9uSW5kaWNlc109ImdyYXBoRXhlY3V0aW9uSW5kaWNlcyQgfCBhc3luYyJcbiAgICAgIFtmb2N1c0luZGV4XT0iZm9jdXNJbmRleCQgfCBhc3luYyJcbiAgICAgIFtmb2N1c0lucHV0SW5kaWNlc109ImZvY3VzSW5wdXRJbmRpY2VzJCB8IGFzeW5jIlxuICAgICAgKG9uU2Nyb2xsZWRJbmRleENoYW5nZSk9Im9uU2Nyb2xsZWRJbmRleENoYW5nZSgkZXZlbnQpIlxuICAgICAgKG9uVGVuc29yTmFtZUNsaWNrKT0ib25UZW5zb3JOYW1lQ2xpY2soJGV2ZW50KSJcbiAgICA+PC9ncmFwaC1leGVjdXRpb25zLWNvbXBvbmVudD5cbiAgJ31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfV19KSxudWxsKTtjb25zdCBxUT17Z2V0V2luZG93OmZ1bmN0aW9uIFpRKCl7cmV0dXJuIHdpbmRvd319LFhRPSJ2cyI7ZnVuY3Rpb24gS1EodCl7Y29uc3QgZT1xUS5nZXRXaW5kb3coKS5yZXF1aXJlO3JldHVybiBuZXcgUHJvbWlzZSgobj0+e2UodCxuKX0pKX1mdW5jdGlvbiBKUSgpe3JldHVybiBYVCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9cVEuZ2V0V2luZG93KCk7aWYodm9pZCAwPT09dC5tb25hY28pe2lmKCF0LnJlcXVpcmUpdGhyb3cgbmV3IEVycm9yKCJsb2FkTW9uYWNvKCkgZmFpbGVkIGJlY2F1c2UgZnVuY3Rpb24gcmVxdWlyZSgpIGlzIHVuYXZhaWxhYmxlIik7dC5yZXF1aXJlLmNvbmZpZyh7cGF0aHM6e1tYUV06Ii90Zi1pbXBvcnRzL3ZzIn19KSx5aWVsZCBLUShbInZzL2VkaXRvci9lZGl0b3IubWFpbiJdKSx5aWVsZCBLUShbInZzL3B5dGhvbi9weXRob24uY29udHJpYnV0aW9uIl0pfX0pKX1mdW5jdGlvbiBRUSh0KXtyZXR1cm4gdD8idnMtZGFyayI6InZzIn1jbGFzcyAkUXtjb25zdHJ1Y3Rvcih0KXt0aGlzLnJlc2l6ZUV2ZW50RGVib3VuY2VQZXJpb2RJbk1zPTEwMCx0aGlzLm9uUmVzaXplPW5ldyBTeSx0aGlzLm5nVW5zdWJzY3JpYmUkPW5ldyBCLHRoaXMub25SZXNpemUkPW5ldyBCO2NvbnN0IGU9bmV3IFJlc2l6ZU9ic2VydmVyKCgoKT0+e3RoaXMub25SZXNpemUkLm5leHQoKX0pKTtlLm9ic2VydmUodC5uYXRpdmVFbGVtZW50KSx0aGlzLm5nVW5zdWJzY3JpYmUkLnN1YnNjcmliZSgoKCk9PntlLnVub2JzZXJ2ZSh0Lm5hdGl2ZUVsZW1lbnQpfSkpfW5nT25Jbml0KCl7dGhpcy5vblJlc2l6ZSQucGlwZShMZSgxKSxDZSh0aGlzLnJlc2l6ZUV2ZW50RGVib3VuY2VQZXJpb2RJbk1zKSxqZSh0aGlzLm5nVW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMub25SZXNpemUuZW1pdCgpfSkpfW5nT25EZXN0cm95KCl7dGhpcy5uZ1Vuc3Vic2NyaWJlJC5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlJC5jb21wbGV0ZSgpfX0kUS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8JFEpKGdmKEtoKSl9LCRRLsm1ZGlyPWhvKHt0eXBlOiRRLHNlbGVjdG9yczpbWyIiLCJkZXRlY3RSZXNpemUiLCIiXV0saW5wdXRzOntyZXNpemVFdmVudERlYm91bmNlUGVyaW9kSW5NczoicmVzaXplRXZlbnREZWJvdW5jZVBlcmlvZEluTXMifSxvdXRwdXRzOntvblJlc2l6ZToib25SZXNpemUifX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoJFEsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW2RldGVjdFJlc2l6ZV0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6S2h9XX0pLHtyZXNpemVFdmVudERlYm91bmNlUGVyaW9kSW5Nczpbe3R5cGU6Ul99XSxvblJlc2l6ZTpbe3R5cGU6RV99XX0pO2NvbnN0IHQkPVsiY29kZVZpZXdlckNvbnRhaW5lciJdO2NsYXNzIGUke2NvbnN0cnVjdG9yKCl7dGhpcy5saW5lcz1udWxsLHRoaXMuZm9jdXNlZExpbmVubz1udWxsLHRoaXMubW9uYWNvPW51bGwsdGhpcy5lZGl0b3I9bnVsbCx0aGlzLmRlY29yYXRpb25zPVtdLHRoaXMuUkVTSVpFX0RFQk9VTkNFX0lOVEVSVkFMX01TPTUwfW9uUmVzaXplKCl7dGhpcy5lZGl0b3ImJnRoaXMuZWRpdG9yLmxheW91dCgpfW5nT25DaGFuZ2VzKHQpe3ZhciBlO2lmKG51bGw9PT10aGlzLm1vbmFjbylyZXR1cm47Y29uc3Qgbj10Lm1vbmFjbyYmbnVsbD09PXRoaXMuZWRpdG9yO251bGw9PT10aGlzLmVkaXRvciYmKHRoaXMuZWRpdG9yPXRoaXMubW9uYWNvLmVkaXRvci5jcmVhdGUodGhpcy5jb2RlVmlld2VyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQse3ZhbHVlOihudWxsIT09KGU9dGhpcy5saW5lcykmJnZvaWQgMCE9PWU/ZTpbXSkuam9pbigiXG4iKSxsYW5ndWFnZToicHl0aG9uIixyZWFkT25seTohMCxmb250U2l6ZToxMCxtaW5pbWFwOntlbmFibGVkOiEwfSx0aGVtZTpRUSh0aGlzLnVzZURhcmtNb2RlKX0pKSx0LmxpbmVzJiZ0aGlzLmxpbmVzJiZ0aGlzLmVkaXRvci5zZXRWYWx1ZSh0aGlzLmxpbmVzLmpvaW4oIlxuIikpO2NvbnN0IG89bnx8dC5mb2N1c2VkTGluZW5vP3RoaXMuZm9jdXNlZExpbmVubzpudWxsO2lmKG8mJnRoaXMubGluZXMpe3RoaXMuZWRpdG9yLnJldmVhbExpbmVJbkNlbnRlcihvLHRoaXMubW9uYWNvLmVkaXRvci5TY3JvbGxUeXBlLlNtb290aCk7Y29uc3QgdD10aGlzLmxpbmVzW28tMV0ubGVuZ3RoO3RoaXMuZGVjb3JhdGlvbnM9dGhpcy5lZGl0b3IuZGVsdGFEZWNvcmF0aW9ucyh0aGlzLmRlY29yYXRpb25zLFt7cmFuZ2U6bmV3IHRoaXMubW9uYWNvLlJhbmdlKG8sMSxvLDEpLG9wdGlvbnM6e2lzV2hvbGVMaW5lOiEwLGxpbmVzRGVjb3JhdGlvbnNDbGFzc05hbWU6ImhpZ2hsaWdodC1ndXR0ZXIifX0se3JhbmdlOm5ldyB0aGlzLm1vbmFjby5SYW5nZShvLDEsbyx0KzEpLG9wdGlvbnM6e2lubGluZUNsYXNzTmFtZToiaGlnaGxpZ2h0LWxpbmUifX1dKX10LnVzZURhcmtNb2RlJiZ0aGlzLm1vbmFjby5lZGl0b3Iuc2V0VGhlbWUoUVEodGhpcy51c2VEYXJrTW9kZSkpfX1lJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ZSQpfSxlJC7JtWNtcD1zbyh7dHlwZTplJCxzZWxlY3RvcnM6W1sic291cmNlLWNvZGUtY29tcG9uZW50Il1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiZWeSh0JCw3LEtoKSwyJmUpe2xldCB0O0J5KHQ9VXkoKSkmJihuLmNvZGVWaWV3ZXJDb250YWluZXI9dC5maXJzdCl9fSxpbnB1dHM6e2xpbmVzOiJsaW5lcyIsZm9jdXNlZExpbmVubzoiZm9jdXNlZExpbmVubyIsbW9uYWNvOiJtb25hY28iLHVzZURhcmtNb2RlOiJ1c2VEYXJrTW9kZSJ9LGZlYXR1cmVzOltxb10sZGVjbHM6Mix2YXJzOjEsY29uc3RzOltbImRldGVjdFJlc2l6ZSIsIiIsMSwiY29kZS12aWV3ZXItY29udGFpbmVyIiwzLCJyZXNpemVFdmVudERlYm91bmNlUGVyaW9kSW5NcyIsIm9uUmVzaXplIl0sWyJjb2RlVmlld2VyQ29udGFpbmVyIiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJkaXYiLDAsMSksUmYoIm9uUmVzaXplIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUmVzaXplKCl9KSksTWYoKSksMiZlJiZiZigicmVzaXplRXZlbnREZWJvdW5jZVBlcmlvZEluTXMiLG4uUkVTSVpFX0RFQk9VTkNFX0lOVEVSVkFMX01TKX0sZGlyZWN0aXZlczpbJFFdLHN0eWxlczpbIi5jb2RlLXZpZXdlci1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5bX25naG9zdC0lQ09NUCVdICAgICAuaGlnaGxpZ2h0LWd1dHRlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAxMTEsIDAsIDAuNyk7XG4gIHdpZHRoOiA1cHggIWltcG9ydGFudDtcbn1cblxuW19uZ2hvc3QtJUNPTVAlXSAgICAgLmhpZ2hsaWdodC1saW5lIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDExMSwgMCwgMC4zKTtcbn0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZSQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3Rvcjoic291cmNlLWNvZGUtY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiLi9zb3VyY2VfY29kZV9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9zb3VyY2VfY29kZV9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sbnVsbCx7bGluZXM6W3t0eXBlOlJffV0sZm9jdXNlZExpbmVubzpbe3R5cGU6Ul99XSxtb25hY286W3t0eXBlOlJffV0sdXNlRGFya01vZGU6W3t0eXBlOlJffV0sY29kZVZpZXdlckNvbnRhaW5lcjpbe3R5cGU6YXIsYXJnczpbImNvZGVWaWV3ZXJDb250YWluZXIiLHtzdGF0aWM6ITAscmVhZDpLaH1dfV19KTtjbGFzcyBuJHtjb25zdHJ1Y3Rvcigpe3RoaXMubGluZXM9bnVsbCx0aGlzLmZvY3VzZWRMaW5lbm89bnVsbCx0aGlzLnVzZURhcmtNb2RlPSExLHRoaXMubW9uYWNvJD1udWxsfW5nT25Jbml0KCl7dGhpcy5tb25hY28kPVB0KEpRKCkpLnBpcGUoVnQoKCgpPT53aW5kb3cubW9uYWNvKSkpfX1mdW5jdGlvbiBvJCh0LGUpe2lmKDEmdCYmKENmKDAsImRpdiIsNiksUHUoMSksTWYoKSksMiZ0KXtjb25zdCB0PXpmKCk7RGMoMSksa3UoIiAiLHQuZm9jdXNlZFNvdXJjZUxpbmVTcGVjLmZpbGVfcGF0aCwiICIpfX1mdW5jdGlvbiBpJCh0LGUpezEmdCYmKENmKDAsImRpdiIsNyksUHUoMSwiIE5vIGZpbGUgc2VsZWN0ZWQuIENsaWNrIGEgbGluZSBudW1iZXIgaW4gdGhlIFN0YWNrIFRyYWNlIHNlY3Rpb24gdG8gc2hvdyB0aGUgc291cmNlIGNvZGUuICIpLE1mKCkpfWZ1bmN0aW9uIGEkKHQsZSl7aWYoMSZ0JiZ2ZigwLCJzb3VyY2UtY29kZSIsOCksMiZ0KXtjb25zdCB0PXpmKCk7YmYoImxpbmVzIix0LmZvY3VzZWRTb3VyY2VGaWxlQ29udGVudC5saW5lcykoImZvY3VzZWRMaW5lbm8iLHQuZm9jdXNlZFNvdXJjZUxpbmVTcGVjLmxpbmVubykoInVzZURhcmtNb2RlIix0LnVzZURhcmtNb2RlKX19biQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG4kKX0sbiQuybVjbXA9c28oe3R5cGU6biQsc2VsZWN0b3JzOltbInNvdXJjZS1jb2RlIl1dLGlucHV0czp7bGluZXM6ImxpbmVzIixmb2N1c2VkTGluZW5vOiJmb2N1c2VkTGluZW5vIix1c2VEYXJrTW9kZToidXNlRGFya01vZGUifSxkZWNsczoyLHZhcnM6Nixjb25zdHM6W1szLCJsaW5lcyIsImZvY3VzZWRMaW5lbm8iLCJtb25hY28iLCJ1c2VEYXJrTW9kZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYodmYoMCwic291cmNlLWNvZGUtY29tcG9uZW50IiwwKSxfeSgxLCJhc3luYyIpKSwyJmUmJmJmKCJsaW5lcyIsbi5saW5lcykoImZvY3VzZWRMaW5lbm8iLG4uZm9jdXNlZExpbmVubykoIm1vbmFjbyIsQ3koMSw0LG4ubW9uYWNvJCkpKCJ1c2VEYXJrTW9kZSIsbi51c2VEYXJrTW9kZSl9LGRpcmVjdGl2ZXM6W2UkXSxwaXBlczpbVnZdLGVuY2Fwc3VsYXRpb246Mn0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIobiQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3Rvcjoic291cmNlLWNvZGUiLHRlbXBsYXRlOidcbiAgICA8c291cmNlLWNvZGUtY29tcG9uZW50XG4gICAgICBbbGluZXNdPSJsaW5lcyJcbiAgICAgIFtmb2N1c2VkTGluZW5vXT0iZm9jdXNlZExpbmVubyJcbiAgICAgIFttb25hY29dPSJtb25hY28kIHwgYXN5bmMiXG4gICAgICBbdXNlRGFya01vZGVdPSJ1c2VEYXJrTW9kZSJcbiAgICA+PC9zb3VyY2UtY29kZS1jb21wb25lbnQ+XG4gICd9XX1dLChmdW5jdGlvbigpe3JldHVybltdfSkse2xpbmVzOlt7dHlwZTpSX31dLGZvY3VzZWRMaW5lbm86W3t0eXBlOlJffV0sdXNlRGFya01vZGU6W3t0eXBlOlJffV19KTtjbGFzcyByJHtjb25zdHJ1Y3Rvcigpe3RoaXMuZm9jdXNlZFNvdXJjZUZpbGVDb250ZW50PW51bGwsdGhpcy5mb2N1c2VkU291cmNlTGluZVNwZWM9bnVsbH19ciQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHIkKX0sciQuybVjbXA9c28oe3R5cGU6ciQsc2VsZWN0b3JzOltbInNvdXJjZS1maWxlcy1jb21wb25lbnQiXV0saW5wdXRzOntmb2N1c2VkU291cmNlRmlsZUNvbnRlbnQ6ImZvY3VzZWRTb3VyY2VGaWxlQ29udGVudCIsZm9jdXNlZFNvdXJjZUxpbmVTcGVjOiJmb2N1c2VkU291cmNlTGluZVNwZWMiLHVzZURhcmtNb2RlOiJ1c2VEYXJrTW9kZSJ9LGRlY2xzOjgsdmFyczozLGNvbnN0czpbWzEsInNvdXJjZS1maWxlcy1jb250YWluZXIiXSxbMSwiaGVhZGVyLXNlY3Rpb24iXSxbMSwidGl0bGUtdGFnIl0sWyJjbGFzcyIsImZpbGUtbGFiZWwiLDQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsibm9GaWxlU2VsZWN0ZWQiLCIiXSxbMywibGluZXMiLCJmb2N1c2VkTGluZW5vIiwidXNlRGFya01vZGUiLDQsIm5nSWYiXSxbMSwiZmlsZS1sYWJlbCJdLFsxLCJuby1maWxlLXNlbGVjdGVkIl0sWzMsImxpbmVzIiwiZm9jdXNlZExpbmVubyIsInVzZURhcmtNb2RlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihDZigwLCJkaXYiLDApLENmKDEsImRpdiIsMSksQ2YoMiwiZGl2IiwyKSxQdSgzLCJTb3VyY2UgQ29kZSIpLE1mKCksSG0oNCxvJCwyLDEsImRpdiIsMyksSG0oNSxpJCwyLDAsIm5nLXRlbXBsYXRlIixudWxsLDQscXkpLE1mKCksSG0oNyxhJCwxLDMsInNvdXJjZS1jb2RlIiw1KSxNZigpKSwyJmUpe2NvbnN0IHQ9Rm0oNik7RGMoNCksYmYoIm5nSWYiLG51bGwhPT1uLmZvY3VzZWRTb3VyY2VMaW5lU3BlYykoIm5nSWZFbHNlIix0KSxEYygzKSxiZigibmdJZiIsbnVsbCE9PW4uZm9jdXNlZFNvdXJjZUZpbGVDb250ZW50JiZudWxsIT09bi5mb2N1c2VkU291cmNlTGluZVNwZWMmJm51bGwhPT1uLmZvY3VzZWRTb3VyY2VGaWxlQ29udGVudC5saW5lcyl9fSxkaXJlY3RpdmVzOltQdixuJF0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9LmhlYWRlci1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MjRweDtwYWRkaW5nLWJvdHRvbTo2cHg7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vd3JhcDt3aWR0aDoxMDAlfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5oZWFkZXItc2VjdGlvbltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5oZWFkZXItc2VjdGlvbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzU1NX0uZmlsZS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC13ZWlnaHQ6bm9ybWFsO3doaXRlLXNwYWNlOm5vcm1hbDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO292ZXJmbG93LXk6YXV0bztwYWRkaW5nOjAgMjBweH0ubm8tZmlsZS1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29sb3I6IzY2NjtwYWRkaW5nOjAgMjBweDt3aGl0ZS1zcGFjZTpub3JtYWx9LnNvdXJjZS1maWxlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Zm9udC1mYW1pbHk6IlJvYm90byBNb25vIixtb25vc3BhY2U7Zm9udC1zaXplOjEwcHg7aGVpZ2h0OjEwMCV9LnRpdGxlLXRhZ1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC13ZWlnaHQ6Ym9sZDtoZWlnaHQ6MTAwJTtwYWRkaW5nLWxlZnQ6NnB4O3ZlcnRpY2FsLWFsaWduOnRvcH1zb3VyY2UtY29kZVtfbmdjb250ZW50LSVDT01QJV17ZmxleC1ncm93OjE7d2lkdGg6MTAwJX0nXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIociQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3Rvcjoic291cmNlLWZpbGVzLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vc291cmNlX2ZpbGVzX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL3NvdXJjZV9maWxlc19jb21wb25lbnQuY3NzIl19XX1dLG51bGwse2ZvY3VzZWRTb3VyY2VGaWxlQ29udGVudDpbe3R5cGU6Ul99XSxmb2N1c2VkU291cmNlTGluZVNwZWM6W3t0eXBlOlJffV0sdXNlRGFya01vZGU6W3t0eXBlOlJffV19KTtjbGFzcyBzJHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5mb2N1c2VkU291cmNlRmlsZUNvbnRlbnQkPXRoaXMuc3RvcmUuc2VsZWN0KGZKKSx0aGlzLmZvY3VzZWRTb3VyY2VMaW5lU3BlYyQ9dGhpcy5zdG9yZS5zZWxlY3QodUopLHRoaXMudXNlRGFya01vZGUkPXRoaXMuc3RvcmUuc2VsZWN0KEZEKX19cyQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHMkKShnZihpUykpfSxzJC7JtWNtcD1zbyh7dHlwZTpzJCxzZWxlY3RvcnM6W1sidGYtZGVidWdnZXItdjItc291cmNlLWZpbGVzIl1dLGRlY2xzOjQsdmFyczo5LGNvbnN0czpbWzMsImZvY3VzZWRTb3VyY2VGaWxlQ29udGVudCIsImZvY3VzZWRTb3VyY2VMaW5lU3BlYyIsInVzZURhcmtNb2RlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJih2ZigwLCJzb3VyY2UtZmlsZXMtY29tcG9uZW50IiwwKSxfeSgxLCJhc3luYyIpLF95KDIsImFzeW5jIiksX3koMywiYXN5bmMiKSksMiZlJiZiZigiZm9jdXNlZFNvdXJjZUZpbGVDb250ZW50IixDeSgxLDMsbi5mb2N1c2VkU291cmNlRmlsZUNvbnRlbnQkKSkoImZvY3VzZWRTb3VyY2VMaW5lU3BlYyIsQ3koMiw1LG4uZm9jdXNlZFNvdXJjZUxpbmVTcGVjJCkpKCJ1c2VEYXJrTW9kZSIsQ3koMyw3LG4udXNlRGFya01vZGUkKSl9LGRpcmVjdGl2ZXM6W3IkXSxwaXBlczpbVnZdLGVuY2Fwc3VsYXRpb246Mn0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIocyQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoidGYtZGVidWdnZXItdjItc291cmNlLWZpbGVzIix0ZW1wbGF0ZTonXG4gICAgPHNvdXJjZS1maWxlcy1jb21wb25lbnRcbiAgICAgIFtmb2N1c2VkU291cmNlRmlsZUNvbnRlbnRdPSJmb2N1c2VkU291cmNlRmlsZUNvbnRlbnQkIHwgYXN5bmMiXG4gICAgICBbZm9jdXNlZFNvdXJjZUxpbmVTcGVjXT0iZm9jdXNlZFNvdXJjZUxpbmVTcGVjJCB8IGFzeW5jIlxuICAgICAgW3VzZURhcmtNb2RlXT0idXNlRGFya01vZGUkIHwgYXN5bmMiXG4gICAgPjwvc291cmNlLWZpbGVzLWNvbXBvbmVudD5cbiAgJ31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfV19KSxudWxsKTtjb25zdCBsJD1bInN0YWNrRnJhbWVBcnJheSJdO2Z1bmN0aW9uIGMkKHQsZSl7aWYoMSZ0JiYoQ2YoMCwic3BhbiIsMTMpLFB1KDEpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigzKTtEYygxKSxrdSgiICMiLHQuZXhlY3V0aW9uSW5kZXgsIjogIil9fWZ1bmN0aW9uIGQkKHQsZSl7aWYoMSZ0JiYoQ2YoMCwic3BhbiIsMTQpLFB1KDEpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigzKTtEYygxKSxrdSgiICIsdC5vcFR5cGUsIiAiKX19ZnVuY3Rpb24gcCQodCxlKXtpZigxJnQmJihDZigwLCJkaXYiKSxQdSgxLCIgRWFnZXIgZXhlY3V0aW9uICIpLEhtKDIsYyQsMiwxLCJzcGFuIiwxMSksSG0oMyxkJCwyLDEsInNwYW4iLDEyKSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoMik7RGMoMiksYmYoIm5nSWYiLG51bGwhPT10Lm9wVHlwZSksRGMoMSksYmYoIm5nSWYiLG51bGwhPT10Lm9wVHlwZSl9fWZ1bmN0aW9uIG0kKHQsZSl7aWYoMSZ0JiYoQ2YoMCwic3BhbiIsMTYpLFB1KDEpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigzKTtEYygxKSxrdSgnICInLHQub3BOYW1lLCciICcpfX1mdW5jdGlvbiBmJCh0LGUpe2lmKDEmdCYmKENmKDAsInNwYW4iLDE0KSxQdSgxKSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoMyk7RGMoMSksa3UoIiAiLHQub3BUeXBlLCIgIil9fWZ1bmN0aW9uIHUkKHQsZSl7aWYoMSZ0JiYoQ2YoMCwiZGl2IiksUHUoMSwiIENyZWF0aW9uIG9mIGdyYXBoIG9wICIpLEhtKDIsbSQsMiwxLCJzcGFuIiwxNSksSG0oMyxmJCwyLDEsInNwYW4iLDEyKSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoMik7RGMoMiksYmYoIm5nSWYiLG51bGwhPT10Lm9wTmFtZSksRGMoMSksYmYoIm5nSWYiLG51bGwhPT10Lm9wVHlwZSl9fWZ1bmN0aW9uIGckKHQsZSl7aWYoMSZ0JiYoQ2YoMCwic3BhbiIsMTcpLFB1KDEpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigyKTtEYygxKSxrdSgiIChIb3N0IG5hbWU6ICIsdC5zdGFja0ZyYW1lc0ZvckRpc3BsYXlbMF0uaG9zdF9uYW1lLCIpICIpfX1mdW5jdGlvbiBoJCh0LGUpe2lmKDEmdCYmKENmKDAsImRpdiIsNyksQ2YoMSwic3BhbiIpLENmKDIsInNwYW4iLDgpLEhtKDMscCQsNCwyLCJkaXYiLDkpLEhtKDQsdSQsNCwyLCJkaXYiLDkpLE1mKCksTWYoKSxDZig1LCJkaXYiKSxIbSg2LGckLDIsMSwic3BhbiIsMTApLE1mKCksTWYoKSksMiZ0KXtjb25zdCB0PXpmKCk7RGMoMiksYmYoIm5nU3dpdGNoIix0LmNvZGVMb2NhdGlvblR5cGUpLERjKDEpLGJmKCJuZ1N3aXRjaENhc2UiLHQuQ29kZUxvY2F0aW9uVHlwZS5FWEVDVVRJT04pLERjKDEpLGJmKCJuZ1N3aXRjaENhc2UiLHQuQ29kZUxvY2F0aW9uVHlwZS5HUkFQSF9PUF9DUkVBVElPTiksRGMoMiksYmYoIm5nSWYiLG51bGwhPT10LnN0YWNrRnJhbWVzRm9yRGlzcGxheSYmdC5zdGFja0ZyYW1lc0ZvckRpc3BsYXkubGVuZ3RoPjApfX1mdW5jdGlvbiBiJCh0LGUpezEmdCYmKENmKDAsImRpdiIsMTgpLFB1KDEsIiBDbGljayBhbiBlYWdlciBleGVjdXRpb24gb3IgZ3JhcGggb3AgdG8gc2hvdyBpdHMgb3JpZ2luYWwgc3RhY2sgdHJhY2UuICIpLE1mKCkpfWZ1bmN0aW9uIHkkKHQsZSl7MSZ0JiYoQ2YoMCwiZGl2IiwyOCksUHUoMSwiIOKkkyAiKSxNZigpKX1jb25zdCBfJD1mdW5jdGlvbih0LGUpe3JldHVyblt0LGVdfTtmdW5jdGlvbiBDJCh0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO0NmKDAsImRpdiIsMjIpLENmKDEsImRpdiIsMjMpLFB1KDIpLE1mKCksQ2YoMywiZGl2IiwyNCksSG0oNCx5JCwyLDAsImRpdiIsMjUpLENmKDUsImRpdiIsMjYpLFJmKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtjb25zdCBuPVBpKHQpLiRpbXBsaWNpdDtyZXR1cm4gemYoMikub25Tb3VyY2VMaW5lQ2xpY2tlZC5lbWl0KG4pfSkpLFB1KDYpLE1mKCksQ2YoNywiZGl2IiwyNyksUHUoOCksTWYoKSxNZigpLE1mKCl9aWYoMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49emYoMik7YmYoIm5nQ2xhc3MiLGF5KDYsXyQsdC5iZWxvbmdzVG9Gb2N1c2VkRmlsZT8iZm9jdXNlZC1maWxlIjoiIix0LmZvY3VzZWQ/ImZvY3VzZWQtc3RhY2stZnJhbWUiOiIiKSksRGMoMSksTGYoInRpdGxlIix0LmZpbGVfcGF0aCksRGMoMSksa3UoIiAiLHQuY29uY2lzZV9maWxlX3BhdGgsIiAiKSxEYygyKSxiZigibmdJZiIsbi5zdGlja1RvQm90dG9tbW9zdEZyYW1lSW5Gb2N1c2VkRmlsZSYmdC5mb2N1c2VkKSxEYygyKSxrdSgiIExpbmUgIix0LmxpbmVubywiICIpLERjKDIpLGt1KCIgIix0LmZ1bmN0aW9uX25hbWUsIiAiKX19ZnVuY3Rpb24gTSQodCxlKXtpZigxJnQmJihDZigwLCJkaXYiLDE5LDIwKSxIbSgyLEMkLDksOSwiZGl2IiwyMSksTWYoKSksMiZ0KXtjb25zdCB0PXpmKCk7RGMoMiksYmYoIm5nRm9yT2YiLHQuc3RhY2tGcmFtZXNGb3JEaXNwbGF5KX19ZnVuY3Rpb24gdiQodCxlKXt9Y2xhc3MgeCR7Y29uc3RydWN0b3IoKXt0aGlzLnN0YWNrRnJhbWVzRm9yRGlzcGxheT1udWxsLHRoaXMub25Tb3VyY2VMaW5lQ2xpY2tlZD1uZXcgU3ksdGhpcy5Db2RlTG9jYXRpb25UeXBlPWNLfW5nQWZ0ZXJWaWV3Q2hlY2tlZCgpe2lmKHZvaWQgMD09PXRoaXMuc3RhY2tGcmFtZUFycmF5KXJldHVybjtjb25zdCB0PXRoaXMuc3RhY2tGcmFtZUFycmF5Lm5hdGl2ZUVsZW1lbnQsZT10LnF1ZXJ5U2VsZWN0b3IoIi5mb2N1c2VkLXN0YWNrLWZyYW1lIik7aWYobnVsbCE9PWUpcmV0dXJuIHZvaWQgdGhpcy5zY3JvbGxUb0VsZW1lbnQodCxlKTtjb25zdCBuPXQucXVlcnlTZWxlY3RvcigiLnN0YWNrLWZyYW1lLWNvbnRhaW5lcjpsYXN0LWNoaWxkIik7bnVsbCE9PW4mJnRoaXMuc2Nyb2xsVG9FbGVtZW50KHQsbil9c2Nyb2xsVG9FbGVtZW50KHQsZSl7dC5zY3JvbGxUb3A9ZS5vZmZzZXRUb3B9fXgkLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx4JCl9LHgkLsm1Y21wPXNvKHt0eXBlOngkLHNlbGVjdG9yczpbWyJzdGFjay10cmFjZS1jb21wb25lbnQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJlZ5KGwkLDUpLDImZSl7bGV0IHQ7QnkodD1VeSgpKSYmKG4uc3RhY2tGcmFtZUFycmF5PXQuZmlyc3QpfX0saW5wdXRzOntjb2RlTG9jYXRpb25UeXBlOiJjb2RlTG9jYXRpb25UeXBlIixvcFR5cGU6Im9wVHlwZSIsb3BOYW1lOiJvcE5hbWUiLGV4ZWN1dGlvbkluZGV4OiJleGVjdXRpb25JbmRleCIsc3RpY2tUb0JvdHRvbW1vc3RGcmFtZUluRm9jdXNlZEZpbGU6InN0aWNrVG9Cb3R0b21tb3N0RnJhbWVJbkZvY3VzZWRGaWxlIixzdGFja0ZyYW1lc0ZvckRpc3BsYXk6InN0YWNrRnJhbWVzRm9yRGlzcGxheSJ9LG91dHB1dHM6e29uU291cmNlTGluZUNsaWNrZWQ6Im9uU291cmNlTGluZUNsaWNrZWQifSxkZWNsczoxMCx2YXJzOjQsY29uc3RzOltbMSwic3RhY2stdHJhY2UtY29udGFpbmVyIl0sWzEsInN0YWNrLXRyYWNlLWhlYWRlciJdLFsxLCJzdGFjay10cmFjZS10aXRsZSJdLFsiY2xhc3MiLCJzdGFjay10cmFjZS1hdXgtaW5mbyIsNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJub1N0YWNrVHJhY2UiLCIiXSxbImNsYXNzIiwic3RhY2stZnJhbWUtYXJyYXkiLDQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsibG9hZGluZ1NlY3Rpb24iLCIiXSxbMSwic3RhY2stdHJhY2UtYXV4LWluZm8iXSxbMSwiY29kZS1sb2NhdGlvbi1vcmlnaW4iLDMsIm5nU3dpdGNoIl0sWzQsIm5nU3dpdGNoQ2FzZSJdLFsiY2xhc3MiLCJzdGFjay10cmFjZS1ob3N0LW5hbWUiLDQsIm5nSWYiXSxbImNsYXNzIiwiZWFnZXItZXhlY3V0aW9uLWluZGV4Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsIm9wLXR5cGUiLDQsIm5nSWYiXSxbMSwiZWFnZXItZXhlY3V0aW9uLWluZGV4Il0sWzEsIm9wLXR5cGUiXSxbImNsYXNzIiwib3AtbmFtZSIsNCwibmdJZiJdLFsxLCJvcC1uYW1lIl0sWzEsInN0YWNrLXRyYWNlLWhvc3QtbmFtZSJdLFsxLCJzdGFjay10cmFjZS1hdXgtaW5mbyIsIm5vLXN0YWNrLXRyYWNlIl0sWzEsInN0YWNrLWZyYW1lLWFycmF5Il0sWyJzdGFja0ZyYW1lQXJyYXkiLCIiXSxbImNsYXNzIiwic3RhY2stZnJhbWUtY29udGFpbmVyIiwzLCJuZ0NsYXNzIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwic3RhY2stZnJhbWUtY29udGFpbmVyIiwzLCJuZ0NsYXNzIl0sWzEsInN0YWNrLWZyYW1lLWZpbGUtcGF0aCIsMywidGl0bGUiXSxbMSwic3RhY2stZnJhbWUtbGluZW5vLWZ1bmN0aW9uIl0sWyJjbGFzcyIsInN0aWNrLXRvLWJvdHRvbW1vc3QtaW5kaWNhdG9yIiwidGl0bGUiLCJTdGlja2luZyB0byB0aGUgYm90dG9tbW9zdCBmcmFtZSBpbiB0aGUgY3VycmVudCBzb3VyY2UgZmlsZSB3aGVuIG5hdmlnYXRpbmcgZXhlY3V0aW9ucyBhbmQgZ3JhcGggb3BzLiBUbyByZW1vdmUgdGhpcyBzdGlja2luZywgY2xpY2sgYW55IG5vbi1ib3R0b21tb3N0IHN0YWNrIGZyYW1lLiIsNCwibmdJZiJdLFsxLCJzdGFjay1mcmFtZS1saW5lbm8iLDMsImNsaWNrIl0sWzEsInN0YWNrLWZyYW1lLWZ1bmN0aW9uIl0sWyJ0aXRsZSIsIlN0aWNraW5nIHRvIHRoZSBib3R0b21tb3N0IGZyYW1lIGluIHRoZSBjdXJyZW50IHNvdXJjZSBmaWxlIHdoZW4gbmF2aWdhdGluZyBleGVjdXRpb25zIGFuZCBncmFwaCBvcHMuIFRvIHJlbW92ZSB0aGlzIHN0aWNraW5nLCBjbGljayBhbnkgbm9uLWJvdHRvbW1vc3Qgc3RhY2sgZnJhbWUuIiwxLCJzdGljay10by1ib3R0b21tb3N0LWluZGljYXRvciJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoQ2YoMCwiZGl2IiwwKSxDZigxLCJkaXYiLDEpLENmKDIsInNwYW4iLDIpLFB1KDMsIiBTdGFjayBUcmFjZSAiKSxNZigpLEhtKDQsaCQsNyw0LCJkaXYiLDMpLEhtKDUsYiQsMiwwLCJuZy10ZW1wbGF0ZSIsbnVsbCw0LHF5KSxNZigpLEhtKDcsTSQsMywxLCJkaXYiLDUpLEhtKDgsdiQsMCwwLCJuZy10ZW1wbGF0ZSIsbnVsbCw2LHF5KSxNZigpKSwyJmUpe2NvbnN0IHQ9Rm0oNiksZT1GbSg5KTtEYyg0KSxiZigibmdJZiIsbnVsbCE9PW4uY29kZUxvY2F0aW9uVHlwZSkoIm5nSWZFbHNlIix0KSxEYygzKSxiZigibmdJZiIsbnVsbCE9PW4uc3RhY2tGcmFtZXNGb3JEaXNwbGF5KSgibmdJZkVsc2UiLGUpfX0sZGlyZWN0aXZlczpbUHYsRHYsUnYseHYsQ3ZdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5mb2N1c2VkLWZpbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OmJvbGR9LmZvY3VzZWQtc3RhY2stZnJhbWVbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTExLDAsLjMpfS5uby1zdGFjay10cmFjZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6Z3JheX0ub3AtbmFtZVtfbmdjb250ZW50LSVDT01QJV17d29yZC13cmFwOmFueXdoZXJlfS5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNlY2VmZjE7Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtZmFtaWx5OiJSb2JvdG8gTW9ubyIsbW9ub3NwYWNlO2ZvbnQtc2l6ZToxMHB4O2hlaWdodDoxNHB4O2xpbmUtaGVpZ2h0OjE0cHg7cGFkZGluZzoxcHggM3B4O3dpZHRoOm1heC1jb250ZW50fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm9wLXR5cGVbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjoxcHggc29saWQgIzU1NX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAub3AtdHlwZVtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5vcC10eXBlW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiM0NTVhNjR9LnN0YWNrLWZyYW1lLWFycmF5W19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87d2lkdGg6Y2FsYygxMDAlIC0gOHB4KX0uc3RhY2stZnJhbWUtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYTBhMGEwfS5zdGFjay1mcmFtZS1maWxlLXBhdGhbX25nY29udGVudC0lQ09NUCVde21heC13aWR0aDoxODBweDt3aWR0aDoxODBweH0uc3RhY2stZnJhbWUtbGluZW5vLWZ1bmN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXt0ZXh0LWFsaWduOnJpZ2h0O3doaXRlLXNwYWNlOm5vd3JhcH0uc3RhY2stZnJhbWUtZnVuY3Rpb25bX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrO21heC13aWR0aDoyMDBweDtwYWRkaW5nLWxlZnQ6MTBweDt0ZXh0LWFsaWduOmxlZnQ7d2hpdGUtc3BhY2U6bm9ybWFsO3dpZHRoOjIwMHB4O3dvcmQtd3JhcDphbnl3aGVyZX0uc3RhY2stZnJhbWUtbGluZW5vW19uZ2NvbnRlbnQtJUNPTVAlXXtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jazttYXgtd2lkdGg6ODBweDt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt3aWR0aDo4MHB4fS5zdGFjay10cmFjZS1hdXgtaW5mb1tfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDoxNXB4O3BhZGRpbmctbGVmdDoyNHB4fS5zdGFjay10cmFjZS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjZWJlYmViO2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7ZmxleC1mbG93OmNvbHVtbjtmb250LXNpemU6MTBweDtmb250LWZhbWlseToiUm9ib3RvIE1vbm8iLG1vbm9zcGFjZTtoZWlnaHQ6MTAwJTttYXJnaW4tbGVmdDo4cHg7bWF4LWhlaWdodDozNjBweDtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmhpZGRlbjtwYWRkaW5nLWxlZnQ6OHB4O3dpZHRoOjEwMCV9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLnN0YWNrLXRyYWNlLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5zdGFjay10cmFjZS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjNTU1fS5zdGFjay10cmFjZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2JveC1zaGFkb3c6MCA1cHggM3B4IC0zcHggI2NjYztwYWRkaW5nLWJvdHRvbTozcHh9LnN0YWNrLXRyYWNlLWhvc3QtbmFtZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6Z3JheX0uc3RhY2stdHJhY2UtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OmJvbGR9LnN0aWNrLXRvLWJvdHRvbW1vc3QtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZToxMnB4O3BhZGRpbmctcmlnaHQ6M3B4fSddfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih4JCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJzdGFjay10cmFjZS1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL3N0YWNrX3RyYWNlX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL3N0YWNrX3RyYWNlX2NvbXBvbmVudC5jc3MiXX1dfV0sbnVsbCx7Y29kZUxvY2F0aW9uVHlwZTpbe3R5cGU6Ul99XSxvcFR5cGU6W3t0eXBlOlJffV0sb3BOYW1lOlt7dHlwZTpSX31dLGV4ZWN1dGlvbkluZGV4Olt7dHlwZTpSX31dLHN0aWNrVG9Cb3R0b21tb3N0RnJhbWVJbkZvY3VzZWRGaWxlOlt7dHlwZTpSX31dLHN0YWNrRnJhbWVzRm9yRGlzcGxheTpbe3R5cGU6Ul99XSxvblNvdXJjZUxpbmVDbGlja2VkOlt7dHlwZTpFX31dLHN0YWNrRnJhbWVBcnJheTpbe3R5cGU6YXIsYXJnczpbInN0YWNrRnJhbWVBcnJheSJdfV19KTtjbGFzcyBPJHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5jb2RlTG9jYXRpb25UeXBlJD10aGlzLnN0b3JlLnBpcGUoclMoYlMobEosKHQ9Pm51bGw9PT10P251bGw6dC5jb2RlTG9jYXRpb25UeXBlKSkpKSx0aGlzLm9wVHlwZSQ9dGhpcy5zdG9yZS5waXBlKHJTKGJTKGxKLCh0PT5udWxsPT09dD9udWxsOnQub3BUeXBlKSkpKSx0aGlzLm9wTmFtZSQ9dGhpcy5zdG9yZS5waXBlKHJTKGJTKGxKLCh0PT5udWxsPT09dHx8dC5jb2RlTG9jYXRpb25UeXBlIT09Y0suR1JBUEhfT1BfQ1JFQVRJT04/bnVsbDp0Lm9wTmFtZSkpKSksdGhpcy5leGVjdXRpb25JbmRleCQ9dGhpcy5zdG9yZS5waXBlKHJTKGJTKGxKLCh0PT5udWxsPT09dHx8dC5jb2RlTG9jYXRpb25UeXBlIT09Y0suRVhFQ1VUSU9OP251bGw6dC5leGVjdXRpb25JbmRleCkpKSksdGhpcy5zdGlja1RvQm90dG9tbW9zdEZyYW1lSW5Gb2N1c2VkRmlsZSQ9dGhpcy5zdG9yZS5waXBlKHJTKGdKKSksdGhpcy5zdGFja0ZyYW1lc0ZvckRpc3BsYXkkPXRoaXMuc3RvcmUucGlwZShyUyhiUyhjSix1SiwoKHQsZSk9PntpZihudWxsPT09dClyZXR1cm4gbnVsbDtjb25zdCBuPVtdO2Zvcihjb25zdCBvIG9mIHQpe2NvbnN0e2hvc3RfbmFtZTp0LGZpbGVfcGF0aDppLGxpbmVubzphLGZ1bmN0aW9uX25hbWU6cn09byxzPWkuc3BsaXQoIi8iKSxsPW51bGwhPT1lJiZ0PT09ZS5ob3N0X25hbWUmJmk9PT1lLmZpbGVfcGF0aDtuLnB1c2goe2hvc3RfbmFtZTp0LGZpbGVfcGF0aDppLGNvbmNpc2VfZmlsZV9wYXRoOnNbcy5sZW5ndGgtMV0sbGluZW5vOmEsZnVuY3Rpb25fbmFtZTpyLGJlbG9uZ3NUb0ZvY3VzZWRGaWxlOmwsZm9jdXNlZDpsJiZhPT09ZS5saW5lbm99KX1yZXR1cm4gbn0pKSkpfW9uU291cmNlTGluZUNsaWNrZWQodCl7Y29uc3R7aG9zdF9uYW1lOmUsZmlsZV9wYXRoOm4sbGluZW5vOm8sZnVuY3Rpb25fbmFtZTppfT10O3RoaXMuc3RvcmUuZGlzcGF0Y2gobksoe3N0YWNrRnJhbWU6e2hvc3RfbmFtZTplLGZpbGVfcGF0aDpuLGxpbmVubzpvLGZ1bmN0aW9uX25hbWU6aX19KSl9fWZ1bmN0aW9uIFAkKHQsZSl7MSZ0JiZ2ZigwLCJ0Zi1kZWJ1Z2dlci12Mi1pbmFjdGl2ZSIpfWZ1bmN0aW9uIHckKHQsZSl7MSZ0JiYoQ2YoMCwiZGl2IiwzKSx2ZigxLCJ0Zi1kZWJ1Z2dlci12Mi1hbGVydHMiKSxDZigyLCJkaXYiLDQpLHZmKDMsInRmLWRlYnVnZ2VyLXYyLXRpbWVsaW5lIiksdmYoNCwidGYtZGVidWdnZXItdjItZ3JhcGgiKSxNZigpLHZmKDUsInRmLWRlYnVnZ2VyLXYyLWdyYXBoLWV4ZWN1dGlvbnMiKSxNZigpLENmKDYsImRpdiIsNSksdmYoNywidGYtZGVidWdnZXItdjItc291cmNlLWZpbGVzIiksdmYoOCwidGYtZGVidWdnZXItdjItc3RhY2stdHJhY2UiKSxNZigpKX1PJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TyQpKGdmKGlTKSl9LE8kLsm1Y21wPXNvKHt0eXBlOk8kLHNlbGVjdG9yczpbWyJ0Zi1kZWJ1Z2dlci12Mi1zdGFjay10cmFjZSJdXSxkZWNsczo3LHZhcnM6MTgsY29uc3RzOltbMywiY29kZUxvY2F0aW9uVHlwZSIsIm9wVHlwZSIsIm9wTmFtZSIsImV4ZWN1dGlvbkluZGV4Iiwic3RpY2tUb0JvdHRvbW1vc3RGcmFtZUluRm9jdXNlZEZpbGUiLCJzdGFja0ZyYW1lc0ZvckRpc3BsYXkiLCJvblNvdXJjZUxpbmVDbGlja2VkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJzdGFjay10cmFjZS1jb21wb25lbnQiLDApLFJmKCJvblNvdXJjZUxpbmVDbGlja2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblNvdXJjZUxpbmVDbGlja2VkKGUpfSkpLF95KDEsImFzeW5jIiksX3koMiwiYXN5bmMiKSxfeSgzLCJhc3luYyIpLF95KDQsImFzeW5jIiksX3koNSwiYXN5bmMiKSxfeSg2LCJhc3luYyIpLE1mKCkpLDImZSYmYmYoImNvZGVMb2NhdGlvblR5cGUiLEN5KDEsNixuLmNvZGVMb2NhdGlvblR5cGUkKSkoIm9wVHlwZSIsQ3koMiw4LG4ub3BUeXBlJCkpKCJvcE5hbWUiLEN5KDMsMTAsbi5vcE5hbWUkKSkoImV4ZWN1dGlvbkluZGV4IixDeSg0LDEyLG4uZXhlY3V0aW9uSW5kZXgkKSkoInN0aWNrVG9Cb3R0b21tb3N0RnJhbWVJbkZvY3VzZWRGaWxlIixDeSg1LDE0LG4uc3RpY2tUb0JvdHRvbW1vc3RGcmFtZUluRm9jdXNlZEZpbGUkKSkoInN0YWNrRnJhbWVzRm9yRGlzcGxheSIsQ3koNiwxNixuLnN0YWNrRnJhbWVzRm9yRGlzcGxheSQpKX0sZGlyZWN0aXZlczpbeCRdLHBpcGVzOltWdl0sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihPJCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJ0Zi1kZWJ1Z2dlci12Mi1zdGFjay10cmFjZSIsdGVtcGxhdGU6J1xuICAgIDxzdGFjay10cmFjZS1jb21wb25lbnRcbiAgICAgIFtjb2RlTG9jYXRpb25UeXBlXT0iY29kZUxvY2F0aW9uVHlwZSQgfCBhc3luYyJcbiAgICAgIFtvcFR5cGVdPSJvcFR5cGUkIHwgYXN5bmMiXG4gICAgICBbb3BOYW1lXT0ib3BOYW1lJCB8IGFzeW5jIlxuICAgICAgW2V4ZWN1dGlvbkluZGV4XT0iZXhlY3V0aW9uSW5kZXgkIHwgYXN5bmMiXG4gICAgICBbc3RpY2tUb0JvdHRvbW1vc3RGcmFtZUluRm9jdXNlZEZpbGVdPSJcbiAgICAgICAgc3RpY2tUb0JvdHRvbW1vc3RGcmFtZUluRm9jdXNlZEZpbGUkIHwgYXN5bmNcbiAgICAgICJcbiAgICAgIFtzdGFja0ZyYW1lc0ZvckRpc3BsYXldPSJzdGFja0ZyYW1lc0ZvckRpc3BsYXkkIHwgYXN5bmMiXG4gICAgICAob25Tb3VyY2VMaW5lQ2xpY2tlZCk9Im9uU291cmNlTGluZUNsaWNrZWQoJGV2ZW50KSJcbiAgICA+PC9zdGFjay10cmFjZS1jb21wb25lbnQ+XG4gICd9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSksbnVsbCk7Y2xhc3MgayR7Y29uc3RydWN0b3IoKXt0aGlzLnJ1bnM9e30sdGhpcy5ydW5JZHM9W10sdGhpcy5hY3RpdmVSdW5JZD1udWxsfX1rJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ayQpfSxrJC7JtWNtcD1zbyh7dHlwZTprJCxzZWxlY3RvcnM6W1siZGVidWdnZXItY29tcG9uZW50Il1dLGlucHV0czp7cnVuczoicnVucyIscnVuSWRzOiJydW5JZHMiLGFjdGl2ZVJ1bklkOiJhY3RpdmVSdW5JZCJ9LGRlY2xzOjQsdmFyczoyLGNvbnN0czpbWzEsImRlYnVnZ2VyLWNvbnRhaW5lciJdLFs0LCJuZ0lmIiwibmdJZkVsc2UiXSxbImRhdGFBdmFpbGFibGUiLCIiXSxbMSwidG9wLXNlY3Rpb24iXSxbMSwidG9wLWNlbnRlci1zZWN0aW9uIl0sWzEsImJvdHRvbS1zZWN0aW9uIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihDZigwLCJkaXYiLDApLEhtKDEsUCQsMSwwLCJ0Zi1kZWJ1Z2dlci12Mi1pbmFjdGl2ZSIsMSksSG0oMix3JCw5LDAsIm5nLXRlbXBsYXRlIixudWxsLDIscXkpLE1mKCkpLDImZSl7Y29uc3QgdD1GbSgzKTtEYygxKSxiZigibmdJZiIsMD09PW4ucnVuSWRzLmxlbmd0aCkoIm5nSWZFbHNlIix0KX19LGRpcmVjdGl2ZXM6W1B2LFBYLENKLGJRLElRLFlRLHMkLE8kXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0uYm90dG9tLXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVde2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXItdG9wOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6ZmxleDtmbGV4LWdyb3c6MTtoZWlnaHQ6MzQlO3BhZGRpbmctdG9wOjZweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuYm90dG9tLXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuYm90dG9tLXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVde2JvcmRlci10b3A6MXB4IHNvbGlkICM1NTV9LmRlYnVnZ2VyLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym94LXNpemluZzpib3JkZXItYm94O2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn0udG9wLXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVde2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjE7aGVpZ2h0OjY2JTtwYWRkaW5nOjZweCAwfXRmLWRlYnVnZ2VyLXYyLWFsZXJ0c1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDoxMHB4O21pbi13aWR0aDoxNjBweDt3aWR0aDpjYWxjKDE1JSAtIDExcHgpfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIHRmLWRlYnVnZ2VyLXYyLWFsZXJ0c1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIHRmLWRlYnVnZ2VyLXYyLWFsZXJ0c1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjNTU1fXRmLWRlYnVnZ2VyLXYyLWdyYXBoLWV4ZWN1dGlvbnNbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZsZXgtZ3JvdzoxO21pbi13aWR0aDo1NDBweDt3aWR0aDo1NDBweH10Zi1kZWJ1Z2dlci12Mi1zb3VyY2UtZmlsZXNbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxMDAlO3dpZHRoOjcwJX10Zi1kZWJ1Z2dlci12Mi1zdGFjay10cmFjZVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmxleC1ncm93OjE7aGVpZ2h0OjEwMCU7bWluLXdpZHRoOjU0MHB4O3dpZHRoOjU0MHB4fS50b3AtY2VudGVyLXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrO292ZXJmbG93OmF1dG87d2lkdGg6NTUlfXRmLWRlYnVnZ2VyLXYyLXRpbWVsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmJsb2NrfXRmLWRlYnVnZ2VyLXYyLWdyYXBoW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItdG9wOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXRvcDo1cHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgdGYtZGVidWdnZXItdjItZ3JhcGhbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICB0Zi1kZWJ1Z2dlci12Mi1ncmFwaFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXRvcDoxcHggc29saWQgIzU1NX0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoayQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoiZGVidWdnZXItY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiLi9kZWJ1Z2dlcl9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9kZWJ1Z2dlcl9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sbnVsbCx7cnVuczpbe3R5cGU6Ul99XSxydW5JZHM6W3t0eXBlOlJffV0sYWN0aXZlUnVuSWQ6W3t0eXBlOlJffV19KTtjbGFzcyBTJHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5ydW5zJD10aGlzLnN0b3JlLnBpcGUoclMoQ0spKSx0aGlzLnJ1bnNJZHMkPXRoaXMuc3RvcmUucGlwZShyUyhiUyhDSywodD0+T2JqZWN0LmtleXModCkpKSkpLHRoaXMuYWN0aXZlUnVuSWQkPXRoaXMuc3RvcmUucGlwZShyUyh2SykpfW5nT25Jbml0KCl7dGhpcy5zdG9yZS5kaXNwYXRjaCh3WCgpKX1uZ09uRGVzdHJveSgpe3RoaXMuc3RvcmUuZGlzcGF0Y2goa1goKSl9fVMkLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxTJCkoZ2YoaVMpKX0sUyQuybVjbXA9c28oe3R5cGU6UyQsc2VsZWN0b3JzOltbInRmLWRlYnVnZ2VyLXYyIl1dLGRlY2xzOjQsdmFyczo5LGNvbnN0czpbWzMsInJ1bnMiLCJydW5JZHMiLCJhY3RpdmVSdW5JZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYodmYoMCwiZGVidWdnZXItY29tcG9uZW50IiwwKSxfeSgxLCJhc3luYyIpLF95KDIsImFzeW5jIiksX3koMywiYXN5bmMiKSksMiZlJiZiZigicnVucyIsQ3koMSwzLG4ucnVucyQpKSgicnVuSWRzIixDeSgyLDUsbi5ydW5zSWRzJCkpKCJhY3RpdmVSdW5JZCIsQ3koMyw3LG4uYWN0aXZlUnVuSWQkKSl9LGRpcmVjdGl2ZXM6W2skXSxwaXBlczpbVnZdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfSJdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihTJCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJ0Zi1kZWJ1Z2dlci12MiIsdGVtcGxhdGU6J1xuICAgIDxkZWJ1Z2dlci1jb21wb25lbnRcbiAgICAgIFtydW5zXT0icnVucyQgfCBhc3luYyJcbiAgICAgIFtydW5JZHNdPSJydW5zSWRzJCB8IGFzeW5jIlxuICAgICAgW2FjdGl2ZVJ1bklkXT0iYWN0aXZlUnVuSWQkIHwgYXN5bmMiXG4gICAgPjwvZGVidWdnZXItY29tcG9uZW50PlxuICAnLHN0eWxlczpbIlxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuICAgICJdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aVN9XX0pLG51bGwpO2NvbnN0IEQkPSJkZWJ1Z2dlci12MiI7ZnVuY3Rpb24gUiQodCxlLG4sbyxpKXtpZihuPD0wfHwhTnVtYmVyLmlzSW50ZWdlcihuKSl0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGFnZVNpemU6ICR7bn1gKTtpZihlPm8pdGhyb3cgbmV3IEVycm9yKGBlbmQgaW5kZXggKCR7ZX0pIGV4Y2VlZHMgdG90YWwgbnVtYmVyIG9mIGl0ZW1zICgke299KWApO2lmKGUtdD5uKXRocm93IG5ldyBFcnJvcigiYmVnaW4tZW5kIHNwYW4gZXhjZWVkcyBwYWdlIHNpemUsIHdoaWNoIGlzIG5vdCBhbGxvd2VkIik7Y29uc3QgYT1bXSxyPU1hdGguZmxvb3IodC9uKTsoIShyIGluIGkpfHxpW3JdPG4mJnIqbitpW3JdPG8pJiZhLnB1c2gocik7Y29uc3Qgcz1NYXRoLmZsb29yKChlLTEpL24pO2lmKHMhPT1yKXsoIShzIGluIGkpfHxzKm4raVtzXTxlJiZlPG8pJiZhLnB1c2gocyl9cmV0dXJuIGF9Y2xhc3MgRSR7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuYWN0aW9ucyQ9dCx0aGlzLnN0b3JlPWUsdGhpcy5kYXRhU291cmNlPW4sdGhpcy5sb2FkRGF0YSQ9V1MoKCgpPT57Y29uc3QgdD10aGlzLmxvYWREZWJ1Z2dlclJ1bnMocGUodGhpcy5vbkRlYnVnZ2VyRGF0YVBvbGwoKSx0aGlzLm9uQ29yZVJlbG9hZCgpKSkucGlwZShJZSgpKSxlPXRoaXMubG9hZFNvdXJjZUZpbGVMaXN0KHQpLG49dGhpcy5jcmVhdGVOdW1FeGVjdXRpb25Mb2FkZXIodCksbz10aGlzLmNyZWF0ZU51bUFsZXJ0c0FuZEJyZWFrZG93bkxvYWRlcih0KSxpPXRoaXMub25BbGVydFR5cGVGb2N1c2VkKCksYT10aGlzLmZldGNoRXhlY3V0aW9uRGlnZXN0c0ZvckFsZXJ0VHlwZUZvY3VzKGkpLHI9dGhpcy5jcmVhdGVJbml0aWFsRXhlY3V0aW9uRGV0ZWN0b3IobikucGlwZShJZSgpKSxzPXRoaXMuY3JlYXRlRXhlY3V0aW9uRGlnZXN0TG9hZGVyKHBlKHRoaXMub25FeGVjdXRpb25TY3JvbGwoKSx0aGlzLmNyZWF0ZUluaXRpYWxFeGVjdXRpb25EaWdlc3QociksYSkpLGw9dGhpcy5jcmVhdGVFeGVjdXRpb25EYXRhQW5kU3RhY2tGcmFtZXNMb2FkZXIocGUodGhpcy5vbkV4ZWN1dGlvbkRpZ2VzdEZvY3VzZWQoKSxyLnBpcGUocWUodGhpcy5zdG9yZS5zZWxlY3QodkspLHRoaXMuc3RvcmUuc2VsZWN0KGlKKSksVnQoKChbLHQsZV0pPT4oe2FjdGl2ZVJ1bklkOnQsbG9hZGVkRXhlY3V0aW9uRGF0YTplLGZvY3VzSW5kZXg6MH0pKSkpKSk7cmV0dXJuIHBlKG8scyxsLHRoaXMuY3JlYXRlTnVtR3JhcGhFeGVjdXRpb25Mb2FkZXIodCksZSx0aGlzLm9uU291cmNlRmlsZUZvY3VzZWQoKSx0aGlzLmxvYWRHcmFwaEV4ZWN1dGlvblBhZ2VzKHRoaXMub25HcmFwaEV4ZWN1dGlvblNjcm9sbCgpKSx0aGlzLmxvYWRHcmFwaE9wU3RhY2tGcmFtZXModGhpcy5sb2FkR3JhcGhPcEluZm8oKSkpLnBpcGUoVnQoKCgpPT4oe30pKSkpfSkse2Rpc3BhdGNoOiExfSl9b25EZWJ1Z2dlckRhdGFQb2xsKCl7cmV0dXJuIHRoaXMuYWN0aW9ucyQucGlwZSgkUyh3WCksVmUoKHQ9PihmdW5jdGlvbiBlKHQsbixvKXtyZXR1cm4gdC5waXBlKHplKCh0PT50LnBpcGUocWUobiksT2UoKChbLHRdKT0+ZGUodCkpKSkpKSxqZShvKSxWdCgoKCk9Pnt9KSkpfSkoenQodCksdGhpcy5zdG9yZS5zZWxlY3QoeEspLnBpcGUoVnQoKHQ9PihmdW5jdGlvbiBlKHQpe3JldHVybiB0PjZlND82ZTQ6dD40ZTM/dDoyZTN9KSh0KSkpKSx0aGlzLmFjdGlvbnMkLnBpcGUoJFMoa1gpKSkpKSxXZSgoKCk9PnRoaXMuc3RvcmUuZGlzcGF0Y2goU1goKSkpKSxWdCgoKCk9Pnt9KSkpfW9uQ29yZVJlbG9hZCgpe3JldHVybiBwZSh0aGlzLmFjdGlvbnMkLnBpcGUoJFMoSkUsUUUpKSx0aGlzLmFjdGlvbnMkLnBpcGUoJFMoWkUpKS5waXBlKHFlKHRoaXMuc3RvcmUuc2VsZWN0KE1LKSksdWUoKChbLHRdKT0+dC5zdGF0ZT09PVVFLk5PVF9MT0FERUR8fHQuc3RhdGU9PT1VRS5GQUlMRUQmJm51bGw9PT10Lmxhc3RMb2FkZWRUaW1lSW5NcykpKSkucGlwZShxZSh0aGlzLnN0b3JlLnNlbGVjdChlVCkpLHVlKCgoWyx0XSk9PnQ9PT1EJCkpLFdlKCgoKT0+dGhpcy5zdG9yZS5kaXNwYXRjaChTWCgpKSkpLFZ0KCgoKT0+e30pKSl9bG9hZERlYnVnZ2VyUnVucyh0KXtyZXR1cm4gdC5waXBlKHFlKHRoaXMuc3RvcmUuc2VsZWN0KE1LKSksdWUoKChbLHtzdGF0ZTp0fV0pPT50IT09VUUuTE9BRElORykpLFdlKCgoKT0+dGhpcy5zdG9yZS5kaXNwYXRjaChEWCgpKSkpLCR0KCgoKT0+dGhpcy5kYXRhU291cmNlLmZldGNoUnVucygpLnBpcGUoV2UoKHQ9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKFJYKHtydW5zOnR9KSl9KSksVnQoKCgpPT57fSkpKSkpKX1jcmVhdGVOdW1FeGVjdXRpb25Mb2FkZXIodCl7cmV0dXJuIHQucGlwZShxZSh0aGlzLnN0b3JlLnNlbGVjdChDSyksdGhpcy5zdG9yZS5zZWxlY3QoQUspKSx1ZSgoKFssdCxlXSk9Pk9iamVjdC5rZXlzKHQpLmxlbmd0aD4wJiZlLnN0YXRlIT09VUUuTE9BRElORykpLFdlKCgoKT0+dGhpcy5zdG9yZS5kaXNwYXRjaChJWCgpKSkpLCR0KCgoWyx0XSk9Pntjb25zdCBlPU9iamVjdC5rZXlzKHQpWzBdO3JldHVybiB0aGlzLmRhdGFTb3VyY2UuZmV0Y2hFeGVjdXRpb25EaWdlc3RzKGUsMCwwKS5waXBlKFdlKCh0PT57dGhpcy5zdG9yZS5kaXNwYXRjaChIWCh7bnVtRXhlY3V0aW9uczp0Lm51bV9kaWdlc3RzfSkpfSkpLFZ0KCgoKT0+e30pKSl9KSkpfWNyZWF0ZU51bUdyYXBoRXhlY3V0aW9uTG9hZGVyKHQpe3JldHVybiB0LnBpcGUocWUodGhpcy5zdG9yZS5zZWxlY3QoQ0spLHRoaXMuc3RvcmUuc2VsZWN0KEJLKSksdWUoKChbLHQsZV0pPT5PYmplY3Qua2V5cyh0KS5sZW5ndGg+MCYmZS5zdGF0ZSE9PVVFLkxPQURJTkcpKSxXZSgoKCk9PnRoaXMuc3RvcmUuZGlzcGF0Y2goR1goKSkpKSwkdCgoKFssdF0pPT57Y29uc3QgZT1PYmplY3Qua2V5cyh0KVswXTtyZXR1cm4gdGhpcy5kYXRhU291cmNlLmZldGNoR3JhcGhFeGVjdXRpb25EaWdlc3RzKGUsMCwwKS5waXBlKFdlKCh0PT57dGhpcy5zdG9yZS5kaXNwYXRjaChZWCh7bnVtR3JhcGhFeGVjdXRpb25zOnQubnVtX2RpZ2VzdHN9KSl9KSksVnQoKCgpPT57fSkpKX0pKSl9Y3JlYXRlTnVtQWxlcnRzQW5kQnJlYWtkb3duTG9hZGVyKHQpe3JldHVybiB0LnBpcGUocWUodGhpcy5zdG9yZS5zZWxlY3QoQ0spLHRoaXMuc3RvcmUuc2VsZWN0KFBLKSksdWUoKChbLHQsZV0pPT5PYmplY3Qua2V5cyh0KS5sZW5ndGg+MCYmZS5zdGF0ZSE9PVVFLkxPQURJTkcpKSxXZSgoKCk9PnRoaXMuc3RvcmUuZGlzcGF0Y2goQVgoKSkpKSwkdCgoKFssdF0pPT57Y29uc3QgZT1PYmplY3Qua2V5cyh0KVswXTtyZXR1cm4gdGhpcy5kYXRhU291cmNlLmZldGNoQWxlcnRzKGUsMCwwKS5waXBlKFdlKCh0PT57dGhpcy5zdG9yZS5kaXNwYXRjaChUWCh7bnVtQWxlcnRzOnQubnVtX2FsZXJ0cyxhbGVydHNCcmVha2Rvd246dC5hbGVydHNfYnJlYWtkb3dufSkpfSkpLFZ0KCgoKT0+e30pKSl9KSkpfWNyZWF0ZUluaXRpYWxFeGVjdXRpb25EZXRlY3Rvcih0KXtyZXR1cm4gdC5waXBlKHFlKHRoaXMuc3RvcmUuc2VsZWN0KE5LKSx0aGlzLnN0b3JlLnNlbGVjdChUSykpLHVlKCgoWyx0LGVdKT0+dD4wJiYwPT09T2JqZWN0LmtleXMoZS5wYWdlTG9hZGVkU2l6ZXMpLmxlbmd0aCkpLFZ0KCgoKT0+e30pKSl9Y3JlYXRlSW5pdGlhbEV4ZWN1dGlvbkRpZ2VzdCh0KXtyZXR1cm4gdC5waXBlKHFlKHRoaXMuc3RvcmUuc2VsZWN0KE5LKSx0aGlzLnN0b3JlLnNlbGVjdCh2SyksdGhpcy5zdG9yZS5zZWxlY3QoSUspKSx1ZSgoKFssLHRdKT0+bnVsbCE9PXQpKSxWdCgoKFssdCxlLG5dKT0+KHtiZWdpbjowLGVuZDpNYXRoLm1pbih0LG4pLHJ1bklkOmV9KSkpKX1vbkV4ZWN1dGlvblNjcm9sbCgpe3JldHVybiB0aGlzLmFjdGlvbnMkLnBpcGUoJFMoQlgsVlgsalgpLHFlKHRoaXMuc3RvcmUuc2VsZWN0KHZLKSx0aGlzLnN0b3JlLnNlbGVjdCh6SyksdGhpcy5zdG9yZS5zZWxlY3QoTkspLHRoaXMuc3RvcmUuc2VsZWN0KEhLKSx0aGlzLnN0b3JlLnNlbGVjdChJSykpLHVlKCgoW3RdKT0+bnVsbCE9PXQpKSxWdCgoKFssdCxlLG4sbyxpXSk9Pih7cnVuSWQ6dCxiZWdpbjplLGVuZDpNYXRoLm1pbihuLGUrbykscGFnZVNpemU6aX0pKSkscWUodGhpcy5zdG9yZS5zZWxlY3QoVEspKSxWdCgoKFt0LGVdKT0+KHtwcm9wczp0LGxvYWRlZDplLG1pc3NpbmdQYWdlczpSJCh0LmJlZ2luLHQuZW5kLHQucGFnZVNpemUsZS5udW1FeGVjdXRpb25zLGUucGFnZUxvYWRlZFNpemVzKX0pKSksdWUoKCh7bWlzc2luZ1BhZ2VzOnR9KT0+dC5sZW5ndGg+MCkpLFZ0KCgoe3Byb3BzOnQsbG9hZGVkOmUsbWlzc2luZ1BhZ2VzOm59KT0+e2NvbnN0e3J1bklkOm8scGFnZVNpemU6aX09dDtyZXR1cm57YmVnaW46blswXSppLGVuZDpNYXRoLm1pbihlLm51bUV4ZWN1dGlvbnMsKG5bbi5sZW5ndGgtMV0rMSkqaSkscnVuSWQ6b319KSkpfWNyZWF0ZUV4ZWN1dGlvbkRpZ2VzdExvYWRlcih0KXtyZXR1cm4gdC5waXBlKHFlKHRoaXMuc3RvcmUuc2VsZWN0KFRLKSksdWUoKChbe2JlZ2luOnQsZW5kOmV9LG5dKT0+ZT50JiYhKGZ1bmN0aW9uIG8odCxlLG4pe2lmKGU+PW4pdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBiZWdpbiB0byBiZSBsZXNzIHRoYW4gZW5kLCBidXQgZ290IGJlZ2luPSR7ZX0sIGVuZD0ke259YCk7cmV0dXJuLTEhPT10LmZpbmRJbmRleCgodD0+dC5iZWdpbj49ZSYmdC5lbmQ8PW4pKX0pKG4ubG9hZGluZ1Jhbmdlcyx0LGUpKSksV2UoKChbe2JlZ2luOnQsZW5kOmV9XSk9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKEZYKHtiZWdpbjp0LGVuZDplfSkpfSkpLCR0KCgoW3tydW5JZDp0LGJlZ2luOmUsZW5kOm59XSk9PnRoaXMuZGF0YVNvdXJjZS5mZXRjaEV4ZWN1dGlvbkRpZ2VzdHModCxlLG4pLnBpcGUoV2UoKHQ9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKExYKHQpKX0pKSxWdCgoKCk9Pnt9KSkpKSkpfW9uRXhlY3V0aW9uRGlnZXN0Rm9jdXNlZCgpe3JldHVybiB0aGlzLmFjdGlvbnMkLnBpcGUoJFMoVVgpLHFlKHRoaXMuc3RvcmUuc2VsZWN0KHZLKSx0aGlzLnN0b3JlLnNlbGVjdChpSiksdGhpcy5zdG9yZS5zZWxlY3QoekspKSxWdCgoKFt0LGUsbixvXSk9Pih7YWN0aXZlUnVuSWQ6ZSxsb2FkZWRFeGVjdXRpb25EYXRhOm4sZm9jdXNJbmRleDpvK3QuZGlzcGxheUluZGV4fSkpKSl9Y3JlYXRlRXhlY3V0aW9uRGF0YUFuZFN0YWNrRnJhbWVzTG9hZGVyKHQpe3JldHVybiB0LnBpcGUodWUoKCh7YWN0aXZlUnVuSWQ6dCxsb2FkZWRFeGVjdXRpb25EYXRhOmUsZm9jdXNJbmRleDpufSk9Pm51bGwhPT10JiZudWxsIT09biYmdm9pZCAwPT09ZVtuXSkpLCR0KCgoe2FjdGl2ZVJ1bklkOnQsZm9jdXNJbmRleDplfSk9Pntjb25zdCBuPWUsbz1uKzE7cmV0dXJuIHRoaXMuZGF0YVNvdXJjZS5mZXRjaEV4ZWN1dGlvbkRhdGEodCxuLG8pLnBpcGUoV2UoKHQ9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKFdYKHQpKX0pKSxWdCgodD0+KHtleGVjdXRpb25EYXRhOnQsYmVnaW46bixlbmQ6b30pKSkpfSkpLFZ0KCgoe2V4ZWN1dGlvbkRhdGE6dH0pPT50LmV4ZWN1dGlvbnNbMF0pKSxxZSh0aGlzLnN0b3JlLnNlbGVjdCh2SyksdGhpcy5zdG9yZS5zZWxlY3QockopKSx1ZSgoKFt0LGUsbl0pPT57aWYobnVsbD09PWUpcmV0dXJuITE7Zm9yKGNvbnN0IGUgb2YgdC5zdGFja19mcmFtZV9pZHMpaWYodm9pZCAwPT09bltlXSlyZXR1cm4hMDtyZXR1cm4hMX0pKSwkdCgoKFt0LGVdKT0+e2NvbnN0IG49dC5zdGFja19mcmFtZV9pZHM7cmV0dXJuIHRoaXMuZGF0YVNvdXJjZS5mZXRjaFN0YWNrRnJhbWVzKGUsbikucGlwZShXZSgodD0+e2NvbnN0IGU9e307Zm9yKGxldCBvPTA7bzxuLmxlbmd0aDsrK28pZVtuW29dXT10LnN0YWNrX2ZyYW1lc1tvXTt0aGlzLnN0b3JlLmRpc3BhdGNoKGFLKHtzdGFja0ZyYW1lczplfSkpfSkpLFZ0KCgoKT0+e30pKSl9KSkpfW9uR3JhcGhFeGVjdXRpb25TY3JvbGwoKXtyZXR1cm4gdGhpcy5hY3Rpb25zJC5waXBlKCRTKFhYKSxDZSgxMDApLHFlKHRoaXMuc3RvcmUuc2VsZWN0KHZLKSx0aGlzLnN0b3JlLnNlbGVjdChWSyksdGhpcy5zdG9yZS5zZWxlY3QoakspKSx1ZSgoKFssdCxlXSk9Pm51bGwhPT10JiZlPjApKSxWdCgoKFssdCxlLG5dKT0+KHtydW5JZDp0LG51bUdyYXBoRXhlY3V0aW9uczplLHNjcm9sbEJlZ2luSW5kZXg6bn0pKSkscWUodGhpcy5zdG9yZS5zZWxlY3QoV0spLHRoaXMuc3RvcmUuc2VsZWN0KFVLKSx0aGlzLnN0b3JlLnNlbGVjdChHSyksdGhpcy5zdG9yZS5zZWxlY3QoWUspKSxWdCgoKFt7cnVuSWQ6dCxudW1HcmFwaEV4ZWN1dGlvbnM6ZSxzY3JvbGxCZWdpbkluZGV4Om59LG8saSxhLHJdKT0+e2xldCBzPVIkKG4sTWF0aC5taW4obitpLGUpLG8sZSxyKTtyZXR1cm4gcz1zLmZpbHRlcigodD0+LTE9PT1hLmluZGV4T2YodCkpKSx7cnVuSWQ6dCxtaXNzaW5nUGFnZXM6cyxwYWdlU2l6ZTpvLG51bUdyYXBoRXhlY3V0aW9uczplfX0pKSl9bG9hZEdyYXBoRXhlY3V0aW9uUGFnZXModCl7cmV0dXJuIHQucGlwZSh1ZSgoKHttaXNzaW5nUGFnZXM6dH0pPT50Lmxlbmd0aD4wKSksV2UoKCh7bWlzc2luZ1BhZ2VzOnR9KT0+e3QuZm9yRWFjaCgodD0+e3RoaXMuc3RvcmUuZGlzcGF0Y2gocVgoe3BhZ2VJbmRleDp0fSkpfSkpfSkpLCR0KCgoe3J1bklkOnQsbWlzc2luZ1BhZ2VzOmUscGFnZVNpemU6bixudW1HcmFwaEV4ZWN1dGlvbnM6b30pPT57Y29uc3QgaT1lWzBdKm4sYT1NYXRoLm1pbigoZVtlLmxlbmd0aC0xXSsxKSpuLG8pO3JldHVybiB0aGlzLmRhdGFTb3VyY2UuZmV0Y2hHcmFwaEV4ZWN1dGlvbkRhdGEodCxpLGEpLnBpcGUoV2UoKHQ9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKFpYKHQpKX0pKSxWdCgoKCk9Pnt9KSkpfSkpKX1sb2FkR3JhcGhPcEluZm8oKXtyZXR1cm4gdGhpcy5hY3Rpb25zJC5waXBlKCRTKEpYLEtYKSxxZSh0aGlzLnN0b3JlLnNlbGVjdCh2SyksdGhpcy5zdG9yZS5zZWxlY3QoYUopKSx1ZSgoKFt0LGUsbl0pPT57Y29uc3R7Z3JhcGhfaWQ6byxvcF9uYW1lOml9PXQ7cmV0dXJuIShudWxsPT09ZXx8dm9pZCAwIT09bltvXSYmbltvXS5oYXMoaSkmJihuW29dLmdldChpKT09PVVFLkxPQURJTkd8fG5bb10uZ2V0KGkpPT09VUUuTE9BREVEKSl9KSksV2UoKChbe2dyYXBoX2lkOnQsb3BfbmFtZTplfV0pPT50aGlzLnN0b3JlLmRpc3BhdGNoKFFYKHtncmFwaF9pZDp0LG9wX25hbWU6ZX0pKSkpLCR0KCgoW3QsZV0pPT57Y29uc3R7Z3JhcGhfaWQ6bixvcF9uYW1lOm99PXQ7cmV0dXJuIHRoaXMuZGF0YVNvdXJjZS5mZXRjaEdyYXBoT3BJbmZvKGUsbixvKS5waXBlKFdlKCh0PT50aGlzLnN0b3JlLmRpc3BhdGNoKCRYKHtncmFwaE9wSW5mb1Jlc3BvbnNlOnR9KSkpKSxWdCgodD0+KHtydW5JZDplLHN0YWNrRnJhbWVJZHM6dC5zdGFja19mcmFtZV9pZHN9KSkpKX0pKSl9bG9hZEdyYXBoT3BTdGFja0ZyYW1lcyh0KXtyZXR1cm4gdC5waXBlKHFlKHRoaXMuc3RvcmUuc2VsZWN0KHJKKSksVnQoKChbe3J1bklkOnQsc3RhY2tGcmFtZUlkczplfSxuXSk9Pih7cnVuSWQ6dCxtaXNzaW5nU3RhY2tGcmFtZUlkczplLmZpbHRlcigodD0+dm9pZCAwPT09blt0XSkpfSkpKSx1ZSgoKHtydW5JZDp0LG1pc3NpbmdTdGFja0ZyYW1lSWRzOmV9KT0+bnVsbCE9PXQmJmUubGVuZ3RoPjApKSwkdCgoKHtydW5JZDp0LG1pc3NpbmdTdGFja0ZyYW1lSWRzOmV9KT0+dGhpcy5kYXRhU291cmNlLmZldGNoU3RhY2tGcmFtZXModCxlKS5waXBlKFdlKCh0PT57Y29uc3Qgbj17fTtmb3IobGV0IG89MDtvPGUubGVuZ3RoOysrbyluW2Vbb11dPXQuc3RhY2tfZnJhbWVzW29dO3RoaXMuc3RvcmUuZGlzcGF0Y2goYUsoe3N0YWNrRnJhbWVzOm59KSl9KSksVnQoKCgpPT57fSkpKSkpKX1vbkFsZXJ0VHlwZUZvY3VzZWQoKXtyZXR1cm4gdGhpcy5hY3Rpb25zJC5waXBlKCRTKHpYKSxxZSh0aGlzLnN0b3JlLnNlbGVjdCh2SyksdGhpcy5zdG9yZS5zZWxlY3Qoa0spLHRoaXMuc3RvcmUuc2VsZWN0KFNLKSx0aGlzLnN0b3JlLnNlbGVjdChESyksdGhpcy5zdG9yZS5zZWxlY3QoUEspKSx1ZSgoKFssdCxlLG4sbyxpXSk9Pm51bGwhPT10JiZudWxsIT09ZSYmbj4wJiYobnVsbD09PW98fE9iamVjdC5rZXlzKG8pLmxlbmd0aDxuKSYmaS5zdGF0ZSE9PVVFLkxPQURJTkcpKSxXZSgoKCk9PnRoaXMuc3RvcmUuZGlzcGF0Y2goQVgoKSkpKSwkdCgoKFssdCxlXSk9PnRoaXMuZGF0YVNvdXJjZS5mZXRjaEFsZXJ0cyh0LDAsLTEsZSkpKSxXZSgoKHtudW1fYWxlcnRzOnQsYWxlcnRzX2JyZWFrZG93bjplLGFsZXJ0X3R5cGU6bixiZWdpbjpvLGVuZDppLGFsZXJ0czphfSk9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKE5YKHtudW1BbGVydHM6dCxhbGVydHNCcmVha2Rvd246ZSxhbGVydFR5cGU6bixiZWdpbjpvLGVuZDppLGFsZXJ0czphfSkpfSkpKX1mZXRjaEV4ZWN1dGlvbkRpZ2VzdHNGb3JBbGVydFR5cGVGb2N1cyh0KXtyZXR1cm4gdC5waXBlKHFlKHRoaXMuc3RvcmUuc2VsZWN0KElLKSx0aGlzLnN0b3JlLnNlbGVjdChISyksdGhpcy5zdG9yZS5zZWxlY3QoTkspLHRoaXMuc3RvcmUuc2VsZWN0KFRLKSx0aGlzLnN0b3JlLnNlbGVjdCh2SykpLFZ0KCgoW3QsZSxuLG8saSxhXSk9Pntjb25zdCByPXQuYWxlcnRzWzBdLmV4ZWN1dGlvbl9pbmRleCxzPVIkKE1hdGgubWF4KDAsci1NYXRoLmZsb29yKG4vMikpLE1hdGgubWluKHIrTWF0aC5mbG9vcihuLzIpLG8pLGUsbyxpLnBhZ2VMb2FkZWRTaXplcyk7aWYoMD09PXMubGVuZ3RoKXJldHVybntydW5JZDphLGJlZ2luOjAsZW5kOjB9O3JldHVybntydW5JZDphLGJlZ2luOnNbMF0qZSxlbmQ6TWF0aC5taW4oaS5udW1FeGVjdXRpb25zLChzW3MubGVuZ3RoLTFdKzEpKmUpfX0pKSl9bG9hZFNvdXJjZUZpbGVMaXN0KHQpe3JldHVybiB0LnBpcGUocWUodGhpcy5zdG9yZS5zZWxlY3QodkspLHRoaXMuc3RvcmUuc2VsZWN0KHBKKSksdWUoKChbLHQsZV0pPT5udWxsIT09dCYmZS5zdGF0ZSE9PVVFLkxPQURJTkcpKSxXZSgoKCk9PnRoaXMuc3RvcmUuZGlzcGF0Y2godEsoKSkpKSwkdCgoKFssdF0pPT50aGlzLmRhdGFTb3VyY2UuZmV0Y2hTb3VyY2VGaWxlTGlzdCh0KS5waXBlKFdlKCh0PT57Y29uc3QgZT1bXTt0LmZvckVhY2goKChbdCxuXSk9PntlLnB1c2goe2hvc3RfbmFtZTp0LGZpbGVfcGF0aDpufSl9KSksdGhpcy5zdG9yZS5kaXNwYXRjaChlSyh7c291cmNlRmlsZXM6ZX0pKX0pKSxWdCgoKCk9Pnt9KSkpKSkpfW9uU291cmNlRmlsZUZvY3VzZWQoKXtyZXR1cm4gdGhpcy5hY3Rpb25zJC5waXBlKCRTKG5LKSxxZSh0aGlzLnN0b3JlLnNlbGVjdCh2SyksdGhpcy5zdG9yZS5zZWxlY3QobUopLHRoaXMuc3RvcmUuc2VsZWN0KGZKKSksVnQoKChbdCxlLG4sb10pPT4oe3J1bklkOmUsc3RhY2tGcmFtZTp0LnN0YWNrRnJhbWUsZmlsZUluZGV4Om4sZmlsZUNvbnRlbnQ6b30pKSksdWUoKCh7cnVuSWQ6dCxmaWxlQ29udGVudDplfSk9Pm51bGwhPT10JiZudWxsIT09ZSYmZS5sb2FkU3RhdGU9PT1VRS5OT1RfTE9BREVEKSksV2UoKCh7c3RhY2tGcmFtZTp0fSk9PnRoaXMuc3RvcmUuZGlzcGF0Y2gob0soe2hvc3RfbmFtZTp0Lmhvc3RfbmFtZSxmaWxlX3BhdGg6dC5maWxlX3BhdGh9KSkpKSwkdCgoKHtmaWxlSW5kZXg6dCxydW5JZDplfSk9PnRoaXMuZGF0YVNvdXJjZS5mZXRjaFNvdXJjZUZpbGUoZSx0KS5waXBlKFdlKCh0PT57dGhpcy5zdG9yZS5kaXNwYXRjaChpSyh0KSl9KSksVnQoKCgpPT57fSkpKSkpKX19RSQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEUkKShUcihRUyksVHIoaVMpLFRyKHZYKSl9LEUkLsm1cHJvdj1Tbih7dG9rZW46RSQsZmFjdG9yeTpFJC7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoRSQsW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlFTfSx7dHlwZTppU30se3R5cGU6dlh9XX0pLG51bGwpO2NsYXNzIEEke31BJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8QSQpfSxBJC7JtW1vZD1mbyh7dHlwZTpBJH0pLEEkLsm1aW5qPURuKHtpbXBvcnRzOltbcnhdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoQSQsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W3lKLENKXSxpbXBvcnRzOltyeF0sZXhwb3J0czpbQ0pdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oQSQse2RlY2xhcmF0aW9uczpbeUosQ0pdLGltcG9ydHM6W3J4XSxleHBvcnRzOltDSl19KTtjbGFzcyBUJHt9VCQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFQkKX0sVCQuybVtb2Q9Zm8oe3R5cGU6VCR9KSxUJC7JtWluaj1Ebih7aW1wb3J0czpbW3J4XV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFQkLFt7dHlwZTpMXyxhcmdzOlt7ZGVjbGFyYXRpb25zOlt6USxPUSxJUV0saW1wb3J0czpbcnhdLGV4cG9ydHM6W0lRXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKFQkLHtkZWNsYXJhdGlvbnM6W3pRLE9RLElRXSxpbXBvcnRzOltyeF0sZXhwb3J0czpbSVFdfSk7Y2xhc3MgTiR7fU4kLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxOJCl9LE4kLsm1bW9kPWZvKHt0eXBlOk4kfSksTiQuybVpbmo9RG4oe2ltcG9ydHM6W1tyeF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihOJCxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbWEosJEosUUosS0osSkosdFFdLGltcG9ydHM6W3J4XSxleHBvcnRzOlt0UV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhOJCx7ZGVjbGFyYXRpb25zOltYSiwkSixRSixLSixKSix0UV0saW1wb3J0czpbcnhdLGV4cG9ydHM6W3RRXX0pO2NsYXNzIHoke316JC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8eiQpfSx6JC7JtW1vZD1mbyh7dHlwZTp6JH0pLHokLsm1aW5qPURuKHtpbXBvcnRzOltbcngsTiQsaUJdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoeiQsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W0dRLFlRXSxpbXBvcnRzOltyeCxOJCxpQl0sZXhwb3J0czpbWVFdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oeiQse2RlY2xhcmF0aW9uczpbR1EsWVFdLGltcG9ydHM6W3J4LE4kLGlCXSxleHBvcnRzOltZUV19KTtjbGFzcyBJJHt9SSQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEkkKX0sSSQuybVtb2Q9Zm8oe3R5cGU6SSR9KSxJJC7JtWluaj1Ebih7fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihJJCxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbT1gsUFhdLGV4cG9ydHM6W1BYXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKEkkLHtkZWNsYXJhdGlvbnM6W09YLFBYXSxleHBvcnRzOltQWF19KTtjbGFzcyBIJHt9SCQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEgkKX0sSCQuybVtb2Q9Zm8oe3R5cGU6SCR9KSxIJC7JtWluaj1Ebih7fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihIJCxbe3R5cGU6TF8sYXJnczpbe2V4cG9ydHM6WyRRXSxkZWNsYXJhdGlvbnM6WyRRXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKEgkLHtkZWNsYXJhdGlvbnM6WyRRXSxleHBvcnRzOlskUV19KTtjb25zdCBGJD1bImNvZGVWaWV3ZXJDb250YWluZXIiXTtjbGFzcyBMJHtjb25zdHJ1Y3Rvcigpe3RoaXMuZmlyc3RUZXh0PW51bGwsdGhpcy5zZWNvbmRUZXh0PW51bGwsdGhpcy5yZW5kZXJTaWRlQnlTaWRlPSEwLHRoaXMubW9uYWNvPW51bGwsdGhpcy5lZGl0b3I9bnVsbCx0aGlzLlJFU0laRV9ERUJPVU5DRV9JTlRFUlZBTF9NUz01MH1vblJlc2l6ZSgpe3RoaXMuZWRpdG9yJiZ0aGlzLmVkaXRvci5sYXlvdXQoKX1uZ09uQ2hhbmdlcyh0KXtpZighdGhpcy5tb25hY28pcmV0dXJuO2NvbnN0IGU9IXRoaXMuZWRpdG9yO2UmJih0aGlzLmVkaXRvcj10aGlzLm1vbmFjby5lZGl0b3IuY3JlYXRlRGlmZkVkaXRvcih0aGlzLmNvZGVWaWV3ZXJDb250YWluZXIubmF0aXZlRWxlbWVudCx7cmVhZE9ubHk6ITAsZm9udFNpemU6MTAsbWluaW1hcDp7ZW5hYmxlZDohMH0scmVuZGVyU2lkZUJ5U2lkZTp0aGlzLnJlbmRlclNpZGVCeVNpZGUsdGhlbWU6UVEodGhpcy51c2VEYXJrTW9kZSl9KSksKGV8fHQuZmlyc3RUZXh0fHx0LnNlY29uZFRleHQpJiZ0aGlzLmVkaXRvci5zZXRNb2RlbCh7b3JpZ2luYWw6dGhpcy5tb25hY28uZWRpdG9yLmNyZWF0ZU1vZGVsKHRoaXMuZmlyc3RUZXh0fHwiIiksbW9kaWZpZWQ6dGhpcy5tb25hY28uZWRpdG9yLmNyZWF0ZU1vZGVsKHRoaXMuc2Vjb25kVGV4dHx8IiIpfSksdC5yZW5kZXJTaWRlQnlTaWRlJiZ0aGlzLmVkaXRvci51cGRhdGVPcHRpb25zKHtyZW5kZXJTaWRlQnlTaWRlOnRoaXMucmVuZGVyU2lkZUJ5U2lkZX0pLHQudXNlRGFya01vZGUmJnRoaXMubW9uYWNvLmVkaXRvci5zZXRUaGVtZShRUSh0aGlzLnVzZURhcmtNb2RlKSl9fUwkLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxMJCl9LEwkLsm1Y21wPXNvKHt0eXBlOkwkLHNlbGVjdG9yczpbWyJzb3VyY2UtY29kZS1kaWZmLWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmVnkoRiQsNyxLaCksMiZlKXtsZXQgdDtCeSh0PVV5KCkpJiYobi5jb2RlVmlld2VyQ29udGFpbmVyPXQuZmlyc3QpfX0saW5wdXRzOntmaXJzdFRleHQ6ImZpcnN0VGV4dCIsc2Vjb25kVGV4dDoic2Vjb25kVGV4dCIscmVuZGVyU2lkZUJ5U2lkZToicmVuZGVyU2lkZUJ5U2lkZSIsbW9uYWNvOiJtb25hY28iLHVzZURhcmtNb2RlOiJ1c2VEYXJrTW9kZSJ9LGZlYXR1cmVzOltxb10sZGVjbHM6Mix2YXJzOjEsY29uc3RzOltbImRldGVjdFJlc2l6ZSIsIiIsMSwiY29kZS12aWV3ZXItY29udGFpbmVyIiwzLCJyZXNpemVFdmVudERlYm91bmNlUGVyaW9kSW5NcyIsIm9uUmVzaXplIl0sWyJjb2RlVmlld2VyQ29udGFpbmVyIiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJkaXYiLDAsMSksUmYoIm9uUmVzaXplIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUmVzaXplKCl9KSksTWYoKSksMiZlJiZiZigicmVzaXplRXZlbnREZWJvdW5jZVBlcmlvZEluTXMiLG4uUkVTSVpFX0RFQk9VTkNFX0lOVEVSVkFMX01TKX0sZGlyZWN0aXZlczpbJFFdLHN0eWxlczpbIi5jb2RlLXZpZXdlci1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihMJCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJzb3VyY2UtY29kZS1kaWZmLWNvbXBvbmVudCIsdGVtcGxhdGU6J1xuICAgIDxkaXZcbiAgICAgICNjb2RlVmlld2VyQ29udGFpbmVyXG4gICAgICBjbGFzcz0iY29kZS12aWV3ZXItY29udGFpbmVyIlxuICAgICAgZGV0ZWN0UmVzaXplXG4gICAgICBbcmVzaXplRXZlbnREZWJvdW5jZVBlcmlvZEluTXNdPSJSRVNJWkVfREVCT1VOQ0VfSU5URVJWQUxfTVMiXG4gICAgICAob25SZXNpemUpPSJvblJlc2l6ZSgpIlxuICAgID48L2Rpdj5cbiAgJyxzdHlsZXM6WyJcbiAgICAgIC5jb2RlLXZpZXdlci1jb250YWluZXIge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG4gICAgIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sbnVsbCx7Zmlyc3RUZXh0Olt7dHlwZTpSX31dLHNlY29uZFRleHQ6W3t0eXBlOlJffV0scmVuZGVyU2lkZUJ5U2lkZTpbe3R5cGU6Ul99XSxtb25hY286W3t0eXBlOlJffV0sdXNlRGFya01vZGU6W3t0eXBlOlJffV0sY29kZVZpZXdlckNvbnRhaW5lcjpbe3R5cGU6YXIsYXJnczpbImNvZGVWaWV3ZXJDb250YWluZXIiLHtzdGF0aWM6ITAscmVhZDpLaH1dfV19KTtjbGFzcyBCJHtjb25zdHJ1Y3Rvcigpe3RoaXMuZmlyc3RUZXh0PW51bGwsdGhpcy5zZWNvbmRUZXh0PW51bGwsdGhpcy5yZW5kZXJTaWRlQnlTaWRlPSEwLHRoaXMudXNlRGFya01vZGU9ITEsdGhpcy5tb25hY28kPW51bGx9bmdPbkluaXQoKXt0aGlzLm1vbmFjbyQ9UHQoSlEoKSkucGlwZShWdCgoKCk9PndpbmRvdy5tb25hY28pKSl9fUIkLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxCJCl9LEIkLsm1Y21wPXNvKHt0eXBlOkIkLHNlbGVjdG9yczpbWyJzb3VyY2UtY29kZS1kaWZmIl1dLGlucHV0czp7Zmlyc3RUZXh0OiJmaXJzdFRleHQiLHNlY29uZFRleHQ6InNlY29uZFRleHQiLHJlbmRlclNpZGVCeVNpZGU6InJlbmRlclNpZGVCeVNpZGUiLHVzZURhcmtNb2RlOiJ1c2VEYXJrTW9kZSJ9LGRlY2xzOjIsdmFyczo3LGNvbnN0czpbWzMsImZpcnN0VGV4dCIsInNlY29uZFRleHQiLCJyZW5kZXJTaWRlQnlTaWRlIiwibW9uYWNvIiwidXNlRGFya01vZGUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKHZmKDAsInNvdXJjZS1jb2RlLWRpZmYtY29tcG9uZW50IiwwKSxfeSgxLCJhc3luYyIpKSwyJmUmJmJmKCJmaXJzdFRleHQiLG4uZmlyc3RUZXh0KSgic2Vjb25kVGV4dCIsbi5zZWNvbmRUZXh0KSgicmVuZGVyU2lkZUJ5U2lkZSIsbi5yZW5kZXJTaWRlQnlTaWRlKSgibW9uYWNvIixDeSgxLDUsbi5tb25hY28kKSkoInVzZURhcmtNb2RlIixuLnVzZURhcmtNb2RlKX0sZGlyZWN0aXZlczpbTCRdLHBpcGVzOltWdl0sc3R5bGVzOlsic291cmNlLWNvZGUtZGlmZi1jb21wb25lbnRbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoQiQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3Rvcjoic291cmNlLWNvZGUtZGlmZiIsdGVtcGxhdGU6J1xuICAgIDxzb3VyY2UtY29kZS1kaWZmLWNvbXBvbmVudFxuICAgICAgW2ZpcnN0VGV4dF09ImZpcnN0VGV4dCJcbiAgICAgIFtzZWNvbmRUZXh0XT0ic2Vjb25kVGV4dCJcbiAgICAgIFtyZW5kZXJTaWRlQnlTaWRlXT0icmVuZGVyU2lkZUJ5U2lkZSJcbiAgICAgIFttb25hY29dPSJtb25hY28kIHwgYXN5bmMiXG4gICAgICBbdXNlRGFya01vZGVdPSJ1c2VEYXJrTW9kZSJcbiAgICA+PC9zb3VyY2UtY29kZS1kaWZmLWNvbXBvbmVudD5cbiAgJyxzdHlsZXM6WyJcbiAgICAgIHNvdXJjZS1jb2RlLWRpZmYtY29tcG9uZW50IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgICAiXSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSxudWxsLHtmaXJzdFRleHQ6W3t0eXBlOlJffV0sc2Vjb25kVGV4dDpbe3R5cGU6Ul99XSxyZW5kZXJTaWRlQnlTaWRlOlt7dHlwZTpSX31dLHVzZURhcmtNb2RlOlt7dHlwZTpSX31dfSk7Y2xhc3MgViR7fVYkLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxWJCl9LFYkLsm1bW9kPWZvKHt0eXBlOlYkfSksViQuybVpbmo9RG4oe2ltcG9ydHM6W1tyeCxIJF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihWJCxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbZSQsbiQsTCQsQiRdLGltcG9ydHM6W3J4LEgkXSxleHBvcnRzOltuJCxCJF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhWJCx7ZGVjbGFyYXRpb25zOltlJCxuJCxMJCxCJF0saW1wb3J0czpbcngsSCRdLGV4cG9ydHM6W24kLEIkXX0pO2NsYXNzIGoke31qJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8aiQpfSxqJC7JtW1vZD1mbyh7dHlwZTpqJH0pLGokLsm1aW5qPURuKHtpbXBvcnRzOltbcngsViRdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoaiQsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W3IkLHMkXSxpbXBvcnRzOltyeCxWJF0sZXhwb3J0czpbcyRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oaiQse2RlY2xhcmF0aW9uczpbciQscyRdLGltcG9ydHM6W3J4LFYkXSxleHBvcnRzOltzJF19KTtjbGFzcyBVJHt9VSQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFUkKX0sVSQuybVtb2Q9Zm8oe3R5cGU6VSR9KSxVJC7JtWluaj1Ebih7aW1wb3J0czpbW3J4LFYkXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFUkLFt7dHlwZTpMXyxhcmdzOlt7ZGVjbGFyYXRpb25zOlt4JCxPJF0saW1wb3J0czpbcngsViRdLGV4cG9ydHM6W08kXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKFUkLHtkZWNsYXJhdGlvbnM6W3gkLE8kXSxpbXBvcnRzOltyeCxWJF0sZXhwb3J0czpbTyRdfSk7Y2xhc3MgVyR7fVckLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxXJCl9LFckLsm1bW9kPWZvKHt0eXBlOlckfSksVyQuybVpbmo9RG4oe2ltcG9ydHM6W1tyeCxOJF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihXJCxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbclEsbFFdLGltcG9ydHM6W3J4LE4kXSxleHBvcnRzOltsUV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhXJCx7ZGVjbGFyYXRpb25zOltyUSxsUV0saW1wb3J0czpbcngsTiRdLGV4cG9ydHM6W2xRXX0pO2NsYXNzIEcke31HJC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RyQpfSxHJC7JtW1vZD1mbyh7dHlwZTpHJH0pLEckLsm1aW5qPURuKHtpbXBvcnRzOltbcngsVyQsSUwsUkpdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoRyQsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W2dRLGJRXSxpbXBvcnRzOltyeCxXJCxJTCxSSl0sZXhwb3J0czpbYlFdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oRyQse2RlY2xhcmF0aW9uczpbZ1EsYlFdLGltcG9ydHM6W3J4LFckLElMLFJKXSxleHBvcnRzOltiUV19KTtjbGFzcyBZJHt9ZnVuY3Rpb24gcSQodCxlKXtjb25zdCBuPXt9O2Zvcihjb25zdCBvIG9mIE9iamVjdC5rZXlzKHQpKXtuW29dPWUodFtvXSxvKX1yZXR1cm4gbn1mdW5jdGlvbiBaJCh0KXtjb25zdCBlPW5ldyBNYXAsbj10LnNsaWNlKCkuc29ydCgoKHQsZSk9PlgkKHQudGFnLGUudGFnKSkpO2Zvcihjb25zdCB0IG9mIG4pe2NvbnN0IG49dC50YWcuc3BsaXQoIi8iLDEpWzBdO2UuaGFzKG4pfHxlLnNldChuLHtncm91cE5hbWU6bixpdGVtczpbXX0pLGUuZ2V0KG4pLml0ZW1zLnB1c2godCl9cmV0dXJuWy4uLmUudmFsdWVzKCldfWZ1bmN0aW9uIFgkKHQsZSl7bGV0IG49MCxvPTA7Zm9yKDs7KXtpZihuPT09dC5sZW5ndGgpcmV0dXJuIG89PT1lLmxlbmd0aD8wOi0xO2lmKG89PT1lLmxlbmd0aClyZXR1cm4gMTtpZihKJCh0W25dKSYmSiQoZVtvXSkpe2NvbnN0IGk9bixhPW87bj1LJCh0LG4rMSksbz1LJChlLG8rMSk7Y29uc3Qgcj1OdW1iZXIodC5zbGljZShpLG4pKSxzPU51bWJlcihlLnNsaWNlKGEsbykpO2lmKHI8cylyZXR1cm4tMTtpZihyPnMpcmV0dXJuIDF9ZWxzZXtpZihRJCh0W25dKSl7aWYoIVEkKGVbb10pKXJldHVybi0xfWVsc2V7aWYoUSQoZVtvXSkpcmV0dXJuIDE7aWYodFtuXTxlW29dKXJldHVybi0xO2lmKHRbbl0+ZVtvXSlyZXR1cm4gMX1uKyssbysrfX19ZnVuY3Rpb24gSyQodCxlKXtsZXQgbjshKGZ1bmN0aW9uKHQpe3RbdC5OQVRVUkFMPTBdPSJOQVRVUkFMIix0W3QuUkVBTD0xXT0iUkVBTCIsdFt0LkVYUE9ORU5UX1NJR049Ml09IkVYUE9ORU5UX1NJR04iLHRbdC5FWFBPTkVOVD0zXT0iRVhQT05FTlQifSkobnx8KG49e30pKTtsZXQgbz1uLk5BVFVSQUwsaT1lO2Zvcig7aTx0Lmxlbmd0aDtpKyspaWYobz09PW4uTkFUVVJBTCl7aWYoIi4iPT09dFtpXSlvPW4uUkVBTDtlbHNlIGlmKCJlIj09PXRbaV18fCJFIj09PXRbaV0pbz1uLkVYUE9ORU5UX1NJR047ZWxzZSBpZighSiQodFtpXSkpYnJlYWt9ZWxzZSBpZihvPT09bi5SRUFMKXtpZigiZSI9PT10W2ldfHwiRSI9PT10W2ldKW89bi5FWFBPTkVOVF9TSUdOO2Vsc2UgaWYoIUokKHRbaV0pKWJyZWFrfWVsc2UgaWYobz09PW4uRVhQT05FTlRfU0lHTil7aWYoIUokKHRbaV0pJiYiKyIhPT10W2ldJiYiLSIhPT10W2ldKWJyZWFrO289bi5FWFBPTkVOVH1lbHNlIGlmKG89PT1uLkVYUE9ORU5UJiYhSiQodFtpXSkpYnJlYWs7cmV0dXJuIGl9ZnVuY3Rpb24gSiQodCl7cmV0dXJuIjAiPD10JiZ0PD0iOSJ9ZnVuY3Rpb24gUSQodCl7cmV0dXJuIi8iPT09dHx8SiQodCl9ZnVuY3Rpb24gJCQodCxlLG4pe2NvbnN0e3BsdWdpbjpvLHRhZzppLHJ1bklkOmEsc2FtcGxlOnJ9PWVbdF0scz1GTihuLG8saSxyKTtpZihzKXtpZihudWxsIT09YSYmcy5ydW5Ub1Nlcmllcy5oYXNPd25Qcm9wZXJ0eShhKSl7Y29uc3QgdD1zLnJ1blRvU2VyaWVzW2FdLmxlbmd0aDtyZXR1cm4gdD4wP3QtMTpudWxsfWNvbnN0IHQ9T2JqZWN0LnZhbHVlcyhzLnJ1blRvU2VyaWVzKS5tYXAoKHQ9PnQubGVuZ3RoKSk7aWYodC5sZW5ndGgpcmV0dXJuIE1hdGgubWF4KC4uLnQpLTF9cmV0dXJuIG51bGx9ZnVuY3Rpb24gdDAodCxlLG4sbyl7Y29uc3QgaT1PYmplY3QuYXNzaWduKHt9LGUpO2Zvcihjb25zdCBhIGluIHQpe2lmKCF0Lmhhc093blByb3BlcnR5KGEpKWNvbnRpbnVlO2NvbnN0IHI9JCQoYSx0LG4pO2lmKG51bGw9PT1yKXtlLmhhc093blByb3BlcnR5KGEpJiYoaVthXT1udWxsKTtjb250aW51ZX1jb25zdCBzPWUuaGFzT3duUHJvcGVydHkoYSk/ZVthXTpudWxsLGw9JCQoYSx0LG8pLGM9bnVsbCE9PXMmJnM9PT1sLGQ9bnVsbD09PXN8fGM7KG51bGwhPT1zJiZzPnJ8fGQpJiYoaVthXT1yKX1yZXR1cm4gaX1mdW5jdGlvbiBlMCh0KXtjb25zdCBlPXEkKHQucnVuVG9Mb2FkU3RhdGUsKHQ9PnQ9PT1VRS5MT0FESU5HP1VFLkxPQURJTkc6VUUuTk9UX0xPQURFRCkpO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3J1blRvTG9hZFN0YXRlOmV9KX1mdW5jdGlvbiBuMCh0LGUsbixvKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoW3QsZSxufHwiIixvXSl9WSQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFkkKX0sWSQuybVtb2Q9Zm8oe3R5cGU6WSR9KSxZJC7JtWluaj1Ebih7aW1wb3J0czpbW0EkLHJ4LGRULHokLFQkLEkkLGokLFUkLHhYLEckLFRTLmZvckZlYXR1cmUocksseUspLGhELmZvckZlYXR1cmUoW0UkXSksTVguZm9yUGx1Z2luKEQkLFMkKV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihZJCxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbayQsUyRdLGltcG9ydHM6W0EkLHJ4LGRULHokLFQkLEkkLGokLFUkLHhYLEckLFRTLmZvckZlYXR1cmUocksseUspLGhELmZvckZlYXR1cmUoW0UkXSksTVguZm9yUGx1Z2luKEQkLFMkKV0sZXhwb3J0czpbUyRdLGVudHJ5Q29tcG9uZW50czpbUyRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oWSQse2RlY2xhcmF0aW9uczpbayQsUyRdLGltcG9ydHM6W0EkLHJ4LGRULHokLFQkLEkkLGokLFUkLHhYLEckLEFTLGdELE1YXSxleHBvcnRzOltTJF19KTtjb25zdHtpbml0aWFsU3RhdGU6bzAscmVkdWNlcnM6aTB9PWNBKHt0YWdNZXRhZGF0YUxvYWRTdGF0ZTp7c3RhdGU6VUUuTk9UX0xPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6bnVsbH0sdGFnTWV0YWRhdGE6e3NjYWxhcnM6e3RhZ0Rlc2NyaXB0aW9uczp7fSx0YWdUb1J1bnM6e319LGhpc3RvZ3JhbXM6e3RhZ0Rlc2NyaXB0aW9uczp7fSx0YWdUb1J1bnM6e319LGltYWdlczp7dGFnRGVzY3JpcHRpb25zOnt9LHRhZ1J1blNhbXBsZWRJbmZvOnt9fX0sY2FyZExpc3Q6W10sY2FyZFRvUGlubmVkQ29weTpuZXcgTWFwLHBpbm5lZENhcmRUb09yaWdpbmFsOm5ldyBNYXAsdW5yZXNvbHZlZEltcG9ydGVkUGlubmVkQ2FyZHM6W10sY2FyZE1ldGFkYXRhTWFwOnt9LGNhcmRTdGVwSW5kZXg6e30sdGFnRmlsdGVyOiIiLHRhZ0dyb3VwRXhwYW5kZWQ6bmV3IE1hcCxzZWxlY3RlZFRpbWU6bnVsbCxzZWxlY3RUaW1lRW5hYmxlZDohMSx1c2VSYW5nZVNlbGVjdFRpbWU6ITEsZmlsdGVyZWRQbHVnaW5UeXBlczpuZXcgU2V0LHN0ZXBNaW5NYXg6e21pbjoxLzAsbWF4Oi0xLzB9fSx7aXNTZXR0aW5nc1BhbmVPcGVuOiEwLHByb21vdGVUaW1lU2VyaWVzOiEwLHRpbWVTZXJpZXNEYXRhOntzY2FsYXJzOnt9LGhpc3RvZ3JhbXM6e30saW1hZ2VzOnt9fSxzZXR0aW5nczpYTixzZXR0aW5nT3ZlcnJpZGVzOnt9LHZpc2libGVDYXJkTWFwOm5ldyBNYXB9LCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3RhZ01ldGFkYXRhTG9hZFN0YXRlOntzdGF0ZTpVRS5OT1RfTE9BREVELGxhc3RMb2FkZWRUaW1lSW5NczpudWxsfSx2aXNpYmxlQ2FyZE1hcDpuZXcgTWFwfSkpKSxhMD1vMCxyMD1WUyhvMCxCUyhLRCwoKHQse3JvdXRlS2luZDplLHBhcnRpYWxTdGF0ZTpufSk9PntpZihlIT09X0QuRVhQRVJJTUVOVCYmZSE9PV9ELkNPTVBBUkVfRVhQRVJJTUVOVClyZXR1cm4gdDtjb25zdCBvPW5ldyBTZXQ7Zm9yKGNvbnN0IGUgb2YgdC5waW5uZWRDYXJkVG9PcmlnaW5hbC5rZXlzKCkpe2NvbnN0e3BsdWdpbjpuLHRhZzppLHJ1bklkOmEsc2FtcGxlOnJ9PXQuY2FyZE1ldGFkYXRhTWFwW2VdO28uYWRkKG4wKG4saSxhLHIpKX1jb25zdCBpPW4sYT1bXTtmb3IoY29uc3QgZSBvZlsuLi50LnVucmVzb2x2ZWRJbXBvcnRlZFBpbm5lZENhcmRzLC4uLmkubWV0cmljcy5waW5uZWRDYXJkc10pe2NvbnN0IHQ9bjAoZS5wbHVnaW4sZS50YWcsZS5ydW5JZCxlLnNhbXBsZSk7by5oYXModCl8fChvLmFkZCh0KSxhLnB1c2goZSkpfWNvbnN0IHI9V04oYSx0LmNhcmRMaXN0LHQuY2FyZE1ldGFkYXRhTWFwLHQuY2FyZFRvUGlubmVkQ29weSx0LnBpbm5lZENhcmRUb09yaWdpbmFsLHQuY2FyZFN0ZXBJbmRleCkscz1pLm1ldHJpY3Muc21vb3RoaW5nO2xldCBsPXQuc2V0dGluZ092ZXJyaWRlcztpZihOdW1iZXIuaXNGaW5pdGUocykmJm51bGwhPT1zKXtjb25zdCBlPU1hdGgubWF4KDAsTWF0aC5taW4oLjk5OSxOdW1iZXIocy50b1ByZWNpc2lvbigzKSkpKTtsPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdPdmVycmlkZXMpLHtzY2FsYXJTbW9vdGhpbmc6ZX0pfWNvbnN0IGM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkscikse3NldHRpbmdPdmVycmlkZXM6bH0pO3JldHVybiBudWxsIT09aS5tZXRyaWNzLnRhZ0ZpbHRlciYmKGMudGFnRmlsdGVyPWkubWV0cmljcy50YWdGaWx0ZXIpLGN9KSksQlMocVIsKCh0LHtwYXJ0aWFsU2V0dGluZ3M6ZX0pPT57dmFyIG47Y29uc3Qgbz17fTtpZihlLnRvb2x0aXBTb3J0U3RyaW5nKXN3aXRjaChlLnRvb2x0aXBTb3J0U3RyaW5nKXtjYXNlIEpULkRFRkFVTFQ6Y2FzZSBKVC5BTFBIQUJFVElDQUw6by50b29sdGlwU29ydD1KVC5BTFBIQUJFVElDQUw7YnJlYWs7Y2FzZSBKVC5BU0NFTkRJTkc6by50b29sdGlwU29ydD1KVC5BU0NFTkRJTkc7YnJlYWs7Y2FzZSBKVC5ERVNDRU5ESU5HOm8udG9vbHRpcFNvcnQ9SlQuREVTQ0VORElORzticmVhaztjYXNlIEpULk5FQVJFU1Q6by50b29sdGlwU29ydD1KVC5ORUFSRVNUfSJudW1iZXIiPT10eXBlb2YgZS50aW1lU2VyaWVzQ2FyZE1pbldpZHRoJiYoby5jYXJkTWluV2lkdGg9ZS50aW1lU2VyaWVzQ2FyZE1pbldpZHRoKSwiYm9vbGVhbiI9PXR5cGVvZiBlLmlnbm9yZU91dGxpZXJzJiYoby5pZ25vcmVPdXRsaWVycz1lLmlnbm9yZU91dGxpZXJzKSwibnVtYmVyIj09dHlwZW9mIGUuc2NhbGFyU21vb3RoaW5nJiYoby5zY2FsYXJTbW9vdGhpbmc9ZS5zY2FsYXJTbW9vdGhpbmcpO2NvbnN0IGk9ImJvb2xlYW4iPT10eXBlb2YgZS50aW1lU2VyaWVzUHJvbW90aW9uRGlzbWlzc2VkPyFlLnRpbWVTZXJpZXNQcm9tb3Rpb25EaXNtaXNzZWQ6dC5wcm9tb3RlVGltZVNlcmllcyxhPW51bGwhPT0obj1lLnRpbWVTZXJpZXNTZXR0aW5nc1BhbmVPcGVuZWQpJiZ2b2lkIDAhPT1uP246dC5pc1NldHRpbmdzUGFuZU9wZW47cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7cHJvbW90ZVRpbWVTZXJpZXM6aSxpc1NldHRpbmdzUGFuZU9wZW46YSxzZXR0aW5nczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5ncyksbyl9KX0pKSxCUyhRRSxKRSwodD0+e2NvbnN0IGU9dC50YWdNZXRhZGF0YUxvYWRTdGF0ZS5zdGF0ZT09PVVFLkxPQURJTkc/VUUuTE9BRElORzpVRS5OT1RfTE9BREVELG49cSQodC50aW1lU2VyaWVzRGF0YSwoKHQsZSk9PnEkKHQsKHQ9PmVOKGUpP3EkKHQsKHQ9PmUwKHQpKSk6ZTAodCkpKSkpO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3RhZ01ldGFkYXRhTG9hZFN0YXRlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnRhZ01ldGFkYXRhTG9hZFN0YXRlKSx7c3RhdGU6ZX0pLHRpbWVTZXJpZXNEYXRhOm59KX0pKSxCUyhtQSwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHt0YWdNZXRhZGF0YUxvYWRTdGF0ZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC50YWdNZXRhZGF0YUxvYWRTdGF0ZSkse3N0YXRlOlVFLkxPQURJTkd9KX0pKSksQlModUEsKHQ9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7dGFnTWV0YWRhdGFMb2FkU3RhdGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQudGFnTWV0YWRhdGFMb2FkU3RhdGUpLHtzdGF0ZTpVRS5GQUlMRUR9KX0pKSksQlMoZkEsKCh0LHt0YWdNZXRhZGF0YTplfSk9Pntjb25zdCBuPXtzY2FsYXJzOmwwKGUsS1QuU0NBTEFSUyksaGlzdG9ncmFtczpsMChlLEtULkhJU1RPR1JBTVMpLGltYWdlczplW0tULklNQUdFU119LG89e30saT0oZnVuY3Rpb24gYSh0KXtjb25zdCBlPVtdO2ZvcihsZXQgbiBvZiBPYmplY3Qua2V5cyh0KSl7Y29uc3Qgbz1uO2xldCBpO2lmKGVOKG8pKXtpZighb04obykpdGhyb3cgbmV3IEVycm9yKCJNdWx0aS1ydW4sIHNhbXBsZWQgcGx1Z2luIHN1cHBvcnQgbm90IHlldCBpbXBsZW1lbnRlZCIpO3tjb25zdCBuPXRbb10udGFnUnVuU2FtcGxlZEluZm87Zm9yKGNvbnN0IHQgb2YgT2JqZWN0LmtleXMobikpZm9yKGNvbnN0IGkgb2YgT2JqZWN0LmtleXMoblt0XSkpe2NvbnN0e21heFNhbXBsZXNQZXJTdGVwOmF9PW5bdF1baV07Zm9yKGxldCBuPTA7bjxhO24rKyllLnB1c2goe3BsdWdpbjpvLHRhZzp0LHJ1bklkOmksc2FtcGxlOm4sbnVtU2FtcGxlOmF9KX19fWVsc2UgaWYob04obykpe2k9dFtvXS50YWdUb1J1bnM7Zm9yKGNvbnN0IHQgb2YgT2JqZWN0LmtleXMoaSkpZm9yKGNvbnN0IG4gb2YgaVt0XSllLnB1c2goe3BsdWdpbjpvLHRhZzp0LHJ1bklkOm59KX1lbHNle2k9dFtvXS50YWdUb1J1bnM7Zm9yKGNvbnN0IHQgb2YgT2JqZWN0LmtleXMoaSkpZS5wdXNoKHtwbHVnaW46byx0YWc6dCxydW5JZDpudWxsfSl9fXJldHVybiBlfSkobikscj1bXTtmb3IoY29uc3QgdCBvZiBpKXtjb25zdCBlPUJOKHQpO29bZV09dCxyLnB1c2goZSl9bGV0IHM9dC50YWdHcm91cEV4cGFuZGVkO2lmKDA9PT10LnRhZ0dyb3VwRXhwYW5kZWQuc2l6ZSl7Y29uc3QgZT1aJChyLm1hcCgodD0+e3ZhciBlO3JldHVybiBudWxsIT09KGU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG9bdF0pLHtjYXJkSWQ6dH0pKSYmdm9pZCAwIT09ZT9lOm51bGx9KSkuZmlsdGVyKEJvb2xlYW4pKTtzPW5ldyBNYXAodC50YWdHcm91cEV4cGFuZGVkKTtmb3IoY29uc3QgdCBvZiBlLnNsaWNlKDAsMikpcy5zZXQodC5ncm91cE5hbWUsITApfWNvbnN0e25leHRDYXJkVG9QaW5uZWRDb3B5OmwsbmV4dFBpbm5lZENhcmRUb09yaWdpbmFsOmMscGlubmVkQ2FyZE1ldGFkYXRhTWFwOmR9PShmdW5jdGlvbiBwKHQsZSxuLG8pe2NvbnN0IGk9bmV3IE1hcCxhPW5ldyBNYXAscj17fTtmb3IoY29uc3QgZSBvZiBvKWlmKHQuaGFzKGUpKXtjb25zdCBvPXQuZ2V0KGUpO2kuc2V0KGUsbyksYS5zZXQobyxlKSxyW29dPW5bZV19cmV0dXJue25leHRDYXJkVG9QaW5uZWRDb3B5OmksbmV4dFBpbm5lZENhcmRUb09yaWdpbmFsOmEscGlubmVkQ2FyZE1ldGFkYXRhTWFwOnJ9fSkodC5jYXJkVG9QaW5uZWRDb3B5LDAsbyxyKSxtPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxvKSxkKSxmPShmdW5jdGlvbiB1KHQsZSl7Y29uc3Qgbj17fTtyZXR1cm4gT2JqZWN0LmVudHJpZXModCkuZm9yRWFjaCgoKFt0LG9dKT0+e2VbdF0mJihuW3RdPW8pfSkpLG59KSh0LmNhcmRTdGVwSW5kZXgsbSksZz1XTih0LnVucmVzb2x2ZWRJbXBvcnRlZFBpbm5lZENhcmRzLHIsbSxsLGMsZik7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLGcpLHt0YWdHcm91cEV4cGFuZGVkOnMsdGFnTWV0YWRhdGFMb2FkU3RhdGU6e3N0YXRlOlVFLkxPQURFRCxsYXN0TG9hZGVkVGltZUluTXM6RGF0ZS5ub3coKX0sdGFnTWV0YWRhdGE6bixjYXJkTGlzdDpyfSl9KSksQlMoVEEsKCh0LHt0YWdGaWx0ZXI6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3RhZ0ZpbHRlcjplfSkpKSxCUyhnQSwoKHQse3NvcnQ6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NldHRpbmdPdmVycmlkZXM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ092ZXJyaWRlcykse3Rvb2x0aXBTb3J0OmV9KX0pKSksQlMoaEEsKHQ9Pnt2YXIgZTtjb25zdCBuPSEobnVsbCE9PShlPXQuc2V0dGluZ092ZXJyaWRlcy5pZ25vcmVPdXRsaWVycykmJnZvaWQgMCE9PWU/ZTp0LnNldHRpbmdzLmlnbm9yZU91dGxpZXJzKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZXR0aW5nT3ZlcnJpZGVzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdPdmVycmlkZXMpLHtpZ25vcmVPdXRsaWVyczpufSl9KX0pKSxCUyhiQSwoKHQse3hBeGlzVHlwZTplfSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2V0dGluZ092ZXJyaWRlczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5nT3ZlcnJpZGVzKSx7eEF4aXNUeXBlOmV9KX0pKSksQlMoQ0EsKCh0LHtzbW9vdGhpbmc6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NldHRpbmdPdmVycmlkZXM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ092ZXJyaWRlcykse3NjYWxhclNtb290aGluZzplfSl9KSkpLEJTKE1BLCh0PT57dmFyIGU7Y29uc3Qgbj0hKG51bGwhPT0oZT10LnNldHRpbmdPdmVycmlkZXMuc2NhbGFyUGFydGl0aW9uTm9uTW9ub3RvbmljWCkmJnZvaWQgMCE9PWU/ZTp0LnNldHRpbmdzLnNjYWxhclBhcnRpdGlvbk5vbk1vbm90b25pY1gpO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NldHRpbmdPdmVycmlkZXM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ092ZXJyaWRlcykse3NjYWxhclBhcnRpdGlvbk5vbk1vbm90b25pY1g6bn0pfSl9KSksQlModkEsKCh0LHticmlnaHRuZXNzSW5NaWxsaTplfSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2V0dGluZ092ZXJyaWRlczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5nT3ZlcnJpZGVzKSx7aW1hZ2VCcmlnaHRuZXNzSW5NaWxsaTplfSl9KSkpLEJTKHhBLCgodCx7Y29udHJhc3RJbk1pbGxpOmV9KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZXR0aW5nT3ZlcnJpZGVzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdPdmVycmlkZXMpLHtpbWFnZUNvbnRyYXN0SW5NaWxsaTplfSl9KSkpLEJTKE9BLCh0PT57Y29uc3QgZT1aVCh0LnNldHRpbmdPdmVycmlkZXMsWyJpbWFnZUJyaWdodG5lc3NJbk1pbGxpIl0pO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NldHRpbmdPdmVycmlkZXM6ZX0pfSkpLEJTKFBBLCh0PT57Y29uc3QgZT1aVCh0LnNldHRpbmdPdmVycmlkZXMsWyJpbWFnZUNvbnRyYXN0SW5NaWxsaSJdKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZXR0aW5nT3ZlcnJpZGVzOmV9KX0pKSxCUyh3QSwodD0+e3ZhciBlO2NvbnN0IG49IShudWxsIT09KGU9dC5zZXR0aW5nT3ZlcnJpZGVzLmltYWdlU2hvd0FjdHVhbFNpemUpJiZ2b2lkIDAhPT1lP2U6dC5zZXR0aW5ncy5pbWFnZVNob3dBY3R1YWxTaXplKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZXR0aW5nT3ZlcnJpZGVzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdPdmVycmlkZXMpLHtpbWFnZVNob3dBY3R1YWxTaXplOm59KX0pfSkpLEJTKGtBLCgodCx7aGlzdG9ncmFtTW9kZTplfSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2V0dGluZ092ZXJyaWRlczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5nT3ZlcnJpZGVzKSx7aGlzdG9ncmFtTW9kZTplfSl9KSkpLEJTKHlBLCgodCx7Y2FyZE1pbldpZHRoOmV9KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZXR0aW5nT3ZlcnJpZGVzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdPdmVycmlkZXMpLHtjYXJkTWluV2lkdGg6ZX0pfSkpKSxCUyhfQSwodD0+e2NvbnN0IGU9WlQodC5zZXR0aW5nT3ZlcnJpZGVzLFsiY2FyZE1pbldpZHRoIl0pO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NldHRpbmdPdmVycmlkZXM6ZX0pfSkpLEJTKFNBLCgodCx7cmVxdWVzdHM6ZX0pPT57aWYoIWUubGVuZ3RoKXJldHVybiB0O2NvbnN0IG49T2JqZWN0LmFzc2lnbih7fSx0LnRpbWVTZXJpZXNEYXRhKTtmb3IoY29uc3QgbyBvZiBlKXtjb25zdHtwbHVnaW46ZSx0YWc6aSxzYW1wbGU6YX09bztuW2VdPUxOKG4sZSxpLGEpO2NvbnN0IHI9Rk4obixlLGksYSkscz1pTihvKT9bby5ydW5JZF06ak4odC50YWdNZXRhZGF0YSxlLGksYSk7ci5ydW5Ub0xvYWRTdGF0ZT1WTihVRS5MT0FESU5HLHMsci5ydW5Ub0xvYWRTdGF0ZSl9cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7dGltZVNlcmllc0RhdGE6bn0pfSkpLEJTKERBLCgodCx7cmVxdWVzdDplfSk9Pntjb25zdCBuPU9iamVjdC5hc3NpZ24oe30sdC50aW1lU2VyaWVzRGF0YSkse3BsdWdpbjpvLHRhZzppLHNhbXBsZTphfT1lO25bb109TE4obixvLGksYSk7Y29uc3Qgcj1GTihuLG8saSxhKSxzPWlOKGUpP1tlLnJ1bklkXTpqTih0LnRhZ01ldGFkYXRhLG8saSxhKTtyZXR1cm4gci5ydW5Ub0xvYWRTdGF0ZT1WTihVRS5GQUlMRUQscyxyLnJ1blRvTG9hZFN0YXRlKSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3RpbWVTZXJpZXNEYXRhOm59KX0pKSxCUyhSQSwoKHQse3Jlc3BvbnNlOmV9KT0+e2NvbnN0IG49T2JqZWN0LmFzc2lnbih7fSx0LnN0ZXBNaW5NYXgpLG89T2JqZWN0LmFzc2lnbih7fSx0LnRpbWVTZXJpZXNEYXRhKSx7cGx1Z2luOmksdGFnOmEscnVuSWQ6cixzYW1wbGU6c309ZTtvW2ldPUxOKG8saSxhLHMpO2NvbnN0IGw9Rk4obyxpLGEscyk7aWYock4oZSkpe2NvbnN0IGU9cj9bcl06ak4odC50YWdNZXRhZGF0YSxpLGEscyk7bC5ydW5Ub0xvYWRTdGF0ZT1WTihVRS5GQUlMRUQsZSxsLnJ1blRvTG9hZFN0YXRlKX1lbHNle2NvbnN0IHQ9ZS5ydW5Ub1NlcmllcztsLnJ1blRvU2VyaWVzPU9iamVjdC5hc3NpZ24oe30sbC5ydW5Ub1NlcmllcyksbC5ydW5Ub0xvYWRTdGF0ZT1PYmplY3QuYXNzaWduKHt9LGwucnVuVG9Mb2FkU3RhdGUpO2Zvcihjb25zdCBlIGluIHQpaWYodC5oYXNPd25Qcm9wZXJ0eShlKSl7bC5ydW5Ub1Nlcmllc1tlXT10W2VdLGwucnVuVG9Mb2FkU3RhdGVbZV09VUUuTE9BREVEO2Zvcihjb25zdCBvIG9mIHRbZV0pbi5taW49TWF0aC5taW4obi5taW4sby5zdGVwKSxuLm1heD1NYXRoLm1heChuLm1heCxvLnN0ZXApfX1yZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHt0aW1lU2VyaWVzRGF0YTpvLGNhcmRTdGVwSW5kZXg6dDAodC5jYXJkTWV0YWRhdGFNYXAsdC5jYXJkU3RlcEluZGV4LG8sdC50aW1lU2VyaWVzRGF0YSksc3RlcE1pbk1heDpufSl9KSksQlMoQUEsKCh0LHtjYXJkSWQ6ZSxzdGVwSW5kZXg6bn0pPT57Y29uc3Qgbz0kJChlLHQuY2FyZE1ldGFkYXRhTWFwLHQudGltZVNlcmllc0RhdGEpO2xldCBpPW47cmV0dXJuIG51bGw9PT1vP2k9bnVsbDpuPm8mJihpPW8pLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7Y2FyZFN0ZXBJbmRleDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5jYXJkU3RlcEluZGV4KSx7W2VdOml9KX0pfSkpLEJTKE5BLCgodCx7dGFnR3JvdXA6ZX0pPT57Y29uc3Qgbj1uZXcgTWFwKHQudGFnR3JvdXBFeHBhbmRlZCk7cmV0dXJuIG4uc2V0KGUsIW4uZ2V0KGUpKSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3RhZ0dyb3VwRXhwYW5kZWQ6bn0pfSkpLEJTKEVBLCgodCx7ZW50ZXJlZENhcmRzOmUsZXhpdGVkQ2FyZHM6bn0pPT57aWYoIWUubGVuZ3RoJiYhbi5sZW5ndGgpcmV0dXJuIHQ7Y29uc3Qgbz1uZXcgTWFwKHQudmlzaWJsZUNhcmRNYXApO3JldHVybiBlLmZvckVhY2goKCh7ZWxlbWVudElkOnQsY2FyZElkOmV9KT0+e3ZhciBuO2NvbnN0IGk9bnVsbCE9PShuPW8uZ2V0KHQpKSYmdm9pZCAwIT09bj9uOm51bGw7aWYobnVsbCE9PWkmJmkhPT1lKXRocm93IG5ldyBFcnJvcigiQSBET00gZWxlbWVudCBjYW5ub3QgYmUgcmV1c2VkIGZvciBtb3JlIHRoYW4gMSB1bmlxdWUgY2FyZCBtZXRhZGF0YSIpO28uc2V0KHQsZSl9KSksbi5mb3JFYWNoKCgoe2VsZW1lbnRJZDp0fSk9PntvLmRlbGV0ZSh0KX0pKSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3Zpc2libGVDYXJkTWFwOm99KX0pKSxCUyh6QSwoKHQse2NhcmRJZDplfSk9Pntjb25zdCBuPXQucGlubmVkQ2FyZFRvT3JpZ2luYWwuaGFzKGUpLG89IW4mJiF0LmNhcmRUb1Bpbm5lZENvcHkuaGFzKGUpO2lmKG8mJiFxTih0KSlyZXR1cm4gdDtsZXQgaT1uZXcgTWFwKHQuY2FyZFRvUGlubmVkQ29weSksYT1uZXcgTWFwKHQucGlubmVkQ2FyZFRvT3JpZ2luYWwpLHI9T2JqZWN0LmFzc2lnbih7fSx0LmNhcmRNZXRhZGF0YU1hcCkscz1PYmplY3QuYXNzaWduKHt9LHQuY2FyZFN0ZXBJbmRleCk7aWYobil7Y29uc3Qgbj10LnBpbm5lZENhcmRUb09yaWdpbmFsLmdldChlKTtpLmRlbGV0ZShuKSxhLmRlbGV0ZShlKSxkZWxldGUgcltlXSxkZWxldGUgc1tlXX1lbHNlIGlmKG8pe2NvbnN0IHQ9R04oZSxpLGEscyxyKTtpPXQuY2FyZFRvUGlubmVkQ29weSxhPXQucGlubmVkQ2FyZFRvT3JpZ2luYWwscj10LmNhcmRNZXRhZGF0YU1hcCxzPXQuY2FyZFN0ZXBJbmRleH1lbHNle2NvbnN0IG49dC5jYXJkVG9QaW5uZWRDb3B5LmdldChlKTtpLmRlbGV0ZShlKSxhLmRlbGV0ZShuKSxkZWxldGUgcltuXSxkZWxldGUgc1tuXX1yZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtjYXJkTWV0YWRhdGFNYXA6cixjYXJkU3RlcEluZGV4OnMsY2FyZFRvUGlubmVkQ29weTppLHBpbm5lZENhcmRUb09yaWdpbmFsOmF9KX0pKSxCUyhCQSwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZWxlY3RUaW1lRW5hYmxlZDohdC5zZWxlY3RUaW1lRW5hYmxlZH0pKSksQlMoRkEsKCh0LGUpPT57dmFyIG4sbyxpLGE7Y29uc3Qgcj1lLnN0YXJ0U3RlcDtsZXQgcz1udWxsIT09KGE9bnVsbCE9PShuPWUuZW5kU3RlcCkmJnZvaWQgMCE9PW4/bjpudWxsPT09KGk9bnVsbD09PShvPXQuc2VsZWN0ZWRUaW1lKXx8dm9pZCAwPT09bz92b2lkIDA6by5lbmQpfHx2b2lkIDA9PT1pP3ZvaWQgMDppLnN0ZXApJiZ2b2lkIDAhPT1hP2E6dC5zdGVwTWluTWF4Lm1heDtyZXR1cm4gcj5zJiYocz1yKSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NlbGVjdFRpbWVFbmFibGVkOiEwLHNlbGVjdGVkVGltZTp7c3RhcnQ6e3N0ZXA6cn0sZW5kOntzdGVwOnN9fX0pfSkpLEJTKFZBLCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3VzZVJhbmdlU2VsZWN0VGltZTohdC51c2VSYW5nZVNlbGVjdFRpbWV9KSkpLEJTKExBLCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NlbGVjdGVkVGltZTpudWxsfSkpKSxCUyhJQSwoKHQse3BsdWdpbjplfSk9PntsZXQgbj1uZXcgU2V0KHQuZmlsdGVyZWRQbHVnaW5UeXBlcyk7cmV0dXJuIG4uaGFzKGUpP24uZGVsZXRlKGUpOm4uYWRkKGUpLE9iamVjdC52YWx1ZXMoS1QpLmV2ZXJ5KCh0PT5uLmhhcyh0KSkpJiYobj1uZXcgU2V0KSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2ZpbHRlcmVkUGx1Z2luVHlwZXM6bn0pfSkpLEJTKEhBLCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2ZpbHRlcmVkUGx1Z2luVHlwZXM6bmV3IFNldH0pKSksQlMoakEsKHQ9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7cHJvbW90ZVRpbWVTZXJpZXM6ITF9KSkpLEJTKHBBLCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2lzU2V0dGluZ3NQYW5lT3BlbjohdC5pc1NldHRpbmdzUGFuZU9wZW59KSkpLEJTKGRBLCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2lzU2V0dGluZ3NQYW5lT3BlbjohMX0pKSkpO2Z1bmN0aW9uIHMwKHQsZSl7cmV0dXJuIFdBKHIwLGkwKSh0LGUpfWZ1bmN0aW9uIGwwKHQsZSl7cmV0dXJue3RhZ0Rlc2NyaXB0aW9uczp0W2VdLnRhZ0Rlc2NyaXB0aW9ucyx0YWdUb1J1bnM6YzAodFtlXS5ydW5UYWdJbmZvKX19ZnVuY3Rpb24gYzAodCl7Y29uc3QgZT17fTtmb3IoY29uc3QgbiBpbiB0KWZvcihjb25zdCBvIG9mIHRbbl0pZVtvXT1bLi4uZVtvXXx8W10sbl07cmV0dXJuIGV9Y29uc3QgZDA9YlMoJE4sbnosKCh0LGUsbik9PmU/T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHtsb2FkU3RhdGU6dCxpZDpufSk6bnVsbCkpLHAwPV9rKCJbTWV0cmljcyBFZmZlY3RzXSBJbml0Iik7Y2xhc3MgbTB7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuYWN0aW9ucyQ9dCx0aGlzLnN0b3JlPWUsdGhpcy5kYXRhU291cmNlPW4sdGhpcy5kYXNoYm9hcmRTaG93bldpdGhvdXREYXRhJD10aGlzLmFjdGlvbnMkLnBpcGUoJFMocDAsWkUsdEEsdFIpLHFlKHRoaXMuc3RvcmUuc2VsZWN0KGVUKSx0aGlzLnN0b3JlLnNlbGVjdChKTikpLHVlKCgoWyx0LGVdKT0+dD09PSRUJiZlLnN0YXRlPT09VUUuTk9UX0xPQURFRCkpKSx0aGlzLnJlbG9hZFJlcXVlc3RlZFdoaWxlU2hvd24kPXRoaXMuYWN0aW9ucyQucGlwZSgkUyhRRSxKRSkscWUodGhpcy5zdG9yZS5zZWxlY3QoZVQpKSx1ZSgoKFssdF0pPT50PT09JFQpKSksdGhpcy5sb2FkVGFnTWV0YWRhdGEkPXBlKHRoaXMuZGFzaGJvYXJkU2hvd25XaXRob3V0RGF0YSQsdGhpcy5yZWxvYWRSZXF1ZXN0ZWRXaGlsZVNob3duJCkucGlwZShxZSh0aGlzLnN0b3JlLnNlbGVjdChKTiksdGhpcy5zdG9yZS5zZWxlY3QoeFIpKSx1ZSgoKFssdCxlXSk9PnQuc3RhdGUhPT1VRS5MT0FESU5HJiZudWxsIT09ZSkpLFdlKCgoKT0+e3RoaXMuc3RvcmUuZGlzcGF0Y2gobUEoKSl9KSksVmUoKChbLCx0XSk9PnRoaXMuZGF0YVNvdXJjZS5mZXRjaFRhZ01ldGFkYXRhKHQpLnBpcGUoV2UoKHQ9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKGZBKHt0YWdNZXRhZGF0YTp0fSkpfSkpLGhlKCgoKT0+KHRoaXMuc3RvcmUuZGlzcGF0Y2godUEoKSksenQobnVsbCkpKSkpKSkpLHRoaXMudmlzaWJsZUNhcmRzV2l0aG91dERhdGFDaGFuZ2VkJD10aGlzLmFjdGlvbnMkLnBpcGUoJFMoRUEpLFZlKCgoKT0+dGhpcy5nZXRWaXNpYmxlQ2FyZEZldGNoSW5mb3MoKS5waXBlKHZlKDEpKSkpLFZ0KCh0PT50LmZpbHRlcigodD0+dC5sb2FkU3RhdGU9PT1VRS5OT1RfTE9BREVEKSkpKSksdGhpcy52aXNpYmxlQ2FyZHNSZWxvYWRlZCQ9dGhpcy5yZWxvYWRSZXF1ZXN0ZWRXaGlsZVNob3duJC5waXBlKFZlKCgoKT0+dGhpcy5nZXRWaXNpYmxlQ2FyZEZldGNoSW5mb3MoKS5waXBlKHZlKDEpKSkpLFZ0KCh0PT50LmZpbHRlcigodD0+dC5sb2FkU3RhdGUhPT1VRS5MT0FESU5HKSkpKSksdGhpcy5sb2FkVGltZVNlcmllcyQ9cGUodGhpcy52aXNpYmxlQ2FyZHNXaXRob3V0RGF0YUNoYW5nZWQkLHRoaXMudmlzaWJsZUNhcmRzUmVsb2FkZWQkKS5waXBlKHVlKCh0PT50Lmxlbmd0aD4wKSkscWUodGhpcy5zdG9yZS5zZWxlY3QoeFIpLnBpcGUodWUoKHQ9Pm51bGwhPT10KSkpKSwkdCgoKFt0LGVdKT0+dGhpcy5mZXRjaFRpbWVTZXJpZXNGb3JDYXJkcyh0LGUpKSkpLHRoaXMuZGF0YUVmZmVjdHMkPVdTKCgoKT0+cGUodGhpcy5sb2FkVGFnTWV0YWRhdGEkLHRoaXMubG9hZFRpbWVTZXJpZXMkKSkse2Rpc3BhdGNoOiExfSl9bmdyeE9uSW5pdEVmZmVjdHMoKXtyZXR1cm4gcDAoKX1nZXRWaXNpYmxlQ2FyZEZldGNoSW5mb3MoKXtyZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoaXopLnBpcGUoVmUoKHQ9PntpZighdC5zaXplKXJldHVybiB6dChbXSk7cmV0dXJuIGllKFsuLi50XS5tYXAoKHQ9PnRoaXMuc3RvcmUuc2VsZWN0KGQwLHQpLnBpcGUodmUoMSkpKSkpfSkpLFZ0KCh0PT50LmZpbHRlcihCb29sZWFuKSkpKX1mZXRjaFRpbWVTZXJpZXModCl7cmV0dXJuIHRoaXMuZGF0YVNvdXJjZS5mZXRjaFRpbWVTZXJpZXMoW3RdKS5waXBlKFdlKCh0PT57Y29uc3QgZT10LmZpbHRlcihyTik7ZS5sZW5ndGgmJmNvbnNvbGUuZXJyb3IoIlRpbWUgc2VyaWVzIHJlc3BvbnNlIGNvbnRhaW5lZCBlcnJvcnM6IixlKSx0aGlzLnN0b3JlLmRpc3BhdGNoKFJBKHtyZXNwb25zZTp0WzBdfSkpfSkpLGhlKCgoKT0+KHRoaXMuc3RvcmUuZGlzcGF0Y2goREEoe3JlcXVlc3Q6dH0pKSx6dChudWxsKSkpKSl9ZmV0Y2hUaW1lU2VyaWVzRm9yQ2FyZHModCxlKXtyZXR1cm4genQodC5tYXAoKHQ9Pntjb25zdHtwbHVnaW46bix0YWc6byxydW5JZDppLHNhbXBsZTphfT10LHI9b04obik/e3BsdWdpbjpuLHRhZzpvLHJ1bklkOml9OntwbHVnaW46bix0YWc6byxleHBlcmltZW50SWRzOmV9O3JldHVybiB2b2lkIDAhPT1hJiYoci5zYW1wbGU9YSkscn0pKSkucGlwZShXZSgodD0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goU0Eoe3JlcXVlc3RzOnR9KSl9KSksJHQoKHQ9PnBlKC4uLnQubWFwKCh0PT50aGlzLmZldGNoVGltZVNlcmllcyh0KSkpKSkpKX19bTAuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG0wKShUcihRUyksVHIoaVMpLFRyKGFOKSl9LG0wLsm1cHJvdj1Tbih7dG9rZW46bTAsZmFjdG9yeTptMC7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIobTAsW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlFTfSx7dHlwZTppU30se3R5cGU6YU59XX0pLG51bGwpO2NvbnN0IGYwPW5ldyBlcigiTWV0cmljcyBTdG9yZSBDb25maWciKSx1MD1uZXcgZXIoIk1ldHJpY3MgSW5pdGlhbCBTZXR0aW5ncyBDb25maWciKTtmdW5jdGlvbiBnMCh0KXtyZXR1cm4gdD97aW5pdGlhbFN0YXRlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxhMCkse3NldHRpbmdzOnR9KX06e2luaXRpYWxTdGF0ZTphMH19dmFyIGgwOyEoZnVuY3Rpb24odCl7dFt0LkxFRlQ9MV09IkxFRlQiLHRbdC5SSUdIVD0yXT0iUklHSFQiLHRbdC5NSURETEU9NF09Ik1JRERMRSIsdFt0LkZPVVJUSD04XT0iRk9VUlRIIix0W3QuRklGVEg9MzJdPSJGSUZUSCJ9KShoMHx8KGgwPXt9KSk7bGV0IGIwPTA7ZnVuY3Rpb24geTAodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJidXR0b24iLDMpLFJmKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtQaSh0KTtyZXR1cm4gemYoKS5leHBhbmRTaWRlYmFyKCl9KSksdmYoMSwibWF0LWljb24iLDQpLE1mKCl9fWZ1bmN0aW9uIF8wKHQsZSl7aWYoMSZ0JiYoQ2YoMCwibmF2Iiw1KSxfeSgxLCJhc3luYyIpLEZmKDIsMSksTWYoKSksMiZ0KXtjb25zdCB0PXpmKCk7bHUoIndpZHRoIixDeSgxLDQsdC53aWR0aCQpLCIlIikoIm1pbi13aWR0aCIsdC5NSU5JTVVNX1NJREVCQVJfV0lEVEhfSU5fUFgsInB4Iil9fWZ1bmN0aW9uIEMwKHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwiZGl2Iiw2KSxSZigibW91c2Vkb3duIiwoZnVuY3Rpb24gZSgpe1BpKHQpO3JldHVybiB6ZigpLnJlc2l6ZUdyYWJiZWQoKX0pKSxNZigpfX1jb25zdCBNMD1bW1siIiwibWFpbiIsIiJdXSxbWyIiLCJzaWRlYmFyIiwiIl1dXTtjbGFzcyB2MHtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuc3RvcmU9dCx0aGlzLndpZHRoJD10aGlzLnN0b3JlLnNlbGVjdChpVCksdGhpcy5uZ1Vuc3Vic2NyaWJlPW5ldyBCLHRoaXMucmVzaXppbmc9ITEsdGhpcy5NSU5JTVVNX1NJREVCQVJfV0lEVEhfSU5fUFg9NzUsbGUoZS5uYXRpdmVFbGVtZW50LCJtb3VzZW1vdmUiKS5waXBlKGplKHRoaXMubmdVbnN1YnNjcmliZSksdWUoKCgpPT50aGlzLnJlc2l6aW5nKSkpLnN1YnNjcmliZSgodD0+e2lmKCh0LmJ1dHRvbnMmaDAuTEVGVCkhPT1oMC5MRUZUKXJldHVybiB2b2lkKHRoaXMucmVzaXppbmc9ITEpO3QucHJldmVudERlZmF1bHQoKTtjb25zdHt3aWR0aDpufT1lLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5zdG9yZS5kaXNwYXRjaChsQSh7d2lkdGhJblBlcmNlbnQ6dC5jbGllbnRYPD10aGlzLk1JTklNVU1fU0lERUJBUl9XSURUSF9JTl9QWD8wOnQuY2xpZW50WC9uKjEwMH0pKX0pKSxsZShlLm5hdGl2ZUVsZW1lbnQsIm1vdXNldXAiLHtwYXNzaXZlOiEwfSkucGlwZShqZSh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5yZXNpemluZz0hMX0pKX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9cmVzaXplR3JhYmJlZCgpe3RoaXMucmVzaXppbmc9ITB9ZXhwYW5kU2lkZWJhcigpe3RoaXMuc3RvcmUuZGlzcGF0Y2gobEEoe3dpZHRoSW5QZXJjZW50OjIwfSkpfX12YXIgeDA7djAuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHYwKShnZihpUyksZ2YoS2gpKX0sdjAuybVjbXA9c28oe3R5cGU6djAsc2VsZWN0b3JzOltbInRiLWRhc2hib2FyZC1sYXlvdXQiXV0sbmdDb250ZW50U2VsZWN0b3JzOlsiW21haW5dIiwiW3NpZGViYXJdIl0sZGVjbHM6Nyx2YXJzOjksY29uc3RzOltbImNsYXNzIiwiZXhwYW5kIiwzLCJjbGljayIsNCwibmdJZiJdLFsiY2xhc3MiLCJzaWRlYmFyIiwzLCJ3aWR0aCIsIm1pbldpZHRoIiw0LCJuZ0lmIl0sWyJjbGFzcyIsInJlc2l6ZXIiLDMsIm1vdXNlZG93biIsNCwibmdJZiJdLFsxLCJleHBhbmQiLDMsImNsaWNrIl0sWyJzdmdJY29uIiwiZXhwYW5kX21vcmVfMjRweCJdLFsxLCJzaWRlYmFyIl0sWzEsInJlc2l6ZXIiLDMsIm1vdXNlZG93biJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoSGYoTTApLEhtKDAseTAsMiwwLCJidXR0b24iLDApLF95KDEsImFzeW5jIiksSG0oMixfMCwzLDYsIm5hdiIsMSksX3koMywiYXN5bmMiKSxIbSg0LEMwLDEsMCwiZGl2IiwyKSxfeSg1LCJhc3luYyIpLEZmKDYpKSwyJmUmJihiZigibmdJZiIsMD09PUN5KDEsMyxuLndpZHRoJCkpLERjKDIpLGJmKCJuZ0lmIixDeSgzLDUsbi53aWR0aCQpPjApLERjKDIpLGJmKCJuZ0lmIixDeSg1LDcsbi53aWR0aCQpPjApKX0sZGlyZWN0aXZlczpbUHYsTXFdLHBpcGVzOltWdl0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7cG9zaXRpb246cmVsYXRpdmV9LnNpZGViYXJbX25nY29udGVudC0lQ09NUCVde21heC13aWR0aDo4MHZ3fS5yZXNpemVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmV4cGFuZFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWNvbG9yOiNlYmViZWI7Ym94LXNpemluZzpib3JkZXItYm94O2ZsZXg6MCAwO2p1c3RpZnktc2VsZjpzdHJldGNofWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5yZXNpemVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnJlc2l6ZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1jb2xvcjojNTU1fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5leHBhbmRbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZXhwYW5kW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItY29sb3I6IzU1NX0uZXhwYW5kW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoyMHB4fS5yZXNpemVyW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDowIDJweDtjdXJzb3I6ZXctcmVzaXplO2NvbnRhaW46c3RyaWN0O2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LXNlbGY6c3RyZXRjaH0ucmVzaXplcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCV9LnJlc2l6ZXJbX25nY29udGVudC0lQ09NUCVdOmhvdmVye2JvcmRlci1jb2xvcjojY2NjO291dGxpbmU6M3B4IHNvbGlkICNjY2M7ei1pbmRleDoxfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5yZXNpemVyW19uZ2NvbnRlbnQtJUNPTVAlXTpob3ZlciwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnJlc2l6ZXJbX25nY29udGVudC0lQ09NUCVdOmhvdmVye291dGxpbmUtY29sb3I6Izc3Nztib3JkZXItY29sb3I6Izc3N30uZXhwYW5kW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjAgMXB4IDAgMDtjb2xvcjppbmhlcml0O2NvbnRhaW46Y29udGVudDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmZsZXg7anVzdGlmeS1zZWxmOnN0cmV0Y2g7cGFkZGluZzowfS5leHBhbmRbX25nY29udGVudC0lQ09NUCVdICAgbWF0LWljb25bX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcn0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIodjAsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoidGItZGFzaGJvYXJkLWxheW91dCIsdGVtcGxhdGU6J1xuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPSIod2lkdGgkIHwgYXN5bmMpID09PSAwIlxuICAgICAgY2xhc3M9ImV4cGFuZCJcbiAgICAgIChjbGljayk9ImV4cGFuZFNpZGViYXIoKSJcbiAgICA+XG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj0iZXhwYW5kX21vcmVfMjRweCI+PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8bmF2XG4gICAgICAqbmdJZj0iKHdpZHRoJCB8IGFzeW5jKSA+IDAiXG4gICAgICBjbGFzcz0ic2lkZWJhciJcbiAgICAgIFtzdHlsZS53aWR0aC4lXT0id2lkdGgkIHwgYXN5bmMiXG4gICAgICBbc3R5bGUubWluV2lkdGgucHhdPSJNSU5JTVVNX1NJREVCQVJfV0lEVEhfSU5fUFgiXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSJbc2lkZWJhcl0iPjwvbmctY29udGVudD5cbiAgICA8L25hdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj0iKHdpZHRoJCB8IGFzeW5jKSA+IDAiXG4gICAgICBjbGFzcz0icmVzaXplciJcbiAgICAgIChtb3VzZWRvd24pPSJyZXNpemVHcmFiYmVkKCkiXG4gICAgPjwvZGl2PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD0iW21haW5dIj48L25nLWNvbnRlbnQ+XG4gICcsc3R5bGVVcmxzOlsibGF5b3V0X2NvbnRhaW5lci5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aVN9LHt0eXBlOktofV19KSxudWxsKSwoZnVuY3Rpb24odCl7dC5DSEVDS0JPWD0iY2hlY2tib3giLHQuUlVOX05BTUU9InJ1bl9uYW1lIix0LkVYUEVSSU1FTlRfTkFNRT0iZXhwZXJpbWVudF9uYW1lIix0LlJVTl9DT0xPUj0icnVuX2NvbG9yIn0pKHgwfHwoeDA9e30pKTtjb25zdCBPMD1fUyhIVCksUDA9YlMoTzAsKCh0LGUpPT57Y29uc3Qgbj1bXTtmb3IoY29uc3QgbyBvZiBlKXQuc3BlY3Nbb10mJm4ucHVzaCh0LnNwZWNzW29dLmhwYXJhbS5kZWZhdWx0RmlsdGVycyk7cmV0dXJuIFRUKG4pfSkpLHcwPWJTKFAwLE8wLCgodCxlLG4pPT57dmFyIG87Y29uc3QgaT1BVChuKSxhPWUuZmlsdGVyc1tpXTtyZXR1cm4gbmV3IE1hcChbLi4udCwuLi5udWxsIT09KG89bnVsbD09YT92b2lkIDA6YS5ocGFyYW1zKSYmdm9pZCAwIT09bz9vOltdXSl9KSksazA9YlMoTzAsKCh0LGUpPT57Y29uc3Qgbj1bXTtmb3IoY29uc3QgbyBvZiBlKXQuc3BlY3Nbb10mJm4ucHVzaCh0LnNwZWNzW29dLm1ldHJpYy5kZWZhdWx0RmlsdGVycyk7cmV0dXJuIE5UKG4pfSkpLFMwPWJTKGswLE8wLCgodCxlLG4pPT57dmFyIG87Y29uc3QgaT1BVChuKSxhPWUuZmlsdGVyc1tpXTtyZXR1cm4gbmV3IE1hcChbLi4udCwuLi5udWxsIT09KG89bnVsbD09YT92b2lkIDA6YS5tZXRyaWNzKSYmdm9pZCAwIT09bz9vOltdXSl9KSksRDA9YlMoTzAsKCh0LGUpPT4oZnVuY3Rpb24gbiguLi50KXtjb25zdCBlPW5ldyBNYXAsbj1uZXcgTWFwLG89bmV3IE1hcCxpPW5ldyBNYXAsYT1bXTtmb3IoY29uc3QgciBvZiB0KXtmb3IoY29uc3QgdCBvZiByLmhwYXJhbXMpaWYobi5oYXModC5uYW1lKXx8bi5zZXQodC5uYW1lLG5ldyBTZXQpLG4uZ2V0KHQubmFtZSkuYWRkKHQuZGlzcGxheU5hbWUpLGUuaGFzKHQubmFtZSkpe2NvbnN0IG49ZS5nZXQodC5uYW1lKSxvPXQ7aWYobi50eXBlIT09by50eXBlJiZhLnB1c2goYEhwYXJhbSwgJHtvLm5hbWV9LCB0eXBlcyBoYXZlIHRvIG1hdGNoLiBHb3Q6ICR7bi50eXBlfSB2cy4gJHtvLnR5cGV9YCksbi5kb21haW4udHlwZT09PWtULklOVEVSVkFMJiZvLmRvbWFpbi50eXBlPT09a1QuSU5URVJWQUwpbi5kb21haW4ubWluVmFsdWU9PT1vLmRvbWFpbi5taW5WYWx1ZSYmbi5kb21haW4ubWF4VmFsdWU9PT1vLmRvbWFpbi5tYXhWYWx1ZXx8YS5wdXNoKGBIcGFyYW0sICR7by5uYW1lfSwgZG9tYWlucyBoYXZlIHRvIG1hdGNoLiBHb3Q6ICR7bi5kb21haW59IHZzLiAke28uZG9tYWlufWApO2Vsc2UgaWYobi5kb21haW4udHlwZT09PWtULkRJU0NSRVRFJiZvLmRvbWFpbi50eXBlPT09a1QuRElTQ1JFVEUpe2NvbnN0IHQ9bmV3IFNldChbLi4ubi5kb21haW4udmFsdWVzLC4uLm8uZG9tYWluLnZhbHVlc10pO24uZG9tYWluLnZhbHVlcy5sZW5ndGg9PT1vLmRvbWFpbi52YWx1ZXMubGVuZ3RoJiZuLmRvbWFpbi52YWx1ZXMubGVuZ3RoPT09dC5zaXplfHxhLnB1c2goYEhwYXJhbSwgJHtvLm5hbWV9LCBkb21haW5zIGhhdmUgdG8gbWF0Y2guIEdvdDogJHtuLmRvbWFpbn0gdnMuICR7by5kb21haW59YCl9ZWxzZSBhLnB1c2goYEhwYXJhbSwgJHtvLm5hbWV9LCBkb21haW5zIGhhdmUgdG8gbWF0Y2guIEdvdDogJHtuLmRvbWFpbn0gdnMuICR7by5kb21haW59YCl9ZWxzZSBlLnNldCh0Lm5hbWUsT2JqZWN0LmFzc2lnbih7fSx0KSk7Zm9yKGNvbnN0IHQgb2Ygci5tZXRyaWNzKWlmKGkuaGFzKHQudGFnKXx8aS5zZXQodC50YWcsbmV3IFNldCksaS5nZXQodC50YWcpLmFkZCh0LmRpc3BsYXlOYW1lKSxvLmhhcyh0LnRhZykpe2NvbnN0IGU9by5nZXQodC50YWcpLG49dDtlLmRhdGFzZXRUeXBlIT09bi5kYXRhc2V0VHlwZSYmYS5wdXNoKGBNZXRyaWMsICR7bi50YWd9LCBkYXRhc2V0VHlwZXMgaGF2ZSB0byBtYXRjaC4gR290OiAke2UuZGF0YXNldFR5cGV9IHZzLiAke24uZGF0YXNldFR5cGV9YCl9ZWxzZSBvLnNldCh0LnRhZyxPYmplY3QuYXNzaWduKHt9LHQpKX1pZihhLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYFZhbGlkYXRpb24gZXJyb3I6XG4ke2Euam9pbigiXG4iKX1gKTtyZXR1cm57aHBhcmFtczpbLi4uZV0ubWFwKCgoW3QsZV0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSkse2Rpc3BsYXlOYW1lOlsuLi5uLmdldCh0KV0uam9pbigiIG9yICIpfSkpKSxtZXRyaWNzOlsuLi5vXS5tYXAoKChbdCxlXSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSx7ZGlzcGxheU5hbWU6Wy4uLmkuZ2V0KHQpXS5qb2luKCIgb3IgIil9KSkpfX0pKC4uLmUuZXhwZXJpbWVudElkcy5tYXAoKGU9Pntjb25zdCBuPXQuc3BlY3NbZV07cmV0dXJuIG4/e2hwYXJhbXM6bi5ocGFyYW0uc3BlY3MsbWV0cmljczpuLm1ldHJpYy5zcGVjc306bnVsbH0pKS5maWx0ZXIoQm9vbGVhbikpKSksUjA9e3Rvb2x0aXBTdGF0ZTp4Tygic3RhdGUiLFtrTygiaW5pdGlhbCwgdm9pZCwgaGlkZGVuIix3Tyh7b3BhY2l0eTowLHRyYW5zZm9ybToic2NhbGUoMCkifSkpLGtPKCJ2aXNpYmxlIix3Tyh7dHJhbnNmb3JtOiJzY2FsZSgxKSJ9KSksRE8oIiogPT4gdmlzaWJsZSIsT08oIjIwMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpIixTTyhbd08oe29wYWNpdHk6MCx0cmFuc2Zvcm06InNjYWxlKDApIixvZmZzZXQ6MH0pLHdPKHtvcGFjaXR5Oi41LHRyYW5zZm9ybToic2NhbGUoMC45OSkiLG9mZnNldDouNX0pLHdPKHtvcGFjaXR5OjEsdHJhbnNmb3JtOiJzY2FsZSgxKSIsb2Zmc2V0OjF9KV0pKSksRE8oIiogPT4gaGlkZGVuIixPTygiMTAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSkiLHdPKHtvcGFjaXR5OjB9KSkpXSl9LEUwPWJIKHtwYXNzaXZlOiEwfSk7ZnVuY3Rpb24gQTAodCl7cmV0dXJuIEVycm9yKGBUb29sdGlwIHBvc2l0aW9uICIke3R9IiBpcyBpbnZhbGlkLmApfWNvbnN0IFQwPW5ldyBlcigibWF0LXRvb2x0aXAtc2Nyb2xsLXN0cmF0ZWd5Iik7Y29uc3QgTjA9e3Byb3ZpZGU6VDAsZGVwczpbS0JdLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gejAodCl7cmV0dXJuKCk9PnQuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKHtzY3JvbGxUaHJvdHRsZToyMH0pfX0sSTA9bmV3IGVyKCJtYXQtdG9vbHRpcC1kZWZhdWx0LW9wdGlvbnMiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OmZ1bmN0aW9uIEgwKCl7cmV0dXJue3Nob3dEZWxheTowLGhpZGVEZWxheTowLHRvdWNoZW5kSGlkZURlbGF5OjE1MDB9fX0pO2NsYXNzIEYwe2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyxsLGMsZCxwKXt0aGlzLl9vdmVybGF5PXQsdGhpcy5fZWxlbWVudFJlZj1lLHRoaXMuX3Njcm9sbERpc3BhdGNoZXI9bix0aGlzLl92aWV3Q29udGFpbmVyUmVmPW8sdGhpcy5fbmdab25lPWksdGhpcy5fcGxhdGZvcm09YSx0aGlzLl9hcmlhRGVzY3JpYmVyPXIsdGhpcy5fZm9jdXNNb25pdG9yPXMsdGhpcy5fZGlyPWMsdGhpcy5fZGVmYXVsdE9wdGlvbnM9ZCx0aGlzLl9wb3NpdGlvbj0iYmVsb3ciLHRoaXMuX2Rpc2FibGVkPSExLHRoaXMuX3ZpZXdJbml0aWFsaXplZD0hMSx0aGlzLl9wb2ludGVyRXhpdEV2ZW50c0luaXRpYWxpemVkPSExLHRoaXMuX3ZpZXdwb3J0TWFyZ2luPTgsdGhpcy5fY3NzQ2xhc3NQcmVmaXg9Im1hdCIsdGhpcy5zaG93RGVsYXk9dGhpcy5fZGVmYXVsdE9wdGlvbnMuc2hvd0RlbGF5LHRoaXMuaGlkZURlbGF5PXRoaXMuX2RlZmF1bHRPcHRpb25zLmhpZGVEZWxheSx0aGlzLnRvdWNoR2VzdHVyZXM9ImF1dG8iLHRoaXMuX21lc3NhZ2U9IiIsdGhpcy5fcGFzc2l2ZUxpc3RlbmVycz1bXSx0aGlzLl9kZXN0cm95ZWQ9bmV3IEIsdGhpcy5faGFuZGxlS2V5ZG93bj10PT57dGhpcy5faXNUb29sdGlwVmlzaWJsZSgpJiZ0LmtleUNvZGU9PT1LSSYmIXRIKHQpJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5fbmdab25lLnJ1bigoKCk9PnRoaXMuaGlkZSgwKSkpKX0sdGhpcy5fc2Nyb2xsU3RyYXRlZ3k9bCx0aGlzLl9kb2N1bWVudD1wLGQmJihkLnBvc2l0aW9uJiYodGhpcy5wb3NpdGlvbj1kLnBvc2l0aW9uKSxkLnRvdWNoR2VzdHVyZXMmJih0aGlzLnRvdWNoR2VzdHVyZXM9ZC50b3VjaEdlc3R1cmVzKSksYy5jaGFuZ2UucGlwZShqZSh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fb3ZlcmxheVJlZiYmdGhpcy5fdXBkYXRlUG9zaXRpb24odGhpcy5fb3ZlcmxheVJlZil9KSksaS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PntlLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5faGFuZGxlS2V5ZG93bil9KSl9Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuX3Bvc2l0aW9ufXNldCBwb3NpdGlvbih0KXt2YXIgZTt0IT09dGhpcy5fcG9zaXRpb24mJih0aGlzLl9wb3NpdGlvbj10LHRoaXMuX292ZXJsYXlSZWYmJih0aGlzLl91cGRhdGVQb3NpdGlvbih0aGlzLl9vdmVybGF5UmVmKSxudWxsPT09KGU9dGhpcy5fdG9vbHRpcEluc3RhbmNlKXx8dm9pZCAwPT09ZXx8ZS5zaG93KDApLHRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKSkpfWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLl9kaXNhYmxlZH1zZXQgZGlzYWJsZWQodCl7dGhpcy5fZGlzYWJsZWQ9ZUgodCksdGhpcy5fZGlzYWJsZWQ/dGhpcy5oaWRlKDApOnRoaXMuX3NldHVwUG9pbnRlckVudGVyRXZlbnRzSWZOZWVkZWQoKX1nZXQgbWVzc2FnZSgpe3JldHVybiB0aGlzLl9tZXNzYWdlfXNldCBtZXNzYWdlKHQpe3RoaXMuX2FyaWFEZXNjcmliZXIucmVtb3ZlRGVzY3JpcHRpb24odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LHRoaXMuX21lc3NhZ2UsInRvb2x0aXAiKSx0aGlzLl9tZXNzYWdlPW51bGwhPXQ/U3RyaW5nKHQpLnRyaW0oKToiIiwhdGhpcy5fbWVzc2FnZSYmdGhpcy5faXNUb29sdGlwVmlzaWJsZSgpP3RoaXMuaGlkZSgwKToodGhpcy5fc2V0dXBQb2ludGVyRW50ZXJFdmVudHNJZk5lZWRlZCgpLHRoaXMuX3VwZGF0ZVRvb2x0aXBNZXNzYWdlKCksdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgoKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCgpPT57dGhpcy5fYXJpYURlc2NyaWJlci5kZXNjcmliZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsdGhpcy5tZXNzYWdlLCJ0b29sdGlwIil9KSl9KSkpfWdldCB0b29sdGlwQ2xhc3MoKXtyZXR1cm4gdGhpcy5fdG9vbHRpcENsYXNzfXNldCB0b29sdGlwQ2xhc3ModCl7dGhpcy5fdG9vbHRpcENsYXNzPXQsdGhpcy5fdG9vbHRpcEluc3RhbmNlJiZ0aGlzLl9zZXRUb29sdGlwQ2xhc3ModGhpcy5fdG9vbHRpcENsYXNzKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl92aWV3SW5pdGlhbGl6ZWQ9ITAsdGhpcy5fc2V0dXBQb2ludGVyRW50ZXJFdmVudHNJZk5lZWRlZCgpLHRoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsZW1lbnRSZWYpLnBpcGUoamUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCh0PT57dD8ia2V5Ym9hcmQiPT09dCYmdGhpcy5fbmdab25lLnJ1bigoKCk9PnRoaXMuc2hvdygpKSk6dGhpcy5fbmdab25lLnJ1bigoKCk9PnRoaXMuaGlkZSgwKSkpfSkpfW5nT25EZXN0cm95KCl7Y29uc3QgdD10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7Y2xlYXJUaW1lb3V0KHRoaXMuX3RvdWNoc3RhcnRUaW1lb3V0KSx0aGlzLl9vdmVybGF5UmVmJiYodGhpcy5fb3ZlcmxheVJlZi5kaXNwb3NlKCksdGhpcy5fdG9vbHRpcEluc3RhbmNlPW51bGwpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5faGFuZGxlS2V5ZG93biksdGhpcy5fcGFzc2l2ZUxpc3RlbmVycy5mb3JFYWNoKCgoW2Usbl0pPT57dC5yZW1vdmVFdmVudExpc3RlbmVyKGUsbixFMCl9KSksdGhpcy5fcGFzc2l2ZUxpc3RlbmVycy5sZW5ndGg9MCx0aGlzLl9kZXN0cm95ZWQubmV4dCgpLHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpLHRoaXMuX2FyaWFEZXNjcmliZXIucmVtb3ZlRGVzY3JpcHRpb24odCx0aGlzLm1lc3NhZ2UsInRvb2x0aXAiKSx0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodCl9c2hvdyh0PXRoaXMuc2hvd0RlbGF5KXtpZih0aGlzLmRpc2FibGVkfHwhdGhpcy5tZXNzYWdlfHx0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlKCkmJiF0aGlzLl90b29sdGlwSW5zdGFuY2UuX3Nob3dUaW1lb3V0SWQmJiF0aGlzLl90b29sdGlwSW5zdGFuY2UuX2hpZGVUaW1lb3V0SWQpcmV0dXJuO2NvbnN0IGU9dGhpcy5fY3JlYXRlT3ZlcmxheSgpO3RoaXMuX2RldGFjaCgpLHRoaXMuX3BvcnRhbD10aGlzLl9wb3J0YWx8fG5ldyBzQih0aGlzLl90b29sdGlwQ29tcG9uZW50LHRoaXMuX3ZpZXdDb250YWluZXJSZWYpLHRoaXMuX3Rvb2x0aXBJbnN0YW5jZT1lLmF0dGFjaCh0aGlzLl9wb3J0YWwpLmluc3RhbmNlLHRoaXMuX3Rvb2x0aXBJbnN0YW5jZS5hZnRlckhpZGRlbigpLnBpcGUoamUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgoKT0+dGhpcy5fZGV0YWNoKCkpKSx0aGlzLl9zZXRUb29sdGlwQ2xhc3ModGhpcy5fdG9vbHRpcENsYXNzKSx0aGlzLl91cGRhdGVUb29sdGlwTWVzc2FnZSgpLHRoaXMuX3Rvb2x0aXBJbnN0YW5jZS5zaG93KHQpfWhpZGUodD10aGlzLmhpZGVEZWxheSl7dGhpcy5fdG9vbHRpcEluc3RhbmNlJiZ0aGlzLl90b29sdGlwSW5zdGFuY2UuaGlkZSh0KX10b2dnbGUoKXt0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlKCk/dGhpcy5oaWRlKCk6dGhpcy5zaG93KCl9X2lzVG9vbHRpcFZpc2libGUoKXtyZXR1cm4hIXRoaXMuX3Rvb2x0aXBJbnN0YW5jZSYmdGhpcy5fdG9vbHRpcEluc3RhbmNlLmlzVmlzaWJsZSgpfV9jcmVhdGVPdmVybGF5KCl7aWYodGhpcy5fb3ZlcmxheVJlZilyZXR1cm4gdGhpcy5fb3ZlcmxheVJlZjtjb25zdCB0PXRoaXMuX3Njcm9sbERpc3BhdGNoZXIuZ2V0QW5jZXN0b3JTY3JvbGxDb250YWluZXJzKHRoaXMuX2VsZW1lbnRSZWYpLGU9dGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5fZWxlbWVudFJlZikud2l0aFRyYW5zZm9ybU9yaWdpbk9uKGAuJHt0aGlzLl9jc3NDbGFzc1ByZWZpeH0tdG9vbHRpcGApLndpdGhGbGV4aWJsZURpbWVuc2lvbnMoITEpLndpdGhWaWV3cG9ydE1hcmdpbih0aGlzLl92aWV3cG9ydE1hcmdpbikud2l0aFNjcm9sbGFibGVDb250YWluZXJzKHQpO3JldHVybiBlLnBvc2l0aW9uQ2hhbmdlcy5waXBlKGplKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgodD0+e3RoaXMuX3VwZGF0ZUN1cnJlbnRQb3NpdGlvbkNsYXNzKHQuY29ubmVjdGlvblBhaXIpLHRoaXMuX3Rvb2x0aXBJbnN0YW5jZSYmdC5zY3JvbGxhYmxlVmlld1Byb3BlcnRpZXMuaXNPdmVybGF5Q2xpcHBlZCYmdGhpcy5fdG9vbHRpcEluc3RhbmNlLmlzVmlzaWJsZSgpJiZ0aGlzLl9uZ1pvbmUucnVuKCgoKT0+dGhpcy5oaWRlKDApKSl9KSksdGhpcy5fb3ZlcmxheVJlZj10aGlzLl9vdmVybGF5LmNyZWF0ZSh7ZGlyZWN0aW9uOnRoaXMuX2Rpcixwb3NpdGlvblN0cmF0ZWd5OmUscGFuZWxDbGFzczpgJHt0aGlzLl9jc3NDbGFzc1ByZWZpeH0tdG9vbHRpcC1wYW5lbGAsc2Nyb2xsU3RyYXRlZ3k6dGhpcy5fc2Nyb2xsU3RyYXRlZ3koKX0pLHRoaXMuX3VwZGF0ZVBvc2l0aW9uKHRoaXMuX292ZXJsYXlSZWYpLHRoaXMuX292ZXJsYXlSZWYuZGV0YWNobWVudHMoKS5waXBlKGplKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKCk9PnRoaXMuX2RldGFjaCgpKSksdGhpcy5fb3ZlcmxheVJlZi5vdXRzaWRlUG9pbnRlckV2ZW50cygpLnBpcGUoamUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgoKT0+e3ZhciB0O3JldHVybiBudWxsPT09KHQ9dGhpcy5fdG9vbHRpcEluc3RhbmNlKXx8dm9pZCAwPT09dD92b2lkIDA6dC5faGFuZGxlQm9keUludGVyYWN0aW9uKCl9KSksdGhpcy5fb3ZlcmxheVJlZn1fZGV0YWNoKCl7dGhpcy5fb3ZlcmxheVJlZiYmdGhpcy5fb3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpJiZ0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpLHRoaXMuX3Rvb2x0aXBJbnN0YW5jZT1udWxsfV91cGRhdGVQb3NpdGlvbih0KXtjb25zdCBlPXQuZ2V0Q29uZmlnKCkucG9zaXRpb25TdHJhdGVneSxuPXRoaXMuX2dldE9yaWdpbigpLG89dGhpcy5fZ2V0T3ZlcmxheVBvc2l0aW9uKCk7ZS53aXRoUG9zaXRpb25zKFt0aGlzLl9hZGRPZmZzZXQoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4ubWFpbiksby5tYWluKSksdGhpcy5fYWRkT2Zmc2V0KE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxuLmZhbGxiYWNrKSxvLmZhbGxiYWNrKSldKX1fYWRkT2Zmc2V0KHQpe3JldHVybiB0fV9nZXRPcmlnaW4oKXtjb25zdCB0PSF0aGlzLl9kaXJ8fCJsdHIiPT10aGlzLl9kaXIudmFsdWUsZT10aGlzLnBvc2l0aW9uO2xldCBuO2lmKCJhYm92ZSI9PWV8fCJiZWxvdyI9PWUpbj17b3JpZ2luWDoiY2VudGVyIixvcmlnaW5ZOiJhYm92ZSI9PWU/InRvcCI6ImJvdHRvbSJ9O2Vsc2UgaWYoImJlZm9yZSI9PWV8fCJsZWZ0Ij09ZSYmdHx8InJpZ2h0Ij09ZSYmIXQpbj17b3JpZ2luWDoic3RhcnQiLG9yaWdpblk6ImNlbnRlciJ9O2Vsc2UgaWYoImFmdGVyIj09ZXx8InJpZ2h0Ij09ZSYmdHx8ImxlZnQiPT1lJiYhdCluPXtvcmlnaW5YOiJlbmQiLG9yaWdpblk6ImNlbnRlciJ9O2Vsc2UgaWYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSl0aHJvdyBBMChlKTtjb25zdHt4Om8seTppfT10aGlzLl9pbnZlcnRQb3NpdGlvbihuLm9yaWdpblgsbi5vcmlnaW5ZKTtyZXR1cm57bWFpbjpuLGZhbGxiYWNrOntvcmlnaW5YOm8sb3JpZ2luWTppfX19X2dldE92ZXJsYXlQb3NpdGlvbigpe2NvbnN0IHQ9IXRoaXMuX2Rpcnx8Imx0ciI9PXRoaXMuX2Rpci52YWx1ZSxlPXRoaXMucG9zaXRpb247bGV0IG47aWYoImFib3ZlIj09ZSluPXtvdmVybGF5WDoiY2VudGVyIixvdmVybGF5WToiYm90dG9tIn07ZWxzZSBpZigiYmVsb3ciPT1lKW49e292ZXJsYXlYOiJjZW50ZXIiLG92ZXJsYXlZOiJ0b3AifTtlbHNlIGlmKCJiZWZvcmUiPT1lfHwibGVmdCI9PWUmJnR8fCJyaWdodCI9PWUmJiF0KW49e292ZXJsYXlYOiJlbmQiLG92ZXJsYXlZOiJjZW50ZXIifTtlbHNlIGlmKCJhZnRlciI9PWV8fCJyaWdodCI9PWUmJnR8fCJsZWZ0Ij09ZSYmIXQpbj17b3ZlcmxheVg6InN0YXJ0IixvdmVybGF5WToiY2VudGVyIn07ZWxzZSBpZigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKXRocm93IEEwKGUpO2NvbnN0e3g6byx5Oml9PXRoaXMuX2ludmVydFBvc2l0aW9uKG4ub3ZlcmxheVgsbi5vdmVybGF5WSk7cmV0dXJue21haW46bixmYWxsYmFjazp7b3ZlcmxheVg6byxvdmVybGF5WTppfX19X3VwZGF0ZVRvb2x0aXBNZXNzYWdlKCl7dGhpcy5fdG9vbHRpcEluc3RhbmNlJiYodGhpcy5fdG9vbHRpcEluc3RhbmNlLm1lc3NhZ2U9dGhpcy5tZXNzYWdlLHRoaXMuX3Rvb2x0aXBJbnN0YW5jZS5fbWFya0ZvckNoZWNrKCksdGhpcy5fbmdab25lLm9uTWljcm90YXNrRW1wdHkucGlwZSh2ZSgxKSxqZSh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fdG9vbHRpcEluc3RhbmNlJiZ0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCl9KSkpfV9zZXRUb29sdGlwQ2xhc3ModCl7dGhpcy5fdG9vbHRpcEluc3RhbmNlJiYodGhpcy5fdG9vbHRpcEluc3RhbmNlLnRvb2x0aXBDbGFzcz10LHRoaXMuX3Rvb2x0aXBJbnN0YW5jZS5fbWFya0ZvckNoZWNrKCkpfV9pbnZlcnRQb3NpdGlvbih0LGUpe3JldHVybiJhYm92ZSI9PT10aGlzLnBvc2l0aW9ufHwiYmVsb3ciPT09dGhpcy5wb3NpdGlvbj8idG9wIj09PWU/ZT0iYm90dG9tIjoiYm90dG9tIj09PWUmJihlPSJ0b3AiKToiZW5kIj09PXQ/dD0ic3RhcnQiOiJzdGFydCI9PT10JiYodD0iZW5kIikse3g6dCx5OmV9fV91cGRhdGVDdXJyZW50UG9zaXRpb25DbGFzcyh0KXtjb25zdHtvdmVybGF5WTplLG9yaWdpblg6bixvcmlnaW5ZOm99PXQ7bGV0IGk7aWYoaT0iY2VudGVyIj09PWU/dGhpcy5fZGlyJiYicnRsIj09PXRoaXMuX2Rpci52YWx1ZT8iZW5kIj09PW4/ImxlZnQiOiJyaWdodCI6InN0YXJ0Ij09PW4/ImxlZnQiOiJyaWdodCI6ImJvdHRvbSI9PT1lJiYidG9wIj09PW8/ImFib3ZlIjoiYmVsb3ciLGkhPT10aGlzLl9jdXJyZW50UG9zaXRpb24pe2NvbnN0IHQ9dGhpcy5fb3ZlcmxheVJlZjtpZih0KXtjb25zdCBlPWAke3RoaXMuX2Nzc0NsYXNzUHJlZml4fS10b29sdGlwLXBhbmVsLWA7dC5yZW1vdmVQYW5lbENsYXNzKGUrdGhpcy5fY3VycmVudFBvc2l0aW9uKSx0LmFkZFBhbmVsQ2xhc3MoZStpKX10aGlzLl9jdXJyZW50UG9zaXRpb249aX19X3NldHVwUG9pbnRlckVudGVyRXZlbnRzSWZOZWVkZWQoKXshdGhpcy5fZGlzYWJsZWQmJnRoaXMubWVzc2FnZSYmdGhpcy5fdmlld0luaXRpYWxpemVkJiYhdGhpcy5fcGFzc2l2ZUxpc3RlbmVycy5sZW5ndGgmJih0aGlzLl9wbGF0Zm9ybVN1cHBvcnRzTW91c2VFdmVudHMoKT90aGlzLl9wYXNzaXZlTGlzdGVuZXJzLnB1c2goWyJtb3VzZWVudGVyIiwoKT0+e3RoaXMuX3NldHVwUG9pbnRlckV4aXRFdmVudHNJZk5lZWRlZCgpLHRoaXMuc2hvdygpfV0pOiJvZmYiIT09dGhpcy50b3VjaEdlc3R1cmVzJiYodGhpcy5fZGlzYWJsZU5hdGl2ZUdlc3R1cmVzSWZOZWNlc3NhcnkoKSx0aGlzLl9wYXNzaXZlTGlzdGVuZXJzLnB1c2goWyJ0b3VjaHN0YXJ0IiwoKT0+e3RoaXMuX3NldHVwUG9pbnRlckV4aXRFdmVudHNJZk5lZWRlZCgpLGNsZWFyVGltZW91dCh0aGlzLl90b3VjaHN0YXJ0VGltZW91dCksdGhpcy5fdG91Y2hzdGFydFRpbWVvdXQ9c2V0VGltZW91dCgoKCk9PnRoaXMuc2hvdygpKSw1MDApfV0pKSx0aGlzLl9hZGRMaXN0ZW5lcnModGhpcy5fcGFzc2l2ZUxpc3RlbmVycykpfV9zZXR1cFBvaW50ZXJFeGl0RXZlbnRzSWZOZWVkZWQoKXtpZih0aGlzLl9wb2ludGVyRXhpdEV2ZW50c0luaXRpYWxpemVkKXJldHVybjt0aGlzLl9wb2ludGVyRXhpdEV2ZW50c0luaXRpYWxpemVkPSEwO2NvbnN0IHQ9W107aWYodGhpcy5fcGxhdGZvcm1TdXBwb3J0c01vdXNlRXZlbnRzKCkpdC5wdXNoKFsibW91c2VsZWF2ZSIsKCk9PnRoaXMuaGlkZSgpXSxbIndoZWVsIix0PT50aGlzLl93aGVlbExpc3RlbmVyKHQpXSk7ZWxzZSBpZigib2ZmIiE9PXRoaXMudG91Y2hHZXN0dXJlcyl7dGhpcy5fZGlzYWJsZU5hdGl2ZUdlc3R1cmVzSWZOZWNlc3NhcnkoKTtjb25zdCBlPSgpPT57Y2xlYXJUaW1lb3V0KHRoaXMuX3RvdWNoc3RhcnRUaW1lb3V0KSx0aGlzLmhpZGUodGhpcy5fZGVmYXVsdE9wdGlvbnMudG91Y2hlbmRIaWRlRGVsYXkpfTt0LnB1c2goWyJ0b3VjaGVuZCIsZV0sWyJ0b3VjaGNhbmNlbCIsZV0pfXRoaXMuX2FkZExpc3RlbmVycyh0KSx0aGlzLl9wYXNzaXZlTGlzdGVuZXJzLnB1c2goLi4udCl9X2FkZExpc3RlbmVycyh0KXt0LmZvckVhY2goKChbdCxlXSk9Pnt0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0LGUsRTApfSkpfV9wbGF0Zm9ybVN1cHBvcnRzTW91c2VFdmVudHMoKXtyZXR1cm4hdGhpcy5fcGxhdGZvcm0uSU9TJiYhdGhpcy5fcGxhdGZvcm0uQU5EUk9JRH1fd2hlZWxMaXN0ZW5lcih0KXtpZih0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlKCkpe2NvbnN0IGU9dGhpcy5fZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCh0LmNsaWVudFgsdC5jbGllbnRZKSxuPXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtlPT09bnx8bi5jb250YWlucyhlKXx8dGhpcy5oaWRlKCl9fV9kaXNhYmxlTmF0aXZlR2VzdHVyZXNJZk5lY2Vzc2FyeSgpe2NvbnN0IHQ9dGhpcy50b3VjaEdlc3R1cmVzO2lmKCJvZmYiIT09dCl7Y29uc3QgZT10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsbj1lLnN0eWxlOygib24iPT09dHx8IklOUFVUIiE9PWUubm9kZU5hbWUmJiJURVhUQVJFQSIhPT1lLm5vZGVOYW1lKSYmKG4udXNlclNlbGVjdD1uLm1zVXNlclNlbGVjdD1uLndlYmtpdFVzZXJTZWxlY3Q9bi5Nb3pVc2VyU2VsZWN0PSJub25lIiksIm9uIiE9PXQmJmUuZHJhZ2dhYmxlfHwobi53ZWJraXRVc2VyRHJhZz0ibm9uZSIpLG4udG91Y2hBY3Rpb249Im5vbmUiLG4ud2Via2l0VGFwSGlnaGxpZ2h0Q29sb3I9InRyYW5zcGFyZW50In19fUYwLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxGMCkoZ2YoS0IpLGdmKEtoKSxnZihLTCksZ2YoRmIpLGdmKG1DKSxnZihjSCksZ2YoTkgpLGdmKGZGKSxnZih2b2lkIDApLGdmKHZGKSxnZih2b2lkIDApLGdmKHNNKSl9LEYwLsm1ZGlyPWhvKHt0eXBlOkYwLGlucHV0czp7c2hvd0RlbGF5OlsibWF0VG9vbHRpcFNob3dEZWxheSIsInNob3dEZWxheSJdLGhpZGVEZWxheTpbIm1hdFRvb2x0aXBIaWRlRGVsYXkiLCJoaWRlRGVsYXkiXSx0b3VjaEdlc3R1cmVzOlsibWF0VG9vbHRpcFRvdWNoR2VzdHVyZXMiLCJ0b3VjaEdlc3R1cmVzIl0scG9zaXRpb246WyJtYXRUb29sdGlwUG9zaXRpb24iLCJwb3NpdGlvbiJdLGRpc2FibGVkOlsibWF0VG9vbHRpcERpc2FibGVkIiwiZGlzYWJsZWQiXSxtZXNzYWdlOlsibWF0VG9vbHRpcCIsIm1lc3NhZ2UiXSx0b29sdGlwQ2xhc3M6WyJtYXRUb29sdGlwQ2xhc3MiLCJ0b29sdGlwQ2xhc3MiXX19KSxGMC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOktCfSx7dHlwZTpLaH0se3R5cGU6S0x9LHt0eXBlOkZifSx7dHlwZTptQ30se3R5cGU6Y0h9LHt0eXBlOk5IfSx7dHlwZTpmRn0se3R5cGU6dm9pZCAwfSx7dHlwZTp2Rn0se3R5cGU6dm9pZCAwfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19XSxGMC5wcm9wRGVjb3JhdG9ycz17cG9zaXRpb246W3t0eXBlOlJfLGFyZ3M6WyJtYXRUb29sdGlwUG9zaXRpb24iXX1dLGRpc2FibGVkOlt7dHlwZTpSXyxhcmdzOlsibWF0VG9vbHRpcERpc2FibGVkIl19XSxzaG93RGVsYXk6W3t0eXBlOlJfLGFyZ3M6WyJtYXRUb29sdGlwU2hvd0RlbGF5Il19XSxoaWRlRGVsYXk6W3t0eXBlOlJfLGFyZ3M6WyJtYXRUb29sdGlwSGlkZURlbGF5Il19XSx0b3VjaEdlc3R1cmVzOlt7dHlwZTpSXyxhcmdzOlsibWF0VG9vbHRpcFRvdWNoR2VzdHVyZXMiXX1dLG1lc3NhZ2U6W3t0eXBlOlJfLGFyZ3M6WyJtYXRUb29sdGlwIl19XSx0b29sdGlwQ2xhc3M6W3t0eXBlOlJfLGFyZ3M6WyJtYXRUb29sdGlwQ2xhc3MiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEYwLFt7dHlwZTprX31dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpLQn0se3R5cGU6S2h9LHt0eXBlOktMfSx7dHlwZTpGYn0se3R5cGU6bUN9LHt0eXBlOmNIfSx7dHlwZTpOSH0se3R5cGU6ZkZ9LHt0eXBlOnZvaWQgMH0se3R5cGU6dkZ9LHt0eXBlOnZvaWQgMH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfV19KSx7c2hvd0RlbGF5Olt7dHlwZTpSXyxhcmdzOlsibWF0VG9vbHRpcFNob3dEZWxheSJdfV0saGlkZURlbGF5Olt7dHlwZTpSXyxhcmdzOlsibWF0VG9vbHRpcEhpZGVEZWxheSJdfV0sdG91Y2hHZXN0dXJlczpbe3R5cGU6Ul8sYXJnczpbIm1hdFRvb2x0aXBUb3VjaEdlc3R1cmVzIl19XSxwb3NpdGlvbjpbe3R5cGU6Ul8sYXJnczpbIm1hdFRvb2x0aXBQb3NpdGlvbiJdfV0sZGlzYWJsZWQ6W3t0eXBlOlJfLGFyZ3M6WyJtYXRUb29sdGlwRGlzYWJsZWQiXX1dLG1lc3NhZ2U6W3t0eXBlOlJfLGFyZ3M6WyJtYXRUb29sdGlwIl19XSx0b29sdGlwQ2xhc3M6W3t0eXBlOlJfLGFyZ3M6WyJtYXRUb29sdGlwQ2xhc3MiXX1dfSk7Y2xhc3MgTDAgZXh0ZW5kcyBGMHtjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyLHMsbCxjLGQscCl7c3VwZXIodCxlLG4sbyxpLGEscixzLGwsYyxkLHApLHRoaXMuX3Rvb2x0aXBDb21wb25lbnQ9VjB9fUwwLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxMMCkoZ2YoS0IpLGdmKEtoKSxnZihLTCksZ2YoRmIpLGdmKG1DKSxnZihjSCksZ2YoTkgpLGdmKGZGKSxnZihUMCksZ2YodkYsOCksZ2YoSTAsOCksZ2Yoc00pKX0sTDAuybVkaXI9aG8oe3R5cGU6TDAsc2VsZWN0b3JzOltbIiIsIm1hdFRvb2x0aXAiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtdG9vbHRpcC10cmlnZ2VyIl0sZXhwb3J0QXM6WyJtYXRUb29sdGlwIl0sZmVhdHVyZXM6W1FwXX0pLEwwLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6S0J9LHt0eXBlOktofSx7dHlwZTpLTH0se3R5cGU6RmJ9LHt0eXBlOm1DfSx7dHlwZTpjSH0se3R5cGU6Tkh9LHt0eXBlOmZGfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbVDBdfV19LHt0eXBlOnZGLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbSTBdfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoTDAsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW21hdFRvb2x0aXBdIixleHBvcnRBczoibWF0VG9vbHRpcCIsaG9zdDp7Y2xhc3M6Im1hdC10b29sdGlwLXRyaWdnZXIifX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOktCfSx7dHlwZTpLaH0se3R5cGU6S0x9LHt0eXBlOkZifSx7dHlwZTptQ30se3R5cGU6Y0h9LHt0eXBlOk5IfSx7dHlwZTpmRn0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W1QwXX1dfSx7dHlwZTp2RixkZWNvcmF0b3JzOlt7dHlwZTpCcn1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W0kwXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19XX0pLG51bGwpO2NsYXNzIEIwe2NvbnN0cnVjdG9yKHQpe3RoaXMuX2NoYW5nZURldGVjdG9yUmVmPXQsdGhpcy5fdmlzaWJpbGl0eT0iaW5pdGlhbCIsdGhpcy5fY2xvc2VPbkludGVyYWN0aW9uPSExLHRoaXMuX29uSGlkZT1uZXcgQn1zaG93KHQpe2NsZWFyVGltZW91dCh0aGlzLl9oaWRlVGltZW91dElkKSx0aGlzLl9jbG9zZU9uSW50ZXJhY3Rpb249ITAsdGhpcy5fc2hvd1RpbWVvdXRJZD1zZXRUaW1lb3V0KCgoKT0+e3RoaXMuX3Zpc2liaWxpdHk9InZpc2libGUiLHRoaXMuX3Nob3dUaW1lb3V0SWQ9dm9pZCAwLHRoaXMuX29uU2hvdygpLHRoaXMuX21hcmtGb3JDaGVjaygpfSksdCl9aGlkZSh0KXtjbGVhclRpbWVvdXQodGhpcy5fc2hvd1RpbWVvdXRJZCksdGhpcy5faGlkZVRpbWVvdXRJZD1zZXRUaW1lb3V0KCgoKT0+e3RoaXMuX3Zpc2liaWxpdHk9ImhpZGRlbiIsdGhpcy5faGlkZVRpbWVvdXRJZD12b2lkIDAsdGhpcy5fbWFya0ZvckNoZWNrKCl9KSx0KX1hZnRlckhpZGRlbigpe3JldHVybiB0aGlzLl9vbkhpZGV9aXNWaXNpYmxlKCl7cmV0dXJuInZpc2libGUiPT09dGhpcy5fdmlzaWJpbGl0eX1uZ09uRGVzdHJveSgpe2NsZWFyVGltZW91dCh0aGlzLl9zaG93VGltZW91dElkKSxjbGVhclRpbWVvdXQodGhpcy5faGlkZVRpbWVvdXRJZCksdGhpcy5fb25IaWRlLmNvbXBsZXRlKCl9X2FuaW1hdGlvblN0YXJ0KCl7dGhpcy5fY2xvc2VPbkludGVyYWN0aW9uPSExfV9hbmltYXRpb25Eb25lKHQpe2NvbnN0IGU9dC50b1N0YXRlOyJoaWRkZW4iIT09ZXx8dGhpcy5pc1Zpc2libGUoKXx8dGhpcy5fb25IaWRlLm5leHQoKSwidmlzaWJsZSIhPT1lJiYiaGlkZGVuIiE9PWV8fCh0aGlzLl9jbG9zZU9uSW50ZXJhY3Rpb249ITApfV9oYW5kbGVCb2R5SW50ZXJhY3Rpb24oKXt0aGlzLl9jbG9zZU9uSW50ZXJhY3Rpb24mJnRoaXMuaGlkZSgwKX1fbWFya0ZvckNoZWNrKCl7dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9X29uU2hvdygpe319QjAuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEIwKShnZihPYikpfSxCMC7JtWRpcj1obyh7dHlwZTpCMH0pLEIwLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6T2J9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEIwLFt7dHlwZTprX31dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpPYn1dfSksbnVsbCk7Y2xhc3MgVjAgZXh0ZW5kcyBCMHtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQpLHRoaXMuX2JyZWFrcG9pbnRPYnNlcnZlcj1lLHRoaXMuX2lzSGFuZHNldD10aGlzLl9icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShtVil9fVYwLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxWMCkoZ2YoT2IpLGdmKGRWKSl9LFYwLsm1Y21wPXNvKHt0eXBlOlYwLHNlbGVjdG9yczpbWyJtYXQtdG9vbHRpcC1jb21wb25lbnQiXV0saG9zdEF0dHJzOlsiYXJpYS1oaWRkZW4iLCJ0cnVlIl0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmbHUoInpvb20iLCJ2aXNpYmxlIj09PW4uX3Zpc2liaWxpdHk/MTpudWxsKX0sZmVhdHVyZXM6W1FwXSxkZWNsczozLHZhcnM6Nyxjb25zdHM6W1sxLCJtYXQtdG9vbHRpcCIsMywibmdDbGFzcyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoQ2YoMCwiZGl2IiwwKSxSZigiQHN0YXRlLnN0YXJ0IiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9hbmltYXRpb25TdGFydCgpfSkpKCJAc3RhdGUuZG9uZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2FuaW1hdGlvbkRvbmUoZSl9KSksX3koMSwiYXN5bmMiKSxQdSgyKSxNZigpKSwyJmUpe2xldCB0O2N1KCJtYXQtdG9vbHRpcC1oYW5kc2V0IixudWxsPT0odD1DeSgxLDUsbi5faXNIYW5kc2V0KSk/bnVsbDp0Lm1hdGNoZXMpLGJmKCJuZ0NsYXNzIixuLnRvb2x0aXBDbGFzcykoIkBzdGF0ZSIsbi5fdmlzaWJpbGl0eSksRGMoMiksd3Uobi5tZXNzYWdlKX19LGRpcmVjdGl2ZXM6W0N2XSxwaXBlczpbVnZdLHN0eWxlczpbIi5tYXQtdG9vbHRpcC1wYW5lbHtwb2ludGVyLWV2ZW50czpub25lICFpbXBvcnRhbnR9Lm1hdC10b29sdGlwe2NvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czo0cHg7bWFyZ2luOjE0cHg7bWF4LXdpZHRoOjI1MHB4O3BhZGRpbmctbGVmdDo4cHg7cGFkZGluZy1yaWdodDo4cHg7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXRvb2x0aXB7b3V0bGluZTpzb2xpZCAxcHh9Lm1hdC10b29sdGlwLWhhbmRzZXR7bWFyZ2luOjI0cHg7cGFkZGluZy1sZWZ0OjE2cHg7cGFkZGluZy1yaWdodDoxNnB4fVxuIl0sZW5jYXBzdWxhdGlvbjoyLGRhdGE6e2FuaW1hdGlvbjpbUjAudG9vbHRpcFN0YXRlXX0sY2hhbmdlRGV0ZWN0aW9uOjB9KSxWMC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOk9ifSx7dHlwZTpkVn1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoVjAsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibWF0LXRvb2x0aXAtY29tcG9uZW50Iix0ZW1wbGF0ZTonPGRpdiBjbGFzcz0ibWF0LXRvb2x0aXAiXG4gICAgIFtuZ0NsYXNzXT0idG9vbHRpcENsYXNzIlxuICAgICBbY2xhc3MubWF0LXRvb2x0aXAtaGFuZHNldF09IihfaXNIYW5kc2V0IHwgYXN5bmMpPy5tYXRjaGVzIlxuICAgICBbQHN0YXRlXT0iX3Zpc2liaWxpdHkiXG4gICAgIChAc3RhdGUuc3RhcnQpPSJfYW5pbWF0aW9uU3RhcnQoKSJcbiAgICAgKEBzdGF0ZS5kb25lKT0iX2FuaW1hdGlvbkRvbmUoJGV2ZW50KSI+e3ttZXNzYWdlfX08L2Rpdj5cbicsZW5jYXBzdWxhdGlvbjpXbi5Ob25lLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2gsYW5pbWF0aW9uczpbUjAudG9vbHRpcFN0YXRlXSxob3N0OnsiW3N0eWxlLnpvb21dIjonX3Zpc2liaWxpdHkgPT09ICJ2aXNpYmxlIiA/IDEgOiBudWxsJywiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sc3R5bGVzOlsiLm1hdC10b29sdGlwLXBhbmVse3BvaW50ZXItZXZlbnRzOm5vbmUgIWltcG9ydGFudH0ubWF0LXRvb2x0aXB7Y29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjRweDttYXJnaW46MTRweDttYXgtd2lkdGg6MjUwcHg7cGFkZGluZy1sZWZ0OjhweDtwYWRkaW5nLXJpZ2h0OjhweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtdG9vbHRpcHtvdXRsaW5lOnNvbGlkIDFweH0ubWF0LXRvb2x0aXAtaGFuZHNldHttYXJnaW46MjRweDtwYWRkaW5nLWxlZnQ6MTZweDtwYWRkaW5nLXJpZ2h0OjE2cHh9XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOk9ifSx7dHlwZTpkVn1dfSksbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBqMHt9ZnVuY3Rpb24gVTAodCxlKXtpZigxJnQmJihDZigwLCJtYXQtb3B0aW9uIiwxOSksUHUoMSksTWYoKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0O2JmKCJ2YWx1ZSIsdCksRGMoMSksa3UoIiAiLHQsIiAiKX19ZnVuY3Rpb24gVzAodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJtYXQtZm9ybS1maWVsZCIsMTYpLENmKDEsIm1hdC1zZWxlY3QiLDE3KSxSZigic2VsZWN0aW9uQ2hhbmdlIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtyZXR1cm4gemYoMikuX2NoYW5nZVBhZ2VTaXplKG4udmFsdWUpfSkpLEhtKDIsVTAsMiwyLCJtYXQtb3B0aW9uIiwxOCksTWYoKSxNZigpfWlmKDImdCl7Y29uc3QgdD16ZigyKTtiZigiYXBwZWFyYW5jZSIsdC5fZm9ybUZpZWxkQXBwZWFyYW5jZSkoImNvbG9yIix0LmNvbG9yKSxEYygxKSxiZigidmFsdWUiLHQucGFnZVNpemUpKCJkaXNhYmxlZCIsdC5kaXNhYmxlZCkoImFyaWEtbGFiZWwiLHQuX2ludGwuaXRlbXNQZXJQYWdlTGFiZWwpLERjKDEpLGJmKCJuZ0Zvck9mIix0Ll9kaXNwbGF5ZWRQYWdlU2l6ZU9wdGlvbnMpfX1mdW5jdGlvbiBHMCh0LGUpe2lmKDEmdCYmKENmKDAsImRpdiIsMjApLFB1KDEpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigyKTtEYygxKSx3dSh0LnBhZ2VTaXplKX19ZnVuY3Rpb24gWTAodCxlKXtpZigxJnQmJihDZigwLCJkaXYiLDEyKSxDZigxLCJkaXYiLDEzKSxQdSgyKSxNZigpLEhtKDMsVzAsMyw2LCJtYXQtZm9ybS1maWVsZCIsMTQpLEhtKDQsRzAsMiwxLCJkaXYiLDE1KSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoKTtEYygyKSxrdSgiICIsdC5faW50bC5pdGVtc1BlclBhZ2VMYWJlbCwiICIpLERjKDEpLGJmKCJuZ0lmIix0Ll9kaXNwbGF5ZWRQYWdlU2l6ZU9wdGlvbnMubGVuZ3RoPjEpLERjKDEpLGJmKCJuZ0lmIix0Ll9kaXNwbGF5ZWRQYWdlU2l6ZU9wdGlvbnMubGVuZ3RoPD0xKX19ZnVuY3Rpb24gcTAodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJidXR0b24iLDIxKSxSZigiY2xpY2siLChmdW5jdGlvbiBlKCl7UGkodCk7cmV0dXJuIHpmKCkuZmlyc3RQYWdlKCl9KSksb2EoKSxDZigxLCJzdmciLDcpLHZmKDIsInBhdGgiLDIyKSxNZigpLE1mKCl9aWYoMiZ0KXtjb25zdCB0PXpmKCk7YmYoIm1hdFRvb2x0aXAiLHQuX2ludGwuZmlyc3RQYWdlTGFiZWwpKCJtYXRUb29sdGlwRGlzYWJsZWQiLHQuX3ByZXZpb3VzQnV0dG9uc0Rpc2FibGVkKCkpKCJtYXRUb29sdGlwUG9zaXRpb24iLCJhYm92ZSIpKCJkaXNhYmxlZCIsdC5fcHJldmlvdXNCdXR0b25zRGlzYWJsZWQoKSkseW0oImFyaWEtbGFiZWwiLHQuX2ludGwuZmlyc3RQYWdlTGFiZWwpfX1mdW5jdGlvbiBaMCh0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO29hKCksYWEoKSxDZigwLCJidXR0b24iLDIzKSxSZigiY2xpY2siLChmdW5jdGlvbiBlKCl7UGkodCk7cmV0dXJuIHpmKCkubGFzdFBhZ2UoKX0pKSxvYSgpLENmKDEsInN2ZyIsNyksdmYoMiwicGF0aCIsMjQpLE1mKCksTWYoKX1pZigyJnQpe2NvbnN0IHQ9emYoKTtiZigibWF0VG9vbHRpcCIsdC5faW50bC5sYXN0UGFnZUxhYmVsKSgibWF0VG9vbHRpcERpc2FibGVkIix0Ll9uZXh0QnV0dG9uc0Rpc2FibGVkKCkpKCJtYXRUb29sdGlwUG9zaXRpb24iLCJhYm92ZSIpKCJkaXNhYmxlZCIsdC5fbmV4dEJ1dHRvbnNEaXNhYmxlZCgpKSx5bSgiYXJpYS1sYWJlbCIsdC5faW50bC5sYXN0UGFnZUxhYmVsKX19ajAuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGowKX0sajAuybVtb2Q9Zm8oe3R5cGU6ajB9KSxqMC7JtWluaj1Ebih7cHJvdmlkZXJzOltOMF0saW1wb3J0czpbW19GLHJ4LG9WLE5GXSxORixvQl19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGowLFt7dHlwZTpMXyxhcmdzOlt7aW1wb3J0czpbX0Yscngsb1YsTkZdLGV4cG9ydHM6W0wwLFYwLE5GLG9CXSxkZWNsYXJhdGlvbnM6W0wwLFYwXSxlbnRyeUNvbXBvbmVudHM6W1YwXSxwcm92aWRlcnM6W04wXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKGowLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bTDAsVjBdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW19GLHJ4LG9WLE5GXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltMMCxWMCxORixvQl19fSk7Y2xhc3MgWDB7Y29uc3RydWN0b3IoKXt0aGlzLmNoYW5nZXM9bmV3IEIsdGhpcy5pdGVtc1BlclBhZ2VMYWJlbD0iSXRlbXMgcGVyIHBhZ2U6Iix0aGlzLm5leHRQYWdlTGFiZWw9Ik5leHQgcGFnZSIsdGhpcy5wcmV2aW91c1BhZ2VMYWJlbD0iUHJldmlvdXMgcGFnZSIsdGhpcy5maXJzdFBhZ2VMYWJlbD0iRmlyc3QgcGFnZSIsdGhpcy5sYXN0UGFnZUxhYmVsPSJMYXN0IHBhZ2UiLHRoaXMuZ2V0UmFuZ2VMYWJlbD0odCxlLG4pPT57aWYoMD09bnx8MD09ZSlyZXR1cm5gMCBvZiAke259YDtjb25zdCBvPXQqZTtyZXR1cm5gJHtvKzF9IOKAkyAke288KG49TWF0aC5tYXgobiwwKSk/TWF0aC5taW4obytlLG4pOm8rZX0gb2YgJHtufWB9fX1YMC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8WDApfSxYMC7JtXByb3Y9U24oe2ZhY3Rvcnk6ZnVuY3Rpb24gdCgpe3JldHVybiBuZXcgWDB9LHRva2VuOlgwLHByb3ZpZGVkSW46InJvb3QifSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihYMCxbe3R5cGU6VW0sYXJnczpbe3Byb3ZpZGVkSW46InJvb3QifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pLG51bGwpO2NvbnN0IEswPXtwcm92aWRlOlgwLGRlcHM6W1tuZXcgQnIsbmV3IGpyLFgwXV0sdXNlRmFjdG9yeTpmdW5jdGlvbiBKMCh0KXtyZXR1cm4gdHx8bmV3IFgwfX0sUTA9bmV3IGVyKCJNQVRfUEFHSU5BVE9SX0RFRkFVTFRfT1BUSU9OUyIpLCQwPXpGKEJGKGNsYXNze30pKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgdDEgZXh0ZW5kcyAkMHtjb25zdHJ1Y3Rvcih0LGUsbil7aWYoc3VwZXIoKSx0aGlzLl9pbnRsPXQsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9ZSx0aGlzLl9wYWdlSW5kZXg9MCx0aGlzLl9sZW5ndGg9MCx0aGlzLl9wYWdlU2l6ZU9wdGlvbnM9W10sdGhpcy5faGlkZVBhZ2VTaXplPSExLHRoaXMuX3Nob3dGaXJzdExhc3RCdXR0b25zPSExLHRoaXMucGFnZT1uZXcgU3ksdGhpcy5faW50bENoYW5nZXM9dC5jaGFuZ2VzLnN1YnNjcmliZSgoKCk9PnRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKSksbil7Y29uc3R7cGFnZVNpemU6dCxwYWdlU2l6ZU9wdGlvbnM6ZSxoaWRlUGFnZVNpemU6byxzaG93Rmlyc3RMYXN0QnV0dG9uczppfT1uO251bGwhPXQmJih0aGlzLl9wYWdlU2l6ZT10KSxudWxsIT1lJiYodGhpcy5fcGFnZVNpemVPcHRpb25zPWUpLG51bGwhPW8mJih0aGlzLl9oaWRlUGFnZVNpemU9byksbnVsbCE9aSYmKHRoaXMuX3Nob3dGaXJzdExhc3RCdXR0b25zPWkpfX1nZXQgcGFnZUluZGV4KCl7cmV0dXJuIHRoaXMuX3BhZ2VJbmRleH1zZXQgcGFnZUluZGV4KHQpe3RoaXMuX3BhZ2VJbmRleD1NYXRoLm1heChuSCh0KSwwKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuX2xlbmd0aH1zZXQgbGVuZ3RoKHQpe3RoaXMuX2xlbmd0aD1uSCh0KSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX1nZXQgcGFnZVNpemUoKXtyZXR1cm4gdGhpcy5fcGFnZVNpemV9c2V0IHBhZ2VTaXplKHQpe3RoaXMuX3BhZ2VTaXplPU1hdGgubWF4KG5IKHQpLDApLHRoaXMuX3VwZGF0ZURpc3BsYXllZFBhZ2VTaXplT3B0aW9ucygpfWdldCBwYWdlU2l6ZU9wdGlvbnMoKXtyZXR1cm4gdGhpcy5fcGFnZVNpemVPcHRpb25zfXNldCBwYWdlU2l6ZU9wdGlvbnModCl7dGhpcy5fcGFnZVNpemVPcHRpb25zPSh0fHxbXSkubWFwKCh0PT5uSCh0KSkpLHRoaXMuX3VwZGF0ZURpc3BsYXllZFBhZ2VTaXplT3B0aW9ucygpfWdldCBoaWRlUGFnZVNpemUoKXtyZXR1cm4gdGhpcy5faGlkZVBhZ2VTaXplfXNldCBoaWRlUGFnZVNpemUodCl7dGhpcy5faGlkZVBhZ2VTaXplPWVIKHQpfWdldCBzaG93Rmlyc3RMYXN0QnV0dG9ucygpe3JldHVybiB0aGlzLl9zaG93Rmlyc3RMYXN0QnV0dG9uc31zZXQgc2hvd0ZpcnN0TGFzdEJ1dHRvbnModCl7dGhpcy5fc2hvd0ZpcnN0TGFzdEJ1dHRvbnM9ZUgodCl9bmdPbkluaXQoKXt0aGlzLl9pbml0aWFsaXplZD0hMCx0aGlzLl91cGRhdGVEaXNwbGF5ZWRQYWdlU2l6ZU9wdGlvbnMoKSx0aGlzLl9tYXJrSW5pdGlhbGl6ZWQoKX1uZ09uRGVzdHJveSgpe3RoaXMuX2ludGxDaGFuZ2VzLnVuc3Vic2NyaWJlKCl9bmV4dFBhZ2UoKXtpZighdGhpcy5oYXNOZXh0UGFnZSgpKXJldHVybjtjb25zdCB0PXRoaXMucGFnZUluZGV4O3RoaXMucGFnZUluZGV4KyssdGhpcy5fZW1pdFBhZ2VFdmVudCh0KX1wcmV2aW91c1BhZ2UoKXtpZighdGhpcy5oYXNQcmV2aW91c1BhZ2UoKSlyZXR1cm47Y29uc3QgdD10aGlzLnBhZ2VJbmRleDt0aGlzLnBhZ2VJbmRleC0tLHRoaXMuX2VtaXRQYWdlRXZlbnQodCl9Zmlyc3RQYWdlKCl7aWYoIXRoaXMuaGFzUHJldmlvdXNQYWdlKCkpcmV0dXJuO2NvbnN0IHQ9dGhpcy5wYWdlSW5kZXg7dGhpcy5wYWdlSW5kZXg9MCx0aGlzLl9lbWl0UGFnZUV2ZW50KHQpfWxhc3RQYWdlKCl7aWYoIXRoaXMuaGFzTmV4dFBhZ2UoKSlyZXR1cm47Y29uc3QgdD10aGlzLnBhZ2VJbmRleDt0aGlzLnBhZ2VJbmRleD10aGlzLmdldE51bWJlck9mUGFnZXMoKS0xLHRoaXMuX2VtaXRQYWdlRXZlbnQodCl9aGFzUHJldmlvdXNQYWdlKCl7cmV0dXJuIHRoaXMucGFnZUluZGV4Pj0xJiYwIT10aGlzLnBhZ2VTaXplfWhhc05leHRQYWdlKCl7Y29uc3QgdD10aGlzLmdldE51bWJlck9mUGFnZXMoKS0xO3JldHVybiB0aGlzLnBhZ2VJbmRleDx0JiYwIT10aGlzLnBhZ2VTaXplfWdldE51bWJlck9mUGFnZXMoKXtyZXR1cm4gdGhpcy5wYWdlU2l6ZT9NYXRoLmNlaWwodGhpcy5sZW5ndGgvdGhpcy5wYWdlU2l6ZSk6MH1fY2hhbmdlUGFnZVNpemUodCl7Y29uc3QgZT10aGlzLnBhZ2VJbmRleDt0aGlzLnBhZ2VJbmRleD1NYXRoLmZsb29yKHRoaXMucGFnZUluZGV4KnRoaXMucGFnZVNpemUvdCl8fDAsdGhpcy5wYWdlU2l6ZT10LHRoaXMuX2VtaXRQYWdlRXZlbnQoZSl9X25leHRCdXR0b25zRGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5kaXNhYmxlZHx8IXRoaXMuaGFzTmV4dFBhZ2UoKX1fcHJldmlvdXNCdXR0b25zRGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5kaXNhYmxlZHx8IXRoaXMuaGFzUHJldmlvdXNQYWdlKCl9X3VwZGF0ZURpc3BsYXllZFBhZ2VTaXplT3B0aW9ucygpe3RoaXMuX2luaXRpYWxpemVkJiYodGhpcy5wYWdlU2l6ZXx8KHRoaXMuX3BhZ2VTaXplPTAhPXRoaXMucGFnZVNpemVPcHRpb25zLmxlbmd0aD90aGlzLnBhZ2VTaXplT3B0aW9uc1swXTo1MCksdGhpcy5fZGlzcGxheWVkUGFnZVNpemVPcHRpb25zPXRoaXMucGFnZVNpemVPcHRpb25zLnNsaWNlKCksLTE9PT10aGlzLl9kaXNwbGF5ZWRQYWdlU2l6ZU9wdGlvbnMuaW5kZXhPZih0aGlzLnBhZ2VTaXplKSYmdGhpcy5fZGlzcGxheWVkUGFnZVNpemVPcHRpb25zLnB1c2godGhpcy5wYWdlU2l6ZSksdGhpcy5fZGlzcGxheWVkUGFnZVNpemVPcHRpb25zLnNvcnQoKCh0LGUpPT50LWUpKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSl9X2VtaXRQYWdlRXZlbnQodCl7dGhpcy5wYWdlLmVtaXQoe3ByZXZpb3VzUGFnZUluZGV4OnQscGFnZUluZGV4OnRoaXMucGFnZUluZGV4LHBhZ2VTaXplOnRoaXMucGFnZVNpemUsbGVuZ3RoOnRoaXMubGVuZ3RofSl9fXQxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx0MSkoZ2YoWDApLGdmKE9iKSxnZih2b2lkIDApKX0sdDEuybVkaXI9aG8oe3R5cGU6dDEsaW5wdXRzOntwYWdlSW5kZXg6InBhZ2VJbmRleCIsbGVuZ3RoOiJsZW5ndGgiLHBhZ2VTaXplOiJwYWdlU2l6ZSIscGFnZVNpemVPcHRpb25zOiJwYWdlU2l6ZU9wdGlvbnMiLGhpZGVQYWdlU2l6ZToiaGlkZVBhZ2VTaXplIixzaG93Rmlyc3RMYXN0QnV0dG9uczoic2hvd0ZpcnN0TGFzdEJ1dHRvbnMiLGNvbG9yOiJjb2xvciJ9LG91dHB1dHM6e3BhZ2U6InBhZ2UifSxmZWF0dXJlczpbUXBdfSksdDEuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpYMH0se3R5cGU6T2J9LHt0eXBlOnZvaWQgMH1dLHQxLnByb3BEZWNvcmF0b3JzPXtjb2xvcjpbe3R5cGU6Ul99XSxwYWdlSW5kZXg6W3t0eXBlOlJffV0sbGVuZ3RoOlt7dHlwZTpSX31dLHBhZ2VTaXplOlt7dHlwZTpSX31dLHBhZ2VTaXplT3B0aW9uczpbe3R5cGU6Ul99XSxoaWRlUGFnZVNpemU6W3t0eXBlOlJffV0sc2hvd0ZpcnN0TGFzdEJ1dHRvbnM6W3t0eXBlOlJffV0scGFnZTpbe3R5cGU6RV99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih0MSxbe3R5cGU6a199XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6WDB9LHt0eXBlOk9ifSx7dHlwZTp2b2lkIDB9XX0pLHtwYWdlOlt7dHlwZTpFX31dLHBhZ2VJbmRleDpbe3R5cGU6Ul99XSxsZW5ndGg6W3t0eXBlOlJffV0scGFnZVNpemU6W3t0eXBlOlJffV0scGFnZVNpemVPcHRpb25zOlt7dHlwZTpSX31dLGhpZGVQYWdlU2l6ZTpbe3R5cGU6Ul99XSxzaG93Rmlyc3RMYXN0QnV0dG9uczpbe3R5cGU6Ul99XSxjb2xvcjpbe3R5cGU6Ul99XX0pO2NsYXNzIGUxIGV4dGVuZHMgdDF7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKHQsZSxuKSxuJiZudWxsIT1uLmZvcm1GaWVsZEFwcGVhcmFuY2UmJih0aGlzLl9mb3JtRmllbGRBcHBlYXJhbmNlPW4uZm9ybUZpZWxkQXBwZWFyYW5jZSl9fWUxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxlMSkoZ2YoWDApLGdmKE9iKSxnZihRMCw4KSl9LGUxLsm1Y21wPXNvKHt0eXBlOmUxLHNlbGVjdG9yczpbWyJtYXQtcGFnaW5hdG9yIl1dLGhvc3RBdHRyczpbInJvbGUiLCJncm91cCIsMSwibWF0LXBhZ2luYXRvciJdLGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIn0sZXhwb3J0QXM6WyJtYXRQYWdpbmF0b3IiXSxmZWF0dXJlczpbUXBdLGRlY2xzOjE0LHZhcnM6MTQsY29uc3RzOltbMSwibWF0LXBhZ2luYXRvci1vdXRlci1jb250YWluZXIiXSxbMSwibWF0LXBhZ2luYXRvci1jb250YWluZXIiXSxbImNsYXNzIiwibWF0LXBhZ2luYXRvci1wYWdlLXNpemUiLDQsIm5nSWYiXSxbMSwibWF0LXBhZ2luYXRvci1yYW5nZS1hY3Rpb25zIl0sWzEsIm1hdC1wYWdpbmF0b3ItcmFuZ2UtbGFiZWwiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsInR5cGUiLCJidXR0b24iLCJjbGFzcyIsIm1hdC1wYWdpbmF0b3ItbmF2aWdhdGlvbi1maXJzdCIsMywibWF0VG9vbHRpcCIsIm1hdFRvb2x0aXBEaXNhYmxlZCIsIm1hdFRvb2x0aXBQb3NpdGlvbiIsImRpc2FibGVkIiwiY2xpY2siLDQsIm5nSWYiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsInR5cGUiLCJidXR0b24iLDEsIm1hdC1wYWdpbmF0b3ItbmF2aWdhdGlvbi1wcmV2aW91cyIsMywibWF0VG9vbHRpcCIsIm1hdFRvb2x0aXBEaXNhYmxlZCIsIm1hdFRvb2x0aXBQb3NpdGlvbiIsImRpc2FibGVkIiwiY2xpY2siXSxbInZpZXdCb3giLCIwIDAgMjQgMjQiLCJmb2N1c2FibGUiLCJmYWxzZSIsMSwibWF0LXBhZ2luYXRvci1pY29uIl0sWyJkIiwiTTE1LjQxIDcuNDFMMTQgNmwtNiA2IDYgNiAxLjQxLTEuNDFMMTAuODMgMTJ6Il0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJ0eXBlIiwiYnV0dG9uIiwxLCJtYXQtcGFnaW5hdG9yLW5hdmlnYXRpb24tbmV4dCIsMywibWF0VG9vbHRpcCIsIm1hdFRvb2x0aXBEaXNhYmxlZCIsIm1hdFRvb2x0aXBQb3NpdGlvbiIsImRpc2FibGVkIiwiY2xpY2siXSxbImQiLCJNMTAgNkw4LjU5IDcuNDEgMTMuMTcgMTJsLTQuNTggNC41OUwxMCAxOGw2LTZ6Il0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJ0eXBlIiwiYnV0dG9uIiwiY2xhc3MiLCJtYXQtcGFnaW5hdG9yLW5hdmlnYXRpb24tbGFzdCIsMywibWF0VG9vbHRpcCIsIm1hdFRvb2x0aXBEaXNhYmxlZCIsIm1hdFRvb2x0aXBQb3NpdGlvbiIsImRpc2FibGVkIiwiY2xpY2siLDQsIm5nSWYiXSxbMSwibWF0LXBhZ2luYXRvci1wYWdlLXNpemUiXSxbMSwibWF0LXBhZ2luYXRvci1wYWdlLXNpemUtbGFiZWwiXSxbImNsYXNzIiwibWF0LXBhZ2luYXRvci1wYWdlLXNpemUtc2VsZWN0IiwzLCJhcHBlYXJhbmNlIiwiY29sb3IiLDQsIm5nSWYiXSxbImNsYXNzIiwibWF0LXBhZ2luYXRvci1wYWdlLXNpemUtdmFsdWUiLDQsIm5nSWYiXSxbMSwibWF0LXBhZ2luYXRvci1wYWdlLXNpemUtc2VsZWN0IiwzLCJhcHBlYXJhbmNlIiwiY29sb3IiXSxbMywidmFsdWUiLCJkaXNhYmxlZCIsImFyaWEtbGFiZWwiLCJzZWxlY3Rpb25DaGFuZ2UiXSxbMywidmFsdWUiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJ2YWx1ZSJdLFsxLCJtYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZS12YWx1ZSJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwidHlwZSIsImJ1dHRvbiIsMSwibWF0LXBhZ2luYXRvci1uYXZpZ2F0aW9uLWZpcnN0IiwzLCJtYXRUb29sdGlwIiwibWF0VG9vbHRpcERpc2FibGVkIiwibWF0VG9vbHRpcFBvc2l0aW9uIiwiZGlzYWJsZWQiLCJjbGljayJdLFsiZCIsIk0xOC40MSAxNi41OUwxMy44MiAxMmw0LjU5LTQuNTlMMTcgNmwtNiA2IDYgNnpNNiA2aDJ2MTJINnoiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsInR5cGUiLCJidXR0b24iLDEsIm1hdC1wYWdpbmF0b3ItbmF2aWdhdGlvbi1sYXN0IiwzLCJtYXRUb29sdGlwIiwibWF0VG9vbHRpcERpc2FibGVkIiwibWF0VG9vbHRpcFBvc2l0aW9uIiwiZGlzYWJsZWQiLCJjbGljayJdLFsiZCIsIk01LjU5IDcuNDFMMTAuMTggMTJsLTQuNTkgNC41OUw3IDE4bDYtNi02LTZ6TTE2IDZoMnYxMmgtMnoiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKENmKDAsImRpdiIsMCksQ2YoMSwiZGl2IiwxKSxIbSgyLFkwLDUsMywiZGl2IiwyKSxDZigzLCJkaXYiLDMpLENmKDQsImRpdiIsNCksUHUoNSksTWYoKSxIbSg2LHEwLDMsNSwiYnV0dG9uIiw1KSxDZig3LCJidXR0b24iLDYpLFJmKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5wcmV2aW91c1BhZ2UoKX0pKSxvYSgpLENmKDgsInN2ZyIsNyksdmYoOSwicGF0aCIsOCksTWYoKSxNZigpLGFhKCksQ2YoMTAsImJ1dHRvbiIsOSksUmYoImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm5leHRQYWdlKCl9KSksb2EoKSxDZigxMSwic3ZnIiw3KSx2ZigxMiwicGF0aCIsMTApLE1mKCksTWYoKSxIbSgxMyxaMCwzLDUsImJ1dHRvbiIsMTEpLE1mKCksTWYoKSxNZigpKSwyJmUmJihEYygyKSxiZigibmdJZiIsIW4uaGlkZVBhZ2VTaXplKSxEYygzKSxrdSgiICIsbi5faW50bC5nZXRSYW5nZUxhYmVsKG4ucGFnZUluZGV4LG4ucGFnZVNpemUsbi5sZW5ndGgpLCIgIiksRGMoMSksYmYoIm5nSWYiLG4uc2hvd0ZpcnN0TGFzdEJ1dHRvbnMpLERjKDEpLGJmKCJtYXRUb29sdGlwIixuLl9pbnRsLnByZXZpb3VzUGFnZUxhYmVsKSgibWF0VG9vbHRpcERpc2FibGVkIixuLl9wcmV2aW91c0J1dHRvbnNEaXNhYmxlZCgpKSgibWF0VG9vbHRpcFBvc2l0aW9uIiwiYWJvdmUiKSgiZGlzYWJsZWQiLG4uX3ByZXZpb3VzQnV0dG9uc0Rpc2FibGVkKCkpLHltKCJhcmlhLWxhYmVsIixuLl9pbnRsLnByZXZpb3VzUGFnZUxhYmVsKSxEYygzKSxiZigibWF0VG9vbHRpcCIsbi5faW50bC5uZXh0UGFnZUxhYmVsKSgibWF0VG9vbHRpcERpc2FibGVkIixuLl9uZXh0QnV0dG9uc0Rpc2FibGVkKCkpKCJtYXRUb29sdGlwUG9zaXRpb24iLCJhYm92ZSIpKCJkaXNhYmxlZCIsbi5fbmV4dEJ1dHRvbnNEaXNhYmxlZCgpKSx5bSgiYXJpYS1sYWJlbCIsbi5faW50bC5uZXh0UGFnZUxhYmVsKSxEYygzKSxiZigibmdJZiIsbi5zaG93Rmlyc3RMYXN0QnV0dG9ucykpfSxkaXJlY3RpdmVzOltQdixOTCxMMCxfVSxPWSx4dixQTF0sc3R5bGVzOlsiLm1hdC1wYWdpbmF0b3J7ZGlzcGxheTpibG9ja30ubWF0LXBhZ2luYXRvci1vdXRlci1jb250YWluZXJ7ZGlzcGxheTpmbGV4fS5tYXQtcGFnaW5hdG9yLWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtwYWRkaW5nOjAgOHB4O2ZsZXgtd3JhcDp3cmFwLXJldmVyc2U7d2lkdGg6MTAwJX0ubWF0LXBhZ2luYXRvci1wYWdlLXNpemV7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmJhc2VsaW5lO21hcmdpbi1yaWdodDo4cHh9W2Rpcj1ydGxdIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZXttYXJnaW4tcmlnaHQ6MDttYXJnaW4tbGVmdDo4cHh9Lm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplLWxhYmVse21hcmdpbjowIDRweH0ubWF0LXBhZ2luYXRvci1wYWdlLXNpemUtc2VsZWN0e21hcmdpbjo2cHggNHB4IDAgNHB4O3dpZHRoOjU2cHh9Lm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmV7d2lkdGg6NjRweH0ubWF0LXBhZ2luYXRvci1wYWdlLXNpemUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbHt3aWR0aDo2NHB4fS5tYXQtcGFnaW5hdG9yLXJhbmdlLWxhYmVse21hcmdpbjowIDMycHggMCAyNHB4fS5tYXQtcGFnaW5hdG9yLXJhbmdlLWFjdGlvbnN7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0ubWF0LXBhZ2luYXRvci1pY29ue3dpZHRoOjI4cHg7ZmlsbDpjdXJyZW50Q29sb3J9W2Rpcj1ydGxdIC5tYXQtcGFnaW5hdG9yLWljb257dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1wYWdpbmF0b3ItaWNvbntmaWxsOkNhbnZhc1RleHR9XG4iXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxlMS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlgwfSx7dHlwZTpPYn0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltRMF19XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZTEsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibWF0LXBhZ2luYXRvciIsZXhwb3J0QXM6Im1hdFBhZ2luYXRvciIsdGVtcGxhdGU6JzxkaXYgY2xhc3M9Im1hdC1wYWdpbmF0b3Itb3V0ZXItY29udGFpbmVyIj5cbiAgPGRpdiBjbGFzcz0ibWF0LXBhZ2luYXRvci1jb250YWluZXIiPlxuICAgIDxkaXYgY2xhc3M9Im1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIiAqbmdJZj0iIWhpZGVQYWdlU2l6ZSI+XG4gICAgICA8ZGl2IGNsYXNzPSJtYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZS1sYWJlbCI+XG4gICAgICAgIHt7X2ludGwuaXRlbXNQZXJQYWdlTGFiZWx9fVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxtYXQtZm9ybS1maWVsZFxuICAgICAgICAqbmdJZj0iX2Rpc3BsYXllZFBhZ2VTaXplT3B0aW9ucy5sZW5ndGggPiAxIlxuICAgICAgICBbYXBwZWFyYW5jZV09Il9mb3JtRmllbGRBcHBlYXJhbmNlISJcbiAgICAgICAgW2NvbG9yXT0iY29sb3IiXG4gICAgICAgIGNsYXNzPSJtYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZS1zZWxlY3QiPlxuICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgIFt2YWx1ZV09InBhZ2VTaXplIlxuICAgICAgICAgIFtkaXNhYmxlZF09ImRpc2FibGVkIlxuICAgICAgICAgIFthcmlhLWxhYmVsXT0iX2ludGwuaXRlbXNQZXJQYWdlTGFiZWwiXG4gICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9Il9jaGFuZ2VQYWdlU2l6ZSgkZXZlbnQudmFsdWUpIj5cbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9ImxldCBwYWdlU2l6ZU9wdGlvbiBvZiBfZGlzcGxheWVkUGFnZVNpemVPcHRpb25zIiBbdmFsdWVdPSJwYWdlU2l6ZU9wdGlvbiI+XG4gICAgICAgICAgICB7e3BhZ2VTaXplT3B0aW9ufX1cbiAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9Im1hdC1wYWdpbmF0b3ItcGFnZS1zaXplLXZhbHVlIlxuICAgICAgICAqbmdJZj0iX2Rpc3BsYXllZFBhZ2VTaXplT3B0aW9ucy5sZW5ndGggPD0gMSI+e3twYWdlU2l6ZX19PC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPSJtYXQtcGFnaW5hdG9yLXJhbmdlLWFjdGlvbnMiPlxuICAgICAgPGRpdiBjbGFzcz0ibWF0LXBhZ2luYXRvci1yYW5nZS1sYWJlbCI+XG4gICAgICAgIHt7X2ludGwuZ2V0UmFuZ2VMYWJlbChwYWdlSW5kZXgsIHBhZ2VTaXplLCBsZW5ndGgpfX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiB0eXBlPSJidXR0b24iXG4gICAgICAgICAgICAgIGNsYXNzPSJtYXQtcGFnaW5hdG9yLW5hdmlnYXRpb24tZmlyc3QiXG4gICAgICAgICAgICAgIChjbGljayk9ImZpcnN0UGFnZSgpIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT0iX2ludGwuZmlyc3RQYWdlTGFiZWwiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT0iX2ludGwuZmlyc3RQYWdlTGFiZWwiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwRGlzYWJsZWRdPSJfcHJldmlvdXNCdXR0b25zRGlzYWJsZWQoKSJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBQb3NpdGlvbl09IlwnYWJvdmVcJyJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT0iX3ByZXZpb3VzQnV0dG9uc0Rpc2FibGVkKCkiXG4gICAgICAgICAgICAgICpuZ0lmPSJzaG93Rmlyc3RMYXN0QnV0dG9ucyI+XG4gICAgICAgIDxzdmcgY2xhc3M9Im1hdC1wYWdpbmF0b3ItaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmb2N1c2FibGU9ImZhbHNlIj5cbiAgICAgICAgICA8cGF0aCBkPSJNMTguNDEgMTYuNTlMMTMuODIgMTJsNC41OS00LjU5TDE3IDZsLTYgNiA2IDZ6TTYgNmgydjEySDZ6Ii8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiB0eXBlPSJidXR0b24iXG4gICAgICAgICAgICAgIGNsYXNzPSJtYXQtcGFnaW5hdG9yLW5hdmlnYXRpb24tcHJldmlvdXMiXG4gICAgICAgICAgICAgIChjbGljayk9InByZXZpb3VzUGFnZSgpIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT0iX2ludGwucHJldmlvdXNQYWdlTGFiZWwiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT0iX2ludGwucHJldmlvdXNQYWdlTGFiZWwiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwRGlzYWJsZWRdPSJfcHJldmlvdXNCdXR0b25zRGlzYWJsZWQoKSJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBQb3NpdGlvbl09IlwnYWJvdmVcJyJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT0iX3ByZXZpb3VzQnV0dG9uc0Rpc2FibGVkKCkiPlxuICAgICAgICA8c3ZnIGNsYXNzPSJtYXQtcGFnaW5hdG9yLWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZm9jdXNhYmxlPSJmYWxzZSI+XG4gICAgICAgICAgPHBhdGggZD0iTTE1LjQxIDcuNDFMMTQgNmwtNiA2IDYgNiAxLjQxLTEuNDFMMTAuODMgMTJ6Ii8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiB0eXBlPSJidXR0b24iXG4gICAgICAgICAgICAgIGNsYXNzPSJtYXQtcGFnaW5hdG9yLW5hdmlnYXRpb24tbmV4dCJcbiAgICAgICAgICAgICAgKGNsaWNrKT0ibmV4dFBhZ2UoKSJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09Il9pbnRsLm5leHRQYWdlTGFiZWwiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT0iX2ludGwubmV4dFBhZ2VMYWJlbCJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBEaXNhYmxlZF09Il9uZXh0QnV0dG9uc0Rpc2FibGVkKCkiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwUG9zaXRpb25dPSJcJ2Fib3ZlXCciXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09Il9uZXh0QnV0dG9uc0Rpc2FibGVkKCkiPlxuICAgICAgICA8c3ZnIGNsYXNzPSJtYXQtcGFnaW5hdG9yLWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZm9jdXNhYmxlPSJmYWxzZSI+XG4gICAgICAgICAgPHBhdGggZD0iTTEwIDZMOC41OSA3LjQxIDEzLjE3IDEybC00LjU4IDQuNTlMMTAgMThsNi02eiIvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gdHlwZT0iYnV0dG9uIlxuICAgICAgICAgICAgICBjbGFzcz0ibWF0LXBhZ2luYXRvci1uYXZpZ2F0aW9uLWxhc3QiXG4gICAgICAgICAgICAgIChjbGljayk9Imxhc3RQYWdlKCkiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPSJfaW50bC5sYXN0UGFnZUxhYmVsIlxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09Il9pbnRsLmxhc3RQYWdlTGFiZWwiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwRGlzYWJsZWRdPSJfbmV4dEJ1dHRvbnNEaXNhYmxlZCgpIlxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT0iXCdhYm92ZVwnIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPSJfbmV4dEJ1dHRvbnNEaXNhYmxlZCgpIlxuICAgICAgICAgICAgICAqbmdJZj0ic2hvd0ZpcnN0TGFzdEJ1dHRvbnMiPlxuICAgICAgICA8c3ZnIGNsYXNzPSJtYXQtcGFnaW5hdG9yLWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZm9jdXNhYmxlPSJmYWxzZSI+XG4gICAgICAgICAgPHBhdGggZD0iTTUuNTkgNy40MUwxMC4xOCAxMmwtNC41OSA0LjU5TDcgMThsNi02LTYtNnpNMTYgNmgydjEyaC0yeiIvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuJyxpbnB1dHM6WyJkaXNhYmxlZCJdLGhvc3Q6e2NsYXNzOiJtYXQtcGFnaW5hdG9yIixyb2xlOiJncm91cCJ9LGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2gsZW5jYXBzdWxhdGlvbjpXbi5Ob25lLHN0eWxlczpbIi5tYXQtcGFnaW5hdG9ye2Rpc3BsYXk6YmxvY2t9Lm1hdC1wYWdpbmF0b3Itb3V0ZXItY29udGFpbmVye2Rpc3BsYXk6ZmxleH0ubWF0LXBhZ2luYXRvci1jb250YWluZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7cGFkZGluZzowIDhweDtmbGV4LXdyYXA6d3JhcC1yZXZlcnNlO3dpZHRoOjEwMCV9Lm1hdC1wYWdpbmF0b3ItcGFnZS1zaXple2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpiYXNlbGluZTttYXJnaW4tcmlnaHQ6OHB4fVtkaXI9cnRsXSAubWF0LXBhZ2luYXRvci1wYWdlLXNpemV7bWFyZ2luLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6OHB4fS5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZS1sYWJlbHttYXJnaW46MCA0cHh9Lm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplLXNlbGVjdHttYXJnaW46NnB4IDRweCAwIDRweDt3aWR0aDo1NnB4fS5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5le3dpZHRoOjY0cHh9Lm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGx7d2lkdGg6NjRweH0ubWF0LXBhZ2luYXRvci1yYW5nZS1sYWJlbHttYXJnaW46MCAzMnB4IDAgMjRweH0ubWF0LXBhZ2luYXRvci1yYW5nZS1hY3Rpb25ze2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9Lm1hdC1wYWdpbmF0b3ItaWNvbnt3aWR0aDoyOHB4O2ZpbGw6Y3VycmVudENvbG9yfVtkaXI9cnRsXSAubWF0LXBhZ2luYXRvci1pY29ue3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtcGFnaW5hdG9yLWljb257ZmlsbDpDYW52YXNUZXh0fVxuIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpYMH0se3R5cGU6T2J9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbUTBdfV19XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgbjF7fW4xLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxuMSl9LG4xLsm1bW9kPWZvKHt0eXBlOm4xfSksbjEuybVpbmo9RG4oe3Byb3ZpZGVyczpbSzBdLGltcG9ydHM6W1tyeCxJTCxQWSxqMCxORl1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihuMSxbe3R5cGU6TF8sYXJnczpbe2ltcG9ydHM6W3J4LElMLFBZLGowLE5GXSxleHBvcnRzOltlMV0sZGVjbGFyYXRpb25zOltlMV0scHJvdmlkZXJzOltLMF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhuMSx7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW2UxXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltyeCxJTCxQWSxqMCxORl19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bZTFdfX0pO2Z1bmN0aW9uIG8xKHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwiZGl2IiwzKSxSZigiQGFycm93UG9zaXRpb24uc3RhcnQiLChmdW5jdGlvbiBlKCl7UGkodCk7cmV0dXJuIHpmKCkuX2Rpc2FibGVWaWV3U3RhdGVBbmltYXRpb249ITB9KSkoIkBhcnJvd1Bvc2l0aW9uLmRvbmUiLChmdW5jdGlvbiBlKCl7UGkodCk7cmV0dXJuIHpmKCkuX2Rpc2FibGVWaWV3U3RhdGVBbmltYXRpb249ITF9KSksdmYoMSwiZGl2Iiw0KSxDZigyLCJkaXYiLDUpLHZmKDMsImRpdiIsNiksdmYoNCwiZGl2Iiw3KSx2Zig1LCJkaXYiLDgpLE1mKCksTWYoKX1pZigyJnQpe2NvbnN0IHQ9emYoKTtiZigiQGFycm93T3BhY2l0eSIsdC5fZ2V0QXJyb3dWaWV3U3RhdGUoKSkoIkBhcnJvd1Bvc2l0aW9uIix0Ll9nZXRBcnJvd1ZpZXdTdGF0ZSgpKSgiQGFsbG93Q2hpbGRyZW4iLHQuX2dldEFycm93RGlyZWN0aW9uU3RhdGUoKSksRGMoMiksYmYoIkBpbmRpY2F0b3IiLHQuX2dldEFycm93RGlyZWN0aW9uU3RhdGUoKSksRGMoMSksYmYoIkBsZWZ0UG9pbnRlciIsdC5fZ2V0QXJyb3dEaXJlY3Rpb25TdGF0ZSgpKSxEYygxKSxiZigiQHJpZ2h0UG9pbnRlciIsdC5fZ2V0QXJyb3dEaXJlY3Rpb25TdGF0ZSgpKX19Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCBpMT1uZXcgZXIoIk1BVF9TT1JUX0RFRkFVTFRfT1BUSU9OUyIpLGExPUJGKHpGKGNsYXNze30pKTtjbGFzcyByMSBleHRlbmRzIGExe2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5fZGVmYXVsdE9wdGlvbnM9dCx0aGlzLnNvcnRhYmxlcz1uZXcgTWFwLHRoaXMuX3N0YXRlQ2hhbmdlcz1uZXcgQix0aGlzLnN0YXJ0PSJhc2MiLHRoaXMuX2RpcmVjdGlvbj0iIix0aGlzLnNvcnRDaGFuZ2U9bmV3IFN5fWdldCBkaXJlY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGlyZWN0aW9ufXNldCBkaXJlY3Rpb24odCl7aWYodCYmImFzYyIhPT10JiYiZGVzYyIhPT10JiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3coZnVuY3Rpb24gZSh0KXtyZXR1cm4gRXJyb3IoYCR7dH0gaXMgbm90IGEgdmFsaWQgc29ydCBkaXJlY3Rpb24gKCdhc2MnIG9yICdkZXNjJykuYCl9KSh0KTt0aGlzLl9kaXJlY3Rpb249dH1nZXQgZGlzYWJsZUNsZWFyKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVDbGVhcn1zZXQgZGlzYWJsZUNsZWFyKHQpe3RoaXMuX2Rpc2FibGVDbGVhcj1lSCh0KX1yZWdpc3Rlcih0KXtpZigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKXtpZighdC5pZCl0aHJvdyhmdW5jdGlvbiBlKCl7cmV0dXJuIEVycm9yKCJNYXRTb3J0SGVhZGVyIG11c3QgYmUgcHJvdmlkZWQgd2l0aCBhIHVuaXF1ZSBpZC4iKX0pKCk7aWYodGhpcy5zb3J0YWJsZXMuaGFzKHQuaWQpKXRocm93KGZ1bmN0aW9uIG4odCl7cmV0dXJuIEVycm9yKGBDYW5ub3QgaGF2ZSB0d28gTWF0U29ydGFibGVzIHdpdGggdGhlIHNhbWUgaWQgKCR7dH0pLmApfSkodC5pZCl9dGhpcy5zb3J0YWJsZXMuc2V0KHQuaWQsdCl9ZGVyZWdpc3Rlcih0KXt0aGlzLnNvcnRhYmxlcy5kZWxldGUodC5pZCl9c29ydCh0KXt0aGlzLmFjdGl2ZSE9dC5pZD8odGhpcy5hY3RpdmU9dC5pZCx0aGlzLmRpcmVjdGlvbj10LnN0YXJ0P3Quc3RhcnQ6dGhpcy5zdGFydCk6dGhpcy5kaXJlY3Rpb249dGhpcy5nZXROZXh0U29ydERpcmVjdGlvbih0KSx0aGlzLnNvcnRDaGFuZ2UuZW1pdCh7YWN0aXZlOnRoaXMuYWN0aXZlLGRpcmVjdGlvbjp0aGlzLmRpcmVjdGlvbn0pfWdldE5leHRTb3J0RGlyZWN0aW9uKHQpe3ZhciBlLG4sbztpZighdClyZXR1cm4iIjtjb25zdCBpPW51bGwhPT0obj1udWxsIT09KGU9bnVsbD09dD92b2lkIDA6dC5kaXNhYmxlQ2xlYXIpJiZ2b2lkIDAhPT1lP2U6dGhpcy5kaXNhYmxlQ2xlYXIpJiZ2b2lkIDAhPT1uP246ISEobnVsbD09PShvPXRoaXMuX2RlZmF1bHRPcHRpb25zKXx8dm9pZCAwPT09bz92b2lkIDA6by5kaXNhYmxlQ2xlYXIpO2xldCBhPShmdW5jdGlvbiByKHQsZSl7bGV0IG49WyJhc2MiLCJkZXNjIl07ImRlc2MiPT10JiZuLnJldmVyc2UoKTtlfHxuLnB1c2goIiIpO3JldHVybiBufQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8pKHQuc3RhcnR8fHRoaXMuc3RhcnQsaSkscz1hLmluZGV4T2YodGhpcy5kaXJlY3Rpb24pKzE7cmV0dXJuIHM+PWEubGVuZ3RoJiYocz0wKSxhW3NdfW5nT25Jbml0KCl7dGhpcy5fbWFya0luaXRpYWxpemVkKCl9bmdPbkNoYW5nZXMoKXt0aGlzLl9zdGF0ZUNoYW5nZXMubmV4dCgpfW5nT25EZXN0cm95KCl7dGhpcy5fc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCl9fXIxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxyMSkoZ2YoaTEsOCkpfSxyMS7JtWRpcj1obyh7dHlwZTpyMSxzZWxlY3RvcnM6W1siIiwibWF0U29ydCIsIiJdXSxob3N0QXR0cnM6WzEsIm1hdC1zb3J0Il0saW5wdXRzOntkaXNhYmxlZDpbIm1hdFNvcnREaXNhYmxlZCIsImRpc2FibGVkIl0sc3RhcnQ6WyJtYXRTb3J0U3RhcnQiLCJzdGFydCJdLGRpcmVjdGlvbjpbIm1hdFNvcnREaXJlY3Rpb24iLCJkaXJlY3Rpb24iXSxkaXNhYmxlQ2xlYXI6WyJtYXRTb3J0RGlzYWJsZUNsZWFyIiwiZGlzYWJsZUNsZWFyIl0sYWN0aXZlOlsibWF0U29ydEFjdGl2ZSIsImFjdGl2ZSJdfSxvdXRwdXRzOntzb3J0Q2hhbmdlOiJtYXRTb3J0Q2hhbmdlIn0sZXhwb3J0QXM6WyJtYXRTb3J0Il0sZmVhdHVyZXM6W1FwLHFvXX0pLHIxLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltpMV19XX1dLHIxLnByb3BEZWNvcmF0b3JzPXthY3RpdmU6W3t0eXBlOlJfLGFyZ3M6WyJtYXRTb3J0QWN0aXZlIl19XSxzdGFydDpbe3R5cGU6Ul8sYXJnczpbIm1hdFNvcnRTdGFydCJdfV0sZGlyZWN0aW9uOlt7dHlwZTpSXyxhcmdzOlsibWF0U29ydERpcmVjdGlvbiJdfV0sZGlzYWJsZUNsZWFyOlt7dHlwZTpSXyxhcmdzOlsibWF0U29ydERpc2FibGVDbGVhciJdfV0sc29ydENoYW5nZTpbe3R5cGU6RV8sYXJnczpbIm1hdFNvcnRDaGFuZ2UiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHIxLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IlttYXRTb3J0XSIsZXhwb3J0QXM6Im1hdFNvcnQiLGhvc3Q6e2NsYXNzOiJtYXQtc29ydCJ9LGlucHV0czpbImRpc2FibGVkOiBtYXRTb3J0RGlzYWJsZWQiXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbaTFdfV19XX0pLHtzdGFydDpbe3R5cGU6Ul8sYXJnczpbIm1hdFNvcnRTdGFydCJdfV0sc29ydENoYW5nZTpbe3R5cGU6RV8sYXJnczpbIm1hdFNvcnRDaGFuZ2UiXX1dLGRpcmVjdGlvbjpbe3R5cGU6Ul8sYXJnczpbIm1hdFNvcnREaXJlY3Rpb24iXX1dLGRpc2FibGVDbGVhcjpbe3R5cGU6Ul8sYXJnczpbIm1hdFNvcnREaXNhYmxlQ2xlYXIiXX1dLGFjdGl2ZTpbe3R5cGU6Ul8sYXJnczpbIm1hdFNvcnRBY3RpdmUiXX1dfSk7Y29uc3QgczE9UkYuRU5URVJJTkcrIiAiK0RGLlNUQU5EQVJEX0NVUlZFLGwxPXtpbmRpY2F0b3I6eE8oImluZGljYXRvciIsW2tPKCJhY3RpdmUtYXNjLCBhc2MiLHdPKHt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoMHB4KSJ9KSksa08oImFjdGl2ZS1kZXNjLCBkZXNjIix3Tyh7dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKDEwcHgpIn0pKSxETygiYWN0aXZlLWFzYyA8PT4gYWN0aXZlLWRlc2MiLE9PKHMxKSldKSxsZWZ0UG9pbnRlcjp4TygibGVmdFBvaW50ZXIiLFtrTygiYWN0aXZlLWFzYywgYXNjIix3Tyh7dHJhbnNmb3JtOiJyb3RhdGUoLTQ1ZGVnKSJ9KSksa08oImFjdGl2ZS1kZXNjLCBkZXNjIix3Tyh7dHJhbnNmb3JtOiJyb3RhdGUoNDVkZWcpIn0pKSxETygiYWN0aXZlLWFzYyA8PT4gYWN0aXZlLWRlc2MiLE9PKHMxKSldKSxyaWdodFBvaW50ZXI6eE8oInJpZ2h0UG9pbnRlciIsW2tPKCJhY3RpdmUtYXNjLCBhc2MiLHdPKHt0cmFuc2Zvcm06InJvdGF0ZSg0NWRlZykifSkpLGtPKCJhY3RpdmUtZGVzYywgZGVzYyIsd08oe3RyYW5zZm9ybToicm90YXRlKC00NWRlZykifSkpLERPKCJhY3RpdmUtYXNjIDw9PiBhY3RpdmUtZGVzYyIsT08oczEpKV0pLGFycm93T3BhY2l0eTp4TygiYXJyb3dPcGFjaXR5Iixba08oImRlc2MtdG8tYWN0aXZlLCBhc2MtdG8tYWN0aXZlLCBhY3RpdmUiLHdPKHtvcGFjaXR5OjF9KSksa08oImRlc2MtdG8taGludCwgYXNjLXRvLWhpbnQsIGhpbnQiLHdPKHtvcGFjaXR5Oi41NH0pKSxrTygiaGludC10by1kZXNjLCBhY3RpdmUtdG8tZGVzYywgZGVzYywgaGludC10by1hc2MsIGFjdGl2ZS10by1hc2MsIGFzYywgdm9pZCIsd08oe29wYWNpdHk6MH0pKSxETygiKiA9PiBhc2MsICogPT4gZGVzYywgKiA9PiBhY3RpdmUsICogPT4gaGludCwgKiA9PiB2b2lkIixPTygiMG1zIikpLERPKCIqIDw9PiAqIixPTyhzMSkpXSksYXJyb3dQb3NpdGlvbjp4TygiYXJyb3dQb3NpdGlvbiIsW0RPKCIqID0+IGRlc2MtdG8taGludCwgKiA9PiBkZXNjLXRvLWFjdGl2ZSIsT08oczEsU08oW3dPKHt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoLTI1JSkifSksd08oe3RyYW5zZm9ybToidHJhbnNsYXRlWSgwKSJ9KV0pKSksRE8oIiogPT4gaGludC10by1kZXNjLCAqID0+IGFjdGl2ZS10by1kZXNjIixPTyhzMSxTTyhbd08oe3RyYW5zZm9ybToidHJhbnNsYXRlWSgwKSJ9KSx3Tyh7dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKDI1JSkifSldKSkpLERPKCIqID0+IGFzYy10by1oaW50LCAqID0+IGFzYy10by1hY3RpdmUiLE9PKHMxLFNPKFt3Tyh7dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKDI1JSkifSksd08oe3RyYW5zZm9ybToidHJhbnNsYXRlWSgwKSJ9KV0pKSksRE8oIiogPT4gaGludC10by1hc2MsICogPT4gYWN0aXZlLXRvLWFzYyIsT08oczEsU08oW3dPKHt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoMCkifSksd08oe3RyYW5zZm9ybToidHJhbnNsYXRlWSgtMjUlKSJ9KV0pKSksa08oImRlc2MtdG8taGludCwgYXNjLXRvLWhpbnQsIGhpbnQsIGRlc2MtdG8tYWN0aXZlLCBhc2MtdG8tYWN0aXZlLCBhY3RpdmUiLHdPKHt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoMCkifSkpLGtPKCJoaW50LXRvLWRlc2MsIGFjdGl2ZS10by1kZXNjLCBkZXNjIix3Tyh7dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC0yNSUpIn0pKSxrTygiaGludC10by1hc2MsIGFjdGl2ZS10by1hc2MsIGFzYyIsd08oe3RyYW5zZm9ybToidHJhbnNsYXRlWSgyNSUpIn0pKV0pLGFsbG93Q2hpbGRyZW46eE8oImFsbG93Q2hpbGRyZW4iLFtETygiKiA8PT4gKiIsW0VPKCJAKiIsUk8oKSx7b3B0aW9uYWw6ITB9KV0pXSl9OwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgYzF7Y29uc3RydWN0b3IoKXt0aGlzLmNoYW5nZXM9bmV3IEJ9fWMxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxjMSl9LGMxLsm1cHJvdj1Tbih7ZmFjdG9yeTpmdW5jdGlvbiB0KCl7cmV0dXJuIG5ldyBjMX0sdG9rZW46YzEscHJvdmlkZWRJbjoicm9vdCJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGMxLFt7dHlwZTpVbSxhcmdzOlt7cHJvdmlkZWRJbjoicm9vdCJ9XX1dLChmdW5jdGlvbigpe3JldHVybltdfSksbnVsbCk7Y29uc3QgZDE9e3Byb3ZpZGU6YzEsZGVwczpbW25ldyBCcixuZXcganIsYzFdXSx1c2VGYWN0b3J5OmZ1bmN0aW9uIHAxKHQpe3JldHVybiB0fHxuZXcgYzF9fSxtMT16RihjbGFzc3t9KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY2xhc3MgZjEgZXh0ZW5kcyBtMXtjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSl7aWYoc3VwZXIoKSx0aGlzLl9pbnRsPXQsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9ZSx0aGlzLl9zb3J0PW4sdGhpcy5fY29sdW1uRGVmPW8sdGhpcy5fZm9jdXNNb25pdG9yPWksdGhpcy5fZWxlbWVudFJlZj1hLHRoaXMuX3Nob3dJbmRpY2F0b3JIaW50PSExLHRoaXMuX3ZpZXdTdGF0ZT17fSx0aGlzLl9hcnJvd0RpcmVjdGlvbj0iIix0aGlzLl9kaXNhYmxlVmlld1N0YXRlQW5pbWF0aW9uPSExLHRoaXMuYXJyb3dQb3NpdGlvbj0iYWZ0ZXIiLCFuJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3coZnVuY3Rpb24gcigpe3JldHVybiBFcnJvcigiTWF0U29ydEhlYWRlciBtdXN0IGJlIHBsYWNlZCB3aXRoaW4gYSBwYXJlbnQgZWxlbWVudCB3aXRoIHRoZSBNYXRTb3J0IGRpcmVjdGl2ZS4iKX0pKCk7dGhpcy5faGFuZGxlU3RhdGVDaGFuZ2VzKCl9Z2V0IGRpc2FibGVDbGVhcigpe3JldHVybiB0aGlzLl9kaXNhYmxlQ2xlYXJ9c2V0IGRpc2FibGVDbGVhcih0KXt0aGlzLl9kaXNhYmxlQ2xlYXI9ZUgodCl9bmdPbkluaXQoKXshdGhpcy5pZCYmdGhpcy5fY29sdW1uRGVmJiYodGhpcy5pZD10aGlzLl9jb2x1bW5EZWYubmFtZSksdGhpcy5fdXBkYXRlQXJyb3dEaXJlY3Rpb24oKSx0aGlzLl9zZXRBbmltYXRpb25UcmFuc2l0aW9uU3RhdGUoe3RvU3RhdGU6dGhpcy5faXNTb3J0ZWQoKT8iYWN0aXZlIjp0aGlzLl9hcnJvd0RpcmVjdGlvbn0pLHRoaXMuX3NvcnQucmVnaXN0ZXIodGhpcyl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5fZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZiwhMCkuc3Vic2NyaWJlKCh0PT57Y29uc3QgZT0hIXQ7ZSE9PXRoaXMuX3Nob3dJbmRpY2F0b3JIaW50JiYodGhpcy5fc2V0SW5kaWNhdG9ySGludFZpc2libGUoZSksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfSkpfW5nT25EZXN0cm95KCl7dGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYpLHRoaXMuX3NvcnQuZGVyZWdpc3Rlcih0aGlzKSx0aGlzLl9yZXJlbmRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfV9zZXRJbmRpY2F0b3JIaW50VmlzaWJsZSh0KXt0aGlzLl9pc0Rpc2FibGVkKCkmJnR8fCh0aGlzLl9zaG93SW5kaWNhdG9ySGludD10LHRoaXMuX2lzU29ydGVkKCl8fCh0aGlzLl91cGRhdGVBcnJvd0RpcmVjdGlvbigpLHRoaXMuX3NldEFuaW1hdGlvblRyYW5zaXRpb25TdGF0ZSh0aGlzLl9zaG93SW5kaWNhdG9ySGludD97ZnJvbVN0YXRlOnRoaXMuX2Fycm93RGlyZWN0aW9uLHRvU3RhdGU6ImhpbnQifTp7ZnJvbVN0YXRlOiJoaW50Iix0b1N0YXRlOnRoaXMuX2Fycm93RGlyZWN0aW9ufSkpKX1fc2V0QW5pbWF0aW9uVHJhbnNpdGlvblN0YXRlKHQpe3RoaXMuX3ZpZXdTdGF0ZT10fHx7fSx0aGlzLl9kaXNhYmxlVmlld1N0YXRlQW5pbWF0aW9uJiYodGhpcy5fdmlld1N0YXRlPXt0b1N0YXRlOnQudG9TdGF0ZX0pfV90b2dnbGVPbkludGVyYWN0aW9uKCl7dGhpcy5fc29ydC5zb3J0KHRoaXMpLCJoaW50IiE9PXRoaXMuX3ZpZXdTdGF0ZS50b1N0YXRlJiYiYWN0aXZlIiE9PXRoaXMuX3ZpZXdTdGF0ZS50b1N0YXRlfHwodGhpcy5fZGlzYWJsZVZpZXdTdGF0ZUFuaW1hdGlvbj0hMCl9X2hhbmRsZUNsaWNrKCl7dGhpcy5faXNEaXNhYmxlZCgpfHx0aGlzLl9zb3J0LnNvcnQodGhpcyl9X2hhbmRsZUtleWRvd24odCl7dGhpcy5faXNEaXNhYmxlZCgpfHx0LmtleUNvZGUhPT1KSSYmdC5rZXlDb2RlIT09WEl8fCh0LnByZXZlbnREZWZhdWx0KCksdGhpcy5fdG9nZ2xlT25JbnRlcmFjdGlvbigpKX1faXNTb3J0ZWQoKXtyZXR1cm4gdGhpcy5fc29ydC5hY3RpdmU9PXRoaXMuaWQmJigiYXNjIj09PXRoaXMuX3NvcnQuZGlyZWN0aW9ufHwiZGVzYyI9PT10aGlzLl9zb3J0LmRpcmVjdGlvbil9X2dldEFycm93RGlyZWN0aW9uU3RhdGUoKXtyZXR1cm5gJHt0aGlzLl9pc1NvcnRlZCgpPyJhY3RpdmUtIjoiIn0ke3RoaXMuX2Fycm93RGlyZWN0aW9ufWB9X2dldEFycm93Vmlld1N0YXRlKCl7Y29uc3QgdD10aGlzLl92aWV3U3RhdGUuZnJvbVN0YXRlO3JldHVybih0P2Ake3R9LXRvLWA6IiIpK3RoaXMuX3ZpZXdTdGF0ZS50b1N0YXRlfV91cGRhdGVBcnJvd0RpcmVjdGlvbigpe3RoaXMuX2Fycm93RGlyZWN0aW9uPXRoaXMuX2lzU29ydGVkKCk/dGhpcy5fc29ydC5kaXJlY3Rpb246dGhpcy5zdGFydHx8dGhpcy5fc29ydC5zdGFydH1faXNEaXNhYmxlZCgpe3JldHVybiB0aGlzLl9zb3J0LmRpc2FibGVkfHx0aGlzLmRpc2FibGVkfV9nZXRBcmlhU29ydEF0dHJpYnV0ZSgpe3JldHVybiB0aGlzLl9pc1NvcnRlZCgpPyJhc2MiPT10aGlzLl9zb3J0LmRpcmVjdGlvbj8iYXNjZW5kaW5nIjoiZGVzY2VuZGluZyI6Im5vbmUifV9yZW5kZXJBcnJvdygpe3JldHVybiF0aGlzLl9pc0Rpc2FibGVkKCl8fHRoaXMuX2lzU29ydGVkKCl9X2hhbmRsZVN0YXRlQ2hhbmdlcygpe3RoaXMuX3JlcmVuZGVyU3Vic2NyaXB0aW9uPXBlKHRoaXMuX3NvcnQuc29ydENoYW5nZSx0aGlzLl9zb3J0Ll9zdGF0ZUNoYW5nZXMsdGhpcy5faW50bC5jaGFuZ2VzKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5faXNTb3J0ZWQoKSYmKHRoaXMuX3VwZGF0ZUFycm93RGlyZWN0aW9uKCksImhpbnQiIT09dGhpcy5fdmlld1N0YXRlLnRvU3RhdGUmJiJhY3RpdmUiIT09dGhpcy5fdmlld1N0YXRlLnRvU3RhdGV8fCh0aGlzLl9kaXNhYmxlVmlld1N0YXRlQW5pbWF0aW9uPSEwKSx0aGlzLl9zZXRBbmltYXRpb25UcmFuc2l0aW9uU3RhdGUoe2Zyb21TdGF0ZTp0aGlzLl9hcnJvd0RpcmVjdGlvbix0b1N0YXRlOiJhY3RpdmUifSksdGhpcy5fc2hvd0luZGljYXRvckhpbnQ9ITEpLCF0aGlzLl9pc1NvcnRlZCgpJiZ0aGlzLl92aWV3U3RhdGUmJiJhY3RpdmUiPT09dGhpcy5fdmlld1N0YXRlLnRvU3RhdGUmJih0aGlzLl9kaXNhYmxlVmlld1N0YXRlQW5pbWF0aW9uPSExLHRoaXMuX3NldEFuaW1hdGlvblRyYW5zaXRpb25TdGF0ZSh7ZnJvbVN0YXRlOiJhY3RpdmUiLHRvU3RhdGU6dGhpcy5fYXJyb3dEaXJlY3Rpb259KSksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9KSl9fWYxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxmMSkoZ2YoYzEpLGdmKE9iKSxnZihyMSw4KSxnZigiTUFUX1NPUlRfSEVBREVSX0NPTFVNTl9ERUYiLDgpLGdmKGZGKSxnZihLaCkpfSxmMS7JtWNtcD1zbyh7dHlwZTpmMSxzZWxlY3RvcnM6W1siIiwibWF0LXNvcnQtaGVhZGVyIiwiIl1dLGhvc3RBdHRyczpbMSwibWF0LXNvcnQtaGVhZGVyIl0saG9zdFZhcnM6Myxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmUmYoImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9oYW5kbGVDbGljaygpfSkpKCJrZXlkb3duIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5faGFuZGxlS2V5ZG93bihlKX0pKSgibW91c2VlbnRlciIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fc2V0SW5kaWNhdG9ySGludFZpc2libGUoITApfSkpKCJtb3VzZWxlYXZlIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9zZXRJbmRpY2F0b3JIaW50VmlzaWJsZSghMSl9KSksMiZlJiYoeW0oImFyaWEtc29ydCIsbi5fZ2V0QXJpYVNvcnRBdHRyaWJ1dGUoKSksY3UoIm1hdC1zb3J0LWhlYWRlci1kaXNhYmxlZCIsbi5faXNEaXNhYmxlZCgpKSl9LGlucHV0czp7ZGlzYWJsZWQ6ImRpc2FibGVkIixhcnJvd1Bvc2l0aW9uOiJhcnJvd1Bvc2l0aW9uIixkaXNhYmxlQ2xlYXI6ImRpc2FibGVDbGVhciIsaWQ6WyJtYXQtc29ydC1oZWFkZXIiLCJpZCJdLHN0YXJ0OiJzdGFydCJ9LGV4cG9ydEFzOlsibWF0U29ydEhlYWRlciJdLGZlYXR1cmVzOltRcF0sYXR0cnM6WyJtYXQtc29ydC1oZWFkZXIiLCIiXSxuZ0NvbnRlbnRTZWxlY3RvcnM6WyIqIl0sZGVjbHM6NCx2YXJzOjYsY29uc3RzOltbInJvbGUiLCJidXR0b24iLDEsIm1hdC1zb3J0LWhlYWRlci1jb250YWluZXIiLCJtYXQtZm9jdXMtaW5kaWNhdG9yIl0sWzEsIm1hdC1zb3J0LWhlYWRlci1jb250ZW50Il0sWyJjbGFzcyIsIm1hdC1zb3J0LWhlYWRlci1hcnJvdyIsNCwibmdJZiJdLFsxLCJtYXQtc29ydC1oZWFkZXItYXJyb3ciXSxbMSwibWF0LXNvcnQtaGVhZGVyLXN0ZW0iXSxbMSwibWF0LXNvcnQtaGVhZGVyLWluZGljYXRvciJdLFsxLCJtYXQtc29ydC1oZWFkZXItcG9pbnRlci1sZWZ0Il0sWzEsIm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLXJpZ2h0Il0sWzEsIm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLW1pZGRsZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoSGYoKSxDZigwLCJkaXYiLDApLENmKDEsImRpdiIsMSksRmYoMiksTWYoKSxIbSgzLG8xLDYsNiwiZGl2IiwyKSxNZigpKSwyJmUmJihjdSgibWF0LXNvcnQtaGVhZGVyLXNvcnRlZCIsbi5faXNTb3J0ZWQoKSkoIm1hdC1zb3J0LWhlYWRlci1wb3NpdGlvbi1iZWZvcmUiLCJiZWZvcmUiPT1uLmFycm93UG9zaXRpb24pLHltKCJ0YWJpbmRleCIsbi5faXNEaXNhYmxlZCgpP251bGw6MCksRGMoMyksYmYoIm5nSWYiLG4uX3JlbmRlckFycm93KCkpKX0sZGlyZWN0aXZlczpbUHZdLHN0eWxlczpbIi5tYXQtc29ydC1oZWFkZXItY29udGFpbmVye2Rpc3BsYXk6ZmxleDtjdXJzb3I6cG9pbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO291dGxpbmU6MH1bbWF0LXNvcnQtaGVhZGVyXS5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LXNvcnQtaGVhZGVyLWNvbnRhaW5lcixbbWF0LXNvcnQtaGVhZGVyXS5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtc29ydC1oZWFkZXItY29udGFpbmVye2JvcmRlci1ib3R0b206c29saWQgMXB4IGN1cnJlbnRDb2xvcn0ubWF0LXNvcnQtaGVhZGVyLWRpc2FibGVkIC5tYXQtc29ydC1oZWFkZXItY29udGFpbmVye2N1cnNvcjpkZWZhdWx0fS5tYXQtc29ydC1oZWFkZXItY29udGVudHt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5tYXQtc29ydC1oZWFkZXItcG9zaXRpb24tYmVmb3Jle2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlfS5tYXQtc29ydC1oZWFkZXItYXJyb3d7aGVpZ2h0OjEycHg7d2lkdGg6MTJweDttaW4td2lkdGg6MTJweDtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7b3BhY2l0eTowfS5tYXQtc29ydC1oZWFkZXItYXJyb3csW2Rpcj1ydGxdIC5tYXQtc29ydC1oZWFkZXItcG9zaXRpb24tYmVmb3JlIC5tYXQtc29ydC1oZWFkZXItYXJyb3d7bWFyZ2luOjAgMCAwIDZweH0ubWF0LXNvcnQtaGVhZGVyLXBvc2l0aW9uLWJlZm9yZSAubWF0LXNvcnQtaGVhZGVyLWFycm93LFtkaXI9cnRsXSAubWF0LXNvcnQtaGVhZGVyLWFycm93e21hcmdpbjowIDZweCAwIDB9Lm1hdC1zb3J0LWhlYWRlci1zdGVte2JhY2tncm91bmQ6Y3VycmVudENvbG9yO2hlaWdodDoxMHB4O3dpZHRoOjJweDttYXJnaW46YXV0bztkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zb3J0LWhlYWRlci1zdGVte3dpZHRoOjA7Ym9yZGVyLWxlZnQ6c29saWQgMnB4fS5tYXQtc29ydC1oZWFkZXItaW5kaWNhdG9ye3dpZHRoOjEwMCU7aGVpZ2h0OjJweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MH0ubWF0LXNvcnQtaGVhZGVyLXBvaW50ZXItbWlkZGxle21hcmdpbjphdXRvO2hlaWdodDoycHg7d2lkdGg6MnB4O2JhY2tncm91bmQ6Y3VycmVudENvbG9yO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLW1pZGRsZXt3aWR0aDowO2hlaWdodDowO2JvcmRlci10b3A6c29saWQgMnB4O2JvcmRlci1sZWZ0OnNvbGlkIDJweH0ubWF0LXNvcnQtaGVhZGVyLXBvaW50ZXItbGVmdCwubWF0LXNvcnQtaGVhZGVyLXBvaW50ZXItcmlnaHR7YmFja2dyb3VuZDpjdXJyZW50Q29sb3I7d2lkdGg6NnB4O2hlaWdodDoycHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjB9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXNvcnQtaGVhZGVyLXBvaW50ZXItbGVmdCwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc29ydC1oZWFkZXItcG9pbnRlci1yaWdodHt3aWR0aDowO2hlaWdodDowO2JvcmRlci1sZWZ0OnNvbGlkIDZweDtib3JkZXItdG9wOnNvbGlkIDJweH0ubWF0LXNvcnQtaGVhZGVyLXBvaW50ZXItbGVmdHt0cmFuc2Zvcm0tb3JpZ2luOnJpZ2h0O2xlZnQ6MH0ubWF0LXNvcnQtaGVhZGVyLXBvaW50ZXItcmlnaHR7dHJhbnNmb3JtLW9yaWdpbjpsZWZ0O3JpZ2h0OjB9XG4iXSxlbmNhcHN1bGF0aW9uOjIsZGF0YTp7YW5pbWF0aW9uOltsMS5pbmRpY2F0b3IsbDEubGVmdFBvaW50ZXIsbDEucmlnaHRQb2ludGVyLGwxLmFycm93T3BhY2l0eSxsMS5hcnJvd1Bvc2l0aW9uLGwxLmFsbG93Q2hpbGRyZW5dfSxjaGFuZ2VEZXRlY3Rpb246MH0pLGYxLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6YzF9LHt0eXBlOk9ifSx7dHlwZTpyMSxkZWNvcmF0b3JzOlt7dHlwZTpCcn1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbIk1BVF9TT1JUX0hFQURFUl9DT0xVTU5fREVGIl19LHt0eXBlOkJyfV19LHt0eXBlOmZGfSx7dHlwZTpLaH1dLGYxLnByb3BEZWNvcmF0b3JzPXtpZDpbe3R5cGU6Ul8sYXJnczpbIm1hdC1zb3J0LWhlYWRlciJdfV0sYXJyb3dQb3NpdGlvbjpbe3R5cGU6Ul99XSxzdGFydDpbe3R5cGU6Ul99XSxkaXNhYmxlQ2xlYXI6W3t0eXBlOlJffV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZjEsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoiW21hdC1zb3J0LWhlYWRlcl0iLGV4cG9ydEFzOiJtYXRTb3J0SGVhZGVyIix0ZW1wbGF0ZTonXHgzYyEtLVxuICBXZSBzZXQgdGhlIGB0YWJpbmRleGAgb24gYW4gZWxlbWVudCBpbnNpZGUgdGhlIHRhYmxlIGhlYWRlciwgcmF0aGVyIHRoYW4gdGhlIGhlYWRlciBpdHNlbGYsXG4gIGJlY2F1c2Ugb2YgYSBidWcgaW4gTlZEQSB3aGVyZSBoYXZpbmcgYSBgdGFiaW5kZXhgIG9uIGEgYHRoYCBicmVha3Mga2V5Ym9hcmQgbmF2aWdhdGlvbiBpbiB0aGVcbiAgdGFibGUgKHNlZSBodHRwczovL2dpdGh1Yi5jb20vbnZhY2Nlc3MvbnZkYS9pc3N1ZXMvNzcxOCkuIFRoaXMgYWxsb3dzIGZvciB0aGUgaGVhZGVyIHRvIGJvdGhcbiAgYmUgZm9jdXNhYmxlLCBhbmQgaGF2ZSBzY3JlZW4gcmVhZGVycyByZWFkIG91dCBpdHMgYGFyaWEtc29ydGAgc3RhdGUuIFdlIHByZWZlciB0aGlzIGFwcHJvYWNoXG4gIG92ZXIgaGF2aW5nIGEgYnV0dG9uIHdpdGggYW4gYGFyaWEtbGFiZWxgIGluc2lkZSB0aGUgaGVhZGVyLCBiZWNhdXNlIHRoZSBidXR0b25cJ3MgYGFyaWEtbGFiZWxgXG4gIHdpbGwgYmUgcmVhZCBvdXQgYXMgdGhlIHVzZXIgaXMgbmF2aWdhdGluZyB0aGUgdGFibGVcJ3MgY2VsbCAoc2VlICMxMzAxMikuXG5cbiAgVGhlIGFwcHJvYWNoIGlzIGJhc2VkIG9mZiBvZjogaHR0cHM6Ly9kZXF1ZXVuaXZlcnNpdHkuY29tL2xpYnJhcnkvYXJpYS90YWJsZXMvc2Ytc29ydGFibGUtZ3JpZFxuLS1ceDNlXG48ZGl2IGNsYXNzPSJtYXQtc29ydC1oZWFkZXItY29udGFpbmVyIG1hdC1mb2N1cy1pbmRpY2F0b3IiXG4gICAgIFtjbGFzcy5tYXQtc29ydC1oZWFkZXItc29ydGVkXT0iX2lzU29ydGVkKCkiXG4gICAgIFtjbGFzcy5tYXQtc29ydC1oZWFkZXItcG9zaXRpb24tYmVmb3JlXT0iYXJyb3dQb3NpdGlvbiA9PSBcJ2JlZm9yZVwnIlxuICAgICBbYXR0ci50YWJpbmRleF09Il9pc0Rpc2FibGVkKCkgPyBudWxsIDogMCJcbiAgICAgcm9sZT0iYnV0dG9uIj5cblxuICBceDNjIS0tXG4gICAgVE9ETyhjcmlzYmV0byk6IHRoaXMgZGl2IGlzblwndCBzdHJpY3RseSBuZWNlc3NhcnksIGJ1dCB3ZSBoYXZlIHRvIGtlZXAgaXQgZHVlIHRvIGEgbGFyZ2VcbiAgICBudW1iZXIgb2Ygc2NyZWVuc2hvdCBkaWZmIGZhaWx1cmVzLiBJdCBzaG91bGQgYmUgcmVtb3ZlZCBldmVudHVhbGx5LiBOb3RlIHRoYXQgdGhlIGRpZmZlcmVuY2VcbiAgICBpc25cJ3QgdmlzaWJsZSB3aXRoIGEgc2hvcnRlciBoZWFkZXIsIGJ1dCBvbmNlIGl0IGJyZWFrcyB1cCBpbnRvIG11bHRpcGxlIGxpbmVzLCB0aGlzIGVsZW1lbnRcbiAgICBjYXVzZXMgaXQgdG8gYmUgY2VudGVyLWFsaWduZWQsIHdoZXJlYXMgcmVtb3ZpbmcgaXQgd2lsbCBrZWVwIHRoZSB0ZXh0IHRvIHRoZSBsZWZ0LlxuICAtLVx4M2VcbiAgPGRpdiBjbGFzcz0ibWF0LXNvcnQtaGVhZGVyLWNvbnRlbnQiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG5cbiAgXHgzYyEtLSBEaXNhYmxlIGFuaW1hdGlvbnMgd2hpbGUgYSBjdXJyZW50IGFuaW1hdGlvbiBpcyBydW5uaW5nIC0tXHgzZVxuICA8ZGl2IGNsYXNzPSJtYXQtc29ydC1oZWFkZXItYXJyb3ciXG4gICAgICAgKm5nSWY9Il9yZW5kZXJBcnJvdygpIlxuICAgICAgIFtAYXJyb3dPcGFjaXR5XT0iX2dldEFycm93Vmlld1N0YXRlKCkiXG4gICAgICAgW0BhcnJvd1Bvc2l0aW9uXT0iX2dldEFycm93Vmlld1N0YXRlKCkiXG4gICAgICAgW0BhbGxvd0NoaWxkcmVuXT0iX2dldEFycm93RGlyZWN0aW9uU3RhdGUoKSJcbiAgICAgICAoQGFycm93UG9zaXRpb24uc3RhcnQpPSJfZGlzYWJsZVZpZXdTdGF0ZUFuaW1hdGlvbiA9IHRydWUiXG4gICAgICAgKEBhcnJvd1Bvc2l0aW9uLmRvbmUpPSJfZGlzYWJsZVZpZXdTdGF0ZUFuaW1hdGlvbiA9IGZhbHNlIj5cbiAgICA8ZGl2IGNsYXNzPSJtYXQtc29ydC1oZWFkZXItc3RlbSI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz0ibWF0LXNvcnQtaGVhZGVyLWluZGljYXRvciIgW0BpbmRpY2F0b3JdPSJfZ2V0QXJyb3dEaXJlY3Rpb25TdGF0ZSgpIj5cbiAgICAgIDxkaXYgY2xhc3M9Im1hdC1zb3J0LWhlYWRlci1wb2ludGVyLWxlZnQiIFtAbGVmdFBvaW50ZXJdPSJfZ2V0QXJyb3dEaXJlY3Rpb25TdGF0ZSgpIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9Im1hdC1zb3J0LWhlYWRlci1wb2ludGVyLXJpZ2h0IiBbQHJpZ2h0UG9pbnRlcl09Il9nZXRBcnJvd0RpcmVjdGlvblN0YXRlKCkiPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz0ibWF0LXNvcnQtaGVhZGVyLXBvaW50ZXItbWlkZGxlIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbicsaG9zdDp7Y2xhc3M6Im1hdC1zb3J0LWhlYWRlciIsIihjbGljaykiOiJfaGFuZGxlQ2xpY2soKSIsIihrZXlkb3duKSI6Il9oYW5kbGVLZXlkb3duKCRldmVudCkiLCIobW91c2VlbnRlcikiOiJfc2V0SW5kaWNhdG9ySGludFZpc2libGUodHJ1ZSkiLCIobW91c2VsZWF2ZSkiOiJfc2V0SW5kaWNhdG9ySGludFZpc2libGUoZmFsc2UpIiwiW2F0dHIuYXJpYS1zb3J0XSI6Il9nZXRBcmlhU29ydEF0dHJpYnV0ZSgpIiwiW2NsYXNzLm1hdC1zb3J0LWhlYWRlci1kaXNhYmxlZF0iOiJfaXNEaXNhYmxlZCgpIn0sZW5jYXBzdWxhdGlvbjpXbi5Ob25lLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2gsaW5wdXRzOlsiZGlzYWJsZWQiXSxhbmltYXRpb25zOltsMS5pbmRpY2F0b3IsbDEubGVmdFBvaW50ZXIsbDEucmlnaHRQb2ludGVyLGwxLmFycm93T3BhY2l0eSxsMS5hcnJvd1Bvc2l0aW9uLGwxLmFsbG93Q2hpbGRyZW5dLHN0eWxlczpbIi5tYXQtc29ydC1oZWFkZXItY29udGFpbmVye2Rpc3BsYXk6ZmxleDtjdXJzb3I6cG9pbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO291dGxpbmU6MH1bbWF0LXNvcnQtaGVhZGVyXS5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LXNvcnQtaGVhZGVyLWNvbnRhaW5lcixbbWF0LXNvcnQtaGVhZGVyXS5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtc29ydC1oZWFkZXItY29udGFpbmVye2JvcmRlci1ib3R0b206c29saWQgMXB4IGN1cnJlbnRDb2xvcn0ubWF0LXNvcnQtaGVhZGVyLWRpc2FibGVkIC5tYXQtc29ydC1oZWFkZXItY29udGFpbmVye2N1cnNvcjpkZWZhdWx0fS5tYXQtc29ydC1oZWFkZXItY29udGVudHt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5tYXQtc29ydC1oZWFkZXItcG9zaXRpb24tYmVmb3Jle2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlfS5tYXQtc29ydC1oZWFkZXItYXJyb3d7aGVpZ2h0OjEycHg7d2lkdGg6MTJweDttaW4td2lkdGg6MTJweDtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7b3BhY2l0eTowfS5tYXQtc29ydC1oZWFkZXItYXJyb3csW2Rpcj1ydGxdIC5tYXQtc29ydC1oZWFkZXItcG9zaXRpb24tYmVmb3JlIC5tYXQtc29ydC1oZWFkZXItYXJyb3d7bWFyZ2luOjAgMCAwIDZweH0ubWF0LXNvcnQtaGVhZGVyLXBvc2l0aW9uLWJlZm9yZSAubWF0LXNvcnQtaGVhZGVyLWFycm93LFtkaXI9cnRsXSAubWF0LXNvcnQtaGVhZGVyLWFycm93e21hcmdpbjowIDZweCAwIDB9Lm1hdC1zb3J0LWhlYWRlci1zdGVte2JhY2tncm91bmQ6Y3VycmVudENvbG9yO2hlaWdodDoxMHB4O3dpZHRoOjJweDttYXJnaW46YXV0bztkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zb3J0LWhlYWRlci1zdGVte3dpZHRoOjA7Ym9yZGVyLWxlZnQ6c29saWQgMnB4fS5tYXQtc29ydC1oZWFkZXItaW5kaWNhdG9ye3dpZHRoOjEwMCU7aGVpZ2h0OjJweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MH0ubWF0LXNvcnQtaGVhZGVyLXBvaW50ZXItbWlkZGxle21hcmdpbjphdXRvO2hlaWdodDoycHg7d2lkdGg6MnB4O2JhY2tncm91bmQ6Y3VycmVudENvbG9yO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zb3J0LWhlYWRlci1wb2ludGVyLW1pZGRsZXt3aWR0aDowO2hlaWdodDowO2JvcmRlci10b3A6c29saWQgMnB4O2JvcmRlci1sZWZ0OnNvbGlkIDJweH0ubWF0LXNvcnQtaGVhZGVyLXBvaW50ZXItbGVmdCwubWF0LXNvcnQtaGVhZGVyLXBvaW50ZXItcmlnaHR7YmFja2dyb3VuZDpjdXJyZW50Q29sb3I7d2lkdGg6NnB4O2hlaWdodDoycHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjB9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXNvcnQtaGVhZGVyLXBvaW50ZXItbGVmdCwuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc29ydC1oZWFkZXItcG9pbnRlci1yaWdodHt3aWR0aDowO2hlaWdodDowO2JvcmRlci1sZWZ0OnNvbGlkIDZweDtib3JkZXItdG9wOnNvbGlkIDJweH0ubWF0LXNvcnQtaGVhZGVyLXBvaW50ZXItbGVmdHt0cmFuc2Zvcm0tb3JpZ2luOnJpZ2h0O2xlZnQ6MH0ubWF0LXNvcnQtaGVhZGVyLXBvaW50ZXItcmlnaHR7dHJhbnNmb3JtLW9yaWdpbjpsZWZ0O3JpZ2h0OjB9XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmMxfSx7dHlwZTpPYn0se3R5cGU6cjEsZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6WyJNQVRfU09SVF9IRUFERVJfQ09MVU1OX0RFRiJdfSx7dHlwZTpCcn1dfSx7dHlwZTpmRn0se3R5cGU6S2h9XX0pLHthcnJvd1Bvc2l0aW9uOlt7dHlwZTpSX31dLGRpc2FibGVDbGVhcjpbe3R5cGU6Ul99XSxpZDpbe3R5cGU6Ul8sYXJnczpbIm1hdC1zb3J0LWhlYWRlciJdfV0sc3RhcnQ6W3t0eXBlOlJffV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIHUxe311MS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dTEpfSx1MS7JtW1vZD1mbyh7dHlwZTp1MX0pLHUxLsm1aW5qPURuKHtwcm92aWRlcnM6W2QxXSxpbXBvcnRzOltbcngsTkZdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIodTEsW3t0eXBlOkxfLGFyZ3M6W3tpbXBvcnRzOltyeCxORl0sZXhwb3J0czpbcjEsZjFdLGRlY2xhcmF0aW9uczpbcjEsZjFdLHByb3ZpZGVyczpbZDFdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8odTEse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVybltyMSxmMV19LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bcngsTkZdfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW3IxLGYxXX19KTtjb25zdCBnMT1bW1siY2FwdGlvbiJdXSxbWyJjb2xncm91cCJdLFsiY29sIl1dXTtmdW5jdGlvbiBoMSh0LGUpe2lmKDEmdCYmKENmKDAsInRoIiwzKSxQdSgxKSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoKTtsdSgidGV4dC1hbGlnbiIsdC5qdXN0aWZ5KSxEYygxKSxrdSgiICIsdC5oZWFkZXJUZXh0LCIgIil9fWZ1bmN0aW9uIGIxKHQsZSl7aWYoMSZ0JiYoQ2YoMCwidGQiLDQpLFB1KDEpLE1mKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdCxuPXpmKCk7bHUoInRleHQtYWxpZ24iLG4uanVzdGlmeSksRGMoMSksa3UoIiAiLG4uZGF0YUFjY2Vzc29yKHQsbi5uYW1lKSwiICIpfX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovZnVuY3Rpb24geTEodCl7cmV0dXJuIGNsYXNzIGV4dGVuZHMgdHtjb25zdHJ1Y3RvciguLi50KXtzdXBlciguLi50KSx0aGlzLl9zdGlja3k9ITEsdGhpcy5faGFzU3RpY2t5Q2hhbmdlZD0hMX1nZXQgc3RpY2t5KCl7cmV0dXJuIHRoaXMuX3N0aWNreX1zZXQgc3RpY2t5KHQpe2NvbnN0IGU9dGhpcy5fc3RpY2t5O3RoaXMuX3N0aWNreT1lSCh0KSx0aGlzLl9oYXNTdGlja3lDaGFuZ2VkPWUhPT10aGlzLl9zdGlja3l9aGFzU3RpY2t5Q2hhbmdlZCgpe2NvbnN0IHQ9dGhpcy5faGFzU3RpY2t5Q2hhbmdlZDtyZXR1cm4gdGhpcy5faGFzU3RpY2t5Q2hhbmdlZD0hMSx0fXJlc2V0U3RpY2t5Q2hhbmdlZCgpe3RoaXMuX2hhc1N0aWNreUNoYW5nZWQ9ITF9fX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovY29uc3QgXzE9bmV3IGVyKCJDREtfVEFCTEUiKSxDMT1uZXcgZXIoInRleHQtY29sdW1uLW9wdGlvbnMiKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIE0xe2NvbnN0cnVjdG9yKHQpe3RoaXMudGVtcGxhdGU9dH19TTEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE0xKShnZihFYikpfSxNMS7JtWRpcj1obyh7dHlwZTpNMSxzZWxlY3RvcnM6W1siIiwiY2RrQ2VsbERlZiIsIiJdXX0pLE0xLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6RWJ9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKE0xLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IltjZGtDZWxsRGVmXSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpFYn1dfSksbnVsbCk7Y2xhc3MgdjF7Y29uc3RydWN0b3IodCl7dGhpcy50ZW1wbGF0ZT10fX12MS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8djEpKGdmKEViKSl9LHYxLsm1ZGlyPWhvKHt0eXBlOnYxLHNlbGVjdG9yczpbWyIiLCJjZGtIZWFkZXJDZWxsRGVmIiwiIl1dfSksdjEuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpFYn1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIodjEsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW2Nka0hlYWRlckNlbGxEZWZdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkVifV19KSxudWxsKTtjbGFzcyB4MXtjb25zdHJ1Y3Rvcih0KXt0aGlzLnRlbXBsYXRlPXR9fXgxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx4MSkoZ2YoRWIpKX0seDEuybVkaXI9aG8oe3R5cGU6eDEsc2VsZWN0b3JzOltbIiIsImNka0Zvb3RlckNlbGxEZWYiLCIiXV19KSx4MS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkVifV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih4MSxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJbY2RrRm9vdGVyQ2VsbERlZl0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6RWJ9XX0pLG51bGwpO2NvbnN0IE8xPXkxKGNsYXNze30pO2NsYXNzIFAxIGV4dGVuZHMgTzF7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLl90YWJsZT10LHRoaXMuX3N0aWNreUVuZD0hMX1nZXQgbmFtZSgpe3JldHVybiB0aGlzLl9uYW1lfXNldCBuYW1lKHQpe3RoaXMuX3NldE5hbWVJbnB1dCh0KX1nZXQgc3RpY2t5RW5kKCl7cmV0dXJuIHRoaXMuX3N0aWNreUVuZH1zZXQgc3RpY2t5RW5kKHQpe2NvbnN0IGU9dGhpcy5fc3RpY2t5RW5kO3RoaXMuX3N0aWNreUVuZD1lSCh0KSx0aGlzLl9oYXNTdGlja3lDaGFuZ2VkPWUhPT10aGlzLl9zdGlja3lFbmR9X3VwZGF0ZUNvbHVtbkNzc0NsYXNzTmFtZSgpe3RoaXMuX2NvbHVtbkNzc0NsYXNzTmFtZT1bYGNkay1jb2x1bW4tJHt0aGlzLmNzc0NsYXNzRnJpZW5kbHlOYW1lfWBdfV9zZXROYW1lSW5wdXQodCl7dCYmKHRoaXMuX25hbWU9dCx0aGlzLmNzc0NsYXNzRnJpZW5kbHlOYW1lPXQucmVwbGFjZSgvW15hLXowLTlfLV0vZ2ksIi0iKSx0aGlzLl91cGRhdGVDb2x1bW5Dc3NDbGFzc05hbWUoKSl9fVAxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxQMSkoZ2YoXzEsOCkpfSxQMS7JtWRpcj1obyh7dHlwZTpQMSxzZWxlY3RvcnM6W1siIiwiY2RrQ29sdW1uRGVmIiwiIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uIHQoZSxuLG8pe2lmKDEmZSYmKGp5KG8sTTEsNSksankobyx2MSw1KSxqeShvLHgxLDUpKSwyJmUpe2xldCB0O0J5KHQ9VXkoKSkmJihuLmNlbGw9dC5maXJzdCksQnkodD1VeSgpKSYmKG4uaGVhZGVyQ2VsbD10LmZpcnN0KSxCeSh0PVV5KCkpJiYobi5mb290ZXJDZWxsPXQuZmlyc3QpfX0saW5wdXRzOntzdGlja3k6InN0aWNreSIsbmFtZTpbImNka0NvbHVtbkRlZiIsIm5hbWUiXSxzdGlja3lFbmQ6InN0aWNreUVuZCJ9LGZlYXR1cmVzOltqaChbe3Byb3ZpZGU6Ik1BVF9TT1JUX0hFQURFUl9DT0xVTU5fREVGIix1c2VFeGlzdGluZzpQMX1dKSxRcF19KSxQMS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltfMV19LHt0eXBlOkJyfV19XSxQMS5wcm9wRGVjb3JhdG9ycz17bmFtZTpbe3R5cGU6Ul8sYXJnczpbImNka0NvbHVtbkRlZiJdfV0sc3RpY2t5RW5kOlt7dHlwZTpSXyxhcmdzOlsic3RpY2t5RW5kIl19XSxjZWxsOlt7dHlwZTppcixhcmdzOltNMV19XSxoZWFkZXJDZWxsOlt7dHlwZTppcixhcmdzOlt2MV19XSxmb290ZXJDZWxsOlt7dHlwZTppcixhcmdzOlt4MV19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihQMSxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJbY2RrQ29sdW1uRGVmXSIsaW5wdXRzOlsic3RpY2t5Il0scHJvdmlkZXJzOlt7cHJvdmlkZToiTUFUX1NPUlRfSEVBREVSX0NPTFVNTl9ERUYiLHVzZUV4aXN0aW5nOlAxfV19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbXzFdfSx7dHlwZTpCcn1dfV19KSx7bmFtZTpbe3R5cGU6Ul8sYXJnczpbImNka0NvbHVtbkRlZiJdfV0sc3RpY2t5RW5kOlt7dHlwZTpSXyxhcmdzOlsic3RpY2t5RW5kIl19XSxjZWxsOlt7dHlwZTppcixhcmdzOltNMV19XSxoZWFkZXJDZWxsOlt7dHlwZTppcixhcmdzOlt2MV19XSxmb290ZXJDZWxsOlt7dHlwZTppcixhcmdzOlt4MV19XX0pO2NsYXNzIHcxe2NvbnN0cnVjdG9yKHQsZSl7Y29uc3Qgbj1lLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0O2Zvcihjb25zdCBlIG9mIHQuX2NvbHVtbkNzc0NsYXNzTmFtZSluLmFkZChlKX19Y2xhc3MgazEgZXh0ZW5kcyB3MXtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsZSl9fWsxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxrMSkoZ2YoUDEpLGdmKEtoKSl9LGsxLsm1ZGlyPWhvKHt0eXBlOmsxLHNlbGVjdG9yczpbWyJjZGstaGVhZGVyLWNlbGwiXSxbInRoIiwiY2RrLWhlYWRlci1jZWxsIiwiIl1dLGhvc3RBdHRyczpbInJvbGUiLCJjb2x1bW5oZWFkZXIiLDEsImNkay1oZWFkZXItY2VsbCJdLGZlYXR1cmVzOltRcF19KSxrMS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlAxfSx7dHlwZTpLaH1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoazEsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiY2RrLWhlYWRlci1jZWxsLCB0aFtjZGstaGVhZGVyLWNlbGxdIixob3N0OntjbGFzczoiY2RrLWhlYWRlci1jZWxsIixyb2xlOiJjb2x1bW5oZWFkZXIifX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlAxfSx7dHlwZTpLaH1dfSksbnVsbCk7Y2xhc3MgUzEgZXh0ZW5kcyB3MXtjb25zdHJ1Y3Rvcih0LGUpe3ZhciBuO2lmKHN1cGVyKHQsZSksMT09PShudWxsPT09KG49dC5fdGFibGUpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubm9kZVR5cGUpKXtjb25zdCBuPXQuX3RhYmxlLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJyb2xlIik7ZS5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgicm9sZSIsImdyaWQiPT09bnx8InRyZWVncmlkIj09PW4/ImdyaWRjZWxsIjoiY2VsbCIpfX19UzEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFMxKShnZihQMSksZ2YoS2gpKX0sUzEuybVkaXI9aG8oe3R5cGU6UzEsc2VsZWN0b3JzOltbImNkay1mb290ZXItY2VsbCJdLFsidGQiLCJjZGstZm9vdGVyLWNlbGwiLCIiXV0saG9zdEF0dHJzOlsxLCJjZGstZm9vdGVyLWNlbGwiXSxmZWF0dXJlczpbUXBdfSksUzEuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpQMX0se3R5cGU6S2h9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFMxLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6ImNkay1mb290ZXItY2VsbCwgdGRbY2RrLWZvb3Rlci1jZWxsXSIsaG9zdDp7Y2xhc3M6ImNkay1mb290ZXItY2VsbCJ9fV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6UDF9LHt0eXBlOktofV19KSxudWxsKTtjbGFzcyBEMSBleHRlbmRzIHcxe2NvbnN0cnVjdG9yKHQsZSl7dmFyIG47aWYoc3VwZXIodCxlKSwxPT09KG51bGw9PT0obj10Ll90YWJsZSl8fHZvaWQgMD09PW4/dm9pZCAwOm4uX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ub2RlVHlwZSkpe2NvbnN0IG49dC5fdGFibGUuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoInJvbGUiKTtlLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJyb2xlIiwiZ3JpZCI9PT1ufHwidHJlZWdyaWQiPT09bj8iZ3JpZGNlbGwiOiJjZWxsIil9fX1EMS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RDEpKGdmKFAxKSxnZihLaCkpfSxEMS7JtWRpcj1obyh7dHlwZTpEMSxzZWxlY3RvcnM6W1siY2RrLWNlbGwiXSxbInRkIiwiY2RrLWNlbGwiLCIiXV0saG9zdEF0dHJzOlsxLCJjZGstY2VsbCJdLGZlYXR1cmVzOltRcF19KSxEMS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOlAxfSx7dHlwZTpLaH1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoRDEsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiY2RrLWNlbGwsIHRkW2Nkay1jZWxsXSIsaG9zdDp7Y2xhc3M6ImNkay1jZWxsIn19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpQMX0se3R5cGU6S2h9XX0pLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgUjF7Y29uc3RydWN0b3IoKXt0aGlzLnRhc2tzPVtdLHRoaXMuZW5kVGFza3M9W119fWNvbnN0IEUxPW5ldyBlcigiX0NPQUxFU0NFRF9TVFlMRV9TQ0hFRFVMRVIiKTtjbGFzcyBBMXtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9uZ1pvbmU9dCx0aGlzLl9jdXJyZW50U2NoZWR1bGU9bnVsbCx0aGlzLl9kZXN0cm95ZWQ9bmV3IEJ9c2NoZWR1bGUodCl7dGhpcy5fY3JlYXRlU2NoZWR1bGVJZk5lZWRlZCgpLHRoaXMuX2N1cnJlbnRTY2hlZHVsZS50YXNrcy5wdXNoKHQpfXNjaGVkdWxlRW5kKHQpe3RoaXMuX2NyZWF0ZVNjaGVkdWxlSWZOZWVkZWQoKSx0aGlzLl9jdXJyZW50U2NoZWR1bGUuZW5kVGFza3MucHVzaCh0KX1uZ09uRGVzdHJveSgpe3RoaXMuX2Rlc3Ryb3llZC5uZXh0KCksdGhpcy5fZGVzdHJveWVkLmNvbXBsZXRlKCl9X2NyZWF0ZVNjaGVkdWxlSWZOZWVkZWQoKXt0aGlzLl9jdXJyZW50U2NoZWR1bGV8fCh0aGlzLl9jdXJyZW50U2NoZWR1bGU9bmV3IFIxLHRoaXMuX2dldFNjaGVkdWxlT2JzZXJ2YWJsZSgpLnBpcGUoamUodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgoKT0+e2Zvcig7dGhpcy5fY3VycmVudFNjaGVkdWxlLnRhc2tzLmxlbmd0aHx8dGhpcy5fY3VycmVudFNjaGVkdWxlLmVuZFRhc2tzLmxlbmd0aDspe2NvbnN0IHQ9dGhpcy5fY3VycmVudFNjaGVkdWxlO3RoaXMuX2N1cnJlbnRTY2hlZHVsZT1uZXcgUjE7Zm9yKGNvbnN0IGUgb2YgdC50YXNrcyllKCk7Zm9yKGNvbnN0IGUgb2YgdC5lbmRUYXNrcyllKCl9dGhpcy5fY3VycmVudFNjaGVkdWxlPW51bGx9KSkpfV9nZXRTY2hlZHVsZU9ic2VydmFibGUoKXtyZXR1cm4gdGhpcy5fbmdab25lLmlzU3RhYmxlP1B0KFByb21pc2UucmVzb2x2ZSh2b2lkIDApKTp0aGlzLl9uZ1pvbmUub25TdGFibGUucGlwZSh2ZSgxKSl9fUExLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxBMSkoVHIobUMpKX0sQTEuybVwcm92PVNuKHt0b2tlbjpBMSxmYWN0b3J5OkExLsm1ZmFjfSksQTEuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTptQ31dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoQTEsW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOm1DfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IFQxPSI8bmctY29udGFpbmVyIGNka0NlbGxPdXRsZXQ+PC9uZy1jb250YWluZXI+IjtjbGFzcyBOMXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMudGVtcGxhdGU9dCx0aGlzLl9kaWZmZXJzPWV9bmdPbkNoYW5nZXModCl7aWYoIXRoaXMuX2NvbHVtbnNEaWZmZXIpe2NvbnN0IGU9dC5jb2x1bW5zJiZ0LmNvbHVtbnMuY3VycmVudFZhbHVlfHxbXTt0aGlzLl9jb2x1bW5zRGlmZmVyPXRoaXMuX2RpZmZlcnMuZmluZChlKS5jcmVhdGUoKSx0aGlzLl9jb2x1bW5zRGlmZmVyLmRpZmYoZSl9fWdldENvbHVtbnNEaWZmKCl7cmV0dXJuIHRoaXMuX2NvbHVtbnNEaWZmZXIuZGlmZih0aGlzLmNvbHVtbnMpfWV4dHJhY3RDZWxsVGVtcGxhdGUodCl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBJMT90LmhlYWRlckNlbGwudGVtcGxhdGU6dGhpcyBpbnN0YW5jZW9mIEYxP3QuZm9vdGVyQ2VsbC50ZW1wbGF0ZTp0LmNlbGwudGVtcGxhdGV9fU4xLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxOMSkoZ2YoRWIpLGdmKGhiKSl9LE4xLsm1ZGlyPWhvKHt0eXBlOk4xLGZlYXR1cmVzOltxb119KSxOMS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkVifSx7dHlwZTpoYn1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoTjEsW3t0eXBlOmtffV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkVifSx7dHlwZTpoYn1dfSksbnVsbCk7Y29uc3QgejE9eTEoY2xhc3MgZXh0ZW5kcyBOMXt9KTtjbGFzcyBJMSBleHRlbmRzIHoxe2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcih0LGUpLHRoaXMuX3RhYmxlPW59bmdPbkNoYW5nZXModCl7c3VwZXIubmdPbkNoYW5nZXModCl9fUkxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxJMSkoZ2YoRWIpLGdmKGhiKSxnZihfMSw4KSl9LEkxLsm1ZGlyPWhvKHt0eXBlOkkxLHNlbGVjdG9yczpbWyIiLCJjZGtIZWFkZXJSb3dEZWYiLCIiXV0saW5wdXRzOntjb2x1bW5zOlsiY2RrSGVhZGVyUm93RGVmIiwiY29sdW1ucyJdLHN0aWNreTpbImNka0hlYWRlclJvd0RlZlN0aWNreSIsInN0aWNreSJdfSxmZWF0dXJlczpbUXAscW9dfSksSTEuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpFYn0se3R5cGU6aGJ9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltfMV19LHt0eXBlOkJyfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEkxLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IltjZGtIZWFkZXJSb3dEZWZdIixpbnB1dHM6WyJjb2x1bW5zOiBjZGtIZWFkZXJSb3dEZWYiLCJzdGlja3k6IGNka0hlYWRlclJvd0RlZlN0aWNreSJdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6RWJ9LHt0eXBlOmhifSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbXzFdfSx7dHlwZTpCcn1dfV19KSxudWxsKTtjb25zdCBIMT15MShjbGFzcyBleHRlbmRzIE4xe30pO2NsYXNzIEYxIGV4dGVuZHMgSDF7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKHQsZSksdGhpcy5fdGFibGU9bn1uZ09uQ2hhbmdlcyh0KXtzdXBlci5uZ09uQ2hhbmdlcyh0KX19RjEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEYxKShnZihFYiksZ2YoaGIpLGdmKF8xLDgpKX0sRjEuybVkaXI9aG8oe3R5cGU6RjEsc2VsZWN0b3JzOltbIiIsImNka0Zvb3RlclJvd0RlZiIsIiJdXSxpbnB1dHM6e2NvbHVtbnM6WyJjZGtGb290ZXJSb3dEZWYiLCJjb2x1bW5zIl0sc3RpY2t5OlsiY2RrRm9vdGVyUm93RGVmU3RpY2t5Iiwic3RpY2t5Il19LGZlYXR1cmVzOltRcCxxb119KSxGMS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkVifSx7dHlwZTpoYn0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W18xXX0se3R5cGU6QnJ9XX1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoRjEsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW2Nka0Zvb3RlclJvd0RlZl0iLGlucHV0czpbImNvbHVtbnM6IGNka0Zvb3RlclJvd0RlZiIsInN0aWNreTogY2RrRm9vdGVyUm93RGVmU3RpY2t5Il19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpFYn0se3R5cGU6aGJ9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltfMV19LHt0eXBlOkJyfV19XX0pLG51bGwpO2NsYXNzIEwxIGV4dGVuZHMgTjF7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKHQsZSksdGhpcy5fdGFibGU9bn19TDEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEwxKShnZihFYiksZ2YoaGIpLGdmKF8xLDgpKX0sTDEuybVkaXI9aG8oe3R5cGU6TDEsc2VsZWN0b3JzOltbIiIsImNka1Jvd0RlZiIsIiJdXSxpbnB1dHM6e2NvbHVtbnM6WyJjZGtSb3dEZWZDb2x1bW5zIiwiY29sdW1ucyJdLHdoZW46WyJjZGtSb3dEZWZXaGVuIiwid2hlbiJdfSxmZWF0dXJlczpbUXBdfSksTDEuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpFYn0se3R5cGU6aGJ9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltfMV19LHt0eXBlOkJyfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEwxLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IltjZGtSb3dEZWZdIixpbnB1dHM6WyJjb2x1bW5zOiBjZGtSb3dEZWZDb2x1bW5zIiwid2hlbjogY2RrUm93RGVmV2hlbiJdfV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6RWJ9LHt0eXBlOmhifSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbXzFdfSx7dHlwZTpCcn1dfV19KSxudWxsKTtjbGFzcyBCMXtjb25zdHJ1Y3Rvcih0KXt0aGlzLl92aWV3Q29udGFpbmVyPXQsQjEubW9zdFJlY2VudENlbGxPdXRsZXQ9dGhpc31uZ09uRGVzdHJveSgpe0IxLm1vc3RSZWNlbnRDZWxsT3V0bGV0PT09dGhpcyYmKEIxLm1vc3RSZWNlbnRDZWxsT3V0bGV0PW51bGwpfX1CMS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8QjEpKGdmKEZiKSl9LEIxLsm1ZGlyPWhvKHt0eXBlOkIxLHNlbGVjdG9yczpbWyIiLCJjZGtDZWxsT3V0bGV0IiwiIl1dfSksQjEubW9zdFJlY2VudENlbGxPdXRsZXQ9bnVsbCxCMS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkZifV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihCMSxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJbY2RrQ2VsbE91dGxldF0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6RmJ9XX0pLG51bGwpO2NsYXNzIFYxe31WMS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8VjEpfSxWMS7JtWNtcD1zbyh7dHlwZTpWMSxzZWxlY3RvcnM6W1siY2RrLWhlYWRlci1yb3ciXSxbInRyIiwiY2RrLWhlYWRlci1yb3ciLCIiXV0saG9zdEF0dHJzOlsicm9sZSIsInJvdyIsMSwiY2RrLWhlYWRlci1yb3ciXSxkZWNsczoxLHZhcnM6MCxjb25zdHM6W1siY2RrQ2VsbE91dGxldCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZQZigwLDApfSxkaXJlY3RpdmVzOltCMV0sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihWMSxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJjZGstaGVhZGVyLXJvdywgdHJbY2RrLWhlYWRlci1yb3ddIix0ZW1wbGF0ZTpUMSxob3N0OntjbGFzczoiY2RrLWhlYWRlci1yb3ciLHJvbGU6InJvdyJ9LGNoYW5nZURldGVjdGlvbjpqbi5EZWZhdWx0LGVuY2Fwc3VsYXRpb246V24uTm9uZX1dfV0sbnVsbCxudWxsKTtjbGFzcyBqMXt9ajEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGoxKX0sajEuybVjbXA9c28oe3R5cGU6ajEsc2VsZWN0b3JzOltbImNkay1mb290ZXItcm93Il0sWyJ0ciIsImNkay1mb290ZXItcm93IiwiIl1dLGhvc3RBdHRyczpbInJvbGUiLCJyb3ciLDEsImNkay1mb290ZXItcm93Il0sZGVjbHM6MSx2YXJzOjAsY29uc3RzOltbImNka0NlbGxPdXRsZXQiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmUGYoMCwwKX0sZGlyZWN0aXZlczpbQjFdLGVuY2Fwc3VsYXRpb246Mn0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoajEsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoiY2RrLWZvb3Rlci1yb3csIHRyW2Nkay1mb290ZXItcm93XSIsdGVtcGxhdGU6VDEsaG9zdDp7Y2xhc3M6ImNkay1mb290ZXItcm93Iixyb2xlOiJyb3cifSxjaGFuZ2VEZXRlY3Rpb246am4uRGVmYXVsdCxlbmNhcHN1bGF0aW9uOlduLk5vbmV9XX1dLG51bGwsbnVsbCk7Y2xhc3MgVTF7fVUxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxVMSl9LFUxLsm1Y21wPXNvKHt0eXBlOlUxLHNlbGVjdG9yczpbWyJjZGstcm93Il0sWyJ0ciIsImNkay1yb3ciLCIiXV0saG9zdEF0dHJzOlsicm9sZSIsInJvdyIsMSwiY2RrLXJvdyJdLGRlY2xzOjEsdmFyczowLGNvbnN0czpbWyJjZGtDZWxsT3V0bGV0IiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlBmKDAsMCl9LGRpcmVjdGl2ZXM6W0IxXSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFUxLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6ImNkay1yb3csIHRyW2Nkay1yb3ddIix0ZW1wbGF0ZTpUMSxob3N0OntjbGFzczoiY2RrLXJvdyIscm9sZToicm93In0sY2hhbmdlRGV0ZWN0aW9uOmpuLkRlZmF1bHQsZW5jYXBzdWxhdGlvbjpXbi5Ob25lfV19XSxudWxsLG51bGwpO2NsYXNzIFcxe2NvbnN0cnVjdG9yKHQpe3RoaXMudGVtcGxhdGVSZWY9dH19VzEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFcxKShnZihFYikpfSxXMS7JtWRpcj1obyh7dHlwZTpXMSxzZWxlY3RvcnM6W1sibmctdGVtcGxhdGUiLCJjZGtOb0RhdGFSb3ciLCIiXV19KSxXMS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkVifV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihXMSxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJuZy10ZW1wbGF0ZVtjZGtOb0RhdGFSb3ddIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkVifV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IEcxPVsidG9wIiwiYm90dG9tIiwibGVmdCIsInJpZ2h0Il07Y2xhc3MgWTF7Y29uc3RydWN0b3IodCxlLG4sbyxpPSEwLGE9ITAscil7dGhpcy5faXNOYXRpdmVIdG1sVGFibGU9dCx0aGlzLl9zdGlja0NlbGxDc3M9ZSx0aGlzLmRpcmVjdGlvbj1uLHRoaXMuX2NvYWxlc2NlZFN0eWxlU2NoZWR1bGVyPW8sdGhpcy5faXNCcm93c2VyPWksdGhpcy5fbmVlZHNQb3NpdGlvblN0aWNreU9uRWxlbWVudD1hLHRoaXMuX3Bvc2l0aW9uTGlzdGVuZXI9cix0aGlzLl9jYWNoZWRDZWxsV2lkdGhzPVtdLHRoaXMuX2JvcmRlckNlbGxDc3M9e3RvcDpgJHtlfS1ib3JkZXItZWxlbS10b3BgLGJvdHRvbTpgJHtlfS1ib3JkZXItZWxlbS1ib3R0b21gLGxlZnQ6YCR7ZX0tYm9yZGVyLWVsZW0tbGVmdGAscmlnaHQ6YCR7ZX0tYm9yZGVyLWVsZW0tcmlnaHRgfX1jbGVhclN0aWNreVBvc2l0aW9uaW5nKHQsZSl7Y29uc3Qgbj1bXTtmb3IoY29uc3QgZSBvZiB0KWlmKGUubm9kZVR5cGU9PT1lLkVMRU1FTlRfTk9ERSl7bi5wdXNoKGUpO2ZvcihsZXQgdD0wO3Q8ZS5jaGlsZHJlbi5sZW5ndGg7dCsrKW4ucHVzaChlLmNoaWxkcmVuW3RdKX10aGlzLl9jb2FsZXNjZWRTdHlsZVNjaGVkdWxlci5zY2hlZHVsZSgoKCk9Pntmb3IoY29uc3QgdCBvZiBuKXRoaXMuX3JlbW92ZVN0aWNreVN0eWxlKHQsZSl9KSl9dXBkYXRlU3RpY2t5Q29sdW1ucyh0LGUsbixvPSEwKXtpZighdC5sZW5ndGh8fCF0aGlzLl9pc0Jyb3dzZXJ8fCFlLnNvbWUoKHQ9PnQpKSYmIW4uc29tZSgodD0+dCkpKXJldHVybiB2b2lkKHRoaXMuX3Bvc2l0aW9uTGlzdGVuZXImJih0aGlzLl9wb3NpdGlvbkxpc3RlbmVyLnN0aWNreUNvbHVtbnNVcGRhdGVkKHtzaXplczpbXX0pLHRoaXMuX3Bvc2l0aW9uTGlzdGVuZXIuc3RpY2t5RW5kQ29sdW1uc1VwZGF0ZWQoe3NpemVzOltdfSkpKTtjb25zdCBpPXRbMF0sYT1pLmNoaWxkcmVuLmxlbmd0aCxyPXRoaXMuX2dldENlbGxXaWR0aHMoaSxvKSxzPXRoaXMuX2dldFN0aWNreVN0YXJ0Q29sdW1uUG9zaXRpb25zKHIsZSksbD10aGlzLl9nZXRTdGlja3lFbmRDb2x1bW5Qb3NpdGlvbnMocixuKSxjPWUubGFzdEluZGV4T2YoITApLGQ9bi5pbmRleE9mKCEwKTt0aGlzLl9jb2FsZXNjZWRTdHlsZVNjaGVkdWxlci5zY2hlZHVsZSgoKCk9Pntjb25zdCBvPSJydGwiPT09dGhpcy5kaXJlY3Rpb24saT1vPyJyaWdodCI6ImxlZnQiLHA9bz8ibGVmdCI6InJpZ2h0Ijtmb3IoY29uc3QgbyBvZiB0KWZvcihsZXQgdD0wO3Q8YTt0Kyspe2NvbnN0IGE9by5jaGlsZHJlblt0XTtlW3RdJiZ0aGlzLl9hZGRTdGlja3lTdHlsZShhLGksc1t0XSx0PT09Yyksblt0XSYmdGhpcy5fYWRkU3RpY2t5U3R5bGUoYSxwLGxbdF0sdD09PWQpfXRoaXMuX3Bvc2l0aW9uTGlzdGVuZXImJih0aGlzLl9wb3NpdGlvbkxpc3RlbmVyLnN0aWNreUNvbHVtbnNVcGRhdGVkKHtzaXplczotMT09PWM/W106ci5zbGljZSgwLGMrMSkubWFwKCgodCxuKT0+ZVtuXT90Om51bGwpKX0pLHRoaXMuX3Bvc2l0aW9uTGlzdGVuZXIuc3RpY2t5RW5kQ29sdW1uc1VwZGF0ZWQoe3NpemVzOi0xPT09ZD9bXTpyLnNsaWNlKGQpLm1hcCgoKHQsZSk9Pm5bZStkXT90Om51bGwpKS5yZXZlcnNlKCl9KSl9KSl9c3RpY2tSb3dzKHQsZSxuKXtpZighdGhpcy5faXNCcm93c2VyKXJldHVybjtjb25zdCBvPSJib3R0b20iPT09bj90LnNsaWNlKCkucmV2ZXJzZSgpOnQsaT0iYm90dG9tIj09PW4/ZS5zbGljZSgpLnJldmVyc2UoKTplLGE9W10scj1bXSxzPVtdO2ZvcihsZXQgdD0wLGU9MDt0PG8ubGVuZ3RoO3QrKyl7aWYoIWlbdF0pY29udGludWU7YVt0XT1lO2NvbnN0IG49b1t0XTtzW3RdPXRoaXMuX2lzTmF0aXZlSHRtbFRhYmxlP0FycmF5LmZyb20obi5jaGlsZHJlbik6W25dO2NvbnN0IGw9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7ZSs9bCxyW3RdPWx9Y29uc3QgbD1pLmxhc3RJbmRleE9mKCEwKTt0aGlzLl9jb2FsZXNjZWRTdHlsZVNjaGVkdWxlci5zY2hlZHVsZSgoKCk9Pnt2YXIgdCxlO2ZvcihsZXQgdD0wO3Q8by5sZW5ndGg7dCsrKXtpZighaVt0XSljb250aW51ZTtjb25zdCBlPWFbdF0sbz10PT09bDtmb3IoY29uc3QgaSBvZiBzW3RdKXRoaXMuX2FkZFN0aWNreVN0eWxlKGksbixlLG8pfSJ0b3AiPT09bj9udWxsPT09KHQ9dGhpcy5fcG9zaXRpb25MaXN0ZW5lcil8fHZvaWQgMD09PXR8fHQuc3RpY2t5SGVhZGVyUm93c1VwZGF0ZWQoe3NpemVzOnIsb2Zmc2V0czphLGVsZW1lbnRzOnN9KTpudWxsPT09KGU9dGhpcy5fcG9zaXRpb25MaXN0ZW5lcil8fHZvaWQgMD09PWV8fGUuc3RpY2t5Rm9vdGVyUm93c1VwZGF0ZWQoe3NpemVzOnIsb2Zmc2V0czphLGVsZW1lbnRzOnN9KX0pKX11cGRhdGVTdGlja3lGb290ZXJDb250YWluZXIodCxlKXtpZighdGhpcy5faXNOYXRpdmVIdG1sVGFibGUpcmV0dXJuO2NvbnN0IG49dC5xdWVyeVNlbGVjdG9yKCJ0Zm9vdCIpO3RoaXMuX2NvYWxlc2NlZFN0eWxlU2NoZWR1bGVyLnNjaGVkdWxlKCgoKT0+e2Uuc29tZSgodD0+IXQpKT90aGlzLl9yZW1vdmVTdGlja3lTdHlsZShuLFsiYm90dG9tIl0pOnRoaXMuX2FkZFN0aWNreVN0eWxlKG4sImJvdHRvbSIsMCwhMSl9KSl9X3JlbW92ZVN0aWNreVN0eWxlKHQsZSl7Zm9yKGNvbnN0IG4gb2YgZSl0LnN0eWxlW25dPSIiLHQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLl9ib3JkZXJDZWxsQ3NzW25dKTtHMS5zb21lKChuPT4tMT09PWUuaW5kZXhPZihuKSYmdC5zdHlsZVtuXSkpP3Quc3R5bGUuekluZGV4PXRoaXMuX2dldENhbGN1bGF0ZWRaSW5kZXgodCk6KHQuc3R5bGUuekluZGV4PSIiLHRoaXMuX25lZWRzUG9zaXRpb25TdGlja3lPbkVsZW1lbnQmJih0LnN0eWxlLnBvc2l0aW9uPSIiKSx0LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5fc3RpY2tDZWxsQ3NzKSl9X2FkZFN0aWNreVN0eWxlKHQsZSxuLG8pe3QuY2xhc3NMaXN0LmFkZCh0aGlzLl9zdGlja0NlbGxDc3MpLG8mJnQuY2xhc3NMaXN0LmFkZCh0aGlzLl9ib3JkZXJDZWxsQ3NzW2VdKSx0LnN0eWxlW2VdPWAke259cHhgLHQuc3R5bGUuekluZGV4PXRoaXMuX2dldENhbGN1bGF0ZWRaSW5kZXgodCksdGhpcy5fbmVlZHNQb3NpdGlvblN0aWNreU9uRWxlbWVudCYmKHQuc3R5bGUuY3NzVGV4dCs9InBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTsgcG9zaXRpb246IHN0aWNreTsgIil9X2dldENhbGN1bGF0ZWRaSW5kZXgodCl7Y29uc3QgZT17dG9wOjEwMCxib3R0b206MTAsbGVmdDoxLHJpZ2h0OjF9O2xldCBuPTA7Zm9yKGNvbnN0IG8gb2YgRzEpdC5zdHlsZVtvXSYmKG4rPWVbb10pO3JldHVybiBuP2Ake259YDoiIn1fZ2V0Q2VsbFdpZHRocyh0LGU9ITApe2lmKCFlJiZ0aGlzLl9jYWNoZWRDZWxsV2lkdGhzLmxlbmd0aClyZXR1cm4gdGhpcy5fY2FjaGVkQ2VsbFdpZHRocztjb25zdCBuPVtdLG89dC5jaGlsZHJlbjtmb3IobGV0IHQ9MDt0PG8ubGVuZ3RoO3QrKyl7bi5wdXNoKG9bdF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgpfXJldHVybiB0aGlzLl9jYWNoZWRDZWxsV2lkdGhzPW4sbn1fZ2V0U3RpY2t5U3RhcnRDb2x1bW5Qb3NpdGlvbnModCxlKXtjb25zdCBuPVtdO2xldCBvPTA7Zm9yKGxldCBpPTA7aTx0Lmxlbmd0aDtpKyspZVtpXSYmKG5baV09byxvKz10W2ldKTtyZXR1cm4gbn1fZ2V0U3RpY2t5RW5kQ29sdW1uUG9zaXRpb25zKHQsZSl7Y29uc3Qgbj1bXTtsZXQgbz0wO2ZvcihsZXQgaT10Lmxlbmd0aDtpPjA7aS0tKWVbaV0mJihuW2ldPW8sbys9dFtpXSk7cmV0dXJuIG59fQovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9mdW5jdGlvbiBxMSh0KXtyZXR1cm4gRXJyb3IoYENvdWxkIG5vdCBmaW5kIGNvbHVtbiB3aXRoIGlkICIke3R9Ii5gKX0KLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IFoxPW5ldyBlcigiQ0RLX1NQTCIpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi9jbGFzcyBYMXt9WDEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFgxKX0sWDEuybVkaXI9aG8oe3R5cGU6WDEsc2VsZWN0b3JzOltbImNkay10YWJsZSIsInJlY3ljbGVSb3dzIiwiIl0sWyJ0YWJsZSIsImNkay10YWJsZSIsIiIsInJlY3ljbGVSb3dzIiwiIl1dLGZlYXR1cmVzOltqaChbe3Byb3ZpZGU6V0wsdXNlQ2xhc3M6Vkx9XSldfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihYMSxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJjZGstdGFibGVbcmVjeWNsZVJvd3NdLCB0YWJsZVtjZGstdGFibGVdW3JlY3ljbGVSb3dzXSIscHJvdmlkZXJzOlt7cHJvdmlkZTpXTCx1c2VDbGFzczpWTH1dfV19XSxudWxsLG51bGwpO2NsYXNzIEsxe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy52aWV3Q29udGFpbmVyPXQsdGhpcy5lbGVtZW50UmVmPWV9fUsxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxLMSkoZ2YoRmIpLGdmKEtoKSl9LEsxLsm1ZGlyPWhvKHt0eXBlOksxLHNlbGVjdG9yczpbWyIiLCJyb3dPdXRsZXQiLCIiXV19KSxLMS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkZifSx7dHlwZTpLaH1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoSzEsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW3Jvd091dGxldF0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6RmJ9LHt0eXBlOktofV19KSxudWxsKTtjbGFzcyBKMXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMudmlld0NvbnRhaW5lcj10LHRoaXMuZWxlbWVudFJlZj1lfX1KMS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SjEpKGdmKEZiKSxnZihLaCkpfSxKMS7JtWRpcj1obyh7dHlwZTpKMSxzZWxlY3RvcnM6W1siIiwiaGVhZGVyUm93T3V0bGV0IiwiIl1dfSksSjEuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpGYn0se3R5cGU6S2h9XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEoxLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IltoZWFkZXJSb3dPdXRsZXRdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkZifSx7dHlwZTpLaH1dfSksbnVsbCk7Y2xhc3MgUTF7Y29uc3RydWN0b3IodCxlKXt0aGlzLnZpZXdDb250YWluZXI9dCx0aGlzLmVsZW1lbnRSZWY9ZX19UTEuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFExKShnZihGYiksZ2YoS2gpKX0sUTEuybVkaXI9aG8oe3R5cGU6UTEsc2VsZWN0b3JzOltbIiIsImZvb3RlclJvd091dGxldCIsIiJdXX0pLFExLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6RmJ9LHt0eXBlOktofV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihRMSxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJbZm9vdGVyUm93T3V0bGV0XSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpGYn0se3R5cGU6S2h9XX0pLG51bGwpO2NsYXNzICQxe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy52aWV3Q29udGFpbmVyPXQsdGhpcy5lbGVtZW50UmVmPWV9fSQxLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHwkMSkoZ2YoRmIpLGdmKEtoKSl9LCQxLsm1ZGlyPWhvKHt0eXBlOiQxLHNlbGVjdG9yczpbWyIiLCJub0RhdGFSb3dPdXRsZXQiLCIiXV19KSwkMS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOkZifSx7dHlwZTpLaH1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoJDEsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW25vRGF0YVJvd091dGxldF0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6RmJ9LHt0eXBlOktofV19KSxudWxsKTtjb25zdCB0Mz0nXG4gIDxuZy1jb250ZW50IHNlbGVjdD0iY2FwdGlvbiI+PC9uZy1jb250ZW50PlxuICA8bmctY29udGVudCBzZWxlY3Q9ImNvbGdyb3VwLCBjb2wiPjwvbmctY29udGVudD5cbiAgPG5nLWNvbnRhaW5lciBoZWFkZXJSb3dPdXRsZXQ+PC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgcm93T3V0bGV0PjwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyIG5vRGF0YVJvd091dGxldD48L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciBmb290ZXJSb3dPdXRsZXQ+PC9uZy1jb250YWluZXI+XG4nO2NsYXNzIGUze2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyxsLGMsZCl7dGhpcy5fZGlmZmVycz10LHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWUsdGhpcy5fZWxlbWVudFJlZj1uLHRoaXMuX2Rpcj1pLHRoaXMuX3BsYXRmb3JtPXIsdGhpcy5fdmlld1JlcGVhdGVyPXMsdGhpcy5fY29hbGVzY2VkU3R5bGVTY2hlZHVsZXI9bCx0aGlzLl92aWV3cG9ydFJ1bGVyPWMsdGhpcy5fc3RpY2t5UG9zaXRpb25pbmdMaXN0ZW5lcj1kLHRoaXMuX29uRGVzdHJveT1uZXcgQix0aGlzLl9jb2x1bW5EZWZzQnlOYW1lPW5ldyBNYXAsdGhpcy5fY3VzdG9tQ29sdW1uRGVmcz1uZXcgU2V0LHRoaXMuX2N1c3RvbVJvd0RlZnM9bmV3IFNldCx0aGlzLl9jdXN0b21IZWFkZXJSb3dEZWZzPW5ldyBTZXQsdGhpcy5fY3VzdG9tRm9vdGVyUm93RGVmcz1uZXcgU2V0LHRoaXMuX2hlYWRlclJvd0RlZkNoYW5nZWQ9ITAsdGhpcy5fZm9vdGVyUm93RGVmQ2hhbmdlZD0hMCx0aGlzLl9zdGlja3lDb2x1bW5TdHlsZXNOZWVkUmVzZXQ9ITAsdGhpcy5fZm9yY2VSZWNhbGN1bGF0ZUNlbGxXaWR0aHM9ITAsdGhpcy5fY2FjaGVkUmVuZGVyUm93c01hcD1uZXcgTWFwLHRoaXMuc3RpY2t5Q3NzQ2xhc3M9ImNkay10YWJsZS1zdGlja3kiLHRoaXMubmVlZHNQb3NpdGlvblN0aWNreU9uRWxlbWVudD0hMCx0aGlzLl9pc1Nob3dpbmdOb0RhdGFSb3c9ITEsdGhpcy5fbXVsdGlUZW1wbGF0ZURhdGFSb3dzPSExLHRoaXMuX2ZpeGVkTGF5b3V0PSExLHRoaXMuY29udGVudENoYW5nZWQ9bmV3IFN5LHRoaXMudmlld0NoYW5nZT1uZXcgaih7c3RhcnQ6MCxlbmQ6TnVtYmVyLk1BWF9WQUxVRX0pLG98fHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoInJvbGUiLCJ0YWJsZSIpLHRoaXMuX2RvY3VtZW50PWEsdGhpcy5faXNOYXRpdmVIdG1sVGFibGU9IlRBQkxFIj09PXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ub2RlTmFtZX1nZXQgdHJhY2tCeSgpe3JldHVybiB0aGlzLl90cmFja0J5Rm59c2V0IHRyYWNrQnkodCl7InVuZGVmaW5lZCIhPXR5cGVvZiBuZ0Rldk1vZGUmJiFuZ0Rldk1vZGV8fG51bGw9PXR8fCJmdW5jdGlvbiI9PXR5cGVvZiB0fHxjb25zb2xlLndhcm4oYHRyYWNrQnkgbXVzdCBiZSBhIGZ1bmN0aW9uLCBidXQgcmVjZWl2ZWQgJHtKU09OLnN0cmluZ2lmeSh0KX0uYCksdGhpcy5fdHJhY2tCeUZuPXR9Z2V0IGRhdGFTb3VyY2UoKXtyZXR1cm4gdGhpcy5fZGF0YVNvdXJjZX1zZXQgZGF0YVNvdXJjZSh0KXt0aGlzLl9kYXRhU291cmNlIT09dCYmdGhpcy5fc3dpdGNoRGF0YVNvdXJjZSh0KX1nZXQgbXVsdGlUZW1wbGF0ZURhdGFSb3dzKCl7cmV0dXJuIHRoaXMuX211bHRpVGVtcGxhdGVEYXRhUm93c31zZXQgbXVsdGlUZW1wbGF0ZURhdGFSb3dzKHQpe3RoaXMuX211bHRpVGVtcGxhdGVEYXRhUm93cz1lSCh0KSx0aGlzLl9yb3dPdXRsZXQmJnRoaXMuX3Jvd091dGxldC52aWV3Q29udGFpbmVyLmxlbmd0aCYmKHRoaXMuX2ZvcmNlUmVuZGVyRGF0YVJvd3MoKSx0aGlzLnVwZGF0ZVN0aWNreUNvbHVtblN0eWxlcygpKX1nZXQgZml4ZWRMYXlvdXQoKXtyZXR1cm4gdGhpcy5fZml4ZWRMYXlvdXR9c2V0IGZpeGVkTGF5b3V0KHQpe3RoaXMuX2ZpeGVkTGF5b3V0PWVIKHQpLHRoaXMuX2ZvcmNlUmVjYWxjdWxhdGVDZWxsV2lkdGhzPSEwLHRoaXMuX3N0aWNreUNvbHVtblN0eWxlc05lZWRSZXNldD0hMH1uZ09uSW5pdCgpe3RoaXMuX3NldHVwU3RpY2t5U3R5bGVyKCksdGhpcy5faXNOYXRpdmVIdG1sVGFibGUmJnRoaXMuX2FwcGx5TmF0aXZlVGFibGVTZWN0aW9ucygpLHRoaXMuX2RhdGFEaWZmZXI9dGhpcy5fZGlmZmVycy5maW5kKFtdKS5jcmVhdGUoKCh0LGUpPT50aGlzLnRyYWNrQnk/dGhpcy50cmFja0J5KGUuZGF0YUluZGV4LGUuZGF0YSk6ZSkpLHRoaXMuX3ZpZXdwb3J0UnVsZXIuY2hhbmdlKCkucGlwZShqZSh0aGlzLl9vbkRlc3Ryb3kpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fZm9yY2VSZWNhbGN1bGF0ZUNlbGxXaWR0aHM9ITB9KSl9bmdBZnRlckNvbnRlbnRDaGVja2VkKCl7aWYodGhpcy5fY2FjaGVSb3dEZWZzKCksdGhpcy5fY2FjaGVDb2x1bW5EZWZzKCksIXRoaXMuX2hlYWRlclJvd0RlZnMubGVuZ3RoJiYhdGhpcy5fZm9vdGVyUm93RGVmcy5sZW5ndGgmJiF0aGlzLl9yb3dEZWZzLmxlbmd0aCYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93KGZ1bmN0aW9uIHQoKXtyZXR1cm4gRXJyb3IoIk1pc3NpbmcgZGVmaW5pdGlvbnMgZm9yIGhlYWRlciwgZm9vdGVyLCBhbmQgcm93OyBjYW5ub3QgZGV0ZXJtaW5lIHdoaWNoIGNvbHVtbnMgc2hvdWxkIGJlIHJlbmRlcmVkLiIpfSkoKTtjb25zdCBlPXRoaXMuX3JlbmRlclVwZGF0ZWRDb2x1bW5zKCl8fHRoaXMuX2hlYWRlclJvd0RlZkNoYW5nZWR8fHRoaXMuX2Zvb3RlclJvd0RlZkNoYW5nZWQ7dGhpcy5fc3RpY2t5Q29sdW1uU3R5bGVzTmVlZFJlc2V0PXRoaXMuX3N0aWNreUNvbHVtblN0eWxlc05lZWRSZXNldHx8ZSx0aGlzLl9mb3JjZVJlY2FsY3VsYXRlQ2VsbFdpZHRocz1lLHRoaXMuX2hlYWRlclJvd0RlZkNoYW5nZWQmJih0aGlzLl9mb3JjZVJlbmRlckhlYWRlclJvd3MoKSx0aGlzLl9oZWFkZXJSb3dEZWZDaGFuZ2VkPSExKSx0aGlzLl9mb290ZXJSb3dEZWZDaGFuZ2VkJiYodGhpcy5fZm9yY2VSZW5kZXJGb290ZXJSb3dzKCksdGhpcy5fZm9vdGVyUm93RGVmQ2hhbmdlZD0hMSksdGhpcy5kYXRhU291cmNlJiZ0aGlzLl9yb3dEZWZzLmxlbmd0aD4wJiYhdGhpcy5fcmVuZGVyQ2hhbmdlU3Vic2NyaXB0aW9uP3RoaXMuX29ic2VydmVSZW5kZXJDaGFuZ2VzKCk6dGhpcy5fc3RpY2t5Q29sdW1uU3R5bGVzTmVlZFJlc2V0JiZ0aGlzLnVwZGF0ZVN0aWNreUNvbHVtblN0eWxlcygpLHRoaXMuX2NoZWNrU3RpY2t5U3RhdGVzKCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9yb3dPdXRsZXQudmlld0NvbnRhaW5lci5jbGVhcigpLHRoaXMuX25vRGF0YVJvd091dGxldC52aWV3Q29udGFpbmVyLmNsZWFyKCksdGhpcy5faGVhZGVyUm93T3V0bGV0LnZpZXdDb250YWluZXIuY2xlYXIoKSx0aGlzLl9mb290ZXJSb3dPdXRsZXQudmlld0NvbnRhaW5lci5jbGVhcigpLHRoaXMuX2NhY2hlZFJlbmRlclJvd3NNYXAuY2xlYXIoKSx0aGlzLl9vbkRlc3Ryb3kubmV4dCgpLHRoaXMuX29uRGVzdHJveS5jb21wbGV0ZSgpLEZMKHRoaXMuZGF0YVNvdXJjZSkmJnRoaXMuZGF0YVNvdXJjZS5kaXNjb25uZWN0KHRoaXMpfXJlbmRlclJvd3MoKXt0aGlzLl9yZW5kZXJSb3dzPXRoaXMuX2dldEFsbFJlbmRlclJvd3MoKTtjb25zdCB0PXRoaXMuX2RhdGFEaWZmZXIuZGlmZih0aGlzLl9yZW5kZXJSb3dzKTtpZighdClyZXR1cm4gdGhpcy5fdXBkYXRlTm9EYXRhUm93KCksdm9pZCB0aGlzLmNvbnRlbnRDaGFuZ2VkLm5leHQoKTtjb25zdCBlPXRoaXMuX3Jvd091dGxldC52aWV3Q29udGFpbmVyO3RoaXMuX3ZpZXdSZXBlYXRlci5hcHBseUNoYW5nZXModCxlLCgodCxlLG4pPT50aGlzLl9nZXRFbWJlZGRlZFZpZXdBcmdzKHQuaXRlbSxuKSksKHQ9PnQuaXRlbS5kYXRhKSwodD0+ezE9PT10Lm9wZXJhdGlvbiYmdC5jb250ZXh0JiZ0aGlzLl9yZW5kZXJDZWxsVGVtcGxhdGVGb3JJdGVtKHQucmVjb3JkLml0ZW0ucm93RGVmLHQuY29udGV4dCl9KSksdGhpcy5fdXBkYXRlUm93SW5kZXhDb250ZXh0KCksdC5mb3JFYWNoSWRlbnRpdHlDaGFuZ2UoKHQ9PntlLmdldCh0LmN1cnJlbnRJbmRleCkuY29udGV4dC4kaW1wbGljaXQ9dC5pdGVtLmRhdGF9KSksdGhpcy5fdXBkYXRlTm9EYXRhUm93KCksdGhpcy51cGRhdGVTdGlja3lDb2x1bW5TdHlsZXMoKSx0aGlzLmNvbnRlbnRDaGFuZ2VkLm5leHQoKX1hZGRDb2x1bW5EZWYodCl7dGhpcy5fY3VzdG9tQ29sdW1uRGVmcy5hZGQodCl9cmVtb3ZlQ29sdW1uRGVmKHQpe3RoaXMuX2N1c3RvbUNvbHVtbkRlZnMuZGVsZXRlKHQpfWFkZFJvd0RlZih0KXt0aGlzLl9jdXN0b21Sb3dEZWZzLmFkZCh0KX1yZW1vdmVSb3dEZWYodCl7dGhpcy5fY3VzdG9tUm93RGVmcy5kZWxldGUodCl9YWRkSGVhZGVyUm93RGVmKHQpe3RoaXMuX2N1c3RvbUhlYWRlclJvd0RlZnMuYWRkKHQpLHRoaXMuX2hlYWRlclJvd0RlZkNoYW5nZWQ9ITB9cmVtb3ZlSGVhZGVyUm93RGVmKHQpe3RoaXMuX2N1c3RvbUhlYWRlclJvd0RlZnMuZGVsZXRlKHQpLHRoaXMuX2hlYWRlclJvd0RlZkNoYW5nZWQ9ITB9YWRkRm9vdGVyUm93RGVmKHQpe3RoaXMuX2N1c3RvbUZvb3RlclJvd0RlZnMuYWRkKHQpLHRoaXMuX2Zvb3RlclJvd0RlZkNoYW5nZWQ9ITB9cmVtb3ZlRm9vdGVyUm93RGVmKHQpe3RoaXMuX2N1c3RvbUZvb3RlclJvd0RlZnMuZGVsZXRlKHQpLHRoaXMuX2Zvb3RlclJvd0RlZkNoYW5nZWQ9ITB9c2V0Tm9EYXRhUm93KHQpe3RoaXMuX2N1c3RvbU5vRGF0YVJvdz10fXVwZGF0ZVN0aWNreUhlYWRlclJvd1N0eWxlcygpe2NvbnN0IHQ9dGhpcy5fZ2V0UmVuZGVyZWRSb3dzKHRoaXMuX2hlYWRlclJvd091dGxldCksZT10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigidGhlYWQiKTtlJiYoZS5zdHlsZS5kaXNwbGF5PXQubGVuZ3RoPyIiOiJub25lIik7Y29uc3Qgbj10aGlzLl9oZWFkZXJSb3dEZWZzLm1hcCgodD0+dC5zdGlja3kpKTt0aGlzLl9zdGlja3lTdHlsZXIuY2xlYXJTdGlja3lQb3NpdGlvbmluZyh0LFsidG9wIl0pLHRoaXMuX3N0aWNreVN0eWxlci5zdGlja1Jvd3ModCxuLCJ0b3AiKSx0aGlzLl9oZWFkZXJSb3dEZWZzLmZvckVhY2goKHQ9PnQucmVzZXRTdGlja3lDaGFuZ2VkKCkpKX11cGRhdGVTdGlja3lGb290ZXJSb3dTdHlsZXMoKXtjb25zdCB0PXRoaXMuX2dldFJlbmRlcmVkUm93cyh0aGlzLl9mb290ZXJSb3dPdXRsZXQpLGU9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoInRmb290Iik7ZSYmKGUuc3R5bGUuZGlzcGxheT10Lmxlbmd0aD8iIjoibm9uZSIpO2NvbnN0IG49dGhpcy5fZm9vdGVyUm93RGVmcy5tYXAoKHQ9PnQuc3RpY2t5KSk7dGhpcy5fc3RpY2t5U3R5bGVyLmNsZWFyU3RpY2t5UG9zaXRpb25pbmcodCxbImJvdHRvbSJdKSx0aGlzLl9zdGlja3lTdHlsZXIuc3RpY2tSb3dzKHQsbiwiYm90dG9tIiksdGhpcy5fc3RpY2t5U3R5bGVyLnVwZGF0ZVN0aWNreUZvb3RlckNvbnRhaW5lcih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsbiksdGhpcy5fZm9vdGVyUm93RGVmcy5mb3JFYWNoKCh0PT50LnJlc2V0U3RpY2t5Q2hhbmdlZCgpKSl9dXBkYXRlU3RpY2t5Q29sdW1uU3R5bGVzKCl7Y29uc3QgdD10aGlzLl9nZXRSZW5kZXJlZFJvd3ModGhpcy5faGVhZGVyUm93T3V0bGV0KSxlPXRoaXMuX2dldFJlbmRlcmVkUm93cyh0aGlzLl9yb3dPdXRsZXQpLG49dGhpcy5fZ2V0UmVuZGVyZWRSb3dzKHRoaXMuX2Zvb3RlclJvd091dGxldCk7KHRoaXMuX2lzTmF0aXZlSHRtbFRhYmxlJiYhdGhpcy5fZml4ZWRMYXlvdXR8fHRoaXMuX3N0aWNreUNvbHVtblN0eWxlc05lZWRSZXNldCkmJih0aGlzLl9zdGlja3lTdHlsZXIuY2xlYXJTdGlja3lQb3NpdGlvbmluZyhbLi4udCwuLi5lLC4uLm5dLFsibGVmdCIsInJpZ2h0Il0pLHRoaXMuX3N0aWNreUNvbHVtblN0eWxlc05lZWRSZXNldD0hMSksdC5mb3JFYWNoKCgodCxlKT0+e3RoaXMuX2FkZFN0aWNreUNvbHVtblN0eWxlcyhbdF0sdGhpcy5faGVhZGVyUm93RGVmc1tlXSl9KSksdGhpcy5fcm93RGVmcy5mb3JFYWNoKCh0PT57Y29uc3Qgbj1bXTtmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rKyl0aGlzLl9yZW5kZXJSb3dzW29dLnJvd0RlZj09PXQmJm4ucHVzaChlW29dKTt0aGlzLl9hZGRTdGlja3lDb2x1bW5TdHlsZXMobix0KX0pKSxuLmZvckVhY2goKCh0LGUpPT57dGhpcy5fYWRkU3RpY2t5Q29sdW1uU3R5bGVzKFt0XSx0aGlzLl9mb290ZXJSb3dEZWZzW2VdKX0pKSxBcnJheS5mcm9tKHRoaXMuX2NvbHVtbkRlZnNCeU5hbWUudmFsdWVzKCkpLmZvckVhY2goKHQ9PnQucmVzZXRTdGlja3lDaGFuZ2VkKCkpKX1fZ2V0QWxsUmVuZGVyUm93cygpe2NvbnN0IHQ9W10sZT10aGlzLl9jYWNoZWRSZW5kZXJSb3dzTWFwO3RoaXMuX2NhY2hlZFJlbmRlclJvd3NNYXA9bmV3IE1hcDtmb3IobGV0IG49MDtuPHRoaXMuX2RhdGEubGVuZ3RoO24rKyl7bGV0IG89dGhpcy5fZGF0YVtuXTtjb25zdCBpPXRoaXMuX2dldFJlbmRlclJvd3NGb3JEYXRhKG8sbixlLmdldChvKSk7dGhpcy5fY2FjaGVkUmVuZGVyUm93c01hcC5oYXMobyl8fHRoaXMuX2NhY2hlZFJlbmRlclJvd3NNYXAuc2V0KG8sbmV3IFdlYWtNYXApO2ZvcihsZXQgZT0wO2U8aS5sZW5ndGg7ZSsrKXtsZXQgbj1pW2VdO2NvbnN0IG89dGhpcy5fY2FjaGVkUmVuZGVyUm93c01hcC5nZXQobi5kYXRhKTtvLmhhcyhuLnJvd0RlZik/by5nZXQobi5yb3dEZWYpLnB1c2gobik6by5zZXQobi5yb3dEZWYsW25dKSx0LnB1c2gobil9fXJldHVybiB0fV9nZXRSZW5kZXJSb3dzRm9yRGF0YSh0LGUsbil7cmV0dXJuIHRoaXMuX2dldFJvd0RlZnModCxlKS5tYXAoKG89Pntjb25zdCBpPW4mJm4uaGFzKG8pP24uZ2V0KG8pOltdO2lmKGkubGVuZ3RoKXtjb25zdCB0PWkuc2hpZnQoKTtyZXR1cm4gdC5kYXRhSW5kZXg9ZSx0fXJldHVybntkYXRhOnQscm93RGVmOm8sZGF0YUluZGV4OmV9fSkpfV9jYWNoZUNvbHVtbkRlZnMoKXt0aGlzLl9jb2x1bW5EZWZzQnlOYW1lLmNsZWFyKCk7bjModGhpcy5fZ2V0T3duRGVmcyh0aGlzLl9jb250ZW50Q29sdW1uRGVmcyksdGhpcy5fY3VzdG9tQ29sdW1uRGVmcykuZm9yRWFjaCgodD0+e2lmKHRoaXMuX2NvbHVtbkRlZnNCeU5hbWUuaGFzKHQubmFtZSkmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyhmdW5jdGlvbiBlKHQpe3JldHVybiBFcnJvcihgRHVwbGljYXRlIGNvbHVtbiBkZWZpbml0aW9uIG5hbWUgcHJvdmlkZWQ6ICIke3R9Ii5gKX0pKHQubmFtZSk7dGhpcy5fY29sdW1uRGVmc0J5TmFtZS5zZXQodC5uYW1lLHQpfSkpfV9jYWNoZVJvd0RlZnMoKXt0aGlzLl9oZWFkZXJSb3dEZWZzPW4zKHRoaXMuX2dldE93bkRlZnModGhpcy5fY29udGVudEhlYWRlclJvd0RlZnMpLHRoaXMuX2N1c3RvbUhlYWRlclJvd0RlZnMpLHRoaXMuX2Zvb3RlclJvd0RlZnM9bjModGhpcy5fZ2V0T3duRGVmcyh0aGlzLl9jb250ZW50Rm9vdGVyUm93RGVmcyksdGhpcy5fY3VzdG9tRm9vdGVyUm93RGVmcyksdGhpcy5fcm93RGVmcz1uMyh0aGlzLl9nZXRPd25EZWZzKHRoaXMuX2NvbnRlbnRSb3dEZWZzKSx0aGlzLl9jdXN0b21Sb3dEZWZzKTtjb25zdCB0PXRoaXMuX3Jvd0RlZnMuZmlsdGVyKCh0PT4hdC53aGVuKSk7aWYoIXRoaXMubXVsdGlUZW1wbGF0ZURhdGFSb3dzJiZ0Lmxlbmd0aD4xJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3coZnVuY3Rpb24gZSgpe3JldHVybiBFcnJvcigiVGhlcmUgY2FuIG9ubHkgYmUgb25lIGRlZmF1bHQgcm93IHdpdGhvdXQgYSB3aGVuIHByZWRpY2F0ZSBmdW5jdGlvbi4iKX0pKCk7dGhpcy5fZGVmYXVsdFJvd0RlZj10WzBdfV9yZW5kZXJVcGRhdGVkQ29sdW1ucygpe2NvbnN0IHQ9KHQsZSk9PnR8fCEhZS5nZXRDb2x1bW5zRGlmZigpLGU9dGhpcy5fcm93RGVmcy5yZWR1Y2UodCwhMSk7ZSYmdGhpcy5fZm9yY2VSZW5kZXJEYXRhUm93cygpO2NvbnN0IG49dGhpcy5faGVhZGVyUm93RGVmcy5yZWR1Y2UodCwhMSk7biYmdGhpcy5fZm9yY2VSZW5kZXJIZWFkZXJSb3dzKCk7Y29uc3Qgbz10aGlzLl9mb290ZXJSb3dEZWZzLnJlZHVjZSh0LCExKTtyZXR1cm4gbyYmdGhpcy5fZm9yY2VSZW5kZXJGb290ZXJSb3dzKCksZXx8bnx8b31fc3dpdGNoRGF0YVNvdXJjZSh0KXt0aGlzLl9kYXRhPVtdLEZMKHRoaXMuZGF0YVNvdXJjZSkmJnRoaXMuZGF0YVNvdXJjZS5kaXNjb25uZWN0KHRoaXMpLHRoaXMuX3JlbmRlckNoYW5nZVN1YnNjcmlwdGlvbiYmKHRoaXMuX3JlbmRlckNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX3JlbmRlckNoYW5nZVN1YnNjcmlwdGlvbj1udWxsKSx0fHwodGhpcy5fZGF0YURpZmZlciYmdGhpcy5fZGF0YURpZmZlci5kaWZmKFtdKSx0aGlzLl9yb3dPdXRsZXQudmlld0NvbnRhaW5lci5jbGVhcigpKSx0aGlzLl9kYXRhU291cmNlPXR9X29ic2VydmVSZW5kZXJDaGFuZ2VzKCl7aWYoIXRoaXMuZGF0YVNvdXJjZSlyZXR1cm47bGV0IHQ7aWYoRkwodGhpcy5kYXRhU291cmNlKT90PXRoaXMuZGF0YVNvdXJjZS5jb25uZWN0KHRoaXMpOkx0KHRoaXMuZGF0YVNvdXJjZSk/dD10aGlzLmRhdGFTb3VyY2U6QXJyYXkuaXNBcnJheSh0aGlzLmRhdGFTb3VyY2UpJiYodD16dCh0aGlzLmRhdGFTb3VyY2UpKSx2b2lkIDA9PT10JiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3coZnVuY3Rpb24gZSgpe3JldHVybiBFcnJvcigiUHJvdmlkZWQgZGF0YSBzb3VyY2UgZGlkIG5vdCBtYXRjaCBhbiBhcnJheSwgT2JzZXJ2YWJsZSwgb3IgRGF0YVNvdXJjZSIpfSkoKTt0aGlzLl9yZW5kZXJDaGFuZ2VTdWJzY3JpcHRpb249dC5waXBlKGplKHRoaXMuX29uRGVzdHJveSkpLnN1YnNjcmliZSgodD0+e3RoaXMuX2RhdGE9dHx8W10sdGhpcy5yZW5kZXJSb3dzKCl9KSl9X2ZvcmNlUmVuZGVySGVhZGVyUm93cygpe3RoaXMuX2hlYWRlclJvd091dGxldC52aWV3Q29udGFpbmVyLmxlbmd0aD4wJiZ0aGlzLl9oZWFkZXJSb3dPdXRsZXQudmlld0NvbnRhaW5lci5jbGVhcigpLHRoaXMuX2hlYWRlclJvd0RlZnMuZm9yRWFjaCgoKHQsZSk9PnRoaXMuX3JlbmRlclJvdyh0aGlzLl9oZWFkZXJSb3dPdXRsZXQsdCxlKSkpLHRoaXMudXBkYXRlU3RpY2t5SGVhZGVyUm93U3R5bGVzKCl9X2ZvcmNlUmVuZGVyRm9vdGVyUm93cygpe3RoaXMuX2Zvb3RlclJvd091dGxldC52aWV3Q29udGFpbmVyLmxlbmd0aD4wJiZ0aGlzLl9mb290ZXJSb3dPdXRsZXQudmlld0NvbnRhaW5lci5jbGVhcigpLHRoaXMuX2Zvb3RlclJvd0RlZnMuZm9yRWFjaCgoKHQsZSk9PnRoaXMuX3JlbmRlclJvdyh0aGlzLl9mb290ZXJSb3dPdXRsZXQsdCxlKSkpLHRoaXMudXBkYXRlU3RpY2t5Rm9vdGVyUm93U3R5bGVzKCl9X2FkZFN0aWNreUNvbHVtblN0eWxlcyh0LGUpe2NvbnN0IG49QXJyYXkuZnJvbShlLmNvbHVtbnN8fFtdKS5tYXAoKHQ9Pntjb25zdCBlPXRoaXMuX2NvbHVtbkRlZnNCeU5hbWUuZ2V0KHQpO2lmKCFlJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3cgcTEodCk7cmV0dXJuIGV9KSksbz1uLm1hcCgodD0+dC5zdGlja3kpKSxpPW4ubWFwKCh0PT50LnN0aWNreUVuZCkpO3RoaXMuX3N0aWNreVN0eWxlci51cGRhdGVTdGlja3lDb2x1bW5zKHQsbyxpLCF0aGlzLl9maXhlZExheW91dHx8dGhpcy5fZm9yY2VSZWNhbGN1bGF0ZUNlbGxXaWR0aHMpfV9nZXRSZW5kZXJlZFJvd3ModCl7Y29uc3QgZT1bXTtmb3IobGV0IG49MDtuPHQudmlld0NvbnRhaW5lci5sZW5ndGg7bisrKXtjb25zdCBvPXQudmlld0NvbnRhaW5lci5nZXQobik7ZS5wdXNoKG8ucm9vdE5vZGVzWzBdKX1yZXR1cm4gZX1fZ2V0Um93RGVmcyh0LGUpe2lmKDE9PXRoaXMuX3Jvd0RlZnMubGVuZ3RoKXJldHVyblt0aGlzLl9yb3dEZWZzWzBdXTtsZXQgbj1bXTtpZih0aGlzLm11bHRpVGVtcGxhdGVEYXRhUm93cyluPXRoaXMuX3Jvd0RlZnMuZmlsdGVyKChuPT4hbi53aGVufHxuLndoZW4oZSx0KSkpO2Vsc2V7bGV0IG89dGhpcy5fcm93RGVmcy5maW5kKChuPT5uLndoZW4mJm4ud2hlbihlLHQpKSl8fHRoaXMuX2RlZmF1bHRSb3dEZWY7byYmbi5wdXNoKG8pfWlmKCFuLmxlbmd0aCYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93KGZ1bmN0aW9uIG8odCl7cmV0dXJuIEVycm9yKGBDb3VsZCBub3QgZmluZCBhIG1hdGNoaW5nIHJvdyBkZWZpbml0aW9uIGZvciB0aGVwcm92aWRlZCByb3cgZGF0YTogJHtKU09OLnN0cmluZ2lmeSh0KX1gKX0pKHQpO3JldHVybiBufV9nZXRFbWJlZGRlZFZpZXdBcmdzKHQsZSl7cmV0dXJue3RlbXBsYXRlUmVmOnQucm93RGVmLnRlbXBsYXRlLGNvbnRleHQ6eyRpbXBsaWNpdDp0LmRhdGF9LGluZGV4OmV9fV9yZW5kZXJSb3codCxlLG4sbz17fSl7Y29uc3QgaT10LnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KGUudGVtcGxhdGUsbyxuKTtyZXR1cm4gdGhpcy5fcmVuZGVyQ2VsbFRlbXBsYXRlRm9ySXRlbShlLG8pLGl9X3JlbmRlckNlbGxUZW1wbGF0ZUZvckl0ZW0odCxlKXtmb3IobGV0IG4gb2YgdGhpcy5fZ2V0Q2VsbFRlbXBsYXRlcyh0KSlCMS5tb3N0UmVjZW50Q2VsbE91dGxldCYmQjEubW9zdFJlY2VudENlbGxPdXRsZXQuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KG4sZSk7dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9X3VwZGF0ZVJvd0luZGV4Q29udGV4dCgpe2NvbnN0IHQ9dGhpcy5fcm93T3V0bGV0LnZpZXdDb250YWluZXI7Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXtjb25zdCBvPXQuZ2V0KGUpLmNvbnRleHQ7by5jb3VudD1uLG8uZmlyc3Q9MD09PWUsby5sYXN0PWU9PT1uLTEsby5ldmVuPWUlMj09MCxvLm9kZD0hby5ldmVuLHRoaXMubXVsdGlUZW1wbGF0ZURhdGFSb3dzPyhvLmRhdGFJbmRleD10aGlzLl9yZW5kZXJSb3dzW2VdLmRhdGFJbmRleCxvLnJlbmRlckluZGV4PWUpOm8uaW5kZXg9dGhpcy5fcmVuZGVyUm93c1tlXS5kYXRhSW5kZXh9fV9nZXRDZWxsVGVtcGxhdGVzKHQpe3JldHVybiB0JiZ0LmNvbHVtbnM/QXJyYXkuZnJvbSh0LmNvbHVtbnMsKGU9Pntjb25zdCBuPXRoaXMuX2NvbHVtbkRlZnNCeU5hbWUuZ2V0KGUpO2lmKCFuJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkpdGhyb3cgcTEoZSk7cmV0dXJuIHQuZXh0cmFjdENlbGxUZW1wbGF0ZShuKX0pKTpbXX1fYXBwbHlOYXRpdmVUYWJsZVNlY3Rpb25zKCl7Y29uc3QgdD10aGlzLl9kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksZT1be3RhZzoidGhlYWQiLG91dGxldHM6W3RoaXMuX2hlYWRlclJvd091dGxldF19LHt0YWc6InRib2R5IixvdXRsZXRzOlt0aGlzLl9yb3dPdXRsZXQsdGhpcy5fbm9EYXRhUm93T3V0bGV0XX0se3RhZzoidGZvb3QiLG91dGxldHM6W3RoaXMuX2Zvb3RlclJvd091dGxldF19XTtmb3IoY29uc3QgbiBvZiBlKXtjb25zdCBlPXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQobi50YWcpO2Uuc2V0QXR0cmlidXRlKCJyb2xlIiwicm93Z3JvdXAiKTtmb3IoY29uc3QgdCBvZiBuLm91dGxldHMpZS5hcHBlbmRDaGlsZCh0LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7dC5hcHBlbmRDaGlsZChlKX10aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQodCl9X2ZvcmNlUmVuZGVyRGF0YVJvd3MoKXt0aGlzLl9kYXRhRGlmZmVyLmRpZmYoW10pLHRoaXMuX3Jvd091dGxldC52aWV3Q29udGFpbmVyLmNsZWFyKCksdGhpcy5yZW5kZXJSb3dzKCl9X2NoZWNrU3RpY2t5U3RhdGVzKCl7Y29uc3QgdD0odCxlKT0+dHx8ZS5oYXNTdGlja3lDaGFuZ2VkKCk7dGhpcy5faGVhZGVyUm93RGVmcy5yZWR1Y2UodCwhMSkmJnRoaXMudXBkYXRlU3RpY2t5SGVhZGVyUm93U3R5bGVzKCksdGhpcy5fZm9vdGVyUm93RGVmcy5yZWR1Y2UodCwhMSkmJnRoaXMudXBkYXRlU3RpY2t5Rm9vdGVyUm93U3R5bGVzKCksQXJyYXkuZnJvbSh0aGlzLl9jb2x1bW5EZWZzQnlOYW1lLnZhbHVlcygpKS5yZWR1Y2UodCwhMSkmJih0aGlzLl9zdGlja3lDb2x1bW5TdHlsZXNOZWVkUmVzZXQ9ITAsdGhpcy51cGRhdGVTdGlja3lDb2x1bW5TdHlsZXMoKSl9X3NldHVwU3RpY2t5U3R5bGVyKCl7dGhpcy5fc3RpY2t5U3R5bGVyPW5ldyBZMSh0aGlzLl9pc05hdGl2ZUh0bWxUYWJsZSx0aGlzLnN0aWNreUNzc0NsYXNzLHRoaXMuX2Rpcj90aGlzLl9kaXIudmFsdWU6Imx0ciIsdGhpcy5fY29hbGVzY2VkU3R5bGVTY2hlZHVsZXIsdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyLHRoaXMubmVlZHNQb3NpdGlvblN0aWNreU9uRWxlbWVudCx0aGlzLl9zdGlja3lQb3NpdGlvbmluZ0xpc3RlbmVyKSwodGhpcy5fZGlyP3RoaXMuX2Rpci5jaGFuZ2U6enQoKSkucGlwZShqZSh0aGlzLl9vbkRlc3Ryb3kpKS5zdWJzY3JpYmUoKHQ9Pnt0aGlzLl9zdGlja3lTdHlsZXIuZGlyZWN0aW9uPXQsdGhpcy51cGRhdGVTdGlja3lDb2x1bW5TdHlsZXMoKX0pKX1fZ2V0T3duRGVmcyh0KXtyZXR1cm4gdC5maWx0ZXIoKHQ9PiF0Ll90YWJsZXx8dC5fdGFibGU9PT10aGlzKSl9X3VwZGF0ZU5vRGF0YVJvdygpe2NvbnN0IHQ9dGhpcy5fY3VzdG9tTm9EYXRhUm93fHx0aGlzLl9ub0RhdGFSb3c7aWYodCl7Y29uc3QgZT0wPT09dGhpcy5fcm93T3V0bGV0LnZpZXdDb250YWluZXIubGVuZ3RoO2lmKGUhPT10aGlzLl9pc1Nob3dpbmdOb0RhdGFSb3cpe2NvbnN0IG49dGhpcy5fbm9EYXRhUm93T3V0bGV0LnZpZXdDb250YWluZXI7ZT9uLmNyZWF0ZUVtYmVkZGVkVmlldyh0LnRlbXBsYXRlUmVmKTpuLmNsZWFyKCksdGhpcy5faXNTaG93aW5nTm9EYXRhUm93PWV9fX19ZnVuY3Rpb24gbjModCxlKXtyZXR1cm4gdC5jb25jYXQoQXJyYXkuZnJvbShlKSl9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2UzLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxlMykoZ2YoaGIpLGdmKE9iKSxnZihLaCksR2EoInJvbGUiKSxnZih2Riw4KSxnZihzTSksZ2YoY0gpLGdmKFdMKSxnZihFMSksZ2YoUUwpLGdmKFoxLDEyKSl9LGUzLsm1Y21wPXNvKHt0eXBlOmUzLHNlbGVjdG9yczpbWyJjZGstdGFibGUiXSxbInRhYmxlIiwiY2RrLXRhYmxlIiwiIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uIHQoZSxuLG8pe2lmKDEmZSYmKGp5KG8sVzEsNSksankobyxQMSw1KSxqeShvLEwxLDUpLGp5KG8sSTEsNSksankobyxGMSw1KSksMiZlKXtsZXQgdDtCeSh0PVV5KCkpJiYobi5fbm9EYXRhUm93PXQuZmlyc3QpLEJ5KHQ9VXkoKSkmJihuLl9jb250ZW50Q29sdW1uRGVmcz10KSxCeSh0PVV5KCkpJiYobi5fY29udGVudFJvd0RlZnM9dCksQnkodD1VeSgpKSYmKG4uX2NvbnRlbnRIZWFkZXJSb3dEZWZzPXQpLEJ5KHQ9VXkoKSkmJihuLl9jb250ZW50Rm9vdGVyUm93RGVmcz10KX19LHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoVnkoSzEsNyksVnkoSjEsNyksVnkoUTEsNyksVnkoJDEsNykpLDImZSl7bGV0IHQ7QnkodD1VeSgpKSYmKG4uX3Jvd091dGxldD10LmZpcnN0KSxCeSh0PVV5KCkpJiYobi5faGVhZGVyUm93T3V0bGV0PXQuZmlyc3QpLEJ5KHQ9VXkoKSkmJihuLl9mb290ZXJSb3dPdXRsZXQ9dC5maXJzdCksQnkodD1VeSgpKSYmKG4uX25vRGF0YVJvd091dGxldD10LmZpcnN0KX19LGhvc3RBdHRyczpbMSwiY2RrLXRhYmxlIl0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmY3UoImNkay10YWJsZS1maXhlZC1sYXlvdXQiLG4uZml4ZWRMYXlvdXQpfSxpbnB1dHM6e3RyYWNrQnk6InRyYWNrQnkiLGRhdGFTb3VyY2U6ImRhdGFTb3VyY2UiLG11bHRpVGVtcGxhdGVEYXRhUm93czoibXVsdGlUZW1wbGF0ZURhdGFSb3dzIixmaXhlZExheW91dDoiZml4ZWRMYXlvdXQifSxvdXRwdXRzOntjb250ZW50Q2hhbmdlZDoiY29udGVudENoYW5nZWQifSxleHBvcnRBczpbImNka1RhYmxlIl0sZmVhdHVyZXM6W2poKFt7cHJvdmlkZTpfMSx1c2VFeGlzdGluZzplM30se3Byb3ZpZGU6V0wsdXNlQ2xhc3M6Qkx9LHtwcm92aWRlOkUxLHVzZUNsYXNzOkExfSx7cHJvdmlkZTpaMSx1c2VWYWx1ZTpudWxsfV0pXSxuZ0NvbnRlbnRTZWxlY3RvcnM6WyJjYXB0aW9uIiwiY29sZ3JvdXAsIGNvbCJdLGRlY2xzOjYsdmFyczowLGNvbnN0czpbWyJoZWFkZXJSb3dPdXRsZXQiLCIiXSxbInJvd091dGxldCIsIiJdLFsibm9EYXRhUm93T3V0bGV0IiwiIl0sWyJmb290ZXJSb3dPdXRsZXQiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKEhmKGcxKSxGZigwKSxGZigxLDEpLFBmKDIsMCksUGYoMywxKSxQZig0LDIpLFBmKDUsMykpfSxkaXJlY3RpdmVzOltKMSxLMSwkMSxRMV0sc3R5bGVzOlsiLmNkay10YWJsZS1maXhlZC1sYXlvdXR7dGFibGUtbGF5b3V0OmZpeGVkfVxuIl0sZW5jYXBzdWxhdGlvbjoyfSksZTMuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpoYn0se3R5cGU6T2J9LHt0eXBlOktofSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6JGEsYXJnczpbInJvbGUiXX1dfSx7dHlwZTp2RixkZWNvcmF0b3JzOlt7dHlwZTpCcn1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19LHt0eXBlOmNIfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbV0xdfV19LHt0eXBlOkExLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W0UxXX1dfSx7dHlwZTpRTH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpqcn0se3R5cGU6THIsYXJnczpbWjFdfV19XSxlMy5wcm9wRGVjb3JhdG9ycz17dHJhY2tCeTpbe3R5cGU6Ul99XSxkYXRhU291cmNlOlt7dHlwZTpSX31dLG11bHRpVGVtcGxhdGVEYXRhUm93czpbe3R5cGU6Ul99XSxmaXhlZExheW91dDpbe3R5cGU6Ul99XSxjb250ZW50Q2hhbmdlZDpbe3R5cGU6RV99XSxfcm93T3V0bGV0Olt7dHlwZTphcixhcmdzOltLMSx7c3RhdGljOiEwfV19XSxfaGVhZGVyUm93T3V0bGV0Olt7dHlwZTphcixhcmdzOltKMSx7c3RhdGljOiEwfV19XSxfZm9vdGVyUm93T3V0bGV0Olt7dHlwZTphcixhcmdzOltRMSx7c3RhdGljOiEwfV19XSxfbm9EYXRhUm93T3V0bGV0Olt7dHlwZTphcixhcmdzOlskMSx7c3RhdGljOiEwfV19XSxfY29udGVudENvbHVtbkRlZnM6W3t0eXBlOm9yLGFyZ3M6W1AxLHtkZXNjZW5kYW50czohMH1dfV0sX2NvbnRlbnRSb3dEZWZzOlt7dHlwZTpvcixhcmdzOltMMSx7ZGVzY2VuZGFudHM6ITB9XX1dLF9jb250ZW50SGVhZGVyUm93RGVmczpbe3R5cGU6b3IsYXJnczpbSTEse2Rlc2NlbmRhbnRzOiEwfV19XSxfY29udGVudEZvb3RlclJvd0RlZnM6W3t0eXBlOm9yLGFyZ3M6W0YxLHtkZXNjZW5kYW50czohMH1dfV0sX25vRGF0YVJvdzpbe3R5cGU6aXIsYXJnczpbVzFdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZTMsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoiY2RrLXRhYmxlLCB0YWJsZVtjZGstdGFibGVdIixleHBvcnRBczoiY2RrVGFibGUiLHRlbXBsYXRlOnQzLGhvc3Q6e2NsYXNzOiJjZGstdGFibGUiLCJbY2xhc3MuY2RrLXRhYmxlLWZpeGVkLWxheW91dF0iOiJmaXhlZExheW91dCJ9LGVuY2Fwc3VsYXRpb246V24uTm9uZSxjaGFuZ2VEZXRlY3Rpb246am4uRGVmYXVsdCxwcm92aWRlcnM6W3twcm92aWRlOl8xLHVzZUV4aXN0aW5nOmUzfSx7cHJvdmlkZTpXTCx1c2VDbGFzczpCTH0se3Byb3ZpZGU6RTEsdXNlQ2xhc3M6QTF9LHtwcm92aWRlOloxLHVzZVZhbHVlOm51bGx9XSxzdHlsZXM6WyIuY2RrLXRhYmxlLWZpeGVkLWxheW91dHt0YWJsZS1sYXlvdXQ6Zml4ZWR9XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmhifSx7dHlwZTpPYn0se3R5cGU6S2h9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTokYSxhcmdzOlsicm9sZSJdfV19LHt0eXBlOnZGLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX0se3R5cGU6Y0h9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltXTF19XX0se3R5cGU6QTEsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbRTFdfV19LHt0eXBlOlFMfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOmpyfSx7dHlwZTpMcixhcmdzOltaMV19XX1dfSkse2NvbnRlbnRDaGFuZ2VkOlt7dHlwZTpFX31dLHRyYWNrQnk6W3t0eXBlOlJffV0sZGF0YVNvdXJjZTpbe3R5cGU6Ul99XSxtdWx0aVRlbXBsYXRlRGF0YVJvd3M6W3t0eXBlOlJffV0sZml4ZWRMYXlvdXQ6W3t0eXBlOlJffV0sX3Jvd091dGxldDpbe3R5cGU6YXIsYXJnczpbSzEse3N0YXRpYzohMH1dfV0sX2hlYWRlclJvd091dGxldDpbe3R5cGU6YXIsYXJnczpbSjEse3N0YXRpYzohMH1dfV0sX2Zvb3RlclJvd091dGxldDpbe3R5cGU6YXIsYXJnczpbUTEse3N0YXRpYzohMH1dfV0sX25vRGF0YVJvd091dGxldDpbe3R5cGU6YXIsYXJnczpbJDEse3N0YXRpYzohMH1dfV0sX2NvbnRlbnRDb2x1bW5EZWZzOlt7dHlwZTpvcixhcmdzOltQMSx7ZGVzY2VuZGFudHM6ITB9XX1dLF9jb250ZW50Um93RGVmczpbe3R5cGU6b3IsYXJnczpbTDEse2Rlc2NlbmRhbnRzOiEwfV19XSxfY29udGVudEhlYWRlclJvd0RlZnM6W3t0eXBlOm9yLGFyZ3M6W0kxLHtkZXNjZW5kYW50czohMH1dfV0sX2NvbnRlbnRGb290ZXJSb3dEZWZzOlt7dHlwZTpvcixhcmdzOltGMSx7ZGVzY2VuZGFudHM6ITB9XX1dLF9ub0RhdGFSb3c6W3t0eXBlOmlyLGFyZ3M6W1cxXX1dfSk7Y2xhc3MgbzN7Y29uc3RydWN0b3IodCxlKXt0aGlzLl90YWJsZT10LHRoaXMuX29wdGlvbnM9ZSx0aGlzLmp1c3RpZnk9InN0YXJ0Iix0aGlzLl9vcHRpb25zPWV8fHt9fWdldCBuYW1lKCl7cmV0dXJuIHRoaXMuX25hbWV9c2V0IG5hbWUodCl7dGhpcy5fbmFtZT10LHRoaXMuX3N5bmNDb2x1bW5EZWZOYW1lKCl9bmdPbkluaXQoKXtpZih0aGlzLl9zeW5jQ29sdW1uRGVmTmFtZSgpLHZvaWQgMD09PXRoaXMuaGVhZGVyVGV4dCYmKHRoaXMuaGVhZGVyVGV4dD10aGlzLl9jcmVhdGVEZWZhdWx0SGVhZGVyVGV4dCgpKSx0aGlzLmRhdGFBY2Nlc3Nvcnx8KHRoaXMuZGF0YUFjY2Vzc29yPXRoaXMuX29wdGlvbnMuZGVmYXVsdERhdGFBY2Nlc3Nvcnx8KCh0LGUpPT50W2VdKSksdGhpcy5fdGFibGUpdGhpcy5jb2x1bW5EZWYuY2VsbD10aGlzLmNlbGwsdGhpcy5jb2x1bW5EZWYuaGVhZGVyQ2VsbD10aGlzLmhlYWRlckNlbGwsdGhpcy5fdGFibGUuYWRkQ29sdW1uRGVmKHRoaXMuY29sdW1uRGVmKTtlbHNlIGlmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpdGhyb3coZnVuY3Rpb24gdCgpe3JldHVybiBFcnJvcigiVGV4dCBjb2x1bW4gY291bGQgbm90IGZpbmQgYSBwYXJlbnQgdGFibGUgZm9yIHJlZ2lzdHJhdGlvbi4iKX0pKCl9bmdPbkRlc3Ryb3koKXt0aGlzLl90YWJsZSYmdGhpcy5fdGFibGUucmVtb3ZlQ29sdW1uRGVmKHRoaXMuY29sdW1uRGVmKX1fY3JlYXRlRGVmYXVsdEhlYWRlclRleHQoKXtjb25zdCB0PXRoaXMubmFtZTtpZighdCYmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpKXRocm93KGZ1bmN0aW9uIGUoKXtyZXR1cm4gRXJyb3IoIlRhYmxlIHRleHQgY29sdW1uIG11c3QgaGF2ZSBhIG5hbWUuIil9KSgpO3JldHVybiB0aGlzLl9vcHRpb25zJiZ0aGlzLl9vcHRpb25zLmRlZmF1bHRIZWFkZXJUZXh0VHJhbnNmb3JtP3RoaXMuX29wdGlvbnMuZGVmYXVsdEhlYWRlclRleHRUcmFuc2Zvcm0odCk6dFswXS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSl9X3N5bmNDb2x1bW5EZWZOYW1lKCl7dGhpcy5jb2x1bW5EZWYmJih0aGlzLmNvbHVtbkRlZi5uYW1lPXRoaXMubmFtZSl9fW8zLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxvMykoZ2YoZTMsOCksZ2YoQzEsOCkpfSxvMy7JtWNtcD1zbyh7dHlwZTpvMyxzZWxlY3RvcnM6W1siY2RrLXRleHQtY29sdW1uIl1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoVnkoUDEsNyksVnkoTTEsNyksVnkodjEsNykpLDImZSl7bGV0IHQ7QnkodD1VeSgpKSYmKG4uY29sdW1uRGVmPXQuZmlyc3QpLEJ5KHQ9VXkoKSkmJihuLmNlbGw9dC5maXJzdCksQnkodD1VeSgpKSYmKG4uaGVhZGVyQ2VsbD10LmZpcnN0KX19LGlucHV0czp7anVzdGlmeToianVzdGlmeSIsbmFtZToibmFtZSIsaGVhZGVyVGV4dDoiaGVhZGVyVGV4dCIsZGF0YUFjY2Vzc29yOiJkYXRhQWNjZXNzb3IifSxkZWNsczozLHZhcnM6MCxjb25zdHM6W1siY2RrQ29sdW1uRGVmIiwiIl0sWyJjZGstaGVhZGVyLWNlbGwiLCIiLDMsInRleHQtYWxpZ24iLDQsImNka0hlYWRlckNlbGxEZWYiXSxbImNkay1jZWxsIiwiIiwzLCJ0ZXh0LWFsaWduIiw0LCJjZGtDZWxsRGVmIl0sWyJjZGstaGVhZGVyLWNlbGwiLCIiXSxbImNkay1jZWxsIiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJih4ZigwLDApLEhtKDEsaDEsMiwzLCJ0aCIsMSksSG0oMixiMSwyLDMsInRkIiwyKSxPZigpKX0sZGlyZWN0aXZlczpbUDEsdjEsTTEsazEsRDFdLGVuY2Fwc3VsYXRpb246Mn0pLG8zLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6ZTMsZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltDMV19XX1dLG8zLnByb3BEZWNvcmF0b3JzPXtuYW1lOlt7dHlwZTpSX31dLGhlYWRlclRleHQ6W3t0eXBlOlJffV0sZGF0YUFjY2Vzc29yOlt7dHlwZTpSX31dLGp1c3RpZnk6W3t0eXBlOlJffV0sY29sdW1uRGVmOlt7dHlwZTphcixhcmdzOltQMSx7c3RhdGljOiEwfV19XSxjZWxsOlt7dHlwZTphcixhcmdzOltNMSx7c3RhdGljOiEwfV19XSxoZWFkZXJDZWxsOlt7dHlwZTphcixhcmdzOlt2MSx7c3RhdGljOiEwfV19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihvMyxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJjZGstdGV4dC1jb2x1bW4iLHRlbXBsYXRlOidcbiAgICA8bmctY29udGFpbmVyIGNka0NvbHVtbkRlZj5cbiAgICAgIDx0aCBjZGstaGVhZGVyLWNlbGwgKmNka0hlYWRlckNlbGxEZWYgW3N0eWxlLnRleHQtYWxpZ25dPSJqdXN0aWZ5Ij5cbiAgICAgICAge3toZWFkZXJUZXh0fX1cbiAgICAgIDwvdGg+XG4gICAgICA8dGQgY2RrLWNlbGwgKmNka0NlbGxEZWY9ImxldCBkYXRhIiBbc3R5bGUudGV4dC1hbGlnbl09Imp1c3RpZnkiPlxuICAgICAgICB7e2RhdGFBY2Nlc3NvcihkYXRhLCBuYW1lKX19XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAnLGVuY2Fwc3VsYXRpb246V24uTm9uZSxjaGFuZ2VEZXRlY3Rpb246am4uRGVmYXVsdH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmUzLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbQzFdfV19XX0pLHtqdXN0aWZ5Olt7dHlwZTpSX31dLG5hbWU6W3t0eXBlOlJffV0saGVhZGVyVGV4dDpbe3R5cGU6Ul99XSxkYXRhQWNjZXNzb3I6W3t0eXBlOlJffV0sY29sdW1uRGVmOlt7dHlwZTphcixhcmdzOltQMSx7c3RhdGljOiEwfV19XSxjZWxsOlt7dHlwZTphcixhcmdzOltNMSx7c3RhdGljOiEwfV19XSxoZWFkZXJDZWxsOlt7dHlwZTphcixhcmdzOlt2MSx7c3RhdGljOiEwfV19XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgaTM9W2UzLEwxLE0xLEIxLHYxLHgxLFAxLEQxLFUxLGsxLFMxLFYxLEkxLGoxLEYxLEsxLEoxLFExLG8zLFcxLFgxLCQxXTtjbGFzcyBhM3t9YTMuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGEzKX0sYTMuybVtb2Q9Zm8oe3R5cGU6YTN9KSxhMy7JtWluaj1Ebih7aW1wb3J0czpbW2lCXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGEzLFt7dHlwZTpMXyxhcmdzOlt7ZXhwb3J0czppMyxkZWNsYXJhdGlvbnM6aTMsaW1wb3J0czpbaUJdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oYTMse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVybltlMyxMMSxNMSxCMSx2MSx4MSxQMSxEMSxVMSxrMSxTMSxWMSxJMSxqMSxGMSxLMSxKMSxRMSxvMyxXMSxYMSwkMV19LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5baUJdfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW2UzLEwxLE0xLEIxLHYxLHgxLFAxLEQxLFUxLGsxLFMxLFYxLEkxLGoxLEYxLEsxLEoxLFExLG8zLFcxLFgxLCQxXX19KTtjb25zdCByMz1bW1siY2FwdGlvbiJdXSxbWyJjb2xncm91cCJdLFsiY29sIl1dXTtmdW5jdGlvbiBzMyh0LGUpe2lmKDEmdCYmKENmKDAsInRoIiwzKSxQdSgxKSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoKTtsdSgidGV4dC1hbGlnbiIsdC5qdXN0aWZ5KSxEYygxKSxrdSgiICIsdC5oZWFkZXJUZXh0LCIgIil9fWZ1bmN0aW9uIGwzKHQsZSl7aWYoMSZ0JiYoQ2YoMCwidGQiLDQpLFB1KDEpLE1mKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdCxuPXpmKCk7bHUoInRleHQtYWxpZ24iLG4uanVzdGlmeSksRGMoMSksa3UoIiAiLG4uZGF0YUFjY2Vzc29yKHQsbi5uYW1lKSwiICIpfX1jbGFzcyBjM3t9YzMuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGMzKX0sYzMuybVkaXI9aG8oe3R5cGU6YzMsc2VsZWN0b3JzOltbIm1hdC10YWJsZSIsInJlY3ljbGVSb3dzIiwiIl0sWyJ0YWJsZSIsIm1hdC10YWJsZSIsIiIsInJlY3ljbGVSb3dzIiwiIl1dLGZlYXR1cmVzOltqaChbe3Byb3ZpZGU6V0wsdXNlQ2xhc3M6Vkx9XSldfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihjMyxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJtYXQtdGFibGVbcmVjeWNsZVJvd3NdLCB0YWJsZVttYXQtdGFibGVdW3JlY3ljbGVSb3dzXSIscHJvdmlkZXJzOlt7cHJvdmlkZTpXTCx1c2VDbGFzczpWTH1dfV19XSxudWxsLG51bGwpO2NsYXNzIGQzIGV4dGVuZHMgZTN7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuc3RpY2t5Q3NzQ2xhc3M9Im1hdC10YWJsZS1zdGlja3kiLHRoaXMubmVlZHNQb3NpdGlvblN0aWNreU9uRWxlbWVudD0hMX19ZDMuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PVVhKGQzKSkpKG58fGQzKX19KSgpLGQzLsm1Y21wPXNvKHt0eXBlOmQzLHNlbGVjdG9yczpbWyJtYXQtdGFibGUiXSxbInRhYmxlIiwibWF0LXRhYmxlIiwiIl1dLGhvc3RBdHRyczpbMSwibWF0LXRhYmxlIl0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmY3UoIm1hdC10YWJsZS1maXhlZC1sYXlvdXQiLG4uZml4ZWRMYXlvdXQpfSxleHBvcnRBczpbIm1hdFRhYmxlIl0sZmVhdHVyZXM6W2poKFt7cHJvdmlkZTpXTCx1c2VDbGFzczpCTH0se3Byb3ZpZGU6ZTMsdXNlRXhpc3Rpbmc6ZDN9LHtwcm92aWRlOl8xLHVzZUV4aXN0aW5nOmQzfSx7cHJvdmlkZTpFMSx1c2VDbGFzczpBMX0se3Byb3ZpZGU6WjEsdXNlVmFsdWU6bnVsbH1dKSxRcF0sbmdDb250ZW50U2VsZWN0b3JzOlsiY2FwdGlvbiIsImNvbGdyb3VwLCBjb2wiXSxkZWNsczo2LHZhcnM6MCxjb25zdHM6W1siaGVhZGVyUm93T3V0bGV0IiwiIl0sWyJyb3dPdXRsZXQiLCIiXSxbIm5vRGF0YVJvd091dGxldCIsIiJdLFsiZm9vdGVyUm93T3V0bGV0IiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihIZihyMyksRmYoMCksRmYoMSwxKSxQZigyLDApLFBmKDMsMSksUGYoNCwyKSxQZig1LDMpKX0sZGlyZWN0aXZlczpbSjEsSzEsJDEsUTFdLHN0eWxlczpbJ21hdC10YWJsZXtkaXNwbGF5OmJsb2NrfW1hdC1oZWFkZXItcm93e21pbi1oZWlnaHQ6NTZweH1tYXQtcm93LG1hdC1mb290ZXItcm93e21pbi1oZWlnaHQ6NDhweH1tYXQtcm93LG1hdC1oZWFkZXItcm93LG1hdC1mb290ZXItcm93e2Rpc3BsYXk6ZmxleDtib3JkZXItd2lkdGg6MDtib3JkZXItYm90dG9tLXdpZHRoOjFweDtib3JkZXItc3R5bGU6c29saWQ7YWxpZ24taXRlbXM6Y2VudGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveH1tYXQtcm93OjphZnRlcixtYXQtaGVhZGVyLXJvdzo6YWZ0ZXIsbWF0LWZvb3Rlci1yb3c6OmFmdGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO21pbi1oZWlnaHQ6aW5oZXJpdDtjb250ZW50OiIifW1hdC1jZWxsOmZpcnN0LW9mLXR5cGUsbWF0LWhlYWRlci1jZWxsOmZpcnN0LW9mLXR5cGUsbWF0LWZvb3Rlci1jZWxsOmZpcnN0LW9mLXR5cGV7cGFkZGluZy1sZWZ0OjI0cHh9W2Rpcj1ydGxdIG1hdC1jZWxsOmZpcnN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpLFtkaXI9cnRsXSBtYXQtaGVhZGVyLWNlbGw6Zmlyc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSksW2Rpcj1ydGxdIG1hdC1mb290ZXItY2VsbDpmaXJzdC1vZi10eXBlOm5vdCg6b25seS1vZi10eXBlKXtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjI0cHh9bWF0LWNlbGw6bGFzdC1vZi10eXBlLG1hdC1oZWFkZXItY2VsbDpsYXN0LW9mLXR5cGUsbWF0LWZvb3Rlci1jZWxsOmxhc3Qtb2YtdHlwZXtwYWRkaW5nLXJpZ2h0OjI0cHh9W2Rpcj1ydGxdIG1hdC1jZWxsOmxhc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSksW2Rpcj1ydGxdIG1hdC1oZWFkZXItY2VsbDpsYXN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpLFtkaXI9cnRsXSBtYXQtZm9vdGVyLWNlbGw6bGFzdC1vZi10eXBlOm5vdCg6b25seS1vZi10eXBlKXtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjI0cHh9bWF0LWNlbGwsbWF0LWhlYWRlci1jZWxsLG1hdC1mb290ZXItY2VsbHtmbGV4OjE7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtvdmVyZmxvdzpoaWRkZW47d29yZC13cmFwOmJyZWFrLXdvcmQ7bWluLWhlaWdodDppbmhlcml0fXRhYmxlLm1hdC10YWJsZXtib3JkZXItc3BhY2luZzowfXRyLm1hdC1oZWFkZXItcm93e2hlaWdodDo1NnB4fXRyLm1hdC1yb3csdHIubWF0LWZvb3Rlci1yb3d7aGVpZ2h0OjQ4cHh9dGgubWF0LWhlYWRlci1jZWxse3RleHQtYWxpZ246bGVmdH1bZGlyPXJ0bF0gdGgubWF0LWhlYWRlci1jZWxse3RleHQtYWxpZ246cmlnaHR9dGgubWF0LWhlYWRlci1jZWxsLHRkLm1hdC1jZWxsLHRkLm1hdC1mb290ZXItY2VsbHtwYWRkaW5nOjA7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHg7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZH10aC5tYXQtaGVhZGVyLWNlbGw6Zmlyc3Qtb2YtdHlwZSx0ZC5tYXQtY2VsbDpmaXJzdC1vZi10eXBlLHRkLm1hdC1mb290ZXItY2VsbDpmaXJzdC1vZi10eXBle3BhZGRpbmctbGVmdDoyNHB4fVtkaXI9cnRsXSB0aC5tYXQtaGVhZGVyLWNlbGw6Zmlyc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSksW2Rpcj1ydGxdIHRkLm1hdC1jZWxsOmZpcnN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpLFtkaXI9cnRsXSB0ZC5tYXQtZm9vdGVyLWNlbGw6Zmlyc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSl7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDoyNHB4fXRoLm1hdC1oZWFkZXItY2VsbDpsYXN0LW9mLXR5cGUsdGQubWF0LWNlbGw6bGFzdC1vZi10eXBlLHRkLm1hdC1mb290ZXItY2VsbDpsYXN0LW9mLXR5cGV7cGFkZGluZy1yaWdodDoyNHB4fVtkaXI9cnRsXSB0aC5tYXQtaGVhZGVyLWNlbGw6bGFzdC1vZi10eXBlOm5vdCg6b25seS1vZi10eXBlKSxbZGlyPXJ0bF0gdGQubWF0LWNlbGw6bGFzdC1vZi10eXBlOm5vdCg6b25seS1vZi10eXBlKSxbZGlyPXJ0bF0gdGQubWF0LWZvb3Rlci1jZWxsOmxhc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSl7cGFkZGluZy1yaWdodDowO3BhZGRpbmctbGVmdDoyNHB4fS5tYXQtdGFibGUtc3RpY2t5e3Bvc2l0aW9uOi13ZWJraXQtc3RpY2t5ICFpbXBvcnRhbnQ7cG9zaXRpb246c3RpY2t5ICFpbXBvcnRhbnR9Lm1hdC10YWJsZS1maXhlZC1sYXlvdXR7dGFibGUtbGF5b3V0OmZpeGVkfVxuJ10sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihkMyxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJtYXQtdGFibGUsIHRhYmxlW21hdC10YWJsZV0iLGV4cG9ydEFzOiJtYXRUYWJsZSIsdGVtcGxhdGU6dDMsaG9zdDp7Y2xhc3M6Im1hdC10YWJsZSIsIltjbGFzcy5tYXQtdGFibGUtZml4ZWQtbGF5b3V0XSI6ImZpeGVkTGF5b3V0In0scHJvdmlkZXJzOlt7cHJvdmlkZTpXTCx1c2VDbGFzczpCTH0se3Byb3ZpZGU6ZTMsdXNlRXhpc3Rpbmc6ZDN9LHtwcm92aWRlOl8xLHVzZUV4aXN0aW5nOmQzfSx7cHJvdmlkZTpFMSx1c2VDbGFzczpBMX0se3Byb3ZpZGU6WjEsdXNlVmFsdWU6bnVsbH1dLGVuY2Fwc3VsYXRpb246V24uTm9uZSxjaGFuZ2VEZXRlY3Rpb246am4uRGVmYXVsdCxzdHlsZXM6WydtYXQtdGFibGV7ZGlzcGxheTpibG9ja31tYXQtaGVhZGVyLXJvd3ttaW4taGVpZ2h0OjU2cHh9bWF0LXJvdyxtYXQtZm9vdGVyLXJvd3ttaW4taGVpZ2h0OjQ4cHh9bWF0LXJvdyxtYXQtaGVhZGVyLXJvdyxtYXQtZm9vdGVyLXJvd3tkaXNwbGF5OmZsZXg7Ym9yZGVyLXdpZHRoOjA7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHg7Ym9yZGVyLXN0eWxlOnNvbGlkO2FsaWduLWl0ZW1zOmNlbnRlcjtib3gtc2l6aW5nOmJvcmRlci1ib3h9bWF0LXJvdzo6YWZ0ZXIsbWF0LWhlYWRlci1yb3c6OmFmdGVyLG1hdC1mb290ZXItcm93OjphZnRlcntkaXNwbGF5OmlubGluZS1ibG9jazttaW4taGVpZ2h0OmluaGVyaXQ7Y29udGVudDoiIn1tYXQtY2VsbDpmaXJzdC1vZi10eXBlLG1hdC1oZWFkZXItY2VsbDpmaXJzdC1vZi10eXBlLG1hdC1mb290ZXItY2VsbDpmaXJzdC1vZi10eXBle3BhZGRpbmctbGVmdDoyNHB4fVtkaXI9cnRsXSBtYXQtY2VsbDpmaXJzdC1vZi10eXBlOm5vdCg6b25seS1vZi10eXBlKSxbZGlyPXJ0bF0gbWF0LWhlYWRlci1jZWxsOmZpcnN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpLFtkaXI9cnRsXSBtYXQtZm9vdGVyLWNlbGw6Zmlyc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSl7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDoyNHB4fW1hdC1jZWxsOmxhc3Qtb2YtdHlwZSxtYXQtaGVhZGVyLWNlbGw6bGFzdC1vZi10eXBlLG1hdC1mb290ZXItY2VsbDpsYXN0LW9mLXR5cGV7cGFkZGluZy1yaWdodDoyNHB4fVtkaXI9cnRsXSBtYXQtY2VsbDpsYXN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpLFtkaXI9cnRsXSBtYXQtaGVhZGVyLWNlbGw6bGFzdC1vZi10eXBlOm5vdCg6b25seS1vZi10eXBlKSxbZGlyPXJ0bF0gbWF0LWZvb3Rlci1jZWxsOmxhc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSl7cGFkZGluZy1yaWdodDowO3BhZGRpbmctbGVmdDoyNHB4fW1hdC1jZWxsLG1hdC1oZWFkZXItY2VsbCxtYXQtZm9vdGVyLWNlbGx7ZmxleDoxO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7b3ZlcmZsb3c6aGlkZGVuO3dvcmQtd3JhcDpicmVhay13b3JkO21pbi1oZWlnaHQ6aW5oZXJpdH10YWJsZS5tYXQtdGFibGV7Ym9yZGVyLXNwYWNpbmc6MH10ci5tYXQtaGVhZGVyLXJvd3toZWlnaHQ6NTZweH10ci5tYXQtcm93LHRyLm1hdC1mb290ZXItcm93e2hlaWdodDo0OHB4fXRoLm1hdC1oZWFkZXItY2VsbHt0ZXh0LWFsaWduOmxlZnR9W2Rpcj1ydGxdIHRoLm1hdC1oZWFkZXItY2VsbHt0ZXh0LWFsaWduOnJpZ2h0fXRoLm1hdC1oZWFkZXItY2VsbCx0ZC5tYXQtY2VsbCx0ZC5tYXQtZm9vdGVyLWNlbGx7cGFkZGluZzowO2JvcmRlci1ib3R0b20td2lkdGg6MXB4O2JvcmRlci1ib3R0b20tc3R5bGU6c29saWR9dGgubWF0LWhlYWRlci1jZWxsOmZpcnN0LW9mLXR5cGUsdGQubWF0LWNlbGw6Zmlyc3Qtb2YtdHlwZSx0ZC5tYXQtZm9vdGVyLWNlbGw6Zmlyc3Qtb2YtdHlwZXtwYWRkaW5nLWxlZnQ6MjRweH1bZGlyPXJ0bF0gdGgubWF0LWhlYWRlci1jZWxsOmZpcnN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpLFtkaXI9cnRsXSB0ZC5tYXQtY2VsbDpmaXJzdC1vZi10eXBlOm5vdCg6b25seS1vZi10eXBlKSxbZGlyPXJ0bF0gdGQubWF0LWZvb3Rlci1jZWxsOmZpcnN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpe3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MjRweH10aC5tYXQtaGVhZGVyLWNlbGw6bGFzdC1vZi10eXBlLHRkLm1hdC1jZWxsOmxhc3Qtb2YtdHlwZSx0ZC5tYXQtZm9vdGVyLWNlbGw6bGFzdC1vZi10eXBle3BhZGRpbmctcmlnaHQ6MjRweH1bZGlyPXJ0bF0gdGgubWF0LWhlYWRlci1jZWxsOmxhc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSksW2Rpcj1ydGxdIHRkLm1hdC1jZWxsOmxhc3Qtb2YtdHlwZTpub3QoOm9ubHktb2YtdHlwZSksW2Rpcj1ydGxdIHRkLm1hdC1mb290ZXItY2VsbDpsYXN0LW9mLXR5cGU6bm90KDpvbmx5LW9mLXR5cGUpe3BhZGRpbmctcmlnaHQ6MDtwYWRkaW5nLWxlZnQ6MjRweH0ubWF0LXRhYmxlLXN0aWNreXtwb3NpdGlvbjotd2Via2l0LXN0aWNreSAhaW1wb3J0YW50O3Bvc2l0aW9uOnN0aWNreSAhaW1wb3J0YW50fS5tYXQtdGFibGUtZml4ZWQtbGF5b3V0e3RhYmxlLWxheW91dDpmaXhlZH1cbiddfV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgcDMgZXh0ZW5kcyBNMXt9cDMuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PVVhKHAzKSkpKG58fHAzKX19KSgpLHAzLsm1ZGlyPWhvKHt0eXBlOnAzLHNlbGVjdG9yczpbWyIiLCJtYXRDZWxsRGVmIiwiIl1dLGZlYXR1cmVzOltqaChbe3Byb3ZpZGU6TTEsdXNlRXhpc3Rpbmc6cDN9XSksUXBdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihwMyxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJbbWF0Q2VsbERlZl0iLHByb3ZpZGVyczpbe3Byb3ZpZGU6TTEsdXNlRXhpc3Rpbmc6cDN9XX1dfV0sbnVsbCxudWxsKTtjbGFzcyBtMyBleHRlbmRzIHYxe31tMy7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9VWEobTMpKSkobnx8bTMpfX0pKCksbTMuybVkaXI9aG8oe3R5cGU6bTMsc2VsZWN0b3JzOltbIiIsIm1hdEhlYWRlckNlbGxEZWYiLCIiXV0sZmVhdHVyZXM6W2poKFt7cHJvdmlkZTp2MSx1c2VFeGlzdGluZzptM31dKSxRcF19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKG0zLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IlttYXRIZWFkZXJDZWxsRGVmXSIscHJvdmlkZXJzOlt7cHJvdmlkZTp2MSx1c2VFeGlzdGluZzptM31dfV19XSxudWxsLG51bGwpO2NsYXNzIGYzIGV4dGVuZHMgeDF7fWYzLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1VYShmMykpKShufHxmMyl9fSkoKSxmMy7JtWRpcj1obyh7dHlwZTpmMyxzZWxlY3RvcnM6W1siIiwibWF0Rm9vdGVyQ2VsbERlZiIsIiJdXSxmZWF0dXJlczpbamgoW3twcm92aWRlOngxLHVzZUV4aXN0aW5nOmYzfV0pLFFwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZjMsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW21hdEZvb3RlckNlbGxEZWZdIixwcm92aWRlcnM6W3twcm92aWRlOngxLHVzZUV4aXN0aW5nOmYzfV19XX1dLG51bGwsbnVsbCk7Y2xhc3MgdTMgZXh0ZW5kcyBQMXtnZXQgbmFtZSgpe3JldHVybiB0aGlzLl9uYW1lfXNldCBuYW1lKHQpe3RoaXMuX3NldE5hbWVJbnB1dCh0KX1fdXBkYXRlQ29sdW1uQ3NzQ2xhc3NOYW1lKCl7c3VwZXIuX3VwZGF0ZUNvbHVtbkNzc0NsYXNzTmFtZSgpLHRoaXMuX2NvbHVtbkNzc0NsYXNzTmFtZS5wdXNoKGBtYXQtY29sdW1uLSR7dGhpcy5jc3NDbGFzc0ZyaWVuZGx5TmFtZX1gKX19dTMuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PVVhKHUzKSkpKG58fHUzKX19KSgpLHUzLsm1ZGlyPWhvKHt0eXBlOnUzLHNlbGVjdG9yczpbWyIiLCJtYXRDb2x1bW5EZWYiLCIiXV0saW5wdXRzOntzdGlja3k6InN0aWNreSIsbmFtZTpbIm1hdENvbHVtbkRlZiIsIm5hbWUiXX0sZmVhdHVyZXM6W2poKFt7cHJvdmlkZTpQMSx1c2VFeGlzdGluZzp1M30se3Byb3ZpZGU6Ik1BVF9TT1JUX0hFQURFUl9DT0xVTU5fREVGIix1c2VFeGlzdGluZzp1M31dKSxRcF19KSx1My5wcm9wRGVjb3JhdG9ycz17bmFtZTpbe3R5cGU6Ul8sYXJnczpbIm1hdENvbHVtbkRlZiJdfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIodTMsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW21hdENvbHVtbkRlZl0iLGlucHV0czpbInN0aWNreSJdLHByb3ZpZGVyczpbe3Byb3ZpZGU6UDEsdXNlRXhpc3Rpbmc6dTN9LHtwcm92aWRlOiJNQVRfU09SVF9IRUFERVJfQ09MVU1OX0RFRiIsdXNlRXhpc3Rpbmc6dTN9XX1dfV0sbnVsbCx7bmFtZTpbe3R5cGU6Ul8sYXJnczpbIm1hdENvbHVtbkRlZiJdfV19KTtjbGFzcyBnMyBleHRlbmRzIGsxe31nMy7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9VWEoZzMpKSkobnx8ZzMpfX0pKCksZzMuybVkaXI9aG8oe3R5cGU6ZzMsc2VsZWN0b3JzOltbIm1hdC1oZWFkZXItY2VsbCJdLFsidGgiLCJtYXQtaGVhZGVyLWNlbGwiLCIiXV0saG9zdEF0dHJzOlsicm9sZSIsImNvbHVtbmhlYWRlciIsMSwibWF0LWhlYWRlci1jZWxsIl0sZmVhdHVyZXM6W1FwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZzMsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoibWF0LWhlYWRlci1jZWxsLCB0aFttYXQtaGVhZGVyLWNlbGxdIixob3N0OntjbGFzczoibWF0LWhlYWRlci1jZWxsIixyb2xlOiJjb2x1bW5oZWFkZXIifX1dfV0sbnVsbCxudWxsKTtjbGFzcyBoMyBleHRlbmRzIFMxe31oMy7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9VWEoaDMpKSkobnx8aDMpfX0pKCksaDMuybVkaXI9aG8oe3R5cGU6aDMsc2VsZWN0b3JzOltbIm1hdC1mb290ZXItY2VsbCJdLFsidGQiLCJtYXQtZm9vdGVyLWNlbGwiLCIiXV0saG9zdEF0dHJzOlsicm9sZSIsImdyaWRjZWxsIiwxLCJtYXQtZm9vdGVyLWNlbGwiXSxmZWF0dXJlczpbUXBdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihoMyxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJtYXQtZm9vdGVyLWNlbGwsIHRkW21hdC1mb290ZXItY2VsbF0iLGhvc3Q6e2NsYXNzOiJtYXQtZm9vdGVyLWNlbGwiLHJvbGU6ImdyaWRjZWxsIn19XX1dLG51bGwsbnVsbCk7Y2xhc3MgYjMgZXh0ZW5kcyBEMXt9YjMuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PVVhKGIzKSkpKG58fGIzKX19KSgpLGIzLsm1ZGlyPWhvKHt0eXBlOmIzLHNlbGVjdG9yczpbWyJtYXQtY2VsbCJdLFsidGQiLCJtYXQtY2VsbCIsIiJdXSxob3N0QXR0cnM6WyJyb2xlIiwiZ3JpZGNlbGwiLDEsIm1hdC1jZWxsIl0sZmVhdHVyZXM6W1FwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoYjMsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoibWF0LWNlbGwsIHRkW21hdC1jZWxsXSIsaG9zdDp7Y2xhc3M6Im1hdC1jZWxsIixyb2xlOiJncmlkY2VsbCJ9fV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgeTMgZXh0ZW5kcyBJMXt9eTMuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PVVhKHkzKSkpKG58fHkzKX19KSgpLHkzLsm1ZGlyPWhvKHt0eXBlOnkzLHNlbGVjdG9yczpbWyIiLCJtYXRIZWFkZXJSb3dEZWYiLCIiXV0saW5wdXRzOntjb2x1bW5zOlsibWF0SGVhZGVyUm93RGVmIiwiY29sdW1ucyJdLHN0aWNreTpbIm1hdEhlYWRlclJvd0RlZlN0aWNreSIsInN0aWNreSJdfSxmZWF0dXJlczpbamgoW3twcm92aWRlOkkxLHVzZUV4aXN0aW5nOnkzfV0pLFFwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoeTMsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW21hdEhlYWRlclJvd0RlZl0iLHByb3ZpZGVyczpbe3Byb3ZpZGU6STEsdXNlRXhpc3Rpbmc6eTN9XSxpbnB1dHM6WyJjb2x1bW5zOiBtYXRIZWFkZXJSb3dEZWYiLCJzdGlja3k6IG1hdEhlYWRlclJvd0RlZlN0aWNreSJdfV19XSxudWxsLG51bGwpO2NsYXNzIF8zIGV4dGVuZHMgRjF7fV8zLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1VYShfMykpKShufHxfMyl9fSkoKSxfMy7JtWRpcj1obyh7dHlwZTpfMyxzZWxlY3RvcnM6W1siIiwibWF0Rm9vdGVyUm93RGVmIiwiIl1dLGlucHV0czp7Y29sdW1uczpbIm1hdEZvb3RlclJvd0RlZiIsImNvbHVtbnMiXSxzdGlja3k6WyJtYXRGb290ZXJSb3dEZWZTdGlja3kiLCJzdGlja3kiXX0sZmVhdHVyZXM6W2poKFt7cHJvdmlkZTpGMSx1c2VFeGlzdGluZzpfM31dKSxRcF19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKF8zLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IlttYXRGb290ZXJSb3dEZWZdIixwcm92aWRlcnM6W3twcm92aWRlOkYxLHVzZUV4aXN0aW5nOl8zfV0saW5wdXRzOlsiY29sdW1uczogbWF0Rm9vdGVyUm93RGVmIiwic3RpY2t5OiBtYXRGb290ZXJSb3dEZWZTdGlja3kiXX1dfV0sbnVsbCxudWxsKTtjbGFzcyBDMyBleHRlbmRzIEwxe31DMy7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9VWEoQzMpKSkobnx8QzMpfX0pKCksQzMuybVkaXI9aG8oe3R5cGU6QzMsc2VsZWN0b3JzOltbIiIsIm1hdFJvd0RlZiIsIiJdXSxpbnB1dHM6e2NvbHVtbnM6WyJtYXRSb3dEZWZDb2x1bW5zIiwiY29sdW1ucyJdLHdoZW46WyJtYXRSb3dEZWZXaGVuIiwid2hlbiJdfSxmZWF0dXJlczpbamgoW3twcm92aWRlOkwxLHVzZUV4aXN0aW5nOkMzfV0pLFFwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoQzMsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW21hdFJvd0RlZl0iLHByb3ZpZGVyczpbe3Byb3ZpZGU6TDEsdXNlRXhpc3Rpbmc6QzN9XSxpbnB1dHM6WyJjb2x1bW5zOiBtYXRSb3dEZWZDb2x1bW5zIiwid2hlbjogbWF0Um93RGVmV2hlbiJdfV19XSxudWxsLG51bGwpO2NsYXNzIE0zIGV4dGVuZHMgVjF7fU0zLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1VYShNMykpKShufHxNMyl9fSkoKSxNMy7JtWNtcD1zbyh7dHlwZTpNMyxzZWxlY3RvcnM6W1sibWF0LWhlYWRlci1yb3ciXSxbInRyIiwibWF0LWhlYWRlci1yb3ciLCIiXV0saG9zdEF0dHJzOlsicm9sZSIsInJvdyIsMSwibWF0LWhlYWRlci1yb3ciXSxleHBvcnRBczpbIm1hdEhlYWRlclJvdyJdLGZlYXR1cmVzOltqaChbe3Byb3ZpZGU6VjEsdXNlRXhpc3Rpbmc6TTN9XSksUXBdLGRlY2xzOjEsdmFyczowLGNvbnN0czpbWyJjZGtDZWxsT3V0bGV0IiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlBmKDAsMCl9LGRpcmVjdGl2ZXM6W0IxXSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKE0zLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im1hdC1oZWFkZXItcm93LCB0clttYXQtaGVhZGVyLXJvd10iLHRlbXBsYXRlOlQxLGhvc3Q6e2NsYXNzOiJtYXQtaGVhZGVyLXJvdyIscm9sZToicm93In0sY2hhbmdlRGV0ZWN0aW9uOmpuLkRlZmF1bHQsZW5jYXBzdWxhdGlvbjpXbi5Ob25lLGV4cG9ydEFzOiJtYXRIZWFkZXJSb3ciLHByb3ZpZGVyczpbe3Byb3ZpZGU6VjEsdXNlRXhpc3Rpbmc6TTN9XX1dfV0sbnVsbCxudWxsKTtjbGFzcyB2MyBleHRlbmRzIGoxe312My7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9VWEodjMpKSkobnx8djMpfX0pKCksdjMuybVjbXA9c28oe3R5cGU6djMsc2VsZWN0b3JzOltbIm1hdC1mb290ZXItcm93Il0sWyJ0ciIsIm1hdC1mb290ZXItcm93IiwiIl1dLGhvc3RBdHRyczpbInJvbGUiLCJyb3ciLDEsIm1hdC1mb290ZXItcm93Il0sZXhwb3J0QXM6WyJtYXRGb290ZXJSb3ciXSxmZWF0dXJlczpbamgoW3twcm92aWRlOmoxLHVzZUV4aXN0aW5nOnYzfV0pLFFwXSxkZWNsczoxLHZhcnM6MCxjb25zdHM6W1siY2RrQ2VsbE91dGxldCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZQZigwLDApfSxkaXJlY3RpdmVzOltCMV0sZW5jYXBzdWxhdGlvbjoyfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih2Myxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJtYXQtZm9vdGVyLXJvdywgdHJbbWF0LWZvb3Rlci1yb3ddIix0ZW1wbGF0ZTpUMSxob3N0OntjbGFzczoibWF0LWZvb3Rlci1yb3ciLHJvbGU6InJvdyJ9LGNoYW5nZURldGVjdGlvbjpqbi5EZWZhdWx0LGVuY2Fwc3VsYXRpb246V24uTm9uZSxleHBvcnRBczoibWF0Rm9vdGVyUm93Iixwcm92aWRlcnM6W3twcm92aWRlOmoxLHVzZUV4aXN0aW5nOnYzfV19XX1dLG51bGwsbnVsbCk7Y2xhc3MgeDMgZXh0ZW5kcyBVMXt9eDMuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PVVhKHgzKSkpKG58fHgzKX19KSgpLHgzLsm1Y21wPXNvKHt0eXBlOngzLHNlbGVjdG9yczpbWyJtYXQtcm93Il0sWyJ0ciIsIm1hdC1yb3ciLCIiXV0saG9zdEF0dHJzOlsicm9sZSIsInJvdyIsMSwibWF0LXJvdyJdLGV4cG9ydEFzOlsibWF0Um93Il0sZmVhdHVyZXM6W2poKFt7cHJvdmlkZTpVMSx1c2VFeGlzdGluZzp4M31dKSxRcF0sZGVjbHM6MSx2YXJzOjAsY29uc3RzOltbImNka0NlbGxPdXRsZXQiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmUGYoMCwwKX0sZGlyZWN0aXZlczpbQjFdLGVuY2Fwc3VsYXRpb246Mn0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoeDMsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibWF0LXJvdywgdHJbbWF0LXJvd10iLHRlbXBsYXRlOlQxLGhvc3Q6e2NsYXNzOiJtYXQtcm93Iixyb2xlOiJyb3cifSxjaGFuZ2VEZXRlY3Rpb246am4uRGVmYXVsdCxlbmNhcHN1bGF0aW9uOlduLk5vbmUsZXhwb3J0QXM6Im1hdFJvdyIscHJvdmlkZXJzOlt7cHJvdmlkZTpVMSx1c2VFeGlzdGluZzp4M31dfV19XSxudWxsLG51bGwpO2NsYXNzIE8zIGV4dGVuZHMgVzF7fU8zLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1VYShPMykpKShufHxPMyl9fSkoKSxPMy7JtWRpcj1obyh7dHlwZTpPMyxzZWxlY3RvcnM6W1sibmctdGVtcGxhdGUiLCJtYXROb0RhdGFSb3ciLCIiXV0sZmVhdHVyZXM6W2poKFt7cHJvdmlkZTpXMSx1c2VFeGlzdGluZzpPM31dKSxRcF19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKE8zLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6Im5nLXRlbXBsYXRlW21hdE5vRGF0YVJvd10iLHByb3ZpZGVyczpbe3Byb3ZpZGU6VzEsdXNlRXhpc3Rpbmc6TzN9XX1dfV0sbnVsbCxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIFAzIGV4dGVuZHMgbzN7fVAzLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1VYShQMykpKShufHxQMyl9fSkoKSxQMy7JtWNtcD1zbyh7dHlwZTpQMyxzZWxlY3RvcnM6W1sibWF0LXRleHQtY29sdW1uIl1dLGZlYXR1cmVzOltRcF0sZGVjbHM6Myx2YXJzOjAsY29uc3RzOltbIm1hdENvbHVtbkRlZiIsIiJdLFsibWF0LWhlYWRlci1jZWxsIiwiIiwzLCJ0ZXh0LWFsaWduIiw0LCJtYXRIZWFkZXJDZWxsRGVmIl0sWyJtYXQtY2VsbCIsIiIsMywidGV4dC1hbGlnbiIsNCwibWF0Q2VsbERlZiJdLFsibWF0LWhlYWRlci1jZWxsIiwiIl0sWyJtYXQtY2VsbCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoeGYoMCwwKSxIbSgxLHMzLDIsMywidGgiLDEpLEhtKDIsbDMsMiwzLCJ0ZCIsMiksT2YoKSl9LGRpcmVjdGl2ZXM6W3UzLG0zLHAzLGczLGIzXSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFAzLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im1hdC10ZXh0LWNvbHVtbiIsdGVtcGxhdGU6J1xuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBbc3R5bGUudGV4dC1hbGlnbl09Imp1c3RpZnkiPlxuICAgICAgICB7e2hlYWRlclRleHR9fVxuICAgICAgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj0ibGV0IGRhdGEiIFtzdHlsZS50ZXh0LWFsaWduXT0ianVzdGlmeSI+XG4gICAgICAgIHt7ZGF0YUFjY2Vzc29yKGRhdGEsIG5hbWUpfX1cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICcsZW5jYXBzdWxhdGlvbjpXbi5Ob25lLGNoYW5nZURldGVjdGlvbjpqbi5EZWZhdWx0fV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgdzM9W2QzLGMzLG0zLHkzLHUzLHAzLEMzLGYzLF8zLGczLGIzLGgzLE0zLHgzLHYzLE8zLFAzXTtjbGFzcyBrM3t9azMuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGszKX0sazMuybVtb2Q9Zm8oe3R5cGU6azN9KSxrMy7JtWluaj1Ebih7aW1wb3J0czpbW2EzLE5GXSxORl19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGszLFt7dHlwZTpMXyxhcmdzOlt7aW1wb3J0czpbYTMsTkZdLGV4cG9ydHM6W05GLHczXSxkZWNsYXJhdGlvbnM6dzN9XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhrMyx7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW2QzLGMzLG0zLHkzLHUzLHAzLEMzLGYzLF8zLGczLGIzLGgzLE0zLHgzLHYzLE8zLFAzXX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVyblthMyxORl19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bTkYsZDMsYzMsbTMseTMsdTMscDMsQzMsZjMsXzMsZzMsYjMsaDMsTTMseDMsdjMsTzMsUDNdfX0pO2NsYXNzIFMzIGV4dGVuZHMgSEx7Y29uc3RydWN0b3IodD1bXSl7c3VwZXIoKSx0aGlzLl9yZW5kZXJEYXRhPW5ldyBqKFtdKSx0aGlzLl9maWx0ZXI9bmV3IGooIiIpLHRoaXMuX2ludGVybmFsUGFnZUNoYW5nZXM9bmV3IEIsdGhpcy5fcmVuZGVyQ2hhbmdlc1N1YnNjcmlwdGlvbj1udWxsLHRoaXMuc29ydGluZ0RhdGFBY2Nlc3Nvcj0odCxlKT0+e2NvbnN0IG49dFtlXTtpZihvSChuKSl7Y29uc3QgdD1OdW1iZXIobik7cmV0dXJuIHQ8OTAwNzE5OTI1NDc0MDk5MT90Om59cmV0dXJuIG59LHRoaXMuc29ydERhdGE9KHQsZSk9Pntjb25zdCBuPWUuYWN0aXZlLG89ZS5kaXJlY3Rpb247cmV0dXJuIG4mJiIiIT1vP3Quc29ydCgoKHQsZSk9PntsZXQgaT10aGlzLnNvcnRpbmdEYXRhQWNjZXNzb3IodCxuKSxhPXRoaXMuc29ydGluZ0RhdGFBY2Nlc3NvcihlLG4pO2NvbnN0IHI9dHlwZW9mIGkscz10eXBlb2YgYTtyIT09cyYmKCJudW1iZXIiPT09ciYmKGkrPSIiKSwibnVtYmVyIj09PXMmJihhKz0iIikpO2xldCBsPTA7cmV0dXJuIG51bGwhPWkmJm51bGwhPWE/aT5hP2w9MTppPGEmJihsPS0xKTpudWxsIT1pP2w9MTpudWxsIT1hJiYobD0tMSksbCooImFzYyI9PW8/MTotMSl9KSk6dH0sdGhpcy5maWx0ZXJQcmVkaWNhdGU9KHQsZSk9Pntjb25zdCBuPU9iamVjdC5rZXlzKHQpLnJlZHVjZSgoKGUsbik9PmUrdFtuXSsi4pesIiksIiIpLnRvTG93ZXJDYXNlKCksbz1lLnRyaW0oKS50b0xvd2VyQ2FzZSgpO3JldHVybi0xIT1uLmluZGV4T2Yobyl9LHRoaXMuX2RhdGE9bmV3IGoodCksdGhpcy5fdXBkYXRlQ2hhbmdlU3Vic2NyaXB0aW9uKCl9Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy5fZGF0YS52YWx1ZX1zZXQgZGF0YSh0KXt0aGlzLl9kYXRhLm5leHQodCksdGhpcy5fcmVuZGVyQ2hhbmdlc1N1YnNjcmlwdGlvbnx8dGhpcy5fZmlsdGVyRGF0YSh0KX1nZXQgZmlsdGVyKCl7cmV0dXJuIHRoaXMuX2ZpbHRlci52YWx1ZX1zZXQgZmlsdGVyKHQpe3RoaXMuX2ZpbHRlci5uZXh0KHQpLHRoaXMuX3JlbmRlckNoYW5nZXNTdWJzY3JpcHRpb258fHRoaXMuX2ZpbHRlckRhdGEodGhpcy5kYXRhKX1nZXQgc29ydCgpe3JldHVybiB0aGlzLl9zb3J0fXNldCBzb3J0KHQpe3RoaXMuX3NvcnQ9dCx0aGlzLl91cGRhdGVDaGFuZ2VTdWJzY3JpcHRpb24oKX1nZXQgcGFnaW5hdG9yKCl7cmV0dXJuIHRoaXMuX3BhZ2luYXRvcn1zZXQgcGFnaW5hdG9yKHQpe3RoaXMuX3BhZ2luYXRvcj10LHRoaXMuX3VwZGF0ZUNoYW5nZVN1YnNjcmlwdGlvbigpfV91cGRhdGVDaGFuZ2VTdWJzY3JpcHRpb24oKXt2YXIgdDtjb25zdCBlPXRoaXMuX3NvcnQ/cGUodGhpcy5fc29ydC5zb3J0Q2hhbmdlLHRoaXMuX3NvcnQuaW5pdGlhbGl6ZWQpOnp0KG51bGwpLG49dGhpcy5fcGFnaW5hdG9yP3BlKHRoaXMuX3BhZ2luYXRvci5wYWdlLHRoaXMuX2ludGVybmFsUGFnZUNoYW5nZXMsdGhpcy5fcGFnaW5hdG9yLmluaXRpYWxpemVkKTp6dChudWxsKSxvPUt0KFt0aGlzLl9kYXRhLHRoaXMuX2ZpbHRlcl0pLnBpcGUoVnQoKChbdF0pPT50aGlzLl9maWx0ZXJEYXRhKHQpKSkpLGk9S3QoW28sZV0pLnBpcGUoVnQoKChbdF0pPT50aGlzLl9vcmRlckRhdGEodCkpKSksYT1LdChbaSxuXSkucGlwZShWdCgoKFt0XSk9PnRoaXMuX3BhZ2VEYXRhKHQpKSkpO251bGw9PT0odD10aGlzLl9yZW5kZXJDaGFuZ2VzU3Vic2NyaXB0aW9uKXx8dm9pZCAwPT09dHx8dC51bnN1YnNjcmliZSgpLHRoaXMuX3JlbmRlckNoYW5nZXNTdWJzY3JpcHRpb249YS5zdWJzY3JpYmUoKHQ9PnRoaXMuX3JlbmRlckRhdGEubmV4dCh0KSkpfV9maWx0ZXJEYXRhKHQpe3JldHVybiB0aGlzLmZpbHRlcmVkRGF0YT1udWxsPT10aGlzLmZpbHRlcnx8IiI9PT10aGlzLmZpbHRlcj90OnQuZmlsdGVyKCh0PT50aGlzLmZpbHRlclByZWRpY2F0ZSh0LHRoaXMuZmlsdGVyKSkpLHRoaXMucGFnaW5hdG9yJiZ0aGlzLl91cGRhdGVQYWdpbmF0b3IodGhpcy5maWx0ZXJlZERhdGEubGVuZ3RoKSx0aGlzLmZpbHRlcmVkRGF0YX1fb3JkZXJEYXRhKHQpe3JldHVybiB0aGlzLnNvcnQ/dGhpcy5zb3J0RGF0YSh0LnNsaWNlKCksdGhpcy5zb3J0KTp0fV9wYWdlRGF0YSh0KXtpZighdGhpcy5wYWdpbmF0b3IpcmV0dXJuIHQ7Y29uc3QgZT10aGlzLnBhZ2luYXRvci5wYWdlSW5kZXgqdGhpcy5wYWdpbmF0b3IucGFnZVNpemU7cmV0dXJuIHQuc2xpY2UoZSxlK3RoaXMucGFnaW5hdG9yLnBhZ2VTaXplKX1fdXBkYXRlUGFnaW5hdG9yKHQpe1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCgpPT57Y29uc3QgZT10aGlzLnBhZ2luYXRvcjtpZihlJiYoZS5sZW5ndGg9dCxlLnBhZ2VJbmRleD4wKSl7Y29uc3QgdD1NYXRoLmNlaWwoZS5sZW5ndGgvZS5wYWdlU2l6ZSktMXx8MCxuPU1hdGgubWluKGUucGFnZUluZGV4LHQpO24hPT1lLnBhZ2VJbmRleCYmKGUucGFnZUluZGV4PW4sdGhpcy5faW50ZXJuYWxQYWdlQ2hhbmdlcy5uZXh0KCkpfX0pKX1jb25uZWN0KCl7cmV0dXJuIHRoaXMuX3JlbmRlckNoYW5nZXNTdWJzY3JpcHRpb258fHRoaXMuX3VwZGF0ZUNoYW5nZVN1YnNjcmlwdGlvbigpLHRoaXMuX3JlbmRlckRhdGF9ZGlzY29ubmVjdCgpe3ZhciB0O251bGw9PT0odD10aGlzLl9yZW5kZXJDaGFuZ2VzU3Vic2NyaXB0aW9uKXx8dm9pZCAwPT09dHx8dC51bnN1YnNjcmliZSgpLHRoaXMuX3JlbmRlckNoYW5nZXNTdWJzY3JpcHRpb249bnVsbH19Y2xhc3MgRDMgZXh0ZW5kcyBTM3t9Y29uc3QgUjM9WyJwYW5lbCJdO2Z1bmN0aW9uIEUzKHQsZSl7aWYoMSZ0JiYoQ2YoMCwiZGl2IiwwLDEpLEZmKDIpLE1mKCkpLDImdCl7Y29uc3QgdD1lLmlkLG49emYoKTtiZigiaWQiLG4uaWQpKCJuZ0NsYXNzIixuLl9jbGFzc0xpc3QpLHltKCJhcmlhLWxhYmVsIixuLmFyaWFMYWJlbHx8bnVsbCkoImFyaWEtbGFiZWxsZWRieSIsbi5fZ2V0UGFuZWxBcmlhTGFiZWxsZWRieSh0KSl9fWxldCBBMz0wO2NsYXNzIFQze2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5zb3VyY2U9dCx0aGlzLm9wdGlvbj1lfX1jb25zdCBOMz1IRihjbGFzc3t9KSx6Mz1uZXcgZXIoIm1hdC1hdXRvY29tcGxldGUtZGVmYXVsdC1vcHRpb25zIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpmdW5jdGlvbiBJMygpe3JldHVybnthdXRvQWN0aXZlRmlyc3RPcHRpb246ITF9fX0pO2NsYXNzIEgzIGV4dGVuZHMgTjN7Y29uc3RydWN0b3IodCxlLG4sbyl7c3VwZXIoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj10LHRoaXMuX2VsZW1lbnRSZWY9ZSx0aGlzLl9hY3RpdmVPcHRpb25DaGFuZ2VzPXUuRU1QVFksdGhpcy5zaG93UGFuZWw9ITEsdGhpcy5faXNPcGVuPSExLHRoaXMuZGlzcGxheVdpdGg9bnVsbCx0aGlzLm9wdGlvblNlbGVjdGVkPW5ldyBTeSx0aGlzLm9wZW5lZD1uZXcgU3ksdGhpcy5jbG9zZWQ9bmV3IFN5LHRoaXMub3B0aW9uQWN0aXZhdGVkPW5ldyBTeSx0aGlzLl9jbGFzc0xpc3Q9e30sdGhpcy5pZD0ibWF0LWF1dG9jb21wbGV0ZS0iK0EzKyssdGhpcy5pbmVydEdyb3Vwcz0obnVsbD09bz92b2lkIDA6by5TQUZBUkkpfHwhMSx0aGlzLl9hdXRvQWN0aXZlRmlyc3RPcHRpb249ISFuLmF1dG9BY3RpdmVGaXJzdE9wdGlvbn1nZXQgaXNPcGVuKCl7cmV0dXJuIHRoaXMuX2lzT3BlbiYmdGhpcy5zaG93UGFuZWx9Z2V0IGF1dG9BY3RpdmVGaXJzdE9wdGlvbigpe3JldHVybiB0aGlzLl9hdXRvQWN0aXZlRmlyc3RPcHRpb259c2V0IGF1dG9BY3RpdmVGaXJzdE9wdGlvbih0KXt0aGlzLl9hdXRvQWN0aXZlRmlyc3RPcHRpb249ZUgodCl9c2V0IGNsYXNzTGlzdCh0KXt0aGlzLl9jbGFzc0xpc3Q9dCYmdC5sZW5ndGg/KGZ1bmN0aW9uIGUodCxuPS9ccysvKXtjb25zdCBvPVtdO2lmKG51bGwhPXQpe2NvbnN0IGU9QXJyYXkuaXNBcnJheSh0KT90OmAke3R9YC5zcGxpdChuKTtmb3IoY29uc3QgdCBvZiBlKXtjb25zdCBlPWAke3R9YC50cmltKCk7ZSYmby5wdXNoKGUpfX1yZXR1cm4gb30pKHQpLnJlZHVjZSgoKHQsZSk9Pih0W2VdPSEwLHQpKSx7fSk6e30sdGhpcy5fc2V0VmlzaWJpbGl0eUNsYXNzZXModGhpcy5fY2xhc3NMaXN0KSx0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lPSIifW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX2tleU1hbmFnZXI9bmV3IEZIKHRoaXMub3B0aW9ucykud2l0aFdyYXAoKSx0aGlzLl9hY3RpdmVPcHRpb25DaGFuZ2VzPXRoaXMuX2tleU1hbmFnZXIuY2hhbmdlLnN1YnNjcmliZSgodD0+e3RoaXMub3B0aW9uQWN0aXZhdGVkLmVtaXQoe3NvdXJjZTp0aGlzLG9wdGlvbjp0aGlzLm9wdGlvbnMudG9BcnJheSgpW3RdfHxudWxsfSl9KSksdGhpcy5fc2V0VmlzaWJpbGl0eSgpfW5nT25EZXN0cm95KCl7dGhpcy5fYWN0aXZlT3B0aW9uQ2hhbmdlcy51bnN1YnNjcmliZSgpfV9zZXRTY3JvbGxUb3AodCl7dGhpcy5wYW5lbCYmKHRoaXMucGFuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3A9dCl9X2dldFNjcm9sbFRvcCgpe3JldHVybiB0aGlzLnBhbmVsP3RoaXMucGFuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3A6MH1fc2V0VmlzaWJpbGl0eSgpe3RoaXMuc2hvd1BhbmVsPSEhdGhpcy5vcHRpb25zLmxlbmd0aCx0aGlzLl9zZXRWaXNpYmlsaXR5Q2xhc3Nlcyh0aGlzLl9jbGFzc0xpc3QpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfV9lbWl0U2VsZWN0RXZlbnQodCl7Y29uc3QgZT1uZXcgVDModGhpcyx0KTt0aGlzLm9wdGlvblNlbGVjdGVkLmVtaXQoZSl9X2dldFBhbmVsQXJpYUxhYmVsbGVkYnkodCl7aWYodGhpcy5hcmlhTGFiZWwpcmV0dXJuIG51bGw7cmV0dXJuIHRoaXMuYXJpYUxhYmVsbGVkYnk/KHQ/dCsiICI6IiIpK3RoaXMuYXJpYUxhYmVsbGVkYnk6dH1fc2V0VmlzaWJpbGl0eUNsYXNzZXModCl7dFt0aGlzLl92aXNpYmxlQ2xhc3NdPXRoaXMuc2hvd1BhbmVsLHRbdGhpcy5faGlkZGVuQ2xhc3NdPSF0aGlzLnNob3dQYW5lbH19SDMuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEgzKShnZihPYiksZ2YoS2gpLGdmKHozKSxnZihjSCkpfSxIMy7JtWRpcj1obyh7dHlwZTpIMyx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFZ5KEViLDcpLFZ5KFIzLDUpKSwyJmUpe2xldCB0O0J5KHQ9VXkoKSkmJihuLnRlbXBsYXRlPXQuZmlyc3QpLEJ5KHQ9VXkoKSkmJihuLnBhbmVsPXQuZmlyc3QpfX0saW5wdXRzOntkaXNwbGF5V2l0aDoiZGlzcGxheVdpdGgiLGF1dG9BY3RpdmVGaXJzdE9wdGlvbjoiYXV0b0FjdGl2ZUZpcnN0T3B0aW9uIixjbGFzc0xpc3Q6WyJjbGFzcyIsImNsYXNzTGlzdCJdLGFyaWFMYWJlbDpbImFyaWEtbGFiZWwiLCJhcmlhTGFiZWwiXSxhcmlhTGFiZWxsZWRieTpbImFyaWEtbGFiZWxsZWRieSIsImFyaWFMYWJlbGxlZGJ5Il0scGFuZWxXaWR0aDoicGFuZWxXaWR0aCJ9LG91dHB1dHM6e29wdGlvblNlbGVjdGVkOiJvcHRpb25TZWxlY3RlZCIsb3BlbmVkOiJvcGVuZWQiLGNsb3NlZDoiY2xvc2VkIixvcHRpb25BY3RpdmF0ZWQ6Im9wdGlvbkFjdGl2YXRlZCJ9LGZlYXR1cmVzOltRcF19KSxIMy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOk9ifSx7dHlwZTpLaH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3ozXX1dfSx7dHlwZTpjSH1dLEgzLnByb3BEZWNvcmF0b3JzPXt0ZW1wbGF0ZTpbe3R5cGU6YXIsYXJnczpbRWIse3N0YXRpYzohMH1dfV0scGFuZWw6W3t0eXBlOmFyLGFyZ3M6WyJwYW5lbCJdfV0sYXJpYUxhYmVsOlt7dHlwZTpSXyxhcmdzOlsiYXJpYS1sYWJlbCJdfV0sYXJpYUxhYmVsbGVkYnk6W3t0eXBlOlJfLGFyZ3M6WyJhcmlhLWxhYmVsbGVkYnkiXX1dLGRpc3BsYXlXaXRoOlt7dHlwZTpSX31dLGF1dG9BY3RpdmVGaXJzdE9wdGlvbjpbe3R5cGU6Ul99XSxwYW5lbFdpZHRoOlt7dHlwZTpSX31dLG9wdGlvblNlbGVjdGVkOlt7dHlwZTpFX31dLG9wZW5lZDpbe3R5cGU6RV99XSxjbG9zZWQ6W3t0eXBlOkVffV0sb3B0aW9uQWN0aXZhdGVkOlt7dHlwZTpFX31dLGNsYXNzTGlzdDpbe3R5cGU6Ul8sYXJnczpbImNsYXNzIl19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihIMyxbe3R5cGU6a199XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6T2J9LHt0eXBlOktofSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbejNdfV19LHt0eXBlOmNIfV19KSx7ZGlzcGxheVdpdGg6W3t0eXBlOlJffV0sb3B0aW9uU2VsZWN0ZWQ6W3t0eXBlOkVffV0sb3BlbmVkOlt7dHlwZTpFX31dLGNsb3NlZDpbe3R5cGU6RV99XSxvcHRpb25BY3RpdmF0ZWQ6W3t0eXBlOkVffV0sYXV0b0FjdGl2ZUZpcnN0T3B0aW9uOlt7dHlwZTpSX31dLGNsYXNzTGlzdDpbe3R5cGU6Ul8sYXJnczpbImNsYXNzIl19XSx0ZW1wbGF0ZTpbe3R5cGU6YXIsYXJnczpbRWIse3N0YXRpYzohMH1dfV0scGFuZWw6W3t0eXBlOmFyLGFyZ3M6WyJwYW5lbCJdfV0sYXJpYUxhYmVsOlt7dHlwZTpSXyxhcmdzOlsiYXJpYS1sYWJlbCJdfV0sYXJpYUxhYmVsbGVkYnk6W3t0eXBlOlJfLGFyZ3M6WyJhcmlhLWxhYmVsbGVkYnkiXX1dLHBhbmVsV2lkdGg6W3t0eXBlOlJffV19KTtjbGFzcyBGMyBleHRlbmRzIEgze2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl92aXNpYmxlQ2xhc3M9Im1hdC1hdXRvY29tcGxldGUtdmlzaWJsZSIsdGhpcy5faGlkZGVuQ2xhc3M9Im1hdC1hdXRvY29tcGxldGUtaGlkZGVuIn19RjMuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PVVhKEYzKSkpKG58fEYzKX19KSgpLEYzLsm1Y21wPXNvKHt0eXBlOkYzLHNlbGVjdG9yczpbWyJtYXQtYXV0b2NvbXBsZXRlIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uIHQoZSxuLG8pe2lmKDEmZSYmKGp5KG8sQ0wsNSksankobyxQTCw1KSksMiZlKXtsZXQgdDtCeSh0PVV5KCkpJiYobi5vcHRpb25Hcm91cHM9dCksQnkodD1VeSgpKSYmKG4ub3B0aW9ucz10KX19LGhvc3RBdHRyczpbMSwibWF0LWF1dG9jb21wbGV0ZSJdLGlucHV0czp7ZGlzYWJsZVJpcHBsZToiZGlzYWJsZVJpcHBsZSJ9LGV4cG9ydEFzOlsibWF0QXV0b2NvbXBsZXRlIl0sZmVhdHVyZXM6W2poKFt7cHJvdmlkZTpoTCx1c2VFeGlzdGluZzpGM31dKSxRcF0sbmdDb250ZW50U2VsZWN0b3JzOlsiKiJdLGRlY2xzOjEsdmFyczowLGNvbnN0czpbWyJyb2xlIiwibGlzdGJveCIsMSwibWF0LWF1dG9jb21wbGV0ZS1wYW5lbCIsMywiaWQiLCJuZ0NsYXNzIl0sWyJwYW5lbCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoSGYoKSxIbSgwLEUzLDMsNCwibmctdGVtcGxhdGUiKSl9LGRpcmVjdGl2ZXM6W0N2XSxzdHlsZXM6WyIubWF0LWF1dG9jb21wbGV0ZS1wYW5lbHttaW4td2lkdGg6MTEycHg7bWF4LXdpZHRoOjI4MHB4O292ZXJmbG93OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7dmlzaWJpbGl0eTpoaWRkZW47bWF4LXdpZHRoOm5vbmU7bWF4LWhlaWdodDoyNTZweDtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NHB4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjRweH0ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbC5tYXQtYXV0b2NvbXBsZXRlLXZpc2libGV7dmlzaWJpbGl0eTp2aXNpYmxlfS5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsLm1hdC1hdXRvY29tcGxldGUtaGlkZGVue3Zpc2liaWxpdHk6aGlkZGVufS5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsLWFib3ZlIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVse2JvcmRlci1yYWRpdXM6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjRweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo0cHh9Lm1hdC1hdXRvY29tcGxldGUtcGFuZWwgLm1hdC1kaXZpZGVyLWhvcml6b250YWx7bWFyZ2luLXRvcDotMXB4fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWx7b3V0bGluZTpzb2xpZCAxcHh9bWF0LWF1dG9jb21wbGV0ZXtkaXNwbGF5Om5vbmV9XG4iXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxGMy5wcm9wRGVjb3JhdG9ycz17b3B0aW9uR3JvdXBzOlt7dHlwZTpvcixhcmdzOltDTCx7ZGVzY2VuZGFudHM6ITB9XX1dLG9wdGlvbnM6W3t0eXBlOm9yLGFyZ3M6W1BMLHtkZXNjZW5kYW50czohMH1dfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoRjMsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibWF0LWF1dG9jb21wbGV0ZSIsdGVtcGxhdGU6JzxuZy10ZW1wbGF0ZSBsZXQtZm9ybUZpZWxkSWQ9ImlkIj5cbiAgPGRpdiBjbGFzcz0ibWF0LWF1dG9jb21wbGV0ZS1wYW5lbCJcbiAgICAgICByb2xlPSJsaXN0Ym94IlxuICAgICAgIFtpZF09ImlkIlxuICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPSJhcmlhTGFiZWwgfHwgbnVsbCJcbiAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPSJfZ2V0UGFuZWxBcmlhTGFiZWxsZWRieShmb3JtRmllbGRJZCkiXG4gICAgICAgW25nQ2xhc3NdPSJfY2xhc3NMaXN0IlxuICAgICAgICNwYW5lbD5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbicsZW5jYXBzdWxhdGlvbjpXbi5Ob25lLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2gsZXhwb3J0QXM6Im1hdEF1dG9jb21wbGV0ZSIsaW5wdXRzOlsiZGlzYWJsZVJpcHBsZSJdLGhvc3Q6e2NsYXNzOiJtYXQtYXV0b2NvbXBsZXRlIn0scHJvdmlkZXJzOlt7cHJvdmlkZTpoTCx1c2VFeGlzdGluZzpGM31dLHN0eWxlczpbIi5tYXQtYXV0b2NvbXBsZXRlLXBhbmVse21pbi13aWR0aDoxMTJweDttYXgtd2lkdGg6MjgwcHg7b3ZlcmZsb3c6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDt2aXNpYmlsaXR5OmhpZGRlbjttYXgtd2lkdGg6bm9uZTttYXgtaGVpZ2h0OjI1NnB4O3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo0cHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NHB4fS5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsLm1hdC1hdXRvY29tcGxldGUtdmlzaWJsZXt2aXNpYmlsaXR5OnZpc2libGV9Lm1hdC1hdXRvY29tcGxldGUtcGFuZWwubWF0LWF1dG9jb21wbGV0ZS1oaWRkZW57dmlzaWJpbGl0eTpoaWRkZW59Lm1hdC1hdXRvY29tcGxldGUtcGFuZWwtYWJvdmUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWx7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6NHB4O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjRweH0ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LWRpdmlkZXItaG9yaXpvbnRhbHttYXJnaW4tdG9wOi0xcHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbHtvdXRsaW5lOnNvbGlkIDFweH1tYXQtYXV0b2NvbXBsZXRle2Rpc3BsYXk6bm9uZX1cbiJdfV19XSxudWxsLHtvcHRpb25Hcm91cHM6W3t0eXBlOm9yLGFyZ3M6W0NMLHtkZXNjZW5kYW50czohMH1dfV0sb3B0aW9uczpbe3R5cGU6b3IsYXJnczpbUEwse2Rlc2NlbmRhbnRzOiEwfV19XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY2xhc3MgTDN7Y29uc3RydWN0b3IodCl7dGhpcy5lbGVtZW50UmVmPXR9fUwzLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxMMykoZ2YoS2gpKX0sTDMuybVkaXI9aG8oe3R5cGU6TDN9KSxMMy5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOktofV0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihMMyxbe3R5cGU6a199XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6S2h9XX0pLG51bGwpO2NsYXNzIEIzIGV4dGVuZHMgTDN7fUIzLsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1VYShCMykpKShufHxCMyl9fSkoKSxCMy7JtWRpcj1obyh7dHlwZTpCMyxzZWxlY3RvcnM6W1siIiwibWF0QXV0b2NvbXBsZXRlT3JpZ2luIiwiIl1dLGV4cG9ydEFzOlsibWF0QXV0b2NvbXBsZXRlT3JpZ2luIl0sZmVhdHVyZXM6W1FwXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoQjMsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW21hdEF1dG9jb21wbGV0ZU9yaWdpbl0iLGV4cG9ydEFzOiJtYXRBdXRvY29tcGxldGVPcmlnaW4ifV19XSxudWxsLG51bGwpOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgVjM9bmV3IGVyKCJtYXQtYXV0b2NvbXBsZXRlLXNjcm9sbC1zdHJhdGVneSIpO2NvbnN0IGozPXtwcm92aWRlOlYzLGRlcHM6W0tCXSx1c2VGYWN0b3J5OmZ1bmN0aW9uIFUzKHQpe3JldHVybigpPT50LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpfX0sVzM9e3Byb3ZpZGU6eFUsdXNlRXhpc3Rpbmc6JGUoKCgpPT5ZMykpLG11bHRpOiEwfTtjbGFzcyBHM3tjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyLHMsbCxjLGQpe3RoaXMuX2VsZW1lbnQ9dCx0aGlzLl9vdmVybGF5PWUsdGhpcy5fdmlld0NvbnRhaW5lclJlZj1uLHRoaXMuX3pvbmU9byx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj1pLHRoaXMuX2Rpcj1yLHRoaXMuX2Zvcm1GaWVsZD1zLHRoaXMuX2RvY3VtZW50PWwsdGhpcy5fdmlld3BvcnRSdWxlcj1jLHRoaXMuX2RlZmF1bHRzPWQsdGhpcy5fY29tcG9uZW50RGVzdHJveWVkPSExLHRoaXMuX2F1dG9jb21wbGV0ZURpc2FibGVkPSExLHRoaXMuX21hbnVhbGx5RmxvYXRpbmdMYWJlbD0hMSx0aGlzLl92aWV3cG9ydFN1YnNjcmlwdGlvbj11LkVNUFRZLHRoaXMuX2Nhbk9wZW5Pbk5leHRGb2N1cz0hMCx0aGlzLl9jbG9zZUtleUV2ZW50U3RyZWFtPW5ldyBCLHRoaXMuX3dpbmRvd0JsdXJIYW5kbGVyPSgpPT57dGhpcy5fY2FuT3Blbk9uTmV4dEZvY3VzPXRoaXMuX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT10aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnR8fHRoaXMucGFuZWxPcGVufSx0aGlzLl9vbkNoYW5nZT0oKT0+e30sdGhpcy5fb25Ub3VjaGVkPSgpPT57fSx0aGlzLnBvc2l0aW9uPSJhdXRvIix0aGlzLmF1dG9jb21wbGV0ZUF0dHJpYnV0ZT0ib2ZmIix0aGlzLl9vdmVybGF5QXR0YWNoZWQ9ITEsdGhpcy5vcHRpb25TZWxlY3Rpb25zPW9lKCgoKT0+dGhpcy5hdXRvY29tcGxldGUmJnRoaXMuYXV0b2NvbXBsZXRlLm9wdGlvbnM/cGUoLi4udGhpcy5hdXRvY29tcGxldGUub3B0aW9ucy5tYXAoKHQ9PnQub25TZWxlY3Rpb25DaGFuZ2UpKSk6dGhpcy5fem9uZS5vblN0YWJsZS5waXBlKHZlKDEpLFZlKCgoKT0+dGhpcy5vcHRpb25TZWxlY3Rpb25zKSkpKSksdGhpcy5fc2Nyb2xsU3RyYXRlZ3k9YX1nZXQgYXV0b2NvbXBsZXRlRGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5fYXV0b2NvbXBsZXRlRGlzYWJsZWR9c2V0IGF1dG9jb21wbGV0ZURpc2FibGVkKHQpe3RoaXMuX2F1dG9jb21wbGV0ZURpc2FibGVkPWVIKHQpfW5nQWZ0ZXJWaWV3SW5pdCgpe2NvbnN0IHQ9dGhpcy5fZ2V0V2luZG93KCk7dm9pZCAwIT09dCYmdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKCk9PnQuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcy5fd2luZG93Qmx1ckhhbmRsZXIpKSl9bmdPbkNoYW5nZXModCl7dC5wb3NpdGlvbiYmdGhpcy5fcG9zaXRpb25TdHJhdGVneSYmKHRoaXMuX3NldFN0cmF0ZWd5UG9zaXRpb25zKHRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3kpLHRoaXMucGFuZWxPcGVuJiZ0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCkpfW5nT25EZXN0cm95KCl7Y29uc3QgdD10aGlzLl9nZXRXaW5kb3coKTt2b2lkIDAhPT10JiZ0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLHRoaXMuX3dpbmRvd0JsdXJIYW5kbGVyKSx0aGlzLl92aWV3cG9ydFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX2NvbXBvbmVudERlc3Ryb3llZD0hMCx0aGlzLl9kZXN0cm95UGFuZWwoKSx0aGlzLl9jbG9zZUtleUV2ZW50U3RyZWFtLmNvbXBsZXRlKCl9Z2V0IHBhbmVsT3Blbigpe3JldHVybiB0aGlzLl9vdmVybGF5QXR0YWNoZWQmJnRoaXMuYXV0b2NvbXBsZXRlLnNob3dQYW5lbH1vcGVuUGFuZWwoKXt0aGlzLl9hdHRhY2hPdmVybGF5KCksdGhpcy5fZmxvYXRMYWJlbCgpfWNsb3NlUGFuZWwoKXt0aGlzLl9yZXNldExhYmVsKCksdGhpcy5fb3ZlcmxheUF0dGFjaGVkJiYodGhpcy5wYW5lbE9wZW4mJnRoaXMuYXV0b2NvbXBsZXRlLmNsb3NlZC5lbWl0KCksdGhpcy5hdXRvY29tcGxldGUuX2lzT3Blbj10aGlzLl9vdmVybGF5QXR0YWNoZWQ9ITEsdGhpcy5fb3ZlcmxheVJlZiYmdGhpcy5fb3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpJiYodGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKSx0aGlzLl9jbG9zaW5nQWN0aW9uc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKSx0aGlzLl9jb21wb25lbnREZXN0cm95ZWR8fHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKSl9dXBkYXRlUG9zaXRpb24oKXt0aGlzLl9vdmVybGF5QXR0YWNoZWQmJnRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKX1nZXQgcGFuZWxDbG9zaW5nQWN0aW9ucygpe3JldHVybiBwZSh0aGlzLm9wdGlvblNlbGVjdGlvbnMsdGhpcy5hdXRvY29tcGxldGUuX2tleU1hbmFnZXIudGFiT3V0LnBpcGUodWUoKCgpPT50aGlzLl9vdmVybGF5QXR0YWNoZWQpKSksdGhpcy5fY2xvc2VLZXlFdmVudFN0cmVhbSx0aGlzLl9nZXRPdXRzaWRlQ2xpY2tTdHJlYW0oKSx0aGlzLl9vdmVybGF5UmVmP3RoaXMuX292ZXJsYXlSZWYuZGV0YWNobWVudHMoKS5waXBlKHVlKCgoKT0+dGhpcy5fb3ZlcmxheUF0dGFjaGVkKSkpOnp0KCkpLnBpcGUoVnQoKHQ9PnQgaW5zdGFuY2VvZiB4TD90Om51bGwpKSl9Z2V0IGFjdGl2ZU9wdGlvbigpe3JldHVybiB0aGlzLmF1dG9jb21wbGV0ZSYmdGhpcy5hdXRvY29tcGxldGUuX2tleU1hbmFnZXI/dGhpcy5hdXRvY29tcGxldGUuX2tleU1hbmFnZXIuYWN0aXZlSXRlbTpudWxsfV9nZXRPdXRzaWRlQ2xpY2tTdHJlYW0oKXtyZXR1cm4gcGUobGUodGhpcy5fZG9jdW1lbnQsImNsaWNrIiksbGUodGhpcy5fZG9jdW1lbnQsImF1eGNsaWNrIiksbGUodGhpcy5fZG9jdW1lbnQsInRvdWNoZW5kIikpLnBpcGUodWUoKHQ9Pntjb25zdCBlPXZIKHQpLG49dGhpcy5fZm9ybUZpZWxkP3RoaXMuX2Zvcm1GaWVsZC5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Om51bGwsbz10aGlzLmNvbm5lY3RlZFRvP3RoaXMuY29ubmVjdGVkVG8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Om51bGw7cmV0dXJuIHRoaXMuX292ZXJsYXlBdHRhY2hlZCYmZSE9PXRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCYmKCFufHwhbi5jb250YWlucyhlKSkmJighb3x8IW8uY29udGFpbnMoZSkpJiYhIXRoaXMuX292ZXJsYXlSZWYmJiF0aGlzLl9vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50LmNvbnRhaW5zKGUpfSkpKX13cml0ZVZhbHVlKHQpe1Byb21pc2UucmVzb2x2ZShudWxsKS50aGVuKCgoKT0+dGhpcy5fc2V0VHJpZ2dlclZhbHVlKHQpKSl9cmVnaXN0ZXJPbkNoYW5nZSh0KXt0aGlzLl9vbkNoYW5nZT10fXJlZ2lzdGVyT25Ub3VjaGVkKHQpe3RoaXMuX29uVG91Y2hlZD10fXNldERpc2FibGVkU3RhdGUodCl7dGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LmRpc2FibGVkPXR9X2hhbmRsZUtleWRvd24odCl7Y29uc3QgZT10LmtleUNvZGU7aWYoZSE9PUtJfHx0SCh0KXx8dC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYWN0aXZlT3B0aW9uJiZlPT09WEkmJnRoaXMucGFuZWxPcGVuKXRoaXMuYWN0aXZlT3B0aW9uLl9zZWxlY3RWaWFJbnRlcmFjdGlvbigpLHRoaXMuX3Jlc2V0QWN0aXZlSXRlbSgpLHQucHJldmVudERlZmF1bHQoKTtlbHNlIGlmKHRoaXMuYXV0b2NvbXBsZXRlKXtjb25zdCBuPXRoaXMuYXV0b2NvbXBsZXRlLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0sbz1lPT09UUl8fGU9PT0kSTt0aGlzLnBhbmVsT3Blbnx8OT09PWU/dGhpcy5hdXRvY29tcGxldGUuX2tleU1hbmFnZXIub25LZXlkb3duKHQpOm8mJnRoaXMuX2Nhbk9wZW4oKSYmdGhpcy5vcGVuUGFuZWwoKSwob3x8dGhpcy5hdXRvY29tcGxldGUuX2tleU1hbmFnZXIuYWN0aXZlSXRlbSE9PW4pJiZ0aGlzLl9zY3JvbGxUb09wdGlvbih0aGlzLmF1dG9jb21wbGV0ZS5fa2V5TWFuYWdlci5hY3RpdmVJdGVtSW5kZXh8fDApfX1faGFuZGxlSW5wdXQodCl7bGV0IGU9dC50YXJnZXQsbj1lLnZhbHVlOyJudW1iZXIiPT09ZS50eXBlJiYobj0iIj09bj9udWxsOnBhcnNlRmxvYXQobikpLHRoaXMuX3ByZXZpb3VzVmFsdWUhPT1uJiYodGhpcy5fcHJldmlvdXNWYWx1ZT1uLHRoaXMuX29uQ2hhbmdlKG4pLHRoaXMuX2Nhbk9wZW4oKSYmdGhpcy5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXQudGFyZ2V0JiZ0aGlzLm9wZW5QYW5lbCgpKX1faGFuZGxlRm9jdXMoKXt0aGlzLl9jYW5PcGVuT25OZXh0Rm9jdXM/dGhpcy5fY2FuT3BlbigpJiYodGhpcy5fcHJldmlvdXNWYWx1ZT10aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUsdGhpcy5fYXR0YWNoT3ZlcmxheSgpLHRoaXMuX2Zsb2F0TGFiZWwoITApKTp0aGlzLl9jYW5PcGVuT25OZXh0Rm9jdXM9ITB9X2Zsb2F0TGFiZWwodD0hMSl7dGhpcy5fZm9ybUZpZWxkJiYiYXV0byI9PT10aGlzLl9mb3JtRmllbGQuZmxvYXRMYWJlbCYmKHQ/dGhpcy5fZm9ybUZpZWxkLl9hbmltYXRlQW5kTG9ja0xhYmVsKCk6dGhpcy5fZm9ybUZpZWxkLmZsb2F0TGFiZWw9ImFsd2F5cyIsdGhpcy5fbWFudWFsbHlGbG9hdGluZ0xhYmVsPSEwKX1fcmVzZXRMYWJlbCgpe3RoaXMuX21hbnVhbGx5RmxvYXRpbmdMYWJlbCYmKHRoaXMuX2Zvcm1GaWVsZC5mbG9hdExhYmVsPSJhdXRvIix0aGlzLl9tYW51YWxseUZsb2F0aW5nTGFiZWw9ITEpfV9zdWJzY3JpYmVUb0Nsb3NpbmdBY3Rpb25zKCl7cmV0dXJuIHBlKHRoaXMuX3pvbmUub25TdGFibGUucGlwZSh2ZSgxKSksdGhpcy5hdXRvY29tcGxldGUub3B0aW9ucy5jaGFuZ2VzLnBpcGUoV2UoKCgpPT50aGlzLl9wb3NpdGlvblN0cmF0ZWd5LnJlYXBwbHlMYXN0UG9zaXRpb24oKSkpLFBlKDApKSkucGlwZShWZSgoKCk9Pntjb25zdCB0PXRoaXMucGFuZWxPcGVuO3JldHVybiB0aGlzLl9yZXNldEFjdGl2ZUl0ZW0oKSx0aGlzLmF1dG9jb21wbGV0ZS5fc2V0VmlzaWJpbGl0eSgpLHRoaXMucGFuZWxPcGVuJiYodGhpcy5fb3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpLHQhPT10aGlzLnBhbmVsT3BlbiYmdGhpcy5hdXRvY29tcGxldGUub3BlbmVkLmVtaXQoKSksdGhpcy5wYW5lbENsb3NpbmdBY3Rpb25zfSkpLHZlKDEpKS5zdWJzY3JpYmUoKHQ9PnRoaXMuX3NldFZhbHVlQW5kQ2xvc2UodCkpKX1fZGVzdHJveVBhbmVsKCl7dGhpcy5fb3ZlcmxheVJlZiYmKHRoaXMuY2xvc2VQYW5lbCgpLHRoaXMuX292ZXJsYXlSZWYuZGlzcG9zZSgpLHRoaXMuX292ZXJsYXlSZWY9bnVsbCl9X3NldFRyaWdnZXJWYWx1ZSh0KXtjb25zdCBlPXRoaXMuYXV0b2NvbXBsZXRlJiZ0aGlzLmF1dG9jb21wbGV0ZS5kaXNwbGF5V2l0aD90aGlzLmF1dG9jb21wbGV0ZS5kaXNwbGF5V2l0aCh0KTp0LG49bnVsbCE9ZT9lOiIiO3RoaXMuX2Zvcm1GaWVsZD90aGlzLl9mb3JtRmllbGQuX2NvbnRyb2wudmFsdWU9bjp0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWU9bix0aGlzLl9wcmV2aW91c1ZhbHVlPW59X3NldFZhbHVlQW5kQ2xvc2UodCl7dCYmdC5zb3VyY2UmJih0aGlzLl9jbGVhclByZXZpb3VzU2VsZWN0ZWRPcHRpb24odC5zb3VyY2UpLHRoaXMuX3NldFRyaWdnZXJWYWx1ZSh0LnNvdXJjZS52YWx1ZSksdGhpcy5fb25DaGFuZ2UodC5zb3VyY2UudmFsdWUpLHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpLHRoaXMuYXV0b2NvbXBsZXRlLl9lbWl0U2VsZWN0RXZlbnQodC5zb3VyY2UpKSx0aGlzLmNsb3NlUGFuZWwoKX1fY2xlYXJQcmV2aW91c1NlbGVjdGVkT3B0aW9uKHQpe3RoaXMuYXV0b2NvbXBsZXRlLm9wdGlvbnMuZm9yRWFjaCgoZT0+e2UhPT10JiZlLnNlbGVjdGVkJiZlLmRlc2VsZWN0KCl9KSl9X2F0dGFjaE92ZXJsYXkoKXt2YXIgdDtpZighdGhpcy5hdXRvY29tcGxldGUmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyhmdW5jdGlvbiBlKCl7cmV0dXJuIEVycm9yKCJBdHRlbXB0aW5nIHRvIG9wZW4gYW4gdW5kZWZpbmVkIGluc3RhbmNlIG9mIGBtYXQtYXV0b2NvbXBsZXRlYC4gTWFrZSBzdXJlIHRoYXQgdGhlIGlkIHBhc3NlZCB0byB0aGUgYG1hdEF1dG9jb21wbGV0ZWAgaXMgY29ycmVjdCBhbmQgdGhhdCB5b3UncmUgYXR0ZW1wdGluZyB0byBvcGVuIGl0IGFmdGVyIHRoZSBuZ0FmdGVyQ29udGVudEluaXQgaG9vay4iKX0pKCk7bGV0IG49dGhpcy5fb3ZlcmxheVJlZjtuPyh0aGlzLl9wb3NpdGlvblN0cmF0ZWd5LnNldE9yaWdpbih0aGlzLl9nZXRDb25uZWN0ZWRFbGVtZW50KCkpLG4udXBkYXRlU2l6ZSh7d2lkdGg6dGhpcy5fZ2V0UGFuZWxXaWR0aCgpfSkpOih0aGlzLl9wb3J0YWw9bmV3IGxCKHRoaXMuYXV0b2NvbXBsZXRlLnRlbXBsYXRlLHRoaXMuX3ZpZXdDb250YWluZXJSZWYse2lkOm51bGw9PT0odD10aGlzLl9mb3JtRmllbGQpfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmdldExhYmVsSWQoKX0pLG49dGhpcy5fb3ZlcmxheS5jcmVhdGUodGhpcy5fZ2V0T3ZlcmxheUNvbmZpZygpKSx0aGlzLl9vdmVybGF5UmVmPW4sbi5rZXlkb3duRXZlbnRzKCkuc3Vic2NyaWJlKCh0PT57KHQua2V5Q29kZT09PUtJJiYhdEgodCl8fHQua2V5Q29kZT09PVFJJiZ0SCh0LCJhbHRLZXkiKSkmJih0aGlzLl9yZXNldEFjdGl2ZUl0ZW0oKSx0aGlzLl9jbG9zZUtleUV2ZW50U3RyZWFtLm5leHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLHQucHJldmVudERlZmF1bHQoKSl9KSksdGhpcy5fdmlld3BvcnRTdWJzY3JpcHRpb249dGhpcy5fdmlld3BvcnRSdWxlci5jaGFuZ2UoKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5wYW5lbE9wZW4mJm4mJm4udXBkYXRlU2l6ZSh7d2lkdGg6dGhpcy5fZ2V0UGFuZWxXaWR0aCgpfSl9KSkpLG4mJiFuLmhhc0F0dGFjaGVkKCkmJihuLmF0dGFjaCh0aGlzLl9wb3J0YWwpLHRoaXMuX2Nsb3NpbmdBY3Rpb25zU3Vic2NyaXB0aW9uPXRoaXMuX3N1YnNjcmliZVRvQ2xvc2luZ0FjdGlvbnMoKSk7Y29uc3Qgbz10aGlzLnBhbmVsT3Blbjt0aGlzLmF1dG9jb21wbGV0ZS5fc2V0VmlzaWJpbGl0eSgpLHRoaXMuYXV0b2NvbXBsZXRlLl9pc09wZW49dGhpcy5fb3ZlcmxheUF0dGFjaGVkPSEwLHRoaXMucGFuZWxPcGVuJiZvIT09dGhpcy5wYW5lbE9wZW4mJnRoaXMuYXV0b2NvbXBsZXRlLm9wZW5lZC5lbWl0KCl9X2dldE92ZXJsYXlDb25maWcoKXt2YXIgdDtyZXR1cm4gbmV3IHdCKHtwb3NpdGlvblN0cmF0ZWd5OnRoaXMuX2dldE92ZXJsYXlQb3NpdGlvbigpLHNjcm9sbFN0cmF0ZWd5OnRoaXMuX3Njcm9sbFN0cmF0ZWd5KCksd2lkdGg6dGhpcy5fZ2V0UGFuZWxXaWR0aCgpLGRpcmVjdGlvbjp0aGlzLl9kaXIscGFuZWxDbGFzczpudWxsPT09KHQ9dGhpcy5fZGVmYXVsdHMpfHx2b2lkIDA9PT10P3ZvaWQgMDp0Lm92ZXJsYXlQYW5lbENsYXNzfSl9X2dldE92ZXJsYXlQb3NpdGlvbigpe2NvbnN0IHQ9dGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5fZ2V0Q29ubmVjdGVkRWxlbWVudCgpKS53aXRoRmxleGlibGVEaW1lbnNpb25zKCExKS53aXRoUHVzaCghMSk7cmV0dXJuIHRoaXMuX3NldFN0cmF0ZWd5UG9zaXRpb25zKHQpLHRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3k9dCx0fV9zZXRTdHJhdGVneVBvc2l0aW9ucyh0KXtjb25zdCBlPVt7b3JpZ2luWDoic3RhcnQiLG9yaWdpblk6ImJvdHRvbSIsb3ZlcmxheVg6InN0YXJ0IixvdmVybGF5WToidG9wIn0se29yaWdpblg6ImVuZCIsb3JpZ2luWToiYm90dG9tIixvdmVybGF5WDoiZW5kIixvdmVybGF5WToidG9wIn1dLG49dGhpcy5fYWJvdmVDbGFzcyxvPVt7b3JpZ2luWDoic3RhcnQiLG9yaWdpblk6InRvcCIsb3ZlcmxheVg6InN0YXJ0IixvdmVybGF5WToiYm90dG9tIixwYW5lbENsYXNzOm59LHtvcmlnaW5YOiJlbmQiLG9yaWdpblk6InRvcCIsb3ZlcmxheVg6ImVuZCIsb3ZlcmxheVk6ImJvdHRvbSIscGFuZWxDbGFzczpufV07bGV0IGk7aT0iYWJvdmUiPT09dGhpcy5wb3NpdGlvbj9vOiJiZWxvdyI9PT10aGlzLnBvc2l0aW9uP2U6Wy4uLmUsLi4ub10sdC53aXRoUG9zaXRpb25zKGkpfV9nZXRDb25uZWN0ZWRFbGVtZW50KCl7cmV0dXJuIHRoaXMuY29ubmVjdGVkVG8/dGhpcy5jb25uZWN0ZWRUby5lbGVtZW50UmVmOnRoaXMuX2Zvcm1GaWVsZD90aGlzLl9mb3JtRmllbGQuZ2V0Q29ubmVjdGVkT3ZlcmxheU9yaWdpbigpOnRoaXMuX2VsZW1lbnR9X2dldFBhbmVsV2lkdGgoKXtyZXR1cm4gdGhpcy5hdXRvY29tcGxldGUucGFuZWxXaWR0aHx8dGhpcy5fZ2V0SG9zdFdpZHRoKCl9X2dldEhvc3RXaWR0aCgpe3JldHVybiB0aGlzLl9nZXRDb25uZWN0ZWRFbGVtZW50KCkubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aH1fcmVzZXRBY3RpdmVJdGVtKCl7Y29uc3QgdD10aGlzLmF1dG9jb21wbGV0ZTt0LmF1dG9BY3RpdmVGaXJzdE9wdGlvbj90Ll9rZXlNYW5hZ2VyLnNldEZpcnN0SXRlbUFjdGl2ZSgpOnQuX2tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbSgtMSl9X2Nhbk9wZW4oKXtjb25zdCB0PXRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudDtyZXR1cm4hdC5yZWFkT25seSYmIXQuZGlzYWJsZWQmJiF0aGlzLl9hdXRvY29tcGxldGVEaXNhYmxlZH1fZ2V0V2luZG93KCl7dmFyIHQ7cmV0dXJuKG51bGw9PT0odD10aGlzLl9kb2N1bWVudCl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuZGVmYXVsdFZpZXcpfHx3aW5kb3d9X3Njcm9sbFRvT3B0aW9uKHQpe2NvbnN0IGU9dGhpcy5hdXRvY29tcGxldGUsbj13TCh0LGUub3B0aW9ucyxlLm9wdGlvbkdyb3Vwcyk7aWYoMD09PXQmJjE9PT1uKWUuX3NldFNjcm9sbFRvcCgwKTtlbHNlIGlmKGUucGFuZWwpe2NvbnN0IG49ZS5vcHRpb25zLnRvQXJyYXkoKVt0XTtpZihuKXtjb25zdCB0PW4uX2dldEhvc3RFbGVtZW50KCksbz1rTCh0Lm9mZnNldFRvcCx0Lm9mZnNldEhlaWdodCxlLl9nZXRTY3JvbGxUb3AoKSxlLnBhbmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0KTtlLl9zZXRTY3JvbGxUb3Aobyl9fX19RzMuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEczKShnZihLaCksZ2YoS0IpLGdmKEZiKSxnZihtQyksZ2YoT2IpLGdmKFYzKSxnZih2Riw4KSxnZih5VSw5KSxnZihzTSw4KSxnZihRTCksZ2YoejMsOCkpfSxHMy7JtWRpcj1obyh7dHlwZTpHMyxpbnB1dHM6e3Bvc2l0aW9uOlsibWF0QXV0b2NvbXBsZXRlUG9zaXRpb24iLCJwb3NpdGlvbiJdLGF1dG9jb21wbGV0ZUF0dHJpYnV0ZTpbImF1dG9jb21wbGV0ZSIsImF1dG9jb21wbGV0ZUF0dHJpYnV0ZSJdLGF1dG9jb21wbGV0ZURpc2FibGVkOlsibWF0QXV0b2NvbXBsZXRlRGlzYWJsZWQiLCJhdXRvY29tcGxldGVEaXNhYmxlZCJdLGF1dG9jb21wbGV0ZTpbIm1hdEF1dG9jb21wbGV0ZSIsImF1dG9jb21wbGV0ZSJdLGNvbm5lY3RlZFRvOlsibWF0QXV0b2NvbXBsZXRlQ29ubmVjdGVkVG8iLCJjb25uZWN0ZWRUbyJdfSxmZWF0dXJlczpbcW9dfSksRzMuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpLaH0se3R5cGU6S0J9LHt0eXBlOkZifSx7dHlwZTptQ30se3R5cGU6T2J9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltWM119XX0se3R5cGU6dkYsZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX0se3R5cGU6X1UsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W3lVXX0se3R5cGU6VXJ9XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltzTV19XX0se3R5cGU6UUx9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbejNdfV19XSxHMy5wcm9wRGVjb3JhdG9ycz17YXV0b2NvbXBsZXRlOlt7dHlwZTpSXyxhcmdzOlsibWF0QXV0b2NvbXBsZXRlIl19XSxwb3NpdGlvbjpbe3R5cGU6Ul8sYXJnczpbIm1hdEF1dG9jb21wbGV0ZVBvc2l0aW9uIl19XSxjb25uZWN0ZWRUbzpbe3R5cGU6Ul8sYXJnczpbIm1hdEF1dG9jb21wbGV0ZUNvbm5lY3RlZFRvIl19XSxhdXRvY29tcGxldGVBdHRyaWJ1dGU6W3t0eXBlOlJfLGFyZ3M6WyJhdXRvY29tcGxldGUiXX1dLGF1dG9jb21wbGV0ZURpc2FibGVkOlt7dHlwZTpSXyxhcmdzOlsibWF0QXV0b2NvbXBsZXRlRGlzYWJsZWQiXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEczLFt7dHlwZTprX31dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpLaH0se3R5cGU6S0J9LHt0eXBlOkZifSx7dHlwZTptQ30se3R5cGU6T2J9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltWM119XX0se3R5cGU6dkYsZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX0se3R5cGU6X1UsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W3lVXX0se3R5cGU6VXJ9XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltzTV19XX0se3R5cGU6UUx9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbejNdfV19XX0pLHtwb3NpdGlvbjpbe3R5cGU6Ul8sYXJnczpbIm1hdEF1dG9jb21wbGV0ZVBvc2l0aW9uIl19XSxhdXRvY29tcGxldGVBdHRyaWJ1dGU6W3t0eXBlOlJfLGFyZ3M6WyJhdXRvY29tcGxldGUiXX1dLGF1dG9jb21wbGV0ZURpc2FibGVkOlt7dHlwZTpSXyxhcmdzOlsibWF0QXV0b2NvbXBsZXRlRGlzYWJsZWQiXX1dLGF1dG9jb21wbGV0ZTpbe3R5cGU6Ul8sYXJnczpbIm1hdEF1dG9jb21wbGV0ZSJdfV0sY29ubmVjdGVkVG86W3t0eXBlOlJfLGFyZ3M6WyJtYXRBdXRvY29tcGxldGVDb25uZWN0ZWRUbyJdfV19KTtjbGFzcyBZMyBleHRlbmRzIEcze2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9hYm92ZUNsYXNzPSJtYXQtYXV0b2NvbXBsZXRlLXBhbmVsLWFib3ZlIn19WTMuybVmYWM9KGZ1bmN0aW9uKCl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uIGUobil7cmV0dXJuKHR8fCh0PVVhKFkzKSkpKG58fFkzKX19KSgpLFkzLsm1ZGlyPWhvKHt0eXBlOlkzLHNlbGVjdG9yczpbWyJpbnB1dCIsIm1hdEF1dG9jb21wbGV0ZSIsIiJdLFsidGV4dGFyZWEiLCJtYXRBdXRvY29tcGxldGUiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtYXV0b2NvbXBsZXRlLXRyaWdnZXIiXSxob3N0VmFyczo3LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MSZlJiZSZigiZm9jdXNpbiIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5faGFuZGxlRm9jdXMoKX0pKSgiYmx1ciIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fb25Ub3VjaGVkKCl9KSkoImlucHV0IiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5faGFuZGxlSW5wdXQoZSl9KSkoImtleWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9oYW5kbGVLZXlkb3duKGUpfSkpLDImZSYmeW0oImF1dG9jb21wbGV0ZSIsbi5hdXRvY29tcGxldGVBdHRyaWJ1dGUpKCJyb2xlIixuLmF1dG9jb21wbGV0ZURpc2FibGVkP251bGw6ImNvbWJvYm94IikoImFyaWEtYXV0b2NvbXBsZXRlIixuLmF1dG9jb21wbGV0ZURpc2FibGVkP251bGw6Imxpc3QiKSgiYXJpYS1hY3RpdmVkZXNjZW5kYW50IixuLnBhbmVsT3BlbiYmbi5hY3RpdmVPcHRpb24/bi5hY3RpdmVPcHRpb24uaWQ6bnVsbCkoImFyaWEtZXhwYW5kZWQiLG4uYXV0b2NvbXBsZXRlRGlzYWJsZWQ/bnVsbDpuLnBhbmVsT3Blbi50b1N0cmluZygpKSgiYXJpYS1vd25zIixuLmF1dG9jb21wbGV0ZURpc2FibGVkfHwhbi5wYW5lbE9wZW58fG51bGw9PW4uYXV0b2NvbXBsZXRlP251bGw6bi5hdXRvY29tcGxldGUuaWQpKCJhcmlhLWhhc3BvcHVwIiwhbi5hdXRvY29tcGxldGVEaXNhYmxlZCl9LGV4cG9ydEFzOlsibWF0QXV0b2NvbXBsZXRlVHJpZ2dlciJdLGZlYXR1cmVzOltqaChbVzNdKSxRcF19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFkzLFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6ImlucHV0W21hdEF1dG9jb21wbGV0ZV0sIHRleHRhcmVhW21hdEF1dG9jb21wbGV0ZV0iLGhvc3Q6e2NsYXNzOiJtYXQtYXV0b2NvbXBsZXRlLXRyaWdnZXIiLCJbYXR0ci5hdXRvY29tcGxldGVdIjoiYXV0b2NvbXBsZXRlQXR0cmlidXRlIiwiW2F0dHIucm9sZV0iOidhdXRvY29tcGxldGVEaXNhYmxlZCA/IG51bGwgOiAiY29tYm9ib3giJywiW2F0dHIuYXJpYS1hdXRvY29tcGxldGVdIjonYXV0b2NvbXBsZXRlRGlzYWJsZWQgPyBudWxsIDogImxpc3QiJywiW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XSI6IihwYW5lbE9wZW4gJiYgYWN0aXZlT3B0aW9uKSA/IGFjdGl2ZU9wdGlvbi5pZCA6IG51bGwiLCJbYXR0ci5hcmlhLWV4cGFuZGVkXSI6ImF1dG9jb21wbGV0ZURpc2FibGVkID8gbnVsbCA6IHBhbmVsT3Blbi50b1N0cmluZygpIiwiW2F0dHIuYXJpYS1vd25zXSI6IihhdXRvY29tcGxldGVEaXNhYmxlZCB8fCAhcGFuZWxPcGVuKSA/IG51bGwgOiBhdXRvY29tcGxldGU/LmlkIiwiW2F0dHIuYXJpYS1oYXNwb3B1cF0iOiIhYXV0b2NvbXBsZXRlRGlzYWJsZWQiLCIoZm9jdXNpbikiOiJfaGFuZGxlRm9jdXMoKSIsIihibHVyKSI6Il9vblRvdWNoZWQoKSIsIihpbnB1dCkiOiJfaGFuZGxlSW5wdXQoJGV2ZW50KSIsIihrZXlkb3duKSI6Il9oYW5kbGVLZXlkb3duKCRldmVudCkifSxleHBvcnRBczoibWF0QXV0b2NvbXBsZXRlVHJpZ2dlciIscHJvdmlkZXJzOltXM119XX1dLG51bGwsbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBxM3t9cTMuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHEzKX0scTMuybVtb2Q9Zm8oe3R5cGU6cTN9KSxxMy7JtWluaj1Ebih7cHJvdmlkZXJzOltqM10saW1wb3J0czpbW29WLFNMLE5GLHJ4XSxvQixTTCxORl19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHEzLFt7dHlwZTpMXyxhcmdzOlt7aW1wb3J0czpbb1YsU0wsTkYscnhdLGV4cG9ydHM6W0YzLFkzLEIzLG9CLFNMLE5GXSxkZWNsYXJhdGlvbnM6W0YzLFkzLEIzXSxwcm92aWRlcnM6W2ozXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKHEzLHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bRjMsWTMsQjNdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW29WLFNMLE5GLHJ4XX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltGMyxZMyxCMyxvQixTTCxORl19fSk7Y2xhc3MgWjN7Y29uc3RydWN0b3IoKXt0aGlzLnZhbHVlPSIiLHRoaXMucGxhY2Vob2xkZXI9IiJ9b25JbnB1dEtleVVwKHQpeyJFbnRlciI9PT10LmtleSYmdGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyLmNsb3NlUGFuZWwoKX19ZnVuY3Rpb24gWDModCxlKXtpZigxJnQmJihvYSgpLHZmKDAsImNpcmNsZSIsMykpLDImdCl7Y29uc3QgdD16ZigpO2x1KCJhbmltYXRpb24tbmFtZSIsIm1hdC1wcm9ncmVzcy1zcGlubmVyLXN0cm9rZS1yb3RhdGUtIit0Ll9zcGlubmVyQW5pbWF0aW9uTGFiZWwpKCJzdHJva2UtZGFzaG9mZnNldCIsdC5fZ2V0U3Ryb2tlRGFzaE9mZnNldCgpLCJweCIpKCJzdHJva2UtZGFzaGFycmF5Iix0Ll9nZXRTdHJva2VDaXJjdW1mZXJlbmNlKCksInB4IikoInN0cm9rZS13aWR0aCIsdC5fZ2V0Q2lyY2xlU3Ryb2tlV2lkdGgoKSwiJSIpLHltKCJyIix0Ll9nZXRDaXJjbGVSYWRpdXMoKSl9fWZ1bmN0aW9uIEszKHQsZSl7aWYoMSZ0JiYob2EoKSx2ZigwLCJjaXJjbGUiLDMpKSwyJnQpe2NvbnN0IHQ9emYoKTtsdSgic3Ryb2tlLWRhc2hvZmZzZXQiLHQuX2dldFN0cm9rZURhc2hPZmZzZXQoKSwicHgiKSgic3Ryb2tlLWRhc2hhcnJheSIsdC5fZ2V0U3Ryb2tlQ2lyY3VtZmVyZW5jZSgpLCJweCIpKCJzdHJva2Utd2lkdGgiLHQuX2dldENpcmNsZVN0cm9rZVdpZHRoKCksIiUiKSx5bSgiciIsdC5fZ2V0Q2lyY2xlUmFkaXVzKCkpfX1mdW5jdGlvbiBKMyh0LGUpe2lmKDEmdCYmKG9hKCksdmYoMCwiY2lyY2xlIiwzKSksMiZ0KXtjb25zdCB0PXpmKCk7bHUoImFuaW1hdGlvbi1uYW1lIiwibWF0LXByb2dyZXNzLXNwaW5uZXItc3Ryb2tlLXJvdGF0ZS0iK3QuX3NwaW5uZXJBbmltYXRpb25MYWJlbCkoInN0cm9rZS1kYXNob2Zmc2V0Iix0Ll9nZXRTdHJva2VEYXNoT2Zmc2V0KCksInB4IikoInN0cm9rZS1kYXNoYXJyYXkiLHQuX2dldFN0cm9rZUNpcmN1bWZlcmVuY2UoKSwicHgiKSgic3Ryb2tlLXdpZHRoIix0Ll9nZXRDaXJjbGVTdHJva2VXaWR0aCgpLCIlIikseW0oInIiLHQuX2dldENpcmNsZVJhZGl1cygpKX19ZnVuY3Rpb24gUTModCxlKXtpZigxJnQmJihvYSgpLHZmKDAsImNpcmNsZSIsMykpLDImdCl7Y29uc3QgdD16ZigpO2x1KCJzdHJva2UtZGFzaG9mZnNldCIsdC5fZ2V0U3Ryb2tlRGFzaE9mZnNldCgpLCJweCIpKCJzdHJva2UtZGFzaGFycmF5Iix0Ll9nZXRTdHJva2VDaXJjdW1mZXJlbmNlKCksInB4IikoInN0cm9rZS13aWR0aCIsdC5fZ2V0Q2lyY2xlU3Ryb2tlV2lkdGgoKSwiJSIpLHltKCJyIix0Ll9nZXRDaXJjbGVSYWRpdXMoKSl9fVozLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxaMyl9LFozLsm1Y21wPXNvKHt0eXBlOlozLHNlbGVjdG9yczpbWyJ0Yi1maWx0ZXItaW5wdXQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJlZ5KFkzLDUpLDImZSl7bGV0IHQ7QnkodD1VeSgpKSYmKG4uYXV0b2NvbXBsZXRlVHJpZ2dlcj10LmZpcnN0KX19LGlucHV0czp7dmFsdWU6InZhbHVlIixtYXRBdXRvY29tcGxldGU6Im1hdEF1dG9jb21wbGV0ZSIscGxhY2Vob2xkZXI6InBsYWNlaG9sZGVyIn0sZGVjbHM6Mix2YXJzOjQsY29uc3RzOltbInN2Z0ljb24iLCJzZWFyY2hfMjRweCJdLFsidHlwZSIsInRleHQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsInBsYWNlaG9sZGVyIiwibWF0QXV0b2NvbXBsZXRlIiwibWF0QXV0b2NvbXBsZXRlRGlzYWJsZWQiLCJ2YWx1ZSIsImtleXVwIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJih2ZigwLCJtYXQtaWNvbiIsMCksQ2YoMSwiaW5wdXQiLDEpLFJmKCJrZXl1cCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25JbnB1dEtleVVwKGUpfSkpLE1mKCkpLDImZSYmKERjKDEpLGJmKCJwbGFjZWhvbGRlciIsbi5wbGFjZWhvbGRlcikoIm1hdEF1dG9jb21wbGV0ZSIsbi5tYXRBdXRvY29tcGxldGUpKCJtYXRBdXRvY29tcGxldGVEaXNhYmxlZCIsIW4ubWF0QXV0b2NvbXBsZXRlKSgidmFsdWUiLG4udmFsdWUpKX0sZGlyZWN0aXZlczpbTXEsWTNdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZvbnQtc2l6ZToxM3B4fW1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxO2ZsZXg6bm9uZTttYXJnaW4tcmlnaHQ6NXB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIG1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgbWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7Y2FyZXQtY29sb3I6Y3VycmVudENvbG9yO2NvbG9yOmN1cnJlbnRDb2xvcjtmb250OmluaGVyaXQ7Ym9yZGVyOm5vbmU7b3V0bGluZTpub25lO3BhZGRpbmc6MDtmbGV4LWdyb3c6MX0nXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoWjMsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoidGItZmlsdGVyLWlucHV0Iix0ZW1wbGF0ZTonXG4gICAgPG1hdC1pY29uIHN2Z0ljb249InNlYXJjaF8yNHB4Ij48L21hdC1pY29uPlxuXG4gICAgXHgzYyEtLSBOb3RlOiB0byBhbGxvdyBmYWxzeSBcJ21hdEF1dG9jb21wbGV0ZVwnIHZhbHVlcywgd2UgbmVlZCBcJ21hdEF1dG9jb21wbGV0ZURpc2FibGVkXCdcbiAgICB0byBwcmV2ZW50IHJ1bnRpbWUgZXJyb3JzLiAtLVx4M2VcbiAgICA8aW5wdXRcbiAgICAgIHR5cGU9InRleHQiXG4gICAgICBhdXRvY29tcGxldGU9Im9mZiJcbiAgICAgIFtwbGFjZWhvbGRlcl09InBsYWNlaG9sZGVyIlxuICAgICAgW21hdEF1dG9jb21wbGV0ZV09Im1hdEF1dG9jb21wbGV0ZSJcbiAgICAgIFttYXRBdXRvY29tcGxldGVEaXNhYmxlZF09IiFtYXRBdXRvY29tcGxldGUiXG4gICAgICBbdmFsdWVdPSJ2YWx1ZSJcbiAgICAgIChrZXl1cCk9Im9uSW5wdXRLZXlVcCgkZXZlbnQpIlxuICAgIC8+XG4gICcsc3R5bGVVcmxzOlsiZmlsdGVyX2lucHV0X2NvbXBvbmVudC5jc3MiXX1dfV0sbnVsbCx7dmFsdWU6W3t0eXBlOlJffV0sbWF0QXV0b2NvbXBsZXRlOlt7dHlwZTpSX31dLHBsYWNlaG9sZGVyOlt7dHlwZTpSX31dLGF1dG9jb21wbGV0ZVRyaWdnZXI6W3t0eXBlOmFyLGFyZ3M6W1kzXX1dfSk7Y29uc3QgJDM9Ii5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcntkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn0ubWF0LXByb2dyZXNzLXNwaW5uZXIgc3Zne3Bvc2l0aW9uOmFic29sdXRlO3RyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTt0b3A6MDtsZWZ0OjA7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXByb2dyZXNzLXNwaW5uZXIgY2lyY2xle2ZpbGw6dHJhbnNwYXJlbnQ7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7dHJhbnNpdGlvbjpzdHJva2UtZGFzaG9mZnNldCAyMjVtcyBsaW5lYXJ9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1wcm9ncmVzcy1zcGlubmVyIGNpcmNsZXt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXByb2dyZXNzLXNwaW5uZXIgY2lyY2xle3N0cm9rZTpjdXJyZW50Q29sb3I7c3Ryb2tlOkNhbnZhc1RleHR9Lm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gc3Zne2FuaW1hdGlvbjptYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1saW5lYXItcm90YXRlIDIwMDBtcyBsaW5lYXIgaW5maW5pdGV9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gc3Zne3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBjaXJjbGV7dHJhbnNpdGlvbi1wcm9wZXJ0eTpzdHJva2U7YW5pbWF0aW9uLWR1cmF0aW9uOjQwMDBtczthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKTthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1pbmRldGVybWluYXRlLWFuaW1hdGlvblttb2RlPWluZGV0ZXJtaW5hdGVdIGNpcmNsZXt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtZmFsbGJhY2stYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gc3Zne2FuaW1hdGlvbjptYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1zdHJva2Utcm90YXRlLWZhbGxiYWNrIDEwMDAwbXMgY3ViaWMtYmV6aWVyKDAuODcsIDAuMDMsIDAuMzMsIDEpIGluZmluaXRlfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1pbmRldGVybWluYXRlLWZhbGxiYWNrLWFuaW1hdGlvblttb2RlPWluZGV0ZXJtaW5hdGVdIHN2Z3t0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtZmFsbGJhY2stYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gY2lyY2xle3RyYW5zaXRpb24tcHJvcGVydHk6c3Ryb2tlfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1pbmRldGVybWluYXRlLWZhbGxiYWNrLWFuaW1hdGlvblttb2RlPWluZGV0ZXJtaW5hdGVdIGNpcmNsZXt0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9QGtleWZyYW1lcyBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1saW5lYXItcm90YXRlezAle3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9MTAwJXt0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fUBrZXlmcmFtZXMgbWF0LXByb2dyZXNzLXNwaW5uZXItc3Ryb2tlLXJvdGF0ZS0xMDB7MCV7c3Ryb2tlLWRhc2hvZmZzZXQ6MjY4LjYwNjE3MTU3NXB4O3RyYW5zZm9ybTpyb3RhdGUoMCl9MTIuNSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGUoMCl9MTIuNTAwMSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDcyLjVkZWcpfTI1JXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoNzIuNWRlZyl9MjUuMDAwMSV7c3Ryb2tlLWRhc2hvZmZzZXQ6MjY4LjYwNjE3MTU3NXB4O3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKX0zNy41JXtzdHJva2UtZGFzaG9mZnNldDo1Ni41NDg2Njc3cHg7dHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpfTM3LjUwMDEle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlWCgxODBkZWcpIHJvdGF0ZSgxNjEuNWRlZyl9NTAle3N0cm9rZS1kYXNob2Zmc2V0OjI2OC42MDYxNzE1NzVweDt0cmFuc2Zvcm06cm90YXRlWCgxODBkZWcpIHJvdGF0ZSgxNjEuNWRlZyl9NTAuMDAwMSV7c3Ryb2tlLWRhc2hvZmZzZXQ6MjY4LjYwNjE3MTU3NXB4O3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX02Mi41JXtzdHJva2UtZGFzaG9mZnNldDo1Ni41NDg2Njc3cHg7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfTYyLjUwMDEle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlWCgxODBkZWcpIHJvdGF0ZSgyNTEuNWRlZyl9NzUle3N0cm9rZS1kYXNob2Zmc2V0OjI2OC42MDYxNzE1NzVweDt0cmFuc2Zvcm06cm90YXRlWCgxODBkZWcpIHJvdGF0ZSgyNTEuNWRlZyl9NzUuMDAwMSV7c3Ryb2tlLWRhc2hvZmZzZXQ6MjY4LjYwNjE3MTU3NXB4O3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfTg3LjUle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKX04Ny41MDAxJXtzdHJva2UtZGFzaG9mZnNldDo1Ni41NDg2Njc3cHg7dHJhbnNmb3JtOnJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoMzQxLjVkZWcpfTEwMCV7c3Ryb2tlLWRhc2hvZmZzZXQ6MjY4LjYwNjE3MTU3NXB4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDM0MS41ZGVnKX19QGtleWZyYW1lcyBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1zdHJva2Utcm90YXRlLWZhbGxiYWNrezAle3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9MjUle3RyYW5zZm9ybTpyb3RhdGUoMTE3MGRlZyl9NTAle3RyYW5zZm9ybTpyb3RhdGUoMjM0MGRlZyl9NzUle3RyYW5zZm9ybTpyb3RhdGUoMzUxMGRlZyl9MTAwJXt0cmFuc2Zvcm06cm90YXRlKDQ2ODBkZWcpfX1cbiIsdDI9SUYoY2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5fZWxlbWVudFJlZj10fX0sInByaW1hcnkiKSxlMj1uZXcgZXIoIm1hdC1wcm9ncmVzcy1zcGlubmVyLWRlZmF1bHQtb3B0aW9ucyIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6ZnVuY3Rpb24gbjIoKXtyZXR1cm57ZGlhbWV0ZXI6MTAwfX19KTtjb25zdCBvMj0iXG4gQGtleWZyYW1lcyBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1zdHJva2Utcm90YXRlLURJQU1FVEVSIHtcbiAgICAwJSAgICAgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IFNUQVJUX1ZBTFVFOyAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH1cbiAgICAxMi41JSAgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IEVORF9WQUxVRTsgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH1cbiAgICAxMi41MDAxJSAgeyBzdHJva2UtZGFzaG9mZnNldDogRU5EX1ZBTFVFOyAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoNzIuNWRlZyk7IH1cbiAgICAyNSUgICAgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IFNUQVJUX1ZBTFVFOyAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZykgcm90YXRlKDcyLjVkZWcpOyB9XG5cbiAgICAyNS4wMDAxJSAgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IFNUQVJUX1ZBTFVFOyAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTsgfVxuICAgIDM3LjUlICAgeyBzdHJva2UtZGFzaG9mZnNldDogRU5EX1ZBTFVFOyAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpOyB9XG4gICAgMzcuNTAwMSUgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IEVORF9WQUxVRTsgICAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZykgcm90YXRlKDE2MS41ZGVnKTsgfVxuICAgIDUwJSAgICAgeyBzdHJva2UtZGFzaG9mZnNldDogU1RBUlRfVkFMVUU7ICB0cmFuc2Zvcm06IHJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoMTYxLjVkZWcpOyB9XG5cbiAgICA1MC4wMDAxJSAgeyBzdHJva2UtZGFzaG9mZnNldDogU1RBUlRfVkFMVUU7ICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB9XG4gICAgNjIuNSUgICB7IHN0cm9rZS1kYXNob2Zmc2V0OiBFTkRfVkFMVUU7ICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cbiAgICA2Mi41MDAxJSAgeyBzdHJva2UtZGFzaG9mZnNldDogRU5EX1ZBTFVFOyAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoMjUxLjVkZWcpOyB9XG4gICAgNzUlICAgICB7IHN0cm9rZS1kYXNob2Zmc2V0OiBTVEFSVF9WQUxVRTsgIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpIHJvdGF0ZSgyNTEuNWRlZyk7IH1cblxuICAgIDc1LjAwMDElICB7IHN0cm9rZS1kYXNob2Zmc2V0OiBTVEFSVF9WQUxVRTsgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgfVxuICAgIDg3LjUlICAgeyBzdHJva2UtZGFzaG9mZnNldDogRU5EX1ZBTFVFOyAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IH1cbiAgICA4Ny41MDAxJSAgeyBzdHJva2UtZGFzaG9mZnNldDogRU5EX1ZBTFVFOyAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoMzQxLjVkZWcpOyB9XG4gICAgMTAwJSAgICB7IHN0cm9rZS1kYXNob2Zmc2V0OiBTVEFSVF9WQUxVRTsgIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpIHJvdGF0ZSgzNDEuNWRlZyk7IH1cbiAgfVxuIjtjbGFzcyBpMiBleHRlbmRzIHQye2NvbnN0cnVjdG9yKHQsZSxuLG8saSl7c3VwZXIodCksdGhpcy5fZG9jdW1lbnQ9bix0aGlzLl9kaWFtZXRlcj0xMDAsdGhpcy5fdmFsdWU9MCx0aGlzLl9mYWxsYmFja0FuaW1hdGlvbj0hMSx0aGlzLm1vZGU9ImRldGVybWluYXRlIjtjb25zdCBhPWkyLl9kaWFtZXRlcnM7dGhpcy5fc3Bpbm5lckFuaW1hdGlvbkxhYmVsPXRoaXMuX2dldFNwaW5uZXJBbmltYXRpb25MYWJlbCgpLGEuaGFzKG4uaGVhZCl8fGEuc2V0KG4uaGVhZCxuZXcgU2V0KFsxMDBdKSksdGhpcy5fZmFsbGJhY2tBbmltYXRpb249ZS5FREdFfHxlLlRSSURFTlQsdGhpcy5fbm9vcEFuaW1hdGlvbnM9Ik5vb3BBbmltYXRpb25zIj09PW8mJiEhaSYmIWkuX2ZvcmNlQW5pbWF0aW9ucyxpJiYoaS5kaWFtZXRlciYmKHRoaXMuZGlhbWV0ZXI9aS5kaWFtZXRlciksaS5zdHJva2VXaWR0aCYmKHRoaXMuc3Ryb2tlV2lkdGg9aS5zdHJva2VXaWR0aCkpfWdldCBkaWFtZXRlcigpe3JldHVybiB0aGlzLl9kaWFtZXRlcn1zZXQgZGlhbWV0ZXIodCl7dGhpcy5fZGlhbWV0ZXI9bkgodCksdGhpcy5fc3Bpbm5lckFuaW1hdGlvbkxhYmVsPXRoaXMuX2dldFNwaW5uZXJBbmltYXRpb25MYWJlbCgpLCF0aGlzLl9mYWxsYmFja0FuaW1hdGlvbiYmdGhpcy5fc3R5bGVSb290JiZ0aGlzLl9hdHRhY2hTdHlsZU5vZGUoKX1nZXQgc3Ryb2tlV2lkdGgoKXtyZXR1cm4gdGhpcy5fc3Ryb2tlV2lkdGh8fHRoaXMuZGlhbWV0ZXIvMTB9c2V0IHN0cm9rZVdpZHRoKHQpe3RoaXMuX3N0cm9rZVdpZHRoPW5IKHQpfWdldCB2YWx1ZSgpe3JldHVybiJkZXRlcm1pbmF0ZSI9PT10aGlzLm1vZGU/dGhpcy5fdmFsdWU6MH1zZXQgdmFsdWUodCl7dGhpcy5fdmFsdWU9TWF0aC5tYXgoMCxNYXRoLm1pbigxMDAsbkgodCkpKX1uZ09uSW5pdCgpe2NvbnN0IHQ9dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O3RoaXMuX3N0eWxlUm9vdD1DSCh0KXx8dGhpcy5fZG9jdW1lbnQuaGVhZCx0aGlzLl9hdHRhY2hTdHlsZU5vZGUoKTt0LmNsYXNzTGlzdC5hZGQoYG1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUke3RoaXMuX2ZhbGxiYWNrQW5pbWF0aW9uPyItZmFsbGJhY2siOiIifS1hbmltYXRpb25gKX1fZ2V0Q2lyY2xlUmFkaXVzKCl7cmV0dXJuKHRoaXMuZGlhbWV0ZXItMTApLzJ9X2dldFZpZXdCb3goKXtjb25zdCB0PTIqdGhpcy5fZ2V0Q2lyY2xlUmFkaXVzKCkrdGhpcy5zdHJva2VXaWR0aDtyZXR1cm5gMCAwICR7dH0gJHt0fWB9X2dldFN0cm9rZUNpcmN1bWZlcmVuY2UoKXtyZXR1cm4gMipNYXRoLlBJKnRoaXMuX2dldENpcmNsZVJhZGl1cygpfV9nZXRTdHJva2VEYXNoT2Zmc2V0KCl7cmV0dXJuImRldGVybWluYXRlIj09PXRoaXMubW9kZT90aGlzLl9nZXRTdHJva2VDaXJjdW1mZXJlbmNlKCkqKDEwMC10aGlzLl92YWx1ZSkvMTAwOnRoaXMuX2ZhbGxiYWNrQW5pbWF0aW9uJiYiaW5kZXRlcm1pbmF0ZSI9PT10aGlzLm1vZGU/LjIqdGhpcy5fZ2V0U3Ryb2tlQ2lyY3VtZmVyZW5jZSgpOm51bGx9X2dldENpcmNsZVN0cm9rZVdpZHRoKCl7cmV0dXJuIHRoaXMuc3Ryb2tlV2lkdGgvdGhpcy5kaWFtZXRlcioxMDB9X2F0dGFjaFN0eWxlTm9kZSgpe2NvbnN0IHQ9dGhpcy5fc3R5bGVSb290LGU9dGhpcy5fZGlhbWV0ZXIsbj1pMi5fZGlhbWV0ZXJzO2xldCBvPW4uZ2V0KHQpO2lmKCFvfHwhby5oYXMoZSkpe2NvbnN0IGk9dGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtpLnNldEF0dHJpYnV0ZSgibWF0LXNwaW5uZXItYW5pbWF0aW9uIix0aGlzLl9zcGlubmVyQW5pbWF0aW9uTGFiZWwpLGkudGV4dENvbnRlbnQ9dGhpcy5fZ2V0QW5pbWF0aW9uVGV4dCgpLHQuYXBwZW5kQ2hpbGQoaSksb3x8KG89bmV3IFNldCxuLnNldCh0LG8pKSxvLmFkZChlKX19X2dldEFuaW1hdGlvblRleHQoKXtjb25zdCB0PXRoaXMuX2dldFN0cm9rZUNpcmN1bWZlcmVuY2UoKTtyZXR1cm4gbzIucmVwbGFjZSgvU1RBUlRfVkFMVUUvZywiIisuOTUqdCkucmVwbGFjZSgvRU5EX1ZBTFVFL2csIiIrLjIqdCkucmVwbGFjZSgvRElBTUVURVIvZyxgJHt0aGlzLl9zcGlubmVyQW5pbWF0aW9uTGFiZWx9YCl9X2dldFNwaW5uZXJBbmltYXRpb25MYWJlbCgpe3JldHVybiB0aGlzLmRpYW1ldGVyLnRvU3RyaW5nKCkucmVwbGFjZSgiLiIsIl8iKX19aTIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGkyKShnZihLaCksZ2YoY0gpLGdmKHNNLDgpLGdmKGNrLDgpLGdmKGUyKSl9LGkyLsm1Y21wPXNvKHt0eXBlOmkyLHNlbGVjdG9yczpbWyJtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciJdXSxob3N0QXR0cnM6WyJyb2xlIiwicHJvZ3Jlc3NiYXIiLCJ0YWJpbmRleCIsIi0xIiwxLCJtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciJdLGhvc3RWYXJzOjEwLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiYoeW0oImFyaWEtdmFsdWVtaW4iLCJkZXRlcm1pbmF0ZSI9PT1uLm1vZGU/MDpudWxsKSgiYXJpYS12YWx1ZW1heCIsImRldGVybWluYXRlIj09PW4ubW9kZT8xMDA6bnVsbCkoImFyaWEtdmFsdWVub3ciLCJkZXRlcm1pbmF0ZSI9PT1uLm1vZGU/bi52YWx1ZTpudWxsKSgibW9kZSIsbi5tb2RlKSxsdSgid2lkdGgiLG4uZGlhbWV0ZXIsInB4IikoImhlaWdodCIsbi5kaWFtZXRlciwicHgiKSxjdSgiX21hdC1hbmltYXRpb24tbm9vcGFibGUiLG4uX25vb3BBbmltYXRpb25zKSl9LGlucHV0czp7Y29sb3I6ImNvbG9yIixtb2RlOiJtb2RlIixkaWFtZXRlcjoiZGlhbWV0ZXIiLHN0cm9rZVdpZHRoOiJzdHJva2VXaWR0aCIsdmFsdWU6InZhbHVlIn0sZXhwb3J0QXM6WyJtYXRQcm9ncmVzc1NwaW5uZXIiXSxmZWF0dXJlczpbUXBdLGRlY2xzOjMsdmFyczo4LGNvbnN0czpbWyJwcmVzZXJ2ZUFzcGVjdFJhdGlvIiwieE1pZFlNaWQgbWVldCIsImZvY3VzYWJsZSIsImZhbHNlIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwzLCJuZ1N3aXRjaCJdLFsiY3giLCI1MCUiLCJjeSIsIjUwJSIsMywiYW5pbWF0aW9uLW5hbWUiLCJzdHJva2UtZGFzaG9mZnNldCIsInN0cm9rZS1kYXNoYXJyYXkiLCJzdHJva2Utd2lkdGgiLDQsIm5nU3dpdGNoQ2FzZSJdLFsiY3giLCI1MCUiLCJjeSIsIjUwJSIsMywic3Ryb2tlLWRhc2hvZmZzZXQiLCJzdHJva2UtZGFzaGFycmF5Iiwic3Ryb2tlLXdpZHRoIiw0LCJuZ1N3aXRjaENhc2UiXSxbImN4IiwiNTAlIiwiY3kiLCI1MCUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKG9hKCksQ2YoMCwic3ZnIiwwKSxIbSgxLFgzLDEsOSwiY2lyY2xlIiwxKSxIbSgyLEszLDEsNywiY2lyY2xlIiwyKSxNZigpKSwyJmUmJihsdSgid2lkdGgiLG4uZGlhbWV0ZXIsInB4IikoImhlaWdodCIsbi5kaWFtZXRlciwicHgiKSxiZigibmdTd2l0Y2giLCJpbmRldGVybWluYXRlIj09PW4ubW9kZSkseW0oInZpZXdCb3giLG4uX2dldFZpZXdCb3goKSksRGMoMSksYmYoIm5nU3dpdGNoQ2FzZSIsITApLERjKDEpLGJmKCJuZ1N3aXRjaENhc2UiLCExKSl9LGRpcmVjdGl2ZXM6W0R2LFJ2XSxzdHlsZXM6WyQzXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxpMi5fZGlhbWV0ZXJzPW5ldyBXZWFrTWFwLGkyLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6S2h9LHt0eXBlOmNIfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W3NNXX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W2NrXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbZTJdfV19XSxpMi5wcm9wRGVjb3JhdG9ycz17ZGlhbWV0ZXI6W3t0eXBlOlJffV0sc3Ryb2tlV2lkdGg6W3t0eXBlOlJffV0sbW9kZTpbe3R5cGU6Ul99XSx2YWx1ZTpbe3R5cGU6Ul99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihpMixbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciIsZXhwb3J0QXM6Im1hdFByb2dyZXNzU3Bpbm5lciIsaG9zdDp7cm9sZToicHJvZ3Jlc3NiYXIiLGNsYXNzOiJtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciIsdGFiaW5kZXg6Ii0xIiwiW2NsYXNzLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlXSI6Il9ub29wQW5pbWF0aW9ucyIsIltzdHlsZS53aWR0aC5weF0iOiJkaWFtZXRlciIsIltzdHlsZS5oZWlnaHQucHhdIjoiZGlhbWV0ZXIiLCJbYXR0ci5hcmlhLXZhbHVlbWluXSI6J21vZGUgPT09ICJkZXRlcm1pbmF0ZSIgPyAwIDogbnVsbCcsIlthdHRyLmFyaWEtdmFsdWVtYXhdIjonbW9kZSA9PT0gImRldGVybWluYXRlIiA/IDEwMCA6IG51bGwnLCJbYXR0ci5hcmlhLXZhbHVlbm93XSI6J21vZGUgPT09ICJkZXRlcm1pbmF0ZSIgPyB2YWx1ZSA6IG51bGwnLCJbYXR0ci5tb2RlXSI6Im1vZGUifSxpbnB1dHM6WyJjb2xvciJdLHRlbXBsYXRlOidceDNjIS0tXG4gIHByZXNlcnZlQXNwZWN0UmF0aW8gb2YgeE1pZFlNaWQgbWVldCBhcyB0aGUgY2VudGVyIG9mIHRoZSB2aWV3cG9ydCBpcyB0aGUgY2lyY2xlXCdzXG4gIGNlbnRlci4gVGhlIGNlbnRlciBvZiB0aGUgY2lyY2xlIHdpbGwgcmVtYWluIGF0IHRoZSBjZW50ZXIgb2YgdGhlIG1hdC1wcm9ncmVzcy1zcGlubmVyXG4gIGVsZW1lbnQgY29udGFpbmluZyB0aGUgU1ZHLiBgZm9jdXNhYmxlPSJmYWxzZSJgIHByZXZlbnRzIElFIGZyb20gYWxsb3dpbmcgdGhlIHVzZXIgdG9cbiAgdGFiIGludG8gdGhlIFNWRyBlbGVtZW50LlxuLS1ceDNlXG5ceDNjIS0tXG4gIEFsbCBjaGlsZHJlbiBuZWVkIHRvIGJlIGhpZGRlbiBmb3Igc2NyZWVuIHJlYWRlcnMgaW4gb3JkZXIgdG8gc3VwcG9ydCBDaHJvbWVWb3guXG4gIE1vcmUgY29udGV4dCBpbiB0aGUgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvaXNzdWVzLzIyMTY1LlxuLS1ceDNlXG48c3ZnXG4gIFtzdHlsZS53aWR0aC5weF09ImRpYW1ldGVyIlxuICBbc3R5bGUuaGVpZ2h0LnB4XT0iZGlhbWV0ZXIiXG4gIFthdHRyLnZpZXdCb3hdPSJfZ2V0Vmlld0JveCgpIlxuICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0IlxuICBmb2N1c2FibGU9ImZhbHNlIlxuICBbbmdTd2l0Y2hdPSJtb2RlID09PSBcJ2luZGV0ZXJtaW5hdGVcJyJcbiAgYXJpYS1oaWRkZW49InRydWUiPlxuXG4gIFx4M2MhLS1cbiAgICBUZWNobmljYWxseSB3ZSBjYW4gcmV1c2UgdGhlIHNhbWUgYGNpcmNsZWAgZWxlbWVudCwgaG93ZXZlciBTYWZhcmkgaGFzIGFuIGlzc3VlIHRoYXQgYnJlYWtzXG4gICAgdGhlIFNWRyByZW5kZXJpbmcgaW4gZGV0ZXJtaW5hdGUgbW9kZSwgYWZ0ZXIgc3dpdGNoaW5nIGJldHdlZW4gaW5kZXRlcm1pbmF0ZSBhbmQgZGV0ZXJtaW5hdGUuXG4gICAgVXNpbmcgYSBkaWZmZXJlbnQgZWxlbWVudCBhdm9pZHMgdGhlIGlzc3VlLiBBbiBhbHRlcm5hdGl2ZSB0byB0aGlzIGlzIGFkZGluZyBgZGlzcGxheTogbm9uZWBcbiAgICBmb3IgYSBzcGxpdCBzZWNvbmQgYW5kIHRoZW4gcmVtb3ZpbmcgaXQgd2hlbiBzd2l0Y2hpbmcgYmV0d2VlbiBtb2RlcywgYnV0IGl0XCdzIGhhcmQgdG8ga25vd1xuICAgIGZvciBob3cgbG9uZyB0byBoaWRlIHRoZSBlbGVtZW50IGFuZCBpdCBjYW4gY2F1c2UgdGhlIFVJIHRvIGJsaW5rLlxuICAtLVx4M2VcbiAgPGNpcmNsZVxuICAgICpuZ1N3aXRjaENhc2U9InRydWUiXG4gICAgY3g9IjUwJSJcbiAgICBjeT0iNTAlIlxuICAgIFthdHRyLnJdPSJfZ2V0Q2lyY2xlUmFkaXVzKCkiXG4gICAgW3N0eWxlLmFuaW1hdGlvbi1uYW1lXT0iXCdtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1zdHJva2Utcm90YXRlLVwnICsgX3NwaW5uZXJBbmltYXRpb25MYWJlbCJcbiAgICBbc3R5bGUuc3Ryb2tlLWRhc2hvZmZzZXQucHhdPSJfZ2V0U3Ryb2tlRGFzaE9mZnNldCgpIlxuICAgIFtzdHlsZS5zdHJva2UtZGFzaGFycmF5LnB4XT0iX2dldFN0cm9rZUNpcmN1bWZlcmVuY2UoKSJcbiAgICBbc3R5bGUuc3Ryb2tlLXdpZHRoLiVdPSJfZ2V0Q2lyY2xlU3Ryb2tlV2lkdGgoKSI+PC9jaXJjbGU+XG5cbiAgPGNpcmNsZVxuICAgICpuZ1N3aXRjaENhc2U9ImZhbHNlIlxuICAgIGN4PSI1MCUiXG4gICAgY3k9IjUwJSJcbiAgICBbYXR0ci5yXT0iX2dldENpcmNsZVJhZGl1cygpIlxuICAgIFtzdHlsZS5zdHJva2UtZGFzaG9mZnNldC5weF09Il9nZXRTdHJva2VEYXNoT2Zmc2V0KCkiXG4gICAgW3N0eWxlLnN0cm9rZS1kYXNoYXJyYXkucHhdPSJfZ2V0U3Ryb2tlQ2lyY3VtZmVyZW5jZSgpIlxuICAgIFtzdHlsZS5zdHJva2Utd2lkdGguJV09Il9nZXRDaXJjbGVTdHJva2VXaWR0aCgpIj48L2NpcmNsZT5cbjwvc3ZnPlxuJyxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNoLGVuY2Fwc3VsYXRpb246V24uTm9uZSxzdHlsZXM6WyIubWF0LXByb2dyZXNzLXNwaW5uZXJ7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW59Lm1hdC1wcm9ncmVzcy1zcGlubmVyIHN2Z3twb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7dG9wOjA7bGVmdDowO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyO292ZXJmbG93OnZpc2libGV9Lm1hdC1wcm9ncmVzcy1zcGlubmVyIGNpcmNsZXtmaWxsOnRyYW5zcGFyZW50O3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyO3RyYW5zaXRpb246c3Ryb2tlLWRhc2hvZmZzZXQgMjI1bXMgbGluZWFyfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGV7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1wcm9ncmVzcy1zcGlubmVyIGNpcmNsZXtzdHJva2U6Y3VycmVudENvbG9yO3N0cm9rZTpDYW52YXNUZXh0fS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1pbmRldGVybWluYXRlLWFuaW1hdGlvblttb2RlPWluZGV0ZXJtaW5hdGVdIHN2Z3thbmltYXRpb246bWF0LXByb2dyZXNzLXNwaW5uZXItbGluZWFyLXJvdGF0ZSAyMDAwbXMgbGluZWFyIGluZmluaXRlfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1pbmRldGVybWluYXRlLWFuaW1hdGlvblttb2RlPWluZGV0ZXJtaW5hdGVdIHN2Z3t0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gY2lyY2xle3RyYW5zaXRpb24tcHJvcGVydHk6c3Ryb2tlO2FuaW1hdGlvbi1kdXJhdGlvbjo0MDAwbXM7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSk7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBjaXJjbGV7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1pbmRldGVybWluYXRlLWZhbGxiYWNrLWFuaW1hdGlvblttb2RlPWluZGV0ZXJtaW5hdGVdIHN2Z3thbmltYXRpb246bWF0LXByb2dyZXNzLXNwaW5uZXItc3Ryb2tlLXJvdGF0ZS1mYWxsYmFjayAxMDAwMG1zIGN1YmljLWJlemllcigwLjg3LCAwLjAzLCAwLjMzLCAxKSBpbmZpbml0ZX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1mYWxsYmFjay1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBzdmd7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1pbmRldGVybWluYXRlLWZhbGxiYWNrLWFuaW1hdGlvblttb2RlPWluZGV0ZXJtaW5hdGVdIGNpcmNsZXt0cmFuc2l0aW9uLXByb3BlcnR5OnN0cm9rZX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1mYWxsYmFjay1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBjaXJjbGV7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfUBrZXlmcmFtZXMgbWF0LXByb2dyZXNzLXNwaW5uZXItbGluZWFyLXJvdGF0ZXswJXt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfTEwMCV7dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX1Aa2V5ZnJhbWVzIG1hdC1wcm9ncmVzcy1zcGlubmVyLXN0cm9rZS1yb3RhdGUtMTAwezAle3N0cm9rZS1kYXNob2Zmc2V0OjI2OC42MDYxNzE1NzVweDt0cmFuc2Zvcm06cm90YXRlKDApfTEyLjUle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlKDApfTEyLjUwMDEle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlWCgxODBkZWcpIHJvdGF0ZSg3Mi41ZGVnKX0yNSV7c3Ryb2tlLWRhc2hvZmZzZXQ6MjY4LjYwNjE3MTU3NXB4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDcyLjVkZWcpfTI1LjAwMDEle3N0cm9rZS1kYXNob2Zmc2V0OjI2OC42MDYxNzE1NzVweDt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9MzcuNSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKX0zNy41MDAxJXtzdHJva2UtZGFzaG9mZnNldDo1Ni41NDg2Njc3cHg7dHJhbnNmb3JtOnJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoMTYxLjVkZWcpfTUwJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoMTYxLjVkZWcpfTUwLjAwMDEle3N0cm9rZS1kYXNob2Zmc2V0OjI2OC42MDYxNzE1NzVweDt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9NjIuNSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX02Mi41MDAxJXtzdHJva2UtZGFzaG9mZnNldDo1Ni41NDg2Njc3cHg7dHJhbnNmb3JtOnJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoMjUxLjVkZWcpfTc1JXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoMjUxLjVkZWcpfTc1LjAwMDEle3N0cm9rZS1kYXNob2Zmc2V0OjI2OC42MDYxNzE1NzVweDt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKX04Ny41JXtzdHJva2UtZGFzaG9mZnNldDo1Ni41NDg2Njc3cHg7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9ODcuNTAwMSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDM0MS41ZGVnKX0xMDAle3N0cm9rZS1kYXNob2Zmc2V0OjI2OC42MDYxNzE1NzVweDt0cmFuc2Zvcm06cm90YXRlWCgxODBkZWcpIHJvdGF0ZSgzNDEuNWRlZyl9fUBrZXlmcmFtZXMgbWF0LXByb2dyZXNzLXNwaW5uZXItc3Ryb2tlLXJvdGF0ZS1mYWxsYmFja3swJXt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfTI1JXt0cmFuc2Zvcm06cm90YXRlKDExNzBkZWcpfTUwJXt0cmFuc2Zvcm06cm90YXRlKDIzNDBkZWcpfTc1JXt0cmFuc2Zvcm06cm90YXRlKDM1MTBkZWcpfTEwMCV7dHJhbnNmb3JtOnJvdGF0ZSg0NjgwZGVnKX19XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOktofSx7dHlwZTpjSH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltzTV19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltja119XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W2UyXX1dfV19KSx7bW9kZTpbe3R5cGU6Ul99XSxkaWFtZXRlcjpbe3R5cGU6Ul99XSxzdHJva2VXaWR0aDpbe3R5cGU6Ul99XSx2YWx1ZTpbe3R5cGU6Ul99XX0pO2NsYXNzIGEyIGV4dGVuZHMgaTJ7Y29uc3RydWN0b3IodCxlLG4sbyxpKXtzdXBlcih0LGUsbixvLGkpLHRoaXMubW9kZT0iaW5kZXRlcm1pbmF0ZSJ9fWEyLsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxhMikoZ2YoS2gpLGdmKGNIKSxnZihzTSw4KSxnZihjayw4KSxnZihlMikpfSxhMi7JtWNtcD1zbyh7dHlwZTphMixzZWxlY3RvcnM6W1sibWF0LXNwaW5uZXIiXV0saG9zdEF0dHJzOlsicm9sZSIsInByb2dyZXNzYmFyIiwibW9kZSIsImluZGV0ZXJtaW5hdGUiLDEsIm1hdC1zcGlubmVyIiwibWF0LXByb2dyZXNzLXNwaW5uZXIiXSxob3N0VmFyczo2LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiYobHUoIndpZHRoIixuLmRpYW1ldGVyLCJweCIpKCJoZWlnaHQiLG4uZGlhbWV0ZXIsInB4IiksY3UoIl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIixuLl9ub29wQW5pbWF0aW9ucykpfSxpbnB1dHM6e2NvbG9yOiJjb2xvciJ9LGZlYXR1cmVzOltRcF0sZGVjbHM6Myx2YXJzOjgsY29uc3RzOltbInByZXNlcnZlQXNwZWN0UmF0aW8iLCJ4TWlkWU1pZCBtZWV0IiwiZm9jdXNhYmxlIiwiZmFsc2UiLCJhcmlhLWhpZGRlbiIsInRydWUiLDMsIm5nU3dpdGNoIl0sWyJjeCIsIjUwJSIsImN5IiwiNTAlIiwzLCJhbmltYXRpb24tbmFtZSIsInN0cm9rZS1kYXNob2Zmc2V0Iiwic3Ryb2tlLWRhc2hhcnJheSIsInN0cm9rZS13aWR0aCIsNCwibmdTd2l0Y2hDYXNlIl0sWyJjeCIsIjUwJSIsImN5IiwiNTAlIiwzLCJzdHJva2UtZGFzaG9mZnNldCIsInN0cm9rZS1kYXNoYXJyYXkiLCJzdHJva2Utd2lkdGgiLDQsIm5nU3dpdGNoQ2FzZSJdLFsiY3giLCI1MCUiLCJjeSIsIjUwJSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYob2EoKSxDZigwLCJzdmciLDApLEhtKDEsSjMsMSw5LCJjaXJjbGUiLDEpLEhtKDIsUTMsMSw3LCJjaXJjbGUiLDIpLE1mKCkpLDImZSYmKGx1KCJ3aWR0aCIsbi5kaWFtZXRlciwicHgiKSgiaGVpZ2h0IixuLmRpYW1ldGVyLCJweCIpLGJmKCJuZ1N3aXRjaCIsImluZGV0ZXJtaW5hdGUiPT09bi5tb2RlKSx5bSgidmlld0JveCIsbi5fZ2V0Vmlld0JveCgpKSxEYygxKSxiZigibmdTd2l0Y2hDYXNlIiwhMCksRGMoMSksYmYoIm5nU3dpdGNoQ2FzZSIsITEpKX0sZGlyZWN0aXZlczpbRHYsUnZdLHN0eWxlczpbJDNdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLGEyLmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6S2h9LHt0eXBlOmNIfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W3NNXX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W2NrXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbZTJdfV19XSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGEyLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im1hdC1zcGlubmVyIixob3N0Ontyb2xlOiJwcm9ncmVzc2JhciIsbW9kZToiaW5kZXRlcm1pbmF0ZSIsY2xhc3M6Im1hdC1zcGlubmVyIG1hdC1wcm9ncmVzcy1zcGlubmVyIiwiW2NsYXNzLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlXSI6Il9ub29wQW5pbWF0aW9ucyIsIltzdHlsZS53aWR0aC5weF0iOiJkaWFtZXRlciIsIltzdHlsZS5oZWlnaHQucHhdIjoiZGlhbWV0ZXIifSxpbnB1dHM6WyJjb2xvciJdLHRlbXBsYXRlOidceDNjIS0tXG4gIHByZXNlcnZlQXNwZWN0UmF0aW8gb2YgeE1pZFlNaWQgbWVldCBhcyB0aGUgY2VudGVyIG9mIHRoZSB2aWV3cG9ydCBpcyB0aGUgY2lyY2xlXCdzXG4gIGNlbnRlci4gVGhlIGNlbnRlciBvZiB0aGUgY2lyY2xlIHdpbGwgcmVtYWluIGF0IHRoZSBjZW50ZXIgb2YgdGhlIG1hdC1wcm9ncmVzcy1zcGlubmVyXG4gIGVsZW1lbnQgY29udGFpbmluZyB0aGUgU1ZHLiBgZm9jdXNhYmxlPSJmYWxzZSJgIHByZXZlbnRzIElFIGZyb20gYWxsb3dpbmcgdGhlIHVzZXIgdG9cbiAgdGFiIGludG8gdGhlIFNWRyBlbGVtZW50LlxuLS1ceDNlXG5ceDNjIS0tXG4gIEFsbCBjaGlsZHJlbiBuZWVkIHRvIGJlIGhpZGRlbiBmb3Igc2NyZWVuIHJlYWRlcnMgaW4gb3JkZXIgdG8gc3VwcG9ydCBDaHJvbWVWb3guXG4gIE1vcmUgY29udGV4dCBpbiB0aGUgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvaXNzdWVzLzIyMTY1LlxuLS1ceDNlXG48c3ZnXG4gIFtzdHlsZS53aWR0aC5weF09ImRpYW1ldGVyIlxuICBbc3R5bGUuaGVpZ2h0LnB4XT0iZGlhbWV0ZXIiXG4gIFthdHRyLnZpZXdCb3hdPSJfZ2V0Vmlld0JveCgpIlxuICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0IlxuICBmb2N1c2FibGU9ImZhbHNlIlxuICBbbmdTd2l0Y2hdPSJtb2RlID09PSBcJ2luZGV0ZXJtaW5hdGVcJyJcbiAgYXJpYS1oaWRkZW49InRydWUiPlxuXG4gIFx4M2MhLS1cbiAgICBUZWNobmljYWxseSB3ZSBjYW4gcmV1c2UgdGhlIHNhbWUgYGNpcmNsZWAgZWxlbWVudCwgaG93ZXZlciBTYWZhcmkgaGFzIGFuIGlzc3VlIHRoYXQgYnJlYWtzXG4gICAgdGhlIFNWRyByZW5kZXJpbmcgaW4gZGV0ZXJtaW5hdGUgbW9kZSwgYWZ0ZXIgc3dpdGNoaW5nIGJldHdlZW4gaW5kZXRlcm1pbmF0ZSBhbmQgZGV0ZXJtaW5hdGUuXG4gICAgVXNpbmcgYSBkaWZmZXJlbnQgZWxlbWVudCBhdm9pZHMgdGhlIGlzc3VlLiBBbiBhbHRlcm5hdGl2ZSB0byB0aGlzIGlzIGFkZGluZyBgZGlzcGxheTogbm9uZWBcbiAgICBmb3IgYSBzcGxpdCBzZWNvbmQgYW5kIHRoZW4gcmVtb3ZpbmcgaXQgd2hlbiBzd2l0Y2hpbmcgYmV0d2VlbiBtb2RlcywgYnV0IGl0XCdzIGhhcmQgdG8ga25vd1xuICAgIGZvciBob3cgbG9uZyB0byBoaWRlIHRoZSBlbGVtZW50IGFuZCBpdCBjYW4gY2F1c2UgdGhlIFVJIHRvIGJsaW5rLlxuICAtLVx4M2VcbiAgPGNpcmNsZVxuICAgICpuZ1N3aXRjaENhc2U9InRydWUiXG4gICAgY3g9IjUwJSJcbiAgICBjeT0iNTAlIlxuICAgIFthdHRyLnJdPSJfZ2V0Q2lyY2xlUmFkaXVzKCkiXG4gICAgW3N0eWxlLmFuaW1hdGlvbi1uYW1lXT0iXCdtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1zdHJva2Utcm90YXRlLVwnICsgX3NwaW5uZXJBbmltYXRpb25MYWJlbCJcbiAgICBbc3R5bGUuc3Ryb2tlLWRhc2hvZmZzZXQucHhdPSJfZ2V0U3Ryb2tlRGFzaE9mZnNldCgpIlxuICAgIFtzdHlsZS5zdHJva2UtZGFzaGFycmF5LnB4XT0iX2dldFN0cm9rZUNpcmN1bWZlcmVuY2UoKSJcbiAgICBbc3R5bGUuc3Ryb2tlLXdpZHRoLiVdPSJfZ2V0Q2lyY2xlU3Ryb2tlV2lkdGgoKSI+PC9jaXJjbGU+XG5cbiAgPGNpcmNsZVxuICAgICpuZ1N3aXRjaENhc2U9ImZhbHNlIlxuICAgIGN4PSI1MCUiXG4gICAgY3k9IjUwJSJcbiAgICBbYXR0ci5yXT0iX2dldENpcmNsZVJhZGl1cygpIlxuICAgIFtzdHlsZS5zdHJva2UtZGFzaG9mZnNldC5weF09Il9nZXRTdHJva2VEYXNoT2Zmc2V0KCkiXG4gICAgW3N0eWxlLnN0cm9rZS1kYXNoYXJyYXkucHhdPSJfZ2V0U3Ryb2tlQ2lyY3VtZmVyZW5jZSgpIlxuICAgIFtzdHlsZS5zdHJva2Utd2lkdGguJV09Il9nZXRDaXJjbGVTdHJva2VXaWR0aCgpIj48L2NpcmNsZT5cbjwvc3ZnPlxuJyxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNoLGVuY2Fwc3VsYXRpb246V24uTm9uZSxzdHlsZXM6WyIubWF0LXByb2dyZXNzLXNwaW5uZXJ7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW59Lm1hdC1wcm9ncmVzcy1zcGlubmVyIHN2Z3twb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7dG9wOjA7bGVmdDowO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyO292ZXJmbG93OnZpc2libGV9Lm1hdC1wcm9ncmVzcy1zcGlubmVyIGNpcmNsZXtmaWxsOnRyYW5zcGFyZW50O3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyO3RyYW5zaXRpb246c3Ryb2tlLWRhc2hvZmZzZXQgMjI1bXMgbGluZWFyfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGV7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1wcm9ncmVzcy1zcGlubmVyIGNpcmNsZXtzdHJva2U6Y3VycmVudENvbG9yO3N0cm9rZTpDYW52YXNUZXh0fS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1pbmRldGVybWluYXRlLWFuaW1hdGlvblttb2RlPWluZGV0ZXJtaW5hdGVdIHN2Z3thbmltYXRpb246bWF0LXByb2dyZXNzLXNwaW5uZXItbGluZWFyLXJvdGF0ZSAyMDAwbXMgbGluZWFyIGluZmluaXRlfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1pbmRldGVybWluYXRlLWFuaW1hdGlvblttb2RlPWluZGV0ZXJtaW5hdGVdIHN2Z3t0cmFuc2l0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmV9Lm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1wcm9ncmVzcy1zcGlubmVyLWluZGV0ZXJtaW5hdGUtYW5pbWF0aW9uW21vZGU9aW5kZXRlcm1pbmF0ZV0gY2lyY2xle3RyYW5zaXRpb24tcHJvcGVydHk6c3Ryb2tlO2FuaW1hdGlvbi1kdXJhdGlvbjo0MDAwbXM7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSk7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBjaXJjbGV7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1pbmRldGVybWluYXRlLWZhbGxiYWNrLWFuaW1hdGlvblttb2RlPWluZGV0ZXJtaW5hdGVdIHN2Z3thbmltYXRpb246bWF0LXByb2dyZXNzLXNwaW5uZXItc3Ryb2tlLXJvdGF0ZS1mYWxsYmFjayAxMDAwMG1zIGN1YmljLWJlemllcigwLjg3LCAwLjAzLCAwLjMzLCAxKSBpbmZpbml0ZX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1mYWxsYmFjay1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBzdmd7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1pbmRldGVybWluYXRlLWZhbGxiYWNrLWFuaW1hdGlvblttb2RlPWluZGV0ZXJtaW5hdGVdIGNpcmNsZXt0cmFuc2l0aW9uLXByb3BlcnR5OnN0cm9rZX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXByb2dyZXNzLXNwaW5uZXItaW5kZXRlcm1pbmF0ZS1mYWxsYmFjay1hbmltYXRpb25bbW9kZT1pbmRldGVybWluYXRlXSBjaXJjbGV7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfUBrZXlmcmFtZXMgbWF0LXByb2dyZXNzLXNwaW5uZXItbGluZWFyLXJvdGF0ZXswJXt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfTEwMCV7dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX1Aa2V5ZnJhbWVzIG1hdC1wcm9ncmVzcy1zcGlubmVyLXN0cm9rZS1yb3RhdGUtMTAwezAle3N0cm9rZS1kYXNob2Zmc2V0OjI2OC42MDYxNzE1NzVweDt0cmFuc2Zvcm06cm90YXRlKDApfTEyLjUle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlKDApfTEyLjUwMDEle3N0cm9rZS1kYXNob2Zmc2V0OjU2LjU0ODY2NzdweDt0cmFuc2Zvcm06cm90YXRlWCgxODBkZWcpIHJvdGF0ZSg3Mi41ZGVnKX0yNSV7c3Ryb2tlLWRhc2hvZmZzZXQ6MjY4LjYwNjE3MTU3NXB4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDcyLjVkZWcpfTI1LjAwMDEle3N0cm9rZS1kYXNob2Zmc2V0OjI2OC42MDYxNzE1NzVweDt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9MzcuNSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKX0zNy41MDAxJXtzdHJva2UtZGFzaG9mZnNldDo1Ni41NDg2Njc3cHg7dHJhbnNmb3JtOnJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoMTYxLjVkZWcpfTUwJXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoMTYxLjVkZWcpfTUwLjAwMDEle3N0cm9rZS1kYXNob2Zmc2V0OjI2OC42MDYxNzE1NzVweDt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9NjIuNSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX02Mi41MDAxJXtzdHJva2UtZGFzaG9mZnNldDo1Ni41NDg2Njc3cHg7dHJhbnNmb3JtOnJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoMjUxLjVkZWcpfTc1JXtzdHJva2UtZGFzaG9mZnNldDoyNjguNjA2MTcxNTc1cHg7dHJhbnNmb3JtOnJvdGF0ZVgoMTgwZGVnKSByb3RhdGUoMjUxLjVkZWcpfTc1LjAwMDEle3N0cm9rZS1kYXNob2Zmc2V0OjI2OC42MDYxNzE1NzVweDt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKX04Ny41JXtzdHJva2UtZGFzaG9mZnNldDo1Ni41NDg2Njc3cHg7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9ODcuNTAwMSV7c3Ryb2tlLWRhc2hvZmZzZXQ6NTYuNTQ4NjY3N3B4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZykgcm90YXRlKDM0MS41ZGVnKX0xMDAle3N0cm9rZS1kYXNob2Zmc2V0OjI2OC42MDYxNzE1NzVweDt0cmFuc2Zvcm06cm90YXRlWCgxODBkZWcpIHJvdGF0ZSgzNDEuNWRlZyl9fUBrZXlmcmFtZXMgbWF0LXByb2dyZXNzLXNwaW5uZXItc3Ryb2tlLXJvdGF0ZS1mYWxsYmFja3swJXt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfTI1JXt0cmFuc2Zvcm06cm90YXRlKDExNzBkZWcpfTUwJXt0cmFuc2Zvcm06cm90YXRlKDIzNDBkZWcpfTc1JXt0cmFuc2Zvcm06cm90YXRlKDM1MTBkZWcpfTEwMCV7dHJhbnNmb3JtOnJvdGF0ZSg0NjgwZGVnKX19XG4iXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOktofSx7dHlwZTpjSH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltzTV19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltja119XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W2UyXX1dfV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIHIye31yMi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cjIpfSxyMi7JtW1vZD1mbyh7dHlwZTpyMn0pLHIyLsm1aW5qPURuKHtpbXBvcnRzOltbTkYscnhdLE5GXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIocjIsW3t0eXBlOkxfLGFyZ3M6W3tpbXBvcnRzOltORixyeF0sZXhwb3J0czpbaTIsYTIsTkZdLGRlY2xhcmF0aW9uczpbaTIsYTJdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8ocjIse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVybltpMixhMl19LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bTkYscnhdfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW2kyLGEyLE5GXX19KTtjb25zdCBzMj1bInJlZ2V4U3RyaW5nSW5wdXQiXTtmdW5jdGlvbiBsMih0LGUpe2lmKDEmdCYmKHhmKDApLENmKDEsImxpIiwyMiksUHUoMiksTWYoKSxPZigpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQ7RGMoMSksYmYoInRpdGxlIix0Lm5hbWUpLERjKDEpLHd1KHQubmFtZSl9fWZ1bmN0aW9uIGMyKHQsZSl7aWYoMSZ0JiYoQ2YoMCwibGkiLDIzKSxDZigxLCJlbSIpLFB1KDIpLF95KDMsIm51bWJlciIpLE1mKCksTWYoKSksMiZ0KXtjb25zdCB0PXpmKCkuJGltcGxpY2l0O0RjKDIpLGt1KCJhbmQgIixDeSgzLDEsdC5ydW5zLmxlbmd0aC01KSwiIG1vcmUiKX19ZnVuY3Rpb24gZDIodCxlKXsxJnQmJihDZigwLCJsaSIsMjQpLENmKDEsImVtIiksUHUoMiwiTm8gcnVucyBhcmUgaW4gdGhlIGdyb3VwIiksTWYoKSxNZigpKX1jb25zdCBwMj1mdW5jdGlvbih0KXtyZXR1cm57Ym9yZGVyQ29sb3I6dH19LG0yPWZ1bmN0aW9uKHQpe3JldHVybntiYWNrZ3JvdW5kQ29sb3I6dH19O2Z1bmN0aW9uIGYyKHQsZSl7aWYoMSZ0JiYoQ2YoMCwidWwiLDE2KSxDZigxLCJsaSIpLENmKDIsImxhYmVsIiksdmYoMywic3BhbiIsMTcpLENmKDQsImNvZGUiLDE4KSxQdSg1KSxNZigpLE1mKCksQ2YoNiwidWwiKSxIbSg3LGwyLDMsMiwibmctY29udGFpbmVyIiwxOSksX3koOCwic2xpY2UiKSxIbSg5LGMyLDQsMywibGkiLDIwKSxIbSgxMCxkMiwzLDAsImxpIiwyMSksTWYoKSxNZigpLE1mKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdDtiZigibmdTdHlsZSIsaXkoMTEscDIsdC5jb2xvcikpLERjKDMpLGJmKCJuZ1N0eWxlIixpeSgxMyxtMix0LmNvbG9yKSksRGMoMSksYmYoInRpdGxlIix0Lmdyb3VwSWQpLERjKDEpLHd1KHQuZ3JvdXBJZCksRGMoMiksYmYoIm5nRm9yT2YiLHZ5KDgsNyx0LnJ1bnMsMCw1KSksRGMoMiksYmYoIm5nSWYiLHQucnVucy5sZW5ndGg+NSksRGMoMSksYmYoIm5nSWYiLDA9PT10LnJ1bnMubGVuZ3RoKX19ZnVuY3Rpb24gdTIodCxlKXtpZigxJnQmJihDZigwLCJkaXYiLDE0KSxIbSgxLGYyLDExLDE1LCJ1bCIsMTUpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigyKTtEYygxKSxiZigibmdGb3JPZiIsdC5jb2xvclJ1blBhaXJMaXN0KX19ZnVuY3Rpb24gZzIodCxlKXtpZigxJnQmJihDZigwLCJkaXYiLDI1KSxQdSgxLCIgVGhlcmUgYXJlIG5vIHJ1bnMgbWF0Y2hpbmcgdGhlIHJlZ2V4LCAiKSxDZigyLCJjb2RlIiksUHUoMyksTWYoKSxQdSg0LCIuIFBsZWFzZSBjaGVjayBpZiB5b3VyIHJlZ2V4IHN0cmluZyBpcyBjb3JyZWN0LiAiKSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoMik7RGMoMyksa3UoIi8iLHQucmVnZXhTdHJpbmcsIi8iKX19ZnVuY3Rpb24gaDIodCxlKXtpZigxJnQmJihDZigwLCJkaXYiLDEwKSxDZigxLCJoNCIpLFB1KDIsIkNvbG9yIGdyb3VwIHByZXZpZXciKSxNZigpLENmKDMsImRpdiIsMTEpLEhtKDQsdTIsMiwxLCJkaXYiLDEyKSxIbSg1LGcyLDUsMSwibmctdGVtcGxhdGUiLG51bGwsMTMscXkpLE1mKCksTWYoKSksMiZ0KXtjb25zdCB0PUZtKDYpLGU9emYoKTtEYyg0KSxiZigibmdJZiIsZS5jb2xvclJ1blBhaXJMaXN0Lmxlbmd0aCkoIm5nSWZFbHNlIix0KX19Y2xhc3MgYjJ7Y29uc3RydWN0b3IodCxlKXt0aGlzLmRpYWxvZ1JlZj10LHRoaXMuaG9zdEVsUmVmPWUsdGhpcy5vblNhdmU9bmV3IFN5LHRoaXMucmVnZXhJbnB1dE9uQ2hhbmdlPW5ldyBTeSx0aGlzLnRpbWVPdXRJZD0wfXJlc2V0Rm9jdXMoKXtpZighdGhpcy5ob3N0RWxSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSl7dGhpcy5yZWdleFN0cmluZ0lucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKX19b25FbnRlcih0KXt0aGlzLm9uU2F2ZUNsaWNrKHQpLHRoaXMuZGlhbG9nUmVmLmNsb3NlKCl9b25TYXZlQ2xpY2sodCl7dGhpcy5vblNhdmUuZW1pdCh0KX1maWxsRXhhbXBsZSh0KXt0aGlzLnJlZ2V4U3RyaW5nPXQsdGhpcy5yZWdleElucHV0Q2hhbmdlKHQpfXJlZ2V4SW5wdXRDaGFuZ2UodCl7dGhpcy5yZWdleElucHV0T25DaGFuZ2UuZW1pdCh0KX1oYW5kbGVGb2N1c091dCgpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVPdXRJZCksdGhpcy50aW1lT3V0SWQ9c2V0VGltZW91dCh0aGlzLnJlc2V0Rm9jdXMuYmluZCh0aGlzKSwwKX19YjIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGIyKShnZihWWSksZ2YoS2gpKX0sYjIuybVjbXA9c28oe3R5cGU6YjIsc2VsZWN0b3JzOltbInJlZ2V4LWVkaXQtZGlhbG9nLWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmVnkoczIsNyksMiZlKXtsZXQgdDtCeSh0PVV5KCkpJiYobi5yZWdleFN0cmluZ0lucHV0PXQuZmlyc3QpfX0saW5wdXRzOntyZWdleFN0cmluZzoicmVnZXhTdHJpbmciLGNvbG9yUnVuUGFpckxpc3Q6ImNvbG9yUnVuUGFpckxpc3QifSxvdXRwdXRzOntvblNhdmU6Im9uU2F2ZSIscmVnZXhJbnB1dE9uQ2hhbmdlOiJyZWdleElucHV0T25DaGFuZ2UifSxkZWNsczozMCx2YXJzOjIsY29uc3RzOmZ1bmN0aW9uKCl7bGV0IHQ7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGUpe3Q9Z29vZy5nZXRNc2coIkNvbG9yIFJ1bnMgYnkgUmVnZXggUXVlcnkiKX1lbHNlIHQ9JGxvY2FsaXplYDpDb2xvciBSdW5zIGJ5IFJlZ2V4IFF1ZXJ54pCfMTVlZDlmNmZkMmQ0OTA2YTQ4MDNmYzEyNTVkZTNjNWRiMmM1NjUzMOKQnzkwODg5ODUxMTM5NjAzMTI4MDg6Q29sb3IgUnVucyBieSBSZWdleCBRdWVyeWA7cmV0dXJuW1sxLCJyZWdleC1lZGl0LWRpYWxvZyIsMywiZm9jdXNvdXQiXSxbIm1hdC1kaWFsb2ctdGl0bGUiLCIiXSxbIm1hdElucHV0IiwiIiwiYXJpYS1sYWJlbCIsdCwiY2RrRm9jdXNJbml0aWFsIiwiIiwzLCJ2YWx1ZSIsImtleWRvd24uZW50ZXIiLCJpbnB1dCJdLFsicmVnZXhTdHJpbmdJbnB1dCIsIiJdLFsxLCJleGFtcGxlLWRldGFpbHMiXSxbMywiY2xpY2siXSxbImNsYXNzIiwiZ3JvdXAtY29udGFpbmVyIiw0LCJuZ0lmIl0sWyJtYXQtZGlhbG9nLWFjdGlvbnMiLCIiLCJhbGlnbiIsImVuZCJdLFsibWF0LWJ1dHRvbiIsIiIsIm1hdC1kaWFsb2ctY2xvc2UiLCIiXSxbIm1hdC1yYWlzZWQtYnV0dG9uIiwiIiwiY29sb3IiLCJwcmltYXJ5IiwibWF0LWRpYWxvZy1jbG9zZSIsIiIsMywiY2xpY2siXSxbMSwiZ3JvdXAtY29udGFpbmVyIl0sWzEsImdyb3VwaW5nLXByZXZpZXciXSxbImNsYXNzIiwibWF0Y2gtY29udGFpbmVyIiw0LCJuZ0lmIiwibmdJZkVsc2UiXSxbImVtcHR5IiwiIl0sWzEsIm1hdGNoLWNvbnRhaW5lciJdLFsiY2xhc3MiLCJncm91cCIsMywibmdTdHlsZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImdyb3VwIiwzLCJuZ1N0eWxlIl0sWzEsImNvbG9yLXN3YXRjaCIsMywibmdTdHlsZSJdLFsxLCJncm91cC1pZCIsMywidGl0bGUiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJjbGFzcyIsIm1vcmUiLDQsIm5nSWYiXSxbImNsYXNzIiwibm8tbWF0Y2giLDQsIm5nSWYiXSxbMywidGl0bGUiXSxbMSwibW9yZSJdLFsxLCJuby1tYXRjaCJdLFsxLCJ3YXJuaW5nIl1dfSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlKXtjb25zdCB0PXdmKCk7Q2YoMCwiZGl2IiwwKSxSZigiZm9jdXNvdXQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uaGFuZGxlRm9jdXNPdXQoKX0pKSxDZigxLCJoMSIsMSksUHUoMiwiQ29sb3IgcnVucyBieSByZWdleCIpLE1mKCksQ2YoMywibWF0LWRpYWxvZy1jb250ZW50IiksQ2YoNCwicCIpLFB1KDUsIkVudGVyIGEgcmVnZXggd2l0aCBjYXB0dXJpbmcgZ3JvdXBzIHRvIG1hdGNoIGFnYWluc3QgcnVuIG5hbWVzOiIpLE1mKCksQ2YoNiwibWF0LWZvcm0tZmllbGQiKSxDZig3LCJpbnB1dCIsMiwzKSxSZigia2V5ZG93bi5lbnRlciIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25FbnRlcihlLnRhcmdldC52YWx1ZSl9KSkoImlucHV0IiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5yZWdleElucHV0Q2hhbmdlKGUudGFyZ2V0LnZhbHVlKX0pKSxNZigpLE1mKCksTWYoKSxDZig5LCJkaXYiLDQpLENmKDEwLCJwIiksUHUoMTEsJyBFYWNoIG1hdGNoaW5nIHJ1biB3aWxsIGJlIGFzc2lnbmVkIGEgY29sb3IgYmFzZWQgb24gdGhlICJrZXkiIGZvcm1lZCBieSBpdHMgbWF0Y2hlcyB0byB0aGUgY2FwdHVyaW5nIGdyb3Vwcy4gJyksdmYoMTIsImJyIiksQ2YoMTMsImJ1dHRvbiIsNSksUmYoImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLmZpbGxFeGFtcGxlKCIodHJhaW58ZXZhbCkiKX0pKSxQdSgxNCwiIFRyeSAiKSxDZigxNSwiY29kZSIpLFB1KDE2LCIodHJhaW58ZXZhbCkiKSxNZigpLE1mKCksUHUoMTcsIiB0byBhc3NpZ24gYWxsIHJ1bnMgY29udGFpbmluZyAiKSxDZigxOCwiY29kZSIpLFB1KDE5LCJ0cmFpbiIpLE1mKCksUHUoMjAsIiB0byBvbmUgY29sb3IgYW5kIGFsbCBydW5zIGNvbnRhaW5pbmcgIiksQ2YoMjEsImNvZGUiKSxQdSgyMiwiZXZhbCIpLE1mKCksUHUoMjMsIiB0byBhbm90aGVyIGNvbG9yLiAiKSxNZigpLE1mKCksSG0oMjQsaDIsNywyLCJkaXYiLDYpLENmKDI1LCJkaXYiLDcpLENmKDI2LCJidXR0b24iLDgpLFB1KDI3LCJDYW5jZWwiKSxNZigpLENmKDI4LCJidXR0b24iLDkpLFJmKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtQaSh0KTtjb25zdCBvPUZtKDgpO3JldHVybiBuLm9uU2F2ZUNsaWNrKG8udmFsdWUpfSkpLFB1KDI5LCIgU2F2ZSAiKSxNZigpLE1mKCksTWYoKX0yJmUmJihEYyg3KSxMZigidmFsdWUiLG4ucmVnZXhTdHJpbmcpLERjKDE3KSxiZigibmdJZiIsbi5yZWdleFN0cmluZykpfSxkaXJlY3RpdmVzOltRWSwkWSxfVSxBWixQdix0cSxOTCxKWSx4dix6dl0scGlwZXM6W2l4LCR2XSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0uZXhhbXBsZS1kZXRhaWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtwYWRkaW5nOjA7Ym9yZGVyOm5vbmU7Y3Vyc29yOnBvaW50ZXI7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTtjb2xvcjojMTk3NmQyfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5leGFtcGxlLWRldGFpbHNbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmV4YW1wbGUtZGV0YWlsc1tfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM0MmE1ZjV9LmV4YW1wbGUtZGV0YWlsc1tfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVdOnZpc2l0ZWR7Y29sb3I6IzdiMWZhMn1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZXhhbXBsZS1kZXRhaWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV06dmlzaXRlZCwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmV4YW1wbGUtZGV0YWlsc1tfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVdOnZpc2l0ZWR7Y29sb3I6I2JhNjhjOH0uZ3JvdXAtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MTBweCAwfS5ncm91cC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi1ib3R0b206MTBweH0uZ3JvdXAtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC53YXJuaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxO2ZvbnQtc2l6ZTouOWVtfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLndhcm5pbmdbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC53YXJuaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0uZ3JvdXBpbmctcHJldmlld1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO21heC1oZWlnaHQ6NTB2aDtvdmVyZmxvdy15OmF1dG87cGFkZGluZzoyMHB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cGluZy1wcmV2aWV3W19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwaW5nLXByZXZpZXdbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjoxcHggc29saWQgIzU1NX0ubWF0Y2gtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2Rpc3BsYXk6Z3JpZDtmbGV4LXdyYXA6d3JhcDtnYXA6MTBweDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDIsIG1pbm1heCg1MCUsIDFmcikpfS5jb2xvci1zd2F0Y2hbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1yYWRpdXM6NTAlO2JveC1zaGFkb3c6MCAwIDJweCAjMDAwO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxNXB4O3dpZHRoOjE1cHh9dWxbX25nY29udGVudC0lQ09NUCVde2xpc3Qtc3R5bGUtdHlwZTpub25lO3BhZGRpbmc6MH1tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJX0uZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjoxcHggc29saWQgI2ViZWJlYjtib3JkZXItcmFkaXVzOjNweDttYXJnaW46MDtwYWRkaW5nOjEwcHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MXB4IHNvbGlkICM1NTV9Lmdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmdyaWQ7Z2FwOjEwcHg7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1heC1jb250ZW50IGF1dG87cGFkZGluZzo1cHggMH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXBbX25nY29udGVudC0lQ09NUCVdICAgbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXBbX25nY29udGVudC0lQ09NUCVdICAgbGFiZWxbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM1NTV9Lmdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5ncm91cC1pZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOi45NWVtO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uZ3JvdXBbX25nY29udGVudC0lQ09NUCVdICAgdWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTouOWVtfS5ncm91cFtfbmdjb250ZW50LSVDT01QJV0gICB1bFtfbmdjb250ZW50LSVDT01QJV0gICBsaVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5ncm91cFtfbmdjb250ZW50LSVDT01QJV0gICAubW9yZVtfbmdjb250ZW50LSVDT01QJV0sIC5ncm91cFtfbmdjb250ZW50LSVDT01QJV0gICAubm8tbWF0Y2hbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2MTYxNjE7bWFyZ2luLXRvcDo1cHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tb3JlW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tb3JlW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXBbX25nY29udGVudC0lQ09NUCVdICAgLm5vLW1hdGNoW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uby1tYXRjaFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGIyLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6InJlZ2V4LWVkaXQtZGlhbG9nLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6InJlZ2V4X2VkaXRfZGlhbG9nLm5nLmh0bWwiLHN0eWxlVXJsczpbInJlZ2V4X2VkaXRfZGlhbG9nX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6Vll9LHt0eXBlOktofV19KSx7cmVnZXhTdHJpbmc6W3t0eXBlOlJffV0sY29sb3JSdW5QYWlyTGlzdDpbe3R5cGU6Ul99XSxvblNhdmU6W3t0eXBlOkVffV0scmVnZXhJbnB1dE9uQ2hhbmdlOlt7dHlwZTpFX31dLHJlZ2V4U3RyaW5nSW5wdXQ6W3t0eXBlOmFyLGFyZ3M6WyJyZWdleFN0cmluZ0lucHV0Iix7c3RhdGljOiEwfV19XX0pO2NsYXNzIHkye2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLnN0b3JlPXQsdGhpcy5kaWFsb2dSZWY9ZSx0aGlzLnRlbnRhdGl2ZVJlZ2V4U3RyaW5nJD1uZXcgQix0aGlzLmdyb3VwQnlSZWdleFN0cmluZyQ9b2UoKCgpPT5wZSh0aGlzLnN0b3JlLnNlbGVjdChySSkucGlwZSh2ZSgxKSksdGhpcy50ZW50YXRpdmVSZWdleFN0cmluZyQpKSkucGlwZShCZSgiIikpLHRoaXMuY29sb3JSdW5QYWlyTGlzdCQ9b2UoKCgpPT50aGlzLmdyb3VwQnlSZWdleFN0cmluZyQucGlwZShDZSg1MDApLHVlKCh0PT57dHJ5e2NvbnN0IGU9bmV3IFJlZ0V4cCh0KTtyZXR1cm4gQm9vbGVhbihlKX1jYXRjaCh0KXtyZXR1cm4hMX19KSksX2UodGhpcy5hbGxSdW5zJCx0aGlzLnJ1bklkVG9FaWQkLHRoaXMuc3RvcmUuc2VsZWN0KGJJKSx0aGlzLnN0b3JlLnNlbGVjdChGRCkpLFZ0KCgoW3QsZSxuLG8saV0pPT57Y29uc3QgYT1Weih7a2V5Okx6LlJFR0VYLHJlZ2V4U3RyaW5nOnR9LGUsbikscj1uZXcgTWFwLHM9W107Zm9yKGNvbnN0W3QsZV1vZiBPYmplY3QuZW50cmllcyhhLm1hdGNoZXMpKXtsZXQgbj1yLmdldCh0KTtpZighbil7Y29uc3QgZT1vLmNvbG9yc1tyLnNpemUlby5jb2xvcnMubGVuZ3RoXTtuPWk/ZS5kYXJrSGV4OmUubGlnaHRIZXgsci5zZXQodCxuKX1zLnB1c2goe2dyb3VwSWQ6dCxjb2xvcjpuLHJ1bnM6ZX0pfXJldHVybiBzfSkpKSkpLnBpcGUoQmUoW10pKSx0aGlzLmV4cGVyaW1lbnRJZHM9bi5leHBlcmltZW50SWRzLHRoaXMucnVuSWRUb0VpZCQ9S3QodGhpcy5leHBlcmltZW50SWRzLm1hcCgodD0+dGhpcy5zdG9yZS5zZWxlY3QoWnose2V4cGVyaW1lbnRJZDp0fSkucGlwZShWdCgoZT0+KHtleHBlcmltZW50SWQ6dCxydW5JZHM6ZX0pKSkpKSkpLnBpcGUoVnQoKHQ9Pntjb25zdCBlPXt9O2Zvcihjb25zdHtydW5JZHM6bixleHBlcmltZW50SWQ6b31vZiB0KWZvcihjb25zdCB0IG9mIG4pZVt0XT1vO3JldHVybiBlfSkpKSx0aGlzLmFsbFJ1bnMkPUt0KHRoaXMuZXhwZXJpbWVudElkcy5tYXAoKHQ9PnRoaXMuc3RvcmUuc2VsZWN0KHF6LHtleHBlcmltZW50SWQ6dH0pKSkpLnBpcGUoVnQoKHQ9PnQuZmxhdCgpKSkpfW9uUmVnZXhJbnB1dE9uQ2hhbmdlKHQpe3RoaXMudGVudGF0aXZlUmVnZXhTdHJpbmckLm5leHQodCl9b25TYXZlKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2goeFQoe2V4cGVyaW1lbnRJZHM6dGhpcy5leHBlcmltZW50SWRzLGdyb3VwQnk6e2tleTpMei5SRUdFWCxyZWdleFN0cmluZzp0fX0pKX19ZnVuY3Rpb24gXzIodCxlKXsxJnQmJnZmKDAsIm1hdC1pY29uIiwxMSl9ZnVuY3Rpb24gQzIodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJidXR0b24iLDEwKSxSZigiY2xpY2siLChmdW5jdGlvbiBlKCl7UGkodCk7Y29uc3Qgbj16ZigpO3JldHVybiBuLm9uR3JvdXBCeUNoYW5nZS5lbWl0KHtrZXk6bi5Hcm91cEJ5S2V5LkVYUEVSSU1FTlR9KX0pKSxDZigxLCJzcGFuIiksSG0oMixfMiwxLDAsIm1hdC1pY29uIiw3KSxNZigpLENmKDMsImxhYmVsIiksUHUoNCwiRXhwZXJpbWVudCIpLE1mKCksTWYoKX1pZigyJnQpe2NvbnN0IHQ9emYoKTt5bSgiYXJpYS1jaGVja2VkIix0LnNlbGVjdGVkR3JvdXBCeS5rZXk9PT10Lkdyb3VwQnlLZXkuRVhQRVJJTUVOVCksRGMoMiksYmYoIm5nSWYiLHQuc2VsZWN0ZWRHcm91cEJ5LmtleT09PXQuR3JvdXBCeUtleS5FWFBFUklNRU5UKX19ZnVuY3Rpb24gTTIodCxlKXsxJnQmJnZmKDAsIm1hdC1pY29uIiwxMSl9ZnVuY3Rpb24gdjIodCxlKXsxJnQmJnZmKDAsIm1hdC1pY29uIiwxMSl9ZnVuY3Rpb24geDIodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJidXR0b24iLDEyKSxSZigiY2xpY2siLChmdW5jdGlvbiBlKCl7UGkodCk7cmV0dXJuIHpmKCkub25Hcm91cEJ5UmVnZXhDbGljaygpfSkpLENmKDEsInNwYW4iKSxIbSgyLHYyLDEsMCwibWF0LWljb24iLDcpLE1mKCksQ2YoMywibGFiZWwiKSxQdSg0LCJSZWdleCIpLE1mKCksTWYoKX1pZigyJnQpe2NvbnN0IHQ9emYoKTt5bSgiYXJpYS1jaGVja2VkIix0LnNlbGVjdGVkR3JvdXBCeS5rZXk9PT10Lkdyb3VwQnlLZXkuUkVHRVgpLERjKDIpLGJmKCJuZ0lmIix0LnNlbGVjdGVkR3JvdXBCeS5rZXk9PT10Lkdyb3VwQnlLZXkuUkVHRVgpfX1mdW5jdGlvbiBPMih0LGUpe2lmKDEmdCYmKENmKDAsImxhYmVsIiksUHUoMSksTWYoKSksMiZ0KXtjb25zdCB0PXpmKDIpO0RjKDEpLHd1KHQucmVnZXhTdHJpbmcpfX1mdW5jdGlvbiBQMih0LGUpezEmdCYmKENmKDAsImxhYmVsIiwxNyksUHUoMSwiKG5vbmUgc2V0KSIpLE1mKCkpfWZ1bmN0aW9uIHcyKHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwiYnV0dG9uIiwxMyksUmYoImNsaWNrIiwoZnVuY3Rpb24gZSgpe1BpKHQpO3JldHVybiB6ZigpLm9uUmVnZXhTdHJpbmdFZGl0KCl9KSksQ2YoMSwic3BhbiIpLHZmKDIsIm1hdC1pY29uIiwxNCksTWYoKSxIbSgzLE8yLDIsMSwibGFiZWwiLDE1KSxIbSg0LFAyLDIsMCwibGFiZWwiLDE2KSxNZigpfWlmKDImdCl7Y29uc3QgdD16ZigpO0RjKDMpLGJmKCJuZ0lmIix0LnJlZ2V4U3RyaW5nKSxEYygxKSxiZigibmdJZiIsIXQucmVnZXhTdHJpbmcpfX15Mi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8eTIpKGdmKGlTKSxnZihWWSksZ2YoVVkpKX0seTIuybVjbXA9c28oe3R5cGU6eTIsc2VsZWN0b3JzOltbInJlZ2V4LWVkaXQtZGlhbG9nIl1dLGRlY2xzOjMsdmFyczo2LGNvbnN0czpbWzMsInJlZ2V4U3RyaW5nIiwiY29sb3JSdW5QYWlyTGlzdCIsIm9uU2F2ZSIsInJlZ2V4SW5wdXRPbkNoYW5nZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwicmVnZXgtZWRpdC1kaWFsb2ctY29tcG9uZW50IiwwKSxSZigib25TYXZlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblNhdmUoZSl9KSkoInJlZ2V4SW5wdXRPbkNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25SZWdleElucHV0T25DaGFuZ2UoZSl9KSksX3koMSwiYXN5bmMiKSxfeSgyLCJhc3luYyIpLE1mKCkpLDImZSYmYmYoInJlZ2V4U3RyaW5nIixDeSgxLDIsbi5ncm91cEJ5UmVnZXhTdHJpbmckKSkoImNvbG9yUnVuUGFpckxpc3QiLEN5KDIsNCxuLmNvbG9yUnVuUGFpckxpc3QkKSl9LGRpcmVjdGl2ZXM6W2IyXSxwaXBlczpbVnZdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV0sIHJlZ2V4LWVkaXQtZGlhbG9nLWNvbXBvbmVudFtfbmdjb250ZW50LSVDT01QJV0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH0iXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoeTIsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoicmVnZXgtZWRpdC1kaWFsb2ciLHRlbXBsYXRlOic8cmVnZXgtZWRpdC1kaWFsb2ctY29tcG9uZW50XG4gICAgW3JlZ2V4U3RyaW5nXT0iZ3JvdXBCeVJlZ2V4U3RyaW5nJCB8IGFzeW5jIlxuICAgIFtjb2xvclJ1blBhaXJMaXN0XT0iY29sb3JSdW5QYWlyTGlzdCQgfCBhc3luYyJcbiAgICAob25TYXZlKT0ib25TYXZlKCRldmVudCkiXG4gICAgKHJlZ2V4SW5wdXRPbkNoYW5nZSk9Im9uUmVnZXhJbnB1dE9uQ2hhbmdlKCRldmVudCkiXG4gID48L3JlZ2V4LWVkaXQtZGlhbG9nLWNvbXBvbmVudD4nLHN0eWxlczpbIlxuICAgICAgOmhvc3QsXG4gICAgICByZWdleC1lZGl0LWRpYWxvZy1jb21wb25lbnQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICAiXX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfSx7dHlwZTpWWX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W1VZXX1dfV19KSxudWxsKTtjbGFzcyBrMntjb25zdHJ1Y3Rvcih0KXt0aGlzLmRpYWxvZz10LHRoaXMuR3JvdXBCeUtleT1Meix0aGlzLm9uR3JvdXBCeUNoYW5nZT1uZXcgU3l9b25SZWdleFN0cmluZ0VkaXQoKXt0aGlzLmRpYWxvZy5vcGVuKHkyLHttYXhIZWlnaHQ6Ijk1dmgiLG1heFdpZHRoOiI4MHZ3IixkYXRhOntleHBlcmltZW50SWRzOnRoaXMuZXhwZXJpbWVudElkc319KX1vbkdyb3VwQnlSZWdleENsaWNrKCl7dGhpcy5yZWdleFN0cmluZz90aGlzLm9uR3JvdXBCeUNoYW5nZS5lbWl0KHtrZXk6THouUkVHRVgscmVnZXhTdHJpbmc6dGhpcy5yZWdleFN0cmluZ30pOnRoaXMub25SZWdleFN0cmluZ0VkaXQoKX19azIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGsyKShnZihYWSkpfSxrMi7JtWNtcD1zbyh7dHlwZTprMixzZWxlY3RvcnM6W1sicnVucy1ncm91cC1tZW51LWJ1dHRvbi1jb21wb25lbnQiXV0saW5wdXRzOntzaG93RXhwZXJpbWVudHNHcm91cEJ5OiJzaG93RXhwZXJpbWVudHNHcm91cEJ5IixleHBlcmltZW50SWRzOiJleHBlcmltZW50SWRzIixyZWdleFN0cmluZzoicmVnZXhTdHJpbmciLHNlbGVjdGVkR3JvdXBCeToic2VsZWN0ZWRHcm91cEJ5IixzaG93R3JvdXBCeVJlZ2V4OiJzaG93R3JvdXBCeVJlZ2V4In0sb3V0cHV0czp7b25Hcm91cEJ5Q2hhbmdlOiJvbkdyb3VwQnlDaGFuZ2UifSxkZWNsczoxNCx2YXJzOjYsY29uc3RzOltbIm1hdC1pY29uLWJ1dHRvbiIsIiIsInRpdGxlIiwiQ29sb3IgcnVucyBieS4uLiIsMywibWF0TWVudVRyaWdnZXJGb3IiXSxbInN2Z0ljb24iLCJwYWxldHRlXzI0cHgiXSxbMSwicnVuLXRhYmxlLWNvbG9yLWdyb3VwLWJ5Il0sWyJncm91cEJ5TWVudSIsIm1hdE1lbnUiXSxbMSwibGFiZWwiXSxbIm1hdC1tZW51LWl0ZW0iLCIiLCJyb2xlIiwibWVudWl0ZW1yYWRpbyIsImRhdGEtdmFsdWUiLCJleHBlcmltZW50IiwzLCJjbGljayIsNCwibmdJZiJdLFsibWF0LW1lbnUtaXRlbSIsIiIsInJvbGUiLCJtZW51aXRlbXJhZGlvIiwiZGF0YS12YWx1ZSIsInJ1biIsMywiY2xpY2siXSxbInN2Z0ljb24iLCJkb25lXzI0cHgiLDQsIm5nSWYiXSxbIm1hdC1tZW51LWl0ZW0iLCIiLCJyb2xlIiwibWVudWl0ZW1yYWRpbyIsImRhdGEtdmFsdWUiLCJyZWdleCIsMywiY2xpY2siLDQsIm5nSWYiXSxbIm1hdC1tZW51LWl0ZW0iLCIiLCJyb2xlIiwibWVudWl0ZW0iLCJkYXRhLXZhbHVlIiwicmVnZXgtZWRpdCIsImNsYXNzIiwiZGlzcGxheS1yZWdleC1zdHJpbmciLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJtYXQtbWVudS1pdGVtIiwiIiwicm9sZSIsIm1lbnVpdGVtcmFkaW8iLCJkYXRhLXZhbHVlIiwiZXhwZXJpbWVudCIsMywiY2xpY2siXSxbInN2Z0ljb24iLCJkb25lXzI0cHgiXSxbIm1hdC1tZW51LWl0ZW0iLCIiLCJyb2xlIiwibWVudWl0ZW1yYWRpbyIsImRhdGEtdmFsdWUiLCJyZWdleCIsMywiY2xpY2siXSxbIm1hdC1tZW51LWl0ZW0iLCIiLCJyb2xlIiwibWVudWl0ZW0iLCJkYXRhLXZhbHVlIiwicmVnZXgtZWRpdCIsMSwiZGlzcGxheS1yZWdleC1zdHJpbmciLDMsImNsaWNrIl0sWyJzdmdJY29uIiwiZWRpdF8yNHB4Il0sWzQsIm5nSWYiXSxbImNsYXNzIiwibm9uZS1zZXQtc3RyaW5nIiw0LCJuZ0lmIl0sWzEsIm5vbmUtc2V0LXN0cmluZyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoQ2YoMCwiYnV0dG9uIiwwKSx2ZigxLCJtYXQtaWNvbiIsMSksTWYoKSxDZigyLCJtYXQtbWVudSIsMiwzKSxDZig0LCJkaXYiLDQpLFB1KDUsIkNvbG9yIHJ1bnMgYnkiKSxNZigpLEhtKDYsQzIsNSwyLCJidXR0b24iLDUpLENmKDcsImJ1dHRvbiIsNiksUmYoImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uR3JvdXBCeUNoYW5nZS5lbWl0KHtrZXk6bi5Hcm91cEJ5S2V5LlJVTn0pfSkpLENmKDgsInNwYW4iKSxIbSg5LE0yLDEsMCwibWF0LWljb24iLDcpLE1mKCksQ2YoMTAsImxhYmVsIiksUHUoMTEsIlJ1biIpLE1mKCksTWYoKSxIbSgxMix4Miw1LDIsImJ1dHRvbiIsOCksSG0oMTMsdzIsNSwyLCJidXR0b24iLDkpLE1mKCkpLDImZSl7YmYoIm1hdE1lbnVUcmlnZ2VyRm9yIixGbSgzKSksRGMoNiksYmYoIm5nSWYiLG4uc2hvd0V4cGVyaW1lbnRzR3JvdXBCeSksRGMoMSkseW0oImFyaWEtY2hlY2tlZCIsbi5zZWxlY3RlZEdyb3VwQnkua2V5PT09bi5Hcm91cEJ5S2V5LlJVTiksRGMoMiksYmYoIm5nSWYiLG4uc2VsZWN0ZWRHcm91cEJ5LmtleT09PW4uR3JvdXBCeUtleS5SVU4pLERjKDMpLGJmKCJuZ0lmIixuLnNob3dHcm91cEJ5UmVnZXgpLERjKDEpLGJmKCJuZ0lmIixuLnNob3dHcm91cEJ5UmVnZXgpfX0sZGlyZWN0aXZlczpbTkwscXEsTXEsanEsUHYsSHFdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfSAgLnJ1bi10YWJsZS1jb2xvci1ncm91cC1ieXtmb250LXNpemU6MTZweH0gIC5ydW4tdGFibGUtY29sb3ItZ3JvdXAtYnkgLmxhYmVse2NvbG9yOiM2MTYxNjE7Zm9udC1zaXplOi45ZW07bWFyZ2luOjEwcHggMDtwYWRkaW5nOjAgMTZweDtwb2ludGVyLWV2ZW50czpub25lfSAgLnJ1bi10YWJsZS1jb2xvci1ncm91cC1ieSBidXR0b257ZGlzcGxheTpncmlkO2dhcDoycHggMTBweDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MjBweCBhdXRvfSAgLnJ1bi10YWJsZS1jb2xvci1ncm91cC1ieSBtYXQtaWNvbntoZWlnaHQ6MjBweDt3aWR0aDoyMHB4fSAgLnJ1bi10YWJsZS1jb2xvci1ncm91cC1ieSAuZGlzcGxheS1yZWdleC1zdHJpbmd7cGFkZGluZy1sZWZ0OjQwcHh9ICAucnVuLXRhYmxlLWNvbG9yLWdyb3VwLWJ5IC5kaXNwbGF5LXJlZ2V4LXN0cmluZyAubm9uZS1zZXQtc3RyaW5ne2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgICAucnVuLXRhYmxlLWNvbG9yLWdyb3VwLWJ5IC5kaXNwbGF5LXJlZ2V4LXN0cmluZyAubm9uZS1zZXQtc3RyaW5nLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAgIC5ydW4tdGFibGUtY29sb3ItZ3JvdXAtYnkgLmRpc3BsYXktcmVnZXgtc3RyaW5nIC5ub25lLXNldC1zdHJpbmd7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGsyLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6InJ1bnMtZ3JvdXAtbWVudS1idXR0b24tY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoicnVuc19ncm91cF9tZW51X2J1dHRvbl9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsicnVuc19ncm91cF9tZW51X2J1dHRvbl9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOlhZfV19KSx7c2hvd0V4cGVyaW1lbnRzR3JvdXBCeTpbe3R5cGU6Ul99XSxleHBlcmltZW50SWRzOlt7dHlwZTpSX31dLHJlZ2V4U3RyaW5nOlt7dHlwZTpSX31dLHNlbGVjdGVkR3JvdXBCeTpbe3R5cGU6Ul99XSxzaG93R3JvdXBCeVJlZ2V4Olt7dHlwZTpSX31dLG9uR3JvdXBCeUNoYW5nZTpbe3R5cGU6RV99XX0pO2NsYXNzIFMye2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLnNob3dHcm91cEJ5UmVnZXgkPXRoaXMuc3RvcmUuc2VsZWN0KFVEKSx0aGlzLnNob3dFeHBlcmltZW50c0dyb3VwQnkkPXRoaXMuc3RvcmUuc2VsZWN0KENSKS5waXBlKFZ0KCh0PT50LmhhcyhfRC5DT01QQVJFX0VYUEVSSU1FTlQpKSkpLHRoaXMuc2VsZWN0ZWRHcm91cEJ5JD10aGlzLnN0b3JlLnNlbGVjdCgkeiksdGhpcy5ncm91cEJ5UmVnZXhTdHJpbmckPXRoaXMuc3RvcmUuc2VsZWN0KHJJKX1vbkdyb3VwQnlDaGFuZ2UodCl7dGhpcy5zdG9yZS5kaXNwYXRjaCh4VCh7ZXhwZXJpbWVudElkczp0aGlzLmV4cGVyaW1lbnRJZHMsZ3JvdXBCeTp0fSkpfX1TMi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UzIpKGdmKGlTKSl9LFMyLsm1Y21wPXNvKHt0eXBlOlMyLHNlbGVjdG9yczpbWyJydW5zLWdyb3VwLW1lbnUtYnV0dG9uIl1dLGlucHV0czp7ZXhwZXJpbWVudElkczoiZXhwZXJpbWVudElkcyJ9LGRlY2xzOjUsdmFyczoxMyxjb25zdHM6W1szLCJyZWdleFN0cmluZyIsInNlbGVjdGVkR3JvdXBCeSIsInNob3dHcm91cEJ5UmVnZXgiLCJzaG93RXhwZXJpbWVudHNHcm91cEJ5IiwiZXhwZXJpbWVudElkcyIsIm9uR3JvdXBCeUNoYW5nZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwicnVucy1ncm91cC1tZW51LWJ1dHRvbi1jb21wb25lbnQiLDApLFJmKCJvbkdyb3VwQnlDaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uR3JvdXBCeUNoYW5nZShlKX0pKSxfeSgxLCJhc3luYyIpLF95KDIsImFzeW5jIiksX3koMywiYXN5bmMiKSxfeSg0LCJhc3luYyIpLE1mKCkpLDImZSYmYmYoInJlZ2V4U3RyaW5nIixDeSgxLDUsbi5ncm91cEJ5UmVnZXhTdHJpbmckKSkoInNlbGVjdGVkR3JvdXBCeSIsQ3koMiw3LG4uc2VsZWN0ZWRHcm91cEJ5JCkpKCJzaG93R3JvdXBCeVJlZ2V4IixDeSgzLDksbi5zaG93R3JvdXBCeVJlZ2V4JCkpKCJzaG93RXhwZXJpbWVudHNHcm91cEJ5IixDeSg0LDExLG4uc2hvd0V4cGVyaW1lbnRzR3JvdXBCeSQpKSgiZXhwZXJpbWVudElkcyIsbi5leHBlcmltZW50SWRzKX0sZGlyZWN0aXZlczpbazJdLHBpcGVzOltWdl0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihTMixbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJydW5zLWdyb3VwLW1lbnUtYnV0dG9uIix0ZW1wbGF0ZTonXG4gICAgPHJ1bnMtZ3JvdXAtbWVudS1idXR0b24tY29tcG9uZW50XG4gICAgICBbcmVnZXhTdHJpbmddPSJncm91cEJ5UmVnZXhTdHJpbmckIHwgYXN5bmMiXG4gICAgICBbc2VsZWN0ZWRHcm91cEJ5XT0ic2VsZWN0ZWRHcm91cEJ5JCB8IGFzeW5jIlxuICAgICAgW3Nob3dHcm91cEJ5UmVnZXhdPSJzaG93R3JvdXBCeVJlZ2V4JCB8IGFzeW5jIlxuICAgICAgW3Nob3dFeHBlcmltZW50c0dyb3VwQnldPSJzaG93RXhwZXJpbWVudHNHcm91cEJ5JCB8IGFzeW5jIlxuICAgICAgW2V4cGVyaW1lbnRJZHNdPSJleHBlcmltZW50SWRzIlxuICAgICAgKG9uR3JvdXBCeUNoYW5nZSk9Im9uR3JvdXBCeUNoYW5nZSgkZXZlbnQpIlxuICAgID48L3J1bnMtZ3JvdXAtbWVudS1idXR0b24tY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSkse2V4cGVyaW1lbnRJZHM6W3t0eXBlOlJffV19KTtjb25zdCBEMj1bImNvbnRhaW5lciJdO3ZhciBSMjshKGZ1bmN0aW9uKHQpe3RbdC5OT05FPTBdPSJOT05FIix0W3QuTEVGVD0xXT0iTEVGVCIsdFt0LlJJR0hUPTJdPSJSSUdIVCJ9KShSMnx8KFIyPXt9KSk7Y2xhc3MgRTJ7Y29uc3RydWN0b3IodCl7dGhpcy5jaGFuZ2VEZXRlY3Rvcj10LHRoaXMudGlja0NvdW50PTIwLHRoaXMudmFsdWU9bmV3IFN5LHRoaXMuUG9zaXRpb249UjIsdGhpcy5hY3RpdmVUaHVtYj1SMi5OT05FLHRoaXMub2Zmc2V0WEZyb21PcmlnaW5PZkFjdGl2ZVRodW1iPTAsdGhpcy5uZ1Vuc3Vic2NyaWJlPW5ldyBCfWdldFRodW1iUG9zaXRpb24odCl7Y29uc3QgZT10aGlzLmdldENsaXBwZWRWYWx1ZSh0KSxuPXRoaXMubWF4LXRoaXMubWluO2lmKG48PTApcmV0dXJuIjUwJSI7cmV0dXJuYCR7KGUtdGhpcy5taW4pL24qMTAwfSVgfWdldFRyYWNrV2lkdGgoKXtjb25zdCB0PXRoaXMubWF4LXRoaXMubWluO2lmKHQ8PTApcmV0dXJuIjAlIjtyZXR1cm5gJHsodGhpcy5nZXRDbGlwcGVkVmFsdWUodGhpcy51cHBlclZhbHVlKS10aGlzLmdldENsaXBwZWRWYWx1ZSh0aGlzLmxvd2VyVmFsdWUpKS90KjEwMH0lYH1nZXRDbGlwcGVkVmFsdWUodCl7cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KHQsdGhpcy5taW4pLHRoaXMubWF4KX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9bmdPbkluaXQoKXtsZShkb2N1bWVudCwibW91c2Vtb3ZlIix7cGFzc2l2ZTohMH0pLnBpcGUoamUodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCh0PT57dGhpcy5oYW5kbGVNb3VzZU1vdmUodCl9KSksbGUoZG9jdW1lbnQsIm1vdXNldXAiLHtwYXNzaXZlOiEwfSkucGlwZShqZSh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKHQ9Pnt0aGlzLmhhbmRsZU1vdXNlT3V0KHQpfSkpfWhhbmRsZU1vdXNlRG93bih0LGUpe3RoaXMuYWN0aXZlVGh1bWI9ZTt0aGlzLm9mZnNldFhGcm9tT3JpZ2luT2ZBY3RpdmVUaHVtYj02LXQub2Zmc2V0WH1jYWxjdWxhdGVWYWx1ZUZyb21Nb3VzZUV2ZW50KHQpe2NvbnN0e2xlZnQ6ZSxyaWdodDpufT10aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89dC5jbGllbnRYLWUrdGhpcy5vZmZzZXRYRnJvbU9yaWdpbk9mQWN0aXZlVGh1bWI7bGV0IGk7aWYobnVsbCE9PXRoaXMudGlja0NvdW50JiZ0aGlzLnRpY2tDb3VudD4wKXtjb25zdCB0PShuLWUpL3RoaXMudGlja0NvdW50O2k9TWF0aC5yb3VuZChvL3QpKnQvKG4tZSl9ZWxzZSBpPW8vKG4tZSk7Y29uc3QgYT10aGlzLmdldENsaXBwZWRWYWx1ZSh0aGlzLm1pbisodGhpcy5tYXgtdGhpcy5taW4pKmkpO3JldHVybiBOdW1iZXIoYS50b0ZpeGVkKDEwKSl9aGFuZGxlTW91c2VNb3ZlKHQpe2lmKHRoaXMuYWN0aXZlVGh1bWI9PT1SMi5OT05FKXJldHVybjtjb25zdCBlPXRoaXMuY2FsY3VsYXRlVmFsdWVGcm9tTW91c2VFdmVudCh0KTtsZXQgbj1bdGhpcy5sb3dlclZhbHVlLHRoaXMudXBwZXJWYWx1ZV07dGhpcy5hY3RpdmVUaHVtYj09PVIyLkxFRlQ/KGU+dGhpcy51cHBlclZhbHVlJiYodGhpcy5hY3RpdmVUaHVtYj1SMi5SSUdIVCksbj1bZSx0aGlzLnVwcGVyVmFsdWVdKTooZTx0aGlzLmxvd2VyVmFsdWUmJih0aGlzLmFjdGl2ZVRodW1iPVIyLkxFRlQpLG49W3RoaXMubG93ZXJWYWx1ZSxlXSksdGhpcy5tYXliZU5vdGlmeU5leHRWYWx1ZShuKSx0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpfW1heWJlTm90aWZ5TmV4dFZhbHVlKHQpe2NvbnN0W2Usbl09dC5zb3J0KCgodCxlKT0+dC1lKSk7dGhpcy5sb3dlclZhbHVlPT09ZSYmdGhpcy51cHBlclZhbHVlPT09bnx8dGhpcy52YWx1ZS5lbWl0KHtsb3dlclZhbHVlOmUsdXBwZXJWYWx1ZTpufSl9aGFuZGxlTW91c2VPdXQodCl7dGhpcy5hY3RpdmVUaHVtYiE9PVIyLk5PTkUmJih0aGlzLmFjdGl2ZVRodW1iPVIyLk5PTkUsdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKSl9aGFuZGxlSW5wdXRDaGFuZ2UodCxlKXtjb25zdCBuPXRoaXMuZ2V0Q2xpcHBlZFZhbHVlKE51bWJlcih0LnRhcmdldC52YWx1ZSkpO2lmKGlzTmFOKG4pKXJldHVybjtsZXQgbz1bdGhpcy5sb3dlclZhbHVlLHRoaXMudXBwZXJWYWx1ZV07bz1lPT09UjIuTEVGVD9bbix0aGlzLnVwcGVyVmFsdWVdOlt0aGlzLmxvd2VyVmFsdWUsbl0sdGhpcy5tYXliZU5vdGlmeU5leHRWYWx1ZShvKX1pc1RodW1iQWN0aXZlKHQpe3JldHVybiB0aGlzLmFjdGl2ZVRodW1iPT09dH19RTIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEUyKShnZihPYikpfSxFMi7JtWNtcD1zbyh7dHlwZTpFMixzZWxlY3RvcnM6W1sidGItcmFuZ2UtaW5wdXQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJlZ5KEQyLDcsS2gpLDImZSl7bGV0IHQ7QnkodD1VeSgpKSYmKG4uY29udGFpbmVyPXQuZmlyc3QpfX0saW5wdXRzOnttaW46Im1pbiIsbWF4OiJtYXgiLGxvd2VyVmFsdWU6Imxvd2VyVmFsdWUiLHVwcGVyVmFsdWU6InVwcGVyVmFsdWUiLHRpY2tDb3VudDoidGlja0NvdW50In0sb3V0cHV0czp7dmFsdWU6InZhbHVlIn0sZGVjbHM6OCx2YXJzOjE0LGNvbnN0czpbWyJ0eXBlIiwibnVtYmVyIiwxLCJsb3dlci1pbnB1dCIsMywidmFsdWUiLCJjaGFuZ2UiXSxbInR5cGUiLCJudW1iZXIiLDEsInVwcGVyLWlucHV0IiwzLCJ2YWx1ZSIsImNoYW5nZSJdLFsxLCJjb250YWluZXIiXSxbImNvbnRhaW5lciIsIiJdLFsxLCJzbGlkZXItdHJhY2siXSxbMSwic2xpZGVyLXRyYWNrLWZpbGwiXSxbMSwidGh1bWIiLDMsIm1vdXNlZG93biJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwiaW5wdXQiLDApLFJmKCJjaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmhhbmRsZUlucHV0Q2hhbmdlKGUsbi5Qb3NpdGlvbi5MRUZUKX0pKSxNZigpLENmKDEsImlucHV0IiwxKSxSZigiY2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5oYW5kbGVJbnB1dENoYW5nZShlLG4uUG9zaXRpb24uUklHSFQpfSkpLE1mKCksQ2YoMiwic3BhbiIsMiwzKSx2Zig0LCJzcGFuIiw0KSx2Zig1LCJzcGFuIiw1KSxDZig2LCJzcGFuIiw2KSxSZigibW91c2Vkb3duIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5oYW5kbGVNb3VzZURvd24oZSxuLlBvc2l0aW9uLkxFRlQpfSkpLE1mKCksQ2YoNywic3BhbiIsNiksUmYoIm1vdXNlZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uaGFuZGxlTW91c2VEb3duKGUsbi5Qb3NpdGlvbi5SSUdIVCl9KSksTWYoKSxNZigpKSwyJmUmJihiZigidmFsdWUiLG4ubG93ZXJWYWx1ZSksRGMoMSksYmYoInZhbHVlIixuLnVwcGVyVmFsdWUpLERjKDQpLGx1KCJsZWZ0IixuLmdldFRodW1iUG9zaXRpb24obi5sb3dlclZhbHVlKSkoIndpZHRoIixuLmdldFRyYWNrV2lkdGgoKSksRGMoMSksbHUoImxlZnQiLG4uZ2V0VGh1bWJQb3NpdGlvbihuLmxvd2VyVmFsdWUpKSxjdSgiYWN0aXZlIixuLmlzVGh1bWJBY3RpdmUobi5Qb3NpdGlvbi5MRUZUKSksRGMoMSksbHUoImxlZnQiLG4uZ2V0VGh1bWJQb3NpdGlvbihuLnVwcGVyVmFsdWUpKSxjdSgiYWN0aXZlIixuLmlzVGh1bWJBY3RpdmUobi5Qb3NpdGlvbi5SSUdIVCkpKX0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTppbmxpbmUtZ3JpZDtncmlkLWdhcDoxMHB4O2dyaWQtdGVtcGxhdGUtYXJlYXM6Imxvd2VyLWlucHV0IHVwcGVyLWlucHV0IiAic2xpZGVyIHNsaWRlciI7Zm9udC1zaXplOjA7bWluLXdpZHRoOjEwMHB4O3BhZGRpbmc6NnB4fWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjppbmhlcml0O292ZXJmbG93OmhpZGRlbjt3aWR0aDoxMDAlfS5sb3dlci1pbnB1dFtfbmdjb250ZW50LSVDT01QJV17Z3JpZC1hcmVhOmxvd2VyLWlucHV0fS51cHBlci1pbnB1dFtfbmdjb250ZW50LSVDT01QJV17Z3JpZC1hcmVhOnVwcGVyLWlucHV0O2p1c3RpZnktc2VsZjpmbGV4LWVuZH0uY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtncmlkLWFyZWE6c2xpZGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTppbmxpbmUtZmxleDtoZWlnaHQ6MTJweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9LnNsaWRlci10cmFja1tfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4yNik7aGVpZ2h0OjJweDt3aWR0aDoxMDAlfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5zbGlkZXItdHJhY2tbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuc2xpZGVyLXRyYWNrW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjMpfS5zbGlkZXItdHJhY2stZmlsbFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjJweH0udGh1bWJbX25nY29udGVudC0lQ09NUCVde2JveC1zYWRob3c6MCAwIDAgMXB4IHJnYmEoMCwwLDAsLjI2KTtib3JkZXItcmFkaXVzOjEwMCU7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjEycHg7bWFyZ2luLWxlZnQ6LTZweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgZWFzZTt3aWR0aDoxMnB4O3dpbGwtY2hhbmdlOnRyYW5zZm9ybX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAudGh1bWJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAudGh1bWJbX25nY29udGVudC0lQ09NUCVde2JveC1zYWRob3c6MCAwIDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjMpfS50aHVtYi5hY3RpdmVbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTpzY2FsZSgxLjIpfS5zbGlkZXItdHJhY2stZmlsbFtfbmdjb250ZW50LSVDT01QJV0sIC50aHVtYltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojZjU3YzAwfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5zbGlkZXItdHJhY2stZmlsbFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5zbGlkZXItdHJhY2stZmlsbFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojZWY2YzAwfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC50aHVtYltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC50aHVtYltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojZWY2YzAwfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihFMixbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJ0Yi1yYW5nZS1pbnB1dCIsdGVtcGxhdGVVcmw6Ii4vcmFuZ2VfaW5wdXRfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vcmFuZ2VfaW5wdXRfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpPYn1dfSkse2NvbnRhaW5lcjpbe3R5cGU6YXIsYXJnczpbImNvbnRhaW5lciIse3N0YXRpYzohMCxyZWFkOktofV19XSxtaW46W3t0eXBlOlJffV0sbWF4Olt7dHlwZTpSX31dLGxvd2VyVmFsdWU6W3t0eXBlOlJffV0sdXBwZXJWYWx1ZTpbe3R5cGU6Ul99XSx0aWNrQ291bnQ6W3t0eXBlOlJffV0sdmFsdWU6W3t0eXBlOkVffV19KTtjb25zdCBBMj1bIm1lYXN1cmVyIl0sVDI9WyJpbnB1dCJdO2NsYXNzIE4ye2NvbnN0cnVjdG9yKHQpe3RoaXMuY2hhbmdlRGV0ZWN0b3I9dCx0aGlzLnBsYWNlaG9sZGVyPSIiLHRoaXMuc3R5bGU9ImRlZmF1bHQiLHRoaXMucGF0dGVyblJlZ2V4PW5ldyBSZWdFeHAoIi4qIiksdGhpcy5pc1ZhbGlkPSEwLHRoaXMub25WYWx1ZUNoYW5nZT1uZXcgU3ksdGhpcy5ibHVyPW5ldyBTeSx0aGlzLmZvY3VzPW5ldyBTeSx0aGlzLmtleWRvd249bmV3IFN5LHRoaXMua2V5dXA9bmV3IFN5LHRoaXMuaW50ZXJuYWxWYWx1ZT0iIix0aGlzLmZvbnRDaGFuZ2VMaXN0ZW5lcj10aGlzLnVwZGF0ZUlucHV0V2lkdGguYmluZCh0aGlzKX1uZ09uSW5pdCgpe2RvY3VtZW50LmZvbnRzJiZkb2N1bWVudC5mb250cy5hZGRFdmVudExpc3RlbmVyKCJsb2FkaW5nZG9uZSIsdGhpcy5mb250Q2hhbmdlTGlzdGVuZXIpfW5nT25EZXN0cm95KCl7ZG9jdW1lbnQuZm9udHMmJmRvY3VtZW50LmZvbnRzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWRpbmdkb25lIix0aGlzLmZvbnRDaGFuZ2VMaXN0ZW5lcil9bmdPbkNoYW5nZXModCl7dmFyIGU7dC5wYXR0ZXJuJiYodGhpcy5wYXR0ZXJuUmVnZXg9bmV3IFJlZ0V4cChudWxsIT09KGU9dGhpcy5wYXR0ZXJuKSYmdm9pZCAwIT09ZT9lOiIiKSksdC52YWx1ZSYmKHRoaXMuaW50ZXJuYWxWYWx1ZT10aGlzLnZhbHVlKSx0aGlzLmlzVmFsaWQ9dGhpcy5wYXR0ZXJuUmVnZXgudGVzdCh0aGlzLmludGVybmFsVmFsdWUpfW5nQWZ0ZXJWaWV3Q2hlY2tlZCgpe3RoaXMudXBkYXRlSW5wdXRXaWR0aCgpfW9uSW5wdXQodCl7Y29uc3QgZT10aGlzLmludGVybmFsVmFsdWU7dGhpcy5pbnRlcm5hbFZhbHVlPXRoaXMuaW5wdXRFbFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlLHRoaXMuaW50ZXJuYWxWYWx1ZSE9PWUmJih0aGlzLmlzVmFsaWQ9dGhpcy5wYXR0ZXJuUmVnZXgudGVzdCh0aGlzLmludGVybmFsVmFsdWUpLHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCkpLHRoaXMub25WYWx1ZUNoYW5nZS5lbWl0KHt2YWx1ZTp0aGlzLmludGVybmFsVmFsdWV9KX11cGRhdGVJbnB1dFdpZHRoKCl7Y29uc3R7d2lkdGg6dH09dGhpcy5tZWFzdXJlckVsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5pbnB1dEVsUmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGg9YCR7dH1weGB9fWZ1bmN0aW9uIHoyKHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwiY29udGVudC13cmFwcGluZy1pbnB1dCIsMyksUmYoIm9uVmFsdWVDaGFuZ2UiLChmdW5jdGlvbiBlKG4pe1BpKHQpO3JldHVybiB6ZigpLmFsaWFzQ2hhbmdlZC5lbWl0KG4pfSkpLE1mKCl9aWYoMiZ0KXtjb25zdCB0PXpmKCk7ZHUodC5pc0FsaWFzTmFtZUxlZ2FsPyJoaWdoLWNvbnRyYXN0IjoiZXJyb3IiKSxiZigidmFsdWUiLHQuYWxpYXMuYWxpYXNUZXh0KX19ZnVuY3Rpb24gSTIodCxlKXtpZigxJnQmJihDZigwLCJzcGFuIiksUHUoMSksTWYoKSksMiZ0KXtjb25zdCB0PXpmKCk7Y3UoImlsbGVnYWwiLCF0LmlzQWxpYXNOYW1lTGVnYWwpLERjKDEpLHd1KHQuYWxpYXMuYWxpYXNUZXh0KX19TjIuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE4yKShnZihPYikpfSxOMi7JtWNtcD1zbyh7dHlwZTpOMixzZWxlY3RvcnM6W1siY29udGVudC13cmFwcGluZy1pbnB1dCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFZ5KEEyLDcsS2gpLFZ5KFQyLDcsS2gpKSwyJmUpe2xldCB0O0J5KHQ9VXkoKSkmJihuLm1lYXN1cmVyRWxSZWY9dC5maXJzdCksQnkodD1VeSgpKSYmKG4uaW5wdXRFbFJlZj10LmZpcnN0KX19LGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJm11KG4uc3R5bGUpfSxpbnB1dHM6e3ZhbHVlOiJ2YWx1ZSIscGxhY2Vob2xkZXI6InBsYWNlaG9sZGVyIixzdHlsZToic3R5bGUiLHBhdHRlcm46InBhdHRlcm4ifSxvdXRwdXRzOntvblZhbHVlQ2hhbmdlOiJvblZhbHVlQ2hhbmdlIixibHVyOiJibHVyIixmb2N1czoiZm9jdXMiLGtleWRvd246ImtleWRvd24iLGtleXVwOiJrZXl1cCJ9LGZlYXR1cmVzOltxb10sZGVjbHM6Nix2YXJzOjcsY29uc3RzOltbImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwibWVhc3VyZXIiXSxbIm1lYXN1cmVyIiwiIl0sWyJhdXRvY29tcGxldGUiLCJvZmYiLCJzcGVsbGNoZWNrIiwiZmFsc2UiLCJ0eXBlIiwidGV4dCIsMywidmFsdWUiLCJwbGFjZWhvbGRlciIsImJsdXIiLCJmb2N1cyIsImlucHV0Iiwia2V5ZG93biIsImtleXVwIl0sWyJpbnB1dCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwic3BhbiIpLENmKDEsInNwYW4iLDAsMSksUHUoMyksTWYoKSxDZig0LCJpbnB1dCIsMiwzKSxSZigiYmx1ciIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uYmx1ci5lbWl0KGUpfSkpKCJmb2N1cyIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uZm9jdXMuZW1pdChlKX0pKSgiaW5wdXQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uSW5wdXQoZSl9KSkoImtleWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmtleWRvd24uZW1pdChlKX0pKSgia2V5dXAiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmtleXVwLmVtaXQoZSl9KSksTWYoKSxNZigpKSwyJmUmJihjdSgiY29udGFpbmVyIiwhMCkoImlzLXZhbGlkIixuLmlzVmFsaWQpLERjKDMpLHd1KG4uaW50ZXJuYWxWYWx1ZXx8bi5wbGFjZWhvbGRlciksRGMoMSksYmYoInZhbHVlIixuLnZhbHVlKSgicGxhY2Vob2xkZXIiLG4ucGxhY2Vob2xkZXIpKX0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1mbGV4O3dpZHRoOm1heC1jb250ZW50fVtfbmdob3N0LSVDT01QJV06Zm9jdXMtd2l0aGluICAgLmNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWNvbG9yOiNmNTdjMDB9LmRlZmF1bHRbX25naG9zdC0lQ09NUCVdOmhvdmVyICAgLmNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWNvbG9yOiNlYmViZWJ9LmVycm9yW19uZ2hvc3QtJUNPTVAlXSAgIC5jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCBbX25naG9zdC0lQ09NUCVdICAgLmNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06bm90KC5pcy12YWxpZCl7Ym9yZGVyLWNvbG9yOiNlZjlhOWF9LmVycm9yW19uZ2hvc3QtJUNPTVAlXSAgIC5jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmhvdmVyLCAuZXJyb3JbX25naG9zdC0lQ09NUCVdICAgLmNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMtd2l0aGluLCBbX25naG9zdC0lQ09NUCVdICAgLmNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06bm90KC5pcy12YWxpZCk6aG92ZXIsIFtfbmdob3N0LSVDT01QJV0gICAuY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoLmlzLXZhbGlkKTpmb2N1cy13aXRoaW57Ym9yZGVyLWNvbG9yOiNlZjlhOWF9LmhpZ2gtY29udHJhc3RbX25naG9zdC0lQ09NUCVdICAgLmNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWNvbG9yOiNiZGJkYmR9LmhpZ2gtY29udHJhc3RbX25naG9zdC0lQ09NUCVdICAgLmNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06aG92ZXJ7Ym9yZGVyLWNvbG9yOiM3NTc1NzV9LmNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyOjJweCBzb2xpZCB0cmFuc3BhcmVudDtwYWRkaW5nOjFweCAycHg7cG9zaXRpb246cmVsYXRpdmV9Lm1lYXN1cmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3Zpc2liaWxpdHk6aGlkZGVufS5tZWFzdXJlcltfbmdjb250ZW50LSVDT01QJV0sIGlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2xpbmUtaGVpZ2h0OjEuNDtwYWRkaW5nOjA7d2hpdGUtc3BhY2U6cHJlfS5tZWFzdXJlcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHksIGlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXt3aWR0aDoyY2h9aW5wdXRbX25nY29udGVudC0lQ09NUCVde2FwcGVhcmFuY2U6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7Ym9yZGVyOjA7Y29sb3I6aW5oZXJpdDtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LWZhbWlseTppbmhlcml0O291dGxpbmU6MH1pbnB1dFtfbmdjb250ZW50LSVDT01QJV06Zm9jdXN7cGFkZGluZy1yaWdodDoxY2h9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKE4yLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6ImNvbnRlbnQtd3JhcHBpbmctaW5wdXQiLHRlbXBsYXRlOidcbiAgICA8c3BhbiBbY2xhc3MuY29udGFpbmVyXT0idHJ1ZSIgW2NsYXNzLmlzLXZhbGlkXT0iaXNWYWxpZCI+XG4gICAgICA8c3BhbiAjbWVhc3VyZXIgY2xhc3M9Im1lYXN1cmVyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+e3tcbiAgICAgICAgaW50ZXJuYWxWYWx1ZSB8fCBwbGFjZWhvbGRlclxuICAgICAgfX08L3NwYW4+XG4gICAgICA8aW5wdXRcbiAgICAgICAgI2lucHV0XG4gICAgICAgIGF1dG9jb21wbGV0ZT0ib2ZmIlxuICAgICAgICBzcGVsbGNoZWNrPSJmYWxzZSJcbiAgICAgICAgdHlwZT0idGV4dCJcbiAgICAgICAgKGJsdXIpPSJibHVyLmVtaXQoJGV2ZW50KSJcbiAgICAgICAgKGZvY3VzKT0iZm9jdXMuZW1pdCgkZXZlbnQpIlxuICAgICAgICAoaW5wdXQpPSJvbklucHV0KCRldmVudCkiXG4gICAgICAgIChrZXlkb3duKT0ia2V5ZG93bi5lbWl0KCRldmVudCkiXG4gICAgICAgIChrZXl1cCk9ImtleXVwLmVtaXQoJGV2ZW50KSJcbiAgICAgICAgW3ZhbHVlXT0idmFsdWUiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09InBsYWNlaG9sZGVyIlxuICAgICAgLz5cbiAgICA8L3NwYW4+XG4gICcsc3R5bGVVcmxzOlsiLi9jb250ZW50X3dyYXBwaW5nX2lucHV0X2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6T2J9XX0pLHttZWFzdXJlckVsUmVmOlt7dHlwZTphcixhcmdzOlsibWVhc3VyZXIiLHtzdGF0aWM6ITAscmVhZDpLaH1dfV0saW5wdXRFbFJlZjpbe3R5cGU6YXIsYXJnczpbImlucHV0Iix7c3RhdGljOiEwLHJlYWQ6S2h9XX1dLHZhbHVlOlt7dHlwZTpSX31dLHBsYWNlaG9sZGVyOlt7dHlwZTpSX31dLHN0eWxlOlt7dHlwZTpBXyxhcmdzOlsiY2xhc3MiXX0se3R5cGU6Ul99XSxwYXR0ZXJuOlt7dHlwZTpSX31dLG9uVmFsdWVDaGFuZ2U6W3t0eXBlOkVffV0sYmx1cjpbe3R5cGU6RV99XSxmb2N1czpbe3R5cGU6RV99XSxrZXlkb3duOlt7dHlwZTpFX31dLGtleXVwOlt7dHlwZTpFX31dfSk7Y2xhc3MgSDJ7Y29uc3RydWN0b3IoKXt0aGlzLmlzQWxpYXNOYW1lTGVnYWw9ITAsdGhpcy5hbGlhc0NoYW5nZWQ9bmV3IFN5fX1IMi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SDIpfSxIMi7JtWNtcD1zbyh7dHlwZTpIMixzZWxlY3RvcnM6W1sidGItZXhwZXJpbWVudC1hbGlhcyJdXSxpbnB1dHM6e2FsaWFzOiJhbGlhcyIsYWxpYXNFZGl0YWJsZToiYWxpYXNFZGl0YWJsZSIsaXNBbGlhc05hbWVMZWdhbDoiaXNBbGlhc05hbWVMZWdhbCJ9LG91dHB1dHM6e2FsaWFzQ2hhbmdlZDoiYWxpYXNDaGFuZ2VkIn0sZGVjbHM6NSx2YXJzOjMsY29uc3RzOltbMSwiYWxpYXMtbnVtYmVyIl0sWyJwbGFjZWhvbGRlciIsIkFsaWFzIGZvciBleHBlcmltZW50IiwzLCJzdHlsZSIsInZhbHVlIiwib25WYWx1ZUNoYW5nZSIsNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJub0VkaXRBbGlhc05hbWUiLCIiXSxbInBsYWNlaG9sZGVyIiwiQWxpYXMgZm9yIGV4cGVyaW1lbnQiLDMsInZhbHVlIiwib25WYWx1ZUNoYW5nZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoQ2YoMCwic3BhbiIsMCksUHUoMSksTWYoKSxIbSgyLHoyLDEsMywiY29udGVudC13cmFwcGluZy1pbnB1dCIsMSksSG0oMyxJMiwyLDMsIm5nLXRlbXBsYXRlIixudWxsLDIscXkpKSwyJmUpe2NvbnN0IHQ9Rm0oNCk7RGMoMSksd3Uobi5hbGlhcy5hbGlhc051bWJlciksRGMoMSksYmYoIm5nSWYiLG4uYWxpYXNFZGl0YWJsZSkoIm5nSWZFbHNlIix0KX19LGRpcmVjdGl2ZXM6W1B2LE4yXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0uYWxpYXMtbnVtYmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNlMGUwZTA7Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO2NvbG9yOiMyMTIxMjE7Ym9yZGVyLXJhZGl1czoycHg7bWFyZ2luLXJpZ2h0OjJweDtwYWRkaW5nOjAgMnB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5hbGlhcy1udW1iZXJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuYWxpYXMtbnVtYmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmFsaWFzLW51bWJlcltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5hbGlhcy1udW1iZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjoxcHggc29saWQgIzU1NX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuYWxpYXMtbnVtYmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmFsaWFzLW51bWJlcltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6I2ZmZn1bX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6YmFzZWxpbmV9J119KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEgyLFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6InRiLWV4cGVyaW1lbnQtYWxpYXMiLHRlbXBsYXRlOidcbiAgICA8c3BhbiBjbGFzcz0iYWxpYXMtbnVtYmVyIj57eyBhbGlhcy5hbGlhc051bWJlciB9fTwvc3Bhbj5cbiAgICA8Y29udGVudC13cmFwcGluZy1pbnB1dFxuICAgICAgKm5nSWY9ImFsaWFzRWRpdGFibGU7IGVsc2Ugbm9FZGl0QWxpYXNOYW1lIlxuICAgICAgcGxhY2Vob2xkZXI9IkFsaWFzIGZvciBleHBlcmltZW50IlxuICAgICAgW3N0eWxlXT0iaXNBbGlhc05hbWVMZWdhbCA/IFwnaGlnaC1jb250cmFzdFwnIDogXCdlcnJvclwnIlxuICAgICAgW3ZhbHVlXT0iYWxpYXMuYWxpYXNUZXh0IlxuICAgICAgKG9uVmFsdWVDaGFuZ2UpPSJhbGlhc0NoYW5nZWQuZW1pdCgkZXZlbnQpIlxuICAgID48L2NvbnRlbnQtd3JhcHBpbmctaW5wdXQ+XG4gICAgPG5nLXRlbXBsYXRlICNub0VkaXRBbGlhc05hbWU+XG4gICAgICA8c3BhbiBbY2xhc3MuaWxsZWdhbF09IiFpc0FsaWFzTmFtZUxlZ2FsIj57eyBhbGlhcy5hbGlhc1RleHQgfX08L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgJyxzdHlsZVVybHM6WyJleHBlcmltZW50X2FsaWFzX2NvbXBvbmVudC5jc3MiXX1dfV0sbnVsbCx7YWxpYXM6W3t0eXBlOlJffV0sYWxpYXNFZGl0YWJsZTpbe3R5cGU6Ul99XSxpc0FsaWFzTmFtZUxlZ2FsOlt7dHlwZTpSX31dLGFsaWFzQ2hhbmdlZDpbe3R5cGU6RV99XX0pO2NvbnN0IEYyPVsiZGlhbG9nUG9wdXAiXSxMMj1bImh1ZVNsaWRlciJdLEIyPVsiYWxwaGFTbGlkZXIiXTtmdW5jdGlvbiBWMih0LGUpe2lmKDEmdCYmdmYoMCwiZGl2IiksMiZ0KXtjb25zdCB0PXpmKCk7SXUoImFycm93IGFycm93LSIsdC5jcFVzZVBvc2l0aW9uLCIiKSxsdSgidG9wIix0LmFycm93VG9wLCJweCIpfX1mdW5jdGlvbiBqMih0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO0NmKDAsImRpdiIsMjYpLFJmKCJuZXdWYWx1ZSIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKCkub25Db2xvckNoYW5nZShuKX0pKSgiZHJhZ1N0YXJ0IiwoZnVuY3Rpb24gZSgpe1BpKHQpO3JldHVybiB6ZigpLm9uRHJhZ1N0YXJ0KCJzYXR1cmF0aW9uLWxpZ2h0bmVzcyIpfSkpKCJkcmFnRW5kIiwoZnVuY3Rpb24gZSgpe1BpKHQpO3JldHVybiB6ZigpLm9uRHJhZ0VuZCgic2F0dXJhdGlvbi1saWdodG5lc3MiKX0pKSx2ZigxLCJkaXYiLDEzKSxNZigpfWlmKDImdCl7Y29uc3QgdD16ZigpO2x1KCJiYWNrZ3JvdW5kLWNvbG9yIix0Lmh1ZVNsaWRlckNvbG9yKSxiZigicmdYIiwxKSgicmdZIiwxKSxEYygxKSxsdSgidG9wIixudWxsPT10LnNsaWRlcj9udWxsOnQuc2xpZGVyLnYsInB4IikoImxlZnQiLG51bGw9PXQuc2xpZGVyP251bGw6dC5zbGlkZXIucywicHgiKX19ZnVuY3Rpb24gVTIodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJidXR0b24iLDI3KSxSZigiY2xpY2siLChmdW5jdGlvbiBlKG4pe1BpKHQpO2NvbnN0IG89emYoKTtyZXR1cm4gby5vbkFkZFByZXNldENvbG9yKG4sby5zZWxlY3RlZENvbG9yKX0pKSxQdSgxKSxNZigpfWlmKDImdCl7Y29uc3QgdD16ZigpO211KHQuY3BBZGRDb2xvckJ1dHRvbkNsYXNzKSxiZigiZGlzYWJsZWQiLHQuY3BQcmVzZXRDb2xvcnMmJnQuY3BQcmVzZXRDb2xvcnMubGVuZ3RoPj10LmNwTWF4UHJlc2V0Q29sb3JzTGVuZ3RoKSxEYygxKSxrdSgiICIsdC5jcEFkZENvbG9yQnV0dG9uVGV4dCwiICIpfX1mdW5jdGlvbiBXMih0LGUpezEmdCYmdmYoMCwiZGl2IiwyOCl9ZnVuY3Rpb24gRzIodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJpbnB1dCIsMzQpLFJmKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKDIpLm9uQWNjZXB0Q29sb3Iobil9KSkoIm5ld1ZhbHVlIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtyZXR1cm4gemYoMikub25BbHBoYUlucHV0KG4pfSkpLE1mKCl9aWYoMiZ0KXtjb25zdCB0PXpmKDIpO2JmKCJyZyIsMSkoInZhbHVlIixudWxsPT10LmNteWtUZXh0P251bGw6dC5jbXlrVGV4dC5hKX19ZnVuY3Rpb24gWTIodCxlKXsxJnQmJihDZigwLCJkaXYiKSxQdSgxLCJBIiksTWYoKSl9ZnVuY3Rpb24gcTIodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJkaXYiLDI5KSxDZigxLCJkaXYiLDMwKSxDZigyLCJpbnB1dCIsMzEpLFJmKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKCkub25BY2NlcHRDb2xvcihuKX0pKSgibmV3VmFsdWUiLChmdW5jdGlvbiBlKG4pe1BpKHQpO3JldHVybiB6ZigpLm9uQ3lhbklucHV0KG4pfSkpLE1mKCksQ2YoMywiaW5wdXQiLDMxKSxSZigia2V5dXAuZW50ZXIiLChmdW5jdGlvbiBlKG4pe1BpKHQpO3JldHVybiB6ZigpLm9uQWNjZXB0Q29sb3Iobil9KSkoIm5ld1ZhbHVlIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtyZXR1cm4gemYoKS5vbk1hZ2VudGFJbnB1dChuKX0pKSxNZigpLENmKDQsImlucHV0IiwzMSksUmYoImtleXVwLmVudGVyIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtyZXR1cm4gemYoKS5vbkFjY2VwdENvbG9yKG4pfSkpKCJuZXdWYWx1ZSIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKCkub25ZZWxsb3dJbnB1dChuKX0pKSxNZigpLENmKDUsImlucHV0IiwzMSksUmYoImtleXVwLmVudGVyIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtyZXR1cm4gemYoKS5vbkFjY2VwdENvbG9yKG4pfSkpKCJuZXdWYWx1ZSIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKCkub25CbGFja0lucHV0KG4pfSkpLE1mKCksSG0oNixHMiwxLDIsImlucHV0IiwzMiksTWYoKSxDZig3LCJkaXYiLDMwKSxDZig4LCJkaXYiKSxQdSg5LCJDIiksTWYoKSxDZigxMCwiZGl2IiksUHUoMTEsIk0iKSxNZigpLENmKDEyLCJkaXYiKSxQdSgxMywiWSIpLE1mKCksQ2YoMTQsImRpdiIpLFB1KDE1LCJLIiksTWYoKSxIbSgxNixZMiwyLDAsImRpdiIsMzMpLE1mKCksTWYoKX1pZigyJnQpe2NvbnN0IHQ9emYoKTtsdSgiZGlzcGxheSIsMyE9PXQuZm9ybWF0PyJub25lIjoiYmxvY2siKSxEYygyKSxiZigicmciLDEwMCkoInZhbHVlIixudWxsPT10LmNteWtUZXh0P251bGw6dC5jbXlrVGV4dC5jKSxEYygxKSxiZigicmciLDEwMCkoInZhbHVlIixudWxsPT10LmNteWtUZXh0P251bGw6dC5jbXlrVGV4dC5tKSxEYygxKSxiZigicmciLDEwMCkoInZhbHVlIixudWxsPT10LmNteWtUZXh0P251bGw6dC5jbXlrVGV4dC55KSxEYygxKSxiZigicmciLDEwMCkoInZhbHVlIixudWxsPT10LmNteWtUZXh0P251bGw6dC5jbXlrVGV4dC5rKSxEYygxKSxiZigibmdJZiIsImRpc2FibGVkIiE9PXQuY3BBbHBoYUNoYW5uZWwpLERjKDEwKSxiZigibmdJZiIsImRpc2FibGVkIiE9PXQuY3BBbHBoYUNoYW5uZWwpfX1mdW5jdGlvbiBaMih0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO0NmKDAsImlucHV0IiwzNCksUmYoImtleXVwLmVudGVyIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtyZXR1cm4gemYoMikub25BY2NlcHRDb2xvcihuKX0pKSgibmV3VmFsdWUiLChmdW5jdGlvbiBlKG4pe1BpKHQpO3JldHVybiB6ZigyKS5vbkFscGhhSW5wdXQobil9KSksTWYoKX1pZigyJnQpe2NvbnN0IHQ9emYoMik7YmYoInJnIiwxKSgidmFsdWUiLG51bGw9PXQuaHNsYVRleHQ/bnVsbDp0LmhzbGFUZXh0LmEpfX1mdW5jdGlvbiBYMih0LGUpezEmdCYmKENmKDAsImRpdiIpLFB1KDEsIkEiKSxNZigpKX1mdW5jdGlvbiBLMih0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO0NmKDAsImRpdiIsMzUpLENmKDEsImRpdiIsMzApLENmKDIsImlucHV0IiwzNiksUmYoImtleXVwLmVudGVyIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtyZXR1cm4gemYoKS5vbkFjY2VwdENvbG9yKG4pfSkpKCJuZXdWYWx1ZSIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKCkub25IdWVJbnB1dChuKX0pKSxNZigpLENmKDMsImlucHV0IiwzMSksUmYoImtleXVwLmVudGVyIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtyZXR1cm4gemYoKS5vbkFjY2VwdENvbG9yKG4pfSkpKCJuZXdWYWx1ZSIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKCkub25TYXR1cmF0aW9uSW5wdXQobil9KSksTWYoKSxDZig0LCJpbnB1dCIsMzEpLFJmKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKCkub25BY2NlcHRDb2xvcihuKX0pKSgibmV3VmFsdWUiLChmdW5jdGlvbiBlKG4pe1BpKHQpO3JldHVybiB6ZigpLm9uTGlnaHRuZXNzSW5wdXQobil9KSksTWYoKSxIbSg1LFoyLDEsMiwiaW5wdXQiLDMyKSxNZigpLENmKDYsImRpdiIsMzApLENmKDcsImRpdiIpLFB1KDgsIkgiKSxNZigpLENmKDksImRpdiIpLFB1KDEwLCJTIiksTWYoKSxDZigxMSwiZGl2IiksUHUoMTIsIkwiKSxNZigpLEhtKDEzLFgyLDIsMCwiZGl2IiwzMyksTWYoKSxNZigpfWlmKDImdCl7Y29uc3QgdD16ZigpO2x1KCJkaXNwbGF5IiwyIT09dC5mb3JtYXQ/Im5vbmUiOiJibG9jayIpLERjKDIpLGJmKCJyZyIsMzYwKSgidmFsdWUiLG51bGw9PXQuaHNsYVRleHQ/bnVsbDp0LmhzbGFUZXh0LmgpLERjKDEpLGJmKCJyZyIsMTAwKSgidmFsdWUiLG51bGw9PXQuaHNsYVRleHQ/bnVsbDp0LmhzbGFUZXh0LnMpLERjKDEpLGJmKCJyZyIsMTAwKSgidmFsdWUiLG51bGw9PXQuaHNsYVRleHQ/bnVsbDp0LmhzbGFUZXh0LmwpLERjKDEpLGJmKCJuZ0lmIiwiZGlzYWJsZWQiIT09dC5jcEFscGhhQ2hhbm5lbCksRGMoOCksYmYoIm5nSWYiLCJkaXNhYmxlZCIhPT10LmNwQWxwaGFDaGFubmVsKX19ZnVuY3Rpb24gSjIodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJpbnB1dCIsMzQpLFJmKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKDIpLm9uQWNjZXB0Q29sb3Iobil9KSkoIm5ld1ZhbHVlIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtyZXR1cm4gemYoMikub25BbHBoYUlucHV0KG4pfSkpLE1mKCl9aWYoMiZ0KXtjb25zdCB0PXpmKDIpO2JmKCJyZyIsMSkoInZhbHVlIixudWxsPT10LnJnYmFUZXh0P251bGw6dC5yZ2JhVGV4dC5hKX19ZnVuY3Rpb24gUTIodCxlKXsxJnQmJihDZigwLCJkaXYiKSxQdSgxLCJBIiksTWYoKSl9ZnVuY3Rpb24gJDIodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJkaXYiLDM3KSxDZigxLCJkaXYiLDMwKSxDZigyLCJpbnB1dCIsMzgpLFJmKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKCkub25BY2NlcHRDb2xvcihuKX0pKSgibmV3VmFsdWUiLChmdW5jdGlvbiBlKG4pe1BpKHQpO3JldHVybiB6ZigpLm9uUmVkSW5wdXQobil9KSksTWYoKSxDZigzLCJpbnB1dCIsMzgpLFJmKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKCkub25BY2NlcHRDb2xvcihuKX0pKSgibmV3VmFsdWUiLChmdW5jdGlvbiBlKG4pe1BpKHQpO3JldHVybiB6ZigpLm9uR3JlZW5JbnB1dChuKX0pKSxNZigpLENmKDQsImlucHV0IiwzOCksUmYoImtleXVwLmVudGVyIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtyZXR1cm4gemYoKS5vbkFjY2VwdENvbG9yKG4pfSkpKCJuZXdWYWx1ZSIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKCkub25CbHVlSW5wdXQobil9KSksTWYoKSxIbSg1LEoyLDEsMiwiaW5wdXQiLDMyKSxNZigpLENmKDYsImRpdiIsMzApLENmKDcsImRpdiIpLFB1KDgsIlIiKSxNZigpLENmKDksImRpdiIpLFB1KDEwLCJHIiksTWYoKSxDZigxMSwiZGl2IiksUHUoMTIsIkIiKSxNZigpLEhtKDEzLFEyLDIsMCwiZGl2IiwzMyksTWYoKSxNZigpfWlmKDImdCl7Y29uc3QgdD16ZigpO2x1KCJkaXNwbGF5IiwxIT09dC5mb3JtYXQ/Im5vbmUiOiJibG9jayIpLERjKDIpLGJmKCJyZyIsMjU1KSgidmFsdWUiLG51bGw9PXQucmdiYVRleHQ/bnVsbDp0LnJnYmFUZXh0LnIpLERjKDEpLGJmKCJyZyIsMjU1KSgidmFsdWUiLG51bGw9PXQucmdiYVRleHQ/bnVsbDp0LnJnYmFUZXh0LmcpLERjKDEpLGJmKCJyZyIsMjU1KSgidmFsdWUiLG51bGw9PXQucmdiYVRleHQ/bnVsbDp0LnJnYmFUZXh0LmIpLERjKDEpLGJmKCJuZ0lmIiwiZGlzYWJsZWQiIT09dC5jcEFscGhhQ2hhbm5lbCksRGMoOCksYmYoIm5nSWYiLCJkaXNhYmxlZCIhPT10LmNwQWxwaGFDaGFubmVsKX19ZnVuY3Rpb24gdDUodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJpbnB1dCIsMzQpLFJmKCJrZXl1cC5lbnRlciIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKDIpLm9uQWNjZXB0Q29sb3Iobil9KSkoIm5ld1ZhbHVlIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtyZXR1cm4gemYoMikub25BbHBoYUlucHV0KG4pfSkpLE1mKCl9aWYoMiZ0KXtjb25zdCB0PXpmKDIpO2JmKCJyZyIsMSkoInZhbHVlIix0LmhleEFscGhhKX19ZnVuY3Rpb24gZTUodCxlKXsxJnQmJihDZigwLCJkaXYiKSxQdSgxLCJBIiksTWYoKSl9ZnVuY3Rpb24gbjUodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJkaXYiLDM5KSxDZigxLCJkaXYiLDMwKSxDZigyLCJpbnB1dCIsNDApLFJmKCJibHVyIiwoZnVuY3Rpb24gZSgpe1BpKHQpO3JldHVybiB6ZigpLm9uSGV4SW5wdXQobnVsbCl9KSkoImtleXVwLmVudGVyIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtyZXR1cm4gemYoKS5vbkFjY2VwdENvbG9yKG4pfSkpKCJuZXdWYWx1ZSIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKCkub25IZXhJbnB1dChuKX0pKSxNZigpLEhtKDMsdDUsMSwyLCJpbnB1dCIsMzIpLE1mKCksQ2YoNCwiZGl2IiwzMCksQ2YoNSwiZGl2IiksUHUoNiwiSGV4IiksTWYoKSxIbSg3LGU1LDIsMCwiZGl2IiwzMyksTWYoKSxNZigpfWlmKDImdCl7Y29uc3QgdD16ZigpO2x1KCJkaXNwbGF5IiwwIT09dC5mb3JtYXQ/Im5vbmUiOiJibG9jayIpLGN1KCJoZXgtYWxwaGEiLCJmb3JjZWQiPT09dC5jcEFscGhhQ2hhbm5lbCksRGMoMiksYmYoInZhbHVlIix0LmhleFRleHQpLERjKDEpLGJmKCJuZ0lmIiwiZm9yY2VkIj09PXQuY3BBbHBoYUNoYW5uZWwpLERjKDQpLGJmKCJuZ0lmIiwiZm9yY2VkIj09PXQuY3BBbHBoYUNoYW5uZWwpfX1mdW5jdGlvbiBvNSh0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO0NmKDAsImlucHV0IiwzNCksUmYoImtleXVwLmVudGVyIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtyZXR1cm4gemYoMikub25BY2NlcHRDb2xvcihuKX0pKSgibmV3VmFsdWUiLChmdW5jdGlvbiBlKG4pe1BpKHQpO3JldHVybiB6ZigyKS5vbkFscGhhSW5wdXQobil9KSksTWYoKX1pZigyJnQpe2NvbnN0IHQ9emYoMik7YmYoInJnIiwxKSgidmFsdWUiLG51bGw9PXQuaHNsYVRleHQ/bnVsbDp0LmhzbGFUZXh0LmEpfX1mdW5jdGlvbiBpNSh0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO0NmKDAsImRpdiIsNDEpLENmKDEsImRpdiIsMzApLENmKDIsImlucHV0IiwzMSksUmYoImtleXVwLmVudGVyIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtyZXR1cm4gemYoKS5vbkFjY2VwdENvbG9yKG4pfSkpKCJuZXdWYWx1ZSIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKCkub25WYWx1ZUlucHV0KG4pfSkpLE1mKCksSG0oMyxvNSwxLDIsImlucHV0IiwzMiksTWYoKSxDZig0LCJkaXYiLDMwKSxDZig1LCJkaXYiKSxQdSg2LCJWIiksTWYoKSxDZig3LCJkaXYiKSxQdSg4LCJBIiksTWYoKSxNZigpLE1mKCl9aWYoMiZ0KXtjb25zdCB0PXpmKCk7RGMoMiksYmYoInJnIiwxMDApKCJ2YWx1ZSIsbnVsbD09dC5oc2xhVGV4dD9udWxsOnQuaHNsYVRleHQubCksRGMoMSksYmYoIm5nSWYiLCJkaXNhYmxlZCIhPT10LmNwQWxwaGFDaGFubmVsKX19ZnVuY3Rpb24gYTUodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJkaXYiLDQyKSxDZigxLCJzcGFuIiw0MyksUmYoImNsaWNrIiwoZnVuY3Rpb24gZSgpe1BpKHQpO3JldHVybiB6ZigpLm9uRm9ybWF0VG9nZ2xlKC0xKX0pKSxNZigpLENmKDIsInNwYW4iLDQzKSxSZigiY2xpY2siLChmdW5jdGlvbiBlKCl7UGkodCk7cmV0dXJuIHpmKCkub25Gb3JtYXRUb2dnbGUoMSl9KSksTWYoKSxNZigpfX1mdW5jdGlvbiByNSh0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO0NmKDAsInNwYW4iLDUwKSxSZigiY2xpY2siLChmdW5jdGlvbiBlKG4pe1BpKHQpO2NvbnN0IG89emYoKS4kaW1wbGljaXQ7cmV0dXJuIHpmKDMpLm9uUmVtb3ZlUHJlc2V0Q29sb3IobixvKX0pKSxNZigpfWlmKDImdCl7bXUoemYoNCkuY3BSZW1vdmVDb2xvckJ1dHRvbkNsYXNzKX19ZnVuY3Rpb24gczUodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJkaXYiLDQ4KSxSZigiY2xpY2siLChmdW5jdGlvbiBlKCl7Y29uc3Qgbj1QaSh0KS4kaW1wbGljaXQ7cmV0dXJuIHpmKDMpLnNldENvbG9yRnJvbVN0cmluZyhuKX0pKSxIbSgxLHI1LDEsMywic3BhbiIsNDkpLE1mKCl9aWYoMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49emYoMyk7bHUoImJhY2tncm91bmQtY29sb3IiLHQpLERjKDEpLGJmKCJuZ0lmIixuLmNwQWRkQ29sb3JCdXR0b24pfX1mdW5jdGlvbiBsNSh0LGUpe2lmKDEmdCYmKENmKDAsImRpdiIpLEhtKDEsczUsMiwzLCJkaXYiLDQ3KSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoMik7bXUodC5jcFByZXNldENvbG9yc0NsYXNzKSxEYygxKSxiZigibmdGb3JPZiIsdC5jcFByZXNldENvbG9ycyl9fWZ1bmN0aW9uIGM1KHQsZSl7aWYoMSZ0JiYoQ2YoMCwiZGl2IiksUHUoMSksTWYoKSksMiZ0KXtjb25zdCB0PXpmKDIpO211KHQuY3BQcmVzZXRFbXB0eU1lc3NhZ2VDbGFzcyksRGMoMSksd3UodC5jcFByZXNldEVtcHR5TWVzc2FnZSl9fWZ1bmN0aW9uIGQ1KHQsZSl7aWYoMSZ0JiYoQ2YoMCwiZGl2Iiw0NCksdmYoMSwiaHIiKSxDZigyLCJkaXYiLDQ1KSxQdSgzKSxNZigpLEhtKDQsbDUsMiw0LCJkaXYiLDQ2KSxIbSg1LGM1LDIsNCwiZGl2Iiw0NiksTWYoKSksMiZ0KXtjb25zdCB0PXpmKCk7RGMoMyksd3UodC5jcFByZXNldExhYmVsKSxEYygxKSxiZigibmdJZiIsbnVsbD09dC5jcFByZXNldENvbG9ycz9udWxsOnQuY3BQcmVzZXRDb2xvcnMubGVuZ3RoKSxEYygxKSxiZigibmdJZiIsIShudWxsIT10LmNwUHJlc2V0Q29sb3JzJiZ0LmNwUHJlc2V0Q29sb3JzLmxlbmd0aCkmJnQuY3BBZGRDb2xvckJ1dHRvbil9fWZ1bmN0aW9uIHA1KHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwiYnV0dG9uIiw1MyksUmYoImNsaWNrIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtyZXR1cm4gemYoMikub25DYW5jZWxDb2xvcihuKX0pKSxQdSgxKSxNZigpfWlmKDImdCl7Y29uc3QgdD16ZigyKTttdSh0LmNwQ2FuY2VsQnV0dG9uQ2xhc3MpLERjKDEpLHd1KHQuY3BDYW5jZWxCdXR0b25UZXh0KX19ZnVuY3Rpb24gbTUodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJidXR0b24iLDUzKSxSZigiY2xpY2siLChmdW5jdGlvbiBlKG4pe1BpKHQpO3JldHVybiB6ZigyKS5vbkFjY2VwdENvbG9yKG4pfSkpLFB1KDEpLE1mKCl9aWYoMiZ0KXtjb25zdCB0PXpmKDIpO211KHQuY3BPS0J1dHRvbkNsYXNzKSxEYygxKSx3dSh0LmNwT0tCdXR0b25UZXh0KX19ZnVuY3Rpb24gZjUodCxlKXtpZigxJnQmJihDZigwLCJkaXYiLDUxKSxIbSgxLHA1LDIsNCwiYnV0dG9uIiw1MiksSG0oMixtNSwyLDQsImJ1dHRvbiIsNTIpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigpO0RjKDEpLGJmKCJuZ0lmIix0LmNwQ2FuY2VsQnV0dG9uKSxEYygxKSxiZigibmdJZiIsdC5jcE9LQnV0dG9uKX19dmFyIHU1OyEoZnVuY3Rpb24odCl7dFt0LkhFWD0wXT0iSEVYIix0W3QuUkdCQT0xXT0iUkdCQSIsdFt0LkhTTEE9Ml09IkhTTEEiLHRbdC5DTVlLPTNdPSJDTVlLIn0pKHU1fHwodTU9e30pKTtjbGFzcyBnNXtjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLnI9dCx0aGlzLmc9ZSx0aGlzLmI9bix0aGlzLmE9b319Y2xhc3MgaDV7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5oPXQsdGhpcy5zPWUsdGhpcy52PW4sdGhpcy5hPW99fWNsYXNzIGI1e2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMuaD10LHRoaXMucz1lLHRoaXMubD1uLHRoaXMuYT1vfX1jbGFzcyB5NXtjb25zdHJ1Y3Rvcih0LGUsbixvLGk9MSl7dGhpcy5jPXQsdGhpcy5tPWUsdGhpcy55PW4sdGhpcy5rPW8sdGhpcy5hPWl9fWNsYXNzIF81e2NvbnN0cnVjdG9yKCl7dGhpcy5uZXdWYWx1ZT1uZXcgU3l9aW5wdXRDaGFuZ2UodCl7Y29uc3QgZT10LnRhcmdldC52YWx1ZTtpZih2b2lkIDA9PT10aGlzLnJnKXRoaXMubmV3VmFsdWUuZW1pdChlKTtlbHNle2NvbnN0IHQ9cGFyc2VGbG9hdChlKTt0aGlzLm5ld1ZhbHVlLmVtaXQoe3Y6dCxyZzp0aGlzLnJnfSl9fX1fNS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8XzUpfSxfNS7JtWRpcj1obyh7dHlwZTpfNSxzZWxlY3RvcnM6W1siIiwidGV4dCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmUmYoImlucHV0IiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5pbnB1dENoYW5nZShlKX0pKX0saW5wdXRzOntyZzoicmciLHRleHQ6InRleHQifSxvdXRwdXRzOntuZXdWYWx1ZToibmV3VmFsdWUifX0pLF81LnByb3BEZWNvcmF0b3JzPXtyZzpbe3R5cGU6Ul99XSx0ZXh0Olt7dHlwZTpSX31dLG5ld1ZhbHVlOlt7dHlwZTpFX31dLGlucHV0Q2hhbmdlOlt7dHlwZTpUXyxhcmdzOlsiaW5wdXQiLFsiJGV2ZW50Il1dfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoXzUsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW3RleHRdIn1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW119KSx7bmV3VmFsdWU6W3t0eXBlOkVffV0saW5wdXRDaGFuZ2U6W3t0eXBlOlRfLGFyZ3M6WyJpbnB1dCIsWyIkZXZlbnQiXV19XSxyZzpbe3R5cGU6Ul99XSx0ZXh0Olt7dHlwZTpSX31dfSk7Y2xhc3MgQzV7Y29uc3RydWN0b3IodCl7dGhpcy5lbFJlZj10LHRoaXMuZHJhZ0VuZD1uZXcgU3ksdGhpcy5kcmFnU3RhcnQ9bmV3IFN5LHRoaXMubmV3VmFsdWU9bmV3IFN5LHRoaXMubGlzdGVuZXJNb3ZlPXQ9PnRoaXMubW92ZSh0KSx0aGlzLmxpc3RlbmVyU3RvcD0oKT0+dGhpcy5zdG9wKCl9bW91c2VEb3duKHQpe3RoaXMuc3RhcnQodCl9dG91Y2hTdGFydCh0KXt0aGlzLnN0YXJ0KHQpfW1vdmUodCl7dC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2V0Q3Vyc29yKHQpfXN0YXJ0KHQpe3RoaXMuc2V0Q3Vyc29yKHQpLHQuc3RvcFByb3BhZ2F0aW9uKCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5saXN0ZW5lclN0b3ApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLmxpc3RlbmVyU3RvcCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmxpc3RlbmVyTW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLmxpc3RlbmVyTW92ZSksdGhpcy5kcmFnU3RhcnQuZW1pdCgpfXN0b3AoKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmxpc3RlbmVyU3RvcCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMubGlzdGVuZXJTdG9wKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMubGlzdGVuZXJNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMubGlzdGVuZXJNb3ZlKSx0aGlzLmRyYWdFbmQuZW1pdCgpfWdldFgodCl7Y29uc3QgZT10aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuKHZvaWQgMCE9PXQucGFnZVg/dC5wYWdlWDp0LnRvdWNoZXNbMF0ucGFnZVgpLWUubGVmdC13aW5kb3cucGFnZVhPZmZzZXR9Z2V0WSh0KXtjb25zdCBlPXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4odm9pZCAwIT09dC5wYWdlWT90LnBhZ2VZOnQudG91Y2hlc1swXS5wYWdlWSktZS50b3Atd2luZG93LnBhZ2VZT2Zmc2V0fXNldEN1cnNvcih0KXtjb25zdCBlPXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCxuPXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQsbz1NYXRoLm1heCgwLE1hdGgubWluKHRoaXMuZ2V0WCh0KSxlKSksaT1NYXRoLm1heCgwLE1hdGgubWluKHRoaXMuZ2V0WSh0KSxuKSk7dm9pZCAwIT09dGhpcy5yZ1gmJnZvaWQgMCE9PXRoaXMucmdZP3RoaXMubmV3VmFsdWUuZW1pdCh7czpvL2UsdjoxLWkvbixyZ1g6dGhpcy5yZ1gscmdZOnRoaXMucmdZfSk6dm9pZCAwPT09dGhpcy5yZ1gmJnZvaWQgMCE9PXRoaXMucmdZP3RoaXMubmV3VmFsdWUuZW1pdCh7djppL24scmdZOnRoaXMucmdZfSk6dm9pZCAwIT09dGhpcy5yZ1gmJnZvaWQgMD09PXRoaXMucmdZJiZ0aGlzLm5ld1ZhbHVlLmVtaXQoe3Y6by9lLHJnWDp0aGlzLnJnWH0pfX1DNS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8QzUpKGdmKEtoKSl9LEM1Lsm1ZGlyPWhvKHt0eXBlOkM1LHNlbGVjdG9yczpbWyIiLCJzbGlkZXIiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlJmKCJtb3VzZWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm1vdXNlRG93bihlKX0pKSgidG91Y2hzdGFydCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4udG91Y2hTdGFydChlKX0pKX0saW5wdXRzOntyZ1g6InJnWCIscmdZOiJyZ1kiLHNsaWRlcjoic2xpZGVyIn0sb3V0cHV0czp7ZHJhZ0VuZDoiZHJhZ0VuZCIsZHJhZ1N0YXJ0OiJkcmFnU3RhcnQiLG5ld1ZhbHVlOiJuZXdWYWx1ZSJ9fSksQzUuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpLaH1dLEM1LnByb3BEZWNvcmF0b3JzPXtyZ1g6W3t0eXBlOlJffV0scmdZOlt7dHlwZTpSX31dLHNsaWRlcjpbe3R5cGU6Ul99XSxkcmFnRW5kOlt7dHlwZTpFX31dLGRyYWdTdGFydDpbe3R5cGU6RV99XSxuZXdWYWx1ZTpbe3R5cGU6RV99XSxtb3VzZURvd246W3t0eXBlOlRfLGFyZ3M6WyJtb3VzZWRvd24iLFsiJGV2ZW50Il1dfV0sdG91Y2hTdGFydDpbe3R5cGU6VF8sYXJnczpbInRvdWNoc3RhcnQiLFsiJGV2ZW50Il1dfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoQzUsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiW3NsaWRlcl0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6S2h9XX0pLHtkcmFnRW5kOlt7dHlwZTpFX31dLGRyYWdTdGFydDpbe3R5cGU6RV99XSxuZXdWYWx1ZTpbe3R5cGU6RV99XSxtb3VzZURvd246W3t0eXBlOlRfLGFyZ3M6WyJtb3VzZWRvd24iLFsiJGV2ZW50Il1dfV0sdG91Y2hTdGFydDpbe3R5cGU6VF8sYXJnczpbInRvdWNoc3RhcnQiLFsiJGV2ZW50Il1dfV0scmdYOlt7dHlwZTpSX31dLHJnWTpbe3R5cGU6Ul99XSxzbGlkZXI6W3t0eXBlOlJffV19KTtjbGFzcyBNNXtjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLmg9dCx0aGlzLnM9ZSx0aGlzLnY9bix0aGlzLmE9b319Y2xhc3MgdjV7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5oPXQsdGhpcy5zPWUsdGhpcy52PW4sdGhpcy5hPW99fWNsYXNzIHg1e2NvbnN0cnVjdG9yKCl7dGhpcy5hY3RpdmU9bnVsbH1zZXRBY3RpdmUodCl7dGhpcy5hY3RpdmUmJnRoaXMuYWN0aXZlIT09dCYmImlubGluZSIhPT10aGlzLmFjdGl2ZS5jcERpYWxvZ0Rpc3BsYXkmJnRoaXMuYWN0aXZlLmNsb3NlRGlhbG9nKCksdGhpcy5hY3RpdmU9dH1oc3ZhMmhzbGEodCl7Y29uc3QgZT10Lmgsbj10LnMsbz10LnYsaT10LmE7aWYoMD09PW8pcmV0dXJuIG5ldyBiNShlLDAsMCxpKTtpZigwPT09biYmMT09PW8pcmV0dXJuIG5ldyBiNShlLDEsMSxpKTt7Y29uc3QgdD1vKigyLW4pLzI7cmV0dXJuIG5ldyBiNShlLG8qbi8oMS1NYXRoLmFicygyKnQtMSkpLHQsaSl9fWhzbGEyaHN2YSh0KXtjb25zdCBlPU1hdGgubWluKHQuaCwxKSxuPU1hdGgubWluKHQucywxKSxvPU1hdGgubWluKHQubCwxKSxpPU1hdGgubWluKHQuYSwxKTtpZigwPT09bylyZXR1cm4gbmV3IGg1KGUsMCwwLGkpO3tjb25zdCB0PW8rbiooMS1NYXRoLmFicygyKm8tMSkpLzI7cmV0dXJuIG5ldyBoNShlLDIqKHQtbykvdCx0LGkpfX1oc3ZhVG9SZ2JhKHQpe2xldCBlLG4sbztjb25zdCBpPXQuaCxhPXQucyxyPXQudixzPXQuYSxsPU1hdGguZmxvb3IoNippKSxjPTYqaS1sLGQ9ciooMS1hKSxwPXIqKDEtYyphKSxtPXIqKDEtKDEtYykqYSk7c3dpdGNoKGwlNil7Y2FzZSAwOmU9cixuPW0sbz1kO2JyZWFrO2Nhc2UgMTplPXAsbj1yLG89ZDticmVhaztjYXNlIDI6ZT1kLG49cixvPW07YnJlYWs7Y2FzZSAzOmU9ZCxuPXAsbz1yO2JyZWFrO2Nhc2UgNDplPW0sbj1kLG89cjticmVhaztjYXNlIDU6ZT1yLG49ZCxvPXA7YnJlYWs7ZGVmYXVsdDplPTAsbj0wLG89MH1yZXR1cm4gbmV3IGc1KGUsbixvLHMpfWNteWtUb1JnYih0KXtyZXR1cm4gbmV3IGc1KCgxLXQuYykqKDEtdC5rKSwoMS10Lm0pKigxLXQuayksKDEtdC55KSooMS10LmspLHQuYSl9cmdiYVRvQ215ayh0KXtjb25zdCBlPTEtTWF0aC5tYXgodC5yLHQuZyx0LmIpO2lmKDE9PT1lKXJldHVybiBuZXcgeTUoMCwwLDAsMSx0LmEpO3JldHVybiBuZXcgeTUoKDEtdC5yLWUpLygxLWUpLCgxLXQuZy1lKS8oMS1lKSwoMS10LmItZSkvKDEtZSksZSx0LmEpfXJnYmFUb0hzdmEodCl7bGV0IGUsbjtjb25zdCBvPU1hdGgubWluKHQuciwxKSxpPU1hdGgubWluKHQuZywxKSxhPU1hdGgubWluKHQuYiwxKSxyPU1hdGgubWluKHQuYSwxKSxzPU1hdGgubWF4KG8saSxhKSxsPU1hdGgubWluKG8saSxhKSxjPXMsZD1zLWw7aWYobj0wPT09cz8wOmQvcyxzPT09bCllPTA7ZWxzZXtzd2l0Y2gocyl7Y2FzZSBvOmU9KGktYSkvZCsoaTxhPzY6MCk7YnJlYWs7Y2FzZSBpOmU9KGEtbykvZCsyO2JyZWFrO2Nhc2UgYTplPShvLWkpL2QrNDticmVhaztkZWZhdWx0OmU9MH1lLz02fXJldHVybiBuZXcgaDUoZSxuLGMscil9cmdiYVRvSGV4KHQsZSl7bGV0IG49IiMiKygxPDwyNHx0LnI8PDE2fHQuZzw8OHx0LmIpLnRvU3RyaW5nKDE2KS5zdWJzdHIoMSk7cmV0dXJuIGUmJihuKz0oMjU2fE1hdGgucm91bmQoMjU1KnQuYSkpLnRvU3RyaW5nKDE2KS5zdWJzdHIoMSkpLG59bm9ybWFsaXplQ01ZSyh0KXtyZXR1cm4gbmV3IHk1KHQuYy8xMDAsdC5tLzEwMCx0LnkvMTAwLHQuay8xMDAsdC5hKX1kZW5vcm1hbGl6ZUNNWUsodCl7cmV0dXJuIG5ldyB5NShNYXRoLmZsb29yKDEwMCp0LmMpLE1hdGguZmxvb3IoMTAwKnQubSksTWF0aC5mbG9vcigxMDAqdC55KSxNYXRoLmZsb29yKDEwMCp0LmspLHQuYSl9ZGVub3JtYWxpemVSR0JBKHQpe3JldHVybiBuZXcgZzUoTWF0aC5yb3VuZCgyNTUqdC5yKSxNYXRoLnJvdW5kKDI1NSp0LmcpLE1hdGgucm91bmQoMjU1KnQuYiksdC5hKX1zdHJpbmdUb0hzdmEodD0iIixlPSExKXtsZXQgbj1udWxsO3Q9KHR8fCIiKS50b0xvd2VyQ2FzZSgpO2NvbnN0IG89W3tyZTovKHJnYilhP1woXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKiU/LFxzKihcZHsxLDN9KVxzKiU/KD86LFxzKihcZCsoPzpcLlxkKyk/KVxzKik/XCkvLHBhcnNlOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgZzUocGFyc2VJbnQodFsyXSwxMCkvMjU1LHBhcnNlSW50KHRbM10sMTApLzI1NSxwYXJzZUludCh0WzRdLDEwKS8yNTUsaXNOYU4ocGFyc2VGbG9hdCh0WzVdKSk/MTpwYXJzZUZsb2F0KHRbNV0pKX19LHtyZTovKGhzbClhP1woXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KSVccyosXHMqKFxkezEsM30pJVxzKig/OixccyooXGQrKD86XC5cZCspPylccyopP1wpLyxwYXJzZTpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGI1KHBhcnNlSW50KHRbMl0sMTApLzM2MCxwYXJzZUludCh0WzNdLDEwKS8xMDAscGFyc2VJbnQodFs0XSwxMCkvMTAwLGlzTmFOKHBhcnNlRmxvYXQodFs1XSkpPzE6cGFyc2VGbG9hdCh0WzVdKSl9fV07by5wdXNoKGU/e3JlOi8jKFthLWZBLUYwLTldezJ9KShbYS1mQS1GMC05XXsyfSkoW2EtZkEtRjAtOV17Mn0pKFthLWZBLUYwLTldezJ9KT8kLyxwYXJzZTpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGc1KHBhcnNlSW50KHRbMV0sMTYpLzI1NSxwYXJzZUludCh0WzJdLDE2KS8yNTUscGFyc2VJbnQodFszXSwxNikvMjU1LHBhcnNlSW50KHRbNF18fCJGRiIsMTYpLzI1NSl9fTp7cmU6LyMoW2EtZkEtRjAtOV17Mn0pKFthLWZBLUYwLTldezJ9KShbYS1mQS1GMC05XXsyfSkkLyxwYXJzZTpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGc1KHBhcnNlSW50KHRbMV0sMTYpLzI1NSxwYXJzZUludCh0WzJdLDE2KS8yNTUscGFyc2VJbnQodFszXSwxNikvMjU1LDEpfX0pLG8ucHVzaCh7cmU6LyMoW2EtZkEtRjAtOV0pKFthLWZBLUYwLTldKShbYS1mQS1GMC05XSkkLyxwYXJzZTpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGc1KHBhcnNlSW50KHRbMV0rdFsxXSwxNikvMjU1LHBhcnNlSW50KHRbMl0rdFsyXSwxNikvMjU1LHBhcnNlSW50KHRbM10rdFszXSwxNikvMjU1LDEpfX0pO2Zvcihjb25zdCBlIGluIG8paWYoby5oYXNPd25Qcm9wZXJ0eShlKSl7Y29uc3QgaT1vW2VdLGE9aS5yZS5leGVjKHQpLHI9YSYmaS5wYXJzZShhKTtpZihyKXJldHVybiByIGluc3RhbmNlb2YgZzU/bj10aGlzLnJnYmFUb0hzdmEocik6ciBpbnN0YW5jZW9mIGI1JiYobj10aGlzLmhzbGEyaHN2YShyKSksbn1yZXR1cm4gbn1vdXRwdXRGb3JtYXQodCxlLG4pe3N3aXRjaCgiYXV0byI9PT1lJiYoZT10LmE8MT8icmdiYSI6ImhleCIpLGUpe2Nhc2UiaHNsYSI6Y29uc3QgZT10aGlzLmhzdmEyaHNsYSh0KSxvPW5ldyBiNShNYXRoLnJvdW5kKDM2MCplLmgpLE1hdGgucm91bmQoMTAwKmUucyksTWF0aC5yb3VuZCgxMDAqZS5sKSxNYXRoLnJvdW5kKDEwMCplLmEpLzEwMCk7cmV0dXJuIHQuYTwxfHwiYWx3YXlzIj09PW4/ImhzbGEoIitvLmgrIiwiK28ucysiJSwiK28ubCsiJSwiK28uYSsiKSI6ImhzbCgiK28uaCsiLCIrby5zKyIlLCIrby5sKyIlKSI7Y2FzZSJyZ2JhIjpjb25zdCBpPXRoaXMuZGVub3JtYWxpemVSR0JBKHRoaXMuaHN2YVRvUmdiYSh0KSk7cmV0dXJuIHQuYTwxfHwiYWx3YXlzIj09PW4/InJnYmEoIitpLnIrIiwiK2kuZysiLCIraS5iKyIsIitNYXRoLnJvdW5kKDEwMCppLmEpLzEwMCsiKSI6InJnYigiK2kucisiLCIraS5nKyIsIitpLmIrIikiO2RlZmF1bHQ6Y29uc3QgYT0iYWx3YXlzIj09PW58fCJmb3JjZWQiPT09bjtyZXR1cm4gdGhpcy5yZ2JhVG9IZXgodGhpcy5kZW5vcm1hbGl6ZVJHQkEodGhpcy5oc3ZhVG9SZ2JhKHQpKSxhKX19fXg1Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx4NSl9LHg1Lsm1cHJvdj1Tbih7dG9rZW46eDUsZmFjdG9yeTp4NS7JtWZhY30pLHg1LmN0b3JQYXJhbWV0ZXJzPSgpPT5bXSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHg1LFt7dHlwZTpVbX1dLChmdW5jdGlvbigpe3JldHVybltdfSksbnVsbCk7Y2xhc3MgTzV7Y29uc3RydWN0b3IodCxlLG4pe3RoaXMuZWxSZWY9dCx0aGlzLmNkUmVmPWUsdGhpcy5zZXJ2aWNlPW4sdGhpcy5pc0lFMTA9ITEsdGhpcy5kaWFsb2dBcnJvd1NpemU9MTAsdGhpcy5kaWFsb2dBcnJvd09mZnNldD0xNSx0aGlzLmRpYWxvZ0lucHV0RmllbGRzPVt1NS5IRVgsdTUuUkdCQSx1NS5IU0xBLHU1LkNNWUtdLHRoaXMudXNlUm9vdFZpZXdDb250YWluZXI9ITF9aGFuZGxlRXNjKHQpe3RoaXMuc2hvdyYmInBvcHVwIj09PXRoaXMuY3BEaWFsb2dEaXNwbGF5JiZ0aGlzLm9uQ2FuY2VsQ29sb3IodCl9aGFuZGxlRW50ZXIodCl7dGhpcy5zaG93JiYicG9wdXAiPT09dGhpcy5jcERpYWxvZ0Rpc3BsYXkmJnRoaXMub25BY2NlcHRDb2xvcih0KX1uZ09uSW5pdCgpe3RoaXMuc2xpZGVyPW5ldyBNNSgwLDAsMCwwKTt0aGlzLnNsaWRlckRpbU1heD1uZXcgdjUodGhpcy5odWVTbGlkZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aHx8MTQwLHRoaXMuY3BXaWR0aCwxMzAsdGhpcy5hbHBoYVNsaWRlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRofHwxNDApLHRoaXMuZm9ybWF0PXRoaXMuY3BDbXlrRW5hYmxlZD91NS5DTVlLOiJyZ2JhIj09PXRoaXMuY3BPdXRwdXRGb3JtYXQ/dTUuUkdCQToiaHNsYSI9PT10aGlzLmNwT3V0cHV0Rm9ybWF0P3U1LkhTTEE6dTUuSEVYLHRoaXMubGlzdGVuZXJNb3VzZURvd249dD0+e3RoaXMub25Nb3VzZURvd24odCl9LHRoaXMubGlzdGVuZXJSZXNpemU9KCk9Pnt0aGlzLm9uUmVzaXplKCl9LHRoaXMub3BlbkRpYWxvZyh0aGlzLmluaXRpYWxDb2xvciwhMSl9bmdPbkRlc3Ryb3koKXt0aGlzLmNsb3NlRGlhbG9nKCl9bmdBZnRlclZpZXdJbml0KCl7aWYoMjMwIT09dGhpcy5jcFdpZHRofHwiaW5saW5lIj09PXRoaXMuY3BEaWFsb2dEaXNwbGF5KXt0aGlzLnNsaWRlckRpbU1heD1uZXcgdjUodGhpcy5odWVTbGlkZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aHx8MTQwLHRoaXMuY3BXaWR0aCwxMzAsdGhpcy5hbHBoYVNsaWRlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRofHwxNDApLHRoaXMudXBkYXRlQ29sb3JQaWNrZXIoITEpLHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpfX1vcGVuRGlhbG9nKHQsZT0hMCl7dGhpcy5zZXJ2aWNlLnNldEFjdGl2ZSh0aGlzKSx0aGlzLndpZHRofHwodGhpcy5jcFdpZHRoPXRoaXMuZGlyZWN0aXZlRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKSx0aGlzLmhlaWdodHx8KHRoaXMuaGVpZ2h0PTMyMCksdGhpcy5zZXRJbml0aWFsQ29sb3IodCksdGhpcy5zZXRDb2xvckZyb21TdHJpbmcodCxlKSx0aGlzLm9wZW5Db2xvclBpY2tlcigpfWNsb3NlRGlhbG9nKCl7dGhpcy5jbG9zZUNvbG9yUGlja2VyKCl9c2V0dXBEaWFsb2codCxlLG4sbyxpLGEscixzLGwsYyxkLHAsbSxmLHUsZyxoLGIseSxfLEMsTSx2LHgsTyxQLHcsayxTLEQsUixFLEEsVCxOLHope3RoaXMuc2V0SW5pdGlhbENvbG9yKG4pLHRoaXMuc2V0Q29sb3JNb2RlKHMpLHRoaXMuaXNJRTEwPTEwPT09KGZ1bmN0aW9uIEkoKXtsZXQgdD0iIjsidW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmKHQ9bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKTtjb25zdCBlPXQuaW5kZXhPZigibXNpZSAiKTtyZXR1cm4gZT4wJiZwYXJzZUludCh0LnN1YnN0cmluZyhlKzUsdC5pbmRleE9mKCIuIixlKSksMTApfSkoKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlPXQsdGhpcy5kaXJlY3RpdmVFbGVtZW50UmVmPWUsdGhpcy5jcERpc2FibGVJbnB1dD1wLHRoaXMuY3BDbXlrRW5hYmxlZD1sLHRoaXMuY3BBbHBoYUNoYW5uZWw9Yyx0aGlzLmNwT3V0cHV0Rm9ybWF0PWQsdGhpcy5jcERpYWxvZ0Rpc3BsYXk9YSx0aGlzLmNwSWdub3JlZEVsZW1lbnRzPW0sdGhpcy5jcFNhdmVDbGlja091dHNpZGU9Zix0aGlzLmNwQ2xvc2VDbGlja091dHNpZGU9dSx0aGlzLnVzZVJvb3RWaWV3Q29udGFpbmVyPWcsdGhpcy53aWR0aD10aGlzLmNwV2lkdGg9cGFyc2VJbnQobywxMCksdGhpcy5oZWlnaHQ9dGhpcy5jcEhlaWdodD1wYXJzZUludChpLDEwKSx0aGlzLmNwUG9zaXRpb249aCx0aGlzLmNwUG9zaXRpb25PZmZzZXQ9cGFyc2VJbnQoYiwxMCksdGhpcy5jcE9LQnV0dG9uPVAsdGhpcy5jcE9LQnV0dG9uVGV4dD1rLHRoaXMuY3BPS0J1dHRvbkNsYXNzPXcsdGhpcy5jcENhbmNlbEJ1dHRvbj1TLHRoaXMuY3BDYW5jZWxCdXR0b25UZXh0PVIsdGhpcy5jcENhbmNlbEJ1dHRvbkNsYXNzPUQsdGhpcy5mYWxsYmFja0NvbG9yPXJ8fCIjZmZmIix0aGlzLnNldFByZXNldENvbmZpZyhfLEMpLHRoaXMuY3BQcmVzZXRDb2xvcnNDbGFzcz1NLHRoaXMuY3BNYXhQcmVzZXRDb2xvcnNMZW5ndGg9dix0aGlzLmNwUHJlc2V0RW1wdHlNZXNzYWdlPXgsdGhpcy5jcFByZXNldEVtcHR5TWVzc2FnZUNsYXNzPU8sdGhpcy5jcEFkZENvbG9yQnV0dG9uPUUsdGhpcy5jcEFkZENvbG9yQnV0dG9uVGV4dD1ULHRoaXMuY3BBZGRDb2xvckJ1dHRvbkNsYXNzPUEsdGhpcy5jcFJlbW92ZUNvbG9yQnV0dG9uQ2xhc3M9Tix0aGlzLmNwVHJpZ2dlckVsZW1lbnQ9eix5fHwodGhpcy5kaWFsb2dBcnJvd09mZnNldD0wKSwiaW5saW5lIj09PWEmJih0aGlzLmRpYWxvZ0Fycm93U2l6ZT0wLHRoaXMuZGlhbG9nQXJyb3dPZmZzZXQ9MCksImhleCI9PT1kJiYiYWx3YXlzIiE9PWMmJiJmb3JjZWQiIT09YyYmKHRoaXMuY3BBbHBoYUNoYW5uZWw9ImRpc2FibGVkIil9c2V0Q29sb3JNb2RlKHQpe3N3aXRjaCh0LnRvU3RyaW5nKCkudG9VcHBlckNhc2UoKSl7Y2FzZSIxIjpjYXNlIkMiOmNhc2UiQ09MT1IiOnRoaXMuY3BDb2xvck1vZGU9MTticmVhaztjYXNlIjIiOmNhc2UiRyI6Y2FzZSJHUkFZU0NBTEUiOnRoaXMuY3BDb2xvck1vZGU9MjticmVhaztjYXNlIjMiOmNhc2UiUCI6Y2FzZSJQUkVTRVRTIjp0aGlzLmNwQ29sb3JNb2RlPTM7YnJlYWs7ZGVmYXVsdDp0aGlzLmNwQ29sb3JNb2RlPTF9fXNldEluaXRpYWxDb2xvcih0KXt0aGlzLmluaXRpYWxDb2xvcj10fXNldFByZXNldENvbmZpZyh0LGUpe3RoaXMuY3BQcmVzZXRMYWJlbD10LHRoaXMuY3BQcmVzZXRDb2xvcnM9ZX1zZXRDb2xvckZyb21TdHJpbmcodCxlPSEwLG49ITApe2xldCBvOyJhbHdheXMiPT09dGhpcy5jcEFscGhhQ2hhbm5lbHx8ImZvcmNlZCI9PT10aGlzLmNwQWxwaGFDaGFubmVsPyhvPXRoaXMuc2VydmljZS5zdHJpbmdUb0hzdmEodCwhMCksb3x8dGhpcy5oc3ZhfHwobz10aGlzLnNlcnZpY2Uuc3RyaW5nVG9Ic3ZhKHQsITEpKSk6bz10aGlzLnNlcnZpY2Uuc3RyaW5nVG9Ic3ZhKHQsITEpLG98fHRoaXMuaHN2YXx8KG89dGhpcy5zZXJ2aWNlLnN0cmluZ1RvSHN2YSh0aGlzLmZhbGxiYWNrQ29sb3IsITEpKSxvJiYodGhpcy5oc3ZhPW8sdGhpcy5zbGlkZXJIPXRoaXMuaHN2YS5oLCJoZXgiPT09dGhpcy5jcE91dHB1dEZvcm1hdCYmImRpc2FibGVkIj09PXRoaXMuY3BBbHBoYUNoYW5uZWwmJih0aGlzLmhzdmEuYT0xKSx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKGUsbikpfW9uUmVzaXplKCl7ImZpeGVkIj09PXRoaXMucG9zaXRpb24/dGhpcy5zZXREaWFsb2dQb3NpdGlvbigpOiJpbmxpbmUiIT09dGhpcy5jcERpYWxvZ0Rpc3BsYXkmJnRoaXMuY2xvc2VDb2xvclBpY2tlcigpfW9uRHJhZ0VuZCh0KXt0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLnNsaWRlckRyYWdFbmQoe3NsaWRlcjp0LGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vbkRyYWdTdGFydCh0KXt0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLnNsaWRlckRyYWdTdGFydCh7c2xpZGVyOnQsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pfW9uTW91c2VEb3duKHQpeyF0aGlzLnNob3d8fHRoaXMuaXNJRTEwfHwicG9wdXAiIT09dGhpcy5jcERpYWxvZ0Rpc3BsYXl8fHQudGFyZ2V0PT09dGhpcy5kaXJlY3RpdmVFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnR8fHRoaXMuaXNEZXNjZW5kYW50KHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCx0LnRhcmdldCl8fHRoaXMuaXNEZXNjZW5kYW50KHRoaXMuZGlyZWN0aXZlRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LHQudGFyZ2V0KXx8MCE9PXRoaXMuY3BJZ25vcmVkRWxlbWVudHMuZmlsdGVyKChlPT5lPT09dC50YXJnZXQpKS5sZW5ndGh8fCh0aGlzLmNwU2F2ZUNsaWNrT3V0c2lkZT90aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmNvbG9yU2VsZWN0ZWQodGhpcy5vdXRwdXRDb2xvcik6KHRoaXMuaHN2YT1udWxsLHRoaXMuc2V0Q29sb3JGcm9tU3RyaW5nKHRoaXMuaW5pdGlhbENvbG9yLCExKSx0aGlzLmNwQ215a0VuYWJsZWQmJnRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuY215a0NoYW5nZWQodGhpcy5jbXlrQ29sb3IpLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuY29sb3JDaGFuZ2VkKHRoaXMuaW5pdGlhbENvbG9yKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmNvbG9yQ2FuY2VsZWQoKSksdGhpcy5jcENsb3NlQ2xpY2tPdXRzaWRlJiZ0aGlzLmNsb3NlQ29sb3JQaWNrZXIoKSl9b25BY2NlcHRDb2xvcih0KXt0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMub3V0cHV0Q29sb3ImJnRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuY29sb3JTZWxlY3RlZCh0aGlzLm91dHB1dENvbG9yKSwicG9wdXAiPT09dGhpcy5jcERpYWxvZ0Rpc3BsYXkmJnRoaXMuY2xvc2VDb2xvclBpY2tlcigpfW9uQ2FuY2VsQ29sb3IodCl7dGhpcy5oc3ZhPW51bGwsdC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmNvbG9yQ2FuY2VsZWQoKSx0aGlzLnNldENvbG9yRnJvbVN0cmluZyh0aGlzLmluaXRpYWxDb2xvciwhMCksInBvcHVwIj09PXRoaXMuY3BEaWFsb2dEaXNwbGF5JiYodGhpcy5jcENteWtFbmFibGVkJiZ0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmNteWtDaGFuZ2VkKHRoaXMuY215a0NvbG9yKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmNvbG9yQ2hhbmdlZCh0aGlzLmluaXRpYWxDb2xvciwhMCksdGhpcy5jbG9zZUNvbG9yUGlja2VyKCkpfW9uRm9ybWF0VG9nZ2xlKHQpe2NvbnN0IGU9dGhpcy5kaWFsb2dJbnB1dEZpZWxkcy5sZW5ndGgtKHRoaXMuY3BDbXlrRW5hYmxlZD8wOjEpLG49KCh0aGlzLmRpYWxvZ0lucHV0RmllbGRzLmluZGV4T2YodGhpcy5mb3JtYXQpK3QpJWUrZSklZTt0aGlzLmZvcm1hdD10aGlzLmRpYWxvZ0lucHV0RmllbGRzW25dfW9uQ29sb3JDaGFuZ2UodCl7dGhpcy5oc3ZhLnM9dC5zL3QucmdYLHRoaXMuaHN2YS52PXQudi90LnJnWSx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5zbGlkZXJDaGFuZ2VkKHtzbGlkZXI6ImxpZ2h0bmVzcyIsdmFsdWU6dGhpcy5oc3ZhLnYsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2Uuc2xpZGVyQ2hhbmdlZCh7c2xpZGVyOiJzYXR1cmF0aW9uIix2YWx1ZTp0aGlzLmhzdmEucyxjb2xvcjp0aGlzLm91dHB1dENvbG9yfSl9b25IdWVDaGFuZ2UodCl7dGhpcy5oc3ZhLmg9dC52L3QucmdYLHRoaXMuc2xpZGVySD10aGlzLmhzdmEuaCx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5zbGlkZXJDaGFuZ2VkKHtzbGlkZXI6Imh1ZSIsdmFsdWU6dGhpcy5oc3ZhLmgsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pfW9uVmFsdWVDaGFuZ2UodCl7dGhpcy5oc3ZhLnY9dC52L3QucmdYLHRoaXMudXBkYXRlQ29sb3JQaWNrZXIoKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLnNsaWRlckNoYW5nZWQoe3NsaWRlcjoidmFsdWUiLHZhbHVlOnRoaXMuaHN2YS52LGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vbkFscGhhQ2hhbmdlKHQpe3RoaXMuaHN2YS5hPXQudi90LnJnWCx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5zbGlkZXJDaGFuZ2VkKHtzbGlkZXI6ImFscGhhIix2YWx1ZTp0aGlzLmhzdmEuYSxjb2xvcjp0aGlzLm91dHB1dENvbG9yfSl9b25IZXhJbnB1dCh0KXtpZihudWxsPT09dCl0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCk7ZWxzZXt0JiYiIyIhPT10WzBdJiYodD0iIyIrdCk7bGV0IGU9L14jKFthLWYwLTldezN9fFthLWYwLTldezZ9KSQvZ2k7ImFsd2F5cyI9PT10aGlzLmNwQWxwaGFDaGFubmVsJiYoZT0vXiMoW2EtZjAtOV17M318W2EtZjAtOV17Nn18W2EtZjAtOV17OH0pJC9naSk7Y29uc3Qgbj1lLnRlc3QodCk7biYmKHQubGVuZ3RoPDUmJih0PSIjIit0LnN1YnN0cmluZygxKS5zcGxpdCgiIikubWFwKCh0PT50K3QpKS5qb2luKCIiKSksImZvcmNlZCI9PT10aGlzLmNwQWxwaGFDaGFubmVsJiYodCs9TWF0aC5yb3VuZCgyNTUqdGhpcy5oc3ZhLmEpLnRvU3RyaW5nKDE2KSksdGhpcy5zZXRDb2xvckZyb21TdHJpbmcodCwhMCwhMSkpLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuaW5wdXRDaGFuZ2VkKHtpbnB1dDoiaGV4Iix2YWxpZDpuLHZhbHVlOnQsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pfX1vblJlZElucHV0KHQpe2NvbnN0IGU9dGhpcy5zZXJ2aWNlLmhzdmFUb1JnYmEodGhpcy5oc3ZhKSxuPSFpc05hTih0LnYpJiZ0LnY+PTAmJnQudjw9dC5yZztuJiYoZS5yPXQudi90LnJnLHRoaXMuaHN2YT10aGlzLnNlcnZpY2UucmdiYVRvSHN2YShlKSx0aGlzLnNsaWRlckg9dGhpcy5oc3ZhLmgsdGhpcy51cGRhdGVDb2xvclBpY2tlcigpKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6InJlZCIsdmFsaWQ6bix2YWx1ZTplLnIsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pfW9uQmx1ZUlucHV0KHQpe2NvbnN0IGU9dGhpcy5zZXJ2aWNlLmhzdmFUb1JnYmEodGhpcy5oc3ZhKSxuPSFpc05hTih0LnYpJiZ0LnY+PTAmJnQudjw9dC5yZztuJiYoZS5iPXQudi90LnJnLHRoaXMuaHN2YT10aGlzLnNlcnZpY2UucmdiYVRvSHN2YShlKSx0aGlzLnNsaWRlckg9dGhpcy5oc3ZhLmgsdGhpcy51cGRhdGVDb2xvclBpY2tlcigpKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6ImJsdWUiLHZhbGlkOm4sdmFsdWU6ZS5iLGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vbkdyZWVuSW5wdXQodCl7Y29uc3QgZT10aGlzLnNlcnZpY2UuaHN2YVRvUmdiYSh0aGlzLmhzdmEpLG49IWlzTmFOKHQudikmJnQudj49MCYmdC52PD10LnJnO24mJihlLmc9dC52L3QucmcsdGhpcy5oc3ZhPXRoaXMuc2VydmljZS5yZ2JhVG9Ic3ZhKGUpLHRoaXMuc2xpZGVySD10aGlzLmhzdmEuaCx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCkpLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuaW5wdXRDaGFuZ2VkKHtpbnB1dDoiZ3JlZW4iLHZhbGlkOm4sdmFsdWU6ZS5nLGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vbkh1ZUlucHV0KHQpe2NvbnN0IGU9IWlzTmFOKHQudikmJnQudj49MCYmdC52PD10LnJnO2UmJih0aGlzLmhzdmEuaD10LnYvdC5yZyx0aGlzLnNsaWRlckg9dGhpcy5oc3ZhLmgsdGhpcy51cGRhdGVDb2xvclBpY2tlcigpKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6Imh1ZSIsdmFsaWQ6ZSx2YWx1ZTp0aGlzLmhzdmEuaCxjb2xvcjp0aGlzLm91dHB1dENvbG9yfSl9b25WYWx1ZUlucHV0KHQpe2NvbnN0IGU9IWlzTmFOKHQudikmJnQudj49MCYmdC52PD10LnJnO2UmJih0aGlzLmhzdmEudj10LnYvdC5yZyx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCkpLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuaW5wdXRDaGFuZ2VkKHtpbnB1dDoidmFsdWUiLHZhbGlkOmUsdmFsdWU6dGhpcy5oc3ZhLnYsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pfW9uQWxwaGFJbnB1dCh0KXtjb25zdCBlPSFpc05hTih0LnYpJiZ0LnY+PTAmJnQudjw9dC5yZztlJiYodGhpcy5oc3ZhLmE9dC52L3QucmcsdGhpcy51cGRhdGVDb2xvclBpY2tlcigpKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6ImFscGhhIix2YWxpZDplLHZhbHVlOnRoaXMuaHN2YS5hLGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vbkxpZ2h0bmVzc0lucHV0KHQpe2NvbnN0IGU9dGhpcy5zZXJ2aWNlLmhzdmEyaHNsYSh0aGlzLmhzdmEpLG49IWlzTmFOKHQudikmJnQudj49MCYmdC52PD10LnJnO24mJihlLmw9dC52L3QucmcsdGhpcy5oc3ZhPXRoaXMuc2VydmljZS5oc2xhMmhzdmEoZSksdGhpcy5zbGlkZXJIPXRoaXMuaHN2YS5oLHRoaXMudXBkYXRlQ29sb3JQaWNrZXIoKSksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5pbnB1dENoYW5nZWQoe2lucHV0OiJsaWdodG5lc3MiLHZhbGlkOm4sdmFsdWU6ZS5sLGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vblNhdHVyYXRpb25JbnB1dCh0KXtjb25zdCBlPXRoaXMuc2VydmljZS5oc3ZhMmhzbGEodGhpcy5oc3ZhKSxuPSFpc05hTih0LnYpJiZ0LnY+PTAmJnQudjw9dC5yZztuJiYoZS5zPXQudi90LnJnLHRoaXMuaHN2YT10aGlzLnNlcnZpY2UuaHNsYTJoc3ZhKGUpLHRoaXMuc2xpZGVySD10aGlzLmhzdmEuaCx0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCkpLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2UuaW5wdXRDaGFuZ2VkKHtpbnB1dDoic2F0dXJhdGlvbiIsdmFsaWQ6bix2YWx1ZTplLnMsY29sb3I6dGhpcy5vdXRwdXRDb2xvcn0pfW9uQ3lhbklucHV0KHQpeyFpc05hTih0LnYpJiZ0LnY+PTAmJnQudjw9dC5yZyYmKHRoaXMuY215ay5jPXQudix0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCExLCEwLCEwKSksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5pbnB1dENoYW5nZWQoe2lucHV0OiJjeWFuIix2YWxpZDohMCx2YWx1ZTp0aGlzLmNteWsuYyxjb2xvcjp0aGlzLm91dHB1dENvbG9yfSl9b25NYWdlbnRhSW5wdXQodCl7IWlzTmFOKHQudikmJnQudj49MCYmdC52PD10LnJnJiYodGhpcy5jbXlrLm09dC52LHRoaXMudXBkYXRlQ29sb3JQaWNrZXIoITEsITAsITApKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6Im1hZ2VudGEiLHZhbGlkOiEwLHZhbHVlOnRoaXMuY215ay5tLGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vblllbGxvd0lucHV0KHQpeyFpc05hTih0LnYpJiZ0LnY+PTAmJnQudjw9dC5yZyYmKHRoaXMuY215ay55PXQudix0aGlzLnVwZGF0ZUNvbG9yUGlja2VyKCExLCEwLCEwKSksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5pbnB1dENoYW5nZWQoe2lucHV0OiJ5ZWxsb3ciLHZhbGlkOiEwLHZhbHVlOnRoaXMuY215ay55LGNvbG9yOnRoaXMub3V0cHV0Q29sb3J9KX1vbkJsYWNrSW5wdXQodCl7IWlzTmFOKHQudikmJnQudj49MCYmdC52PD10LnJnJiYodGhpcy5jbXlrLms9dC52LHRoaXMudXBkYXRlQ29sb3JQaWNrZXIoITEsITAsITApKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLmlucHV0Q2hhbmdlZCh7aW5wdXQ6ImJsYWNrIix2YWxpZDohMCx2YWx1ZTp0aGlzLmNteWsuayxjb2xvcjp0aGlzLm91dHB1dENvbG9yfSl9b25BZGRQcmVzZXRDb2xvcih0LGUpe3Quc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jcFByZXNldENvbG9ycy5maWx0ZXIoKHQ9PnQ9PT1lKSkubGVuZ3RofHwodGhpcy5jcFByZXNldENvbG9ycz10aGlzLmNwUHJlc2V0Q29sb3JzLmNvbmNhdChlKSx0aGlzLmRpcmVjdGl2ZUluc3RhbmNlLnByZXNldENvbG9yc0NoYW5nZWQodGhpcy5jcFByZXNldENvbG9ycykpfW9uUmVtb3ZlUHJlc2V0Q29sb3IodCxlKXt0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuY3BQcmVzZXRDb2xvcnM9dGhpcy5jcFByZXNldENvbG9ycy5maWx0ZXIoKHQ9PnQhPT1lKSksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5wcmVzZXRDb2xvcnNDaGFuZ2VkKHRoaXMuY3BQcmVzZXRDb2xvcnMpfW9wZW5Db2xvclBpY2tlcigpe3RoaXMuc2hvd3x8KHRoaXMuc2hvdz0hMCx0aGlzLmhpZGRlbj0hMCxzZXRUaW1lb3V0KCgoKT0+e3RoaXMuaGlkZGVuPSExLHRoaXMuc2V0RGlhbG9nUG9zaXRpb24oKSx0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKX0pLDApLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2Uuc3RhdGVDaGFuZ2VkKCEwKSx0aGlzLmlzSUUxMHx8KGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5saXN0ZW5lck1vdXNlRG93biksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5saXN0ZW5lck1vdXNlRG93bikpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMubGlzdGVuZXJSZXNpemUpKX1jbG9zZUNvbG9yUGlja2VyKCl7dGhpcy5zaG93JiYodGhpcy5zaG93PSExLHRoaXMuZGlyZWN0aXZlSW5zdGFuY2Uuc3RhdGVDaGFuZ2VkKCExKSx0aGlzLmlzSUUxMHx8KGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5saXN0ZW5lck1vdXNlRG93biksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5saXN0ZW5lck1vdXNlRG93bikpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMubGlzdGVuZXJSZXNpemUpLHRoaXMuY2RSZWYuZGVzdHJveWVkfHx0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKSl9dXBkYXRlQ29sb3JQaWNrZXIodD0hMCxlPSEwLG49ITEpe2lmKHRoaXMuc2xpZGVyRGltTWF4KXtsZXQgbyxpLGE7Mj09PXRoaXMuY3BDb2xvck1vZGUmJih0aGlzLmhzdmEucz0wKTtjb25zdCByPXRoaXMub3V0cHV0Q29sb3I7aWYoaT10aGlzLnNlcnZpY2UuaHN2YTJoc2xhKHRoaXMuaHN2YSksdGhpcy5jcENteWtFbmFibGVkPyhuPyhhPXRoaXMuc2VydmljZS5jbXlrVG9SZ2IodGhpcy5zZXJ2aWNlLm5vcm1hbGl6ZUNNWUsodGhpcy5jbXlrKSksdGhpcy5oc3ZhPXRoaXMuc2VydmljZS5yZ2JhVG9Ic3ZhKGEpKTooYT10aGlzLnNlcnZpY2UuaHN2YVRvUmdiYSh0aGlzLmhzdmEpLHRoaXMuY215az10aGlzLnNlcnZpY2UuZGVub3JtYWxpemVDTVlLKHRoaXMuc2VydmljZS5yZ2JhVG9DbXlrKGEpKSksYT10aGlzLnNlcnZpY2UuZGVub3JtYWxpemVSR0JBKGEpLHRoaXMuc2xpZGVySD10aGlzLmhzdmEuaCk6YT10aGlzLnNlcnZpY2UuZGVub3JtYWxpemVSR0JBKHRoaXMuc2VydmljZS5oc3ZhVG9SZ2JhKHRoaXMuaHN2YSkpLG89dGhpcy5zZXJ2aWNlLmRlbm9ybWFsaXplUkdCQSh0aGlzLnNlcnZpY2UuaHN2YVRvUmdiYShuZXcgaDUodGhpcy5zbGlkZXJIfHx0aGlzLmhzdmEuaCwxLDEsMSkpKSxlKXt0aGlzLmhzbGFUZXh0PW5ldyBiNShNYXRoLnJvdW5kKDM2MCppLmgpLE1hdGgucm91bmQoMTAwKmkucyksTWF0aC5yb3VuZCgxMDAqaS5sKSxNYXRoLnJvdW5kKDEwMCppLmEpLzEwMCksdGhpcy5yZ2JhVGV4dD1uZXcgZzUoYS5yLGEuZyxhLmIsTWF0aC5yb3VuZCgxMDAqYS5hKS8xMDApLHRoaXMuY3BDbXlrRW5hYmxlZCYmKHRoaXMuY215a1RleHQ9bmV3IHk1KHRoaXMuY215ay5jLHRoaXMuY215ay5tLHRoaXMuY215ay55LHRoaXMuY215ay5rLE1hdGgucm91bmQoMTAwKnRoaXMuY215ay5hKS8xMDApKTt0aGlzLmhleFRleHQ9dGhpcy5zZXJ2aWNlLnJnYmFUb0hleChhLCJhbHdheXMiPT09dGhpcy5jcEFscGhhQ2hhbm5lbCksdGhpcy5oZXhBbHBoYT10aGlzLnJnYmFUZXh0LmF9aWYoImF1dG8iPT09dGhpcy5jcE91dHB1dEZvcm1hdCYmdGhpcy5mb3JtYXQhPT11NS5SR0JBJiZ0aGlzLmZvcm1hdCE9PXU1LkNNWUsmJnRoaXMuaHN2YS5hPDEmJih0aGlzLmZvcm1hdD10aGlzLmhzdmEuYTwxP3U1LlJHQkE6dTUuSEVYKSx0aGlzLmh1ZVNsaWRlckNvbG9yPSJyZ2IoIitvLnIrIiwiK28uZysiLCIrby5iKyIpIix0aGlzLmFscGhhU2xpZGVyQ29sb3I9InJnYigiK2EucisiLCIrYS5nKyIsIithLmIrIikiLHRoaXMub3V0cHV0Q29sb3I9dGhpcy5zZXJ2aWNlLm91dHB1dEZvcm1hdCh0aGlzLmhzdmEsdGhpcy5jcE91dHB1dEZvcm1hdCx0aGlzLmNwQWxwaGFDaGFubmVsKSx0aGlzLnNlbGVjdGVkQ29sb3I9dGhpcy5zZXJ2aWNlLm91dHB1dEZvcm1hdCh0aGlzLmhzdmEsInJnYmEiLG51bGwpLHRoaXMuZm9ybWF0IT09dTUuQ01ZSyl0aGlzLmNteWtDb2xvcj0iIjtlbHNlIGlmKCJhbHdheXMiPT09dGhpcy5jcEFscGhhQ2hhbm5lbHx8ImVuYWJsZWQiPT09dGhpcy5jcEFscGhhQ2hhbm5lbHx8ImZvcmNlZCI9PT10aGlzLmNwQWxwaGFDaGFubmVsKXtjb25zdCB0PU1hdGgucm91bmQoMTAwKnRoaXMuY215ay5hKS8xMDA7dGhpcy5jbXlrQ29sb3I9YGNteWthKCR7dGhpcy5jbXlrLmN9LCR7dGhpcy5jbXlrLm19LCR7dGhpcy5jbXlrLnl9LCR7dGhpcy5jbXlrLmt9LCR7dH0pYH1lbHNlIHRoaXMuY215a0NvbG9yPWBjbXlrKCR7dGhpcy5jbXlrLmN9LCR7dGhpcy5jbXlrLm19LCR7dGhpcy5jbXlrLnl9LCR7dGhpcy5jbXlrLmt9KWA7dGhpcy5zbGlkZXI9bmV3IE01KCh0aGlzLnNsaWRlckh8fHRoaXMuaHN2YS5oKSp0aGlzLnNsaWRlckRpbU1heC5oLTgsdGhpcy5oc3ZhLnMqdGhpcy5zbGlkZXJEaW1NYXgucy04LCgxLXRoaXMuaHN2YS52KSp0aGlzLnNsaWRlckRpbU1heC52LTgsdGhpcy5oc3ZhLmEqdGhpcy5zbGlkZXJEaW1NYXguYS04KSx0JiZyIT09dGhpcy5vdXRwdXRDb2xvciYmKHRoaXMuY3BDbXlrRW5hYmxlZCYmdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5jbXlrQ2hhbmdlZCh0aGlzLmNteWtDb2xvciksdGhpcy5kaXJlY3RpdmVJbnN0YW5jZS5jb2xvckNoYW5nZWQodGhpcy5vdXRwdXRDb2xvcikpfX1zZXREaWFsb2dQb3NpdGlvbigpe2lmKCJpbmxpbmUiPT09dGhpcy5jcERpYWxvZ0Rpc3BsYXkpdGhpcy5wb3NpdGlvbj0icmVsYXRpdmUiO2Vsc2V7bGV0IHQsZT0ic3RhdGljIixuPSIiLG89bnVsbCxpPW51bGwsYT10aGlzLmRpcmVjdGl2ZUVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlO2NvbnN0IHI9dGhpcy5kaWFsb2dFbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O2Zvcig7bnVsbCE9PWEmJiJIVE1MIiE9PWEudGFnTmFtZTspe2lmKHQ9d2luZG93LmdldENvbXB1dGVkU3R5bGUoYSksZT10LmdldFByb3BlcnR5VmFsdWUoInBvc2l0aW9uIiksbj10LmdldFByb3BlcnR5VmFsdWUoInRyYW5zZm9ybSIpLCJzdGF0aWMiIT09ZSYmbnVsbD09PW8mJihvPWEpLG4mJiJub25lIiE9PW4mJm51bGw9PT1pJiYoaT1hKSwiZml4ZWQiPT09ZSl7bz1pO2JyZWFrfWE9YS5wYXJlbnROb2RlfWNvbnN0IHM9dGhpcy5jcmVhdGVEaWFsb2dCb3godGhpcy5kaXJlY3RpdmVFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsImZpeGVkIiE9PWUpO2lmKHRoaXMudXNlUm9vdFZpZXdDb250YWluZXJ8fCJmaXhlZCI9PT1lJiYoIW98fG8gaW5zdGFuY2VvZiBIVE1MVW5rbm93bkVsZW1lbnQpKXRoaXMudG9wPXMudG9wLHRoaXMubGVmdD1zLmxlZnQ7ZWxzZXtudWxsPT09byYmKG89YSk7Y29uc3QgdD10aGlzLmNyZWF0ZURpYWxvZ0JveChvLCJmaXhlZCIhPT1lKTt0aGlzLnRvcD1zLnRvcC10LnRvcCx0aGlzLmxlZnQ9cy5sZWZ0LXQubGVmdH0iZml4ZWQiPT09ZSYmKHRoaXMucG9zaXRpb249ImZpeGVkIik7bGV0IGw9dGhpcy5jcFBvc2l0aW9uO2lmKCJhdXRvIj09PXRoaXMuY3BQb3NpdGlvbil7bD0oZnVuY3Rpb24gdChlLG4pe2xldCBvPSJyaWdodCIsaT0iYm90dG9tIjtjb25zdHtoZWlnaHQ6YSx3aWR0aDpyfT1lLHt0b3A6cyxsZWZ0Omx9PW4sYz1zK24uaGVpZ2h0LGQ9bCtuLndpZHRoLHA9cy1hPDAsbT1jK2E+KHdpbmRvdy5pbm5lckhlaWdodHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCksZj1sLXI8MCx1PWQrcj4od2luZG93LmlubmVyV2lkdGh8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCk7aWYobSYmKGk9InRvcCIpLHAmJihpPSJib3R0b20iKSxmJiYobz0icmlnaHQiKSx1JiYobz0ibGVmdCIpLHAmJm0mJmYmJnUpcmV0dXJuWyJsZWZ0IiwicmlnaHQiLCJ0b3AiLCJib3R0b20iXS5yZWR1Y2UoKCh0LG4pPT5lW3RdPmVbbl0/dDpuKSk7cmV0dXJuIGYmJnU/cD8iYm90dG9tIjptfHxzPmM/InRvcCI6ImJvdHRvbSI6cCYmbT9mPyJyaWdodCI6dXx8bD5kPyJsZWZ0IjoicmlnaHQiOmAke2l9LSR7b31gfSkodGhpcy5kaWFsb2dFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdGhpcy5jcFRyaWdnZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpfSJ0b3AiPT09bD8odGhpcy5hcnJvd1RvcD1yLTEsdGhpcy50b3AtPXIrdGhpcy5kaWFsb2dBcnJvd1NpemUsdGhpcy5sZWZ0Kz10aGlzLmNwUG9zaXRpb25PZmZzZXQvMTAwKnMud2lkdGgtdGhpcy5kaWFsb2dBcnJvd09mZnNldCk6ImJvdHRvbSI9PT1sPyh0aGlzLnRvcCs9cy5oZWlnaHQrdGhpcy5kaWFsb2dBcnJvd1NpemUsdGhpcy5sZWZ0Kz10aGlzLmNwUG9zaXRpb25PZmZzZXQvMTAwKnMud2lkdGgtdGhpcy5kaWFsb2dBcnJvd09mZnNldCk6InRvcC1sZWZ0Ij09PWx8fCJsZWZ0LXRvcCI9PT1sPyh0aGlzLnRvcC09ci1zLmhlaWdodCtzLmhlaWdodCp0aGlzLmNwUG9zaXRpb25PZmZzZXQvMTAwLHRoaXMubGVmdC09dGhpcy5jcFdpZHRoK3RoaXMuZGlhbG9nQXJyb3dTaXplLTItdGhpcy5kaWFsb2dBcnJvd09mZnNldCk6InRvcC1yaWdodCI9PT1sfHwicmlnaHQtdG9wIj09PWw/KHRoaXMudG9wLT1yLXMuaGVpZ2h0K3MuaGVpZ2h0KnRoaXMuY3BQb3NpdGlvbk9mZnNldC8xMDAsdGhpcy5sZWZ0Kz1zLndpZHRoK3RoaXMuZGlhbG9nQXJyb3dTaXplLTItdGhpcy5kaWFsb2dBcnJvd09mZnNldCk6ImxlZnQiPT09bHx8ImJvdHRvbS1sZWZ0Ij09PWx8fCJsZWZ0LWJvdHRvbSI9PT1sPyh0aGlzLnRvcCs9cy5oZWlnaHQqdGhpcy5jcFBvc2l0aW9uT2Zmc2V0LzEwMC10aGlzLmRpYWxvZ0Fycm93T2Zmc2V0LHRoaXMubGVmdC09dGhpcy5jcFdpZHRoK3RoaXMuZGlhbG9nQXJyb3dTaXplLTIpOih0aGlzLnRvcCs9cy5oZWlnaHQqdGhpcy5jcFBvc2l0aW9uT2Zmc2V0LzEwMC10aGlzLmRpYWxvZ0Fycm93T2Zmc2V0LHRoaXMubGVmdCs9cy53aWR0aCt0aGlzLmRpYWxvZ0Fycm93U2l6ZS0yKSx0aGlzLmNwVXNlUG9zaXRpb249bH19aXNEZXNjZW5kYW50KHQsZSl7bGV0IG49ZS5wYXJlbnROb2RlO2Zvcig7bnVsbCE9PW47KXtpZihuPT09dClyZXR1cm4hMDtuPW4ucGFyZW50Tm9kZX1yZXR1cm4hMX1jcmVhdGVEaWFsb2dCb3godCxlKXtyZXR1cm57dG9wOnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wKyhlP3dpbmRvdy5wYWdlWU9mZnNldDowKSxsZWZ0OnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCsoZT93aW5kb3cucGFnZVhPZmZzZXQ6MCksd2lkdGg6dC5vZmZzZXRXaWR0aCxoZWlnaHQ6dC5vZmZzZXRIZWlnaHR9fX1PNS7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TzUpKGdmKEtoKSxnZihPYiksZ2YoeDUpKX0sTzUuybVjbXA9c28oe3R5cGU6TzUsc2VsZWN0b3JzOltbImNvbG9yLXBpY2tlciJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFZ5KEYyLDcpLFZ5KEwyLDcpLFZ5KEIyLDcpKSwyJmUpe2xldCB0O0J5KHQ9VXkoKSkmJihuLmRpYWxvZ0VsZW1lbnQ9dC5maXJzdCksQnkodD1VeSgpKSYmKG4uaHVlU2xpZGVyPXQuZmlyc3QpLEJ5KHQ9VXkoKSkmJihuLmFscGhhU2xpZGVyPXQuZmlyc3QpfX0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlJmKCJrZXl1cC5lc2MiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmhhbmRsZUVzYyhlKX0pLCExLFBsKSgia2V5dXAuZW50ZXIiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmhhbmRsZUVudGVyKGUpfSksITEsUGwpfSxkZWNsczoyOCx2YXJzOjQ3LGNvbnN0czpbWzEsImNvbG9yLXBpY2tlciIsMywiY2xpY2siXSxbImRpYWxvZ1BvcHVwIiwiIl0sWzMsImNsYXNzIiwidG9wIiw0LCJuZ0lmIl0sWyJjbGFzcyIsInNhdHVyYXRpb24tbGlnaHRuZXNzIiwzLCJzbGlkZXIiLCJyZ1giLCJyZ1kiLCJiYWNrZ3JvdW5kLWNvbG9yIiwibmV3VmFsdWUiLCJkcmFnU3RhcnQiLCJkcmFnRW5kIiw0LCJuZ0lmIl0sWzEsImh1ZS1hbHBoYSIsImJveCJdLFsxLCJsZWZ0Il0sWzEsInNlbGVjdGVkLWNvbG9yLWJhY2tncm91bmQiXSxbMSwic2VsZWN0ZWQtY29sb3IiXSxbInR5cGUiLCJidXR0b24iLDMsImNsYXNzIiwiZGlzYWJsZWQiLCJjbGljayIsNCwibmdJZiJdLFsxLCJyaWdodCJdLFsic3R5bGUiLCJoZWlnaHQ6IDE2cHg7Iiw0LCJuZ0lmIl0sWzEsImh1ZSIsMywic2xpZGVyIiwicmdYIiwibmV3VmFsdWUiLCJkcmFnU3RhcnQiLCJkcmFnRW5kIl0sWyJodWVTbGlkZXIiLCIiXSxbMSwiY3Vyc29yIl0sWzEsInZhbHVlIiwzLCJzbGlkZXIiLCJyZ1giLCJuZXdWYWx1ZSIsImRyYWdTdGFydCIsImRyYWdFbmQiXSxbInZhbHVlU2xpZGVyIiwiIl0sWzEsImFscGhhIiwzLCJzbGlkZXIiLCJyZ1giLCJuZXdWYWx1ZSIsImRyYWdTdGFydCIsImRyYWdFbmQiXSxbImFscGhhU2xpZGVyIiwiIl0sWyJjbGFzcyIsImNteWstdGV4dCIsMywiZGlzcGxheSIsNCwibmdJZiJdLFsiY2xhc3MiLCJoc2xhLXRleHQiLDMsImRpc3BsYXkiLDQsIm5nSWYiXSxbImNsYXNzIiwicmdiYS10ZXh0IiwzLCJkaXNwbGF5Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsImhleC10ZXh0IiwzLCJoZXgtYWxwaGEiLCJkaXNwbGF5Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsInZhbHVlLXRleHQiLDQsIm5nSWYiXSxbImNsYXNzIiwidHlwZS1wb2xpY3kiLDQsIm5nSWYiXSxbImNsYXNzIiwicHJlc2V0LWFyZWEiLDQsIm5nSWYiXSxbImNsYXNzIiwiYnV0dG9uLWFyZWEiLDQsIm5nSWYiXSxbMSwic2F0dXJhdGlvbi1saWdodG5lc3MiLDMsInNsaWRlciIsInJnWCIsInJnWSIsIm5ld1ZhbHVlIiwiZHJhZ1N0YXJ0IiwiZHJhZ0VuZCJdLFsidHlwZSIsImJ1dHRvbiIsMywiZGlzYWJsZWQiLCJjbGljayJdLFsyLCJoZWlnaHQiLCIxNnB4Il0sWzEsImNteWstdGV4dCJdLFsxLCJib3giXSxbInR5cGUiLCJudW1iZXIiLCJwYXR0ZXJuIiwiWzAtOV0qIiwibWluIiwiMCIsIm1heCIsIjEwMCIsMywidGV4dCIsInJnIiwidmFsdWUiLCJrZXl1cC5lbnRlciIsIm5ld1ZhbHVlIl0sWyJ0eXBlIiwibnVtYmVyIiwicGF0dGVybiIsIlswLTldKyhbXFwuLF1bMC05XXsxLDJ9KT8iLCJtaW4iLCIwIiwibWF4IiwiMSIsInN0ZXAiLCIwLjEiLDMsInRleHQiLCJyZyIsInZhbHVlIiwia2V5dXAuZW50ZXIiLCJuZXdWYWx1ZSIsNCwibmdJZiJdLFs0LCJuZ0lmIl0sWyJ0eXBlIiwibnVtYmVyIiwicGF0dGVybiIsIlswLTldKyhbXFwuLF1bMC05XXsxLDJ9KT8iLCJtaW4iLCIwIiwibWF4IiwiMSIsInN0ZXAiLCIwLjEiLDMsInRleHQiLCJyZyIsInZhbHVlIiwia2V5dXAuZW50ZXIiLCJuZXdWYWx1ZSJdLFsxLCJoc2xhLXRleHQiXSxbInR5cGUiLCJudW1iZXIiLCJwYXR0ZXJuIiwiWzAtOV0qIiwibWluIiwiMCIsIm1heCIsIjM2MCIsMywidGV4dCIsInJnIiwidmFsdWUiLCJrZXl1cC5lbnRlciIsIm5ld1ZhbHVlIl0sWzEsInJnYmEtdGV4dCJdLFsidHlwZSIsIm51bWJlciIsInBhdHRlcm4iLCJbMC05XSoiLCJtaW4iLCIwIiwibWF4IiwiMjU1IiwzLCJ0ZXh0IiwicmciLCJ2YWx1ZSIsImtleXVwLmVudGVyIiwibmV3VmFsdWUiXSxbMSwiaGV4LXRleHQiXSxbMywidGV4dCIsInZhbHVlIiwiYmx1ciIsImtleXVwLmVudGVyIiwibmV3VmFsdWUiXSxbMSwidmFsdWUtdGV4dCJdLFsxLCJ0eXBlLXBvbGljeSJdLFsxLCJ0eXBlLXBvbGljeS1hcnJvdyIsMywiY2xpY2siXSxbMSwicHJlc2V0LWFyZWEiXSxbMSwicHJlc2V0LWxhYmVsIl0sWzMsImNsYXNzIiw0LCJuZ0lmIl0sWyJjbGFzcyIsInByZXNldC1jb2xvciIsMywiYmFja2dyb3VuZENvbG9yIiwiY2xpY2siLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJwcmVzZXQtY29sb3IiLDMsImNsaWNrIl0sWzMsImNsYXNzIiwiY2xpY2siLDQsIm5nSWYiXSxbMywiY2xpY2siXSxbMSwiYnV0dG9uLWFyZWEiXSxbInR5cGUiLCJidXR0b24iLDMsImNsYXNzIiwiY2xpY2siLDQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLDMsImNsaWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJkaXYiLDAsMSksUmYoImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKX0pKSxIbSgyLFYyLDEsNSwiZGl2IiwyKSxIbSgzLGoyLDIsOCwiZGl2IiwzKSxDZig0LCJkaXYiLDQpLENmKDUsImRpdiIsNSksdmYoNiwiZGl2Iiw2KSx2Zig3LCJkaXYiLDcpLEhtKDgsVTIsMiw1LCJidXR0b24iLDgpLE1mKCksQ2YoOSwiZGl2Iiw5KSxIbSgxMCxXMiwxLDAsImRpdiIsMTApLENmKDExLCJkaXYiLDExLDEyKSxSZigibmV3VmFsdWUiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uSHVlQ2hhbmdlKGUpfSkpKCJkcmFnU3RhcnQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25EcmFnU3RhcnQoImh1ZSIpfSkpKCJkcmFnRW5kIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uRHJhZ0VuZCgiaHVlIil9KSksdmYoMTMsImRpdiIsMTMpLE1mKCksQ2YoMTQsImRpdiIsMTQsMTUpLFJmKCJuZXdWYWx1ZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25WYWx1ZUNoYW5nZShlKX0pKSgiZHJhZ1N0YXJ0IiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uRHJhZ1N0YXJ0KCJ2YWx1ZSIpfSkpKCJkcmFnRW5kIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uRHJhZ0VuZCgidmFsdWUiKX0pKSx2ZigxNiwiZGl2IiwxMyksTWYoKSxDZigxNywiZGl2IiwxNiwxNyksUmYoIm5ld1ZhbHVlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbkFscGhhQ2hhbmdlKGUpfSkpKCJkcmFnU3RhcnQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25EcmFnU3RhcnQoImFscGhhIil9KSkoImRyYWdFbmQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25EcmFnRW5kKCJhbHBoYSIpfSkpLHZmKDE5LCJkaXYiLDEzKSxNZigpLE1mKCksTWYoKSxIbSgyMCxxMiwxNywxMiwiZGl2IiwxOCksSG0oMjEsSzIsMTQsMTAsImRpdiIsMTkpLEhtKDIyLCQyLDE0LDEwLCJkaXYiLDIwKSxIbSgyMyxuNSw4LDcsImRpdiIsMjEpLEhtKDI0LGk1LDksMywiZGl2IiwyMiksSG0oMjUsYTUsMywwLCJkaXYiLDIzKSxIbSgyNixkNSw2LDMsImRpdiIsMjQpLEhtKDI3LGY1LDMsMiwiZGl2IiwyNSksTWYoKSksMiZlJiYobHUoImRpc3BsYXkiLG4uc2hvdz8iYmxvY2siOiJub25lIikoInZpc2liaWxpdHkiLG4uaGlkZGVuPyJoaWRkZW4iOiJ2aXNpYmxlIikoInRvcCIsbi50b3AsInB4IikoImxlZnQiLG4ubGVmdCwicHgiKSgicG9zaXRpb24iLG4ucG9zaXRpb24pKCJoZWlnaHQiLG4uY3BIZWlnaHQsInB4IikoIndpZHRoIixuLmNwV2lkdGgsInB4IiksY3UoIm9wZW4iLG4uc2hvdyksRGMoMiksYmYoIm5nSWYiLCJwb3B1cCI9PW4uY3BEaWFsb2dEaXNwbGF5KSxEYygxKSxiZigibmdJZiIsMT09PShuLmNwQ29sb3JNb2RlfHwxKSksRGMoNCksbHUoImJhY2tncm91bmQtY29sb3IiLG4uc2VsZWN0ZWRDb2xvciksRGMoMSksYmYoIm5nSWYiLG4uY3BBZGRDb2xvckJ1dHRvbiksRGMoMiksYmYoIm5nSWYiLCJkaXNhYmxlZCI9PT1uLmNwQWxwaGFDaGFubmVsKSxEYygxKSxsdSgiZGlzcGxheSIsMT09PShuLmNwQ29sb3JNb2RlfHwxKT8iYmxvY2siOiJub25lIiksYmYoInJnWCIsMSksRGMoMiksbHUoImxlZnQiLG51bGw9PW4uc2xpZGVyP251bGw6bi5zbGlkZXIuaCwicHgiKSxEYygxKSxsdSgiZGlzcGxheSIsMj09PShuLmNwQ29sb3JNb2RlfHwxKT8iYmxvY2siOiJub25lIiksYmYoInJnWCIsMSksRGMoMiksbHUoInJpZ2h0IixudWxsPT1uLnNsaWRlcj9udWxsOm4uc2xpZGVyLnYsInB4IiksRGMoMSksbHUoImRpc3BsYXkiLCJkaXNhYmxlZCI9PT1uLmNwQWxwaGFDaGFubmVsPyJub25lIjoiYmxvY2siKSgiYmFja2dyb3VuZC1jb2xvciIsbi5hbHBoYVNsaWRlckNvbG9yKSxiZigicmdYIiwxKSxEYygyKSxsdSgibGVmdCIsbnVsbD09bi5zbGlkZXI/bnVsbDpuLnNsaWRlci5hLCJweCIpLERjKDEpLGJmKCJuZ0lmIiwhbi5jcERpc2FibGVJbnB1dCYmMT09PShuLmNwQ29sb3JNb2RlfHwxKSksRGMoMSksYmYoIm5nSWYiLCFuLmNwRGlzYWJsZUlucHV0JiYxPT09KG4uY3BDb2xvck1vZGV8fDEpKSxEYygxKSxiZigibmdJZiIsIW4uY3BEaXNhYmxlSW5wdXQmJjE9PT0obi5jcENvbG9yTW9kZXx8MSkpLERjKDEpLGJmKCJuZ0lmIiwhbi5jcERpc2FibGVJbnB1dCYmMT09PShuLmNwQ29sb3JNb2RlfHwxKSksRGMoMSksYmYoIm5nSWYiLCFuLmNwRGlzYWJsZUlucHV0JiYyPT09KG4uY3BDb2xvck1vZGV8fDEpKSxEYygxKSxiZigibmdJZiIsIW4uY3BEaXNhYmxlSW5wdXQmJjE9PT0obi5jcENvbG9yTW9kZXx8MSkpLERjKDEpLGJmKCJuZ0lmIiwobnVsbD09bi5jcFByZXNldENvbG9ycz9udWxsOm4uY3BQcmVzZXRDb2xvcnMubGVuZ3RoKXx8bi5jcEFkZENvbG9yQnV0dG9uKSxEYygxKSxiZigibmdJZiIsbi5jcE9LQnV0dG9ufHxuLmNwQ2FuY2VsQnV0dG9uKSl9LGRpcmVjdGl2ZXM6W1B2LEM1LF81LHh2XSxzdHlsZXM6WycuY29sb3ItcGlja2Vyey1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoxcHggc29saWQgIzc3NztjdXJzb3I6ZGVmYXVsdDtoZWlnaHQ6YXV0bztwb3NpdGlvbjphYnNvbHV0ZTt1c2VyLXNlbGVjdDpub25lO3dpZHRoOjIzMHB4O3otaW5kZXg6MTAwMH0uY29sb3ItcGlja2VyICp7Ym94LXNpemluZzpib3JkZXItYm94O2ZvbnQtc2l6ZToxMXB4O21hcmdpbjowfS5jb2xvci1waWNrZXIgaW5wdXR7Y29sb3I6IzAwMDtmb250LXNpemU6MTNweDtoZWlnaHQ6MjZweDttaW4td2lkdGg6MDt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDowfS5jb2xvci1waWNrZXIgaW5wdXQ6LW1vei1zdWJtaXQtaW52YWxpZCwuY29sb3ItcGlja2VyIGlucHV0Oi1tb3otdWktaW52YWxpZCwuY29sb3ItcGlja2VyIGlucHV0OmludmFsaWR7Ym94LXNoYWRvdzpub25lfS5jb2xvci1waWNrZXIgaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sLmNvbG9yLXBpY2tlciBpbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MH0uY29sb3ItcGlja2VyIC5hcnJvd3tib3JkZXItc3R5bGU6c29saWQ7aGVpZ2h0OjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MDt6LWluZGV4Ojk5OTk5OX0uY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy10b3B7Ym9yZGVyLWNvbG9yOiM3NzcgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXdpZHRoOjEwcHggNXB4O2xlZnQ6OHB4fS5jb2xvci1waWNrZXIgLmFycm93LmFycm93LWJvdHRvbXtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzc3Nztib3JkZXItd2lkdGg6MTBweCA1cHg7bGVmdDo4cHg7dG9wOi0yMHB4fS5jb2xvci1waWNrZXIgLmFycm93LmFycm93LWxlZnQtdG9wLC5jb2xvci1waWNrZXIgLmFycm93LmFycm93LXRvcC1sZWZ0e2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjNzc3O2JvcmRlci13aWR0aDo1cHggMTBweDtib3R0b206OHB4O3JpZ2h0Oi0yMXB4fS5jb2xvci1waWNrZXIgLmFycm93LmFycm93LXJpZ2h0LXRvcCwuY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy10b3AtcmlnaHR7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50ICM3NzcgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXdpZHRoOjVweCAxMHB4O2JvdHRvbTo4cHg7bGVmdDotMjBweH0uY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1ib3R0b20tbGVmdCwuY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1sZWZ0LC5jb2xvci1waWNrZXIgLmFycm93LmFycm93LWxlZnQtYm90dG9te2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjNzc3O2JvcmRlci13aWR0aDo1cHggMTBweDtyaWdodDotMjFweDt0b3A6OHB4fS5jb2xvci1waWNrZXIgLmFycm93LmFycm93LWJvdHRvbS1yaWdodCwuY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1yaWdodCwuY29sb3ItcGlja2VyIC5hcnJvdy5hcnJvdy1yaWdodC1ib3R0b217Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50ICM3NzcgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXdpZHRoOjVweCAxMHB4O2xlZnQ6LTIwcHg7dG9wOjhweH0uY29sb3ItcGlja2VyIC5jdXJzb3J7Ym9yZGVyOjJweCBzb2xpZCAjMjIyO2JvcmRlci1yYWRpdXM6NTAlO2N1cnNvcjpkZWZhdWx0O2hlaWdodDoxNnB4O3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjE2cHh9LmNvbG9yLXBpY2tlciAuYm94e2Rpc3BsYXk6ZmxleDtwYWRkaW5nOjRweCA4cHh9LmNvbG9yLXBpY2tlciAubGVmdHtwYWRkaW5nOjE2cHggOHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5jb2xvci1waWNrZXIgLnJpZ2h0e2ZsZXg6MSAxIGF1dG87cGFkZGluZzoxMnB4IDhweH0uY29sb3ItcGlja2VyIC5idXR0b24tYXJlYXtwYWRkaW5nOjAgMTZweCAxNnB4O3RleHQtYWxpZ246cmlnaHR9LmNvbG9yLXBpY2tlciAuYnV0dG9uLWFyZWEgYnV0dG9ue21hcmdpbi1sZWZ0OjhweH0uY29sb3ItcGlja2VyIC5wcmVzZXQtYXJlYXtwYWRkaW5nOjRweCAxNXB4fS5jb2xvci1waWNrZXIgLnByZXNldC1hcmVhIC5wcmVzZXQtbGFiZWx7Y29sb3I6IzU1NTtmb250LXNpemU6MTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzo0cHg7dGV4dC1hbGlnbjpsZWZ0O3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO3dpZHRoOjEwMCV9LmNvbG9yLXBpY2tlciAucHJlc2V0LWFyZWEgLnByZXNldC1jb2xvcntib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7Ym9yZGVyLXJhZGl1czoyNSU7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjE4cHg7bWFyZ2luOjRweCA2cHggOHB4O3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjE4cHh9LmNvbG9yLXBpY2tlciAucHJlc2V0LWFyZWEgLnByZXNldC1lbXB0eS1tZXNzYWdle2ZvbnQtc3R5bGU6aXRhbGljO21hcmdpbi1ib3R0b206OHB4O21hcmdpbi10b3A6NHB4O21pbi1oZWlnaHQ6MThweDt0ZXh0LWFsaWduOmNlbnRlcn0uY29sb3ItcGlja2VyIC5oZXgtdGV4dHtmb250LXNpemU6MTFweDtwYWRkaW5nOjRweCA4cHg7d2lkdGg6MTAwJX0uY29sb3ItcGlja2VyIC5oZXgtdGV4dCAuYm94e3BhZGRpbmc6MCAyNHB4IDhweCA4cHh9LmNvbG9yLXBpY2tlciAuaGV4LXRleHQgLmJveCBkaXZ7Y2xlYXI6bGVmdDtjb2xvcjojNTU1O2ZsZXg6MSAxIGF1dG87ZmxvYXQ6bGVmdDt0ZXh0LWFsaWduOmNlbnRlcn0uY29sb3ItcGlja2VyIC5oZXgtdGV4dCAuYm94IGlucHV0e2JvcmRlcjoxcHggc29saWQgI2E5YTlhOTtmbGV4OjEgMSBhdXRvO3BhZGRpbmc6MXB4fS5jb2xvci1waWNrZXIgLmhleC1hbHBoYSAuYm94IGRpdjpmaXJzdC1jaGlsZCwuY29sb3ItcGlja2VyIC5oZXgtYWxwaGEgLmJveCBpbnB1dDpmaXJzdC1jaGlsZHtmbGV4LWdyb3c6MzttYXJnaW4tcmlnaHQ6OHB4fS5jb2xvci1waWNrZXIgLmNteWstdGV4dCwuY29sb3ItcGlja2VyIC5oc2xhLXRleHQsLmNvbG9yLXBpY2tlciAucmdiYS10ZXh0LC5jb2xvci1waWNrZXIgLnZhbHVlLXRleHR7Zm9udC1zaXplOjExcHg7cGFkZGluZzo0cHggOHB4O3dpZHRoOjEwMCV9LmNvbG9yLXBpY2tlciAuY215ay10ZXh0IC5ib3gsLmNvbG9yLXBpY2tlciAuaHNsYS10ZXh0IC5ib3gsLmNvbG9yLXBpY2tlciAucmdiYS10ZXh0IC5ib3h7cGFkZGluZzowIDI0cHggOHB4IDhweH0uY29sb3ItcGlja2VyIC52YWx1ZS10ZXh0IC5ib3h7cGFkZGluZzowIDhweCA4cHh9LmNvbG9yLXBpY2tlciAuY215ay10ZXh0IC5ib3ggZGl2LC5jb2xvci1waWNrZXIgLmhzbGEtdGV4dCAuYm94IGRpdiwuY29sb3ItcGlja2VyIC5yZ2JhLXRleHQgLmJveCBkaXYsLmNvbG9yLXBpY2tlciAudmFsdWUtdGV4dCAuYm94IGRpdntjb2xvcjojNTU1O2ZsZXg6MSAxIGF1dG87bWFyZ2luLXJpZ2h0OjhweDt0ZXh0LWFsaWduOmNlbnRlcn0uY29sb3ItcGlja2VyIC5jbXlrLXRleHQgLmJveCBkaXY6bGFzdC1jaGlsZCwuY29sb3ItcGlja2VyIC5oc2xhLXRleHQgLmJveCBkaXY6bGFzdC1jaGlsZCwuY29sb3ItcGlja2VyIC5yZ2JhLXRleHQgLmJveCBkaXY6bGFzdC1jaGlsZCwuY29sb3ItcGlja2VyIC52YWx1ZS10ZXh0IC5ib3ggZGl2Omxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjB9LmNvbG9yLXBpY2tlciAuY215ay10ZXh0IC5ib3ggaW5wdXQsLmNvbG9yLXBpY2tlciAuaHNsYS10ZXh0IC5ib3ggaW5wdXQsLmNvbG9yLXBpY2tlciAucmdiYS10ZXh0IC5ib3ggaW5wdXQsLmNvbG9yLXBpY2tlciAudmFsdWUtdGV4dCAuYm94IGlucHV0e2JvcmRlcjoxcHggc29saWQgI2E5YTlhOTtmbGV4OjE7ZmxvYXQ6bGVmdDttYXJnaW46MCA4cHggMCAwO3BhZGRpbmc6MXB4fS5jb2xvci1waWNrZXIgLmNteWstdGV4dCAuYm94IGlucHV0Omxhc3QtY2hpbGQsLmNvbG9yLXBpY2tlciAuaHNsYS10ZXh0IC5ib3ggaW5wdXQ6bGFzdC1jaGlsZCwuY29sb3ItcGlja2VyIC5yZ2JhLXRleHQgLmJveCBpbnB1dDpsYXN0LWNoaWxkLC5jb2xvci1waWNrZXIgLnZhbHVlLXRleHQgLmJveCBpbnB1dDpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowfS5jb2xvci1waWNrZXIgLmh1ZS1hbHBoYXthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLWJvdHRvbTozcHh9LmNvbG9yLXBpY2tlciAuaHVle2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUpZQUFBQVFDQVlBQUFEMDZJWW5BQUFBQm1KTFIwUUEvd0QvQVArZ3ZhZVRBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUIzUkpUVVVINEFJV0R3a1VGV2JDQ0FBQUFGeEpSRUZVYU43dDBrRUtnMEFRQU1FMng4My9uMnF1NXFDZ0QxaURoQ29ZZHBuYlFDOWJiWTFxVk8vanZjNmszYWQ5MXM3LzdGMS9jc2dQcnVqdVExN0JEWVNGc0JBV3dnSmhJU3lFQmNKQ1dBZ0xoSVd3RUJZSWkyZjdBci8xVENnRkgyWDlBQUFBQUVsRlRrU3VRbUNDIik7ZGlyZWN0aW9uOmx0cn0uY29sb3ItcGlja2VyIC5odWUsLmNvbG9yLXBpY2tlciAudmFsdWV7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJTtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6MTZweDttYXJnaW4tYm90dG9tOjE2cHg7d2lkdGg6MTAwJX0uY29sb3ItcGlja2VyIC52YWx1ZXtiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFKWUFBQUFRQ0FZQUFBRDA2SVluQUFBQ1RrbEVRVlI0MnUzU1lVY3JBQmhBNFUyU2ttUkpNbVdTSmtsS0ppV1pacEtVSkpza0tVbWFURkltS1pPVXpNeVNwR1JtbGlSTkppbEpTcEtTSkV0bVNwSXBtV21TZE83MzYvNkQreDdPUDNnVUNvV0N2MWNxbFNRbEpaR2NuRXhLU2dxcHFhbWtwYVdSbnA1T1JrWUdtWm1acUZRcXNyS3l5TTdPSmljbmg5emNYTlJxTlhsNWVlVG41NlBSYUNnb0tLQ3dzSkNpb2lLMFdpM0Z4Y1dVbEpSUVdscEtXVmtaNWVYbFZGUlVVRmxaaVU2bm82cXFpdXJxYW1wcWFxaXRyYVd1cmc2OVhrOTlmVDBHZ3dHajBVaERRd09OalkwME5UWFIzTnhNUzBzTHJhMnR0TFcxMGQ3ZWpzbGt3bXcyMDlIUlFXZG5KMTFkWFhSM2Q5UFQwME52Ynk5OWZYMzA5L2N6TUREQTRPQWdGb3VGb2FFaHJGWXJ3OFBEakl5TU1EbzZ5dGpZR0RhYmpmSHhjU1ltSnBpY25HUnFhZ3E3M2M3MDlEUXpNelBNenM0eU56ZkgvUHc4RG9jRHA5T0p5K1hDN1hhenNMREE0dUlpUzB0TExDOHZzN0t5d3VycUttdHJhM2c4SHJ4ZUx6NmZENy9mei9yNk9oc2JHMnh1YnJLMXRjWDI5amFCUUlDZG5SMkN3U0M3dTd2czdlMnh2Ny9Qd2NFQmg0ZUhIQjBkY1h4OHpNbkpDYWVucDV5ZG5YRitmczdGeFFXWGw1ZGNYVjF4ZlgzTnpjME50N2UzM04zZEVRcUZ1TCsvNStIaGdYQTRUQ1FTNGZIeGthZW5KNTZmbjNsNWVlSDE5WlZvTk1yYjJ4dnY3Kzk4Zkh3UWk4V0l4K044Zm42U1NDVDQrdnJpKy91Ym41OGZmbjkvK1ZjS2dTV3dCSmJBRWxnQ1MyQUpMSUVsc0FTV3dCSllBa3RnQ1N5QkpiQUVsc0FTV0FKTFlBa3NnU1d3QkpiQUVsZ0NTMkFKTElFbHNQNC9XSDhBbUo1WjZqSFM0aDhBQUFBQVNVVk9SSzVDWUlJPSIpO2RpcmVjdGlvbjpydGx9LmNvbG9yLXBpY2tlciAuYWxwaGF7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSllBQUFBUUNBWUFBQUQwNklZbkFBQUFCbUpMUjBRQS93RC9BUCtndmFlVEFBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFBQjNSSlRVVUg0QUlXRHdZUWxaTWEzZ0FBQVdWSlJFRlVhTjd0bUVHTzZqQVFSQ3NPQXJIZ0JweUFKWUdqY0dvY3hBbTRBMklIcG1vV0UwZUJIK2V6bUZsTnZVMDZzaEozVzZWRWVsV01VUUFJSUY5ZjZxWnBpbXNBMUxZdFMydUY1MS91MjdZVkFGWlZSVWtFb0dIZFBWL3NJY2JJRUlJa1VkSS85WGE3bmV5djYxK1NXRlVWQVZDU2N0MDBUV24yZnY2dTMrRWNmZDN0WHp5LzArbkVVdStTUGpvL2txenJtaVFwU2NONnY5OFhld2ZBOC9sTWtpTEoyV3hHU1VvcGNUNmZNNlUwTlg5L2ZyZmJqZXYxV3RmcmxaZkxoWWZEUVFIRy9BSU9sbkd3aklObEhDeGpIQ3pqWUptL1RKV2RDd3F1SlhzZUZGekd3RE5OZWlLTU9KVE84eFFkRFFhZUIyOStLOWVmZUxhQm85Sjd2ZHZ0SmoxUmpGRmpmaXY3cXY5NXRqeC83bGVTUWdoOTNlMWZmTWVJcDZPK1lRamhvL043OTF0MVhWT1NTSTdOLy9LKzQvR294V0xCeCtQQjUvT3A1WExKKy8zT2xKSldxeFUzbTgzb3Z2NWlHZjhLallObEhDeGpIQ3pqWUJrSHk1Z2Y1Z3VzdlFVN1UzN2pUQUFBQUFCSlJVNUVya0pnZ2c9PSIpO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCU7Ym9yZGVyOm5vbmU7Y3Vyc29yOnBvaW50ZXI7ZGlyZWN0aW9uOmx0cjtoZWlnaHQ6MTZweDt3aWR0aDoxMDAlfS5jb2xvci1waWNrZXIgLnR5cGUtcG9saWN5e2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJJQUFBQWdDQVlBQUFBZmZDanhBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUNld0FBQW5zQjAxQ08zQUFBQUJsMFJWaDBVMjltZEhkaGNtVUFkM2QzTG1sdWEzTmpZWEJsTG05eVo1dnVQQm9BQUFJQVNVUkJWRWlKN1pZOWF4UlJGSWFmc3hNU3RyTFFKcEFncEJGaGkrQzl3MVlTbzAwSTZSWi9nOXZacEJmL1FPcjRHeVJna1NLTlNyQWFkc1pxUUd3Q2t1QVd5UlpKc3lTd3ZoWjdOL3ZoenJnYkxIM0xkODU5N2pseno1MHpKb2t5eFhIOERxRFZhcjBxaTZ2OEJiSXRxU0dwRWNmeGRsbXNGV1hrdlg4QWZBVldnM1VLUEVuVDlHS3VqTXpzQUZnWnNWYUNOMVZUUWQ3N1hVbnJnRTFrdis2OTM1MjY4V1JwenJuSFp2WVJXQzdZdkMzcFJaWmwzd296cXRWcWl5SDlJZ2pBc3BrZDFHcTF4VUpRdFZyZEI5WktJQU90aGRnL1FjNjVMVWs3d05JTW9DVkpPODY1cllGaGtxalg2L2Q3dlY0R1BKd0JNcW9mVVJTNUpFazZGWUJlci9lZVliL01vOVd3Rm5QT3ZRYmVBdmZ1QUFLNEJONHNBSnRBRy9nSklFbG1OdWlKeWJhM0VHTm1aaVBlWnVFVm1WZWxsL1kvNk4rQ3pEbjNBWGhFT09vN0h2LzNCZUF6OEl6UWtNUG5KYnVQeDF3Qyt5WUo3LzBuWUlQNVMvMEZIS2RwK3J3Q0VFWFJTL3JmNUhsMUd0YjJNMGlTcENPcENaelBBVG1YMUV5U3BITUxBc2l5N01qTURvSHJHU0RYWm5hWVpkblJ3Qmg3SjkxdXR3bWN6QUE2Q2JHM0dnUGxlWDRqcVVIL2ExQ2t0cVJHbnVjM2hTQ0FNQjMyZ0tzcGtDdGdiM0tDUU1ta2plUDRXTkpUaHJOTlp2YWwxV3B0VElzdjdKdFE0dG1JZFJhOHFTb0VwV2w2WVdaTm9BTjB6S3haTlBlaHBMU0JadjJ0K1EwQ0o5bExuQVJRTEFBQUFBQkpSVTVFcmtKZ2dnPT0iKTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjhweCAxNnB4O2hlaWdodDoyNHB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjEycHg7dG9wOjIxOHB4O3dpZHRoOjE2cHh9LmNvbG9yLXBpY2tlciAudHlwZS1wb2xpY3kgLnR5cGUtcG9saWN5LWFycm93e2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjUwJTt3aWR0aDoxMDAlfS5jb2xvci1waWNrZXIgLnNlbGVjdGVkLWNvbG9ye2JvcmRlcjoxcHggc29saWQgI2E5YTlhOTtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6NDBweDtsZWZ0OjhweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTZweDt3aWR0aDo0MHB4fS5jb2xvci1waWNrZXIgLnNlbGVjdGVkLWNvbG9yLWJhY2tncm91bmR7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ2dBQUFBb0NBWUFBQUNNL3JodEFBQUFoMGxFUVZSWVIrMlcwUWxBTVFnRDYwemRmd09kcWE4VG1JL3dRTXI1SzBJNWJaTEl6TE9hMm50MzdWVlZiZCtkRHg1b2JnQ0MzS0JMd0oyZmY0UG5WaWRrZit1Y0lodzgwSFFhQ0xvM0RNSDNDUkszaUZzbUFXVmw2aFBORHd0OEV2TkU1cStZdUVYY01na29uVk02U2R5Q29FdkFuWjh2MUhqeDgxN01pbG14U1VCNXJkTEpEeWNaZ1VBWlVjaC9BQUFBQUVsRlRrU3VRbUNDIik7Ym9yZGVyLXJhZGl1czo1MCU7aGVpZ2h0OjQwcHg7d2lkdGg6NDBweH0uY29sb3ItcGlja2VyIC5zYXR1cmF0aW9uLWxpZ2h0bmVzc3tiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFPWUFBQUNDQ0FZQUFBQlNEN1QzQUFBQUJtSkxSMFFBL3dEL0FQK2d2YWVUQUFBQUNYQklXWE1BQUFzVEFBQUxFd0VBbXB3WUFBQUFCM1JKVFVVSDRBSVdEd2tzUFdSNmxnQUFJQUJKUkVGVWVOcnRuVnVUNDdnUnJBSE4rUC8vT3IvNjFZNXdPTlo3bVoxdTNYQWVMTWpKWkdaVmdkS3NmYzV4UjNTMFJJSVVXK0NIekNwYzJNY1lvN1hHdjNleDdVaVpkNTdyanl6enYrdiszM1gvUi8rM3IvZjd2UjM4NlkrVHZLTmNmL3dkaFRMUGN2OXFVMndaZDc0dXRoMHQxODIxamtJWkxQY3NJLzZuV2E0WHZ1dHF1VTBaODVtbng4MFMvWnpncG5Mbk90SE50Ny9vZngxVEtYY1NOek4vN3FiTVEzanU3ck5RbU1ZWWQvNHMyajlhYStQK2dHYU1jWnJiMU0vdGRydmY3L2Qydjk5UDkvdDkzTy8zY2J2ZHh1MTJHOWZyZFZ3dWwzRStuOGMvLy9uUCsyKy8vWGI2NmFlZnhsLy8rdGZ4NXovLzJZSzVBbDJyZ3ZmNFVzYnBkR3JCNTJiQXZBclhwdXpqbWlxQVZTR3o1ZURtR1lYemhiQVptQ3JubXpkZHBVVSs4WTFkQU9ZZVhDdERVd1Z3VjdZQ0dINnVBbXlNY1o5bDV2a1VhQlBHTVVaNy9KNXcvNzkyL2Z2djlYcTkzMjYzZHIvZlR4UEVDZU1FOG5LNWpNL1B6L0hUVHovZHYzMzdkdnJsbDEvR1AvN3hqL0czdi8xdC9PVXZmd2tWc3dvbmdqZE9wOVB6SDNVM0Qzem1XR25aVlhuNGpDcXM3d0MyQktQNC84dEF6a1pzb1d4NlhycWVIWnltdnA0QUJDQkpoVFF3S2ZEVDhnenJaQ0lxaTVBaGlBQ2pCZkVCMnJQOC9YNjNNTTdmNi9WNnY5L3Y3WGE3YllDODNXN2pjcmxzVkhJcTVmZnYzMCsvL2ZiYitPV1hYOFpQUC8wMC92NzN2NCtmZi83NUpTdmJldStiTDJXTU1hRmJBbHBCTk04NVFYK2N0NnFvU3FrUEF3dVFsQlZLcUdORlNVT0FBM0JtdTdnQzVoTk9kMTVuU3d2QU9VVzdDNGdpVUNWOFNnbjVMOWhORklxVHNwMEd4STB5c2lveWpBamtZL3RHSlZFcHorZnorT1dYWCs3ZnYzOC8vZjc3NytQYnQyL2oxMTkvSFQvLy9QUDQ5ZGRmeDhmSFJ3cm1UalY3NzlFWHUycHgyeGhqd3RkSlpRY0FXUUlQTFBJU3NNSmFTd2lEOGd6SUtyd1N5QVRFNWo1bkFiUjVjMWRCVXdCbHNFV1cwaDZMcWlZc3FGUEFReEN5Ulozd09TQVJ4bWxYTVg1azY0cFFmdnYyN2Y3NStkaytQajVPSHg4ZjQvdjM3K1BidDIvanQ5OStHOSsrZlJzZkh4L2pjcm1VRkxPMzFnWURXYmx4UklzL1RxZlQ3b3VzeEpzQXhYQTJHYzdUQTlYZGdmZG9IYkZzajc2WDIrMVdBcmdJMWFnZUd3QTNxdXBxb0hzbWNiSTZGdTkzcXVnZ0ZhOWQ3TGVEdGdLZkFGSEJKK05FQnlJa2NKNUtlcnZkVG1oaEdjZ0pKU1o1dm4vL2ZqK2Z6KzE4UHA4K1B6L0g1K2ZubUdEKy92dnY0L3YzNytQajQyTjhmbjZPMisxV3M3SmpqUDZ3cmFNSTVFNFJaOHgydlY1VFN3a3F1b3RWNy9kN1R6NkhGV3NEL3FOY2R3MENRM3EvMzIxYzY4NlR3RFZJZGJ1eTczek5sZGhTSGI4STJrbFp6bm0rSW5CUzRVNm4wMzAyYUJGc0xoSERBS0pWSlZnbGZJOWpodnU1M1c1M3NMQU5ZTnhBaURBNk1DZVVIeDhmOSt2MTJpNlhTN3RjTHFjWlc1N1A1eWVZOC9mejgzT2N6K2Zuc1NtWVV5a25XRUc4NVdCc3Q5c3R6U0x5TWRmcjlRaTA4aVkxNVVaMExsREdMaFIzbzV6SzJqN09QVVREMEUrblUzdGs3WGIvMTZORmJobG9BTXVZMXpqTFVPTzNCS2VJRGUrWjhzMy9KNGdGbzRUTTVqUG11UmcyOGZvVUtLVlN3bzE2VGdBNW5weXdjV0xIZ1lsL1B6OC83My82MDUvYWI3LzkxbTYzVzd0Y0xpZTBzWmo0bWFvNWdUeWZ6ODhFMGYxK2o4RWNZendUUEVHMmNxanlmSE5GME04ZnVxRWlhT1ZuUnpaWlFOaDVmd1F5SGcvSERHZkpvODlRMXpiL3F1dTVYQzY3NzNJMlhLZlRxZC92OStkM3d1cVd2YS9ZVGRVZEVWM2ZoSXYvVml5cHM2WUUzeDNyNDNLNWJKUVM2NnpheFZHRnN2ZCsvL2o0YUYrL2ZtM2Z2Mzl2dDl1dGZmMzZ0ZjMrKysvdGRydWR2bjM3WnVOTEJhYUNNZ1V6QytyWlJpRm93eFV1Skk4WU1xY0NwOU9wcTV2YWdhWVU2bEdKQTFYUXFlamNodzZDajBHdzVuWUJyR3cwMUEyTzIwNm4wNEJHb3VOTnlUZnAvRndFbGhVZXk2blhySUt3N1FRV2RkeHVOMmxkTDVmTDgzOWdTUEY4YWh1L0p2Qk80OENQU3VxTWY4VnA5L1A1M0w1OCtkTHU5M3M3bjgvdGZyOC8zOS92OS9iNStUa2hQSjNQNTZtUTQzNi9qKy9mdisvaVNnYnplcjArQVp4LzUrODhidjZPTWRhNlM1ejZrZDIxZllDOWR4djdjSUpKMmQ5QU9TMzBmUE16eUhpVE04QjRERjZYVWxZSHA0S1FXM1crMXQ3N01OQjF2R0h4V3E3WGE3dmY3OCt5NS9ONUErSDFldDI5eHVQNWRiWXR5YVJ1NEFrc2JQcTY5MzZmalJ6WFJ4QmJQci9iK2IxOCtmS2xqVEhhQkJCZm44L24wLzErSDErK2ZCbm44em0wc0I4Zkg1dTRjcjVHdUJoTVZrMEVFbjlSc2N0Z1ZoTStpeGxKdE1BMjNSOEI2eXlzQXN0Qk9nRlhJS0tDTUlnVG9NcU5FdTJmWU1IN3p0YzczMmRRS2tDajF5dEFadFkwS3g4cElyOEdHSitBVDNWKzJIaXJobCsrZkJtWHkyV3o3M3crYjE3UDhwK2ZuOC90VXdHVmxlVmtUeVViNjhEa2ZheVdZNHp4TlJpaFU0RXBMSlBaVnJLK3U3SjQvbWdmS3FlTFc5WDJSRVdsSXRMMWRpeW5iRERiMytqWGdZalFxbjBycnhXYytOa0lMUDdGN3hJYk12eDd2VjUzeDQweG5sYldKRjEyWlNhZy9OMHBXNnQrWnptT016SGphakt3RGZvbmQ3OHpZVGRmcTE4dXA5N3pyMnE4djNJaW9CcHJSdEJsMEVaOW9nNVdCUkdPZE9IaklqWEY3VW90RmJnT1duWHpJSnl6WXZqRzVJWWdzbU1PeEhrejhPc01TclZOV2VxNVQ4RGFPY2JFdjFPZDVyYnM5YU83WXZNZXQ2M0VrRisrZk1FeHErTVJsNC9MNWJMWk4vK2V6K2ZuWjZLYXp1TXFYU1FWTzVzcEpYZmxIQUl6ZXMveEpzZWNrUkppRE1vZzlkNlZmUnJxWE1yNktwVlYyN2pSd0phY0dvdk9BTTF6TWRRTW53SzFBdWJLNjNrZENDaHZJMUM3ZzB6OW5mL0QrWHplMlZqOEg3R3g0UDlkdVFsc1lDcnF5TjhYcUczSG0vMTBPajNqdy9uK2NybHN0dU0ralBtbXhUMmRUdVB6ODNQenQycG4xWHNFSFgvYm5QYVZxVm1oMHh3T3QwbzZYTExBSGVQVVUyMDN3SGZjcnNwQ3dtVjNUcnlCNXMwTXNlZWc5N3gvQnd6Q2pCbGJCK3BSQVBsYTBCVlF1VDZWNlFIZEJsajNkMEtHMTQ3YitEcXhRZVV5bURPNDNXNGRRYXIrVElqd21BZDB6OC9oNjV2ZjAveUx2M1BiNVhMcHJ1L3lkRG85czdFVDBJK1BqNmRLSzlWVUVJZUtXUVdQQU9ySjhMS2Q0dkUrdDkxWTNlN1VGbFdhdGcyVndKbmIrSFBtdHZtL3NmSzU5L09hV0YzeC9lUDFVUEh2QTVERFlEcFlYZmIwZHJ2MVYyRGtCa3h0dy90RVdWVmxYV2RDOXBGWXM1L2pmaDlkUy8xNnZXN3M2bFRHK1RmcXN4U0pIeGtYWHEvWGRyMWV1NExzZkQ2UDN2c1QzTjc3RGtMK3pQbTVqU2RLTDR6UjNBeFFkNnJIa0xrWWxTb3dzcnE3em56dTZ3U3dkc01KT1htQTVmQmNqeHRnTUdCWUhscjV6b2todHNNQ1RnWExRT1c0WEM2ZEV5RU1wckw4bUFRelhSZ2R1aXgyeVp6b3J4a1lzRG4zaEIxVmVNTEdzWHNWdGdsMnBXOFMzc3ZrMHZ3N1I0aE5hSHZ2NGNBQ2w1SEZ6d0lIMEtjNnp1NFhqRFBSL2pwQVZ4V3pPMVhrMkREYjN2VGN4ZUdVMWlXWkhrbUlEV3ppV0t2aXJDSjREcmF2czZJSi9HRzZjVHFXZFhEeStmQXJRRFZWa0xxa1ZqQW9aSUlUZG1tSXFYd3FhOTVOMytNR1lvWlFkUlZOTzUzWTF4UmtoTzE2dlk3ZXU1MDdDYTlsSm5iR3B4T2VtUWhTdy9BUXNtbXA1elU5QmlVOEc2d3ZYNzZNNi9VNlBqNCtkbzBCejRDcGdpa25UVWVEcXdsS0JtZzN1NE9WanJaMUErckFjZ2FlaldxNmVKQ3ZDWUZET05Td09nSFg0RVFSdzhseGJ6RE9kRUs2Z1ozSGsxYis4ZzJvMUpGdEtYeXYvZkVkVFh1V2pXWGRBWmlCcDZBRGVEckNGaWltN0I2WkZuZWVJN0d2bS9QTWtVRFg2N1c3eEk4YjBENy92OGRBOXFmTjVvYUNmNzRXWmpIMG1mMWNtZlkxWTBKVUZtVnJUV3U4dXprTmNMdEVqN3U1RlhCVGtmQzZHT0E1cThZTXhPOEtWdkY2c0FWR2RjclVic0tPRGNRS2tMTU9NZG1seHVtNjQyWXJQbTI2QWxoWlcxWUIxUityckdzd0U4VGFZQVdlVU14ZGYrV2p3U3ZaMkVmM3l0T3lmbjUrUHBWUEFhcU9uNDNNdE5CcXZtamp4YmpNNGxaalpZNGdxTk1JNWt0YVcvc1lLTndTKzlsRlF6R2lobU1DS1BhNytaMFY2RWIwR1Jtb2J0cFg4SmxqV3U1Rk1MTjVqYTZoRzlrd1FnWnFmNSsxTkg1VXh6a0ZSZUNkV2hKOFhkbEdVa3hPN0hSbFlSbTRtVk80M1c3dGVyMTJUUEpFdy9ybUVOM0w1U0tISVdaZzlteitwVW9LT1lxNWJKVEpkWDJnbWUxVWN4TVpRRmFFUUlsSGN0MzJNK1kxQnpHa0d1emZpeUFOOXordWdwbFoxc3ltQ3JEQ1lZa0d4RFRwSTlSekJ5MHJIeWVEVUMxbldhZVVhRDluNHhrTnlZTUJEWnR6WjNCKytmSmxZMjFYRkRPY0FSSmxhYk95aVMzdUNwTEk5anJaakNEa2FWdmNDQ2p3b2duS1NoV2R6WFpXbFpNdlZUZ0Q4THBxbENMcnFnYmNCK3FZd3JnS1lwVDBjY0NxYkt5Q1ZhbGtFYWJuL0Z5bm9nQ3JQS2ZxZjUxeEo3c0dCMlpYY1pteG9TT3p0angzMDBEWmk3YTAvMkFJUjBVbEJhZzlTdUR3NktjQXpsYUI3dkhadldwaks5MGR5cnE2Ykt5RFVaUWJSMEIwNWJpTFFrSEljU1VtZ0lLK1N3dXFnSENub2lvMlJRVTF5aitCbkJ5OXBwaFZLTEd5QzdaekZLMXB4V0srRThJaFZDV0xOL3VMdG5VVTRheW9ZTG9hQU56OEZkdGFTdlk0cFYwQkVXMmxzNjFjenFsbEJLcFR5S2dNQWhyWjFjZGMxUlJPdFBtdldOa2RjS1o3Wkt4YVdqaVBMSk1wcDdPWkt4QStycUcvb0pManhmMHBuSmxxTG9EWm8zZ3lVMG1LR3lzMnRhS2Vjai9kMUMrckpTcGxCcWxUeUFxZ1IrRDhLaktsbVJMMmd0VWNBZEN0c0wraWpDTlQxb3FxcWtIMk9IRWJHNXNERm5VZzVBYSt5TG91MlZVMXB0ajFTMlpRcXYxT1JaTjlJV3pSZmdhUkJ4S29CRThVV3lxbEpGdHJJYzBBeE5qU2plZDk5Q1RZL1hEZlN6Q3o1TTBJWm9WRXNXblBGTlRzbDhvb1ZDMVR6YkdncUZaTkRTZ1Z3S0srMXNHRE1LcXhaQ1dHVk1EeXNpRXIxalZTUUpVWXdqNWlIT2xUaGRIdDQ0U1FnOUNOK25sOEQ5ME5NSWdBZGdyNDZKcVJpUjlJOHZSZEZ2YnIxN20veXhVTUtqTkxNaVZVQUR3dTJDV0doaGkrRjU1VFdNOU05Y29nem1zMWRuTTR1T0YvTEFFWVdkY3FuTTd5Rm15cTNJZndtT1JPZDdZMWlGV3RPam9ZOFRvNDFtVFY1SXlzZ0ZGdVJ6c2JXRkdiTklJSkNEdjFkT280bFpHN2pXQndSRnRWVEt1V3llQ0J5SktPYW44b1ozZXA5WGRkTmwwdER1YXl3THo5Y1hQWWVEQUEwU3BrQk85c2JWY1RPVldsZFB2NHV5ekVrenhIdGp2b25Ib1NrRkVXTm9vMWQ4RGhjUXB1dGQycHBOb240QnpvQWlKMWhCRlFnMGRWdGRiR0hIRFFXdXNobU5FUXVrTE0yUU8xRzJZOGJnVFhxRmhjQkpqN0VqUGdjUHRzOFVTOHFQcFBCL2RYem5PaDVaNDM4dHpINWVjNlFnck9LclJSZktteXNCbVVEQitQaFlhYk1sVlBFUitHQ1NJVFR6cjdhbTJ0QXJIM2JnY0V6UEptK2NyNWpKNE5uSE5GRFZyRlhjSTVMZTlrNUpudytiZWRiVitGZlJ6WklIYU9PYU9zTFkwLzdVR3M1OERqckd3S01JTUZJR3pPRVcxL2pHc2RBdENONmhFQUk0aEJlOVlYZVJST0JTVlBBVlBBcXZJTTVieDVoVktXQU1QNnpCUnkzaWVzY3JpZFZkRkJpbkJ4WERuRzJHUlkyWGJDdnAxbGh2R3RPOUJ4dTVoOTA4WFF1NDJsblNBck1GZGl6TWltOHV3UkN4UEdubk9TOGx3cG5iT2lEcVRBanNyUk4vUGNvQVNjQ2JhQUNxVk00MHlsbmpqVEJzK2J3V2xBRzIzL1VLYmRraXdLV0lRUEd6V2FjenBvU2x4UEVqODIyY05Xa3BTN0Z5enNEcnFwZmdwRzNqYWh3MnZnYmFTUUF4dUxXWll0N0p6eU5lOEpvWnBOQWN2REZPZHcwd3FZVDlBSzFyWnovRGRiU2xMUHAwcnlJeGdRSmxLOUFabEVxN0lPWHBvaGc5UElockNuZzg4SnNPeGlWNFpXQVlmZzRzaWt4LzhreTJaOWw4NjJ1cXdyZnNjSUg4K3VnVG1WR3lpZGRlVllVZ0VNbjRHWnpnMTRFd0lzaDlzeDJjS0tpV1hSZXVPRTVnekdPUWdkbFJLVlZkbGV2cWIyNzlYcTBRbnN0czJWRGFCTzBjb2V6c3J1V3RIQXB1NnNLRzRJQmhOMGFHVTJrTHJNS0dSVE4zSG1iQ0R3S1YxNHp2a01FREc0UWZaVnNwVmxhTlUybWhjNVRFWjNOMWgvenFUaGV1THBXMDVaV1RHVmpiM2Ribk5teEtaQm5OOEpxaWRhVkxLQU95QVJOTFMrTUI1NFoyK1ZhcW9NTEtyb1ZCbG5nZWZuVFBBY29ITldDU3ZsZkE4Q0kwSEVtQk5CbkJsWHlNcnpVN0E3V1ZtOTRQUHFRMmdtcUt4K1dER3NudmlsbWNTT0JKcU9LMW5ZeUFJenVBeWVzcTNVZFNLM0tmV2NZS0Q5NUhtZllPVTNxc2VyMkN0WUVVQStGcGZxZE52Z1BCWlVCaERyR09OUlZsUXNoOHJMY2FVQ3lrSEcwT09Vd1RsTEJyc2g1c29FTUdlemkxRTRIUlZ0MWljcDV3WkVGWGRpYkNrRzhZOHZYNzVzYk80RTBpb205eitoalNpT2Z5M0RocFhJdHBWaEUrVUdRZHZvV2p0Q2htckdIZjRZQXpLZ0JObkd0dUp4RkNlR2RoVUFmUUxMSzhrQllBUDZndkZKWmFqTUczWGt5Y3k4S3VDMHE0RXl5bXd0d2R4ZHYyTTBtSUJ0SzBMS25mNjQwajAwQXVxNGdVa2RXR2xoczIycUpjNmRaQ3NMMTlveG5sVEpHNFNZVlJJR3BEOFRQRkJ1TTZPRWxiUzFwbGRpZDRtR0F5TjZaSXVwYkM1YlhKTjlmZHBiVGhTeExVYUk4SUcxWElZQnhXM1RqczZLUW9zS2N4ZnhjUW1kbndSR00xMEduRmNDeTJYWXVuTE15QWtkZ2s0bWVQaWN6c0x5Z3RoY0J1dDZnb09xUzdZVkZYQURMamFvc0I2czZvZmNaV0FaU0lSWXFTVWtpell3dHRZYWIzdlVPUTl3MkhSeElJZzhXd1JWZUU2OHhpNFV0TDN6UnBoeHBsend1WnJjcVlDcTFJM2pQSTVkbkpJeWdFb2hNYlBxVkpTenJ3enhCSlRzNXpOK1JlVVNneGlrUFFWRjNKVkJlTlF4YkhFTnJFTU52RWRGWlZWOWxIOStPUkdFc05aUXB5VE5jNEMzQUc3WEY0bmd6cStEck8yemJ1YWFPWGdkYUZjZGtFb3RvU0ZCVlgycUowQzhPV1plRzRLR2xwZ2hBMFhmVE9QQ3FWMnFxd1EyNlFXZkYyUE1MaEkydzFsVkFhMmFQc1lkMHphMjVNUVJ3Z2NaTjZ1UURDaStaeGlENFhFTTJrWnhPVDQxRm5abmFSbGNwWm91emxScXFkYlFWV29wUW9TQjU4UlY1MGxCTnJIaS9Bd1hTNUxyd0RWbHBZM0ZjM0J5aVlHYzUyVHJpc3Q2a09YZHdJbkFRdEpwcDVRY2h5YXF1WU9WN1N1K2Z4Vk1hVjNkYzBSRTJTNm1VWTBnTHQycE1jWXFyS0lROXcybDFncFFVTXRRWWNtbWJ0NURUTnhkaG5VQ2pRcXRiSzlTVVN6dnJDMG1taGhFMWUyRlMyK294eXB5L1pBU3V0a210angzdmNCQzI0UFg2NW5icWtCQ1JoZmpTOWtJWVBuZWU4Y01hZ1ZPaEkvM1QxZkFtZHRBV1pzQ3N3VEpDa1FWTmEwcVdLU0tQT3BIQVVoRDlEcmJWY3lvWWt3cWh2aDE3dllBYXlYTFF5S0dZZHhsVURGcDQ5NHJCWFJqWWdPMTdERFlldE5JVWovZXpwNlMwbG5scEV3c1dtSk1rT3dzS1hlWktFQWpJSG4wRVFKSVNhUkJjTzZVTUlOejdwL2JFampudzRmdCt4bUR2a3N4WDRHMnJJcmlzN3FhZUt3QUZNUDJPaTduNGNyaXVad3RwU1V3cGZMeFNuT1JTcklxdXNjNVpGYVh5c3FSV2ppWjJEeUFXRUlMMzV0VlNvUUVsRkFDak9lR0dTRTdBSEVRZ2RvL0xTdkNPZ0dCdmt4c21EYnZsUzNGcDV2aGFCMlRBR3FSS3JLS01yaExWcGFHekVWalowT1F4RGhhQ1RBK1F5UlIxZDE1YVF6ckpudEwzUmlic2lwakc2amxnTDR5cWJTMHNOWWcxZTg0dmhiQlZyRWxLNjRDVWNXWVhEZkt4aHBJdXhpVkpaVXhzYk15L3VSQktUTlJRNGtRM0xkUllMUzBySmpSUGxUUHFZNmdkSnNFRGMrYVFYQW4rSGdzTlVDYlJ1RjBPajB6d25BN2JXRGtiaE81RW5zMDBxZVFoUzFsYUJNbDVNL2NBYXhzTEY4ckt5cWwrVGY3RUxMRUd1L2l4aWltZEN2bzBUamZwakt3YWdnZW40ZWg1djdMb2tMS2JMdXl2SGhjWkc4ZGhHckVEeDdIZzkzWnBwSkY3cUJxTzNpVnZlWEVEUU5Jbnplb2U4WXE2ZVBhWkJaMkp2aU0zVzJVQUdvdGVrUkNBR3E0RWtGMVgzRE9uUjExeVJzQkwxdFJhMFBWY1ppTkZYWjJjMzRGc2t2b21JblFRNmx6cEpvWmJKeGs0M053S0pGQnF1SlNzckJ5SHlkeEtPblR4UUFTQm1TM2orSk1uc0hTbGEzRWM2SzlWV29KVm45emZqd09NN2hxWUFBcUpRd0UyYTNuQTQ4SjJRR2VnUmtwWk5pdlNZK3lzM0VrS2Q0b0pJd3N2SUhsM2NXZ0x0NWs0Tkg2T210TFdkcHVyT2t3RU11cFljN2VNdERSaE9jSTJ1aTVKaFZJelh6THl0by9HQVB1Wm95bzh3a29kdVZnSmdsQ3Q3T2hHYmdJRDRNcTRzaSs2M3pVUzFGdUZGWEZscXlhajJlbUhsTE1jQnFZdTBGTXVSMjhCYkI3bE94Uk1TaUNRWEZoQ0t1d2toWitwWURpR1NnYnNLS1Y4TWlTUnN1SFNJV005cmtsUmlJbFpadXFYanNRSzhvb1lKTWdxM0pLV1ZraEhiaHNWeEZVenRoT1dQa1lpamNieDU0SUtzU2RUK3VMcjNjckdLeW9ZZ0ZpR1I5aUJrNGtmbG9VWCtKSWxRUlFxYWJtcGduaHF0cFFwYjZSVlExV0g1RG5yUzRoRW9HWnFhZXJRMmRoRmJ6OFhlUHhTaG1EYm83MGVJU2pvb3JPMnZLOFNKWEk0U1VtRVU0eldLRHpVRHRXVFl3N3hYbGJTVEVqNEZSZzd6S25Lb0dSQUx2MEdzOVRnYzFCcEN5d0daUlFBdHFWejJ4ckJjQU16RXBmWndGU2EyRzVXMFFCRmpTTWFwV0FFRmEzSGNHTjdDeER6RUN5SWtKOTdxd3JxV05UV1ZvODc2UFBzalBrajJ3dmdyb001bExaS01FVEtWcWwvQ3ZuV1ZGaUZhL1N6SlVRd2tvWnNyNjdZNnZsU1JWMy8ydG1OVE9ZM3ZuYXhZd011b1BLcWR6UjF3N0lxSHltbFB4YUFUaGZVN0tvMlpYWWo0QVlKSEwra05kS3dSUVlFU1RSYTVmc1VaL3JWQzFUTVR5V1Z5WW9xTnR1emFIc015djJ0dm9hcnhkZnF3WWdVMWF4Rm8vY25xbDFGR3NxSyt1QVJPVjhCWDRHVThXY1pUQVRpMnE3UWN5aTBPMFYrR2hXQk1OUlVrbjhIMVNzV1ZFNUJ5M0dpMEVDcVVlSm9CZkF0RGE0YW1rZFhHMzdBR1A1R2dlYjg0cDdVYXpwb0tSemRGemVROEhrb0hHeHByS3kvSHBtNXQxMnA0N0o2eFRZREV6N3VJTkVYU3V4WVh2RnNrWUFjK3lTeEg5c2Y1ZnRLelU2SWJ3VkJjVUdnNWU1Rk1DRVhTRXJaUjB3R2F5VjE5d29NOWd1UGpUcUpkVlRxUjR1RTRuSm5MbGRXVmtFQ0NaTGQyVkxGK3h0YW1leDdJcGlyaVNEVXB2cnBuOWxyd0dNQ0h5cHBNSCtwczZMSUxzdUZHVWoxWEVPWGlxYnFTSFBVS25DbHBXVjY4a3F0VVJWTkRZNFROYW9jeWtvWWVUVTVuZ0dFUWEvUzFEbm5FNEFlWE1jS2pIUEFtRlZqQ0JFTmFleUxWTkhmcjNweDh4VXN0Sjk0aElwZkg0SEtFL2VEYUFySzZsU3lWVkZiZHQxZ3hUSVZrM3BwcFZsRlhpNHBFaFZCVE9icXVvaFU4NU1MWG4xaWFodlVrSEpqU0NNYzAxdExGdmVWVkJ4MERvZE02amZ0Q3U3RE90SXpZeHJjMHFwMUpHUDJheVlGejJHYjZIdk1yTzhjbkd0VjZHam0zdUltU2ZEMkdwV0s2dW93YlpHTXhGS1FDbzFwT010Y01YRnBSc3QraFhHb0FvbUYzc1NUQkdnVGdsYkJLV3dzUTN0WnFhWVNwMFoxQ2ltUkRXRmNDSlVQWUowMEJJNUZrS1lOb2lmdVF4bU44OFNXVlhXTE1hVXFxcWdDMEJtUUpSNnNrM3U5TkNmNmpZTFh4QWZxc1lFZ1ZMQWhSWTJBdGd0ZmxaTkZtRnloeGRyTGtBZFdsazREODhNMml4SHllcElkaE1IckcvaVIxWkd0cTBNR3BiRGJSUFlPWGVTWTFNNk55NFpzdHZHU2t0SytYYkZQQVRqMkQzNzFzYVBFc0FNWGhYcnNaMGttL1hTdGtoaE15QmZzYTZ1WEZaZTJWQ2UrWU1yMStHS2d3clF5TllxMVZSckIrRWl6QW93Nk5zZE5LY3lWRWtZZU03M3lzNnE0a0FIcDZCaUZrbFRrSXJWQzVvWVY3dXp3T0dDejRVSjBTdHEybFdNSnk0d3RiK1JldEw2dFpGaWNuSm1CdzVVakN2WFhNWlZKWDJNUWtiZitYTjVFV2Q3OFZ6OC9KRXNNWlRCaUtOenNtMWluTFJVUTc0SDROaWRhcUk2OGo1c0FGZ3hjUnZlQzdpZUxKWGZRWXhqWloyQ3NpV0Zld1pYSm1CSWxaMXRkdHJYNGhTdWF0ZUtzby9SWk90T0tXMm5tcTFvVHplSzZkUldBV3UyTlJWYjRocTBTWG0xR3Z0dWdIcmJyNUlYcW1Ta3RnNUN1REUyTVNsUHdzWTVrTkUyV3AzQXFpWmJXVkxBeGlCRisyaUJaYnVOajZNQjZyc01MQzdGeWFzYVlEeW83S2tvUHlFdHczcEVNWGZQdnhBSmkyakFRUWdqcnowckxJWlNXWmxJb05od2Q1eEs0QVI5bVlOaldBYUxybnVJbUplQlZOOXpCT1JPYlZ2YnIrbVRUZkZTRUpMU1JuSG83aEVKb0lpOE1GcWp4bXZnbUY1VVJaejR6TEZnWlo4Q3R1Mlg3Z2dWY2NLbTlnVnhJc09IcXhYZ05NS25GV1pZbmYxZEJuT2hheVhxMTdRd0ZsV1cwOWVOS3lWSkZtWHFhT05HQTVhQ2VnTWJKM1VVa0dZMWljM25LV2dqcThxZlZZR1FHMWdSdDZyczYyYTZIaXFxVU9xZGVzSzVObVg0bkdvZkpvaUUxZDBkRjlsVlZrdlQxL2tFRWFhQ29ZT3dGcGNWY29MTSs3NjY5UHhDOXJXcWt0SDBzV1VZbGQwVkNwdUJaL3N0VlJjR2d5OVdYMitVMVF0aGk5U3pBcVN4elpzeStPaUZ6QllueVNHVjZHa3U0NHJEOEJDT1pCVjNCdkQ1K0FLUkhOd01Fc0I2RXpIbkpwa1RBZWlVbEVHa2NFQ2VCNkdEWlRwNVlFSlRsdmRya254WWpUbGxNa2ZOdFh3RGpNN3VWaks1SlhVVW40M3JycXBLMmp5dGF4SFcwTTVHOERDOHJ0SE1ZczdLU2dkdVZRTUdUWUZxRnZWUzZya0Qzc0RKNDZhZmRZRndvcTExQU9LQ0JMaHZ3b1VnYzhJR0FOeWNSNmtuWnJkSlBkc3V4bnlqZmQzRm92VGxSTWRFZHRPbDVDTVY1RUhzWFFCaXM3VE93dklEWmFHajJWbnBiaDdjcEs2M1Z3WUVNTHdxYmp6eWw2OTlzYXdGRmtGMXlxalVVMzFIZkM2c1cxWkZWRnVYVlhWZ3o5a2VFYXcweXMxbFdmbSthelFBUVNXQStoS1lWZnNaalBuY0FjVUI5b0lheXkvVVpYUk5ja0RHamk3N0dzV2J2Qm82dFByV1BxT3lWa0JVcStJTmVxcHpOZFlzL3UwaWZoNXFtcHFJVyszM0pWU1Vjd1k3MEtMNFU5bFlkVTZsanRTbHM3bG1maTlnM1l6ZVFmVmthR0ZhVjNPRENuYUQyTjh3c0VERmtsRTNSek0zWmdoZFlrV0hzc3pxNzBGSWVjbktrVmt0OGV6TXpScTlia0d1S29qUkxCVlNvZDNZMXlQcUtnWVc3SlJRVFBWeXk1eElZTGpPZ3hnVDUyUktKVVkxZE9ySWlSZDRmdXRReC9BNUFjU21FanowdkZXcmtMenZiV0F1OUhPV2JHZ3hGazFWTlRwbkJLazZUZ3dpc0kvSGN4WVhQMXVBV083MlVMRmxCVHErYVN1MlZUVXM2aHJ4TTJDRitoRW9yMVZJQTlabUZVYWFiMWxTU2dac1ZzNHN4ekhsVkxvSkhyOUg0RGhPTlRrSTFYQzAvd2lZMk5vV0FHNVJsbkhGbnE2b0xjY3BRZGRNdUovTzE3SlZBNU9ITGkwQnFDenRxN1kxKyt1Y0NkOThxTEk4TUlIQlYvY0tqeFFUbWUzaEZCUzNNeUNxbkRzdXltMm84MEhqdkZGVHRyVVJtTmFHSnNtVmFoSW1qVHNVWEt0UVpUQVZzN012djgvK2Z6VXJaQVhjTEo2TTRrb2U2WFAwYjZTbVdXTkR6eVVwUThibCtMdFd4NHR1cVozNmNSWVYzeXVWeFBOd3ZJaXFpUUNTbXU3c3JnVHpSNm5reWhwQ2FyWHdGeTF2R2Q1aVAyY1kwNmxGcjVOamhoZzFZNitOQjI4ZnRiSzgzczhyZjdrTEpiS3dERlBiTGcyNWEwQWRaSkVpcXI1cGhpeEtNRGxSVXRjc3NxMWhyaUxxR29IK3plTmdWbTlPZW1qc0VUVjhKZEYwTkhua0lGeFdZMU9CNFlycDdydFdKN05nQUFBUFhrbEVRVlEzb05zNW5wbHlWZjh1MkZvTHUxSnJIdmVhWldRanFBa3NodEZhMmd6c1NHM1pwa2J2ZzNIYWZGOXNsUFBsbGRqRmxLODBHeXNtOE1yNE1QaG5lTldFTlBHakFJcG1pbFRQQVRkVFJUWGxDQllIWUFRdVB3QTM2eElwV3RHTjRxM1kyTWhpR3NVcHVTU25sRUpSRDhQb3JDN0NGWVZ3K0Y1MXFUaGdhYnhzVHhXekNHWTBaU3NiM2xmcUF5ME9QTmpOeTh4aVFRS3NIWUZRMkhCWlZ2VmJCdXEzbTFvV0thanFhb25zTTZ1WlVyNkNqWFdOWjBsNUUzaDNqVVJtYTZrUDNNSklpeTFMbStrYWhRcTQxTjJpWmphNXNqdGxMWU5aSFpySDZxVUdtNHZNYkRwNlJ3MkNGbXZ1eUZrckJjQ3lNdEZxQmFFQ21zSG9LOUJaMkxBL2xKY1JxU2FEcW5hV2JyWmRHYXozRExnSXZCbG40d29HenRieUpHcXNsd3hraGhIclRqVFlGWEN0T29LUzh1TGRvZlZkQWJPeWxHVTZubFlwWFdadHM0blhCcTZXeEppdE1Ob2tIVUpuYm5KcGxRbSthR3BZMmE1R01WMlFEMWhSdWJCUEZLZHVtZjVPSGtMSHowRjlsdUU1a2pCalJhMG5GRTVDVUdxSHczMk1talo2eGtnSU5WblNuWjFWWlN0SzJxS2xSYUxsUWdLN3VUcTdKRlhKd00rM1NPRUt5aFpOSSt0SjBJNXFNWXk5azJxSkQ3ZFZXZHFLWGEwQ0tOUjBDY2pnK0IySVl1MmZjQlpKWmtNRmdNMTFyMFg5MndpbGdoRkdnelZuZXhscUI3eEw5bVMyOVNpWVVWWTJuWE9aak5CUnN5RHNRUFJXVzVoclo0WGNkQzRIVldSYmpnSnI0c0ZvZks1U3pqUTdyaEkxVWViZFBkRWJqNnNxSXZUWlFaNXZhMDhyQUJzQVcwVXhlV3l0QWs3QTJLSjlacHh6Q2lvQjI0WEZ0WUFlWFl4cjZhblNxaExncHBFcVdiR3dMdW5UZ3JWK0lqV2xMMjlsamFBbDRFUU1Hc0VycDRhcGVaaXF1d1JYTFhBcU9DZXJ1MzJtbXlkYzZvV1RTV3BGQUdkemVUQjhSVEhWTUV0bE05MENiYlFDWWhQanEzZWdZcjFGR2RZSVFqaXVER1o1elovQXpvYktHT3lMeHRpNmM0Und0djJhbnlXbExJQ25sTGh4SlJYdDZBNWViREJXRk5PTmJ4V1oyZDAybW51NFM5WUVDcGVwcFYxelNXUkJXeEhZelZJdjFDWFNvdXdxcVgzakJCQkRaZFlRYnBUUVc0WlFsUzhyNWtINHN1U1JtZzIrKzNKTjEweDFQYUFtRWttdFlsRWRlR3BKRU02a091Q3FDUjIyb1N1amo1SVYySGRUMHpqNXByTEtUalhGQVBqZFFseXE3eElCeEFRUDV5TWN6RzRWeEFLdzBuNmlsWjJRQmNlMnBMdWxrdXh4cW5vSXpGZmdxeXFqaWw5UzFWTndCckZtZXllb3BzOHlPalpVeWJaZGZTOEN1YVRJSnVtenM1dE9EYU50THBGRFEvUGNKR3dlTGhtZUwxbkIwS3FpVURTY3NpVVZEODlEaTNIdHJLdFNVTHczUkxpeWdaRCs3c0Y4SlRPYmdZc3JHdkROVUZSR2wxaXkwTGwxWWtVYzJhSllNb2c5MjBJOHFXNllEQ2cxTXFrMEpISkZLWGtiZ2JScmVJK3FwWU5PWkhyVmNEVWJhN3Bqc3BoU0pOdEs2dXBnUk5BVm9PUzBtdWdCZU40YklaZ0hodVBaL3MxRU5hWDZLc1ZyK1lOcmgxTmI3aXBSMFBFNXpiTlJlZ0NickhSVXc2WWYwN2RMQkpsMWY4S0I5YXMyVjFuTnFBc2w2MkxCQmhlaHdhbGVya0htQjFKRklFWktTRXVzZGw1SlFqMW5KbEhYU0NGMzQyZ0o5Q1lHclhlbGtuSklYcVZQOHNEK3F0cGxDUjNYSDJxZktxMHlnTXArS25Wa0t4TmxaOG0yWWtJbFZNaUNuWFV3bDdxem5CS1N2UXozbTNQdDZvUWJYTzViNUZpeENoL2ZIeFVRVy9BRWNLNnpDTnFLUW5MOXN5d3FtS3V3dnFTWXpUL2FQVk5OcFZ5aHZSVzIxYXFjaUNzamRXdkJ3SUxVdmg1VnlDemJXb0MxcEpqSjY4MENXc2wrdWRLQjZUNVJ3RzFtbG9obmxwYmc0N2l6NVU5aGEwRkd0bVJMRllCdE85OXk5N0FwMHorWkRUQW9nNmtTTFpzTUhnL0lGa2tncDZDcHZVMlUwY1lWU2RubWtqd0JkT21YYnhUV05XenVJYmlwTWlvVnhFY2taRW9haFNPaXkyTTNLMGpjQzFMaFZEd2FxRzBadmtjV3FDbnJHNEdJeHlrcnFsYldkdzZMUXlCYVpSOEhtTFJJaFFXc0hzd0Q0MlpYVkxOa2Y5bCtGbFcwSFZRMmx3RnNDL1oxRmR6bFFSMEthUGZvK0ZkZnUrL2R3VlJJQ3UxQ0dSN0FFSWlBaGMrQVpVRjBrT0JhUHhtVXFnNGk2NHZRblU0bkZEWUo5TnorMWZWWHZlSDlxbXIra1BJTHg4b0tjUlYvQkZieGJFMEpNVDBrU0Q0dzZML2xOWThvY3NxYWdWZFUzQTNNanhoeGNHdXF6c1BINGlycGFvdzFxNk95clZqdnA5TnBjNTlFOTFMbGRib1lWekpXZGltV2ZBVzJTTkVLY0RhWDJGbUJMTEEvdUt4bG1oaDYxM0lzMVVSUUFwYktmdHR3eEwwMnE2T254NXBReFNiUG9qQWcrdjVoQW5ONkxIVlJEWElzdkt0UmppUzBxSlV5WlRBWFZiQUs4MkVsRkpXYVFkVm9xVUMxVW50N0JWYVRRdWRNNlN1cWV4alFKTjQrMGljYXh2L3V0Ykt2ODNFVGJUOEg4Z2pjT0t4T0ptYlVhNk9PVlhodDNkRlk2ckh2OVhvTnpGTGNlRUExbzgrcEttMExBSFBIWjJyWUtqRnEwaGZaRml4c3FISmdEM2VENW4rVTBrYjFtRmpYa24ybHZNU1NPc05FL0NkSUFLRjBTeXRxNnVyT0hVTjVnd2c0R1pvc2dibWdnTTV1Y3JhMnFyUzJJZzFjYmlCQmN4WXpnelVETkxDdkw4R2JaWE5wNk9SeTNMbVMrS2s4M3pSSUFLNkExaW9LYTJJOU5hcEl1aVVGZGZDOTc2NlBGWlV0cVVyNktiV2srelpVMWEvWnJJWEV6dHJqVE9mejdod0t6aUNlWElhcmFIdGJaSU16KzJwR2dhekNtdzRxV0FGdkVkaG9kWXAwWHEwcFY3RzFZV1lXYk80cWhHcTQyK1o4Qll0ckxXdmx1TlBwWkFlYUZGUzF2dWJQZ2JneHNxY3BuQWFzekJvdkthRm9EUThCR3RqZlVPbDROQUcybm1RVjA0ZmVKZ3VtdlgyZnNyUUVXWmdoTDBKblZkWWtuM0RPWkllUk44NlJxUFdDbXN2R1ZxRU1Sbnd4UUF4d1M4RU1ZbzNJem1ZMitCQ2NMcDRNS2l1eXVoSW1hbWxiWkZjTm9ObDd0cCtSSGQxOFpqUUlSS3lYZEZSaE45OC9oeUtxd1hXTm83TzF3aWFYb0hOMTA4UkVaWldFcTZncm5JZmp6ZWc4amRSZjFYRUw0a2tYYTViQmpLeG9LYWxqQmplSGxWeFE0R2F5Y3BXNGxET0FLdG5UeEhBdE9mek90WndIQU03c3FWWGtWNnl1NmthcDFuSGtYS3FXRi80WEhxamVuTktxQmpwUjNsMWNoM0VqZzErRXNnZFFoc2RHMEI0Rk05c1dBVldwdUF5aXdUUGxlWnh0OVZ5WlZTMnFYZlJlV3FUQWlscHI5QXBvV1RqeHltaXQ3TndWNEpUcmlaeU9BOUIwazdIRmZVTG91cm1LWUhWblJRdnFHTDVITUhkcUZjUjJxV3BtY0s2ZVR3eDJkaXBXcnZpRGlscitmS1dxM09XUldkSEt3QTRldTh3amNoYmVSekZpbHFqalpOM3VmQ3Bma0owL3NjVnBuWWs2TDBQSTc3bHhkV0NaODdXaVdtN0IvQUdxdVFTbnVqR0tzQjhDSm1pSnE4cTFwS0lWV3lxT2lUSzY2cjE4Qk44cjc0L0FFNzFmZEMzeVBTMk14ZE9wbkUxdGxWeEQ5Sm1WT29nZ04rcjRQakFYVkZQYTNFZzVqVkpHRlZVR05vbEgyMEdWclVCN0JPeVNXcTZXcVlRZFdSOTJwY0ZNWU13Y2tiU2dDS0NxRDY3RGlpV3UxZzhNUUM5QnlmY0ZxVzFMK2pMNzE0cU5DdXpub1N4dDBkYTJndFdOMUc4RjBCSzBOTjBudWltZWxVRjlkSWRBZmpPNDRVVDNDalFMb1VlTEhKRlRPM2dtcFJ1SUlPdndCUUNicU5lbzNxdFo5aUY2eFZLMTNHUmxvNHpxaW1xK0NHZFRpUjF1Ulk4b3FnRTAyaFpCYTc5a1pYUE1xdXhSSEtsYTJzYVpXTjRtUnFaVWowdkxDS2hraktucU9RSE51U1pWSm9LdkFxUzF3cEVxdXZXREMxQjJ5cHdyQ1BzUk1FUFZUT0RNTEpNRHY2cWVLWHdpMkpZVjVTcTRxS3l2Z0dzSENMaXVqMmpSNTlWOGdNcVNKMkZKWlJYRUhWUkhqM3NGUHJjdDZPcHFsVzFHcGF0UWR0MEd2d2ZNNm42M0luc0dWRmhKR2FCcWdxcUlWNklzWGxsWmd5U1BxNFIzYm50M3dpNWN2K2NOMnlxUUxXMVQ5NUtZVnNXV3RLazRjQjlXNTNXUVFmbFFZUjZXbDRIYUpaanZWRTBENXl2cStSS2daQ3M1cWRCRVA1c0Q5NGNBdlFMbFNnTmFTTUF0SHg4OEJ1TlE0MXpkRnNYMzB6S2JjczBNTEQvaWhrcFF6bDB3aVRxS0xUZmJLbUNteVlJQ25LMEliYWllQzRDRzlpU3lMUTdjSU1HUXdhdTZUS29xNjBBcGwzV040MExacGNhMUNLS0s5VlF5eUlFbjh3MEY4RjZDTDJoOG8zaXhHd0M3czdFV3pDT3FtY0FwWXhZRDRqc0F6VlMwc2wydDk4cEE3dnJLb3BoQ1ZTb25iWXBnSDZtdlNuMjRwVEJWNHNkdFYzQnRNcTVrODJ5K0lBRHZVSjB1QWxrQ1ZUeElhUG0rVU51L3FrVjRGMVR6SFhDR3JYSUFxSXRCS3lwcUs5OVZ0QU9WczY0TzRPYlg3cEhMVkNwWUhjUm13dkxSN1R2WUFLQkJONThMR1Z6RHVGeitoUWJXZ25jUXlDWkFrK1Zic1BTb3VmOTMyNjFpWmdtZkNwd1JiQXZxbVNxcmlVMlB3aGphb095WXF0SWVnVlhWaVRzbXl0YTZiR3lTcFkzZ3lScnBJeUFlYVdERHh0cHNYd0t5YWxNREtOUDdZQlhNcUVza1VzaTJ1QzhGTkFQeEFLVFZmVDFvNlZ6TTBFMGpGKzFyV2NVdUh2ZHlnN3Znb0ZwbFg4SHB2SHBNQ09NUlVQSHpaa0luc3FsRktOWC9FSU81MkUwU3hTek93b2IyVm1STFc1RDFYSVUwcmJnTTFBeldneUM3ZmU4Rzd4VUFLL3RhRUJhdDdsdXF0eVA3RW1zYUpRT2o1Rittcm5aZkN1WUNmQlVBV3dTaHlkNnBNWS92QUhHMVVxT1lwYkkvZ3k1VDBDTUttK1VPM2dGdUM4NWRnZkRWZWd1UERmSVRySUJMc0xyY2dkaDNDRmdGWmphS0o0SXYzRjhBTkVxdnV4UjF0VktPZ0xvQ2Exanhib0JBa2o2djdqL2ljRmJBN2Y0cmZSblFETFJWaUcxM2kwdnFCUXJZVnFCYkFEWlQwWnBpSG9TenZRcG9wS0lGUzNzRTFIZkJXbEhYZDBIN0xuQXJxdm91Z010bGpIQmdabmgzRW96L0JLakxNTDRaMkFxMCtoRUpyOWphVlVCYnZOekNJVWlyb0M3QVdtbUZ3NG81QUszTXRCNVZ5cFpNU0ZnczA1SnlHVndsd0Jxc0VHQUFhMlpVMUNqVWV4WEdzRTRyS3JpaWxCdkZ6T0tLbzNBdUFyb0U2UUZRVTN1OFlwTlh3UzVrKzFUWnQ1VXJ3b3VONEtpVUV3K2szWldEcDFSWEhOUnFYYjIxVHMzOTk0NXlaU2czVm5aRk5ROUNGM1hlWnlyNURnQlhLaXdDTWEyTXhlVERZWGdQMUZzZjlRTktaYzBrODFSSmszcjZFUTNyQ21CVnlMTDc1RWpaMXBJVkRIb0Z0aU9BSG9CMEJkVFZ5bHFCc0tLS1MrQWVCWEpWTFkrQ1hBU3VHdk8vQXVxN0d1RWpEZkdLZzFvS2Exei9kbW1pOUk5U1VHTmhsMEF0ZnVsSEFhd29Zcm5Ta21OWEFWdUdFaHJFVlh2VUYrQTVDdDJQcU5PakRldHluYTRDbWVVb2xtZVhMTjRBcTdDNVNqMTBRN3lqZ2wrdDZDTnhTUkhtSTVYK0Nwd3JlWUIzUWZkcW5hNHEyMUtkQnVjNEdvWnNuNDlaT09pVmlud0hxSzlXemp2Z2V3ZUVoMkFVNSt2dHhaOUNkOVdxa2g0OVYxOEU1b2o2dlZ5bjBSU3RBeUdJTzVlZFhSS2Q1QjBWR1ZYcTJ5cjN4WXArNVV0K0M0UUo0UDFOMzM5cFFNalJlamo0dmIvRGNyNnJRYzNPLzByam10WnBlWUNCaUNIZkNlbVJiTmhiSy9wTlVQYzN3Zkt5NWYyRDdPbEwzL3VQaHZlL29VNFQwRjhmK1ZOTTJ2eW9pdjBqSytLSFFmZEhxKzBibmN6NG96NzMvK1k2TGJLdzFvLzVCN2VPZjFSbC8wZHU5Qjl0bi85YnZyZi9qK3YwaDZ0dG4ydHAvci80ODE5eTQvenY1MzkxdXZ6emZ3RGlmejZwaFQxTVBnQUFBQUJKUlU1RXJrSmdnZz09Iik7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJTtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtkaXJlY3Rpb246bHRyO2hlaWdodDoxMzBweDt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uO3dpZHRoOjEwMCV9LmNvbG9yLXBpY2tlciAuY3AtYWRkLWNvbG9yLWJ1dHRvbi1jbGFzc3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lO21hcmdpbjozcHggLTNweDtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGV9LmNvbG9yLXBpY2tlciAuY3AtYWRkLWNvbG9yLWJ1dHRvbi1jbGFzczpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5jb2xvci1waWNrZXIgLmNwLWFkZC1jb2xvci1idXR0b24tY2xhc3M6ZGlzYWJsZWR7Y29sb3I6Izk5OTtjdXJzb3I6bm90LWFsbG93ZWR9LmNvbG9yLXBpY2tlciAuY3AtYWRkLWNvbG9yLWJ1dHRvbi1jbGFzczpkaXNhYmxlZDpob3Zlcnt0ZXh0LWRlY29yYXRpb246bm9uZX0uY29sb3ItcGlja2VyIC5jcC1yZW1vdmUtY29sb3ItYnV0dG9uLWNsYXNze2JhY2tncm91bmQ6I2ZmZjtib3JkZXItcmFkaXVzOjUwJTtib3gtc2hhZG93OjFweCAxcHggNXB4ICMzMzM7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTBweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotNXB4O3RleHQtYWxpZ246Y2VudGVyO3RvcDotNXB4O3dpZHRoOjEwcHh9LmNvbG9yLXBpY2tlciAuY3AtcmVtb3ZlLWNvbG9yLWJ1dHRvbi1jbGFzczpiZWZvcmV7Ym90dG9tOjMuNXB4O2NvbnRlbnQ6IngiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxMHB4O3Bvc2l0aW9uOnJlbGF0aXZlfSddLGVuY2Fwc3VsYXRpb246Mn0pLE81LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6S2h9LHt0eXBlOk9ifSx7dHlwZTp4NX1dLE81LnByb3BEZWNvcmF0b3JzPXtkaWFsb2dFbGVtZW50Olt7dHlwZTphcixhcmdzOlsiZGlhbG9nUG9wdXAiLHtzdGF0aWM6ITB9XX1dLGh1ZVNsaWRlcjpbe3R5cGU6YXIsYXJnczpbImh1ZVNsaWRlciIse3N0YXRpYzohMH1dfV0sYWxwaGFTbGlkZXI6W3t0eXBlOmFyLGFyZ3M6WyJhbHBoYVNsaWRlciIse3N0YXRpYzohMH1dfV0saGFuZGxlRXNjOlt7dHlwZTpUXyxhcmdzOlsiZG9jdW1lbnQ6a2V5dXAuZXNjIixbIiRldmVudCJdXX1dLGhhbmRsZUVudGVyOlt7dHlwZTpUXyxhcmdzOlsiZG9jdW1lbnQ6a2V5dXAuZW50ZXIiLFsiJGV2ZW50Il1dfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoTzUsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoiY29sb3ItcGlja2VyIix0ZW1wbGF0ZTonPGRpdiAjZGlhbG9nUG9wdXAgY2xhc3M9ImNvbG9yLXBpY2tlciIgW2NsYXNzLm9wZW5dPSJzaG93IiBbc3R5bGUuZGlzcGxheV09IiFzaG93ID8gXCdub25lXCcgOiBcJ2Jsb2NrXCciIFtzdHlsZS52aXNpYmlsaXR5XT0iaGlkZGVuID8gXCdoaWRkZW5cJyA6IFwndmlzaWJsZVwnIiBbc3R5bGUudG9wLnB4XT0idG9wIiBbc3R5bGUubGVmdC5weF09ImxlZnQiIFtzdHlsZS5wb3NpdGlvbl09InBvc2l0aW9uIiBbc3R5bGUuaGVpZ2h0LnB4XT0iY3BIZWlnaHQiIFtzdHlsZS53aWR0aC5weF09ImNwV2lkdGgiIChjbGljayk9IiRldmVudC5zdG9wUHJvcGFnYXRpb24oKSI+XG4gIDxkaXYgKm5nSWY9ImNwRGlhbG9nRGlzcGxheT09XCdwb3B1cFwnIiBjbGFzcz0iYXJyb3cgYXJyb3cte3tjcFVzZVBvc2l0aW9ufX0iIFtzdHlsZS50b3AucHhdPSJhcnJvd1RvcCI+PC9kaXY+XG5cbiAgPGRpdiAqbmdJZj0iKGNwQ29sb3JNb2RlIHx8wqAxKSA9PT0gMSIgY2xhc3M9InNhdHVyYXRpb24tbGlnaHRuZXNzIiBbc2xpZGVyXSBbcmdYXT0iMSIgW3JnWV09IjEiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT0iaHVlU2xpZGVyQ29sb3IiIChuZXdWYWx1ZSk9Im9uQ29sb3JDaGFuZ2UoJGV2ZW50KSIgKGRyYWdTdGFydCk9Im9uRHJhZ1N0YXJ0KFwnc2F0dXJhdGlvbi1saWdodG5lc3NcJykiIChkcmFnRW5kKT0ib25EcmFnRW5kKFwnc2F0dXJhdGlvbi1saWdodG5lc3NcJykiPlxuICAgIDxkaXYgY2xhc3M9ImN1cnNvciIgW3N0eWxlLnRvcC5weF09InNsaWRlcj8udiIgW3N0eWxlLmxlZnQucHhdPSJzbGlkZXI/LnMiPjwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPSJodWUtYWxwaGEgYm94Ij5cbiAgICA8ZGl2IGNsYXNzPSJsZWZ0Ij5cbiAgICAgIDxkaXYgY2xhc3M9InNlbGVjdGVkLWNvbG9yLWJhY2tncm91bmQiPjwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPSJzZWxlY3RlZC1jb2xvciIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPSJzZWxlY3RlZENvbG9yIj48L2Rpdj5cblxuICAgICAgPGJ1dHRvbiAqbmdJZj0iY3BBZGRDb2xvckJ1dHRvbiIgdHlwZT0iYnV0dG9uIiBjbGFzcz0ie3tjcEFkZENvbG9yQnV0dG9uQ2xhc3N9fSIgW2Rpc2FibGVkXT0iY3BQcmVzZXRDb2xvcnMgJiYgY3BQcmVzZXRDb2xvcnMubGVuZ3RoID49IGNwTWF4UHJlc2V0Q29sb3JzTGVuZ3RoIiAoY2xpY2spPSJvbkFkZFByZXNldENvbG9yKCRldmVudCwgc2VsZWN0ZWRDb2xvcikiPlxuICAgICAgICB7e2NwQWRkQ29sb3JCdXR0b25UZXh0fX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz0icmlnaHQiPlxuICAgICAgPGRpdiAqbmdJZj0iY3BBbHBoYUNoYW5uZWw9PT1cJ2Rpc2FibGVkXCciIHN0eWxlPSJoZWlnaHQ6IDE2cHg7Ij48L2Rpdj5cblxuICAgICAgPGRpdiAjaHVlU2xpZGVyIGNsYXNzPSJodWUiIFtzbGlkZXJdIFtyZ1hdPSIxIiBbc3R5bGUuZGlzcGxheV09IihjcENvbG9yTW9kZSB8fMKgMSkgPT09IDEgPyBcJ2Jsb2NrXCcgOiBcJ25vbmVcJyIgKG5ld1ZhbHVlKT0ib25IdWVDaGFuZ2UoJGV2ZW50KSIgKGRyYWdTdGFydCk9Im9uRHJhZ1N0YXJ0KFwnaHVlXCcpIiAoZHJhZ0VuZCk9Im9uRHJhZ0VuZChcJ2h1ZVwnKSI+XG4gICAgICAgIDxkaXYgY2xhc3M9ImN1cnNvciIgW3N0eWxlLmxlZnQucHhdPSJzbGlkZXI/LmgiPjwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgI3ZhbHVlU2xpZGVyIGNsYXNzPSJ2YWx1ZSIgW3NsaWRlcl0gW3JnWF09IjEiIFtzdHlsZS5kaXNwbGF5XT0iKGNwQ29sb3JNb2RlIHx8wqAxKSA9PT0gMiA/IFwnYmxvY2tcJzogXCdub25lXCciIChuZXdWYWx1ZSk9Im9uVmFsdWVDaGFuZ2UoJGV2ZW50KSIgKGRyYWdTdGFydCk9Im9uRHJhZ1N0YXJ0KFwndmFsdWVcJykiIChkcmFnRW5kKT0ib25EcmFnRW5kKFwndmFsdWVcJykiPlxuICAgICAgICA8ZGl2IGNsYXNzPSJjdXJzb3IiIFtzdHlsZS5yaWdodC5weF09InNsaWRlcj8udiI+PC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAjYWxwaGFTbGlkZXIgY2xhc3M9ImFscGhhIiBbc2xpZGVyXSBbcmdYXT0iMSIgW3N0eWxlLmRpc3BsYXldPSJjcEFscGhhQ2hhbm5lbCA9PT0gXCdkaXNhYmxlZFwnID8gXCdub25lXCcgOiBcJ2Jsb2NrXCciIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT0iYWxwaGFTbGlkZXJDb2xvciIgKG5ld1ZhbHVlKT0ib25BbHBoYUNoYW5nZSgkZXZlbnQpIiAoZHJhZ1N0YXJ0KT0ib25EcmFnU3RhcnQoXCdhbHBoYVwnKSIgKGRyYWdFbmQpPSJvbkRyYWdFbmQoXCdhbHBoYVwnKSI+XG4gICAgICAgIDxkaXYgY2xhc3M9ImN1cnNvciIgW3N0eWxlLmxlZnQucHhdPSJzbGlkZXI/LmEiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9IiFjcERpc2FibGVJbnB1dCAmJiAoY3BDb2xvck1vZGUgfHzCoDEpID09PSAxIiBjbGFzcz0iY215ay10ZXh0IiBbc3R5bGUuZGlzcGxheV09ImZvcm1hdCAhPT0gMyA/IFwnbm9uZVwnIDogXCdibG9ja1wnIj5cbiAgICA8ZGl2IGNsYXNzPSJib3giPlxuICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgcGF0dGVybj0iWzAtOV0qIiBtaW49IjAiIG1heD0iMTAwIiBbdGV4dF0gW3JnXT0iMTAwIiBbdmFsdWVdPSJjbXlrVGV4dD8uYyIgKGtleXVwLmVudGVyKT0ib25BY2NlcHRDb2xvcigkZXZlbnQpIiAobmV3VmFsdWUpPSJvbkN5YW5JbnB1dCgkZXZlbnQpIiAvPlxuICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgcGF0dGVybj0iWzAtOV0qIiBtaW49IjAiIG1heD0iMTAwIiBbdGV4dF0gW3JnXT0iMTAwIiBbdmFsdWVdPSJjbXlrVGV4dD8ubSIgKGtleXVwLmVudGVyKT0ib25BY2NlcHRDb2xvcigkZXZlbnQpIiAobmV3VmFsdWUpPSJvbk1hZ2VudGFJbnB1dCgkZXZlbnQpIiAvPlxuICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgcGF0dGVybj0iWzAtOV0qIiBtaW49IjAiIG1heD0iMTAwIiBbdGV4dF0gW3JnXT0iMTAwIiBbdmFsdWVdPSJjbXlrVGV4dD8ueSIgKGtleXVwLmVudGVyKT0ib25BY2NlcHRDb2xvcigkZXZlbnQpIiAobmV3VmFsdWUpPSJvblllbGxvd0lucHV0KCRldmVudCkiIC8+XG4gICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBwYXR0ZXJuPSJbMC05XSoiIG1pbj0iMCIgbWF4PSIxMDAiIFt0ZXh0XSBbcmddPSIxMDAiIFt2YWx1ZV09ImNteWtUZXh0Py5rIiAoa2V5dXAuZW50ZXIpPSJvbkFjY2VwdENvbG9yKCRldmVudCkiIChuZXdWYWx1ZSk9Im9uQmxhY2tJbnB1dCgkZXZlbnQpIiAvPlxuICAgICAgPGlucHV0ICpuZ0lmPSJjcEFscGhhQ2hhbm5lbCE9PVwnZGlzYWJsZWRcJyIgdHlwZT0ibnVtYmVyIiBwYXR0ZXJuPSJbMC05XSsoW1xcLixdWzAtOV17MSwyfSk/IiBtaW49IjAiIG1heD0iMSIgc3RlcD0iMC4xIiBbdGV4dF0gW3JnXT0iMSIgW3ZhbHVlXT0iY215a1RleHQ/LmEiIChrZXl1cC5lbnRlcik9Im9uQWNjZXB0Q29sb3IoJGV2ZW50KSIgKG5ld1ZhbHVlKT0ib25BbHBoYUlucHV0KCRldmVudCkiIC8+XG4gICAgPC9kaXY+XG5cbiAgICAgPGRpdiBjbGFzcz0iYm94Ij5cbiAgICAgIDxkaXY+QzwvZGl2PjxkaXY+TTwvZGl2PjxkaXY+WTwvZGl2PjxkaXY+SzwvZGl2PjxkaXYgKm5nSWY9ImNwQWxwaGFDaGFubmVsIT09XCdkaXNhYmxlZFwnIiA+QTwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPSIhY3BEaXNhYmxlSW5wdXQgJiYgKGNwQ29sb3JNb2RlIHx8wqAxKSA9PT0gMSAiIGNsYXNzPSJoc2xhLXRleHQiIFtzdHlsZS5kaXNwbGF5XT0iZm9ybWF0ICE9PSAyID8gXCdub25lXCcgOiBcJ2Jsb2NrXCciPlxuICAgIDxkaXYgY2xhc3M9ImJveCI+XG4gICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBwYXR0ZXJuPSJbMC05XSoiIG1pbj0iMCIgbWF4PSIzNjAiIFt0ZXh0XSBbcmddPSIzNjAiIFt2YWx1ZV09ImhzbGFUZXh0Py5oIiAoa2V5dXAuZW50ZXIpPSJvbkFjY2VwdENvbG9yKCRldmVudCkiIChuZXdWYWx1ZSk9Im9uSHVlSW5wdXQoJGV2ZW50KSIgLz5cbiAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIHBhdHRlcm49IlswLTldKiIgbWluPSIwIiBtYXg9IjEwMCIgW3RleHRdIFtyZ109IjEwMCIgW3ZhbHVlXT0iaHNsYVRleHQ/LnMiIChrZXl1cC5lbnRlcik9Im9uQWNjZXB0Q29sb3IoJGV2ZW50KSIgKG5ld1ZhbHVlKT0ib25TYXR1cmF0aW9uSW5wdXQoJGV2ZW50KSIgLz5cbiAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIHBhdHRlcm49IlswLTldKiIgbWluPSIwIiBtYXg9IjEwMCIgW3RleHRdIFtyZ109IjEwMCIgW3ZhbHVlXT0iaHNsYVRleHQ/LmwiIChrZXl1cC5lbnRlcik9Im9uQWNjZXB0Q29sb3IoJGV2ZW50KSIgKG5ld1ZhbHVlKT0ib25MaWdodG5lc3NJbnB1dCgkZXZlbnQpIiAvPlxuICAgICAgPGlucHV0ICpuZ0lmPSJjcEFscGhhQ2hhbm5lbCE9PVwnZGlzYWJsZWRcJyIgdHlwZT0ibnVtYmVyIiBwYXR0ZXJuPSJbMC05XSsoW1xcLixdWzAtOV17MSwyfSk/IiBtaW49IjAiIG1heD0iMSIgc3RlcD0iMC4xIiBbdGV4dF0gW3JnXT0iMSIgW3ZhbHVlXT0iaHNsYVRleHQ/LmEiIChrZXl1cC5lbnRlcik9Im9uQWNjZXB0Q29sb3IoJGV2ZW50KSIgKG5ld1ZhbHVlKT0ib25BbHBoYUlucHV0KCRldmVudCkiIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPSJib3giPlxuICAgICAgPGRpdj5IPC9kaXY+PGRpdj5TPC9kaXY+PGRpdj5MPC9kaXY+PGRpdiAqbmdJZj0iY3BBbHBoYUNoYW5uZWwhPT1cJ2Rpc2FibGVkXCciPkE8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj0iIWNwRGlzYWJsZUlucHV0ICYmIChjcENvbG9yTW9kZSB8fMKgMSkgPT09IDEgIiBbc3R5bGUuZGlzcGxheV09ImZvcm1hdCAhPT0gMSA/IFwnbm9uZVwnIDogXCdibG9ja1wnIiBjbGFzcz0icmdiYS10ZXh0Ij5cbiAgICA8ZGl2IGNsYXNzPSJib3giPlxuICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgcGF0dGVybj0iWzAtOV0qIiBtaW49IjAiIG1heD0iMjU1IiBbdGV4dF0gW3JnXT0iMjU1IiBbdmFsdWVdPSJyZ2JhVGV4dD8uciIgKGtleXVwLmVudGVyKT0ib25BY2NlcHRDb2xvcigkZXZlbnQpIiAobmV3VmFsdWUpPSJvblJlZElucHV0KCRldmVudCkiIC8+XG4gICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBwYXR0ZXJuPSJbMC05XSoiIG1pbj0iMCIgbWF4PSIyNTUiIFt0ZXh0XSBbcmddPSIyNTUiIFt2YWx1ZV09InJnYmFUZXh0Py5nIiAoa2V5dXAuZW50ZXIpPSJvbkFjY2VwdENvbG9yKCRldmVudCkiIChuZXdWYWx1ZSk9Im9uR3JlZW5JbnB1dCgkZXZlbnQpIiAvPlxuICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgcGF0dGVybj0iWzAtOV0qIiBtaW49IjAiIG1heD0iMjU1IiBbdGV4dF0gW3JnXT0iMjU1IiBbdmFsdWVdPSJyZ2JhVGV4dD8uYiIgKGtleXVwLmVudGVyKT0ib25BY2NlcHRDb2xvcigkZXZlbnQpIiAobmV3VmFsdWUpPSJvbkJsdWVJbnB1dCgkZXZlbnQpIiAvPlxuICAgICAgPGlucHV0ICpuZ0lmPSJjcEFscGhhQ2hhbm5lbCE9PVwnZGlzYWJsZWRcJyIgdHlwZT0ibnVtYmVyIiBwYXR0ZXJuPSJbMC05XSsoW1xcLixdWzAtOV17MSwyfSk/IiBtaW49IjAiIG1heD0iMSIgc3RlcD0iMC4xIiBbdGV4dF0gW3JnXT0iMSIgW3ZhbHVlXT0icmdiYVRleHQ/LmEiIChrZXl1cC5lbnRlcik9Im9uQWNjZXB0Q29sb3IoJGV2ZW50KSIgKG5ld1ZhbHVlKT0ib25BbHBoYUlucHV0KCRldmVudCkiIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPSJib3giPlxuICAgICAgPGRpdj5SPC9kaXY+PGRpdj5HPC9kaXY+PGRpdj5CPC9kaXY+PGRpdiAqbmdJZj0iY3BBbHBoYUNoYW5uZWwhPT1cJ2Rpc2FibGVkXCciID5BPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9IiFjcERpc2FibGVJbnB1dCAmJiAoY3BDb2xvck1vZGUgfHzCoDEpID09PSAxIiBjbGFzcz0iaGV4LXRleHQiIFtjbGFzcy5oZXgtYWxwaGFdPSJjcEFscGhhQ2hhbm5lbD09PVwnZm9yY2VkXCciXG4gICAgW3N0eWxlLmRpc3BsYXldPSJmb3JtYXQgIT09IDAgPyBcJ25vbmVcJyA6IFwnYmxvY2tcJyI+XG4gICAgPGRpdiBjbGFzcz0iYm94Ij5cbiAgICAgIDxpbnB1dCBbdGV4dF0gW3ZhbHVlXT0iaGV4VGV4dCIgKGJsdXIpPSJvbkhleElucHV0KG51bGwpIiAoa2V5dXAuZW50ZXIpPSJvbkFjY2VwdENvbG9yKCRldmVudCkiIChuZXdWYWx1ZSk9Im9uSGV4SW5wdXQoJGV2ZW50KSIvPlxuICAgICAgPGlucHV0ICpuZ0lmPSJjcEFscGhhQ2hhbm5lbD09PVwnZm9yY2VkXCciIHR5cGU9Im51bWJlciIgcGF0dGVybj0iWzAtOV0rKFtcXC4sXVswLTldezEsMn0pPyIgbWluPSIwIiBtYXg9IjEiIHN0ZXA9IjAuMSIgW3RleHRdIFtyZ109IjEiIFt2YWx1ZV09ImhleEFscGhhIiAoa2V5dXAuZW50ZXIpPSJvbkFjY2VwdENvbG9yKCRldmVudCkiIChuZXdWYWx1ZSk9Im9uQWxwaGFJbnB1dCgkZXZlbnQpIi8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPSJib3giPlxuICAgICAgPGRpdj5IZXg8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9ImNwQWxwaGFDaGFubmVsPT09XCdmb3JjZWRcJyI+QTwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPSIhY3BEaXNhYmxlSW5wdXQgJiYgKGNwQ29sb3JNb2RlIHx8wqAxKSA9PT0gMiIgY2xhc3M9InZhbHVlLXRleHQiPlxuICAgIDxkaXYgY2xhc3M9ImJveCI+XG4gICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBwYXR0ZXJuPSJbMC05XSoiIG1pbj0iMCIgbWF4PSIxMDAiIFt0ZXh0XSBbcmddPSIxMDAiIFt2YWx1ZV09ImhzbGFUZXh0Py5sIiAoa2V5dXAuZW50ZXIpPSJvbkFjY2VwdENvbG9yKCRldmVudCkiIChuZXdWYWx1ZSk9Im9uVmFsdWVJbnB1dCgkZXZlbnQpIiAvPlxuICAgICAgPGlucHV0ICpuZ0lmPSJjcEFscGhhQ2hhbm5lbCE9PVwnZGlzYWJsZWRcJyIgdHlwZT0ibnVtYmVyIiBwYXR0ZXJuPSJbMC05XSsoW1xcLixdWzAtOV17MSwyfSk/IiBtaW49IjAiIG1heD0iMSIgc3RlcD0iMC4xIiAgW3RleHRdIFtyZ109IjEiIFt2YWx1ZV09ImhzbGFUZXh0Py5hIiAoa2V5dXAuZW50ZXIpPSJvbkFjY2VwdENvbG9yKCRldmVudCkiIChuZXdWYWx1ZSk9Im9uQWxwaGFJbnB1dCgkZXZlbnQpIiAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz0iYm94Ij5cbiAgICAgIDxkaXY+VjwvZGl2PjxkaXY+QTwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPSIhY3BEaXNhYmxlSW5wdXQgJiYgKGNwQ29sb3JNb2RlIHx8wqAxKSA9PT0gMSIgY2xhc3M9InR5cGUtcG9saWN5Ij5cbiAgICA8c3BhbiBjbGFzcz0idHlwZS1wb2xpY3ktYXJyb3ciIChjbGljayk9Im9uRm9ybWF0VG9nZ2xlKC0xKSI+PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPSJ0eXBlLXBvbGljeS1hcnJvdyIgKGNsaWNrKT0ib25Gb3JtYXRUb2dnbGUoMSkiPjwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj0iY3BQcmVzZXRDb2xvcnM/Lmxlbmd0aCB8fCBjcEFkZENvbG9yQnV0dG9uIiBjbGFzcz0icHJlc2V0LWFyZWEiPlxuICAgIDxocj5cblxuICAgIDxkaXYgY2xhc3M9InByZXNldC1sYWJlbCI+e3tjcFByZXNldExhYmVsfX08L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9ImNwUHJlc2V0Q29sb3JzPy5sZW5ndGgiIGNsYXNzPSJ7e2NwUHJlc2V0Q29sb3JzQ2xhc3N9fSI+XG4gICAgICA8ZGl2ICpuZ0Zvcj0ibGV0IGNvbG9yIG9mIGNwUHJlc2V0Q29sb3JzIiBjbGFzcz0icHJlc2V0LWNvbG9yIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT0iY29sb3IiIChjbGljayk9InNldENvbG9yRnJvbVN0cmluZyhjb2xvcikiPlxuICAgICAgICA8c3BhbiAqbmdJZj0iY3BBZGRDb2xvckJ1dHRvbiIgY2xhc3M9Int7Y3BSZW1vdmVDb2xvckJ1dHRvbkNsYXNzfX0iIChjbGljayk9Im9uUmVtb3ZlUHJlc2V0Q29sb3IoJGV2ZW50LCBjb2xvcikiPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj0iIWNwUHJlc2V0Q29sb3JzPy5sZW5ndGggJiYgY3BBZGRDb2xvckJ1dHRvbiIgY2xhc3M9Int7Y3BQcmVzZXRFbXB0eU1lc3NhZ2VDbGFzc319Ij57e2NwUHJlc2V0RW1wdHlNZXNzYWdlfX08L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj0iY3BPS0J1dHRvbiB8fCBjcENhbmNlbEJ1dHRvbiIgY2xhc3M9ImJ1dHRvbi1hcmVhIj5cbiAgICA8YnV0dG9uICpuZ0lmPSJjcENhbmNlbEJ1dHRvbiIgdHlwZT0iYnV0dG9uIiBjbGFzcz0ie3tjcENhbmNlbEJ1dHRvbkNsYXNzfX0iIChjbGljayk9Im9uQ2FuY2VsQ29sb3IoJGV2ZW50KSI+e3tjcENhbmNlbEJ1dHRvblRleHR9fTwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvbiAqbmdJZj0iY3BPS0J1dHRvbiIgdHlwZT0iYnV0dG9uIiBjbGFzcz0ie3tjcE9LQnV0dG9uQ2xhc3N9fSIgKGNsaWNrKT0ib25BY2NlcHRDb2xvcigkZXZlbnQpIj57e2NwT0tCdXR0b25UZXh0fX08L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbicsZW5jYXBzdWxhdGlvbjpXbi5Ob25lLHN0eWxlczpbJy5jb2xvci1waWNrZXJ7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjNzc3O2N1cnNvcjpkZWZhdWx0O2hlaWdodDphdXRvO3Bvc2l0aW9uOmFic29sdXRlO3VzZXItc2VsZWN0Om5vbmU7d2lkdGg6MjMwcHg7ei1pbmRleDoxMDAwfS5jb2xvci1waWNrZXIgKntib3gtc2l6aW5nOmJvcmRlci1ib3g7Zm9udC1zaXplOjExcHg7bWFyZ2luOjB9LmNvbG9yLXBpY2tlciBpbnB1dHtjb2xvcjojMDAwO2ZvbnQtc2l6ZToxM3B4O2hlaWdodDoyNnB4O21pbi13aWR0aDowO3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjB9LmNvbG9yLXBpY2tlciBpbnB1dDotbW96LXN1Ym1pdC1pbnZhbGlkLC5jb2xvci1waWNrZXIgaW5wdXQ6LW1vei11aS1pbnZhbGlkLC5jb2xvci1waWNrZXIgaW5wdXQ6aW52YWxpZHtib3gtc2hhZG93Om5vbmV9LmNvbG9yLXBpY2tlciBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiwuY29sb3ItcGlja2VyIGlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lO21hcmdpbjowfS5jb2xvci1waWNrZXIgLmFycm93e2JvcmRlci1zdHlsZTpzb2xpZDtoZWlnaHQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDowO3otaW5kZXg6OTk5OTk5fS5jb2xvci1waWNrZXIgLmFycm93LmFycm93LXRvcHtib3JkZXItY29sb3I6Izc3NyB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtib3JkZXItd2lkdGg6MTBweCA1cHg7bGVmdDo4cHh9LmNvbG9yLXBpY2tlciAuYXJyb3cuYXJyb3ctYm90dG9te2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjNzc3O2JvcmRlci13aWR0aDoxMHB4IDVweDtsZWZ0OjhweDt0b3A6LTIwcHh9LmNvbG9yLXBpY2tlciAuYXJyb3cuYXJyb3ctbGVmdC10b3AsLmNvbG9yLXBpY2tlciAuYXJyb3cuYXJyb3ctdG9wLWxlZnR7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM3Nzc7Ym9yZGVyLXdpZHRoOjVweCAxMHB4O2JvdHRvbTo4cHg7cmlnaHQ6LTIxcHh9LmNvbG9yLXBpY2tlciAuYXJyb3cuYXJyb3ctcmlnaHQtdG9wLC5jb2xvci1waWNrZXIgLmFycm93LmFycm93LXRvcC1yaWdodHtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgIzc3NyB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtib3JkZXItd2lkdGg6NXB4IDEwcHg7Ym90dG9tOjhweDtsZWZ0Oi0yMHB4fS5jb2xvci1waWNrZXIgLmFycm93LmFycm93LWJvdHRvbS1sZWZ0LC5jb2xvci1waWNrZXIgLmFycm93LmFycm93LWxlZnQsLmNvbG9yLXBpY2tlciAuYXJyb3cuYXJyb3ctbGVmdC1ib3R0b217Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM3Nzc7Ym9yZGVyLXdpZHRoOjVweCAxMHB4O3JpZ2h0Oi0yMXB4O3RvcDo4cHh9LmNvbG9yLXBpY2tlciAuYXJyb3cuYXJyb3ctYm90dG9tLXJpZ2h0LC5jb2xvci1waWNrZXIgLmFycm93LmFycm93LXJpZ2h0LC5jb2xvci1waWNrZXIgLmFycm93LmFycm93LXJpZ2h0LWJvdHRvbXtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgIzc3NyB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtib3JkZXItd2lkdGg6NXB4IDEwcHg7bGVmdDotMjBweDt0b3A6OHB4fS5jb2xvci1waWNrZXIgLmN1cnNvcntib3JkZXI6MnB4IHNvbGlkICMyMjI7Ym9yZGVyLXJhZGl1czo1MCU7Y3Vyc29yOmRlZmF1bHQ7aGVpZ2h0OjE2cHg7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTZweH0uY29sb3ItcGlja2VyIC5ib3h7ZGlzcGxheTpmbGV4O3BhZGRpbmc6NHB4IDhweH0uY29sb3ItcGlja2VyIC5sZWZ0e3BhZGRpbmc6MTZweCA4cHg7cG9zaXRpb246cmVsYXRpdmV9LmNvbG9yLXBpY2tlciAucmlnaHR7ZmxleDoxIDEgYXV0bztwYWRkaW5nOjEycHggOHB4fS5jb2xvci1waWNrZXIgLmJ1dHRvbi1hcmVhe3BhZGRpbmc6MCAxNnB4IDE2cHg7dGV4dC1hbGlnbjpyaWdodH0uY29sb3ItcGlja2VyIC5idXR0b24tYXJlYSBidXR0b257bWFyZ2luLWxlZnQ6OHB4fS5jb2xvci1waWNrZXIgLnByZXNldC1hcmVhe3BhZGRpbmc6NHB4IDE1cHh9LmNvbG9yLXBpY2tlciAucHJlc2V0LWFyZWEgLnByZXNldC1sYWJlbHtjb2xvcjojNTU1O2ZvbnQtc2l6ZToxMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjRweDt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7d2lkdGg6MTAwJX0uY29sb3ItcGlja2VyIC5wcmVzZXQtYXJlYSAucHJlc2V0LWNvbG9ye2JvcmRlcjoxcHggc29saWQgI2E5YTlhOTtib3JkZXItcmFkaXVzOjI1JTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MThweDttYXJnaW46NHB4IDZweCA4cHg7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MThweH0uY29sb3ItcGlja2VyIC5wcmVzZXQtYXJlYSAucHJlc2V0LWVtcHR5LW1lc3NhZ2V7Zm9udC1zdHlsZTppdGFsaWM7bWFyZ2luLWJvdHRvbTo4cHg7bWFyZ2luLXRvcDo0cHg7bWluLWhlaWdodDoxOHB4O3RleHQtYWxpZ246Y2VudGVyfS5jb2xvci1waWNrZXIgLmhleC10ZXh0e2ZvbnQtc2l6ZToxMXB4O3BhZGRpbmc6NHB4IDhweDt3aWR0aDoxMDAlfS5jb2xvci1waWNrZXIgLmhleC10ZXh0IC5ib3h7cGFkZGluZzowIDI0cHggOHB4IDhweH0uY29sb3ItcGlja2VyIC5oZXgtdGV4dCAuYm94IGRpdntjbGVhcjpsZWZ0O2NvbG9yOiM1NTU7ZmxleDoxIDEgYXV0bztmbG9hdDpsZWZ0O3RleHQtYWxpZ246Y2VudGVyfS5jb2xvci1waWNrZXIgLmhleC10ZXh0IC5ib3ggaW5wdXR7Ym9yZGVyOjFweCBzb2xpZCAjYTlhOWE5O2ZsZXg6MSAxIGF1dG87cGFkZGluZzoxcHh9LmNvbG9yLXBpY2tlciAuaGV4LWFscGhhIC5ib3ggZGl2OmZpcnN0LWNoaWxkLC5jb2xvci1waWNrZXIgLmhleC1hbHBoYSAuYm94IGlucHV0OmZpcnN0LWNoaWxke2ZsZXgtZ3JvdzozO21hcmdpbi1yaWdodDo4cHh9LmNvbG9yLXBpY2tlciAuY215ay10ZXh0LC5jb2xvci1waWNrZXIgLmhzbGEtdGV4dCwuY29sb3ItcGlja2VyIC5yZ2JhLXRleHQsLmNvbG9yLXBpY2tlciAudmFsdWUtdGV4dHtmb250LXNpemU6MTFweDtwYWRkaW5nOjRweCA4cHg7d2lkdGg6MTAwJX0uY29sb3ItcGlja2VyIC5jbXlrLXRleHQgLmJveCwuY29sb3ItcGlja2VyIC5oc2xhLXRleHQgLmJveCwuY29sb3ItcGlja2VyIC5yZ2JhLXRleHQgLmJveHtwYWRkaW5nOjAgMjRweCA4cHggOHB4fS5jb2xvci1waWNrZXIgLnZhbHVlLXRleHQgLmJveHtwYWRkaW5nOjAgOHB4IDhweH0uY29sb3ItcGlja2VyIC5jbXlrLXRleHQgLmJveCBkaXYsLmNvbG9yLXBpY2tlciAuaHNsYS10ZXh0IC5ib3ggZGl2LC5jb2xvci1waWNrZXIgLnJnYmEtdGV4dCAuYm94IGRpdiwuY29sb3ItcGlja2VyIC52YWx1ZS10ZXh0IC5ib3ggZGl2e2NvbG9yOiM1NTU7ZmxleDoxIDEgYXV0bzttYXJnaW4tcmlnaHQ6OHB4O3RleHQtYWxpZ246Y2VudGVyfS5jb2xvci1waWNrZXIgLmNteWstdGV4dCAuYm94IGRpdjpsYXN0LWNoaWxkLC5jb2xvci1waWNrZXIgLmhzbGEtdGV4dCAuYm94IGRpdjpsYXN0LWNoaWxkLC5jb2xvci1waWNrZXIgLnJnYmEtdGV4dCAuYm94IGRpdjpsYXN0LWNoaWxkLC5jb2xvci1waWNrZXIgLnZhbHVlLXRleHQgLmJveCBkaXY6bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MH0uY29sb3ItcGlja2VyIC5jbXlrLXRleHQgLmJveCBpbnB1dCwuY29sb3ItcGlja2VyIC5oc2xhLXRleHQgLmJveCBpbnB1dCwuY29sb3ItcGlja2VyIC5yZ2JhLXRleHQgLmJveCBpbnB1dCwuY29sb3ItcGlja2VyIC52YWx1ZS10ZXh0IC5ib3ggaW5wdXR7Ym9yZGVyOjFweCBzb2xpZCAjYTlhOWE5O2ZsZXg6MTtmbG9hdDpsZWZ0O21hcmdpbjowIDhweCAwIDA7cGFkZGluZzoxcHh9LmNvbG9yLXBpY2tlciAuY215ay10ZXh0IC5ib3ggaW5wdXQ6bGFzdC1jaGlsZCwuY29sb3ItcGlja2VyIC5oc2xhLXRleHQgLmJveCBpbnB1dDpsYXN0LWNoaWxkLC5jb2xvci1waWNrZXIgLnJnYmEtdGV4dCAuYm94IGlucHV0Omxhc3QtY2hpbGQsLmNvbG9yLXBpY2tlciAudmFsdWUtdGV4dCAuYm94IGlucHV0Omxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjB9LmNvbG9yLXBpY2tlciAuaHVlLWFscGhhe2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW4tYm90dG9tOjNweH0uY29sb3ItcGlja2VyIC5odWV7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSllBQUFBUUNBWUFBQUQwNklZbkFBQUFCbUpMUjBRQS93RC9BUCtndmFlVEFBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFBQjNSSlRVVUg0QUlXRHdrVUZXYkNDQUFBQUZ4SlJFRlVhTjd0MGtFS2cwQVFBTUUyeDgzL24ycXU1cUNnRDFpRGhDb1lkcG5iUUM5YmJZMXFWTy9qdmM2azNhZDkxczcvN0YxL2NzZ1BydWp1UTE3QkRZU0ZzQkFXd2dKaElTeUVCY0pDV0FnTGhJV3dFQllJaTJmN0FyLzFUQ2dGSDJYOUFBQUFBRWxGVGtTdVFtQ0MiKTtkaXJlY3Rpb246bHRyfS5jb2xvci1waWNrZXIgLmh1ZSwuY29sb3ItcGlja2VyIC52YWx1ZXtiYWNrZ3JvdW5kLXNpemU6MTAwJSAxMDAlO2JvcmRlcjpub25lO2N1cnNvcjpwb2ludGVyO2hlaWdodDoxNnB4O21hcmdpbi1ib3R0b206MTZweDt3aWR0aDoxMDAlfS5jb2xvci1waWNrZXIgLnZhbHVle2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUpZQUFBQVFDQVlBQUFEMDZJWW5BQUFDVGtsRVFWUjQydTNTWVVjckFCaEE0VTJTa21SSk1tV1NKa2xLSmlXWlpwS1VKSnNrS1VtYVRGSW1LWk9Vek15U3BHUm1saVJOSmlsSlNwS1NKRXRtU3BJcG1XbVNkTzczNi82RCt4N09QM2dVQ29XQ3YxY3FsU1FsSlpHY25FeEtTZ3FwcWFta3BhV1JucDVPUmtZR21abVpxRlFxc3JLeXlNN09KaWNuaDl6Y1hOUnFOWGw1ZWVUbjU2UFJhQ2dvS0tDd3NKQ2lvaUswV2kzRnhjV1VsSlJRV2xwS1dWa1o1ZVhsVkZSVVVGbFppVTZubzZxcWl1cnFhbXBxYXFpdHJhV3VyZzY5WGs5OWZUMEdnd0dqMFVoRFF3T05qWTAwTlRYUjNOeE1TMHNMcmEydHRMVzEwZDdlanNsa3dtdzIwOUhSUVdkbkoxMWRYWFIzZDlQVDAwTnZieTk5ZlgzMDkvY3pNRERBNE9BZ0ZvdUZvYUVockZZcnc4UERqSXlNTURvNnl0allHRGFiamZIeGNTWW1KcGljbkdScWFncTczYzcwOURRek16UE16czR5TnpmSC9QdzhEb2NEcDlPSnkrWEM3WGF6c0xEQTR1SWlTMHRMTEM4dnM3S3l3dXJxS210cmEzZzhIcnhlTHo2ZkQ3L2Z6L3I2T2hzYkcyeHVicksxdGNYMjlqYUJRSUNkblIyQ3dTQzd1N3ZzN2UyeHY3L1B3Y0VCaDRlSEhCMGRjWHg4ek1uSkNhZW5wNXlkblhGK2ZzN0Z4UVdYbDVkY1hWMXhmWDNOemMwTnQ3ZTMzTjNkRVFxRnVMKy81K0hoZ1hBNFRDUVM0Zkh4a2Flbko1NmZuM2w1ZWVIMTlaVm9OTXJiMnh2djcrOThmSHdRaThXSXgrTjhmbjZTU0NUNCt2cmkrL3VibjU4ZmZuOS8rVmNLZ1NXd0JKYkFFbGdDUzJBSkxJRWxzQVNXd0JKWUFrdGdDU3lCSmJBRWxzQVNXQUpMWUFrc2dTV3dCSmJBRWxnQ1MyQUpMSUVsc1A0L1dIOEFtSjVaNmpIUzRoOEFBQUFBU1VWT1JLNUNZSUk9Iik7ZGlyZWN0aW9uOnJ0bH0uY29sb3ItcGlja2VyIC5hbHBoYXtiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFKWUFBQUFRQ0FZQUFBRDA2SVluQUFBQUJtSkxSMFFBL3dEL0FQK2d2YWVUQUFBQUNYQklXWE1BQUFzVEFBQUxFd0VBbXB3WUFBQUFCM1JKVFVVSDRBSVdEd1lRbFpNYTNnQUFBV1ZKUkVGVWFON3RtRUdPNmpBUVJDc09BckhnQnB5QUpZR2pjR29jeEFtNEEySUhwbW9XRTBlQkgrZXptRmxOdlUwNnNoSjNXNlZFZWxXTVVRQUlJRjlmNnFacGltc0ExTFl0UzJ1RjUxL3UyN1lWQUZaVlJVa0VvR0hkUFYvc0ljYklFSUlrVWRJLzlYYTduZXl2NjErU1dGVVZBVkNTY3QwMFRXbjJmdjZ1MytFY2ZkM3RYenkvMCtuRVV1K1NQam8va3F6cm1pUXBTY042djk4WGV3ZkE4L2xNa2lMSjJXeEdTVW9wY1Q2Zk02VTBOWDkvZnJmYmpldjFXdGZybFpmTGhZZkRRUUhHL0FJT2xuR3dqSU5sSEN4akhDempZSm0vVEpXZEN3cXVKWHNlRkZ6R3dETk5laUtNT0pUTzh4UWREUWFlQjI5K0s5ZWZlTGFCbzlKN3ZkdnRKajFSakZGamZpdjdxdjk1dGp4LzdsZVNRZ2g5M2UxZmZNZUlwNk8rWVFqaG8vTjc5MXQxWFZPU1NJN04vL0srNC9Hb3hXTEJ4K1BCNS9PcDVYTEorLzNPbEpKV3F4VTNtODNvdnY1aUdmOEtqWU5sSEN4akhDempZQmtIeTVnZjVndXN2UVU3VTM3alRBQUFBQUJKUlU1RXJrSmdnZz09Iik7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJTtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtkaXJlY3Rpb246bHRyO2hlaWdodDoxNnB4O3dpZHRoOjEwMCV9LmNvbG9yLXBpY2tlciAudHlwZS1wb2xpY3l7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQklBQUFBZ0NBWUFBQUFmZkNqeEFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFBQUFBbHdTRmx6QUFBQ2V3QUFBbnNCMDFDTzNBQUFBQmwwUlZoMFUyOW1kSGRoY21VQWQzZDNMbWx1YTNOallYQmxMbTl5WjV2dVBCb0FBQUlBU1VSQlZFaUo3Wlk5YXhSUkZJYWZzeE1TdHJMUUpwQWdwQkZoaStDOXcxWVNvMDBJNlJaL2c5dlpwQmYvUU9yNEd5UmdrU0tOU3JBYWRzWnFRR3dDa3VBV3lSWkpzeVN3dmhaN04vdmh6cmdiTEgzTGQ4NTk3amx6ejUwekpva3l4WEg4RHFEVmFyMHFpNnY4QmJJdHFTR3BFY2Z4ZGxtc0ZXWGt2WDhBZkFWV2czVUtQRW5UOUdLdWpNenNBRmdac1ZhQ04xVlRRZDc3WFVucmdFMWt2KzY5MzUyNjhXUnB6cm5IWnZZUldDN1l2QzNwUlpabDN3b3pxdFZxaXlIOUlnakFzcGtkMUdxMXhVSlF0VnJkQjlaS0lBT3RoZGcvUWM2NUxVazd3TklNb0NWSk84NjVyWUZoa3FqWDYvZDd2VjRHUEp3Qk1xb2ZVUlM1SkVrNkZZQmVyL2VlWWIvTW85V3dGblBPdlFiZUF2ZnVBQUs0Qk40c0FKdEFHL2dKSUVsbU51aUp5YmEzRUdObVppUGVadUVWbVZlbGwvWS82TitDekRuM0FYaEVPT283SHYvM0JlQXo4SXpRa01QbkpidVB4MXdDK3lZSjcvMG5ZSVA1Uy8wRkhLZHArcndDRUVYUlMvcmY1SGwxR3RiMk0waVNwQ09wQ1p6UEFUbVgxRXlTcEhNTEFzaXk3TWpNRG9IckdTRFhabmFZWmRuUndCaDdKOTF1dHdtY3pBQTZDYkczR2dQbGVYNGpxVUgvYTFDa3RxUkdudWMzaFNDQU1CMzJnS3Nwa0N0Z2IzS0NRTW1ramVQNFdOSlRock5OWnZhbDFXcHRUSXN2N0p0UTR0bUlkUmE4cVNvRXBXbDZZV1pOb0FOMHpLeFpOUGVocExTQlp2MnQrUTBDSjlsTG5BUlFMQUFBQUFCSlJVNUVya0pnZ2c9PSIpO2JhY2tncm91bmQtcG9zaXRpb246NTAlO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6OHB4IDE2cHg7aGVpZ2h0OjI0cHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTJweDt0b3A6MjE4cHg7d2lkdGg6MTZweH0uY29sb3ItcGlja2VyIC50eXBlLXBvbGljeSAudHlwZS1wb2xpY3ktYXJyb3d7ZGlzcGxheTpibG9jaztoZWlnaHQ6NTAlO3dpZHRoOjEwMCV9LmNvbG9yLXBpY2tlciAuc2VsZWN0ZWQtY29sb3J7Ym9yZGVyOjFweCBzb2xpZCAjYTlhOWE5O2JvcmRlci1yYWRpdXM6NTAlO2hlaWdodDo0MHB4O2xlZnQ6OHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxNnB4O3dpZHRoOjQwcHh9LmNvbG9yLXBpY2tlciAuc2VsZWN0ZWQtY29sb3ItYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDZ0FBQUFvQ0FZQUFBQ00vcmh0QUFBQWgwbEVRVlJZUisyVzBRbEFNUWdENjB6ZGZ3T2RxYThUbUkvd1FNcjVLMEk1YlpMSXpMT2EybnQzN1ZWVmJkK2REeDVvYmdDQzNLQkx3SjJmZjRQblZpZGtmK3VjSWh3ODBIUWFDTG8zRE1IM0NSSzNpRnNtQVdWbDZoUE5Ed3Q4RXZORTVxK1l1RVhjTWdrb25WTTZTZHlDb0V2QW5aOHYxSGp4ODE3TWlsbXhTVUI1cmRMSkR5Y1pnVUFaVWNoL0FBQUFBRWxGVGtTdVFtQ0MiKTtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6NDBweDt3aWR0aDo0MHB4fS5jb2xvci1waWNrZXIgLnNhdHVyYXRpb24tbGlnaHRuZXNze2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU9ZQUFBQ0NDQVlBQUFCU0Q3VDNBQUFBQm1KTFIwUUEvd0QvQVArZ3ZhZVRBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUIzUkpUVVVINEFJV0R3a3NQV1I2bGdBQUlBQkpSRUZVZU5ydG5WdVQ0N2dSckFITitQLy9Pci82MVk1d09OWjdtWjF1M1hBZUxNakpaR1pWZ2RLc2ZjNXhSM1MwUklJVVcrQ0h6Q3BjMk1jWW83WEd2M2V4N1VpWmQ1N3JqeXp6dit2KzMzWC9SLyszci9mN3ZSMzg2WStUdktOY2Yvd2RoVExQY3Y5cVUyd1pkNzR1dGgwdDE4MjFqa0laTFBjc0kvNm5XYTRYdnV0cXVVMFo4NW1ueDgwUy9aemdwbkxuT3RITnQ3L29meDFUS1hjU056Ti83cWJNUTNqdTdyTlFtTVlZZC80czJqOWFhK1ArZ0dhTWNacmIxTS90ZHJ2ZjcvZDJ2OTlQOS90OTNPLzNjYnZkeHUxMkc5ZnJkVnd1bDNFK244Yy8vL25QKzIrLy9YYjY2YWVmeGwvLyt0Zng1ei8vMllLNUFsMnJndmY0VXNicGRHckI1MmJBdkFyWHB1emptaXFBVlNHejVlRG1HWVh6aGJBWm1Dcm5temRkcFVVKzhZMWRBT1llWEN0RFV3VndWN1lDR0g2dUFteU1jWjlsNXZrVWFCUEdNVVo3L0o1dy83OTIvZnZ2OVhxOTMyNjNkci9mVHhQRUNlTUU4bks1ak0vUHovSFRUei9kdjMzN2R2cmxsMS9HUC83eGovRzN2LzF0L09VdmZ3a1Zzd29uZ2pkT3A5UHpIM1UzRDN6bVdHblpWWG40akNxczd3QzJCS1A0Lzh0QXprWnNvV3g2WHJxZUhaeW12cDRBQkNCSmhUUXdLZkRUOGd6clpDSXFpNUFoaUFDakJmRUIyclA4L1g2M01NN2Y2L1Y2djkvdjdYYTdiWUM4M1c3amNybHNWSElxNWZmdjMwKy8vZmJiK09XWFg4WlBQLzAwL3Y3M3Y0K2ZmLzc1SlN2YmV1K2JMMldNTWFGYkFscEJOTTg1UVgrY3Q2cW9TcWtQQXd1UWxCVktxR05GU1VPQUEzQm11N2dDNWhOT2QxNW5Td3ZBT1VXN0M0Z2lVQ1Y4U2duNUw5aE5GSXFUc3AwR3hJMHlzaW95akFqa1kvdEdKVkVweitmeitPV1hYKzdmdjM4Ly9mNzc3K1BidDIvajExOS9IVC8vL1BQNDlkZGZ4OGZIUndybVRqVjc3OUVYdTJweDJ4aGp3dGRKWlFjQVdRSVBMUElTc01KYVN3aUQ4Z3pJS3J3U3lBVEU1ajVuQWJSNWMxZEJVd0Jsc0VXVzBoNkxxaVlzcUZQQVF4Q3lSWjN3T1NBUnhtbFhNWDVrNjRwUWZ2djI3Zjc1K2RrK1BqNU9IeDhmNC92MzcrUGJ0Mi9qdDk5K0c5KytmUnNmSHgvamNybVVGTE8zMWdZRFdibHhSSXMvVHFmVDdvdXN4SnNBeFhBMkdjN1RBOVhkZ2Zkb0hiRnNqNzZYMisxV0FyZ0kxYWdlR3dBM3F1cHFvSHNtY2JJNkZ1OTNxdWdnRmE5ZDdMZUR0Z0tmQUZIQkorTkVCeUlrY0o1S2VydmRUbWhoR2NnSkpTWjV2bi8vZmorZnorMThQcDgrUHovSDUrZm5tR0QrL3Z2djQvdjM3K1BqNDJOOGZuNk8yKzFXczdKampQNndyYU1JNUU0Ulo4eDJ2VjVUU3drcXVvdFY3L2Q3VHo2SEZXc0QvcU5jZHcwQ1EzcS8zMjFjNjg2VHdEVklkYnV5NzN6TmxkaFNIYjhJMmtsWnpubStJbkJTNFU2bjAzMDJhQkZzTGhIREFLSlZKVmdsZkk5amh2dTUzVzUzc0xBTllOeEFpREE2TUNlVUh4OGY5K3YxMmk2WFM3dGNMcWNaVzU3UDV5ZVk4L2Z6ODNPY3orZm5zU21ZVXlrbldFRzg1V0JzdDlzdHpTTHlNZGZyOVFpMDhpWTE1VVowTGxER0xoUjNvNXpLMmo3T1BVVEQwRStuVTN0azdYYi8xNk5GYmhsb0FNdVkxempMVU9PM0JLZUlEZStaOHMzL0o0Z0ZvNFRNNWpQbXVSZzI4Zm9VS0tWU3dvMTZUZ0E1bnB5d2NXTEhnWWwvUHo4LzczLzYwNS9hYjcvOTFtNjNXN3RjTGllMHNaajRtYW81Z1R5Zno4OEUwZjErajhFY1l6d1RQRUcyY3FqeWZITkYwTThmdXFFaWFPVm5SelpaUU5oNWZ3UXlIZy9IREdmSm84OVExemIvcXV1NVhDNjc3M0kyWEtmVHFkL3Y5K2Qzd3VxV3ZhL1lUZFVkRVYzZmhJdi9WaXlwczZZRTN4M3I0M0s1YkpRUzY2emF4VkdGc3ZkKy8vajRhRisvZm0zZnYzOXZ0OXV0ZmYzNnRmMysrKy90ZHJ1ZHZuMzdadU5MQmFhQ01nVXpDK3JaUmlGb3d4VXVKSThZTXFjQ3A5T3BxNXZhZ2FZVTZsR0pBMVhRcWVqY2h3NkNqMEd3NW5ZQnJHdzAxQTJPMjA2bjA0QkdvdU5OeVRmcC9Gd0VsaFVleTZuWHJJS3c3UVFXZGR4dU4ybGRMNWZMODM5Z1NQRjhhaHUvSnZCTzQ4Q1BTdXFNZjhWcDkvUDUzTDU4K2RMdTkzczduOC90ZnI4LzM5L3Y5L2I1K1RraFBKM1A1Nm1RNDM2L2orL2Z2Ky9pU2diemVyMCtBWngvNSs4OGJ2Nk9NZGE2UzV6NmtkMjFmWUM5ZHh2N2NJSkoyZDlBT1MzMGZQTXp5SGlUTThCNERGNlhVbFlIcDRLUVczVysxdDc3TU5CMXZHSHhXcTdYYTd2Zjc4K3k1L041QStIMWV0Mjl4dVA1ZGJZdHlhUnU0QWtzYlBxNjkzNmZqUnpYUnhCYlByL2IrYjE4K2ZLbGpUSGFCQkJmbjgvbjAvMStIMSsrZkJubjh6bTBzQjhmSDV1NGNyNUd1QmhNVmswRUVuOVJzY3RnVmhNK2l4bEp0TUEyM1I4QjZ5eXNBc3RCT2dGWElLS0NNSWdUb01xTkV1MmZZTUg3enRjNzMyZFFLa0NqMXl0QVp0WTBLeDhwSXI4R0dKK0FUM1YrMkhpcmhsKytmQm1YeTJXejczdytiMTdQOHArZm44L3RVd0dWbGVWa1R5VWI2OERrZmF5V1k0enhOUmloVTRFcExKUFpWcksrdTdKNC9tZ2ZLcWVMVzlYMlJFV2xJdEwxZGl5bmJERGIzK2pYZ1lqUXFuMHJyeFdjK05rSUxQN0Y3eEliTXZ4N3ZWNTN4NDB4bmxiV0pGMTJaU2FnL04wcFc2dCtaem1PTXpIamFqS3dEZm9uZDc4ellUZGZxMTh1cDk3enIycTh2M0lpb0JwclJ0QmwwRVo5b2c1V0JSR09kT0hqSWpYRjdVb3RGYmdPV25YeklKeXpZdmpHNUlZZ3NtTU94SGt6OE9zTVNyVk5XZXE1VDhEYU9jYkV2MU9kNXJiczlhTzdZdk1ldDYzRWtGKytmTUV4cStNUmw0L0w1YkxaTi8rZXorZm5aNkthenVNcVhTUVZPNXNwSlhmbEhBSXplcy94SnNlY2tSSmlETW9nOWQ2VmZScnFYTXI2S3BWVjI3alJ3SmFjR292T0FNMXpNZFFNbndLMUF1Yks2M2tkQ0NodkkxQzdnMHo5bmYvRCtYemUyVmo4SDdHeDRQOWR1UWxzWUNycXlOOFhxRzNIbS8xME9qM2p3L24rY3Jsc3R1TStqUG1teFQyZFR1UHo4M1B6dDJwbjFYc0VIWC9iblBhVnFWbWgweHdPdDBvNlhMTEFIZVBVVTIwM3dIZmNyc3BDd21WM1RyeUI1czBNc2VlZzk3eC9Cd3pDakJsYkIrcFJBUGxhMEJWUXVUNlY2UUhkQmxqM2QwS0cxNDdiK0RxeFFlVXltRE80M1c0ZFFhcitUSWp3bUFkMHo4L2g2NXZmMC95THYzUGI1WExwcnUveWREbzlzN0VUMEkrUGo2ZEtLOVZVRUllS1dRV1BBT3JKOExLZDR2RSt0OTFZM2U3VUZsV2F0ZzJWd0puYitIUG10dm0vc2ZLNTkvT2FXRjN4L2VQMVVQSHZBNUREWURwWVhmYjBkcnYxVjJEa0JreHR3L3RFV1ZWbFhXZEM5cEZZczUvamZoOWRTLzE2dlc3czZsVEcrVGZxc3hTSkh4a1hYcS9YZHIxZXU0THNmRDZQM3ZzVDNONzdEa0wrelBtNWpTZEtMNHpSM0F4UWQ2ckhrTGtZbFNvd3NycTd6bnp1NndTd2RzTUpPWG1BNWZCY2p4dGdNR0JZSGxyNXpva2h0c01DVGdYTFFPVzRYQzZkRXlFTXByTDhtQVF6WFJnZHVpeDJ5WnpvcnhrWXNEbjNoQjFWZU1MR3NYc1Z0Z2wycFc4UzNzdmswdnc3UjRoTmFIdnY0Y0FDbDVIRnp3SUgwS2M2enU0WGpEUFIvanBBVnhXek8xWGsyRERiM3ZUY3hlR1UxaVdaSGttSURXemlXS3ZpckNKNERyYXZzNklKL0dHNmNUcVdkWER5K2ZBclFEVlZrTHFrVmpBb1pJSVRkbW1JcVh3cWE5NU4zK01HWW9aUWRSVk5PNTNZMXhSa2hPMTZ2WTdldTUwN0NhOWxKbmJHcHhPZW1RaFN3L0FRc21tcDV6VTlCaVU4RzZ3dlg3Nk02L1U2UGo0K2RvMEJ6NENwZ2lrblRVZURxd2xLQm1nM3U0T1ZqcloxQStyQWNnYWVqV3E2ZUpDdkNZRkRPTlN3T2dIWDRFUVJ3OGx4YnpET2RFSzZnWjNIazFiKzhnMm8xSkZ0S1h5di9mRWRUWHVXaldYZEFaaUJwNkFEZURyQ0ZpaW03QjZaRm5lZUk3R3ZtL1BNa1VEWDY3Vzd4SThiMEQ3L3Y4ZEE5cWZONW9hQ2Y3NFdaakgwbWYxY21mWTFZMEpVRm1WclRXdTh1emtOY0x0RWo3dTVGWEJUa2ZDNkdPQTVxOFlNeE84S1Z2RjZzQVZHZGNyVWJzS09EY1FLa0xNT01kbWx4dW02NDJZclBtMjZBbGhaVzFZQjFSK3JyR3N3RThUYVlBV2VVTXhkZitXandTdloyRWYzeXRPeWZuNStQcFZQQWFxT240M010TkJxdm1qanhiak00bFpqWlk0Z3FOTUk1a3RhVy9zWUtOd1MrOWxGUXpHaWhtTUNLUGE3K1owVjZFYjBHUm1vYnRwWDhKbGpXdTVGTUxONWphNmhHOWt3UWdacWY1KzFOSDVVeHprRlJlQ2RXaEo4WGRsR1VreE83SFJsWVJtNG1WTzQzVzd0ZXIxMlRQSkV3L3JtRU4zTDVTS0hJV1pnOW16K3BVb0tPWXE1YkpUSmRYMmdtZTFVY3hNWlFGYUVRSWxIY3QzMk0rWTFCekdrR3V6Zml5QU45eit1Z3BsWjFzeW1DckRDWVlrR3hEVHBJOVJ6Qnkwckh5ZURVQzFuV2FlVWFEOW40eGtOeVlNQkRadHpaM0IrK2ZKbFkyMVhGRE9jQVJKbGFiT3lpUzN1Q3BMSTlqclpqQ0RrYVZ2Y0NDandvZ25LU2hXZHpYWldsWk12VlRnRDhMcHFsQ0xycWdiY0IrcVl3cmdLWXBUMGNjQ3FiS3lDVmFsa0VhYm4vRnlub2dDclBLZnFmNTF4SjdzR0IyWlhjWm14b1NPenRqeDMwMERaaTdhMC8yQUlSMFVsQmFnOVN1RHc2S2NBemxhQjd2SFp2V3BqSzkwZHlycTZiS3lEVVpRYlIwQjA1YmlMUWtISWNTVW1nSUsrU3d1cWdIQ25vaW8yUlFVMXlqK0JuQnk5cHBoVktMR3lDN1p6RksxcHhXSytFOEloVkNXTE4vdUx0blVVNGF5b1lMb2FBTno4RmR0YVN2WTRwVjBCRVcybHM2MWN6cWxsQktwVHlLZ01BaHJaMWNkYzFSUk90UG12V05rZGNLWjdaS3hhV2ppUExKTXBwN09aS3hBK3JxRy9vSkxqeGYwcG5KbHFMb0RabzNneVUwbUtHeXMydGFLZWNqL2QxQytySlNwbEJxbFR5QXFnUitEOEtqS2xtUkwyZ3RVY0FkQ3RzTCtpakNOVDFvcXFxa0gyT0hFYkc1c0RGblVnNUFhK3lMb3UyVlUxcHRqMVMyWlFxdjFPUlpOOUlXelJmZ2FSQnhLb0JFOFVXeXFsSkZ0ckljMEF4TmpTamVkOTlDVFkvWERmU3pDejVNMElab1ZFc1duUEZOVHNsOG9vVkMxVHpiR2dxRlpORFNnVndLSysxc0dETUtxeFpDV0dWTUR5c2lFcjFqVlNRSlVZd2o1aUhPbFRoZEh0NDRTUWc5Q04rbmw4RDkwTk1JZ0FkZ3I0NkpxUmlSOUk4dlJkRnZicjE3bS95eFVNS2pOTE1pVlVBRHd1MkNXR2hoaStGNTVUV005TTljb2d6bXMxZG5NNHVPRi9MQUVZV2RjcW5NN3lGbXlxM0lmd21PUk9kN1kxaUZXdE9qb1k4VG80MW1UVjVJeXNnRkZ1UnpzYldGR2JOSUlKQ0R2MWRPbzRsWkc3aldCd1JGdFZUS3VXeWVDQnlKS09hbjhvWjNlcDlYZGRObDB0RHVheXdMejljWFBZZURBQTBTcGtCTzlzYlZjVE9WV2xkUHY0dXl6RWt6eEh0anZvbkhvU2tGRVdOb28xZDhEaGNRcHV0ZDJwcE5vbjRCem9BaUoxaEJGUWcwZFZ0ZGJHSEhEUVd1c2htTkVRdWtMTTJRTzFHMlk4YmdUWHFGaGNCSmo3RWpQZ2NQdHM4VVM4cVBwUEIvZFh6bk9oNVo0Mzh0ekg1ZWM2UWdyT0tyUlJmS215c0JtVURCK1BoWWFiTWxWUEVSK0dDU0lUVHpyN2FtMnRBckgzYmdjRXpQSm0rY3I1ako0Tm5ITkZEVnJGWGNJNUxlOWs1Sm53K2JlZGJWK0ZmUnpaSUhhT09hT3NMWTAvN1VHczU4RGpyR3dLTUlNRklHek9FVzEvakdzZEF0Q042aEVBSTRoQmU5WVhlUlJPQlNWUEFWUEFxdklNNWJ4NWhWS1dBTVA2ekJSeTNpZXNjcmlkVmRGQmluQnhYRG5HMkdSWTJYYkN2cDFsaHZHdE85Qnh1NWg5MDhYUXU0MmxuU0FyTUZkaXpNaW04dXdSQ3hQR25uT1M4bHdwbmJPaURxVEFqc3JSTi9QY29BU2NDYmFBQ3FWTTQweWxuampUQnMrYndXbEFHMjMvVUtiZGtpd0tXSVFQR3pXYWN6cG9TbHhQRWo4MjJjTldrcFM3Rnl6c0RycXBmZ3BHM2phaHcydmdiYVNRQXh1TFdaWXQ3Snp5TmU4Sm9acE5BY3ZERk9kdzB3cVlUOUFLMXJaei9EZGJTbExQcDByeUl4Z1FKbEs5QVpsRXE3SU9YcG9oZzlQSWhyQ25nODhKc094aVY0WldBWWZnNHNpa3gvOGt5Mlo5bDg2MnVxd3Jmc2NJSDgrdWdUbVZHeWlkZGVWWVVnRU1uNEdaemcxNEV3SXNoOXN4MmNLS2lXWFJldU9FNWd6R09RZ2RsUktWVmRsZXZxYjI3OVhxMFFuc3RzMlZEYUJPMGNvZXpzcnVXdEhBcHU2c0tHNElCaE4wYUdVMmtMck1LR1JUTjNIbWJDRHdLVjE0enZrTUVERzRRZlpWc3BWbGFOVTJtaGM1VEVaM04xaC96cVRoZXVMcFcwNVpXVEdWamIzZGJuTm14S1pCbk44SnFpZGFWTEtBT3lBUk5MUytNQjU0WjIrVmFxb01MS3JvVkJsbmdlZm5UUEFjb0hOV0NTdmxmQThDSTBIRW1CTkJuQmxYeU1yelU3QTdXVm05NFBQcVEyZ21xS3grV0RHc252aWxtY1NPQkpxT0sxbll5QUl6dUF5ZXNxM1VkU0szS2ZXY1lLRDk1SG1mWU9VM3FzZXIyQ3RZRVVBK0ZwZnFkTnZnUEJaVUJoRHJHT05SVmxRc2g4ckxjYVVDeWtIRzBPT1V3VGxMQnJzaDVzb0VNR2V6aTFFNEhSVnQxaWNwNXdaRUZYZGliQ2tHOFk4dlg3NXNiTzRFMGlvbTl6K2hqU2lPZnkzRGhwWEl0cFZoRStVR1Fkdm9XanRDaG1yR0hmNFlBektnQk5uR3R1SnhGQ2VHZGhVQWZRTExLOGtCWUFQNmd2RkpaYWpNRzNYa3ljeThLdUMwcTRFeXltd3R3ZHhkdjJNMG1JQnRLMExLbmY2NDBqMDBBdXE0Z1VrZFdHbGhzMjJxSmM2ZFpDc0wxOW94bmxUSkc0U1lWUklHcEQ4VFBGQnVNNk9FbGJTMXBsZGlkNG1HQXlONlpJdXBiQzViWEpOOWZkcGJUaFN4TFVhSThJRzFYSVlCeFczVGpzNktRb3NLY3hmeGNRbWRud1JHTTEwR25GY0N5MlhZdW5MTXlBa2RnazRtZVBpY3pzTHlndGhjQnV0NmdvT3FTN1lWRlhBRExqYW9zQjZzNm9mY1pXQVpTSVJZcVNVa2l6WXd0dFlhYjN2VU9ROXcySFJ4SUlnOFd3UlZlRTY4eGk0VXRMM3pScGh4cGx6d3VacmNxWUNxMUkzalBJNWRuSkl5Z0VvaE1iUHFWSlN6cnd6eEJKVHM1ek4rUmVVU2d4aWtQUVZGM0pWQmVOUXhiSEVOckVNTnZFZEZaVlY5bEg5K09SR0VzTlpRcHlUTmM0QzNBRzdYRjRuZ3pxK0RyTzJ6YnVhYU9YZ2RhRmNka0VvdG9TRkJWWDJxSjBDOE9XWmVHNEtHbHBnaEEwWGZUT1BDcVYycXF3UTI2UVdmRjJQTUxoSTJ3MWxWQWEyYVBzWWQwemEyNU1RUndnY1pONnVRRENpK1p4aUQ0WEVNMmtaeE9UNDFGblpuYVJsY3Bab3V6bFJxcWRiUVZXb3BRb1NCNThSVjUwbEJOckhpL0F3WFM1THJ3RFZscFkzRmMzQnlpWUdjNTJUcmlzdDZrT1hkd0luQVF0SnBwNVFjaHlhcXVZT1Y3U3UrZnhWTWFWM2RjMFJFMlM2bVVZMGdMdDJwTWNZcXJLSVE5dzJsMWdwUVVNdFFZY21tYnQ1RFROeGRoblVDalFxdGJLOVNVU3p2ckMwbW1oaEUxZTJGUzIrb3h5cHkvWkFTdXRrbXRqeDN2Y0JDMjRQWDY1bmJxa0JDUmhmalM5a0lZUG5lZThjTWFnVk9oSS8zVDFmQW1kdEFXWnNDc3dUSkNrUVZOYTBxV0tTS1BPcEhBVWhEOURyYlZjeW9Za3dxaHZoMTd2WUFheVhMUXlLR1lkeGxVREZwNDk0ckJYUmpZZ08xN0REWWV0TklVai9lenA2UzBsbmxwRXdzV21KTWtPd3NLWGVaS0VBaklIbjBFUUpJU2FSQmNPNlVNSU56N3AvYkVqam53NGZ0K3htRHZrc3hYNEcycklyaXM3cWFlS3dBRk1QMk9pN240Y3JpdVp3dHBTVXdwZkx4U25PUlNySXF1c2M1WkZhWHlzcVJXamlaMkR5QVdFSUwzNXRWU29RRWxGQUNqT2VHR1NFN0FIRVFnZG8vTFN2Q09nR0J2a3hzbURidmxTM0ZwNXZoYUIyVEFHcVJLcktLTXJoTFZwYUd6RVZqWjBPUXhEaGFDVEErUXlSUjFkMTVhUXpySm50TDNSaWJzaXBqRzZqbGdMNHlxYlMwc05ZZzFlODR2aGJCVnJFbEs2NENVY1dZWERmS3hocEl1eGlWSlpVeHNiTXkvdVJCS1ROUlE0a1EzTGRSWUxTMHJKalJQbFRQcVk2Z2RKc0VEYythUVhBbitIZ3NOVUNiUnVGME9qMHp3bkE3YldEa2JoTzVFbnMwMHFlUWhTMWxhQk1sNU0vY0FheHNMRjhyS3lxbCtUZjdFTExFR3UvaXhpaW1kQ3ZvMFRqZnBqS3dhZ2dlbjRlaDV2N0xva0xLYkx1eXZIaGNaRzhkaEdyRUR4N0hnOTNacHBKRjdxQnFPM2lWdmVYRURRTkluemVvZThZcTZlUGFaQloySnZpTTNXMlVBR290ZWtSQ0FHcTRFa0YxWDNET25SMTF5UnNCTDF0UmEwUFZjWmlORlhaMmMzNEZza3ZvbUluUVE2bHpwSm9aYkp4azQzTndLSkZCcXVKU3NyQnlIeWR4S09uVHhRQVNCbVMzaitKTW5zSFNsYTNFYzZLOVZXb0pWbjl6Zmp3T003aHFZQUFxSlF3RTJhM25BNDhKMlFHZWdSa3BaTml2U1kreXMzRWtLZDRvSkl3c3ZJSGwzY1dnTHQ1azROSDZPbXRMV2RwdXJPa3dFTXVwWWM3ZU10RFJoT2NJMnVpNUpoVkl6WHpMeXRvL0dBUHVab3lvOHdrb2R1VmdKZ2xDdDdPaEdiZ0lENE1xNHNpKzYzelVTMUZ1RkZYRmxxeWFqMmVtSGxMTWNCcVl1MEZNdVIyOEJiQjdsT3hSTVNpQ1FYRmhDS3V3a2haK3BZRGlHU2dic0tLVjhNaVNSc3VIU0lXTTlya2xSaUlsWlp1cVhqc1FLOG9vWUpNZ3EzSktXVmtoSGJoc1Z4RlV6dGhPV1BrWWlqY2J4NTRJS3NTZFQrdUxyM2NyR0t5b1lnRmlHUjlpQms0a2Zsb1VYK0pJbFFSUXFhYm1wZ25ocXRwUXBiNlJWUTFXSDVEbnJTNGhFb0dacWFlclEyZGhGYno4WGVQeFNobURibzcwZUlTam9vck8ydks4U0pYSTRTVW1FVTR6V0tEelVEdFdUWXc3eFhsYlNURWo0RlJnN3pLbktvR1JBTHYwR3M5VGdjMUJwQ3l3R1pSUUF0cVZ6MnhyQmNBTXpFcGZad0ZTYTJHNVcwUUJGalNNYXBXQUVGYTNIY0dON0N4RHpFQ3lJa0o5N3F3cnFXTlRXVm84NzZQUHNqUGtqMnd2Z3JvTTVsTFpLTUVUS1ZxbC9Ddm5XVkZpRmEvU3pKVVF3a29ac3I2N1k2dmxTUlYzLzJ0bU5UT1kzdm5heFl3TXVvUEtxZHpSMXc3SXFIeW1sUHhhQVRoZlU3S28yWlhZajRBWUpITCtrTmRLd1JRWUVTVFJhNWZzVVovclZDMVRNVHlXVnlZb3FOdHV6YUhzTXl2MnR2b2FyeGRmcXdZZ1UxYXhGby9jbnFsMUZHc3FLK3VBUk9WOEJYNEdVOFdjWlRBVGkycTdRY3lpME8wVitHaFdCTU5SVWtuOEgxU3NXVkU1QnkzR2kwRUNxVWVKb0JmQXREYTRhbWtkWEczN0FHUDVHZ2ViODRwN1VhenBvS1J6ZEZ6ZVE4SGtvSEd4cHJLeS9IcG01dDEycDQ3SjZ4VFlERXo3dUlORVhTdXhZWHZGc2tZQWMreVN4SDlzZjVmdEt6VTZJYndWQmNVR2c1ZTVGTUNFWFNFclpSMHdHYXlWMTl3b005Z3VQalRxSmRWVHFSNHVFNG5KbkxsZFdWa0VDQ1pMZDJWTEYreHRhbWV4N0lwaXJpU0RVcHZycG45bHJ3R01DSHlwcE1IK3BzNkxJTHN1RkdVajFYRU9YaXFicVNIUFVLbkNscFdWNjhrcXRVUlZORFk0VE5hb2N5a29ZZVRVNW5nR0VRYS9TMURubkU0QWVYTWNLakhQQW1GVmpDQkVOYWV5TFZOSGZyM3B4OHhVc3RKOTRoSXBmSDRIS0UvZURhQXJLNmxTeVZWRmJkdDFneFRJVmszcHBwVmxGWGk0cEVoVkJUT2JxdW9oVTg1TUxYbjFpYWh2VWtISmpTQ01jMDF0TEZ2ZVZWQngwRG9kTTZqZnRDdTdET3RJell4cmMwcXAxSkdQMmF5WUZ6MkdiNkh2TXJPOGNuR3RWNkdqbTN1SW1TZkQyR3BXSzZ1b3diWkdNeEZLUUNvMXBPTXRjTVhGcFJzdCtoWEdvQW9tRjNzU1RCR2dUZ2xiQktXd3NRM3RacWFZU3AwWjFDaW1SRFdGY0NKVVBZSjAwQkk1RmtLWU5vaWZ1UXhtTjg4U1dWWFdMTWFVcXFxZ0MwQm1RSlI2c2szdTlOQ2Y2allMWHhBZnFzWUVnVkxBaFJZMkF0Z3RmbFpORm1GeWh4ZHJMa0FkV2xrNEQ4OE0yaXhIeWVwSWRoTUhyRy9pUjFaR3RxME1HcGJEYlJQWU9YZVNZMU02Tnk0WnN0dkdTa3RLK1hiRlBBVGoyRDM3MXNhUEVzQU1YaFhyc1owa20vWFN0a2hoTXlCZnNhNnVYRlplMlZDZStZTXIxK0dLZ3dyUXlOWXExVlJyQitFaXpBb3c2TnNkTktjeVZFa1llTTczeXM2cTRrQUhwNkJpRmtsVGtJclZDNW9ZVjd1endPR0N6NFVKMFN0cTJsV01KeTR3dGIrUmV0TDZ0WkZpY25KbUJ3NVVqQ3ZYWE1aVkpYMk1Ra2JmK1hONUVXZDc4Vno4L0pFc01aVEJpS056c20xaW5MUlVRNzRINE5pZGFxSTY4ajVzQUZneGNSdmVDN2llTEpYZlFZeGpaWjJDc2lXRmV3WlhKbUJJbFoxdGR0clg0aFN1YXRlS3NvL1JaT3RPS1cybm1xMW9UemVLNmRSV0FXdTJOUlZiNGhxMFNYbTFHdnR1Z0hyYnI1SVhxbVNrdGc1Q3VERTJNU2xQd3NZNWtORTJXcDNBcWlaYldWTEF4aUJGKzJpQlpidU5qNk1CNnJzTUxDN0Z5YXNhWUR5bzdLa29QeUV0dzNwRU1YZlB2eEFKaTJqQVFRZ2pyejByTElaU1dabElvTmh3ZDV4SzRBUjltWU5qV0FhTHJudUltSmVCVk45ekJPUk9iVnZicittVFRmRlNFSkxTUm5IbzdoRUpvSWk4TUZxanhtdmdtRjVVUlp6NHpMRmdaWjhDdHUyWDdnZ1ZjY0ttOWdWeElzT0hxeFhnTk1LbkZXWlluZjFkQm5PaGF5WHExN1F3RmxXVzA5ZU5LeVZKRm1YcWFPTkdBNWFDZWdNYkozVVVrR1kxaWMzbktXZ2pxOHFmVllHUUcxZ1J0NnJzNjJhNkhpcXFVT3FkZXNLNU5tWDRuR29mSm9pRTFkMGRGOWxWVmt2VDEva0VFYWFDb1lPd0ZwY1Zjb0xNKzc2NjlQeEM5cldxa3RIMHNXVVlsZDBWQ3B1Qlovc3RWUmNHZ3k5V1gyK1UxUXRoaTlTekFxU3h6WnN5K09pRnpCWW55U0dWNkdrdTQ0ckQ4QkNPWkJWM0J2RDUrQUtSSE53TUVzQjZFekhuSnBrVEFlaVVsRUdrY0VDZUI2R0RaVHA1WUVKVGx2ZHJrbnhZalRsbE1rZk50WHdEak03dVZqSzVKWFVVbjQzcnJxcEsyanl0YXhIVzBNNUc4REM4cnRITVlzN0tTZ2R1VlFNR1RZRnFGdlZTNnJrRDNzREo0NmFmZFlGd29xMTFBT0tDQkxodndvVWdjOElHQU55Y1I2a25acmRKUGRzdXhueWpmZDNGb3ZUbFJNZEVkdE9sNUNNVjVFSHNYUUJpczdUT3d2SURaYUdqMlZucGJoN2NwSzYzVndZRU1Md3Fianp5bDY5OXNhd0ZGa0YxeXFqVVUzMUhmQzZzVzFaRlZGdVhWWFZnejlrZUVhdzB5czFsV2ZtK2F6UUFRU1dBK2hLWVZmc1pqUG5jQWNVQjlvSWF5eS9VWlhSTmNrREdqaTc3R3NXYnZCbzZ0UHJXUHFPeVZrQlVxK0lOZXFwek5kWXMvdTBpZmg1cW1wcUlXKzMzSlZTVWN3WTcwS0w0VTlsWWRVNmxqdFNsczdsbWZpOWczWXplUWZWa2FHRmFWM09EQ25hRDJOOHdzRURGa2xFM1J6TTNaZ2hkWWtXSHNzenE3MEZJZWNuS2tWa3Q4ZXpNelJxOWJrR3VLb2pSTEJWU29kM1kxeVBxS2dZVzdKUlFUUFZ5eTV4SVlMak9neGdUNTJSS0pVWTFkT3JJaVJkNGZ1dFF4L0E1QWNTbUVqejB2Rldya0x6dmJXQXU5SE9XYkdneEZrMVZOVHBuQktrNlRnd2lzSS9IY3hZWFAxdUFXTzcyVUxGbEJUcSthU3UyVlRVczZocnhNMkNGK2hFb3IxVklBOVptRlVhYWIxbFNTZ1pzVnM0c3h6SGxWTG9KSHI5SDREaE9OVGtJMVhDMC93aVkyTm9XQUc1UmxuSEZucTZvTGNjcFFkZE11Si9PMTdKVkE1T0hMaTBCcUN6dHE3WTErK3VjQ2Q5OHFMSThNSUhCVi9jS2p4UVRtZTNoRkJTM015Q3FuRHN1eW0ybzgwSGp2RkZUdHJVUm1OYUdKc21WYWhJbWpUc1VYS3RRWlRBVnM3TXZ2OC8rZnpVclpBWGNMSjZNNGtvZTZYUDBiNlNtV1dORHp5VXBROGJsK0x0V3g0dHVxWjM2Y1JZVjN5dVZ4UE53dklpcWlRQ1NtdTdzcmdUelI2bmt5aHBDYXJYd0Z5MXZHZDVpUDJjWTA2bEZyNU5qaGhnMVk2K05CMjhmdGJLODNzOHJmN2tMSmJLd0RGUGJMZzI1YTBBZFpKRWlxcjVwaGl4S01EbFJVdGNzc3ExaHJpTHFHb0gremVOZ1ZtOU9lbWpzRVRWOEpkRjBOSG5rSUZ4V1kxT0I0WXJwN3J0V0o3TmdBQUFQWGtsRVFWUTNvTnM1bnBseVZmOHUyRm9MdTFKckh2ZWFaV1FqcUFrc2h0RmEyZ3pzU0czWnBrYnZnM0hhZkY5c2xQUGxsZGpGbEs4MEd5c204TXI0TVBobmVOV0VOUEdqQUlwbWlsVFBBVGRUUlRYbENCWUhZQVF1UHdBMzZ4SXBXdEdONHEzWTJNaGlHc1VwdVNTbmxFSlJEOFBvckM3Q0ZZVncrRjUxcVRoZ2FieHNUeFd6Q0dZMFpTc2IzbGZxQXkwT1BOak55OHhpUVFLc0hZRlEySEJaVnZWYkJ1cTNtMW9XS2FqcWFvbnNNNnVaVXI2Q2pYV05aMGw1RTNoM2pVUm1hNmtQM01KSWl5MUxtK2thaFFxNDFOMmlaamE1c2p0bExZTlpIWnJINnFVR200dk1iRHA2UncyQ0ZtdnV5RmtyQmNDeU10RnFCYUVDbXNIb0s5QloyTEEvbEpjUnFTYURxbmFXYnJaZEdhejNETGdJdkJsbjR3b0d6dGJ5Skdxc2x3eGtoaEhyVGpUWUZYQ3RPb0tTOHVMZG9mVmRBYk95bEdVNm5sWXBYV1p0czRuWEJxNld4Sml0TU5va0hVSm5ibkpwbFFtK2FHcFkyYTVHTVYyUUQxaFJ1YkJQRktkdW1mNU9Ia0xIejBGOWx1RTVrakJqUmEwbkZFNUNVR3FIdzMyTW1qWjZ4a2dJTlZuU25aMVZaU3RLMnFLbFJhTGxRZ0s3dVRxN0pGWEp3TSszU09FS3loWk5JK3RKMEk1cU1ZeTlrMnFKRDdkVldkcUtYYTBDS05SMENjamcrQjJJWXUyZmNCWkpaa01GZ00xMXIwWDkyd2lsZ2hGR2d6Vm5leGxxQjd4TDltUzI5U2lZVVZZMm5YT1pqTkJSc3lEc1FQUldXNWhyWjRYY2RDNEhWV1JiamdKcjRzRm9mSzVTempRN3JoSTFVZWJkUGRFYmo2c3FJdlRaUVo1dmEwOHJBQnNBVzBVeGVXeXRBazdBMktKOVpweHpDaW9CMjRYRnRZQWVYWXhyNmFuU3FoTGdwcEVxV2JHd0x1blRnclYrSWpXbEwyOWxqYUFsNEVRTUdzRXJwNGFwZVppcXV3UlhMWEFxT0NlcnUzMm1teWRjNm9XVFNXcEZBR2R6ZVRCOFJUSFZNRXRsTTkwQ2JiUUNZaFBqcTNlZ1lyMUZHZFlJUWppdURHWjV6Wi9Bem9iS0dPeUx4dGk2YzRSd3R2MmFueVdsTElDbmxMaHhKUlh0NkE1ZWJEQldGTk9OYnhXWjJkMDJtbnU0UzlZRUNwZXBwVjF6U1dSQld4SFl6Vkl2MUNYU291d3FxWDNqQkJCRFpkWVFicFRRVzRaUWxTOHI1a0g0c3VTUm1nMisrM0pOMTB4MVBhQW1Fa210WWxFZGVHcEpFTTZrT3VDcUNSMjJvU3VqajVJVjJIZFQwemo1cHJMS1RqWEZBUGpkUWx5cTd4SUJ4QVFQNXlNY3pHNFZ4QUt3MG42aWxaMlFCY2UycEx1bGt1eHhxbm9JekZmZ3F5cWppbDlTMVZOd0JyRm1leWVvcHM4eU9qWlV5YlpkZlM4Q3VhVElKdW16czV0T0RhTnRMcEZEUS9QY0pHd2VMaG1lTDFuQjBLcWlVRFNjc2lVVkQ4OURpM0h0ckt0U1VMdzNSTGl5Z1pEKzdzRjhKVE9iZ1lzckd2RE5VRlJHbDFpeTBMbDFZa1VjMmFKWU1vZzkyMEk4cVc2WURDZzFNcWswSkhKRktYa2JnYlJyZUkrcXBZTk9aSHJWY0RVYmE3cGpzcGhTSk50SzZ1cGdSTkFWb09TMG11Z0JlTjRiSVpnSGh1UFovczFFTmFYNktzVnIrWU5yaDFOYjdpcFIwUEU1emJOUmVnQ2JySFJVdzZZZjA3ZExCSmwxZjhLQjlhczJWMW5OcUFzbDYyTEJCaGVod2FsZXJrSG1CMUpGSUVaS1NFdXNkbDVKUWoxbkpsSFhTQ0YzNDJnSjlDWUdyWGVsa25KSVhxVlA4c0QrcXRwbENSM1hIMnFmS3EweWdNcCtLblZrS3hObFo4bTJZa0lsVk1pQ25YVXdsN3F6bkJLU3ZRejNtM1B0Nm9RYlhPNWI1Rml4Q2gvZkh4VVFXL0FFY0s2ekNOcUtRbkw5c3l3cW1LdXd2cVNZelQvYVBWTk5wVnlodlJXMjFhcWNpQ3NqZFd2QndJTFV2aDVWeUN6YldvQzFwSmpKNjgwQ1dzbCt1ZEtCNlQ1UndHMW1sb2hubHBiZzQ3aXo1VTloYTBGR3RtUkxGWUJ0Tzk5eTk3QXAweitaRFRBb2c2a1NMWnNNSGcvSUZra2dwNkNwdlUyVTBjWVZTZG5ta2p3QmRPbVhieFRXTld6dUliaXBNaW9WeEVja1pFb2FoU09peTJNM0swamNDMUxoVkR3YXFHMFp2a2NXcUNuckc0R0l4eWtycWxiV2R3NkxReUJhWlI4SG1MUkloUVdzSHN3RDQyWlhWTE5rZjlsK0ZsVzBIVlEybHdGc0MvWjFGZHpsUVIwS2FQZm8rRmRmdSsvZHdWUklDdTFDR1I3QUVJaUFoYytBWlVGMGtPQmFQeG1VcWc0aTY0dlFuVTRuRkRZSjlOeisxZlZYdmVIOXFtcitrUElMeDhvS2NSVi9CRmJ4YkUwSk1UMGtTRDR3NkwvbE5ZOG9jc3FhZ1ZkVTNBM01qeGh4Y0d1cXpzUEg0aXJwYW93MXE2T3lyVmp2cDlOcGM1OUU5MUxsZGJvWVZ6SldkaW1XZkFXMlNORUtjRGFYMkZtQkxMQS91S3hsbWhoNjEzSXMxVVJRQXBiS2Z0dHd4TDAycTZPbng1cFF4U2JQb2pBZyt2NWhBbk42TEhWUkRYSXN2S3RSamlTMHFKVXlaVEFYVmJBSzgyRWxGSldhUWRWb3FVQzFVbnQ3QlZhVFF1ZE02U3VxZXhqUUpONCswaWNheHYvdXRiS3Y4M0VUYlQ4SDhnamNPS3hPSm1iVWE2T09WWGh0M2RGWTZySHY5WG9OekZMY2VFQTFvOCtwS20wTEFIUEhaMnJZS2pGcTBoZlpGaXhzcUhKZ0QzZUQ1bitVMGtiMW1GalhrbjJsdk1TU09zTkUvQ2RJQUtGMFN5dHE2dXJPSFVONWd3ZzRHWm9zZ2JtZ2dNNXVjcmEycXJTMklnMWNiaUJCY3hZemd6VUROTEN2TDhHYlpYTnA2T1J5M0xtUytLazgzelJJQUs2QTFpb0thMkk5TmFwSXVpVUZkZkM5NzY2UEZaVXRxVXI2S2JXayt6WlUxYS9acklYRXp0cmpUT2Z6N2h3S3ppQ2VYSWFyYUh0YlpJTXorMnBHZ2F6Q213NHFXQUZ2RWRob2RZcDBYcTBwVjdHMVlXWVdiTzRxaEdxNDIrWjhCWXRyTFd2bHVOUHBaQWVhRkZTMXZ1YlBnYmd4c3FjcG5BYXN6Qm92S2FGb0RROEJHdGpmVU9sNE5BRzJubVFWMDRmZUpndW12WDJmc3JRRVdaZ2hMMEpuVmRZa24zRE9aSWVSTjg2UnFQV0Ntc3ZHVnFFTVJud3hRQXh3UzhFTVlvM0l6bVkyK0JDY0xwNE1LaXV5dWhJbWFtbGJaRmNOb05sN3RwK1JIZDE4WmpRSVJLeVhkRlJoTjk4L2h5S3F3WFdObzdPMXdpYVhvSE4xMDhSRVpaV0VxNmdybklmanplZzhqZFJmMVhFTDRra1hhNWJCakt4b0thbGpCamVIbFZ4UTRHYXljcFc0bERPQUt0blR4SEF0T2Z6T3Rad0hBTTdzcVZYa1Y2eXU2a2FwMW5Ia1hLcVdGLzRYSHFqZW5OS3FCanBSM2wxY2gzRWpnMStFc2dkUWhzZEcwQjRGTTlzV0FWV3B1QXlpd1RQbGVaeHQ5VnlaVlMycVhmUmVXcVRBaWxwcjlBcG9XVGp4eW1pdDdOd1Y0SlRyaVp5T0E5QjBrN0hGZlVMb3VybUtZSFZuUlF2cUdMNUhNSGRxRmNSMnFXcG1jSzZlVHd4MmRpcFdydmlEaWxyK2ZLV3EzT1dSV2RIS3dBNGV1OHdqY2hiZVJ6RmlscWpqWk4zdWZDcGZrSjAvc2NWcG5ZazZMMFBJNzdseGRXQ1o4N1dpV203Qi9BR3F1UVNudWpHS3NCOENKbWlKcThxMXBLSVZXeXFPaVRLNjZyMThCTjhyNzQvQUU3MWZkQzN5UFMyTXhkT3BuRTF0bFZ4RDlKbVZPb2dnTityNFBqQVhWRlBhM0VnNWpWSkdGVlVHTm9sSDIwR1ZyVUI3Qk95U1dxNldxWVFkV1I5MnBjRk1ZTXdja2JTZ0NLQ3FENjdEaWlXdTFnOE1RQzlCeWZjRnFXMUwrakw3MTRxTkN1em5vU3h0MGRhMmd0V04xRzhGMEJLME5OMG51aW1lbFVGOWRJZEFmak80NFVUM0NqUUxvVWVMSEpGVE8zZ21wUnVJSU92d0JRQ2JxTmVvM3F0WjlpRjZ4VksxM0dSbG80enFpbXErQ0dkVGlSMXVSWThvcWdFMDJoWkJhNzlrWlhQTXF1eFJIS2xhMnNhWldONG1ScVpVajB2TENLaGtqS25xT1FITnVTWlZKb0t2QXFTMXdwRXF1dldEQzFCMnlwd3JDUHNSTUVQVlRPRE1MSk1EdjZxZUtYd2kySllWNVNxNHFLeXZnR3NIQ0xpdWoyalI1OVY4Z01xU0oyRkpaUlhFSFZSSGozc0ZQcmN0Nk9wcWxXMUdwYXRRZHQwR3Z3Zk02bjYzSW5zR1ZGaEpHYUJxZ3FxSVY2SXNYbGxaZ3lTUHE0UjNibnQzd2k1Y3YrY04yeXFRTFcxVDk1S1lWc1dXdEtrNGNCOVc1M1dRUWZsUVlSNldsNEhhSlpqdlZFMEQ1eXZxK1JLZ1pDczVxZEJFUDVzRDk0Y0F2UUxsU2dOYVNNQXRIeDg4QnVOUTQxemRGc1gzMHpLYmNzME1MRC9paGtwUXpsMHdpVHFLTFRmYkttQ215WUlDbkswSWJhaWVDNENHOWlTeUxRN2NJTUdRd2F1NlRLb3E2MEFwbDNXTjQwTFpwY2ExQ0tLSzlWUXl5SUVuOHcwRjhGNkNMMmg4bzNpeEd3QzdzN0VXekNPcW1jQXBZeFlENGpzQXpWUzBzbDJ0OThwQTd2cktvcGhDVlNvbmJZcGdINm12U24yNHBUQlY0c2R0VjNCdE1xNWs4MnkrSUFEdlVKMHVBbGtDVlR4SWFQbStVTnUvcWtWNEYxVHpIWENHclhJQXFJdEJLeXBxSzk5VnRBT1ZzNjRPNE9iWDdwSExWQ3BZSGNSbXd2TFI3VHZZQUtCQk41OExHVnpEdUZ6K2hRYldnbmNReUNaQWsrVmJzUFNvdWY5MzI2MWlaZ21mQ3B3UmJBdnFtU3FyaVUyUHdoamFvT3lZcXRJZWdWWFZpVHNteXRhNmJHeVNwWTNneVJycEl5QWVhV0REeHRwc1h3S3lhbE1ES05QN1lCWE1xRXNrVXNpMnVDOEZOQVB4QUtUVmZUMW82VnpNMEUwakYrMXJXY1V1SHZkeWc3dmdvRnBsWDhIcHZIcE1DT01SVVBIelprSW5zcWxGS05YL0VJTzUyRTBTeFN6T3dvYjJWbVJMVzVEMVhJVTByYmdNMUF6V2d5QzdmZThHN3hVQUsvdGFFQmF0N2x1cXR5UDdFbXNhSlFPajVGK21yblpmQ3VZQ2ZCVUFXd1NoeWQ2cE1ZL3ZBSEcxVXFPWXBiSS9neTVUMENNS20rVU8zZ0Z1Qzg1ZGdmRFZlZ3VQRGZJVHJJQkxzTHJjZ2RoM0NGZ0ZaamFLSjRJdjNGOEFORXF2dXhSMXRWS09nTG9DYTFqeGJvQkFrajZ2N2ovaWNGYkE3ZjRyZlJuUURMUlZpRzEzaTB2cUJRcllWcUJiQURaVDBacGlIb1N6dlFwb3BLSUZTM3NFMUhmQldsSFhkMEg3TG5BcnF2b3VnTXRsakhCZ1puaDNFb3ovQktqTE1MNFoyQXEwK2hFSnI5amFWVUJidk56Q0lVaXJvQzdBV21tRnc0bzVBSzNNdEI1VnlwWk1TRmdzMDVKeUdWd2x3QnFzRUdBQWEyWlUxQ2pVZXhYR3NFNHJLcmlpbEJ2RnpPS0tvM0F1QXJvRTZRRlFVM3U4WXBOWHdTNWsrMVRadDVVcndvdU40S2lVRXcrazNaV0RwMVJYSE5ScVhiMjFUczM5OTQ1eVpTZzNWblpGTlE5Q0YzWGVaeXI1RGdCWEtpd0NNYTJNeGVURFlYZ1AxRnNmOVFOS1pjMGs4MVJKazNyNkVRM3JDbUJWeUxMNzVFaloxcElWREhvRnRpT0FIb0IwQmRUVnlscUJzS0tLUytBZUJYSlZMWStDWEFTdUd2Ty9BdXE3R3VFakRmR0tnMW9LYTF6L2RtbWk5STlTVUdOaGwwQXRmdWxIQWF3b1lyblNrbU5YQVZ1R0VockVWWHZVRitBNUN0MlBxTk9qRGV0eW5hNENtZVVvbG1lWExONEFxN0M1U2oxMFE3eWpnbCt0NkNOeFNSSG1JNVgrQ3B3cmVZQjNRZmRxbmE0cTIxS2RCdWM0R29ac240OVpPT2lWaW53SHFLOVd6anZnZXdlRWgyQVU1K3Z0eFo5Q2Q5V3FraDQ5VjE4RTVvajZ2VnluMFJTdEF5R0lPNWVkWFJLZDVCMFZHVlhxMnlyM3hZcCs1VXQrQzRRSjRQMU4zMzlwUU1qUmVqajR2Yi9EY3I2clFjM08vMHJqbXRacGVZQ0JpQ0hmQ2VtUmJOaGJLL3BOVVBjM3dmS3k1ZjJEN09sTDMvdVBodmUvb1U0VDBGOGYrVk5NMnZ5b2l2MGpLK0tIUWZkSHErMGJuY3o0b3o3My8rWTZMYkt3MW8vNUI3ZU9mMVJsLzBkdTlCOXRuLzlidnJmL2ordjBoNnR0bjJ0cC9yLzQ4MTl5NC96djUzOTF1dnp6ZndEaWZ6NnBoVDFNUGdBQUFBQkpSVTVFcmtKZ2dnPT0iKTtiYWNrZ3JvdW5kLXNpemU6MTAwJSAxMDAlO2JvcmRlcjpub25lO2N1cnNvcjpwb2ludGVyO2RpcmVjdGlvbjpsdHI7aGVpZ2h0OjEzMHB4O3RvdWNoLWFjdGlvbjptYW5pcHVsYXRpb247d2lkdGg6MTAwJX0uY29sb3ItcGlja2VyIC5jcC1hZGQtY29sb3ItYnV0dG9uLWNsYXNze2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjA7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmU7bWFyZ2luOjNweCAtM3B4O3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZX0uY29sb3ItcGlja2VyIC5jcC1hZGQtY29sb3ItYnV0dG9uLWNsYXNzOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9LmNvbG9yLXBpY2tlciAuY3AtYWRkLWNvbG9yLWJ1dHRvbi1jbGFzczpkaXNhYmxlZHtjb2xvcjojOTk5O2N1cnNvcjpub3QtYWxsb3dlZH0uY29sb3ItcGlja2VyIC5jcC1hZGQtY29sb3ItYnV0dG9uLWNsYXNzOmRpc2FibGVkOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5jb2xvci1waWNrZXIgLmNwLXJlbW92ZS1jb2xvci1idXR0b24tY2xhc3N7YmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6NTAlO2JveC1zaGFkb3c6MXB4IDFweCA1cHggIzMzMztjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmJsb2NrO2hlaWdodDoxMHB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0Oi01cHg7dGV4dC1hbGlnbjpjZW50ZXI7dG9wOi01cHg7d2lkdGg6MTBweH0uY29sb3ItcGlja2VyIC5jcC1yZW1vdmUtY29sb3ItYnV0dG9uLWNsYXNzOmJlZm9yZXtib3R0b206My41cHg7Y29udGVudDoieCI7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjEwcHg7cG9zaXRpb246cmVsYXRpdmV9J119XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpLaH0se3R5cGU6T2J9LHt0eXBlOng1fV19KSx7aGFuZGxlRXNjOlt7dHlwZTpUXyxhcmdzOlsiZG9jdW1lbnQ6a2V5dXAuZXNjIixbIiRldmVudCJdXX1dLGhhbmRsZUVudGVyOlt7dHlwZTpUXyxhcmdzOlsiZG9jdW1lbnQ6a2V5dXAuZW50ZXIiLFsiJGV2ZW50Il1dfV0sZGlhbG9nRWxlbWVudDpbe3R5cGU6YXIsYXJnczpbImRpYWxvZ1BvcHVwIix7c3RhdGljOiEwfV19XSxodWVTbGlkZXI6W3t0eXBlOmFyLGFyZ3M6WyJodWVTbGlkZXIiLHtzdGF0aWM6ITB9XX1dLGFscGhhU2xpZGVyOlt7dHlwZTphcixhcmdzOlsiYWxwaGFTbGlkZXIiLHtzdGF0aWM6ITB9XX1dfSk7Y2xhc3MgUDV7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEpe3RoaXMuaW5qZWN0b3I9dCx0aGlzLmNmcj1lLHRoaXMuYXBwUmVmPW4sdGhpcy52Y1JlZj1vLHRoaXMuZWxSZWY9aSx0aGlzLl9zZXJ2aWNlPWEsdGhpcy5kaWFsb2dDcmVhdGVkPSExLHRoaXMuaWdub3JlQ2hhbmdlcz0hMSx0aGlzLnZpZXdBdHRhY2hlZFRvQXBwUmVmPSExLHRoaXMuY3BXaWR0aD0iMjMwcHgiLHRoaXMuY3BIZWlnaHQ9ImF1dG8iLHRoaXMuY3BUb2dnbGU9ITEsdGhpcy5jcERpc2FibGVkPSExLHRoaXMuY3BJZ25vcmVkRWxlbWVudHM9W10sdGhpcy5jcEZhbGxiYWNrQ29sb3I9IiIsdGhpcy5jcENvbG9yTW9kZT0iY29sb3IiLHRoaXMuY3BDbXlrRW5hYmxlZD0hMSx0aGlzLmNwT3V0cHV0Rm9ybWF0PSJhdXRvIix0aGlzLmNwQWxwaGFDaGFubmVsPSJlbmFibGVkIix0aGlzLmNwRGlzYWJsZUlucHV0PSExLHRoaXMuY3BEaWFsb2dEaXNwbGF5PSJwb3B1cCIsdGhpcy5jcFNhdmVDbGlja091dHNpZGU9ITAsdGhpcy5jcENsb3NlQ2xpY2tPdXRzaWRlPSEwLHRoaXMuY3BVc2VSb290Vmlld0NvbnRhaW5lcj0hMSx0aGlzLmNwUG9zaXRpb249ImF1dG8iLHRoaXMuY3BQb3NpdGlvbk9mZnNldD0iMCUiLHRoaXMuY3BQb3NpdGlvblJlbGF0aXZlVG9BcnJvdz0hMSx0aGlzLmNwT0tCdXR0b249ITEsdGhpcy5jcE9LQnV0dG9uVGV4dD0iT0siLHRoaXMuY3BPS0J1dHRvbkNsYXNzPSJjcC1vay1idXR0b24tY2xhc3MiLHRoaXMuY3BDYW5jZWxCdXR0b249ITEsdGhpcy5jcENhbmNlbEJ1dHRvblRleHQ9IkNhbmNlbCIsdGhpcy5jcENhbmNlbEJ1dHRvbkNsYXNzPSJjcC1jYW5jZWwtYnV0dG9uLWNsYXNzIix0aGlzLmNwUHJlc2V0TGFiZWw9IlByZXNldCBjb2xvcnMiLHRoaXMuY3BQcmVzZXRDb2xvcnNDbGFzcz0iY3AtcHJlc2V0LWNvbG9ycy1jbGFzcyIsdGhpcy5jcE1heFByZXNldENvbG9yc0xlbmd0aD02LHRoaXMuY3BQcmVzZXRFbXB0eU1lc3NhZ2U9Ik5vIGNvbG9ycyBhZGRlZCIsdGhpcy5jcFByZXNldEVtcHR5TWVzc2FnZUNsYXNzPSJwcmVzZXQtZW1wdHktbWVzc2FnZSIsdGhpcy5jcEFkZENvbG9yQnV0dG9uPSExLHRoaXMuY3BBZGRDb2xvckJ1dHRvblRleHQ9IkFkZCBjb2xvciIsdGhpcy5jcEFkZENvbG9yQnV0dG9uQ2xhc3M9ImNwLWFkZC1jb2xvci1idXR0b24tY2xhc3MiLHRoaXMuY3BSZW1vdmVDb2xvckJ1dHRvbkNsYXNzPSJjcC1yZW1vdmUtY29sb3ItYnV0dG9uLWNsYXNzIix0aGlzLmNwSW5wdXRDaGFuZ2U9bmV3IFN5KCEwKSx0aGlzLmNwVG9nZ2xlQ2hhbmdlPW5ldyBTeSghMCksdGhpcy5jcFNsaWRlckNoYW5nZT1uZXcgU3koITApLHRoaXMuY3BTbGlkZXJEcmFnRW5kPW5ldyBTeSghMCksdGhpcy5jcFNsaWRlckRyYWdTdGFydD1uZXcgU3koITApLHRoaXMuY29sb3JQaWNrZXJPcGVuPW5ldyBTeSghMCksdGhpcy5jb2xvclBpY2tlckNsb3NlPW5ldyBTeSghMCksdGhpcy5jb2xvclBpY2tlckNhbmNlbD1uZXcgU3koITApLHRoaXMuY29sb3JQaWNrZXJTZWxlY3Q9bmV3IFN5KCEwKSx0aGlzLmNvbG9yUGlja2VyQ2hhbmdlPW5ldyBTeSghMSksdGhpcy5jcENteWtDb2xvckNoYW5nZT1uZXcgU3koITApLHRoaXMuY3BQcmVzZXRDb2xvcnNDaGFuZ2U9bmV3IFN5KCEwKX1oYW5kbGVDbGljaygpe3RoaXMuaW5wdXRGb2N1cygpfWhhbmRsZUZvY3VzKCl7dGhpcy5pbnB1dEZvY3VzKCl9aGFuZGxlSW5wdXQodCl7dGhpcy5pbnB1dENoYW5nZSh0KX1uZ09uRGVzdHJveSgpe251bGwhPXRoaXMuY21wUmVmJiYodGhpcy52aWV3QXR0YWNoZWRUb0FwcFJlZiYmdGhpcy5hcHBSZWYuZGV0YWNoVmlldyh0aGlzLmNtcFJlZi5ob3N0VmlldyksdGhpcy5jbXBSZWYuZGVzdHJveSgpLHRoaXMuY21wUmVmPW51bGwsdGhpcy5kaWFsb2c9bnVsbCl9bmdPbkNoYW5nZXModCl7dC5jcFRvZ2dsZSYmIXRoaXMuY3BEaXNhYmxlZCYmKHQuY3BUb2dnbGUuY3VycmVudFZhbHVlP3RoaXMub3BlbkRpYWxvZygpOnQuY3BUb2dnbGUuY3VycmVudFZhbHVlfHx0aGlzLmNsb3NlRGlhbG9nKCkpLHQuY29sb3JQaWNrZXImJih0aGlzLmRpYWxvZyYmIXRoaXMuaWdub3JlQ2hhbmdlcyYmKCJpbmxpbmUiPT09dGhpcy5jcERpYWxvZ0Rpc3BsYXkmJnRoaXMuZGlhbG9nLnNldEluaXRpYWxDb2xvcih0LmNvbG9yUGlja2VyLmN1cnJlbnRWYWx1ZSksdGhpcy5kaWFsb2cuc2V0Q29sb3JGcm9tU3RyaW5nKHQuY29sb3JQaWNrZXIuY3VycmVudFZhbHVlLCExKSx0aGlzLmNwVXNlUm9vdFZpZXdDb250YWluZXImJiJpbmxpbmUiIT09dGhpcy5jcERpYWxvZ0Rpc3BsYXkmJnRoaXMuY21wUmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKSksdGhpcy5pZ25vcmVDaGFuZ2VzPSExKSwodC5jcFByZXNldExhYmVsfHx0LmNwUHJlc2V0Q29sb3JzKSYmdGhpcy5kaWFsb2cmJnRoaXMuZGlhbG9nLnNldFByZXNldENvbmZpZyh0aGlzLmNwUHJlc2V0TGFiZWwsdGhpcy5jcFByZXNldENvbG9ycyl9b3BlbkRpYWxvZygpe2lmKHRoaXMuZGlhbG9nQ3JlYXRlZCl0aGlzLmRpYWxvZyYmdGhpcy5kaWFsb2cub3BlbkRpYWxvZyh0aGlzLmNvbG9yUGlja2VyKTtlbHNle2xldCB0PXRoaXMudmNSZWY7aWYodGhpcy5kaWFsb2dDcmVhdGVkPSEwLHRoaXMudmlld0F0dGFjaGVkVG9BcHBSZWY9ITEsdGhpcy5jcFVzZVJvb3RWaWV3Q29udGFpbmVyJiYiaW5saW5lIiE9PXRoaXMuY3BEaWFsb2dEaXNwbGF5KXtjb25zdCBlPXRoaXMuaW5qZWN0b3IuZ2V0KHRoaXMuYXBwUmVmLmNvbXBvbmVudFR5cGVzWzBdLE5wLk5VTEwpO2UhPT1OcC5OVUxMPyh0PWUudmNSZWZ8fGUudmlld0NvbnRhaW5lclJlZnx8dGhpcy52Y1JlZix0PT09dGhpcy52Y1JlZiYmY29uc29sZS53YXJuKCJZb3UgYXJlIHVzaW5nIGNwVXNlUm9vdFZpZXdDb250YWluZXIsIGJ1dCB0aGUgcm9vdCBjb21wb25lbnQgaXMgbm90IGV4cG9zaW5nIHZpZXdDb250YWluZXJSZWYhUGxlYXNlIGV4cG9zZSBpdCBieSBhZGRpbmcgJ3B1YmxpYyB2Y1JlZjogVmlld0NvbnRhaW5lclJlZicgdG8gdGhlIGNvbnN0cnVjdG9yLiIpKTp0aGlzLnZpZXdBdHRhY2hlZFRvQXBwUmVmPSEwfWNvbnN0IGU9dGhpcy5jZnIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoTzUpO2lmKHRoaXMudmlld0F0dGFjaGVkVG9BcHBSZWYpdGhpcy5jbXBSZWY9ZS5jcmVhdGUodGhpcy5pbmplY3RvciksdGhpcy5hcHBSZWYuYXR0YWNoVmlldyh0aGlzLmNtcFJlZi5ob3N0VmlldyksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmNtcFJlZi5ob3N0Vmlldy5yb290Tm9kZXNbMF0pO2Vsc2V7Y29uc3Qgbj1mZi5mcm9tUmVzb2x2ZWRQcm92aWRlcnMoW10sdC5wYXJlbnRJbmplY3Rvcik7dGhpcy5jbXBSZWY9dC5jcmVhdGVDb21wb25lbnQoZSwwLG4sW10pfXRoaXMuY21wUmVmLmluc3RhbmNlLnNldHVwRGlhbG9nKHRoaXMsdGhpcy5lbFJlZix0aGlzLmNvbG9yUGlja2VyLHRoaXMuY3BXaWR0aCx0aGlzLmNwSGVpZ2h0LHRoaXMuY3BEaWFsb2dEaXNwbGF5LHRoaXMuY3BGYWxsYmFja0NvbG9yLHRoaXMuY3BDb2xvck1vZGUsdGhpcy5jcENteWtFbmFibGVkLHRoaXMuY3BBbHBoYUNoYW5uZWwsdGhpcy5jcE91dHB1dEZvcm1hdCx0aGlzLmNwRGlzYWJsZUlucHV0LHRoaXMuY3BJZ25vcmVkRWxlbWVudHMsdGhpcy5jcFNhdmVDbGlja091dHNpZGUsdGhpcy5jcENsb3NlQ2xpY2tPdXRzaWRlLHRoaXMuY3BVc2VSb290Vmlld0NvbnRhaW5lcix0aGlzLmNwUG9zaXRpb24sdGhpcy5jcFBvc2l0aW9uT2Zmc2V0LHRoaXMuY3BQb3NpdGlvblJlbGF0aXZlVG9BcnJvdyx0aGlzLmNwUHJlc2V0TGFiZWwsdGhpcy5jcFByZXNldENvbG9ycyx0aGlzLmNwUHJlc2V0Q29sb3JzQ2xhc3MsdGhpcy5jcE1heFByZXNldENvbG9yc0xlbmd0aCx0aGlzLmNwUHJlc2V0RW1wdHlNZXNzYWdlLHRoaXMuY3BQcmVzZXRFbXB0eU1lc3NhZ2VDbGFzcyx0aGlzLmNwT0tCdXR0b24sdGhpcy5jcE9LQnV0dG9uQ2xhc3MsdGhpcy5jcE9LQnV0dG9uVGV4dCx0aGlzLmNwQ2FuY2VsQnV0dG9uLHRoaXMuY3BDYW5jZWxCdXR0b25DbGFzcyx0aGlzLmNwQ2FuY2VsQnV0dG9uVGV4dCx0aGlzLmNwQWRkQ29sb3JCdXR0b24sdGhpcy5jcEFkZENvbG9yQnV0dG9uQ2xhc3MsdGhpcy5jcEFkZENvbG9yQnV0dG9uVGV4dCx0aGlzLmNwUmVtb3ZlQ29sb3JCdXR0b25DbGFzcyx0aGlzLmVsUmVmKSx0aGlzLmRpYWxvZz10aGlzLmNtcFJlZi5pbnN0YW5jZSx0aGlzLnZjUmVmIT09dCYmdGhpcy5jbXBSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpfX1jbG9zZURpYWxvZygpe3RoaXMuZGlhbG9nJiYicG9wdXAiPT09dGhpcy5jcERpYWxvZ0Rpc3BsYXkmJnRoaXMuZGlhbG9nLmNsb3NlRGlhbG9nKCl9Y215a0NoYW5nZWQodCl7dGhpcy5jcENteWtDb2xvckNoYW5nZS5lbWl0KHQpfXN0YXRlQ2hhbmdlZCh0KXt0aGlzLmNwVG9nZ2xlQ2hhbmdlLmVtaXQodCksdD90aGlzLmNvbG9yUGlja2VyT3Blbi5lbWl0KHRoaXMuY29sb3JQaWNrZXIpOnRoaXMuY29sb3JQaWNrZXJDbG9zZS5lbWl0KHRoaXMuY29sb3JQaWNrZXIpfWNvbG9yQ2hhbmdlZCh0LGU9ITApe3RoaXMuaWdub3JlQ2hhbmdlcz1lLHRoaXMuY29sb3JQaWNrZXJDaGFuZ2UuZW1pdCh0KX1jb2xvclNlbGVjdGVkKHQpe3RoaXMuY29sb3JQaWNrZXJTZWxlY3QuZW1pdCh0KX1jb2xvckNhbmNlbGVkKCl7dGhpcy5jb2xvclBpY2tlckNhbmNlbC5lbWl0KCl9aW5wdXRGb2N1cygpe2NvbnN0IHQ9dGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LGU9dGhpcy5jcElnbm9yZWRFbGVtZW50cy5maWx0ZXIoKGU9PmU9PT10KSk7dGhpcy5jcERpc2FibGVkfHxlLmxlbmd0aHx8KCJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJnQ9PT1kb2N1bWVudC5hY3RpdmVFbGVtZW50P3RoaXMub3BlbkRpYWxvZygpOnRoaXMuZGlhbG9nJiZ0aGlzLmRpYWxvZy5zaG93P3RoaXMuY2xvc2VEaWFsb2coKTp0aGlzLm9wZW5EaWFsb2coKSl9aW5wdXRDaGFuZ2UodCl7dGhpcy5kaWFsb2c/dGhpcy5kaWFsb2cuc2V0Q29sb3JGcm9tU3RyaW5nKHQudGFyZ2V0LnZhbHVlLCEwKToodGhpcy5jb2xvclBpY2tlcj10LnRhcmdldC52YWx1ZSx0aGlzLmNvbG9yUGlja2VyQ2hhbmdlLmVtaXQodGhpcy5jb2xvclBpY2tlcikpfWlucHV0Q2hhbmdlZCh0KXt0aGlzLmNwSW5wdXRDaGFuZ2UuZW1pdCh0KX1zbGlkZXJDaGFuZ2VkKHQpe3RoaXMuY3BTbGlkZXJDaGFuZ2UuZW1pdCh0KX1zbGlkZXJEcmFnRW5kKHQpe3RoaXMuY3BTbGlkZXJEcmFnRW5kLmVtaXQodCl9c2xpZGVyRHJhZ1N0YXJ0KHQpe3RoaXMuY3BTbGlkZXJEcmFnU3RhcnQuZW1pdCh0KX1wcmVzZXRDb2xvcnNDaGFuZ2VkKHQpe3RoaXMuY3BQcmVzZXRDb2xvcnNDaGFuZ2UuZW1pdCh0KX19UDUuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFA1KShnZihOcCksZ2YoR2gpLGdmKEhDKSxnZihGYiksZ2YoS2gpLGdmKHg1KSl9LFA1Lsm1ZGlyPWhvKHt0eXBlOlA1LHNlbGVjdG9yczpbWyIiLCJjb2xvclBpY2tlciIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmUmYoImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLmhhbmRsZUNsaWNrKCl9KSkoImZvY3VzIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLmhhbmRsZUZvY3VzKCl9KSkoImlucHV0IiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5oYW5kbGVJbnB1dChlKX0pKX0saW5wdXRzOntjcFdpZHRoOiJjcFdpZHRoIixjcEhlaWdodDoiY3BIZWlnaHQiLGNwVG9nZ2xlOiJjcFRvZ2dsZSIsY3BEaXNhYmxlZDoiY3BEaXNhYmxlZCIsY3BJZ25vcmVkRWxlbWVudHM6ImNwSWdub3JlZEVsZW1lbnRzIixjcEZhbGxiYWNrQ29sb3I6ImNwRmFsbGJhY2tDb2xvciIsY3BDb2xvck1vZGU6ImNwQ29sb3JNb2RlIixjcENteWtFbmFibGVkOiJjcENteWtFbmFibGVkIixjcE91dHB1dEZvcm1hdDoiY3BPdXRwdXRGb3JtYXQiLGNwQWxwaGFDaGFubmVsOiJjcEFscGhhQ2hhbm5lbCIsY3BEaXNhYmxlSW5wdXQ6ImNwRGlzYWJsZUlucHV0IixjcERpYWxvZ0Rpc3BsYXk6ImNwRGlhbG9nRGlzcGxheSIsY3BTYXZlQ2xpY2tPdXRzaWRlOiJjcFNhdmVDbGlja091dHNpZGUiLGNwQ2xvc2VDbGlja091dHNpZGU6ImNwQ2xvc2VDbGlja091dHNpZGUiLGNwVXNlUm9vdFZpZXdDb250YWluZXI6ImNwVXNlUm9vdFZpZXdDb250YWluZXIiLGNwUG9zaXRpb246ImNwUG9zaXRpb24iLGNwUG9zaXRpb25PZmZzZXQ6ImNwUG9zaXRpb25PZmZzZXQiLGNwUG9zaXRpb25SZWxhdGl2ZVRvQXJyb3c6ImNwUG9zaXRpb25SZWxhdGl2ZVRvQXJyb3ciLGNwT0tCdXR0b246ImNwT0tCdXR0b24iLGNwT0tCdXR0b25UZXh0OiJjcE9LQnV0dG9uVGV4dCIsY3BPS0J1dHRvbkNsYXNzOiJjcE9LQnV0dG9uQ2xhc3MiLGNwQ2FuY2VsQnV0dG9uOiJjcENhbmNlbEJ1dHRvbiIsY3BDYW5jZWxCdXR0b25UZXh0OiJjcENhbmNlbEJ1dHRvblRleHQiLGNwQ2FuY2VsQnV0dG9uQ2xhc3M6ImNwQ2FuY2VsQnV0dG9uQ2xhc3MiLGNwUHJlc2V0TGFiZWw6ImNwUHJlc2V0TGFiZWwiLGNwUHJlc2V0Q29sb3JzQ2xhc3M6ImNwUHJlc2V0Q29sb3JzQ2xhc3MiLGNwTWF4UHJlc2V0Q29sb3JzTGVuZ3RoOiJjcE1heFByZXNldENvbG9yc0xlbmd0aCIsY3BQcmVzZXRFbXB0eU1lc3NhZ2U6ImNwUHJlc2V0RW1wdHlNZXNzYWdlIixjcFByZXNldEVtcHR5TWVzc2FnZUNsYXNzOiJjcFByZXNldEVtcHR5TWVzc2FnZUNsYXNzIixjcEFkZENvbG9yQnV0dG9uOiJjcEFkZENvbG9yQnV0dG9uIixjcEFkZENvbG9yQnV0dG9uVGV4dDoiY3BBZGRDb2xvckJ1dHRvblRleHQiLGNwQWRkQ29sb3JCdXR0b25DbGFzczoiY3BBZGRDb2xvckJ1dHRvbkNsYXNzIixjcFJlbW92ZUNvbG9yQnV0dG9uQ2xhc3M6ImNwUmVtb3ZlQ29sb3JCdXR0b25DbGFzcyIsY29sb3JQaWNrZXI6ImNvbG9yUGlja2VyIixjcFByZXNldENvbG9yczoiY3BQcmVzZXRDb2xvcnMifSxvdXRwdXRzOntjcElucHV0Q2hhbmdlOiJjcElucHV0Q2hhbmdlIixjcFRvZ2dsZUNoYW5nZToiY3BUb2dnbGVDaGFuZ2UiLGNwU2xpZGVyQ2hhbmdlOiJjcFNsaWRlckNoYW5nZSIsY3BTbGlkZXJEcmFnRW5kOiJjcFNsaWRlckRyYWdFbmQiLGNwU2xpZGVyRHJhZ1N0YXJ0OiJjcFNsaWRlckRyYWdTdGFydCIsY29sb3JQaWNrZXJPcGVuOiJjb2xvclBpY2tlck9wZW4iLGNvbG9yUGlja2VyQ2xvc2U6ImNvbG9yUGlja2VyQ2xvc2UiLGNvbG9yUGlja2VyQ2FuY2VsOiJjb2xvclBpY2tlckNhbmNlbCIsY29sb3JQaWNrZXJTZWxlY3Q6ImNvbG9yUGlja2VyU2VsZWN0Iixjb2xvclBpY2tlckNoYW5nZToiY29sb3JQaWNrZXJDaGFuZ2UiLGNwQ215a0NvbG9yQ2hhbmdlOiJjcENteWtDb2xvckNoYW5nZSIsY3BQcmVzZXRDb2xvcnNDaGFuZ2U6ImNwUHJlc2V0Q29sb3JzQ2hhbmdlIn0sZXhwb3J0QXM6WyJuZ3hDb2xvclBpY2tlciJdLGZlYXR1cmVzOltxb119KSxQNS5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOk5wfSx7dHlwZTpHaH0se3R5cGU6SEN9LHt0eXBlOkZifSx7dHlwZTpLaH0se3R5cGU6eDV9XSxQNS5wcm9wRGVjb3JhdG9ycz17Y29sb3JQaWNrZXI6W3t0eXBlOlJffV0sY3BXaWR0aDpbe3R5cGU6Ul99XSxjcEhlaWdodDpbe3R5cGU6Ul99XSxjcFRvZ2dsZTpbe3R5cGU6Ul99XSxjcERpc2FibGVkOlt7dHlwZTpSX31dLGNwSWdub3JlZEVsZW1lbnRzOlt7dHlwZTpSX31dLGNwRmFsbGJhY2tDb2xvcjpbe3R5cGU6Ul99XSxjcENvbG9yTW9kZTpbe3R5cGU6Ul99XSxjcENteWtFbmFibGVkOlt7dHlwZTpSX31dLGNwT3V0cHV0Rm9ybWF0Olt7dHlwZTpSX31dLGNwQWxwaGFDaGFubmVsOlt7dHlwZTpSX31dLGNwRGlzYWJsZUlucHV0Olt7dHlwZTpSX31dLGNwRGlhbG9nRGlzcGxheTpbe3R5cGU6Ul99XSxjcFNhdmVDbGlja091dHNpZGU6W3t0eXBlOlJffV0sY3BDbG9zZUNsaWNrT3V0c2lkZTpbe3R5cGU6Ul99XSxjcFVzZVJvb3RWaWV3Q29udGFpbmVyOlt7dHlwZTpSX31dLGNwUG9zaXRpb246W3t0eXBlOlJffV0sY3BQb3NpdGlvbk9mZnNldDpbe3R5cGU6Ul99XSxjcFBvc2l0aW9uUmVsYXRpdmVUb0Fycm93Olt7dHlwZTpSX31dLGNwT0tCdXR0b246W3t0eXBlOlJffV0sY3BPS0J1dHRvblRleHQ6W3t0eXBlOlJffV0sY3BPS0J1dHRvbkNsYXNzOlt7dHlwZTpSX31dLGNwQ2FuY2VsQnV0dG9uOlt7dHlwZTpSX31dLGNwQ2FuY2VsQnV0dG9uVGV4dDpbe3R5cGU6Ul99XSxjcENhbmNlbEJ1dHRvbkNsYXNzOlt7dHlwZTpSX31dLGNwUHJlc2V0TGFiZWw6W3t0eXBlOlJffV0sY3BQcmVzZXRDb2xvcnM6W3t0eXBlOlJffV0sY3BQcmVzZXRDb2xvcnNDbGFzczpbe3R5cGU6Ul99XSxjcE1heFByZXNldENvbG9yc0xlbmd0aDpbe3R5cGU6Ul99XSxjcFByZXNldEVtcHR5TWVzc2FnZTpbe3R5cGU6Ul99XSxjcFByZXNldEVtcHR5TWVzc2FnZUNsYXNzOlt7dHlwZTpSX31dLGNwQWRkQ29sb3JCdXR0b246W3t0eXBlOlJffV0sY3BBZGRDb2xvckJ1dHRvblRleHQ6W3t0eXBlOlJffV0sY3BBZGRDb2xvckJ1dHRvbkNsYXNzOlt7dHlwZTpSX31dLGNwUmVtb3ZlQ29sb3JCdXR0b25DbGFzczpbe3R5cGU6Ul99XSxjcElucHV0Q2hhbmdlOlt7dHlwZTpFX31dLGNwVG9nZ2xlQ2hhbmdlOlt7dHlwZTpFX31dLGNwU2xpZGVyQ2hhbmdlOlt7dHlwZTpFX31dLGNwU2xpZGVyRHJhZ0VuZDpbe3R5cGU6RV99XSxjcFNsaWRlckRyYWdTdGFydDpbe3R5cGU6RV99XSxjb2xvclBpY2tlck9wZW46W3t0eXBlOkVffV0sY29sb3JQaWNrZXJDbG9zZTpbe3R5cGU6RV99XSxjb2xvclBpY2tlckNhbmNlbDpbe3R5cGU6RV99XSxjb2xvclBpY2tlclNlbGVjdDpbe3R5cGU6RV99XSxjb2xvclBpY2tlckNoYW5nZTpbe3R5cGU6RV99XSxjcENteWtDb2xvckNoYW5nZTpbe3R5cGU6RV99XSxjcFByZXNldENvbG9yc0NoYW5nZTpbe3R5cGU6RV99XSxoYW5kbGVDbGljazpbe3R5cGU6VF8sYXJnczpbImNsaWNrIl19XSxoYW5kbGVGb2N1czpbe3R5cGU6VF8sYXJnczpbImZvY3VzIl19XSxoYW5kbGVJbnB1dDpbe3R5cGU6VF8sYXJnczpbImlucHV0IixbIiRldmVudCJdXX1dfSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFA1LFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6Iltjb2xvclBpY2tlcl0iLGV4cG9ydEFzOiJuZ3hDb2xvclBpY2tlciJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpOcH0se3R5cGU6R2h9LHt0eXBlOkhDfSx7dHlwZTpGYn0se3R5cGU6S2h9LHt0eXBlOng1fV19KSx7Y3BXaWR0aDpbe3R5cGU6Ul99XSxjcEhlaWdodDpbe3R5cGU6Ul99XSxjcFRvZ2dsZTpbe3R5cGU6Ul99XSxjcERpc2FibGVkOlt7dHlwZTpSX31dLGNwSWdub3JlZEVsZW1lbnRzOlt7dHlwZTpSX31dLGNwRmFsbGJhY2tDb2xvcjpbe3R5cGU6Ul99XSxjcENvbG9yTW9kZTpbe3R5cGU6Ul99XSxjcENteWtFbmFibGVkOlt7dHlwZTpSX31dLGNwT3V0cHV0Rm9ybWF0Olt7dHlwZTpSX31dLGNwQWxwaGFDaGFubmVsOlt7dHlwZTpSX31dLGNwRGlzYWJsZUlucHV0Olt7dHlwZTpSX31dLGNwRGlhbG9nRGlzcGxheTpbe3R5cGU6Ul99XSxjcFNhdmVDbGlja091dHNpZGU6W3t0eXBlOlJffV0sY3BDbG9zZUNsaWNrT3V0c2lkZTpbe3R5cGU6Ul99XSxjcFVzZVJvb3RWaWV3Q29udGFpbmVyOlt7dHlwZTpSX31dLGNwUG9zaXRpb246W3t0eXBlOlJffV0sY3BQb3NpdGlvbk9mZnNldDpbe3R5cGU6Ul99XSxjcFBvc2l0aW9uUmVsYXRpdmVUb0Fycm93Olt7dHlwZTpSX31dLGNwT0tCdXR0b246W3t0eXBlOlJffV0sY3BPS0J1dHRvblRleHQ6W3t0eXBlOlJffV0sY3BPS0J1dHRvbkNsYXNzOlt7dHlwZTpSX31dLGNwQ2FuY2VsQnV0dG9uOlt7dHlwZTpSX31dLGNwQ2FuY2VsQnV0dG9uVGV4dDpbe3R5cGU6Ul99XSxjcENhbmNlbEJ1dHRvbkNsYXNzOlt7dHlwZTpSX31dLGNwUHJlc2V0TGFiZWw6W3t0eXBlOlJffV0sY3BQcmVzZXRDb2xvcnNDbGFzczpbe3R5cGU6Ul99XSxjcE1heFByZXNldENvbG9yc0xlbmd0aDpbe3R5cGU6Ul99XSxjcFByZXNldEVtcHR5TWVzc2FnZTpbe3R5cGU6Ul99XSxjcFByZXNldEVtcHR5TWVzc2FnZUNsYXNzOlt7dHlwZTpSX31dLGNwQWRkQ29sb3JCdXR0b246W3t0eXBlOlJffV0sY3BBZGRDb2xvckJ1dHRvblRleHQ6W3t0eXBlOlJffV0sY3BBZGRDb2xvckJ1dHRvbkNsYXNzOlt7dHlwZTpSX31dLGNwUmVtb3ZlQ29sb3JCdXR0b25DbGFzczpbe3R5cGU6Ul99XSxjcElucHV0Q2hhbmdlOlt7dHlwZTpFX31dLGNwVG9nZ2xlQ2hhbmdlOlt7dHlwZTpFX31dLGNwU2xpZGVyQ2hhbmdlOlt7dHlwZTpFX31dLGNwU2xpZGVyRHJhZ0VuZDpbe3R5cGU6RV99XSxjcFNsaWRlckRyYWdTdGFydDpbe3R5cGU6RV99XSxjb2xvclBpY2tlck9wZW46W3t0eXBlOkVffV0sY29sb3JQaWNrZXJDbG9zZTpbe3R5cGU6RV99XSxjb2xvclBpY2tlckNhbmNlbDpbe3R5cGU6RV99XSxjb2xvclBpY2tlclNlbGVjdDpbe3R5cGU6RV99XSxjb2xvclBpY2tlckNoYW5nZTpbe3R5cGU6RV99XSxjcENteWtDb2xvckNoYW5nZTpbe3R5cGU6RV99XSxjcFByZXNldENvbG9yc0NoYW5nZTpbe3R5cGU6RV99XSxoYW5kbGVDbGljazpbe3R5cGU6VF8sYXJnczpbImNsaWNrIl19XSxoYW5kbGVGb2N1czpbe3R5cGU6VF8sYXJnczpbImZvY3VzIl19XSxoYW5kbGVJbnB1dDpbe3R5cGU6VF8sYXJnczpbImlucHV0IixbIiRldmVudCJdXX1dLGNvbG9yUGlja2VyOlt7dHlwZTpSX31dLGNwUHJlc2V0Q29sb3JzOlt7dHlwZTpSX31dfSk7Y2xhc3MgdzV7fXc1Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx3NSl9LHc1Lsm1bW9kPWZvKHt0eXBlOnc1fSksdzUuybVpbmo9RG4oe3Byb3ZpZGVyczpbeDVdLGltcG9ydHM6W1tyeF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih3NSxbe3R5cGU6TF8sYXJnczpbe2ltcG9ydHM6W3J4XSxleHBvcnRzOltQNV0scHJvdmlkZXJzOlt4NV0sZGVjbGFyYXRpb25zOltPNSxQNSxfNSxDNV0sZW50cnlDb21wb25lbnRzOltPNV19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byh3NSx7ZGVjbGFyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuW081LFA1LF81LEM1XX0saW1wb3J0czpmdW5jdGlvbigpe3JldHVybltyeF19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bUDVdfX0pO2NvbnN0IGs1PVsiZmlsdGVyIl07ZnVuY3Rpb24gUzUodCxlKXsxJnQmJlBmKDApfWZ1bmN0aW9uIEQ1KHQsZSl7MSZ0JiZQZigwKX1jb25zdCBSNT1mdW5jdGlvbih0KXtyZXR1cm57aXRlbTp0fX07ZnVuY3Rpb24gRTUodCxlKXtpZigxJnQmJih4ZigwKSxIbSgxLEQ1LDEsMCwibmctY29udGFpbmVyIiwxMiksT2YoKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0O3pmKCk7Y29uc3Qgbj1GbSgxNCk7RGMoMSksYmYoIm5nVGVtcGxhdGVPdXRsZXQiLG4pKCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCIsaXkoMixSNSx0KSl9fWZ1bmN0aW9uIEE1KHQsZSl7MSZ0JiYoQ2YoMCwiZGl2IiwxMyksdmYoMSwibWF0LXNwaW5uZXIiLDE0KSxNZigpKX1mdW5jdGlvbiBUNSh0LGUpezEmdCYmKENmKDAsImRpdiIsMTUpLFB1KDEsIk5vIFJ1bnMiKSxNZigpKX1mdW5jdGlvbiBONSh0LGUpe2lmKDEmdCYmKENmKDAsImRpdiIsMTUpLENmKDEsInNwYW4iKSxQdSgyLCdObyBydW5zIG1hdGNoICInKSxDZigzLCJjb2RlIiksUHUoNCksTWYoKSxQdSg1LCciJyksTWYoKSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoKTtEYyg0KSx3dSh0LnJlZ2V4RmlsdGVyKX19Y29uc3QgejU9ZnVuY3Rpb24oKXtyZXR1cm5bNSwxMCwyMF19O2Z1bmN0aW9uIEk1KHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwibWF0LXBhZ2luYXRvciIsMTYpLFJmKCJwYWdlIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtyZXR1cm4gemYoKS5vblBhZ2luYXRpb25DaGFuZ2UuZW1pdChuKX0pKSxNZigpfWlmKDImdCl7Y29uc3QgdD16ZigpO2JmKCJwYWdlU2l6ZU9wdGlvbnMiLG95KDQsejUpKSgicGFnZUluZGV4Iix0LnBhZ2luYXRpb25PcHRpb24ucGFnZUluZGV4KSgicGFnZVNpemUiLHQucGFnaW5hdGlvbk9wdGlvbi5wYWdlU2l6ZSkoImxlbmd0aCIsdC5maWx0ZXJlZEl0ZW1zTGVuZ3RoKX19ZnVuY3Rpb24gSDUodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJtYXQtY2hlY2tib3giLDI2KSxSZigiY2hhbmdlIiwoZnVuY3Rpb24gZSgpe1BpKHQpO3JldHVybiB6ZigzKS5oYW5kbGVQYWdlVG9nZ2xlKCl9KSksTWYoKX1pZigyJnQpe2NvbnN0IHQ9emYoMyk7YmYoImNoZWNrZWQiLHQuYWxsUGFnZUl0ZW1zU2VsZWN0ZWQoKSkoImluZGV0ZXJtaW5hdGUiLCF0LmFsbFBhZ2VJdGVtc1NlbGVjdGVkKCkmJnQuc29tZVBhZ2VJdGVtc1NlbGVjdGVkKCkpfX1jb25zdCBGNT1mdW5jdGlvbih0KXtyZXR1cm57dHlwZTp0fX07ZnVuY3Rpb24gTDUodCxlKXtpZigxJnQmJihDZigwLCJzcGFuIiwyNyksUHUoMSwiRXhwZXJpbWVudCIpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigzKTtiZigibWF0LXNvcnQtaGVhZGVyIixpeSgxLEY1LHQuU29ydFR5cGUuRVhQRVJJTUVOVF9OQU1FKSl9fWZ1bmN0aW9uIEI1KHQsZSl7aWYoMSZ0JiYoQ2YoMCwic3BhbiIsMjcpLFB1KDEsIlJ1biIpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigzKTtiZigibWF0LXNvcnQtaGVhZGVyIixpeSgxLEY1LHQuU29ydFR5cGUuUlVOX05BTUUpKX19ZnVuY3Rpb24gVjUodCxlKXtpZigxJnQmJnZmKDAsInJ1bnMtZ3JvdXAtbWVudS1idXR0b24iLDI5KSwyJnQpe2JmKCJleHBlcmltZW50SWRzIix6Zig0KS5leHBlcmltZW50SWRzKX19ZnVuY3Rpb24gajUodCxlKXtpZigxJnQmJihDZigwLCJzcGFuIiksSG0oMSxWNSwxLDEsInJ1bnMtZ3JvdXAtbWVudS1idXR0b24iLDI4KSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoMyk7RGMoMSksYmYoIm5nSWYiLHQuc2hvd0dyb3VwQ29udHJvbCl9fWNvbnN0IFU1PWZ1bmN0aW9uKHQpe3JldHVyblsiY29sdW1uIix0XX07ZnVuY3Rpb24gVzUodCxlKXtpZigxJnQmJihDZigwLCJzcGFuIiwyMSkseGYoMSwyMiksSG0oMixINSwxLDIsIm1hdC1jaGVja2JveCIsMjMpLEhtKDMsTDUsMiwzLCJzcGFuIiwyNCksSG0oNCxCNSwyLDMsInNwYW4iLDI0KSxIbSg1LGo1LDIsMSwic3BhbiIsMjUpLE9mKCksTWYoKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49emYoMik7YmYoIm5nQ2xhc3MiLGl5KDYsVTUsInRiLWNvbHVtbi0iK3QpKSxEYygxKSxiZigibmdTd2l0Y2giLHQpLERjKDEpLGJmKCJuZ1N3aXRjaENhc2UiLG4uUnVuc1RhYmxlQ29sdW1uLkNIRUNLQk9YKSxEYygxKSxiZigibmdTd2l0Y2hDYXNlIixuLlJ1bnNUYWJsZUNvbHVtbi5FWFBFUklNRU5UX05BTUUpLERjKDEpLGJmKCJuZ1N3aXRjaENhc2UiLG4uUnVuc1RhYmxlQ29sdW1uLlJVTl9OQU1FKSxEYygxKSxiZigibmdTd2l0Y2hDYXNlIixuLlJ1bnNUYWJsZUNvbHVtbi5SVU5fQ09MT1IpfX1mdW5jdGlvbiBHNSh0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO3hmKDApLENmKDEsImRpdiIsMzgpLFJmKCJjbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCl9KSksQ2YoMiwidGItcmFuZ2UtaW5wdXQiLDM5KSxSZigidmFsdWUiLChmdW5jdGlvbiBlKG4pe1BpKHQpO2NvbnN0IG89emYoMikuJGltcGxpY2l0O3JldHVybiB6ZigyKS5oYW5kbGVIcGFyYW1JbnRlcnZhbENoYW5nZWQobyxuKX0pKSxNZigpLE1mKCksT2YoKX1pZigyJnQpe2NvbnN0IHQ9emYoMikuJGltcGxpY2l0O0RjKDIpLGJmKCJtaW4iLHQuZmlsdGVyLm1pblZhbHVlKSgibWF4Iix0LmZpbHRlci5tYXhWYWx1ZSkoImxvd2VyVmFsdWUiLHQuZmlsdGVyLmZpbHRlckxvd2VyVmFsdWUpKCJ1cHBlclZhbHVlIix0LmZpbHRlci5maWx0ZXJVcHBlclZhbHVlKX19ZnVuY3Rpb24gWTUodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJkaXYiLDQxKSxSZigiY2xpY2siLChmdW5jdGlvbiB0KGUpe3JldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpfSkpLENmKDEsIm1hdC1jaGVja2JveCIsMzcpLFJmKCJjaGFuZ2UiLChmdW5jdGlvbiBlKCl7Y29uc3Qgbj1QaSh0KS4kaW1wbGljaXQsbz16ZigzKS4kaW1wbGljaXQ7cmV0dXJuIHpmKDIpLmhhbmRsZUhwYXJhbURpc2NyZXRlQ2hhbmdlZChvLG4pfSkpLENmKDIsInNwYW4iKSxQdSgzKSxNZigpLE1mKCksTWYoKX1pZigyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj16ZigzKS4kaW1wbGljaXQ7RGMoMSksYmYoImNoZWNrZWQiLG4uZmlsdGVyLmZpbHRlclZhbHVlcy5pbmNsdWRlcyh0KSksRGMoMiksd3UodCl9fWZ1bmN0aW9uIHE1KHQsZSl7aWYoMSZ0JiYoeGYoMCksSG0oMSxZNSw0LDIsImRpdiIsNDApLE9mKCkpLDImdCl7Y29uc3QgdD16ZigyKS4kaW1wbGljaXQ7RGMoMSksYmYoIm5nRm9yT2YiLHQuZmlsdGVyLnBvc3NpYmxlVmFsdWVzKX19ZnVuY3Rpb24gWjUodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTt4ZigwKSxDZigxLCJidXR0b24iLDMzKSxSZigiY2xpY2siLChmdW5jdGlvbiB0KGUpe3JldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpfSkpLHZmKDIsIm1hdC1pY29uIiwzNCksTWYoKSxDZigzLCJtYXQtbWVudSIsbnVsbCwzNSksQ2YoNSwiZGl2IiwzNiksUmYoImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKX0pKSxDZig2LCJtYXQtY2hlY2tib3giLDM3KSxSZigiY2hhbmdlIiwoZnVuY3Rpb24gZSgpe1BpKHQpO2NvbnN0IG49emYoKS4kaW1wbGljaXQ7cmV0dXJuIHpmKDIpLmhhbmRsZUhwYXJhbUluY2x1ZGVVbmRlZmluZWRUb2dnbGVkKG4pfSkpLENmKDcsInNwYW4iKSxQdSg4LCIoc2hvdyBlbXB0eSB2YWx1ZSkiKSxNZigpLE1mKCksTWYoKSxIbSg5LEc1LDMsNCwibmctY29udGFpbmVyIiwzMiksSG0oMTAscTUsMiwxLCJuZy1jb250YWluZXIiLDMyKSxNZigpLE9mKCl9aWYoMiZ0KXtjb25zdCB0PUZtKDQpLGU9emYoKS4kaW1wbGljaXQsbj16ZigyKTtEYygxKSxiZigibWF0TWVudVRyaWdnZXJGb3IiLHQpLHltKCJhcmlhLWxhYmVsIiwiRmlsdGVyIGhwYXJhbSAiKyhlLmRpc3BsYXlOYW1lfHxlLm5hbWUpKSxEYyg1KSxiZigiY2hlY2tlZCIsZS5maWx0ZXIuaW5jbHVkZVVuZGVmaW5lZCksRGMoMyksYmYoIm5nSWYiLGUuZmlsdGVyLnR5cGU9PT1uLkRvbWFpblR5cGUuSU5URVJWQUwpLERjKDEpLGJmKCJuZ0lmIixlLmZpbHRlci50eXBlPT09bi5Eb21haW5UeXBlLkRJU0NSRVRFKX19Y29uc3QgWDU9ZnVuY3Rpb24odCxlKXtyZXR1cm57dHlwZTp0LG5hbWU6ZX19O2Z1bmN0aW9uIEs1KHQsZSl7aWYoMSZ0JiYoQ2YoMCwic3BhbiIsMzApLENmKDEsInNwYW4iLDMxKSxQdSgyKSxNZigpLEhtKDMsWjUsMTEsNSwibmctY29udGFpbmVyIiwzMiksTWYoKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49emYoMik7YmYoIm1hdC1zb3J0LWhlYWRlciIsYXkoMyxYNSxuLlNvcnRUeXBlLkhQQVJBTSx0Lm5hbWUpKSxEYygyKSx3dSh0LmRpc3BsYXlOYW1lfHx0Lm5hbWUpLERjKDEpLGJmKCJuZ0lmIix0LmZpbHRlcil9fWZ1bmN0aW9uIEo1KHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7eGYoMCksQ2YoMSwiYnV0dG9uIiwzMyksUmYoImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKX0pKSx2ZigyLCJtYXQtaWNvbiIsMzQpLE1mKCksQ2YoMywibWF0LW1lbnUiLG51bGwsMzUpLENmKDUsImRpdiIsMzYpLFJmKCJjbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCl9KSksQ2YoNiwibWF0LWNoZWNrYm94IiwzNyksUmYoImNoYW5nZSIsKGZ1bmN0aW9uIGUoKXtQaSh0KTtjb25zdCBuPXpmKCkuJGltcGxpY2l0O3JldHVybiB6ZigyKS5oYW5kbGVNZXRyaWNJbmNsdWRlVW5kZWZpbmVkQ2hhbmdlZChuKX0pKSxDZig3LCJzcGFuIiksUHUoOCwiKHNob3cgZW1wdHkgdmFsdWUpIiksTWYoKSxNZigpLE1mKCksQ2YoOSwiZGl2IiwzOCksUmYoImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKX0pKSxDZigxMCwidGItcmFuZ2UtaW5wdXQiLDM5KSxSZigidmFsdWUiLChmdW5jdGlvbiBlKG4pe1BpKHQpO2NvbnN0IG89emYoKS4kaW1wbGljaXQ7cmV0dXJuIHpmKDIpLmhhbmRsZU1ldHJpY0ZpbHRlckNoYW5nZWQobyxuKX0pKSxNZigpLE1mKCksTWYoKSxPZigpfWlmKDImdCl7Y29uc3QgdD1GbSg0KSxlPXpmKCkuJGltcGxpY2l0O0RjKDEpLGJmKCJtYXRNZW51VHJpZ2dlckZvciIsdCkseW0oImFyaWEtbGFiZWwiLCJGaWx0ZXIgbWV0cmljICIrKGUuZGlzcGxheU5hbWV8fGUudGFnKSksRGMoNSksYmYoImNoZWNrZWQiLGUuZmlsdGVyLmluY2x1ZGVVbmRlZmluZWQpLERjKDQpLGJmKCJtaW4iLGUuZmlsdGVyLm1pblZhbHVlKSgibWF4IixlLmZpbHRlci5tYXhWYWx1ZSkoImxvd2VyVmFsdWUiLGUuZmlsdGVyLmZpbHRlckxvd2VyVmFsdWUpKCJ1cHBlclZhbHVlIixlLmZpbHRlci5maWx0ZXJVcHBlclZhbHVlKX19Y29uc3QgUTU9ZnVuY3Rpb24odCxlKXtyZXR1cm57dHlwZTp0LHRhZzplfX07ZnVuY3Rpb24gJDUodCxlKXtpZigxJnQmJihDZigwLCJzcGFuIiwzMCksQ2YoMSwic3BhbiIsMzEpLFB1KDIpLE1mKCksSG0oMyxKNSwxMSw3LCJuZy1jb250YWluZXIiLDMyKSxNZigpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj16ZigyKTtiZigibWF0LXNvcnQtaGVhZGVyIixheSgzLFE1LG4uU29ydFR5cGUuTUVUUklDLHQudGFnKSksRGMoMiksd3UodC5kaXNwbGF5TmFtZXx8dC50YWcpLERjKDEpLGJmKCJuZ0lmIix0LmZpbHRlcil9fWZ1bmN0aW9uIHQ0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwiZGl2IiwxNyksQ2YoMSwiZGl2IiwxOCksUmYoIm1hdFNvcnRDaGFuZ2UiLChmdW5jdGlvbiBlKG4pe1BpKHQpO3JldHVybiB6ZigpLmhhbmRsZVNvcnRDaGFuZ2Uobil9KSksSG0oMixXNSw2LDgsInNwYW4iLDE5KSxIbSgzLEs1LDQsNiwic3BhbiIsMjApLEhtKDQsJDUsNCw2LCJzcGFuIiwyMCksTWYoKSxNZigpfWlmKDImdCl7Y29uc3QgdD16ZigpO0RjKDEpLGJmKCJtYXRTb3J0QWN0aXZlIix0LnNvcnRPcHRpb24uY29sdW1uKSxEYygxKSxiZigibmdGb3JPZiIsdC5jb2x1bW5zKSxEYygxKSxiZigibmdGb3JPZiIsdC5ocGFyYW1Db2x1bW5zKSgibmdGb3JUcmFja0J5Iix0LnRyYWNrQnlIcGFyYW1Db2x1bW4pLERjKDEpLGJmKCJuZ0Zvck9mIix0Lm1ldHJpY0NvbHVtbnMpKCJuZ0ZvclRyYWNrQnkiLHQudHJhY2tCeU1ldHJpY0NvbHVtbil9fWZ1bmN0aW9uIGU0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwic3BhbiIpLENmKDEsIm1hdC1jaGVja2JveCIsMzcpLFJmKCJjaGFuZ2UiLChmdW5jdGlvbiBlKCl7UGkodCk7Y29uc3Qgbj16ZigyKS5pdGVtO3JldHVybiB6ZigpLm9uU2VsZWN0aW9uVG9nZ2xlLmVtaXQobil9KSksTWYoKSxNZigpfWlmKDImdCl7Y29uc3QgdD16ZigyKS5pdGVtO0RjKDEpLGJmKCJjaGVja2VkIix0LnNlbGVjdGVkKX19ZnVuY3Rpb24gbjQodCxlKXtpZigxJnQmJnZmKDAsInRiLWV4cGVyaW1lbnQtYWxpYXMiLDQ4KSwyJnQpe2JmKCJhbGlhcyIsemYoMikuaXRlbS5leHBlcmltZW50QWxpYXMpfX1mdW5jdGlvbiBvNCh0LGUpe2lmKDEmdCYmKENmKDAsInNwYW4iLDMxKSxQdSgxKSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoMikuaXRlbTtEYygxKSx3dSh0LnJ1bi5uYW1lKX19Y29uc3QgaTQ9ZnVuY3Rpb24odCl7cmV0dXJueyJydW4tY29sb3Itc3dhdGNoIjohMCwibm8tY29sb3IiOnR9fTtmdW5jdGlvbiBhNCh0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO0NmKDAsInNwYW4iKSxDZigxLCJidXR0b24iLDQ5KSxSZigiY29sb3JQaWNrZXJDaGFuZ2UiLChmdW5jdGlvbiBlKG4pe1BpKHQpO2NvbnN0IG89emYoMikuaXRlbTtyZXR1cm4gemYoKS5vblJ1bkNvbG9yQ2hhbmdlLmVtaXQoe3J1bklkOm8ucnVuLmlkLG5ld0NvbG9yOm59KX0pKSxNZigpLE1mKCl9aWYoMiZ0KXtjb25zdCB0PXpmKDIpLml0ZW07RGMoMSksbHUoImJhY2tncm91bmQiLHQucnVuQ29sb3IpLGJmKCJuZ0NsYXNzIixpeSg4LGk0LCF0LnJ1bkNvbG9yKSkoImNvbG9yUGlja2VyIix0LnJ1bkNvbG9yKSgiY3BEaWFsb2dEaXNwbGF5IiwicG9wdXAiKSgiY3BQb3NpdGlvbk9mZnNldCIsLTIwKSgiY3BVc2VSb290Vmlld0NvbnRhaW5lciIsITApKCJjcE91dHB1dEZvcm1hdCIsImhleCIpfX1mdW5jdGlvbiByNCh0LGUpe2lmKDEmdCYmKENmKDAsInNwYW4iLDQ1KSx4ZigxLDIyKSxIbSgyLGU0LDIsMSwic3BhbiIsMjUpLEhtKDMsbjQsMSwxLCJ0Yi1leHBlcmltZW50LWFsaWFzIiw0NiksSG0oNCxvNCwyLDEsInNwYW4iLDQ3KSxIbSg1LGE0LDIsMTAsInNwYW4iLDI1KSxPZigpLE1mKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdCxuPXpmKDIpO2JmKCJuZ0NsYXNzIixpeSg2LFU1LCJ0Yi1jb2x1bW4tIit0KSksRGMoMSksYmYoIm5nU3dpdGNoIix0KSxEYygxKSxiZigibmdTd2l0Y2hDYXNlIixuLlJ1bnNUYWJsZUNvbHVtbi5DSEVDS0JPWCksRGMoMSksYmYoIm5nU3dpdGNoQ2FzZSIsbi5SdW5zVGFibGVDb2x1bW4uRVhQRVJJTUVOVF9OQU1FKSxEYygxKSxiZigibmdTd2l0Y2hDYXNlIixuLlJ1bnNUYWJsZUNvbHVtbi5SVU5fTkFNRSksRGMoMSksYmYoIm5nU3dpdGNoQ2FzZSIsbi5SdW5zVGFibGVDb2x1bW4uUlVOX0NPTE9SKX19ZnVuY3Rpb24gczQodCxlKXtpZigxJnQmJihDZigwLCJzcGFuIiw1MCksUHUoMSksTWYoKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49emYoKS5pdGVtO0RjKDEpLHd1KG4uaHBhcmFtcy5nZXQodC5uYW1lKSl9fWZ1bmN0aW9uIGw0KHQsZSl7aWYoMSZ0JiYoQ2YoMCwic3BhbiIsNTApLFB1KDEpLE1mKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdCxuPXpmKCkuaXRlbTtEYygxKSx3dShuLm1ldHJpY3MuZ2V0KHQudGFnKSl9fWZ1bmN0aW9uIGM0KHQsZSl7aWYoMSZ0JiYoQ2YoMCwiZGl2Iiw0MiksSG0oMSxyNCw2LDgsInNwYW4iLDQzKSxIbSgyLHM0LDIsMSwic3BhbiIsNDQpLEhtKDMsbDQsMiwxLCJzcGFuIiw0NCksTWYoKSksMiZ0KXtjb25zdCB0PWUuaXRlbSxuPXpmKCk7eW0oImRhdGEtaWQiLHQucnVuLmlkKSxEYygxKSxiZigibmdGb3JPZiIsbi5jb2x1bW5zKSxEYygxKSxiZigibmdGb3JPZiIsbi5ocGFyYW1Db2x1bW5zKSxEYygxKSxiZigibmdGb3JPZiIsbi5tZXRyaWNDb2x1bW5zKX19Y2xhc3MgZDQgZXh0ZW5kcyBYMHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5pdGVtc1BlclBhZ2VMYWJlbD0iU2hvdyBydW5zOiJ9fWQ0Lsm1ZmFjPShmdW5jdGlvbigpe2xldCB0O3JldHVybiBmdW5jdGlvbiBlKG4pe3JldHVybih0fHwodD1VYShkNCkpKShufHxkNCl9fSkoKSxkNC7JtXByb3Y9U24oe3Rva2VuOmQ0LGZhY3Rvcnk6ZDQuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGQ0LFt7dHlwZTpVbX1dLG51bGwsbnVsbCk7Y2xhc3MgcDR7Y29uc3RydWN0b3IoKXt0aGlzLmRhdGFTb3VyY2U9bmV3IEQzLHRoaXMuRG9tYWluVHlwZT1rVCx0aGlzLlJ1bnNUYWJsZUNvbHVtbj14MCx0aGlzLlNvcnRUeXBlPUZ6LHRoaXMub25SZWdleEZpbHRlckNoYW5nZT1uZXcgU3ksdGhpcy5vblNlbGVjdGlvblRvZ2dsZT1uZXcgU3ksdGhpcy5vblBhZ2VTZWxlY3Rpb25Ub2dnbGU9bmV3IFN5LHRoaXMub25QYWdpbmF0aW9uQ2hhbmdlPW5ldyBTeSx0aGlzLm9uU29ydENoYW5nZT1uZXcgU3ksdGhpcy5vblJ1bkNvbG9yQ2hhbmdlPW5ldyBTeSx0aGlzLm9uSHBhcmFtRGlzY3JldGVGaWx0ZXJDaGFuZ2VkPW5ldyBTeSx0aGlzLm9uSHBhcmFtSW50ZXJ2YWxGaWx0ZXJDaGFuZ2VkPW5ldyBTeSx0aGlzLm9uTWV0cmljRmlsdGVyQ2hhbmdlZD1uZXcgU3l9bmdPbkNoYW5nZXMoKXt0aGlzLmRhdGFTb3VyY2UuZGF0YT10aGlzLnBhZ2VJdGVtc31nZXRIcGFyYW1Db2x1bW5JZCh0KXtyZXR1cm5gaDoke3QubmFtZX1gfWdldE1ldHJpY0NvbHVtbklkKHQpe3JldHVybmBtOiR7dC50YWd9YH1nZXRDb2x1bW5JZHMoKXtyZXR1cm5bLi4udGhpcy5jb2x1bW5zLC4uLnRoaXMuaHBhcmFtQ29sdW1ucy5tYXAodGhpcy5nZXRIcGFyYW1Db2x1bW5JZCksLi4udGhpcy5tZXRyaWNDb2x1bW5zLm1hcCh0aGlzLmdldE1ldHJpY0NvbHVtbklkKV19YWxsUGFnZUl0ZW1zU2VsZWN0ZWQoKXtyZXR1cm4gQm9vbGVhbih0aGlzLnBhZ2VJdGVtcy5sZW5ndGgpJiZ0aGlzLnBhZ2VJdGVtcy5ldmVyeSgodD0+dC5zZWxlY3RlZCkpfXNvbWVQYWdlSXRlbXNTZWxlY3RlZCgpe3JldHVybiB0aGlzLnBhZ2VJdGVtcy5zb21lKCh0PT50LnNlbGVjdGVkKSl9aGFuZGxlUGFnZVRvZ2dsZSgpe3RoaXMub25QYWdlU2VsZWN0aW9uVG9nZ2xlLmVtaXQoe2l0ZW1zOnRoaXMucGFnZUl0ZW1zfSl9aGFuZGxlU29ydENoYW5nZSh0KXtsZXQgZTtzd2l0Y2godC5kaXJlY3Rpb24pe2Nhc2UiYXNjIjplPXZJLkFTQzticmVhaztjYXNlImRlc2MiOmU9dkkuREVTQzticmVhaztkZWZhdWx0OmU9dkkuVU5TRVR9dGhpcy5vblNvcnRDaGFuZ2UuZW1pdCh7a2V5OnQuYWN0aXZlLGRpcmVjdGlvbjplfSl9b25GaWx0ZXJLZXlVcCh0KXt0aGlzLm9uUmVnZXhGaWx0ZXJDaGFuZ2UuZW1pdCh0LnRhcmdldC52YWx1ZSl9dGFibGVUcmFja0J5KHQsZSl7cmV0dXJuIGUucnVuLmlkfWhhbmRsZUhwYXJhbUluY2x1ZGVVbmRlZmluZWRUb2dnbGVkKHQpe2NvbnN0e25hbWU6ZSxmaWx0ZXI6bn09dDtpZighbil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YXJpYW50IGVycm9yOiByZXF1aXJlIGZpbHRlciB0byBleGlzdCBmb3IgaXQgdG8gY2hhbmdlIik7bi50eXBlPT09a1QuRElTQ1JFVEU/dGhpcy5vbkhwYXJhbURpc2NyZXRlRmlsdGVyQ2hhbmdlZC5lbWl0KHtocGFyYW1OYW1lOmUsaW5jbHVkZVVuZGVmaW5lZDohbi5pbmNsdWRlVW5kZWZpbmVkLGZpbHRlclZhbHVlczpuLmZpbHRlclZhbHVlc30pOnRoaXMub25IcGFyYW1JbnRlcnZhbEZpbHRlckNoYW5nZWQuZW1pdCh7bmFtZTplLGluY2x1ZGVVbmRlZmluZWQ6IW4uaW5jbHVkZVVuZGVmaW5lZCxmaWx0ZXJMb3dlclZhbHVlOm4uZmlsdGVyTG93ZXJWYWx1ZSxmaWx0ZXJVcHBlclZhbHVlOm4uZmlsdGVyVXBwZXJWYWx1ZX0pfWhhbmRsZUhwYXJhbUludGVydmFsQ2hhbmdlZCh0LGUpe2NvbnN0e25hbWU6bixmaWx0ZXI6b309dDtpZighbyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YXJpYW50IGVycm9yOiByZXF1aXJlIGZpbHRlciB0byBleGlzdCBmb3IgaXQgdG8gY2hhbmdlIik7dGhpcy5vbkhwYXJhbUludGVydmFsRmlsdGVyQ2hhbmdlZC5lbWl0KHtuYW1lOm4saW5jbHVkZVVuZGVmaW5lZDpvLmluY2x1ZGVVbmRlZmluZWQsZmlsdGVyTG93ZXJWYWx1ZTplLmxvd2VyVmFsdWUsZmlsdGVyVXBwZXJWYWx1ZTplLnVwcGVyVmFsdWV9KX1oYW5kbGVIcGFyYW1EaXNjcmV0ZUNoYW5nZWQodCxlKXtjb25zdHtuYW1lOm4sZmlsdGVyOm99PXQ7aWYoIW8pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFyaWFudCBlcnJvcjogcmVxdWlyZSBmaWx0ZXIgdG8gZXhpc3QgZm9yIGl0IHRvIGNoYW5nZSIpO2lmKG8udHlwZSE9PWtULkRJU0NSRVRFKXRocm93IG5ldyBSYW5nZUVycm9yKGBJbnZhcmlhbnQgZXJyb3I6IGV4cGVjdGVkIGRpc2NyZXRlIGRvbWFpbiBmb3IgJHtufWApO2NvbnN0IGk9bmV3IFNldChbLi4uby5maWx0ZXJWYWx1ZXNdKTtpLmhhcyhlKT9pLmRlbGV0ZShlKTppLmFkZChlKSx0aGlzLm9uSHBhcmFtRGlzY3JldGVGaWx0ZXJDaGFuZ2VkLmVtaXQoe2hwYXJhbU5hbWU6bixpbmNsdWRlVW5kZWZpbmVkOm8uaW5jbHVkZVVuZGVmaW5lZCxmaWx0ZXJWYWx1ZXM6Wy4uLmldfSl9aGFuZGxlTWV0cmljSW5jbHVkZVVuZGVmaW5lZENoYW5nZWQodCl7aWYoIXQuZmlsdGVyKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhcmlhbnQgZXJyb3I6IHJlcXVpcmUgZmlsdGVyIHRvIGV4aXN0IGZvciBpdCB0byBjaGFuZ2UiKTt0aGlzLm9uTWV0cmljRmlsdGVyQ2hhbmdlZC5lbWl0KHtuYW1lOnQudGFnLGluY2x1ZGVVbmRlZmluZWQ6IXQuZmlsdGVyLmluY2x1ZGVVbmRlZmluZWQsZmlsdGVyTG93ZXJWYWx1ZTp0LmZpbHRlci5maWx0ZXJMb3dlclZhbHVlLGZpbHRlclVwcGVyVmFsdWU6dC5maWx0ZXIuZmlsdGVyVXBwZXJWYWx1ZX0pfWhhbmRsZU1ldHJpY0ZpbHRlckNoYW5nZWQodCxlKXtpZighdC5maWx0ZXIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFyaWFudCBlcnJvcjogcmVxdWlyZSBmaWx0ZXIgdG8gZXhpc3QgZm9yIGl0IHRvIGNoYW5nZSIpO3RoaXMub25NZXRyaWNGaWx0ZXJDaGFuZ2VkLmVtaXQoe25hbWU6dC50YWcsaW5jbHVkZVVuZGVmaW5lZDp0LmZpbHRlci5pbmNsdWRlVW5kZWZpbmVkLGZpbHRlckxvd2VyVmFsdWU6ZS5sb3dlclZhbHVlLGZpbHRlclVwcGVyVmFsdWU6ZS51cHBlclZhbHVlfSl9dHJhY2tCeUhwYXJhbUNvbHVtbih0KXtyZXR1cm4gdC5uYW1lfXRyYWNrQnlNZXRyaWNDb2x1bW4odCl7cmV0dXJuIHQudGFnfX1wNC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cDQpfSxwNC7JtWNtcD1zbyh7dHlwZTpwNCxzZWxlY3RvcnM6W1sicnVucy10YWJsZS1jb21wb25lbnQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihWeShrNSw3LEtoKSxWeShlMSw3KSxWeShyMSw3KSksMiZlKXtsZXQgdDtCeSh0PVV5KCkpJiYobi5maWx0ZXI9dC5maXJzdCksQnkodD1VeSgpKSYmKG4ucGFnaW5hdG9yPXQuZmlyc3QpLEJ5KHQ9VXkoKSkmJihuLnNvcnQ9dC5maXJzdCl9fSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZjdSgiZmxleC1sYXlvdXQiLG4udXNlRmxleGlibGVMYXlvdXQpfSxpbnB1dHM6e2V4cGVyaW1lbnRJZHM6ImV4cGVyaW1lbnRJZHMiLHNob3dFeHBlcmltZW50TmFtZToic2hvd0V4cGVyaW1lbnROYW1lIixjb2x1bW5zOiJjb2x1bW5zIixocGFyYW1Db2x1bW5zOiJocGFyYW1Db2x1bW5zIixtZXRyaWNDb2x1bW5zOiJtZXRyaWNDb2x1bW5zIixhbGxJdGVtc0xlbmd0aDoiYWxsSXRlbXNMZW5ndGgiLGZpbHRlcmVkSXRlbXNMZW5ndGg6ImZpbHRlcmVkSXRlbXNMZW5ndGgiLHVzZUZsZXhpYmxlTGF5b3V0OiJ1c2VGbGV4aWJsZUxheW91dCIsdXNlUGFnaW5hdGlvbjoidXNlUGFnaW5hdGlvbiIsc2hvd0dyb3VwQ29udHJvbDoic2hvd0dyb3VwQ29udHJvbCIscGFnZUl0ZW1zOiJwYWdlSXRlbXMiLGxvYWRpbmc6ImxvYWRpbmciLG51bVNlbGVjdGVkSXRlbXM6Im51bVNlbGVjdGVkSXRlbXMiLHNvcnRPcHRpb246InNvcnRPcHRpb24iLHBhZ2luYXRpb25PcHRpb246InBhZ2luYXRpb25PcHRpb24iLHJlZ2V4RmlsdGVyOiJyZWdleEZpbHRlciJ9LG91dHB1dHM6e29uUmVnZXhGaWx0ZXJDaGFuZ2U6Im9uUmVnZXhGaWx0ZXJDaGFuZ2UiLG9uU2VsZWN0aW9uVG9nZ2xlOiJvblNlbGVjdGlvblRvZ2dsZSIsb25QYWdlU2VsZWN0aW9uVG9nZ2xlOiJvblBhZ2VTZWxlY3Rpb25Ub2dnbGUiLG9uUGFnaW5hdGlvbkNoYW5nZToib25QYWdpbmF0aW9uQ2hhbmdlIixvblNvcnRDaGFuZ2U6Im9uU29ydENoYW5nZSIsb25SdW5Db2xvckNoYW5nZToib25SdW5Db2xvckNoYW5nZSIsb25IcGFyYW1EaXNjcmV0ZUZpbHRlckNoYW5nZWQ6Im9uSHBhcmFtRGlzY3JldGVGaWx0ZXJDaGFuZ2VkIixvbkhwYXJhbUludGVydmFsRmlsdGVyQ2hhbmdlZDoib25IcGFyYW1JbnRlcnZhbEZpbHRlckNoYW5nZWQiLG9uTWV0cmljRmlsdGVyQ2hhbmdlZDoib25NZXRyaWNGaWx0ZXJDaGFuZ2VkIn0sZmVhdHVyZXM6W2poKFt7cHJvdmlkZTpYMCx1c2VDbGFzczpkNH1dKSxxb10sZGVjbHM6MTUsdmFyczo4LGNvbnN0czpbWzEsImZpbHRlci1yb3ciXSxbInBsYWNlaG9sZGVyIiwiRmlsdGVyIHJ1bnMgKHJlZ2V4KSIsMSwicnVuLWZpbHRlciIsMywidmFsdWUiLCJrZXl1cCJdLFsxLCJ0YWJsZS1jb250YWluZXIiXSxbInJvbGUiLCJ0YWJsZSJdLFs0LCJuZ1RlbXBsYXRlT3V0bGV0Il0sWyJyb2xlIiwicm93Z3JvdXAiLDEsInJvd3MiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIiwibmdGb3JUcmFja0J5Il0sWyJjbGFzcyIsImxvYWRpbmciLDQsIm5nSWYiXSxbImNsYXNzIiwibm8tcnVucyIsNCwibmdJZiJdLFsic2hvd0ZpcnN0TGFzdEJ1dHRvbnMiLCIiLDMsInBhZ2VTaXplT3B0aW9ucyIsInBhZ2VJbmRleCIsInBhZ2VTaXplIiwibGVuZ3RoIiwicGFnZSIsNCwibmdJZiJdLFsiaGVhZGVyIiwiIl0sWyJyb3ciLCIiXSxbNCwibmdUZW1wbGF0ZU91dGxldCIsIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0Il0sWzEsImxvYWRpbmciXSxbIm1vZGUiLCJpbmRldGVybWluYXRlIiwiZGlhbWV0ZXIiLCIyOCJdLFsxLCJuby1ydW5zIl0sWyJzaG93Rmlyc3RMYXN0QnV0dG9ucyIsIiIsMywicGFnZVNpemVPcHRpb25zIiwicGFnZUluZGV4IiwicGFnZVNpemUiLCJsZW5ndGgiLCJwYWdlIl0sWyJyb2xlIiwicm93Z3JvdXAiLDEsImhlYWRlciJdLFsibWF0U29ydCIsIiIsInJvbGUiLCJyb3ciLDMsIm1hdFNvcnRBY3RpdmUiLCJtYXRTb3J0Q2hhbmdlIl0sWyJyb2xlIiwiY29sdW1uaGVhZGVyIiwzLCJuZ0NsYXNzIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbInJvbGUiLCJjb2x1bW5oZWFkZXIiLCJjbGFzcyIsImNvbHVtbiIsMywibWF0LXNvcnQtaGVhZGVyIiw0LCJuZ0ZvciIsIm5nRm9yT2YiLCJuZ0ZvclRyYWNrQnkiXSxbInJvbGUiLCJjb2x1bW5oZWFkZXIiLDMsIm5nQ2xhc3MiXSxbMywibmdTd2l0Y2giXSxbMywiY2hlY2tlZCIsImluZGV0ZXJtaW5hdGUiLCJjaGFuZ2UiLDQsIm5nU3dpdGNoQ2FzZSJdLFszLCJtYXQtc29ydC1oZWFkZXIiLDQsIm5nU3dpdGNoQ2FzZSJdLFs0LCJuZ1N3aXRjaENhc2UiXSxbMywiY2hlY2tlZCIsImluZGV0ZXJtaW5hdGUiLCJjaGFuZ2UiXSxbMywibWF0LXNvcnQtaGVhZGVyIl0sWzMsImV4cGVyaW1lbnRJZHMiLDQsIm5nSWYiXSxbMywiZXhwZXJpbWVudElkcyJdLFsicm9sZSIsImNvbHVtbmhlYWRlciIsMSwiY29sdW1uIiwzLCJtYXQtc29ydC1oZWFkZXIiXSxbMSwibmFtZSJdLFs0LCJuZ0lmIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLDMsIm1hdE1lbnVUcmlnZ2VyRm9yIiwiY2xpY2siXSxbInN2Z0ljb24iLCJmaWx0ZXJfYWx0XzI0cHgiXSxbImZpbHRlck1lbnUiLCJtYXRNZW51Il0sWyJtYXQtbWVudS1pdGVtIiwiIiwicm9sZSIsIm1lbnVpdGVtY2hlY2tib3giLCJkaXNhYmxlUmlwcGxlIiwiIiwxLCJmaWx0ZXItbWVudS1jaGVja2JveC1yb3ciLDMsImNsaWNrIl0sWzMsImNoZWNrZWQiLCJjaGFuZ2UiXSxbImRpc2FibGVSaXBwbGUiLCIiLCJtYXQtbWVudS1pdGVtIiwiIiwxLCJyYW5nZS1pbnB1dC1jb250YWluZXIiLDMsImNsaWNrIl0sWzMsIm1pbiIsIm1heCIsImxvd2VyVmFsdWUiLCJ1cHBlclZhbHVlIiwidmFsdWUiXSxbIm1hdC1tZW51LWl0ZW0iLCIiLCJjbGFzcyIsImZpbHRlci1tZW51LWNoZWNrYm94LXJvdyIsInJvbGUiLCJtZW51aXRlbWNoZWNrYm94IiwzLCJjbGljayIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJtYXQtbWVudS1pdGVtIiwiIiwicm9sZSIsIm1lbnVpdGVtY2hlY2tib3giLDEsImZpbHRlci1tZW51LWNoZWNrYm94LXJvdyIsMywiY2xpY2siXSxbInJvbGUiLCJyb3ciXSxbInJvbGUiLCJjZWxsIiwzLCJuZ0NsYXNzIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbInJvbGUiLCJjZWxsIiwiY2xhc3MiLCJjb2x1bW4iLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsicm9sZSIsImNlbGwiLDMsIm5nQ2xhc3MiXSxbMywiYWxpYXMiLDQsIm5nU3dpdGNoQ2FzZSJdLFsiY2xhc3MiLCJuYW1lIiw0LCJuZ1N3aXRjaENhc2UiXSxbMywiYWxpYXMiXSxbMywibmdDbGFzcyIsImNvbG9yUGlja2VyIiwiY3BEaWFsb2dEaXNwbGF5IiwiY3BQb3NpdGlvbk9mZnNldCIsImNwVXNlUm9vdFZpZXdDb250YWluZXIiLCJjcE91dHB1dEZvcm1hdCIsImNvbG9yUGlja2VyQ2hhbmdlIl0sWyJyb2xlIiwiY2VsbCIsMSwiY29sdW1uIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihDZigwLCJkaXYiLDApLENmKDEsInRiLWZpbHRlci1pbnB1dCIsMSksUmYoImtleXVwIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbkZpbHRlcktleVVwKGUpfSkpLE1mKCksTWYoKSxDZigyLCJkaXYiLDIpLENmKDMsImRpdiIsMyksSG0oNCxTNSwxLDAsIm5nLWNvbnRhaW5lciIsNCksQ2YoNSwiZGl2Iiw1KSxIbSg2LEU1LDIsNCwibmctY29udGFpbmVyIiw2KSxNZigpLE1mKCksSG0oNyxBNSwyLDAsImRpdiIsNyksSG0oOCxUNSwyLDAsImRpdiIsOCksSG0oOSxONSw2LDEsImRpdiIsOCksTWYoKSxIbSgxMCxJNSwxLDUsIm1hdC1wYWdpbmF0b3IiLDkpLEhtKDExLHQ0LDUsNiwibmctdGVtcGxhdGUiLG51bGwsMTAscXkpLEhtKDEzLGM0LDQsNCwibmctdGVtcGxhdGUiLG51bGwsMTEscXkpKSwyJmUpe2NvbnN0IHQ9Rm0oMTIpO0RjKDEpLExmKCJ2YWx1ZSIsbi5yZWdleEZpbHRlciksRGMoMyksYmYoIm5nVGVtcGxhdGVPdXRsZXQiLHQpLERjKDIpLGJmKCJuZ0Zvck9mIixuLnBhZ2VJdGVtcykoIm5nRm9yVHJhY2tCeSIsbi50YWJsZVRyYWNrQnkpLERjKDEpLGJmKCJuZ0lmIixuLmxvYWRpbmcpLERjKDEpLGJmKCJuZ0lmIiwhbi5sb2FkaW5nJiYwPT09bi5hbGxJdGVtc0xlbmd0aCksRGMoMSksYmYoIm5nSWYiLCFuLmxvYWRpbmcmJm4uYWxsSXRlbXNMZW5ndGg+MCYmMD09PW4uZmlsdGVyZWRJdGVtc0xlbmd0aCksRGMoMSksYmYoIm5nSWYiLG4udXNlUGFnaW5hdGlvbil9fSxkaXJlY3RpdmVzOltaMyxJdix4dixQdixhMixlMSxyMSxDdixEdixSdixiWixmMSxTMixOTCxxcSxNcSxqcSxIcSxFMixIMixQNV0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZvbnQtc2l6ZToxM3B4O292ZXJmbG93OmhpZGRlbn0uZmlsdGVyLXJvd1tfbmdjb250ZW50LSVDT01QJV17ZmxleDpub25lfS50YWJsZS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2NvbnRhaW46bGF5b3V0IHBhaW50O2ZsZXgtZ3JvdzoxO21heC13aWR0aDoxMDAlO292ZXJmbG93LXg6YXV0bztvdmVyZmxvdy15OmF1dG87d2lsbC1jaGFuZ2U6dHJhbnNmb3JtLHNjcm9sbC1wb3NpdGlvbn0uZmxleC1sYXlvdXRbX25naG9zdC0lQ09NUCVdICAgLm5hbWVbX25nY29udGVudC0lQ09NUCVde3dvcmQtYnJlYWs6YnJlYWstd29yZDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmR9LmZsZXgtbGF5b3V0W19uZ2hvc3QtJUNPTVAlXSAgIG1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVde2JvcmRlci10b3A6MXB4IHNvbGlkICNlYmViZWI7cGFkZGluZy1ib3R0b206MTJweH1ib2R5LmRhcmstbW9kZSAgIC5mbGV4LWxheW91dFtfbmdob3N0LSVDT01QJV0gICBtYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItdG9wOjFweCBzb2xpZCAjNTU1fVtyb2xlPXRhYmxlXVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTp0YWJsZTt3aWR0aDoxMDAlfVtyb2xlPXRhYmxlXVtfbmdjb250ZW50LSVDT01QJV0gICAuaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXB9W3JvbGU9dGFibGVdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgW3JvbGU9Y29sdW1uaGVhZGVyXVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmZmO3Bvc2l0aW9uOnN0aWNreTt0b3A6MDt6LWluZGV4OjF9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgW3JvbGU9dGFibGVdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgW3JvbGU9Y29sdW1uaGVhZGVyXVtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIFtyb2xlPXRhYmxlXVtfbmdjb250ZW50LSVDT01QJV0gICAuaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIFtyb2xlPWNvbHVtbmhlYWRlcl1bX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6IzMwMzAzMH1bcm9sZT10YWJsZV1bX25nY29udGVudC0lQ09NUCVdICAgW3JvbGU9cm93XVtfbmdjb250ZW50LSVDT01QJV17Y29udGFpbjpzdHJpY3Q7ZGlzcGxheTp0YWJsZS1yb3c7aGVpZ2h0OjQzcHh9W3JvbGU9dGFibGVdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIFtyb2xlPXJvd11bX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWJlYjtkaXNwbGF5OnRhYmxlLWNlbGw7cGFkZGluZzo1cHg7dmVydGljYWwtYWxpZ246bWlkZGxlfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIFtyb2xlPXRhYmxlXVtfbmdjb250ZW50LSVDT01QJV0gICBbcm9sZT1yb3ddW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW5bX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICBbcm9sZT10YWJsZV1bX25nY29udGVudC0lQ09NUCVdICAgW3JvbGU9cm93XVtfbmdjb250ZW50LSVDT01QJV0gICAuY29sdW1uW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNTU1fVtyb2xlPXRhYmxlXVtfbmdjb250ZW50LSVDT01QJV0gICBbcm9sZT1yb3ddW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW5bX25nY29udGVudC0lQ09NUCVdOmZpcnN0LWNoaWxke3BhZGRpbmctbGVmdDoyNHB4fVtyb2xlPXRhYmxlXVtfbmdjb250ZW50LSVDT01QJV0gICBbcm9sZT1yb3ddW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW5bX25nY29udGVudC0lQ09NUCVdOmxhc3QtY2hpbGR7cGFkZGluZy1yaWdodDoyNHB4fVtyb2xlPXJvd2dyb3VwXVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTp0YWJsZS1yb3ctZ3JvdXB9W3JvbGU9cm93Z3JvdXBdLmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTp0YWJsZS1oZWFkZXItZ3JvdXB9LmxvYWRpbmdbX25nY29udGVudC0lQ09NUCVdLCAubm8tcnVuc1tfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlcjowO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWI7ZGlzcGxheTpmbGV4O2hlaWdodDo0OHB4O3BhZGRpbmc6MCAyNHB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5sb2FkaW5nW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmxvYWRpbmdbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM1NTV9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLm5vLXJ1bnNbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAubm8tcnVuc1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzU1NX0ubG9hZGluZ1tfbmdjb250ZW50LSVDT01QJV17anVzdGlmeS1jb250ZW50OmNlbnRlcn0uc2VsZWN0LWFsbFtfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MTJweDtwYWRkaW5nLXRvcDoxMnB4fS5zZWxlY3QtYWxsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdLCAuc2VsZWN0LWFsbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuNjt0ZXh0LWFsaWduOmxlZnR9LnNlbGVjdC1hbGwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjUwMDtwYWRkaW5nOjAgNHB4fS5maWx0ZXItcm93W19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjQ4cHg7cGFkZGluZzowIDE2cHggMCAyMXB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5maWx0ZXItcm93W19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmZpbHRlci1yb3dbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM1NTV9LmZpbHRlci1yb3dbX25nY29udGVudC0lQ09NUCVdICAgdGItZmlsdGVyLWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4LWdyb3c6MX0udGItY29sdW1uLWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXSwgLnRiLWNvbHVtbi1ydW5fY29sb3JbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjIwcHh9LnRiLWNvbHVtbi1ydW5fY29sb3JbX25nY29udGVudC0lQ09NUCVde3RleHQtYWxpZ246Y2VudGVyfS5ydW4tY29sb3Itc3dhdGNoW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItcmFkaXVzOjEwMCU7Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO2hlaWdodDoyMHB4O3dpZHRoOjIwcHg7b3V0bGluZTpub25lfS5ydW4tY29sb3Itc3dhdGNoLm5vLWNvbG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItY29sb3I6I2M2Y2FkMTtib3JkZXItd2lkdGg6MnB4fS5yYW5nZS1pbnB1dC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDphdXRvfVtfbmdob3N0LSVDT01QJV0gICAgIG1hdC1wYWdpbmF0b3IgbWF0LWZvcm0tZmllbGR7bWFyZ2luOjB9LmZpbHRlci1tZW51LWNoZWNrYm94LXJvd1tfbmdjb250ZW50LSVDT01QJV0gICBtYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVdICAgICBsYWJlbHtkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7YWxpZ24taXRlbXM6Y2VudGVyfS5maWx0ZXItbWVudS1jaGVja2JveC1yb3dbX25nY29udGVudC0lQ09NUCVdICAgbWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgbGFiZWwgLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXJ7bWFyZ2luLWxlZnQ6MH0uZmlsdGVyLW1lbnUtY2hlY2tib3gtcm93W19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV0gICAgIGxhYmVsIC5tYXQtY2hlY2tib3gtbGFiZWx7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgbWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIG1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6IzMwMzAzMH0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIocDQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoicnVucy10YWJsZS1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiJydW5zX3RhYmxlX2NvbXBvbmVudC5uZy5odG1sIixob3N0OnsiW2NsYXNzLmZsZXgtbGF5b3V0XSI6InVzZUZsZXhpYmxlTGF5b3V0In0sc3R5bGVVcmxzOlsicnVuc190YWJsZV9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaCxwcm92aWRlcnM6W3twcm92aWRlOlgwLHVzZUNsYXNzOmQ0fV19XX1dLG51bGwse2V4cGVyaW1lbnRJZHM6W3t0eXBlOlJffV0sc2hvd0V4cGVyaW1lbnROYW1lOlt7dHlwZTpSX31dLGNvbHVtbnM6W3t0eXBlOlJffV0saHBhcmFtQ29sdW1uczpbe3R5cGU6Ul99XSxtZXRyaWNDb2x1bW5zOlt7dHlwZTpSX31dLGFsbEl0ZW1zTGVuZ3RoOlt7dHlwZTpSX31dLGZpbHRlcmVkSXRlbXNMZW5ndGg6W3t0eXBlOlJffV0sdXNlRmxleGlibGVMYXlvdXQ6W3t0eXBlOlJffV0sdXNlUGFnaW5hdGlvbjpbe3R5cGU6Ul99XSxzaG93R3JvdXBDb250cm9sOlt7dHlwZTpSX31dLHBhZ2VJdGVtczpbe3R5cGU6Ul99XSxsb2FkaW5nOlt7dHlwZTpSX31dLG51bVNlbGVjdGVkSXRlbXM6W3t0eXBlOlJffV0sc29ydE9wdGlvbjpbe3R5cGU6Ul99XSxwYWdpbmF0aW9uT3B0aW9uOlt7dHlwZTpSX31dLHJlZ2V4RmlsdGVyOlt7dHlwZTpSX31dLG9uUmVnZXhGaWx0ZXJDaGFuZ2U6W3t0eXBlOkVffV0sb25TZWxlY3Rpb25Ub2dnbGU6W3t0eXBlOkVffV0sb25QYWdlU2VsZWN0aW9uVG9nZ2xlOlt7dHlwZTpFX31dLG9uUGFnaW5hdGlvbkNoYW5nZTpbe3R5cGU6RV99XSxvblNvcnRDaGFuZ2U6W3t0eXBlOkVffV0sb25SdW5Db2xvckNoYW5nZTpbe3R5cGU6RV99XSxvbkhwYXJhbURpc2NyZXRlRmlsdGVyQ2hhbmdlZDpbe3R5cGU6RV99XSxvbkhwYXJhbUludGVydmFsRmlsdGVyQ2hhbmdlZDpbe3R5cGU6RV99XSxvbk1ldHJpY0ZpbHRlckNoYW5nZWQ6W3t0eXBlOkVffV0sZmlsdGVyOlt7dHlwZTphcixhcmdzOlsiZmlsdGVyIix7c3RhdGljOiEwLHJlYWQ6S2h9XX1dLHBhZ2luYXRvcjpbe3R5cGU6YXIsYXJnczpbZTEse3N0YXRpYzohMH1dfV0sc29ydDpbe3R5cGU6YXIsYXJnczpbcjEse3N0YXRpYzohMH1dfV19KTtjb25zdCBtND1iUyhLeiwodD0+dC5zdGF0ZT09PVVFLkxPQURJTkcpKTtmdW5jdGlvbiBmNCh0LGUpe3N3aXRjaChlLnR5cGUpe2Nhc2UgRnouRVhQRVJJTUVOVF9OQU1FOnJldHVyblt0LmV4cGVyaW1lbnRBbGlhcyx0LnJ1bi5uYW1lLHQucnVuLmlkXTtjYXNlIEZ6LlJVTl9OQU1FOnJldHVyblt0LnJ1bi5uYW1lLHQuZXhwZXJpbWVudEFsaWFzLHQucnVuLmlkXTtjYXNlIEZ6LkhQQVJBTTpyZXR1cm5bdC5ocGFyYW1zLmdldChlLm5hbWUpLHQucnVuLm5hbWUsdC5leHBlcmltZW50QWxpYXMsdC5ydW4uaWRdO2Nhc2UgRnouTUVUUklDOnJldHVyblt0Lm1ldHJpY3MuZ2V0KGUudGFnKSx0LnJ1bi5uYW1lLHQuZXhwZXJpbWVudEFsaWFzLHQucnVuLmlkXTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgTm90IHlldCBpbXBsZW1lbnRlZDogJHtlfWApfX1mdW5jdGlvbiB1NCh0LGUpe2lmKHZvaWQgMD09PWUpcmV0dXJuIHQuaW5jbHVkZVVuZGVmaW5lZDtpZih0LnR5cGU9PT1rVC5ESVNDUkVURSl7cmV0dXJuIHQuZmlsdGVyVmFsdWVzLmluY2x1ZGVzKGUpfXJldHVybiB0LnR5cGU9PT1rVC5JTlRFUlZBTCYmKHQuZmlsdGVyTG93ZXJWYWx1ZTw9ZSYmZTw9dC5maWx0ZXJVcHBlclZhbHVlKX1jbGFzcyBnNHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5sb2FkaW5nJD1udWxsLHRoaXMuaHBhcmFtQ29sdW1ucyQ9enQoW10pLHRoaXMubWV0cmljQ29sdW1ucyQ9enQoW10pLHRoaXMudXNlRmxleGlibGVMYXlvdXQ9ITEsdGhpcy51c2VQYWdpbmF0aW9uPSExLHRoaXMuY29sdW1ucz1beDAuUlVOX05BTUVdLHRoaXMuc2hvd0hwYXJhbXNBbmRNZXRyaWNzPSExLHRoaXMuc29ydE9wdGlvbiQ9dGhpcy5zdG9yZS5zZWxlY3Qob0kpLHRoaXMucGFnaW5hdGlvbk9wdGlvbiQ9dGhpcy5zdG9yZS5zZWxlY3QobkkpLHRoaXMucmVnZXhGaWx0ZXIkPXRoaXMuc3RvcmUuc2VsZWN0KHRJKSx0aGlzLm5nVW5zdWJzY3JpYmU9bmV3IEJ9aXNFeHBlcmltZW50TmFtZVZpc2libGUoKXtyZXR1cm4gdGhpcy5jb2x1bW5zLnNvbWUoKHQ9PnQ9PT14MC5FWFBFUklNRU5UX05BTUUpKX1uZ09uSW5pdCgpe2NvbnN0IHQ9S3QodGhpcy5leHBlcmltZW50SWRzLm1hcCgodD0+dGhpcy5nZXRSdW5UYWJsZUl0ZW1zRm9yRXhwZXJpbWVudCh0KSkpKS5waXBlKFZ0KCh0PT5bXS5jb25jYXQoLi4udCkpKSk7dGhpcy5hbGxVbnNvcnRlZFJ1blRhYmxlSXRlbXMkPXQucGlwZShqZSh0aGlzLm5nVW5zdWJzY3JpYmUpLEZlKDEpKSx0aGlzLmFsbEl0ZW1zTGVuZ3RoJD10aGlzLmFsbFVuc29ydGVkUnVuVGFibGVJdGVtcyQucGlwZShWdCgodD0+dC5sZW5ndGgpKSk7Y29uc3QgZT10aGlzLmdldEZpbHRlcmVkSXRlbXMkKHRoaXMuYWxsVW5zb3J0ZWRSdW5UYWJsZUl0ZW1zJCkucGlwZShqZSh0aGlzLm5nVW5zdWJzY3JpYmUpLEZlKDEpKTt0aGlzLmZpbHRlcmVkSXRlbXNMZW5ndGgkPWUucGlwZShWdCgodD0+dC5sZW5ndGgpKSksdGhpcy5wYWdlSXRlbXMkPXRoaXMuc29ydGVkQW5kU2xpY2VkSXRlbXMkKGUpLHRoaXMubnVtU2VsZWN0ZWRJdGVtcyQ9dGhpcy5hbGxVbnNvcnRlZFJ1blRhYmxlSXRlbXMkLnBpcGUoVnQoKHQ9PnQucmVkdWNlKCgodCxlKT0+dCtOdW1iZXIoZS5zZWxlY3RlZCkpLDApKSkpO2NvbnN0IG49dGhpcy5leHBlcmltZW50SWRzLm1hcCgodD0+dGhpcy5zdG9yZS5zZWxlY3QobTQse2V4cGVyaW1lbnRJZDp0fSkpKTtpZih0aGlzLmxvYWRpbmckPUt0KG4pLnBpcGUoVnQoKHQ9PnQuc29tZSgodD0+dCkpKSkpLHRoaXMuc2hvd0hwYXJhbXNBbmRNZXRyaWNzKXtjb25zdCB0PXRoaXMuc3RvcmUuc2VsZWN0KEQwLHtleHBlcmltZW50SWRzOnRoaXMuZXhwZXJpbWVudElkc30pO3RoaXMuaHBhcmFtQ29sdW1ucyQ9S3QoW3RoaXMuc3RvcmUuc2VsZWN0KHcwLHRoaXMuZXhwZXJpbWVudElkcyksdF0pLnBpcGUoVnQoKChbdCx7aHBhcmFtczplfV0pPT5lLm1hcCgoKHtuYW1lOmUsZGlzcGxheU5hbWU6bn0pPT57Y29uc3Qgbz10LmdldChlKTtpZighbyl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgSW52YXJpYW50IGVycm9yOiBhIGZpbHRlciBmb3IgJHtlfSBtdXN0IGV4aXN0IHdoZW4gdGhlIGhwYXJhbSBleGlzdHNgKTtyZXR1cm57ZGlzcGxheU5hbWU6bixuYW1lOmUsZmlsdGVyOm99fSkpKSkpLHRoaXMubWV0cmljQ29sdW1ucyQ9S3QoW3RoaXMuc3RvcmUuc2VsZWN0KFMwLHRoaXMuZXhwZXJpbWVudElkcyksdF0pLnBpcGUoVnQoKChbdCx7bWV0cmljczplfV0pPT5lLm1hcCgoKHt0YWc6ZSxkaXNwbGF5TmFtZTpufSk9Pntjb25zdCBvPXQuZ2V0KGUpO2lmKCFvKXRocm93IG5ldyBSYW5nZUVycm9yKGBJbnZhcmlhbnQgZXJyb3I6IGEgZmlsdGVyIGZvciAke2V9IG11c3QgZXhpc3Qgd2hlbiB0aGUgbWV0cmljIGV4aXN0c2ApO3JldHVybntkaXNwbGF5TmFtZTpuLHRhZzplLGZpbHRlcjpvfX0pKSkpKX1pZih0aGlzLmNvbHVtbnMuaW5jbHVkZXMoeDAuQ0hFQ0tCT1gpKXt0aGlzLnN0b3JlLnNlbGVjdChoUikucGlwZShqZSh0aGlzLm5nVW5zdWJzY3JpYmUpLHdlKCgodCxlKT0+eEQodCxlKSkpLFZlKCgoKT0+dC5waXBlKHVlKCh0PT50Lmxlbmd0aD41MDApKSx2ZSgxKSkpKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goR0koe2xvY2FsaXplZE1lc3NhZ2U6IlRoZSBudW1iZXIgb2YgcnVucyBleGNlZWRzIDUwMC4gTmV3IHJ1bnMgYXJlIHVuc2VsZWN0ZWQgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuIn0pKX0pKX10aGlzLnNob3dHcm91cENvbnRyb2wkPXRoaXMuc3RvcmUuc2VsZWN0KGpEKS5waXBlKFZ0KCh0PT50JiZ0aGlzLmNvbHVtbnMuaW5jbHVkZXMoeDAuUlVOX0NPTE9SKSkpKSx0aGlzLnN0b3JlLmRpc3BhdGNoKHZUKHtleHBlcmltZW50SWRzOnRoaXMuZXhwZXJpbWVudElkc30pKX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9Z2V0RmlsdGVyZWRJdGVtcyQodCl7cmV0dXJuIEt0KFt0LHRoaXMuc3RvcmUuc2VsZWN0KHRJKV0pLnBpcGUoVnQoKChbdCxlXSk9PntpZighZSlyZXR1cm4gdDtjb25zdCBuPXRoaXMuY29sdW1ucy5pbmNsdWRlcyh4MC5FWFBFUklNRU5UX05BTUUpO3JldHVybiB0LmZpbHRlcigodD0+eUkoe3J1bk5hbWU6dC5ydW4ubmFtZSxleHBlcmltZW50QWxpYXM6dC5leHBlcmltZW50QWxpYXN9LGUsbikpKX0pKSxWZSgodD0+dGhpcy5zaG93SHBhcmFtc0FuZE1ldHJpY3M/S3QodGhpcy5zdG9yZS5zZWxlY3QodzAsdGhpcy5leHBlcmltZW50SWRzKSx0aGlzLnN0b3JlLnNlbGVjdChTMCx0aGlzLmV4cGVyaW1lbnRJZHMpKS5waXBlKFZ0KCgoW2Usbl0pPT50LmZpbHRlcigoKHtocGFyYW1zOnQsbWV0cmljczpvfSk9PlsuLi5lLmVudHJpZXMoKV0uZXZlcnkoKChbZSxuXSk9PnU0KG4sdC5nZXQoZSkpKSkmJlsuLi5uLmVudHJpZXMoKV0uZXZlcnkoKChbdCxlXSk9PnU0KGUsby5nZXQodCkpKSkpKSkpKTp6dCh0KSkpKX1zb3J0ZWRBbmRTbGljZWRJdGVtcyQodCl7Y29uc3QgZT1LdChbdCx0aGlzLnN0b3JlLnNlbGVjdChvSSldKS5waXBlKFZ0KCgoW3QsZV0pPT4oZnVuY3Rpb24gbih0LGUpe2NvbnN0IG49ZS5rZXksbz1bLi4udF07cmV0dXJuIG51bGw9PT1ufHxlLmRpcmVjdGlvbj09PXZJLlVOU0VUfHxvLnNvcnQoKCh0LG8pPT57Y29uc3QgaT1mNCh0LG4pLGE9ZjQobyxuKTtpZihpLmxlbmd0aCE9PWEubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgSW52YXJpYW50IGVycm9yOiBhIGdpdmVuIHNvcnQgc2hvdWxkIHJlc3VsdCBpbiBzYW1lIG51bWJlciBvZiBpdGVtczogJHtlfWApO2ZvcihsZXQgdD0wO3Q8aS5sZW5ndGg7dCsrKXtjb25zdCBuPWlbdF0sbz1hW3RdO2lmKG4hPT1vKXtpZih2b2lkIDA9PT1ufHx2b2lkIDA9PT1vKXJldHVybiB2b2lkIDA9PT1vPy0xOjE7aWYodHlwZW9mIG4hPXR5cGVvZiBvKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IGNvbXBhcmUgdmFsdWVzIG9mIGRpZmZlcmVudCB0eXBlczogJHt0eXBlb2Ygbn0gdnMuICR7dHlwZW9mIG99YCk7cmV0dXJuIG48bz09KGUuZGlyZWN0aW9uPT09dkkuQVNDKT8tMToxfX1yZXR1cm4gMH0pKSxvfSkodCxlKSkpKTtyZXR1cm4gS3QoW2UsdGhpcy5zdG9yZS5zZWxlY3QobkkpXSkucGlwZShWdCgoKFt0LGVdKT0+e2lmKCF0aGlzLnVzZVBhZ2luYXRpb24pcmV0dXJuIHQuc2xpY2UoKTtjb25zdHtwYWdlU2l6ZTpuLHBhZ2VJbmRleDpvfT1lO3JldHVybiB0LnNsaWNlKG8qbiwobysxKSpuKX0pKSxCZShbXSkpfWdldFJ1blRhYmxlSXRlbXNGb3JFeHBlcmltZW50KHQpe3JldHVybiBLdChbdGhpcy5zdG9yZS5zZWxlY3QocXose2V4cGVyaW1lbnRJZDp0fSksdGhpcy5zdG9yZS5zZWxlY3QocVQse2V4cGVyaW1lbnRJZDp0fSksdGhpcy5zdG9yZS5zZWxlY3QoX0kpLHRoaXMuc3RvcmUuc2VsZWN0KENJKSx0aGlzLnN0b3JlLnNlbGVjdChPUildKS5waXBlKFZ0KCgoW2UsbixvLGksYV0pPT5lLm1hcCgoZT0+e2NvbnN0IHI9bmV3IE1hcDsoZS5ocGFyYW1zfHxbXSkuZm9yRWFjaCgodD0+e3Iuc2V0KHQubmFtZSx0LnZhbHVlKX0pKTtjb25zdCBzPW5ldyBNYXA7cmV0dXJuKGUubWV0cmljc3x8W10pLmZvckVhY2goKHQ9PntzLnNldCh0LnRhZyx0LnZhbHVlKX0pKSx7cnVuOmUsZXhwZXJpbWVudE5hbWU6KG51bGw9PW4/dm9pZCAwOm4ubmFtZSl8fCIiLGV4cGVyaW1lbnRBbGlhczphW3RdLHNlbGVjdGVkOkJvb2xlYW4obyYmby5nZXQoZS5pZCkpLHJ1bkNvbG9yOmlbZS5pZF0saHBhcmFtczpyLG1ldHJpY3M6c319KSkpKSl9b25SdW5TZWxlY3Rpb25Ub2dnbGUodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChoVCh7ZXhwZXJpbWVudElkczp0aGlzLmV4cGVyaW1lbnRJZHMscnVuSWQ6dC5ydW4uaWR9KSl9b25QYWdlU2VsZWN0aW9uVG9nZ2xlKHQpe2NvbnN0e2l0ZW1zOmV9PXQsbj1lLm1hcCgoKHtydW46dH0pPT50LmlkKSk7dGhpcy5zdG9yZS5kaXNwYXRjaChiVCh7ZXhwZXJpbWVudElkczp0aGlzLmV4cGVyaW1lbnRJZHMscnVuSWRzOm59KSl9b25QYWdpbmF0aW9uQ2hhbmdlKHQpe2lmKCF0aGlzLnVzZVBhZ2luYXRpb24pdGhyb3cgbmV3IEVycm9yKCJQYWdpbmF0aW9uIGV2ZW50cyBjYW5ub3QgYmUgZGlzcGF0Y2hlZCB3aGVuIHBhZ2luYXRpb24gaXMgZGlzYWJsZWQiKTtjb25zdHtwYWdlSW5kZXg6ZSxwYWdlU2l6ZTpufT10O3RoaXMuc3RvcmUuZGlzcGF0Y2goeVQoe3BhZ2VJbmRleDplLHBhZ2VTaXplOm59KSl9b25Tb3J0Q2hhbmdlKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2goX1QodCkpfW9uUmVnZXhGaWx0ZXJDaGFuZ2UodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChDVCh7cmVnZXhTdHJpbmc6dH0pKX1vblJ1bkNvbG9yQ2hhbmdlKHtydW5JZDp0LG5ld0NvbG9yOmV9KXt0aGlzLnN0b3JlLmRpc3BhdGNoKE1UKHtydW5JZDp0LG5ld0NvbG9yOmV9KSl9b25IcGFyYW1EaXNjcmV0ZUZpbHRlckNoYW5nZWQodCl7Y29uc3R7aHBhcmFtTmFtZTplLGZpbHRlclZhbHVlczpuLGluY2x1ZGVVbmRlZmluZWQ6b309dDt0aGlzLnN0b3JlLmRpc3BhdGNoKERUKHtleHBlcmltZW50SWRzOnRoaXMuZXhwZXJpbWVudElkcyxocGFyYW1OYW1lOmUsZmlsdGVyVmFsdWVzOm4saW5jbHVkZVVuZGVmaW5lZDpvfSkpfW9uSHBhcmFtSW50ZXJ2YWxGaWx0ZXJDaGFuZ2VkKHQpe2NvbnN0e25hbWU6ZSxmaWx0ZXJMb3dlclZhbHVlOm4sZmlsdGVyVXBwZXJWYWx1ZTpvLGluY2x1ZGVVbmRlZmluZWQ6aX09dDt0aGlzLnN0b3JlLmRpc3BhdGNoKFJUKHtleHBlcmltZW50SWRzOnRoaXMuZXhwZXJpbWVudElkcyxocGFyYW1OYW1lOmUsZmlsdGVyTG93ZXJWYWx1ZTpuLGZpbHRlclVwcGVyVmFsdWU6byxpbmNsdWRlVW5kZWZpbmVkOml9KSl9b25NZXRyaWNGaWx0ZXJDaGFuZ2VkKHQpe2NvbnN0e25hbWU6ZSxpbmNsdWRlVW5kZWZpbmVkOm4sZmlsdGVyTG93ZXJWYWx1ZTpvLGZpbHRlclVwcGVyVmFsdWU6aX09dDt0aGlzLnN0b3JlLmRpc3BhdGNoKEVUKHtleHBlcmltZW50SWRzOnRoaXMuZXhwZXJpbWVudElkcyxtZXRyaWNUYWc6ZSxpbmNsdWRlVW5kZWZpbmVkOm4sZmlsdGVyTG93ZXJWYWx1ZTpvLGZpbHRlclVwcGVyVmFsdWU6aX0pKX19ZzQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGc0KShnZihpUykpfSxnNC7JtWNtcD1zbyh7dHlwZTpnNCxzZWxlY3RvcnM6W1sicnVucy10YWJsZSJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZjdSgiZmxleC1sYXlvdXQiLG4udXNlRmxleGlibGVMYXlvdXQpfSxpbnB1dHM6e3VzZUZsZXhpYmxlTGF5b3V0OiJ1c2VGbGV4aWJsZUxheW91dCIsdXNlUGFnaW5hdGlvbjoidXNlUGFnaW5hdGlvbiIsY29sdW1uczoiY29sdW1ucyIsZXhwZXJpbWVudElkczoiZXhwZXJpbWVudElkcyIsc2hvd0hwYXJhbXNBbmRNZXRyaWNzOiJzaG93SHBhcmFtc0FuZE1ldHJpY3MifSxkZWNsczoxMix2YXJzOjM4LGNvbnN0czpbWzMsImV4cGVyaW1lbnRJZHMiLCJ1c2VGbGV4aWJsZUxheW91dCIsIm51bVNlbGVjdGVkSXRlbXMiLCJjb2x1bW5zIiwiaHBhcmFtQ29sdW1ucyIsIm1ldHJpY0NvbHVtbnMiLCJzaG93RXhwZXJpbWVudE5hbWUiLCJwYWdlSXRlbXMiLCJmaWx0ZXJlZEl0ZW1zTGVuZ3RoIiwiYWxsSXRlbXNMZW5ndGgiLCJsb2FkaW5nIiwicGFnaW5hdGlvbk9wdGlvbiIsInJlZ2V4RmlsdGVyIiwic2hvd0dyb3VwQ29udHJvbCIsInNvcnRPcHRpb24iLCJ1c2VQYWdpbmF0aW9uIiwib25TZWxlY3Rpb25Ub2dnbGUiLCJvblBhZ2VTZWxlY3Rpb25Ub2dnbGUiLCJvblBhZ2luYXRpb25DaGFuZ2UiLCJvblJlZ2V4RmlsdGVyQ2hhbmdlIiwib25Tb3J0Q2hhbmdlIiwib25SdW5Db2xvckNoYW5nZSIsIm9uSHBhcmFtSW50ZXJ2YWxGaWx0ZXJDaGFuZ2VkIiwib25IcGFyYW1EaXNjcmV0ZUZpbHRlckNoYW5nZWQiLCJvbk1ldHJpY0ZpbHRlckNoYW5nZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKENmKDAsInJ1bnMtdGFibGUtY29tcG9uZW50IiwwKSxSZigib25TZWxlY3Rpb25Ub2dnbGUiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uUnVuU2VsZWN0aW9uVG9nZ2xlKGUpfSkpKCJvblBhZ2VTZWxlY3Rpb25Ub2dnbGUiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uUGFnZVNlbGVjdGlvblRvZ2dsZShlKX0pKSgib25QYWdpbmF0aW9uQ2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblBhZ2luYXRpb25DaGFuZ2UoZSl9KSkoIm9uUmVnZXhGaWx0ZXJDaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uUmVnZXhGaWx0ZXJDaGFuZ2UoZSl9KSkoIm9uU29ydENoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25Tb3J0Q2hhbmdlKGUpfSkpKCJvblJ1bkNvbG9yQ2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblJ1bkNvbG9yQ2hhbmdlKGUpfSkpKCJvbkhwYXJhbUludGVydmFsRmlsdGVyQ2hhbmdlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25IcGFyYW1JbnRlcnZhbEZpbHRlckNoYW5nZWQoZSl9KSkoIm9uSHBhcmFtRGlzY3JldGVGaWx0ZXJDaGFuZ2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbkhwYXJhbURpc2NyZXRlRmlsdGVyQ2hhbmdlZChlKX0pKSgib25NZXRyaWNGaWx0ZXJDaGFuZ2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbk1ldHJpY0ZpbHRlckNoYW5nZWQoZSl9KSksX3koMSwiYXN5bmMiKSxfeSgyLCJhc3luYyIpLF95KDMsImFzeW5jIiksX3koNCwiYXN5bmMiKSxfeSg1LCJhc3luYyIpLF95KDYsImFzeW5jIiksX3koNywiYXN5bmMiKSxfeSg4LCJhc3luYyIpLF95KDksImFzeW5jIiksX3koMTAsImFzeW5jIiksX3koMTEsImFzeW5jIiksTWYoKSksMiZlJiZiZigiZXhwZXJpbWVudElkcyIsbi5leHBlcmltZW50SWRzKSgidXNlRmxleGlibGVMYXlvdXQiLG4udXNlRmxleGlibGVMYXlvdXQpKCJudW1TZWxlY3RlZEl0ZW1zIixDeSgxLDE2LG4ubnVtU2VsZWN0ZWRJdGVtcyQpKSgiY29sdW1ucyIsbi5jb2x1bW5zKSgiaHBhcmFtQ29sdW1ucyIsQ3koMiwxOCxuLmhwYXJhbUNvbHVtbnMkKSkoIm1ldHJpY0NvbHVtbnMiLEN5KDMsMjAsbi5tZXRyaWNDb2x1bW5zJCkpKCJzaG93RXhwZXJpbWVudE5hbWUiLG4uaXNFeHBlcmltZW50TmFtZVZpc2libGUoKSkoInBhZ2VJdGVtcyIsQ3koNCwyMixuLnBhZ2VJdGVtcyQpKSgiZmlsdGVyZWRJdGVtc0xlbmd0aCIsQ3koNSwyNCxuLmZpbHRlcmVkSXRlbXNMZW5ndGgkKSkoImFsbEl0ZW1zTGVuZ3RoIixDeSg2LDI2LG4uYWxsSXRlbXNMZW5ndGgkKSkoImxvYWRpbmciLEN5KDcsMjgsbi5sb2FkaW5nJCkpKCJwYWdpbmF0aW9uT3B0aW9uIixDeSg4LDMwLG4ucGFnaW5hdGlvbk9wdGlvbiQpKSgicmVnZXhGaWx0ZXIiLEN5KDksMzIsbi5yZWdleEZpbHRlciQpKSgic2hvd0dyb3VwQ29udHJvbCIsQ3koMTAsMzQsbi5zaG93R3JvdXBDb250cm9sJCkpKCJzb3J0T3B0aW9uIixDeSgxMSwzNixuLnNvcnRPcHRpb24kKSkoInVzZVBhZ2luYXRpb24iLG4udXNlUGFnaW5hdGlvbil9LGRpcmVjdGl2ZXM6W3A0XSxwaXBlczpbVnZdLHN0eWxlczpbIi5mbGV4LWxheW91dFtfbmdob3N0LSVDT01QJV0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgfVxuXG4gICAgICAuZmxleC1sYXlvdXRbX25naG9zdC0lQ09NUCVdICAgID4gcnVucy10YWJsZS1jb21wb25lbnRbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGc0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6InJ1bnMtdGFibGUiLHRlbXBsYXRlOidcbiAgICA8cnVucy10YWJsZS1jb21wb25lbnRcbiAgICAgIFtleHBlcmltZW50SWRzXT0iZXhwZXJpbWVudElkcyJcbiAgICAgIFt1c2VGbGV4aWJsZUxheW91dF09InVzZUZsZXhpYmxlTGF5b3V0IlxuICAgICAgW251bVNlbGVjdGVkSXRlbXNdPSJudW1TZWxlY3RlZEl0ZW1zJCB8IGFzeW5jIlxuICAgICAgW2NvbHVtbnNdPSJjb2x1bW5zIlxuICAgICAgW2hwYXJhbUNvbHVtbnNdPSJocGFyYW1Db2x1bW5zJCB8IGFzeW5jIlxuICAgICAgW21ldHJpY0NvbHVtbnNdPSJtZXRyaWNDb2x1bW5zJCB8IGFzeW5jIlxuICAgICAgW3Nob3dFeHBlcmltZW50TmFtZV09ImlzRXhwZXJpbWVudE5hbWVWaXNpYmxlKCkiXG4gICAgICBbcGFnZUl0ZW1zXT0icGFnZUl0ZW1zJCB8IGFzeW5jIlxuICAgICAgW2ZpbHRlcmVkSXRlbXNMZW5ndGhdPSJmaWx0ZXJlZEl0ZW1zTGVuZ3RoJCB8IGFzeW5jIlxuICAgICAgW2FsbEl0ZW1zTGVuZ3RoXT0iYWxsSXRlbXNMZW5ndGgkIHwgYXN5bmMiXG4gICAgICBbbG9hZGluZ109ImxvYWRpbmckIHwgYXN5bmMiXG4gICAgICBbcGFnaW5hdGlvbk9wdGlvbl09InBhZ2luYXRpb25PcHRpb24kIHwgYXN5bmMiXG4gICAgICBbcmVnZXhGaWx0ZXJdPSJyZWdleEZpbHRlciQgfCBhc3luYyJcbiAgICAgIFtzaG93R3JvdXBDb250cm9sXT0ic2hvd0dyb3VwQ29udHJvbCQgfCBhc3luYyJcbiAgICAgIFtzb3J0T3B0aW9uXT0ic29ydE9wdGlvbiQgfCBhc3luYyJcbiAgICAgIFt1c2VQYWdpbmF0aW9uXT0idXNlUGFnaW5hdGlvbiJcbiAgICAgIChvblNlbGVjdGlvblRvZ2dsZSk9Im9uUnVuU2VsZWN0aW9uVG9nZ2xlKCRldmVudCkiXG4gICAgICAob25QYWdlU2VsZWN0aW9uVG9nZ2xlKT0ib25QYWdlU2VsZWN0aW9uVG9nZ2xlKCRldmVudCkiXG4gICAgICAob25QYWdpbmF0aW9uQ2hhbmdlKT0ib25QYWdpbmF0aW9uQ2hhbmdlKCRldmVudCkiXG4gICAgICAob25SZWdleEZpbHRlckNoYW5nZSk9Im9uUmVnZXhGaWx0ZXJDaGFuZ2UoJGV2ZW50KSJcbiAgICAgIChvblNvcnRDaGFuZ2UpPSJvblNvcnRDaGFuZ2UoJGV2ZW50KSJcbiAgICAgIChvblJ1bkNvbG9yQ2hhbmdlKT0ib25SdW5Db2xvckNoYW5nZSgkZXZlbnQpIlxuICAgICAgKG9uSHBhcmFtSW50ZXJ2YWxGaWx0ZXJDaGFuZ2VkKT0ib25IcGFyYW1JbnRlcnZhbEZpbHRlckNoYW5nZWQoJGV2ZW50KSJcbiAgICAgIChvbkhwYXJhbURpc2NyZXRlRmlsdGVyQ2hhbmdlZCk9Im9uSHBhcmFtRGlzY3JldGVGaWx0ZXJDaGFuZ2VkKCRldmVudCkiXG4gICAgICAob25NZXRyaWNGaWx0ZXJDaGFuZ2VkKT0ib25NZXRyaWNGaWx0ZXJDaGFuZ2VkKCRldmVudCkiXG4gICAgPjwvcnVucy10YWJsZS1jb21wb25lbnQ+XG4gICcsaG9zdDp7IltjbGFzcy5mbGV4LWxheW91dF0iOiJ1c2VGbGV4aWJsZUxheW91dCJ9LHN0eWxlczpbIlxuICAgICAgOmhvc3QuZmxleC1sYXlvdXQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgfVxuXG4gICAgICA6aG9zdC5mbGV4LWxheW91dCA+IHJ1bnMtdGFibGUtY29tcG9uZW50IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfV19KSx7dXNlRmxleGlibGVMYXlvdXQ6W3t0eXBlOlJffV0sdXNlUGFnaW5hdGlvbjpbe3R5cGU6Ul99XSxjb2x1bW5zOlt7dHlwZTpSX31dLGV4cGVyaW1lbnRJZHM6W3t0eXBlOlJffV0sc2hvd0hwYXJhbXNBbmRNZXRyaWNzOlt7dHlwZTpSX31dfSk7Y2xhc3MgaDR7fWg0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxoNCl9LGg0Lsm1Y21wPXNvKHt0eXBlOmg0LHNlbGVjdG9yczpbWyJydW5zLXNlbGVjdG9yLWNvbXBvbmVudCJdXSxpbnB1dHM6e2V4cGVyaW1lbnRJZHM6ImV4cGVyaW1lbnRJZHMiLHNob3dIcGFyYW1zQW5kTWV0cmljczoic2hvd0hwYXJhbXNBbmRNZXRyaWNzIixjb2x1bW5zOiJjb2x1bW5zIn0sZGVjbHM6MSx2YXJzOjQsY29uc3RzOltbMywidXNlRmxleGlibGVMYXlvdXQiLCJjb2x1bW5zIiwiZXhwZXJpbWVudElkcyIsInNob3dIcGFyYW1zQW5kTWV0cmljcyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZ2ZigwLCJydW5zLXRhYmxlIiwwKSwyJmUmJmJmKCJ1c2VGbGV4aWJsZUxheW91dCIsITApKCJjb2x1bW5zIixuLmNvbHVtbnMpKCJleHBlcmltZW50SWRzIixuLmV4cGVyaW1lbnRJZHMpKCJzaG93SHBhcmFtc0FuZE1ldHJpY3MiLG4uc2hvd0hwYXJhbXNBbmRNZXRyaWNzKX0sZGlyZWN0aXZlczpbZzRdLHN0eWxlczpbInJ1bnMtdGFibGVbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihoNCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJydW5zLXNlbGVjdG9yLWNvbXBvbmVudCIsdGVtcGxhdGU6J1xuICAgIDxydW5zLXRhYmxlXG4gICAgICBbdXNlRmxleGlibGVMYXlvdXRdPSJ0cnVlIlxuICAgICAgW2NvbHVtbnNdPSJjb2x1bW5zIlxuICAgICAgW2V4cGVyaW1lbnRJZHNdPSJleHBlcmltZW50SWRzIlxuICAgICAgW3Nob3dIcGFyYW1zQW5kTWV0cmljc109InNob3dIcGFyYW1zQW5kTWV0cmljcyJcbiAgICA+PC9ydW5zLXRhYmxlPlxuICAnLHN0eWxlczpbIlxuICAgICAgcnVucy10YWJsZSB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgICAiXSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSxudWxsLHtleHBlcmltZW50SWRzOlt7dHlwZTpSX31dLHNob3dIcGFyYW1zQW5kTWV0cmljczpbe3R5cGU6Ul99XSxjb2x1bW5zOlt7dHlwZTpSX31dfSk7Y2xhc3MgYjR7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMuZXhwZXJpbWVudElkcyQ9dGhpcy5zdG9yZS5zZWxlY3QoeFIpLnBpcGUoVnQoKHQ9Pm51bGwhPXQ/dDpbXSkpKSx0aGlzLmNvbHVtbnMkPXRoaXMuc3RvcmUuc2VsZWN0KHhSKS5waXBlKFZ0KCh0PT5beDAuQ0hFQ0tCT1gseDAuUlVOX05BTUUsdCYmdC5sZW5ndGg+MT94MC5FWFBFUklNRU5UX05BTUU6bnVsbCx4MC5SVU5fQ09MT1JdLmZpbHRlcigodD0+bnVsbCE9PXQpKSkpKX19YjQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGI0KShnZihpUykpfSxiNC7JtWNtcD1zbyh7dHlwZTpiNCxzZWxlY3RvcnM6W1sicnVucy1zZWxlY3RvciJdXSxpbnB1dHM6e3Nob3dIcGFyYW1zQW5kTWV0cmljczoic2hvd0hwYXJhbXNBbmRNZXRyaWNzIn0sZGVjbHM6Myx2YXJzOjcsY29uc3RzOltbMywiZXhwZXJpbWVudElkcyIsImNvbHVtbnMiLCJzaG93SHBhcmFtc0FuZE1ldHJpY3MiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKHZmKDAsInJ1bnMtc2VsZWN0b3ItY29tcG9uZW50IiwwKSxfeSgxLCJhc3luYyIpLF95KDIsImFzeW5jIikpLDImZSYmYmYoImV4cGVyaW1lbnRJZHMiLEN5KDEsMyxuLmV4cGVyaW1lbnRJZHMkKSkoImNvbHVtbnMiLEN5KDIsNSxuLmNvbHVtbnMkKSkoInNob3dIcGFyYW1zQW5kTWV0cmljcyIsbi5zaG93SHBhcmFtc0FuZE1ldHJpY3MpfSxkaXJlY3RpdmVzOltoNF0scGlwZXM6W1Z2XSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGI0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6InJ1bnMtc2VsZWN0b3IiLHRlbXBsYXRlOidcbiAgICA8cnVucy1zZWxlY3Rvci1jb21wb25lbnRcbiAgICAgIFtleHBlcmltZW50SWRzXT0iZXhwZXJpbWVudElkcyQgfCBhc3luYyJcbiAgICAgIFtjb2x1bW5zXT0iY29sdW1ucyQgfCBhc3luYyJcbiAgICAgIFtzaG93SHBhcmFtc0FuZE1ldHJpY3NdPSJzaG93SHBhcmFtc0FuZE1ldHJpY3MiXG4gICAgPjwvcnVucy1zZWxlY3Rvci1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfV19KSx7c2hvd0hwYXJhbXNBbmRNZXRyaWNzOlt7dHlwZTpSX31dfSk7Y29uc3QgeTQ9bmV3IFdlYWtNYXA7Y2xhc3MgXzR7Y29uc3RydWN0b3IodCxlKXt0aGlzLnJvb3Q9dCx0aGlzLmJ1ZmZlcj1lLHRoaXMuZGVzdHJveWVkVGFyZ2V0cz1uZXcgV2Vha1NldH1pbml0aWFsaXplKHQpe3ZhciBlO2lmKHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIpcmV0dXJuO3RoaXMuaW50ZXJzZWN0aW9uQ2FsbGJhY2s9dDtjb25zdCBuPXt0aHJlc2hvbGQ6MCxyb290Om51bGwhPT0oZT10aGlzLnJvb3QpJiZ2b2lkIDAhPT1lP2U6bnVsbH07dGhpcy5idWZmZXImJihuLnJvb3RNYXJnaW49dGhpcy5idWZmZXIpLHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXI9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKHRoaXMub25DYXJkSW50ZXJzZWN0aW9uLmJpbmQodGhpcyksbil9YWRkKHQpe3RoaXMuZW5zdXJlSW5pdGlhbGl6ZWQoKSYmdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlci5vYnNlcnZlKHQpfXdpbGxEZXN0cm95KHQpe3RoaXMuZW5zdXJlSW5pdGlhbGl6ZWQoKSYmdGhpcy5kZXN0cm95ZWRUYXJnZXRzLmFkZCh0KX1lbnN1cmVJbml0aWFsaXplZCgpe2lmKCF0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyKXRocm93IG5ldyBFcnJvcigiQ2FyZE9ic2VydmVyIG11c3QgYmUgaW5pdGlhbGl6ZWQgYmVmb3JlIHVzZSIpO3JldHVybiEwfW9uQ2FyZEludGVyc2VjdGlvbih0KXt0LnNvcnQoKCh0LGUpPT50LnRpbWUtZS50aW1lKSk7Y29uc3QgZT1uZXcgU2V0LG49bmV3IFNldDtmb3IoY29uc3R7aXNJbnRlcnNlY3Rpbmc6byx0YXJnZXQ6aX1vZiB0KW8/KGUuYWRkKGkpLG4uZGVsZXRlKGkpKTooZS5kZWxldGUoaSksbi5hZGQoaSkpLHRoaXMuZGVzdHJveWVkVGFyZ2V0cy5oYXMoaSkmJiFvJiYodGhpcy5kZXN0cm95ZWRUYXJnZXRzLmRlbGV0ZShpKSx0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLnVub2JzZXJ2ZShpKSk7dGhpcy5pbnRlcnNlY3Rpb25DYWxsYmFjayhlLG4pfW9uQ2FyZEludGVyc2VjdGlvbkZvclRlc3QodCl7dGhpcy5vbkNhcmRJbnRlcnNlY3Rpb24odCl9fWNsYXNzIEM0e2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5ob3N0PXQsdGhpcy5zdG9yZT1lfW9uQ2FyZEludGVyc2VjdGlvbih0LGUpe2NvbnN0IG49Wy4uLnRdLm1hcCgodD0+e2NvbnN0IGU9eTQuZ2V0KHQpO2lmKCFlKXRocm93IG5ldyBFcnJvcigiQSBDYXJkT2JzZXJ2ZXIgZWxlbWVudCBtdXN0IGhhdmUgYW4gYXNzb2NpYXRlZCBlbGVtZW50IGlkIGFuZCBjYXJkIGlkLiIpO3JldHVybntlbGVtZW50SWQ6ZS5lbGVtZW50SWQsY2FyZElkOmUuY2FyZElkfX0pKSxvPVsuLi5lXS5tYXAoKHQ9Pntjb25zdCBlPXk0LmdldCh0KTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIkEgQ2FyZE9ic2VydmVyIGVsZW1lbnQgbXVzdCBoYXZlIGFuIGFzc29jaWF0ZWQgZWxlbWVudCBpZCBhbmQgY2FyZCBpZC4iKTtyZXR1cm57ZWxlbWVudElkOmUuZWxlbWVudElkLGNhcmRJZDplLmNhcmRJZH19KSk7dGhpcy5zdG9yZS5kaXNwYXRjaChFQSh7ZW50ZXJlZENhcmRzOm4sZXhpdGVkQ2FyZHM6b30pKX1uZ09uSW5pdCgpe2NvbnN0IHQ9dGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQ7eTQuc2V0KHQse2VsZW1lbnRJZDooYjArKyxTeW1ib2woYjApKSxjYXJkSWQ6dGhpcy5jYXJkSWR9KSx0aGlzLmNhcmRPYnNlcnZlcnx8KHRoaXMuY2FyZE9ic2VydmVyPW5ldyBfNCksdGhpcy5jYXJkT2JzZXJ2ZXIuaW5pdGlhbGl6ZSh0aGlzLm9uQ2FyZEludGVyc2VjdGlvbi5iaW5kKHRoaXMpKSx0aGlzLmNhcmRPYnNlcnZlci5hZGQodCl9bmdPbkRlc3Ryb3koKXt0aGlzLmNhcmRPYnNlcnZlciYmdGhpcy5jYXJkT2JzZXJ2ZXIud2lsbERlc3Ryb3kodGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQpfWhvc3RGb3JUZXN0KCl7cmV0dXJuIHRoaXMuaG9zdH19ZnVuY3Rpb24gTTQodCxlKXsxJnQmJnZmKDAsIm1hdC1pY29uIiw3KX1mdW5jdGlvbiB2NCh0LGUpe2lmKDEmdCYmKENmKDAsIm1hdC1vcHRpb24iLDgpLFB1KDEpLE1mKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdDtiZigidmFsdWUiLHQpLHltKCJ0aXRsZSIsdCksRGMoMSksd3UodCl9fWZ1bmN0aW9uIHg0KHQsZSl7aWYoMSZ0JiYoQ2YoMCwiZGl2Iiw5KSxDZigxLCJlbSIpLFB1KDIpLF95KDMsIm51bWJlciIpLE1mKCksTWYoKSksMiZ0KXtjb25zdCB0PXpmKCk7RGMoMiksa3UoImFuZCAiLEN5KDMsMSx0LmNvbXBsZXRpb25zLmxlbmd0aC0yNSksIiBtb3JlIHRhZ3MgbWF0Y2hlZCIpfX1DNC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8QzQpKGdmKEtoKSxnZihpUykpfSxDNC7JtWRpcj1obyh7dHlwZTpDNCxzZWxlY3RvcnM6W1siIiwiY2FyZExhenlMb2FkZXIiLCIiXV0saW5wdXRzOntjYXJkSWQ6WyJjYXJkTGF6eUxvYWRlciIsImNhcmRJZCJdLGNhcmRPYnNlcnZlcjoiY2FyZE9ic2VydmVyIn19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEM0LFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IltjYXJkTGF6eUxvYWRlcl0ifV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6S2h9LHt0eXBlOmlTfV19KSx7Y2FyZElkOlt7dHlwZTpSXyxhcmdzOlsiY2FyZExhenlMb2FkZXIiXX1dLGNhcmRPYnNlcnZlcjpbe3R5cGU6Ul99XX0pO2NsYXNzIE80e2NvbnN0cnVjdG9yKCl7dGhpcy5vblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2U9bmV3IFN5fW9uQ29tcGxldGlvbkFjY2VwdGVkKHQpe3RoaXMub25SZWdleEZpbHRlclZhbHVlQ2hhbmdlLmVtaXQoKGZ1bmN0aW9uIGUodCl7cmV0dXJuIHQucmVwbGFjZShrViwiXFwkJiIpfSkodCkpfX1PNC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TzQpfSxPNC7JtWNtcD1zbyh7dHlwZTpPNCxzZWxlY3RvcnM6W1sibWV0cmljcy10YWctZmlsdGVyLWNvbXBvbmVudCJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZjdSgidmFsaWQiLG4uaXNSZWdleEZpbHRlclZhbGlkKX0saW5wdXRzOntyZWdleEZpbHRlclZhbHVlOiJyZWdleEZpbHRlclZhbHVlIixpc1JlZ2V4RmlsdGVyVmFsaWQ6ImlzUmVnZXhGaWx0ZXJWYWxpZCIsY29tcGxldGlvbnM6ImNvbXBsZXRpb25zIn0sb3V0cHV0czp7b25SZWdleEZpbHRlclZhbHVlQ2hhbmdlOiJvblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UifSxkZWNsczo3LHZhcnM6NSxjb25zdHM6W1sxLCJ0YWctZmlsdGVyIl0sWyJwbGFjZWhvbGRlciIsIkZpbHRlciB0YWdzIChyZWdleCkiLDMsInZhbHVlIiwibWF0QXV0b2NvbXBsZXRlIiwiaW5wdXQiXSxbInN2Z0ljb24iLCJlcnJvcl8yNHB4IiwiY2xhc3MiLCJlcnJvci1pY29uIiwidGl0bGUiLCJJbnZhbGlkIHJlZ2V4IGZpbHRlci4gVGhlIHJlc3VsdCBtYXkgYmUgc3RhbGUuIiw0LCJuZ0lmIl0sWzEsInRhZy1vcHRpb25zIiwzLCJvcHRpb25TZWxlY3RlZCJdLFsiZmlsdGVyTWF0Y2hlcyIsIm1hdEF1dG9jb21wbGV0ZSJdLFsiY2xhc3MiLCJvcHRpb24iLDMsInZhbHVlIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbImNsYXNzIiwiYW5kLW1vcmUiLDQsIm5nSWYiXSxbInN2Z0ljb24iLCJlcnJvcl8yNHB4IiwidGl0bGUiLCJJbnZhbGlkIHJlZ2V4IGZpbHRlci4gVGhlIHJlc3VsdCBtYXkgYmUgc3RhbGUuIiwxLCJlcnJvci1pY29uIl0sWzEsIm9wdGlvbiIsMywidmFsdWUiXSxbMSwiYW5kLW1vcmUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKENmKDAsImRpdiIsMCksQ2YoMSwidGItZmlsdGVyLWlucHV0IiwxKSxSZigiaW5wdXQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uUmVnZXhGaWx0ZXJWYWx1ZUNoYW5nZS5lbWl0KGUudGFyZ2V0LnZhbHVlKX0pKSxNZigpLEhtKDIsTTQsMSwwLCJtYXQtaWNvbiIsMiksTWYoKSxDZigzLCJtYXQtYXV0b2NvbXBsZXRlIiwzLDQpLFJmKCJvcHRpb25TZWxlY3RlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25Db21wbGV0aW9uQWNjZXB0ZWQoZS5vcHRpb24udmFsdWUpfSkpLEhtKDUsdjQsMiwzLCJtYXQtb3B0aW9uIiw1KSxIbSg2LHg0LDQsMywiZGl2Iiw2KSxNZigpKSwyJmUpe2NvbnN0IHQ9Rm0oNCk7RGMoMSksYmYoInZhbHVlIixuLnJlZ2V4RmlsdGVyVmFsdWUpKCJtYXRBdXRvY29tcGxldGUiLHQpLERjKDEpLGJmKCJuZ0lmIiwhbi5pc1JlZ2V4RmlsdGVyVmFsaWQpLERjKDMpLGJmKCJuZ0Zvck9mIixudWxsPT1uLmNvbXBsZXRpb25zP251bGw6bi5jb21wbGV0aW9ucy5zbGljZSgwLDI1KSksRGMoMSksYmYoIm5nSWYiLChudWxsPT1uLmNvbXBsZXRpb25zP251bGw6bi5jb21wbGV0aW9ucy5sZW5ndGgpPjI1KX19LGRpcmVjdGl2ZXM6W1ozLFB2LEYzLHh2LE1xLFBMXSxwaXBlczpbJHZdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS50YWctZmlsdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmV9dGItZmlsdGVyLWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4LWdyb3c6MX1bX25naG9zdC0lQ09NUCVde2NvbG9yOiMyMTIxMjF9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVde2NvbG9yOiNmZmZ9W19uZ2hvc3QtJUNPTVAlXTpub3QoLnZhbGlkKXtjb2xvcjojYzYyODI4fVtfbmdob3N0LSVDT01QJV06bm90KC52YWxpZCkgICAuZXJyb3ItaWNvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6I2M2MjgyODtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowfSAgLnRhZy1vcHRpb25zIC5vcHRpb24sICAgLnRhZy1vcHRpb25zIC5hbmQtbW9yZXstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1saW5lLWNsYW1wOjM7ZGlzcGxheTotd2Via2l0LWJveDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxLjQ7cGFkZGluZzo4cHggMTZweH0gIC50YWctb3B0aW9ucyAuYW5kLW1vcmV7Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAgIC50YWctb3B0aW9ucyAuYW5kLW1vcmUsIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgICAgLnRhZy1vcHRpb25zIC5hbmQtbW9yZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoTzQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy10YWctZmlsdGVyLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6ImZpbHRlcl9pbnB1dF9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiZmlsdGVyX2lucHV0X2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSxudWxsLHtyZWdleEZpbHRlclZhbHVlOlt7dHlwZTpSX31dLGlzUmVnZXhGaWx0ZXJWYWxpZDpbe3R5cGU6QV8sYXJnczpbImNsYXNzLnZhbGlkIl19LHt0eXBlOlJffV0sY29tcGxldGlvbnM6W3t0eXBlOlJffV0sb25SZWdleEZpbHRlclZhbHVlQ2hhbmdlOlt7dHlwZTpFX31dfSk7Y2xhc3MgUDR7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMudGFnRmlsdGVyJD10aGlzLnN0b3JlLnNlbGVjdChQeiksdGhpcy5pc1RhZ0ZpbHRlclJlZ2V4VmFsaWQkPXRoaXMudGFnRmlsdGVyJC5waXBlKFZ0KCh0PT57dHJ5e3JldHVybiBuZXcgUmVnRXhwKHQpLCEwfWNhdGNoKHQpe3JldHVybiExfX0pKSksdGhpcy5jb21wbGV0aW9ucyQ9dGhpcy5zdG9yZS5zZWxlY3QoYXopLnBpcGUoX2UodGhpcy5zdG9yZS5zZWxlY3QoQXopKSxWdCgoKFt0LGVdKT0+dC5maWx0ZXIoKCh7cGx1Z2luOnR9KT0+IWUuc2l6ZXx8ZS5oYXModCkpKS5tYXAoKCh7dGFnOnR9KT0+dCkpKSksVnQoKHQ9PlsuLi5uZXcgU2V0KHQpXSkpLFZ0KCh0PT50LnNvcnQoWCQpKSksX2UodGhpcy5zdG9yZS5zZWxlY3QoUHopKSxWdCgoKFt0LGVdKT0+e3RyeXtyZXR1cm5bdCxuZXcgUmVnRXhwKGUsImkiKV19Y2F0Y2goZSl7cmV0dXJuW3QsbnVsbF19fSkpLHVlKCgoWyx0XSk9Pm51bGwhPT10KSksVnQoKChbdCxlXSk9PnQuZmlsdGVyKCh0PT5lLnRlc3QodCkpKSkpKX1vblRhZ0ZpbHRlckNoYW5nZSh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKFRBKHt0YWdGaWx0ZXI6dH0pKX19UDQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFA0KShnZihpUykpfSxQNC7JtWNtcD1zbyh7dHlwZTpQNCxzZWxlY3RvcnM6W1sibWV0cmljcy10YWctZmlsdGVyIl1dLGRlY2xzOjQsdmFyczo5LGNvbnN0czpbWzMsInJlZ2V4RmlsdGVyVmFsdWUiLCJpc1JlZ2V4RmlsdGVyVmFsaWQiLCJjb21wbGV0aW9ucyIsIm9uUmVnZXhGaWx0ZXJWYWx1ZUNoYW5nZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwibWV0cmljcy10YWctZmlsdGVyLWNvbXBvbmVudCIsMCksUmYoIm9uUmVnZXhGaWx0ZXJWYWx1ZUNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25UYWdGaWx0ZXJDaGFuZ2UoZSl9KSksX3koMSwiYXN5bmMiKSxfeSgyLCJhc3luYyIpLF95KDMsImFzeW5jIiksTWYoKSksMiZlJiZiZigicmVnZXhGaWx0ZXJWYWx1ZSIsQ3koMSwzLG4udGFnRmlsdGVyJCkpKCJpc1JlZ2V4RmlsdGVyVmFsaWQiLEN5KDIsNSxuLmlzVGFnRmlsdGVyUmVnZXhWYWxpZCQpKSgiY29tcGxldGlvbnMiLEN5KDMsNyxuLmNvbXBsZXRpb25zJCkpfSxkaXJlY3RpdmVzOltPNF0scGlwZXM6W1Z2XSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFA0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpY3MtdGFnLWZpbHRlciIsdGVtcGxhdGU6J1xuICAgIDxtZXRyaWNzLXRhZy1maWx0ZXItY29tcG9uZW50XG4gICAgICBbcmVnZXhGaWx0ZXJWYWx1ZV09InRhZ0ZpbHRlciQgfCBhc3luYyJcbiAgICAgIFtpc1JlZ2V4RmlsdGVyVmFsaWRdPSJpc1RhZ0ZpbHRlclJlZ2V4VmFsaWQkIHwgYXN5bmMiXG4gICAgICBbY29tcGxldGlvbnNdPSJjb21wbGV0aW9ucyQgfCBhc3luYyJcbiAgICAgIChvblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UpPSJvblRhZ0ZpbHRlckNoYW5nZSgkZXZlbnQpIlxuICAgID48L21ldHJpY3MtdGFnLWZpbHRlci1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfV19KSxudWxsKTtjb25zdCB3ND1bImJ1dHRvbiJdLGs0PW5ldyBlcigiTUFUX0JVVFRPTl9UT0dHTEVfREVGQVVMVF9PUFRJT05TIiksUzQ9bmV3IGVyKCJNYXRCdXR0b25Ub2dnbGVHcm91cCIpLEQ0PXtwcm92aWRlOnhVLHVzZUV4aXN0aW5nOiRlKCgoKT0+QTQpKSxtdWx0aTohMH07bGV0IFI0PTA7Y2xhc3MgRTR7Y29uc3RydWN0b3IodCxlKXt0aGlzLnNvdXJjZT10LHRoaXMudmFsdWU9ZX19Y2xhc3MgQTR7Y29uc3RydWN0b3IodCxlKXt0aGlzLl9jaGFuZ2VEZXRlY3Rvcj10LHRoaXMuX3ZlcnRpY2FsPSExLHRoaXMuX211bHRpcGxlPSExLHRoaXMuX2Rpc2FibGVkPSExLHRoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm49KCk9Pnt9LHRoaXMuX29uVG91Y2hlZD0oKT0+e30sdGhpcy5fbmFtZT0ibWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtIitSNCsrLHRoaXMudmFsdWVDaGFuZ2U9bmV3IFN5LHRoaXMuY2hhbmdlPW5ldyBTeSx0aGlzLmFwcGVhcmFuY2U9ZSYmZS5hcHBlYXJhbmNlP2UuYXBwZWFyYW5jZToic3RhbmRhcmQifWdldCBuYW1lKCl7cmV0dXJuIHRoaXMuX25hbWV9c2V0IG5hbWUodCl7dGhpcy5fbmFtZT10LHRoaXMuX2J1dHRvblRvZ2dsZXMmJnRoaXMuX2J1dHRvblRvZ2dsZXMuZm9yRWFjaCgodD0+e3QubmFtZT10aGlzLl9uYW1lLHQuX21hcmtGb3JDaGVjaygpfSkpfWdldCB2ZXJ0aWNhbCgpe3JldHVybiB0aGlzLl92ZXJ0aWNhbH1zZXQgdmVydGljYWwodCl7dGhpcy5fdmVydGljYWw9ZUgodCl9Z2V0IHZhbHVlKCl7Y29uc3QgdD10aGlzLl9zZWxlY3Rpb25Nb2RlbD90aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZDpbXTtyZXR1cm4gdGhpcy5tdWx0aXBsZT90Lm1hcCgodD0+dC52YWx1ZSkpOnRbMF0/dFswXS52YWx1ZTp2b2lkIDB9c2V0IHZhbHVlKHQpe3RoaXMuX3NldFNlbGVjdGlvbkJ5VmFsdWUodCksdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpfWdldCBzZWxlY3RlZCgpe2NvbnN0IHQ9dGhpcy5fc2VsZWN0aW9uTW9kZWw/dGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQ6W107cmV0dXJuIHRoaXMubXVsdGlwbGU/dDp0WzBdfHxudWxsfWdldCBtdWx0aXBsZSgpe3JldHVybiB0aGlzLl9tdWx0aXBsZX1zZXQgbXVsdGlwbGUodCl7dGhpcy5fbXVsdGlwbGU9ZUgodCl9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVkfXNldCBkaXNhYmxlZCh0KXt0aGlzLl9kaXNhYmxlZD1lSCh0KSx0aGlzLl9idXR0b25Ub2dnbGVzJiZ0aGlzLl9idXR0b25Ub2dnbGVzLmZvckVhY2goKHQ9PnQuX21hcmtGb3JDaGVjaygpKSl9bmdPbkluaXQoKXt0aGlzLl9zZWxlY3Rpb25Nb2RlbD1uZXcgakwodGhpcy5tdWx0aXBsZSx2b2lkIDAsITEpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdCguLi50aGlzLl9idXR0b25Ub2dnbGVzLmZpbHRlcigodD0+dC5jaGVja2VkKSkpfXdyaXRlVmFsdWUodCl7dGhpcy52YWx1ZT10LHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpfXJlZ2lzdGVyT25DaGFuZ2UodCl7dGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbj10fXJlZ2lzdGVyT25Ub3VjaGVkKHQpe3RoaXMuX29uVG91Y2hlZD10fXNldERpc2FibGVkU3RhdGUodCl7dGhpcy5kaXNhYmxlZD10fV9lbWl0Q2hhbmdlRXZlbnQoKXtjb25zdCB0PXRoaXMuc2VsZWN0ZWQsZT1BcnJheS5pc0FycmF5KHQpP3RbdC5sZW5ndGgtMV06dCxuPW5ldyBFNChlLHRoaXMudmFsdWUpO3RoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4obi52YWx1ZSksdGhpcy5jaGFuZ2UuZW1pdChuKX1fc3luY0J1dHRvblRvZ2dsZSh0LGUsbj0hMSxvPSExKXt0aGlzLm11bHRpcGxlfHwhdGhpcy5zZWxlY3RlZHx8dC5jaGVja2VkfHwodGhpcy5zZWxlY3RlZC5jaGVja2VkPSExKSx0aGlzLl9zZWxlY3Rpb25Nb2RlbD9lP3RoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdCh0KTp0aGlzLl9zZWxlY3Rpb25Nb2RlbC5kZXNlbGVjdCh0KTpvPSEwLG8/UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKCk9PnRoaXMuX3VwZGF0ZU1vZGVsVmFsdWUobikpKTp0aGlzLl91cGRhdGVNb2RlbFZhbHVlKG4pfV9pc1NlbGVjdGVkKHQpe3JldHVybiB0aGlzLl9zZWxlY3Rpb25Nb2RlbCYmdGhpcy5fc2VsZWN0aW9uTW9kZWwuaXNTZWxlY3RlZCh0KX1faXNQcmVjaGVja2VkKHQpe3JldHVybiB2b2lkIDAhPT10aGlzLl9yYXdWYWx1ZSYmKHRoaXMubXVsdGlwbGUmJkFycmF5LmlzQXJyYXkodGhpcy5fcmF3VmFsdWUpP3RoaXMuX3Jhd1ZhbHVlLnNvbWUoKGU9Pm51bGwhPXQudmFsdWUmJmU9PT10LnZhbHVlKSk6dC52YWx1ZT09PXRoaXMuX3Jhd1ZhbHVlKX1fc2V0U2VsZWN0aW9uQnlWYWx1ZSh0KXtpZih0aGlzLl9yYXdWYWx1ZT10LHRoaXMuX2J1dHRvblRvZ2dsZXMpaWYodGhpcy5tdWx0aXBsZSYmdCl7aWYoIUFycmF5LmlzQXJyYXkodCkmJigidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSl0aHJvdyBFcnJvcigiVmFsdWUgbXVzdCBiZSBhbiBhcnJheSBpbiBtdWx0aXBsZS1zZWxlY3Rpb24gbW9kZS4iKTt0aGlzLl9jbGVhclNlbGVjdGlvbigpLHQuZm9yRWFjaCgodD0+dGhpcy5fc2VsZWN0VmFsdWUodCkpKX1lbHNlIHRoaXMuX2NsZWFyU2VsZWN0aW9uKCksdGhpcy5fc2VsZWN0VmFsdWUodCl9X2NsZWFyU2VsZWN0aW9uKCl7dGhpcy5fc2VsZWN0aW9uTW9kZWwuY2xlYXIoKSx0aGlzLl9idXR0b25Ub2dnbGVzLmZvckVhY2goKHQ9PnQuY2hlY2tlZD0hMSkpfV9zZWxlY3RWYWx1ZSh0KXtjb25zdCBlPXRoaXMuX2J1dHRvblRvZ2dsZXMuZmluZCgoZT0+bnVsbCE9ZS52YWx1ZSYmZS52YWx1ZT09PXQpKTtlJiYoZS5jaGVja2VkPSEwLHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdChlKSl9X3VwZGF0ZU1vZGVsVmFsdWUodCl7dCYmdGhpcy5fZW1pdENoYW5nZUV2ZW50KCksdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpfX1BNC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8QTQpKGdmKE9iKSxnZihrNCw4KSl9LEE0Lsm1ZGlyPWhvKHt0eXBlOkE0LHNlbGVjdG9yczpbWyJtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbiB0KGUsbixvKXtpZigxJmUmJmp5KG8sTjQsNSksMiZlKXtsZXQgdDtCeSh0PVV5KCkpJiYobi5fYnV0dG9uVG9nZ2xlcz10KX19LGhvc3RBdHRyczpbInJvbGUiLCJncm91cCIsMSwibWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAiXSxob3N0VmFyczo1LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiYoeW0oImFyaWEtZGlzYWJsZWQiLG4uZGlzYWJsZWQpLGN1KCJtYXQtYnV0dG9uLXRvZ2dsZS12ZXJ0aWNhbCIsbi52ZXJ0aWNhbCkoIm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQiLCJzdGFuZGFyZCI9PT1uLmFwcGVhcmFuY2UpKX0saW5wdXRzOnthcHBlYXJhbmNlOiJhcHBlYXJhbmNlIixuYW1lOiJuYW1lIix2ZXJ0aWNhbDoidmVydGljYWwiLHZhbHVlOiJ2YWx1ZSIsbXVsdGlwbGU6Im11bHRpcGxlIixkaXNhYmxlZDoiZGlzYWJsZWQifSxvdXRwdXRzOnt2YWx1ZUNoYW5nZToidmFsdWVDaGFuZ2UiLGNoYW5nZToiY2hhbmdlIn0sZXhwb3J0QXM6WyJtYXRCdXR0b25Ub2dnbGVHcm91cCJdLGZlYXR1cmVzOltqaChbRDQse3Byb3ZpZGU6UzQsdXNlRXhpc3Rpbmc6QTR9XSldfSksQTQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpPYn0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltrNF19XX1dLEE0LnByb3BEZWNvcmF0b3JzPXtfYnV0dG9uVG9nZ2xlczpbe3R5cGU6b3IsYXJnczpbJGUoKCgpPT5ONCkpLHtkZXNjZW5kYW50czohMH1dfV0sYXBwZWFyYW5jZTpbe3R5cGU6Ul99XSxuYW1lOlt7dHlwZTpSX31dLHZlcnRpY2FsOlt7dHlwZTpSX31dLHZhbHVlOlt7dHlwZTpSX31dLHZhbHVlQ2hhbmdlOlt7dHlwZTpFX31dLG11bHRpcGxlOlt7dHlwZTpSX31dLGRpc2FibGVkOlt7dHlwZTpSX31dLGNoYW5nZTpbe3R5cGU6RV99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihBNCxbe3R5cGU6a18sYXJnczpbe3NlbGVjdG9yOiJtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCIscHJvdmlkZXJzOltENCx7cHJvdmlkZTpTNCx1c2VFeGlzdGluZzpBNH1dLGhvc3Q6e3JvbGU6Imdyb3VwIixjbGFzczoibWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAiLCJbYXR0ci5hcmlhLWRpc2FibGVkXSI6ImRpc2FibGVkIiwiW2NsYXNzLm1hdC1idXR0b24tdG9nZ2xlLXZlcnRpY2FsXSI6InZlcnRpY2FsIiwiW2NsYXNzLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmRdIjonYXBwZWFyYW5jZSA9PT0gInN0YW5kYXJkIid9LGV4cG9ydEFzOiJtYXRCdXR0b25Ub2dnbGVHcm91cCJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpPYn0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltrNF19XX1dfSkse3ZhbHVlQ2hhbmdlOlt7dHlwZTpFX31dLGNoYW5nZTpbe3R5cGU6RV99XSxhcHBlYXJhbmNlOlt7dHlwZTpSX31dLG5hbWU6W3t0eXBlOlJffV0sdmVydGljYWw6W3t0eXBlOlJffV0sdmFsdWU6W3t0eXBlOlJffV0sbXVsdGlwbGU6W3t0eXBlOlJffV0sZGlzYWJsZWQ6W3t0eXBlOlJffV0sX2J1dHRvblRvZ2dsZXM6W3t0eXBlOm9yLGFyZ3M6WyRlKCgoKT0+TjQpKSx7ZGVzY2VuZGFudHM6ITB9XX1dfSk7Y29uc3QgVDQ9SEYoY2xhc3N7fSk7Y2xhc3MgTjQgZXh0ZW5kcyBUNHtjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSl7c3VwZXIoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj1lLHRoaXMuX2VsZW1lbnRSZWY9bix0aGlzLl9mb2N1c01vbml0b3I9byx0aGlzLl9pc1NpbmdsZVNlbGVjdG9yPSExLHRoaXMuX2NoZWNrZWQ9ITEsdGhpcy5hcmlhTGFiZWxsZWRieT1udWxsLHRoaXMuX2Rpc2FibGVkPSExLHRoaXMuY2hhbmdlPW5ldyBTeTtjb25zdCByPU51bWJlcihpKTt0aGlzLnRhYkluZGV4PXJ8fDA9PT1yP3I6bnVsbCx0aGlzLmJ1dHRvblRvZ2dsZUdyb3VwPXQsdGhpcy5hcHBlYXJhbmNlPWEmJmEuYXBwZWFyYW5jZT9hLmFwcGVhcmFuY2U6InN0YW5kYXJkIn1nZXQgYnV0dG9uSWQoKXtyZXR1cm5gJHt0aGlzLmlkfS1idXR0b25gfWdldCBhcHBlYXJhbmNlKCl7cmV0dXJuIHRoaXMuYnV0dG9uVG9nZ2xlR3JvdXA/dGhpcy5idXR0b25Ub2dnbGVHcm91cC5hcHBlYXJhbmNlOnRoaXMuX2FwcGVhcmFuY2V9c2V0IGFwcGVhcmFuY2UodCl7dGhpcy5fYXBwZWFyYW5jZT10fWdldCBjaGVja2VkKCl7cmV0dXJuIHRoaXMuYnV0dG9uVG9nZ2xlR3JvdXA/dGhpcy5idXR0b25Ub2dnbGVHcm91cC5faXNTZWxlY3RlZCh0aGlzKTp0aGlzLl9jaGVja2VkfXNldCBjaGVja2VkKHQpe2NvbnN0IGU9ZUgodCk7ZSE9PXRoaXMuX2NoZWNrZWQmJih0aGlzLl9jaGVja2VkPWUsdGhpcy5idXR0b25Ub2dnbGVHcm91cCYmdGhpcy5idXR0b25Ub2dnbGVHcm91cC5fc3luY0J1dHRvblRvZ2dsZSh0aGlzLHRoaXMuX2NoZWNrZWQpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX1nZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5fZGlzYWJsZWR8fHRoaXMuYnV0dG9uVG9nZ2xlR3JvdXAmJnRoaXMuYnV0dG9uVG9nZ2xlR3JvdXAuZGlzYWJsZWR9c2V0IGRpc2FibGVkKHQpe3RoaXMuX2Rpc2FibGVkPWVIKHQpfW5nT25Jbml0KCl7Y29uc3QgdD10aGlzLmJ1dHRvblRvZ2dsZUdyb3VwO3RoaXMuX2lzU2luZ2xlU2VsZWN0b3I9dCYmIXQubXVsdGlwbGUsdGhpcy5pZD10aGlzLmlkfHwibWF0LWJ1dHRvbi10b2dnbGUtIitSNCsrLHRoaXMuX2lzU2luZ2xlU2VsZWN0b3ImJih0aGlzLm5hbWU9dC5uYW1lKSx0JiYodC5faXNQcmVjaGVja2VkKHRoaXMpP3RoaXMuY2hlY2tlZD0hMDp0Ll9pc1NlbGVjdGVkKHRoaXMpIT09dGhpcy5fY2hlY2tlZCYmdC5fc3luY0J1dHRvblRvZ2dsZSh0aGlzLHRoaXMuX2NoZWNrZWQpKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl9mb2N1c01vbml0b3IubW9uaXRvcih0aGlzLl9lbGVtZW50UmVmLCEwKX1uZ09uRGVzdHJveSgpe2NvbnN0IHQ9dGhpcy5idXR0b25Ub2dnbGVHcm91cDt0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZiksdCYmdC5faXNTZWxlY3RlZCh0aGlzKSYmdC5fc3luY0J1dHRvblRvZ2dsZSh0aGlzLCExLCExLCEwKX1mb2N1cyh0KXt0aGlzLl9idXR0b25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXModCl9X29uQnV0dG9uQ2xpY2soKXtjb25zdCB0PSEhdGhpcy5faXNTaW5nbGVTZWxlY3Rvcnx8IXRoaXMuX2NoZWNrZWQ7dCE9PXRoaXMuX2NoZWNrZWQmJih0aGlzLl9jaGVja2VkPXQsdGhpcy5idXR0b25Ub2dnbGVHcm91cCYmKHRoaXMuYnV0dG9uVG9nZ2xlR3JvdXAuX3N5bmNCdXR0b25Ub2dnbGUodGhpcyx0aGlzLl9jaGVja2VkLCEwKSx0aGlzLmJ1dHRvblRvZ2dsZUdyb3VwLl9vblRvdWNoZWQoKSkpLHRoaXMuY2hhbmdlLmVtaXQobmV3IEU0KHRoaXMsdGhpcy52YWx1ZSkpfV9tYXJrRm9yQ2hlY2soKXt0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX19TjQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE40KShnZihTNCw4KSxnZihPYiksZ2YoS2gpLGdmKGZGKSxHYSgidGFiaW5kZXgiKSxnZihrNCw4KSl9LE40Lsm1Y21wPXNvKHt0eXBlOk40LHNlbGVjdG9yczpbWyJtYXQtYnV0dG9uLXRvZ2dsZSJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmVnkodzQsNSksMiZlKXtsZXQgdDtCeSh0PVV5KCkpJiYobi5fYnV0dG9uRWxlbWVudD10LmZpcnN0KX19LGhvc3RBdHRyczpbInJvbGUiLCJwcmVzZW50YXRpb24iLDEsIm1hdC1idXR0b24tdG9nZ2xlIl0saG9zdFZhcnM6MTIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlJmKCJmb2N1cyIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5mb2N1cygpfSkpLDImZSYmKHltKCJhcmlhLWxhYmVsIixudWxsKSgiYXJpYS1sYWJlbGxlZGJ5IixudWxsKSgiaWQiLG4uaWQpKCJuYW1lIixudWxsKSxjdSgibWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZSIsIW4uYnV0dG9uVG9nZ2xlR3JvdXApKCJtYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIixuLmNoZWNrZWQpKCJtYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZCIsbi5kaXNhYmxlZCkoIm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQiLCJzdGFuZGFyZCI9PT1uLmFwcGVhcmFuY2UpKX0saW5wdXRzOntkaXNhYmxlUmlwcGxlOiJkaXNhYmxlUmlwcGxlIixhcmlhTGFiZWxsZWRieTpbImFyaWEtbGFiZWxsZWRieSIsImFyaWFMYWJlbGxlZGJ5Il0sdGFiSW5kZXg6InRhYkluZGV4IixhcHBlYXJhbmNlOiJhcHBlYXJhbmNlIixjaGVja2VkOiJjaGVja2VkIixkaXNhYmxlZDoiZGlzYWJsZWQiLGlkOiJpZCIsbmFtZToibmFtZSIsYXJpYUxhYmVsOlsiYXJpYS1sYWJlbCIsImFyaWFMYWJlbCJdLHZhbHVlOiJ2YWx1ZSJ9LG91dHB1dHM6e2NoYW5nZToiY2hhbmdlIn0sZXhwb3J0QXM6WyJtYXRCdXR0b25Ub2dnbGUiXSxmZWF0dXJlczpbUXBdLG5nQ29udGVudFNlbGVjdG9yczpbIioiXSxkZWNsczo2LHZhcnM6OSxjb25zdHM6W1sidHlwZSIsImJ1dHRvbiIsMSwibWF0LWJ1dHRvbi10b2dnbGUtYnV0dG9uIiwibWF0LWZvY3VzLWluZGljYXRvciIsMywiaWQiLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJidXR0b24iLCIiXSxbMSwibWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCJdLFsxLCJtYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5Il0sWyJtYXRSaXBwbGUiLCIiLDEsIm1hdC1idXR0b24tdG9nZ2xlLXJpcHBsZSIsMywibWF0UmlwcGxlVHJpZ2dlciIsIm1hdFJpcHBsZURpc2FibGVkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihIZigpLENmKDAsImJ1dHRvbiIsMCwxKSxSZigiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uX29uQnV0dG9uQ2xpY2soKX0pKSxDZigyLCJzcGFuIiwyKSxGZigzKSxNZigpLE1mKCksdmYoNCwic3BhbiIsMyksdmYoNSwic3BhbiIsNCkpLDImZSl7Y29uc3QgdD1GbSgxKTtiZigiaWQiLG4uYnV0dG9uSWQpKCJkaXNhYmxlZCIsbi5kaXNhYmxlZHx8bnVsbCkseW0oInRhYmluZGV4IixuLmRpc2FibGVkPy0xOm4udGFiSW5kZXgpKCJhcmlhLXByZXNzZWQiLG4uY2hlY2tlZCkoIm5hbWUiLG4ubmFtZXx8bnVsbCkoImFyaWEtbGFiZWwiLG4uYXJpYUxhYmVsKSgiYXJpYS1sYWJlbGxlZGJ5IixuLmFyaWFMYWJlbGxlZGJ5KSxEYyg1KSxiZigibWF0UmlwcGxlVHJpZ2dlciIsdCkoIm1hdFJpcHBsZURpc2FibGVkIixuLmRpc2FibGVSaXBwbGV8fG4uZGlzYWJsZWQpfX0sZGlyZWN0aXZlczpbbUxdLHN0eWxlczpbIi5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1mbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdzt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlci1yYWRpdXM6MnB4Oy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3Vwe291dGxpbmU6c29saWQgMXB4fS5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmR7Ym9yZGVyLXJhZGl1czo0cHh9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmR7b3V0bGluZTowfS5tYXQtYnV0dG9uLXRvZ2dsZS12ZXJ0aWNhbHtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lm1hdC1idXR0b24tdG9nZ2xlLXZlcnRpY2FsIC5tYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50e2Rpc3BsYXk6YmxvY2t9Lm1hdC1idXR0b24tdG9nZ2xle3doaXRlLXNwYWNlOm5vd3JhcDtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LWJ1dHRvbi10b2dnbGUgLm1hdC1pY29uIHN2Z3t2ZXJ0aWNhbC1hbGlnbjp0b3B9Lm1hdC1idXR0b24tdG9nZ2xlLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLXRvZ2dsZS5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi41fS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkOm5vdCgubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQpOmhvdmVyIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjA0fS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQpIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjEyfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZCkgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTouNX1AbWVkaWEoaG92ZXI6IG5vbmUpey5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkOm5vdCgubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQpOmhvdmVyIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e2Rpc3BsYXk6bm9uZX19Lm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnR7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnR7cGFkZGluZzowIDEycHh9Lm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQ+Knt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7Ym9yZGVyLXJhZGl1czppbmhlcml0O3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3Bvc2l0aW9uOmFic29sdXRlfS5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e2JvcmRlci1ib3R0b206c29saWQgMzZweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjU7aGVpZ2h0OjB9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e2JvcmRlci1ib3R0b206c29saWQgNTAwcHh9Lm1hdC1idXR0b24tdG9nZ2xlIC5tYXQtYnV0dG9uLXRvZ2dsZS1yaXBwbGV7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6bm9uZX0ubWF0LWJ1dHRvbi10b2dnbGUtYnV0dG9ue2JvcmRlcjowO2JhY2tncm91bmQ6bm9uZTtjb2xvcjppbmhlcml0O3BhZGRpbmc6MDttYXJnaW46MDtmb250OmluaGVyaXQ7b3V0bGluZTpub25lO3dpZHRoOjEwMCU7Y3Vyc29yOnBvaW50ZXJ9Lm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkIC5tYXQtYnV0dG9uLXRvZ2dsZS1idXR0b257Y3Vyc29yOmRlZmF1bHR9Lm1hdC1idXR0b24tdG9nZ2xlLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH1cbiJdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLE40LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6QTQsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W1M0XX1dfSx7dHlwZTpPYn0se3R5cGU6S2h9LHt0eXBlOmZGfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6JGEsYXJnczpbInRhYmluZGV4Il19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltrNF19XX1dLE40LnByb3BEZWNvcmF0b3JzPXthcmlhTGFiZWw6W3t0eXBlOlJfLGFyZ3M6WyJhcmlhLWxhYmVsIl19XSxhcmlhTGFiZWxsZWRieTpbe3R5cGU6Ul8sYXJnczpbImFyaWEtbGFiZWxsZWRieSJdfV0sX2J1dHRvbkVsZW1lbnQ6W3t0eXBlOmFyLGFyZ3M6WyJidXR0b24iXX1dLGlkOlt7dHlwZTpSX31dLG5hbWU6W3t0eXBlOlJffV0sdmFsdWU6W3t0eXBlOlJffV0sdGFiSW5kZXg6W3t0eXBlOlJffV0sYXBwZWFyYW5jZTpbe3R5cGU6Ul99XSxjaGVja2VkOlt7dHlwZTpSX31dLGRpc2FibGVkOlt7dHlwZTpSX31dLGNoYW5nZTpbe3R5cGU6RV99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihONCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJtYXQtYnV0dG9uLXRvZ2dsZSIsdGVtcGxhdGU6JzxidXR0b24gI2J1dHRvbiBjbGFzcz0ibWF0LWJ1dHRvbi10b2dnbGUtYnV0dG9uIG1hdC1mb2N1cy1pbmRpY2F0b3IiXG4gICAgICAgIHR5cGU9ImJ1dHRvbiJcbiAgICAgICAgW2lkXT0iYnV0dG9uSWQiXG4gICAgICAgIFthdHRyLnRhYmluZGV4XT0iZGlzYWJsZWQgPyAtMSA6IHRhYkluZGV4IlxuICAgICAgICBbYXR0ci5hcmlhLXByZXNzZWRdPSJjaGVja2VkIlxuICAgICAgICBbZGlzYWJsZWRdPSJkaXNhYmxlZCB8fCBudWxsIlxuICAgICAgICBbYXR0ci5uYW1lXT0ibmFtZSB8fCBudWxsIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT0iYXJpYUxhYmVsIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPSJhcmlhTGFiZWxsZWRieSJcbiAgICAgICAgKGNsaWNrKT0iX29uQnV0dG9uQ2xpY2soKSI+XG4gIDxzcGFuIGNsYXNzPSJtYXQtYnV0dG9uLXRvZ2dsZS1sYWJlbC1jb250ZW50Ij5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvc3Bhbj5cbjwvYnV0dG9uPlxuXG48c3BhbiBjbGFzcz0ibWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSI+PC9zcGFuPlxuPHNwYW4gY2xhc3M9Im1hdC1idXR0b24tdG9nZ2xlLXJpcHBsZSIgbWF0UmlwcGxlXG4gICAgIFttYXRSaXBwbGVUcmlnZ2VyXT0iYnV0dG9uIlxuICAgICBbbWF0UmlwcGxlRGlzYWJsZWRdPSJ0aGlzLmRpc2FibGVSaXBwbGUgfHwgdGhpcy5kaXNhYmxlZCI+XG48L3NwYW4+XG4nLGVuY2Fwc3VsYXRpb246V24uTm9uZSxleHBvcnRBczoibWF0QnV0dG9uVG9nZ2xlIixjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNoLGlucHV0czpbImRpc2FibGVSaXBwbGUiXSxob3N0OnsiW2NsYXNzLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmVdIjoiIWJ1dHRvblRvZ2dsZUdyb3VwIiwiW2NsYXNzLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWRdIjoiY2hlY2tlZCIsIltjbGFzcy5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZF0iOiJkaXNhYmxlZCIsIltjbGFzcy5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkXSI6J2FwcGVhcmFuY2UgPT09ICJzdGFuZGFyZCInLGNsYXNzOiJtYXQtYnV0dG9uLXRvZ2dsZSIsIlthdHRyLmFyaWEtbGFiZWxdIjoibnVsbCIsIlthdHRyLmFyaWEtbGFiZWxsZWRieV0iOiJudWxsIiwiW2F0dHIuaWRdIjoiaWQiLCJbYXR0ci5uYW1lXSI6Im51bGwiLCIoZm9jdXMpIjoiZm9jdXMoKSIscm9sZToicHJlc2VudGF0aW9uIn0sc3R5bGVzOlsiLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUsLm1hdC1idXR0b24tdG9nZ2xlLWdyb3Vwe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWZsZXg7ZmxleC1kaXJlY3Rpb246cm93O3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJhZGl1czoycHg7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUsLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXB7b3V0bGluZTpzb2xpZCAxcHh9Lm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCwubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZHtib3JkZXItcmFkaXVzOjRweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZHtvdXRsaW5lOjB9Lm1hdC1idXR0b24tdG9nZ2xlLXZlcnRpY2Fse2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0ubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnR7ZGlzcGxheTpibG9ja30ubWF0LWJ1dHRvbi10b2dnbGV7d2hpdGUtc3BhY2U6bm93cmFwO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtYnV0dG9uLXRvZ2dsZSAubWF0LWljb24gc3Zne3ZlcnRpY2FsLWFsaWduOnRvcH0ubWF0LWJ1dHRvbi10b2dnbGUuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24tdG9nZ2xlLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e29wYWNpdHk6LjV9Lm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQ6bm90KC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZCk6aG92ZXIgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTouMDR9Lm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZCkgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTouMTJ9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkKSAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtvcGFjaXR5Oi41fUBtZWRpYShob3Zlcjogbm9uZSl7Lm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQ6bm90KC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZCk6aG92ZXIgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7ZGlzcGxheTpub25lfX0ubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudHstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7bGluZS1oZWlnaHQ6MzZweDtwYWRkaW5nOjAgMTZweDtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudHtwYWRkaW5nOjAgMTJweH0ubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudD4qe3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtib3JkZXItcmFkaXVzOmluaGVyaXQ7cG9pbnRlci1ldmVudHM6bm9uZTtvcGFjaXR5OjA7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGV9Lm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7Ym9yZGVyLWJvdHRvbTpzb2xpZCAzNnB4fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7b3BhY2l0eTouNTtoZWlnaHQ6MH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXl7Ym9yZGVyLWJvdHRvbTpzb2xpZCA1MDBweH0ubWF0LWJ1dHRvbi10b2dnbGUgLm1hdC1idXR0b24tdG9nZ2xlLXJpcHBsZXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lfS5tYXQtYnV0dG9uLXRvZ2dsZS1idXR0b257Ym9yZGVyOjA7YmFja2dyb3VuZDpub25lO2NvbG9yOmluaGVyaXQ7cGFkZGluZzowO21hcmdpbjowO2ZvbnQ6aW5oZXJpdDtvdXRsaW5lOm5vbmU7d2lkdGg6MTAwJTtjdXJzb3I6cG9pbnRlcn0ubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQgLm1hdC1idXR0b24tdG9nZ2xlLWJ1dHRvbntjdXJzb3I6ZGVmYXVsdH0ubWF0LWJ1dHRvbi10b2dnbGUtYnV0dG9uOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfVxuIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpBNCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbUzRdfV19LHt0eXBlOk9ifSx7dHlwZTpLaH0se3R5cGU6ZkZ9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTokYSxhcmdzOlsidGFiaW5kZXgiXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W2s0XX1dfV19KSx7YXJpYUxhYmVsbGVkYnk6W3t0eXBlOlJfLGFyZ3M6WyJhcmlhLWxhYmVsbGVkYnkiXX1dLGNoYW5nZTpbe3R5cGU6RV99XSx0YWJJbmRleDpbe3R5cGU6Ul99XSxhcHBlYXJhbmNlOlt7dHlwZTpSX31dLGNoZWNrZWQ6W3t0eXBlOlJffV0sZGlzYWJsZWQ6W3t0eXBlOlJffV0saWQ6W3t0eXBlOlJffV0sbmFtZTpbe3R5cGU6Ul99XSxhcmlhTGFiZWw6W3t0eXBlOlJfLGFyZ3M6WyJhcmlhLWxhYmVsIl19XSxfYnV0dG9uRWxlbWVudDpbe3R5cGU6YXIsYXJnczpbImJ1dHRvbiJdfV0sdmFsdWU6W3t0eXBlOlJffV19KTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNsYXNzIHo0e316NC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ejQpfSx6NC7JtW1vZD1mbyh7dHlwZTp6NH0pLHo0Lsm1aW5qPURuKHtpbXBvcnRzOltbTkYsZkxdLE5GXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoejQsW3t0eXBlOkxfLGFyZ3M6W3tpbXBvcnRzOltORixmTF0sZXhwb3J0czpbTkYsQTQsTjRdLGRlY2xhcmF0aW9uczpbQTQsTjRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oejQse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVybltBNCxONF19LGltcG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bTkYsZkxdfSxleHBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW05GLEE0LE40XX19KTtjb25zdCBJND0iL3NjYWxhcl9zdW1tYXJ5IjtmdW5jdGlvbiBINCh0LGUpe2xldCBuPXQ7cmV0dXJuIGUmJnQuc3RhcnRzV2l0aChlKyIvIikmJihuPXQuc2xpY2UoZS5sZW5ndGgrMSkpLG4uZW5kc1dpdGgoSTQpJiYobj1uLnNsaWNlKDAsLUk0Lmxlbmd0aCkpLG58fHR9ZnVuY3Rpb24gRjQodCxlKXtpZigxJnQmJihDZigwLCJzcGFuIiwyKSxQdSgxKSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoKTtEYygxKSx3dSh0LmZpcnN0VGV4dFBhcnQoKSl9fWNsYXNzIEw0e3BhcnNlVmFsdWUoKXtjb25zdCB0PXRoaXMudmFsdWUubGFzdEluZGV4T2YoIi8iKTtyZXR1cm4tMT09PXQ/e2ZpcnN0OiIiLHNlY29uZDp0aGlzLnZhbHVlfTp7Zmlyc3Q6dGhpcy52YWx1ZS5zbGljZSgwLHQpLHNlY29uZDp0aGlzLnZhbHVlLnNsaWNlKHQpfX1maXJzdFRleHRQYXJ0KCl7cmV0dXJuIHRoaXMucGFyc2VWYWx1ZSgpLmZpcnN0fXNlY29uZFRleHRQYXJ0KCl7cmV0dXJuIHRoaXMucGFyc2VWYWx1ZSgpLnNlY29uZH19ZnVuY3Rpb24gQjQodCxlLG4pe3ZhciBvLGksYSxyO3JldHVybiB0LnN0YXJ0LnN0ZXA8PWUmJnQuZW5kJiZuPD10LmVuZC5zdGVwfHxlPD10LnN0YXJ0LnN0ZXAmJnQuc3RhcnQuc3RlcDw9bnx8dC5lbmQmJmU8PShudWxsPT09KG89dC5lbmQpfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLnN0ZXApJiYobnVsbD09PShpPXQuZW5kKXx8dm9pZCAwPT09aT92b2lkIDA6aS5zdGVwKTw9bj97c3RhcnRTdGVwOnQuc3RhcnQuc3RlcCxlbmRTdGVwOm51bGwhPT0ocj1udWxsPT09KGE9dC5lbmQpfHx2b2lkIDA9PT1hP3ZvaWQgMDphLnN0ZXApJiZ2b2lkIDAhPT1yP3I6bnVsbCxjbGlwcGVkOiExfTpuPD10LnN0YXJ0LnN0ZXA/e3N0YXJ0U3RlcDpuLGVuZFN0ZXA6bnVsbCxjbGlwcGVkOiEwfTp7c3RhcnRTdGVwOmUsZW5kU3RlcDpudWxsLGNsaXBwZWQ6ITB9fWZ1bmN0aW9uIFY0KHQsZSl7aWYoMSZ0JiZ2ZigwLCJ0Yi1leHBlcmltZW50LWFsaWFzIiwyKSwyJnQpe2JmKCJhbGlhcyIsemYoKS5leHBlcmltZW50QWxpYXMpfX1mdW5jdGlvbiBqNCh0LGUpezEmdCYmKENmKDAsInNwYW4iKSxQdSgxLCIvIiksTWYoKSl9TDQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEw0KX0sTDQuybVjbXA9c28oe3R5cGU6TDQsc2VsZWN0b3JzOltbInRiLXRydW5jYXRlZC1wYXRoIl1dLGlucHV0czp7dmFsdWU6InZhbHVlIn0sZGVjbHM6Myx2YXJzOjIsY29uc3RzOltbImNsYXNzIiwiZmlyc3QtdGV4dC1wYXJ0Iiw0LCJuZ0lmIl0sWzEsInNlY29uZC10ZXh0LXBhcnQiXSxbMSwiZmlyc3QtdGV4dC1wYXJ0Il1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihIbSgwLEY0LDIsMSwic3BhbiIsMCksQ2YoMSwic3BhbiIsMSksUHUoMiksTWYoKSksMiZlJiYoYmYoIm5nSWYiLG4uZmlyc3RUZXh0UGFydCgpLmxlbmd0aD4wKSxEYygyKSx3dShuLnNlY29uZFRleHRQYXJ0KCkpKX0sZGlyZWN0aXZlczpbUHZdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV17ZGlzcGxheTppbmxpbmUtZmxleDt3aGl0ZS1zcGFjZTpub3dyYXB9LmZpcnN0LXRleHQtcGFydFtfbmdjb250ZW50LSVDT01QJV17ZmxleDoxIDEgNGNoO21heC13aWR0aDptYXgtY29udGVudH0uZmlyc3QtdGV4dC1wYXJ0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLnNlY29uZC10ZXh0LXBhcnRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfSJdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihMNCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJ0Yi10cnVuY2F0ZWQtcGF0aCIsdGVtcGxhdGU6J1xuICAgIDxzcGFuICpuZ0lmPSJmaXJzdFRleHRQYXJ0KCkubGVuZ3RoID4gMCIgY2xhc3M9ImZpcnN0LXRleHQtcGFydCI+e3tcbiAgICAgIGZpcnN0VGV4dFBhcnQoKVxuICAgIH19PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPSJzZWNvbmQtdGV4dC1wYXJ0Ij57eyBzZWNvbmRUZXh0UGFydCgpIH19PC9zcGFuPlxuICAnLHN0eWxlVXJsczpbInRydW5jYXRlZF9wYXRoX2NvbXBvbmVudC5jc3MiXX1dfV0sbnVsbCx7dmFsdWU6W3t0eXBlOlJffV19KTtjbGFzcyBVNHt9VTQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFU0KX0sVTQuybVjbXA9c28oe3R5cGU6VTQsc2VsZWN0b3JzOltbImNhcmQtcnVuLW5hbWUtY29tcG9uZW50Il1dLGlucHV0czp7bmFtZToibmFtZSIsZXhwZXJpbWVudEFsaWFzOiJleHBlcmltZW50QWxpYXMifSxkZWNsczo0LHZhcnM6Myxjb25zdHM6W1szLCJhbGlhcyIsNCwibmdJZiJdLFs0LCJuZ0lmIl0sWzMsImFsaWFzIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihIbSgwLFY0LDEsMSwidGItZXhwZXJpbWVudC1hbGlhcyIsMCksSG0oMSxqNCwyLDAsInNwYW4iLDEpLENmKDIsInNwYW4iKSxQdSgzKSxNZigpKSwyJmUmJihiZigibmdJZiIsbnVsbCE9bi5leHBlcmltZW50QWxpYXMpLERjKDEpLGJmKCJuZ0lmIixudWxsIT1uLmV4cGVyaW1lbnRBbGlhcyksRGMoMiksd3Uobi5uYW1lKSl9LGRpcmVjdGl2ZXM6W1B2LEgyXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2NvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihVNCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJjYXJkLXJ1bi1uYW1lLWNvbXBvbmVudCIsdGVtcGxhdGU6Jzx0Yi1leHBlcmltZW50LWFsaWFzXG4gICAgICAqbmdJZj0iZXhwZXJpbWVudEFsaWFzICE9IG51bGwiXG4gICAgICBbYWxpYXNdPSJleHBlcmltZW50QWxpYXMiXG4gICAgPjwvdGItZXhwZXJpbWVudC1hbGlhcz5cbiAgICA8c3BhbiAqbmdJZj0iZXhwZXJpbWVudEFsaWFzICE9IG51bGwiPi88L3NwYW4+XG4gICAgPHNwYW4+e3sgbmFtZSB9fTwvc3Bhbj4nLHN0eWxlVXJsczpbInJ1bl9uYW1lX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSxudWxsLHtuYW1lOlt7dHlwZTpSX31dLGV4cGVyaW1lbnRBbGlhczpbe3R5cGU6Ul99XX0pO2NsYXNzIFc0e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dH1uZ09uSW5pdCgpe3RoaXMubmFtZSQ9S3QoW3RoaXMuc3RvcmUuc2VsZWN0KFl6LHtydW5JZDp0aGlzLnJ1bklkfSldKS5waXBlKFZ0KCgoW3RdKT0+KGZ1bmN0aW9uIGUodCxuLG8pe3ZhciBpO2lmKCFuJiYhbylyZXR1cm4gdDtsZXQgYT1udWxsIT09KGk9bnVsbD09bj92b2lkIDA6bi5uYW1lKSYmdm9pZCAwIT09aT9pOiIuLi4iO3JldHVybiBvJiYoYT1gWyR7by5hbGlhc051bWJlcn1dICR7by5hbGlhc1RleHR9LyR7YX1gKSxhfSkodGhpcy5ydW5JZCx0LG51bGwpKSkpLHRoaXMuZXhwZXJpbWVudEFsaWFzJD1LdChbdGhpcy5zdG9yZS5zZWxlY3QoR3ose3J1bklkOnRoaXMucnVuSWR9KSx0aGlzLnN0b3JlLnNlbGVjdChPUildKS5waXBlKFZ0KCgoW3QsZV0pPT50P2VbdF06bnVsbCkpKX19ZnVuY3Rpb24gRzQodCxlKXtpZigxJnQmJihDZigwLCJzcGFuIiwxNyksUHUoMSksX3koMiwibnVtYmVyIiksTWYoKSksMiZ0KXtjb25zdCB0PXpmKCk7RGMoMSksa3UoIlN0ZXAgIixDeSgyLDEsdC5zdGVwVmFsdWVzW3Quc3RlcEluZGV4XSksIiIpfX1mdW5jdGlvbiBZNCh0LGUpe2lmKDEmdCYmKENmKDAsInNwYW4iLDE4KSxQdSgxKSxfeSgyLCJudW1iZXIiKSxfeSgzLCJudW1iZXIiKSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoKTtEYygxKSxTdSgiU2FtcGxlICIsQ3koMiwyLHQuc2FtcGxlKzEpLCIvIixDeSgzLDQsdC5udW1TYW1wbGUpLCIiKX19ZnVuY3Rpb24gcTQodCxlKXsxJnQmJnZmKDAsIm1hdC1zcGlubmVyIiwxOSl9VzQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFc0KShnZihpUykpfSxXNC7JtWNtcD1zbyh7dHlwZTpXNCxzZWxlY3RvcnM6W1siY2FyZC1ydW4tbmFtZSJdXSxpbnB1dHM6e3J1bklkOiJydW5JZCJ9LGRlY2xzOjQsdmFyczo5LGNvbnN0czpbWzMsIm5hbWUiLCJleHBlcmltZW50QWxpYXMiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKHZmKDAsImNhcmQtcnVuLW5hbWUtY29tcG9uZW50IiwwKSxfeSgxLCJhc3luYyIpLF95KDIsImFzeW5jIiksX3koMywiYXN5bmMiKSksMiZlJiYoYmYoIm5hbWUiLEN5KDEsMyxuLm5hbWUkKSkoImV4cGVyaW1lbnRBbGlhcyIsQ3koMyw3LG4uZXhwZXJpbWVudEFsaWFzJCkpLHltKCJ0aXRsZSIsQ3koMiw1LG4ubmFtZSQpKSl9LGRpcmVjdGl2ZXM6W1U0XSxwaXBlczpbVnZdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoVzQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoiY2FyZC1ydW4tbmFtZSIsdGVtcGxhdGU6J1xuICAgIDxjYXJkLXJ1bi1uYW1lLWNvbXBvbmVudFxuICAgICAgW25hbWVdPSJuYW1lJCB8IGFzeW5jIlxuICAgICAgW2F0dHIudGl0bGVdPSJuYW1lJCB8IGFzeW5jIlxuICAgICAgW2V4cGVyaW1lbnRBbGlhc109ImV4cGVyaW1lbnRBbGlhcyQgfCBhc3luYyJcbiAgICA+PC9jYXJkLXJ1bi1uYW1lLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aVN9XX0pLHtydW5JZDpbe3R5cGU6Ul99XX0pO2NvbnN0IFo0PWZ1bmN0aW9uKHQpe3JldHVybntmaWx0ZXI6dH19O2Z1bmN0aW9uIFg0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7eGYoMCksQ2YoMSwiZGl2IiwyMCksQ2YoMiwibWF0LXNsaWRlciIsMjEpLFJmKCJpbnB1dCIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKCkub25TbGlkZXJJbnB1dChuKX0pKSxNZigpLE1mKCksQ2YoMywiZGl2IiwyMiksdmYoNCwiaW1nIiwyMyksTWYoKSxPZigpfWlmKDImdCl7Y29uc3QgdD16ZigpO0RjKDIpLGJmKCJkaXNhYmxlZCIsdC5zdGVwVmFsdWVzLmxlbmd0aDw9MSkoIm1pbiIsMCkoIm1heCIsdC5zdGVwVmFsdWVzLmxlbmd0aC0xKSgic3RlcCIsMSkoInRpY2tJbnRlcnZhbCIsMSkoInZhbHVlIix0LnN0ZXBJbmRleCksRGMoMiksQmYoImFsdCIsIkltYWdlIGF0IHN0ZXAgIix0LnN0ZXBWYWx1ZXNbdC5zdGVwSW5kZXhdLCIiKSxMZigic3JjIix0LmltYWdlVXJsLFhzKSxiZigibmdTdHlsZSIsaXkoOSxaNCx0LmNzc0ZpbHRlcigpKSl9fWZ1bmN0aW9uIEs0KHQsZSl7MSZ0JiYoQ2YoMCwiZGl2IiwyNSksUHUoMSwiIERhdGEgZmFpbGVkIHRvIGxvYWQuICIpLE1mKCkpfWZ1bmN0aW9uIEo0KHQsZSl7aWYoMSZ0JiZIbSgwLEs0LDIsMCwiZGl2IiwyNCksMiZ0KXtjb25zdCB0PXpmKCk7YmYoIm5nSWYiLHQubG9hZFN0YXRlPT09dC5EYXRhTG9hZFN0YXRlLkZBSUxFRCl9fWNvbnN0IFE0PWZ1bmN0aW9uKHQpe3JldHVybntiYWNrZ3JvdW5kQ29sb3I6dH19O2NsYXNzICQ0e2NvbnN0cnVjdG9yKCl7dGhpcy5EYXRhTG9hZFN0YXRlPVVFLHRoaXMub25BY3R1YWxTaXplVG9nZ2xlPW5ldyBTeSx0aGlzLnN0ZXBJbmRleENoYW5nZT1uZXcgU3ksdGhpcy5vblBpbkNsaWNrZWQ9bmV3IFN5fWNzc0ZpbHRlcigpe3JldHVybmBjb250cmFzdCgke3RoaXMuY29udHJhc3RJbk1pbGxpLzEwfSUpIGJyaWdodG5lc3MoJHt0aGlzLmJyaWdodG5lc3NJbk1pbGxpLzFlM30pYH1vblNsaWRlcklucHV0KHQpe3RoaXMuc3RlcEluZGV4Q2hhbmdlLmVtaXQodC52YWx1ZSl9fSQ0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHwkNCl9LCQ0Lsm1Y21wPXNvKHt0eXBlOiQ0LHNlbGVjdG9yczpbWyJpbWFnZS1jYXJkLWNvbXBvbmVudCJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZjdSgiYWN0dWFsLXNpemUiLG4uc2hvd0FjdHVhbFNpemUpfSxpbnB1dHM6e2xvYWRTdGF0ZToibG9hZFN0YXRlIix0aXRsZToidGl0bGUiLHRhZzoidGFnIixydW5JZDoicnVuSWQiLHNhbXBsZToic2FtcGxlIixudW1TYW1wbGU6Im51bVNhbXBsZSIsaW1hZ2VVcmw6ImltYWdlVXJsIixzdGVwSW5kZXg6InN0ZXBJbmRleCIsc3RlcFZhbHVlczoic3RlcFZhbHVlcyIsYnJpZ2h0bmVzc0luTWlsbGk6ImJyaWdodG5lc3NJbk1pbGxpIixjb250cmFzdEluTWlsbGk6ImNvbnRyYXN0SW5NaWxsaSIsc2hvd0FjdHVhbFNpemU6InNob3dBY3R1YWxTaXplIixydW5Db2xvclNjYWxlOiJydW5Db2xvclNjYWxlIixhbGxvd1RvZ2dsZUFjdHVhbFNpemU6ImFsbG93VG9nZ2xlQWN0dWFsU2l6ZSIsaXNQaW5uZWQ6ImlzUGlubmVkIn0sb3V0cHV0czp7b25BY3R1YWxTaXplVG9nZ2xlOiJvbkFjdHVhbFNpemVUb2dnbGUiLHN0ZXBJbmRleENoYW5nZToic3RlcEluZGV4Q2hhbmdlIixvblBpbkNsaWNrZWQ6Im9uUGluQ2xpY2tlZCJ9LGRlY2xzOjE5LHZhcnM6MTQsY29uc3RzOmZ1bmN0aW9uKCl7bGV0IHQsZTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZSl7dD1nb29nLmdldE1zZygiUGluIGNhcmQiKX1lbHNlIHQ9JGxvY2FsaXplYDpBIGJ1dHRvbiB0byBwaW4gYSBjYXJkLuKQn2U2NjVkYzcxMmJkNWYxOGQ0ZGZhM2EyOWUxMjVkNTY1Y2M1MWUyZjbikJ83Mjg0NjA2NDI2MjM0Mzc1MzQ0OlBpbiBjYXJkYDtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZSl7ZT1nb29nLmdldE1zZygiVG9nZ2xlIGFjdHVhbCBpbWFnZSBzaXplIil9ZWxzZSBlPSRsb2NhbGl6ZWA6QSBidXR0b24gb24gYW4gaW1hZ2UgY2FyZCB0aGF0IHRvZ2dsZXMgYWN0dWFsIGltYWdlIHNpemUu4pCfM2NhMDVlZjNhNmUzYTM3MDY1ZjVlMGY2OWM1ZDVhMjE3OGQ5MDc5MeKQnzc2MzUxMDE5MzY2NjQ3ODkxNDA6VG9nZ2xlIGFjdHVhbCBpbWFnZSBzaXplYDtyZXR1cm5bWzEsImhlYWRpbmciXSxbMSwibGluZSJdLFsxLCJ0YWciLDMsInRpdGxlIiwidmFsdWUiXSxbMSwiY29udHJvbHMiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHQsMSwicGluLWJ1dHRvbiIsMywiY2xpY2siXSxbMywic3ZnSWNvbiJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsZSwidGl0bGUiLCJUb2dnbGUgYWN0dWFsIGltYWdlIHNpemUiLDMsImRpc2FibGVkIiwiY2xpY2siXSxbInN2Z0ljb24iLCJpbWFnZV9zZWFyY2hfMjRweCJdLFsxLCJydW4iXSxbMSwiZG90IiwzLCJuZ1N0eWxlIl0sWzEsInJ1bi10ZXh0IiwzLCJydW5JZCJdLFsxLCJtZXRhZGF0YSJdLFsiY2xhc3MiLCJzdGVwIiw0LCJuZ0lmIl0sWyJjbGFzcyIsInNhbXBsZSIsNCwibmdJZiJdLFsiY2xhc3MiLCJsb2FkaW5nIiwiZGlhbWV0ZXIiLCIxOCIsNCwibmdJZiJdLFs0LCJuZ0lmIiwibmdJZkVsc2UiXSxbIm5vSW1hZ2VEYXRhIiwiIl0sWzEsInN0ZXAiXSxbMSwic2FtcGxlIl0sWyJkaWFtZXRlciIsIjE4IiwxLCJsb2FkaW5nIl0sWzEsInNsaWRlci1yb3ciXSxbImNvbG9yIiwicHJpbWFyeSIsMSwic3RlcC1zbGlkZXIiLDMsImRpc2FibGVkIiwibWluIiwibWF4Iiwic3RlcCIsInRpY2tJbnRlcnZhbCIsInZhbHVlIiwiaW5wdXQiXSxbMSwiaW1nLWNvbnRhaW5lciJdLFszLCJhbHQiLCJzcmMiLCJuZ1N0eWxlIl0sWyJjbGFzcyIsImVtcHR5LW1lc3NhZ2UiLDQsIm5nSWYiXSxbMSwiZW1wdHktbWVzc2FnZSJdXX0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKENmKDAsImRpdiIsMCksQ2YoMSwiZGl2IiwxKSx2ZigyLCJ0Yi10cnVuY2F0ZWQtcGF0aCIsMiksQ2YoMywic3BhbiIsMyksQ2YoNCwiYnV0dG9uIiw0KSxSZigiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25QaW5DbGlja2VkLmVtaXQoIW4uaXNQaW5uZWQpfSkpLHZmKDUsIm1hdC1pY29uIiw1KSxNZigpLENmKDYsImJ1dHRvbiIsNiksUmYoImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uQWN0dWFsU2l6ZVRvZ2dsZS5lbWl0KCl9KSksdmYoNywibWF0LWljb24iLDcpLE1mKCksTWYoKSxNZigpLENmKDgsImRpdiIsMSksQ2YoOSwic3BhbiIsOCksdmYoMTAsInNwYW4iLDkpLHZmKDExLCJjYXJkLXJ1bi1uYW1lIiwxMCksTWYoKSxDZigxMiwiZGl2IiwxMSksSG0oMTMsRzQsMywzLCJzcGFuIiwxMiksSG0oMTQsWTQsNCw2LCJzcGFuIiwxMyksSG0oMTUscTQsMSwwLCJtYXQtc3Bpbm5lciIsMTQpLE1mKCksTWYoKSxNZigpLEhtKDE2LFg0LDUsMTEsIm5nLWNvbnRhaW5lciIsMTUpLEhtKDE3LEo0LDEsMSwibmctdGVtcGxhdGUiLG51bGwsMTYscXkpKSwyJmUpe2NvbnN0IHQ9Rm0oMTgpO0RjKDIpLExmKCJ0aXRsZSIsbi50YWcpLExmKCJ2YWx1ZSIsbi50aXRsZSksRGMoMikseW0oInRpdGxlIixuLmlzUGlubmVkPyJVbnBpbiBjYXJkIjoiUGluIGNhcmQiKSxEYygxKSxiZigic3ZnSWNvbiIsbi5pc1Bpbm5lZD8ia2VlcF8yNHB4Ijoia2VlcF9vdXRsaW5lXzI0cHgiKSxEYygxKSxiZigiZGlzYWJsZWQiLCFuLmFsbG93VG9nZ2xlQWN0dWFsU2l6ZSksRGMoNCksYmYoIm5nU3R5bGUiLGl5KDEyLFE0LG4ucnVuQ29sb3JTY2FsZShuLnJ1bklkKSkpLERjKDEpLGJmKCJydW5JZCIsbi5ydW5JZCksRGMoMiksYmYoIm5nSWYiLG51bGwhPT1uLnN0ZXBJbmRleCYmbi5zdGVwSW5kZXg8bi5zdGVwVmFsdWVzLmxlbmd0aCksRGMoMSksYmYoIm5nSWYiLG4ubnVtU2FtcGxlPjEpLERjKDEpLGJmKCJuZ0lmIixuLmxvYWRTdGF0ZT09PW4uRGF0YUxvYWRTdGF0ZS5MT0FESU5HKSxEYygxKSxiZigibmdJZiIsbnVsbCE9PW4uc3RlcEluZGV4JiZuLnN0ZXBJbmRleDxuLnN0ZXBWYWx1ZXMubGVuZ3RoKSgibmdJZkVsc2UiLHQpfX0sZGlyZWN0aXZlczpbTDQsTkwsTXEsenYsVzQsUHYsYTIsd0pdLHBpcGVzOlskdl0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6MTAwJTtvdmVyZmxvdzphdXRvO3BhZGRpbmc6MTZweDtwYWRkaW5nLXRvcDo0cHh9LmFjdHVhbC1zaXplW19uZ2hvc3QtJUNPTVAlXXtoZWlnaHQ6YXV0b30uaGVhZGluZ1tfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2ZvbnQtc2l6ZToxNHB4O21hcmdpbi1ib3R0b206NHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgbWF4LWNvbnRlbnR9Lm1ldGFkYXRhW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjVweDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7bWF4LXdpZHRoOjE3NXB4O3RleHQtYWxpZ246ZW5kfS50YWdbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbn0ucGluLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICBtYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjE4cHh9LnJ1bltfbmdjb250ZW50LSVDT01QJV17YWxpZ24tc2VsZjpiYXNlbGluZTtkaXNwbGF5OmZsZXg7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcH0ucnVuW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kb3RbX25nY29udGVudC0lQ09NUCVde2ZsZXg6bm9uZTtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxM3B4O2hlaWdodDoxM3B4O2JvcmRlci1yYWRpdXM6NTAlO21hcmdpbi1yaWdodDo0cHh9LnJ1bltfbmdjb250ZW50LSVDT01QJV0gICAucnVuLXRleHRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO21heC13aWR0aDoxMjBweH0ucnVuW19uZ2NvbnRlbnQtJUNPTVAlXSwgLnNhbXBsZVtfbmdjb250ZW50LSVDT01QJV0sIC5zdGVwW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxO2ZvbnQtc2l6ZToxM3B4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5ydW5bX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAucnVuW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuc2FtcGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnNhbXBsZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLnN0ZXBbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuc3RlcFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9LmNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxO3doaXRlLXNwYWNlOm5vd3JhcDtqdXN0aWZ5LXNlbGY6ZmxleC1lbmQ7ZmxleC1zaHJpbms6MDttYXJnaW4tcmlnaHQ6LTEycHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0uaW1nLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17ZmxleDoxIDEgMDtvdmVyZmxvdy15OmF1dG87cG9zaXRpb246cmVsYXRpdmV9LmltZy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgaW1nW19uZ2NvbnRlbnQtJUNPTVAlXXtpbWFnZS1yZW5kZXJpbmc6LW1vei1jcmlzcC1lZGdlcztpbWFnZS1yZW5kZXJpbmc6cGl4ZWxhdGVkfS5hY3R1YWwtc2l6ZVtfbmdob3N0LSVDT01QJV0gICAuaW1nLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6YXV0bztmbGV4Om5vbmV9W19uZ2hvc3QtJUNPTVAlXTpub3QoLmFjdHVhbC1zaXplKSAgIGltZ1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7bWF4LWhlaWdodDoxMDAlO21heC13aWR0aDoxMDAlO3dpZHRoOmF1dG87aGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb250YWlufS5zbGlkZXItcm93W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2hlaWdodDoyNHB4fS5zdGVwLXNsaWRlcltfbmdjb250ZW50LSVDT01QJV17ZmxleDoxfVtfbmdob3N0LSVDT01QJV0gICAgIC5tYXQtc2xpZGVyLW1pbi12YWx1ZSAubWF0LXNsaWRlci10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDB9LmVtcHR5LW1lc3NhZ2VbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MWVtO2ZvbnQtc2l6ZToxM3B4fSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYigkNCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJpbWFnZS1jYXJkLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6ImltYWdlX2NhcmRfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbImltYWdlX2NhcmRfY29tcG9uZW50LmNzcyJdLGhvc3Q6eyJbY2xhc3MuYWN0dWFsLXNpemVdIjoic2hvd0FjdHVhbFNpemUifSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSxudWxsLHtsb2FkU3RhdGU6W3t0eXBlOlJffV0sdGl0bGU6W3t0eXBlOlJffV0sdGFnOlt7dHlwZTpSX31dLHJ1bklkOlt7dHlwZTpSX31dLHNhbXBsZTpbe3R5cGU6Ul99XSxudW1TYW1wbGU6W3t0eXBlOlJffV0saW1hZ2VVcmw6W3t0eXBlOlJffV0sc3RlcEluZGV4Olt7dHlwZTpSX31dLHN0ZXBWYWx1ZXM6W3t0eXBlOlJffV0sYnJpZ2h0bmVzc0luTWlsbGk6W3t0eXBlOlJffV0sY29udHJhc3RJbk1pbGxpOlt7dHlwZTpSX31dLHNob3dBY3R1YWxTaXplOlt7dHlwZTpSX31dLHJ1bkNvbG9yU2NhbGU6W3t0eXBlOlJffV0sYWxsb3dUb2dnbGVBY3R1YWxTaXplOlt7dHlwZTpSX31dLGlzUGlubmVkOlt7dHlwZTpSX31dLG9uQWN0dWFsU2l6ZVRvZ2dsZTpbe3R5cGU6RV99XSxzdGVwSW5kZXhDaGFuZ2U6W3t0eXBlOkVffV0sb25QaW5DbGlja2VkOlt7dHlwZTpFX31dfSk7Y2xhc3MgdDZ7Y29uc3RydWN0b3IodCxlKXt0aGlzLnN0b3JlPXQsdGhpcy5kYXRhU291cmNlPWUsdGhpcy5mdWxsV2lkdGhDaGFuZ2VkPW5ldyBTeSx0aGlzLnBpblN0YXRlQ2hhbmdlZD1uZXcgU3ksdGhpcy5icmlnaHRuZXNzSW5NaWxsaSQ9dGhpcy5zdG9yZS5zZWxlY3QodnopLHRoaXMuY29udHJhc3RJbk1pbGxpJD10aGlzLnN0b3JlLnNlbGVjdCh4eiksdGhpcy5hY3R1YWxTaXplR2xvYmFsU2V0dGluZyQ9dGhpcy5zdG9yZS5zZWxlY3QoT3opLHRoaXMuc2hvd0FjdHVhbFNpemU9ITEsdGhpcy5hY3R1YWxTaXplVWlUb2dnbGVkPSExLHRoaXMuYWN0dWFsU2l6ZVVpVG9nZ2xlU3ViamVjdD1uZXcgaih0aGlzLmFjdHVhbFNpemVVaVRvZ2dsZWQpLHRoaXMubmdVbnN1YnNjcmliZT1uZXcgQn1vblN0ZXBJbmRleENoYW5nZWQodCl7dGhpcy5zdG9yZS5kaXNwYXRjaChBQSh7Y2FyZElkOnRoaXMuY2FyZElkLHN0ZXBJbmRleDp0fSkpfWlzSW1hZ2VDYXJkTWV0YWRhdGEodCl7Y29uc3R7cGx1Z2luOmV9PXQ7cmV0dXJuIGU9PT1LVC5JTUFHRVN9b25BY3R1YWxTaXplVG9nZ2xlKCl7dGhpcy5hY3R1YWxTaXplVWlUb2dnbGVkPSF0aGlzLmFjdHVhbFNpemVVaVRvZ2dsZWQsdGhpcy5hY3R1YWxTaXplVWlUb2dnbGVTdWJqZWN0Lm5leHQodGhpcy5hY3R1YWxTaXplVWlUb2dnbGVkKX1uZ09uSW5pdCgpe0t0KFt0aGlzLmFjdHVhbFNpemVHbG9iYWxTZXR0aW5nJCx0aGlzLmFjdHVhbFNpemVVaVRvZ2dsZVN1YmplY3RdKS5waXBlKGplKHRoaXMubmdVbnN1YnNjcmliZSksV2UoKChbdCxlXSk9Pnt0aGlzLnNob3dBY3R1YWxTaXplPXR8fGUsdGhpcy5mdWxsV2lkdGhDaGFuZ2VkLmVtaXQodGhpcy5zaG93QWN0dWFsU2l6ZSl9KSkpLnN1YnNjcmliZSgoKCk9Pnt9KSk7Y29uc3QgdD10aGlzLnN0b3JlLnNlbGVjdChueix0aGlzLmNhcmRJZCkucGlwZShqZSh0aGlzLm5nVW5zdWJzY3JpYmUpLHVlKCh0PT4hIXQmJnRoaXMuaXNJbWFnZUNhcmRNZXRhZGF0YSh0KSkpLFZ0KCh0PT50KSksRmUoMSkpLGU9S3QoW3QsdGhpcy5zdG9yZS5zZWxlY3QodHosdGhpcy5jYXJkSWQpXSkucGlwZShqZSh0aGlzLm5nVW5zdWJzY3JpYmUpLFZ0KCgoW3QsZV0pPT57Y29uc3Qgbj10LnJ1bklkO3JldHVybiBlJiZlLmhhc093blByb3BlcnR5KG4pP2Vbbl06W119KSksd2UoKCh0LGUpPT50Lmxlbmd0aD09PWUubGVuZ3RoJiYwPT09dC5sZW5ndGh8fHQ9PT1lKSksRmUoMSkpO3RoaXMuc3RlcEluZGV4JD10aGlzLnN0b3JlLnNlbGVjdChyeix0aGlzLmNhcmRJZCksdGhpcy5sb2FkU3RhdGUkPXRoaXMuc3RvcmUuc2VsZWN0KCROLHRoaXMuY2FyZElkKTtjb25zdCBuPUt0KFtlLHRoaXMuc3RlcEluZGV4JF0pLnBpcGUoVnQoKChbdCxlXSk9Pm51bGwhPT1lJiZ0W2VdP3RbZV06bnVsbCkpKTt0aGlzLnRhZyQ9dC5waXBlKFZ0KCh0PT50LnRhZykpKSx0aGlzLnRpdGxlJD10aGlzLnRhZyQucGlwZShWdCgodD0+SDQodCx0aGlzLmdyb3VwTmFtZSkpKSksdGhpcy5ydW5JZCQ9dC5waXBlKFZ0KCh0PT50LnJ1bklkKSkpLHRoaXMuc2FtcGxlJD10LnBpcGUoVnQoKHQ9PnQuc2FtcGxlKSkpLHRoaXMubnVtU2FtcGxlJD10LnBpcGUoVnQoKHQ9PnQubnVtU2FtcGxlKSkpLHRoaXMuaW1hZ2VVcmwkPW4ucGlwZShWdCgodD0+dD90aGlzLmRhdGFTb3VyY2UuaW1hZ2VVcmwodC5pbWFnZUlkKTpudWxsKSkpLHRoaXMuc3RlcFZhbHVlcyQ9ZS5waXBlKFZ0KCh0PT50Lm1hcCgodD0+dC5zdGVwKSkpKSksdGhpcy5pc1Bpbm5lZCQ9dGhpcy5zdG9yZS5zZWxlY3QoZHosdGhpcy5jYXJkSWQpfW5nT25EZXN0cm95KCl7dGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKSx0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKX19dmFyIGU2LG42LG82O2Z1bmN0aW9uIGk2KHQsZSl7MSZ0JiYoQ2YoMCwic3BhbiIpLFB1KDEsInNjYWxhciIpLE1mKCkpfWZ1bmN0aW9uIGE2KHQsZSl7MSZ0JiYoQ2YoMCwic3BhbiIpLFB1KDEsImhpc3RvZ3JhbSIpLE1mKCkpfWZ1bmN0aW9uIHI2KHQsZSl7MSZ0JiYoQ2YoMCwic3BhbiIpLFB1KDEsInVua25vd24iKSxNZigpKX1mdW5jdGlvbiBzNih0LGUpe2lmKDEmdCYmKHhmKDAsMTMpLEhtKDEsaTYsMiwwLCJzcGFuIiwxNCksSG0oMixhNiwyLDAsInNwYW4iLDE0KSxIbSgzLHI2LDIsMCwic3BhbiIsMTUpLE9mKCkpLDImdCl7Y29uc3QgdD16ZigyKTtiZigibmdTd2l0Y2giLHQuY2FyZE1ldGFkYXRhLnBsdWdpbiksRGMoMSksYmYoIm5nU3dpdGNoQ2FzZSIsdC5QbHVnaW5UeXBlLlNDQUxBUlMpLERjKDEpLGJmKCJuZ1N3aXRjaENhc2UiLHQuUGx1Z2luVHlwZS5ISVNUT0dSQU1TKX19ZnVuY3Rpb24gbDYodCxlKXsxJnQmJlBmKDApfWZ1bmN0aW9uIGM2KHQsZSl7aWYoMSZ0JiYoQ2YoMCwib3B0aW9uIiwxNiksUHUoMSksTWYoKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0O2JmKCJ2YWx1ZSIsdC5pZCksRGMoMSksd3UodC5uYW1lKX19ZnVuY3Rpb24gZDYodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTt4ZigwKSxDZigxLCJoMiIpLEhtKDIsczYsNCwzLCJuZy10ZW1wbGF0ZSIsbnVsbCwyLHF5KSxDZig0LCJzcGFuIiksUHUoNSwiRG93bmxvYWTCoCIpLE1mKCksSG0oNixsNiwxLDAsIm5nLWNvbnRhaW5lciIsMyksQ2YoNywic3BhbiIpLFB1KDgsIsKgZGF0YSBmb3LCoCIpLE1mKCksQ2YoOSwiY29kZSIsNCksUHUoMTApLE1mKCksTWYoKSxDZigxMSwibWF0LWRpYWxvZy1jb250ZW50IiksQ2YoMTIsIm1hdC1mb3JtLWZpZWxkIiw1KSxDZigxMywibWF0LWxhYmVsIiksUHUoMTQsIlNlbGVjdCBhIHJ1biB0byBkb3dubG9hZCBhIGRhdGEgZm9yIGEgc2VyaWVzIiksTWYoKSxDZigxNSwic2VsZWN0Iiw2KSxSZigiY2hhbmdlIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtyZXR1cm4gemYoKS5ydW5TZWxlY3RlZC5lbWl0KG4udGFyZ2V0LnZhbHVlKX0pKSxDZigxNiwib3B0aW9uIiw3KSxQdSgxNywiLSIpLE1mKCksSG0oMTgsYzYsMiwyLCJvcHRpb24iLDgpLE1mKCksTWYoKSxDZigxOSwiZGl2Iiw5KSxDZigyMCwic3BhbiIpLFB1KDIxLCJEb3dubG9hZCBhc+KApiIpLE1mKCksUHUoMjIsIsKgIiksQ2YoMjMsImEiLDEwKSxQdSgyNCwiSlNPTiIpLE1mKCksQ2YoMjUsImEiLDEwKSxQdSgyNiwiQ1NWIiksTWYoKSxNZigpLE1mKCksQ2YoMjcsIm1hdC1kaWFsb2ctYWN0aW9ucyIsMTEpLENmKDI4LCJidXR0b24iLDEyKSxQdSgyOSwiQ2xvc2UiKSxNZigpLE1mKCksT2YoKX1pZigyJnQpe2NvbnN0IHQ9Rm0oMyksZT16ZigpO0RjKDYpLGJmKCJuZ1RlbXBsYXRlT3V0bGV0Iix0KSxEYygzKSxiZigidGl0bGUiLGUuY2FyZE1ldGFkYXRhLnRhZyksRGMoMSksd3UoZS5jYXJkTWV0YWRhdGEudGFnKSxEYyg1KSxiZigidmFsdWUiLGUuc2VsZWN0ZWRSdW5JZHx8IiIpLERjKDEpLGJmKCJ2YWx1ZSIsIiIpLERjKDIpLGJmKCJuZ0Zvck9mIixlLnJ1bnMpLERjKDUpLGJmKCJkaXNhYmxlZCIsIWUuZG93bmxvYWRVcmxKc29uKSgiZG93bmxvYWQiLGUuZ2V0RG93bmxvYWROYW1lKCJqc29uIikpLHltKCJocmVmIixlLmRvd25sb2FkVXJsSnNvbixYcyksRGMoMiksYmYoImRpc2FibGVkIiwhZS5kb3dubG9hZFVybENzdikoImRvd25sb2FkIixlLmdldERvd25sb2FkTmFtZSgiY3N2IikpLHltKCJocmVmIixlLmRvd25sb2FkVXJsQ3N2LFhzKX19ZnVuY3Rpb24gcDYodCxlKXsxJnQmJlB1KDAsIkxvYWRpbmcuLi4iKX10Ni7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dDYpKGdmKGlTKSxnZihhTikpfSx0Ni7JtWNtcD1zbyh7dHlwZTp0NixzZWxlY3RvcnM6W1siaW1hZ2UtY2FyZCJdXSxpbnB1dHM6e2NhcmRJZDoiY2FyZElkIixncm91cE5hbWU6Imdyb3VwTmFtZSIscnVuQ29sb3JTY2FsZToicnVuQ29sb3JTY2FsZSJ9LG91dHB1dHM6e2Z1bGxXaWR0aENoYW5nZWQ6ImZ1bGxXaWR0aENoYW5nZWQiLHBpblN0YXRlQ2hhbmdlZDoicGluU3RhdGVDaGFuZ2VkIn0sZGVjbHM6MTQsdmFyczo0MSxjb25zdHM6W1szLCJsb2FkU3RhdGUiLCJ0aXRsZSIsInRhZyIsInJ1bklkIiwic2FtcGxlIiwibnVtU2FtcGxlIiwiaW1hZ2VVcmwiLCJzdGVwSW5kZXgiLCJzdGVwVmFsdWVzIiwiYnJpZ2h0bmVzc0luTWlsbGkiLCJjb250cmFzdEluTWlsbGkiLCJydW5Db2xvclNjYWxlIiwic2hvd0FjdHVhbFNpemUiLCJhbGxvd1RvZ2dsZUFjdHVhbFNpemUiLCJpc1Bpbm5lZCIsInN0ZXBJbmRleENoYW5nZSIsIm9uQWN0dWFsU2l6ZVRvZ2dsZSIsIm9uUGluQ2xpY2tlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwiaW1hZ2UtY2FyZC1jb21wb25lbnQiLDApLFJmKCJzdGVwSW5kZXhDaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uU3RlcEluZGV4Q2hhbmdlZChlKX0pKSgib25BY3R1YWxTaXplVG9nZ2xlIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uQWN0dWFsU2l6ZVRvZ2dsZSgpfSkpKCJvblBpbkNsaWNrZWQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLnBpblN0YXRlQ2hhbmdlZC5lbWl0KGUpfSkpLF95KDEsImFzeW5jIiksX3koMiwiYXN5bmMiKSxfeSgzLCJhc3luYyIpLF95KDQsImFzeW5jIiksX3koNSwiYXN5bmMiKSxfeSg2LCJhc3luYyIpLF95KDcsImFzeW5jIiksX3koOCwiYXN5bmMiKSxfeSg5LCJhc3luYyIpLF95KDEwLCJhc3luYyIpLF95KDExLCJhc3luYyIpLF95KDEyLCJhc3luYyIpLF95KDEzLCJhc3luYyIpLE1mKCkpLDImZSYmYmYoImxvYWRTdGF0ZSIsQ3koMSwxNSxuLmxvYWRTdGF0ZSQpKSgidGl0bGUiLEN5KDIsMTcsbi50aXRsZSQpKSgidGFnIixDeSgzLDE5LG4udGFnJCkpKCJydW5JZCIsQ3koNCwyMSxuLnJ1bklkJCkpKCJzYW1wbGUiLEN5KDUsMjMsbi5zYW1wbGUkKSkoIm51bVNhbXBsZSIsQ3koNiwyNSxuLm51bVNhbXBsZSQpKSgiaW1hZ2VVcmwiLEN5KDcsMjcsbi5pbWFnZVVybCQpKSgic3RlcEluZGV4IixDeSg4LDI5LG4uc3RlcEluZGV4JCkpKCJzdGVwVmFsdWVzIixDeSg5LDMxLG4uc3RlcFZhbHVlcyQpKSgiYnJpZ2h0bmVzc0luTWlsbGkiLEN5KDEwLDMzLG4uYnJpZ2h0bmVzc0luTWlsbGkkKSkoImNvbnRyYXN0SW5NaWxsaSIsQ3koMTEsMzUsbi5jb250cmFzdEluTWlsbGkkKSkoInJ1bkNvbG9yU2NhbGUiLG4ucnVuQ29sb3JTY2FsZSkoInNob3dBY3R1YWxTaXplIixuLnNob3dBY3R1YWxTaXplKSgiYWxsb3dUb2dnbGVBY3R1YWxTaXplIiwhMT09PUN5KDEyLDM3LG4uYWN0dWFsU2l6ZUdsb2JhbFNldHRpbmckKSkoImlzUGlubmVkIixDeSgxMywzOSxuLmlzUGlubmVkJCkpfSxkaXJlY3RpdmVzOlskNF0scGlwZXM6W1Z2XSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHQ2LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6ImltYWdlLWNhcmQiLHRlbXBsYXRlOidcbiAgICA8aW1hZ2UtY2FyZC1jb21wb25lbnRcbiAgICAgIFtsb2FkU3RhdGVdPSJsb2FkU3RhdGUkIHwgYXN5bmMiXG4gICAgICBbdGl0bGVdPSJ0aXRsZSQgfCBhc3luYyJcbiAgICAgIFt0YWddPSJ0YWckIHwgYXN5bmMiXG4gICAgICBbcnVuSWRdPSJydW5JZCQgfCBhc3luYyJcbiAgICAgIFtzYW1wbGVdPSJzYW1wbGUkIHwgYXN5bmMiXG4gICAgICBbbnVtU2FtcGxlXT0ibnVtU2FtcGxlJCB8IGFzeW5jIlxuICAgICAgW2ltYWdlVXJsXT0iaW1hZ2VVcmwkIHwgYXN5bmMiXG4gICAgICBbc3RlcEluZGV4XT0ic3RlcEluZGV4JCB8IGFzeW5jIlxuICAgICAgW3N0ZXBWYWx1ZXNdPSJzdGVwVmFsdWVzJCB8IGFzeW5jIlxuICAgICAgKHN0ZXBJbmRleENoYW5nZSk9Im9uU3RlcEluZGV4Q2hhbmdlZCgkZXZlbnQpIlxuICAgICAgW2JyaWdodG5lc3NJbk1pbGxpXT0iYnJpZ2h0bmVzc0luTWlsbGkkIHwgYXN5bmMiXG4gICAgICBbY29udHJhc3RJbk1pbGxpXT0iY29udHJhc3RJbk1pbGxpJCB8IGFzeW5jIlxuICAgICAgW3J1bkNvbG9yU2NhbGVdPSJydW5Db2xvclNjYWxlIlxuICAgICAgW3Nob3dBY3R1YWxTaXplXT0ic2hvd0FjdHVhbFNpemUiXG4gICAgICBbYWxsb3dUb2dnbGVBY3R1YWxTaXplXT0iKGFjdHVhbFNpemVHbG9iYWxTZXR0aW5nJCB8IGFzeW5jKSA9PT0gZmFsc2UiXG4gICAgICBbaXNQaW5uZWRdPSJpc1Bpbm5lZCQgfCBhc3luYyJcbiAgICAgIChvbkFjdHVhbFNpemVUb2dnbGUpPSJvbkFjdHVhbFNpemVUb2dnbGUoKSJcbiAgICAgIChvblBpbkNsaWNrZWQpPSJwaW5TdGF0ZUNoYW5nZWQuZW1pdCgkZXZlbnQpIlxuICAgID48L2ltYWdlLWNhcmQtY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU30se3R5cGU6YU59XX0pLHtjYXJkSWQ6W3t0eXBlOlJffV0sZ3JvdXBOYW1lOlt7dHlwZTpSX31dLHJ1bkNvbG9yU2NhbGU6W3t0eXBlOlJffV0sZnVsbFdpZHRoQ2hhbmdlZDpbe3R5cGU6RV99XSxwaW5TdGF0ZUNoYW5nZWQ6W3t0eXBlOkVffV19KSwoZnVuY3Rpb24odCl7dFt0LlNWRz0wXT0iU1ZHIix0W3QuV0VCR0w9MV09IldFQkdMIn0pKGU2fHwoZTY9e30pKSwoZnVuY3Rpb24odCl7dFt0LkxJTkVBUj0wXT0iTElORUFSIix0W3QuTE9HMTA9MV09IkxPRzEwIix0W3QuVElNRT0yXT0iVElNRSJ9KShuNnx8KG42PXt9KSk7Y2xhc3MgbTZ7Y29uc3RydWN0b3IoKXt0aGlzLnJ1blNlbGVjdGVkPW5ldyBTeSx0aGlzLlBsdWdpblR5cGU9S1R9Z2V0RG93bmxvYWROYW1lKHQpe2NvbnN0IGU9dGhpcy5ydW5zLmZpbmQoKHQ9PnQuaWQ9PT10aGlzLnNlbGVjdGVkUnVuSWQpKTtyZXR1cm4gZT9gJHtlLm5hbWV9LiR7dH1gOiIifX1tNi7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bTYpfSxtNi7JtWNtcD1zbyh7dHlwZTptNixzZWxlY3RvcnM6W1siZGF0YV9kb3dubG9hZF9kaWFsb2dfY29tcG9uZW50Il1dLGlucHV0czp7Y2FyZE1ldGFkYXRhOiJjYXJkTWV0YWRhdGEiLHJ1bnM6InJ1bnMiLHNlbGVjdGVkUnVuSWQ6InNlbGVjdGVkUnVuSWQiLGRvd25sb2FkVXJsQ3N2OiJkb3dubG9hZFVybENzdiIsZG93bmxvYWRVcmxKc29uOiJkb3dubG9hZFVybEpzb24ifSxvdXRwdXRzOntydW5TZWxlY3RlZDoicnVuU2VsZWN0ZWQifSxkZWNsczozLHZhcnM6Mixjb25zdHM6W1s0LCJuZ0lmIiwibmdJZkVsc2UiXSxbIm5vQ2FyZE1ldGFkYXRhIiwiIl0sWyJkYXRhTmFtZSIsIiJdLFs0LCJuZ1RlbXBsYXRlT3V0bGV0Il0sWzEsInRhZy1uYW1lIiwzLCJ0aXRsZSJdLFsiYXBwZWFyYW5jZSIsImZpbGwiLDEsInJ1bi1zZWxlY3RvciJdLFsibWF0TmF0aXZlQ29udHJvbCIsIiIsIm5hbWUiLCJydW4iLCJjZGtGb2N1c0luaXRpYWwiLCIiLCJyZXF1aXJlZCIsIiIsMywidmFsdWUiLCJjaGFuZ2UiXSxbInNlbGVjdGVkIiwiIiwzLCJ2YWx1ZSJdLFszLCJ2YWx1ZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImRvd25sb2FkLWNvbnRyb2xzIl0sWyJtYXQtc3Ryb2tlZC1idXR0b24iLCIiLDMsImRpc2FibGVkIiwiZG93bmxvYWQiXSxbImFsaWduIiwiZW5kIl0sWyJtYXQtYnV0dG9uIiwiIiwibWF0LWRpYWxvZy1jbG9zZSIsIiJdLFszLCJuZ1N3aXRjaCJdLFs0LCJuZ1N3aXRjaENhc2UiXSxbNCwiTmdTd2l0Y2hEZWZhdWx0Il0sWzMsInZhbHVlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihIbSgwLGQ2LDMwLDEyLCJuZy1jb250YWluZXIiLDApLEhtKDEscDYsMSwwLCJuZy10ZW1wbGF0ZSIsbnVsbCwxLHF5KSksMiZlKXtjb25zdCB0PUZtKDIpO2JmKCJuZ0lmIixuLmNhcmRNZXRhZGF0YSkoIm5nSWZFbHNlIix0KX19LGRpcmVjdGl2ZXM6W1B2LEl2LCRZLF9VLGNVLEFaLGtHLEVHLHh2LHpMLHRxLE5MLEpZLER2LFJ2XSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1oMltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEuMjVlbTtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmR9LnJ1bi1zZWxlY3Rvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOi45ZW07d2lkdGg6MTAwJX0uZG93bmxvYWQtY29udHJvbHNbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTouOWVtfS5kb3dubG9hZC1jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV0gICBhW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46M3B4IDEwcHggM3B4IDB9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKG02LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6ImRhdGFfZG93bmxvYWRfZGlhbG9nX2NvbXBvbmVudCIsdGVtcGxhdGVVcmw6ImRhdGFfZG93bmxvYWRfZGlhbG9nX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyJkYXRhX2Rvd25sb2FkX2RpYWxvZ19jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sbnVsbCx7Y2FyZE1ldGFkYXRhOlt7dHlwZTpSX31dLHJ1bnM6W3t0eXBlOlJffV0sc2VsZWN0ZWRSdW5JZDpbe3R5cGU6Ul99XSxkb3dubG9hZFVybENzdjpbe3R5cGU6Ul99XSxkb3dubG9hZFVybEpzb246W3t0eXBlOlJffV0scnVuU2VsZWN0ZWQ6W3t0eXBlOkVffV19KTtjbGFzcyBmNntjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5zZWxlY3RlZFJ1bklkJD1uZXcgaihudWxsKSx0aGlzLmNhcmRNZXRhZGF0YSQ9dC5zZWxlY3Qobnosbi5jYXJkSWQpLnBpcGUodWUoKHQ9PkJvb2xlYW4odCkpKSksdGhpcy5kb3dubG9hZFVybENzdiQ9S3QoW3Quc2VsZWN0KG56LG4uY2FyZElkKSx0aGlzLnNlbGVjdGVkUnVuSWQkXSkucGlwZShWdCgoKFt0LG5dKT0+dCYmbj9lLmRvd25sb2FkVXJsKHQucGx1Z2luLHQudGFnLG4sImNzdiIpOm51bGwpKSxCZShudWxsKSksdGhpcy5kb3dubG9hZFVybEpzb24kPUt0KFt0LnNlbGVjdChueixuLmNhcmRJZCksdGhpcy5zZWxlY3RlZFJ1bklkJF0pLnBpcGUoVnQoKChbdCxuXSk9PnQmJm4/ZS5kb3dubG9hZFVybCh0LnBsdWdpbix0LnRhZyxuLCJqc29uIik6bnVsbCkpLEJlKG51bGwpKSx0aGlzLnJ1bnMkPUt0KFt0LnNlbGVjdChYeiksdC5zZWxlY3QodHosbi5jYXJkSWQpXSkucGlwZShWdCgoKFt0LGVdKT0+ZT9PYmplY3Qua2V5cyhlKS5tYXAoKGU9PnQuZ2V0KGUpKSkuZmlsdGVyKEJvb2xlYW4pOltdKSkpfX1mdW5jdGlvbiB1Nih0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6dD49ZT8wOk5hTn1mdW5jdGlvbiBnNih0KXtyZXR1cm4gMT09PXQubGVuZ3RoJiYodD0oZnVuY3Rpb24gZSh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm4gdTYodChlKSxuKX19KSh0KSkse2xlZnQ6ZnVuY3Rpb24oZSxuLG8saSl7Zm9yKG51bGw9PW8mJihvPTApLG51bGw9PWkmJihpPWUubGVuZ3RoKTtvPGk7KXt2YXIgYT1vK2k+Pj4xO3QoZVthXSxuKTwwP289YSsxOmk9YX1yZXR1cm4gb30scmlnaHQ6ZnVuY3Rpb24oZSxuLG8saSl7Zm9yKG51bGw9PW8mJihvPTApLG51bGw9PWkmJihpPWUubGVuZ3RoKTtvPGk7KXt2YXIgYT1vK2k+Pj4xO3QoZVthXSxuKT4wP2k9YTpvPWErMX1yZXR1cm4gb319fWY2Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxmNikoZ2YoaVMpLGdmKGFOKSxnZihVWSkpfSxmNi7JtWNtcD1zbyh7dHlwZTpmNixzZWxlY3RvcnM6W1siZGF0YV9kb3dubG9hZF9kaWFsb2ciXV0sZGVjbHM6Nix2YXJzOjE1LGNvbnN0czpbWzMsImNhcmRNZXRhZGF0YSIsInJ1bnMiLCJzZWxlY3RlZFJ1bklkIiwiZG93bmxvYWRVcmxDc3YiLCJkb3dubG9hZFVybEpzb24iLCJydW5TZWxlY3RlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwiZGF0YV9kb3dubG9hZF9kaWFsb2dfY29tcG9uZW50IiwwKSxSZigicnVuU2VsZWN0ZWQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLnNlbGVjdGVkUnVuSWQkLm5leHQoZSl9KSksX3koMSwiYXN5bmMiKSxfeSgyLCJhc3luYyIpLF95KDMsImFzeW5jIiksX3koNCwiYXN5bmMiKSxfeSg1LCJhc3luYyIpLE1mKCkpLDImZSYmYmYoImNhcmRNZXRhZGF0YSIsQ3koMSw1LG4uY2FyZE1ldGFkYXRhJCkpKCJydW5zIixDeSgyLDcsbi5ydW5zJCkpKCJzZWxlY3RlZFJ1bklkIixDeSgzLDksbi5zZWxlY3RlZFJ1bklkJCkpKCJkb3dubG9hZFVybENzdiIsQ3koNCwxMSxuLmRvd25sb2FkVXJsQ3N2JCkpKCJkb3dubG9hZFVybEpzb24iLEN5KDUsMTMsbi5kb3dubG9hZFVybEpzb24kKSl9LGRpcmVjdGl2ZXM6W202XSxwaXBlczpbVnZdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZjYsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoiZGF0YV9kb3dubG9hZF9kaWFsb2ciLHRlbXBsYXRlOic8ZGF0YV9kb3dubG9hZF9kaWFsb2dfY29tcG9uZW50XG4gICAgW2NhcmRNZXRhZGF0YV09ImNhcmRNZXRhZGF0YSQgfCBhc3luYyJcbiAgICBbcnVuc109InJ1bnMkIHwgYXN5bmMiXG4gICAgW3NlbGVjdGVkUnVuSWRdPSJzZWxlY3RlZFJ1bklkJCB8IGFzeW5jIlxuICAgIFtkb3dubG9hZFVybENzdl09ImRvd25sb2FkVXJsQ3N2JCB8IGFzeW5jIlxuICAgIFtkb3dubG9hZFVybEpzb25dPSJkb3dubG9hZFVybEpzb24kIHwgYXN5bmMiXG4gICAgKHJ1blNlbGVjdGVkKT0ic2VsZWN0ZWRSdW5JZCQubmV4dCgkZXZlbnQpIlxuICA+PC9kYXRhX2Rvd25sb2FkX2RpYWxvZ19jb21wb25lbnQ+JyxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aVN9LHt0eXBlOmFOfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbVVldfV19XX0pLG51bGwpLChmdW5jdGlvbih0KXt0W3QuT1JJR0lOQUw9MF09Ik9SSUdJTkFMIix0W3QuREVSSVZFRD0xXT0iREVSSVZFRCJ9KShvNnx8KG82PXt9KSk7dmFyIGg2PWc2KHU2KS5yaWdodDtmdW5jdGlvbiBiNih0LGUpe3ZhciBuLG8saSxhPXQubGVuZ3RoLHI9LTE7aWYobnVsbD09ZSl7Zm9yKDsrK3I8YTspaWYobnVsbCE9KG49dFtyXSkmJm4+PW4pZm9yKG89aT1uOysrcjxhOyludWxsIT0obj10W3JdKSYmKG8+biYmKG89biksaTxuJiYoaT1uKSl9ZWxzZSBmb3IoOysrcjxhOylpZihudWxsIT0obj1lKHRbcl0scix0KSkmJm4+PW4pZm9yKG89aT1uOysrcjxhOyludWxsIT0obj1lKHRbcl0scix0KSkmJihvPm4mJihvPW4pLGk8biYmKGk9bikpO3JldHVybltvLGldfXZhciB5Nj1BcnJheS5wcm90b3R5cGUuc2xpY2U7ZnVuY3Rpb24gXzYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIEM2KHQpe3JldHVybiB0fWZ1bmN0aW9uIE02KHQsZSxuKXt0PSt0LGU9K2Usbj0oaT1hcmd1bWVudHMubGVuZ3RoKTwyPyhlPXQsdD0wLDEpOmk8Mz8xOituO2Zvcih2YXIgbz0tMSxpPTB8TWF0aC5tYXgoMCxNYXRoLmNlaWwoKGUtdCkvbikpLGE9bmV3IEFycmF5KGkpOysrbzxpOylhW29dPXQrbypuO3JldHVybiBhfXZhciB2Nj1NYXRoLnNxcnQoNTApLHg2PU1hdGguc3FydCgxMCksTzY9TWF0aC5zcXJ0KDIpO2Z1bmN0aW9uIFA2KHQsZSxuKXt2YXIgbyxpLGEscixzPS0xO2lmKG49K24sKHQ9K3QpPT09KGU9K2UpJiZuPjApcmV0dXJuW3RdO2lmKChvPWU8dCkmJihpPXQsdD1lLGU9aSksMD09PShyPXc2KHQsZSxuKSl8fCFpc0Zpbml0ZShyKSlyZXR1cm5bXTtpZihyPjApZm9yKHQ9TWF0aC5jZWlsKHQvciksZT1NYXRoLmZsb29yKGUvciksYT1uZXcgQXJyYXkoaT1NYXRoLmNlaWwoZS10KzEpKTsrK3M8aTspYVtzXT0odCtzKSpyO2Vsc2UgZm9yKHQ9TWF0aC5mbG9vcih0KnIpLGU9TWF0aC5jZWlsKGUqciksYT1uZXcgQXJyYXkoaT1NYXRoLmNlaWwodC1lKzEpKTsrK3M8aTspYVtzXT0odC1zKS9yO3JldHVybiBvJiZhLnJldmVyc2UoKSxhfWZ1bmN0aW9uIHc2KHQsZSxuKXt2YXIgbz0oZS10KS9NYXRoLm1heCgwLG4pLGk9TWF0aC5mbG9vcihNYXRoLmxvZyhvKS9NYXRoLkxOMTApLGE9by9NYXRoLnBvdygxMCxpKTtyZXR1cm4gaT49MD8oYT49djY/MTA6YT49eDY/NTphPj1PNj8yOjEpKk1hdGgucG93KDEwLGkpOi1NYXRoLnBvdygxMCwtaSkvKGE+PXY2PzEwOmE+PXg2PzU6YT49TzY/MjoxKX1mdW5jdGlvbiBrNih0LGUsbil7dmFyIG89TWF0aC5hYnMoZS10KS9NYXRoLm1heCgwLG4pLGk9TWF0aC5wb3coMTAsTWF0aC5mbG9vcihNYXRoLmxvZyhvKS9NYXRoLkxOMTApKSxhPW8vaTtyZXR1cm4gYT49djY/aSo9MTA6YT49eDY/aSo9NTphPj1PNiYmKGkqPTIpLGU8dD8taTppfWZ1bmN0aW9uIFM2KHQpe3JldHVybiBNYXRoLmNlaWwoTWF0aC5sb2codC5sZW5ndGgpL01hdGguTE4yKSsxfWZ1bmN0aW9uIEQ2KCl7dmFyIHQ9QzYsZT1iNixuPVM2O2Z1bmN0aW9uIG8obyl7dmFyIGksYSxyPW8ubGVuZ3RoLHM9bmV3IEFycmF5KHIpO2ZvcihpPTA7aTxyOysraSlzW2ldPXQob1tpXSxpLG8pO3ZhciBsPWUocyksYz1sWzBdLGQ9bFsxXSxwPW4ocyxjLGQpO0FycmF5LmlzQXJyYXkocCl8fChwPWs2KGMsZCxwKSxwPU02KE1hdGguY2VpbChjL3ApKnAsZCxwKSk7Zm9yKHZhciBtPXAubGVuZ3RoO3BbMF08PWM7KXAuc2hpZnQoKSwtLW07Zm9yKDtwW20tMV0+ZDspcC5wb3AoKSwtLW07dmFyIGYsdT1uZXcgQXJyYXkobSsxKTtmb3IoaT0wO2k8PW07KytpKShmPXVbaV09W10pLngwPWk+MD9wW2ktMV06YyxmLngxPWk8bT9wW2ldOmQ7Zm9yKGk9MDtpPHI7KytpKWM8PShhPXNbaV0pJiZhPD1kJiZ1W2g2KHAsYSwwLG0pXS5wdXNoKG9baV0pO3JldHVybiB1fXJldHVybiBvLnZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6XzYoZSksbyk6dH0sby5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpfNihbdFswXSx0WzFdXSksbyk6ZX0sby50aHJlc2hvbGRzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6QXJyYXkuaXNBcnJheSh0KT9fNih5Ni5jYWxsKHQpKTpfNih0KSxvKTpufSxvfXZhciBSNj1BcnJheS5wcm90b3R5cGUuc2xpY2U7ZnVuY3Rpb24gRTYodCl7cmV0dXJuIHR9dmFyIEE2PTFlLTY7ZnVuY3Rpb24gVDYodCl7cmV0dXJuInRyYW5zbGF0ZSgiKyh0Ky41KSsiLDApIn1mdW5jdGlvbiBONih0KXtyZXR1cm4idHJhbnNsYXRlKDAsIisodCsuNSkrIikifWZ1bmN0aW9uIHo2KHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4rdChlKX19ZnVuY3Rpb24gSTYodCl7dmFyIGU9TWF0aC5tYXgoMCx0LmJhbmR3aWR0aCgpLTEpLzI7cmV0dXJuIHQucm91bmQoKSYmKGU9TWF0aC5yb3VuZChlKSksZnVuY3Rpb24obil7cmV0dXJuK3QobikrZX19ZnVuY3Rpb24gSDYoKXtyZXR1cm4hdGhpcy5fX2F4aXN9ZnVuY3Rpb24gRjYodCxlKXt2YXIgbj1bXSxvPW51bGwsaT1udWxsLGE9NixyPTYscz0zLGw9MT09PXR8fDQ9PT10Py0xOjEsYz00PT09dHx8Mj09PXQ/IngiOiJ5IixkPTE9PT10fHwzPT09dD9UNjpONjtmdW5jdGlvbiBwKHApe3ZhciBtPW51bGw9PW8/ZS50aWNrcz9lLnRpY2tzLmFwcGx5KGUsbik6ZS5kb21haW4oKTpvLGY9bnVsbD09aT9lLnRpY2tGb3JtYXQ/ZS50aWNrRm9ybWF0LmFwcGx5KGUsbik6RTY6aSx1PU1hdGgubWF4KGEsMCkrcyxnPWUucmFuZ2UoKSxoPStnWzBdKy41LGI9K2dbZy5sZW5ndGgtMV0rLjUseT0oZS5iYW5kd2lkdGg/STY6ejYpKGUuY29weSgpKSxfPXAuc2VsZWN0aW9uP3Auc2VsZWN0aW9uKCk6cCxDPV8uc2VsZWN0QWxsKCIuZG9tYWluIikuZGF0YShbbnVsbF0pLE09Xy5zZWxlY3RBbGwoIi50aWNrIikuZGF0YShtLGUpLm9yZGVyKCksdj1NLmV4aXQoKSx4PU0uZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsInRpY2siKSxPPU0uc2VsZWN0KCJsaW5lIiksUD1NLnNlbGVjdCgidGV4dCIpO0M9Qy5tZXJnZShDLmVudGVyKCkuaW5zZXJ0KCJwYXRoIiwiLnRpY2siKS5hdHRyKCJjbGFzcyIsImRvbWFpbiIpLmF0dHIoInN0cm9rZSIsImN1cnJlbnRDb2xvciIpKSxNPU0ubWVyZ2UoeCksTz1PLm1lcmdlKHguYXBwZW5kKCJsaW5lIikuYXR0cigic3Ryb2tlIiwiY3VycmVudENvbG9yIikuYXR0cihjKyIyIixsKmEpKSxQPVAubWVyZ2UoeC5hcHBlbmQoInRleHQiKS5hdHRyKCJmaWxsIiwiY3VycmVudENvbG9yIikuYXR0cihjLGwqdSkuYXR0cigiZHkiLDE9PT10PyIwZW0iOjM9PT10PyIwLjcxZW0iOiIwLjMyZW0iKSkscCE9PV8mJihDPUMudHJhbnNpdGlvbihwKSxNPU0udHJhbnNpdGlvbihwKSxPPU8udHJhbnNpdGlvbihwKSxQPVAudHJhbnNpdGlvbihwKSx2PXYudHJhbnNpdGlvbihwKS5hdHRyKCJvcGFjaXR5IixBNikuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7cmV0dXJuIGlzRmluaXRlKHQ9eSh0KSk/ZCh0KTp0aGlzLmdldEF0dHJpYnV0ZSgidHJhbnNmb3JtIil9KSkseC5hdHRyKCJvcGFjaXR5IixBNikuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5wYXJlbnROb2RlLl9fYXhpcztyZXR1cm4gZChlJiZpc0Zpbml0ZShlPWUodCkpP2U6eSh0KSl9KSkpLHYucmVtb3ZlKCksQy5hdHRyKCJkIiw0PT09dHx8Mj09dD9yPyJNIitsKnIrIiwiK2grIkgwLjVWIitiKyJIIitsKnI6Ik0wLjUsIitoKyJWIitiOnI/Ik0iK2grIiwiK2wqcisiVjAuNUgiK2IrIlYiK2wqcjoiTSIraCsiLDAuNUgiK2IpLE0uYXR0cigib3BhY2l0eSIsMSkuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7cmV0dXJuIGQoeSh0KSl9KSksTy5hdHRyKGMrIjIiLGwqYSksUC5hdHRyKGMsbCp1KS50ZXh0KGYpLF8uZmlsdGVyKEg2KS5hdHRyKCJmaWxsIiwibm9uZSIpLmF0dHIoImZvbnQtc2l6ZSIsMTApLmF0dHIoImZvbnQtZmFtaWx5Iiwic2Fucy1zZXJpZiIpLmF0dHIoInRleHQtYW5jaG9yIiwyPT09dD8ic3RhcnQiOjQ9PT10PyJlbmQiOiJtaWRkbGUiKSxfLmVhY2goKGZ1bmN0aW9uKCl7dGhpcy5fX2F4aXM9eX0pKX1yZXR1cm4gcC5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LHApOmV9LHAudGlja3M9ZnVuY3Rpb24oKXtyZXR1cm4gbj1SNi5jYWxsKGFyZ3VtZW50cykscH0scC50aWNrQXJndW1lbnRzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPW51bGw9PXQ/W106UjYuY2FsbCh0KSxwKTpuLnNsaWNlKCl9LHAudGlja1ZhbHVlcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1udWxsPT10P251bGw6UjYuY2FsbCh0KSxwKTpvJiZvLnNsaWNlKCl9LHAudGlja0Zvcm1hdD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10LHApOml9LHAudGlja1NpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9cj0rdCxwKTphfSxwLnRpY2tTaXplSW5uZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9K3QscCk6YX0scC50aWNrU2l6ZU91dGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSt0LHApOnJ9LHAudGlja1BhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9K3QscCk6c30scH1mdW5jdGlvbiBMNih0KXtyZXR1cm4gRjYoMix0KX1mdW5jdGlvbiBCNih0KXtyZXR1cm4gRjYoMyx0KX12YXIgVjY9e3ZhbHVlOmZ1bmN0aW9uKCl7fX07ZnVuY3Rpb24gajYoKXtmb3IodmFyIHQsZT0wLG49YXJndW1lbnRzLmxlbmd0aCxvPXt9O2U8bjsrK2Upe2lmKCEodD1hcmd1bWVudHNbZV0rIiIpfHx0IGluIG98fC9bXHMuXS8udGVzdCh0KSl0aHJvdyBuZXcgRXJyb3IoImlsbGVnYWwgdHlwZTogIit0KTtvW3RdPVtdfXJldHVybiBuZXcgVTYobyl9ZnVuY3Rpb24gVTYodCl7dGhpcy5fPXR9ZnVuY3Rpb24gVzYodCxlKXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLykubWFwKChmdW5jdGlvbih0KXt2YXIgbj0iIixvPXQuaW5kZXhPZigiLiIpO2lmKG8+PTAmJihuPXQuc2xpY2UobysxKSx0PXQuc2xpY2UoMCxvKSksdCYmIWUuaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrdCk7cmV0dXJue3R5cGU6dCxuYW1lOm59fSkpfWZ1bmN0aW9uIEc2KHQsZSl7Zm9yKHZhciBuLG89MCxpPXQubGVuZ3RoO288aTsrK28paWYoKG49dFtvXSkubmFtZT09PWUpcmV0dXJuIG4udmFsdWV9ZnVuY3Rpb24gWTYodCxlLG4pe2Zvcih2YXIgbz0wLGk9dC5sZW5ndGg7bzxpOysrbylpZih0W29dLm5hbWU9PT1lKXt0W29dPVY2LHQ9dC5zbGljZSgwLG8pLmNvbmNhdCh0LnNsaWNlKG8rMSkpO2JyZWFrfXJldHVybiBudWxsIT1uJiZ0LnB1c2goe25hbWU6ZSx2YWx1ZTpufSksdH1VNi5wcm90b3R5cGU9ajYucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpVNixvbjpmdW5jdGlvbih0LGUpe3ZhciBuLG89dGhpcy5fLGk9VzYodCsiIixvKSxhPS0xLHI9aS5sZW5ndGg7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtpZihudWxsIT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2s6ICIrZSk7Zm9yKDsrK2E8cjspaWYobj0odD1pW2FdKS50eXBlKW9bbl09WTYob1tuXSx0Lm5hbWUsZSk7ZWxzZSBpZihudWxsPT1lKWZvcihuIGluIG8pb1tuXT1ZNihvW25dLHQubmFtZSxudWxsKTtyZXR1cm4gdGhpc31mb3IoOysrYTxyOylpZigobj0odD1pW2FdKS50eXBlKSYmKG49RzYob1tuXSx0Lm5hbWUpKSlyZXR1cm4gbn0sY29weTpmdW5jdGlvbigpe3ZhciB0PXt9LGU9dGhpcy5fO2Zvcih2YXIgbiBpbiBlKXRbbl09ZVtuXS5zbGljZSgpO3JldHVybiBuZXcgVTYodCl9LGNhbGw6ZnVuY3Rpb24odCxlKXtpZigobj1hcmd1bWVudHMubGVuZ3RoLTIpPjApZm9yKHZhciBuLG8saT1uZXcgQXJyYXkobiksYT0wO2E8bjsrK2EpaVthXT1hcmd1bWVudHNbYSsyXTtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO2ZvcihhPTAsbj0obz10aGlzLl9bdF0pLmxlbmd0aDthPG47KythKW9bYV0udmFsdWUuYXBwbHkoZSxpKX0sYXBwbHk6ZnVuY3Rpb24odCxlLG4pe2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrdCk7Zm9yKHZhciBvPXRoaXMuX1t0XSxpPTAsYT1vLmxlbmd0aDtpPGE7KytpKW9baV0udmFsdWUuYXBwbHkoZSxuKX19O3ZhciBxNj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsWjY9e3N2ZzoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhodG1sOnE2LHhsaW5rOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIix4bWw6Imh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvIn07ZnVuY3Rpb24gWDYodCl7dmFyIGU9dCs9IiIsbj1lLmluZGV4T2YoIjoiKTtyZXR1cm4gbj49MCYmInhtbG5zIiE9PShlPXQuc2xpY2UoMCxuKSkmJih0PXQuc2xpY2UobisxKSksWjYuaGFzT3duUHJvcGVydHkoZSk/e3NwYWNlOlo2W2VdLGxvY2FsOnR9OnR9ZnVuY3Rpb24gSzYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vd25lckRvY3VtZW50LG49dGhpcy5uYW1lc3BhY2VVUkk7cmV0dXJuIG49PT1xNiYmZS5kb2N1bWVudEVsZW1lbnQubmFtZXNwYWNlVVJJPT09cTY/ZS5jcmVhdGVFbGVtZW50KHQpOmUuY3JlYXRlRWxlbWVudE5TKG4sdCl9fWZ1bmN0aW9uIEo2KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIFE2KHQpe3ZhciBlPVg2KHQpO3JldHVybihlLmxvY2FsP0o2Oks2KShlKX1mdW5jdGlvbiAkNigpe31mdW5jdGlvbiB0Nyh0KXtyZXR1cm4gbnVsbD09dD8kNjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3IodCl9fWZ1bmN0aW9uIGU3KCl7cmV0dXJuW119ZnVuY3Rpb24gbjcodCl7cmV0dXJuIG51bGw9PXQ/ZTc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsKHQpfX1mdW5jdGlvbiBvNyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXRjaGVzKHQpfX1mdW5jdGlvbiBpNyh0KXtyZXR1cm4gbmV3IEFycmF5KHQubGVuZ3RoKX1mdW5jdGlvbiBhNyh0LGUpe3RoaXMub3duZXJEb2N1bWVudD10Lm93bmVyRG9jdW1lbnQsdGhpcy5uYW1lc3BhY2VVUkk9dC5uYW1lc3BhY2VVUkksdGhpcy5fbmV4dD1udWxsLHRoaXMuX3BhcmVudD10LHRoaXMuX19kYXRhX189ZX1hNy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmE3LGFwcGVuZENoaWxkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKHQsdGhpcy5fbmV4dCl9LGluc2VydEJlZm9yZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKHQsZSl9LHF1ZXJ5U2VsZWN0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yKHQpfSxxdWVyeVNlbGVjdG9yQWxsOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3RvckFsbCh0KX19O2Z1bmN0aW9uIHI3KHQsZSxuLG8saSxhKXtmb3IodmFyIHIscz0wLGw9ZS5sZW5ndGgsYz1hLmxlbmd0aDtzPGM7KytzKShyPWVbc10pPyhyLl9fZGF0YV9fPWFbc10sb1tzXT1yKTpuW3NdPW5ldyBhNyh0LGFbc10pO2Zvcig7czxsOysrcykocj1lW3NdKSYmKGlbc109cil9ZnVuY3Rpb24gczcodCxlLG4sbyxpLGEscil7dmFyIHMsbCxjLGQ9e30scD1lLmxlbmd0aCxtPWEubGVuZ3RoLGY9bmV3IEFycmF5KHApO2ZvcihzPTA7czxwOysrcykobD1lW3NdKSYmKGZbc109Yz0iJCIrci5jYWxsKGwsbC5fX2RhdGFfXyxzLGUpLGMgaW4gZD9pW3NdPWw6ZFtjXT1sKTtmb3Iocz0wO3M8bTsrK3MpKGw9ZFtjPSIkIityLmNhbGwodCxhW3NdLHMsYSldKT8ob1tzXT1sLGwuX19kYXRhX189YVtzXSxkW2NdPW51bGwpOm5bc109bmV3IGE3KHQsYVtzXSk7Zm9yKHM9MDtzPHA7KytzKShsPWVbc10pJiZkW2Zbc11dPT09bCYmKGlbc109bCl9ZnVuY3Rpb24gbDcodCxlKXtyZXR1cm4gdDxlPy0xOnQ+ZT8xOnQ+PWU/MDpOYU59ZnVuY3Rpb24gYzcodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fWZ1bmN0aW9uIGQ3KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19ZnVuY3Rpb24gcDcodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZSh0LGUpfX1mdW5jdGlvbiBtNyh0LGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLGUpfX1mdW5jdGlvbiBmNyh0LGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PW4/dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCk6dGhpcy5zZXRBdHRyaWJ1dGUodCxuKX19ZnVuY3Rpb24gdTcodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKTp0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxuKX19ZnVuY3Rpb24gZzcodCl7cmV0dXJuIHQub3duZXJEb2N1bWVudCYmdC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx0LmRvY3VtZW50JiZ0fHx0LmRlZmF1bHRWaWV3fWZ1bmN0aW9uIGg3KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCl9fWZ1bmN0aW9uIGI3KHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQsZSxuKX19ZnVuY3Rpb24geTcodCxlLG4pe3JldHVybiBmdW5jdGlvbigpe3ZhciBvPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PW8/dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KTp0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQsbyxuKX19ZnVuY3Rpb24gXzcodCxlKXtyZXR1cm4gdC5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGUpfHxnNyh0KS5nZXRDb21wdXRlZFN0eWxlKHQsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShlKX1mdW5jdGlvbiBDNyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtkZWxldGUgdGhpc1t0XX19ZnVuY3Rpb24gTTcodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzW3RdPWV9fWZ1bmN0aW9uIHY3KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09bj9kZWxldGUgdGhpc1t0XTp0aGlzW3RdPW59fWZ1bmN0aW9uIHg3KHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKX1mdW5jdGlvbiBPNyh0KXtyZXR1cm4gdC5jbGFzc0xpc3R8fG5ldyBQNyh0KX1mdW5jdGlvbiBQNyh0KXt0aGlzLl9ub2RlPXQsdGhpcy5fbmFtZXM9eDcodC5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX1mdW5jdGlvbiB3Nyh0LGUpe2Zvcih2YXIgbj1PNyh0KSxvPS0xLGk9ZS5sZW5ndGg7KytvPGk7KW4uYWRkKGVbb10pfWZ1bmN0aW9uIGs3KHQsZSl7Zm9yKHZhciBuPU83KHQpLG89LTEsaT1lLmxlbmd0aDsrK288aTspbi5yZW1vdmUoZVtvXSl9ZnVuY3Rpb24gUzcodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dzcodGhpcyx0KX19ZnVuY3Rpb24gRDcodCl7cmV0dXJuIGZ1bmN0aW9uKCl7azcodGhpcyx0KX19ZnVuY3Rpb24gUjcodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXsoZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk/dzc6azcpKHRoaXMsdCl9fWZ1bmN0aW9uIEU3KCl7dGhpcy50ZXh0Q29udGVudD0iIn1mdW5jdGlvbiBBNyh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PXR9fWZ1bmN0aW9uIFQ3KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMudGV4dENvbnRlbnQ9bnVsbD09ZT8iIjplfX1mdW5jdGlvbiBONygpe3RoaXMuaW5uZXJIVE1MPSIifWZ1bmN0aW9uIHo3KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuaW5uZXJIVE1MPXR9fWZ1bmN0aW9uIEk3KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuaW5uZXJIVE1MPW51bGw9PWU/IiI6ZX19ZnVuY3Rpb24gSDcoKXt0aGlzLm5leHRTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodGhpcyl9ZnVuY3Rpb24gRjcoKXt0aGlzLnByZXZpb3VzU2libGluZyYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLHRoaXMucGFyZW50Tm9kZS5maXJzdENoaWxkKX1mdW5jdGlvbiBMNygpe3JldHVybiBudWxsfWZ1bmN0aW9uIEI3KCl7dmFyIHQ9dGhpcy5wYXJlbnROb2RlO3QmJnQucmVtb3ZlQ2hpbGQodGhpcyl9ZnVuY3Rpb24gVjcoKXt2YXIgdD10aGlzLmNsb25lTm9kZSghMSksZT10aGlzLnBhcmVudE5vZGU7cmV0dXJuIGU/ZS5pbnNlcnRCZWZvcmUodCx0aGlzLm5leHRTaWJsaW5nKTp0fWZ1bmN0aW9uIGo3KCl7dmFyIHQ9dGhpcy5jbG9uZU5vZGUoITApLGU9dGhpcy5wYXJlbnROb2RlO3JldHVybiBlP2UuaW5zZXJ0QmVmb3JlKHQsdGhpcy5uZXh0U2libGluZyk6dH1QNy5wcm90b3R5cGU9e2FkZDpmdW5jdGlvbih0KXt0aGlzLl9uYW1lcy5pbmRleE9mKHQpPDAmJih0aGlzLl9uYW1lcy5wdXNoKHQpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsdGhpcy5fbmFtZXMuam9pbigiICIpKSl9LHJlbW92ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9uYW1lcy5pbmRleE9mKHQpO2U+PTAmJih0aGlzLl9uYW1lcy5zcGxpY2UoZSwxKSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHRoaXMuX25hbWVzLmpvaW4oIiAiKSkpfSxjb250YWluczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbmFtZXMuaW5kZXhPZih0KT49MH19O3ZhciBVNz17fSxXNz1udWxsOyJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJigib25tb3VzZWVudGVyImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudHx8KFU3PXttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0In0pKTtmdW5jdGlvbiBHNyh0LGUsbil7cmV0dXJuIHQ9WTcodCxlLG4pLGZ1bmN0aW9uKGUpe3ZhciBuPWUucmVsYXRlZFRhcmdldDtuJiYobj09PXRoaXN8fDgmbi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0aGlzKSl8fHQuY2FsbCh0aGlzLGUpfX1mdW5jdGlvbiBZNyh0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKG8pe3ZhciBpPVc3O1c3PW87dHJ5e3QuY2FsbCh0aGlzLHRoaXMuX19kYXRhX18sZSxuKX1maW5hbGx5e1c3PWl9fX1mdW5jdGlvbiBxNyh0KXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XHMrLykubWFwKChmdW5jdGlvbih0KXt2YXIgZT0iIixuPXQuaW5kZXhPZigiLiIpO3JldHVybiBuPj0wJiYoZT10LnNsaWNlKG4rMSksdD10LnNsaWNlKDAsbikpLHt0eXBlOnQsbmFtZTplfX0pKX1mdW5jdGlvbiBaNyh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9fb247aWYoZSl7Zm9yKHZhciBuLG89MCxpPS0xLGE9ZS5sZW5ndGg7bzxhOysrbyluPWVbb10sdC50eXBlJiZuLnR5cGUhPT10LnR5cGV8fG4ubmFtZSE9PXQubmFtZT9lWysraV09bjp0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIobi50eXBlLG4ubGlzdGVuZXIsbi5jYXB0dXJlKTsrK2k/ZS5sZW5ndGg9aTpkZWxldGUgdGhpcy5fX29ufX19ZnVuY3Rpb24gWDcodCxlLG4pe3ZhciBvPVU3Lmhhc093blByb3BlcnR5KHQudHlwZSk/Rzc6WTc7cmV0dXJuIGZ1bmN0aW9uKGksYSxyKXt2YXIgcyxsPXRoaXMuX19vbixjPW8oZSxhLHIpO2lmKGwpZm9yKHZhciBkPTAscD1sLmxlbmd0aDtkPHA7KytkKWlmKChzPWxbZF0pLnR5cGU9PT10LnR5cGUmJnMubmFtZT09PXQubmFtZSlyZXR1cm4gdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKHMudHlwZSxzLmxpc3RlbmVyLHMuY2FwdHVyZSksdGhpcy5hZGRFdmVudExpc3RlbmVyKHMudHlwZSxzLmxpc3RlbmVyPWMscy5jYXB0dXJlPW4pLHZvaWQocy52YWx1ZT1lKTt0aGlzLmFkZEV2ZW50TGlzdGVuZXIodC50eXBlLGMsbikscz17dHlwZTp0LnR5cGUsbmFtZTp0Lm5hbWUsdmFsdWU6ZSxsaXN0ZW5lcjpjLGNhcHR1cmU6bn0sbD9sLnB1c2gocyk6dGhpcy5fX29uPVtzXX19ZnVuY3Rpb24gSzcodCxlLG4pe3ZhciBvPWc3KHQpLGk9by5DdXN0b21FdmVudDsiZnVuY3Rpb24iPT10eXBlb2YgaT9pPW5ldyBpKGUsbik6KGk9by5kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSxuPyhpLmluaXRFdmVudChlLG4uYnViYmxlcyxuLmNhbmNlbGFibGUpLGkuZGV0YWlsPW4uZGV0YWlsKTppLmluaXRFdmVudChlLCExLCExKSksdC5kaXNwYXRjaEV2ZW50KGkpfWZ1bmN0aW9uIEo3KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEs3KHRoaXMsdCxlKX19ZnVuY3Rpb24gUTcodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gSzcodGhpcyx0LGUuYXBwbHkodGhpcyxhcmd1bWVudHMpKX19dmFyICQ3PVtudWxsXTtmdW5jdGlvbiB0OCh0LGUpe3RoaXMuX2dyb3Vwcz10LHRoaXMuX3BhcmVudHM9ZX1mdW5jdGlvbiBlOCgpe3JldHVybiBuZXcgdDgoW1tkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdXSwkNyl9ZnVuY3Rpb24gbjgodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P25ldyB0OChbW2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodCldXSxbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XSk6bmV3IHQ4KFtbdF1dLCQ3KX1mdW5jdGlvbiBvOCgpe2Zvcih2YXIgdCxlPVc3O3Q9ZS5zb3VyY2VFdmVudDspZT10O3JldHVybiBlfWZ1bmN0aW9uIGk4KHQsZSl7dmFyIG49dC5vd25lclNWR0VsZW1lbnR8fHQ7aWYobi5jcmVhdGVTVkdQb2ludCl7dmFyIG89bi5jcmVhdGVTVkdQb2ludCgpO3JldHVybiBvLng9ZS5jbGllbnRYLG8ueT1lLmNsaWVudFksWyhvPW8ubWF0cml4VHJhbnNmb3JtKHQuZ2V0U2NyZWVuQ1RNKCkuaW52ZXJzZSgpKSkueCxvLnldfXZhciBpPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuW2UuY2xpZW50WC1pLmxlZnQtdC5jbGllbnRMZWZ0LGUuY2xpZW50WS1pLnRvcC10LmNsaWVudFRvcF19ZnVuY3Rpb24gYTgodCl7dmFyIGU9bzgoKTtyZXR1cm4gZS5jaGFuZ2VkVG91Y2hlcyYmKGU9ZS5jaGFuZ2VkVG91Y2hlc1swXSksaTgodCxlKX1mdW5jdGlvbiByOCgpe1c3LnByZXZlbnREZWZhdWx0KCksVzcuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gczgodCl7dmFyIGU9dC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsbj1uOCh0KS5vbigiZHJhZ3N0YXJ0LmRyYWciLHI4LCEwKTsib25zZWxlY3RzdGFydCJpbiBlP24ub24oInNlbGVjdHN0YXJ0LmRyYWciLHI4LCEwKTooZS5fX25vc2VsZWN0PWUuc3R5bGUuTW96VXNlclNlbGVjdCxlLnN0eWxlLk1velVzZXJTZWxlY3Q9Im5vbmUiKX1mdW5jdGlvbiBsOCh0LGUpe3ZhciBuPXQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LG89bjgodCkub24oImRyYWdzdGFydC5kcmFnIixudWxsKTtlJiYoby5vbigiY2xpY2suZHJhZyIscjgsITApLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7by5vbigiY2xpY2suZHJhZyIsbnVsbCl9KSwwKSksIm9uc2VsZWN0c3RhcnQiaW4gbj9vLm9uKCJzZWxlY3RzdGFydC5kcmFnIixudWxsKToobi5zdHlsZS5Nb3pVc2VyU2VsZWN0PW4uX19ub3NlbGVjdCxkZWxldGUgbi5fX25vc2VsZWN0KX1mdW5jdGlvbiBjOCh0LGUsbil7dC5wcm90b3R5cGU9ZS5wcm90b3R5cGU9bixuLmNvbnN0cnVjdG9yPXR9ZnVuY3Rpb24gZDgodCxlKXt2YXIgbj1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlKTtmb3IodmFyIG8gaW4gZSluW29dPWVbb107cmV0dXJuIG59ZnVuY3Rpb24gcDgoKXt9dDgucHJvdG90eXBlPWU4LnByb3RvdHlwZT17Y29uc3RydWN0b3I6dDgsc2VsZWN0OmZ1bmN0aW9uIG04KHQpeyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD10Nyh0KSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxuPWUubGVuZ3RoLG89bmV3IEFycmF5KG4pLGk9MDtpPG47KytpKWZvcih2YXIgYSxyLHM9ZVtpXSxsPXMubGVuZ3RoLGM9b1tpXT1uZXcgQXJyYXkobCksZD0wO2Q8bDsrK2QpKGE9c1tkXSkmJihyPXQuY2FsbChhLGEuX19kYXRhX18sZCxzKSkmJigiX19kYXRhX18iaW4gYSYmKHIuX19kYXRhX189YS5fX2RhdGFfXyksY1tkXT1yKTtyZXR1cm4gbmV3IHQ4KG8sdGhpcy5fcGFyZW50cyl9LHNlbGVjdEFsbDpmdW5jdGlvbiBmOCh0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9bjcodCkpO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj1lLmxlbmd0aCxvPVtdLGk9W10sYT0wO2E8bjsrK2EpZm9yKHZhciByLHM9ZVthXSxsPXMubGVuZ3RoLGM9MDtjPGw7KytjKShyPXNbY10pJiYoby5wdXNoKHQuY2FsbChyLHIuX19kYXRhX18sYyxzKSksaS5wdXNoKHIpKTtyZXR1cm4gbmV3IHQ4KG8saSl9LGZpbHRlcjpmdW5jdGlvbiB1OCh0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9bzcodCkpO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj1lLmxlbmd0aCxvPW5ldyBBcnJheShuKSxpPTA7aTxuOysraSlmb3IodmFyIGEscj1lW2ldLHM9ci5sZW5ndGgsbD1vW2ldPVtdLGM9MDtjPHM7KytjKShhPXJbY10pJiZ0LmNhbGwoYSxhLl9fZGF0YV9fLGMscikmJmwucHVzaChhKTtyZXR1cm4gbmV3IHQ4KG8sdGhpcy5fcGFyZW50cyl9LGRhdGE6ZnVuY3Rpb24gZzgodCxlKXtpZighdClyZXR1cm4gdT1uZXcgQXJyYXkodGhpcy5zaXplKCkpLGQ9LTEsdGhpcy5lYWNoKChmdW5jdGlvbih0KXt1WysrZF09dH0pKSx1O3ZhciBuPWU/czc6cjcsbz10aGlzLl9wYXJlbnRzLGk9dGhpcy5fZ3JvdXBzOyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD0oZnVuY3Rpb24gYSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KSh0KSk7Zm9yKHZhciByPWkubGVuZ3RoLHM9bmV3IEFycmF5KHIpLGw9bmV3IEFycmF5KHIpLGM9bmV3IEFycmF5KHIpLGQ9MDtkPHI7KytkKXt2YXIgcD1vW2RdLG09aVtkXSxmPW0ubGVuZ3RoLHU9dC5jYWxsKHAscCYmcC5fX2RhdGFfXyxkLG8pLGc9dS5sZW5ndGgsaD1sW2RdPW5ldyBBcnJheShnKSxiPXNbZF09bmV3IEFycmF5KGcpO24ocCxtLGgsYixjW2RdPW5ldyBBcnJheShmKSx1LGUpO2Zvcih2YXIgeSxfLEM9MCxNPTA7QzxnOysrQylpZih5PWhbQ10pe2ZvcihDPj1NJiYoTT1DKzEpOyEoXz1iW01dKSYmKytNPGc7KTt5Ll9uZXh0PV98fG51bGx9fXJldHVybihzPW5ldyB0OChzLG8pKS5fZW50ZXI9bCxzLl9leGl0PWMsc30sZW50ZXI6ZnVuY3Rpb24gaDgoKXtyZXR1cm4gbmV3IHQ4KHRoaXMuX2VudGVyfHx0aGlzLl9ncm91cHMubWFwKGk3KSx0aGlzLl9wYXJlbnRzKX0sZXhpdDpmdW5jdGlvbiBiOCgpe3JldHVybiBuZXcgdDgodGhpcy5fZXhpdHx8dGhpcy5fZ3JvdXBzLm1hcChpNyksdGhpcy5fcGFyZW50cyl9LGpvaW46ZnVuY3Rpb24geTgodCxlLG4pe3ZhciBvPXRoaXMuZW50ZXIoKSxpPXRoaXMsYT10aGlzLmV4aXQoKTtyZXR1cm4gbz0iZnVuY3Rpb24iPT10eXBlb2YgdD90KG8pOm8uYXBwZW5kKHQrIiIpLG51bGwhPWUmJihpPWUoaSkpLG51bGw9PW4/YS5yZW1vdmUoKTpuKGEpLG8mJmk/by5tZXJnZShpKS5vcmRlcigpOml9LG1lcmdlOmZ1bmN0aW9uIF84KHQpe2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj10Ll9ncm91cHMsbz1lLmxlbmd0aCxpPU1hdGgubWluKG8sbi5sZW5ndGgpLGE9bmV3IEFycmF5KG8pLHI9MDtyPGk7KytyKWZvcih2YXIgcyxsPWVbcl0sYz1uW3JdLGQ9bC5sZW5ndGgscD1hW3JdPW5ldyBBcnJheShkKSxtPTA7bTxkOysrbSkocz1sW21dfHxjW21dKSYmKHBbbV09cyk7Zm9yKDtyPG87KytyKWFbcl09ZVtyXTtyZXR1cm4gbmV3IHQ4KGEsdGhpcy5fcGFyZW50cyl9LG9yZGVyOmZ1bmN0aW9uIEM4KCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxlPS0xLG49dC5sZW5ndGg7KytlPG47KWZvcih2YXIgbyxpPXRbZV0sYT1pLmxlbmd0aC0xLHI9aVthXTstLWE+PTA7KShvPWlbYV0pJiYociYmNF5vLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHIpJiZyLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG8scikscj1vKTtyZXR1cm4gdGhpc30sc29ydDpmdW5jdGlvbiBNOCh0KXtmdW5jdGlvbiBlKGUsbil7cmV0dXJuIGUmJm4/dChlLl9fZGF0YV9fLG4uX19kYXRhX18pOiFlLSFufXR8fCh0PWw3KTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLG89bi5sZW5ndGgsaT1uZXcgQXJyYXkobyksYT0wO2E8bzsrK2Epe2Zvcih2YXIgcixzPW5bYV0sbD1zLmxlbmd0aCxjPWlbYV09bmV3IEFycmF5KGwpLGQ9MDtkPGw7KytkKShyPXNbZF0pJiYoY1tkXT1yKTtjLnNvcnQoZSl9cmV0dXJuIG5ldyB0OChpLHRoaXMuX3BhcmVudHMpLm9yZGVyKCl9LGNhbGw6ZnVuY3Rpb24gdjgoKXt2YXIgdD1hcmd1bWVudHNbMF07cmV0dXJuIGFyZ3VtZW50c1swXT10aGlzLHQuYXBwbHkobnVsbCxhcmd1bWVudHMpLHRoaXN9LG5vZGVzOmZ1bmN0aW9uIHg4KCl7dmFyIHQ9bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSxlPS0xO3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7dFsrK2VdPXRoaXN9KSksdH0sbm9kZTpmdW5jdGlvbiBPOCgpe2Zvcih2YXIgdD10aGlzLl9ncm91cHMsZT0wLG49dC5sZW5ndGg7ZTxuOysrZSlmb3IodmFyIG89dFtlXSxpPTAsYT1vLmxlbmd0aDtpPGE7KytpKXt2YXIgcj1vW2ldO2lmKHIpcmV0dXJuIHJ9cmV0dXJuIG51bGx9LHNpemU6ZnVuY3Rpb24gUDgoKXt2YXIgdD0wO3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7Kyt0fSkpLHR9LGVtcHR5OmZ1bmN0aW9uIHc4KCl7cmV0dXJuIXRoaXMubm9kZSgpfSxlYWNoOmZ1bmN0aW9uIGs4KHQpe2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj0wLG89ZS5sZW5ndGg7bjxvOysrbilmb3IodmFyIGksYT1lW25dLHI9MCxzPWEubGVuZ3RoO3I8czsrK3IpKGk9YVtyXSkmJnQuY2FsbChpLGkuX19kYXRhX18scixhKTtyZXR1cm4gdGhpc30sYXR0cjpmdW5jdGlvbiBTOCh0LGUpe3ZhciBuPVg2KHQpO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7dmFyIG89dGhpcy5ub2RlKCk7cmV0dXJuIG4ubG9jYWw/by5nZXRBdHRyaWJ1dGVOUyhuLnNwYWNlLG4ubG9jYWwpOm8uZ2V0QXR0cmlidXRlKG4pfXJldHVybiB0aGlzLmVhY2goKG51bGw9PWU/bi5sb2NhbD9kNzpjNzoiZnVuY3Rpb24iPT10eXBlb2YgZT9uLmxvY2FsP3U3OmY3Om4ubG9jYWw/bTc6cDcpKG4sZSkpfSxzdHlsZTpmdW5jdGlvbiBEOCh0LGUsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PWU/aDc6ImZ1bmN0aW9uIj09dHlwZW9mIGU/eTc6YjcpKHQsZSxudWxsPT1uPyIiOm4pKTpfNyh0aGlzLm5vZGUoKSx0KX0scHJvcGVydHk6ZnVuY3Rpb24gUjgodCxlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09ZT9DNzoiZnVuY3Rpb24iPT10eXBlb2YgZT92NzpNNykodCxlKSk6dGhpcy5ub2RlKClbdF19LGNsYXNzZWQ6ZnVuY3Rpb24gRTgodCxlKXt2YXIgbj14Nyh0KyIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgbz1PNyh0aGlzLm5vZGUoKSksaT0tMSxhPW4ubGVuZ3RoOysraTxhOylpZighby5jb250YWlucyhuW2ldKSlyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4gdGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgZT9SNzplP1M3OkQ3KShuLGUpKX0sdGV4dDpmdW5jdGlvbiBBOCh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD9FNzooImZ1bmN0aW9uIj09dHlwZW9mIHQ/VDc6QTcpKHQpKTp0aGlzLm5vZGUoKS50ZXh0Q29udGVudH0saHRtbDpmdW5jdGlvbiBUOCh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD9ONzooImZ1bmN0aW9uIj09dHlwZW9mIHQ/STc6ejcpKHQpKTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9LHJhaXNlOmZ1bmN0aW9uIE44KCl7cmV0dXJuIHRoaXMuZWFjaChINyl9LGxvd2VyOmZ1bmN0aW9uIHo4KCl7cmV0dXJuIHRoaXMuZWFjaChGNyl9LGFwcGVuZDpmdW5jdGlvbiBJOCh0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlE2KHQpO3JldHVybiB0aGlzLnNlbGVjdCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcHBlbmRDaGlsZChlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9KSl9LGluc2VydDpmdW5jdGlvbiBIOCh0LGUpe3ZhciBuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6UTYodCksbz1udWxsPT1lP0w3OiJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6dDcoZSk7cmV0dXJuIHRoaXMuc2VsZWN0KChmdW5jdGlvbigpe3JldHVybiB0aGlzLmluc2VydEJlZm9yZShuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8bnVsbCl9KSl9LHJlbW92ZTpmdW5jdGlvbiBGOCgpe3JldHVybiB0aGlzLmVhY2goQjcpfSxjbG9uZTpmdW5jdGlvbiBMOCh0KXtyZXR1cm4gdGhpcy5zZWxlY3QodD9qNzpWNyl9LGRhdHVtOmZ1bmN0aW9uIEI4KHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMucHJvcGVydHkoIl9fZGF0YV9fIix0KTp0aGlzLm5vZGUoKS5fX2RhdGFfX30sb246ZnVuY3Rpb24gVjgodCxlLG4pe3ZhciBvLGksYT1xNyh0KyIiKSxyPWEubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7Zm9yKHM9ZT9YNzpaNyxudWxsPT1uJiYobj0hMSksbz0wO288cjsrK28pdGhpcy5lYWNoKHMoYVtvXSxlLG4pKTtyZXR1cm4gdGhpc312YXIgcz10aGlzLm5vZGUoKS5fX29uO2lmKHMpZm9yKHZhciBsLGM9MCxkPXMubGVuZ3RoO2M8ZDsrK2MpZm9yKG89MCxsPXNbY107bzxyOysrbylpZigoaT1hW29dKS50eXBlPT09bC50eXBlJiZpLm5hbWU9PT1sLm5hbWUpcmV0dXJuIGwudmFsdWV9LGRpc3BhdGNoOmZ1bmN0aW9uIGo4KHQsZSl7cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGU/UTc6SjcpKHQsZSkpfX07dmFyIFU4PS43LFc4PTEvVTgsRzg9IlxccyooWystXT9cXGQrKVxccyoiLFk4PSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KVxccyoiLHE4PSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KSVcXHMqIixaOD0vXiMoWzAtOWEtZl17Myw4fSkkLyxYOD1uZXcgUmVnRXhwKCJecmdiXFwoIitbRzgsRzgsRzhdKyJcXCkkIiksSzg9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW3E4LHE4LHE4XSsiXFwpJCIpLEo4PW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbRzgsRzgsRzgsWThdKyJcXCkkIiksUTg9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1txOCxxOCxxOCxZOF0rIlxcKSQiKSwkOD1uZXcgUmVnRXhwKCJeaHNsXFwoIitbWTgscTgscThdKyJcXCkkIiksdDk9bmV3IFJlZ0V4cCgiXmhzbGFcXCgiK1tZOCxxOCxxOCxZOF0rIlxcKSQiKSxlOT17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtmdW5jdGlvbiBuOSgpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdEhleCgpfWZ1bmN0aW9uIG85KCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0UmdiKCl9ZnVuY3Rpb24gaTkodCl7dmFyIGUsbjtyZXR1cm4gdD0odCsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKGU9WjguZXhlYyh0KSk/KG49ZVsxXS5sZW5ndGgsZT1wYXJzZUludChlWzFdLDE2KSw2PT09bj9hOShlKTozPT09bj9uZXcgYzkoZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgxNSZlKTw8NHwxNSZlLDEpOjg9PT1uP3I5KGU+PjI0JjI1NSxlPj4xNiYyNTUsZT4+OCYyNTUsKDI1NSZlKS8yNTUpOjQ9PT1uP3I5KGU+PjEyJjE1fGU+PjgmMjQwLGU+PjgmMTV8ZT4+NCYyNDAsZT4+NCYxNXwyNDAmZSwoKDE1JmUpPDw0fDE1JmUpLzI1NSk6bnVsbCk6KGU9WDguZXhlYyh0KSk/bmV3IGM5KGVbMV0sZVsyXSxlWzNdLDEpOihlPUs4LmV4ZWModCkpP25ldyBjOSgyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCwxKTooZT1KOC5leGVjKHQpKT9yOShlWzFdLGVbMl0sZVszXSxlWzRdKTooZT1ROC5leGVjKHQpKT9yOSgyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCxlWzRdKTooZT0kOC5leGVjKHQpKT9mOShlWzFdLGVbMl0vMTAwLGVbM10vMTAwLDEpOihlPXQ5LmV4ZWModCkpP2Y5KGVbMV0sZVsyXS8xMDAsZVszXS8xMDAsZVs0XSk6ZTkuaGFzT3duUHJvcGVydHkodCk/YTkoZTlbdF0pOiJ0cmFuc3BhcmVudCI9PT10P25ldyBjOShOYU4sTmFOLE5hTiwwKTpudWxsfWZ1bmN0aW9uIGE5KHQpe3JldHVybiBuZXcgYzkodD4+MTYmMjU1LHQ+PjgmMjU1LDI1NSZ0LDEpfWZ1bmN0aW9uIHI5KHQsZSxuLG8pe3JldHVybiBvPD0wJiYodD1lPW49TmFOKSxuZXcgYzkodCxlLG4sbyl9ZnVuY3Rpb24gczkodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBwOHx8KHQ9aTkodCkpLHQ/bmV3IGM5KCh0PXQucmdiKCkpLnIsdC5nLHQuYix0Lm9wYWNpdHkpOm5ldyBjOX1mdW5jdGlvbiBsOSh0LGUsbixvKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/czkodCk6bmV3IGM5KHQsZSxuLG51bGw9PW8/MTpvKX1mdW5jdGlvbiBjOSh0LGUsbixvKXt0aGlzLnI9K3QsdGhpcy5nPStlLHRoaXMuYj0rbix0aGlzLm9wYWNpdHk9K299ZnVuY3Rpb24gZDkoKXtyZXR1cm4iIyIrbTkodGhpcy5yKSttOSh0aGlzLmcpK205KHRoaXMuYil9ZnVuY3Rpb24gcDkoKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpPyJyZ2IoIjoicmdiYSgiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKDE9PT10PyIpIjoiLCAiK3QrIikiKX1mdW5jdGlvbiBtOSh0KXtyZXR1cm4oKHQ9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0KXx8MCkpKTwxNj8iMCI6IiIpK3QudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIGY5KHQsZSxuLG8pe3JldHVybiBvPD0wP3Q9ZT1uPU5hTjpuPD0wfHxuPj0xP3Q9ZT1OYU46ZTw9MCYmKHQ9TmFOKSxuZXcgaDkodCxlLG4sbyl9ZnVuY3Rpb24gdTkodCl7aWYodCBpbnN0YW5jZW9mIGg5KXJldHVybiBuZXcgaDkodC5oLHQucyx0LmwsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2YgcDh8fCh0PWk5KHQpKSwhdClyZXR1cm4gbmV3IGg5O2lmKHQgaW5zdGFuY2VvZiBoOSlyZXR1cm4gdDt2YXIgZT0odD10LnJnYigpKS5yLzI1NSxuPXQuZy8yNTUsbz10LmIvMjU1LGk9TWF0aC5taW4oZSxuLG8pLGE9TWF0aC5tYXgoZSxuLG8pLHI9TmFOLHM9YS1pLGw9KGEraSkvMjtyZXR1cm4gcz8ocj1lPT09YT8obi1vKS9zKzYqKG48byk6bj09PWE/KG8tZSkvcysyOihlLW4pL3MrNCxzLz1sPC41P2EraToyLWEtaSxyKj02MCk6cz1sPjAmJmw8MT8wOnIsbmV3IGg5KHIscyxsLHQub3BhY2l0eSl9ZnVuY3Rpb24gZzkodCxlLG4sbyl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3U5KHQpOm5ldyBoOSh0LGUsbixudWxsPT1vPzE6byl9ZnVuY3Rpb24gaDkodCxlLG4sbyl7dGhpcy5oPSt0LHRoaXMucz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStvfWZ1bmN0aW9uIGI5KHQsZSxuKXtyZXR1cm4gMjU1Kih0PDYwP2UrKG4tZSkqdC82MDp0PDE4MD9uOnQ8MjQwP2UrKG4tZSkqKDI0MC10KS82MDplKX1jOChwOCxpOSx7Y29weTpmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgdGhpcy5jb25zdHJ1Y3Rvcix0aGlzLHQpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmRpc3BsYXlhYmxlKCl9LGhleDpuOSxmb3JtYXRIZXg6bjksZm9ybWF0SHNsOmZ1bmN0aW9uIHk5KCl7cmV0dXJuIHU5KHRoaXMpLmZvcm1hdEhzbCgpfSxmb3JtYXRSZ2I6bzksdG9TdHJpbmc6bzl9KSxjOChjOSxsOSxkOChwOCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9XODpNYXRoLnBvdyhXOCx0KSxuZXcgYzkodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/VTg6TWF0aC5wb3coVTgsdCksbmV3IGM5KHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybi0uNTw9dGhpcy5yJiZ0aGlzLnI8MjU1LjUmJi0uNTw9dGhpcy5nJiZ0aGlzLmc8MjU1LjUmJi0uNTw9dGhpcy5iJiZ0aGlzLmI8MjU1LjUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6ZDksZm9ybWF0SGV4OmQ5LGZvcm1hdFJnYjpwOSx0b1N0cmluZzpwOX0pKSxjOChoOSxnOSxkOChwOCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9XODpNYXRoLnBvdyhXOCx0KSxuZXcgaDkodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD9VODpNYXRoLnBvdyhVOCx0KSxuZXcgaDkodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmglMzYwKzM2MCoodGhpcy5oPDApLGU9aXNOYU4odCl8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMsbj10aGlzLmwsbz1uKyhuPC41P246MS1uKSplLGk9MipuLW87cmV0dXJuIG5ldyBjOShiOSh0Pj0yNDA/dC0yNDA6dCsxMjAsaSxvKSxiOSh0LGksbyksYjkodDwxMjA/dCsyNDA6dC0xMjAsaSxvKSx0aGlzLm9wYWNpdHkpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0sZm9ybWF0SHNsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KHQ9aXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpKT8iaHNsKCI6ImhzbGEoIikrKHRoaXMuaHx8MCkrIiwgIisxMDAqKHRoaXMuc3x8MCkrIiUsICIrMTAwKih0aGlzLmx8fDApKyIlIisoMT09PXQ/IikiOiIsICIrdCsiKSIpfX0pKTt2YXIgXzk9TWF0aC5QSS8xODAsQzk9MTgwL01hdGguUEksTTk9Ljk2NDIyLHY5PS44MjUyMSx4OT00LzI5LE85PTYvMjksUDk9MypPOSpPOTtmdW5jdGlvbiB3OSh0KXtpZih0IGluc3RhbmNlb2YgazkpcmV0dXJuIG5ldyBrOSh0LmwsdC5hLHQuYix0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBOOSlyZXR1cm4gejkodCk7dCBpbnN0YW5jZW9mIGM5fHwodD1zOSh0KSk7dmFyIGUsbixvPUU5KHQuciksaT1FOSh0LmcpLGE9RTkodC5iKSxyPVM5KCguMjIyNTA0NSpvKy43MTY4Nzg2KmkrLjA2MDYxNjkqYSkvMSk7cmV0dXJuIG89PT1pJiZpPT09YT9lPW49cjooZT1TOSgoLjQzNjA3NDcqbysuMzg1MDY0OSppKy4xNDMwODA0KmEpL005KSxuPVM5KCguMDEzOTMyMipvKy4wOTcxMDQ1KmkrLjcxNDE3MzMqYSkvdjkpKSxuZXcgazkoMTE2KnItMTYsNTAwKihlLXIpLDIwMCooci1uKSx0Lm9wYWNpdHkpfWZ1bmN0aW9uIGs5KHQsZSxuLG8pe3RoaXMubD0rdCx0aGlzLmE9K2UsdGhpcy5iPStuLHRoaXMub3BhY2l0eT0rb31mdW5jdGlvbiBTOSh0KXtyZXR1cm4gdD4uMDA4ODU2NDUxNjc5MDM1NjMxP01hdGgucG93KHQsMS8zKTp0L1A5K3g5fWZ1bmN0aW9uIEQ5KHQpe3JldHVybiB0Pk85P3QqdCp0OlA5Kih0LXg5KX1mdW5jdGlvbiBSOSh0KXtyZXR1cm4gMjU1Kih0PD0uMDAzMTMwOD8xMi45Mip0OjEuMDU1Kk1hdGgucG93KHQsMS8yLjQpLS4wNTUpfWZ1bmN0aW9uIEU5KHQpe3JldHVybih0Lz0yNTUpPD0uMDQwNDU/dC8xMi45MjpNYXRoLnBvdygodCsuMDU1KS8xLjA1NSwyLjQpfWZ1bmN0aW9uIEE5KHQpe2lmKHQgaW5zdGFuY2VvZiBOOSlyZXR1cm4gbmV3IE45KHQuaCx0LmMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIGs5fHwodD13OSh0KSksMD09PXQuYSYmMD09PXQuYilyZXR1cm4gbmV3IE45KE5hTiwwPHQubCYmdC5sPDEwMD8wOk5hTix0LmwsdC5vcGFjaXR5KTt2YXIgZT1NYXRoLmF0YW4yKHQuYix0LmEpKkM5O3JldHVybiBuZXcgTjkoZTwwP2UrMzYwOmUsTWF0aC5zcXJ0KHQuYSp0LmErdC5iKnQuYiksdC5sLHQub3BhY2l0eSl9ZnVuY3Rpb24gVDkodCxlLG4sbyl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP0E5KHQpOm5ldyBOOSh0LGUsbixudWxsPT1vPzE6byl9ZnVuY3Rpb24gTjkodCxlLG4sbyl7dGhpcy5oPSt0LHRoaXMuYz0rZSx0aGlzLmw9K24sdGhpcy5vcGFjaXR5PStvfWZ1bmN0aW9uIHo5KHQpe2lmKGlzTmFOKHQuaCkpcmV0dXJuIG5ldyBrOSh0LmwsMCwwLHQub3BhY2l0eSk7dmFyIGU9dC5oKl85O3JldHVybiBuZXcgazkodC5sLE1hdGguY29zKGUpKnQuYyxNYXRoLnNpbihlKSp0LmMsdC5vcGFjaXR5KX1mdW5jdGlvbiBJOSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gSDkodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQrbiplfX1mdW5jdGlvbiBGOSh0LGUpe3ZhciBuPWUtdDtyZXR1cm4gbj9IOSh0LG4+MTgwfHxuPC0xODA/bi0zNjAqTWF0aC5yb3VuZChuLzM2MCk6bik6STkoaXNOYU4odCk/ZTp0KX1mdW5jdGlvbiBMOSh0KXtyZXR1cm4gMT09KHQ9K3QpP0I5OmZ1bmN0aW9uKGUsbil7cmV0dXJuIG4tZT8oZnVuY3Rpb24gbyh0LGUsbil7cmV0dXJuIHQ9TWF0aC5wb3codCxuKSxlPU1hdGgucG93KGUsbiktdCxuPTEvbixmdW5jdGlvbihvKXtyZXR1cm4gTWF0aC5wb3codCtvKmUsbil9fSkoZSxuLHQpOkk5KGlzTmFOKGUpP246ZSl9fWZ1bmN0aW9uIEI5KHQsZSl7dmFyIG49ZS10O3JldHVybiBuP0g5KHQsbik6STkoaXNOYU4odCk/ZTp0KX1jOChrOSwoZnVuY3Rpb24gVjkodCxlLG4sbyl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3c5KHQpOm5ldyBrOSh0LGUsbixudWxsPT1vPzE6byl9KSxkOChwOCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBrOSh0aGlzLmwrMTgqKG51bGw9PXQ/MTp0KSx0aGlzLmEsdGhpcy5iLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGs5KHRoaXMubC0xOCoobnVsbD09dD8xOnQpLHRoaXMuYSx0aGlzLmIsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9KHRoaXMubCsxNikvMTE2LGU9aXNOYU4odGhpcy5hKT90OnQrdGhpcy5hLzUwMCxuPWlzTmFOKHRoaXMuYik/dDp0LXRoaXMuYi8yMDA7cmV0dXJuIG5ldyBjOShSOSgzLjEzMzg1NjEqKGU9TTkqRDkoZSkpLTEuNjE2ODY2NyoodD0xKkQ5KHQpKS0uNDkwNjE0Nioobj12OSpEOShuKSkpLFI5KC0uOTc4NzY4NCplKzEuOTE2MTQxNSp0Ky4wMzM0NTQqbiksUjkoLjA3MTk0NTMqZS0uMjI4OTkxNCp0KzEuNDA1MjQyNypuKSx0aGlzLm9wYWNpdHkpfX0pKSxjOChOOSxUOSxkOChwOCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBOOSh0aGlzLmgsdGhpcy5jLHRoaXMubCsxOCoobnVsbD09dD8xOnQpLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IE45KHRoaXMuaCx0aGlzLmMsdGhpcy5sLTE4KihudWxsPT10PzE6dCksdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIHo5KHRoaXMpLnJnYigpfX0pKTt2YXIgajk9KGZ1bmN0aW9uIHQoZSl7dmFyIG49TDkoZSk7ZnVuY3Rpb24gbyh0LGUpe3ZhciBvPW4oKHQ9bDkodCkpLnIsKGU9bDkoZSkpLnIpLGk9bih0LmcsZS5nKSxhPW4odC5iLGUuYikscj1COSh0Lm9wYWNpdHksZS5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQucj1vKGUpLHQuZz1pKGUpLHQuYj1hKGUpLHQub3BhY2l0eT1yKGUpLHQrIiJ9fXJldHVybiBvLmdhbW1hPXQsb30pKDEpO3ZhciBVOT0oZnVuY3Rpb24gRzkodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuLG8saT1lLmxlbmd0aCxhPW5ldyBBcnJheShpKSxyPW5ldyBBcnJheShpKSxzPW5ldyBBcnJheShpKTtmb3Iobj0wO248aTsrK24pbz1sOShlW25dKSxhW25dPW8ucnx8MCxyW25dPW8uZ3x8MCxzW25dPW8uYnx8MDtyZXR1cm4gYT10KGEpLHI9dChyKSxzPXQocyksby5vcGFjaXR5PTEsZnVuY3Rpb24odCl7cmV0dXJuIG8ucj1hKHQpLG8uZz1yKHQpLG8uYj1zKHQpLG8rIiJ9fX0pKChmdW5jdGlvbiBXOSh0KXt2YXIgZT10Lmxlbmd0aC0xO3JldHVybiBmdW5jdGlvbihuKXt2YXIgbz1uPD0wP249MDpuPj0xPyhuPTEsZS0xKTpNYXRoLmZsb29yKG4qZSksaT10W29dLGE9dFtvKzFdO3JldHVybihmdW5jdGlvbiByKHQsZSxuLG8saSl7dmFyIGE9dCp0LHI9YSp0O3JldHVybigoMS0zKnQrMyphLXIpKmUrKDQtNiphKzMqcikqbisoMSszKnQrMyphLTMqcikqbytyKmkpLzZ9KSgobi1vL2UpKmUsbz4wP3Rbby0xXToyKmktYSxpLGEsbzxlLTE/dFtvKzJdOjIqYS1pKX19KSk7ZnVuY3Rpb24gWTkodCxlKXtlfHwoZT1bXSk7dmFyIG4sbz10P01hdGgubWluKGUubGVuZ3RoLHQubGVuZ3RoKTowLGk9ZS5zbGljZSgpO3JldHVybiBmdW5jdGlvbihhKXtmb3Iobj0wO248bzsrK24paVtuXT10W25dKigxLWEpK2Vbbl0qYTtyZXR1cm4gaX19ZnVuY3Rpb24gcTkodCxlKXt2YXIgbixvPWU/ZS5sZW5ndGg6MCxpPXQ/TWF0aC5taW4obyx0Lmxlbmd0aCk6MCxhPW5ldyBBcnJheShpKSxyPW5ldyBBcnJheShvKTtmb3Iobj0wO248aTsrK24pYVtuXT10dHQodFtuXSxlW25dKTtmb3IoO248bzsrK24pcltuXT1lW25dO3JldHVybiBmdW5jdGlvbih0KXtmb3Iobj0wO248aTsrK24pcltuXT1hW25dKHQpO3JldHVybiByfX1mdW5jdGlvbiBaOSh0LGUpe3ZhciBuPW5ldyBEYXRlO3JldHVybiB0PSt0LGU9K2UsZnVuY3Rpb24obyl7cmV0dXJuIG4uc2V0VGltZSh0KigxLW8pK2Uqbyksbn19ZnVuY3Rpb24gWDkodCxlKXtyZXR1cm4gdD0rdCxlPStlLGZ1bmN0aW9uKG4pe3JldHVybiB0KigxLW4pK2Uqbn19ZnVuY3Rpb24gSzkodCxlKXt2YXIgbixvPXt9LGk9e307Zm9yKG4gaW4gbnVsbCE9PXQmJiJvYmplY3QiPT10eXBlb2YgdHx8KHQ9e30pLG51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGV8fChlPXt9KSxlKW4gaW4gdD9vW25dPXR0dCh0W25dLGVbbl0pOmlbbl09ZVtuXTtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKG4gaW4gbylpW25dPW9bbl0odCk7cmV0dXJuIGl9fXZhciBKOT0vWy0rXT8oPzpcZCtcLj9cZCp8XC4/XGQrKSg/OltlRV1bLStdP1xkKyk/L2csUTk9bmV3IFJlZ0V4cChKOS5zb3VyY2UsImciKTtmdW5jdGlvbiAkOSh0LGUpe3ZhciBuLG8saSxhPUo5Lmxhc3RJbmRleD1ROS5sYXN0SW5kZXg9MCxyPS0xLHM9W10sbD1bXTtmb3IodCs9IiIsZSs9IiI7KG49SjkuZXhlYyh0KSkmJihvPVE5LmV4ZWMoZSkpOykoaT1vLmluZGV4KT5hJiYoaT1lLnNsaWNlKGEsaSksc1tyXT9zW3JdKz1pOnNbKytyXT1pKSwobj1uWzBdKT09PShvPW9bMF0pP3Nbcl0/c1tyXSs9bzpzWysrcl09bzooc1srK3JdPW51bGwsbC5wdXNoKHtpOnIseDpYOShuLG8pfSkpLGE9UTkubGFzdEluZGV4O3JldHVybiBhPGUubGVuZ3RoJiYoaT1lLnNsaWNlKGEpLHNbcl0/c1tyXSs9aTpzWysrcl09aSkscy5sZW5ndGg8Mj9sWzBdPyhmdW5jdGlvbiBjKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdChlKSsiIn19KShsWzBdLngpOihmdW5jdGlvbiBkKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX0pKGUpOihlPWwubGVuZ3RoLGZ1bmN0aW9uKHQpe2Zvcih2YXIgbixvPTA7bzxlOysrbylzWyhuPWxbb10pLmldPW4ueCh0KTtyZXR1cm4gcy5qb2luKCIiKX0pfWZ1bmN0aW9uIHR0dCh0LGUpe3ZhciBuLG89dHlwZW9mIGU7cmV0dXJuIG51bGw9PWV8fCJib29sZWFuIj09PW8/STkoZSk6KCJudW1iZXIiPT09bz9YOToic3RyaW5nIj09PW8/KG49aTkoZSkpPyhlPW4sajkpOiQ5OmUgaW5zdGFuY2VvZiBpOT9qOTplIGluc3RhbmNlb2YgRGF0ZT9aOTooZnVuY3Rpb24gaSh0KXtyZXR1cm4gQXJyYXlCdWZmZXIuaXNWaWV3KHQpJiYhKHQgaW5zdGFuY2VvZiBEYXRhVmlldyl9KShlKT9ZOTpBcnJheS5pc0FycmF5KGUpP3E5OiJmdW5jdGlvbiIhPXR5cGVvZiBlLnZhbHVlT2YmJiJmdW5jdGlvbiIhPXR5cGVvZiBlLnRvU3RyaW5nfHxpc05hTihlKT9LOTpYOSkodCxlKX1mdW5jdGlvbiBldHQodCxlKXtyZXR1cm4gdD0rdCxlPStlLGZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLnJvdW5kKHQqKDEtbikrZSpuKX19dmFyIG50dCxvdHQsaXR0LGF0dCxydHQ9MTgwL01hdGguUEksc3R0PXt0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowLHJvdGF0ZTowLHNrZXdYOjAsc2NhbGVYOjEsc2NhbGVZOjF9O2Z1bmN0aW9uIGx0dCh0LGUsbixvLGksYSl7dmFyIHIscyxsO3JldHVybihyPU1hdGguc3FydCh0KnQrZSplKSkmJih0Lz1yLGUvPXIpLChsPXQqbitlKm8pJiYobi09dCpsLG8tPWUqbCksKHM9TWF0aC5zcXJ0KG4qbitvKm8pKSYmKG4vPXMsby89cyxsLz1zKSx0Km88ZSpuJiYodD0tdCxlPS1lLGw9LWwscj0tcikse3RyYW5zbGF0ZVg6aSx0cmFuc2xhdGVZOmEscm90YXRlOk1hdGguYXRhbjIoZSx0KSpydHQsc2tld1g6TWF0aC5hdGFuKGwpKnJ0dCxzY2FsZVg6cixzY2FsZVk6c319ZnVuY3Rpb24gY3R0KHQsZSxuLG8pe2Z1bmN0aW9uIGkodCl7cmV0dXJuIHQubGVuZ3RoP3QucG9wKCkrIiAiOiIifXJldHVybiBmdW5jdGlvbihhLHIpe3ZhciBzPVtdLGw9W107cmV0dXJuIGE9dChhKSxyPXQociksKGZ1bmN0aW9uIGModCxvLGksYSxyLHMpe2lmKHQhPT1pfHxvIT09YSl7dmFyIGw9ci5wdXNoKCJ0cmFuc2xhdGUoIixudWxsLGUsbnVsbCxuKTtzLnB1c2goe2k6bC00LHg6WDkodCxpKX0se2k6bC0yLHg6WDkobyxhKX0pfWVsc2UoaXx8YSkmJnIucHVzaCgidHJhbnNsYXRlKCIraStlK2Erbil9KShhLnRyYW5zbGF0ZVgsYS50cmFuc2xhdGVZLHIudHJhbnNsYXRlWCxyLnRyYW5zbGF0ZVkscyxsKSwoZnVuY3Rpb24gZCh0LGUsbixhKXt0IT09ZT8odC1lPjE4MD9lKz0zNjA6ZS10PjE4MCYmKHQrPTM2MCksYS5wdXNoKHtpOm4ucHVzaChpKG4pKyJyb3RhdGUoIixudWxsLG8pLTIseDpYOSh0LGUpfSkpOmUmJm4ucHVzaChpKG4pKyJyb3RhdGUoIitlK28pfSkoYS5yb3RhdGUsci5yb3RhdGUscyxsKSwoZnVuY3Rpb24gcCh0LGUsbixhKXt0IT09ZT9hLnB1c2goe2k6bi5wdXNoKGkobikrInNrZXdYKCIsbnVsbCxvKS0yLHg6WDkodCxlKX0pOmUmJm4ucHVzaChpKG4pKyJza2V3WCgiK2Urbyl9KShhLnNrZXdYLHIuc2tld1gscyxsKSwoZnVuY3Rpb24gbSh0LGUsbixvLGEscil7aWYodCE9PW58fGUhPT1vKXt2YXIgcz1hLnB1c2goaShhKSsic2NhbGUoIixudWxsLCIsIixudWxsLCIpIik7ci5wdXNoKHtpOnMtNCx4Olg5KHQsbil9LHtpOnMtMix4Olg5KGUsbyl9KX1lbHNlIDE9PT1uJiYxPT09b3x8YS5wdXNoKGkoYSkrInNjYWxlKCIrbisiLCIrbysiKSIpfSkoYS5zY2FsZVgsYS5zY2FsZVksci5zY2FsZVgsci5zY2FsZVkscyxsKSxhPXI9bnVsbCxmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0tMSxvPWwubGVuZ3RoOysrbjxvOylzWyhlPWxbbl0pLmldPWUueCh0KTtyZXR1cm4gcy5qb2luKCIiKX19fXZhciBkdHQ9Y3R0KChmdW5jdGlvbiBwdHQodCl7cmV0dXJuIm5vbmUiPT09dD9zdHQ6KG50dHx8KG50dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKSxvdHQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGl0dD1kb2N1bWVudC5kZWZhdWx0VmlldyksbnR0LnN0eWxlLnRyYW5zZm9ybT10LHQ9aXR0LmdldENvbXB1dGVkU3R5bGUob3R0LmFwcGVuZENoaWxkKG50dCksbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgidHJhbnNmb3JtIiksb3R0LnJlbW92ZUNoaWxkKG50dCksbHR0KCsodD10LnNsaWNlKDcsLTEpLnNwbGl0KCIsIikpWzBdLCt0WzFdLCt0WzJdLCt0WzNdLCt0WzRdLCt0WzVdKSl9KSwicHgsICIsInB4KSIsImRlZykiKSxtdHQ9Y3R0KChmdW5jdGlvbiBmdHQodCl7cmV0dXJuIG51bGw9PXQ/c3R0OihhdHR8fChhdHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImciKSksYXR0LnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIix0KSwodD1hdHQudHJhbnNmb3JtLmJhc2VWYWwuY29uc29saWRhdGUoKSk/bHR0KCh0PXQubWF0cml4KS5hLHQuYix0LmMsdC5kLHQuZSx0LmYpOnN0dCl9KSwiLCAiLCIpIiwiKSIpO3ZhciB1dHQ9KGZ1bmN0aW9uIGd0dCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXt2YXIgbz10KChlPWc5KGUpKS5oLChuPWc5KG4pKS5oKSxpPUI5KGUucyxuLnMpLGE9QjkoZS5sLG4ubCkscj1COShlLm9wYWNpdHksbi5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuaD1vKHQpLGUucz1pKHQpLGUubD1hKHQpLGUub3BhY2l0eT1yKHQpLGUrIiJ9fX0pKEY5KTt2YXIgaHR0LGJ0dCx5dHQ9KGZ1bmN0aW9uIF90dCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXt2YXIgbz10KChlPVQ5KGUpKS5oLChuPVQ5KG4pKS5oKSxpPUI5KGUuYyxuLmMpLGE9QjkoZS5sLG4ubCkscj1COShlLm9wYWNpdHksbi5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuaD1vKHQpLGUuYz1pKHQpLGUubD1hKHQpLGUub3BhY2l0eT1yKHQpLGUrIiJ9fX0pKEY5KSxDdHQ9MCxNdHQ9MCx2dHQ9MCx4dHQ9MCxPdHQ9MCxQdHQ9MCx3dHQ9Im9iamVjdCI9PXR5cGVvZiBwZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlOkRhdGUsa3R0PSJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOmZ1bmN0aW9uKHQpe3NldFRpbWVvdXQodCwxNyl9O2Z1bmN0aW9uIFN0dCgpe3JldHVybiBPdHR8fChrdHQoRHR0KSxPdHQ9d3R0Lm5vdygpK1B0dCl9ZnVuY3Rpb24gRHR0KCl7T3R0PTB9ZnVuY3Rpb24gUnR0KCl7dGhpcy5fY2FsbD10aGlzLl90aW1lPXRoaXMuX25leHQ9bnVsbH1mdW5jdGlvbiBFdHQodCxlLG4pe3ZhciBvPW5ldyBSdHQ7cmV0dXJuIG8ucmVzdGFydCh0LGUsbiksb31mdW5jdGlvbiBBdHQoKXtPdHQ9KHh0dD13dHQubm93KCkpK1B0dCxDdHQ9TXR0PTA7dHJ5eyEoZnVuY3Rpb24gdCgpe1N0dCgpLCsrQ3R0O2Zvcih2YXIgdCxlPWh0dDtlOykodD1PdHQtZS5fdGltZSk+PTAmJmUuX2NhbGwuY2FsbChudWxsLHQpLGU9ZS5fbmV4dDstLUN0dH0pKCl9ZmluYWxseXtDdHQ9MCwoZnVuY3Rpb24gZSgpe3ZhciB0LGUsbj1odHQsbz0xLzA7Zm9yKDtuOyluLl9jYWxsPyhvPm4uX3RpbWUmJihvPW4uX3RpbWUpLHQ9bixuPW4uX25leHQpOihlPW4uX25leHQsbi5fbmV4dD1udWxsLG49dD90Ll9uZXh0PWU6aHR0PWUpO2J0dD10LE50dChvKX0pKCksT3R0PTB9fWZ1bmN0aW9uIFR0dCgpe3ZhciB0PXd0dC5ub3coKSxlPXQteHR0O2U+MWUzJiYoUHR0LT1lLHh0dD10KX1mdW5jdGlvbiBOdHQodCl7Q3R0fHwoTXR0JiYoTXR0PWNsZWFyVGltZW91dChNdHQpKSx0LU90dD4yND8odDwxLzAmJihNdHQ9c2V0VGltZW91dChBdHQsdC13dHQubm93KCktUHR0KSksdnR0JiYodnR0PWNsZWFySW50ZXJ2YWwodnR0KSkpOih2dHR8fCh4dHQ9d3R0Lm5vdygpLHZ0dD1zZXRJbnRlcnZhbChUdHQsMWUzKSksQ3R0PTEsa3R0KEF0dCkpKX1mdW5jdGlvbiB6dHQodCxlLG4pe3ZhciBvPW5ldyBSdHQ7cmV0dXJuIG8ucmVzdGFydCgoZnVuY3Rpb24obil7by5zdG9wKCksdChuK2UpfSksZT1udWxsPT1lPzA6K2Usbiksb31SdHQucHJvdG90eXBlPUV0dC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlJ0dCxyZXN0YXJ0OmZ1bmN0aW9uKHQsZSxuKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJjYWxsYmFjayBpcyBub3QgYSBmdW5jdGlvbiIpO249KG51bGw9PW4/U3R0KCk6K24pKyhudWxsPT1lPzA6K2UpLHRoaXMuX25leHR8fGJ0dD09PXRoaXN8fChidHQ/YnR0Ll9uZXh0PXRoaXM6aHR0PXRoaXMsYnR0PXRoaXMpLHRoaXMuX2NhbGw9dCx0aGlzLl90aW1lPW4sTnR0KCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLl9jYWxsJiYodGhpcy5fY2FsbD1udWxsLHRoaXMuX3RpbWU9MS8wLE50dCgpKX19O3ZhciBJdHQ9ajYoInN0YXJ0IiwiZW5kIiwiY2FuY2VsIiwiaW50ZXJydXB0IiksSHR0PVtdO2Z1bmN0aW9uIEZ0dCh0LGUsbixvLGksYSl7dmFyIHI9dC5fX3RyYW5zaXRpb247aWYocil7aWYobiBpbiByKXJldHVybn1lbHNlIHQuX190cmFuc2l0aW9uPXt9OyEoZnVuY3Rpb24gcyh0LGUsbil7dmFyIG8saT10Ll9fdHJhbnNpdGlvbjtmdW5jdGlvbiBhKHQpe24uc3RhdGU9MSxuLnRpbWVyLnJlc3RhcnQocixuLmRlbGF5LG4udGltZSksbi5kZWxheTw9dCYmcih0LW4uZGVsYXkpfWZ1bmN0aW9uIHIoYSl7dmFyIGMsZCxwLG07aWYoMSE9PW4uc3RhdGUpcmV0dXJuIGwoKTtmb3IoYyBpbiBpKWlmKChtPWlbY10pLm5hbWU9PT1uLm5hbWUpe2lmKDM9PT1tLnN0YXRlKXJldHVybiB6dHQocik7ND09PW0uc3RhdGU/KG0uc3RhdGU9NixtLnRpbWVyLnN0b3AoKSxtLm9uLmNhbGwoImludGVycnVwdCIsdCx0Ll9fZGF0YV9fLG0uaW5kZXgsbS5ncm91cCksZGVsZXRlIGlbY10pOitjPGUmJihtLnN0YXRlPTYsbS50aW1lci5zdG9wKCksbS5vbi5jYWxsKCJjYW5jZWwiLHQsdC5fX2RhdGFfXyxtLmluZGV4LG0uZ3JvdXApLGRlbGV0ZSBpW2NdKX1pZih6dHQoKGZ1bmN0aW9uKCl7Mz09PW4uc3RhdGUmJihuLnN0YXRlPTQsbi50aW1lci5yZXN0YXJ0KHMsbi5kZWxheSxuLnRpbWUpLHMoYSkpfSkpLG4uc3RhdGU9MixuLm9uLmNhbGwoInN0YXJ0Iix0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSwyPT09bi5zdGF0ZSl7Zm9yKG4uc3RhdGU9MyxvPW5ldyBBcnJheShwPW4udHdlZW4ubGVuZ3RoKSxjPTAsZD0tMTtjPHA7KytjKShtPW4udHdlZW5bY10udmFsdWUuY2FsbCh0LHQuX19kYXRhX18sbi5pbmRleCxuLmdyb3VwKSkmJihvWysrZF09bSk7by5sZW5ndGg9ZCsxfX1mdW5jdGlvbiBzKGUpe2Zvcih2YXIgaT1lPG4uZHVyYXRpb24/bi5lYXNlLmNhbGwobnVsbCxlL24uZHVyYXRpb24pOihuLnRpbWVyLnJlc3RhcnQobCksbi5zdGF0ZT01LDEpLGE9LTEscj1vLmxlbmd0aDsrK2E8cjspb1thXS5jYWxsKHQsaSk7NT09PW4uc3RhdGUmJihuLm9uLmNhbGwoImVuZCIsdCx0Ll9fZGF0YV9fLG4uaW5kZXgsbi5ncm91cCksbCgpKX1mdW5jdGlvbiBsKCl7Zm9yKHZhciBvIGluIG4uc3RhdGU9NixuLnRpbWVyLnN0b3AoKSxkZWxldGUgaVtlXSxpKXJldHVybjtkZWxldGUgdC5fX3RyYW5zaXRpb259aVtlXT1uLG4udGltZXI9RXR0KGEsMCxuLnRpbWUpfSkodCxuLHtuYW1lOmUsaW5kZXg6byxncm91cDppLG9uOkl0dCx0d2VlbjpIdHQsdGltZTphLnRpbWUsZGVsYXk6YS5kZWxheSxkdXJhdGlvbjphLmR1cmF0aW9uLGVhc2U6YS5lYXNlLHRpbWVyOm51bGwsc3RhdGU6MH0pfWZ1bmN0aW9uIEx0dCh0LGUpe3ZhciBuPVZ0dCh0LGUpO2lmKG4uc3RhdGU+MCl0aHJvdyBuZXcgRXJyb3IoInRvbyBsYXRlOyBhbHJlYWR5IHNjaGVkdWxlZCIpO3JldHVybiBufWZ1bmN0aW9uIEJ0dCh0LGUpe3ZhciBuPVZ0dCh0LGUpO2lmKG4uc3RhdGU+Myl0aHJvdyBuZXcgRXJyb3IoInRvbyBsYXRlOyBhbHJlYWR5IHJ1bm5pbmciKTtyZXR1cm4gbn1mdW5jdGlvbiBWdHQodCxlKXt2YXIgbj10Ll9fdHJhbnNpdGlvbjtpZighbnx8IShuPW5bZV0pKXRocm93IG5ldyBFcnJvcigidHJhbnNpdGlvbiBub3QgZm91bmQiKTtyZXR1cm4gbn1mdW5jdGlvbiBqdHQodCxlKXt2YXIgbixvLGksYT10Ll9fdHJhbnNpdGlvbixyPSEwO2lmKGEpe2ZvcihpIGluIGU9bnVsbD09ZT9udWxsOmUrIiIsYSkobj1hW2ldKS5uYW1lPT09ZT8obz1uLnN0YXRlPjImJm4uc3RhdGU8NSxuLnN0YXRlPTYsbi50aW1lci5zdG9wKCksbi5vbi5jYWxsKG8/ImludGVycnVwdCI6ImNhbmNlbCIsdCx0Ll9fZGF0YV9fLG4uaW5kZXgsbi5ncm91cCksZGVsZXRlIGFbaV0pOnI9ITE7ciYmZGVsZXRlIHQuX190cmFuc2l0aW9ufX1mdW5jdGlvbiBVdHQodCxlKXt2YXIgbixvO3JldHVybiBmdW5jdGlvbigpe3ZhciBpPUJ0dCh0aGlzLHQpLGE9aS50d2VlbjtpZihhIT09bilmb3IodmFyIHI9MCxzPShvPW49YSkubGVuZ3RoO3I8czsrK3IpaWYob1tyXS5uYW1lPT09ZSl7KG89by5zbGljZSgpKS5zcGxpY2UociwxKTticmVha31pLnR3ZWVuPW99fWZ1bmN0aW9uIFd0dCh0LGUsbil7dmFyIG8saTtpZigiZnVuY3Rpb24iIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9QnR0KHRoaXMsdCkscj1hLnR3ZWVuO2lmKHIhPT1vKXtpPShvPXIpLnNsaWNlKCk7Zm9yKHZhciBzPXtuYW1lOmUsdmFsdWU6bn0sbD0wLGM9aS5sZW5ndGg7bDxjOysrbClpZihpW2xdLm5hbWU9PT1lKXtpW2xdPXM7YnJlYWt9bD09PWMmJmkucHVzaChzKX1hLnR3ZWVuPWl9fWZ1bmN0aW9uIEd0dCh0LGUsbil7dmFyIG89dC5faWQ7cmV0dXJuIHQuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1CdHQodGhpcyxvKTsodC52YWx1ZXx8KHQudmFsdWU9e30pKVtlXT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pKSxmdW5jdGlvbih0KXtyZXR1cm4gVnR0KHQsbykudmFsdWVbZV19fWZ1bmN0aW9uIFl0dCh0LGUpe3ZhciBuO3JldHVybigibnVtYmVyIj09dHlwZW9mIGU/WDk6ZSBpbnN0YW5jZW9mIGk5P2o5OihuPWk5KGUpKT8oZT1uLGo5KTokOSkodCxlKX1mdW5jdGlvbiBxdHQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fWZ1bmN0aW9uIFp0dCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fWZ1bmN0aW9uIFh0dCh0LGUsbil7dmFyIG8saSxhPW4rIiI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5nZXRBdHRyaWJ1dGUodCk7cmV0dXJuIHI9PT1hP251bGw6cj09PW8/aTppPWUobz1yLG4pfX1mdW5jdGlvbiBLdHQodCxlLG4pe3ZhciBvLGksYT1uKyIiO3JldHVybiBmdW5jdGlvbigpe3ZhciByPXRoaXMuZ2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKTtyZXR1cm4gcj09PWE/bnVsbDpyPT09bz9pOmk9ZShvPXIsbil9fWZ1bmN0aW9uIEp0dCh0LGUsbil7dmFyIG8saSxhO3JldHVybiBmdW5jdGlvbigpe3ZhciByLHMsbD1uKHRoaXMpO2lmKG51bGwhPWwpcmV0dXJuKHI9dGhpcy5nZXRBdHRyaWJ1dGUodCkpPT09KHM9bCsiIik/bnVsbDpyPT09byYmcz09PWk/YTooaT1zLGE9ZShvPXIsbCkpO3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpfX1mdW5jdGlvbiBRdHQodCxlLG4pe3ZhciBvLGksYTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcixzLGw9bih0aGlzKTtpZihudWxsIT1sKXJldHVybihyPXRoaXMuZ2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKSk9PT0ocz1sKyIiKT9udWxsOnI9PT1vJiZzPT09aT9hOihpPXMsYT1lKG89cixsKSk7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpfX1mdW5jdGlvbiAkdHQodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dGhpcy5zZXRBdHRyaWJ1dGUodCxlLmNhbGwodGhpcyxuKSl9fWZ1bmN0aW9uIHRldCh0LGUpe3JldHVybiBmdW5jdGlvbihuKXt0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxlLmNhbGwodGhpcyxuKSl9fWZ1bmN0aW9uIGVldCh0LGUpe3ZhciBuLG87ZnVuY3Rpb24gaSgpe3ZhciBpPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBpIT09byYmKG49KG89aSkmJnRldCh0LGkpKSxufXJldHVybiBpLl92YWx1ZT1lLGl9ZnVuY3Rpb24gbmV0KHQsZSl7dmFyIG4sbztmdW5jdGlvbiBpKCl7dmFyIGk9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGkhPT1vJiYobj0obz1pKSYmJHR0KHQsaSkpLG59cmV0dXJuIGkuX3ZhbHVlPWUsaX1mdW5jdGlvbiBvZXQodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtMdHQodGhpcyx0KS5kZWxheT0rZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIGlldCh0LGUpe3JldHVybiBlPStlLGZ1bmN0aW9uKCl7THR0KHRoaXMsdCkuZGVsYXk9ZX19ZnVuY3Rpb24gYWV0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7QnR0KHRoaXMsdCkuZHVyYXRpb249K2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiByZXQodCxlKXtyZXR1cm4gZT0rZSxmdW5jdGlvbigpe0J0dCh0aGlzLHQpLmR1cmF0aW9uPWV9fWZ1bmN0aW9uIHNldCh0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gZnVuY3Rpb24oKXtCdHQodGhpcyx0KS5lYXNlPWV9fWZ1bmN0aW9uIGNldCh0LGUsbil7dmFyIG8saSxhPShmdW5jdGlvbiByKHQpe3JldHVybih0KyIiKS50cmltKCkuc3BsaXQoL158XHMrLykuZXZlcnkoKGZ1bmN0aW9uKHQpe3ZhciBlPXQuaW5kZXhPZigiLiIpO3JldHVybiBlPj0wJiYodD10LnNsaWNlKDAsZSkpLCF0fHwic3RhcnQiPT09dH0pKX0pKGUpP0x0dDpCdHQ7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9YSh0aGlzLHQpLHM9ci5vbjtzIT09byYmKGk9KG89cykuY29weSgpKS5vbihlLG4pLHIub249aX19dmFyIGRldD1lOC5wcm90b3R5cGUuY29uc3RydWN0b3I7ZnVuY3Rpb24gcGV0KHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCl9fWZ1bmN0aW9uIG1ldCh0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKG8pe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxlLmNhbGwodGhpcyxvKSxuKX19ZnVuY3Rpb24gZmV0KHQsZSxuKXt2YXIgbyxpO2Z1bmN0aW9uIGEoKXt2YXIgYT1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gYSE9PWkmJihvPShpPWEpJiZtZXQodCxhLG4pKSxvfXJldHVybiBhLl92YWx1ZT1lLGF9ZnVuY3Rpb24gdWV0KHQpe3JldHVybiBmdW5jdGlvbihlKXt0aGlzLnRleHRDb250ZW50PXQuY2FsbCh0aGlzLGUpfX1mdW5jdGlvbiBnZXQodCl7dmFyIGUsbjtmdW5jdGlvbiBvKCl7dmFyIG89dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG8hPT1uJiYoZT0obj1vKSYmdWV0KG8pKSxlfXJldHVybiBvLl92YWx1ZT10LG99dmFyIGhldD0wO2Z1bmN0aW9uIGJldCh0LGUsbixvKXt0aGlzLl9ncm91cHM9dCx0aGlzLl9wYXJlbnRzPWUsdGhpcy5fbmFtZT1uLHRoaXMuX2lkPW99ZnVuY3Rpb24geWV0KCl7cmV0dXJuKytoZXR9dmFyIF9ldD1lOC5wcm90b3R5cGU7YmV0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6YmV0LHNlbGVjdDpmdW5jdGlvbiBDZXQodCl7dmFyIGU9dGhpcy5fbmFtZSxuPXRoaXMuX2lkOyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD10Nyh0KSk7Zm9yKHZhciBvPXRoaXMuX2dyb3VwcyxpPW8ubGVuZ3RoLGE9bmV3IEFycmF5KGkpLHI9MDtyPGk7KytyKWZvcih2YXIgcyxsLGM9b1tyXSxkPWMubGVuZ3RoLHA9YVtyXT1uZXcgQXJyYXkoZCksbT0wO208ZDsrK20pKHM9Y1ttXSkmJihsPXQuY2FsbChzLHMuX19kYXRhX18sbSxjKSkmJigiX19kYXRhX18iaW4gcyYmKGwuX19kYXRhX189cy5fX2RhdGFfXykscFttXT1sLEZ0dChwW21dLGUsbixtLHAsVnR0KHMsbikpKTtyZXR1cm4gbmV3IGJldChhLHRoaXMuX3BhcmVudHMsZSxuKX0sc2VsZWN0QWxsOmZ1bmN0aW9uIE1ldCh0KXt2YXIgZT10aGlzLl9uYW1lLG49dGhpcy5faWQ7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PW43KHQpKTtmb3IodmFyIG89dGhpcy5fZ3JvdXBzLGk9by5sZW5ndGgsYT1bXSxyPVtdLHM9MDtzPGk7KytzKWZvcih2YXIgbCxjPW9bc10sZD1jLmxlbmd0aCxwPTA7cDxkOysrcClpZihsPWNbcF0pe2Zvcih2YXIgbSxmPXQuY2FsbChsLGwuX19kYXRhX18scCxjKSx1PVZ0dChsLG4pLGc9MCxoPWYubGVuZ3RoO2c8aDsrK2cpKG09ZltnXSkmJkZ0dChtLGUsbixnLGYsdSk7YS5wdXNoKGYpLHIucHVzaChsKX1yZXR1cm4gbmV3IGJldChhLHIsZSxuKX0sZmlsdGVyOmZ1bmN0aW9uIHZldCh0KXsiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9bzcodCkpO2Zvcih2YXIgZT10aGlzLl9ncm91cHMsbj1lLmxlbmd0aCxvPW5ldyBBcnJheShuKSxpPTA7aTxuOysraSlmb3IodmFyIGEscj1lW2ldLHM9ci5sZW5ndGgsbD1vW2ldPVtdLGM9MDtjPHM7KytjKShhPXJbY10pJiZ0LmNhbGwoYSxhLl9fZGF0YV9fLGMscikmJmwucHVzaChhKTtyZXR1cm4gbmV3IGJldChvLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9LG1lcmdlOmZ1bmN0aW9uIHhldCh0KXtpZih0Ll9pZCE9PXRoaXMuX2lkKXRocm93IG5ldyBFcnJvcjtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLG49dC5fZ3JvdXBzLG89ZS5sZW5ndGgsaT1NYXRoLm1pbihvLG4ubGVuZ3RoKSxhPW5ldyBBcnJheShvKSxyPTA7cjxpOysrcilmb3IodmFyIHMsbD1lW3JdLGM9bltyXSxkPWwubGVuZ3RoLHA9YVtyXT1uZXcgQXJyYXkoZCksbT0wO208ZDsrK20pKHM9bFttXXx8Y1ttXSkmJihwW21dPXMpO2Zvcig7cjxvOysrcilhW3JdPWVbcl07cmV0dXJuIG5ldyBiZXQoYSx0aGlzLl9wYXJlbnRzLHRoaXMuX25hbWUsdGhpcy5faWQpfSxzZWxlY3Rpb246ZnVuY3Rpb24gT2V0KCl7cmV0dXJuIG5ldyBkZXQodGhpcy5fZ3JvdXBzLHRoaXMuX3BhcmVudHMpfSx0cmFuc2l0aW9uOmZ1bmN0aW9uIFBldCgpe2Zvcih2YXIgdD10aGlzLl9uYW1lLGU9dGhpcy5faWQsbj15ZXQoKSxvPXRoaXMuX2dyb3VwcyxpPW8ubGVuZ3RoLGE9MDthPGk7KythKWZvcih2YXIgcixzPW9bYV0sbD1zLmxlbmd0aCxjPTA7YzxsOysrYylpZihyPXNbY10pe3ZhciBkPVZ0dChyLGUpO0Z0dChyLHQsbixjLHMse3RpbWU6ZC50aW1lK2QuZGVsYXkrZC5kdXJhdGlvbixkZWxheTowLGR1cmF0aW9uOmQuZHVyYXRpb24sZWFzZTpkLmVhc2V9KX1yZXR1cm4gbmV3IGJldChvLHRoaXMuX3BhcmVudHMsdCxuKX0sY2FsbDpfZXQuY2FsbCxub2RlczpfZXQubm9kZXMsbm9kZTpfZXQubm9kZSxzaXplOl9ldC5zaXplLGVtcHR5Ol9ldC5lbXB0eSxlYWNoOl9ldC5lYWNoLG9uOmZ1bmN0aW9uIHdldCh0LGUpe3ZhciBuPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI/VnR0KHRoaXMubm9kZSgpLG4pLm9uLm9uKHQpOnRoaXMuZWFjaChjZXQobix0LGUpKX0sYXR0cjpmdW5jdGlvbiBrZXQodCxlKXt2YXIgbj1YNih0KSxvPSJ0cmFuc2Zvcm0iPT09bj9tdHQ6WXR0O3JldHVybiB0aGlzLmF0dHJUd2Vlbih0LCJmdW5jdGlvbiI9PXR5cGVvZiBlPyhuLmxvY2FsP1F0dDpKdHQpKG4sbyxHdHQodGhpcywiYXR0ci4iK3QsZSkpOm51bGw9PWU/KG4ubG9jYWw/WnR0OnF0dCkobik6KG4ubG9jYWw/S3R0Olh0dCkobixvLGUpKX0sYXR0clR3ZWVuOmZ1bmN0aW9uIERldCh0LGUpe3ZhciBuPSJhdHRyLiIrdDtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKG49dGhpcy50d2VlbihuKSkmJm4uX3ZhbHVlO2lmKG51bGw9PWUpcmV0dXJuIHRoaXMudHdlZW4obixudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7dmFyIG89WDYodCk7cmV0dXJuIHRoaXMudHdlZW4obiwoby5sb2NhbD9lZXQ6bmV0KShvLGUpKX0sc3R5bGU6ZnVuY3Rpb24gUmV0KHQsZSxuKXt2YXIgbz0idHJhbnNmb3JtIj09KHQrPSIiKT9kdHQ6WXR0O3JldHVybiBudWxsPT1lP3RoaXMuc3R5bGVUd2Vlbih0LChmdW5jdGlvbiBpKHQsZSl7dmFyIG4sbyxpO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPV83KHRoaXMsdCkscj0odGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KSxfNyh0aGlzLHQpKTtyZXR1cm4gYT09PXI/bnVsbDphPT09biYmcj09PW8/aTppPWUobj1hLG89cil9fSkodCxvKSkub24oImVuZC5zdHlsZS4iK3QscGV0KHQpKToiZnVuY3Rpb24iPT10eXBlb2YgZT90aGlzLnN0eWxlVHdlZW4odCwoZnVuY3Rpb24gcih0LGUsbil7dmFyIG8saSxhO3JldHVybiBmdW5jdGlvbigpe3ZhciByPV83KHRoaXMsdCkscz1uKHRoaXMpLGw9cysiIjtyZXR1cm4gbnVsbD09cyYmKHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCksbD1zPV83KHRoaXMsdCkpLHI9PT1sP251bGw6cj09PW8mJmw9PT1pP2E6KGk9bCxhPWUobz1yLHMpKX19KSh0LG8sR3R0KHRoaXMsInN0eWxlLiIrdCxlKSkpLmVhY2goKGZ1bmN0aW9uIGEodCxlKXt2YXIgbixvLGksYSxyPSJzdHlsZS4iK2Uscz0iZW5kLiIrcjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbD1CdHQodGhpcyx0KSxjPWwub24sZD1udWxsPT1sLnZhbHVlW3JdP2F8fChhPXBldChlKSk6dm9pZCAwO2M9PT1uJiZpPT09ZHx8KG89KG49YykuY29weSgpKS5vbihzLGk9ZCksbC5vbj1vfX0pKHRoaXMuX2lkLHQpKTp0aGlzLnN0eWxlVHdlZW4odCwoZnVuY3Rpb24gcyh0LGUsbil7dmFyIG8saSxhPW4rIiI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9XzcodGhpcyx0KTtyZXR1cm4gcj09PWE/bnVsbDpyPT09bz9pOmk9ZShvPXIsbil9fSkodCxvLGUpLG4pLm9uKCJlbmQuc3R5bGUuIit0LG51bGwpfSxzdHlsZVR3ZWVuOmZ1bmN0aW9uIEVldCh0LGUsbil7dmFyIG89InN0eWxlLiIrKHQrPSIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKG89dGhpcy50d2VlbihvKSkmJm8uX3ZhbHVlO2lmKG51bGw9PWUpcmV0dXJuIHRoaXMudHdlZW4obyxudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4obyxmZXQodCxlLG51bGw9PW4/IiI6bikpfSx0ZXh0OmZ1bmN0aW9uIEFldCh0KXtyZXR1cm4gdGhpcy50d2VlbigidGV4dCIsImZ1bmN0aW9uIj09dHlwZW9mIHQ/KGZ1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dCh0aGlzKTt0aGlzLnRleHRDb250ZW50PW51bGw9PWU/IiI6ZX19KShHdHQodGhpcywidGV4dCIsdCkpOihmdW5jdGlvbiBuKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH19KShudWxsPT10PyIiOnQrIiIpKX0sdGV4dFR3ZWVuOmZ1bmN0aW9uIFRldCh0KXt2YXIgZT0idGV4dCI7aWYoYXJndW1lbnRzLmxlbmd0aDwxKXJldHVybihlPXRoaXMudHdlZW4oZSkpJiZlLl92YWx1ZTtpZihudWxsPT10KXJldHVybiB0aGlzLnR3ZWVuKGUsbnVsbCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yO3JldHVybiB0aGlzLnR3ZWVuKGUsZ2V0KHQpKX0scmVtb3ZlOmZ1bmN0aW9uIE5ldCgpe3JldHVybiB0aGlzLm9uKCJlbmQucmVtb3ZlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBhcmVudE5vZGU7Zm9yKHZhciBuIGluIHRoaXMuX190cmFuc2l0aW9uKWlmKCtuIT09ZSlyZXR1cm47dCYmdC5yZW1vdmVDaGlsZCh0aGlzKX19KSh0aGlzLl9pZCkpfSx0d2VlbjpmdW5jdGlvbiB6ZXQodCxlKXt2YXIgbj10aGlzLl9pZDtpZih0Kz0iIixhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgbyxpPVZ0dCh0aGlzLm5vZGUoKSxuKS50d2VlbixhPTAscj1pLmxlbmd0aDthPHI7KythKWlmKChvPWlbYV0pLm5hbWU9PT10KXJldHVybiBvLnZhbHVlO3JldHVybiBudWxsfXJldHVybiB0aGlzLmVhY2goKG51bGw9PWU/VXR0Old0dCkobix0LGUpKX0sZGVsYXk6ZnVuY3Rpb24gSWV0KHQpe3ZhciBlPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIHQ/b2V0OmlldCkoZSx0KSk6VnR0KHRoaXMubm9kZSgpLGUpLmRlbGF5fSxkdXJhdGlvbjpmdW5jdGlvbiBIZXQodCl7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgdD9hZXQ6cmV0KShlLHQpKTpWdHQodGhpcy5ub2RlKCksZSkuZHVyYXRpb259LGVhc2U6ZnVuY3Rpb24gRmV0KHQpe3ZhciBlPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChzZXQoZSx0KSk6VnR0KHRoaXMubm9kZSgpLGUpLmVhc2V9LGVuZDpmdW5jdGlvbiBMZXQoKXt2YXIgdCxlLG49dGhpcyxvPW4uX2lkLGk9bi5zaXplKCk7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihhLHIpe3ZhciBzPXt2YWx1ZTpyfSxsPXt2YWx1ZTpmdW5jdGlvbigpezA9PS0taSYmYSgpfX07bi5lYWNoKChmdW5jdGlvbigpe3ZhciBuPUJ0dCh0aGlzLG8pLGk9bi5vbjtpIT09dCYmKChlPSh0PWkpLmNvcHkoKSkuXy5jYW5jZWwucHVzaChzKSxlLl8uaW50ZXJydXB0LnB1c2gocyksZS5fLmVuZC5wdXNoKGwpKSxuLm9uPWV9KSl9KSl9fTt2YXIgQmV0PXt0aW1lOm51bGwsZGVsYXk6MCxkdXJhdGlvbjoyNTAsZWFzZTpmdW5jdGlvbiBWZXQodCl7cmV0dXJuKCh0Kj0yKTw9MT90KnQqdDoodC09MikqdCp0KzIpLzJ9fTtmdW5jdGlvbiBqZXQodCxlKXtmb3IodmFyIG47IShuPXQuX190cmFuc2l0aW9uKXx8IShuPW5bZV0pOylpZighKHQ9dC5wYXJlbnROb2RlKSlyZXR1cm4gQmV0LnRpbWU9U3R0KCksQmV0O3JldHVybiBufWZ1bmN0aW9uIFVldCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gV2V0KHQsZSxuKXt0aGlzLnRhcmdldD10LHRoaXMudHlwZT1lLHRoaXMuc2VsZWN0aW9uPW59ZnVuY3Rpb24gR2V0KCl7Vzcuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gWWV0KCl7VzcucHJldmVudERlZmF1bHQoKSxXNy5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1lOC5wcm90b3R5cGUuaW50ZXJydXB0PWZ1bmN0aW9uIHFldCh0KXtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe2p0dCh0aGlzLHQpfSkpfSxlOC5wcm90b3R5cGUudHJhbnNpdGlvbj1mdW5jdGlvbiBaZXQodCl7dmFyIGUsbjt0IGluc3RhbmNlb2YgYmV0PyhlPXQuX2lkLHQ9dC5fbmFtZSk6KGU9eWV0KCksKG49QmV0KS50aW1lPVN0dCgpLHQ9bnVsbD09dD9udWxsOnQrIiIpO2Zvcih2YXIgbz10aGlzLl9ncm91cHMsaT1vLmxlbmd0aCxhPTA7YTxpOysrYSlmb3IodmFyIHIscz1vW2FdLGw9cy5sZW5ndGgsYz0wO2M8bDsrK2MpKHI9c1tjXSkmJkZ0dChyLHQsZSxjLHMsbnx8amV0KHIsZSkpO3JldHVybiBuZXcgYmV0KG8sdGhpcy5fcGFyZW50cyx0LGUpfTt2YXIgWGV0PXtuYW1lOiJkcmFnIn0sS2V0PXtuYW1lOiJzcGFjZSJ9LEpldD17bmFtZToiaGFuZGxlIn0sUWV0PXtuYW1lOiJjZW50ZXIifTtmdW5jdGlvbiAkZXQodCl7cmV0dXJuWyt0WzBdLCt0WzFdXX1mdW5jdGlvbiB0bnQodCl7cmV0dXJuWyRldCh0WzBdKSwkZXQodFsxXSldfWZ1bmN0aW9uIGVudCh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuKGZ1bmN0aW9uIG4odCxlLG8pe2FyZ3VtZW50cy5sZW5ndGg8MyYmKG89ZSxlPW84KCkuY2hhbmdlZFRvdWNoZXMpO2Zvcih2YXIgaSxhPTAscj1lP2UubGVuZ3RoOjA7YTxyOysrYSlpZigoaT1lW2FdKS5pZGVudGlmaWVyPT09bylyZXR1cm4gaTgodCxpKTtyZXR1cm4gbnVsbH0pKGUsVzcudG91Y2hlcyx0KX19dmFyIG5udD17bmFtZToieCIsaGFuZGxlczpbInciLCJlIl0ubWFwKGNudCksaW5wdXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dD9udWxsOltbK3RbMF0sZVswXVsxXV0sWyt0WzFdLGVbMV1bMV1dXX0sb3V0cHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZbdFswXVswXSx0WzFdWzBdXX19LG9udD17bmFtZToieSIsaGFuZGxlczpbIm4iLCJzIl0ubWFwKGNudCksaW5wdXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dD9udWxsOltbZVswXVswXSwrdFswXV0sW2VbMV1bMF0sK3RbMV1dXX0sb3V0cHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZbdFswXVsxXSx0WzFdWzFdXX19LGludD17b3ZlcmxheToiY3Jvc3NoYWlyIixzZWxlY3Rpb246Im1vdmUiLG46Im5zLXJlc2l6ZSIsZToiZXctcmVzaXplIixzOiJucy1yZXNpemUiLHc6ImV3LXJlc2l6ZSIsbnc6Im53c2UtcmVzaXplIixuZToibmVzdy1yZXNpemUiLHNlOiJud3NlLXJlc2l6ZSIsc3c6Im5lc3ctcmVzaXplIn0sYW50PXtlOiJ3Iix3OiJlIixudzoibmUiLG5lOiJudyIsc2U6InN3Iixzdzoic2UifSxybnQ9e246InMiLHM6Im4iLG53OiJzdyIsbmU6InNlIixzZToibmUiLHN3OiJudyJ9LHNudD17b3ZlcmxheToxLHNlbGVjdGlvbjoxLG46bnVsbCxlOjEsczpudWxsLHc6LTEsbnc6LTEsbmU6MSxzZToxLHN3Oi0xfSxsbnQ9e292ZXJsYXk6MSxzZWxlY3Rpb246MSxuOi0xLGU6bnVsbCxzOjEsdzpudWxsLG53Oi0xLG5lOi0xLHNlOjEsc3c6MX07ZnVuY3Rpb24gY250KHQpe3JldHVybnt0eXBlOnR9fWZ1bmN0aW9uIGRudCgpe3JldHVybiFXNy5jdHJsS2V5JiYhVzcuYnV0dG9ufWZ1bmN0aW9uIHBudCgpe3ZhciB0PXRoaXMub3duZXJTVkdFbGVtZW50fHx0aGlzO3JldHVybiB0Lmhhc0F0dHJpYnV0ZSgidmlld0JveCIpP1tbKHQ9dC52aWV3Qm94LmJhc2VWYWwpLngsdC55XSxbdC54K3Qud2lkdGgsdC55K3QuaGVpZ2h0XV06W1swLDBdLFt0LndpZHRoLmJhc2VWYWwudmFsdWUsdC5oZWlnaHQuYmFzZVZhbC52YWx1ZV1dfWZ1bmN0aW9uIG1udCgpe3JldHVybiBuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHN8fCJvbnRvdWNoc3RhcnQiaW4gdGhpc31mdW5jdGlvbiBmbnQodCl7Zm9yKDshdC5fX2JydXNoOylpZighKHQ9dC5wYXJlbnROb2RlKSlyZXR1cm47cmV0dXJuIHQuX19icnVzaH1mdW5jdGlvbiB1bnQodCl7cmV0dXJuIHRbMF1bMF09PT10WzFdWzBdfHx0WzBdWzFdPT09dFsxXVsxXX1mdW5jdGlvbiBnbnQoKXtyZXR1cm4oZnVuY3Rpb24gdChlKXt2YXIgbixvPXBudCxpPWRudCxhPW1udCxyPSEwLHM9ajYoInN0YXJ0IiwiYnJ1c2giLCJlbmQiKSxsPTY7ZnVuY3Rpb24gYyh0KXt2YXIgbj10LnByb3BlcnR5KCJfX2JydXNoIixoKS5zZWxlY3RBbGwoIi5vdmVybGF5IikuZGF0YShbY250KCJvdmVybGF5IildKTtuLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cigiY2xhc3MiLCJvdmVybGF5IikuYXR0cigicG9pbnRlci1ldmVudHMiLCJhbGwiKS5hdHRyKCJjdXJzb3IiLGludC5vdmVybGF5KS5tZXJnZShuKS5lYWNoKChmdW5jdGlvbigpe3ZhciB0PWZudCh0aGlzKS5leHRlbnQ7bjgodGhpcykuYXR0cigieCIsdFswXVswXSkuYXR0cigieSIsdFswXVsxXSkuYXR0cigid2lkdGgiLHRbMV1bMF0tdFswXVswXSkuYXR0cigiaGVpZ2h0Iix0WzFdWzFdLXRbMF1bMV0pfSkpLHQuc2VsZWN0QWxsKCIuc2VsZWN0aW9uIikuZGF0YShbY250KCJzZWxlY3Rpb24iKV0pLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cigiY2xhc3MiLCJzZWxlY3Rpb24iKS5hdHRyKCJjdXJzb3IiLGludC5zZWxlY3Rpb24pLmF0dHIoImZpbGwiLCIjNzc3IikuYXR0cigiZmlsbC1vcGFjaXR5IiwuMykuYXR0cigic3Ryb2tlIiwiI2ZmZiIpLmF0dHIoInNoYXBlLXJlbmRlcmluZyIsImNyaXNwRWRnZXMiKTt2YXIgbz10LnNlbGVjdEFsbCgiLmhhbmRsZSIpLmRhdGEoZS5oYW5kbGVzLChmdW5jdGlvbih0KXtyZXR1cm4gdC50eXBlfSkpO28uZXhpdCgpLnJlbW92ZSgpLG8uZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJjbGFzcyIsKGZ1bmN0aW9uKHQpe3JldHVybiJoYW5kbGUgaGFuZGxlLS0iK3QudHlwZX0pKS5hdHRyKCJjdXJzb3IiLChmdW5jdGlvbih0KXtyZXR1cm4gaW50W3QudHlwZV19KSksdC5lYWNoKGQpLmF0dHIoImZpbGwiLCJub25lIikuYXR0cigicG9pbnRlci1ldmVudHMiLCJhbGwiKS5vbigibW91c2Vkb3duLmJydXNoIixmKS5maWx0ZXIoYSkub24oInRvdWNoc3RhcnQuYnJ1c2giLGYpLm9uKCJ0b3VjaG1vdmUuYnJ1c2giLHUpLm9uKCJ0b3VjaGVuZC5icnVzaCB0b3VjaGNhbmNlbC5icnVzaCIsZykuc3R5bGUoInRvdWNoLWFjdGlvbiIsIm5vbmUiKS5zdHlsZSgiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yIiwicmdiYSgwLDAsMCwwKSIpfWZ1bmN0aW9uIGQoKXt2YXIgdD1uOCh0aGlzKSxlPWZudCh0aGlzKS5zZWxlY3Rpb247ZT8odC5zZWxlY3RBbGwoIi5zZWxlY3Rpb24iKS5zdHlsZSgiZGlzcGxheSIsbnVsbCkuYXR0cigieCIsZVswXVswXSkuYXR0cigieSIsZVswXVsxXSkuYXR0cigid2lkdGgiLGVbMV1bMF0tZVswXVswXSkuYXR0cigiaGVpZ2h0IixlWzFdWzFdLWVbMF1bMV0pLHQuc2VsZWN0QWxsKCIuaGFuZGxlIikuc3R5bGUoImRpc3BsYXkiLG51bGwpLmF0dHIoIngiLChmdW5jdGlvbih0KXtyZXR1cm4iZSI9PT10LnR5cGVbdC50eXBlLmxlbmd0aC0xXT9lWzFdWzBdLWwvMjplWzBdWzBdLWwvMn0pKS5hdHRyKCJ5IiwoZnVuY3Rpb24odCl7cmV0dXJuInMiPT09dC50eXBlWzBdP2VbMV1bMV0tbC8yOmVbMF1bMV0tbC8yfSkpLmF0dHIoIndpZHRoIiwoZnVuY3Rpb24odCl7cmV0dXJuIm4iPT09dC50eXBlfHwicyI9PT10LnR5cGU/ZVsxXVswXS1lWzBdWzBdK2w6bH0pKS5hdHRyKCJoZWlnaHQiLChmdW5jdGlvbih0KXtyZXR1cm4iZSI9PT10LnR5cGV8fCJ3Ij09PXQudHlwZT9lWzFdWzFdLWVbMF1bMV0rbDpsfSkpKTp0LnNlbGVjdEFsbCgiLnNlbGVjdGlvbiwuaGFuZGxlIikuc3R5bGUoImRpc3BsYXkiLCJub25lIikuYXR0cigieCIsbnVsbCkuYXR0cigieSIsbnVsbCkuYXR0cigid2lkdGgiLG51bGwpLmF0dHIoImhlaWdodCIsbnVsbCl9ZnVuY3Rpb24gcCh0LGUsbil7dmFyIG89dC5fX2JydXNoLmVtaXR0ZXI7cmV0dXJuIW98fG4mJm8uY2xlYW4/bmV3IG0odCxlLG4pOm99ZnVuY3Rpb24gbSh0LGUsbil7dGhpcy50aGF0PXQsdGhpcy5hcmdzPWUsdGhpcy5zdGF0ZT10Ll9fYnJ1c2gsdGhpcy5hY3RpdmU9MCx0aGlzLmNsZWFuPW59ZnVuY3Rpb24gZigpe2lmKCghbnx8VzcudG91Y2hlcykmJmkuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgdCxvLGEscyxsLGMsbSxmLHUsZyxoLGI9dGhpcyx5PVc3LnRhcmdldC5fX2RhdGFfXy50eXBlLF89InNlbGVjdGlvbiI9PT0ociYmVzcubWV0YUtleT95PSJvdmVybGF5Ijp5KT9YZXQ6ciYmVzcuYWx0S2V5P1FldDpKZXQsQz1lPT09b250P251bGw6c250W3ldLE09ZT09PW5udD9udWxsOmxudFt5XSx2PWZudChiKSx4PXYuZXh0ZW50LE89di5zZWxlY3Rpb24sUD14WzBdWzBdLHc9eFswXVsxXSxrPXhbMV1bMF0sUz14WzFdWzFdLEQ9MCxSPTAsRT1DJiZNJiZyJiZXNy5zaGlmdEtleSxBPVc3LnRvdWNoZXM/ZW50KFc3LmNoYW5nZWRUb3VjaGVzWzBdLmlkZW50aWZpZXIpOmE4LFQ9QShiKSxOPVQsej1wKGIsYXJndW1lbnRzLCEwKS5iZWZvcmVzdGFydCgpOyJvdmVybGF5Ij09PXk/KE8mJih1PSEwKSx2LnNlbGVjdGlvbj1PPVtbdD1lPT09b250P1A6VFswXSxhPWU9PT1ubnQ/dzpUWzFdXSxbbD1lPT09b250P2s6dCxtPWU9PT1ubnQ/UzphXV0pOih0PU9bMF1bMF0sYT1PWzBdWzFdLGw9T1sxXVswXSxtPU9bMV1bMV0pLG89dCxzPWEsYz1sLGY9bTt2YXIgST1uOChiKS5hdHRyKCJwb2ludGVyLWV2ZW50cyIsIm5vbmUiKSxIPUkuc2VsZWN0QWxsKCIub3ZlcmxheSIpLmF0dHIoImN1cnNvciIsaW50W3ldKTtpZihXNy50b3VjaGVzKXoubW92ZWQ9TCx6LmVuZGVkPVY7ZWxzZXt2YXIgRj1uOChXNy52aWV3KS5vbigibW91c2Vtb3ZlLmJydXNoIixMLCEwKS5vbigibW91c2V1cC5icnVzaCIsViwhMCk7ciYmRi5vbigia2V5ZG93bi5icnVzaCIsaiwhMCkub24oImtleXVwLmJydXNoIixVLCEwKSxzOChXNy52aWV3KX1HZXQoKSxqdHQoYiksZC5jYWxsKGIpLHouc3RhcnQoKX1mdW5jdGlvbiBMKCl7dmFyIHQ9QShiKTshRXx8Z3x8aHx8KE1hdGguYWJzKHRbMF0tTlswXSk+TWF0aC5hYnModFsxXS1OWzFdKT9oPSEwOmc9ITApLE49dCx1PSEwLFlldCgpLEIoKX1mdW5jdGlvbiBCKCl7dmFyIGU7c3dpdGNoKEQ9TlswXS1UWzBdLFI9TlsxXS1UWzFdLF8pe2Nhc2UgS2V0OmNhc2UgWGV0OkMmJihEPU1hdGgubWF4KFAtdCxNYXRoLm1pbihrLWwsRCkpLG89dCtELGM9bCtEKSxNJiYoUj1NYXRoLm1heCh3LWEsTWF0aC5taW4oUy1tLFIpKSxzPWErUixmPW0rUik7YnJlYWs7Y2FzZSBKZXQ6QzwwPyhEPU1hdGgubWF4KFAtdCxNYXRoLm1pbihrLXQsRCkpLG89dCtELGM9bCk6Qz4wJiYoRD1NYXRoLm1heChQLWwsTWF0aC5taW4oay1sLEQpKSxvPXQsYz1sK0QpLE08MD8oUj1NYXRoLm1heCh3LWEsTWF0aC5taW4oUy1hLFIpKSxzPWErUixmPW0pOk0+MCYmKFI9TWF0aC5tYXgody1tLE1hdGgubWluKFMtbSxSKSkscz1hLGY9bStSKTticmVhaztjYXNlIFFldDpDJiYobz1NYXRoLm1heChQLE1hdGgubWluKGssdC1EKkMpKSxjPU1hdGgubWF4KFAsTWF0aC5taW4oayxsK0QqQykpKSxNJiYocz1NYXRoLm1heCh3LE1hdGgubWluKFMsYS1SKk0pKSxmPU1hdGgubWF4KHcsTWF0aC5taW4oUyxtK1IqTSkpKX1jPG8mJihDKj0tMSxlPXQsdD1sLGw9ZSxlPW8sbz1jLGM9ZSx5IGluIGFudCYmSC5hdHRyKCJjdXJzb3IiLGludFt5PWFudFt5XV0pKSxmPHMmJihNKj0tMSxlPWEsYT1tLG09ZSxlPXMscz1mLGY9ZSx5IGluIHJudCYmSC5hdHRyKCJjdXJzb3IiLGludFt5PXJudFt5XV0pKSx2LnNlbGVjdGlvbiYmKE89di5zZWxlY3Rpb24pLGcmJihvPU9bMF1bMF0sYz1PWzFdWzBdKSxoJiYocz1PWzBdWzFdLGY9T1sxXVsxXSksT1swXVswXT09PW8mJk9bMF1bMV09PT1zJiZPWzFdWzBdPT09YyYmT1sxXVsxXT09PWZ8fCh2LnNlbGVjdGlvbj1bW28sc10sW2MsZl1dLGQuY2FsbChiKSx6LmJydXNoKCkpfWZ1bmN0aW9uIFYoKXtpZihHZXQoKSxXNy50b3VjaGVzKXtpZihXNy50b3VjaGVzLmxlbmd0aClyZXR1cm47biYmY2xlYXJUaW1lb3V0KG4pLG49c2V0VGltZW91dCgoZnVuY3Rpb24oKXtuPW51bGx9KSw1MDApfWVsc2UgbDgoVzcudmlldyx1KSxGLm9uKCJrZXlkb3duLmJydXNoIGtleXVwLmJydXNoIG1vdXNlbW92ZS5icnVzaCBtb3VzZXVwLmJydXNoIixudWxsKTtJLmF0dHIoInBvaW50ZXItZXZlbnRzIiwiYWxsIiksSC5hdHRyKCJjdXJzb3IiLGludC5vdmVybGF5KSx2LnNlbGVjdGlvbiYmKE89di5zZWxlY3Rpb24pLHVudChPKSYmKHYuc2VsZWN0aW9uPW51bGwsZC5jYWxsKGIpKSx6LmVuZCgpfWZ1bmN0aW9uIGooKXtzd2l0Y2goVzcua2V5Q29kZSl7Y2FzZSAxNjpFPUMmJk07YnJlYWs7Y2FzZSAxODpfPT09SmV0JiYoQyYmKGw9Yy1EKkMsdD1vK0QqQyksTSYmKG09Zi1SKk0sYT1zK1IqTSksXz1RZXQsQigpKTticmVhaztjYXNlIDMyOl8hPT1KZXQmJl8hPT1RZXR8fChDPDA/bD1jLUQ6Qz4wJiYodD1vLUQpLE08MD9tPWYtUjpNPjAmJihhPXMtUiksXz1LZXQsSC5hdHRyKCJjdXJzb3IiLGludC5zZWxlY3Rpb24pLEIoKSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm59WWV0KCl9ZnVuY3Rpb24gVSgpe3N3aXRjaChXNy5rZXlDb2RlKXtjYXNlIDE2OkUmJihnPWg9RT0hMSxCKCkpO2JyZWFrO2Nhc2UgMTg6Xz09PVFldCYmKEM8MD9sPWM6Qz4wJiYodD1vKSxNPDA/bT1mOk0+MCYmKGE9cyksXz1KZXQsQigpKTticmVhaztjYXNlIDMyOl89PT1LZXQmJihXNy5hbHRLZXk/KEMmJihsPWMtRCpDLHQ9bytEKkMpLE0mJihtPWYtUipNLGE9cytSKk0pLF89UWV0KTooQzwwP2w9YzpDPjAmJih0PW8pLE08MD9tPWY6TT4wJiYoYT1zKSxfPUpldCksSC5hdHRyKCJjdXJzb3IiLGludFt5XSksQigpKTticmVhaztkZWZhdWx0OnJldHVybn1ZZXQoKX19ZnVuY3Rpb24gdSgpe3AodGhpcyxhcmd1bWVudHMpLm1vdmVkKCl9ZnVuY3Rpb24gZygpe3AodGhpcyxhcmd1bWVudHMpLmVuZGVkKCl9ZnVuY3Rpb24gaCgpe3ZhciB0PXRoaXMuX19icnVzaHx8e3NlbGVjdGlvbjpudWxsfTtyZXR1cm4gdC5leHRlbnQ9dG50KG8uYXBwbHkodGhpcyxhcmd1bWVudHMpKSx0LmRpbT1lLHR9cmV0dXJuIGMubW92ZT1mdW5jdGlvbih0LG4pe3Quc2VsZWN0aW9uP3Qub24oInN0YXJ0LmJydXNoIiwoZnVuY3Rpb24oKXtwKHRoaXMsYXJndW1lbnRzKS5iZWZvcmVzdGFydCgpLnN0YXJ0KCl9KSkub24oImludGVycnVwdC5icnVzaCBlbmQuYnJ1c2giLChmdW5jdGlvbigpe3AodGhpcyxhcmd1bWVudHMpLmVuZCgpfSkpLnR3ZWVuKCJicnVzaCIsKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxvPXQuX19icnVzaCxpPXAodCxhcmd1bWVudHMpLGE9by5zZWxlY3Rpb24scj1lLmlucHV0KCJmdW5jdGlvbiI9PXR5cGVvZiBuP24uYXBwbHkodGhpcyxhcmd1bWVudHMpOm4sby5leHRlbnQpLHM9dHR0KGEscik7ZnVuY3Rpb24gbChlKXtvLnNlbGVjdGlvbj0xPT09ZSYmbnVsbD09PXI/bnVsbDpzKGUpLGQuY2FsbCh0KSxpLmJydXNoKCl9cmV0dXJuIG51bGwhPT1hJiZudWxsIT09cj9sOmwoMSl9KSk6dC5lYWNoKChmdW5jdGlvbigpe3ZhciB0PXRoaXMsbz1hcmd1bWVudHMsaT10Ll9fYnJ1c2gsYT1lLmlucHV0KCJmdW5jdGlvbiI9PXR5cGVvZiBuP24uYXBwbHkodCxvKTpuLGkuZXh0ZW50KSxyPXAodCxvKS5iZWZvcmVzdGFydCgpO2p0dCh0KSxpLnNlbGVjdGlvbj1udWxsPT09YT9udWxsOmEsZC5jYWxsKHQpLHIuc3RhcnQoKS5icnVzaCgpLmVuZCgpfSkpfSxjLmNsZWFyPWZ1bmN0aW9uKHQpe2MubW92ZSh0LG51bGwpfSxtLnByb3RvdHlwZT17YmVmb3Jlc3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMT09Kyt0aGlzLmFjdGl2ZSYmKHRoaXMuc3RhdGUuZW1pdHRlcj10aGlzLHRoaXMuc3RhcnRpbmc9ITApLHRoaXN9LHN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhcnRpbmc/KHRoaXMuc3RhcnRpbmc9ITEsdGhpcy5lbWl0KCJzdGFydCIpKTp0aGlzLmVtaXQoImJydXNoIiksdGhpc30sYnJ1c2g6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbWl0KCJicnVzaCIpLHRoaXN9LGVuZDpmdW5jdGlvbigpe3JldHVybiAwPT0tLXRoaXMuYWN0aXZlJiYoZGVsZXRlIHRoaXMuc3RhdGUuZW1pdHRlcix0aGlzLmVtaXQoImVuZCIpKSx0aGlzfSxlbWl0OmZ1bmN0aW9uKHQpeyEoZnVuY3Rpb24gbih0LGUsbyxpKXt2YXIgYT1XNzt0LnNvdXJjZUV2ZW50PVc3LFc3PXQ7dHJ5e3JldHVybiBlLmFwcGx5KG8saSl9ZmluYWxseXtXNz1hfX0pKG5ldyBXZXQoYyx0LGUub3V0cHV0KHRoaXMuc3RhdGUuc2VsZWN0aW9uKSkscy5hcHBseSxzLFt0LHRoaXMudGhhdCx0aGlzLmFyZ3NdKX19LGMuZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6VWV0KHRudCh0KSksYyk6b30sYy5maWx0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpVZXQoISF0KSxjKTppfSxjLnRvdWNoYWJsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlVldCghIXQpLGMpOmF9LGMuaGFuZGxlU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD0rdCxjKTpsfSxjLmtleU1vZGlmaWVycz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0hIXQsYyk6cn0sYy5vbj1mdW5jdGlvbigpe3ZhciB0PXMub24uYXBwbHkocyxhcmd1bWVudHMpO3JldHVybiB0PT09cz9jOnR9LGN9KShvbnQpfXZhciBobnQ9TWF0aC5QSSxibnQ9MipobnQseW50PTFlLTYsX250PWJudC15bnQ7ZnVuY3Rpb24gQ250KCl7dGhpcy5feDA9dGhpcy5feTA9dGhpcy5feDE9dGhpcy5feTE9bnVsbCx0aGlzLl89IiJ9ZnVuY3Rpb24gTW50KCl7cmV0dXJuIG5ldyBDbnR9Q250LnByb3RvdHlwZT1NbnQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpDbnQsbW92ZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fKz0iTSIrKHRoaXMuX3gwPXRoaXMuX3gxPSt0KSsiLCIrKHRoaXMuX3kwPXRoaXMuX3kxPStlKX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7bnVsbCE9PXRoaXMuX3gxJiYodGhpcy5feDE9dGhpcy5feDAsdGhpcy5feTE9dGhpcy5feTAsdGhpcy5fKz0iWiIpfSxsaW5lVG86ZnVuY3Rpb24odCxlKXt0aGlzLl8rPSJMIisodGhpcy5feDE9K3QpKyIsIisodGhpcy5feTE9K2UpfSxxdWFkcmF0aWNDdXJ2ZVRvOmZ1bmN0aW9uKHQsZSxuLG8pe3RoaXMuXys9IlEiKyArdCsiLCIrICtlKyIsIisodGhpcy5feDE9K24pKyIsIisodGhpcy5feTE9K28pfSxiZXppZXJDdXJ2ZVRvOmZ1bmN0aW9uKHQsZSxuLG8saSxhKXt0aGlzLl8rPSJDIisgK3QrIiwiKyArZSsiLCIrICtuKyIsIisgK28rIiwiKyh0aGlzLl94MT0raSkrIiwiKyh0aGlzLl95MT0rYSl9LGFyY1RvOmZ1bmN0aW9uKHQsZSxuLG8saSl7dmFyIGE9dGhpcy5feDEscj10aGlzLl95MSxzPShuPStuKS0odD0rdCksbD0obz0rbyktKGU9K2UpLGM9YS10LGQ9ci1lLHA9YypjK2QqZDtpZigoaT0raSk8MCl0aHJvdyBuZXcgRXJyb3IoIm5lZ2F0aXZlIHJhZGl1czogIitpKTtpZihudWxsPT09dGhpcy5feDEpdGhpcy5fKz0iTSIrKHRoaXMuX3gxPXQpKyIsIisodGhpcy5feTE9ZSk7ZWxzZSBpZihwPnludClpZihNYXRoLmFicyhkKnMtbCpjKT55bnQmJmkpe3ZhciBtPW4tYSxmPW8tcix1PXMqcytsKmwsZz1tKm0rZipmLGg9TWF0aC5zcXJ0KHUpLGI9TWF0aC5zcXJ0KHApLHk9aSpNYXRoLnRhbigoaG50LU1hdGguYWNvcygodStwLWcpLygyKmgqYikpKS8yKSxfPXkvYixDPXkvaDtNYXRoLmFicyhfLTEpPnludCYmKHRoaXMuXys9IkwiKyh0K18qYykrIiwiKyhlK18qZCkpLHRoaXMuXys9IkEiK2krIiwiK2krIiwwLDAsIisgKyhkKm0+YypmKSsiLCIrKHRoaXMuX3gxPXQrQypzKSsiLCIrKHRoaXMuX3kxPWUrQypsKX1lbHNlIHRoaXMuXys9IkwiKyh0aGlzLl94MT10KSsiLCIrKHRoaXMuX3kxPWUpO2Vsc2U7fSxhcmM6ZnVuY3Rpb24odCxlLG4sbyxpLGEpe3Q9K3QsZT0rZSxhPSEhYTt2YXIgcj0obj0rbikqTWF0aC5jb3Mobykscz1uKk1hdGguc2luKG8pLGw9dCtyLGM9ZStzLGQ9MV5hLHA9YT9vLWk6aS1vO2lmKG48MCl0aHJvdyBuZXcgRXJyb3IoIm5lZ2F0aXZlIHJhZGl1czogIituKTtudWxsPT09dGhpcy5feDE/dGhpcy5fKz0iTSIrbCsiLCIrYzooTWF0aC5hYnModGhpcy5feDEtbCk+eW50fHxNYXRoLmFicyh0aGlzLl95MS1jKT55bnQpJiYodGhpcy5fKz0iTCIrbCsiLCIrYyksbiYmKHA8MCYmKHA9cCVibnQrYm50KSxwPl9udD90aGlzLl8rPSJBIituKyIsIituKyIsMCwxLCIrZCsiLCIrKHQtcikrIiwiKyhlLXMpKyJBIituKyIsIituKyIsMCwxLCIrZCsiLCIrKHRoaXMuX3gxPWwpKyIsIisodGhpcy5feTE9Yyk6cD55bnQmJih0aGlzLl8rPSJBIituKyIsIituKyIsMCwiKyArKHA+PWhudCkrIiwiK2QrIiwiKyh0aGlzLl94MT10K24qTWF0aC5jb3MoaSkpKyIsIisodGhpcy5feTE9ZStuKk1hdGguc2luKGkpKSkpfSxyZWN0OmZ1bmN0aW9uKHQsZSxuLG8pe3RoaXMuXys9Ik0iKyh0aGlzLl94MD10aGlzLl94MT0rdCkrIiwiKyh0aGlzLl95MD10aGlzLl95MT0rZSkrImgiKyArbisidiIrICtvKyJoIistbisiWiJ9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX319O3ZhciB2bnQ9IiQiO2Z1bmN0aW9uIHhudCgpe31mdW5jdGlvbiBPbnQodCxlKXt2YXIgbj1uZXcgeG50O2lmKHQgaW5zdGFuY2VvZiB4bnQpdC5lYWNoKChmdW5jdGlvbih0LGUpe24uc2V0KGUsdCl9KSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXt2YXIgbyxpPS0xLGE9dC5sZW5ndGg7aWYobnVsbD09ZSlmb3IoOysraTxhOyluLnNldChpLHRbaV0pO2Vsc2UgZm9yKDsrK2k8YTspbi5zZXQoZShvPXRbaV0saSx0KSxvKX1lbHNlIGlmKHQpZm9yKHZhciByIGluIHQpbi5zZXQocix0W3JdKTtyZXR1cm4gbn1mdW5jdGlvbiBQbnQoKXt9eG50LnByb3RvdHlwZT1PbnQucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp4bnQsaGFzOmZ1bmN0aW9uKHQpe3JldHVybiB2bnQrdCBpbiB0aGlzfSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbdm50K3RdfSxzZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpc1t2bnQrdF09ZSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dm50K3Q7cmV0dXJuIGUgaW4gdGhpcyYmZGVsZXRlIHRoaXNbZV19LGNsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpdFswXT09PXZudCYmZGVsZXRlIHRoaXNbdF19LGtleXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIGUgaW4gdGhpcyllWzBdPT09dm50JiZ0LnB1c2goZS5zbGljZSgxKSk7cmV0dXJuIHR9LHZhbHVlczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT12bnQmJnQucHVzaCh0aGlzW2VdKTtyZXR1cm4gdH0sZW50cmllczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKWVbMF09PT12bnQmJnQucHVzaCh7a2V5OmUuc2xpY2UoMSksdmFsdWU6dGhpc1tlXX0pO3JldHVybiB0fSxzaXplOmZ1bmN0aW9uKCl7dmFyIHQ9MDtmb3IodmFyIGUgaW4gdGhpcyllWzBdPT09dm50JiYrK3Q7cmV0dXJuIHR9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpaWYodFswXT09PXZudClyZXR1cm4hMTtyZXR1cm4hMH0sZWFjaDpmdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdGhpcyllWzBdPT09dm50JiZ0KHRoaXNbZV0sZS5zbGljZSgxKSx0aGlzKX19O3ZhciB3bnQ9T250LnByb3RvdHlwZTtmdW5jdGlvbiBrbnQodCxlKXtpZigobj0odD1lP3QudG9FeHBvbmVudGlhbChlLTEpOnQudG9FeHBvbmVudGlhbCgpKS5pbmRleE9mKCJlIikpPDApcmV0dXJuIG51bGw7dmFyIG4sbz10LnNsaWNlKDAsbik7cmV0dXJuW28ubGVuZ3RoPjE/b1swXStvLnNsaWNlKDIpOm8sK3Quc2xpY2UobisxKV19ZnVuY3Rpb24gU250KHQpe3JldHVybih0PWtudChNYXRoLmFicyh0KSkpP3RbMV06TmFOfVBudC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlBudCxoYXM6d250LmhhcyxhZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbdm50Kyh0Kz0iIildPXQsdGhpc30scmVtb3ZlOndudC5yZW1vdmUsY2xlYXI6d250LmNsZWFyLHZhbHVlczp3bnQua2V5cyxzaXplOndudC5zaXplLGVtcHR5OndudC5lbXB0eSxlYWNoOndudC5lYWNofTt2YXIgRG50LFJudD0vXig/OiguKT8oWzw+PV5dKSk/KFsrXC0oIF0pPyhbJCNdKT8oMCk/KFxkKyk/KCwpPyhcLlxkKyk/KH4pPyhbYS16JV0pPyQvaTtmdW5jdGlvbiBFbnQodCl7aWYoIShlPVJudC5leGVjKHQpKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgZm9ybWF0OiAiK3QpO3ZhciBlO3JldHVybiBuZXcgQW50KHtmaWxsOmVbMV0sYWxpZ246ZVsyXSxzaWduOmVbM10sc3ltYm9sOmVbNF0semVybzplWzVdLHdpZHRoOmVbNl0sY29tbWE6ZVs3XSxwcmVjaXNpb246ZVs4XSYmZVs4XS5zbGljZSgxKSx0cmltOmVbOV0sdHlwZTplWzEwXX0pfWZ1bmN0aW9uIEFudCh0KXt0aGlzLmZpbGw9dm9pZCAwPT09dC5maWxsPyIgIjp0LmZpbGwrIiIsdGhpcy5hbGlnbj12b2lkIDA9PT10LmFsaWduPyI+Ijp0LmFsaWduKyIiLHRoaXMuc2lnbj12b2lkIDA9PT10LnNpZ24/Ii0iOnQuc2lnbisiIix0aGlzLnN5bWJvbD12b2lkIDA9PT10LnN5bWJvbD8iIjp0LnN5bWJvbCsiIix0aGlzLnplcm89ISF0Lnplcm8sdGhpcy53aWR0aD12b2lkIDA9PT10LndpZHRoP3ZvaWQgMDordC53aWR0aCx0aGlzLmNvbW1hPSEhdC5jb21tYSx0aGlzLnByZWNpc2lvbj12b2lkIDA9PT10LnByZWNpc2lvbj92b2lkIDA6K3QucHJlY2lzaW9uLHRoaXMudHJpbT0hIXQudHJpbSx0aGlzLnR5cGU9dm9pZCAwPT09dC50eXBlPyIiOnQudHlwZSsiIn1mdW5jdGlvbiBUbnQodCxlKXt2YXIgbj1rbnQodCxlKTtpZighbilyZXR1cm4gdCsiIjt2YXIgbz1uWzBdLGk9blsxXTtyZXR1cm4gaTwwPyIwLiIrbmV3IEFycmF5KC1pKS5qb2luKCIwIikrbzpvLmxlbmd0aD5pKzE/by5zbGljZSgwLGkrMSkrIi4iK28uc2xpY2UoaSsxKTpvK25ldyBBcnJheShpLW8ubGVuZ3RoKzIpLmpvaW4oIjAiKX1FbnQucHJvdG90eXBlPUFudC5wcm90b3R5cGUsQW50LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbGwrdGhpcy5hbGlnbit0aGlzLnNpZ24rdGhpcy5zeW1ib2wrKHRoaXMuemVybz8iMCI6IiIpKyh2b2lkIDA9PT10aGlzLndpZHRoPyIiOk1hdGgubWF4KDEsMHx0aGlzLndpZHRoKSkrKHRoaXMuY29tbWE/IiwiOiIiKSsodm9pZCAwPT09dGhpcy5wcmVjaXNpb24/IiI6Ii4iK01hdGgubWF4KDAsMHx0aGlzLnByZWNpc2lvbikpKyh0aGlzLnRyaW0/In4iOiIiKSt0aGlzLnR5cGV9O3ZhciBObnQ9eyIlIjpmdW5jdGlvbih0LGUpe3JldHVybigxMDAqdCkudG9GaXhlZChlKX0sYjpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygyKX0sYzpmdW5jdGlvbih0KXtyZXR1cm4gdCsiIn0sZDpmdW5jdGlvbiB6bnQodCl7cmV0dXJuIE1hdGguYWJzKHQ9TWF0aC5yb3VuZCh0KSk+PTFlMjE/dC50b0xvY2FsZVN0cmluZygiZW4iKS5yZXBsYWNlKC8sL2csIiIpOnQudG9TdHJpbmcoMTApfSxlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudG9FeHBvbmVudGlhbChlKX0sZjpmdW5jdGlvbih0LGUpe3JldHVybiB0LnRvRml4ZWQoZSl9LGc6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50b1ByZWNpc2lvbihlKX0sbzpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZyg4KX0scDpmdW5jdGlvbih0LGUpe3JldHVybiBUbnQoMTAwKnQsZSl9LHI6VG50LHM6ZnVuY3Rpb24gSW50KHQsZSl7dmFyIG49a250KHQsZSk7aWYoIW4pcmV0dXJuIHQrIiI7dmFyIG89blswXSxpPW5bMV0sYT1pLShEbnQ9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoaS8zKSkpKSsxLHI9by5sZW5ndGg7cmV0dXJuIGE9PT1yP286YT5yP28rbmV3IEFycmF5KGEtcisxKS5qb2luKCIwIik6YT4wP28uc2xpY2UoMCxhKSsiLiIrby5zbGljZShhKToiMC4iK25ldyBBcnJheSgxLWEpLmpvaW4oIjAiKStrbnQodCxNYXRoLm1heCgwLGUrYS0xKSlbMF19LFg6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9LHg6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpfX07ZnVuY3Rpb24gSG50KHQpe3JldHVybiB0fXZhciBGbnQsTG50LEJudCxWbnQ9QXJyYXkucHJvdG90eXBlLm1hcCxqbnQ9WyJ5IiwieiIsImEiLCJmIiwicCIsIm4iLCLCtSIsIm0iLCIiLCJrIiwiTSIsIkciLCJUIiwiUCIsIkUiLCJaIiwiWSJdO2Z1bmN0aW9uIFVudCh0KXt2YXIgZT12b2lkIDA9PT10Lmdyb3VwaW5nfHx2b2lkIDA9PT10LnRob3VzYW5kcz9IbnQ6KGZ1bmN0aW9uIG4odCxlKXtyZXR1cm4gZnVuY3Rpb24obixvKXtmb3IodmFyIGk9bi5sZW5ndGgsYT1bXSxyPTAscz10WzBdLGw9MDtpPjAmJnM+MCYmKGwrcysxPm8mJihzPU1hdGgubWF4KDEsby1sKSksYS5wdXNoKG4uc3Vic3RyaW5nKGktPXMsaStzKSksISgobCs9cysxKT5vKSk7KXM9dFtyPShyKzEpJXQubGVuZ3RoXTtyZXR1cm4gYS5yZXZlcnNlKCkuam9pbihlKX19KShWbnQuY2FsbCh0Lmdyb3VwaW5nLE51bWJlciksdC50aG91c2FuZHMrIiIpLG89dm9pZCAwPT09dC5jdXJyZW5jeT8iIjp0LmN1cnJlbmN5WzBdKyIiLGk9dm9pZCAwPT09dC5jdXJyZW5jeT8iIjp0LmN1cnJlbmN5WzFdKyIiLGE9dm9pZCAwPT09dC5kZWNpbWFsPyIuIjp0LmRlY2ltYWwrIiIscj12b2lkIDA9PT10Lm51bWVyYWxzP0hudDooZnVuY3Rpb24gcyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvWzAtOV0vZywoZnVuY3Rpb24oZSl7cmV0dXJuIHRbK2VdfSkpfX0pKFZudC5jYWxsKHQubnVtZXJhbHMsU3RyaW5nKSksbD12b2lkIDA9PT10LnBlcmNlbnQ/IiUiOnQucGVyY2VudCsiIixjPXZvaWQgMD09PXQubWludXM/Ii0iOnQubWludXMrIiIsZD12b2lkIDA9PT10Lm5hbj8iTmFOIjp0Lm5hbisiIjtmdW5jdGlvbiBwKHQpe3ZhciBuPSh0PUVudCh0KSkuZmlsbCxzPXQuYWxpZ24scD10LnNpZ24sbT10LnN5bWJvbCxmPXQuemVybyx1PXQud2lkdGgsZz10LmNvbW1hLGg9dC5wcmVjaXNpb24sYj10LnRyaW0seT10LnR5cGU7Im4iPT09eT8oZz0hMCx5PSJnIik6Tm50W3ldfHwodm9pZCAwPT09aCYmKGg9MTIpLGI9ITAseT0iZyIpLChmfHwiMCI9PT1uJiYiPSI9PT1zKSYmKGY9ITAsbj0iMCIscz0iPSIpO3ZhciBfPSIkIj09PW0/bzoiIyI9PT1tJiYvW2JveFhdLy50ZXN0KHkpPyIwIit5LnRvTG93ZXJDYXNlKCk6IiIsQz0iJCI9PT1tP2k6L1slcF0vLnRlc3QoeSk/bDoiIixNPU5udFt5XSx2PS9bZGVmZ3BycyVdLy50ZXN0KHkpO2Z1bmN0aW9uIHgodCl7dmFyIG8saSxsLG09Xyx4PUM7aWYoImMiPT09eSl4PU0odCkreCx0PSIiO2Vsc2V7dmFyIE89KHQ9K3QpPDB8fDEvdDwwO2lmKHQ9aXNOYU4odCk/ZDpNKE1hdGguYWJzKHQpLGgpLGImJih0PShmdW5jdGlvbiBQKHQpe3Q6Zm9yKHZhciBlLG49dC5sZW5ndGgsbz0xLGk9LTE7bzxuOysrbylzd2l0Y2godFtvXSl7Y2FzZSIuIjppPWU9bzticmVhaztjYXNlIjAiOjA9PT1pJiYoaT1vKSxlPW87YnJlYWs7ZGVmYXVsdDppZighK3Rbb10pYnJlYWsgdDtpPjAmJihpPTApfXJldHVybiBpPjA/dC5zbGljZSgwLGkpK3Quc2xpY2UoZSsxKTp0fSkodCkpLE8mJjA9PSt0JiYiKyIhPT1wJiYoTz0hMSksbT0oTz8iKCI9PT1wP3A6YzoiLSI9PT1wfHwiKCI9PT1wPyIiOnApK20seD0oInMiPT09eT9qbnRbOCtEbnQvM106IiIpK3grKE8mJiIoIj09PXA/IikiOiIiKSx2KWZvcihvPS0xLGk9dC5sZW5ndGg7KytvPGk7KWlmKDQ4PihsPXQuY2hhckNvZGVBdChvKSl8fGw+NTcpe3g9KDQ2PT09bD9hK3Quc2xpY2UobysxKTp0LnNsaWNlKG8pKSt4LHQ9dC5zbGljZSgwLG8pO2JyZWFrfX1nJiYhZiYmKHQ9ZSh0LDEvMCkpO3ZhciB3PW0ubGVuZ3RoK3QubGVuZ3RoK3gubGVuZ3RoLGs9dzx1P25ldyBBcnJheSh1LXcrMSkuam9pbihuKToiIjtzd2l0Y2goZyYmZiYmKHQ9ZShrK3Qsay5sZW5ndGg/dS14Lmxlbmd0aDoxLzApLGs9IiIpLHMpe2Nhc2UiPCI6dD1tK3QreCtrO2JyZWFrO2Nhc2UiPSI6dD1tK2srdCt4O2JyZWFrO2Nhc2UiXiI6dD1rLnNsaWNlKDAsdz1rLmxlbmd0aD4+MSkrbSt0K3gray5zbGljZSh3KTticmVhaztkZWZhdWx0OnQ9ayttK3QreH1yZXR1cm4gcih0KX1yZXR1cm4gaD12b2lkIDA9PT1oPzY6L1tncHJzXS8udGVzdCh5KT9NYXRoLm1heCgxLE1hdGgubWluKDIxLGgpKTpNYXRoLm1heCgwLE1hdGgubWluKDIwLGgpKSx4LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHQrIiJ9LHh9cmV0dXJue2Zvcm1hdDpwLGZvcm1hdFByZWZpeDpmdW5jdGlvbiBtKHQsZSl7dmFyIG49cCgoKHQ9RW50KHQpKS50eXBlPSJmIix0KSksbz0zKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihTbnQoZSkvMykpKSxpPU1hdGgucG93KDEwLC1vKSxhPWpudFs4K28vM107cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBuKGkqdCkrYX19fX1mdW5jdGlvbiBXbnQodCxlKXtzd2l0Y2goYXJndW1lbnRzLmxlbmd0aCl7Y2FzZSAwOmJyZWFrO2Nhc2UgMTp0aGlzLnJhbmdlKHQpO2JyZWFrO2RlZmF1bHQ6dGhpcy5yYW5nZShlKS5kb21haW4odCl9cmV0dXJuIHRoaXN9IShmdW5jdGlvbiBHbnQodCl7cmV0dXJuIEZudD1VbnQodCksTG50PUZudC5mb3JtYXQsQm50PUZudC5mb3JtYXRQcmVmaXgsRm50fSkoe2RlY2ltYWw6Ii4iLHRob3VzYW5kczoiLCIsZ3JvdXBpbmc6WzNdLGN1cnJlbmN5OlsiJCIsIiJdLG1pbnVzOiItIn0pO3ZhciBZbnQ9QXJyYXkucHJvdG90eXBlLHFudD1ZbnQubWFwLFpudD1ZbnQuc2xpY2UsWG50PXtuYW1lOiJpbXBsaWNpdCJ9O2Z1bmN0aW9uIEtudCgpe3ZhciB0PU9udCgpLGU9W10sbj1bXSxvPVhudDtmdW5jdGlvbiBpKGkpe3ZhciBhPWkrIiIscj10LmdldChhKTtpZighcil7aWYobyE9PVhudClyZXR1cm4gbzt0LnNldChhLHI9ZS5wdXNoKGkpKX1yZXR1cm4gblsoci0xKSVuLmxlbmd0aF19cmV0dXJuIGkuZG9tYWluPWZ1bmN0aW9uKG4pe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBlLnNsaWNlKCk7ZT1bXSx0PU9udCgpO2Zvcih2YXIgbyxhLHI9LTEscz1uLmxlbmd0aDsrK3I8czspdC5oYXMoYT0obz1uW3JdKSsiIil8fHQuc2V0KGEsZS5wdXNoKG8pKTtyZXR1cm4gaX0saS5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1abnQuY2FsbCh0KSxpKTpuLnNsaWNlKCl9LGkudW5rbm93bj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz10LGkpOm99LGkuY29weT1mdW5jdGlvbigpe3JldHVybiBLbnQoZSxuKS51bmtub3duKG8pfSxXbnQuYXBwbHkoaSxhcmd1bWVudHMpLGl9ZnVuY3Rpb24gSm50KCl7dmFyIHQsZSxuPUtudCgpLnVua25vd24odm9pZCAwKSxvPW4uZG9tYWluLGk9bi5yYW5nZSxhPVswLDFdLHI9ITEscz0wLGw9MCxjPS41O2Z1bmN0aW9uIGQoKXt2YXIgbj1vKCkubGVuZ3RoLGQ9YVsxXTxhWzBdLHA9YVtkLTBdLG09YVsxLWRdO3Q9KG0tcCkvTWF0aC5tYXgoMSxuLXMrMipsKSxyJiYodD1NYXRoLmZsb29yKHQpKSxwKz0obS1wLXQqKG4tcykpKmMsZT10KigxLXMpLHImJihwPU1hdGgucm91bmQocCksZT1NYXRoLnJvdW5kKGUpKTt2YXIgZj1NNihuKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBwK3QqZX0pKTtyZXR1cm4gaShkP2YucmV2ZXJzZSgpOmYpfXJldHVybiBkZWxldGUgbi51bmtub3duLG4uZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvKHQpLGQoKSk6bygpfSxuLnJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVsrdFswXSwrdFsxXV0sZCgpKTphLnNsaWNlKCl9LG4ucmFuZ2VSb3VuZD1mdW5jdGlvbih0KXtyZXR1cm4gYT1bK3RbMF0sK3RbMV1dLHI9ITAsZCgpfSxuLmJhbmR3aWR0aD1mdW5jdGlvbigpe3JldHVybiBlfSxuLnN0ZXA9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sbi5yb3VuZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0hIXQsZCgpKTpyfSxuLnBhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9TWF0aC5taW4oMSxsPSt0KSxkKCkpOnN9LG4ucGFkZGluZ0lubmVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPU1hdGgubWluKDEsdCksZCgpKTpzfSxuLnBhZGRpbmdPdXRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD0rdCxkKCkpOmx9LG4uYWxpZ249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9TWF0aC5tYXgoMCxNYXRoLm1pbigxLHQpKSxkKCkpOmN9LG4uY29weT1mdW5jdGlvbigpe3JldHVybiBKbnQobygpLGEpLnJvdW5kKHIpLnBhZGRpbmdJbm5lcihzKS5wYWRkaW5nT3V0ZXIobCkuYWxpZ24oYyl9LFdudC5hcHBseShkKCksYXJndW1lbnRzKX1mdW5jdGlvbiBRbnQodCl7dmFyIGU9dC5jb3B5O3JldHVybiB0LnBhZGRpbmc9dC5wYWRkaW5nT3V0ZXIsZGVsZXRlIHQucGFkZGluZ0lubmVyLGRlbGV0ZSB0LnBhZGRpbmdPdXRlcix0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gUW50KGUoKSl9LHR9ZnVuY3Rpb24gJG50KCl7cmV0dXJuIFFudChKbnQuYXBwbHkobnVsbCxhcmd1bWVudHMpLnBhZGRpbmdJbm5lcigxKSl9ZnVuY3Rpb24gdG90KHQpe3JldHVybit0fXZhciBlb3Q9WzAsMV07ZnVuY3Rpb24gbm90KHQpe3JldHVybiB0fWZ1bmN0aW9uIG9vdCh0LGUpe3JldHVybihlLT10PSt0KT9mdW5jdGlvbihuKXtyZXR1cm4obi10KS9lfTooZnVuY3Rpb24gbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KShpc05hTihlKT9OYU46LjUpfWZ1bmN0aW9uIGlvdCh0KXt2YXIgZSxuPXRbMF0sbz10W3QubGVuZ3RoLTFdO3JldHVybiBuPm8mJihlPW4sbj1vLG89ZSksZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KG4sTWF0aC5taW4obyx0KSl9fWZ1bmN0aW9uIGFvdCh0LGUsbil7dmFyIG89dFswXSxpPXRbMV0sYT1lWzBdLHI9ZVsxXTtyZXR1cm4gaTxvPyhvPW9vdChpLG8pLGE9bihyLGEpKToobz1vb3QobyxpKSxhPW4oYSxyKSksZnVuY3Rpb24odCl7cmV0dXJuIGEobyh0KSl9fWZ1bmN0aW9uIHJvdCh0LGUsbil7dmFyIG89TWF0aC5taW4odC5sZW5ndGgsZS5sZW5ndGgpLTEsaT1uZXcgQXJyYXkobyksYT1uZXcgQXJyYXkobykscj0tMTtmb3IodFtvXTx0WzBdJiYodD10LnNsaWNlKCkucmV2ZXJzZSgpLGU9ZS5zbGljZSgpLnJldmVyc2UoKSk7KytyPG87KWlbcl09b290KHRbcl0sdFtyKzFdKSxhW3JdPW4oZVtyXSxlW3IrMV0pO3JldHVybiBmdW5jdGlvbihlKXt2YXIgbj1oNih0LGUsMSxvKS0xO3JldHVybiBhW25dKGlbbl0oZSkpfX1mdW5jdGlvbiBzb3QodCxlKXtyZXR1cm4gZS5kb21haW4odC5kb21haW4oKSkucmFuZ2UodC5yYW5nZSgpKS5pbnRlcnBvbGF0ZSh0LmludGVycG9sYXRlKCkpLmNsYW1wKHQuY2xhbXAoKSkudW5rbm93bih0LnVua25vd24oKSl9ZnVuY3Rpb24gbG90KCl7dmFyIHQsZSxuLG8saSxhLHI9ZW90LHM9ZW90LGw9dHR0LGM9bm90O2Z1bmN0aW9uIGQoKXtyZXR1cm4gbz1NYXRoLm1pbihyLmxlbmd0aCxzLmxlbmd0aCk+Mj9yb3Q6YW90LGk9YT1udWxsLHB9ZnVuY3Rpb24gcChlKXtyZXR1cm4gaXNOYU4oZT0rZSk/bjooaXx8KGk9byhyLm1hcCh0KSxzLGwpKSkodChjKGUpKSl9cmV0dXJuIHAuaW52ZXJ0PWZ1bmN0aW9uKG4pe3JldHVybiBjKGUoKGF8fChhPW8ocyxyLm1hcCh0KSxYOSkpKShuKSkpfSxwLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1xbnQuY2FsbCh0LHRvdCksYz09PW5vdHx8KGM9aW90KHIpKSxkKCkpOnIuc2xpY2UoKX0scC5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1abnQuY2FsbCh0KSxkKCkpOnMuc2xpY2UoKX0scC5yYW5nZVJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBzPVpudC5jYWxsKHQpLGw9ZXR0LGQoKX0scC5jbGFtcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz10P2lvdChyKTpub3QscCk6YyE9PW5vdH0scC5pbnRlcnBvbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD10LGQoKSk6bH0scC51bmtub3duPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQscCk6bn0sZnVuY3Rpb24obixvKXtyZXR1cm4gdD1uLGU9byxkKCl9fWZ1bmN0aW9uIGNvdCh0LGUpe3JldHVybiBsb3QoKSh0LGUpfWZ1bmN0aW9uIGRvdCh0LGUsbixvKXt2YXIgaSxhPWs2KHQsZSxuKTtzd2l0Y2goKG89RW50KG51bGw9PW8/IixmIjpvKSkudHlwZSl7Y2FzZSJzIjp2YXIgcj1NYXRoLm1heChNYXRoLmFicyh0KSxNYXRoLmFicyhlKSk7cmV0dXJuIG51bGwhPW8ucHJlY2lzaW9ufHxpc05hTihpPShmdW5jdGlvbiBzKHQsZSl7cmV0dXJuIE1hdGgubWF4KDAsMypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoU250KGUpLzMpKSktU250KE1hdGguYWJzKHQpKSl9KShhLHIpKXx8KG8ucHJlY2lzaW9uPWkpLEJudChvLHIpO2Nhc2UiIjpjYXNlImUiOmNhc2UiZyI6Y2FzZSJwIjpjYXNlInIiOm51bGwhPW8ucHJlY2lzaW9ufHxpc05hTihpPShmdW5jdGlvbiBsKHQsZSl7cmV0dXJuIHQ9TWF0aC5hYnModCksZT1NYXRoLmFicyhlKS10LE1hdGgubWF4KDAsU250KGUpLVNudCh0KSkrMX0pKGEsTWF0aC5tYXgoTWF0aC5hYnModCksTWF0aC5hYnMoZSkpKSl8fChvLnByZWNpc2lvbj1pLSgiZSI9PT1vLnR5cGUpKTticmVhaztjYXNlImYiOmNhc2UiJSI6bnVsbCE9by5wcmVjaXNpb258fGlzTmFOKGk9KGZ1bmN0aW9uIGModCl7cmV0dXJuIE1hdGgubWF4KDAsLVNudChNYXRoLmFicyh0KSkpfSkoYSkpfHwoby5wcmVjaXNpb249aS0yKigiJSI9PT1vLnR5cGUpKX1yZXR1cm4gTG50KG8pfWZ1bmN0aW9uIHBvdCh0KXt2YXIgZT10LmRvbWFpbjtyZXR1cm4gdC50aWNrcz1mdW5jdGlvbih0KXt2YXIgbj1lKCk7cmV0dXJuIFA2KG5bMF0sbltuLmxlbmd0aC0xXSxudWxsPT10PzEwOnQpfSx0LnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCxuKXt2YXIgbz1lKCk7cmV0dXJuIGRvdChvWzBdLG9bby5sZW5ndGgtMV0sbnVsbD09dD8xMDp0LG4pfSx0Lm5pY2U9ZnVuY3Rpb24obil7bnVsbD09biYmKG49MTApO3ZhciBvLGk9ZSgpLGE9MCxyPWkubGVuZ3RoLTEscz1pW2FdLGw9aVtyXTtyZXR1cm4gbDxzJiYobz1zLHM9bCxsPW8sbz1hLGE9cixyPW8pLChvPXc2KHMsbCxuKSk+MD9vPXc2KHM9TWF0aC5mbG9vcihzL28pKm8sbD1NYXRoLmNlaWwobC9vKSpvLG4pOm88MCYmKG89dzYocz1NYXRoLmNlaWwocypvKS9vLGw9TWF0aC5mbG9vcihsKm8pL28sbikpLG8+MD8oaVthXT1NYXRoLmZsb29yKHMvbykqbyxpW3JdPU1hdGguY2VpbChsL28pKm8sZShpKSk6bzwwJiYoaVthXT1NYXRoLmNlaWwocypvKS9vLGlbcl09TWF0aC5mbG9vcihsKm8pL28sZShpKSksdH0sdH1mdW5jdGlvbiBtb3QoKXt2YXIgdD1jb3Qobm90LG5vdCk7cmV0dXJuIHQuY29weT1mdW5jdGlvbigpe3JldHVybiBzb3QodCxtb3QoKSl9LFdudC5hcHBseSh0LGFyZ3VtZW50cykscG90KHQpfWZ1bmN0aW9uIGZvdCh0LGUpe3ZhciBuLG89MCxpPSh0PXQuc2xpY2UoKSkubGVuZ3RoLTEsYT10W29dLHI9dFtpXTtyZXR1cm4gcjxhJiYobj1vLG89aSxpPW4sbj1hLGE9cixyPW4pLHRbb109ZS5mbG9vcihhKSx0W2ldPWUuY2VpbChyKSx0fWZ1bmN0aW9uIHVvdCh0KXtyZXR1cm4gTWF0aC5sb2codCl9ZnVuY3Rpb24gZ290KHQpe3JldHVybiBNYXRoLmV4cCh0KX1mdW5jdGlvbiBob3QodCl7cmV0dXJuLU1hdGgubG9nKC10KX1mdW5jdGlvbiBib3QodCl7cmV0dXJuLU1hdGguZXhwKC10KX1mdW5jdGlvbiB5b3QodCl7cmV0dXJuIGlzRmluaXRlKHQpPysoIjFlIit0KTp0PDA/MDp0fWZ1bmN0aW9uIF9vdCh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuLXQoLWUpfX1mdW5jdGlvbiBDb3QodCl7dmFyIGUsbixvPXQodW90LGdvdCksaT1vLmRvbWFpbixhPTEwO2Z1bmN0aW9uIHIoKXtyZXR1cm4gZT0oZnVuY3Rpb24gcih0KXtyZXR1cm4gdD09PU1hdGguRT9NYXRoLmxvZzoxMD09PXQmJk1hdGgubG9nMTB8fDI9PT10JiZNYXRoLmxvZzJ8fCh0PU1hdGgubG9nKHQpLGZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLmxvZyhlKS90fSl9KShhKSxuPShmdW5jdGlvbiBzKHQpe3JldHVybiAxMD09PXQ/eW90OnQ9PT1NYXRoLkU/TWF0aC5leHA6ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgucG93KHQsZSl9fSkoYSksaSgpWzBdPDA/KGU9X290KGUpLG49X290KG4pLHQoaG90LGJvdCkpOnQodW90LGdvdCksb31yZXR1cm4gby5iYXNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSt0LHIoKSk6YX0sby5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGkodCkscigpKTppKCl9LG8udGlja3M9ZnVuY3Rpb24odCl7dmFyIG8scj1pKCkscz1yWzBdLGw9cltyLmxlbmd0aC0xXTsobz1sPHMpJiYobT1zLHM9bCxsPW0pO3ZhciBjLGQscCxtPWUocyksZj1lKGwpLHU9bnVsbD09dD8xMDordCxnPVtdO2lmKCEoYSUxKSYmZi1tPHUpe2lmKG09TWF0aC5yb3VuZChtKS0xLGY9TWF0aC5yb3VuZChmKSsxLHM+MCl7Zm9yKDttPGY7KyttKWZvcihkPTEsYz1uKG0pO2Q8YTsrK2QpaWYoISgocD1jKmQpPHMpKXtpZihwPmwpYnJlYWs7Zy5wdXNoKHApfX1lbHNlIGZvcig7bTxmOysrbSlmb3IoZD1hLTEsYz1uKG0pO2Q+PTE7LS1kKWlmKCEoKHA9YypkKTxzKSl7aWYocD5sKWJyZWFrO2cucHVzaChwKX19ZWxzZSBnPVA2KG0sZixNYXRoLm1pbihmLW0sdSkpLm1hcChuKTtyZXR1cm4gbz9nLnJldmVyc2UoKTpnfSxvLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCxpKXtpZihudWxsPT1pJiYoaT0xMD09PWE/Ii4wZSI6IiwiKSwiZnVuY3Rpb24iIT10eXBlb2YgaSYmKGk9TG50KGkpKSx0PT09MS8wKXJldHVybiBpO251bGw9PXQmJih0PTEwKTt2YXIgcj1NYXRoLm1heCgxLGEqdC9vLnRpY2tzKCkubGVuZ3RoKTtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIG89dC9uKE1hdGgucm91bmQoZSh0KSkpO3JldHVybiBvKmE8YS0uNSYmKG8qPWEpLG88PXI/aSh0KToiIn19LG8ubmljZT1mdW5jdGlvbigpe3JldHVybiBpKGZvdChpKCkse2Zsb29yOmZ1bmN0aW9uKHQpe3JldHVybiBuKE1hdGguZmxvb3IoZSh0KSkpfSxjZWlsOmZ1bmN0aW9uKHQpe3JldHVybiBuKE1hdGguY2VpbChlKHQpKSl9fSkpfSxvfWZ1bmN0aW9uIE1vdCgpe3ZhciB0PUNvdChsb3QoKSkuZG9tYWluKFsxLDEwXSk7cmV0dXJuIHQuY29weT1mdW5jdGlvbigpe3JldHVybiBzb3QodCxNb3QoKSkuYmFzZSh0LmJhc2UoKSl9LFdudC5hcHBseSh0LGFyZ3VtZW50cyksdH12YXIgdm90PW5ldyBEYXRlLHhvdD1uZXcgRGF0ZTtmdW5jdGlvbiBPb3QodCxlLG4sbyl7ZnVuY3Rpb24gaShlKXtyZXR1cm4gdChlPTA9PT1hcmd1bWVudHMubGVuZ3RoP25ldyBEYXRlOm5ldyBEYXRlKCtlKSksZX1yZXR1cm4gaS5mbG9vcj1mdW5jdGlvbihlKXtyZXR1cm4gdChlPW5ldyBEYXRlKCtlKSksZX0saS5jZWlsPWZ1bmN0aW9uKG4pe3JldHVybiB0KG49bmV3IERhdGUobi0xKSksZShuLDEpLHQobiksbn0saS5yb3VuZD1mdW5jdGlvbih0KXt2YXIgZT1pKHQpLG49aS5jZWlsKHQpO3JldHVybiB0LWU8bi10P2U6bn0saS5vZmZzZXQ9ZnVuY3Rpb24odCxuKXtyZXR1cm4gZSh0PW5ldyBEYXRlKCt0KSxudWxsPT1uPzE6TWF0aC5mbG9vcihuKSksdH0saS5yYW5nZT1mdW5jdGlvbihuLG8sYSl7dmFyIHIscz1bXTtpZihuPWkuY2VpbChuKSxhPW51bGw9PWE/MTpNYXRoLmZsb29yKGEpLCEobjxvJiZhPjApKXJldHVybiBzO2Rve3MucHVzaChyPW5ldyBEYXRlKCtuKSksZShuLGEpLHQobil9d2hpbGUocjxuJiZuPG8pO3JldHVybiBzfSxpLmZpbHRlcj1mdW5jdGlvbihuKXtyZXR1cm4gT290KChmdW5jdGlvbihlKXtpZihlPj1lKWZvcig7dChlKSwhbihlKTspZS5zZXRUaW1lKGUtMSl9KSwoZnVuY3Rpb24odCxvKXtpZih0Pj10KWlmKG88MClmb3IoOysrbzw9MDspZm9yKDtlKHQsLTEpLCFuKHQpOyk7ZWxzZSBmb3IoOy0tbz49MDspZm9yKDtlKHQsMSksIW4odCk7KTt9KSl9LG4mJihpLmNvdW50PWZ1bmN0aW9uKGUsbyl7cmV0dXJuIHZvdC5zZXRUaW1lKCtlKSx4b3Quc2V0VGltZSgrbyksdCh2b3QpLHQoeG90KSxNYXRoLmZsb29yKG4odm90LHhvdCkpfSxpLmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiB0PU1hdGguZmxvb3IodCksaXNGaW5pdGUodCkmJnQ+MD90PjE/aS5maWx0ZXIobz9mdW5jdGlvbihlKXtyZXR1cm4gbyhlKSV0PT0wfTpmdW5jdGlvbihlKXtyZXR1cm4gaS5jb3VudCgwLGUpJXQ9PTB9KTppOm51bGx9KSxpfXZhciBQb3Q9T290KChmdW5jdGlvbigpe30pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLXR9KSk7UG90LmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiB0PU1hdGguZmxvb3IodCksaXNGaW5pdGUodCkmJnQ+MD90PjE/T290KChmdW5jdGlvbihlKXtlLnNldFRpbWUoTWF0aC5mbG9vcihlL3QpKnQpfSksKGZ1bmN0aW9uKGUsbil7ZS5zZXRUaW1lKCtlK24qdCl9KSwoZnVuY3Rpb24oZSxuKXtyZXR1cm4obi1lKS90fSkpOlBvdDpudWxsfTt2YXIgd290PVBvdCxrb3Q9MWUzLFNvdD02ZTQsRG90PTM2ZTUsUm90PTg2NGU1LEVvdD02MDQ4ZTUsQW90PU9vdCgoZnVuY3Rpb24odCl7dC5zZXRUaW1lKHQtdC5nZXRNaWxsaXNlY29uZHMoKSl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFRpbWUoK3QrZSprb3QpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkva290fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ1NlY29uZHMoKX0pKSxUb3Q9T290KChmdW5jdGlvbih0KXt0LnNldFRpbWUodC10LmdldE1pbGxpc2Vjb25kcygpLXQuZ2V0U2Vjb25kcygpKmtvdCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFRpbWUoK3QrZSpTb3QpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvU290fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1pbnV0ZXMoKX0pKSxOb3Q9T290KChmdW5jdGlvbih0KXt0LnNldFRpbWUodC10LmdldE1pbGxpc2Vjb25kcygpLXQuZ2V0U2Vjb25kcygpKmtvdC10LmdldE1pbnV0ZXMoKSpTb3QpfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UqRG90KX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL0RvdH0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRIb3VycygpfSkpLHpvdD1Pb3QoKGZ1bmN0aW9uKHQpe3Quc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldERhdGUodC5nZXREYXRlKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10LShlLmdldFRpbWV6b25lT2Zmc2V0KCktdC5nZXRUaW1lem9uZU9mZnNldCgpKSpTb3QpL1JvdH0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXREYXRlKCktMX0pKTtmdW5jdGlvbiBJb3QodCl7cmV0dXJuIE9vdCgoZnVuY3Rpb24oZSl7ZS5zZXREYXRlKGUuZ2V0RGF0ZSgpLShlLmdldERheSgpKzctdCklNyksZS5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0RGF0ZSh0LmdldERhdGUoKSs3KmUpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdC0oZS5nZXRUaW1lem9uZU9mZnNldCgpLXQuZ2V0VGltZXpvbmVPZmZzZXQoKSkqU290KS9Fb3R9KSl9dmFyIEhvdD1Jb3QoMCksRm90PUlvdCgxKTtJb3QoMiksSW90KDMpO3ZhciBMb3Q9SW90KDQpO0lvdCg1KSxJb3QoNik7dmFyIEJvdD1Pb3QoKGZ1bmN0aW9uKHQpe3Quc2V0RGF0ZSgxKSx0LnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRNb250aCh0LmdldE1vbnRoKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5nZXRNb250aCgpLXQuZ2V0TW9udGgoKSsxMiooZS5nZXRGdWxsWWVhcigpLXQuZ2V0RnVsbFllYXIoKSl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0TW9udGgoKX0pKSxWb3Q9T290KChmdW5jdGlvbih0KXt0LnNldE1vbnRoKDAsMSksdC5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0RnVsbFllYXIodC5nZXRGdWxsWWVhcigpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZ2V0RnVsbFllYXIoKS10LmdldEZ1bGxZZWFyKCl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RnVsbFllYXIoKX0pKTtWb3QuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIGlzRmluaXRlKHQ9TWF0aC5mbG9vcih0KSkmJnQ+MD9Pb3QoKGZ1bmN0aW9uKGUpe2Uuc2V0RnVsbFllYXIoTWF0aC5mbG9vcihlLmdldEZ1bGxZZWFyKCkvdCkqdCksZS5zZXRNb250aCgwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24oZSxuKXtlLnNldEZ1bGxZZWFyKGUuZ2V0RnVsbFllYXIoKStuKnQpfSkpOm51bGx9O3ZhciBqb3Q9Vm90LFVvdD1Pb3QoKGZ1bmN0aW9uKHQpe3Quc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFVUQ0RhdGUodC5nZXRVVENEYXRlKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS9Sb3R9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDRGF0ZSgpLTF9KSk7ZnVuY3Rpb24gV290KHQpe3JldHVybiBPb3QoKGZ1bmN0aW9uKGUpe2Uuc2V0VVRDRGF0ZShlLmdldFVUQ0RhdGUoKS0oZS5nZXRVVENEYXkoKSs3LXQpJTcpLGUuc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFVUQ0RhdGUodC5nZXRVVENEYXRlKCkrNyplKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpL0VvdH0pKX12YXIgR290PVdvdCgwKSxZb3Q9V290KDEpO1dvdCgyKSxXb3QoMyk7dmFyIHFvdD1Xb3QoNCk7V290KDUpLFdvdCg2KTt2YXIgWm90PU9vdCgoZnVuY3Rpb24odCl7dC5zZXRVVENNb250aCgwLDEpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFVUQ0Z1bGxZZWFyKHQuZ2V0VVRDRnVsbFllYXIoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmdldFVUQ0Z1bGxZZWFyKCktdC5nZXRVVENGdWxsWWVhcigpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0Z1bGxZZWFyKCl9KSk7Wm90LmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiBpc0Zpbml0ZSh0PU1hdGguZmxvb3IodCkpJiZ0PjA/T290KChmdW5jdGlvbihlKXtlLnNldFVUQ0Z1bGxZZWFyKE1hdGguZmxvb3IoZS5nZXRVVENGdWxsWWVhcigpL3QpKnQpLGUuc2V0VVRDTW9udGgoMCwxKSxlLnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKGUsbil7ZS5zZXRVVENGdWxsWWVhcihlLmdldFVUQ0Z1bGxZZWFyKCkrbip0KX0pKTpudWxsfTt2YXIgWG90PVpvdDtmdW5jdGlvbiBLb3QodCl7aWYoMDw9dC55JiZ0Lnk8MTAwKXt2YXIgZT1uZXcgRGF0ZSgtMSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCk7cmV0dXJuIGUuc2V0RnVsbFllYXIodC55KSxlfXJldHVybiBuZXcgRGF0ZSh0LnksdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpfWZ1bmN0aW9uIEpvdCh0KXtpZigwPD10LnkmJnQueTwxMDApe3ZhciBlPW5ldyBEYXRlKERhdGUuVVRDKC0xLHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKSk7cmV0dXJuIGUuc2V0VVRDRnVsbFllYXIodC55KSxlfXJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyh0LnksdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpKX1mdW5jdGlvbiBRb3QodCxlLG4pe3JldHVybnt5OnQsbTplLGQ6bixIOjAsTTowLFM6MCxMOjB9fXZhciAkb3QsdGl0LGVpdD17Ii0iOiIiLF86IiAiLDA6IjAifSxuaXQ9L15ccypcZCsvLG9pdD0vXiUvLGlpdD0vW1xcXiQqKz98W1xdKCkue31dL2c7ZnVuY3Rpb24gYWl0KHQsZSxuKXt2YXIgbz10PDA/Ii0iOiIiLGk9KG8/LXQ6dCkrIiIsYT1pLmxlbmd0aDtyZXR1cm4gbysoYTxuP25ldyBBcnJheShuLWErMSkuam9pbihlKStpOmkpfWZ1bmN0aW9uIHJpdCh0KXtyZXR1cm4gdC5yZXBsYWNlKGlpdCwiXFwkJiIpfWZ1bmN0aW9uIHNpdCh0KXtyZXR1cm4gbmV3IFJlZ0V4cCgiXig/OiIrdC5tYXAocml0KS5qb2luKCJ8IikrIikiLCJpIil9ZnVuY3Rpb24gbGl0KHQpe2Zvcih2YXIgZT17fSxuPS0xLG89dC5sZW5ndGg7KytuPG87KWVbdFtuXS50b0xvd2VyQ2FzZSgpXT1uO3JldHVybiBlfWZ1bmN0aW9uIGNpdCh0LGUsbil7dmFyIG89bml0LmV4ZWMoZS5zbGljZShuLG4rMSkpO3JldHVybiBvPyh0Lnc9K29bMF0sbitvWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gZGl0KHQsZSxuKXt2YXIgbz1uaXQuZXhlYyhlLnNsaWNlKG4sbisxKSk7cmV0dXJuIG8/KHQudT0rb1swXSxuK29bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBwaXQodCxlLG4pe3ZhciBvPW5pdC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gbz8odC5VPStvWzBdLG4rb1swXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIG1pdCh0LGUsbil7dmFyIG89bml0LmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBvPyh0LlY9K29bMF0sbitvWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gZml0KHQsZSxuKXt2YXIgbz1uaXQuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIG8/KHQuVz0rb1swXSxuK29bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB1aXQodCxlLG4pe3ZhciBvPW5pdC5leGVjKGUuc2xpY2UobixuKzQpKTtyZXR1cm4gbz8odC55PStvWzBdLG4rb1swXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGdpdCh0LGUsbil7dmFyIG89bml0LmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBvPyh0Lnk9K29bMF0rKCtvWzBdPjY4PzE5MDA6MmUzKSxuK29bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBoaXQodCxlLG4pe3ZhciBvPS9eKFopfChbKy1dXGRcZCkoPzo6PyhcZFxkKSk/Ly5leGVjKGUuc2xpY2UobixuKzYpKTtyZXR1cm4gbz8odC5aPW9bMV0/MDotKG9bMl0rKG9bM118fCIwMCIpKSxuK29bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBiaXQodCxlLG4pe3ZhciBvPW5pdC5leGVjKGUuc2xpY2UobixuKzEpKTtyZXR1cm4gbz8odC5xPTMqb1swXS0zLG4rb1swXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHlpdCh0LGUsbil7dmFyIG89bml0LmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBvPyh0Lm09b1swXS0xLG4rb1swXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIF9pdCh0LGUsbil7dmFyIG89bml0LmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBvPyh0LmQ9K29bMF0sbitvWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gQ2l0KHQsZSxuKXt2YXIgbz1uaXQuZXhlYyhlLnNsaWNlKG4sbiszKSk7cmV0dXJuIG8/KHQubT0wLHQuZD0rb1swXSxuK29bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBNaXQodCxlLG4pe3ZhciBvPW5pdC5leGVjKGUuc2xpY2UobixuKzIpKTtyZXR1cm4gbz8odC5IPStvWzBdLG4rb1swXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHZpdCh0LGUsbil7dmFyIG89bml0LmV4ZWMoZS5zbGljZShuLG4rMikpO3JldHVybiBvPyh0Lk09K29bMF0sbitvWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24geGl0KHQsZSxuKXt2YXIgbz1uaXQuZXhlYyhlLnNsaWNlKG4sbisyKSk7cmV0dXJuIG8/KHQuUz0rb1swXSxuK29bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBPaXQodCxlLG4pe3ZhciBvPW5pdC5leGVjKGUuc2xpY2UobixuKzMpKTtyZXR1cm4gbz8odC5MPStvWzBdLG4rb1swXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFBpdCh0LGUsbil7dmFyIG89bml0LmV4ZWMoZS5zbGljZShuLG4rNikpO3JldHVybiBvPyh0Lkw9TWF0aC5mbG9vcihvWzBdLzFlMyksbitvWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gd2l0KHQsZSxuKXt2YXIgbz1vaXQuZXhlYyhlLnNsaWNlKG4sbisxKSk7cmV0dXJuIG8/bitvWzBdLmxlbmd0aDotMX1mdW5jdGlvbiBraXQodCxlLG4pe3ZhciBvPW5pdC5leGVjKGUuc2xpY2UobikpO3JldHVybiBvPyh0LlE9K29bMF0sbitvWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gU2l0KHQsZSxuKXt2YXIgbz1uaXQuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gbz8odC5zPStvWzBdLG4rb1swXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIERpdCh0LGUpe3JldHVybiBhaXQodC5nZXREYXRlKCksZSwyKX1mdW5jdGlvbiBSaXQodCxlKXtyZXR1cm4gYWl0KHQuZ2V0SG91cnMoKSxlLDIpfWZ1bmN0aW9uIEVpdCh0LGUpe3JldHVybiBhaXQodC5nZXRIb3VycygpJTEyfHwxMixlLDIpfWZ1bmN0aW9uIEFpdCh0LGUpe3JldHVybiBhaXQoMSt6b3QuY291bnQoam90KHQpLHQpLGUsMyl9ZnVuY3Rpb24gVGl0KHQsZSl7cmV0dXJuIGFpdCh0LmdldE1pbGxpc2Vjb25kcygpLGUsMyl9ZnVuY3Rpb24gTml0KHQsZSl7cmV0dXJuIFRpdCh0LGUpKyIwMDAifWZ1bmN0aW9uIHppdCh0LGUpe3JldHVybiBhaXQodC5nZXRNb250aCgpKzEsZSwyKX1mdW5jdGlvbiBJaXQodCxlKXtyZXR1cm4gYWl0KHQuZ2V0TWludXRlcygpLGUsMil9ZnVuY3Rpb24gSGl0KHQsZSl7cmV0dXJuIGFpdCh0LmdldFNlY29uZHMoKSxlLDIpfWZ1bmN0aW9uIEZpdCh0KXt2YXIgZT10LmdldERheSgpO3JldHVybiAwPT09ZT83OmV9ZnVuY3Rpb24gTGl0KHQsZSl7cmV0dXJuIGFpdChIb3QuY291bnQoam90KHQpLTEsdCksZSwyKX1mdW5jdGlvbiBCaXQodCl7dmFyIGU9dC5nZXREYXkoKTtyZXR1cm4gZT49NHx8MD09PWU/TG90KHQpOkxvdC5jZWlsKHQpfWZ1bmN0aW9uIFZpdCh0LGUpe3JldHVybiB0PUJpdCh0KSxhaXQoTG90LmNvdW50KGpvdCh0KSx0KSsoND09PWpvdCh0KS5nZXREYXkoKSksZSwyKX1mdW5jdGlvbiBqaXQodCl7cmV0dXJuIHQuZ2V0RGF5KCl9ZnVuY3Rpb24gVWl0KHQsZSl7cmV0dXJuIGFpdChGb3QuY291bnQoam90KHQpLTEsdCksZSwyKX1mdW5jdGlvbiBXaXQodCxlKXtyZXR1cm4gYWl0KHQuZ2V0RnVsbFllYXIoKSUxMDAsZSwyKX1mdW5jdGlvbiBHaXQodCxlKXtyZXR1cm4gYWl0KCh0PUJpdCh0KSkuZ2V0RnVsbFllYXIoKSUxMDAsZSwyKX1mdW5jdGlvbiBZaXQodCxlKXtyZXR1cm4gYWl0KHQuZ2V0RnVsbFllYXIoKSUxZTQsZSw0KX1mdW5jdGlvbiBxaXQodCxlKXt2YXIgbj10LmdldERheSgpO3JldHVybiBhaXQoKHQ9bj49NHx8MD09PW4/TG90KHQpOkxvdC5jZWlsKHQpKS5nZXRGdWxsWWVhcigpJTFlNCxlLDQpfWZ1bmN0aW9uIFppdCh0KXt2YXIgZT10LmdldFRpbWV6b25lT2Zmc2V0KCk7cmV0dXJuKGU+MD8iLSI6KGUqPS0xLCIrIikpK2FpdChlLzYwfDAsIjAiLDIpK2FpdChlJTYwLCIwIiwyKX1mdW5jdGlvbiBYaXQodCxlKXtyZXR1cm4gYWl0KHQuZ2V0VVRDRGF0ZSgpLGUsMil9ZnVuY3Rpb24gS2l0KHQsZSl7cmV0dXJuIGFpdCh0LmdldFVUQ0hvdXJzKCksZSwyKX1mdW5jdGlvbiBKaXQodCxlKXtyZXR1cm4gYWl0KHQuZ2V0VVRDSG91cnMoKSUxMnx8MTIsZSwyKX1mdW5jdGlvbiBRaXQodCxlKXtyZXR1cm4gYWl0KDErVW90LmNvdW50KFhvdCh0KSx0KSxlLDMpfWZ1bmN0aW9uICRpdCh0LGUpe3JldHVybiBhaXQodC5nZXRVVENNaWxsaXNlY29uZHMoKSxlLDMpfWZ1bmN0aW9uIHRhdCh0LGUpe3JldHVybiAkaXQodCxlKSsiMDAwIn1mdW5jdGlvbiBlYXQodCxlKXtyZXR1cm4gYWl0KHQuZ2V0VVRDTW9udGgoKSsxLGUsMil9ZnVuY3Rpb24gbmF0KHQsZSl7cmV0dXJuIGFpdCh0LmdldFVUQ01pbnV0ZXMoKSxlLDIpfWZ1bmN0aW9uIG9hdCh0LGUpe3JldHVybiBhaXQodC5nZXRVVENTZWNvbmRzKCksZSwyKX1mdW5jdGlvbiBpYXQodCl7dmFyIGU9dC5nZXRVVENEYXkoKTtyZXR1cm4gMD09PWU/NzplfWZ1bmN0aW9uIGFhdCh0LGUpe3JldHVybiBhaXQoR290LmNvdW50KFhvdCh0KS0xLHQpLGUsMil9ZnVuY3Rpb24gcmF0KHQpe3ZhciBlPXQuZ2V0VVRDRGF5KCk7cmV0dXJuIGU+PTR8fDA9PT1lP3FvdCh0KTpxb3QuY2VpbCh0KX1mdW5jdGlvbiBzYXQodCxlKXtyZXR1cm4gdD1yYXQodCksYWl0KHFvdC5jb3VudChYb3QodCksdCkrKDQ9PT1Yb3QodCkuZ2V0VVRDRGF5KCkpLGUsMil9ZnVuY3Rpb24gbGF0KHQpe3JldHVybiB0LmdldFVUQ0RheSgpfWZ1bmN0aW9uIGNhdCh0LGUpe3JldHVybiBhaXQoWW90LmNvdW50KFhvdCh0KS0xLHQpLGUsMil9ZnVuY3Rpb24gZGF0KHQsZSl7cmV0dXJuIGFpdCh0LmdldFVUQ0Z1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gcGF0KHQsZSl7cmV0dXJuIGFpdCgodD1yYXQodCkpLmdldFVUQ0Z1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gbWF0KHQsZSl7cmV0dXJuIGFpdCh0LmdldFVUQ0Z1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24gZmF0KHQsZSl7dmFyIG49dC5nZXRVVENEYXkoKTtyZXR1cm4gYWl0KCh0PW4+PTR8fDA9PT1uP3FvdCh0KTpxb3QuY2VpbCh0KSkuZ2V0VVRDRnVsbFllYXIoKSUxZTQsZSw0KX1mdW5jdGlvbiB1YXQoKXtyZXR1cm4iKzAwMDAifWZ1bmN0aW9uIGdhdCgpe3JldHVybiIlIn1mdW5jdGlvbiBoYXQodCl7cmV0dXJuK3R9ZnVuY3Rpb24gYmF0KHQpe3JldHVybiBNYXRoLmZsb29yKCt0LzFlMyl9IShmdW5jdGlvbiB5YXQodCl7cmV0dXJuICRvdD0oZnVuY3Rpb24gZSh0KXt2YXIgZT10LmRhdGVUaW1lLG49dC5kYXRlLG89dC50aW1lLGk9dC5wZXJpb2RzLGE9dC5kYXlzLHI9dC5zaG9ydERheXMscz10Lm1vbnRocyxsPXQuc2hvcnRNb250aHMsYz1zaXQoaSksZD1saXQoaSkscD1zaXQoYSksbT1saXQoYSksZj1zaXQociksdT1saXQociksZz1zaXQocyksaD1saXQocyksYj1zaXQobCkseT1saXQobCksXz17YTpmdW5jdGlvbiBDKHQpe3JldHVybiByW3QuZ2V0RGF5KCldfSxBOmZ1bmN0aW9uIE0odCl7cmV0dXJuIGFbdC5nZXREYXkoKV19LGI6ZnVuY3Rpb24gdih0KXtyZXR1cm4gbFt0LmdldE1vbnRoKCldfSxCOmZ1bmN0aW9uIHgodCl7cmV0dXJuIHNbdC5nZXRNb250aCgpXX0sYzpudWxsLGQ6RGl0LGU6RGl0LGY6Tml0LGc6R2l0LEc6cWl0LEg6Uml0LEk6RWl0LGo6QWl0LEw6VGl0LG06eml0LE06SWl0LHA6ZnVuY3Rpb24gTyh0KXtyZXR1cm4gaVsrKHQuZ2V0SG91cnMoKT49MTIpXX0scTpmdW5jdGlvbiBQKHQpe3JldHVybiAxK35+KHQuZ2V0TW9udGgoKS8zKX0sUTpoYXQsczpiYXQsUzpIaXQsdTpGaXQsVTpMaXQsVjpWaXQsdzpqaXQsVzpVaXQseDpudWxsLFg6bnVsbCx5OldpdCxZOllpdCxaOlppdCwiJSI6Z2F0fSx3PXthOmZ1bmN0aW9uIGsodCl7cmV0dXJuIHJbdC5nZXRVVENEYXkoKV19LEE6ZnVuY3Rpb24gUyh0KXtyZXR1cm4gYVt0LmdldFVUQ0RheSgpXX0sYjpmdW5jdGlvbiBEKHQpe3JldHVybiBsW3QuZ2V0VVRDTW9udGgoKV19LEI6ZnVuY3Rpb24gUih0KXtyZXR1cm4gc1t0LmdldFVUQ01vbnRoKCldfSxjOm51bGwsZDpYaXQsZTpYaXQsZjp0YXQsZzpwYXQsRzpmYXQsSDpLaXQsSTpKaXQsajpRaXQsTDokaXQsbTplYXQsTTpuYXQscDpmdW5jdGlvbiBFKHQpe3JldHVybiBpWysodC5nZXRVVENIb3VycygpPj0xMildfSxxOmZ1bmN0aW9uIEEodCl7cmV0dXJuIDErfn4odC5nZXRVVENNb250aCgpLzMpfSxROmhhdCxzOmJhdCxTOm9hdCx1OmlhdCxVOmFhdCxWOnNhdCx3OmxhdCxXOmNhdCx4Om51bGwsWDpudWxsLHk6ZGF0LFk6bWF0LFo6dWF0LCIlIjpnYXR9LFQ9e2E6ZnVuY3Rpb24gTih0LGUsbil7dmFyIG89Zi5leGVjKGUuc2xpY2UobikpO3JldHVybiBvPyh0Lnc9dVtvWzBdLnRvTG93ZXJDYXNlKCldLG4rb1swXS5sZW5ndGgpOi0xfSxBOmZ1bmN0aW9uIHoodCxlLG4pe3ZhciBvPXAuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gbz8odC53PW1bb1swXS50b0xvd2VyQ2FzZSgpXSxuK29bMF0ubGVuZ3RoKTotMX0sYjpmdW5jdGlvbiBJKHQsZSxuKXt2YXIgbz1iLmV4ZWMoZS5zbGljZShuKSk7cmV0dXJuIG8/KHQubT15W29bMF0udG9Mb3dlckNhc2UoKV0sbitvWzBdLmxlbmd0aCk6LTF9LEI6ZnVuY3Rpb24gSCh0LGUsbil7dmFyIG89Zy5leGVjKGUuc2xpY2UobikpO3JldHVybiBvPyh0Lm09aFtvWzBdLnRvTG93ZXJDYXNlKCldLG4rb1swXS5sZW5ndGgpOi0xfSxjOmZ1bmN0aW9uIEYodCxuLG8pe3JldHVybiBXKHQsZSxuLG8pfSxkOl9pdCxlOl9pdCxmOlBpdCxnOmdpdCxHOnVpdCxIOk1pdCxJOk1pdCxqOkNpdCxMOk9pdCxtOnlpdCxNOnZpdCxwOmZ1bmN0aW9uIEwodCxlLG4pe3ZhciBvPWMuZXhlYyhlLnNsaWNlKG4pKTtyZXR1cm4gbz8odC5wPWRbb1swXS50b0xvd2VyQ2FzZSgpXSxuK29bMF0ubGVuZ3RoKTotMX0scTpiaXQsUTpraXQsczpTaXQsUzp4aXQsdTpkaXQsVTpwaXQsVjptaXQsdzpjaXQsVzpmaXQseDpmdW5jdGlvbiBCKHQsZSxvKXtyZXR1cm4gVyh0LG4sZSxvKX0sWDpmdW5jdGlvbiBWKHQsZSxuKXtyZXR1cm4gVyh0LG8sZSxuKX0seTpnaXQsWTp1aXQsWjpoaXQsIiUiOndpdH07ZnVuY3Rpb24gaih0LGUpe3JldHVybiBmdW5jdGlvbihuKXt2YXIgbyxpLGEscj1bXSxzPS0xLGw9MCxjPXQubGVuZ3RoO2ZvcihuIGluc3RhbmNlb2YgRGF0ZXx8KG49bmV3IERhdGUoK24pKTsrK3M8YzspMzc9PT10LmNoYXJDb2RlQXQocykmJihyLnB1c2godC5zbGljZShsLHMpKSxudWxsIT0oaT1laXRbbz10LmNoYXJBdCgrK3MpXSk/bz10LmNoYXJBdCgrK3MpOmk9ImUiPT09bz8iICI6IjAiLChhPWVbb10pJiYobz1hKG4saSkpLHIucHVzaChvKSxsPXMrMSk7cmV0dXJuIHIucHVzaCh0LnNsaWNlKGwscykpLHIuam9pbigiIil9fWZ1bmN0aW9uIFUodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIG8saSxhPVFvdCgxOTAwLHZvaWQgMCwxKTtpZihXKGEsdCxuKz0iIiwwKSE9bi5sZW5ndGgpcmV0dXJuIG51bGw7aWYoIlEiaW4gYSlyZXR1cm4gbmV3IERhdGUoYS5RKTtpZigicyJpbiBhKXJldHVybiBuZXcgRGF0ZSgxZTMqYS5zKygiTCJpbiBhP2EuTDowKSk7aWYoZSYmISgiWiJpbiBhKSYmKGEuWj0wKSwicCJpbiBhJiYoYS5IPWEuSCUxMisxMiphLnApLHZvaWQgMD09PWEubSYmKGEubT0icSJpbiBhP2EucTowKSwiViJpbiBhKXtpZihhLlY8MXx8YS5WPjUzKXJldHVybiBudWxsOyJ3ImluIGF8fChhLnc9MSksIloiaW4gYT8oaT0obz1Kb3QoUW90KGEueSwwLDEpKSkuZ2V0VVRDRGF5KCksbz1pPjR8fDA9PT1pP1lvdC5jZWlsKG8pOllvdChvKSxvPVVvdC5vZmZzZXQobyw3KihhLlYtMSkpLGEueT1vLmdldFVUQ0Z1bGxZZWFyKCksYS5tPW8uZ2V0VVRDTW9udGgoKSxhLmQ9by5nZXRVVENEYXRlKCkrKGEudys2KSU3KTooaT0obz1Lb3QoUW90KGEueSwwLDEpKSkuZ2V0RGF5KCksbz1pPjR8fDA9PT1pP0ZvdC5jZWlsKG8pOkZvdChvKSxvPXpvdC5vZmZzZXQobyw3KihhLlYtMSkpLGEueT1vLmdldEZ1bGxZZWFyKCksYS5tPW8uZ2V0TW9udGgoKSxhLmQ9by5nZXREYXRlKCkrKGEudys2KSU3KX1lbHNlKCJXImluIGF8fCJVImluIGEpJiYoInciaW4gYXx8KGEudz0idSJpbiBhP2EudSU3OiJXImluIGE/MTowKSxpPSJaImluIGE/Sm90KFFvdChhLnksMCwxKSkuZ2V0VVRDRGF5KCk6S290KFFvdChhLnksMCwxKSkuZ2V0RGF5KCksYS5tPTAsYS5kPSJXImluIGE/KGEudys2KSU3KzcqYS5XLShpKzUpJTc6YS53KzcqYS5VLShpKzYpJTcpO3JldHVybiJaImluIGE/KGEuSCs9YS5aLzEwMHwwLGEuTSs9YS5aJTEwMCxKb3QoYSkpOktvdChhKX19ZnVuY3Rpb24gVyh0LGUsbixvKXtmb3IodmFyIGksYSxyPTAscz1lLmxlbmd0aCxsPW4ubGVuZ3RoO3I8czspe2lmKG8+PWwpcmV0dXJuLTE7aWYoMzc9PT0oaT1lLmNoYXJDb2RlQXQocisrKSkpe2lmKGk9ZS5jaGFyQXQocisrKSwhKGE9VFtpIGluIGVpdD9lLmNoYXJBdChyKyspOmldKXx8KG89YSh0LG4sbykpPDApcmV0dXJuLTF9ZWxzZSBpZihpIT1uLmNoYXJDb2RlQXQobysrKSlyZXR1cm4tMX1yZXR1cm4gb31yZXR1cm4gXy54PWoobixfKSxfLlg9aihvLF8pLF8uYz1qKGUsXyksdy54PWoobix3KSx3Llg9aihvLHcpLHcuYz1qKGUsdykse2Zvcm1hdDpmdW5jdGlvbih0KXt2YXIgZT1qKHQrPSIiLF8pO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPVUodCs9IiIsITEpO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHV0Y0Zvcm1hdDpmdW5jdGlvbih0KXt2YXIgZT1qKHQrPSIiLHcpO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHV0Y1BhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPVUodCs9IiIsITApO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9fX0pKHQpLHRpdD0kb3QuZm9ybWF0LCRvdH0pKHtkYXRlVGltZToiJXgsICVYIixkYXRlOiIlLW0vJS1kLyVZIix0aW1lOiIlLUk6JU06JVMgJXAiLHBlcmlvZHM6WyJBTSIsIlBNIl0sZGF5czpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sc2hvcnREYXlzOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sbW9udGhzOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXSxzaG9ydE1vbnRoczpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdfSk7dmFyIF9hdD0xZTMsQ2F0PTZlNCxNYXQ9MzZlNSx2YXQ9ODY0ZTUseGF0PTI1OTJlNixPYXQ9MzE1MzZlNjtmdW5jdGlvbiBQYXQodCl7cmV0dXJuIG5ldyBEYXRlKHQpfWZ1bmN0aW9uIHdhdCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIERhdGU/K3Q6K25ldyBEYXRlKCt0KX1mdW5jdGlvbiBrYXQodCxlLG4sbyxpLGEscixzLGwpe3ZhciBjPWNvdChub3Qsbm90KSxkPWMuaW52ZXJ0LHA9Yy5kb21haW4sbT1sKCIuJUwiKSxmPWwoIjolUyIpLHU9bCgiJUk6JU0iKSxnPWwoIiVJICVwIiksaD1sKCIlYSAlZCIpLGI9bCgiJWIgJWQiKSx5PWwoIiVCIiksXz1sKCIlWSIpLEM9W1tyLDEsX2F0XSxbciw1LDVlM10sW3IsMTUsMTVlM10sW3IsMzAsM2U0XSxbYSwxLENhdF0sW2EsNSwzZTVdLFthLDE1LDllNV0sW2EsMzAsMThlNV0sW2ksMSxNYXRdLFtpLDMsMTA4ZTVdLFtpLDYsMjE2ZTVdLFtpLDEyLDQzMmU1XSxbbywxLHZhdF0sW28sMiwxNzI4ZTVdLFtuLDEsNjA0OGU1XSxbZSwxLHhhdF0sW2UsMyw3Nzc2ZTZdLFt0LDEsT2F0XV07ZnVuY3Rpb24gTShzKXtyZXR1cm4ocihzKTxzP206YShzKTxzP2Y6aShzKTxzP3U6byhzKTxzP2c6ZShzKTxzP24ocyk8cz9oOmI6dChzKTxzP3k6Xykocyl9ZnVuY3Rpb24gdihlLG4sbyxpKXtpZihudWxsPT1lJiYoZT0xMCksIm51bWJlciI9PXR5cGVvZiBlKXt2YXIgYT1NYXRoLmFicyhvLW4pL2Uscj1nNigoZnVuY3Rpb24odCl7cmV0dXJuIHRbMl19KSkucmlnaHQoQyxhKTtyPT09Qy5sZW5ndGg/KGk9azYobi9PYXQsby9PYXQsZSksZT10KTpyPyhpPShyPUNbYS9DW3ItMV1bMl08Q1tyXVsyXS9hP3ItMTpyXSlbMV0sZT1yWzBdKTooaT1NYXRoLm1heChrNihuLG8sZSksMSksZT1zKX1yZXR1cm4gbnVsbD09aT9lOmUuZXZlcnkoaSl9cmV0dXJuIGMuaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRGF0ZShkKHQpKX0sYy5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/cChxbnQuY2FsbCh0LHdhdCkpOnAoKS5tYXAoUGF0KX0sYy50aWNrcz1mdW5jdGlvbih0LGUpe3ZhciBuLG89cCgpLGk9b1swXSxhPW9bby5sZW5ndGgtMV0scj1hPGk7cmV0dXJuIHImJihuPWksaT1hLGE9biksbj0obj12KHQsaSxhLGUpKT9uLnJhbmdlKGksYSsxKTpbXSxyP24ucmV2ZXJzZSgpOm59LGMudGlja0Zvcm1hdD1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsPT1lP006bChlKX0sYy5uaWNlPWZ1bmN0aW9uKHQsZSl7dmFyIG49cCgpO3JldHVybih0PXYodCxuWzBdLG5bbi5sZW5ndGgtMV0sZSkpP3AoZm90KG4sdCkpOmN9LGMuY29weT1mdW5jdGlvbigpe3JldHVybiBzb3QoYyxrYXQodCxlLG4sbyxpLGEscixzLGwpKX0sY31mdW5jdGlvbiBTYXQoKXtyZXR1cm4gV250LmFwcGx5KGthdChqb3QsQm90LEhvdCx6b3QsTm90LFRvdCxBb3Qsd290LHRpdCkuZG9tYWluKFtuZXcgRGF0ZSgyZTMsMCwxKSxuZXcgRGF0ZSgyZTMsMCwyKV0pLGFyZ3VtZW50cyl9ZnVuY3Rpb24gRGF0KHQpe2Zvcih2YXIgZT10Lmxlbmd0aC82fDAsbj1uZXcgQXJyYXkoZSksbz0wO288ZTspbltvXT0iIyIrdC5zbGljZSg2Km8sNiorK28pO3JldHVybiBufWZ1bmN0aW9uIFJhdCh0KXtyZXR1cm4gVTkodFt0Lmxlbmd0aC0xXSl9dmFyIEVhdD1SYXQobmV3IEFycmF5KDMpLmNvbmNhdCgiZGVlYmY3OWVjYWUxMzE4MmJkIiwiZWZmM2ZmYmRkN2U3NmJhZWQ2MjE3MWI1IiwiZWZmM2ZmYmRkN2U3NmJhZWQ2MzE4MmJkMDg1MTljIiwiZWZmM2ZmYzZkYmVmOWVjYWUxNmJhZWQ2MzE4MmJkMDg1MTljIiwiZWZmM2ZmYzZkYmVmOWVjYWUxNmJhZWQ2NDI5MmM2MjE3MWI1MDg0NTk0IiwiZjdmYmZmZGVlYmY3YzZkYmVmOWVjYWUxNmJhZWQ2NDI5MmM2MjE3MWI1MDg0NTk0IiwiZjdmYmZmZGVlYmY3YzZkYmVmOWVjYWUxNmJhZWQ2NDI5MmM2MjE3MWI1MDg1MTljMDgzMDZiIikubWFwKERhdCkpLEFhdD1SYXQobmV3IEFycmF5KDMpLmNvbmNhdCgiZjBmMGYwYmRiZGJkNjM2MzYzIiwiZjdmN2Y3Y2NjY2NjOTY5Njk2NTI1MjUyIiwiZjdmN2Y3Y2NjY2NjOTY5Njk2NjM2MzYzMjUyNTI1IiwiZjdmN2Y3ZDlkOWQ5YmRiZGJkOTY5Njk2NjM2MzYzMjUyNTI1IiwiZjdmN2Y3ZDlkOWQ5YmRiZGJkOTY5Njk2NzM3MzczNTI1MjUyMjUyNTI1IiwiZmZmZmZmZjBmMGYwZDlkOWQ5YmRiZGJkOTY5Njk2NzM3MzczNTI1MjUyMjUyNTI1IiwiZmZmZmZmZjBmMGYwZDlkOWQ5YmRiZGJkOTY5Njk2NzM3MzczNTI1MjUyMjUyNTI1MDAwMDAwIikubWFwKERhdCkpLFRhdD1SYXQobmV3IEFycmF5KDMpLmNvbmNhdCgiZmVlMGQyZmM5MjcyZGUyZDI2IiwiZmVlNWQ5ZmNhZTkxZmI2YTRhY2IxODFkIiwiZmVlNWQ5ZmNhZTkxZmI2YTRhZGUyZDI2YTUwZjE1IiwiZmVlNWQ5ZmNiYmExZmM5MjcyZmI2YTRhZGUyZDI2YTUwZjE1IiwiZmVlNWQ5ZmNiYmExZmM5MjcyZmI2YTRhZWYzYjJjY2IxODFkOTkwMDBkIiwiZmZmNWYwZmVlMGQyZmNiYmExZmM5MjcyZmI2YTRhZWYzYjJjY2IxODFkOTkwMDBkIiwiZmZmNWYwZmVlMGQyZmNiYmExZmM5MjcyZmI2YTRhZWYzYjJjY2IxODFkYTUwZjE1NjcwMDBkIikubWFwKERhdCkpO2Z1bmN0aW9uIE5hdCh0KXtyZXR1cm4gZnVuY3Rpb24gZSgpe3JldHVybiB0fX1mdW5jdGlvbiB6YXQodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIElhdCh0KXtyZXR1cm4gbmV3IHphdCh0KX1mdW5jdGlvbiBIYXQodCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24gRmF0KHQpe3JldHVybiB0WzFdfWZ1bmN0aW9uIExhdCgpe3ZhciB0PUhhdCxlPUZhdCxuPU5hdCghMCksbz1udWxsLGk9SWF0LGE9bnVsbDtmdW5jdGlvbiByKHIpe3ZhciBzLGwsYyxkPXIubGVuZ3RoLHA9ITE7Zm9yKG51bGw9PW8mJihhPWkoYz1NbnQoKSkpLHM9MDtzPD1kOysrcykhKHM8ZCYmbihsPXJbc10scyxyKSk9PT1wJiYoKHA9IXApP2EubGluZVN0YXJ0KCk6YS5saW5lRW5kKCkpLHAmJmEucG9pbnQoK3QobCxzLHIpLCtlKGwscyxyKSk7aWYoYylyZXR1cm4gYT1udWxsLGMrIiJ8fG51bGx9cmV0dXJuIHIueD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOk5hdCgrZSkscik6dH0sci55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6TmF0KCt0KSxyKTplfSxyLmRlZmluZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpOYXQoISF0KSxyKTpufSxyLmN1cnZlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXQsbnVsbCE9byYmKGE9aShvKSkscik6aX0sci5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT10P289YT1udWxsOmE9aShvPXQpLHIpOm99LHJ9ZnVuY3Rpb24gQmF0KHQsZSxuKXt0Ll9jb250ZXh0LmJlemllckN1cnZlVG8odC5feDErdC5fayoodC5feDItdC5feDApLHQuX3kxK3QuX2sqKHQuX3kyLXQuX3kwKSx0Ll94Mit0Ll9rKih0Ll94MS1lKSx0Ll95Mit0Ll9rKih0Ll95MS1uKSx0Ll94Mix0Ll95Mil9ZnVuY3Rpb24gVmF0KHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtZSkvNn1mdW5jdGlvbiBqYXQodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fYWxwaGE9ZX16YXQucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godD0rdCxlPStlLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsZSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjtkZWZhdWx0OnRoaXMuX2NvbnRleHQubGluZVRvKHQsZSl9fX0sVmF0LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzpCYXQodGhpcyx0aGlzLl94MSx0aGlzLl95MSl9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX3gxPXQsdGhpcy5feTE9ZTticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MztkZWZhdWx0OkJhdCh0aGlzLHQsZSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX0samF0LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9sMDFfYT10aGlzLl9sMTJfYT10aGlzLl9sMjNfYT10aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYT10aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gyLHRoaXMuX3kyKX0odGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7aWYodD0rdCxlPStlLHRoaXMuX3BvaW50KXt2YXIgbj10aGlzLl94Mi10LG89dGhpcy5feTItZTt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KG4qbitvKm8sdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zO2RlZmF1bHQ6IShmdW5jdGlvbiBpKHQsZSxuKXt2YXIgbz10Ll94MSxpPXQuX3kxLGE9dC5feDIscj10Ll95MjtpZih0Ll9sMDFfYT4xZS0xMil7dmFyIHM9Mip0Ll9sMDFfMmErMyp0Ll9sMDFfYSp0Ll9sMTJfYSt0Ll9sMTJfMmEsbD0zKnQuX2wwMV9hKih0Ll9sMDFfYSt0Ll9sMTJfYSk7bz0obypzLXQuX3gwKnQuX2wxMl8yYSt0Ll94Mip0Ll9sMDFfMmEpL2wsaT0oaSpzLXQuX3kwKnQuX2wxMl8yYSt0Ll95Mip0Ll9sMDFfMmEpL2x9aWYodC5fbDIzX2E+MWUtMTIpe3ZhciBjPTIqdC5fbDIzXzJhKzMqdC5fbDIzX2EqdC5fbDEyX2ErdC5fbDEyXzJhLGQ9Myp0Ll9sMjNfYSoodC5fbDIzX2ErdC5fbDEyX2EpO2E9KGEqYyt0Ll94MSp0Ll9sMjNfMmEtZSp0Ll9sMTJfMmEpL2Qscj0ocipjK3QuX3kxKnQuX2wyM18yYS1uKnQuX2wxMl8yYSkvZH10Ll9jb250ZXh0LmJlemllckN1cnZlVG8obyxpLGEscix0Ll94Mix0Ll95Mil9KSh0aGlzLHQsZSl9dGhpcy5fbDAxX2E9dGhpcy5fbDEyX2EsdGhpcy5fbDEyX2E9dGhpcy5fbDIzX2EsdGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYSx0aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhLHRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9ZX19O3ZhciBVYXQ9KGZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gZT9uZXcgamF0KHQsZSk6bmV3IFZhdCh0LDApfXJldHVybiBuLmFscGhhPWZ1bmN0aW9uKGUpe3JldHVybiB0KCtlKX0sbn0pKC41KTtjb25zdCBXYXQ9MWU0LEdhdD0uMDAxLFlhdD1MbnQoIi4yfmUiKSxxYXQ9TG50KCIuNH5yIiksWmF0PUxudCgiLH4iKTtmdW5jdGlvbiBYYXQodCl7aWYoMD09PXQpcmV0dXJuIjAiO2NvbnN0IGU9TWF0aC5hYnModCk7cmV0dXJuIGU+PVdhdHx8ZTxHYXQ/WWF0KHQpOnFhdCh0KX1jb25zdCBLYXQ9e2Zvcm1hdFRpY2s6WGF0LGZvcm1hdFNob3J0OlhhdCxmb3JtYXRSZWFkYWJsZSh0KXtjb25zdCBlPU1hdGguYWJzKHQpO3JldHVybiBlPj1XYXR8fGU8R2F0P1lhdCh0KTpaYXQodCl9LGZvcm1hdExvbmc6WmF0fSxKYXQ9bmV3IEludGwuTnVtYmVyRm9ybWF0KHZvaWQgMCx7bWF4aW11bUZyYWN0aW9uRGlnaXRzOjN9KTtmdW5jdGlvbiBRYXQodCl7cmV0dXJuIEphdC5mb3JtYXQodCl9Y29uc3QgJGF0PXtmb3JtYXRUaWNrOlFhdCxmb3JtYXRTaG9ydDpRYXQsZm9ybWF0UmVhZGFibGU6UWF0LGZvcm1hdExvbmc6UWF0fSx0cnQ9TG50KCIwLjN+cyIpLGVydD1MbnQoIiwuM35mIik7ZnVuY3Rpb24gbnJ0KHQpe2NvbnN0IGU9TWF0aC5hYnModCk7cmV0dXJuIGU+PVdhdHx8ZTxHYXQ/dHJ0KHQpOmVydCh0KX1jb25zdCBvcnQ9e2Zvcm1hdFRpY2s6bnJ0LGZvcm1hdFNob3J0Om5ydCxmb3JtYXRSZWFkYWJsZTpucnQsZm9ybWF0TG9uZzpucnR9LGlydD0xZTMsYXJ0PTZlNCxycnQ9MzZlNSxzcnQ9ODY0ZTUsbHJ0PTMxNTM2ZTYsY3J0PUxudCgiLjR+Iik7ZnVuY3Rpb24gZHJ0KHQpe2lmKDA9PT10KXJldHVybiIwIjtsZXQgZT1NYXRoLnNpZ24odCk+MD8iIjoiLSI7Y29uc3Qgbj1NYXRoLmFicyh0KTtyZXR1cm4gZSs9bjxpcnQ/YCR7Y3J0KG4pfSBtc2A6bjxhcnQ/YCR7Y3J0KG4vaXJ0KX0gc2VjYDpuPHJydD9gJHtjcnQobi9hcnQpfSBtaW5gOm48c3J0P2Ake2NydChuL3JydCl9IGhyYDpuPGxydD9gJHtjcnQobi9zcnQpfSBkYXlgOmAke2NydChuL2xydCl9IHlyYCxlfWNvbnN0IHBydD17Zm9ybWF0VGljazpkcnQsZm9ybWF0U2hvcnQ6ZHJ0LGZvcm1hdFJlYWRhYmxlOmRydCxmb3JtYXRMb25nOmRydH0sbXJ0PVNhdCgpLnRpY2tGb3JtYXQoKTtsZXQgZnJ0O2NvbnN0IHVydD17Zm9ybWF0VGljazp0PT5tcnQobmV3IERhdGUodCkpLGZvcm1hdFNob3J0OnQ9Pm5ldyBEYXRlKHQpLnRvTG9jYWxlU3RyaW5nKGZydCx7eWVhcjoibnVtZXJpYyIsbW9udGg6InNob3J0IixkYXk6Im51bWVyaWMiLGhvdXI6Im51bWVyaWMiLG1pbnV0ZToibnVtZXJpYyIsc2Vjb25kOiJudW1lcmljIn0pLGZvcm1hdFJlYWRhYmxlOnQ9Pm5ldyBEYXRlKHQpLnRvTG9jYWxlU3RyaW5nKGZydCx7eWVhcjoibnVtZXJpYyIsbW9udGg6InNob3J0IixkYXk6Im51bWVyaWMiLGhvdXI6Im51bWVyaWMiLG1pbnV0ZToibnVtZXJpYyIsc2Vjb25kOiJudW1lcmljIix0aW1lWm9uZU5hbWU6InNob3J0In0pLGZvcm1hdExvbmc6dD0+bmV3IERhdGUodCkudG9Mb2NhbGVTdHJpbmcoZnJ0LHt5ZWFyOiJudW1lcmljIixtb250aDoibG9uZyIsZGF5OiJudW1lcmljIixob3VyOiJudW1lcmljIixtaW51dGU6Im51bWVyaWMiLHNlY29uZDoibnVtZXJpYyIsdGltZVpvbmVOYW1lOiJzaG9ydCIsZnJhY3Rpb25hbFNlY29uZERpZ2l0czozfSl9O2Z1bmN0aW9uIGdydCh0KXtzd2l0Y2godCl7Y2FzZSBuNi5MSU5FQVI6cmV0dXJuIG5ldyBocnQ7Y2FzZSBuNi5MT0cxMDpyZXR1cm4gbmV3IGJydDtjYXNlIG42LlRJTUU6cmV0dXJuIG5ldyB5cnQ7ZGVmYXVsdDp0aHJvdyBuZXcgUmFuZ2VFcnJvcihgU2NhbGVUeXBlICR7dH0gbm90IHN1cHBvcnRlZC5gKX19Y2xhc3MgaHJ0e2NvbnN0cnVjdG9yKCl7dGhpcy5kZWZhdWx0Rm9ybWF0dGVyPUthdH10cmFuc2Zvcm0odCxlLG4pe2NvbnN0W28saV09dCxhPWktbyxbcixzXT1lO3JldHVybiAwPT09YT9yOihzLXIpL2EqKG4tbykrcn1mb3J3YXJkKHQsZSxuKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0odCxlLG4pfXJldmVyc2UodCxlLG4pe3JldHVybiB0aGlzLnRyYW5zZm9ybShlLHQsbil9bmljZURvbWFpbih0KXtsZXRbZSxuXT10O2lmKG48ZSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgaW5wdXQ6IG1pbiBpcyBsYXJnZXIgdGhhbiBtYXgiKTtpZihuPT09ZSlyZXR1cm4gMD09PWU/Wy0xLDFdOmU8MD9bMiplLDBdOlswLDIqZV07Y29uc3Qgbz1tb3QoKSxpPS4wNSoobi1lK051bWJlci5FUFNJTE9OKSxbYSxyXT1vLmRvbWFpbihbZS1pLG4raV0pLm5pY2UoKS5kb21haW4oKTtyZXR1cm5bYSxyXX10aWNrcyh0LGUpe3JldHVybiBtb3QoKS5kb21haW4odCkudGlja3MoZSl9aXNTYWZlTnVtYmVyKHQpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUodCl9fWNsYXNzIGJydHtjb25zdHJ1Y3Rvcigpe3RoaXMuZGVmYXVsdEZvcm1hdHRlcj1LYXR9dHJhbnNmb3JtKHQpe3JldHVybiBNYXRoLmxvZzEwKHQ+MD90Ok51bWJlci5NSU5fVkFMVUUpfXVudHJhbnNmb3JtKHQpe3JldHVybiBNYXRoLmV4cCh0L01hdGguTE9HMTBFKX1mb3J3YXJkKHQsZSxuKXtpZihuPD0wKXJldHVybiBlWzBdO2NvbnN0W28saV09dCxbYSxyXT1lLHM9dGhpcy50cmFuc2Zvcm0obyksbD10aGlzLnRyYW5zZm9ybShpKS1zLGM9ci1hO3JldHVybiBuPXRoaXMudHJhbnNmb3JtKG4pLGMvKGwrTnVtYmVyLkVQU0lMT04pKihuLXMpK2F9cmV2ZXJzZSh0LGUsbil7Y29uc3RbbyxpXT10LFthLHJdPWUscz10aGlzLnRyYW5zZm9ybShvKSxsPXRoaXMudHJhbnNmb3JtKGkpO3JldHVybiB0aGlzLnVudHJhbnNmb3JtKChsLXMpLyhyLWErTnVtYmVyLkVQU0lMT04pKihuLWEpK3MpfW5pY2VEb21haW4odCl7Y29uc3RbZSxuXT10O2lmKGU+bil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgaW5wdXQ6IG1pbiBpcyBsYXJnZXIgdGhhbiBtYXgiKTtjb25zdCBvPU1hdGgubWF4KGUsTnVtYmVyLk1JTl9WQUxVRSksaT1NYXRoLm1heChuLE51bWJlci5NSU5fVkFMVUUpO3JldHVybiBuPD0wP1tOdW1iZXIuTUlOX1ZBTFVFLDFdOltNYXRoLm1heChOdW1iZXIuTUlOX1ZBTFVFLC41Km8pLDIqaV19dGlja3ModCxlKXtjb25zdCBuPXRbMF08PTA/TnVtYmVyLk1JTl9WQUxVRTp0WzBdLG89dFsxXTw9MD9OdW1iZXIuTUlOX1ZBTFVFOnRbMV0saT1Nb3QoKS5kb21haW4oW24sb10pLnRpY2tzKGUpO3JldHVybiBpLmxlbmd0aD9pOnR9aXNTYWZlTnVtYmVyKHQpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUodCkmJnQ+MH19Y2xhc3MgeXJ0e2NvbnN0cnVjdG9yKCl7dGhpcy5zY2FsZT1TYXQoKSx0aGlzLmRlZmF1bHRGb3JtYXR0ZXI9dXJ0fWZvcndhcmQodCxlLG4pe3JldHVybiB0aGlzLnNjYWxlLmRvbWFpbih0KS5yYW5nZShlKShuKX1yZXZlcnNlKHQsZSxuKXtyZXR1cm4gdGhpcy5zY2FsZS5kb21haW4odCkucmFuZ2UoZSkuaW52ZXJ0KG4pLmdldFRpbWUoKX1uaWNlRG9tYWluKHQpe2NvbnN0W2Usbl09dGhpcy5zY2FsZS5kb21haW4odCkubmljZSgpLmRvbWFpbigpO3JldHVybltlLmdldFRpbWUoKSxuLmdldFRpbWUoKV19dGlja3ModCxlKXtyZXR1cm4gdGhpcy5zY2FsZS5kb21haW4odCkudGlja3MoZSkubWFwKCh0PT50LmdldFRpbWUoKSkpfWlzU2FmZU51bWJlcih0KXtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKHQpfX1sZXQgX3J0PSExO2lmKHNlbGYuaGFzT3duUHJvcGVydHkoIldlYkdMMlJlbmRlcmluZ0NvbnRleHQiKSYmc2VsZi5oYXNPd25Qcm9wZXJ0eSgiZG9jdW1lbnQiKSl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTt0LmFkZEV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dGNyZWF0aW9uZXJyb3IiLCgoKT0+e19ydD0hMX0pKTtjb25zdCBlPXQuZ2V0Q29udGV4dCgid2ViZ2wyIik7X3J0PUJvb2xlYW4oZSl9ZnVuY3Rpb24gQ3J0KCl7cmV0dXJuIHNlbGYuaGFzT3duUHJvcGVydHkoIk9mZnNjcmVlbkNhbnZhcyIpfWZ1bmN0aW9uIE1ydCh0LGUpe2lmKHQubGVuZ3RoIT09ZS5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspaWYodFtuXSE9PWVbbl0pcmV0dXJuITE7cmV0dXJuITB9Y2xhc3MgdnJ0e2NvbnN0cnVjdG9yKCl7dGhpcy54U2NhbGU9Z3J0KG42LkxJTkVBUiksdGhpcy55U2NhbGU9Z3J0KG42LkxJTkVBUiksdGhpcy5kb21Db250YWluZXJSZWN0PXt4OjAsd2lkdGg6MSx5OjAsaGVpZ2h0OjF9LHRoaXMubGFzdFVwZGF0ZWQ9MCx0aGlzLmN1cnJlbnRWaWV3Qm94UmVjdD17eDowLHdpZHRoOjEseTowLGhlaWdodDoxfX1nZXRVcGRhdGVJZGVudGlmaWVyKCl7cmV0dXJuIHRoaXMubGFzdFVwZGF0ZWR9dXBkYXRlSWRlbnRpZmllcigpe3RoaXMubGFzdFVwZGF0ZWQrK31pc1lBeGlzUG9pbnRlZERvd24oKXtyZXR1cm4hMH1zZXRYU2NhbGUodCl7dGhpcy54U2NhbGU9dCx0aGlzLnVwZGF0ZUlkZW50aWZpZXIoKX1zZXRZU2NhbGUodCl7dGhpcy55U2NhbGU9dCx0aGlzLnVwZGF0ZUlkZW50aWZpZXIoKX1nZXRDdXJyZW50Vmlld0JveFJlY3QoKXtyZXR1cm4gdGhpcy5jdXJyZW50Vmlld0JveFJlY3R9c2V0Vmlld0JveFJlY3QodCl7dGhpcy5jdXJyZW50Vmlld0JveFJlY3Q9dCx0aGlzLnVwZGF0ZUlkZW50aWZpZXIoKX1zZXREb21Db250YWluZXJSZWN0KHQpe3RoaXMuZG9tQ29udGFpbmVyUmVjdD10LHRoaXMudXBkYXRlSWRlbnRpZmllcigpfXRyYW5zZm9ybURhdGFUb1VpQ29vcmQodCxlKXtjb25zdCBuPXQsbz0oZnVuY3Rpb24gaSh0KXtyZXR1cm57eDpbdC54LHQueCt0LndpZHRoXSx5Olt0LnksdC55K3QuaGVpZ2h0XX19KSh0aGlzLmN1cnJlbnRWaWV3Qm94UmVjdCk7cmV0dXJuW3RoaXMueFNjYWxlLmZvcndhcmQoby54LFtuLngsbi54K24ud2lkdGhdLGVbMF0pLHRoaXMueVNjYWxlLmZvcndhcmQoby55LHRoaXMuaXNZQXhpc1BvaW50ZWREb3duKCk/W24ueStuLmhlaWdodCxuLnldOltuLnksbi55K24uaGVpZ2h0XSxlWzFdKV19fWZ1bmN0aW9uIHhydCh0LGUsbixvKXtjb25zdHtjb2xvcjppLHZpc2libGU6YSxvcGFjaXR5OnJ9PW87bGV0IHM9dDtyZXR1cm4gc3x8YT8ocz1udWxsIT1zP3M6ZSgpLHM9bihzKSxzLnN0eWxlLmRpc3BsYXk9YT8iIjoibm9uZSIscy5zdHlsZS5zdHJva2U9aSxzLnN0eWxlLm9wYWNpdHk9U3RyaW5nKG51bGwhPXI/cjoxKSxzKTpudWxsfWNsYXNzIE9ydHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN2Zz10fWZsdXNoKCl7fW9uUmVzaXplKHQpe31kZXN0cm95T2JqZWN0KHQpe3RoaXMuc3ZnLnJlbW92ZUNoaWxkKHQuZG9tKX1zZXRVc2VEYXJrTW9kZSh0KXt9Y3JlYXRlUGF0aERTdHJpbmcodCl7aWYoIXQubGVuZ3RoKXJldHVybiIiO2NvbnN0IGU9bmV3IEFycmF5KHQubGVuZ3RoLzIpO2VbMF09YE0ke3RbMF19LCR7dFsxXX1gO2ZvcihsZXQgbj0xO248dC5sZW5ndGgvMjtuKyspZVtuXT1gTCR7dFsyKm5dfSwke3RbMipuKzFdfWA7cmV0dXJuIGUuam9pbigiIil9Y3JlYXRlT3JVcGRhdGVMaW5lT2JqZWN0KHQsZSxuKXtjb25zdCBvPXhydChudWxsPT10P3ZvaWQgMDp0LmRvbSwoKCk9Pntjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJwYXRoIik7dC5zdHlsZS5maWxsPSJub25lIjtjb25zdCBuPXRoaXMuY3JlYXRlUGF0aERTdHJpbmcoZSk7cmV0dXJuIHQuc2V0QXR0cmlidXRlKCJkIixuKSx0aGlzLnN2Zy5hcHBlbmRDaGlsZCh0KSx0fSksKG49PntpZighKG51bGw9PXQ/dm9pZCAwOnQuZGF0YSl8fCFNcnQoZSxudWxsPT10P3ZvaWQgMDp0LmRhdGEpKXtjb25zdCB0PXRoaXMuY3JlYXRlUGF0aERTdHJpbmcoZSk7bi5zZXRBdHRyaWJ1dGUoImQiLHQpfXJldHVybiBufSksbik7cmV0dXJuIG51bGw9PT1vP251bGw6KG8uc3R5bGUuc3Ryb2tlV2lkdGg9U3RyaW5nKG4ud2lkdGgpLHtkb206byxkYXRhOmV9KX1jcmVhdGVPclVwZGF0ZVRyaWFuZ2xlT2JqZWN0KHQsZSxuKXtjb25zdHtzaXplOm8sY29sb3I6aX09bixhPW8qTWF0aC5zcXJ0KDMpLzIscj1uZXcgRmxvYXQzMkFycmF5KFtlLngtby8yLGUueSthLzMsZS54K28vMixlLnkrYS8zLGUueCxlLnktMiphLzNdKSxzPXhydChudWxsPT10P3ZvaWQgMDp0LmRvbSwoKCk9Pntjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJwYXRoIik7dC5jbGFzc0xpc3QuYWRkKCJ0cmlhbmdsZSIpLHQuc3R5bGUuZmlsbD0ibm9uZSI7Y29uc3QgZT10aGlzLmNyZWF0ZVBhdGhEU3RyaW5nKHIpO3JldHVybiB0LnNldEF0dHJpYnV0ZSgiZCIsZSsiWiIpLHRoaXMuc3ZnLmFwcGVuZENoaWxkKHQpLHR9KSwodD0+e2NvbnN0IGU9dGhpcy5jcmVhdGVQYXRoRFN0cmluZyhyKTtyZXR1cm4gdC5zZXRBdHRyaWJ1dGUoImQiLGUrIloiKSx0fSksbik7cmV0dXJuIG51bGw9PT1zP251bGw6KHMuc3R5bGUuZmlsbD1pLHtkb206cyxkYXRhOnJ9KX1jcmVhdGVPclVwZGF0ZUNpcmNsZU9iamVjdCh0LGUsbil7Y29uc3R7Y29sb3I6byxyYWRpdXM6aX09bixhPXhydChudWxsPT10P3ZvaWQgMDp0LmRvbSwoKCk9Pntjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJjaXJjbGUiKTtyZXR1cm4gdC5zdHlsZS5maWxsPW8sdC5zZXRBdHRyaWJ1dGUoImN4IixTdHJpbmcoZS54KSksdC5zZXRBdHRyaWJ1dGUoImN5IixTdHJpbmcoZS55KSksdC5zZXRBdHRyaWJ1dGUoInIiLFN0cmluZyhpKSksdGhpcy5zdmcuYXBwZW5kQ2hpbGQodCksdH0pLCh0PT4odC5zdHlsZS5maWxsPW8sdC5zZXRBdHRyaWJ1dGUoImN4IixTdHJpbmcoZS54KSksdC5zZXRBdHRyaWJ1dGUoImN5IixTdHJpbmcoZS55KSksdC5zZXRBdHRyaWJ1dGUoInIiLFN0cmluZyhpKSksdCkpLG4pO3JldHVybiBudWxsPT09YT9udWxsOntkb206YSxkYXRhOmV9fWNyZWF0ZU9yVXBkYXRlVHJhcGV6b2lkT2JqZWN0KHQsZSxuLG8pe2lmKGUueSE9PW4ueSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5wdXQgZXJyb3I6IHN0YXJ0LnkgIT0gZW5kLnkuIik7Y29uc3R7YWx0aXR1ZGU6aSxjb2xvcjphfT1vLHI9Mi9NYXRoLnNxcnQoMykqaSxzPW5ldyBGbG9hdDMyQXJyYXkoW2UueC1yLzIsZS55K2kvMixlLngsZS55LWkvMixuLngsbi55LWkvMixuLngrci8yLG4ueStpLzJdKSxsPXhydChudWxsPT10P3ZvaWQgMDp0LmRvbSwoKCk9Pntjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJwYXRoIik7dC5jbGFzc0xpc3QuYWRkKCJ0cmFwZXpvaWQiKSx0LnN0eWxlLmZpbGw9Im5vbmUiO2NvbnN0IGU9dGhpcy5jcmVhdGVQYXRoRFN0cmluZyhzKTtyZXR1cm4gdC5zZXRBdHRyaWJ1dGUoImQiLGUrIloiKSx0aGlzLnN2Zy5hcHBlbmRDaGlsZCh0KSx0fSksKHQ9Pntjb25zdCBlPXRoaXMuY3JlYXRlUGF0aERTdHJpbmcocyk7cmV0dXJuIHQuc2V0QXR0cmlidXRlKCJkIixlKyJaIiksdH0pLG8pO3JldHVybiBudWxsPT09bD9udWxsOihsLnN0eWxlLmZpbGw9YSx7ZG9tOmwsZGF0YTpzfSl9ZGlzcG9zZSgpe319Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCAyMDEwLTIwMjEgVGhyZWUuanMgQXV0aG9ycwogICAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAogICAgICovY29uc3QgUHJ0PTEwMCx3cnQ9MzAxLGtydD0zMDIsU3J0PTMwNixEcnQ9MWUzLFJydD0xMDAxLEVydD0xMDAyLEFydD0xMDAzLFRydD0xMDA2LE5ydD0xMDA4LHpydD0xMDA5LElydD0xMDEyLEhydD0xMDE0LEZydD0xMDE1LExydD0xMDE2LEJydD0xMDIwLFZydD0xMDIyLGpydD0xMDIzLFVydD0xMDI2LFdydD0xMDI3LEdydD0yMzAwLFlydD0yMzAxLHFydD0yMzAyLFpydD0yNDAwLFhydD0yNDAxLEtydD0yNDAyLEpydD0yNTAwLFFydD0zZTMsJHJ0PTMwMDEsdHN0PTMwMDcsZXN0PTMwMDIsbnN0PTc2ODAsb3N0PTM1MDQ0LGlzdD0zNTA0OCxhc3Q9IjMwMCBlcyI7Y2xhc3MgcnN0e2FkZEV2ZW50TGlzdGVuZXIodCxlKXt2b2lkIDA9PT10aGlzLl9saXN0ZW5lcnMmJih0aGlzLl9saXN0ZW5lcnM9e30pO2NvbnN0IG49dGhpcy5fbGlzdGVuZXJzO3ZvaWQgMD09PW5bdF0mJihuW3RdPVtdKSwtMT09PW5bdF0uaW5kZXhPZihlKSYmblt0XS5wdXNoKGUpfWhhc0V2ZW50TGlzdGVuZXIodCxlKXtpZih2b2lkIDA9PT10aGlzLl9saXN0ZW5lcnMpcmV0dXJuITE7Y29uc3Qgbj10aGlzLl9saXN0ZW5lcnM7cmV0dXJuIHZvaWQgMCE9PW5bdF0mJi0xIT09blt0XS5pbmRleE9mKGUpfXJlbW92ZUV2ZW50TGlzdGVuZXIodCxlKXtpZih2b2lkIDA9PT10aGlzLl9saXN0ZW5lcnMpcmV0dXJuO2NvbnN0IG49dGhpcy5fbGlzdGVuZXJzW3RdO2lmKHZvaWQgMCE9PW4pe2NvbnN0IHQ9bi5pbmRleE9mKGUpOy0xIT09dCYmbi5zcGxpY2UodCwxKX19ZGlzcGF0Y2hFdmVudCh0KXtpZih2b2lkIDA9PT10aGlzLl9saXN0ZW5lcnMpcmV0dXJuO2NvbnN0IGU9dGhpcy5fbGlzdGVuZXJzW3QudHlwZV07aWYodm9pZCAwIT09ZSl7dC50YXJnZXQ9dGhpcztjb25zdCBuPWUuc2xpY2UoMCk7Zm9yKGxldCBlPTAsbz1uLmxlbmd0aDtlPG87ZSsrKW5bZV0uY2FsbCh0aGlzLHQpO3QudGFyZ2V0PW51bGx9fX1jb25zdCBzc3Q9W107Zm9yKGxldCB0PTA7dDwyNTY7dCsrKXNzdFt0XT0odDwxNj8iMCI6IiIpK3QudG9TdHJpbmcoMTYpO2NvbnN0IGxzdD1NYXRoLlBJLzE4MCxjc3Q9MTgwL01hdGguUEk7ZnVuY3Rpb24gZHN0KCl7Y29uc3QgdD00Mjk0OTY3Mjk1Kk1hdGgucmFuZG9tKCl8MCxlPTQyOTQ5NjcyOTUqTWF0aC5yYW5kb20oKXwwLG49NDI5NDk2NzI5NSpNYXRoLnJhbmRvbSgpfDAsbz00Mjk0OTY3Mjk1Kk1hdGgucmFuZG9tKCl8MDtyZXR1cm4oc3N0WzI1NSZ0XStzc3RbdD4+OCYyNTVdK3NzdFt0Pj4xNiYyNTVdK3NzdFt0Pj4yNCYyNTVdKyItIitzc3RbMjU1JmVdK3NzdFtlPj44JjI1NV0rIi0iK3NzdFtlPj4xNiYxNXw2NF0rc3N0W2U+PjI0JjI1NV0rIi0iK3NzdFs2MyZufDEyOF0rc3N0W24+PjgmMjU1XSsiLSIrc3N0W24+PjE2JjI1NV0rc3N0W24+PjI0JjI1NV0rc3N0WzI1NSZvXStzc3Rbbz4+OCYyNTVdK3NzdFtvPj4xNiYyNTVdK3NzdFtvPj4yNCYyNTVdKS50b1VwcGVyQ2FzZSgpfWZ1bmN0aW9uIHBzdCh0LGUsbil7cmV0dXJuIE1hdGgubWF4KGUsTWF0aC5taW4obix0KSl9ZnVuY3Rpb24gbXN0KHQsZSxuKXtyZXR1cm4oMS1uKSp0K24qZX1mdW5jdGlvbiBmc3QodCl7cmV0dXJuIDA9PSh0JnQtMSkmJjAhPT10fWZ1bmN0aW9uIHVzdCh0KXtyZXR1cm4gTWF0aC5wb3coMixNYXRoLmZsb29yKE1hdGgubG9nKHQpL01hdGguTE4yKSl9Y2xhc3MgZ3N0e2NvbnN0cnVjdG9yKHQ9MCxlPTApe3RoaXMueD10LHRoaXMueT1lfWdldCB3aWR0aCgpe3JldHVybiB0aGlzLnh9c2V0IHdpZHRoKHQpe3RoaXMueD10fWdldCBoZWlnaHQoKXtyZXR1cm4gdGhpcy55fXNldCBoZWlnaHQodCl7dGhpcy55PXR9c2V0KHQsZSl7cmV0dXJuIHRoaXMueD10LHRoaXMueT1lLHRoaXN9c2V0U2NhbGFyKHQpe3JldHVybiB0aGlzLng9dCx0aGlzLnk9dCx0aGlzfXNldFgodCl7cmV0dXJuIHRoaXMueD10LHRoaXN9c2V0WSh0KXtyZXR1cm4gdGhpcy55PXQsdGhpc31zZXRDb21wb25lbnQodCxlKXtzd2l0Y2godCl7Y2FzZSAwOnRoaXMueD1lO2JyZWFrO2Nhc2UgMTp0aGlzLnk9ZTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiaW5kZXggaXMgb3V0IG9mIHJhbmdlOiAiK3QpfXJldHVybiB0aGlzfWdldENvbXBvbmVudCh0KXtzd2l0Y2godCl7Y2FzZSAwOnJldHVybiB0aGlzLng7Y2FzZSAxOnJldHVybiB0aGlzLnk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImluZGV4IGlzIG91dCBvZiByYW5nZTogIit0KX19Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy54LHRoaXMueSl9Y29weSh0KXtyZXR1cm4gdGhpcy54PXQueCx0aGlzLnk9dC55LHRoaXN9YWRkKHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMjogLmFkZCgpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLmFkZFZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMuYWRkVmVjdG9ycyh0LGUpKToodGhpcy54Kz10LngsdGhpcy55Kz10LnksdGhpcyl9YWRkU2NhbGFyKHQpe3JldHVybiB0aGlzLngrPXQsdGhpcy55Kz10LHRoaXN9YWRkVmVjdG9ycyh0LGUpe3JldHVybiB0aGlzLng9dC54K2UueCx0aGlzLnk9dC55K2UueSx0aGlzfWFkZFNjYWxlZFZlY3Rvcih0LGUpe3JldHVybiB0aGlzLngrPXQueCplLHRoaXMueSs9dC55KmUsdGhpc31zdWIodCxlKXtyZXR1cm4gdm9pZCAwIT09ZT8oY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IyOiAuc3ViKCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAuc3ViVmVjdG9ycyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5zdWJWZWN0b3JzKHQsZSkpOih0aGlzLngtPXQueCx0aGlzLnktPXQueSx0aGlzKX1zdWJTY2FsYXIodCl7cmV0dXJuIHRoaXMueC09dCx0aGlzLnktPXQsdGhpc31zdWJWZWN0b3JzKHQsZSl7cmV0dXJuIHRoaXMueD10LngtZS54LHRoaXMueT10LnktZS55LHRoaXN9bXVsdGlwbHkodCl7cmV0dXJuIHRoaXMueCo9dC54LHRoaXMueSo9dC55LHRoaXN9bXVsdGlwbHlTY2FsYXIodCl7cmV0dXJuIHRoaXMueCo9dCx0aGlzLnkqPXQsdGhpc31kaXZpZGUodCl7cmV0dXJuIHRoaXMueC89dC54LHRoaXMueS89dC55LHRoaXN9ZGl2aWRlU2NhbGFyKHQpe3JldHVybiB0aGlzLm11bHRpcGx5U2NhbGFyKDEvdCl9YXBwbHlNYXRyaXgzKHQpe2NvbnN0IGU9dGhpcy54LG49dGhpcy55LG89dC5lbGVtZW50cztyZXR1cm4gdGhpcy54PW9bMF0qZStvWzNdKm4rb1s2XSx0aGlzLnk9b1sxXSplK29bNF0qbitvWzddLHRoaXN9bWluKHQpe3JldHVybiB0aGlzLng9TWF0aC5taW4odGhpcy54LHQueCksdGhpcy55PU1hdGgubWluKHRoaXMueSx0LnkpLHRoaXN9bWF4KHQpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodGhpcy54LHQueCksdGhpcy55PU1hdGgubWF4KHRoaXMueSx0LnkpLHRoaXN9Y2xhbXAodCxlKXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHQueCxNYXRoLm1pbihlLngsdGhpcy54KSksdGhpcy55PU1hdGgubWF4KHQueSxNYXRoLm1pbihlLnksdGhpcy55KSksdGhpc31jbGFtcFNjYWxhcih0LGUpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodCxNYXRoLm1pbihlLHRoaXMueCkpLHRoaXMueT1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy55KSksdGhpc31jbGFtcExlbmd0aCh0LGUpe2NvbnN0IG49dGhpcy5sZW5ndGgoKTtyZXR1cm4gdGhpcy5kaXZpZGVTY2FsYXIobnx8MSkubXVsdGlwbHlTY2FsYXIoTWF0aC5tYXgodCxNYXRoLm1pbihlLG4pKSl9Zmxvb3IoKXtyZXR1cm4gdGhpcy54PU1hdGguZmxvb3IodGhpcy54KSx0aGlzLnk9TWF0aC5mbG9vcih0aGlzLnkpLHRoaXN9Y2VpbCgpe3JldHVybiB0aGlzLng9TWF0aC5jZWlsKHRoaXMueCksdGhpcy55PU1hdGguY2VpbCh0aGlzLnkpLHRoaXN9cm91bmQoKXtyZXR1cm4gdGhpcy54PU1hdGgucm91bmQodGhpcy54KSx0aGlzLnk9TWF0aC5yb3VuZCh0aGlzLnkpLHRoaXN9cm91bmRUb1plcm8oKXtyZXR1cm4gdGhpcy54PXRoaXMueDwwP01hdGguY2VpbCh0aGlzLngpOk1hdGguZmxvb3IodGhpcy54KSx0aGlzLnk9dGhpcy55PDA/TWF0aC5jZWlsKHRoaXMueSk6TWF0aC5mbG9vcih0aGlzLnkpLHRoaXN9bmVnYXRlKCl7cmV0dXJuIHRoaXMueD0tdGhpcy54LHRoaXMueT0tdGhpcy55LHRoaXN9ZG90KHQpe3JldHVybiB0aGlzLngqdC54K3RoaXMueSp0Lnl9Y3Jvc3ModCl7cmV0dXJuIHRoaXMueCp0LnktdGhpcy55KnQueH1sZW5ndGhTcSgpe3JldHVybiB0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnl9bGVuZ3RoKCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnkpfW1hbmhhdHRhbkxlbmd0aCgpe3JldHVybiBNYXRoLmFicyh0aGlzLngpK01hdGguYWJzKHRoaXMueSl9bm9ybWFsaXplKCl7cmV0dXJuIHRoaXMuZGl2aWRlU2NhbGFyKHRoaXMubGVuZ3RoKCl8fDEpfWFuZ2xlKCl7cmV0dXJuIE1hdGguYXRhbjIoLXRoaXMueSwtdGhpcy54KStNYXRoLlBJfWRpc3RhbmNlVG8odCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLmRpc3RhbmNlVG9TcXVhcmVkKHQpKX1kaXN0YW5jZVRvU3F1YXJlZCh0KXtjb25zdCBlPXRoaXMueC10Lngsbj10aGlzLnktdC55O3JldHVybiBlKmUrbipufW1hbmhhdHRhbkRpc3RhbmNlVG8odCl7cmV0dXJuIE1hdGguYWJzKHRoaXMueC10LngpK01hdGguYWJzKHRoaXMueS10LnkpfXNldExlbmd0aCh0KXtyZXR1cm4gdGhpcy5ub3JtYWxpemUoKS5tdWx0aXBseVNjYWxhcih0KX1sZXJwKHQsZSl7cmV0dXJuIHRoaXMueCs9KHQueC10aGlzLngpKmUsdGhpcy55Kz0odC55LXRoaXMueSkqZSx0aGlzfWxlcnBWZWN0b3JzKHQsZSxuKXtyZXR1cm4gdGhpcy54PXQueCsoZS54LXQueCkqbix0aGlzLnk9dC55KyhlLnktdC55KSpuLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0Lng9PT10aGlzLngmJnQueT09PXRoaXMueX1mcm9tQXJyYXkodCxlPTApe3JldHVybiB0aGlzLng9dFtlXSx0aGlzLnk9dFtlKzFdLHRoaXN9dG9BcnJheSh0PVtdLGU9MCl7cmV0dXJuIHRbZV09dGhpcy54LHRbZSsxXT10aGlzLnksdH1mcm9tQnVmZmVyQXR0cmlidXRlKHQsZSxuKXtyZXR1cm4gdm9pZCAwIT09biYmY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IyOiBvZmZzZXQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIC5mcm9tQnVmZmVyQXR0cmlidXRlKCkuIiksdGhpcy54PXQuZ2V0WChlKSx0aGlzLnk9dC5nZXRZKGUpLHRoaXN9cm90YXRlQXJvdW5kKHQsZSl7Y29uc3Qgbj1NYXRoLmNvcyhlKSxvPU1hdGguc2luKGUpLGk9dGhpcy54LXQueCxhPXRoaXMueS10Lnk7cmV0dXJuIHRoaXMueD1pKm4tYSpvK3QueCx0aGlzLnk9aSpvK2Eqbit0LnksdGhpc31yYW5kb20oKXtyZXR1cm4gdGhpcy54PU1hdGgucmFuZG9tKCksdGhpcy55PU1hdGgucmFuZG9tKCksdGhpc319Z3N0LnByb3RvdHlwZS5pc1ZlY3RvcjI9ITA7Y2xhc3MgaHN0e2NvbnN0cnVjdG9yKCl7dGhpcy5lbGVtZW50cz1bMSwwLDAsMCwxLDAsMCwwLDFdLGFyZ3VtZW50cy5sZW5ndGg+MCYmY29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4MzogdGhlIGNvbnN0cnVjdG9yIG5vIGxvbmdlciByZWFkcyBhcmd1bWVudHMuIHVzZSAuc2V0KCkgaW5zdGVhZC4iKX1zZXQodCxlLG4sbyxpLGEscixzLGwpe2NvbnN0IGM9dGhpcy5lbGVtZW50cztyZXR1cm4gY1swXT10LGNbMV09byxjWzJdPXIsY1szXT1lLGNbNF09aSxjWzVdPXMsY1s2XT1uLGNbN109YSxjWzhdPWwsdGhpc31pZGVudGl0eSgpe3JldHVybiB0aGlzLnNldCgxLDAsMCwwLDEsMCwwLDAsMSksdGhpc31jb3B5KHQpe2NvbnN0IGU9dGhpcy5lbGVtZW50cyxuPXQuZWxlbWVudHM7cmV0dXJuIGVbMF09blswXSxlWzFdPW5bMV0sZVsyXT1uWzJdLGVbM109blszXSxlWzRdPW5bNF0sZVs1XT1uWzVdLGVbNl09bls2XSxlWzddPW5bN10sZVs4XT1uWzhdLHRoaXN9ZXh0cmFjdEJhc2lzKHQsZSxuKXtyZXR1cm4gdC5zZXRGcm9tTWF0cml4M0NvbHVtbih0aGlzLDApLGUuc2V0RnJvbU1hdHJpeDNDb2x1bW4odGhpcywxKSxuLnNldEZyb21NYXRyaXgzQ29sdW1uKHRoaXMsMiksdGhpc31zZXRGcm9tTWF0cml4NCh0KXtjb25zdCBlPXQuZWxlbWVudHM7cmV0dXJuIHRoaXMuc2V0KGVbMF0sZVs0XSxlWzhdLGVbMV0sZVs1XSxlWzldLGVbMl0sZVs2XSxlWzEwXSksdGhpc31tdWx0aXBseSh0KXtyZXR1cm4gdGhpcy5tdWx0aXBseU1hdHJpY2VzKHRoaXMsdCl9cHJlbXVsdGlwbHkodCl7cmV0dXJuIHRoaXMubXVsdGlwbHlNYXRyaWNlcyh0LHRoaXMpfW11bHRpcGx5TWF0cmljZXModCxlKXtjb25zdCBuPXQuZWxlbWVudHMsbz1lLmVsZW1lbnRzLGk9dGhpcy5lbGVtZW50cyxhPW5bMF0scj1uWzNdLHM9bls2XSxsPW5bMV0sYz1uWzRdLGQ9bls3XSxwPW5bMl0sbT1uWzVdLGY9bls4XSx1PW9bMF0sZz1vWzNdLGg9b1s2XSxiPW9bMV0seT1vWzRdLF89b1s3XSxDPW9bMl0sTT1vWzVdLHY9b1s4XTtyZXR1cm4gaVswXT1hKnUrcipiK3MqQyxpWzNdPWEqZytyKnkrcypNLGlbNl09YSpoK3IqXytzKnYsaVsxXT1sKnUrYypiK2QqQyxpWzRdPWwqZytjKnkrZCpNLGlbN109bCpoK2MqXytkKnYsaVsyXT1wKnUrbSpiK2YqQyxpWzVdPXAqZyttKnkrZipNLGlbOF09cCpoK20qXytmKnYsdGhpc31tdWx0aXBseVNjYWxhcih0KXtjb25zdCBlPXRoaXMuZWxlbWVudHM7cmV0dXJuIGVbMF0qPXQsZVszXSo9dCxlWzZdKj10LGVbMV0qPXQsZVs0XSo9dCxlWzddKj10LGVbMl0qPXQsZVs1XSo9dCxlWzhdKj10LHRoaXN9ZGV0ZXJtaW5hbnQoKXtjb25zdCB0PXRoaXMuZWxlbWVudHMsZT10WzBdLG49dFsxXSxvPXRbMl0saT10WzNdLGE9dFs0XSxyPXRbNV0scz10WzZdLGw9dFs3XSxjPXRbOF07cmV0dXJuIGUqYSpjLWUqcipsLW4qaSpjK24qcipzK28qaSpsLW8qYSpzfWludmVydCgpe2NvbnN0IHQ9dGhpcy5lbGVtZW50cyxlPXRbMF0sbj10WzFdLG89dFsyXSxpPXRbM10sYT10WzRdLHI9dFs1XSxzPXRbNl0sbD10WzddLGM9dFs4XSxkPWMqYS1yKmwscD1yKnMtYyppLG09bCppLWEqcyxmPWUqZCtuKnArbyptO2lmKDA9PT1mKXJldHVybiB0aGlzLnNldCgwLDAsMCwwLDAsMCwwLDAsMCk7Y29uc3QgdT0xL2Y7cmV0dXJuIHRbMF09ZCp1LHRbMV09KG8qbC1jKm4pKnUsdFsyXT0ocipuLW8qYSkqdSx0WzNdPXAqdSx0WzRdPShjKmUtbypzKSp1LHRbNV09KG8qaS1yKmUpKnUsdFs2XT1tKnUsdFs3XT0obipzLWwqZSkqdSx0WzhdPShhKmUtbippKSp1LHRoaXN9dHJhbnNwb3NlKCl7bGV0IHQ7Y29uc3QgZT10aGlzLmVsZW1lbnRzO3JldHVybiB0PWVbMV0sZVsxXT1lWzNdLGVbM109dCx0PWVbMl0sZVsyXT1lWzZdLGVbNl09dCx0PWVbNV0sZVs1XT1lWzddLGVbN109dCx0aGlzfWdldE5vcm1hbE1hdHJpeCh0KXtyZXR1cm4gdGhpcy5zZXRGcm9tTWF0cml4NCh0KS5pbnZlcnQoKS50cmFuc3Bvc2UoKX10cmFuc3Bvc2VJbnRvQXJyYXkodCl7Y29uc3QgZT10aGlzLmVsZW1lbnRzO3JldHVybiB0WzBdPWVbMF0sdFsxXT1lWzNdLHRbMl09ZVs2XSx0WzNdPWVbMV0sdFs0XT1lWzRdLHRbNV09ZVs3XSx0WzZdPWVbMl0sdFs3XT1lWzVdLHRbOF09ZVs4XSx0aGlzfXNldFV2VHJhbnNmb3JtKHQsZSxuLG8saSxhLHIpe2NvbnN0IHM9TWF0aC5jb3MoaSksbD1NYXRoLnNpbihpKTtyZXR1cm4gdGhpcy5zZXQobipzLG4qbCwtbioocyphK2wqcikrYSt0LC1vKmwsbypzLC1vKigtbCphK3MqcikrcitlLDAsMCwxKSx0aGlzfXNjYWxlKHQsZSl7Y29uc3Qgbj10aGlzLmVsZW1lbnRzO3JldHVybiBuWzBdKj10LG5bM10qPXQsbls2XSo9dCxuWzFdKj1lLG5bNF0qPWUsbls3XSo9ZSx0aGlzfXJvdGF0ZSh0KXtjb25zdCBlPU1hdGguY29zKHQpLG49TWF0aC5zaW4odCksbz10aGlzLmVsZW1lbnRzLGk9b1swXSxhPW9bM10scj1vWzZdLHM9b1sxXSxsPW9bNF0sYz1vWzddO3JldHVybiBvWzBdPWUqaStuKnMsb1szXT1lKmErbipsLG9bNl09ZSpyK24qYyxvWzFdPS1uKmkrZSpzLG9bNF09LW4qYStlKmwsb1s3XT0tbipyK2UqYyx0aGlzfXRyYW5zbGF0ZSh0LGUpe2NvbnN0IG49dGhpcy5lbGVtZW50cztyZXR1cm4gblswXSs9dCpuWzJdLG5bM10rPXQqbls1XSxuWzZdKz10Km5bOF0sblsxXSs9ZSpuWzJdLG5bNF0rPWUqbls1XSxuWzddKz1lKm5bOF0sdGhpc31lcXVhbHModCl7Y29uc3QgZT10aGlzLmVsZW1lbnRzLG49dC5lbGVtZW50cztmb3IobGV0IHQ9MDt0PDk7dCsrKWlmKGVbdF0hPT1uW3RdKXJldHVybiExO3JldHVybiEwfWZyb21BcnJheSh0LGU9MCl7Zm9yKGxldCBuPTA7bjw5O24rKyl0aGlzLmVsZW1lbnRzW25dPXRbbitlXTtyZXR1cm4gdGhpc310b0FycmF5KHQ9W10sZT0wKXtjb25zdCBuPXRoaXMuZWxlbWVudHM7cmV0dXJuIHRbZV09blswXSx0W2UrMV09blsxXSx0W2UrMl09blsyXSx0W2UrM109blszXSx0W2UrNF09bls0XSx0W2UrNV09bls1XSx0W2UrNl09bls2XSx0W2UrN109bls3XSx0W2UrOF09bls4XSx0fWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5mcm9tQXJyYXkodGhpcy5lbGVtZW50cyl9fWxldCBic3Q7aHN0LnByb3RvdHlwZS5pc01hdHJpeDM9ITA7Y2xhc3MgeXN0e3N0YXRpYyBnZXREYXRhVVJMKHQpe2lmKC9eZGF0YTovaS50ZXN0KHQuc3JjKSlyZXR1cm4gdC5zcmM7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBIVE1MQ2FudmFzRWxlbWVudClyZXR1cm4gdC5zcmM7bGV0IGU7aWYodCBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50KWU9dDtlbHNle3ZvaWQgMD09PWJzdCYmKGJzdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJjYW52YXMiKSksYnN0LndpZHRoPXQud2lkdGgsYnN0LmhlaWdodD10LmhlaWdodDtjb25zdCBuPWJzdC5nZXRDb250ZXh0KCIyZCIpO3QgaW5zdGFuY2VvZiBJbWFnZURhdGE/bi5wdXRJbWFnZURhdGEodCwwLDApOm4uZHJhd0ltYWdlKHQsMCwwLHQud2lkdGgsdC5oZWlnaHQpLGU9YnN0fXJldHVybiBlLndpZHRoPjIwNDh8fGUuaGVpZ2h0PjIwNDg/KGNvbnNvbGUud2FybigiVEhSRUUuSW1hZ2VVdGlscy5nZXREYXRhVVJMOiBJbWFnZSBjb252ZXJ0ZWQgdG8ganBnIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIix0KSxlLnRvRGF0YVVSTCgiaW1hZ2UvanBlZyIsLjYpKTplLnRvRGF0YVVSTCgiaW1hZ2UvcG5nIil9fWxldCBfc3Q9MDtjbGFzcyBDc3QgZXh0ZW5kcyByc3R7Y29uc3RydWN0b3IodD1Dc3QuREVGQVVMVF9JTUFHRSxlPUNzdC5ERUZBVUxUX01BUFBJTkcsbj0xMDAxLG89MTAwMSxpPTEwMDYsYT0xMDA4LHI9MTAyMyxzPTEwMDksbD0xLGM9M2UzKXtzdXBlcigpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJpZCIse3ZhbHVlOl9zdCsrfSksdGhpcy51dWlkPWRzdCgpLHRoaXMubmFtZT0iIix0aGlzLmltYWdlPXQsdGhpcy5taXBtYXBzPVtdLHRoaXMubWFwcGluZz1lLHRoaXMud3JhcFM9bix0aGlzLndyYXBUPW8sdGhpcy5tYWdGaWx0ZXI9aSx0aGlzLm1pbkZpbHRlcj1hLHRoaXMuYW5pc290cm9weT1sLHRoaXMuZm9ybWF0PXIsdGhpcy5pbnRlcm5hbEZvcm1hdD1udWxsLHRoaXMudHlwZT1zLHRoaXMub2Zmc2V0PW5ldyBnc3QoMCwwKSx0aGlzLnJlcGVhdD1uZXcgZ3N0KDEsMSksdGhpcy5jZW50ZXI9bmV3IGdzdCgwLDApLHRoaXMucm90YXRpb249MCx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9ITAsdGhpcy5tYXRyaXg9bmV3IGhzdCx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMCx0aGlzLnByZW11bHRpcGx5QWxwaGE9ITEsdGhpcy5mbGlwWT0hMCx0aGlzLnVucGFja0FsaWdubWVudD00LHRoaXMuZW5jb2Rpbmc9Yyx0aGlzLnZlcnNpb249MCx0aGlzLm9uVXBkYXRlPW51bGwsdGhpcy5pc1JlbmRlclRhcmdldFRleHR1cmU9ITF9dXBkYXRlTWF0cml4KCl7dGhpcy5tYXRyaXguc2V0VXZUcmFuc2Zvcm0odGhpcy5vZmZzZXQueCx0aGlzLm9mZnNldC55LHRoaXMucmVwZWF0LngsdGhpcy5yZXBlYXQueSx0aGlzLnJvdGF0aW9uLHRoaXMuY2VudGVyLngsdGhpcy5jZW50ZXIueSl9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9Y29weSh0KXtyZXR1cm4gdGhpcy5uYW1lPXQubmFtZSx0aGlzLmltYWdlPXQuaW1hZ2UsdGhpcy5taXBtYXBzPXQubWlwbWFwcy5zbGljZSgwKSx0aGlzLm1hcHBpbmc9dC5tYXBwaW5nLHRoaXMud3JhcFM9dC53cmFwUyx0aGlzLndyYXBUPXQud3JhcFQsdGhpcy5tYWdGaWx0ZXI9dC5tYWdGaWx0ZXIsdGhpcy5taW5GaWx0ZXI9dC5taW5GaWx0ZXIsdGhpcy5hbmlzb3Ryb3B5PXQuYW5pc290cm9weSx0aGlzLmZvcm1hdD10LmZvcm1hdCx0aGlzLmludGVybmFsRm9ybWF0PXQuaW50ZXJuYWxGb3JtYXQsdGhpcy50eXBlPXQudHlwZSx0aGlzLm9mZnNldC5jb3B5KHQub2Zmc2V0KSx0aGlzLnJlcGVhdC5jb3B5KHQucmVwZWF0KSx0aGlzLmNlbnRlci5jb3B5KHQuY2VudGVyKSx0aGlzLnJvdGF0aW9uPXQucm90YXRpb24sdGhpcy5tYXRyaXhBdXRvVXBkYXRlPXQubWF0cml4QXV0b1VwZGF0ZSx0aGlzLm1hdHJpeC5jb3B5KHQubWF0cml4KSx0aGlzLmdlbmVyYXRlTWlwbWFwcz10LmdlbmVyYXRlTWlwbWFwcyx0aGlzLnByZW11bHRpcGx5QWxwaGE9dC5wcmVtdWx0aXBseUFscGhhLHRoaXMuZmxpcFk9dC5mbGlwWSx0aGlzLnVucGFja0FsaWdubWVudD10LnVucGFja0FsaWdubWVudCx0aGlzLmVuY29kaW5nPXQuZW5jb2RpbmcsdGhpc310b0pTT04odCl7Y29uc3QgZT12b2lkIDA9PT10fHwic3RyaW5nIj09dHlwZW9mIHQ7aWYoIWUmJnZvaWQgMCE9PXQudGV4dHVyZXNbdGhpcy51dWlkXSlyZXR1cm4gdC50ZXh0dXJlc1t0aGlzLnV1aWRdO2NvbnN0IG49e21ldGFkYXRhOnt2ZXJzaW9uOjQuNSx0eXBlOiJUZXh0dXJlIixnZW5lcmF0b3I6IlRleHR1cmUudG9KU09OIn0sdXVpZDp0aGlzLnV1aWQsbmFtZTp0aGlzLm5hbWUsbWFwcGluZzp0aGlzLm1hcHBpbmcscmVwZWF0Olt0aGlzLnJlcGVhdC54LHRoaXMucmVwZWF0LnldLG9mZnNldDpbdGhpcy5vZmZzZXQueCx0aGlzLm9mZnNldC55XSxjZW50ZXI6W3RoaXMuY2VudGVyLngsdGhpcy5jZW50ZXIueV0scm90YXRpb246dGhpcy5yb3RhdGlvbix3cmFwOlt0aGlzLndyYXBTLHRoaXMud3JhcFRdLGZvcm1hdDp0aGlzLmZvcm1hdCx0eXBlOnRoaXMudHlwZSxlbmNvZGluZzp0aGlzLmVuY29kaW5nLG1pbkZpbHRlcjp0aGlzLm1pbkZpbHRlcixtYWdGaWx0ZXI6dGhpcy5tYWdGaWx0ZXIsYW5pc290cm9weTp0aGlzLmFuaXNvdHJvcHksZmxpcFk6dGhpcy5mbGlwWSxwcmVtdWx0aXBseUFscGhhOnRoaXMucHJlbXVsdGlwbHlBbHBoYSx1bnBhY2tBbGlnbm1lbnQ6dGhpcy51bnBhY2tBbGlnbm1lbnR9O2lmKHZvaWQgMCE9PXRoaXMuaW1hZ2Upe2NvbnN0IG89dGhpcy5pbWFnZTtpZih2b2lkIDA9PT1vLnV1aWQmJihvLnV1aWQ9ZHN0KCkpLCFlJiZ2b2lkIDA9PT10LmltYWdlc1tvLnV1aWRdKXtsZXQgZTtpZihBcnJheS5pc0FycmF5KG8pKXtlPVtdO2ZvcihsZXQgdD0wLG49by5sZW5ndGg7dDxuO3QrKyllLnB1c2goTXN0KG9bdF0uaXNEYXRhVGV4dHVyZT9vW3RdLmltYWdlOm9bdF0pKX1lbHNlIGU9TXN0KG8pO3QuaW1hZ2VzW28udXVpZF09e3V1aWQ6by51dWlkLHVybDplfX1uLmltYWdlPW8udXVpZH1yZXR1cm4gZXx8KHQudGV4dHVyZXNbdGhpcy51dWlkXT1uKSxufWRpc3Bvc2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImRpc3Bvc2UifSl9dHJhbnNmb3JtVXYodCl7aWYoMzAwIT09dGhpcy5tYXBwaW5nKXJldHVybiB0O2lmKHQuYXBwbHlNYXRyaXgzKHRoaXMubWF0cml4KSx0Lng8MHx8dC54PjEpc3dpdGNoKHRoaXMud3JhcFMpe2Nhc2UgRHJ0OnQueD10LngtTWF0aC5mbG9vcih0LngpO2JyZWFrO2Nhc2UgUnJ0OnQueD10Lng8MD8wOjE7YnJlYWs7Y2FzZSBFcnQ6dC54PTE9PT1NYXRoLmFicyhNYXRoLmZsb29yKHQueCklMik/TWF0aC5jZWlsKHQueCktdC54OnQueC1NYXRoLmZsb29yKHQueCl9aWYodC55PDB8fHQueT4xKXN3aXRjaCh0aGlzLndyYXBUKXtjYXNlIERydDp0Lnk9dC55LU1hdGguZmxvb3IodC55KTticmVhaztjYXNlIFJydDp0Lnk9dC55PDA/MDoxO2JyZWFrO2Nhc2UgRXJ0OnQueT0xPT09TWF0aC5hYnMoTWF0aC5mbG9vcih0LnkpJTIpP01hdGguY2VpbCh0LnkpLXQueTp0LnktTWF0aC5mbG9vcih0LnkpfXJldHVybiB0aGlzLmZsaXBZJiYodC55PTEtdC55KSx0fXNldCBuZWVkc1VwZGF0ZSh0KXshMD09PXQmJnRoaXMudmVyc2lvbisrfX1mdW5jdGlvbiBNc3QodCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBIVE1MSW1hZ2VFbGVtZW50JiZ0IGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudHx8InVuZGVmaW5lZCIhPXR5cGVvZiBIVE1MQ2FudmFzRWxlbWVudCYmdCBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50fHwidW5kZWZpbmVkIiE9dHlwZW9mIEltYWdlQml0bWFwJiZ0IGluc3RhbmNlb2YgSW1hZ2VCaXRtYXA/eXN0LmdldERhdGFVUkwodCk6dC5kYXRhP3tkYXRhOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQuZGF0YSksd2lkdGg6dC53aWR0aCxoZWlnaHQ6dC5oZWlnaHQsdHlwZTp0LmRhdGEuY29uc3RydWN0b3IubmFtZX06KGNvbnNvbGUud2FybigiVEhSRUUuVGV4dHVyZTogVW5hYmxlIHRvIHNlcmlhbGl6ZSBUZXh0dXJlLiIpLHt9KX1Dc3QuREVGQVVMVF9JTUFHRT12b2lkIDAsQ3N0LkRFRkFVTFRfTUFQUElORz0zMDAsQ3N0LnByb3RvdHlwZS5pc1RleHR1cmU9ITA7Y2xhc3MgdnN0e2NvbnN0cnVjdG9yKHQ9MCxlPTAsbj0wLG89MSl7dGhpcy54PXQsdGhpcy55PWUsdGhpcy56PW4sdGhpcy53PW99Z2V0IHdpZHRoKCl7cmV0dXJuIHRoaXMuen1zZXQgd2lkdGgodCl7dGhpcy56PXR9Z2V0IGhlaWdodCgpe3JldHVybiB0aGlzLnd9c2V0IGhlaWdodCh0KXt0aGlzLnc9dH1zZXQodCxlLG4sbyl7cmV0dXJuIHRoaXMueD10LHRoaXMueT1lLHRoaXMuej1uLHRoaXMudz1vLHRoaXN9c2V0U2NhbGFyKHQpe3JldHVybiB0aGlzLng9dCx0aGlzLnk9dCx0aGlzLno9dCx0aGlzLnc9dCx0aGlzfXNldFgodCl7cmV0dXJuIHRoaXMueD10LHRoaXN9c2V0WSh0KXtyZXR1cm4gdGhpcy55PXQsdGhpc31zZXRaKHQpe3JldHVybiB0aGlzLno9dCx0aGlzfXNldFcodCl7cmV0dXJuIHRoaXMudz10LHRoaXN9c2V0Q29tcG9uZW50KHQsZSl7c3dpdGNoKHQpe2Nhc2UgMDp0aGlzLng9ZTticmVhaztjYXNlIDE6dGhpcy55PWU7YnJlYWs7Y2FzZSAyOnRoaXMuej1lO2JyZWFrO2Nhc2UgMzp0aGlzLnc9ZTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiaW5kZXggaXMgb3V0IG9mIHJhbmdlOiAiK3QpfXJldHVybiB0aGlzfWdldENvbXBvbmVudCh0KXtzd2l0Y2godCl7Y2FzZSAwOnJldHVybiB0aGlzLng7Y2FzZSAxOnJldHVybiB0aGlzLnk7Y2FzZSAyOnJldHVybiB0aGlzLno7Y2FzZSAzOnJldHVybiB0aGlzLnc7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImluZGV4IGlzIG91dCBvZiByYW5nZTogIit0KX19Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy54LHRoaXMueSx0aGlzLnosdGhpcy53KX1jb3B5KHQpe3JldHVybiB0aGlzLng9dC54LHRoaXMueT10LnksdGhpcy56PXQueix0aGlzLnc9dm9pZCAwIT09dC53P3QudzoxLHRoaXN9YWRkKHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/KGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yNDogLmFkZCgpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLmFkZFZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMuYWRkVmVjdG9ycyh0LGUpKToodGhpcy54Kz10LngsdGhpcy55Kz10LnksdGhpcy56Kz10LnosdGhpcy53Kz10LncsdGhpcyl9YWRkU2NhbGFyKHQpe3JldHVybiB0aGlzLngrPXQsdGhpcy55Kz10LHRoaXMueis9dCx0aGlzLncrPXQsdGhpc31hZGRWZWN0b3JzKHQsZSl7cmV0dXJuIHRoaXMueD10LngrZS54LHRoaXMueT10LnkrZS55LHRoaXMuej10LnorZS56LHRoaXMudz10LncrZS53LHRoaXN9YWRkU2NhbGVkVmVjdG9yKHQsZSl7cmV0dXJuIHRoaXMueCs9dC54KmUsdGhpcy55Kz10LnkqZSx0aGlzLnorPXQueiplLHRoaXMudys9dC53KmUsdGhpc31zdWIodCxlKXtyZXR1cm4gdm9pZCAwIT09ZT8oY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3I0OiAuc3ViKCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAuc3ViVmVjdG9ycyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5zdWJWZWN0b3JzKHQsZSkpOih0aGlzLngtPXQueCx0aGlzLnktPXQueSx0aGlzLnotPXQueix0aGlzLnctPXQudyx0aGlzKX1zdWJTY2FsYXIodCl7cmV0dXJuIHRoaXMueC09dCx0aGlzLnktPXQsdGhpcy56LT10LHRoaXMudy09dCx0aGlzfXN1YlZlY3RvcnModCxlKXtyZXR1cm4gdGhpcy54PXQueC1lLngsdGhpcy55PXQueS1lLnksdGhpcy56PXQuei1lLnosdGhpcy53PXQudy1lLncsdGhpc31tdWx0aXBseSh0KXtyZXR1cm4gdGhpcy54Kj10LngsdGhpcy55Kj10LnksdGhpcy56Kj10LnosdGhpcy53Kj10LncsdGhpc31tdWx0aXBseVNjYWxhcih0KXtyZXR1cm4gdGhpcy54Kj10LHRoaXMueSo9dCx0aGlzLnoqPXQsdGhpcy53Kj10LHRoaXN9YXBwbHlNYXRyaXg0KHQpe2NvbnN0IGU9dGhpcy54LG49dGhpcy55LG89dGhpcy56LGk9dGhpcy53LGE9dC5lbGVtZW50cztyZXR1cm4gdGhpcy54PWFbMF0qZSthWzRdKm4rYVs4XSpvK2FbMTJdKmksdGhpcy55PWFbMV0qZSthWzVdKm4rYVs5XSpvK2FbMTNdKmksdGhpcy56PWFbMl0qZSthWzZdKm4rYVsxMF0qbythWzE0XSppLHRoaXMudz1hWzNdKmUrYVs3XSpuK2FbMTFdKm8rYVsxNV0qaSx0aGlzfWRpdmlkZVNjYWxhcih0KXtyZXR1cm4gdGhpcy5tdWx0aXBseVNjYWxhcigxL3QpfXNldEF4aXNBbmdsZUZyb21RdWF0ZXJuaW9uKHQpe3RoaXMudz0yKk1hdGguYWNvcyh0LncpO2NvbnN0IGU9TWF0aC5zcXJ0KDEtdC53KnQudyk7cmV0dXJuIGU8MWUtND8odGhpcy54PTEsdGhpcy55PTAsdGhpcy56PTApOih0aGlzLng9dC54L2UsdGhpcy55PXQueS9lLHRoaXMuej10LnovZSksdGhpc31zZXRBeGlzQW5nbGVGcm9tUm90YXRpb25NYXRyaXgodCl7bGV0IGUsbixvLGk7Y29uc3QgYT0uMDEscj0uMSxzPXQuZWxlbWVudHMsbD1zWzBdLGM9c1s0XSxkPXNbOF0scD1zWzFdLG09c1s1XSxmPXNbOV0sdT1zWzJdLGc9c1s2XSxoPXNbMTBdO2lmKE1hdGguYWJzKGMtcCk8YSYmTWF0aC5hYnMoZC11KTxhJiZNYXRoLmFicyhmLWcpPGEpe2lmKE1hdGguYWJzKGMrcCk8ciYmTWF0aC5hYnMoZCt1KTxyJiZNYXRoLmFicyhmK2cpPHImJk1hdGguYWJzKGwrbStoLTMpPHIpcmV0dXJuIHRoaXMuc2V0KDEsMCwwLDApLHRoaXM7ZT1NYXRoLlBJO2NvbnN0IHQ9KGwrMSkvMixzPShtKzEpLzIsYj0oaCsxKS8yLHk9KGMrcCkvNCxfPShkK3UpLzQsQz0oZitnKS80O3JldHVybiB0PnMmJnQ+Yj90PGE/KG49MCxvPS43MDcxMDY3ODEsaT0uNzA3MTA2NzgxKToobj1NYXRoLnNxcnQodCksbz15L24saT1fL24pOnM+Yj9zPGE/KG49LjcwNzEwNjc4MSxvPTAsaT0uNzA3MTA2NzgxKToobz1NYXRoLnNxcnQocyksbj15L28saT1DL28pOmI8YT8obj0uNzA3MTA2NzgxLG89LjcwNzEwNjc4MSxpPTApOihpPU1hdGguc3FydChiKSxuPV8vaSxvPUMvaSksdGhpcy5zZXQobixvLGksZSksdGhpc31sZXQgYj1NYXRoLnNxcnQoKGctZikqKGctZikrKGQtdSkqKGQtdSkrKHAtYykqKHAtYykpO3JldHVybiBNYXRoLmFicyhiKTwuMDAxJiYoYj0xKSx0aGlzLng9KGctZikvYix0aGlzLnk9KGQtdSkvYix0aGlzLno9KHAtYykvYix0aGlzLnc9TWF0aC5hY29zKChsK20raC0xKS8yKSx0aGlzfW1pbih0KXtyZXR1cm4gdGhpcy54PU1hdGgubWluKHRoaXMueCx0LngpLHRoaXMueT1NYXRoLm1pbih0aGlzLnksdC55KSx0aGlzLno9TWF0aC5taW4odGhpcy56LHQueiksdGhpcy53PU1hdGgubWluKHRoaXMudyx0LncpLHRoaXN9bWF4KHQpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodGhpcy54LHQueCksdGhpcy55PU1hdGgubWF4KHRoaXMueSx0LnkpLHRoaXMuej1NYXRoLm1heCh0aGlzLnosdC56KSx0aGlzLnc9TWF0aC5tYXgodGhpcy53LHQudyksdGhpc31jbGFtcCh0LGUpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodC54LE1hdGgubWluKGUueCx0aGlzLngpKSx0aGlzLnk9TWF0aC5tYXgodC55LE1hdGgubWluKGUueSx0aGlzLnkpKSx0aGlzLno9TWF0aC5tYXgodC56LE1hdGgubWluKGUueix0aGlzLnopKSx0aGlzLnc9TWF0aC5tYXgodC53LE1hdGgubWluKGUudyx0aGlzLncpKSx0aGlzfWNsYW1wU2NhbGFyKHQsZSl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy54KSksdGhpcy55PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLnkpKSx0aGlzLno9TWF0aC5tYXgodCxNYXRoLm1pbihlLHRoaXMueikpLHRoaXMudz1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy53KSksdGhpc31jbGFtcExlbmd0aCh0LGUpe2NvbnN0IG49dGhpcy5sZW5ndGgoKTtyZXR1cm4gdGhpcy5kaXZpZGVTY2FsYXIobnx8MSkubXVsdGlwbHlTY2FsYXIoTWF0aC5tYXgodCxNYXRoLm1pbihlLG4pKSl9Zmxvb3IoKXtyZXR1cm4gdGhpcy54PU1hdGguZmxvb3IodGhpcy54KSx0aGlzLnk9TWF0aC5mbG9vcih0aGlzLnkpLHRoaXMuej1NYXRoLmZsb29yKHRoaXMueiksdGhpcy53PU1hdGguZmxvb3IodGhpcy53KSx0aGlzfWNlaWwoKXtyZXR1cm4gdGhpcy54PU1hdGguY2VpbCh0aGlzLngpLHRoaXMueT1NYXRoLmNlaWwodGhpcy55KSx0aGlzLno9TWF0aC5jZWlsKHRoaXMueiksdGhpcy53PU1hdGguY2VpbCh0aGlzLncpLHRoaXN9cm91bmQoKXtyZXR1cm4gdGhpcy54PU1hdGgucm91bmQodGhpcy54KSx0aGlzLnk9TWF0aC5yb3VuZCh0aGlzLnkpLHRoaXMuej1NYXRoLnJvdW5kKHRoaXMueiksdGhpcy53PU1hdGgucm91bmQodGhpcy53KSx0aGlzfXJvdW5kVG9aZXJvKCl7cmV0dXJuIHRoaXMueD10aGlzLng8MD9NYXRoLmNlaWwodGhpcy54KTpNYXRoLmZsb29yKHRoaXMueCksdGhpcy55PXRoaXMueTwwP01hdGguY2VpbCh0aGlzLnkpOk1hdGguZmxvb3IodGhpcy55KSx0aGlzLno9dGhpcy56PDA/TWF0aC5jZWlsKHRoaXMueik6TWF0aC5mbG9vcih0aGlzLnopLHRoaXMudz10aGlzLnc8MD9NYXRoLmNlaWwodGhpcy53KTpNYXRoLmZsb29yKHRoaXMudyksdGhpc31uZWdhdGUoKXtyZXR1cm4gdGhpcy54PS10aGlzLngsdGhpcy55PS10aGlzLnksdGhpcy56PS10aGlzLnosdGhpcy53PS10aGlzLncsdGhpc31kb3QodCl7cmV0dXJuIHRoaXMueCp0LngrdGhpcy55KnQueSt0aGlzLnoqdC56K3RoaXMudyp0Lnd9bGVuZ3RoU3EoKXtyZXR1cm4gdGhpcy54KnRoaXMueCt0aGlzLnkqdGhpcy55K3RoaXMueip0aGlzLnordGhpcy53KnRoaXMud31sZW5ndGgoKXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMueCp0aGlzLngrdGhpcy55KnRoaXMueSt0aGlzLnoqdGhpcy56K3RoaXMudyp0aGlzLncpfW1hbmhhdHRhbkxlbmd0aCgpe3JldHVybiBNYXRoLmFicyh0aGlzLngpK01hdGguYWJzKHRoaXMueSkrTWF0aC5hYnModGhpcy56KStNYXRoLmFicyh0aGlzLncpfW5vcm1hbGl6ZSgpe3JldHVybiB0aGlzLmRpdmlkZVNjYWxhcih0aGlzLmxlbmd0aCgpfHwxKX1zZXRMZW5ndGgodCl7cmV0dXJuIHRoaXMubm9ybWFsaXplKCkubXVsdGlwbHlTY2FsYXIodCl9bGVycCh0LGUpe3JldHVybiB0aGlzLngrPSh0LngtdGhpcy54KSplLHRoaXMueSs9KHQueS10aGlzLnkpKmUsdGhpcy56Kz0odC56LXRoaXMueikqZSx0aGlzLncrPSh0LnctdGhpcy53KSplLHRoaXN9bGVycFZlY3RvcnModCxlLG4pe3JldHVybiB0aGlzLng9dC54KyhlLngtdC54KSpuLHRoaXMueT10LnkrKGUueS10LnkpKm4sdGhpcy56PXQueisoZS56LXQueikqbix0aGlzLnc9dC53KyhlLnctdC53KSpuLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0Lng9PT10aGlzLngmJnQueT09PXRoaXMueSYmdC56PT09dGhpcy56JiZ0Lnc9PT10aGlzLnd9ZnJvbUFycmF5KHQsZT0wKXtyZXR1cm4gdGhpcy54PXRbZV0sdGhpcy55PXRbZSsxXSx0aGlzLno9dFtlKzJdLHRoaXMudz10W2UrM10sdGhpc310b0FycmF5KHQ9W10sZT0wKXtyZXR1cm4gdFtlXT10aGlzLngsdFtlKzFdPXRoaXMueSx0W2UrMl09dGhpcy56LHRbZSszXT10aGlzLncsdH1mcm9tQnVmZmVyQXR0cmlidXRlKHQsZSxuKXtyZXR1cm4gdm9pZCAwIT09biYmY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3I0OiBvZmZzZXQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIC5mcm9tQnVmZmVyQXR0cmlidXRlKCkuIiksdGhpcy54PXQuZ2V0WChlKSx0aGlzLnk9dC5nZXRZKGUpLHRoaXMuej10LmdldFooZSksdGhpcy53PXQuZ2V0VyhlKSx0aGlzfXJhbmRvbSgpe3JldHVybiB0aGlzLng9TWF0aC5yYW5kb20oKSx0aGlzLnk9TWF0aC5yYW5kb20oKSx0aGlzLno9TWF0aC5yYW5kb20oKSx0aGlzLnc9TWF0aC5yYW5kb20oKSx0aGlzfX12c3QucHJvdG90eXBlLmlzVmVjdG9yND0hMDtjbGFzcyB4c3QgZXh0ZW5kcyByc3R7Y29uc3RydWN0b3IodCxlLG49e30pe3N1cGVyKCksdGhpcy53aWR0aD10LHRoaXMuaGVpZ2h0PWUsdGhpcy5kZXB0aD0xLHRoaXMuc2Npc3Nvcj1uZXcgdnN0KDAsMCx0LGUpLHRoaXMuc2Npc3NvclRlc3Q9ITEsdGhpcy52aWV3cG9ydD1uZXcgdnN0KDAsMCx0LGUpLHRoaXMudGV4dHVyZT1uZXcgQ3N0KHZvaWQgMCxuLm1hcHBpbmcsbi53cmFwUyxuLndyYXBULG4ubWFnRmlsdGVyLG4ubWluRmlsdGVyLG4uZm9ybWF0LG4udHlwZSxuLmFuaXNvdHJvcHksbi5lbmNvZGluZyksdGhpcy50ZXh0dXJlLmlzUmVuZGVyVGFyZ2V0VGV4dHVyZT0hMCx0aGlzLnRleHR1cmUuaW1hZ2U9e3dpZHRoOnQsaGVpZ2h0OmUsZGVwdGg6MX0sdGhpcy50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcz12b2lkIDAhPT1uLmdlbmVyYXRlTWlwbWFwcyYmbi5nZW5lcmF0ZU1pcG1hcHMsdGhpcy50ZXh0dXJlLm1pbkZpbHRlcj12b2lkIDAhPT1uLm1pbkZpbHRlcj9uLm1pbkZpbHRlcjpUcnQsdGhpcy5kZXB0aEJ1ZmZlcj12b2lkIDA9PT1uLmRlcHRoQnVmZmVyfHxuLmRlcHRoQnVmZmVyLHRoaXMuc3RlbmNpbEJ1ZmZlcj12b2lkIDAhPT1uLnN0ZW5jaWxCdWZmZXImJm4uc3RlbmNpbEJ1ZmZlcix0aGlzLmRlcHRoVGV4dHVyZT12b2lkIDAhPT1uLmRlcHRoVGV4dHVyZT9uLmRlcHRoVGV4dHVyZTpudWxsfXNldFRleHR1cmUodCl7dC5pbWFnZT17d2lkdGg6dGhpcy53aWR0aCxoZWlnaHQ6dGhpcy5oZWlnaHQsZGVwdGg6dGhpcy5kZXB0aH0sdGhpcy50ZXh0dXJlPXR9c2V0U2l6ZSh0LGUsbj0xKXt0aGlzLndpZHRoPT09dCYmdGhpcy5oZWlnaHQ9PT1lJiZ0aGlzLmRlcHRoPT09bnx8KHRoaXMud2lkdGg9dCx0aGlzLmhlaWdodD1lLHRoaXMuZGVwdGg9bix0aGlzLnRleHR1cmUuaW1hZ2Uud2lkdGg9dCx0aGlzLnRleHR1cmUuaW1hZ2UuaGVpZ2h0PWUsdGhpcy50ZXh0dXJlLmltYWdlLmRlcHRoPW4sdGhpcy5kaXNwb3NlKCkpLHRoaXMudmlld3BvcnQuc2V0KDAsMCx0LGUpLHRoaXMuc2Npc3Nvci5zZXQoMCwwLHQsZSl9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9Y29weSh0KXtyZXR1cm4gdGhpcy53aWR0aD10LndpZHRoLHRoaXMuaGVpZ2h0PXQuaGVpZ2h0LHRoaXMuZGVwdGg9dC5kZXB0aCx0aGlzLnZpZXdwb3J0LmNvcHkodC52aWV3cG9ydCksdGhpcy50ZXh0dXJlPXQudGV4dHVyZS5jbG9uZSgpLHRoaXMudGV4dHVyZS5pbWFnZT17Li4udGhpcy50ZXh0dXJlLmltYWdlfSx0aGlzLmRlcHRoQnVmZmVyPXQuZGVwdGhCdWZmZXIsdGhpcy5zdGVuY2lsQnVmZmVyPXQuc3RlbmNpbEJ1ZmZlcix0aGlzLmRlcHRoVGV4dHVyZT10LmRlcHRoVGV4dHVyZSx0aGlzfWRpc3Bvc2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImRpc3Bvc2UifSl9fXhzdC5wcm90b3R5cGUuaXNXZWJHTFJlbmRlclRhcmdldD0hMDsoY2xhc3MgZXh0ZW5kcyB4c3R7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKHQsZSk7Y29uc3Qgbz10aGlzLnRleHR1cmU7dGhpcy50ZXh0dXJlPVtdO2ZvcihsZXQgdD0wO3Q8bjt0KyspdGhpcy50ZXh0dXJlW3RdPW8uY2xvbmUoKX1zZXRTaXplKHQsZSxuPTEpe2lmKHRoaXMud2lkdGghPT10fHx0aGlzLmhlaWdodCE9PWV8fHRoaXMuZGVwdGghPT1uKXt0aGlzLndpZHRoPXQsdGhpcy5oZWlnaHQ9ZSx0aGlzLmRlcHRoPW47Zm9yKGxldCBvPTAsaT10aGlzLnRleHR1cmUubGVuZ3RoO288aTtvKyspdGhpcy50ZXh0dXJlW29dLmltYWdlLndpZHRoPXQsdGhpcy50ZXh0dXJlW29dLmltYWdlLmhlaWdodD1lLHRoaXMudGV4dHVyZVtvXS5pbWFnZS5kZXB0aD1uO3RoaXMuZGlzcG9zZSgpfXJldHVybiB0aGlzLnZpZXdwb3J0LnNldCgwLDAsdCxlKSx0aGlzLnNjaXNzb3Iuc2V0KDAsMCx0LGUpLHRoaXN9Y29weSh0KXt0aGlzLmRpc3Bvc2UoKSx0aGlzLndpZHRoPXQud2lkdGgsdGhpcy5oZWlnaHQ9dC5oZWlnaHQsdGhpcy5kZXB0aD10LmRlcHRoLHRoaXMudmlld3BvcnQuc2V0KDAsMCx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KSx0aGlzLnNjaXNzb3Iuc2V0KDAsMCx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KSx0aGlzLmRlcHRoQnVmZmVyPXQuZGVwdGhCdWZmZXIsdGhpcy5zdGVuY2lsQnVmZmVyPXQuc3RlbmNpbEJ1ZmZlcix0aGlzLmRlcHRoVGV4dHVyZT10LmRlcHRoVGV4dHVyZSx0aGlzLnRleHR1cmUubGVuZ3RoPTA7Zm9yKGxldCBlPTAsbj10LnRleHR1cmUubGVuZ3RoO2U8bjtlKyspdGhpcy50ZXh0dXJlW2VdPXQudGV4dHVyZVtlXS5jbG9uZSgpO3JldHVybiB0aGlzfX0pLnByb3RvdHlwZS5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzPSEwO2NsYXNzIE9zdCBleHRlbmRzIHhzdHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIodCxlLG4pLHRoaXMuc2FtcGxlcz00fWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkuY2FsbCh0aGlzLHQpLHRoaXMuc2FtcGxlcz10LnNhbXBsZXMsdGhpc319T3N0LnByb3RvdHlwZS5pc1dlYkdMTXVsdGlzYW1wbGVSZW5kZXJUYXJnZXQ9ITA7Y2xhc3MgUHN0e2NvbnN0cnVjdG9yKHQ9MCxlPTAsbj0wLG89MSl7dGhpcy5feD10LHRoaXMuX3k9ZSx0aGlzLl96PW4sdGhpcy5fdz1vfXN0YXRpYyBzbGVycCh0LGUsbixvKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5RdWF0ZXJuaW9uOiBTdGF0aWMgLnNsZXJwKCkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIHFtLnNsZXJwUXVhdGVybmlvbnMoIHFhLCBxYiwgdCApIGluc3RlYWQuIiksbi5zbGVycFF1YXRlcm5pb25zKHQsZSxvKX1zdGF0aWMgc2xlcnBGbGF0KHQsZSxuLG8saSxhLHIpe2xldCBzPW5bbyswXSxsPW5bbysxXSxjPW5bbysyXSxkPW5bbyszXTtjb25zdCBwPWlbYSswXSxtPWlbYSsxXSxmPWlbYSsyXSx1PWlbYSszXTtpZigwPT09cilyZXR1cm4gdFtlKzBdPXMsdFtlKzFdPWwsdFtlKzJdPWMsdm9pZCh0W2UrM109ZCk7aWYoMT09PXIpcmV0dXJuIHRbZSswXT1wLHRbZSsxXT1tLHRbZSsyXT1mLHZvaWQodFtlKzNdPXUpO2lmKGQhPT11fHxzIT09cHx8bCE9PW18fGMhPT1mKXtsZXQgdD0xLXI7Y29uc3QgZT1zKnArbCptK2MqZitkKnUsbj1lPj0wPzE6LTEsbz0xLWUqZTtpZihvPk51bWJlci5FUFNJTE9OKXtjb25zdCBpPU1hdGguc3FydChvKSxhPU1hdGguYXRhbjIoaSxlKm4pO3Q9TWF0aC5zaW4odCphKS9pLHI9TWF0aC5zaW4ociphKS9pfWNvbnN0IGk9cipuO2lmKHM9cyp0K3AqaSxsPWwqdCttKmksYz1jKnQrZippLGQ9ZCp0K3UqaSx0PT09MS1yKXtjb25zdCB0PTEvTWF0aC5zcXJ0KHMqcytsKmwrYypjK2QqZCk7cyo9dCxsKj10LGMqPXQsZCo9dH19dFtlXT1zLHRbZSsxXT1sLHRbZSsyXT1jLHRbZSszXT1kfXN0YXRpYyBtdWx0aXBseVF1YXRlcm5pb25zRmxhdCh0LGUsbixvLGksYSl7Y29uc3Qgcj1uW29dLHM9bltvKzFdLGw9bltvKzJdLGM9bltvKzNdLGQ9aVthXSxwPWlbYSsxXSxtPWlbYSsyXSxmPWlbYSszXTtyZXR1cm4gdFtlXT1yKmYrYypkK3MqbS1sKnAsdFtlKzFdPXMqZitjKnArbCpkLXIqbSx0W2UrMl09bCpmK2MqbStyKnAtcypkLHRbZSszXT1jKmYtcipkLXMqcC1sKm0sdH1nZXQgeCgpe3JldHVybiB0aGlzLl94fXNldCB4KHQpe3RoaXMuX3g9dCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCl9Z2V0IHkoKXtyZXR1cm4gdGhpcy5feX1zZXQgeSh0KXt0aGlzLl95PXQsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpfWdldCB6KCl7cmV0dXJuIHRoaXMuX3p9c2V0IHoodCl7dGhpcy5fej10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1nZXQgdygpe3JldHVybiB0aGlzLl93fXNldCB3KHQpe3RoaXMuX3c9dCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCl9c2V0KHQsZSxuLG8pe3JldHVybiB0aGlzLl94PXQsdGhpcy5feT1lLHRoaXMuX3o9bix0aGlzLl93PW8sdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5feCx0aGlzLl95LHRoaXMuX3osdGhpcy5fdyl9Y29weSh0KXtyZXR1cm4gdGhpcy5feD10LngsdGhpcy5feT10LnksdGhpcy5fej10LnosdGhpcy5fdz10LncsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9c2V0RnJvbUV1bGVyKHQsZSl7aWYoIXR8fCF0LmlzRXVsZXIpdGhyb3cgbmV3IEVycm9yKCJUSFJFRS5RdWF0ZXJuaW9uOiAuc2V0RnJvbUV1bGVyKCkgbm93IGV4cGVjdHMgYW4gRXVsZXIgcm90YXRpb24gcmF0aGVyIHRoYW4gYSBWZWN0b3IzIGFuZCBvcmRlci4iKTtjb25zdCBuPXQuX3gsbz10Ll95LGk9dC5feixhPXQuX29yZGVyLHI9TWF0aC5jb3Mscz1NYXRoLnNpbixsPXIobi8yKSxjPXIoby8yKSxkPXIoaS8yKSxwPXMobi8yKSxtPXMoby8yKSxmPXMoaS8yKTtzd2l0Y2goYSl7Y2FzZSJYWVoiOnRoaXMuX3g9cCpjKmQrbCptKmYsdGhpcy5feT1sKm0qZC1wKmMqZix0aGlzLl96PWwqYypmK3AqbSpkLHRoaXMuX3c9bCpjKmQtcCptKmY7YnJlYWs7Y2FzZSJZWFoiOnRoaXMuX3g9cCpjKmQrbCptKmYsdGhpcy5feT1sKm0qZC1wKmMqZix0aGlzLl96PWwqYypmLXAqbSpkLHRoaXMuX3c9bCpjKmQrcCptKmY7YnJlYWs7Y2FzZSJaWFkiOnRoaXMuX3g9cCpjKmQtbCptKmYsdGhpcy5feT1sKm0qZCtwKmMqZix0aGlzLl96PWwqYypmK3AqbSpkLHRoaXMuX3c9bCpjKmQtcCptKmY7YnJlYWs7Y2FzZSJaWVgiOnRoaXMuX3g9cCpjKmQtbCptKmYsdGhpcy5feT1sKm0qZCtwKmMqZix0aGlzLl96PWwqYypmLXAqbSpkLHRoaXMuX3c9bCpjKmQrcCptKmY7YnJlYWs7Y2FzZSJZWlgiOnRoaXMuX3g9cCpjKmQrbCptKmYsdGhpcy5feT1sKm0qZCtwKmMqZix0aGlzLl96PWwqYypmLXAqbSpkLHRoaXMuX3c9bCpjKmQtcCptKmY7YnJlYWs7Y2FzZSJYWlkiOnRoaXMuX3g9cCpjKmQtbCptKmYsdGhpcy5feT1sKm0qZC1wKmMqZix0aGlzLl96PWwqYypmK3AqbSpkLHRoaXMuX3c9bCpjKmQrcCptKmY7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLndhcm4oIlRIUkVFLlF1YXRlcm5pb246IC5zZXRGcm9tRXVsZXIoKSBlbmNvdW50ZXJlZCBhbiB1bmtub3duIG9yZGVyOiAiK2EpfXJldHVybiExIT09ZSYmdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9c2V0RnJvbUF4aXNBbmdsZSh0LGUpe2NvbnN0IG49ZS8yLG89TWF0aC5zaW4obik7cmV0dXJuIHRoaXMuX3g9dC54Km8sdGhpcy5feT10Lnkqbyx0aGlzLl96PXQueipvLHRoaXMuX3c9TWF0aC5jb3MobiksdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9c2V0RnJvbVJvdGF0aW9uTWF0cml4KHQpe2NvbnN0IGU9dC5lbGVtZW50cyxuPWVbMF0sbz1lWzRdLGk9ZVs4XSxhPWVbMV0scj1lWzVdLHM9ZVs5XSxsPWVbMl0sYz1lWzZdLGQ9ZVsxMF0scD1uK3IrZDtpZihwPjApe2NvbnN0IHQ9LjUvTWF0aC5zcXJ0KHArMSk7dGhpcy5fdz0uMjUvdCx0aGlzLl94PShjLXMpKnQsdGhpcy5feT0oaS1sKSp0LHRoaXMuX3o9KGEtbykqdH1lbHNlIGlmKG4+ciYmbj5kKXtjb25zdCB0PTIqTWF0aC5zcXJ0KDErbi1yLWQpO3RoaXMuX3c9KGMtcykvdCx0aGlzLl94PS4yNSp0LHRoaXMuX3k9KG8rYSkvdCx0aGlzLl96PShpK2wpL3R9ZWxzZSBpZihyPmQpe2NvbnN0IHQ9MipNYXRoLnNxcnQoMStyLW4tZCk7dGhpcy5fdz0oaS1sKS90LHRoaXMuX3g9KG8rYSkvdCx0aGlzLl95PS4yNSp0LHRoaXMuX3o9KHMrYykvdH1lbHNle2NvbnN0IHQ9MipNYXRoLnNxcnQoMStkLW4tcik7dGhpcy5fdz0oYS1vKS90LHRoaXMuX3g9KGkrbCkvdCx0aGlzLl95PShzK2MpL3QsdGhpcy5fej0uMjUqdH1yZXR1cm4gdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9c2V0RnJvbVVuaXRWZWN0b3JzKHQsZSl7bGV0IG49dC5kb3QoZSkrMTtyZXR1cm4gbjxOdW1iZXIuRVBTSUxPTj8obj0wLE1hdGguYWJzKHQueCk+TWF0aC5hYnModC56KT8odGhpcy5feD0tdC55LHRoaXMuX3k9dC54LHRoaXMuX3o9MCx0aGlzLl93PW4pOih0aGlzLl94PTAsdGhpcy5feT0tdC56LHRoaXMuX3o9dC55LHRoaXMuX3c9bikpOih0aGlzLl94PXQueSplLnotdC56KmUueSx0aGlzLl95PXQueiplLngtdC54KmUueix0aGlzLl96PXQueCplLnktdC55KmUueCx0aGlzLl93PW4pLHRoaXMubm9ybWFsaXplKCl9YW5nbGVUbyh0KXtyZXR1cm4gMipNYXRoLmFjb3MoTWF0aC5hYnMocHN0KHRoaXMuZG90KHQpLC0xLDEpKSl9cm90YXRlVG93YXJkcyh0LGUpe2NvbnN0IG49dGhpcy5hbmdsZVRvKHQpO2lmKDA9PT1uKXJldHVybiB0aGlzO2NvbnN0IG89TWF0aC5taW4oMSxlL24pO3JldHVybiB0aGlzLnNsZXJwKHQsbyksdGhpc31pZGVudGl0eSgpe3JldHVybiB0aGlzLnNldCgwLDAsMCwxKX1pbnZlcnQoKXtyZXR1cm4gdGhpcy5jb25qdWdhdGUoKX1jb25qdWdhdGUoKXtyZXR1cm4gdGhpcy5feCo9LTEsdGhpcy5feSo9LTEsdGhpcy5feio9LTEsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9ZG90KHQpe3JldHVybiB0aGlzLl94KnQuX3grdGhpcy5feSp0Ll95K3RoaXMuX3oqdC5feit0aGlzLl93KnQuX3d9bGVuZ3RoU3EoKXtyZXR1cm4gdGhpcy5feCp0aGlzLl94K3RoaXMuX3kqdGhpcy5feSt0aGlzLl96KnRoaXMuX3ordGhpcy5fdyp0aGlzLl93fWxlbmd0aCgpe3JldHVybiBNYXRoLnNxcnQodGhpcy5feCp0aGlzLl94K3RoaXMuX3kqdGhpcy5feSt0aGlzLl96KnRoaXMuX3ordGhpcy5fdyp0aGlzLl93KX1ub3JtYWxpemUoKXtsZXQgdD10aGlzLmxlbmd0aCgpO3JldHVybiAwPT09dD8odGhpcy5feD0wLHRoaXMuX3k9MCx0aGlzLl96PTAsdGhpcy5fdz0xKToodD0xL3QsdGhpcy5feD10aGlzLl94KnQsdGhpcy5feT10aGlzLl95KnQsdGhpcy5fej10aGlzLl96KnQsdGhpcy5fdz10aGlzLl93KnQpLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfW11bHRpcGx5KHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/KGNvbnNvbGUud2FybigiVEhSRUUuUXVhdGVybmlvbjogLm11bHRpcGx5KCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAubXVsdGlwbHlRdWF0ZXJuaW9ucyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5tdWx0aXBseVF1YXRlcm5pb25zKHQsZSkpOnRoaXMubXVsdGlwbHlRdWF0ZXJuaW9ucyh0aGlzLHQpfXByZW11bHRpcGx5KHQpe3JldHVybiB0aGlzLm11bHRpcGx5UXVhdGVybmlvbnModCx0aGlzKX1tdWx0aXBseVF1YXRlcm5pb25zKHQsZSl7Y29uc3Qgbj10Ll94LG89dC5feSxpPXQuX3osYT10Ll93LHI9ZS5feCxzPWUuX3ksbD1lLl96LGM9ZS5fdztyZXR1cm4gdGhpcy5feD1uKmMrYSpyK28qbC1pKnMsdGhpcy5feT1vKmMrYSpzK2kqci1uKmwsdGhpcy5fej1pKmMrYSpsK24qcy1vKnIsdGhpcy5fdz1hKmMtbipyLW8qcy1pKmwsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9c2xlcnAodCxlKXtpZigwPT09ZSlyZXR1cm4gdGhpcztpZigxPT09ZSlyZXR1cm4gdGhpcy5jb3B5KHQpO2NvbnN0IG49dGhpcy5feCxvPXRoaXMuX3ksaT10aGlzLl96LGE9dGhpcy5fdztsZXQgcj1hKnQuX3crbip0Ll94K28qdC5feStpKnQuX3o7aWYocjwwPyh0aGlzLl93PS10Ll93LHRoaXMuX3g9LXQuX3gsdGhpcy5feT0tdC5feSx0aGlzLl96PS10Ll96LHI9LXIpOnRoaXMuY29weSh0KSxyPj0xKXJldHVybiB0aGlzLl93PWEsdGhpcy5feD1uLHRoaXMuX3k9byx0aGlzLl96PWksdGhpcztjb25zdCBzPTEtcipyO2lmKHM8PU51bWJlci5FUFNJTE9OKXtjb25zdCB0PTEtZTtyZXR1cm4gdGhpcy5fdz10KmErZSp0aGlzLl93LHRoaXMuX3g9dCpuK2UqdGhpcy5feCx0aGlzLl95PXQqbytlKnRoaXMuX3ksdGhpcy5fej10KmkrZSp0aGlzLl96LHRoaXMubm9ybWFsaXplKCksdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9Y29uc3QgbD1NYXRoLnNxcnQocyksYz1NYXRoLmF0YW4yKGwsciksZD1NYXRoLnNpbigoMS1lKSpjKS9sLHA9TWF0aC5zaW4oZSpjKS9sO3JldHVybiB0aGlzLl93PWEqZCt0aGlzLl93KnAsdGhpcy5feD1uKmQrdGhpcy5feCpwLHRoaXMuX3k9bypkK3RoaXMuX3kqcCx0aGlzLl96PWkqZCt0aGlzLl96KnAsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9c2xlcnBRdWF0ZXJuaW9ucyh0LGUsbil7dGhpcy5jb3B5KHQpLnNsZXJwKGUsbil9ZXF1YWxzKHQpe3JldHVybiB0Ll94PT09dGhpcy5feCYmdC5feT09PXRoaXMuX3kmJnQuX3o9PT10aGlzLl96JiZ0Ll93PT09dGhpcy5fd31mcm9tQXJyYXkodCxlPTApe3JldHVybiB0aGlzLl94PXRbZV0sdGhpcy5feT10W2UrMV0sdGhpcy5fej10W2UrMl0sdGhpcy5fdz10W2UrM10sdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpLHRoaXN9dG9BcnJheSh0PVtdLGU9MCl7cmV0dXJuIHRbZV09dGhpcy5feCx0W2UrMV09dGhpcy5feSx0W2UrMl09dGhpcy5feix0W2UrM109dGhpcy5fdyx0fWZyb21CdWZmZXJBdHRyaWJ1dGUodCxlKXtyZXR1cm4gdGhpcy5feD10LmdldFgoZSksdGhpcy5feT10LmdldFkoZSksdGhpcy5fej10LmdldFooZSksdGhpcy5fdz10LmdldFcoZSksdGhpc31fb25DaGFuZ2UodCl7cmV0dXJuIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2s9dCx0aGlzfV9vbkNoYW5nZUNhbGxiYWNrKCl7fX1Qc3QucHJvdG90eXBlLmlzUXVhdGVybmlvbj0hMDtjbGFzcyB3c3R7Y29uc3RydWN0b3IodD0wLGU9MCxuPTApe3RoaXMueD10LHRoaXMueT1lLHRoaXMuej1ufXNldCh0LGUsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPXRoaXMueiksdGhpcy54PXQsdGhpcy55PWUsdGhpcy56PW4sdGhpc31zZXRTY2FsYXIodCl7cmV0dXJuIHRoaXMueD10LHRoaXMueT10LHRoaXMuej10LHRoaXN9c2V0WCh0KXtyZXR1cm4gdGhpcy54PXQsdGhpc31zZXRZKHQpe3JldHVybiB0aGlzLnk9dCx0aGlzfXNldFoodCl7cmV0dXJuIHRoaXMuej10LHRoaXN9c2V0Q29tcG9uZW50KHQsZSl7c3dpdGNoKHQpe2Nhc2UgMDp0aGlzLng9ZTticmVhaztjYXNlIDE6dGhpcy55PWU7YnJlYWs7Y2FzZSAyOnRoaXMuej1lO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbmRleCBpcyBvdXQgb2YgcmFuZ2U6ICIrdCl9cmV0dXJuIHRoaXN9Z2V0Q29tcG9uZW50KHQpe3N3aXRjaCh0KXtjYXNlIDA6cmV0dXJuIHRoaXMueDtjYXNlIDE6cmV0dXJuIHRoaXMueTtjYXNlIDI6cmV0dXJuIHRoaXMuejtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiaW5kZXggaXMgb3V0IG9mIHJhbmdlOiAiK3QpfX1jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLngsdGhpcy55LHRoaXMueil9Y29weSh0KXtyZXR1cm4gdGhpcy54PXQueCx0aGlzLnk9dC55LHRoaXMuej10LnosdGhpc31hZGQodCxlKXtyZXR1cm4gdm9pZCAwIT09ZT8oY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAuYWRkKCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAuYWRkVmVjdG9ycyggYSwgYiApIGluc3RlYWQuIiksdGhpcy5hZGRWZWN0b3JzKHQsZSkpOih0aGlzLngrPXQueCx0aGlzLnkrPXQueSx0aGlzLnorPXQueix0aGlzKX1hZGRTY2FsYXIodCl7cmV0dXJuIHRoaXMueCs9dCx0aGlzLnkrPXQsdGhpcy56Kz10LHRoaXN9YWRkVmVjdG9ycyh0LGUpe3JldHVybiB0aGlzLng9dC54K2UueCx0aGlzLnk9dC55K2UueSx0aGlzLno9dC56K2Uueix0aGlzfWFkZFNjYWxlZFZlY3Rvcih0LGUpe3JldHVybiB0aGlzLngrPXQueCplLHRoaXMueSs9dC55KmUsdGhpcy56Kz10LnoqZSx0aGlzfXN1Yih0LGUpe3JldHVybiB2b2lkIDAhPT1lPyhjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5zdWIoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5zdWJWZWN0b3JzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLnN1YlZlY3RvcnModCxlKSk6KHRoaXMueC09dC54LHRoaXMueS09dC55LHRoaXMuei09dC56LHRoaXMpfXN1YlNjYWxhcih0KXtyZXR1cm4gdGhpcy54LT10LHRoaXMueS09dCx0aGlzLnotPXQsdGhpc31zdWJWZWN0b3JzKHQsZSl7cmV0dXJuIHRoaXMueD10LngtZS54LHRoaXMueT10LnktZS55LHRoaXMuej10LnotZS56LHRoaXN9bXVsdGlwbHkodCxlKXtyZXR1cm4gdm9pZCAwIT09ZT8oY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAubXVsdGlwbHkoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5tdWx0aXBseVZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMubXVsdGlwbHlWZWN0b3JzKHQsZSkpOih0aGlzLngqPXQueCx0aGlzLnkqPXQueSx0aGlzLnoqPXQueix0aGlzKX1tdWx0aXBseVNjYWxhcih0KXtyZXR1cm4gdGhpcy54Kj10LHRoaXMueSo9dCx0aGlzLnoqPXQsdGhpc31tdWx0aXBseVZlY3RvcnModCxlKXtyZXR1cm4gdGhpcy54PXQueCplLngsdGhpcy55PXQueSplLnksdGhpcy56PXQueiplLnosdGhpc31hcHBseUV1bGVyKHQpe3JldHVybiB0JiZ0LmlzRXVsZXJ8fGNvbnNvbGUuZXJyb3IoIlRIUkVFLlZlY3RvcjM6IC5hcHBseUV1bGVyKCkgbm93IGV4cGVjdHMgYW4gRXVsZXIgcm90YXRpb24gcmF0aGVyIHRoYW4gYSBWZWN0b3IzIGFuZCBvcmRlci4iKSx0aGlzLmFwcGx5UXVhdGVybmlvbihTc3Quc2V0RnJvbUV1bGVyKHQpKX1hcHBseUF4aXNBbmdsZSh0LGUpe3JldHVybiB0aGlzLmFwcGx5UXVhdGVybmlvbihTc3Quc2V0RnJvbUF4aXNBbmdsZSh0LGUpKX1hcHBseU1hdHJpeDModCl7Y29uc3QgZT10aGlzLngsbj10aGlzLnksbz10aGlzLnosaT10LmVsZW1lbnRzO3JldHVybiB0aGlzLng9aVswXSplK2lbM10qbitpWzZdKm8sdGhpcy55PWlbMV0qZStpWzRdKm4raVs3XSpvLHRoaXMuej1pWzJdKmUraVs1XSpuK2lbOF0qbyx0aGlzfWFwcGx5Tm9ybWFsTWF0cml4KHQpe3JldHVybiB0aGlzLmFwcGx5TWF0cml4Myh0KS5ub3JtYWxpemUoKX1hcHBseU1hdHJpeDQodCl7Y29uc3QgZT10aGlzLngsbj10aGlzLnksbz10aGlzLnosaT10LmVsZW1lbnRzLGE9MS8oaVszXSplK2lbN10qbitpWzExXSpvK2lbMTVdKTtyZXR1cm4gdGhpcy54PShpWzBdKmUraVs0XSpuK2lbOF0qbytpWzEyXSkqYSx0aGlzLnk9KGlbMV0qZStpWzVdKm4raVs5XSpvK2lbMTNdKSphLHRoaXMuej0oaVsyXSplK2lbNl0qbitpWzEwXSpvK2lbMTRdKSphLHRoaXN9YXBwbHlRdWF0ZXJuaW9uKHQpe2NvbnN0IGU9dGhpcy54LG49dGhpcy55LG89dGhpcy56LGk9dC54LGE9dC55LHI9dC56LHM9dC53LGw9cyplK2Eqby1yKm4sYz1zKm4rciplLWkqbyxkPXMqbytpKm4tYSplLHA9LWkqZS1hKm4tcipvO3JldHVybiB0aGlzLng9bCpzK3AqLWkrYyotci1kKi1hLHRoaXMueT1jKnMrcCotYStkKi1pLWwqLXIsdGhpcy56PWQqcytwKi1yK2wqLWEtYyotaSx0aGlzfXByb2plY3QodCl7cmV0dXJuIHRoaXMuYXBwbHlNYXRyaXg0KHQubWF0cml4V29ybGRJbnZlcnNlKS5hcHBseU1hdHJpeDQodC5wcm9qZWN0aW9uTWF0cml4KX11bnByb2plY3QodCl7cmV0dXJuIHRoaXMuYXBwbHlNYXRyaXg0KHQucHJvamVjdGlvbk1hdHJpeEludmVyc2UpLmFwcGx5TWF0cml4NCh0Lm1hdHJpeFdvcmxkKX10cmFuc2Zvcm1EaXJlY3Rpb24odCl7Y29uc3QgZT10aGlzLngsbj10aGlzLnksbz10aGlzLnosaT10LmVsZW1lbnRzO3JldHVybiB0aGlzLng9aVswXSplK2lbNF0qbitpWzhdKm8sdGhpcy55PWlbMV0qZStpWzVdKm4raVs5XSpvLHRoaXMuej1pWzJdKmUraVs2XSpuK2lbMTBdKm8sdGhpcy5ub3JtYWxpemUoKX1kaXZpZGUodCl7cmV0dXJuIHRoaXMueC89dC54LHRoaXMueS89dC55LHRoaXMuei89dC56LHRoaXN9ZGl2aWRlU2NhbGFyKHQpe3JldHVybiB0aGlzLm11bHRpcGx5U2NhbGFyKDEvdCl9bWluKHQpe3JldHVybiB0aGlzLng9TWF0aC5taW4odGhpcy54LHQueCksdGhpcy55PU1hdGgubWluKHRoaXMueSx0LnkpLHRoaXMuej1NYXRoLm1pbih0aGlzLnosdC56KSx0aGlzfW1heCh0KXtyZXR1cm4gdGhpcy54PU1hdGgubWF4KHRoaXMueCx0LngpLHRoaXMueT1NYXRoLm1heCh0aGlzLnksdC55KSx0aGlzLno9TWF0aC5tYXgodGhpcy56LHQueiksdGhpc31jbGFtcCh0LGUpe3JldHVybiB0aGlzLng9TWF0aC5tYXgodC54LE1hdGgubWluKGUueCx0aGlzLngpKSx0aGlzLnk9TWF0aC5tYXgodC55LE1hdGgubWluKGUueSx0aGlzLnkpKSx0aGlzLno9TWF0aC5tYXgodC56LE1hdGgubWluKGUueix0aGlzLnopKSx0aGlzfWNsYW1wU2NhbGFyKHQsZSl7cmV0dXJuIHRoaXMueD1NYXRoLm1heCh0LE1hdGgubWluKGUsdGhpcy54KSksdGhpcy55PU1hdGgubWF4KHQsTWF0aC5taW4oZSx0aGlzLnkpKSx0aGlzLno9TWF0aC5tYXgodCxNYXRoLm1pbihlLHRoaXMueikpLHRoaXN9Y2xhbXBMZW5ndGgodCxlKXtjb25zdCBuPXRoaXMubGVuZ3RoKCk7cmV0dXJuIHRoaXMuZGl2aWRlU2NhbGFyKG58fDEpLm11bHRpcGx5U2NhbGFyKE1hdGgubWF4KHQsTWF0aC5taW4oZSxuKSkpfWZsb29yKCl7cmV0dXJuIHRoaXMueD1NYXRoLmZsb29yKHRoaXMueCksdGhpcy55PU1hdGguZmxvb3IodGhpcy55KSx0aGlzLno9TWF0aC5mbG9vcih0aGlzLnopLHRoaXN9Y2VpbCgpe3JldHVybiB0aGlzLng9TWF0aC5jZWlsKHRoaXMueCksdGhpcy55PU1hdGguY2VpbCh0aGlzLnkpLHRoaXMuej1NYXRoLmNlaWwodGhpcy56KSx0aGlzfXJvdW5kKCl7cmV0dXJuIHRoaXMueD1NYXRoLnJvdW5kKHRoaXMueCksdGhpcy55PU1hdGgucm91bmQodGhpcy55KSx0aGlzLno9TWF0aC5yb3VuZCh0aGlzLnopLHRoaXN9cm91bmRUb1plcm8oKXtyZXR1cm4gdGhpcy54PXRoaXMueDwwP01hdGguY2VpbCh0aGlzLngpOk1hdGguZmxvb3IodGhpcy54KSx0aGlzLnk9dGhpcy55PDA/TWF0aC5jZWlsKHRoaXMueSk6TWF0aC5mbG9vcih0aGlzLnkpLHRoaXMuej10aGlzLno8MD9NYXRoLmNlaWwodGhpcy56KTpNYXRoLmZsb29yKHRoaXMueiksdGhpc31uZWdhdGUoKXtyZXR1cm4gdGhpcy54PS10aGlzLngsdGhpcy55PS10aGlzLnksdGhpcy56PS10aGlzLnosdGhpc31kb3QodCl7cmV0dXJuIHRoaXMueCp0LngrdGhpcy55KnQueSt0aGlzLnoqdC56fWxlbmd0aFNxKCl7cmV0dXJuIHRoaXMueCp0aGlzLngrdGhpcy55KnRoaXMueSt0aGlzLnoqdGhpcy56fWxlbmd0aCgpe3JldHVybiBNYXRoLnNxcnQodGhpcy54KnRoaXMueCt0aGlzLnkqdGhpcy55K3RoaXMueip0aGlzLnopfW1hbmhhdHRhbkxlbmd0aCgpe3JldHVybiBNYXRoLmFicyh0aGlzLngpK01hdGguYWJzKHRoaXMueSkrTWF0aC5hYnModGhpcy56KX1ub3JtYWxpemUoKXtyZXR1cm4gdGhpcy5kaXZpZGVTY2FsYXIodGhpcy5sZW5ndGgoKXx8MSl9c2V0TGVuZ3RoKHQpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLm11bHRpcGx5U2NhbGFyKHQpfWxlcnAodCxlKXtyZXR1cm4gdGhpcy54Kz0odC54LXRoaXMueCkqZSx0aGlzLnkrPSh0LnktdGhpcy55KSplLHRoaXMueis9KHQuei10aGlzLnopKmUsdGhpc31sZXJwVmVjdG9ycyh0LGUsbil7cmV0dXJuIHRoaXMueD10LngrKGUueC10LngpKm4sdGhpcy55PXQueSsoZS55LXQueSkqbix0aGlzLno9dC56KyhlLnotdC56KSpuLHRoaXN9Y3Jvc3ModCxlKXtyZXR1cm4gdm9pZCAwIT09ZT8oY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAuY3Jvc3MoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5jcm9zc1ZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLiIpLHRoaXMuY3Jvc3NWZWN0b3JzKHQsZSkpOnRoaXMuY3Jvc3NWZWN0b3JzKHRoaXMsdCl9Y3Jvc3NWZWN0b3JzKHQsZSl7Y29uc3Qgbj10Lngsbz10LnksaT10LnosYT1lLngscj1lLnkscz1lLno7cmV0dXJuIHRoaXMueD1vKnMtaSpyLHRoaXMueT1pKmEtbipzLHRoaXMuej1uKnItbyphLHRoaXN9cHJvamVjdE9uVmVjdG9yKHQpe2NvbnN0IGU9dC5sZW5ndGhTcSgpO2lmKDA9PT1lKXJldHVybiB0aGlzLnNldCgwLDAsMCk7Y29uc3Qgbj10LmRvdCh0aGlzKS9lO3JldHVybiB0aGlzLmNvcHkodCkubXVsdGlwbHlTY2FsYXIobil9cHJvamVjdE9uUGxhbmUodCl7cmV0dXJuIGtzdC5jb3B5KHRoaXMpLnByb2plY3RPblZlY3Rvcih0KSx0aGlzLnN1Yihrc3QpfXJlZmxlY3QodCl7cmV0dXJuIHRoaXMuc3ViKGtzdC5jb3B5KHQpLm11bHRpcGx5U2NhbGFyKDIqdGhpcy5kb3QodCkpKX1hbmdsZVRvKHQpe2NvbnN0IGU9TWF0aC5zcXJ0KHRoaXMubGVuZ3RoU3EoKSp0Lmxlbmd0aFNxKCkpO2lmKDA9PT1lKXJldHVybiBNYXRoLlBJLzI7Y29uc3Qgbj10aGlzLmRvdCh0KS9lO3JldHVybiBNYXRoLmFjb3MocHN0KG4sLTEsMSkpfWRpc3RhbmNlVG8odCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLmRpc3RhbmNlVG9TcXVhcmVkKHQpKX1kaXN0YW5jZVRvU3F1YXJlZCh0KXtjb25zdCBlPXRoaXMueC10Lngsbj10aGlzLnktdC55LG89dGhpcy56LXQuejtyZXR1cm4gZSplK24qbitvKm99bWFuaGF0dGFuRGlzdGFuY2VUbyh0KXtyZXR1cm4gTWF0aC5hYnModGhpcy54LXQueCkrTWF0aC5hYnModGhpcy55LXQueSkrTWF0aC5hYnModGhpcy56LXQueil9c2V0RnJvbVNwaGVyaWNhbCh0KXtyZXR1cm4gdGhpcy5zZXRGcm9tU3BoZXJpY2FsQ29vcmRzKHQucmFkaXVzLHQucGhpLHQudGhldGEpfXNldEZyb21TcGhlcmljYWxDb29yZHModCxlLG4pe2NvbnN0IG89TWF0aC5zaW4oZSkqdDtyZXR1cm4gdGhpcy54PW8qTWF0aC5zaW4obiksdGhpcy55PU1hdGguY29zKGUpKnQsdGhpcy56PW8qTWF0aC5jb3MobiksdGhpc31zZXRGcm9tQ3lsaW5kcmljYWwodCl7cmV0dXJuIHRoaXMuc2V0RnJvbUN5bGluZHJpY2FsQ29vcmRzKHQucmFkaXVzLHQudGhldGEsdC55KX1zZXRGcm9tQ3lsaW5kcmljYWxDb29yZHModCxlLG4pe3JldHVybiB0aGlzLng9dCpNYXRoLnNpbihlKSx0aGlzLnk9bix0aGlzLno9dCpNYXRoLmNvcyhlKSx0aGlzfXNldEZyb21NYXRyaXhQb3NpdGlvbih0KXtjb25zdCBlPXQuZWxlbWVudHM7cmV0dXJuIHRoaXMueD1lWzEyXSx0aGlzLnk9ZVsxM10sdGhpcy56PWVbMTRdLHRoaXN9c2V0RnJvbU1hdHJpeFNjYWxlKHQpe2NvbnN0IGU9dGhpcy5zZXRGcm9tTWF0cml4Q29sdW1uKHQsMCkubGVuZ3RoKCksbj10aGlzLnNldEZyb21NYXRyaXhDb2x1bW4odCwxKS5sZW5ndGgoKSxvPXRoaXMuc2V0RnJvbU1hdHJpeENvbHVtbih0LDIpLmxlbmd0aCgpO3JldHVybiB0aGlzLng9ZSx0aGlzLnk9bix0aGlzLno9byx0aGlzfXNldEZyb21NYXRyaXhDb2x1bW4odCxlKXtyZXR1cm4gdGhpcy5mcm9tQXJyYXkodC5lbGVtZW50cyw0KmUpfXNldEZyb21NYXRyaXgzQ29sdW1uKHQsZSl7cmV0dXJuIHRoaXMuZnJvbUFycmF5KHQuZWxlbWVudHMsMyplKX1lcXVhbHModCl7cmV0dXJuIHQueD09PXRoaXMueCYmdC55PT09dGhpcy55JiZ0Lno9PT10aGlzLnp9ZnJvbUFycmF5KHQsZT0wKXtyZXR1cm4gdGhpcy54PXRbZV0sdGhpcy55PXRbZSsxXSx0aGlzLno9dFtlKzJdLHRoaXN9dG9BcnJheSh0PVtdLGU9MCl7cmV0dXJuIHRbZV09dGhpcy54LHRbZSsxXT10aGlzLnksdFtlKzJdPXRoaXMueix0fWZyb21CdWZmZXJBdHRyaWJ1dGUodCxlLG4pe3JldHVybiB2b2lkIDAhPT1uJiZjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IG9mZnNldCBoYXMgYmVlbiByZW1vdmVkIGZyb20gLmZyb21CdWZmZXJBdHRyaWJ1dGUoKS4iKSx0aGlzLng9dC5nZXRYKGUpLHRoaXMueT10LmdldFkoZSksdGhpcy56PXQuZ2V0WihlKSx0aGlzfXJhbmRvbSgpe3JldHVybiB0aGlzLng9TWF0aC5yYW5kb20oKSx0aGlzLnk9TWF0aC5yYW5kb20oKSx0aGlzLno9TWF0aC5yYW5kb20oKSx0aGlzfX13c3QucHJvdG90eXBlLmlzVmVjdG9yMz0hMDtjb25zdCBrc3Q9bmV3IHdzdCxTc3Q9bmV3IFBzdDtjbGFzcyBEc3R7Y29uc3RydWN0b3IodD1uZXcgd3N0KDEvMCwxLzAsMS8wKSxlPW5ldyB3c3QoLTEvMCwtMS8wLC0xLzApKXt0aGlzLm1pbj10LHRoaXMubWF4PWV9c2V0KHQsZSl7cmV0dXJuIHRoaXMubWluLmNvcHkodCksdGhpcy5tYXguY29weShlKSx0aGlzfXNldEZyb21BcnJheSh0KXtsZXQgZT0xLzAsbj0xLzAsbz0xLzAsaT0tMS8wLGE9LTEvMCxyPS0xLzA7Zm9yKGxldCBzPTAsbD10Lmxlbmd0aDtzPGw7cys9Myl7Y29uc3QgbD10W3NdLGM9dFtzKzFdLGQ9dFtzKzJdO2w8ZSYmKGU9bCksYzxuJiYobj1jKSxkPG8mJihvPWQpLGw+aSYmKGk9bCksYz5hJiYoYT1jKSxkPnImJihyPWQpfXJldHVybiB0aGlzLm1pbi5zZXQoZSxuLG8pLHRoaXMubWF4LnNldChpLGEsciksdGhpc31zZXRGcm9tQnVmZmVyQXR0cmlidXRlKHQpe2xldCBlPTEvMCxuPTEvMCxvPTEvMCxpPS0xLzAsYT0tMS8wLHI9LTEvMDtmb3IobGV0IHM9MCxsPXQuY291bnQ7czxsO3MrKyl7Y29uc3QgbD10LmdldFgocyksYz10LmdldFkocyksZD10LmdldFoocyk7bDxlJiYoZT1sKSxjPG4mJihuPWMpLGQ8byYmKG89ZCksbD5pJiYoaT1sKSxjPmEmJihhPWMpLGQ+ciYmKHI9ZCl9cmV0dXJuIHRoaXMubWluLnNldChlLG4sbyksdGhpcy5tYXguc2V0KGksYSxyKSx0aGlzfXNldEZyb21Qb2ludHModCl7dGhpcy5tYWtlRW1wdHkoKTtmb3IobGV0IGU9MCxuPXQubGVuZ3RoO2U8bjtlKyspdGhpcy5leHBhbmRCeVBvaW50KHRbZV0pO3JldHVybiB0aGlzfXNldEZyb21DZW50ZXJBbmRTaXplKHQsZSl7Y29uc3Qgbj1Fc3QuY29weShlKS5tdWx0aXBseVNjYWxhciguNSk7cmV0dXJuIHRoaXMubWluLmNvcHkodCkuc3ViKG4pLHRoaXMubWF4LmNvcHkodCkuYWRkKG4pLHRoaXN9c2V0RnJvbU9iamVjdCh0KXtyZXR1cm4gdGhpcy5tYWtlRW1wdHkoKSx0aGlzLmV4cGFuZEJ5T2JqZWN0KHQpfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfWNvcHkodCl7cmV0dXJuIHRoaXMubWluLmNvcHkodC5taW4pLHRoaXMubWF4LmNvcHkodC5tYXgpLHRoaXN9bWFrZUVtcHR5KCl7cmV0dXJuIHRoaXMubWluLng9dGhpcy5taW4ueT10aGlzLm1pbi56PTEvMCx0aGlzLm1heC54PXRoaXMubWF4Lnk9dGhpcy5tYXguej0tMS8wLHRoaXN9aXNFbXB0eSgpe3JldHVybiB0aGlzLm1heC54PHRoaXMubWluLnh8fHRoaXMubWF4Lnk8dGhpcy5taW4ueXx8dGhpcy5tYXguejx0aGlzLm1pbi56fWdldENlbnRlcih0KXtyZXR1cm4gdGhpcy5pc0VtcHR5KCk/dC5zZXQoMCwwLDApOnQuYWRkVmVjdG9ycyh0aGlzLm1pbix0aGlzLm1heCkubXVsdGlwbHlTY2FsYXIoLjUpfWdldFNpemUodCl7cmV0dXJuIHRoaXMuaXNFbXB0eSgpP3Quc2V0KDAsMCwwKTp0LnN1YlZlY3RvcnModGhpcy5tYXgsdGhpcy5taW4pfWV4cGFuZEJ5UG9pbnQodCl7cmV0dXJuIHRoaXMubWluLm1pbih0KSx0aGlzLm1heC5tYXgodCksdGhpc31leHBhbmRCeVZlY3Rvcih0KXtyZXR1cm4gdGhpcy5taW4uc3ViKHQpLHRoaXMubWF4LmFkZCh0KSx0aGlzfWV4cGFuZEJ5U2NhbGFyKHQpe3JldHVybiB0aGlzLm1pbi5hZGRTY2FsYXIoLXQpLHRoaXMubWF4LmFkZFNjYWxhcih0KSx0aGlzfWV4cGFuZEJ5T2JqZWN0KHQpe3QudXBkYXRlV29ybGRNYXRyaXgoITEsITEpO2NvbnN0IGU9dC5nZW9tZXRyeTt2b2lkIDAhPT1lJiYobnVsbD09PWUuYm91bmRpbmdCb3gmJmUuY29tcHV0ZUJvdW5kaW5nQm94KCksQXN0LmNvcHkoZS5ib3VuZGluZ0JveCksQXN0LmFwcGx5TWF0cml4NCh0Lm1hdHJpeFdvcmxkKSx0aGlzLnVuaW9uKEFzdCkpO2NvbnN0IG49dC5jaGlsZHJlbjtmb3IobGV0IHQ9MCxlPW4ubGVuZ3RoO3Q8ZTt0KyspdGhpcy5leHBhbmRCeU9iamVjdChuW3RdKTtyZXR1cm4gdGhpc31jb250YWluc1BvaW50KHQpe3JldHVybiEodC54PHRoaXMubWluLnh8fHQueD50aGlzLm1heC54fHx0Lnk8dGhpcy5taW4ueXx8dC55PnRoaXMubWF4Lnl8fHQuejx0aGlzLm1pbi56fHx0Lno+dGhpcy5tYXgueil9Y29udGFpbnNCb3godCl7cmV0dXJuIHRoaXMubWluLng8PXQubWluLngmJnQubWF4Lng8PXRoaXMubWF4LngmJnRoaXMubWluLnk8PXQubWluLnkmJnQubWF4Lnk8PXRoaXMubWF4LnkmJnRoaXMubWluLno8PXQubWluLnomJnQubWF4Lno8PXRoaXMubWF4Lnp9Z2V0UGFyYW1ldGVyKHQsZSl7cmV0dXJuIGUuc2V0KCh0LngtdGhpcy5taW4ueCkvKHRoaXMubWF4LngtdGhpcy5taW4ueCksKHQueS10aGlzLm1pbi55KS8odGhpcy5tYXgueS10aGlzLm1pbi55KSwodC56LXRoaXMubWluLnopLyh0aGlzLm1heC56LXRoaXMubWluLnopKX1pbnRlcnNlY3RzQm94KHQpe3JldHVybiEodC5tYXgueDx0aGlzLm1pbi54fHx0Lm1pbi54PnRoaXMubWF4Lnh8fHQubWF4Lnk8dGhpcy5taW4ueXx8dC5taW4ueT50aGlzLm1heC55fHx0Lm1heC56PHRoaXMubWluLnp8fHQubWluLno+dGhpcy5tYXgueil9aW50ZXJzZWN0c1NwaGVyZSh0KXtyZXR1cm4gdGhpcy5jbGFtcFBvaW50KHQuY2VudGVyLEVzdCksRXN0LmRpc3RhbmNlVG9TcXVhcmVkKHQuY2VudGVyKTw9dC5yYWRpdXMqdC5yYWRpdXN9aW50ZXJzZWN0c1BsYW5lKHQpe2xldCBlLG47cmV0dXJuIHQubm9ybWFsLng+MD8oZT10Lm5vcm1hbC54KnRoaXMubWluLngsbj10Lm5vcm1hbC54KnRoaXMubWF4LngpOihlPXQubm9ybWFsLngqdGhpcy5tYXgueCxuPXQubm9ybWFsLngqdGhpcy5taW4ueCksdC5ub3JtYWwueT4wPyhlKz10Lm5vcm1hbC55KnRoaXMubWluLnksbis9dC5ub3JtYWwueSp0aGlzLm1heC55KTooZSs9dC5ub3JtYWwueSp0aGlzLm1heC55LG4rPXQubm9ybWFsLnkqdGhpcy5taW4ueSksdC5ub3JtYWwuej4wPyhlKz10Lm5vcm1hbC56KnRoaXMubWluLnosbis9dC5ub3JtYWwueip0aGlzLm1heC56KTooZSs9dC5ub3JtYWwueip0aGlzLm1heC56LG4rPXQubm9ybWFsLnoqdGhpcy5taW4ueiksZTw9LXQuY29uc3RhbnQmJm4+PS10LmNvbnN0YW50fWludGVyc2VjdHNUcmlhbmdsZSh0KXtpZih0aGlzLmlzRW1wdHkoKSlyZXR1cm4hMTt0aGlzLmdldENlbnRlcihMc3QpLEJzdC5zdWJWZWN0b3JzKHRoaXMubWF4LExzdCksVHN0LnN1YlZlY3RvcnModC5hLExzdCksTnN0LnN1YlZlY3RvcnModC5iLExzdCksenN0LnN1YlZlY3RvcnModC5jLExzdCksSXN0LnN1YlZlY3RvcnMoTnN0LFRzdCksSHN0LnN1YlZlY3RvcnMoenN0LE5zdCksRnN0LnN1YlZlY3RvcnMoVHN0LHpzdCk7bGV0IGU9WzAsLUlzdC56LElzdC55LDAsLUhzdC56LEhzdC55LDAsLUZzdC56LEZzdC55LElzdC56LDAsLUlzdC54LEhzdC56LDAsLUhzdC54LEZzdC56LDAsLUZzdC54LC1Jc3QueSxJc3QueCwwLC1Ic3QueSxIc3QueCwwLC1Gc3QueSxGc3QueCwwXTtyZXR1cm4hIVVzdChlLFRzdCxOc3QsenN0LEJzdCkmJihlPVsxLDAsMCwwLDEsMCwwLDAsMV0sISFVc3QoZSxUc3QsTnN0LHpzdCxCc3QpJiYoVnN0LmNyb3NzVmVjdG9ycyhJc3QsSHN0KSxlPVtWc3QueCxWc3QueSxWc3Quel0sVXN0KGUsVHN0LE5zdCx6c3QsQnN0KSkpfWNsYW1wUG9pbnQodCxlKXtyZXR1cm4gZS5jb3B5KHQpLmNsYW1wKHRoaXMubWluLHRoaXMubWF4KX1kaXN0YW5jZVRvUG9pbnQodCl7cmV0dXJuIEVzdC5jb3B5KHQpLmNsYW1wKHRoaXMubWluLHRoaXMubWF4KS5zdWIodCkubGVuZ3RoKCl9Z2V0Qm91bmRpbmdTcGhlcmUodCl7cmV0dXJuIHRoaXMuZ2V0Q2VudGVyKHQuY2VudGVyKSx0LnJhZGl1cz0uNSp0aGlzLmdldFNpemUoRXN0KS5sZW5ndGgoKSx0fWludGVyc2VjdCh0KXtyZXR1cm4gdGhpcy5taW4ubWF4KHQubWluKSx0aGlzLm1heC5taW4odC5tYXgpLHRoaXMuaXNFbXB0eSgpJiZ0aGlzLm1ha2VFbXB0eSgpLHRoaXN9dW5pb24odCl7cmV0dXJuIHRoaXMubWluLm1pbih0Lm1pbiksdGhpcy5tYXgubWF4KHQubWF4KSx0aGlzfWFwcGx5TWF0cml4NCh0KXtyZXR1cm4gdGhpcy5pc0VtcHR5KCl8fChSc3RbMF0uc2V0KHRoaXMubWluLngsdGhpcy5taW4ueSx0aGlzLm1pbi56KS5hcHBseU1hdHJpeDQodCksUnN0WzFdLnNldCh0aGlzLm1pbi54LHRoaXMubWluLnksdGhpcy5tYXgueikuYXBwbHlNYXRyaXg0KHQpLFJzdFsyXS5zZXQodGhpcy5taW4ueCx0aGlzLm1heC55LHRoaXMubWluLnopLmFwcGx5TWF0cml4NCh0KSxSc3RbM10uc2V0KHRoaXMubWluLngsdGhpcy5tYXgueSx0aGlzLm1heC56KS5hcHBseU1hdHJpeDQodCksUnN0WzRdLnNldCh0aGlzLm1heC54LHRoaXMubWluLnksdGhpcy5taW4ueikuYXBwbHlNYXRyaXg0KHQpLFJzdFs1XS5zZXQodGhpcy5tYXgueCx0aGlzLm1pbi55LHRoaXMubWF4LnopLmFwcGx5TWF0cml4NCh0KSxSc3RbNl0uc2V0KHRoaXMubWF4LngsdGhpcy5tYXgueSx0aGlzLm1pbi56KS5hcHBseU1hdHJpeDQodCksUnN0WzddLnNldCh0aGlzLm1heC54LHRoaXMubWF4LnksdGhpcy5tYXgueikuYXBwbHlNYXRyaXg0KHQpLHRoaXMuc2V0RnJvbVBvaW50cyhSc3QpKSx0aGlzfXRyYW5zbGF0ZSh0KXtyZXR1cm4gdGhpcy5taW4uYWRkKHQpLHRoaXMubWF4LmFkZCh0KSx0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC5taW4uZXF1YWxzKHRoaXMubWluKSYmdC5tYXguZXF1YWxzKHRoaXMubWF4KX19RHN0LnByb3RvdHlwZS5pc0JveDM9ITA7Y29uc3QgUnN0PVtuZXcgd3N0LG5ldyB3c3QsbmV3IHdzdCxuZXcgd3N0LG5ldyB3c3QsbmV3IHdzdCxuZXcgd3N0LG5ldyB3c3RdLEVzdD1uZXcgd3N0LEFzdD1uZXcgRHN0LFRzdD1uZXcgd3N0LE5zdD1uZXcgd3N0LHpzdD1uZXcgd3N0LElzdD1uZXcgd3N0LEhzdD1uZXcgd3N0LEZzdD1uZXcgd3N0LExzdD1uZXcgd3N0LEJzdD1uZXcgd3N0LFZzdD1uZXcgd3N0LGpzdD1uZXcgd3N0O2Z1bmN0aW9uIFVzdCh0LGUsbixvLGkpe2ZvcihsZXQgYT0wLHI9dC5sZW5ndGgtMzthPD1yO2ErPTMpe2pzdC5mcm9tQXJyYXkodCxhKTtjb25zdCByPWkueCpNYXRoLmFicyhqc3QueCkraS55Kk1hdGguYWJzKGpzdC55KStpLnoqTWF0aC5hYnMoanN0LnopLHM9ZS5kb3QoanN0KSxsPW4uZG90KGpzdCksYz1vLmRvdChqc3QpO2lmKE1hdGgubWF4KC1NYXRoLm1heChzLGwsYyksTWF0aC5taW4ocyxsLGMpKT5yKXJldHVybiExfXJldHVybiEwfWNvbnN0IFdzdD1uZXcgRHN0LEdzdD1uZXcgd3N0LFlzdD1uZXcgd3N0LHFzdD1uZXcgd3N0O2NsYXNzIFpzdHtjb25zdHJ1Y3Rvcih0PW5ldyB3c3QsZT0tMSl7dGhpcy5jZW50ZXI9dCx0aGlzLnJhZGl1cz1lfXNldCh0LGUpe3JldHVybiB0aGlzLmNlbnRlci5jb3B5KHQpLHRoaXMucmFkaXVzPWUsdGhpc31zZXRGcm9tUG9pbnRzKHQsZSl7Y29uc3Qgbj10aGlzLmNlbnRlcjt2b2lkIDAhPT1lP24uY29weShlKTpXc3Quc2V0RnJvbVBvaW50cyh0KS5nZXRDZW50ZXIobik7bGV0IG89MDtmb3IobGV0IGU9MCxpPXQubGVuZ3RoO2U8aTtlKyspbz1NYXRoLm1heChvLG4uZGlzdGFuY2VUb1NxdWFyZWQodFtlXSkpO3JldHVybiB0aGlzLnJhZGl1cz1NYXRoLnNxcnQobyksdGhpc31jb3B5KHQpe3JldHVybiB0aGlzLmNlbnRlci5jb3B5KHQuY2VudGVyKSx0aGlzLnJhZGl1cz10LnJhZGl1cyx0aGlzfWlzRW1wdHkoKXtyZXR1cm4gdGhpcy5yYWRpdXM8MH1tYWtlRW1wdHkoKXtyZXR1cm4gdGhpcy5jZW50ZXIuc2V0KDAsMCwwKSx0aGlzLnJhZGl1cz0tMSx0aGlzfWNvbnRhaW5zUG9pbnQodCl7cmV0dXJuIHQuZGlzdGFuY2VUb1NxdWFyZWQodGhpcy5jZW50ZXIpPD10aGlzLnJhZGl1cyp0aGlzLnJhZGl1c31kaXN0YW5jZVRvUG9pbnQodCl7cmV0dXJuIHQuZGlzdGFuY2VUbyh0aGlzLmNlbnRlciktdGhpcy5yYWRpdXN9aW50ZXJzZWN0c1NwaGVyZSh0KXtjb25zdCBlPXRoaXMucmFkaXVzK3QucmFkaXVzO3JldHVybiB0LmNlbnRlci5kaXN0YW5jZVRvU3F1YXJlZCh0aGlzLmNlbnRlcik8PWUqZX1pbnRlcnNlY3RzQm94KHQpe3JldHVybiB0LmludGVyc2VjdHNTcGhlcmUodGhpcyl9aW50ZXJzZWN0c1BsYW5lKHQpe3JldHVybiBNYXRoLmFicyh0LmRpc3RhbmNlVG9Qb2ludCh0aGlzLmNlbnRlcikpPD10aGlzLnJhZGl1c31jbGFtcFBvaW50KHQsZSl7Y29uc3Qgbj10aGlzLmNlbnRlci5kaXN0YW5jZVRvU3F1YXJlZCh0KTtyZXR1cm4gZS5jb3B5KHQpLG4+dGhpcy5yYWRpdXMqdGhpcy5yYWRpdXMmJihlLnN1Yih0aGlzLmNlbnRlcikubm9ybWFsaXplKCksZS5tdWx0aXBseVNjYWxhcih0aGlzLnJhZGl1cykuYWRkKHRoaXMuY2VudGVyKSksZX1nZXRCb3VuZGluZ0JveCh0KXtyZXR1cm4gdGhpcy5pc0VtcHR5KCk/KHQubWFrZUVtcHR5KCksdCk6KHQuc2V0KHRoaXMuY2VudGVyLHRoaXMuY2VudGVyKSx0LmV4cGFuZEJ5U2NhbGFyKHRoaXMucmFkaXVzKSx0KX1hcHBseU1hdHJpeDQodCl7cmV0dXJuIHRoaXMuY2VudGVyLmFwcGx5TWF0cml4NCh0KSx0aGlzLnJhZGl1cz10aGlzLnJhZGl1cyp0LmdldE1heFNjYWxlT25BeGlzKCksdGhpc310cmFuc2xhdGUodCl7cmV0dXJuIHRoaXMuY2VudGVyLmFkZCh0KSx0aGlzfWV4cGFuZEJ5UG9pbnQodCl7cXN0LnN1YlZlY3RvcnModCx0aGlzLmNlbnRlcik7Y29uc3QgZT1xc3QubGVuZ3RoU3EoKTtpZihlPnRoaXMucmFkaXVzKnRoaXMucmFkaXVzKXtjb25zdCB0PU1hdGguc3FydChlKSxuPS41Kih0LXRoaXMucmFkaXVzKTt0aGlzLmNlbnRlci5hZGQocXN0Lm11bHRpcGx5U2NhbGFyKG4vdCkpLHRoaXMucmFkaXVzKz1ufXJldHVybiB0aGlzfXVuaW9uKHQpe3JldHVybiBZc3Quc3ViVmVjdG9ycyh0LmNlbnRlcix0aGlzLmNlbnRlcikubm9ybWFsaXplKCkubXVsdGlwbHlTY2FsYXIodC5yYWRpdXMpLHRoaXMuZXhwYW5kQnlQb2ludChHc3QuY29weSh0LmNlbnRlcikuYWRkKFlzdCkpLHRoaXMuZXhwYW5kQnlQb2ludChHc3QuY29weSh0LmNlbnRlcikuc3ViKFlzdCkpLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0LmNlbnRlci5lcXVhbHModGhpcy5jZW50ZXIpJiZ0LnJhZGl1cz09PXRoaXMucmFkaXVzfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfX1jb25zdCBYc3Q9bmV3IHdzdCxLc3Q9bmV3IHdzdCxKc3Q9bmV3IHdzdCxRc3Q9bmV3IHdzdCwkc3Q9bmV3IHdzdCx0bHQ9bmV3IHdzdCxlbHQ9bmV3IHdzdDtjbGFzcyBubHR7Y29uc3RydWN0b3IodD1uZXcgd3N0LGU9bmV3IHdzdCgwLDAsLTEpKXt0aGlzLm9yaWdpbj10LHRoaXMuZGlyZWN0aW9uPWV9c2V0KHQsZSl7cmV0dXJuIHRoaXMub3JpZ2luLmNvcHkodCksdGhpcy5kaXJlY3Rpb24uY29weShlKSx0aGlzfWNvcHkodCl7cmV0dXJuIHRoaXMub3JpZ2luLmNvcHkodC5vcmlnaW4pLHRoaXMuZGlyZWN0aW9uLmNvcHkodC5kaXJlY3Rpb24pLHRoaXN9YXQodCxlKXtyZXR1cm4gZS5jb3B5KHRoaXMuZGlyZWN0aW9uKS5tdWx0aXBseVNjYWxhcih0KS5hZGQodGhpcy5vcmlnaW4pfWxvb2tBdCh0KXtyZXR1cm4gdGhpcy5kaXJlY3Rpb24uY29weSh0KS5zdWIodGhpcy5vcmlnaW4pLm5vcm1hbGl6ZSgpLHRoaXN9cmVjYXN0KHQpe3JldHVybiB0aGlzLm9yaWdpbi5jb3B5KHRoaXMuYXQodCxYc3QpKSx0aGlzfWNsb3Nlc3RQb2ludFRvUG9pbnQodCxlKXtlLnN1YlZlY3RvcnModCx0aGlzLm9yaWdpbik7Y29uc3Qgbj1lLmRvdCh0aGlzLmRpcmVjdGlvbik7cmV0dXJuIG48MD9lLmNvcHkodGhpcy5vcmlnaW4pOmUuY29weSh0aGlzLmRpcmVjdGlvbikubXVsdGlwbHlTY2FsYXIobikuYWRkKHRoaXMub3JpZ2luKX1kaXN0YW5jZVRvUG9pbnQodCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLmRpc3RhbmNlU3FUb1BvaW50KHQpKX1kaXN0YW5jZVNxVG9Qb2ludCh0KXtjb25zdCBlPVhzdC5zdWJWZWN0b3JzKHQsdGhpcy5vcmlnaW4pLmRvdCh0aGlzLmRpcmVjdGlvbik7cmV0dXJuIGU8MD90aGlzLm9yaWdpbi5kaXN0YW5jZVRvU3F1YXJlZCh0KTooWHN0LmNvcHkodGhpcy5kaXJlY3Rpb24pLm11bHRpcGx5U2NhbGFyKGUpLmFkZCh0aGlzLm9yaWdpbiksWHN0LmRpc3RhbmNlVG9TcXVhcmVkKHQpKX1kaXN0YW5jZVNxVG9TZWdtZW50KHQsZSxuLG8pe0tzdC5jb3B5KHQpLmFkZChlKS5tdWx0aXBseVNjYWxhciguNSksSnN0LmNvcHkoZSkuc3ViKHQpLm5vcm1hbGl6ZSgpLFFzdC5jb3B5KHRoaXMub3JpZ2luKS5zdWIoS3N0KTtjb25zdCBpPS41KnQuZGlzdGFuY2VUbyhlKSxhPS10aGlzLmRpcmVjdGlvbi5kb3QoSnN0KSxyPVFzdC5kb3QodGhpcy5kaXJlY3Rpb24pLHM9LVFzdC5kb3QoSnN0KSxsPVFzdC5sZW5ndGhTcSgpLGM9TWF0aC5hYnMoMS1hKmEpO2xldCBkLHAsbSxmO2lmKGM+MClpZihkPWEqcy1yLHA9YSpyLXMsZj1pKmMsZD49MClpZihwPj0tZilpZihwPD1mKXtjb25zdCB0PTEvYztkKj10LHAqPXQsbT1kKihkK2EqcCsyKnIpK3AqKGEqZCtwKzIqcykrbH1lbHNlIHA9aSxkPU1hdGgubWF4KDAsLShhKnArcikpLG09LWQqZCtwKihwKzIqcykrbDtlbHNlIHA9LWksZD1NYXRoLm1heCgwLC0oYSpwK3IpKSxtPS1kKmQrcCoocCsyKnMpK2w7ZWxzZSBwPD0tZj8oZD1NYXRoLm1heCgwLC0oLWEqaStyKSkscD1kPjA/LWk6TWF0aC5taW4oTWF0aC5tYXgoLWksLXMpLGkpLG09LWQqZCtwKihwKzIqcykrbCk6cDw9Zj8oZD0wLHA9TWF0aC5taW4oTWF0aC5tYXgoLWksLXMpLGkpLG09cCoocCsyKnMpK2wpOihkPU1hdGgubWF4KDAsLShhKmkrcikpLHA9ZD4wP2k6TWF0aC5taW4oTWF0aC5tYXgoLWksLXMpLGkpLG09LWQqZCtwKihwKzIqcykrbCk7ZWxzZSBwPWE+MD8taTppLGQ9TWF0aC5tYXgoMCwtKGEqcCtyKSksbT0tZCpkK3AqKHArMipzKStsO3JldHVybiBuJiZuLmNvcHkodGhpcy5kaXJlY3Rpb24pLm11bHRpcGx5U2NhbGFyKGQpLmFkZCh0aGlzLm9yaWdpbiksbyYmby5jb3B5KEpzdCkubXVsdGlwbHlTY2FsYXIocCkuYWRkKEtzdCksbX1pbnRlcnNlY3RTcGhlcmUodCxlKXtYc3Quc3ViVmVjdG9ycyh0LmNlbnRlcix0aGlzLm9yaWdpbik7Y29uc3Qgbj1Yc3QuZG90KHRoaXMuZGlyZWN0aW9uKSxvPVhzdC5kb3QoWHN0KS1uKm4saT10LnJhZGl1cyp0LnJhZGl1cztpZihvPmkpcmV0dXJuIG51bGw7Y29uc3QgYT1NYXRoLnNxcnQoaS1vKSxyPW4tYSxzPW4rYTtyZXR1cm4gcjwwJiZzPDA/bnVsbDp0aGlzLmF0KHI8MD9zOnIsZSl9aW50ZXJzZWN0c1NwaGVyZSh0KXtyZXR1cm4gdGhpcy5kaXN0YW5jZVNxVG9Qb2ludCh0LmNlbnRlcik8PXQucmFkaXVzKnQucmFkaXVzfWRpc3RhbmNlVG9QbGFuZSh0KXtjb25zdCBlPXQubm9ybWFsLmRvdCh0aGlzLmRpcmVjdGlvbik7aWYoMD09PWUpcmV0dXJuIDA9PT10LmRpc3RhbmNlVG9Qb2ludCh0aGlzLm9yaWdpbik/MDpudWxsO2NvbnN0IG49LSh0aGlzLm9yaWdpbi5kb3QodC5ub3JtYWwpK3QuY29uc3RhbnQpL2U7cmV0dXJuIG4+PTA/bjpudWxsfWludGVyc2VjdFBsYW5lKHQsZSl7Y29uc3Qgbj10aGlzLmRpc3RhbmNlVG9QbGFuZSh0KTtyZXR1cm4gbnVsbD09PW4/bnVsbDp0aGlzLmF0KG4sZSl9aW50ZXJzZWN0c1BsYW5lKHQpe2NvbnN0IGU9dC5kaXN0YW5jZVRvUG9pbnQodGhpcy5vcmlnaW4pO2lmKDA9PT1lKXJldHVybiEwO3JldHVybiB0Lm5vcm1hbC5kb3QodGhpcy5kaXJlY3Rpb24pKmU8MH1pbnRlcnNlY3RCb3godCxlKXtsZXQgbixvLGksYSxyLHM7Y29uc3QgbD0xL3RoaXMuZGlyZWN0aW9uLngsYz0xL3RoaXMuZGlyZWN0aW9uLnksZD0xL3RoaXMuZGlyZWN0aW9uLnoscD10aGlzLm9yaWdpbjtyZXR1cm4gbD49MD8obj0odC5taW4ueC1wLngpKmwsbz0odC5tYXgueC1wLngpKmwpOihuPSh0Lm1heC54LXAueCkqbCxvPSh0Lm1pbi54LXAueCkqbCksYz49MD8oaT0odC5taW4ueS1wLnkpKmMsYT0odC5tYXgueS1wLnkpKmMpOihpPSh0Lm1heC55LXAueSkqYyxhPSh0Lm1pbi55LXAueSkqYyksbj5hfHxpPm8/bnVsbDooKGk+bnx8biE9bikmJihuPWkpLChhPG98fG8hPW8pJiYobz1hKSxkPj0wPyhyPSh0Lm1pbi56LXAueikqZCxzPSh0Lm1heC56LXAueikqZCk6KHI9KHQubWF4LnotcC56KSpkLHM9KHQubWluLnotcC56KSpkKSxuPnN8fHI+bz9udWxsOigocj5ufHxuIT1uKSYmKG49ciksKHM8b3x8byE9bykmJihvPXMpLG88MD9udWxsOnRoaXMuYXQobj49MD9uOm8sZSkpKX1pbnRlcnNlY3RzQm94KHQpe3JldHVybiBudWxsIT09dGhpcy5pbnRlcnNlY3RCb3godCxYc3QpfWludGVyc2VjdFRyaWFuZ2xlKHQsZSxuLG8saSl7JHN0LnN1YlZlY3RvcnMoZSx0KSx0bHQuc3ViVmVjdG9ycyhuLHQpLGVsdC5jcm9zc1ZlY3RvcnMoJHN0LHRsdCk7bGV0IGEscj10aGlzLmRpcmVjdGlvbi5kb3QoZWx0KTtpZihyPjApe2lmKG8pcmV0dXJuIG51bGw7YT0xfWVsc2V7aWYoIShyPDApKXJldHVybiBudWxsO2E9LTEscj0tcn1Rc3Quc3ViVmVjdG9ycyh0aGlzLm9yaWdpbix0KTtjb25zdCBzPWEqdGhpcy5kaXJlY3Rpb24uZG90KHRsdC5jcm9zc1ZlY3RvcnMoUXN0LHRsdCkpO2lmKHM8MClyZXR1cm4gbnVsbDtjb25zdCBsPWEqdGhpcy5kaXJlY3Rpb24uZG90KCRzdC5jcm9zcyhRc3QpKTtpZihsPDApcmV0dXJuIG51bGw7aWYocytsPnIpcmV0dXJuIG51bGw7Y29uc3QgYz0tYSpRc3QuZG90KGVsdCk7cmV0dXJuIGM8MD9udWxsOnRoaXMuYXQoYy9yLGkpfWFwcGx5TWF0cml4NCh0KXtyZXR1cm4gdGhpcy5vcmlnaW4uYXBwbHlNYXRyaXg0KHQpLHRoaXMuZGlyZWN0aW9uLnRyYW5zZm9ybURpcmVjdGlvbih0KSx0aGlzfWVxdWFscyh0KXtyZXR1cm4gdC5vcmlnaW4uZXF1YWxzKHRoaXMub3JpZ2luKSYmdC5kaXJlY3Rpb24uZXF1YWxzKHRoaXMuZGlyZWN0aW9uKX1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX19Y2xhc3Mgb2x0e2NvbnN0cnVjdG9yKCl7dGhpcy5lbGVtZW50cz1bMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMV0sYXJndW1lbnRzLmxlbmd0aD4wJiZjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiB0aGUgY29uc3RydWN0b3Igbm8gbG9uZ2VyIHJlYWRzIGFyZ3VtZW50cy4gdXNlIC5zZXQoKSBpbnN0ZWFkLiIpfXNldCh0LGUsbixvLGksYSxyLHMsbCxjLGQscCxtLGYsdSxnKXtjb25zdCBoPXRoaXMuZWxlbWVudHM7cmV0dXJuIGhbMF09dCxoWzRdPWUsaFs4XT1uLGhbMTJdPW8saFsxXT1pLGhbNV09YSxoWzldPXIsaFsxM109cyxoWzJdPWwsaFs2XT1jLGhbMTBdPWQsaFsxNF09cCxoWzNdPW0saFs3XT1mLGhbMTFdPXUsaFsxNV09Zyx0aGlzfWlkZW50aXR5KCl7cmV0dXJuIHRoaXMuc2V0KDEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsMCwwLDEpLHRoaXN9Y2xvbmUoKXtyZXR1cm4obmV3IG9sdCkuZnJvbUFycmF5KHRoaXMuZWxlbWVudHMpfWNvcHkodCl7Y29uc3QgZT10aGlzLmVsZW1lbnRzLG49dC5lbGVtZW50cztyZXR1cm4gZVswXT1uWzBdLGVbMV09blsxXSxlWzJdPW5bMl0sZVszXT1uWzNdLGVbNF09bls0XSxlWzVdPW5bNV0sZVs2XT1uWzZdLGVbN109bls3XSxlWzhdPW5bOF0sZVs5XT1uWzldLGVbMTBdPW5bMTBdLGVbMTFdPW5bMTFdLGVbMTJdPW5bMTJdLGVbMTNdPW5bMTNdLGVbMTRdPW5bMTRdLGVbMTVdPW5bMTVdLHRoaXN9Y29weVBvc2l0aW9uKHQpe2NvbnN0IGU9dGhpcy5lbGVtZW50cyxuPXQuZWxlbWVudHM7cmV0dXJuIGVbMTJdPW5bMTJdLGVbMTNdPW5bMTNdLGVbMTRdPW5bMTRdLHRoaXN9c2V0RnJvbU1hdHJpeDModCl7Y29uc3QgZT10LmVsZW1lbnRzO3JldHVybiB0aGlzLnNldChlWzBdLGVbM10sZVs2XSwwLGVbMV0sZVs0XSxlWzddLDAsZVsyXSxlWzVdLGVbOF0sMCwwLDAsMCwxKSx0aGlzfWV4dHJhY3RCYXNpcyh0LGUsbil7cmV0dXJuIHQuc2V0RnJvbU1hdHJpeENvbHVtbih0aGlzLDApLGUuc2V0RnJvbU1hdHJpeENvbHVtbih0aGlzLDEpLG4uc2V0RnJvbU1hdHJpeENvbHVtbih0aGlzLDIpLHRoaXN9bWFrZUJhc2lzKHQsZSxuKXtyZXR1cm4gdGhpcy5zZXQodC54LGUueCxuLngsMCx0LnksZS55LG4ueSwwLHQueixlLnosbi56LDAsMCwwLDAsMSksdGhpc31leHRyYWN0Um90YXRpb24odCl7Y29uc3QgZT10aGlzLmVsZW1lbnRzLG49dC5lbGVtZW50cyxvPTEvaWx0LnNldEZyb21NYXRyaXhDb2x1bW4odCwwKS5sZW5ndGgoKSxpPTEvaWx0LnNldEZyb21NYXRyaXhDb2x1bW4odCwxKS5sZW5ndGgoKSxhPTEvaWx0LnNldEZyb21NYXRyaXhDb2x1bW4odCwyKS5sZW5ndGgoKTtyZXR1cm4gZVswXT1uWzBdKm8sZVsxXT1uWzFdKm8sZVsyXT1uWzJdKm8sZVszXT0wLGVbNF09bls0XSppLGVbNV09bls1XSppLGVbNl09bls2XSppLGVbN109MCxlWzhdPW5bOF0qYSxlWzldPW5bOV0qYSxlWzEwXT1uWzEwXSphLGVbMTFdPTAsZVsxMl09MCxlWzEzXT0wLGVbMTRdPTAsZVsxNV09MSx0aGlzfW1ha2VSb3RhdGlvbkZyb21FdWxlcih0KXt0JiZ0LmlzRXVsZXJ8fGNvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5tYWtlUm90YXRpb25Gcm9tRXVsZXIoKSBub3cgZXhwZWN0cyBhIEV1bGVyIHJvdGF0aW9uIHJhdGhlciB0aGFuIGEgVmVjdG9yMyBhbmQgb3JkZXIuIik7Y29uc3QgZT10aGlzLmVsZW1lbnRzLG49dC54LG89dC55LGk9dC56LGE9TWF0aC5jb3Mobikscj1NYXRoLnNpbihuKSxzPU1hdGguY29zKG8pLGw9TWF0aC5zaW4obyksYz1NYXRoLmNvcyhpKSxkPU1hdGguc2luKGkpO2lmKCJYWVoiPT09dC5vcmRlcil7Y29uc3QgdD1hKmMsbj1hKmQsbz1yKmMsaT1yKmQ7ZVswXT1zKmMsZVs0XT0tcypkLGVbOF09bCxlWzFdPW4rbypsLGVbNV09dC1pKmwsZVs5XT0tcipzLGVbMl09aS10KmwsZVs2XT1vK24qbCxlWzEwXT1hKnN9ZWxzZSBpZigiWVhaIj09PXQub3JkZXIpe2NvbnN0IHQ9cypjLG49cypkLG89bCpjLGk9bCpkO2VbMF09dCtpKnIsZVs0XT1vKnItbixlWzhdPWEqbCxlWzFdPWEqZCxlWzVdPWEqYyxlWzldPS1yLGVbMl09bipyLW8sZVs2XT1pK3QqcixlWzEwXT1hKnN9ZWxzZSBpZigiWlhZIj09PXQub3JkZXIpe2NvbnN0IHQ9cypjLG49cypkLG89bCpjLGk9bCpkO2VbMF09dC1pKnIsZVs0XT0tYSpkLGVbOF09bytuKnIsZVsxXT1uK28qcixlWzVdPWEqYyxlWzldPWktdCpyLGVbMl09LWEqbCxlWzZdPXIsZVsxMF09YSpzfWVsc2UgaWYoIlpZWCI9PT10Lm9yZGVyKXtjb25zdCB0PWEqYyxuPWEqZCxvPXIqYyxpPXIqZDtlWzBdPXMqYyxlWzRdPW8qbC1uLGVbOF09dCpsK2ksZVsxXT1zKmQsZVs1XT1pKmwrdCxlWzldPW4qbC1vLGVbMl09LWwsZVs2XT1yKnMsZVsxMF09YSpzfWVsc2UgaWYoIllaWCI9PT10Lm9yZGVyKXtjb25zdCB0PWEqcyxuPWEqbCxvPXIqcyxpPXIqbDtlWzBdPXMqYyxlWzRdPWktdCpkLGVbOF09bypkK24sZVsxXT1kLGVbNV09YSpjLGVbOV09LXIqYyxlWzJdPS1sKmMsZVs2XT1uKmQrbyxlWzEwXT10LWkqZH1lbHNlIGlmKCJYWlkiPT09dC5vcmRlcil7Y29uc3QgdD1hKnMsbj1hKmwsbz1yKnMsaT1yKmw7ZVswXT1zKmMsZVs0XT0tZCxlWzhdPWwqYyxlWzFdPXQqZCtpLGVbNV09YSpjLGVbOV09bipkLW8sZVsyXT1vKmQtbixlWzZdPXIqYyxlWzEwXT1pKmQrdH1yZXR1cm4gZVszXT0wLGVbN109MCxlWzExXT0wLGVbMTJdPTAsZVsxM109MCxlWzE0XT0wLGVbMTVdPTEsdGhpc31tYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbih0KXtyZXR1cm4gdGhpcy5jb21wb3NlKHJsdCx0LHNsdCl9bG9va0F0KHQsZSxuKXtjb25zdCBvPXRoaXMuZWxlbWVudHM7cmV0dXJuIGRsdC5zdWJWZWN0b3JzKHQsZSksMD09PWRsdC5sZW5ndGhTcSgpJiYoZGx0Lno9MSksZGx0Lm5vcm1hbGl6ZSgpLGxsdC5jcm9zc1ZlY3RvcnMobixkbHQpLDA9PT1sbHQubGVuZ3RoU3EoKSYmKDE9PT1NYXRoLmFicyhuLnopP2RsdC54Kz0xZS00OmRsdC56Kz0xZS00LGRsdC5ub3JtYWxpemUoKSxsbHQuY3Jvc3NWZWN0b3JzKG4sZGx0KSksbGx0Lm5vcm1hbGl6ZSgpLGNsdC5jcm9zc1ZlY3RvcnMoZGx0LGxsdCksb1swXT1sbHQueCxvWzRdPWNsdC54LG9bOF09ZGx0Lngsb1sxXT1sbHQueSxvWzVdPWNsdC55LG9bOV09ZGx0Lnksb1syXT1sbHQueixvWzZdPWNsdC56LG9bMTBdPWRsdC56LHRoaXN9bXVsdGlwbHkodCxlKXtyZXR1cm4gdm9pZCAwIT09ZT8oY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHkoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5tdWx0aXBseU1hdHJpY2VzKCBhLCBiICkgaW5zdGVhZC4iKSx0aGlzLm11bHRpcGx5TWF0cmljZXModCxlKSk6dGhpcy5tdWx0aXBseU1hdHJpY2VzKHRoaXMsdCl9cHJlbXVsdGlwbHkodCl7cmV0dXJuIHRoaXMubXVsdGlwbHlNYXRyaWNlcyh0LHRoaXMpfW11bHRpcGx5TWF0cmljZXModCxlKXtjb25zdCBuPXQuZWxlbWVudHMsbz1lLmVsZW1lbnRzLGk9dGhpcy5lbGVtZW50cyxhPW5bMF0scj1uWzRdLHM9bls4XSxsPW5bMTJdLGM9blsxXSxkPW5bNV0scD1uWzldLG09blsxM10sZj1uWzJdLHU9bls2XSxnPW5bMTBdLGg9blsxNF0sYj1uWzNdLHk9bls3XSxfPW5bMTFdLEM9blsxNV0sTT1vWzBdLHY9b1s0XSx4PW9bOF0sTz1vWzEyXSxQPW9bMV0sdz1vWzVdLGs9b1s5XSxTPW9bMTNdLEQ9b1syXSxSPW9bNl0sRT1vWzEwXSxBPW9bMTRdLFQ9b1szXSxOPW9bN10sej1vWzExXSxJPW9bMTVdO3JldHVybiBpWzBdPWEqTStyKlArcypEK2wqVCxpWzRdPWEqdityKncrcypSK2wqTixpWzhdPWEqeCtyKmsrcypFK2wqeixpWzEyXT1hKk8rcipTK3MqQStsKkksaVsxXT1jKk0rZCpQK3AqRCttKlQsaVs1XT1jKnYrZCp3K3AqUittKk4saVs5XT1jKngrZCprK3AqRSttKnosaVsxM109YypPK2QqUytwKkErbSpJLGlbMl09ZipNK3UqUCtnKkQraCpULGlbNl09Zip2K3UqdytnKlIraCpOLGlbMTBdPWYqeCt1KmsrZypFK2gqeixpWzE0XT1mKk8rdSpTK2cqQStoKkksaVszXT1iKk0reSpQK18qRCtDKlQsaVs3XT1iKnYreSp3K18qUitDKk4saVsxMV09Yip4K3kqaytfKkUrQyp6LGlbMTVdPWIqTyt5KlMrXypBK0MqSSx0aGlzfW11bHRpcGx5U2NhbGFyKHQpe2NvbnN0IGU9dGhpcy5lbGVtZW50cztyZXR1cm4gZVswXSo9dCxlWzRdKj10LGVbOF0qPXQsZVsxMl0qPXQsZVsxXSo9dCxlWzVdKj10LGVbOV0qPXQsZVsxM10qPXQsZVsyXSo9dCxlWzZdKj10LGVbMTBdKj10LGVbMTRdKj10LGVbM10qPXQsZVs3XSo9dCxlWzExXSo9dCxlWzE1XSo9dCx0aGlzfWRldGVybWluYW50KCl7Y29uc3QgdD10aGlzLmVsZW1lbnRzLGU9dFswXSxuPXRbNF0sbz10WzhdLGk9dFsxMl0sYT10WzFdLHI9dFs1XSxzPXRbOV0sbD10WzEzXSxjPXRbMl0sZD10WzZdLHA9dFsxMF0sbT10WzE0XTtyZXR1cm4gdFszXSooK2kqcypkLW8qbCpkLWkqcipwK24qbCpwK28qciptLW4qcyptKSt0WzddKigrZSpzKm0tZSpsKnAraSphKnAtbyphKm0rbypsKmMtaSpzKmMpK3RbMTFdKigrZSpsKmQtZSpyKm0taSphKmQrbiphKm0raSpyKmMtbipsKmMpK3RbMTVdKigtbypyKmMtZSpzKmQrZSpyKnArbyphKmQtbiphKnArbipzKmMpfXRyYW5zcG9zZSgpe2NvbnN0IHQ9dGhpcy5lbGVtZW50cztsZXQgZTtyZXR1cm4gZT10WzFdLHRbMV09dFs0XSx0WzRdPWUsZT10WzJdLHRbMl09dFs4XSx0WzhdPWUsZT10WzZdLHRbNl09dFs5XSx0WzldPWUsZT10WzNdLHRbM109dFsxMl0sdFsxMl09ZSxlPXRbN10sdFs3XT10WzEzXSx0WzEzXT1lLGU9dFsxMV0sdFsxMV09dFsxNF0sdFsxNF09ZSx0aGlzfXNldFBvc2l0aW9uKHQsZSxuKXtjb25zdCBvPXRoaXMuZWxlbWVudHM7cmV0dXJuIHQuaXNWZWN0b3IzPyhvWzEyXT10Lngsb1sxM109dC55LG9bMTRdPXQueik6KG9bMTJdPXQsb1sxM109ZSxvWzE0XT1uKSx0aGlzfWludmVydCgpe2NvbnN0IHQ9dGhpcy5lbGVtZW50cyxlPXRbMF0sbj10WzFdLG89dFsyXSxpPXRbM10sYT10WzRdLHI9dFs1XSxzPXRbNl0sbD10WzddLGM9dFs4XSxkPXRbOV0scD10WzEwXSxtPXRbMTFdLGY9dFsxMl0sdT10WzEzXSxnPXRbMTRdLGg9dFsxNV0sYj1kKmcqbC11KnAqbCt1KnMqbS1yKmcqbS1kKnMqaCtyKnAqaCx5PWYqcCpsLWMqZypsLWYqcyptK2EqZyptK2MqcypoLWEqcCpoLF89Yyp1KmwtZipkKmwrZipyKm0tYSp1Km0tYypyKmgrYSpkKmgsQz1mKmQqcy1jKnUqcy1mKnIqcCthKnUqcCtjKnIqZy1hKmQqZyxNPWUqYituKnkrbypfK2kqQztpZigwPT09TSlyZXR1cm4gdGhpcy5zZXQoMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCk7Y29uc3Qgdj0xL007cmV0dXJuIHRbMF09Yip2LHRbMV09KHUqcCppLWQqZyppLXUqbyptK24qZyptK2QqbypoLW4qcCpoKSp2LHRbMl09KHIqZyppLXUqcyppK3UqbypsLW4qZypsLXIqbypoK24qcypoKSp2LHRbM109KGQqcyppLXIqcCppLWQqbypsK24qcCpsK3IqbyptLW4qcyptKSp2LHRbNF09eSp2LHRbNV09KGMqZyppLWYqcCppK2YqbyptLWUqZyptLWMqbypoK2UqcCpoKSp2LHRbNl09KGYqcyppLWEqZyppLWYqbypsK2UqZypsK2EqbypoLWUqcypoKSp2LHRbN109KGEqcCppLWMqcyppK2MqbypsLWUqcCpsLWEqbyptK2UqcyptKSp2LHRbOF09Xyp2LHRbOV09KGYqZCppLWMqdSppLWYqbiptK2UqdSptK2MqbipoLWUqZCpoKSp2LHRbMTBdPShhKnUqaS1mKnIqaStmKm4qbC1lKnUqbC1hKm4qaCtlKnIqaCkqdix0WzExXT0oYypyKmktYSpkKmktYypuKmwrZSpkKmwrYSpuKm0tZSpyKm0pKnYsdFsxMl09Qyp2LHRbMTNdPShjKnUqby1mKmQqbytmKm4qcC1lKnUqcC1jKm4qZytlKmQqZykqdix0WzE0XT0oZipyKm8tYSp1Km8tZipuKnMrZSp1KnMrYSpuKmctZSpyKmcpKnYsdFsxNV09KGEqZCpvLWMqcipvK2MqbipzLWUqZCpzLWEqbipwK2UqcipwKSp2LHRoaXN9c2NhbGUodCl7Y29uc3QgZT10aGlzLmVsZW1lbnRzLG49dC54LG89dC55LGk9dC56O3JldHVybiBlWzBdKj1uLGVbNF0qPW8sZVs4XSo9aSxlWzFdKj1uLGVbNV0qPW8sZVs5XSo9aSxlWzJdKj1uLGVbNl0qPW8sZVsxMF0qPWksZVszXSo9bixlWzddKj1vLGVbMTFdKj1pLHRoaXN9Z2V0TWF4U2NhbGVPbkF4aXMoKXtjb25zdCB0PXRoaXMuZWxlbWVudHM7cmV0dXJuIE1hdGguc3FydChNYXRoLm1heCh0WzBdKnRbMF0rdFsxXSp0WzFdK3RbMl0qdFsyXSx0WzRdKnRbNF0rdFs1XSp0WzVdK3RbNl0qdFs2XSx0WzhdKnRbOF0rdFs5XSp0WzldK3RbMTBdKnRbMTBdKSl9bWFrZVRyYW5zbGF0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy5zZXQoMSwwLDAsdCwwLDEsMCxlLDAsMCwxLG4sMCwwLDAsMSksdGhpc31tYWtlUm90YXRpb25YKHQpe2NvbnN0IGU9TWF0aC5jb3ModCksbj1NYXRoLnNpbih0KTtyZXR1cm4gdGhpcy5zZXQoMSwwLDAsMCwwLGUsLW4sMCwwLG4sZSwwLDAsMCwwLDEpLHRoaXN9bWFrZVJvdGF0aW9uWSh0KXtjb25zdCBlPU1hdGguY29zKHQpLG49TWF0aC5zaW4odCk7cmV0dXJuIHRoaXMuc2V0KGUsMCxuLDAsMCwxLDAsMCwtbiwwLGUsMCwwLDAsMCwxKSx0aGlzfW1ha2VSb3RhdGlvbloodCl7Y29uc3QgZT1NYXRoLmNvcyh0KSxuPU1hdGguc2luKHQpO3JldHVybiB0aGlzLnNldChlLC1uLDAsMCxuLGUsMCwwLDAsMCwxLDAsMCwwLDAsMSksdGhpc31tYWtlUm90YXRpb25BeGlzKHQsZSl7Y29uc3Qgbj1NYXRoLmNvcyhlKSxvPU1hdGguc2luKGUpLGk9MS1uLGE9dC54LHI9dC55LHM9dC56LGw9aSphLGM9aSpyO3JldHVybiB0aGlzLnNldChsKmErbixsKnItbypzLGwqcytvKnIsMCxsKnIrbypzLGMqcituLGMqcy1vKmEsMCxsKnMtbypyLGMqcytvKmEsaSpzKnMrbiwwLDAsMCwwLDEpLHRoaXN9bWFrZVNjYWxlKHQsZSxuKXtyZXR1cm4gdGhpcy5zZXQodCwwLDAsMCwwLGUsMCwwLDAsMCxuLDAsMCwwLDAsMSksdGhpc31tYWtlU2hlYXIodCxlLG4sbyxpLGEpe3JldHVybiB0aGlzLnNldCgxLG4saSwwLHQsMSxhLDAsZSxvLDEsMCwwLDAsMCwxKSx0aGlzfWNvbXBvc2UodCxlLG4pe2NvbnN0IG89dGhpcy5lbGVtZW50cyxpPWUuX3gsYT1lLl95LHI9ZS5feixzPWUuX3csbD1pK2ksYz1hK2EsZD1yK3IscD1pKmwsbT1pKmMsZj1pKmQsdT1hKmMsZz1hKmQsaD1yKmQsYj1zKmwseT1zKmMsXz1zKmQsQz1uLngsTT1uLnksdj1uLno7cmV0dXJuIG9bMF09KDEtKHUraCkpKkMsb1sxXT0obStfKSpDLG9bMl09KGYteSkqQyxvWzNdPTAsb1s0XT0obS1fKSpNLG9bNV09KDEtKHAraCkpKk0sb1s2XT0oZytiKSpNLG9bN109MCxvWzhdPShmK3kpKnYsb1s5XT0oZy1iKSp2LG9bMTBdPSgxLShwK3UpKSp2LG9bMTFdPTAsb1sxMl09dC54LG9bMTNdPXQueSxvWzE0XT10Lnosb1sxNV09MSx0aGlzfWRlY29tcG9zZSh0LGUsbil7Y29uc3Qgbz10aGlzLmVsZW1lbnRzO2xldCBpPWlsdC5zZXQob1swXSxvWzFdLG9bMl0pLmxlbmd0aCgpO2NvbnN0IGE9aWx0LnNldChvWzRdLG9bNV0sb1s2XSkubGVuZ3RoKCkscj1pbHQuc2V0KG9bOF0sb1s5XSxvWzEwXSkubGVuZ3RoKCk7dGhpcy5kZXRlcm1pbmFudCgpPDAmJihpPS1pKSx0Lng9b1sxMl0sdC55PW9bMTNdLHQuej1vWzE0XSxhbHQuY29weSh0aGlzKTtjb25zdCBzPTEvaSxsPTEvYSxjPTEvcjtyZXR1cm4gYWx0LmVsZW1lbnRzWzBdKj1zLGFsdC5lbGVtZW50c1sxXSo9cyxhbHQuZWxlbWVudHNbMl0qPXMsYWx0LmVsZW1lbnRzWzRdKj1sLGFsdC5lbGVtZW50c1s1XSo9bCxhbHQuZWxlbWVudHNbNl0qPWwsYWx0LmVsZW1lbnRzWzhdKj1jLGFsdC5lbGVtZW50c1s5XSo9YyxhbHQuZWxlbWVudHNbMTBdKj1jLGUuc2V0RnJvbVJvdGF0aW9uTWF0cml4KGFsdCksbi54PWksbi55PWEsbi56PXIsdGhpc31tYWtlUGVyc3BlY3RpdmUodCxlLG4sbyxpLGEpe3ZvaWQgMD09PWEmJmNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLm1ha2VQZXJzcGVjdGl2ZSgpIGhhcyBiZWVuIHJlZGVmaW5lZCBhbmQgaGFzIGEgbmV3IHNpZ25hdHVyZS4gUGxlYXNlIGNoZWNrIHRoZSBkb2NzLiIpO2NvbnN0IHI9dGhpcy5lbGVtZW50cyxzPTIqaS8obi1vKSxsPShlK3QpLyhlLXQpLGM9KG4rbykvKG4tbyksZD0tKGEraSkvKGEtaSkscD0tMiphKmkvKGEtaSk7cmV0dXJuIHJbMF09MippLyhlLXQpLHJbNF09MCxyWzhdPWwsclsxMl09MCxyWzFdPTAscls1XT1zLHJbOV09YyxyWzEzXT0wLHJbMl09MCxyWzZdPTAsclsxMF09ZCxyWzE0XT1wLHJbM109MCxyWzddPTAsclsxMV09LTEsclsxNV09MCx0aGlzfW1ha2VPcnRob2dyYXBoaWModCxlLG4sbyxpLGEpe2NvbnN0IHI9dGhpcy5lbGVtZW50cyxzPTEvKGUtdCksbD0xLyhuLW8pLGM9MS8oYS1pKSxkPShlK3QpKnMscD0obitvKSpsLG09KGEraSkqYztyZXR1cm4gclswXT0yKnMscls0XT0wLHJbOF09MCxyWzEyXT0tZCxyWzFdPTAscls1XT0yKmwscls5XT0wLHJbMTNdPS1wLHJbMl09MCxyWzZdPTAsclsxMF09LTIqYyxyWzE0XT0tbSxyWzNdPTAscls3XT0wLHJbMTFdPTAsclsxNV09MSx0aGlzfWVxdWFscyh0KXtjb25zdCBlPXRoaXMuZWxlbWVudHMsbj10LmVsZW1lbnRzO2ZvcihsZXQgdD0wO3Q8MTY7dCsrKWlmKGVbdF0hPT1uW3RdKXJldHVybiExO3JldHVybiEwfWZyb21BcnJheSh0LGU9MCl7Zm9yKGxldCBuPTA7bjwxNjtuKyspdGhpcy5lbGVtZW50c1tuXT10W24rZV07cmV0dXJuIHRoaXN9dG9BcnJheSh0PVtdLGU9MCl7Y29uc3Qgbj10aGlzLmVsZW1lbnRzO3JldHVybiB0W2VdPW5bMF0sdFtlKzFdPW5bMV0sdFtlKzJdPW5bMl0sdFtlKzNdPW5bM10sdFtlKzRdPW5bNF0sdFtlKzVdPW5bNV0sdFtlKzZdPW5bNl0sdFtlKzddPW5bN10sdFtlKzhdPW5bOF0sdFtlKzldPW5bOV0sdFtlKzEwXT1uWzEwXSx0W2UrMTFdPW5bMTFdLHRbZSsxMl09blsxMl0sdFtlKzEzXT1uWzEzXSx0W2UrMTRdPW5bMTRdLHRbZSsxNV09blsxNV0sdH19b2x0LnByb3RvdHlwZS5pc01hdHJpeDQ9ITA7Y29uc3QgaWx0PW5ldyB3c3QsYWx0PW5ldyBvbHQscmx0PW5ldyB3c3QoMCwwLDApLHNsdD1uZXcgd3N0KDEsMSwxKSxsbHQ9bmV3IHdzdCxjbHQ9bmV3IHdzdCxkbHQ9bmV3IHdzdCxwbHQ9bmV3IG9sdCxtbHQ9bmV3IFBzdDtjbGFzcyBmbHR7Y29uc3RydWN0b3IodD0wLGU9MCxuPTAsbz1mbHQuRGVmYXVsdE9yZGVyKXt0aGlzLl94PXQsdGhpcy5feT1lLHRoaXMuX3o9bix0aGlzLl9vcmRlcj1vfWdldCB4KCl7cmV0dXJuIHRoaXMuX3h9c2V0IHgodCl7dGhpcy5feD10LHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKX1nZXQgeSgpe3JldHVybiB0aGlzLl95fXNldCB5KHQpe3RoaXMuX3k9dCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCl9Z2V0IHooKXtyZXR1cm4gdGhpcy5fen1zZXQgeih0KXt0aGlzLl96PXQsdGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpfWdldCBvcmRlcigpe3JldHVybiB0aGlzLl9vcmRlcn1zZXQgb3JkZXIodCl7dGhpcy5fb3JkZXI9dCx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCl9c2V0KHQsZSxuLG89dGhpcy5fb3JkZXIpe3JldHVybiB0aGlzLl94PXQsdGhpcy5feT1lLHRoaXMuX3o9bix0aGlzLl9vcmRlcj1vLHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKSx0aGlzfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMuX3gsdGhpcy5feSx0aGlzLl96LHRoaXMuX29yZGVyKX1jb3B5KHQpe3JldHVybiB0aGlzLl94PXQuX3gsdGhpcy5feT10Ll95LHRoaXMuX3o9dC5feix0aGlzLl9vcmRlcj10Ll9vcmRlcix0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tUm90YXRpb25NYXRyaXgodCxlPXRoaXMuX29yZGVyLG49ITApe2NvbnN0IG89dC5lbGVtZW50cyxpPW9bMF0sYT1vWzRdLHI9b1s4XSxzPW9bMV0sbD1vWzVdLGM9b1s5XSxkPW9bMl0scD1vWzZdLG09b1sxMF07c3dpdGNoKGUpe2Nhc2UiWFlaIjp0aGlzLl95PU1hdGguYXNpbihwc3QociwtMSwxKSksTWF0aC5hYnMocik8Ljk5OTk5OTk/KHRoaXMuX3g9TWF0aC5hdGFuMigtYyxtKSx0aGlzLl96PU1hdGguYXRhbjIoLWEsaSkpOih0aGlzLl94PU1hdGguYXRhbjIocCxsKSx0aGlzLl96PTApO2JyZWFrO2Nhc2UiWVhaIjp0aGlzLl94PU1hdGguYXNpbigtcHN0KGMsLTEsMSkpLE1hdGguYWJzKGMpPC45OTk5OTk5Pyh0aGlzLl95PU1hdGguYXRhbjIocixtKSx0aGlzLl96PU1hdGguYXRhbjIocyxsKSk6KHRoaXMuX3k9TWF0aC5hdGFuMigtZCxpKSx0aGlzLl96PTApO2JyZWFrO2Nhc2UiWlhZIjp0aGlzLl94PU1hdGguYXNpbihwc3QocCwtMSwxKSksTWF0aC5hYnMocCk8Ljk5OTk5OTk/KHRoaXMuX3k9TWF0aC5hdGFuMigtZCxtKSx0aGlzLl96PU1hdGguYXRhbjIoLWEsbCkpOih0aGlzLl95PTAsdGhpcy5fej1NYXRoLmF0YW4yKHMsaSkpO2JyZWFrO2Nhc2UiWllYIjp0aGlzLl95PU1hdGguYXNpbigtcHN0KGQsLTEsMSkpLE1hdGguYWJzKGQpPC45OTk5OTk5Pyh0aGlzLl94PU1hdGguYXRhbjIocCxtKSx0aGlzLl96PU1hdGguYXRhbjIocyxpKSk6KHRoaXMuX3g9MCx0aGlzLl96PU1hdGguYXRhbjIoLWEsbCkpO2JyZWFrO2Nhc2UiWVpYIjp0aGlzLl96PU1hdGguYXNpbihwc3QocywtMSwxKSksTWF0aC5hYnMocyk8Ljk5OTk5OTk/KHRoaXMuX3g9TWF0aC5hdGFuMigtYyxsKSx0aGlzLl95PU1hdGguYXRhbjIoLWQsaSkpOih0aGlzLl94PTAsdGhpcy5feT1NYXRoLmF0YW4yKHIsbSkpO2JyZWFrO2Nhc2UiWFpZIjp0aGlzLl96PU1hdGguYXNpbigtcHN0KGEsLTEsMSkpLE1hdGguYWJzKGEpPC45OTk5OTk5Pyh0aGlzLl94PU1hdGguYXRhbjIocCxsKSx0aGlzLl95PU1hdGguYXRhbjIocixpKSk6KHRoaXMuX3g9TWF0aC5hdGFuMigtYyxtKSx0aGlzLl95PTApO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS53YXJuKCJUSFJFRS5FdWxlcjogLnNldEZyb21Sb3RhdGlvbk1hdHJpeCgpIGVuY291bnRlcmVkIGFuIHVua25vd24gb3JkZXI6ICIrZSl9cmV0dXJuIHRoaXMuX29yZGVyPWUsITA9PT1uJiZ0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc31zZXRGcm9tUXVhdGVybmlvbih0LGUsbil7cmV0dXJuIHBsdC5tYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbih0KSx0aGlzLnNldEZyb21Sb3RhdGlvbk1hdHJpeChwbHQsZSxuKX1zZXRGcm9tVmVjdG9yMyh0LGU9dGhpcy5fb3JkZXIpe3JldHVybiB0aGlzLnNldCh0LngsdC55LHQueixlKX1yZW9yZGVyKHQpe3JldHVybiBtbHQuc2V0RnJvbUV1bGVyKHRoaXMpLHRoaXMuc2V0RnJvbVF1YXRlcm5pb24obWx0LHQpfWVxdWFscyh0KXtyZXR1cm4gdC5feD09PXRoaXMuX3gmJnQuX3k9PT10aGlzLl95JiZ0Ll96PT09dGhpcy5feiYmdC5fb3JkZXI9PT10aGlzLl9vcmRlcn1mcm9tQXJyYXkodCl7cmV0dXJuIHRoaXMuX3g9dFswXSx0aGlzLl95PXRbMV0sdGhpcy5fej10WzJdLHZvaWQgMCE9PXRbM10mJih0aGlzLl9vcmRlcj10WzNdKSx0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCksdGhpc310b0FycmF5KHQ9W10sZT0wKXtyZXR1cm4gdFtlXT10aGlzLl94LHRbZSsxXT10aGlzLl95LHRbZSsyXT10aGlzLl96LHRbZSszXT10aGlzLl9vcmRlcix0fXRvVmVjdG9yMyh0KXtyZXR1cm4gdD90LnNldCh0aGlzLl94LHRoaXMuX3ksdGhpcy5feik6bmV3IHdzdCh0aGlzLl94LHRoaXMuX3ksdGhpcy5feil9X29uQ2hhbmdlKHQpe3JldHVybiB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrPXQsdGhpc31fb25DaGFuZ2VDYWxsYmFjaygpe319Zmx0LnByb3RvdHlwZS5pc0V1bGVyPSEwLGZsdC5EZWZhdWx0T3JkZXI9IlhZWiIsZmx0LlJvdGF0aW9uT3JkZXJzPVsiWFlaIiwiWVpYIiwiWlhZIiwiWFpZIiwiWVhaIiwiWllYIl07Y2xhc3MgdWx0e2NvbnN0cnVjdG9yKCl7dGhpcy5tYXNrPTF9c2V0KHQpe3RoaXMubWFzaz0xPDx0fDB9ZW5hYmxlKHQpe3RoaXMubWFza3w9MTw8dHwwfWVuYWJsZUFsbCgpe3RoaXMubWFzaz0tMX10b2dnbGUodCl7dGhpcy5tYXNrXj0xPDx0fDB9ZGlzYWJsZSh0KXt0aGlzLm1hc2smPX4oMTw8dHwwKX1kaXNhYmxlQWxsKCl7dGhpcy5tYXNrPTB9dGVzdCh0KXtyZXR1cm4gMCE9KHRoaXMubWFzayZ0Lm1hc2spfX1sZXQgZ2x0PTA7Y29uc3QgaGx0PW5ldyB3c3QsYmx0PW5ldyBQc3QseWx0PW5ldyBvbHQsX2x0PW5ldyB3c3QsQ2x0PW5ldyB3c3QsTWx0PW5ldyB3c3Qsdmx0PW5ldyBQc3QseGx0PW5ldyB3c3QoMSwwLDApLE9sdD1uZXcgd3N0KDAsMSwwKSxQbHQ9bmV3IHdzdCgwLDAsMSksd2x0PXt0eXBlOiJhZGRlZCJ9LGtsdD17dHlwZToicmVtb3ZlZCJ9O2NsYXNzIFNsdCBleHRlbmRzIHJzdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImlkIix7dmFsdWU6Z2x0Kyt9KSx0aGlzLnV1aWQ9ZHN0KCksdGhpcy5uYW1lPSIiLHRoaXMudHlwZT0iT2JqZWN0M0QiLHRoaXMucGFyZW50PW51bGwsdGhpcy5jaGlsZHJlbj1bXSx0aGlzLnVwPVNsdC5EZWZhdWx0VXAuY2xvbmUoKTtjb25zdCB0PW5ldyB3c3QsZT1uZXcgZmx0LG49bmV3IFBzdCxvPW5ldyB3c3QoMSwxLDEpO2UuX29uQ2hhbmdlKChmdW5jdGlvbiBpKCl7bi5zZXRGcm9tRXVsZXIoZSwhMSl9KSksbi5fb25DaGFuZ2UoKGZ1bmN0aW9uIGEoKXtlLnNldEZyb21RdWF0ZXJuaW9uKG4sdm9pZCAwLCExKX0pKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0aGlzLHtwb3NpdGlvbjp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6dH0scm90YXRpb246e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOmV9LHF1YXRlcm5pb246e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOm59LHNjYWxlOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTpvfSxtb2RlbFZpZXdNYXRyaXg6e3ZhbHVlOm5ldyBvbHR9LG5vcm1hbE1hdHJpeDp7dmFsdWU6bmV3IGhzdH19KSx0aGlzLm1hdHJpeD1uZXcgb2x0LHRoaXMubWF0cml4V29ybGQ9bmV3IG9sdCx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9U2x0LkRlZmF1bHRNYXRyaXhBdXRvVXBkYXRlLHRoaXMubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMSx0aGlzLmxheWVycz1uZXcgdWx0LHRoaXMudmlzaWJsZT0hMCx0aGlzLmNhc3RTaGFkb3c9ITEsdGhpcy5yZWNlaXZlU2hhZG93PSExLHRoaXMuZnJ1c3R1bUN1bGxlZD0hMCx0aGlzLnJlbmRlck9yZGVyPTAsdGhpcy5hbmltYXRpb25zPVtdLHRoaXMudXNlckRhdGE9e319b25CZWZvcmVSZW5kZXIoKXt9b25BZnRlclJlbmRlcigpe31hcHBseU1hdHJpeDQodCl7dGhpcy5tYXRyaXhBdXRvVXBkYXRlJiZ0aGlzLnVwZGF0ZU1hdHJpeCgpLHRoaXMubWF0cml4LnByZW11bHRpcGx5KHQpLHRoaXMubWF0cml4LmRlY29tcG9zZSh0aGlzLnBvc2l0aW9uLHRoaXMucXVhdGVybmlvbix0aGlzLnNjYWxlKX1hcHBseVF1YXRlcm5pb24odCl7cmV0dXJuIHRoaXMucXVhdGVybmlvbi5wcmVtdWx0aXBseSh0KSx0aGlzfXNldFJvdGF0aW9uRnJvbUF4aXNBbmdsZSh0LGUpe3RoaXMucXVhdGVybmlvbi5zZXRGcm9tQXhpc0FuZ2xlKHQsZSl9c2V0Um90YXRpb25Gcm9tRXVsZXIodCl7dGhpcy5xdWF0ZXJuaW9uLnNldEZyb21FdWxlcih0LCEwKX1zZXRSb3RhdGlvbkZyb21NYXRyaXgodCl7dGhpcy5xdWF0ZXJuaW9uLnNldEZyb21Sb3RhdGlvbk1hdHJpeCh0KX1zZXRSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHQpe3RoaXMucXVhdGVybmlvbi5jb3B5KHQpfXJvdGF0ZU9uQXhpcyh0LGUpe3JldHVybiBibHQuc2V0RnJvbUF4aXNBbmdsZSh0LGUpLHRoaXMucXVhdGVybmlvbi5tdWx0aXBseShibHQpLHRoaXN9cm90YXRlT25Xb3JsZEF4aXModCxlKXtyZXR1cm4gYmx0LnNldEZyb21BeGlzQW5nbGUodCxlKSx0aGlzLnF1YXRlcm5pb24ucHJlbXVsdGlwbHkoYmx0KSx0aGlzfXJvdGF0ZVgodCl7cmV0dXJuIHRoaXMucm90YXRlT25BeGlzKHhsdCx0KX1yb3RhdGVZKHQpe3JldHVybiB0aGlzLnJvdGF0ZU9uQXhpcyhPbHQsdCl9cm90YXRlWih0KXtyZXR1cm4gdGhpcy5yb3RhdGVPbkF4aXMoUGx0LHQpfXRyYW5zbGF0ZU9uQXhpcyh0LGUpe3JldHVybiBobHQuY29weSh0KS5hcHBseVF1YXRlcm5pb24odGhpcy5xdWF0ZXJuaW9uKSx0aGlzLnBvc2l0aW9uLmFkZChobHQubXVsdGlwbHlTY2FsYXIoZSkpLHRoaXN9dHJhbnNsYXRlWCh0KXtyZXR1cm4gdGhpcy50cmFuc2xhdGVPbkF4aXMoeGx0LHQpfXRyYW5zbGF0ZVkodCl7cmV0dXJuIHRoaXMudHJhbnNsYXRlT25BeGlzKE9sdCx0KX10cmFuc2xhdGVaKHQpe3JldHVybiB0aGlzLnRyYW5zbGF0ZU9uQXhpcyhQbHQsdCl9bG9jYWxUb1dvcmxkKHQpe3JldHVybiB0LmFwcGx5TWF0cml4NCh0aGlzLm1hdHJpeFdvcmxkKX13b3JsZFRvTG9jYWwodCl7cmV0dXJuIHQuYXBwbHlNYXRyaXg0KHlsdC5jb3B5KHRoaXMubWF0cml4V29ybGQpLmludmVydCgpKX1sb29rQXQodCxlLG4pe3QuaXNWZWN0b3IzP19sdC5jb3B5KHQpOl9sdC5zZXQodCxlLG4pO2NvbnN0IG89dGhpcy5wYXJlbnQ7dGhpcy51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSksQ2x0LnNldEZyb21NYXRyaXhQb3NpdGlvbih0aGlzLm1hdHJpeFdvcmxkKSx0aGlzLmlzQ2FtZXJhfHx0aGlzLmlzTGlnaHQ/eWx0Lmxvb2tBdChDbHQsX2x0LHRoaXMudXApOnlsdC5sb29rQXQoX2x0LENsdCx0aGlzLnVwKSx0aGlzLnF1YXRlcm5pb24uc2V0RnJvbVJvdGF0aW9uTWF0cml4KHlsdCksbyYmKHlsdC5leHRyYWN0Um90YXRpb24oby5tYXRyaXhXb3JsZCksYmx0LnNldEZyb21Sb3RhdGlvbk1hdHJpeCh5bHQpLHRoaXMucXVhdGVybmlvbi5wcmVtdWx0aXBseShibHQuaW52ZXJ0KCkpKX1hZGQodCl7aWYoYXJndW1lbnRzLmxlbmd0aD4xKXtmb3IobGV0IHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXRoaXMuYWRkKGFyZ3VtZW50c1t0XSk7cmV0dXJuIHRoaXN9cmV0dXJuIHQ9PT10aGlzPyhjb25zb2xlLmVycm9yKCJUSFJFRS5PYmplY3QzRC5hZGQ6IG9iamVjdCBjYW4ndCBiZSBhZGRlZCBhcyBhIGNoaWxkIG9mIGl0c2VsZi4iLHQpLHRoaXMpOih0JiZ0LmlzT2JqZWN0M0Q/KG51bGwhPT10LnBhcmVudCYmdC5wYXJlbnQucmVtb3ZlKHQpLHQucGFyZW50PXRoaXMsdGhpcy5jaGlsZHJlbi5wdXNoKHQpLHQuZGlzcGF0Y2hFdmVudCh3bHQpKTpjb25zb2xlLmVycm9yKCJUSFJFRS5PYmplY3QzRC5hZGQ6IG9iamVjdCBub3QgYW4gaW5zdGFuY2Ugb2YgVEhSRUUuT2JqZWN0M0QuIix0KSx0aGlzKX1yZW1vdmUodCl7aWYoYXJndW1lbnRzLmxlbmd0aD4xKXtmb3IobGV0IHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXRoaXMucmVtb3ZlKGFyZ3VtZW50c1t0XSk7cmV0dXJuIHRoaXN9Y29uc3QgZT10aGlzLmNoaWxkcmVuLmluZGV4T2YodCk7cmV0dXJuLTEhPT1lJiYodC5wYXJlbnQ9bnVsbCx0aGlzLmNoaWxkcmVuLnNwbGljZShlLDEpLHQuZGlzcGF0Y2hFdmVudChrbHQpKSx0aGlzfXJlbW92ZUZyb21QYXJlbnQoKXtjb25zdCB0PXRoaXMucGFyZW50O3JldHVybiBudWxsIT09dCYmdC5yZW1vdmUodGhpcyksdGhpc31jbGVhcigpe2ZvcihsZXQgdD0wO3Q8dGhpcy5jaGlsZHJlbi5sZW5ndGg7dCsrKXtjb25zdCBlPXRoaXMuY2hpbGRyZW5bdF07ZS5wYXJlbnQ9bnVsbCxlLmRpc3BhdGNoRXZlbnQoa2x0KX1yZXR1cm4gdGhpcy5jaGlsZHJlbi5sZW5ndGg9MCx0aGlzfWF0dGFjaCh0KXtyZXR1cm4gdGhpcy51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSkseWx0LmNvcHkodGhpcy5tYXRyaXhXb3JsZCkuaW52ZXJ0KCksbnVsbCE9PXQucGFyZW50JiYodC5wYXJlbnQudXBkYXRlV29ybGRNYXRyaXgoITAsITEpLHlsdC5tdWx0aXBseSh0LnBhcmVudC5tYXRyaXhXb3JsZCkpLHQuYXBwbHlNYXRyaXg0KHlsdCksdGhpcy5hZGQodCksdC51cGRhdGVXb3JsZE1hdHJpeCghMSwhMCksdGhpc31nZXRPYmplY3RCeUlkKHQpe3JldHVybiB0aGlzLmdldE9iamVjdEJ5UHJvcGVydHkoImlkIix0KX1nZXRPYmplY3RCeU5hbWUodCl7cmV0dXJuIHRoaXMuZ2V0T2JqZWN0QnlQcm9wZXJ0eSgibmFtZSIsdCl9Z2V0T2JqZWN0QnlQcm9wZXJ0eSh0LGUpe2lmKHRoaXNbdF09PT1lKXJldHVybiB0aGlzO2ZvcihsZXQgbj0wLG89dGhpcy5jaGlsZHJlbi5sZW5ndGg7bjxvO24rKyl7Y29uc3Qgbz10aGlzLmNoaWxkcmVuW25dLmdldE9iamVjdEJ5UHJvcGVydHkodCxlKTtpZih2b2lkIDAhPT1vKXJldHVybiBvfX1nZXRXb3JsZFBvc2l0aW9uKHQpe3JldHVybiB0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKSx0LnNldEZyb21NYXRyaXhQb3NpdGlvbih0aGlzLm1hdHJpeFdvcmxkKX1nZXRXb3JsZFF1YXRlcm5pb24odCl7cmV0dXJuIHRoaXMudXBkYXRlV29ybGRNYXRyaXgoITAsITEpLHRoaXMubWF0cml4V29ybGQuZGVjb21wb3NlKENsdCx0LE1sdCksdH1nZXRXb3JsZFNjYWxlKHQpe3JldHVybiB0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKSx0aGlzLm1hdHJpeFdvcmxkLmRlY29tcG9zZShDbHQsdmx0LHQpLHR9Z2V0V29ybGREaXJlY3Rpb24odCl7dGhpcy51cGRhdGVXb3JsZE1hdHJpeCghMCwhMSk7Y29uc3QgZT10aGlzLm1hdHJpeFdvcmxkLmVsZW1lbnRzO3JldHVybiB0LnNldChlWzhdLGVbOV0sZVsxMF0pLm5vcm1hbGl6ZSgpfXJheWNhc3QoKXt9dHJhdmVyc2UodCl7dCh0aGlzKTtjb25zdCBlPXRoaXMuY2hpbGRyZW47Zm9yKGxldCBuPTAsbz1lLmxlbmd0aDtuPG87bisrKWVbbl0udHJhdmVyc2UodCl9dHJhdmVyc2VWaXNpYmxlKHQpe2lmKCExPT09dGhpcy52aXNpYmxlKXJldHVybjt0KHRoaXMpO2NvbnN0IGU9dGhpcy5jaGlsZHJlbjtmb3IobGV0IG49MCxvPWUubGVuZ3RoO248bztuKyspZVtuXS50cmF2ZXJzZVZpc2libGUodCl9dHJhdmVyc2VBbmNlc3RvcnModCl7Y29uc3QgZT10aGlzLnBhcmVudDtudWxsIT09ZSYmKHQoZSksZS50cmF2ZXJzZUFuY2VzdG9ycyh0KSl9dXBkYXRlTWF0cml4KCl7dGhpcy5tYXRyaXguY29tcG9zZSh0aGlzLnBvc2l0aW9uLHRoaXMucXVhdGVybmlvbix0aGlzLnNjYWxlKSx0aGlzLm1hdHJpeFdvcmxkTmVlZHNVcGRhdGU9ITB9dXBkYXRlTWF0cml4V29ybGQodCl7dGhpcy5tYXRyaXhBdXRvVXBkYXRlJiZ0aGlzLnVwZGF0ZU1hdHJpeCgpLCh0aGlzLm1hdHJpeFdvcmxkTmVlZHNVcGRhdGV8fHQpJiYobnVsbD09PXRoaXMucGFyZW50P3RoaXMubWF0cml4V29ybGQuY29weSh0aGlzLm1hdHJpeCk6dGhpcy5tYXRyaXhXb3JsZC5tdWx0aXBseU1hdHJpY2VzKHRoaXMucGFyZW50Lm1hdHJpeFdvcmxkLHRoaXMubWF0cml4KSx0aGlzLm1hdHJpeFdvcmxkTmVlZHNVcGRhdGU9ITEsdD0hMCk7Y29uc3QgZT10aGlzLmNoaWxkcmVuO2ZvcihsZXQgbj0wLG89ZS5sZW5ndGg7bjxvO24rKyllW25dLnVwZGF0ZU1hdHJpeFdvcmxkKHQpfXVwZGF0ZVdvcmxkTWF0cml4KHQsZSl7Y29uc3Qgbj10aGlzLnBhcmVudDtpZighMD09PXQmJm51bGwhPT1uJiZuLnVwZGF0ZVdvcmxkTWF0cml4KCEwLCExKSx0aGlzLm1hdHJpeEF1dG9VcGRhdGUmJnRoaXMudXBkYXRlTWF0cml4KCksbnVsbD09PXRoaXMucGFyZW50P3RoaXMubWF0cml4V29ybGQuY29weSh0aGlzLm1hdHJpeCk6dGhpcy5tYXRyaXhXb3JsZC5tdWx0aXBseU1hdHJpY2VzKHRoaXMucGFyZW50Lm1hdHJpeFdvcmxkLHRoaXMubWF0cml4KSwhMD09PWUpe2NvbnN0IHQ9dGhpcy5jaGlsZHJlbjtmb3IobGV0IGU9MCxuPXQubGVuZ3RoO2U8bjtlKyspdFtlXS51cGRhdGVXb3JsZE1hdHJpeCghMSwhMCl9fXRvSlNPTih0KXtjb25zdCBlPXZvaWQgMD09PXR8fCJzdHJpbmciPT10eXBlb2YgdCxuPXt9O2UmJih0PXtnZW9tZXRyaWVzOnt9LG1hdGVyaWFsczp7fSx0ZXh0dXJlczp7fSxpbWFnZXM6e30sc2hhcGVzOnt9LHNrZWxldG9uczp7fSxhbmltYXRpb25zOnt9fSxuLm1ldGFkYXRhPXt2ZXJzaW9uOjQuNSx0eXBlOiJPYmplY3QiLGdlbmVyYXRvcjoiT2JqZWN0M0QudG9KU09OIn0pO2NvbnN0IG89e307ZnVuY3Rpb24gaShlLG4pe3JldHVybiB2b2lkIDA9PT1lW24udXVpZF0mJihlW24udXVpZF09bi50b0pTT04odCkpLG4udXVpZH1pZihvLnV1aWQ9dGhpcy51dWlkLG8udHlwZT10aGlzLnR5cGUsIiIhPT10aGlzLm5hbWUmJihvLm5hbWU9dGhpcy5uYW1lKSwhMD09PXRoaXMuY2FzdFNoYWRvdyYmKG8uY2FzdFNoYWRvdz0hMCksITA9PT10aGlzLnJlY2VpdmVTaGFkb3cmJihvLnJlY2VpdmVTaGFkb3c9ITApLCExPT09dGhpcy52aXNpYmxlJiYoby52aXNpYmxlPSExKSwhMT09PXRoaXMuZnJ1c3R1bUN1bGxlZCYmKG8uZnJ1c3R1bUN1bGxlZD0hMSksMCE9PXRoaXMucmVuZGVyT3JkZXImJihvLnJlbmRlck9yZGVyPXRoaXMucmVuZGVyT3JkZXIpLCJ7fSIhPT1KU09OLnN0cmluZ2lmeSh0aGlzLnVzZXJEYXRhKSYmKG8udXNlckRhdGE9dGhpcy51c2VyRGF0YSksby5sYXllcnM9dGhpcy5sYXllcnMubWFzayxvLm1hdHJpeD10aGlzLm1hdHJpeC50b0FycmF5KCksITE9PT10aGlzLm1hdHJpeEF1dG9VcGRhdGUmJihvLm1hdHJpeEF1dG9VcGRhdGU9ITEpLHRoaXMuaXNJbnN0YW5jZWRNZXNoJiYoby50eXBlPSJJbnN0YW5jZWRNZXNoIixvLmNvdW50PXRoaXMuY291bnQsby5pbnN0YW5jZU1hdHJpeD10aGlzLmluc3RhbmNlTWF0cml4LnRvSlNPTigpLG51bGwhPT10aGlzLmluc3RhbmNlQ29sb3ImJihvLmluc3RhbmNlQ29sb3I9dGhpcy5pbnN0YW5jZUNvbG9yLnRvSlNPTigpKSksdGhpcy5pc1NjZW5lKXRoaXMuYmFja2dyb3VuZCYmKHRoaXMuYmFja2dyb3VuZC5pc0NvbG9yP28uYmFja2dyb3VuZD10aGlzLmJhY2tncm91bmQudG9KU09OKCk6dGhpcy5iYWNrZ3JvdW5kLmlzVGV4dHVyZSYmKG8uYmFja2dyb3VuZD10aGlzLmJhY2tncm91bmQudG9KU09OKHQpLnV1aWQpKSx0aGlzLmVudmlyb25tZW50JiZ0aGlzLmVudmlyb25tZW50LmlzVGV4dHVyZSYmKG8uZW52aXJvbm1lbnQ9dGhpcy5lbnZpcm9ubWVudC50b0pTT04odCkudXVpZCk7ZWxzZSBpZih0aGlzLmlzTWVzaHx8dGhpcy5pc0xpbmV8fHRoaXMuaXNQb2ludHMpe28uZ2VvbWV0cnk9aSh0Lmdlb21ldHJpZXMsdGhpcy5nZW9tZXRyeSk7Y29uc3QgZT10aGlzLmdlb21ldHJ5LnBhcmFtZXRlcnM7aWYodm9pZCAwIT09ZSYmdm9pZCAwIT09ZS5zaGFwZXMpe2NvbnN0IG49ZS5zaGFwZXM7aWYoQXJyYXkuaXNBcnJheShuKSlmb3IobGV0IGU9MCxvPW4ubGVuZ3RoO2U8bztlKyspe2kodC5zaGFwZXMsbltlXSl9ZWxzZSBpKHQuc2hhcGVzLG4pfX1pZih0aGlzLmlzU2tpbm5lZE1lc2gmJihvLmJpbmRNb2RlPXRoaXMuYmluZE1vZGUsby5iaW5kTWF0cml4PXRoaXMuYmluZE1hdHJpeC50b0FycmF5KCksdm9pZCAwIT09dGhpcy5za2VsZXRvbiYmKGkodC5za2VsZXRvbnMsdGhpcy5za2VsZXRvbiksby5za2VsZXRvbj10aGlzLnNrZWxldG9uLnV1aWQpKSx2b2lkIDAhPT10aGlzLm1hdGVyaWFsKWlmKEFycmF5LmlzQXJyYXkodGhpcy5tYXRlcmlhbCkpe2NvbnN0IGU9W107Zm9yKGxldCBuPTAsbz10aGlzLm1hdGVyaWFsLmxlbmd0aDtuPG87bisrKWUucHVzaChpKHQubWF0ZXJpYWxzLHRoaXMubWF0ZXJpYWxbbl0pKTtvLm1hdGVyaWFsPWV9ZWxzZSBvLm1hdGVyaWFsPWkodC5tYXRlcmlhbHMsdGhpcy5tYXRlcmlhbCk7aWYodGhpcy5jaGlsZHJlbi5sZW5ndGg+MCl7by5jaGlsZHJlbj1bXTtmb3IobGV0IGU9MDtlPHRoaXMuY2hpbGRyZW4ubGVuZ3RoO2UrKylvLmNoaWxkcmVuLnB1c2godGhpcy5jaGlsZHJlbltlXS50b0pTT04odCkub2JqZWN0KX1pZih0aGlzLmFuaW1hdGlvbnMubGVuZ3RoPjApe28uYW5pbWF0aW9ucz1bXTtmb3IobGV0IGU9MDtlPHRoaXMuYW5pbWF0aW9ucy5sZW5ndGg7ZSsrKXtvLmFuaW1hdGlvbnMucHVzaChpKHQuYW5pbWF0aW9ucyx0aGlzLmFuaW1hdGlvbnNbZV0pKX19aWYoZSl7Y29uc3QgZT1hKHQuZ2VvbWV0cmllcyksbz1hKHQubWF0ZXJpYWxzKSxpPWEodC50ZXh0dXJlcykscj1hKHQuaW1hZ2VzKSxzPWEodC5zaGFwZXMpLGw9YSh0LnNrZWxldG9ucyksYz1hKHQuYW5pbWF0aW9ucyk7ZS5sZW5ndGg+MCYmKG4uZ2VvbWV0cmllcz1lKSxvLmxlbmd0aD4wJiYobi5tYXRlcmlhbHM9byksaS5sZW5ndGg+MCYmKG4udGV4dHVyZXM9aSksci5sZW5ndGg+MCYmKG4uaW1hZ2VzPXIpLHMubGVuZ3RoPjAmJihuLnNoYXBlcz1zKSxsLmxlbmd0aD4wJiYobi5za2VsZXRvbnM9bCksYy5sZW5ndGg+MCYmKG4uYW5pbWF0aW9ucz1jKX1yZXR1cm4gbi5vYmplY3Q9byxuO2Z1bmN0aW9uIGEodCl7Y29uc3QgZT1bXTtmb3IoY29uc3QgbiBpbiB0KXtjb25zdCBvPXRbbl07ZGVsZXRlIG8ubWV0YWRhdGEsZS5wdXNoKG8pfXJldHVybiBlfX1jbG9uZSh0KXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyx0KX1jb3B5KHQsZT0hMCl7aWYodGhpcy5uYW1lPXQubmFtZSx0aGlzLnVwLmNvcHkodC51cCksdGhpcy5wb3NpdGlvbi5jb3B5KHQucG9zaXRpb24pLHRoaXMucm90YXRpb24ub3JkZXI9dC5yb3RhdGlvbi5vcmRlcix0aGlzLnF1YXRlcm5pb24uY29weSh0LnF1YXRlcm5pb24pLHRoaXMuc2NhbGUuY29weSh0LnNjYWxlKSx0aGlzLm1hdHJpeC5jb3B5KHQubWF0cml4KSx0aGlzLm1hdHJpeFdvcmxkLmNvcHkodC5tYXRyaXhXb3JsZCksdGhpcy5tYXRyaXhBdXRvVXBkYXRlPXQubWF0cml4QXV0b1VwZGF0ZSx0aGlzLm1hdHJpeFdvcmxkTmVlZHNVcGRhdGU9dC5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlLHRoaXMubGF5ZXJzLm1hc2s9dC5sYXllcnMubWFzayx0aGlzLnZpc2libGU9dC52aXNpYmxlLHRoaXMuY2FzdFNoYWRvdz10LmNhc3RTaGFkb3csdGhpcy5yZWNlaXZlU2hhZG93PXQucmVjZWl2ZVNoYWRvdyx0aGlzLmZydXN0dW1DdWxsZWQ9dC5mcnVzdHVtQ3VsbGVkLHRoaXMucmVuZGVyT3JkZXI9dC5yZW5kZXJPcmRlcix0aGlzLnVzZXJEYXRhPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodC51c2VyRGF0YSkpLCEwPT09ZSlmb3IobGV0IGU9MDtlPHQuY2hpbGRyZW4ubGVuZ3RoO2UrKyl7dGhpcy5hZGQodC5jaGlsZHJlbltlXS5jbG9uZSgpKX1yZXR1cm4gdGhpc319U2x0LkRlZmF1bHRVcD1uZXcgd3N0KDAsMSwwKSxTbHQuRGVmYXVsdE1hdHJpeEF1dG9VcGRhdGU9ITAsU2x0LnByb3RvdHlwZS5pc09iamVjdDNEPSEwO2NvbnN0IERsdD1uZXcgd3N0LFJsdD1uZXcgd3N0LEVsdD1uZXcgd3N0LEFsdD1uZXcgd3N0LFRsdD1uZXcgd3N0LE5sdD1uZXcgd3N0LHpsdD1uZXcgd3N0LElsdD1uZXcgd3N0LEhsdD1uZXcgd3N0LEZsdD1uZXcgd3N0O2NsYXNzIExsdHtjb25zdHJ1Y3Rvcih0PW5ldyB3c3QsZT1uZXcgd3N0LG49bmV3IHdzdCl7dGhpcy5hPXQsdGhpcy5iPWUsdGhpcy5jPW59c3RhdGljIGdldE5vcm1hbCh0LGUsbixvKXtvLnN1YlZlY3RvcnMobixlKSxEbHQuc3ViVmVjdG9ycyh0LGUpLG8uY3Jvc3MoRGx0KTtjb25zdCBpPW8ubGVuZ3RoU3EoKTtyZXR1cm4gaT4wP28ubXVsdGlwbHlTY2FsYXIoMS9NYXRoLnNxcnQoaSkpOm8uc2V0KDAsMCwwKX1zdGF0aWMgZ2V0QmFyeWNvb3JkKHQsZSxuLG8saSl7RGx0LnN1YlZlY3RvcnMobyxlKSxSbHQuc3ViVmVjdG9ycyhuLGUpLEVsdC5zdWJWZWN0b3JzKHQsZSk7Y29uc3QgYT1EbHQuZG90KERsdCkscj1EbHQuZG90KFJsdCkscz1EbHQuZG90KEVsdCksbD1SbHQuZG90KFJsdCksYz1SbHQuZG90KEVsdCksZD1hKmwtcipyO2lmKDA9PT1kKXJldHVybiBpLnNldCgtMiwtMSwtMSk7Y29uc3QgcD0xL2QsbT0obCpzLXIqYykqcCxmPShhKmMtcipzKSpwO3JldHVybiBpLnNldCgxLW0tZixmLG0pfXN0YXRpYyBjb250YWluc1BvaW50KHQsZSxuLG8pe3JldHVybiB0aGlzLmdldEJhcnljb29yZCh0LGUsbixvLEFsdCksQWx0Lng+PTAmJkFsdC55Pj0wJiZBbHQueCtBbHQueTw9MX1zdGF0aWMgZ2V0VVYodCxlLG4sbyxpLGEscixzKXtyZXR1cm4gdGhpcy5nZXRCYXJ5Y29vcmQodCxlLG4sbyxBbHQpLHMuc2V0KDAsMCkscy5hZGRTY2FsZWRWZWN0b3IoaSxBbHQueCkscy5hZGRTY2FsZWRWZWN0b3IoYSxBbHQueSkscy5hZGRTY2FsZWRWZWN0b3IocixBbHQueiksc31zdGF0aWMgaXNGcm9udEZhY2luZyh0LGUsbixvKXtyZXR1cm4gRGx0LnN1YlZlY3RvcnMobixlKSxSbHQuc3ViVmVjdG9ycyh0LGUpLERsdC5jcm9zcyhSbHQpLmRvdChvKTwwfXNldCh0LGUsbil7cmV0dXJuIHRoaXMuYS5jb3B5KHQpLHRoaXMuYi5jb3B5KGUpLHRoaXMuYy5jb3B5KG4pLHRoaXN9c2V0RnJvbVBvaW50c0FuZEluZGljZXModCxlLG4sbyl7cmV0dXJuIHRoaXMuYS5jb3B5KHRbZV0pLHRoaXMuYi5jb3B5KHRbbl0pLHRoaXMuYy5jb3B5KHRbb10pLHRoaXN9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9Y29weSh0KXtyZXR1cm4gdGhpcy5hLmNvcHkodC5hKSx0aGlzLmIuY29weSh0LmIpLHRoaXMuYy5jb3B5KHQuYyksdGhpc31nZXRBcmVhKCl7cmV0dXJuIERsdC5zdWJWZWN0b3JzKHRoaXMuYyx0aGlzLmIpLFJsdC5zdWJWZWN0b3JzKHRoaXMuYSx0aGlzLmIpLC41KkRsdC5jcm9zcyhSbHQpLmxlbmd0aCgpfWdldE1pZHBvaW50KHQpe3JldHVybiB0LmFkZFZlY3RvcnModGhpcy5hLHRoaXMuYikuYWRkKHRoaXMuYykubXVsdGlwbHlTY2FsYXIoMS8zKX1nZXROb3JtYWwodCl7cmV0dXJuIExsdC5nZXROb3JtYWwodGhpcy5hLHRoaXMuYix0aGlzLmMsdCl9Z2V0UGxhbmUodCl7cmV0dXJuIHQuc2V0RnJvbUNvcGxhbmFyUG9pbnRzKHRoaXMuYSx0aGlzLmIsdGhpcy5jKX1nZXRCYXJ5Y29vcmQodCxlKXtyZXR1cm4gTGx0LmdldEJhcnljb29yZCh0LHRoaXMuYSx0aGlzLmIsdGhpcy5jLGUpfWdldFVWKHQsZSxuLG8saSl7cmV0dXJuIExsdC5nZXRVVih0LHRoaXMuYSx0aGlzLmIsdGhpcy5jLGUsbixvLGkpfWNvbnRhaW5zUG9pbnQodCl7cmV0dXJuIExsdC5jb250YWluc1BvaW50KHQsdGhpcy5hLHRoaXMuYix0aGlzLmMpfWlzRnJvbnRGYWNpbmcodCl7cmV0dXJuIExsdC5pc0Zyb250RmFjaW5nKHRoaXMuYSx0aGlzLmIsdGhpcy5jLHQpfWludGVyc2VjdHNCb3godCl7cmV0dXJuIHQuaW50ZXJzZWN0c1RyaWFuZ2xlKHRoaXMpfWNsb3Nlc3RQb2ludFRvUG9pbnQodCxlKXtjb25zdCBuPXRoaXMuYSxvPXRoaXMuYixpPXRoaXMuYztsZXQgYSxyO1RsdC5zdWJWZWN0b3JzKG8sbiksTmx0LnN1YlZlY3RvcnMoaSxuKSxJbHQuc3ViVmVjdG9ycyh0LG4pO2NvbnN0IHM9VGx0LmRvdChJbHQpLGw9Tmx0LmRvdChJbHQpO2lmKHM8PTAmJmw8PTApcmV0dXJuIGUuY29weShuKTtIbHQuc3ViVmVjdG9ycyh0LG8pO2NvbnN0IGM9VGx0LmRvdChIbHQpLGQ9Tmx0LmRvdChIbHQpO2lmKGM+PTAmJmQ8PWMpcmV0dXJuIGUuY29weShvKTtjb25zdCBwPXMqZC1jKmw7aWYocDw9MCYmcz49MCYmYzw9MClyZXR1cm4gYT1zLyhzLWMpLGUuY29weShuKS5hZGRTY2FsZWRWZWN0b3IoVGx0LGEpO0ZsdC5zdWJWZWN0b3JzKHQsaSk7Y29uc3QgbT1UbHQuZG90KEZsdCksZj1ObHQuZG90KEZsdCk7aWYoZj49MCYmbTw9ZilyZXR1cm4gZS5jb3B5KGkpO2NvbnN0IHU9bSpsLXMqZjtpZih1PD0wJiZsPj0wJiZmPD0wKXJldHVybiByPWwvKGwtZiksZS5jb3B5KG4pLmFkZFNjYWxlZFZlY3RvcihObHQscik7Y29uc3QgZz1jKmYtbSpkO2lmKGc8PTAmJmQtYz49MCYmbS1mPj0wKXJldHVybiB6bHQuc3ViVmVjdG9ycyhpLG8pLHI9KGQtYykvKGQtYysobS1mKSksZS5jb3B5KG8pLmFkZFNjYWxlZFZlY3Rvcih6bHQscik7Y29uc3QgaD0xLyhnK3UrcCk7cmV0dXJuIGE9dSpoLHI9cCpoLGUuY29weShuKS5hZGRTY2FsZWRWZWN0b3IoVGx0LGEpLmFkZFNjYWxlZFZlY3RvcihObHQscil9ZXF1YWxzKHQpe3JldHVybiB0LmEuZXF1YWxzKHRoaXMuYSkmJnQuYi5lcXVhbHModGhpcy5iKSYmdC5jLmVxdWFscyh0aGlzLmMpfX1sZXQgQmx0PTA7Y2xhc3MgVmx0IGV4dGVuZHMgcnN0e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiaWQiLHt2YWx1ZTpCbHQrK30pLHRoaXMudXVpZD1kc3QoKSx0aGlzLm5hbWU9IiIsdGhpcy50eXBlPSJNYXRlcmlhbCIsdGhpcy5mb2c9ITAsdGhpcy5ibGVuZGluZz0xLHRoaXMuc2lkZT0wLHRoaXMudmVydGV4Q29sb3JzPSExLHRoaXMub3BhY2l0eT0xLHRoaXMudHJhbnNwYXJlbnQ9ITEsdGhpcy5ibGVuZFNyYz0yMDQsdGhpcy5ibGVuZERzdD0yMDUsdGhpcy5ibGVuZEVxdWF0aW9uPVBydCx0aGlzLmJsZW5kU3JjQWxwaGE9bnVsbCx0aGlzLmJsZW5kRHN0QWxwaGE9bnVsbCx0aGlzLmJsZW5kRXF1YXRpb25BbHBoYT1udWxsLHRoaXMuZGVwdGhGdW5jPTMsdGhpcy5kZXB0aFRlc3Q9ITAsdGhpcy5kZXB0aFdyaXRlPSEwLHRoaXMuc3RlbmNpbFdyaXRlTWFzaz0yNTUsdGhpcy5zdGVuY2lsRnVuYz01MTksdGhpcy5zdGVuY2lsUmVmPTAsdGhpcy5zdGVuY2lsRnVuY01hc2s9MjU1LHRoaXMuc3RlbmNpbEZhaWw9bnN0LHRoaXMuc3RlbmNpbFpGYWlsPW5zdCx0aGlzLnN0ZW5jaWxaUGFzcz1uc3QsdGhpcy5zdGVuY2lsV3JpdGU9ITEsdGhpcy5jbGlwcGluZ1BsYW5lcz1udWxsLHRoaXMuY2xpcEludGVyc2VjdGlvbj0hMSx0aGlzLmNsaXBTaGFkb3dzPSExLHRoaXMuc2hhZG93U2lkZT1udWxsLHRoaXMuY29sb3JXcml0ZT0hMCx0aGlzLnByZWNpc2lvbj1udWxsLHRoaXMucG9seWdvbk9mZnNldD0hMSx0aGlzLnBvbHlnb25PZmZzZXRGYWN0b3I9MCx0aGlzLnBvbHlnb25PZmZzZXRVbml0cz0wLHRoaXMuZGl0aGVyaW5nPSExLHRoaXMuYWxwaGFUZXN0PTAsdGhpcy5hbHBoYVRvQ292ZXJhZ2U9ITEsdGhpcy5wcmVtdWx0aXBsaWVkQWxwaGE9ITEsdGhpcy52aXNpYmxlPSEwLHRoaXMudG9uZU1hcHBlZD0hMCx0aGlzLnVzZXJEYXRhPXt9LHRoaXMudmVyc2lvbj0wfW9uQnVpbGQoKXt9b25CZWZvcmVDb21waWxlKCl7fWN1c3RvbVByb2dyYW1DYWNoZUtleSgpe3JldHVybiB0aGlzLm9uQmVmb3JlQ29tcGlsZS50b1N0cmluZygpfXNldFZhbHVlcyh0KXtpZih2b2lkIDAhPT10KWZvcihjb25zdCBlIGluIHQpe2NvbnN0IG49dFtlXTtpZih2b2lkIDA9PT1uKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAnIitlKyInIHBhcmFtZXRlciBpcyB1bmRlZmluZWQuIik7Y29udGludWV9aWYoInNoYWRpbmciPT09ZSl7Y29uc29sZS53YXJuKCJUSFJFRS4iK3RoaXMudHlwZSsiOiAuc2hhZGluZyBoYXMgYmVlbiByZW1vdmVkLiBVc2UgdGhlIGJvb2xlYW4gLmZsYXRTaGFkaW5nIGluc3RlYWQuIiksdGhpcy5mbGF0U2hhZGluZz0xPT09bjtjb250aW51ZX1jb25zdCBvPXRoaXNbZV07dm9pZCAwIT09bz9vJiZvLmlzQ29sb3I/by5zZXQobik6byYmby5pc1ZlY3RvcjMmJm4mJm4uaXNWZWN0b3IzP28uY29weShuKTp0aGlzW2VdPW46Y29uc29sZS53YXJuKCJUSFJFRS4iK3RoaXMudHlwZSsiOiAnIitlKyInIGlzIG5vdCBhIHByb3BlcnR5IG9mIHRoaXMgbWF0ZXJpYWwuIil9fXRvSlNPTih0KXtjb25zdCBlPXZvaWQgMD09PXR8fCJzdHJpbmciPT10eXBlb2YgdDtlJiYodD17dGV4dHVyZXM6e30saW1hZ2VzOnt9fSk7Y29uc3Qgbj17bWV0YWRhdGE6e3ZlcnNpb246NC41LHR5cGU6Ik1hdGVyaWFsIixnZW5lcmF0b3I6Ik1hdGVyaWFsLnRvSlNPTiJ9fTtmdW5jdGlvbiBvKHQpe2NvbnN0IGU9W107Zm9yKGNvbnN0IG4gaW4gdCl7Y29uc3Qgbz10W25dO2RlbGV0ZSBvLm1ldGFkYXRhLGUucHVzaChvKX1yZXR1cm4gZX1pZihuLnV1aWQ9dGhpcy51dWlkLG4udHlwZT10aGlzLnR5cGUsIiIhPT10aGlzLm5hbWUmJihuLm5hbWU9dGhpcy5uYW1lKSx0aGlzLmNvbG9yJiZ0aGlzLmNvbG9yLmlzQ29sb3ImJihuLmNvbG9yPXRoaXMuY29sb3IuZ2V0SGV4KCkpLHZvaWQgMCE9PXRoaXMucm91Z2huZXNzJiYobi5yb3VnaG5lc3M9dGhpcy5yb3VnaG5lc3MpLHZvaWQgMCE9PXRoaXMubWV0YWxuZXNzJiYobi5tZXRhbG5lc3M9dGhpcy5tZXRhbG5lc3MpLHRoaXMuc2hlZW4mJnRoaXMuc2hlZW4uaXNDb2xvciYmKG4uc2hlZW49dGhpcy5zaGVlbi5nZXRIZXgoKSksdGhpcy5lbWlzc2l2ZSYmdGhpcy5lbWlzc2l2ZS5pc0NvbG9yJiYobi5lbWlzc2l2ZT10aGlzLmVtaXNzaXZlLmdldEhleCgpKSx0aGlzLmVtaXNzaXZlSW50ZW5zaXR5JiYxIT09dGhpcy5lbWlzc2l2ZUludGVuc2l0eSYmKG4uZW1pc3NpdmVJbnRlbnNpdHk9dGhpcy5lbWlzc2l2ZUludGVuc2l0eSksdGhpcy5zcGVjdWxhciYmdGhpcy5zcGVjdWxhci5pc0NvbG9yJiYobi5zcGVjdWxhcj10aGlzLnNwZWN1bGFyLmdldEhleCgpKSx2b2lkIDAhPT10aGlzLnNwZWN1bGFySW50ZW5zaXR5JiYobi5zcGVjdWxhckludGVuc2l0eT10aGlzLnNwZWN1bGFySW50ZW5zaXR5KSx0aGlzLnNwZWN1bGFyVGludCYmdGhpcy5zcGVjdWxhclRpbnQuaXNDb2xvciYmKG4uc3BlY3VsYXJUaW50PXRoaXMuc3BlY3VsYXJUaW50LmdldEhleCgpKSx2b2lkIDAhPT10aGlzLnNoaW5pbmVzcyYmKG4uc2hpbmluZXNzPXRoaXMuc2hpbmluZXNzKSx2b2lkIDAhPT10aGlzLmNsZWFyY29hdCYmKG4uY2xlYXJjb2F0PXRoaXMuY2xlYXJjb2F0KSx2b2lkIDAhPT10aGlzLmNsZWFyY29hdFJvdWdobmVzcyYmKG4uY2xlYXJjb2F0Um91Z2huZXNzPXRoaXMuY2xlYXJjb2F0Um91Z2huZXNzKSx0aGlzLmNsZWFyY29hdE1hcCYmdGhpcy5jbGVhcmNvYXRNYXAuaXNUZXh0dXJlJiYobi5jbGVhcmNvYXRNYXA9dGhpcy5jbGVhcmNvYXRNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuY2xlYXJjb2F0Um91Z2huZXNzTWFwJiZ0aGlzLmNsZWFyY29hdFJvdWdobmVzc01hcC5pc1RleHR1cmUmJihuLmNsZWFyY29hdFJvdWdobmVzc01hcD10aGlzLmNsZWFyY29hdFJvdWdobmVzc01hcC50b0pTT04odCkudXVpZCksdGhpcy5jbGVhcmNvYXROb3JtYWxNYXAmJnRoaXMuY2xlYXJjb2F0Tm9ybWFsTWFwLmlzVGV4dHVyZSYmKG4uY2xlYXJjb2F0Tm9ybWFsTWFwPXRoaXMuY2xlYXJjb2F0Tm9ybWFsTWFwLnRvSlNPTih0KS51dWlkLG4uY2xlYXJjb2F0Tm9ybWFsU2NhbGU9dGhpcy5jbGVhcmNvYXROb3JtYWxTY2FsZS50b0FycmF5KCkpLHRoaXMubWFwJiZ0aGlzLm1hcC5pc1RleHR1cmUmJihuLm1hcD10aGlzLm1hcC50b0pTT04odCkudXVpZCksdGhpcy5tYXRjYXAmJnRoaXMubWF0Y2FwLmlzVGV4dHVyZSYmKG4ubWF0Y2FwPXRoaXMubWF0Y2FwLnRvSlNPTih0KS51dWlkKSx0aGlzLmFscGhhTWFwJiZ0aGlzLmFscGhhTWFwLmlzVGV4dHVyZSYmKG4uYWxwaGFNYXA9dGhpcy5hbHBoYU1hcC50b0pTT04odCkudXVpZCksdGhpcy5saWdodE1hcCYmdGhpcy5saWdodE1hcC5pc1RleHR1cmUmJihuLmxpZ2h0TWFwPXRoaXMubGlnaHRNYXAudG9KU09OKHQpLnV1aWQsbi5saWdodE1hcEludGVuc2l0eT10aGlzLmxpZ2h0TWFwSW50ZW5zaXR5KSx0aGlzLmFvTWFwJiZ0aGlzLmFvTWFwLmlzVGV4dHVyZSYmKG4uYW9NYXA9dGhpcy5hb01hcC50b0pTT04odCkudXVpZCxuLmFvTWFwSW50ZW5zaXR5PXRoaXMuYW9NYXBJbnRlbnNpdHkpLHRoaXMuYnVtcE1hcCYmdGhpcy5idW1wTWFwLmlzVGV4dHVyZSYmKG4uYnVtcE1hcD10aGlzLmJ1bXBNYXAudG9KU09OKHQpLnV1aWQsbi5idW1wU2NhbGU9dGhpcy5idW1wU2NhbGUpLHRoaXMubm9ybWFsTWFwJiZ0aGlzLm5vcm1hbE1hcC5pc1RleHR1cmUmJihuLm5vcm1hbE1hcD10aGlzLm5vcm1hbE1hcC50b0pTT04odCkudXVpZCxuLm5vcm1hbE1hcFR5cGU9dGhpcy5ub3JtYWxNYXBUeXBlLG4ubm9ybWFsU2NhbGU9dGhpcy5ub3JtYWxTY2FsZS50b0FycmF5KCkpLHRoaXMuZGlzcGxhY2VtZW50TWFwJiZ0aGlzLmRpc3BsYWNlbWVudE1hcC5pc1RleHR1cmUmJihuLmRpc3BsYWNlbWVudE1hcD10aGlzLmRpc3BsYWNlbWVudE1hcC50b0pTT04odCkudXVpZCxuLmRpc3BsYWNlbWVudFNjYWxlPXRoaXMuZGlzcGxhY2VtZW50U2NhbGUsbi5kaXNwbGFjZW1lbnRCaWFzPXRoaXMuZGlzcGxhY2VtZW50QmlhcyksdGhpcy5yb3VnaG5lc3NNYXAmJnRoaXMucm91Z2huZXNzTWFwLmlzVGV4dHVyZSYmKG4ucm91Z2huZXNzTWFwPXRoaXMucm91Z2huZXNzTWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLm1ldGFsbmVzc01hcCYmdGhpcy5tZXRhbG5lc3NNYXAuaXNUZXh0dXJlJiYobi5tZXRhbG5lc3NNYXA9dGhpcy5tZXRhbG5lc3NNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuZW1pc3NpdmVNYXAmJnRoaXMuZW1pc3NpdmVNYXAuaXNUZXh0dXJlJiYobi5lbWlzc2l2ZU1hcD10aGlzLmVtaXNzaXZlTWFwLnRvSlNPTih0KS51dWlkKSx0aGlzLnNwZWN1bGFyTWFwJiZ0aGlzLnNwZWN1bGFyTWFwLmlzVGV4dHVyZSYmKG4uc3BlY3VsYXJNYXA9dGhpcy5zcGVjdWxhck1hcC50b0pTT04odCkudXVpZCksdGhpcy5zcGVjdWxhckludGVuc2l0eU1hcCYmdGhpcy5zcGVjdWxhckludGVuc2l0eU1hcC5pc1RleHR1cmUmJihuLnNwZWN1bGFySW50ZW5zaXR5TWFwPXRoaXMuc3BlY3VsYXJJbnRlbnNpdHlNYXAudG9KU09OKHQpLnV1aWQpLHRoaXMuc3BlY3VsYXJUaW50TWFwJiZ0aGlzLnNwZWN1bGFyVGludE1hcC5pc1RleHR1cmUmJihuLnNwZWN1bGFyVGludE1hcD10aGlzLnNwZWN1bGFyVGludE1hcC50b0pTT04odCkudXVpZCksdGhpcy5lbnZNYXAmJnRoaXMuZW52TWFwLmlzVGV4dHVyZSYmKG4uZW52TWFwPXRoaXMuZW52TWFwLnRvSlNPTih0KS51dWlkLHZvaWQgMCE9PXRoaXMuY29tYmluZSYmKG4uY29tYmluZT10aGlzLmNvbWJpbmUpKSx2b2lkIDAhPT10aGlzLmVudk1hcEludGVuc2l0eSYmKG4uZW52TWFwSW50ZW5zaXR5PXRoaXMuZW52TWFwSW50ZW5zaXR5KSx2b2lkIDAhPT10aGlzLnJlZmxlY3Rpdml0eSYmKG4ucmVmbGVjdGl2aXR5PXRoaXMucmVmbGVjdGl2aXR5KSx2b2lkIDAhPT10aGlzLnJlZnJhY3Rpb25SYXRpbyYmKG4ucmVmcmFjdGlvblJhdGlvPXRoaXMucmVmcmFjdGlvblJhdGlvKSx0aGlzLmdyYWRpZW50TWFwJiZ0aGlzLmdyYWRpZW50TWFwLmlzVGV4dHVyZSYmKG4uZ3JhZGllbnRNYXA9dGhpcy5ncmFkaWVudE1hcC50b0pTT04odCkudXVpZCksdm9pZCAwIT09dGhpcy50cmFuc21pc3Npb24mJihuLnRyYW5zbWlzc2lvbj10aGlzLnRyYW5zbWlzc2lvbiksdGhpcy50cmFuc21pc3Npb25NYXAmJnRoaXMudHJhbnNtaXNzaW9uTWFwLmlzVGV4dHVyZSYmKG4udHJhbnNtaXNzaW9uTWFwPXRoaXMudHJhbnNtaXNzaW9uTWFwLnRvSlNPTih0KS51dWlkKSx2b2lkIDAhPT10aGlzLnRoaWNrbmVzcyYmKG4udGhpY2tuZXNzPXRoaXMudGhpY2tuZXNzKSx0aGlzLnRoaWNrbmVzc01hcCYmdGhpcy50aGlja25lc3NNYXAuaXNUZXh0dXJlJiYobi50aGlja25lc3NNYXA9dGhpcy50aGlja25lc3NNYXAudG9KU09OKHQpLnV1aWQpLHZvaWQgMCE9PXRoaXMuYXR0ZW51YXRpb25EaXN0YW5jZSYmKG4uYXR0ZW51YXRpb25EaXN0YW5jZT10aGlzLmF0dGVudWF0aW9uRGlzdGFuY2UpLHZvaWQgMCE9PXRoaXMuYXR0ZW51YXRpb25UaW50JiYobi5hdHRlbnVhdGlvblRpbnQ9dGhpcy5hdHRlbnVhdGlvblRpbnQuZ2V0SGV4KCkpLHZvaWQgMCE9PXRoaXMuc2l6ZSYmKG4uc2l6ZT10aGlzLnNpemUpLG51bGwhPT10aGlzLnNoYWRvd1NpZGUmJihuLnNoYWRvd1NpZGU9dGhpcy5zaGFkb3dTaWRlKSx2b2lkIDAhPT10aGlzLnNpemVBdHRlbnVhdGlvbiYmKG4uc2l6ZUF0dGVudWF0aW9uPXRoaXMuc2l6ZUF0dGVudWF0aW9uKSwxIT09dGhpcy5ibGVuZGluZyYmKG4uYmxlbmRpbmc9dGhpcy5ibGVuZGluZyksMCE9PXRoaXMuc2lkZSYmKG4uc2lkZT10aGlzLnNpZGUpLHRoaXMudmVydGV4Q29sb3JzJiYobi52ZXJ0ZXhDb2xvcnM9ITApLHRoaXMub3BhY2l0eTwxJiYobi5vcGFjaXR5PXRoaXMub3BhY2l0eSksITA9PT10aGlzLnRyYW5zcGFyZW50JiYobi50cmFuc3BhcmVudD10aGlzLnRyYW5zcGFyZW50KSxuLmRlcHRoRnVuYz10aGlzLmRlcHRoRnVuYyxuLmRlcHRoVGVzdD10aGlzLmRlcHRoVGVzdCxuLmRlcHRoV3JpdGU9dGhpcy5kZXB0aFdyaXRlLG4uY29sb3JXcml0ZT10aGlzLmNvbG9yV3JpdGUsbi5zdGVuY2lsV3JpdGU9dGhpcy5zdGVuY2lsV3JpdGUsbi5zdGVuY2lsV3JpdGVNYXNrPXRoaXMuc3RlbmNpbFdyaXRlTWFzayxuLnN0ZW5jaWxGdW5jPXRoaXMuc3RlbmNpbEZ1bmMsbi5zdGVuY2lsUmVmPXRoaXMuc3RlbmNpbFJlZixuLnN0ZW5jaWxGdW5jTWFzaz10aGlzLnN0ZW5jaWxGdW5jTWFzayxuLnN0ZW5jaWxGYWlsPXRoaXMuc3RlbmNpbEZhaWwsbi5zdGVuY2lsWkZhaWw9dGhpcy5zdGVuY2lsWkZhaWwsbi5zdGVuY2lsWlBhc3M9dGhpcy5zdGVuY2lsWlBhc3MsdGhpcy5yb3RhdGlvbiYmMCE9PXRoaXMucm90YXRpb24mJihuLnJvdGF0aW9uPXRoaXMucm90YXRpb24pLCEwPT09dGhpcy5wb2x5Z29uT2Zmc2V0JiYobi5wb2x5Z29uT2Zmc2V0PSEwKSwwIT09dGhpcy5wb2x5Z29uT2Zmc2V0RmFjdG9yJiYobi5wb2x5Z29uT2Zmc2V0RmFjdG9yPXRoaXMucG9seWdvbk9mZnNldEZhY3RvciksMCE9PXRoaXMucG9seWdvbk9mZnNldFVuaXRzJiYobi5wb2x5Z29uT2Zmc2V0VW5pdHM9dGhpcy5wb2x5Z29uT2Zmc2V0VW5pdHMpLHRoaXMubGluZXdpZHRoJiYxIT09dGhpcy5saW5ld2lkdGgmJihuLmxpbmV3aWR0aD10aGlzLmxpbmV3aWR0aCksdm9pZCAwIT09dGhpcy5kYXNoU2l6ZSYmKG4uZGFzaFNpemU9dGhpcy5kYXNoU2l6ZSksdm9pZCAwIT09dGhpcy5nYXBTaXplJiYobi5nYXBTaXplPXRoaXMuZ2FwU2l6ZSksdm9pZCAwIT09dGhpcy5zY2FsZSYmKG4uc2NhbGU9dGhpcy5zY2FsZSksITA9PT10aGlzLmRpdGhlcmluZyYmKG4uZGl0aGVyaW5nPSEwKSx0aGlzLmFscGhhVGVzdD4wJiYobi5hbHBoYVRlc3Q9dGhpcy5hbHBoYVRlc3QpLCEwPT09dGhpcy5hbHBoYVRvQ292ZXJhZ2UmJihuLmFscGhhVG9Db3ZlcmFnZT10aGlzLmFscGhhVG9Db3ZlcmFnZSksITA9PT10aGlzLnByZW11bHRpcGxpZWRBbHBoYSYmKG4ucHJlbXVsdGlwbGllZEFscGhhPXRoaXMucHJlbXVsdGlwbGllZEFscGhhKSwhMD09PXRoaXMud2lyZWZyYW1lJiYobi53aXJlZnJhbWU9dGhpcy53aXJlZnJhbWUpLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPjEmJihuLndpcmVmcmFtZUxpbmV3aWR0aD10aGlzLndpcmVmcmFtZUxpbmV3aWR0aCksInJvdW5kIiE9PXRoaXMud2lyZWZyYW1lTGluZWNhcCYmKG4ud2lyZWZyYW1lTGluZWNhcD10aGlzLndpcmVmcmFtZUxpbmVjYXApLCJyb3VuZCIhPT10aGlzLndpcmVmcmFtZUxpbmVqb2luJiYobi53aXJlZnJhbWVMaW5lam9pbj10aGlzLndpcmVmcmFtZUxpbmVqb2luKSwhMD09PXRoaXMuZmxhdFNoYWRpbmcmJihuLmZsYXRTaGFkaW5nPXRoaXMuZmxhdFNoYWRpbmcpLCExPT09dGhpcy52aXNpYmxlJiYobi52aXNpYmxlPSExKSwhMT09PXRoaXMudG9uZU1hcHBlZCYmKG4udG9uZU1hcHBlZD0hMSksInt9IiE9PUpTT04uc3RyaW5naWZ5KHRoaXMudXNlckRhdGEpJiYobi51c2VyRGF0YT10aGlzLnVzZXJEYXRhKSxlKXtjb25zdCBlPW8odC50ZXh0dXJlcyksaT1vKHQuaW1hZ2VzKTtlLmxlbmd0aD4wJiYobi50ZXh0dXJlcz1lKSxpLmxlbmd0aD4wJiYobi5pbWFnZXM9aSl9cmV0dXJuIG59Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9Y29weSh0KXt0aGlzLm5hbWU9dC5uYW1lLHRoaXMuZm9nPXQuZm9nLHRoaXMuYmxlbmRpbmc9dC5ibGVuZGluZyx0aGlzLnNpZGU9dC5zaWRlLHRoaXMudmVydGV4Q29sb3JzPXQudmVydGV4Q29sb3JzLHRoaXMub3BhY2l0eT10Lm9wYWNpdHksdGhpcy50cmFuc3BhcmVudD10LnRyYW5zcGFyZW50LHRoaXMuYmxlbmRTcmM9dC5ibGVuZFNyYyx0aGlzLmJsZW5kRHN0PXQuYmxlbmREc3QsdGhpcy5ibGVuZEVxdWF0aW9uPXQuYmxlbmRFcXVhdGlvbix0aGlzLmJsZW5kU3JjQWxwaGE9dC5ibGVuZFNyY0FscGhhLHRoaXMuYmxlbmREc3RBbHBoYT10LmJsZW5kRHN0QWxwaGEsdGhpcy5ibGVuZEVxdWF0aW9uQWxwaGE9dC5ibGVuZEVxdWF0aW9uQWxwaGEsdGhpcy5kZXB0aEZ1bmM9dC5kZXB0aEZ1bmMsdGhpcy5kZXB0aFRlc3Q9dC5kZXB0aFRlc3QsdGhpcy5kZXB0aFdyaXRlPXQuZGVwdGhXcml0ZSx0aGlzLnN0ZW5jaWxXcml0ZU1hc2s9dC5zdGVuY2lsV3JpdGVNYXNrLHRoaXMuc3RlbmNpbEZ1bmM9dC5zdGVuY2lsRnVuYyx0aGlzLnN0ZW5jaWxSZWY9dC5zdGVuY2lsUmVmLHRoaXMuc3RlbmNpbEZ1bmNNYXNrPXQuc3RlbmNpbEZ1bmNNYXNrLHRoaXMuc3RlbmNpbEZhaWw9dC5zdGVuY2lsRmFpbCx0aGlzLnN0ZW5jaWxaRmFpbD10LnN0ZW5jaWxaRmFpbCx0aGlzLnN0ZW5jaWxaUGFzcz10LnN0ZW5jaWxaUGFzcyx0aGlzLnN0ZW5jaWxXcml0ZT10LnN0ZW5jaWxXcml0ZTtjb25zdCBlPXQuY2xpcHBpbmdQbGFuZXM7bGV0IG49bnVsbDtpZihudWxsIT09ZSl7Y29uc3QgdD1lLmxlbmd0aDtuPW5ldyBBcnJheSh0KTtmb3IobGV0IG89MDtvIT09dDsrK28pbltvXT1lW29dLmNsb25lKCl9cmV0dXJuIHRoaXMuY2xpcHBpbmdQbGFuZXM9bix0aGlzLmNsaXBJbnRlcnNlY3Rpb249dC5jbGlwSW50ZXJzZWN0aW9uLHRoaXMuY2xpcFNoYWRvd3M9dC5jbGlwU2hhZG93cyx0aGlzLnNoYWRvd1NpZGU9dC5zaGFkb3dTaWRlLHRoaXMuY29sb3JXcml0ZT10LmNvbG9yV3JpdGUsdGhpcy5wcmVjaXNpb249dC5wcmVjaXNpb24sdGhpcy5wb2x5Z29uT2Zmc2V0PXQucG9seWdvbk9mZnNldCx0aGlzLnBvbHlnb25PZmZzZXRGYWN0b3I9dC5wb2x5Z29uT2Zmc2V0RmFjdG9yLHRoaXMucG9seWdvbk9mZnNldFVuaXRzPXQucG9seWdvbk9mZnNldFVuaXRzLHRoaXMuZGl0aGVyaW5nPXQuZGl0aGVyaW5nLHRoaXMuYWxwaGFUZXN0PXQuYWxwaGFUZXN0LHRoaXMuYWxwaGFUb0NvdmVyYWdlPXQuYWxwaGFUb0NvdmVyYWdlLHRoaXMucHJlbXVsdGlwbGllZEFscGhhPXQucHJlbXVsdGlwbGllZEFscGhhLHRoaXMudmlzaWJsZT10LnZpc2libGUsdGhpcy50b25lTWFwcGVkPXQudG9uZU1hcHBlZCx0aGlzLnVzZXJEYXRhPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodC51c2VyRGF0YSkpLHRoaXN9ZGlzcG9zZSgpe3RoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiZGlzcG9zZSJ9KX1zZXQgbmVlZHNVcGRhdGUodCl7ITA9PT10JiZ0aGlzLnZlcnNpb24rK319Vmx0LnByb3RvdHlwZS5pc01hdGVyaWFsPSEwO2NvbnN0IGpsdD17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fSxVbHQ9e2g6MCxzOjAsbDowfSxXbHQ9e2g6MCxzOjAsbDowfTtmdW5jdGlvbiBHbHQodCxlLG4pe3JldHVybiBuPDAmJihuKz0xKSxuPjEmJihuLT0xKSxuPDEvNj90KzYqKGUtdCkqbjpuPC41P2U6bjwyLzM/dCs2KihlLXQpKigyLzMtbik6dH1mdW5jdGlvbiBZbHQodCl7cmV0dXJuIHQ8LjA0MDQ1Py4wNzczOTkzODA4KnQ6TWF0aC5wb3coLjk0Nzg2NzI5ODYqdCsuMDUyMTMyNzAxNCwyLjQpfWZ1bmN0aW9uIHFsdCh0KXtyZXR1cm4gdDwuMDAzMTMwOD8xMi45Mip0OjEuMDU1Kk1hdGgucG93KHQsLjQxNjY2KS0uMDU1fWNsYXNzIFpsdHtjb25zdHJ1Y3Rvcih0LGUsbil7cmV0dXJuIHZvaWQgMD09PWUmJnZvaWQgMD09PW4/dGhpcy5zZXQodCk6dGhpcy5zZXRSR0IodCxlLG4pfXNldCh0KXtyZXR1cm4gdCYmdC5pc0NvbG9yP3RoaXMuY29weSh0KToibnVtYmVyIj09dHlwZW9mIHQ/dGhpcy5zZXRIZXgodCk6InN0cmluZyI9PXR5cGVvZiB0JiZ0aGlzLnNldFN0eWxlKHQpLHRoaXN9c2V0U2NhbGFyKHQpe3JldHVybiB0aGlzLnI9dCx0aGlzLmc9dCx0aGlzLmI9dCx0aGlzfXNldEhleCh0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLHRoaXMucj0odD4+MTYmMjU1KS8yNTUsdGhpcy5nPSh0Pj44JjI1NSkvMjU1LHRoaXMuYj0oMjU1JnQpLzI1NSx0aGlzfXNldFJHQih0LGUsbil7cmV0dXJuIHRoaXMucj10LHRoaXMuZz1lLHRoaXMuYj1uLHRoaXN9c2V0SFNMKHQsZSxuKXtpZih0PShmdW5jdGlvbiBvKHQsZSl7cmV0dXJuKHQlZStlKSVlfSkodCwxKSxlPXBzdChlLDAsMSksbj1wc3QobiwwLDEpLDA9PT1lKXRoaXMucj10aGlzLmc9dGhpcy5iPW47ZWxzZXtjb25zdCBvPW48PS41P24qKDErZSk6bitlLW4qZSxpPTIqbi1vO3RoaXMucj1HbHQoaSxvLHQrMS8zKSx0aGlzLmc9R2x0KGksbyx0KSx0aGlzLmI9R2x0KGksbyx0LTEvMyl9cmV0dXJuIHRoaXN9c2V0U3R5bGUodCl7ZnVuY3Rpb24gZShlKXt2b2lkIDAhPT1lJiZwYXJzZUZsb2F0KGUpPDEmJmNvbnNvbGUud2FybigiVEhSRUUuQ29sb3I6IEFscGhhIGNvbXBvbmVudCBvZiAiK3QrIiB3aWxsIGJlIGlnbm9yZWQuIil9bGV0IG47aWYobj0vXigoPzpyZ2J8aHNsKWE/KVwoKFteXCldKilcKS8uZXhlYyh0KSl7bGV0IHQ7Y29uc3Qgbz1uWzJdO3N3aXRjaChuWzFdKXtjYXNlInJnYiI6Y2FzZSJyZ2JhIjppZih0PS9eXHMqKFxkKylccyosXHMqKFxkKylccyosXHMqKFxkKylccyooPzosXHMqKFxkKlwuP1xkKylccyopPyQvLmV4ZWMobykpcmV0dXJuIHRoaXMucj1NYXRoLm1pbigyNTUscGFyc2VJbnQodFsxXSwxMCkpLzI1NSx0aGlzLmc9TWF0aC5taW4oMjU1LHBhcnNlSW50KHRbMl0sMTApKS8yNTUsdGhpcy5iPU1hdGgubWluKDI1NSxwYXJzZUludCh0WzNdLDEwKSkvMjU1LGUodFs0XSksdGhpcztpZih0PS9eXHMqKFxkKylcJVxzKixccyooXGQrKVwlXHMqLFxzKihcZCspXCVccyooPzosXHMqKFxkKlwuP1xkKylccyopPyQvLmV4ZWMobykpcmV0dXJuIHRoaXMucj1NYXRoLm1pbigxMDAscGFyc2VJbnQodFsxXSwxMCkpLzEwMCx0aGlzLmc9TWF0aC5taW4oMTAwLHBhcnNlSW50KHRbMl0sMTApKS8xMDAsdGhpcy5iPU1hdGgubWluKDEwMCxwYXJzZUludCh0WzNdLDEwKSkvMTAwLGUodFs0XSksdGhpczticmVhaztjYXNlImhzbCI6Y2FzZSJoc2xhIjppZih0PS9eXHMqKFxkKlwuP1xkKylccyosXHMqKFxkKylcJVxzKixccyooXGQrKVwlXHMqKD86LFxzKihcZCpcLj9cZCspXHMqKT8kLy5leGVjKG8pKXtjb25zdCBuPXBhcnNlRmxvYXQodFsxXSkvMzYwLG89cGFyc2VJbnQodFsyXSwxMCkvMTAwLGk9cGFyc2VJbnQodFszXSwxMCkvMTAwO3JldHVybiBlKHRbNF0pLHRoaXMuc2V0SFNMKG4sbyxpKX19fWVsc2UgaWYobj0vXlwjKFtBLUZhLWZcZF0rKSQvLmV4ZWModCkpe2NvbnN0IHQ9blsxXSxlPXQubGVuZ3RoO2lmKDM9PT1lKXJldHVybiB0aGlzLnI9cGFyc2VJbnQodC5jaGFyQXQoMCkrdC5jaGFyQXQoMCksMTYpLzI1NSx0aGlzLmc9cGFyc2VJbnQodC5jaGFyQXQoMSkrdC5jaGFyQXQoMSksMTYpLzI1NSx0aGlzLmI9cGFyc2VJbnQodC5jaGFyQXQoMikrdC5jaGFyQXQoMiksMTYpLzI1NSx0aGlzO2lmKDY9PT1lKXJldHVybiB0aGlzLnI9cGFyc2VJbnQodC5jaGFyQXQoMCkrdC5jaGFyQXQoMSksMTYpLzI1NSx0aGlzLmc9cGFyc2VJbnQodC5jaGFyQXQoMikrdC5jaGFyQXQoMyksMTYpLzI1NSx0aGlzLmI9cGFyc2VJbnQodC5jaGFyQXQoNCkrdC5jaGFyQXQoNSksMTYpLzI1NSx0aGlzfXJldHVybiB0JiZ0Lmxlbmd0aD4wP3RoaXMuc2V0Q29sb3JOYW1lKHQpOnRoaXN9c2V0Q29sb3JOYW1lKHQpe2NvbnN0IGU9amx0W3QudG9Mb3dlckNhc2UoKV07cmV0dXJuIHZvaWQgMCE9PWU/dGhpcy5zZXRIZXgoZSk6Y29uc29sZS53YXJuKCJUSFJFRS5Db2xvcjogVW5rbm93biBjb2xvciAiK3QpLHRoaXN9Y2xvbmUoKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5yLHRoaXMuZyx0aGlzLmIpfWNvcHkodCl7cmV0dXJuIHRoaXMucj10LnIsdGhpcy5nPXQuZyx0aGlzLmI9dC5iLHRoaXN9Y29weUdhbW1hVG9MaW5lYXIodCxlPTIpe3JldHVybiB0aGlzLnI9TWF0aC5wb3codC5yLGUpLHRoaXMuZz1NYXRoLnBvdyh0LmcsZSksdGhpcy5iPU1hdGgucG93KHQuYixlKSx0aGlzfWNvcHlMaW5lYXJUb0dhbW1hKHQsZT0yKXtjb25zdCBuPWU+MD8xL2U6MTtyZXR1cm4gdGhpcy5yPU1hdGgucG93KHQucixuKSx0aGlzLmc9TWF0aC5wb3codC5nLG4pLHRoaXMuYj1NYXRoLnBvdyh0LmIsbiksdGhpc31jb252ZXJ0R2FtbWFUb0xpbmVhcih0KXtyZXR1cm4gdGhpcy5jb3B5R2FtbWFUb0xpbmVhcih0aGlzLHQpLHRoaXN9Y29udmVydExpbmVhclRvR2FtbWEodCl7cmV0dXJuIHRoaXMuY29weUxpbmVhclRvR2FtbWEodGhpcyx0KSx0aGlzfWNvcHlTUkdCVG9MaW5lYXIodCl7cmV0dXJuIHRoaXMucj1ZbHQodC5yKSx0aGlzLmc9WWx0KHQuZyksdGhpcy5iPVlsdCh0LmIpLHRoaXN9Y29weUxpbmVhclRvU1JHQih0KXtyZXR1cm4gdGhpcy5yPXFsdCh0LnIpLHRoaXMuZz1xbHQodC5nKSx0aGlzLmI9cWx0KHQuYiksdGhpc31jb252ZXJ0U1JHQlRvTGluZWFyKCl7cmV0dXJuIHRoaXMuY29weVNSR0JUb0xpbmVhcih0aGlzKSx0aGlzfWNvbnZlcnRMaW5lYXJUb1NSR0IoKXtyZXR1cm4gdGhpcy5jb3B5TGluZWFyVG9TUkdCKHRoaXMpLHRoaXN9Z2V0SGV4KCl7cmV0dXJuIDI1NSp0aGlzLnI8PDE2XjI1NSp0aGlzLmc8PDheMjU1KnRoaXMuYjw8MH1nZXRIZXhTdHJpbmcoKXtyZXR1cm4oIjAwMDAwMCIrdGhpcy5nZXRIZXgoKS50b1N0cmluZygxNikpLnNsaWNlKC02KX1nZXRIU0wodCl7Y29uc3QgZT10aGlzLnIsbj10aGlzLmcsbz10aGlzLmIsaT1NYXRoLm1heChlLG4sbyksYT1NYXRoLm1pbihlLG4sbyk7bGV0IHIscztjb25zdCBsPShhK2kpLzI7aWYoYT09PWkpcj0wLHM9MDtlbHNle2NvbnN0IHQ9aS1hO3N3aXRjaChzPWw8PS41P3QvKGkrYSk6dC8oMi1pLWEpLGkpe2Nhc2UgZTpyPShuLW8pL3QrKG48bz82OjApO2JyZWFrO2Nhc2UgbjpyPShvLWUpL3QrMjticmVhaztjYXNlIG86cj0oZS1uKS90KzR9ci89Nn1yZXR1cm4gdC5oPXIsdC5zPXMsdC5sPWwsdH1nZXRTdHlsZSgpe3JldHVybiJyZ2IoIisoMjU1KnRoaXMucnwwKSsiLCIrKDI1NSp0aGlzLmd8MCkrIiwiKygyNTUqdGhpcy5ifDApKyIpIn1vZmZzZXRIU0wodCxlLG4pe3JldHVybiB0aGlzLmdldEhTTChVbHQpLFVsdC5oKz10LFVsdC5zKz1lLFVsdC5sKz1uLHRoaXMuc2V0SFNMKFVsdC5oLFVsdC5zLFVsdC5sKSx0aGlzfWFkZCh0KXtyZXR1cm4gdGhpcy5yKz10LnIsdGhpcy5nKz10LmcsdGhpcy5iKz10LmIsdGhpc31hZGRDb2xvcnModCxlKXtyZXR1cm4gdGhpcy5yPXQucitlLnIsdGhpcy5nPXQuZytlLmcsdGhpcy5iPXQuYitlLmIsdGhpc31hZGRTY2FsYXIodCl7cmV0dXJuIHRoaXMucis9dCx0aGlzLmcrPXQsdGhpcy5iKz10LHRoaXN9c3ViKHQpe3JldHVybiB0aGlzLnI9TWF0aC5tYXgoMCx0aGlzLnItdC5yKSx0aGlzLmc9TWF0aC5tYXgoMCx0aGlzLmctdC5nKSx0aGlzLmI9TWF0aC5tYXgoMCx0aGlzLmItdC5iKSx0aGlzfW11bHRpcGx5KHQpe3JldHVybiB0aGlzLnIqPXQucix0aGlzLmcqPXQuZyx0aGlzLmIqPXQuYix0aGlzfW11bHRpcGx5U2NhbGFyKHQpe3JldHVybiB0aGlzLnIqPXQsdGhpcy5nKj10LHRoaXMuYio9dCx0aGlzfWxlcnAodCxlKXtyZXR1cm4gdGhpcy5yKz0odC5yLXRoaXMucikqZSx0aGlzLmcrPSh0LmctdGhpcy5nKSplLHRoaXMuYis9KHQuYi10aGlzLmIpKmUsdGhpc31sZXJwQ29sb3JzKHQsZSxuKXtyZXR1cm4gdGhpcy5yPXQucisoZS5yLXQucikqbix0aGlzLmc9dC5nKyhlLmctdC5nKSpuLHRoaXMuYj10LmIrKGUuYi10LmIpKm4sdGhpc31sZXJwSFNMKHQsZSl7dGhpcy5nZXRIU0woVWx0KSx0LmdldEhTTChXbHQpO2NvbnN0IG49bXN0KFVsdC5oLFdsdC5oLGUpLG89bXN0KFVsdC5zLFdsdC5zLGUpLGk9bXN0KFVsdC5sLFdsdC5sLGUpO3JldHVybiB0aGlzLnNldEhTTChuLG8saSksdGhpc31lcXVhbHModCl7cmV0dXJuIHQucj09PXRoaXMuciYmdC5nPT09dGhpcy5nJiZ0LmI9PT10aGlzLmJ9ZnJvbUFycmF5KHQsZT0wKXtyZXR1cm4gdGhpcy5yPXRbZV0sdGhpcy5nPXRbZSsxXSx0aGlzLmI9dFtlKzJdLHRoaXN9dG9BcnJheSh0PVtdLGU9MCl7cmV0dXJuIHRbZV09dGhpcy5yLHRbZSsxXT10aGlzLmcsdFtlKzJdPXRoaXMuYix0fWZyb21CdWZmZXJBdHRyaWJ1dGUodCxlKXtyZXR1cm4gdGhpcy5yPXQuZ2V0WChlKSx0aGlzLmc9dC5nZXRZKGUpLHRoaXMuYj10LmdldFooZSksITA9PT10Lm5vcm1hbGl6ZWQmJih0aGlzLnIvPTI1NSx0aGlzLmcvPTI1NSx0aGlzLmIvPTI1NSksdGhpc310b0pTT04oKXtyZXR1cm4gdGhpcy5nZXRIZXgoKX19Wmx0Lk5BTUVTPWpsdCxabHQucHJvdG90eXBlLmlzQ29sb3I9ITAsWmx0LnByb3RvdHlwZS5yPTEsWmx0LnByb3RvdHlwZS5nPTEsWmx0LnByb3RvdHlwZS5iPTE7Y2xhc3MgWGx0IGV4dGVuZHMgVmx0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJNZXNoQmFzaWNNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgWmx0KDE2Nzc3MjE1KSx0aGlzLm1hcD1udWxsLHRoaXMubGlnaHRNYXA9bnVsbCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PTEsdGhpcy5hb01hcD1udWxsLHRoaXMuYW9NYXBJbnRlbnNpdHk9MSx0aGlzLnNwZWN1bGFyTWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuZW52TWFwPW51bGwsdGhpcy5jb21iaW5lPTAsdGhpcy5yZWZsZWN0aXZpdHk9MSx0aGlzLnJlZnJhY3Rpb25SYXRpbz0uOTgsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLndpcmVmcmFtZUxpbmVjYXA9InJvdW5kIix0aGlzLndpcmVmcmFtZUxpbmVqb2luPSJyb3VuZCIsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5tYXA9dC5tYXAsdGhpcy5saWdodE1hcD10LmxpZ2h0TWFwLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9dC5saWdodE1hcEludGVuc2l0eSx0aGlzLmFvTWFwPXQuYW9NYXAsdGhpcy5hb01hcEludGVuc2l0eT10LmFvTWFwSW50ZW5zaXR5LHRoaXMuc3BlY3VsYXJNYXA9dC5zcGVjdWxhck1hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5lbnZNYXA9dC5lbnZNYXAsdGhpcy5jb21iaW5lPXQuY29tYmluZSx0aGlzLnJlZmxlY3Rpdml0eT10LnJlZmxlY3Rpdml0eSx0aGlzLnJlZnJhY3Rpb25SYXRpbz10LnJlZnJhY3Rpb25SYXRpbyx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLndpcmVmcmFtZUxpbmVjYXA9dC53aXJlZnJhbWVMaW5lY2FwLHRoaXMud2lyZWZyYW1lTGluZWpvaW49dC53aXJlZnJhbWVMaW5lam9pbix0aGlzfX1YbHQucHJvdG90eXBlLmlzTWVzaEJhc2ljTWF0ZXJpYWw9ITA7Y29uc3QgS2x0PW5ldyB3c3QsSmx0PW5ldyBnc3Q7Y2xhc3MgUWx0e2NvbnN0cnVjdG9yKHQsZSxuKXtpZihBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZTogYXJyYXkgc2hvdWxkIGJlIGEgVHlwZWQgQXJyYXkuIik7dGhpcy5uYW1lPSIiLHRoaXMuYXJyYXk9dCx0aGlzLml0ZW1TaXplPWUsdGhpcy5jb3VudD12b2lkIDAhPT10P3QubGVuZ3RoL2U6MCx0aGlzLm5vcm1hbGl6ZWQ9ITA9PT1uLHRoaXMudXNhZ2U9b3N0LHRoaXMudXBkYXRlUmFuZ2U9e29mZnNldDowLGNvdW50Oi0xfSx0aGlzLnZlcnNpb249MH1vblVwbG9hZENhbGxiYWNrKCl7fXNldCBuZWVkc1VwZGF0ZSh0KXshMD09PXQmJnRoaXMudmVyc2lvbisrfXNldFVzYWdlKHQpe3JldHVybiB0aGlzLnVzYWdlPXQsdGhpc31jb3B5KHQpe3JldHVybiB0aGlzLm5hbWU9dC5uYW1lLHRoaXMuYXJyYXk9bmV3IHQuYXJyYXkuY29uc3RydWN0b3IodC5hcnJheSksdGhpcy5pdGVtU2l6ZT10Lml0ZW1TaXplLHRoaXMuY291bnQ9dC5jb3VudCx0aGlzLm5vcm1hbGl6ZWQ9dC5ub3JtYWxpemVkLHRoaXMudXNhZ2U9dC51c2FnZSx0aGlzfWNvcHlBdCh0LGUsbil7dCo9dGhpcy5pdGVtU2l6ZSxuKj1lLml0ZW1TaXplO2ZvcihsZXQgbz0wLGk9dGhpcy5pdGVtU2l6ZTtvPGk7bysrKXRoaXMuYXJyYXlbdCtvXT1lLmFycmF5W24rb107cmV0dXJuIHRoaXN9Y29weUFycmF5KHQpe3JldHVybiB0aGlzLmFycmF5LnNldCh0KSx0aGlzfWNvcHlDb2xvcnNBcnJheSh0KXtjb25zdCBlPXRoaXMuYXJyYXk7bGV0IG49MDtmb3IobGV0IG89MCxpPXQubGVuZ3RoO288aTtvKyspe2xldCBpPXRbb107dm9pZCAwPT09aSYmKGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlLmNvcHlDb2xvcnNBcnJheSgpOiBjb2xvciBpcyB1bmRlZmluZWQiLG8pLGk9bmV3IFpsdCksZVtuKytdPWkucixlW24rK109aS5nLGVbbisrXT1pLmJ9cmV0dXJuIHRoaXN9Y29weVZlY3RvcjJzQXJyYXkodCl7Y29uc3QgZT10aGlzLmFycmF5O2xldCBuPTA7Zm9yKGxldCBvPTAsaT10Lmxlbmd0aDtvPGk7bysrKXtsZXQgaT10W29dO3ZvaWQgMD09PWkmJihjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZS5jb3B5VmVjdG9yMnNBcnJheSgpOiB2ZWN0b3IgaXMgdW5kZWZpbmVkIixvKSxpPW5ldyBnc3QpLGVbbisrXT1pLngsZVtuKytdPWkueX1yZXR1cm4gdGhpc31jb3B5VmVjdG9yM3NBcnJheSh0KXtjb25zdCBlPXRoaXMuYXJyYXk7bGV0IG49MDtmb3IobGV0IG89MCxpPXQubGVuZ3RoO288aTtvKyspe2xldCBpPXRbb107dm9pZCAwPT09aSYmKGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlLmNvcHlWZWN0b3Izc0FycmF5KCk6IHZlY3RvciBpcyB1bmRlZmluZWQiLG8pLGk9bmV3IHdzdCksZVtuKytdPWkueCxlW24rK109aS55LGVbbisrXT1pLnp9cmV0dXJuIHRoaXN9Y29weVZlY3RvcjRzQXJyYXkodCl7Y29uc3QgZT10aGlzLmFycmF5O2xldCBuPTA7Zm9yKGxldCBvPTAsaT10Lmxlbmd0aDtvPGk7bysrKXtsZXQgaT10W29dO3ZvaWQgMD09PWkmJihjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZS5jb3B5VmVjdG9yNHNBcnJheSgpOiB2ZWN0b3IgaXMgdW5kZWZpbmVkIixvKSxpPW5ldyB2c3QpLGVbbisrXT1pLngsZVtuKytdPWkueSxlW24rK109aS56LGVbbisrXT1pLnd9cmV0dXJuIHRoaXN9YXBwbHlNYXRyaXgzKHQpe2lmKDI9PT10aGlzLml0ZW1TaXplKWZvcihsZXQgZT0wLG49dGhpcy5jb3VudDtlPG47ZSsrKUpsdC5mcm9tQnVmZmVyQXR0cmlidXRlKHRoaXMsZSksSmx0LmFwcGx5TWF0cml4Myh0KSx0aGlzLnNldFhZKGUsSmx0LngsSmx0LnkpO2Vsc2UgaWYoMz09PXRoaXMuaXRlbVNpemUpZm9yKGxldCBlPTAsbj10aGlzLmNvdW50O2U8bjtlKyspS2x0LmZyb21CdWZmZXJBdHRyaWJ1dGUodGhpcyxlKSxLbHQuYXBwbHlNYXRyaXgzKHQpLHRoaXMuc2V0WFlaKGUsS2x0LngsS2x0LnksS2x0LnopO3JldHVybiB0aGlzfWFwcGx5TWF0cml4NCh0KXtmb3IobGV0IGU9MCxuPXRoaXMuY291bnQ7ZTxuO2UrKylLbHQueD10aGlzLmdldFgoZSksS2x0Lnk9dGhpcy5nZXRZKGUpLEtsdC56PXRoaXMuZ2V0WihlKSxLbHQuYXBwbHlNYXRyaXg0KHQpLHRoaXMuc2V0WFlaKGUsS2x0LngsS2x0LnksS2x0LnopO3JldHVybiB0aGlzfWFwcGx5Tm9ybWFsTWF0cml4KHQpe2ZvcihsZXQgZT0wLG49dGhpcy5jb3VudDtlPG47ZSsrKUtsdC54PXRoaXMuZ2V0WChlKSxLbHQueT10aGlzLmdldFkoZSksS2x0Lno9dGhpcy5nZXRaKGUpLEtsdC5hcHBseU5vcm1hbE1hdHJpeCh0KSx0aGlzLnNldFhZWihlLEtsdC54LEtsdC55LEtsdC56KTtyZXR1cm4gdGhpc310cmFuc2Zvcm1EaXJlY3Rpb24odCl7Zm9yKGxldCBlPTAsbj10aGlzLmNvdW50O2U8bjtlKyspS2x0Lng9dGhpcy5nZXRYKGUpLEtsdC55PXRoaXMuZ2V0WShlKSxLbHQuej10aGlzLmdldFooZSksS2x0LnRyYW5zZm9ybURpcmVjdGlvbih0KSx0aGlzLnNldFhZWihlLEtsdC54LEtsdC55LEtsdC56KTtyZXR1cm4gdGhpc31zZXQodCxlPTApe3JldHVybiB0aGlzLmFycmF5LnNldCh0LGUpLHRoaXN9Z2V0WCh0KXtyZXR1cm4gdGhpcy5hcnJheVt0KnRoaXMuaXRlbVNpemVdfXNldFgodCxlKXtyZXR1cm4gdGhpcy5hcnJheVt0KnRoaXMuaXRlbVNpemVdPWUsdGhpc31nZXRZKHQpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZSsxXX1zZXRZKHQsZSl7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplKzFdPWUsdGhpc31nZXRaKHQpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZSsyXX1zZXRaKHQsZSl7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplKzJdPWUsdGhpc31nZXRXKHQpe3JldHVybiB0aGlzLmFycmF5W3QqdGhpcy5pdGVtU2l6ZSszXX1zZXRXKHQsZSl7cmV0dXJuIHRoaXMuYXJyYXlbdCp0aGlzLml0ZW1TaXplKzNdPWUsdGhpc31zZXRYWSh0LGUsbil7cmV0dXJuIHRoaXMuYXJyYXlbKHQqPXRoaXMuaXRlbVNpemUpKzBdPWUsdGhpcy5hcnJheVt0KzFdPW4sdGhpc31zZXRYWVoodCxlLG4sbyl7cmV0dXJuIHRoaXMuYXJyYXlbKHQqPXRoaXMuaXRlbVNpemUpKzBdPWUsdGhpcy5hcnJheVt0KzFdPW4sdGhpcy5hcnJheVt0KzJdPW8sdGhpc31zZXRYWVpXKHQsZSxuLG8saSl7cmV0dXJuIHRoaXMuYXJyYXlbKHQqPXRoaXMuaXRlbVNpemUpKzBdPWUsdGhpcy5hcnJheVt0KzFdPW4sdGhpcy5hcnJheVt0KzJdPW8sdGhpcy5hcnJheVt0KzNdPWksdGhpc31vblVwbG9hZCh0KXtyZXR1cm4gdGhpcy5vblVwbG9hZENhbGxiYWNrPXQsdGhpc31jbG9uZSgpe3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzLmFycmF5LHRoaXMuaXRlbVNpemUpLmNvcHkodGhpcyl9dG9KU09OKCl7Y29uc3QgdD17aXRlbVNpemU6dGhpcy5pdGVtU2l6ZSx0eXBlOnRoaXMuYXJyYXkuY29uc3RydWN0b3IubmFtZSxhcnJheTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLmFycmF5KSxub3JtYWxpemVkOnRoaXMubm9ybWFsaXplZH07cmV0dXJuIiIhPT10aGlzLm5hbWUmJih0Lm5hbWU9dGhpcy5uYW1lKSx0aGlzLnVzYWdlIT09b3N0JiYodC51c2FnZT10aGlzLnVzYWdlKSwwPT09dGhpcy51cGRhdGVSYW5nZS5vZmZzZXQmJi0xPT09dGhpcy51cGRhdGVSYW5nZS5jb3VudHx8KHQudXBkYXRlUmFuZ2U9dGhpcy51cGRhdGVSYW5nZSksdH19UWx0LnByb3RvdHlwZS5pc0J1ZmZlckF0dHJpYnV0ZT0hMDtjbGFzcyAkbHQgZXh0ZW5kcyBRbHR7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKG5ldyBVaW50MTZBcnJheSh0KSxlLG4pfX1jbGFzcyB0Y3QgZXh0ZW5kcyBRbHR7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKG5ldyBVaW50MzJBcnJheSh0KSxlLG4pfX0oY2xhc3MgZXh0ZW5kcyBRbHR7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKG5ldyBVaW50MTZBcnJheSh0KSxlLG4pfX0pLnByb3RvdHlwZS5pc0Zsb2F0MTZCdWZmZXJBdHRyaWJ1dGU9ITA7Y2xhc3MgZWN0IGV4dGVuZHMgUWx0e2NvbnN0cnVjdG9yKHQsZSxuKXtzdXBlcihuZXcgRmxvYXQzMkFycmF5KHQpLGUsbil9fWZ1bmN0aW9uIG5jdCh0KXtpZigwPT09dC5sZW5ndGgpcmV0dXJuLTEvMDtsZXQgZT10WzBdO2ZvcihsZXQgbj0xLG89dC5sZW5ndGg7bjxvOysrbil0W25dPmUmJihlPXRbbl0pO3JldHVybiBlfWxldCBvY3Q9MDtjb25zdCBpY3Q9bmV3IG9sdCxhY3Q9bmV3IFNsdCxyY3Q9bmV3IHdzdCxzY3Q9bmV3IERzdCxsY3Q9bmV3IERzdCxjY3Q9bmV3IHdzdDtjbGFzcyBkY3QgZXh0ZW5kcyByc3R7Y29uc3RydWN0b3IoKXtzdXBlcigpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJpZCIse3ZhbHVlOm9jdCsrfSksdGhpcy51dWlkPWRzdCgpLHRoaXMubmFtZT0iIix0aGlzLnR5cGU9IkJ1ZmZlckdlb21ldHJ5Iix0aGlzLmluZGV4PW51bGwsdGhpcy5hdHRyaWJ1dGVzPXt9LHRoaXMubW9ycGhBdHRyaWJ1dGVzPXt9LHRoaXMubW9ycGhUYXJnZXRzUmVsYXRpdmU9ITEsdGhpcy5ncm91cHM9W10sdGhpcy5ib3VuZGluZ0JveD1udWxsLHRoaXMuYm91bmRpbmdTcGhlcmU9bnVsbCx0aGlzLmRyYXdSYW5nZT17c3RhcnQ6MCxjb3VudDoxLzB9LHRoaXMudXNlckRhdGE9e319Z2V0SW5kZXgoKXtyZXR1cm4gdGhpcy5pbmRleH1zZXRJbmRleCh0KXtyZXR1cm4gdGhpcy5pbmRleD1BcnJheS5pc0FycmF5KHQpP25ldyhuY3QodCk+NjU1MzU/dGN0OiRsdCkodCwxKTp0LHRoaXN9Z2V0QXR0cmlidXRlKHQpe3JldHVybiB0aGlzLmF0dHJpYnV0ZXNbdF19c2V0QXR0cmlidXRlKHQsZSl7cmV0dXJuIHRoaXMuYXR0cmlidXRlc1t0XT1lLHRoaXN9ZGVsZXRlQXR0cmlidXRlKHQpe3JldHVybiBkZWxldGUgdGhpcy5hdHRyaWJ1dGVzW3RdLHRoaXN9aGFzQXR0cmlidXRlKHQpe3JldHVybiB2b2lkIDAhPT10aGlzLmF0dHJpYnV0ZXNbdF19YWRkR3JvdXAodCxlLG49MCl7dGhpcy5ncm91cHMucHVzaCh7c3RhcnQ6dCxjb3VudDplLG1hdGVyaWFsSW5kZXg6bn0pfWNsZWFyR3JvdXBzKCl7dGhpcy5ncm91cHM9W119c2V0RHJhd1JhbmdlKHQsZSl7dGhpcy5kcmF3UmFuZ2Uuc3RhcnQ9dCx0aGlzLmRyYXdSYW5nZS5jb3VudD1lfWFwcGx5TWF0cml4NCh0KXtjb25zdCBlPXRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbjt2b2lkIDAhPT1lJiYoZS5hcHBseU1hdHJpeDQodCksZS5uZWVkc1VwZGF0ZT0hMCk7Y29uc3Qgbj10aGlzLmF0dHJpYnV0ZXMubm9ybWFsO2lmKHZvaWQgMCE9PW4pe2NvbnN0IGU9KG5ldyBoc3QpLmdldE5vcm1hbE1hdHJpeCh0KTtuLmFwcGx5Tm9ybWFsTWF0cml4KGUpLG4ubmVlZHNVcGRhdGU9ITB9Y29uc3Qgbz10aGlzLmF0dHJpYnV0ZXMudGFuZ2VudDtyZXR1cm4gdm9pZCAwIT09byYmKG8udHJhbnNmb3JtRGlyZWN0aW9uKHQpLG8ubmVlZHNVcGRhdGU9ITApLG51bGwhPT10aGlzLmJvdW5kaW5nQm94JiZ0aGlzLmNvbXB1dGVCb3VuZGluZ0JveCgpLG51bGwhPT10aGlzLmJvdW5kaW5nU3BoZXJlJiZ0aGlzLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpLHRoaXN9YXBwbHlRdWF0ZXJuaW9uKHQpe3JldHVybiBpY3QubWFrZVJvdGF0aW9uRnJvbVF1YXRlcm5pb24odCksdGhpcy5hcHBseU1hdHJpeDQoaWN0KSx0aGlzfXJvdGF0ZVgodCl7cmV0dXJuIGljdC5tYWtlUm90YXRpb25YKHQpLHRoaXMuYXBwbHlNYXRyaXg0KGljdCksdGhpc31yb3RhdGVZKHQpe3JldHVybiBpY3QubWFrZVJvdGF0aW9uWSh0KSx0aGlzLmFwcGx5TWF0cml4NChpY3QpLHRoaXN9cm90YXRlWih0KXtyZXR1cm4gaWN0Lm1ha2VSb3RhdGlvbloodCksdGhpcy5hcHBseU1hdHJpeDQoaWN0KSx0aGlzfXRyYW5zbGF0ZSh0LGUsbil7cmV0dXJuIGljdC5tYWtlVHJhbnNsYXRpb24odCxlLG4pLHRoaXMuYXBwbHlNYXRyaXg0KGljdCksdGhpc31zY2FsZSh0LGUsbil7cmV0dXJuIGljdC5tYWtlU2NhbGUodCxlLG4pLHRoaXMuYXBwbHlNYXRyaXg0KGljdCksdGhpc31sb29rQXQodCl7cmV0dXJuIGFjdC5sb29rQXQodCksYWN0LnVwZGF0ZU1hdHJpeCgpLHRoaXMuYXBwbHlNYXRyaXg0KGFjdC5tYXRyaXgpLHRoaXN9Y2VudGVyKCl7cmV0dXJuIHRoaXMuY29tcHV0ZUJvdW5kaW5nQm94KCksdGhpcy5ib3VuZGluZ0JveC5nZXRDZW50ZXIocmN0KS5uZWdhdGUoKSx0aGlzLnRyYW5zbGF0ZShyY3QueCxyY3QueSxyY3QueiksdGhpc31zZXRGcm9tUG9pbnRzKHQpe2NvbnN0IGU9W107Zm9yKGxldCBuPTAsbz10Lmxlbmd0aDtuPG87bisrKXtjb25zdCBvPXRbbl07ZS5wdXNoKG8ueCxvLnksby56fHwwKX1yZXR1cm4gdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgZWN0KGUsMykpLHRoaXN9Y29tcHV0ZUJvdW5kaW5nQm94KCl7bnVsbD09PXRoaXMuYm91bmRpbmdCb3gmJih0aGlzLmJvdW5kaW5nQm94PW5ldyBEc3QpO2NvbnN0IHQ9dGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLGU9dGhpcy5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb247aWYodCYmdC5pc0dMQnVmZmVyQXR0cmlidXRlKXJldHVybiBjb25zb2xlLmVycm9yKCdUSFJFRS5CdWZmZXJHZW9tZXRyeS5jb21wdXRlQm91bmRpbmdCb3goKTogR0xCdWZmZXJBdHRyaWJ1dGUgcmVxdWlyZXMgYSBtYW51YWwgYm91bmRpbmcgYm94LiBBbHRlcm5hdGl2ZWx5IHNldCAibWVzaC5mcnVzdHVtQ3VsbGVkIiB0byAiZmFsc2UiLicsdGhpcyksdm9pZCB0aGlzLmJvdW5kaW5nQm94LnNldChuZXcgd3N0KC0xLzAsLTEvMCwtMS8wKSxuZXcgd3N0KDEvMCwxLzAsMS8wKSk7aWYodm9pZCAwIT09dCl7aWYodGhpcy5ib3VuZGluZ0JveC5zZXRGcm9tQnVmZmVyQXR0cmlidXRlKHQpLGUpZm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0PG47dCsrKXtzY3Quc2V0RnJvbUJ1ZmZlckF0dHJpYnV0ZShlW3RdKSx0aGlzLm1vcnBoVGFyZ2V0c1JlbGF0aXZlPyhjY3QuYWRkVmVjdG9ycyh0aGlzLmJvdW5kaW5nQm94Lm1pbixzY3QubWluKSx0aGlzLmJvdW5kaW5nQm94LmV4cGFuZEJ5UG9pbnQoY2N0KSxjY3QuYWRkVmVjdG9ycyh0aGlzLmJvdW5kaW5nQm94Lm1heCxzY3QubWF4KSx0aGlzLmJvdW5kaW5nQm94LmV4cGFuZEJ5UG9pbnQoY2N0KSk6KHRoaXMuYm91bmRpbmdCb3guZXhwYW5kQnlQb2ludChzY3QubWluKSx0aGlzLmJvdW5kaW5nQm94LmV4cGFuZEJ5UG9pbnQoc2N0Lm1heCkpfX1lbHNlIHRoaXMuYm91bmRpbmdCb3gubWFrZUVtcHR5KCk7KGlzTmFOKHRoaXMuYm91bmRpbmdCb3gubWluLngpfHxpc05hTih0aGlzLmJvdW5kaW5nQm94Lm1pbi55KXx8aXNOYU4odGhpcy5ib3VuZGluZ0JveC5taW4ueikpJiZjb25zb2xlLmVycm9yKCdUSFJFRS5CdWZmZXJHZW9tZXRyeS5jb21wdXRlQm91bmRpbmdCb3goKTogQ29tcHV0ZWQgbWluL21heCBoYXZlIE5hTiB2YWx1ZXMuIFRoZSAicG9zaXRpb24iIGF0dHJpYnV0ZSBpcyBsaWtlbHkgdG8gaGF2ZSBOYU4gdmFsdWVzLicsdGhpcyl9Y29tcHV0ZUJvdW5kaW5nU3BoZXJlKCl7bnVsbD09PXRoaXMuYm91bmRpbmdTcGhlcmUmJih0aGlzLmJvdW5kaW5nU3BoZXJlPW5ldyBac3QpO2NvbnN0IHQ9dGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLGU9dGhpcy5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb247aWYodCYmdC5pc0dMQnVmZmVyQXR0cmlidXRlKXJldHVybiBjb25zb2xlLmVycm9yKCdUSFJFRS5CdWZmZXJHZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTogR0xCdWZmZXJBdHRyaWJ1dGUgcmVxdWlyZXMgYSBtYW51YWwgYm91bmRpbmcgc3BoZXJlLiBBbHRlcm5hdGl2ZWx5IHNldCAibWVzaC5mcnVzdHVtQ3VsbGVkIiB0byAiZmFsc2UiLicsdGhpcyksdm9pZCB0aGlzLmJvdW5kaW5nU3BoZXJlLnNldChuZXcgd3N0LDEvMCk7aWYodCl7Y29uc3Qgbj10aGlzLmJvdW5kaW5nU3BoZXJlLmNlbnRlcjtpZihzY3Quc2V0RnJvbUJ1ZmZlckF0dHJpYnV0ZSh0KSxlKWZvcihsZXQgdD0wLG49ZS5sZW5ndGg7dDxuO3QrKyl7bGN0LnNldEZyb21CdWZmZXJBdHRyaWJ1dGUoZVt0XSksdGhpcy5tb3JwaFRhcmdldHNSZWxhdGl2ZT8oY2N0LmFkZFZlY3RvcnMoc2N0Lm1pbixsY3QubWluKSxzY3QuZXhwYW5kQnlQb2ludChjY3QpLGNjdC5hZGRWZWN0b3JzKHNjdC5tYXgsbGN0Lm1heCksc2N0LmV4cGFuZEJ5UG9pbnQoY2N0KSk6KHNjdC5leHBhbmRCeVBvaW50KGxjdC5taW4pLHNjdC5leHBhbmRCeVBvaW50KGxjdC5tYXgpKX1zY3QuZ2V0Q2VudGVyKG4pO2xldCBvPTA7Zm9yKGxldCBlPTAsaT10LmNvdW50O2U8aTtlKyspY2N0LmZyb21CdWZmZXJBdHRyaWJ1dGUodCxlKSxvPU1hdGgubWF4KG8sbi5kaXN0YW5jZVRvU3F1YXJlZChjY3QpKTtpZihlKWZvcihsZXQgaT0wLGE9ZS5sZW5ndGg7aTxhO2krKyl7Y29uc3QgYT1lW2ldLHI9dGhpcy5tb3JwaFRhcmdldHNSZWxhdGl2ZTtmb3IobGV0IGU9MCxpPWEuY291bnQ7ZTxpO2UrKyljY3QuZnJvbUJ1ZmZlckF0dHJpYnV0ZShhLGUpLHImJihyY3QuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUpLGNjdC5hZGQocmN0KSksbz1NYXRoLm1heChvLG4uZGlzdGFuY2VUb1NxdWFyZWQoY2N0KSl9dGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXM9TWF0aC5zcXJ0KG8pLGlzTmFOKHRoaXMuYm91bmRpbmdTcGhlcmUucmFkaXVzKSYmY29uc29sZS5lcnJvcignVEhSRUUuQnVmZmVyR2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCk6IENvbXB1dGVkIHJhZGl1cyBpcyBOYU4uIFRoZSAicG9zaXRpb24iIGF0dHJpYnV0ZSBpcyBsaWtlbHkgdG8gaGF2ZSBOYU4gdmFsdWVzLicsdGhpcyl9fWNvbXB1dGVGYWNlTm9ybWFscygpe31jb21wdXRlVGFuZ2VudHMoKXtjb25zdCB0PXRoaXMuaW5kZXgsZT10aGlzLmF0dHJpYnV0ZXM7aWYobnVsbD09PXR8fHZvaWQgMD09PWUucG9zaXRpb258fHZvaWQgMD09PWUubm9ybWFsfHx2b2lkIDA9PT1lLnV2KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuY29tcHV0ZVRhbmdlbnRzKCkgZmFpbGVkLiBNaXNzaW5nIHJlcXVpcmVkIGF0dHJpYnV0ZXMgKGluZGV4LCBwb3NpdGlvbiwgbm9ybWFsIG9yIHV2KSIpO2NvbnN0IG49dC5hcnJheSxvPWUucG9zaXRpb24uYXJyYXksaT1lLm5vcm1hbC5hcnJheSxhPWUudXYuYXJyYXkscj1vLmxlbmd0aC8zO3ZvaWQgMD09PWUudGFuZ2VudCYmdGhpcy5zZXRBdHRyaWJ1dGUoInRhbmdlbnQiLG5ldyBRbHQobmV3IEZsb2F0MzJBcnJheSg0KnIpLDQpKTtjb25zdCBzPWUudGFuZ2VudC5hcnJheSxsPVtdLGM9W107Zm9yKGxldCB0PTA7dDxyO3QrKylsW3RdPW5ldyB3c3QsY1t0XT1uZXcgd3N0O2NvbnN0IGQ9bmV3IHdzdCxwPW5ldyB3c3QsbT1uZXcgd3N0LGY9bmV3IGdzdCx1PW5ldyBnc3QsZz1uZXcgZ3N0LGg9bmV3IHdzdCxiPW5ldyB3c3Q7ZnVuY3Rpb24geSh0LGUsbil7ZC5mcm9tQXJyYXkobywzKnQpLHAuZnJvbUFycmF5KG8sMyplKSxtLmZyb21BcnJheShvLDMqbiksZi5mcm9tQXJyYXkoYSwyKnQpLHUuZnJvbUFycmF5KGEsMiplKSxnLmZyb21BcnJheShhLDIqbikscC5zdWIoZCksbS5zdWIoZCksdS5zdWIoZiksZy5zdWIoZik7Y29uc3QgaT0xLyh1LngqZy55LWcueCp1LnkpO2lzRmluaXRlKGkpJiYoaC5jb3B5KHApLm11bHRpcGx5U2NhbGFyKGcueSkuYWRkU2NhbGVkVmVjdG9yKG0sLXUueSkubXVsdGlwbHlTY2FsYXIoaSksYi5jb3B5KG0pLm11bHRpcGx5U2NhbGFyKHUueCkuYWRkU2NhbGVkVmVjdG9yKHAsLWcueCkubXVsdGlwbHlTY2FsYXIoaSksbFt0XS5hZGQoaCksbFtlXS5hZGQoaCksbFtuXS5hZGQoaCksY1t0XS5hZGQoYiksY1tlXS5hZGQoYiksY1tuXS5hZGQoYikpfWxldCBfPXRoaXMuZ3JvdXBzOzA9PT1fLmxlbmd0aCYmKF89W3tzdGFydDowLGNvdW50Om4ubGVuZ3RofV0pO2ZvcihsZXQgdD0wLGU9Xy5sZW5ndGg7dDxlOysrdCl7Y29uc3QgZT1fW3RdLG89ZS5zdGFydDtmb3IobGV0IHQ9byxpPW8rZS5jb3VudDt0PGk7dCs9Myl5KG5bdCswXSxuW3QrMV0sblt0KzJdKX1jb25zdCBDPW5ldyB3c3QsTT1uZXcgd3N0LHY9bmV3IHdzdCx4PW5ldyB3c3Q7ZnVuY3Rpb24gTyh0KXt2LmZyb21BcnJheShpLDMqdCkseC5jb3B5KHYpO2NvbnN0IGU9bFt0XTtDLmNvcHkoZSksQy5zdWIodi5tdWx0aXBseVNjYWxhcih2LmRvdChlKSkpLm5vcm1hbGl6ZSgpLE0uY3Jvc3NWZWN0b3JzKHgsZSk7Y29uc3Qgbj1NLmRvdChjW3RdKTwwPy0xOjE7c1s0KnRdPUMueCxzWzQqdCsxXT1DLnksc1s0KnQrMl09Qy56LHNbNCp0KzNdPW59Zm9yKGxldCB0PTAsZT1fLmxlbmd0aDt0PGU7Kyt0KXtjb25zdCBlPV9bdF0sbz1lLnN0YXJ0O2ZvcihsZXQgdD1vLGk9bytlLmNvdW50O3Q8aTt0Kz0zKU8oblt0KzBdKSxPKG5bdCsxXSksTyhuW3QrMl0pfX1jb21wdXRlVmVydGV4Tm9ybWFscygpe2NvbnN0IHQ9dGhpcy5pbmRleCxlPXRoaXMuZ2V0QXR0cmlidXRlKCJwb3NpdGlvbiIpO2lmKHZvaWQgMCE9PWUpe2xldCBuPXRoaXMuZ2V0QXR0cmlidXRlKCJub3JtYWwiKTtpZih2b2lkIDA9PT1uKW49bmV3IFFsdChuZXcgRmxvYXQzMkFycmF5KDMqZS5jb3VudCksMyksdGhpcy5zZXRBdHRyaWJ1dGUoIm5vcm1hbCIsbik7ZWxzZSBmb3IobGV0IHQ9MCxlPW4uY291bnQ7dDxlO3QrKyluLnNldFhZWih0LDAsMCwwKTtjb25zdCBvPW5ldyB3c3QsaT1uZXcgd3N0LGE9bmV3IHdzdCxyPW5ldyB3c3Qscz1uZXcgd3N0LGw9bmV3IHdzdCxjPW5ldyB3c3QsZD1uZXcgd3N0O2lmKHQpZm9yKGxldCBwPTAsbT10LmNvdW50O3A8bTtwKz0zKXtjb25zdCBtPXQuZ2V0WChwKzApLGY9dC5nZXRYKHArMSksdT10LmdldFgocCsyKTtvLmZyb21CdWZmZXJBdHRyaWJ1dGUoZSxtKSxpLmZyb21CdWZmZXJBdHRyaWJ1dGUoZSxmKSxhLmZyb21CdWZmZXJBdHRyaWJ1dGUoZSx1KSxjLnN1YlZlY3RvcnMoYSxpKSxkLnN1YlZlY3RvcnMobyxpKSxjLmNyb3NzKGQpLHIuZnJvbUJ1ZmZlckF0dHJpYnV0ZShuLG0pLHMuZnJvbUJ1ZmZlckF0dHJpYnV0ZShuLGYpLGwuZnJvbUJ1ZmZlckF0dHJpYnV0ZShuLHUpLHIuYWRkKGMpLHMuYWRkKGMpLGwuYWRkKGMpLG4uc2V0WFlaKG0sci54LHIueSxyLnopLG4uc2V0WFlaKGYscy54LHMueSxzLnopLG4uc2V0WFlaKHUsbC54LGwueSxsLnopfWVsc2UgZm9yKGxldCB0PTAscj1lLmNvdW50O3Q8cjt0Kz0zKW8uZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLHQrMCksaS5mcm9tQnVmZmVyQXR0cmlidXRlKGUsdCsxKSxhLmZyb21CdWZmZXJBdHRyaWJ1dGUoZSx0KzIpLGMuc3ViVmVjdG9ycyhhLGkpLGQuc3ViVmVjdG9ycyhvLGkpLGMuY3Jvc3MoZCksbi5zZXRYWVoodCswLGMueCxjLnksYy56KSxuLnNldFhZWih0KzEsYy54LGMueSxjLnopLG4uc2V0WFlaKHQrMixjLngsYy55LGMueik7dGhpcy5ub3JtYWxpemVOb3JtYWxzKCksbi5uZWVkc1VwZGF0ZT0hMH19bWVyZ2UodCxlKXtpZighdHx8IXQuaXNCdWZmZXJHZW9tZXRyeSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5CdWZmZXJHZW9tZXRyeS5tZXJnZSgpOiBnZW9tZXRyeSBub3QgYW4gaW5zdGFuY2Ugb2YgVEhSRUUuQnVmZmVyR2VvbWV0cnkuIix0KTt2b2lkIDA9PT1lJiYoZT0wLGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnkubWVyZ2UoKTogT3ZlcndyaXRpbmcgb3JpZ2luYWwgZ2VvbWV0cnksIHN0YXJ0aW5nIGF0IG9mZnNldD0wLiBVc2UgQnVmZmVyR2VvbWV0cnlVdGlscy5tZXJnZUJ1ZmZlckdlb21ldHJpZXMoKSBmb3IgbG9zc2xlc3MgbWVyZ2UuIikpO2NvbnN0IG49dGhpcy5hdHRyaWJ1dGVzO2Zvcihjb25zdCBvIGluIG4pe2lmKHZvaWQgMD09PXQuYXR0cmlidXRlc1tvXSljb250aW51ZTtjb25zdCBpPW5bb10uYXJyYXksYT10LmF0dHJpYnV0ZXNbb10scj1hLmFycmF5LHM9YS5pdGVtU2l6ZSplLGw9TWF0aC5taW4oci5sZW5ndGgsaS5sZW5ndGgtcyk7Zm9yKGxldCB0PTAsZT1zO3Q8bDt0KyssZSsrKWlbZV09clt0XX1yZXR1cm4gdGhpc31ub3JtYWxpemVOb3JtYWxzKCl7Y29uc3QgdD10aGlzLmF0dHJpYnV0ZXMubm9ybWFsO2ZvcihsZXQgZT0wLG49dC5jb3VudDtlPG47ZSsrKWNjdC5mcm9tQnVmZmVyQXR0cmlidXRlKHQsZSksY2N0Lm5vcm1hbGl6ZSgpLHQuc2V0WFlaKGUsY2N0LngsY2N0LnksY2N0LnopfXRvTm9uSW5kZXhlZCgpe2Z1bmN0aW9uIHQodCxlKXtjb25zdCBuPXQuYXJyYXksbz10Lml0ZW1TaXplLGk9dC5ub3JtYWxpemVkLGE9bmV3IG4uY29uc3RydWN0b3IoZS5sZW5ndGgqbyk7bGV0IHI9MCxzPTA7Zm9yKGxldCBpPTAsbD1lLmxlbmd0aDtpPGw7aSsrKXtyPXQuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZT9lW2ldKnQuZGF0YS5zdHJpZGUrdC5vZmZzZXQ6ZVtpXSpvO2ZvcihsZXQgdD0wO3Q8bzt0KyspYVtzKytdPW5bcisrXX1yZXR1cm4gbmV3IFFsdChhLG8saSl9aWYobnVsbD09PXRoaXMuaW5kZXgpcmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnkudG9Ob25JbmRleGVkKCk6IEJ1ZmZlckdlb21ldHJ5IGlzIGFscmVhZHkgbm9uLWluZGV4ZWQuIiksdGhpcztjb25zdCBlPW5ldyBkY3Qsbj10aGlzLmluZGV4LmFycmF5LG89dGhpcy5hdHRyaWJ1dGVzO2Zvcihjb25zdCBpIGluIG8pe2NvbnN0IGE9dChvW2ldLG4pO2Uuc2V0QXR0cmlidXRlKGksYSl9Y29uc3QgaT10aGlzLm1vcnBoQXR0cmlidXRlcztmb3IoY29uc3QgbyBpbiBpKXtjb25zdCBhPVtdLHI9aVtvXTtmb3IobGV0IGU9MCxvPXIubGVuZ3RoO2U8bztlKyspe2NvbnN0IG89dChyW2VdLG4pO2EucHVzaChvKX1lLm1vcnBoQXR0cmlidXRlc1tvXT1hfWUubW9ycGhUYXJnZXRzUmVsYXRpdmU9dGhpcy5tb3JwaFRhcmdldHNSZWxhdGl2ZTtjb25zdCBhPXRoaXMuZ3JvdXBzO2ZvcihsZXQgdD0wLG49YS5sZW5ndGg7dDxuO3QrKyl7Y29uc3Qgbj1hW3RdO2UuYWRkR3JvdXAobi5zdGFydCxuLmNvdW50LG4ubWF0ZXJpYWxJbmRleCl9cmV0dXJuIGV9dG9KU09OKCl7Y29uc3QgdD17bWV0YWRhdGE6e3ZlcnNpb246NC41LHR5cGU6IkJ1ZmZlckdlb21ldHJ5IixnZW5lcmF0b3I6IkJ1ZmZlckdlb21ldHJ5LnRvSlNPTiJ9fTtpZih0LnV1aWQ9dGhpcy51dWlkLHQudHlwZT10aGlzLnR5cGUsIiIhPT10aGlzLm5hbWUmJih0Lm5hbWU9dGhpcy5uYW1lKSxPYmplY3Qua2V5cyh0aGlzLnVzZXJEYXRhKS5sZW5ndGg+MCYmKHQudXNlckRhdGE9dGhpcy51c2VyRGF0YSksdm9pZCAwIT09dGhpcy5wYXJhbWV0ZXJzKXtjb25zdCBlPXRoaXMucGFyYW1ldGVycztmb3IoY29uc3QgbiBpbiBlKXZvaWQgMCE9PWVbbl0mJih0W25dPWVbbl0pO3JldHVybiB0fXQuZGF0YT17YXR0cmlidXRlczp7fX07Y29uc3QgZT10aGlzLmluZGV4O251bGwhPT1lJiYodC5kYXRhLmluZGV4PXt0eXBlOmUuYXJyYXkuY29uc3RydWN0b3IubmFtZSxhcnJheTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLmFycmF5KX0pO2NvbnN0IG49dGhpcy5hdHRyaWJ1dGVzO2Zvcihjb25zdCBlIGluIG4pe3QuZGF0YS5hdHRyaWJ1dGVzW2VdPW5bZV0udG9KU09OKHQuZGF0YSl9Y29uc3Qgbz17fTtsZXQgaT0hMTtmb3IoY29uc3QgZSBpbiB0aGlzLm1vcnBoQXR0cmlidXRlcyl7Y29uc3Qgbj10aGlzLm1vcnBoQXR0cmlidXRlc1tlXSxhPVtdO2ZvcihsZXQgZT0wLG89bi5sZW5ndGg7ZTxvO2UrKyl7YS5wdXNoKG5bZV0udG9KU09OKHQuZGF0YSkpfWEubGVuZ3RoPjAmJihvW2VdPWEsaT0hMCl9aSYmKHQuZGF0YS5tb3JwaEF0dHJpYnV0ZXM9byx0LmRhdGEubW9ycGhUYXJnZXRzUmVsYXRpdmU9dGhpcy5tb3JwaFRhcmdldHNSZWxhdGl2ZSk7Y29uc3QgYT10aGlzLmdyb3VwczthLmxlbmd0aD4wJiYodC5kYXRhLmdyb3Vwcz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGEpKSk7Y29uc3Qgcj10aGlzLmJvdW5kaW5nU3BoZXJlO3JldHVybiBudWxsIT09ciYmKHQuZGF0YS5ib3VuZGluZ1NwaGVyZT17Y2VudGVyOnIuY2VudGVyLnRvQXJyYXkoKSxyYWRpdXM6ci5yYWRpdXN9KSx0fWNsb25lKCl7cmV0dXJuKG5ldyBkY3QpLmNvcHkodGhpcyl9Y29weSh0KXt0aGlzLmluZGV4PW51bGwsdGhpcy5hdHRyaWJ1dGVzPXt9LHRoaXMubW9ycGhBdHRyaWJ1dGVzPXt9LHRoaXMuZ3JvdXBzPVtdLHRoaXMuYm91bmRpbmdCb3g9bnVsbCx0aGlzLmJvdW5kaW5nU3BoZXJlPW51bGw7Y29uc3QgZT17fTt0aGlzLm5hbWU9dC5uYW1lO2NvbnN0IG49dC5pbmRleDtudWxsIT09biYmdGhpcy5zZXRJbmRleChuLmNsb25lKGUpKTtjb25zdCBvPXQuYXR0cmlidXRlcztmb3IoY29uc3QgdCBpbiBvKXt0aGlzLnNldEF0dHJpYnV0ZSh0LG9bdF0uY2xvbmUoZSkpfWNvbnN0IGk9dC5tb3JwaEF0dHJpYnV0ZXM7Zm9yKGNvbnN0IHQgaW4gaSl7Y29uc3Qgbj1bXSxvPWlbdF07Zm9yKGxldCB0PTAsaT1vLmxlbmd0aDt0PGk7dCsrKW4ucHVzaChvW3RdLmNsb25lKGUpKTt0aGlzLm1vcnBoQXR0cmlidXRlc1t0XT1ufXRoaXMubW9ycGhUYXJnZXRzUmVsYXRpdmU9dC5tb3JwaFRhcmdldHNSZWxhdGl2ZTtjb25zdCBhPXQuZ3JvdXBzO2ZvcihsZXQgdD0wLGU9YS5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT1hW3RdO3RoaXMuYWRkR3JvdXAoZS5zdGFydCxlLmNvdW50LGUubWF0ZXJpYWxJbmRleCl9Y29uc3Qgcj10LmJvdW5kaW5nQm94O251bGwhPT1yJiYodGhpcy5ib3VuZGluZ0JveD1yLmNsb25lKCkpO2NvbnN0IHM9dC5ib3VuZGluZ1NwaGVyZTtyZXR1cm4gbnVsbCE9PXMmJih0aGlzLmJvdW5kaW5nU3BoZXJlPXMuY2xvbmUoKSksdGhpcy5kcmF3UmFuZ2Uuc3RhcnQ9dC5kcmF3UmFuZ2Uuc3RhcnQsdGhpcy5kcmF3UmFuZ2UuY291bnQ9dC5kcmF3UmFuZ2UuY291bnQsdGhpcy51c2VyRGF0YT10LnVzZXJEYXRhLHRoaXN9ZGlzcG9zZSgpe3RoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiZGlzcG9zZSJ9KX19ZGN0LnByb3RvdHlwZS5pc0J1ZmZlckdlb21ldHJ5PSEwO2NvbnN0IHBjdD1uZXcgb2x0LG1jdD1uZXcgbmx0LGZjdD1uZXcgWnN0LHVjdD1uZXcgd3N0LGdjdD1uZXcgd3N0LGhjdD1uZXcgd3N0LGJjdD1uZXcgd3N0LHljdD1uZXcgd3N0LF9jdD1uZXcgd3N0LENjdD1uZXcgd3N0LE1jdD1uZXcgd3N0LHZjdD1uZXcgd3N0LHhjdD1uZXcgZ3N0LE9jdD1uZXcgZ3N0LFBjdD1uZXcgZ3N0LHdjdD1uZXcgd3N0LGtjdD1uZXcgd3N0O2NsYXNzIFNjdCBleHRlbmRzIFNsdHtjb25zdHJ1Y3Rvcih0PW5ldyBkY3QsZT1uZXcgWGx0KXtzdXBlcigpLHRoaXMudHlwZT0iTWVzaCIsdGhpcy5nZW9tZXRyeT10LHRoaXMubWF0ZXJpYWw9ZSx0aGlzLnVwZGF0ZU1vcnBoVGFyZ2V0cygpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdm9pZCAwIT09dC5tb3JwaFRhcmdldEluZmx1ZW5jZXMmJih0aGlzLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcz10Lm1vcnBoVGFyZ2V0SW5mbHVlbmNlcy5zbGljZSgpKSx2b2lkIDAhPT10Lm1vcnBoVGFyZ2V0RGljdGlvbmFyeSYmKHRoaXMubW9ycGhUYXJnZXREaWN0aW9uYXJ5PU9iamVjdC5hc3NpZ24oe30sdC5tb3JwaFRhcmdldERpY3Rpb25hcnkpKSx0aGlzLm1hdGVyaWFsPXQubWF0ZXJpYWwsdGhpcy5nZW9tZXRyeT10Lmdlb21ldHJ5LHRoaXN9dXBkYXRlTW9ycGhUYXJnZXRzKCl7Y29uc3QgdD10aGlzLmdlb21ldHJ5O2lmKHQuaXNCdWZmZXJHZW9tZXRyeSl7Y29uc3QgZT10Lm1vcnBoQXR0cmlidXRlcyxuPU9iamVjdC5rZXlzKGUpO2lmKG4ubGVuZ3RoPjApe2NvbnN0IHQ9ZVtuWzBdXTtpZih2b2lkIDAhPT10KXt0aGlzLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcz1bXSx0aGlzLm1vcnBoVGFyZ2V0RGljdGlvbmFyeT17fTtmb3IobGV0IGU9MCxuPXQubGVuZ3RoO2U8bjtlKyspe2NvbnN0IG49dFtlXS5uYW1lfHxTdHJpbmcoZSk7dGhpcy5tb3JwaFRhcmdldEluZmx1ZW5jZXMucHVzaCgwKSx0aGlzLm1vcnBoVGFyZ2V0RGljdGlvbmFyeVtuXT1lfX19fWVsc2V7Y29uc3QgZT10Lm1vcnBoVGFyZ2V0czt2b2lkIDAhPT1lJiZlLmxlbmd0aD4wJiZjb25zb2xlLmVycm9yKCJUSFJFRS5NZXNoLnVwZGF0ZU1vcnBoVGFyZ2V0cygpIG5vIGxvbmdlciBzdXBwb3J0cyBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIil9fXJheWNhc3QodCxlKXtjb25zdCBuPXRoaXMuZ2VvbWV0cnksbz10aGlzLm1hdGVyaWFsLGk9dGhpcy5tYXRyaXhXb3JsZDtpZih2b2lkIDA9PT1vKXJldHVybjtpZihudWxsPT09bi5ib3VuZGluZ1NwaGVyZSYmbi5jb21wdXRlQm91bmRpbmdTcGhlcmUoKSxmY3QuY29weShuLmJvdW5kaW5nU3BoZXJlKSxmY3QuYXBwbHlNYXRyaXg0KGkpLCExPT09dC5yYXkuaW50ZXJzZWN0c1NwaGVyZShmY3QpKXJldHVybjtpZihwY3QuY29weShpKS5pbnZlcnQoKSxtY3QuY29weSh0LnJheSkuYXBwbHlNYXRyaXg0KHBjdCksbnVsbCE9PW4uYm91bmRpbmdCb3gmJiExPT09bWN0LmludGVyc2VjdHNCb3gobi5ib3VuZGluZ0JveCkpcmV0dXJuO2xldCBhO2lmKG4uaXNCdWZmZXJHZW9tZXRyeSl7Y29uc3QgaT1uLmluZGV4LHI9bi5hdHRyaWJ1dGVzLnBvc2l0aW9uLHM9bi5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24sbD1uLm1vcnBoVGFyZ2V0c1JlbGF0aXZlLGM9bi5hdHRyaWJ1dGVzLnV2LGQ9bi5hdHRyaWJ1dGVzLnV2MixwPW4uZ3JvdXBzLG09bi5kcmF3UmFuZ2U7aWYobnVsbCE9PWkpaWYoQXJyYXkuaXNBcnJheShvKSlmb3IobGV0IG49MCxmPXAubGVuZ3RoO248ZjtuKyspe2NvbnN0IGY9cFtuXSx1PW9bZi5tYXRlcmlhbEluZGV4XTtmb3IobGV0IG49TWF0aC5tYXgoZi5zdGFydCxtLnN0YXJ0KSxvPU1hdGgubWluKGYuc3RhcnQrZi5jb3VudCxtLnN0YXJ0K20uY291bnQpO248bztuKz0zKXtjb25zdCBvPWkuZ2V0WChuKSxwPWkuZ2V0WChuKzEpLG09aS5nZXRYKG4rMik7YT1EY3QodGhpcyx1LHQsbWN0LHIscyxsLGMsZCxvLHAsbSksYSYmKGEuZmFjZUluZGV4PU1hdGguZmxvb3Iobi8zKSxhLmZhY2UubWF0ZXJpYWxJbmRleD1mLm1hdGVyaWFsSW5kZXgsZS5wdXNoKGEpKX19ZWxzZXtmb3IobGV0IG49TWF0aC5tYXgoMCxtLnN0YXJ0KSxwPU1hdGgubWluKGkuY291bnQsbS5zdGFydCttLmNvdW50KTtuPHA7bis9Myl7Y29uc3QgcD1pLmdldFgobiksbT1pLmdldFgobisxKSxmPWkuZ2V0WChuKzIpO2E9RGN0KHRoaXMsbyx0LG1jdCxyLHMsbCxjLGQscCxtLGYpLGEmJihhLmZhY2VJbmRleD1NYXRoLmZsb29yKG4vMyksZS5wdXNoKGEpKX19ZWxzZSBpZih2b2lkIDAhPT1yKWlmKEFycmF5LmlzQXJyYXkobykpZm9yKGxldCBuPTAsaT1wLmxlbmd0aDtuPGk7bisrKXtjb25zdCBpPXBbbl0sZj1vW2kubWF0ZXJpYWxJbmRleF07Zm9yKGxldCBuPU1hdGgubWF4KGkuc3RhcnQsbS5zdGFydCksbz1NYXRoLm1pbihpLnN0YXJ0K2kuY291bnQsbS5zdGFydCttLmNvdW50KTtuPG87bis9Myl7YT1EY3QodGhpcyxmLHQsbWN0LHIscyxsLGMsZCxuLG4rMSxuKzIpLGEmJihhLmZhY2VJbmRleD1NYXRoLmZsb29yKG4vMyksYS5mYWNlLm1hdGVyaWFsSW5kZXg9aS5tYXRlcmlhbEluZGV4LGUucHVzaChhKSl9fWVsc2V7Zm9yKGxldCBuPU1hdGgubWF4KDAsbS5zdGFydCksaT1NYXRoLm1pbihyLmNvdW50LG0uc3RhcnQrbS5jb3VudCk7bjxpO24rPTMpe2E9RGN0KHRoaXMsbyx0LG1jdCxyLHMsbCxjLGQsbixuKzEsbisyKSxhJiYoYS5mYWNlSW5kZXg9TWF0aC5mbG9vcihuLzMpLGUucHVzaChhKSl9fX1lbHNlIG4uaXNHZW9tZXRyeSYmY29uc29sZS5lcnJvcigiVEhSRUUuTWVzaC5yYXljYXN0KCkgbm8gbG9uZ2VyIHN1cHBvcnRzIFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKX19ZnVuY3Rpb24gRGN0KHQsZSxuLG8saSxhLHIscyxsLGMsZCxwKXt1Y3QuZnJvbUJ1ZmZlckF0dHJpYnV0ZShpLGMpLGdjdC5mcm9tQnVmZmVyQXR0cmlidXRlKGksZCksaGN0LmZyb21CdWZmZXJBdHRyaWJ1dGUoaSxwKTtjb25zdCBtPXQubW9ycGhUYXJnZXRJbmZsdWVuY2VzO2lmKGEmJm0pe0NjdC5zZXQoMCwwLDApLE1jdC5zZXQoMCwwLDApLHZjdC5zZXQoMCwwLDApO2ZvcihsZXQgdD0wLGU9YS5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT1tW3RdLG49YVt0XTswIT09ZSYmKGJjdC5mcm9tQnVmZmVyQXR0cmlidXRlKG4sYykseWN0LmZyb21CdWZmZXJBdHRyaWJ1dGUobixkKSxfY3QuZnJvbUJ1ZmZlckF0dHJpYnV0ZShuLHApLHI/KENjdC5hZGRTY2FsZWRWZWN0b3IoYmN0LGUpLE1jdC5hZGRTY2FsZWRWZWN0b3IoeWN0LGUpLHZjdC5hZGRTY2FsZWRWZWN0b3IoX2N0LGUpKTooQ2N0LmFkZFNjYWxlZFZlY3RvcihiY3Quc3ViKHVjdCksZSksTWN0LmFkZFNjYWxlZFZlY3Rvcih5Y3Quc3ViKGdjdCksZSksdmN0LmFkZFNjYWxlZFZlY3RvcihfY3Quc3ViKGhjdCksZSkpKX11Y3QuYWRkKENjdCksZ2N0LmFkZChNY3QpLGhjdC5hZGQodmN0KX10LmlzU2tpbm5lZE1lc2gmJih0LmJvbmVUcmFuc2Zvcm0oYyx1Y3QpLHQuYm9uZVRyYW5zZm9ybShkLGdjdCksdC5ib25lVHJhbnNmb3JtKHAsaGN0KSk7Y29uc3QgZj0oZnVuY3Rpb24gdSh0LGUsbixvLGksYSxyLHMpe2xldCBsO2lmKGw9MT09PWUuc2lkZT9vLmludGVyc2VjdFRyaWFuZ2xlKHIsYSxpLCEwLHMpOm8uaW50ZXJzZWN0VHJpYW5nbGUoaSxhLHIsMiE9PWUuc2lkZSxzKSxudWxsPT09bClyZXR1cm4gbnVsbDtrY3QuY29weShzKSxrY3QuYXBwbHlNYXRyaXg0KHQubWF0cml4V29ybGQpO2NvbnN0IGM9bi5yYXkub3JpZ2luLmRpc3RhbmNlVG8oa2N0KTtyZXR1cm4gYzxuLm5lYXJ8fGM+bi5mYXI/bnVsbDp7ZGlzdGFuY2U6Yyxwb2ludDprY3QuY2xvbmUoKSxvYmplY3Q6dH19KSh0LGUsbixvLHVjdCxnY3QsaGN0LHdjdCk7aWYoZil7cyYmKHhjdC5mcm9tQnVmZmVyQXR0cmlidXRlKHMsYyksT2N0LmZyb21CdWZmZXJBdHRyaWJ1dGUocyxkKSxQY3QuZnJvbUJ1ZmZlckF0dHJpYnV0ZShzLHApLGYudXY9TGx0LmdldFVWKHdjdCx1Y3QsZ2N0LGhjdCx4Y3QsT2N0LFBjdCxuZXcgZ3N0KSksbCYmKHhjdC5mcm9tQnVmZmVyQXR0cmlidXRlKGwsYyksT2N0LmZyb21CdWZmZXJBdHRyaWJ1dGUobCxkKSxQY3QuZnJvbUJ1ZmZlckF0dHJpYnV0ZShsLHApLGYudXYyPUxsdC5nZXRVVih3Y3QsdWN0LGdjdCxoY3QseGN0LE9jdCxQY3QsbmV3IGdzdCkpO2NvbnN0IHQ9e2E6YyxiOmQsYzpwLG5vcm1hbDpuZXcgd3N0LG1hdGVyaWFsSW5kZXg6MH07TGx0LmdldE5vcm1hbCh1Y3QsZ2N0LGhjdCx0Lm5vcm1hbCksZi5mYWNlPXR9cmV0dXJuIGZ9U2N0LnByb3RvdHlwZS5pc01lc2g9ITA7Y2xhc3MgUmN0IGV4dGVuZHMgZGN0e2NvbnN0cnVjdG9yKHQ9MSxlPTEsbj0xLG89MSxpPTEsYT0xKXtzdXBlcigpLHRoaXMudHlwZT0iQm94R2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17d2lkdGg6dCxoZWlnaHQ6ZSxkZXB0aDpuLHdpZHRoU2VnbWVudHM6byxoZWlnaHRTZWdtZW50czppLGRlcHRoU2VnbWVudHM6YX07Y29uc3Qgcj10aGlzO289TWF0aC5mbG9vcihvKSxpPU1hdGguZmxvb3IoaSksYT1NYXRoLmZsb29yKGEpO2NvbnN0IHM9W10sbD1bXSxjPVtdLGQ9W107bGV0IHA9MCxtPTA7ZnVuY3Rpb24gZih0LGUsbixvLGksYSxmLHUsZyxoLGIpe2NvbnN0IHk9YS9nLF89Zi9oLEM9YS8yLE09Zi8yLHY9dS8yLHg9ZysxLE89aCsxO2xldCBQPTAsdz0wO2NvbnN0IGs9bmV3IHdzdDtmb3IobGV0IGE9MDthPE87YSsrKXtjb25zdCByPWEqXy1NO2ZvcihsZXQgcz0wO3M8eDtzKyspe2tbdF09KHMqeS1DKSpvLGtbZV09cippLGtbbl09dixsLnB1c2goay54LGsueSxrLnopLGtbdF09MCxrW2VdPTAsa1tuXT11PjA/MTotMSxjLnB1c2goay54LGsueSxrLnopLGQucHVzaChzL2cpLGQucHVzaCgxLWEvaCksUCs9MX19Zm9yKGxldCB0PTA7dDxoO3QrKylmb3IobGV0IGU9MDtlPGc7ZSsrKXtjb25zdCBuPXArZSt4Kih0KzEpLG89cCsoZSsxKSt4Kih0KzEpLGk9cCsoZSsxKSt4KnQ7cy5wdXNoKHArZSt4KnQsbixpKSxzLnB1c2gobixvLGkpLHcrPTZ9ci5hZGRHcm91cChtLHcsYiksbSs9dyxwKz1QfWYoInoiLCJ5IiwieCIsLTEsLTEsbixlLHQsYSxpLDApLGYoInoiLCJ5IiwieCIsMSwtMSxuLGUsLXQsYSxpLDEpLGYoIngiLCJ6IiwieSIsMSwxLHQsbixlLG8sYSwyKSxmKCJ4IiwieiIsInkiLDEsLTEsdCxuLC1lLG8sYSwzKSxmKCJ4IiwieSIsInoiLDEsLTEsdCxlLG4sbyxpLDQpLGYoIngiLCJ5IiwieiIsLTEsLTEsdCxlLC1uLG8saSw1KSx0aGlzLnNldEluZGV4KHMpLHRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGVjdChsLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgibm9ybWFsIixuZXcgZWN0KGMsMykpLHRoaXMuc2V0QXR0cmlidXRlKCJ1diIsbmV3IGVjdChkLDIpKX1zdGF0aWMgZnJvbUpTT04odCl7cmV0dXJuIG5ldyBSY3QodC53aWR0aCx0LmhlaWdodCx0LmRlcHRoLHQud2lkdGhTZWdtZW50cyx0LmhlaWdodFNlZ21lbnRzLHQuZGVwdGhTZWdtZW50cyl9fWZ1bmN0aW9uIEVjdCh0KXtjb25zdCBlPXt9O2Zvcihjb25zdCBuIGluIHQpe2Vbbl09e307Zm9yKGNvbnN0IG8gaW4gdFtuXSl7Y29uc3QgaT10W25dW29dO2Vbbl1bb109aSYmKGkuaXNDb2xvcnx8aS5pc01hdHJpeDN8fGkuaXNNYXRyaXg0fHxpLmlzVmVjdG9yMnx8aS5pc1ZlY3RvcjN8fGkuaXNWZWN0b3I0fHxpLmlzVGV4dHVyZXx8aS5pc1F1YXRlcm5pb24pP2kuY2xvbmUoKTpBcnJheS5pc0FycmF5KGkpP2kuc2xpY2UoKTppfX1yZXR1cm4gZX1mdW5jdGlvbiBBY3QodCl7Y29uc3QgZT17fTtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7Y29uc3Qgbz1FY3QodFtuXSk7Zm9yKGNvbnN0IHQgaW4gbyllW3RdPW9bdF19cmV0dXJuIGV9Y29uc3QgVGN0PXtjbG9uZTpFY3QsbWVyZ2U6QWN0fTtjbGFzcyBOY3QgZXh0ZW5kcyBWbHR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlNoYWRlck1hdGVyaWFsIix0aGlzLmRlZmluZXM9e30sdGhpcy51bmlmb3Jtcz17fSx0aGlzLnZlcnRleFNoYWRlcj0idm9pZCBtYWluKCkge1xuXHRnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KCBwb3NpdGlvbiwgMS4wICk7XG59Iix0aGlzLmZyYWdtZW50U2hhZGVyPSJ2b2lkIG1haW4oKSB7XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIDEuMCwgMC4wLCAwLjAsIDEuMCApO1xufSIsdGhpcy5saW5ld2lkdGg9MSx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMuZm9nPSExLHRoaXMubGlnaHRzPSExLHRoaXMuY2xpcHBpbmc9ITEsdGhpcy5leHRlbnNpb25zPXtkZXJpdmF0aXZlczohMSxmcmFnRGVwdGg6ITEsZHJhd0J1ZmZlcnM6ITEsc2hhZGVyVGV4dHVyZUxPRDohMX0sdGhpcy5kZWZhdWx0QXR0cmlidXRlVmFsdWVzPXtjb2xvcjpbMSwxLDFdLHV2OlswLDBdLHV2MjpbMCwwXX0sdGhpcy5pbmRleDBBdHRyaWJ1dGVOYW1lPXZvaWQgMCx0aGlzLnVuaWZvcm1zTmVlZFVwZGF0ZT0hMSx0aGlzLmdsc2xWZXJzaW9uPW51bGwsdm9pZCAwIT09dCYmKHZvaWQgMCE9PXQuYXR0cmlidXRlcyYmY29uc29sZS5lcnJvcigiVEhSRUUuU2hhZGVyTWF0ZXJpYWw6IGF0dHJpYnV0ZXMgc2hvdWxkIG5vdyBiZSBkZWZpbmVkIGluIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIiksdGhpcy5zZXRWYWx1ZXModCkpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5mcmFnbWVudFNoYWRlcj10LmZyYWdtZW50U2hhZGVyLHRoaXMudmVydGV4U2hhZGVyPXQudmVydGV4U2hhZGVyLHRoaXMudW5pZm9ybXM9RWN0KHQudW5pZm9ybXMpLHRoaXMuZGVmaW5lcz1PYmplY3QuYXNzaWduKHt9LHQuZGVmaW5lcyksdGhpcy53aXJlZnJhbWU9dC53aXJlZnJhbWUsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgsdGhpcy5saWdodHM9dC5saWdodHMsdGhpcy5jbGlwcGluZz10LmNsaXBwaW5nLHRoaXMuZXh0ZW5zaW9ucz1PYmplY3QuYXNzaWduKHt9LHQuZXh0ZW5zaW9ucyksdGhpcy5nbHNsVmVyc2lvbj10Lmdsc2xWZXJzaW9uLHRoaXN9dG9KU09OKHQpe2NvbnN0IGU9c3VwZXIudG9KU09OKHQpO2UuZ2xzbFZlcnNpb249dGhpcy5nbHNsVmVyc2lvbixlLnVuaWZvcm1zPXt9O2Zvcihjb25zdCBuIGluIHRoaXMudW5pZm9ybXMpe2NvbnN0IG89dGhpcy51bmlmb3Jtc1tuXS52YWx1ZTtlLnVuaWZvcm1zW25dPW8mJm8uaXNUZXh0dXJlP3t0eXBlOiJ0Iix2YWx1ZTpvLnRvSlNPTih0KS51dWlkfTpvJiZvLmlzQ29sb3I/e3R5cGU6ImMiLHZhbHVlOm8uZ2V0SGV4KCl9Om8mJm8uaXNWZWN0b3IyP3t0eXBlOiJ2MiIsdmFsdWU6by50b0FycmF5KCl9Om8mJm8uaXNWZWN0b3IzP3t0eXBlOiJ2MyIsdmFsdWU6by50b0FycmF5KCl9Om8mJm8uaXNWZWN0b3I0P3t0eXBlOiJ2NCIsdmFsdWU6by50b0FycmF5KCl9Om8mJm8uaXNNYXRyaXgzP3t0eXBlOiJtMyIsdmFsdWU6by50b0FycmF5KCl9Om8mJm8uaXNNYXRyaXg0P3t0eXBlOiJtNCIsdmFsdWU6by50b0FycmF5KCl9Ont2YWx1ZTpvfX1PYmplY3Qua2V5cyh0aGlzLmRlZmluZXMpLmxlbmd0aD4wJiYoZS5kZWZpbmVzPXRoaXMuZGVmaW5lcyksZS52ZXJ0ZXhTaGFkZXI9dGhpcy52ZXJ0ZXhTaGFkZXIsZS5mcmFnbWVudFNoYWRlcj10aGlzLmZyYWdtZW50U2hhZGVyO2NvbnN0IG49e307Zm9yKGNvbnN0IHQgaW4gdGhpcy5leHRlbnNpb25zKSEwPT09dGhpcy5leHRlbnNpb25zW3RdJiYoblt0XT0hMCk7cmV0dXJuIE9iamVjdC5rZXlzKG4pLmxlbmd0aD4wJiYoZS5leHRlbnNpb25zPW4pLGV9fU5jdC5wcm90b3R5cGUuaXNTaGFkZXJNYXRlcmlhbD0hMDtjbGFzcyB6Y3QgZXh0ZW5kcyBTbHR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iQ2FtZXJhIix0aGlzLm1hdHJpeFdvcmxkSW52ZXJzZT1uZXcgb2x0LHRoaXMucHJvamVjdGlvbk1hdHJpeD1uZXcgb2x0LHRoaXMucHJvamVjdGlvbk1hdHJpeEludmVyc2U9bmV3IG9sdH1jb3B5KHQsZSl7cmV0dXJuIHN1cGVyLmNvcHkodCxlKSx0aGlzLm1hdHJpeFdvcmxkSW52ZXJzZS5jb3B5KHQubWF0cml4V29ybGRJbnZlcnNlKSx0aGlzLnByb2plY3Rpb25NYXRyaXguY29weSh0LnByb2plY3Rpb25NYXRyaXgpLHRoaXMucHJvamVjdGlvbk1hdHJpeEludmVyc2UuY29weSh0LnByb2plY3Rpb25NYXRyaXhJbnZlcnNlKSx0aGlzfWdldFdvcmxkRGlyZWN0aW9uKHQpe3RoaXMudXBkYXRlV29ybGRNYXRyaXgoITAsITEpO2NvbnN0IGU9dGhpcy5tYXRyaXhXb3JsZC5lbGVtZW50cztyZXR1cm4gdC5zZXQoLWVbOF0sLWVbOV0sLWVbMTBdKS5ub3JtYWxpemUoKX11cGRhdGVNYXRyaXhXb3JsZCh0KXtzdXBlci51cGRhdGVNYXRyaXhXb3JsZCh0KSx0aGlzLm1hdHJpeFdvcmxkSW52ZXJzZS5jb3B5KHRoaXMubWF0cml4V29ybGQpLmludmVydCgpfXVwZGF0ZVdvcmxkTWF0cml4KHQsZSl7c3VwZXIudXBkYXRlV29ybGRNYXRyaXgodCxlKSx0aGlzLm1hdHJpeFdvcmxkSW52ZXJzZS5jb3B5KHRoaXMubWF0cml4V29ybGQpLmludmVydCgpfWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfX16Y3QucHJvdG90eXBlLmlzQ2FtZXJhPSEwO2NsYXNzIEljdCBleHRlbmRzIHpjdHtjb25zdHJ1Y3Rvcih0PTUwLGU9MSxuPS4xLG89MmUzKXtzdXBlcigpLHRoaXMudHlwZT0iUGVyc3BlY3RpdmVDYW1lcmEiLHRoaXMuZm92PXQsdGhpcy56b29tPTEsdGhpcy5uZWFyPW4sdGhpcy5mYXI9byx0aGlzLmZvY3VzPTEwLHRoaXMuYXNwZWN0PWUsdGhpcy52aWV3PW51bGwsdGhpcy5maWxtR2F1Z2U9MzUsdGhpcy5maWxtT2Zmc2V0PTAsdGhpcy51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9Y29weSh0LGUpe3JldHVybiBzdXBlci5jb3B5KHQsZSksdGhpcy5mb3Y9dC5mb3YsdGhpcy56b29tPXQuem9vbSx0aGlzLm5lYXI9dC5uZWFyLHRoaXMuZmFyPXQuZmFyLHRoaXMuZm9jdXM9dC5mb2N1cyx0aGlzLmFzcGVjdD10LmFzcGVjdCx0aGlzLnZpZXc9bnVsbD09PXQudmlldz9udWxsOk9iamVjdC5hc3NpZ24oe30sdC52aWV3KSx0aGlzLmZpbG1HYXVnZT10LmZpbG1HYXVnZSx0aGlzLmZpbG1PZmZzZXQ9dC5maWxtT2Zmc2V0LHRoaXN9c2V0Rm9jYWxMZW5ndGgodCl7Y29uc3QgZT0uNSp0aGlzLmdldEZpbG1IZWlnaHQoKS90O3RoaXMuZm92PTIqY3N0Kk1hdGguYXRhbihlKSx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX1nZXRGb2NhbExlbmd0aCgpe2NvbnN0IHQ9TWF0aC50YW4oLjUqbHN0KnRoaXMuZm92KTtyZXR1cm4uNSp0aGlzLmdldEZpbG1IZWlnaHQoKS90fWdldEVmZmVjdGl2ZUZPVigpe3JldHVybiAyKmNzdCpNYXRoLmF0YW4oTWF0aC50YW4oLjUqbHN0KnRoaXMuZm92KS90aGlzLnpvb20pfWdldEZpbG1XaWR0aCgpe3JldHVybiB0aGlzLmZpbG1HYXVnZSpNYXRoLm1pbih0aGlzLmFzcGVjdCwxKX1nZXRGaWxtSGVpZ2h0KCl7cmV0dXJuIHRoaXMuZmlsbUdhdWdlL01hdGgubWF4KHRoaXMuYXNwZWN0LDEpfXNldFZpZXdPZmZzZXQodCxlLG4sbyxpLGEpe3RoaXMuYXNwZWN0PXQvZSxudWxsPT09dGhpcy52aWV3JiYodGhpcy52aWV3PXtlbmFibGVkOiEwLGZ1bGxXaWR0aDoxLGZ1bGxIZWlnaHQ6MSxvZmZzZXRYOjAsb2Zmc2V0WTowLHdpZHRoOjEsaGVpZ2h0OjF9KSx0aGlzLnZpZXcuZW5hYmxlZD0hMCx0aGlzLnZpZXcuZnVsbFdpZHRoPXQsdGhpcy52aWV3LmZ1bGxIZWlnaHQ9ZSx0aGlzLnZpZXcub2Zmc2V0WD1uLHRoaXMudmlldy5vZmZzZXRZPW8sdGhpcy52aWV3LndpZHRoPWksdGhpcy52aWV3LmhlaWdodD1hLHRoaXMudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfWNsZWFyVmlld09mZnNldCgpe251bGwhPT10aGlzLnZpZXcmJih0aGlzLnZpZXcuZW5hYmxlZD0hMSksdGhpcy51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9dXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpe2NvbnN0IHQ9dGhpcy5uZWFyO2xldCBlPXQqTWF0aC50YW4oLjUqbHN0KnRoaXMuZm92KS90aGlzLnpvb20sbj0yKmUsbz10aGlzLmFzcGVjdCpuLGk9LS41Km87Y29uc3QgYT10aGlzLnZpZXc7aWYobnVsbCE9PXRoaXMudmlldyYmdGhpcy52aWV3LmVuYWJsZWQpe2NvbnN0IHQ9YS5mdWxsV2lkdGgscj1hLmZ1bGxIZWlnaHQ7aSs9YS5vZmZzZXRYKm8vdCxlLT1hLm9mZnNldFkqbi9yLG8qPWEud2lkdGgvdCxuKj1hLmhlaWdodC9yfWNvbnN0IHI9dGhpcy5maWxtT2Zmc2V0OzAhPT1yJiYoaSs9dCpyL3RoaXMuZ2V0RmlsbVdpZHRoKCkpLHRoaXMucHJvamVjdGlvbk1hdHJpeC5tYWtlUGVyc3BlY3RpdmUoaSxpK28sZSxlLW4sdCx0aGlzLmZhciksdGhpcy5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZS5jb3B5KHRoaXMucHJvamVjdGlvbk1hdHJpeCkuaW52ZXJ0KCl9dG9KU09OKHQpe2NvbnN0IGU9c3VwZXIudG9KU09OKHQpO3JldHVybiBlLm9iamVjdC5mb3Y9dGhpcy5mb3YsZS5vYmplY3Quem9vbT10aGlzLnpvb20sZS5vYmplY3QubmVhcj10aGlzLm5lYXIsZS5vYmplY3QuZmFyPXRoaXMuZmFyLGUub2JqZWN0LmZvY3VzPXRoaXMuZm9jdXMsZS5vYmplY3QuYXNwZWN0PXRoaXMuYXNwZWN0LG51bGwhPT10aGlzLnZpZXcmJihlLm9iamVjdC52aWV3PU9iamVjdC5hc3NpZ24oe30sdGhpcy52aWV3KSksZS5vYmplY3QuZmlsbUdhdWdlPXRoaXMuZmlsbUdhdWdlLGUub2JqZWN0LmZpbG1PZmZzZXQ9dGhpcy5maWxtT2Zmc2V0LGV9fUljdC5wcm90b3R5cGUuaXNQZXJzcGVjdGl2ZUNhbWVyYT0hMDtjb25zdCBIY3Q9OTA7Y2xhc3MgRmN0IGV4dGVuZHMgU2x0e2NvbnN0cnVjdG9yKHQsZSxuKXtpZihzdXBlcigpLHRoaXMudHlwZT0iQ3ViZUNhbWVyYSIsITAhPT1uLmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLkN1YmVDYW1lcmE6IFRoZSBjb25zdHJ1Y3RvciBub3cgZXhwZWN0cyBhbiBpbnN0YW5jZSBvZiBXZWJHTEN1YmVSZW5kZXJUYXJnZXQgYXMgdGhpcmQgcGFyYW1ldGVyLiIpO3RoaXMucmVuZGVyVGFyZ2V0PW47Y29uc3Qgbz1uZXcgSWN0KEhjdCwxLHQsZSk7by5sYXllcnM9dGhpcy5sYXllcnMsby51cC5zZXQoMCwtMSwwKSxvLmxvb2tBdChuZXcgd3N0KDEsMCwwKSksdGhpcy5hZGQobyk7Y29uc3QgaT1uZXcgSWN0KEhjdCwxLHQsZSk7aS5sYXllcnM9dGhpcy5sYXllcnMsaS51cC5zZXQoMCwtMSwwKSxpLmxvb2tBdChuZXcgd3N0KC0xLDAsMCkpLHRoaXMuYWRkKGkpO2NvbnN0IGE9bmV3IEljdChIY3QsMSx0LGUpO2EubGF5ZXJzPXRoaXMubGF5ZXJzLGEudXAuc2V0KDAsMCwxKSxhLmxvb2tBdChuZXcgd3N0KDAsMSwwKSksdGhpcy5hZGQoYSk7Y29uc3Qgcj1uZXcgSWN0KEhjdCwxLHQsZSk7ci5sYXllcnM9dGhpcy5sYXllcnMsci51cC5zZXQoMCwwLC0xKSxyLmxvb2tBdChuZXcgd3N0KDAsLTEsMCkpLHRoaXMuYWRkKHIpO2NvbnN0IHM9bmV3IEljdChIY3QsMSx0LGUpO3MubGF5ZXJzPXRoaXMubGF5ZXJzLHMudXAuc2V0KDAsLTEsMCkscy5sb29rQXQobmV3IHdzdCgwLDAsMSkpLHRoaXMuYWRkKHMpO2NvbnN0IGw9bmV3IEljdChIY3QsMSx0LGUpO2wubGF5ZXJzPXRoaXMubGF5ZXJzLGwudXAuc2V0KDAsLTEsMCksbC5sb29rQXQobmV3IHdzdCgwLDAsLTEpKSx0aGlzLmFkZChsKX11cGRhdGUodCxlKXtudWxsPT09dGhpcy5wYXJlbnQmJnRoaXMudXBkYXRlTWF0cml4V29ybGQoKTtjb25zdCBuPXRoaXMucmVuZGVyVGFyZ2V0LFtvLGksYSxyLHMsbF09dGhpcy5jaGlsZHJlbixjPXQueHIuZW5hYmxlZCxkPXQuZ2V0UmVuZGVyVGFyZ2V0KCk7dC54ci5lbmFibGVkPSExO2NvbnN0IHA9bi50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcztuLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzPSExLHQuc2V0UmVuZGVyVGFyZ2V0KG4sMCksdC5yZW5kZXIoZSxvKSx0LnNldFJlbmRlclRhcmdldChuLDEpLHQucmVuZGVyKGUsaSksdC5zZXRSZW5kZXJUYXJnZXQobiwyKSx0LnJlbmRlcihlLGEpLHQuc2V0UmVuZGVyVGFyZ2V0KG4sMyksdC5yZW5kZXIoZSxyKSx0LnNldFJlbmRlclRhcmdldChuLDQpLHQucmVuZGVyKGUscyksbi50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcz1wLHQuc2V0UmVuZGVyVGFyZ2V0KG4sNSksdC5yZW5kZXIoZSxsKSx0LnNldFJlbmRlclRhcmdldChkKSx0LnhyLmVuYWJsZWQ9Y319Y2xhc3MgTGN0IGV4dGVuZHMgQ3N0e2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyxsLGMpe3N1cGVyKHQ9dm9pZCAwIT09dD90OltdLGU9dm9pZCAwIT09ZT9lOndydCxuLG8saSxhLHI9dm9pZCAwIT09cj9yOlZydCxzLGwsYyksdGhpcy5mbGlwWT0hMX1nZXQgaW1hZ2VzKCl7cmV0dXJuIHRoaXMuaW1hZ2V9c2V0IGltYWdlcyh0KXt0aGlzLmltYWdlPXR9fUxjdC5wcm90b3R5cGUuaXNDdWJlVGV4dHVyZT0hMDtjbGFzcyBCY3QgZXh0ZW5kcyB4c3R7Y29uc3RydWN0b3IodCxlLG4pe051bWJlci5pc0ludGVnZXIoZSkmJihjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMQ3ViZVJlbmRlclRhcmdldDogY29uc3RydWN0b3Igc2lnbmF0dXJlIGlzIG5vdyBXZWJHTEN1YmVSZW5kZXJUYXJnZXQoIHNpemUsIG9wdGlvbnMgKSIpLGU9biksc3VwZXIodCx0LGUpLHRoaXMudGV4dHVyZT1uZXcgTGN0KHZvaWQgMCwoZT1lfHx7fSkubWFwcGluZyxlLndyYXBTLGUud3JhcFQsZS5tYWdGaWx0ZXIsZS5taW5GaWx0ZXIsZS5mb3JtYXQsZS50eXBlLGUuYW5pc290cm9weSxlLmVuY29kaW5nKSx0aGlzLnRleHR1cmUuaXNSZW5kZXJUYXJnZXRUZXh0dXJlPSEwLHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHM9dm9pZCAwIT09ZS5nZW5lcmF0ZU1pcG1hcHMmJmUuZ2VuZXJhdGVNaXBtYXBzLHRoaXMudGV4dHVyZS5taW5GaWx0ZXI9dm9pZCAwIT09ZS5taW5GaWx0ZXI/ZS5taW5GaWx0ZXI6VHJ0LHRoaXMudGV4dHVyZS5fbmVlZHNGbGlwRW52TWFwPSExfWZyb21FcXVpcmVjdGFuZ3VsYXJUZXh0dXJlKHQsZSl7dGhpcy50ZXh0dXJlLnR5cGU9ZS50eXBlLHRoaXMudGV4dHVyZS5mb3JtYXQ9anJ0LHRoaXMudGV4dHVyZS5lbmNvZGluZz1lLmVuY29kaW5nLHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHM9ZS5nZW5lcmF0ZU1pcG1hcHMsdGhpcy50ZXh0dXJlLm1pbkZpbHRlcj1lLm1pbkZpbHRlcix0aGlzLnRleHR1cmUubWFnRmlsdGVyPWUubWFnRmlsdGVyO2NvbnN0IG49e3VuaWZvcm1zOnt0RXF1aXJlY3Q6e3ZhbHVlOm51bGx9fSx2ZXJ0ZXhTaGFkZXI6IlxuXG5cdFx0XHRcdHZhcnlpbmcgdmVjMyB2V29ybGREaXJlY3Rpb247XG5cblx0XHRcdFx0dmVjMyB0cmFuc2Zvcm1EaXJlY3Rpb24oIGluIHZlYzMgZGlyLCBpbiBtYXQ0IG1hdHJpeCApIHtcblxuXHRcdFx0XHRcdHJldHVybiBub3JtYWxpemUoICggbWF0cml4ICogdmVjNCggZGlyLCAwLjAgKSApLnh5eiApO1xuXG5cdFx0XHRcdH1cblxuXHRcdFx0XHR2b2lkIG1haW4oKSB7XG5cblx0XHRcdFx0XHR2V29ybGREaXJlY3Rpb24gPSB0cmFuc2Zvcm1EaXJlY3Rpb24oIHBvc2l0aW9uLCBtb2RlbE1hdHJpeCApO1xuXG5cdFx0XHRcdFx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0XHRcdFx0XHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cblx0XHRcdFx0fVxuXHRcdFx0IixmcmFnbWVudFNoYWRlcjoiXG5cblx0XHRcdFx0dW5pZm9ybSBzYW1wbGVyMkQgdEVxdWlyZWN0O1xuXG5cdFx0XHRcdHZhcnlpbmcgdmVjMyB2V29ybGREaXJlY3Rpb247XG5cblx0XHRcdFx0I2luY2x1ZGUgPGNvbW1vbj5cblxuXHRcdFx0XHR2b2lkIG1haW4oKSB7XG5cblx0XHRcdFx0XHR2ZWMzIGRpcmVjdGlvbiA9IG5vcm1hbGl6ZSggdldvcmxkRGlyZWN0aW9uICk7XG5cblx0XHRcdFx0XHR2ZWMyIHNhbXBsZVVWID0gZXF1aXJlY3RVdiggZGlyZWN0aW9uICk7XG5cblx0XHRcdFx0XHRnbF9GcmFnQ29sb3IgPSB0ZXh0dXJlMkQoIHRFcXVpcmVjdCwgc2FtcGxlVVYgKTtcblxuXHRcdFx0XHR9XG5cdFx0XHQifSxvPW5ldyBSY3QoNSw1LDUpLGk9bmV3IE5jdCh7bmFtZToiQ3ViZW1hcEZyb21FcXVpcmVjdCIsdW5pZm9ybXM6RWN0KG4udW5pZm9ybXMpLHZlcnRleFNoYWRlcjpuLnZlcnRleFNoYWRlcixmcmFnbWVudFNoYWRlcjpuLmZyYWdtZW50U2hhZGVyLHNpZGU6MSxibGVuZGluZzowfSk7aS51bmlmb3Jtcy50RXF1aXJlY3QudmFsdWU9ZTtjb25zdCBhPW5ldyBTY3QobyxpKSxyPWUubWluRmlsdGVyO2UubWluRmlsdGVyPT09TnJ0JiYoZS5taW5GaWx0ZXI9VHJ0KTtyZXR1cm4gbmV3IEZjdCgxLDEwLHRoaXMpLnVwZGF0ZSh0LGEpLGUubWluRmlsdGVyPXIsYS5nZW9tZXRyeS5kaXNwb3NlKCksYS5tYXRlcmlhbC5kaXNwb3NlKCksdGhpc31jbGVhcih0LGUsbixvKXtjb25zdCBpPXQuZ2V0UmVuZGVyVGFyZ2V0KCk7Zm9yKGxldCBpPTA7aTw2O2krKyl0LnNldFJlbmRlclRhcmdldCh0aGlzLGkpLHQuY2xlYXIoZSxuLG8pO3Quc2V0UmVuZGVyVGFyZ2V0KGkpfX1CY3QucHJvdG90eXBlLmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0PSEwO2NvbnN0IFZjdD1uZXcgd3N0LGpjdD1uZXcgd3N0LFVjdD1uZXcgaHN0O2NsYXNzIFdjdHtjb25zdHJ1Y3Rvcih0PW5ldyB3c3QoMSwwLDApLGU9MCl7dGhpcy5ub3JtYWw9dCx0aGlzLmNvbnN0YW50PWV9c2V0KHQsZSl7cmV0dXJuIHRoaXMubm9ybWFsLmNvcHkodCksdGhpcy5jb25zdGFudD1lLHRoaXN9c2V0Q29tcG9uZW50cyh0LGUsbixvKXtyZXR1cm4gdGhpcy5ub3JtYWwuc2V0KHQsZSxuKSx0aGlzLmNvbnN0YW50PW8sdGhpc31zZXRGcm9tTm9ybWFsQW5kQ29wbGFuYXJQb2ludCh0LGUpe3JldHVybiB0aGlzLm5vcm1hbC5jb3B5KHQpLHRoaXMuY29uc3RhbnQ9LWUuZG90KHRoaXMubm9ybWFsKSx0aGlzfXNldEZyb21Db3BsYW5hclBvaW50cyh0LGUsbil7Y29uc3Qgbz1WY3Quc3ViVmVjdG9ycyhuLGUpLmNyb3NzKGpjdC5zdWJWZWN0b3JzKHQsZSkpLm5vcm1hbGl6ZSgpO3JldHVybiB0aGlzLnNldEZyb21Ob3JtYWxBbmRDb3BsYW5hclBvaW50KG8sdCksdGhpc31jb3B5KHQpe3JldHVybiB0aGlzLm5vcm1hbC5jb3B5KHQubm9ybWFsKSx0aGlzLmNvbnN0YW50PXQuY29uc3RhbnQsdGhpc31ub3JtYWxpemUoKXtjb25zdCB0PTEvdGhpcy5ub3JtYWwubGVuZ3RoKCk7cmV0dXJuIHRoaXMubm9ybWFsLm11bHRpcGx5U2NhbGFyKHQpLHRoaXMuY29uc3RhbnQqPXQsdGhpc31uZWdhdGUoKXtyZXR1cm4gdGhpcy5jb25zdGFudCo9LTEsdGhpcy5ub3JtYWwubmVnYXRlKCksdGhpc31kaXN0YW5jZVRvUG9pbnQodCl7cmV0dXJuIHRoaXMubm9ybWFsLmRvdCh0KSt0aGlzLmNvbnN0YW50fWRpc3RhbmNlVG9TcGhlcmUodCl7cmV0dXJuIHRoaXMuZGlzdGFuY2VUb1BvaW50KHQuY2VudGVyKS10LnJhZGl1c31wcm9qZWN0UG9pbnQodCxlKXtyZXR1cm4gZS5jb3B5KHRoaXMubm9ybWFsKS5tdWx0aXBseVNjYWxhcigtdGhpcy5kaXN0YW5jZVRvUG9pbnQodCkpLmFkZCh0KX1pbnRlcnNlY3RMaW5lKHQsZSl7Y29uc3Qgbj10LmRlbHRhKFZjdCksbz10aGlzLm5vcm1hbC5kb3Qobik7aWYoMD09PW8pcmV0dXJuIDA9PT10aGlzLmRpc3RhbmNlVG9Qb2ludCh0LnN0YXJ0KT9lLmNvcHkodC5zdGFydCk6bnVsbDtjb25zdCBpPS0odC5zdGFydC5kb3QodGhpcy5ub3JtYWwpK3RoaXMuY29uc3RhbnQpL287cmV0dXJuIGk8MHx8aT4xP251bGw6ZS5jb3B5KG4pLm11bHRpcGx5U2NhbGFyKGkpLmFkZCh0LnN0YXJ0KX1pbnRlcnNlY3RzTGluZSh0KXtjb25zdCBlPXRoaXMuZGlzdGFuY2VUb1BvaW50KHQuc3RhcnQpLG49dGhpcy5kaXN0YW5jZVRvUG9pbnQodC5lbmQpO3JldHVybiBlPDAmJm4+MHx8bjwwJiZlPjB9aW50ZXJzZWN0c0JveCh0KXtyZXR1cm4gdC5pbnRlcnNlY3RzUGxhbmUodGhpcyl9aW50ZXJzZWN0c1NwaGVyZSh0KXtyZXR1cm4gdC5pbnRlcnNlY3RzUGxhbmUodGhpcyl9Y29wbGFuYXJQb2ludCh0KXtyZXR1cm4gdC5jb3B5KHRoaXMubm9ybWFsKS5tdWx0aXBseVNjYWxhcigtdGhpcy5jb25zdGFudCl9YXBwbHlNYXRyaXg0KHQsZSl7Y29uc3Qgbj1lfHxVY3QuZ2V0Tm9ybWFsTWF0cml4KHQpLG89dGhpcy5jb3BsYW5hclBvaW50KFZjdCkuYXBwbHlNYXRyaXg0KHQpLGk9dGhpcy5ub3JtYWwuYXBwbHlNYXRyaXgzKG4pLm5vcm1hbGl6ZSgpO3JldHVybiB0aGlzLmNvbnN0YW50PS1vLmRvdChpKSx0aGlzfXRyYW5zbGF0ZSh0KXtyZXR1cm4gdGhpcy5jb25zdGFudC09dC5kb3QodGhpcy5ub3JtYWwpLHRoaXN9ZXF1YWxzKHQpe3JldHVybiB0Lm5vcm1hbC5lcXVhbHModGhpcy5ub3JtYWwpJiZ0LmNvbnN0YW50PT09dGhpcy5jb25zdGFudH1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX19V2N0LnByb3RvdHlwZS5pc1BsYW5lPSEwO2NvbnN0IEdjdD1uZXcgWnN0LFljdD1uZXcgd3N0O2NsYXNzIHFjdHtjb25zdHJ1Y3Rvcih0PW5ldyBXY3QsZT1uZXcgV2N0LG49bmV3IFdjdCxvPW5ldyBXY3QsaT1uZXcgV2N0LGE9bmV3IFdjdCl7dGhpcy5wbGFuZXM9W3QsZSxuLG8saSxhXX1zZXQodCxlLG4sbyxpLGEpe2NvbnN0IHI9dGhpcy5wbGFuZXM7cmV0dXJuIHJbMF0uY29weSh0KSxyWzFdLmNvcHkoZSksclsyXS5jb3B5KG4pLHJbM10uY29weShvKSxyWzRdLmNvcHkoaSkscls1XS5jb3B5KGEpLHRoaXN9Y29weSh0KXtjb25zdCBlPXRoaXMucGxhbmVzO2ZvcihsZXQgbj0wO248NjtuKyspZVtuXS5jb3B5KHQucGxhbmVzW25dKTtyZXR1cm4gdGhpc31zZXRGcm9tUHJvamVjdGlvbk1hdHJpeCh0KXtjb25zdCBlPXRoaXMucGxhbmVzLG49dC5lbGVtZW50cyxvPW5bMF0saT1uWzFdLGE9blsyXSxyPW5bM10scz1uWzRdLGw9bls1XSxjPW5bNl0sZD1uWzddLHA9bls4XSxtPW5bOV0sZj1uWzEwXSx1PW5bMTFdLGc9blsxMl0saD1uWzEzXSxiPW5bMTRdLHk9blsxNV07cmV0dXJuIGVbMF0uc2V0Q29tcG9uZW50cyhyLW8sZC1zLHUtcCx5LWcpLm5vcm1hbGl6ZSgpLGVbMV0uc2V0Q29tcG9uZW50cyhyK28sZCtzLHUrcCx5K2cpLm5vcm1hbGl6ZSgpLGVbMl0uc2V0Q29tcG9uZW50cyhyK2ksZCtsLHUrbSx5K2gpLm5vcm1hbGl6ZSgpLGVbM10uc2V0Q29tcG9uZW50cyhyLWksZC1sLHUtbSx5LWgpLm5vcm1hbGl6ZSgpLGVbNF0uc2V0Q29tcG9uZW50cyhyLWEsZC1jLHUtZix5LWIpLm5vcm1hbGl6ZSgpLGVbNV0uc2V0Q29tcG9uZW50cyhyK2EsZCtjLHUrZix5K2IpLm5vcm1hbGl6ZSgpLHRoaXN9aW50ZXJzZWN0c09iamVjdCh0KXtjb25zdCBlPXQuZ2VvbWV0cnk7cmV0dXJuIG51bGw9PT1lLmJvdW5kaW5nU3BoZXJlJiZlLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpLEdjdC5jb3B5KGUuYm91bmRpbmdTcGhlcmUpLmFwcGx5TWF0cml4NCh0Lm1hdHJpeFdvcmxkKSx0aGlzLmludGVyc2VjdHNTcGhlcmUoR2N0KX1pbnRlcnNlY3RzU3ByaXRlKHQpe3JldHVybiBHY3QuY2VudGVyLnNldCgwLDAsMCksR2N0LnJhZGl1cz0uNzA3MTA2NzgxMTg2NTQ3NixHY3QuYXBwbHlNYXRyaXg0KHQubWF0cml4V29ybGQpLHRoaXMuaW50ZXJzZWN0c1NwaGVyZShHY3QpfWludGVyc2VjdHNTcGhlcmUodCl7Y29uc3QgZT10aGlzLnBsYW5lcyxuPXQuY2VudGVyLG89LXQucmFkaXVzO2ZvcihsZXQgdD0wO3Q8Njt0Kyspe2lmKGVbdF0uZGlzdGFuY2VUb1BvaW50KG4pPG8pcmV0dXJuITF9cmV0dXJuITB9aW50ZXJzZWN0c0JveCh0KXtjb25zdCBlPXRoaXMucGxhbmVzO2ZvcihsZXQgbj0wO248NjtuKyspe2NvbnN0IG89ZVtuXTtpZihZY3QueD1vLm5vcm1hbC54PjA/dC5tYXgueDp0Lm1pbi54LFljdC55PW8ubm9ybWFsLnk+MD90Lm1heC55OnQubWluLnksWWN0Lno9by5ub3JtYWwuej4wP3QubWF4Lno6dC5taW4ueixvLmRpc3RhbmNlVG9Qb2ludChZY3QpPDApcmV0dXJuITF9cmV0dXJuITB9Y29udGFpbnNQb2ludCh0KXtjb25zdCBlPXRoaXMucGxhbmVzO2ZvcihsZXQgbj0wO248NjtuKyspaWYoZVtuXS5kaXN0YW5jZVRvUG9pbnQodCk8MClyZXR1cm4hMTtyZXR1cm4hMH1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX19ZnVuY3Rpb24gWmN0KCl7bGV0IHQ9bnVsbCxlPSExLG49bnVsbCxvPW51bGw7ZnVuY3Rpb24gaShlLGEpe24oZSxhKSxvPXQucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGkpfXJldHVybntzdGFydDpmdW5jdGlvbigpeyEwIT09ZSYmbnVsbCE9PW4mJihvPXQucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGkpLGU9ITApfSxzdG9wOmZ1bmN0aW9uKCl7dC5jYW5jZWxBbmltYXRpb25GcmFtZShvKSxlPSExfSxzZXRBbmltYXRpb25Mb29wOmZ1bmN0aW9uKHQpe249dH0sc2V0Q29udGV4dDpmdW5jdGlvbihlKXt0PWV9fX1mdW5jdGlvbiBYY3QodCxlKXtjb25zdCBuPWUuaXNXZWJHTDIsbz1uZXcgV2Vha01hcDtyZXR1cm57Z2V0OmZ1bmN0aW9uIGkodCl7cmV0dXJuIHQuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZSYmKHQ9dC5kYXRhKSxvLmdldCh0KX0scmVtb3ZlOmZ1bmN0aW9uIGEoZSl7ZS5pc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlJiYoZT1lLmRhdGEpO2NvbnN0IG49by5nZXQoZSk7biYmKHQuZGVsZXRlQnVmZmVyKG4uYnVmZmVyKSxvLmRlbGV0ZShlKSl9LHVwZGF0ZTpmdW5jdGlvbiByKGUsaSl7aWYoZS5pc0dMQnVmZmVyQXR0cmlidXRlKXtjb25zdCB0PW8uZ2V0KGUpO3JldHVybiB2b2lkKCghdHx8dC52ZXJzaW9uPGUudmVyc2lvbikmJm8uc2V0KGUse2J1ZmZlcjplLmJ1ZmZlcix0eXBlOmUudHlwZSxieXRlc1BlckVsZW1lbnQ6ZS5lbGVtZW50U2l6ZSx2ZXJzaW9uOmUudmVyc2lvbn0pKX1lLmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUmJihlPWUuZGF0YSk7Y29uc3QgYT1vLmdldChlKTt2b2lkIDA9PT1hP28uc2V0KGUsKGZ1bmN0aW9uIHIoZSxvKXtjb25zdCBpPWUuYXJyYXksYT1lLnVzYWdlLHI9dC5jcmVhdGVCdWZmZXIoKTt0LmJpbmRCdWZmZXIobyxyKSx0LmJ1ZmZlckRhdGEobyxpLGEpLGUub25VcGxvYWRDYWxsYmFjaygpO2xldCBzPTUxMjY7cmV0dXJuIGkgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXk/cz01MTI2OmkgaW5zdGFuY2VvZiBGbG9hdDY0QXJyYXk/Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTEF0dHJpYnV0ZXM6IFVuc3VwcG9ydGVkIGRhdGEgYnVmZmVyIGZvcm1hdDogRmxvYXQ2NEFycmF5LiIpOmkgaW5zdGFuY2VvZiBVaW50MTZBcnJheT9lLmlzRmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZT9uP3M9NTEzMTpjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMQXR0cmlidXRlczogVXNhZ2Ugb2YgRmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZSByZXF1aXJlcyBXZWJHTDIuIik6cz01MTIzOmkgaW5zdGFuY2VvZiBJbnQxNkFycmF5P3M9NTEyMjppIGluc3RhbmNlb2YgVWludDMyQXJyYXk/cz01MTI1OmkgaW5zdGFuY2VvZiBJbnQzMkFycmF5P3M9NTEyNDppIGluc3RhbmNlb2YgSW50OEFycmF5P3M9NTEyMDooaSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fGkgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheSkmJihzPTUxMjEpLHtidWZmZXI6cix0eXBlOnMsYnl0ZXNQZXJFbGVtZW50OmkuQllURVNfUEVSX0VMRU1FTlQsdmVyc2lvbjplLnZlcnNpb259fSkoZSxpKSk6YS52ZXJzaW9uPGUudmVyc2lvbiYmKCEoZnVuY3Rpb24gcyhlLG8saSl7Y29uc3QgYT1vLmFycmF5LHI9by51cGRhdGVSYW5nZTt0LmJpbmRCdWZmZXIoaSxlKSwtMT09PXIuY291bnQ/dC5idWZmZXJTdWJEYXRhKGksMCxhKToobj90LmJ1ZmZlclN1YkRhdGEoaSxyLm9mZnNldCphLkJZVEVTX1BFUl9FTEVNRU5ULGEsci5vZmZzZXQsci5jb3VudCk6dC5idWZmZXJTdWJEYXRhKGksci5vZmZzZXQqYS5CWVRFU19QRVJfRUxFTUVOVCxhLnN1YmFycmF5KHIub2Zmc2V0LHIub2Zmc2V0K3IuY291bnQpKSxyLmNvdW50PS0xKX0pKGEuYnVmZmVyLGUsaSksYS52ZXJzaW9uPWUudmVyc2lvbil9fX1jbGFzcyBLY3QgZXh0ZW5kcyBkY3R7Y29uc3RydWN0b3IodD0xLGU9MSxuPTEsbz0xKXtzdXBlcigpLHRoaXMudHlwZT0iUGxhbmVHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXt3aWR0aDp0LGhlaWdodDplLHdpZHRoU2VnbWVudHM6bixoZWlnaHRTZWdtZW50czpvfTtjb25zdCBpPXQvMixhPWUvMixyPU1hdGguZmxvb3Iobikscz1NYXRoLmZsb29yKG8pLGw9cisxLGM9cysxLGQ9dC9yLHA9ZS9zLG09W10sZj1bXSx1PVtdLGc9W107Zm9yKGxldCB0PTA7dDxjO3QrKyl7Y29uc3QgZT10KnAtYTtmb3IobGV0IG49MDtuPGw7bisrKXtmLnB1c2gobipkLWksLWUsMCksdS5wdXNoKDAsMCwxKSxnLnB1c2gobi9yKSxnLnB1c2goMS10L3MpfX1mb3IobGV0IHQ9MDt0PHM7dCsrKWZvcihsZXQgZT0wO2U8cjtlKyspe2NvbnN0IG49ZStsKih0KzEpLG89ZSsxK2wqKHQrMSksaT1lKzErbCp0O20ucHVzaChlK2wqdCxuLGkpLG0ucHVzaChuLG8saSl9dGhpcy5zZXRJbmRleChtKSx0aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBlY3QoZiwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoIm5vcm1hbCIsbmV3IGVjdCh1LDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyBlY3QoZywyKSl9c3RhdGljIGZyb21KU09OKHQpe3JldHVybiBuZXcgS2N0KHQud2lkdGgsdC5oZWlnaHQsdC53aWR0aFNlZ21lbnRzLHQuaGVpZ2h0U2VnbWVudHMpfX1jb25zdCBKY3Q9e2FscGhhbWFwX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0FMUEhBTUFQXG5cdGRpZmZ1c2VDb2xvci5hICo9IHRleHR1cmUyRCggYWxwaGFNYXAsIHZVdiApLmc7XG4jZW5kaWYiLGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfQUxQSEFNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgYWxwaGFNYXA7XG4jZW5kaWYiLGFscGhhdGVzdF9mcmFnbWVudDoiI2lmZGVmIEFMUEhBVEVTVFxuXHRpZiAoIGRpZmZ1c2VDb2xvci5hIDwgQUxQSEFURVNUICkgZGlzY2FyZDtcbiNlbmRpZiIsYW9tYXBfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfQU9NQVBcblx0ZmxvYXQgYW1iaWVudE9jY2x1c2lvbiA9ICggdGV4dHVyZTJEKCBhb01hcCwgdlV2MiApLnIgLSAxLjAgKSAqIGFvTWFwSW50ZW5zaXR5ICsgMS4wO1xuXHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKj0gYW1iaWVudE9jY2x1c2lvbjtcblx0I2lmIGRlZmluZWQoIFVTRV9FTlZNQVAgKSAmJiBkZWZpbmVkKCBTVEFOREFSRCApXG5cdFx0ZmxvYXQgZG90TlYgPSBzYXR1cmF0ZSggZG90KCBnZW9tZXRyeS5ub3JtYWwsIGdlb21ldHJ5LnZpZXdEaXIgKSApO1xuXHRcdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0U3BlY3VsYXIgKj0gY29tcHV0ZVNwZWN1bGFyT2NjbHVzaW9uKCBkb3ROViwgYW1iaWVudE9jY2x1c2lvbiwgbWF0ZXJpYWwuc3BlY3VsYXJSb3VnaG5lc3MgKTtcblx0I2VuZGlmXG4jZW5kaWYiLGFvbWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfQU9NQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgYW9NYXA7XG5cdHVuaWZvcm0gZmxvYXQgYW9NYXBJbnRlbnNpdHk7XG4jZW5kaWYiLGJlZ2luX3ZlcnRleDoidmVjMyB0cmFuc2Zvcm1lZCA9IHZlYzMoIHBvc2l0aW9uICk7IixiZWdpbm5vcm1hbF92ZXJ0ZXg6InZlYzMgb2JqZWN0Tm9ybWFsID0gdmVjMyggbm9ybWFsICk7XG4jaWZkZWYgVVNFX1RBTkdFTlRcblx0dmVjMyBvYmplY3RUYW5nZW50ID0gdmVjMyggdGFuZ2VudC54eXogKTtcbiNlbmRpZiIsYnNkZnM6InZlYzIgaW50ZWdyYXRlU3BlY3VsYXJCUkRGKCBjb25zdCBpbiBmbG9hdCBkb3ROViwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzICkge1xuXHRjb25zdCB2ZWM0IGMwID0gdmVjNCggLSAxLCAtIDAuMDI3NSwgLSAwLjU3MiwgMC4wMjIgKTtcblx0Y29uc3QgdmVjNCBjMSA9IHZlYzQoIDEsIDAuMDQyNSwgMS4wNCwgLSAwLjA0ICk7XG5cdHZlYzQgciA9IHJvdWdobmVzcyAqIGMwICsgYzE7XG5cdGZsb2F0IGEwMDQgPSBtaW4oIHIueCAqIHIueCwgZXhwMiggLSA5LjI4ICogZG90TlYgKSApICogci54ICsgci55O1xuXHRyZXR1cm4gdmVjMiggLTEuMDQsIDEuMDQgKSAqIGEwMDQgKyByLnp3O1xufVxuZmxvYXQgcHVuY3R1YWxMaWdodEludGVuc2l0eVRvSXJyYWRpYW5jZUZhY3RvciggY29uc3QgaW4gZmxvYXQgbGlnaHREaXN0YW5jZSwgY29uc3QgaW4gZmxvYXQgY3V0b2ZmRGlzdGFuY2UsIGNvbnN0IGluIGZsb2F0IGRlY2F5RXhwb25lbnQgKSB7XG4jaWYgZGVmaW5lZCAoIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFMgKVxuXHRmbG9hdCBkaXN0YW5jZUZhbGxvZmYgPSAxLjAgLyBtYXgoIHBvdyggbGlnaHREaXN0YW5jZSwgZGVjYXlFeHBvbmVudCApLCAwLjAxICk7XG5cdGlmKCBjdXRvZmZEaXN0YW5jZSA+IDAuMCApIHtcblx0XHRkaXN0YW5jZUZhbGxvZmYgKj0gcG93Miggc2F0dXJhdGUoIDEuMCAtIHBvdzQoIGxpZ2h0RGlzdGFuY2UgLyBjdXRvZmZEaXN0YW5jZSApICkgKTtcblx0fVxuXHRyZXR1cm4gZGlzdGFuY2VGYWxsb2ZmO1xuI2Vsc2Vcblx0aWYoIGN1dG9mZkRpc3RhbmNlID4gMC4wICYmIGRlY2F5RXhwb25lbnQgPiAwLjAgKSB7XG5cdFx0cmV0dXJuIHBvdyggc2F0dXJhdGUoIC1saWdodERpc3RhbmNlIC8gY3V0b2ZmRGlzdGFuY2UgKyAxLjAgKSwgZGVjYXlFeHBvbmVudCApO1xuXHR9XG5cdHJldHVybiAxLjA7XG4jZW5kaWZcbn1cbnZlYzMgQlJERl9EaWZmdXNlX0xhbWJlcnQoIGNvbnN0IGluIHZlYzMgZGlmZnVzZUNvbG9yICkge1xuXHRyZXR1cm4gUkVDSVBST0NBTF9QSSAqIGRpZmZ1c2VDb2xvcjtcbn1cbnZlYzMgRl9TY2hsaWNrKCBjb25zdCBpbiB2ZWMzIGYwLCBjb25zdCBpbiB2ZWMzIGY5MCwgY29uc3QgaW4gZmxvYXQgZG90VkggKSB7XG5cdGZsb2F0IGZyZXNuZWwgPSBleHAyKCAoIC01LjU1NDczICogZG90VkggLSA2Ljk4MzE2ICkgKiBkb3RWSCApO1xuXHRyZXR1cm4gKCBmOTAgLSBmMCApICogZnJlc25lbCArIGYwO1xufVxudmVjMyBGX1NjaGxpY2tfUm91Z2huZXNzRGVwZW5kZW50KCBjb25zdCBpbiB2ZWMzIEYwLCBjb25zdCBpbiBmbG9hdCBkb3ROViwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzICkge1xuXHRmbG9hdCBmcmVzbmVsID0gZXhwMiggKCAtNS41NTQ3MyAqIGRvdE5WIC0gNi45ODMxNiApICogZG90TlYgKTtcblx0dmVjMyBGciA9IG1heCggdmVjMyggMS4wIC0gcm91Z2huZXNzICksIEYwICkgLSBGMDtcblx0cmV0dXJuIEZyICogZnJlc25lbCArIEYwO1xufVxuZmxvYXQgR19HR1hfU21pdGgoIGNvbnN0IGluIGZsb2F0IGFscGhhLCBjb25zdCBpbiBmbG9hdCBkb3ROTCwgY29uc3QgaW4gZmxvYXQgZG90TlYgKSB7XG5cdGZsb2F0IGEyID0gcG93MiggYWxwaGEgKTtcblx0ZmxvYXQgZ2wgPSBkb3ROTCArIHNxcnQoIGEyICsgKCAxLjAgLSBhMiApICogcG93MiggZG90TkwgKSApO1xuXHRmbG9hdCBndiA9IGRvdE5WICsgc3FydCggYTIgKyAoIDEuMCAtIGEyICkgKiBwb3cyKCBkb3ROViApICk7XG5cdHJldHVybiAxLjAgLyAoIGdsICogZ3YgKTtcbn1cbmZsb2F0IEdfR0dYX1NtaXRoQ29ycmVsYXRlZCggY29uc3QgaW4gZmxvYXQgYWxwaGEsIGNvbnN0IGluIGZsb2F0IGRvdE5MLCBjb25zdCBpbiBmbG9hdCBkb3ROViApIHtcblx0ZmxvYXQgYTIgPSBwb3cyKCBhbHBoYSApO1xuXHRmbG9hdCBndiA9IGRvdE5MICogc3FydCggYTIgKyAoIDEuMCAtIGEyICkgKiBwb3cyKCBkb3ROViApICk7XG5cdGZsb2F0IGdsID0gZG90TlYgKiBzcXJ0KCBhMiArICggMS4wIC0gYTIgKSAqIHBvdzIoIGRvdE5MICkgKTtcblx0cmV0dXJuIDAuNSAvIG1heCggZ3YgKyBnbCwgRVBTSUxPTiApO1xufVxuZmxvYXQgRF9HR1goIGNvbnN0IGluIGZsb2F0IGFscGhhLCBjb25zdCBpbiBmbG9hdCBkb3ROSCApIHtcblx0ZmxvYXQgYTIgPSBwb3cyKCBhbHBoYSApO1xuXHRmbG9hdCBkZW5vbSA9IHBvdzIoIGRvdE5IICkgKiAoIGEyIC0gMS4wICkgKyAxLjA7XG5cdHJldHVybiBSRUNJUFJPQ0FMX1BJICogYTIgLyBwb3cyKCBkZW5vbSApO1xufVxudmVjMyBCUkRGX1NwZWN1bGFyX0dHWCggY29uc3QgaW4gSW5jaWRlbnRMaWdodCBpbmNpZGVudExpZ2h0LCBjb25zdCBpbiB2ZWMzIHZpZXdEaXIsIGNvbnN0IGluIHZlYzMgbm9ybWFsLCBjb25zdCBpbiB2ZWMzIGYwLCBjb25zdCBpbiB2ZWMzIGY5MCwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzICkge1xuXHRmbG9hdCBhbHBoYSA9IHBvdzIoIHJvdWdobmVzcyApO1xuXHR2ZWMzIGhhbGZEaXIgPSBub3JtYWxpemUoIGluY2lkZW50TGlnaHQuZGlyZWN0aW9uICsgdmlld0RpciApO1xuXHRmbG9hdCBkb3ROTCA9IHNhdHVyYXRlKCBkb3QoIG5vcm1hbCwgaW5jaWRlbnRMaWdodC5kaXJlY3Rpb24gKSApO1xuXHRmbG9hdCBkb3ROViA9IHNhdHVyYXRlKCBkb3QoIG5vcm1hbCwgdmlld0RpciApICk7XG5cdGZsb2F0IGRvdE5IID0gc2F0dXJhdGUoIGRvdCggbm9ybWFsLCBoYWxmRGlyICkgKTtcblx0ZmxvYXQgZG90TEggPSBzYXR1cmF0ZSggZG90KCBpbmNpZGVudExpZ2h0LmRpcmVjdGlvbiwgaGFsZkRpciApICk7XG5cdHZlYzMgRiA9IEZfU2NobGljayggZjAsIGY5MCwgZG90TEggKTtcblx0ZmxvYXQgRyA9IEdfR0dYX1NtaXRoQ29ycmVsYXRlZCggYWxwaGEsIGRvdE5MLCBkb3ROViApO1xuXHRmbG9hdCBEID0gRF9HR1goIGFscGhhLCBkb3ROSCApO1xuXHRyZXR1cm4gRiAqICggRyAqIEQgKTtcbn1cbnZlYzIgTFRDX1V2KCBjb25zdCBpbiB2ZWMzIE4sIGNvbnN0IGluIHZlYzMgViwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzICkge1xuXHRjb25zdCBmbG9hdCBMVVRfU0laRSA9IDY0LjA7XG5cdGNvbnN0IGZsb2F0IExVVF9TQ0FMRSA9ICggTFVUX1NJWkUgLSAxLjAgKSAvIExVVF9TSVpFO1xuXHRjb25zdCBmbG9hdCBMVVRfQklBUyA9IDAuNSAvIExVVF9TSVpFO1xuXHRmbG9hdCBkb3ROViA9IHNhdHVyYXRlKCBkb3QoIE4sIFYgKSApO1xuXHR2ZWMyIHV2ID0gdmVjMiggcm91Z2huZXNzLCBzcXJ0KCAxLjAgLSBkb3ROViApICk7XG5cdHV2ID0gdXYgKiBMVVRfU0NBTEUgKyBMVVRfQklBUztcblx0cmV0dXJuIHV2O1xufVxuZmxvYXQgTFRDX0NsaXBwZWRTcGhlcmVGb3JtRmFjdG9yKCBjb25zdCBpbiB2ZWMzIGYgKSB7XG5cdGZsb2F0IGwgPSBsZW5ndGgoIGYgKTtcblx0cmV0dXJuIG1heCggKCBsICogbCArIGYueiApIC8gKCBsICsgMS4wICksIDAuMCApO1xufVxudmVjMyBMVENfRWRnZVZlY3RvckZvcm1GYWN0b3IoIGNvbnN0IGluIHZlYzMgdjEsIGNvbnN0IGluIHZlYzMgdjIgKSB7XG5cdGZsb2F0IHggPSBkb3QoIHYxLCB2MiApO1xuXHRmbG9hdCB5ID0gYWJzKCB4ICk7XG5cdGZsb2F0IGEgPSAwLjg1NDM5ODUgKyAoIDAuNDk2NTE1NSArIDAuMDE0NTIwNiAqIHkgKSAqIHk7XG5cdGZsb2F0IGIgPSAzLjQxNzU5NDAgKyAoIDQuMTYxNjcyNCArIHkgKSAqIHk7XG5cdGZsb2F0IHYgPSBhIC8gYjtcblx0ZmxvYXQgdGhldGFfc2ludGhldGEgPSAoIHggPiAwLjAgKSA/IHYgOiAwLjUgKiBpbnZlcnNlc3FydCggbWF4KCAxLjAgLSB4ICogeCwgMWUtNyApICkgLSB2O1xuXHRyZXR1cm4gY3Jvc3MoIHYxLCB2MiApICogdGhldGFfc2ludGhldGE7XG59XG52ZWMzIExUQ19FdmFsdWF0ZSggY29uc3QgaW4gdmVjMyBOLCBjb25zdCBpbiB2ZWMzIFYsIGNvbnN0IGluIHZlYzMgUCwgY29uc3QgaW4gbWF0MyBtSW52LCBjb25zdCBpbiB2ZWMzIHJlY3RDb29yZHNbIDQgXSApIHtcblx0dmVjMyB2MSA9IHJlY3RDb29yZHNbIDEgXSAtIHJlY3RDb29yZHNbIDAgXTtcblx0dmVjMyB2MiA9IHJlY3RDb29yZHNbIDMgXSAtIHJlY3RDb29yZHNbIDAgXTtcblx0dmVjMyBsaWdodE5vcm1hbCA9IGNyb3NzKCB2MSwgdjIgKTtcblx0aWYoIGRvdCggbGlnaHROb3JtYWwsIFAgLSByZWN0Q29vcmRzWyAwIF0gKSA8IDAuMCApIHJldHVybiB2ZWMzKCAwLjAgKTtcblx0dmVjMyBUMSwgVDI7XG5cdFQxID0gbm9ybWFsaXplKCBWIC0gTiAqIGRvdCggViwgTiApICk7XG5cdFQyID0gLSBjcm9zcyggTiwgVDEgKTtcblx0bWF0MyBtYXQgPSBtSW52ICogdHJhbnNwb3NlTWF0MyggbWF0MyggVDEsIFQyLCBOICkgKTtcblx0dmVjMyBjb29yZHNbIDQgXTtcblx0Y29vcmRzWyAwIF0gPSBtYXQgKiAoIHJlY3RDb29yZHNbIDAgXSAtIFAgKTtcblx0Y29vcmRzWyAxIF0gPSBtYXQgKiAoIHJlY3RDb29yZHNbIDEgXSAtIFAgKTtcblx0Y29vcmRzWyAyIF0gPSBtYXQgKiAoIHJlY3RDb29yZHNbIDIgXSAtIFAgKTtcblx0Y29vcmRzWyAzIF0gPSBtYXQgKiAoIHJlY3RDb29yZHNbIDMgXSAtIFAgKTtcblx0Y29vcmRzWyAwIF0gPSBub3JtYWxpemUoIGNvb3Jkc1sgMCBdICk7XG5cdGNvb3Jkc1sgMSBdID0gbm9ybWFsaXplKCBjb29yZHNbIDEgXSApO1xuXHRjb29yZHNbIDIgXSA9IG5vcm1hbGl6ZSggY29vcmRzWyAyIF0gKTtcblx0Y29vcmRzWyAzIF0gPSBub3JtYWxpemUoIGNvb3Jkc1sgMyBdICk7XG5cdHZlYzMgdmVjdG9yRm9ybUZhY3RvciA9IHZlYzMoIDAuMCApO1xuXHR2ZWN0b3JGb3JtRmFjdG9yICs9IExUQ19FZGdlVmVjdG9yRm9ybUZhY3RvciggY29vcmRzWyAwIF0sIGNvb3Jkc1sgMSBdICk7XG5cdHZlY3RvckZvcm1GYWN0b3IgKz0gTFRDX0VkZ2VWZWN0b3JGb3JtRmFjdG9yKCBjb29yZHNbIDEgXSwgY29vcmRzWyAyIF0gKTtcblx0dmVjdG9yRm9ybUZhY3RvciArPSBMVENfRWRnZVZlY3RvckZvcm1GYWN0b3IoIGNvb3Jkc1sgMiBdLCBjb29yZHNbIDMgXSApO1xuXHR2ZWN0b3JGb3JtRmFjdG9yICs9IExUQ19FZGdlVmVjdG9yRm9ybUZhY3RvciggY29vcmRzWyAzIF0sIGNvb3Jkc1sgMCBdICk7XG5cdGZsb2F0IHJlc3VsdCA9IExUQ19DbGlwcGVkU3BoZXJlRm9ybUZhY3RvciggdmVjdG9yRm9ybUZhY3RvciApO1xuXHRyZXR1cm4gdmVjMyggcmVzdWx0ICk7XG59XG52ZWMzIEJSREZfU3BlY3VsYXJfR0dYX0Vudmlyb25tZW50KCBjb25zdCBpbiB2ZWMzIHZpZXdEaXIsIGNvbnN0IGluIHZlYzMgbm9ybWFsLCBjb25zdCBpbiB2ZWMzIHNwZWN1bGFyQ29sb3IsIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcyApIHtcblx0ZmxvYXQgZG90TlYgPSBzYXR1cmF0ZSggZG90KCBub3JtYWwsIHZpZXdEaXIgKSApO1xuXHR2ZWMyIGJyZGYgPSBpbnRlZ3JhdGVTcGVjdWxhckJSREYoIGRvdE5WLCByb3VnaG5lc3MgKTtcblx0cmV0dXJuIHNwZWN1bGFyQ29sb3IgKiBicmRmLnggKyBicmRmLnk7XG59XG52b2lkIEJSREZfU3BlY3VsYXJfTXVsdGlzY2F0dGVyaW5nX0Vudmlyb25tZW50KCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiB2ZWMzIHNwZWN1bGFyQ29sb3IsIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcywgaW5vdXQgdmVjMyBzaW5nbGVTY2F0dGVyLCBpbm91dCB2ZWMzIG11bHRpU2NhdHRlciApIHtcblx0ZmxvYXQgZG90TlYgPSBzYXR1cmF0ZSggZG90KCBnZW9tZXRyeS5ub3JtYWwsIGdlb21ldHJ5LnZpZXdEaXIgKSApO1xuXHR2ZWMzIEYgPSBGX1NjaGxpY2tfUm91Z2huZXNzRGVwZW5kZW50KCBzcGVjdWxhckNvbG9yLCBkb3ROViwgcm91Z2huZXNzICk7XG5cdHZlYzIgYnJkZiA9IGludGVncmF0ZVNwZWN1bGFyQlJERiggZG90TlYsIHJvdWdobmVzcyApO1xuXHR2ZWMzIEZzc0VzcyA9IEYgKiBicmRmLnggKyBicmRmLnk7XG5cdGZsb2F0IEVzcyA9IGJyZGYueCArIGJyZGYueTtcblx0ZmxvYXQgRW1zID0gMS4wIC0gRXNzO1xuXHR2ZWMzIEZhdmcgPSBzcGVjdWxhckNvbG9yICsgKCAxLjAgLSBzcGVjdWxhckNvbG9yICkgKiAwLjA0NzYxOTtcdHZlYzMgRm1zID0gRnNzRXNzICogRmF2ZyAvICggMS4wIC0gRW1zICogRmF2ZyApO1xuXHRzaW5nbGVTY2F0dGVyICs9IEZzc0Vzcztcblx0bXVsdGlTY2F0dGVyICs9IEZtcyAqIEVtcztcbn1cbmZsb2F0IEdfQmxpbm5QaG9uZ19JbXBsaWNpdCggKSB7XG5cdHJldHVybiAwLjI1O1xufVxuZmxvYXQgRF9CbGlublBob25nKCBjb25zdCBpbiBmbG9hdCBzaGluaW5lc3MsIGNvbnN0IGluIGZsb2F0IGRvdE5IICkge1xuXHRyZXR1cm4gUkVDSVBST0NBTF9QSSAqICggc2hpbmluZXNzICogMC41ICsgMS4wICkgKiBwb3coIGRvdE5ILCBzaGluaW5lc3MgKTtcbn1cbnZlYzMgQlJERl9TcGVjdWxhcl9CbGlublBob25nKCBjb25zdCBpbiBJbmNpZGVudExpZ2h0IGluY2lkZW50TGlnaHQsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIHZlYzMgc3BlY3VsYXJDb2xvciwgY29uc3QgaW4gZmxvYXQgc2hpbmluZXNzICkge1xuXHR2ZWMzIGhhbGZEaXIgPSBub3JtYWxpemUoIGluY2lkZW50TGlnaHQuZGlyZWN0aW9uICsgZ2VvbWV0cnkudmlld0RpciApO1xuXHRmbG9hdCBkb3ROSCA9IHNhdHVyYXRlKCBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgaGFsZkRpciApICk7XG5cdGZsb2F0IGRvdExIID0gc2F0dXJhdGUoIGRvdCggaW5jaWRlbnRMaWdodC5kaXJlY3Rpb24sIGhhbGZEaXIgKSApO1xuXHR2ZWMzIEYgPSBGX1NjaGxpY2soIHNwZWN1bGFyQ29sb3IsIHZlYzMoIDEuMCApLCBkb3RMSCApO1xuXHRmbG9hdCBHID0gR19CbGlublBob25nX0ltcGxpY2l0KCApO1xuXHRmbG9hdCBEID0gRF9CbGlublBob25nKCBzaGluaW5lc3MsIGRvdE5IICk7XG5cdHJldHVybiBGICogKCBHICogRCApO1xufVxuZmxvYXQgR0dYUm91Z2huZXNzVG9CbGlubkV4cG9uZW50KCBjb25zdCBpbiBmbG9hdCBnZ3hSb3VnaG5lc3MgKSB7XG5cdHJldHVybiAoIDIuMCAvIHBvdzIoIGdneFJvdWdobmVzcyArIDAuMDAwMSApIC0gMi4wICk7XG59XG5mbG9hdCBCbGlubkV4cG9uZW50VG9HR1hSb3VnaG5lc3MoIGNvbnN0IGluIGZsb2F0IGJsaW5uRXhwb25lbnQgKSB7XG5cdHJldHVybiBzcXJ0KCAyLjAgLyAoIGJsaW5uRXhwb25lbnQgKyAyLjAgKSApO1xufVxuI2lmIGRlZmluZWQoIFVTRV9TSEVFTiApXG5mbG9hdCBEX0NoYXJsaWUoZmxvYXQgcm91Z2huZXNzLCBmbG9hdCBOb0gpIHtcblx0ZmxvYXQgaW52QWxwaGEgPSAxLjAgLyByb3VnaG5lc3M7XG5cdGZsb2F0IGNvczJoID0gTm9IICogTm9IO1xuXHRmbG9hdCBzaW4yaCA9IG1heCgxLjAgLSBjb3MyaCwgMC4wMDc4MTI1KTtcdHJldHVybiAoMi4wICsgaW52QWxwaGEpICogcG93KHNpbjJoLCBpbnZBbHBoYSAqIDAuNSkgLyAoMi4wICogUEkpO1xufVxuZmxvYXQgVl9OZXViZWx0KGZsb2F0IE5vViwgZmxvYXQgTm9MKSB7XG5cdHJldHVybiBzYXR1cmF0ZSgxLjAgLyAoNC4wICogKE5vTCArIE5vViAtIE5vTCAqIE5vVikpKTtcbn1cbnZlYzMgQlJERl9TcGVjdWxhcl9TaGVlbiggY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzLCBjb25zdCBpbiB2ZWMzIEwsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIHZlYzMgc3BlY3VsYXJDb2xvciApIHtcblx0dmVjMyBOID0gZ2VvbWV0cnkubm9ybWFsO1xuXHR2ZWMzIFYgPSBnZW9tZXRyeS52aWV3RGlyO1xuXHR2ZWMzIEggPSBub3JtYWxpemUoIFYgKyBMICk7XG5cdGZsb2F0IGRvdE5IID0gc2F0dXJhdGUoIGRvdCggTiwgSCApICk7XG5cdHJldHVybiBzcGVjdWxhckNvbG9yICogRF9DaGFybGllKCByb3VnaG5lc3MsIGRvdE5IICkgKiBWX05ldWJlbHQoIGRvdChOLCBWKSwgZG90KE4sIEwpICk7XG59XG4jZW5kaWYiLGJ1bXBtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9CVU1QTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIGJ1bXBNYXA7XG5cdHVuaWZvcm0gZmxvYXQgYnVtcFNjYWxlO1xuXHR2ZWMyIGRIZHh5X2Z3ZCgpIHtcblx0XHR2ZWMyIGRTVGR4ID0gZEZkeCggdlV2ICk7XG5cdFx0dmVjMiBkU1RkeSA9IGRGZHkoIHZVdiApO1xuXHRcdGZsb2F0IEhsbCA9IGJ1bXBTY2FsZSAqIHRleHR1cmUyRCggYnVtcE1hcCwgdlV2ICkueDtcblx0XHRmbG9hdCBkQnggPSBidW1wU2NhbGUgKiB0ZXh0dXJlMkQoIGJ1bXBNYXAsIHZVdiArIGRTVGR4ICkueCAtIEhsbDtcblx0XHRmbG9hdCBkQnkgPSBidW1wU2NhbGUgKiB0ZXh0dXJlMkQoIGJ1bXBNYXAsIHZVdiArIGRTVGR5ICkueCAtIEhsbDtcblx0XHRyZXR1cm4gdmVjMiggZEJ4LCBkQnkgKTtcblx0fVxuXHR2ZWMzIHBlcnR1cmJOb3JtYWxBcmIoIHZlYzMgc3VyZl9wb3MsIHZlYzMgc3VyZl9ub3JtLCB2ZWMyIGRIZHh5LCBmbG9hdCBmYWNlRGlyZWN0aW9uICkge1xuXHRcdHZlYzMgdlNpZ21hWCA9IHZlYzMoIGRGZHgoIHN1cmZfcG9zLnggKSwgZEZkeCggc3VyZl9wb3MueSApLCBkRmR4KCBzdXJmX3Bvcy56ICkgKTtcblx0XHR2ZWMzIHZTaWdtYVkgPSB2ZWMzKCBkRmR5KCBzdXJmX3Bvcy54ICksIGRGZHkoIHN1cmZfcG9zLnkgKSwgZEZkeSggc3VyZl9wb3MueiApICk7XG5cdFx0dmVjMyB2TiA9IHN1cmZfbm9ybTtcblx0XHR2ZWMzIFIxID0gY3Jvc3MoIHZTaWdtYVksIHZOICk7XG5cdFx0dmVjMyBSMiA9IGNyb3NzKCB2TiwgdlNpZ21hWCApO1xuXHRcdGZsb2F0IGZEZXQgPSBkb3QoIHZTaWdtYVgsIFIxICkgKiBmYWNlRGlyZWN0aW9uO1xuXHRcdHZlYzMgdkdyYWQgPSBzaWduKCBmRGV0ICkgKiAoIGRIZHh5LnggKiBSMSArIGRIZHh5LnkgKiBSMiApO1xuXHRcdHJldHVybiBub3JtYWxpemUoIGFicyggZkRldCApICogc3VyZl9ub3JtIC0gdkdyYWQgKTtcblx0fVxuI2VuZGlmIixjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ6IiNpZiBOVU1fQ0xJUFBJTkdfUExBTkVTID4gMFxuXHR2ZWM0IHBsYW5lO1xuXHQjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG5cdGZvciAoIGludCBpID0gMDsgaSA8IFVOSU9OX0NMSVBQSU5HX1BMQU5FUzsgaSArKyApIHtcblx0XHRwbGFuZSA9IGNsaXBwaW5nUGxhbmVzWyBpIF07XG5cdFx0aWYgKCBkb3QoIHZDbGlwUG9zaXRpb24sIHBsYW5lLnh5eiApID4gcGxhbmUudyApIGRpc2NhcmQ7XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcblx0I2lmIFVOSU9OX0NMSVBQSU5HX1BMQU5FUyA8IE5VTV9DTElQUElOR19QTEFORVNcblx0XHRib29sIGNsaXBwZWQgPSB0cnVlO1xuXHRcdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0XHRmb3IgKCBpbnQgaSA9IFVOSU9OX0NMSVBQSU5HX1BMQU5FUzsgaSA8IE5VTV9DTElQUElOR19QTEFORVM7IGkgKysgKSB7XG5cdFx0XHRwbGFuZSA9IGNsaXBwaW5nUGxhbmVzWyBpIF07XG5cdFx0XHRjbGlwcGVkID0gKCBkb3QoIHZDbGlwUG9zaXRpb24sIHBsYW5lLnh5eiApID4gcGxhbmUudyApICYmIGNsaXBwZWQ7XG5cdFx0fVxuXHRcdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG5cdFx0aWYgKCBjbGlwcGVkICkgZGlzY2FyZDtcblx0I2VuZGlmXG4jZW5kaWYiLGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50OiIjaWYgTlVNX0NMSVBQSU5HX1BMQU5FUyA+IDBcblx0dmFyeWluZyB2ZWMzIHZDbGlwUG9zaXRpb247XG5cdHVuaWZvcm0gdmVjNCBjbGlwcGluZ1BsYW5lc1sgTlVNX0NMSVBQSU5HX1BMQU5FUyBdO1xuI2VuZGlmIixjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg6IiNpZiBOVU1fQ0xJUFBJTkdfUExBTkVTID4gMFxuXHR2YXJ5aW5nIHZlYzMgdkNsaXBQb3NpdGlvbjtcbiNlbmRpZiIsY2xpcHBpbmdfcGxhbmVzX3ZlcnRleDoiI2lmIE5VTV9DTElQUElOR19QTEFORVMgPiAwXG5cdHZDbGlwUG9zaXRpb24gPSAtIG12UG9zaXRpb24ueHl6O1xuI2VuZGlmIixjb2xvcl9mcmFnbWVudDoiI2lmIGRlZmluZWQoIFVTRV9DT0xPUl9BTFBIQSApXG5cdGRpZmZ1c2VDb2xvciAqPSB2Q29sb3I7XG4jZWxpZiBkZWZpbmVkKCBVU0VfQ09MT1IgKVxuXHRkaWZmdXNlQ29sb3IucmdiICo9IHZDb2xvcjtcbiNlbmRpZiIsY29sb3JfcGFyc19mcmFnbWVudDoiI2lmIGRlZmluZWQoIFVTRV9DT0xPUl9BTFBIQSApXG5cdHZhcnlpbmcgdmVjNCB2Q29sb3I7XG4jZWxpZiBkZWZpbmVkKCBVU0VfQ09MT1IgKVxuXHR2YXJ5aW5nIHZlYzMgdkNvbG9yO1xuI2VuZGlmIixjb2xvcl9wYXJzX3ZlcnRleDoiI2lmIGRlZmluZWQoIFVTRV9DT0xPUl9BTFBIQSApXG5cdHZhcnlpbmcgdmVjNCB2Q29sb3I7XG4jZWxpZiBkZWZpbmVkKCBVU0VfQ09MT1IgKSB8fCBkZWZpbmVkKCBVU0VfSU5TVEFOQ0lOR19DT0xPUiApXG5cdHZhcnlpbmcgdmVjMyB2Q29sb3I7XG4jZW5kaWYiLGNvbG9yX3ZlcnRleDoiI2lmIGRlZmluZWQoIFVTRV9DT0xPUl9BTFBIQSApXG5cdHZDb2xvciA9IHZlYzQoIDEuMCApO1xuI2VsaWYgZGVmaW5lZCggVVNFX0NPTE9SICkgfHwgZGVmaW5lZCggVVNFX0lOU1RBTkNJTkdfQ09MT1IgKVxuXHR2Q29sb3IgPSB2ZWMzKCAxLjAgKTtcbiNlbmRpZlxuI2lmZGVmIFVTRV9DT0xPUlxuXHR2Q29sb3IgKj0gY29sb3I7XG4jZW5kaWZcbiNpZmRlZiBVU0VfSU5TVEFOQ0lOR19DT0xPUlxuXHR2Q29sb3IueHl6ICo9IGluc3RhbmNlQ29sb3IueHl6O1xuI2VuZGlmIixjb21tb246IiNkZWZpbmUgUEkgMy4xNDE1OTI2NTM1ODk3OTNcbiNkZWZpbmUgUEkyIDYuMjgzMTg1MzA3MTc5NTg2XG4jZGVmaW5lIFBJX0hBTEYgMS41NzA3OTYzMjY3OTQ4OTY2XG4jZGVmaW5lIFJFQ0lQUk9DQUxfUEkgMC4zMTgzMDk4ODYxODM3OTA3XG4jZGVmaW5lIFJFQ0lQUk9DQUxfUEkyIDAuMTU5MTU0OTQzMDkxODk1MzVcbiNkZWZpbmUgRVBTSUxPTiAxZS02XG4jaWZuZGVmIHNhdHVyYXRlXG4jZGVmaW5lIHNhdHVyYXRlKGEpIGNsYW1wKCBhLCAwLjAsIDEuMCApXG4jZW5kaWZcbiNkZWZpbmUgd2hpdGVDb21wbGVtZW50KGEpICggMS4wIC0gc2F0dXJhdGUoIGEgKSApXG5mbG9hdCBwb3cyKCBjb25zdCBpbiBmbG9hdCB4ICkgeyByZXR1cm4geCp4OyB9XG5mbG9hdCBwb3czKCBjb25zdCBpbiBmbG9hdCB4ICkgeyByZXR1cm4geCp4Kng7IH1cbmZsb2F0IHBvdzQoIGNvbnN0IGluIGZsb2F0IHggKSB7IGZsb2F0IHgyID0geCp4OyByZXR1cm4geDIqeDI7IH1cbmZsb2F0IGF2ZXJhZ2UoIGNvbnN0IGluIHZlYzMgY29sb3IgKSB7IHJldHVybiBkb3QoIGNvbG9yLCB2ZWMzKCAwLjMzMzMgKSApOyB9XG5oaWdocCBmbG9hdCByYW5kKCBjb25zdCBpbiB2ZWMyIHV2ICkge1xuXHRjb25zdCBoaWdocCBmbG9hdCBhID0gMTIuOTg5OCwgYiA9IDc4LjIzMywgYyA9IDQzNzU4LjU0NTM7XG5cdGhpZ2hwIGZsb2F0IGR0ID0gZG90KCB1di54eSwgdmVjMiggYSxiICkgKSwgc24gPSBtb2QoIGR0LCBQSSApO1xuXHRyZXR1cm4gZnJhY3Qoc2luKHNuKSAqIGMpO1xufVxuI2lmZGVmIEhJR0hfUFJFQ0lTSU9OXG5cdGZsb2F0IHByZWNpc2lvblNhZmVMZW5ndGgoIHZlYzMgdiApIHsgcmV0dXJuIGxlbmd0aCggdiApOyB9XG4jZWxzZVxuXHRmbG9hdCBtYXgzKCB2ZWMzIHYgKSB7IHJldHVybiBtYXgoIG1heCggdi54LCB2LnkgKSwgdi56ICk7IH1cblx0ZmxvYXQgcHJlY2lzaW9uU2FmZUxlbmd0aCggdmVjMyB2ICkge1xuXHRcdGZsb2F0IG1heENvbXBvbmVudCA9IG1heDMoIGFicyggdiApICk7XG5cdFx0cmV0dXJuIGxlbmd0aCggdiAvIG1heENvbXBvbmVudCApICogbWF4Q29tcG9uZW50O1xuXHR9XG4jZW5kaWZcbnN0cnVjdCBJbmNpZGVudExpZ2h0IHtcblx0dmVjMyBjb2xvcjtcblx0dmVjMyBkaXJlY3Rpb247XG5cdGJvb2wgdmlzaWJsZTtcbn07XG5zdHJ1Y3QgUmVmbGVjdGVkTGlnaHQge1xuXHR2ZWMzIGRpcmVjdERpZmZ1c2U7XG5cdHZlYzMgZGlyZWN0U3BlY3VsYXI7XG5cdHZlYzMgaW5kaXJlY3REaWZmdXNlO1xuXHR2ZWMzIGluZGlyZWN0U3BlY3VsYXI7XG59O1xuc3RydWN0IEdlb21ldHJpY0NvbnRleHQge1xuXHR2ZWMzIHBvc2l0aW9uO1xuXHR2ZWMzIG5vcm1hbDtcblx0dmVjMyB2aWV3RGlyO1xuI2lmZGVmIENMRUFSQ09BVFxuXHR2ZWMzIGNsZWFyY29hdE5vcm1hbDtcbiNlbmRpZlxufTtcbnZlYzMgdHJhbnNmb3JtRGlyZWN0aW9uKCBpbiB2ZWMzIGRpciwgaW4gbWF0NCBtYXRyaXggKSB7XG5cdHJldHVybiBub3JtYWxpemUoICggbWF0cml4ICogdmVjNCggZGlyLCAwLjAgKSApLnh5eiApO1xufVxudmVjMyBpbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uKCBpbiB2ZWMzIGRpciwgaW4gbWF0NCBtYXRyaXggKSB7XG5cdHJldHVybiBub3JtYWxpemUoICggdmVjNCggZGlyLCAwLjAgKSAqIG1hdHJpeCApLnh5eiApO1xufVxudmVjMyBwcm9qZWN0T25QbGFuZShpbiB2ZWMzIHBvaW50LCBpbiB2ZWMzIHBvaW50T25QbGFuZSwgaW4gdmVjMyBwbGFuZU5vcm1hbCApIHtcblx0ZmxvYXQgZGlzdGFuY2UgPSBkb3QoIHBsYW5lTm9ybWFsLCBwb2ludCAtIHBvaW50T25QbGFuZSApO1xuXHRyZXR1cm4gLSBkaXN0YW5jZSAqIHBsYW5lTm9ybWFsICsgcG9pbnQ7XG59XG5mbG9hdCBzaWRlT2ZQbGFuZSggaW4gdmVjMyBwb2ludCwgaW4gdmVjMyBwb2ludE9uUGxhbmUsIGluIHZlYzMgcGxhbmVOb3JtYWwgKSB7XG5cdHJldHVybiBzaWduKCBkb3QoIHBvaW50IC0gcG9pbnRPblBsYW5lLCBwbGFuZU5vcm1hbCApICk7XG59XG52ZWMzIGxpbmVQbGFuZUludGVyc2VjdCggaW4gdmVjMyBwb2ludE9uTGluZSwgaW4gdmVjMyBsaW5lRGlyZWN0aW9uLCBpbiB2ZWMzIHBvaW50T25QbGFuZSwgaW4gdmVjMyBwbGFuZU5vcm1hbCApIHtcblx0cmV0dXJuIGxpbmVEaXJlY3Rpb24gKiAoIGRvdCggcGxhbmVOb3JtYWwsIHBvaW50T25QbGFuZSAtIHBvaW50T25MaW5lICkgLyBkb3QoIHBsYW5lTm9ybWFsLCBsaW5lRGlyZWN0aW9uICkgKSArIHBvaW50T25MaW5lO1xufVxubWF0MyB0cmFuc3Bvc2VNYXQzKCBjb25zdCBpbiBtYXQzIG0gKSB7XG5cdG1hdDMgdG1wO1xuXHR0bXBbIDAgXSA9IHZlYzMoIG1bIDAgXS54LCBtWyAxIF0ueCwgbVsgMiBdLnggKTtcblx0dG1wWyAxIF0gPSB2ZWMzKCBtWyAwIF0ueSwgbVsgMSBdLnksIG1bIDIgXS55ICk7XG5cdHRtcFsgMiBdID0gdmVjMyggbVsgMCBdLnosIG1bIDEgXS56LCBtWyAyIF0ueiApO1xuXHRyZXR1cm4gdG1wO1xufVxuZmxvYXQgbGluZWFyVG9SZWxhdGl2ZUx1bWluYW5jZSggY29uc3QgaW4gdmVjMyBjb2xvciApIHtcblx0dmVjMyB3ZWlnaHRzID0gdmVjMyggMC4yMTI2LCAwLjcxNTIsIDAuMDcyMiApO1xuXHRyZXR1cm4gZG90KCB3ZWlnaHRzLCBjb2xvci5yZ2IgKTtcbn1cbmJvb2wgaXNQZXJzcGVjdGl2ZU1hdHJpeCggbWF0NCBtICkge1xuXHRyZXR1cm4gbVsgMiBdWyAzIF0gPT0gLSAxLjA7XG59XG52ZWMyIGVxdWlyZWN0VXYoIGluIHZlYzMgZGlyICkge1xuXHRmbG9hdCB1ID0gYXRhbiggZGlyLnosIGRpci54ICkgKiBSRUNJUFJPQ0FMX1BJMiArIDAuNTtcblx0ZmxvYXQgdiA9IGFzaW4oIGNsYW1wKCBkaXIueSwgLSAxLjAsIDEuMCApICkgKiBSRUNJUFJPQ0FMX1BJICsgMC41O1xuXHRyZXR1cm4gdmVjMiggdSwgdiApO1xufSIsY3ViZV91dl9yZWZsZWN0aW9uX2ZyYWdtZW50OiIjaWZkZWYgRU5WTUFQX1RZUEVfQ1VCRV9VVlxuXHQjZGVmaW5lIGN1YmVVVl9tYXhNaXBMZXZlbCA4LjBcblx0I2RlZmluZSBjdWJlVVZfbWluTWlwTGV2ZWwgNC4wXG5cdCNkZWZpbmUgY3ViZVVWX21heFRpbGVTaXplIDI1Ni4wXG5cdCNkZWZpbmUgY3ViZVVWX21pblRpbGVTaXplIDE2LjBcblx0ZmxvYXQgZ2V0RmFjZSggdmVjMyBkaXJlY3Rpb24gKSB7XG5cdFx0dmVjMyBhYnNEaXJlY3Rpb24gPSBhYnMoIGRpcmVjdGlvbiApO1xuXHRcdGZsb2F0IGZhY2UgPSAtIDEuMDtcblx0XHRpZiAoIGFic0RpcmVjdGlvbi54ID4gYWJzRGlyZWN0aW9uLnogKSB7XG5cdFx0XHRpZiAoIGFic0RpcmVjdGlvbi54ID4gYWJzRGlyZWN0aW9uLnkgKVxuXHRcdFx0XHRmYWNlID0gZGlyZWN0aW9uLnggPiAwLjAgPyAwLjAgOiAzLjA7XG5cdFx0XHRlbHNlXG5cdFx0XHRcdGZhY2UgPSBkaXJlY3Rpb24ueSA+IDAuMCA/IDEuMCA6IDQuMDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0aWYgKCBhYnNEaXJlY3Rpb24ueiA+IGFic0RpcmVjdGlvbi55IClcblx0XHRcdFx0ZmFjZSA9IGRpcmVjdGlvbi56ID4gMC4wID8gMi4wIDogNS4wO1xuXHRcdFx0ZWxzZVxuXHRcdFx0XHRmYWNlID0gZGlyZWN0aW9uLnkgPiAwLjAgPyAxLjAgOiA0LjA7XG5cdFx0fVxuXHRcdHJldHVybiBmYWNlO1xuXHR9XG5cdHZlYzIgZ2V0VVYoIHZlYzMgZGlyZWN0aW9uLCBmbG9hdCBmYWNlICkge1xuXHRcdHZlYzIgdXY7XG5cdFx0aWYgKCBmYWNlID09IDAuMCApIHtcblx0XHRcdHV2ID0gdmVjMiggZGlyZWN0aW9uLnosIGRpcmVjdGlvbi55ICkgLyBhYnMoIGRpcmVjdGlvbi54ICk7XG5cdFx0fSBlbHNlIGlmICggZmFjZSA9PSAxLjAgKSB7XG5cdFx0XHR1diA9IHZlYzIoIC0gZGlyZWN0aW9uLngsIC0gZGlyZWN0aW9uLnogKSAvIGFicyggZGlyZWN0aW9uLnkgKTtcblx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDIuMCApIHtcblx0XHRcdHV2ID0gdmVjMiggLSBkaXJlY3Rpb24ueCwgZGlyZWN0aW9uLnkgKSAvIGFicyggZGlyZWN0aW9uLnogKTtcblx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDMuMCApIHtcblx0XHRcdHV2ID0gdmVjMiggLSBkaXJlY3Rpb24ueiwgZGlyZWN0aW9uLnkgKSAvIGFicyggZGlyZWN0aW9uLnggKTtcblx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDQuMCApIHtcblx0XHRcdHV2ID0gdmVjMiggLSBkaXJlY3Rpb24ueCwgZGlyZWN0aW9uLnogKSAvIGFicyggZGlyZWN0aW9uLnkgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dXYgPSB2ZWMyKCBkaXJlY3Rpb24ueCwgZGlyZWN0aW9uLnkgKSAvIGFicyggZGlyZWN0aW9uLnogKTtcblx0XHR9XG5cdFx0cmV0dXJuIDAuNSAqICggdXYgKyAxLjAgKTtcblx0fVxuXHR2ZWMzIGJpbGluZWFyQ3ViZVVWKCBzYW1wbGVyMkQgZW52TWFwLCB2ZWMzIGRpcmVjdGlvbiwgZmxvYXQgbWlwSW50ICkge1xuXHRcdGZsb2F0IGZhY2UgPSBnZXRGYWNlKCBkaXJlY3Rpb24gKTtcblx0XHRmbG9hdCBmaWx0ZXJJbnQgPSBtYXgoIGN1YmVVVl9taW5NaXBMZXZlbCAtIG1pcEludCwgMC4wICk7XG5cdFx0bWlwSW50ID0gbWF4KCBtaXBJbnQsIGN1YmVVVl9taW5NaXBMZXZlbCApO1xuXHRcdGZsb2F0IGZhY2VTaXplID0gZXhwMiggbWlwSW50ICk7XG5cdFx0ZmxvYXQgdGV4ZWxTaXplID0gMS4wIC8gKCAzLjAgKiBjdWJlVVZfbWF4VGlsZVNpemUgKTtcblx0XHR2ZWMyIHV2ID0gZ2V0VVYoIGRpcmVjdGlvbiwgZmFjZSApICogKCBmYWNlU2l6ZSAtIDEuMCApO1xuXHRcdHZlYzIgZiA9IGZyYWN0KCB1diApO1xuXHRcdHV2ICs9IDAuNSAtIGY7XG5cdFx0aWYgKCBmYWNlID4gMi4wICkge1xuXHRcdFx0dXYueSArPSBmYWNlU2l6ZTtcblx0XHRcdGZhY2UgLT0gMy4wO1xuXHRcdH1cblx0XHR1di54ICs9IGZhY2UgKiBmYWNlU2l6ZTtcblx0XHRpZiAoIG1pcEludCA8IGN1YmVVVl9tYXhNaXBMZXZlbCApIHtcblx0XHRcdHV2LnkgKz0gMi4wICogY3ViZVVWX21heFRpbGVTaXplO1xuXHRcdH1cblx0XHR1di55ICs9IGZpbHRlckludCAqIDIuMCAqIGN1YmVVVl9taW5UaWxlU2l6ZTtcblx0XHR1di54ICs9IDMuMCAqIG1heCggMC4wLCBjdWJlVVZfbWF4VGlsZVNpemUgLSAyLjAgKiBmYWNlU2l6ZSApO1xuXHRcdHV2ICo9IHRleGVsU2l6ZTtcblx0XHR2ZWMzIHRsID0gZW52TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZTJEKCBlbnZNYXAsIHV2ICkgKS5yZ2I7XG5cdFx0dXYueCArPSB0ZXhlbFNpemU7XG5cdFx0dmVjMyB0ciA9IGVudk1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmUyRCggZW52TWFwLCB1diApICkucmdiO1xuXHRcdHV2LnkgKz0gdGV4ZWxTaXplO1xuXHRcdHZlYzMgYnIgPSBlbnZNYXBUZXhlbFRvTGluZWFyKCB0ZXh0dXJlMkQoIGVudk1hcCwgdXYgKSApLnJnYjtcblx0XHR1di54IC09IHRleGVsU2l6ZTtcblx0XHR2ZWMzIGJsID0gZW52TWFwVGV4ZWxUb0xpbmVhciggdGV4dHVyZTJEKCBlbnZNYXAsIHV2ICkgKS5yZ2I7XG5cdFx0dmVjMyB0bSA9IG1peCggdGwsIHRyLCBmLnggKTtcblx0XHR2ZWMzIGJtID0gbWl4KCBibCwgYnIsIGYueCApO1xuXHRcdHJldHVybiBtaXgoIHRtLCBibSwgZi55ICk7XG5cdH1cblx0I2RlZmluZSByMCAxLjBcblx0I2RlZmluZSB2MCAwLjMzOVxuXHQjZGVmaW5lIG0wIC0gMi4wXG5cdCNkZWZpbmUgcjEgMC44XG5cdCNkZWZpbmUgdjEgMC4yNzZcblx0I2RlZmluZSBtMSAtIDEuMFxuXHQjZGVmaW5lIHI0IDAuNFxuXHQjZGVmaW5lIHY0IDAuMDQ2XG5cdCNkZWZpbmUgbTQgMi4wXG5cdCNkZWZpbmUgcjUgMC4zMDVcblx0I2RlZmluZSB2NSAwLjAxNlxuXHQjZGVmaW5lIG01IDMuMFxuXHQjZGVmaW5lIHI2IDAuMjFcblx0I2RlZmluZSB2NiAwLjAwMzhcblx0I2RlZmluZSBtNiA0LjBcblx0ZmxvYXQgcm91Z2huZXNzVG9NaXAoIGZsb2F0IHJvdWdobmVzcyApIHtcblx0XHRmbG9hdCBtaXAgPSAwLjA7XG5cdFx0aWYgKCByb3VnaG5lc3MgPj0gcjEgKSB7XG5cdFx0XHRtaXAgPSAoIHIwIC0gcm91Z2huZXNzICkgKiAoIG0xIC0gbTAgKSAvICggcjAgLSByMSApICsgbTA7XG5cdFx0fSBlbHNlIGlmICggcm91Z2huZXNzID49IHI0ICkge1xuXHRcdFx0bWlwID0gKCByMSAtIHJvdWdobmVzcyApICogKCBtNCAtIG0xICkgLyAoIHIxIC0gcjQgKSArIG0xO1xuXHRcdH0gZWxzZSBpZiAoIHJvdWdobmVzcyA+PSByNSApIHtcblx0XHRcdG1pcCA9ICggcjQgLSByb3VnaG5lc3MgKSAqICggbTUgLSBtNCApIC8gKCByNCAtIHI1ICkgKyBtNDtcblx0XHR9IGVsc2UgaWYgKCByb3VnaG5lc3MgPj0gcjYgKSB7XG5cdFx0XHRtaXAgPSAoIHI1IC0gcm91Z2huZXNzICkgKiAoIG02IC0gbTUgKSAvICggcjUgLSByNiApICsgbTU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdG1pcCA9IC0gMi4wICogbG9nMiggMS4xNiAqIHJvdWdobmVzcyApO1x0XHR9XG5cdFx0cmV0dXJuIG1pcDtcblx0fVxuXHR2ZWM0IHRleHR1cmVDdWJlVVYoIHNhbXBsZXIyRCBlbnZNYXAsIHZlYzMgc2FtcGxlRGlyLCBmbG9hdCByb3VnaG5lc3MgKSB7XG5cdFx0ZmxvYXQgbWlwID0gY2xhbXAoIHJvdWdobmVzc1RvTWlwKCByb3VnaG5lc3MgKSwgbTAsIGN1YmVVVl9tYXhNaXBMZXZlbCApO1xuXHRcdGZsb2F0IG1pcEYgPSBmcmFjdCggbWlwICk7XG5cdFx0ZmxvYXQgbWlwSW50ID0gZmxvb3IoIG1pcCApO1xuXHRcdHZlYzMgY29sb3IwID0gYmlsaW5lYXJDdWJlVVYoIGVudk1hcCwgc2FtcGxlRGlyLCBtaXBJbnQgKTtcblx0XHRpZiAoIG1pcEYgPT0gMC4wICkge1xuXHRcdFx0cmV0dXJuIHZlYzQoIGNvbG9yMCwgMS4wICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHZlYzMgY29sb3IxID0gYmlsaW5lYXJDdWJlVVYoIGVudk1hcCwgc2FtcGxlRGlyLCBtaXBJbnQgKyAxLjAgKTtcblx0XHRcdHJldHVybiB2ZWM0KCBtaXgoIGNvbG9yMCwgY29sb3IxLCBtaXBGICksIDEuMCApO1xuXHRcdH1cblx0fVxuI2VuZGlmIixkZWZhdWx0bm9ybWFsX3ZlcnRleDoidmVjMyB0cmFuc2Zvcm1lZE5vcm1hbCA9IG9iamVjdE5vcm1hbDtcbiNpZmRlZiBVU0VfSU5TVEFOQ0lOR1xuXHRtYXQzIG0gPSBtYXQzKCBpbnN0YW5jZU1hdHJpeCApO1xuXHR0cmFuc2Zvcm1lZE5vcm1hbCAvPSB2ZWMzKCBkb3QoIG1bIDAgXSwgbVsgMCBdICksIGRvdCggbVsgMSBdLCBtWyAxIF0gKSwgZG90KCBtWyAyIF0sIG1bIDIgXSApICk7XG5cdHRyYW5zZm9ybWVkTm9ybWFsID0gbSAqIHRyYW5zZm9ybWVkTm9ybWFsO1xuI2VuZGlmXG50cmFuc2Zvcm1lZE5vcm1hbCA9IG5vcm1hbE1hdHJpeCAqIHRyYW5zZm9ybWVkTm9ybWFsO1xuI2lmZGVmIEZMSVBfU0lERURcblx0dHJhbnNmb3JtZWROb3JtYWwgPSAtIHRyYW5zZm9ybWVkTm9ybWFsO1xuI2VuZGlmXG4jaWZkZWYgVVNFX1RBTkdFTlRcblx0dmVjMyB0cmFuc2Zvcm1lZFRhbmdlbnQgPSAoIG1vZGVsVmlld01hdHJpeCAqIHZlYzQoIG9iamVjdFRhbmdlbnQsIDAuMCApICkueHl6O1xuXHQjaWZkZWYgRkxJUF9TSURFRFxuXHRcdHRyYW5zZm9ybWVkVGFuZ2VudCA9IC0gdHJhbnNmb3JtZWRUYW5nZW50O1xuXHQjZW5kaWZcbiNlbmRpZiIsZGlzcGxhY2VtZW50bWFwX3BhcnNfdmVydGV4OiIjaWZkZWYgVVNFX0RJU1BMQUNFTUVOVE1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBkaXNwbGFjZW1lbnRNYXA7XG5cdHVuaWZvcm0gZmxvYXQgZGlzcGxhY2VtZW50U2NhbGU7XG5cdHVuaWZvcm0gZmxvYXQgZGlzcGxhY2VtZW50QmlhcztcbiNlbmRpZiIsZGlzcGxhY2VtZW50bWFwX3ZlcnRleDoiI2lmZGVmIFVTRV9ESVNQTEFDRU1FTlRNQVBcblx0dHJhbnNmb3JtZWQgKz0gbm9ybWFsaXplKCBvYmplY3ROb3JtYWwgKSAqICggdGV4dHVyZTJEKCBkaXNwbGFjZW1lbnRNYXAsIHZVdiApLnggKiBkaXNwbGFjZW1lbnRTY2FsZSArIGRpc3BsYWNlbWVudEJpYXMgKTtcbiNlbmRpZiIsZW1pc3NpdmVtYXBfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfRU1JU1NJVkVNQVBcblx0dmVjNCBlbWlzc2l2ZUNvbG9yID0gdGV4dHVyZTJEKCBlbWlzc2l2ZU1hcCwgdlV2ICk7XG5cdGVtaXNzaXZlQ29sb3IucmdiID0gZW1pc3NpdmVNYXBUZXhlbFRvTGluZWFyKCBlbWlzc2l2ZUNvbG9yICkucmdiO1xuXHR0b3RhbEVtaXNzaXZlUmFkaWFuY2UgKj0gZW1pc3NpdmVDb2xvci5yZ2I7XG4jZW5kaWYiLGVtaXNzaXZlbWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfRU1JU1NJVkVNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgZW1pc3NpdmVNYXA7XG4jZW5kaWYiLGVuY29kaW5nc19mcmFnbWVudDoiZ2xfRnJhZ0NvbG9yID0gbGluZWFyVG9PdXRwdXRUZXhlbCggZ2xfRnJhZ0NvbG9yICk7IixlbmNvZGluZ3NfcGFyc19mcmFnbWVudDoiXG52ZWM0IExpbmVhclRvTGluZWFyKCBpbiB2ZWM0IHZhbHVlICkge1xuXHRyZXR1cm4gdmFsdWU7XG59XG52ZWM0IEdhbW1hVG9MaW5lYXIoIGluIHZlYzQgdmFsdWUsIGluIGZsb2F0IGdhbW1hRmFjdG9yICkge1xuXHRyZXR1cm4gdmVjNCggcG93KCB2YWx1ZS5yZ2IsIHZlYzMoIGdhbW1hRmFjdG9yICkgKSwgdmFsdWUuYSApO1xufVxudmVjNCBMaW5lYXJUb0dhbW1hKCBpbiB2ZWM0IHZhbHVlLCBpbiBmbG9hdCBnYW1tYUZhY3RvciApIHtcblx0cmV0dXJuIHZlYzQoIHBvdyggdmFsdWUucmdiLCB2ZWMzKCAxLjAgLyBnYW1tYUZhY3RvciApICksIHZhbHVlLmEgKTtcbn1cbnZlYzQgc1JHQlRvTGluZWFyKCBpbiB2ZWM0IHZhbHVlICkge1xuXHRyZXR1cm4gdmVjNCggbWl4KCBwb3coIHZhbHVlLnJnYiAqIDAuOTQ3ODY3Mjk4NiArIHZlYzMoIDAuMDUyMTMyNzAxNCApLCB2ZWMzKCAyLjQgKSApLCB2YWx1ZS5yZ2IgKiAwLjA3NzM5OTM4MDgsIHZlYzMoIGxlc3NUaGFuRXF1YWwoIHZhbHVlLnJnYiwgdmVjMyggMC4wNDA0NSApICkgKSApLCB2YWx1ZS5hICk7XG59XG52ZWM0IExpbmVhclRvc1JHQiggaW4gdmVjNCB2YWx1ZSApIHtcblx0cmV0dXJuIHZlYzQoIG1peCggcG93KCB2YWx1ZS5yZ2IsIHZlYzMoIDAuNDE2NjYgKSApICogMS4wNTUgLSB2ZWMzKCAwLjA1NSApLCB2YWx1ZS5yZ2IgKiAxMi45MiwgdmVjMyggbGVzc1RoYW5FcXVhbCggdmFsdWUucmdiLCB2ZWMzKCAwLjAwMzEzMDggKSApICkgKSwgdmFsdWUuYSApO1xufVxudmVjNCBSR0JFVG9MaW5lYXIoIGluIHZlYzQgdmFsdWUgKSB7XG5cdHJldHVybiB2ZWM0KCB2YWx1ZS5yZ2IgKiBleHAyKCB2YWx1ZS5hICogMjU1LjAgLSAxMjguMCApLCAxLjAgKTtcbn1cbnZlYzQgTGluZWFyVG9SR0JFKCBpbiB2ZWM0IHZhbHVlICkge1xuXHRmbG9hdCBtYXhDb21wb25lbnQgPSBtYXgoIG1heCggdmFsdWUuciwgdmFsdWUuZyApLCB2YWx1ZS5iICk7XG5cdGZsb2F0IGZFeHAgPSBjbGFtcCggY2VpbCggbG9nMiggbWF4Q29tcG9uZW50ICkgKSwgLTEyOC4wLCAxMjcuMCApO1xuXHRyZXR1cm4gdmVjNCggdmFsdWUucmdiIC8gZXhwMiggZkV4cCApLCAoIGZFeHAgKyAxMjguMCApIC8gMjU1LjAgKTtcbn1cbnZlYzQgUkdCTVRvTGluZWFyKCBpbiB2ZWM0IHZhbHVlLCBpbiBmbG9hdCBtYXhSYW5nZSApIHtcblx0cmV0dXJuIHZlYzQoIHZhbHVlLnJnYiAqIHZhbHVlLmEgKiBtYXhSYW5nZSwgMS4wICk7XG59XG52ZWM0IExpbmVhclRvUkdCTSggaW4gdmVjNCB2YWx1ZSwgaW4gZmxvYXQgbWF4UmFuZ2UgKSB7XG5cdGZsb2F0IG1heFJHQiA9IG1heCggdmFsdWUuciwgbWF4KCB2YWx1ZS5nLCB2YWx1ZS5iICkgKTtcblx0ZmxvYXQgTSA9IGNsYW1wKCBtYXhSR0IgLyBtYXhSYW5nZSwgMC4wLCAxLjAgKTtcblx0TSA9IGNlaWwoIE0gKiAyNTUuMCApIC8gMjU1LjA7XG5cdHJldHVybiB2ZWM0KCB2YWx1ZS5yZ2IgLyAoIE0gKiBtYXhSYW5nZSApLCBNICk7XG59XG52ZWM0IFJHQkRUb0xpbmVhciggaW4gdmVjNCB2YWx1ZSwgaW4gZmxvYXQgbWF4UmFuZ2UgKSB7XG5cdHJldHVybiB2ZWM0KCB2YWx1ZS5yZ2IgKiAoICggbWF4UmFuZ2UgLyAyNTUuMCApIC8gdmFsdWUuYSApLCAxLjAgKTtcbn1cbnZlYzQgTGluZWFyVG9SR0JEKCBpbiB2ZWM0IHZhbHVlLCBpbiBmbG9hdCBtYXhSYW5nZSApIHtcblx0ZmxvYXQgbWF4UkdCID0gbWF4KCB2YWx1ZS5yLCBtYXgoIHZhbHVlLmcsIHZhbHVlLmIgKSApO1xuXHRmbG9hdCBEID0gbWF4KCBtYXhSYW5nZSAvIG1heFJHQiwgMS4wICk7XG5cdEQgPSBjbGFtcCggZmxvb3IoIEQgKSAvIDI1NS4wLCAwLjAsIDEuMCApO1xuXHRyZXR1cm4gdmVjNCggdmFsdWUucmdiICogKCBEICogKCAyNTUuMCAvIG1heFJhbmdlICkgKSwgRCApO1xufVxuY29uc3QgbWF0MyBjTG9nTHV2TSA9IG1hdDMoIDAuMjIwOSwgMC4zMzkwLCAwLjQxODQsIDAuMTEzOCwgMC42NzgwLCAwLjczMTksIDAuMDEwMiwgMC4xMTMwLCAwLjI5NjkgKTtcbnZlYzQgTGluZWFyVG9Mb2dMdXYoIGluIHZlYzQgdmFsdWUgKSB7XG5cdHZlYzMgWHBfWV9YWVpwID0gY0xvZ0x1dk0gKiB2YWx1ZS5yZ2I7XG5cdFhwX1lfWFlacCA9IG1heCggWHBfWV9YWVpwLCB2ZWMzKCAxZS02LCAxZS02LCAxZS02ICkgKTtcblx0dmVjNCB2UmVzdWx0O1xuXHR2UmVzdWx0Lnh5ID0gWHBfWV9YWVpwLnh5IC8gWHBfWV9YWVpwLno7XG5cdGZsb2F0IExlID0gMi4wICogbG9nMihYcF9ZX1hZWnAueSkgKyAxMjcuMDtcblx0dlJlc3VsdC53ID0gZnJhY3QoIExlICk7XG5cdHZSZXN1bHQueiA9ICggTGUgLSAoIGZsb29yKCB2UmVzdWx0LncgKiAyNTUuMCApICkgLyAyNTUuMCApIC8gMjU1LjA7XG5cdHJldHVybiB2UmVzdWx0O1xufVxuY29uc3QgbWF0MyBjTG9nTHV2SW52ZXJzZU0gPSBtYXQzKCA2LjAwMTQsIC0yLjcwMDgsIC0xLjc5OTYsIC0xLjMzMjAsIDMuMTAyOSwgLTUuNzcyMSwgMC4zMDA4LCAtMS4wODgyLCA1LjYyNjggKTtcbnZlYzQgTG9nTHV2VG9MaW5lYXIoIGluIHZlYzQgdmFsdWUgKSB7XG5cdGZsb2F0IExlID0gdmFsdWUueiAqIDI1NS4wICsgdmFsdWUudztcblx0dmVjMyBYcF9ZX1hZWnA7XG5cdFhwX1lfWFlacC55ID0gZXhwMiggKCBMZSAtIDEyNy4wICkgLyAyLjAgKTtcblx0WHBfWV9YWVpwLnogPSBYcF9ZX1hZWnAueSAvIHZhbHVlLnk7XG5cdFhwX1lfWFlacC54ID0gdmFsdWUueCAqIFhwX1lfWFlacC56O1xuXHR2ZWMzIHZSR0IgPSBjTG9nTHV2SW52ZXJzZU0gKiBYcF9ZX1hZWnAucmdiO1xuXHRyZXR1cm4gdmVjNCggbWF4KCB2UkdCLCAwLjAgKSwgMS4wICk7XG59IixlbnZtYXBfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfRU5WTUFQXG5cdCNpZmRlZiBFTlZfV09STERQT1Ncblx0XHR2ZWMzIGNhbWVyYVRvRnJhZztcblx0XHRpZiAoIGlzT3J0aG9ncmFwaGljICkge1xuXHRcdFx0Y2FtZXJhVG9GcmFnID0gbm9ybWFsaXplKCB2ZWMzKCAtIHZpZXdNYXRyaXhbIDAgXVsgMiBdLCAtIHZpZXdNYXRyaXhbIDEgXVsgMiBdLCAtIHZpZXdNYXRyaXhbIDIgXVsgMiBdICkgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y2FtZXJhVG9GcmFnID0gbm9ybWFsaXplKCB2V29ybGRQb3NpdGlvbiAtIGNhbWVyYVBvc2l0aW9uICk7XG5cdFx0fVxuXHRcdHZlYzMgd29ybGROb3JtYWwgPSBpbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uKCBub3JtYWwsIHZpZXdNYXRyaXggKTtcblx0XHQjaWZkZWYgRU5WTUFQX01PREVfUkVGTEVDVElPTlxuXHRcdFx0dmVjMyByZWZsZWN0VmVjID0gcmVmbGVjdCggY2FtZXJhVG9GcmFnLCB3b3JsZE5vcm1hbCApO1xuXHRcdCNlbHNlXG5cdFx0XHR2ZWMzIHJlZmxlY3RWZWMgPSByZWZyYWN0KCBjYW1lcmFUb0ZyYWcsIHdvcmxkTm9ybWFsLCByZWZyYWN0aW9uUmF0aW8gKTtcblx0XHQjZW5kaWZcblx0I2Vsc2Vcblx0XHR2ZWMzIHJlZmxlY3RWZWMgPSB2UmVmbGVjdDtcblx0I2VuZGlmXG5cdCNpZmRlZiBFTlZNQVBfVFlQRV9DVUJFXG5cdFx0dmVjNCBlbnZDb2xvciA9IHRleHR1cmVDdWJlKCBlbnZNYXAsIHZlYzMoIGZsaXBFbnZNYXAgKiByZWZsZWN0VmVjLngsIHJlZmxlY3RWZWMueXogKSApO1xuXHQjZWxpZiBkZWZpbmVkKCBFTlZNQVBfVFlQRV9DVUJFX1VWIClcblx0XHR2ZWM0IGVudkNvbG9yID0gdGV4dHVyZUN1YmVVViggZW52TWFwLCByZWZsZWN0VmVjLCAwLjAgKTtcblx0I2Vsc2Vcblx0XHR2ZWM0IGVudkNvbG9yID0gdmVjNCggMC4wICk7XG5cdCNlbmRpZlxuXHQjaWZuZGVmIEVOVk1BUF9UWVBFX0NVQkVfVVZcblx0XHRlbnZDb2xvciA9IGVudk1hcFRleGVsVG9MaW5lYXIoIGVudkNvbG9yICk7XG5cdCNlbmRpZlxuXHQjaWZkZWYgRU5WTUFQX0JMRU5ESU5HX01VTFRJUExZXG5cdFx0b3V0Z29pbmdMaWdodCA9IG1peCggb3V0Z29pbmdMaWdodCwgb3V0Z29pbmdMaWdodCAqIGVudkNvbG9yLnh5eiwgc3BlY3VsYXJTdHJlbmd0aCAqIHJlZmxlY3Rpdml0eSApO1xuXHQjZWxpZiBkZWZpbmVkKCBFTlZNQVBfQkxFTkRJTkdfTUlYIClcblx0XHRvdXRnb2luZ0xpZ2h0ID0gbWl4KCBvdXRnb2luZ0xpZ2h0LCBlbnZDb2xvci54eXosIHNwZWN1bGFyU3RyZW5ndGggKiByZWZsZWN0aXZpdHkgKTtcblx0I2VsaWYgZGVmaW5lZCggRU5WTUFQX0JMRU5ESU5HX0FERCApXG5cdFx0b3V0Z29pbmdMaWdodCArPSBlbnZDb2xvci54eXogKiBzcGVjdWxhclN0cmVuZ3RoICogcmVmbGVjdGl2aXR5O1xuXHQjZW5kaWZcbiNlbmRpZiIsZW52bWFwX2NvbW1vbl9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0VOVk1BUFxuXHR1bmlmb3JtIGZsb2F0IGVudk1hcEludGVuc2l0eTtcblx0dW5pZm9ybSBmbG9hdCBmbGlwRW52TWFwO1xuXHR1bmlmb3JtIGludCBtYXhNaXBMZXZlbDtcblx0I2lmZGVmIEVOVk1BUF9UWVBFX0NVQkVcblx0XHR1bmlmb3JtIHNhbXBsZXJDdWJlIGVudk1hcDtcblx0I2Vsc2Vcblx0XHR1bmlmb3JtIHNhbXBsZXIyRCBlbnZNYXA7XG5cdCNlbmRpZlxuXHRcbiNlbmRpZiIsZW52bWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfRU5WTUFQXG5cdHVuaWZvcm0gZmxvYXQgcmVmbGVjdGl2aXR5O1xuXHQjaWYgZGVmaW5lZCggVVNFX0JVTVBNQVAgKSB8fCBkZWZpbmVkKCBVU0VfTk9STUFMTUFQICkgfHwgZGVmaW5lZCggUEhPTkcgKVxuXHRcdCNkZWZpbmUgRU5WX1dPUkxEUE9TXG5cdCNlbmRpZlxuXHQjaWZkZWYgRU5WX1dPUkxEUE9TXG5cdFx0dmFyeWluZyB2ZWMzIHZXb3JsZFBvc2l0aW9uO1xuXHRcdHVuaWZvcm0gZmxvYXQgcmVmcmFjdGlvblJhdGlvO1xuXHQjZWxzZVxuXHRcdHZhcnlpbmcgdmVjMyB2UmVmbGVjdDtcblx0I2VuZGlmXG4jZW5kaWYiLGVudm1hcF9wYXJzX3ZlcnRleDoiI2lmZGVmIFVTRV9FTlZNQVBcblx0I2lmIGRlZmluZWQoIFVTRV9CVU1QTUFQICkgfHwgZGVmaW5lZCggVVNFX05PUk1BTE1BUCApIHx8ZGVmaW5lZCggUEhPTkcgKVxuXHRcdCNkZWZpbmUgRU5WX1dPUkxEUE9TXG5cdCNlbmRpZlxuXHQjaWZkZWYgRU5WX1dPUkxEUE9TXG5cdFx0XG5cdFx0dmFyeWluZyB2ZWMzIHZXb3JsZFBvc2l0aW9uO1xuXHQjZWxzZVxuXHRcdHZhcnlpbmcgdmVjMyB2UmVmbGVjdDtcblx0XHR1bmlmb3JtIGZsb2F0IHJlZnJhY3Rpb25SYXRpbztcblx0I2VuZGlmXG4jZW5kaWYiLGVudm1hcF9waHlzaWNhbF9wYXJzX2ZyYWdtZW50OiIjaWYgZGVmaW5lZCggVVNFX0VOVk1BUCApXG5cdCNpZmRlZiBFTlZNQVBfTU9ERV9SRUZSQUNUSU9OXG5cdFx0dW5pZm9ybSBmbG9hdCByZWZyYWN0aW9uUmF0aW87XG5cdCNlbmRpZlxuXHR2ZWMzIGdldExpZ2h0UHJvYmVJbmRpcmVjdElycmFkaWFuY2UoIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIGludCBtYXhNSVBMZXZlbCApIHtcblx0XHR2ZWMzIHdvcmxkTm9ybWFsID0gaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggZ2VvbWV0cnkubm9ybWFsLCB2aWV3TWF0cml4ICk7XG5cdFx0I2lmZGVmIEVOVk1BUF9UWVBFX0NVQkVcblx0XHRcdHZlYzMgcXVlcnlWZWMgPSB2ZWMzKCBmbGlwRW52TWFwICogd29ybGROb3JtYWwueCwgd29ybGROb3JtYWwueXogKTtcblx0XHRcdCNpZmRlZiBURVhUVVJFX0xPRF9FWFRcblx0XHRcdFx0dmVjNCBlbnZNYXBDb2xvciA9IHRleHR1cmVDdWJlTG9kRVhUKCBlbnZNYXAsIHF1ZXJ5VmVjLCBmbG9hdCggbWF4TUlQTGV2ZWwgKSApO1xuXHRcdFx0I2Vsc2Vcblx0XHRcdFx0dmVjNCBlbnZNYXBDb2xvciA9IHRleHR1cmVDdWJlKCBlbnZNYXAsIHF1ZXJ5VmVjLCBmbG9hdCggbWF4TUlQTGV2ZWwgKSApO1xuXHRcdFx0I2VuZGlmXG5cdFx0XHRlbnZNYXBDb2xvci5yZ2IgPSBlbnZNYXBUZXhlbFRvTGluZWFyKCBlbnZNYXBDb2xvciApLnJnYjtcblx0XHQjZWxpZiBkZWZpbmVkKCBFTlZNQVBfVFlQRV9DVUJFX1VWIClcblx0XHRcdHZlYzQgZW52TWFwQ29sb3IgPSB0ZXh0dXJlQ3ViZVVWKCBlbnZNYXAsIHdvcmxkTm9ybWFsLCAxLjAgKTtcblx0XHQjZWxzZVxuXHRcdFx0dmVjNCBlbnZNYXBDb2xvciA9IHZlYzQoIDAuMCApO1xuXHRcdCNlbmRpZlxuXHRcdHJldHVybiBQSSAqIGVudk1hcENvbG9yLnJnYiAqIGVudk1hcEludGVuc2l0eTtcblx0fVxuXHRmbG9hdCBnZXRTcGVjdWxhck1JUExldmVsKCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MsIGNvbnN0IGluIGludCBtYXhNSVBMZXZlbCApIHtcblx0XHRmbG9hdCBtYXhNSVBMZXZlbFNjYWxhciA9IGZsb2F0KCBtYXhNSVBMZXZlbCApO1xuXHRcdGZsb2F0IHNpZ21hID0gUEkgKiByb3VnaG5lc3MgKiByb3VnaG5lc3MgLyAoIDEuMCArIHJvdWdobmVzcyApO1xuXHRcdGZsb2F0IGRlc2lyZWRNSVBMZXZlbCA9IG1heE1JUExldmVsU2NhbGFyICsgbG9nMiggc2lnbWEgKTtcblx0XHRyZXR1cm4gY2xhbXAoIGRlc2lyZWRNSVBMZXZlbCwgMC4wLCBtYXhNSVBMZXZlbFNjYWxhciApO1xuXHR9XG5cdHZlYzMgZ2V0TGlnaHRQcm9iZUluZGlyZWN0UmFkaWFuY2UoIGNvbnN0IGluIHZlYzMgdmlld0RpciwgY29uc3QgaW4gdmVjMyBub3JtYWwsIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcywgY29uc3QgaW4gaW50IG1heE1JUExldmVsICkge1xuXHRcdCNpZmRlZiBFTlZNQVBfTU9ERV9SRUZMRUNUSU9OXG5cdFx0XHR2ZWMzIHJlZmxlY3RWZWMgPSByZWZsZWN0KCAtdmlld0Rpciwgbm9ybWFsICk7XG5cdFx0XHRyZWZsZWN0VmVjID0gbm9ybWFsaXplKCBtaXgoIHJlZmxlY3RWZWMsIG5vcm1hbCwgcm91Z2huZXNzICogcm91Z2huZXNzKSApO1xuXHRcdCNlbHNlXG5cdFx0XHR2ZWMzIHJlZmxlY3RWZWMgPSByZWZyYWN0KCAtdmlld0Rpciwgbm9ybWFsLCByZWZyYWN0aW9uUmF0aW8gKTtcblx0XHQjZW5kaWZcblx0XHRyZWZsZWN0VmVjID0gaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggcmVmbGVjdFZlYywgdmlld01hdHJpeCApO1xuXHRcdGZsb2F0IHNwZWN1bGFyTUlQTGV2ZWwgPSBnZXRTcGVjdWxhck1JUExldmVsKCByb3VnaG5lc3MsIG1heE1JUExldmVsICk7XG5cdFx0I2lmZGVmIEVOVk1BUF9UWVBFX0NVQkVcblx0XHRcdHZlYzMgcXVlcnlSZWZsZWN0VmVjID0gdmVjMyggZmxpcEVudk1hcCAqIHJlZmxlY3RWZWMueCwgcmVmbGVjdFZlYy55eiApO1xuXHRcdFx0I2lmZGVmIFRFWFRVUkVfTE9EX0VYVFxuXHRcdFx0XHR2ZWM0IGVudk1hcENvbG9yID0gdGV4dHVyZUN1YmVMb2RFWFQoIGVudk1hcCwgcXVlcnlSZWZsZWN0VmVjLCBzcGVjdWxhck1JUExldmVsICk7XG5cdFx0XHQjZWxzZVxuXHRcdFx0XHR2ZWM0IGVudk1hcENvbG9yID0gdGV4dHVyZUN1YmUoIGVudk1hcCwgcXVlcnlSZWZsZWN0VmVjLCBzcGVjdWxhck1JUExldmVsICk7XG5cdFx0XHQjZW5kaWZcblx0XHRcdGVudk1hcENvbG9yLnJnYiA9IGVudk1hcFRleGVsVG9MaW5lYXIoIGVudk1hcENvbG9yICkucmdiO1xuXHRcdCNlbGlmIGRlZmluZWQoIEVOVk1BUF9UWVBFX0NVQkVfVVYgKVxuXHRcdFx0dmVjNCBlbnZNYXBDb2xvciA9IHRleHR1cmVDdWJlVVYoIGVudk1hcCwgcmVmbGVjdFZlYywgcm91Z2huZXNzICk7XG5cdFx0I2VuZGlmXG5cdFx0cmV0dXJuIGVudk1hcENvbG9yLnJnYiAqIGVudk1hcEludGVuc2l0eTtcblx0fVxuI2VuZGlmIixlbnZtYXBfdmVydGV4OiIjaWZkZWYgVVNFX0VOVk1BUFxuXHQjaWZkZWYgRU5WX1dPUkxEUE9TXG5cdFx0dldvcmxkUG9zaXRpb24gPSB3b3JsZFBvc2l0aW9uLnh5ejtcblx0I2Vsc2Vcblx0XHR2ZWMzIGNhbWVyYVRvVmVydGV4O1xuXHRcdGlmICggaXNPcnRob2dyYXBoaWMgKSB7XG5cdFx0XHRjYW1lcmFUb1ZlcnRleCA9IG5vcm1hbGl6ZSggdmVjMyggLSB2aWV3TWF0cml4WyAwIF1bIDIgXSwgLSB2aWV3TWF0cml4WyAxIF1bIDIgXSwgLSB2aWV3TWF0cml4WyAyIF1bIDIgXSApICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNhbWVyYVRvVmVydGV4ID0gbm9ybWFsaXplKCB3b3JsZFBvc2l0aW9uLnh5eiAtIGNhbWVyYVBvc2l0aW9uICk7XG5cdFx0fVxuXHRcdHZlYzMgd29ybGROb3JtYWwgPSBpbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uKCB0cmFuc2Zvcm1lZE5vcm1hbCwgdmlld01hdHJpeCApO1xuXHRcdCNpZmRlZiBFTlZNQVBfTU9ERV9SRUZMRUNUSU9OXG5cdFx0XHR2UmVmbGVjdCA9IHJlZmxlY3QoIGNhbWVyYVRvVmVydGV4LCB3b3JsZE5vcm1hbCApO1xuXHRcdCNlbHNlXG5cdFx0XHR2UmVmbGVjdCA9IHJlZnJhY3QoIGNhbWVyYVRvVmVydGV4LCB3b3JsZE5vcm1hbCwgcmVmcmFjdGlvblJhdGlvICk7XG5cdFx0I2VuZGlmXG5cdCNlbmRpZlxuI2VuZGlmIixmb2dfdmVydGV4OiIjaWZkZWYgVVNFX0ZPR1xuXHRmb2dEZXB0aCA9IC0gbXZQb3NpdGlvbi56O1xuI2VuZGlmIixmb2dfcGFyc192ZXJ0ZXg6IiNpZmRlZiBVU0VfRk9HXG5cdHZhcnlpbmcgZmxvYXQgZm9nRGVwdGg7XG4jZW5kaWYiLGZvZ19mcmFnbWVudDoiI2lmZGVmIFVTRV9GT0dcblx0I2lmZGVmIEZPR19FWFAyXG5cdFx0ZmxvYXQgZm9nRmFjdG9yID0gMS4wIC0gZXhwKCAtIGZvZ0RlbnNpdHkgKiBmb2dEZW5zaXR5ICogZm9nRGVwdGggKiBmb2dEZXB0aCApO1xuXHQjZWxzZVxuXHRcdGZsb2F0IGZvZ0ZhY3RvciA9IHNtb290aHN0ZXAoIGZvZ05lYXIsIGZvZ0ZhciwgZm9nRGVwdGggKTtcblx0I2VuZGlmXG5cdGdsX0ZyYWdDb2xvci5yZ2IgPSBtaXgoIGdsX0ZyYWdDb2xvci5yZ2IsIGZvZ0NvbG9yLCBmb2dGYWN0b3IgKTtcbiNlbmRpZiIsZm9nX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfRk9HXG5cdHVuaWZvcm0gdmVjMyBmb2dDb2xvcjtcblx0dmFyeWluZyBmbG9hdCBmb2dEZXB0aDtcblx0I2lmZGVmIEZPR19FWFAyXG5cdFx0dW5pZm9ybSBmbG9hdCBmb2dEZW5zaXR5O1xuXHQjZWxzZVxuXHRcdHVuaWZvcm0gZmxvYXQgZm9nTmVhcjtcblx0XHR1bmlmb3JtIGZsb2F0IGZvZ0Zhcjtcblx0I2VuZGlmXG4jZW5kaWYiLGdyYWRpZW50bWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfR1JBRElFTlRNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgZ3JhZGllbnRNYXA7XG4jZW5kaWZcbnZlYzMgZ2V0R3JhZGllbnRJcnJhZGlhbmNlKCB2ZWMzIG5vcm1hbCwgdmVjMyBsaWdodERpcmVjdGlvbiApIHtcblx0ZmxvYXQgZG90TkwgPSBkb3QoIG5vcm1hbCwgbGlnaHREaXJlY3Rpb24gKTtcblx0dmVjMiBjb29yZCA9IHZlYzIoIGRvdE5MICogMC41ICsgMC41LCAwLjAgKTtcblx0I2lmZGVmIFVTRV9HUkFESUVOVE1BUFxuXHRcdHJldHVybiB0ZXh0dXJlMkQoIGdyYWRpZW50TWFwLCBjb29yZCApLnJnYjtcblx0I2Vsc2Vcblx0XHRyZXR1cm4gKCBjb29yZC54IDwgMC43ICkgPyB2ZWMzKCAwLjcgKSA6IHZlYzMoIDEuMCApO1xuXHQjZW5kaWZcbn0iLGxpZ2h0bWFwX2ZyYWdtZW50OiIjaWZkZWYgVVNFX0xJR0hUTUFQXG5cdHZlYzQgbGlnaHRNYXBUZXhlbD0gdGV4dHVyZTJEKCBsaWdodE1hcCwgdlV2MiApO1xuXHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gUEkgKiBsaWdodE1hcFRleGVsVG9MaW5lYXIoIGxpZ2h0TWFwVGV4ZWwgKS5yZ2IgKiBsaWdodE1hcEludGVuc2l0eTtcbiNlbmRpZiIsbGlnaHRtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9MSUdIVE1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBsaWdodE1hcDtcblx0dW5pZm9ybSBmbG9hdCBsaWdodE1hcEludGVuc2l0eTtcbiNlbmRpZiIsbGlnaHRzX2xhbWJlcnRfdmVydGV4OiJ2ZWMzIGRpZmZ1c2UgPSB2ZWMzKCAxLjAgKTtcbkdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnk7XG5nZW9tZXRyeS5wb3NpdGlvbiA9IG12UG9zaXRpb24ueHl6O1xuZ2VvbWV0cnkubm9ybWFsID0gbm9ybWFsaXplKCB0cmFuc2Zvcm1lZE5vcm1hbCApO1xuZ2VvbWV0cnkudmlld0RpciA9ICggaXNPcnRob2dyYXBoaWMgKSA/IHZlYzMoIDAsIDAsIDEgKSA6IG5vcm1hbGl6ZSggLW12UG9zaXRpb24ueHl6ICk7XG5HZW9tZXRyaWNDb250ZXh0IGJhY2tHZW9tZXRyeTtcbmJhY2tHZW9tZXRyeS5wb3NpdGlvbiA9IGdlb21ldHJ5LnBvc2l0aW9uO1xuYmFja0dlb21ldHJ5Lm5vcm1hbCA9IC1nZW9tZXRyeS5ub3JtYWw7XG5iYWNrR2VvbWV0cnkudmlld0RpciA9IGdlb21ldHJ5LnZpZXdEaXI7XG52TGlnaHRGcm9udCA9IHZlYzMoIDAuMCApO1xudkluZGlyZWN0RnJvbnQgPSB2ZWMzKCAwLjAgKTtcbiNpZmRlZiBET1VCTEVfU0lERURcblx0dkxpZ2h0QmFjayA9IHZlYzMoIDAuMCApO1xuXHR2SW5kaXJlY3RCYWNrID0gdmVjMyggMC4wICk7XG4jZW5kaWZcbkluY2lkZW50TGlnaHQgZGlyZWN0TGlnaHQ7XG5mbG9hdCBkb3ROTDtcbnZlYzMgZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlO1xudkluZGlyZWN0RnJvbnQgKz0gZ2V0QW1iaWVudExpZ2h0SXJyYWRpYW5jZSggYW1iaWVudExpZ2h0Q29sb3IgKTtcbnZJbmRpcmVjdEZyb250ICs9IGdldExpZ2h0UHJvYmVJcnJhZGlhbmNlKCBsaWdodFByb2JlLCBnZW9tZXRyeSApO1xuI2lmZGVmIERPVUJMRV9TSURFRFxuXHR2SW5kaXJlY3RCYWNrICs9IGdldEFtYmllbnRMaWdodElycmFkaWFuY2UoIGFtYmllbnRMaWdodENvbG9yICk7XG5cdHZJbmRpcmVjdEJhY2sgKz0gZ2V0TGlnaHRQcm9iZUlycmFkaWFuY2UoIGxpZ2h0UHJvYmUsIGJhY2tHZW9tZXRyeSApO1xuI2VuZGlmXG4jaWYgTlVNX1BPSU5UX0xJR0hUUyA+IDBcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fUE9JTlRfTElHSFRTOyBpICsrICkge1xuXHRcdGdldFBvaW50RGlyZWN0TGlnaHRJcnJhZGlhbmNlKCBwb2ludExpZ2h0c1sgaSBdLCBnZW9tZXRyeSwgZGlyZWN0TGlnaHQgKTtcblx0XHRkb3ROTCA9IGRvdCggZ2VvbWV0cnkubm9ybWFsLCBkaXJlY3RMaWdodC5kaXJlY3Rpb24gKTtcblx0XHRkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2UgPSBQSSAqIGRpcmVjdExpZ2h0LmNvbG9yO1xuXHRcdHZMaWdodEZyb250ICs9IHNhdHVyYXRlKCBkb3ROTCApICogZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlO1xuXHRcdCNpZmRlZiBET1VCTEVfU0lERURcblx0XHRcdHZMaWdodEJhY2sgKz0gc2F0dXJhdGUoIC1kb3ROTCApICogZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlO1xuXHRcdCNlbmRpZlxuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG4jZW5kaWZcbiNpZiBOVU1fU1BPVF9MSUdIVFMgPiAwXG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1NQT1RfTElHSFRTOyBpICsrICkge1xuXHRcdGdldFNwb3REaXJlY3RMaWdodElycmFkaWFuY2UoIHNwb3RMaWdodHNbIGkgXSwgZ2VvbWV0cnksIGRpcmVjdExpZ2h0ICk7XG5cdFx0ZG90TkwgPSBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICk7XG5cdFx0ZGlyZWN0TGlnaHRDb2xvcl9EaWZmdXNlID0gUEkgKiBkaXJlY3RMaWdodC5jb2xvcjtcblx0XHR2TGlnaHRGcm9udCArPSBzYXR1cmF0ZSggZG90TkwgKSAqIGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZTtcblx0XHQjaWZkZWYgRE9VQkxFX1NJREVEXG5cdFx0XHR2TGlnaHRCYWNrICs9IHNhdHVyYXRlKCAtZG90TkwgKSAqIGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZTtcblx0XHQjZW5kaWZcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuI2VuZGlmXG4jaWYgTlVNX0RJUl9MSUdIVFMgPiAwXG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX0RJUl9MSUdIVFM7IGkgKysgKSB7XG5cdFx0Z2V0RGlyZWN0aW9uYWxEaXJlY3RMaWdodElycmFkaWFuY2UoIGRpcmVjdGlvbmFsTGlnaHRzWyBpIF0sIGdlb21ldHJ5LCBkaXJlY3RMaWdodCApO1xuXHRcdGRvdE5MID0gZG90KCBnZW9tZXRyeS5ub3JtYWwsIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiApO1xuXHRcdGRpcmVjdExpZ2h0Q29sb3JfRGlmZnVzZSA9IFBJICogZGlyZWN0TGlnaHQuY29sb3I7XG5cdFx0dkxpZ2h0RnJvbnQgKz0gc2F0dXJhdGUoIGRvdE5MICkgKiBkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2U7XG5cdFx0I2lmZGVmIERPVUJMRV9TSURFRFxuXHRcdFx0dkxpZ2h0QmFjayArPSBzYXR1cmF0ZSggLWRvdE5MICkgKiBkaXJlY3RMaWdodENvbG9yX0RpZmZ1c2U7XG5cdFx0I2VuZGlmXG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcbiNlbmRpZlxuI2lmIE5VTV9IRU1JX0xJR0hUUyA+IDBcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fSEVNSV9MSUdIVFM7IGkgKysgKSB7XG5cdFx0dkluZGlyZWN0RnJvbnQgKz0gZ2V0SGVtaXNwaGVyZUxpZ2h0SXJyYWRpYW5jZSggaGVtaXNwaGVyZUxpZ2h0c1sgaSBdLCBnZW9tZXRyeSApO1xuXHRcdCNpZmRlZiBET1VCTEVfU0lERURcblx0XHRcdHZJbmRpcmVjdEJhY2sgKz0gZ2V0SGVtaXNwaGVyZUxpZ2h0SXJyYWRpYW5jZSggaGVtaXNwaGVyZUxpZ2h0c1sgaSBdLCBiYWNrR2VvbWV0cnkgKTtcblx0XHQjZW5kaWZcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuI2VuZGlmIixsaWdodHNfcGFyc19iZWdpbjoidW5pZm9ybSBib29sIHJlY2VpdmVTaGFkb3c7XG51bmlmb3JtIHZlYzMgYW1iaWVudExpZ2h0Q29sb3I7XG51bmlmb3JtIHZlYzMgbGlnaHRQcm9iZVsgOSBdO1xudmVjMyBzaEdldElycmFkaWFuY2VBdCggaW4gdmVjMyBub3JtYWwsIGluIHZlYzMgc2hDb2VmZmljaWVudHNbIDkgXSApIHtcblx0ZmxvYXQgeCA9IG5vcm1hbC54LCB5ID0gbm9ybWFsLnksIHogPSBub3JtYWwuejtcblx0dmVjMyByZXN1bHQgPSBzaENvZWZmaWNpZW50c1sgMCBdICogMC44ODYyMjc7XG5cdHJlc3VsdCArPSBzaENvZWZmaWNpZW50c1sgMSBdICogMi4wICogMC41MTE2NjQgKiB5O1xuXHRyZXN1bHQgKz0gc2hDb2VmZmljaWVudHNbIDIgXSAqIDIuMCAqIDAuNTExNjY0ICogejtcblx0cmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyAzIF0gKiAyLjAgKiAwLjUxMTY2NCAqIHg7XG5cdHJlc3VsdCArPSBzaENvZWZmaWNpZW50c1sgNCBdICogMi4wICogMC40MjkwNDMgKiB4ICogeTtcblx0cmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyA1IF0gKiAyLjAgKiAwLjQyOTA0MyAqIHkgKiB6O1xuXHRyZXN1bHQgKz0gc2hDb2VmZmljaWVudHNbIDYgXSAqICggMC43NDMxMjUgKiB6ICogeiAtIDAuMjQ3NzA4ICk7XG5cdHJlc3VsdCArPSBzaENvZWZmaWNpZW50c1sgNyBdICogMi4wICogMC40MjkwNDMgKiB4ICogejtcblx0cmVzdWx0ICs9IHNoQ29lZmZpY2llbnRzWyA4IF0gKiAwLjQyOTA0MyAqICggeCAqIHggLSB5ICogeSApO1xuXHRyZXR1cm4gcmVzdWx0O1xufVxudmVjMyBnZXRMaWdodFByb2JlSXJyYWRpYW5jZSggY29uc3QgaW4gdmVjMyBsaWdodFByb2JlWyA5IF0sIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnkgKSB7XG5cdHZlYzMgd29ybGROb3JtYWwgPSBpbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uKCBnZW9tZXRyeS5ub3JtYWwsIHZpZXdNYXRyaXggKTtcblx0dmVjMyBpcnJhZGlhbmNlID0gc2hHZXRJcnJhZGlhbmNlQXQoIHdvcmxkTm9ybWFsLCBsaWdodFByb2JlICk7XG5cdHJldHVybiBpcnJhZGlhbmNlO1xufVxudmVjMyBnZXRBbWJpZW50TGlnaHRJcnJhZGlhbmNlKCBjb25zdCBpbiB2ZWMzIGFtYmllbnRMaWdodENvbG9yICkge1xuXHR2ZWMzIGlycmFkaWFuY2UgPSBhbWJpZW50TGlnaHRDb2xvcjtcblx0I2lmbmRlZiBQSFlTSUNBTExZX0NPUlJFQ1RfTElHSFRTXG5cdFx0aXJyYWRpYW5jZSAqPSBQSTtcblx0I2VuZGlmXG5cdHJldHVybiBpcnJhZGlhbmNlO1xufVxuI2lmIE5VTV9ESVJfTElHSFRTID4gMFxuXHRzdHJ1Y3QgRGlyZWN0aW9uYWxMaWdodCB7XG5cdFx0dmVjMyBkaXJlY3Rpb247XG5cdFx0dmVjMyBjb2xvcjtcblx0fTtcblx0dW5pZm9ybSBEaXJlY3Rpb25hbExpZ2h0IGRpcmVjdGlvbmFsTGlnaHRzWyBOVU1fRElSX0xJR0hUUyBdO1xuXHR2b2lkIGdldERpcmVjdGlvbmFsRGlyZWN0TGlnaHRJcnJhZGlhbmNlKCBjb25zdCBpbiBEaXJlY3Rpb25hbExpZ2h0IGRpcmVjdGlvbmFsTGlnaHQsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIG91dCBJbmNpZGVudExpZ2h0IGRpcmVjdExpZ2h0ICkge1xuXHRcdGRpcmVjdExpZ2h0LmNvbG9yID0gZGlyZWN0aW9uYWxMaWdodC5jb2xvcjtcblx0XHRkaXJlY3RMaWdodC5kaXJlY3Rpb24gPSBkaXJlY3Rpb25hbExpZ2h0LmRpcmVjdGlvbjtcblx0XHRkaXJlY3RMaWdodC52aXNpYmxlID0gdHJ1ZTtcblx0fVxuI2VuZGlmXG4jaWYgTlVNX1BPSU5UX0xJR0hUUyA+IDBcblx0c3RydWN0IFBvaW50TGlnaHQge1xuXHRcdHZlYzMgcG9zaXRpb247XG5cdFx0dmVjMyBjb2xvcjtcblx0XHRmbG9hdCBkaXN0YW5jZTtcblx0XHRmbG9hdCBkZWNheTtcblx0fTtcblx0dW5pZm9ybSBQb2ludExpZ2h0IHBvaW50TGlnaHRzWyBOVU1fUE9JTlRfTElHSFRTIF07XG5cdHZvaWQgZ2V0UG9pbnREaXJlY3RMaWdodElycmFkaWFuY2UoIGNvbnN0IGluIFBvaW50TGlnaHQgcG9pbnRMaWdodCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgb3V0IEluY2lkZW50TGlnaHQgZGlyZWN0TGlnaHQgKSB7XG5cdFx0dmVjMyBsVmVjdG9yID0gcG9pbnRMaWdodC5wb3NpdGlvbiAtIGdlb21ldHJ5LnBvc2l0aW9uO1xuXHRcdGRpcmVjdExpZ2h0LmRpcmVjdGlvbiA9IG5vcm1hbGl6ZSggbFZlY3RvciApO1xuXHRcdGZsb2F0IGxpZ2h0RGlzdGFuY2UgPSBsZW5ndGgoIGxWZWN0b3IgKTtcblx0XHRkaXJlY3RMaWdodC5jb2xvciA9IHBvaW50TGlnaHQuY29sb3I7XG5cdFx0ZGlyZWN0TGlnaHQuY29sb3IgKj0gcHVuY3R1YWxMaWdodEludGVuc2l0eVRvSXJyYWRpYW5jZUZhY3RvciggbGlnaHREaXN0YW5jZSwgcG9pbnRMaWdodC5kaXN0YW5jZSwgcG9pbnRMaWdodC5kZWNheSApO1xuXHRcdGRpcmVjdExpZ2h0LnZpc2libGUgPSAoIGRpcmVjdExpZ2h0LmNvbG9yICE9IHZlYzMoIDAuMCApICk7XG5cdH1cbiNlbmRpZlxuI2lmIE5VTV9TUE9UX0xJR0hUUyA+IDBcblx0c3RydWN0IFNwb3RMaWdodCB7XG5cdFx0dmVjMyBwb3NpdGlvbjtcblx0XHR2ZWMzIGRpcmVjdGlvbjtcblx0XHR2ZWMzIGNvbG9yO1xuXHRcdGZsb2F0IGRpc3RhbmNlO1xuXHRcdGZsb2F0IGRlY2F5O1xuXHRcdGZsb2F0IGNvbmVDb3M7XG5cdFx0ZmxvYXQgcGVudW1icmFDb3M7XG5cdH07XG5cdHVuaWZvcm0gU3BvdExpZ2h0IHNwb3RMaWdodHNbIE5VTV9TUE9UX0xJR0hUUyBdO1xuXHR2b2lkIGdldFNwb3REaXJlY3RMaWdodElycmFkaWFuY2UoIGNvbnN0IGluIFNwb3RMaWdodCBzcG90TGlnaHQsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIG91dCBJbmNpZGVudExpZ2h0IGRpcmVjdExpZ2h0ICkge1xuXHRcdHZlYzMgbFZlY3RvciA9IHNwb3RMaWdodC5wb3NpdGlvbiAtIGdlb21ldHJ5LnBvc2l0aW9uO1xuXHRcdGRpcmVjdExpZ2h0LmRpcmVjdGlvbiA9IG5vcm1hbGl6ZSggbFZlY3RvciApO1xuXHRcdGZsb2F0IGxpZ2h0RGlzdGFuY2UgPSBsZW5ndGgoIGxWZWN0b3IgKTtcblx0XHRmbG9hdCBhbmdsZUNvcyA9IGRvdCggZGlyZWN0TGlnaHQuZGlyZWN0aW9uLCBzcG90TGlnaHQuZGlyZWN0aW9uICk7XG5cdFx0aWYgKCBhbmdsZUNvcyA+IHNwb3RMaWdodC5jb25lQ29zICkge1xuXHRcdFx0ZmxvYXQgc3BvdEVmZmVjdCA9IHNtb290aHN0ZXAoIHNwb3RMaWdodC5jb25lQ29zLCBzcG90TGlnaHQucGVudW1icmFDb3MsIGFuZ2xlQ29zICk7XG5cdFx0XHRkaXJlY3RMaWdodC5jb2xvciA9IHNwb3RMaWdodC5jb2xvcjtcblx0XHRcdGRpcmVjdExpZ2h0LmNvbG9yICo9IHNwb3RFZmZlY3QgKiBwdW5jdHVhbExpZ2h0SW50ZW5zaXR5VG9JcnJhZGlhbmNlRmFjdG9yKCBsaWdodERpc3RhbmNlLCBzcG90TGlnaHQuZGlzdGFuY2UsIHNwb3RMaWdodC5kZWNheSApO1xuXHRcdFx0ZGlyZWN0TGlnaHQudmlzaWJsZSA9IHRydWU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGRpcmVjdExpZ2h0LmNvbG9yID0gdmVjMyggMC4wICk7XG5cdFx0XHRkaXJlY3RMaWdodC52aXNpYmxlID0gZmFsc2U7XG5cdFx0fVxuXHR9XG4jZW5kaWZcbiNpZiBOVU1fUkVDVF9BUkVBX0xJR0hUUyA+IDBcblx0c3RydWN0IFJlY3RBcmVhTGlnaHQge1xuXHRcdHZlYzMgY29sb3I7XG5cdFx0dmVjMyBwb3NpdGlvbjtcblx0XHR2ZWMzIGhhbGZXaWR0aDtcblx0XHR2ZWMzIGhhbGZIZWlnaHQ7XG5cdH07XG5cdHVuaWZvcm0gc2FtcGxlcjJEIGx0Y18xO1x0dW5pZm9ybSBzYW1wbGVyMkQgbHRjXzI7XG5cdHVuaWZvcm0gUmVjdEFyZWFMaWdodCByZWN0QXJlYUxpZ2h0c1sgTlVNX1JFQ1RfQVJFQV9MSUdIVFMgXTtcbiNlbmRpZlxuI2lmIE5VTV9IRU1JX0xJR0hUUyA+IDBcblx0c3RydWN0IEhlbWlzcGhlcmVMaWdodCB7XG5cdFx0dmVjMyBkaXJlY3Rpb247XG5cdFx0dmVjMyBza3lDb2xvcjtcblx0XHR2ZWMzIGdyb3VuZENvbG9yO1xuXHR9O1xuXHR1bmlmb3JtIEhlbWlzcGhlcmVMaWdodCBoZW1pc3BoZXJlTGlnaHRzWyBOVU1fSEVNSV9MSUdIVFMgXTtcblx0dmVjMyBnZXRIZW1pc3BoZXJlTGlnaHRJcnJhZGlhbmNlKCBjb25zdCBpbiBIZW1pc3BoZXJlTGlnaHQgaGVtaUxpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5ICkge1xuXHRcdGZsb2F0IGRvdE5MID0gZG90KCBnZW9tZXRyeS5ub3JtYWwsIGhlbWlMaWdodC5kaXJlY3Rpb24gKTtcblx0XHRmbG9hdCBoZW1pRGlmZnVzZVdlaWdodCA9IDAuNSAqIGRvdE5MICsgMC41O1xuXHRcdHZlYzMgaXJyYWRpYW5jZSA9IG1peCggaGVtaUxpZ2h0Lmdyb3VuZENvbG9yLCBoZW1pTGlnaHQuc2t5Q29sb3IsIGhlbWlEaWZmdXNlV2VpZ2h0ICk7XG5cdFx0I2lmbmRlZiBQSFlTSUNBTExZX0NPUlJFQ1RfTElHSFRTXG5cdFx0XHRpcnJhZGlhbmNlICo9IFBJO1xuXHRcdCNlbmRpZlxuXHRcdHJldHVybiBpcnJhZGlhbmNlO1xuXHR9XG4jZW5kaWYiLGxpZ2h0c190b29uX2ZyYWdtZW50OiJUb29uTWF0ZXJpYWwgbWF0ZXJpYWw7XG5tYXRlcmlhbC5kaWZmdXNlQ29sb3IgPSBkaWZmdXNlQ29sb3IucmdiOyIsbGlnaHRzX3Rvb25fcGFyc19mcmFnbWVudDoidmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuI2VuZGlmXG5zdHJ1Y3QgVG9vbk1hdGVyaWFsIHtcblx0dmVjMyBkaWZmdXNlQ29sb3I7XG59O1xudm9pZCBSRV9EaXJlY3RfVG9vbiggY29uc3QgaW4gSW5jaWRlbnRMaWdodCBkaXJlY3RMaWdodCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gVG9vbk1hdGVyaWFsIG1hdGVyaWFsLCBpbm91dCBSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCApIHtcblx0dmVjMyBpcnJhZGlhbmNlID0gZ2V0R3JhZGllbnRJcnJhZGlhbmNlKCBnZW9tZXRyeS5ub3JtYWwsIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiApICogZGlyZWN0TGlnaHQuY29sb3I7XG5cdCNpZm5kZWYgUEhZU0lDQUxMWV9DT1JSRUNUX0xJR0hUU1xuXHRcdGlycmFkaWFuY2UgKj0gUEk7XG5cdCNlbmRpZlxuXHRyZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICs9IGlycmFkaWFuY2UgKiBCUkRGX0RpZmZ1c2VfTGFtYmVydCggbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICk7XG59XG52b2lkIFJFX0luZGlyZWN0RGlmZnVzZV9Ub29uKCBjb25zdCBpbiB2ZWMzIGlycmFkaWFuY2UsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIFRvb25NYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgKSB7XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSBpcnJhZGlhbmNlICogQlJERl9EaWZmdXNlX0xhbWJlcnQoIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciApO1xufVxuI2RlZmluZSBSRV9EaXJlY3RcdFx0XHRcdFJFX0RpcmVjdF9Ub29uXG4jZGVmaW5lIFJFX0luZGlyZWN0RGlmZnVzZVx0XHRSRV9JbmRpcmVjdERpZmZ1c2VfVG9vblxuI2RlZmluZSBNYXRlcmlhbF9MaWdodFByb2JlTE9EKCBtYXRlcmlhbCApXHQoMCkiLGxpZ2h0c19waG9uZ19mcmFnbWVudDoiQmxpbm5QaG9uZ01hdGVyaWFsIG1hdGVyaWFsO1xubWF0ZXJpYWwuZGlmZnVzZUNvbG9yID0gZGlmZnVzZUNvbG9yLnJnYjtcbm1hdGVyaWFsLnNwZWN1bGFyQ29sb3IgPSBzcGVjdWxhcjtcbm1hdGVyaWFsLnNwZWN1bGFyU2hpbmluZXNzID0gc2hpbmluZXNzO1xubWF0ZXJpYWwuc3BlY3VsYXJTdHJlbmd0aCA9IHNwZWN1bGFyU3RyZW5ndGg7IixsaWdodHNfcGhvbmdfcGFyc19mcmFnbWVudDoidmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuI2VuZGlmXG5zdHJ1Y3QgQmxpbm5QaG9uZ01hdGVyaWFsIHtcblx0dmVjMyBkaWZmdXNlQ29sb3I7XG5cdHZlYzMgc3BlY3VsYXJDb2xvcjtcblx0ZmxvYXQgc3BlY3VsYXJTaGluaW5lc3M7XG5cdGZsb2F0IHNwZWN1bGFyU3RyZW5ndGg7XG59O1xudm9pZCBSRV9EaXJlY3RfQmxpbm5QaG9uZyggY29uc3QgaW4gSW5jaWRlbnRMaWdodCBkaXJlY3RMaWdodCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gQmxpbm5QaG9uZ01hdGVyaWFsIG1hdGVyaWFsLCBpbm91dCBSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCApIHtcblx0ZmxvYXQgZG90TkwgPSBzYXR1cmF0ZSggZG90KCBnZW9tZXRyeS5ub3JtYWwsIGRpcmVjdExpZ2h0LmRpcmVjdGlvbiApICk7XG5cdHZlYzMgaXJyYWRpYW5jZSA9IGRvdE5MICogZGlyZWN0TGlnaHQuY29sb3I7XG5cdCNpZm5kZWYgUEhZU0lDQUxMWV9DT1JSRUNUX0xJR0hUU1xuXHRcdGlycmFkaWFuY2UgKj0gUEk7XG5cdCNlbmRpZlxuXHRyZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICs9IGlycmFkaWFuY2UgKiBCUkRGX0RpZmZ1c2VfTGFtYmVydCggbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICk7XG5cdHJlZmxlY3RlZExpZ2h0LmRpcmVjdFNwZWN1bGFyICs9IGlycmFkaWFuY2UgKiBCUkRGX1NwZWN1bGFyX0JsaW5uUGhvbmcoIGRpcmVjdExpZ2h0LCBnZW9tZXRyeSwgbWF0ZXJpYWwuc3BlY3VsYXJDb2xvciwgbWF0ZXJpYWwuc3BlY3VsYXJTaGluaW5lc3MgKSAqIG1hdGVyaWFsLnNwZWN1bGFyU3RyZW5ndGg7XG59XG52b2lkIFJFX0luZGlyZWN0RGlmZnVzZV9CbGlublBob25nKCBjb25zdCBpbiB2ZWMzIGlycmFkaWFuY2UsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIEJsaW5uUGhvbmdNYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgKSB7XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSBpcnJhZGlhbmNlICogQlJERl9EaWZmdXNlX0xhbWJlcnQoIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciApO1xufVxuI2RlZmluZSBSRV9EaXJlY3RcdFx0XHRcdFJFX0RpcmVjdF9CbGlublBob25nXG4jZGVmaW5lIFJFX0luZGlyZWN0RGlmZnVzZVx0XHRSRV9JbmRpcmVjdERpZmZ1c2VfQmxpbm5QaG9uZ1xuI2RlZmluZSBNYXRlcmlhbF9MaWdodFByb2JlTE9EKCBtYXRlcmlhbCApXHQoMCkiLGxpZ2h0c19waHlzaWNhbF9mcmFnbWVudDoiUGh5c2ljYWxNYXRlcmlhbCBtYXRlcmlhbDtcbm1hdGVyaWFsLmRpZmZ1c2VDb2xvciA9IGRpZmZ1c2VDb2xvci5yZ2IgKiAoIDEuMCAtIG1ldGFsbmVzc0ZhY3RvciApO1xudmVjMyBkeHkgPSBtYXgoIGFicyggZEZkeCggZ2VvbWV0cnlOb3JtYWwgKSApLCBhYnMoIGRGZHkoIGdlb21ldHJ5Tm9ybWFsICkgKSApO1xuZmxvYXQgZ2VvbWV0cnlSb3VnaG5lc3MgPSBtYXgoIG1heCggZHh5LngsIGR4eS55ICksIGR4eS56ICk7XG5tYXRlcmlhbC5zcGVjdWxhclJvdWdobmVzcyA9IG1heCggcm91Z2huZXNzRmFjdG9yLCAwLjA1MjUgKTttYXRlcmlhbC5zcGVjdWxhclJvdWdobmVzcyArPSBnZW9tZXRyeVJvdWdobmVzcztcbm1hdGVyaWFsLnNwZWN1bGFyUm91Z2huZXNzID0gbWluKCBtYXRlcmlhbC5zcGVjdWxhclJvdWdobmVzcywgMS4wICk7XG4jaWZkZWYgUkVGTEVDVElWSVRZXG5cdCNpZmRlZiBTUEVDVUxBUlxuXHRcdHZlYzMgc3BlY3VsYXJJbnRlbnNpdHlGYWN0b3IgPSB2ZWMzKCBzcGVjdWxhckludGVuc2l0eSApO1xuXHRcdHZlYzMgc3BlY3VsYXJUaW50RmFjdG9yID0gc3BlY3VsYXJUaW50O1xuXHRcdCNpZmRlZiBVU0VfU1BFQ1VMQVJJTlRFTlNJVFlNQVBcblx0XHRcdHNwZWN1bGFySW50ZW5zaXR5RmFjdG9yICo9IHRleHR1cmUyRCggc3BlY3VsYXJJbnRlbnNpdHlNYXAsIHZVdiApLmE7XG5cdFx0I2VuZGlmXG5cdFx0I2lmZGVmIFVTRV9TUEVDVUxBUlRJTlRNQVBcblx0XHRcdHNwZWN1bGFyVGludEZhY3RvciAqPSBzcGVjdWxhclRpbnRNYXBUZXhlbFRvTGluZWFyKCB0ZXh0dXJlMkQoIHNwZWN1bGFyVGludE1hcCwgdlV2ICkgKS5yZ2I7XG5cdFx0I2VuZGlmXG5cdFx0bWF0ZXJpYWwuc3BlY3VsYXJDb2xvckY5MCA9IG1peCggc3BlY3VsYXJJbnRlbnNpdHlGYWN0b3IsIHZlYzMoIDEuMCApLCBtZXRhbG5lc3NGYWN0b3IgKTtcblx0I2Vsc2Vcblx0XHR2ZWMzIHNwZWN1bGFySW50ZW5zaXR5RmFjdG9yID0gdmVjMyggMS4wICk7XG5cdFx0dmVjMyBzcGVjdWxhclRpbnRGYWN0b3IgPSB2ZWMzKCAxLjAgKTtcblx0XHRtYXRlcmlhbC5zcGVjdWxhckNvbG9yRjkwID0gdmVjMyggMS4wICk7XG5cdCNlbmRpZlxuXHRtYXRlcmlhbC5zcGVjdWxhckNvbG9yID0gbWl4KCBtaW4oIHZlYzMoIE1BWElNVU1fU1BFQ1VMQVJfQ09FRkZJQ0lFTlQgKiBwb3cyKCByZWZsZWN0aXZpdHkgKSApICogc3BlY3VsYXJUaW50RmFjdG9yLCB2ZWMzKCAxLjAgKSApICogc3BlY3VsYXJJbnRlbnNpdHlGYWN0b3IsIGRpZmZ1c2VDb2xvci5yZ2IsIG1ldGFsbmVzc0ZhY3RvciApO1xuI2Vsc2Vcblx0bWF0ZXJpYWwuc3BlY3VsYXJDb2xvciA9IG1peCggdmVjMyggREVGQVVMVF9TUEVDVUxBUl9DT0VGRklDSUVOVCApLCBkaWZmdXNlQ29sb3IucmdiLCBtZXRhbG5lc3NGYWN0b3IgKTtcblx0bWF0ZXJpYWwuc3BlY3VsYXJDb2xvckY5MCA9IHZlYzMoIDEuMCApO1xuI2VuZGlmXG4jaWZkZWYgQ0xFQVJDT0FUXG5cdG1hdGVyaWFsLmNsZWFyY29hdCA9IGNsZWFyY29hdDtcblx0bWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzID0gY2xlYXJjb2F0Um91Z2huZXNzO1xuXHQjaWZkZWYgVVNFX0NMRUFSQ09BVE1BUFxuXHRcdG1hdGVyaWFsLmNsZWFyY29hdCAqPSB0ZXh0dXJlMkQoIGNsZWFyY29hdE1hcCwgdlV2ICkueDtcblx0I2VuZGlmXG5cdCNpZmRlZiBVU0VfQ0xFQVJDT0FUX1JPVUdITkVTU01BUFxuXHRcdG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcyAqPSB0ZXh0dXJlMkQoIGNsZWFyY29hdFJvdWdobmVzc01hcCwgdlV2ICkueTtcblx0I2VuZGlmXG5cdG1hdGVyaWFsLmNsZWFyY29hdCA9IHNhdHVyYXRlKCBtYXRlcmlhbC5jbGVhcmNvYXQgKTtcdG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcyA9IG1heCggbWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzLCAwLjA1MjUgKTtcblx0bWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzICs9IGdlb21ldHJ5Um91Z2huZXNzO1xuXHRtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MgPSBtaW4oIG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcywgMS4wICk7XG4jZW5kaWZcbiNpZmRlZiBVU0VfU0hFRU5cblx0bWF0ZXJpYWwuc2hlZW5Db2xvciA9IHNoZWVuO1xuI2VuZGlmIixsaWdodHNfcGh5c2ljYWxfcGFyc19mcmFnbWVudDoic3RydWN0IFBoeXNpY2FsTWF0ZXJpYWwge1xuXHR2ZWMzIGRpZmZ1c2VDb2xvcjtcblx0ZmxvYXQgc3BlY3VsYXJSb3VnaG5lc3M7XG5cdHZlYzMgc3BlY3VsYXJDb2xvcjtcblx0dmVjMyBzcGVjdWxhckNvbG9yRjkwO1xuI2lmZGVmIENMRUFSQ09BVFxuXHRmbG9hdCBjbGVhcmNvYXQ7XG5cdGZsb2F0IGNsZWFyY29hdFJvdWdobmVzcztcbiNlbmRpZlxuI2lmZGVmIFVTRV9TSEVFTlxuXHR2ZWMzIHNoZWVuQ29sb3I7XG4jZW5kaWZcbn07XG4jZGVmaW5lIE1BWElNVU1fU1BFQ1VMQVJfQ09FRkZJQ0lFTlQgMC4xNlxuI2RlZmluZSBERUZBVUxUX1NQRUNVTEFSX0NPRUZGSUNJRU5UIDAuMDRcbmZsb2F0IGNsZWFyY29hdERIUkFwcHJveCggY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzLCBjb25zdCBpbiBmbG9hdCBkb3ROTCApIHtcblx0cmV0dXJuIERFRkFVTFRfU1BFQ1VMQVJfQ09FRkZJQ0lFTlQgKyAoIDEuMCAtIERFRkFVTFRfU1BFQ1VMQVJfQ09FRkZJQ0lFTlQgKSAqICggcG93KCAxLjAgLSBkb3ROTCwgNS4wICkgKiBwb3coIDEuMCAtIHJvdWdobmVzcywgMi4wICkgKTtcbn1cbiNpZiBOVU1fUkVDVF9BUkVBX0xJR0hUUyA+IDBcblx0dm9pZCBSRV9EaXJlY3RfUmVjdEFyZWFfUGh5c2ljYWwoIGNvbnN0IGluIFJlY3RBcmVhTGlnaHQgcmVjdEFyZWFMaWdodCwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gUGh5c2ljYWxNYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgKSB7XG5cdFx0dmVjMyBub3JtYWwgPSBnZW9tZXRyeS5ub3JtYWw7XG5cdFx0dmVjMyB2aWV3RGlyID0gZ2VvbWV0cnkudmlld0Rpcjtcblx0XHR2ZWMzIHBvc2l0aW9uID0gZ2VvbWV0cnkucG9zaXRpb247XG5cdFx0dmVjMyBsaWdodFBvcyA9IHJlY3RBcmVhTGlnaHQucG9zaXRpb247XG5cdFx0dmVjMyBoYWxmV2lkdGggPSByZWN0QXJlYUxpZ2h0LmhhbGZXaWR0aDtcblx0XHR2ZWMzIGhhbGZIZWlnaHQgPSByZWN0QXJlYUxpZ2h0LmhhbGZIZWlnaHQ7XG5cdFx0dmVjMyBsaWdodENvbG9yID0gcmVjdEFyZWFMaWdodC5jb2xvcjtcblx0XHRmbG9hdCByb3VnaG5lc3MgPSBtYXRlcmlhbC5zcGVjdWxhclJvdWdobmVzcztcblx0XHR2ZWMzIHJlY3RDb29yZHNbIDQgXTtcblx0XHRyZWN0Q29vcmRzWyAwIF0gPSBsaWdodFBvcyArIGhhbGZXaWR0aCAtIGhhbGZIZWlnaHQ7XHRcdHJlY3RDb29yZHNbIDEgXSA9IGxpZ2h0UG9zIC0gaGFsZldpZHRoIC0gaGFsZkhlaWdodDtcblx0XHRyZWN0Q29vcmRzWyAyIF0gPSBsaWdodFBvcyAtIGhhbGZXaWR0aCArIGhhbGZIZWlnaHQ7XG5cdFx0cmVjdENvb3Jkc1sgMyBdID0gbGlnaHRQb3MgKyBoYWxmV2lkdGggKyBoYWxmSGVpZ2h0O1xuXHRcdHZlYzIgdXYgPSBMVENfVXYoIG5vcm1hbCwgdmlld0Rpciwgcm91Z2huZXNzICk7XG5cdFx0dmVjNCB0MSA9IHRleHR1cmUyRCggbHRjXzEsIHV2ICk7XG5cdFx0dmVjNCB0MiA9IHRleHR1cmUyRCggbHRjXzIsIHV2ICk7XG5cdFx0bWF0MyBtSW52ID0gbWF0Myhcblx0XHRcdHZlYzMoIHQxLngsIDAsIHQxLnkgKSxcblx0XHRcdHZlYzMoICAgIDAsIDEsICAgIDAgKSxcblx0XHRcdHZlYzMoIHQxLnosIDAsIHQxLncgKVxuXHRcdCk7XG5cdFx0dmVjMyBmcmVzbmVsID0gKCBtYXRlcmlhbC5zcGVjdWxhckNvbG9yICogdDIueCArICggdmVjMyggMS4wICkgLSBtYXRlcmlhbC5zcGVjdWxhckNvbG9yICkgKiB0Mi55ICk7XG5cdFx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0U3BlY3VsYXIgKz0gbGlnaHRDb2xvciAqIGZyZXNuZWwgKiBMVENfRXZhbHVhdGUoIG5vcm1hbCwgdmlld0RpciwgcG9zaXRpb24sIG1JbnYsIHJlY3RDb29yZHMgKTtcblx0XHRyZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICs9IGxpZ2h0Q29sb3IgKiBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgKiBMVENfRXZhbHVhdGUoIG5vcm1hbCwgdmlld0RpciwgcG9zaXRpb24sIG1hdDMoIDEuMCApLCByZWN0Q29vcmRzICk7XG5cdH1cbiNlbmRpZlxudm9pZCBSRV9EaXJlY3RfUGh5c2ljYWwoIGNvbnN0IGluIEluY2lkZW50TGlnaHQgZGlyZWN0TGlnaHQsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIFBoeXNpY2FsTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkge1xuXHRmbG9hdCBkb3ROTCA9IHNhdHVyYXRlKCBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICkgKTtcblx0dmVjMyBpcnJhZGlhbmNlID0gZG90TkwgKiBkaXJlY3RMaWdodC5jb2xvcjtcblx0I2lmbmRlZiBQSFlTSUNBTExZX0NPUlJFQ1RfTElHSFRTXG5cdFx0aXJyYWRpYW5jZSAqPSBQSTtcblx0I2VuZGlmXG5cdCNpZmRlZiBDTEVBUkNPQVRcblx0XHRmbG9hdCBjY0RvdE5MID0gc2F0dXJhdGUoIGRvdCggZ2VvbWV0cnkuY2xlYXJjb2F0Tm9ybWFsLCBkaXJlY3RMaWdodC5kaXJlY3Rpb24gKSApO1xuXHRcdHZlYzMgY2NJcnJhZGlhbmNlID0gY2NEb3ROTCAqIGRpcmVjdExpZ2h0LmNvbG9yO1xuXHRcdCNpZm5kZWYgUEhZU0lDQUxMWV9DT1JSRUNUX0xJR0hUU1xuXHRcdFx0Y2NJcnJhZGlhbmNlICo9IFBJO1xuXHRcdCNlbmRpZlxuXHRcdGZsb2F0IGNsZWFyY29hdERIUiA9IG1hdGVyaWFsLmNsZWFyY29hdCAqIGNsZWFyY29hdERIUkFwcHJveCggbWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzLCBjY0RvdE5MICk7XG5cdFx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0U3BlY3VsYXIgKz0gY2NJcnJhZGlhbmNlICogbWF0ZXJpYWwuY2xlYXJjb2F0ICogQlJERl9TcGVjdWxhcl9HR1goIGRpcmVjdExpZ2h0LCBnZW9tZXRyeS52aWV3RGlyLCBnZW9tZXRyeS5jbGVhcmNvYXROb3JtYWwsIHZlYzMoIERFRkFVTFRfU1BFQ1VMQVJfQ09FRkZJQ0lFTlQgKSwgdmVjMyggMS4wICksIG1hdGVyaWFsLmNsZWFyY29hdFJvdWdobmVzcyApO1xuXHQjZWxzZVxuXHRcdGZsb2F0IGNsZWFyY29hdERIUiA9IDAuMDtcblx0I2VuZGlmXG5cdCNpZmRlZiBVU0VfU0hFRU5cblx0XHRyZWZsZWN0ZWRMaWdodC5kaXJlY3RTcGVjdWxhciArPSAoIDEuMCAtIGNsZWFyY29hdERIUiApICogaXJyYWRpYW5jZSAqIEJSREZfU3BlY3VsYXJfU2hlZW4oXG5cdFx0XHRtYXRlcmlhbC5zcGVjdWxhclJvdWdobmVzcyxcblx0XHRcdGRpcmVjdExpZ2h0LmRpcmVjdGlvbixcblx0XHRcdGdlb21ldHJ5LFxuXHRcdFx0bWF0ZXJpYWwuc2hlZW5Db2xvclxuXHRcdCk7XG5cdCNlbHNlXG5cdFx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0U3BlY3VsYXIgKz0gKCAxLjAgLSBjbGVhcmNvYXRESFIgKSAqIGlycmFkaWFuY2UgKiBCUkRGX1NwZWN1bGFyX0dHWCggZGlyZWN0TGlnaHQsIGdlb21ldHJ5LnZpZXdEaXIsIGdlb21ldHJ5Lm5vcm1hbCwgbWF0ZXJpYWwuc3BlY3VsYXJDb2xvciwgbWF0ZXJpYWwuc3BlY3VsYXJDb2xvckY5MCwgbWF0ZXJpYWwuc3BlY3VsYXJSb3VnaG5lc3MpO1xuXHQjZW5kaWZcblx0cmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSArPSAoIDEuMCAtIGNsZWFyY29hdERIUiApICogaXJyYWRpYW5jZSAqIEJSREZfRGlmZnVzZV9MYW1iZXJ0KCBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgKTtcbn1cbnZvaWQgUkVfSW5kaXJlY3REaWZmdXNlX1BoeXNpY2FsKCBjb25zdCBpbiB2ZWMzIGlycmFkaWFuY2UsIGNvbnN0IGluIEdlb21ldHJpY0NvbnRleHQgZ2VvbWV0cnksIGNvbnN0IGluIFBoeXNpY2FsTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkge1xuXHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gaXJyYWRpYW5jZSAqIEJSREZfRGlmZnVzZV9MYW1iZXJ0KCBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgKTtcbn1cbnZvaWQgUkVfSW5kaXJlY3RTcGVjdWxhcl9QaHlzaWNhbCggY29uc3QgaW4gdmVjMyByYWRpYW5jZSwgY29uc3QgaW4gdmVjMyBpcnJhZGlhbmNlLCBjb25zdCBpbiB2ZWMzIGNsZWFyY29hdFJhZGlhbmNlLCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBQaHlzaWNhbE1hdGVyaWFsIG1hdGVyaWFsLCBpbm91dCBSZWZsZWN0ZWRMaWdodCByZWZsZWN0ZWRMaWdodCkge1xuXHQjaWZkZWYgQ0xFQVJDT0FUXG5cdFx0ZmxvYXQgY2NEb3ROViA9IHNhdHVyYXRlKCBkb3QoIGdlb21ldHJ5LmNsZWFyY29hdE5vcm1hbCwgZ2VvbWV0cnkudmlld0RpciApICk7XG5cdFx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3RTcGVjdWxhciArPSBjbGVhcmNvYXRSYWRpYW5jZSAqIG1hdGVyaWFsLmNsZWFyY29hdCAqIEJSREZfU3BlY3VsYXJfR0dYX0Vudmlyb25tZW50KCBnZW9tZXRyeS52aWV3RGlyLCBnZW9tZXRyeS5jbGVhcmNvYXROb3JtYWwsIHZlYzMoIERFRkFVTFRfU1BFQ1VMQVJfQ09FRkZJQ0lFTlQgKSwgbWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzICk7XG5cdFx0ZmxvYXQgY2NEb3ROTCA9IGNjRG90TlY7XG5cdFx0ZmxvYXQgY2xlYXJjb2F0REhSID0gbWF0ZXJpYWwuY2xlYXJjb2F0ICogY2xlYXJjb2F0REhSQXBwcm94KCBtYXRlcmlhbC5jbGVhcmNvYXRSb3VnaG5lc3MsIGNjRG90TkwgKTtcblx0I2Vsc2Vcblx0XHRmbG9hdCBjbGVhcmNvYXRESFIgPSAwLjA7XG5cdCNlbmRpZlxuXHRmbG9hdCBjbGVhcmNvYXRJbnYgPSAxLjAgLSBjbGVhcmNvYXRESFI7XG5cdHZlYzMgc2luZ2xlU2NhdHRlcmluZyA9IHZlYzMoIDAuMCApO1xuXHR2ZWMzIG11bHRpU2NhdHRlcmluZyA9IHZlYzMoIDAuMCApO1xuXHR2ZWMzIGNvc2luZVdlaWdodGVkSXJyYWRpYW5jZSA9IGlycmFkaWFuY2UgKiBSRUNJUFJPQ0FMX1BJO1xuXHRCUkRGX1NwZWN1bGFyX011bHRpc2NhdHRlcmluZ19FbnZpcm9ubWVudCggZ2VvbWV0cnksIG1hdGVyaWFsLnNwZWN1bGFyQ29sb3IsIG1hdGVyaWFsLnNwZWN1bGFyUm91Z2huZXNzLCBzaW5nbGVTY2F0dGVyaW5nLCBtdWx0aVNjYXR0ZXJpbmcgKTtcblx0dmVjMyBkaWZmdXNlID0gbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICogKCAxLjAgLSAoIHNpbmdsZVNjYXR0ZXJpbmcgKyBtdWx0aVNjYXR0ZXJpbmcgKSApO1xuXHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdFNwZWN1bGFyICs9IGNsZWFyY29hdEludiAqIHJhZGlhbmNlICogc2luZ2xlU2NhdHRlcmluZztcblx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3RTcGVjdWxhciArPSBtdWx0aVNjYXR0ZXJpbmcgKiBjb3NpbmVXZWlnaHRlZElycmFkaWFuY2U7XG5cdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSBkaWZmdXNlICogY29zaW5lV2VpZ2h0ZWRJcnJhZGlhbmNlO1xufVxuI2RlZmluZSBSRV9EaXJlY3RcdFx0XHRcdFJFX0RpcmVjdF9QaHlzaWNhbFxuI2RlZmluZSBSRV9EaXJlY3RfUmVjdEFyZWFcdFx0UkVfRGlyZWN0X1JlY3RBcmVhX1BoeXNpY2FsXG4jZGVmaW5lIFJFX0luZGlyZWN0RGlmZnVzZVx0XHRSRV9JbmRpcmVjdERpZmZ1c2VfUGh5c2ljYWxcbiNkZWZpbmUgUkVfSW5kaXJlY3RTcGVjdWxhclx0XHRSRV9JbmRpcmVjdFNwZWN1bGFyX1BoeXNpY2FsXG5mbG9hdCBjb21wdXRlU3BlY3VsYXJPY2NsdXNpb24oIGNvbnN0IGluIGZsb2F0IGRvdE5WLCBjb25zdCBpbiBmbG9hdCBhbWJpZW50T2NjbHVzaW9uLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MgKSB7XG5cdHJldHVybiBzYXR1cmF0ZSggcG93KCBkb3ROViArIGFtYmllbnRPY2NsdXNpb24sIGV4cDIoIC0gMTYuMCAqIHJvdWdobmVzcyAtIDEuMCApICkgLSAxLjAgKyBhbWJpZW50T2NjbHVzaW9uICk7XG59IixsaWdodHNfZnJhZ21lbnRfYmVnaW46IlxuR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeTtcbmdlb21ldHJ5LnBvc2l0aW9uID0gLSB2Vmlld1Bvc2l0aW9uO1xuZ2VvbWV0cnkubm9ybWFsID0gbm9ybWFsO1xuZ2VvbWV0cnkudmlld0RpciA9ICggaXNPcnRob2dyYXBoaWMgKSA/IHZlYzMoIDAsIDAsIDEgKSA6IG5vcm1hbGl6ZSggdlZpZXdQb3NpdGlvbiApO1xuI2lmZGVmIENMRUFSQ09BVFxuXHRnZW9tZXRyeS5jbGVhcmNvYXROb3JtYWwgPSBjbGVhcmNvYXROb3JtYWw7XG4jZW5kaWZcbkluY2lkZW50TGlnaHQgZGlyZWN0TGlnaHQ7XG4jaWYgKCBOVU1fUE9JTlRfTElHSFRTID4gMCApICYmIGRlZmluZWQoIFJFX0RpcmVjdCApXG5cdFBvaW50TGlnaHQgcG9pbnRMaWdodDtcblx0I2lmIGRlZmluZWQoIFVTRV9TSEFET1dNQVAgKSAmJiBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyA+IDBcblx0UG9pbnRMaWdodFNoYWRvdyBwb2ludExpZ2h0U2hhZG93O1xuXHQjZW5kaWZcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fUE9JTlRfTElHSFRTOyBpICsrICkge1xuXHRcdHBvaW50TGlnaHQgPSBwb2ludExpZ2h0c1sgaSBdO1xuXHRcdGdldFBvaW50RGlyZWN0TGlnaHRJcnJhZGlhbmNlKCBwb2ludExpZ2h0LCBnZW9tZXRyeSwgZGlyZWN0TGlnaHQgKTtcblx0XHQjaWYgZGVmaW5lZCggVVNFX1NIQURPV01BUCApICYmICggVU5ST0xMRURfTE9PUF9JTkRFWCA8IE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTIClcblx0XHRwb2ludExpZ2h0U2hhZG93ID0gcG9pbnRMaWdodFNoYWRvd3NbIGkgXTtcblx0XHRkaXJlY3RMaWdodC5jb2xvciAqPSBhbGwoIGJ2ZWMyKCBkaXJlY3RMaWdodC52aXNpYmxlLCByZWNlaXZlU2hhZG93ICkgKSA/IGdldFBvaW50U2hhZG93KCBwb2ludFNoYWRvd01hcFsgaSBdLCBwb2ludExpZ2h0U2hhZG93LnNoYWRvd01hcFNpemUsIHBvaW50TGlnaHRTaGFkb3cuc2hhZG93QmlhcywgcG9pbnRMaWdodFNoYWRvdy5zaGFkb3dSYWRpdXMsIHZQb2ludFNoYWRvd0Nvb3JkWyBpIF0sIHBvaW50TGlnaHRTaGFkb3cuc2hhZG93Q2FtZXJhTmVhciwgcG9pbnRMaWdodFNoYWRvdy5zaGFkb3dDYW1lcmFGYXIgKSA6IDEuMDtcblx0XHQjZW5kaWZcblx0XHRSRV9EaXJlY3QoIGRpcmVjdExpZ2h0LCBnZW9tZXRyeSwgbWF0ZXJpYWwsIHJlZmxlY3RlZExpZ2h0ICk7XG5cdH1cblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcbiNlbmRpZlxuI2lmICggTlVNX1NQT1RfTElHSFRTID4gMCApICYmIGRlZmluZWQoIFJFX0RpcmVjdCApXG5cdFNwb3RMaWdodCBzcG90TGlnaHQ7XG5cdCNpZiBkZWZpbmVkKCBVU0VfU0hBRE9XTUFQICkgJiYgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyA+IDBcblx0U3BvdExpZ2h0U2hhZG93IHNwb3RMaWdodFNoYWRvdztcblx0I2VuZGlmXG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1NQT1RfTElHSFRTOyBpICsrICkge1xuXHRcdHNwb3RMaWdodCA9IHNwb3RMaWdodHNbIGkgXTtcblx0XHRnZXRTcG90RGlyZWN0TGlnaHRJcnJhZGlhbmNlKCBzcG90TGlnaHQsIGdlb21ldHJ5LCBkaXJlY3RMaWdodCApO1xuXHRcdCNpZiBkZWZpbmVkKCBVU0VfU0hBRE9XTUFQICkgJiYgKCBVTlJPTExFRF9MT09QX0lOREVYIDwgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyApXG5cdFx0c3BvdExpZ2h0U2hhZG93ID0gc3BvdExpZ2h0U2hhZG93c1sgaSBdO1xuXHRcdGRpcmVjdExpZ2h0LmNvbG9yICo9IGFsbCggYnZlYzIoIGRpcmVjdExpZ2h0LnZpc2libGUsIHJlY2VpdmVTaGFkb3cgKSApID8gZ2V0U2hhZG93KCBzcG90U2hhZG93TWFwWyBpIF0sIHNwb3RMaWdodFNoYWRvdy5zaGFkb3dNYXBTaXplLCBzcG90TGlnaHRTaGFkb3cuc2hhZG93Qmlhcywgc3BvdExpZ2h0U2hhZG93LnNoYWRvd1JhZGl1cywgdlNwb3RTaGFkb3dDb29yZFsgaSBdICkgOiAxLjA7XG5cdFx0I2VuZGlmXG5cdFx0UkVfRGlyZWN0KCBkaXJlY3RMaWdodCwgZ2VvbWV0cnksIG1hdGVyaWFsLCByZWZsZWN0ZWRMaWdodCApO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG4jZW5kaWZcbiNpZiAoIE5VTV9ESVJfTElHSFRTID4gMCApICYmIGRlZmluZWQoIFJFX0RpcmVjdCApXG5cdERpcmVjdGlvbmFsTGlnaHQgZGlyZWN0aW9uYWxMaWdodDtcblx0I2lmIGRlZmluZWQoIFVTRV9TSEFET1dNQVAgKSAmJiBOVU1fRElSX0xJR0hUX1NIQURPV1MgPiAwXG5cdERpcmVjdGlvbmFsTGlnaHRTaGFkb3cgZGlyZWN0aW9uYWxMaWdodFNoYWRvdztcblx0I2VuZGlmXG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX0RJUl9MSUdIVFM7IGkgKysgKSB7XG5cdFx0ZGlyZWN0aW9uYWxMaWdodCA9IGRpcmVjdGlvbmFsTGlnaHRzWyBpIF07XG5cdFx0Z2V0RGlyZWN0aW9uYWxEaXJlY3RMaWdodElycmFkaWFuY2UoIGRpcmVjdGlvbmFsTGlnaHQsIGdlb21ldHJ5LCBkaXJlY3RMaWdodCApO1xuXHRcdCNpZiBkZWZpbmVkKCBVU0VfU0hBRE9XTUFQICkgJiYgKCBVTlJPTExFRF9MT09QX0lOREVYIDwgTlVNX0RJUl9MSUdIVF9TSEFET1dTIClcblx0XHRkaXJlY3Rpb25hbExpZ2h0U2hhZG93ID0gZGlyZWN0aW9uYWxMaWdodFNoYWRvd3NbIGkgXTtcblx0XHRkaXJlY3RMaWdodC5jb2xvciAqPSBhbGwoIGJ2ZWMyKCBkaXJlY3RMaWdodC52aXNpYmxlLCByZWNlaXZlU2hhZG93ICkgKSA/IGdldFNoYWRvdyggZGlyZWN0aW9uYWxTaGFkb3dNYXBbIGkgXSwgZGlyZWN0aW9uYWxMaWdodFNoYWRvdy5zaGFkb3dNYXBTaXplLCBkaXJlY3Rpb25hbExpZ2h0U2hhZG93LnNoYWRvd0JpYXMsIGRpcmVjdGlvbmFsTGlnaHRTaGFkb3cuc2hhZG93UmFkaXVzLCB2RGlyZWN0aW9uYWxTaGFkb3dDb29yZFsgaSBdICkgOiAxLjA7XG5cdFx0I2VuZGlmXG5cdFx0UkVfRGlyZWN0KCBkaXJlY3RMaWdodCwgZ2VvbWV0cnksIG1hdGVyaWFsLCByZWZsZWN0ZWRMaWdodCApO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG4jZW5kaWZcbiNpZiAoIE5VTV9SRUNUX0FSRUFfTElHSFRTID4gMCApICYmIGRlZmluZWQoIFJFX0RpcmVjdF9SZWN0QXJlYSApXG5cdFJlY3RBcmVhTGlnaHQgcmVjdEFyZWFMaWdodDtcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fUkVDVF9BUkVBX0xJR0hUUzsgaSArKyApIHtcblx0XHRyZWN0QXJlYUxpZ2h0ID0gcmVjdEFyZWFMaWdodHNbIGkgXTtcblx0XHRSRV9EaXJlY3RfUmVjdEFyZWEoIHJlY3RBcmVhTGlnaHQsIGdlb21ldHJ5LCBtYXRlcmlhbCwgcmVmbGVjdGVkTGlnaHQgKTtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuI2VuZGlmXG4jaWYgZGVmaW5lZCggUkVfSW5kaXJlY3REaWZmdXNlIClcblx0dmVjMyBpYmxJcnJhZGlhbmNlID0gdmVjMyggMC4wICk7XG5cdHZlYzMgaXJyYWRpYW5jZSA9IGdldEFtYmllbnRMaWdodElycmFkaWFuY2UoIGFtYmllbnRMaWdodENvbG9yICk7XG5cdGlycmFkaWFuY2UgKz0gZ2V0TGlnaHRQcm9iZUlycmFkaWFuY2UoIGxpZ2h0UHJvYmUsIGdlb21ldHJ5ICk7XG5cdCNpZiAoIE5VTV9IRU1JX0xJR0hUUyA+IDAgKVxuXHRcdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0XHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fSEVNSV9MSUdIVFM7IGkgKysgKSB7XG5cdFx0XHRpcnJhZGlhbmNlICs9IGdldEhlbWlzcGhlcmVMaWdodElycmFkaWFuY2UoIGhlbWlzcGhlcmVMaWdodHNbIGkgXSwgZ2VvbWV0cnkgKTtcblx0XHR9XG5cdFx0I3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcblx0I2VuZGlmXG4jZW5kaWZcbiNpZiBkZWZpbmVkKCBSRV9JbmRpcmVjdFNwZWN1bGFyIClcblx0dmVjMyByYWRpYW5jZSA9IHZlYzMoIDAuMCApO1xuXHR2ZWMzIGNsZWFyY29hdFJhZGlhbmNlID0gdmVjMyggMC4wICk7XG4jZW5kaWYiLGxpZ2h0c19mcmFnbWVudF9tYXBzOiIjaWYgZGVmaW5lZCggUkVfSW5kaXJlY3REaWZmdXNlIClcblx0I2lmZGVmIFVTRV9MSUdIVE1BUFxuXHRcdHZlYzQgbGlnaHRNYXBUZXhlbD0gdGV4dHVyZTJEKCBsaWdodE1hcCwgdlV2MiApO1xuXHRcdHZlYzMgbGlnaHRNYXBJcnJhZGlhbmNlID0gbGlnaHRNYXBUZXhlbFRvTGluZWFyKCBsaWdodE1hcFRleGVsICkucmdiICogbGlnaHRNYXBJbnRlbnNpdHk7XG5cdFx0I2lmbmRlZiBQSFlTSUNBTExZX0NPUlJFQ1RfTElHSFRTXG5cdFx0XHRsaWdodE1hcElycmFkaWFuY2UgKj0gUEk7XG5cdFx0I2VuZGlmXG5cdFx0aXJyYWRpYW5jZSArPSBsaWdodE1hcElycmFkaWFuY2U7XG5cdCNlbmRpZlxuXHQjaWYgZGVmaW5lZCggVVNFX0VOVk1BUCApICYmIGRlZmluZWQoIFNUQU5EQVJEICkgJiYgZGVmaW5lZCggRU5WTUFQX1RZUEVfQ1VCRV9VViApXG5cdFx0aWJsSXJyYWRpYW5jZSArPSBnZXRMaWdodFByb2JlSW5kaXJlY3RJcnJhZGlhbmNlKCBnZW9tZXRyeSwgbWF4TWlwTGV2ZWwgKTtcblx0I2VuZGlmXG4jZW5kaWZcbiNpZiBkZWZpbmVkKCBVU0VfRU5WTUFQICkgJiYgZGVmaW5lZCggUkVfSW5kaXJlY3RTcGVjdWxhciApXG5cdHJhZGlhbmNlICs9IGdldExpZ2h0UHJvYmVJbmRpcmVjdFJhZGlhbmNlKCBnZW9tZXRyeS52aWV3RGlyLCBnZW9tZXRyeS5ub3JtYWwsIG1hdGVyaWFsLnNwZWN1bGFyUm91Z2huZXNzLCBtYXhNaXBMZXZlbCApO1xuXHQjaWZkZWYgQ0xFQVJDT0FUXG5cdFx0Y2xlYXJjb2F0UmFkaWFuY2UgKz0gZ2V0TGlnaHRQcm9iZUluZGlyZWN0UmFkaWFuY2UoIGdlb21ldHJ5LnZpZXdEaXIsIGdlb21ldHJ5LmNsZWFyY29hdE5vcm1hbCwgbWF0ZXJpYWwuY2xlYXJjb2F0Um91Z2huZXNzLCBtYXhNaXBMZXZlbCApO1xuXHQjZW5kaWZcbiNlbmRpZiIsbGlnaHRzX2ZyYWdtZW50X2VuZDoiI2lmIGRlZmluZWQoIFJFX0luZGlyZWN0RGlmZnVzZSApXG5cdFJFX0luZGlyZWN0RGlmZnVzZSggaXJyYWRpYW5jZSwgZ2VvbWV0cnksIG1hdGVyaWFsLCByZWZsZWN0ZWRMaWdodCApO1xuI2VuZGlmXG4jaWYgZGVmaW5lZCggUkVfSW5kaXJlY3RTcGVjdWxhciApXG5cdFJFX0luZGlyZWN0U3BlY3VsYXIoIHJhZGlhbmNlLCBpYmxJcnJhZGlhbmNlLCBjbGVhcmNvYXRSYWRpYW5jZSwgZ2VvbWV0cnksIG1hdGVyaWFsLCByZWZsZWN0ZWRMaWdodCApO1xuI2VuZGlmIixsb2dkZXB0aGJ1Zl9mcmFnbWVudDoiI2lmIGRlZmluZWQoIFVTRV9MT0dERVBUSEJVRiApICYmIGRlZmluZWQoIFVTRV9MT0dERVBUSEJVRl9FWFQgKVxuXHRnbF9GcmFnRGVwdGhFWFQgPSB2SXNQZXJzcGVjdGl2ZSA9PSAwLjAgPyBnbF9GcmFnQ29vcmQueiA6IGxvZzIoIHZGcmFnRGVwdGggKSAqIGxvZ0RlcHRoQnVmRkMgKiAwLjU7XG4jZW5kaWYiLGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ6IiNpZiBkZWZpbmVkKCBVU0VfTE9HREVQVEhCVUYgKSAmJiBkZWZpbmVkKCBVU0VfTE9HREVQVEhCVUZfRVhUIClcblx0dW5pZm9ybSBmbG9hdCBsb2dEZXB0aEJ1ZkZDO1xuXHR2YXJ5aW5nIGZsb2F0IHZGcmFnRGVwdGg7XG5cdHZhcnlpbmcgZmxvYXQgdklzUGVyc3BlY3RpdmU7XG4jZW5kaWYiLGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4OiIjaWZkZWYgVVNFX0xPR0RFUFRIQlVGXG5cdCNpZmRlZiBVU0VfTE9HREVQVEhCVUZfRVhUXG5cdFx0dmFyeWluZyBmbG9hdCB2RnJhZ0RlcHRoO1xuXHRcdHZhcnlpbmcgZmxvYXQgdklzUGVyc3BlY3RpdmU7XG5cdCNlbHNlXG5cdFx0dW5pZm9ybSBmbG9hdCBsb2dEZXB0aEJ1ZkZDO1xuXHQjZW5kaWZcbiNlbmRpZiIsbG9nZGVwdGhidWZfdmVydGV4OiIjaWZkZWYgVVNFX0xPR0RFUFRIQlVGXG5cdCNpZmRlZiBVU0VfTE9HREVQVEhCVUZfRVhUXG5cdFx0dkZyYWdEZXB0aCA9IDEuMCArIGdsX1Bvc2l0aW9uLnc7XG5cdFx0dklzUGVyc3BlY3RpdmUgPSBmbG9hdCggaXNQZXJzcGVjdGl2ZU1hdHJpeCggcHJvamVjdGlvbk1hdHJpeCApICk7XG5cdCNlbHNlXG5cdFx0aWYgKCBpc1BlcnNwZWN0aXZlTWF0cml4KCBwcm9qZWN0aW9uTWF0cml4ICkgKSB7XG5cdFx0XHRnbF9Qb3NpdGlvbi56ID0gbG9nMiggbWF4KCBFUFNJTE9OLCBnbF9Qb3NpdGlvbi53ICsgMS4wICkgKSAqIGxvZ0RlcHRoQnVmRkMgLSAxLjA7XG5cdFx0XHRnbF9Qb3NpdGlvbi56ICo9IGdsX1Bvc2l0aW9uLnc7XG5cdFx0fVxuXHQjZW5kaWZcbiNlbmRpZiIsbWFwX2ZyYWdtZW50OiIjaWZkZWYgVVNFX01BUFxuXHR2ZWM0IHRleGVsQ29sb3IgPSB0ZXh0dXJlMkQoIG1hcCwgdlV2ICk7XG5cdHRleGVsQ29sb3IgPSBtYXBUZXhlbFRvTGluZWFyKCB0ZXhlbENvbG9yICk7XG5cdGRpZmZ1c2VDb2xvciAqPSB0ZXhlbENvbG9yO1xuI2VuZGlmIixtYXBfcGFyc19mcmFnbWVudDoiI2lmZGVmIFVTRV9NQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgbWFwO1xuI2VuZGlmIixtYXBfcGFydGljbGVfZnJhZ21lbnQ6IiNpZiBkZWZpbmVkKCBVU0VfTUFQICkgfHwgZGVmaW5lZCggVVNFX0FMUEhBTUFQIClcblx0dmVjMiB1diA9ICggdXZUcmFuc2Zvcm0gKiB2ZWMzKCBnbF9Qb2ludENvb3JkLngsIDEuMCAtIGdsX1BvaW50Q29vcmQueSwgMSApICkueHk7XG4jZW5kaWZcbiNpZmRlZiBVU0VfTUFQXG5cdHZlYzQgbWFwVGV4ZWwgPSB0ZXh0dXJlMkQoIG1hcCwgdXYgKTtcblx0ZGlmZnVzZUNvbG9yICo9IG1hcFRleGVsVG9MaW5lYXIoIG1hcFRleGVsICk7XG4jZW5kaWZcbiNpZmRlZiBVU0VfQUxQSEFNQVBcblx0ZGlmZnVzZUNvbG9yLmEgKj0gdGV4dHVyZTJEKCBhbHBoYU1hcCwgdXYgKS5nO1xuI2VuZGlmIixtYXBfcGFydGljbGVfcGFyc19mcmFnbWVudDoiI2lmIGRlZmluZWQoIFVTRV9NQVAgKSB8fCBkZWZpbmVkKCBVU0VfQUxQSEFNQVAgKVxuXHR1bmlmb3JtIG1hdDMgdXZUcmFuc2Zvcm07XG4jZW5kaWZcbiNpZmRlZiBVU0VfTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIG1hcDtcbiNlbmRpZlxuI2lmZGVmIFVTRV9BTFBIQU1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBhbHBoYU1hcDtcbiNlbmRpZiIsbWV0YWxuZXNzbWFwX2ZyYWdtZW50OiJmbG9hdCBtZXRhbG5lc3NGYWN0b3IgPSBtZXRhbG5lc3M7XG4jaWZkZWYgVVNFX01FVEFMTkVTU01BUFxuXHR2ZWM0IHRleGVsTWV0YWxuZXNzID0gdGV4dHVyZTJEKCBtZXRhbG5lc3NNYXAsIHZVdiApO1xuXHRtZXRhbG5lc3NGYWN0b3IgKj0gdGV4ZWxNZXRhbG5lc3MuYjtcbiNlbmRpZiIsbWV0YWxuZXNzbWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfTUVUQUxORVNTTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIG1ldGFsbmVzc01hcDtcbiNlbmRpZiIsbW9ycGhub3JtYWxfdmVydGV4OiIjaWZkZWYgVVNFX01PUlBITk9STUFMU1xuXHRvYmplY3ROb3JtYWwgKj0gbW9ycGhUYXJnZXRCYXNlSW5mbHVlbmNlO1xuXHRvYmplY3ROb3JtYWwgKz0gbW9ycGhOb3JtYWwwICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAwIF07XG5cdG9iamVjdE5vcm1hbCArPSBtb3JwaE5vcm1hbDEgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDEgXTtcblx0b2JqZWN0Tm9ybWFsICs9IG1vcnBoTm9ybWFsMiAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMiBdO1xuXHRvYmplY3ROb3JtYWwgKz0gbW9ycGhOb3JtYWwzICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAzIF07XG4jZW5kaWYiLG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4OiIjaWZkZWYgVVNFX01PUlBIVEFSR0VUU1xuXHR1bmlmb3JtIGZsb2F0IG1vcnBoVGFyZ2V0QmFzZUluZmx1ZW5jZTtcblx0I2lmbmRlZiBVU0VfTU9SUEhOT1JNQUxTXG5cdFx0dW5pZm9ybSBmbG9hdCBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDggXTtcblx0I2Vsc2Vcblx0XHR1bmlmb3JtIGZsb2F0IG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgNCBdO1xuXHQjZW5kaWZcbiNlbmRpZiIsbW9ycGh0YXJnZXRfdmVydGV4OiIjaWZkZWYgVVNFX01PUlBIVEFSR0VUU1xuXHR0cmFuc2Zvcm1lZCAqPSBtb3JwaFRhcmdldEJhc2VJbmZsdWVuY2U7XG5cdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0MCAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMCBdO1xuXHR0cmFuc2Zvcm1lZCArPSBtb3JwaFRhcmdldDEgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDEgXTtcblx0dHJhbnNmb3JtZWQgKz0gbW9ycGhUYXJnZXQyICogbW9ycGhUYXJnZXRJbmZsdWVuY2VzWyAyIF07XG5cdHRyYW5zZm9ybWVkICs9IG1vcnBoVGFyZ2V0MyAqIG1vcnBoVGFyZ2V0SW5mbHVlbmNlc1sgMyBdO1xuXHQjaWZuZGVmIFVTRV9NT1JQSE5PUk1BTFNcblx0XHR0cmFuc2Zvcm1lZCArPSBtb3JwaFRhcmdldDQgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDQgXTtcblx0XHR0cmFuc2Zvcm1lZCArPSBtb3JwaFRhcmdldDUgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDUgXTtcblx0XHR0cmFuc2Zvcm1lZCArPSBtb3JwaFRhcmdldDYgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDYgXTtcblx0XHR0cmFuc2Zvcm1lZCArPSBtb3JwaFRhcmdldDcgKiBtb3JwaFRhcmdldEluZmx1ZW5jZXNbIDcgXTtcblx0I2VuZGlmXG4jZW5kaWYiLG5vcm1hbF9mcmFnbWVudF9iZWdpbjoiZmxvYXQgZmFjZURpcmVjdGlvbiA9IGdsX0Zyb250RmFjaW5nID8gMS4wIDogLSAxLjA7XG4jaWZkZWYgRkxBVF9TSEFERURcblx0dmVjMyBmZHggPSB2ZWMzKCBkRmR4KCB2Vmlld1Bvc2l0aW9uLnggKSwgZEZkeCggdlZpZXdQb3NpdGlvbi55ICksIGRGZHgoIHZWaWV3UG9zaXRpb24ueiApICk7XG5cdHZlYzMgZmR5ID0gdmVjMyggZEZkeSggdlZpZXdQb3NpdGlvbi54ICksIGRGZHkoIHZWaWV3UG9zaXRpb24ueSApLCBkRmR5KCB2Vmlld1Bvc2l0aW9uLnogKSApO1xuXHR2ZWMzIG5vcm1hbCA9IG5vcm1hbGl6ZSggY3Jvc3MoIGZkeCwgZmR5ICkgKTtcbiNlbHNlXG5cdHZlYzMgbm9ybWFsID0gbm9ybWFsaXplKCB2Tm9ybWFsICk7XG5cdCNpZmRlZiBET1VCTEVfU0lERURcblx0XHRub3JtYWwgPSBub3JtYWwgKiBmYWNlRGlyZWN0aW9uO1xuXHQjZW5kaWZcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0dmVjMyB0YW5nZW50ID0gbm9ybWFsaXplKCB2VGFuZ2VudCApO1xuXHRcdHZlYzMgYml0YW5nZW50ID0gbm9ybWFsaXplKCB2Qml0YW5nZW50ICk7XG5cdFx0I2lmZGVmIERPVUJMRV9TSURFRFxuXHRcdFx0dGFuZ2VudCA9IHRhbmdlbnQgKiBmYWNlRGlyZWN0aW9uO1xuXHRcdFx0Yml0YW5nZW50ID0gYml0YW5nZW50ICogZmFjZURpcmVjdGlvbjtcblx0XHQjZW5kaWZcblx0XHQjaWYgZGVmaW5lZCggVEFOR0VOVFNQQUNFX05PUk1BTE1BUCApIHx8IGRlZmluZWQoIFVTRV9DTEVBUkNPQVRfTk9STUFMTUFQIClcblx0XHRcdG1hdDMgdlRCTiA9IG1hdDMoIHRhbmdlbnQsIGJpdGFuZ2VudCwgbm9ybWFsICk7XG5cdFx0I2VuZGlmXG5cdCNlbmRpZlxuI2VuZGlmXG52ZWMzIGdlb21ldHJ5Tm9ybWFsID0gbm9ybWFsOyIsbm9ybWFsX2ZyYWdtZW50X21hcHM6IiNpZmRlZiBPQkpFQ1RTUEFDRV9OT1JNQUxNQVBcblx0bm9ybWFsID0gdGV4dHVyZTJEKCBub3JtYWxNYXAsIHZVdiApLnh5eiAqIDIuMCAtIDEuMDtcblx0I2lmZGVmIEZMSVBfU0lERURcblx0XHRub3JtYWwgPSAtIG5vcm1hbDtcblx0I2VuZGlmXG5cdCNpZmRlZiBET1VCTEVfU0lERURcblx0XHRub3JtYWwgPSBub3JtYWwgKiBmYWNlRGlyZWN0aW9uO1xuXHQjZW5kaWZcblx0bm9ybWFsID0gbm9ybWFsaXplKCBub3JtYWxNYXRyaXggKiBub3JtYWwgKTtcbiNlbGlmIGRlZmluZWQoIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAgKVxuXHR2ZWMzIG1hcE4gPSB0ZXh0dXJlMkQoIG5vcm1hbE1hcCwgdlV2ICkueHl6ICogMi4wIC0gMS4wO1xuXHRtYXBOLnh5ICo9IG5vcm1hbFNjYWxlO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHRub3JtYWwgPSBub3JtYWxpemUoIHZUQk4gKiBtYXBOICk7XG5cdCNlbHNlXG5cdFx0bm9ybWFsID0gcGVydHVyYk5vcm1hbDJBcmIoIC12Vmlld1Bvc2l0aW9uLCBub3JtYWwsIG1hcE4sIGZhY2VEaXJlY3Rpb24gKTtcblx0I2VuZGlmXG4jZWxpZiBkZWZpbmVkKCBVU0VfQlVNUE1BUCApXG5cdG5vcm1hbCA9IHBlcnR1cmJOb3JtYWxBcmIoIC12Vmlld1Bvc2l0aW9uLCBub3JtYWwsIGRIZHh5X2Z3ZCgpLCBmYWNlRGlyZWN0aW9uICk7XG4jZW5kaWYiLG5vcm1hbG1hcF9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX05PUk1BTE1BUFxuXHR1bmlmb3JtIHNhbXBsZXIyRCBub3JtYWxNYXA7XG5cdHVuaWZvcm0gdmVjMiBub3JtYWxTY2FsZTtcbiNlbmRpZlxuI2lmZGVmIE9CSkVDVFNQQUNFX05PUk1BTE1BUFxuXHR1bmlmb3JtIG1hdDMgbm9ybWFsTWF0cml4O1xuI2VuZGlmXG4jaWYgISBkZWZpbmVkICggVVNFX1RBTkdFTlQgKSAmJiAoIGRlZmluZWQgKCBUQU5HRU5UU1BBQ0VfTk9STUFMTUFQICkgfHwgZGVmaW5lZCAoIFVTRV9DTEVBUkNPQVRfTk9STUFMTUFQICkgKVxuXHR2ZWMzIHBlcnR1cmJOb3JtYWwyQXJiKCB2ZWMzIGV5ZV9wb3MsIHZlYzMgc3VyZl9ub3JtLCB2ZWMzIG1hcE4sIGZsb2F0IGZhY2VEaXJlY3Rpb24gKSB7XG5cdFx0dmVjMyBxMCA9IHZlYzMoIGRGZHgoIGV5ZV9wb3MueCApLCBkRmR4KCBleWVfcG9zLnkgKSwgZEZkeCggZXllX3Bvcy56ICkgKTtcblx0XHR2ZWMzIHExID0gdmVjMyggZEZkeSggZXllX3Bvcy54ICksIGRGZHkoIGV5ZV9wb3MueSApLCBkRmR5KCBleWVfcG9zLnogKSApO1xuXHRcdHZlYzIgc3QwID0gZEZkeCggdlV2LnN0ICk7XG5cdFx0dmVjMiBzdDEgPSBkRmR5KCB2VXYuc3QgKTtcblx0XHR2ZWMzIE4gPSBzdXJmX25vcm07XG5cdFx0dmVjMyBxMXBlcnAgPSBjcm9zcyggcTEsIE4gKTtcblx0XHR2ZWMzIHEwcGVycCA9IGNyb3NzKCBOLCBxMCApO1xuXHRcdHZlYzMgVCA9IHExcGVycCAqIHN0MC54ICsgcTBwZXJwICogc3QxLng7XG5cdFx0dmVjMyBCID0gcTFwZXJwICogc3QwLnkgKyBxMHBlcnAgKiBzdDEueTtcblx0XHRmbG9hdCBkZXQgPSBtYXgoIGRvdCggVCwgVCApLCBkb3QoIEIsIEIgKSApO1xuXHRcdGZsb2F0IHNjYWxlID0gKCBkZXQgPT0gMC4wICkgPyAwLjAgOiBmYWNlRGlyZWN0aW9uICogaW52ZXJzZXNxcnQoIGRldCApO1xuXHRcdHJldHVybiBub3JtYWxpemUoIFQgKiAoIG1hcE4ueCAqIHNjYWxlICkgKyBCICogKCBtYXBOLnkgKiBzY2FsZSApICsgTiAqIG1hcE4ueiApO1xuXHR9XG4jZW5kaWYiLGNsZWFyY29hdF9ub3JtYWxfZnJhZ21lbnRfYmVnaW46IiNpZmRlZiBDTEVBUkNPQVRcblx0dmVjMyBjbGVhcmNvYXROb3JtYWwgPSBnZW9tZXRyeU5vcm1hbDtcbiNlbmRpZiIsY2xlYXJjb2F0X25vcm1hbF9mcmFnbWVudF9tYXBzOiIjaWZkZWYgVVNFX0NMRUFSQ09BVF9OT1JNQUxNQVBcblx0dmVjMyBjbGVhcmNvYXRNYXBOID0gdGV4dHVyZTJEKCBjbGVhcmNvYXROb3JtYWxNYXAsIHZVdiApLnh5eiAqIDIuMCAtIDEuMDtcblx0Y2xlYXJjb2F0TWFwTi54eSAqPSBjbGVhcmNvYXROb3JtYWxTY2FsZTtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0Y2xlYXJjb2F0Tm9ybWFsID0gbm9ybWFsaXplKCB2VEJOICogY2xlYXJjb2F0TWFwTiApO1xuXHQjZWxzZVxuXHRcdGNsZWFyY29hdE5vcm1hbCA9IHBlcnR1cmJOb3JtYWwyQXJiKCAtIHZWaWV3UG9zaXRpb24sIGNsZWFyY29hdE5vcm1hbCwgY2xlYXJjb2F0TWFwTiwgZmFjZURpcmVjdGlvbiApO1xuXHQjZW5kaWZcbiNlbmRpZiIsY2xlYXJjb2F0X3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfQ0xFQVJDT0FUTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIGNsZWFyY29hdE1hcDtcbiNlbmRpZlxuI2lmZGVmIFVTRV9DTEVBUkNPQVRfUk9VR0hORVNTTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIGNsZWFyY29hdFJvdWdobmVzc01hcDtcbiNlbmRpZlxuI2lmZGVmIFVTRV9DTEVBUkNPQVRfTk9STUFMTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIGNsZWFyY29hdE5vcm1hbE1hcDtcblx0dW5pZm9ybSB2ZWMyIGNsZWFyY29hdE5vcm1hbFNjYWxlO1xuI2VuZGlmIixwYWNraW5nOiJ2ZWMzIHBhY2tOb3JtYWxUb1JHQiggY29uc3QgaW4gdmVjMyBub3JtYWwgKSB7XG5cdHJldHVybiBub3JtYWxpemUoIG5vcm1hbCApICogMC41ICsgMC41O1xufVxudmVjMyB1bnBhY2tSR0JUb05vcm1hbCggY29uc3QgaW4gdmVjMyByZ2IgKSB7XG5cdHJldHVybiAyLjAgKiByZ2IueHl6IC0gMS4wO1xufVxuY29uc3QgZmxvYXQgUGFja1Vwc2NhbGUgPSAyNTYuIC8gMjU1Ljtjb25zdCBmbG9hdCBVbnBhY2tEb3duc2NhbGUgPSAyNTUuIC8gMjU2LjtcbmNvbnN0IHZlYzMgUGFja0ZhY3RvcnMgPSB2ZWMzKCAyNTYuICogMjU2LiAqIDI1Ni4sIDI1Ni4gKiAyNTYuLCAyNTYuICk7XG5jb25zdCB2ZWM0IFVucGFja0ZhY3RvcnMgPSBVbnBhY2tEb3duc2NhbGUgLyB2ZWM0KCBQYWNrRmFjdG9ycywgMS4gKTtcbmNvbnN0IGZsb2F0IFNoaWZ0UmlnaHQ4ID0gMS4gLyAyNTYuO1xudmVjNCBwYWNrRGVwdGhUb1JHQkEoIGNvbnN0IGluIGZsb2F0IHYgKSB7XG5cdHZlYzQgciA9IHZlYzQoIGZyYWN0KCB2ICogUGFja0ZhY3RvcnMgKSwgdiApO1xuXHRyLnl6dyAtPSByLnh5eiAqIFNoaWZ0UmlnaHQ4O1x0cmV0dXJuIHIgKiBQYWNrVXBzY2FsZTtcbn1cbmZsb2F0IHVucGFja1JHQkFUb0RlcHRoKCBjb25zdCBpbiB2ZWM0IHYgKSB7XG5cdHJldHVybiBkb3QoIHYsIFVucGFja0ZhY3RvcnMgKTtcbn1cbnZlYzQgcGFjazJIYWxmVG9SR0JBKCB2ZWMyIHYgKSB7XG5cdHZlYzQgciA9IHZlYzQoIHYueCwgZnJhY3QoIHYueCAqIDI1NS4wICksIHYueSwgZnJhY3QoIHYueSAqIDI1NS4wICkpO1xuXHRyZXR1cm4gdmVjNCggci54IC0gci55IC8gMjU1LjAsIHIueSwgci56IC0gci53IC8gMjU1LjAsIHIudyk7XG59XG52ZWMyIHVucGFja1JHQkFUbzJIYWxmKCB2ZWM0IHYgKSB7XG5cdHJldHVybiB2ZWMyKCB2LnggKyAoIHYueSAvIDI1NS4wICksIHYueiArICggdi53IC8gMjU1LjAgKSApO1xufVxuZmxvYXQgdmlld1pUb09ydGhvZ3JhcGhpY0RlcHRoKCBjb25zdCBpbiBmbG9hdCB2aWV3WiwgY29uc3QgaW4gZmxvYXQgbmVhciwgY29uc3QgaW4gZmxvYXQgZmFyICkge1xuXHRyZXR1cm4gKCB2aWV3WiArIG5lYXIgKSAvICggbmVhciAtIGZhciApO1xufVxuZmxvYXQgb3J0aG9ncmFwaGljRGVwdGhUb1ZpZXdaKCBjb25zdCBpbiBmbG9hdCBsaW5lYXJDbGlwWiwgY29uc3QgaW4gZmxvYXQgbmVhciwgY29uc3QgaW4gZmxvYXQgZmFyICkge1xuXHRyZXR1cm4gbGluZWFyQ2xpcFogKiAoIG5lYXIgLSBmYXIgKSAtIG5lYXI7XG59XG5mbG9hdCB2aWV3WlRvUGVyc3BlY3RpdmVEZXB0aCggY29uc3QgaW4gZmxvYXQgdmlld1osIGNvbnN0IGluIGZsb2F0IG5lYXIsIGNvbnN0IGluIGZsb2F0IGZhciApIHtcblx0cmV0dXJuICgoIG5lYXIgKyB2aWV3WiApICogZmFyICkgLyAoKCBmYXIgLSBuZWFyICkgKiB2aWV3WiApO1xufVxuZmxvYXQgcGVyc3BlY3RpdmVEZXB0aFRvVmlld1ooIGNvbnN0IGluIGZsb2F0IGludkNsaXBaLCBjb25zdCBpbiBmbG9hdCBuZWFyLCBjb25zdCBpbiBmbG9hdCBmYXIgKSB7XG5cdHJldHVybiAoIG5lYXIgKiBmYXIgKSAvICggKCBmYXIgLSBuZWFyICkgKiBpbnZDbGlwWiAtIGZhciApO1xufSIscHJlbXVsdGlwbGllZF9hbHBoYV9mcmFnbWVudDoiI2lmZGVmIFBSRU1VTFRJUExJRURfQUxQSEFcblx0Z2xfRnJhZ0NvbG9yLnJnYiAqPSBnbF9GcmFnQ29sb3IuYTtcbiNlbmRpZiIscHJvamVjdF92ZXJ0ZXg6InZlYzQgbXZQb3NpdGlvbiA9IHZlYzQoIHRyYW5zZm9ybWVkLCAxLjAgKTtcbiNpZmRlZiBVU0VfSU5TVEFOQ0lOR1xuXHRtdlBvc2l0aW9uID0gaW5zdGFuY2VNYXRyaXggKiBtdlBvc2l0aW9uO1xuI2VuZGlmXG5tdlBvc2l0aW9uID0gbW9kZWxWaWV3TWF0cml4ICogbXZQb3NpdGlvbjtcbmdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIG12UG9zaXRpb247IixkaXRoZXJpbmdfZnJhZ21lbnQ6IiNpZmRlZiBESVRIRVJJTkdcblx0Z2xfRnJhZ0NvbG9yLnJnYiA9IGRpdGhlcmluZyggZ2xfRnJhZ0NvbG9yLnJnYiApO1xuI2VuZGlmIixkaXRoZXJpbmdfcGFyc19mcmFnbWVudDoiI2lmZGVmIERJVEhFUklOR1xuXHR2ZWMzIGRpdGhlcmluZyggdmVjMyBjb2xvciApIHtcblx0XHRmbG9hdCBncmlkX3Bvc2l0aW9uID0gcmFuZCggZ2xfRnJhZ0Nvb3JkLnh5ICk7XG5cdFx0dmVjMyBkaXRoZXJfc2hpZnRfUkdCID0gdmVjMyggMC4yNSAvIDI1NS4wLCAtMC4yNSAvIDI1NS4wLCAwLjI1IC8gMjU1LjAgKTtcblx0XHRkaXRoZXJfc2hpZnRfUkdCID0gbWl4KCAyLjAgKiBkaXRoZXJfc2hpZnRfUkdCLCAtMi4wICogZGl0aGVyX3NoaWZ0X1JHQiwgZ3JpZF9wb3NpdGlvbiApO1xuXHRcdHJldHVybiBjb2xvciArIGRpdGhlcl9zaGlmdF9SR0I7XG5cdH1cbiNlbmRpZiIscm91Z2huZXNzbWFwX2ZyYWdtZW50OiJmbG9hdCByb3VnaG5lc3NGYWN0b3IgPSByb3VnaG5lc3M7XG4jaWZkZWYgVVNFX1JPVUdITkVTU01BUFxuXHR2ZWM0IHRleGVsUm91Z2huZXNzID0gdGV4dHVyZTJEKCByb3VnaG5lc3NNYXAsIHZVdiApO1xuXHRyb3VnaG5lc3NGYWN0b3IgKj0gdGV4ZWxSb3VnaG5lc3MuZztcbiNlbmRpZiIscm91Z2huZXNzbWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfUk9VR0hORVNTTUFQXG5cdHVuaWZvcm0gc2FtcGxlcjJEIHJvdWdobmVzc01hcDtcbiNlbmRpZiIsc2hhZG93bWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfU0hBRE9XTUFQXG5cdCNpZiBOVU1fRElSX0xJR0hUX1NIQURPV1MgPiAwXG5cdFx0dW5pZm9ybSBzYW1wbGVyMkQgZGlyZWN0aW9uYWxTaGFkb3dNYXBbIE5VTV9ESVJfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHZhcnlpbmcgdmVjNCB2RGlyZWN0aW9uYWxTaGFkb3dDb29yZFsgTlVNX0RJUl9MSUdIVF9TSEFET1dTIF07XG5cdFx0c3RydWN0IERpcmVjdGlvbmFsTGlnaHRTaGFkb3cge1xuXHRcdFx0ZmxvYXQgc2hhZG93Qmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd05vcm1hbEJpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dSYWRpdXM7XG5cdFx0XHR2ZWMyIHNoYWRvd01hcFNpemU7XG5cdFx0fTtcblx0XHR1bmlmb3JtIERpcmVjdGlvbmFsTGlnaHRTaGFkb3cgZGlyZWN0aW9uYWxMaWdodFNoYWRvd3NbIE5VTV9ESVJfTElHSFRfU0hBRE9XUyBdO1xuXHQjZW5kaWZcblx0I2lmIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgPiAwXG5cdFx0dW5pZm9ybSBzYW1wbGVyMkQgc3BvdFNoYWRvd01hcFsgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHZhcnlpbmcgdmVjNCB2U3BvdFNoYWRvd0Nvb3JkWyBOVU1fU1BPVF9MSUdIVF9TSEFET1dTIF07XG5cdFx0c3RydWN0IFNwb3RMaWdodFNoYWRvdyB7XG5cdFx0XHRmbG9hdCBzaGFkb3dCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93Tm9ybWFsQmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd1JhZGl1cztcblx0XHRcdHZlYzIgc2hhZG93TWFwU2l6ZTtcblx0XHR9O1xuXHRcdHVuaWZvcm0gU3BvdExpZ2h0U2hhZG93IHNwb3RMaWdodFNoYWRvd3NbIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgXTtcblx0I2VuZGlmXG5cdCNpZiBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyA+IDBcblx0XHR1bmlmb3JtIHNhbXBsZXIyRCBwb2ludFNoYWRvd01hcFsgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgXTtcblx0XHR2YXJ5aW5nIHZlYzQgdlBvaW50U2hhZG93Q29vcmRbIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTIF07XG5cdFx0c3RydWN0IFBvaW50TGlnaHRTaGFkb3cge1xuXHRcdFx0ZmxvYXQgc2hhZG93Qmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd05vcm1hbEJpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dSYWRpdXM7XG5cdFx0XHR2ZWMyIHNoYWRvd01hcFNpemU7XG5cdFx0XHRmbG9hdCBzaGFkb3dDYW1lcmFOZWFyO1xuXHRcdFx0ZmxvYXQgc2hhZG93Q2FtZXJhRmFyO1xuXHRcdH07XG5cdFx0dW5pZm9ybSBQb2ludExpZ2h0U2hhZG93IHBvaW50TGlnaHRTaGFkb3dzWyBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyBdO1xuXHQjZW5kaWZcblx0ZmxvYXQgdGV4dHVyZTJEQ29tcGFyZSggc2FtcGxlcjJEIGRlcHRocywgdmVjMiB1diwgZmxvYXQgY29tcGFyZSApIHtcblx0XHRyZXR1cm4gc3RlcCggY29tcGFyZSwgdW5wYWNrUkdCQVRvRGVwdGgoIHRleHR1cmUyRCggZGVwdGhzLCB1diApICkgKTtcblx0fVxuXHR2ZWMyIHRleHR1cmUyRERpc3RyaWJ1dGlvbiggc2FtcGxlcjJEIHNoYWRvdywgdmVjMiB1diApIHtcblx0XHRyZXR1cm4gdW5wYWNrUkdCQVRvMkhhbGYoIHRleHR1cmUyRCggc2hhZG93LCB1diApICk7XG5cdH1cblx0ZmxvYXQgVlNNU2hhZG93IChzYW1wbGVyMkQgc2hhZG93LCB2ZWMyIHV2LCBmbG9hdCBjb21wYXJlICl7XG5cdFx0ZmxvYXQgb2NjbHVzaW9uID0gMS4wO1xuXHRcdHZlYzIgZGlzdHJpYnV0aW9uID0gdGV4dHVyZTJERGlzdHJpYnV0aW9uKCBzaGFkb3csIHV2ICk7XG5cdFx0ZmxvYXQgaGFyZF9zaGFkb3cgPSBzdGVwKCBjb21wYXJlICwgZGlzdHJpYnV0aW9uLnggKTtcblx0XHRpZiAoaGFyZF9zaGFkb3cgIT0gMS4wICkge1xuXHRcdFx0ZmxvYXQgZGlzdGFuY2UgPSBjb21wYXJlIC0gZGlzdHJpYnV0aW9uLnggO1xuXHRcdFx0ZmxvYXQgdmFyaWFuY2UgPSBtYXgoIDAuMDAwMDAsIGRpc3RyaWJ1dGlvbi55ICogZGlzdHJpYnV0aW9uLnkgKTtcblx0XHRcdGZsb2F0IHNvZnRuZXNzX3Byb2JhYmlsaXR5ID0gdmFyaWFuY2UgLyAodmFyaWFuY2UgKyBkaXN0YW5jZSAqIGRpc3RhbmNlICk7XHRcdFx0c29mdG5lc3NfcHJvYmFiaWxpdHkgPSBjbGFtcCggKCBzb2Z0bmVzc19wcm9iYWJpbGl0eSAtIDAuMyApIC8gKCAwLjk1IC0gMC4zICksIDAuMCwgMS4wICk7XHRcdFx0b2NjbHVzaW9uID0gY2xhbXAoIG1heCggaGFyZF9zaGFkb3csIHNvZnRuZXNzX3Byb2JhYmlsaXR5ICksIDAuMCwgMS4wICk7XG5cdFx0fVxuXHRcdHJldHVybiBvY2NsdXNpb247XG5cdH1cblx0ZmxvYXQgZ2V0U2hhZG93KCBzYW1wbGVyMkQgc2hhZG93TWFwLCB2ZWMyIHNoYWRvd01hcFNpemUsIGZsb2F0IHNoYWRvd0JpYXMsIGZsb2F0IHNoYWRvd1JhZGl1cywgdmVjNCBzaGFkb3dDb29yZCApIHtcblx0XHRmbG9hdCBzaGFkb3cgPSAxLjA7XG5cdFx0c2hhZG93Q29vcmQueHl6IC89IHNoYWRvd0Nvb3JkLnc7XG5cdFx0c2hhZG93Q29vcmQueiArPSBzaGFkb3dCaWFzO1xuXHRcdGJ2ZWM0IGluRnJ1c3R1bVZlYyA9IGJ2ZWM0ICggc2hhZG93Q29vcmQueCA+PSAwLjAsIHNoYWRvd0Nvb3JkLnggPD0gMS4wLCBzaGFkb3dDb29yZC55ID49IDAuMCwgc2hhZG93Q29vcmQueSA8PSAxLjAgKTtcblx0XHRib29sIGluRnJ1c3R1bSA9IGFsbCggaW5GcnVzdHVtVmVjICk7XG5cdFx0YnZlYzIgZnJ1c3R1bVRlc3RWZWMgPSBidmVjMiggaW5GcnVzdHVtLCBzaGFkb3dDb29yZC56IDw9IDEuMCApO1xuXHRcdGJvb2wgZnJ1c3R1bVRlc3QgPSBhbGwoIGZydXN0dW1UZXN0VmVjICk7XG5cdFx0aWYgKCBmcnVzdHVtVGVzdCApIHtcblx0XHQjaWYgZGVmaW5lZCggU0hBRE9XTUFQX1RZUEVfUENGIClcblx0XHRcdHZlYzIgdGV4ZWxTaXplID0gdmVjMiggMS4wICkgLyBzaGFkb3dNYXBTaXplO1xuXHRcdFx0ZmxvYXQgZHgwID0gLSB0ZXhlbFNpemUueCAqIHNoYWRvd1JhZGl1cztcblx0XHRcdGZsb2F0IGR5MCA9IC0gdGV4ZWxTaXplLnkgKiBzaGFkb3dSYWRpdXM7XG5cdFx0XHRmbG9hdCBkeDEgPSArIHRleGVsU2l6ZS54ICogc2hhZG93UmFkaXVzO1xuXHRcdFx0ZmxvYXQgZHkxID0gKyB0ZXhlbFNpemUueSAqIHNoYWRvd1JhZGl1cztcblx0XHRcdGZsb2F0IGR4MiA9IGR4MCAvIDIuMDtcblx0XHRcdGZsb2F0IGR5MiA9IGR5MCAvIDIuMDtcblx0XHRcdGZsb2F0IGR4MyA9IGR4MSAvIDIuMDtcblx0XHRcdGZsb2F0IGR5MyA9IGR5MSAvIDIuMDtcblx0XHRcdHNoYWRvdyA9IChcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MCwgZHkwICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCAwLjAsIGR5MCApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgxLCBkeTAgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MiwgZHkyICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCAwLjAsIGR5MiApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgzLCBkeTIgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MCwgMC4wICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDIsIDAuMCApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5LCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggZHgzLCAwLjAgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MSwgMC4wICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDIsIGR5MyApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggMC4wLCBkeTMgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MywgZHkzICksIHNoYWRvd0Nvb3JkLnogKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgc2hhZG93Q29vcmQueHkgKyB2ZWMyKCBkeDAsIGR5MSApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5ICsgdmVjMiggMC4wLCBkeTEgKSwgc2hhZG93Q29vcmQueiApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSArIHZlYzIoIGR4MSwgZHkxICksIHNoYWRvd0Nvb3JkLnogKVxuXHRcdFx0KSAqICggMS4wIC8gMTcuMCApO1xuXHRcdCNlbGlmIGRlZmluZWQoIFNIQURPV01BUF9UWVBFX1BDRl9TT0ZUIClcblx0XHRcdHZlYzIgdGV4ZWxTaXplID0gdmVjMiggMS4wICkgLyBzaGFkb3dNYXBTaXplO1xuXHRcdFx0ZmxvYXQgZHggPSB0ZXhlbFNpemUueDtcblx0XHRcdGZsb2F0IGR5ID0gdGV4ZWxTaXplLnk7XG5cdFx0XHR2ZWMyIHV2ID0gc2hhZG93Q29vcmQueHk7XG5cdFx0XHR2ZWMyIGYgPSBmcmFjdCggdXYgKiBzaGFkb3dNYXBTaXplICsgMC41ICk7XG5cdFx0XHR1diAtPSBmICogdGV4ZWxTaXplO1xuXHRcdFx0c2hhZG93ID0gKFxuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2LCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggZHgsIDAuMCApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggMC4wLCBkeSApLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdGV4ZWxTaXplLCBzaGFkb3dDb29yZC56ICkgK1xuXHRcdFx0XHRtaXgoIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAtZHgsIDAuMCApLCBzaGFkb3dDb29yZC56ICksIFxuXHRcdFx0XHRcdCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggMi4wICogZHgsIDAuMCApLCBzaGFkb3dDb29yZC56ICksXG5cdFx0XHRcdFx0IGYueCApICtcblx0XHRcdFx0bWl4KCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggLWR4LCBkeSApLCBzaGFkb3dDb29yZC56ICksIFxuXHRcdFx0XHRcdCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggMi4wICogZHgsIGR5ICksIHNoYWRvd0Nvb3JkLnogKSxcblx0XHRcdFx0XHQgZi54ICkgK1xuXHRcdFx0XHRtaXgoIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAwLjAsIC1keSApLCBzaGFkb3dDb29yZC56ICksIFxuXHRcdFx0XHRcdCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggMC4wLCAyLjAgKiBkeSApLCBzaGFkb3dDb29yZC56ICksXG5cdFx0XHRcdFx0IGYueSApICtcblx0XHRcdFx0bWl4KCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggZHgsIC1keSApLCBzaGFkb3dDb29yZC56ICksIFxuXHRcdFx0XHRcdCB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHV2ICsgdmVjMiggZHgsIDIuMCAqIGR5ICksIHNoYWRvd0Nvb3JkLnogKSxcblx0XHRcdFx0XHQgZi55ICkgK1xuXHRcdFx0XHRtaXgoIG1peCggdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIC1keCwgLWR5ICksIHNoYWRvd0Nvb3JkLnogKSwgXG5cdFx0XHRcdFx0XHQgIHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgdXYgKyB2ZWMyKCAyLjAgKiBkeCwgLWR5ICksIHNoYWRvd0Nvb3JkLnogKSxcblx0XHRcdFx0XHRcdCAgZi54ICksXG5cdFx0XHRcdFx0IG1peCggdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIC1keCwgMi4wICogZHkgKSwgc2hhZG93Q29vcmQueiApLCBcblx0XHRcdFx0XHRcdCAgdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCB1diArIHZlYzIoIDIuMCAqIGR4LCAyLjAgKiBkeSApLCBzaGFkb3dDb29yZC56ICksXG5cdFx0XHRcdFx0XHQgIGYueCApLFxuXHRcdFx0XHRcdCBmLnkgKVxuXHRcdFx0KSAqICggMS4wIC8gOS4wICk7XG5cdFx0I2VsaWYgZGVmaW5lZCggU0hBRE9XTUFQX1RZUEVfVlNNIClcblx0XHRcdHNoYWRvdyA9IFZTTVNoYWRvdyggc2hhZG93TWFwLCBzaGFkb3dDb29yZC54eSwgc2hhZG93Q29vcmQueiApO1xuXHRcdCNlbHNlXG5cdFx0XHRzaGFkb3cgPSB0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIHNoYWRvd0Nvb3JkLnh5LCBzaGFkb3dDb29yZC56ICk7XG5cdFx0I2VuZGlmXG5cdFx0fVxuXHRcdHJldHVybiBzaGFkb3c7XG5cdH1cblx0dmVjMiBjdWJlVG9VViggdmVjMyB2LCBmbG9hdCB0ZXhlbFNpemVZICkge1xuXHRcdHZlYzMgYWJzViA9IGFicyggdiApO1xuXHRcdGZsb2F0IHNjYWxlVG9DdWJlID0gMS4wIC8gbWF4KCBhYnNWLngsIG1heCggYWJzVi55LCBhYnNWLnogKSApO1xuXHRcdGFic1YgKj0gc2NhbGVUb0N1YmU7XG5cdFx0diAqPSBzY2FsZVRvQ3ViZSAqICggMS4wIC0gMi4wICogdGV4ZWxTaXplWSApO1xuXHRcdHZlYzIgcGxhbmFyID0gdi54eTtcblx0XHRmbG9hdCBhbG1vc3RBVGV4ZWwgPSAxLjUgKiB0ZXhlbFNpemVZO1xuXHRcdGZsb2F0IGFsbW9zdE9uZSA9IDEuMCAtIGFsbW9zdEFUZXhlbDtcblx0XHRpZiAoIGFic1YueiA+PSBhbG1vc3RPbmUgKSB7XG5cdFx0XHRpZiAoIHYueiA+IDAuMCApXG5cdFx0XHRcdHBsYW5hci54ID0gNC4wIC0gdi54O1xuXHRcdH0gZWxzZSBpZiAoIGFic1YueCA+PSBhbG1vc3RPbmUgKSB7XG5cdFx0XHRmbG9hdCBzaWduWCA9IHNpZ24oIHYueCApO1xuXHRcdFx0cGxhbmFyLnggPSB2LnogKiBzaWduWCArIDIuMCAqIHNpZ25YO1xuXHRcdH0gZWxzZSBpZiAoIGFic1YueSA+PSBhbG1vc3RPbmUgKSB7XG5cdFx0XHRmbG9hdCBzaWduWSA9IHNpZ24oIHYueSApO1xuXHRcdFx0cGxhbmFyLnggPSB2LnggKyAyLjAgKiBzaWduWSArIDIuMDtcblx0XHRcdHBsYW5hci55ID0gdi56ICogc2lnblkgLSAyLjA7XG5cdFx0fVxuXHRcdHJldHVybiB2ZWMyKCAwLjEyNSwgMC4yNSApICogcGxhbmFyICsgdmVjMiggMC4zNzUsIDAuNzUgKTtcblx0fVxuXHRmbG9hdCBnZXRQb2ludFNoYWRvdyggc2FtcGxlcjJEIHNoYWRvd01hcCwgdmVjMiBzaGFkb3dNYXBTaXplLCBmbG9hdCBzaGFkb3dCaWFzLCBmbG9hdCBzaGFkb3dSYWRpdXMsIHZlYzQgc2hhZG93Q29vcmQsIGZsb2F0IHNoYWRvd0NhbWVyYU5lYXIsIGZsb2F0IHNoYWRvd0NhbWVyYUZhciApIHtcblx0XHR2ZWMyIHRleGVsU2l6ZSA9IHZlYzIoIDEuMCApIC8gKCBzaGFkb3dNYXBTaXplICogdmVjMiggNC4wLCAyLjAgKSApO1xuXHRcdHZlYzMgbGlnaHRUb1Bvc2l0aW9uID0gc2hhZG93Q29vcmQueHl6O1xuXHRcdGZsb2F0IGRwID0gKCBsZW5ndGgoIGxpZ2h0VG9Qb3NpdGlvbiApIC0gc2hhZG93Q2FtZXJhTmVhciApIC8gKCBzaGFkb3dDYW1lcmFGYXIgLSBzaGFkb3dDYW1lcmFOZWFyICk7XHRcdGRwICs9IHNoYWRvd0JpYXM7XG5cdFx0dmVjMyBiZDNEID0gbm9ybWFsaXplKCBsaWdodFRvUG9zaXRpb24gKTtcblx0XHQjaWYgZGVmaW5lZCggU0hBRE9XTUFQX1RZUEVfUENGICkgfHwgZGVmaW5lZCggU0hBRE9XTUFQX1RZUEVfUENGX1NPRlQgKSB8fCBkZWZpbmVkKCBTSEFET1dNQVBfVFlQRV9WU00gKVxuXHRcdFx0dmVjMiBvZmZzZXQgPSB2ZWMyKCAtIDEsIDEgKSAqIHNoYWRvd1JhZGl1cyAqIHRleGVsU2l6ZS55O1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC54eXksIHRleGVsU2l6ZS55ICksIGRwICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnl5eSwgdGV4ZWxTaXplLnkgKSwgZHAgKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QgKyBvZmZzZXQueHl4LCB0ZXhlbFNpemUueSApLCBkcCApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC55eXgsIHRleGVsU2l6ZS55ICksIGRwICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNELCB0ZXhlbFNpemUueSApLCBkcCApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC54eHksIHRleGVsU2l6ZS55ICksIGRwICkgK1xuXHRcdFx0XHR0ZXh0dXJlMkRDb21wYXJlKCBzaGFkb3dNYXAsIGN1YmVUb1VWKCBiZDNEICsgb2Zmc2V0Lnl4eSwgdGV4ZWxTaXplLnkgKSwgZHAgKSArXG5cdFx0XHRcdHRleHR1cmUyRENvbXBhcmUoIHNoYWRvd01hcCwgY3ViZVRvVVYoIGJkM0QgKyBvZmZzZXQueHh4LCB0ZXhlbFNpemUueSApLCBkcCApICtcblx0XHRcdFx0dGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCArIG9mZnNldC55eHgsIHRleGVsU2l6ZS55ICksIGRwIClcblx0XHRcdCkgKiAoIDEuMCAvIDkuMCApO1xuXHRcdCNlbHNlXG5cdFx0XHRyZXR1cm4gdGV4dHVyZTJEQ29tcGFyZSggc2hhZG93TWFwLCBjdWJlVG9VViggYmQzRCwgdGV4ZWxTaXplLnkgKSwgZHAgKTtcblx0XHQjZW5kaWZcblx0fVxuI2VuZGlmIixzaGFkb3dtYXBfcGFyc192ZXJ0ZXg6IiNpZmRlZiBVU0VfU0hBRE9XTUFQXG5cdCNpZiBOVU1fRElSX0xJR0hUX1NIQURPV1MgPiAwXG5cdFx0dW5pZm9ybSBtYXQ0IGRpcmVjdGlvbmFsU2hhZG93TWF0cml4WyBOVU1fRElSX0xJR0hUX1NIQURPV1MgXTtcblx0XHR2YXJ5aW5nIHZlYzQgdkRpcmVjdGlvbmFsU2hhZG93Q29vcmRbIE5VTV9ESVJfTElHSFRfU0hBRE9XUyBdO1xuXHRcdHN0cnVjdCBEaXJlY3Rpb25hbExpZ2h0U2hhZG93IHtcblx0XHRcdGZsb2F0IHNoYWRvd0JpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dOb3JtYWxCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93UmFkaXVzO1xuXHRcdFx0dmVjMiBzaGFkb3dNYXBTaXplO1xuXHRcdH07XG5cdFx0dW5pZm9ybSBEaXJlY3Rpb25hbExpZ2h0U2hhZG93IGRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzWyBOVU1fRElSX0xJR0hUX1NIQURPV1MgXTtcblx0I2VuZGlmXG5cdCNpZiBOVU1fU1BPVF9MSUdIVF9TSEFET1dTID4gMFxuXHRcdHVuaWZvcm0gbWF0NCBzcG90U2hhZG93TWF0cml4WyBOVU1fU1BPVF9MSUdIVF9TSEFET1dTIF07XG5cdFx0dmFyeWluZyB2ZWM0IHZTcG90U2hhZG93Q29vcmRbIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgXTtcblx0XHRzdHJ1Y3QgU3BvdExpZ2h0U2hhZG93IHtcblx0XHRcdGZsb2F0IHNoYWRvd0JpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dOb3JtYWxCaWFzO1xuXHRcdFx0ZmxvYXQgc2hhZG93UmFkaXVzO1xuXHRcdFx0dmVjMiBzaGFkb3dNYXBTaXplO1xuXHRcdH07XG5cdFx0dW5pZm9ybSBTcG90TGlnaHRTaGFkb3cgc3BvdExpZ2h0U2hhZG93c1sgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyBdO1xuXHQjZW5kaWZcblx0I2lmIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTID4gMFxuXHRcdHVuaWZvcm0gbWF0NCBwb2ludFNoYWRvd01hdHJpeFsgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgXTtcblx0XHR2YXJ5aW5nIHZlYzQgdlBvaW50U2hhZG93Q29vcmRbIE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTIF07XG5cdFx0c3RydWN0IFBvaW50TGlnaHRTaGFkb3cge1xuXHRcdFx0ZmxvYXQgc2hhZG93Qmlhcztcblx0XHRcdGZsb2F0IHNoYWRvd05vcm1hbEJpYXM7XG5cdFx0XHRmbG9hdCBzaGFkb3dSYWRpdXM7XG5cdFx0XHR2ZWMyIHNoYWRvd01hcFNpemU7XG5cdFx0XHRmbG9hdCBzaGFkb3dDYW1lcmFOZWFyO1xuXHRcdFx0ZmxvYXQgc2hhZG93Q2FtZXJhRmFyO1xuXHRcdH07XG5cdFx0dW5pZm9ybSBQb2ludExpZ2h0U2hhZG93IHBvaW50TGlnaHRTaGFkb3dzWyBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyBdO1xuXHQjZW5kaWZcbiNlbmRpZiIsc2hhZG93bWFwX3ZlcnRleDoiI2lmZGVmIFVTRV9TSEFET1dNQVBcblx0I2lmIE5VTV9ESVJfTElHSFRfU0hBRE9XUyA+IDAgfHwgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyA+IDAgfHwgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgPiAwXG5cdFx0dmVjMyBzaGFkb3dXb3JsZE5vcm1hbCA9IGludmVyc2VUcmFuc2Zvcm1EaXJlY3Rpb24oIHRyYW5zZm9ybWVkTm9ybWFsLCB2aWV3TWF0cml4ICk7XG5cdFx0dmVjNCBzaGFkb3dXb3JsZFBvc2l0aW9uO1xuXHQjZW5kaWZcblx0I2lmIE5VTV9ESVJfTElHSFRfU0hBRE9XUyA+IDBcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fRElSX0xJR0hUX1NIQURPV1M7IGkgKysgKSB7XG5cdFx0c2hhZG93V29ybGRQb3NpdGlvbiA9IHdvcmxkUG9zaXRpb24gKyB2ZWM0KCBzaGFkb3dXb3JsZE5vcm1hbCAqIGRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzWyBpIF0uc2hhZG93Tm9ybWFsQmlhcywgMCApO1xuXHRcdHZEaXJlY3Rpb25hbFNoYWRvd0Nvb3JkWyBpIF0gPSBkaXJlY3Rpb25hbFNoYWRvd01hdHJpeFsgaSBdICogc2hhZG93V29ybGRQb3NpdGlvbjtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXHQjZW5kaWZcblx0I2lmIE5VTV9TUE9UX0xJR0hUX1NIQURPV1MgPiAwXG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1NQT1RfTElHSFRfU0hBRE9XUzsgaSArKyApIHtcblx0XHRzaGFkb3dXb3JsZFBvc2l0aW9uID0gd29ybGRQb3NpdGlvbiArIHZlYzQoIHNoYWRvd1dvcmxkTm9ybWFsICogc3BvdExpZ2h0U2hhZG93c1sgaSBdLnNoYWRvd05vcm1hbEJpYXMsIDAgKTtcblx0XHR2U3BvdFNoYWRvd0Nvb3JkWyBpIF0gPSBzcG90U2hhZG93TWF0cml4WyBpIF0gKiBzaGFkb3dXb3JsZFBvc2l0aW9uO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG5cdCNlbmRpZlxuXHQjaWYgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgPiAwXG5cdCNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcblx0Zm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1M7IGkgKysgKSB7XG5cdFx0c2hhZG93V29ybGRQb3NpdGlvbiA9IHdvcmxkUG9zaXRpb24gKyB2ZWM0KCBzaGFkb3dXb3JsZE5vcm1hbCAqIHBvaW50TGlnaHRTaGFkb3dzWyBpIF0uc2hhZG93Tm9ybWFsQmlhcywgMCApO1xuXHRcdHZQb2ludFNoYWRvd0Nvb3JkWyBpIF0gPSBwb2ludFNoYWRvd01hdHJpeFsgaSBdICogc2hhZG93V29ybGRQb3NpdGlvbjtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXHQjZW5kaWZcbiNlbmRpZiIsc2hhZG93bWFza19wYXJzX2ZyYWdtZW50OiJmbG9hdCBnZXRTaGFkb3dNYXNrKCkge1xuXHRmbG9hdCBzaGFkb3cgPSAxLjA7XG5cdCNpZmRlZiBVU0VfU0hBRE9XTUFQXG5cdCNpZiBOVU1fRElSX0xJR0hUX1NIQURPV1MgPiAwXG5cdERpcmVjdGlvbmFsTGlnaHRTaGFkb3cgZGlyZWN0aW9uYWxMaWdodDtcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fRElSX0xJR0hUX1NIQURPV1M7IGkgKysgKSB7XG5cdFx0ZGlyZWN0aW9uYWxMaWdodCA9IGRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzWyBpIF07XG5cdFx0c2hhZG93ICo9IHJlY2VpdmVTaGFkb3cgPyBnZXRTaGFkb3coIGRpcmVjdGlvbmFsU2hhZG93TWFwWyBpIF0sIGRpcmVjdGlvbmFsTGlnaHQuc2hhZG93TWFwU2l6ZSwgZGlyZWN0aW9uYWxMaWdodC5zaGFkb3dCaWFzLCBkaXJlY3Rpb25hbExpZ2h0LnNoYWRvd1JhZGl1cywgdkRpcmVjdGlvbmFsU2hhZG93Q29vcmRbIGkgXSApIDogMS4wO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG5cdCNlbmRpZlxuXHQjaWYgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyA+IDBcblx0U3BvdExpZ2h0U2hhZG93IHNwb3RMaWdodDtcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fU1BPVF9MSUdIVF9TSEFET1dTOyBpICsrICkge1xuXHRcdHNwb3RMaWdodCA9IHNwb3RMaWdodFNoYWRvd3NbIGkgXTtcblx0XHRzaGFkb3cgKj0gcmVjZWl2ZVNoYWRvdyA/IGdldFNoYWRvdyggc3BvdFNoYWRvd01hcFsgaSBdLCBzcG90TGlnaHQuc2hhZG93TWFwU2l6ZSwgc3BvdExpZ2h0LnNoYWRvd0JpYXMsIHNwb3RMaWdodC5zaGFkb3dSYWRpdXMsIHZTcG90U2hhZG93Q29vcmRbIGkgXSApIDogMS4wO1xuXHR9XG5cdCNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG5cdCNlbmRpZlxuXHQjaWYgTlVNX1BPSU5UX0xJR0hUX1NIQURPV1MgPiAwXG5cdFBvaW50TGlnaHRTaGFkb3cgcG9pbnRMaWdodDtcblx0I3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxuXHRmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUzsgaSArKyApIHtcblx0XHRwb2ludExpZ2h0ID0gcG9pbnRMaWdodFNoYWRvd3NbIGkgXTtcblx0XHRzaGFkb3cgKj0gcmVjZWl2ZVNoYWRvdyA/IGdldFBvaW50U2hhZG93KCBwb2ludFNoYWRvd01hcFsgaSBdLCBwb2ludExpZ2h0LnNoYWRvd01hcFNpemUsIHBvaW50TGlnaHQuc2hhZG93QmlhcywgcG9pbnRMaWdodC5zaGFkb3dSYWRpdXMsIHZQb2ludFNoYWRvd0Nvb3JkWyBpIF0sIHBvaW50TGlnaHQuc2hhZG93Q2FtZXJhTmVhciwgcG9pbnRMaWdodC5zaGFkb3dDYW1lcmFGYXIgKSA6IDEuMDtcblx0fVxuXHQjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXHQjZW5kaWZcblx0I2VuZGlmXG5cdHJldHVybiBzaGFkb3c7XG59Iixza2luYmFzZV92ZXJ0ZXg6IiNpZmRlZiBVU0VfU0tJTk5JTkdcblx0bWF0NCBib25lTWF0WCA9IGdldEJvbmVNYXRyaXgoIHNraW5JbmRleC54ICk7XG5cdG1hdDQgYm9uZU1hdFkgPSBnZXRCb25lTWF0cml4KCBza2luSW5kZXgueSApO1xuXHRtYXQ0IGJvbmVNYXRaID0gZ2V0Qm9uZU1hdHJpeCggc2tpbkluZGV4LnogKTtcblx0bWF0NCBib25lTWF0VyA9IGdldEJvbmVNYXRyaXgoIHNraW5JbmRleC53ICk7XG4jZW5kaWYiLHNraW5uaW5nX3BhcnNfdmVydGV4OiIjaWZkZWYgVVNFX1NLSU5OSU5HXG5cdHVuaWZvcm0gbWF0NCBiaW5kTWF0cml4O1xuXHR1bmlmb3JtIG1hdDQgYmluZE1hdHJpeEludmVyc2U7XG5cdCNpZmRlZiBCT05FX1RFWFRVUkVcblx0XHR1bmlmb3JtIGhpZ2hwIHNhbXBsZXIyRCBib25lVGV4dHVyZTtcblx0XHR1bmlmb3JtIGludCBib25lVGV4dHVyZVNpemU7XG5cdFx0bWF0NCBnZXRCb25lTWF0cml4KCBjb25zdCBpbiBmbG9hdCBpICkge1xuXHRcdFx0ZmxvYXQgaiA9IGkgKiA0LjA7XG5cdFx0XHRmbG9hdCB4ID0gbW9kKCBqLCBmbG9hdCggYm9uZVRleHR1cmVTaXplICkgKTtcblx0XHRcdGZsb2F0IHkgPSBmbG9vciggaiAvIGZsb2F0KCBib25lVGV4dHVyZVNpemUgKSApO1xuXHRcdFx0ZmxvYXQgZHggPSAxLjAgLyBmbG9hdCggYm9uZVRleHR1cmVTaXplICk7XG5cdFx0XHRmbG9hdCBkeSA9IDEuMCAvIGZsb2F0KCBib25lVGV4dHVyZVNpemUgKTtcblx0XHRcdHkgPSBkeSAqICggeSArIDAuNSApO1xuXHRcdFx0dmVjNCB2MSA9IHRleHR1cmUyRCggYm9uZVRleHR1cmUsIHZlYzIoIGR4ICogKCB4ICsgMC41ICksIHkgKSApO1xuXHRcdFx0dmVjNCB2MiA9IHRleHR1cmUyRCggYm9uZVRleHR1cmUsIHZlYzIoIGR4ICogKCB4ICsgMS41ICksIHkgKSApO1xuXHRcdFx0dmVjNCB2MyA9IHRleHR1cmUyRCggYm9uZVRleHR1cmUsIHZlYzIoIGR4ICogKCB4ICsgMi41ICksIHkgKSApO1xuXHRcdFx0dmVjNCB2NCA9IHRleHR1cmUyRCggYm9uZVRleHR1cmUsIHZlYzIoIGR4ICogKCB4ICsgMy41ICksIHkgKSApO1xuXHRcdFx0bWF0NCBib25lID0gbWF0NCggdjEsIHYyLCB2MywgdjQgKTtcblx0XHRcdHJldHVybiBib25lO1xuXHRcdH1cblx0I2Vsc2Vcblx0XHR1bmlmb3JtIG1hdDQgYm9uZU1hdHJpY2VzWyBNQVhfQk9ORVMgXTtcblx0XHRtYXQ0IGdldEJvbmVNYXRyaXgoIGNvbnN0IGluIGZsb2F0IGkgKSB7XG5cdFx0XHRtYXQ0IGJvbmUgPSBib25lTWF0cmljZXNbIGludChpKSBdO1xuXHRcdFx0cmV0dXJuIGJvbmU7XG5cdFx0fVxuXHQjZW5kaWZcbiNlbmRpZiIsc2tpbm5pbmdfdmVydGV4OiIjaWZkZWYgVVNFX1NLSU5OSU5HXG5cdHZlYzQgc2tpblZlcnRleCA9IGJpbmRNYXRyaXggKiB2ZWM0KCB0cmFuc2Zvcm1lZCwgMS4wICk7XG5cdHZlYzQgc2tpbm5lZCA9IHZlYzQoIDAuMCApO1xuXHRza2lubmVkICs9IGJvbmVNYXRYICogc2tpblZlcnRleCAqIHNraW5XZWlnaHQueDtcblx0c2tpbm5lZCArPSBib25lTWF0WSAqIHNraW5WZXJ0ZXggKiBza2luV2VpZ2h0Lnk7XG5cdHNraW5uZWQgKz0gYm9uZU1hdFogKiBza2luVmVydGV4ICogc2tpbldlaWdodC56O1xuXHRza2lubmVkICs9IGJvbmVNYXRXICogc2tpblZlcnRleCAqIHNraW5XZWlnaHQudztcblx0dHJhbnNmb3JtZWQgPSAoIGJpbmRNYXRyaXhJbnZlcnNlICogc2tpbm5lZCApLnh5ejtcbiNlbmRpZiIsc2tpbm5vcm1hbF92ZXJ0ZXg6IiNpZmRlZiBVU0VfU0tJTk5JTkdcblx0bWF0NCBza2luTWF0cml4ID0gbWF0NCggMC4wICk7XG5cdHNraW5NYXRyaXggKz0gc2tpbldlaWdodC54ICogYm9uZU1hdFg7XG5cdHNraW5NYXRyaXggKz0gc2tpbldlaWdodC55ICogYm9uZU1hdFk7XG5cdHNraW5NYXRyaXggKz0gc2tpbldlaWdodC56ICogYm9uZU1hdFo7XG5cdHNraW5NYXRyaXggKz0gc2tpbldlaWdodC53ICogYm9uZU1hdFc7XG5cdHNraW5NYXRyaXggPSBiaW5kTWF0cml4SW52ZXJzZSAqIHNraW5NYXRyaXggKiBiaW5kTWF0cml4O1xuXHRvYmplY3ROb3JtYWwgPSB2ZWM0KCBza2luTWF0cml4ICogdmVjNCggb2JqZWN0Tm9ybWFsLCAwLjAgKSApLnh5ejtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0b2JqZWN0VGFuZ2VudCA9IHZlYzQoIHNraW5NYXRyaXggKiB2ZWM0KCBvYmplY3RUYW5nZW50LCAwLjAgKSApLnh5ejtcblx0I2VuZGlmXG4jZW5kaWYiLHNwZWN1bGFybWFwX2ZyYWdtZW50OiJmbG9hdCBzcGVjdWxhclN0cmVuZ3RoO1xuI2lmZGVmIFVTRV9TUEVDVUxBUk1BUFxuXHR2ZWM0IHRleGVsU3BlY3VsYXIgPSB0ZXh0dXJlMkQoIHNwZWN1bGFyTWFwLCB2VXYgKTtcblx0c3BlY3VsYXJTdHJlbmd0aCA9IHRleGVsU3BlY3VsYXIucjtcbiNlbHNlXG5cdHNwZWN1bGFyU3RyZW5ndGggPSAxLjA7XG4jZW5kaWYiLHNwZWN1bGFybWFwX3BhcnNfZnJhZ21lbnQ6IiNpZmRlZiBVU0VfU1BFQ1VMQVJNQVBcblx0dW5pZm9ybSBzYW1wbGVyMkQgc3BlY3VsYXJNYXA7XG4jZW5kaWYiLHRvbmVtYXBwaW5nX2ZyYWdtZW50OiIjaWYgZGVmaW5lZCggVE9ORV9NQVBQSU5HIClcblx0Z2xfRnJhZ0NvbG9yLnJnYiA9IHRvbmVNYXBwaW5nKCBnbF9GcmFnQ29sb3IucmdiICk7XG4jZW5kaWYiLHRvbmVtYXBwaW5nX3BhcnNfZnJhZ21lbnQ6IiNpZm5kZWYgc2F0dXJhdGVcbiNkZWZpbmUgc2F0dXJhdGUoYSkgY2xhbXAoIGEsIDAuMCwgMS4wIClcbiNlbmRpZlxudW5pZm9ybSBmbG9hdCB0b25lTWFwcGluZ0V4cG9zdXJlO1xudmVjMyBMaW5lYXJUb25lTWFwcGluZyggdmVjMyBjb2xvciApIHtcblx0cmV0dXJuIHRvbmVNYXBwaW5nRXhwb3N1cmUgKiBjb2xvcjtcbn1cbnZlYzMgUmVpbmhhcmRUb25lTWFwcGluZyggdmVjMyBjb2xvciApIHtcblx0Y29sb3IgKj0gdG9uZU1hcHBpbmdFeHBvc3VyZTtcblx0cmV0dXJuIHNhdHVyYXRlKCBjb2xvciAvICggdmVjMyggMS4wICkgKyBjb2xvciApICk7XG59XG52ZWMzIE9wdGltaXplZENpbmVvblRvbmVNYXBwaW5nKCB2ZWMzIGNvbG9yICkge1xuXHRjb2xvciAqPSB0b25lTWFwcGluZ0V4cG9zdXJlO1xuXHRjb2xvciA9IG1heCggdmVjMyggMC4wICksIGNvbG9yIC0gMC4wMDQgKTtcblx0cmV0dXJuIHBvdyggKCBjb2xvciAqICggNi4yICogY29sb3IgKyAwLjUgKSApIC8gKCBjb2xvciAqICggNi4yICogY29sb3IgKyAxLjcgKSArIDAuMDYgKSwgdmVjMyggMi4yICkgKTtcbn1cbnZlYzMgUlJUQW5kT0RURml0KCB2ZWMzIHYgKSB7XG5cdHZlYzMgYSA9IHYgKiAoIHYgKyAwLjAyNDU3ODYgKSAtIDAuMDAwMDkwNTM3O1xuXHR2ZWMzIGIgPSB2ICogKCAwLjk4MzcyOSAqIHYgKyAwLjQzMjk1MTAgKSArIDAuMjM4MDgxO1xuXHRyZXR1cm4gYSAvIGI7XG59XG52ZWMzIEFDRVNGaWxtaWNUb25lTWFwcGluZyggdmVjMyBjb2xvciApIHtcblx0Y29uc3QgbWF0MyBBQ0VTSW5wdXRNYXQgPSBtYXQzKFxuXHRcdHZlYzMoIDAuNTk3MTksIDAuMDc2MDAsIDAuMDI4NDAgKSxcdFx0dmVjMyggMC4zNTQ1OCwgMC45MDgzNCwgMC4xMzM4MyApLFxuXHRcdHZlYzMoIDAuMDQ4MjMsIDAuMDE1NjYsIDAuODM3NzcgKVxuXHQpO1xuXHRjb25zdCBtYXQzIEFDRVNPdXRwdXRNYXQgPSBtYXQzKFxuXHRcdHZlYzMoICAxLjYwNDc1LCAtMC4xMDIwOCwgLTAuMDAzMjcgKSxcdFx0dmVjMyggLTAuNTMxMDgsICAxLjEwODEzLCAtMC4wNzI3NiApLFxuXHRcdHZlYzMoIC0wLjA3MzY3LCAtMC4wMDYwNSwgIDEuMDc2MDIgKVxuXHQpO1xuXHRjb2xvciAqPSB0b25lTWFwcGluZ0V4cG9zdXJlIC8gMC42O1xuXHRjb2xvciA9IEFDRVNJbnB1dE1hdCAqIGNvbG9yO1xuXHRjb2xvciA9IFJSVEFuZE9EVEZpdCggY29sb3IgKTtcblx0Y29sb3IgPSBBQ0VTT3V0cHV0TWF0ICogY29sb3I7XG5cdHJldHVybiBzYXR1cmF0ZSggY29sb3IgKTtcbn1cbnZlYzMgQ3VzdG9tVG9uZU1hcHBpbmcoIHZlYzMgY29sb3IgKSB7IHJldHVybiBjb2xvcjsgfSIsdHJhbnNtaXNzaW9uX2ZyYWdtZW50OiIjaWZkZWYgVVNFX1RSQU5TTUlTU0lPTlxuXHRmbG9hdCB0cmFuc21pc3Npb25GYWN0b3IgPSB0cmFuc21pc3Npb247XG5cdGZsb2F0IHRoaWNrbmVzc0ZhY3RvciA9IHRoaWNrbmVzcztcblx0I2lmZGVmIFVTRV9UUkFOU01JU1NJT05NQVBcblx0XHR0cmFuc21pc3Npb25GYWN0b3IgKj0gdGV4dHVyZTJEKCB0cmFuc21pc3Npb25NYXAsIHZVdiApLnI7XG5cdCNlbmRpZlxuXHQjaWZkZWYgVVNFX1RISUNLTkVTU01BUFxuXHRcdHRoaWNrbmVzc0ZhY3RvciAqPSB0ZXh0dXJlMkQoIHRoaWNrbmVzc01hcCwgdlV2ICkuZztcblx0I2VuZGlmXG5cdHZlYzMgcG9zID0gdldvcmxkUG9zaXRpb24ueHl6IC8gdldvcmxkUG9zaXRpb24udztcblx0dmVjMyB2ID0gbm9ybWFsaXplKCBjYW1lcmFQb3NpdGlvbiAtIHBvcyApO1xuXHR2ZWMzIG4gPSBpbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uKCBub3JtYWwsIHZpZXdNYXRyaXggKTtcblx0ZmxvYXQgaW9yID0gKCAxLjAgKyAwLjQgKiByZWZsZWN0aXZpdHkgKSAvICggMS4wIC0gMC40ICogcmVmbGVjdGl2aXR5ICk7XG5cdHZlYzMgdHJhbnNtaXNzaW9uID0gdHJhbnNtaXNzaW9uRmFjdG9yICogZ2V0SUJMVm9sdW1lUmVmcmFjdGlvbihcblx0XHRuLCB2LCByb3VnaG5lc3NGYWN0b3IsIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciwgbWF0ZXJpYWwuc3BlY3VsYXJDb2xvcixcblx0XHRwb3MsIG1vZGVsTWF0cml4LCB2aWV3TWF0cml4LCBwcm9qZWN0aW9uTWF0cml4LCBpb3IsIHRoaWNrbmVzc0ZhY3Rvcixcblx0XHRhdHRlbnVhdGlvblRpbnQsIGF0dGVudWF0aW9uRGlzdGFuY2UgKTtcblx0dG90YWxEaWZmdXNlID0gbWl4KCB0b3RhbERpZmZ1c2UsIHRyYW5zbWlzc2lvbiwgdHJhbnNtaXNzaW9uRmFjdG9yICk7XG4jZW5kaWYiLHRyYW5zbWlzc2lvbl9wYXJzX2ZyYWdtZW50OiIjaWZkZWYgVVNFX1RSQU5TTUlTU0lPTlxuXHQjaWZkZWYgVVNFX1RSQU5TTUlTU0lPTk1BUFxuXHRcdHVuaWZvcm0gc2FtcGxlcjJEIHRyYW5zbWlzc2lvbk1hcDtcblx0I2VuZGlmXG5cdCNpZmRlZiBVU0VfVEhJQ0tORVNTTUFQXG5cdFx0dW5pZm9ybSBzYW1wbGVyMkQgdGhpY2tuZXNzTWFwO1xuXHQjZW5kaWZcblx0dW5pZm9ybSB2ZWMyIHRyYW5zbWlzc2lvblNhbXBsZXJTaXplO1xuXHR1bmlmb3JtIHNhbXBsZXIyRCB0cmFuc21pc3Npb25TYW1wbGVyTWFwO1xuXHR1bmlmb3JtIG1hdDQgbW9kZWxNYXRyaXg7XG5cdHVuaWZvcm0gbWF0NCBwcm9qZWN0aW9uTWF0cml4O1xuXHR2YXJ5aW5nIHZlYzQgdldvcmxkUG9zaXRpb247XG5cdHZlYzMgZ2V0Vm9sdW1lVHJhbnNtaXNzaW9uUmF5KHZlYzMgbiwgdmVjMyB2LCBmbG9hdCB0aGlja25lc3MsIGZsb2F0IGlvciwgbWF0NCBtb2RlbE1hdHJpeCkge1xuXHRcdHZlYzMgcmVmcmFjdGlvblZlY3RvciA9IHJlZnJhY3QoLXYsIG5vcm1hbGl6ZShuKSwgMS4wIC8gaW9yKTtcblx0XHR2ZWMzIG1vZGVsU2NhbGU7XG5cdFx0bW9kZWxTY2FsZS54ID0gbGVuZ3RoKHZlYzMobW9kZWxNYXRyaXhbMF0ueHl6KSk7XG5cdFx0bW9kZWxTY2FsZS55ID0gbGVuZ3RoKHZlYzMobW9kZWxNYXRyaXhbMV0ueHl6KSk7XG5cdFx0bW9kZWxTY2FsZS56ID0gbGVuZ3RoKHZlYzMobW9kZWxNYXRyaXhbMl0ueHl6KSk7XG5cdFx0cmV0dXJuIG5vcm1hbGl6ZShyZWZyYWN0aW9uVmVjdG9yKSAqIHRoaWNrbmVzcyAqIG1vZGVsU2NhbGU7XG5cdH1cblx0ZmxvYXQgYXBwbHlJb3JUb1JvdWdobmVzcyhmbG9hdCByb3VnaG5lc3MsIGZsb2F0IGlvcikge1xuXHRcdHJldHVybiByb3VnaG5lc3MgKiBjbGFtcChpb3IgKiAyLjAgLSAyLjAsIDAuMCwgMS4wKTtcblx0fVxuXHR2ZWMzIGdldFRyYW5zbWlzc2lvblNhbXBsZSh2ZWMyIGZyYWdDb29yZCwgZmxvYXQgcm91Z2huZXNzLCBmbG9hdCBpb3IpIHtcblx0XHRmbG9hdCBmcmFtZWJ1ZmZlckxvZCA9IGxvZzIodHJhbnNtaXNzaW9uU2FtcGxlclNpemUueCkgKiBhcHBseUlvclRvUm91Z2huZXNzKHJvdWdobmVzcywgaW9yKTtcblx0XHRyZXR1cm4gdGV4dHVyZTJETG9kRVhUKHRyYW5zbWlzc2lvblNhbXBsZXJNYXAsIGZyYWdDb29yZC54eSwgZnJhbWVidWZmZXJMb2QpLnJnYjtcblx0fVxuXHR2ZWMzIGFwcGx5Vm9sdW1lQXR0ZW51YXRpb24odmVjMyByYWRpYW5jZSwgZmxvYXQgdHJhbnNtaXNzaW9uRGlzdGFuY2UsIHZlYzMgYXR0ZW51YXRpb25Db2xvciwgZmxvYXQgYXR0ZW51YXRpb25EaXN0YW5jZSkge1xuXHRcdGlmIChhdHRlbnVhdGlvbkRpc3RhbmNlID09IDAuMCkge1xuXHRcdFx0cmV0dXJuIHJhZGlhbmNlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR2ZWMzIGF0dGVudWF0aW9uQ29lZmZpY2llbnQgPSAtbG9nKGF0dGVudWF0aW9uQ29sb3IpIC8gYXR0ZW51YXRpb25EaXN0YW5jZTtcblx0XHRcdHZlYzMgdHJhbnNtaXR0YW5jZSA9IGV4cCgtYXR0ZW51YXRpb25Db2VmZmljaWVudCAqIHRyYW5zbWlzc2lvbkRpc3RhbmNlKTtcdFx0XHRyZXR1cm4gdHJhbnNtaXR0YW5jZSAqIHJhZGlhbmNlO1xuXHRcdH1cblx0fVxuXHR2ZWMzIGdldElCTFZvbHVtZVJlZnJhY3Rpb24odmVjMyBuLCB2ZWMzIHYsIGZsb2F0IHBlcmNlcHR1YWxSb3VnaG5lc3MsIHZlYzMgYmFzZUNvbG9yLCB2ZWMzIHNwZWN1bGFyQ29sb3IsXG5cdFx0dmVjMyBwb3NpdGlvbiwgbWF0NCBtb2RlbE1hdHJpeCwgbWF0NCB2aWV3TWF0cml4LCBtYXQ0IHByb2pNYXRyaXgsIGZsb2F0IGlvciwgZmxvYXQgdGhpY2tuZXNzLFxuXHRcdHZlYzMgYXR0ZW51YXRpb25Db2xvciwgZmxvYXQgYXR0ZW51YXRpb25EaXN0YW5jZSkge1xuXHRcdHZlYzMgdHJhbnNtaXNzaW9uUmF5ID0gZ2V0Vm9sdW1lVHJhbnNtaXNzaW9uUmF5KG4sIHYsIHRoaWNrbmVzcywgaW9yLCBtb2RlbE1hdHJpeCk7XG5cdFx0dmVjMyByZWZyYWN0ZWRSYXlFeGl0ID0gcG9zaXRpb24gKyB0cmFuc21pc3Npb25SYXk7XG5cdFx0dmVjNCBuZGNQb3MgPSBwcm9qTWF0cml4ICogdmlld01hdHJpeCAqIHZlYzQocmVmcmFjdGVkUmF5RXhpdCwgMS4wKTtcblx0XHR2ZWMyIHJlZnJhY3Rpb25Db29yZHMgPSBuZGNQb3MueHkgLyBuZGNQb3Mudztcblx0XHRyZWZyYWN0aW9uQ29vcmRzICs9IDEuMDtcblx0XHRyZWZyYWN0aW9uQ29vcmRzIC89IDIuMDtcblx0XHR2ZWMzIHRyYW5zbWl0dGVkTGlnaHQgPSBnZXRUcmFuc21pc3Npb25TYW1wbGUocmVmcmFjdGlvbkNvb3JkcywgcGVyY2VwdHVhbFJvdWdobmVzcywgaW9yKTtcblx0XHR2ZWMzIGF0dGVudWF0ZWRDb2xvciA9IGFwcGx5Vm9sdW1lQXR0ZW51YXRpb24odHJhbnNtaXR0ZWRMaWdodCwgbGVuZ3RoKHRyYW5zbWlzc2lvblJheSksIGF0dGVudWF0aW9uQ29sb3IsIGF0dGVudWF0aW9uRGlzdGFuY2UpO1xuXHRcdHJldHVybiAoMS4wIC0gc3BlY3VsYXJDb2xvcikgKiBhdHRlbnVhdGVkQ29sb3IgKiBiYXNlQ29sb3I7XG5cdH1cbiNlbmRpZiIsdXZfcGFyc19mcmFnbWVudDoiI2lmICggZGVmaW5lZCggVVNFX1VWICkgJiYgISBkZWZpbmVkKCBVVlNfVkVSVEVYX09OTFkgKSApXG5cdHZhcnlpbmcgdmVjMiB2VXY7XG4jZW5kaWYiLHV2X3BhcnNfdmVydGV4OiIjaWZkZWYgVVNFX1VWXG5cdCNpZmRlZiBVVlNfVkVSVEVYX09OTFlcblx0XHR2ZWMyIHZVdjtcblx0I2Vsc2Vcblx0XHR2YXJ5aW5nIHZlYzIgdlV2O1xuXHQjZW5kaWZcblx0dW5pZm9ybSBtYXQzIHV2VHJhbnNmb3JtO1xuI2VuZGlmIix1dl92ZXJ0ZXg6IiNpZmRlZiBVU0VfVVZcblx0dlV2ID0gKCB1dlRyYW5zZm9ybSAqIHZlYzMoIHV2LCAxICkgKS54eTtcbiNlbmRpZiIsdXYyX3BhcnNfZnJhZ21lbnQ6IiNpZiBkZWZpbmVkKCBVU0VfTElHSFRNQVAgKSB8fCBkZWZpbmVkKCBVU0VfQU9NQVAgKVxuXHR2YXJ5aW5nIHZlYzIgdlV2MjtcbiNlbmRpZiIsdXYyX3BhcnNfdmVydGV4OiIjaWYgZGVmaW5lZCggVVNFX0xJR0hUTUFQICkgfHwgZGVmaW5lZCggVVNFX0FPTUFQIClcblx0YXR0cmlidXRlIHZlYzIgdXYyO1xuXHR2YXJ5aW5nIHZlYzIgdlV2Mjtcblx0dW5pZm9ybSBtYXQzIHV2MlRyYW5zZm9ybTtcbiNlbmRpZiIsdXYyX3ZlcnRleDoiI2lmIGRlZmluZWQoIFVTRV9MSUdIVE1BUCApIHx8IGRlZmluZWQoIFVTRV9BT01BUCApXG5cdHZVdjIgPSAoIHV2MlRyYW5zZm9ybSAqIHZlYzMoIHV2MiwgMSApICkueHk7XG4jZW5kaWYiLHdvcmxkcG9zX3ZlcnRleDoiI2lmIGRlZmluZWQoIFVTRV9FTlZNQVAgKSB8fCBkZWZpbmVkKCBESVNUQU5DRSApIHx8IGRlZmluZWQgKCBVU0VfU0hBRE9XTUFQICkgfHwgZGVmaW5lZCAoIFVTRV9UUkFOU01JU1NJT04gKVxuXHR2ZWM0IHdvcmxkUG9zaXRpb24gPSB2ZWM0KCB0cmFuc2Zvcm1lZCwgMS4wICk7XG5cdCNpZmRlZiBVU0VfSU5TVEFOQ0lOR1xuXHRcdHdvcmxkUG9zaXRpb24gPSBpbnN0YW5jZU1hdHJpeCAqIHdvcmxkUG9zaXRpb247XG5cdCNlbmRpZlxuXHR3b3JsZFBvc2l0aW9uID0gbW9kZWxNYXRyaXggKiB3b3JsZFBvc2l0aW9uO1xuI2VuZGlmIixiYWNrZ3JvdW5kX2ZyYWc6InVuaWZvcm0gc2FtcGxlcjJEIHQyRDtcbnZhcnlpbmcgdmVjMiB2VXY7XG52b2lkIG1haW4oKSB7XG5cdHZlYzQgdGV4Q29sb3IgPSB0ZXh0dXJlMkQoIHQyRCwgdlV2ICk7XG5cdGdsX0ZyYWdDb2xvciA9IG1hcFRleGVsVG9MaW5lYXIoIHRleENvbG9yICk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cbn0iLGJhY2tncm91bmRfdmVydDoidmFyeWluZyB2ZWMyIHZVdjtcbnVuaWZvcm0gbWF0MyB1dlRyYW5zZm9ybTtcbnZvaWQgbWFpbigpIHtcblx0dlV2ID0gKCB1dlRyYW5zZm9ybSAqIHZlYzMoIHV2LCAxICkgKS54eTtcblx0Z2xfUG9zaXRpb24gPSB2ZWM0KCBwb3NpdGlvbi54eSwgMS4wLCAxLjAgKTtcbn0iLGN1YmVfZnJhZzoiI2luY2x1ZGUgPGVudm1hcF9jb21tb25fcGFyc19mcmFnbWVudD5cbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbnZhcnlpbmcgdmVjMyB2V29ybGREaXJlY3Rpb247XG4jaW5jbHVkZSA8Y3ViZV91dl9yZWZsZWN0aW9uX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHR2ZWMzIHZSZWZsZWN0ID0gdldvcmxkRGlyZWN0aW9uO1xuXHQjaW5jbHVkZSA8ZW52bWFwX2ZyYWdtZW50PlxuXHRnbF9GcmFnQ29sb3IgPSBlbnZDb2xvcjtcblx0Z2xfRnJhZ0NvbG9yLmEgKj0gb3BhY2l0eTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxufSIsY3ViZV92ZXJ0OiJ2YXJ5aW5nIHZlYzMgdldvcmxkRGlyZWN0aW9uO1xuI2luY2x1ZGUgPGNvbW1vbj5cbnZvaWQgbWFpbigpIHtcblx0dldvcmxkRGlyZWN0aW9uID0gdHJhbnNmb3JtRGlyZWN0aW9uKCBwb3NpdGlvbiwgbW9kZWxNYXRyaXggKTtcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHRnbF9Qb3NpdGlvbi56ID0gZ2xfUG9zaXRpb24udztcbn0iLGRlcHRoX2ZyYWc6IiNpZiBERVBUSF9QQUNLSU5HID09IDMyMDBcblx0dW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHBhY2tpbmc+XG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52YXJ5aW5nIHZlYzIgdkhpZ2hQcmVjaXNpb25aVztcbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCAxLjAgKTtcblx0I2lmIERFUFRIX1BBQ0tJTkcgPT0gMzIwMFxuXHRcdGRpZmZ1c2VDb2xvci5hID0gb3BhY2l0eTtcblx0I2VuZGlmXG5cdCNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxuXHRmbG9hdCBmcmFnQ29vcmRaID0gMC41ICogdkhpZ2hQcmVjaXNpb25aV1swXSAvIHZIaWdoUHJlY2lzaW9uWldbMV0gKyAwLjU7XG5cdCNpZiBERVBUSF9QQUNLSU5HID09IDMyMDBcblx0XHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCB2ZWMzKCAxLjAgLSBmcmFnQ29vcmRaICksIG9wYWNpdHkgKTtcblx0I2VsaWYgREVQVEhfUEFDS0lORyA9PSAzMjAxXG5cdFx0Z2xfRnJhZ0NvbG9yID0gcGFja0RlcHRoVG9SR0JBKCBmcmFnQ29vcmRaICk7XG5cdCNlbmRpZlxufSIsZGVwdGhfdmVydDoiI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8c2tpbm5pbmdfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4PlxudmFyeWluZyB2ZWMyIHZIaWdoUHJlY2lzaW9uWlc7XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDx1dl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdCNpZmRlZiBVU0VfRElTUExBQ0VNRU5UTUFQXG5cdFx0I2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD5cblx0XHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHRcdCNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD5cblx0I2VuZGlmXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHR2SGlnaFByZWNpc2lvblpXID0gZ2xfUG9zaXRpb24uenc7XG59IixkaXN0YW5jZVJHQkFfZnJhZzoiI2RlZmluZSBESVNUQU5DRVxudW5pZm9ybSB2ZWMzIHJlZmVyZW5jZVBvc2l0aW9uO1xudW5pZm9ybSBmbG9hdCBuZWFyRGlzdGFuY2U7XG51bmlmb3JtIGZsb2F0IGZhckRpc3RhbmNlO1xudmFyeWluZyB2ZWMzIHZXb3JsZFBvc2l0aW9uO1xuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxwYWNraW5nPlxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbiAoKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggMS4wICk7XG5cdCNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cblx0ZmxvYXQgZGlzdCA9IGxlbmd0aCggdldvcmxkUG9zaXRpb24gLSByZWZlcmVuY2VQb3NpdGlvbiApO1xuXHRkaXN0ID0gKCBkaXN0IC0gbmVhckRpc3RhbmNlICkgLyAoIGZhckRpc3RhbmNlIC0gbmVhckRpc3RhbmNlICk7XG5cdGRpc3QgPSBzYXR1cmF0ZSggZGlzdCApO1xuXHRnbF9GcmFnQ29sb3IgPSBwYWNrRGVwdGhUb1JHQkEoIGRpc3QgKTtcbn0iLGRpc3RhbmNlUkdCQV92ZXJ0OiIjZGVmaW5lIERJU1RBTkNFXG52YXJ5aW5nIHZlYzMgdldvcmxkUG9zaXRpb247XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxza2lubmluZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDx1dl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2luYmFzZV92ZXJ0ZXg+XG5cdCNpZmRlZiBVU0VfRElTUExBQ0VNRU5UTUFQXG5cdFx0I2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD5cblx0XHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHRcdCNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD5cblx0I2VuZGlmXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHR2V29ybGRQb3NpdGlvbiA9IHdvcmxkUG9zaXRpb24ueHl6O1xufSIsZXF1aXJlY3RfZnJhZzoidW5pZm9ybSBzYW1wbGVyMkQgdEVxdWlyZWN0O1xudmFyeWluZyB2ZWMzIHZXb3JsZERpcmVjdGlvbjtcbiNpbmNsdWRlIDxjb21tb24+XG52b2lkIG1haW4oKSB7XG5cdHZlYzMgZGlyZWN0aW9uID0gbm9ybWFsaXplKCB2V29ybGREaXJlY3Rpb24gKTtcblx0dmVjMiBzYW1wbGVVViA9IGVxdWlyZWN0VXYoIGRpcmVjdGlvbiApO1xuXHR2ZWM0IHRleENvbG9yID0gdGV4dHVyZTJEKCB0RXF1aXJlY3QsIHNhbXBsZVVWICk7XG5cdGdsX0ZyYWdDb2xvciA9IG1hcFRleGVsVG9MaW5lYXIoIHRleENvbG9yICk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cbn0iLGVxdWlyZWN0X3ZlcnQ6InZhcnlpbmcgdmVjMyB2V29ybGREaXJlY3Rpb247XG4jaW5jbHVkZSA8Y29tbW9uPlxudm9pZCBtYWluKCkge1xuXHR2V29ybGREaXJlY3Rpb24gPSB0cmFuc2Zvcm1EaXJlY3Rpb24oIHBvc2l0aW9uLCBtb2RlbE1hdHJpeCApO1xuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG59IixsaW5lZGFzaGVkX2ZyYWc6InVuaWZvcm0gdmVjMyBkaWZmdXNlO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xudW5pZm9ybSBmbG9hdCBkYXNoU2l6ZTtcbnVuaWZvcm0gZmxvYXQgdG90YWxTaXplO1xudmFyeWluZyBmbG9hdCB2TGluZURpc3RhbmNlO1xuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdGlmICggbW9kKCB2TGluZURpc3RhbmNlLCB0b3RhbFNpemUgKSA+IGRhc2hTaXplICkge1xuXHRcdGRpc2NhcmQ7XG5cdH1cblx0dmVjMyBvdXRnb2luZ0xpZ2h0ID0gdmVjMyggMC4wICk7XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD5cblx0b3V0Z29pbmdMaWdodCA9IGRpZmZ1c2VDb2xvci5yZ2I7XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIG91dGdvaW5nTGlnaHQsIGRpZmZ1c2VDb2xvci5hICk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+XG59IixsaW5lZGFzaGVkX3ZlcnQ6InVuaWZvcm0gZmxvYXQgc2NhbGU7XG5hdHRyaWJ1dGUgZmxvYXQgbGluZURpc3RhbmNlO1xudmFyeWluZyBmbG9hdCB2TGluZURpc3RhbmNlO1xuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bW9ycGh0YXJnZXRfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHR2TGluZURpc3RhbmNlID0gc2NhbGUgKiBsaW5lRGlzdGFuY2U7XG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxufSIsbWVzaGJhc2ljX2ZyYWc6InVuaWZvcm0gdmVjMyBkaWZmdXNlO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2YXJ5aW5nIHZlYzMgdk5vcm1hbDtcbiNlbmRpZlxuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxkaXRoZXJpbmdfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXYyX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhb21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxpZ2h0bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW52bWFwX2NvbW1vbl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGVudm1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGN1YmVfdXZfcmVmbGVjdGlvbl9mcmFnbWVudD5cbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxzcGVjdWxhcm1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGF0ZXN0X2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8c3BlY3VsYXJtYXBfZnJhZ21lbnQ+XG5cdFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ID0gUmVmbGVjdGVkTGlnaHQoIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApICk7XG5cdCNpZmRlZiBVU0VfTElHSFRNQVBcblx0XG5cdFx0dmVjNCBsaWdodE1hcFRleGVsPSB0ZXh0dXJlMkQoIGxpZ2h0TWFwLCB2VXYyICk7XG5cdFx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICs9IGxpZ2h0TWFwVGV4ZWxUb0xpbmVhciggbGlnaHRNYXBUZXhlbCApLnJnYiAqIGxpZ2h0TWFwSW50ZW5zaXR5O1xuXHQjZWxzZVxuXHRcdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSB2ZWMzKCAxLjAgKTtcblx0I2VuZGlmXG5cdCNpbmNsdWRlIDxhb21hcF9mcmFnbWVudD5cblx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICo9IGRpZmZ1c2VDb2xvci5yZ2I7XG5cdHZlYzMgb3V0Z29pbmdMaWdodCA9IHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZTtcblx0I2luY2x1ZGUgPGVudm1hcF9mcmFnbWVudD5cblx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggb3V0Z29pbmdMaWdodCwgZGlmZnVzZUNvbG9yLmEgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8cHJlbXVsdGlwbGllZF9hbHBoYV9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGRpdGhlcmluZ19mcmFnbWVudD5cbn0iLG1lc2hiYXNpY192ZXJ0OiIjaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHV2Ml9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxlbnZtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0I2luY2x1ZGUgPHV2Ml92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XG5cdCNpZiBkZWZpbmVkICggVVNFX0VOVk1BUCApIHx8IGRlZmluZWQgKCBVU0VfU0tJTk5JTkcgKVxuXHRcdCNpbmNsdWRlIDxiZWdpbm5vcm1hbF92ZXJ0ZXg+XG5cdFx0I2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD5cblx0XHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHRcdCNpbmNsdWRlIDxza2lubm9ybWFsX3ZlcnRleD5cblx0XHQjaW5jbHVkZSA8ZGVmYXVsdG5vcm1hbF92ZXJ0ZXg+XG5cdCNlbmRpZlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZW52bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XG59IixtZXNobGFtYmVydF9mcmFnOiJ1bmlmb3JtIHZlYzMgZGlmZnVzZTtcbnVuaWZvcm0gdmVjMyBlbWlzc2l2ZTtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbnZhcnlpbmcgdmVjMyB2TGlnaHRGcm9udDtcbnZhcnlpbmcgdmVjMyB2SW5kaXJlY3RGcm9udDtcbiNpZmRlZiBET1VCTEVfU0lERURcblx0dmFyeWluZyB2ZWMzIHZMaWdodEJhY2s7XG5cdHZhcnlpbmcgdmVjMyB2SW5kaXJlY3RCYWNrO1xuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHBhY2tpbmc+XG4jaW5jbHVkZSA8ZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2Ml9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YW9tYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsaWdodG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGVtaXNzaXZlbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8ZW52bWFwX2NvbW1vbl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGVudm1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGN1YmVfdXZfcmVmbGVjdGlvbl9mcmFnbWVudD5cbiNpbmNsdWRlIDxic2Rmcz5cbiNpbmNsdWRlIDxsaWdodHNfcGFyc19iZWdpbj5cbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxzaGFkb3dtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxzaGFkb3dtYXNrX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8c3BlY3VsYXJtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTtcblx0UmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgPSBSZWZsZWN0ZWRMaWdodCggdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICkgKTtcblx0dmVjMyB0b3RhbEVtaXNzaXZlUmFkaWFuY2UgPSBlbWlzc2l2ZTtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Y29sb3JfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPHNwZWN1bGFybWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW1pc3NpdmVtYXBfZnJhZ21lbnQ+XG5cdCNpZmRlZiBET1VCTEVfU0lERURcblx0XHRyZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gKCBnbF9Gcm9udEZhY2luZyApID8gdkluZGlyZWN0RnJvbnQgOiB2SW5kaXJlY3RCYWNrO1xuXHQjZWxzZVxuXHRcdHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSB2SW5kaXJlY3RGcm9udDtcblx0I2VuZGlmXG5cdCNpbmNsdWRlIDxsaWdodG1hcF9mcmFnbWVudD5cblx0cmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICo9IEJSREZfRGlmZnVzZV9MYW1iZXJ0KCBkaWZmdXNlQ29sb3IucmdiICk7XG5cdCNpZmRlZiBET1VCTEVfU0lERURcblx0XHRyZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlID0gKCBnbF9Gcm9udEZhY2luZyApID8gdkxpZ2h0RnJvbnQgOiB2TGlnaHRCYWNrO1xuXHQjZWxzZVxuXHRcdHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgPSB2TGlnaHRGcm9udDtcblx0I2VuZGlmXG5cdHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKj0gQlJERl9EaWZmdXNlX0xhbWJlcnQoIGRpZmZ1c2VDb2xvci5yZ2IgKSAqIGdldFNoYWRvd01hc2soKTtcblx0I2luY2x1ZGUgPGFvbWFwX2ZyYWdtZW50PlxuXHR2ZWMzIG91dGdvaW5nTGlnaHQgPSByZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICsgcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlICsgdG90YWxFbWlzc2l2ZVJhZGlhbmNlO1xuXHQjaW5jbHVkZSA8ZW52bWFwX2ZyYWdtZW50PlxuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBvdXRnb2luZ0xpZ2h0LCBkaWZmdXNlQ29sb3IuYSApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZGl0aGVyaW5nX2ZyYWdtZW50PlxufSIsbWVzaGxhbWJlcnRfdmVydDoiI2RlZmluZSBMQU1CRVJUXG52YXJ5aW5nIHZlYzMgdkxpZ2h0RnJvbnQ7XG52YXJ5aW5nIHZlYzMgdkluZGlyZWN0RnJvbnQ7XG4jaWZkZWYgRE9VQkxFX1NJREVEXG5cdHZhcnlpbmcgdmVjMyB2TGlnaHRCYWNrO1xuXHR2YXJ5aW5nIHZlYzMgdkluZGlyZWN0QmFjaztcbiNlbmRpZlxuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDx1djJfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8ZW52bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGJzZGZzPlxuI2luY2x1ZGUgPGxpZ2h0c19wYXJzX2JlZ2luPlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxza2lubmluZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxzaGFkb3dtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8dXZfdmVydGV4PlxuXHQjaW5jbHVkZSA8dXYyX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cblx0I2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGVmYXVsdG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxlbnZtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8bGlnaHRzX2xhbWJlcnRfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2hhZG93bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XG59IixtZXNobWF0Y2FwX2ZyYWc6IiNkZWZpbmUgTUFUQ0FQXG51bmlmb3JtIHZlYzMgZGlmZnVzZTtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbnVuaWZvcm0gc2FtcGxlcjJEIG1hdGNhcDtcbnZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2YXJ5aW5nIHZlYzMgdk5vcm1hbDtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0dmFyeWluZyB2ZWMzIHZUYW5nZW50O1xuXHRcdHZhcnlpbmcgdmVjMyB2Qml0YW5nZW50O1xuXHQjZW5kaWZcbiNlbmRpZlxuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxkaXRoZXJpbmdfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YWxwaGFtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxidW1wbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bm9ybWFsbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGFtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfYmVnaW4+XG5cdCNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfbWFwcz5cblx0dmVjMyB2aWV3RGlyID0gbm9ybWFsaXplKCB2Vmlld1Bvc2l0aW9uICk7XG5cdHZlYzMgeCA9IG5vcm1hbGl6ZSggdmVjMyggdmlld0Rpci56LCAwLjAsIC0gdmlld0Rpci54ICkgKTtcblx0dmVjMyB5ID0gY3Jvc3MoIHZpZXdEaXIsIHggKTtcblx0dmVjMiB1diA9IHZlYzIoIGRvdCggeCwgbm9ybWFsICksIGRvdCggeSwgbm9ybWFsICkgKSAqIDAuNDk1ICsgMC41O1xuXHQjaWZkZWYgVVNFX01BVENBUFxuXHRcdHZlYzQgbWF0Y2FwQ29sb3IgPSB0ZXh0dXJlMkQoIG1hdGNhcCwgdXYgKTtcblx0XHRtYXRjYXBDb2xvciA9IG1hdGNhcFRleGVsVG9MaW5lYXIoIG1hdGNhcENvbG9yICk7XG5cdCNlbHNlXG5cdFx0dmVjNCBtYXRjYXBDb2xvciA9IHZlYzQoIDEuMCApO1xuXHQjZW5kaWZcblx0dmVjMyBvdXRnb2luZ0xpZ2h0ID0gZGlmZnVzZUNvbG9yLnJnYiAqIG1hdGNhcENvbG9yLnJnYjtcblx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggb3V0Z29pbmdMaWdodCwgZGlmZnVzZUNvbG9yLmEgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8cHJlbXVsdGlwbGllZF9hbHBoYV9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGRpdGhlcmluZ19mcmFnbWVudD5cbn0iLG1lc2htYXRjYXBfdmVydDoiI2RlZmluZSBNQVRDQVBcbnZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2YXJ5aW5nIHZlYzMgdk5vcm1hbDtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0dmFyeWluZyB2ZWMzIHZUYW5nZW50O1xuXHRcdHZhcnlpbmcgdmVjMyB2Qml0YW5nZW50O1xuXHQjZW5kaWZcbiNlbmRpZlxuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cblx0I2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGVmYXVsdG5vcm1hbF92ZXJ0ZXg+XG5cdCNpZm5kZWYgRkxBVF9TSEFERURcblx0XHR2Tm9ybWFsID0gbm9ybWFsaXplKCB0cmFuc2Zvcm1lZE5vcm1hbCApO1xuXHRcdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdFx0dlRhbmdlbnQgPSBub3JtYWxpemUoIHRyYW5zZm9ybWVkVGFuZ2VudCApO1xuXHRcdFx0dkJpdGFuZ2VudCA9IG5vcm1hbGl6ZSggY3Jvc3MoIHZOb3JtYWwsIHZUYW5nZW50ICkgKiB0YW5nZW50LncgKTtcblx0XHQjZW5kaWZcblx0I2VuZGlmXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxza2lubmluZ192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cblx0dlZpZXdQb3NpdGlvbiA9IC0gbXZQb3NpdGlvbi54eXo7XG59IixtZXNodG9vbl9mcmFnOiIjZGVmaW5lIFRPT05cbnVuaWZvcm0gdmVjMyBkaWZmdXNlO1xudW5pZm9ybSB2ZWMzIGVtaXNzaXZlO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxwYWNraW5nPlxuI2luY2x1ZGUgPGRpdGhlcmluZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1djJfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFvbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bGlnaHRtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGdyYWRpZW50bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YnNkZnM+XG4jaW5jbHVkZSA8bGlnaHRzX3BhcnNfYmVnaW4+XG4jaW5jbHVkZSA8bGlnaHRzX3Rvb25fcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxzaGFkb3dtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxidW1wbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bm9ybWFsbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7XG5cdFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ID0gUmVmbGVjdGVkTGlnaHQoIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApICk7XG5cdHZlYzMgdG90YWxFbWlzc2l2ZVJhZGlhbmNlID0gZW1pc3NpdmU7XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGFtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfYmVnaW4+XG5cdCNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfbWFwcz5cblx0I2luY2x1ZGUgPGVtaXNzaXZlbWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bGlnaHRzX3Rvb25fZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfYmVnaW4+XG5cdCNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfbWFwcz5cblx0I2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9lbmQ+XG5cdCNpbmNsdWRlIDxhb21hcF9mcmFnbWVudD5cblx0dmVjMyBvdXRnb2luZ0xpZ2h0ID0gcmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSArIHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArIHRvdGFsRW1pc3NpdmVSYWRpYW5jZTtcblx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggb3V0Z29pbmdMaWdodCwgZGlmZnVzZUNvbG9yLmEgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8cHJlbXVsdGlwbGllZF9hbHBoYV9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGRpdGhlcmluZ19mcmFnbWVudD5cbn0iLG1lc2h0b29uX3ZlcnQ6IiNkZWZpbmUgVE9PTlxudmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHV2Ml9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxkaXNwbGFjZW1lbnRtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDx1dl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDx1djJfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD5cbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dk5vcm1hbCA9IG5vcm1hbGl6ZSggdHJhbnNmb3JtZWROb3JtYWwgKTtcbiNlbmRpZlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cblx0dlZpZXdQb3NpdGlvbiA9IC0gbXZQb3NpdGlvbi54eXo7XG5cdCNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxzaGFkb3dtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cbn0iLG1lc2hwaG9uZ19mcmFnOiIjZGVmaW5lIFBIT05HXG51bmlmb3JtIHZlYzMgZGlmZnVzZTtcbnVuaWZvcm0gdmVjMyBlbWlzc2l2ZTtcbnVuaWZvcm0gdmVjMyBzcGVjdWxhcjtcbnVuaWZvcm0gZmxvYXQgc2hpbmluZXNzO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxwYWNraW5nPlxuI2luY2x1ZGUgPGRpdGhlcmluZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1djJfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFvbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bGlnaHRtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGVudm1hcF9jb21tb25fcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbnZtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YnNkZnM+XG4jaW5jbHVkZSA8bGlnaHRzX3BhcnNfYmVnaW4+XG4jaW5jbHVkZSA8bGlnaHRzX3Bob25nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YnVtcG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG5vcm1hbG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNwZWN1bGFybWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7XG5cdFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ID0gUmVmbGVjdGVkTGlnaHQoIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApICk7XG5cdHZlYzMgdG90YWxFbWlzc2l2ZVJhZGlhbmNlID0gZW1pc3NpdmU7XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGFtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxzcGVjdWxhcm1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9iZWdpbj5cblx0I2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9tYXBzPlxuXHQjaW5jbHVkZSA8ZW1pc3NpdmVtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxsaWdodHNfcGhvbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfYmVnaW4+XG5cdCNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfbWFwcz5cblx0I2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9lbmQ+XG5cdCNpbmNsdWRlIDxhb21hcF9mcmFnbWVudD5cblx0dmVjMyBvdXRnb2luZ0xpZ2h0ID0gcmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSArIHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArIHJlZmxlY3RlZExpZ2h0LmRpcmVjdFNwZWN1bGFyICsgcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3RTcGVjdWxhciArIHRvdGFsRW1pc3NpdmVSYWRpYW5jZTtcblx0I2luY2x1ZGUgPGVudm1hcF9mcmFnbWVudD5cblx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggb3V0Z29pbmdMaWdodCwgZGlmZnVzZUNvbG9yLmEgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8cHJlbXVsdGlwbGllZF9hbHBoYV9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGRpdGhlcmluZ19mcmFnbWVudD5cbn0iLG1lc2hwaG9uZ192ZXJ0OiIjZGVmaW5lIFBIT05HXG52YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8dXYyX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxlbnZtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDx1dl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDx1djJfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxuXHQjaW5jbHVkZSA8YmVnaW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGhub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxkZWZhdWx0bm9ybWFsX3ZlcnRleD5cbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dk5vcm1hbCA9IG5vcm1hbGl6ZSggdHJhbnNmb3JtZWROb3JtYWwgKTtcbiNlbmRpZlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cblx0dlZpZXdQb3NpdGlvbiA9IC0gbXZQb3NpdGlvbi54eXo7XG5cdCNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxlbnZtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2hhZG93bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XG59IixtZXNocGh5c2ljYWxfZnJhZzoiI2RlZmluZSBTVEFOREFSRFxuI2lmZGVmIFBIWVNJQ0FMXG5cdCNkZWZpbmUgUkVGTEVDVElWSVRZXG5cdCNkZWZpbmUgQ0xFQVJDT0FUXG5cdCNkZWZpbmUgU1BFQ1VMQVJcbiNlbmRpZlxudW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIHZlYzMgZW1pc3NpdmU7XG51bmlmb3JtIGZsb2F0IHJvdWdobmVzcztcbnVuaWZvcm0gZmxvYXQgbWV0YWxuZXNzO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuI2lmZGVmIFVTRV9UUkFOU01JU1NJT05cblx0dW5pZm9ybSBmbG9hdCB0cmFuc21pc3Npb247XG5cdHVuaWZvcm0gZmxvYXQgdGhpY2tuZXNzO1xuXHR1bmlmb3JtIGZsb2F0IGF0dGVudWF0aW9uRGlzdGFuY2U7XG5cdHVuaWZvcm0gdmVjMyBhdHRlbnVhdGlvblRpbnQ7XG4jZW5kaWZcbiNpZmRlZiBSRUZMRUNUSVZJVFlcblx0dW5pZm9ybSBmbG9hdCByZWZsZWN0aXZpdHk7XG4jZW5kaWZcbiNpZmRlZiBTUEVDVUxBUlxuXHR1bmlmb3JtIGZsb2F0IHNwZWN1bGFySW50ZW5zaXR5O1xuXHR1bmlmb3JtIHZlYzMgc3BlY3VsYXJUaW50O1xuXHQjaWZkZWYgVVNFX1NQRUNVTEFSSU5URU5TSVRZTUFQXG5cdFx0dW5pZm9ybSBzYW1wbGVyMkQgc3BlY3VsYXJJbnRlbnNpdHlNYXA7XG5cdCNlbmRpZlxuXHQjaWZkZWYgVVNFX1NQRUNVTEFSVElOVE1BUFxuXHRcdHVuaWZvcm0gc2FtcGxlcjJEIHNwZWN1bGFyVGludE1hcDtcblx0I2VuZGlmXG4jZW5kaWZcbiNpZmRlZiBDTEVBUkNPQVRcblx0dW5pZm9ybSBmbG9hdCBjbGVhcmNvYXQ7XG5cdHVuaWZvcm0gZmxvYXQgY2xlYXJjb2F0Um91Z2huZXNzO1xuI2VuZGlmXG4jaWZkZWYgVVNFX1NIRUVOXG5cdHVuaWZvcm0gdmVjMyBzaGVlbjtcbiNlbmRpZlxudmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuXHQjaWZkZWYgVVNFX1RBTkdFTlRcblx0XHR2YXJ5aW5nIHZlYzMgdlRhbmdlbnQ7XG5cdFx0dmFyeWluZyB2ZWMzIHZCaXRhbmdlbnQ7XG5cdCNlbmRpZlxuI2VuZGlmXG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHBhY2tpbmc+XG4jaW5jbHVkZSA8ZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHV2Ml9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGFscGhhbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YW9tYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsaWdodG1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGVtaXNzaXZlbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8YnNkZnM+XG4jaW5jbHVkZSA8dHJhbnNtaXNzaW9uX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y3ViZV91dl9yZWZsZWN0aW9uX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGVudm1hcF9jb21tb25fcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxlbnZtYXBfcGh5c2ljYWxfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxsaWdodHNfcGFyc19iZWdpbj5cbiNpbmNsdWRlIDxsaWdodHNfcGh5c2ljYWxfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxzaGFkb3dtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxidW1wbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bm9ybWFsbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xlYXJjb2F0X3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8cm91Z2huZXNzbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bWV0YWxuZXNzbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0dmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBkaWZmdXNlLCBvcGFjaXR5ICk7XG5cdFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ID0gUmVmbGVjdGVkTGlnaHQoIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICksIHZlYzMoIDAuMCApICk7XG5cdHZlYzMgdG90YWxFbWlzc2l2ZVJhZGlhbmNlID0gZW1pc3NpdmU7XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPG1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGFtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxyb3VnaG5lc3NtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxtZXRhbG5lc3NtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfYmVnaW4+XG5cdCNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfbWFwcz5cblx0I2luY2x1ZGUgPGNsZWFyY29hdF9ub3JtYWxfZnJhZ21lbnRfYmVnaW4+XG5cdCNpbmNsdWRlIDxjbGVhcmNvYXRfbm9ybWFsX2ZyYWdtZW50X21hcHM+XG5cdCNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGxpZ2h0c19waHlzaWNhbF9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9iZWdpbj5cblx0I2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9tYXBzPlxuXHQjaW5jbHVkZSA8bGlnaHRzX2ZyYWdtZW50X2VuZD5cblx0I2luY2x1ZGUgPGFvbWFwX2ZyYWdtZW50PlxuXHR2ZWMzIHRvdGFsRGlmZnVzZSA9IHJlZmxlY3RlZExpZ2h0LmRpcmVjdERpZmZ1c2UgKyByZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2U7XG5cdHZlYzMgdG90YWxTcGVjdWxhciA9IHJlZmxlY3RlZExpZ2h0LmRpcmVjdFNwZWN1bGFyICsgcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3RTcGVjdWxhcjtcblx0I2luY2x1ZGUgPHRyYW5zbWlzc2lvbl9mcmFnbWVudD5cblx0dmVjMyBvdXRnb2luZ0xpZ2h0ID0gdG90YWxEaWZmdXNlICsgdG90YWxTcGVjdWxhciArIHRvdGFsRW1pc3NpdmVSYWRpYW5jZTtcblx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggb3V0Z29pbmdMaWdodCwgZGlmZnVzZUNvbG9yLmEgKTtcblx0I2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8cHJlbXVsdGlwbGllZF9hbHBoYV9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGRpdGhlcmluZ19mcmFnbWVudD5cbn0iLG1lc2hwaHlzaWNhbF92ZXJ0OiIjZGVmaW5lIFNUQU5EQVJEXG52YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdHZhcnlpbmcgdmVjMyB2VGFuZ2VudDtcblx0XHR2YXJ5aW5nIHZlYzMgdkJpdGFuZ2VudDtcblx0I2VuZGlmXG4jZW5kaWZcbiNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OXG5cdHZhcnlpbmcgdmVjNCB2V29ybGRQb3NpdGlvbjtcbiNlbmRpZlxuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDx1djJfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxtb3JwaHRhcmdldF9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxza2lubmluZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxzaGFkb3dtYXBfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4Plxudm9pZCBtYWluKCkge1xuXHQjaW5jbHVkZSA8dXZfdmVydGV4PlxuXHQjaW5jbHVkZSA8dXYyX3ZlcnRleD5cblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cblx0I2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGVmYXVsdG5vcm1hbF92ZXJ0ZXg+XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZOb3JtYWwgPSBub3JtYWxpemUoIHRyYW5zZm9ybWVkTm9ybWFsICk7XG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdHZUYW5nZW50ID0gbm9ybWFsaXplKCB0cmFuc2Zvcm1lZFRhbmdlbnQgKTtcblx0XHR2Qml0YW5nZW50ID0gbm9ybWFsaXplKCBjcm9zcyggdk5vcm1hbCwgdlRhbmdlbnQgKSAqIHRhbmdlbnQudyApO1xuXHQjZW5kaWZcbiNlbmRpZlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cblx0dlZpZXdQb3NpdGlvbiA9IC0gbXZQb3NpdGlvbi54eXo7XG5cdCNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxzaGFkb3dtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cbiNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OXG5cdHZXb3JsZFBvc2l0aW9uID0gd29ybGRQb3NpdGlvbjtcbiNlbmRpZlxufSIsbm9ybWFsX2ZyYWc6IiNkZWZpbmUgTk9STUFMXG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jaWYgZGVmaW5lZCggRkxBVF9TSEFERUQgKSB8fCBkZWZpbmVkKCBVU0VfQlVNUE1BUCApIHx8IGRlZmluZWQoIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAgKVxuXHR2YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcbiNlbmRpZlxuI2lmbmRlZiBGTEFUX1NIQURFRFxuXHR2YXJ5aW5nIHZlYzMgdk5vcm1hbDtcblx0I2lmZGVmIFVTRV9UQU5HRU5UXG5cdFx0dmFyeWluZyB2ZWMzIHZUYW5nZW50O1xuXHRcdHZhcnlpbmcgdmVjMyB2Qml0YW5nZW50O1xuXHQjZW5kaWZcbiNlbmRpZlxuI2luY2x1ZGUgPHBhY2tpbmc+XG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxidW1wbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bm9ybWFsbWFwX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X2JlZ2luPlxuXHQjaW5jbHVkZSA8bm9ybWFsX2ZyYWdtZW50X21hcHM+XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIHBhY2tOb3JtYWxUb1JHQiggbm9ybWFsICksIG9wYWNpdHkgKTtcbn0iLG5vcm1hbF92ZXJ0OiIjZGVmaW5lIE5PUk1BTFxuI2lmIGRlZmluZWQoIEZMQVRfU0hBREVEICkgfHwgZGVmaW5lZCggVVNFX0JVTVBNQVAgKSB8fCBkZWZpbmVkKCBUQU5HRU5UU1BBQ0VfTk9STUFMTUFQIClcblx0dmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247XG4jZW5kaWZcbiNpZm5kZWYgRkxBVF9TSEFERURcblx0dmFyeWluZyB2ZWMzIHZOb3JtYWw7XG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdHZhcnlpbmcgdmVjMyB2VGFuZ2VudDtcblx0XHR2YXJ5aW5nIHZlYzMgdkJpdGFuZ2VudDtcblx0I2VuZGlmXG4jZW5kaWZcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPHNraW5uaW5nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPHV2X3ZlcnRleD5cblx0I2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGVmYXVsdG5vcm1hbF92ZXJ0ZXg+XG4jaWZuZGVmIEZMQVRfU0hBREVEXG5cdHZOb3JtYWwgPSBub3JtYWxpemUoIHRyYW5zZm9ybWVkTm9ybWFsICk7XG5cdCNpZmRlZiBVU0VfVEFOR0VOVFxuXHRcdHZUYW5nZW50ID0gbm9ybWFsaXplKCB0cmFuc2Zvcm1lZFRhbmdlbnQgKTtcblx0XHR2Qml0YW5nZW50ID0gbm9ybWFsaXplKCBjcm9zcyggdk5vcm1hbCwgdlRhbmdlbnQgKSAqIHRhbmdlbnQudyApO1xuXHQjZW5kaWZcbiNlbmRpZlxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxuXHQjaW5jbHVkZSA8bW9ycGh0YXJnZXRfdmVydGV4PlxuXHQjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cbiNpZiBkZWZpbmVkKCBGTEFUX1NIQURFRCApIHx8IGRlZmluZWQoIFVTRV9CVU1QTUFQICkgfHwgZGVmaW5lZCggVEFOR0VOVFNQQUNFX05PUk1BTE1BUCApXG5cdHZWaWV3UG9zaXRpb24gPSAtIG12UG9zaXRpb24ueHl6O1xuI2VuZGlmXG59Iixwb2ludHNfZnJhZzoidW5pZm9ybSB2ZWMzIGRpZmZ1c2U7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bWFwX3BhcnRpY2xlX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cblx0dmVjMyBvdXRnb2luZ0xpZ2h0ID0gdmVjMyggMC4wICk7XG5cdHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggZGlmZnVzZSwgb3BhY2l0eSApO1xuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxtYXBfcGFydGljbGVfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD5cblx0I2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cblx0b3V0Z29pbmdMaWdodCA9IGRpZmZ1c2VDb2xvci5yZ2I7XG5cdGdsX0ZyYWdDb2xvciA9IHZlYzQoIG91dGdvaW5nTGlnaHQsIGRpZmZ1c2VDb2xvci5hICk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPHByZW11bHRpcGxpZWRfYWxwaGFfZnJhZ21lbnQ+XG59Iixwb2ludHNfdmVydDoidW5pZm9ybSBmbG9hdCBzaXplO1xudW5pZm9ybSBmbG9hdCBzY2FsZTtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cbnZvaWQgbWFpbigpIHtcblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBodGFyZ2V0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuXHRnbF9Qb2ludFNpemUgPSBzaXplO1xuXHQjaWZkZWYgVVNFX1NJWkVBVFRFTlVBVElPTlxuXHRcdGJvb2wgaXNQZXJzcGVjdGl2ZSA9IGlzUGVyc3BlY3RpdmVNYXRyaXgoIHByb2plY3Rpb25NYXRyaXggKTtcblx0XHRpZiAoIGlzUGVyc3BlY3RpdmUgKSBnbF9Qb2ludFNpemUgKj0gKCBzY2FsZSAvIC0gbXZQb3NpdGlvbi56ICk7XG5cdCNlbmRpZlxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XG59IixzaGFkb3dfZnJhZzoidW5pZm9ybSB2ZWMzIGNvbG9yO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuI2luY2x1ZGUgPGNvbW1vbj5cbiNpbmNsdWRlIDxwYWNraW5nPlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGJzZGZzPlxuI2luY2x1ZGUgPGxpZ2h0c19wYXJzX2JlZ2luPlxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPHNoYWRvd21hc2tfcGFyc19mcmFnbWVudD5cbnZvaWQgbWFpbigpIHtcblx0Z2xfRnJhZ0NvbG9yID0gdmVjNCggY29sb3IsIG9wYWNpdHkgKiAoIDEuMCAtIGdldFNoYWRvd01hc2soKSApICk7XG5cdCNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cbn0iLHNoYWRvd192ZXJ0OiIjaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxzaGFkb3dtYXBfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cblx0I2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPG1vcnBobm9ybWFsX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5iYXNlX3ZlcnRleD5cblx0I2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PlxuXHQjaW5jbHVkZSA8ZGVmYXVsdG5vcm1hbF92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxzaGFkb3dtYXBfdmVydGV4PlxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cbn0iLHNwcml0ZV9mcmFnOiJ1bmlmb3JtIHZlYzMgZGlmZnVzZTtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiNpbmNsdWRlIDxjb21tb24+XG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cbiNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XG5cdHZlYzMgb3V0Z29pbmdMaWdodCA9IHZlYzMoIDAuMCApO1xuXHR2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGRpZmZ1c2UsIG9wYWNpdHkgKTtcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8bWFwX2ZyYWdtZW50PlxuXHQjaW5jbHVkZSA8YWxwaGFtYXBfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxhbHBoYXRlc3RfZnJhZ21lbnQ+XG5cdG91dGdvaW5nTGlnaHQgPSBkaWZmdXNlQ29sb3IucmdiO1xuXHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCBvdXRnb2luZ0xpZ2h0LCBkaWZmdXNlQ29sb3IuYSApO1xuXHQjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XG59IixzcHJpdGVfdmVydDoidW5pZm9ybSBmbG9hdCByb3RhdGlvbjtcbnVuaWZvcm0gdmVjMiBjZW50ZXI7XG4jaW5jbHVkZSA8Y29tbW9uPlxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxuI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XG52b2lkIG1haW4oKSB7XG5cdCNpbmNsdWRlIDx1dl92ZXJ0ZXg+XG5cdHZlYzQgbXZQb3NpdGlvbiA9IG1vZGVsVmlld01hdHJpeCAqIHZlYzQoIDAuMCwgMC4wLCAwLjAsIDEuMCApO1xuXHR2ZWMyIHNjYWxlO1xuXHRzY2FsZS54ID0gbGVuZ3RoKCB2ZWMzKCBtb2RlbE1hdHJpeFsgMCBdLngsIG1vZGVsTWF0cml4WyAwIF0ueSwgbW9kZWxNYXRyaXhbIDAgXS56ICkgKTtcblx0c2NhbGUueSA9IGxlbmd0aCggdmVjMyggbW9kZWxNYXRyaXhbIDEgXS54LCBtb2RlbE1hdHJpeFsgMSBdLnksIG1vZGVsTWF0cml4WyAxIF0ueiApICk7XG5cdCNpZm5kZWYgVVNFX1NJWkVBVFRFTlVBVElPTlxuXHRcdGJvb2wgaXNQZXJzcGVjdGl2ZSA9IGlzUGVyc3BlY3RpdmVNYXRyaXgoIHByb2plY3Rpb25NYXRyaXggKTtcblx0XHRpZiAoIGlzUGVyc3BlY3RpdmUgKSBzY2FsZSAqPSAtIG12UG9zaXRpb24uejtcblx0I2VuZGlmXG5cdHZlYzIgYWxpZ25lZFBvc2l0aW9uID0gKCBwb3NpdGlvbi54eSAtICggY2VudGVyIC0gdmVjMiggMC41ICkgKSApICogc2NhbGU7XG5cdHZlYzIgcm90YXRlZFBvc2l0aW9uO1xuXHRyb3RhdGVkUG9zaXRpb24ueCA9IGNvcyggcm90YXRpb24gKSAqIGFsaWduZWRQb3NpdGlvbi54IC0gc2luKCByb3RhdGlvbiApICogYWxpZ25lZFBvc2l0aW9uLnk7XG5cdHJvdGF0ZWRQb3NpdGlvbi55ID0gc2luKCByb3RhdGlvbiApICogYWxpZ25lZFBvc2l0aW9uLnggKyBjb3MoIHJvdGF0aW9uICkgKiBhbGlnbmVkUG9zaXRpb24ueTtcblx0bXZQb3NpdGlvbi54eSArPSByb3RhdGVkUG9zaXRpb247XG5cdGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIG12UG9zaXRpb247XG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cbn0ifSxRY3Q9e2NvbW1vbjp7ZGlmZnVzZTp7dmFsdWU6bmV3IFpsdCgxNjc3NzIxNSl9LG9wYWNpdHk6e3ZhbHVlOjF9LG1hcDp7dmFsdWU6bnVsbH0sdXZUcmFuc2Zvcm06e3ZhbHVlOm5ldyBoc3R9LHV2MlRyYW5zZm9ybTp7dmFsdWU6bmV3IGhzdH0sYWxwaGFNYXA6e3ZhbHVlOm51bGx9fSxzcGVjdWxhcm1hcDp7c3BlY3VsYXJNYXA6e3ZhbHVlOm51bGx9fSxlbnZtYXA6e2Vudk1hcDp7dmFsdWU6bnVsbH0sZmxpcEVudk1hcDp7dmFsdWU6LTF9LHJlZmxlY3Rpdml0eTp7dmFsdWU6MX0scmVmcmFjdGlvblJhdGlvOnt2YWx1ZTouOTh9LG1heE1pcExldmVsOnt2YWx1ZTowfX0sYW9tYXA6e2FvTWFwOnt2YWx1ZTpudWxsfSxhb01hcEludGVuc2l0eTp7dmFsdWU6MX19LGxpZ2h0bWFwOntsaWdodE1hcDp7dmFsdWU6bnVsbH0sbGlnaHRNYXBJbnRlbnNpdHk6e3ZhbHVlOjF9fSxlbWlzc2l2ZW1hcDp7ZW1pc3NpdmVNYXA6e3ZhbHVlOm51bGx9fSxidW1wbWFwOntidW1wTWFwOnt2YWx1ZTpudWxsfSxidW1wU2NhbGU6e3ZhbHVlOjF9fSxub3JtYWxtYXA6e25vcm1hbE1hcDp7dmFsdWU6bnVsbH0sbm9ybWFsU2NhbGU6e3ZhbHVlOm5ldyBnc3QoMSwxKX19LGRpc3BsYWNlbWVudG1hcDp7ZGlzcGxhY2VtZW50TWFwOnt2YWx1ZTpudWxsfSxkaXNwbGFjZW1lbnRTY2FsZTp7dmFsdWU6MX0sZGlzcGxhY2VtZW50Qmlhczp7dmFsdWU6MH19LHJvdWdobmVzc21hcDp7cm91Z2huZXNzTWFwOnt2YWx1ZTpudWxsfX0sbWV0YWxuZXNzbWFwOnttZXRhbG5lc3NNYXA6e3ZhbHVlOm51bGx9fSxncmFkaWVudG1hcDp7Z3JhZGllbnRNYXA6e3ZhbHVlOm51bGx9fSxmb2c6e2ZvZ0RlbnNpdHk6e3ZhbHVlOjI1ZS01fSxmb2dOZWFyOnt2YWx1ZToxfSxmb2dGYXI6e3ZhbHVlOjJlM30sZm9nQ29sb3I6e3ZhbHVlOm5ldyBabHQoMTY3NzcyMTUpfX0sbGlnaHRzOnthbWJpZW50TGlnaHRDb2xvcjp7dmFsdWU6W119LGxpZ2h0UHJvYmU6e3ZhbHVlOltdfSxkaXJlY3Rpb25hbExpZ2h0czp7dmFsdWU6W10scHJvcGVydGllczp7ZGlyZWN0aW9uOnt9LGNvbG9yOnt9fX0sZGlyZWN0aW9uYWxMaWdodFNoYWRvd3M6e3ZhbHVlOltdLHByb3BlcnRpZXM6e3NoYWRvd0JpYXM6e30sc2hhZG93Tm9ybWFsQmlhczp7fSxzaGFkb3dSYWRpdXM6e30sc2hhZG93TWFwU2l6ZTp7fX19LGRpcmVjdGlvbmFsU2hhZG93TWFwOnt2YWx1ZTpbXX0sZGlyZWN0aW9uYWxTaGFkb3dNYXRyaXg6e3ZhbHVlOltdfSxzcG90TGlnaHRzOnt2YWx1ZTpbXSxwcm9wZXJ0aWVzOntjb2xvcjp7fSxwb3NpdGlvbjp7fSxkaXJlY3Rpb246e30sZGlzdGFuY2U6e30sY29uZUNvczp7fSxwZW51bWJyYUNvczp7fSxkZWNheTp7fX19LHNwb3RMaWdodFNoYWRvd3M6e3ZhbHVlOltdLHByb3BlcnRpZXM6e3NoYWRvd0JpYXM6e30sc2hhZG93Tm9ybWFsQmlhczp7fSxzaGFkb3dSYWRpdXM6e30sc2hhZG93TWFwU2l6ZTp7fX19LHNwb3RTaGFkb3dNYXA6e3ZhbHVlOltdfSxzcG90U2hhZG93TWF0cml4Ont2YWx1ZTpbXX0scG9pbnRMaWdodHM6e3ZhbHVlOltdLHByb3BlcnRpZXM6e2NvbG9yOnt9LHBvc2l0aW9uOnt9LGRlY2F5Ont9LGRpc3RhbmNlOnt9fX0scG9pbnRMaWdodFNoYWRvd3M6e3ZhbHVlOltdLHByb3BlcnRpZXM6e3NoYWRvd0JpYXM6e30sc2hhZG93Tm9ybWFsQmlhczp7fSxzaGFkb3dSYWRpdXM6e30sc2hhZG93TWFwU2l6ZTp7fSxzaGFkb3dDYW1lcmFOZWFyOnt9LHNoYWRvd0NhbWVyYUZhcjp7fX19LHBvaW50U2hhZG93TWFwOnt2YWx1ZTpbXX0scG9pbnRTaGFkb3dNYXRyaXg6e3ZhbHVlOltdfSxoZW1pc3BoZXJlTGlnaHRzOnt2YWx1ZTpbXSxwcm9wZXJ0aWVzOntkaXJlY3Rpb246e30sc2t5Q29sb3I6e30sZ3JvdW5kQ29sb3I6e319fSxyZWN0QXJlYUxpZ2h0czp7dmFsdWU6W10scHJvcGVydGllczp7Y29sb3I6e30scG9zaXRpb246e30sd2lkdGg6e30saGVpZ2h0Ont9fX0sbHRjXzE6e3ZhbHVlOm51bGx9LGx0Y18yOnt2YWx1ZTpudWxsfX0scG9pbnRzOntkaWZmdXNlOnt2YWx1ZTpuZXcgWmx0KDE2Nzc3MjE1KX0sb3BhY2l0eTp7dmFsdWU6MX0sc2l6ZTp7dmFsdWU6MX0sc2NhbGU6e3ZhbHVlOjF9LG1hcDp7dmFsdWU6bnVsbH0sYWxwaGFNYXA6e3ZhbHVlOm51bGx9LHV2VHJhbnNmb3JtOnt2YWx1ZTpuZXcgaHN0fX0sc3ByaXRlOntkaWZmdXNlOnt2YWx1ZTpuZXcgWmx0KDE2Nzc3MjE1KX0sb3BhY2l0eTp7dmFsdWU6MX0sY2VudGVyOnt2YWx1ZTpuZXcgZ3N0KC41LC41KX0scm90YXRpb246e3ZhbHVlOjB9LG1hcDp7dmFsdWU6bnVsbH0sYWxwaGFNYXA6e3ZhbHVlOm51bGx9LHV2VHJhbnNmb3JtOnt2YWx1ZTpuZXcgaHN0fX19LCRjdD17YmFzaWM6e3VuaWZvcm1zOkFjdChbUWN0LmNvbW1vbixRY3Quc3BlY3VsYXJtYXAsUWN0LmVudm1hcCxRY3QuYW9tYXAsUWN0LmxpZ2h0bWFwLFFjdC5mb2ddKSx2ZXJ0ZXhTaGFkZXI6SmN0Lm1lc2hiYXNpY192ZXJ0LGZyYWdtZW50U2hhZGVyOkpjdC5tZXNoYmFzaWNfZnJhZ30sbGFtYmVydDp7dW5pZm9ybXM6QWN0KFtRY3QuY29tbW9uLFFjdC5zcGVjdWxhcm1hcCxRY3QuZW52bWFwLFFjdC5hb21hcCxRY3QubGlnaHRtYXAsUWN0LmVtaXNzaXZlbWFwLFFjdC5mb2csUWN0LmxpZ2h0cyx7ZW1pc3NpdmU6e3ZhbHVlOm5ldyBabHQoMCl9fV0pLHZlcnRleFNoYWRlcjpKY3QubWVzaGxhbWJlcnRfdmVydCxmcmFnbWVudFNoYWRlcjpKY3QubWVzaGxhbWJlcnRfZnJhZ30scGhvbmc6e3VuaWZvcm1zOkFjdChbUWN0LmNvbW1vbixRY3Quc3BlY3VsYXJtYXAsUWN0LmVudm1hcCxRY3QuYW9tYXAsUWN0LmxpZ2h0bWFwLFFjdC5lbWlzc2l2ZW1hcCxRY3QuYnVtcG1hcCxRY3Qubm9ybWFsbWFwLFFjdC5kaXNwbGFjZW1lbnRtYXAsUWN0LmZvZyxRY3QubGlnaHRzLHtlbWlzc2l2ZTp7dmFsdWU6bmV3IFpsdCgwKX0sc3BlY3VsYXI6e3ZhbHVlOm5ldyBabHQoMTExODQ4MSl9LHNoaW5pbmVzczp7dmFsdWU6MzB9fV0pLHZlcnRleFNoYWRlcjpKY3QubWVzaHBob25nX3ZlcnQsZnJhZ21lbnRTaGFkZXI6SmN0Lm1lc2hwaG9uZ19mcmFnfSxzdGFuZGFyZDp7dW5pZm9ybXM6QWN0KFtRY3QuY29tbW9uLFFjdC5lbnZtYXAsUWN0LmFvbWFwLFFjdC5saWdodG1hcCxRY3QuZW1pc3NpdmVtYXAsUWN0LmJ1bXBtYXAsUWN0Lm5vcm1hbG1hcCxRY3QuZGlzcGxhY2VtZW50bWFwLFFjdC5yb3VnaG5lc3NtYXAsUWN0Lm1ldGFsbmVzc21hcCxRY3QuZm9nLFFjdC5saWdodHMse2VtaXNzaXZlOnt2YWx1ZTpuZXcgWmx0KDApfSxyb3VnaG5lc3M6e3ZhbHVlOjF9LG1ldGFsbmVzczp7dmFsdWU6MH0sZW52TWFwSW50ZW5zaXR5Ont2YWx1ZToxfX1dKSx2ZXJ0ZXhTaGFkZXI6SmN0Lm1lc2hwaHlzaWNhbF92ZXJ0LGZyYWdtZW50U2hhZGVyOkpjdC5tZXNocGh5c2ljYWxfZnJhZ30sdG9vbjp7dW5pZm9ybXM6QWN0KFtRY3QuY29tbW9uLFFjdC5hb21hcCxRY3QubGlnaHRtYXAsUWN0LmVtaXNzaXZlbWFwLFFjdC5idW1wbWFwLFFjdC5ub3JtYWxtYXAsUWN0LmRpc3BsYWNlbWVudG1hcCxRY3QuZ3JhZGllbnRtYXAsUWN0LmZvZyxRY3QubGlnaHRzLHtlbWlzc2l2ZTp7dmFsdWU6bmV3IFpsdCgwKX19XSksdmVydGV4U2hhZGVyOkpjdC5tZXNodG9vbl92ZXJ0LGZyYWdtZW50U2hhZGVyOkpjdC5tZXNodG9vbl9mcmFnfSxtYXRjYXA6e3VuaWZvcm1zOkFjdChbUWN0LmNvbW1vbixRY3QuYnVtcG1hcCxRY3Qubm9ybWFsbWFwLFFjdC5kaXNwbGFjZW1lbnRtYXAsUWN0LmZvZyx7bWF0Y2FwOnt2YWx1ZTpudWxsfX1dKSx2ZXJ0ZXhTaGFkZXI6SmN0Lm1lc2htYXRjYXBfdmVydCxmcmFnbWVudFNoYWRlcjpKY3QubWVzaG1hdGNhcF9mcmFnfSxwb2ludHM6e3VuaWZvcm1zOkFjdChbUWN0LnBvaW50cyxRY3QuZm9nXSksdmVydGV4U2hhZGVyOkpjdC5wb2ludHNfdmVydCxmcmFnbWVudFNoYWRlcjpKY3QucG9pbnRzX2ZyYWd9LGRhc2hlZDp7dW5pZm9ybXM6QWN0KFtRY3QuY29tbW9uLFFjdC5mb2cse3NjYWxlOnt2YWx1ZToxfSxkYXNoU2l6ZTp7dmFsdWU6MX0sdG90YWxTaXplOnt2YWx1ZToyfX1dKSx2ZXJ0ZXhTaGFkZXI6SmN0LmxpbmVkYXNoZWRfdmVydCxmcmFnbWVudFNoYWRlcjpKY3QubGluZWRhc2hlZF9mcmFnfSxkZXB0aDp7dW5pZm9ybXM6QWN0KFtRY3QuY29tbW9uLFFjdC5kaXNwbGFjZW1lbnRtYXBdKSx2ZXJ0ZXhTaGFkZXI6SmN0LmRlcHRoX3ZlcnQsZnJhZ21lbnRTaGFkZXI6SmN0LmRlcHRoX2ZyYWd9LG5vcm1hbDp7dW5pZm9ybXM6QWN0KFtRY3QuY29tbW9uLFFjdC5idW1wbWFwLFFjdC5ub3JtYWxtYXAsUWN0LmRpc3BsYWNlbWVudG1hcCx7b3BhY2l0eTp7dmFsdWU6MX19XSksdmVydGV4U2hhZGVyOkpjdC5ub3JtYWxfdmVydCxmcmFnbWVudFNoYWRlcjpKY3Qubm9ybWFsX2ZyYWd9LHNwcml0ZTp7dW5pZm9ybXM6QWN0KFtRY3Quc3ByaXRlLFFjdC5mb2ddKSx2ZXJ0ZXhTaGFkZXI6SmN0LnNwcml0ZV92ZXJ0LGZyYWdtZW50U2hhZGVyOkpjdC5zcHJpdGVfZnJhZ30sYmFja2dyb3VuZDp7dW5pZm9ybXM6e3V2VHJhbnNmb3JtOnt2YWx1ZTpuZXcgaHN0fSx0MkQ6e3ZhbHVlOm51bGx9fSx2ZXJ0ZXhTaGFkZXI6SmN0LmJhY2tncm91bmRfdmVydCxmcmFnbWVudFNoYWRlcjpKY3QuYmFja2dyb3VuZF9mcmFnfSxjdWJlOnt1bmlmb3JtczpBY3QoW1FjdC5lbnZtYXAse29wYWNpdHk6e3ZhbHVlOjF9fV0pLHZlcnRleFNoYWRlcjpKY3QuY3ViZV92ZXJ0LGZyYWdtZW50U2hhZGVyOkpjdC5jdWJlX2ZyYWd9LGVxdWlyZWN0Ont1bmlmb3Jtczp7dEVxdWlyZWN0Ont2YWx1ZTpudWxsfX0sdmVydGV4U2hhZGVyOkpjdC5lcXVpcmVjdF92ZXJ0LGZyYWdtZW50U2hhZGVyOkpjdC5lcXVpcmVjdF9mcmFnfSxkaXN0YW5jZVJHQkE6e3VuaWZvcm1zOkFjdChbUWN0LmNvbW1vbixRY3QuZGlzcGxhY2VtZW50bWFwLHtyZWZlcmVuY2VQb3NpdGlvbjp7dmFsdWU6bmV3IHdzdH0sbmVhckRpc3RhbmNlOnt2YWx1ZToxfSxmYXJEaXN0YW5jZTp7dmFsdWU6MWUzfX1dKSx2ZXJ0ZXhTaGFkZXI6SmN0LmRpc3RhbmNlUkdCQV92ZXJ0LGZyYWdtZW50U2hhZGVyOkpjdC5kaXN0YW5jZVJHQkFfZnJhZ30sc2hhZG93Ont1bmlmb3JtczpBY3QoW1FjdC5saWdodHMsUWN0LmZvZyx7Y29sb3I6e3ZhbHVlOm5ldyBabHQoMCl9LG9wYWNpdHk6e3ZhbHVlOjF9fV0pLHZlcnRleFNoYWRlcjpKY3Quc2hhZG93X3ZlcnQsZnJhZ21lbnRTaGFkZXI6SmN0LnNoYWRvd19mcmFnfX07ZnVuY3Rpb24gdGR0KHQsZSxuLG8saSl7Y29uc3QgYT1uZXcgWmx0KDApO2xldCByLHMsbD0wLGM9bnVsbCxkPTAscD1udWxsO2Z1bmN0aW9uIG0odCxlKXtuLmJ1ZmZlcnMuY29sb3Iuc2V0Q2xlYXIodC5yLHQuZyx0LmIsZSxpKX1yZXR1cm57Z2V0Q2xlYXJDb2xvcjpmdW5jdGlvbigpe3JldHVybiBhfSxzZXRDbGVhckNvbG9yOmZ1bmN0aW9uKHQsZT0xKXthLnNldCh0KSxsPWUsbShhLGwpfSxnZXRDbGVhckFscGhhOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LHNldENsZWFyQWxwaGE6ZnVuY3Rpb24odCl7bD10LG0oYSxsKX0scmVuZGVyOmZ1bmN0aW9uIGYobixpKXtsZXQgZj0hMSx1PSEwPT09aS5pc1NjZW5lP2kuYmFja2dyb3VuZDpudWxsO3UmJnUuaXNUZXh0dXJlJiYodT1lLmdldCh1KSk7Y29uc3QgZz10LnhyLGg9Zy5nZXRTZXNzaW9uJiZnLmdldFNlc3Npb24oKTtoJiYiYWRkaXRpdmUiPT09aC5lbnZpcm9ubWVudEJsZW5kTW9kZSYmKHU9bnVsbCksbnVsbD09PXU/bShhLGwpOnUmJnUuaXNDb2xvciYmKG0odSwxKSxmPSEwKSwodC5hdXRvQ2xlYXJ8fGYpJiZ0LmNsZWFyKHQuYXV0b0NsZWFyQ29sb3IsdC5hdXRvQ2xlYXJEZXB0aCx0LmF1dG9DbGVhclN0ZW5jaWwpLHUmJih1LmlzQ3ViZVRleHR1cmV8fHUubWFwcGluZz09PVNydCk/KHZvaWQgMD09PXMmJihzPW5ldyBTY3QobmV3IFJjdCgxLDEsMSksbmV3IE5jdCh7bmFtZToiQmFja2dyb3VuZEN1YmVNYXRlcmlhbCIsdW5pZm9ybXM6RWN0KCRjdC5jdWJlLnVuaWZvcm1zKSx2ZXJ0ZXhTaGFkZXI6JGN0LmN1YmUudmVydGV4U2hhZGVyLGZyYWdtZW50U2hhZGVyOiRjdC5jdWJlLmZyYWdtZW50U2hhZGVyLHNpZGU6MSxkZXB0aFRlc3Q6ITEsZGVwdGhXcml0ZTohMSxmb2c6ITF9KSkscy5nZW9tZXRyeS5kZWxldGVBdHRyaWJ1dGUoIm5vcm1hbCIpLHMuZ2VvbWV0cnkuZGVsZXRlQXR0cmlidXRlKCJ1diIpLHMub25CZWZvcmVSZW5kZXI9ZnVuY3Rpb24odCxlLG4pe3RoaXMubWF0cml4V29ybGQuY29weVBvc2l0aW9uKG4ubWF0cml4V29ybGQpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkocy5tYXRlcmlhbCwiZW52TWFwIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudW5pZm9ybXMuZW52TWFwLnZhbHVlfX0pLG8udXBkYXRlKHMpKSxzLm1hdGVyaWFsLnVuaWZvcm1zLmVudk1hcC52YWx1ZT11LHMubWF0ZXJpYWwudW5pZm9ybXMuZmxpcEVudk1hcC52YWx1ZT11LmlzQ3ViZVRleHR1cmUmJiExPT09dS5pc1JlbmRlclRhcmdldFRleHR1cmU/LTE6MSxjPT09dSYmZD09PXUudmVyc2lvbiYmcD09PXQudG9uZU1hcHBpbmd8fChzLm1hdGVyaWFsLm5lZWRzVXBkYXRlPSEwLGM9dSxkPXUudmVyc2lvbixwPXQudG9uZU1hcHBpbmcpLG4udW5zaGlmdChzLHMuZ2VvbWV0cnkscy5tYXRlcmlhbCwwLDAsbnVsbCkpOnUmJnUuaXNUZXh0dXJlJiYodm9pZCAwPT09ciYmKHI9bmV3IFNjdChuZXcgS2N0KDIsMiksbmV3IE5jdCh7bmFtZToiQmFja2dyb3VuZE1hdGVyaWFsIix1bmlmb3JtczpFY3QoJGN0LmJhY2tncm91bmQudW5pZm9ybXMpLHZlcnRleFNoYWRlcjokY3QuYmFja2dyb3VuZC52ZXJ0ZXhTaGFkZXIsZnJhZ21lbnRTaGFkZXI6JGN0LmJhY2tncm91bmQuZnJhZ21lbnRTaGFkZXIsc2lkZTowLGRlcHRoVGVzdDohMSxkZXB0aFdyaXRlOiExLGZvZzohMX0pKSxyLmdlb21ldHJ5LmRlbGV0ZUF0dHJpYnV0ZSgibm9ybWFsIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIubWF0ZXJpYWwsIm1hcCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnVuaWZvcm1zLnQyRC52YWx1ZX19KSxvLnVwZGF0ZShyKSksci5tYXRlcmlhbC51bmlmb3Jtcy50MkQudmFsdWU9dSwhMD09PXUubWF0cml4QXV0b1VwZGF0ZSYmdS51cGRhdGVNYXRyaXgoKSxyLm1hdGVyaWFsLnVuaWZvcm1zLnV2VHJhbnNmb3JtLnZhbHVlLmNvcHkodS5tYXRyaXgpLGM9PT11JiZkPT09dS52ZXJzaW9uJiZwPT09dC50b25lTWFwcGluZ3x8KHIubWF0ZXJpYWwubmVlZHNVcGRhdGU9ITAsYz11LGQ9dS52ZXJzaW9uLHA9dC50b25lTWFwcGluZyksbi51bnNoaWZ0KHIsci5nZW9tZXRyeSxyLm1hdGVyaWFsLDAsMCxudWxsKSl9fX1mdW5jdGlvbiBlZHQodCxlLG4sbyl7Y29uc3QgaT10LmdldFBhcmFtZXRlcigzNDkyMSksYT1vLmlzV2ViR0wyP251bGw6ZS5nZXQoIk9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0Iikscj1vLmlzV2ViR0wyfHxudWxsIT09YSxzPXt9LGw9bShudWxsKTtsZXQgYz1sO2Z1bmN0aW9uIGQoZSl7cmV0dXJuIG8uaXNXZWJHTDI/dC5iaW5kVmVydGV4QXJyYXkoZSk6YS5iaW5kVmVydGV4QXJyYXlPRVMoZSl9ZnVuY3Rpb24gcChlKXtyZXR1cm4gby5pc1dlYkdMMj90LmRlbGV0ZVZlcnRleEFycmF5KGUpOmEuZGVsZXRlVmVydGV4QXJyYXlPRVMoZSl9ZnVuY3Rpb24gbSh0KXtjb25zdCBlPVtdLG49W10sbz1bXTtmb3IobGV0IHQ9MDt0PGk7dCsrKWVbdF09MCxuW3RdPTAsb1t0XT0wO3JldHVybntnZW9tZXRyeTpudWxsLHByb2dyYW06bnVsbCx3aXJlZnJhbWU6ITEsbmV3QXR0cmlidXRlczplLGVuYWJsZWRBdHRyaWJ1dGVzOm4sYXR0cmlidXRlRGl2aXNvcnM6byxvYmplY3Q6dCxhdHRyaWJ1dGVzOnt9LGluZGV4Om51bGx9fWZ1bmN0aW9uIGYoKXtjb25zdCB0PWMubmV3QXR0cmlidXRlcztmb3IobGV0IGU9MCxuPXQubGVuZ3RoO2U8bjtlKyspdFtlXT0wfWZ1bmN0aW9uIHUodCl7Zyh0LDApfWZ1bmN0aW9uIGcobixpKXtjb25zdCBhPWMuZW5hYmxlZEF0dHJpYnV0ZXMscj1jLmF0dHJpYnV0ZURpdmlzb3JzO2lmKGMubmV3QXR0cmlidXRlc1tuXT0xLDA9PT1hW25dJiYodC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShuKSxhW25dPTEpLHJbbl0hPT1pKXsoby5pc1dlYkdMMj90OmUuZ2V0KCJBTkdMRV9pbnN0YW5jZWRfYXJyYXlzIikpW28uaXNXZWJHTDI/InZlcnRleEF0dHJpYkRpdmlzb3IiOiJ2ZXJ0ZXhBdHRyaWJEaXZpc29yQU5HTEUiXShuLGkpLHJbbl09aX19ZnVuY3Rpb24gaCgpe2NvbnN0IGU9Yy5uZXdBdHRyaWJ1dGVzLG49Yy5lbmFibGVkQXR0cmlidXRlcztmb3IobGV0IG89MCxpPW4ubGVuZ3RoO288aTtvKyspbltvXSE9PWVbb10mJih0LmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShvKSxuW29dPTApfWZ1bmN0aW9uIGIoZSxuLGksYSxyLHMpeyEwIT09by5pc1dlYkdMMnx8NTEyNCE9PWkmJjUxMjUhPT1pP3QudmVydGV4QXR0cmliUG9pbnRlcihlLG4saSxhLHIscyk6dC52ZXJ0ZXhBdHRyaWJJUG9pbnRlcihlLG4saSxyLHMpfWZ1bmN0aW9uIHkoKXtfKCksYyE9PWwmJihjPWwsZChjLm9iamVjdCkpfWZ1bmN0aW9uIF8oKXtsLmdlb21ldHJ5PW51bGwsbC5wcm9ncmFtPW51bGwsbC53aXJlZnJhbWU9ITF9cmV0dXJue3NldHVwOmZ1bmN0aW9uIEMoaSxsLHAseSxfKXtsZXQgQz0hMTtpZihyKXtjb25zdCBlPShmdW5jdGlvbiBNKGUsbixpKXtjb25zdCByPSEwPT09aS53aXJlZnJhbWU7bGV0IGw9c1tlLmlkXTt2b2lkIDA9PT1sJiYobD17fSxzW2UuaWRdPWwpO2xldCBjPWxbbi5pZF07dm9pZCAwPT09YyYmKGM9e30sbFtuLmlkXT1jKTtsZXQgZD1jW3JdO3ZvaWQgMD09PWQmJihkPW0oKGZ1bmN0aW9uIHAoKXtyZXR1cm4gby5pc1dlYkdMMj90LmNyZWF0ZVZlcnRleEFycmF5KCk6YS5jcmVhdGVWZXJ0ZXhBcnJheU9FUygpfSkoKSksY1tyXT1kKTtyZXR1cm4gZH0pKHkscCxsKTtjIT09ZSYmKGM9ZSxkKGMub2JqZWN0KSksQz0oZnVuY3Rpb24gdih0LGUpe2NvbnN0IG49Yy5hdHRyaWJ1dGVzLG89dC5hdHRyaWJ1dGVzO2xldCBpPTA7Zm9yKGNvbnN0IHQgaW4gbyl7Y29uc3QgZT1uW3RdLGE9b1t0XTtpZih2b2lkIDA9PT1lKXJldHVybiEwO2lmKGUuYXR0cmlidXRlIT09YSlyZXR1cm4hMDtpZihlLmRhdGEhPT1hLmRhdGEpcmV0dXJuITA7aSsrfXJldHVybiBjLmF0dHJpYnV0ZXNOdW0hPT1pfHxjLmluZGV4IT09ZX0pKHksXyksQyYmKGZ1bmN0aW9uIHgodCxlKXtjb25zdCBuPXt9LG89dC5hdHRyaWJ1dGVzO2xldCBpPTA7Zm9yKGNvbnN0IHQgaW4gbyl7Y29uc3QgZT1vW3RdLGE9e307YS5hdHRyaWJ1dGU9ZSxlLmRhdGEmJihhLmRhdGE9ZS5kYXRhKSxuW3RdPWEsaSsrfWMuYXR0cmlidXRlcz1uLGMuYXR0cmlidXRlc051bT1pLGMuaW5kZXg9ZX0pKHksXyl9ZWxzZXtjb25zdCB0PSEwPT09bC53aXJlZnJhbWU7Yy5nZW9tZXRyeT09PXkuaWQmJmMucHJvZ3JhbT09PXAuaWQmJmMud2lyZWZyYW1lPT09dHx8KGMuZ2VvbWV0cnk9eS5pZCxjLnByb2dyYW09cC5pZCxjLndpcmVmcmFtZT10LEM9ITApfSEwPT09aS5pc0luc3RhbmNlZE1lc2gmJihDPSEwKSxudWxsIT09XyYmbi51cGRhdGUoXywzNDk2MyksQyYmKCEoZnVuY3Rpb24gTyhpLGEscixzKXtpZighMT09PW8uaXNXZWJHTDImJihpLmlzSW5zdGFuY2VkTWVzaHx8cy5pc0luc3RhbmNlZEJ1ZmZlckdlb21ldHJ5KSYmbnVsbD09PWUuZ2V0KCJBTkdMRV9pbnN0YW5jZWRfYXJyYXlzIikpcmV0dXJuO2YoKTtjb25zdCBsPXMuYXR0cmlidXRlcyxjPXIuZ2V0QXR0cmlidXRlcygpLGQ9YS5kZWZhdWx0QXR0cmlidXRlVmFsdWVzO2Zvcihjb25zdCBlIGluIGMpe2NvbnN0IG89Y1tlXTtpZihvPj0wKXtjb25zdCBhPWxbZV07aWYodm9pZCAwIT09YSl7Y29uc3QgZT1hLm5vcm1hbGl6ZWQsaT1hLml0ZW1TaXplLHI9bi5nZXQoYSk7aWYodm9pZCAwPT09ciljb250aW51ZTtjb25zdCBsPXIuYnVmZmVyLGM9ci50eXBlLGQ9ci5ieXRlc1BlckVsZW1lbnQ7aWYoYS5pc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlKXtjb25zdCBuPWEuZGF0YSxyPW4uc3RyaWRlLHA9YS5vZmZzZXQ7biYmbi5pc0luc3RhbmNlZEludGVybGVhdmVkQnVmZmVyPyhnKG8sbi5tZXNoUGVyQXR0cmlidXRlKSx2b2lkIDA9PT1zLl9tYXhJbnN0YW5jZUNvdW50JiYocy5fbWF4SW5zdGFuY2VDb3VudD1uLm1lc2hQZXJBdHRyaWJ1dGUqbi5jb3VudCkpOnUobyksdC5iaW5kQnVmZmVyKDM0OTYyLGwpLGIobyxpLGMsZSxyKmQscCpkKX1lbHNlIGEuaXNJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGU/KGcobyxhLm1lc2hQZXJBdHRyaWJ1dGUpLHZvaWQgMD09PXMuX21heEluc3RhbmNlQ291bnQmJihzLl9tYXhJbnN0YW5jZUNvdW50PWEubWVzaFBlckF0dHJpYnV0ZSphLmNvdW50KSk6dShvKSx0LmJpbmRCdWZmZXIoMzQ5NjIsbCksYihvLGksYyxlLDAsMCl9ZWxzZSBpZigiaW5zdGFuY2VNYXRyaXgiPT09ZSl7Y29uc3QgZT1uLmdldChpLmluc3RhbmNlTWF0cml4KTtpZih2b2lkIDA9PT1lKWNvbnRpbnVlO2NvbnN0IGE9ZS5idWZmZXIscj1lLnR5cGU7ZyhvKzAsMSksZyhvKzEsMSksZyhvKzIsMSksZyhvKzMsMSksdC5iaW5kQnVmZmVyKDM0OTYyLGEpLHQudmVydGV4QXR0cmliUG9pbnRlcihvKzAsNCxyLCExLDY0LDApLHQudmVydGV4QXR0cmliUG9pbnRlcihvKzEsNCxyLCExLDY0LDE2KSx0LnZlcnRleEF0dHJpYlBvaW50ZXIobysyLDQsciwhMSw2NCwzMiksdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKG8rMyw0LHIsITEsNjQsNDgpfWVsc2UgaWYoImluc3RhbmNlQ29sb3IiPT09ZSl7Y29uc3QgZT1uLmdldChpLmluc3RhbmNlQ29sb3IpO2lmKHZvaWQgMD09PWUpY29udGludWU7Y29uc3QgYT1lLmJ1ZmZlcixyPWUudHlwZTtnKG8sMSksdC5iaW5kQnVmZmVyKDM0OTYyLGEpLHQudmVydGV4QXR0cmliUG9pbnRlcihvLDMsciwhMSwxMiwwKX1lbHNlIGlmKHZvaWQgMCE9PWQpe2NvbnN0IG49ZFtlXTtpZih2b2lkIDAhPT1uKXN3aXRjaChuLmxlbmd0aCl7Y2FzZSAyOnQudmVydGV4QXR0cmliMmZ2KG8sbik7YnJlYWs7Y2FzZSAzOnQudmVydGV4QXR0cmliM2Z2KG8sbik7YnJlYWs7Y2FzZSA0OnQudmVydGV4QXR0cmliNGZ2KG8sbik7YnJlYWs7ZGVmYXVsdDp0LnZlcnRleEF0dHJpYjFmdihvLG4pfX19fWgoKX0pKGksbCxwLHkpLG51bGwhPT1fJiZ0LmJpbmRCdWZmZXIoMzQ5NjMsbi5nZXQoXykuYnVmZmVyKSl9LHJlc2V0OnkscmVzZXREZWZhdWx0U3RhdGU6XyxkaXNwb3NlOmZ1bmN0aW9uIE0oKXt5KCk7Zm9yKGNvbnN0IHQgaW4gcyl7Y29uc3QgZT1zW3RdO2Zvcihjb25zdCB0IGluIGUpe2NvbnN0IG49ZVt0XTtmb3IoY29uc3QgdCBpbiBuKXAoblt0XS5vYmplY3QpLGRlbGV0ZSBuW3RdO2RlbGV0ZSBlW3RdfWRlbGV0ZSBzW3RdfX0scmVsZWFzZVN0YXRlc09mR2VvbWV0cnk6ZnVuY3Rpb24gdih0KXtpZih2b2lkIDA9PT1zW3QuaWRdKXJldHVybjtjb25zdCBlPXNbdC5pZF07Zm9yKGNvbnN0IHQgaW4gZSl7Y29uc3Qgbj1lW3RdO2Zvcihjb25zdCB0IGluIG4pcChuW3RdLm9iamVjdCksZGVsZXRlIG5bdF07ZGVsZXRlIGVbdF19ZGVsZXRlIHNbdC5pZF19LHJlbGVhc2VTdGF0ZXNPZlByb2dyYW06ZnVuY3Rpb24geCh0KXtmb3IoY29uc3QgZSBpbiBzKXtjb25zdCBuPXNbZV07aWYodm9pZCAwPT09blt0LmlkXSljb250aW51ZTtjb25zdCBvPW5bdC5pZF07Zm9yKGNvbnN0IHQgaW4gbylwKG9bdF0ub2JqZWN0KSxkZWxldGUgb1t0XTtkZWxldGUgblt0LmlkXX19LGluaXRBdHRyaWJ1dGVzOmYsZW5hYmxlQXR0cmlidXRlOnUsZGlzYWJsZVVudXNlZEF0dHJpYnV0ZXM6aH19ZnVuY3Rpb24gbmR0KHQsZSxuLG8pe2NvbnN0IGk9by5pc1dlYkdMMjtsZXQgYTt0aGlzLnNldE1vZGU9ZnVuY3Rpb24gcih0KXthPXR9LHRoaXMucmVuZGVyPWZ1bmN0aW9uIHMoZSxvKXt0LmRyYXdBcnJheXMoYSxlLG8pLG4udXBkYXRlKG8sYSwxKX0sdGhpcy5yZW5kZXJJbnN0YW5jZXM9ZnVuY3Rpb24gbChvLHIscyl7aWYoMD09PXMpcmV0dXJuO2xldCBsLGM7aWYoaSlsPXQsYz0iZHJhd0FycmF5c0luc3RhbmNlZCI7ZWxzZSBpZihsPWUuZ2V0KCJBTkdMRV9pbnN0YW5jZWRfYXJyYXlzIiksYz0iZHJhd0FycmF5c0luc3RhbmNlZEFOR0xFIixudWxsPT09bClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTEJ1ZmZlclJlbmRlcmVyOiB1c2luZyBUSFJFRS5JbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSBidXQgaGFyZHdhcmUgZG9lcyBub3Qgc3VwcG9ydCBleHRlbnNpb24gQU5HTEVfaW5zdGFuY2VkX2FycmF5cy4iKTtsW2NdKGEsbyxyLHMpLG4udXBkYXRlKHIsYSxzKX19ZnVuY3Rpb24gb2R0KHQsZSxuKXtsZXQgbztmdW5jdGlvbiBpKGUpe2lmKCJoaWdocCI9PT1lKXtpZih0LmdldFNoYWRlclByZWNpc2lvbkZvcm1hdCgzNTYzMywzNjMzOCkucHJlY2lzaW9uPjAmJnQuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KDM1NjMyLDM2MzM4KS5wcmVjaXNpb24+MClyZXR1cm4iaGlnaHAiO2U9Im1lZGl1bXAifXJldHVybiJtZWRpdW1wIj09PWUmJnQuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KDM1NjMzLDM2MzM3KS5wcmVjaXNpb24+MCYmdC5nZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoMzU2MzIsMzYzMzcpLnByZWNpc2lvbj4wPyJtZWRpdW1wIjoibG93cCJ9Y29uc3QgYT0idW5kZWZpbmVkIiE9dHlwZW9mIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQmJnQgaW5zdGFuY2VvZiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0fHwidW5kZWZpbmVkIiE9dHlwZW9mIFdlYkdMMkNvbXB1dGVSZW5kZXJpbmdDb250ZXh0JiZ0IGluc3RhbmNlb2YgV2ViR0wyQ29tcHV0ZVJlbmRlcmluZ0NvbnRleHQ7bGV0IHI9dm9pZCAwIT09bi5wcmVjaXNpb24/bi5wcmVjaXNpb246ImhpZ2hwIjtjb25zdCBzPWkocik7cyE9PXImJihjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IixyLCJub3Qgc3VwcG9ydGVkLCB1c2luZyIscywiaW5zdGVhZC4iKSxyPXMpO2NvbnN0IGw9YXx8ZS5oYXMoIldFQkdMX2RyYXdfYnVmZmVycyIpLGM9ITA9PT1uLmxvZ2FyaXRobWljRGVwdGhCdWZmZXIsZD10LmdldFBhcmFtZXRlcigzNDkzMCkscD10LmdldFBhcmFtZXRlcigzNTY2MCksbT10LmdldFBhcmFtZXRlcigzMzc5KSxmPXQuZ2V0UGFyYW1ldGVyKDM0MDc2KSx1PXQuZ2V0UGFyYW1ldGVyKDM0OTIxKSxnPXQuZ2V0UGFyYW1ldGVyKDM2MzQ3KSxoPXQuZ2V0UGFyYW1ldGVyKDM2MzQ4KSxiPXQuZ2V0UGFyYW1ldGVyKDM2MzQ5KSx5PXA+MCxfPWF8fGUuaGFzKCJPRVNfdGV4dHVyZV9mbG9hdCIpO3JldHVybntpc1dlYkdMMjphLGRyYXdCdWZmZXJzOmwsZ2V0TWF4QW5pc290cm9weTpmdW5jdGlvbiBDKCl7aWYodm9pZCAwIT09bylyZXR1cm4gbztpZighMD09PWUuaGFzKCJFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSl7Y29uc3Qgbj1lLmdldCgiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIik7bz10LmdldFBhcmFtZXRlcihuLk1BWF9URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCl9ZWxzZSBvPTA7cmV0dXJuIG99LGdldE1heFByZWNpc2lvbjppLHByZWNpc2lvbjpyLGxvZ2FyaXRobWljRGVwdGhCdWZmZXI6YyxtYXhUZXh0dXJlczpkLG1heFZlcnRleFRleHR1cmVzOnAsbWF4VGV4dHVyZVNpemU6bSxtYXhDdWJlbWFwU2l6ZTpmLG1heEF0dHJpYnV0ZXM6dSxtYXhWZXJ0ZXhVbmlmb3JtczpnLG1heFZhcnlpbmdzOmgsbWF4RnJhZ21lbnRVbmlmb3JtczpiLHZlcnRleFRleHR1cmVzOnksZmxvYXRGcmFnbWVudFRleHR1cmVzOl8sZmxvYXRWZXJ0ZXhUZXh0dXJlczp5JiZfLG1heFNhbXBsZXM6YT90LmdldFBhcmFtZXRlcigzNjE4Myk6MH19ZnVuY3Rpb24gaWR0KHQpe2NvbnN0IGU9dGhpcztsZXQgbj1udWxsLG89MCxpPSExLGE9ITE7Y29uc3Qgcj1uZXcgV2N0LHM9bmV3IGhzdCxsPXt2YWx1ZTpudWxsLG5lZWRzVXBkYXRlOiExfTtmdW5jdGlvbiBjKCl7bC52YWx1ZSE9PW4mJihsLnZhbHVlPW4sbC5uZWVkc1VwZGF0ZT1vPjApLGUubnVtUGxhbmVzPW8sZS5udW1JbnRlcnNlY3Rpb249MH1mdW5jdGlvbiBkKHQsbixvLGkpe2NvbnN0IGE9bnVsbCE9PXQ/dC5sZW5ndGg6MDtsZXQgYz1udWxsO2lmKDAhPT1hKXtpZihjPWwudmFsdWUsITAhPT1pfHxudWxsPT09Yyl7Y29uc3QgZT1vKzQqYSxpPW4ubWF0cml4V29ybGRJbnZlcnNlO3MuZ2V0Tm9ybWFsTWF0cml4KGkpLChudWxsPT09Y3x8Yy5sZW5ndGg8ZSkmJihjPW5ldyBGbG9hdDMyQXJyYXkoZSkpO2ZvcihsZXQgZT0wLG49bztlIT09YTsrK2Usbis9NClyLmNvcHkodFtlXSkuYXBwbHlNYXRyaXg0KGkscyksci5ub3JtYWwudG9BcnJheShjLG4pLGNbbiszXT1yLmNvbnN0YW50fWwudmFsdWU9YyxsLm5lZWRzVXBkYXRlPSEwfXJldHVybiBlLm51bVBsYW5lcz1hLGUubnVtSW50ZXJzZWN0aW9uPTAsY310aGlzLnVuaWZvcm09bCx0aGlzLm51bVBsYW5lcz0wLHRoaXMubnVtSW50ZXJzZWN0aW9uPTAsdGhpcy5pbml0PWZ1bmN0aW9uKHQsZSxhKXtjb25zdCByPTAhPT10Lmxlbmd0aHx8ZXx8MCE9PW98fGk7cmV0dXJuIGk9ZSxuPWQodCxhLDApLG89dC5sZW5ndGgscn0sdGhpcy5iZWdpblNoYWRvd3M9ZnVuY3Rpb24oKXthPSEwLGQobnVsbCl9LHRoaXMuZW5kU2hhZG93cz1mdW5jdGlvbigpe2E9ITEsYygpfSx0aGlzLnNldFN0YXRlPWZ1bmN0aW9uKGUscixzKXtjb25zdCBwPWUuY2xpcHBpbmdQbGFuZXMsbT1lLmNsaXBJbnRlcnNlY3Rpb24sZj1lLmNsaXBTaGFkb3dzLHU9dC5nZXQoZSk7aWYoIWl8fG51bGw9PT1wfHwwPT09cC5sZW5ndGh8fGEmJiFmKWE/ZChudWxsKTpjKCk7ZWxzZXtjb25zdCB0PWE/MDpvLGU9NCp0O2xldCBpPXUuY2xpcHBpbmdTdGF0ZXx8bnVsbDtsLnZhbHVlPWksaT1kKHAscixlLHMpO2ZvcihsZXQgdD0wO3QhPT1lOysrdClpW3RdPW5bdF07dS5jbGlwcGluZ1N0YXRlPWksdGhpcy5udW1JbnRlcnNlY3Rpb249bT90aGlzLm51bVBsYW5lczowLHRoaXMubnVtUGxhbmVzKz10fX19ZnVuY3Rpb24gYWR0KHQpe2xldCBlPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIG4odCxlKXtyZXR1cm4gMzAzPT09ZT90Lm1hcHBpbmc9d3J0OjMwND09PWUmJih0Lm1hcHBpbmc9a3J0KSx0fWZ1bmN0aW9uIG8odCl7Y29uc3Qgbj10LnRhcmdldDtuLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLG8pO2NvbnN0IGk9ZS5nZXQobik7dm9pZCAwIT09aSYmKGUuZGVsZXRlKG4pLGkuZGlzcG9zZSgpKX1yZXR1cm57Z2V0OmZ1bmN0aW9uIGkoYSl7aWYoYSYmYS5pc1RleHR1cmUmJiExPT09YS5pc1JlbmRlclRhcmdldFRleHR1cmUpe2NvbnN0IGk9YS5tYXBwaW5nO2lmKDMwMz09PWl8fDMwND09PWkpe2lmKGUuaGFzKGEpKXtyZXR1cm4gbihlLmdldChhKS50ZXh0dXJlLGEubWFwcGluZyl9e2NvbnN0IGk9YS5pbWFnZTtpZihpJiZpLmhlaWdodD4wKXtjb25zdCByPXQuZ2V0UmVuZGVyVGFyZ2V0KCkscz1uZXcgQmN0KGkuaGVpZ2h0LzIpO3JldHVybiBzLmZyb21FcXVpcmVjdGFuZ3VsYXJUZXh0dXJlKHQsYSksZS5zZXQoYSxzKSx0LnNldFJlbmRlclRhcmdldChyKSxhLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLG8pLG4ocy50ZXh0dXJlLGEubWFwcGluZyl9cmV0dXJuIG51bGx9fX1yZXR1cm4gYX0sZGlzcG9zZTpmdW5jdGlvbiBhKCl7ZT1uZXcgV2Vha01hcH19fSRjdC5waHlzaWNhbD17dW5pZm9ybXM6QWN0KFskY3Quc3RhbmRhcmQudW5pZm9ybXMse2NsZWFyY29hdDp7dmFsdWU6MH0sY2xlYXJjb2F0TWFwOnt2YWx1ZTpudWxsfSxjbGVhcmNvYXRSb3VnaG5lc3M6e3ZhbHVlOjB9LGNsZWFyY29hdFJvdWdobmVzc01hcDp7dmFsdWU6bnVsbH0sY2xlYXJjb2F0Tm9ybWFsU2NhbGU6e3ZhbHVlOm5ldyBnc3QoMSwxKX0sY2xlYXJjb2F0Tm9ybWFsTWFwOnt2YWx1ZTpudWxsfSxzaGVlbjp7dmFsdWU6bmV3IFpsdCgwKX0sdHJhbnNtaXNzaW9uOnt2YWx1ZTowfSx0cmFuc21pc3Npb25NYXA6e3ZhbHVlOm51bGx9LHRyYW5zbWlzc2lvblNhbXBsZXJTaXplOnt2YWx1ZTpuZXcgZ3N0fSx0cmFuc21pc3Npb25TYW1wbGVyTWFwOnt2YWx1ZTpudWxsfSx0aGlja25lc3M6e3ZhbHVlOjB9LHRoaWNrbmVzc01hcDp7dmFsdWU6bnVsbH0sYXR0ZW51YXRpb25EaXN0YW5jZTp7dmFsdWU6MH0sYXR0ZW51YXRpb25UaW50Ont2YWx1ZTpuZXcgWmx0KDApfSxzcGVjdWxhckludGVuc2l0eTp7dmFsdWU6MH0sc3BlY3VsYXJJbnRlbnNpdHlNYXA6e3ZhbHVlOm51bGx9LHNwZWN1bGFyVGludDp7dmFsdWU6bmV3IFpsdCgxLDEsMSl9LHNwZWN1bGFyVGludE1hcDp7dmFsdWU6bnVsbH19XSksdmVydGV4U2hhZGVyOkpjdC5tZXNocGh5c2ljYWxfdmVydCxmcmFnbWVudFNoYWRlcjpKY3QubWVzaHBoeXNpY2FsX2ZyYWd9O2NsYXNzIHJkdCBleHRlbmRzIHpjdHtjb25zdHJ1Y3Rvcih0PS0xLGU9MSxuPTEsbz0tMSxpPS4xLGE9MmUzKXtzdXBlcigpLHRoaXMudHlwZT0iT3J0aG9ncmFwaGljQ2FtZXJhIix0aGlzLnpvb209MSx0aGlzLnZpZXc9bnVsbCx0aGlzLmxlZnQ9dCx0aGlzLnJpZ2h0PWUsdGhpcy50b3A9bix0aGlzLmJvdHRvbT1vLHRoaXMubmVhcj1pLHRoaXMuZmFyPWEsdGhpcy51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9Y29weSh0LGUpe3JldHVybiBzdXBlci5jb3B5KHQsZSksdGhpcy5sZWZ0PXQubGVmdCx0aGlzLnJpZ2h0PXQucmlnaHQsdGhpcy50b3A9dC50b3AsdGhpcy5ib3R0b209dC5ib3R0b20sdGhpcy5uZWFyPXQubmVhcix0aGlzLmZhcj10LmZhcix0aGlzLnpvb209dC56b29tLHRoaXMudmlldz1udWxsPT09dC52aWV3P251bGw6T2JqZWN0LmFzc2lnbih7fSx0LnZpZXcpLHRoaXN9c2V0Vmlld09mZnNldCh0LGUsbixvLGksYSl7bnVsbD09PXRoaXMudmlldyYmKHRoaXMudmlldz17ZW5hYmxlZDohMCxmdWxsV2lkdGg6MSxmdWxsSGVpZ2h0OjEsb2Zmc2V0WDowLG9mZnNldFk6MCx3aWR0aDoxLGhlaWdodDoxfSksdGhpcy52aWV3LmVuYWJsZWQ9ITAsdGhpcy52aWV3LmZ1bGxXaWR0aD10LHRoaXMudmlldy5mdWxsSGVpZ2h0PWUsdGhpcy52aWV3Lm9mZnNldFg9bix0aGlzLnZpZXcub2Zmc2V0WT1vLHRoaXMudmlldy53aWR0aD1pLHRoaXMudmlldy5oZWlnaHQ9YSx0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKX1jbGVhclZpZXdPZmZzZXQoKXtudWxsIT09dGhpcy52aWV3JiYodGhpcy52aWV3LmVuYWJsZWQ9ITEpLHRoaXMudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfXVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKXtjb25zdCB0PSh0aGlzLnJpZ2h0LXRoaXMubGVmdCkvKDIqdGhpcy56b29tKSxlPSh0aGlzLnRvcC10aGlzLmJvdHRvbSkvKDIqdGhpcy56b29tKSxuPSh0aGlzLnJpZ2h0K3RoaXMubGVmdCkvMixvPSh0aGlzLnRvcCt0aGlzLmJvdHRvbSkvMjtsZXQgaT1uLXQsYT1uK3Qscj1vK2Uscz1vLWU7aWYobnVsbCE9PXRoaXMudmlldyYmdGhpcy52aWV3LmVuYWJsZWQpe2NvbnN0IHQ9KHRoaXMucmlnaHQtdGhpcy5sZWZ0KS90aGlzLnZpZXcuZnVsbFdpZHRoL3RoaXMuem9vbSxlPSh0aGlzLnRvcC10aGlzLmJvdHRvbSkvdGhpcy52aWV3LmZ1bGxIZWlnaHQvdGhpcy56b29tO2krPXQqdGhpcy52aWV3Lm9mZnNldFgsYT1pK3QqdGhpcy52aWV3LndpZHRoLHItPWUqdGhpcy52aWV3Lm9mZnNldFkscz1yLWUqdGhpcy52aWV3LmhlaWdodH10aGlzLnByb2plY3Rpb25NYXRyaXgubWFrZU9ydGhvZ3JhcGhpYyhpLGEscixzLHRoaXMubmVhcix0aGlzLmZhciksdGhpcy5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZS5jb3B5KHRoaXMucHJvamVjdGlvbk1hdHJpeCkuaW52ZXJ0KCl9dG9KU09OKHQpe2NvbnN0IGU9c3VwZXIudG9KU09OKHQpO3JldHVybiBlLm9iamVjdC56b29tPXRoaXMuem9vbSxlLm9iamVjdC5sZWZ0PXRoaXMubGVmdCxlLm9iamVjdC5yaWdodD10aGlzLnJpZ2h0LGUub2JqZWN0LnRvcD10aGlzLnRvcCxlLm9iamVjdC5ib3R0b209dGhpcy5ib3R0b20sZS5vYmplY3QubmVhcj10aGlzLm5lYXIsZS5vYmplY3QuZmFyPXRoaXMuZmFyLG51bGwhPT10aGlzLnZpZXcmJihlLm9iamVjdC52aWV3PU9iamVjdC5hc3NpZ24oe30sdGhpcy52aWV3KSksZX19cmR0LnByb3RvdHlwZS5pc09ydGhvZ3JhcGhpY0NhbWVyYT0hMDtjbGFzcyBzZHQgZXh0ZW5kcyBOY3R7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy50eXBlPSJSYXdTaGFkZXJNYXRlcmlhbCJ9fXNkdC5wcm90b3R5cGUuaXNSYXdTaGFkZXJNYXRlcmlhbD0hMDtjb25zdCBsZHQ9TWF0aC5wb3coMiw4KSxjZHQ9Wy4xMjUsLjIxNSwuMzUsLjQ0NiwuNTI2LC41ODJdLGRkdD01K2NkdC5sZW5ndGgscGR0PTIwLG1kdD17W1FydF06MCxbJHJ0XToxLFtlc3RdOjIsMzAwNDozLDMwMDU6NCwzMDA2OjUsW3RzdF06Nn0sZmR0PW5ldyBYbHQoe3NpZGU6MSxkZXB0aFdyaXRlOiExLGRlcHRoVGVzdDohMX0pLHVkdD1uZXcgU2N0KG5ldyBSY3QsZmR0KSxnZHQ9bmV3IHJkdCx7X2xvZFBsYW5lczpoZHQsX3NpemVMb2RzOmJkdCxfc2lnbWFzOnlkdH09a2R0KCksX2R0PW5ldyBabHQ7bGV0IENkdD1udWxsO2NvbnN0IE1kdD0oMStNYXRoLnNxcnQoNSkpLzIsdmR0PTEvTWR0LHhkdD1bbmV3IHdzdCgxLDEsMSksbmV3IHdzdCgtMSwxLDEpLG5ldyB3c3QoMSwxLC0xKSxuZXcgd3N0KC0xLDEsLTEpLG5ldyB3c3QoMCxNZHQsdmR0KSxuZXcgd3N0KDAsTWR0LC12ZHQpLG5ldyB3c3QodmR0LDAsTWR0KSxuZXcgd3N0KC12ZHQsMCxNZHQpLG5ldyB3c3QoTWR0LHZkdCwwKSxuZXcgd3N0KC1NZHQsdmR0LDApXTtmdW5jdGlvbiBPZHQodCl7Y29uc3QgZT1NYXRoLm1heCh0LnIsdC5nLHQuYiksbj1NYXRoLm1pbihNYXRoLm1heChNYXRoLmNlaWwoTWF0aC5sb2cyKGUpKSwtMTI4KSwxMjcpO3QubXVsdGlwbHlTY2FsYXIoTWF0aC5wb3coMiwtbikpO3JldHVybihuKzEyOCkvMjU1fWNsYXNzIFBkdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9yZW5kZXJlcj10LHRoaXMuX3BpbmdQb25nUmVuZGVyVGFyZ2V0PW51bGwsdGhpcy5fYmx1ck1hdGVyaWFsPShmdW5jdGlvbiBlKHQpe2NvbnN0IGU9bmV3IEZsb2F0MzJBcnJheSh0KSxuPW5ldyB3c3QoMCwxLDApO3JldHVybiBuZXcgc2R0KHtuYW1lOiJTcGhlcmljYWxHYXVzc2lhbkJsdXIiLGRlZmluZXM6e246dH0sdW5pZm9ybXM6e2Vudk1hcDp7dmFsdWU6bnVsbH0sc2FtcGxlczp7dmFsdWU6MX0sd2VpZ2h0czp7dmFsdWU6ZX0sbGF0aXR1ZGluYWw6e3ZhbHVlOiExfSxkVGhldGE6e3ZhbHVlOjB9LG1pcEludDp7dmFsdWU6MH0scG9sZUF4aXM6e3ZhbHVlOm59LGlucHV0RW5jb2Rpbmc6e3ZhbHVlOm1kdFszZTNdfSxvdXRwdXRFbmNvZGluZzp7dmFsdWU6bWR0WzNlM119fSx2ZXJ0ZXhTaGFkZXI6QWR0KCksZnJhZ21lbnRTaGFkZXI6YFxuXG5cdFx0XHRwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcblx0XHRcdHByZWNpc2lvbiBtZWRpdW1wIGludDtcblxuXHRcdFx0dmFyeWluZyB2ZWMzIHZPdXRwdXREaXJlY3Rpb247XG5cblx0XHRcdHVuaWZvcm0gc2FtcGxlcjJEIGVudk1hcDtcblx0XHRcdHVuaWZvcm0gaW50IHNhbXBsZXM7XG5cdFx0XHR1bmlmb3JtIGZsb2F0IHdlaWdodHNbIG4gXTtcblx0XHRcdHVuaWZvcm0gYm9vbCBsYXRpdHVkaW5hbDtcblx0XHRcdHVuaWZvcm0gZmxvYXQgZFRoZXRhO1xuXHRcdFx0dW5pZm9ybSBmbG9hdCBtaXBJbnQ7XG5cdFx0XHR1bmlmb3JtIHZlYzMgcG9sZUF4aXM7XG5cblx0XHRcdCR7VGR0KCl9XG5cblx0XHRcdCNkZWZpbmUgRU5WTUFQX1RZUEVfQ1VCRV9VVlxuXHRcdFx0I2luY2x1ZGUgPGN1YmVfdXZfcmVmbGVjdGlvbl9mcmFnbWVudD5cblxuXHRcdFx0dmVjMyBnZXRTYW1wbGUoIGZsb2F0IHRoZXRhLCB2ZWMzIGF4aXMgKSB7XG5cblx0XHRcdFx0ZmxvYXQgY29zVGhldGEgPSBjb3MoIHRoZXRhICk7XG5cdFx0XHRcdC8vIFJvZHJpZ3VlcycgYXhpcy1hbmdsZSByb3RhdGlvblxuXHRcdFx0XHR2ZWMzIHNhbXBsZURpcmVjdGlvbiA9IHZPdXRwdXREaXJlY3Rpb24gKiBjb3NUaGV0YVxuXHRcdFx0XHRcdCsgY3Jvc3MoIGF4aXMsIHZPdXRwdXREaXJlY3Rpb24gKSAqIHNpbiggdGhldGEgKVxuXHRcdFx0XHRcdCsgYXhpcyAqIGRvdCggYXhpcywgdk91dHB1dERpcmVjdGlvbiApICogKCAxLjAgLSBjb3NUaGV0YSApO1xuXG5cdFx0XHRcdHJldHVybiBiaWxpbmVhckN1YmVVViggZW52TWFwLCBzYW1wbGVEaXJlY3Rpb24sIG1pcEludCApO1xuXG5cdFx0XHR9XG5cblx0XHRcdHZvaWQgbWFpbigpIHtcblxuXHRcdFx0XHR2ZWMzIGF4aXMgPSBsYXRpdHVkaW5hbCA/IHBvbGVBeGlzIDogY3Jvc3MoIHBvbGVBeGlzLCB2T3V0cHV0RGlyZWN0aW9uICk7XG5cblx0XHRcdFx0aWYgKCBhbGwoIGVxdWFsKCBheGlzLCB2ZWMzKCAwLjAgKSApICkgKSB7XG5cblx0XHRcdFx0XHRheGlzID0gdmVjMyggdk91dHB1dERpcmVjdGlvbi56LCAwLjAsIC0gdk91dHB1dERpcmVjdGlvbi54ICk7XG5cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGF4aXMgPSBub3JtYWxpemUoIGF4aXMgKTtcblxuXHRcdFx0XHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCAwLjAsIDAuMCwgMC4wLCAxLjAgKTtcblx0XHRcdFx0Z2xfRnJhZ0NvbG9yLnJnYiArPSB3ZWlnaHRzWyAwIF0gKiBnZXRTYW1wbGUoIDAuMCwgYXhpcyApO1xuXG5cdFx0XHRcdGZvciAoIGludCBpID0gMTsgaSA8IG47IGkrKyApIHtcblxuXHRcdFx0XHRcdGlmICggaSA+PSBzYW1wbGVzICkge1xuXG5cdFx0XHRcdFx0XHRicmVhaztcblxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGZsb2F0IHRoZXRhID0gZFRoZXRhICogZmxvYXQoIGkgKTtcblx0XHRcdFx0XHRnbF9GcmFnQ29sb3IucmdiICs9IHdlaWdodHNbIGkgXSAqIGdldFNhbXBsZSggLTEuMCAqIHRoZXRhLCBheGlzICk7XG5cdFx0XHRcdFx0Z2xfRnJhZ0NvbG9yLnJnYiArPSB3ZWlnaHRzWyBpIF0gKiBnZXRTYW1wbGUoIHRoZXRhLCBheGlzICk7XG5cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGdsX0ZyYWdDb2xvciA9IGxpbmVhclRvT3V0cHV0VGV4ZWwoIGdsX0ZyYWdDb2xvciApO1xuXG5cdFx0XHR9XG5cdFx0YCxibGVuZGluZzowLGRlcHRoVGVzdDohMSxkZXB0aFdyaXRlOiExfSl9KShwZHQpLHRoaXMuX2VxdWlyZWN0U2hhZGVyPW51bGwsdGhpcy5fY3ViZW1hcFNoYWRlcj1udWxsLHRoaXMuX2NvbXBpbGVNYXRlcmlhbCh0aGlzLl9ibHVyTWF0ZXJpYWwpfWZyb21TY2VuZSh0LGU9MCxuPS4xLG89MTAwKXtDZHQ9dGhpcy5fcmVuZGVyZXIuZ2V0UmVuZGVyVGFyZ2V0KCk7Y29uc3QgaT10aGlzLl9hbGxvY2F0ZVRhcmdldHMoKTtyZXR1cm4gdGhpcy5fc2NlbmVUb0N1YmVVVih0LG4sbyxpKSxlPjAmJnRoaXMuX2JsdXIoaSwwLDAsZSksdGhpcy5fYXBwbHlQTVJFTShpKSx0aGlzLl9jbGVhbnVwKGkpLGl9ZnJvbUVxdWlyZWN0YW5ndWxhcih0KXtyZXR1cm4gdGhpcy5fZnJvbVRleHR1cmUodCl9ZnJvbUN1YmVtYXAodCl7cmV0dXJuIHRoaXMuX2Zyb21UZXh0dXJlKHQpfWNvbXBpbGVDdWJlbWFwU2hhZGVyKCl7bnVsbD09PXRoaXMuX2N1YmVtYXBTaGFkZXImJih0aGlzLl9jdWJlbWFwU2hhZGVyPUVkdCgpLHRoaXMuX2NvbXBpbGVNYXRlcmlhbCh0aGlzLl9jdWJlbWFwU2hhZGVyKSl9Y29tcGlsZUVxdWlyZWN0YW5ndWxhclNoYWRlcigpe251bGw9PT10aGlzLl9lcXVpcmVjdFNoYWRlciYmKHRoaXMuX2VxdWlyZWN0U2hhZGVyPVJkdCgpLHRoaXMuX2NvbXBpbGVNYXRlcmlhbCh0aGlzLl9lcXVpcmVjdFNoYWRlcikpfWRpc3Bvc2UoKXt0aGlzLl9ibHVyTWF0ZXJpYWwuZGlzcG9zZSgpLG51bGwhPT10aGlzLl9jdWJlbWFwU2hhZGVyJiZ0aGlzLl9jdWJlbWFwU2hhZGVyLmRpc3Bvc2UoKSxudWxsIT09dGhpcy5fZXF1aXJlY3RTaGFkZXImJnRoaXMuX2VxdWlyZWN0U2hhZGVyLmRpc3Bvc2UoKTtmb3IobGV0IHQ9MDt0PGhkdC5sZW5ndGg7dCsrKWhkdFt0XS5kaXNwb3NlKCl9X2NsZWFudXAodCl7dGhpcy5fcGluZ1BvbmdSZW5kZXJUYXJnZXQuZGlzcG9zZSgpLHRoaXMuX3JlbmRlcmVyLnNldFJlbmRlclRhcmdldChDZHQpLHQuc2Npc3NvclRlc3Q9ITEsRGR0KHQsMCwwLHQud2lkdGgsdC5oZWlnaHQpfV9mcm9tVGV4dHVyZSh0KXtDZHQ9dGhpcy5fcmVuZGVyZXIuZ2V0UmVuZGVyVGFyZ2V0KCk7Y29uc3QgZT10aGlzLl9hbGxvY2F0ZVRhcmdldHModCk7cmV0dXJuIHRoaXMuX3RleHR1cmVUb0N1YmVVVih0LGUpLHRoaXMuX2FwcGx5UE1SRU0oZSksdGhpcy5fY2xlYW51cChlKSxlfV9hbGxvY2F0ZVRhcmdldHModCl7Y29uc3QgZT17bWFnRmlsdGVyOkFydCxtaW5GaWx0ZXI6QXJ0LGdlbmVyYXRlTWlwbWFwczohMSx0eXBlOnpydCxmb3JtYXQ6MTAyMyxlbmNvZGluZzp3ZHQodCk/dC5lbmNvZGluZzplc3QsZGVwdGhCdWZmZXI6ITF9LG49U2R0KGUpO3JldHVybiBuLmRlcHRoQnVmZmVyPSF0LHRoaXMuX3BpbmdQb25nUmVuZGVyVGFyZ2V0PVNkdChlKSxufV9jb21waWxlTWF0ZXJpYWwodCl7Y29uc3QgZT1uZXcgU2N0KGhkdFswXSx0KTt0aGlzLl9yZW5kZXJlci5jb21waWxlKGUsZ2R0KX1fc2NlbmVUb0N1YmVVVih0LGUsbixvKXtjb25zdCBpPW5ldyBJY3QoOTAsMSxlLG4pLGE9WzEsLTEsMSwxLDEsMV0scj1bMSwxLDEsLTEsLTEsLTFdLHM9dGhpcy5fcmVuZGVyZXIsbD1zLmF1dG9DbGVhcixjPXMub3V0cHV0RW5jb2RpbmcsZD1zLnRvbmVNYXBwaW5nO3MuZ2V0Q2xlYXJDb2xvcihfZHQpLHMudG9uZU1hcHBpbmc9MCxzLm91dHB1dEVuY29kaW5nPVFydCxzLmF1dG9DbGVhcj0hMTtsZXQgcD0hMTtjb25zdCBtPXQuYmFja2dyb3VuZDtpZihtKXtpZihtLmlzQ29sb3Ipe2ZkdC5jb2xvci5jb3B5KG0pLmNvbnZlcnRTUkdCVG9MaW5lYXIoKSx0LmJhY2tncm91bmQ9bnVsbDtjb25zdCBlPU9kdChmZHQuY29sb3IpO2ZkdC5vcGFjaXR5PWUscD0hMH19ZWxzZXtmZHQuY29sb3IuY29weShfZHQpLmNvbnZlcnRTUkdCVG9MaW5lYXIoKTtjb25zdCB0PU9kdChmZHQuY29sb3IpO2ZkdC5vcGFjaXR5PXQscD0hMH1mb3IobGV0IGU9MDtlPDY7ZSsrKXtjb25zdCBuPWUlMzswPT1uPyhpLnVwLnNldCgwLGFbZV0sMCksaS5sb29rQXQocltlXSwwLDApKToxPT1uPyhpLnVwLnNldCgwLDAsYVtlXSksaS5sb29rQXQoMCxyW2VdLDApKTooaS51cC5zZXQoMCxhW2VdLDApLGkubG9va0F0KDAsMCxyW2VdKSksRGR0KG8sbipsZHQsZT4yP2xkdDowLGxkdCxsZHQpLHMuc2V0UmVuZGVyVGFyZ2V0KG8pLHAmJnMucmVuZGVyKHVkdCxpKSxzLnJlbmRlcih0LGkpfXMudG9uZU1hcHBpbmc9ZCxzLm91dHB1dEVuY29kaW5nPWMscy5hdXRvQ2xlYXI9bH1fdGV4dHVyZVRvQ3ViZVVWKHQsZSl7Y29uc3Qgbj10aGlzLl9yZW5kZXJlcjt0LmlzQ3ViZVRleHR1cmU/bnVsbD09dGhpcy5fY3ViZW1hcFNoYWRlciYmKHRoaXMuX2N1YmVtYXBTaGFkZXI9RWR0KCkpOm51bGw9PXRoaXMuX2VxdWlyZWN0U2hhZGVyJiYodGhpcy5fZXF1aXJlY3RTaGFkZXI9UmR0KCkpO2NvbnN0IG89dC5pc0N1YmVUZXh0dXJlP3RoaXMuX2N1YmVtYXBTaGFkZXI6dGhpcy5fZXF1aXJlY3RTaGFkZXIsaT1uZXcgU2N0KGhkdFswXSxvKSxhPW8udW5pZm9ybXM7YS5lbnZNYXAudmFsdWU9dCx0LmlzQ3ViZVRleHR1cmV8fGEudGV4ZWxTaXplLnZhbHVlLnNldCgxL3QuaW1hZ2Uud2lkdGgsMS90LmltYWdlLmhlaWdodCksYS5pbnB1dEVuY29kaW5nLnZhbHVlPW1kdFt0LmVuY29kaW5nXSxhLm91dHB1dEVuY29kaW5nLnZhbHVlPW1kdFtlLnRleHR1cmUuZW5jb2RpbmddLERkdChlLDAsMCwzKmxkdCwyKmxkdCksbi5zZXRSZW5kZXJUYXJnZXQoZSksbi5yZW5kZXIoaSxnZHQpfV9hcHBseVBNUkVNKHQpe2NvbnN0IGU9dGhpcy5fcmVuZGVyZXIsbj1lLmF1dG9DbGVhcjtlLmF1dG9DbGVhcj0hMTtmb3IobGV0IGU9MTtlPGRkdDtlKyspe2NvbnN0IG49TWF0aC5zcXJ0KHlkdFtlXSp5ZHRbZV0teWR0W2UtMV0qeWR0W2UtMV0pO3RoaXMuX2JsdXIodCxlLTEsZSxuLHhkdFsoZS0xKSV4ZHQubGVuZ3RoXSl9ZS5hdXRvQ2xlYXI9bn1fYmx1cih0LGUsbixvLGkpe2NvbnN0IGE9dGhpcy5fcGluZ1BvbmdSZW5kZXJUYXJnZXQ7dGhpcy5faGFsZkJsdXIodCxhLGUsbixvLCJsYXRpdHVkaW5hbCIsaSksdGhpcy5faGFsZkJsdXIoYSx0LG4sbixvLCJsb25naXR1ZGluYWwiLGkpfV9oYWxmQmx1cih0LGUsbixvLGksYSxyKXtjb25zdCBzPXRoaXMuX3JlbmRlcmVyLGw9dGhpcy5fYmx1ck1hdGVyaWFsOyJsYXRpdHVkaW5hbCIhPT1hJiYibG9uZ2l0dWRpbmFsIiE9PWEmJmNvbnNvbGUuZXJyb3IoImJsdXIgZGlyZWN0aW9uIG11c3QgYmUgZWl0aGVyIGxhdGl0dWRpbmFsIG9yIGxvbmdpdHVkaW5hbCEiKTtjb25zdCBjPW5ldyBTY3QoaGR0W29dLGwpLGQ9bC51bmlmb3JtcyxwPWJkdFtuXS0xLG09aXNGaW5pdGUoaSk/TWF0aC5QSS8oMipwKToyKk1hdGguUEkvMzksZj1pL20sdT1pc0Zpbml0ZShpKT8xK01hdGguZmxvb3IoMypmKTpwZHQ7dT5wZHQmJmNvbnNvbGUud2Fybihgc2lnbWFSYWRpYW5zLCAke2l9LCBpcyB0b28gbGFyZ2UgYW5kIHdpbGwgY2xpcCwgYXMgaXQgcmVxdWVzdGVkICR7dX0gc2FtcGxlcyB3aGVuIHRoZSBtYXhpbXVtIGlzIHNldCB0byAyMGApO2NvbnN0IGc9W107bGV0IGg9MDtmb3IobGV0IHQ9MDt0PHBkdDsrK3Qpe2NvbnN0IGU9dC9mLG49TWF0aC5leHAoLWUqZS8yKTtnLnB1c2gobiksMD09dD9oKz1uOnQ8dSYmKGgrPTIqbil9Zm9yKGxldCB0PTA7dDxnLmxlbmd0aDt0KyspZ1t0XT1nW3RdL2g7ZC5lbnZNYXAudmFsdWU9dC50ZXh0dXJlLGQuc2FtcGxlcy52YWx1ZT11LGQud2VpZ2h0cy52YWx1ZT1nLGQubGF0aXR1ZGluYWwudmFsdWU9ImxhdGl0dWRpbmFsIj09PWEsciYmKGQucG9sZUF4aXMudmFsdWU9ciksZC5kVGhldGEudmFsdWU9bSxkLm1pcEludC52YWx1ZT04LW4sZC5pbnB1dEVuY29kaW5nLnZhbHVlPW1kdFt0LnRleHR1cmUuZW5jb2RpbmddLGQub3V0cHV0RW5jb2RpbmcudmFsdWU9bWR0W3QudGV4dHVyZS5lbmNvZGluZ107Y29uc3QgYj1iZHRbb107RGR0KGUsMypNYXRoLm1heCgwLGxkdC0yKmIpLCgwPT09bz8wOjIqbGR0KSsyKmIqKG8+ND9vLTgrNDowKSwzKmIsMipiKSxzLnNldFJlbmRlclRhcmdldChlKSxzLnJlbmRlcihjLGdkdCl9fWZ1bmN0aW9uIHdkdCh0KXtyZXR1cm4gdm9pZCAwIT09dCYmdC50eXBlPT09enJ0JiYodC5lbmNvZGluZz09PVFydHx8dC5lbmNvZGluZz09PSRydHx8dC5lbmNvZGluZz09PXRzdCl9ZnVuY3Rpb24ga2R0KCl7Y29uc3QgdD1bXSxlPVtdLG49W107bGV0IG89ODtmb3IobGV0IGk9MDtpPGRkdDtpKyspe2NvbnN0IGE9TWF0aC5wb3coMixvKTtlLnB1c2goYSk7bGV0IHI9MS9hO2k+ND9yPWNkdFtpLTgrNC0xXTowPT1pJiYocj0wKSxuLnB1c2gocik7Y29uc3Qgcz0xLyhhLTEpLGw9LXMvMixjPTErcy8yLGQ9W2wsbCxjLGwsYyxjLGwsbCxjLGMsbCxjXSxwPTYsbT02LGY9Myx1PTIsZz0xLGg9bmV3IEZsb2F0MzJBcnJheShmKm0qcCksYj1uZXcgRmxvYXQzMkFycmF5KHUqbSpwKSx5PW5ldyBGbG9hdDMyQXJyYXkoZyptKnApO2ZvcihsZXQgdD0wO3Q8cDt0Kyspe2NvbnN0IGU9dCUzKjIvMy0xLG49dD4yPzA6LTE7aC5zZXQoW2UsbiwwLGUrMi8zLG4sMCxlKzIvMyxuKzEsMCxlLG4sMCxlKzIvMyxuKzEsMCxlLG4rMSwwXSxmKm0qdCksYi5zZXQoZCx1Km0qdCk7eS5zZXQoW3QsdCx0LHQsdCx0XSxnKm0qdCl9Y29uc3QgXz1uZXcgZGN0O18uc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IFFsdChoLGYpKSxfLnNldEF0dHJpYnV0ZSgidXYiLG5ldyBRbHQoYix1KSksXy5zZXRBdHRyaWJ1dGUoImZhY2VJbmRleCIsbmV3IFFsdCh5LGcpKSx0LnB1c2goXyksbz40JiZvLS19cmV0dXJue19sb2RQbGFuZXM6dCxfc2l6ZUxvZHM6ZSxfc2lnbWFzOm59fWZ1bmN0aW9uIFNkdCh0KXtjb25zdCBlPW5ldyB4c3QoMypsZHQsMypsZHQsdCk7cmV0dXJuIGUudGV4dHVyZS5tYXBwaW5nPVNydCxlLnRleHR1cmUubmFtZT0iUE1SRU0uY3ViZVV2IixlLnNjaXNzb3JUZXN0PSEwLGV9ZnVuY3Rpb24gRGR0KHQsZSxuLG8saSl7dC52aWV3cG9ydC5zZXQoZSxuLG8saSksdC5zY2lzc29yLnNldChlLG4sbyxpKX1mdW5jdGlvbiBSZHQoKXtjb25zdCB0PW5ldyBnc3QoMSwxKTtyZXR1cm4gbmV3IHNkdCh7bmFtZToiRXF1aXJlY3Rhbmd1bGFyVG9DdWJlVVYiLHVuaWZvcm1zOntlbnZNYXA6e3ZhbHVlOm51bGx9LHRleGVsU2l6ZTp7dmFsdWU6dH0saW5wdXRFbmNvZGluZzp7dmFsdWU6bWR0WzNlM119LG91dHB1dEVuY29kaW5nOnt2YWx1ZTptZHRbM2UzXX19LHZlcnRleFNoYWRlcjpBZHQoKSxmcmFnbWVudFNoYWRlcjpgXG5cblx0XHRcdHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuXHRcdFx0cHJlY2lzaW9uIG1lZGl1bXAgaW50O1xuXG5cdFx0XHR2YXJ5aW5nIHZlYzMgdk91dHB1dERpcmVjdGlvbjtcblxuXHRcdFx0dW5pZm9ybSBzYW1wbGVyMkQgZW52TWFwO1xuXHRcdFx0dW5pZm9ybSB2ZWMyIHRleGVsU2l6ZTtcblxuXHRcdFx0JHtUZHQoKX1cblxuXHRcdFx0I2luY2x1ZGUgPGNvbW1vbj5cblxuXHRcdFx0dm9pZCBtYWluKCkge1xuXG5cdFx0XHRcdGdsX0ZyYWdDb2xvciA9IHZlYzQoIDAuMCwgMC4wLCAwLjAsIDEuMCApO1xuXG5cdFx0XHRcdHZlYzMgb3V0cHV0RGlyZWN0aW9uID0gbm9ybWFsaXplKCB2T3V0cHV0RGlyZWN0aW9uICk7XG5cdFx0XHRcdHZlYzIgdXYgPSBlcXVpcmVjdFV2KCBvdXRwdXREaXJlY3Rpb24gKTtcblxuXHRcdFx0XHR2ZWMyIGYgPSBmcmFjdCggdXYgLyB0ZXhlbFNpemUgLSAwLjUgKTtcblx0XHRcdFx0dXYgLT0gZiAqIHRleGVsU2l6ZTtcblx0XHRcdFx0dmVjMyB0bCA9IGVudk1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmUyRCAoIGVudk1hcCwgdXYgKSApLnJnYjtcblx0XHRcdFx0dXYueCArPSB0ZXhlbFNpemUueDtcblx0XHRcdFx0dmVjMyB0ciA9IGVudk1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmUyRCAoIGVudk1hcCwgdXYgKSApLnJnYjtcblx0XHRcdFx0dXYueSArPSB0ZXhlbFNpemUueTtcblx0XHRcdFx0dmVjMyBiciA9IGVudk1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmUyRCAoIGVudk1hcCwgdXYgKSApLnJnYjtcblx0XHRcdFx0dXYueCAtPSB0ZXhlbFNpemUueDtcblx0XHRcdFx0dmVjMyBibCA9IGVudk1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmUyRCAoIGVudk1hcCwgdXYgKSApLnJnYjtcblxuXHRcdFx0XHR2ZWMzIHRtID0gbWl4KCB0bCwgdHIsIGYueCApO1xuXHRcdFx0XHR2ZWMzIGJtID0gbWl4KCBibCwgYnIsIGYueCApO1xuXHRcdFx0XHRnbF9GcmFnQ29sb3IucmdiID0gbWl4KCB0bSwgYm0sIGYueSApO1xuXG5cdFx0XHRcdGdsX0ZyYWdDb2xvciA9IGxpbmVhclRvT3V0cHV0VGV4ZWwoIGdsX0ZyYWdDb2xvciApO1xuXG5cdFx0XHR9XG5cdFx0YCxibGVuZGluZzowLGRlcHRoVGVzdDohMSxkZXB0aFdyaXRlOiExfSl9ZnVuY3Rpb24gRWR0KCl7cmV0dXJuIG5ldyBzZHQoe25hbWU6IkN1YmVtYXBUb0N1YmVVViIsdW5pZm9ybXM6e2Vudk1hcDp7dmFsdWU6bnVsbH0saW5wdXRFbmNvZGluZzp7dmFsdWU6bWR0WzNlM119LG91dHB1dEVuY29kaW5nOnt2YWx1ZTptZHRbM2UzXX19LHZlcnRleFNoYWRlcjpBZHQoKSxmcmFnbWVudFNoYWRlcjpgXG5cblx0XHRcdHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuXHRcdFx0cHJlY2lzaW9uIG1lZGl1bXAgaW50O1xuXG5cdFx0XHR2YXJ5aW5nIHZlYzMgdk91dHB1dERpcmVjdGlvbjtcblxuXHRcdFx0dW5pZm9ybSBzYW1wbGVyQ3ViZSBlbnZNYXA7XG5cblx0XHRcdCR7VGR0KCl9XG5cblx0XHRcdHZvaWQgbWFpbigpIHtcblxuXHRcdFx0XHRnbF9GcmFnQ29sb3IgPSB2ZWM0KCAwLjAsIDAuMCwgMC4wLCAxLjAgKTtcblx0XHRcdFx0Z2xfRnJhZ0NvbG9yLnJnYiA9IGVudk1hcFRleGVsVG9MaW5lYXIoIHRleHR1cmVDdWJlKCBlbnZNYXAsIHZlYzMoIC0gdk91dHB1dERpcmVjdGlvbi54LCB2T3V0cHV0RGlyZWN0aW9uLnl6ICkgKSApLnJnYjtcblx0XHRcdFx0Z2xfRnJhZ0NvbG9yID0gbGluZWFyVG9PdXRwdXRUZXhlbCggZ2xfRnJhZ0NvbG9yICk7XG5cblx0XHRcdH1cblx0XHRgLGJsZW5kaW5nOjAsZGVwdGhUZXN0OiExLGRlcHRoV3JpdGU6ITF9KX1mdW5jdGlvbiBBZHQoKXtyZXR1cm4iXG5cblx0XHRwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcblx0XHRwcmVjaXNpb24gbWVkaXVtcCBpbnQ7XG5cblx0XHRhdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjtcblx0XHRhdHRyaWJ1dGUgdmVjMiB1djtcblx0XHRhdHRyaWJ1dGUgZmxvYXQgZmFjZUluZGV4O1xuXG5cdFx0dmFyeWluZyB2ZWMzIHZPdXRwdXREaXJlY3Rpb247XG5cblx0XHQvLyBSSCBjb29yZGluYXRlIHN5c3RlbTsgUE1SRU0gZmFjZS1pbmRleGluZyBjb252ZW50aW9uXG5cdFx0dmVjMyBnZXREaXJlY3Rpb24oIHZlYzIgdXYsIGZsb2F0IGZhY2UgKSB7XG5cblx0XHRcdHV2ID0gMi4wICogdXYgLSAxLjA7XG5cblx0XHRcdHZlYzMgZGlyZWN0aW9uID0gdmVjMyggdXYsIDEuMCApO1xuXG5cdFx0XHRpZiAoIGZhY2UgPT0gMC4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi56eXg7IC8vICggMSwgdiwgdSApIHBvcyB4XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMS4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbiA9IGRpcmVjdGlvbi54enk7XG5cdFx0XHRcdGRpcmVjdGlvbi54eiAqPSAtMS4wOyAvLyAoIC11LCAxLCAtdiApIHBvcyB5XG5cblx0XHRcdH0gZWxzZSBpZiAoIGZhY2UgPT0gMi4wICkge1xuXG5cdFx0XHRcdGRpcmVjdGlvbi54ICo9IC0xLjA7IC8vICggLXUsIHYsIDEgKSBwb3MgelxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDMuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24gPSBkaXJlY3Rpb24uenl4O1xuXHRcdFx0XHRkaXJlY3Rpb24ueHogKj0gLTEuMDsgLy8gKCAtMSwgdiwgLXUgKSBuZWcgeFxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDQuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24gPSBkaXJlY3Rpb24ueHp5O1xuXHRcdFx0XHRkaXJlY3Rpb24ueHkgKj0gLTEuMDsgLy8gKCAtdSwgLTEsIHYgKSBuZWcgeVxuXG5cdFx0XHR9IGVsc2UgaWYgKCBmYWNlID09IDUuMCApIHtcblxuXHRcdFx0XHRkaXJlY3Rpb24ueiAqPSAtMS4wOyAvLyAoIHUsIHYsIC0xICkgbmVnIHpcblxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZGlyZWN0aW9uO1xuXG5cdFx0fVxuXG5cdFx0dm9pZCBtYWluKCkge1xuXG5cdFx0XHR2T3V0cHV0RGlyZWN0aW9uID0gZ2V0RGlyZWN0aW9uKCB1diwgZmFjZUluZGV4ICk7XG5cdFx0XHRnbF9Qb3NpdGlvbiA9IHZlYzQoIHBvc2l0aW9uLCAxLjAgKTtcblxuXHRcdH1cblx0In1mdW5jdGlvbiBUZHQoKXtyZXR1cm4iXG5cblx0XHR1bmlmb3JtIGludCBpbnB1dEVuY29kaW5nO1xuXHRcdHVuaWZvcm0gaW50IG91dHB1dEVuY29kaW5nO1xuXG5cdFx0I2luY2x1ZGUgPGVuY29kaW5nc19wYXJzX2ZyYWdtZW50PlxuXG5cdFx0dmVjNCBpbnB1dFRleGVsVG9MaW5lYXIoIHZlYzQgdmFsdWUgKSB7XG5cblx0XHRcdGlmICggaW5wdXRFbmNvZGluZyA9PSAwICkge1xuXG5cdFx0XHRcdHJldHVybiB2YWx1ZTtcblxuXHRcdFx0fSBlbHNlIGlmICggaW5wdXRFbmNvZGluZyA9PSAxICkge1xuXG5cdFx0XHRcdHJldHVybiBzUkdCVG9MaW5lYXIoIHZhbHVlICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGlucHV0RW5jb2RpbmcgPT0gMiApIHtcblxuXHRcdFx0XHRyZXR1cm4gUkdCRVRvTGluZWFyKCB2YWx1ZSApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDMgKSB7XG5cblx0XHRcdFx0cmV0dXJuIFJHQk1Ub0xpbmVhciggdmFsdWUsIDcuMCApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBpbnB1dEVuY29kaW5nID09IDQgKSB7XG5cblx0XHRcdFx0cmV0dXJuIFJHQk1Ub0xpbmVhciggdmFsdWUsIDE2LjAgKTtcblxuXHRcdFx0fSBlbHNlIGlmICggaW5wdXRFbmNvZGluZyA9PSA1ICkge1xuXG5cdFx0XHRcdHJldHVybiBSR0JEVG9MaW5lYXIoIHZhbHVlLCAyNTYuMCApO1xuXG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdHJldHVybiBHYW1tYVRvTGluZWFyKCB2YWx1ZSwgMi4yICk7XG5cblx0XHRcdH1cblxuXHRcdH1cblxuXHRcdHZlYzQgbGluZWFyVG9PdXRwdXRUZXhlbCggdmVjNCB2YWx1ZSApIHtcblxuXHRcdFx0aWYgKCBvdXRwdXRFbmNvZGluZyA9PSAwICkge1xuXG5cdFx0XHRcdHJldHVybiB2YWx1ZTtcblxuXHRcdFx0fSBlbHNlIGlmICggb3V0cHV0RW5jb2RpbmcgPT0gMSApIHtcblxuXHRcdFx0XHRyZXR1cm4gTGluZWFyVG9zUkdCKCB2YWx1ZSApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBvdXRwdXRFbmNvZGluZyA9PSAyICkge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb1JHQkUoIHZhbHVlICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDMgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvUkdCTSggdmFsdWUsIDcuMCApO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCBvdXRwdXRFbmNvZGluZyA9PSA0ICkge1xuXG5cdFx0XHRcdHJldHVybiBMaW5lYXJUb1JHQk0oIHZhbHVlLCAxNi4wICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIG91dHB1dEVuY29kaW5nID09IDUgKSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvUkdCRCggdmFsdWUsIDI1Ni4wICk7XG5cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0cmV0dXJuIExpbmVhclRvR2FtbWEoIHZhbHVlLCAyLjIgKTtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdFx0dmVjNCBlbnZNYXBUZXhlbFRvTGluZWFyKCB2ZWM0IGNvbG9yICkge1xuXG5cdFx0XHRyZXR1cm4gaW5wdXRUZXhlbFRvTGluZWFyKCBjb2xvciApO1xuXG5cdFx0fVxuXHQifWZ1bmN0aW9uIE5kdCh0KXtsZXQgZT1uZXcgV2Vha01hcCxuPW51bGw7ZnVuY3Rpb24gbyh0KXtjb25zdCBuPXQudGFyZ2V0O24ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsbyk7Y29uc3QgaT1lLmdldChuKTt2b2lkIDAhPT1pJiYoaS5kZWxldGUobiksaS5kaXNwb3NlKCkpfXJldHVybntnZXQ6ZnVuY3Rpb24gaShhKXtpZihhJiZhLmlzVGV4dHVyZSYmITE9PT1hLmlzUmVuZGVyVGFyZ2V0VGV4dHVyZSl7Y29uc3QgaT1hLm1hcHBpbmcscj0zMDM9PT1pfHwzMDQ9PT1pLHM9aT09PXdydHx8aT09PWtydDtpZihyfHxzKXtpZihlLmhhcyhhKSlyZXR1cm4gZS5nZXQoYSkudGV4dHVyZTt7Y29uc3QgaT1hLmltYWdlO2lmKHImJmkmJmkuaGVpZ2h0PjB8fHMmJmkmJihmdW5jdGlvbiByKHQpe2xldCBlPTA7Y29uc3Qgbj02O2ZvcihsZXQgbz0wO288bjtvKyspdm9pZCAwIT09dFtvXSYmZSsrO3JldHVybiBlPT09bn0pKGkpKXtjb25zdCBpPXQuZ2V0UmVuZGVyVGFyZ2V0KCk7bnVsbD09PW4mJihuPW5ldyBQZHQodCkpO2NvbnN0IHM9cj9uLmZyb21FcXVpcmVjdGFuZ3VsYXIoYSk6bi5mcm9tQ3ViZW1hcChhKTtyZXR1cm4gZS5zZXQoYSxzKSx0LnNldFJlbmRlclRhcmdldChpKSxhLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLG8pLHMudGV4dHVyZX1yZXR1cm4gbnVsbH19fXJldHVybiBhfSxkaXNwb3NlOmZ1bmN0aW9uIGEoKXtlPW5ldyBXZWFrTWFwLG51bGwhPT1uJiYobi5kaXNwb3NlKCksbj1udWxsKX19fWZ1bmN0aW9uIHpkdCh0KXtjb25zdCBlPXt9O2Z1bmN0aW9uIG4obil7aWYodm9pZCAwIT09ZVtuXSlyZXR1cm4gZVtuXTtsZXQgbztzd2l0Y2gobil7Y2FzZSJXRUJHTF9kZXB0aF90ZXh0dXJlIjpvPXQuZ2V0RXh0ZW5zaW9uKCJXRUJHTF9kZXB0aF90ZXh0dXJlIil8fHQuZ2V0RXh0ZW5zaW9uKCJNT1pfV0VCR0xfZGVwdGhfdGV4dHVyZSIpfHx0LmdldEV4dGVuc2lvbigiV0VCS0lUX1dFQkdMX2RlcHRoX3RleHR1cmUiKTticmVhaztjYXNlIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyI6bz10LmdldEV4dGVuc2lvbigiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIil8fHQuZ2V0RXh0ZW5zaW9uKCJNT1pfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIil8fHQuZ2V0RXh0ZW5zaW9uKCJXRUJLSVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIik7YnJlYWs7Y2FzZSJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyI6bz10LmdldEV4dGVuc2lvbigiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKXx8dC5nZXRFeHRlbnNpb24oIk1PWl9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpfHx0LmdldEV4dGVuc2lvbigiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIik7YnJlYWs7Y2FzZSJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiOm89dC5nZXRFeHRlbnNpb24oIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIpfHx0LmdldEV4dGVuc2lvbigiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIpO2JyZWFrO2RlZmF1bHQ6bz10LmdldEV4dGVuc2lvbihuKX1yZXR1cm4gZVtuXT1vLG99cmV0dXJue2hhczpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9PW4odCl9LGluaXQ6ZnVuY3Rpb24odCl7dC5pc1dlYkdMMj9uKCJFWFRfY29sb3JfYnVmZmVyX2Zsb2F0Iik6KG4oIldFQkdMX2RlcHRoX3RleHR1cmUiKSxuKCJPRVNfdGV4dHVyZV9mbG9hdCIpLG4oIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSxuKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpLG4oIk9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpLG4oIk9FU19lbGVtZW50X2luZGV4X3VpbnQiKSxuKCJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpLG4oIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSksbigiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiksbigiRVhUX2NvbG9yX2J1ZmZlcl9oYWxmX2Zsb2F0Iil9LGdldDpmdW5jdGlvbih0KXtjb25zdCBlPW4odCk7cmV0dXJuIG51bGw9PT1lJiZjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6ICIrdCsiIGV4dGVuc2lvbiBub3Qgc3VwcG9ydGVkLiIpLGV9fX1mdW5jdGlvbiBJZHQodCxlLG4sbyl7Y29uc3QgaT17fSxhPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIHIodCl7Y29uc3Qgcz10LnRhcmdldDtudWxsIT09cy5pbmRleCYmZS5yZW1vdmUocy5pbmRleCk7Zm9yKGNvbnN0IHQgaW4gcy5hdHRyaWJ1dGVzKWUucmVtb3ZlKHMuYXR0cmlidXRlc1t0XSk7cy5yZW1vdmVFdmVudExpc3RlbmVyKCJkaXNwb3NlIixyKSxkZWxldGUgaVtzLmlkXTtjb25zdCBsPWEuZ2V0KHMpO2wmJihlLnJlbW92ZShsKSxhLmRlbGV0ZShzKSksby5yZWxlYXNlU3RhdGVzT2ZHZW9tZXRyeShzKSwhMD09PXMuaXNJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSYmZGVsZXRlIHMuX21heEluc3RhbmNlQ291bnQsbi5tZW1vcnkuZ2VvbWV0cmllcy0tfWZ1bmN0aW9uIHModCl7Y29uc3Qgbj1bXSxvPXQuaW5kZXgsaT10LmF0dHJpYnV0ZXMucG9zaXRpb247bGV0IHI9MDtpZihudWxsIT09byl7Y29uc3QgdD1vLmFycmF5O3I9by52ZXJzaW9uO2ZvcihsZXQgZT0wLG89dC5sZW5ndGg7ZTxvO2UrPTMpe2NvbnN0IG89dFtlKzBdLGk9dFtlKzFdLGE9dFtlKzJdO24ucHVzaChvLGksaSxhLGEsbyl9fWVsc2V7cj1pLnZlcnNpb247Zm9yKGxldCB0PTAsZT1pLmFycmF5Lmxlbmd0aC8zLTE7dDxlO3QrPTMpe2NvbnN0IGU9dCswLG89dCsxLGk9dCsyO24ucHVzaChlLG8sbyxpLGksZSl9fWNvbnN0IHM9bmV3KG5jdChuKT42NTUzNT90Y3Q6JGx0KShuLDEpO3MudmVyc2lvbj1yO2NvbnN0IGw9YS5nZXQodCk7bCYmZS5yZW1vdmUobCksYS5zZXQodCxzKX1yZXR1cm57Z2V0OmZ1bmN0aW9uIGwodCxlKXtyZXR1cm4hMD09PWlbZS5pZF18fChlLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHIpLGlbZS5pZF09ITAsbi5tZW1vcnkuZ2VvbWV0cmllcysrKSxlfSx1cGRhdGU6ZnVuY3Rpb24gYyh0KXtjb25zdCBuPXQuYXR0cmlidXRlcztmb3IoY29uc3QgdCBpbiBuKWUudXBkYXRlKG5bdF0sMzQ5NjIpO2NvbnN0IG89dC5tb3JwaEF0dHJpYnV0ZXM7Zm9yKGNvbnN0IHQgaW4gbyl7Y29uc3Qgbj1vW3RdO2ZvcihsZXQgdD0wLG89bi5sZW5ndGg7dDxvO3QrKyllLnVwZGF0ZShuW3RdLDM0OTYyKX19LGdldFdpcmVmcmFtZUF0dHJpYnV0ZTpmdW5jdGlvbiBkKHQpe2NvbnN0IGU9YS5nZXQodCk7aWYoZSl7Y29uc3Qgbj10LmluZGV4O251bGwhPT1uJiZlLnZlcnNpb248bi52ZXJzaW9uJiZzKHQpfWVsc2Ugcyh0KTtyZXR1cm4gYS5nZXQodCl9fX1mdW5jdGlvbiBIZHQodCxlLG4sbyl7Y29uc3QgaT1vLmlzV2ViR0wyO2xldCBhLHIsczt0aGlzLnNldE1vZGU9ZnVuY3Rpb24gbCh0KXthPXR9LHRoaXMuc2V0SW5kZXg9ZnVuY3Rpb24gYyh0KXtyPXQudHlwZSxzPXQuYnl0ZXNQZXJFbGVtZW50fSx0aGlzLnJlbmRlcj1mdW5jdGlvbiBkKGUsbyl7dC5kcmF3RWxlbWVudHMoYSxvLHIsZSpzKSxuLnVwZGF0ZShvLGEsMSl9LHRoaXMucmVuZGVySW5zdGFuY2VzPWZ1bmN0aW9uIHAobyxsLGMpe2lmKDA9PT1jKXJldHVybjtsZXQgZCxwO2lmKGkpZD10LHA9ImRyYXdFbGVtZW50c0luc3RhbmNlZCI7ZWxzZSBpZihkPWUuZ2V0KCJBTkdMRV9pbnN0YW5jZWRfYXJyYXlzIikscD0iZHJhd0VsZW1lbnRzSW5zdGFuY2VkQU5HTEUiLG51bGw9PT1kKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMSW5kZXhlZEJ1ZmZlclJlbmRlcmVyOiB1c2luZyBUSFJFRS5JbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSBidXQgaGFyZHdhcmUgZG9lcyBub3Qgc3VwcG9ydCBleHRlbnNpb24gQU5HTEVfaW5zdGFuY2VkX2FycmF5cy4iKTtkW3BdKGEsbCxyLG8qcyxjKSxuLnVwZGF0ZShsLGEsYyl9fWZ1bmN0aW9uIEZkdCh0KXtjb25zdCBlPXtmcmFtZTowLGNhbGxzOjAsdHJpYW5nbGVzOjAscG9pbnRzOjAsbGluZXM6MH07cmV0dXJue21lbW9yeTp7Z2VvbWV0cmllczowLHRleHR1cmVzOjB9LHJlbmRlcjplLHByb2dyYW1zOm51bGwsYXV0b1Jlc2V0OiEwLHJlc2V0OmZ1bmN0aW9uIG4oKXtlLmZyYW1lKyssZS5jYWxscz0wLGUudHJpYW5nbGVzPTAsZS5wb2ludHM9MCxlLmxpbmVzPTB9LHVwZGF0ZTpmdW5jdGlvbiBvKHQsbixpKXtzd2l0Y2goZS5jYWxscysrLG4pe2Nhc2UgNDplLnRyaWFuZ2xlcys9aSoodC8zKTticmVhaztjYXNlIDE6ZS5saW5lcys9aSoodC8yKTticmVhaztjYXNlIDM6ZS5saW5lcys9aSoodC0xKTticmVhaztjYXNlIDI6ZS5saW5lcys9aSp0O2JyZWFrO2Nhc2UgMDplLnBvaW50cys9aSp0O2JyZWFrO2RlZmF1bHQ6Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xJbmZvOiBVbmtub3duIGRyYXcgbW9kZToiLG4pfX19fWZ1bmN0aW9uIExkdCh0LGUpe3JldHVybiB0WzBdLWVbMF19ZnVuY3Rpb24gQmR0KHQsZSl7cmV0dXJuIE1hdGguYWJzKGVbMV0pLU1hdGguYWJzKHRbMV0pfWZ1bmN0aW9uIFZkdCh0KXtjb25zdCBlPXt9LG49bmV3IEZsb2F0MzJBcnJheSg4KSxvPVtdO2ZvcihsZXQgdD0wO3Q8ODt0Kyspb1t0XT1bdCwwXTtyZXR1cm57dXBkYXRlOmZ1bmN0aW9uIGkoYSxyLHMsbCl7Y29uc3QgYz1hLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcyxkPXZvaWQgMD09PWM/MDpjLmxlbmd0aDtsZXQgcD1lW3IuaWRdO2lmKHZvaWQgMD09PXB8fHAubGVuZ3RoIT09ZCl7cD1bXTtmb3IobGV0IHQ9MDt0PGQ7dCsrKXBbdF09W3QsMF07ZVtyLmlkXT1wfWZvcihsZXQgdD0wO3Q8ZDt0Kyspe2NvbnN0IGU9cFt0XTtlWzBdPXQsZVsxXT1jW3RdfXAuc29ydChCZHQpO2ZvcihsZXQgdD0wO3Q8ODt0KyspdDxkJiZwW3RdWzFdPyhvW3RdWzBdPXBbdF1bMF0sb1t0XVsxXT1wW3RdWzFdKToob1t0XVswXT1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUixvW3RdWzFdPTApO28uc29ydChMZHQpO2NvbnN0IG09ci5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24sZj1yLm1vcnBoQXR0cmlidXRlcy5ub3JtYWw7bGV0IHU9MDtmb3IobGV0IHQ9MDt0PDg7dCsrKXtjb25zdCBlPW9bdF0saT1lWzBdLGE9ZVsxXTtpIT09TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVImJmE/KG0mJnIuZ2V0QXR0cmlidXRlKCJtb3JwaFRhcmdldCIrdCkhPT1tW2ldJiZyLnNldEF0dHJpYnV0ZSgibW9ycGhUYXJnZXQiK3QsbVtpXSksZiYmci5nZXRBdHRyaWJ1dGUoIm1vcnBoTm9ybWFsIit0KSE9PWZbaV0mJnIuc2V0QXR0cmlidXRlKCJtb3JwaE5vcm1hbCIrdCxmW2ldKSxuW3RdPWEsdSs9YSk6KG0mJiEwPT09ci5oYXNBdHRyaWJ1dGUoIm1vcnBoVGFyZ2V0Iit0KSYmci5kZWxldGVBdHRyaWJ1dGUoIm1vcnBoVGFyZ2V0Iit0KSxmJiYhMD09PXIuaGFzQXR0cmlidXRlKCJtb3JwaE5vcm1hbCIrdCkmJnIuZGVsZXRlQXR0cmlidXRlKCJtb3JwaE5vcm1hbCIrdCksblt0XT0wKX1jb25zdCBnPXIubW9ycGhUYXJnZXRzUmVsYXRpdmU/MToxLXU7bC5nZXRVbmlmb3JtcygpLnNldFZhbHVlKHQsIm1vcnBoVGFyZ2V0QmFzZUluZmx1ZW5jZSIsZyksbC5nZXRVbmlmb3JtcygpLnNldFZhbHVlKHQsIm1vcnBoVGFyZ2V0SW5mbHVlbmNlcyIsbil9fX1mdW5jdGlvbiBqZHQodCxlLG4sbyl7bGV0IGk9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gYSh0KXtjb25zdCBlPXQudGFyZ2V0O2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIsYSksbi5yZW1vdmUoZS5pbnN0YW5jZU1hdHJpeCksbnVsbCE9PWUuaW5zdGFuY2VDb2xvciYmbi5yZW1vdmUoZS5pbnN0YW5jZUNvbG9yKX1yZXR1cm57dXBkYXRlOmZ1bmN0aW9uIHIodCl7Y29uc3Qgcj1vLnJlbmRlci5mcmFtZSxzPWUuZ2V0KHQsdC5nZW9tZXRyeSk7cmV0dXJuIGkuZ2V0KHMpIT09ciYmKGUudXBkYXRlKHMpLGkuc2V0KHMscikpLHQuaXNJbnN0YW5jZWRNZXNoJiYoITE9PT10Lmhhc0V2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLGEpJiZ0LmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLGEpLG4udXBkYXRlKHQuaW5zdGFuY2VNYXRyaXgsMzQ5NjIpLG51bGwhPT10Lmluc3RhbmNlQ29sb3ImJm4udXBkYXRlKHQuaW5zdGFuY2VDb2xvciwzNDk2MikpLHN9LGRpc3Bvc2U6ZnVuY3Rpb24gcygpe2k9bmV3IFdlYWtNYXB9fX1jbGFzcyBVZHQgZXh0ZW5kcyBDc3R7Y29uc3RydWN0b3IodD1udWxsLGU9MSxuPTEsbz0xKXtzdXBlcihudWxsKSx0aGlzLmltYWdlPXtkYXRhOnQsd2lkdGg6ZSxoZWlnaHQ6bixkZXB0aDpvfSx0aGlzLm1hZ0ZpbHRlcj1BcnQsdGhpcy5taW5GaWx0ZXI9QXJ0LHRoaXMud3JhcFI9UnJ0LHRoaXMuZ2VuZXJhdGVNaXBtYXBzPSExLHRoaXMuZmxpcFk9ITEsdGhpcy51bnBhY2tBbGlnbm1lbnQ9MSx0aGlzLm5lZWRzVXBkYXRlPSEwfX1VZHQucHJvdG90eXBlLmlzRGF0YVRleHR1cmUyREFycmF5PSEwO2NsYXNzIFdkdCBleHRlbmRzIENzdHtjb25zdHJ1Y3Rvcih0PW51bGwsZT0xLG49MSxvPTEpe3N1cGVyKG51bGwpLHRoaXMuaW1hZ2U9e2RhdGE6dCx3aWR0aDplLGhlaWdodDpuLGRlcHRoOm99LHRoaXMubWFnRmlsdGVyPUFydCx0aGlzLm1pbkZpbHRlcj1BcnQsdGhpcy53cmFwUj1ScnQsdGhpcy5nZW5lcmF0ZU1pcG1hcHM9ITEsdGhpcy5mbGlwWT0hMSx0aGlzLnVucGFja0FsaWdubWVudD0xLHRoaXMubmVlZHNVcGRhdGU9ITB9fVdkdC5wcm90b3R5cGUuaXNEYXRhVGV4dHVyZTNEPSEwO2NvbnN0IEdkdD1uZXcgQ3N0LFlkdD1uZXcgVWR0LHFkdD1uZXcgV2R0LFpkdD1uZXcgTGN0LFhkdD1bXSxLZHQ9W10sSmR0PW5ldyBGbG9hdDMyQXJyYXkoMTYpLFFkdD1uZXcgRmxvYXQzMkFycmF5KDkpLCRkdD1uZXcgRmxvYXQzMkFycmF5KDQpO2Z1bmN0aW9uIHRwdCh0LGUsbil7Y29uc3Qgbz10WzBdO2lmKG88PTB8fG8+MClyZXR1cm4gdDtjb25zdCBpPWUqbjtsZXQgYT1YZHRbaV07aWYodm9pZCAwPT09YSYmKGE9bmV3IEZsb2F0MzJBcnJheShpKSxYZHRbaV09YSksMCE9PWUpe28udG9BcnJheShhLDApO2ZvcihsZXQgbz0xLGk9MDtvIT09ZTsrK28paSs9bix0W29dLnRvQXJyYXkoYSxpKX1yZXR1cm4gYX1mdW5jdGlvbiBlcHQodCxlKXtpZih0Lmxlbmd0aCE9PWUubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgbj0wLG89dC5sZW5ndGg7bjxvO24rKylpZih0W25dIT09ZVtuXSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBucHQodCxlKXtmb3IobGV0IG49MCxvPWUubGVuZ3RoO248bztuKyspdFtuXT1lW25dfWZ1bmN0aW9uIG9wdCh0LGUpe2xldCBuPUtkdFtlXTt2b2lkIDA9PT1uJiYobj1uZXcgSW50MzJBcnJheShlKSxLZHRbZV09bik7Zm9yKGxldCBvPTA7byE9PWU7KytvKW5bb109dC5hbGxvY2F0ZVRleHR1cmVVbml0KCk7cmV0dXJuIG59ZnVuY3Rpb24gaXB0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO25bMF0hPT1lJiYodC51bmlmb3JtMWYodGhpcy5hZGRyLGUpLG5bMF09ZSl9ZnVuY3Rpb24gYXB0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO2lmKHZvaWQgMCE9PWUueCluWzBdPT09ZS54JiZuWzFdPT09ZS55fHwodC51bmlmb3JtMmYodGhpcy5hZGRyLGUueCxlLnkpLG5bMF09ZS54LG5bMV09ZS55KTtlbHNle2lmKGVwdChuLGUpKXJldHVybjt0LnVuaWZvcm0yZnYodGhpcy5hZGRyLGUpLG5wdChuLGUpfX1mdW5jdGlvbiBycHQodCxlKXtjb25zdCBuPXRoaXMuY2FjaGU7aWYodm9pZCAwIT09ZS54KW5bMF09PT1lLngmJm5bMV09PT1lLnkmJm5bMl09PT1lLnp8fCh0LnVuaWZvcm0zZih0aGlzLmFkZHIsZS54LGUueSxlLnopLG5bMF09ZS54LG5bMV09ZS55LG5bMl09ZS56KTtlbHNlIGlmKHZvaWQgMCE9PWUuciluWzBdPT09ZS5yJiZuWzFdPT09ZS5nJiZuWzJdPT09ZS5ifHwodC51bmlmb3JtM2YodGhpcy5hZGRyLGUucixlLmcsZS5iKSxuWzBdPWUucixuWzFdPWUuZyxuWzJdPWUuYik7ZWxzZXtpZihlcHQobixlKSlyZXR1cm47dC51bmlmb3JtM2Z2KHRoaXMuYWRkcixlKSxucHQobixlKX19ZnVuY3Rpb24gc3B0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO2lmKHZvaWQgMCE9PWUueCluWzBdPT09ZS54JiZuWzFdPT09ZS55JiZuWzJdPT09ZS56JiZuWzNdPT09ZS53fHwodC51bmlmb3JtNGYodGhpcy5hZGRyLGUueCxlLnksZS56LGUudyksblswXT1lLngsblsxXT1lLnksblsyXT1lLnosblszXT1lLncpO2Vsc2V7aWYoZXB0KG4sZSkpcmV0dXJuO3QudW5pZm9ybTRmdih0aGlzLmFkZHIsZSksbnB0KG4sZSl9fWZ1bmN0aW9uIGxwdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZSxvPWUuZWxlbWVudHM7aWYodm9pZCAwPT09byl7aWYoZXB0KG4sZSkpcmV0dXJuO3QudW5pZm9ybU1hdHJpeDJmdih0aGlzLmFkZHIsITEsZSksbnB0KG4sZSl9ZWxzZXtpZihlcHQobixvKSlyZXR1cm47JGR0LnNldChvKSx0LnVuaWZvcm1NYXRyaXgyZnYodGhpcy5hZGRyLCExLCRkdCksbnB0KG4sbyl9fWZ1bmN0aW9uIGNwdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZSxvPWUuZWxlbWVudHM7aWYodm9pZCAwPT09byl7aWYoZXB0KG4sZSkpcmV0dXJuO3QudW5pZm9ybU1hdHJpeDNmdih0aGlzLmFkZHIsITEsZSksbnB0KG4sZSl9ZWxzZXtpZihlcHQobixvKSlyZXR1cm47UWR0LnNldChvKSx0LnVuaWZvcm1NYXRyaXgzZnYodGhpcy5hZGRyLCExLFFkdCksbnB0KG4sbyl9fWZ1bmN0aW9uIGRwdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZSxvPWUuZWxlbWVudHM7aWYodm9pZCAwPT09byl7aWYoZXB0KG4sZSkpcmV0dXJuO3QudW5pZm9ybU1hdHJpeDRmdih0aGlzLmFkZHIsITEsZSksbnB0KG4sZSl9ZWxzZXtpZihlcHQobixvKSlyZXR1cm47SmR0LnNldChvKSx0LnVuaWZvcm1NYXRyaXg0ZnYodGhpcy5hZGRyLCExLEpkdCksbnB0KG4sbyl9fWZ1bmN0aW9uIHBwdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTtuWzBdIT09ZSYmKHQudW5pZm9ybTFpKHRoaXMuYWRkcixlKSxuWzBdPWUpfWZ1bmN0aW9uIG1wdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTtlcHQobixlKXx8KHQudW5pZm9ybTJpdih0aGlzLmFkZHIsZSksbnB0KG4sZSkpfWZ1bmN0aW9uIGZwdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTtlcHQobixlKXx8KHQudW5pZm9ybTNpdih0aGlzLmFkZHIsZSksbnB0KG4sZSkpfWZ1bmN0aW9uIHVwdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTtlcHQobixlKXx8KHQudW5pZm9ybTRpdih0aGlzLmFkZHIsZSksbnB0KG4sZSkpfWZ1bmN0aW9uIGdwdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTtuWzBdIT09ZSYmKHQudW5pZm9ybTF1aSh0aGlzLmFkZHIsZSksblswXT1lKX1mdW5jdGlvbiBocHQodCxlKXtjb25zdCBuPXRoaXMuY2FjaGU7ZXB0KG4sZSl8fCh0LnVuaWZvcm0ydWl2KHRoaXMuYWRkcixlKSxucHQobixlKSl9ZnVuY3Rpb24gYnB0KHQsZSl7Y29uc3Qgbj10aGlzLmNhY2hlO2VwdChuLGUpfHwodC51bmlmb3JtM3Vpdih0aGlzLmFkZHIsZSksbnB0KG4sZSkpfWZ1bmN0aW9uIHlwdCh0LGUpe2NvbnN0IG49dGhpcy5jYWNoZTtlcHQobixlKXx8KHQudW5pZm9ybTR1aXYodGhpcy5hZGRyLGUpLG5wdChuLGUpKX1mdW5jdGlvbiBfcHQodCxlLG4pe2NvbnN0IG89dGhpcy5jYWNoZSxpPW4uYWxsb2NhdGVUZXh0dXJlVW5pdCgpO29bMF0hPT1pJiYodC51bmlmb3JtMWkodGhpcy5hZGRyLGkpLG9bMF09aSksbi5zYWZlU2V0VGV4dHVyZTJEKGV8fEdkdCxpKX1mdW5jdGlvbiBDcHQodCxlLG4pe2NvbnN0IG89dGhpcy5jYWNoZSxpPW4uYWxsb2NhdGVUZXh0dXJlVW5pdCgpO29bMF0hPT1pJiYodC51bmlmb3JtMWkodGhpcy5hZGRyLGkpLG9bMF09aSksbi5zZXRUZXh0dXJlM0QoZXx8cWR0LGkpfWZ1bmN0aW9uIE1wdCh0LGUsbil7Y29uc3Qgbz10aGlzLmNhY2hlLGk9bi5hbGxvY2F0ZVRleHR1cmVVbml0KCk7b1swXSE9PWkmJih0LnVuaWZvcm0xaSh0aGlzLmFkZHIsaSksb1swXT1pKSxuLnNhZmVTZXRUZXh0dXJlQ3ViZShlfHxaZHQsaSl9ZnVuY3Rpb24gdnB0KHQsZSxuKXtjb25zdCBvPXRoaXMuY2FjaGUsaT1uLmFsbG9jYXRlVGV4dHVyZVVuaXQoKTtvWzBdIT09aSYmKHQudW5pZm9ybTFpKHRoaXMuYWRkcixpKSxvWzBdPWkpLG4uc2V0VGV4dHVyZTJEQXJyYXkoZXx8WWR0LGkpfWZ1bmN0aW9uIHhwdCh0LGUpe3QudW5pZm9ybTFmdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24gT3B0KHQsZSl7Y29uc3Qgbj10cHQoZSx0aGlzLnNpemUsMik7dC51bmlmb3JtMmZ2KHRoaXMuYWRkcixuKX1mdW5jdGlvbiBQcHQodCxlKXtjb25zdCBuPXRwdChlLHRoaXMuc2l6ZSwzKTt0LnVuaWZvcm0zZnYodGhpcy5hZGRyLG4pfWZ1bmN0aW9uIHdwdCh0LGUpe2NvbnN0IG49dHB0KGUsdGhpcy5zaXplLDQpO3QudW5pZm9ybTRmdih0aGlzLmFkZHIsbil9ZnVuY3Rpb24ga3B0KHQsZSl7Y29uc3Qgbj10cHQoZSx0aGlzLnNpemUsNCk7dC51bmlmb3JtTWF0cml4MmZ2KHRoaXMuYWRkciwhMSxuKX1mdW5jdGlvbiBTcHQodCxlKXtjb25zdCBuPXRwdChlLHRoaXMuc2l6ZSw5KTt0LnVuaWZvcm1NYXRyaXgzZnYodGhpcy5hZGRyLCExLG4pfWZ1bmN0aW9uIERwdCh0LGUpe2NvbnN0IG49dHB0KGUsdGhpcy5zaXplLDE2KTt0LnVuaWZvcm1NYXRyaXg0ZnYodGhpcy5hZGRyLCExLG4pfWZ1bmN0aW9uIFJwdCh0LGUpe3QudW5pZm9ybTFpdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24gRXB0KHQsZSl7dC51bmlmb3JtMml2KHRoaXMuYWRkcixlKX1mdW5jdGlvbiBBcHQodCxlKXt0LnVuaWZvcm0zaXYodGhpcy5hZGRyLGUpfWZ1bmN0aW9uIFRwdCh0LGUpe3QudW5pZm9ybTRpdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24gTnB0KHQsZSl7dC51bmlmb3JtMXVpdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24genB0KHQsZSl7dC51bmlmb3JtMnVpdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24gSXB0KHQsZSl7dC51bmlmb3JtM3Vpdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24gSHB0KHQsZSl7dC51bmlmb3JtNHVpdih0aGlzLmFkZHIsZSl9ZnVuY3Rpb24gRnB0KHQsZSxuKXtjb25zdCBvPWUubGVuZ3RoLGk9b3B0KG4sbyk7dC51bmlmb3JtMWl2KHRoaXMuYWRkcixpKTtmb3IobGV0IHQ9MDt0IT09bzsrK3Qpbi5zYWZlU2V0VGV4dHVyZTJEKGVbdF18fEdkdCxpW3RdKX1mdW5jdGlvbiBMcHQodCxlLG4pe2NvbnN0IG89ZS5sZW5ndGgsaT1vcHQobixvKTt0LnVuaWZvcm0xaXYodGhpcy5hZGRyLGkpO2ZvcihsZXQgdD0wO3QhPT1vOysrdCluLnNhZmVTZXRUZXh0dXJlQ3ViZShlW3RdfHxaZHQsaVt0XSl9ZnVuY3Rpb24gQnB0KHQsZSxuKXt0aGlzLmlkPXQsdGhpcy5hZGRyPW4sdGhpcy5jYWNoZT1bXSx0aGlzLnNldFZhbHVlPShmdW5jdGlvbiBvKHQpe3N3aXRjaCh0KXtjYXNlIDUxMjY6cmV0dXJuIGlwdDtjYXNlIDM1NjY0OnJldHVybiBhcHQ7Y2FzZSAzNTY2NTpyZXR1cm4gcnB0O2Nhc2UgMzU2NjY6cmV0dXJuIHNwdDtjYXNlIDM1Njc0OnJldHVybiBscHQ7Y2FzZSAzNTY3NTpyZXR1cm4gY3B0O2Nhc2UgMzU2NzY6cmV0dXJuIGRwdDtjYXNlIDUxMjQ6Y2FzZSAzNTY3MDpyZXR1cm4gcHB0O2Nhc2UgMzU2Njc6Y2FzZSAzNTY3MTpyZXR1cm4gbXB0O2Nhc2UgMzU2Njg6Y2FzZSAzNTY3MjpyZXR1cm4gZnB0O2Nhc2UgMzU2Njk6Y2FzZSAzNTY3MzpyZXR1cm4gdXB0O2Nhc2UgNTEyNTpyZXR1cm4gZ3B0O2Nhc2UgMzYyOTQ6cmV0dXJuIGhwdDtjYXNlIDM2Mjk1OnJldHVybiBicHQ7Y2FzZSAzNjI5NjpyZXR1cm4geXB0O2Nhc2UgMzU2Nzg6Y2FzZSAzNjE5ODpjYXNlIDM2Mjk4OmNhc2UgMzYzMDY6Y2FzZSAzNTY4MjpyZXR1cm4gX3B0O2Nhc2UgMzU2Nzk6Y2FzZSAzNjI5OTpjYXNlIDM2MzA3OnJldHVybiBDcHQ7Y2FzZSAzNTY4MDpjYXNlIDM2MzAwOmNhc2UgMzYzMDg6Y2FzZSAzNjI5MzpyZXR1cm4gTXB0O2Nhc2UgMzYyODk6Y2FzZSAzNjMwMzpjYXNlIDM2MzExOmNhc2UgMzYyOTI6cmV0dXJuIHZwdH19KShlLnR5cGUpfWZ1bmN0aW9uIFZwdCh0LGUsbil7dGhpcy5pZD10LHRoaXMuYWRkcj1uLHRoaXMuY2FjaGU9W10sdGhpcy5zaXplPWUuc2l6ZSx0aGlzLnNldFZhbHVlPShmdW5jdGlvbiBvKHQpe3N3aXRjaCh0KXtjYXNlIDUxMjY6cmV0dXJuIHhwdDtjYXNlIDM1NjY0OnJldHVybiBPcHQ7Y2FzZSAzNTY2NTpyZXR1cm4gUHB0O2Nhc2UgMzU2NjY6cmV0dXJuIHdwdDtjYXNlIDM1Njc0OnJldHVybiBrcHQ7Y2FzZSAzNTY3NTpyZXR1cm4gU3B0O2Nhc2UgMzU2NzY6cmV0dXJuIERwdDtjYXNlIDUxMjQ6Y2FzZSAzNTY3MDpyZXR1cm4gUnB0O2Nhc2UgMzU2Njc6Y2FzZSAzNTY3MTpyZXR1cm4gRXB0O2Nhc2UgMzU2Njg6Y2FzZSAzNTY3MjpyZXR1cm4gQXB0O2Nhc2UgMzU2Njk6Y2FzZSAzNTY3MzpyZXR1cm4gVHB0O2Nhc2UgNTEyNTpyZXR1cm4gTnB0O2Nhc2UgMzYyOTQ6cmV0dXJuIHpwdDtjYXNlIDM2Mjk1OnJldHVybiBJcHQ7Y2FzZSAzNjI5NjpyZXR1cm4gSHB0O2Nhc2UgMzU2Nzg6Y2FzZSAzNjE5ODpjYXNlIDM2Mjk4OmNhc2UgMzYzMDY6Y2FzZSAzNTY4MjpyZXR1cm4gRnB0O2Nhc2UgMzU2ODA6Y2FzZSAzNjMwMDpjYXNlIDM2MzA4OmNhc2UgMzYyOTM6cmV0dXJuIExwdH19KShlLnR5cGUpfWZ1bmN0aW9uIGpwdCh0KXt0aGlzLmlkPXQsdGhpcy5zZXE9W10sdGhpcy5tYXA9e319VnB0LnByb3RvdHlwZS51cGRhdGVDYWNoZT1mdW5jdGlvbih0KXtjb25zdCBlPXRoaXMuY2FjaGU7dCBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSYmZS5sZW5ndGghPT10Lmxlbmd0aCYmKHRoaXMuY2FjaGU9bmV3IEZsb2F0MzJBcnJheSh0Lmxlbmd0aCkpLG5wdChlLHQpfSxqcHQucHJvdG90eXBlLnNldFZhbHVlPWZ1bmN0aW9uKHQsZSxuKXtjb25zdCBvPXRoaXMuc2VxO2ZvcihsZXQgaT0wLGE9by5sZW5ndGg7aSE9PWE7KytpKXtjb25zdCBhPW9baV07YS5zZXRWYWx1ZSh0LGVbYS5pZF0sbil9fTtjb25zdCBVcHQ9LyhcdyspKFxdKT8oXFt8XC4pPy9nO2Z1bmN0aW9uIFdwdCh0LGUpe3Quc2VxLnB1c2goZSksdC5tYXBbZS5pZF09ZX1mdW5jdGlvbiBHcHQodCxlLG4pe2NvbnN0IG89dC5uYW1lLGk9by5sZW5ndGg7Zm9yKFVwdC5sYXN0SW5kZXg9MDs7KXtjb25zdCBhPVVwdC5leGVjKG8pLHI9VXB0Lmxhc3RJbmRleDtsZXQgcz1hWzFdO2NvbnN0IGw9YVszXTtpZigiXSI9PT1hWzJdJiYoc3w9MCksdm9pZCAwPT09bHx8IlsiPT09bCYmcisyPT09aSl7V3B0KG4sdm9pZCAwPT09bD9uZXcgQnB0KHMsdCxlKTpuZXcgVnB0KHMsdCxlKSk7YnJlYWt9e2xldCB0PW4ubWFwW3NdO3ZvaWQgMD09PXQmJih0PW5ldyBqcHQocyksV3B0KG4sdCkpLG49dH19fWZ1bmN0aW9uIFlwdCh0LGUpe3RoaXMuc2VxPVtdLHRoaXMubWFwPXt9O2NvbnN0IG49dC5nZXRQcm9ncmFtUGFyYW1ldGVyKGUsMzU3MTgpO2ZvcihsZXQgbz0wO288bjsrK28pe2NvbnN0IG49dC5nZXRBY3RpdmVVbmlmb3JtKGUsbyk7R3B0KG4sdC5nZXRVbmlmb3JtTG9jYXRpb24oZSxuLm5hbWUpLHRoaXMpfX1mdW5jdGlvbiBxcHQodCxlLG4pe2NvbnN0IG89dC5jcmVhdGVTaGFkZXIoZSk7cmV0dXJuIHQuc2hhZGVyU291cmNlKG8sbiksdC5jb21waWxlU2hhZGVyKG8pLG99WXB0LnByb3RvdHlwZS5zZXRWYWx1ZT1mdW5jdGlvbih0LGUsbixvKXtjb25zdCBpPXRoaXMubWFwW2VdO3ZvaWQgMCE9PWkmJmkuc2V0VmFsdWUodCxuLG8pfSxZcHQucHJvdG90eXBlLnNldE9wdGlvbmFsPWZ1bmN0aW9uKHQsZSxuKXtjb25zdCBvPWVbbl07dm9pZCAwIT09byYmdGhpcy5zZXRWYWx1ZSh0LG4sbyl9LFlwdC51cGxvYWQ9ZnVuY3Rpb24odCxlLG4sbyl7Zm9yKGxldCBpPTAsYT1lLmxlbmd0aDtpIT09YTsrK2kpe2NvbnN0IGE9ZVtpXSxyPW5bYS5pZF07ITEhPT1yLm5lZWRzVXBkYXRlJiZhLnNldFZhbHVlKHQsci52YWx1ZSxvKX19LFlwdC5zZXFXaXRoVmFsdWU9ZnVuY3Rpb24odCxlKXtjb25zdCBuPVtdO2ZvcihsZXQgbz0wLGk9dC5sZW5ndGg7byE9PWk7KytvKXtjb25zdCBpPXRbb107aS5pZCBpbiBlJiZuLnB1c2goaSl9cmV0dXJuIG59O2xldCBacHQ9MDtmdW5jdGlvbiBYcHQodCl7c3dpdGNoKHQpe2Nhc2UgUXJ0OnJldHVyblsiTGluZWFyIiwiKCB2YWx1ZSApIl07Y2FzZSAkcnQ6cmV0dXJuWyJzUkdCIiwiKCB2YWx1ZSApIl07Y2FzZSBlc3Q6cmV0dXJuWyJSR0JFIiwiKCB2YWx1ZSApIl07Y2FzZSAzMDA0OnJldHVyblsiUkdCTSIsIiggdmFsdWUsIDcuMCApIl07Y2FzZSAzMDA1OnJldHVyblsiUkdCTSIsIiggdmFsdWUsIDE2LjAgKSJdO2Nhc2UgMzAwNjpyZXR1cm5bIlJHQkQiLCIoIHZhbHVlLCAyNTYuMCApIl07Y2FzZSB0c3Q6cmV0dXJuWyJHYW1tYSIsIiggdmFsdWUsIGZsb2F0KCBHQU1NQV9GQUNUT1IgKSApIl07Y2FzZSAzMDAzOnJldHVyblsiTG9nTHV2IiwiKCB2YWx1ZSApIl07ZGVmYXVsdDpyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFByb2dyYW06IFVuc3VwcG9ydGVkIGVuY29kaW5nOiIsdCksWyJMaW5lYXIiLCIoIHZhbHVlICkiXX19ZnVuY3Rpb24gS3B0KHQsZSxuKXtjb25zdCBvPXQuZ2V0U2hhZGVyUGFyYW1ldGVyKGUsMzU3MTMpLGk9dC5nZXRTaGFkZXJJbmZvTG9nKGUpLnRyaW0oKTtpZihvJiYiIj09PWkpcmV0dXJuIiI7cmV0dXJuIlRIUkVFLldlYkdMU2hhZGVyOiBnbC5nZXRTaGFkZXJJbmZvTG9nKCkgIituKyJcbiIraSsoZnVuY3Rpb24gYSh0KXtjb25zdCBlPXQuc3BsaXQoIlxuIik7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XT10KzErIjogIitlW3RdO3JldHVybiBlLmpvaW4oIlxuIil9KSh0LmdldFNoYWRlclNvdXJjZShlKSl9ZnVuY3Rpb24gSnB0KHQsZSl7Y29uc3Qgbj1YcHQoZSk7cmV0dXJuInZlYzQgIit0KyIoIHZlYzQgdmFsdWUgKSB7IHJldHVybiAiK25bMF0rIlRvTGluZWFyIituWzFdKyI7IH0ifWZ1bmN0aW9uIFFwdCh0LGUpe2NvbnN0IG49WHB0KGUpO3JldHVybiJ2ZWM0ICIrdCsiKCB2ZWM0IHZhbHVlICkgeyByZXR1cm4gTGluZWFyVG8iK25bMF0rblsxXSsiOyB9In1mdW5jdGlvbiAkcHQodCxlKXtsZXQgbjtzd2l0Y2goZSl7Y2FzZSAxOm49IkxpbmVhciI7YnJlYWs7Y2FzZSAyOm49IlJlaW5oYXJkIjticmVhaztjYXNlIDM6bj0iT3B0aW1pemVkQ2luZW9uIjticmVhaztjYXNlIDQ6bj0iQUNFU0ZpbG1pYyI7YnJlYWs7Y2FzZSA1Om49IkN1c3RvbSI7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUHJvZ3JhbTogVW5zdXBwb3J0ZWQgdG9uZU1hcHBpbmc6IixlKSxuPSJMaW5lYXIifXJldHVybiJ2ZWMzICIrdCsiKCB2ZWMzIGNvbG9yICkgeyByZXR1cm4gIituKyJUb25lTWFwcGluZyggY29sb3IgKTsgfSJ9ZnVuY3Rpb24gdG10KHQpe3JldHVybiIiIT09dH1mdW5jdGlvbiBlbXQodCxlKXtyZXR1cm4gdC5yZXBsYWNlKC9OVU1fRElSX0xJR0hUUy9nLGUubnVtRGlyTGlnaHRzKS5yZXBsYWNlKC9OVU1fU1BPVF9MSUdIVFMvZyxlLm51bVNwb3RMaWdodHMpLnJlcGxhY2UoL05VTV9SRUNUX0FSRUFfTElHSFRTL2csZS5udW1SZWN0QXJlYUxpZ2h0cykucmVwbGFjZSgvTlVNX1BPSU5UX0xJR0hUUy9nLGUubnVtUG9pbnRMaWdodHMpLnJlcGxhY2UoL05VTV9IRU1JX0xJR0hUUy9nLGUubnVtSGVtaUxpZ2h0cykucmVwbGFjZSgvTlVNX0RJUl9MSUdIVF9TSEFET1dTL2csZS5udW1EaXJMaWdodFNoYWRvd3MpLnJlcGxhY2UoL05VTV9TUE9UX0xJR0hUX1NIQURPV1MvZyxlLm51bVNwb3RMaWdodFNoYWRvd3MpLnJlcGxhY2UoL05VTV9QT0lOVF9MSUdIVF9TSEFET1dTL2csZS5udW1Qb2ludExpZ2h0U2hhZG93cyl9ZnVuY3Rpb24gbm10KHQsZSl7cmV0dXJuIHQucmVwbGFjZSgvTlVNX0NMSVBQSU5HX1BMQU5FUy9nLGUubnVtQ2xpcHBpbmdQbGFuZXMpLnJlcGxhY2UoL1VOSU9OX0NMSVBQSU5HX1BMQU5FUy9nLGUubnVtQ2xpcHBpbmdQbGFuZXMtZS5udW1DbGlwSW50ZXJzZWN0aW9uKX1jb25zdCBvbXQ9L15bIFx0XSojaW5jbHVkZSArPChbXHdcZC4vXSspPi9nbTtmdW5jdGlvbiBpbXQodCl7cmV0dXJuIHQucmVwbGFjZShvbXQsYW10KX1mdW5jdGlvbiBhbXQodCxlKXtjb25zdCBuPUpjdFtlXTtpZih2b2lkIDA9PT1uKXRocm93IG5ldyBFcnJvcigiQ2FuIG5vdCByZXNvbHZlICNpbmNsdWRlIDwiK2UrIj4iKTtyZXR1cm4gaW10KG4pfWNvbnN0IHJtdD0vI3ByYWdtYSB1bnJvbGxfbG9vcFtcc10rP2ZvciBcKCBpbnQgaSBcPSAoXGQrKVw7IGkgPCAoXGQrKVw7IGkgXCtcKyBcKSBceyhbXHNcU10rPykoPz1cfSlcfS9nLHNtdD0vI3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxzK2ZvclxzKlwoXHMqaW50XHMraVxzKj1ccyooXGQrKVxzKjtccyppXHMqPFxzKihcZCspXHMqO1xzKmlccypcK1wrXHMqXClccyp7KFtcc1xTXSs/KX1ccysjcHJhZ21hIHVucm9sbF9sb29wX2VuZC9nO2Z1bmN0aW9uIGxtdCh0KXtyZXR1cm4gdC5yZXBsYWNlKHNtdCxkbXQpLnJlcGxhY2Uocm10LGNtdCl9ZnVuY3Rpb24gY210KHQsZSxuLG8pe3JldHVybiBjb25zb2xlLndhcm4oIldlYkdMUHJvZ3JhbTogI3ByYWdtYSB1bnJvbGxfbG9vcCBzaGFkZXIgc3ludGF4IGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgI3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydCBzeW50YXggaW5zdGVhZC4iKSxkbXQodCxlLG4sbyl9ZnVuY3Rpb24gZG10KHQsZSxuLG8pe2xldCBpPSIiO2ZvcihsZXQgdD1wYXJzZUludChlKTt0PHBhcnNlSW50KG4pO3QrKylpKz1vLnJlcGxhY2UoL1xbXHMqaVxzKlxdL2csIlsgIit0KyIgXSIpLnJlcGxhY2UoL1VOUk9MTEVEX0xPT1BfSU5ERVgvZyx0KTtyZXR1cm4gaX1mdW5jdGlvbiBwbXQodCl7bGV0IGU9InByZWNpc2lvbiAiK3QucHJlY2lzaW9uKyIgZmxvYXQ7XG5wcmVjaXNpb24gIit0LnByZWNpc2lvbisiIGludDsiO3JldHVybiJoaWdocCI9PT10LnByZWNpc2lvbj9lKz0iXG4jZGVmaW5lIEhJR0hfUFJFQ0lTSU9OIjoibWVkaXVtcCI9PT10LnByZWNpc2lvbj9lKz0iXG4jZGVmaW5lIE1FRElVTV9QUkVDSVNJT04iOiJsb3dwIj09PXQucHJlY2lzaW9uJiYoZSs9IlxuI2RlZmluZSBMT1dfUFJFQ0lTSU9OIiksZX1mdW5jdGlvbiBtbXQodCxlLG4sbyl7Y29uc3QgaT10LmdldENvbnRleHQoKSxhPW4uZGVmaW5lcztsZXQgcj1uLnZlcnRleFNoYWRlcixzPW4uZnJhZ21lbnRTaGFkZXI7Y29uc3QgbD0oZnVuY3Rpb24gYyh0KXtsZXQgZT0iU0hBRE9XTUFQX1RZUEVfQkFTSUMiO3JldHVybiAxPT09dC5zaGFkb3dNYXBUeXBlP2U9IlNIQURPV01BUF9UWVBFX1BDRiI6Mj09PXQuc2hhZG93TWFwVHlwZT9lPSJTSEFET1dNQVBfVFlQRV9QQ0ZfU09GVCI6Mz09PXQuc2hhZG93TWFwVHlwZSYmKGU9IlNIQURPV01BUF9UWVBFX1ZTTSIpLGV9KShuKSxkPShmdW5jdGlvbiBwKHQpe2xldCBlPSJFTlZNQVBfVFlQRV9DVUJFIjtpZih0LmVudk1hcClzd2l0Y2godC5lbnZNYXBNb2RlKXtjYXNlIHdydDpjYXNlIGtydDplPSJFTlZNQVBfVFlQRV9DVUJFIjticmVhaztjYXNlIFNydDpjYXNlIDMwNzplPSJFTlZNQVBfVFlQRV9DVUJFX1VWIn1yZXR1cm4gZX0pKG4pLG09KGZ1bmN0aW9uIGYodCl7bGV0IGU9IkVOVk1BUF9NT0RFX1JFRkxFQ1RJT04iO2lmKHQuZW52TWFwKXN3aXRjaCh0LmVudk1hcE1vZGUpe2Nhc2Uga3J0OmNhc2UgMzA3OmU9IkVOVk1BUF9NT0RFX1JFRlJBQ1RJT04ifXJldHVybiBlfSkobiksdT0oZnVuY3Rpb24gZyh0KXtsZXQgZT0iRU5WTUFQX0JMRU5ESU5HX05PTkUiO2lmKHQuZW52TWFwKXN3aXRjaCh0LmNvbWJpbmUpe2Nhc2UgMDplPSJFTlZNQVBfQkxFTkRJTkdfTVVMVElQTFkiO2JyZWFrO2Nhc2UgMTplPSJFTlZNQVBfQkxFTkRJTkdfTUlYIjticmVhaztjYXNlIDI6ZT0iRU5WTUFQX0JMRU5ESU5HX0FERCJ9cmV0dXJuIGV9KShuKSxoPXQuZ2FtbWFGYWN0b3I+MD90LmdhbW1hRmFjdG9yOjEsYj1uLmlzV2ViR0wyPyIiOihmdW5jdGlvbiB5KHQpe3JldHVyblt0LmV4dGVuc2lvbkRlcml2YXRpdmVzfHx0LmVudk1hcEN1YmVVVnx8dC5idW1wTWFwfHx0LnRhbmdlbnRTcGFjZU5vcm1hbE1hcHx8dC5jbGVhcmNvYXROb3JtYWxNYXB8fHQuZmxhdFNoYWRpbmd8fCJwaHlzaWNhbCI9PT10LnNoYWRlcklEPyIjZXh0ZW5zaW9uIEdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyA6IGVuYWJsZSI6IiIsKHQuZXh0ZW5zaW9uRnJhZ0RlcHRofHx0LmxvZ2FyaXRobWljRGVwdGhCdWZmZXIpJiZ0LnJlbmRlcmVyRXh0ZW5zaW9uRnJhZ0RlcHRoPyIjZXh0ZW5zaW9uIEdMX0VYVF9mcmFnX2RlcHRoIDogZW5hYmxlIjoiIix0LmV4dGVuc2lvbkRyYXdCdWZmZXJzJiZ0LnJlbmRlcmVyRXh0ZW5zaW9uRHJhd0J1ZmZlcnM/IiNleHRlbnNpb24gR0xfRVhUX2RyYXdfYnVmZmVycyA6IHJlcXVpcmUiOiIiLCh0LmV4dGVuc2lvblNoYWRlclRleHR1cmVMT0R8fHQuZW52TWFwfHx0LnRyYW5zbWlzc2lvbj4wKSYmdC5yZW5kZXJlckV4dGVuc2lvblNoYWRlclRleHR1cmVMb2Q/IiNleHRlbnNpb24gR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCA6IGVuYWJsZSI6IiJdLmZpbHRlcih0bXQpLmpvaW4oIlxuIil9KShuKSxfPShmdW5jdGlvbiBDKHQpe2NvbnN0IGU9W107Zm9yKGNvbnN0IG4gaW4gdCl7Y29uc3Qgbz10W25dOyExIT09byYmZS5wdXNoKCIjZGVmaW5lICIrbisiICIrbyl9cmV0dXJuIGUuam9pbigiXG4iKX0pKGEpLE09aS5jcmVhdGVQcm9ncmFtKCk7bGV0IHYseCxPPW4uZ2xzbFZlcnNpb24/IiN2ZXJzaW9uICIrbi5nbHNsVmVyc2lvbisiXG4iOiIiO24uaXNSYXdTaGFkZXJNYXRlcmlhbD8odj1bX10uZmlsdGVyKHRtdCkuam9pbigiXG4iKSx2Lmxlbmd0aD4wJiYodis9IlxuIikseD1bYixfXS5maWx0ZXIodG10KS5qb2luKCJcbiIpLHgubGVuZ3RoPjAmJih4Kz0iXG4iKSk6KHY9W3BtdChuKSwiI2RlZmluZSBTSEFERVJfTkFNRSAiK24uc2hhZGVyTmFtZSxfLG4uaW5zdGFuY2luZz8iI2RlZmluZSBVU0VfSU5TVEFOQ0lORyI6IiIsbi5pbnN0YW5jaW5nQ29sb3I/IiNkZWZpbmUgVVNFX0lOU1RBTkNJTkdfQ09MT1IiOiIiLG4uc3VwcG9ydHNWZXJ0ZXhUZXh0dXJlcz8iI2RlZmluZSBWRVJURVhfVEVYVFVSRVMiOiIiLCIjZGVmaW5lIEdBTU1BX0ZBQ1RPUiAiK2gsIiNkZWZpbmUgTUFYX0JPTkVTICIrbi5tYXhCb25lcyxuLnVzZUZvZyYmbi5mb2c/IiNkZWZpbmUgVVNFX0ZPRyI6IiIsbi51c2VGb2cmJm4uZm9nRXhwMj8iI2RlZmluZSBGT0dfRVhQMiI6IiIsbi5tYXA/IiNkZWZpbmUgVVNFX01BUCI6IiIsbi5lbnZNYXA/IiNkZWZpbmUgVVNFX0VOVk1BUCI6IiIsbi5lbnZNYXA/IiNkZWZpbmUgIittOiIiLG4ubGlnaHRNYXA/IiNkZWZpbmUgVVNFX0xJR0hUTUFQIjoiIixuLmFvTWFwPyIjZGVmaW5lIFVTRV9BT01BUCI6IiIsbi5lbWlzc2l2ZU1hcD8iI2RlZmluZSBVU0VfRU1JU1NJVkVNQVAiOiIiLG4uYnVtcE1hcD8iI2RlZmluZSBVU0VfQlVNUE1BUCI6IiIsbi5ub3JtYWxNYXA/IiNkZWZpbmUgVVNFX05PUk1BTE1BUCI6IiIsbi5ub3JtYWxNYXAmJm4ub2JqZWN0U3BhY2VOb3JtYWxNYXA/IiNkZWZpbmUgT0JKRUNUU1BBQ0VfTk9STUFMTUFQIjoiIixuLm5vcm1hbE1hcCYmbi50YW5nZW50U3BhY2VOb3JtYWxNYXA/IiNkZWZpbmUgVEFOR0VOVFNQQUNFX05PUk1BTE1BUCI6IiIsbi5jbGVhcmNvYXRNYXA/IiNkZWZpbmUgVVNFX0NMRUFSQ09BVE1BUCI6IiIsbi5jbGVhcmNvYXRSb3VnaG5lc3NNYXA/IiNkZWZpbmUgVVNFX0NMRUFSQ09BVF9ST1VHSE5FU1NNQVAiOiIiLG4uY2xlYXJjb2F0Tm9ybWFsTWFwPyIjZGVmaW5lIFVTRV9DTEVBUkNPQVRfTk9STUFMTUFQIjoiIixuLmRpc3BsYWNlbWVudE1hcCYmbi5zdXBwb3J0c1ZlcnRleFRleHR1cmVzPyIjZGVmaW5lIFVTRV9ESVNQTEFDRU1FTlRNQVAiOiIiLG4uc3BlY3VsYXJNYXA/IiNkZWZpbmUgVVNFX1NQRUNVTEFSTUFQIjoiIixuLnNwZWN1bGFySW50ZW5zaXR5TWFwPyIjZGVmaW5lIFVTRV9TUEVDVUxBUklOVEVOU0lUWU1BUCI6IiIsbi5zcGVjdWxhclRpbnRNYXA/IiNkZWZpbmUgVVNFX1NQRUNVTEFSVElOVE1BUCI6IiIsbi5yb3VnaG5lc3NNYXA/IiNkZWZpbmUgVVNFX1JPVUdITkVTU01BUCI6IiIsbi5tZXRhbG5lc3NNYXA/IiNkZWZpbmUgVVNFX01FVEFMTkVTU01BUCI6IiIsbi5hbHBoYU1hcD8iI2RlZmluZSBVU0VfQUxQSEFNQVAiOiIiLG4udHJhbnNtaXNzaW9uPyIjZGVmaW5lIFVTRV9UUkFOU01JU1NJT04iOiIiLG4udHJhbnNtaXNzaW9uTWFwPyIjZGVmaW5lIFVTRV9UUkFOU01JU1NJT05NQVAiOiIiLG4udGhpY2tuZXNzTWFwPyIjZGVmaW5lIFVTRV9USElDS05FU1NNQVAiOiIiLG4udmVydGV4VGFuZ2VudHM/IiNkZWZpbmUgVVNFX1RBTkdFTlQiOiIiLG4udmVydGV4Q29sb3JzPyIjZGVmaW5lIFVTRV9DT0xPUiI6IiIsbi52ZXJ0ZXhBbHBoYXM/IiNkZWZpbmUgVVNFX0NPTE9SX0FMUEhBIjoiIixuLnZlcnRleFV2cz8iI2RlZmluZSBVU0VfVVYiOiIiLG4udXZzVmVydGV4T25seT8iI2RlZmluZSBVVlNfVkVSVEVYX09OTFkiOiIiLG4uZmxhdFNoYWRpbmc/IiNkZWZpbmUgRkxBVF9TSEFERUQiOiIiLG4uc2tpbm5pbmc/IiNkZWZpbmUgVVNFX1NLSU5OSU5HIjoiIixuLnVzZVZlcnRleFRleHR1cmU/IiNkZWZpbmUgQk9ORV9URVhUVVJFIjoiIixuLm1vcnBoVGFyZ2V0cz8iI2RlZmluZSBVU0VfTU9SUEhUQVJHRVRTIjoiIixuLm1vcnBoTm9ybWFscyYmITE9PT1uLmZsYXRTaGFkaW5nPyIjZGVmaW5lIFVTRV9NT1JQSE5PUk1BTFMiOiIiLG4uZG91YmxlU2lkZWQ/IiNkZWZpbmUgRE9VQkxFX1NJREVEIjoiIixuLmZsaXBTaWRlZD8iI2RlZmluZSBGTElQX1NJREVEIjoiIixuLnNoYWRvd01hcEVuYWJsZWQ/IiNkZWZpbmUgVVNFX1NIQURPV01BUCI6IiIsbi5zaGFkb3dNYXBFbmFibGVkPyIjZGVmaW5lICIrbDoiIixuLnNpemVBdHRlbnVhdGlvbj8iI2RlZmluZSBVU0VfU0laRUFUVEVOVUFUSU9OIjoiIixuLmxvZ2FyaXRobWljRGVwdGhCdWZmZXI/IiNkZWZpbmUgVVNFX0xPR0RFUFRIQlVGIjoiIixuLmxvZ2FyaXRobWljRGVwdGhCdWZmZXImJm4ucmVuZGVyZXJFeHRlbnNpb25GcmFnRGVwdGg/IiNkZWZpbmUgVVNFX0xPR0RFUFRIQlVGX0VYVCI6IiIsInVuaWZvcm0gbWF0NCBtb2RlbE1hdHJpeDsiLCJ1bmlmb3JtIG1hdDQgbW9kZWxWaWV3TWF0cml4OyIsInVuaWZvcm0gbWF0NCBwcm9qZWN0aW9uTWF0cml4OyIsInVuaWZvcm0gbWF0NCB2aWV3TWF0cml4OyIsInVuaWZvcm0gbWF0MyBub3JtYWxNYXRyaXg7IiwidW5pZm9ybSB2ZWMzIGNhbWVyYVBvc2l0aW9uOyIsInVuaWZvcm0gYm9vbCBpc09ydGhvZ3JhcGhpYzsiLCIjaWZkZWYgVVNFX0lOU1RBTkNJTkciLCJcdGF0dHJpYnV0ZSBtYXQ0IGluc3RhbmNlTWF0cml4OyIsIiNlbmRpZiIsIiNpZmRlZiBVU0VfSU5TVEFOQ0lOR19DT0xPUiIsIlx0YXR0cmlidXRlIHZlYzMgaW5zdGFuY2VDb2xvcjsiLCIjZW5kaWYiLCJhdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjsiLCJhdHRyaWJ1dGUgdmVjMyBub3JtYWw7IiwiYXR0cmlidXRlIHZlYzIgdXY7IiwiI2lmZGVmIFVTRV9UQU5HRU5UIiwiXHRhdHRyaWJ1dGUgdmVjNCB0YW5nZW50OyIsIiNlbmRpZiIsIiNpZiBkZWZpbmVkKCBVU0VfQ09MT1JfQUxQSEEgKSIsIlx0YXR0cmlidXRlIHZlYzQgY29sb3I7IiwiI2VsaWYgZGVmaW5lZCggVVNFX0NPTE9SICkiLCJcdGF0dHJpYnV0ZSB2ZWMzIGNvbG9yOyIsIiNlbmRpZiIsIiNpZmRlZiBVU0VfTU9SUEhUQVJHRVRTIiwiXHRhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDA7IiwiXHRhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDE7IiwiXHRhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDI7IiwiXHRhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDM7IiwiXHQjaWZkZWYgVVNFX01PUlBITk9STUFMUyIsIlx0XHRhdHRyaWJ1dGUgdmVjMyBtb3JwaE5vcm1hbDA7IiwiXHRcdGF0dHJpYnV0ZSB2ZWMzIG1vcnBoTm9ybWFsMTsiLCJcdFx0YXR0cmlidXRlIHZlYzMgbW9ycGhOb3JtYWwyOyIsIlx0XHRhdHRyaWJ1dGUgdmVjMyBtb3JwaE5vcm1hbDM7IiwiXHQjZWxzZSIsIlx0XHRhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDQ7IiwiXHRcdGF0dHJpYnV0ZSB2ZWMzIG1vcnBoVGFyZ2V0NTsiLCJcdFx0YXR0cmlidXRlIHZlYzMgbW9ycGhUYXJnZXQ2OyIsIlx0XHRhdHRyaWJ1dGUgdmVjMyBtb3JwaFRhcmdldDc7IiwiXHQjZW5kaWYiLCIjZW5kaWYiLCIjaWZkZWYgVVNFX1NLSU5OSU5HIiwiXHRhdHRyaWJ1dGUgdmVjNCBza2luSW5kZXg7IiwiXHRhdHRyaWJ1dGUgdmVjNCBza2luV2VpZ2h0OyIsIiNlbmRpZiIsIlxuIl0uZmlsdGVyKHRtdCkuam9pbigiXG4iKSx4PVtiLHBtdChuKSwiI2RlZmluZSBTSEFERVJfTkFNRSAiK24uc2hhZGVyTmFtZSxfLG4uYWxwaGFUZXN0PyIjZGVmaW5lIEFMUEhBVEVTVCAiK24uYWxwaGFUZXN0KyhuLmFscGhhVGVzdCUxPyIiOiIuMCIpOiIiLCIjZGVmaW5lIEdBTU1BX0ZBQ1RPUiAiK2gsbi51c2VGb2cmJm4uZm9nPyIjZGVmaW5lIFVTRV9GT0ciOiIiLG4udXNlRm9nJiZuLmZvZ0V4cDI/IiNkZWZpbmUgRk9HX0VYUDIiOiIiLG4ubWFwPyIjZGVmaW5lIFVTRV9NQVAiOiIiLG4ubWF0Y2FwPyIjZGVmaW5lIFVTRV9NQVRDQVAiOiIiLG4uZW52TWFwPyIjZGVmaW5lIFVTRV9FTlZNQVAiOiIiLG4uZW52TWFwPyIjZGVmaW5lICIrZDoiIixuLmVudk1hcD8iI2RlZmluZSAiK206IiIsbi5lbnZNYXA/IiNkZWZpbmUgIit1OiIiLG4ubGlnaHRNYXA/IiNkZWZpbmUgVVNFX0xJR0hUTUFQIjoiIixuLmFvTWFwPyIjZGVmaW5lIFVTRV9BT01BUCI6IiIsbi5lbWlzc2l2ZU1hcD8iI2RlZmluZSBVU0VfRU1JU1NJVkVNQVAiOiIiLG4uYnVtcE1hcD8iI2RlZmluZSBVU0VfQlVNUE1BUCI6IiIsbi5ub3JtYWxNYXA/IiNkZWZpbmUgVVNFX05PUk1BTE1BUCI6IiIsbi5ub3JtYWxNYXAmJm4ub2JqZWN0U3BhY2VOb3JtYWxNYXA/IiNkZWZpbmUgT0JKRUNUU1BBQ0VfTk9STUFMTUFQIjoiIixuLm5vcm1hbE1hcCYmbi50YW5nZW50U3BhY2VOb3JtYWxNYXA/IiNkZWZpbmUgVEFOR0VOVFNQQUNFX05PUk1BTE1BUCI6IiIsbi5jbGVhcmNvYXRNYXA/IiNkZWZpbmUgVVNFX0NMRUFSQ09BVE1BUCI6IiIsbi5jbGVhcmNvYXRSb3VnaG5lc3NNYXA/IiNkZWZpbmUgVVNFX0NMRUFSQ09BVF9ST1VHSE5FU1NNQVAiOiIiLG4uY2xlYXJjb2F0Tm9ybWFsTWFwPyIjZGVmaW5lIFVTRV9DTEVBUkNPQVRfTk9STUFMTUFQIjoiIixuLnNwZWN1bGFyTWFwPyIjZGVmaW5lIFVTRV9TUEVDVUxBUk1BUCI6IiIsbi5zcGVjdWxhckludGVuc2l0eU1hcD8iI2RlZmluZSBVU0VfU1BFQ1VMQVJJTlRFTlNJVFlNQVAiOiIiLG4uc3BlY3VsYXJUaW50TWFwPyIjZGVmaW5lIFVTRV9TUEVDVUxBUlRJTlRNQVAiOiIiLG4ucm91Z2huZXNzTWFwPyIjZGVmaW5lIFVTRV9ST1VHSE5FU1NNQVAiOiIiLG4ubWV0YWxuZXNzTWFwPyIjZGVmaW5lIFVTRV9NRVRBTE5FU1NNQVAiOiIiLG4uYWxwaGFNYXA/IiNkZWZpbmUgVVNFX0FMUEhBTUFQIjoiIixuLnNoZWVuPyIjZGVmaW5lIFVTRV9TSEVFTiI6IiIsbi50cmFuc21pc3Npb24/IiNkZWZpbmUgVVNFX1RSQU5TTUlTU0lPTiI6IiIsbi50cmFuc21pc3Npb25NYXA/IiNkZWZpbmUgVVNFX1RSQU5TTUlTU0lPTk1BUCI6IiIsbi50aGlja25lc3NNYXA/IiNkZWZpbmUgVVNFX1RISUNLTkVTU01BUCI6IiIsbi52ZXJ0ZXhUYW5nZW50cz8iI2RlZmluZSBVU0VfVEFOR0VOVCI6IiIsbi52ZXJ0ZXhDb2xvcnN8fG4uaW5zdGFuY2luZ0NvbG9yPyIjZGVmaW5lIFVTRV9DT0xPUiI6IiIsbi52ZXJ0ZXhBbHBoYXM/IiNkZWZpbmUgVVNFX0NPTE9SX0FMUEhBIjoiIixuLnZlcnRleFV2cz8iI2RlZmluZSBVU0VfVVYiOiIiLG4udXZzVmVydGV4T25seT8iI2RlZmluZSBVVlNfVkVSVEVYX09OTFkiOiIiLG4uZ3JhZGllbnRNYXA/IiNkZWZpbmUgVVNFX0dSQURJRU5UTUFQIjoiIixuLmZsYXRTaGFkaW5nPyIjZGVmaW5lIEZMQVRfU0hBREVEIjoiIixuLmRvdWJsZVNpZGVkPyIjZGVmaW5lIERPVUJMRV9TSURFRCI6IiIsbi5mbGlwU2lkZWQ/IiNkZWZpbmUgRkxJUF9TSURFRCI6IiIsbi5zaGFkb3dNYXBFbmFibGVkPyIjZGVmaW5lIFVTRV9TSEFET1dNQVAiOiIiLG4uc2hhZG93TWFwRW5hYmxlZD8iI2RlZmluZSAiK2w6IiIsbi5wcmVtdWx0aXBsaWVkQWxwaGE/IiNkZWZpbmUgUFJFTVVMVElQTElFRF9BTFBIQSI6IiIsbi5waHlzaWNhbGx5Q29ycmVjdExpZ2h0cz8iI2RlZmluZSBQSFlTSUNBTExZX0NPUlJFQ1RfTElHSFRTIjoiIixuLmxvZ2FyaXRobWljRGVwdGhCdWZmZXI/IiNkZWZpbmUgVVNFX0xPR0RFUFRIQlVGIjoiIixuLmxvZ2FyaXRobWljRGVwdGhCdWZmZXImJm4ucmVuZGVyZXJFeHRlbnNpb25GcmFnRGVwdGg/IiNkZWZpbmUgVVNFX0xPR0RFUFRIQlVGX0VYVCI6IiIsKG4uZXh0ZW5zaW9uU2hhZGVyVGV4dHVyZUxPRHx8bi5lbnZNYXApJiZuLnJlbmRlcmVyRXh0ZW5zaW9uU2hhZGVyVGV4dHVyZUxvZD8iI2RlZmluZSBURVhUVVJFX0xPRF9FWFQiOiIiLCJ1bmlmb3JtIG1hdDQgdmlld01hdHJpeDsiLCJ1bmlmb3JtIHZlYzMgY2FtZXJhUG9zaXRpb247IiwidW5pZm9ybSBib29sIGlzT3J0aG9ncmFwaGljOyIsMCE9PW4udG9uZU1hcHBpbmc/IiNkZWZpbmUgVE9ORV9NQVBQSU5HIjoiIiwwIT09bi50b25lTWFwcGluZz9KY3QudG9uZW1hcHBpbmdfcGFyc19mcmFnbWVudDoiIiwwIT09bi50b25lTWFwcGluZz8kcHQoInRvbmVNYXBwaW5nIixuLnRvbmVNYXBwaW5nKToiIixuLmRpdGhlcmluZz8iI2RlZmluZSBESVRIRVJJTkciOiIiLEpjdC5lbmNvZGluZ3NfcGFyc19mcmFnbWVudCxuLm1hcD9KcHQoIm1hcFRleGVsVG9MaW5lYXIiLG4ubWFwRW5jb2RpbmcpOiIiLG4ubWF0Y2FwP0pwdCgibWF0Y2FwVGV4ZWxUb0xpbmVhciIsbi5tYXRjYXBFbmNvZGluZyk6IiIsbi5lbnZNYXA/SnB0KCJlbnZNYXBUZXhlbFRvTGluZWFyIixuLmVudk1hcEVuY29kaW5nKToiIixuLmVtaXNzaXZlTWFwP0pwdCgiZW1pc3NpdmVNYXBUZXhlbFRvTGluZWFyIixuLmVtaXNzaXZlTWFwRW5jb2RpbmcpOiIiLG4uc3BlY3VsYXJUaW50TWFwP0pwdCgic3BlY3VsYXJUaW50TWFwVGV4ZWxUb0xpbmVhciIsbi5zcGVjdWxhclRpbnRNYXBFbmNvZGluZyk6IiIsbi5saWdodE1hcD9KcHQoImxpZ2h0TWFwVGV4ZWxUb0xpbmVhciIsbi5saWdodE1hcEVuY29kaW5nKToiIixRcHQoImxpbmVhclRvT3V0cHV0VGV4ZWwiLG4ub3V0cHV0RW5jb2RpbmcpLG4uZGVwdGhQYWNraW5nPyIjZGVmaW5lIERFUFRIX1BBQ0tJTkcgIituLmRlcHRoUGFja2luZzoiIiwiXG4iXS5maWx0ZXIodG10KS5qb2luKCJcbiIpKSxyPWltdChyKSxyPWVtdChyLG4pLHI9bm10KHIsbikscz1pbXQocykscz1lbXQocyxuKSxzPW5tdChzLG4pLHI9bG10KHIpLHM9bG10KHMpLG4uaXNXZWJHTDImJiEwIT09bi5pc1Jhd1NoYWRlck1hdGVyaWFsJiYoTz0iI3ZlcnNpb24gMzAwIGVzXG4iLHY9WyIjZGVmaW5lIGF0dHJpYnV0ZSBpbiIsIiNkZWZpbmUgdmFyeWluZyBvdXQiLCIjZGVmaW5lIHRleHR1cmUyRCB0ZXh0dXJlIl0uam9pbigiXG4iKSsiXG4iK3YseD1bIiNkZWZpbmUgdmFyeWluZyBpbiIsbi5nbHNsVmVyc2lvbj09PWFzdD8iIjoib3V0IGhpZ2hwIHZlYzQgcGNfZnJhZ0NvbG9yOyIsbi5nbHNsVmVyc2lvbj09PWFzdD8iIjoiI2RlZmluZSBnbF9GcmFnQ29sb3IgcGNfZnJhZ0NvbG9yIiwiI2RlZmluZSBnbF9GcmFnRGVwdGhFWFQgZ2xfRnJhZ0RlcHRoIiwiI2RlZmluZSB0ZXh0dXJlMkQgdGV4dHVyZSIsIiNkZWZpbmUgdGV4dHVyZUN1YmUgdGV4dHVyZSIsIiNkZWZpbmUgdGV4dHVyZTJEUHJvaiB0ZXh0dXJlUHJvaiIsIiNkZWZpbmUgdGV4dHVyZTJETG9kRVhUIHRleHR1cmVMb2QiLCIjZGVmaW5lIHRleHR1cmUyRFByb2pMb2RFWFQgdGV4dHVyZVByb2pMb2QiLCIjZGVmaW5lIHRleHR1cmVDdWJlTG9kRVhUIHRleHR1cmVMb2QiLCIjZGVmaW5lIHRleHR1cmUyREdyYWRFWFQgdGV4dHVyZUdyYWQiLCIjZGVmaW5lIHRleHR1cmUyRFByb2pHcmFkRVhUIHRleHR1cmVQcm9qR3JhZCIsIiNkZWZpbmUgdGV4dHVyZUN1YmVHcmFkRVhUIHRleHR1cmVHcmFkIl0uam9pbigiXG4iKSsiXG4iK3gpO2NvbnN0IFA9Tyt4K3Msdz1xcHQoaSwzNTYzMyxPK3Yrciksaz1xcHQoaSwzNTYzMixQKTtpZihpLmF0dGFjaFNoYWRlcihNLHcpLGkuYXR0YWNoU2hhZGVyKE0sayksdm9pZCAwIT09bi5pbmRleDBBdHRyaWJ1dGVOYW1lP2kuYmluZEF0dHJpYkxvY2F0aW9uKE0sMCxuLmluZGV4MEF0dHJpYnV0ZU5hbWUpOiEwPT09bi5tb3JwaFRhcmdldHMmJmkuYmluZEF0dHJpYkxvY2F0aW9uKE0sMCwicG9zaXRpb24iKSxpLmxpbmtQcm9ncmFtKE0pLHQuZGVidWcuY2hlY2tTaGFkZXJFcnJvcnMpe2NvbnN0IHQ9aS5nZXRQcm9ncmFtSW5mb0xvZyhNKS50cmltKCksZT1pLmdldFNoYWRlckluZm9Mb2codykudHJpbSgpLG49aS5nZXRTaGFkZXJJbmZvTG9nKGspLnRyaW0oKTtsZXQgbz0hMCxhPSEwO2lmKCExPT09aS5nZXRQcm9ncmFtUGFyYW1ldGVyKE0sMzU3MTQpKXtvPSExO2NvbnN0IGU9S3B0KGksdywidmVydGV4Iiksbj1LcHQoaSxrLCJmcmFnbWVudCIpO2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMUHJvZ3JhbTogc2hhZGVyIGVycm9yOiAiLGkuZ2V0RXJyb3IoKSwiMzU3MTUiLGkuZ2V0UHJvZ3JhbVBhcmFtZXRlcihNLDM1NzE1KSwiZ2wuZ2V0UHJvZ3JhbUluZm9Mb2ciLHQsZSxuKX1lbHNlIiIhPT10P2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xQcm9ncmFtOiBnbC5nZXRQcm9ncmFtSW5mb0xvZygpIix0KToiIiE9PWUmJiIiIT09bnx8KGE9ITEpO2EmJih0aGlzLmRpYWdub3N0aWNzPXtydW5uYWJsZTpvLHByb2dyYW1Mb2c6dCx2ZXJ0ZXhTaGFkZXI6e2xvZzplLHByZWZpeDp2fSxmcmFnbWVudFNoYWRlcjp7bG9nOm4scHJlZml4Onh9fSl9bGV0IFMsRDtyZXR1cm4gaS5kZWxldGVTaGFkZXIodyksaS5kZWxldGVTaGFkZXIoayksdGhpcy5nZXRVbmlmb3Jtcz1mdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT1TJiYoUz1uZXcgWXB0KGksTSkpLFN9LHRoaXMuZ2V0QXR0cmlidXRlcz1mdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT1EJiYoRD0oZnVuY3Rpb24gdChlLG4pe2NvbnN0IG89e30saT1lLmdldFByb2dyYW1QYXJhbWV0ZXIobiwzNTcyMSk7Zm9yKGxldCB0PTA7dDxpO3QrKyl7Y29uc3QgaT1lLmdldEFjdGl2ZUF0dHJpYihuLHQpLm5hbWU7b1tpXT1lLmdldEF0dHJpYkxvY2F0aW9uKG4saSl9cmV0dXJuIG99KShpLE0pKSxEfSx0aGlzLmRlc3Ryb3k9ZnVuY3Rpb24oKXtvLnJlbGVhc2VTdGF0ZXNPZlByb2dyYW0odGhpcyksaS5kZWxldGVQcm9ncmFtKE0pLHRoaXMucHJvZ3JhbT12b2lkIDB9LHRoaXMubmFtZT1uLnNoYWRlck5hbWUsdGhpcy5pZD1acHQrKyx0aGlzLmNhY2hlS2V5PWUsdGhpcy51c2VkVGltZXM9MSx0aGlzLnByb2dyYW09TSx0aGlzLnZlcnRleFNoYWRlcj13LHRoaXMuZnJhZ21lbnRTaGFkZXI9ayx0aGlzfWZ1bmN0aW9uIGZtdCh0LGUsbixvLGksYSxyKXtjb25zdCBzPVtdLGw9aS5pc1dlYkdMMixjPWkubG9nYXJpdGhtaWNEZXB0aEJ1ZmZlcixkPWkuZmxvYXRWZXJ0ZXhUZXh0dXJlcyxwPWkubWF4VmVydGV4VW5pZm9ybXMsbT1pLnZlcnRleFRleHR1cmVzO2xldCBmPWkucHJlY2lzaW9uO2NvbnN0IHU9e01lc2hEZXB0aE1hdGVyaWFsOiJkZXB0aCIsTWVzaERpc3RhbmNlTWF0ZXJpYWw6ImRpc3RhbmNlUkdCQSIsTWVzaE5vcm1hbE1hdGVyaWFsOiJub3JtYWwiLE1lc2hCYXNpY01hdGVyaWFsOiJiYXNpYyIsTWVzaExhbWJlcnRNYXRlcmlhbDoibGFtYmVydCIsTWVzaFBob25nTWF0ZXJpYWw6InBob25nIixNZXNoVG9vbk1hdGVyaWFsOiJ0b29uIixNZXNoU3RhbmRhcmRNYXRlcmlhbDoicGh5c2ljYWwiLE1lc2hQaHlzaWNhbE1hdGVyaWFsOiJwaHlzaWNhbCIsTWVzaE1hdGNhcE1hdGVyaWFsOiJtYXRjYXAiLExpbmVCYXNpY01hdGVyaWFsOiJiYXNpYyIsTGluZURhc2hlZE1hdGVyaWFsOiJkYXNoZWQiLFBvaW50c01hdGVyaWFsOiJwb2ludHMiLFNoYWRvd01hdGVyaWFsOiJzaGFkb3ciLFNwcml0ZU1hdGVyaWFsOiJzcHJpdGUifSxnPVsicHJlY2lzaW9uIiwiaXNXZWJHTDIiLCJzdXBwb3J0c1ZlcnRleFRleHR1cmVzIiwib3V0cHV0RW5jb2RpbmciLCJpbnN0YW5jaW5nIiwiaW5zdGFuY2luZ0NvbG9yIiwibWFwIiwibWFwRW5jb2RpbmciLCJtYXRjYXAiLCJtYXRjYXBFbmNvZGluZyIsImVudk1hcCIsImVudk1hcE1vZGUiLCJlbnZNYXBFbmNvZGluZyIsImVudk1hcEN1YmVVViIsImxpZ2h0TWFwIiwibGlnaHRNYXBFbmNvZGluZyIsImFvTWFwIiwiZW1pc3NpdmVNYXAiLCJlbWlzc2l2ZU1hcEVuY29kaW5nIiwiYnVtcE1hcCIsIm5vcm1hbE1hcCIsIm9iamVjdFNwYWNlTm9ybWFsTWFwIiwidGFuZ2VudFNwYWNlTm9ybWFsTWFwIiwiY2xlYXJjb2F0TWFwIiwiY2xlYXJjb2F0Um91Z2huZXNzTWFwIiwiY2xlYXJjb2F0Tm9ybWFsTWFwIiwiZGlzcGxhY2VtZW50TWFwIiwic3BlY3VsYXJNYXAiLCJzcGVjdWxhckludGVuc2l0eU1hcCIsInNwZWN1bGFyVGludE1hcCIsInNwZWN1bGFyVGludE1hcEVuY29kaW5nIiwicm91Z2huZXNzTWFwIiwibWV0YWxuZXNzTWFwIiwiZ3JhZGllbnRNYXAiLCJhbHBoYU1hcCIsImNvbWJpbmUiLCJ2ZXJ0ZXhDb2xvcnMiLCJ2ZXJ0ZXhBbHBoYXMiLCJ2ZXJ0ZXhUYW5nZW50cyIsInZlcnRleFV2cyIsInV2c1ZlcnRleE9ubHkiLCJmb2ciLCJ1c2VGb2ciLCJmb2dFeHAyIiwiZmxhdFNoYWRpbmciLCJzaXplQXR0ZW51YXRpb24iLCJsb2dhcml0aG1pY0RlcHRoQnVmZmVyIiwic2tpbm5pbmciLCJtYXhCb25lcyIsInVzZVZlcnRleFRleHR1cmUiLCJtb3JwaFRhcmdldHMiLCJtb3JwaE5vcm1hbHMiLCJwcmVtdWx0aXBsaWVkQWxwaGEiLCJudW1EaXJMaWdodHMiLCJudW1Qb2ludExpZ2h0cyIsIm51bVNwb3RMaWdodHMiLCJudW1IZW1pTGlnaHRzIiwibnVtUmVjdEFyZWFMaWdodHMiLCJudW1EaXJMaWdodFNoYWRvd3MiLCJudW1Qb2ludExpZ2h0U2hhZG93cyIsIm51bVNwb3RMaWdodFNoYWRvd3MiLCJzaGFkb3dNYXBFbmFibGVkIiwic2hhZG93TWFwVHlwZSIsInRvbmVNYXBwaW5nIiwicGh5c2ljYWxseUNvcnJlY3RMaWdodHMiLCJhbHBoYVRlc3QiLCJkb3VibGVTaWRlZCIsImZsaXBTaWRlZCIsIm51bUNsaXBwaW5nUGxhbmVzIiwibnVtQ2xpcEludGVyc2VjdGlvbiIsImRlcHRoUGFja2luZyIsImRpdGhlcmluZyIsInNoZWVuIiwidHJhbnNtaXNzaW9uIiwidHJhbnNtaXNzaW9uTWFwIiwidGhpY2tuZXNzTWFwIl07ZnVuY3Rpb24gaCh0KXtsZXQgZTtyZXR1cm4gdCYmdC5pc1RleHR1cmU/ZT10LmVuY29kaW5nOnQmJnQuaXNXZWJHTFJlbmRlclRhcmdldD8oY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFByb2dyYW1zLmdldFRleHR1cmVFbmNvZGluZ0Zyb21NYXA6IGRvbid0IHVzZSByZW5kZXIgdGFyZ2V0cyBhcyB0ZXh0dXJlcy4gVXNlIHRoZWlyIC50ZXh0dXJlIHByb3BlcnR5IGluc3RlYWQuIiksZT10LnRleHR1cmUuZW5jb2RpbmcpOmU9UXJ0LGV9cmV0dXJue2dldFBhcmFtZXRlcnM6ZnVuY3Rpb24gYihhLHMsZyx5LF8pe2NvbnN0IEM9eS5mb2csTT0oYS5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP246ZSkuZ2V0KGEuZW52TWFwfHwoYS5pc01lc2hTdGFuZGFyZE1hdGVyaWFsP3kuZW52aXJvbm1lbnQ6bnVsbCkpLHY9dVthLnR5cGVdLHg9Xy5pc1NraW5uZWRNZXNoPyhmdW5jdGlvbiBPKHQpe2NvbnN0IGU9dC5za2VsZXRvbi5ib25lcztpZihkKXJldHVybiAxMDI0O3tjb25zdCB0PU1hdGguZmxvb3IoKHAtMjApLzQpLG49TWF0aC5taW4odCxlLmxlbmd0aCk7cmV0dXJuIG48ZS5sZW5ndGg/KGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogU2tlbGV0b24gaGFzICIrZS5sZW5ndGgrIiBib25lcy4gVGhpcyBHUFUgc3VwcG9ydHMgIituKyIuIiksMCk6bn19KShfKTowO2xldCBQLHc7aWYobnVsbCE9PWEucHJlY2lzaW9uJiYoZj1pLmdldE1heFByZWNpc2lvbihhLnByZWNpc2lvbiksZiE9PWEucHJlY2lzaW9uJiZjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUHJvZ3JhbS5nZXRQYXJhbWV0ZXJzOiIsYS5wcmVjaXNpb24sIm5vdCBzdXBwb3J0ZWQsIHVzaW5nIixmLCJpbnN0ZWFkLiIpKSx2KXtjb25zdCB0PSRjdFt2XTtQPXQudmVydGV4U2hhZGVyLHc9dC5mcmFnbWVudFNoYWRlcn1lbHNlIFA9YS52ZXJ0ZXhTaGFkZXIsdz1hLmZyYWdtZW50U2hhZGVyO2NvbnN0IGs9dC5nZXRSZW5kZXJUYXJnZXQoKTtyZXR1cm57aXNXZWJHTDI6bCxzaGFkZXJJRDp2LHNoYWRlck5hbWU6YS50eXBlLHZlcnRleFNoYWRlcjpQLGZyYWdtZW50U2hhZGVyOncsZGVmaW5lczphLmRlZmluZXMsaXNSYXdTaGFkZXJNYXRlcmlhbDohMD09PWEuaXNSYXdTaGFkZXJNYXRlcmlhbCxnbHNsVmVyc2lvbjphLmdsc2xWZXJzaW9uLHByZWNpc2lvbjpmLGluc3RhbmNpbmc6ITA9PT1fLmlzSW5zdGFuY2VkTWVzaCxpbnN0YW5jaW5nQ29sb3I6ITA9PT1fLmlzSW5zdGFuY2VkTWVzaCYmbnVsbCE9PV8uaW5zdGFuY2VDb2xvcixzdXBwb3J0c1ZlcnRleFRleHR1cmVzOm0sb3V0cHV0RW5jb2Rpbmc6bnVsbCE9PWs/aChrLnRleHR1cmUpOnQub3V0cHV0RW5jb2RpbmcsbWFwOiEhYS5tYXAsbWFwRW5jb2Rpbmc6aChhLm1hcCksbWF0Y2FwOiEhYS5tYXRjYXAsbWF0Y2FwRW5jb2Rpbmc6aChhLm1hdGNhcCksZW52TWFwOiEhTSxlbnZNYXBNb2RlOk0mJk0ubWFwcGluZyxlbnZNYXBFbmNvZGluZzpoKE0pLGVudk1hcEN1YmVVVjohIU0mJihNLm1hcHBpbmc9PT1TcnR8fDMwNz09PU0ubWFwcGluZyksbGlnaHRNYXA6ISFhLmxpZ2h0TWFwLGxpZ2h0TWFwRW5jb2Rpbmc6aChhLmxpZ2h0TWFwKSxhb01hcDohIWEuYW9NYXAsZW1pc3NpdmVNYXA6ISFhLmVtaXNzaXZlTWFwLGVtaXNzaXZlTWFwRW5jb2Rpbmc6aChhLmVtaXNzaXZlTWFwKSxidW1wTWFwOiEhYS5idW1wTWFwLG5vcm1hbE1hcDohIWEubm9ybWFsTWFwLG9iamVjdFNwYWNlTm9ybWFsTWFwOjE9PT1hLm5vcm1hbE1hcFR5cGUsdGFuZ2VudFNwYWNlTm9ybWFsTWFwOjA9PT1hLm5vcm1hbE1hcFR5cGUsY2xlYXJjb2F0TWFwOiEhYS5jbGVhcmNvYXRNYXAsY2xlYXJjb2F0Um91Z2huZXNzTWFwOiEhYS5jbGVhcmNvYXRSb3VnaG5lc3NNYXAsY2xlYXJjb2F0Tm9ybWFsTWFwOiEhYS5jbGVhcmNvYXROb3JtYWxNYXAsZGlzcGxhY2VtZW50TWFwOiEhYS5kaXNwbGFjZW1lbnRNYXAscm91Z2huZXNzTWFwOiEhYS5yb3VnaG5lc3NNYXAsbWV0YWxuZXNzTWFwOiEhYS5tZXRhbG5lc3NNYXAsc3BlY3VsYXJNYXA6ISFhLnNwZWN1bGFyTWFwLHNwZWN1bGFySW50ZW5zaXR5TWFwOiEhYS5zcGVjdWxhckludGVuc2l0eU1hcCxzcGVjdWxhclRpbnRNYXA6ISFhLnNwZWN1bGFyVGludE1hcCxzcGVjdWxhclRpbnRNYXBFbmNvZGluZzpoKGEuc3BlY3VsYXJUaW50TWFwKSxhbHBoYU1hcDohIWEuYWxwaGFNYXAsZ3JhZGllbnRNYXA6ISFhLmdyYWRpZW50TWFwLHNoZWVuOiEhYS5zaGVlbix0cmFuc21pc3Npb246ISFhLnRyYW5zbWlzc2lvbix0cmFuc21pc3Npb25NYXA6ISFhLnRyYW5zbWlzc2lvbk1hcCx0aGlja25lc3NNYXA6ISFhLnRoaWNrbmVzc01hcCxjb21iaW5lOmEuY29tYmluZSx2ZXJ0ZXhUYW5nZW50czohIWEubm9ybWFsTWFwJiYhIV8uZ2VvbWV0cnkmJiEhXy5nZW9tZXRyeS5hdHRyaWJ1dGVzLnRhbmdlbnQsdmVydGV4Q29sb3JzOmEudmVydGV4Q29sb3JzLHZlcnRleEFscGhhczohMD09PWEudmVydGV4Q29sb3JzJiYhIV8uZ2VvbWV0cnkmJiEhXy5nZW9tZXRyeS5hdHRyaWJ1dGVzLmNvbG9yJiY0PT09Xy5nZW9tZXRyeS5hdHRyaWJ1dGVzLmNvbG9yLml0ZW1TaXplLHZlcnRleFV2czohIShhLm1hcHx8YS5idW1wTWFwfHxhLm5vcm1hbE1hcHx8YS5zcGVjdWxhck1hcHx8YS5hbHBoYU1hcHx8YS5lbWlzc2l2ZU1hcHx8YS5yb3VnaG5lc3NNYXB8fGEubWV0YWxuZXNzTWFwfHxhLmNsZWFyY29hdE1hcHx8YS5jbGVhcmNvYXRSb3VnaG5lc3NNYXB8fGEuY2xlYXJjb2F0Tm9ybWFsTWFwfHxhLmRpc3BsYWNlbWVudE1hcHx8YS50cmFuc21pc3Npb25NYXB8fGEudGhpY2tuZXNzTWFwfHxhLnNwZWN1bGFySW50ZW5zaXR5TWFwfHxhLnNwZWN1bGFyVGludE1hcCksdXZzVmVydGV4T25seTohKGEubWFwfHxhLmJ1bXBNYXB8fGEubm9ybWFsTWFwfHxhLnNwZWN1bGFyTWFwfHxhLmFscGhhTWFwfHxhLmVtaXNzaXZlTWFwfHxhLnJvdWdobmVzc01hcHx8YS5tZXRhbG5lc3NNYXB8fGEuY2xlYXJjb2F0Tm9ybWFsTWFwfHxhLnRyYW5zbWlzc2lvbnx8YS50cmFuc21pc3Npb25NYXB8fGEudGhpY2tuZXNzTWFwfHxhLnNwZWN1bGFySW50ZW5zaXR5TWFwfHxhLnNwZWN1bGFyVGludE1hcHx8IWEuZGlzcGxhY2VtZW50TWFwKSxmb2c6ISFDLHVzZUZvZzphLmZvZyxmb2dFeHAyOkMmJkMuaXNGb2dFeHAyLGZsYXRTaGFkaW5nOiEhYS5mbGF0U2hhZGluZyxzaXplQXR0ZW51YXRpb246YS5zaXplQXR0ZW51YXRpb24sbG9nYXJpdGhtaWNEZXB0aEJ1ZmZlcjpjLHNraW5uaW5nOiEwPT09Xy5pc1NraW5uZWRNZXNoJiZ4PjAsbWF4Qm9uZXM6eCx1c2VWZXJ0ZXhUZXh0dXJlOmQsbW9ycGhUYXJnZXRzOiEhXy5nZW9tZXRyeSYmISFfLmdlb21ldHJ5Lm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbixtb3JwaE5vcm1hbHM6ISFfLmdlb21ldHJ5JiYhIV8uZ2VvbWV0cnkubW9ycGhBdHRyaWJ1dGVzLm5vcm1hbCxudW1EaXJMaWdodHM6cy5kaXJlY3Rpb25hbC5sZW5ndGgsbnVtUG9pbnRMaWdodHM6cy5wb2ludC5sZW5ndGgsbnVtU3BvdExpZ2h0czpzLnNwb3QubGVuZ3RoLG51bVJlY3RBcmVhTGlnaHRzOnMucmVjdEFyZWEubGVuZ3RoLG51bUhlbWlMaWdodHM6cy5oZW1pLmxlbmd0aCxudW1EaXJMaWdodFNoYWRvd3M6cy5kaXJlY3Rpb25hbFNoYWRvd01hcC5sZW5ndGgsbnVtUG9pbnRMaWdodFNoYWRvd3M6cy5wb2ludFNoYWRvd01hcC5sZW5ndGgsbnVtU3BvdExpZ2h0U2hhZG93czpzLnNwb3RTaGFkb3dNYXAubGVuZ3RoLG51bUNsaXBwaW5nUGxhbmVzOnIubnVtUGxhbmVzLG51bUNsaXBJbnRlcnNlY3Rpb246ci5udW1JbnRlcnNlY3Rpb24sZGl0aGVyaW5nOmEuZGl0aGVyaW5nLHNoYWRvd01hcEVuYWJsZWQ6dC5zaGFkb3dNYXAuZW5hYmxlZCYmZy5sZW5ndGg+MCxzaGFkb3dNYXBUeXBlOnQuc2hhZG93TWFwLnR5cGUsdG9uZU1hcHBpbmc6YS50b25lTWFwcGVkP3QudG9uZU1hcHBpbmc6MCxwaHlzaWNhbGx5Q29ycmVjdExpZ2h0czp0LnBoeXNpY2FsbHlDb3JyZWN0TGlnaHRzLHByZW11bHRpcGxpZWRBbHBoYTphLnByZW11bHRpcGxpZWRBbHBoYSxhbHBoYVRlc3Q6YS5hbHBoYVRlc3QsZG91YmxlU2lkZWQ6Mj09PWEuc2lkZSxmbGlwU2lkZWQ6MT09PWEuc2lkZSxkZXB0aFBhY2tpbmc6dm9pZCAwIT09YS5kZXB0aFBhY2tpbmcmJmEuZGVwdGhQYWNraW5nLGluZGV4MEF0dHJpYnV0ZU5hbWU6YS5pbmRleDBBdHRyaWJ1dGVOYW1lLGV4dGVuc2lvbkRlcml2YXRpdmVzOmEuZXh0ZW5zaW9ucyYmYS5leHRlbnNpb25zLmRlcml2YXRpdmVzLGV4dGVuc2lvbkZyYWdEZXB0aDphLmV4dGVuc2lvbnMmJmEuZXh0ZW5zaW9ucy5mcmFnRGVwdGgsZXh0ZW5zaW9uRHJhd0J1ZmZlcnM6YS5leHRlbnNpb25zJiZhLmV4dGVuc2lvbnMuZHJhd0J1ZmZlcnMsZXh0ZW5zaW9uU2hhZGVyVGV4dHVyZUxPRDphLmV4dGVuc2lvbnMmJmEuZXh0ZW5zaW9ucy5zaGFkZXJUZXh0dXJlTE9ELHJlbmRlcmVyRXh0ZW5zaW9uRnJhZ0RlcHRoOmx8fG8uaGFzKCJFWFRfZnJhZ19kZXB0aCIpLHJlbmRlcmVyRXh0ZW5zaW9uRHJhd0J1ZmZlcnM6bHx8by5oYXMoIldFQkdMX2RyYXdfYnVmZmVycyIpLHJlbmRlcmVyRXh0ZW5zaW9uU2hhZGVyVGV4dHVyZUxvZDpsfHxvLmhhcygiRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpLGN1c3RvbVByb2dyYW1DYWNoZUtleTphLmN1c3RvbVByb2dyYW1DYWNoZUtleSgpfX0sZ2V0UHJvZ3JhbUNhY2hlS2V5OmZ1bmN0aW9uIHkoZSl7Y29uc3Qgbj1bXTtpZihlLnNoYWRlcklEP24ucHVzaChlLnNoYWRlcklEKToobi5wdXNoKGUuZnJhZ21lbnRTaGFkZXIpLG4ucHVzaChlLnZlcnRleFNoYWRlcikpLHZvaWQgMCE9PWUuZGVmaW5lcylmb3IoY29uc3QgdCBpbiBlLmRlZmluZXMpbi5wdXNoKHQpLG4ucHVzaChlLmRlZmluZXNbdF0pO2lmKCExPT09ZS5pc1Jhd1NoYWRlck1hdGVyaWFsKXtmb3IobGV0IHQ9MDt0PGcubGVuZ3RoO3QrKyluLnB1c2goZVtnW3RdXSk7bi5wdXNoKHQub3V0cHV0RW5jb2RpbmcpLG4ucHVzaCh0LmdhbW1hRmFjdG9yKX1yZXR1cm4gbi5wdXNoKGUuY3VzdG9tUHJvZ3JhbUNhY2hlS2V5KSxuLmpvaW4oKX0sZ2V0VW5pZm9ybXM6ZnVuY3Rpb24gXyh0KXtjb25zdCBlPXVbdC50eXBlXTtsZXQgbjtpZihlKXtuPVRjdC5jbG9uZSgkY3RbZV0udW5pZm9ybXMpfWVsc2Ugbj10LnVuaWZvcm1zO3JldHVybiBufSxhY3F1aXJlUHJvZ3JhbTpmdW5jdGlvbiBDKGUsbil7bGV0IG87Zm9yKGxldCB0PTAsZT1zLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPXNbdF07aWYoZS5jYWNoZUtleT09PW4pe289ZSwrK28udXNlZFRpbWVzO2JyZWFrfX1yZXR1cm4gdm9pZCAwPT09byYmKG89bmV3IG1tdCh0LG4sZSxhKSxzLnB1c2gobykpLG99LHJlbGVhc2VQcm9ncmFtOmZ1bmN0aW9uIE0odCl7aWYoMD09LS10LnVzZWRUaW1lcyl7Y29uc3QgZT1zLmluZGV4T2YodCk7c1tlXT1zW3MubGVuZ3RoLTFdLHMucG9wKCksdC5kZXN0cm95KCl9fSxwcm9ncmFtczpzfX1mdW5jdGlvbiB1bXQoKXtsZXQgdD1uZXcgV2Vha01hcDtyZXR1cm57Z2V0OmZ1bmN0aW9uIGUobil7bGV0IG89dC5nZXQobik7cmV0dXJuIHZvaWQgMD09PW8mJihvPXt9LHQuc2V0KG4sbykpLG99LHJlbW92ZTpmdW5jdGlvbiBuKGUpe3QuZGVsZXRlKGUpfSx1cGRhdGU6ZnVuY3Rpb24gbyhlLG4saSl7dC5nZXQoZSlbbl09aX0sZGlzcG9zZTpmdW5jdGlvbiBpKCl7dD1uZXcgV2Vha01hcH19fWZ1bmN0aW9uIGdtdCh0LGUpe3JldHVybiB0Lmdyb3VwT3JkZXIhPT1lLmdyb3VwT3JkZXI/dC5ncm91cE9yZGVyLWUuZ3JvdXBPcmRlcjp0LnJlbmRlck9yZGVyIT09ZS5yZW5kZXJPcmRlcj90LnJlbmRlck9yZGVyLWUucmVuZGVyT3JkZXI6dC5wcm9ncmFtIT09ZS5wcm9ncmFtP3QucHJvZ3JhbS5pZC1lLnByb2dyYW0uaWQ6dC5tYXRlcmlhbC5pZCE9PWUubWF0ZXJpYWwuaWQ/dC5tYXRlcmlhbC5pZC1lLm1hdGVyaWFsLmlkOnQueiE9PWUuej90LnotZS56OnQuaWQtZS5pZH1mdW5jdGlvbiBobXQodCxlKXtyZXR1cm4gdC5ncm91cE9yZGVyIT09ZS5ncm91cE9yZGVyP3QuZ3JvdXBPcmRlci1lLmdyb3VwT3JkZXI6dC5yZW5kZXJPcmRlciE9PWUucmVuZGVyT3JkZXI/dC5yZW5kZXJPcmRlci1lLnJlbmRlck9yZGVyOnQueiE9PWUuej9lLnotdC56OnQuaWQtZS5pZH1mdW5jdGlvbiBibXQodCl7Y29uc3QgZT1bXTtsZXQgbj0wO2NvbnN0IG89W10saT1bXSxhPVtdLHI9e2lkOi0xfTtmdW5jdGlvbiBzKG8saSxhLHMsbCxjKXtsZXQgZD1lW25dO2NvbnN0IHA9dC5nZXQoYSk7cmV0dXJuIHZvaWQgMD09PWQ/KGQ9e2lkOm8uaWQsb2JqZWN0Om8sZ2VvbWV0cnk6aSxtYXRlcmlhbDphLHByb2dyYW06cC5wcm9ncmFtfHxyLGdyb3VwT3JkZXI6cyxyZW5kZXJPcmRlcjpvLnJlbmRlck9yZGVyLHo6bCxncm91cDpjfSxlW25dPWQpOihkLmlkPW8uaWQsZC5vYmplY3Q9byxkLmdlb21ldHJ5PWksZC5tYXRlcmlhbD1hLGQucHJvZ3JhbT1wLnByb2dyYW18fHIsZC5ncm91cE9yZGVyPXMsZC5yZW5kZXJPcmRlcj1vLnJlbmRlck9yZGVyLGQuej1sLGQuZ3JvdXA9YyksbisrLGR9cmV0dXJue29wYXF1ZTpvLHRyYW5zbWlzc2l2ZTppLHRyYW5zcGFyZW50OmEsaW5pdDpmdW5jdGlvbiBsKCl7bj0wLG8ubGVuZ3RoPTAsaS5sZW5ndGg9MCxhLmxlbmd0aD0wfSxwdXNoOmZ1bmN0aW9uIGModCxlLG4scixsLGQpe2NvbnN0IHA9cyh0LGUsbixyLGwsZCk7bi50cmFuc21pc3Npb24+MD9pLnB1c2gocCk6ITA9PT1uLnRyYW5zcGFyZW50P2EucHVzaChwKTpvLnB1c2gocCl9LHVuc2hpZnQ6ZnVuY3Rpb24gZCh0LGUsbixyLGwsYyl7Y29uc3QgZD1zKHQsZSxuLHIsbCxjKTtuLnRyYW5zbWlzc2lvbj4wP2kudW5zaGlmdChkKTohMD09PW4udHJhbnNwYXJlbnQ/YS51bnNoaWZ0KGQpOm8udW5zaGlmdChkKX0sZmluaXNoOmZ1bmN0aW9uIHAoKXtmb3IobGV0IHQ9bixvPWUubGVuZ3RoO3Q8bzt0Kyspe2NvbnN0IG49ZVt0XTtpZihudWxsPT09bi5pZClicmVhaztuLmlkPW51bGwsbi5vYmplY3Q9bnVsbCxuLmdlb21ldHJ5PW51bGwsbi5tYXRlcmlhbD1udWxsLG4ucHJvZ3JhbT1udWxsLG4uZ3JvdXA9bnVsbH19LHNvcnQ6ZnVuY3Rpb24gbSh0LGUpe28ubGVuZ3RoPjEmJm8uc29ydCh0fHxnbXQpLGkubGVuZ3RoPjEmJmkuc29ydChlfHxobXQpLGEubGVuZ3RoPjEmJmEuc29ydChlfHxobXQpfX19ZnVuY3Rpb24geW10KHQpe2xldCBlPW5ldyBXZWFrTWFwO3JldHVybntnZXQ6ZnVuY3Rpb24gbihvLGkpe2xldCBhO3JldHVybiExPT09ZS5oYXMobyk/KGE9bmV3IGJtdCh0KSxlLnNldChvLFthXSkpOmk+PWUuZ2V0KG8pLmxlbmd0aD8oYT1uZXcgYm10KHQpLGUuZ2V0KG8pLnB1c2goYSkpOmE9ZS5nZXQobylbaV0sYX0sZGlzcG9zZTpmdW5jdGlvbiBvKCl7ZT1uZXcgV2Vha01hcH19fWZ1bmN0aW9uIF9tdCgpe2NvbnN0IHQ9e307cmV0dXJue2dldDpmdW5jdGlvbihlKXtpZih2b2lkIDAhPT10W2UuaWRdKXJldHVybiB0W2UuaWRdO2xldCBuO3N3aXRjaChlLnR5cGUpe2Nhc2UiRGlyZWN0aW9uYWxMaWdodCI6bj17ZGlyZWN0aW9uOm5ldyB3c3QsY29sb3I6bmV3IFpsdH07YnJlYWs7Y2FzZSJTcG90TGlnaHQiOm49e3Bvc2l0aW9uOm5ldyB3c3QsZGlyZWN0aW9uOm5ldyB3c3QsY29sb3I6bmV3IFpsdCxkaXN0YW5jZTowLGNvbmVDb3M6MCxwZW51bWJyYUNvczowLGRlY2F5OjB9O2JyZWFrO2Nhc2UiUG9pbnRMaWdodCI6bj17cG9zaXRpb246bmV3IHdzdCxjb2xvcjpuZXcgWmx0LGRpc3RhbmNlOjAsZGVjYXk6MH07YnJlYWs7Y2FzZSJIZW1pc3BoZXJlTGlnaHQiOm49e2RpcmVjdGlvbjpuZXcgd3N0LHNreUNvbG9yOm5ldyBabHQsZ3JvdW5kQ29sb3I6bmV3IFpsdH07YnJlYWs7Y2FzZSJSZWN0QXJlYUxpZ2h0IjpuPXtjb2xvcjpuZXcgWmx0LHBvc2l0aW9uOm5ldyB3c3QsaGFsZldpZHRoOm5ldyB3c3QsaGFsZkhlaWdodDpuZXcgd3N0fX1yZXR1cm4gdFtlLmlkXT1uLG59fX1sZXQgQ210PTA7ZnVuY3Rpb24gTW10KHQsZSl7cmV0dXJuKGUuY2FzdFNoYWRvdz8xOjApLSh0LmNhc3RTaGFkb3c/MTowKX1mdW5jdGlvbiB2bXQodCxlKXtjb25zdCBuPW5ldyBfbXQsbz0oZnVuY3Rpb24gaSgpe2NvbnN0IHQ9e307cmV0dXJue2dldDpmdW5jdGlvbihlKXtpZih2b2lkIDAhPT10W2UuaWRdKXJldHVybiB0W2UuaWRdO2xldCBuO3N3aXRjaChlLnR5cGUpe2Nhc2UiRGlyZWN0aW9uYWxMaWdodCI6Y2FzZSJTcG90TGlnaHQiOm49e3NoYWRvd0JpYXM6MCxzaGFkb3dOb3JtYWxCaWFzOjAsc2hhZG93UmFkaXVzOjEsc2hhZG93TWFwU2l6ZTpuZXcgZ3N0fTticmVhaztjYXNlIlBvaW50TGlnaHQiOm49e3NoYWRvd0JpYXM6MCxzaGFkb3dOb3JtYWxCaWFzOjAsc2hhZG93UmFkaXVzOjEsc2hhZG93TWFwU2l6ZTpuZXcgZ3N0LHNoYWRvd0NhbWVyYU5lYXI6MSxzaGFkb3dDYW1lcmFGYXI6MWUzfX1yZXR1cm4gdFtlLmlkXT1uLG59fX0pKCksYT17dmVyc2lvbjowLGhhc2g6e2RpcmVjdGlvbmFsTGVuZ3RoOi0xLHBvaW50TGVuZ3RoOi0xLHNwb3RMZW5ndGg6LTEscmVjdEFyZWFMZW5ndGg6LTEsaGVtaUxlbmd0aDotMSxudW1EaXJlY3Rpb25hbFNoYWRvd3M6LTEsbnVtUG9pbnRTaGFkb3dzOi0xLG51bVNwb3RTaGFkb3dzOi0xfSxhbWJpZW50OlswLDAsMF0scHJvYmU6W10sZGlyZWN0aW9uYWw6W10sZGlyZWN0aW9uYWxTaGFkb3c6W10sZGlyZWN0aW9uYWxTaGFkb3dNYXA6W10sZGlyZWN0aW9uYWxTaGFkb3dNYXRyaXg6W10sc3BvdDpbXSxzcG90U2hhZG93OltdLHNwb3RTaGFkb3dNYXA6W10sc3BvdFNoYWRvd01hdHJpeDpbXSxyZWN0QXJlYTpbXSxyZWN0QXJlYUxUQzE6bnVsbCxyZWN0QXJlYUxUQzI6bnVsbCxwb2ludDpbXSxwb2ludFNoYWRvdzpbXSxwb2ludFNoYWRvd01hcDpbXSxwb2ludFNoYWRvd01hdHJpeDpbXSxoZW1pOltdfTtmb3IobGV0IHQ9MDt0PDk7dCsrKWEucHJvYmUucHVzaChuZXcgd3N0KTtjb25zdCByPW5ldyB3c3Qscz1uZXcgb2x0LGw9bmV3IG9sdDtyZXR1cm57c2V0dXA6ZnVuY3Rpb24gYyhpKXtsZXQgcj0wLHM9MCxsPTA7Zm9yKGxldCB0PTA7dDw5O3QrKylhLnByb2JlW3RdLnNldCgwLDAsMCk7bGV0IGM9MCxkPTAscD0wLG09MCxmPTAsdT0wLGc9MCxoPTA7aS5zb3J0KE1tdCk7Zm9yKGxldCB0PTAsZT1pLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPWlbdF0sYj1lLmNvbG9yLHk9ZS5pbnRlbnNpdHksXz1lLmRpc3RhbmNlLEM9ZS5zaGFkb3cmJmUuc2hhZG93Lm1hcD9lLnNoYWRvdy5tYXAudGV4dHVyZTpudWxsO2lmKGUuaXNBbWJpZW50TGlnaHQpcis9Yi5yKnkscys9Yi5nKnksbCs9Yi5iKnk7ZWxzZSBpZihlLmlzTGlnaHRQcm9iZSlmb3IobGV0IHQ9MDt0PDk7dCsrKWEucHJvYmVbdF0uYWRkU2NhbGVkVmVjdG9yKGUuc2guY29lZmZpY2llbnRzW3RdLHkpO2Vsc2UgaWYoZS5pc0RpcmVjdGlvbmFsTGlnaHQpe2NvbnN0IHQ9bi5nZXQoZSk7aWYodC5jb2xvci5jb3B5KGUuY29sb3IpLm11bHRpcGx5U2NhbGFyKGUuaW50ZW5zaXR5KSxlLmNhc3RTaGFkb3cpe2NvbnN0IHQ9ZS5zaGFkb3csbj1vLmdldChlKTtuLnNoYWRvd0JpYXM9dC5iaWFzLG4uc2hhZG93Tm9ybWFsQmlhcz10Lm5vcm1hbEJpYXMsbi5zaGFkb3dSYWRpdXM9dC5yYWRpdXMsbi5zaGFkb3dNYXBTaXplPXQubWFwU2l6ZSxhLmRpcmVjdGlvbmFsU2hhZG93W2NdPW4sYS5kaXJlY3Rpb25hbFNoYWRvd01hcFtjXT1DLGEuZGlyZWN0aW9uYWxTaGFkb3dNYXRyaXhbY109ZS5zaGFkb3cubWF0cml4LHUrK31hLmRpcmVjdGlvbmFsW2NdPXQsYysrfWVsc2UgaWYoZS5pc1Nwb3RMaWdodCl7Y29uc3QgdD1uLmdldChlKTtpZih0LnBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbihlLm1hdHJpeFdvcmxkKSx0LmNvbG9yLmNvcHkoYikubXVsdGlwbHlTY2FsYXIoeSksdC5kaXN0YW5jZT1fLHQuY29uZUNvcz1NYXRoLmNvcyhlLmFuZ2xlKSx0LnBlbnVtYnJhQ29zPU1hdGguY29zKGUuYW5nbGUqKDEtZS5wZW51bWJyYSkpLHQuZGVjYXk9ZS5kZWNheSxlLmNhc3RTaGFkb3cpe2NvbnN0IHQ9ZS5zaGFkb3csbj1vLmdldChlKTtuLnNoYWRvd0JpYXM9dC5iaWFzLG4uc2hhZG93Tm9ybWFsQmlhcz10Lm5vcm1hbEJpYXMsbi5zaGFkb3dSYWRpdXM9dC5yYWRpdXMsbi5zaGFkb3dNYXBTaXplPXQubWFwU2l6ZSxhLnNwb3RTaGFkb3dbcF09bixhLnNwb3RTaGFkb3dNYXBbcF09QyxhLnNwb3RTaGFkb3dNYXRyaXhbcF09ZS5zaGFkb3cubWF0cml4LGgrK31hLnNwb3RbcF09dCxwKyt9ZWxzZSBpZihlLmlzUmVjdEFyZWFMaWdodCl7Y29uc3QgdD1uLmdldChlKTt0LmNvbG9yLmNvcHkoYikubXVsdGlwbHlTY2FsYXIoeSksdC5oYWxmV2lkdGguc2V0KC41KmUud2lkdGgsMCwwKSx0LmhhbGZIZWlnaHQuc2V0KDAsLjUqZS5oZWlnaHQsMCksYS5yZWN0QXJlYVttXT10LG0rK31lbHNlIGlmKGUuaXNQb2ludExpZ2h0KXtjb25zdCB0PW4uZ2V0KGUpO2lmKHQuY29sb3IuY29weShlLmNvbG9yKS5tdWx0aXBseVNjYWxhcihlLmludGVuc2l0eSksdC5kaXN0YW5jZT1lLmRpc3RhbmNlLHQuZGVjYXk9ZS5kZWNheSxlLmNhc3RTaGFkb3cpe2NvbnN0IHQ9ZS5zaGFkb3csbj1vLmdldChlKTtuLnNoYWRvd0JpYXM9dC5iaWFzLG4uc2hhZG93Tm9ybWFsQmlhcz10Lm5vcm1hbEJpYXMsbi5zaGFkb3dSYWRpdXM9dC5yYWRpdXMsbi5zaGFkb3dNYXBTaXplPXQubWFwU2l6ZSxuLnNoYWRvd0NhbWVyYU5lYXI9dC5jYW1lcmEubmVhcixuLnNoYWRvd0NhbWVyYUZhcj10LmNhbWVyYS5mYXIsYS5wb2ludFNoYWRvd1tkXT1uLGEucG9pbnRTaGFkb3dNYXBbZF09QyxhLnBvaW50U2hhZG93TWF0cml4W2RdPWUuc2hhZG93Lm1hdHJpeCxnKyt9YS5wb2ludFtkXT10LGQrK31lbHNlIGlmKGUuaXNIZW1pc3BoZXJlTGlnaHQpe2NvbnN0IHQ9bi5nZXQoZSk7dC5za3lDb2xvci5jb3B5KGUuY29sb3IpLm11bHRpcGx5U2NhbGFyKHkpLHQuZ3JvdW5kQ29sb3IuY29weShlLmdyb3VuZENvbG9yKS5tdWx0aXBseVNjYWxhcih5KSxhLmhlbWlbZl09dCxmKyt9fW0+MCYmKGUuaXNXZWJHTDJ8fCEwPT09dC5oYXMoIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpPyhhLnJlY3RBcmVhTFRDMT1RY3QuTFRDX0ZMT0FUXzEsYS5yZWN0QXJlYUxUQzI9UWN0LkxUQ19GTE9BVF8yKTohMD09PXQuaGFzKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpPyhhLnJlY3RBcmVhTFRDMT1RY3QuTFRDX0hBTEZfMSxhLnJlY3RBcmVhTFRDMj1RY3QuTFRDX0hBTEZfMik6Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVW5hYmxlIHRvIHVzZSBSZWN0QXJlYUxpZ2h0LiBNaXNzaW5nIFdlYkdMIGV4dGVuc2lvbnMuIikpLGEuYW1iaWVudFswXT1yLGEuYW1iaWVudFsxXT1zLGEuYW1iaWVudFsyXT1sO2NvbnN0IGI9YS5oYXNoO2IuZGlyZWN0aW9uYWxMZW5ndGg9PT1jJiZiLnBvaW50TGVuZ3RoPT09ZCYmYi5zcG90TGVuZ3RoPT09cCYmYi5yZWN0QXJlYUxlbmd0aD09PW0mJmIuaGVtaUxlbmd0aD09PWYmJmIubnVtRGlyZWN0aW9uYWxTaGFkb3dzPT09dSYmYi5udW1Qb2ludFNoYWRvd3M9PT1nJiZiLm51bVNwb3RTaGFkb3dzPT09aHx8KGEuZGlyZWN0aW9uYWwubGVuZ3RoPWMsYS5zcG90Lmxlbmd0aD1wLGEucmVjdEFyZWEubGVuZ3RoPW0sYS5wb2ludC5sZW5ndGg9ZCxhLmhlbWkubGVuZ3RoPWYsYS5kaXJlY3Rpb25hbFNoYWRvdy5sZW5ndGg9dSxhLmRpcmVjdGlvbmFsU2hhZG93TWFwLmxlbmd0aD11LGEucG9pbnRTaGFkb3cubGVuZ3RoPWcsYS5wb2ludFNoYWRvd01hcC5sZW5ndGg9ZyxhLnNwb3RTaGFkb3cubGVuZ3RoPWgsYS5zcG90U2hhZG93TWFwLmxlbmd0aD1oLGEuZGlyZWN0aW9uYWxTaGFkb3dNYXRyaXgubGVuZ3RoPXUsYS5wb2ludFNoYWRvd01hdHJpeC5sZW5ndGg9ZyxhLnNwb3RTaGFkb3dNYXRyaXgubGVuZ3RoPWgsYi5kaXJlY3Rpb25hbExlbmd0aD1jLGIucG9pbnRMZW5ndGg9ZCxiLnNwb3RMZW5ndGg9cCxiLnJlY3RBcmVhTGVuZ3RoPW0sYi5oZW1pTGVuZ3RoPWYsYi5udW1EaXJlY3Rpb25hbFNoYWRvd3M9dSxiLm51bVBvaW50U2hhZG93cz1nLGIubnVtU3BvdFNoYWRvd3M9aCxhLnZlcnNpb249Q210KyspfSxzZXR1cFZpZXc6ZnVuY3Rpb24gZCh0LGUpe2xldCBuPTAsbz0wLGk9MCxjPTAsZD0wO2NvbnN0IHA9ZS5tYXRyaXhXb3JsZEludmVyc2U7Zm9yKGxldCBlPTAsbT10Lmxlbmd0aDtlPG07ZSsrKXtjb25zdCBtPXRbZV07aWYobS5pc0RpcmVjdGlvbmFsTGlnaHQpe2NvbnN0IHQ9YS5kaXJlY3Rpb25hbFtuXTt0LmRpcmVjdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24obS5tYXRyaXhXb3JsZCksci5zZXRGcm9tTWF0cml4UG9zaXRpb24obS50YXJnZXQubWF0cml4V29ybGQpLHQuZGlyZWN0aW9uLnN1YihyKSx0LmRpcmVjdGlvbi50cmFuc2Zvcm1EaXJlY3Rpb24ocCksbisrfWVsc2UgaWYobS5pc1Nwb3RMaWdodCl7Y29uc3QgdD1hLnNwb3RbaV07dC5wb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24obS5tYXRyaXhXb3JsZCksdC5wb3NpdGlvbi5hcHBseU1hdHJpeDQocCksdC5kaXJlY3Rpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKG0ubWF0cml4V29ybGQpLHIuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKG0udGFyZ2V0Lm1hdHJpeFdvcmxkKSx0LmRpcmVjdGlvbi5zdWIociksdC5kaXJlY3Rpb24udHJhbnNmb3JtRGlyZWN0aW9uKHApLGkrK31lbHNlIGlmKG0uaXNSZWN0QXJlYUxpZ2h0KXtjb25zdCB0PWEucmVjdEFyZWFbY107dC5wb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24obS5tYXRyaXhXb3JsZCksdC5wb3NpdGlvbi5hcHBseU1hdHJpeDQocCksbC5pZGVudGl0eSgpLHMuY29weShtLm1hdHJpeFdvcmxkKSxzLnByZW11bHRpcGx5KHApLGwuZXh0cmFjdFJvdGF0aW9uKHMpLHQuaGFsZldpZHRoLnNldCguNSptLndpZHRoLDAsMCksdC5oYWxmSGVpZ2h0LnNldCgwLC41Km0uaGVpZ2h0LDApLHQuaGFsZldpZHRoLmFwcGx5TWF0cml4NChsKSx0LmhhbGZIZWlnaHQuYXBwbHlNYXRyaXg0KGwpLGMrK31lbHNlIGlmKG0uaXNQb2ludExpZ2h0KXtjb25zdCB0PWEucG9pbnRbb107dC5wb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24obS5tYXRyaXhXb3JsZCksdC5wb3NpdGlvbi5hcHBseU1hdHJpeDQocCksbysrfWVsc2UgaWYobS5pc0hlbWlzcGhlcmVMaWdodCl7Y29uc3QgdD1hLmhlbWlbZF07dC5kaXJlY3Rpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKG0ubWF0cml4V29ybGQpLHQuZGlyZWN0aW9uLnRyYW5zZm9ybURpcmVjdGlvbihwKSx0LmRpcmVjdGlvbi5ub3JtYWxpemUoKSxkKyt9fX0sc3RhdGU6YX19ZnVuY3Rpb24geG10KHQsZSl7Y29uc3Qgbj1uZXcgdm10KHQsZSksbz1bXSxpPVtdO3JldHVybntpbml0OmZ1bmN0aW9uIGEoKXtvLmxlbmd0aD0wLGkubGVuZ3RoPTB9LHN0YXRlOntsaWdodHNBcnJheTpvLHNoYWRvd3NBcnJheTppLGxpZ2h0czpufSxzZXR1cExpZ2h0czpmdW5jdGlvbiByKCl7bi5zZXR1cChvKX0sc2V0dXBMaWdodHNWaWV3OmZ1bmN0aW9uIHModCl7bi5zZXR1cFZpZXcobyx0KX0scHVzaExpZ2h0OmZ1bmN0aW9uIGwodCl7by5wdXNoKHQpfSxwdXNoU2hhZG93OmZ1bmN0aW9uIGModCl7aS5wdXNoKHQpfX19ZnVuY3Rpb24gT210KHQsZSl7bGV0IG49bmV3IFdlYWtNYXA7cmV0dXJue2dldDpmdW5jdGlvbiBvKGksYT0wKXtsZXQgcjtyZXR1cm4hMT09PW4uaGFzKGkpPyhyPW5ldyB4bXQodCxlKSxuLnNldChpLFtyXSkpOmE+PW4uZ2V0KGkpLmxlbmd0aD8ocj1uZXcgeG10KHQsZSksbi5nZXQoaSkucHVzaChyKSk6cj1uLmdldChpKVthXSxyfSxkaXNwb3NlOmZ1bmN0aW9uIGkoKXtuPW5ldyBXZWFrTWFwfX19Y2xhc3MgUG10IGV4dGVuZHMgVmx0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJNZXNoRGVwdGhNYXRlcmlhbCIsdGhpcy5kZXB0aFBhY2tpbmc9MzIwMCx0aGlzLm1hcD1udWxsLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudE1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9MSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9MCx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMuZm9nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5kZXB0aFBhY2tpbmc9dC5kZXB0aFBhY2tpbmcsdGhpcy5tYXA9dC5tYXAsdGhpcy5hbHBoYU1hcD10LmFscGhhTWFwLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXMud2lyZWZyYW1lPXQud2lyZWZyYW1lLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPXQud2lyZWZyYW1lTGluZXdpZHRoLHRoaXN9fVBtdC5wcm90b3R5cGUuaXNNZXNoRGVwdGhNYXRlcmlhbD0hMDtjbGFzcyB3bXQgZXh0ZW5kcyBWbHR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9Ik1lc2hEaXN0YW5jZU1hdGVyaWFsIix0aGlzLnJlZmVyZW5jZVBvc2l0aW9uPW5ldyB3c3QsdGhpcy5uZWFyRGlzdGFuY2U9MSx0aGlzLmZhckRpc3RhbmNlPTFlMyx0aGlzLm1hcD1udWxsLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLmRpc3BsYWNlbWVudE1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9MSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9MCx0aGlzLmZvZz0hMSx0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMucmVmZXJlbmNlUG9zaXRpb24uY29weSh0LnJlZmVyZW5jZVBvc2l0aW9uKSx0aGlzLm5lYXJEaXN0YW5jZT10Lm5lYXJEaXN0YW5jZSx0aGlzLmZhckRpc3RhbmNlPXQuZmFyRGlzdGFuY2UsdGhpcy5tYXA9dC5tYXAsdGhpcy5hbHBoYU1hcD10LmFscGhhTWFwLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXN9fXdtdC5wcm90b3R5cGUuaXNNZXNoRGlzdGFuY2VNYXRlcmlhbD0hMDtmdW5jdGlvbiBrbXQodCxlLG4pe2xldCBvPW5ldyBxY3Q7Y29uc3QgaT1uZXcgZ3N0LGE9bmV3IGdzdCxyPW5ldyB2c3Qscz1uZXcgUG10KHtkZXB0aFBhY2tpbmc6MzIwMX0pLGw9bmV3IHdtdCxjPXt9LGQ9bi5tYXhUZXh0dXJlU2l6ZSxwPXswOjEsMTowLDI6Mn0sbT1uZXcgTmN0KHtkZWZpbmVzOntTQU1QTEVfUkFURToyLzgsSEFMRl9TQU1QTEVfUkFURToxLzh9LHVuaWZvcm1zOntzaGFkb3dfcGFzczp7dmFsdWU6bnVsbH0scmVzb2x1dGlvbjp7dmFsdWU6bmV3IGdzdH0scmFkaXVzOnt2YWx1ZTo0fX0sdmVydGV4U2hhZGVyOiJ2b2lkIG1haW4oKSB7XG5cdGdsX1Bvc2l0aW9uID0gdmVjNCggcG9zaXRpb24sIDEuMCApO1xufSIsZnJhZ21lbnRTaGFkZXI6InVuaWZvcm0gc2FtcGxlcjJEIHNoYWRvd19wYXNzO1xudW5pZm9ybSB2ZWMyIHJlc29sdXRpb247XG51bmlmb3JtIGZsb2F0IHJhZGl1cztcbiNpbmNsdWRlIDxwYWNraW5nPlxudm9pZCBtYWluKCkge1xuXHRmbG9hdCBtZWFuID0gMC4wO1xuXHRmbG9hdCBzcXVhcmVkX21lYW4gPSAwLjA7XG5cdGZsb2F0IGRlcHRoID0gdW5wYWNrUkdCQVRvRGVwdGgoIHRleHR1cmUyRCggc2hhZG93X3Bhc3MsICggZ2xfRnJhZ0Nvb3JkLnh5ICkgLyByZXNvbHV0aW9uICkgKTtcblx0Zm9yICggZmxvYXQgaSA9IC0xLjA7IGkgPCAxLjAgOyBpICs9IFNBTVBMRV9SQVRFKSB7XG5cdFx0I2lmZGVmIEhPUklaT05UQUxfUEFTU1xuXHRcdFx0dmVjMiBkaXN0cmlidXRpb24gPSB1bnBhY2tSR0JBVG8ySGFsZiggdGV4dHVyZTJEKCBzaGFkb3dfcGFzcywgKCBnbF9GcmFnQ29vcmQueHkgKyB2ZWMyKCBpLCAwLjAgKSAqIHJhZGl1cyApIC8gcmVzb2x1dGlvbiApICk7XG5cdFx0XHRtZWFuICs9IGRpc3RyaWJ1dGlvbi54O1xuXHRcdFx0c3F1YXJlZF9tZWFuICs9IGRpc3RyaWJ1dGlvbi55ICogZGlzdHJpYnV0aW9uLnkgKyBkaXN0cmlidXRpb24ueCAqIGRpc3RyaWJ1dGlvbi54O1xuXHRcdCNlbHNlXG5cdFx0XHRmbG9hdCBkZXB0aCA9IHVucGFja1JHQkFUb0RlcHRoKCB0ZXh0dXJlMkQoIHNoYWRvd19wYXNzLCAoIGdsX0ZyYWdDb29yZC54eSArIHZlYzIoIDAuMCwgaSApICogcmFkaXVzICkgLyByZXNvbHV0aW9uICkgKTtcblx0XHRcdG1lYW4gKz0gZGVwdGg7XG5cdFx0XHRzcXVhcmVkX21lYW4gKz0gZGVwdGggKiBkZXB0aDtcblx0XHQjZW5kaWZcblx0fVxuXHRtZWFuID0gbWVhbiAqIEhBTEZfU0FNUExFX1JBVEU7XG5cdHNxdWFyZWRfbWVhbiA9IHNxdWFyZWRfbWVhbiAqIEhBTEZfU0FNUExFX1JBVEU7XG5cdGZsb2F0IHN0ZF9kZXYgPSBzcXJ0KCBzcXVhcmVkX21lYW4gLSBtZWFuICogbWVhbiApO1xuXHRnbF9GcmFnQ29sb3IgPSBwYWNrMkhhbGZUb1JHQkEoIHZlYzIoIG1lYW4sIHN0ZF9kZXYgKSApO1xufSJ9KSxmPW0uY2xvbmUoKTtmLmRlZmluZXMuSE9SSVpPTlRBTF9QQVNTPTE7Y29uc3QgdT1uZXcgZGN0O3Uuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IFFsdChuZXcgRmxvYXQzMkFycmF5KFstMSwtMSwuNSwzLC0xLC41LC0xLDMsLjVdKSwzKSk7Y29uc3QgZz1uZXcgU2N0KHUsbSksaD10aGlzO2Z1bmN0aW9uIGIobixvKXtjb25zdCBpPWUudXBkYXRlKGcpO20udW5pZm9ybXMuc2hhZG93X3Bhc3MudmFsdWU9bi5tYXAudGV4dHVyZSxtLnVuaWZvcm1zLnJlc29sdXRpb24udmFsdWU9bi5tYXBTaXplLG0udW5pZm9ybXMucmFkaXVzLnZhbHVlPW4ucmFkaXVzLHQuc2V0UmVuZGVyVGFyZ2V0KG4ubWFwUGFzcyksdC5jbGVhcigpLHQucmVuZGVyQnVmZmVyRGlyZWN0KG8sbnVsbCxpLG0sZyxudWxsKSxmLnVuaWZvcm1zLnNoYWRvd19wYXNzLnZhbHVlPW4ubWFwUGFzcy50ZXh0dXJlLGYudW5pZm9ybXMucmVzb2x1dGlvbi52YWx1ZT1uLm1hcFNpemUsZi51bmlmb3Jtcy5yYWRpdXMudmFsdWU9bi5yYWRpdXMsdC5zZXRSZW5kZXJUYXJnZXQobi5tYXApLHQuY2xlYXIoKSx0LnJlbmRlckJ1ZmZlckRpcmVjdChvLG51bGwsaSxmLGcsbnVsbCl9ZnVuY3Rpb24geShlLG4sbyxpLGEscixkKXtsZXQgbT1udWxsO2NvbnN0IGY9ITA9PT1pLmlzUG9pbnRMaWdodD9lLmN1c3RvbURpc3RhbmNlTWF0ZXJpYWw6ZS5jdXN0b21EZXB0aE1hdGVyaWFsO2lmKG09dm9pZCAwIT09Zj9mOiEwPT09aS5pc1BvaW50TGlnaHQ/bDpzLHQubG9jYWxDbGlwcGluZ0VuYWJsZWQmJiEwPT09by5jbGlwU2hhZG93cyYmMCE9PW8uY2xpcHBpbmdQbGFuZXMubGVuZ3RoKXtjb25zdCB0PW0udXVpZCxlPW8udXVpZDtsZXQgbj1jW3RdO3ZvaWQgMD09PW4mJihuPXt9LGNbdF09bik7bGV0IGk9bltlXTt2b2lkIDA9PT1pJiYoaT1tLmNsb25lKCksbltlXT1pKSxtPWl9cmV0dXJuIG0udmlzaWJsZT1vLnZpc2libGUsbS53aXJlZnJhbWU9by53aXJlZnJhbWUsbS5zaWRlPTM9PT1kP251bGwhPT1vLnNoYWRvd1NpZGU/by5zaGFkb3dTaWRlOm8uc2lkZTpudWxsIT09by5zaGFkb3dTaWRlP28uc2hhZG93U2lkZTpwW28uc2lkZV0sbS5jbGlwU2hhZG93cz1vLmNsaXBTaGFkb3dzLG0uY2xpcHBpbmdQbGFuZXM9by5jbGlwcGluZ1BsYW5lcyxtLmNsaXBJbnRlcnNlY3Rpb249by5jbGlwSW50ZXJzZWN0aW9uLG0ud2lyZWZyYW1lTGluZXdpZHRoPW8ud2lyZWZyYW1lTGluZXdpZHRoLG0ubGluZXdpZHRoPW8ubGluZXdpZHRoLCEwPT09aS5pc1BvaW50TGlnaHQmJiEwPT09bS5pc01lc2hEaXN0YW5jZU1hdGVyaWFsJiYobS5yZWZlcmVuY2VQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oaS5tYXRyaXhXb3JsZCksbS5uZWFyRGlzdGFuY2U9YSxtLmZhckRpc3RhbmNlPXIpLG19ZnVuY3Rpb24gXyhuLGksYSxyLHMpe2lmKCExPT09bi52aXNpYmxlKXJldHVybjtpZihuLmxheWVycy50ZXN0KGkubGF5ZXJzKSYmKG4uaXNNZXNofHxuLmlzTGluZXx8bi5pc1BvaW50cykmJihuLmNhc3RTaGFkb3d8fG4ucmVjZWl2ZVNoYWRvdyYmMz09PXMpJiYoIW4uZnJ1c3R1bUN1bGxlZHx8by5pbnRlcnNlY3RzT2JqZWN0KG4pKSl7bi5tb2RlbFZpZXdNYXRyaXgubXVsdGlwbHlNYXRyaWNlcyhhLm1hdHJpeFdvcmxkSW52ZXJzZSxuLm1hdHJpeFdvcmxkKTtjb25zdCBvPWUudXBkYXRlKG4pLGk9bi5tYXRlcmlhbDtpZihBcnJheS5pc0FycmF5KGkpKXtjb25zdCBlPW8uZ3JvdXBzO2ZvcihsZXQgbD0wLGM9ZS5sZW5ndGg7bDxjO2wrKyl7Y29uc3QgYz1lW2xdLGQ9aVtjLm1hdGVyaWFsSW5kZXhdO2lmKGQmJmQudmlzaWJsZSl7Y29uc3QgZT15KG4sMCxkLHIsYS5uZWFyLGEuZmFyLHMpO3QucmVuZGVyQnVmZmVyRGlyZWN0KGEsbnVsbCxvLGUsbixjKX19fWVsc2UgaWYoaS52aXNpYmxlKXtjb25zdCBlPXkobiwwLGkscixhLm5lYXIsYS5mYXIscyk7dC5yZW5kZXJCdWZmZXJEaXJlY3QoYSxudWxsLG8sZSxuLG51bGwpfX1jb25zdCBsPW4uY2hpbGRyZW47Zm9yKGxldCB0PTAsZT1sLmxlbmd0aDt0PGU7dCsrKV8obFt0XSxpLGEscixzKX10aGlzLmVuYWJsZWQ9ITEsdGhpcy5hdXRvVXBkYXRlPSEwLHRoaXMubmVlZHNVcGRhdGU9ITEsdGhpcy50eXBlPTEsdGhpcy5yZW5kZXI9ZnVuY3Rpb24oZSxuLHMpe2lmKCExPT09aC5lbmFibGVkKXJldHVybjtpZighMT09PWguYXV0b1VwZGF0ZSYmITE9PT1oLm5lZWRzVXBkYXRlKXJldHVybjtpZigwPT09ZS5sZW5ndGgpcmV0dXJuO2NvbnN0IGw9dC5nZXRSZW5kZXJUYXJnZXQoKSxjPXQuZ2V0QWN0aXZlQ3ViZUZhY2UoKSxwPXQuZ2V0QWN0aXZlTWlwbWFwTGV2ZWwoKSxtPXQuc3RhdGU7bS5zZXRCbGVuZGluZygwKSxtLmJ1ZmZlcnMuY29sb3Iuc2V0Q2xlYXIoMSwxLDEsMSksbS5idWZmZXJzLmRlcHRoLnNldFRlc3QoITApLG0uc2V0U2Npc3NvclRlc3QoITEpO2ZvcihsZXQgbD0wLGM9ZS5sZW5ndGg7bDxjO2wrKyl7Y29uc3QgYz1lW2xdLHA9Yy5zaGFkb3c7aWYodm9pZCAwPT09cCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFNoYWRvd01hcDoiLGMsImhhcyBubyBzaGFkb3cuIik7Y29udGludWV9aWYoITE9PT1wLmF1dG9VcGRhdGUmJiExPT09cC5uZWVkc1VwZGF0ZSljb250aW51ZTtpLmNvcHkocC5tYXBTaXplKTtjb25zdCBmPXAuZ2V0RnJhbWVFeHRlbnRzKCk7aWYoaS5tdWx0aXBseShmKSxhLmNvcHkocC5tYXBTaXplKSwoaS54PmR8fGkueT5kKSYmKGkueD5kJiYoYS54PU1hdGguZmxvb3IoZC9mLngpLGkueD1hLngqZi54LHAubWFwU2l6ZS54PWEueCksaS55PmQmJihhLnk9TWF0aC5mbG9vcihkL2YueSksaS55PWEueSpmLnkscC5tYXBTaXplLnk9YS55KSksbnVsbD09PXAubWFwJiYhcC5pc1BvaW50TGlnaHRTaGFkb3cmJjM9PT10aGlzLnR5cGUpe2NvbnN0IHQ9e21pbkZpbHRlcjpUcnQsbWFnRmlsdGVyOlRydCxmb3JtYXQ6anJ0fTtwLm1hcD1uZXcgeHN0KGkueCxpLnksdCkscC5tYXAudGV4dHVyZS5uYW1lPWMubmFtZSsiLnNoYWRvd01hcCIscC5tYXBQYXNzPW5ldyB4c3QoaS54LGkueSx0KSxwLmNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCl9aWYobnVsbD09PXAubWFwKXtwLm1hcD1uZXcgeHN0KGkueCxpLnkse21pbkZpbHRlcjpBcnQsbWFnRmlsdGVyOkFydCxmb3JtYXQ6anJ0fSkscC5tYXAudGV4dHVyZS5uYW1lPWMubmFtZSsiLnNoYWRvd01hcCIscC5jYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfXQuc2V0UmVuZGVyVGFyZ2V0KHAubWFwKSx0LmNsZWFyKCk7Y29uc3QgdT1wLmdldFZpZXdwb3J0Q291bnQoKTtmb3IobGV0IHQ9MDt0PHU7dCsrKXtjb25zdCBlPXAuZ2V0Vmlld3BvcnQodCk7ci5zZXQoYS54KmUueCxhLnkqZS55LGEueCplLnosYS55KmUudyksbS52aWV3cG9ydChyKSxwLnVwZGF0ZU1hdHJpY2VzKGMsdCksbz1wLmdldEZydXN0dW0oKSxfKG4scyxwLmNhbWVyYSxjLHRoaXMudHlwZSl9cC5pc1BvaW50TGlnaHRTaGFkb3d8fDMhPT10aGlzLnR5cGV8fGIocCxzKSxwLm5lZWRzVXBkYXRlPSExfWgubmVlZHNVcGRhdGU9ITEsdC5zZXRSZW5kZXJUYXJnZXQobCxjLHApfX1mdW5jdGlvbiBTbXQodCxlLG4pe2NvbnN0IG89bi5pc1dlYkdMMjtjb25zdCBpPW5ldyhmdW5jdGlvbiBhKCl7bGV0IGU9ITE7Y29uc3Qgbj1uZXcgdnN0O2xldCBvPW51bGw7Y29uc3QgaT1uZXcgdnN0KDAsMCwwLDApO3JldHVybntzZXRNYXNrOmZ1bmN0aW9uKG4pe289PT1ufHxlfHwodC5jb2xvck1hc2sobixuLG4sbiksbz1uKX0sc2V0TG9ja2VkOmZ1bmN0aW9uKHQpe2U9dH0sc2V0Q2xlYXI6ZnVuY3Rpb24oZSxvLGEscixzKXshMD09PXMmJihlKj1yLG8qPXIsYSo9ciksbi5zZXQoZSxvLGEsciksITE9PT1pLmVxdWFscyhuKSYmKHQuY2xlYXJDb2xvcihlLG8sYSxyKSxpLmNvcHkobikpfSxyZXNldDpmdW5jdGlvbigpe2U9ITEsbz1udWxsLGkuc2V0KC0xLDAsMCwwKX19fSkscj1uZXcoZnVuY3Rpb24gcygpe2xldCBlPSExLG49bnVsbCxvPW51bGwsaT1udWxsO3JldHVybntzZXRUZXN0OmZ1bmN0aW9uKHQpe3Q/QigyOTI5KTpWKDI5MjkpfSxzZXRNYXNrOmZ1bmN0aW9uKG8pe249PT1vfHxlfHwodC5kZXB0aE1hc2sobyksbj1vKX0sc2V0RnVuYzpmdW5jdGlvbihlKXtpZihvIT09ZSl7aWYoZSlzd2l0Y2goZSl7Y2FzZSAwOnQuZGVwdGhGdW5jKDUxMik7YnJlYWs7Y2FzZSAxOnQuZGVwdGhGdW5jKDUxOSk7YnJlYWs7Y2FzZSAyOnQuZGVwdGhGdW5jKDUxMyk7YnJlYWs7Y2FzZSAzOnQuZGVwdGhGdW5jKDUxNSk7YnJlYWs7Y2FzZSA0OnQuZGVwdGhGdW5jKDUxNCk7YnJlYWs7Y2FzZSA1OnQuZGVwdGhGdW5jKDUxOCk7YnJlYWs7Y2FzZSA2OnQuZGVwdGhGdW5jKDUxNik7YnJlYWs7Y2FzZSA3OnQuZGVwdGhGdW5jKDUxNyk7YnJlYWs7ZGVmYXVsdDp0LmRlcHRoRnVuYyg1MTUpfWVsc2UgdC5kZXB0aEZ1bmMoNTE1KTtvPWV9fSxzZXRMb2NrZWQ6ZnVuY3Rpb24odCl7ZT10fSxzZXRDbGVhcjpmdW5jdGlvbihlKXtpIT09ZSYmKHQuY2xlYXJEZXB0aChlKSxpPWUpfSxyZXNldDpmdW5jdGlvbigpe2U9ITEsbj1udWxsLG89bnVsbCxpPW51bGx9fX0pLGw9bmV3KGZ1bmN0aW9uIGMoKXtsZXQgZT0hMSxuPW51bGwsbz1udWxsLGk9bnVsbCxhPW51bGwscj1udWxsLHM9bnVsbCxsPW51bGwsYz1udWxsO3JldHVybntzZXRUZXN0OmZ1bmN0aW9uKHQpe2V8fCh0P0IoMjk2MCk6VigyOTYwKSl9LHNldE1hc2s6ZnVuY3Rpb24obyl7bj09PW98fGV8fCh0LnN0ZW5jaWxNYXNrKG8pLG49byl9LHNldEZ1bmM6ZnVuY3Rpb24oZSxuLHIpe289PT1lJiZpPT09biYmYT09PXJ8fCh0LnN0ZW5jaWxGdW5jKGUsbixyKSxvPWUsaT1uLGE9cil9LHNldE9wOmZ1bmN0aW9uKGUsbixvKXtyPT09ZSYmcz09PW4mJmw9PT1vfHwodC5zdGVuY2lsT3AoZSxuLG8pLHI9ZSxzPW4sbD1vKX0sc2V0TG9ja2VkOmZ1bmN0aW9uKHQpe2U9dH0sc2V0Q2xlYXI6ZnVuY3Rpb24oZSl7YyE9PWUmJih0LmNsZWFyU3RlbmNpbChlKSxjPWUpfSxyZXNldDpmdW5jdGlvbigpe2U9ITEsbj1udWxsLG89bnVsbCxpPW51bGwsYT1udWxsLHI9bnVsbCxzPW51bGwsbD1udWxsLGM9bnVsbH19fSk7bGV0IGQ9e30scD1udWxsLG09e30sZj1udWxsLHU9ITEsZz1udWxsLGg9bnVsbCxiPW51bGwseT1udWxsLF89bnVsbCxDPW51bGwsTT1udWxsLHY9ITEseD1udWxsLE89bnVsbCxQPW51bGwsdz1udWxsLGs9bnVsbDtjb25zdCBTPXQuZ2V0UGFyYW1ldGVyKDM1NjYxKTtsZXQgRD0hMSxSPTA7Y29uc3QgRT10LmdldFBhcmFtZXRlcig3OTM4KTstMSE9PUUuaW5kZXhPZigiV2ViR0wiKT8oUj1wYXJzZUZsb2F0KC9eV2ViR0wgKFxkKS8uZXhlYyhFKVsxXSksRD1SPj0xKTotMSE9PUUuaW5kZXhPZigiT3BlbkdMIEVTIikmJihSPXBhcnNlRmxvYXQoL15PcGVuR0wgRVMgKFxkKS8uZXhlYyhFKVsxXSksRD1SPj0yKTtsZXQgQT1udWxsLFQ9e307Y29uc3QgTj10LmdldFBhcmFtZXRlcigzMDg4KSx6PXQuZ2V0UGFyYW1ldGVyKDI5NzgpLEk9KG5ldyB2c3QpLmZyb21BcnJheShOKSxIPShuZXcgdnN0KS5mcm9tQXJyYXkoeik7ZnVuY3Rpb24gRihlLG4sbyl7Y29uc3QgaT1uZXcgVWludDhBcnJheSg0KSxhPXQuY3JlYXRlVGV4dHVyZSgpO3QuYmluZFRleHR1cmUoZSxhKSx0LnRleFBhcmFtZXRlcmkoZSwxMDI0MSw5NzI4KSx0LnRleFBhcmFtZXRlcmkoZSwxMDI0MCw5NzI4KTtmb3IobGV0IGU9MDtlPG87ZSsrKXQudGV4SW1hZ2UyRChuK2UsMCw2NDA4LDEsMSwwLDY0MDgsNTEyMSxpKTtyZXR1cm4gYX1jb25zdCBMPXt9O2Z1bmN0aW9uIEIoZSl7ITAhPT1kW2VdJiYodC5lbmFibGUoZSksZFtlXT0hMCl9ZnVuY3Rpb24gVihlKXshMSE9PWRbZV0mJih0LmRpc2FibGUoZSksZFtlXT0hMSl9TFszNTUzXT1GKDM1NTMsMzU1MywxKSxMWzM0MDY3XT1GKDM0MDY3LDM0MDY5LDYpLGkuc2V0Q2xlYXIoMCwwLDAsMSksci5zZXRDbGVhcigxKSxsLnNldENsZWFyKDApLEIoMjkyOSksci5zZXRGdW5jKDMpLEcoITEpLFkoMSksQigyODg0KSxXKDApO2NvbnN0IGo9e1tQcnRdOjMyNzc0LDEwMTozMjc3OCwxMDI6MzI3Nzl9O2lmKG8palsxMDNdPTMyNzc1LGpbMTA0XT0zMjc3NjtlbHNle2NvbnN0IHQ9ZS5nZXQoIkVYVF9ibGVuZF9taW5tYXgiKTtudWxsIT09dCYmKGpbMTAzXT10Lk1JTl9FWFQsalsxMDRdPXQuTUFYX0VYVCl9Y29uc3QgVT17MjAwOjAsMjAxOjEsMjAyOjc2OCwyMDQ6NzcwLDIxMDo3NzYsMjA4Ojc3NCwyMDY6NzcyLDIwMzo3NjksMjA1Ojc3MSwyMDk6Nzc1LDIwNzo3NzN9O2Z1bmN0aW9uIFcoZSxuLG8saSxhLHIscyxsKXtpZigwIT09ZSl7aWYoITE9PT11JiYoQigzMDQyKSx1PSEwKSw1PT09ZSlhPWF8fG4scj1yfHxvLHM9c3x8aSxuPT09aCYmYT09PV98fCh0LmJsZW5kRXF1YXRpb25TZXBhcmF0ZShqW25dLGpbYV0pLGg9bixfPWEpLG89PT1iJiZpPT09eSYmcj09PUMmJnM9PT1NfHwodC5ibGVuZEZ1bmNTZXBhcmF0ZShVW29dLFVbaV0sVVtyXSxVW3NdKSxiPW8seT1pLEM9cixNPXMpLGc9ZSx2PW51bGw7ZWxzZSBpZihlIT09Z3x8bCE9PXYpe2lmKGg9PT1QcnQmJl89PT1QcnR8fCh0LmJsZW5kRXF1YXRpb24oMzI3NzQpLGg9UHJ0LF89UHJ0KSxsKXN3aXRjaChlKXtjYXNlIDE6dC5ibGVuZEZ1bmNTZXBhcmF0ZSgxLDc3MSwxLDc3MSk7YnJlYWs7Y2FzZSAyOnQuYmxlbmRGdW5jKDEsMSk7YnJlYWs7Y2FzZSAzOnQuYmxlbmRGdW5jU2VwYXJhdGUoMCwwLDc2OSw3NzEpO2JyZWFrO2Nhc2UgNDp0LmJsZW5kRnVuY1NlcGFyYXRlKDAsNzY4LDAsNzcwKTticmVhaztkZWZhdWx0OmNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6IEludmFsaWQgYmxlbmRpbmc6ICIsZSl9ZWxzZSBzd2l0Y2goZSl7Y2FzZSAxOnQuYmxlbmRGdW5jU2VwYXJhdGUoNzcwLDc3MSwxLDc3MSk7YnJlYWs7Y2FzZSAyOnQuYmxlbmRGdW5jKDc3MCwxKTticmVhaztjYXNlIDM6dC5ibGVuZEZ1bmMoMCw3NjkpO2JyZWFrO2Nhc2UgNDp0LmJsZW5kRnVuYygwLDc2OCk7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFN0YXRlOiBJbnZhbGlkIGJsZW5kaW5nOiAiLGUpfWI9bnVsbCx5PW51bGwsQz1udWxsLE09bnVsbCxnPWUsdj1sfX1lbHNlITA9PT11JiYoVigzMDQyKSx1PSExKX1mdW5jdGlvbiBHKGUpe3ghPT1lJiYodC5mcm9udEZhY2UoZT8yMzA0OjIzMDUpLHg9ZSl9ZnVuY3Rpb24gWShlKXswIT09ZT8oQigyODg0KSxlIT09TyYmdC5jdWxsRmFjZSgxPT09ZT8xMDI5OjI9PT1lPzEwMjg6MTAzMikpOlYoMjg4NCksTz1lfWZ1bmN0aW9uIHEoZSxuLG8pe2U/KEIoMzI4MjMpLHc9PT1uJiZrPT09b3x8KHQucG9seWdvbk9mZnNldChuLG8pLHc9bixrPW8pKTpWKDMyODIzKX1mdW5jdGlvbiBaKGUpe3ZvaWQgMD09PWUmJihlPTMzOTg0K1MtMSksQSE9PWUmJih0LmFjdGl2ZVRleHR1cmUoZSksQT1lKX1yZXR1cm57YnVmZmVyczp7Y29sb3I6aSxkZXB0aDpyLHN0ZW5jaWw6bH0sZW5hYmxlOkIsZGlzYWJsZTpWLGJpbmRGcmFtZWJ1ZmZlcjpmdW5jdGlvbiBYKGUsbil7cmV0dXJuIG51bGw9PT1uJiZudWxsIT09cCYmKG49cCksbVtlXSE9PW4mJih0LmJpbmRGcmFtZWJ1ZmZlcihlLG4pLG1bZV09bixvJiYoMzYwMDk9PT1lJiYobVszNjE2MF09biksMzYxNjA9PT1lJiYobVszNjAwOV09bikpLCEwKX0sYmluZFhSRnJhbWVidWZmZXI6ZnVuY3Rpb24gSyhlKXtlIT09cCYmKHQuYmluZEZyYW1lYnVmZmVyKDM2MTYwLGUpLHA9ZSl9LHVzZVByb2dyYW06ZnVuY3Rpb24gSihlKXtyZXR1cm4gZiE9PWUmJih0LnVzZVByb2dyYW0oZSksZj1lLCEwKX0sc2V0QmxlbmRpbmc6VyxzZXRNYXRlcmlhbDpmdW5jdGlvbiBRKHQsZSl7Mj09PXQuc2lkZT9WKDI4ODQpOkIoMjg4NCk7bGV0IG49MT09PXQuc2lkZTtlJiYobj0hbiksRyhuKSwxPT09dC5ibGVuZGluZyYmITE9PT10LnRyYW5zcGFyZW50P1coMCk6Vyh0LmJsZW5kaW5nLHQuYmxlbmRFcXVhdGlvbix0LmJsZW5kU3JjLHQuYmxlbmREc3QsdC5ibGVuZEVxdWF0aW9uQWxwaGEsdC5ibGVuZFNyY0FscGhhLHQuYmxlbmREc3RBbHBoYSx0LnByZW11bHRpcGxpZWRBbHBoYSksci5zZXRGdW5jKHQuZGVwdGhGdW5jKSxyLnNldFRlc3QodC5kZXB0aFRlc3QpLHIuc2V0TWFzayh0LmRlcHRoV3JpdGUpLGkuc2V0TWFzayh0LmNvbG9yV3JpdGUpO2NvbnN0IG89dC5zdGVuY2lsV3JpdGU7bC5zZXRUZXN0KG8pLG8mJihsLnNldE1hc2sodC5zdGVuY2lsV3JpdGVNYXNrKSxsLnNldEZ1bmModC5zdGVuY2lsRnVuYyx0LnN0ZW5jaWxSZWYsdC5zdGVuY2lsRnVuY01hc2spLGwuc2V0T3AodC5zdGVuY2lsRmFpbCx0LnN0ZW5jaWxaRmFpbCx0LnN0ZW5jaWxaUGFzcykpLHEodC5wb2x5Z29uT2Zmc2V0LHQucG9seWdvbk9mZnNldEZhY3Rvcix0LnBvbHlnb25PZmZzZXRVbml0cyksITA9PT10LmFscGhhVG9Db3ZlcmFnZT9CKDMyOTI2KTpWKDMyOTI2KX0sc2V0RmxpcFNpZGVkOkcsc2V0Q3VsbEZhY2U6WSxzZXRMaW5lV2lkdGg6ZnVuY3Rpb24gJChlKXtlIT09UCYmKEQmJnQubGluZVdpZHRoKGUpLFA9ZSl9LHNldFBvbHlnb25PZmZzZXQ6cSxzZXRTY2lzc29yVGVzdDpmdW5jdGlvbiB0dCh0KXt0P0IoMzA4OSk6VigzMDg5KX0sYWN0aXZlVGV4dHVyZTpaLGJpbmRUZXh0dXJlOmZ1bmN0aW9uIGV0KGUsbil7bnVsbD09PUEmJlooKTtsZXQgbz1UW0FdO3ZvaWQgMD09PW8mJihvPXt0eXBlOnZvaWQgMCx0ZXh0dXJlOnZvaWQgMH0sVFtBXT1vKSxvLnR5cGU9PT1lJiZvLnRleHR1cmU9PT1ufHwodC5iaW5kVGV4dHVyZShlLG58fExbZV0pLG8udHlwZT1lLG8udGV4dHVyZT1uKX0sdW5iaW5kVGV4dHVyZTpmdW5jdGlvbiBudCgpe2NvbnN0IGU9VFtBXTt2b2lkIDAhPT1lJiZ2b2lkIDAhPT1lLnR5cGUmJih0LmJpbmRUZXh0dXJlKGUudHlwZSxudWxsKSxlLnR5cGU9dm9pZCAwLGUudGV4dHVyZT12b2lkIDApfSxjb21wcmVzc2VkVGV4SW1hZ2UyRDpmdW5jdGlvbiBvdCgpe3RyeXt0LmNvbXByZXNzZWRUZXhJbWFnZTJELmFwcGx5KHQsYXJndW1lbnRzKX1jYXRjaCh0KXtjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFN0YXRlOiIsdCl9fSx0ZXhJbWFnZTJEOmZ1bmN0aW9uIGl0KCl7dHJ5e3QudGV4SW1hZ2UyRC5hcHBseSh0LGFyZ3VtZW50cyl9Y2F0Y2godCl7Y29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xTdGF0ZToiLHQpfX0sdGV4SW1hZ2UzRDpmdW5jdGlvbiBhdCgpe3RyeXt0LnRleEltYWdlM0QuYXBwbHkodCxhcmd1bWVudHMpfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMU3RhdGU6Iix0KX19LHNjaXNzb3I6ZnVuY3Rpb24gcnQoZSl7ITE9PT1JLmVxdWFscyhlKSYmKHQuc2Npc3NvcihlLngsZS55LGUueixlLncpLEkuY29weShlKSl9LHZpZXdwb3J0OmZ1bmN0aW9uIHN0KGUpeyExPT09SC5lcXVhbHMoZSkmJih0LnZpZXdwb3J0KGUueCxlLnksZS56LGUudyksSC5jb3B5KGUpKX0scmVzZXQ6ZnVuY3Rpb24gbHQoKXt0LmRpc2FibGUoMzA0MiksdC5kaXNhYmxlKDI4ODQpLHQuZGlzYWJsZSgyOTI5KSx0LmRpc2FibGUoMzI4MjMpLHQuZGlzYWJsZSgzMDg5KSx0LmRpc2FibGUoMjk2MCksdC5kaXNhYmxlKDMyOTI2KSx0LmJsZW5kRXF1YXRpb24oMzI3NzQpLHQuYmxlbmRGdW5jKDEsMCksdC5ibGVuZEZ1bmNTZXBhcmF0ZSgxLDAsMSwwKSx0LmNvbG9yTWFzayghMCwhMCwhMCwhMCksdC5jbGVhckNvbG9yKDAsMCwwLDApLHQuZGVwdGhNYXNrKCEwKSx0LmRlcHRoRnVuYyg1MTMpLHQuY2xlYXJEZXB0aCgxKSx0LnN0ZW5jaWxNYXNrKDQyOTQ5NjcyOTUpLHQuc3RlbmNpbEZ1bmMoNTE5LDAsNDI5NDk2NzI5NSksdC5zdGVuY2lsT3AoNzY4MCw3NjgwLDc2ODApLHQuY2xlYXJTdGVuY2lsKDApLHQuY3VsbEZhY2UoMTAyOSksdC5mcm9udEZhY2UoMjMwNSksdC5wb2x5Z29uT2Zmc2V0KDAsMCksdC5hY3RpdmVUZXh0dXJlKDMzOTg0KSx0LmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxudWxsKSwhMD09PW8mJih0LmJpbmRGcmFtZWJ1ZmZlcigzNjAwOSxudWxsKSx0LmJpbmRGcmFtZWJ1ZmZlcigzNjAwOCxudWxsKSksdC51c2VQcm9ncmFtKG51bGwpLHQubGluZVdpZHRoKDEpLHQuc2Npc3NvcigwLDAsdC5jYW52YXMud2lkdGgsdC5jYW52YXMuaGVpZ2h0KSx0LnZpZXdwb3J0KDAsMCx0LmNhbnZhcy53aWR0aCx0LmNhbnZhcy5oZWlnaHQpLGQ9e30sQT1udWxsLFQ9e30scD1udWxsLG09e30sZj1udWxsLHU9ITEsZz1udWxsLGg9bnVsbCxiPW51bGwseT1udWxsLF89bnVsbCxDPW51bGwsTT1udWxsLHY9ITEseD1udWxsLE89bnVsbCxQPW51bGwsdz1udWxsLGs9bnVsbCxJLnNldCgwLDAsdC5jYW52YXMud2lkdGgsdC5jYW52YXMuaGVpZ2h0KSxILnNldCgwLDAsdC5jYW52YXMud2lkdGgsdC5jYW52YXMuaGVpZ2h0KSxpLnJlc2V0KCksci5yZXNldCgpLGwucmVzZXQoKX19fWZ1bmN0aW9uIERtdCh0LGUsbixvLGksYSxyKXtjb25zdCBzPWkuaXNXZWJHTDIsbD1pLm1heFRleHR1cmVzLGM9aS5tYXhDdWJlbWFwU2l6ZSxkPWkubWF4VGV4dHVyZVNpemUscD1pLm1heFNhbXBsZXMsbT1uZXcgV2Vha01hcDtsZXQgZix1PSExO3RyeXt1PSJ1bmRlZmluZWQiIT10eXBlb2YgT2Zmc2NyZWVuQ2FudmFzJiZudWxsIT09bmV3IE9mZnNjcmVlbkNhbnZhcygxLDEpLmdldENvbnRleHQoIjJkIil9Y2F0Y2godCl7fWZ1bmN0aW9uIGcodCxlKXtyZXR1cm4gdT9uZXcgT2Zmc2NyZWVuQ2FudmFzKHQsZSk6ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiY2FudmFzIil9ZnVuY3Rpb24gaCh0LGUsbixvKXtsZXQgaT0xO2lmKCh0LndpZHRoPm98fHQuaGVpZ2h0Pm8pJiYoaT1vL01hdGgubWF4KHQud2lkdGgsdC5oZWlnaHQpKSxpPDF8fCEwPT09ZSl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBIVE1MSW1hZ2VFbGVtZW50JiZ0IGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudHx8InVuZGVmaW5lZCIhPXR5cGVvZiBIVE1MQ2FudmFzRWxlbWVudCYmdCBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50fHwidW5kZWZpbmVkIiE9dHlwZW9mIEltYWdlQml0bWFwJiZ0IGluc3RhbmNlb2YgSW1hZ2VCaXRtYXApe2NvbnN0IG89ZT91c3Q6TWF0aC5mbG9vcixhPW8oaSp0LndpZHRoKSxyPW8oaSp0LmhlaWdodCk7dm9pZCAwPT09ZiYmKGY9ZyhhLHIpKTtjb25zdCBzPW4/ZyhhLHIpOmY7cy53aWR0aD1hLHMuaGVpZ2h0PXI7cmV0dXJuIHMuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UodCwwLDAsYSxyKSxjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFRleHR1cmUgaGFzIGJlZW4gcmVzaXplZCBmcm9tICgiK3Qud2lkdGgrIngiK3QuaGVpZ2h0KyIpIHRvICgiK2ErIngiK3IrIikuIiksc31yZXR1cm4iZGF0YSJpbiB0JiZjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IEltYWdlIGluIERhdGFUZXh0dXJlIGlzIHRvbyBiaWcgKCIrdC53aWR0aCsieCIrdC5oZWlnaHQrIikuIiksdH1yZXR1cm4gdH1mdW5jdGlvbiBiKHQpe3JldHVybiBmc3QodC53aWR0aCkmJmZzdCh0LmhlaWdodCl9ZnVuY3Rpb24geSh0LGUpe3JldHVybiB0LmdlbmVyYXRlTWlwbWFwcyYmZSYmdC5taW5GaWx0ZXIhPT1BcnQmJnQubWluRmlsdGVyIT09VHJ0fWZ1bmN0aW9uIF8oZSxuLGksYSxyPTEpe3QuZ2VuZXJhdGVNaXBtYXAoZSk7by5nZXQobikuX19tYXhNaXBMZXZlbD1NYXRoLmxvZzIoTWF0aC5tYXgoaSxhLHIpKX1mdW5jdGlvbiBDKG4sbyxpKXtpZighMT09PXMpcmV0dXJuIG87aWYobnVsbCE9PW4pe2lmKHZvaWQgMCE9PXRbbl0pcmV0dXJuIHRbbl07Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBBdHRlbXB0IHRvIHVzZSBub24tZXhpc3RpbmcgV2ViR0wgaW50ZXJuYWwgZm9ybWF0ICciK24rIiciKX1sZXQgYT1vO3JldHVybiA2NDAzPT09byYmKDUxMjY9PT1pJiYoYT0zMzMyNiksNTEzMT09PWkmJihhPTMzMzI1KSw1MTIxPT09aSYmKGE9MzMzMjEpKSw2NDA3PT09byYmKDUxMjY9PT1pJiYoYT0zNDgzNyksNTEzMT09PWkmJihhPTM0ODQzKSw1MTIxPT09aSYmKGE9MzI4NDkpKSw2NDA4PT09byYmKDUxMjY9PT1pJiYoYT0zNDgzNiksNTEzMT09PWkmJihhPTM0ODQyKSw1MTIxPT09aSYmKGE9MzI4NTYpKSwzMzMyNSE9PWEmJjMzMzI2IT09YSYmMzQ4NDIhPT1hJiYzNDgzNiE9PWF8fGUuZ2V0KCJFWFRfY29sb3JfYnVmZmVyX2Zsb2F0IiksYX1mdW5jdGlvbiBNKHQpe3JldHVybiB0PT09QXJ0fHwxMDA0PT09dHx8MTAwNT09PXQ/OTcyODo5NzI5fWZ1bmN0aW9uIHYoZSl7Y29uc3Qgbj1lLnRhcmdldDtuLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHYpLChmdW5jdGlvbiBpKGUpe2NvbnN0IG49by5nZXQoZSk7aWYodm9pZCAwPT09bi5fX3dlYmdsSW5pdClyZXR1cm47dC5kZWxldGVUZXh0dXJlKG4uX193ZWJnbFRleHR1cmUpLG8ucmVtb3ZlKGUpfSkobiksbi5pc1ZpZGVvVGV4dHVyZSYmbS5kZWxldGUobiksci5tZW1vcnkudGV4dHVyZXMtLX1mdW5jdGlvbiB4KGUpe2NvbnN0IG49ZS50YXJnZXQ7bi5yZW1vdmVFdmVudExpc3RlbmVyKCJkaXNwb3NlIix4KSwoZnVuY3Rpb24gaShlKXtjb25zdCBuPWUudGV4dHVyZSxpPW8uZ2V0KGUpLGE9by5nZXQobik7aWYoIWUpcmV0dXJuO3ZvaWQgMCE9PWEuX193ZWJnbFRleHR1cmUmJih0LmRlbGV0ZVRleHR1cmUoYS5fX3dlYmdsVGV4dHVyZSksci5tZW1vcnkudGV4dHVyZXMtLSk7ZS5kZXB0aFRleHR1cmUmJmUuZGVwdGhUZXh0dXJlLmRpc3Bvc2UoKTtpZihlLmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0KWZvcihsZXQgZT0wO2U8NjtlKyspdC5kZWxldGVGcmFtZWJ1ZmZlcihpLl9fd2ViZ2xGcmFtZWJ1ZmZlcltlXSksaS5fX3dlYmdsRGVwdGhidWZmZXImJnQuZGVsZXRlUmVuZGVyYnVmZmVyKGkuX193ZWJnbERlcHRoYnVmZmVyW2VdKTtlbHNlIHQuZGVsZXRlRnJhbWVidWZmZXIoaS5fX3dlYmdsRnJhbWVidWZmZXIpLGkuX193ZWJnbERlcHRoYnVmZmVyJiZ0LmRlbGV0ZVJlbmRlcmJ1ZmZlcihpLl9fd2ViZ2xEZXB0aGJ1ZmZlciksaS5fX3dlYmdsTXVsdGlzYW1wbGVkRnJhbWVidWZmZXImJnQuZGVsZXRlRnJhbWVidWZmZXIoaS5fX3dlYmdsTXVsdGlzYW1wbGVkRnJhbWVidWZmZXIpLGkuX193ZWJnbENvbG9yUmVuZGVyYnVmZmVyJiZ0LmRlbGV0ZVJlbmRlcmJ1ZmZlcihpLl9fd2ViZ2xDb2xvclJlbmRlcmJ1ZmZlciksaS5fX3dlYmdsRGVwdGhSZW5kZXJidWZmZXImJnQuZGVsZXRlUmVuZGVyYnVmZmVyKGkuX193ZWJnbERlcHRoUmVuZGVyYnVmZmVyKTtpZihlLmlzV2ViR0xNdWx0aXBsZVJlbmRlclRhcmdldHMpZm9yKGxldCBlPTAsaT1uLmxlbmd0aDtlPGk7ZSsrKXtjb25zdCBpPW8uZ2V0KG5bZV0pO2kuX193ZWJnbFRleHR1cmUmJih0LmRlbGV0ZVRleHR1cmUoaS5fX3dlYmdsVGV4dHVyZSksci5tZW1vcnkudGV4dHVyZXMtLSksby5yZW1vdmUobltlXSl9by5yZW1vdmUobiksby5yZW1vdmUoZSl9KShuKX1sZXQgTz0wO2Z1bmN0aW9uIFAodCxlKXtjb25zdCBpPW8uZ2V0KHQpO2lmKHQuaXNWaWRlb1RleHR1cmUmJihmdW5jdGlvbiBhKHQpe2NvbnN0IGU9ci5yZW5kZXIuZnJhbWU7bS5nZXQodCkhPT1lJiYobS5zZXQodCxlKSx0LnVwZGF0ZSgpKX0pKHQpLHQudmVyc2lvbj4wJiZpLl9fdmVyc2lvbiE9PXQudmVyc2lvbil7Y29uc3Qgbj10LmltYWdlO2lmKHZvaWQgMD09PW4pY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBUZXh0dXJlIG1hcmtlZCBmb3IgdXBkYXRlIGJ1dCBpbWFnZSBpcyB1bmRlZmluZWQiKTtlbHNle2lmKCExIT09bi5jb21wbGV0ZSlyZXR1cm4gdm9pZCBFKGksdCxlKTtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFRleHR1cmUgbWFya2VkIGZvciB1cGRhdGUgYnV0IGltYWdlIGlzIGluY29tcGxldGUiKX19bi5hY3RpdmVUZXh0dXJlKDMzOTg0K2UpLG4uYmluZFRleHR1cmUoMzU1MyxpLl9fd2ViZ2xUZXh0dXJlKX1mdW5jdGlvbiB3KGUsaSl7Y29uc3Qgcj1vLmdldChlKTtlLnZlcnNpb24+MCYmci5fX3ZlcnNpb24hPT1lLnZlcnNpb24/KGZ1bmN0aW9uIGwoZSxvLGkpe2lmKDYhPT1vLmltYWdlLmxlbmd0aClyZXR1cm47UihlLG8pLG4uYWN0aXZlVGV4dHVyZSgzMzk4NCtpKSxuLmJpbmRUZXh0dXJlKDM0MDY3LGUuX193ZWJnbFRleHR1cmUpLHQucGl4ZWxTdG9yZWkoMzc0NDAsby5mbGlwWSksdC5waXhlbFN0b3JlaSgzNzQ0MSxvLnByZW11bHRpcGx5QWxwaGEpLHQucGl4ZWxTdG9yZWkoMzMxNyxvLnVucGFja0FsaWdubWVudCksdC5waXhlbFN0b3JlaSgzNzQ0MywwKTtjb25zdCByPW8mJihvLmlzQ29tcHJlc3NlZFRleHR1cmV8fG8uaW1hZ2VbMF0uaXNDb21wcmVzc2VkVGV4dHVyZSksbD1vLmltYWdlWzBdJiZvLmltYWdlWzBdLmlzRGF0YVRleHR1cmUsZD1bXTtmb3IobGV0IHQ9MDt0PDY7dCsrKWRbdF09cnx8bD9sP28uaW1hZ2VbdF0uaW1hZ2U6by5pbWFnZVt0XTpoKG8uaW1hZ2VbdF0sITEsITAsYyk7Y29uc3QgcD1kWzBdLG09YihwKXx8cyxmPWEuY29udmVydChvLmZvcm1hdCksdT1hLmNvbnZlcnQoby50eXBlKSxnPUMoby5pbnRlcm5hbEZvcm1hdCxmLHUpO2xldCBNO2lmKEQoMzQwNjcsbyxtKSxyKXtmb3IobGV0IHQ9MDt0PDY7dCsrKXtNPWRbdF0ubWlwbWFwcztmb3IobGV0IGU9MDtlPE0ubGVuZ3RoO2UrKyl7Y29uc3QgaT1NW2VdO28uZm9ybWF0IT09anJ0JiZvLmZvcm1hdCE9PVZydD9udWxsIT09Zj9uLmNvbXByZXNzZWRUZXhJbWFnZTJEKDM0MDY5K3QsZSxnLGkud2lkdGgsaS5oZWlnaHQsMCxpLmRhdGEpOmNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogQXR0ZW1wdCB0byBsb2FkIHVuc3VwcG9ydGVkIGNvbXByZXNzZWQgdGV4dHVyZSBmb3JtYXQgaW4gLnNldFRleHR1cmVDdWJlKCkiKTpuLnRleEltYWdlMkQoMzQwNjkrdCxlLGcsaS53aWR0aCxpLmhlaWdodCwwLGYsdSxpLmRhdGEpfX1lLl9fbWF4TWlwTGV2ZWw9TS5sZW5ndGgtMX1lbHNle009by5taXBtYXBzO2ZvcihsZXQgdD0wO3Q8Njt0KyspaWYobCl7bi50ZXhJbWFnZTJEKDM0MDY5K3QsMCxnLGRbdF0ud2lkdGgsZFt0XS5oZWlnaHQsMCxmLHUsZFt0XS5kYXRhKTtmb3IobGV0IGU9MDtlPE0ubGVuZ3RoO2UrKyl7Y29uc3Qgbz1NW2VdLmltYWdlW3RdLmltYWdlO24udGV4SW1hZ2UyRCgzNDA2OSt0LGUrMSxnLG8ud2lkdGgsby5oZWlnaHQsMCxmLHUsby5kYXRhKX19ZWxzZXtuLnRleEltYWdlMkQoMzQwNjkrdCwwLGcsZix1LGRbdF0pO2ZvcihsZXQgZT0wO2U8TS5sZW5ndGg7ZSsrKXtuLnRleEltYWdlMkQoMzQwNjkrdCxlKzEsZyxmLHUsTVtlXS5pbWFnZVt0XSl9fWUuX19tYXhNaXBMZXZlbD1NLmxlbmd0aH15KG8sbSkmJl8oMzQwNjcsbyxwLndpZHRoLHAuaGVpZ2h0KTtlLl9fdmVyc2lvbj1vLnZlcnNpb24sby5vblVwZGF0ZSYmby5vblVwZGF0ZShvKX0pKHIsZSxpKToobi5hY3RpdmVUZXh0dXJlKDMzOTg0K2kpLG4uYmluZFRleHR1cmUoMzQwNjcsci5fX3dlYmdsVGV4dHVyZSkpfWNvbnN0IGs9e1tEcnRdOjEwNDk3LFtScnRdOjMzMDcxLFtFcnRdOjMzNjQ4fSxTPXtbQXJ0XTo5NzI4LDEwMDQ6OTk4NCwxMDA1Ojk5ODYsW1RydF06OTcyOSwxMDA3Ojk5ODUsW05ydF06OTk4N307ZnVuY3Rpb24gRChuLGEscil7aWYocj8odC50ZXhQYXJhbWV0ZXJpKG4sMTAyNDIsa1thLndyYXBTXSksdC50ZXhQYXJhbWV0ZXJpKG4sMTAyNDMsa1thLndyYXBUXSksMzI4NzkhPT1uJiYzNTg2NiE9PW58fHQudGV4UGFyYW1ldGVyaShuLDMyODgyLGtbYS53cmFwUl0pLHQudGV4UGFyYW1ldGVyaShuLDEwMjQwLFNbYS5tYWdGaWx0ZXJdKSx0LnRleFBhcmFtZXRlcmkobiwxMDI0MSxTW2EubWluRmlsdGVyXSkpOih0LnRleFBhcmFtZXRlcmkobiwxMDI0MiwzMzA3MSksdC50ZXhQYXJhbWV0ZXJpKG4sMTAyNDMsMzMwNzEpLDMyODc5IT09biYmMzU4NjYhPT1ufHx0LnRleFBhcmFtZXRlcmkobiwzMjg4MiwzMzA3MSksYS53cmFwUz09PVJydCYmYS53cmFwVD09PVJydHx8Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBUZXh0dXJlIGlzIG5vdCBwb3dlciBvZiB0d28uIFRleHR1cmUud3JhcFMgYW5kIFRleHR1cmUud3JhcFQgc2hvdWxkIGJlIHNldCB0byBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nLiIpLHQudGV4UGFyYW1ldGVyaShuLDEwMjQwLE0oYS5tYWdGaWx0ZXIpKSx0LnRleFBhcmFtZXRlcmkobiwxMDI0MSxNKGEubWluRmlsdGVyKSksYS5taW5GaWx0ZXIhPT1BcnQmJmEubWluRmlsdGVyIT09VHJ0JiZjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFRleHR1cmUgaXMgbm90IHBvd2VyIG9mIHR3by4gVGV4dHVyZS5taW5GaWx0ZXIgc2hvdWxkIGJlIHNldCB0byBUSFJFRS5OZWFyZXN0RmlsdGVyIG9yIFRIUkVFLkxpbmVhckZpbHRlci4iKSksITA9PT1lLmhhcygiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpe2NvbnN0IHI9ZS5nZXQoIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpO2lmKGEudHlwZT09PUZydCYmITE9PT1lLmhhcygiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikpcmV0dXJuO2lmKCExPT09cyYmYS50eXBlPT09THJ0JiYhMT09PWUuaGFzKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpKXJldHVybjsoYS5hbmlzb3Ryb3B5PjF8fG8uZ2V0KGEpLl9fY3VycmVudEFuaXNvdHJvcHkpJiYodC50ZXhQYXJhbWV0ZXJmKG4sci5URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCxNYXRoLm1pbihhLmFuaXNvdHJvcHksaS5nZXRNYXhBbmlzb3Ryb3B5KCkpKSxvLmdldChhKS5fX2N1cnJlbnRBbmlzb3Ryb3B5PWEuYW5pc290cm9weSl9fWZ1bmN0aW9uIFIoZSxuKXt2b2lkIDA9PT1lLl9fd2ViZ2xJbml0JiYoZS5fX3dlYmdsSW5pdD0hMCxuLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHYpLGUuX193ZWJnbFRleHR1cmU9dC5jcmVhdGVUZXh0dXJlKCksci5tZW1vcnkudGV4dHVyZXMrKyl9ZnVuY3Rpb24gRShlLG8saSl7bGV0IHI9MzU1MztvLmlzRGF0YVRleHR1cmUyREFycmF5JiYocj0zNTg2Niksby5pc0RhdGFUZXh0dXJlM0QmJihyPTMyODc5KSxSKGUsbyksbi5hY3RpdmVUZXh0dXJlKDMzOTg0K2kpLG4uYmluZFRleHR1cmUocixlLl9fd2ViZ2xUZXh0dXJlKSx0LnBpeGVsU3RvcmVpKDM3NDQwLG8uZmxpcFkpLHQucGl4ZWxTdG9yZWkoMzc0NDEsby5wcmVtdWx0aXBseUFscGhhKSx0LnBpeGVsU3RvcmVpKDMzMTcsby51bnBhY2tBbGlnbm1lbnQpLHQucGl4ZWxTdG9yZWkoMzc0NDMsMCk7Y29uc3QgbD0oZnVuY3Rpb24gYyh0KXtyZXR1cm4hcyYmKHQud3JhcFMhPT1ScnR8fHQud3JhcFQhPT1ScnR8fHQubWluRmlsdGVyIT09QXJ0JiZ0Lm1pbkZpbHRlciE9PVRydCl9KShvKSYmITE9PT1iKG8uaW1hZ2UpLHA9aChvLmltYWdlLGwsITEsZCksbT1iKHApfHxzLGY9YS5jb252ZXJ0KG8uZm9ybWF0KTtsZXQgdSxnPWEuY29udmVydChvLnR5cGUpLE09QyhvLmludGVybmFsRm9ybWF0LGYsZyk7RChyLG8sbSk7Y29uc3Qgdj1vLm1pcG1hcHM7aWYoby5pc0RlcHRoVGV4dHVyZSlNPTY0MDIscz9NPW8udHlwZT09PUZydD8zNjAxMjpvLnR5cGU9PT1IcnQ/MzMxOTA6by50eXBlPT09QnJ0PzM1MDU2OjMzMTg5Om8udHlwZT09PUZydCYmY29uc29sZS5lcnJvcigiV2ViR0xSZW5kZXJlcjogRmxvYXRpbmcgcG9pbnQgZGVwdGggdGV4dHVyZSByZXF1aXJlcyBXZWJHTDIuIiksby5mb3JtYXQ9PT1VcnQmJjY0MDI9PT1NJiZvLnR5cGUhPT1JcnQmJm8udHlwZSE9PUhydCYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogVXNlIFVuc2lnbmVkU2hvcnRUeXBlIG9yIFVuc2lnbmVkSW50VHlwZSBmb3IgRGVwdGhGb3JtYXQgRGVwdGhUZXh0dXJlLiIpLG8udHlwZT1JcnQsZz1hLmNvbnZlcnQoby50eXBlKSksby5mb3JtYXQ9PT1XcnQmJjY0MDI9PT1NJiYoTT0zNDA0MSxvLnR5cGUhPT1CcnQmJihjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFVzZSBVbnNpZ25lZEludDI0OFR5cGUgZm9yIERlcHRoU3RlbmNpbEZvcm1hdCBEZXB0aFRleHR1cmUuIiksby50eXBlPUJydCxnPWEuY29udmVydChvLnR5cGUpKSksbi50ZXhJbWFnZTJEKDM1NTMsMCxNLHAud2lkdGgscC5oZWlnaHQsMCxmLGcsbnVsbCk7ZWxzZSBpZihvLmlzRGF0YVRleHR1cmUpaWYodi5sZW5ndGg+MCYmbSl7Zm9yKGxldCB0PTAsZT12Lmxlbmd0aDt0PGU7dCsrKXU9dlt0XSxuLnRleEltYWdlMkQoMzU1Myx0LE0sdS53aWR0aCx1LmhlaWdodCwwLGYsZyx1LmRhdGEpO28uZ2VuZXJhdGVNaXBtYXBzPSExLGUuX19tYXhNaXBMZXZlbD12Lmxlbmd0aC0xfWVsc2Ugbi50ZXhJbWFnZTJEKDM1NTMsMCxNLHAud2lkdGgscC5oZWlnaHQsMCxmLGcscC5kYXRhKSxlLl9fbWF4TWlwTGV2ZWw9MDtlbHNlIGlmKG8uaXNDb21wcmVzc2VkVGV4dHVyZSl7Zm9yKGxldCB0PTAsZT12Lmxlbmd0aDt0PGU7dCsrKXU9dlt0XSxvLmZvcm1hdCE9PWpydCYmby5mb3JtYXQhPT1WcnQ/bnVsbCE9PWY/bi5jb21wcmVzc2VkVGV4SW1hZ2UyRCgzNTUzLHQsTSx1LndpZHRoLHUuaGVpZ2h0LDAsdS5kYXRhKTpjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IEF0dGVtcHQgdG8gbG9hZCB1bnN1cHBvcnRlZCBjb21wcmVzc2VkIHRleHR1cmUgZm9ybWF0IGluIC51cGxvYWRUZXh0dXJlKCkiKTpuLnRleEltYWdlMkQoMzU1Myx0LE0sdS53aWR0aCx1LmhlaWdodCwwLGYsZyx1LmRhdGEpO2UuX19tYXhNaXBMZXZlbD12Lmxlbmd0aC0xfWVsc2UgaWYoby5pc0RhdGFUZXh0dXJlMkRBcnJheSluLnRleEltYWdlM0QoMzU4NjYsMCxNLHAud2lkdGgscC5oZWlnaHQscC5kZXB0aCwwLGYsZyxwLmRhdGEpLGUuX19tYXhNaXBMZXZlbD0wO2Vsc2UgaWYoby5pc0RhdGFUZXh0dXJlM0Qpbi50ZXhJbWFnZTNEKDMyODc5LDAsTSxwLndpZHRoLHAuaGVpZ2h0LHAuZGVwdGgsMCxmLGcscC5kYXRhKSxlLl9fbWF4TWlwTGV2ZWw9MDtlbHNlIGlmKHYubGVuZ3RoPjAmJm0pe2ZvcihsZXQgdD0wLGU9di5sZW5ndGg7dDxlO3QrKyl1PXZbdF0sbi50ZXhJbWFnZTJEKDM1NTMsdCxNLGYsZyx1KTtvLmdlbmVyYXRlTWlwbWFwcz0hMSxlLl9fbWF4TWlwTGV2ZWw9di5sZW5ndGgtMX1lbHNlIG4udGV4SW1hZ2UyRCgzNTUzLDAsTSxmLGcscCksZS5fX21heE1pcExldmVsPTA7eShvLG0pJiZfKHIsbyxwLndpZHRoLHAuaGVpZ2h0KSxlLl9fdmVyc2lvbj1vLnZlcnNpb24sby5vblVwZGF0ZSYmby5vblVwZGF0ZShvKX1mdW5jdGlvbiBBKGUsaSxyLHMsbCl7Y29uc3QgYz1hLmNvbnZlcnQoci5mb3JtYXQpLGQ9YS5jb252ZXJ0KHIudHlwZSkscD1DKHIuaW50ZXJuYWxGb3JtYXQsYyxkKTszMjg3OT09PWx8fDM1ODY2PT09bD9uLnRleEltYWdlM0QobCwwLHAsaS53aWR0aCxpLmhlaWdodCxpLmRlcHRoLDAsYyxkLG51bGwpOm4udGV4SW1hZ2UyRChsLDAscCxpLndpZHRoLGkuaGVpZ2h0LDAsYyxkLG51bGwpLG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLGUpLHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAscyxsLG8uZ2V0KHIpLl9fd2ViZ2xUZXh0dXJlLDApLG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLG51bGwpfWZ1bmN0aW9uIFQoZSxuLG8pe2lmKHQuYmluZFJlbmRlcmJ1ZmZlcigzNjE2MSxlKSxuLmRlcHRoQnVmZmVyJiYhbi5zdGVuY2lsQnVmZmVyKXtsZXQgaT0zMzE4OTtpZihvKXtjb25zdCBlPW4uZGVwdGhUZXh0dXJlO2UmJmUuaXNEZXB0aFRleHR1cmUmJihlLnR5cGU9PT1GcnQ/aT0zNjAxMjplLnR5cGU9PT1IcnQmJihpPTMzMTkwKSk7Y29uc3Qgbz16KG4pO3QucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKDM2MTYxLG8saSxuLndpZHRoLG4uaGVpZ2h0KX1lbHNlIHQucmVuZGVyYnVmZmVyU3RvcmFnZSgzNjE2MSxpLG4ud2lkdGgsbi5oZWlnaHQpO3QuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoMzYxNjAsMzYwOTYsMzYxNjEsZSl9ZWxzZSBpZihuLmRlcHRoQnVmZmVyJiZuLnN0ZW5jaWxCdWZmZXIpe2lmKG8pe2NvbnN0IGU9eihuKTt0LnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSgzNjE2MSxlLDM1MDU2LG4ud2lkdGgsbi5oZWlnaHQpfWVsc2UgdC5yZW5kZXJidWZmZXJTdG9yYWdlKDM2MTYxLDM0MDQxLG4ud2lkdGgsbi5oZWlnaHQpO3QuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoMzYxNjAsMzMzMDYsMzYxNjEsZSl9ZWxzZXtjb25zdCBlPSEwPT09bi5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzP24udGV4dHVyZVswXTpuLnRleHR1cmUsaT1hLmNvbnZlcnQoZS5mb3JtYXQpLHI9YS5jb252ZXJ0KGUudHlwZSkscz1DKGUuaW50ZXJuYWxGb3JtYXQsaSxyKTtpZihvKXtjb25zdCBlPXoobik7dC5yZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoMzYxNjEsZSxzLG4ud2lkdGgsbi5oZWlnaHQpfWVsc2UgdC5yZW5kZXJidWZmZXJTdG9yYWdlKDM2MTYxLHMsbi53aWR0aCxuLmhlaWdodCl9dC5iaW5kUmVuZGVyYnVmZmVyKDM2MTYxLG51bGwpfWZ1bmN0aW9uIE4oZSl7Y29uc3QgaT1vLmdldChlKSxhPSEwPT09ZS5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldDtpZihlLmRlcHRoVGV4dHVyZSl7aWYoYSl0aHJvdyBuZXcgRXJyb3IoInRhcmdldC5kZXB0aFRleHR1cmUgbm90IHN1cHBvcnRlZCBpbiBDdWJlIHJlbmRlciB0YXJnZXRzIik7IShmdW5jdGlvbiByKGUsaSl7aWYoaSYmaS5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldCl0aHJvdyBuZXcgRXJyb3IoIkRlcHRoIFRleHR1cmUgd2l0aCBjdWJlIHJlbmRlciB0YXJnZXRzIGlzIG5vdCBzdXBwb3J0ZWQiKTtpZihuLmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxlKSwhaS5kZXB0aFRleHR1cmV8fCFpLmRlcHRoVGV4dHVyZS5pc0RlcHRoVGV4dHVyZSl0aHJvdyBuZXcgRXJyb3IoInJlbmRlclRhcmdldC5kZXB0aFRleHR1cmUgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBUSFJFRS5EZXB0aFRleHR1cmUiKTtvLmdldChpLmRlcHRoVGV4dHVyZSkuX193ZWJnbFRleHR1cmUmJmkuZGVwdGhUZXh0dXJlLmltYWdlLndpZHRoPT09aS53aWR0aCYmaS5kZXB0aFRleHR1cmUuaW1hZ2UuaGVpZ2h0PT09aS5oZWlnaHR8fChpLmRlcHRoVGV4dHVyZS5pbWFnZS53aWR0aD1pLndpZHRoLGkuZGVwdGhUZXh0dXJlLmltYWdlLmhlaWdodD1pLmhlaWdodCxpLmRlcHRoVGV4dHVyZS5uZWVkc1VwZGF0ZT0hMCksUChpLmRlcHRoVGV4dHVyZSwwKTtjb25zdCBhPW8uZ2V0KGkuZGVwdGhUZXh0dXJlKS5fX3dlYmdsVGV4dHVyZTtpZihpLmRlcHRoVGV4dHVyZS5mb3JtYXQ9PT1VcnQpdC5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCwzNjA5NiwzNTUzLGEsMCk7ZWxzZXtpZihpLmRlcHRoVGV4dHVyZS5mb3JtYXQhPT1XcnQpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGRlcHRoVGV4dHVyZSBmb3JtYXQiKTt0LmZyYW1lYnVmZmVyVGV4dHVyZTJEKDM2MTYwLDMzMzA2LDM1NTMsYSwwKX19KShpLl9fd2ViZ2xGcmFtZWJ1ZmZlcixlKX1lbHNlIGlmKGEpe2kuX193ZWJnbERlcHRoYnVmZmVyPVtdO2ZvcihsZXQgbz0wO288NjtvKyspbi5iaW5kRnJhbWVidWZmZXIoMzYxNjAsaS5fX3dlYmdsRnJhbWVidWZmZXJbb10pLGkuX193ZWJnbERlcHRoYnVmZmVyW29dPXQuY3JlYXRlUmVuZGVyYnVmZmVyKCksVChpLl9fd2ViZ2xEZXB0aGJ1ZmZlcltvXSxlLCExKX1lbHNlIG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLGkuX193ZWJnbEZyYW1lYnVmZmVyKSxpLl9fd2ViZ2xEZXB0aGJ1ZmZlcj10LmNyZWF0ZVJlbmRlcmJ1ZmZlcigpLFQoaS5fX3dlYmdsRGVwdGhidWZmZXIsZSwhMSk7bi5iaW5kRnJhbWVidWZmZXIoMzYxNjAsbnVsbCl9ZnVuY3Rpb24geih0KXtyZXR1cm4gcyYmdC5pc1dlYkdMTXVsdGlzYW1wbGVSZW5kZXJUYXJnZXQ/TWF0aC5taW4ocCx0LnNhbXBsZXMpOjB9bGV0IEk9ITEsSD0hMTt0aGlzLmFsbG9jYXRlVGV4dHVyZVVuaXQ9ZnVuY3Rpb24gRigpe2NvbnN0IHQ9TztyZXR1cm4gdD49bCYmY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFRleHR1cmVzOiBUcnlpbmcgdG8gdXNlICIrdCsiIHRleHR1cmUgdW5pdHMgd2hpbGUgdGhpcyBHUFUgc3VwcG9ydHMgb25seSAiK2wpLE8rPTEsdH0sdGhpcy5yZXNldFRleHR1cmVVbml0cz1mdW5jdGlvbiBMKCl7Tz0wfSx0aGlzLnNldFRleHR1cmUyRD1QLHRoaXMuc2V0VGV4dHVyZTJEQXJyYXk9ZnVuY3Rpb24gQih0LGUpe2NvbnN0IGk9by5nZXQodCk7dC52ZXJzaW9uPjAmJmkuX192ZXJzaW9uIT09dC52ZXJzaW9uP0UoaSx0LGUpOihuLmFjdGl2ZVRleHR1cmUoMzM5ODQrZSksbi5iaW5kVGV4dHVyZSgzNTg2NixpLl9fd2ViZ2xUZXh0dXJlKSl9LHRoaXMuc2V0VGV4dHVyZTNEPWZ1bmN0aW9uIFYodCxlKXtjb25zdCBpPW8uZ2V0KHQpO3QudmVyc2lvbj4wJiZpLl9fdmVyc2lvbiE9PXQudmVyc2lvbj9FKGksdCxlKToobi5hY3RpdmVUZXh0dXJlKDMzOTg0K2UpLG4uYmluZFRleHR1cmUoMzI4NzksaS5fX3dlYmdsVGV4dHVyZSkpfSx0aGlzLnNldFRleHR1cmVDdWJlPXcsdGhpcy5zZXR1cFJlbmRlclRhcmdldD1mdW5jdGlvbiBqKGUpe2NvbnN0IGw9ZS50ZXh0dXJlLGM9by5nZXQoZSksZD1vLmdldChsKTtlLmFkZEV2ZW50TGlzdGVuZXIoImRpc3Bvc2UiLHgpLCEwIT09ZS5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzJiYoZC5fX3dlYmdsVGV4dHVyZT10LmNyZWF0ZVRleHR1cmUoKSxkLl9fdmVyc2lvbj1sLnZlcnNpb24sci5tZW1vcnkudGV4dHVyZXMrKyk7Y29uc3QgcD0hMD09PWUuaXNXZWJHTEN1YmVSZW5kZXJUYXJnZXQsbT0hMD09PWUuaXNXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cyxmPSEwPT09ZS5pc1dlYkdMTXVsdGlzYW1wbGVSZW5kZXJUYXJnZXQsdT1sLmlzRGF0YVRleHR1cmUzRHx8bC5pc0RhdGFUZXh0dXJlMkRBcnJheSxnPWIoZSl8fHM7aWYoIXN8fGwuZm9ybWF0IT09VnJ0fHxsLnR5cGUhPT1GcnQmJmwudHlwZSE9PUxydHx8KGwuZm9ybWF0PWpydCxjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFJlbmRlcmluZyB0byB0ZXh0dXJlcyB3aXRoIFJHQiBmb3JtYXQgaXMgbm90IHN1cHBvcnRlZC4gVXNpbmcgUkdCQSBmb3JtYXQgaW5zdGVhZC4iKSkscCl7Yy5fX3dlYmdsRnJhbWVidWZmZXI9W107Zm9yKGxldCBlPTA7ZTw2O2UrKyljLl9fd2ViZ2xGcmFtZWJ1ZmZlcltlXT10LmNyZWF0ZUZyYW1lYnVmZmVyKCl9ZWxzZSBpZihjLl9fd2ViZ2xGcmFtZWJ1ZmZlcj10LmNyZWF0ZUZyYW1lYnVmZmVyKCksbSlpZihpLmRyYXdCdWZmZXJzKXtjb25zdCBuPWUudGV4dHVyZTtmb3IobGV0IGU9MCxpPW4ubGVuZ3RoO2U8aTtlKyspe2NvbnN0IGk9by5nZXQobltlXSk7dm9pZCAwPT09aS5fX3dlYmdsVGV4dHVyZSYmKGkuX193ZWJnbFRleHR1cmU9dC5jcmVhdGVUZXh0dXJlKCksci5tZW1vcnkudGV4dHVyZXMrKyl9fWVsc2UgY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cyBjYW4gb25seSBiZSB1c2VkIHdpdGggV2ViR0wyIG9yIFdFQkdMX2RyYXdfYnVmZmVycyBleHRlbnNpb24uIik7ZWxzZSBpZihmKWlmKHMpe2MuX193ZWJnbE11bHRpc2FtcGxlZEZyYW1lYnVmZmVyPXQuY3JlYXRlRnJhbWVidWZmZXIoKSxjLl9fd2ViZ2xDb2xvclJlbmRlcmJ1ZmZlcj10LmNyZWF0ZVJlbmRlcmJ1ZmZlcigpLHQuYmluZFJlbmRlcmJ1ZmZlcigzNjE2MSxjLl9fd2ViZ2xDb2xvclJlbmRlcmJ1ZmZlcik7Y29uc3Qgbz1hLmNvbnZlcnQobC5mb3JtYXQpLGk9YS5jb252ZXJ0KGwudHlwZSkscj1DKGwuaW50ZXJuYWxGb3JtYXQsbyxpKSxzPXooZSk7dC5yZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoMzYxNjEscyxyLGUud2lkdGgsZS5oZWlnaHQpLG4uYmluZEZyYW1lYnVmZmVyKDM2MTYwLGMuX193ZWJnbE11bHRpc2FtcGxlZEZyYW1lYnVmZmVyKSx0LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKDM2MTYwLDM2MDY0LDM2MTYxLGMuX193ZWJnbENvbG9yUmVuZGVyYnVmZmVyKSx0LmJpbmRSZW5kZXJidWZmZXIoMzYxNjEsbnVsbCksZS5kZXB0aEJ1ZmZlciYmKGMuX193ZWJnbERlcHRoUmVuZGVyYnVmZmVyPXQuY3JlYXRlUmVuZGVyYnVmZmVyKCksVChjLl9fd2ViZ2xEZXB0aFJlbmRlcmJ1ZmZlcixlLCEwKSksbi5iaW5kRnJhbWVidWZmZXIoMzYxNjAsbnVsbCl9ZWxzZSBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IFdlYkdMTXVsdGlzYW1wbGVSZW5kZXJUYXJnZXQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIFdlYkdMMi4iKTtpZihwKXtuLmJpbmRUZXh0dXJlKDM0MDY3LGQuX193ZWJnbFRleHR1cmUpLEQoMzQwNjcsbCxnKTtmb3IobGV0IHQ9MDt0PDY7dCsrKUEoYy5fX3dlYmdsRnJhbWVidWZmZXJbdF0sZSxsLDM2MDY0LDM0MDY5K3QpO3kobCxnKSYmXygzNDA2NyxsLGUud2lkdGgsZS5oZWlnaHQpLG4uYmluZFRleHR1cmUoMzQwNjcsbnVsbCl9ZWxzZSBpZihtKXtjb25zdCB0PWUudGV4dHVyZTtmb3IobGV0IGk9MCxhPXQubGVuZ3RoO2k8YTtpKyspe2NvbnN0IGE9dFtpXSxyPW8uZ2V0KGEpO24uYmluZFRleHR1cmUoMzU1MyxyLl9fd2ViZ2xUZXh0dXJlKSxEKDM1NTMsYSxnKSxBKGMuX193ZWJnbEZyYW1lYnVmZmVyLGUsYSwzNjA2NCtpLDM1NTMpLHkoYSxnKSYmXygzNTUzLGEsZS53aWR0aCxlLmhlaWdodCl9bi5iaW5kVGV4dHVyZSgzNTUzLG51bGwpfWVsc2V7bGV0IHQ9MzU1MztpZih1KWlmKHMpe3Q9bC5pc0RhdGFUZXh0dXJlM0Q/MzI4Nzk6MzU4NjZ9ZWxzZSBjb25zb2xlLndhcm4oIlRIUkVFLkRhdGFUZXh0dXJlM0QgYW5kIFRIUkVFLkRhdGFUZXh0dXJlMkRBcnJheSBvbmx5IHN1cHBvcnRlZCB3aXRoIFdlYkdMMi4iKTtuLmJpbmRUZXh0dXJlKHQsZC5fX3dlYmdsVGV4dHVyZSksRCh0LGwsZyksQShjLl9fd2ViZ2xGcmFtZWJ1ZmZlcixlLGwsMzYwNjQsdCkseShsLGcpJiZfKHQsbCxlLndpZHRoLGUuaGVpZ2h0LGUuZGVwdGgpLG4uYmluZFRleHR1cmUodCxudWxsKX1lLmRlcHRoQnVmZmVyJiZOKGUpfSx0aGlzLnVwZGF0ZVJlbmRlclRhcmdldE1pcG1hcD1mdW5jdGlvbiBVKHQpe2NvbnN0IGU9Yih0KXx8cyxpPSEwPT09dC5pc1dlYkdMTXVsdGlwbGVSZW5kZXJUYXJnZXRzP3QudGV4dHVyZTpbdC50ZXh0dXJlXTtmb3IobGV0IGE9MCxyPWkubGVuZ3RoO2E8cjthKyspe2NvbnN0IHI9aVthXTtpZih5KHIsZSkpe2NvbnN0IGU9dC5pc1dlYkdMQ3ViZVJlbmRlclRhcmdldD8zNDA2NzozNTUzLGk9by5nZXQocikuX193ZWJnbFRleHR1cmU7bi5iaW5kVGV4dHVyZShlLGkpLF8oZSxyLHQud2lkdGgsdC5oZWlnaHQpLG4uYmluZFRleHR1cmUoZSxudWxsKX19fSx0aGlzLnVwZGF0ZU11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0PWZ1bmN0aW9uIFcoZSl7aWYoZS5pc1dlYkdMTXVsdGlzYW1wbGVSZW5kZXJUYXJnZXQpaWYocyl7Y29uc3QgaT1lLndpZHRoLGE9ZS5oZWlnaHQ7bGV0IHI9MTYzODQ7ZS5kZXB0aEJ1ZmZlciYmKHJ8PTI1NiksZS5zdGVuY2lsQnVmZmVyJiYocnw9MTAyNCk7Y29uc3Qgcz1vLmdldChlKTtuLmJpbmRGcmFtZWJ1ZmZlcigzNjAwOCxzLl9fd2ViZ2xNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlciksbi5iaW5kRnJhbWVidWZmZXIoMzYwMDkscy5fX3dlYmdsRnJhbWVidWZmZXIpLHQuYmxpdEZyYW1lYnVmZmVyKDAsMCxpLGEsMCwwLGksYSxyLDk3MjgpLG4uYmluZEZyYW1lYnVmZmVyKDM2MDA4LG51bGwpLG4uYmluZEZyYW1lYnVmZmVyKDM2MDA5LHMuX193ZWJnbE11bHRpc2FtcGxlZEZyYW1lYnVmZmVyKX1lbHNlIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogV2ViR0xNdWx0aXNhbXBsZVJlbmRlclRhcmdldCBjYW4gb25seSBiZSB1c2VkIHdpdGggV2ViR0wyLiIpfSx0aGlzLnNhZmVTZXRUZXh0dXJlMkQ9ZnVuY3Rpb24gRyh0LGUpe3QmJnQuaXNXZWJHTFJlbmRlclRhcmdldCYmKCExPT09SSYmKGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xUZXh0dXJlcy5zYWZlU2V0VGV4dHVyZTJEOiBkb24ndCB1c2UgcmVuZGVyIHRhcmdldHMgYXMgdGV4dHVyZXMuIFVzZSB0aGVpciAudGV4dHVyZSBwcm9wZXJ0eSBpbnN0ZWFkLiIpLEk9ITApLHQ9dC50ZXh0dXJlKSxQKHQsZSl9LHRoaXMuc2FmZVNldFRleHR1cmVDdWJlPWZ1bmN0aW9uIFkodCxlKXt0JiZ0LmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0JiYoITE9PT1IJiYoY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFRleHR1cmVzLnNhZmVTZXRUZXh0dXJlQ3ViZTogZG9uJ3QgdXNlIGN1YmUgcmVuZGVyIHRhcmdldHMgYXMgdGV4dHVyZXMuIFVzZSB0aGVpciAudGV4dHVyZSBwcm9wZXJ0eSBpbnN0ZWFkLiIpLEg9ITApLHQ9dC50ZXh0dXJlKSx3KHQsZSl9fWZ1bmN0aW9uIFJtdCh0LGUsbil7Y29uc3Qgbz1uLmlzV2ViR0wyO3JldHVybntjb252ZXJ0OmZ1bmN0aW9uIGkodCl7bGV0IG47aWYodD09PXpydClyZXR1cm4gNTEyMTtpZigxMDE3PT09dClyZXR1cm4gMzI4MTk7aWYoMTAxOD09PXQpcmV0dXJuIDMyODIwO2lmKDEwMTk9PT10KXJldHVybiAzMzYzNTtpZigxMDEwPT09dClyZXR1cm4gNTEyMDtpZigxMDExPT09dClyZXR1cm4gNTEyMjtpZih0PT09SXJ0KXJldHVybiA1MTIzO2lmKDEwMTM9PT10KXJldHVybiA1MTI0O2lmKHQ9PT1IcnQpcmV0dXJuIDUxMjU7aWYodD09PUZydClyZXR1cm4gNTEyNjtpZih0PT09THJ0KXJldHVybiBvPzUxMzE6KG49ZS5nZXQoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSxudWxsIT09bj9uLkhBTEZfRkxPQVRfT0VTOm51bGwpO2lmKDEwMjE9PT10KXJldHVybiA2NDA2O2lmKHQ9PT1WcnQpcmV0dXJuIDY0MDc7aWYodD09PWpydClyZXR1cm4gNjQwODtpZigxMDI0PT09dClyZXR1cm4gNjQwOTtpZigxMDI1PT09dClyZXR1cm4gNjQxMDtpZih0PT09VXJ0KXJldHVybiA2NDAyO2lmKHQ9PT1XcnQpcmV0dXJuIDM0MDQxO2lmKDEwMjg9PT10KXJldHVybiA2NDAzO2lmKDEwMjk9PT10KXJldHVybiAzNjI0NDtpZigxMDMwPT09dClyZXR1cm4gMzMzMTk7aWYoMTAzMT09PXQpcmV0dXJuIDMzMzIwO2lmKDEwMzI9PT10KXJldHVybiAzNjI0ODtpZigxMDMzPT09dClyZXR1cm4gMzYyNDk7aWYoMzM3NzY9PT10fHwzMzc3Nz09PXR8fDMzNzc4PT09dHx8MzM3Nzk9PT10KXtpZihuPWUuZ2V0KCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpLG51bGw9PT1uKXJldHVybiBudWxsO2lmKDMzNzc2PT09dClyZXR1cm4gbi5DT01QUkVTU0VEX1JHQl9TM1RDX0RYVDFfRVhUO2lmKDMzNzc3PT09dClyZXR1cm4gbi5DT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQxX0VYVDtpZigzMzc3OD09PXQpcmV0dXJuIG4uQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUM19FWFQ7aWYoMzM3Nzk9PT10KXJldHVybiBuLkNPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDVfRVhUfWlmKDM1ODQwPT09dHx8MzU4NDE9PT10fHwzNTg0Mj09PXR8fDM1ODQzPT09dCl7aWYobj1lLmdldCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIiksbnVsbD09PW4pcmV0dXJuIG51bGw7aWYoMzU4NDA9PT10KXJldHVybiBuLkNPTVBSRVNTRURfUkdCX1BWUlRDXzRCUFBWMV9JTUc7aWYoMzU4NDE9PT10KXJldHVybiBuLkNPTVBSRVNTRURfUkdCX1BWUlRDXzJCUFBWMV9JTUc7aWYoMzU4NDI9PT10KXJldHVybiBuLkNPTVBSRVNTRURfUkdCQV9QVlJUQ180QlBQVjFfSU1HO2lmKDM1ODQzPT09dClyZXR1cm4gbi5DT01QUkVTU0VEX1JHQkFfUFZSVENfMkJQUFYxX0lNR31pZigzNjE5Nj09PXQpcmV0dXJuIG49ZS5nZXQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9ldGMxIiksbnVsbCE9PW4/bi5DT01QUkVTU0VEX1JHQl9FVEMxX1dFQkdMOm51bGw7aWYoKDM3NDkyPT09dHx8Mzc0OTY9PT10KSYmKG49ZS5nZXQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9ldGMiKSxudWxsIT09bikpe2lmKDM3NDkyPT09dClyZXR1cm4gbi5DT01QUkVTU0VEX1JHQjhfRVRDMjtpZigzNzQ5Nj09PXQpcmV0dXJuIG4uQ09NUFJFU1NFRF9SR0JBOF9FVEMyX0VBQ31yZXR1cm4gMzc4MDg9PT10fHwzNzgwOT09PXR8fDM3ODEwPT09dHx8Mzc4MTE9PT10fHwzNzgxMj09PXR8fDM3ODEzPT09dHx8Mzc4MTQ9PT10fHwzNzgxNT09PXR8fDM3ODE2PT09dHx8Mzc4MTc9PT10fHwzNzgxOD09PXR8fDM3ODE5PT09dHx8Mzc4MjA9PT10fHwzNzgyMT09PXR8fDM3ODQwPT09dHx8Mzc4NDE9PT10fHwzNzg0Mj09PXR8fDM3ODQzPT09dHx8Mzc4NDQ9PT10fHwzNzg0NT09PXR8fDM3ODQ2PT09dHx8Mzc4NDc9PT10fHwzNzg0OD09PXR8fDM3ODQ5PT09dHx8Mzc4NTA9PT10fHwzNzg1MT09PXR8fDM3ODUyPT09dHx8Mzc4NTM9PT10PyhuPWUuZ2V0KCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXN0YyIpLG51bGwhPT1uP3Q6bnVsbCk6MzY0OTI9PT10PyhuPWUuZ2V0KCJFWFRfdGV4dHVyZV9jb21wcmVzc2lvbl9icHRjIiksbnVsbCE9PW4/dDpudWxsKTp0PT09QnJ0P28/MzQwNDI6KG49ZS5nZXQoIldFQkdMX2RlcHRoX3RleHR1cmUiKSxudWxsIT09bj9uLlVOU0lHTkVEX0lOVF8yNF84X1dFQkdMOm51bGwpOnZvaWQgMH19fWNsYXNzIEVtdCBleHRlbmRzIEljdHtjb25zdHJ1Y3Rvcih0PVtdKXtzdXBlcigpLHRoaXMuY2FtZXJhcz10fX1FbXQucHJvdG90eXBlLmlzQXJyYXlDYW1lcmE9ITA7Y2xhc3MgQW10IGV4dGVuZHMgU2x0e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnR5cGU9Ikdyb3VwIn19QW10LnByb3RvdHlwZS5pc0dyb3VwPSEwO2NvbnN0IFRtdD17dHlwZToibW92ZSJ9O2NsYXNzIE5tdHtjb25zdHJ1Y3Rvcigpe3RoaXMuX3RhcmdldFJheT1udWxsLHRoaXMuX2dyaXA9bnVsbCx0aGlzLl9oYW5kPW51bGx9Z2V0SGFuZFNwYWNlKCl7cmV0dXJuIG51bGw9PT10aGlzLl9oYW5kJiYodGhpcy5faGFuZD1uZXcgQW10LHRoaXMuX2hhbmQubWF0cml4QXV0b1VwZGF0ZT0hMSx0aGlzLl9oYW5kLnZpc2libGU9ITEsdGhpcy5faGFuZC5qb2ludHM9e30sdGhpcy5faGFuZC5pbnB1dFN0YXRlPXtwaW5jaGluZzohMX0pLHRoaXMuX2hhbmR9Z2V0VGFyZ2V0UmF5U3BhY2UoKXtyZXR1cm4gbnVsbD09PXRoaXMuX3RhcmdldFJheSYmKHRoaXMuX3RhcmdldFJheT1uZXcgQW10LHRoaXMuX3RhcmdldFJheS5tYXRyaXhBdXRvVXBkYXRlPSExLHRoaXMuX3RhcmdldFJheS52aXNpYmxlPSExLHRoaXMuX3RhcmdldFJheS5oYXNMaW5lYXJWZWxvY2l0eT0hMSx0aGlzLl90YXJnZXRSYXkubGluZWFyVmVsb2NpdHk9bmV3IHdzdCx0aGlzLl90YXJnZXRSYXkuaGFzQW5ndWxhclZlbG9jaXR5PSExLHRoaXMuX3RhcmdldFJheS5hbmd1bGFyVmVsb2NpdHk9bmV3IHdzdCksdGhpcy5fdGFyZ2V0UmF5fWdldEdyaXBTcGFjZSgpe3JldHVybiBudWxsPT09dGhpcy5fZ3JpcCYmKHRoaXMuX2dyaXA9bmV3IEFtdCx0aGlzLl9ncmlwLm1hdHJpeEF1dG9VcGRhdGU9ITEsdGhpcy5fZ3JpcC52aXNpYmxlPSExLHRoaXMuX2dyaXAuaGFzTGluZWFyVmVsb2NpdHk9ITEsdGhpcy5fZ3JpcC5saW5lYXJWZWxvY2l0eT1uZXcgd3N0LHRoaXMuX2dyaXAuaGFzQW5ndWxhclZlbG9jaXR5PSExLHRoaXMuX2dyaXAuYW5ndWxhclZlbG9jaXR5PW5ldyB3c3QpLHRoaXMuX2dyaXB9ZGlzcGF0Y2hFdmVudCh0KXtyZXR1cm4gbnVsbCE9PXRoaXMuX3RhcmdldFJheSYmdGhpcy5fdGFyZ2V0UmF5LmRpc3BhdGNoRXZlbnQodCksbnVsbCE9PXRoaXMuX2dyaXAmJnRoaXMuX2dyaXAuZGlzcGF0Y2hFdmVudCh0KSxudWxsIT09dGhpcy5faGFuZCYmdGhpcy5faGFuZC5kaXNwYXRjaEV2ZW50KHQpLHRoaXN9ZGlzY29ubmVjdCh0KXtyZXR1cm4gdGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJkaXNjb25uZWN0ZWQiLGRhdGE6dH0pLG51bGwhPT10aGlzLl90YXJnZXRSYXkmJih0aGlzLl90YXJnZXRSYXkudmlzaWJsZT0hMSksbnVsbCE9PXRoaXMuX2dyaXAmJih0aGlzLl9ncmlwLnZpc2libGU9ITEpLG51bGwhPT10aGlzLl9oYW5kJiYodGhpcy5faGFuZC52aXNpYmxlPSExKSx0aGlzfXVwZGF0ZSh0LGUsbil7bGV0IG89bnVsbCxpPW51bGwsYT1udWxsO2NvbnN0IHI9dGhpcy5fdGFyZ2V0UmF5LHM9dGhpcy5fZ3JpcCxsPXRoaXMuX2hhbmQ7aWYodCYmInZpc2libGUtYmx1cnJlZCIhPT1lLnNlc3Npb24udmlzaWJpbGl0eVN0YXRlKWlmKG51bGwhPT1yJiYobz1lLmdldFBvc2UodC50YXJnZXRSYXlTcGFjZSxuKSxudWxsIT09byYmKHIubWF0cml4LmZyb21BcnJheShvLnRyYW5zZm9ybS5tYXRyaXgpLHIubWF0cml4LmRlY29tcG9zZShyLnBvc2l0aW9uLHIucm90YXRpb24sci5zY2FsZSksby5saW5lYXJWZWxvY2l0eT8oci5oYXNMaW5lYXJWZWxvY2l0eT0hMCxyLmxpbmVhclZlbG9jaXR5LmNvcHkoby5saW5lYXJWZWxvY2l0eSkpOnIuaGFzTGluZWFyVmVsb2NpdHk9ITEsby5hbmd1bGFyVmVsb2NpdHk/KHIuaGFzQW5ndWxhclZlbG9jaXR5PSEwLHIuYW5ndWxhclZlbG9jaXR5LmNvcHkoby5hbmd1bGFyVmVsb2NpdHkpKTpyLmhhc0FuZ3VsYXJWZWxvY2l0eT0hMSx0aGlzLmRpc3BhdGNoRXZlbnQoVG10KSkpLGwmJnQuaGFuZCl7YT0hMDtmb3IoY29uc3QgbyBvZiB0LmhhbmQudmFsdWVzKCkpe2NvbnN0IHQ9ZS5nZXRKb2ludFBvc2UobyxuKTtpZih2b2lkIDA9PT1sLmpvaW50c1tvLmpvaW50TmFtZV0pe2NvbnN0IHQ9bmV3IEFtdDt0Lm1hdHJpeEF1dG9VcGRhdGU9ITEsdC52aXNpYmxlPSExLGwuam9pbnRzW28uam9pbnROYW1lXT10LGwuYWRkKHQpfWNvbnN0IGk9bC5qb2ludHNbby5qb2ludE5hbWVdO251bGwhPT10JiYoaS5tYXRyaXguZnJvbUFycmF5KHQudHJhbnNmb3JtLm1hdHJpeCksaS5tYXRyaXguZGVjb21wb3NlKGkucG9zaXRpb24saS5yb3RhdGlvbixpLnNjYWxlKSxpLmpvaW50UmFkaXVzPXQucmFkaXVzKSxpLnZpc2libGU9bnVsbCE9PXR9Y29uc3Qgbz1sLmpvaW50c1siaW5kZXgtZmluZ2VyLXRpcCJdLnBvc2l0aW9uLmRpc3RhbmNlVG8obC5qb2ludHNbInRodW1iLXRpcCJdLnBvc2l0aW9uKSxpPS4wMixyPS4wMDU7bC5pbnB1dFN0YXRlLnBpbmNoaW5nJiZvPmkrcj8obC5pbnB1dFN0YXRlLnBpbmNoaW5nPSExLHRoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToicGluY2hlbmQiLGhhbmRlZG5lc3M6dC5oYW5kZWRuZXNzLHRhcmdldDp0aGlzfSkpOiFsLmlucHV0U3RhdGUucGluY2hpbmcmJm88PWktciYmKGwuaW5wdXRTdGF0ZS5waW5jaGluZz0hMCx0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6InBpbmNoc3RhcnQiLGhhbmRlZG5lc3M6dC5oYW5kZWRuZXNzLHRhcmdldDp0aGlzfSkpfWVsc2UgbnVsbCE9PXMmJnQuZ3JpcFNwYWNlJiYoaT1lLmdldFBvc2UodC5ncmlwU3BhY2UsbiksbnVsbCE9PWkmJihzLm1hdHJpeC5mcm9tQXJyYXkoaS50cmFuc2Zvcm0ubWF0cml4KSxzLm1hdHJpeC5kZWNvbXBvc2Uocy5wb3NpdGlvbixzLnJvdGF0aW9uLHMuc2NhbGUpLGkubGluZWFyVmVsb2NpdHk/KHMuaGFzTGluZWFyVmVsb2NpdHk9ITAscy5saW5lYXJWZWxvY2l0eS5jb3B5KGkubGluZWFyVmVsb2NpdHkpKTpzLmhhc0xpbmVhclZlbG9jaXR5PSExLGkuYW5ndWxhclZlbG9jaXR5PyhzLmhhc0FuZ3VsYXJWZWxvY2l0eT0hMCxzLmFuZ3VsYXJWZWxvY2l0eS5jb3B5KGkuYW5ndWxhclZlbG9jaXR5KSk6cy5oYXNBbmd1bGFyVmVsb2NpdHk9ITEpKTtyZXR1cm4gbnVsbCE9PXImJihyLnZpc2libGU9bnVsbCE9PW8pLG51bGwhPT1zJiYocy52aXNpYmxlPW51bGwhPT1pKSxudWxsIT09bCYmKGwudmlzaWJsZT1udWxsIT09YSksdGhpc319Y2xhc3Mgem10IGV4dGVuZHMgcnN0e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKTtjb25zdCBuPXRoaXMsbz10LnN0YXRlO2xldCBpPW51bGwsYT0xLHI9bnVsbCxzPSJsb2NhbC1mbG9vciIsbD1udWxsLGM9bnVsbCxkPW51bGwscD1udWxsLG09bnVsbDtjb25zdCBmPVtdLHU9bmV3IE1hcCxnPW5ldyBJY3Q7Zy5sYXllcnMuZW5hYmxlKDEpLGcudmlld3BvcnQ9bmV3IHZzdDtjb25zdCBoPW5ldyBJY3Q7aC5sYXllcnMuZW5hYmxlKDIpLGgudmlld3BvcnQ9bmV3IHZzdDtjb25zdCBiPVtnLGhdLHk9bmV3IEVtdDt5LmxheWVycy5lbmFibGUoMSkseS5sYXllcnMuZW5hYmxlKDIpO2xldCBfPW51bGwsQz1udWxsO2Z1bmN0aW9uIE0odCl7Y29uc3QgZT11LmdldCh0LmlucHV0U291cmNlKTtlJiZlLmRpc3BhdGNoRXZlbnQoe3R5cGU6dC50eXBlLGRhdGE6dC5pbnB1dFNvdXJjZX0pfWZ1bmN0aW9uIHYoKXt1LmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7dC5kaXNjb25uZWN0KGUpfSkpLHUuY2xlYXIoKSxfPW51bGwsQz1udWxsLG8uYmluZFhSRnJhbWVidWZmZXIobnVsbCksdC5zZXRSZW5kZXJUYXJnZXQodC5nZXRSZW5kZXJUYXJnZXQoKSksUy5zdG9wKCksbi5pc1ByZXNlbnRpbmc9ITEsbi5kaXNwYXRjaEV2ZW50KHt0eXBlOiJzZXNzaW9uZW5kIn0pfWZ1bmN0aW9uIHgodCl7Y29uc3QgZT1pLmlucHV0U291cmNlcztmb3IobGV0IHQ9MDt0PGYubGVuZ3RoO3QrKyl1LnNldChlW3RdLGZbdF0pO2ZvcihsZXQgZT0wO2U8dC5yZW1vdmVkLmxlbmd0aDtlKyspe2NvbnN0IG49dC5yZW1vdmVkW2VdLG89dS5nZXQobik7byYmKG8uZGlzcGF0Y2hFdmVudCh7dHlwZToiZGlzY29ubmVjdGVkIixkYXRhOm59KSx1LmRlbGV0ZShuKSl9Zm9yKGxldCBlPTA7ZTx0LmFkZGVkLmxlbmd0aDtlKyspe2NvbnN0IG49dC5hZGRlZFtlXSxvPXUuZ2V0KG4pO28mJm8uZGlzcGF0Y2hFdmVudCh7dHlwZToiY29ubmVjdGVkIixkYXRhOm59KX19dGhpcy5jYW1lcmFBdXRvVXBkYXRlPSEwLHRoaXMuZW5hYmxlZD0hMSx0aGlzLmlzUHJlc2VudGluZz0hMSx0aGlzLmdldENvbnRyb2xsZXI9ZnVuY3Rpb24odCl7bGV0IGU9Zlt0XTtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9bmV3IE5tdCxmW3RdPWUpLGUuZ2V0VGFyZ2V0UmF5U3BhY2UoKX0sdGhpcy5nZXRDb250cm9sbGVyR3JpcD1mdW5jdGlvbih0KXtsZXQgZT1mW3RdO3JldHVybiB2b2lkIDA9PT1lJiYoZT1uZXcgTm10LGZbdF09ZSksZS5nZXRHcmlwU3BhY2UoKX0sdGhpcy5nZXRIYW5kPWZ1bmN0aW9uKHQpe2xldCBlPWZbdF07cmV0dXJuIHZvaWQgMD09PWUmJihlPW5ldyBObXQsZlt0XT1lKSxlLmdldEhhbmRTcGFjZSgpfSx0aGlzLnNldEZyYW1lYnVmZmVyU2NhbGVGYWN0b3I9ZnVuY3Rpb24odCl7YT10LCEwPT09bi5pc1ByZXNlbnRpbmcmJmNvbnNvbGUud2FybigiVEhSRUUuV2ViWFJNYW5hZ2VyOiBDYW5ub3QgY2hhbmdlIGZyYW1lYnVmZmVyIHNjYWxlIHdoaWxlIHByZXNlbnRpbmcuIil9LHRoaXMuc2V0UmVmZXJlbmNlU3BhY2VUeXBlPWZ1bmN0aW9uKHQpe3M9dCwhMD09PW4uaXNQcmVzZW50aW5nJiZjb25zb2xlLndhcm4oIlRIUkVFLldlYlhSTWFuYWdlcjogQ2Fubm90IGNoYW5nZSByZWZlcmVuY2Ugc3BhY2UgdHlwZSB3aGlsZSBwcmVzZW50aW5nLiIpfSx0aGlzLmdldFJlZmVyZW5jZVNwYWNlPWZ1bmN0aW9uKCl7cmV0dXJuIHJ9LHRoaXMuZ2V0U2Vzc2lvbj1mdW5jdGlvbigpe3JldHVybiBpfSx0aGlzLnNldFNlc3Npb249YXN5bmMgZnVuY3Rpb24odCl7aWYoaT10LG51bGwhPT1pKXtpLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdCIsTSksaS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RzdGFydCIsTSksaS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlbmQiLE0pLGkuYWRkRXZlbnRMaXN0ZW5lcigic3F1ZWV6ZSIsTSksaS5hZGRFdmVudExpc3RlbmVyKCJzcXVlZXplc3RhcnQiLE0pLGkuYWRkRXZlbnRMaXN0ZW5lcigic3F1ZWV6ZWVuZCIsTSksaS5hZGRFdmVudExpc3RlbmVyKCJlbmQiLHYpLGkuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXRzb3VyY2VzY2hhbmdlIix4KTtjb25zdCB0PWUuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKTtpZighMCE9PXQueHJDb21wYXRpYmxlJiZhd2FpdCBlLm1ha2VYUkNvbXBhdGlibGUoKSx2b2lkIDA9PT1pLnJlbmRlclN0YXRlLmxheWVycyl7bT1uZXcgWFJXZWJHTExheWVyKGksZSx7YW50aWFsaWFzOnQuYW50aWFsaWFzLGFscGhhOnQuYWxwaGEsZGVwdGg6dC5kZXB0aCxzdGVuY2lsOnQuc3RlbmNpbCxmcmFtZWJ1ZmZlclNjYWxlRmFjdG9yOmF9KSxpLnVwZGF0ZVJlbmRlclN0YXRlKHtiYXNlTGF5ZXI6bX0pfWVsc2V7bGV0IG49MDtpZih0LmFudGlhbGlhcyl7bT1uZXcgWFJXZWJHTExheWVyKGksZSx7YW50aWFsaWFzOiEwLGFscGhhOnQuYWxwaGEsZGVwdGg6dC5kZXB0aCxzdGVuY2lsOnQuc3RlbmNpbCxmcmFtZWJ1ZmZlclNjYWxlRmFjdG9yOmF9KSxpLnVwZGF0ZVJlbmRlclN0YXRlKHtsYXllcnM6W21dfSl9ZWxzZXt0LmRlcHRoJiYobj10LnN0ZW5jaWw/MzQwNDE6NjQwMik7Y29uc3Qgbz17Y29sb3JGb3JtYXQ6dC5hbHBoYT82NDA4OjY0MDcsZGVwdGhGb3JtYXQ6bixzY2FsZUZhY3RvcjphfTtjPW5ldyBYUldlYkdMQmluZGluZyhpLGUpLHA9Yy5jcmVhdGVQcm9qZWN0aW9uTGF5ZXIobyksZD1lLmNyZWF0ZUZyYW1lYnVmZmVyKCksaS51cGRhdGVSZW5kZXJTdGF0ZSh7bGF5ZXJzOltwXX0pfX1yPWF3YWl0IGkucmVxdWVzdFJlZmVyZW5jZVNwYWNlKHMpLFMuc2V0Q29udGV4dChpKSxTLnN0YXJ0KCksbi5pc1ByZXNlbnRpbmc9ITAsbi5kaXNwYXRjaEV2ZW50KHt0eXBlOiJzZXNzaW9uc3RhcnQifSl9fTtjb25zdCBPPW5ldyB3c3QsUD1uZXcgd3N0O2Z1bmN0aW9uIHcodCxlKXtudWxsPT09ZT90Lm1hdHJpeFdvcmxkLmNvcHkodC5tYXRyaXgpOnQubWF0cml4V29ybGQubXVsdGlwbHlNYXRyaWNlcyhlLm1hdHJpeFdvcmxkLHQubWF0cml4KSx0Lm1hdHJpeFdvcmxkSW52ZXJzZS5jb3B5KHQubWF0cml4V29ybGQpLmludmVydCgpfXRoaXMudXBkYXRlQ2FtZXJhPWZ1bmN0aW9uKHQpe2lmKG51bGw9PT1pKXJldHVybjt5Lm5lYXI9aC5uZWFyPWcubmVhcj10Lm5lYXIseS5mYXI9aC5mYXI9Zy5mYXI9dC5mYXIsXz09PXkubmVhciYmQz09PXkuZmFyfHwoaS51cGRhdGVSZW5kZXJTdGF0ZSh7ZGVwdGhOZWFyOnkubmVhcixkZXB0aEZhcjp5LmZhcn0pLF89eS5uZWFyLEM9eS5mYXIpO2NvbnN0IGU9dC5wYXJlbnQsbj15LmNhbWVyYXM7dyh5LGUpO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKXcoblt0XSxlKTt5Lm1hdHJpeFdvcmxkLmRlY29tcG9zZSh5LnBvc2l0aW9uLHkucXVhdGVybmlvbix5LnNjYWxlKSx0LnBvc2l0aW9uLmNvcHkoeS5wb3NpdGlvbiksdC5xdWF0ZXJuaW9uLmNvcHkoeS5xdWF0ZXJuaW9uKSx0LnNjYWxlLmNvcHkoeS5zY2FsZSksdC5tYXRyaXguY29weSh5Lm1hdHJpeCksdC5tYXRyaXhXb3JsZC5jb3B5KHkubWF0cml4V29ybGQpO2NvbnN0IG89dC5jaGlsZHJlbjtmb3IobGV0IHQ9MCxlPW8ubGVuZ3RoO3Q8ZTt0Kyspb1t0XS51cGRhdGVNYXRyaXhXb3JsZCghMCk7Mj09PW4ubGVuZ3RoPyhmdW5jdGlvbiBhKHQsZSxuKXtPLnNldEZyb21NYXRyaXhQb3NpdGlvbihlLm1hdHJpeFdvcmxkKSxQLnNldEZyb21NYXRyaXhQb3NpdGlvbihuLm1hdHJpeFdvcmxkKTtjb25zdCBvPU8uZGlzdGFuY2VUbyhQKSxpPWUucHJvamVjdGlvbk1hdHJpeC5lbGVtZW50cyxhPW4ucHJvamVjdGlvbk1hdHJpeC5lbGVtZW50cyxyPWlbMTRdLyhpWzEwXS0xKSxzPWlbMTRdLyhpWzEwXSsxKSxsPShpWzldKzEpL2lbNV0sYz0oaVs5XS0xKS9pWzVdLGQ9KGlbOF0tMSkvaVswXSxwPShhWzhdKzEpL2FbMF0sbT1yKmQsZj1yKnAsdT1vLygtZCtwKSxnPXUqLWQ7ZS5tYXRyaXhXb3JsZC5kZWNvbXBvc2UodC5wb3NpdGlvbix0LnF1YXRlcm5pb24sdC5zY2FsZSksdC50cmFuc2xhdGVYKGcpLHQudHJhbnNsYXRlWih1KSx0Lm1hdHJpeFdvcmxkLmNvbXBvc2UodC5wb3NpdGlvbix0LnF1YXRlcm5pb24sdC5zY2FsZSksdC5tYXRyaXhXb3JsZEludmVyc2UuY29weSh0Lm1hdHJpeFdvcmxkKS5pbnZlcnQoKTtjb25zdCBoPXIrdSxiPXMrdTt0LnByb2plY3Rpb25NYXRyaXgubWFrZVBlcnNwZWN0aXZlKG0tZyxmKyhvLWcpLGwqcy9iKmgsYypzL2IqaCxoLGIpfSkoeSxnLGgpOnkucHJvamVjdGlvbk1hdHJpeC5jb3B5KGcucHJvamVjdGlvbk1hdHJpeCl9LHRoaXMuZ2V0Q2FtZXJhPWZ1bmN0aW9uKCl7cmV0dXJuIHl9LHRoaXMuZ2V0Rm92ZWF0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT1wP3AuZml4ZWRGb3ZlYXRpb246bnVsbCE9PW0/bS5maXhlZEZvdmVhdGlvbjp2b2lkIDB9LHRoaXMuc2V0Rm92ZWF0aW9uPWZ1bmN0aW9uKHQpe251bGwhPT1wJiYocC5maXhlZEZvdmVhdGlvbj10KSxudWxsIT09bSYmdm9pZCAwIT09bS5maXhlZEZvdmVhdGlvbiYmKG0uZml4ZWRGb3ZlYXRpb249dCl9O2xldCBrPW51bGw7Y29uc3QgUz1uZXcgWmN0O1Muc2V0QW5pbWF0aW9uTG9vcCgoZnVuY3Rpb24gRCh0LG4pe2lmKGw9bi5nZXRWaWV3ZXJQb3NlKHIpLG51bGwhPT1sKXtjb25zdCB0PWwudmlld3M7bnVsbCE9PW0mJm8uYmluZFhSRnJhbWVidWZmZXIobS5mcmFtZWJ1ZmZlcik7bGV0IG49ITE7dC5sZW5ndGghPT15LmNhbWVyYXMubGVuZ3RoJiYoeS5jYW1lcmFzLmxlbmd0aD0wLG49ITApO2ZvcihsZXQgaT0wO2k8dC5sZW5ndGg7aSsrKXtjb25zdCBhPXRbaV07bGV0IHI9bnVsbDtpZihudWxsIT09bSlyPW0uZ2V0Vmlld3BvcnQoYSk7ZWxzZXtjb25zdCB0PWMuZ2V0Vmlld1N1YkltYWdlKHAsYSk7by5iaW5kWFJGcmFtZWJ1ZmZlcihkKSx2b2lkIDAhPT10LmRlcHRoU3RlbmNpbFRleHR1cmUmJmUuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzYwOTYsMzU1Myx0LmRlcHRoU3RlbmNpbFRleHR1cmUsMCksZS5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCwzNjA2NCwzNTUzLHQuY29sb3JUZXh0dXJlLDApLHI9dC52aWV3cG9ydH1jb25zdCBzPWJbaV07cy5tYXRyaXguZnJvbUFycmF5KGEudHJhbnNmb3JtLm1hdHJpeCkscy5wcm9qZWN0aW9uTWF0cml4LmZyb21BcnJheShhLnByb2plY3Rpb25NYXRyaXgpLHMudmlld3BvcnQuc2V0KHIueCxyLnksci53aWR0aCxyLmhlaWdodCksMD09PWkmJnkubWF0cml4LmNvcHkocy5tYXRyaXgpLCEwPT09biYmeS5jYW1lcmFzLnB1c2gocyl9fWNvbnN0IGE9aS5pbnB1dFNvdXJjZXM7Zm9yKGxldCB0PTA7dDxmLmxlbmd0aDt0Kyspe2ZbdF0udXBkYXRlKGFbdF0sbixyKX1rJiZrKHQsbil9KSksdGhpcy5zZXRBbmltYXRpb25Mb29wPWZ1bmN0aW9uKHQpe2s9dH0sdGhpcy5kaXNwb3NlPWZ1bmN0aW9uKCl7fX19ZnVuY3Rpb24gSW10KHQpe2Z1bmN0aW9uIGUoZSxuKXtlLm9wYWNpdHkudmFsdWU9bi5vcGFjaXR5LG4uY29sb3ImJmUuZGlmZnVzZS52YWx1ZS5jb3B5KG4uY29sb3IpLG4uZW1pc3NpdmUmJmUuZW1pc3NpdmUudmFsdWUuY29weShuLmVtaXNzaXZlKS5tdWx0aXBseVNjYWxhcihuLmVtaXNzaXZlSW50ZW5zaXR5KSxuLm1hcCYmKGUubWFwLnZhbHVlPW4ubWFwKSxuLmFscGhhTWFwJiYoZS5hbHBoYU1hcC52YWx1ZT1uLmFscGhhTWFwKSxuLnNwZWN1bGFyTWFwJiYoZS5zcGVjdWxhck1hcC52YWx1ZT1uLnNwZWN1bGFyTWFwKTtjb25zdCBvPXQuZ2V0KG4pLmVudk1hcDtpZihvKXtlLmVudk1hcC52YWx1ZT1vLGUuZmxpcEVudk1hcC52YWx1ZT1vLmlzQ3ViZVRleHR1cmUmJiExPT09by5pc1JlbmRlclRhcmdldFRleHR1cmU/LTE6MSxlLnJlZmxlY3Rpdml0eS52YWx1ZT1uLnJlZmxlY3Rpdml0eSxlLnJlZnJhY3Rpb25SYXRpby52YWx1ZT1uLnJlZnJhY3Rpb25SYXRpbztjb25zdCBpPXQuZ2V0KG8pLl9fbWF4TWlwTGV2ZWw7dm9pZCAwIT09aSYmKGUubWF4TWlwTGV2ZWwudmFsdWU9aSl9bGV0IGksYTtuLmxpZ2h0TWFwJiYoZS5saWdodE1hcC52YWx1ZT1uLmxpZ2h0TWFwLGUubGlnaHRNYXBJbnRlbnNpdHkudmFsdWU9bi5saWdodE1hcEludGVuc2l0eSksbi5hb01hcCYmKGUuYW9NYXAudmFsdWU9bi5hb01hcCxlLmFvTWFwSW50ZW5zaXR5LnZhbHVlPW4uYW9NYXBJbnRlbnNpdHkpLG4ubWFwP2k9bi5tYXA6bi5zcGVjdWxhck1hcD9pPW4uc3BlY3VsYXJNYXA6bi5kaXNwbGFjZW1lbnRNYXA/aT1uLmRpc3BsYWNlbWVudE1hcDpuLm5vcm1hbE1hcD9pPW4ubm9ybWFsTWFwOm4uYnVtcE1hcD9pPW4uYnVtcE1hcDpuLnJvdWdobmVzc01hcD9pPW4ucm91Z2huZXNzTWFwOm4ubWV0YWxuZXNzTWFwP2k9bi5tZXRhbG5lc3NNYXA6bi5hbHBoYU1hcD9pPW4uYWxwaGFNYXA6bi5lbWlzc2l2ZU1hcD9pPW4uZW1pc3NpdmVNYXA6bi5jbGVhcmNvYXRNYXA/aT1uLmNsZWFyY29hdE1hcDpuLmNsZWFyY29hdE5vcm1hbE1hcD9pPW4uY2xlYXJjb2F0Tm9ybWFsTWFwOm4uY2xlYXJjb2F0Um91Z2huZXNzTWFwP2k9bi5jbGVhcmNvYXRSb3VnaG5lc3NNYXA6bi5zcGVjdWxhckludGVuc2l0eU1hcD9pPW4uc3BlY3VsYXJJbnRlbnNpdHlNYXA6bi5zcGVjdWxhclRpbnRNYXAmJihpPW4uc3BlY3VsYXJUaW50TWFwKSx2b2lkIDAhPT1pJiYoaS5pc1dlYkdMUmVuZGVyVGFyZ2V0JiYoaT1pLnRleHR1cmUpLCEwPT09aS5tYXRyaXhBdXRvVXBkYXRlJiZpLnVwZGF0ZU1hdHJpeCgpLGUudXZUcmFuc2Zvcm0udmFsdWUuY29weShpLm1hdHJpeCkpLG4uYW9NYXA/YT1uLmFvTWFwOm4ubGlnaHRNYXAmJihhPW4ubGlnaHRNYXApLHZvaWQgMCE9PWEmJihhLmlzV2ViR0xSZW5kZXJUYXJnZXQmJihhPWEudGV4dHVyZSksITA9PT1hLm1hdHJpeEF1dG9VcGRhdGUmJmEudXBkYXRlTWF0cml4KCksZS51djJUcmFuc2Zvcm0udmFsdWUuY29weShhLm1hdHJpeCkpfWZ1bmN0aW9uIG4oZSxuKXtlLnJvdWdobmVzcy52YWx1ZT1uLnJvdWdobmVzcyxlLm1ldGFsbmVzcy52YWx1ZT1uLm1ldGFsbmVzcyxuLnJvdWdobmVzc01hcCYmKGUucm91Z2huZXNzTWFwLnZhbHVlPW4ucm91Z2huZXNzTWFwKSxuLm1ldGFsbmVzc01hcCYmKGUubWV0YWxuZXNzTWFwLnZhbHVlPW4ubWV0YWxuZXNzTWFwKSxuLmVtaXNzaXZlTWFwJiYoZS5lbWlzc2l2ZU1hcC52YWx1ZT1uLmVtaXNzaXZlTWFwKSxuLmJ1bXBNYXAmJihlLmJ1bXBNYXAudmFsdWU9bi5idW1wTWFwLGUuYnVtcFNjYWxlLnZhbHVlPW4uYnVtcFNjYWxlLDE9PT1uLnNpZGUmJihlLmJ1bXBTY2FsZS52YWx1ZSo9LTEpKSxuLm5vcm1hbE1hcCYmKGUubm9ybWFsTWFwLnZhbHVlPW4ubm9ybWFsTWFwLGUubm9ybWFsU2NhbGUudmFsdWUuY29weShuLm5vcm1hbFNjYWxlKSwxPT09bi5zaWRlJiZlLm5vcm1hbFNjYWxlLnZhbHVlLm5lZ2F0ZSgpKSxuLmRpc3BsYWNlbWVudE1hcCYmKGUuZGlzcGxhY2VtZW50TWFwLnZhbHVlPW4uZGlzcGxhY2VtZW50TWFwLGUuZGlzcGxhY2VtZW50U2NhbGUudmFsdWU9bi5kaXNwbGFjZW1lbnRTY2FsZSxlLmRpc3BsYWNlbWVudEJpYXMudmFsdWU9bi5kaXNwbGFjZW1lbnRCaWFzKTt0LmdldChuKS5lbnZNYXAmJihlLmVudk1hcEludGVuc2l0eS52YWx1ZT1uLmVudk1hcEludGVuc2l0eSl9cmV0dXJue3JlZnJlc2hGb2dVbmlmb3JtczpmdW5jdGlvbiBvKHQsZSl7dC5mb2dDb2xvci52YWx1ZS5jb3B5KGUuY29sb3IpLGUuaXNGb2c/KHQuZm9nTmVhci52YWx1ZT1lLm5lYXIsdC5mb2dGYXIudmFsdWU9ZS5mYXIpOmUuaXNGb2dFeHAyJiYodC5mb2dEZW5zaXR5LnZhbHVlPWUuZGVuc2l0eSl9LHJlZnJlc2hNYXRlcmlhbFVuaWZvcm1zOmZ1bmN0aW9uIGkodCxvLGEscixzKXtvLmlzTWVzaEJhc2ljTWF0ZXJpYWw/ZSh0LG8pOm8uaXNNZXNoTGFtYmVydE1hdGVyaWFsPyhlKHQsbyksKGZ1bmN0aW9uIGwodCxlKXtlLmVtaXNzaXZlTWFwJiYodC5lbWlzc2l2ZU1hcC52YWx1ZT1lLmVtaXNzaXZlTWFwKX0pKHQsbykpOm8uaXNNZXNoVG9vbk1hdGVyaWFsPyhlKHQsbyksKGZ1bmN0aW9uIGModCxlKXtlLmdyYWRpZW50TWFwJiYodC5ncmFkaWVudE1hcC52YWx1ZT1lLmdyYWRpZW50TWFwKTtlLmVtaXNzaXZlTWFwJiYodC5lbWlzc2l2ZU1hcC52YWx1ZT1lLmVtaXNzaXZlTWFwKTtlLmJ1bXBNYXAmJih0LmJ1bXBNYXAudmFsdWU9ZS5idW1wTWFwLHQuYnVtcFNjYWxlLnZhbHVlPWUuYnVtcFNjYWxlLDE9PT1lLnNpZGUmJih0LmJ1bXBTY2FsZS52YWx1ZSo9LTEpKTtlLm5vcm1hbE1hcCYmKHQubm9ybWFsTWFwLnZhbHVlPWUubm9ybWFsTWFwLHQubm9ybWFsU2NhbGUudmFsdWUuY29weShlLm5vcm1hbFNjYWxlKSwxPT09ZS5zaWRlJiZ0Lm5vcm1hbFNjYWxlLnZhbHVlLm5lZ2F0ZSgpKTtlLmRpc3BsYWNlbWVudE1hcCYmKHQuZGlzcGxhY2VtZW50TWFwLnZhbHVlPWUuZGlzcGxhY2VtZW50TWFwLHQuZGlzcGxhY2VtZW50U2NhbGUudmFsdWU9ZS5kaXNwbGFjZW1lbnRTY2FsZSx0LmRpc3BsYWNlbWVudEJpYXMudmFsdWU9ZS5kaXNwbGFjZW1lbnRCaWFzKX0pKHQsbykpOm8uaXNNZXNoUGhvbmdNYXRlcmlhbD8oZSh0LG8pLChmdW5jdGlvbiBkKHQsZSl7dC5zcGVjdWxhci52YWx1ZS5jb3B5KGUuc3BlY3VsYXIpLHQuc2hpbmluZXNzLnZhbHVlPU1hdGgubWF4KGUuc2hpbmluZXNzLDFlLTQpLGUuZW1pc3NpdmVNYXAmJih0LmVtaXNzaXZlTWFwLnZhbHVlPWUuZW1pc3NpdmVNYXApO2UuYnVtcE1hcCYmKHQuYnVtcE1hcC52YWx1ZT1lLmJ1bXBNYXAsdC5idW1wU2NhbGUudmFsdWU9ZS5idW1wU2NhbGUsMT09PWUuc2lkZSYmKHQuYnVtcFNjYWxlLnZhbHVlKj0tMSkpO2Uubm9ybWFsTWFwJiYodC5ub3JtYWxNYXAudmFsdWU9ZS5ub3JtYWxNYXAsdC5ub3JtYWxTY2FsZS52YWx1ZS5jb3B5KGUubm9ybWFsU2NhbGUpLDE9PT1lLnNpZGUmJnQubm9ybWFsU2NhbGUudmFsdWUubmVnYXRlKCkpO2UuZGlzcGxhY2VtZW50TWFwJiYodC5kaXNwbGFjZW1lbnRNYXAudmFsdWU9ZS5kaXNwbGFjZW1lbnRNYXAsdC5kaXNwbGFjZW1lbnRTY2FsZS52YWx1ZT1lLmRpc3BsYWNlbWVudFNjYWxlLHQuZGlzcGxhY2VtZW50Qmlhcy52YWx1ZT1lLmRpc3BsYWNlbWVudEJpYXMpfSkodCxvKSk6by5pc01lc2hTdGFuZGFyZE1hdGVyaWFsPyhlKHQsbyksby5pc01lc2hQaHlzaWNhbE1hdGVyaWFsPyhmdW5jdGlvbiBwKHQsZSxvKXtuKHQsZSksdC5yZWZsZWN0aXZpdHkudmFsdWU9ZS5yZWZsZWN0aXZpdHksdC5jbGVhcmNvYXQudmFsdWU9ZS5jbGVhcmNvYXQsdC5jbGVhcmNvYXRSb3VnaG5lc3MudmFsdWU9ZS5jbGVhcmNvYXRSb3VnaG5lc3MsZS5zaGVlbiYmdC5zaGVlbi52YWx1ZS5jb3B5KGUuc2hlZW4pO2UuY2xlYXJjb2F0TWFwJiYodC5jbGVhcmNvYXRNYXAudmFsdWU9ZS5jbGVhcmNvYXRNYXApO2UuY2xlYXJjb2F0Um91Z2huZXNzTWFwJiYodC5jbGVhcmNvYXRSb3VnaG5lc3NNYXAudmFsdWU9ZS5jbGVhcmNvYXRSb3VnaG5lc3NNYXApO2UuY2xlYXJjb2F0Tm9ybWFsTWFwJiYodC5jbGVhcmNvYXROb3JtYWxTY2FsZS52YWx1ZS5jb3B5KGUuY2xlYXJjb2F0Tm9ybWFsU2NhbGUpLHQuY2xlYXJjb2F0Tm9ybWFsTWFwLnZhbHVlPWUuY2xlYXJjb2F0Tm9ybWFsTWFwLDE9PT1lLnNpZGUmJnQuY2xlYXJjb2F0Tm9ybWFsU2NhbGUudmFsdWUubmVnYXRlKCkpO3QudHJhbnNtaXNzaW9uLnZhbHVlPWUudHJhbnNtaXNzaW9uLGUudHJhbnNtaXNzaW9uTWFwJiYodC50cmFuc21pc3Npb25NYXAudmFsdWU9ZS50cmFuc21pc3Npb25NYXApO2UudHJhbnNtaXNzaW9uPjAmJih0LnRyYW5zbWlzc2lvblNhbXBsZXJNYXAudmFsdWU9by50ZXh0dXJlLHQudHJhbnNtaXNzaW9uU2FtcGxlclNpemUudmFsdWUuc2V0KG8ud2lkdGgsby5oZWlnaHQpKTt0LnRoaWNrbmVzcy52YWx1ZT1lLnRoaWNrbmVzcyxlLnRoaWNrbmVzc01hcCYmKHQudGhpY2tuZXNzTWFwLnZhbHVlPWUudGhpY2tuZXNzTWFwKTt0LmF0dGVudWF0aW9uRGlzdGFuY2UudmFsdWU9ZS5hdHRlbnVhdGlvbkRpc3RhbmNlLHQuYXR0ZW51YXRpb25UaW50LnZhbHVlLmNvcHkoZS5hdHRlbnVhdGlvblRpbnQpLHQuc3BlY3VsYXJJbnRlbnNpdHkudmFsdWU9ZS5zcGVjdWxhckludGVuc2l0eSx0LnNwZWN1bGFyVGludC52YWx1ZS5jb3B5KGUuc3BlY3VsYXJUaW50KSxlLnNwZWN1bGFySW50ZW5zaXR5TWFwJiYodC5zcGVjdWxhckludGVuc2l0eU1hcC52YWx1ZT1lLnNwZWN1bGFySW50ZW5zaXR5TWFwKTtlLnNwZWN1bGFyVGludE1hcCYmKHQuc3BlY3VsYXJUaW50TWFwLnZhbHVlPWUuc3BlY3VsYXJUaW50TWFwKX0pKHQsbyxzKTpuKHQsbykpOm8uaXNNZXNoTWF0Y2FwTWF0ZXJpYWw/KGUodCxvKSwoZnVuY3Rpb24gbSh0LGUpe2UubWF0Y2FwJiYodC5tYXRjYXAudmFsdWU9ZS5tYXRjYXApO2UuYnVtcE1hcCYmKHQuYnVtcE1hcC52YWx1ZT1lLmJ1bXBNYXAsdC5idW1wU2NhbGUudmFsdWU9ZS5idW1wU2NhbGUsMT09PWUuc2lkZSYmKHQuYnVtcFNjYWxlLnZhbHVlKj0tMSkpO2Uubm9ybWFsTWFwJiYodC5ub3JtYWxNYXAudmFsdWU9ZS5ub3JtYWxNYXAsdC5ub3JtYWxTY2FsZS52YWx1ZS5jb3B5KGUubm9ybWFsU2NhbGUpLDE9PT1lLnNpZGUmJnQubm9ybWFsU2NhbGUudmFsdWUubmVnYXRlKCkpO2UuZGlzcGxhY2VtZW50TWFwJiYodC5kaXNwbGFjZW1lbnRNYXAudmFsdWU9ZS5kaXNwbGFjZW1lbnRNYXAsdC5kaXNwbGFjZW1lbnRTY2FsZS52YWx1ZT1lLmRpc3BsYWNlbWVudFNjYWxlLHQuZGlzcGxhY2VtZW50Qmlhcy52YWx1ZT1lLmRpc3BsYWNlbWVudEJpYXMpfSkodCxvKSk6by5pc01lc2hEZXB0aE1hdGVyaWFsPyhlKHQsbyksKGZ1bmN0aW9uIGYodCxlKXtlLmRpc3BsYWNlbWVudE1hcCYmKHQuZGlzcGxhY2VtZW50TWFwLnZhbHVlPWUuZGlzcGxhY2VtZW50TWFwLHQuZGlzcGxhY2VtZW50U2NhbGUudmFsdWU9ZS5kaXNwbGFjZW1lbnRTY2FsZSx0LmRpc3BsYWNlbWVudEJpYXMudmFsdWU9ZS5kaXNwbGFjZW1lbnRCaWFzKX0pKHQsbykpOm8uaXNNZXNoRGlzdGFuY2VNYXRlcmlhbD8oZSh0LG8pLChmdW5jdGlvbiB1KHQsZSl7ZS5kaXNwbGFjZW1lbnRNYXAmJih0LmRpc3BsYWNlbWVudE1hcC52YWx1ZT1lLmRpc3BsYWNlbWVudE1hcCx0LmRpc3BsYWNlbWVudFNjYWxlLnZhbHVlPWUuZGlzcGxhY2VtZW50U2NhbGUsdC5kaXNwbGFjZW1lbnRCaWFzLnZhbHVlPWUuZGlzcGxhY2VtZW50Qmlhcyk7dC5yZWZlcmVuY2VQb3NpdGlvbi52YWx1ZS5jb3B5KGUucmVmZXJlbmNlUG9zaXRpb24pLHQubmVhckRpc3RhbmNlLnZhbHVlPWUubmVhckRpc3RhbmNlLHQuZmFyRGlzdGFuY2UudmFsdWU9ZS5mYXJEaXN0YW5jZX0pKHQsbykpOm8uaXNNZXNoTm9ybWFsTWF0ZXJpYWw/KGUodCxvKSwoZnVuY3Rpb24gZyh0LGUpe2UuYnVtcE1hcCYmKHQuYnVtcE1hcC52YWx1ZT1lLmJ1bXBNYXAsdC5idW1wU2NhbGUudmFsdWU9ZS5idW1wU2NhbGUsMT09PWUuc2lkZSYmKHQuYnVtcFNjYWxlLnZhbHVlKj0tMSkpO2Uubm9ybWFsTWFwJiYodC5ub3JtYWxNYXAudmFsdWU9ZS5ub3JtYWxNYXAsdC5ub3JtYWxTY2FsZS52YWx1ZS5jb3B5KGUubm9ybWFsU2NhbGUpLDE9PT1lLnNpZGUmJnQubm9ybWFsU2NhbGUudmFsdWUubmVnYXRlKCkpO2UuZGlzcGxhY2VtZW50TWFwJiYodC5kaXNwbGFjZW1lbnRNYXAudmFsdWU9ZS5kaXNwbGFjZW1lbnRNYXAsdC5kaXNwbGFjZW1lbnRTY2FsZS52YWx1ZT1lLmRpc3BsYWNlbWVudFNjYWxlLHQuZGlzcGxhY2VtZW50Qmlhcy52YWx1ZT1lLmRpc3BsYWNlbWVudEJpYXMpfSkodCxvKSk6by5pc0xpbmVCYXNpY01hdGVyaWFsPyghKGZ1bmN0aW9uIGgodCxlKXt0LmRpZmZ1c2UudmFsdWUuY29weShlLmNvbG9yKSx0Lm9wYWNpdHkudmFsdWU9ZS5vcGFjaXR5fSkodCxvKSxvLmlzTGluZURhc2hlZE1hdGVyaWFsJiYoZnVuY3Rpb24gYih0LGUpe3QuZGFzaFNpemUudmFsdWU9ZS5kYXNoU2l6ZSx0LnRvdGFsU2l6ZS52YWx1ZT1lLmRhc2hTaXplK2UuZ2FwU2l6ZSx0LnNjYWxlLnZhbHVlPWUuc2NhbGV9KSh0LG8pKTpvLmlzUG9pbnRzTWF0ZXJpYWw/KGZ1bmN0aW9uIHkodCxlLG4sbyl7dC5kaWZmdXNlLnZhbHVlLmNvcHkoZS5jb2xvciksdC5vcGFjaXR5LnZhbHVlPWUub3BhY2l0eSx0LnNpemUudmFsdWU9ZS5zaXplKm4sdC5zY2FsZS52YWx1ZT0uNSpvLGUubWFwJiYodC5tYXAudmFsdWU9ZS5tYXApO2UuYWxwaGFNYXAmJih0LmFscGhhTWFwLnZhbHVlPWUuYWxwaGFNYXApO2xldCBpO2UubWFwP2k9ZS5tYXA6ZS5hbHBoYU1hcCYmKGk9ZS5hbHBoYU1hcCk7dm9pZCAwIT09aSYmKCEwPT09aS5tYXRyaXhBdXRvVXBkYXRlJiZpLnVwZGF0ZU1hdHJpeCgpLHQudXZUcmFuc2Zvcm0udmFsdWUuY29weShpLm1hdHJpeCkpfSkodCxvLGEscik6by5pc1Nwcml0ZU1hdGVyaWFsPyhmdW5jdGlvbiBfKHQsZSl7dC5kaWZmdXNlLnZhbHVlLmNvcHkoZS5jb2xvciksdC5vcGFjaXR5LnZhbHVlPWUub3BhY2l0eSx0LnJvdGF0aW9uLnZhbHVlPWUucm90YXRpb24sZS5tYXAmJih0Lm1hcC52YWx1ZT1lLm1hcCk7ZS5hbHBoYU1hcCYmKHQuYWxwaGFNYXAudmFsdWU9ZS5hbHBoYU1hcCk7bGV0IG47ZS5tYXA/bj1lLm1hcDplLmFscGhhTWFwJiYobj1lLmFscGhhTWFwKTt2b2lkIDAhPT1uJiYoITA9PT1uLm1hdHJpeEF1dG9VcGRhdGUmJm4udXBkYXRlTWF0cml4KCksdC51dlRyYW5zZm9ybS52YWx1ZS5jb3B5KG4ubWF0cml4KSl9KSh0LG8pOm8uaXNTaGFkb3dNYXRlcmlhbD8odC5jb2xvci52YWx1ZS5jb3B5KG8uY29sb3IpLHQub3BhY2l0eS52YWx1ZT1vLm9wYWNpdHkpOm8uaXNTaGFkZXJNYXRlcmlhbCYmKG8udW5pZm9ybXNOZWVkVXBkYXRlPSExKX19fWZ1bmN0aW9uIEhtdCh0PXt9KXtjb25zdCBlPXZvaWQgMCE9PXQuY2FudmFzP3QuY2FudmFzOihmdW5jdGlvbiBuKCl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJjYW52YXMiKTtyZXR1cm4gdC5zdHlsZS5kaXNwbGF5PSJibG9jayIsdH0pKCksbz12b2lkIDAhPT10LmNvbnRleHQ/dC5jb250ZXh0Om51bGwsaT12b2lkIDAhPT10LmFscGhhJiZ0LmFscGhhLGE9dm9pZCAwPT09dC5kZXB0aHx8dC5kZXB0aCxyPXZvaWQgMD09PXQuc3RlbmNpbHx8dC5zdGVuY2lsLHM9dm9pZCAwIT09dC5hbnRpYWxpYXMmJnQuYW50aWFsaWFzLGw9dm9pZCAwPT09dC5wcmVtdWx0aXBsaWVkQWxwaGF8fHQucHJlbXVsdGlwbGllZEFscGhhLGM9dm9pZCAwIT09dC5wcmVzZXJ2ZURyYXdpbmdCdWZmZXImJnQucHJlc2VydmVEcmF3aW5nQnVmZmVyLGQ9dm9pZCAwIT09dC5wb3dlclByZWZlcmVuY2U/dC5wb3dlclByZWZlcmVuY2U6ImRlZmF1bHQiLHA9dm9pZCAwIT09dC5mYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0JiZ0LmZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQ7bGV0IG09bnVsbCxmPW51bGw7Y29uc3QgdT1bXSxnPVtdO3RoaXMuZG9tRWxlbWVudD1lLHRoaXMuZGVidWc9e2NoZWNrU2hhZGVyRXJyb3JzOiEwfSx0aGlzLmF1dG9DbGVhcj0hMCx0aGlzLmF1dG9DbGVhckNvbG9yPSEwLHRoaXMuYXV0b0NsZWFyRGVwdGg9ITAsdGhpcy5hdXRvQ2xlYXJTdGVuY2lsPSEwLHRoaXMuc29ydE9iamVjdHM9ITAsdGhpcy5jbGlwcGluZ1BsYW5lcz1bXSx0aGlzLmxvY2FsQ2xpcHBpbmdFbmFibGVkPSExLHRoaXMuZ2FtbWFGYWN0b3I9Mix0aGlzLm91dHB1dEVuY29kaW5nPVFydCx0aGlzLnBoeXNpY2FsbHlDb3JyZWN0TGlnaHRzPSExLHRoaXMudG9uZU1hcHBpbmc9MCx0aGlzLnRvbmVNYXBwaW5nRXhwb3N1cmU9MTtjb25zdCBoPXRoaXM7bGV0IGI9ITEseT0wLF89MCxDPW51bGwsTT0tMSx2PW51bGw7Y29uc3QgeD1uZXcgdnN0LE89bmV3IHZzdDtsZXQgUD1udWxsLHc9ZS53aWR0aCxrPWUuaGVpZ2h0LFM9MSxEPW51bGwsUj1udWxsO2NvbnN0IEU9bmV3IHZzdCgwLDAsdyxrKSxBPW5ldyB2c3QoMCwwLHcsayk7bGV0IFQ9ITE7Y29uc3QgTj1bXSx6PW5ldyBxY3Q7bGV0IEk9ITEsSD0hMSxGPW51bGw7Y29uc3QgTD1uZXcgb2x0LEI9bmV3IHdzdCxWPXtiYWNrZ3JvdW5kOm51bGwsZm9nOm51bGwsZW52aXJvbm1lbnQ6bnVsbCxvdmVycmlkZU1hdGVyaWFsOm51bGwsaXNTY2VuZTohMH07ZnVuY3Rpb24gaigpe3JldHVybiBudWxsPT09Qz9TOjF9bGV0IFUsVyxHLFkscSxaLFgsSyxKLFEsJCx0dCxldCxudCxvdCxpdCxhdCxydCxzdCxsdCxjdCxkdCxwdCxtdD1vO2Z1bmN0aW9uIGZ0KHQsbil7Zm9yKGxldCBvPTA7bzx0Lmxlbmd0aDtvKyspe2NvbnN0IGk9ZS5nZXRDb250ZXh0KHRbb10sbik7aWYobnVsbCE9PWkpcmV0dXJuIGl9cmV0dXJuIG51bGx9dHJ5e2NvbnN0IHQ9e2FscGhhOmksZGVwdGg6YSxzdGVuY2lsOnIsYW50aWFsaWFzOnMscHJlbXVsdGlwbGllZEFscGhhOmwscHJlc2VydmVEcmF3aW5nQnVmZmVyOmMscG93ZXJQcmVmZXJlbmNlOmQsZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdDpwfTtpZihlLmFkZEV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dGxvc3QiLGh0LCExKSxlLmFkZEV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dHJlc3RvcmVkIixidCwhMSksbnVsbD09PW10KXtjb25zdCBlPVsid2ViZ2wyIiwid2ViZ2wiLCJleHBlcmltZW50YWwtd2ViZ2wiXTtpZighMD09PWguaXNXZWJHTDFSZW5kZXJlciYmZS5zaGlmdCgpLG10PWZ0KGUsdCksbnVsbD09PW10KXRocm93IGZ0KGUpP25ldyBFcnJvcigiRXJyb3IgY3JlYXRpbmcgV2ViR0wgY29udGV4dCB3aXRoIHlvdXIgc2VsZWN0ZWQgYXR0cmlidXRlcy4iKTpuZXcgRXJyb3IoIkVycm9yIGNyZWF0aW5nIFdlYkdMIGNvbnRleHQuIil9dm9pZCAwPT09bXQuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0JiYobXQuZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0PWZ1bmN0aW9uKCl7cmV0dXJue3JhbmdlTWluOjEscmFuZ2VNYXg6MSxwcmVjaXNpb246MX19KX1jYXRjaCh0KXt0aHJvdyBjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAiK3QubWVzc2FnZSksdH1mdW5jdGlvbiB1dCgpe1U9bmV3IHpkdChtdCksVz1uZXcgb2R0KG10LFUsdCksVS5pbml0KFcpLGR0PW5ldyBSbXQobXQsVSxXKSxHPW5ldyBTbXQobXQsVSxXKSxOWzBdPTEwMjksWT1uZXcgRmR0KG10KSxxPW5ldyB1bXQsWj1uZXcgRG10KG10LFUsRyxxLFcsZHQsWSksWD1uZXcgYWR0KGgpLEs9bmV3IE5kdChoKSxKPW5ldyBYY3QobXQsVykscHQ9bmV3IGVkdChtdCxVLEosVyksUT1uZXcgSWR0KG10LEosWSxwdCksJD1uZXcgamR0KG10LFEsSixZKSxzdD1uZXcgVmR0KG10KSxpdD1uZXcgaWR0KHEpLHR0PW5ldyBmbXQoaCxYLEssVSxXLHB0LGl0KSxldD1uZXcgSW10KHEpLG50PW5ldyB5bXQocSksb3Q9bmV3IE9tdChVLFcpLHJ0PW5ldyB0ZHQoaCxYLEcsJCxsKSxhdD1uZXcga210KGgsJCxXKSxsdD1uZXcgbmR0KG10LFUsWSxXKSxjdD1uZXcgSGR0KG10LFUsWSxXKSxZLnByb2dyYW1zPXR0LnByb2dyYW1zLGguY2FwYWJpbGl0aWVzPVcsaC5leHRlbnNpb25zPVUsaC5wcm9wZXJ0aWVzPXEsaC5yZW5kZXJMaXN0cz1udCxoLnNoYWRvd01hcD1hdCxoLnN0YXRlPUcsaC5pbmZvPVl9dXQoKTtjb25zdCBndD1uZXcgem10KGgsbXQpO2Z1bmN0aW9uIGh0KHQpe3QucHJldmVudERlZmF1bHQoKSxjb25zb2xlLmxvZygiVEhSRUUuV2ViR0xSZW5kZXJlcjogQ29udGV4dCBMb3N0LiIpLGI9ITB9ZnVuY3Rpb24gYnQoKXtjb25zb2xlLmxvZygiVEhSRUUuV2ViR0xSZW5kZXJlcjogQ29udGV4dCBSZXN0b3JlZC4iKSxiPSExO2NvbnN0IHQ9WS5hdXRvUmVzZXQsZT1hdC5lbmFibGVkLG49YXQuYXV0b1VwZGF0ZSxvPWF0Lm5lZWRzVXBkYXRlLGk9YXQudHlwZTt1dCgpLFkuYXV0b1Jlc2V0PXQsYXQuZW5hYmxlZD1lLGF0LmF1dG9VcGRhdGU9bixhdC5uZWVkc1VwZGF0ZT1vLGF0LnR5cGU9aX1mdW5jdGlvbiB5dCh0KXtjb25zdCBlPXQudGFyZ2V0O2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIseXQpLChmdW5jdGlvbiBuKHQpeyhmdW5jdGlvbiBlKHQpe2NvbnN0IGU9cS5nZXQodCkucHJvZ3JhbXM7dm9pZCAwIT09ZSYmZS5mb3JFYWNoKChmdW5jdGlvbih0KXt0dC5yZWxlYXNlUHJvZ3JhbSh0KX0pKX0pKHQpLHEucmVtb3ZlKHQpfSkoZSl9dGhpcy54cj1ndCx0aGlzLmdldENvbnRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4gbXR9LHRoaXMuZ2V0Q29udGV4dEF0dHJpYnV0ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gbXQuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKX0sdGhpcy5mb3JjZUNvbnRleHRMb3NzPWZ1bmN0aW9uKCl7Y29uc3QgdD1VLmdldCgiV0VCR0xfbG9zZV9jb250ZXh0Iik7dCYmdC5sb3NlQ29udGV4dCgpfSx0aGlzLmZvcmNlQ29udGV4dFJlc3RvcmU9ZnVuY3Rpb24oKXtjb25zdCB0PVUuZ2V0KCJXRUJHTF9sb3NlX2NvbnRleHQiKTt0JiZ0LnJlc3RvcmVDb250ZXh0KCl9LHRoaXMuZ2V0UGl4ZWxSYXRpbz1mdW5jdGlvbigpe3JldHVybiBTfSx0aGlzLnNldFBpeGVsUmF0aW89ZnVuY3Rpb24odCl7dm9pZCAwIT09dCYmKFM9dCx0aGlzLnNldFNpemUodyxrLCExKSl9LHRoaXMuZ2V0U2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gdC5zZXQodyxrKX0sdGhpcy5zZXRTaXplPWZ1bmN0aW9uKHQsbixvKXtndC5pc1ByZXNlbnRpbmc/Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiBDYW4ndCBjaGFuZ2Ugc2l6ZSB3aGlsZSBWUiBkZXZpY2UgaXMgcHJlc2VudGluZy4iKToodz10LGs9bixlLndpZHRoPU1hdGguZmxvb3IodCpTKSxlLmhlaWdodD1NYXRoLmZsb29yKG4qUyksITEhPT1vJiYoZS5zdHlsZS53aWR0aD10KyJweCIsZS5zdHlsZS5oZWlnaHQ9bisicHgiKSx0aGlzLnNldFZpZXdwb3J0KDAsMCx0LG4pKX0sdGhpcy5nZXREcmF3aW5nQnVmZmVyU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gdC5zZXQodypTLGsqUykuZmxvb3IoKX0sdGhpcy5zZXREcmF3aW5nQnVmZmVyU2l6ZT1mdW5jdGlvbih0LG4sbyl7dz10LGs9bixTPW8sZS53aWR0aD1NYXRoLmZsb29yKHQqbyksZS5oZWlnaHQ9TWF0aC5mbG9vcihuKm8pLHRoaXMuc2V0Vmlld3BvcnQoMCwwLHQsbil9LHRoaXMuZ2V0Q3VycmVudFZpZXdwb3J0PWZ1bmN0aW9uKHQpe3JldHVybiB0LmNvcHkoeCl9LHRoaXMuZ2V0Vmlld3BvcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQuY29weShFKX0sdGhpcy5zZXRWaWV3cG9ydD1mdW5jdGlvbih0LGUsbixvKXt0LmlzVmVjdG9yND9FLnNldCh0LngsdC55LHQueix0LncpOkUuc2V0KHQsZSxuLG8pLEcudmlld3BvcnQoeC5jb3B5KEUpLm11bHRpcGx5U2NhbGFyKFMpLmZsb29yKCkpfSx0aGlzLmdldFNjaXNzb3I9ZnVuY3Rpb24odCl7cmV0dXJuIHQuY29weShBKX0sdGhpcy5zZXRTY2lzc29yPWZ1bmN0aW9uKHQsZSxuLG8pe3QuaXNWZWN0b3I0P0Euc2V0KHQueCx0LnksdC56LHQudyk6QS5zZXQodCxlLG4sbyksRy5zY2lzc29yKE8uY29weShBKS5tdWx0aXBseVNjYWxhcihTKS5mbG9vcigpKX0sdGhpcy5nZXRTY2lzc29yVGVzdD1mdW5jdGlvbigpe3JldHVybiBUfSx0aGlzLnNldFNjaXNzb3JUZXN0PWZ1bmN0aW9uKHQpe0cuc2V0U2Npc3NvclRlc3QoVD10KX0sdGhpcy5zZXRPcGFxdWVTb3J0PWZ1bmN0aW9uKHQpe0Q9dH0sdGhpcy5zZXRUcmFuc3BhcmVudFNvcnQ9ZnVuY3Rpb24odCl7Uj10fSx0aGlzLmdldENsZWFyQ29sb3I9ZnVuY3Rpb24odCl7cmV0dXJuIHQuY29weShydC5nZXRDbGVhckNvbG9yKCkpfSx0aGlzLnNldENsZWFyQ29sb3I9ZnVuY3Rpb24oKXtydC5zZXRDbGVhckNvbG9yLmFwcGx5KHJ0LGFyZ3VtZW50cyl9LHRoaXMuZ2V0Q2xlYXJBbHBoYT1mdW5jdGlvbigpe3JldHVybiBydC5nZXRDbGVhckFscGhhKCl9LHRoaXMuc2V0Q2xlYXJBbHBoYT1mdW5jdGlvbigpe3J0LnNldENsZWFyQWxwaGEuYXBwbHkocnQsYXJndW1lbnRzKX0sdGhpcy5jbGVhcj1mdW5jdGlvbih0LGUsbil7bGV0IG89MDsodm9pZCAwPT09dHx8dCkmJihvfD0xNjM4NCksKHZvaWQgMD09PWV8fGUpJiYob3w9MjU2KSwodm9pZCAwPT09bnx8bikmJihvfD0xMDI0KSxtdC5jbGVhcihvKX0sdGhpcy5jbGVhckNvbG9yPWZ1bmN0aW9uKCl7dGhpcy5jbGVhcighMCwhMSwhMSl9LHRoaXMuY2xlYXJEZXB0aD1mdW5jdGlvbigpe3RoaXMuY2xlYXIoITEsITAsITEpfSx0aGlzLmNsZWFyU3RlbmNpbD1mdW5jdGlvbigpe3RoaXMuY2xlYXIoITEsITEsITApfSx0aGlzLmRpc3Bvc2U9ZnVuY3Rpb24oKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dGxvc3QiLGh0LCExKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dHJlc3RvcmVkIixidCwhMSksbnQuZGlzcG9zZSgpLG90LmRpc3Bvc2UoKSxxLmRpc3Bvc2UoKSxYLmRpc3Bvc2UoKSxLLmRpc3Bvc2UoKSwkLmRpc3Bvc2UoKSxwdC5kaXNwb3NlKCksZ3QuZGlzcG9zZSgpLGd0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlc3Npb25zdGFydCIsQ3QpLGd0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlc3Npb25lbmQiLE10KSxGJiYoRi5kaXNwb3NlKCksRj1udWxsKSx2dC5zdG9wKCl9LHRoaXMucmVuZGVyQnVmZmVySW1tZWRpYXRlPWZ1bmN0aW9uKHQsZSl7cHQuaW5pdEF0dHJpYnV0ZXMoKTtjb25zdCBuPXEuZ2V0KHQpO3QuaGFzUG9zaXRpb25zJiYhbi5wb3NpdGlvbiYmKG4ucG9zaXRpb249bXQuY3JlYXRlQnVmZmVyKCkpLHQuaGFzTm9ybWFscyYmIW4ubm9ybWFsJiYobi5ub3JtYWw9bXQuY3JlYXRlQnVmZmVyKCkpLHQuaGFzVXZzJiYhbi51diYmKG4udXY9bXQuY3JlYXRlQnVmZmVyKCkpLHQuaGFzQ29sb3JzJiYhbi5jb2xvciYmKG4uY29sb3I9bXQuY3JlYXRlQnVmZmVyKCkpO2NvbnN0IG89ZS5nZXRBdHRyaWJ1dGVzKCk7dC5oYXNQb3NpdGlvbnMmJihtdC5iaW5kQnVmZmVyKDM0OTYyLG4ucG9zaXRpb24pLG10LmJ1ZmZlckRhdGEoMzQ5NjIsdC5wb3NpdGlvbkFycmF5LDM1MDQ4KSxwdC5lbmFibGVBdHRyaWJ1dGUoby5wb3NpdGlvbiksbXQudmVydGV4QXR0cmliUG9pbnRlcihvLnBvc2l0aW9uLDMsNTEyNiwhMSwwLDApKSx0Lmhhc05vcm1hbHMmJihtdC5iaW5kQnVmZmVyKDM0OTYyLG4ubm9ybWFsKSxtdC5idWZmZXJEYXRhKDM0OTYyLHQubm9ybWFsQXJyYXksMzUwNDgpLHB0LmVuYWJsZUF0dHJpYnV0ZShvLm5vcm1hbCksbXQudmVydGV4QXR0cmliUG9pbnRlcihvLm5vcm1hbCwzLDUxMjYsITEsMCwwKSksdC5oYXNVdnMmJihtdC5iaW5kQnVmZmVyKDM0OTYyLG4udXYpLG10LmJ1ZmZlckRhdGEoMzQ5NjIsdC51dkFycmF5LDM1MDQ4KSxwdC5lbmFibGVBdHRyaWJ1dGUoby51diksbXQudmVydGV4QXR0cmliUG9pbnRlcihvLnV2LDIsNTEyNiwhMSwwLDApKSx0Lmhhc0NvbG9ycyYmKG10LmJpbmRCdWZmZXIoMzQ5NjIsbi5jb2xvciksbXQuYnVmZmVyRGF0YSgzNDk2Mix0LmNvbG9yQXJyYXksMzUwNDgpLHB0LmVuYWJsZUF0dHJpYnV0ZShvLmNvbG9yKSxtdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKG8uY29sb3IsMyw1MTI2LCExLDAsMCkpLHB0LmRpc2FibGVVbnVzZWRBdHRyaWJ1dGVzKCksbXQuZHJhd0FycmF5cyg0LDAsdC5jb3VudCksdC5jb3VudD0wfSx0aGlzLnJlbmRlckJ1ZmZlckRpcmVjdD1mdW5jdGlvbih0LGUsbixvLGksYSl7bnVsbD09PWUmJihlPVYpO2NvbnN0IHI9aS5pc01lc2gmJmkubWF0cml4V29ybGQuZGV0ZXJtaW5hbnQoKTwwLHM9U3QodCxlLG8saSk7Ry5zZXRNYXRlcmlhbChvLHIpO2xldCBsPW4uaW5kZXg7Y29uc3QgYz1uLmF0dHJpYnV0ZXMucG9zaXRpb247aWYobnVsbD09PWwpe2lmKHZvaWQgMD09PWN8fDA9PT1jLmNvdW50KXJldHVybn1lbHNlIGlmKDA9PT1sLmNvdW50KXJldHVybjtsZXQgZCxwPTE7ITA9PT1vLndpcmVmcmFtZSYmKGw9US5nZXRXaXJlZnJhbWVBdHRyaWJ1dGUobikscD0yKSx2b2lkIDA9PT1uLm1vcnBoQXR0cmlidXRlcy5wb3NpdGlvbiYmdm9pZCAwPT09bi5tb3JwaEF0dHJpYnV0ZXMubm9ybWFsfHxzdC51cGRhdGUoaSxuLG8scykscHQuc2V0dXAoaSxvLHMsbixsKTtsZXQgbT1sdDtudWxsIT09bCYmKGQ9Si5nZXQobCksbT1jdCxtLnNldEluZGV4KGQpKTtjb25zdCBmPW51bGwhPT1sP2wuY291bnQ6Yy5jb3VudCx1PW4uZHJhd1JhbmdlLnN0YXJ0KnAsZz1uLmRyYXdSYW5nZS5jb3VudCpwLGg9bnVsbCE9PWE/YS5zdGFydCpwOjAsYj1udWxsIT09YT9hLmNvdW50KnA6MS8wLHk9TWF0aC5tYXgodSxoKSxfPU1hdGgubWluKGYsdStnLGgrYiktMSxDPU1hdGgubWF4KDAsXy15KzEpO2lmKDAhPT1DKXtpZihpLmlzTWVzaCkhMD09PW8ud2lyZWZyYW1lPyhHLnNldExpbmVXaWR0aChvLndpcmVmcmFtZUxpbmV3aWR0aCpqKCkpLG0uc2V0TW9kZSgxKSk6bS5zZXRNb2RlKDQpO2Vsc2UgaWYoaS5pc0xpbmUpe2xldCB0PW8ubGluZXdpZHRoO3ZvaWQgMD09PXQmJih0PTEpLEcuc2V0TGluZVdpZHRoKHQqaigpKSxtLnNldE1vZGUoaS5pc0xpbmVTZWdtZW50cz8xOmkuaXNMaW5lTG9vcD8yOjMpfWVsc2UgaS5pc1BvaW50cz9tLnNldE1vZGUoMCk6aS5pc1Nwcml0ZSYmbS5zZXRNb2RlKDQpO2lmKGkuaXNJbnN0YW5jZWRNZXNoKW0ucmVuZGVySW5zdGFuY2VzKHksQyxpLmNvdW50KTtlbHNlIGlmKG4uaXNJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSl7Y29uc3QgdD1NYXRoLm1pbihuLmluc3RhbmNlQ291bnQsbi5fbWF4SW5zdGFuY2VDb3VudCk7bS5yZW5kZXJJbnN0YW5jZXMoeSxDLHQpfWVsc2UgbS5yZW5kZXIoeSxDKX19LHRoaXMuY29tcGlsZT1mdW5jdGlvbih0LGUpe2Y9b3QuZ2V0KHQpLGYuaW5pdCgpLGcucHVzaChmKSx0LnRyYXZlcnNlVmlzaWJsZSgoZnVuY3Rpb24odCl7dC5pc0xpZ2h0JiZ0LmxheWVycy50ZXN0KGUubGF5ZXJzKSYmKGYucHVzaExpZ2h0KHQpLHQuY2FzdFNoYWRvdyYmZi5wdXNoU2hhZG93KHQpKX0pKSxmLnNldHVwTGlnaHRzKCksdC50cmF2ZXJzZSgoZnVuY3Rpb24oZSl7Y29uc3Qgbj1lLm1hdGVyaWFsO2lmKG4paWYoQXJyYXkuaXNBcnJheShuKSlmb3IobGV0IG89MDtvPG4ubGVuZ3RoO28rKyl7d3QobltvXSx0LGUpfWVsc2Ugd3Qobix0LGUpfSkpLGcucG9wKCksZj1udWxsfTtsZXQgX3Q9bnVsbDtmdW5jdGlvbiBDdCgpe3Z0LnN0b3AoKX1mdW5jdGlvbiBNdCgpe3Z0LnN0YXJ0KCl9Y29uc3QgdnQ9bmV3IFpjdDtmdW5jdGlvbiB4dCh0LGUsbixvKXtpZighMT09PXQudmlzaWJsZSlyZXR1cm47aWYodC5sYXllcnMudGVzdChlLmxheWVycykpaWYodC5pc0dyb3VwKW49dC5yZW5kZXJPcmRlcjtlbHNlIGlmKHQuaXNMT0QpITA9PT10LmF1dG9VcGRhdGUmJnQudXBkYXRlKGUpO2Vsc2UgaWYodC5pc0xpZ2h0KWYucHVzaExpZ2h0KHQpLHQuY2FzdFNoYWRvdyYmZi5wdXNoU2hhZG93KHQpO2Vsc2UgaWYodC5pc1Nwcml0ZSl7aWYoIXQuZnJ1c3R1bUN1bGxlZHx8ei5pbnRlcnNlY3RzU3ByaXRlKHQpKXtvJiZCLnNldEZyb21NYXRyaXhQb3NpdGlvbih0Lm1hdHJpeFdvcmxkKS5hcHBseU1hdHJpeDQoTCk7Y29uc3QgZT0kLnVwZGF0ZSh0KSxpPXQubWF0ZXJpYWw7aS52aXNpYmxlJiZtLnB1c2godCxlLGksbixCLnosbnVsbCl9fWVsc2UgaWYodC5pc0ltbWVkaWF0ZVJlbmRlck9iamVjdClvJiZCLnNldEZyb21NYXRyaXhQb3NpdGlvbih0Lm1hdHJpeFdvcmxkKS5hcHBseU1hdHJpeDQoTCksbS5wdXNoKHQsbnVsbCx0Lm1hdGVyaWFsLG4sQi56LG51bGwpO2Vsc2UgaWYoKHQuaXNNZXNofHx0LmlzTGluZXx8dC5pc1BvaW50cykmJih0LmlzU2tpbm5lZE1lc2gmJnQuc2tlbGV0b24uZnJhbWUhPT1ZLnJlbmRlci5mcmFtZSYmKHQuc2tlbGV0b24udXBkYXRlKCksdC5za2VsZXRvbi5mcmFtZT1ZLnJlbmRlci5mcmFtZSksIXQuZnJ1c3R1bUN1bGxlZHx8ei5pbnRlcnNlY3RzT2JqZWN0KHQpKSl7byYmQi5zZXRGcm9tTWF0cml4UG9zaXRpb24odC5tYXRyaXhXb3JsZCkuYXBwbHlNYXRyaXg0KEwpO2NvbnN0IGU9JC51cGRhdGUodCksaT10Lm1hdGVyaWFsO2lmKEFycmF5LmlzQXJyYXkoaSkpe2NvbnN0IG89ZS5ncm91cHM7Zm9yKGxldCBhPTAscj1vLmxlbmd0aDthPHI7YSsrKXtjb25zdCByPW9bYV0scz1pW3IubWF0ZXJpYWxJbmRleF07cyYmcy52aXNpYmxlJiZtLnB1c2godCxlLHMsbixCLnoscil9fWVsc2UgaS52aXNpYmxlJiZtLnB1c2godCxlLGksbixCLnosbnVsbCl9Y29uc3QgaT10LmNoaWxkcmVuO2ZvcihsZXQgdD0wLGE9aS5sZW5ndGg7dDxhO3QrKyl4dChpW3RdLGUsbixvKX1mdW5jdGlvbiBPdCh0LGUsbil7Y29uc3Qgbz0hMD09PWUuaXNTY2VuZT9lLm92ZXJyaWRlTWF0ZXJpYWw6bnVsbDtpZihuLmlzQXJyYXlDYW1lcmEpe2NvbnN0IGk9bi5jYW1lcmFzO2ZvcihsZXQgbj0wLGE9aS5sZW5ndGg7bjxhO24rKyl7Y29uc3QgYT1pW25dO0cudmlld3BvcnQoeC5jb3B5KGEudmlld3BvcnQpKSxmLnNldHVwTGlnaHRzVmlldyhhKTtmb3IobGV0IG49MCxpPXQubGVuZ3RoO248aTtuKyspe2NvbnN0IGk9dFtuXSxyPWkub2JqZWN0LHM9aS5nZW9tZXRyeSxsPW51bGw9PT1vP2kubWF0ZXJpYWw6byxjPWkuZ3JvdXA7ci5sYXllcnMudGVzdChhLmxheWVycykmJlB0KHIsZSxhLHMsbCxjKX19fWVsc2UgZm9yKGxldCBpPTAsYT10Lmxlbmd0aDtpPGE7aSsrKXtjb25zdCBhPXRbaV07UHQoYS5vYmplY3QsZSxuLGEuZ2VvbWV0cnksbnVsbD09PW8/YS5tYXRlcmlhbDpvLGEuZ3JvdXApfX1mdW5jdGlvbiBQdCh0LGUsbixvLGksYSl7aWYodC5vbkJlZm9yZVJlbmRlcihoLGUsbixvLGksYSksdC5tb2RlbFZpZXdNYXRyaXgubXVsdGlwbHlNYXRyaWNlcyhuLm1hdHJpeFdvcmxkSW52ZXJzZSx0Lm1hdHJpeFdvcmxkKSx0Lm5vcm1hbE1hdHJpeC5nZXROb3JtYWxNYXRyaXgodC5tb2RlbFZpZXdNYXRyaXgpLHQuaXNJbW1lZGlhdGVSZW5kZXJPYmplY3Qpe2NvbnN0IG89U3QobixlLGksdCk7Ry5zZXRNYXRlcmlhbChpKSxwdC5yZXNldCgpLChmdW5jdGlvbiByKHQsZSl7dC5yZW5kZXIoKGZ1bmN0aW9uKHQpe2gucmVuZGVyQnVmZmVySW1tZWRpYXRlKHQsZSl9KSl9KSh0LG8pfWVsc2UhMD09PWkudHJhbnNwYXJlbnQmJjI9PT1pLnNpZGU/KGkuc2lkZT0xLGkubmVlZHNVcGRhdGU9ITAsaC5yZW5kZXJCdWZmZXJEaXJlY3QobixlLG8saSx0LGEpLGkuc2lkZT0wLGkubmVlZHNVcGRhdGU9ITAsaC5yZW5kZXJCdWZmZXJEaXJlY3QobixlLG8saSx0LGEpLGkuc2lkZT0yKTpoLnJlbmRlckJ1ZmZlckRpcmVjdChuLGUsbyxpLHQsYSk7dC5vbkFmdGVyUmVuZGVyKGgsZSxuLG8saSxhKX1mdW5jdGlvbiB3dCh0LGUsbil7ITAhPT1lLmlzU2NlbmUmJihlPVYpO2NvbnN0IG89cS5nZXQodCksaT1mLnN0YXRlLmxpZ2h0cyxhPWkuc3RhdGUudmVyc2lvbixyPXR0LmdldFBhcmFtZXRlcnModCxpLnN0YXRlLGYuc3RhdGUuc2hhZG93c0FycmF5LGUsbikscz10dC5nZXRQcm9ncmFtQ2FjaGVLZXkocik7bGV0IGw9by5wcm9ncmFtcztvLmVudmlyb25tZW50PXQuaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD9lLmVudmlyb25tZW50Om51bGwsby5mb2c9ZS5mb2csby5lbnZNYXA9KHQuaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD9LOlgpLmdldCh0LmVudk1hcHx8by5lbnZpcm9ubWVudCksdm9pZCAwPT09bCYmKHQuYWRkRXZlbnRMaXN0ZW5lcigiZGlzcG9zZSIseXQpLGw9bmV3IE1hcCxvLnByb2dyYW1zPWwpO2xldCBjPWwuZ2V0KHMpO2lmKHZvaWQgMCE9PWMpe2lmKG8uY3VycmVudFByb2dyYW09PT1jJiZvLmxpZ2h0c1N0YXRlVmVyc2lvbj09PWEpcmV0dXJuIGt0KHQsciksY31lbHNlIHIudW5pZm9ybXM9dHQuZ2V0VW5pZm9ybXModCksdC5vbkJ1aWxkKHIsaCksdC5vbkJlZm9yZUNvbXBpbGUocixoKSxjPXR0LmFjcXVpcmVQcm9ncmFtKHIscyksbC5zZXQocyxjKSxvLnVuaWZvcm1zPXIudW5pZm9ybXM7Y29uc3QgZD1vLnVuaWZvcm1zOyh0LmlzU2hhZGVyTWF0ZXJpYWx8fHQuaXNSYXdTaGFkZXJNYXRlcmlhbCkmJiEwIT09dC5jbGlwcGluZ3x8KGQuY2xpcHBpbmdQbGFuZXM9aXQudW5pZm9ybSksa3QodCxyKSxvLm5lZWRzTGlnaHRzPShmdW5jdGlvbiBwKHQpe3JldHVybiB0LmlzTWVzaExhbWJlcnRNYXRlcmlhbHx8dC5pc01lc2hUb29uTWF0ZXJpYWx8fHQuaXNNZXNoUGhvbmdNYXRlcmlhbHx8dC5pc01lc2hTdGFuZGFyZE1hdGVyaWFsfHx0LmlzU2hhZG93TWF0ZXJpYWx8fHQuaXNTaGFkZXJNYXRlcmlhbCYmITA9PT10LmxpZ2h0c30pKHQpLG8ubGlnaHRzU3RhdGVWZXJzaW9uPWEsby5uZWVkc0xpZ2h0cyYmKGQuYW1iaWVudExpZ2h0Q29sb3IudmFsdWU9aS5zdGF0ZS5hbWJpZW50LGQubGlnaHRQcm9iZS52YWx1ZT1pLnN0YXRlLnByb2JlLGQuZGlyZWN0aW9uYWxMaWdodHMudmFsdWU9aS5zdGF0ZS5kaXJlY3Rpb25hbCxkLmRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzLnZhbHVlPWkuc3RhdGUuZGlyZWN0aW9uYWxTaGFkb3csZC5zcG90TGlnaHRzLnZhbHVlPWkuc3RhdGUuc3BvdCxkLnNwb3RMaWdodFNoYWRvd3MudmFsdWU9aS5zdGF0ZS5zcG90U2hhZG93LGQucmVjdEFyZWFMaWdodHMudmFsdWU9aS5zdGF0ZS5yZWN0QXJlYSxkLmx0Y18xLnZhbHVlPWkuc3RhdGUucmVjdEFyZWFMVEMxLGQubHRjXzIudmFsdWU9aS5zdGF0ZS5yZWN0QXJlYUxUQzIsZC5wb2ludExpZ2h0cy52YWx1ZT1pLnN0YXRlLnBvaW50LGQucG9pbnRMaWdodFNoYWRvd3MudmFsdWU9aS5zdGF0ZS5wb2ludFNoYWRvdyxkLmhlbWlzcGhlcmVMaWdodHMudmFsdWU9aS5zdGF0ZS5oZW1pLGQuZGlyZWN0aW9uYWxTaGFkb3dNYXAudmFsdWU9aS5zdGF0ZS5kaXJlY3Rpb25hbFNoYWRvd01hcCxkLmRpcmVjdGlvbmFsU2hhZG93TWF0cml4LnZhbHVlPWkuc3RhdGUuZGlyZWN0aW9uYWxTaGFkb3dNYXRyaXgsZC5zcG90U2hhZG93TWFwLnZhbHVlPWkuc3RhdGUuc3BvdFNoYWRvd01hcCxkLnNwb3RTaGFkb3dNYXRyaXgudmFsdWU9aS5zdGF0ZS5zcG90U2hhZG93TWF0cml4LGQucG9pbnRTaGFkb3dNYXAudmFsdWU9aS5zdGF0ZS5wb2ludFNoYWRvd01hcCxkLnBvaW50U2hhZG93TWF0cml4LnZhbHVlPWkuc3RhdGUucG9pbnRTaGFkb3dNYXRyaXgpO2NvbnN0IG09Yy5nZXRVbmlmb3JtcygpLHU9WXB0LnNlcVdpdGhWYWx1ZShtLnNlcSxkKTtyZXR1cm4gby5jdXJyZW50UHJvZ3JhbT1jLG8udW5pZm9ybXNMaXN0PXUsY31mdW5jdGlvbiBrdCh0LGUpe2NvbnN0IG49cS5nZXQodCk7bi5vdXRwdXRFbmNvZGluZz1lLm91dHB1dEVuY29kaW5nLG4uaW5zdGFuY2luZz1lLmluc3RhbmNpbmcsbi5za2lubmluZz1lLnNraW5uaW5nLG4ubW9ycGhUYXJnZXRzPWUubW9ycGhUYXJnZXRzLG4ubW9ycGhOb3JtYWxzPWUubW9ycGhOb3JtYWxzLG4ubnVtQ2xpcHBpbmdQbGFuZXM9ZS5udW1DbGlwcGluZ1BsYW5lcyxuLm51bUludGVyc2VjdGlvbj1lLm51bUNsaXBJbnRlcnNlY3Rpb24sbi52ZXJ0ZXhBbHBoYXM9ZS52ZXJ0ZXhBbHBoYXMsbi52ZXJ0ZXhUYW5nZW50cz1lLnZlcnRleFRhbmdlbnRzfWZ1bmN0aW9uIFN0KHQsZSxuLG8peyEwIT09ZS5pc1NjZW5lJiYoZT1WKSxaLnJlc2V0VGV4dHVyZVVuaXRzKCk7Y29uc3QgaT1lLmZvZyxhPW51bGw9PT1DP2gub3V0cHV0RW5jb2Rpbmc6Qy50ZXh0dXJlLmVuY29kaW5nLHI9KG4uaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD9LOlgpLmdldChuLmVudk1hcHx8KG4uaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD9lLmVudmlyb25tZW50Om51bGwpKSxzPSEwPT09bi52ZXJ0ZXhDb2xvcnMmJiEhby5nZW9tZXRyeSYmISFvLmdlb21ldHJ5LmF0dHJpYnV0ZXMuY29sb3ImJjQ9PT1vLmdlb21ldHJ5LmF0dHJpYnV0ZXMuY29sb3IuaXRlbVNpemUsbD0hIW8uZ2VvbWV0cnkmJiEhby5nZW9tZXRyeS5hdHRyaWJ1dGVzLnRhbmdlbnQsYz0hIW8uZ2VvbWV0cnkmJiEhby5nZW9tZXRyeS5tb3JwaEF0dHJpYnV0ZXMucG9zaXRpb24sZD0hIW8uZ2VvbWV0cnkmJiEhby5nZW9tZXRyeS5tb3JwaEF0dHJpYnV0ZXMubm9ybWFsLHA9cS5nZXQobiksbT1mLnN0YXRlLmxpZ2h0cztpZighMD09PUkmJighMD09PUh8fHQhPT12KSl7aXQuc2V0U3RhdGUobix0LHQ9PT12JiZuLmlkPT09TSl9bGV0IHU9ITE7bi52ZXJzaW9uPT09cC5fX3ZlcnNpb24/cC5uZWVkc0xpZ2h0cyYmcC5saWdodHNTdGF0ZVZlcnNpb24hPT1tLnN0YXRlLnZlcnNpb258fHAub3V0cHV0RW5jb2RpbmchPT1hfHxvLmlzSW5zdGFuY2VkTWVzaCYmITE9PT1wLmluc3RhbmNpbmc/dT0hMDpvLmlzSW5zdGFuY2VkTWVzaHx8ITAhPT1wLmluc3RhbmNpbmc/by5pc1NraW5uZWRNZXNoJiYhMT09PXAuc2tpbm5pbmc/dT0hMDpvLmlzU2tpbm5lZE1lc2h8fCEwIT09cC5za2lubmluZz9wLmVudk1hcCE9PXJ8fG4uZm9nJiZwLmZvZyE9PWk/dT0hMDp2b2lkIDA9PT1wLm51bUNsaXBwaW5nUGxhbmVzfHxwLm51bUNsaXBwaW5nUGxhbmVzPT09aXQubnVtUGxhbmVzJiZwLm51bUludGVyc2VjdGlvbj09PWl0Lm51bUludGVyc2VjdGlvbj8ocC52ZXJ0ZXhBbHBoYXMhPT1zfHxwLnZlcnRleFRhbmdlbnRzIT09bHx8cC5tb3JwaFRhcmdldHMhPT1jfHxwLm1vcnBoTm9ybWFscyE9PWQpJiYodT0hMCk6dT0hMDp1PSEwOnU9ITA6KHU9ITAscC5fX3ZlcnNpb249bi52ZXJzaW9uKTtsZXQgZz1wLmN1cnJlbnRQcm9ncmFtOyEwPT09dSYmKGc9d3QobixlLG8pKTtsZXQgYj0hMSx5PSExLF89ITE7Y29uc3QgeD1nLmdldFVuaWZvcm1zKCksTz1wLnVuaWZvcm1zO2lmKEcudXNlUHJvZ3JhbShnLnByb2dyYW0pJiYoYj0hMCx5PSEwLF89ITApLG4uaWQhPT1NJiYoTT1uLmlkLHk9ITApLGJ8fHYhPT10KXtpZih4LnNldFZhbHVlKG10LCJwcm9qZWN0aW9uTWF0cml4Iix0LnByb2plY3Rpb25NYXRyaXgpLFcubG9nYXJpdGhtaWNEZXB0aEJ1ZmZlciYmeC5zZXRWYWx1ZShtdCwibG9nRGVwdGhCdWZGQyIsMi8oTWF0aC5sb2codC5mYXIrMSkvTWF0aC5MTjIpKSx2IT09dCYmKHY9dCx5PSEwLF89ITApLG4uaXNTaGFkZXJNYXRlcmlhbHx8bi5pc01lc2hQaG9uZ01hdGVyaWFsfHxuLmlzTWVzaFRvb25NYXRlcmlhbHx8bi5pc01lc2hTdGFuZGFyZE1hdGVyaWFsfHxuLmVudk1hcCl7Y29uc3QgZT14Lm1hcC5jYW1lcmFQb3NpdGlvbjt2b2lkIDAhPT1lJiZlLnNldFZhbHVlKG10LEIuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQubWF0cml4V29ybGQpKX0obi5pc01lc2hQaG9uZ01hdGVyaWFsfHxuLmlzTWVzaFRvb25NYXRlcmlhbHx8bi5pc01lc2hMYW1iZXJ0TWF0ZXJpYWx8fG4uaXNNZXNoQmFzaWNNYXRlcmlhbHx8bi5pc01lc2hTdGFuZGFyZE1hdGVyaWFsfHxuLmlzU2hhZGVyTWF0ZXJpYWwpJiZ4LnNldFZhbHVlKG10LCJpc09ydGhvZ3JhcGhpYyIsITA9PT10LmlzT3J0aG9ncmFwaGljQ2FtZXJhKSwobi5pc01lc2hQaG9uZ01hdGVyaWFsfHxuLmlzTWVzaFRvb25NYXRlcmlhbHx8bi5pc01lc2hMYW1iZXJ0TWF0ZXJpYWx8fG4uaXNNZXNoQmFzaWNNYXRlcmlhbHx8bi5pc01lc2hTdGFuZGFyZE1hdGVyaWFsfHxuLmlzU2hhZGVyTWF0ZXJpYWx8fG4uaXNTaGFkb3dNYXRlcmlhbHx8by5pc1NraW5uZWRNZXNoKSYmeC5zZXRWYWx1ZShtdCwidmlld01hdHJpeCIsdC5tYXRyaXhXb3JsZEludmVyc2UpfWlmKG8uaXNTa2lubmVkTWVzaCl7eC5zZXRPcHRpb25hbChtdCxvLCJiaW5kTWF0cml4IikseC5zZXRPcHRpb25hbChtdCxvLCJiaW5kTWF0cml4SW52ZXJzZSIpO2NvbnN0IHQ9by5za2VsZXRvbjt0JiYoVy5mbG9hdFZlcnRleFRleHR1cmVzPyhudWxsPT09dC5ib25lVGV4dHVyZSYmdC5jb21wdXRlQm9uZVRleHR1cmUoKSx4LnNldFZhbHVlKG10LCJib25lVGV4dHVyZSIsdC5ib25lVGV4dHVyZSxaKSx4LnNldFZhbHVlKG10LCJib25lVGV4dHVyZVNpemUiLHQuYm9uZVRleHR1cmVTaXplKSk6eC5zZXRPcHRpb25hbChtdCx0LCJib25lTWF0cmljZXMiKSl9cmV0dXJuKHl8fHAucmVjZWl2ZVNoYWRvdyE9PW8ucmVjZWl2ZVNoYWRvdykmJihwLnJlY2VpdmVTaGFkb3c9by5yZWNlaXZlU2hhZG93LHguc2V0VmFsdWUobXQsInJlY2VpdmVTaGFkb3ciLG8ucmVjZWl2ZVNoYWRvdykpLHkmJih4LnNldFZhbHVlKG10LCJ0b25lTWFwcGluZ0V4cG9zdXJlIixoLnRvbmVNYXBwaW5nRXhwb3N1cmUpLHAubmVlZHNMaWdodHMmJihmdW5jdGlvbiBQKHQsZSl7dC5hbWJpZW50TGlnaHRDb2xvci5uZWVkc1VwZGF0ZT1lLHQubGlnaHRQcm9iZS5uZWVkc1VwZGF0ZT1lLHQuZGlyZWN0aW9uYWxMaWdodHMubmVlZHNVcGRhdGU9ZSx0LmRpcmVjdGlvbmFsTGlnaHRTaGFkb3dzLm5lZWRzVXBkYXRlPWUsdC5wb2ludExpZ2h0cy5uZWVkc1VwZGF0ZT1lLHQucG9pbnRMaWdodFNoYWRvd3MubmVlZHNVcGRhdGU9ZSx0LnNwb3RMaWdodHMubmVlZHNVcGRhdGU9ZSx0LnNwb3RMaWdodFNoYWRvd3MubmVlZHNVcGRhdGU9ZSx0LnJlY3RBcmVhTGlnaHRzLm5lZWRzVXBkYXRlPWUsdC5oZW1pc3BoZXJlTGlnaHRzLm5lZWRzVXBkYXRlPWV9KShPLF8pLGkmJm4uZm9nJiZldC5yZWZyZXNoRm9nVW5pZm9ybXMoTyxpKSxldC5yZWZyZXNoTWF0ZXJpYWxVbmlmb3JtcyhPLG4sUyxrLEYpLFlwdC51cGxvYWQobXQscC51bmlmb3Jtc0xpc3QsTyxaKSksbi5pc1NoYWRlck1hdGVyaWFsJiYhMD09PW4udW5pZm9ybXNOZWVkVXBkYXRlJiYoWXB0LnVwbG9hZChtdCxwLnVuaWZvcm1zTGlzdCxPLFopLG4udW5pZm9ybXNOZWVkVXBkYXRlPSExKSxuLmlzU3ByaXRlTWF0ZXJpYWwmJnguc2V0VmFsdWUobXQsImNlbnRlciIsby5jZW50ZXIpLHguc2V0VmFsdWUobXQsIm1vZGVsVmlld01hdHJpeCIsby5tb2RlbFZpZXdNYXRyaXgpLHguc2V0VmFsdWUobXQsIm5vcm1hbE1hdHJpeCIsby5ub3JtYWxNYXRyaXgpLHguc2V0VmFsdWUobXQsIm1vZGVsTWF0cml4IixvLm1hdHJpeFdvcmxkKSxnfXZ0LnNldEFuaW1hdGlvbkxvb3AoKGZ1bmN0aW9uIER0KHQpe190JiZfdCh0KX0pKSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmdnQuc2V0Q29udGV4dCh3aW5kb3cpLHRoaXMuc2V0QW5pbWF0aW9uTG9vcD1mdW5jdGlvbih0KXtfdD10LGd0LnNldEFuaW1hdGlvbkxvb3AodCksbnVsbD09PXQ/dnQuc3RvcCgpOnZ0LnN0YXJ0KCl9LGd0LmFkZEV2ZW50TGlzdGVuZXIoInNlc3Npb25zdGFydCIsQ3QpLGd0LmFkZEV2ZW50TGlzdGVuZXIoInNlc3Npb25lbmQiLE10KSx0aGlzLnJlbmRlcj1mdW5jdGlvbih0LGUpe2lmKHZvaWQgMCE9PWUmJiEwIT09ZS5pc0NhbWVyYSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyLnJlbmRlcjogY2FtZXJhIGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBUSFJFRS5DYW1lcmEuIik7aWYoITA9PT1iKXJldHVybjshMD09PXQuYXV0b1VwZGF0ZSYmdC51cGRhdGVNYXRyaXhXb3JsZCgpLG51bGw9PT1lLnBhcmVudCYmZS51cGRhdGVNYXRyaXhXb3JsZCgpLCEwPT09Z3QuZW5hYmxlZCYmITA9PT1ndC5pc1ByZXNlbnRpbmcmJighMD09PWd0LmNhbWVyYUF1dG9VcGRhdGUmJmd0LnVwZGF0ZUNhbWVyYShlKSxlPWd0LmdldENhbWVyYSgpKSwhMD09PXQuaXNTY2VuZSYmdC5vbkJlZm9yZVJlbmRlcihoLHQsZSxDKSxmPW90LmdldCh0LGcubGVuZ3RoKSxmLmluaXQoKSxnLnB1c2goZiksTC5tdWx0aXBseU1hdHJpY2VzKGUucHJvamVjdGlvbk1hdHJpeCxlLm1hdHJpeFdvcmxkSW52ZXJzZSksei5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeChMKSxIPXRoaXMubG9jYWxDbGlwcGluZ0VuYWJsZWQsST1pdC5pbml0KHRoaXMuY2xpcHBpbmdQbGFuZXMsSCxlKSxtPW50LmdldCh0LHUubGVuZ3RoKSxtLmluaXQoKSx1LnB1c2gobSkseHQodCxlLDAsaC5zb3J0T2JqZWN0cyksbS5maW5pc2goKSwhMD09PWguc29ydE9iamVjdHMmJm0uc29ydChELFIpLCEwPT09SSYmaXQuYmVnaW5TaGFkb3dzKCk7YXQucmVuZGVyKGYuc3RhdGUuc2hhZG93c0FycmF5LHQsZSksZi5zZXR1cExpZ2h0cygpLGYuc2V0dXBMaWdodHNWaWV3KGUpLCEwPT09SSYmaXQuZW5kU2hhZG93cygpLCEwPT09dGhpcy5pbmZvLmF1dG9SZXNldCYmdGhpcy5pbmZvLnJlc2V0KCkscnQucmVuZGVyKG0sdCk7Y29uc3Qgbj1tLm9wYXF1ZSxvPW0udHJhbnNtaXNzaXZlLGk9bS50cmFuc3BhcmVudDtuLmxlbmd0aD4wJiZPdChuLHQsZSksby5sZW5ndGg+MCYmKGZ1bmN0aW9uIGEodCxlLG4sbyl7aWYobnVsbD09PUYpe0Y9bmV3KCEwPT09cyYmITA9PT1XLmlzV2ViR0wyP09zdDp4c3QpKDEwMjQsMTAyNCx7Z2VuZXJhdGVNaXBtYXBzOiEwLHR5cGU6bnVsbCE9PWR0LmNvbnZlcnQoTHJ0KT9McnQ6enJ0LG1pbkZpbHRlcjpOcnQsbWFnRmlsdGVyOkFydCx3cmFwUzpScnQsd3JhcFQ6UnJ0fSl9Y29uc3QgaT1oLmdldFJlbmRlclRhcmdldCgpO2guc2V0UmVuZGVyVGFyZ2V0KEYpLGguY2xlYXIoKTtjb25zdCBhPWgudG9uZU1hcHBpbmc7aC50b25lTWFwcGluZz0wLE90KHQsbixvKSxoLnRvbmVNYXBwaW5nPWEsWi51cGRhdGVNdWx0aXNhbXBsZVJlbmRlclRhcmdldChGKSxaLnVwZGF0ZVJlbmRlclRhcmdldE1pcG1hcChGKSxoLnNldFJlbmRlclRhcmdldChpKSxPdChlLG4sbyl9KShuLG8sdCxlKSxpLmxlbmd0aD4wJiZPdChpLHQsZSksbnVsbCE9PUMmJihaLnVwZGF0ZU11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0KEMpLFoudXBkYXRlUmVuZGVyVGFyZ2V0TWlwbWFwKEMpKSwhMD09PXQuaXNTY2VuZSYmdC5vbkFmdGVyUmVuZGVyKGgsdCxlKSxHLmJ1ZmZlcnMuZGVwdGguc2V0VGVzdCghMCksRy5idWZmZXJzLmRlcHRoLnNldE1hc2soITApLEcuYnVmZmVycy5jb2xvci5zZXRNYXNrKCEwKSxHLnNldFBvbHlnb25PZmZzZXQoITEpLHB0LnJlc2V0RGVmYXVsdFN0YXRlKCksTT0tMSx2PW51bGwsZy5wb3AoKSxmPWcubGVuZ3RoPjA/Z1tnLmxlbmd0aC0xXTpudWxsLHUucG9wKCksbT11Lmxlbmd0aD4wP3VbdS5sZW5ndGgtMV06bnVsbH0sdGhpcy5nZXRBY3RpdmVDdWJlRmFjZT1mdW5jdGlvbigpe3JldHVybiB5fSx0aGlzLmdldEFjdGl2ZU1pcG1hcExldmVsPWZ1bmN0aW9uKCl7cmV0dXJuIF99LHRoaXMuZ2V0UmVuZGVyVGFyZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIEN9LHRoaXMuc2V0UmVuZGVyVGFyZ2V0PWZ1bmN0aW9uKHQsZT0wLG49MCl7Qz10LHk9ZSxfPW4sdCYmdm9pZCAwPT09cS5nZXQodCkuX193ZWJnbEZyYW1lYnVmZmVyJiZaLnNldHVwUmVuZGVyVGFyZ2V0KHQpO2xldCBvPW51bGwsaT0hMSxhPSExO2lmKHQpe2NvbnN0IG49dC50ZXh0dXJlOyhuLmlzRGF0YVRleHR1cmUzRHx8bi5pc0RhdGFUZXh0dXJlMkRBcnJheSkmJihhPSEwKTtjb25zdCByPXEuZ2V0KHQpLl9fd2ViZ2xGcmFtZWJ1ZmZlcjt0LmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0PyhvPXJbZV0saT0hMCk6bz10LmlzV2ViR0xNdWx0aXNhbXBsZVJlbmRlclRhcmdldD9xLmdldCh0KS5fX3dlYmdsTXVsdGlzYW1wbGVkRnJhbWVidWZmZXI6cix4LmNvcHkodC52aWV3cG9ydCksTy5jb3B5KHQuc2Npc3NvciksUD10LnNjaXNzb3JUZXN0fWVsc2UgeC5jb3B5KEUpLm11bHRpcGx5U2NhbGFyKFMpLmZsb29yKCksTy5jb3B5KEEpLm11bHRpcGx5U2NhbGFyKFMpLmZsb29yKCksUD1UO2lmKEcuYmluZEZyYW1lYnVmZmVyKDM2MTYwLG8pJiZXLmRyYXdCdWZmZXJzKXtsZXQgZT0hMTtpZih0KWlmKHQuaXNXZWJHTE11bHRpcGxlUmVuZGVyVGFyZ2V0cyl7Y29uc3Qgbj10LnRleHR1cmU7aWYoTi5sZW5ndGghPT1uLmxlbmd0aHx8MzYwNjQhPT1OWzBdKXtmb3IobGV0IHQ9MCxlPW4ubGVuZ3RoO3Q8ZTt0KyspTlt0XT0zNjA2NCt0O04ubGVuZ3RoPW4ubGVuZ3RoLGU9ITB9fWVsc2UgMT09PU4ubGVuZ3RoJiYzNjA2ND09PU5bMF18fChOWzBdPTM2MDY0LE4ubGVuZ3RoPTEsZT0hMCk7ZWxzZSAxPT09Ti5sZW5ndGgmJjEwMjk9PT1OWzBdfHwoTlswXT0xMDI5LE4ubGVuZ3RoPTEsZT0hMCk7ZSYmKFcuaXNXZWJHTDI/bXQuZHJhd0J1ZmZlcnMoTik6VS5nZXQoIldFQkdMX2RyYXdfYnVmZmVycyIpLmRyYXdCdWZmZXJzV0VCR0woTikpfWlmKEcudmlld3BvcnQoeCksRy5zY2lzc29yKE8pLEcuc2V0U2Npc3NvclRlc3QoUCksaSl7Y29uc3Qgbz1xLmdldCh0LnRleHR1cmUpO210LmZyYW1lYnVmZmVyVGV4dHVyZTJEKDM2MTYwLDM2MDY0LDM0MDY5K2Usby5fX3dlYmdsVGV4dHVyZSxuKX1lbHNlIGlmKGEpe2NvbnN0IG89cS5nZXQodC50ZXh0dXJlKTttdC5mcmFtZWJ1ZmZlclRleHR1cmVMYXllcigzNjE2MCwzNjA2NCxvLl9fd2ViZ2xUZXh0dXJlLG58fDAsZXx8MCl9fSx0aGlzLnJlYWRSZW5kZXJUYXJnZXRQaXhlbHM9ZnVuY3Rpb24odCxlLG4sbyxpLGEscil7aWYoIXR8fCF0LmlzV2ViR0xSZW5kZXJUYXJnZXQpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlci5yZWFkUmVuZGVyVGFyZ2V0UGl4ZWxzOiByZW5kZXJUYXJnZXQgaXMgbm90IFRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0LiIpO2xldCBzPXEuZ2V0KHQpLl9fd2ViZ2xGcmFtZWJ1ZmZlcjtpZih0LmlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0JiZ2b2lkIDAhPT1yJiYocz1zW3JdKSxzKXtHLmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxzKTt0cnl7Y29uc3Qgcj10LnRleHR1cmUscz1yLmZvcm1hdCxsPXIudHlwZTtpZihzIT09anJ0JiZkdC5jb252ZXJ0KHMpIT09bXQuZ2V0UGFyYW1ldGVyKDM1NzM5KSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5XZWJHTFJlbmRlcmVyLnJlYWRSZW5kZXJUYXJnZXRQaXhlbHM6IHJlbmRlclRhcmdldCBpcyBub3QgaW4gUkdCQSBvciBpbXBsZW1lbnRhdGlvbiBkZWZpbmVkIGZvcm1hdC4iKTtjb25zdCBjPWw9PT1McnQmJihVLmhhcygiRVhUX2NvbG9yX2J1ZmZlcl9oYWxmX2Zsb2F0Iil8fFcuaXNXZWJHTDImJlUuaGFzKCJFWFRfY29sb3JfYnVmZmVyX2Zsb2F0IikpO2lmKCEobD09PXpydHx8ZHQuY29udmVydChsKT09PW10LmdldFBhcmFtZXRlcigzNTczOCl8fGw9PT1GcnQmJihXLmlzV2ViR0wyfHxVLmhhcygiT0VTX3RleHR1cmVfZmxvYXQiKXx8VS5oYXMoIldFQkdMX2NvbG9yX2J1ZmZlcl9mbG9hdCIpKXx8YykpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuV2ViR0xSZW5kZXJlci5yZWFkUmVuZGVyVGFyZ2V0UGl4ZWxzOiByZW5kZXJUYXJnZXQgaXMgbm90IGluIFVuc2lnbmVkQnl0ZVR5cGUgb3IgaW1wbGVtZW50YXRpb24gZGVmaW5lZCB0eXBlLiIpOzM2MDUzPT09bXQuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cygzNjE2MCk/ZT49MCYmZTw9dC53aWR0aC1vJiZuPj0wJiZuPD10LmhlaWdodC1pJiZtdC5yZWFkUGl4ZWxzKGUsbixvLGksZHQuY29udmVydChzKSxkdC5jb252ZXJ0KGwpLGEpOmNvbnNvbGUuZXJyb3IoIlRIUkVFLldlYkdMUmVuZGVyZXIucmVhZFJlbmRlclRhcmdldFBpeGVsczogcmVhZFBpeGVscyBmcm9tIHJlbmRlclRhcmdldCBmYWlsZWQuIEZyYW1lYnVmZmVyIG5vdCBjb21wbGV0ZS4iKX1maW5hbGx5e2NvbnN0IHQ9bnVsbCE9PUM/cS5nZXQoQykuX193ZWJnbEZyYW1lYnVmZmVyOm51bGw7Ry5iaW5kRnJhbWVidWZmZXIoMzYxNjAsdCl9fX0sdGhpcy5jb3B5RnJhbWVidWZmZXJUb1RleHR1cmU9ZnVuY3Rpb24odCxlLG49MCl7Y29uc3Qgbz1NYXRoLnBvdygyLC1uKSxpPU1hdGguZmxvb3IoZS5pbWFnZS53aWR0aCpvKSxhPU1hdGguZmxvb3IoZS5pbWFnZS5oZWlnaHQqbyk7bGV0IHI9ZHQuY29udmVydChlLmZvcm1hdCk7Vy5pc1dlYkdMMiYmKDY0MDc9PT1yJiYocj0zMjg0OSksNjQwOD09PXImJihyPTMyODU2KSksWi5zZXRUZXh0dXJlMkQoZSwwKSxtdC5jb3B5VGV4SW1hZ2UyRCgzNTUzLG4scix0LngsdC55LGksYSwwKSxHLnVuYmluZFRleHR1cmUoKX0sdGhpcy5jb3B5VGV4dHVyZVRvVGV4dHVyZT1mdW5jdGlvbih0LGUsbixvPTApe2NvbnN0IGk9ZS5pbWFnZS53aWR0aCxhPWUuaW1hZ2UuaGVpZ2h0LHI9ZHQuY29udmVydChuLmZvcm1hdCkscz1kdC5jb252ZXJ0KG4udHlwZSk7Wi5zZXRUZXh0dXJlMkQobiwwKSxtdC5waXhlbFN0b3JlaSgzNzQ0MCxuLmZsaXBZKSxtdC5waXhlbFN0b3JlaSgzNzQ0MSxuLnByZW11bHRpcGx5QWxwaGEpLG10LnBpeGVsU3RvcmVpKDMzMTcsbi51bnBhY2tBbGlnbm1lbnQpLGUuaXNEYXRhVGV4dHVyZT9tdC50ZXhTdWJJbWFnZTJEKDM1NTMsbyx0LngsdC55LGksYSxyLHMsZS5pbWFnZS5kYXRhKTplLmlzQ29tcHJlc3NlZFRleHR1cmU/bXQuY29tcHJlc3NlZFRleFN1YkltYWdlMkQoMzU1MyxvLHQueCx0LnksZS5taXBtYXBzWzBdLndpZHRoLGUubWlwbWFwc1swXS5oZWlnaHQscixlLm1pcG1hcHNbMF0uZGF0YSk6bXQudGV4U3ViSW1hZ2UyRCgzNTUzLG8sdC54LHQueSxyLHMsZS5pbWFnZSksMD09PW8mJm4uZ2VuZXJhdGVNaXBtYXBzJiZtdC5nZW5lcmF0ZU1pcG1hcCgzNTUzKSxHLnVuYmluZFRleHR1cmUoKX0sdGhpcy5jb3B5VGV4dHVyZVRvVGV4dHVyZTNEPWZ1bmN0aW9uKHQsZSxuLG8saT0wKXtpZihoLmlzV2ViR0wxUmVuZGVyZXIpcmV0dXJuIHZvaWQgY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyLmNvcHlUZXh0dXJlVG9UZXh0dXJlM0Q6IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBXZWJHTDIuIik7Y29uc3QgYT10Lm1heC54LXQubWluLngrMSxyPXQubWF4LnktdC5taW4ueSsxLHM9dC5tYXguei10Lm1pbi56KzEsbD1kdC5jb252ZXJ0KG8uZm9ybWF0KSxjPWR0LmNvbnZlcnQoby50eXBlKTtsZXQgZDtpZihvLmlzRGF0YVRleHR1cmUzRClaLnNldFRleHR1cmUzRChvLDApLGQ9MzI4Nzk7ZWxzZXtpZighby5pc0RhdGFUZXh0dXJlMkRBcnJheSlyZXR1cm4gdm9pZCBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXIuY29weVRleHR1cmVUb1RleHR1cmUzRDogb25seSBzdXBwb3J0cyBUSFJFRS5EYXRhVGV4dHVyZTNEIGFuZCBUSFJFRS5EYXRhVGV4dHVyZTJEQXJyYXkuIik7Wi5zZXRUZXh0dXJlMkRBcnJheShvLDApLGQ9MzU4NjZ9bXQucGl4ZWxTdG9yZWkoMzc0NDAsby5mbGlwWSksbXQucGl4ZWxTdG9yZWkoMzc0NDEsby5wcmVtdWx0aXBseUFscGhhKSxtdC5waXhlbFN0b3JlaSgzMzE3LG8udW5wYWNrQWxpZ25tZW50KTtjb25zdCBwPW10LmdldFBhcmFtZXRlcigzMzE0KSxtPW10LmdldFBhcmFtZXRlcigzMjg3OCksZj1tdC5nZXRQYXJhbWV0ZXIoMzMxNiksdT1tdC5nZXRQYXJhbWV0ZXIoMzMxNSksZz1tdC5nZXRQYXJhbWV0ZXIoMzI4NzcpLGI9bi5pc0NvbXByZXNzZWRUZXh0dXJlP24ubWlwbWFwc1swXTpuLmltYWdlO210LnBpeGVsU3RvcmVpKDMzMTQsYi53aWR0aCksbXQucGl4ZWxTdG9yZWkoMzI4NzgsYi5oZWlnaHQpLG10LnBpeGVsU3RvcmVpKDMzMTYsdC5taW4ueCksbXQucGl4ZWxTdG9yZWkoMzMxNSx0Lm1pbi55KSxtdC5waXhlbFN0b3JlaSgzMjg3Nyx0Lm1pbi56KSxuLmlzRGF0YVRleHR1cmV8fG4uaXNEYXRhVGV4dHVyZTNEP210LnRleFN1YkltYWdlM0QoZCxpLGUueCxlLnksZS56LGEscixzLGwsYyxiLmRhdGEpOm4uaXNDb21wcmVzc2VkVGV4dHVyZT8oY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyLmNvcHlUZXh0dXJlVG9UZXh0dXJlM0Q6IHVudGVzdGVkIHN1cHBvcnQgZm9yIGNvbXByZXNzZWQgc3JjVGV4dHVyZS4iKSxtdC5jb21wcmVzc2VkVGV4U3ViSW1hZ2UzRChkLGksZS54LGUueSxlLnosYSxyLHMsbCxiLmRhdGEpKTptdC50ZXhTdWJJbWFnZTNEKGQsaSxlLngsZS55LGUueixhLHIscyxsLGMsYiksbXQucGl4ZWxTdG9yZWkoMzMxNCxwKSxtdC5waXhlbFN0b3JlaSgzMjg3OCxtKSxtdC5waXhlbFN0b3JlaSgzMzE2LGYpLG10LnBpeGVsU3RvcmVpKDMzMTUsdSksbXQucGl4ZWxTdG9yZWkoMzI4NzcsZyksMD09PWkmJm8uZ2VuZXJhdGVNaXBtYXBzJiZtdC5nZW5lcmF0ZU1pcG1hcChkKSxHLnVuYmluZFRleHR1cmUoKX0sdGhpcy5pbml0VGV4dHVyZT1mdW5jdGlvbih0KXtaLnNldFRleHR1cmUyRCh0LDApLEcudW5iaW5kVGV4dHVyZSgpfSx0aGlzLnJlc2V0U3RhdGU9ZnVuY3Rpb24oKXt5PTAsXz0wLEM9bnVsbCxHLnJlc2V0KCkscHQucmVzZXQoKX0sInVuZGVmaW5lZCIhPXR5cGVvZiBfX1RIUkVFX0RFVlRPT0xTX18mJl9fVEhSRUVfREVWVE9PTFNfXy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgib2JzZXJ2ZSIse2RldGFpbDp0aGlzfSkpfShjbGFzcyBleHRlbmRzIEhtdHt9KS5wcm90b3R5cGUuaXNXZWJHTDFSZW5kZXJlcj0hMDtjbGFzcyBGbXQgZXh0ZW5kcyBTbHR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudHlwZT0iU2NlbmUiLHRoaXMuYmFja2dyb3VuZD1udWxsLHRoaXMuZW52aXJvbm1lbnQ9bnVsbCx0aGlzLmZvZz1udWxsLHRoaXMub3ZlcnJpZGVNYXRlcmlhbD1udWxsLHRoaXMuYXV0b1VwZGF0ZT0hMCwidW5kZWZpbmVkIiE9dHlwZW9mIF9fVEhSRUVfREVWVE9PTFNfXyYmX19USFJFRV9ERVZUT09MU19fLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJvYnNlcnZlIix7ZGV0YWlsOnRoaXN9KSl9Y29weSh0LGUpe3JldHVybiBzdXBlci5jb3B5KHQsZSksbnVsbCE9PXQuYmFja2dyb3VuZCYmKHRoaXMuYmFja2dyb3VuZD10LmJhY2tncm91bmQuY2xvbmUoKSksbnVsbCE9PXQuZW52aXJvbm1lbnQmJih0aGlzLmVudmlyb25tZW50PXQuZW52aXJvbm1lbnQuY2xvbmUoKSksbnVsbCE9PXQuZm9nJiYodGhpcy5mb2c9dC5mb2cuY2xvbmUoKSksbnVsbCE9PXQub3ZlcnJpZGVNYXRlcmlhbCYmKHRoaXMub3ZlcnJpZGVNYXRlcmlhbD10Lm92ZXJyaWRlTWF0ZXJpYWwuY2xvbmUoKSksdGhpcy5hdXRvVXBkYXRlPXQuYXV0b1VwZGF0ZSx0aGlzLm1hdHJpeEF1dG9VcGRhdGU9dC5tYXRyaXhBdXRvVXBkYXRlLHRoaXN9dG9KU09OKHQpe2NvbnN0IGU9c3VwZXIudG9KU09OKHQpO3JldHVybiBudWxsIT09dGhpcy5mb2cmJihlLm9iamVjdC5mb2c9dGhpcy5mb2cudG9KU09OKCkpLGV9fUZtdC5wcm90b3R5cGUuaXNTY2VuZT0hMDtjbGFzcyBMbXR7Y29uc3RydWN0b3IodCxlKXt0aGlzLmFycmF5PXQsdGhpcy5zdHJpZGU9ZSx0aGlzLmNvdW50PXZvaWQgMCE9PXQ/dC5sZW5ndGgvZTowLHRoaXMudXNhZ2U9b3N0LHRoaXMudXBkYXRlUmFuZ2U9e29mZnNldDowLGNvdW50Oi0xfSx0aGlzLnZlcnNpb249MCx0aGlzLnV1aWQ9ZHN0KCl9b25VcGxvYWRDYWxsYmFjaygpe31zZXQgbmVlZHNVcGRhdGUodCl7ITA9PT10JiZ0aGlzLnZlcnNpb24rK31zZXRVc2FnZSh0KXtyZXR1cm4gdGhpcy51c2FnZT10LHRoaXN9Y29weSh0KXtyZXR1cm4gdGhpcy5hcnJheT1uZXcgdC5hcnJheS5jb25zdHJ1Y3Rvcih0LmFycmF5KSx0aGlzLmNvdW50PXQuY291bnQsdGhpcy5zdHJpZGU9dC5zdHJpZGUsdGhpcy51c2FnZT10LnVzYWdlLHRoaXN9Y29weUF0KHQsZSxuKXt0Kj10aGlzLnN0cmlkZSxuKj1lLnN0cmlkZTtmb3IobGV0IG89MCxpPXRoaXMuc3RyaWRlO288aTtvKyspdGhpcy5hcnJheVt0K29dPWUuYXJyYXlbbitvXTtyZXR1cm4gdGhpc31zZXQodCxlPTApe3JldHVybiB0aGlzLmFycmF5LnNldCh0LGUpLHRoaXN9Y2xvbmUodCl7dm9pZCAwPT09dC5hcnJheUJ1ZmZlcnMmJih0LmFycmF5QnVmZmVycz17fSksdm9pZCAwPT09dGhpcy5hcnJheS5idWZmZXIuX3V1aWQmJih0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZD1kc3QoKSksdm9pZCAwPT09dC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdJiYodC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdPXRoaXMuYXJyYXkuc2xpY2UoMCkuYnVmZmVyKTtjb25zdCBlPW5ldyB0aGlzLmFycmF5LmNvbnN0cnVjdG9yKHQuYXJyYXlCdWZmZXJzW3RoaXMuYXJyYXkuYnVmZmVyLl91dWlkXSksbj1uZXcgdGhpcy5jb25zdHJ1Y3RvcihlLHRoaXMuc3RyaWRlKTtyZXR1cm4gbi5zZXRVc2FnZSh0aGlzLnVzYWdlKSxufW9uVXBsb2FkKHQpe3JldHVybiB0aGlzLm9uVXBsb2FkQ2FsbGJhY2s9dCx0aGlzfXRvSlNPTih0KXtyZXR1cm4gdm9pZCAwPT09dC5hcnJheUJ1ZmZlcnMmJih0LmFycmF5QnVmZmVycz17fSksdm9pZCAwPT09dGhpcy5hcnJheS5idWZmZXIuX3V1aWQmJih0aGlzLmFycmF5LmJ1ZmZlci5fdXVpZD1kc3QoKSksdm9pZCAwPT09dC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdJiYodC5hcnJheUJ1ZmZlcnNbdGhpcy5hcnJheS5idWZmZXIuX3V1aWRdPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG5ldyBVaW50MzJBcnJheSh0aGlzLmFycmF5LmJ1ZmZlcikpKSx7dXVpZDp0aGlzLnV1aWQsYnVmZmVyOnRoaXMuYXJyYXkuYnVmZmVyLl91dWlkLHR5cGU6dGhpcy5hcnJheS5jb25zdHJ1Y3Rvci5uYW1lLHN0cmlkZTp0aGlzLnN0cmlkZX19fUxtdC5wcm90b3R5cGUuaXNJbnRlcmxlYXZlZEJ1ZmZlcj0hMDtjb25zdCBCbXQ9bmV3IHdzdDtjbGFzcyBWbXR7Y29uc3RydWN0b3IodCxlLG4sbz0hMSl7dGhpcy5uYW1lPSIiLHRoaXMuZGF0YT10LHRoaXMuaXRlbVNpemU9ZSx0aGlzLm9mZnNldD1uLHRoaXMubm9ybWFsaXplZD0hMD09PW99Z2V0IGNvdW50KCl7cmV0dXJuIHRoaXMuZGF0YS5jb3VudH1nZXQgYXJyYXkoKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5fXNldCBuZWVkc1VwZGF0ZSh0KXt0aGlzLmRhdGEubmVlZHNVcGRhdGU9dH1hcHBseU1hdHJpeDQodCl7Zm9yKGxldCBlPTAsbj10aGlzLmRhdGEuY291bnQ7ZTxuO2UrKylCbXQueD10aGlzLmdldFgoZSksQm10Lnk9dGhpcy5nZXRZKGUpLEJtdC56PXRoaXMuZ2V0WihlKSxCbXQuYXBwbHlNYXRyaXg0KHQpLHRoaXMuc2V0WFlaKGUsQm10LngsQm10LnksQm10LnopO3JldHVybiB0aGlzfWFwcGx5Tm9ybWFsTWF0cml4KHQpe2ZvcihsZXQgZT0wLG49dGhpcy5jb3VudDtlPG47ZSsrKUJtdC54PXRoaXMuZ2V0WChlKSxCbXQueT10aGlzLmdldFkoZSksQm10Lno9dGhpcy5nZXRaKGUpLEJtdC5hcHBseU5vcm1hbE1hdHJpeCh0KSx0aGlzLnNldFhZWihlLEJtdC54LEJtdC55LEJtdC56KTtyZXR1cm4gdGhpc310cmFuc2Zvcm1EaXJlY3Rpb24odCl7Zm9yKGxldCBlPTAsbj10aGlzLmNvdW50O2U8bjtlKyspQm10Lng9dGhpcy5nZXRYKGUpLEJtdC55PXRoaXMuZ2V0WShlKSxCbXQuej10aGlzLmdldFooZSksQm10LnRyYW5zZm9ybURpcmVjdGlvbih0KSx0aGlzLnNldFhZWihlLEJtdC54LEJtdC55LEJtdC56KTtyZXR1cm4gdGhpc31zZXRYKHQsZSl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXRdPWUsdGhpc31zZXRZKHQsZSl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQrMV09ZSx0aGlzfXNldFoodCxlKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5W3QqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCsyXT1lLHRoaXN9c2V0Vyh0LGUpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0KzNdPWUsdGhpc31nZXRYKHQpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0XX1nZXRZKHQpe3JldHVybiB0aGlzLmRhdGEuYXJyYXlbdCp0aGlzLmRhdGEuc3RyaWRlK3RoaXMub2Zmc2V0KzFdfWdldFoodCl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVt0KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQrMl19Z2V0Vyh0KXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5W3QqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCszXX1zZXRYWSh0LGUsbil7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVsodD10KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQpKzBdPWUsdGhpcy5kYXRhLmFycmF5W3QrMV09bix0aGlzfXNldFhZWih0LGUsbixvKXtyZXR1cm4gdGhpcy5kYXRhLmFycmF5Wyh0PXQqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldCkrMF09ZSx0aGlzLmRhdGEuYXJyYXlbdCsxXT1uLHRoaXMuZGF0YS5hcnJheVt0KzJdPW8sdGhpc31zZXRYWVpXKHQsZSxuLG8saSl7cmV0dXJuIHRoaXMuZGF0YS5hcnJheVsodD10KnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQpKzBdPWUsdGhpcy5kYXRhLmFycmF5W3QrMV09bix0aGlzLmRhdGEuYXJyYXlbdCsyXT1vLHRoaXMuZGF0YS5hcnJheVt0KzNdPWksdGhpc31jbG9uZSh0KXtpZih2b2lkIDA9PT10KXtjb25zb2xlLmxvZygiVEhSRUUuSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUuY2xvbmUoKTogQ2xvbmluZyBhbiBpbnRlcmxhdmVkIGJ1ZmZlciBhdHRyaWJ1dGUgd2lsbCBkZWludGVybGVhdmUgYnVmZmVyIGRhdGEuIik7Y29uc3QgdD1bXTtmb3IobGV0IGU9MDtlPHRoaXMuY291bnQ7ZSsrKXtjb25zdCBuPWUqdGhpcy5kYXRhLnN0cmlkZSt0aGlzLm9mZnNldDtmb3IobGV0IGU9MDtlPHRoaXMuaXRlbVNpemU7ZSsrKXQucHVzaCh0aGlzLmRhdGEuYXJyYXlbbitlXSl9cmV0dXJuIG5ldyBRbHQobmV3IHRoaXMuYXJyYXkuY29uc3RydWN0b3IodCksdGhpcy5pdGVtU2l6ZSx0aGlzLm5vcm1hbGl6ZWQpfXJldHVybiB2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVycyYmKHQuaW50ZXJsZWF2ZWRCdWZmZXJzPXt9KSx2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF0mJih0LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF09dGhpcy5kYXRhLmNsb25lKHQpKSxuZXcgVm10KHQuaW50ZXJsZWF2ZWRCdWZmZXJzW3RoaXMuZGF0YS51dWlkXSx0aGlzLml0ZW1TaXplLHRoaXMub2Zmc2V0LHRoaXMubm9ybWFsaXplZCl9dG9KU09OKHQpe2lmKHZvaWQgMD09PXQpe2NvbnNvbGUubG9nKCJUSFJFRS5JbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZS50b0pTT04oKTogU2VyaWFsaXppbmcgYW4gaW50ZXJsYXZlZCBidWZmZXIgYXR0cmlidXRlIHdpbGwgZGVpbnRlcmxlYXZlIGJ1ZmZlciBkYXRhLiIpO2NvbnN0IHQ9W107Zm9yKGxldCBlPTA7ZTx0aGlzLmNvdW50O2UrKyl7Y29uc3Qgbj1lKnRoaXMuZGF0YS5zdHJpZGUrdGhpcy5vZmZzZXQ7Zm9yKGxldCBlPTA7ZTx0aGlzLml0ZW1TaXplO2UrKyl0LnB1c2godGhpcy5kYXRhLmFycmF5W24rZV0pfXJldHVybntpdGVtU2l6ZTp0aGlzLml0ZW1TaXplLHR5cGU6dGhpcy5hcnJheS5jb25zdHJ1Y3Rvci5uYW1lLGFycmF5OnQsbm9ybWFsaXplZDp0aGlzLm5vcm1hbGl6ZWR9fXJldHVybiB2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVycyYmKHQuaW50ZXJsZWF2ZWRCdWZmZXJzPXt9KSx2b2lkIDA9PT10LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF0mJih0LmludGVybGVhdmVkQnVmZmVyc1t0aGlzLmRhdGEudXVpZF09dGhpcy5kYXRhLnRvSlNPTih0KSkse2lzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGU6ITAsaXRlbVNpemU6dGhpcy5pdGVtU2l6ZSxkYXRhOnRoaXMuZGF0YS51dWlkLG9mZnNldDp0aGlzLm9mZnNldCxub3JtYWxpemVkOnRoaXMubm9ybWFsaXplZH19fVZtdC5wcm90b3R5cGUuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZT0hMDtjbGFzcyBqbXQgZXh0ZW5kcyBWbHR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlNwcml0ZU1hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBabHQoMTY3NzcyMTUpLHRoaXMubWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMucm90YXRpb249MCx0aGlzLnNpemVBdHRlbnVhdGlvbj0hMCx0aGlzLnRyYW5zcGFyZW50PSEwLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubWFwPXQubWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLnJvdGF0aW9uPXQucm90YXRpb24sdGhpcy5zaXplQXR0ZW51YXRpb249dC5zaXplQXR0ZW51YXRpb24sdGhpc319bGV0IFVtdDtqbXQucHJvdG90eXBlLmlzU3ByaXRlTWF0ZXJpYWw9ITA7Y29uc3QgV210PW5ldyB3c3QsR210PW5ldyB3c3QsWW10PW5ldyB3c3QscW10PW5ldyBnc3QsWm10PW5ldyBnc3QsWG10PW5ldyBvbHQsS210PW5ldyB3c3QsSm10PW5ldyB3c3QsUW10PW5ldyB3c3QsJG10PW5ldyBnc3QsdGZ0PW5ldyBnc3QsZWZ0PW5ldyBnc3Q7ZnVuY3Rpb24gbmZ0KHQsZSxuLG8saSxhKXtxbXQuc3ViVmVjdG9ycyh0LG4pLmFkZFNjYWxhciguNSkubXVsdGlwbHkobyksdm9pZCAwIT09aT8oWm10Lng9YSpxbXQueC1pKnFtdC55LFptdC55PWkqcW10LngrYSpxbXQueSk6Wm10LmNvcHkocW10KSx0LmNvcHkoZSksdC54Kz1abXQueCx0LnkrPVptdC55LHQuYXBwbHlNYXRyaXg0KFhtdCl9KGNsYXNzIGV4dGVuZHMgU2x0e2NvbnN0cnVjdG9yKHQpe2lmKHN1cGVyKCksdGhpcy50eXBlPSJTcHJpdGUiLHZvaWQgMD09PVVtdCl7VW10PW5ldyBkY3Q7Y29uc3QgdD1uZXcgRmxvYXQzMkFycmF5KFstLjUsLS41LDAsMCwwLC41LC0uNSwwLDEsMCwuNSwuNSwwLDEsMSwtLjUsLjUsMCwwLDFdKSxlPW5ldyBMbXQodCw1KTtVbXQuc2V0SW5kZXgoWzAsMSwyLDAsMiwzXSksVW10LnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBWbXQoZSwzLDAsITEpKSxVbXQuc2V0QXR0cmlidXRlKCJ1diIsbmV3IFZtdChlLDIsMywhMSkpfXRoaXMuZ2VvbWV0cnk9VW10LHRoaXMubWF0ZXJpYWw9dm9pZCAwIT09dD90Om5ldyBqbXQsdGhpcy5jZW50ZXI9bmV3IGdzdCguNSwuNSl9cmF5Y2FzdCh0LGUpe251bGw9PT10LmNhbWVyYSYmY29uc29sZS5lcnJvcignVEhSRUUuU3ByaXRlOiAiUmF5Y2FzdGVyLmNhbWVyYSIgbmVlZHMgdG8gYmUgc2V0IGluIG9yZGVyIHRvIHJheWNhc3QgYWdhaW5zdCBzcHJpdGVzLicpLEdtdC5zZXRGcm9tTWF0cml4U2NhbGUodGhpcy5tYXRyaXhXb3JsZCksWG10LmNvcHkodC5jYW1lcmEubWF0cml4V29ybGQpLHRoaXMubW9kZWxWaWV3TWF0cml4Lm11bHRpcGx5TWF0cmljZXModC5jYW1lcmEubWF0cml4V29ybGRJbnZlcnNlLHRoaXMubWF0cml4V29ybGQpLFltdC5zZXRGcm9tTWF0cml4UG9zaXRpb24odGhpcy5tb2RlbFZpZXdNYXRyaXgpLHQuY2FtZXJhLmlzUGVyc3BlY3RpdmVDYW1lcmEmJiExPT09dGhpcy5tYXRlcmlhbC5zaXplQXR0ZW51YXRpb24mJkdtdC5tdWx0aXBseVNjYWxhcigtWW10LnopO2NvbnN0IG49dGhpcy5tYXRlcmlhbC5yb3RhdGlvbjtsZXQgbyxpOzAhPT1uJiYoaT1NYXRoLmNvcyhuKSxvPU1hdGguc2luKG4pKTtjb25zdCBhPXRoaXMuY2VudGVyO25mdChLbXQuc2V0KC0uNSwtLjUsMCksWW10LGEsR210LG8saSksbmZ0KEptdC5zZXQoLjUsLS41LDApLFltdCxhLEdtdCxvLGkpLG5mdChRbXQuc2V0KC41LC41LDApLFltdCxhLEdtdCxvLGkpLCRtdC5zZXQoMCwwKSx0ZnQuc2V0KDEsMCksZWZ0LnNldCgxLDEpO2xldCByPXQucmF5LmludGVyc2VjdFRyaWFuZ2xlKEttdCxKbXQsUW10LCExLFdtdCk7aWYobnVsbD09PXImJihuZnQoSm10LnNldCgtLjUsLjUsMCksWW10LGEsR210LG8saSksdGZ0LnNldCgwLDEpLHI9dC5yYXkuaW50ZXJzZWN0VHJpYW5nbGUoS210LFFtdCxKbXQsITEsV210KSxudWxsPT09cikpcmV0dXJuO2NvbnN0IHM9dC5yYXkub3JpZ2luLmRpc3RhbmNlVG8oV210KTtzPHQubmVhcnx8cz50LmZhcnx8ZS5wdXNoKHtkaXN0YW5jZTpzLHBvaW50OldtdC5jbG9uZSgpLHV2OkxsdC5nZXRVVihXbXQsS210LEptdCxRbXQsJG10LHRmdCxlZnQsbmV3IGdzdCksZmFjZTpudWxsLG9iamVjdDp0aGlzfSl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx2b2lkIDAhPT10LmNlbnRlciYmdGhpcy5jZW50ZXIuY29weSh0LmNlbnRlciksdGhpcy5tYXRlcmlhbD10Lm1hdGVyaWFsLHRoaXN9fSkucHJvdG90eXBlLmlzU3ByaXRlPSEwO2NvbnN0IG9mdD1uZXcgd3N0LGlmdD1uZXcgdnN0LGFmdD1uZXcgdnN0LHJmdD1uZXcgd3N0LHNmdD1uZXcgb2x0O2NsYXNzIGxmdCBleHRlbmRzIFNjdHtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsZSksdGhpcy50eXBlPSJTa2lubmVkTWVzaCIsdGhpcy5iaW5kTW9kZT0iYXR0YWNoZWQiLHRoaXMuYmluZE1hdHJpeD1uZXcgb2x0LHRoaXMuYmluZE1hdHJpeEludmVyc2U9bmV3IG9sdH1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuYmluZE1vZGU9dC5iaW5kTW9kZSx0aGlzLmJpbmRNYXRyaXguY29weSh0LmJpbmRNYXRyaXgpLHRoaXMuYmluZE1hdHJpeEludmVyc2UuY29weSh0LmJpbmRNYXRyaXhJbnZlcnNlKSx0aGlzLnNrZWxldG9uPXQuc2tlbGV0b24sdGhpc31iaW5kKHQsZSl7dGhpcy5za2VsZXRvbj10LHZvaWQgMD09PWUmJih0aGlzLnVwZGF0ZU1hdHJpeFdvcmxkKCEwKSx0aGlzLnNrZWxldG9uLmNhbGN1bGF0ZUludmVyc2VzKCksZT10aGlzLm1hdHJpeFdvcmxkKSx0aGlzLmJpbmRNYXRyaXguY29weShlKSx0aGlzLmJpbmRNYXRyaXhJbnZlcnNlLmNvcHkoZSkuaW52ZXJ0KCl9cG9zZSgpe3RoaXMuc2tlbGV0b24ucG9zZSgpfW5vcm1hbGl6ZVNraW5XZWlnaHRzKCl7Y29uc3QgdD1uZXcgdnN0LGU9dGhpcy5nZW9tZXRyeS5hdHRyaWJ1dGVzLnNraW5XZWlnaHQ7Zm9yKGxldCBuPTAsbz1lLmNvdW50O248bztuKyspe3QueD1lLmdldFgobiksdC55PWUuZ2V0WShuKSx0Lno9ZS5nZXRaKG4pLHQudz1lLmdldFcobik7Y29uc3Qgbz0xL3QubWFuaGF0dGFuTGVuZ3RoKCk7byE9PTEvMD90Lm11bHRpcGx5U2NhbGFyKG8pOnQuc2V0KDEsMCwwLDApLGUuc2V0WFlaVyhuLHQueCx0LnksdC56LHQudyl9fXVwZGF0ZU1hdHJpeFdvcmxkKHQpe3N1cGVyLnVwZGF0ZU1hdHJpeFdvcmxkKHQpLCJhdHRhY2hlZCI9PT10aGlzLmJpbmRNb2RlP3RoaXMuYmluZE1hdHJpeEludmVyc2UuY29weSh0aGlzLm1hdHJpeFdvcmxkKS5pbnZlcnQoKToiZGV0YWNoZWQiPT09dGhpcy5iaW5kTW9kZT90aGlzLmJpbmRNYXRyaXhJbnZlcnNlLmNvcHkodGhpcy5iaW5kTWF0cml4KS5pbnZlcnQoKTpjb25zb2xlLndhcm4oIlRIUkVFLlNraW5uZWRNZXNoOiBVbnJlY29nbml6ZWQgYmluZE1vZGU6ICIrdGhpcy5iaW5kTW9kZSl9Ym9uZVRyYW5zZm9ybSh0LGUpe2NvbnN0IG49dGhpcy5za2VsZXRvbixvPXRoaXMuZ2VvbWV0cnk7aWZ0LmZyb21CdWZmZXJBdHRyaWJ1dGUoby5hdHRyaWJ1dGVzLnNraW5JbmRleCx0KSxhZnQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShvLmF0dHJpYnV0ZXMuc2tpbldlaWdodCx0KSxvZnQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShvLmF0dHJpYnV0ZXMucG9zaXRpb24sdCkuYXBwbHlNYXRyaXg0KHRoaXMuYmluZE1hdHJpeCksZS5zZXQoMCwwLDApO2ZvcihsZXQgdD0wO3Q8NDt0Kyspe2NvbnN0IG89YWZ0LmdldENvbXBvbmVudCh0KTtpZigwIT09byl7Y29uc3QgaT1pZnQuZ2V0Q29tcG9uZW50KHQpO3NmdC5tdWx0aXBseU1hdHJpY2VzKG4uYm9uZXNbaV0ubWF0cml4V29ybGQsbi5ib25lSW52ZXJzZXNbaV0pLGUuYWRkU2NhbGVkVmVjdG9yKHJmdC5jb3B5KG9mdCkuYXBwbHlNYXRyaXg0KHNmdCksbyl9fXJldHVybiBlLmFwcGx5TWF0cml4NCh0aGlzLmJpbmRNYXRyaXhJbnZlcnNlKX19bGZ0LnByb3RvdHlwZS5pc1NraW5uZWRNZXNoPSEwOyhjbGFzcyBleHRlbmRzIFNsdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50eXBlPSJCb25lIn19KS5wcm90b3R5cGUuaXNCb25lPSEwOyhjbGFzcyBleHRlbmRzIENzdHtjb25zdHJ1Y3Rvcih0PW51bGwsZT0xLG49MSxvLGksYSxyLHMsbD0xMDAzLGM9MTAwMyxkLHApe3N1cGVyKG51bGwsYSxyLHMsbCxjLG8saSxkLHApLHRoaXMuaW1hZ2U9e2RhdGE6dCx3aWR0aDplLGhlaWdodDpufSx0aGlzLm1hZ0ZpbHRlcj1sLHRoaXMubWluRmlsdGVyPWMsdGhpcy5nZW5lcmF0ZU1pcG1hcHM9ITEsdGhpcy5mbGlwWT0hMSx0aGlzLnVucGFja0FsaWdubWVudD0xLHRoaXMubmVlZHNVcGRhdGU9ITB9fSkucHJvdG90eXBlLmlzRGF0YVRleHR1cmU9ITA7Y29uc3QgY2Z0PW5ldyBvbHQsZGZ0PW5ldyBvbHQscGZ0PVtdLG1mdD1uZXcgU2N0OyhjbGFzcyBleHRlbmRzIFNjdHtjb25zdHJ1Y3Rvcih0LGUsbil7c3VwZXIodCxlKSx0aGlzLmluc3RhbmNlTWF0cml4PW5ldyBRbHQobmV3IEZsb2F0MzJBcnJheSgxNipuKSwxNiksdGhpcy5pbnN0YW5jZUNvbG9yPW51bGwsdGhpcy5jb3VudD1uLHRoaXMuZnJ1c3R1bUN1bGxlZD0hMX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuaW5zdGFuY2VNYXRyaXguY29weSh0Lmluc3RhbmNlTWF0cml4KSxudWxsIT09dC5pbnN0YW5jZUNvbG9yJiYodGhpcy5pbnN0YW5jZUNvbG9yPXQuaW5zdGFuY2VDb2xvci5jbG9uZSgpKSx0aGlzLmNvdW50PXQuY291bnQsdGhpc31nZXRDb2xvckF0KHQsZSl7ZS5mcm9tQXJyYXkodGhpcy5pbnN0YW5jZUNvbG9yLmFycmF5LDMqdCl9Z2V0TWF0cml4QXQodCxlKXtlLmZyb21BcnJheSh0aGlzLmluc3RhbmNlTWF0cml4LmFycmF5LDE2KnQpfXJheWNhc3QodCxlKXtjb25zdCBuPXRoaXMubWF0cml4V29ybGQsbz10aGlzLmNvdW50O2lmKG1mdC5nZW9tZXRyeT10aGlzLmdlb21ldHJ5LG1mdC5tYXRlcmlhbD10aGlzLm1hdGVyaWFsLHZvaWQgMCE9PW1mdC5tYXRlcmlhbClmb3IobGV0IGk9MDtpPG87aSsrKXt0aGlzLmdldE1hdHJpeEF0KGksY2Z0KSxkZnQubXVsdGlwbHlNYXRyaWNlcyhuLGNmdCksbWZ0Lm1hdHJpeFdvcmxkPWRmdCxtZnQucmF5Y2FzdCh0LHBmdCk7Zm9yKGxldCB0PTAsbj1wZnQubGVuZ3RoO3Q8bjt0Kyspe2NvbnN0IG49cGZ0W3RdO24uaW5zdGFuY2VJZD1pLG4ub2JqZWN0PXRoaXMsZS5wdXNoKG4pfXBmdC5sZW5ndGg9MH19c2V0Q29sb3JBdCh0LGUpe251bGw9PT10aGlzLmluc3RhbmNlQ29sb3ImJih0aGlzLmluc3RhbmNlQ29sb3I9bmV3IFFsdChuZXcgRmxvYXQzMkFycmF5KDMqdGhpcy5pbnN0YW5jZU1hdHJpeC5jb3VudCksMykpLGUudG9BcnJheSh0aGlzLmluc3RhbmNlQ29sb3IuYXJyYXksMyp0KX1zZXRNYXRyaXhBdCh0LGUpe2UudG9BcnJheSh0aGlzLmluc3RhbmNlTWF0cml4LmFycmF5LDE2KnQpfXVwZGF0ZU1vcnBoVGFyZ2V0cygpe31kaXNwb3NlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KHt0eXBlOiJkaXNwb3NlIn0pfX0pLnByb3RvdHlwZS5pc0luc3RhbmNlZE1lc2g9ITA7Y2xhc3MgZmZ0IGV4dGVuZHMgVmx0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJMaW5lQmFzaWNNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgWmx0KDE2Nzc3MjE1KSx0aGlzLmxpbmV3aWR0aD0xLHRoaXMubGluZWNhcD0icm91bmQiLHRoaXMubGluZWpvaW49InJvdW5kIix0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuY29sb3IuY29weSh0LmNvbG9yKSx0aGlzLmxpbmV3aWR0aD10LmxpbmV3aWR0aCx0aGlzLmxpbmVjYXA9dC5saW5lY2FwLHRoaXMubGluZWpvaW49dC5saW5lam9pbix0aGlzfX1mZnQucHJvdG90eXBlLmlzTGluZUJhc2ljTWF0ZXJpYWw9ITA7Y29uc3QgdWZ0PW5ldyB3c3QsZ2Z0PW5ldyB3c3QsaGZ0PW5ldyBvbHQsYmZ0PW5ldyBubHQseWZ0PW5ldyBac3Q7Y2xhc3MgX2Z0IGV4dGVuZHMgU2x0e2NvbnN0cnVjdG9yKHQ9bmV3IGRjdCxlPW5ldyBmZnQpe3N1cGVyKCksdGhpcy50eXBlPSJMaW5lIix0aGlzLmdlb21ldHJ5PXQsdGhpcy5tYXRlcmlhbD1lLHRoaXMudXBkYXRlTW9ycGhUYXJnZXRzKCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLm1hdGVyaWFsPXQubWF0ZXJpYWwsdGhpcy5nZW9tZXRyeT10Lmdlb21ldHJ5LHRoaXN9Y29tcHV0ZUxpbmVEaXN0YW5jZXMoKXtjb25zdCB0PXRoaXMuZ2VvbWV0cnk7aWYodC5pc0J1ZmZlckdlb21ldHJ5KWlmKG51bGw9PT10LmluZGV4KXtjb25zdCBlPXQuYXR0cmlidXRlcy5wb3NpdGlvbixuPVswXTtmb3IobGV0IHQ9MSxvPWUuY291bnQ7dDxvO3QrKyl1ZnQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLHQtMSksZ2Z0LmZyb21CdWZmZXJBdHRyaWJ1dGUoZSx0KSxuW3RdPW5bdC0xXSxuW3RdKz11ZnQuZGlzdGFuY2VUbyhnZnQpO3Quc2V0QXR0cmlidXRlKCJsaW5lRGlzdGFuY2UiLG5ldyBlY3QobiwxKSl9ZWxzZSBjb25zb2xlLndhcm4oIlRIUkVFLkxpbmUuY29tcHV0ZUxpbmVEaXN0YW5jZXMoKTogQ29tcHV0YXRpb24gb25seSBwb3NzaWJsZSB3aXRoIG5vbi1pbmRleGVkIEJ1ZmZlckdlb21ldHJ5LiIpO2Vsc2UgdC5pc0dlb21ldHJ5JiZjb25zb2xlLmVycm9yKCJUSFJFRS5MaW5lLmNvbXB1dGVMaW5lRGlzdGFuY2VzKCkgbm8gbG9uZ2VyIHN1cHBvcnRzIFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKTtyZXR1cm4gdGhpc31yYXljYXN0KHQsZSl7Y29uc3Qgbj10aGlzLmdlb21ldHJ5LG89dGhpcy5tYXRyaXhXb3JsZCxpPXQucGFyYW1zLkxpbmUudGhyZXNob2xkLGE9bi5kcmF3UmFuZ2U7aWYobnVsbD09PW4uYm91bmRpbmdTcGhlcmUmJm4uY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCkseWZ0LmNvcHkobi5ib3VuZGluZ1NwaGVyZSkseWZ0LmFwcGx5TWF0cml4NChvKSx5ZnQucmFkaXVzKz1pLCExPT09dC5yYXkuaW50ZXJzZWN0c1NwaGVyZSh5ZnQpKXJldHVybjtoZnQuY29weShvKS5pbnZlcnQoKSxiZnQuY29weSh0LnJheSkuYXBwbHlNYXRyaXg0KGhmdCk7Y29uc3Qgcj1pLygodGhpcy5zY2FsZS54K3RoaXMuc2NhbGUueSt0aGlzLnNjYWxlLnopLzMpLHM9cipyLGw9bmV3IHdzdCxjPW5ldyB3c3QsZD1uZXcgd3N0LHA9bmV3IHdzdCxtPXRoaXMuaXNMaW5lU2VnbWVudHM/MjoxO2lmKG4uaXNCdWZmZXJHZW9tZXRyeSl7Y29uc3Qgbz1uLmluZGV4LGk9bi5hdHRyaWJ1dGVzLnBvc2l0aW9uO2lmKG51bGwhPT1vKXtmb3IobGV0IG49TWF0aC5tYXgoMCxhLnN0YXJ0KSxyPU1hdGgubWluKG8uY291bnQsYS5zdGFydCthLmNvdW50KS0xO248cjtuKz1tKXtjb25zdCBhPW8uZ2V0WChuKSxyPW8uZ2V0WChuKzEpO2wuZnJvbUJ1ZmZlckF0dHJpYnV0ZShpLGEpLGMuZnJvbUJ1ZmZlckF0dHJpYnV0ZShpLHIpO2lmKGJmdC5kaXN0YW5jZVNxVG9TZWdtZW50KGwsYyxwLGQpPnMpY29udGludWU7cC5hcHBseU1hdHJpeDQodGhpcy5tYXRyaXhXb3JsZCk7Y29uc3QgbT10LnJheS5vcmlnaW4uZGlzdGFuY2VUbyhwKTttPHQubmVhcnx8bT50LmZhcnx8ZS5wdXNoKHtkaXN0YW5jZTptLHBvaW50OmQuY2xvbmUoKS5hcHBseU1hdHJpeDQodGhpcy5tYXRyaXhXb3JsZCksaW5kZXg6bixmYWNlOm51bGwsZmFjZUluZGV4Om51bGwsb2JqZWN0OnRoaXN9KX19ZWxzZXtmb3IobGV0IG49TWF0aC5tYXgoMCxhLnN0YXJ0KSxvPU1hdGgubWluKGkuY291bnQsYS5zdGFydCthLmNvdW50KS0xO248bztuKz1tKXtsLmZyb21CdWZmZXJBdHRyaWJ1dGUoaSxuKSxjLmZyb21CdWZmZXJBdHRyaWJ1dGUoaSxuKzEpO2lmKGJmdC5kaXN0YW5jZVNxVG9TZWdtZW50KGwsYyxwLGQpPnMpY29udGludWU7cC5hcHBseU1hdHJpeDQodGhpcy5tYXRyaXhXb3JsZCk7Y29uc3Qgbz10LnJheS5vcmlnaW4uZGlzdGFuY2VUbyhwKTtvPHQubmVhcnx8bz50LmZhcnx8ZS5wdXNoKHtkaXN0YW5jZTpvLHBvaW50OmQuY2xvbmUoKS5hcHBseU1hdHJpeDQodGhpcy5tYXRyaXhXb3JsZCksaW5kZXg6bixmYWNlOm51bGwsZmFjZUluZGV4Om51bGwsb2JqZWN0OnRoaXN9KX19fWVsc2Ugbi5pc0dlb21ldHJ5JiZjb25zb2xlLmVycm9yKCJUSFJFRS5MaW5lLnJheWNhc3QoKSBubyBsb25nZXIgc3VwcG9ydHMgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpfXVwZGF0ZU1vcnBoVGFyZ2V0cygpe2NvbnN0IHQ9dGhpcy5nZW9tZXRyeTtpZih0LmlzQnVmZmVyR2VvbWV0cnkpe2NvbnN0IGU9dC5tb3JwaEF0dHJpYnV0ZXMsbj1PYmplY3Qua2V5cyhlKTtpZihuLmxlbmd0aD4wKXtjb25zdCB0PWVbblswXV07aWYodm9pZCAwIT09dCl7dGhpcy5tb3JwaFRhcmdldEluZmx1ZW5jZXM9W10sdGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnk9e307Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXtjb25zdCBuPXRbZV0ubmFtZXx8U3RyaW5nKGUpO3RoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzLnB1c2goMCksdGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnlbbl09ZX19fX1lbHNle2NvbnN0IGU9dC5tb3JwaFRhcmdldHM7dm9pZCAwIT09ZSYmZS5sZW5ndGg+MCYmY29uc29sZS5lcnJvcigiVEhSRUUuTGluZS51cGRhdGVNb3JwaFRhcmdldHMoKSBkb2VzIG5vdCBzdXBwb3J0IFRIUkVFLkdlb21ldHJ5LiBVc2UgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaW5zdGVhZC4iKX19fV9mdC5wcm90b3R5cGUuaXNMaW5lPSEwO2NvbnN0IENmdD1uZXcgd3N0LE1mdD1uZXcgd3N0O2NsYXNzIHZmdCBleHRlbmRzIF9mdHtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsZSksdGhpcy50eXBlPSJMaW5lU2VnbWVudHMifWNvbXB1dGVMaW5lRGlzdGFuY2VzKCl7Y29uc3QgdD10aGlzLmdlb21ldHJ5O2lmKHQuaXNCdWZmZXJHZW9tZXRyeSlpZihudWxsPT09dC5pbmRleCl7Y29uc3QgZT10LmF0dHJpYnV0ZXMucG9zaXRpb24sbj1bXTtmb3IobGV0IHQ9MCxvPWUuY291bnQ7dDxvO3QrPTIpQ2Z0LmZyb21CdWZmZXJBdHRyaWJ1dGUoZSx0KSxNZnQuZnJvbUJ1ZmZlckF0dHJpYnV0ZShlLHQrMSksblt0XT0wPT09dD8wOm5bdC0xXSxuW3QrMV09blt0XStDZnQuZGlzdGFuY2VUbyhNZnQpO3Quc2V0QXR0cmlidXRlKCJsaW5lRGlzdGFuY2UiLG5ldyBlY3QobiwxKSl9ZWxzZSBjb25zb2xlLndhcm4oIlRIUkVFLkxpbmVTZWdtZW50cy5jb21wdXRlTGluZURpc3RhbmNlcygpOiBDb21wdXRhdGlvbiBvbmx5IHBvc3NpYmxlIHdpdGggbm9uLWluZGV4ZWQgQnVmZmVyR2VvbWV0cnkuIik7ZWxzZSB0LmlzR2VvbWV0cnkmJmNvbnNvbGUuZXJyb3IoIlRIUkVFLkxpbmVTZWdtZW50cy5jb21wdXRlTGluZURpc3RhbmNlcygpIG5vIGxvbmdlciBzdXBwb3J0cyBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIik7cmV0dXJuIHRoaXN9fXZmdC5wcm90b3R5cGUuaXNMaW5lU2VnbWVudHM9ITA7KGNsYXNzIGV4dGVuZHMgX2Z0e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IkxpbmVMb29wIn19KS5wcm90b3R5cGUuaXNMaW5lTG9vcD0hMDtjbGFzcyB4ZnQgZXh0ZW5kcyBWbHR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlBvaW50c01hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBabHQoMTY3NzcyMTUpLHRoaXMubWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuc2l6ZT0xLHRoaXMuc2l6ZUF0dGVudWF0aW9uPSEwLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubWFwPXQubWFwLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLnNpemU9dC5zaXplLHRoaXMuc2l6ZUF0dGVudWF0aW9uPXQuc2l6ZUF0dGVudWF0aW9uLHRoaXN9fXhmdC5wcm90b3R5cGUuaXNQb2ludHNNYXRlcmlhbD0hMDtjb25zdCBPZnQ9bmV3IG9sdCxQZnQ9bmV3IG5sdCx3ZnQ9bmV3IFpzdCxrZnQ9bmV3IHdzdDtmdW5jdGlvbiBTZnQodCxlLG4sbyxpLGEscil7Y29uc3Qgcz1QZnQuZGlzdGFuY2VTcVRvUG9pbnQodCk7aWYoczxuKXtjb25zdCBuPW5ldyB3c3Q7UGZ0LmNsb3Nlc3RQb2ludFRvUG9pbnQodCxuKSxuLmFwcGx5TWF0cml4NChvKTtjb25zdCBsPWkucmF5Lm9yaWdpbi5kaXN0YW5jZVRvKG4pO2lmKGw8aS5uZWFyfHxsPmkuZmFyKXJldHVybjthLnB1c2goe2Rpc3RhbmNlOmwsZGlzdGFuY2VUb1JheTpNYXRoLnNxcnQocykscG9pbnQ6bixpbmRleDplLGZhY2U6bnVsbCxvYmplY3Q6cn0pfX0oY2xhc3MgZXh0ZW5kcyBTbHR7Y29uc3RydWN0b3IodD1uZXcgZGN0LGU9bmV3IHhmdCl7c3VwZXIoKSx0aGlzLnR5cGU9IlBvaW50cyIsdGhpcy5nZW9tZXRyeT10LHRoaXMubWF0ZXJpYWw9ZSx0aGlzLnVwZGF0ZU1vcnBoVGFyZ2V0cygpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5tYXRlcmlhbD10Lm1hdGVyaWFsLHRoaXMuZ2VvbWV0cnk9dC5nZW9tZXRyeSx0aGlzfXJheWNhc3QodCxlKXtjb25zdCBuPXRoaXMuZ2VvbWV0cnksbz10aGlzLm1hdHJpeFdvcmxkLGk9dC5wYXJhbXMuUG9pbnRzLnRocmVzaG9sZCxhPW4uZHJhd1JhbmdlO2lmKG51bGw9PT1uLmJvdW5kaW5nU3BoZXJlJiZuLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpLHdmdC5jb3B5KG4uYm91bmRpbmdTcGhlcmUpLHdmdC5hcHBseU1hdHJpeDQobyksd2Z0LnJhZGl1cys9aSwhMT09PXQucmF5LmludGVyc2VjdHNTcGhlcmUod2Z0KSlyZXR1cm47T2Z0LmNvcHkobykuaW52ZXJ0KCksUGZ0LmNvcHkodC5yYXkpLmFwcGx5TWF0cml4NChPZnQpO2NvbnN0IHI9aS8oKHRoaXMuc2NhbGUueCt0aGlzLnNjYWxlLnkrdGhpcy5zY2FsZS56KS8zKSxzPXIqcjtpZihuLmlzQnVmZmVyR2VvbWV0cnkpe2NvbnN0IGk9bi5pbmRleCxyPW4uYXR0cmlidXRlcy5wb3NpdGlvbjtpZihudWxsIT09aSl7Zm9yKGxldCBuPU1hdGgubWF4KDAsYS5zdGFydCksbD1NYXRoLm1pbihpLmNvdW50LGEuc3RhcnQrYS5jb3VudCk7bjxsO24rKyl7Y29uc3QgYT1pLmdldFgobik7a2Z0LmZyb21CdWZmZXJBdHRyaWJ1dGUocixhKSxTZnQoa2Z0LGEscyxvLHQsZSx0aGlzKX19ZWxzZXtmb3IobGV0IG49TWF0aC5tYXgoMCxhLnN0YXJ0KSxpPU1hdGgubWluKHIuY291bnQsYS5zdGFydCthLmNvdW50KTtuPGk7bisrKWtmdC5mcm9tQnVmZmVyQXR0cmlidXRlKHIsbiksU2Z0KGtmdCxuLHMsbyx0LGUsdGhpcyl9fWVsc2UgY29uc29sZS5lcnJvcigiVEhSRUUuUG9pbnRzLnJheWNhc3QoKSBubyBsb25nZXIgc3VwcG9ydHMgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpfXVwZGF0ZU1vcnBoVGFyZ2V0cygpe2NvbnN0IHQ9dGhpcy5nZW9tZXRyeTtpZih0LmlzQnVmZmVyR2VvbWV0cnkpe2NvbnN0IGU9dC5tb3JwaEF0dHJpYnV0ZXMsbj1PYmplY3Qua2V5cyhlKTtpZihuLmxlbmd0aD4wKXtjb25zdCB0PWVbblswXV07aWYodm9pZCAwIT09dCl7dGhpcy5tb3JwaFRhcmdldEluZmx1ZW5jZXM9W10sdGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnk9e307Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXtjb25zdCBuPXRbZV0ubmFtZXx8U3RyaW5nKGUpO3RoaXMubW9ycGhUYXJnZXRJbmZsdWVuY2VzLnB1c2goMCksdGhpcy5tb3JwaFRhcmdldERpY3Rpb25hcnlbbl09ZX19fX1lbHNle2NvbnN0IGU9dC5tb3JwaFRhcmdldHM7dm9pZCAwIT09ZSYmZS5sZW5ndGg+MCYmY29uc29sZS5lcnJvcigiVEhSRUUuUG9pbnRzLnVwZGF0ZU1vcnBoVGFyZ2V0cygpIGRvZXMgbm90IHN1cHBvcnQgVEhSRUUuR2VvbWV0cnkuIFVzZSBUSFJFRS5CdWZmZXJHZW9tZXRyeSBpbnN0ZWFkLiIpfX19KS5wcm90b3R5cGUuaXNQb2ludHM9ITA7KGNsYXNzIGV4dGVuZHMgQ3N0e2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyxsKXtzdXBlcih0LGUsbixvLGksYSxyLHMsbCksdGhpcy5mb3JtYXQ9dm9pZCAwIT09cj9yOlZydCx0aGlzLm1pbkZpbHRlcj12b2lkIDAhPT1hP2E6VHJ0LHRoaXMubWFnRmlsdGVyPXZvaWQgMCE9PWk/aTpUcnQsdGhpcy5nZW5lcmF0ZU1pcG1hcHM9ITE7Y29uc3QgYz10aGlzOyJyZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrImluIHQmJnQucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygoZnVuY3Rpb24gZSgpe2MubmVlZHNVcGRhdGU9ITAsdC5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKGUpfSkpfWNsb25lKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMuaW1hZ2UpLmNvcHkodGhpcyl9dXBkYXRlKCl7Y29uc3QgdD10aGlzLmltYWdlOyExPT09InJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2siaW4gdCYmdC5yZWFkeVN0YXRlPj10LkhBVkVfQ1VSUkVOVF9EQVRBJiYodGhpcy5uZWVkc1VwZGF0ZT0hMCl9fSkucHJvdG90eXBlLmlzVmlkZW9UZXh0dXJlPSEwOyhjbGFzcyBleHRlbmRzIENzdHtjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyLHMsbCxjLGQscCl7c3VwZXIobnVsbCxhLHIscyxsLGMsbyxpLGQscCksdGhpcy5pbWFnZT17d2lkdGg6ZSxoZWlnaHQ6bn0sdGhpcy5taXBtYXBzPXQsdGhpcy5mbGlwWT0hMSx0aGlzLmdlbmVyYXRlTWlwbWFwcz0hMX19KS5wcm90b3R5cGUuaXNDb21wcmVzc2VkVGV4dHVyZT0hMDsoY2xhc3MgZXh0ZW5kcyBDc3R7Y29uc3RydWN0b3IodCxlLG4sbyxpLGEscixzLGwpe3N1cGVyKHQsZSxuLG8saSxhLHIscyxsKSx0aGlzLm5lZWRzVXBkYXRlPSEwfX0pLnByb3RvdHlwZS5pc0NhbnZhc1RleHR1cmU9ITA7KGNsYXNzIGV4dGVuZHMgQ3N0e2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIscyxsLGMpe2lmKChjPXZvaWQgMCE9PWM/YzpVcnQpIT09VXJ0JiZjIT09V3J0KXRocm93IG5ldyBFcnJvcigiRGVwdGhUZXh0dXJlIGZvcm1hdCBtdXN0IGJlIGVpdGhlciBUSFJFRS5EZXB0aEZvcm1hdCBvciBUSFJFRS5EZXB0aFN0ZW5jaWxGb3JtYXQiKTt2b2lkIDA9PT1uJiZjPT09VXJ0JiYobj1JcnQpLHZvaWQgMD09PW4mJmM9PT1XcnQmJihuPUJydCksc3VwZXIobnVsbCxvLGksYSxyLHMsYyxuLGwpLHRoaXMuaW1hZ2U9e3dpZHRoOnQsaGVpZ2h0OmV9LHRoaXMubWFnRmlsdGVyPXZvaWQgMCE9PXI/cjpBcnQsdGhpcy5taW5GaWx0ZXI9dm9pZCAwIT09cz9zOkFydCx0aGlzLmZsaXBZPSExLHRoaXMuZ2VuZXJhdGVNaXBtYXBzPSExfX0pLnByb3RvdHlwZS5pc0RlcHRoVGV4dHVyZT0hMDtjbGFzcyBEZnQgZXh0ZW5kcyBkY3R7Y29uc3RydWN0b3IodD0xLGU9OCxuPTAsbz0yKk1hdGguUEkpe3N1cGVyKCksdGhpcy50eXBlPSJDaXJjbGVHZW9tZXRyeSIsdGhpcy5wYXJhbWV0ZXJzPXtyYWRpdXM6dCxzZWdtZW50czplLHRoZXRhU3RhcnQ6bix0aGV0YUxlbmd0aDpvfSxlPU1hdGgubWF4KDMsZSk7Y29uc3QgaT1bXSxhPVtdLHI9W10scz1bXSxsPW5ldyB3c3QsYz1uZXcgZ3N0O2EucHVzaCgwLDAsMCksci5wdXNoKDAsMCwxKSxzLnB1c2goLjUsLjUpO2ZvcihsZXQgaT0wLGQ9MztpPD1lO2krKyxkKz0zKXtjb25zdCBwPW4raS9lKm87bC54PXQqTWF0aC5jb3MocCksbC55PXQqTWF0aC5zaW4ocCksYS5wdXNoKGwueCxsLnksbC56KSxyLnB1c2goMCwwLDEpLGMueD0oYVtkXS90KzEpLzIsYy55PShhW2QrMV0vdCsxKS8yLHMucHVzaChjLngsYy55KX1mb3IobGV0IHQ9MTt0PD1lO3QrKylpLnB1c2godCx0KzEsMCk7dGhpcy5zZXRJbmRleChpKSx0aGlzLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBlY3QoYSwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoIm5vcm1hbCIsbmV3IGVjdChyLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyBlY3QocywyKSl9c3RhdGljIGZyb21KU09OKHQpe3JldHVybiBuZXcgRGZ0KHQucmFkaXVzLHQuc2VnbWVudHMsdC50aGV0YVN0YXJ0LHQudGhldGFMZW5ndGgpfX1uZXcgd3N0LG5ldyB3c3QsbmV3IHdzdCxuZXcgTGx0O2NsYXNzIFJmdHtjb25zdHJ1Y3Rvcigpe3RoaXMudHlwZT0iQ3VydmUiLHRoaXMuYXJjTGVuZ3RoRGl2aXNpb25zPTIwMH1nZXRQb2ludCgpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkN1cnZlOiAuZ2V0UG9pbnQoKSBub3QgaW1wbGVtZW50ZWQuIiksbnVsbH1nZXRQb2ludEF0KHQsZSl7Y29uc3Qgbj10aGlzLmdldFV0b1RtYXBwaW5nKHQpO3JldHVybiB0aGlzLmdldFBvaW50KG4sZSl9Z2V0UG9pbnRzKHQ9NSl7Y29uc3QgZT1bXTtmb3IobGV0IG49MDtuPD10O24rKyllLnB1c2godGhpcy5nZXRQb2ludChuL3QpKTtyZXR1cm4gZX1nZXRTcGFjZWRQb2ludHModD01KXtjb25zdCBlPVtdO2ZvcihsZXQgbj0wO248PXQ7bisrKWUucHVzaCh0aGlzLmdldFBvaW50QXQobi90KSk7cmV0dXJuIGV9Z2V0TGVuZ3RoKCl7Y29uc3QgdD10aGlzLmdldExlbmd0aHMoKTtyZXR1cm4gdFt0Lmxlbmd0aC0xXX1nZXRMZW5ndGhzKHQ9dGhpcy5hcmNMZW5ndGhEaXZpc2lvbnMpe2lmKHRoaXMuY2FjaGVBcmNMZW5ndGhzJiZ0aGlzLmNhY2hlQXJjTGVuZ3Rocy5sZW5ndGg9PT10KzEmJiF0aGlzLm5lZWRzVXBkYXRlKXJldHVybiB0aGlzLmNhY2hlQXJjTGVuZ3Roczt0aGlzLm5lZWRzVXBkYXRlPSExO2NvbnN0IGU9W107bGV0IG4sbz10aGlzLmdldFBvaW50KDApLGk9MDtlLnB1c2goMCk7Zm9yKGxldCBhPTE7YTw9dDthKyspbj10aGlzLmdldFBvaW50KGEvdCksaSs9bi5kaXN0YW5jZVRvKG8pLGUucHVzaChpKSxvPW47cmV0dXJuIHRoaXMuY2FjaGVBcmNMZW5ndGhzPWUsZX11cGRhdGVBcmNMZW5ndGhzKCl7dGhpcy5uZWVkc1VwZGF0ZT0hMCx0aGlzLmdldExlbmd0aHMoKX1nZXRVdG9UbWFwcGluZyh0LGUpe2NvbnN0IG49dGhpcy5nZXRMZW5ndGhzKCk7bGV0IG89MDtjb25zdCBpPW4ubGVuZ3RoO2xldCBhO2E9ZXx8dCpuW2ktMV07bGV0IHIscz0wLGw9aS0xO2Zvcig7czw9bDspaWYobz1NYXRoLmZsb29yKHMrKGwtcykvMikscj1uW29dLWEscjwwKXM9bysxO2Vsc2V7aWYoIShyPjApKXtsPW87YnJlYWt9bD1vLTF9aWYobz1sLG5bb109PT1hKXJldHVybiBvLyhpLTEpO2NvbnN0IGM9bltvXTtyZXR1cm4obysoYS1jKS8obltvKzFdLWMpKS8oaS0xKX1nZXRUYW5nZW50KHQsZSl7Y29uc3Qgbj0xZS00O2xldCBvPXQtbixpPXQrbjtvPDAmJihvPTApLGk+MSYmKGk9MSk7Y29uc3QgYT10aGlzLmdldFBvaW50KG8pLHI9dGhpcy5nZXRQb2ludChpKSxzPWV8fChhLmlzVmVjdG9yMj9uZXcgZ3N0Om5ldyB3c3QpO3JldHVybiBzLmNvcHkocikuc3ViKGEpLm5vcm1hbGl6ZSgpLHN9Z2V0VGFuZ2VudEF0KHQsZSl7Y29uc3Qgbj10aGlzLmdldFV0b1RtYXBwaW5nKHQpO3JldHVybiB0aGlzLmdldFRhbmdlbnQobixlKX1jb21wdXRlRnJlbmV0RnJhbWVzKHQsZSl7Y29uc3Qgbj1uZXcgd3N0LG89W10saT1bXSxhPVtdLHI9bmV3IHdzdCxzPW5ldyBvbHQ7Zm9yKGxldCBlPTA7ZTw9dDtlKyspe29bZV09dGhpcy5nZXRUYW5nZW50QXQoZS90LG5ldyB3c3QpLG9bZV0ubm9ybWFsaXplKCl9aVswXT1uZXcgd3N0LGFbMF09bmV3IHdzdDtsZXQgbD1OdW1iZXIuTUFYX1ZBTFVFO2NvbnN0IGM9TWF0aC5hYnMob1swXS54KSxkPU1hdGguYWJzKG9bMF0ueSkscD1NYXRoLmFicyhvWzBdLnopO2M8PWwmJihsPWMsbi5zZXQoMSwwLDApKSxkPD1sJiYobD1kLG4uc2V0KDAsMSwwKSkscDw9bCYmbi5zZXQoMCwwLDEpLHIuY3Jvc3NWZWN0b3JzKG9bMF0sbikubm9ybWFsaXplKCksaVswXS5jcm9zc1ZlY3RvcnMob1swXSxyKSxhWzBdLmNyb3NzVmVjdG9ycyhvWzBdLGlbMF0pO2ZvcihsZXQgZT0xO2U8PXQ7ZSsrKXtpZihpW2VdPWlbZS0xXS5jbG9uZSgpLGFbZV09YVtlLTFdLmNsb25lKCksci5jcm9zc1ZlY3RvcnMob1tlLTFdLG9bZV0pLHIubGVuZ3RoKCk+TnVtYmVyLkVQU0lMT04pe3Iubm9ybWFsaXplKCk7Y29uc3QgdD1NYXRoLmFjb3MocHN0KG9bZS0xXS5kb3Qob1tlXSksLTEsMSkpO2lbZV0uYXBwbHlNYXRyaXg0KHMubWFrZVJvdGF0aW9uQXhpcyhyLHQpKX1hW2VdLmNyb3NzVmVjdG9ycyhvW2VdLGlbZV0pfWlmKCEwPT09ZSl7bGV0IGU9TWF0aC5hY29zKHBzdChpWzBdLmRvdChpW3RdKSwtMSwxKSk7ZS89dCxvWzBdLmRvdChyLmNyb3NzVmVjdG9ycyhpWzBdLGlbdF0pKT4wJiYoZT0tZSk7Zm9yKGxldCBuPTE7bjw9dDtuKyspaVtuXS5hcHBseU1hdHJpeDQocy5tYWtlUm90YXRpb25BeGlzKG9bbl0sZSpuKSksYVtuXS5jcm9zc1ZlY3RvcnMob1tuXSxpW25dKX1yZXR1cm57dGFuZ2VudHM6byxub3JtYWxzOmksYmlub3JtYWxzOmF9fWNsb25lKCl7cmV0dXJuKG5ldyB0aGlzLmNvbnN0cnVjdG9yKS5jb3B5KHRoaXMpfWNvcHkodCl7cmV0dXJuIHRoaXMuYXJjTGVuZ3RoRGl2aXNpb25zPXQuYXJjTGVuZ3RoRGl2aXNpb25zLHRoaXN9dG9KU09OKCl7Y29uc3QgdD17bWV0YWRhdGE6e3ZlcnNpb246NC41LHR5cGU6IkN1cnZlIixnZW5lcmF0b3I6IkN1cnZlLnRvSlNPTiJ9fTtyZXR1cm4gdC5hcmNMZW5ndGhEaXZpc2lvbnM9dGhpcy5hcmNMZW5ndGhEaXZpc2lvbnMsdC50eXBlPXRoaXMudHlwZSx0fWZyb21KU09OKHQpe3JldHVybiB0aGlzLmFyY0xlbmd0aERpdmlzaW9ucz10LmFyY0xlbmd0aERpdmlzaW9ucyx0aGlzfX1jbGFzcyBFZnQgZXh0ZW5kcyBSZnR7Y29uc3RydWN0b3IodD0wLGU9MCxuPTEsbz0xLGk9MCxhPTIqTWF0aC5QSSxyPSExLHM9MCl7c3VwZXIoKSx0aGlzLnR5cGU9IkVsbGlwc2VDdXJ2ZSIsdGhpcy5hWD10LHRoaXMuYVk9ZSx0aGlzLnhSYWRpdXM9bix0aGlzLnlSYWRpdXM9byx0aGlzLmFTdGFydEFuZ2xlPWksdGhpcy5hRW5kQW5nbGU9YSx0aGlzLmFDbG9ja3dpc2U9cix0aGlzLmFSb3RhdGlvbj1zfWdldFBvaW50KHQsZSl7Y29uc3Qgbj1lfHxuZXcgZ3N0LG89MipNYXRoLlBJO2xldCBpPXRoaXMuYUVuZEFuZ2xlLXRoaXMuYVN0YXJ0QW5nbGU7Y29uc3QgYT1NYXRoLmFicyhpKTxOdW1iZXIuRVBTSUxPTjtmb3IoO2k8MDspaSs9bztmb3IoO2k+bzspaS09bztpPE51bWJlci5FUFNJTE9OJiYoaT1hPzA6byksITAhPT10aGlzLmFDbG9ja3dpc2V8fGF8fChpPT09bz9pPS1vOmktPW8pO2NvbnN0IHI9dGhpcy5hU3RhcnRBbmdsZSt0Kmk7bGV0IHM9dGhpcy5hWCt0aGlzLnhSYWRpdXMqTWF0aC5jb3MociksbD10aGlzLmFZK3RoaXMueVJhZGl1cypNYXRoLnNpbihyKTtpZigwIT09dGhpcy5hUm90YXRpb24pe2NvbnN0IHQ9TWF0aC5jb3ModGhpcy5hUm90YXRpb24pLGU9TWF0aC5zaW4odGhpcy5hUm90YXRpb24pLG49cy10aGlzLmFYLG89bC10aGlzLmFZO3M9bip0LW8qZSt0aGlzLmFYLGw9biplK28qdCt0aGlzLmFZfXJldHVybiBuLnNldChzLGwpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5hWD10LmFYLHRoaXMuYVk9dC5hWSx0aGlzLnhSYWRpdXM9dC54UmFkaXVzLHRoaXMueVJhZGl1cz10LnlSYWRpdXMsdGhpcy5hU3RhcnRBbmdsZT10LmFTdGFydEFuZ2xlLHRoaXMuYUVuZEFuZ2xlPXQuYUVuZEFuZ2xlLHRoaXMuYUNsb2Nrd2lzZT10LmFDbG9ja3dpc2UsdGhpcy5hUm90YXRpb249dC5hUm90YXRpb24sdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LmFYPXRoaXMuYVgsdC5hWT10aGlzLmFZLHQueFJhZGl1cz10aGlzLnhSYWRpdXMsdC55UmFkaXVzPXRoaXMueVJhZGl1cyx0LmFTdGFydEFuZ2xlPXRoaXMuYVN0YXJ0QW5nbGUsdC5hRW5kQW5nbGU9dGhpcy5hRW5kQW5nbGUsdC5hQ2xvY2t3aXNlPXRoaXMuYUNsb2Nrd2lzZSx0LmFSb3RhdGlvbj10aGlzLmFSb3RhdGlvbix0fWZyb21KU09OKHQpe3JldHVybiBzdXBlci5mcm9tSlNPTih0KSx0aGlzLmFYPXQuYVgsdGhpcy5hWT10LmFZLHRoaXMueFJhZGl1cz10LnhSYWRpdXMsdGhpcy55UmFkaXVzPXQueVJhZGl1cyx0aGlzLmFTdGFydEFuZ2xlPXQuYVN0YXJ0QW5nbGUsdGhpcy5hRW5kQW5nbGU9dC5hRW5kQW5nbGUsdGhpcy5hQ2xvY2t3aXNlPXQuYUNsb2Nrd2lzZSx0aGlzLmFSb3RhdGlvbj10LmFSb3RhdGlvbix0aGlzfX1FZnQucHJvdG90eXBlLmlzRWxsaXBzZUN1cnZlPSEwO2NsYXNzIEFmdCBleHRlbmRzIEVmdHtjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSl7c3VwZXIodCxlLG4sbixvLGksYSksdGhpcy50eXBlPSJBcmNDdXJ2ZSJ9fWZ1bmN0aW9uIFRmdCgpe2xldCB0PTAsZT0wLG49MCxvPTA7ZnVuY3Rpb24gaShpLGEscixzKXt0PWksZT1yLG49LTMqaSszKmEtMipyLXMsbz0yKmktMiphK3Irc31yZXR1cm57aW5pdENhdG11bGxSb206ZnVuY3Rpb24odCxlLG4sbyxhKXtpKGUsbixhKihuLXQpLGEqKG8tZSkpfSxpbml0Tm9udW5pZm9ybUNhdG11bGxSb206ZnVuY3Rpb24odCxlLG4sbyxhLHIscyl7bGV0IGw9KGUtdCkvYS0obi10KS8oYStyKSsobi1lKS9yLGM9KG4tZSkvci0oby1lKS8ocitzKSsoby1uKS9zO2wqPXIsYyo9cixpKGUsbixsLGMpfSxjYWxjOmZ1bmN0aW9uKGkpe2NvbnN0IGE9aSppO3JldHVybiB0K2UqaStuKmErbyooYSppKX19fUFmdC5wcm90b3R5cGUuaXNBcmNDdXJ2ZT0hMDtjb25zdCBOZnQ9bmV3IHdzdCx6ZnQ9bmV3IFRmdCxJZnQ9bmV3IFRmdCxIZnQ9bmV3IFRmdDtjbGFzcyBGZnQgZXh0ZW5kcyBSZnR7Y29uc3RydWN0b3IodD1bXSxlPSExLG49ImNlbnRyaXBldGFsIixvPS41KXtzdXBlcigpLHRoaXMudHlwZT0iQ2F0bXVsbFJvbUN1cnZlMyIsdGhpcy5wb2ludHM9dCx0aGlzLmNsb3NlZD1lLHRoaXMuY3VydmVUeXBlPW4sdGhpcy50ZW5zaW9uPW99Z2V0UG9pbnQodCxlPW5ldyB3c3Qpe2NvbnN0IG49ZSxvPXRoaXMucG9pbnRzLGk9by5sZW5ndGgsYT0oaS0odGhpcy5jbG9zZWQ/MDoxKSkqdDtsZXQgcixzLGw9TWF0aC5mbG9vcihhKSxjPWEtbDt0aGlzLmNsb3NlZD9sKz1sPjA/MDooTWF0aC5mbG9vcihNYXRoLmFicyhsKS9pKSsxKSppOjA9PT1jJiZsPT09aS0xJiYobD1pLTIsYz0xKSx0aGlzLmNsb3NlZHx8bD4wP3I9b1sobC0xKSVpXTooTmZ0LnN1YlZlY3RvcnMob1swXSxvWzFdKS5hZGQob1swXSkscj1OZnQpO2NvbnN0IGQ9b1tsJWldLHA9b1sobCsxKSVpXTtpZih0aGlzLmNsb3NlZHx8bCsyPGk/cz1vWyhsKzIpJWldOihOZnQuc3ViVmVjdG9ycyhvW2ktMV0sb1tpLTJdKS5hZGQob1tpLTFdKSxzPU5mdCksImNlbnRyaXBldGFsIj09PXRoaXMuY3VydmVUeXBlfHwiY2hvcmRhbCI9PT10aGlzLmN1cnZlVHlwZSl7Y29uc3QgdD0iY2hvcmRhbCI9PT10aGlzLmN1cnZlVHlwZT8uNTouMjU7bGV0IGU9TWF0aC5wb3coci5kaXN0YW5jZVRvU3F1YXJlZChkKSx0KSxuPU1hdGgucG93KGQuZGlzdGFuY2VUb1NxdWFyZWQocCksdCksbz1NYXRoLnBvdyhwLmRpc3RhbmNlVG9TcXVhcmVkKHMpLHQpO248MWUtNCYmKG49MSksZTwxZS00JiYoZT1uKSxvPDFlLTQmJihvPW4pLHpmdC5pbml0Tm9udW5pZm9ybUNhdG11bGxSb20oci54LGQueCxwLngscy54LGUsbixvKSxJZnQuaW5pdE5vbnVuaWZvcm1DYXRtdWxsUm9tKHIueSxkLnkscC55LHMueSxlLG4sbyksSGZ0LmluaXROb251bmlmb3JtQ2F0bXVsbFJvbShyLnosZC56LHAueixzLnosZSxuLG8pfWVsc2UiY2F0bXVsbHJvbSI9PT10aGlzLmN1cnZlVHlwZSYmKHpmdC5pbml0Q2F0bXVsbFJvbShyLngsZC54LHAueCxzLngsdGhpcy50ZW5zaW9uKSxJZnQuaW5pdENhdG11bGxSb20oci55LGQueSxwLnkscy55LHRoaXMudGVuc2lvbiksSGZ0LmluaXRDYXRtdWxsUm9tKHIueixkLnoscC56LHMueix0aGlzLnRlbnNpb24pKTtyZXR1cm4gbi5zZXQoemZ0LmNhbGMoYyksSWZ0LmNhbGMoYyksSGZ0LmNhbGMoYykpLG59Y29weSh0KXtzdXBlci5jb3B5KHQpLHRoaXMucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dC5wb2ludHMubGVuZ3RoO2U8bjtlKyspe3RoaXMucG9pbnRzLnB1c2godC5wb2ludHNbZV0uY2xvbmUoKSl9cmV0dXJuIHRoaXMuY2xvc2VkPXQuY2xvc2VkLHRoaXMuY3VydmVUeXBlPXQuY3VydmVUeXBlLHRoaXMudGVuc2lvbj10LnRlbnNpb24sdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3QucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dGhpcy5wb2ludHMubGVuZ3RoO2U8bjtlKyspe3QucG9pbnRzLnB1c2godGhpcy5wb2ludHNbZV0udG9BcnJheSgpKX1yZXR1cm4gdC5jbG9zZWQ9dGhpcy5jbG9zZWQsdC5jdXJ2ZVR5cGU9dGhpcy5jdXJ2ZVR5cGUsdC50ZW5zaW9uPXRoaXMudGVuc2lvbix0fWZyb21KU09OKHQpe3N1cGVyLmZyb21KU09OKHQpLHRoaXMucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dC5wb2ludHMubGVuZ3RoO2U8bjtlKyspe2NvbnN0IG49dC5wb2ludHNbZV07dGhpcy5wb2ludHMucHVzaCgobmV3IHdzdCkuZnJvbUFycmF5KG4pKX1yZXR1cm4gdGhpcy5jbG9zZWQ9dC5jbG9zZWQsdGhpcy5jdXJ2ZVR5cGU9dC5jdXJ2ZVR5cGUsdGhpcy50ZW5zaW9uPXQudGVuc2lvbix0aGlzfX1mdW5jdGlvbiBMZnQodCxlLG4sbyxpKXtjb25zdCBhPS41KihvLWUpLHI9LjUqKGktbikscz10KnQ7cmV0dXJuKDIqbi0yKm8rYStyKSoodCpzKSsoLTMqbiszKm8tMiphLXIpKnMrYSp0K259ZnVuY3Rpb24gQmZ0KHQsZSxuLG8pe3JldHVybihmdW5jdGlvbiBpKHQsZSl7Y29uc3Qgbj0xLXQ7cmV0dXJuIG4qbiplfSkodCxlKSsoZnVuY3Rpb24gYSh0LGUpe3JldHVybiAyKigxLXQpKnQqZX0pKHQsbikrKGZ1bmN0aW9uIHIodCxlKXtyZXR1cm4gdCp0KmV9KSh0LG8pfWZ1bmN0aW9uIFZmdCh0LGUsbixvLGkpe3JldHVybihmdW5jdGlvbiBhKHQsZSl7Y29uc3Qgbj0xLXQ7cmV0dXJuIG4qbipuKmV9KSh0LGUpKyhmdW5jdGlvbiByKHQsZSl7Y29uc3Qgbj0xLXQ7cmV0dXJuIDMqbipuKnQqZX0pKHQsbikrKGZ1bmN0aW9uIHModCxlKXtyZXR1cm4gMyooMS10KSp0KnQqZX0pKHQsbykrKGZ1bmN0aW9uIGwodCxlKXtyZXR1cm4gdCp0KnQqZX0pKHQsaSl9RmZ0LnByb3RvdHlwZS5pc0NhdG11bGxSb21DdXJ2ZTM9ITA7Y2xhc3MgamZ0IGV4dGVuZHMgUmZ0e2NvbnN0cnVjdG9yKHQ9bmV3IGdzdCxlPW5ldyBnc3Qsbj1uZXcgZ3N0LG89bmV3IGdzdCl7c3VwZXIoKSx0aGlzLnR5cGU9IkN1YmljQmV6aWVyQ3VydmUiLHRoaXMudjA9dCx0aGlzLnYxPWUsdGhpcy52Mj1uLHRoaXMudjM9b31nZXRQb2ludCh0LGU9bmV3IGdzdCl7Y29uc3Qgbj1lLG89dGhpcy52MCxpPXRoaXMudjEsYT10aGlzLnYyLHI9dGhpcy52MztyZXR1cm4gbi5zZXQoVmZ0KHQsby54LGkueCxhLngsci54KSxWZnQodCxvLnksaS55LGEueSxyLnkpKSxufWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy52MC5jb3B5KHQudjApLHRoaXMudjEuY29weSh0LnYxKSx0aGlzLnYyLmNvcHkodC52MiksdGhpcy52My5jb3B5KHQudjMpLHRoaXN9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC52MD10aGlzLnYwLnRvQXJyYXkoKSx0LnYxPXRoaXMudjEudG9BcnJheSgpLHQudjI9dGhpcy52Mi50b0FycmF5KCksdC52Mz10aGlzLnYzLnRvQXJyYXkoKSx0fWZyb21KU09OKHQpe3JldHVybiBzdXBlci5mcm9tSlNPTih0KSx0aGlzLnYwLmZyb21BcnJheSh0LnYwKSx0aGlzLnYxLmZyb21BcnJheSh0LnYxKSx0aGlzLnYyLmZyb21BcnJheSh0LnYyKSx0aGlzLnYzLmZyb21BcnJheSh0LnYzKSx0aGlzfX1qZnQucHJvdG90eXBlLmlzQ3ViaWNCZXppZXJDdXJ2ZT0hMDtjbGFzcyBVZnQgZXh0ZW5kcyBSZnR7Y29uc3RydWN0b3IodD1uZXcgd3N0LGU9bmV3IHdzdCxuPW5ldyB3c3Qsbz1uZXcgd3N0KXtzdXBlcigpLHRoaXMudHlwZT0iQ3ViaWNCZXppZXJDdXJ2ZTMiLHRoaXMudjA9dCx0aGlzLnYxPWUsdGhpcy52Mj1uLHRoaXMudjM9b31nZXRQb2ludCh0LGU9bmV3IHdzdCl7Y29uc3Qgbj1lLG89dGhpcy52MCxpPXRoaXMudjEsYT10aGlzLnYyLHI9dGhpcy52MztyZXR1cm4gbi5zZXQoVmZ0KHQsby54LGkueCxhLngsci54KSxWZnQodCxvLnksaS55LGEueSxyLnkpLFZmdCh0LG8ueixpLnosYS56LHIueikpLG59Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnYwLmNvcHkodC52MCksdGhpcy52MS5jb3B5KHQudjEpLHRoaXMudjIuY29weSh0LnYyKSx0aGlzLnYzLmNvcHkodC52MyksdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LnYwPXRoaXMudjAudG9BcnJheSgpLHQudjE9dGhpcy52MS50b0FycmF5KCksdC52Mj10aGlzLnYyLnRvQXJyYXkoKSx0LnYzPXRoaXMudjMudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjAuZnJvbUFycmF5KHQudjApLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXMudjMuZnJvbUFycmF5KHQudjMpLHRoaXN9fVVmdC5wcm90b3R5cGUuaXNDdWJpY0JlemllckN1cnZlMz0hMDtjbGFzcyBXZnQgZXh0ZW5kcyBSZnR7Y29uc3RydWN0b3IodD1uZXcgZ3N0LGU9bmV3IGdzdCl7c3VwZXIoKSx0aGlzLnR5cGU9IkxpbmVDdXJ2ZSIsdGhpcy52MT10LHRoaXMudjI9ZX1nZXRQb2ludCh0LGU9bmV3IGdzdCl7Y29uc3Qgbj1lO3JldHVybiAxPT09dD9uLmNvcHkodGhpcy52Mik6KG4uY29weSh0aGlzLnYyKS5zdWIodGhpcy52MSksbi5tdWx0aXBseVNjYWxhcih0KS5hZGQodGhpcy52MSkpLG59Z2V0UG9pbnRBdCh0LGUpe3JldHVybiB0aGlzLmdldFBvaW50KHQsZSl9Z2V0VGFuZ2VudCh0LGUpe2NvbnN0IG49ZXx8bmV3IGdzdDtyZXR1cm4gbi5jb3B5KHRoaXMudjIpLnN1Yih0aGlzLnYxKS5ub3JtYWxpemUoKSxufWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy52MS5jb3B5KHQudjEpLHRoaXMudjIuY29weSh0LnYyKSx0aGlzfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQudjE9dGhpcy52MS50b0FycmF5KCksdC52Mj10aGlzLnYyLnRvQXJyYXkoKSx0fWZyb21KU09OKHQpe3JldHVybiBzdXBlci5mcm9tSlNPTih0KSx0aGlzLnYxLmZyb21BcnJheSh0LnYxKSx0aGlzLnYyLmZyb21BcnJheSh0LnYyKSx0aGlzfX1XZnQucHJvdG90eXBlLmlzTGluZUN1cnZlPSEwO2NsYXNzIEdmdCBleHRlbmRzIFJmdHtjb25zdHJ1Y3Rvcih0PW5ldyBnc3QsZT1uZXcgZ3N0LG49bmV3IGdzdCl7c3VwZXIoKSx0aGlzLnR5cGU9IlF1YWRyYXRpY0JlemllckN1cnZlIix0aGlzLnYwPXQsdGhpcy52MT1lLHRoaXMudjI9bn1nZXRQb2ludCh0LGU9bmV3IGdzdCl7Y29uc3Qgbj1lLG89dGhpcy52MCxpPXRoaXMudjEsYT10aGlzLnYyO3JldHVybiBuLnNldChCZnQodCxvLngsaS54LGEueCksQmZ0KHQsby55LGkueSxhLnkpKSxufWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy52MC5jb3B5KHQudjApLHRoaXMudjEuY29weSh0LnYxKSx0aGlzLnYyLmNvcHkodC52MiksdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LnYwPXRoaXMudjAudG9BcnJheSgpLHQudjE9dGhpcy52MS50b0FycmF5KCksdC52Mj10aGlzLnYyLnRvQXJyYXkoKSx0fWZyb21KU09OKHQpe3JldHVybiBzdXBlci5mcm9tSlNPTih0KSx0aGlzLnYwLmZyb21BcnJheSh0LnYwKSx0aGlzLnYxLmZyb21BcnJheSh0LnYxKSx0aGlzLnYyLmZyb21BcnJheSh0LnYyKSx0aGlzfX1HZnQucHJvdG90eXBlLmlzUXVhZHJhdGljQmV6aWVyQ3VydmU9ITA7Y2xhc3MgWWZ0IGV4dGVuZHMgUmZ0e2NvbnN0cnVjdG9yKHQ9bmV3IHdzdCxlPW5ldyB3c3Qsbj1uZXcgd3N0KXtzdXBlcigpLHRoaXMudHlwZT0iUXVhZHJhdGljQmV6aWVyQ3VydmUzIix0aGlzLnYwPXQsdGhpcy52MT1lLHRoaXMudjI9bn1nZXRQb2ludCh0LGU9bmV3IHdzdCl7Y29uc3Qgbj1lLG89dGhpcy52MCxpPXRoaXMudjEsYT10aGlzLnYyO3JldHVybiBuLnNldChCZnQodCxvLngsaS54LGEueCksQmZ0KHQsby55LGkueSxhLnkpLEJmdCh0LG8ueixpLnosYS56KSksbn1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMudjAuY29weSh0LnYwKSx0aGlzLnYxLmNvcHkodC52MSksdGhpcy52Mi5jb3B5KHQudjIpLHRoaXN9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC52MD10aGlzLnYwLnRvQXJyYXkoKSx0LnYxPXRoaXMudjEudG9BcnJheSgpLHQudjI9dGhpcy52Mi50b0FycmF5KCksdH1mcm9tSlNPTih0KXtyZXR1cm4gc3VwZXIuZnJvbUpTT04odCksdGhpcy52MC5mcm9tQXJyYXkodC52MCksdGhpcy52MS5mcm9tQXJyYXkodC52MSksdGhpcy52Mi5mcm9tQXJyYXkodC52MiksdGhpc319WWZ0LnByb3RvdHlwZS5pc1F1YWRyYXRpY0JlemllckN1cnZlMz0hMDtjbGFzcyBxZnQgZXh0ZW5kcyBSZnR7Y29uc3RydWN0b3IodD1bXSl7c3VwZXIoKSx0aGlzLnR5cGU9IlNwbGluZUN1cnZlIix0aGlzLnBvaW50cz10fWdldFBvaW50KHQsZT1uZXcgZ3N0KXtjb25zdCBuPWUsbz10aGlzLnBvaW50cyxpPShvLmxlbmd0aC0xKSp0LGE9TWF0aC5mbG9vcihpKSxyPWktYSxzPW9bMD09PWE/YTphLTFdLGw9b1thXSxjPW9bYT5vLmxlbmd0aC0yP28ubGVuZ3RoLTE6YSsxXSxkPW9bYT5vLmxlbmd0aC0zP28ubGVuZ3RoLTE6YSsyXTtyZXR1cm4gbi5zZXQoTGZ0KHIscy54LGwueCxjLngsZC54KSxMZnQocixzLnksbC55LGMueSxkLnkpKSxufWNvcHkodCl7c3VwZXIuY29weSh0KSx0aGlzLnBvaW50cz1bXTtmb3IobGV0IGU9MCxuPXQucG9pbnRzLmxlbmd0aDtlPG47ZSsrKXt0aGlzLnBvaW50cy5wdXNoKHQucG9pbnRzW2VdLmNsb25lKCkpfXJldHVybiB0aGlzfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKCk7dC5wb2ludHM9W107Zm9yKGxldCBlPTAsbj10aGlzLnBvaW50cy5sZW5ndGg7ZTxuO2UrKyl7dC5wb2ludHMucHVzaCh0aGlzLnBvaW50c1tlXS50b0FycmF5KCkpfXJldHVybiB0fWZyb21KU09OKHQpe3N1cGVyLmZyb21KU09OKHQpLHRoaXMucG9pbnRzPVtdO2ZvcihsZXQgZT0wLG49dC5wb2ludHMubGVuZ3RoO2U8bjtlKyspe2NvbnN0IG49dC5wb2ludHNbZV07dGhpcy5wb2ludHMucHVzaCgobmV3IGdzdCkuZnJvbUFycmF5KG4pKX1yZXR1cm4gdGhpc319cWZ0LnByb3RvdHlwZS5pc1NwbGluZUN1cnZlPSEwO3ZhciBaZnQ9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsQXJjQ3VydmU6QWZ0LENhdG11bGxSb21DdXJ2ZTM6RmZ0LEN1YmljQmV6aWVyQ3VydmU6amZ0LEN1YmljQmV6aWVyQ3VydmUzOlVmdCxFbGxpcHNlQ3VydmU6RWZ0LExpbmVDdXJ2ZTpXZnQsTGluZUN1cnZlMzpjbGFzcyBleHRlbmRzIFJmdHtjb25zdHJ1Y3Rvcih0PW5ldyB3c3QsZT1uZXcgd3N0KXtzdXBlcigpLHRoaXMudHlwZT0iTGluZUN1cnZlMyIsdGhpcy5pc0xpbmVDdXJ2ZTM9ITAsdGhpcy52MT10LHRoaXMudjI9ZX1nZXRQb2ludCh0LGU9bmV3IHdzdCl7Y29uc3Qgbj1lO3JldHVybiAxPT09dD9uLmNvcHkodGhpcy52Mik6KG4uY29weSh0aGlzLnYyKS5zdWIodGhpcy52MSksbi5tdWx0aXBseVNjYWxhcih0KS5hZGQodGhpcy52MSkpLG59Z2V0UG9pbnRBdCh0LGUpe3JldHVybiB0aGlzLmdldFBvaW50KHQsZSl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnYxLmNvcHkodC52MSksdGhpcy52Mi5jb3B5KHQudjIpLHRoaXN9dG9KU09OKCl7Y29uc3QgdD1zdXBlci50b0pTT04oKTtyZXR1cm4gdC52MT10aGlzLnYxLnRvQXJyYXkoKSx0LnYyPXRoaXMudjIudG9BcnJheSgpLHR9ZnJvbUpTT04odCl7cmV0dXJuIHN1cGVyLmZyb21KU09OKHQpLHRoaXMudjEuZnJvbUFycmF5KHQudjEpLHRoaXMudjIuZnJvbUFycmF5KHQudjIpLHRoaXN9fSxRdWFkcmF0aWNCZXppZXJDdXJ2ZTpHZnQsUXVhZHJhdGljQmV6aWVyQ3VydmUzOllmdCxTcGxpbmVDdXJ2ZTpxZnR9KTtjb25zdCBYZnQ9ZnVuY3Rpb24odCxlLG49Mil7Y29uc3Qgbz1lJiZlLmxlbmd0aCxpPW8/ZVswXSpuOnQubGVuZ3RoO2xldCBhPUtmdCh0LDAsaSxuLCEwKTtjb25zdCByPVtdO2lmKCFhfHxhLm5leHQ9PT1hLnByZXYpcmV0dXJuIHI7bGV0IHMsbCxjLGQscCxtLGY7aWYobyYmKGE9KGZ1bmN0aW9uIHUodCxlLG4sbyl7Y29uc3QgaT1bXTtsZXQgYSxyLHMsbCxjO2ZvcihhPTAscj1lLmxlbmd0aDthPHI7YSsrKXM9ZVthXSpvLGw9YTxyLTE/ZVthKzFdKm86dC5sZW5ndGgsYz1LZnQodCxzLGwsbywhMSksYz09PWMubmV4dCYmKGMuc3RlaW5lcj0hMCksaS5wdXNoKHN1dChjKSk7Zm9yKGkuc29ydChvdXQpLGE9MDthPGkubGVuZ3RoO2ErKylpdXQoaVthXSxuKSxuPUpmdChuLG4ubmV4dCk7cmV0dXJuIG59KSh0LGUsYSxuKSksdC5sZW5ndGg+ODAqbil7cz1jPXRbMF0sbD1kPXRbMV07Zm9yKGxldCBlPW47ZTxpO2UrPW4pcD10W2VdLG09dFtlKzFdLHA8cyYmKHM9cCksbTxsJiYobD1tKSxwPmMmJihjPXApLG0+ZCYmKGQ9bSk7Zj1NYXRoLm1heChjLXMsZC1sKSxmPTAhPT1mPzEvZjowfXJldHVybiBRZnQoYSxyLG4scyxsLGYpLHJ9O2Z1bmN0aW9uIEtmdCh0LGUsbixvLGkpe2xldCBhLHI7aWYoaT09PShmdW5jdGlvbiBzKHQsZSxuLG8pe2xldCBpPTA7Zm9yKGxldCBhPWUscj1uLW87YTxuO2ErPW8paSs9KHRbcl0tdFthXSkqKHRbYSsxXSt0W3IrMV0pLHI9YTtyZXR1cm4gaX0pKHQsZSxuLG8pPjApZm9yKGE9ZTthPG47YSs9bylyPWJ1dChhLHRbYV0sdFthKzFdLHIpO2Vsc2UgZm9yKGE9bi1vO2E+PWU7YS09bylyPWJ1dChhLHRbYV0sdFthKzFdLHIpO3JldHVybiByJiZwdXQocixyLm5leHQpJiYoeXV0KHIpLHI9ci5uZXh0KSxyfWZ1bmN0aW9uIEpmdCh0LGUpe2lmKCF0KXJldHVybiB0O2V8fChlPXQpO2xldCBuLG89dDtkb3tpZihuPSExLG8uc3RlaW5lcnx8IXB1dChvLG8ubmV4dCkmJjAhPT1kdXQoby5wcmV2LG8sby5uZXh0KSlvPW8ubmV4dDtlbHNle2lmKHl1dChvKSxvPWU9by5wcmV2LG89PT1vLm5leHQpYnJlYWs7bj0hMH19d2hpbGUobnx8byE9PWUpO3JldHVybiBlfWZ1bmN0aW9uIFFmdCh0LGUsbixvLGksYSxyKXtpZighdClyZXR1cm47IXImJmEmJihmdW5jdGlvbiBzKHQsZSxuLG8pe2xldCBpPXQ7ZG97bnVsbD09PWkueiYmKGkuej1ydXQoaS54LGkueSxlLG4sbykpLGkucHJldlo9aS5wcmV2LGkubmV4dFo9aS5uZXh0LGk9aS5uZXh0fXdoaWxlKGkhPT10KTtpLnByZXZaLm5leHRaPW51bGwsaS5wcmV2Wj1udWxsLChmdW5jdGlvbiBhKHQpe2xldCBlLG4sbyxpLGEscixzLGwsYz0xO2Rve2ZvcihuPXQsdD1udWxsLGE9bnVsbCxyPTA7bjspe2ZvcihyKyssbz1uLHM9MCxlPTA7ZTxjJiYocysrLG89by5uZXh0WixvKTtlKyspO2ZvcihsPWM7cz4wfHxsPjAmJm87KTAhPT1zJiYoMD09PWx8fCFvfHxuLno8PW8ueik/KGk9bixuPW4ubmV4dFoscy0tKTooaT1vLG89by5uZXh0WixsLS0pLGE/YS5uZXh0Wj1pOnQ9aSxpLnByZXZaPWEsYT1pO249b31hLm5leHRaPW51bGwsYyo9Mn13aGlsZShyPjEpO3JldHVybiB0fSkoaSl9KSh0LG8saSxhKTtsZXQgbCxjLGQ9dDtmb3IoO3QucHJldiE9PXQubmV4dDspaWYobD10LnByZXYsYz10Lm5leHQsYT90dXQodCxvLGksYSk6JGZ0KHQpKWUucHVzaChsLmkvbiksZS5wdXNoKHQuaS9uKSxlLnB1c2goYy5pL24pLHl1dCh0KSx0PWMubmV4dCxkPWMubmV4dDtlbHNlIGlmKCh0PWMpPT09ZCl7cj8xPT09cj9RZnQodD1ldXQoSmZ0KHQpLGUsbiksZSxuLG8saSxhLDIpOjI9PT1yJiZudXQodCxlLG4sbyxpLGEpOlFmdChKZnQodCksZSxuLG8saSxhLDEpO2JyZWFrfX1mdW5jdGlvbiAkZnQodCl7Y29uc3QgZT10LnByZXYsbj10LG89dC5uZXh0O2lmKGR1dChlLG4sbyk+PTApcmV0dXJuITE7bGV0IGk9dC5uZXh0Lm5leHQ7Zm9yKDtpIT09dC5wcmV2Oyl7aWYobHV0KGUueCxlLnksbi54LG4ueSxvLngsby55LGkueCxpLnkpJiZkdXQoaS5wcmV2LGksaS5uZXh0KT49MClyZXR1cm4hMTtpPWkubmV4dH1yZXR1cm4hMH1mdW5jdGlvbiB0dXQodCxlLG4sbyl7Y29uc3QgaT10LnByZXYsYT10LHI9dC5uZXh0O2lmKGR1dChpLGEscik+PTApcmV0dXJuITE7Y29uc3Qgcz1pLng+YS54P2kueD5yLng/aS54OnIueDphLng+ci54P2EueDpyLngsbD1pLnk+YS55P2kueT5yLnk/aS55OnIueTphLnk+ci55P2EueTpyLnksYz1ydXQoaS54PGEueD9pLng8ci54P2kueDpyLng6YS54PHIueD9hLng6ci54LGkueTxhLnk/aS55PHIueT9pLnk6ci55OmEueTxyLnk/YS55OnIueSxlLG4sbyksZD1ydXQocyxsLGUsbixvKTtsZXQgcD10LnByZXZaLG09dC5uZXh0Wjtmb3IoO3AmJnAuej49YyYmbSYmbS56PD1kOyl7aWYocCE9PXQucHJldiYmcCE9PXQubmV4dCYmbHV0KGkueCxpLnksYS54LGEueSxyLngsci55LHAueCxwLnkpJiZkdXQocC5wcmV2LHAscC5uZXh0KT49MClyZXR1cm4hMTtpZihwPXAucHJldlosbSE9PXQucHJldiYmbSE9PXQubmV4dCYmbHV0KGkueCxpLnksYS54LGEueSxyLngsci55LG0ueCxtLnkpJiZkdXQobS5wcmV2LG0sbS5uZXh0KT49MClyZXR1cm4hMTttPW0ubmV4dFp9Zm9yKDtwJiZwLno+PWM7KXtpZihwIT09dC5wcmV2JiZwIT09dC5uZXh0JiZsdXQoaS54LGkueSxhLngsYS55LHIueCxyLnkscC54LHAueSkmJmR1dChwLnByZXYscCxwLm5leHQpPj0wKXJldHVybiExO3A9cC5wcmV2Wn1mb3IoO20mJm0uejw9ZDspe2lmKG0hPT10LnByZXYmJm0hPT10Lm5leHQmJmx1dChpLngsaS55LGEueCxhLnksci54LHIueSxtLngsbS55KSYmZHV0KG0ucHJldixtLG0ubmV4dCk+PTApcmV0dXJuITE7bT1tLm5leHRafXJldHVybiEwfWZ1bmN0aW9uIGV1dCh0LGUsbil7bGV0IG89dDtkb3tjb25zdCBpPW8ucHJldixhPW8ubmV4dC5uZXh0OyFwdXQoaSxhKSYmbXV0KGksbyxvLm5leHQsYSkmJmd1dChpLGEpJiZndXQoYSxpKSYmKGUucHVzaChpLmkvbiksZS5wdXNoKG8uaS9uKSxlLnB1c2goYS5pL24pLHl1dChvKSx5dXQoby5uZXh0KSxvPXQ9YSksbz1vLm5leHR9d2hpbGUobyE9PXQpO3JldHVybiBKZnQobyl9ZnVuY3Rpb24gbnV0KHQsZSxuLG8saSxhKXtsZXQgcj10O2Rve2xldCB0PXIubmV4dC5uZXh0O2Zvcig7dCE9PXIucHJldjspe2lmKHIuaSE9PXQuaSYmY3V0KHIsdCkpe2xldCBzPWh1dChyLHQpO3JldHVybiByPUpmdChyLHIubmV4dCkscz1KZnQocyxzLm5leHQpLFFmdChyLGUsbixvLGksYSksdm9pZCBRZnQocyxlLG4sbyxpLGEpfXQ9dC5uZXh0fXI9ci5uZXh0fXdoaWxlKHIhPT10KX1mdW5jdGlvbiBvdXQodCxlKXtyZXR1cm4gdC54LWUueH1mdW5jdGlvbiBpdXQodCxlKXtpZihlPShmdW5jdGlvbiBuKHQsZSl7bGV0IG49ZTtjb25zdCBvPXQueCxpPXQueTtsZXQgYSxyPS0xLzA7ZG97aWYoaTw9bi55JiZpPj1uLm5leHQueSYmbi5uZXh0LnkhPT1uLnkpe2NvbnN0IHQ9bi54KyhpLW4ueSkqKG4ubmV4dC54LW4ueCkvKG4ubmV4dC55LW4ueSk7aWYodDw9byYmdD5yKXtpZihyPXQsdD09PW8pe2lmKGk9PT1uLnkpcmV0dXJuIG47aWYoaT09PW4ubmV4dC55KXJldHVybiBuLm5leHR9YT1uLng8bi5uZXh0Lng/bjpuLm5leHR9fW49bi5uZXh0fXdoaWxlKG4hPT1lKTtpZighYSlyZXR1cm4gbnVsbDtpZihvPT09cilyZXR1cm4gYTtjb25zdCBzPWEsbD1hLngsYz1hLnk7bGV0IGQscD0xLzA7bj1hO2Rve28+PW4ueCYmbi54Pj1sJiZvIT09bi54JiZsdXQoaTxjP286cixpLGwsYyxpPGM/cjpvLGksbi54LG4ueSkmJihkPU1hdGguYWJzKGktbi55KS8oby1uLngpLGd1dChuLHQpJiYoZDxwfHxkPT09cCYmKG4ueD5hLnh8fG4ueD09PWEueCYmYXV0KGEsbikpKSYmKGE9bixwPWQpKSxuPW4ubmV4dH13aGlsZShuIT09cyk7cmV0dXJuIGF9KSh0LGUpKXtjb25zdCBuPWh1dChlLHQpO0pmdChlLGUubmV4dCksSmZ0KG4sbi5uZXh0KX19ZnVuY3Rpb24gYXV0KHQsZSl7cmV0dXJuIGR1dCh0LnByZXYsdCxlLnByZXYpPDAmJmR1dChlLm5leHQsdCx0Lm5leHQpPDB9ZnVuY3Rpb24gcnV0KHQsZSxuLG8saSl7cmV0dXJuKHQ9MTQzMTY1NTc2NSYoKHQ9ODU4OTkzNDU5JigodD0yNTI2NDUxMzUmKCh0PTE2NzExOTM1JigodD0zMjc2NyoodC1uKSppKXx0PDw4KSl8dDw8NCkpfHQ8PDIpKXx0PDwxKSl8KGU9MTQzMTY1NTc2NSYoKGU9ODU4OTkzNDU5JigoZT0yNTI2NDUxMzUmKChlPTE2NzExOTM1JigoZT0zMjc2NyooZS1vKSppKXxlPDw4KSl8ZTw8NCkpfGU8PDIpKXxlPDwxKSk8PDF9ZnVuY3Rpb24gc3V0KHQpe2xldCBlPXQsbj10O2RveyhlLng8bi54fHxlLng9PT1uLngmJmUueTxuLnkpJiYobj1lKSxlPWUubmV4dH13aGlsZShlIT09dCk7cmV0dXJuIG59ZnVuY3Rpb24gbHV0KHQsZSxuLG8saSxhLHIscyl7cmV0dXJuKGktcikqKGUtcyktKHQtcikqKGEtcyk+PTAmJih0LXIpKihvLXMpLShuLXIpKihlLXMpPj0wJiYobi1yKSooYS1zKS0oaS1yKSooby1zKT49MH1mdW5jdGlvbiBjdXQodCxlKXtyZXR1cm4gdC5uZXh0LmkhPT1lLmkmJnQucHJldi5pIT09ZS5pJiYhKGZ1bmN0aW9uIG4odCxlKXtsZXQgbj10O2Rve2lmKG4uaSE9PXQuaSYmbi5uZXh0LmkhPT10LmkmJm4uaSE9PWUuaSYmbi5uZXh0LmkhPT1lLmkmJm11dChuLG4ubmV4dCx0LGUpKXJldHVybiEwO249bi5uZXh0fXdoaWxlKG4hPT10KTtyZXR1cm4hMX0pKHQsZSkmJihndXQodCxlKSYmZ3V0KGUsdCkmJihmdW5jdGlvbiBvKHQsZSl7bGV0IG49dCxvPSExO2NvbnN0IGk9KHQueCtlLngpLzIsYT0odC55K2UueSkvMjtkb3tuLnk+YSE9bi5uZXh0Lnk+YSYmbi5uZXh0LnkhPT1uLnkmJmk8KG4ubmV4dC54LW4ueCkqKGEtbi55KS8obi5uZXh0Lnktbi55KStuLngmJihvPSFvKSxuPW4ubmV4dH13aGlsZShuIT09dCk7cmV0dXJuIG99KSh0LGUpJiYoZHV0KHQucHJldix0LGUucHJldil8fGR1dCh0LGUucHJldixlKSl8fHB1dCh0LGUpJiZkdXQodC5wcmV2LHQsdC5uZXh0KT4wJiZkdXQoZS5wcmV2LGUsZS5uZXh0KT4wKX1mdW5jdGlvbiBkdXQodCxlLG4pe3JldHVybihlLnktdC55KSoobi54LWUueCktKGUueC10LngpKihuLnktZS55KX1mdW5jdGlvbiBwdXQodCxlKXtyZXR1cm4gdC54PT09ZS54JiZ0Lnk9PT1lLnl9ZnVuY3Rpb24gbXV0KHQsZSxuLG8pe2NvbnN0IGk9dXV0KGR1dCh0LGUsbikpLGE9dXV0KGR1dCh0LGUsbykpLHI9dXV0KGR1dChuLG8sdCkpLHM9dXV0KGR1dChuLG8sZSkpO3JldHVybiBpIT09YSYmciE9PXN8fCghKDAhPT1pfHwhZnV0KHQsbixlKSl8fCghKDAhPT1hfHwhZnV0KHQsbyxlKSl8fCghKDAhPT1yfHwhZnV0KG4sdCxvKSl8fCEoMCE9PXN8fCFmdXQobixlLG8pKSkpKX1mdW5jdGlvbiBmdXQodCxlLG4pe3JldHVybiBlLng8PU1hdGgubWF4KHQueCxuLngpJiZlLng+PU1hdGgubWluKHQueCxuLngpJiZlLnk8PU1hdGgubWF4KHQueSxuLnkpJiZlLnk+PU1hdGgubWluKHQueSxuLnkpfWZ1bmN0aW9uIHV1dCh0KXtyZXR1cm4gdD4wPzE6dDwwPy0xOjB9ZnVuY3Rpb24gZ3V0KHQsZSl7cmV0dXJuIGR1dCh0LnByZXYsdCx0Lm5leHQpPDA/ZHV0KHQsZSx0Lm5leHQpPj0wJiZkdXQodCx0LnByZXYsZSk+PTA6ZHV0KHQsZSx0LnByZXYpPDB8fGR1dCh0LHQubmV4dCxlKTwwfWZ1bmN0aW9uIGh1dCh0LGUpe2NvbnN0IG49bmV3IF91dCh0LmksdC54LHQueSksbz1uZXcgX3V0KGUuaSxlLngsZS55KSxpPXQubmV4dCxhPWUucHJldjtyZXR1cm4gdC5uZXh0PWUsZS5wcmV2PXQsbi5uZXh0PWksaS5wcmV2PW4sby5uZXh0PW4sbi5wcmV2PW8sYS5uZXh0PW8sby5wcmV2PWEsb31mdW5jdGlvbiBidXQodCxlLG4sbyl7Y29uc3QgaT1uZXcgX3V0KHQsZSxuKTtyZXR1cm4gbz8oaS5uZXh0PW8ubmV4dCxpLnByZXY9byxvLm5leHQucHJldj1pLG8ubmV4dD1pKTooaS5wcmV2PWksaS5uZXh0PWkpLGl9ZnVuY3Rpb24geXV0KHQpe3QubmV4dC5wcmV2PXQucHJldix0LnByZXYubmV4dD10Lm5leHQsdC5wcmV2WiYmKHQucHJldloubmV4dFo9dC5uZXh0WiksdC5uZXh0WiYmKHQubmV4dFoucHJldlo9dC5wcmV2Wil9ZnVuY3Rpb24gX3V0KHQsZSxuKXt0aGlzLmk9dCx0aGlzLng9ZSx0aGlzLnk9bix0aGlzLnByZXY9bnVsbCx0aGlzLm5leHQ9bnVsbCx0aGlzLno9bnVsbCx0aGlzLnByZXZaPW51bGwsdGhpcy5uZXh0Wj1udWxsLHRoaXMuc3RlaW5lcj0hMX1jbGFzcyBDdXR7c3RhdGljIGFyZWEodCl7Y29uc3QgZT10Lmxlbmd0aDtsZXQgbj0wO2ZvcihsZXQgbz1lLTEsaT0wO2k8ZTtvPWkrKyluKz10W29dLngqdFtpXS55LXRbaV0ueCp0W29dLnk7cmV0dXJuLjUqbn1zdGF0aWMgaXNDbG9ja1dpc2UodCl7cmV0dXJuIEN1dC5hcmVhKHQpPDB9c3RhdGljIHRyaWFuZ3VsYXRlU2hhcGUodCxlKXtjb25zdCBuPVtdLG89W10saT1bXTtNdXQodCksdnV0KG4sdCk7bGV0IGE9dC5sZW5ndGg7ZS5mb3JFYWNoKE11dCk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspby5wdXNoKGEpLGErPWVbdF0ubGVuZ3RoLHZ1dChuLGVbdF0pO2NvbnN0IHI9WGZ0KG4sbyk7Zm9yKGxldCB0PTA7dDxyLmxlbmd0aDt0Kz0zKWkucHVzaChyLnNsaWNlKHQsdCszKSk7cmV0dXJuIGl9fWZ1bmN0aW9uIE11dCh0KXtjb25zdCBlPXQubGVuZ3RoO2U+MiYmdFtlLTFdLmVxdWFscyh0WzBdKSYmdC5wb3AoKX1mdW5jdGlvbiB2dXQodCxlKXtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKyl0LnB1c2goZVtuXS54KSx0LnB1c2goZVtuXS55KX1jbGFzcyB4dXQgZXh0ZW5kcyBkY3R7Y29uc3RydWN0b3IodCxlKXtzdXBlcigpLHRoaXMudHlwZT0iRXh0cnVkZUdlb21ldHJ5Iix0aGlzLnBhcmFtZXRlcnM9e3NoYXBlczp0LG9wdGlvbnM6ZX0sdD1BcnJheS5pc0FycmF5KHQpP3Q6W3RdO2NvbnN0IG49dGhpcyxvPVtdLGk9W107Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXthKHRbZV0pfWZ1bmN0aW9uIGEodCl7Y29uc3QgYT1bXSxyPXZvaWQgMCE9PWUuY3VydmVTZWdtZW50cz9lLmN1cnZlU2VnbWVudHM6MTIscz12b2lkIDAhPT1lLnN0ZXBzP2Uuc3RlcHM6MTtsZXQgbD12b2lkIDAhPT1lLmRlcHRoP2UuZGVwdGg6MTAwLGM9dm9pZCAwPT09ZS5iZXZlbEVuYWJsZWR8fGUuYmV2ZWxFbmFibGVkLGQ9dm9pZCAwIT09ZS5iZXZlbFRoaWNrbmVzcz9lLmJldmVsVGhpY2tuZXNzOjYscD12b2lkIDAhPT1lLmJldmVsU2l6ZT9lLmJldmVsU2l6ZTpkLTIsbT12b2lkIDAhPT1lLmJldmVsT2Zmc2V0P2UuYmV2ZWxPZmZzZXQ6MCxmPXZvaWQgMCE9PWUuYmV2ZWxTZWdtZW50cz9lLmJldmVsU2VnbWVudHM6Mztjb25zdCB1PWUuZXh0cnVkZVBhdGgsZz12b2lkIDAhPT1lLlVWR2VuZXJhdG9yP2UuVVZHZW5lcmF0b3I6T3V0O3ZvaWQgMCE9PWUuYW1vdW50JiYoY29uc29sZS53YXJuKCJUSFJFRS5FeHRydWRlQnVmZmVyR2VvbWV0cnk6IGFtb3VudCBoYXMgYmVlbiByZW5hbWVkIHRvIGRlcHRoLiIpLGw9ZS5hbW91bnQpO2xldCBoLGIseSxfLEMsTT0hMTt1JiYoaD11LmdldFNwYWNlZFBvaW50cyhzKSxNPSEwLGM9ITEsYj11LmNvbXB1dGVGcmVuZXRGcmFtZXMocywhMSkseT1uZXcgd3N0LF89bmV3IHdzdCxDPW5ldyB3c3QpLGN8fChmPTAsZD0wLHA9MCxtPTApO2NvbnN0IHY9dC5leHRyYWN0UG9pbnRzKHIpO2xldCB4PXYuc2hhcGU7Y29uc3QgTz12LmhvbGVzO2lmKCFDdXQuaXNDbG9ja1dpc2UoeCkpe3g9eC5yZXZlcnNlKCk7Zm9yKGxldCB0PTAsZT1PLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPU9bdF07Q3V0LmlzQ2xvY2tXaXNlKGUpJiYoT1t0XT1lLnJldmVyc2UoKSl9fWNvbnN0IFA9Q3V0LnRyaWFuZ3VsYXRlU2hhcGUoeCxPKSx3PXg7Zm9yKGxldCB0PTAsZT1PLmxlbmd0aDt0PGU7dCsrKXt4PXguY29uY2F0KE9bdF0pfWZ1bmN0aW9uIGsodCxlLG4pe3JldHVybiBlfHxjb25zb2xlLmVycm9yKCJUSFJFRS5FeHRydWRlR2VvbWV0cnk6IHZlYyBkb2VzIG5vdCBleGlzdCIpLGUuY2xvbmUoKS5tdWx0aXBseVNjYWxhcihuKS5hZGQodCl9Y29uc3QgUz14Lmxlbmd0aCxEPVAubGVuZ3RoO2Z1bmN0aW9uIFIodCxlLG4pe2xldCBvLGksYTtjb25zdCByPXQueC1lLngscz10LnktZS55LGw9bi54LXQueCxjPW4ueS10LnksZD1yKnIrcypzO2lmKE1hdGguYWJzKHIqYy1zKmwpPk51bWJlci5FUFNJTE9OKXtjb25zdCBwPU1hdGguc3FydChkKSxtPU1hdGguc3FydChsKmwrYypjKSxmPWUueC1zL3AsdT1lLnkrci9wLGc9KChuLngtYy9tLWYpKmMtKG4ueStsL20tdSkqbCkvKHIqYy1zKmwpO289ZityKmctdC54LGk9dStzKmctdC55O2NvbnN0IGg9bypvK2kqaTtpZihoPD0yKXJldHVybiBuZXcgZ3N0KG8saSk7YT1NYXRoLnNxcnQoaC8yKX1lbHNle2xldCB0PSExO3I+TnVtYmVyLkVQU0lMT04/bD5OdW1iZXIuRVBTSUxPTiYmKHQ9ITApOnI8LU51bWJlci5FUFNJTE9OP2w8LU51bWJlci5FUFNJTE9OJiYodD0hMCk6TWF0aC5zaWduKHMpPT09TWF0aC5zaWduKGMpJiYodD0hMCksdD8obz0tcyxpPXIsYT1NYXRoLnNxcnQoZCkpOihvPXIsaT1zLGE9TWF0aC5zcXJ0KGQvMikpfXJldHVybiBuZXcgZ3N0KG8vYSxpL2EpfWNvbnN0IEU9W107Zm9yKGxldCB0PTAsZT13Lmxlbmd0aCxuPWUtMSxvPXQrMTt0PGU7dCsrLG4rKyxvKyspbj09PWUmJihuPTApLG89PT1lJiYobz0wKSxFW3RdPVIod1t0XSx3W25dLHdbb10pO2NvbnN0IEE9W107bGV0IFQsTj1FLmNvbmNhdCgpO2ZvcihsZXQgdD0wLGU9Ty5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT1PW3RdO1Q9W107Zm9yKGxldCB0PTAsbj1lLmxlbmd0aCxvPW4tMSxpPXQrMTt0PG47dCsrLG8rKyxpKyspbz09PW4mJihvPTApLGk9PT1uJiYoaT0wKSxUW3RdPVIoZVt0XSxlW29dLGVbaV0pO0EucHVzaChUKSxOPU4uY29uY2F0KFQpfWZvcihsZXQgdD0wO3Q8Zjt0Kyspe2NvbnN0IGU9dC9mLG49ZCpNYXRoLmNvcyhlKk1hdGguUEkvMiksbz1wKk1hdGguc2luKGUqTWF0aC5QSS8yKSttO2ZvcihsZXQgdD0wLGU9dy5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT1rKHdbdF0sRVt0XSxvKTtIKGUueCxlLnksLW4pfWZvcihsZXQgdD0wLGU9Ty5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT1PW3RdO1Q9QVt0XTtmb3IobGV0IHQ9MCxpPWUubGVuZ3RoO3Q8aTt0Kyspe2NvbnN0IGk9ayhlW3RdLFRbdF0sbyk7SChpLngsaS55LC1uKX19fWNvbnN0IHo9cCttO2ZvcihsZXQgdD0wO3Q8Uzt0Kyspe2NvbnN0IGU9Yz9rKHhbdF0sTlt0XSx6KTp4W3RdO00/KF8uY29weShiLm5vcm1hbHNbMF0pLm11bHRpcGx5U2NhbGFyKGUueCkseS5jb3B5KGIuYmlub3JtYWxzWzBdKS5tdWx0aXBseVNjYWxhcihlLnkpLEMuY29weShoWzBdKS5hZGQoXykuYWRkKHkpLEgoQy54LEMueSxDLnopKTpIKGUueCxlLnksMCl9Zm9yKGxldCB0PTE7dDw9czt0KyspZm9yKGxldCBlPTA7ZTxTO2UrKyl7Y29uc3Qgbj1jP2soeFtlXSxOW2VdLHopOnhbZV07TT8oXy5jb3B5KGIubm9ybWFsc1t0XSkubXVsdGlwbHlTY2FsYXIobi54KSx5LmNvcHkoYi5iaW5vcm1hbHNbdF0pLm11bHRpcGx5U2NhbGFyKG4ueSksQy5jb3B5KGhbdF0pLmFkZChfKS5hZGQoeSksSChDLngsQy55LEMueikpOkgobi54LG4ueSxsL3MqdCl9Zm9yKGxldCB0PWYtMTt0Pj0wO3QtLSl7Y29uc3QgZT10L2Ysbj1kKk1hdGguY29zKGUqTWF0aC5QSS8yKSxvPXAqTWF0aC5zaW4oZSpNYXRoLlBJLzIpK207Zm9yKGxldCB0PTAsZT13Lmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPWsod1t0XSxFW3RdLG8pO0goZS54LGUueSxsK24pfWZvcihsZXQgdD0wLGU9Ty5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT1PW3RdO1Q9QVt0XTtmb3IobGV0IHQ9MCxpPWUubGVuZ3RoO3Q8aTt0Kyspe2NvbnN0IGk9ayhlW3RdLFRbdF0sbyk7TT9IKGkueCxpLnkraFtzLTFdLnksaFtzLTFdLngrbik6SChpLngsaS55LGwrbil9fX1mdW5jdGlvbiBJKHQsZSl7bGV0IG49dC5sZW5ndGg7Zm9yKDstLW4+PTA7KXtjb25zdCBvPW47bGV0IGk9bi0xO2k8MCYmKGk9dC5sZW5ndGgtMSk7Zm9yKGxldCB0PTAsbj1zKzIqZjt0PG47dCsrKXtjb25zdCBuPVMqdCxhPVMqKHQrMSk7TChlK28rbixlK2krbixlK2krYSxlK28rYSl9fX1mdW5jdGlvbiBIKHQsZSxuKXthLnB1c2godCksYS5wdXNoKGUpLGEucHVzaChuKX1mdW5jdGlvbiBGKHQsZSxpKXtCKHQpLEIoZSksQihpKTtjb25zdCBhPW8ubGVuZ3RoLzMscj1nLmdlbmVyYXRlVG9wVVYobixvLGEtMyxhLTIsYS0xKTtWKHJbMF0pLFYoclsxXSksVihyWzJdKX1mdW5jdGlvbiBMKHQsZSxpLGEpe0IodCksQihlKSxCKGEpLEIoZSksQihpKSxCKGEpO2NvbnN0IHI9by5sZW5ndGgvMyxzPWcuZ2VuZXJhdGVTaWRlV2FsbFVWKG4sbyxyLTYsci0zLHItMixyLTEpO1Yoc1swXSksVihzWzFdKSxWKHNbM10pLFYoc1sxXSksVihzWzJdKSxWKHNbM10pfWZ1bmN0aW9uIEIodCl7by5wdXNoKGFbMyp0KzBdKSxvLnB1c2goYVszKnQrMV0pLG8ucHVzaChhWzMqdCsyXSl9ZnVuY3Rpb24gVih0KXtpLnB1c2godC54KSxpLnB1c2godC55KX0hKGZ1bmN0aW9uIGooKXtjb25zdCB0PW8ubGVuZ3RoLzM7aWYoYyl7bGV0IHQ9MCxlPVMqdDtmb3IobGV0IHQ9MDt0PEQ7dCsrKXtjb25zdCBuPVBbdF07RihuWzJdK2UsblsxXStlLG5bMF0rZSl9dD1zKzIqZixlPVMqdDtmb3IobGV0IHQ9MDt0PEQ7dCsrKXtjb25zdCBuPVBbdF07RihuWzBdK2UsblsxXStlLG5bMl0rZSl9fWVsc2V7Zm9yKGxldCB0PTA7dDxEO3QrKyl7Y29uc3QgZT1QW3RdO0YoZVsyXSxlWzFdLGVbMF0pfWZvcihsZXQgdD0wO3Q8RDt0Kyspe2NvbnN0IGU9UFt0XTtGKGVbMF0rUypzLGVbMV0rUypzLGVbMl0rUypzKX19bi5hZGRHcm91cCh0LG8ubGVuZ3RoLzMtdCwwKX0pKCksKGZ1bmN0aW9uIFUoKXtjb25zdCB0PW8ubGVuZ3RoLzM7bGV0IGU9MDtJKHcsZSksZSs9dy5sZW5ndGg7Zm9yKGxldCB0PTAsbj1PLmxlbmd0aDt0PG47dCsrKXtjb25zdCBuPU9bdF07SShuLGUpLGUrPW4ubGVuZ3RofW4uYWRkR3JvdXAodCxvLmxlbmd0aC8zLXQsMSl9KSgpfXRoaXMuc2V0QXR0cmlidXRlKCJwb3NpdGlvbiIsbmV3IGVjdChvLDMpKSx0aGlzLnNldEF0dHJpYnV0ZSgidXYiLG5ldyBlY3QoaSwyKSksdGhpcy5jb21wdXRlVmVydGV4Tm9ybWFscygpfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuKGZ1bmN0aW9uIGUodCxuLG8pe2lmKG8uc2hhcGVzPVtdLEFycmF5LmlzQXJyYXkodCkpZm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXtvLnNoYXBlcy5wdXNoKHRbZV0udXVpZCl9ZWxzZSBvLnNoYXBlcy5wdXNoKHQudXVpZCk7dm9pZCAwIT09bi5leHRydWRlUGF0aCYmKG8ub3B0aW9ucy5leHRydWRlUGF0aD1uLmV4dHJ1ZGVQYXRoLnRvSlNPTigpKTtyZXR1cm4gb30pKHRoaXMucGFyYW1ldGVycy5zaGFwZXMsdGhpcy5wYXJhbWV0ZXJzLm9wdGlvbnMsdCl9c3RhdGljIGZyb21KU09OKHQsZSl7Y29uc3Qgbj1bXTtmb3IobGV0IG89MCxpPXQuc2hhcGVzLmxlbmd0aDtvPGk7bysrKXtuLnB1c2goZVt0LnNoYXBlc1tvXV0pfWNvbnN0IG89dC5vcHRpb25zLmV4dHJ1ZGVQYXRoO3JldHVybiB2b2lkIDAhPT1vJiYodC5vcHRpb25zLmV4dHJ1ZGVQYXRoPShuZXcgWmZ0W28udHlwZV0pLmZyb21KU09OKG8pKSxuZXcgeHV0KG4sdC5vcHRpb25zKX19Y29uc3QgT3V0PXtnZW5lcmF0ZVRvcFVWOmZ1bmN0aW9uKHQsZSxuLG8saSl7Y29uc3QgYT1lWzMqb10scj1lWzMqbysxXSxzPWVbMyppXSxsPWVbMyppKzFdO3JldHVybltuZXcgZ3N0KGVbMypuXSxlWzMqbisxXSksbmV3IGdzdChhLHIpLG5ldyBnc3QocyxsKV19LGdlbmVyYXRlU2lkZVdhbGxVVjpmdW5jdGlvbih0LGUsbixvLGksYSl7Y29uc3Qgcj1lWzMqbl0scz1lWzMqbisxXSxsPWVbMypuKzJdLGM9ZVszKm9dLGQ9ZVszKm8rMV0scD1lWzMqbysyXSxtPWVbMyppXSxmPWVbMyppKzFdLHU9ZVszKmkrMl0sZz1lWzMqYV0saD1lWzMqYSsxXSxiPWVbMyphKzJdO3JldHVybiBNYXRoLmFicyhzLWQpPE1hdGguYWJzKHItYyk/W25ldyBnc3QociwxLWwpLG5ldyBnc3QoYywxLXApLG5ldyBnc3QobSwxLXUpLG5ldyBnc3QoZywxLWIpXTpbbmV3IGdzdChzLDEtbCksbmV3IGdzdChkLDEtcCksbmV3IGdzdChmLDEtdSksbmV3IGdzdChoLDEtYildfX07Y2xhc3MgUHV0IGV4dGVuZHMgZGN0e2NvbnN0cnVjdG9yKHQsZT0xMil7c3VwZXIoKSx0aGlzLnR5cGU9IlNoYXBlR2VvbWV0cnkiLHRoaXMucGFyYW1ldGVycz17c2hhcGVzOnQsY3VydmVTZWdtZW50czplfTtjb25zdCBuPVtdLG89W10saT1bXSxhPVtdO2xldCByPTAscz0wO2lmKCExPT09QXJyYXkuaXNBcnJheSh0KSlsKHQpO2Vsc2UgZm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspbCh0W2VdKSx0aGlzLmFkZEdyb3VwKHIscyxlKSxyKz1zLHM9MDtmdW5jdGlvbiBsKHQpe2NvbnN0IHI9by5sZW5ndGgvMyxsPXQuZXh0cmFjdFBvaW50cyhlKTtsZXQgYz1sLnNoYXBlO2NvbnN0IGQ9bC5ob2xlczshMT09PUN1dC5pc0Nsb2NrV2lzZShjKSYmKGM9Yy5yZXZlcnNlKCkpO2ZvcihsZXQgdD0wLGU9ZC5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT1kW3RdOyEwPT09Q3V0LmlzQ2xvY2tXaXNlKGUpJiYoZFt0XT1lLnJldmVyc2UoKSl9Y29uc3QgcD1DdXQudHJpYW5ndWxhdGVTaGFwZShjLGQpO2ZvcihsZXQgdD0wLGU9ZC5sZW5ndGg7dDxlO3QrKyl7Yz1jLmNvbmNhdChkW3RdKX1mb3IobGV0IHQ9MCxlPWMubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9Y1t0XTtvLnB1c2goZS54LGUueSwwKSxpLnB1c2goMCwwLDEpLGEucHVzaChlLngsZS55KX1mb3IobGV0IHQ9MCxlPXAubGVuZ3RoO3Q8ZTt0Kyspe2NvbnN0IGU9cFt0XTtuLnB1c2goZVswXStyLGVbMV0rcixlWzJdK3IpLHMrPTN9fXRoaXMuc2V0SW5kZXgobiksdGhpcy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgZWN0KG8sMykpLHRoaXMuc2V0QXR0cmlidXRlKCJub3JtYWwiLG5ldyBlY3QoaSwzKSksdGhpcy5zZXRBdHRyaWJ1dGUoInV2IixuZXcgZWN0KGEsMikpfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuKGZ1bmN0aW9uIGUodCxuKXtpZihuLnNoYXBlcz1bXSxBcnJheS5pc0FycmF5KHQpKWZvcihsZXQgZT0wLG89dC5sZW5ndGg7ZTxvO2UrKyl7bi5zaGFwZXMucHVzaCh0W2VdLnV1aWQpfWVsc2Ugbi5zaGFwZXMucHVzaCh0LnV1aWQpO3JldHVybiBufSkodGhpcy5wYXJhbWV0ZXJzLnNoYXBlcyx0KX1zdGF0aWMgZnJvbUpTT04odCxlKXtjb25zdCBuPVtdO2ZvcihsZXQgbz0wLGk9dC5zaGFwZXMubGVuZ3RoO288aTtvKyspe24ucHVzaChlW3Quc2hhcGVzW29dXSl9cmV0dXJuIG5ldyBQdXQobix0LmN1cnZlU2VnbWVudHMpfX0oY2xhc3MgZXh0ZW5kcyBWbHR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9IlNoYWRvd01hdGVyaWFsIix0aGlzLmNvbG9yPW5ldyBabHQoMCksdGhpcy50cmFuc3BhcmVudD0hMCx0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuY29sb3IuY29weSh0LmNvbG9yKSx0aGlzfX0pLnByb3RvdHlwZS5pc1NoYWRvd01hdGVyaWFsPSEwO2NsYXNzIHd1dCBleHRlbmRzIFZsdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuZGVmaW5lcz17U1RBTkRBUkQ6IiJ9LHRoaXMudHlwZT0iTWVzaFN0YW5kYXJkTWF0ZXJpYWwiLHRoaXMuY29sb3I9bmV3IFpsdCgxNjc3NzIxNSksdGhpcy5yb3VnaG5lc3M9MSx0aGlzLm1ldGFsbmVzcz0wLHRoaXMubWFwPW51bGwsdGhpcy5saWdodE1hcD1udWxsLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9MSx0aGlzLmFvTWFwPW51bGwsdGhpcy5hb01hcEludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmU9bmV3IFpsdCgwKSx0aGlzLmVtaXNzaXZlSW50ZW5zaXR5PTEsdGhpcy5lbWlzc2l2ZU1hcD1udWxsLHRoaXMuYnVtcE1hcD1udWxsLHRoaXMuYnVtcFNjYWxlPTEsdGhpcy5ub3JtYWxNYXA9bnVsbCx0aGlzLm5vcm1hbE1hcFR5cGU9MCx0aGlzLm5vcm1hbFNjYWxlPW5ldyBnc3QoMSwxKSx0aGlzLmRpc3BsYWNlbWVudE1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9MSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9MCx0aGlzLnJvdWdobmVzc01hcD1udWxsLHRoaXMubWV0YWxuZXNzTWFwPW51bGwsdGhpcy5hbHBoYU1hcD1udWxsLHRoaXMuZW52TWFwPW51bGwsdGhpcy5lbnZNYXBJbnRlbnNpdHk9MSx0aGlzLnJlZnJhY3Rpb25SYXRpbz0uOTgsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLndpcmVmcmFtZUxpbmVjYXA9InJvdW5kIix0aGlzLndpcmVmcmFtZUxpbmVqb2luPSJyb3VuZCIsdGhpcy5mbGF0U2hhZGluZz0hMSx0aGlzLnNldFZhbHVlcyh0KX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuZGVmaW5lcz17U1RBTkRBUkQ6IiJ9LHRoaXMuY29sb3IuY29weSh0LmNvbG9yKSx0aGlzLnJvdWdobmVzcz10LnJvdWdobmVzcyx0aGlzLm1ldGFsbmVzcz10Lm1ldGFsbmVzcyx0aGlzLm1hcD10Lm1hcCx0aGlzLmxpZ2h0TWFwPXQubGlnaHRNYXAsdGhpcy5saWdodE1hcEludGVuc2l0eT10LmxpZ2h0TWFwSW50ZW5zaXR5LHRoaXMuYW9NYXA9dC5hb01hcCx0aGlzLmFvTWFwSW50ZW5zaXR5PXQuYW9NYXBJbnRlbnNpdHksdGhpcy5lbWlzc2l2ZS5jb3B5KHQuZW1pc3NpdmUpLHRoaXMuZW1pc3NpdmVNYXA9dC5lbWlzc2l2ZU1hcCx0aGlzLmVtaXNzaXZlSW50ZW5zaXR5PXQuZW1pc3NpdmVJbnRlbnNpdHksdGhpcy5idW1wTWFwPXQuYnVtcE1hcCx0aGlzLmJ1bXBTY2FsZT10LmJ1bXBTY2FsZSx0aGlzLm5vcm1hbE1hcD10Lm5vcm1hbE1hcCx0aGlzLm5vcm1hbE1hcFR5cGU9dC5ub3JtYWxNYXBUeXBlLHRoaXMubm9ybWFsU2NhbGUuY29weSh0Lm5vcm1hbFNjYWxlKSx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzLnJvdWdobmVzc01hcD10LnJvdWdobmVzc01hcCx0aGlzLm1ldGFsbmVzc01hcD10Lm1ldGFsbmVzc01hcCx0aGlzLmFscGhhTWFwPXQuYWxwaGFNYXAsdGhpcy5lbnZNYXA9dC5lbnZNYXAsdGhpcy5lbnZNYXBJbnRlbnNpdHk9dC5lbnZNYXBJbnRlbnNpdHksdGhpcy5yZWZyYWN0aW9uUmF0aW89dC5yZWZyYWN0aW9uUmF0aW8sdGhpcy53aXJlZnJhbWU9dC53aXJlZnJhbWUsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgsdGhpcy53aXJlZnJhbWVMaW5lY2FwPXQud2lyZWZyYW1lTGluZWNhcCx0aGlzLndpcmVmcmFtZUxpbmVqb2luPXQud2lyZWZyYW1lTGluZWpvaW4sdGhpcy5mbGF0U2hhZGluZz10LmZsYXRTaGFkaW5nLHRoaXN9fXd1dC5wcm90b3R5cGUuaXNNZXNoU3RhbmRhcmRNYXRlcmlhbD0hMDsoY2xhc3MgZXh0ZW5kcyB3dXR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLmRlZmluZXM9e1NUQU5EQVJEOiIiLFBIWVNJQ0FMOiIifSx0aGlzLnR5cGU9Ik1lc2hQaHlzaWNhbE1hdGVyaWFsIix0aGlzLmNsZWFyY29hdD0wLHRoaXMuY2xlYXJjb2F0TWFwPW51bGwsdGhpcy5jbGVhcmNvYXRSb3VnaG5lc3M9MCx0aGlzLmNsZWFyY29hdFJvdWdobmVzc01hcD1udWxsLHRoaXMuY2xlYXJjb2F0Tm9ybWFsU2NhbGU9bmV3IGdzdCgxLDEpLHRoaXMuY2xlYXJjb2F0Tm9ybWFsTWFwPW51bGwsdGhpcy5yZWZsZWN0aXZpdHk9LjUsT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImlvciIse2dldDpmdW5jdGlvbigpe3JldHVybigxKy40KnRoaXMucmVmbGVjdGl2aXR5KS8oMS0uNCp0aGlzLnJlZmxlY3Rpdml0eSl9LHNldDpmdW5jdGlvbih0KXt0aGlzLnJlZmxlY3Rpdml0eT1wc3QoMi41Kih0LTEpLyh0KzEpLDAsMSl9fSksdGhpcy5zaGVlbj1udWxsLHRoaXMudHJhbnNtaXNzaW9uPTAsdGhpcy50cmFuc21pc3Npb25NYXA9bnVsbCx0aGlzLnRoaWNrbmVzcz0uMDEsdGhpcy50aGlja25lc3NNYXA9bnVsbCx0aGlzLmF0dGVudWF0aW9uRGlzdGFuY2U9MCx0aGlzLmF0dGVudWF0aW9uVGludD1uZXcgWmx0KDEsMSwxKSx0aGlzLnNwZWN1bGFySW50ZW5zaXR5PTEsdGhpcy5zcGVjdWxhckludGVuc2l0eU1hcD1udWxsLHRoaXMuc3BlY3VsYXJUaW50PW5ldyBabHQoMSwxLDEpLHRoaXMuc3BlY3VsYXJUaW50TWFwPW51bGwsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmRlZmluZXM9e1NUQU5EQVJEOiIiLFBIWVNJQ0FMOiIifSx0aGlzLmNsZWFyY29hdD10LmNsZWFyY29hdCx0aGlzLmNsZWFyY29hdE1hcD10LmNsZWFyY29hdE1hcCx0aGlzLmNsZWFyY29hdFJvdWdobmVzcz10LmNsZWFyY29hdFJvdWdobmVzcyx0aGlzLmNsZWFyY29hdFJvdWdobmVzc01hcD10LmNsZWFyY29hdFJvdWdobmVzc01hcCx0aGlzLmNsZWFyY29hdE5vcm1hbE1hcD10LmNsZWFyY29hdE5vcm1hbE1hcCx0aGlzLmNsZWFyY29hdE5vcm1hbFNjYWxlLmNvcHkodC5jbGVhcmNvYXROb3JtYWxTY2FsZSksdGhpcy5yZWZsZWN0aXZpdHk9dC5yZWZsZWN0aXZpdHksdGhpcy5zaGVlbj10LnNoZWVuPyh0aGlzLnNoZWVufHxuZXcgWmx0KS5jb3B5KHQuc2hlZW4pOm51bGwsdGhpcy50cmFuc21pc3Npb249dC50cmFuc21pc3Npb24sdGhpcy50cmFuc21pc3Npb25NYXA9dC50cmFuc21pc3Npb25NYXAsdGhpcy50aGlja25lc3M9dC50aGlja25lc3MsdGhpcy50aGlja25lc3NNYXA9dC50aGlja25lc3NNYXAsdGhpcy5hdHRlbnVhdGlvbkRpc3RhbmNlPXQuYXR0ZW51YXRpb25EaXN0YW5jZSx0aGlzLmF0dGVudWF0aW9uVGludC5jb3B5KHQuYXR0ZW51YXRpb25UaW50KSx0aGlzLnNwZWN1bGFySW50ZW5zaXR5PXQuc3BlY3VsYXJJbnRlbnNpdHksdGhpcy5zcGVjdWxhckludGVuc2l0eU1hcD10LnNwZWN1bGFySW50ZW5zaXR5TWFwLHRoaXMuc3BlY3VsYXJUaW50LmNvcHkodC5zcGVjdWxhclRpbnQpLHRoaXMuc3BlY3VsYXJUaW50TWFwPXQuc3BlY3VsYXJUaW50TWFwLHRoaXN9fSkucHJvdG90eXBlLmlzTWVzaFBoeXNpY2FsTWF0ZXJpYWw9ITA7KGNsYXNzIGV4dGVuZHMgVmx0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJNZXNoUGhvbmdNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgWmx0KDE2Nzc3MjE1KSx0aGlzLnNwZWN1bGFyPW5ldyBabHQoMTExODQ4MSksdGhpcy5zaGluaW5lc3M9MzAsdGhpcy5tYXA9bnVsbCx0aGlzLmxpZ2h0TWFwPW51bGwsdGhpcy5saWdodE1hcEludGVuc2l0eT0xLHRoaXMuYW9NYXA9bnVsbCx0aGlzLmFvTWFwSW50ZW5zaXR5PTEsdGhpcy5lbWlzc2l2ZT1uZXcgWmx0KDApLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlTWFwPW51bGwsdGhpcy5idW1wTWFwPW51bGwsdGhpcy5idW1wU2NhbGU9MSx0aGlzLm5vcm1hbE1hcD1udWxsLHRoaXMubm9ybWFsTWFwVHlwZT0wLHRoaXMubm9ybWFsU2NhbGU9bmV3IGdzdCgxLDEpLHRoaXMuZGlzcGxhY2VtZW50TWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT0xLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz0wLHRoaXMuc3BlY3VsYXJNYXA9bnVsbCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy5lbnZNYXA9bnVsbCx0aGlzLmNvbWJpbmU9MCx0aGlzLnJlZmxlY3Rpdml0eT0xLHRoaXMucmVmcmFjdGlvblJhdGlvPS45OCx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMud2lyZWZyYW1lTGluZWNhcD0icm91bmQiLHRoaXMud2lyZWZyYW1lTGluZWpvaW49InJvdW5kIix0aGlzLmZsYXRTaGFkaW5nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMuc3BlY3VsYXIuY29weSh0LnNwZWN1bGFyKSx0aGlzLnNoaW5pbmVzcz10LnNoaW5pbmVzcyx0aGlzLm1hcD10Lm1hcCx0aGlzLmxpZ2h0TWFwPXQubGlnaHRNYXAsdGhpcy5saWdodE1hcEludGVuc2l0eT10LmxpZ2h0TWFwSW50ZW5zaXR5LHRoaXMuYW9NYXA9dC5hb01hcCx0aGlzLmFvTWFwSW50ZW5zaXR5PXQuYW9NYXBJbnRlbnNpdHksdGhpcy5lbWlzc2l2ZS5jb3B5KHQuZW1pc3NpdmUpLHRoaXMuZW1pc3NpdmVNYXA9dC5lbWlzc2l2ZU1hcCx0aGlzLmVtaXNzaXZlSW50ZW5zaXR5PXQuZW1pc3NpdmVJbnRlbnNpdHksdGhpcy5idW1wTWFwPXQuYnVtcE1hcCx0aGlzLmJ1bXBTY2FsZT10LmJ1bXBTY2FsZSx0aGlzLm5vcm1hbE1hcD10Lm5vcm1hbE1hcCx0aGlzLm5vcm1hbE1hcFR5cGU9dC5ub3JtYWxNYXBUeXBlLHRoaXMubm9ybWFsU2NhbGUuY29weSh0Lm5vcm1hbFNjYWxlKSx0aGlzLmRpc3BsYWNlbWVudE1hcD10LmRpc3BsYWNlbWVudE1hcCx0aGlzLmRpc3BsYWNlbWVudFNjYWxlPXQuZGlzcGxhY2VtZW50U2NhbGUsdGhpcy5kaXNwbGFjZW1lbnRCaWFzPXQuZGlzcGxhY2VtZW50Qmlhcyx0aGlzLnNwZWN1bGFyTWFwPXQuc3BlY3VsYXJNYXAsdGhpcy5hbHBoYU1hcD10LmFscGhhTWFwLHRoaXMuZW52TWFwPXQuZW52TWFwLHRoaXMuY29tYmluZT10LmNvbWJpbmUsdGhpcy5yZWZsZWN0aXZpdHk9dC5yZWZsZWN0aXZpdHksdGhpcy5yZWZyYWN0aW9uUmF0aW89dC5yZWZyYWN0aW9uUmF0aW8sdGhpcy53aXJlZnJhbWU9dC53aXJlZnJhbWUsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgsdGhpcy53aXJlZnJhbWVMaW5lY2FwPXQud2lyZWZyYW1lTGluZWNhcCx0aGlzLndpcmVmcmFtZUxpbmVqb2luPXQud2lyZWZyYW1lTGluZWpvaW4sdGhpcy5mbGF0U2hhZGluZz10LmZsYXRTaGFkaW5nLHRoaXN9fSkucHJvdG90eXBlLmlzTWVzaFBob25nTWF0ZXJpYWw9ITA7KGNsYXNzIGV4dGVuZHMgVmx0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5kZWZpbmVzPXtUT09OOiIifSx0aGlzLnR5cGU9Ik1lc2hUb29uTWF0ZXJpYWwiLHRoaXMuY29sb3I9bmV3IFpsdCgxNjc3NzIxNSksdGhpcy5tYXA9bnVsbCx0aGlzLmdyYWRpZW50TWFwPW51bGwsdGhpcy5saWdodE1hcD1udWxsLHRoaXMubGlnaHRNYXBJbnRlbnNpdHk9MSx0aGlzLmFvTWFwPW51bGwsdGhpcy5hb01hcEludGVuc2l0eT0xLHRoaXMuZW1pc3NpdmU9bmV3IFpsdCgwKSx0aGlzLmVtaXNzaXZlSW50ZW5zaXR5PTEsdGhpcy5lbWlzc2l2ZU1hcD1udWxsLHRoaXMuYnVtcE1hcD1udWxsLHRoaXMuYnVtcFNjYWxlPTEsdGhpcy5ub3JtYWxNYXA9bnVsbCx0aGlzLm5vcm1hbE1hcFR5cGU9MCx0aGlzLm5vcm1hbFNjYWxlPW5ldyBnc3QoMSwxKSx0aGlzLmRpc3BsYWNlbWVudE1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9MSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9MCx0aGlzLmFscGhhTWFwPW51bGwsdGhpcy53aXJlZnJhbWU9ITEsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9MSx0aGlzLndpcmVmcmFtZUxpbmVjYXA9InJvdW5kIix0aGlzLndpcmVmcmFtZUxpbmVqb2luPSJyb3VuZCIsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5tYXA9dC5tYXAsdGhpcy5ncmFkaWVudE1hcD10LmdyYWRpZW50TWFwLHRoaXMubGlnaHRNYXA9dC5saWdodE1hcCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PXQubGlnaHRNYXBJbnRlbnNpdHksdGhpcy5hb01hcD10LmFvTWFwLHRoaXMuYW9NYXBJbnRlbnNpdHk9dC5hb01hcEludGVuc2l0eSx0aGlzLmVtaXNzaXZlLmNvcHkodC5lbWlzc2l2ZSksdGhpcy5lbWlzc2l2ZU1hcD10LmVtaXNzaXZlTWFwLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9dC5lbWlzc2l2ZUludGVuc2l0eSx0aGlzLmJ1bXBNYXA9dC5idW1wTWFwLHRoaXMuYnVtcFNjYWxlPXQuYnVtcFNjYWxlLHRoaXMubm9ybWFsTWFwPXQubm9ybWFsTWFwLHRoaXMubm9ybWFsTWFwVHlwZT10Lm5vcm1hbE1hcFR5cGUsdGhpcy5ub3JtYWxTY2FsZS5jb3B5KHQubm9ybWFsU2NhbGUpLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLndpcmVmcmFtZT10LndpcmVmcmFtZSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD10LndpcmVmcmFtZUxpbmV3aWR0aCx0aGlzLndpcmVmcmFtZUxpbmVjYXA9dC53aXJlZnJhbWVMaW5lY2FwLHRoaXMud2lyZWZyYW1lTGluZWpvaW49dC53aXJlZnJhbWVMaW5lam9pbix0aGlzfX0pLnByb3RvdHlwZS5pc01lc2hUb29uTWF0ZXJpYWw9ITA7KGNsYXNzIGV4dGVuZHMgVmx0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJNZXNoTm9ybWFsTWF0ZXJpYWwiLHRoaXMuYnVtcE1hcD1udWxsLHRoaXMuYnVtcFNjYWxlPTEsdGhpcy5ub3JtYWxNYXA9bnVsbCx0aGlzLm5vcm1hbE1hcFR5cGU9MCx0aGlzLm5vcm1hbFNjYWxlPW5ldyBnc3QoMSwxKSx0aGlzLmRpc3BsYWNlbWVudE1hcD1udWxsLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9MSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9MCx0aGlzLndpcmVmcmFtZT0hMSx0aGlzLndpcmVmcmFtZUxpbmV3aWR0aD0xLHRoaXMuZm9nPSExLHRoaXMuZmxhdFNoYWRpbmc9ITEsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmJ1bXBNYXA9dC5idW1wTWFwLHRoaXMuYnVtcFNjYWxlPXQuYnVtcFNjYWxlLHRoaXMubm9ybWFsTWFwPXQubm9ybWFsTWFwLHRoaXMubm9ybWFsTWFwVHlwZT10Lm5vcm1hbE1hcFR5cGUsdGhpcy5ub3JtYWxTY2FsZS5jb3B5KHQubm9ybWFsU2NhbGUpLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXMud2lyZWZyYW1lPXQud2lyZWZyYW1lLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPXQud2lyZWZyYW1lTGluZXdpZHRoLHRoaXMuZmxhdFNoYWRpbmc9dC5mbGF0U2hhZGluZyx0aGlzfX0pLnByb3RvdHlwZS5pc01lc2hOb3JtYWxNYXRlcmlhbD0hMDsoY2xhc3MgZXh0ZW5kcyBWbHR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLnR5cGU9Ik1lc2hMYW1iZXJ0TWF0ZXJpYWwiLHRoaXMuY29sb3I9bmV3IFpsdCgxNjc3NzIxNSksdGhpcy5tYXA9bnVsbCx0aGlzLmxpZ2h0TWFwPW51bGwsdGhpcy5saWdodE1hcEludGVuc2l0eT0xLHRoaXMuYW9NYXA9bnVsbCx0aGlzLmFvTWFwSW50ZW5zaXR5PTEsdGhpcy5lbWlzc2l2ZT1uZXcgWmx0KDApLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9MSx0aGlzLmVtaXNzaXZlTWFwPW51bGwsdGhpcy5zcGVjdWxhck1hcD1udWxsLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLmVudk1hcD1udWxsLHRoaXMuY29tYmluZT0wLHRoaXMucmVmbGVjdGl2aXR5PTEsdGhpcy5yZWZyYWN0aW9uUmF0aW89Ljk4LHRoaXMud2lyZWZyYW1lPSExLHRoaXMud2lyZWZyYW1lTGluZXdpZHRoPTEsdGhpcy53aXJlZnJhbWVMaW5lY2FwPSJyb3VuZCIsdGhpcy53aXJlZnJhbWVMaW5lam9pbj0icm91bmQiLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jb2xvci5jb3B5KHQuY29sb3IpLHRoaXMubWFwPXQubWFwLHRoaXMubGlnaHRNYXA9dC5saWdodE1hcCx0aGlzLmxpZ2h0TWFwSW50ZW5zaXR5PXQubGlnaHRNYXBJbnRlbnNpdHksdGhpcy5hb01hcD10LmFvTWFwLHRoaXMuYW9NYXBJbnRlbnNpdHk9dC5hb01hcEludGVuc2l0eSx0aGlzLmVtaXNzaXZlLmNvcHkodC5lbWlzc2l2ZSksdGhpcy5lbWlzc2l2ZU1hcD10LmVtaXNzaXZlTWFwLHRoaXMuZW1pc3NpdmVJbnRlbnNpdHk9dC5lbWlzc2l2ZUludGVuc2l0eSx0aGlzLnNwZWN1bGFyTWFwPXQuc3BlY3VsYXJNYXAsdGhpcy5hbHBoYU1hcD10LmFscGhhTWFwLHRoaXMuZW52TWFwPXQuZW52TWFwLHRoaXMuY29tYmluZT10LmNvbWJpbmUsdGhpcy5yZWZsZWN0aXZpdHk9dC5yZWZsZWN0aXZpdHksdGhpcy5yZWZyYWN0aW9uUmF0aW89dC5yZWZyYWN0aW9uUmF0aW8sdGhpcy53aXJlZnJhbWU9dC53aXJlZnJhbWUsdGhpcy53aXJlZnJhbWVMaW5ld2lkdGg9dC53aXJlZnJhbWVMaW5ld2lkdGgsdGhpcy53aXJlZnJhbWVMaW5lY2FwPXQud2lyZWZyYW1lTGluZWNhcCx0aGlzLndpcmVmcmFtZUxpbmVqb2luPXQud2lyZWZyYW1lTGluZWpvaW4sdGhpc319KS5wcm90b3R5cGUuaXNNZXNoTGFtYmVydE1hdGVyaWFsPSEwOyhjbGFzcyBleHRlbmRzIFZsdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuZGVmaW5lcz17TUFUQ0FQOiIifSx0aGlzLnR5cGU9Ik1lc2hNYXRjYXBNYXRlcmlhbCIsdGhpcy5jb2xvcj1uZXcgWmx0KDE2Nzc3MjE1KSx0aGlzLm1hdGNhcD1udWxsLHRoaXMubWFwPW51bGwsdGhpcy5idW1wTWFwPW51bGwsdGhpcy5idW1wU2NhbGU9MSx0aGlzLm5vcm1hbE1hcD1udWxsLHRoaXMubm9ybWFsTWFwVHlwZT0wLHRoaXMubm9ybWFsU2NhbGU9bmV3IGdzdCgxLDEpLHRoaXMuZGlzcGxhY2VtZW50TWFwPW51bGwsdGhpcy5kaXNwbGFjZW1lbnRTY2FsZT0xLHRoaXMuZGlzcGxhY2VtZW50Qmlhcz0wLHRoaXMuYWxwaGFNYXA9bnVsbCx0aGlzLmZsYXRTaGFkaW5nPSExLHRoaXMuc2V0VmFsdWVzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5kZWZpbmVzPXtNQVRDQVA6IiJ9LHRoaXMuY29sb3IuY29weSh0LmNvbG9yKSx0aGlzLm1hdGNhcD10Lm1hdGNhcCx0aGlzLm1hcD10Lm1hcCx0aGlzLmJ1bXBNYXA9dC5idW1wTWFwLHRoaXMuYnVtcFNjYWxlPXQuYnVtcFNjYWxlLHRoaXMubm9ybWFsTWFwPXQubm9ybWFsTWFwLHRoaXMubm9ybWFsTWFwVHlwZT10Lm5vcm1hbE1hcFR5cGUsdGhpcy5ub3JtYWxTY2FsZS5jb3B5KHQubm9ybWFsU2NhbGUpLHRoaXMuZGlzcGxhY2VtZW50TWFwPXQuZGlzcGxhY2VtZW50TWFwLHRoaXMuZGlzcGxhY2VtZW50U2NhbGU9dC5kaXNwbGFjZW1lbnRTY2FsZSx0aGlzLmRpc3BsYWNlbWVudEJpYXM9dC5kaXNwbGFjZW1lbnRCaWFzLHRoaXMuYWxwaGFNYXA9dC5hbHBoYU1hcCx0aGlzLmZsYXRTaGFkaW5nPXQuZmxhdFNoYWRpbmcsdGhpc319KS5wcm90b3R5cGUuaXNNZXNoTWF0Y2FwTWF0ZXJpYWw9ITA7KGNsYXNzIGV4dGVuZHMgZmZ0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJMaW5lRGFzaGVkTWF0ZXJpYWwiLHRoaXMuc2NhbGU9MSx0aGlzLmRhc2hTaXplPTMsdGhpcy5nYXBTaXplPTEsdGhpcy5zZXRWYWx1ZXModCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnNjYWxlPXQuc2NhbGUsdGhpcy5kYXNoU2l6ZT10LmRhc2hTaXplLHRoaXMuZ2FwU2l6ZT10LmdhcFNpemUsdGhpc319KS5wcm90b3R5cGUuaXNMaW5lRGFzaGVkTWF0ZXJpYWw9ITA7Y29uc3Qga3V0PXthcnJheVNsaWNlOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4ga3V0LmlzVHlwZWRBcnJheSh0KT9uZXcgdC5jb25zdHJ1Y3Rvcih0LnN1YmFycmF5KGUsdm9pZCAwIT09bj9uOnQubGVuZ3RoKSk6dC5zbGljZShlLG4pfSxjb252ZXJ0QXJyYXk6ZnVuY3Rpb24odCxlLG4pe3JldHVybiF0fHwhbiYmdC5jb25zdHJ1Y3Rvcj09PWU/dDoibnVtYmVyIj09dHlwZW9mIGUuQllURVNfUEVSX0VMRU1FTlQ/bmV3IGUodCk6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCl9LGlzVHlwZWRBcnJheTpmdW5jdGlvbih0KXtyZXR1cm4gQXJyYXlCdWZmZXIuaXNWaWV3KHQpJiYhKHQgaW5zdGFuY2VvZiBEYXRhVmlldyl9LGdldEtleWZyYW1lT3JkZXI6ZnVuY3Rpb24odCl7Y29uc3QgZT10Lmxlbmd0aCxuPW5ldyBBcnJheShlKTtmb3IobGV0IHQ9MDt0IT09ZTsrK3Qpblt0XT10O3JldHVybiBuLnNvcnQoKGZ1bmN0aW9uIG8oZSxuKXtyZXR1cm4gdFtlXS10W25dfSkpLG59LHNvcnRlZEFycmF5OmZ1bmN0aW9uKHQsZSxuKXtjb25zdCBvPXQubGVuZ3RoLGk9bmV3IHQuY29uc3RydWN0b3Iobyk7Zm9yKGxldCBhPTAscj0wO3IhPT1vOysrYSl7Y29uc3Qgbz1uW2FdKmU7Zm9yKGxldCBuPTA7biE9PWU7KytuKWlbcisrXT10W28rbl19cmV0dXJuIGl9LGZsYXR0ZW5KU09OOmZ1bmN0aW9uKHQsZSxuLG8pe2xldCBpPTEsYT10WzBdO2Zvcig7dm9pZCAwIT09YSYmdm9pZCAwPT09YVtvXTspYT10W2krK107aWYodm9pZCAwPT09YSlyZXR1cm47bGV0IHI9YVtvXTtpZih2b2lkIDAhPT1yKWlmKEFycmF5LmlzQXJyYXkocikpZG97cj1hW29dLHZvaWQgMCE9PXImJihlLnB1c2goYS50aW1lKSxuLnB1c2guYXBwbHkobixyKSksYT10W2krK119d2hpbGUodm9pZCAwIT09YSk7ZWxzZSBpZih2b2lkIDAhPT1yLnRvQXJyYXkpZG97cj1hW29dLHZvaWQgMCE9PXImJihlLnB1c2goYS50aW1lKSxyLnRvQXJyYXkobixuLmxlbmd0aCkpLGE9dFtpKytdfXdoaWxlKHZvaWQgMCE9PWEpO2Vsc2UgZG97cj1hW29dLHZvaWQgMCE9PXImJihlLnB1c2goYS50aW1lKSxuLnB1c2gocikpLGE9dFtpKytdfXdoaWxlKHZvaWQgMCE9PWEpfSxzdWJjbGlwOmZ1bmN0aW9uKHQsZSxuLG8saT0zMCl7Y29uc3QgYT10LmNsb25lKCk7YS5uYW1lPWU7Y29uc3Qgcj1bXTtmb3IobGV0IHQ9MDt0PGEudHJhY2tzLmxlbmd0aDsrK3Qpe2NvbnN0IGU9YS50cmFja3NbdF0scz1lLmdldFZhbHVlU2l6ZSgpLGw9W10sYz1bXTtmb3IobGV0IHQ9MDt0PGUudGltZXMubGVuZ3RoOysrdCl7Y29uc3QgYT1lLnRpbWVzW3RdKmk7aWYoIShhPG58fGE+PW8pKXtsLnB1c2goZS50aW1lc1t0XSk7Zm9yKGxldCBuPTA7bjxzOysrbiljLnB1c2goZS52YWx1ZXNbdCpzK25dKX19MCE9PWwubGVuZ3RoJiYoZS50aW1lcz1rdXQuY29udmVydEFycmF5KGwsZS50aW1lcy5jb25zdHJ1Y3RvciksZS52YWx1ZXM9a3V0LmNvbnZlcnRBcnJheShjLGUudmFsdWVzLmNvbnN0cnVjdG9yKSxyLnB1c2goZSkpfWEudHJhY2tzPXI7bGV0IHM9MS8wO2ZvcihsZXQgdD0wO3Q8YS50cmFja3MubGVuZ3RoOysrdClzPmEudHJhY2tzW3RdLnRpbWVzWzBdJiYocz1hLnRyYWNrc1t0XS50aW1lc1swXSk7Zm9yKGxldCB0PTA7dDxhLnRyYWNrcy5sZW5ndGg7Kyt0KWEudHJhY2tzW3RdLnNoaWZ0KC0xKnMpO3JldHVybiBhLnJlc2V0RHVyYXRpb24oKSxhfSxtYWtlQ2xpcEFkZGl0aXZlOmZ1bmN0aW9uKHQsZT0wLG49dCxvPTMwKXtvPD0wJiYobz0zMCk7Y29uc3QgaT1uLnRyYWNrcy5sZW5ndGgsYT1lL287Zm9yKGxldCBlPTA7ZTxpOysrZSl7Y29uc3Qgbz1uLnRyYWNrc1tlXSxpPW8uVmFsdWVUeXBlTmFtZTtpZigiYm9vbCI9PT1pfHwic3RyaW5nIj09PWkpY29udGludWU7Y29uc3Qgcj10LnRyYWNrcy5maW5kKChmdW5jdGlvbih0KXtyZXR1cm4gdC5uYW1lPT09by5uYW1lJiZ0LlZhbHVlVHlwZU5hbWU9PT1pfSkpO2lmKHZvaWQgMD09PXIpY29udGludWU7bGV0IHM9MDtjb25zdCBsPW8uZ2V0VmFsdWVTaXplKCk7by5jcmVhdGVJbnRlcnBvbGFudC5pc0ludGVycG9sYW50RmFjdG9yeU1ldGhvZEdMVEZDdWJpY1NwbGluZSYmKHM9bC8zKTtsZXQgYz0wO2NvbnN0IGQ9ci5nZXRWYWx1ZVNpemUoKTtyLmNyZWF0ZUludGVycG9sYW50LmlzSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kR0xURkN1YmljU3BsaW5lJiYoYz1kLzMpO2NvbnN0IHA9by50aW1lcy5sZW5ndGgtMTtsZXQgbTtpZihhPD1vLnRpbWVzWzBdKXttPWt1dC5hcnJheVNsaWNlKG8udmFsdWVzLHMsbC1zKX1lbHNlIGlmKGE+PW8udGltZXNbcF0pe2NvbnN0IHQ9cCpsK3M7bT1rdXQuYXJyYXlTbGljZShvLnZhbHVlcyx0LHQrbC1zKX1lbHNle2NvbnN0IHQ9by5jcmVhdGVJbnRlcnBvbGFudCgpLGU9cyxuPWwtczt0LmV2YWx1YXRlKGEpLG09a3V0LmFycmF5U2xpY2UodC5yZXN1bHRCdWZmZXIsZSxuKX1pZigicXVhdGVybmlvbiI9PT1pKXsobmV3IFBzdCkuZnJvbUFycmF5KG0pLm5vcm1hbGl6ZSgpLmNvbmp1Z2F0ZSgpLnRvQXJyYXkobSl9Y29uc3QgZj1yLnRpbWVzLmxlbmd0aDtmb3IobGV0IHQ9MDt0PGY7Kyt0KXtjb25zdCBlPXQqZCtjO2lmKCJxdWF0ZXJuaW9uIj09PWkpUHN0Lm11bHRpcGx5UXVhdGVybmlvbnNGbGF0KHIudmFsdWVzLGUsbSwwLHIudmFsdWVzLGUpO2Vsc2V7Y29uc3QgdD1kLTIqYztmb3IobGV0IG49MDtuPHQ7KytuKXIudmFsdWVzW2Urbl0tPW1bbl19fX1yZXR1cm4gdC5ibGVuZE1vZGU9MjUwMSx0fX07Y2xhc3MgU3V0e2NvbnN0cnVjdG9yKHQsZSxuLG8pe3RoaXMucGFyYW1ldGVyUG9zaXRpb25zPXQsdGhpcy5fY2FjaGVkSW5kZXg9MCx0aGlzLnJlc3VsdEJ1ZmZlcj12b2lkIDAhPT1vP286bmV3IGUuY29uc3RydWN0b3IobiksdGhpcy5zYW1wbGVWYWx1ZXM9ZSx0aGlzLnZhbHVlU2l6ZT1uLHRoaXMuc2V0dGluZ3M9bnVsbCx0aGlzLkRlZmF1bHRTZXR0aW5nc189e319ZXZhbHVhdGUodCl7Y29uc3QgZT10aGlzLnBhcmFtZXRlclBvc2l0aW9ucztsZXQgbj10aGlzLl9jYWNoZWRJbmRleCxvPWVbbl0saT1lW24tMV07dDp7ZTp7bGV0IGE7bjp7bzppZighKHQ8bykpe2ZvcihsZXQgYT1uKzI7Oyl7aWYodm9pZCAwPT09byl7aWYodDxpKWJyZWFrIG87cmV0dXJuIG49ZS5sZW5ndGgsdGhpcy5fY2FjaGVkSW5kZXg9bix0aGlzLmFmdGVyRW5kXyhuLTEsdCxpKX1pZihuPT09YSlicmVhaztpZihpPW8sbz1lWysrbl0sdDxvKWJyZWFrIGV9YT1lLmxlbmd0aDticmVhayBufWlmKHQ+PWkpYnJlYWsgdDt7Y29uc3Qgcj1lWzFdO3Q8ciYmKG49MixpPXIpO2ZvcihsZXQgYT1uLTI7Oyl7aWYodm9pZCAwPT09aSlyZXR1cm4gdGhpcy5fY2FjaGVkSW5kZXg9MCx0aGlzLmJlZm9yZVN0YXJ0XygwLHQsbyk7aWYobj09PWEpYnJlYWs7aWYobz1pLGk9ZVstLW4tMV0sdD49aSlicmVhayBlfWE9bixuPTB9fWZvcig7bjxhOyl7Y29uc3Qgbz1uK2E+Pj4xO3Q8ZVtvXT9hPW86bj1vKzF9aWYobz1lW25dLGk9ZVtuLTFdLHZvaWQgMD09PWkpcmV0dXJuIHRoaXMuX2NhY2hlZEluZGV4PTAsdGhpcy5iZWZvcmVTdGFydF8oMCx0LG8pO2lmKHZvaWQgMD09PW8pcmV0dXJuIG49ZS5sZW5ndGgsdGhpcy5fY2FjaGVkSW5kZXg9bix0aGlzLmFmdGVyRW5kXyhuLTEsaSx0KX10aGlzLl9jYWNoZWRJbmRleD1uLHRoaXMuaW50ZXJ2YWxDaGFuZ2VkXyhuLGksbyl9cmV0dXJuIHRoaXMuaW50ZXJwb2xhdGVfKG4saSx0LG8pfWdldFNldHRpbmdzXygpe3JldHVybiB0aGlzLnNldHRpbmdzfHx0aGlzLkRlZmF1bHRTZXR0aW5nc199Y29weVNhbXBsZVZhbHVlXyh0KXtjb25zdCBlPXRoaXMucmVzdWx0QnVmZmVyLG49dGhpcy5zYW1wbGVWYWx1ZXMsbz10aGlzLnZhbHVlU2l6ZSxpPXQqbztmb3IobGV0IHQ9MDt0IT09bzsrK3QpZVt0XT1uW2krdF07cmV0dXJuIGV9aW50ZXJwb2xhdGVfKCl7dGhyb3cgbmV3IEVycm9yKCJjYWxsIHRvIGFic3RyYWN0IG1ldGhvZCIpfWludGVydmFsQ2hhbmdlZF8oKXt9fVN1dC5wcm90b3R5cGUuYmVmb3JlU3RhcnRfPVN1dC5wcm90b3R5cGUuY29weVNhbXBsZVZhbHVlXyxTdXQucHJvdG90eXBlLmFmdGVyRW5kXz1TdXQucHJvdG90eXBlLmNvcHlTYW1wbGVWYWx1ZV87Y2xhc3MgRHV0IGV4dGVuZHMgU3V0e2NvbnN0cnVjdG9yKHQsZSxuLG8pe3N1cGVyKHQsZSxuLG8pLHRoaXMuX3dlaWdodFByZXY9LTAsdGhpcy5fb2Zmc2V0UHJldj0tMCx0aGlzLl93ZWlnaHROZXh0PS0wLHRoaXMuX29mZnNldE5leHQ9LTAsdGhpcy5EZWZhdWx0U2V0dGluZ3NfPXtlbmRpbmdTdGFydDpacnQsZW5kaW5nRW5kOlpydH19aW50ZXJ2YWxDaGFuZ2VkXyh0LGUsbil7Y29uc3Qgbz10aGlzLnBhcmFtZXRlclBvc2l0aW9ucztsZXQgaT10LTIsYT10KzEscj1vW2ldLHM9b1thXTtpZih2b2lkIDA9PT1yKXN3aXRjaCh0aGlzLmdldFNldHRpbmdzXygpLmVuZGluZ1N0YXJ0KXtjYXNlIFhydDppPXQscj0yKmUtbjticmVhaztjYXNlIEtydDppPW8ubGVuZ3RoLTIscj1lK29baV0tb1tpKzFdO2JyZWFrO2RlZmF1bHQ6aT10LHI9bn1pZih2b2lkIDA9PT1zKXN3aXRjaCh0aGlzLmdldFNldHRpbmdzXygpLmVuZGluZ0VuZCl7Y2FzZSBYcnQ6YT10LHM9MipuLWU7YnJlYWs7Y2FzZSBLcnQ6YT0xLHM9bitvWzFdLW9bMF07YnJlYWs7ZGVmYXVsdDphPXQtMSxzPWV9Y29uc3QgbD0uNSoobi1lKSxjPXRoaXMudmFsdWVTaXplO3RoaXMuX3dlaWdodFByZXY9bC8oZS1yKSx0aGlzLl93ZWlnaHROZXh0PWwvKHMtbiksdGhpcy5fb2Zmc2V0UHJldj1pKmMsdGhpcy5fb2Zmc2V0TmV4dD1hKmN9aW50ZXJwb2xhdGVfKHQsZSxuLG8pe2NvbnN0IGk9dGhpcy5yZXN1bHRCdWZmZXIsYT10aGlzLnNhbXBsZVZhbHVlcyxyPXRoaXMudmFsdWVTaXplLHM9dCpyLGw9cy1yLGM9dGhpcy5fb2Zmc2V0UHJldixkPXRoaXMuX29mZnNldE5leHQscD10aGlzLl93ZWlnaHRQcmV2LG09dGhpcy5fd2VpZ2h0TmV4dCxmPShuLWUpLyhvLWUpLHU9ZipmLGc9dSpmLGg9LXAqZysyKnAqdS1wKmYsYj0oMStwKSpnKygtMS41LTIqcCkqdSsoLS41K3ApKmYrMSx5PSgtMS1tKSpnKygxLjUrbSkqdSsuNSpmLF89bSpnLW0qdTtmb3IobGV0IHQ9MDt0IT09cjsrK3QpaVt0XT1oKmFbYyt0XStiKmFbbCt0XSt5KmFbcyt0XStfKmFbZCt0XTtyZXR1cm4gaX19Y2xhc3MgUnV0IGV4dGVuZHMgU3V0e2NvbnN0cnVjdG9yKHQsZSxuLG8pe3N1cGVyKHQsZSxuLG8pfWludGVycG9sYXRlXyh0LGUsbixvKXtjb25zdCBpPXRoaXMucmVzdWx0QnVmZmVyLGE9dGhpcy5zYW1wbGVWYWx1ZXMscj10aGlzLnZhbHVlU2l6ZSxzPXQqcixsPXMtcixjPShuLWUpLyhvLWUpLGQ9MS1jO2ZvcihsZXQgdD0wO3QhPT1yOysrdClpW3RdPWFbbCt0XSpkK2Fbcyt0XSpjO3JldHVybiBpfX1jbGFzcyBFdXQgZXh0ZW5kcyBTdXR7Y29uc3RydWN0b3IodCxlLG4sbyl7c3VwZXIodCxlLG4sbyl9aW50ZXJwb2xhdGVfKHQpe3JldHVybiB0aGlzLmNvcHlTYW1wbGVWYWx1ZV8odC0xKX19Y2xhc3MgQXV0e2NvbnN0cnVjdG9yKHQsZSxuLG8pe2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IEVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiB0cmFjayBuYW1lIGlzIHVuZGVmaW5lZCIpO2lmKHZvaWQgMD09PWV8fDA9PT1lLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IG5vIGtleWZyYW1lcyBpbiB0cmFjayBuYW1lZCAiK3QpO3RoaXMubmFtZT10LHRoaXMudGltZXM9a3V0LmNvbnZlcnRBcnJheShlLHRoaXMuVGltZUJ1ZmZlclR5cGUpLHRoaXMudmFsdWVzPWt1dC5jb252ZXJ0QXJyYXkobix0aGlzLlZhbHVlQnVmZmVyVHlwZSksdGhpcy5zZXRJbnRlcnBvbGF0aW9uKG98fHRoaXMuRGVmYXVsdEludGVycG9sYXRpb24pfXN0YXRpYyB0b0pTT04odCl7Y29uc3QgZT10LmNvbnN0cnVjdG9yO2xldCBuO2lmKGUudG9KU09OIT09dGhpcy50b0pTT04pbj1lLnRvSlNPTih0KTtlbHNle249e25hbWU6dC5uYW1lLHRpbWVzOmt1dC5jb252ZXJ0QXJyYXkodC50aW1lcyxBcnJheSksdmFsdWVzOmt1dC5jb252ZXJ0QXJyYXkodC52YWx1ZXMsQXJyYXkpfTtjb25zdCBlPXQuZ2V0SW50ZXJwb2xhdGlvbigpO2UhPT10LkRlZmF1bHRJbnRlcnBvbGF0aW9uJiYobi5pbnRlcnBvbGF0aW9uPWUpfXJldHVybiBuLnR5cGU9dC5WYWx1ZVR5cGVOYW1lLG59SW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kRGlzY3JldGUodCl7cmV0dXJuIG5ldyBFdXQodGhpcy50aW1lcyx0aGlzLnZhbHVlcyx0aGlzLmdldFZhbHVlU2l6ZSgpLHQpfUludGVycG9sYW50RmFjdG9yeU1ldGhvZExpbmVhcih0KXtyZXR1cm4gbmV3IFJ1dCh0aGlzLnRpbWVzLHRoaXMudmFsdWVzLHRoaXMuZ2V0VmFsdWVTaXplKCksdCl9SW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kU21vb3RoKHQpe3JldHVybiBuZXcgRHV0KHRoaXMudGltZXMsdGhpcy52YWx1ZXMsdGhpcy5nZXRWYWx1ZVNpemUoKSx0KX1zZXRJbnRlcnBvbGF0aW9uKHQpe2xldCBlO3N3aXRjaCh0KXtjYXNlIEdydDplPXRoaXMuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kRGlzY3JldGU7YnJlYWs7Y2FzZSBZcnQ6ZT10aGlzLkludGVycG9sYW50RmFjdG9yeU1ldGhvZExpbmVhcjticmVhaztjYXNlIHFydDplPXRoaXMuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kU21vb3RofWlmKHZvaWQgMD09PWUpe2NvbnN0IGU9InVuc3VwcG9ydGVkIGludGVycG9sYXRpb24gZm9yICIrdGhpcy5WYWx1ZVR5cGVOYW1lKyIga2V5ZnJhbWUgdHJhY2sgbmFtZWQgIit0aGlzLm5hbWU7aWYodm9pZCAwPT09dGhpcy5jcmVhdGVJbnRlcnBvbGFudCl7aWYodD09PXRoaXMuRGVmYXVsdEludGVycG9sYXRpb24pdGhyb3cgbmV3IEVycm9yKGUpO3RoaXMuc2V0SW50ZXJwb2xhdGlvbih0aGlzLkRlZmF1bHRJbnRlcnBvbGF0aW9uKX1yZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiIsZSksdGhpc31yZXR1cm4gdGhpcy5jcmVhdGVJbnRlcnBvbGFudD1lLHRoaXN9Z2V0SW50ZXJwb2xhdGlvbigpe3N3aXRjaCh0aGlzLmNyZWF0ZUludGVycG9sYW50KXtjYXNlIHRoaXMuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kRGlzY3JldGU6cmV0dXJuIEdydDtjYXNlIHRoaXMuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kTGluZWFyOnJldHVybiBZcnQ7Y2FzZSB0aGlzLkludGVycG9sYW50RmFjdG9yeU1ldGhvZFNtb290aDpyZXR1cm4gcXJ0fX1nZXRWYWx1ZVNpemUoKXtyZXR1cm4gdGhpcy52YWx1ZXMubGVuZ3RoL3RoaXMudGltZXMubGVuZ3RofXNoaWZ0KHQpe2lmKDAhPT10KXtjb25zdCBlPXRoaXMudGltZXM7Zm9yKGxldCBuPTAsbz1lLmxlbmd0aDtuIT09bzsrK24pZVtuXSs9dH1yZXR1cm4gdGhpc31zY2FsZSh0KXtpZigxIT09dCl7Y29uc3QgZT10aGlzLnRpbWVzO2ZvcihsZXQgbj0wLG89ZS5sZW5ndGg7biE9PW87KytuKWVbbl0qPXR9cmV0dXJuIHRoaXN9dHJpbSh0LGUpe2NvbnN0IG49dGhpcy50aW1lcyxvPW4ubGVuZ3RoO2xldCBpPTAsYT1vLTE7Zm9yKDtpIT09byYmbltpXTx0OykrK2k7Zm9yKDstMSE9PWEmJm5bYV0+ZTspLS1hO2lmKCsrYSwwIT09aXx8YSE9PW8pe2k+PWEmJihhPU1hdGgubWF4KGEsMSksaT1hLTEpO2NvbnN0IHQ9dGhpcy5nZXRWYWx1ZVNpemUoKTt0aGlzLnRpbWVzPWt1dC5hcnJheVNsaWNlKG4saSxhKSx0aGlzLnZhbHVlcz1rdXQuYXJyYXlTbGljZSh0aGlzLnZhbHVlcyxpKnQsYSp0KX1yZXR1cm4gdGhpc312YWxpZGF0ZSgpe2xldCB0PSEwO2NvbnN0IGU9dGhpcy5nZXRWYWx1ZVNpemUoKTtlLU1hdGguZmxvb3IoZSkhPTAmJihjb25zb2xlLmVycm9yKCJUSFJFRS5LZXlmcmFtZVRyYWNrOiBJbnZhbGlkIHZhbHVlIHNpemUgaW4gdHJhY2suIix0aGlzKSx0PSExKTtjb25zdCBuPXRoaXMudGltZXMsbz10aGlzLnZhbHVlcyxpPW4ubGVuZ3RoOzA9PT1pJiYoY29uc29sZS5lcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogVHJhY2sgaXMgZW1wdHkuIix0aGlzKSx0PSExKTtsZXQgYT1udWxsO2ZvcihsZXQgZT0wO2UhPT1pO2UrKyl7Y29uc3Qgbz1uW2VdO2lmKCJudW1iZXIiPT10eXBlb2YgbyYmaXNOYU4obykpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IFRpbWUgaXMgbm90IGEgdmFsaWQgbnVtYmVyLiIsdGhpcyxlLG8pLHQ9ITE7YnJlYWt9aWYobnVsbCE9PWEmJmE+byl7Y29uc29sZS5lcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogT3V0IG9mIG9yZGVyIGtleXMuIix0aGlzLGUsbyxhKSx0PSExO2JyZWFrfWE9b31pZih2b2lkIDAhPT1vJiZrdXQuaXNUeXBlZEFycmF5KG8pKWZvcihsZXQgZT0wLG49by5sZW5ndGg7ZSE9PW47KytlKXtjb25zdCBuPW9bZV07aWYoaXNOYU4obikpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IFZhbHVlIGlzIG5vdCBhIHZhbGlkIG51bWJlci4iLHRoaXMsZSxuKSx0PSExO2JyZWFrfX1yZXR1cm4gdH1vcHRpbWl6ZSgpe2NvbnN0IHQ9a3V0LmFycmF5U2xpY2UodGhpcy50aW1lcyksZT1rdXQuYXJyYXlTbGljZSh0aGlzLnZhbHVlcyksbj10aGlzLmdldFZhbHVlU2l6ZSgpLG89dGhpcy5nZXRJbnRlcnBvbGF0aW9uKCk9PT1xcnQsaT10Lmxlbmd0aC0xO2xldCBhPTE7Zm9yKGxldCByPTE7cjxpOysrcil7bGV0IGk9ITE7Y29uc3Qgcz10W3JdO2lmKHMhPT10W3IrMV0mJigxIT09cnx8cyE9PXRbMF0pKWlmKG8paT0hMDtlbHNle2NvbnN0IHQ9cipuLG89dC1uLGE9dCtuO2ZvcihsZXQgcj0wO3IhPT1uOysrcil7Y29uc3Qgbj1lW3Qrcl07aWYobiE9PWVbbytyXXx8biE9PWVbYStyXSl7aT0hMDticmVha319fWlmKGkpe2lmKHIhPT1hKXt0W2FdPXRbcl07Y29uc3Qgbz1yKm4saT1hKm47Zm9yKGxldCB0PTA7dCE9PW47Kyt0KWVbaSt0XT1lW28rdF19KythfX1pZihpPjApe3RbYV09dFtpXTtmb3IobGV0IHQ9aSpuLG89YSpuLHI9MDtyIT09bjsrK3IpZVtvK3JdPWVbdCtyXTsrK2F9cmV0dXJuIGEhPT10Lmxlbmd0aD8odGhpcy50aW1lcz1rdXQuYXJyYXlTbGljZSh0LDAsYSksdGhpcy52YWx1ZXM9a3V0LmFycmF5U2xpY2UoZSwwLGEqbikpOih0aGlzLnRpbWVzPXQsdGhpcy52YWx1ZXM9ZSksdGhpc31jbG9uZSgpe2NvbnN0IHQ9a3V0LmFycmF5U2xpY2UodGhpcy50aW1lcywwKSxlPWt1dC5hcnJheVNsaWNlKHRoaXMudmFsdWVzLDApLG49bmV3KDAsdGhpcy5jb25zdHJ1Y3RvcikodGhpcy5uYW1lLHQsZSk7cmV0dXJuIG4uY3JlYXRlSW50ZXJwb2xhbnQ9dGhpcy5jcmVhdGVJbnRlcnBvbGFudCxufX1BdXQucHJvdG90eXBlLlRpbWVCdWZmZXJUeXBlPUZsb2F0MzJBcnJheSxBdXQucHJvdG90eXBlLlZhbHVlQnVmZmVyVHlwZT1GbG9hdDMyQXJyYXksQXV0LnByb3RvdHlwZS5EZWZhdWx0SW50ZXJwb2xhdGlvbj1ZcnQ7Y2xhc3MgVHV0IGV4dGVuZHMgQXV0e31UdXQucHJvdG90eXBlLlZhbHVlVHlwZU5hbWU9ImJvb2wiLFR1dC5wcm90b3R5cGUuVmFsdWVCdWZmZXJUeXBlPUFycmF5LFR1dC5wcm90b3R5cGUuRGVmYXVsdEludGVycG9sYXRpb249R3J0LFR1dC5wcm90b3R5cGUuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kTGluZWFyPXZvaWQgMCxUdXQucHJvdG90eXBlLkludGVycG9sYW50RmFjdG9yeU1ldGhvZFNtb290aD12b2lkIDA7Y2xhc3MgTnV0IGV4dGVuZHMgQXV0e31OdXQucHJvdG90eXBlLlZhbHVlVHlwZU5hbWU9ImNvbG9yIjtjbGFzcyB6dXQgZXh0ZW5kcyBBdXR7fXp1dC5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0ibnVtYmVyIjtjbGFzcyBJdXQgZXh0ZW5kcyBTdXR7Y29uc3RydWN0b3IodCxlLG4sbyl7c3VwZXIodCxlLG4sbyl9aW50ZXJwb2xhdGVfKHQsZSxuLG8pe2NvbnN0IGk9dGhpcy5yZXN1bHRCdWZmZXIsYT10aGlzLnNhbXBsZVZhbHVlcyxyPXRoaXMudmFsdWVTaXplLHM9KG4tZSkvKG8tZSk7bGV0IGw9dCpyO2ZvcihsZXQgdD1sK3I7bCE9PXQ7bCs9NClQc3Quc2xlcnBGbGF0KGksMCxhLGwtcixhLGwscyk7cmV0dXJuIGl9fWNsYXNzIEh1dCBleHRlbmRzIEF1dHtJbnRlcnBvbGFudEZhY3RvcnlNZXRob2RMaW5lYXIodCl7cmV0dXJuIG5ldyBJdXQodGhpcy50aW1lcyx0aGlzLnZhbHVlcyx0aGlzLmdldFZhbHVlU2l6ZSgpLHQpfX1IdXQucHJvdG90eXBlLlZhbHVlVHlwZU5hbWU9InF1YXRlcm5pb24iLEh1dC5wcm90b3R5cGUuRGVmYXVsdEludGVycG9sYXRpb249WXJ0LEh1dC5wcm90b3R5cGUuSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kU21vb3RoPXZvaWQgMDtjbGFzcyBGdXQgZXh0ZW5kcyBBdXR7fUZ1dC5wcm90b3R5cGUuVmFsdWVUeXBlTmFtZT0ic3RyaW5nIixGdXQucHJvdG90eXBlLlZhbHVlQnVmZmVyVHlwZT1BcnJheSxGdXQucHJvdG90eXBlLkRlZmF1bHRJbnRlcnBvbGF0aW9uPUdydCxGdXQucHJvdG90eXBlLkludGVycG9sYW50RmFjdG9yeU1ldGhvZExpbmVhcj12b2lkIDAsRnV0LnByb3RvdHlwZS5JbnRlcnBvbGFudEZhY3RvcnlNZXRob2RTbW9vdGg9dm9pZCAwO2NsYXNzIEx1dCBleHRlbmRzIEF1dHt9THV0LnByb3RvdHlwZS5WYWx1ZVR5cGVOYW1lPSJ2ZWN0b3IiO2NsYXNzIEJ1dHtjb25zdHJ1Y3Rvcih0LGU9LTEsbixvPTI1MDApe3RoaXMubmFtZT10LHRoaXMudHJhY2tzPW4sdGhpcy5kdXJhdGlvbj1lLHRoaXMuYmxlbmRNb2RlPW8sdGhpcy51dWlkPWRzdCgpLHRoaXMuZHVyYXRpb248MCYmdGhpcy5yZXNldER1cmF0aW9uKCl9c3RhdGljIHBhcnNlKHQpe2NvbnN0IGU9W10sbj10LnRyYWNrcyxvPTEvKHQuZnBzfHwxKTtmb3IobGV0IHQ9MCxpPW4ubGVuZ3RoO3QhPT1pOysrdCllLnB1c2goVnV0KG5bdF0pLnNjYWxlKG8pKTtjb25zdCBpPW5ldyB0aGlzKHQubmFtZSx0LmR1cmF0aW9uLGUsdC5ibGVuZE1vZGUpO3JldHVybiBpLnV1aWQ9dC51dWlkLGl9c3RhdGljIHRvSlNPTih0KXtjb25zdCBlPVtdLG49dC50cmFja3Msbz17bmFtZTp0Lm5hbWUsZHVyYXRpb246dC5kdXJhdGlvbix0cmFja3M6ZSx1dWlkOnQudXVpZCxibGVuZE1vZGU6dC5ibGVuZE1vZGV9O2ZvcihsZXQgdD0wLG89bi5sZW5ndGg7dCE9PW87Kyt0KWUucHVzaChBdXQudG9KU09OKG5bdF0pKTtyZXR1cm4gb31zdGF0aWMgQ3JlYXRlRnJvbU1vcnBoVGFyZ2V0U2VxdWVuY2UodCxlLG4sbyl7Y29uc3QgaT1lLmxlbmd0aCxhPVtdO2ZvcihsZXQgdD0wO3Q8aTt0Kyspe2xldCByPVtdLHM9W107ci5wdXNoKCh0K2ktMSklaSx0LCh0KzEpJWkpLHMucHVzaCgwLDEsMCk7Y29uc3QgbD1rdXQuZ2V0S2V5ZnJhbWVPcmRlcihyKTtyPWt1dC5zb3J0ZWRBcnJheShyLDEsbCkscz1rdXQuc29ydGVkQXJyYXkocywxLGwpLG98fDAhPT1yWzBdfHwoci5wdXNoKGkpLHMucHVzaChzWzBdKSksYS5wdXNoKG5ldyB6dXQoIi5tb3JwaFRhcmdldEluZmx1ZW5jZXNbIitlW3RdLm5hbWUrIl0iLHIscykuc2NhbGUoMS9uKSl9cmV0dXJuIG5ldyB0aGlzKHQsLTEsYSl9c3RhdGljIGZpbmRCeU5hbWUodCxlKXtsZXQgbj10O2lmKCFBcnJheS5pc0FycmF5KHQpKXtjb25zdCBlPXQ7bj1lLmdlb21ldHJ5JiZlLmdlb21ldHJ5LmFuaW1hdGlvbnN8fGUuYW5pbWF0aW9uc31mb3IobGV0IHQ9MDt0PG4ubGVuZ3RoO3QrKylpZihuW3RdLm5hbWU9PT1lKXJldHVybiBuW3RdO3JldHVybiBudWxsfXN0YXRpYyBDcmVhdGVDbGlwc0Zyb21Nb3JwaFRhcmdldFNlcXVlbmNlcyh0LGUsbil7Y29uc3Qgbz17fSxpPS9eKFtcdy1dKj8pKFtcZF0rKSQvO2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKyl7Y29uc3Qgbj10W2VdLGE9bi5uYW1lLm1hdGNoKGkpO2lmKGEmJmEubGVuZ3RoPjEpe2NvbnN0IHQ9YVsxXTtsZXQgZT1vW3RdO2V8fChvW3RdPWU9W10pLGUucHVzaChuKX19Y29uc3QgYT1bXTtmb3IoY29uc3QgdCBpbiBvKWEucHVzaCh0aGlzLkNyZWF0ZUZyb21Nb3JwaFRhcmdldFNlcXVlbmNlKHQsb1t0XSxlLG4pKTtyZXR1cm4gYX1zdGF0aWMgcGFyc2VBbmltYXRpb24odCxlKXtpZighdClyZXR1cm4gY29uc29sZS5lcnJvcigiVEhSRUUuQW5pbWF0aW9uQ2xpcDogTm8gYW5pbWF0aW9uIGluIEpTT05Mb2FkZXIgZGF0YS4iKSxudWxsO2NvbnN0IG49ZnVuY3Rpb24odCxlLG4sbyxpKXtpZigwIT09bi5sZW5ndGgpe2NvbnN0IGE9W10scj1bXTtrdXQuZmxhdHRlbkpTT04obixhLHIsbyksMCE9PWEubGVuZ3RoJiZpLnB1c2gobmV3IHQoZSxhLHIpKX19LG89W10saT10Lm5hbWV8fCJkZWZhdWx0IixhPXQuZnBzfHwzMCxyPXQuYmxlbmRNb2RlO2xldCBzPXQubGVuZ3RofHwtMTtjb25zdCBsPXQuaGllcmFyY2h5fHxbXTtmb3IobGV0IHQ9MDt0PGwubGVuZ3RoO3QrKyl7Y29uc3QgaT1sW3RdLmtleXM7aWYoaSYmMCE9PWkubGVuZ3RoKWlmKGlbMF0ubW9ycGhUYXJnZXRzKXtjb25zdCB0PXt9O2xldCBlO2ZvcihlPTA7ZTxpLmxlbmd0aDtlKyspaWYoaVtlXS5tb3JwaFRhcmdldHMpZm9yKGxldCBuPTA7bjxpW2VdLm1vcnBoVGFyZ2V0cy5sZW5ndGg7bisrKXRbaVtlXS5tb3JwaFRhcmdldHNbbl1dPS0xO2Zvcihjb25zdCBuIGluIHQpe2NvbnN0IHQ9W10sYT1bXTtmb3IobGV0IG89MDtvIT09aVtlXS5tb3JwaFRhcmdldHMubGVuZ3RoOysrbyl7Y29uc3Qgbz1pW2VdO3QucHVzaChvLnRpbWUpLGEucHVzaChvLm1vcnBoVGFyZ2V0PT09bj8xOjApfW8ucHVzaChuZXcgenV0KCIubW9ycGhUYXJnZXRJbmZsdWVuY2VbIituKyJdIix0LGEpKX1zPXQubGVuZ3RoKihhfHwxKX1lbHNle2NvbnN0IGE9Ii5ib25lc1siK2VbdF0ubmFtZSsiXSI7bihMdXQsYSsiLnBvc2l0aW9uIixpLCJwb3MiLG8pLG4oSHV0LGErIi5xdWF0ZXJuaW9uIixpLCJyb3QiLG8pLG4oTHV0LGErIi5zY2FsZSIsaSwic2NsIixvKX19aWYoMD09PW8ubGVuZ3RoKXJldHVybiBudWxsO3JldHVybiBuZXcgdGhpcyhpLHMsbyxyKX1yZXNldER1cmF0aW9uKCl7bGV0IHQ9MDtmb3IobGV0IGU9MCxuPXRoaXMudHJhY2tzLmxlbmd0aDtlIT09bjsrK2Upe2NvbnN0IG49dGhpcy50cmFja3NbZV07dD1NYXRoLm1heCh0LG4udGltZXNbbi50aW1lcy5sZW5ndGgtMV0pfXJldHVybiB0aGlzLmR1cmF0aW9uPXQsdGhpc310cmltKCl7Zm9yKGxldCB0PTA7dDx0aGlzLnRyYWNrcy5sZW5ndGg7dCsrKXRoaXMudHJhY2tzW3RdLnRyaW0oMCx0aGlzLmR1cmF0aW9uKTtyZXR1cm4gdGhpc312YWxpZGF0ZSgpe2xldCB0PSEwO2ZvcihsZXQgZT0wO2U8dGhpcy50cmFja3MubGVuZ3RoO2UrKyl0PXQmJnRoaXMudHJhY2tzW2VdLnZhbGlkYXRlKCk7cmV0dXJuIHR9b3B0aW1pemUoKXtmb3IobGV0IHQ9MDt0PHRoaXMudHJhY2tzLmxlbmd0aDt0KyspdGhpcy50cmFja3NbdF0ub3B0aW1pemUoKTtyZXR1cm4gdGhpc31jbG9uZSgpe2NvbnN0IHQ9W107Zm9yKGxldCBlPTA7ZTx0aGlzLnRyYWNrcy5sZW5ndGg7ZSsrKXQucHVzaCh0aGlzLnRyYWNrc1tlXS5jbG9uZSgpKTtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5uYW1lLHRoaXMuZHVyYXRpb24sdCx0aGlzLmJsZW5kTW9kZSl9dG9KU09OKCl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IudG9KU09OKHRoaXMpfX1mdW5jdGlvbiBWdXQodCl7aWYodm9pZCAwPT09dC50eXBlKXRocm93IG5ldyBFcnJvcigiVEhSRUUuS2V5ZnJhbWVUcmFjazogdHJhY2sgdHlwZSB1bmRlZmluZWQsIGNhbiBub3QgcGFyc2UiKTtjb25zdCBlPShmdW5jdGlvbiBuKHQpe3N3aXRjaCh0LnRvTG93ZXJDYXNlKCkpe2Nhc2Uic2NhbGFyIjpjYXNlImRvdWJsZSI6Y2FzZSJmbG9hdCI6Y2FzZSJudW1iZXIiOmNhc2UiaW50ZWdlciI6cmV0dXJuIHp1dDtjYXNlInZlY3RvciI6Y2FzZSJ2ZWN0b3IyIjpjYXNlInZlY3RvcjMiOmNhc2UidmVjdG9yNCI6cmV0dXJuIEx1dDtjYXNlImNvbG9yIjpyZXR1cm4gTnV0O2Nhc2UicXVhdGVybmlvbiI6cmV0dXJuIEh1dDtjYXNlImJvb2wiOmNhc2UiYm9vbGVhbiI6cmV0dXJuIFR1dDtjYXNlInN0cmluZyI6cmV0dXJuIEZ1dH10aHJvdyBuZXcgRXJyb3IoIlRIUkVFLktleWZyYW1lVHJhY2s6IFVuc3VwcG9ydGVkIHR5cGVOYW1lOiAiK3QpfSkodC50eXBlKTtpZih2b2lkIDA9PT10LnRpbWVzKXtjb25zdCBlPVtdLG49W107a3V0LmZsYXR0ZW5KU09OKHQua2V5cyxlLG4sInZhbHVlIiksdC50aW1lcz1lLHQudmFsdWVzPW59cmV0dXJuIHZvaWQgMCE9PWUucGFyc2U/ZS5wYXJzZSh0KTpuZXcgZSh0Lm5hbWUsdC50aW1lcyx0LnZhbHVlcyx0LmludGVycG9sYXRpb24pfWNvbnN0IGp1dD17ZW5hYmxlZDohMSxmaWxlczp7fSxhZGQ6ZnVuY3Rpb24odCxlKXshMSE9PXRoaXMuZW5hYmxlZCYmKHRoaXMuZmlsZXNbdF09ZSl9LGdldDpmdW5jdGlvbih0KXtpZighMSE9PXRoaXMuZW5hYmxlZClyZXR1cm4gdGhpcy5maWxlc1t0XX0scmVtb3ZlOmZ1bmN0aW9uKHQpe2RlbGV0ZSB0aGlzLmZpbGVzW3RdfSxjbGVhcjpmdW5jdGlvbigpe3RoaXMuZmlsZXM9e319fTtjb25zdCBVdXQ9bmV3IGNsYXNze2NvbnN0cnVjdG9yKHQsZSxuKXtjb25zdCBvPXRoaXM7bGV0IGksYT0hMSxyPTAscz0wO2NvbnN0IGw9W107dGhpcy5vblN0YXJ0PXZvaWQgMCx0aGlzLm9uTG9hZD10LHRoaXMub25Qcm9ncmVzcz1lLHRoaXMub25FcnJvcj1uLHRoaXMuaXRlbVN0YXJ0PWZ1bmN0aW9uKHQpe3MrKywhMT09PWEmJnZvaWQgMCE9PW8ub25TdGFydCYmby5vblN0YXJ0KHQscixzKSxhPSEwfSx0aGlzLml0ZW1FbmQ9ZnVuY3Rpb24odCl7cisrLHZvaWQgMCE9PW8ub25Qcm9ncmVzcyYmby5vblByb2dyZXNzKHQscixzKSxyPT09cyYmKGE9ITEsdm9pZCAwIT09by5vbkxvYWQmJm8ub25Mb2FkKCkpfSx0aGlzLml0ZW1FcnJvcj1mdW5jdGlvbih0KXt2b2lkIDAhPT1vLm9uRXJyb3ImJm8ub25FcnJvcih0KX0sdGhpcy5yZXNvbHZlVVJMPWZ1bmN0aW9uKHQpe3JldHVybiBpP2kodCk6dH0sdGhpcy5zZXRVUkxNb2RpZmllcj1mdW5jdGlvbih0KXtyZXR1cm4gaT10LHRoaXN9LHRoaXMuYWRkSGFuZGxlcj1mdW5jdGlvbih0LGUpe3JldHVybiBsLnB1c2godCxlKSx0aGlzfSx0aGlzLnJlbW92ZUhhbmRsZXI9ZnVuY3Rpb24odCl7Y29uc3QgZT1sLmluZGV4T2YodCk7cmV0dXJuLTEhPT1lJiZsLnNwbGljZShlLDIpLHRoaXN9LHRoaXMuZ2V0SGFuZGxlcj1mdW5jdGlvbih0KXtmb3IobGV0IGU9MCxuPWwubGVuZ3RoO2U8bjtlKz0yKXtjb25zdCBuPWxbZV0sbz1sW2UrMV07aWYobi5nbG9iYWwmJihuLmxhc3RJbmRleD0wKSxuLnRlc3QodCkpcmV0dXJuIG99cmV0dXJuIG51bGx9fX07Y2xhc3MgV3V0e2NvbnN0cnVjdG9yKHQpe3RoaXMubWFuYWdlcj12b2lkIDAhPT10P3Q6VXV0LHRoaXMuY3Jvc3NPcmlnaW49ImFub255bW91cyIsdGhpcy53aXRoQ3JlZGVudGlhbHM9ITEsdGhpcy5wYXRoPSIiLHRoaXMucmVzb3VyY2VQYXRoPSIiLHRoaXMucmVxdWVzdEhlYWRlcj17fX1sb2FkKCl7fWxvYWRBc3luYyh0LGUpe2NvbnN0IG49dGhpcztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKG8saSl7bi5sb2FkKHQsbyxlLGkpfSkpfXBhcnNlKCl7fXNldENyb3NzT3JpZ2luKHQpe3JldHVybiB0aGlzLmNyb3NzT3JpZ2luPXQsdGhpc31zZXRXaXRoQ3JlZGVudGlhbHModCl7cmV0dXJuIHRoaXMud2l0aENyZWRlbnRpYWxzPXQsdGhpc31zZXRQYXRoKHQpe3JldHVybiB0aGlzLnBhdGg9dCx0aGlzfXNldFJlc291cmNlUGF0aCh0KXtyZXR1cm4gdGhpcy5yZXNvdXJjZVBhdGg9dCx0aGlzfXNldFJlcXVlc3RIZWFkZXIodCl7cmV0dXJuIHRoaXMucmVxdWVzdEhlYWRlcj10LHRoaXN9fWNvbnN0IEd1dD17fTtjbGFzcyBZdXQgZXh0ZW5kcyBXdXR7Y29uc3RydWN0b3IodCl7c3VwZXIodCl9bG9hZCh0LGUsbixvKXt2b2lkIDA9PT10JiYodD0iIiksdm9pZCAwIT09dGhpcy5wYXRoJiYodD10aGlzLnBhdGgrdCksdD10aGlzLm1hbmFnZXIucmVzb2x2ZVVSTCh0KTtjb25zdCBpPXRoaXMsYT1qdXQuZ2V0KHQpO2lmKHZvaWQgMCE9PWEpcmV0dXJuIGkubWFuYWdlci5pdGVtU3RhcnQodCksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtlJiZlKGEpLGkubWFuYWdlci5pdGVtRW5kKHQpfSksMCksYTtpZih2b2lkIDAhPT1HdXRbdF0pcmV0dXJuIHZvaWQgR3V0W3RdLnB1c2goe29uTG9hZDplLG9uUHJvZ3Jlc3M6bixvbkVycm9yOm99KTtjb25zdCByPXQubWF0Y2goL15kYXRhOiguKj8pKDtiYXNlNjQpPywoLiopJC8pO2xldCBzO2lmKHIpe2NvbnN0IG49clsxXSxhPSEhclsyXTtsZXQgcz1yWzNdO3M9ZGVjb2RlVVJJQ29tcG9uZW50KHMpLGEmJihzPWF0b2IocykpO3RyeXtsZXQgbztjb25zdCBhPSh0aGlzLnJlc3BvbnNlVHlwZXx8IiIpLnRvTG93ZXJDYXNlKCk7c3dpdGNoKGEpe2Nhc2UiYXJyYXlidWZmZXIiOmNhc2UiYmxvYiI6Y29uc3QgdD1uZXcgVWludDhBcnJheShzLmxlbmd0aCk7Zm9yKGxldCBlPTA7ZTxzLmxlbmd0aDtlKyspdFtlXT1zLmNoYXJDb2RlQXQoZSk7bz0iYmxvYiI9PT1hP25ldyBCbG9iKFt0LmJ1ZmZlcl0se3R5cGU6bn0pOnQuYnVmZmVyO2JyZWFrO2Nhc2UiZG9jdW1lbnQiOmNvbnN0IGU9bmV3IERPTVBhcnNlcjtvPWUucGFyc2VGcm9tU3RyaW5nKHMsbik7YnJlYWs7Y2FzZSJqc29uIjpvPUpTT04ucGFyc2Uocyk7YnJlYWs7ZGVmYXVsdDpvPXN9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtlJiZlKG8pLGkubWFuYWdlci5pdGVtRW5kKHQpfSksMCl9Y2F0Y2goZSl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXtvJiZvKGUpLGkubWFuYWdlci5pdGVtRXJyb3IodCksaS5tYW5hZ2VyLml0ZW1FbmQodCl9KSwwKX19ZWxzZXtHdXRbdF09W10sR3V0W3RdLnB1c2goe29uTG9hZDplLG9uUHJvZ3Jlc3M6bixvbkVycm9yOm99KSxzPW5ldyBYTUxIdHRwUmVxdWVzdCxzLm9wZW4oIkdFVCIsdCwhMCkscy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoZnVuY3Rpb24oZSl7Y29uc3Qgbj10aGlzLnJlc3BvbnNlLG89R3V0W3RdO2lmKGRlbGV0ZSBHdXRbdF0sMjAwPT09dGhpcy5zdGF0dXN8fDA9PT10aGlzLnN0YXR1cyl7MD09PXRoaXMuc3RhdHVzJiZjb25zb2xlLndhcm4oIlRIUkVFLkZpbGVMb2FkZXI6IEhUVFAgU3RhdHVzIDAgcmVjZWl2ZWQuIiksanV0LmFkZCh0LG4pO2ZvcihsZXQgdD0wLGU9by5sZW5ndGg7dDxlO3QrKyl7Y29uc3QgZT1vW3RdO2Uub25Mb2FkJiZlLm9uTG9hZChuKX1pLm1hbmFnZXIuaXRlbUVuZCh0KX1lbHNle2ZvcihsZXQgdD0wLG49by5sZW5ndGg7dDxuO3QrKyl7Y29uc3Qgbj1vW3RdO24ub25FcnJvciYmbi5vbkVycm9yKGUpfWkubWFuYWdlci5pdGVtRXJyb3IodCksaS5tYW5hZ2VyLml0ZW1FbmQodCl9fSksITEpLHMuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLChmdW5jdGlvbihlKXtjb25zdCBuPUd1dFt0XTtmb3IobGV0IHQ9MCxvPW4ubGVuZ3RoO3Q8bzt0Kyspe2NvbnN0IG89blt0XTtvLm9uUHJvZ3Jlc3MmJm8ub25Qcm9ncmVzcyhlKX19KSwhMSkscy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKGZ1bmN0aW9uKGUpe2NvbnN0IG49R3V0W3RdO2RlbGV0ZSBHdXRbdF07Zm9yKGxldCB0PTAsbz1uLmxlbmd0aDt0PG87dCsrKXtjb25zdCBvPW5bdF07by5vbkVycm9yJiZvLm9uRXJyb3IoZSl9aS5tYW5hZ2VyLml0ZW1FcnJvcih0KSxpLm1hbmFnZXIuaXRlbUVuZCh0KX0pLCExKSxzLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IiwoZnVuY3Rpb24oZSl7Y29uc3Qgbj1HdXRbdF07ZGVsZXRlIEd1dFt0XTtmb3IobGV0IHQ9MCxvPW4ubGVuZ3RoO3Q8bzt0Kyspe2NvbnN0IG89blt0XTtvLm9uRXJyb3ImJm8ub25FcnJvcihlKX1pLm1hbmFnZXIuaXRlbUVycm9yKHQpLGkubWFuYWdlci5pdGVtRW5kKHQpfSksITEpLHZvaWQgMCE9PXRoaXMucmVzcG9uc2VUeXBlJiYocy5yZXNwb25zZVR5cGU9dGhpcy5yZXNwb25zZVR5cGUpLHZvaWQgMCE9PXRoaXMud2l0aENyZWRlbnRpYWxzJiYocy53aXRoQ3JlZGVudGlhbHM9dGhpcy53aXRoQ3JlZGVudGlhbHMpLHMub3ZlcnJpZGVNaW1lVHlwZSYmcy5vdmVycmlkZU1pbWVUeXBlKHZvaWQgMCE9PXRoaXMubWltZVR5cGU/dGhpcy5taW1lVHlwZToidGV4dC9wbGFpbiIpO2Zvcihjb25zdCB0IGluIHRoaXMucmVxdWVzdEhlYWRlcilzLnNldFJlcXVlc3RIZWFkZXIodCx0aGlzLnJlcXVlc3RIZWFkZXJbdF0pO3Muc2VuZChudWxsKX1yZXR1cm4gaS5tYW5hZ2VyLml0ZW1TdGFydCh0KSxzfXNldFJlc3BvbnNlVHlwZSh0KXtyZXR1cm4gdGhpcy5yZXNwb25zZVR5cGU9dCx0aGlzfXNldE1pbWVUeXBlKHQpe3JldHVybiB0aGlzLm1pbWVUeXBlPXQsdGhpc319Y2xhc3MgcXV0IGV4dGVuZHMgV3V0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfWxvYWQodCxlLG4sbyl7dm9pZCAwIT09dGhpcy5wYXRoJiYodD10aGlzLnBhdGgrdCksdD10aGlzLm1hbmFnZXIucmVzb2x2ZVVSTCh0KTtjb25zdCBpPXRoaXMsYT1qdXQuZ2V0KHQpO2lmKHZvaWQgMCE9PWEpcmV0dXJuIGkubWFuYWdlci5pdGVtU3RhcnQodCksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtlJiZlKGEpLGkubWFuYWdlci5pdGVtRW5kKHQpfSksMCksYTtjb25zdCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImltZyIpO2Z1bmN0aW9uIHMoKXtyLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLHMsITEpLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGwsITEpLGp1dC5hZGQodCx0aGlzKSxlJiZlKHRoaXMpLGkubWFuYWdlci5pdGVtRW5kKHQpfWZ1bmN0aW9uIGwoZSl7ci5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixzLCExKSxyLnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIixsLCExKSxvJiZvKGUpLGkubWFuYWdlci5pdGVtRXJyb3IodCksaS5tYW5hZ2VyLml0ZW1FbmQodCl9cmV0dXJuIHIuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIscywhMSksci5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsbCwhMSksImRhdGE6IiE9PXQuc3Vic3RyKDAsNSkmJnZvaWQgMCE9PXRoaXMuY3Jvc3NPcmlnaW4mJihyLmNyb3NzT3JpZ2luPXRoaXMuY3Jvc3NPcmlnaW4pLGkubWFuYWdlci5pdGVtU3RhcnQodCksci5zcmM9dCxyfX1jbGFzcyBadXQgZXh0ZW5kcyBXdXR7Y29uc3RydWN0b3IodCl7c3VwZXIodCl9bG9hZCh0LGUsbixvKXtjb25zdCBpPW5ldyBMY3QsYT1uZXcgcXV0KHRoaXMubWFuYWdlcik7YS5zZXRDcm9zc09yaWdpbih0aGlzLmNyb3NzT3JpZ2luKSxhLnNldFBhdGgodGhpcy5wYXRoKTtsZXQgcj0wO2Z1bmN0aW9uIHMobil7YS5sb2FkKHRbbl0sKGZ1bmN0aW9uKHQpe2kuaW1hZ2VzW25dPXQscisrLDY9PT1yJiYoaS5uZWVkc1VwZGF0ZT0hMCxlJiZlKGkpKX0pLHZvaWQgMCxvKX1mb3IobGV0IGU9MDtlPHQubGVuZ3RoOysrZSlzKGUpO3JldHVybiBpfX1jbGFzcyBYdXQgZXh0ZW5kcyBXdXR7Y29uc3RydWN0b3IodCl7c3VwZXIodCl9bG9hZCh0LGUsbixvKXtjb25zdCBpPW5ldyBDc3QsYT1uZXcgcXV0KHRoaXMubWFuYWdlcik7cmV0dXJuIGEuc2V0Q3Jvc3NPcmlnaW4odGhpcy5jcm9zc09yaWdpbiksYS5zZXRQYXRoKHRoaXMucGF0aCksYS5sb2FkKHQsKGZ1bmN0aW9uKG4pe2kuaW1hZ2U9bjtjb25zdCBvPXQuc2VhcmNoKC9cLmpwZT9nKCR8XD8pL2kpPjB8fDA9PT10LnNlYXJjaCgvXmRhdGFcOmltYWdlXC9qcGVnLyk7aS5mb3JtYXQ9bz9WcnQ6anJ0LGkubmVlZHNVcGRhdGU9ITAsdm9pZCAwIT09ZSYmZShpKX0pLG4sbyksaX19Y2xhc3MgS3V0IGV4dGVuZHMgUmZ0e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnR5cGU9IkN1cnZlUGF0aCIsdGhpcy5jdXJ2ZXM9W10sdGhpcy5hdXRvQ2xvc2U9ITF9YWRkKHQpe3RoaXMuY3VydmVzLnB1c2godCl9Y2xvc2VQYXRoKCl7Y29uc3QgdD10aGlzLmN1cnZlc1swXS5nZXRQb2ludCgwKSxlPXRoaXMuY3VydmVzW3RoaXMuY3VydmVzLmxlbmd0aC0xXS5nZXRQb2ludCgxKTt0LmVxdWFscyhlKXx8dGhpcy5jdXJ2ZXMucHVzaChuZXcgV2Z0KGUsdCkpfWdldFBvaW50KHQpe2NvbnN0IGU9dCp0aGlzLmdldExlbmd0aCgpLG49dGhpcy5nZXRDdXJ2ZUxlbmd0aHMoKTtsZXQgbz0wO2Zvcig7bzxuLmxlbmd0aDspe2lmKG5bb10+PWUpe2NvbnN0IHQ9bltvXS1lLGk9dGhpcy5jdXJ2ZXNbb10sYT1pLmdldExlbmd0aCgpO3JldHVybiBpLmdldFBvaW50QXQoMD09PWE/MDoxLXQvYSl9bysrfXJldHVybiBudWxsfWdldExlbmd0aCgpe2NvbnN0IHQ9dGhpcy5nZXRDdXJ2ZUxlbmd0aHMoKTtyZXR1cm4gdFt0Lmxlbmd0aC0xXX11cGRhdGVBcmNMZW5ndGhzKCl7dGhpcy5uZWVkc1VwZGF0ZT0hMCx0aGlzLmNhY2hlTGVuZ3Rocz1udWxsLHRoaXMuZ2V0Q3VydmVMZW5ndGhzKCl9Z2V0Q3VydmVMZW5ndGhzKCl7aWYodGhpcy5jYWNoZUxlbmd0aHMmJnRoaXMuY2FjaGVMZW5ndGhzLmxlbmd0aD09PXRoaXMuY3VydmVzLmxlbmd0aClyZXR1cm4gdGhpcy5jYWNoZUxlbmd0aHM7Y29uc3QgdD1bXTtsZXQgZT0wO2ZvcihsZXQgbj0wLG89dGhpcy5jdXJ2ZXMubGVuZ3RoO248bztuKyspZSs9dGhpcy5jdXJ2ZXNbbl0uZ2V0TGVuZ3RoKCksdC5wdXNoKGUpO3JldHVybiB0aGlzLmNhY2hlTGVuZ3Rocz10LHR9Z2V0U3BhY2VkUG9pbnRzKHQ9NDApe2NvbnN0IGU9W107Zm9yKGxldCBuPTA7bjw9dDtuKyspZS5wdXNoKHRoaXMuZ2V0UG9pbnQobi90KSk7cmV0dXJuIHRoaXMuYXV0b0Nsb3NlJiZlLnB1c2goZVswXSksZX1nZXRQb2ludHModD0xMil7Y29uc3QgZT1bXTtsZXQgbjtmb3IobGV0IG89MCxpPXRoaXMuY3VydmVzO288aS5sZW5ndGg7bysrKXtjb25zdCBhPWlbb10scj1hLmdldFBvaW50cyhhJiZhLmlzRWxsaXBzZUN1cnZlPzIqdDphJiYoYS5pc0xpbmVDdXJ2ZXx8YS5pc0xpbmVDdXJ2ZTMpPzE6YSYmYS5pc1NwbGluZUN1cnZlP3QqYS5wb2ludHMubGVuZ3RoOnQpO2ZvcihsZXQgdD0wO3Q8ci5sZW5ndGg7dCsrKXtjb25zdCBvPXJbdF07biYmbi5lcXVhbHMobyl8fChlLnB1c2gobyksbj1vKX19cmV0dXJuIHRoaXMuYXV0b0Nsb3NlJiZlLmxlbmd0aD4xJiYhZVtlLmxlbmd0aC0xXS5lcXVhbHMoZVswXSkmJmUucHVzaChlWzBdKSxlfWNvcHkodCl7c3VwZXIuY29weSh0KSx0aGlzLmN1cnZlcz1bXTtmb3IobGV0IGU9MCxuPXQuY3VydmVzLmxlbmd0aDtlPG47ZSsrKXt0aGlzLmN1cnZlcy5wdXNoKHQuY3VydmVzW2VdLmNsb25lKCkpfXJldHVybiB0aGlzLmF1dG9DbG9zZT10LmF1dG9DbG9zZSx0aGlzfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKCk7dC5hdXRvQ2xvc2U9dGhpcy5hdXRvQ2xvc2UsdC5jdXJ2ZXM9W107Zm9yKGxldCBlPTAsbj10aGlzLmN1cnZlcy5sZW5ndGg7ZTxuO2UrKyl7dC5jdXJ2ZXMucHVzaCh0aGlzLmN1cnZlc1tlXS50b0pTT04oKSl9cmV0dXJuIHR9ZnJvbUpTT04odCl7c3VwZXIuZnJvbUpTT04odCksdGhpcy5hdXRvQ2xvc2U9dC5hdXRvQ2xvc2UsdGhpcy5jdXJ2ZXM9W107Zm9yKGxldCBlPTAsbj10LmN1cnZlcy5sZW5ndGg7ZTxuO2UrKyl7Y29uc3Qgbj10LmN1cnZlc1tlXTt0aGlzLmN1cnZlcy5wdXNoKChuZXcgWmZ0W24udHlwZV0pLmZyb21KU09OKG4pKX1yZXR1cm4gdGhpc319Y2xhc3MgSnV0IGV4dGVuZHMgS3V0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPSJQYXRoIix0aGlzLmN1cnJlbnRQb2ludD1uZXcgZ3N0LHQmJnRoaXMuc2V0RnJvbVBvaW50cyh0KX1zZXRGcm9tUG9pbnRzKHQpe3RoaXMubW92ZVRvKHRbMF0ueCx0WzBdLnkpO2ZvcihsZXQgZT0xLG49dC5sZW5ndGg7ZTxuO2UrKyl0aGlzLmxpbmVUbyh0W2VdLngsdFtlXS55KTtyZXR1cm4gdGhpc31tb3ZlVG8odCxlKXtyZXR1cm4gdGhpcy5jdXJyZW50UG9pbnQuc2V0KHQsZSksdGhpc31saW5lVG8odCxlKXtjb25zdCBuPW5ldyBXZnQodGhpcy5jdXJyZW50UG9pbnQuY2xvbmUoKSxuZXcgZ3N0KHQsZSkpO3JldHVybiB0aGlzLmN1cnZlcy5wdXNoKG4pLHRoaXMuY3VycmVudFBvaW50LnNldCh0LGUpLHRoaXN9cXVhZHJhdGljQ3VydmVUbyh0LGUsbixvKXtjb25zdCBpPW5ldyBHZnQodGhpcy5jdXJyZW50UG9pbnQuY2xvbmUoKSxuZXcgZ3N0KHQsZSksbmV3IGdzdChuLG8pKTtyZXR1cm4gdGhpcy5jdXJ2ZXMucHVzaChpKSx0aGlzLmN1cnJlbnRQb2ludC5zZXQobixvKSx0aGlzfWJlemllckN1cnZlVG8odCxlLG4sbyxpLGEpe2NvbnN0IHI9bmV3IGpmdCh0aGlzLmN1cnJlbnRQb2ludC5jbG9uZSgpLG5ldyBnc3QodCxlKSxuZXcgZ3N0KG4sbyksbmV3IGdzdChpLGEpKTtyZXR1cm4gdGhpcy5jdXJ2ZXMucHVzaChyKSx0aGlzLmN1cnJlbnRQb2ludC5zZXQoaSxhKSx0aGlzfXNwbGluZVRocnUodCl7Y29uc3QgZT1bdGhpcy5jdXJyZW50UG9pbnQuY2xvbmUoKV0uY29uY2F0KHQpLG49bmV3IHFmdChlKTtyZXR1cm4gdGhpcy5jdXJ2ZXMucHVzaChuKSx0aGlzLmN1cnJlbnRQb2ludC5jb3B5KHRbdC5sZW5ndGgtMV0pLHRoaXN9YXJjKHQsZSxuLG8saSxhKXtyZXR1cm4gdGhpcy5hYnNhcmModCt0aGlzLmN1cnJlbnRQb2ludC54LGUrdGhpcy5jdXJyZW50UG9pbnQueSxuLG8saSxhKSx0aGlzfWFic2FyYyh0LGUsbixvLGksYSl7cmV0dXJuIHRoaXMuYWJzZWxsaXBzZSh0LGUsbixuLG8saSxhKSx0aGlzfWVsbGlwc2UodCxlLG4sbyxpLGEscixzKXtyZXR1cm4gdGhpcy5hYnNlbGxpcHNlKHQrdGhpcy5jdXJyZW50UG9pbnQueCxlK3RoaXMuY3VycmVudFBvaW50LnksbixvLGksYSxyLHMpLHRoaXN9YWJzZWxsaXBzZSh0LGUsbixvLGksYSxyLHMpe2NvbnN0IGw9bmV3IEVmdCh0LGUsbixvLGksYSxyLHMpO2lmKHRoaXMuY3VydmVzLmxlbmd0aD4wKXtjb25zdCB0PWwuZ2V0UG9pbnQoMCk7dC5lcXVhbHModGhpcy5jdXJyZW50UG9pbnQpfHx0aGlzLmxpbmVUbyh0LngsdC55KX10aGlzLmN1cnZlcy5wdXNoKGwpO2NvbnN0IGM9bC5nZXRQb2ludCgxKTtyZXR1cm4gdGhpcy5jdXJyZW50UG9pbnQuY29weShjKSx0aGlzfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5jdXJyZW50UG9pbnQuY29weSh0LmN1cnJlbnRQb2ludCksdGhpc310b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTigpO3JldHVybiB0LmN1cnJlbnRQb2ludD10aGlzLmN1cnJlbnRQb2ludC50b0FycmF5KCksdH1mcm9tSlNPTih0KXtyZXR1cm4gc3VwZXIuZnJvbUpTT04odCksdGhpcy5jdXJyZW50UG9pbnQuZnJvbUFycmF5KHQuY3VycmVudFBvaW50KSx0aGlzfX1jbGFzcyBRdXQgZXh0ZW5kcyBKdXR7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy51dWlkPWRzdCgpLHRoaXMudHlwZT0iU2hhcGUiLHRoaXMuaG9sZXM9W119Z2V0UG9pbnRzSG9sZXModCl7Y29uc3QgZT1bXTtmb3IobGV0IG49MCxvPXRoaXMuaG9sZXMubGVuZ3RoO248bztuKyspZVtuXT10aGlzLmhvbGVzW25dLmdldFBvaW50cyh0KTtyZXR1cm4gZX1leHRyYWN0UG9pbnRzKHQpe3JldHVybntzaGFwZTp0aGlzLmdldFBvaW50cyh0KSxob2xlczp0aGlzLmdldFBvaW50c0hvbGVzKHQpfX1jb3B5KHQpe3N1cGVyLmNvcHkodCksdGhpcy5ob2xlcz1bXTtmb3IobGV0IGU9MCxuPXQuaG9sZXMubGVuZ3RoO2U8bjtlKyspe3RoaXMuaG9sZXMucHVzaCh0LmhvbGVzW2VdLmNsb25lKCkpfXJldHVybiB0aGlzfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKCk7dC51dWlkPXRoaXMudXVpZCx0LmhvbGVzPVtdO2ZvcihsZXQgZT0wLG49dGhpcy5ob2xlcy5sZW5ndGg7ZTxuO2UrKyl7dC5ob2xlcy5wdXNoKHRoaXMuaG9sZXNbZV0udG9KU09OKCkpfXJldHVybiB0fWZyb21KU09OKHQpe3N1cGVyLmZyb21KU09OKHQpLHRoaXMudXVpZD10LnV1aWQsdGhpcy5ob2xlcz1bXTtmb3IobGV0IGU9MCxuPXQuaG9sZXMubGVuZ3RoO2U8bjtlKyspe2NvbnN0IG49dC5ob2xlc1tlXTt0aGlzLmhvbGVzLnB1c2goKG5ldyBKdXQpLmZyb21KU09OKG4pKX1yZXR1cm4gdGhpc319Y2xhc3MgJHV0IGV4dGVuZHMgU2x0e2NvbnN0cnVjdG9yKHQsZT0xKXtzdXBlcigpLHRoaXMudHlwZT0iTGlnaHQiLHRoaXMuY29sb3I9bmV3IFpsdCh0KSx0aGlzLmludGVuc2l0eT1lfWRpc3Bvc2UoKXt9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmNvbG9yLmNvcHkodC5jb2xvciksdGhpcy5pbnRlbnNpdHk9dC5pbnRlbnNpdHksdGhpc310b0pTT04odCl7Y29uc3QgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIGUub2JqZWN0LmNvbG9yPXRoaXMuY29sb3IuZ2V0SGV4KCksZS5vYmplY3QuaW50ZW5zaXR5PXRoaXMuaW50ZW5zaXR5LHZvaWQgMCE9PXRoaXMuZ3JvdW5kQ29sb3ImJihlLm9iamVjdC5ncm91bmRDb2xvcj10aGlzLmdyb3VuZENvbG9yLmdldEhleCgpKSx2b2lkIDAhPT10aGlzLmRpc3RhbmNlJiYoZS5vYmplY3QuZGlzdGFuY2U9dGhpcy5kaXN0YW5jZSksdm9pZCAwIT09dGhpcy5hbmdsZSYmKGUub2JqZWN0LmFuZ2xlPXRoaXMuYW5nbGUpLHZvaWQgMCE9PXRoaXMuZGVjYXkmJihlLm9iamVjdC5kZWNheT10aGlzLmRlY2F5KSx2b2lkIDAhPT10aGlzLnBlbnVtYnJhJiYoZS5vYmplY3QucGVudW1icmE9dGhpcy5wZW51bWJyYSksdm9pZCAwIT09dGhpcy5zaGFkb3cmJihlLm9iamVjdC5zaGFkb3c9dGhpcy5zaGFkb3cudG9KU09OKCkpLGV9fSR1dC5wcm90b3R5cGUuaXNMaWdodD0hMDsoY2xhc3MgZXh0ZW5kcyAkdXR7Y29uc3RydWN0b3IodCxlLG4pe3N1cGVyKHQsbiksdGhpcy50eXBlPSJIZW1pc3BoZXJlTGlnaHQiLHRoaXMucG9zaXRpb24uY29weShTbHQuRGVmYXVsdFVwKSx0aGlzLnVwZGF0ZU1hdHJpeCgpLHRoaXMuZ3JvdW5kQ29sb3I9bmV3IFpsdChlKX1jb3B5KHQpe3JldHVybiAkdXQucHJvdG90eXBlLmNvcHkuY2FsbCh0aGlzLHQpLHRoaXMuZ3JvdW5kQ29sb3IuY29weSh0Lmdyb3VuZENvbG9yKSx0aGlzfX0pLnByb3RvdHlwZS5pc0hlbWlzcGhlcmVMaWdodD0hMDtjb25zdCB0Z3Q9bmV3IG9sdCxlZ3Q9bmV3IHdzdCxuZ3Q9bmV3IHdzdDtjbGFzcyBvZ3R7Y29uc3RydWN0b3IodCl7dGhpcy5jYW1lcmE9dCx0aGlzLmJpYXM9MCx0aGlzLm5vcm1hbEJpYXM9MCx0aGlzLnJhZGl1cz0xLHRoaXMubWFwU2l6ZT1uZXcgZ3N0KDUxMiw1MTIpLHRoaXMubWFwPW51bGwsdGhpcy5tYXBQYXNzPW51bGwsdGhpcy5tYXRyaXg9bmV3IG9sdCx0aGlzLmF1dG9VcGRhdGU9ITAsdGhpcy5uZWVkc1VwZGF0ZT0hMSx0aGlzLl9mcnVzdHVtPW5ldyBxY3QsdGhpcy5fZnJhbWVFeHRlbnRzPW5ldyBnc3QoMSwxKSx0aGlzLl92aWV3cG9ydENvdW50PTEsdGhpcy5fdmlld3BvcnRzPVtuZXcgdnN0KDAsMCwxLDEpXX1nZXRWaWV3cG9ydENvdW50KCl7cmV0dXJuIHRoaXMuX3ZpZXdwb3J0Q291bnR9Z2V0RnJ1c3R1bSgpe3JldHVybiB0aGlzLl9mcnVzdHVtfXVwZGF0ZU1hdHJpY2VzKHQpe2NvbnN0IGU9dGhpcy5jYW1lcmEsbj10aGlzLm1hdHJpeDtlZ3Quc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHQubWF0cml4V29ybGQpLGUucG9zaXRpb24uY29weShlZ3QpLG5ndC5zZXRGcm9tTWF0cml4UG9zaXRpb24odC50YXJnZXQubWF0cml4V29ybGQpLGUubG9va0F0KG5ndCksZS51cGRhdGVNYXRyaXhXb3JsZCgpLHRndC5tdWx0aXBseU1hdHJpY2VzKGUucHJvamVjdGlvbk1hdHJpeCxlLm1hdHJpeFdvcmxkSW52ZXJzZSksdGhpcy5fZnJ1c3R1bS5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeCh0Z3QpLG4uc2V0KC41LDAsMCwuNSwwLC41LDAsLjUsMCwwLC41LC41LDAsMCwwLDEpLG4ubXVsdGlwbHkoZS5wcm9qZWN0aW9uTWF0cml4KSxuLm11bHRpcGx5KGUubWF0cml4V29ybGRJbnZlcnNlKX1nZXRWaWV3cG9ydCh0KXtyZXR1cm4gdGhpcy5fdmlld3BvcnRzW3RdfWdldEZyYW1lRXh0ZW50cygpe3JldHVybiB0aGlzLl9mcmFtZUV4dGVudHN9ZGlzcG9zZSgpe3RoaXMubWFwJiZ0aGlzLm1hcC5kaXNwb3NlKCksdGhpcy5tYXBQYXNzJiZ0aGlzLm1hcFBhc3MuZGlzcG9zZSgpfWNvcHkodCl7cmV0dXJuIHRoaXMuY2FtZXJhPXQuY2FtZXJhLmNsb25lKCksdGhpcy5iaWFzPXQuYmlhcyx0aGlzLnJhZGl1cz10LnJhZGl1cyx0aGlzLm1hcFNpemUuY29weSh0Lm1hcFNpemUpLHRoaXN9Y2xvbmUoKXtyZXR1cm4obmV3IHRoaXMuY29uc3RydWN0b3IpLmNvcHkodGhpcyl9dG9KU09OKCl7Y29uc3QgdD17fTtyZXR1cm4gMCE9PXRoaXMuYmlhcyYmKHQuYmlhcz10aGlzLmJpYXMpLDAhPT10aGlzLm5vcm1hbEJpYXMmJih0Lm5vcm1hbEJpYXM9dGhpcy5ub3JtYWxCaWFzKSwxIT09dGhpcy5yYWRpdXMmJih0LnJhZGl1cz10aGlzLnJhZGl1cyksNTEyPT09dGhpcy5tYXBTaXplLngmJjUxMj09PXRoaXMubWFwU2l6ZS55fHwodC5tYXBTaXplPXRoaXMubWFwU2l6ZS50b0FycmF5KCkpLHQuY2FtZXJhPXRoaXMuY2FtZXJhLnRvSlNPTighMSkub2JqZWN0LGRlbGV0ZSB0LmNhbWVyYS5tYXRyaXgsdH19Y2xhc3MgaWd0IGV4dGVuZHMgb2d0e2NvbnN0cnVjdG9yKCl7c3VwZXIobmV3IEljdCg1MCwxLC41LDUwMCkpLHRoaXMuZm9jdXM9MX11cGRhdGVNYXRyaWNlcyh0KXtjb25zdCBlPXRoaXMuY2FtZXJhLG49Mipjc3QqdC5hbmdsZSp0aGlzLmZvY3VzLG89dGhpcy5tYXBTaXplLndpZHRoL3RoaXMubWFwU2l6ZS5oZWlnaHQsaT10LmRpc3RhbmNlfHxlLmZhcjtuPT09ZS5mb3YmJm89PT1lLmFzcGVjdCYmaT09PWUuZmFyfHwoZS5mb3Y9bixlLmFzcGVjdD1vLGUuZmFyPWksZS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCkpLHN1cGVyLnVwZGF0ZU1hdHJpY2VzKHQpfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5mb2N1cz10LmZvY3VzLHRoaXN9fWlndC5wcm90b3R5cGUuaXNTcG90TGlnaHRTaGFkb3c9ITA7KGNsYXNzIGV4dGVuZHMgJHV0e2NvbnN0cnVjdG9yKHQsZSxuPTAsbz1NYXRoLlBJLzMsaT0wLGE9MSl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IlNwb3RMaWdodCIsdGhpcy5wb3NpdGlvbi5jb3B5KFNsdC5EZWZhdWx0VXApLHRoaXMudXBkYXRlTWF0cml4KCksdGhpcy50YXJnZXQ9bmV3IFNsdCx0aGlzLmRpc3RhbmNlPW4sdGhpcy5hbmdsZT1vLHRoaXMucGVudW1icmE9aSx0aGlzLmRlY2F5PWEsdGhpcy5zaGFkb3c9bmV3IGlndH1nZXQgcG93ZXIoKXtyZXR1cm4gdGhpcy5pbnRlbnNpdHkqTWF0aC5QSX1zZXQgcG93ZXIodCl7dGhpcy5pbnRlbnNpdHk9dC9NYXRoLlBJfWRpc3Bvc2UoKXt0aGlzLnNoYWRvdy5kaXNwb3NlKCl9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLmRpc3RhbmNlPXQuZGlzdGFuY2UsdGhpcy5hbmdsZT10LmFuZ2xlLHRoaXMucGVudW1icmE9dC5wZW51bWJyYSx0aGlzLmRlY2F5PXQuZGVjYXksdGhpcy50YXJnZXQ9dC50YXJnZXQuY2xvbmUoKSx0aGlzLnNoYWRvdz10LnNoYWRvdy5jbG9uZSgpLHRoaXN9fSkucHJvdG90eXBlLmlzU3BvdExpZ2h0PSEwO2NvbnN0IGFndD1uZXcgb2x0LHJndD1uZXcgd3N0LHNndD1uZXcgd3N0O2NsYXNzIGxndCBleHRlbmRzIG9ndHtjb25zdHJ1Y3Rvcigpe3N1cGVyKG5ldyBJY3QoOTAsMSwuNSw1MDApKSx0aGlzLl9mcmFtZUV4dGVudHM9bmV3IGdzdCg0LDIpLHRoaXMuX3ZpZXdwb3J0Q291bnQ9Nix0aGlzLl92aWV3cG9ydHM9W25ldyB2c3QoMiwxLDEsMSksbmV3IHZzdCgwLDEsMSwxKSxuZXcgdnN0KDMsMSwxLDEpLG5ldyB2c3QoMSwxLDEsMSksbmV3IHZzdCgzLDAsMSwxKSxuZXcgdnN0KDEsMCwxLDEpXSx0aGlzLl9jdWJlRGlyZWN0aW9ucz1bbmV3IHdzdCgxLDAsMCksbmV3IHdzdCgtMSwwLDApLG5ldyB3c3QoMCwwLDEpLG5ldyB3c3QoMCwwLC0xKSxuZXcgd3N0KDAsMSwwKSxuZXcgd3N0KDAsLTEsMCldLHRoaXMuX2N1YmVVcHM9W25ldyB3c3QoMCwxLDApLG5ldyB3c3QoMCwxLDApLG5ldyB3c3QoMCwxLDApLG5ldyB3c3QoMCwxLDApLG5ldyB3c3QoMCwwLDEpLG5ldyB3c3QoMCwwLC0xKV19dXBkYXRlTWF0cmljZXModCxlPTApe2NvbnN0IG49dGhpcy5jYW1lcmEsbz10aGlzLm1hdHJpeCxpPXQuZGlzdGFuY2V8fG4uZmFyO2khPT1uLmZhciYmKG4uZmFyPWksbi51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCkpLHJndC5zZXRGcm9tTWF0cml4UG9zaXRpb24odC5tYXRyaXhXb3JsZCksbi5wb3NpdGlvbi5jb3B5KHJndCksc2d0LmNvcHkobi5wb3NpdGlvbiksc2d0LmFkZCh0aGlzLl9jdWJlRGlyZWN0aW9uc1tlXSksbi51cC5jb3B5KHRoaXMuX2N1YmVVcHNbZV0pLG4ubG9va0F0KHNndCksbi51cGRhdGVNYXRyaXhXb3JsZCgpLG8ubWFrZVRyYW5zbGF0aW9uKC1yZ3QueCwtcmd0LnksLXJndC56KSxhZ3QubXVsdGlwbHlNYXRyaWNlcyhuLnByb2plY3Rpb25NYXRyaXgsbi5tYXRyaXhXb3JsZEludmVyc2UpLHRoaXMuX2ZydXN0dW0uc2V0RnJvbVByb2plY3Rpb25NYXRyaXgoYWd0KX19bGd0LnByb3RvdHlwZS5pc1BvaW50TGlnaHRTaGFkb3c9ITA7KGNsYXNzIGV4dGVuZHMgJHV0e2NvbnN0cnVjdG9yKHQsZSxuPTAsbz0xKXtzdXBlcih0LGUpLHRoaXMudHlwZT0iUG9pbnRMaWdodCIsdGhpcy5kaXN0YW5jZT1uLHRoaXMuZGVjYXk9byx0aGlzLnNoYWRvdz1uZXcgbGd0fWdldCBwb3dlcigpe3JldHVybiA0KnRoaXMuaW50ZW5zaXR5Kk1hdGguUEl9c2V0IHBvd2VyKHQpe3RoaXMuaW50ZW5zaXR5PXQvKDQqTWF0aC5QSSl9ZGlzcG9zZSgpe3RoaXMuc2hhZG93LmRpc3Bvc2UoKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuZGlzdGFuY2U9dC5kaXN0YW5jZSx0aGlzLmRlY2F5PXQuZGVjYXksdGhpcy5zaGFkb3c9dC5zaGFkb3cuY2xvbmUoKSx0aGlzfX0pLnByb3RvdHlwZS5pc1BvaW50TGlnaHQ9ITA7Y2xhc3MgY2d0IGV4dGVuZHMgb2d0e2NvbnN0cnVjdG9yKCl7c3VwZXIobmV3IHJkdCgtNSw1LDUsLTUsLjUsNTAwKSl9fWNndC5wcm90b3R5cGUuaXNEaXJlY3Rpb25hbExpZ2h0U2hhZG93PSEwOyhjbGFzcyBleHRlbmRzICR1dHtjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsZSksdGhpcy50eXBlPSJEaXJlY3Rpb25hbExpZ2h0Iix0aGlzLnBvc2l0aW9uLmNvcHkoU2x0LkRlZmF1bHRVcCksdGhpcy51cGRhdGVNYXRyaXgoKSx0aGlzLnRhcmdldD1uZXcgU2x0LHRoaXMuc2hhZG93PW5ldyBjZ3R9ZGlzcG9zZSgpe3RoaXMuc2hhZG93LmRpc3Bvc2UoKX1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMudGFyZ2V0PXQudGFyZ2V0LmNsb25lKCksdGhpcy5zaGFkb3c9dC5zaGFkb3cuY2xvbmUoKSx0aGlzfX0pLnByb3RvdHlwZS5pc0RpcmVjdGlvbmFsTGlnaHQ9ITA7KGNsYXNzIGV4dGVuZHMgJHV0e2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCxlKSx0aGlzLnR5cGU9IkFtYmllbnRMaWdodCJ9fSkucHJvdG90eXBlLmlzQW1iaWVudExpZ2h0PSEwOyhjbGFzcyBleHRlbmRzICR1dHtjb25zdHJ1Y3Rvcih0LGUsbj0xMCxvPTEwKXtzdXBlcih0LGUpLHRoaXMudHlwZT0iUmVjdEFyZWFMaWdodCIsdGhpcy53aWR0aD1uLHRoaXMuaGVpZ2h0PW99Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLndpZHRoPXQud2lkdGgsdGhpcy5oZWlnaHQ9dC5oZWlnaHQsdGhpc310b0pTT04odCl7Y29uc3QgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIGUub2JqZWN0LndpZHRoPXRoaXMud2lkdGgsZS5vYmplY3QuaGVpZ2h0PXRoaXMuaGVpZ2h0LGV9fSkucHJvdG90eXBlLmlzUmVjdEFyZWFMaWdodD0hMDtjbGFzcyBkZ3R7Y29uc3RydWN0b3IoKXt0aGlzLmNvZWZmaWNpZW50cz1bXTtmb3IobGV0IHQ9MDt0PDk7dCsrKXRoaXMuY29lZmZpY2llbnRzLnB1c2gobmV3IHdzdCl9c2V0KHQpe2ZvcihsZXQgZT0wO2U8OTtlKyspdGhpcy5jb2VmZmljaWVudHNbZV0uY29weSh0W2VdKTtyZXR1cm4gdGhpc316ZXJvKCl7Zm9yKGxldCB0PTA7dDw5O3QrKyl0aGlzLmNvZWZmaWNpZW50c1t0XS5zZXQoMCwwLDApO3JldHVybiB0aGlzfWdldEF0KHQsZSl7Y29uc3Qgbj10Lngsbz10LnksaT10LnosYT10aGlzLmNvZWZmaWNpZW50cztyZXR1cm4gZS5jb3B5KGFbMF0pLm11bHRpcGx5U2NhbGFyKC4yODIwOTUpLGUuYWRkU2NhbGVkVmVjdG9yKGFbMV0sLjQ4ODYwMypvKSxlLmFkZFNjYWxlZFZlY3RvcihhWzJdLC40ODg2MDMqaSksZS5hZGRTY2FsZWRWZWN0b3IoYVszXSwuNDg4NjAzKm4pLGUuYWRkU2NhbGVkVmVjdG9yKGFbNF0sbipvKjEuMDkyNTQ4KSxlLmFkZFNjYWxlZFZlY3RvcihhWzVdLG8qaSoxLjA5MjU0OCksZS5hZGRTY2FsZWRWZWN0b3IoYVs2XSwuMzE1MzkyKigzKmkqaS0xKSksZS5hZGRTY2FsZWRWZWN0b3IoYVs3XSxuKmkqMS4wOTI1NDgpLGUuYWRkU2NhbGVkVmVjdG9yKGFbOF0sLjU0NjI3NCoobipuLW8qbykpLGV9Z2V0SXJyYWRpYW5jZUF0KHQsZSl7Y29uc3Qgbj10Lngsbz10LnksaT10LnosYT10aGlzLmNvZWZmaWNpZW50cztyZXR1cm4gZS5jb3B5KGFbMF0pLm11bHRpcGx5U2NhbGFyKC44ODYyMjcpLGUuYWRkU2NhbGVkVmVjdG9yKGFbMV0sMS4wMjMzMjgqbyksZS5hZGRTY2FsZWRWZWN0b3IoYVsyXSwxLjAyMzMyOCppKSxlLmFkZFNjYWxlZFZlY3RvcihhWzNdLDEuMDIzMzI4Km4pLGUuYWRkU2NhbGVkVmVjdG9yKGFbNF0sLjg1ODA4NipuKm8pLGUuYWRkU2NhbGVkVmVjdG9yKGFbNV0sLjg1ODA4NipvKmkpLGUuYWRkU2NhbGVkVmVjdG9yKGFbNl0sLjc0MzEyNSppKmktLjI0NzcwOCksZS5hZGRTY2FsZWRWZWN0b3IoYVs3XSwuODU4MDg2Km4qaSksZS5hZGRTY2FsZWRWZWN0b3IoYVs4XSwuNDI5MDQzKihuKm4tbypvKSksZX1hZGQodCl7Zm9yKGxldCBlPTA7ZTw5O2UrKyl0aGlzLmNvZWZmaWNpZW50c1tlXS5hZGQodC5jb2VmZmljaWVudHNbZV0pO3JldHVybiB0aGlzfWFkZFNjYWxlZFNIKHQsZSl7Zm9yKGxldCBuPTA7bjw5O24rKyl0aGlzLmNvZWZmaWNpZW50c1tuXS5hZGRTY2FsZWRWZWN0b3IodC5jb2VmZmljaWVudHNbbl0sZSk7cmV0dXJuIHRoaXN9c2NhbGUodCl7Zm9yKGxldCBlPTA7ZTw5O2UrKyl0aGlzLmNvZWZmaWNpZW50c1tlXS5tdWx0aXBseVNjYWxhcih0KTtyZXR1cm4gdGhpc31sZXJwKHQsZSl7Zm9yKGxldCBuPTA7bjw5O24rKyl0aGlzLmNvZWZmaWNpZW50c1tuXS5sZXJwKHQuY29lZmZpY2llbnRzW25dLGUpO3JldHVybiB0aGlzfWVxdWFscyh0KXtmb3IobGV0IGU9MDtlPDk7ZSsrKWlmKCF0aGlzLmNvZWZmaWNpZW50c1tlXS5lcXVhbHModC5jb2VmZmljaWVudHNbZV0pKXJldHVybiExO3JldHVybiEwfWNvcHkodCl7cmV0dXJuIHRoaXMuc2V0KHQuY29lZmZpY2llbnRzKX1jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX1mcm9tQXJyYXkodCxlPTApe2NvbnN0IG49dGhpcy5jb2VmZmljaWVudHM7Zm9yKGxldCBvPTA7bzw5O28rKyluW29dLmZyb21BcnJheSh0LGUrMypvKTtyZXR1cm4gdGhpc310b0FycmF5KHQ9W10sZT0wKXtjb25zdCBuPXRoaXMuY29lZmZpY2llbnRzO2ZvcihsZXQgbz0wO288OTtvKyspbltvXS50b0FycmF5KHQsZSszKm8pO3JldHVybiB0fXN0YXRpYyBnZXRCYXNpc0F0KHQsZSl7Y29uc3Qgbj10Lngsbz10LnksaT10Lno7ZVswXT0uMjgyMDk1LGVbMV09LjQ4ODYwMypvLGVbMl09LjQ4ODYwMyppLGVbM109LjQ4ODYwMypuLGVbNF09MS4wOTI1NDgqbipvLGVbNV09MS4wOTI1NDgqbyppLGVbNl09LjMxNTM5MiooMyppKmktMSksZVs3XT0xLjA5MjU0OCpuKmksZVs4XT0uNTQ2Mjc0KihuKm4tbypvKX19ZGd0LnByb3RvdHlwZS5pc1NwaGVyaWNhbEhhcm1vbmljczM9ITA7Y2xhc3MgcGd0IGV4dGVuZHMgJHV0e2NvbnN0cnVjdG9yKHQ9bmV3IGRndCxlPTEpe3N1cGVyKHZvaWQgMCxlKSx0aGlzLnNoPXR9Y29weSh0KXtyZXR1cm4gc3VwZXIuY29weSh0KSx0aGlzLnNoLmNvcHkodC5zaCksdGhpc31mcm9tSlNPTih0KXtyZXR1cm4gdGhpcy5pbnRlbnNpdHk9dC5pbnRlbnNpdHksdGhpcy5zaC5mcm9tQXJyYXkodC5zaCksdGhpc310b0pTT04odCl7Y29uc3QgZT1zdXBlci50b0pTT04odCk7cmV0dXJuIGUub2JqZWN0LnNoPXRoaXMuc2gudG9BcnJheSgpLGV9fXBndC5wcm90b3R5cGUuaXNMaWdodFByb2JlPSEwOyhjbGFzcyBleHRlbmRzIGRjdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50eXBlPSJJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSIsdGhpcy5pbnN0YW5jZUNvdW50PTEvMH1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMuaW5zdGFuY2VDb3VudD10Lmluc3RhbmNlQ291bnQsdGhpc31jbG9uZSgpe3JldHVybihuZXcgdGhpcy5jb25zdHJ1Y3RvcikuY29weSh0aGlzKX10b0pTT04oKXtjb25zdCB0PXN1cGVyLnRvSlNPTih0aGlzKTtyZXR1cm4gdC5pbnN0YW5jZUNvdW50PXRoaXMuaW5zdGFuY2VDb3VudCx0LmlzSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnk9ITAsdH19KS5wcm90b3R5cGUuaXNJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeT0hMDsoY2xhc3MgZXh0ZW5kcyBRbHR7Y29uc3RydWN0b3IodCxlLG4sbz0xKXsibnVtYmVyIj09dHlwZW9mIG4mJihvPW4sbj0hMSxjb25zb2xlLmVycm9yKCJUSFJFRS5JbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGU6IFRoZSBjb25zdHJ1Y3RvciBub3cgZXhwZWN0cyBub3JtYWxpemVkIGFzIHRoZSB0aGlyZCBhcmd1bWVudC4iKSksc3VwZXIodCxlLG4pLHRoaXMubWVzaFBlckF0dHJpYnV0ZT1vfWNvcHkodCl7cmV0dXJuIHN1cGVyLmNvcHkodCksdGhpcy5tZXNoUGVyQXR0cmlidXRlPXQubWVzaFBlckF0dHJpYnV0ZSx0aGlzfXRvSlNPTigpe2NvbnN0IHQ9c3VwZXIudG9KU09OKCk7cmV0dXJuIHQubWVzaFBlckF0dHJpYnV0ZT10aGlzLm1lc2hQZXJBdHRyaWJ1dGUsdC5pc0luc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZT0hMCx0fX0pLnByb3RvdHlwZS5pc0luc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZT0hMDtsZXQgbWd0OyhjbGFzcyBleHRlbmRzIFd1dHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSwidW5kZWZpbmVkIj09dHlwZW9mIGNyZWF0ZUltYWdlQml0bWFwJiZjb25zb2xlLndhcm4oIlRIUkVFLkltYWdlQml0bWFwTG9hZGVyOiBjcmVhdGVJbWFnZUJpdG1hcCgpIG5vdCBzdXBwb3J0ZWQuIiksInVuZGVmaW5lZCI9PXR5cGVvZiBmZXRjaCYmY29uc29sZS53YXJuKCJUSFJFRS5JbWFnZUJpdG1hcExvYWRlcjogZmV0Y2goKSBub3Qgc3VwcG9ydGVkLiIpLHRoaXMub3B0aW9ucz17cHJlbXVsdGlwbHlBbHBoYToibm9uZSJ9fXNldE9wdGlvbnModCl7cmV0dXJuIHRoaXMub3B0aW9ucz10LHRoaXN9bG9hZCh0LGUsbixvKXt2b2lkIDA9PT10JiYodD0iIiksdm9pZCAwIT09dGhpcy5wYXRoJiYodD10aGlzLnBhdGgrdCksdD10aGlzLm1hbmFnZXIucmVzb2x2ZVVSTCh0KTtjb25zdCBpPXRoaXMsYT1qdXQuZ2V0KHQpO2lmKHZvaWQgMCE9PWEpcmV0dXJuIGkubWFuYWdlci5pdGVtU3RhcnQodCksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtlJiZlKGEpLGkubWFuYWdlci5pdGVtRW5kKHQpfSksMCksYTtjb25zdCByPXt9O3IuY3JlZGVudGlhbHM9ImFub255bW91cyI9PT10aGlzLmNyb3NzT3JpZ2luPyJzYW1lLW9yaWdpbiI6ImluY2x1ZGUiLHIuaGVhZGVycz10aGlzLnJlcXVlc3RIZWFkZXIsZmV0Y2godCxyKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gdC5ibG9iKCl9KSkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIGNyZWF0ZUltYWdlQml0bWFwKHQsT2JqZWN0LmFzc2lnbihpLm9wdGlvbnMse2NvbG9yU3BhY2VDb252ZXJzaW9uOiJub25lIn0pKX0pKS50aGVuKChmdW5jdGlvbihuKXtqdXQuYWRkKHQsbiksZSYmZShuKSxpLm1hbmFnZXIuaXRlbUVuZCh0KX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7byYmbyhlKSxpLm1hbmFnZXIuaXRlbUVycm9yKHQpLGkubWFuYWdlci5pdGVtRW5kKHQpfSkpLGkubWFuYWdlci5pdGVtU3RhcnQodCl9fSkucHJvdG90eXBlLmlzSW1hZ2VCaXRtYXBMb2FkZXI9ITA7Y29uc3QgZmd0PWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PW1ndCYmKG1ndD1uZXcod2luZG93LkF1ZGlvQ29udGV4dHx8d2luZG93LndlYmtpdEF1ZGlvQ29udGV4dCkpLG1ndH07Y2xhc3MgdWd0IGV4dGVuZHMgV3V0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpfWxvYWQodCxlLG4sbyl7Y29uc3QgaT10aGlzLGE9bmV3IFl1dCh0aGlzLm1hbmFnZXIpO2Euc2V0UmVzcG9uc2VUeXBlKCJhcnJheWJ1ZmZlciIpLGEuc2V0UGF0aCh0aGlzLnBhdGgpLGEuc2V0UmVxdWVzdEhlYWRlcih0aGlzLnJlcXVlc3RIZWFkZXIpLGEuc2V0V2l0aENyZWRlbnRpYWxzKHRoaXMud2l0aENyZWRlbnRpYWxzKSxhLmxvYWQodCwoZnVuY3Rpb24obil7dHJ5e2NvbnN0IHQ9bi5zbGljZSgwKTtmZ3QoKS5kZWNvZGVBdWRpb0RhdGEodCwoZnVuY3Rpb24odCl7ZSh0KX0pKX1jYXRjaChlKXtvP28oZSk6Y29uc29sZS5lcnJvcihlKSxpLm1hbmFnZXIuaXRlbUVycm9yKHQpfX0pLG4sbyl9fShjbGFzcyBleHRlbmRzIHBndHtjb25zdHJ1Y3Rvcih0LGUsbj0xKXtzdXBlcih2b2lkIDAsbik7Y29uc3Qgbz0obmV3IFpsdCkuc2V0KHQpLGk9KG5ldyBabHQpLnNldChlKSxhPW5ldyB3c3Qoby5yLG8uZyxvLmIpLHI9bmV3IHdzdChpLnIsaS5nLGkuYikscz1NYXRoLnNxcnQoTWF0aC5QSSksbD1zKk1hdGguc3FydCguNzUpO3RoaXMuc2guY29lZmZpY2llbnRzWzBdLmNvcHkoYSkuYWRkKHIpLm11bHRpcGx5U2NhbGFyKHMpLHRoaXMuc2guY29lZmZpY2llbnRzWzFdLmNvcHkoYSkuc3ViKHIpLm11bHRpcGx5U2NhbGFyKGwpfX0pLnByb3RvdHlwZS5pc0hlbWlzcGhlcmVMaWdodFByb2JlPSEwOyhjbGFzcyBleHRlbmRzIHBndHtjb25zdHJ1Y3Rvcih0LGU9MSl7c3VwZXIodm9pZCAwLGUpO2NvbnN0IG49KG5ldyBabHQpLnNldCh0KTt0aGlzLnNoLmNvZWZmaWNpZW50c1swXS5zZXQobi5yLG4uZyxuLmIpLm11bHRpcGx5U2NhbGFyKDIqTWF0aC5zcXJ0KE1hdGguUEkpKX19KS5wcm90b3R5cGUuaXNBbWJpZW50TGlnaHRQcm9iZT0hMDtjbGFzcyBnZ3R7Y29uc3RydWN0b3IodCxlLG4pe2xldCBvLGksYTtzd2l0Y2godGhpcy5iaW5kaW5nPXQsdGhpcy52YWx1ZVNpemU9bixlKXtjYXNlInF1YXRlcm5pb24iOm89dGhpcy5fc2xlcnAsaT10aGlzLl9zbGVycEFkZGl0aXZlLGE9dGhpcy5fc2V0QWRkaXRpdmVJZGVudGl0eVF1YXRlcm5pb24sdGhpcy5idWZmZXI9bmV3IEZsb2F0NjRBcnJheSg2Km4pLHRoaXMuX3dvcmtJbmRleD01O2JyZWFrO2Nhc2Uic3RyaW5nIjpjYXNlImJvb2wiOm89dGhpcy5fc2VsZWN0LGk9dGhpcy5fc2VsZWN0LGE9dGhpcy5fc2V0QWRkaXRpdmVJZGVudGl0eU90aGVyLHRoaXMuYnVmZmVyPW5ldyBBcnJheSg1Km4pO2JyZWFrO2RlZmF1bHQ6bz10aGlzLl9sZXJwLGk9dGhpcy5fbGVycEFkZGl0aXZlLGE9dGhpcy5fc2V0QWRkaXRpdmVJZGVudGl0eU51bWVyaWMsdGhpcy5idWZmZXI9bmV3IEZsb2F0NjRBcnJheSg1Km4pfXRoaXMuX21peEJ1ZmZlclJlZ2lvbj1vLHRoaXMuX21peEJ1ZmZlclJlZ2lvbkFkZGl0aXZlPWksdGhpcy5fc2V0SWRlbnRpdHk9YSx0aGlzLl9vcmlnSW5kZXg9Myx0aGlzLl9hZGRJbmRleD00LHRoaXMuY3VtdWxhdGl2ZVdlaWdodD0wLHRoaXMuY3VtdWxhdGl2ZVdlaWdodEFkZGl0aXZlPTAsdGhpcy51c2VDb3VudD0wLHRoaXMucmVmZXJlbmNlQ291bnQ9MH1hY2N1bXVsYXRlKHQsZSl7Y29uc3Qgbj10aGlzLmJ1ZmZlcixvPXRoaXMudmFsdWVTaXplLGk9dCpvK287bGV0IGE9dGhpcy5jdW11bGF0aXZlV2VpZ2h0O2lmKDA9PT1hKXtmb3IobGV0IHQ9MDt0IT09bzsrK3QpbltpK3RdPW5bdF07YT1lfWVsc2V7YSs9ZTt0aGlzLl9taXhCdWZmZXJSZWdpb24obixpLDAsZS9hLG8pfXRoaXMuY3VtdWxhdGl2ZVdlaWdodD1hfWFjY3VtdWxhdGVBZGRpdGl2ZSh0KXtjb25zdCBlPXRoaXMuYnVmZmVyLG49dGhpcy52YWx1ZVNpemUsbz1uKnRoaXMuX2FkZEluZGV4OzA9PT10aGlzLmN1bXVsYXRpdmVXZWlnaHRBZGRpdGl2ZSYmdGhpcy5fc2V0SWRlbnRpdHkoKSx0aGlzLl9taXhCdWZmZXJSZWdpb25BZGRpdGl2ZShlLG8sMCx0LG4pLHRoaXMuY3VtdWxhdGl2ZVdlaWdodEFkZGl0aXZlKz10fWFwcGx5KHQpe2NvbnN0IGU9dGhpcy52YWx1ZVNpemUsbj10aGlzLmJ1ZmZlcixvPXQqZStlLGk9dGhpcy5jdW11bGF0aXZlV2VpZ2h0LGE9dGhpcy5jdW11bGF0aXZlV2VpZ2h0QWRkaXRpdmUscj10aGlzLmJpbmRpbmc7aWYodGhpcy5jdW11bGF0aXZlV2VpZ2h0PTAsdGhpcy5jdW11bGF0aXZlV2VpZ2h0QWRkaXRpdmU9MCxpPDEpe3RoaXMuX21peEJ1ZmZlclJlZ2lvbihuLG8sZSp0aGlzLl9vcmlnSW5kZXgsMS1pLGUpfWE+MCYmdGhpcy5fbWl4QnVmZmVyUmVnaW9uQWRkaXRpdmUobixvLHRoaXMuX2FkZEluZGV4KmUsMSxlKTtmb3IobGV0IHQ9ZSxpPWUrZTt0IT09aTsrK3QpaWYoblt0XSE9PW5bdCtlXSl7ci5zZXRWYWx1ZShuLG8pO2JyZWFrfX1zYXZlT3JpZ2luYWxTdGF0ZSgpe2NvbnN0IHQ9dGhpcy5idWZmZXIsZT10aGlzLnZhbHVlU2l6ZSxuPWUqdGhpcy5fb3JpZ0luZGV4O3RoaXMuYmluZGluZy5nZXRWYWx1ZSh0LG4pO2ZvcihsZXQgbz1lLGk9bjtvIT09aTsrK28pdFtvXT10W24rbyVlXTt0aGlzLl9zZXRJZGVudGl0eSgpLHRoaXMuY3VtdWxhdGl2ZVdlaWdodD0wLHRoaXMuY3VtdWxhdGl2ZVdlaWdodEFkZGl0aXZlPTB9cmVzdG9yZU9yaWdpbmFsU3RhdGUoKXt0aGlzLmJpbmRpbmcuc2V0VmFsdWUodGhpcy5idWZmZXIsMyp0aGlzLnZhbHVlU2l6ZSl9X3NldEFkZGl0aXZlSWRlbnRpdHlOdW1lcmljKCl7Y29uc3QgdD10aGlzLl9hZGRJbmRleCp0aGlzLnZhbHVlU2l6ZSxlPXQrdGhpcy52YWx1ZVNpemU7Zm9yKGxldCBuPXQ7bjxlO24rKyl0aGlzLmJ1ZmZlcltuXT0wfV9zZXRBZGRpdGl2ZUlkZW50aXR5UXVhdGVybmlvbigpe3RoaXMuX3NldEFkZGl0aXZlSWRlbnRpdHlOdW1lcmljKCksdGhpcy5idWZmZXJbdGhpcy5fYWRkSW5kZXgqdGhpcy52YWx1ZVNpemUrM109MX1fc2V0QWRkaXRpdmVJZGVudGl0eU90aGVyKCl7Y29uc3QgdD10aGlzLl9vcmlnSW5kZXgqdGhpcy52YWx1ZVNpemUsZT10aGlzLl9hZGRJbmRleCp0aGlzLnZhbHVlU2l6ZTtmb3IobGV0IG49MDtuPHRoaXMudmFsdWVTaXplO24rKyl0aGlzLmJ1ZmZlcltlK25dPXRoaXMuYnVmZmVyW3Qrbl19X3NlbGVjdCh0LGUsbixvLGkpe2lmKG8+PS41KWZvcihsZXQgbz0wO28hPT1pOysrbyl0W2Urb109dFtuK29dfV9zbGVycCh0LGUsbixvKXtQc3Quc2xlcnBGbGF0KHQsZSx0LGUsdCxuLG8pfV9zbGVycEFkZGl0aXZlKHQsZSxuLG8saSl7Y29uc3QgYT10aGlzLl93b3JrSW5kZXgqaTtQc3QubXVsdGlwbHlRdWF0ZXJuaW9uc0ZsYXQodCxhLHQsZSx0LG4pLFBzdC5zbGVycEZsYXQodCxlLHQsZSx0LGEsbyl9X2xlcnAodCxlLG4sbyxpKXtjb25zdCBhPTEtbztmb3IobGV0IHI9MDtyIT09aTsrK3Ipe2NvbnN0IGk9ZStyO3RbaV09dFtpXSphK3RbbityXSpvfX1fbGVycEFkZGl0aXZlKHQsZSxuLG8saSl7Zm9yKGxldCBhPTA7YSE9PWk7KythKXtjb25zdCBpPWUrYTt0W2ldPXRbaV0rdFtuK2FdKm99fX1jb25zdCBoZ3Q9IlxcW1xcXVxcLjpcXC8iLGJndD1uZXcgUmVnRXhwKCJbXFxbXFxdXFwuOlxcL10iLCJnIikseWd0PSJbXlxcW1xcXVxcLjpcXC9dIixfZ3Q9IlteIitoZ3QucmVwbGFjZSgiXFwuIiwiIikrIl0iLENndD0vKCg/OldDK1tcLzpdKSopLy5zb3VyY2UucmVwbGFjZSgiV0MiLHlndCksTWd0PS8oV0NPRCspPy8uc291cmNlLnJlcGxhY2UoIldDT0QiLF9ndCksdmd0PS8oPzpcLihXQyspKD86XFsoLispXF0pPyk/Ly5zb3VyY2UucmVwbGFjZSgiV0MiLHlndCkseGd0PS9cLihXQyspKD86XFsoLispXF0pPy8uc291cmNlLnJlcGxhY2UoIldDIix5Z3QpLE9ndD1uZXcgUmVnRXhwKCJeIitDZ3QrTWd0K3ZndCt4Z3QrIiQiKSxQZ3Q9WyJtYXRlcmlhbCIsIm1hdGVyaWFscyIsImJvbmVzIl07Y2xhc3Mgd2d0e2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLnBhdGg9ZSx0aGlzLnBhcnNlZFBhdGg9bnx8d2d0LnBhcnNlVHJhY2tOYW1lKGUpLHRoaXMubm9kZT13Z3QuZmluZE5vZGUodCx0aGlzLnBhcnNlZFBhdGgubm9kZU5hbWUpfHx0LHRoaXMucm9vdE5vZGU9dCx0aGlzLmdldFZhbHVlPXRoaXMuX2dldFZhbHVlX3VuYm91bmQsdGhpcy5zZXRWYWx1ZT10aGlzLl9zZXRWYWx1ZV91bmJvdW5kfXN0YXRpYyBjcmVhdGUodCxlLG4pe3JldHVybiB0JiZ0LmlzQW5pbWF0aW9uT2JqZWN0R3JvdXA/bmV3IHdndC5Db21wb3NpdGUodCxlLG4pOm5ldyB3Z3QodCxlLG4pfXN0YXRpYyBzYW5pdGl6ZU5vZGVOYW1lKHQpe3JldHVybiB0LnJlcGxhY2UoL1xzL2csIl8iKS5yZXBsYWNlKGJndCwiIil9c3RhdGljIHBhcnNlVHJhY2tOYW1lKHQpe2NvbnN0IGU9T2d0LmV4ZWModCk7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJQcm9wZXJ0eUJpbmRpbmc6IENhbm5vdCBwYXJzZSB0cmFja05hbWU6ICIrdCk7Y29uc3Qgbj17bm9kZU5hbWU6ZVsyXSxvYmplY3ROYW1lOmVbM10sb2JqZWN0SW5kZXg6ZVs0XSxwcm9wZXJ0eU5hbWU6ZVs1XSxwcm9wZXJ0eUluZGV4OmVbNl19LG89bi5ub2RlTmFtZSYmbi5ub2RlTmFtZS5sYXN0SW5kZXhPZigiLiIpO2lmKHZvaWQgMCE9PW8mJi0xIT09byl7Y29uc3QgdD1uLm5vZGVOYW1lLnN1YnN0cmluZyhvKzEpOy0xIT09UGd0LmluZGV4T2YodCkmJihuLm5vZGVOYW1lPW4ubm9kZU5hbWUuc3Vic3RyaW5nKDAsbyksbi5vYmplY3ROYW1lPXQpfWlmKG51bGw9PT1uLnByb3BlcnR5TmFtZXx8MD09PW4ucHJvcGVydHlOYW1lLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIlByb3BlcnR5QmluZGluZzogY2FuIG5vdCBwYXJzZSBwcm9wZXJ0eU5hbWUgZnJvbSB0cmFja05hbWU6ICIrdCk7cmV0dXJuIG59c3RhdGljIGZpbmROb2RlKHQsZSl7aWYoIWV8fCIiPT09ZXx8Ii4iPT09ZXx8LTE9PT1lfHxlPT09dC5uYW1lfHxlPT09dC51dWlkKXJldHVybiB0O2lmKHQuc2tlbGV0b24pe2NvbnN0IG49dC5za2VsZXRvbi5nZXRCb25lQnlOYW1lKGUpO2lmKHZvaWQgMCE9PW4pcmV0dXJuIG59aWYodC5jaGlsZHJlbil7Y29uc3Qgbj1mdW5jdGlvbih0KXtmb3IobGV0IG89MDtvPHQubGVuZ3RoO28rKyl7Y29uc3QgaT10W29dO2lmKGkubmFtZT09PWV8fGkudXVpZD09PWUpcmV0dXJuIGk7Y29uc3QgYT1uKGkuY2hpbGRyZW4pO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9LG89bih0LmNoaWxkcmVuKTtpZihvKXJldHVybiBvfXJldHVybiBudWxsfV9nZXRWYWx1ZV91bmF2YWlsYWJsZSgpe31fc2V0VmFsdWVfdW5hdmFpbGFibGUoKXt9X2dldFZhbHVlX2RpcmVjdCh0LGUpe3RbZV09dGhpcy5ub2RlW3RoaXMucHJvcGVydHlOYW1lXX1fZ2V0VmFsdWVfYXJyYXkodCxlKXtjb25zdCBuPXRoaXMucmVzb2x2ZWRQcm9wZXJ0eTtmb3IobGV0IG89MCxpPW4ubGVuZ3RoO28hPT1pOysrbyl0W2UrK109bltvXX1fZ2V0VmFsdWVfYXJyYXlFbGVtZW50KHQsZSl7dFtlXT10aGlzLnJlc29sdmVkUHJvcGVydHlbdGhpcy5wcm9wZXJ0eUluZGV4XX1fZ2V0VmFsdWVfdG9BcnJheSh0LGUpe3RoaXMucmVzb2x2ZWRQcm9wZXJ0eS50b0FycmF5KHQsZSl9X3NldFZhbHVlX2RpcmVjdCh0LGUpe3RoaXMudGFyZ2V0T2JqZWN0W3RoaXMucHJvcGVydHlOYW1lXT10W2VdfV9zZXRWYWx1ZV9kaXJlY3Rfc2V0TmVlZHNVcGRhdGUodCxlKXt0aGlzLnRhcmdldE9iamVjdFt0aGlzLnByb3BlcnR5TmFtZV09dFtlXSx0aGlzLnRhcmdldE9iamVjdC5uZWVkc1VwZGF0ZT0hMH1fc2V0VmFsdWVfZGlyZWN0X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGUodCxlKXt0aGlzLnRhcmdldE9iamVjdFt0aGlzLnByb3BlcnR5TmFtZV09dFtlXSx0aGlzLnRhcmdldE9iamVjdC5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9hcnJheSh0LGUpe2NvbnN0IG49dGhpcy5yZXNvbHZlZFByb3BlcnR5O2ZvcihsZXQgbz0wLGk9bi5sZW5ndGg7byE9PWk7KytvKW5bb109dFtlKytdfV9zZXRWYWx1ZV9hcnJheV9zZXROZWVkc1VwZGF0ZSh0LGUpe2NvbnN0IG49dGhpcy5yZXNvbHZlZFByb3BlcnR5O2ZvcihsZXQgbz0wLGk9bi5sZW5ndGg7byE9PWk7KytvKW5bb109dFtlKytdO3RoaXMudGFyZ2V0T2JqZWN0Lm5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9hcnJheV9zZXRNYXRyaXhXb3JsZE5lZWRzVXBkYXRlKHQsZSl7Y29uc3Qgbj10aGlzLnJlc29sdmVkUHJvcGVydHk7Zm9yKGxldCBvPTAsaT1uLmxlbmd0aDtvIT09aTsrK28pbltvXT10W2UrK107dGhpcy50YXJnZXRPYmplY3QubWF0cml4V29ybGROZWVkc1VwZGF0ZT0hMH1fc2V0VmFsdWVfYXJyYXlFbGVtZW50KHQsZSl7dGhpcy5yZXNvbHZlZFByb3BlcnR5W3RoaXMucHJvcGVydHlJbmRleF09dFtlXX1fc2V0VmFsdWVfYXJyYXlFbGVtZW50X3NldE5lZWRzVXBkYXRlKHQsZSl7dGhpcy5yZXNvbHZlZFByb3BlcnR5W3RoaXMucHJvcGVydHlJbmRleF09dFtlXSx0aGlzLnRhcmdldE9iamVjdC5uZWVkc1VwZGF0ZT0hMH1fc2V0VmFsdWVfYXJyYXlFbGVtZW50X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGUodCxlKXt0aGlzLnJlc29sdmVkUHJvcGVydHlbdGhpcy5wcm9wZXJ0eUluZGV4XT10W2VdLHRoaXMudGFyZ2V0T2JqZWN0Lm1hdHJpeFdvcmxkTmVlZHNVcGRhdGU9ITB9X3NldFZhbHVlX2Zyb21BcnJheSh0LGUpe3RoaXMucmVzb2x2ZWRQcm9wZXJ0eS5mcm9tQXJyYXkodCxlKX1fc2V0VmFsdWVfZnJvbUFycmF5X3NldE5lZWRzVXBkYXRlKHQsZSl7dGhpcy5yZXNvbHZlZFByb3BlcnR5LmZyb21BcnJheSh0LGUpLHRoaXMudGFyZ2V0T2JqZWN0Lm5lZWRzVXBkYXRlPSEwfV9zZXRWYWx1ZV9mcm9tQXJyYXlfc2V0TWF0cml4V29ybGROZWVkc1VwZGF0ZSh0LGUpe3RoaXMucmVzb2x2ZWRQcm9wZXJ0eS5mcm9tQXJyYXkodCxlKSx0aGlzLnRhcmdldE9iamVjdC5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlPSEwfV9nZXRWYWx1ZV91bmJvdW5kKHQsZSl7dGhpcy5iaW5kKCksdGhpcy5nZXRWYWx1ZSh0LGUpfV9zZXRWYWx1ZV91bmJvdW5kKHQsZSl7dGhpcy5iaW5kKCksdGhpcy5zZXRWYWx1ZSh0LGUpfWJpbmQoKXtsZXQgdD10aGlzLm5vZGU7Y29uc3QgZT10aGlzLnBhcnNlZFBhdGgsbj1lLm9iamVjdE5hbWUsbz1lLnByb3BlcnR5TmFtZTtsZXQgaT1lLnByb3BlcnR5SW5kZXg7aWYodHx8KHQ9d2d0LmZpbmROb2RlKHRoaXMucm9vdE5vZGUsZS5ub2RlTmFtZSl8fHRoaXMucm9vdE5vZGUsdGhpcy5ub2RlPXQpLHRoaXMuZ2V0VmFsdWU9dGhpcy5fZ2V0VmFsdWVfdW5hdmFpbGFibGUsdGhpcy5zZXRWYWx1ZT10aGlzLl9zZXRWYWx1ZV91bmF2YWlsYWJsZSwhdClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IFRyeWluZyB0byB1cGRhdGUgbm9kZSBmb3IgdHJhY2s6ICIrdGhpcy5wYXRoKyIgYnV0IGl0IHdhc24ndCBmb3VuZC4iKTtpZihuKXtsZXQgbz1lLm9iamVjdEluZGV4O3N3aXRjaChuKXtjYXNlIm1hdGVyaWFscyI6aWYoIXQubWF0ZXJpYWwpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gbWF0ZXJpYWwgYXMgbm9kZSBkb2VzIG5vdCBoYXZlIGEgbWF0ZXJpYWwuIix0aGlzKTtpZighdC5tYXRlcmlhbC5tYXRlcmlhbHMpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gbWF0ZXJpYWwubWF0ZXJpYWxzIGFzIG5vZGUubWF0ZXJpYWwgZG9lcyBub3QgaGF2ZSBhIG1hdGVyaWFscyBhcnJheS4iLHRoaXMpO3Q9dC5tYXRlcmlhbC5tYXRlcmlhbHM7YnJlYWs7Y2FzZSJib25lcyI6aWYoIXQuc2tlbGV0b24pcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gYm9uZXMgYXMgbm9kZSBkb2VzIG5vdCBoYXZlIGEgc2tlbGV0b24uIix0aGlzKTt0PXQuc2tlbGV0b24uYm9uZXM7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspaWYodFtlXS5uYW1lPT09byl7bz1lO2JyZWFrfWJyZWFrO2RlZmF1bHQ6aWYodm9pZCAwPT09dFtuXSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IENhbiBub3QgYmluZCB0byBvYmplY3ROYW1lIG9mIG5vZGUgdW5kZWZpbmVkLiIsdGhpcyk7dD10W25dfWlmKHZvaWQgMCE9PW8pe2lmKHZvaWQgMD09PXRbb10pcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBUcnlpbmcgdG8gYmluZCB0byBvYmplY3RJbmRleCBvZiBvYmplY3ROYW1lLCBidXQgaXMgdW5kZWZpbmVkLiIsdGhpcyx0KTt0PXRbb119fWNvbnN0IGE9dFtvXTtpZih2b2lkIDA9PT1hKXtyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJUSFJFRS5Qcm9wZXJ0eUJpbmRpbmc6IFRyeWluZyB0byB1cGRhdGUgcHJvcGVydHkgZm9yIHRyYWNrOiAiK2Uubm9kZU5hbWUrIi4iK28rIiBidXQgaXQgd2Fzbid0IGZvdW5kLiIsdCl9bGV0IHI9dGhpcy5WZXJzaW9uaW5nLk5vbmU7dGhpcy50YXJnZXRPYmplY3Q9dCx2b2lkIDAhPT10Lm5lZWRzVXBkYXRlP3I9dGhpcy5WZXJzaW9uaW5nLk5lZWRzVXBkYXRlOnZvaWQgMCE9PXQubWF0cml4V29ybGROZWVkc1VwZGF0ZSYmKHI9dGhpcy5WZXJzaW9uaW5nLk1hdHJpeFdvcmxkTmVlZHNVcGRhdGUpO2xldCBzPXRoaXMuQmluZGluZ1R5cGUuRGlyZWN0O2lmKHZvaWQgMCE9PWkpe2lmKCJtb3JwaFRhcmdldEluZmx1ZW5jZXMiPT09byl7aWYoIXQuZ2VvbWV0cnkpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gbW9ycGhUYXJnZXRJbmZsdWVuY2VzIGJlY2F1c2Ugbm9kZSBkb2VzIG5vdCBoYXZlIGEgZ2VvbWV0cnkuIix0aGlzKTtpZighdC5nZW9tZXRyeS5pc0J1ZmZlckdlb21ldHJ5KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIlRIUkVFLlByb3BlcnR5QmluZGluZzogQ2FuIG5vdCBiaW5kIHRvIG1vcnBoVGFyZ2V0SW5mbHVlbmNlcyBvbiBUSFJFRS5HZW9tZXRyeS4gVXNlIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGluc3RlYWQuIix0aGlzKTtpZighdC5nZW9tZXRyeS5tb3JwaEF0dHJpYnV0ZXMpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVEhSRUUuUHJvcGVydHlCaW5kaW5nOiBDYW4gbm90IGJpbmQgdG8gbW9ycGhUYXJnZXRJbmZsdWVuY2VzIGJlY2F1c2Ugbm9kZSBkb2VzIG5vdCBoYXZlIGEgZ2VvbWV0cnkubW9ycGhBdHRyaWJ1dGVzLiIsdGhpcyk7dm9pZCAwIT09dC5tb3JwaFRhcmdldERpY3Rpb25hcnlbaV0mJihpPXQubW9ycGhUYXJnZXREaWN0aW9uYXJ5W2ldKX1zPXRoaXMuQmluZGluZ1R5cGUuQXJyYXlFbGVtZW50LHRoaXMucmVzb2x2ZWRQcm9wZXJ0eT1hLHRoaXMucHJvcGVydHlJbmRleD1pfWVsc2Ugdm9pZCAwIT09YS5mcm9tQXJyYXkmJnZvaWQgMCE9PWEudG9BcnJheT8ocz10aGlzLkJpbmRpbmdUeXBlLkhhc0Zyb21Ub0FycmF5LHRoaXMucmVzb2x2ZWRQcm9wZXJ0eT1hKTpBcnJheS5pc0FycmF5KGEpPyhzPXRoaXMuQmluZGluZ1R5cGUuRW50aXJlQXJyYXksdGhpcy5yZXNvbHZlZFByb3BlcnR5PWEpOnRoaXMucHJvcGVydHlOYW1lPW87dGhpcy5nZXRWYWx1ZT10aGlzLkdldHRlckJ5QmluZGluZ1R5cGVbc10sdGhpcy5zZXRWYWx1ZT10aGlzLlNldHRlckJ5QmluZGluZ1R5cGVBbmRWZXJzaW9uaW5nW3NdW3JdfXVuYmluZCgpe3RoaXMubm9kZT1udWxsLHRoaXMuZ2V0VmFsdWU9dGhpcy5fZ2V0VmFsdWVfdW5ib3VuZCx0aGlzLnNldFZhbHVlPXRoaXMuX3NldFZhbHVlX3VuYm91bmR9fXdndC5Db21wb3NpdGU9Y2xhc3N7Y29uc3RydWN0b3IodCxlLG4pe2NvbnN0IG89bnx8d2d0LnBhcnNlVHJhY2tOYW1lKGUpO3RoaXMuX3RhcmdldEdyb3VwPXQsdGhpcy5fYmluZGluZ3M9dC5zdWJzY3JpYmVfKGUsbyl9Z2V0VmFsdWUodCxlKXt0aGlzLmJpbmQoKTtjb25zdCBuPXRoaXMuX2JpbmRpbmdzW3RoaXMuX3RhcmdldEdyb3VwLm5DYWNoZWRPYmplY3RzX107dm9pZCAwIT09biYmbi5nZXRWYWx1ZSh0LGUpfXNldFZhbHVlKHQsZSl7Y29uc3Qgbj10aGlzLl9iaW5kaW5ncztmb3IobGV0IG89dGhpcy5fdGFyZ2V0R3JvdXAubkNhY2hlZE9iamVjdHNfLGk9bi5sZW5ndGg7byE9PWk7KytvKW5bb10uc2V0VmFsdWUodCxlKX1iaW5kKCl7Y29uc3QgdD10aGlzLl9iaW5kaW5ncztmb3IobGV0IGU9dGhpcy5fdGFyZ2V0R3JvdXAubkNhY2hlZE9iamVjdHNfLG49dC5sZW5ndGg7ZSE9PW47KytlKXRbZV0uYmluZCgpfXVuYmluZCgpe2NvbnN0IHQ9dGhpcy5fYmluZGluZ3M7Zm9yKGxldCBlPXRoaXMuX3RhcmdldEdyb3VwLm5DYWNoZWRPYmplY3RzXyxuPXQubGVuZ3RoO2UhPT1uOysrZSl0W2VdLnVuYmluZCgpfX0sd2d0LnByb3RvdHlwZS5CaW5kaW5nVHlwZT17RGlyZWN0OjAsRW50aXJlQXJyYXk6MSxBcnJheUVsZW1lbnQ6MixIYXNGcm9tVG9BcnJheTozfSx3Z3QucHJvdG90eXBlLlZlcnNpb25pbmc9e05vbmU6MCxOZWVkc1VwZGF0ZToxLE1hdHJpeFdvcmxkTmVlZHNVcGRhdGU6Mn0sd2d0LnByb3RvdHlwZS5HZXR0ZXJCeUJpbmRpbmdUeXBlPVt3Z3QucHJvdG90eXBlLl9nZXRWYWx1ZV9kaXJlY3Qsd2d0LnByb3RvdHlwZS5fZ2V0VmFsdWVfYXJyYXksd2d0LnByb3RvdHlwZS5fZ2V0VmFsdWVfYXJyYXlFbGVtZW50LHdndC5wcm90b3R5cGUuX2dldFZhbHVlX3RvQXJyYXldLHdndC5wcm90b3R5cGUuU2V0dGVyQnlCaW5kaW5nVHlwZUFuZFZlcnNpb25pbmc9W1t3Z3QucHJvdG90eXBlLl9zZXRWYWx1ZV9kaXJlY3Qsd2d0LnByb3RvdHlwZS5fc2V0VmFsdWVfZGlyZWN0X3NldE5lZWRzVXBkYXRlLHdndC5wcm90b3R5cGUuX3NldFZhbHVlX2RpcmVjdF9zZXRNYXRyaXhXb3JsZE5lZWRzVXBkYXRlXSxbd2d0LnByb3RvdHlwZS5fc2V0VmFsdWVfYXJyYXksd2d0LnByb3RvdHlwZS5fc2V0VmFsdWVfYXJyYXlfc2V0TmVlZHNVcGRhdGUsd2d0LnByb3RvdHlwZS5fc2V0VmFsdWVfYXJyYXlfc2V0TWF0cml4V29ybGROZWVkc1VwZGF0ZV0sW3dndC5wcm90b3R5cGUuX3NldFZhbHVlX2FycmF5RWxlbWVudCx3Z3QucHJvdG90eXBlLl9zZXRWYWx1ZV9hcnJheUVsZW1lbnRfc2V0TmVlZHNVcGRhdGUsd2d0LnByb3RvdHlwZS5fc2V0VmFsdWVfYXJyYXlFbGVtZW50X3NldE1hdHJpeFdvcmxkTmVlZHNVcGRhdGVdLFt3Z3QucHJvdG90eXBlLl9zZXRWYWx1ZV9mcm9tQXJyYXksd2d0LnByb3RvdHlwZS5fc2V0VmFsdWVfZnJvbUFycmF5X3NldE5lZWRzVXBkYXRlLHdndC5wcm90b3R5cGUuX3NldFZhbHVlX2Zyb21BcnJheV9zZXRNYXRyaXhXb3JsZE5lZWRzVXBkYXRlXV07Y2xhc3Mga2d0e2NvbnN0cnVjdG9yKHQsZSxuPW51bGwsbz1lLmJsZW5kTW9kZSl7dGhpcy5fbWl4ZXI9dCx0aGlzLl9jbGlwPWUsdGhpcy5fbG9jYWxSb290PW4sdGhpcy5ibGVuZE1vZGU9bztjb25zdCBpPWUudHJhY2tzLGE9aS5sZW5ndGgscj1uZXcgQXJyYXkoYSkscz17ZW5kaW5nU3RhcnQ6WnJ0LGVuZGluZ0VuZDpacnR9O2ZvcihsZXQgdD0wO3QhPT1hOysrdCl7Y29uc3QgZT1pW3RdLmNyZWF0ZUludGVycG9sYW50KG51bGwpO3JbdF09ZSxlLnNldHRpbmdzPXN9dGhpcy5faW50ZXJwb2xhbnRTZXR0aW5ncz1zLHRoaXMuX2ludGVycG9sYW50cz1yLHRoaXMuX3Byb3BlcnR5QmluZGluZ3M9bmV3IEFycmF5KGEpLHRoaXMuX2NhY2hlSW5kZXg9bnVsbCx0aGlzLl9ieUNsaXBDYWNoZUluZGV4PW51bGwsdGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ9bnVsbCx0aGlzLl93ZWlnaHRJbnRlcnBvbGFudD1udWxsLHRoaXMubG9vcD0yMjAxLHRoaXMuX2xvb3BDb3VudD0tMSx0aGlzLl9zdGFydFRpbWU9bnVsbCx0aGlzLnRpbWU9MCx0aGlzLnRpbWVTY2FsZT0xLHRoaXMuX2VmZmVjdGl2ZVRpbWVTY2FsZT0xLHRoaXMud2VpZ2h0PTEsdGhpcy5fZWZmZWN0aXZlV2VpZ2h0PTEsdGhpcy5yZXBldGl0aW9ucz0xLzAsdGhpcy5wYXVzZWQ9ITEsdGhpcy5lbmFibGVkPSEwLHRoaXMuY2xhbXBXaGVuRmluaXNoZWQ9ITEsdGhpcy56ZXJvU2xvcGVBdFN0YXJ0PSEwLHRoaXMuemVyb1Nsb3BlQXRFbmQ9ITB9cGxheSgpe3JldHVybiB0aGlzLl9taXhlci5fYWN0aXZhdGVBY3Rpb24odGhpcyksdGhpc31zdG9wKCl7cmV0dXJuIHRoaXMuX21peGVyLl9kZWFjdGl2YXRlQWN0aW9uKHRoaXMpLHRoaXMucmVzZXQoKX1yZXNldCgpe3JldHVybiB0aGlzLnBhdXNlZD0hMSx0aGlzLmVuYWJsZWQ9ITAsdGhpcy50aW1lPTAsdGhpcy5fbG9vcENvdW50PS0xLHRoaXMuX3N0YXJ0VGltZT1udWxsLHRoaXMuc3RvcEZhZGluZygpLnN0b3BXYXJwaW5nKCl9aXNSdW5uaW5nKCl7cmV0dXJuIHRoaXMuZW5hYmxlZCYmIXRoaXMucGF1c2VkJiYwIT09dGhpcy50aW1lU2NhbGUmJm51bGw9PT10aGlzLl9zdGFydFRpbWUmJnRoaXMuX21peGVyLl9pc0FjdGl2ZUFjdGlvbih0aGlzKX1pc1NjaGVkdWxlZCgpe3JldHVybiB0aGlzLl9taXhlci5faXNBY3RpdmVBY3Rpb24odGhpcyl9c3RhcnRBdCh0KXtyZXR1cm4gdGhpcy5fc3RhcnRUaW1lPXQsdGhpc31zZXRMb29wKHQsZSl7cmV0dXJuIHRoaXMubG9vcD10LHRoaXMucmVwZXRpdGlvbnM9ZSx0aGlzfXNldEVmZmVjdGl2ZVdlaWdodCh0KXtyZXR1cm4gdGhpcy53ZWlnaHQ9dCx0aGlzLl9lZmZlY3RpdmVXZWlnaHQ9dGhpcy5lbmFibGVkP3Q6MCx0aGlzLnN0b3BGYWRpbmcoKX1nZXRFZmZlY3RpdmVXZWlnaHQoKXtyZXR1cm4gdGhpcy5fZWZmZWN0aXZlV2VpZ2h0fWZhZGVJbih0KXtyZXR1cm4gdGhpcy5fc2NoZWR1bGVGYWRpbmcodCwwLDEpfWZhZGVPdXQodCl7cmV0dXJuIHRoaXMuX3NjaGVkdWxlRmFkaW5nKHQsMSwwKX1jcm9zc0ZhZGVGcm9tKHQsZSxuKXtpZih0LmZhZGVPdXQoZSksdGhpcy5mYWRlSW4oZSksbil7Y29uc3Qgbj10aGlzLl9jbGlwLmR1cmF0aW9uLG89dC5fY2xpcC5kdXJhdGlvbixpPW4vbzt0LndhcnAoMSxvL24sZSksdGhpcy53YXJwKGksMSxlKX1yZXR1cm4gdGhpc31jcm9zc0ZhZGVUbyh0LGUsbil7cmV0dXJuIHQuY3Jvc3NGYWRlRnJvbSh0aGlzLGUsbil9c3RvcEZhZGluZygpe2NvbnN0IHQ9dGhpcy5fd2VpZ2h0SW50ZXJwb2xhbnQ7cmV0dXJuIG51bGwhPT10JiYodGhpcy5fd2VpZ2h0SW50ZXJwb2xhbnQ9bnVsbCx0aGlzLl9taXhlci5fdGFrZUJhY2tDb250cm9sSW50ZXJwb2xhbnQodCkpLHRoaXN9c2V0RWZmZWN0aXZlVGltZVNjYWxlKHQpe3JldHVybiB0aGlzLnRpbWVTY2FsZT10LHRoaXMuX2VmZmVjdGl2ZVRpbWVTY2FsZT10aGlzLnBhdXNlZD8wOnQsdGhpcy5zdG9wV2FycGluZygpfWdldEVmZmVjdGl2ZVRpbWVTY2FsZSgpe3JldHVybiB0aGlzLl9lZmZlY3RpdmVUaW1lU2NhbGV9c2V0RHVyYXRpb24odCl7cmV0dXJuIHRoaXMudGltZVNjYWxlPXRoaXMuX2NsaXAuZHVyYXRpb24vdCx0aGlzLnN0b3BXYXJwaW5nKCl9c3luY1dpdGgodCl7cmV0dXJuIHRoaXMudGltZT10LnRpbWUsdGhpcy50aW1lU2NhbGU9dC50aW1lU2NhbGUsdGhpcy5zdG9wV2FycGluZygpfWhhbHQodCl7cmV0dXJuIHRoaXMud2FycCh0aGlzLl9lZmZlY3RpdmVUaW1lU2NhbGUsMCx0KX13YXJwKHQsZSxuKXtjb25zdCBvPXRoaXMuX21peGVyLGk9by50aW1lLGE9dGhpcy50aW1lU2NhbGU7bGV0IHI9dGhpcy5fdGltZVNjYWxlSW50ZXJwb2xhbnQ7bnVsbD09PXImJihyPW8uX2xlbmRDb250cm9sSW50ZXJwb2xhbnQoKSx0aGlzLl90aW1lU2NhbGVJbnRlcnBvbGFudD1yKTtjb25zdCBzPXIucGFyYW1ldGVyUG9zaXRpb25zLGw9ci5zYW1wbGVWYWx1ZXM7cmV0dXJuIHNbMF09aSxzWzFdPWkrbixsWzBdPXQvYSxsWzFdPWUvYSx0aGlzfXN0b3BXYXJwaW5nKCl7Y29uc3QgdD10aGlzLl90aW1lU2NhbGVJbnRlcnBvbGFudDtyZXR1cm4gbnVsbCE9PXQmJih0aGlzLl90aW1lU2NhbGVJbnRlcnBvbGFudD1udWxsLHRoaXMuX21peGVyLl90YWtlQmFja0NvbnRyb2xJbnRlcnBvbGFudCh0KSksdGhpc31nZXRNaXhlcigpe3JldHVybiB0aGlzLl9taXhlcn1nZXRDbGlwKCl7cmV0dXJuIHRoaXMuX2NsaXB9Z2V0Um9vdCgpe3JldHVybiB0aGlzLl9sb2NhbFJvb3R8fHRoaXMuX21peGVyLl9yb290fV91cGRhdGUodCxlLG4sbyl7aWYoIXRoaXMuZW5hYmxlZClyZXR1cm4gdm9pZCB0aGlzLl91cGRhdGVXZWlnaHQodCk7Y29uc3QgaT10aGlzLl9zdGFydFRpbWU7aWYobnVsbCE9PWkpe2NvbnN0IG89KHQtaSkqbjtpZihvPDB8fDA9PT1uKXJldHVybjt0aGlzLl9zdGFydFRpbWU9bnVsbCxlPW4qb31lKj10aGlzLl91cGRhdGVUaW1lU2NhbGUodCk7Y29uc3QgYT10aGlzLl91cGRhdGVUaW1lKGUpLHI9dGhpcy5fdXBkYXRlV2VpZ2h0KHQpO2lmKHI+MCl7Y29uc3QgdD10aGlzLl9pbnRlcnBvbGFudHMsZT10aGlzLl9wcm9wZXJ0eUJpbmRpbmdzO3N3aXRjaCh0aGlzLmJsZW5kTW9kZSl7Y2FzZSAyNTAxOmZvcihsZXQgbj0wLG89dC5sZW5ndGg7biE9PW87KytuKXRbbl0uZXZhbHVhdGUoYSksZVtuXS5hY2N1bXVsYXRlQWRkaXRpdmUocik7YnJlYWs7Y2FzZSBKcnQ6ZGVmYXVsdDpmb3IobGV0IG49MCxpPXQubGVuZ3RoO24hPT1pOysrbil0W25dLmV2YWx1YXRlKGEpLGVbbl0uYWNjdW11bGF0ZShvLHIpfX19X3VwZGF0ZVdlaWdodCh0KXtsZXQgZT0wO2lmKHRoaXMuZW5hYmxlZCl7ZT10aGlzLndlaWdodDtjb25zdCBuPXRoaXMuX3dlaWdodEludGVycG9sYW50O2lmKG51bGwhPT1uKXtjb25zdCBvPW4uZXZhbHVhdGUodClbMF07ZSo9byx0Pm4ucGFyYW1ldGVyUG9zaXRpb25zWzFdJiYodGhpcy5zdG9wRmFkaW5nKCksMD09PW8mJih0aGlzLmVuYWJsZWQ9ITEpKX19cmV0dXJuIHRoaXMuX2VmZmVjdGl2ZVdlaWdodD1lLGV9X3VwZGF0ZVRpbWVTY2FsZSh0KXtsZXQgZT0wO2lmKCF0aGlzLnBhdXNlZCl7ZT10aGlzLnRpbWVTY2FsZTtjb25zdCBuPXRoaXMuX3RpbWVTY2FsZUludGVycG9sYW50O2lmKG51bGwhPT1uKXtlKj1uLmV2YWx1YXRlKHQpWzBdLHQ+bi5wYXJhbWV0ZXJQb3NpdGlvbnNbMV0mJih0aGlzLnN0b3BXYXJwaW5nKCksMD09PWU/dGhpcy5wYXVzZWQ9ITA6dGhpcy50aW1lU2NhbGU9ZSl9fXJldHVybiB0aGlzLl9lZmZlY3RpdmVUaW1lU2NhbGU9ZSxlfV91cGRhdGVUaW1lKHQpe2NvbnN0IGU9dGhpcy5fY2xpcC5kdXJhdGlvbixuPXRoaXMubG9vcDtsZXQgbz10aGlzLnRpbWUrdCxpPXRoaXMuX2xvb3BDb3VudDtjb25zdCBhPTIyMDI9PT1uO2lmKDA9PT10KXJldHVybi0xPT09aT9vOmEmJjE9PSgxJmkpP2UtbzpvO2lmKDIyMDA9PT1uKXstMT09PWkmJih0aGlzLl9sb29wQ291bnQ9MCx0aGlzLl9zZXRFbmRpbmdzKCEwLCEwLCExKSk7dDp7aWYobz49ZSlvPWU7ZWxzZXtpZighKG88MCkpe3RoaXMudGltZT1vO2JyZWFrIHR9bz0wfXRoaXMuY2xhbXBXaGVuRmluaXNoZWQ/dGhpcy5wYXVzZWQ9ITA6dGhpcy5lbmFibGVkPSExLHRoaXMudGltZT1vLHRoaXMuX21peGVyLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImZpbmlzaGVkIixhY3Rpb246dGhpcyxkaXJlY3Rpb246dDwwPy0xOjF9KX19ZWxzZXtpZigtMT09PWkmJih0Pj0wPyhpPTAsdGhpcy5fc2V0RW5kaW5ncyghMCwwPT09dGhpcy5yZXBldGl0aW9ucyxhKSk6dGhpcy5fc2V0RW5kaW5ncygwPT09dGhpcy5yZXBldGl0aW9ucywhMCxhKSksbz49ZXx8bzwwKXtjb25zdCBuPU1hdGguZmxvb3Ioby9lKTtvLT1lKm4saSs9TWF0aC5hYnMobik7Y29uc3Qgcj10aGlzLnJlcGV0aXRpb25zLWk7aWYocjw9MCl0aGlzLmNsYW1wV2hlbkZpbmlzaGVkP3RoaXMucGF1c2VkPSEwOnRoaXMuZW5hYmxlZD0hMSxvPXQ+MD9lOjAsdGhpcy50aW1lPW8sdGhpcy5fbWl4ZXIuZGlzcGF0Y2hFdmVudCh7dHlwZToiZmluaXNoZWQiLGFjdGlvbjp0aGlzLGRpcmVjdGlvbjp0PjA/MTotMX0pO2Vsc2V7aWYoMT09PXIpe2NvbnN0IGU9dDwwO3RoaXMuX3NldEVuZGluZ3MoZSwhZSxhKX1lbHNlIHRoaXMuX3NldEVuZGluZ3MoITEsITEsYSk7dGhpcy5fbG9vcENvdW50PWksdGhpcy50aW1lPW8sdGhpcy5fbWl4ZXIuZGlzcGF0Y2hFdmVudCh7dHlwZToibG9vcCIsYWN0aW9uOnRoaXMsbG9vcERlbHRhOm59KX19ZWxzZSB0aGlzLnRpbWU9bztpZihhJiYxPT0oMSZpKSlyZXR1cm4gZS1vfXJldHVybiBvfV9zZXRFbmRpbmdzKHQsZSxuKXtjb25zdCBvPXRoaXMuX2ludGVycG9sYW50U2V0dGluZ3M7bj8oby5lbmRpbmdTdGFydD1YcnQsby5lbmRpbmdFbmQ9WHJ0KTooby5lbmRpbmdTdGFydD10P3RoaXMuemVyb1Nsb3BlQXRTdGFydD9YcnQ6WnJ0OktydCxvLmVuZGluZ0VuZD1lP3RoaXMuemVyb1Nsb3BlQXRFbmQ/WHJ0OlpydDpLcnQpfV9zY2hlZHVsZUZhZGluZyh0LGUsbil7Y29uc3Qgbz10aGlzLl9taXhlcixpPW8udGltZTtsZXQgYT10aGlzLl93ZWlnaHRJbnRlcnBvbGFudDtudWxsPT09YSYmKGE9by5fbGVuZENvbnRyb2xJbnRlcnBvbGFudCgpLHRoaXMuX3dlaWdodEludGVycG9sYW50PWEpO2NvbnN0IHI9YS5wYXJhbWV0ZXJQb3NpdGlvbnMscz1hLnNhbXBsZVZhbHVlcztyZXR1cm4gclswXT1pLHNbMF09ZSxyWzFdPWkrdCxzWzFdPW4sdGhpc319KGNsYXNzIGV4dGVuZHMgcnN0e2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5fcm9vdD10LHRoaXMuX2luaXRNZW1vcnlNYW5hZ2VyKCksdGhpcy5fYWNjdUluZGV4PTAsdGhpcy50aW1lPTAsdGhpcy50aW1lU2NhbGU9MX1fYmluZEFjdGlvbih0LGUpe2NvbnN0IG49dC5fbG9jYWxSb290fHx0aGlzLl9yb290LG89dC5fY2xpcC50cmFja3MsaT1vLmxlbmd0aCxhPXQuX3Byb3BlcnR5QmluZGluZ3Mscj10Ll9pbnRlcnBvbGFudHMscz1uLnV1aWQsbD10aGlzLl9iaW5kaW5nc0J5Um9vdEFuZE5hbWU7bGV0IGM9bFtzXTt2b2lkIDA9PT1jJiYoYz17fSxsW3NdPWMpO2ZvcihsZXQgdD0wO3QhPT1pOysrdCl7Y29uc3QgaT1vW3RdLGw9aS5uYW1lO2xldCBkPWNbbF07aWYodm9pZCAwIT09ZClhW3RdPWQ7ZWxzZXtpZihkPWFbdF0sdm9pZCAwIT09ZCl7bnVsbD09PWQuX2NhY2hlSW5kZXgmJigrK2QucmVmZXJlbmNlQ291bnQsdGhpcy5fYWRkSW5hY3RpdmVCaW5kaW5nKGQscyxsKSk7Y29udGludWV9ZD1uZXcgZ2d0KHdndC5jcmVhdGUobixsLGUmJmUuX3Byb3BlcnR5QmluZGluZ3NbdF0uYmluZGluZy5wYXJzZWRQYXRoKSxpLlZhbHVlVHlwZU5hbWUsaS5nZXRWYWx1ZVNpemUoKSksKytkLnJlZmVyZW5jZUNvdW50LHRoaXMuX2FkZEluYWN0aXZlQmluZGluZyhkLHMsbCksYVt0XT1kfXJbdF0ucmVzdWx0QnVmZmVyPWQuYnVmZmVyfX1fYWN0aXZhdGVBY3Rpb24odCl7aWYoIXRoaXMuX2lzQWN0aXZlQWN0aW9uKHQpKXtpZihudWxsPT09dC5fY2FjaGVJbmRleCl7Y29uc3QgZT0odC5fbG9jYWxSb290fHx0aGlzLl9yb290KS51dWlkLG49dC5fY2xpcC51dWlkLG89dGhpcy5fYWN0aW9uc0J5Q2xpcFtuXTt0aGlzLl9iaW5kQWN0aW9uKHQsbyYmby5rbm93bkFjdGlvbnNbMF0pLHRoaXMuX2FkZEluYWN0aXZlQWN0aW9uKHQsbixlKX1jb25zdCBlPXQuX3Byb3BlcnR5QmluZGluZ3M7Zm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0IT09bjsrK3Qpe2NvbnN0IG49ZVt0XTswPT1uLnVzZUNvdW50KysmJih0aGlzLl9sZW5kQmluZGluZyhuKSxuLnNhdmVPcmlnaW5hbFN0YXRlKCkpfXRoaXMuX2xlbmRBY3Rpb24odCl9fV9kZWFjdGl2YXRlQWN0aW9uKHQpe2lmKHRoaXMuX2lzQWN0aXZlQWN0aW9uKHQpKXtjb25zdCBlPXQuX3Byb3BlcnR5QmluZGluZ3M7Zm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0IT09bjsrK3Qpe2NvbnN0IG49ZVt0XTswPT0tLW4udXNlQ291bnQmJihuLnJlc3RvcmVPcmlnaW5hbFN0YXRlKCksdGhpcy5fdGFrZUJhY2tCaW5kaW5nKG4pKX10aGlzLl90YWtlQmFja0FjdGlvbih0KX19X2luaXRNZW1vcnlNYW5hZ2VyKCl7dGhpcy5fYWN0aW9ucz1bXSx0aGlzLl9uQWN0aXZlQWN0aW9ucz0wLHRoaXMuX2FjdGlvbnNCeUNsaXA9e30sdGhpcy5fYmluZGluZ3M9W10sdGhpcy5fbkFjdGl2ZUJpbmRpbmdzPTAsdGhpcy5fYmluZGluZ3NCeVJvb3RBbmROYW1lPXt9LHRoaXMuX2NvbnRyb2xJbnRlcnBvbGFudHM9W10sdGhpcy5fbkFjdGl2ZUNvbnRyb2xJbnRlcnBvbGFudHM9MDtjb25zdCB0PXRoaXM7dGhpcy5zdGF0cz17YWN0aW9uczp7Z2V0IHRvdGFsKCl7cmV0dXJuIHQuX2FjdGlvbnMubGVuZ3RofSxnZXQgaW5Vc2UoKXtyZXR1cm4gdC5fbkFjdGl2ZUFjdGlvbnN9fSxiaW5kaW5nczp7Z2V0IHRvdGFsKCl7cmV0dXJuIHQuX2JpbmRpbmdzLmxlbmd0aH0sZ2V0IGluVXNlKCl7cmV0dXJuIHQuX25BY3RpdmVCaW5kaW5nc319LGNvbnRyb2xJbnRlcnBvbGFudHM6e2dldCB0b3RhbCgpe3JldHVybiB0Ll9jb250cm9sSW50ZXJwb2xhbnRzLmxlbmd0aH0sZ2V0IGluVXNlKCl7cmV0dXJuIHQuX25BY3RpdmVDb250cm9sSW50ZXJwb2xhbnRzfX19fV9pc0FjdGl2ZUFjdGlvbih0KXtjb25zdCBlPXQuX2NhY2hlSW5kZXg7cmV0dXJuIG51bGwhPT1lJiZlPHRoaXMuX25BY3RpdmVBY3Rpb25zfV9hZGRJbmFjdGl2ZUFjdGlvbih0LGUsbil7Y29uc3Qgbz10aGlzLl9hY3Rpb25zLGk9dGhpcy5fYWN0aW9uc0J5Q2xpcDtsZXQgYT1pW2VdO2lmKHZvaWQgMD09PWEpYT17a25vd25BY3Rpb25zOlt0XSxhY3Rpb25CeVJvb3Q6e319LHQuX2J5Q2xpcENhY2hlSW5kZXg9MCxpW2VdPWE7ZWxzZXtjb25zdCBlPWEua25vd25BY3Rpb25zO3QuX2J5Q2xpcENhY2hlSW5kZXg9ZS5sZW5ndGgsZS5wdXNoKHQpfXQuX2NhY2hlSW5kZXg9by5sZW5ndGgsby5wdXNoKHQpLGEuYWN0aW9uQnlSb290W25dPXR9X3JlbW92ZUluYWN0aXZlQWN0aW9uKHQpe2NvbnN0IGU9dGhpcy5fYWN0aW9ucyxuPWVbZS5sZW5ndGgtMV0sbz10Ll9jYWNoZUluZGV4O24uX2NhY2hlSW5kZXg9byxlW29dPW4sZS5wb3AoKSx0Ll9jYWNoZUluZGV4PW51bGw7Y29uc3QgaT10Ll9jbGlwLnV1aWQsYT10aGlzLl9hY3Rpb25zQnlDbGlwLHI9YVtpXSxzPXIua25vd25BY3Rpb25zLGw9c1tzLmxlbmd0aC0xXSxjPXQuX2J5Q2xpcENhY2hlSW5kZXg7bC5fYnlDbGlwQ2FjaGVJbmRleD1jLHNbY109bCxzLnBvcCgpLHQuX2J5Q2xpcENhY2hlSW5kZXg9bnVsbDtkZWxldGUgci5hY3Rpb25CeVJvb3RbKHQuX2xvY2FsUm9vdHx8dGhpcy5fcm9vdCkudXVpZF0sMD09PXMubGVuZ3RoJiZkZWxldGUgYVtpXSx0aGlzLl9yZW1vdmVJbmFjdGl2ZUJpbmRpbmdzRm9yQWN0aW9uKHQpfV9yZW1vdmVJbmFjdGl2ZUJpbmRpbmdzRm9yQWN0aW9uKHQpe2NvbnN0IGU9dC5fcHJvcGVydHlCaW5kaW5ncztmb3IobGV0IHQ9MCxuPWUubGVuZ3RoO3QhPT1uOysrdCl7Y29uc3Qgbj1lW3RdOzA9PS0tbi5yZWZlcmVuY2VDb3VudCYmdGhpcy5fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nKG4pfX1fbGVuZEFjdGlvbih0KXtjb25zdCBlPXRoaXMuX2FjdGlvbnMsbj10Ll9jYWNoZUluZGV4LG89dGhpcy5fbkFjdGl2ZUFjdGlvbnMrKyxpPWVbb107dC5fY2FjaGVJbmRleD1vLGVbb109dCxpLl9jYWNoZUluZGV4PW4sZVtuXT1pfV90YWtlQmFja0FjdGlvbih0KXtjb25zdCBlPXRoaXMuX2FjdGlvbnMsbj10Ll9jYWNoZUluZGV4LG89LS10aGlzLl9uQWN0aXZlQWN0aW9ucyxpPWVbb107dC5fY2FjaGVJbmRleD1vLGVbb109dCxpLl9jYWNoZUluZGV4PW4sZVtuXT1pfV9hZGRJbmFjdGl2ZUJpbmRpbmcodCxlLG4pe2NvbnN0IG89dGhpcy5fYmluZGluZ3NCeVJvb3RBbmROYW1lLGk9dGhpcy5fYmluZGluZ3M7bGV0IGE9b1tlXTt2b2lkIDA9PT1hJiYoYT17fSxvW2VdPWEpLGFbbl09dCx0Ll9jYWNoZUluZGV4PWkubGVuZ3RoLGkucHVzaCh0KX1fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nKHQpe2NvbnN0IGU9dGhpcy5fYmluZGluZ3Msbj10LmJpbmRpbmcsbz1uLnJvb3ROb2RlLnV1aWQsaT1uLnBhdGgsYT10aGlzLl9iaW5kaW5nc0J5Um9vdEFuZE5hbWUscj1hW29dLHM9ZVtlLmxlbmd0aC0xXSxsPXQuX2NhY2hlSW5kZXg7cy5fY2FjaGVJbmRleD1sLGVbbF09cyxlLnBvcCgpLGRlbGV0ZSByW2ldLDA9PT1PYmplY3Qua2V5cyhyKS5sZW5ndGgmJmRlbGV0ZSBhW29dfV9sZW5kQmluZGluZyh0KXtjb25zdCBlPXRoaXMuX2JpbmRpbmdzLG49dC5fY2FjaGVJbmRleCxvPXRoaXMuX25BY3RpdmVCaW5kaW5ncysrLGk9ZVtvXTt0Ll9jYWNoZUluZGV4PW8sZVtvXT10LGkuX2NhY2hlSW5kZXg9bixlW25dPWl9X3Rha2VCYWNrQmluZGluZyh0KXtjb25zdCBlPXRoaXMuX2JpbmRpbmdzLG49dC5fY2FjaGVJbmRleCxvPS0tdGhpcy5fbkFjdGl2ZUJpbmRpbmdzLGk9ZVtvXTt0Ll9jYWNoZUluZGV4PW8sZVtvXT10LGkuX2NhY2hlSW5kZXg9bixlW25dPWl9X2xlbmRDb250cm9sSW50ZXJwb2xhbnQoKXtjb25zdCB0PXRoaXMuX2NvbnRyb2xJbnRlcnBvbGFudHMsZT10aGlzLl9uQWN0aXZlQ29udHJvbEludGVycG9sYW50cysrO2xldCBuPXRbZV07cmV0dXJuIHZvaWQgMD09PW4mJihuPW5ldyBSdXQobmV3IEZsb2F0MzJBcnJheSgyKSxuZXcgRmxvYXQzMkFycmF5KDIpLDEsdGhpcy5fY29udHJvbEludGVycG9sYW50c1Jlc3VsdEJ1ZmZlciksbi5fX2NhY2hlSW5kZXg9ZSx0W2VdPW4pLG59X3Rha2VCYWNrQ29udHJvbEludGVycG9sYW50KHQpe2NvbnN0IGU9dGhpcy5fY29udHJvbEludGVycG9sYW50cyxuPXQuX19jYWNoZUluZGV4LG89LS10aGlzLl9uQWN0aXZlQ29udHJvbEludGVycG9sYW50cyxpPWVbb107dC5fX2NhY2hlSW5kZXg9byxlW29dPXQsaS5fX2NhY2hlSW5kZXg9bixlW25dPWl9Y2xpcEFjdGlvbih0LGUsbil7Y29uc3Qgbz1lfHx0aGlzLl9yb290LGk9by51dWlkO2xldCBhPSJzdHJpbmciPT10eXBlb2YgdD9CdXQuZmluZEJ5TmFtZShvLHQpOnQ7Y29uc3Qgcj1udWxsIT09YT9hLnV1aWQ6dCxzPXRoaXMuX2FjdGlvbnNCeUNsaXBbcl07bGV0IGw9bnVsbDtpZih2b2lkIDA9PT1uJiYobj1udWxsIT09YT9hLmJsZW5kTW9kZTpKcnQpLHZvaWQgMCE9PXMpe2NvbnN0IHQ9cy5hY3Rpb25CeVJvb3RbaV07aWYodm9pZCAwIT09dCYmdC5ibGVuZE1vZGU9PT1uKXJldHVybiB0O2w9cy5rbm93bkFjdGlvbnNbMF0sbnVsbD09PWEmJihhPWwuX2NsaXApfWlmKG51bGw9PT1hKXJldHVybiBudWxsO2NvbnN0IGM9bmV3IGtndCh0aGlzLGEsZSxuKTtyZXR1cm4gdGhpcy5fYmluZEFjdGlvbihjLGwpLHRoaXMuX2FkZEluYWN0aXZlQWN0aW9uKGMscixpKSxjfWV4aXN0aW5nQWN0aW9uKHQsZSl7Y29uc3Qgbj1lfHx0aGlzLl9yb290LG89bi51dWlkLGk9InN0cmluZyI9PXR5cGVvZiB0P0J1dC5maW5kQnlOYW1lKG4sdCk6dCxhPXRoaXMuX2FjdGlvbnNCeUNsaXBbaT9pLnV1aWQ6dF07cmV0dXJuIHZvaWQgMCE9PWEmJmEuYWN0aW9uQnlSb290W29dfHxudWxsfXN0b3BBbGxBY3Rpb24oKXtjb25zdCB0PXRoaXMuX2FjdGlvbnM7Zm9yKGxldCBlPXRoaXMuX25BY3RpdmVBY3Rpb25zLTE7ZT49MDstLWUpdFtlXS5zdG9wKCk7cmV0dXJuIHRoaXN9dXBkYXRlKHQpe2NvbnN0IGU9dGhpcy5fYWN0aW9ucyxuPXRoaXMuX25BY3RpdmVBY3Rpb25zLG89dGhpcy50aW1lKz10Kj10aGlzLnRpbWVTY2FsZSxpPU1hdGguc2lnbih0KSxhPXRoaXMuX2FjY3VJbmRleF49MTtmb3IobGV0IHI9MDtyIT09bjsrK3Ipe2Vbcl0uX3VwZGF0ZShvLHQsaSxhKX1jb25zdCByPXRoaXMuX2JpbmRpbmdzLHM9dGhpcy5fbkFjdGl2ZUJpbmRpbmdzO2ZvcihsZXQgdD0wO3QhPT1zOysrdClyW3RdLmFwcGx5KGEpO3JldHVybiB0aGlzfXNldFRpbWUodCl7dGhpcy50aW1lPTA7Zm9yKGxldCB0PTA7dDx0aGlzLl9hY3Rpb25zLmxlbmd0aDt0KyspdGhpcy5fYWN0aW9uc1t0XS50aW1lPTA7cmV0dXJuIHRoaXMudXBkYXRlKHQpfWdldFJvb3QoKXtyZXR1cm4gdGhpcy5fcm9vdH11bmNhY2hlQ2xpcCh0KXtjb25zdCBlPXRoaXMuX2FjdGlvbnMsbj10LnV1aWQsbz10aGlzLl9hY3Rpb25zQnlDbGlwLGk9b1tuXTtpZih2b2lkIDAhPT1pKXtjb25zdCB0PWkua25vd25BY3Rpb25zO2ZvcihsZXQgbj0wLG89dC5sZW5ndGg7biE9PW87KytuKXtjb25zdCBvPXRbbl07dGhpcy5fZGVhY3RpdmF0ZUFjdGlvbihvKTtjb25zdCBpPW8uX2NhY2hlSW5kZXgsYT1lW2UubGVuZ3RoLTFdO28uX2NhY2hlSW5kZXg9bnVsbCxvLl9ieUNsaXBDYWNoZUluZGV4PW51bGwsYS5fY2FjaGVJbmRleD1pLGVbaV09YSxlLnBvcCgpLHRoaXMuX3JlbW92ZUluYWN0aXZlQmluZGluZ3NGb3JBY3Rpb24obyl9ZGVsZXRlIG9bbl19fXVuY2FjaGVSb290KHQpe2NvbnN0IGU9dC51dWlkLG49dGhpcy5fYWN0aW9uc0J5Q2xpcDtmb3IoY29uc3QgdCBpbiBuKXtjb25zdCBvPW5bdF0uYWN0aW9uQnlSb290W2VdO3ZvaWQgMCE9PW8mJih0aGlzLl9kZWFjdGl2YXRlQWN0aW9uKG8pLHRoaXMuX3JlbW92ZUluYWN0aXZlQWN0aW9uKG8pKX1jb25zdCBvPXRoaXMuX2JpbmRpbmdzQnlSb290QW5kTmFtZVtlXTtpZih2b2lkIDAhPT1vKWZvcihjb25zdCB0IGluIG8pe2NvbnN0IGU9b1t0XTtlLnJlc3RvcmVPcmlnaW5hbFN0YXRlKCksdGhpcy5fcmVtb3ZlSW5hY3RpdmVCaW5kaW5nKGUpfX11bmNhY2hlQWN0aW9uKHQsZSl7Y29uc3Qgbj10aGlzLmV4aXN0aW5nQWN0aW9uKHQsZSk7bnVsbCE9PW4mJih0aGlzLl9kZWFjdGl2YXRlQWN0aW9uKG4pLHRoaXMuX3JlbW92ZUluYWN0aXZlQWN0aW9uKG4pKX19KS5wcm90b3R5cGUuX2NvbnRyb2xJbnRlcnBvbGFudHNSZXN1bHRCdWZmZXI9bmV3IEZsb2F0MzJBcnJheSgxKTsoY2xhc3MgZXh0ZW5kcyBMbXR7Y29uc3RydWN0b3IodCxlLG49MSl7c3VwZXIodCxlKSx0aGlzLm1lc2hQZXJBdHRyaWJ1dGU9bn1jb3B5KHQpe3JldHVybiBzdXBlci5jb3B5KHQpLHRoaXMubWVzaFBlckF0dHJpYnV0ZT10Lm1lc2hQZXJBdHRyaWJ1dGUsdGhpc31jbG9uZSh0KXtjb25zdCBlPXN1cGVyLmNsb25lKHQpO3JldHVybiBlLm1lc2hQZXJBdHRyaWJ1dGU9dGhpcy5tZXNoUGVyQXR0cmlidXRlLGV9dG9KU09OKHQpe2NvbnN0IGU9c3VwZXIudG9KU09OKHQpO3JldHVybiBlLmlzSW5zdGFuY2VkSW50ZXJsZWF2ZWRCdWZmZXI9ITAsZS5tZXNoUGVyQXR0cmlidXRlPXRoaXMubWVzaFBlckF0dHJpYnV0ZSxlfX0pLnByb3RvdHlwZS5pc0luc3RhbmNlZEludGVybGVhdmVkQnVmZmVyPSEwOyhjbGFzcyBleHRlbmRzIFNsdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMubWF0ZXJpYWw9dCx0aGlzLnJlbmRlcj1mdW5jdGlvbigpe30sdGhpcy5oYXNQb3NpdGlvbnM9ITEsdGhpcy5oYXNOb3JtYWxzPSExLHRoaXMuaGFzQ29sb3JzPSExLHRoaXMuaGFzVXZzPSExLHRoaXMucG9zaXRpb25BcnJheT1udWxsLHRoaXMubm9ybWFsQXJyYXk9bnVsbCx0aGlzLmNvbG9yQXJyYXk9bnVsbCx0aGlzLnV2QXJyYXk9bnVsbCx0aGlzLmNvdW50PTB9fSkucHJvdG90eXBlLmlzSW1tZWRpYXRlUmVuZGVyT2JqZWN0PSEwO2NvbnN0IFNndD1uZXcgd3N0LERndD1uZXcgb2x0LFJndD1uZXcgb2x0O2Z1bmN0aW9uIEVndCh0KXtjb25zdCBlPVtdO3QmJnQuaXNCb25lJiZlLnB1c2godCk7Zm9yKGxldCBuPTA7bjx0LmNoaWxkcmVuLmxlbmd0aDtuKyspZS5wdXNoLmFwcGx5KGUsRWd0KHQuY2hpbGRyZW5bbl0pKTtyZXR1cm4gZX1jb25zdCBBZ3Q9bmV3IEZsb2F0MzJBcnJheSgxKTtmdW5jdGlvbiBUZ3QodCxlLG4pe2lmKDE9PT1uKXJldHVybiBuZXcgWmx0KGUpO2NvbnN0IG89ZzkoZSk7aWYoIW8pdGhyb3cgbmV3IEVycm9yKGBkMyBmYWlsZWQgdG8gcmVjb2duaXplIHRoZSBjb2xvcjogJHtlfWApO3JldHVybiBuZXcgWmx0KHV0dChvLHQpKDEtbikpfXZhciBOZ3Qsemd0O2Z1bmN0aW9uIElndCh0LGUpe2NvbnN0IG49ZS5sZW5ndGgvMjtsZXQgbz10LmF0dHJpYnV0ZXMucG9zaXRpb247byYmby5jb3VudD09PTMqbnx8KG89bmV3IFFsdChuZXcgRmxvYXQzMkFycmF5KDMqbiksMyksdC5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixvKSk7Y29uc3QgaT1vLmFycmF5O2ZvcihsZXQgdD0wO3Q8bjt0KyspaVszKnRdPWVbMip0XSxpWzMqdCsxXT1lWzIqdCsxXTtvLm5lZWRzVXBkYXRlPSEwLHQuc2V0RHJhd1JhbmdlKDAsMypuKSx0LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpfWZ1bmN0aW9uIEhndCh0LGUsbil7Y29uc3Qgbz1NYXRoLm1heChlLmxlbmd0aC8yLTEsMCksaT0yKm8qMyxhPTMqaTtsZXQgcj10LmF0dHJpYnV0ZXMucG9zaXRpb247ciYmci5jb3VudD09PWl8fChyPW5ldyBRbHQobmV3IEZsb2F0MzJBcnJheShhKSwzKSx0LnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLHIpKTtjb25zdCBzPXIuYXJyYXk7Zm9yKGxldCB0PTA7dDxvO3QrKyl7Y29uc3RbbyxpLGEscl09W2VbMip0XSxlWzIqdCsxXSxlWzIqdCsyXSxlWzIqdCszXV0sbD1uZXcgZ3N0KG8saSksYz1uZXcgZ3N0KGEsciksZD1uZXcgZ3N0KGEtbyxyLWkpLHA9bmV3IGdzdCgtZC55LGQueCkuc2V0TGVuZ3RoKG4vMiksbT1sLmNsb25lKCkuYWRkKHApLGY9bC5jbG9uZSgpLnN1YihwKSx1PWMuY2xvbmUoKS5hZGQocCksZz1jLmNsb25lKCkuc3ViKHApLGg9W20ueCxtLnksMCxmLngsZi55LDAsdS54LHUueSwwLHUueCx1LnksMCxmLngsZi55LDAsZy54LGcueSwwXTtzLnNldChoLHQqaC5sZW5ndGgpfXIubmVlZHNVcGRhdGU9ITAsdC5zZXREcmF3UmFuZ2UoMCxhKSx0LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpfWZ1bmN0aW9uIEZndCh0LGUsbixvKXtjb25zdHt2aXNpYmxlOmksY29sb3I6YSxvcGFjaXR5OnJ9PW87aWYoQXJyYXkuaXNBcnJheShlLm1hdGVyaWFsKSl0aHJvdyBuZXcgRXJyb3IoIkludmFyaWFudCBlcnJvcjogb25seSBleHBlY3Qgb25lIG1hdGVyaWFsIG9uIGFuIG9iamVjdCIpO2NvbnN0IHM9ZS5tYXRlcmlhbDtpZihzLnZpc2libGUhPT1pJiYocy52aXNpYmxlPWkscy5uZWVkc1VwZGF0ZT0hMCksIWkpcmV0dXJuITE7Y29uc3QgbD1UZ3QodCxhLG51bGwhPXI/cjoxKSxjPW4oZS5nZW9tZXRyeSk7ZS5nZW9tZXRyeSE9PWMmJihlLmdlb21ldHJ5PWMpO3JldHVybiBzLmNvbG9yLmVxdWFscyhsKXx8KHMuY29sb3Iuc2V0KGwpLHMubmVlZHNVcGRhdGU9ITApLCEwfW5ldyBJbnQzMkFycmF5KEFndC5idWZmZXIpLFJmdC5jcmVhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gY29uc29sZS5sb2coIlRIUkVFLkN1cnZlLmNyZWF0ZSgpIGhhcyBiZWVuIGRlcHJlY2F0ZWQiKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKFJmdC5wcm90b3R5cGUpLHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPXQsdC5wcm90b3R5cGUuZ2V0UG9pbnQ9ZSx0fSxKdXQucHJvdG90eXBlLmZyb21Qb2ludHM9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUGF0aDogLmZyb21Qb2ludHMoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tUG9pbnRzKCkuIiksdGhpcy5zZXRGcm9tUG9pbnRzKHQpfSxjbGFzcyBleHRlbmRzIHZmdHtjb25zdHJ1Y3Rvcih0PTEwLGU9MTAsbj00NDczOTI0LG89ODk0Nzg0OCl7bj1uZXcgWmx0KG4pLG89bmV3IFpsdChvKTtjb25zdCBpPWUvMixhPXQvZSxyPXQvMixzPVtdLGw9W107Zm9yKGxldCB0PTAsYz0wLGQ9LXI7dDw9ZTt0KyssZCs9YSl7cy5wdXNoKC1yLDAsZCxyLDAsZCkscy5wdXNoKGQsMCwtcixkLDAscik7Y29uc3QgZT10PT09aT9uOm87ZS50b0FycmF5KGwsYyksYys9MyxlLnRvQXJyYXkobCxjKSxjKz0zLGUudG9BcnJheShsLGMpLGMrPTMsZS50b0FycmF5KGwsYyksYys9M31jb25zdCBjPW5ldyBkY3Q7Yy5zZXRBdHRyaWJ1dGUoInBvc2l0aW9uIixuZXcgZWN0KHMsMykpLGMuc2V0QXR0cmlidXRlKCJjb2xvciIsbmV3IGVjdChsLDMpKTtzdXBlcihjLG5ldyBmZnQoe3ZlcnRleENvbG9yczohMCx0b25lTWFwcGVkOiExfSkpLHRoaXMudHlwZT0iR3JpZEhlbHBlciJ9fS5wcm90b3R5cGUuc2V0Q29sb3JzPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuR3JpZEhlbHBlcjogc2V0Q29sb3JzKCkgaGFzIGJlZW4gZGVwcmVjYXRlZCwgcGFzcyB0aGVtIGluIHRoZSBjb25zdHJ1Y3RvciBpbnN0ZWFkLiIpfSxjbGFzcyBleHRlbmRzIHZmdHtjb25zdHJ1Y3Rvcih0KXtjb25zdCBlPUVndCh0KSxuPW5ldyBkY3Qsbz1bXSxpPVtdLGE9bmV3IFpsdCgwLDAsMSkscj1uZXcgWmx0KDAsMSwwKTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7Y29uc3Qgbj1lW3RdO24ucGFyZW50JiZuLnBhcmVudC5pc0JvbmUmJihvLnB1c2goMCwwLDApLG8ucHVzaCgwLDAsMCksaS5wdXNoKGEucixhLmcsYS5iKSxpLnB1c2goci5yLHIuZyxyLmIpKX1uLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLG5ldyBlY3QobywzKSksbi5zZXRBdHRyaWJ1dGUoImNvbG9yIixuZXcgZWN0KGksMykpO3N1cGVyKG4sbmV3IGZmdCh7dmVydGV4Q29sb3JzOiEwLGRlcHRoVGVzdDohMSxkZXB0aFdyaXRlOiExLHRvbmVNYXBwZWQ6ITEsdHJhbnNwYXJlbnQ6ITB9KSksdGhpcy50eXBlPSJTa2VsZXRvbkhlbHBlciIsdGhpcy5pc1NrZWxldG9uSGVscGVyPSEwLHRoaXMucm9vdD10LHRoaXMuYm9uZXM9ZSx0aGlzLm1hdHJpeD10Lm1hdHJpeFdvcmxkLHRoaXMubWF0cml4QXV0b1VwZGF0ZT0hMX11cGRhdGVNYXRyaXhXb3JsZCh0KXtjb25zdCBlPXRoaXMuYm9uZXMsbj10aGlzLmdlb21ldHJ5LG89bi5nZXRBdHRyaWJ1dGUoInBvc2l0aW9uIik7Umd0LmNvcHkodGhpcy5yb290Lm1hdHJpeFdvcmxkKS5pbnZlcnQoKTtmb3IobGV0IHQ9MCxuPTA7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IGk9ZVt0XTtpLnBhcmVudCYmaS5wYXJlbnQuaXNCb25lJiYoRGd0Lm11bHRpcGx5TWF0cmljZXMoUmd0LGkubWF0cml4V29ybGQpLFNndC5zZXRGcm9tTWF0cml4UG9zaXRpb24oRGd0KSxvLnNldFhZWihuLFNndC54LFNndC55LFNndC56KSxEZ3QubXVsdGlwbHlNYXRyaWNlcyhSZ3QsaS5wYXJlbnQubWF0cml4V29ybGQpLFNndC5zZXRGcm9tTWF0cml4UG9zaXRpb24oRGd0KSxvLnNldFhZWihuKzEsU2d0LngsU2d0LnksU2d0LnopLG4rPTIpfW4uZ2V0QXR0cmlidXRlKCJwb3NpdGlvbiIpLm5lZWRzVXBkYXRlPSEwLHN1cGVyLnVwZGF0ZU1hdHJpeFdvcmxkKHQpfX0ucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLlNrZWxldG9uSGVscGVyOiB1cGRhdGUoKSBubyBsb25nZXIgbmVlZHMgdG8gYmUgY2FsbGVkLiIpfSxXdXQucHJvdG90eXBlLmV4dHJhY3RVcmxCYXNlPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkxvYWRlcjogLmV4dHJhY3RVcmxCYXNlKCkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIFRIUkVFLkxvYWRlclV0aWxzLmV4dHJhY3RVcmxCYXNlKCkgaW5zdGVhZC4iKSxjbGFzc3tzdGF0aWMgZGVjb2RlVGV4dCh0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFRleHREZWNvZGVyKXJldHVybihuZXcgVGV4dERlY29kZXIpLmRlY29kZSh0KTtsZXQgZT0iIjtmb3IobGV0IG49MCxvPXQubGVuZ3RoO248bztuKyspZSs9U3RyaW5nLmZyb21DaGFyQ29kZSh0W25dKTt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlc2NhcGUoZSkpfWNhdGNoKHQpe3JldHVybiBlfX1zdGF0aWMgZXh0cmFjdFVybEJhc2UodCl7Y29uc3QgZT10Lmxhc3RJbmRleE9mKCIvIik7cmV0dXJuLTE9PT1lPyIuLyI6dC5zdWJzdHIoMCxlKzEpfX0uZXh0cmFjdFVybEJhc2UodCl9LFd1dC5IYW5kbGVycz17YWRkOmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTG9hZGVyOiBIYW5kbGVycy5hZGQoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgTG9hZGluZ01hbmFnZXIuYWRkSGFuZGxlcigpIGluc3RlYWQuIil9LGdldDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkxvYWRlcjogSGFuZGxlcnMuZ2V0KCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIExvYWRpbmdNYW5hZ2VyLmdldEhhbmRsZXIoKSBpbnN0ZWFkLiIpfX0sRHN0LnByb3RvdHlwZS5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQm94MzogLmNlbnRlcigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldENlbnRlcigpLiIpLHRoaXMuZ2V0Q2VudGVyKHQpfSxEc3QucHJvdG90eXBlLmVtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQm94MzogLmVtcHR5KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaXNFbXB0eSgpLiIpLHRoaXMuaXNFbXB0eSgpfSxEc3QucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uQm94PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJveDM6IC5pc0ludGVyc2VjdGlvbkJveCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmludGVyc2VjdHNCb3goKS4iKSx0aGlzLmludGVyc2VjdHNCb3godCl9LERzdC5wcm90b3R5cGUuaXNJbnRlcnNlY3Rpb25TcGhlcmU9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQm94MzogLmlzSW50ZXJzZWN0aW9uU3BoZXJlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaW50ZXJzZWN0c1NwaGVyZSgpLiIpLHRoaXMuaW50ZXJzZWN0c1NwaGVyZSh0KX0sRHN0LnByb3RvdHlwZS5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJveDM6IC5zaXplKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ2V0U2l6ZSgpLiIpLHRoaXMuZ2V0U2l6ZSh0KX0sWnN0LnByb3RvdHlwZS5lbXB0eT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlNwaGVyZTogLmVtcHR5KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaXNFbXB0eSgpLiIpLHRoaXMuaXNFbXB0eSgpfSxxY3QucHJvdG90eXBlLnNldEZyb21NYXRyaXg9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuRnJ1c3R1bTogLnNldEZyb21NYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tUHJvamVjdGlvbk1hdHJpeCgpLiIpLHRoaXMuc2V0RnJvbVByb2plY3Rpb25NYXRyaXgodCl9LGhzdC5wcm90b3R5cGUuZmxhdHRlblRvQXJyYXlPZmZzZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXgzOiAuZmxhdHRlblRvQXJyYXlPZmZzZXQoKSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnRvQXJyYXkoKSBpbnN0ZWFkLiIpLHRoaXMudG9BcnJheSh0LGUpfSxoc3QucHJvdG90eXBlLm11bHRpcGx5VmVjdG9yMz1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXgzOiAubXVsdGlwbHlWZWN0b3IzKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIHZlY3Rvci5hcHBseU1hdHJpeDMoIG1hdHJpeCApIGluc3RlYWQuIiksdC5hcHBseU1hdHJpeDModGhpcyl9LGhzdC5wcm90b3R5cGUubXVsdGlwbHlWZWN0b3IzQXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXgzOiAubXVsdGlwbHlWZWN0b3IzQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxoc3QucHJvdG90eXBlLmFwcGx5VG9CdWZmZXJBdHRyaWJ1dGU9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4MzogLmFwcGx5VG9CdWZmZXJBdHRyaWJ1dGUoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgYXR0cmlidXRlLmFwcGx5TWF0cml4MyggbWF0cml4ICkgaW5zdGVhZC4iKSx0LmFwcGx5TWF0cml4Myh0aGlzKX0saHN0LnByb3RvdHlwZS5hcHBseVRvVmVjdG9yM0FycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4MzogLmFwcGx5VG9WZWN0b3IzQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxoc3QucHJvdG90eXBlLmdldEludmVyc2U9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4MzogLmdldEludmVyc2UoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgbWF0cml4SW52LmNvcHkoIG1hdHJpeCApLmludmVydCgpOyBpbnN0ZWFkLiIpLHRoaXMuY29weSh0KS5pbnZlcnQoKX0sb2x0LnByb3RvdHlwZS5leHRyYWN0UG9zaXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLmV4dHJhY3RQb3NpdGlvbigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmNvcHlQb3NpdGlvbigpLiIpLHRoaXMuY29weVBvc2l0aW9uKHQpfSxvbHQucHJvdG90eXBlLmZsYXR0ZW5Ub0FycmF5T2Zmc2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLmZsYXR0ZW5Ub0FycmF5T2Zmc2V0KCkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC50b0FycmF5KCkgaW5zdGVhZC4iKSx0aGlzLnRvQXJyYXkodCxlKX0sb2x0LnByb3RvdHlwZS5nZXRQb3NpdGlvbj1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5nZXRQb3NpdGlvbigpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBWZWN0b3IzLnNldEZyb21NYXRyaXhQb3NpdGlvbiggbWF0cml4ICkgaW5zdGVhZC4iKSwobmV3IHdzdCkuc2V0RnJvbU1hdHJpeENvbHVtbih0aGlzLDMpfSxvbHQucHJvdG90eXBlLnNldFJvdGF0aW9uRnJvbVF1YXRlcm5pb249ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLnNldFJvdGF0aW9uRnJvbVF1YXRlcm5pb24oKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5tYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbigpLiIpLHRoaXMubWFrZVJvdGF0aW9uRnJvbVF1YXRlcm5pb24odCl9LG9sdC5wcm90b3R5cGUubXVsdGlwbHlUb0FycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHlUb0FycmF5KCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sb2x0LnByb3RvdHlwZS5tdWx0aXBseVZlY3RvcjM9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLm11bHRpcGx5VmVjdG9yMygpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSB2ZWN0b3IuYXBwbHlNYXRyaXg0KCBtYXRyaXggKSBpbnN0ZWFkLiIpLHQuYXBwbHlNYXRyaXg0KHRoaXMpfSxvbHQucHJvdG90eXBlLm11bHRpcGx5VmVjdG9yND1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHlWZWN0b3I0KCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIHZlY3Rvci5hcHBseU1hdHJpeDQoIG1hdHJpeCApIGluc3RlYWQuIiksdC5hcHBseU1hdHJpeDQodGhpcyl9LG9sdC5wcm90b3R5cGUubXVsdGlwbHlWZWN0b3IzQXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAubXVsdGlwbHlWZWN0b3IzQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxvbHQucHJvdG90eXBlLnJvdGF0ZUF4aXM9ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAucm90YXRlQXhpcygpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBWZWN0b3IzLnRyYW5zZm9ybURpcmVjdGlvbiggbWF0cml4ICkgaW5zdGVhZC4iKSx0LnRyYW5zZm9ybURpcmVjdGlvbih0aGlzKX0sb2x0LnByb3RvdHlwZS5jcm9zc1ZlY3Rvcj1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAuY3Jvc3NWZWN0b3IoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgdmVjdG9yLmFwcGx5TWF0cml4NCggbWF0cml4ICkgaW5zdGVhZC4iKSx0LmFwcGx5TWF0cml4NCh0aGlzKX0sb2x0LnByb3RvdHlwZS50cmFuc2xhdGU9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAudHJhbnNsYXRlKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sb2x0LnByb3RvdHlwZS5yb3RhdGVYPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWF0cml4NDogLnJvdGF0ZVgoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxvbHQucHJvdG90eXBlLnJvdGF0ZVk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAucm90YXRlWSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LG9sdC5wcm90b3R5cGUucm90YXRlWj1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5yb3RhdGVaKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sb2x0LnByb3RvdHlwZS5yb3RhdGVCeUF4aXM9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5NYXRyaXg0OiAucm90YXRlQnlBeGlzKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sb2x0LnByb3RvdHlwZS5hcHBseVRvQnVmZmVyQXR0cmlidXRlPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdHJpeDQ6IC5hcHBseVRvQnVmZmVyQXR0cmlidXRlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIGF0dHJpYnV0ZS5hcHBseU1hdHJpeDQoIG1hdHJpeCApIGluc3RlYWQuIiksdC5hcHBseU1hdHJpeDQodGhpcyl9LG9sdC5wcm90b3R5cGUuYXBwbHlUb1ZlY3RvcjNBcnJheT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1hdHJpeDQ6IC5hcHBseVRvVmVjdG9yM0FycmF5KCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sb2x0LnByb3RvdHlwZS5tYWtlRnJ1c3R1bT1mdW5jdGlvbih0LGUsbixvLGksYSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuTWF0cml4NDogLm1ha2VGcnVzdHVtKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC5tYWtlUGVyc3BlY3RpdmUoIGxlZnQsIHJpZ2h0LCB0b3AsIGJvdHRvbSwgbmVhciwgZmFyICkgaW5zdGVhZC4iKSx0aGlzLm1ha2VQZXJzcGVjdGl2ZSh0LGUsbyxuLGksYSl9LG9sdC5wcm90b3R5cGUuZ2V0SW52ZXJzZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5NYXRyaXg0OiAuZ2V0SW52ZXJzZSgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBtYXRyaXhJbnYuY29weSggbWF0cml4ICkuaW52ZXJ0KCk7IGluc3RlYWQuIiksdGhpcy5jb3B5KHQpLmludmVydCgpfSxXY3QucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uTGluZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5QbGFuZTogLmlzSW50ZXJzZWN0aW9uTGluZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmludGVyc2VjdHNMaW5lKCkuIiksdGhpcy5pbnRlcnNlY3RzTGluZSh0KX0sUHN0LnByb3RvdHlwZS5tdWx0aXBseVZlY3RvcjM9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuUXVhdGVybmlvbjogLm11bHRpcGx5VmVjdG9yMygpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBpcyBub3cgdmVjdG9yLmFwcGx5UXVhdGVybmlvbiggcXVhdGVybmlvbiApIGluc3RlYWQuIiksdC5hcHBseVF1YXRlcm5pb24odGhpcyl9LFBzdC5wcm90b3R5cGUuaW52ZXJzZT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlF1YXRlcm5pb246IC5pbnZlcnNlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byBpbnZlcnQoKS4iKSx0aGlzLmludmVydCgpfSxubHQucHJvdG90eXBlLmlzSW50ZXJzZWN0aW9uQm94PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlJheTogLmlzSW50ZXJzZWN0aW9uQm94KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuaW50ZXJzZWN0c0JveCgpLiIpLHRoaXMuaW50ZXJzZWN0c0JveCh0KX0sbmx0LnByb3RvdHlwZS5pc0ludGVyc2VjdGlvblBsYW5lPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlJheTogLmlzSW50ZXJzZWN0aW9uUGxhbmUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5pbnRlcnNlY3RzUGxhbmUoKS4iKSx0aGlzLmludGVyc2VjdHNQbGFuZSh0KX0sbmx0LnByb3RvdHlwZS5pc0ludGVyc2VjdGlvblNwaGVyZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5SYXk6IC5pc0ludGVyc2VjdGlvblNwaGVyZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmludGVyc2VjdHNTcGhlcmUoKS4iKSx0aGlzLmludGVyc2VjdHNTcGhlcmUodCl9LExsdC5wcm90b3R5cGUuYXJlYT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAuYXJlYSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldEFyZWEoKS4iKSx0aGlzLmdldEFyZWEoKX0sTGx0LnByb3RvdHlwZS5iYXJ5Y29vcmRGcm9tUG9pbnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5UcmlhbmdsZTogLmJhcnljb29yZEZyb21Qb2ludCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldEJhcnljb29yZCgpLiIpLHRoaXMuZ2V0QmFyeWNvb3JkKHQsZSl9LExsdC5wcm90b3R5cGUubWlkcG9pbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVHJpYW5nbGU6IC5taWRwb2ludCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldE1pZHBvaW50KCkuIiksdGhpcy5nZXRNaWRwb2ludCh0KX0sTGx0LnByb3RvdHlwZW5vcm1hbD1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5UcmlhbmdsZTogLm5vcm1hbCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldE5vcm1hbCgpLiIpLHRoaXMuZ2V0Tm9ybWFsKHQpfSxMbHQucHJvdG90eXBlLnBsYW5lPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlRyaWFuZ2xlOiAucGxhbmUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5nZXRQbGFuZSgpLiIpLHRoaXMuZ2V0UGxhbmUodCl9LExsdC5iYXJ5Y29vcmRGcm9tUG9pbnQ9ZnVuY3Rpb24odCxlLG4sbyxpKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5UcmlhbmdsZTogLmJhcnljb29yZEZyb21Qb2ludCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldEJhcnljb29yZCgpLiIpLExsdC5nZXRCYXJ5Y29vcmQodCxlLG4sbyxpKX0sTGx0Lm5vcm1hbD1mdW5jdGlvbih0LGUsbixvKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5UcmlhbmdsZTogLm5vcm1hbCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdldE5vcm1hbCgpLiIpLExsdC5nZXROb3JtYWwodCxlLG4sbyl9LFF1dC5wcm90b3R5cGUuZXh0cmFjdEFsbFBvaW50cz1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5TaGFwZTogLmV4dHJhY3RBbGxQb2ludHMoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLmV4dHJhY3RQb2ludHMoKSBpbnN0ZWFkLiIpLHRoaXMuZXh0cmFjdFBvaW50cyh0KX0sUXV0LnByb3RvdHlwZS5leHRydWRlPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlNoYXBlOiAuZXh0cnVkZSgpIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBFeHRydWRlR2VvbWV0cnkoKSBpbnN0ZWFkLiIpLG5ldyB4dXQodGhpcyx0KX0sUXV0LnByb3RvdHlwZS5tYWtlR2VvbWV0cnk9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuU2hhcGU6IC5tYWtlR2VvbWV0cnkoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgU2hhcGVHZW9tZXRyeSgpIGluc3RlYWQuIiksbmV3IFB1dCh0aGlzLHQpfSxnc3QucHJvdG90eXBlLmZyb21BdHRyaWJ1dGU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjI6IC5mcm9tQXR0cmlidXRlKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuZnJvbUJ1ZmZlckF0dHJpYnV0ZSgpLiIpLHRoaXMuZnJvbUJ1ZmZlckF0dHJpYnV0ZSh0LGUsbil9LGdzdC5wcm90b3R5cGUuZGlzdGFuY2VUb01hbmhhdHRhbj1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IyOiAuZGlzdGFuY2VUb01hbmhhdHRhbigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLm1hbmhhdHRhbkRpc3RhbmNlVG8oKS4iKSx0aGlzLm1hbmhhdHRhbkRpc3RhbmNlVG8odCl9LGdzdC5wcm90b3R5cGUubGVuZ3RoTWFuaGF0dGFuPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMjogLmxlbmd0aE1hbmhhdHRhbigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLm1hbmhhdHRhbkxlbmd0aCgpLiIpLHRoaXMubWFuaGF0dGFuTGVuZ3RoKCl9LHdzdC5wcm90b3R5cGUuc2V0RXVsZXJGcm9tUm90YXRpb25NYXRyaXg9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5WZWN0b3IzOiAuc2V0RXVsZXJGcm9tUm90YXRpb25NYXRyaXgoKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgRXVsZXIuc2V0RnJvbVJvdGF0aW9uTWF0cml4KCkgaW5zdGVhZC4iKX0sd3N0LnByb3RvdHlwZS5zZXRFdWxlckZyb21RdWF0ZXJuaW9uPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuVmVjdG9yMzogLnNldEV1bGVyRnJvbVF1YXRlcm5pb24oKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgRXVsZXIuc2V0RnJvbVF1YXRlcm5pb24oKSBpbnN0ZWFkLiIpfSx3c3QucHJvdG90eXBlLmdldFBvc2l0aW9uRnJvbU1hdHJpeD1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAuZ2V0UG9zaXRpb25Gcm9tTWF0cml4KCkgaGFzIGJlZW4gcmVuYW1lZCB0byAuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCkuIiksdGhpcy5zZXRGcm9tTWF0cml4UG9zaXRpb24odCl9LHdzdC5wcm90b3R5cGUuZ2V0U2NhbGVGcm9tTWF0cml4PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5nZXRTY2FsZUZyb21NYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tTWF0cml4U2NhbGUoKS4iKSx0aGlzLnNldEZyb21NYXRyaXhTY2FsZSh0KX0sd3N0LnByb3RvdHlwZS5nZXRDb2x1bW5Gcm9tTWF0cml4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmdldENvbHVtbkZyb21NYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRGcm9tTWF0cml4Q29sdW1uKCkuIiksdGhpcy5zZXRGcm9tTWF0cml4Q29sdW1uKGUsdCl9LHdzdC5wcm90b3R5cGUuYXBwbHlQcm9qZWN0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5hcHBseVByb2plY3Rpb24oKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLmFwcGx5TWF0cml4NCggbSApIGluc3RlYWQuIiksdGhpcy5hcHBseU1hdHJpeDQodCl9LHdzdC5wcm90b3R5cGUuZnJvbUF0dHJpYnV0ZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuVmVjdG9yMzogLmZyb21BdHRyaWJ1dGUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5mcm9tQnVmZmVyQXR0cmlidXRlKCkuIiksdGhpcy5mcm9tQnVmZmVyQXR0cmlidXRlKHQsZSxuKX0sd3N0LnByb3RvdHlwZS5kaXN0YW5jZVRvTWFuaGF0dGFuPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjM6IC5kaXN0YW5jZVRvTWFuaGF0dGFuKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAubWFuaGF0dGFuRGlzdGFuY2VUbygpLiIpLHRoaXMubWFuaGF0dGFuRGlzdGFuY2VUbyh0KX0sd3N0LnByb3RvdHlwZS5sZW5ndGhNYW5oYXR0YW49ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3IzOiAubGVuZ3RoTWFuaGF0dGFuKCkgaGFzIGJlZW4gcmVuYW1lZCB0byAubWFuaGF0dGFuTGVuZ3RoKCkuIiksdGhpcy5tYW5oYXR0YW5MZW5ndGgoKX0sdnN0LnByb3RvdHlwZS5mcm9tQXR0cmlidXRlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5WZWN0b3I0OiAuZnJvbUF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmZyb21CdWZmZXJBdHRyaWJ1dGUoKS4iKSx0aGlzLmZyb21CdWZmZXJBdHRyaWJ1dGUodCxlLG4pfSx2c3QucHJvdG90eXBlLmxlbmd0aE1hbmhhdHRhbj1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLlZlY3RvcjQ6IC5sZW5ndGhNYW5oYXR0YW4oKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5tYW5oYXR0YW5MZW5ndGgoKS4iKSx0aGlzLm1hbmhhdHRhbkxlbmd0aCgpfSxTbHQucHJvdG90eXBlLmdldENoaWxkQnlOYW1lPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdDNEOiAuZ2V0Q2hpbGRCeU5hbWUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5nZXRPYmplY3RCeU5hbWUoKS4iKSx0aGlzLmdldE9iamVjdEJ5TmFtZSh0KX0sU2x0LnByb3RvdHlwZS5yZW5kZXJEZXB0aD1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC5yZW5kZXJEZXB0aCBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLnJlbmRlck9yZGVyLCBpbnN0ZWFkLiIpfSxTbHQucHJvdG90eXBlLnRyYW5zbGF0ZT1mdW5jdGlvbih0LGUpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdDNEOiAudHJhbnNsYXRlKCkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC50cmFuc2xhdGVPbkF4aXMoIGF4aXMsIGRpc3RhbmNlICkgaW5zdGVhZC4iKSx0aGlzLnRyYW5zbGF0ZU9uQXhpcyhlLHQpfSxTbHQucHJvdG90eXBlLmdldFdvcmxkUm90YXRpb249ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5PYmplY3QzRDogLmdldFdvcmxkUm90YXRpb24oKSBoYXMgYmVlbiByZW1vdmVkLiBVc2UgVEhSRUUuT2JqZWN0M0QuZ2V0V29ybGRRdWF0ZXJuaW9uKCB0YXJnZXQgKSBpbnN0ZWFkLiIpfSxTbHQucHJvdG90eXBlLmFwcGx5TWF0cml4PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk9iamVjdDNEOiAuYXBwbHlNYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5hcHBseU1hdHJpeDQoKS4iKSx0aGlzLmFwcGx5TWF0cml4NCh0KX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoU2x0LnByb3RvdHlwZSx7ZXVsZXJPcmRlcjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC5ldWxlck9yZGVyIGlzIG5vdyAucm90YXRpb24ub3JkZXIuIiksdGhpcy5yb3RhdGlvbi5vcmRlcn0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuT2JqZWN0M0Q6IC5ldWxlck9yZGVyIGlzIG5vdyAucm90YXRpb24ub3JkZXIuIiksdGhpcy5yb3RhdGlvbi5vcmRlcj10fX0sdXNlUXVhdGVybmlvbjp7Z2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5PYmplY3QzRDogLnVzZVF1YXRlcm5pb24gaGFzIGJlZW4gcmVtb3ZlZC4gVGhlIGxpYnJhcnkgbm93IHVzZXMgcXVhdGVybmlvbnMgYnkgZGVmYXVsdC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5PYmplY3QzRDogLnVzZVF1YXRlcm5pb24gaGFzIGJlZW4gcmVtb3ZlZC4gVGhlIGxpYnJhcnkgbm93IHVzZXMgcXVhdGVybmlvbnMgYnkgZGVmYXVsdC4iKX19fSksU2N0LnByb3RvdHlwZS5zZXREcmF3TW9kZT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLk1lc2g6IC5zZXREcmF3TW9kZSgpIGhhcyBiZWVuIHJlbW92ZWQuIFRoZSByZW5kZXJlciBub3cgYWx3YXlzIGFzc3VtZXMgVEhSRUUuVHJpYW5nbGVzRHJhd01vZGUuIFRyYW5zZm9ybSB5b3VyIGdlb21ldHJ5IHZpYSBCdWZmZXJHZW9tZXRyeVV0aWxzLnRvVHJpYW5nbGVzRHJhd01vZGUoKSBpZiBuZWNlc3NhcnkuIil9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFNjdC5wcm90b3R5cGUse2RyYXdNb2RlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS5lcnJvcigiVEhSRUUuTWVzaDogLmRyYXdNb2RlIGhhcyBiZWVuIHJlbW92ZWQuIFRoZSByZW5kZXJlciBub3cgYWx3YXlzIGFzc3VtZXMgVEhSRUUuVHJpYW5nbGVzRHJhd01vZGUuIiksMH0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuTWVzaDogLmRyYXdNb2RlIGhhcyBiZWVuIHJlbW92ZWQuIFRoZSByZW5kZXJlciBub3cgYWx3YXlzIGFzc3VtZXMgVEhSRUUuVHJpYW5nbGVzRHJhd01vZGUuIFRyYW5zZm9ybSB5b3VyIGdlb21ldHJ5IHZpYSBCdWZmZXJHZW9tZXRyeVV0aWxzLnRvVHJpYW5nbGVzRHJhd01vZGUoKSBpZiBuZWNlc3NhcnkuIil9fX0pLGxmdC5wcm90b3R5cGUuaW5pdEJvbmVzPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuU2tpbm5lZE1lc2g6IGluaXRCb25lcygpIGhhcyBiZWVuIHJlbW92ZWQuIil9LEljdC5wcm90b3R5cGUuc2V0TGVucz1mdW5jdGlvbih0LGUpe2NvbnNvbGUud2FybigiVEhSRUUuUGVyc3BlY3RpdmVDYW1lcmEuc2V0TGVucyBpcyBkZXByZWNhdGVkLiBVc2UgLnNldEZvY2FsTGVuZ3RoIGFuZCAuZmlsbUdhdWdlIGZvciBhIHBob3RvZ3JhcGhpYyBzZXR1cC4iKSx2b2lkIDAhPT1lJiYodGhpcy5maWxtR2F1Z2U9ZSksdGhpcy5zZXRGb2NhbExlbmd0aCh0KX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoJHV0LnByb3RvdHlwZSx7b25seVNoYWRvdzp7c2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLm9ubHlTaGFkb3cgaGFzIGJlZW4gcmVtb3ZlZC4iKX19LHNoYWRvd0NhbWVyYUZvdjp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFGb3YgaXMgbm93IC5zaGFkb3cuY2FtZXJhLmZvdi4iKSx0aGlzLnNoYWRvdy5jYW1lcmEuZm92PXR9fSxzaGFkb3dDYW1lcmFMZWZ0OntzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYUxlZnQgaXMgbm93IC5zaGFkb3cuY2FtZXJhLmxlZnQuIiksdGhpcy5zaGFkb3cuY2FtZXJhLmxlZnQ9dH19LHNoYWRvd0NhbWVyYVJpZ2h0OntzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYVJpZ2h0IGlzIG5vdyAuc2hhZG93LmNhbWVyYS5yaWdodC4iKSx0aGlzLnNoYWRvdy5jYW1lcmEucmlnaHQ9dH19LHNoYWRvd0NhbWVyYVRvcDp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFUb3AgaXMgbm93IC5zaGFkb3cuY2FtZXJhLnRvcC4iKSx0aGlzLnNoYWRvdy5jYW1lcmEudG9wPXR9fSxzaGFkb3dDYW1lcmFCb3R0b206e3NldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93Q2FtZXJhQm90dG9tIGlzIG5vdyAuc2hhZG93LmNhbWVyYS5ib3R0b20uIiksdGhpcy5zaGFkb3cuY2FtZXJhLmJvdHRvbT10fX0sc2hhZG93Q2FtZXJhTmVhcjp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dDYW1lcmFOZWFyIGlzIG5vdyAuc2hhZG93LmNhbWVyYS5uZWFyLiIpLHRoaXMuc2hhZG93LmNhbWVyYS5uZWFyPXR9fSxzaGFkb3dDYW1lcmFGYXI6e3NldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93Q2FtZXJhRmFyIGlzIG5vdyAuc2hhZG93LmNhbWVyYS5mYXIuIiksdGhpcy5zaGFkb3cuY2FtZXJhLmZhcj10fX0sc2hhZG93Q2FtZXJhVmlzaWJsZTp7c2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5MaWdodDogLnNoYWRvd0NhbWVyYVZpc2libGUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIG5ldyBUSFJFRS5DYW1lcmFIZWxwZXIoIGxpZ2h0LnNoYWRvdy5jYW1lcmEgKSBpbnN0ZWFkLiIpfX0sc2hhZG93Qmlhczp7c2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dCaWFzIGlzIG5vdyAuc2hhZG93LmJpYXMuIiksdGhpcy5zaGFkb3cuYmlhcz10fX0sc2hhZG93RGFya25lc3M6e3NldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuTGlnaHQ6IC5zaGFkb3dEYXJrbmVzcyBoYXMgYmVlbiByZW1vdmVkLiIpfX0sc2hhZG93TWFwV2lkdGg6e3NldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93TWFwV2lkdGggaXMgbm93IC5zaGFkb3cubWFwU2l6ZS53aWR0aC4iKSx0aGlzLnNoYWRvdy5tYXBTaXplLndpZHRoPXR9fSxzaGFkb3dNYXBIZWlnaHQ6e3NldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkxpZ2h0OiAuc2hhZG93TWFwSGVpZ2h0IGlzIG5vdyAuc2hhZG93Lm1hcFNpemUuaGVpZ2h0LiIpLHRoaXMuc2hhZG93Lm1hcFNpemUuaGVpZ2h0PXR9fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFFsdC5wcm90b3R5cGUse2xlbmd0aDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAubGVuZ3RoIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSAuY291bnQgaW5zdGVhZC4iKSx0aGlzLmFycmF5Lmxlbmd0aH19LGR5bmFtaWM6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZTogLmR5bmFtaWMgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIC51c2FnZSBpbnN0ZWFkLiIpLHRoaXMudXNhZ2U9PT1pc3R9LHNldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAuZHluYW1pYyBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnVzYWdlIGluc3RlYWQuIiksdGhpcy5zZXRVc2FnZShpc3QpfX19KSxRbHQucHJvdG90eXBlLnNldER5bmFtaWM9ZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAuc2V0RHluYW1pYygpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSAuc2V0VXNhZ2UoKSBpbnN0ZWFkLiIpLHRoaXMuc2V0VXNhZ2UoITA9PT10P2lzdDpvc3QpLHRoaXN9LFFsdC5wcm90b3R5cGUuY29weUluZGljZXNBcnJheT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkJ1ZmZlckF0dHJpYnV0ZTogLmNvcHlJbmRpY2VzQXJyYXkoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxRbHQucHJvdG90eXBlLnNldEFycmF5PWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuQnVmZmVyQXR0cmlidXRlOiAuc2V0QXJyYXkgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIEJ1ZmZlckdlb21ldHJ5IC5zZXRBdHRyaWJ1dGUgdG8gcmVwbGFjZS9yZXNpemUgYXR0cmlidXRlIGJ1ZmZlcnMiKX0sZGN0LnByb3RvdHlwZS5hZGRJbmRleD1mdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuYWRkSW5kZXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRJbmRleCgpLiIpLHRoaXMuc2V0SW5kZXgodCl9LGRjdC5wcm90b3R5cGUuYWRkQXR0cmlidXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5hZGRBdHRyaWJ1dGUoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5zZXRBdHRyaWJ1dGUoKS4iKSxlJiZlLmlzQnVmZmVyQXR0cmlidXRlfHxlJiZlLmlzSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGU/ImluZGV4Ij09PXQ/KGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnkuYWRkQXR0cmlidXRlOiBVc2UgLnNldEluZGV4KCkgZm9yIGluZGV4IGF0dHJpYnV0ZS4iKSx0aGlzLnNldEluZGV4KGUpLHRoaXMpOnRoaXMuc2V0QXR0cmlidXRlKHQsZSk6KGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5hZGRBdHRyaWJ1dGUoKSBub3cgZXhwZWN0cyAoIG5hbWUsIGF0dHJpYnV0ZSApLiIpLHRoaXMuc2V0QXR0cmlidXRlKHQsbmV3IFFsdChhcmd1bWVudHNbMV0sYXJndW1lbnRzWzJdKSkpfSxkY3QucHJvdG90eXBlLmFkZERyYXdDYWxsPWZ1bmN0aW9uKHQsZSxuKXt2b2lkIDAhPT1uJiZjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuYWRkRHJhd0NhbGwoKSBubyBsb25nZXIgc3VwcG9ydHMgaW5kZXhPZmZzZXQuIiksY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLmFkZERyYXdDYWxsKCkgaXMgbm93IC5hZGRHcm91cCgpLiIpLHRoaXMuYWRkR3JvdXAodCxlKX0sZGN0LnByb3RvdHlwZS5jbGVhckRyYXdDYWxscz1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5jbGVhckRyYXdDYWxscygpIGlzIG5vdyAuY2xlYXJHcm91cHMoKS4iKSx0aGlzLmNsZWFyR3JvdXBzKCl9LGRjdC5wcm90b3R5cGUuY29tcHV0ZU9mZnNldHM9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuY29tcHV0ZU9mZnNldHMoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxkY3QucHJvdG90eXBlLnJlbW92ZUF0dHJpYnV0ZT1mdW5jdGlvbih0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5CdWZmZXJHZW9tZXRyeTogLnJlbW92ZUF0dHJpYnV0ZSgpIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmRlbGV0ZUF0dHJpYnV0ZSgpLiIpLHRoaXMuZGVsZXRlQXR0cmlidXRlKHQpfSxkY3QucHJvdG90eXBlLmFwcGx5TWF0cml4PWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkJ1ZmZlckdlb21ldHJ5OiAuYXBwbHlNYXRyaXgoKSBoYXMgYmVlbiByZW5hbWVkIHRvIC5hcHBseU1hdHJpeDQoKS4iKSx0aGlzLmFwcGx5TWF0cml4NCh0KX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZGN0LnByb3RvdHlwZSx7ZHJhd2NhbGxzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS5lcnJvcigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5kcmF3Y2FsbHMgaGFzIGJlZW4gcmVuYW1lZCB0byAuZ3JvdXBzLiIpLHRoaXMuZ3JvdXBzfX0sb2Zmc2V0czp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQnVmZmVyR2VvbWV0cnk6IC5vZmZzZXRzIGhhcyBiZWVuIHJlbmFtZWQgdG8gLmdyb3Vwcy4iKSx0aGlzLmdyb3Vwc319fSksTG10LnByb3RvdHlwZS5zZXREeW5hbWljPWZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLkludGVybGVhdmVkQnVmZmVyOiAuc2V0RHluYW1pYygpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSAuc2V0VXNhZ2UoKSBpbnN0ZWFkLiIpLHRoaXMuc2V0VXNhZ2UoITA9PT10P2lzdDpvc3QpLHRoaXN9LExtdC5wcm90b3R5cGUuc2V0QXJyYXk9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5JbnRlcmxlYXZlZEJ1ZmZlcjogLnNldEFycmF5IGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBCdWZmZXJHZW9tZXRyeSAuc2V0QXR0cmlidXRlIHRvIHJlcGxhY2UvcmVzaXplIGF0dHJpYnV0ZSBidWZmZXJzIil9LHh1dC5wcm90b3R5cGUuZ2V0QXJyYXlzPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuRXh0cnVkZUdlb21ldHJ5OiAuZ2V0QXJyYXlzKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0seHV0LnByb3RvdHlwZS5hZGRTaGFwZUxpc3Q9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5FeHRydWRlR2VvbWV0cnk6IC5hZGRTaGFwZUxpc3QoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSx4dXQucHJvdG90eXBlLmFkZFNoYXBlPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcigiVEhSRUUuRXh0cnVkZUdlb21ldHJ5OiAuYWRkU2hhcGUoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxGbXQucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5TY2VuZTogLmRpc3Bvc2UoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhWbHQucHJvdG90eXBlLHt3cmFwQXJvdW5kOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAud3JhcEFyb3VuZCBoYXMgYmVlbiByZW1vdmVkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAud3JhcEFyb3VuZCBoYXMgYmVlbiByZW1vdmVkLiIpfX0sb3ZlcmRyYXc6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuTWF0ZXJpYWw6IC5vdmVyZHJhdyBoYXMgYmVlbiByZW1vdmVkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAub3ZlcmRyYXcgaGFzIGJlZW4gcmVtb3ZlZC4iKX19LHdyYXBSR0I6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLk1hdGVyaWFsOiAud3JhcFJHQiBoYXMgYmVlbiByZW1vdmVkLiIpLG5ldyBabHR9fSxzaGFkaW5nOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS4iK3RoaXMudHlwZSsiOiAuc2hhZGluZyBoYXMgYmVlbiByZW1vdmVkLiBVc2UgdGhlIGJvb2xlYW4gLmZsYXRTaGFkaW5nIGluc3RlYWQuIil9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6IC5zaGFkaW5nIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSB0aGUgYm9vbGVhbiAuZmxhdFNoYWRpbmcgaW5zdGVhZC4iKSx0aGlzLmZsYXRTaGFkaW5nPTE9PT10fX0sc3RlbmNpbE1hc2s6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLiIrdGhpcy50eXBlKyI6IC5zdGVuY2lsTWFzayBoYXMgYmVlbiByZW1vdmVkLiBVc2UgLnN0ZW5jaWxGdW5jTWFzayBpbnN0ZWFkLiIpLHRoaXMuc3RlbmNpbEZ1bmNNYXNrfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS4iK3RoaXMudHlwZSsiOiAuc3RlbmNpbE1hc2sgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC5zdGVuY2lsRnVuY01hc2sgaW5zdGVhZC4iKSx0aGlzLnN0ZW5jaWxGdW5jTWFzaz10fX0sdmVydGV4VGFuZ2VudHM6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuIit0aGlzLnR5cGUrIjogLnZlcnRleFRhbmdlbnRzIGhhcyBiZWVuIHJlbW92ZWQuIil9LHNldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuIit0aGlzLnR5cGUrIjogLnZlcnRleFRhbmdlbnRzIGhhcyBiZWVuIHJlbW92ZWQuIil9fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKE5jdC5wcm90b3R5cGUse2Rlcml2YXRpdmVzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5TaGFkZXJNYXRlcmlhbDogLmRlcml2YXRpdmVzIGhhcyBiZWVuIG1vdmVkIHRvIC5leHRlbnNpb25zLmRlcml2YXRpdmVzLiIpLHRoaXMuZXh0ZW5zaW9ucy5kZXJpdmF0aXZlc30sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuIFNoYWRlck1hdGVyaWFsOiAuZGVyaXZhdGl2ZXMgaGFzIGJlZW4gbW92ZWQgdG8gLmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXMuIiksdGhpcy5leHRlbnNpb25zLmRlcml2YXRpdmVzPXR9fX0pLEhtdC5wcm90b3R5cGUuY2xlYXJUYXJnZXQ9ZnVuY3Rpb24odCxlLG4sbyl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuY2xlYXJUYXJnZXQoKSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgLnNldFJlbmRlclRhcmdldCgpIGFuZCAuY2xlYXIoKSBpbnN0ZWFkLiIpLHRoaXMuc2V0UmVuZGVyVGFyZ2V0KHQpLHRoaXMuY2xlYXIoZSxuLG8pfSxIbXQucHJvdG90eXBlLmFuaW1hdGU9ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuYW5pbWF0ZSgpIGlzIG5vdyAuc2V0QW5pbWF0aW9uTG9vcCgpLiIpLHRoaXMuc2V0QW5pbWF0aW9uTG9vcCh0KX0sSG10LnByb3RvdHlwZS5nZXRDdXJyZW50UmVuZGVyVGFyZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmdldEN1cnJlbnRSZW5kZXJUYXJnZXQoKSBpcyBub3cgLmdldFJlbmRlclRhcmdldCgpLiIpLHRoaXMuZ2V0UmVuZGVyVGFyZ2V0KCl9LEhtdC5wcm90b3R5cGUuZ2V0TWF4QW5pc290cm9weT1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nZXRNYXhBbmlzb3Ryb3B5KCkgaXMgbm93IC5jYXBhYmlsaXRpZXMuZ2V0TWF4QW5pc290cm9weSgpLiIpLHRoaXMuY2FwYWJpbGl0aWVzLmdldE1heEFuaXNvdHJvcHkoKX0sSG10LnByb3RvdHlwZS5nZXRQcmVjaXNpb249ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2V0UHJlY2lzaW9uKCkgaXMgbm93IC5jYXBhYmlsaXRpZXMucHJlY2lzaW9uLiIpLHRoaXMuY2FwYWJpbGl0aWVzLnByZWNpc2lvbn0sSG10LnByb3RvdHlwZS5yZXNldEdMU3RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAucmVzZXRHTFN0YXRlKCkgaXMgbm93IC5zdGF0ZS5yZXNldCgpLiIpLHRoaXMuc3RhdGUucmVzZXQoKX0sSG10LnByb3RvdHlwZS5zdXBwb3J0c0Zsb2F0VGV4dHVyZXM9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc3VwcG9ydHNGbG9hdFRleHR1cmVzKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ09FU190ZXh0dXJlX2Zsb2F0JyApLiIpLHRoaXMuZXh0ZW5zaW9ucy5nZXQoIk9FU190ZXh0dXJlX2Zsb2F0Iil9LEhtdC5wcm90b3R5cGUuc3VwcG9ydHNIYWxmRmxvYXRUZXh0dXJlcz1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zdXBwb3J0c0hhbGZGbG9hdFRleHR1cmVzKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ09FU190ZXh0dXJlX2hhbGZfZmxvYXQnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpfSxIbXQucHJvdG90eXBlLnN1cHBvcnRzU3RhbmRhcmREZXJpdmF0aXZlcz1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zdXBwb3J0c1N0YW5kYXJkRGVyaXZhdGl2ZXMoKSBpcyBub3cgLmV4dGVuc2lvbnMuZ2V0KCAnT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzJyApLiIpLHRoaXMuZXh0ZW5zaW9ucy5nZXQoIk9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpfSxIbXQucHJvdG90eXBlLnN1cHBvcnRzQ29tcHJlc3NlZFRleHR1cmVTM1RDPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzQ29tcHJlc3NlZFRleHR1cmVTM1RDKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjJyApLiIpLHRoaXMuZXh0ZW5zaW9ucy5nZXQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIil9LEhtdC5wcm90b3R5cGUuc3VwcG9ydHNDb21wcmVzc2VkVGV4dHVyZVBWUlRDPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzQ29tcHJlc3NlZFRleHR1cmVQVlJUQygpIGlzIG5vdyAuZXh0ZW5zaW9ucy5nZXQoICdXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIil9LEhtdC5wcm90b3R5cGUuc3VwcG9ydHNCbGVuZE1pbk1heD1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zdXBwb3J0c0JsZW5kTWluTWF4KCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ0VYVF9ibGVuZF9taW5tYXgnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiRVhUX2JsZW5kX21pbm1heCIpfSxIbXQucHJvdG90eXBlLnN1cHBvcnRzVmVydGV4VGV4dHVyZXM9ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc3VwcG9ydHNWZXJ0ZXhUZXh0dXJlcygpIGlzIG5vdyAuY2FwYWJpbGl0aWVzLnZlcnRleFRleHR1cmVzLiIpLHRoaXMuY2FwYWJpbGl0aWVzLnZlcnRleFRleHR1cmVzfSxIbXQucHJvdG90eXBlLnN1cHBvcnRzSW5zdGFuY2VkQXJyYXlzPWZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnN1cHBvcnRzSW5zdGFuY2VkQXJyYXlzKCkgaXMgbm93IC5leHRlbnNpb25zLmdldCggJ0FOR0xFX2luc3RhbmNlZF9hcnJheXMnICkuIiksdGhpcy5leHRlbnNpb25zLmdldCgiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpfSxIbXQucHJvdG90eXBlLmVuYWJsZVNjaXNzb3JUZXN0PWZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmVuYWJsZVNjaXNzb3JUZXN0KCkgaXMgbm93IC5zZXRTY2lzc29yVGVzdCgpLiIpLHRoaXMuc2V0U2Npc3NvclRlc3QodCl9LEhtdC5wcm90b3R5cGUuaW5pdE1hdGVyaWFsPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuaW5pdE1hdGVyaWFsKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sSG10LnByb3RvdHlwZS5hZGRQcmVQbHVnaW49ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5hZGRQcmVQbHVnaW4oKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxIbXQucHJvdG90eXBlLmFkZFBvc3RQbHVnaW49ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5hZGRQb3N0UGx1Z2luKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sSG10LnByb3RvdHlwZS51cGRhdGVTaGFkb3dNYXA9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC51cGRhdGVTaGFkb3dNYXAoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxIbXQucHJvdG90eXBlLnNldEZhY2VDdWxsaW5nPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2V0RmFjZUN1bGxpbmcoKSBoYXMgYmVlbiByZW1vdmVkLiIpfSxIbXQucHJvdG90eXBlLmFsbG9jVGV4dHVyZVVuaXQ9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5hbGxvY1RleHR1cmVVbml0KCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sSG10LnByb3RvdHlwZS5zZXRUZXh0dXJlPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2V0VGV4dHVyZSgpIGhhcyBiZWVuIHJlbW92ZWQuIil9LEhtdC5wcm90b3R5cGUuc2V0VGV4dHVyZTJEPWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2V0VGV4dHVyZTJEKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sSG10LnByb3RvdHlwZS5zZXRUZXh0dXJlQ3ViZT1mdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNldFRleHR1cmVDdWJlKCkgaGFzIGJlZW4gcmVtb3ZlZC4iKX0sSG10LnByb3RvdHlwZS5nZXRBY3RpdmVNaXBNYXBMZXZlbD1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nZXRBY3RpdmVNaXBNYXBMZXZlbCgpIGlzIG5vdyAuZ2V0QWN0aXZlTWlwbWFwTGV2ZWwoKS4iKSx0aGlzLmdldEFjdGl2ZU1pcG1hcExldmVsKCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEhtdC5wcm90b3R5cGUse3NoYWRvd01hcEVuYWJsZWQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYWRvd01hcC5lbmFibGVkfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwRW5hYmxlZCBpcyBub3cgLnNoYWRvd01hcC5lbmFibGVkLiIpLHRoaXMuc2hhZG93TWFwLmVuYWJsZWQ9dH19LHNoYWRvd01hcFR5cGU6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYWRvd01hcC50eXBlfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwVHlwZSBpcyBub3cgLnNoYWRvd01hcC50eXBlLiIpLHRoaXMuc2hhZG93TWFwLnR5cGU9dH19LHNoYWRvd01hcEN1bGxGYWNlOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXBDdWxsRmFjZSBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXBDdWxsRmFjZSBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfX0sY29udGV4dDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmNvbnRleHQgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIC5nZXRDb250ZXh0KCkgaW5zdGVhZC4iKSx0aGlzLmdldENvbnRleHQoKX19LHZyOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAudnIgaGFzIGJlZW4gcmVuYW1lZCB0byAueHIiKSx0aGlzLnhyfX0sZ2FtbWFJbnB1dDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLmdhbW1hSW5wdXQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IHRoZSBlbmNvZGluZyBmb3IgdGV4dHVyZXMgdmlhIFRleHR1cmUuZW5jb2RpbmcgaW5zdGVhZC4iKSwhMX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2FtbWFJbnB1dCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgdGhlIGVuY29kaW5nIGZvciB0ZXh0dXJlcyB2aWEgVGV4dHVyZS5lbmNvZGluZyBpbnN0ZWFkLiIpfX0sZ2FtbWFPdXRwdXQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5nYW1tYU91dHB1dCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgV2ViR0xSZW5kZXJlci5vdXRwdXRFbmNvZGluZyBpbnN0ZWFkLiIpLCExfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuZ2FtbWFPdXRwdXQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IFdlYkdMUmVuZGVyZXIub3V0cHV0RW5jb2RpbmcgaW5zdGVhZC4iKSx0aGlzLm91dHB1dEVuY29kaW5nPSEwPT09dD8kcnQ6UXJ0fX0sdG9uZU1hcHBpbmdXaGl0ZVBvaW50OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAudG9uZU1hcHBpbmdXaGl0ZVBvaW50IGhhcyBiZWVuIHJlbW92ZWQuIiksMX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAudG9uZU1hcHBpbmdXaGl0ZVBvaW50IGhhcyBiZWVuIHJlbW92ZWQuIil9fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGttdC5wcm90b3R5cGUse2N1bGxGYWNlOntnZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXAuY3VsbEZhY2UgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwLmN1bGxGYWNlIGhhcyBiZWVuIHJlbW92ZWQuIFNldCBNYXRlcmlhbC5zaGFkb3dTaWRlIGluc3RlYWQuIil9fSxyZW5kZXJSZXZlcnNlU2lkZWQ6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNoYWRvd01hcC5yZW5kZXJSZXZlcnNlU2lkZWQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX0sc2V0OmZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlcmVyOiAuc2hhZG93TWFwLnJlbmRlclJldmVyc2VTaWRlZCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfX0scmVuZGVyU2luZ2xlU2lkZWQ6e2dldDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJlcjogLnNoYWRvd01hcC5yZW5kZXJTaW5nbGVTaWRlZCBoYXMgYmVlbiByZW1vdmVkLiBTZXQgTWF0ZXJpYWwuc2hhZG93U2lkZSBpbnN0ZWFkLiIpfSxzZXQ6ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyZXI6IC5zaGFkb3dNYXAucmVuZGVyU2luZ2xlU2lkZWQgaGFzIGJlZW4gcmVtb3ZlZC4gU2V0IE1hdGVyaWFsLnNoYWRvd1NpZGUgaW5zdGVhZC4iKX19fSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoeHN0LnByb3RvdHlwZSx7d3JhcFM6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAud3JhcFMgaXMgbm93IC50ZXh0dXJlLndyYXBTLiIpLHRoaXMudGV4dHVyZS53cmFwU30sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC53cmFwUyBpcyBub3cgLnRleHR1cmUud3JhcFMuIiksdGhpcy50ZXh0dXJlLndyYXBTPXR9fSx3cmFwVDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC53cmFwVCBpcyBub3cgLnRleHR1cmUud3JhcFQuIiksdGhpcy50ZXh0dXJlLndyYXBUfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLndyYXBUIGlzIG5vdyAudGV4dHVyZS53cmFwVC4iKSx0aGlzLnRleHR1cmUud3JhcFQ9dH19LG1hZ0ZpbHRlcjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5tYWdGaWx0ZXIgaXMgbm93IC50ZXh0dXJlLm1hZ0ZpbHRlci4iKSx0aGlzLnRleHR1cmUubWFnRmlsdGVyfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLm1hZ0ZpbHRlciBpcyBub3cgLnRleHR1cmUubWFnRmlsdGVyLiIpLHRoaXMudGV4dHVyZS5tYWdGaWx0ZXI9dH19LG1pbkZpbHRlcjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5taW5GaWx0ZXIgaXMgbm93IC50ZXh0dXJlLm1pbkZpbHRlci4iKSx0aGlzLnRleHR1cmUubWluRmlsdGVyfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLm1pbkZpbHRlciBpcyBub3cgLnRleHR1cmUubWluRmlsdGVyLiIpLHRoaXMudGV4dHVyZS5taW5GaWx0ZXI9dH19LGFuaXNvdHJvcHk6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAuYW5pc290cm9weSBpcyBub3cgLnRleHR1cmUuYW5pc290cm9weS4iKSx0aGlzLnRleHR1cmUuYW5pc290cm9weX0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5hbmlzb3Ryb3B5IGlzIG5vdyAudGV4dHVyZS5hbmlzb3Ryb3B5LiIpLHRoaXMudGV4dHVyZS5hbmlzb3Ryb3B5PXR9fSxvZmZzZXQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAub2Zmc2V0IGlzIG5vdyAudGV4dHVyZS5vZmZzZXQuIiksdGhpcy50ZXh0dXJlLm9mZnNldH0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5vZmZzZXQgaXMgbm93IC50ZXh0dXJlLm9mZnNldC4iKSx0aGlzLnRleHR1cmUub2Zmc2V0PXR9fSxyZXBlYXQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAucmVwZWF0IGlzIG5vdyAudGV4dHVyZS5yZXBlYXQuIiksdGhpcy50ZXh0dXJlLnJlcGVhdH0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5yZXBlYXQgaXMgbm93IC50ZXh0dXJlLnJlcGVhdC4iKSx0aGlzLnRleHR1cmUucmVwZWF0PXR9fSxmb3JtYXQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAuZm9ybWF0IGlzIG5vdyAudGV4dHVyZS5mb3JtYXQuIiksdGhpcy50ZXh0dXJlLmZvcm1hdH0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQ6IC5mb3JtYXQgaXMgbm93IC50ZXh0dXJlLmZvcm1hdC4iKSx0aGlzLnRleHR1cmUuZm9ybWF0PXR9fSx0eXBlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLnR5cGUgaXMgbm93IC50ZXh0dXJlLnR5cGUuIiksdGhpcy50ZXh0dXJlLnR5cGV9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAudHlwZSBpcyBub3cgLnRleHR1cmUudHlwZS4iKSx0aGlzLnRleHR1cmUudHlwZT10fX0sZ2VuZXJhdGVNaXBtYXBzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS53YXJuKCJUSFJFRS5XZWJHTFJlbmRlclRhcmdldDogLmdlbmVyYXRlTWlwbWFwcyBpcyBub3cgLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzLiIpLHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHN9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OiAuZ2VuZXJhdGVNaXBtYXBzIGlzIG5vdyAudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMuIiksdGhpcy50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcz10fX19KSxjbGFzcyBleHRlbmRzIFNsdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMudHlwZT0iQXVkaW8iLHRoaXMubGlzdGVuZXI9dCx0aGlzLmNvbnRleHQ9dC5jb250ZXh0LHRoaXMuZ2Fpbj10aGlzLmNvbnRleHQuY3JlYXRlR2FpbigpLHRoaXMuZ2Fpbi5jb25uZWN0KHQuZ2V0SW5wdXQoKSksdGhpcy5hdXRvcGxheT0hMSx0aGlzLmJ1ZmZlcj1udWxsLHRoaXMuZGV0dW5lPTAsdGhpcy5sb29wPSExLHRoaXMubG9vcFN0YXJ0PTAsdGhpcy5sb29wRW5kPTAsdGhpcy5vZmZzZXQ9MCx0aGlzLmR1cmF0aW9uPXZvaWQgMCx0aGlzLnBsYXliYWNrUmF0ZT0xLHRoaXMuaXNQbGF5aW5nPSExLHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSEwLHRoaXMuc291cmNlPW51bGwsdGhpcy5zb3VyY2VUeXBlPSJlbXB0eSIsdGhpcy5fc3RhcnRlZEF0PTAsdGhpcy5fcHJvZ3Jlc3M9MCx0aGlzLl9jb25uZWN0ZWQ9ITEsdGhpcy5maWx0ZXJzPVtdfWdldE91dHB1dCgpe3JldHVybiB0aGlzLmdhaW59c2V0Tm9kZVNvdXJjZSh0KXtyZXR1cm4gdGhpcy5oYXNQbGF5YmFja0NvbnRyb2w9ITEsdGhpcy5zb3VyY2VUeXBlPSJhdWRpb05vZGUiLHRoaXMuc291cmNlPXQsdGhpcy5jb25uZWN0KCksdGhpc31zZXRNZWRpYUVsZW1lbnRTb3VyY2UodCl7cmV0dXJuIHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSExLHRoaXMuc291cmNlVHlwZT0ibWVkaWFOb2RlIix0aGlzLnNvdXJjZT10aGlzLmNvbnRleHQuY3JlYXRlTWVkaWFFbGVtZW50U291cmNlKHQpLHRoaXMuY29ubmVjdCgpLHRoaXN9c2V0TWVkaWFTdHJlYW1Tb3VyY2UodCl7cmV0dXJuIHRoaXMuaGFzUGxheWJhY2tDb250cm9sPSExLHRoaXMuc291cmNlVHlwZT0ibWVkaWFTdHJlYW1Ob2RlIix0aGlzLnNvdXJjZT10aGlzLmNvbnRleHQuY3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2UodCksdGhpcy5jb25uZWN0KCksdGhpc31zZXRCdWZmZXIodCl7cmV0dXJuIHRoaXMuYnVmZmVyPXQsdGhpcy5zb3VyY2VUeXBlPSJidWZmZXIiLHRoaXMuYXV0b3BsYXkmJnRoaXMucGxheSgpLHRoaXN9cGxheSh0PTApe2lmKCEwPT09dGhpcy5pc1BsYXlpbmcpcmV0dXJuIHZvaWQgY29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogQXVkaW8gaXMgYWxyZWFkeSBwbGF5aW5nLiIpO2lmKCExPT09dGhpcy5oYXNQbGF5YmFja0NvbnRyb2wpcmV0dXJuIHZvaWQgY29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKTt0aGlzLl9zdGFydGVkQXQ9dGhpcy5jb250ZXh0LmN1cnJlbnRUaW1lK3Q7Y29uc3QgZT10aGlzLmNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7cmV0dXJuIGUuYnVmZmVyPXRoaXMuYnVmZmVyLGUubG9vcD10aGlzLmxvb3AsZS5sb29wU3RhcnQ9dGhpcy5sb29wU3RhcnQsZS5sb29wRW5kPXRoaXMubG9vcEVuZCxlLm9uZW5kZWQ9dGhpcy5vbkVuZGVkLmJpbmQodGhpcyksZS5zdGFydCh0aGlzLl9zdGFydGVkQXQsdGhpcy5fcHJvZ3Jlc3MrdGhpcy5vZmZzZXQsdGhpcy5kdXJhdGlvbiksdGhpcy5pc1BsYXlpbmc9ITAsdGhpcy5zb3VyY2U9ZSx0aGlzLnNldERldHVuZSh0aGlzLmRldHVuZSksdGhpcy5zZXRQbGF5YmFja1JhdGUodGhpcy5wbGF5YmFja1JhdGUpLHRoaXMuY29ubmVjdCgpfXBhdXNlKCl7aWYoITEhPT10aGlzLmhhc1BsYXliYWNrQ29udHJvbClyZXR1cm4hMD09PXRoaXMuaXNQbGF5aW5nJiYodGhpcy5fcHJvZ3Jlc3MrPU1hdGgubWF4KHRoaXMuY29udGV4dC5jdXJyZW50VGltZS10aGlzLl9zdGFydGVkQXQsMCkqdGhpcy5wbGF5YmFja1JhdGUsITA9PT10aGlzLmxvb3AmJih0aGlzLl9wcm9ncmVzcz10aGlzLl9wcm9ncmVzcyUodGhpcy5kdXJhdGlvbnx8dGhpcy5idWZmZXIuZHVyYXRpb24pKSx0aGlzLnNvdXJjZS5zdG9wKCksdGhpcy5zb3VyY2Uub25lbmRlZD1udWxsLHRoaXMuaXNQbGF5aW5nPSExKSx0aGlzO2NvbnNvbGUud2FybigiVEhSRUUuQXVkaW86IHRoaXMgQXVkaW8gaGFzIG5vIHBsYXliYWNrIGNvbnRyb2wuIil9c3RvcCgpe2lmKCExIT09dGhpcy5oYXNQbGF5YmFja0NvbnRyb2wpcmV0dXJuIHRoaXMuX3Byb2dyZXNzPTAsdGhpcy5zb3VyY2Uuc3RvcCgpLHRoaXMuc291cmNlLm9uZW5kZWQ9bnVsbCx0aGlzLmlzUGxheWluZz0hMSx0aGlzO2NvbnNvbGUud2FybigiVEhSRUUuQXVkaW86IHRoaXMgQXVkaW8gaGFzIG5vIHBsYXliYWNrIGNvbnRyb2wuIil9Y29ubmVjdCgpe2lmKHRoaXMuZmlsdGVycy5sZW5ndGg+MCl7dGhpcy5zb3VyY2UuY29ubmVjdCh0aGlzLmZpbHRlcnNbMF0pO2ZvcihsZXQgdD0xLGU9dGhpcy5maWx0ZXJzLmxlbmd0aDt0PGU7dCsrKXRoaXMuZmlsdGVyc1t0LTFdLmNvbm5lY3QodGhpcy5maWx0ZXJzW3RdKTt0aGlzLmZpbHRlcnNbdGhpcy5maWx0ZXJzLmxlbmd0aC0xXS5jb25uZWN0KHRoaXMuZ2V0T3V0cHV0KCkpfWVsc2UgdGhpcy5zb3VyY2UuY29ubmVjdCh0aGlzLmdldE91dHB1dCgpKTtyZXR1cm4gdGhpcy5fY29ubmVjdGVkPSEwLHRoaXN9ZGlzY29ubmVjdCgpe2lmKHRoaXMuZmlsdGVycy5sZW5ndGg+MCl7dGhpcy5zb3VyY2UuZGlzY29ubmVjdCh0aGlzLmZpbHRlcnNbMF0pO2ZvcihsZXQgdD0xLGU9dGhpcy5maWx0ZXJzLmxlbmd0aDt0PGU7dCsrKXRoaXMuZmlsdGVyc1t0LTFdLmRpc2Nvbm5lY3QodGhpcy5maWx0ZXJzW3RdKTt0aGlzLmZpbHRlcnNbdGhpcy5maWx0ZXJzLmxlbmd0aC0xXS5kaXNjb25uZWN0KHRoaXMuZ2V0T3V0cHV0KCkpfWVsc2UgdGhpcy5zb3VyY2UuZGlzY29ubmVjdCh0aGlzLmdldE91dHB1dCgpKTtyZXR1cm4gdGhpcy5fY29ubmVjdGVkPSExLHRoaXN9Z2V0RmlsdGVycygpe3JldHVybiB0aGlzLmZpbHRlcnN9c2V0RmlsdGVycyh0KXtyZXR1cm4gdHx8KHQ9W10pLCEwPT09dGhpcy5fY29ubmVjdGVkPyh0aGlzLmRpc2Nvbm5lY3QoKSx0aGlzLmZpbHRlcnM9dC5zbGljZSgpLHRoaXMuY29ubmVjdCgpKTp0aGlzLmZpbHRlcnM9dC5zbGljZSgpLHRoaXN9c2V0RGV0dW5lKHQpe2lmKHRoaXMuZGV0dW5lPXQsdm9pZCAwIT09dGhpcy5zb3VyY2UuZGV0dW5lKXJldHVybiEwPT09dGhpcy5pc1BsYXlpbmcmJnRoaXMuc291cmNlLmRldHVuZS5zZXRUYXJnZXRBdFRpbWUodGhpcy5kZXR1bmUsdGhpcy5jb250ZXh0LmN1cnJlbnRUaW1lLC4wMSksdGhpc31nZXREZXR1bmUoKXtyZXR1cm4gdGhpcy5kZXR1bmV9Z2V0RmlsdGVyKCl7cmV0dXJuIHRoaXMuZ2V0RmlsdGVycygpWzBdfXNldEZpbHRlcih0KXtyZXR1cm4gdGhpcy5zZXRGaWx0ZXJzKHQ/W3RdOltdKX1zZXRQbGF5YmFja1JhdGUodCl7aWYoITEhPT10aGlzLmhhc1BsYXliYWNrQ29udHJvbClyZXR1cm4gdGhpcy5wbGF5YmFja1JhdGU9dCwhMD09PXRoaXMuaXNQbGF5aW5nJiZ0aGlzLnNvdXJjZS5wbGF5YmFja1JhdGUuc2V0VGFyZ2V0QXRUaW1lKHRoaXMucGxheWJhY2tSYXRlLHRoaXMuY29udGV4dC5jdXJyZW50VGltZSwuMDEpLHRoaXM7Y29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKX1nZXRQbGF5YmFja1JhdGUoKXtyZXR1cm4gdGhpcy5wbGF5YmFja1JhdGV9b25FbmRlZCgpe3RoaXMuaXNQbGF5aW5nPSExfWdldExvb3AoKXtyZXR1cm4hMT09PXRoaXMuaGFzUGxheWJhY2tDb250cm9sPyhjb25zb2xlLndhcm4oIlRIUkVFLkF1ZGlvOiB0aGlzIEF1ZGlvIGhhcyBubyBwbGF5YmFjayBjb250cm9sLiIpLCExKTp0aGlzLmxvb3B9c2V0TG9vcCh0KXtpZighMSE9PXRoaXMuaGFzUGxheWJhY2tDb250cm9sKXJldHVybiB0aGlzLmxvb3A9dCwhMD09PXRoaXMuaXNQbGF5aW5nJiYodGhpcy5zb3VyY2UubG9vcD10aGlzLmxvb3ApLHRoaXM7Y29uc29sZS53YXJuKCJUSFJFRS5BdWRpbzogdGhpcyBBdWRpbyBoYXMgbm8gcGxheWJhY2sgY29udHJvbC4iKX1zZXRMb29wU3RhcnQodCl7cmV0dXJuIHRoaXMubG9vcFN0YXJ0PXQsdGhpc31zZXRMb29wRW5kKHQpe3JldHVybiB0aGlzLmxvb3BFbmQ9dCx0aGlzfWdldFZvbHVtZSgpe3JldHVybiB0aGlzLmdhaW4uZ2Fpbi52YWx1ZX1zZXRWb2x1bWUodCl7cmV0dXJuIHRoaXMuZ2Fpbi5nYWluLnNldFRhcmdldEF0VGltZSh0LHRoaXMuY29udGV4dC5jdXJyZW50VGltZSwuMDEpLHRoaXN9fS5wcm90b3R5cGUubG9hZD1mdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlRIUkVFLkF1ZGlvOiAubG9hZCBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgVEhSRUUuQXVkaW9Mb2FkZXIgaW5zdGVhZC4iKTtjb25zdCBlPXRoaXM7cmV0dXJuKG5ldyB1Z3QpLmxvYWQodCwoZnVuY3Rpb24odCl7ZS5zZXRCdWZmZXIodCl9KSksdGhpc30sRmN0LnByb3RvdHlwZS51cGRhdGVDdWJlTWFwPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQ3ViZUNhbWVyYTogLnVwZGF0ZUN1YmVNYXAoKSBpcyBub3cgLnVwZGF0ZSgpLiIpLHRoaXMudXBkYXRlKHQsZSl9LEZjdC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIGNvbnNvbGUud2FybigiVEhSRUUuQ3ViZUNhbWVyYTogLmNsZWFyKCkgaXMgbm93IC5yZW5kZXJUYXJnZXQuY2xlYXIoKS4iKSx0aGlzLnJlbmRlclRhcmdldC5jbGVhcih0LGUsbixvKX0seXN0LmNyb3NzT3JpZ2luPXZvaWQgMCx5c3QubG9hZFRleHR1cmU9ZnVuY3Rpb24odCxlLG4sbyl7Y29uc29sZS53YXJuKCJUSFJFRS5JbWFnZVV0aWxzLmxvYWRUZXh0dXJlIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFVzZSBUSFJFRS5UZXh0dXJlTG9hZGVyKCkgaW5zdGVhZC4iKTtjb25zdCBpPW5ldyBYdXQ7aS5zZXRDcm9zc09yaWdpbih0aGlzLmNyb3NzT3JpZ2luKTtjb25zdCBhPWkubG9hZCh0LG4sdm9pZCAwLG8pO3JldHVybiBlJiYoYS5tYXBwaW5nPWUpLGF9LHlzdC5sb2FkVGV4dHVyZUN1YmU9ZnVuY3Rpb24odCxlLG4sbyl7Y29uc29sZS53YXJuKCJUSFJFRS5JbWFnZVV0aWxzLmxvYWRUZXh0dXJlQ3ViZSBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2UgVEhSRUUuQ3ViZVRleHR1cmVMb2FkZXIoKSBpbnN0ZWFkLiIpO2NvbnN0IGk9bmV3IFp1dDtpLnNldENyb3NzT3JpZ2luKHRoaXMuY3Jvc3NPcmlnaW4pO2NvbnN0IGE9aS5sb2FkKHQsbix2b2lkIDAsbyk7cmV0dXJuIGUmJihhLm1hcHBpbmc9ZSksYX0seXN0LmxvYWRDb21wcmVzc2VkVGV4dHVyZT1mdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoIlRIUkVFLkltYWdlVXRpbHMubG9hZENvbXByZXNzZWRUZXh0dXJlIGhhcyBiZWVuIHJlbW92ZWQuIFVzZSBUSFJFRS5ERFNMb2FkZXIgaW5zdGVhZC4iKX0seXN0LmxvYWRDb21wcmVzc2VkVGV4dHVyZUN1YmU9ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKCJUSFJFRS5JbWFnZVV0aWxzLmxvYWRDb21wcmVzc2VkVGV4dHVyZUN1YmUgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlIFRIUkVFLkREU0xvYWRlciBpbnN0ZWFkLiIpfSwidW5kZWZpbmVkIiE9dHlwZW9mIF9fVEhSRUVfREVWVE9PTFNfXyYmX19USFJFRV9ERVZUT09MU19fLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZWdpc3RlciIse2RldGFpbDp7cmV2aXNpb246IjEzMSJ9fSkpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYod2luZG93Ll9fVEhSRUVfXz9jb25zb2xlLndhcm4oIldBUk5JTkc6IE11bHRpcGxlIGluc3RhbmNlcyBvZiBUaHJlZS5qcyBiZWluZyBpbXBvcnRlZC4iKTp3aW5kb3cuX19USFJFRV9fPSIxMzEiKSwoZnVuY3Rpb24odCl7dFt0LkNJUkNMRT0wXT0iQ0lSQ0xFIix0W3QuTElORT0xXT0iTElORSIsdFt0LlRSSUFOR0xFPTJdPSJUUklBTkdMRSIsdFt0LlRSQVBFWk9JRD0zXT0iVFJBUEVaT0lEIn0pKE5ndHx8KE5ndD17fSkpO2NsYXNzIExndHtjb25zdHJ1Y3Rvcih0LGUsbixvKXt0aGlzLmNvb3JkaW5hdG9yPWUsdGhpcy5zY2VuZT1uZXcgRm10LHRoaXMuYmFja2dyb3VuZENvbG9yPSIjZmZmIixDcnQoKSYmdCBpbnN0YW5jZW9mIE9mZnNjcmVlbkNhbnZhcyYmKHQuc3R5bGU9dC5zdHlsZXx8e30pLG8mJnQuYWRkRXZlbnRMaXN0ZW5lcigid2ViZ2xjb250ZXh0bG9zdCIsbyksdGhpcy5yZW5kZXJlcj1uZXcgSG10KHtjYW52YXM6dCxjb250ZXh0OnQuZ2V0Q29udGV4dCgid2ViZ2wyIix7YW50aWFsaWFzOiEwLHByZWNpc2lvbjoiaGlnaHAiLGFscGhhOiEwfSl9KSx0aGlzLnJlbmRlcmVyLnNldFBpeGVsUmF0aW8obil9b25SZXNpemUodCl7dGhpcy5yZW5kZXJlci5zZXRTaXplKHQud2lkdGgsdC5oZWlnaHQpfWRlc3Ryb3lPYmplY3QodCl7Y29uc3QgZT10Lm9iajNkO2lmKHRoaXMuc2NlbmUucmVtb3ZlKGUpLGUgaW5zdGFuY2VvZiBTY3Qpe2UuZ2VvbWV0cnkuZGlzcG9zZSgpO2NvbnN0IHQ9QXJyYXkuaXNBcnJheShlLm1hdGVyaWFsKT9lLm1hdGVyaWFsOltlLm1hdGVyaWFsXTtmb3IoY29uc3QgZSBvZiB0KWUuZGlzcG9zZSgpfX1zZXRVc2VEYXJrTW9kZSh0KXt0aGlzLmJhY2tncm91bmRDb2xvcj10PyIjMzAzMDMwIjoiI2ZmZiJ9Y3JlYXRlT3JVcGRhdGVMaW5lT2JqZWN0KHQsZSxuKXt2YXIgbztpZighdCYmIW4udmlzaWJsZSlyZXR1cm4gbnVsbDtjb25zdHt2aXNpYmxlOmksd2lkdGg6YX09bjtpZighdCl7Y29uc3QgdD1UZ3QodGhpcy5iYWNrZ3JvdW5kQ29sb3Isbi5jb2xvcixudWxsIT09KG89bi5vcGFjaXR5KSYmdm9pZCAwIT09bz9vOjEpLHI9bmV3IGRjdCxzPW5ldyBmZnQoe2NvbG9yOnR9KSxsPW5ldyBTY3QocixzKTtyZXR1cm4gcy52aXNpYmxlPWksSGd0KHIsZSxhKSx0aGlzLnNjZW5lLmFkZChsKSx7dHlwZTpOZ3QuTElORSxkYXRhOmUsb2JqM2Q6bCx3aWR0aDphfX1jb25zdHtkYXRhOnIsb2JqM2Q6cyx3aWR0aDpsfT10O3JldHVybiBGZ3QodGhpcy5iYWNrZ3JvdW5kQ29sb3IscywodD0+KGE9PT1sJiZyJiZNcnQocixlKXx8SGd0KHQsZSxhKSx0KSksbik/e3R5cGU6Tmd0LkxJTkUsZGF0YTplLG9iajNkOnMsd2lkdGg6YX06dH1jcmVhdGVNZXNoKHQsZSl7aWYoIWUudmlzaWJsZSlyZXR1cm4gbnVsbDtjb25zdHt2aXNpYmxlOm4sY29sb3I6byxvcGFjaXR5Oml9PWUsYT1UZ3QodGhpcy5iYWNrZ3JvdW5kQ29sb3IsbyxudWxsIT1pP2k6MSkscj1uZXcgWGx0KHtjb2xvcjphLHZpc2libGU6bn0pO3JldHVybiBuZXcgU2N0KHQscil9Y3JlYXRlT3JVcGRhdGVUcmlhbmdsZU9iamVjdCh0LGUsbil7Y29uc3R7c2l6ZTpvfT1uLGk9bypNYXRoLnNxcnQoMykvMixhPW5ldyBGbG9hdDMyQXJyYXkoW2UueC1vLzIsZS55LWkvMyxlLngrby8yLGUueS1pLzMsZS54LGUueSsyKmkvM10pO2lmKCF0KXtjb25zdCB0PW5ldyBkY3Q7SWd0KHQsYSk7Y29uc3Qgbz10aGlzLmNyZWF0ZU1lc2godCxuKTtyZXR1cm4gbnVsbD09PW8/bnVsbDoodGhpcy5zY2VuZS5hZGQobykse3R5cGU6Tmd0LlRSSUFOR0xFLGRhdGE6ZSxvYmozZDpvfSl9cmV0dXJuIEZndCh0aGlzLmJhY2tncm91bmRDb2xvcix0Lm9iajNkLCh0PT4oSWd0KHQsYSksdCkpLG4pP3t0eXBlOk5ndC5UUklBTkdMRSxkYXRhOmUsb2JqM2Q6dC5vYmozZH06dH1jcmVhdGVPclVwZGF0ZUNpcmNsZU9iamVjdCh0LGUsbil7Y29uc3R7cmFkaXVzOm99PW4saT1uZXcgRGZ0KG4ucmFkaXVzKTtpZighdCl7Y29uc3QgdD10aGlzLmNyZWF0ZU1lc2goaSxuKTtyZXR1cm4gbnVsbD09PXQ/bnVsbDoodC5wb3NpdGlvbi5zZXQoZS54LGUueSwwKSx0aGlzLnNjZW5lLmFkZCh0KSx7dHlwZTpOZ3QuQ0lSQ0xFLGRhdGE6e2xvYzplLHJhZGl1czpvfSxvYmozZDp0fSl9cmV0dXJuIEZndCh0aGlzLmJhY2tncm91bmRDb2xvcix0Lm9iajNkLCgoKT0+aSksbik/KHQub2JqM2QucG9zaXRpb24uc2V0KGUueCxlLnksMCkse3R5cGU6Tmd0LkNJUkNMRSxkYXRhOntsb2M6ZSxyYWRpdXM6b30sb2JqM2Q6dC5vYmozZH0pOnR9Y3JlYXRlT3JVcGRhdGVUcmFwZXpvaWRPYmplY3QodCxlLG4sbyl7aWYoZS55IT09bi55KXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnB1dCBlcnJvcjogc3RhcnQueSAhPSBlbmQueS4iKTtjb25zdHthbHRpdHVkZTppfT1vLGE9Mi9NYXRoLnNxcnQoMykqaSxyPW5ldyBRdXQoW25ldyBnc3QoZS54LWEvMixlLnktaS8yKSxuZXcgZ3N0KGUueCxlLnkraS8yKSxuZXcgZ3N0KG4ueCxuLnkraS8yKSxuZXcgZ3N0KG4ueCthLzIsbi55LWkvMildKTtyLmF1dG9DbG9zZT0hMDtjb25zdCBzPW5ldyBQdXQocik7aWYoIXQpe2NvbnN0IHQ9dGhpcy5jcmVhdGVNZXNoKHMsbyk7cmV0dXJuIG51bGw9PT10P251bGw6KHRoaXMuc2NlbmUuYWRkKHQpLHt0eXBlOk5ndC5UUkFQRVpPSUQsZGF0YTpbZSxuXSxvYmozZDp0fSl9cmV0dXJuIEZndCh0aGlzLmJhY2tncm91bmRDb2xvcix0Lm9iajNkLCgoKT0+cyksbyk/e3R5cGU6Tmd0LlRSQVBFWk9JRCxkYXRhOltlLG5dLG9iajNkOnQub2JqM2R9OnR9Zmx1c2goKXt0aGlzLnJlbmRlcmVyLnJlbmRlcih0aGlzLnNjZW5lLHRoaXMuY29vcmRpbmF0b3IuZ2V0Q2FtZXJhKCkpfWRpc3Bvc2UoKXt0aGlzLnJlbmRlcmVyLmRpc3Bvc2UoKX19Y2xhc3MgQmd0e2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5yZW5kZXJDYWNoZT10LHRoaXMucmVuZGVyZXI9ZX1zZXRMaW5lKHQsZSxuKXtjb25zdCBvPXRoaXMucmVuZGVyZXIuY3JlYXRlT3JVcGRhdGVMaW5lT2JqZWN0KHRoaXMucmVuZGVyQ2FjaGUuZ2V0RnJvbVByZXZpb3VzRnJhbWUodCksZSxuKTtvJiZ0aGlzLnJlbmRlckNhY2hlLnNldFRvQ3VycmVudEZyYW1lKHQsbyl9c2V0VHJpYW5nbGUodCxlLG4pe2NvbnN0IG89dGhpcy5yZW5kZXJlci5jcmVhdGVPclVwZGF0ZVRyaWFuZ2xlT2JqZWN0KHRoaXMucmVuZGVyQ2FjaGUuZ2V0RnJvbVByZXZpb3VzRnJhbWUodCksZSxuKTtvJiZ0aGlzLnJlbmRlckNhY2hlLnNldFRvQ3VycmVudEZyYW1lKHQsbyl9c2V0Q2lyY2xlKHQsZSxuKXtjb25zdCBvPXRoaXMucmVuZGVyZXIuY3JlYXRlT3JVcGRhdGVDaXJjbGVPYmplY3QodGhpcy5yZW5kZXJDYWNoZS5nZXRGcm9tUHJldmlvdXNGcmFtZSh0KSxlLG4pO28mJnRoaXMucmVuZGVyQ2FjaGUuc2V0VG9DdXJyZW50RnJhbWUodCxvKX1zZXRUcmFwZXpvaWQodCxlLG4sbyl7Y29uc3QgaT10aGlzLnJlbmRlcmVyLmNyZWF0ZU9yVXBkYXRlVHJhcGV6b2lkT2JqZWN0KHRoaXMucmVuZGVyQ2FjaGUuZ2V0RnJvbVByZXZpb3VzRnJhbWUodCksZSxuLG8pO2kmJnRoaXMucmVuZGVyQ2FjaGUuc2V0VG9DdXJyZW50RnJhbWUodCxpKX19Y2xhc3MgVmd0e2NvbnN0cnVjdG9yKCl7dGhpcy5wcmV2RnJhbWVDYWNoZT1uZXcgTWFwLHRoaXMuY3VyckZyYW1lQ2FjaGU9bmV3IE1hcH1nZXRGcm9tUHJldmlvdXNGcmFtZSh0KXtjb25zdCBlPXRoaXMucHJldkZyYW1lQ2FjaGUuZ2V0KHQpO3JldHVybiBudWxsIT1lP2U6bnVsbH1zZXRUb0N1cnJlbnRGcmFtZSh0LGUpe3RoaXMuY3VyckZyYW1lQ2FjaGUuc2V0KHQsZSl9ZmluYWxpemVGcmFtZUFuZEdldFJlbW92ZWQoKXtjb25zdCB0PVtdO2Zvcihjb25zdFtlLG5db2YgdGhpcy5wcmV2RnJhbWVDYWNoZS5lbnRyaWVzKCkpdGhpcy5jdXJyRnJhbWVDYWNoZS5oYXMoZSl8fHQucHVzaChuKTtyZXR1cm4gdGhpcy5wcmV2RnJhbWVDYWNoZT10aGlzLmN1cnJGcmFtZUNhY2hlLHRoaXMuY3VyckZyYW1lQ2FjaGU9bmV3IE1hcCx0fX0hKGZ1bmN0aW9uKHQpe3RbdC5OVU1CRVI9MF09Ik5VTUJFUiIsdFt0Lk5BTj0xXT0iTkFOIn0pKHpndHx8KHpndD17fSkpO2NsYXNzIGpndCBleHRlbmRzIGNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMucmF3U2VyaWVzRGF0YT1bXSx0aGlzLnNlcmllcz1bXSx0aGlzLnBhaW50RGlydHk9ITAsdGhpcy5yZW5kZXJDYWNoZT1uZXcgVmd0LHRoaXMuY29vcmRpbmF0ZUlkZW50aWZpZXI9bnVsbCx0aGlzLmxheW91dD17eDowLHdpZHRoOjEseTowLGhlaWdodDoxfSx0aGlzLmdldE1ldGFkYXRhTWFwSW1wbD10LmdldE1ldGFkYXRhTWFwLHRoaXMuY29vcmRpbmF0b3I9dC5jb29yZGluYXRvcix0aGlzLnJlbmRlcmVyPXQucmVuZGVyZXIsdGhpcy5wYWludEJydXNoPW5ldyBCZ3QodGhpcy5yZW5kZXJDYWNoZSx0aGlzLnJlbmRlcmVyKX1zZXRMYXlvdXRSZWN0KHQpe3RoaXMubGF5b3V0Lng9PT10LngmJnRoaXMubGF5b3V0LndpZHRoPT09dC53aWR0aCYmdGhpcy5sYXlvdXQueT09PXQueSYmdGhpcy5sYXlvdXQuaGVpZ2h0PT09dC5oZWlnaHR8fCh0aGlzLnBhaW50RGlydHk9ITApLHRoaXMubGF5b3V0PXR9Z2V0TGF5b3V0UmVjdCgpe3JldHVybiB0aGlzLmxheW91dH1nZXRNZXRhZGF0YU1hcCgpe3JldHVybiB0aGlzLmdldE1ldGFkYXRhTWFwSW1wbCgpfW1hcmtBc1BhaW50RGlydHkoKXt0aGlzLnBhaW50RGlydHk9ITB9cmVuZGVyKCl7aWYodGhpcy50cmFuc2Zvcm1Db29yZGluYXRlc0lmU3RhbGUoKSx0aGlzLnBhaW50RGlydHkpe3RoaXMucmVkcmF3KCk7Zm9yKGNvbnN0IHQgb2YgdGhpcy5yZW5kZXJDYWNoZS5maW5hbGl6ZUZyYW1lQW5kR2V0UmVtb3ZlZCgpKXRoaXMucmVuZGVyZXIuZGVzdHJveU9iamVjdCh0KTt0aGlzLnBhaW50RGlydHk9ITF9fWlzQ29vcmRpbmF0ZVVwZGF0ZWQoKXtyZXR1cm4gdGhpcy5jb29yZGluYXRvci5nZXRVcGRhdGVJZGVudGlmaWVyKCkhPT10aGlzLmNvb3JkaW5hdGVJZGVudGlmaWVyfWNsZWFyQ29vcmRpbmF0ZUlkZW50aWZpZXIoKXt0aGlzLmNvb3JkaW5hdGVJZGVudGlmaWVyPW51bGx9c2V0RGF0YSh0KXt0aGlzLmNsZWFyQ29vcmRpbmF0ZUlkZW50aWZpZXIoKSx0aGlzLnJhd1Nlcmllc0RhdGE9dH10cmFuc2Zvcm1Db29yZGluYXRlc0lmU3RhbGUoKXtpZighdGhpcy5pc0Nvb3JkaW5hdGVVcGRhdGVkKCkpcmV0dXJuO2NvbnN0IHQ9dGhpcy5nZXRMYXlvdXRSZWN0KCk7dGhpcy5zZXJpZXM9bmV3IEFycmF5KHRoaXMucmF3U2VyaWVzRGF0YS5sZW5ndGgpO2ZvcihsZXQgZT0wO2U8dGhpcy5yYXdTZXJpZXNEYXRhLmxlbmd0aDtlKyspe2NvbnN0IG49dGhpcy5yYXdTZXJpZXNEYXRhW2VdO3RoaXMuc2VyaWVzW2VdPXtpZDpuLmlkLHBvbHlsaW5lOm5ldyBGbG9hdDMyQXJyYXkoMipuLnBvaW50cy5sZW5ndGgpfTtmb3IobGV0IG89MDtvPG4ucG9pbnRzLmxlbmd0aDtvKyspe2NvbnN0W2ksYV09dGhpcy5jb29yZGluYXRvci50cmFuc2Zvcm1EYXRhVG9VaUNvb3JkKHQsW24ucG9pbnRzW29dLngsbi5wb2ludHNbb10ueV0pO3RoaXMuc2VyaWVzW2VdLnBvbHlsaW5lWzIqb109aSx0aGlzLnNlcmllc1tlXS5wb2x5bGluZVsyKm8rMV09YX19dGhpcy5jb29yZGluYXRlSWRlbnRpZmllcj10aGlzLmNvb3JkaW5hdG9yLmdldFVwZGF0ZUlkZW50aWZpZXIoKSx0aGlzLm1hcmtBc1BhaW50RGlydHkoKX19e3JlY29yZFBhcnRpdGlvbih0LGUsbil7cmV0dXJuIHQ/e3R5cGU6emd0Lk5VTUJFUixwb2x5bGluZTplfTp7dHlwZTp6Z3QuTkFOLHBvbHlsaW5lOmUubWFwKCgodCxlKT0+aXNOYU4odCk/ZSUyPT0wP24ueDpuLnk6dCkpfX1wYXJ0aXRpb25Qb2x5bGluZSh0KXtjb25zdCBlPVtdO2xldCBuPTAsbz0hMTtjb25zdCBpPXRoaXMuY29vcmRpbmF0b3IudHJhbnNmb3JtRGF0YVRvVWlDb29yZCh0aGlzLmdldExheW91dFJlY3QoKSxbMCwwXSksYT17eDppWzBdLHk6aVsxXX07bGV0IHI9bnVsbDtmb3IobGV0IGk9MDtpPHQubGVuZ3RoO2krPTIpe2NvbnN0IGE9dFtpXSxzPXRbaSsxXSxsPWlzTmFOKGEpfHxpc05hTihzKTtsIT09byYmbiE9PWkmJihlLnB1c2godGhpcy5yZWNvcmRQYXJ0aXRpb24oIW8sdC5zbGljZShuLGkpLG51bGw9PT1yP3t4OmEseTpzfTpyKSksbj1pKSxsfHwocj17eDphLHk6c30pLG89bH1yZXR1cm4gbiE9PXQubGVuZ3RoLTEmJmUucHVzaCh0aGlzLnJlY29yZFBhcnRpdGlvbighbyx0LnNsaWNlKG4sdC5sZW5ndGgpLG51bGwhPXI/cjphKSksZX1yZWRyYXcoKXt2YXIgdCxlLG47Zm9yKGNvbnN0IG8gb2YgdGhpcy5zZXJpZXMpe2NvbnN0IGk9dGhpcy5nZXRNZXRhZGF0YU1hcCgpW28uaWRdO2lmKCFpKWNvbnRpbnVlO2lmKG8ucG9seWxpbmUubGVuZ3RoJTIhPTApdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgaGF2ZSBvZGQgbGVuZ3RoLWVkIHBvbHlsaW5lOiAke28ucG9seWxpbmUubGVuZ3RofWApO2NvbnN0IGE9dGhpcy5wYXJ0aXRpb25Qb2x5bGluZShvLnBvbHlsaW5lKTtmb3IoY29uc3Rbcix7dHlwZTpzLHBvbHlsaW5lOmx9XW9mIGEuZW50cmllcygpKWlmKHM9PT16Z3QuTlVNQkVSKTI9PT1sLmxlbmd0aD90aGlzLnBhaW50QnJ1c2guc2V0Q2lyY2xlKEpTT04uc3RyaW5naWZ5KFsiY2lyY2xlIixvLmlkLHJdKSx7eDpsWzBdLHk6bFsxXX0se2NvbG9yOmkuY29sb3IsdmlzaWJsZTppLnZpc2libGUsb3BhY2l0eTpudWxsIT09KHQ9aS5vcGFjaXR5KSYmdm9pZCAwIT09dD90OjEscmFkaXVzOjR9KTp0aGlzLnBhaW50QnJ1c2guc2V0TGluZShKU09OLnN0cmluZ2lmeShbImxpbmUiLG8uaWQscl0pLGwse2NvbG9yOmkuY29sb3IsdmlzaWJsZTppLnZpc2libGUsb3BhY2l0eTpudWxsIT09KGU9aS5vcGFjaXR5KSYmdm9pZCAwIT09ZT9lOjEsd2lkdGg6Mn0pO2Vsc2UgaWYoIWkuYXV4KWZvcihsZXQgdD0wO3Q8bC5sZW5ndGg7dCs9Mil0aGlzLnBhaW50QnJ1c2guc2V0VHJpYW5nbGUoSlNPTi5zdHJpbmdpZnkoWyJOYU4iLG8uaWQsbFt0XSxsW3QrMV1dKSx7eDpsW3RdLHk6bFt0KzFdfSx7Y29sb3I6aS5jb2xvcix2aXNpYmxlOmkudmlzaWJsZSxvcGFjaXR5Om51bGwhPT0obj1pLm9wYWNpdHkpJiZ2b2lkIDAhPT1uP246MSxzaXplOjEyfSl9fX1jbGFzcyBVZ3QgZXh0ZW5kcyB2cnR7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuY2FtZXJhPW5ldyByZHQoMCwxZTMsMWUzLDAsMCwxMDApfWlzWUF4aXNQb2ludGVkRG93bigpe3JldHVybiExfXNldERvbUNvbnRhaW5lclJlY3QodCl7c3VwZXIuc2V0RG9tQ29udGFpbmVyUmVjdCh0KSx0aGlzLmNhbWVyYS5sZWZ0PXQueCx0aGlzLmNhbWVyYS5yaWdodD10LngrdC53aWR0aCx0aGlzLmNhbWVyYS50b3A9dC55K3QuaGVpZ2h0LHRoaXMuY2FtZXJhLmJvdHRvbT10LnksdGhpcy5jYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpfWdldENhbWVyYSgpe3JldHVybiB0aGlzLmNhbWVyYX19Y29uc3QgV2d0PXQ9PnNlbGYucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHQpO2NsYXNzIEdndHtjb25zdHJ1Y3Rvcih0KXtzd2l0Y2godGhpcy5tZXRhZGF0YU1hcD17fSx0aGlzLnNob3VsZFJlcGFpbnQ9ITEsdGhpcy5jYWxsYmFja3M9dC5jYWxsYmFja3MsdC50eXBlKXtjYXNlIGU2LlNWRzp0aGlzLmNvb3JkaW5hdG9yPW5ldyB2cnQsdGhpcy5yZW5kZXJlcj1uZXcgT3J0KHQuY29udGFpbmVyKTticmVhaztjYXNlIGU2LldFQkdMOntjb25zdCBlPW5ldyBVZ3Q7dGhpcy5jb29yZGluYXRvcj1lLHRoaXMucmVuZGVyZXI9bmV3IExndCh0LmNvbnRhaW5lcixlLHQuZGV2aWNlUGl4ZWxSYXRpbyx0LmNhbGxiYWNrcy5vbkNvbnRleHRMb3N0KTticmVha319dGhpcy5yZW5kZXJlci5zZXRVc2VEYXJrTW9kZSh0LnVzZURhcmtNb2RlKSx0aGlzLnNlcmllc0xpbmVWaWV3PW5ldyBqZ3Qoe3JlbmRlcmVyOnRoaXMucmVuZGVyZXIsY29vcmRpbmF0b3I6dGhpcy5jb29yZGluYXRvcixnZXRNZXRhZGF0YU1hcDooKT0+dGhpcy5tZXRhZGF0YU1hcH0pLHRoaXMucmVzaXplKHQuZG9tRGltZW5zaW9uKX1kaXNwb3NlKCl7fXNldFhTY2FsZVR5cGUodCl7dGhpcy5jb29yZGluYXRvci5zZXRYU2NhbGUoZ3J0KHQpKSx0aGlzLnNjaGVkdWxlUmVwYWludCgpfXNldFlTY2FsZVR5cGUodCl7dGhpcy5jb29yZGluYXRvci5zZXRZU2NhbGUoZ3J0KHQpKSx0aGlzLnNjaGVkdWxlUmVwYWludCgpfXJlc2l6ZSh0KXt0aGlzLmNvb3JkaW5hdG9yLnNldERvbUNvbnRhaW5lclJlY3QoT2JqZWN0LmFzc2lnbih7eDowLHk6MH0sdCkpLHRoaXMucmVuZGVyZXIub25SZXNpemUoT2JqZWN0LmFzc2lnbih7eDowLHk6MH0sdCkpLHRoaXMuc2VyaWVzTGluZVZpZXcuc2V0TGF5b3V0UmVjdChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3g6MCx5OjB9KSksdGhpcy5zY2hlZHVsZVJlcGFpbnQoKX1zZXRNZXRhZGF0YSh0KXtsZXQgZT0hMTtPYmplY3QuZW50cmllcyh0KS5mb3JFYWNoKCgoW3Qsbl0pPT57Y29uc3Qgbz10aGlzLm1ldGFkYXRhTWFwW3RdO28mJm4uY29sb3I9PT1vLmNvbG9yJiZuLnZpc2libGU9PT1vLnZpc2libGUmJm4ub3BhY2l0eT09PW8ub3BhY2l0eXx8KGU9ITApLHRoaXMubWV0YWRhdGFNYXBbdF09bn0pKSxlJiZ0aGlzLnNlcmllc0xpbmVWaWV3Lm1hcmtBc1BhaW50RGlydHkoKSx0aGlzLnNjaGVkdWxlUmVwYWludCgpfXNldFZpZXdCb3godCl7dGhpcy5jb29yZGluYXRvci5zZXRWaWV3Qm94UmVjdCh7eDp0LnhbMF0sd2lkdGg6dC54WzFdLXQueFswXSx5OnQueVswXSxoZWlnaHQ6dC55WzFdLXQueVswXX0pLHRoaXMuc2NoZWR1bGVSZXBhaW50KCl9c2V0RGF0YSh0KXt0aGlzLnNlcmllc0xpbmVWaWV3LnNldERhdGEodCksdGhpcy5zY2hlZHVsZVJlcGFpbnQoKX1zZXRVc2VEYXJrTW9kZSh0KXt0aGlzLnJlbmRlcmVyLnNldFVzZURhcmtNb2RlKHQpLHRoaXMuc2VyaWVzTGluZVZpZXcubWFya0FzUGFpbnREaXJ0eSgpLHRoaXMuc2NoZWR1bGVSZXBhaW50KCl9c2NoZWR1bGVSZXBhaW50KCl7dGhpcy5zaG91bGRSZXBhaW50fHwodGhpcy5zaG91bGRSZXBhaW50PSEwLFdndCgoKCk9Pnt0aGlzLnJlcGFpbnQoKSx0aGlzLnNob3VsZFJlcGFpbnQ9ITF9KSkpfXJlcGFpbnQoKXt0aGlzLnNlcmllc0xpbmVWaWV3LnJlbmRlcigpLHRoaXMucmVuZGVyZXIuZmx1c2goKSx0aGlzLmNhbGxiYWNrcy5vbkRyYXdFbmQoKX19dmFyIFlndCxxZ3Q7ZnVuY3Rpb24gWmd0KHQpe2lmKHQuaW5jbHVkZXMoIi8iKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiV29ya2VyIGZhY3Rvcnkgb25seSBhbGxvd3MgZmlsZSBuYW1lIGFuZCBubyByZXNvdXJjZSBwYXRoLiIpO3JldHVybiBuZXcgV29ya2VyKHQpfSEoZnVuY3Rpb24odCl7dFt0LlNFUklFU19EQVRBX1VQREFURUQ9MF09IlNFUklFU19EQVRBX1VQREFURUQiLHRbdC5TRVJJRVNfTUVUQURBVEFfQ0hBTkdFRD0xXT0iU0VSSUVTX01FVEFEQVRBX0NIQU5HRUQiLHRbdC5TQ0FMRV9VUERBVEVEPTJdPSJTQ0FMRV9VUERBVEVEIix0W3QuVklFV19CT1hfVVBEQVRFRD0zXT0iVklFV19CT1hfVVBEQVRFRCIsdFt0LklOSVQ9NF09IklOSVQiLHRbdC5ET01fUkVTSVpFRD01XT0iRE9NX1JFU0laRUQiLHRbdC5EQVJLX01PREVfVVBEQVRFRD02XT0iREFSS19NT0RFX1VQREFURUQiLHRbdC5ESVNQT1NFRD03XT0iRElTUE9TRUQifSkoWWd0fHwoWWd0PXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5PTl9SRURSQVdfRU5EPTBdPSJPTl9SRURSQVdfRU5EIix0W3QuT05fQ09OVEVYVF9MT1NUPTFdPSJPTl9DT05URVhUX0xPU1QifSkocWd0fHwocWd0PXt9KSk7Y2xhc3MgWGd0e2NvbnN0cnVjdG9yKHQpe2lmKHRoaXMuY2FsbGJhY2tzPXQuY2FsbGJhY2tzLHQudHlwZSE9PWU2LldFQkdMKXRocm93IG5ldyBSYW5nZUVycm9yKGBDYW5ub3QgdXNlIG5vbiBXRUJHTCByZW5kZXJlciBmb3IgdGhlIG9mZnNjcmVlbiBsaW5lIGNoYXJ0LiBSZWNlaXZlZCAke2U2W3QudHlwZV19IGApO2NvbnN0IGU9bmV3IE1lc3NhZ2VDaGFubmVsO2UucG9ydDEub25tZXNzYWdlPXQ9Pnt0aGlzLm9uTWVzc2FnZUZyb21Xb3JrZXIodC5kYXRhKX0sdGhpcy50eE1lc3NhZ2VQb3J0PWUucG9ydDE7Y29uc3Qgbj10LmNvbnRhaW5lci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpO3RoaXMud29ya2VySW5zdGFuY2U9WGd0LndvcmtlclBvb2wuZ2V0TmV4dCgpO2NvbnN0IG89e3R5cGU6WWd0LklOSVQsY2FudmFzOm4sZGV2aWNlUGl4ZWxSYXRpbzp3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyxkaW06dC5kb21EaW1lbnNpb24scmVuZGVyZXJUeXBlOnQudHlwZSx1c2VEYXJrTW9kZTp0LnVzZURhcmtNb2RlfTt0aGlzLndvcmtlckluc3RhbmNlLnBvc3RNZXNzYWdlKG8sW24sZS5wb3J0Ml0pfWRpc3Bvc2UoKXt0aGlzLnNlbmRNZXNzYWdlKHt0eXBlOllndC5ESVNQT1NFRH0pLHRoaXMud29ya2VySW5zdGFuY2UuZnJlZSgpLHRoaXMudHhNZXNzYWdlUG9ydC5jbG9zZSgpfXNldFhTY2FsZVR5cGUodCl7dGhpcy5zZW5kTWVzc2FnZSh7dHlwZTpZZ3QuU0NBTEVfVVBEQVRFRCxheGlzOiJ4IixzY2FsZVR5cGU6dH0pfXNldFlTY2FsZVR5cGUodCl7dGhpcy5zZW5kTWVzc2FnZSh7dHlwZTpZZ3QuU0NBTEVfVVBEQVRFRCxheGlzOiJ5IixzY2FsZVR5cGU6dH0pfXJlc2l6ZSh0KXt0aGlzLnNlbmRNZXNzYWdlKHt0eXBlOllndC5ET01fUkVTSVpFRCxkaW06dH0pfXNldE1ldGFkYXRhKHQpe3RoaXMuc2VuZE1lc3NhZ2Uoe3R5cGU6WWd0LlNFUklFU19NRVRBREFUQV9DSEFOR0VELG1ldGFkYXRhOnR9KX1zZXRWaWV3Qm94KHQpe3RoaXMuc2VuZE1lc3NhZ2Uoe3R5cGU6WWd0LlZJRVdfQk9YX1VQREFURUQsZXh0ZW50OnR9KX1zZXREYXRhKHQpe2NvbnN0IGU9KGZ1bmN0aW9uIG4odCl7Y29uc3QgZT10LnJlZHVjZSgoKHQsZSk9PnQrZS5wb2ludHMubGVuZ3RoKSwwKTtsZXQgbj0wO2NvbnN0IG89bmV3IEZsb2F0NjRBcnJheSgyKmUpLGk9W107Zm9yKGNvbnN0IGUgb2YgdCl7aS5wdXNoKHtpZDplLmlkLGxlbmd0aDplLnBvaW50cy5sZW5ndGh9KTtmb3IobGV0IHQ9MDt0PGUucG9pbnRzLmxlbmd0aDt0Kyspb1tuKytdPWUucG9pbnRzW3RdLngsb1tuKytdPWUucG9pbnRzW3RdLnl9cmV0dXJue2lkc0FuZExlbmd0aHM6aSxmbGF0dGVuZWRTZXJpZXM6by5idWZmZXJ9fSkodCk7dGhpcy5zZW5kTWVzc2FnZSh7dHlwZTpZZ3QuU0VSSUVTX0RBVEFfVVBEQVRFRCxjb21wYWN0RGF0YVNlcmllczplfSxbZS5mbGF0dGVuZWRTZXJpZXNdKX1zZXRVc2VEYXJrTW9kZSh0KXt0aGlzLnNlbmRNZXNzYWdlKHt0eXBlOllndC5EQVJLX01PREVfVVBEQVRFRCx1c2VEYXJrTW9kZTp0fSl9c2VuZE1lc3NhZ2UodCxlKXtlP3RoaXMudHhNZXNzYWdlUG9ydC5wb3N0TWVzc2FnZSh0LGUpOnRoaXMudHhNZXNzYWdlUG9ydC5wb3N0TWVzc2FnZSh0KX1vbk1lc3NhZ2VGcm9tV29ya2VyKHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2UgcWd0Lk9OX1JFRFJBV19FTkQ6dGhpcy5jYWxsYmFja3Mub25EcmF3RW5kKCk7YnJlYWs7Y2FzZSBxZ3QuT05fQ09OVEVYVF9MT1NUOnRoaXMuY2FsbGJhY2tzLm9uQ29udGV4dExvc3QoKX19fWZ1bmN0aW9uIEtndCh0KXtzd2l0Y2godCl7Y2FzZSBlNi5TVkc6cmV0dXJuIGU2LlNWRztjYXNlIGU2LldFQkdMOnJldHVybihmdW5jdGlvbiBlKCl7cmV0dXJuIF9ydH0pKCk/ZTYuV0VCR0w6ZTYuU1ZHO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHJlbmRlcmVyVHlwZTogJHt0fWApfX1mdW5jdGlvbiBKZ3QodCxlKXtyZXR1cm4ieCI9PT1lP1swLHQud2lkdGhdOlt0LmhlaWdodCwwXX1mdW5jdGlvbiBRZ3QodCxlKXtjb25zdCBuPU1hdGguZmxvb3IodC81MCk7cmV0dXJuIE1hdGgubWluKG4sZSl9ZnVuY3Rpb24gJGd0KHQsZSl7aWYoMSZ0JiYob2EoKSx2ZigwLCJsaW5lIiwyKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49emYoKTtjdSgiemVybyIsMD09PXQpLHltKCJ4MSIsbi5nZXREb21YKHQpKSgieDIiLG4uZ2V0RG9tWCh0KSkoInkyIixuLmRvbURpbS5oZWlnaHQpfX1mdW5jdGlvbiB0aHQodCxlKXtpZigxJnQmJihvYSgpLHZmKDAsImxpbmUiLDMpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj16ZigpO2N1KCJ6ZXJvIiwwPT09dCkseW0oInkxIixuLmdldERvbVkodCkpKCJ4MiIsbi5kb21EaW0ud2lkdGgpKCJ5MiIsbi5nZXREb21ZKHQpKX19WGd0LndvcmtlclBvb2w9bmV3IGNsYXNze2NvbnN0cnVjdG9yKHQsZT0xMCxuPVpndCl7dGhpcy53b3JrZXJSZXNvdXJjZVBhdGg9dCx0aGlzLm1heFBvb2xTaXplPWUsdGhpcy53b3JrZXJGYWN0b3J5PW4sdGhpcy53b3JrZXJzPVtdfWdldE5leHQoKXtsZXQgdDtpZih0aGlzLndvcmtlcnMuZXZlcnkoKCh7YWN0aXZlQ291bnQ6dH0pPT50PjApKSYmdGhpcy53b3JrZXJzLmxlbmd0aDx0aGlzLm1heFBvb2xTaXplKXtjb25zdCBlPXRoaXMud29ya2VyRmFjdG9yeSh0aGlzLndvcmtlclJlc291cmNlUGF0aCk7dD17YWN0aXZlQ291bnQ6MCxwb3N0TWVzc2FnZToodCxuKT0+e2UucG9zdE1lc3NhZ2UodCxuKX0sZnJlZTooKT0+e3QuYWN0aXZlQ291bnQ9TWF0aC5tYXgodC5hY3RpdmVDb3VudC0xLDApfX0sdGhpcy53b3JrZXJzLnB1c2godCl9ZWxzZXtjb25zdCBlPXRoaXMud29ya2Vycy5tYXAoKCh7YWN0aXZlQ291bnQ6dH0pPT50KSksbj1lLmluZGV4T2YoTWF0aC5taW4oLi4uZSkpO3Q9dGhpcy53b3JrZXJzW25dfXJldHVybiB0LmFjdGl2ZUNvdW50KyssdH19KCJjaGFydF93b3JrZXIuanM/X2ZpbGVfaGFzaD01YTE3YmUwYSIpO2NsYXNzIGVodHtnZXREb21YKHQpe3JldHVybiB0aGlzLnhTY2FsZS5mb3J3YXJkKHRoaXMudmlld0V4dGVudC54LEpndCh0aGlzLmRvbURpbSwieCIpLHQpfWdldERvbVkodCl7cmV0dXJuIHRoaXMueVNjYWxlLmZvcndhcmQodGhpcy52aWV3RXh0ZW50LnksSmd0KHRoaXMuZG9tRGltLCJ5IiksdCl9Z2V0WFRpY2tzKCl7cmV0dXJuIHRoaXMueFNjYWxlLnRpY2tzKHRoaXMudmlld0V4dGVudC54LFFndCh0aGlzLmRvbURpbS53aWR0aCx0aGlzLnhHcmlkQ291bnQpKX1nZXRZVGlja3MoKXtyZXR1cm4gdGhpcy55U2NhbGUudGlja3ModGhpcy52aWV3RXh0ZW50LnksUWd0KHRoaXMuZG9tRGltLmhlaWdodCx0aGlzLnlHcmlkQ291bnQpKX19ZnVuY3Rpb24gbmh0KHQsZSxuLG8saSxhKXtsZXQgcjtzd2l0Y2godC5kZWx0YU1vZGUpe2Nhc2UgV2hlZWxFdmVudC5ET01fREVMVEFfUElYRUw6cj0xO2JyZWFrO2Nhc2UgV2hlZWxFdmVudC5ET01fREVMVEFfTElORTpyPTg7YnJlYWs7Y2FzZSBXaGVlbEV2ZW50LkRPTV9ERUxUQV9QQUdFOnI9MjA7YnJlYWs7ZGVmYXVsdDpyPTEsY29uc29sZS53YXJuKGBVbmtub3duIFdoZWVsRXZlbnQgZGVsdGFNb2RlOiAke3QuZGVsdGFNb2RlfS5gKX1jb25zdCBzPXQuZGVsdGFZKnIsbD1zPDA/TWF0aC5tYXgocypvLC0uOTUpOnMqbyx7d2lkdGg6YyxoZWlnaHQ6ZH09bixwPVtpLnJldmVyc2UoZS54LFswLGNdLC10Lm9mZnNldFgqbCksaS5yZXZlcnNlKGUueCxbMCxjXSxjKyhjLXQub2Zmc2V0WCkqbCldLG09W2EucmV2ZXJzZShlLnksW2QsMF0sLXQub2Zmc2V0WSpsKSxhLnJldmVyc2UoZS55LFtkLDBdLGQrKGQtdC5vZmZzZXRZKSpsKV07cmV0dXJue3g6cFsxXTxwWzBdP1twWzFdLHBbMF1dOnAseTptWzFdPG1bMF0/W21bMV0sbVswXV06bX19ZWh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxlaHQpfSxlaHQuybVjbXA9c28oe3R5cGU6ZWh0LHNlbGVjdG9yczpbWyJsaW5lLWNoYXJ0LWdyaWQtdmlldyJdXSxpbnB1dHM6e3ZpZXdFeHRlbnQ6InZpZXdFeHRlbnQiLHhTY2FsZToieFNjYWxlIix4R3JpZENvdW50OiJ4R3JpZENvdW50Iix5U2NhbGU6InlTY2FsZSIseUdyaWRDb3VudDoieUdyaWRDb3VudCIsZG9tRGltOiJkb21EaW0ifSxkZWNsczozLHZhcnM6Mixjb25zdHM6W1sieTEiLCIwIiwzLCJ6ZXJvIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbIngxIiwiMCIsMywiemVybyIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJ5MSIsIjAiXSxbIngxIiwiMCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYob2EoKSxDZigwLCJzdmciKSxIbSgxLCRndCwxLDUsImxpbmUiLDApLEhtKDIsdGh0LDEsNSwibGluZSIsMSksTWYoKSksMiZlJiYoRGMoMSksYmYoIm5nRm9yT2YiLG4uZ2V0WFRpY2tzKCkpLERjKDEpLGJmKCJuZ0Zvck9mIixuLmdldFlUaWNrcygpKSl9LGRpcmVjdGl2ZXM6W3h2XSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVdIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgc3ZnW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIGxpbmVbX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgc3Ryb2tlOiAjY2NjO1xuICAgICAgICBzdHJva2Utd2lkdGg6IDFweDtcbiAgICAgIH1cblxuICAgICAgLnplcm9bX25nY29udGVudC0lQ09NUCVdIHtcbiAgICAgICAgc3Ryb2tlOiAjYWFhO1xuICAgICAgICBzdHJva2Utd2lkdGg6IDEuNXB4O1xuICAgICAgfSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihlaHQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibGluZS1jaGFydC1ncmlkLXZpZXciLHRlbXBsYXRlOic8c3ZnPlxuICAgIDxsaW5lXG4gICAgICAqbmdGb3I9ImxldCB0aWNrIG9mIGdldFhUaWNrcygpIlxuICAgICAgW2NsYXNzLnplcm9dPSJ0aWNrID09PSAwIlxuICAgICAgW2F0dHIueDFdPSJnZXREb21YKHRpY2spIlxuICAgICAgeTE9IjAiXG4gICAgICBbYXR0ci54Ml09ImdldERvbVgodGljaykiXG4gICAgICBbYXR0ci55Ml09ImRvbURpbS5oZWlnaHQiXG4gICAgPjwvbGluZT5cbiAgICA8bGluZVxuICAgICAgKm5nRm9yPSJsZXQgdGljayBvZiBnZXRZVGlja3MoKSJcbiAgICAgIFtjbGFzcy56ZXJvXT0idGljayA9PT0gMCJcbiAgICAgIHgxPSIwIlxuICAgICAgW2F0dHIueTFdPSJnZXREb21ZKHRpY2spIlxuICAgICAgW2F0dHIueDJdPSJkb21EaW0ud2lkdGgiXG4gICAgICBbYXR0ci55Ml09ImdldERvbVkodGljaykiXG4gICAgPjwvbGluZT5cbiAgPC9zdmc+JyxzdHlsZXM6WyJcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgbGluZSB7XG4gICAgICAgIHN0cm9rZTogI2NjYztcbiAgICAgICAgc3Ryb2tlLXdpZHRoOiAxcHg7XG4gICAgICB9XG5cbiAgICAgIC56ZXJvIHtcbiAgICAgICAgc3Ryb2tlOiAjYWFhO1xuICAgICAgICBzdHJva2Utd2lkdGg6IDEuNXB4O1xuICAgICAgfVxuICAgICJdLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLG51bGwse3ZpZXdFeHRlbnQ6W3t0eXBlOlJffV0seFNjYWxlOlt7dHlwZTpSX31dLHhHcmlkQ291bnQ6W3t0eXBlOlJffV0seVNjYWxlOlt7dHlwZTpSX31dLHlHcmlkQ291bnQ6W3t0eXBlOlJffV0sZG9tRGltOlt7dHlwZTpSX31dfSk7Y29uc3Qgb2h0PVsiZG90cyJdO2Z1bmN0aW9uIGlodCh0LGUpe2lmKDEmdCYmKG9hKCksdmYoMCwiY2lyY2xlIiwxMikpLDImdCl7Y29uc3QgdD16ZigpLiRpbXBsaWNpdCxlPXpmKDIpO3ltKCJjeCIsZS5nZXREb21YKHQucG9pbnQueCkpKCJjeSIsZS5nZXREb21ZKHQucG9pbnQueSkpKCJmaWxsIix0Lm1ldGFkYXRhLmNvbG9yKX19ZnVuY3Rpb24gYWh0KHQsZSl7aWYoMSZ0JiYob2EoKSx4ZigwKSxIbSgxLGlodCwxLDMsImNpcmNsZSIsMTEpLE9mKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdCxuPXpmKDIpO0RjKDEpLGJmKCJuZ0lmIixuLnNob3VsZFJlbmRlclRvb2x0aXBQb2ludCh0LnBvaW50KSl9fWZ1bmN0aW9uIHJodCh0LGUpe2lmKDEmdCYmKG9hKCkseGYoMCksSG0oMSxhaHQsMiwxLCJuZy1jb250YWluZXIiLDEwKSxPZigpKSwyJnQpe2NvbnN0IHQ9emYoKTtEYygxKSxiZigibmdGb3JPZiIsdC5jdXJzb3JlZERhdGEpKCJuZ0ZvclRyYWNrQnkiLHQudHJhY2tCeVNlcmllc05hbWUpfX1mdW5jdGlvbiBzaHQodCxlKXtpZigxJnQmJihvYSgpLHZmKDAsInJlY3QiLDEzKSksMiZ0KXtjb25zdCB0PXpmKCk7eW0oIngiLHQuem9vbUJveEluVWlDb29yZGluYXRlLngpKCJ3aWR0aCIsdC56b29tQm94SW5VaUNvb3JkaW5hdGUud2lkdGgpKCJ5Iix0Lnpvb21Cb3hJblVpQ29vcmRpbmF0ZS55KSgiaGVpZ2h0Iix0Lnpvb21Cb3hJblVpQ29vcmRpbmF0ZS5oZWlnaHQpfX1jb25zdCBsaHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm57ZGF0YTp0LGN1cnNvckxvY2F0aW9uSW5EYXRhQ29vcmQ6ZX19O2Z1bmN0aW9uIGNodCh0LGUpe2lmKDEmdCYmKENmKDAsImRpdiIsMTQpLFBmKDEsMTUpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigpLGU9Rm0oMTEpO0RjKDEpLGJmKCJuZ1RlbXBsYXRlT3V0bGV0Iix0LnRvb2x0aXBUZW1wbGF0ZT90LnRvb2x0aXBUZW1wbGF0ZTplKSgibmdUZW1wbGF0ZU91dGxldENvbnRleHQiLGF5KDIsbGh0LHQuY3Vyc29yZWREYXRhLHQuY3Vyc29yTG9jYXRpb25JbkRhdGFDb29yZCkpfX1mdW5jdGlvbiBkaHQodCxlKXtpZigxJnQmJih4ZigwKSxDZigxLCJ0ciIsMTcpLENmKDIsInRkIiwxOCksdmYoMywic3BhbiIpLE1mKCksQ2YoNCwidGQiLDE5KSxQdSg1KSxNZigpLENmKDYsInRkIiksUHUoNyksTWYoKSxDZig4LCJ0ZCIpLFB1KDkpLE1mKCksTWYoKSxPZigpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQ7RGMoMyksbHUoImJhY2tncm91bmQtY29sb3IiLHQubWV0YWRhdGEuY29sb3IpLERjKDIpLHd1KHQubWV0YWRhdGEuZGlzcGxheU5hbWUpLERjKDIpLHd1KHQucG9pbnQueSksRGMoMiksd3UodC5wb2ludC54KX19ZnVuY3Rpb24gcGh0KHQsZSl7aWYoMSZ0JiYoQ2YoMCwidGFibGUiKSxDZigxLCJ0aGVhZCIpLENmKDIsInRyIiksdmYoMywidGgiLDE2KSxDZig0LCJ0aCIpLFB1KDUsIk5hbWUiKSxNZigpLENmKDYsInRoIiksUHUoNywiWSIpLE1mKCksQ2YoOCwidGgiKSxQdSg5LCJYIiksTWYoKSxNZigpLE1mKCksQ2YoMTAsInRib2R5IiksSG0oMTEsZGh0LDEwLDUsIm5nLWNvbnRhaW5lciIsMTApLE1mKCksTWYoKSksMiZ0KXtjb25zdCB0PWUuZGF0YSxuPXpmKCk7RGMoMTEpLGJmKCJuZ0Zvck9mIix0KSgibmdGb3JUcmFja0J5IixuLnRyYWNrQnlTZXJpZXNOYW1lKX19dmFyIG1odDshKGZ1bmN0aW9uKHQpe3RbdC5OT05FPTBdPSJOT05FIix0W3QuRFJBR19aT09NSU5HPTFdPSJEUkFHX1pPT01JTkciLHRbdC5TQ1JPTExfWk9PTUlORz0yXT0iU0NST0xMX1pPT01JTkciLHRbdC5QQU5OSU5HPTNdPSJQQU5OSU5HIn0pKG1odHx8KG1odD17fSkpO2Z1bmN0aW9uIGZodCh0KXtyZXR1cm4gdC5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKX1jbGFzcyB1aHR7Y29uc3RydWN0b3IodCxlKXt0aGlzLmNoYW5nZURldGVjdG9yPXQsdGhpcy5zY3JvbGxTdHJhdGVneT1lLHRoaXMub25WaWV3RXh0ZW50Q2hhbmdlPW5ldyBTeSx0aGlzLm9uVmlld0V4dGVudFJlc2V0PW5ldyBTeSx0aGlzLkludGVyYWN0aW9uU3RhdGU9bWh0LHRoaXMuc3RhdGU9bWh0Lk5PTkUsdGhpcy5zcGVjaWFsS2V5UHJlc3NlZD0hMSx0aGlzLnpvb21Cb3hJblVpQ29vcmRpbmF0ZT17eDowLHdpZHRoOjAsaGVpZ2h0OjAseTowfSx0aGlzLnRvb2x0aXBQb3NpdGlvbnM9W3tvZmZzZXRZOjUsb3JpZ2luWDoic3RhcnQiLG92ZXJsYXlYOiJzdGFydCIsb3JpZ2luWToiYm90dG9tIixvdmVybGF5WToidG9wIn0se29mZnNldFk6NSxvcmlnaW5YOiJlbmQiLG92ZXJsYXlYOiJlbmQiLG9yaWdpblk6ImJvdHRvbSIsb3ZlcmxheVk6InRvcCJ9LHtvZmZzZXRZOi0xNSxvcmlnaW5YOiJzdGFydCIsb3ZlcmxheVg6InN0YXJ0IixvcmlnaW5ZOiJ0b3AiLG92ZXJsYXlZOiJib3R0b20ifSx7b2Zmc2V0WTotMTUsb3JpZ2luWDoiZW5kIixvdmVybGF5WDoiZW5kIixvcmlnaW5ZOiJ0b3AiLG92ZXJsYXlZOiJib3R0b20ifSx7b2Zmc2V0WDo1LG9yaWdpblg6ImVuZCIsb3ZlcmxheVg6InN0YXJ0IixvcmlnaW5ZOiJ0b3AiLG92ZXJsYXlZOiJ0b3AifSx7b2Zmc2V0WDotNSxvcmlnaW5YOiJzdGFydCIsb3ZlcmxheVg6ImVuZCIsb3JpZ2luWToidG9wIixvdmVybGF5WToidG9wIn1dLHRoaXMuY3Vyc29yTG9jYXRpb25JbkRhdGFDb29yZD1udWxsLHRoaXMuY3Vyc29yZWREYXRhPVtdLHRoaXMudG9vbHRpcERpc3BsYXlBdHRhY2hlZD0hMSx0aGlzLnNob3dab29tSW5zdHJ1Y3Rpb249ITEsdGhpcy5kcmFnU3RhcnRDb29yZD1udWxsLHRoaXMuaXNDdXJzb3JJbnNpZGU9ITEsdGhpcy5uZ1Vuc3Vic2NyaWJlPW5ldyBCfW5nQWZ0ZXJWaWV3SW5pdCgpe2xlKHRoaXMuZG90c0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LCJkYmxjbGljayIse3Bhc3NpdmU6ITB9KS5waXBlKGplKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLm9uVmlld0V4dGVudFJlc2V0LmVtaXQoKSx0aGlzLnN0YXRlPW1odC5OT05FLHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCl9KSksbGUod2luZG93LCJrZXlkb3duIix7cGFzc2l2ZTohMH0pLnBpcGUoamUodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCh0PT57Y29uc3QgZT10aGlzLnNob3VsZFBhbih0KTtlIT09dGhpcy5zcGVjaWFsS2V5UHJlc3NlZCYmKHRoaXMuc3BlY2lhbEtleVByZXNzZWQ9ZSx0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpKX0pKSxsZSh3aW5kb3csImtleXVwIix7cGFzc2l2ZTohMH0pLnBpcGUoamUodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCh0PT57Y29uc3QgZT10aGlzLnNob3VsZFBhbih0KTtlIT09dGhpcy5zcGVjaWFsS2V5UHJlc3NlZCYmKHRoaXMuc3BlY2lhbEtleVByZXNzZWQ9ZSx0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpKX0pKSxsZSh0aGlzLmRvdHNDb250YWluZXIubmF0aXZlRWxlbWVudCwibW91c2Vkb3duIix7cGFzc2l2ZTohMH0pLnBpcGUoamUodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCh0PT57Y29uc3QgZT10aGlzLnN0YXRlLG49dGhpcy5zaG91bGRQYW4odCk/bWh0LlBBTk5JTkc6bWh0LkRSQUdfWk9PTUlORztlPT09bWh0Lk5PTkUmJm49PT1taHQuRFJBR19aT09NSU5HJiYodGhpcy5kcmFnU3RhcnRDb29yZD17eDp0Lm9mZnNldFgseTp0Lm9mZnNldFl9LHRoaXMuem9vbUJveEluVWlDb29yZGluYXRlPXt4OnQub2Zmc2V0WCx3aWR0aDowLHk6dC5vZmZzZXRZLGhlaWdodDowfSksZSE9PW4mJih0aGlzLnN0YXRlPW4sdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKSl9KSksbGUodGhpcy5kb3RzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIm1vdXNldXAiLHtwYXNzaXZlOiEwfSkucGlwZShqZSh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKHQ9Pntjb25zdCBlPSh0LmJ1dHRvbnMmaDAuTEVGVCk9PT1oMC5MRUZUO3RoaXMuZHJhZ1N0YXJ0Q29vcmQ9bnVsbDtjb25zdCBuPXRoaXMuem9vbUJveEluVWlDb29yZGluYXRlO2lmKCFlJiZ0aGlzLnN0YXRlPT09bWh0LkRSQUdfWk9PTUlORyYmbi53aWR0aD4wJiZuLmhlaWdodD4wKXtjb25zdCB0PXRoaXMuZ2V0RGF0YVgobi54KSxlPXRoaXMuZ2V0RGF0YVgobi54K24ud2lkdGgpLG89dGhpcy5nZXREYXRhWShuLnkrbi5oZWlnaHQpLGk9dGhpcy5nZXREYXRhWShuLnkpO3RoaXMub25WaWV3RXh0ZW50Q2hhbmdlLmVtaXQoe2RhdGFFeHRlbnQ6e3g6W3QsZV0seTpbbyxpXX19KX10aGlzLnN0YXRlIT09bWh0Lk5PTkUmJih0aGlzLnN0YXRlPW1odC5OT05FLHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCkpfSkpLGxlKHRoaXMuZG90c0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LCJtb3VzZWVudGVyIix7cGFzc2l2ZTohMH0pLnBpcGUoamUodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCh0PT57dGhpcy5pc0N1cnNvckluc2lkZT0hMCx0aGlzLnVwZGF0ZVRvb2x0aXAodCksdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKX0pKSxsZSh0aGlzLmRvdHNDb250YWluZXIubmF0aXZlRWxlbWVudCwibW91c2VsZWF2ZSIse3Bhc3NpdmU6ITB9KS5waXBlKGplKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgodD0+e3RoaXMuZHJhZ1N0YXJ0Q29vcmQ9bnVsbCx0aGlzLmlzQ3Vyc29ySW5zaWRlPSExLHRoaXMudXBkYXRlVG9vbHRpcCh0KSx0aGlzLnN0YXRlPW1odC5OT05FLHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCl9KSksbGUodGhpcy5kb3RzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIm1vdXNlbW92ZSIse3Bhc3NpdmU6ITB9KS5waXBlKGplKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgodD0+e3N3aXRjaCh0aGlzLnN0YXRlKXtjYXNlIG1odC5TQ1JPTExfWk9PTUlORzp0aGlzLnN0YXRlPW1odC5OT05FLHRoaXMudXBkYXRlVG9vbHRpcCh0KSx0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO2JyZWFrO2Nhc2UgbWh0Lk5PTkU6dGhpcy51cGRhdGVUb29sdGlwKHQpLHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7YnJlYWs7Y2FzZSBtaHQuUEFOTklORzp7Y29uc3QgZT0tdC5tb3ZlbWVudFgsbj0tdC5tb3ZlbWVudFkse3dpZHRoOm8saGVpZ2h0Oml9PXRoaXMuZG9tRGltLGE9dGhpcy5nZXREYXRhWChlKSxyPXRoaXMuZ2V0RGF0YVgobytlKSxzPXRoaXMuZ2V0RGF0YVkoaStuKSxsPXRoaXMuZ2V0RGF0YVkobik7dGhpcy5vblZpZXdFeHRlbnRDaGFuZ2UuZW1pdCh7ZGF0YUV4dGVudDp7eDpbYSxyXSx5OltzLGxdfX0pO2JyZWFrfWNhc2UgbWh0LkRSQUdfWk9PTUlORzp7aWYoIXRoaXMuZHJhZ1N0YXJ0Q29vcmQpYnJlYWs7Y29uc3QgZT1bdGhpcy5kcmFnU3RhcnRDb29yZC54LHQub2Zmc2V0WF0sbj1bdGhpcy5kcmFnU3RhcnRDb29yZC55LHQub2Zmc2V0WV07dGhpcy56b29tQm94SW5VaUNvb3JkaW5hdGU9e3g6TWF0aC5taW4oLi4uZSksd2lkdGg6TWF0aC5tYXgoLi4uZSktTWF0aC5taW4oLi4uZSkseTpNYXRoLm1pbiguLi5uKSxoZWlnaHQ6TWF0aC5tYXgoLi4ubiktTWF0aC5taW4oLi4ubil9fXRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCl9fSkpLGxlKHRoaXMuZG90c0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LCJ3aGVlbCIse3Bhc3NpdmU6ITF9KS5waXBlKGplKHRoaXMubmdVbnN1YnNjcmliZSksVmUoKHQ9Pntjb25zdCBlPSF0LmN0cmxLZXkmJiF0LnNoaWZ0S2V5JiZ0LmFsdEtleTtyZXR1cm4gdGhpcy5zaG93Wm9vbUluc3RydWN0aW9uPSFlLHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCksZT8odC5wcmV2ZW50RGVmYXVsdCgpLHp0KHQpKTpkZSgzZTMpLnBpcGUoV2UoKCgpPT57dGhpcy5zaG93Wm9vbUluc3RydWN0aW9uPSExLHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCl9KSksVnQoKCgpPT5udWxsKSkpfSkpLHVlKCh0PT5Cb29sZWFuKHQpKSkpLnN1YnNjcmliZSgodD0+e3RoaXMub25WaWV3RXh0ZW50Q2hhbmdlLmVtaXQoe2RhdGFFeHRlbnQ6bmh0KHQsdGhpcy52aWV3RXh0ZW50LHRoaXMuZG9tRGltLC4wMSx0aGlzLnhTY2FsZSx0aGlzLnlTY2FsZSl9KSx0aGlzLnN0YXRlIT09bWh0LlNDUk9MTF9aT09NSU5HJiYodGhpcy5zdGF0ZT1taHQuU0NST0xMX1pPT01JTkcsdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKSl9KSl9bmdPbkNoYW5nZXMoKXt0aGlzLnVwZGF0ZUN1cnNvcmVkRGF0YUFuZFRvb2x0aXBWaXNpYmlsaXR5KCl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpLHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpfXNob3VsZFBhbih0KXtjb25zdCBlPXQuc2hpZnRLZXl8fHQuYWx0S2V5O2lmKHQgaW5zdGFuY2VvZiBLZXlib2FyZEV2ZW50KXJldHVybiBlO2NvbnN0IG49KHQuYnV0dG9ucyZoMC5MRUZUKT09PWgwLkxFRlQsbz0odC5idXR0b25zJmgwLk1JRERMRSk9PT1oMC5NSURETEU7cmV0dXJuISghbiYmIW8pJiYobyYmIW58fGUpfXRyYWNrQnlTZXJpZXNOYW1lKHQsZSl7cmV0dXJuIGUuaWR9Z2V0RG9tWCh0KXtyZXR1cm4gdGhpcy54U2NhbGUuZm9yd2FyZCh0aGlzLnZpZXdFeHRlbnQueCxKZ3QodGhpcy5kb21EaW0sIngiKSx0KX1nZXREYXRhWCh0KXtyZXR1cm4gdGhpcy54U2NhbGUucmV2ZXJzZSh0aGlzLnZpZXdFeHRlbnQueCxKZ3QodGhpcy5kb21EaW0sIngiKSx0KX1nZXREb21ZKHQpe3JldHVybiB0aGlzLnlTY2FsZS5mb3J3YXJkKHRoaXMudmlld0V4dGVudC55LEpndCh0aGlzLmRvbURpbSwieSIpLHQpfWdldERhdGFZKHQpe3JldHVybiB0aGlzLnlTY2FsZS5yZXZlcnNlKHRoaXMudmlld0V4dGVudC55LEpndCh0aGlzLmRvbURpbSwieSIpLHQpfXNob3VsZFJlbmRlclRvb2x0aXBQb2ludCh0KXtyZXR1cm4gbnVsbCE9PXQmJiFpc05hTih0LngpJiYhaXNOYU4odC55KX11cGRhdGVUb29sdGlwKHQpe3RoaXMuY3Vyc29yTG9jYXRpb25JbkRhdGFDb29yZD17eDp0aGlzLmdldERhdGFYKHQub2Zmc2V0WCkseTp0aGlzLmdldERhdGFZKHQub2Zmc2V0WSl9LHRoaXMudXBkYXRlQ3Vyc29yZWREYXRhQW5kVG9vbHRpcFZpc2liaWxpdHkoKX1vblRvb2x0aXBEaXNwbGF5RGV0YWNoZWQoKXt0aGlzLnRvb2x0aXBEaXNwbGF5QXR0YWNoZWQ9ITF9dXBkYXRlQ3Vyc29yZWREYXRhQW5kVG9vbHRpcFZpc2liaWxpdHkoKXtjb25zdCB0PXRoaXMuY3Vyc29yTG9jYXRpb25JbkRhdGFDb29yZDtpZihudWxsPT09dClyZXR1cm4gdGhpcy5jdXJzb3JlZERhdGE9W10sdm9pZCh0aGlzLnRvb2x0aXBEaXNwbGF5QXR0YWNoZWQ9ITEpO3RoaXMuY3Vyc29yZWREYXRhPXRoaXMuaXNDdXJzb3JJbnNpZGU/dGhpcy5zZXJpZXNEYXRhLm1hcCgodD0+KHtzZXJpZXNEYXR1bTp0LG1ldGFkYXRhOnRoaXMuc2VyaWVzTWV0YWRhdGFNYXBbdC5pZF19KSkpLmZpbHRlcigoKHttZXRhZGF0YTp0fSk9PnQmJnQudmlzaWJsZSYmIUJvb2xlYW4odC5hdXgpKSkubWFwKCgoe3Nlcmllc0RhdHVtOmUsbWV0YWRhdGE6bn0pPT57Y29uc3Qgbz0oZnVuY3Rpb24gaSh0LGUpe2NvbnN0IG49TWF0aC5taW4oaDYodC5tYXAoKCh7eDp0fSk9PnQpKSxlKSx0Lmxlbmd0aC0xKSxvPU1hdGgubWF4KDAsbi0xKTtyZXR1cm4gTWF0aC5hYnModFtvXS54LWUpLU1hdGguYWJzKHRbbl0ueC1lKTw9MD9vOm59KShlLnBvaW50cyx0LngpO3JldHVybntpZDplLmlkLGNsb3Nlc3RQb2ludEluZGV4Om8scG9pbnQ6ZS5wb2ludHNbb10sbWV0YWRhdGE6bn19KSkuZmlsdGVyKCh0PT50KSk6W10sdGhpcy50b29sdGlwRGlzcGxheUF0dGFjaGVkPUJvb2xlYW4odGhpcy5jdXJzb3JlZERhdGEubGVuZ3RoKX19dWh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx1aHQpKGdmKE9iKSxnZihPQikpfSx1aHQuybVjbXA9c28oe3R5cGU6dWh0LHNlbGVjdG9yczpbWyJsaW5lLWNoYXJ0LWludGVyYWN0aXZlLXZpZXciXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihWeShvaHQsNyxLaCksVnkodFYsNSkpLDImZSl7bGV0IHQ7QnkodD1VeSgpKSYmKG4uZG90c0NvbnRhaW5lcj10LmZpcnN0KSxCeSh0PVV5KCkpJiYobi5vdmVybGF5PXQuZmlyc3QpfX0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezImZSYmY3UoInNob3ctem9vbS1pbnN0cnVjdGlvbiIsbi5zaG93Wm9vbUluc3RydWN0aW9uKX0saW5wdXRzOntzZXJpZXNEYXRhOiJzZXJpZXNEYXRhIixzZXJpZXNNZXRhZGF0YU1hcDoic2VyaWVzTWV0YWRhdGFNYXAiLHZpZXdFeHRlbnQ6InZpZXdFeHRlbnQiLHhTY2FsZToieFNjYWxlIix5U2NhbGU6InlTY2FsZSIsZG9tRGltOiJkb21EaW0iLHRvb2x0aXBPcmlnaW5FbDoidG9vbHRpcE9yaWdpbkVsIix0b29sdGlwVGVtcGxhdGU6InRvb2x0aXBUZW1wbGF0ZSJ9LG91dHB1dHM6e29uVmlld0V4dGVudENoYW5nZToib25WaWV3RXh0ZW50Q2hhbmdlIixvblZpZXdFeHRlbnRSZXNldDoib25WaWV3RXh0ZW50UmVzZXQifSxmZWF0dXJlczpbamgoW3twcm92aWRlOk9CLHVzZUZhY3Rvcnk6Zmh0LGRlcHM6W0tCXX1dKSxxb10sZGVjbHM6MTIsdmFyczoxNSxjb25zdHM6W1sxLCJkb3RzIl0sWyJkb3RzIiwiIl0sWzQsIm5nSWYiXSxbImNsYXNzIiwiem9vbS1ib3giLDQsIm5nSWYiXSxbMSwiem9vbS1pbnN0cnVjdGlvbiJdLFsxLCJpbnN0cnVjdGlvbi1jb250ZW50Il0sWyJjZGtPdmVybGF5T3JpZ2luIiwiIiwxLCJ0b29sdGlwLW9yaWdpbiJdLFsidG9vbHRpcE9yaWdpbiIsImNka092ZXJsYXlPcmlnaW4iXSxbImNka0Nvbm5lY3RlZE92ZXJsYXkiLCIiLDMsImNka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW4iLCJjZGtDb25uZWN0ZWRPdmVybGF5T3BlbiIsImNka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbnMiLCJjZGtDb25uZWN0ZWRPdmVybGF5U2Nyb2xsU3RyYXRlZ3kiLCJjZGtDb25uZWN0ZWRPdmVybGF5TG9ja1Bvc2l0aW9uIiwiY2RrQ29ubmVjdGVkT3ZlcmxheUZsZXhpYmxlRGltZW5zaW9ucyIsImNka0Nvbm5lY3RlZE92ZXJsYXlHcm93QWZ0ZXJPcGVuIiwiZGV0YWNoIl0sWyJkZWZhdWx0VG9vbHRpcCIsIiJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiLCJuZ0ZvclRyYWNrQnkiXSxbInIiLCI0Iiw0LCJuZ0lmIl0sWyJyIiwiNCJdLFsxLCJ6b29tLWJveCJdLFsxLCJ0b29sdGlwLWNvbnRhaW5lciJdLFszLCJuZ1RlbXBsYXRlT3V0bGV0IiwibmdUZW1wbGF0ZU91dGxldENvbnRleHQiXSxbMSwiY2lyY2xlLWhlYWRlciJdLFsxLCJ0b29sdGlwLXJvdyJdLFsxLCJ0b29sdGlwLXJvdy1jaXJjbGUiXSxbMSwibmFtZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYob2EoKSxDZigwLCJzdmciLDAsMSksSG0oMixyaHQsMiwyLCJuZy1jb250YWluZXIiLDIpLEhtKDMsc2h0LDEsNCwicmVjdCIsMyksTWYoKSxhYSgpLENmKDQsImRpdiIsNCksQ2YoNSwic3BhbiIsNSksUHUoNiwiQWx0ICsgU2Nyb2xsIHRvIFpvb20iKSxNZigpLE1mKCksdmYoNywiZGl2Iiw2LDcpLEhtKDksY2h0LDIsNSwibmctdGVtcGxhdGUiLDgpLFJmKCJkZXRhY2giLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25Ub29sdGlwRGlzcGxheURldGFjaGVkKCl9KSksSG0oMTAscGh0LDEyLDIsIm5nLXRlbXBsYXRlIixudWxsLDkscXkpKSwyJmUmJihjdSgicGFubmFibGUiLG4uc3BlY2lhbEtleVByZXNzZWQpKCJkcmFnZ2FibGUiLG4uc3RhdGU9PT1uLkludGVyYWN0aW9uU3RhdGUuTk9ORXx8bi5zdGF0ZT09PW4uSW50ZXJhY3Rpb25TdGF0ZS5EUkFHX1pPT01JTkcpKCJwYW5uaW5nIixuLnN0YXRlPT09bi5JbnRlcmFjdGlvblN0YXRlLlBBTk5JTkcpLERjKDIpLGJmKCJuZ0lmIixuLnN0YXRlPT09bi5JbnRlcmFjdGlvblN0YXRlLk5PTkUpLERjKDEpLGJmKCJuZ0lmIixuLnN0YXRlPT09bi5JbnRlcmFjdGlvblN0YXRlLkRSQUdfWk9PTUlORyksRGMoNiksYmYoImNka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW4iLG4udG9vbHRpcE9yaWdpbkVsKSgiY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW4iLG4udG9vbHRpcERpc3BsYXlBdHRhY2hlZCYmbi5zdGF0ZT09PW4uSW50ZXJhY3Rpb25TdGF0ZS5OT05FKSgiY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9ucyIsbi50b29sdGlwUG9zaXRpb25zKSgiY2RrQ29ubmVjdGVkT3ZlcmxheVNjcm9sbFN0cmF0ZWd5IixuLnNjcm9sbFN0cmF0ZWd5KSgiY2RrQ29ubmVjdGVkT3ZlcmxheUxvY2tQb3NpdGlvbiIsITEpKCJjZGtDb25uZWN0ZWRPdmVybGF5RmxleGlibGVEaW1lbnNpb25zIiwhMCkoImNka0Nvbm5lY3RlZE92ZXJsYXlHcm93QWZ0ZXJPcGVuIiwhMCkpfSxkaXJlY3RpdmVzOltQdiwkQix0Vix4dixJdl0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7dXNlci1zZWxlY3Q6bm9uZX0uZG90c1tfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uZG90cy5kcmFnZ2FibGVbX25nY29udGVudC0lQ09NUCVde2N1cnNvcjpjcm9zc2hhaXJ9LmRvdHMucGFubmFibGVbX25nY29udGVudC0lQ09NUCVde2N1cnNvcjpncmFifS5kb3RzLnBhbm5pbmdbX25nY29udGVudC0lQ09NUCVde2N1cnNvcjpncmFiYmluZ30udG9vbHRpcC1yb3ctY2lyY2xlW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtoZWlnaHQ6MTJweDt3aWR0aDoxMnB4fS50b29sdGlwLXJvdy1jaXJjbGVbX25nY29udGVudC0lQ09NUCVdID4gc3Bhbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC42KTtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MTBweDt3aWR0aDoxMHB4fS50b29sdGlwLW9yaWdpbltfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjA7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjB9LnRvb2x0aXAtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjg1KTtib3JkZXItcmFkaXVzOjRweDtjb2xvcjojZmZmO2NvbnRhaW46cGFpbnQgc3R5bGUgbGF5b3V0O2ZvbnQtc2l6ZTouOWVtO292ZXJmbG93OmF1dG87cGFkZGluZzo1cHg7cG9pbnRlci1ldmVudHM6bm9uZTt3aWR0aDoxMDAlfXRoW19uZ2NvbnRlbnQtJUNPTVAlXSwgdGRbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDVweDt0ZXh0LWFsaWduOmxlZnR9dGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjUwMDtwYWRkaW5nLWJvdHRvbTo1cHh9Lnpvb20tYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmaWxsLW9wYWNpdHk6LjAzO2ZpbGw6IzAwMDtzdHJva2U6I2NjY30uem9vbS1pbnN0cnVjdGlvbltfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2xlZnQ6MDtvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDoxMHB4O3RyYW5zaXRpb246b3BhY2l0eSAuNXM7ei1pbmRleDoxfS5pbnN0cnVjdGlvbi1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjYpO2JvcmRlci1yYWRpdXM6NXB4O2NvbG9yOiNmZmY7cGFkZGluZzo1cHggMTBweDt1c2VyLXNlbGVjdDpub25lfS5zaG93LXpvb20taW5zdHJ1Y3Rpb25bX25naG9zdC0lQ09NUCVdICAgLnpvb20taW5zdHJ1Y3Rpb25bX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIodWh0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6ImxpbmUtY2hhcnQtaW50ZXJhY3RpdmUtdmlldyIsdGVtcGxhdGVVcmw6Ii4vbGluZV9jaGFydF9pbnRlcmFjdGl2ZV92aWV3Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vbGluZV9jaGFydF9pbnRlcmFjdGl2ZV92aWV3LmNzcyJdLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2gscHJvdmlkZXJzOlt7cHJvdmlkZTpPQix1c2VGYWN0b3J5OmZodCxkZXBzOltLQl19XX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOk9ifSx7dHlwZTpPQn1dfSkse2RvdHNDb250YWluZXI6W3t0eXBlOmFyLGFyZ3M6WyJkb3RzIix7c3RhdGljOiEwLHJlYWQ6S2h9XX1dLG92ZXJsYXk6W3t0eXBlOmFyLGFyZ3M6W3RWXX1dLHNlcmllc0RhdGE6W3t0eXBlOlJffV0sc2VyaWVzTWV0YWRhdGFNYXA6W3t0eXBlOlJffV0sdmlld0V4dGVudDpbe3R5cGU6Ul99XSx4U2NhbGU6W3t0eXBlOlJffV0seVNjYWxlOlt7dHlwZTpSX31dLGRvbURpbTpbe3R5cGU6Ul99XSx0b29sdGlwT3JpZ2luRWw6W3t0eXBlOlJffV0sdG9vbHRpcFRlbXBsYXRlOlt7dHlwZTpSX31dLG9uVmlld0V4dGVudENoYW5nZTpbe3R5cGU6RV99XSxvblZpZXdFeHRlbnRSZXNldDpbe3R5cGU6RV99XSxzaG93Wm9vbUluc3RydWN0aW9uOlt7dHlwZTpBXyxhcmdzOlsiY2xhc3Muc2hvdy16b29tLWluc3RydWN0aW9uIl19XX0pO2Z1bmN0aW9uIGdodCh0LGUsbixvKXtyZXR1cm57bWFqb3I6W10sbWlub3I6dC50aWNrcyhvLG4pLm1hcCgodD0+KHt2YWx1ZTp0LHRpY2tGb3JtYXR0ZWRTdHJpbmc6ZS5mb3JtYXRUaWNrKHQpfSkpKX19ZnVuY3Rpb24gaGh0KHQsZSxuLG8pe2NvbnN0W2ksYV09byxyPU1hdGguYWJzKGEtaSk7aWYocj4uMDAxKXJldHVybiBnaHQodCxlLG4sbyk7Y29uc3Qgcz10LnRpY2tzKFtpLGFdLG4pLGw9dC50aWNrcyhbaSxhXSwyKSxjPVtdO2xldCBkPShmdW5jdGlvbiBwKHQpe2NvbnN0IGU9dC50b0V4cG9uZW50aWFsKCkuc3BsaXQoImUtIiwyKTtyZXR1cm4gMj09PWUubGVuZ3RoP051bWJlcihlWzFdKS0xOjB9KShyKTtyPDEmJmwuZXZlcnkoKHQ9Pntjb25zdCBlPU1hdGguYWJzKHQpO3JldHVybiBlPj0wJiZlPDF9KSkmJihkKz0xKTtjb25zdCBtPW5ldyBNYXA7Zm9yKGNvbnN0IHQgb2YgbCl7Y29uc3RbbixvPSIiXT1TdHJpbmcodCkuc3BsaXQoIi4iLDIpLGk9TnVtYmVyKG4rIi4iK28uc2xpY2UoMCxkKSk7bS5zZXQoaSx7c3RhcnQ6aSx0aWNrRm9ybWF0dGVkU3RyaW5nOjA9PT1pPyLigJQiOmUuZm9ybWF0UmVhZGFibGUoaSl9KX1jb25zdCBmPTEwKk1hdGgucG93KDEwLC1kKTtmb3IoY29uc3QgdCBvZiBzKWZvcihjb25zdCBuIG9mWy4uLm0ua2V5cygpXS5yZXZlcnNlKCkpe2NvbnN0IG89dC1uO2lmKG8+PTAmJm88Zil7aWYoMD09PW4pYy5wdXNoKHt2YWx1ZTp0LHRpY2tGb3JtYXR0ZWRTdHJpbmc6ZS5mb3JtYXRUaWNrKHQpfSk7ZWxzZXtjb25zdCBlPVN0cmluZyh0KS5zbGljZShTdHJpbmcobikubGVuZ3RoKTtjLnB1c2goe3ZhbHVlOnQsdGlja0Zvcm1hdHRlZFN0cmluZzpg4oCmJHtlfHwiMCJ9YH0pfWJyZWFrfX1yZXR1cm57bWFqb3I6QXJyYXkuZnJvbShtLnZhbHVlcygpKSxtaW5vcjpjfX1jb25zdCBiaHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKTtmdW5jdGlvbiB5aHQodCxlKXtpZigxJnQmJihvYSgpLENmKDAsImciLDE3KSxDZigxLCJ0ZXh0IiksUHUoMiksTWYoKSxDZigzLCJ0aXRsZSIpLFB1KDQpLE1mKCksTWYoKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0LG49emYoKTtEYygxKSxsdSgiZm9udCIsbi5heGlzRm9udCkseW0oIngiLG4udGV4dFhQb3NpdGlvbih0LnZhbHVlKSkoInkiLG4udGV4dFlQb3NpdGlvbih0LnZhbHVlKSksRGMoMSksa3UoIiAiLHQudGlja0Zvcm1hdHRlZFN0cmluZywiICIpLERjKDIpLHd1KG4uZ2V0Rm9ybWF0dGVyKCkuZm9ybWF0TG9uZyh0LnZhbHVlKSl9fWZ1bmN0aW9uIF9odCh0LGUpe2lmKDEmdCYmKENmKDAsInNwYW4iLDIwKSxDZigxLCJzcGFuIiksUHUoMiksTWYoKSxNZigpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj1lLmluZGV4LG89ZS5sYXN0LGk9emYoMik7bHUoImxlZnQiLGkuZ2V0TWFqb3JYUG9zaXRpb24odCksInB4IikoIndpZHRoIixpLmdldE1ham9yV2lkdGhTdHJpbmcodCxvLGkubWFqb3JUaWNrc1tuKzFdKSkoImJvdHRvbSIsaS5nZXRNYWpvcllQb3NpdGlvbih0KSwicHgiKSgiaGVpZ2h0IixpLmdldE1ham9ySGVpZ2h0U3RyaW5nKHQsbyxpLm1ham9yVGlja3NbbisxXSkpKCJmb250IixpLmF4aXNGb250KSxjdSgibWFqb3ItbGFiZWwiLCEwKSgibGFzdCIsbyksYmYoInRpdGxlIixpLmdldEZvcm1hdHRlcigpLmZvcm1hdExvbmcodC5zdGFydCkpLERjKDIpLHd1KHQudGlja0Zvcm1hdHRlZFN0cmluZyl9fWZ1bmN0aW9uIENodCh0LGUpe2lmKDEmdCYmKENmKDAsImRpdiIsMTgpLEhtKDEsX2h0LDMsMTYsInNwYW4iLDE5KSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoKTtEYygxKSxiZigibmdGb3JPZiIsdC5tYWpvclRpY2tzKSgibmdGb3JUcmFja0J5Iix0LnRyYWNrQnlNYWpvclRpY2spfX1jbGFzcyBNaHR7Y29uc3RydWN0b3IoKXt0aGlzLm9uVmlld0V4dGVudENoYW5nZT1uZXcgU3ksdGhpcy5lZGl0TWVudU9wZW5lZD0hMSx0aGlzLm1ham9yVGlja3M9W10sdGhpcy5taW5vclRpY2tzPVtdfW5nT25DaGFuZ2VzKCl7bGV0IHQ9bnVsbDtjb25zdCBlPVFndCgieCI9PT10aGlzLmF4aXM/dGhpcy5kb21EaW0ud2lkdGg6dGhpcy5kb21EaW0uaGVpZ2h0LHRoaXMuZ3JpZENvdW50KTt0PXRoaXMuc2NhbGUgaW5zdGFuY2VvZiBocnQ/aGh0KHRoaXMuc2NhbGUsdGhpcy5nZXRGb3JtYXR0ZXIoKSxlLHRoaXMuYXhpc0V4dGVudCk6dGhpcy5zY2FsZSBpbnN0YW5jZW9mIHlydD8oZnVuY3Rpb24gbih0LGUsbyxpKXtjb25zdFthLHJdPWk7bGV0IHM9dC50aWNrcyhpLDIpO2lmKHItYT49ODY0ZTV8fHMubGVuZ3RoPjIpcmV0dXJuIGdodCh0LGUsbyxpKTtjb25zdCBsPXQudGlja3MoaSxvKTtyZXR1cm57bWFqb3I6cy5tYXAoKHQ9Pih7c3RhcnQ6dCx0aWNrRm9ybWF0dGVkU3RyaW5nOmUuZm9ybWF0U2hvcnQodCl9KSkpLG1pbm9yOmwubWFwKCh0PT4oe3ZhbHVlOnQsdGlja0Zvcm1hdHRlZFN0cmluZzplLmZvcm1hdFRpY2sodCl9KSkpfX0pKHRoaXMuc2NhbGUsdGhpcy5nZXRGb3JtYXR0ZXIoKSxlLHRoaXMuYXhpc0V4dGVudCk6Z2h0KHRoaXMuc2NhbGUsdGhpcy5nZXRGb3JtYXR0ZXIoKSxlLHRoaXMuYXhpc0V4dGVudCksdGhpcy5tYWpvclRpY2tzPXQubWFqb3IsdGhpcy5taW5vclRpY2tzPShmdW5jdGlvbiBvKHQsZSxuLGksYT01KXtpZighdC5sZW5ndGh8fCFiaHQpcmV0dXJuIHQ7Y29uc3Qgcj0ieCI9PT1uPzE6LTE7bGV0IHM9bnVsbDtyZXR1cm4gdC5maWx0ZXIoKHQ9Pntjb25zdCBvPWUodCk7Ymh0LmZvbnQ9aTtjb25zdCBsPWJodC5tZWFzdXJlVGV4dCh0LnRpY2tGb3JtYXR0ZWRTdHJpbmcpLGM9IngiPT09bj9sLndpZHRoOmwuYWN0dWFsQm91bmRpbmdCb3hBc2NlbnQtbC5hY3R1YWxCb3VuZGluZ0JveERlc2NlbnQ7cmV0dXJuIG51bGw9PT1zPyEobytyKmM8MHx8KHM9bytyKmMsMCkpOiEocioocytyKmEtbyk+MHx8KHM9bytyKmMsMCkpfSkpfSkodC5taW5vciwodD0+dGhpcy5nZXREb21Qb3ModC52YWx1ZSkpLHRoaXMuYXhpcywiMTFweCBSb2JvdG8sIHNhbnMtc2VyaWYiKX1nZXRGb3JtYXR0ZXIoKXt2YXIgdDtyZXR1cm4gbnVsbCE9PSh0PXRoaXMuY3VzdG9tRm9ybWF0dGVyKSYmdm9pZCAwIT09dD90OnRoaXMuc2NhbGUuZGVmYXVsdEZvcm1hdHRlcn10cmFja0J5TWlub3JUaWNrKHQpe3JldHVybiB0LnZhbHVlfXRyYWNrQnlNYWpvclRpY2sodCl7cmV0dXJuIHQuc3RhcnR9Z2V0RG9tUG9zKHQpe3JldHVybiB0aGlzLnNjYWxlLmZvcndhcmQodGhpcy5heGlzRXh0ZW50LEpndCh0aGlzLmRvbURpbSx0aGlzLmF4aXMpLHQpfXRleHRYUG9zaXRpb24odCl7cmV0dXJuIngiPT09dGhpcy5heGlzP1N0cmluZyh0aGlzLmdldERvbVBvcyh0KSk6IjEwMCUifXRleHRZUG9zaXRpb24odCl7cmV0dXJuIngiPT09dGhpcy5heGlzPyIiOlN0cmluZyh0aGlzLmdldERvbVBvcyh0KSl9Z2V0TWFqb3JYUG9zaXRpb24odCl7cmV0dXJuInkiPT09dGhpcy5heGlzPzA6TWF0aC5taW4odGhpcy5kb21EaW0ud2lkdGgsTWF0aC5tYXgoMCx0aGlzLmdldERvbVBvcyh0LnN0YXJ0KSkpfWdldE1ham9yV2lkdGhTdHJpbmcodCxlLG4pe3JldHVybiJ5Ij09PXRoaXMuYXhpcz8iIjooZXx8IW4/dGhpcy5kb21EaW0ud2lkdGg6dGhpcy5nZXRNYWpvclhQb3NpdGlvbihuKSktdGhpcy5nZXRNYWpvclhQb3NpdGlvbih0KSsicHgifWdldE1ham9yWVBvc2l0aW9uKHQpe3JldHVybiJ4Ij09PXRoaXMuYXhpcz8wOnRoaXMuZG9tRGltLmhlaWdodC1NYXRoLm1pbih0aGlzLmRvbURpbS5oZWlnaHQsTWF0aC5tYXgoMCx0aGlzLmdldERvbVBvcyh0LnN0YXJ0KSkpfWdldE1ham9ySGVpZ2h0U3RyaW5nKHQsZSxuKXtyZXR1cm4ieCI9PT10aGlzLmF4aXM/IiI6KGV8fCFuP3RoaXMuZG9tRGltLmhlaWdodDp0aGlzLmdldE1ham9yWVBvc2l0aW9uKG4pKS10aGlzLmdldE1ham9yWVBvc2l0aW9uKHQpKyJweCJ9a2V5ZG93blByZXZlbnRDbG9zZSh0KXsiRXNjYXBlIiE9PXQua2V5JiZ0LnN0b3BQcm9wYWdhdGlvbigpfWV4dGVudENoYW5nZWQodCxlKXtsZXQgbj1OdW1iZXIodCksbz1OdW1iZXIoZSk7aWYobzxuKXtjb25zdCB0PW47bj1vLG89dH1OdW1iZXIuaXNGaW5pdGUobikmJk51bWJlci5pc0Zpbml0ZShvKSYmdGhpcy5vblZpZXdFeHRlbnRDaGFuZ2UuZW1pdChbbixvXSl9b25BeGlzVXBkYXRlTWVudU9wZW4odCxlLG4pe3QudmFsdWU9U3RyaW5nKG5bMF0pLGUudmFsdWU9U3RyaW5nKG5bMV0pLHQuZm9jdXMoKX1zZXRFZGl0TWVudU9wZW5lZCh0KXt0aGlzLmVkaXRNZW51T3BlbmVkPXR9fU1odC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TWh0KX0sTWh0Lsm1Y21wPXNvKHt0eXBlOk1odCxzZWxlY3RvcnM6W1sibGluZS1jaGFydC1heGlzIl1dLGlucHV0czp7YXhpc0V4dGVudDoiYXhpc0V4dGVudCIsYXhpczoiYXhpcyIsc2NhbGU6InNjYWxlIixncmlkQ291bnQ6ImdyaWRDb3VudCIsZG9tRGltOiJkb21EaW0iLGN1c3RvbUZvcm1hdHRlcjoiY3VzdG9tRm9ybWF0dGVyIn0sb3V0cHV0czp7b25WaWV3RXh0ZW50Q2hhbmdlOiJvblZpZXdFeHRlbnRDaGFuZ2UifSxmZWF0dXJlczpbcW9dLGRlY2xzOjI2LHZhcnM6MTMsY29uc3RzOltbMSwibGluZSJdLFsxLCJtaW5vciJdLFsxLCJ0aWNrcyJdLFsiY2xhc3MiLCJtaW5vci10aWNrLWxhYmVsIiw0LCJuZ0ZvciIsIm5nRm9yT2YiLCJuZ0ZvclRyYWNrQnkiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsInRpdGxlIiwiQ2xpY2sgdG8gbWFudWFsbHkgc2V0IG1pbiAmIG1heCB2YWx1ZXMiLDMsIm1hdE1lbnVUcmlnZ2VyRm9yIiwibWVudU9wZW5lZCIsIm1lbnVDbG9zZWQiXSxbIm1hdE1lbnVUcmlnZ2VyIiwibWF0TWVudVRyaWdnZXIiXSxbInN2Z0ljb24iLCJlZGl0XzI0cHgiXSxbImNsYXNzIiwibWFqb3IgdGlja3MiLDQsIm5nSWYiXSxbInhQb3NpdGlvbiIsImJlZm9yZSIsMywieVBvc2l0aW9uIl0sWyJtYW51YWxDb250cm9sIiwibWF0TWVudSJdLFsxLCJleHRlbnQtZWRpdC1pbnB1dCIsMywiY2xpY2siLCJrZXlkb3duIl0sWyJ0eXBlIiwibnVtYmVyIiwzLCJ2YWx1ZSJdLFsibWluSW5wdXQiLCIiXSxbIm1heElucHV0IiwiIl0sWzEsImV4dGVudC1lZGl0LWNvbnRyb2wiLDMsImtleWRvd24iXSxbIm1hdC1yYWlzZWQtYnV0dG9uIiwiIiwiY29sb3IiLCJwcmltYXJ5IiwxLCJleHRlbnQtZWRpdC1jaGFuZ2UiLDMsImNsaWNrIl0sWyJtYXQtc3Ryb2tlZC1idXR0b24iLCIiLDEsImV4dGVudC1lZGl0LWNhbmNlbCIsMywiY2xpY2siXSxbMSwibWlub3ItdGljay1sYWJlbCJdLFsxLCJtYWpvciIsInRpY2tzIl0sWzMsIm1ham9yLWxhYmVsIiwibGFzdCIsImxlZnQiLCJ3aWR0aCIsImJvdHRvbSIsImhlaWdodCIsImZvbnQiLCJ0aXRsZSIsNCwibmdGb3IiLCJuZ0Zvck9mIiwibmdGb3JUcmFja0J5Il0sWzMsInRpdGxlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUpe2NvbnN0IHQ9d2YoKTtDZigwLCJkaXYiKSx2ZigxLCJkaXYiLDApLENmKDIsImRpdiIsMSksb2EoKSxDZigzLCJzdmciLDIpLEhtKDQseWh0LDUsNiwiZyIsMyksTWYoKSxhYSgpLENmKDUsImJ1dHRvbiIsNCw1KSxSZigibWVudU9wZW5lZCIsKGZ1bmN0aW9uIGUoKXtQaSh0KTtjb25zdCBvPUZtKDE1KSxpPUZtKDIwKTtyZXR1cm4gbi5vbkF4aXNVcGRhdGVNZW51T3BlbihvLGksbi5heGlzRXh0ZW50KSxuLnNldEVkaXRNZW51T3BlbmVkKCEwKX0pKSgibWVudUNsb3NlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5zZXRFZGl0TWVudU9wZW5lZCghMSl9KSksdmYoNywibWF0LWljb24iLDYpLE1mKCksTWYoKSxIbSg4LENodCwyLDIsImRpdiIsNyksTWYoKSxDZig5LCJtYXQtbWVudSIsOCw5KSxDZigxMSwiZGl2IiwxMCksUmYoImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKX0pKSgia2V5ZG93biIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ua2V5ZG93blByZXZlbnRDbG9zZShlKX0pKSxDZigxMiwibGFiZWwiKSxQdSgxMywibWluIiksTWYoKSx2ZigxNCwiaW5wdXQiLDExLDEyKSxNZigpLENmKDE2LCJkaXYiLDEwKSxSZigiY2xpY2siLChmdW5jdGlvbiB0KGUpe3JldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpfSkpKCJrZXlkb3duIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5rZXlkb3duUHJldmVudENsb3NlKGUpfSkpLENmKDE3LCJsYWJlbCIpLFB1KDE4LCJtYXgiKSxNZigpLHZmKDE5LCJpbnB1dCIsMTEsMTMpLE1mKCksQ2YoMjEsImRpdiIsMTQpLFJmKCJrZXlkb3duIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5rZXlkb3duUHJldmVudENsb3NlKGUpfSkpLENmKDIyLCJidXR0b24iLDE1KSxSZigiY2xpY2siLChmdW5jdGlvbiBlKCl7UGkodCk7Y29uc3Qgbz1GbSgxNSksaT1GbSgyMCksYT1GbSg2KTtyZXR1cm4gbi5leHRlbnRDaGFuZ2VkKG8udmFsdWUsaS52YWx1ZSksYS5jbG9zZU1lbnUoKX0pKSxQdSgyMywiIENoYW5nZSAiKSxNZigpLENmKDI0LCJidXR0b24iLDE2KSxSZigiY2xpY2siLChmdW5jdGlvbiBlKCl7UGkodCk7cmV0dXJuIEZtKDYpLmNsb3NlTWVudSgpfSkpLFB1KDI1LCIgQ2FuY2VsICIpLE1mKCksTWYoKSxNZigpfWlmKDImZSl7Y29uc3QgdD1GbSgxMCk7bXUobi5heGlzKyItYXhpcyBheGlzIiksRGMoNCksYmYoIm5nRm9yT2YiLG4ubWlub3JUaWNrcykoIm5nRm9yVHJhY2tCeSIsbi50cmFja0J5TWlub3JUaWNrKSxEYygxKSxjdSgiZXh0ZW50LWVkaXQtYnV0dG9uIiwhMCkoImV4dGVudC1lZGl0LW1lbnUtb3BlbmVkIixuLmVkaXRNZW51T3BlbmVkKSxiZigibWF0TWVudVRyaWdnZXJGb3IiLHQpLERjKDMpLGJmKCJuZ0lmIixuLm1ham9yVGlja3MubGVuZ3RoKSxEYygxKSxiZigieVBvc2l0aW9uIiwieSI9PT1uLmF4aXM/ImFib3ZlIjoiYmVsb3ciKSxEYyg1KSxiZigidmFsdWUiLG4uYXhpc0V4dGVudFswXSksRGMoNSksYmYoInZhbHVlIixuLmF4aXNFeHRlbnRbMV0pfX0sZGlyZWN0aXZlczpbeHYsTkwscXEsTXEsUHYsanFdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17Y29udGFpbjpzdHJpY3Q7ZGlzcGxheTpmbGV4O292ZXJmbG93OmhpZGRlbn0ubWFqb3ItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCB0ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmaWxsOmN1cnJlbnRDb2xvcjtmb250LXNpemU6MTFweDt1c2VyLXNlbGVjdDpub25lfS5heGlzW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0ubWFqb3JbX25nY29udGVudC0lQ09NUCVdLCAubWlub3JbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MSAwO292ZXJmbG93OmhpZGRlbn0ubGluZVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojYWFhO2ZsZXg6MCAwIDFweDtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaH0udGlja3NbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV17ZmxleC1kaXJlY3Rpb246Y29sdW1ufS54LWF4aXNbX25nY29udGVudC0lQ09NUCVdICAgLmxpbmVbX25nY29udGVudC0lQ09NUCVde21hcmdpbi1ib3R0b206M3B4fS54LWF4aXNbX25nY29udGVudC0lQ09NUCVdICAgdGV4dFtfbmdjb250ZW50LSVDT01QJV17ZG9taW5hbnQtYmFzZWxpbmU6dGV4dC1iZWZvcmUtZWRnZTt0ZXh0LWFuY2hvcjptaWRkbGV9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAudGlja3NbX25nY29udGVudC0lQ09NUCVdey13ZWJraXQtbWFzay1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMwMDAwIDAlLCAjMDAwIDEwJSwgIzAwMCA5MCUsICMwMDAwIDEwMCUpO21hc2staW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMDAwMCAwJSwgIzAwMCAxMCUsICMwMDAgOTAlLCAjMDAwMCAxMDAlKX0ueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZX0ueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tbGVmdDo1cHh9LnktYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICB0ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtkb21pbmFudC1iYXNlbGluZTpjZW50cmFsO3RleHQtYW5jaG9yOmVuZH0ueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50aWNrc1tfbmdjb250ZW50LSVDT01QJV17LXdlYmtpdC1tYXNrLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMwMDAwIDAlLCAjMDAwIDEwJSwgIzAwMCA5MCUsICMwMDAwIDEwMCUpO21hc2staW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzAwMDAgMCUsICMwMDAgMTAlLCAjMDAwIDkwJSwgIzAwMDAgMTAwJSl9LmV4dGVudC1lZGl0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZWVlO2ZvbnQtc2l6ZTowO2hlaWdodDoyNHB4O2xpbmUtaGVpZ2h0OjI0cHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6NXB4O3RvcDo1cHg7dmlzaWJpbGl0eTpoaWRkZW47d2lkdGg6MjRweH0uZXh0ZW50LWVkaXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTZweDt3aWR0aDoxNnB4O2xpbmUtaGVpZ2h0OjE2cHh9LmV4dGVudC1lZGl0LWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7Y29sdW1uLWdhcDo1cHg7ZGlzcGxheTpncmlkO2ZvbnQtc2l6ZToxMnB4O2dyaWQtdGVtcGxhdGUtY29sdW1uczozMHB4IG1pbm1heChhdXRvLCAxMDBweCk7aGVpZ2h0OjMwcHg7bWFyZ2luOjEwcHggMjBweH0uZXh0ZW50LWVkaXQtaW5wdXRbX25nY29udGVudC0lQ09NUCVdICAgaW5wdXRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6aW5oZXJpdDtib3JkZXItcmFkaXVzOjRweDtib3JkZXItc3R5bGU6c29saWQ7Y29sb3I6aW5oZXJpdH0uZXh0ZW50LWVkaXQtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7bWFyZ2luOjEwcHggMjBweH0uZXh0ZW50LWVkaXQtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2hlaWdodDozMHB4O2xpbmUtaGVpZ2h0OjEuNDttYXJnaW4tbGVmdDo1cHg7cGFkZGluZzowIDEwcHh9LmF4aXNbX25nY29udGVudC0lQ09NUCVdOmhvdmVyICAgLmV4dGVudC1lZGl0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5heGlzW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cy13aXRoaW4gICAuZXh0ZW50LWVkaXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmV4dGVudC1lZGl0LW1lbnUtb3BlbmVkW19uZ2NvbnRlbnQtJUNPTVAlXXt2aXNpYmlsaXR5OnZpc2libGV9Lm1ham9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47Y29udGFpbjpzdHJpY3R9Lm1ham9yW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYWpvci1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO3doaXRlLXNwYWNlOm5vd3JhcH0ubWFqb3JbX25nY29udGVudC0lQ09NUCVdICAgLm1ham9yLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHNwYW5bX25nY29udGVudC0lQ09NUCVde21heC13aWR0aDoxMDAlfS54LWF4aXNbX25nY29udGVudC0lQ09NUCVdICAgLm1ham9yLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItbGVmdDoxcHggc29saWQgIzllOWU5ZTtwYWRkaW5nOjAgNXB4fS54LWF4aXNbX25nY29udGVudC0lQ09NUCVdICAgLm1ham9yLWxhYmVsLmxhc3RbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1yaWdodDoxcHggc29saWQgIzllOWU5ZX0ueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYWpvci1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzllOWU5ZTtoZWlnaHQ6MTAwJTtwYWRkaW5nOjVweCAwO3dpZHRoOjEwMCV9LnktYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAubWFqb3ItbGFiZWwubGFzdFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXRvcDoxcHggc29saWQgIzllOWU5ZX0ueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYWpvci1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0gPiBzcGFuW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXJ9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKE1odCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJsaW5lLWNoYXJ0LWF4aXMiLHRlbXBsYXRlVXJsOiJsaW5lX2NoYXJ0X2F4aXNfdmlldy5uZy5odG1sIixzdHlsZVVybHM6WyJsaW5lX2NoYXJ0X2F4aXNfdmlldy5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSxudWxsLHtheGlzRXh0ZW50Olt7dHlwZTpSX31dLGF4aXM6W3t0eXBlOlJffV0sc2NhbGU6W3t0eXBlOlJffV0sZ3JpZENvdW50Olt7dHlwZTpSX31dLGRvbURpbTpbe3R5cGU6Ul99XSxjdXN0b21Gb3JtYXR0ZXI6W3t0eXBlOlJffV0sb25WaWV3RXh0ZW50Q2hhbmdlOlt7dHlwZTpFX31dfSk7Y29uc3Qgdmh0PVsic2VyaWVzVmlldyJdLHhodD1bInhBeGlzIl0sT2h0PVsieUF4aXMiXSxQaHQ9WyJjaGFydEVsIl07ZnVuY3Rpb24gd2h0KHQsZSl7aWYoMSZ0JiZ2ZigwLCJsaW5lLWNoYXJ0LWdyaWQtdmlldyIsMTUpLDImdCl7Y29uc3QgdD16ZigpO2JmKCJ2aWV3RXh0ZW50Iix0LnZpZXdCb3gpKCJ4U2NhbGUiLHQueFNjYWxlKSgieVNjYWxlIix0LnlTY2FsZSkoInhHcmlkQ291bnQiLHQuWF9HUklEX0NPVU5UKSgieUdyaWRDb3VudCIsdC5ZX0dSSURfQ09VTlQpKCJkb21EaW0iLHQuZG9tRGltZW5zaW9ucy5tYWluKX19ZnVuY3Rpb24ga2h0KHQsZSl7MSZ0JiYob2EoKSx2ZigwLCJzdmciLG51bGwsMTYpKX1mdW5jdGlvbiBTaHQodCxlKXsxJnQmJnZmKDAsImNhbnZhcyIsbnVsbCwxNil9ZnVuY3Rpb24gRGh0KHQsZSl7aWYoMSZ0JiYoeGYoMCksSG0oMSxraHQsMiwwLCJzdmciLDUpLEhtKDIsU2h0LDIsMCwiY2FudmFzIiw1KSxPZigpKSwyJnQpe2NvbnN0IHQ9emYoKTtEYygxKSxiZigibmdJZiIsdC5nZXRSZW5kZXJlclR5cGUoKT09PXQuUmVuZGVyZXJUeXBlLlNWRyksRGMoMSksYmYoIm5nSWYiLHQuZ2V0UmVuZGVyZXJUeXBlKCk9PT10LlJlbmRlcmVyVHlwZS5XRUJHTCl9fWZ1bmN0aW9uIFJodCh0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO0NmKDAsImxpbmUtY2hhcnQtaW50ZXJhY3RpdmUtdmlldyIsMTcpLFJmKCJvblZpZXdFeHRlbnRDaGFuZ2UiLChmdW5jdGlvbiBlKG4pe1BpKHQpO3JldHVybiB6ZigpLm9uVmlld0JveENoYW5nZWQobil9KSkoIm9uVmlld0V4dGVudFJlc2V0IiwoZnVuY3Rpb24gZSgpe1BpKHQpO3JldHVybiB6ZigpLnZpZXdCb3hSZXNldCgpfSkpLE1mKCl9aWYoMiZ0KXtjb25zdCB0PXpmKCksZT1GbSgxKTtiZigic2VyaWVzRGF0YSIsdC5zZXJpZXNEYXRhKSgic2VyaWVzTWV0YWRhdGFNYXAiLHQuc2VyaWVzTWV0YWRhdGFNYXApKCJ2aWV3RXh0ZW50Iix0LnZpZXdCb3gpKCJ4U2NhbGUiLHQueFNjYWxlKSgieVNjYWxlIix0LnlTY2FsZSkoInRvb2x0aXBPcmlnaW5FbCIsZSkoImRvbURpbSIsdC5kb21EaW1lbnNpb25zLm1haW4pKCJ0b29sdGlwVGVtcGxhdGUiLHQudG9vbHRpcFRlbXBsYXRlKX19Y29uc3QgRWh0PWZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybnt4U2NhbGU6dCx5U2NhbGU6ZSxkb21EaW1lbnNpb246bix2aWV3RXh0ZW50Om99fTtmdW5jdGlvbiBBaHQodCxlKXtpZigxJnQmJihDZigwLCJkaXYiLDE4KSxQZigxLDE5KSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoKTtEYygxKSxiZigibmdUZW1wbGF0ZU91dGxldCIsdC5jdXN0b21WaXNUZW1wbGF0ZSkoIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0IixzeSgyLEVodCx0LnhTY2FsZSx0LnlTY2FsZSx0LmRvbURpbWVuc2lvbnMubWFpbix0LnZpZXdCb3gpKX19ZnVuY3Rpb24gVGh0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwibGluZS1jaGFydC1heGlzIiwyMCksUmYoIm9uVmlld0V4dGVudENoYW5nZSIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKCkub25WaWV3Qm94Q2hhbmdlZEZyb21BeGlzKG4sInkiKX0pKSxNZigpfWlmKDImdCl7Y29uc3QgdD16ZigpO2JmKCJheGlzRXh0ZW50Iix0LnZpZXdCb3gueSkoImN1c3RvbUZvcm1hdHRlciIsdC5jdXN0b21ZRm9ybWF0dGVyKSgiZG9tRGltIix0LmRvbURpbWVuc2lvbnMueUF4aXMpKCJncmlkQ291bnQiLHQuWV9HUklEX0NPVU5UKSgic2NhbGUiLHQueVNjYWxlKX19ZnVuY3Rpb24gTmh0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwibGluZS1jaGFydC1heGlzIiwyMSksUmYoIm9uVmlld0V4dGVudENoYW5nZSIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKCkub25WaWV3Qm94Q2hhbmdlZEZyb21BeGlzKG4sIngiKX0pKSxNZigpfWlmKDImdCl7Y29uc3QgdD16ZigpO2JmKCJheGlzRXh0ZW50Iix0LnZpZXdCb3gueCkoImN1c3RvbUZvcm1hdHRlciIsdC5jdXN0b21YRm9ybWF0dGVyKSgiZG9tRGltIix0LmRvbURpbWVuc2lvbnMueEF4aXMpKCJncmlkQ291bnQiLHQuWF9HUklEX0NPVU5UKSgic2NhbGUiLHQueFNjYWxlKX19Y29uc3Qgemh0PWZ1bmN0aW9uKHQsZSxuLG8saSl7cmV0dXJue3hTY2FsZTp0LHlTY2FsZTplLGRvbURpbWVuc2lvbjpuLHZpZXdFeHRlbnQ6byxmb3JtYXR0ZXI6aX19O2Z1bmN0aW9uIElodCh0LGUpe2lmKDEmdCYmKENmKDAsImRpdiIsMTgpLFBmKDEsMTkpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigpO0RjKDEpLGJmKCJuZ1RlbXBsYXRlT3V0bGV0Iix0LmN1c3RvbVhBeGlzVGVtcGxhdGUpKCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCIsbHkoMix6aHQsdC54U2NhbGUsdC55U2NhbGUsdC5kb21EaW1lbnNpb25zLnhBeGlzLHQudmlld0JveCx0LmN1c3RvbVhGb3JtYXR0ZXJ8fHQueFNjYWxlLmRlZmF1bHRGb3JtYXR0ZXIpKX19ZnVuY3Rpb24gSGh0KHQsZSl7MSZ0JiYoQ2YoMCwiZGl2IiwyMiksdmYoMSwic3BhbiIsMjMpLE1mKCkpfWNvbnN0IEZodD1mdW5jdGlvbih0LGUpe3JldHVybntjb250YWluZXI6ITAsImRhcmstbW9kZSI6dCwibGluZS1vbmx5LW1vZGUiOmV9fSxMaHQ9e3g6WzAsMV0seTpbMCwxXX07Y2xhc3MgQmh0e2NvbnN0cnVjdG9yKHQpe3RoaXMuY2hhbmdlRGV0ZWN0b3I9dCx0aGlzLlJlbmRlcmVyVHlwZT1lNix0aGlzLnVzZURhcmtNb2RlPSExLHRoaXMucHJlZmVycmVkUmVuZGVyZXJUeXBlPWU2LldFQkdMLHRoaXMueFNjYWxlVHlwZT1uNi5MSU5FQVIsdGhpcy55U2NhbGVUeXBlPW42LkxJTkVBUix0aGlzLmxpbmVPbmx5PSExLHRoaXMub25WaWV3Qm94T3ZlcnJpZGRlbj1uZXcgVygxKSx0aGlzLmlnbm9yZVlPdXRsaWVycz0hMSx0aGlzLllfR1JJRF9DT1VOVD02LHRoaXMuWF9HUklEX0NPVU5UPTEwLHRoaXMueFNjYWxlPWdydCh0aGlzLnhTY2FsZVR5cGUpLHRoaXMueVNjYWxlPWdydCh0aGlzLnhTY2FsZVR5cGUpLHRoaXMudmlld0JveD1MaHQsdGhpcy5kb21EaW1lbnNpb25zPXttYWluOnt3aWR0aDowLGhlaWdodDowfSx4QXhpczp7d2lkdGg6MCxoZWlnaHQ6MH0seUF4aXM6e3dpZHRoOjAsaGVpZ2h0OjB9fSx0aGlzLnNob3dDaGFydFJlbmRlcmVyRWxlbWVudD0hMCx0aGlzLmxpbmVDaGFydD1udWxsLHRoaXMuaXNEYXRhVXBkYXRlZD0hMSx0aGlzLmlzTWV0YWRhdGFVcGRhdGVkPSExLHRoaXMuaXNGaXhlZFZpZXdCb3hVcGRhdGVkPSExLHRoaXMuaXNWaWV3Qm94T3ZlcnJpZGRlbj0hMSx0aGlzLnVzZURhcmtNb2RlVXBkYXRlZD0hMSx0aGlzLmlzVmlld0JveENoYW5nZWQ9ITAsdGhpcy5zY2FsZVVwZGF0ZWQ9ITAsdGhpcy5pc1JlbmRlcmluZ0NvbnRleHRMb3N0PSExfW5nT25Jbml0KCl7dGhpcy5vblZpZXdCb3hPdmVycmlkZGVuLm5leHQodGhpcy5pc1ZpZXdCb3hPdmVycmlkZGVuKX1uZ09uQ2hhbmdlcyh0KXt0LnhTY2FsZVR5cGUmJih0aGlzLnhTY2FsZT1ncnQodGhpcy54U2NhbGVUeXBlKSx0aGlzLnNjYWxlVXBkYXRlZD0hMCksdC55U2NhbGVUeXBlJiYodGhpcy55U2NhbGU9Z3J0KHRoaXMueVNjYWxlVHlwZSksdGhpcy5zY2FsZVVwZGF0ZWQ9ITApLHQuc2VyaWVzRGF0YSYmKHRoaXMuaXNEYXRhVXBkYXRlZD0hMCksdC5maXhlZFZpZXdCb3gmJih0aGlzLmlzRml4ZWRWaWV3Qm94VXBkYXRlZD0hMCksdC5zZXJpZXNNZXRhZGF0YU1hcCYmKHRoaXMuaXNNZXRhZGF0YVVwZGF0ZWQ9ITApLHQudXNlRGFya01vZGUmJih0aGlzLnVzZURhcmtNb2RlVXBkYXRlZD0hMCksdGhpcy5zY2FsZVVwZGF0ZWQmJnRoaXMuc2V0SXNWaWV3Qm94T3ZlcnJpZGRlbighMSksdGhpcy5pc1ZpZXdCb3hDaGFuZ2VkPXRoaXMuaXNWaWV3Qm94Q2hhbmdlZHx8dGhpcy5zY2FsZVVwZGF0ZWR8fCF0aGlzLmlzVmlld0JveE92ZXJyaWRkZW4mJnRoaXMuc2hvdWxkVXBkYXRlRGVmYXVsdFZpZXdCb3godCksdGhpcy51cGRhdGVMaW5lQ2hhcnQoKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLmluaXRpYWxpemVDaGFydCgpLHRoaXMudXBkYXRlTGluZUNoYXJ0KCksdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCl9cmVjb3ZlclJlbmRlcmVySWZOZWVkZWQoKXt0aGlzLmlzUmVuZGVyaW5nQ29udGV4dExvc3QmJiF0aGlzLmRpc2FibGVVcGRhdGUmJih0aGlzLnNob3dDaGFydFJlbmRlcmVyRWxlbWVudD0hMSx0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKSx0aGlzLnNob3dDaGFydFJlbmRlcmVyRWxlbWVudD0hMCx0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKSx0aGlzLmluaXRpYWxpemVDaGFydCgpLHRoaXMuc2NhbGVVcGRhdGVkPSEwLHRoaXMuaXNNZXRhZGF0YVVwZGF0ZWQ9ITAsdGhpcy5pc0RhdGFVcGRhdGVkPSEwLHRoaXMudXNlRGFya01vZGVVcGRhdGVkPSEwLHRoaXMuaXNGaXhlZFZpZXdCb3hVcGRhdGVkPSEwLHRoaXMuaXNWaWV3Qm94Q2hhbmdlZD0hMCx0aGlzLmlzUmVuZGVyaW5nQ29udGV4dExvc3Q9ITEpfW9uVmlld1Jlc2l6ZSgpe3RoaXMubGluZUNoYXJ0JiYodGhpcy5yZWFkQW5kVXBkYXRlRG9tRGltZW5zaW9ucygpLHRoaXMubGluZUNoYXJ0LnJlc2l6ZSh0aGlzLmRvbURpbWVuc2lvbnMubWFpbiksdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCkpfXNob3VsZFVwZGF0ZURlZmF1bHRWaWV3Qm94KHQpe2lmKHQueFNjYWxlVHlwZXx8dC55U2NhbGVUeXBlfHx0Lmlnbm9yZVlPdXRsaWVycylyZXR1cm4hMDtpZih0LnNlcmllc0RhdGEpcmV0dXJuITA7Y29uc3QgZT10LnNlcmllc01ldGFkYXRhTWFwO2lmKGUpe2NvbnN0IHQ9ZS5wcmV2aW91c1ZhbHVlO2lmKE9iamVjdC5rZXlzKHRoaXMuc2VyaWVzTWV0YWRhdGFNYXApLmxlbmd0aCE9PU9iamVjdC5rZXlzKG51bGwhPXQ/dDp7fSkubGVuZ3RoKXJldHVybiEwO2Zvcihjb25zdFtlLG5db2YgT2JqZWN0LmVudHJpZXModGhpcy5zZXJpZXNNZXRhZGF0YU1hcCkpe2NvbnN0IG89dCYmdFtlXTtpZighb3x8bi52aXNpYmxlIT09by52aXNpYmxlKXJldHVybiEwfX1yZXR1cm4hMX1vbkNvbnRleHRMb3N0KCl7dGhpcy5pc1JlbmRlcmluZ0NvbnRleHRMb3N0PSEwLHRoaXMubGluZUNoYXJ0JiYodGhpcy5saW5lQ2hhcnQuZGlzcG9zZSgpLHRoaXMubGluZUNoYXJ0PW51bGwpfXRyaWdnZXJDb250ZXh0TG9zdEZvclRlc3QoKXt0aGlzLm9uQ29udGV4dExvc3QoKX1nZXRMaW5lQ2hhcnRGb3JUZXN0KCl7cmV0dXJuIHRoaXMubGluZUNoYXJ0fWluaXRpYWxpemVDaGFydCgpe3RoaXMubGluZUNoYXJ0JiZ0aGlzLmxpbmVDaGFydC5kaXNwb3NlKCk7Y29uc3QgdD10aGlzLmdldFJlbmRlcmVyVHlwZSgpLGU9e29uRHJhd0VuZDooKT0+e30sb25Db250ZXh0TG9zdDp0aGlzLm9uQ29udGV4dExvc3QuYmluZCh0aGlzKX07bGV0IG49bnVsbDtzd2l0Y2godGhpcy5yZWFkQW5kVXBkYXRlRG9tRGltZW5zaW9ucygpLHQpe2Nhc2UgZTYuU1ZHOm49e3R5cGU6ZTYuU1ZHLGNvbnRhaW5lcjp0aGlzLmNoYXJ0RWwubmF0aXZlRWxlbWVudCxjYWxsYmFja3M6ZSxkb21EaW1lbnNpb246dGhpcy5kb21EaW1lbnNpb25zLm1haW4sdXNlRGFya01vZGU6dGhpcy51c2VEYXJrTW9kZX07YnJlYWs7Y2FzZSBlNi5XRUJHTDpuPXt0eXBlOmU2LldFQkdMLGNvbnRhaW5lcjp0aGlzLmNoYXJ0RWwubmF0aXZlRWxlbWVudCxkZXZpY2VQaXhlbFJhdGlvOndpbmRvdy5kZXZpY2VQaXhlbFJhdGlvLGNhbGxiYWNrczplLGRvbURpbWVuc2lvbjp0aGlzLmRvbURpbWVuc2lvbnMubWFpbix1c2VEYXJrTW9kZTp0aGlzLnVzZURhcmtNb2RlfTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgPGxpbmUtY2hhcnQ+IGRvZXMgbm90IHlldCBzdXBwb3J0IHJlbmRlcmVyVHlwZTogJHt0fWApfWNvbnN0IG89dCE9PWU2LlNWRyYmQ3J0KCk7dGhpcy5saW5lQ2hhcnQ9bmV3KG8/WGd0OkdndCkobil9bmdPbkRlc3Ryb3koKXt0aGlzLmxpbmVDaGFydCYmdGhpcy5saW5lQ2hhcnQuZGlzcG9zZSgpfWdldFJlbmRlcmVyVHlwZSgpe3JldHVybiBLZ3QodGhpcy5wcmVmZXJyZWRSZW5kZXJlclR5cGUpfXJlYWRBbmRVcGRhdGVEb21EaW1lbnNpb25zKCl7dGhpcy5kb21EaW1lbnNpb25zPXttYWluOnt3aWR0aDp0aGlzLnNlcmllc1ZpZXcubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCxoZWlnaHQ6dGhpcy5zZXJpZXNWaWV3Lm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0fSx4QXhpczp7d2lkdGg6dGhpcy54QXhpcy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoLGhlaWdodDp0aGlzLnhBeGlzLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0fSx5QXhpczp7d2lkdGg6dGhpcy55QXhpcy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoLGhlaWdodDp0aGlzLnlBeGlzLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0fX19dXBkYXRlTGluZUNoYXJ0KCl7dmFyIHQsZTtpZih0aGlzLnJlY292ZXJSZW5kZXJlcklmTmVlZGVkKCksIXRoaXMubGluZUNoYXJ0fHx0aGlzLmRpc2FibGVVcGRhdGUpcmV0dXJuO2lmKHRoaXMuc2NhbGVVcGRhdGVkJiYodGhpcy5zY2FsZVVwZGF0ZWQ9ITEsdGhpcy5saW5lQ2hhcnQuc2V0WFNjYWxlVHlwZSh0aGlzLnhTY2FsZVR5cGUpLHRoaXMubGluZUNoYXJ0LnNldFlTY2FsZVR5cGUodGhpcy55U2NhbGVUeXBlKSksdGhpcy5pc01ldGFkYXRhVXBkYXRlZCYmKHRoaXMuaXNNZXRhZGF0YVVwZGF0ZWQ9ITEsdGhpcy5saW5lQ2hhcnQuc2V0TWV0YWRhdGEodGhpcy5zZXJpZXNNZXRhZGF0YU1hcCkpLHRoaXMuaXNEYXRhVXBkYXRlZCYmKHRoaXMuaXNEYXRhVXBkYXRlZD0hMSx0aGlzLmxpbmVDaGFydC5zZXREYXRhKHRoaXMuc2VyaWVzRGF0YSkpLHRoaXMudXNlRGFya01vZGVVcGRhdGVkJiYodGhpcy51c2VEYXJrTW9kZVVwZGF0ZWQ9ITEsdGhpcy5saW5lQ2hhcnQuc2V0VXNlRGFya01vZGUodGhpcy51c2VEYXJrTW9kZSkpLCF0aGlzLmlzVmlld0JveE92ZXJyaWRkZW4mJnRoaXMuZml4ZWRWaWV3Qm94KXRoaXMudmlld0JveD10aGlzLmZpeGVkVmlld0JveDtlbHNlIGlmKCF0aGlzLmlzVmlld0JveE92ZXJyaWRkZW4mJnRoaXMuaXNWaWV3Qm94Q2hhbmdlZCl7Y29uc3Qgbj0oZnVuY3Rpb24gbyh0LGUsbixpLGEpe2xldCByPW51bGwscz1udWxsLGw9W107Zm9yKGNvbnN0e2lkOm4scG9pbnRzOm99b2YgdCl7Y29uc3QgdD1lW25dO2lmKHQmJiF0LmF1eCYmdC52aXNpYmxlKWZvcihsZXQgdD0wO3Q8by5sZW5ndGg7dCsrKXtjb25zdHt4OmUseTpufT1vW3RdO2koZSkmJihyPW51bGw9PT1yfHxlPHI/ZTpyLHM9bnVsbD09PXN8fGU+cz9lOnMpLGEobikmJmwucHVzaChuKX19bC5zb3J0KHU2KTtsZXQgYz1sWzBdLGQ9bFtsLmxlbmd0aC0xXTtyZXR1cm4gbiYmbC5sZW5ndGg+MiYmKGM9bFtNYXRoLmNlaWwoLjA1KihsLmxlbmd0aC0xKSldLGQ9bFtNYXRoLmZsb29yKC45NSoobC5sZW5ndGgtMSkpXSkse3g6bnVsbCE9PXImJm51bGwhPT1zP1tyLHNdOnZvaWQgMCx5OnZvaWQgMCE9PWMmJnZvaWQgMCE9PWQ/W2MsZF06dm9pZCAwfX0pKHRoaXMuc2VyaWVzRGF0YSx0aGlzLnNlcmllc01ldGFkYXRhTWFwLHRoaXMuaWdub3JlWU91dGxpZXJzLHRoaXMueFNjYWxlLmlzU2FmZU51bWJlcix0aGlzLnlTY2FsZS5pc1NhZmVOdW1iZXIpO3RoaXMudmlld0JveD17eDp0aGlzLnhTY2FsZS5uaWNlRG9tYWluKG51bGwhPT0odD1uLngpJiZ2b2lkIDAhPT10P3Q6TGh0LngpLHk6dGhpcy55U2NhbGUubmljZURvbWFpbihudWxsIT09KGU9bi55KSYmdm9pZCAwIT09ZT9lOkxodC55KX19KHRoaXMuaXNGaXhlZFZpZXdCb3hVcGRhdGVkfHx0aGlzLmlzVmlld0JveENoYW5nZWQpJiYodGhpcy5pc0ZpeGVkVmlld0JveFVwZGF0ZWQ9ITEsdGhpcy5pc1ZpZXdCb3hDaGFuZ2VkPSExLHRoaXMubGluZUNoYXJ0LnNldFZpZXdCb3godGhpcy52aWV3Qm94KSl9b25WaWV3Qm94Q2hhbmdlZCh7ZGF0YUV4dGVudDp0fSl7dGhpcy5zZXRJc1ZpZXdCb3hPdmVycmlkZGVuKCEwKSx0aGlzLmlzVmlld0JveENoYW5nZWQ9ITAsdGhpcy52aWV3Qm94PXQsdGhpcy51cGRhdGVMaW5lQ2hhcnQoKX12aWV3Qm94UmVzZXQoKXt0aGlzLnNldElzVmlld0JveE92ZXJyaWRkZW4oITEpLHRoaXMuaXNWaWV3Qm94Q2hhbmdlZD0hMCx0aGlzLnVwZGF0ZUxpbmVDaGFydCgpfXNldElzVmlld0JveE92ZXJyaWRkZW4odCl7Y29uc3QgZT10aGlzLmlzVmlld0JveE92ZXJyaWRkZW47dGhpcy5pc1ZpZXdCb3hPdmVycmlkZGVuPXQsZSE9PXQmJnRoaXMub25WaWV3Qm94T3ZlcnJpZGRlbi5uZXh0KHQpfWdldElzVmlld0JveE92ZXJyaWRkZW4oKXtyZXR1cm4gdGhpcy5vblZpZXdCb3hPdmVycmlkZGVufW9uVmlld0JveENoYW5nZWRGcm9tQXhpcyh0LGUpe2NvbnN0IG49T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMudmlld0JveCkse1tlXTp0fSk7dGhpcy5vblZpZXdCb3hDaGFuZ2VkKHtkYXRhRXh0ZW50Om59KX19Qmh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxCaHQpKGdmKE9iKSl9LEJodC7JtWNtcD1zbyh7dHlwZTpCaHQsc2VsZWN0b3JzOltbImxpbmUtY2hhcnQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihWeSh2aHQsNyxLaCksVnkoeGh0LDcsS2gpLFZ5KE9odCw3LEtoKSxWeShQaHQsNSxLaCkpLDImZSl7bGV0IHQ7QnkodD1VeSgpKSYmKG4uc2VyaWVzVmlldz10LmZpcnN0KSxCeSh0PVV5KCkpJiYobi54QXhpcz10LmZpcnN0KSxCeSh0PVV5KCkpJiYobi55QXhpcz10LmZpcnN0KSxCeSh0PVV5KCkpJiYobi5jaGFydEVsPXQuZmlyc3QpfX0saW5wdXRzOntjdXN0b21WaXNUZW1wbGF0ZToiY3VzdG9tVmlzVGVtcGxhdGUiLGN1c3RvbVhBeGlzVGVtcGxhdGU6ImN1c3RvbVhBeGlzVGVtcGxhdGUiLHVzZURhcmtNb2RlOiJ1c2VEYXJrTW9kZSIscHJlZmVycmVkUmVuZGVyZXJUeXBlOiJwcmVmZXJyZWRSZW5kZXJlclR5cGUiLHNlcmllc0RhdGE6InNlcmllc0RhdGEiLGZpeGVkVmlld0JveDoiZml4ZWRWaWV3Qm94IixzZXJpZXNNZXRhZGF0YU1hcDoic2VyaWVzTWV0YWRhdGFNYXAiLHhTY2FsZVR5cGU6InhTY2FsZVR5cGUiLHlTY2FsZVR5cGU6InlTY2FsZVR5cGUiLGN1c3RvbVhGb3JtYXR0ZXI6ImN1c3RvbVhGb3JtYXR0ZXIiLGN1c3RvbVlGb3JtYXR0ZXI6ImN1c3RvbVlGb3JtYXR0ZXIiLHRvb2x0aXBUZW1wbGF0ZToidG9vbHRpcFRlbXBsYXRlIixsaW5lT25seToibGluZU9ubHkiLGRpc2FibGVVcGRhdGU6ImRpc2FibGVVcGRhdGUiLGlnbm9yZVlPdXRsaWVyczoiaWdub3JlWU91dGxpZXJzIn0sZmVhdHVyZXM6W3FvXSxkZWNsczoxNix2YXJzOjEzLGNvbnN0czpbWyJkZXRlY3RSZXNpemUiLCIiLCJjZGtPdmVybGF5T3JpZ2luIiwiIiwzLCJuZ0NsYXNzIiwicmVzaXplRXZlbnREZWJvdW5jZVBlcmlvZEluTXMiLCJvblJlc2l6ZSJdLFsib3ZlcmxheVRhcmdldCIsImNka092ZXJsYXlPcmlnaW4iXSxbMSwic2VyaWVzLXZpZXciXSxbInNlcmllc1ZpZXciLCIiXSxbMywidmlld0V4dGVudCIsInhTY2FsZSIsInlTY2FsZSIsInhHcmlkQ291bnQiLCJ5R3JpZENvdW50IiwiZG9tRGltIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMywic2VyaWVzRGF0YSIsInNlcmllc01ldGFkYXRhTWFwIiwidmlld0V4dGVudCIsInhTY2FsZSIsInlTY2FsZSIsInRvb2x0aXBPcmlnaW5FbCIsImRvbURpbSIsInRvb2x0aXBUZW1wbGF0ZSIsIm9uVmlld0V4dGVudENoYW5nZSIsIm9uVmlld0V4dGVudFJlc2V0Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsImN1c3RvbS12aXMiLDQsIm5nSWYiXSxbMSwieS1heGlzIl0sWyJ5QXhpcyIsIiJdLFsiYXhpcyIsInkiLDMsImF4aXNFeHRlbnQiLCJjdXN0b21Gb3JtYXR0ZXIiLCJkb21EaW0iLCJncmlkQ291bnQiLCJzY2FsZSIsIm9uVmlld0V4dGVudENoYW5nZSIsNCwibmdJZiJdLFsxLCJ4LWF4aXMiXSxbInhBeGlzIiwiIl0sWyJheGlzIiwieCIsMywiYXhpc0V4dGVudCIsImN1c3RvbUZvcm1hdHRlciIsImRvbURpbSIsImdyaWRDb3VudCIsInNjYWxlIiwib25WaWV3RXh0ZW50Q2hhbmdlIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImRvdCIsNCwibmdJZiJdLFszLCJ2aWV3RXh0ZW50IiwieFNjYWxlIiwieVNjYWxlIiwieEdyaWRDb3VudCIsInlHcmlkQ291bnQiLCJkb21EaW0iXSxbImNoYXJ0RWwiLCIiXSxbMywic2VyaWVzRGF0YSIsInNlcmllc01ldGFkYXRhTWFwIiwidmlld0V4dGVudCIsInhTY2FsZSIsInlTY2FsZSIsInRvb2x0aXBPcmlnaW5FbCIsImRvbURpbSIsInRvb2x0aXBUZW1wbGF0ZSIsIm9uVmlld0V4dGVudENoYW5nZSIsIm9uVmlld0V4dGVudFJlc2V0Il0sWzEsImN1c3RvbS12aXMiXSxbMywibmdUZW1wbGF0ZU91dGxldCIsIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0Il0sWyJheGlzIiwieSIsMywiYXhpc0V4dGVudCIsImN1c3RvbUZvcm1hdHRlciIsImRvbURpbSIsImdyaWRDb3VudCIsInNjYWxlIiwib25WaWV3RXh0ZW50Q2hhbmdlIl0sWyJheGlzIiwieCIsMywiYXhpc0V4dGVudCIsImN1c3RvbUZvcm1hdHRlciIsImRvbURpbSIsImdyaWRDb3VudCIsInNjYWxlIiwib25WaWV3RXh0ZW50Q2hhbmdlIl0sWzEsImRvdCJdLFsxLCJyZWN0Il1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJkaXYiLDAsMSksUmYoIm9uUmVzaXplIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uVmlld1Jlc2l6ZSgpfSkpLENmKDIsImRpdiIsMiwzKSxIbSg0LHdodCwxLDYsImxpbmUtY2hhcnQtZ3JpZC12aWV3Iiw0KSxIbSg1LERodCwzLDIsIm5nLWNvbnRhaW5lciIsNSksSG0oNixSaHQsMSw4LCJsaW5lLWNoYXJ0LWludGVyYWN0aXZlLXZpZXciLDYpLEhtKDcsQWh0LDIsNywiZGl2Iiw3KSxNZigpLENmKDgsImRpdiIsOCw5KSxIbSgxMCxUaHQsMSw1LCJsaW5lLWNoYXJ0LWF4aXMiLDEwKSxNZigpLENmKDExLCJkaXYiLDExLDEyKSxIbSgxMyxOaHQsMSw1LCJsaW5lLWNoYXJ0LWF4aXMiLDEzKSxIbSgxNCxJaHQsMiw4LCJkaXYiLDcpLE1mKCksSG0oMTUsSGh0LDIsMCwiZGl2IiwxNCksTWYoKSksMiZlJiYoYmYoIm5nQ2xhc3MiLGF5KDEwLEZodCxuLnVzZURhcmtNb2RlLG4ubGluZU9ubHkpKSgicmVzaXplRXZlbnREZWJvdW5jZVBlcmlvZEluTXMiLDApLERjKDQpLGJmKCJuZ0lmIiwhbi5saW5lT25seSksRGMoMSksYmYoIm5nSWYiLG4uc2hvd0NoYXJ0UmVuZGVyZXJFbGVtZW50KSxEYygxKSxiZigibmdJZiIsIW4ubGluZU9ubHkpLERjKDEpLGJmKCJuZ0lmIixuLmN1c3RvbVZpc1RlbXBsYXRlKSxEYygzKSxiZigibmdJZiIsIW4ubGluZU9ubHkpLERjKDMpLGJmKCJuZ0lmIiwhbi5saW5lT25seSksRGMoMSksYmYoIm5nSWYiLG4uY3VzdG9tWEF4aXNUZW1wbGF0ZSksRGMoMSksYmYoIm5nSWYiLCFuLmxpbmVPbmx5KSl9LGRpcmVjdGl2ZXM6WyRRLCRCLEN2LFB2LGVodCx1aHQsSXYsTWh0XSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2NvbnRhaW46c3RyaWN0O2Rpc3BsYXk6aW5saW5lLWJsb2NrfVtfbmdob3N0LSVDT01QJV0gICAuY3VzdG9tLXZpc1tfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZX0uY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOmluaGVyaXQ7ZGlzcGxheTpncmlkO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjt3aWR0aDoxMDAlO2dyaWQtdGVtcGxhdGUtYXJlYXM6InlheGlzIHNlcmllcyIgImRvdCB4YXhpcyI7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjUwcHggMWZyO2dyaWQtYXV0by1yb3dzOjFmciAzMHB4fS5jb250YWluZXIuZGFyay1tb2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZmZmfS5jb250YWluZXIubGluZS1vbmx5LW1vZGVbX25nY29udGVudC0lQ09NUCVde2dyaWQtdGVtcGxhdGUtY29sdW1uczowIDFmcjtncmlkLWF1dG8tcm93czoxZnIgMH0uc2VyaWVzLXZpZXdbX25nY29udGVudC0lQ09NUCVde2dyaWQtYXJlYTpzZXJpZXM7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVufS5zZXJpZXMtdmlld1tfbmdjb250ZW50LSVDT01QJV0gICAuY3VzdG9tLXZpc1tfbmdjb250ZW50LSVDT01QJV0sIC5zZXJpZXMtdmlld1tfbmdjb250ZW50LSVDT01QJV0gICBjYW52YXNbX25nY29udGVudC0lQ09NUCVdLCAuc2VyaWVzLXZpZXdbX25nY29udGVudC0lQ09NUCVdICAgc3ZnW19uZ2NvbnRlbnQtJUNPTVAlXSwgLnNlcmllcy12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGxpbmUtY2hhcnQtZ3JpZC12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXSwgLnNlcmllcy12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGxpbmUtY2hhcnQtaW50ZXJhY3RpdmUtdmlld1tfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEwMCU7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjEwMCV9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAuY3VzdG9tLXZpc1tfbmdjb250ZW50LSVDT01QJV0sIC55LWF4aXNbX25nY29udGVudC0lQ09NUCVdICAgLmN1c3RvbS12aXNbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlO2xlZnQ6MDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJTstd2Via2l0LW1hc2staW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMDAwMCAwJSwgIzAwMCAxMCUsICMwMDAgOTAlLCAjMDAwMCAxMDAlKTttYXNrLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzAwMDAgMCUsICMwMDAgMTAlLCAjMDAwIDkwJSwgIzAwMDAgMTAwJSl9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICBsaW5lLWNoYXJ0LWF4aXNbX25nY29udGVudC0lQ09NUCVdLCAueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGxpbmUtY2hhcnQtYXhpc1tfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEwMCV9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV17Z3JpZC1hcmVhOnhheGlzO3Bvc2l0aW9uOnJlbGF0aXZlfS55LWF4aXNbX25nY29udGVudC0lQ09NUCVde2dyaWQtYXJlYTp5YXhpc30uZG90W19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2Rpc3BsYXk6ZmxleDtncmlkLWFyZWE6ZG90O2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uZG90W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MXB4O3dpZHRoOjFweDtiYWNrZ3JvdW5kLWNvbG9yOiNhYWF9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEJodCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJsaW5lLWNoYXJ0Iix0ZW1wbGF0ZVVybDoibGluZV9jaGFydF9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsibGluZV9jaGFydF9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOk9ifV19KSx7c2VyaWVzVmlldzpbe3R5cGU6YXIsYXJnczpbInNlcmllc1ZpZXciLHtzdGF0aWM6ITAscmVhZDpLaH1dfV0seEF4aXM6W3t0eXBlOmFyLGFyZ3M6WyJ4QXhpcyIse3N0YXRpYzohMCxyZWFkOktofV19XSx5QXhpczpbe3R5cGU6YXIsYXJnczpbInlBeGlzIix7c3RhdGljOiEwLHJlYWQ6S2h9XX1dLGNoYXJ0RWw6W3t0eXBlOmFyLGFyZ3M6WyJjaGFydEVsIix7c3RhdGljOiExLHJlYWQ6S2h9XX1dLGN1c3RvbVZpc1RlbXBsYXRlOlt7dHlwZTpSX31dLGN1c3RvbVhBeGlzVGVtcGxhdGU6W3t0eXBlOlJffV0sdXNlRGFya01vZGU6W3t0eXBlOlJffV0scHJlZmVycmVkUmVuZGVyZXJUeXBlOlt7dHlwZTpSX31dLHNlcmllc0RhdGE6W3t0eXBlOlJffV0sZml4ZWRWaWV3Qm94Olt7dHlwZTpSX31dLHNlcmllc01ldGFkYXRhTWFwOlt7dHlwZTpSX31dLHhTY2FsZVR5cGU6W3t0eXBlOlJffV0seVNjYWxlVHlwZTpbe3R5cGU6Ul99XSxjdXN0b21YRm9ybWF0dGVyOlt7dHlwZTpSX31dLGN1c3RvbVlGb3JtYXR0ZXI6W3t0eXBlOlJffV0sdG9vbHRpcFRlbXBsYXRlOlt7dHlwZTpSX31dLGxpbmVPbmx5Olt7dHlwZTpSX31dLGRpc2FibGVVcGRhdGU6W3t0eXBlOlJffV0saWdub3JlWU91dGxpZXJzOlt7dHlwZTpSX31dfSk7Y2xhc3MgVmh0e31WaHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFZodCl9LFZodC7JtWNtcD1zbyh7dHlwZTpWaHQsc2VsZWN0b3JzOltbInZpcy1zZWxlY3RlZC10aW1lLWNsaXBwZWQiXV0saW5wdXRzOntzZWxlY3RlZFRpbWU6InNlbGVjdGVkVGltZSJ9LGRlY2xzOjEsdmFyczowLGNvbnN0czpbWyJzdmdJY29uIiwiaW5mb19vdXRsaW5lXzI0cHgiLCJ0aXRsZSIsIkxpbmtlZCBzdGVwIGlzIG5vdCBmb3VuZCBpbiB0aGlzIHZpc3VhbGl6YXRpb24uIFdlIGhpZ2hsaWdodGVkIHRoZSBjbG9zZXN0IHN0ZXAgZm9yIHlvdS4iXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmdmYoMCwibWF0LWljb24iLDApfSxkaXJlY3RpdmVzOltNcV0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtjb2xvcjojZDMyZjJmO2hlaWdodDoxZW07bGluZS1oZWlnaHQ6MDt3aWR0aDoxZW19Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVde2NvbG9yOiNkMzJmMmZ9W19uZ2hvc3QtJUNPTVAlXSAgIG1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihWaHQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoidmlzLXNlbGVjdGVkLXRpbWUtY2xpcHBlZCIsdGVtcGxhdGU6J1xuICAgIDxtYXQtaWNvblxuICAgICAgc3ZnSWNvbj0iaW5mb19vdXRsaW5lXzI0cHgiXG4gICAgICB0aXRsZT0iTGlua2VkIHN0ZXAgaXMgbm90IGZvdW5kIGluIHRoaXMgdmlzdWFsaXphdGlvbi4gV2UgaGlnaGxpZ2h0ZWQgdGhlIGNsb3Nlc3Qgc3RlcCBmb3IgeW91LiJcbiAgICA+PC9tYXQtaWNvbj5cbiAgJyxzdHlsZVVybHM6WyJ2aXNfc2VsZWN0ZWRfdGltZV9jbGlwcGVkX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSxudWxsLHtzZWxlY3RlZFRpbWU6W3t0eXBlOlJffV19KTtjbGFzcyBqaHR7fWZ1bmN0aW9uIFVodCh0LGUpezEmdCYmdmYoMCwidmlzLXNlbGVjdGVkLXRpbWUtY2xpcHBlZCIpfWZ1bmN0aW9uIFdodCh0LGUpezEmdCYmdmYoMCwibWF0LXNwaW5uZXIiLDIzKX1mdW5jdGlvbiBHaHQodCxlKXsxJnQmJihDZigwLCJ0aCIpLFB1KDEsIlNtb290aGVkIiksTWYoKSl9ZnVuY3Rpb24gWWh0KHQsZSl7aWYoMSZ0JiYoeGYoMCksdmYoMSwidGItZXhwZXJpbWVudC1hbGlhcyIsMjkpLFB1KDIsIi8iKSxPZigpKSwyJnQpe2NvbnN0IHQ9emYoKS4kaW1wbGljaXQ7RGMoMSksYmYoImFsaWFzIix0Lm1ldGFkYXRhLmFsaWFzKX19ZnVuY3Rpb24gcWh0KHQsZSl7aWYoMSZ0JiYoQ2YoMCwidGQiKSxQdSgxKSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoKS4kaW1wbGljaXQsZT16ZigyKTtEYygxKSxrdSgiICIsZS52YWx1ZUZvcm1hdHRlci5mb3JtYXRTaG9ydCh0LnBvaW50LnkpLCIgIil9fWZ1bmN0aW9uIFpodCh0LGUpe2lmKDEmdCYmKHhmKDApLENmKDEsInRyIiwyNyksQ2YoMiwidGQiLDI4KSx2ZigzLCJzcGFuIiksTWYoKSxDZig0LCJ0ZCIsMSksSG0oNSxZaHQsMywxLCJuZy1jb250YWluZXIiLDMpLFB1KDYpLE1mKCksSG0oNyxxaHQsMiwxLCJ0ZCIsMyksQ2YoOCwidGQiKSxQdSg5KSxNZigpLENmKDEwLCJ0ZCIpLFB1KDExKSxNZigpLENmKDEyLCJ0ZCIpLFB1KDEzKSxfeSgxNCwiZGF0ZSIpLE1mKCksQ2YoMTUsInRkIiksUHUoMTYpLE1mKCksTWYoKSxPZigpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj16ZigyKTtEYygxKSxjdSgiY2xvc2VzdCIsdC5tZXRhZGF0YS5jbG9zZXN0KSxEYygyKSxsdSgiYmFja2dyb3VuZC1jb2xvciIsdC5tZXRhZGF0YS5jb2xvciksRGMoMiksYmYoIm5nSWYiLHQubWV0YWRhdGEuYWxpYXMpLERjKDEpLGt1KCIiLHQubWV0YWRhdGEuZGlzcGxheU5hbWUsIiAiKSxEYygxKSxiZigibmdJZiIsbi5zbW9vdGhpbmdFbmFibGVkKSxEYygyKSx3dShuLnZhbHVlRm9ybWF0dGVyLmZvcm1hdFNob3J0KHQucG9pbnQudmFsdWUpKSxEYygyKSx3dShuLnN0ZXBGb3JtYXR0ZXIuZm9ybWF0U2hvcnQodC5wb2ludC5zdGVwKSksRGMoMiksd3UoTXkoMTQsMTEsdC5wb2ludC53YWxsVGltZSwic2hvcnQiKSksRGMoMyksa3UoIiAiLG4ucmVsYXRpdmVYRm9ybWF0dGVyLmZvcm1hdFJlYWRhYmxlKHQucG9pbnQucmVsYXRpdmVUaW1lSW5NcyksIiAiKX19ZnVuY3Rpb24gWGh0KHQsZSl7aWYoMSZ0JiYoQ2YoMCwidGFibGUiLDI0KSxDZigxLCJ0aGVhZCIpLENmKDIsInRyIiksdmYoMywidGgiLDI1KSxDZig0LCJ0aCIpLFB1KDUsIlJ1biIpLE1mKCksSG0oNixHaHQsMiwwLCJ0aCIsMyksQ2YoNywidGgiKSxQdSg4LCJWYWx1ZSIpLE1mKCksQ2YoOSwidGgiKSxQdSgxMCwiU3RlcCIpLE1mKCksQ2YoMTEsInRoIiksUHUoMTIsIlRpbWUiKSxNZigpLENmKDEzLCJ0aCIpLFB1KDE0LCJSZWxhdGl2ZSIpLE1mKCksTWYoKSxNZigpLENmKDE1LCJ0Ym9keSIpLEhtKDE2LFpodCwxNywxNCwibmctY29udGFpbmVyIiwyNiksTWYoKSxNZigpKSwyJnQpe2NvbnN0IHQ9ZS5kYXRhLG49ZS5jdXJzb3JMb2NhdGlvbkluRGF0YUNvb3JkLG89emYoKTtEYyg2KSxiZigibmdJZiIsby5zbW9vdGhpbmdFbmFibGVkKSxEYygxMCksYmYoIm5nRm9yT2YiLG8uZ2V0Q3Vyc29yQXdhcmVUb29sdGlwRGF0YSh0LG4pKSgibmdGb3JUcmFja0J5IixvLnRyYWNrQnlUb29sdGlwRGF0dW0pfX1qaHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGpodCl9LGpodC7JtWNtcD1zbyh7dHlwZTpqaHQsc2VsZWN0b3JzOltbImxpbmtlZC10aW1lLWZvYiJdXSxpbnB1dHM6e3N0ZXA6InN0ZXAifSxkZWNsczozLHZhcnM6Myx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwic3BhbiIpLFB1KDEpLF95KDIsIm51bWJlciIpLE1mKCkpLDImZSYmKERjKDEpLHd1KEN5KDIsMSxuLnN0ZXApKSl9LHBpcGVzOlskdl0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1ibG9ja31zcGFuW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNlMGUwZTA7Ym9yZGVyLXJhZGl1czoyNXB4O2NvbG9yOmluaGVyaXQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjExcHg7cGFkZGluZzoycHggNXB4fXNwYW5bX25nY29udGVudC0lQ09NUCVdOmhvdmVyLCBzcGFuW19uZ2NvbnRlbnQtJUNPTVAlXTphY3RpdmV7Ym9yZGVyLWNvbG9yOiM2MTYxNjF9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgc3Bhbltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIHNwYW5bX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6IzYxNjE2MTtib3JkZXItY29sb3I6IzhlOThhM31ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICBzcGFuW19uZ2NvbnRlbnQtJUNPTVAlXTpob3ZlciwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgc3Bhbltfbmdjb250ZW50LSVDT01QJV06aG92ZXIsIGJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIHNwYW5bX25nY29udGVudC0lQ09NUCVdOmFjdGl2ZSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgc3Bhbltfbmdjb250ZW50LSVDT01QJV06YWN0aXZle2JvcmRlci1jb2xvcjojZWVlfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihqaHQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibGlua2VkLXRpbWUtZm9iIix0ZW1wbGF0ZToiPHNwYW4+e3sgc3RlcCB8IG51bWJlciB9fTwvc3Bhbj4iLHN0eWxlVXJsczpbImxpbmtlZF90aW1lX2ZvYl9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sbnVsbCx7c3RlcDpbe3R5cGU6Ul99XX0pO2NvbnN0IEtodD1mdW5jdGlvbih0KXtyZXR1cm5bMCx0XX0sSmh0PWZ1bmN0aW9uKCl7cmV0dXJueyJvdXQtb2Ytc2VsZWN0ZWQtdGltZSI6ITAsZW5kOiEwLHJhbmdlOiEwfX07ZnVuY3Rpb24gUWh0KHQsZSl7aWYoMSZ0JiZ2ZigwLCJkaXYiLDMwKSwyJnQpe2NvbnN0IHQ9emYoMiksZT10LnZpZXdFeHRlbnQsbj10LmRvbURpbWVuc2lvbixvPXQueFNjYWxlLGk9emYoKTtsdSgibGVmdCIsby5mb3J3YXJkKGUueCxpeSgzLEtodCxuLndpZHRoKSxpLnNlbGVjdGVkVGltZS5lbmRTdGVwKSsicHgiKSxiZigibmdDbGFzcyIsb3koNSxKaHQpKX19Y29uc3QgJGh0PWZ1bmN0aW9uKHQpe3JldHVyblt0LDBdfSx0YnQ9ZnVuY3Rpb24odCl7cmV0dXJueyJvdXQtb2Ytc2VsZWN0ZWQtdGltZSI6ITAsc3RhcnQ6ITAscmFuZ2U6dH19O2Z1bmN0aW9uIGVidCh0LGUpe2lmKDEmdCYmKHhmKDApLHZmKDEsImRpdiIsMzApLEhtKDIsUWh0LDEsNiwiZGl2IiwzMSksT2YoKSksMiZ0KXtjb25zdCB0PXpmKCksZT10LnZpZXdFeHRlbnQsbj10LmRvbURpbWVuc2lvbixvPXQueFNjYWxlLGk9emYoKTtEYygxKSxsdSgicmlnaHQiLG8uZm9yd2FyZChlLngsaXkoNCwkaHQsbi53aWR0aCksaS5zZWxlY3RlZFRpbWUuc3RhcnRTdGVwKSsicHgiKSxiZigibmdDbGFzcyIsaXkoNix0YnQsISFpLnNlbGVjdGVkVGltZS5lbmRTdGVwKSksRGMoMSksYmYoIm5nSWYiLGkuc2VsZWN0ZWRUaW1lLmVuZFN0ZXApfX1mdW5jdGlvbiBuYnQodCxlKXtpZigxJnQmJkhtKDAsZWJ0LDMsOCwibmctY29udGFpbmVyIiwzKSwyJnQpe2JmKCJuZ0lmIix6ZigpLnNlbGVjdGVkVGltZSl9fWZ1bmN0aW9uIG9idCh0LGUpe2lmKDEmdCYmKENmKDAsImRpdiIsMzIpLHZmKDEsImxpbmtlZC10aW1lLWZvYiIsMzMpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigyKSxlPXQudmlld0V4dGVudCxuPXQuZG9tRGltZW5zaW9uLG89dC54U2NhbGUsaT16ZigpO2x1KCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitvLmZvcndhcmQoZS54LGl5KDMsS2h0LG4ud2lkdGgpLGkuc2VsZWN0ZWRUaW1lLmVuZFN0ZXApKyJweCwgMCkiKSxEYygxKSxiZigic3RlcCIsaS5zZWxlY3RlZFRpbWUuZW5kU3RlcCl9fWZ1bmN0aW9uIGlidCh0LGUpe2lmKDEmdCYmKHhmKDApLENmKDEsImRpdiIsMzIpLHZmKDIsImxpbmtlZC10aW1lLWZvYiIsMzMpLE1mKCksSG0oMyxvYnQsMiw1LCJkaXYiLDM0KSxPZigpKSwyJnQpe2NvbnN0IHQ9emYoKSxlPXQudmlld0V4dGVudCxuPXQuZG9tRGltZW5zaW9uLG89dC54U2NhbGUsaT16ZigpO0RjKDEpLGx1KCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitvLmZvcndhcmQoZS54LGl5KDQsS2h0LG4ud2lkdGgpLGkuc2VsZWN0ZWRUaW1lLnN0YXJ0U3RlcCkrInB4LCAwKSIpLERjKDEpLGJmKCJzdGVwIixpLnNlbGVjdGVkVGltZS5zdGFydFN0ZXApLERjKDEpLGJmKCJuZ0lmIixpLnNlbGVjdGVkVGltZS5lbmRTdGVwKX19ZnVuY3Rpb24gYWJ0KHQsZSl7aWYoMSZ0JiZIbSgwLGlidCw0LDYsIm5nLWNvbnRhaW5lciIsMyksMiZ0KXtiZigibmdJZiIsemYoKS5zZWxlY3RlZFRpbWUpfX1jbGFzcyByYnR7Y29uc3RydWN0b3IodCxlKXt0aGlzLnJlZj10LHRoaXMuZGlhbG9nPWUsdGhpcy5EYXRhTG9hZFN0YXRlPVVFLHRoaXMuUmVuZGVyZXJUeXBlPWU2LHRoaXMuU2NhbGVUeXBlPW42LHRoaXMub25GdWxsU2l6ZVRvZ2dsZT1uZXcgU3ksdGhpcy5vblBpbkNsaWNrZWQ9bmV3IFN5LHRoaXMueVNjYWxlVHlwZT1uNi5MSU5FQVIsdGhpcy5pc1ZpZXdCb3hPdmVycmlkZGVuPSExLHRoaXMucmVsYXRpdmVYRm9ybWF0dGVyPXBydCx0aGlzLnZhbHVlRm9ybWF0dGVyPUthdCx0aGlzLnN0ZXBGb3JtYXR0ZXI9JGF0fXRvZ2dsZVlTY2FsZVR5cGUoKXt0aGlzLnlTY2FsZVR5cGU9dGhpcy55U2NhbGVUeXBlPT09bjYuTElORUFSP242LkxPRzEwOm42LkxJTkVBUn1yZXNldERvbWFpbigpe3RoaXMubGluZUNoYXJ0JiZ0aGlzLmxpbmVDaGFydC52aWV3Qm94UmVzZXQoKX10cmFja0J5VG9vbHRpcERhdHVtKHQsZSl7cmV0dXJuIGUuaWR9Z2V0Q3VzdG9tWEZvcm1hdHRlcigpe3N3aXRjaCh0aGlzLnhBeGlzVHlwZSl7Y2FzZSBRVC5SRUxBVElWRTpyZXR1cm4gcHJ0O2Nhc2UgUVQuU1RFUDpyZXR1cm4gb3J0O2Nhc2UgUVQuV0FMTF9USU1FOmRlZmF1bHQ6cmV0dXJufX1nZXRDdXJzb3JBd2FyZVRvb2x0aXBEYXRhKHQsZSl7Y29uc3Qgbj10Lm1hcCgodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHttZXRhZGF0YTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5tZXRhZGF0YSkse2Nsb3Nlc3Q6ITEsZGlzdFNxVG9DdXJzb3I6TWF0aC5oeXBvdCh0LnBvaW50LngtZS54LHQucG9pbnQueS1lLnkpfSl9KSkpO2xldCBvPTEvMCxpPTA7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kyspbz5uW3RdLm1ldGFkYXRhLmRpc3RTcVRvQ3Vyc29yJiYobz1uW3RdLm1ldGFkYXRhLmRpc3RTcVRvQ3Vyc29yLGk9dCk7c3dpdGNoKG4ubGVuZ3RoJiYobltpXS5tZXRhZGF0YS5jbG9zZXN0PSEwKSx0aGlzLnRvb2x0aXBTb3J0KXtjYXNlIEpULkFTQ0VORElORzpyZXR1cm4gbi5zb3J0KCgodCxlKT0+dC5wb2ludC55LWUucG9pbnQueSkpO2Nhc2UgSlQuREVTQ0VORElORzpyZXR1cm4gbi5zb3J0KCgodCxlKT0+ZS5wb2ludC55LXQucG9pbnQueSkpO2Nhc2UgSlQuTkVBUkVTVDpyZXR1cm4gbi5zb3J0KCgodCxlKT0+dC5tZXRhZGF0YS5kaXN0U3FUb0N1cnNvci1lLm1ldGFkYXRhLmRpc3RTcVRvQ3Vyc29yKSk7Y2FzZSBKVC5ERUZBVUxUOmNhc2UgSlQuQUxQSEFCRVRJQ0FMOnJldHVybiBuLnNvcnQoKCh0LGUpPT50Lm1ldGFkYXRhLmRpc3BsYXlOYW1lPGUubWV0YWRhdGEuZGlzcGxheU5hbWU/LTE6dC5tZXRhZGF0YS5kaXNwbGF5TmFtZT5lLm1ldGFkYXRhLmRpc3BsYXlOYW1lPzE6MCkpfX1vcGVuRGF0YURvd25sb2FkRGlhbG9nKCl7dGhpcy5kaWFsb2cub3Blbih0aGlzLkRhdGFEb3dubG9hZENvbXBvbmVudCx7ZGF0YTp7Y2FyZElkOnRoaXMuY2FyZElkfX0pfX1yYnQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHJidCkoZ2YoS2gpLGdmKFhZKSl9LHJidC7JtWNtcD1zbyh7dHlwZTpyYnQsc2VsZWN0b3JzOltbInNjYWxhci1jYXJkLWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmVnkoQmh0LDUpLDImZSl7bGV0IHQ7QnkodD1VeSgpKSYmKG4ubGluZUNoYXJ0PXQuZmlyc3QpfX0saW5wdXRzOntjYXJkSWQ6ImNhcmRJZCIsY2hhcnRNZXRhZGF0YU1hcDoiY2hhcnRNZXRhZGF0YU1hcCIsRGF0YURvd25sb2FkQ29tcG9uZW50OiJEYXRhRG93bmxvYWRDb21wb25lbnQiLGRhdGFTZXJpZXM6ImRhdGFTZXJpZXMiLGlnbm9yZU91dGxpZXJzOiJpZ25vcmVPdXRsaWVycyIsaXNDYXJkVmlzaWJsZToiaXNDYXJkVmlzaWJsZSIsaXNQaW5uZWQ6ImlzUGlubmVkIixsb2FkU3RhdGU6ImxvYWRTdGF0ZSIsc2hvd0Z1bGxTaXplOiJzaG93RnVsbFNpemUiLHNtb290aGluZ0VuYWJsZWQ6InNtb290aGluZ0VuYWJsZWQiLHRhZzoidGFnIix0aXRsZToidGl0bGUiLHRvb2x0aXBTb3J0OiJ0b29sdGlwU29ydCIseEF4aXNUeXBlOiJ4QXhpc1R5cGUiLHhTY2FsZVR5cGU6InhTY2FsZVR5cGUiLHVzZURhcmtNb2RlOiJ1c2VEYXJrTW9kZSIsc2VsZWN0ZWRUaW1lOiJzZWxlY3RlZFRpbWUifSxvdXRwdXRzOntvbkZ1bGxTaXplVG9nZ2xlOiJvbkZ1bGxTaXplVG9nZ2xlIixvblBpbkNsaWNrZWQ6Im9uUGluQ2xpY2tlZCJ9LGRlY2xzOjM0LHZhcnM6MjYsY29uc3RzOmZ1bmN0aW9uKCl7bGV0IHQsZSxuLG8saTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZSl7dD1nb29nLmdldE1zZygiRml0IGxpbmUgY2hhcnQgZG9tYWlucyB0byBkYXRhIil9ZWxzZSB0PSRsb2NhbGl6ZWA6QSBidXR0b24gdGhhdCByZXNldHMgbGluZSBjaGFydCBkb21haW4gdG8gdGhlIGRhdGHikJ9lNjhhNTUyOTQxYWI0MjdhOTllNzQzN2UwODQ0M2YzMGFjNzFjY2Q24pCfMzgzMDY0NjUyMTA1ODI2ODU1ODpGaXQgbGluZSBjaGFydCBkb21haW5zIHRvIGRhdGFgO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlKXtlPWdvb2cuZ2V0TXNnKCJQaW4gY2FyZCIpfWVsc2UgZT0kbG9jYWxpemVgOkEgYnV0dG9uIHRvIHBpbiBhIGNhcmQu4pCfZTY2NWRjNzEyYmQ1ZjE4ZDRkZmEzYTI5ZTEyNWQ1NjVjYzUxZTJmNuKQnzcyODQ2MDY0MjYyMzQzNzUzNDQ6UGluIGNhcmRgO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlKXtuPWdvb2cuZ2V0TXNnKCJUb2dnbGUgZnVsbCBzaXplIG1vZGUiKX1lbHNlIG49JGxvY2FsaXplYDpBIGJ1dHRvbiBvbiBsaW5lIGNoYXJ0IHRoYXQgdG9nZ2xlcyBmdWxsIHNpemUgbW9kZS7ikJ9mYzhmNzY3ZDBiOWY5MzAxODdhMWJhZTM0NDc3YWQyODczNmVjZTMz4pCfOTE1NzIxNTYzNjM4OTI2NTk3OlRvZ2dsZSBmdWxsIHNpemUgbW9kZWA7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGUpe289Z29vZy5nZXRNc2coIk1vcmUgbGluZSBjaGFydCBvcHRpb25zIil9ZWxzZSBvPSRsb2NhbGl6ZWA6QW4gb3ZlcmZsb3cgbWVudSBidXR0b24gdGhhdCBvcGVucyBtb3JlIGxpbmUgY2hhcnQgb3B0aW9uc+KQn2IyNjBmYWI5NDZhMzA3N2NlMjBmZDI4ZTMzNjk3OWY1ODY3MjBlOGTikJ84NzgwNTM3NDAyMTAzMzY0MzU6TW9yZSBsaW5lIGNoYXJ0IG9wdGlvbnNgO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlKXtpPWdvb2cuZ2V0TXNnKCJUb2dnbGUgWS1heGlzIGxvZyBzY2FsZSBvbiBsaW5lIGNoYXJ0Iil9ZWxzZSBpPSRsb2NhbGl6ZWA6QSBidXR0b24gdGhhdCB0b2dnbGVzIGxvZyBzY2FsZSBvbiB5LWF4aXMgb24gYSBsaW5lIGNoYXJ04pCfZmU5MWY5NmFiOWIzYmFjYTVhNDg5MTNmMmIwZmFlODQ0ODNkOTNlM+KQnzMzNzQ2NDU2MjA2Mzg4ODM5MjY6VG9nZ2xlIFktYXhpcyBsb2cgc2NhbGUgb24gbGluZSBjaGFydGA7cmV0dXJuW1sxLCJoZWFkaW5nIl0sWzEsIm5hbWUiXSxbMSwidGFnIiwzLCJ0aXRsZSIsInZhbHVlIl0sWzQsIm5nSWYiXSxbMSwiY29udHJvbHMiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHQsMywiZGlzYWJsZWQiLCJ0aXRsZSIsImNsaWNrIl0sWyJzdmdJY29uIiwic2V0dGluZ3Nfb3ZlcnNjYW5fMjRweCJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsZSwxLCJwaW4tYnV0dG9uIiwzLCJjbGljayJdLFszLCJzdmdJY29uIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJhcmlhLWxhYmVsIixuLCJ0aXRsZSIsIlRvZ2dsZSBmdWxsIHNpemUgbW9kZSIsMywiY2xpY2siXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLG8sInRpdGxlIiwiTW9yZSBsaW5lIGNoYXJ0IG9wdGlvbnMiLDMsIm1hdE1lbnVUcmlnZ2VyRm9yIl0sWyJzdmdJY29uIiwibW9yZV92ZXJ0XzI0cHgiXSxbIm1lbnUiLCJtYXRNZW51Il0sWyJtYXQtbWVudS1pdGVtIiwiIiwiYXJpYS1sYWJlbCIsaSwzLCJjbGljayJdLFsic3ZnSWNvbiIsImxpbmVfd2VpZ2h0XzI0cHgiXSxbIm1hdC1tZW51LWl0ZW0iLCIiLCJhcmlhLWxhYmVsIiwiT3BlbiBkaWFsb2cgdG8gZG93bmxvYWQgZGF0YSIsMywiY2xpY2siXSxbInN2Z0ljb24iLCJnZXRfYXBwXzI0cHgiXSxbMSwiY2hhcnQtY29udGFpbmVyIl0sWyJkaWFtZXRlciIsIjE4Iiw0LCJuZ0lmIl0sWzMsImRpc2FibGVVcGRhdGUiLCJwcmVmZXJyZWRSZW5kZXJlclR5cGUiLCJzZXJpZXNEYXRhIiwic2VyaWVzTWV0YWRhdGFNYXAiLCJ4U2NhbGVUeXBlIiwieVNjYWxlVHlwZSIsImN1c3RvbVhGb3JtYXR0ZXIiLCJpZ25vcmVZT3V0bGllcnMiLCJ0b29sdGlwVGVtcGxhdGUiLCJ1c2VEYXJrTW9kZSIsImN1c3RvbVZpc1RlbXBsYXRlIiwiY3VzdG9tWEF4aXNUZW1wbGF0ZSIsIm9uVmlld0JveE92ZXJyaWRkZW4iXSxbInRvb2x0aXAiLCIiXSxbImxpbmVDaGFydEN1c3RvbVZpcyIsIiJdLFsibGluZUNoYXJ0Q3VzdG9tWEF4aXNWaXMiLCIiXSxbImRpYW1ldGVyIiwiMTgiXSxbMSwidG9vbHRpcCJdLFsxLCJjaXJjbGUtaGVhZGVyIl0sWzQsIm5nRm9yIiwibmdGb3JPZiIsIm5nRm9yVHJhY2tCeSJdLFsxLCJ0b29sdGlwLXJvdyJdLFsxLCJ0b29sdGlwLXJvdy1jaXJjbGUiXSxbMywiYWxpYXMiXSxbMywibmdDbGFzcyJdLFszLCJuZ0NsYXNzIiwibGVmdCIsNCwibmdJZiJdLFsxLCJsaW5rZWQtdGltZS1mb2ItY29udGFpbmVyIl0sWzEsInNlbGVjdGVkLXRpbWUtZm9iIiwzLCJzdGVwIl0sWyJjbGFzcyIsImxpbmtlZC10aW1lLWZvYi1jb250YWluZXIiLDMsInRyYW5zZm9ybSIsNCwibmdJZiJdXX0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKENmKDAsImRpdiIsMCksQ2YoMSwic3BhbiIsMSksdmYoMiwidGItdHJ1bmNhdGVkLXBhdGgiLDIpLEhtKDMsVWh0LDEsMCwidmlzLXNlbGVjdGVkLXRpbWUtY2xpcHBlZCIsMyksTWYoKSxDZig0LCJzcGFuIiw0KSxDZig1LCJidXR0b24iLDUpLFJmKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5yZXNldERvbWFpbigpfSkpLF95KDYsImFzeW5jIiksX3koNywiYXN5bmMiKSx2Zig4LCJtYXQtaWNvbiIsNiksTWYoKSxDZig5LCJidXR0b24iLDcpLFJmKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblBpbkNsaWNrZWQuZW1pdCghbi5pc1Bpbm5lZCl9KSksdmYoMTAsIm1hdC1pY29uIiw4KSxNZigpLENmKDExLCJidXR0b24iLDkpLFJmKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkZ1bGxTaXplVG9nZ2xlLmVtaXQoKX0pKSx2ZigxMiwibWF0LWljb24iLDgpLE1mKCksQ2YoMTMsImJ1dHRvbiIsMTApLHZmKDE0LCJtYXQtaWNvbiIsMTEpLE1mKCksQ2YoMTUsIm1hdC1tZW51IixudWxsLDEyKSxDZigxNywiYnV0dG9uIiwxMyksUmYoImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLnRvZ2dsZVlTY2FsZVR5cGUoKX0pKSx2ZigxOCwibWF0LWljb24iLDE0KSxDZigxOSwic3BhbiIpLFB1KDIwLCJUb2dnbGUgWS1heGlzIGxvZyBzY2FsZSIpLE1mKCksTWYoKSxDZigyMSwiYnV0dG9uIiwxNSksUmYoImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9wZW5EYXRhRG93bmxvYWREaWFsb2coKX0pKSx2ZigyMiwibWF0LWljb24iLDE2KSxDZigyMywic3BhbiIpLFB1KDI0LCJEb3dubG9hZCBkYXRhIiksTWYoKSxNZigpLE1mKCksTWYoKSxNZigpLENmKDI1LCJkaXYiLDE3KSxIbSgyNixXaHQsMSwwLCJtYXQtc3Bpbm5lciIsMTgpLENmKDI3LCJsaW5lLWNoYXJ0IiwxOSksUmYoIm9uVmlld0JveE92ZXJyaWRkZW4iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmlzVmlld0JveE92ZXJyaWRkZW49ZX0pKSxNZigpLEhtKDI4LFhodCwxNywzLCJuZy10ZW1wbGF0ZSIsbnVsbCwyMCxxeSksTWYoKSxIbSgzMCxuYnQsMSwxLCJuZy10ZW1wbGF0ZSIsbnVsbCwyMSxxeSksSG0oMzIsYWJ0LDEsMSwibmctdGVtcGxhdGUiLG51bGwsMjIscXkpKSwyJmUpe2NvbnN0IHQ9Rm0oMTYpLGU9Rm0oMjkpLG89Rm0oMzEpLGk9Rm0oMzMpO0RjKDIpLExmKCJ0aXRsZSIsbi50YWcpLExmKCJ2YWx1ZSIsbi50aXRsZSksRGMoMSksYmYoIm5nSWYiLG4uc2VsZWN0ZWRUaW1lJiZuLnNlbGVjdGVkVGltZS5jbGlwcGVkKSxEYygyKSxiZigiZGlzYWJsZWQiLCFuLmxpbmVDaGFydHx8IUN5KDYsMjIsbi5saW5lQ2hhcnQuZ2V0SXNWaWV3Qm94T3ZlcnJpZGRlbigpKSkoInRpdGxlIixuLmxpbmVDaGFydCYmQ3koNywyNCxuLmxpbmVDaGFydC5nZXRJc1ZpZXdCb3hPdmVycmlkZGVuKCkpPyJMaW5lIGNoYXJ0IGlzIGFscmVhZHkgZml0dGVkIHRvIGRhdGEuIFdoZW4gZGF0YSB1cGRhdGVzLCB0aGUgbGluZSBjaGFydCB3aWxsIGF1dG8gZml0IHRvIGl0cyBkb21haW4uIjoiRml0IGxpbmUgY2hhcnQgZG9tYWlucyB0byBkYXRhIiksRGMoNCkseW0oInRpdGxlIixuLmlzUGlubmVkPyJVbnBpbiBjYXJkIjoiUGluIGNhcmQiKSxEYygxKSxiZigic3ZnSWNvbiIsbi5pc1Bpbm5lZD8ia2VlcF8yNHB4Ijoia2VlcF9vdXRsaW5lXzI0cHgiKSxEYygyKSxiZigic3ZnSWNvbiIsbi5zaG93RnVsbFNpemU/ImZ1bGxzY3JlZW5fZXhpdF8yNHB4IjoiZnVsbHNjcmVlbl8yNHB4IiksRGMoMSksYmYoIm1hdE1lbnVUcmlnZ2VyRm9yIix0KSxEYygxMyksYmYoIm5nSWYiLG4ubG9hZFN0YXRlPT09bi5EYXRhTG9hZFN0YXRlLkxPQURJTkcpLERjKDEpLGJmKCJkaXNhYmxlVXBkYXRlIiwhbi5pc0NhcmRWaXNpYmxlKSgicHJlZmVycmVkUmVuZGVyZXJUeXBlIixuLlJlbmRlcmVyVHlwZS5XRUJHTCkoInNlcmllc0RhdGEiLG4uZGF0YVNlcmllcykoInNlcmllc01ldGFkYXRhTWFwIixuLmNoYXJ0TWV0YWRhdGFNYXApKCJ4U2NhbGVUeXBlIixuLnhTY2FsZVR5cGUpKCJ5U2NhbGVUeXBlIixuLnlTY2FsZVR5cGUpKCJjdXN0b21YRm9ybWF0dGVyIixuLmdldEN1c3RvbVhGb3JtYXR0ZXIoKSkoImlnbm9yZVlPdXRsaWVycyIsbi5pZ25vcmVPdXRsaWVycykoInRvb2x0aXBUZW1wbGF0ZSIsZSkoInVzZURhcmtNb2RlIixuLnVzZURhcmtNb2RlKSgiY3VzdG9tVmlzVGVtcGxhdGUiLG8pKCJjdXN0b21YQXhpc1RlbXBsYXRlIixpKX19LGRpcmVjdGl2ZXM6W0w0LFB2LE5MLE1xLHFxLGpxLEhxLEJodCxWaHQsYTIseHYsSDIsQ3Ysamh0XSxwaXBlczpbVnYsWXZdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6YXV0bztwYWRkaW5nOjE2cHg7cGFkZGluZy10b3A6NHB4fS5oZWFkaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2ZvbnQtc2l6ZToxNHB4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO21hcmdpbi1ib3R0b206NHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5oZWFkaW5nW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYW1lW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpncmlkO2dhcDo1cHg7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOmF1dG8gYXV0b30uaGVhZGluZ1tfbmdjb250ZW50LSVDT01QJV0gICB2aXMtc2VsZWN0ZWQtdGltZS1jbGlwcGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MS4yZW07bGluZS1oZWlnaHQ6MH0udGFnW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW59LnBpbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgbWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxOHB4fS5jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzYxNjE2MTt3aGl0ZS1zcGFjZTpub3dyYXA7ZmxleC1zaHJpbms6MDttYXJnaW4tcmlnaHQ6LTEycHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0uY2hhcnQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4OjF9LmNoYXJ0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICBtYXQtc3Bpbm5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTFweDt0b3A6MTFweH0uY2hhcnQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGxpbmUtY2hhcnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMCV9LnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1zcGFjaW5nOjRweDtmb250LXNpemU6MTNweH0udG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17dGV4dC1hbGlnbjpsZWZ0fS50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwLXJvd1tfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwfS50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwLXJvdy1jaXJjbGVbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2hlaWdodDoxMnB4O3dpZHRoOjEycHh9LnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdICAgLnRvb2x0aXAtcm93LWNpcmNsZVtfbmdjb250ZW50LSVDT01QJV0gPiBzcGFuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjQpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxMHB4O3dpZHRoOjEwcHh9LnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdICAgLmNsb3Nlc3RbX25nY29udGVudC0lQ09NUCVdICAgLnRvb2x0aXAtcm93LWNpcmNsZVtfbmdjb250ZW50LSVDT01QJV0gPiBzcGFuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItY29sb3I6I2ZmZjtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjZmZmfS5vdXQtb2Ytc2VsZWN0ZWQtdGltZVtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjAgZGFzaGVkIGN1cnJlbnRDb2xvcjtoZWlnaHQ6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZX0ub3V0LW9mLXNlbGVjdGVkLXRpbWUuc3RhcnRbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1yaWdodC13aWR0aDoycHg7bWFyZ2luLWxlZnQ6LTFweH0ub3V0LW9mLXNlbGVjdGVkLXRpbWUuc3RhcnQucmFuZ2VbX25nY29udGVudC0lQ09NUCVde2xlZnQ6MH0ub3V0LW9mLXNlbGVjdGVkLXRpbWUuZW5kW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItbGVmdC13aWR0aDoycHg7bWFyZ2luLXJpZ2h0Oi0xcHg7cmlnaHQ6MH0ub3V0LW9mLXNlbGVjdGVkLXRpbWUucmFuZ2VbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLm91dC1vZi1zZWxlY3RlZC10aW1lLnJhbmdlW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLm91dC1vZi1zZWxlY3RlZC10aW1lLnJhbmdlW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjQpfS5saW5rZWQtdGltZS1mb2ItY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1ibG9jaztsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOjB9bGlua2VkLXRpbWUtZm9iW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKX0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIocmJ0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6InNjYWxhci1jYXJkLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6InNjYWxhcl9jYXJkX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyJzY2FsYXJfY2FyZF9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOktofSx7dHlwZTpYWX1dfSkse2NhcmRJZDpbe3R5cGU6Ul99XSxjaGFydE1ldGFkYXRhTWFwOlt7dHlwZTpSX31dLERhdGFEb3dubG9hZENvbXBvbmVudDpbe3R5cGU6Ul99XSxkYXRhU2VyaWVzOlt7dHlwZTpSX31dLGlnbm9yZU91dGxpZXJzOlt7dHlwZTpSX31dLGlzQ2FyZFZpc2libGU6W3t0eXBlOlJffV0saXNQaW5uZWQ6W3t0eXBlOlJffV0sbG9hZFN0YXRlOlt7dHlwZTpSX31dLHNob3dGdWxsU2l6ZTpbe3R5cGU6Ul99XSxzbW9vdGhpbmdFbmFibGVkOlt7dHlwZTpSX31dLHRhZzpbe3R5cGU6Ul99XSx0aXRsZTpbe3R5cGU6Ul99XSx0b29sdGlwU29ydDpbe3R5cGU6Ul99XSx4QXhpc1R5cGU6W3t0eXBlOlJffV0seFNjYWxlVHlwZTpbe3R5cGU6Ul99XSx1c2VEYXJrTW9kZTpbe3R5cGU6Ul99XSxzZWxlY3RlZFRpbWU6W3t0eXBlOlJffV0sb25GdWxsU2l6ZVRvZ2dsZTpbe3R5cGU6RV99XSxvblBpbkNsaWNrZWQ6W3t0eXBlOkVffV0sbGluZUNoYXJ0Olt7dHlwZTphcixhcmdzOltCaHRdfV19KTtjbGFzcyBzYnR7Y29uc3RydWN0b3IodCxlKXt0aGlzLnJlZj10LHRoaXMuY2RrU2Nyb2xsYWJsZT1lLHRoaXMub25WaXNpYmlsaXR5Q2hhbmdlPW5ldyBTeSx0aGlzLm5nVW5zdWJzY3JpYmUkPW5ldyBCLHRoaXMub25FdmVudCQ9bmV3IEJ9bmdPbkluaXQoKXtjb25zdCB0PXtyb290OnRoaXMuY2RrU2Nyb2xsYWJsZT90aGlzLmNka1Njcm9sbGFibGUuZ2V0RWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQ6bnVsbH07dGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlck1hcmdpbiYmKHQucm9vdE1hcmdpbj10aGlzLmludGVyc2VjdGlvbk9ic2VydmVyTWFyZ2luKTtjb25zdCBlPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigodD0+e3RoaXMub25FdmVudCQubmV4dCh0KX0pLHQpO2Uub2JzZXJ2ZSh0aGlzLnJlZi5uYXRpdmVFbGVtZW50KSx0aGlzLm5nVW5zdWJzY3JpYmUkLnN1YnNjcmliZSgoKCk9PntlLnVub2JzZXJ2ZSh0aGlzLnJlZi5uYXRpdmVFbGVtZW50KX0pKSx0aGlzLm9uRXZlbnQkLnBpcGUoamUodGhpcy5uZ1Vuc3Vic2NyaWJlJCkpLnN1YnNjcmliZSgodD0+e2NvbnN0IGU9dC5zbGljZSgtMSlbMF07dGhpcy5vblZpc2liaWxpdHlDaGFuZ2UuZW1pdCh7dmlzaWJsZTplLmlzSW50ZXJzZWN0aW5nfSl9KSl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUkLm5leHQoKSx0aGlzLm5nVW5zdWJzY3JpYmUkLmNvbXBsZXRlKCl9d2FpdEZvckV2ZW50Rm9yVGVzdE9ubHkoKXtyZXR1cm4gbmV3IFByb21pc2UoKHQ9PnRoaXMub25FdmVudCQucGlwZSh2ZSgxKSkuc3Vic2NyaWJlKCgoKT0+e3QoKX0pKSkpfX1mdW5jdGlvbiBsYnQodCxlKXtyZXR1cm4gdC5sZW5ndGg9PT1lLmxlbmd0aCYmdC5ldmVyeSgoKHQsbik9Pntjb25zdCBvPWVbbl0saT10LnBvaW50cyxhPW8ucG9pbnRzO3JldHVybiB0LnJ1bklkPT09by5ydW5JZCYmaS5sZW5ndGg9PT1hLmxlbmd0aCYmaS5ldmVyeSgoKHQsZSk9Pntjb25zdCBuPWFbZV07cmV0dXJuIHQueD09PW4ueCYmdC55PT09bi55fSkpfSkpfXNidC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8c2J0KShnZihLaCksZ2YoSkwsOCkpfSxzYnQuybVkaXI9aG8oe3R5cGU6c2J0LHNlbGVjdG9yczpbWyIiLCJvYnNlcnZlSW50ZXJzZWN0aW9uIiwiIl1dLGlucHV0czp7aW50ZXJzZWN0aW9uT2JzZXJ2ZXJNYXJnaW46ImludGVyc2VjdGlvbk9ic2VydmVyTWFyZ2luIn0sb3V0cHV0czp7b25WaXNpYmlsaXR5Q2hhbmdlOiJvblZpc2liaWxpdHlDaGFuZ2UifX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoc2J0LFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IltvYnNlcnZlSW50ZXJzZWN0aW9uXSJ9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpLaH0se3R5cGU6SkwsZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX1dfSkse2ludGVyc2VjdGlvbk9ic2VydmVyTWFyZ2luOlt7dHlwZTpSX31dLG9uVmlzaWJpbGl0eUNoYW5nZTpbe3R5cGU6RV99XX0pO2NsYXNzIGNidHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5EYXRhRG93bmxvYWRDb21wb25lbnQ9ZjYsdGhpcy5mdWxsV2lkdGhDaGFuZ2VkPW5ldyBTeSx0aGlzLmZ1bGxIZWlnaHRDaGFuZ2VkPW5ldyBTeSx0aGlzLnBpblN0YXRlQ2hhbmdlZD1uZXcgU3ksdGhpcy5pc1Zpc2libGU9ITEsdGhpcy51c2VEYXJrTW9kZSQ9dGhpcy5zdG9yZS5zZWxlY3QoRkQpLHRoaXMuaWdub3JlT3V0bGllcnMkPXRoaXMuc3RvcmUuc2VsZWN0KGJ6KSx0aGlzLnRvb2x0aXBTb3J0JD10aGlzLnN0b3JlLnNlbGVjdChoeiksdGhpcy54QXhpc1R5cGUkPXRoaXMuc3RvcmUuc2VsZWN0KHl6KSx0aGlzLnhTY2FsZVR5cGUkPXRoaXMuc3RvcmUuc2VsZWN0KHl6KS5waXBlKFZ0KCh0PT57c3dpdGNoKHQpe2Nhc2UgUVQuU1RFUDpjYXNlIFFULlJFTEFUSVZFOnJldHVybiBuNi5MSU5FQVI7Y2FzZSBRVC5XQUxMX1RJTUU6cmV0dXJuIG42LlRJTUU7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgeEF4aXNUeXBlIGZvciBsaW5lIGNoYXJ0LiAke3R9YCl9fSkpKSx0aGlzLnNjYWxhclNtb290aGluZyQ9dGhpcy5zdG9yZS5zZWxlY3QoQ3opLHRoaXMuc21vb3RoaW5nRW5hYmxlZCQ9dGhpcy5zdG9yZS5zZWxlY3QoQ3opLnBpcGUoVnQoKHQ9PnQ+MCkpKSx0aGlzLnNob3dGdWxsU2l6ZT0hMSx0aGlzLm5nVW5zdWJzY3JpYmU9bmV3IEJ9b25WaXNpYmlsaXR5Q2hhbmdlKHt2aXNpYmxlOnR9KXt0aGlzLmlzVmlzaWJsZT10fWlzU2NhbGFyQ2FyZE1ldGFkYXRhKHQpe2NvbnN0e3BsdWdpbjplfT10O3JldHVybiBlPT09S1QuU0NBTEFSU31vbkZ1bGxTaXplVG9nZ2xlKCl7dGhpcy5zaG93RnVsbFNpemU9IXRoaXMuc2hvd0Z1bGxTaXplLHRoaXMuZnVsbFdpZHRoQ2hhbmdlZC5lbWl0KHRoaXMuc2hvd0Z1bGxTaXplKSx0aGlzLmZ1bGxIZWlnaHRDaGFuZ2VkLmVtaXQodGhpcy5zaG93RnVsbFNpemUpfW5nT25Jbml0KCl7Y29uc3QgdD10aGlzLnN0b3JlLnNlbGVjdChueix0aGlzLmNhcmRJZCkucGlwZSh1ZSgodD0+ISF0JiZ0aGlzLmlzU2NhbGFyQ2FyZE1ldGFkYXRhKHQpKSksVnQoKHQ9PnQpKSk7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoWyJzbW9vdGhlZCIsdF0pfWNvbnN0IG49dGhpcy5zdG9yZS5zZWxlY3QodHosdGhpcy5jYXJkSWQpLnBpcGUoamUodGhpcy5uZ1Vuc3Vic2NyaWJlKSx1ZSgodD0+Qm9vbGVhbih0KSkpLFZ0KCh0PT50KSksRmUoMSkpLnBpcGUoX2UodGhpcy5zdG9yZS5zZWxlY3QoeXopKSxWdCgoKFt0LGVdKT0+T2JqZWN0LmtleXModCkubWFwKChuPT4oe3J1bklkOm4scG9pbnRzOnRoaXMuc3RlcFNlcmllc1RvTGluZVNlcmllcyh0W25dLGUpfSkpKSkpLHdlKGxidCkpLnBpcGUoX2UodGhpcy5zdG9yZS5zZWxlY3QoTXopKSxqZSh0aGlzLm5nVW5zdWJzY3JpYmUpLFZ0KCgoW3QsZV0pPT5lPyhmdW5jdGlvbiBuKHQpe3ZhciBlO2NvbnN0IG49W107Zm9yKGNvbnN0IG8gb2YgdCl7Y29uc3QgdD1bXTtsZXQgaT1OdW1iZXIuaXNGaW5pdGUobnVsbD09PShlPW8ucG9pbnRzWzBdKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS54KT9vLnBvaW50c1swXS54Oi0xLzAsYT1bXTtmb3IoY29uc3QgZSBvZiBvLnBvaW50cylOdW1iZXIuaXNGaW5pdGUoZS54KT8oZS54PGkmJih0LnB1c2goe3Nlcmllc0lkOkpTT04uc3RyaW5naWZ5KFtvLnJ1bklkLHQubGVuZ3RoXSkscnVuSWQ6by5ydW5JZCxwb2ludHM6YX0pLGE9W10pLGEucHVzaChlKSxpPWUueCk6YS5wdXNoKGUpO3QucHVzaCh7c2VyaWVzSWQ6SlNPTi5zdHJpbmdpZnkoW28ucnVuSWQsdC5sZW5ndGhdKSxydW5JZDpvLnJ1bklkLHBvaW50czphfSk7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspbi5wdXNoKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0W2VdKSx7cGFydGl0aW9uSW5kZXg6ZSxwYXJ0aXRpb25TaXplOnQubGVuZ3RofSkpfXJldHVybiBufSkodCk6dC5tYXAoKHQ9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c2VyaWVzSWQ6dC5ydW5JZCxwYXJ0aXRpb25JbmRleDowLHBhcnRpdGlvblNpemU6MX0pKSkpKSxWdCgodD0+dC5tYXAoKHQ9Pnt2YXIgZTtjb25zdCBuPW51bGw9PT0oZT10LnBvaW50c1swXSl8fHZvaWQgMD09PWU/dm9pZCAwOmUud2FsbFRpbWU7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7cG9pbnRzOnQucG9pbnRzLm1hcCgodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtyZWxhdGl2ZVRpbWVJbk1zOnQud2FsbFRpbWUtbn0pKSl9KX0pKSkpLF9lKHRoaXMuc3RvcmUuc2VsZWN0KHl6KSksVnQoKChbdCxlXSk9PnQubWFwKCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3BvaW50czp0LnBvaW50cy5tYXAoKHQ9PntsZXQgbjtzd2l0Y2goZSl7Y2FzZSBRVC5SRUxBVElWRTpuPXQucmVsYXRpdmVUaW1lSW5NczticmVhaztjYXNlIFFULldBTExfVElNRTpuPXQud2FsbFRpbWU7YnJlYWs7Y2FzZSBRVC5TVEVQOmRlZmF1bHQ6bj10LnN0ZXB9cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7eDpufSl9KSl9KSkpKSksRmUoMSkpO3RoaXMuZGF0YVNlcmllcyQ9bi5waXBlKF9lKHRoaXMuc3RvcmUuc2VsZWN0KEN6KSksVmUoKChbdCxuXSk9Pntjb25zdCBvPXQubWFwKCgoe3Nlcmllc0lkOnQscG9pbnRzOmV9KT0+KHtpZDp0LHBvaW50czplfSkpKTtyZXR1cm4gbjw9MD96dChvKTpQdCgoZnVuY3Rpb24gaSh0LGUpe3ZhciBuO3JldHVybiBYVCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe051bWJlci5pc0Zpbml0ZShlKXx8KGU9MCksZT1NYXRoLm1heCgwLE1hdGgubWluKGUsMSkpO2NvbnN0IG89W107Zm9yKGNvbnN0IGkgb2YgdCl7Y29uc3QgdD1udWxsPT09KG49aS5wb2ludHNbMF0pfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLnk7aWYoaS5wb2ludHMuZXZlcnkoKGU9PmUueT09dCkpKXtvLnB1c2goaSk7Y29udGludWV9bGV0IGE9aS5wb2ludHMubGVuZ3RoPjA/MDpOYU4scj0wO2NvbnN0IHM9aS5wb2ludHMubWFwKCh0PT57Y29uc3Qgbj10Lnk7aWYoTnVtYmVyLmlzRmluaXRlKG4pKXthPWEqZSsoMS1lKSpuLHIrKztjb25zdCBvPTE9PT1lPzE6MS1NYXRoLnBvdyhlLHIpO3JldHVybnt4OnQueCx5OmEvb319cmV0dXJue3g6dC54LHk6bn19KSk7by5wdXNoKHtpZDppLmlkLHBvaW50czpzfSl9cmV0dXJuIG99KSl9KShvLG4pKS5waXBlKFZ0KCh0PT57Y29uc3Qgbj1vLm1hcCgoKG4sbyk9Pih7aWQ6ZShuLmlkKSxwb2ludHM6dFtvXS5wb2ludHMubWFwKCgoe3k6dH0sZSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxuLnBvaW50c1tlXSkse3k6dH0pKSl9KSkpO3JldHVyblsuLi5vLC4uLm5dfSkpKX0pKSxCZShbXSkpLHRoaXMuc2VsZWN0ZWRUaW1lJD1LdChbbix0aGlzLnN0b3JlLnNlbGVjdChFeiksdGhpcy5zdG9yZS5zZWxlY3QoeXopXSkucGlwZShWdCgoKFt0LGUsbl0pPT57aWYobiE9PVFULlNURVB8fCFlKXJldHVybiBudWxsO2xldCBvPTEvMCxpPS0xLzA7Zm9yKGNvbnN0e3BvaW50czplfW9mIHQpZm9yKGNvbnN0IHQgb2YgZSlvPW8+dC54P3QueDpvLGk9aTx0Lng/dC54Omk7cmV0dXJuIEI0KGUsbyxpKX0pKSksdGhpcy5jaGFydE1ldGFkYXRhTWFwJD1uLnBpcGUoVmUoKHQ9Pkt0KHQubWFwKCh0PT50aGlzLmdldFJ1bkRpc3BsYXlOYW1lQW5kQWxpYXModC5ydW5JZCkucGlwZShWdCgoZT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLGUpKSkpKSkpKSksX2UodGhpcy5zdG9yZS5zZWxlY3QoX0kpLHRoaXMuc3RvcmUuc2VsZWN0KENJKSx0aGlzLnN0b3JlLnNlbGVjdChDeikpLENlKDApLFZ0KCgoW3QsbixvLGldKT0+e3ZhciBhO2NvbnN0IHI9e30scz1pPjA7Zm9yKGNvbnN0IGUgb2YgdCl7Y29uc3R7c2VyaWVzSWQ6dCxydW5JZDppLGRpc3BsYXlOYW1lOnMsYWxpYXM6bCxwYXJ0aXRpb25JbmRleDpjLHBhcnRpdGlvblNpemU6ZH09ZTtyW3RdPXt0eXBlOm82Lk9SSUdJTkFMLGlkOnQsYWxpYXM6bCxkaXNwbGF5TmFtZTpkPjE/YCR7c306ICR7Y31gOnMsdmlzaWJsZTpCb29sZWFuKG4mJm4uZ2V0KGkpKSxjb2xvcjpudWxsIT09KGE9b1tpXSkmJnZvaWQgMCE9PWE/YToiI2ZmZiIsYXV4OiExLG9wYWNpdHk6MX19aWYoIXMpcmV0dXJuIHI7Zm9yKGNvbnN0W3Qsbl1vZiBPYmplY3QuZW50cmllcyhyKSl7Y29uc3Qgbz1lKHQpO3Jbb109T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4pLHtpZDpvLHR5cGU6bzYuREVSSVZFRCxhdXg6ITEsb3JpZ2luYWxTZXJpZXNJZDp0fSksbi5hdXg9ITAsbi5vcGFjaXR5PS4yNX1yZXR1cm4gcn0pKSxCZSh7fSkpLHRoaXMubG9hZFN0YXRlJD10aGlzLnN0b3JlLnNlbGVjdCgkTix0aGlzLmNhcmRJZCksdGhpcy50YWckPXQucGlwZShWdCgodD0+dC50YWcpKSksdGhpcy50aXRsZSQ9dGhpcy50YWckLnBpcGUoVnQoKHQ9Pkg0KHQsdGhpcy5ncm91cE5hbWUpKSkpLHRoaXMuaXNQaW5uZWQkPXRoaXMuc3RvcmUuc2VsZWN0KGR6LHRoaXMuY2FyZElkKX1uZ09uRGVzdHJveSgpe3RoaXMubmdVbnN1YnNjcmliZS5uZXh0KCksdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCl9Z2V0UnVuRGlzcGxheU5hbWVBbmRBbGlhcyh0KXtyZXR1cm4gS3QoW3RoaXMuc3RvcmUuc2VsZWN0KEd6LHtydW5JZDp0fSksdGhpcy5zdG9yZS5zZWxlY3QoT1IpLHRoaXMuc3RvcmUuc2VsZWN0KFl6LHtydW5JZDp0fSldKS5waXBlKFZ0KCgoW2UsbixvXSk9Pnt2YXIgaSxhO2NvbnN0IHI9bnVsbCE9PWUmJm51bGwhPT0oaT1uW2VdKSYmdm9pZCAwIT09aT9pOm51bGw7cmV0dXJue2Rpc3BsYXlOYW1lOm98fHI/bnVsbCE9PShhPW51bGw9PW8/dm9pZCAwOm8ubmFtZSkmJnZvaWQgMCE9PWE/YToiLi4uIjp0LGFsaWFzOnJ9fSkpKX1zdGVwU2VyaWVzVG9MaW5lU2VyaWVzKHQsZSl7Y29uc3Qgbj1lPT09UVQuU1RFUDtyZXR1cm4gdC5tYXAoKHQ9Pntjb25zdCBlPTFlMyp0LndhbGxUaW1lO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3g6bj90LnN0ZXA6ZSx5OnQudmFsdWUsd2FsbFRpbWU6ZSxyZWxhdGl2ZVRpbWVJbk1zOjB9KX0pKX19Y2J0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxjYnQpKGdmKGlTKSl9LGNidC7JtWNtcD1zbyh7dHlwZTpjYnQsc2VsZWN0b3JzOltbInNjYWxhci1jYXJkIl1dLGlucHV0czp7RGF0YURvd25sb2FkQ29tcG9uZW50OiJEYXRhRG93bmxvYWRDb21wb25lbnQiLGNhcmRJZDoiY2FyZElkIixncm91cE5hbWU6Imdyb3VwTmFtZSJ9LG91dHB1dHM6e2Z1bGxXaWR0aENoYW5nZWQ6ImZ1bGxXaWR0aENoYW5nZWQiLGZ1bGxIZWlnaHRDaGFuZ2VkOiJmdWxsSGVpZ2h0Q2hhbmdlZCIscGluU3RhdGVDaGFuZ2VkOiJwaW5TdGF0ZUNoYW5nZWQifSxkZWNsczoxNCx2YXJzOjQzLGNvbnN0czpbWyJvYnNlcnZlSW50ZXJzZWN0aW9uIiwiIiwzLCJjYXJkSWQiLCJjaGFydE1ldGFkYXRhTWFwIiwiRGF0YURvd25sb2FkQ29tcG9uZW50IiwiZGF0YVNlcmllcyIsImlnbm9yZU91dGxpZXJzIiwiaXNDYXJkVmlzaWJsZSIsImlzUGlubmVkIiwibG9hZFN0YXRlIiwic2hvd0Z1bGxTaXplIiwic21vb3RoaW5nRW5hYmxlZCIsInRhZyIsInRpdGxlIiwidG9vbHRpcFNvcnQiLCJ4QXhpc1R5cGUiLCJ4U2NhbGVUeXBlIiwidXNlRGFya01vZGUiLCJzZWxlY3RlZFRpbWUiLCJvbkZ1bGxTaXplVG9nZ2xlIiwib25QaW5DbGlja2VkIiwib25WaXNpYmlsaXR5Q2hhbmdlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJzY2FsYXItY2FyZC1jb21wb25lbnQiLDApLFJmKCJvbkZ1bGxTaXplVG9nZ2xlIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uRnVsbFNpemVUb2dnbGUoKX0pKSgib25QaW5DbGlja2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5waW5TdGF0ZUNoYW5nZWQuZW1pdChlKX0pKSgib25WaXNpYmlsaXR5Q2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblZpc2liaWxpdHlDaGFuZ2UoZSl9KSksX3koMSwiYXN5bmMiKSxfeSgyLCJhc3luYyIpLF95KDMsImFzeW5jIiksX3koNCwiYXN5bmMiKSxfeSg1LCJhc3luYyIpLF95KDYsImFzeW5jIiksX3koNywiYXN5bmMiKSxfeSg4LCJhc3luYyIpLF95KDksImFzeW5jIiksX3koMTAsImFzeW5jIiksX3koMTEsImFzeW5jIiksX3koMTIsImFzeW5jIiksX3koMTMsImFzeW5jIiksTWYoKSksMiZlJiZiZigiY2FyZElkIixuLmNhcmRJZCkoImNoYXJ0TWV0YWRhdGFNYXAiLEN5KDEsMTcsbi5jaGFydE1ldGFkYXRhTWFwJCkpKCJEYXRhRG93bmxvYWRDb21wb25lbnQiLG4uRGF0YURvd25sb2FkQ29tcG9uZW50KSgiZGF0YVNlcmllcyIsQ3koMiwxOSxuLmRhdGFTZXJpZXMkKSkoImlnbm9yZU91dGxpZXJzIixDeSgzLDIxLG4uaWdub3JlT3V0bGllcnMkKSkoImlzQ2FyZFZpc2libGUiLG4uaXNWaXNpYmxlKSgiaXNQaW5uZWQiLEN5KDQsMjMsbi5pc1Bpbm5lZCQpKSgibG9hZFN0YXRlIixDeSg1LDI1LG4ubG9hZFN0YXRlJCkpKCJzaG93RnVsbFNpemUiLG4uc2hvd0Z1bGxTaXplKSgic21vb3RoaW5nRW5hYmxlZCIsQ3koNiwyNyxuLnNtb290aGluZ0VuYWJsZWQkKSkoInRhZyIsQ3koNywyOSxuLnRhZyQpKSgidGl0bGUiLEN5KDgsMzEsbi50aXRsZSQpKSgidG9vbHRpcFNvcnQiLEN5KDksMzMsbi50b29sdGlwU29ydCQpKSgieEF4aXNUeXBlIixDeSgxMCwzNSxuLnhBeGlzVHlwZSQpKSgieFNjYWxlVHlwZSIsQ3koMTEsMzcsbi54U2NhbGVUeXBlJCkpKCJ1c2VEYXJrTW9kZSIsQ3koMTIsMzksbi51c2VEYXJrTW9kZSQpKSgic2VsZWN0ZWRUaW1lIixDeSgxMyw0MSxuLnNlbGVjdGVkVGltZSQpKX0sZGlyZWN0aXZlczpbcmJ0LHNidF0scGlwZXM6W1Z2XSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVdIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoY2J0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6InNjYWxhci1jYXJkIix0ZW1wbGF0ZTonXG4gICAgPHNjYWxhci1jYXJkLWNvbXBvbmVudFxuICAgICAgW2NhcmRJZF09ImNhcmRJZCJcbiAgICAgIFtjaGFydE1ldGFkYXRhTWFwXT0iY2hhcnRNZXRhZGF0YU1hcCQgfCBhc3luYyJcbiAgICAgIFtEYXRhRG93bmxvYWRDb21wb25lbnRdPSJEYXRhRG93bmxvYWRDb21wb25lbnQiXG4gICAgICBbZGF0YVNlcmllc109ImRhdGFTZXJpZXMkIHwgYXN5bmMiXG4gICAgICBbaWdub3JlT3V0bGllcnNdPSJpZ25vcmVPdXRsaWVycyQgfCBhc3luYyJcbiAgICAgIFtpc0NhcmRWaXNpYmxlXT0iaXNWaXNpYmxlIlxuICAgICAgW2lzUGlubmVkXT0iaXNQaW5uZWQkIHwgYXN5bmMiXG4gICAgICBbbG9hZFN0YXRlXT0ibG9hZFN0YXRlJCB8IGFzeW5jIlxuICAgICAgW3Nob3dGdWxsU2l6ZV09InNob3dGdWxsU2l6ZSJcbiAgICAgIFtzbW9vdGhpbmdFbmFibGVkXT0ic21vb3RoaW5nRW5hYmxlZCQgfCBhc3luYyJcbiAgICAgIFt0YWddPSJ0YWckIHwgYXN5bmMiXG4gICAgICBbdGl0bGVdPSJ0aXRsZSQgfCBhc3luYyJcbiAgICAgIFt0b29sdGlwU29ydF09InRvb2x0aXBTb3J0JCB8IGFzeW5jIlxuICAgICAgW3hBeGlzVHlwZV09InhBeGlzVHlwZSQgfCBhc3luYyJcbiAgICAgIFt4U2NhbGVUeXBlXT0ieFNjYWxlVHlwZSQgfCBhc3luYyJcbiAgICAgIFt1c2VEYXJrTW9kZV09InVzZURhcmtNb2RlJCB8IGFzeW5jIlxuICAgICAgW3NlbGVjdGVkVGltZV09InNlbGVjdGVkVGltZSQgfCBhc3luYyJcbiAgICAgIChvbkZ1bGxTaXplVG9nZ2xlKT0ib25GdWxsU2l6ZVRvZ2dsZSgpIlxuICAgICAgKG9uUGluQ2xpY2tlZCk9InBpblN0YXRlQ2hhbmdlZC5lbWl0KCRldmVudCkiXG4gICAgICBvYnNlcnZlSW50ZXJzZWN0aW9uXG4gICAgICAob25WaXNpYmlsaXR5Q2hhbmdlKT0ib25WaXNpYmlsaXR5Q2hhbmdlKCRldmVudCkiXG4gICAgPjwvc2NhbGFyLWNhcmQtY29tcG9uZW50PlxuICAnLHN0eWxlczpbIlxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuICAgICJdLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSkse0RhdGFEb3dubG9hZENvbXBvbmVudDpbe3R5cGU6Ul99XSxjYXJkSWQ6W3t0eXBlOlJffV0sZ3JvdXBOYW1lOlt7dHlwZTpSX31dLGZ1bGxXaWR0aENoYW5nZWQ6W3t0eXBlOkVffV0sZnVsbEhlaWdodENoYW5nZWQ6W3t0eXBlOkVffV0scGluU3RhdGVDaGFuZ2VkOlt7dHlwZTpFX31dfSk7ZnVuY3Rpb24gZGJ0KHQsZSxuKXtjb25zdCBvPVtdLHtsZWZ0OmkscmlnaHQ6YX09ZSxyPShhLWkpL247bGV0IHM9MCxsPTA7Zm9yKGxldCBlPTA7ZTxuO2UrKyl7Y29uc3QgYT1pK2UqcixjPWErcixkPWU9PT1uLTE7bGV0IHA9bDtmb3IobD0wO3M8dC5sZW5ndGg7KXtjb25zdCBlPXRbc10sbj1wYnQoZSxhLGMsIWQpO2lmKHArPW4uY3VycixsKz1uLm5leHQsZS54K2UuZHg+YylicmVhaztzKyt9by5wdXNoKHt4OmEsZHg6cix5OnB9KX1yZXR1cm4gb31mdW5jdGlvbiBwYnQodCxlLG4sbyl7Y29uc3QgaT10LngsYT10LngrdC5keDtpZihpPm58fGE8ZSlyZXR1cm57Y3VycjowLG5leHQ6MH07aWYoMD09PXQuZHgpcmV0dXJuIG8mJmE+PW4/e2N1cnI6MCxuZXh0OnQueX06e2N1cnI6dC55LG5leHQ6MH07Y29uc3Qgcj1NYXRoLm1pbihhLG4pLU1hdGgubWF4KGksZSk7cmV0dXJue2N1cnI6dC55KnIvdC5keCxuZXh0OjB9fWNvbnN0IG1idD1bIm1haW4iXSxmYnQ9WyJ4QXhpcyJdLHVidD1bInlBeGlzIl0sZ2J0PVsiY29udGVudCJdLGhidD1bImhpc3RvZ3JhbXMiXTtmdW5jdGlvbiBiYnQodCxlKXtpZigxJnQmJihvYSgpLENmKDAsImciKSxDZigxLCJ0ZXh0IiksUHUoMiksTWYoKSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoKTtsdSgidHJhbnNmb3JtIix0LmdldENzc1RyYW5zbGF0ZVB4KHQudG9vbHRpcERhdGEueEF4aXMucG9zaXRpb24sOSkpLERjKDIpLHd1KHQudG9vbHRpcERhdGEueEF4aXMubGFiZWwpfX1mdW5jdGlvbiB5YnQodCxlKXtpZigxJnQmJihvYSgpLENmKDAsImciKSxDZigxLCJ0ZXh0IiksUHUoMiksTWYoKSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoKTtsdSgidHJhbnNmb3JtIix0LmdldEdyb3VwVHJhbnNmb3JtKHQudG9vbHRpcERhdGEuY2xvc2VzdERhdHVtKSksRGMoMSkseW0oInkiLHQudG9vbHRpcERhdGEueUF4aXMucG9zaXRpb24pLERjKDEpLGt1KCIgIix0LnRvb2x0aXBEYXRhLnlBeGlzLmxhYmVsLCIgIil9fWZ1bmN0aW9uIF9idCh0LGUpe2lmKDEmdCYmKENmKDAsImRpdiIsMTYpLHZmKDEsImxpbmtlZC10aW1lLWZvYiIsMTcpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigyKTtsdSgidHJhbnNmb3JtIix0LmdldENzc1RyYW5zbGF0ZVB4KDAsdC5zY2FsZXMudGVtcG9yYWxTY2FsZSh0LmxpbmtlZFRpbWUuZW5kU3RlcCkpKSxEYygxKSxiZigic3RlcCIsdC5saW5rZWRUaW1lLmVuZFN0ZXApfX1mdW5jdGlvbiBDYnQodCxlKXtpZigxJnQmJihvYSgpLGFhKCkseGYoMCksQ2YoMSwiZGl2IiwxNiksdmYoMiwibGlua2VkLXRpbWUtZm9iIiwxNyksTWYoKSxIbSgzLF9idCwyLDMsImRpdiIsMTgpLE9mKCkpLDImdCl7Y29uc3QgdD16ZigpO0RjKDEpLGx1KCJ0cmFuc2Zvcm0iLHQuZ2V0Q3NzVHJhbnNsYXRlUHgoMCx0LnNjYWxlcy50ZW1wb3JhbFNjYWxlKHQubGlua2VkVGltZS5zdGFydFN0ZXApKSksRGMoMSksYmYoInN0ZXAiLHQubGlua2VkVGltZS5zdGFydFN0ZXApLERjKDEpLGJmKCJuZ0lmIix0LmxpbmtlZFRpbWUuZW5kU3RlcCl9fWZ1bmN0aW9uIE1idCh0LGUpe2lmKDEmdCYmKG9hKCksQ2YoMCwiZyIpLHZmKDEsImxpbmUiLDE5KSxNZigpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQ7bHUoInRyYW5zZm9ybSIsemYoKS5nZXRDc3NUcmFuc2xhdGVQeCgwLHQpKX19ZnVuY3Rpb24gdmJ0KHQsZSl7MSZ0JiYob2EoKSx2ZigwLCJsaW5lIiwyMikpfWZ1bmN0aW9uIHhidCh0LGUpe2lmKDEmdCYmKG9hKCksdmYoMCwiY2lyY2xlIiwyMykpLDImdCl7Y29uc3QgdD16ZigpLiRpbXBsaWNpdCxlPXpmKCk7bHUoInRyYW5zZm9ybSIsZS5nZXRDc3NUcmFuc2xhdGVQeChlLmdldFVpQ29vcmRGcm9tQmluRm9yQ29udGVudChlLmdldENsb3Nlc3RCaW5Gcm9tQmluQ29vcmRpbmF0ZSh0LGUudG9vbHRpcERhdGEueFBvc2l0aW9uSW5CaW5Db29yZCkpLngsZS5nZXRVaUNvb3JkRnJvbUJpbkZvckNvbnRlbnQoZS5nZXRDbG9zZXN0QmluRnJvbUJpbkNvb3JkaW5hdGUodCxlLnRvb2x0aXBEYXRhLnhQb3NpdGlvbkluQmluQ29vcmQpKS55KSl9fWZ1bmN0aW9uIE9idCh0LGUpe2lmKDEmdCYmKG9hKCksQ2YoMCwiZyIpLEhtKDEsdmJ0LDEsMCwibGluZSIsMjApLHZmKDIsInBhdGgiKSxIbSgzLHhidCwxLDIsImNpcmNsZSIsMjEpLE1mKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdCxuPXpmKCk7bHUoInRyYW5zZm9ybSIsbi5nZXRHcm91cFRyYW5zZm9ybSh0KSkoImNvbG9yIixuLmdldEhpc3RvZ3JhbUZpbGwodCkpLGN1KCJoaXN0b2dyYW0iLCEwKSgibm8tY29sb3IiLCFuLmlzRGF0dW1JbkxpbmtlZFRpbWVSYW5nZSh0KSksRGMoMSksYmYoIm5nSWYiLG4ubW9kZT09PW4uSGlzdG9ncmFtTW9kZS5PRkZTRVQpLERjKDEpLHltKCJkIixuLmdldEhpc3RvZ3JhbVBhdGgodCkpLERjKDEpLGJmKCJuZ0lmIixuLnRvb2x0aXBEYXRhKX19ZnVuY3Rpb24gUGJ0KHQsZSl7aWYoMSZ0JiYob2EoKSx2ZigwLCJjaXJjbGUiLDIzKSksMiZ0KXtjb25zdCB0PXpmKDIpO3ltKCJjeCIsdC5nZXRVaUNvb3JkRnJvbUJpbkZvckNvbnRlbnQodC50b29sdGlwRGF0YS5jbG9zZXN0QmluKS54KSgiY3kiLHQuZ2V0VWlDb29yZEZyb21CaW5Gb3JDb250ZW50KHQudG9vbHRpcERhdGEuY2xvc2VzdEJpbikueSl9fWZ1bmN0aW9uIHdidCh0LGUpe2lmKDEmdCYmKG9hKCksQ2YoMCwiZyIsNCksQ2YoMSwiZyIpLHZmKDIsInBhdGgiKSxIbSgzLFBidCwxLDIsImNpcmNsZSIsMjQpLE1mKCksQ2YoNCwiZyIsMjUpLENmKDUsInRleHQiLDI2KSxQdSg2KSxNZigpLE1mKCksTWYoKSksMiZ0KXtjb25zdCB0PXpmKCk7RGMoMSksbHUoInRyYW5zZm9ybSIsdC5nZXRHcm91cFRyYW5zZm9ybSh0LnRvb2x0aXBEYXRhLmNsb3Nlc3REYXR1bSkpLERjKDEpLHltKCJkIix0LmdldEhpc3RvZ3JhbVBhdGgodC50b29sdGlwRGF0YS5jbG9zZXN0RGF0dW0pKSxEYygxKSxiZigibmdJZiIsdC50b29sdGlwRGF0YS5jbG9zZXN0QmluKSxEYygxKSxsdSgidHJhbnNmb3JtIix0LmdldENzc1RyYW5zbGF0ZVB4KHQudG9vbHRpcERhdGEudmFsdWUucG9zaXRpb24ueCx0LnRvb2x0aXBEYXRhLnZhbHVlLnBvc2l0aW9uLnkpKSxEYygyKSx3dSh0LnRvb2x0aXBEYXRhLnZhbHVlLmxhYmVsKX19Y2xhc3Mga2J0e2NvbnN0cnVjdG9yKHQpe3RoaXMuY2hhbmdlRGV0ZWN0b3I9dCx0aGlzLm1vZGU9akUuT0ZGU0VULHRoaXMudGltZVByb3BlcnR5PVZFLlNURVAsdGhpcy5saW5rZWRUaW1lPW51bGwsdGhpcy5IaXN0b2dyYW1Nb2RlPWpFLHRoaXMuVGltZVByb3BlcnR5PVZFLHRoaXMudG9vbHRpcERhdGE9bnVsbCx0aGlzLm5nVW5zdWJzY3JpYmU9bmV3IEIsdGhpcy5sYXlvdXQ9e2hpc3RvZ3JhbUhlaWdodDowLGNvbnRlbnRDbGllbnRSZWN0OntoZWlnaHQ6MCx3aWR0aDowfX0sdGhpcy5zY2FsZXM9bnVsbCx0aGlzLmZvcm1hdHRlcnM9e2Jpbk51bWJlcjpMbnQoIi4zfnMiKSxjb3VudDpMbnQoIi4zbiIpLHdhbGxUaW1lOnRpdCgiJW0vJWQgJVgiKSxzdGVwOkxudCgiLjBmIikscmVsYXRpdmU6dD0+TG50KCIuMXIiKSh0LzM2ZTUpKyJoIn0sdGhpcy5kb21WaXNpYmxlPSExfW5nT25DaGFuZ2VzKCl7dGhpcy51cGRhdGVDaGFydElmVmlzaWJsZSgpfW5nT25EZXN0cm95KCl7dGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKSx0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKX1uZ0FmdGVyVmlld0luaXQoKXtsZSh0aGlzLm1haW4ubmF0aXZlRWxlbWVudCwibW91c2Vtb3ZlIix7cGFzc2l2ZTohMH0pLnBpcGUoamUodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCh0PT50aGlzLm9uTW91c2VNb3ZlKHQpKSl9Z2V0Q3NzVHJhbnNsYXRlUHgodCxlKXtyZXR1cm5gdHJhbnNsYXRlKCR7dH1weCwgJHtlfXB4KWB9Z2V0Q2xvc2VzdEJpbkZyb21CaW5Db29yZGluYXRlKHQsZSl7aWYoIXQuYmlucy5sZW5ndGgpcmV0dXJue3g6MCxkeDowLHk6MH07Y29uc3Qgbj10LmJpbnNbMF0sbz10LmJpbnMuc2xpY2UoLTEpWzBdO2lmKGU8bi54KXJldHVybiBuO2lmKGU+PW8ueCtvLmR4KXJldHVybiBvO3JldHVybiB0LmJpbnMuZmluZCgodD0+dC54PD1lJiZlPHQueCt0LmR4KSl9Z2V0VWlDb29yZEZyb21CaW5Gb3JDb250ZW50KHQpe3JldHVybiB0aGlzLnNjYWxlcz97eDp0aGlzLnNjYWxlcy5iaW5TY2FsZShSYnQodCkpLHk6dGhpcy5zY2FsZXMuY291bnRTY2FsZSh0LnkpfTp7eDowLHk6MH19Z2V0SGlzdG9ncmFtUGF0aCh0KXtpZighdGhpcy5zY2FsZXN8fCF0LmJpbnMubGVuZ3RoKXJldHVybiIiO2NvbnN0IGU9dGhpcy5zY2FsZXMuYmluU2NhbGUsbj10aGlzLnNjYWxlcy5jb3VudFNjYWxlLG89dC5iaW5zWzBdLGk9dC5iaW5zLnNsaWNlKC0xKVswXSxhPVtgTSR7ZShSYnQobykpfSwke24oMCl9YF07Zm9yKGNvbnN0IG8gb2YgdC5iaW5zKWEucHVzaChgTCR7ZShSYnQobykpfSwke24oby55KX1gKTtyZXR1cm4gYS5wdXNoKGBMJHtlKFJidChpKSl9LCR7bigwKX1gKSxhLmpvaW4oIiIpfXRyYWNrQnlXYWxsVGltZSh0KXtyZXR1cm4gdC53YWxsVGltZX1nZXRHcm91cFRyYW5zZm9ybSh0KXtyZXR1cm4gdGhpcy5zY2FsZXMmJnRoaXMubW9kZSE9PWpFLk9WRVJMQVk/dGhpcy5nZXRDc3NUcmFuc2xhdGVQeCgwLHRoaXMuc2NhbGVzLnRlbXBvcmFsU2NhbGUodGhpcy5nZXRUaW1lVmFsdWUodCkpKToiIn1pc0xpbmtlZFRpbWVFbmFibGVkKHQpe3JldHVybiBCb29sZWFuKHRoaXMubW9kZT09PWpFLk9GRlNFVCYmdGhpcy50aW1lUHJvcGVydHk9PT1WRS5TVEVQJiZ0aGlzLnNjYWxlcyYmdCl9aXNEYXR1bUluTGlua2VkVGltZVJhbmdlKHQpe3JldHVybiF0aGlzLmlzTGlua2VkVGltZUVuYWJsZWQodGhpcy5saW5rZWRUaW1lKXx8KG51bGw9PT10aGlzLmxpbmtlZFRpbWUuZW5kU3RlcD90aGlzLmxpbmtlZFRpbWUuc3RhcnRTdGVwPT09dC5zdGVwOnRoaXMubGlua2VkVGltZS5zdGFydFN0ZXA8PXQuc3RlcCYmdGhpcy5saW5rZWRUaW1lLmVuZFN0ZXA+PXQuc3RlcCl9Z2V0SGlzdG9ncmFtRmlsbCh0KXtyZXR1cm4gdGhpcy5zY2FsZXM/dGhpcy5zY2FsZXMuZDNDb2xvclNjYWxlKHRoaXMuZ2V0VGltZVZhbHVlKHQpKToiIn1nZXRHcmlkVGlja1lMb2NzKCl7aWYoIXRoaXMuc2NhbGVzfHx0aGlzLm1vZGU9PT1qRS5PRkZTRVQpcmV0dXJuW107Y29uc3QgdD10aGlzLnNjYWxlcy5jb3VudFNjYWxlO3JldHVybiB0LnRpY2tzKCkubWFwKChlPT50KGUpKSl9b25SZXNpemUoKXt0aGlzLnVwZGF0ZUNsaWVudFJlY3RzKCksdGhpcy51cGRhdGVDaGFydElmVmlzaWJsZSgpfW9uVmlzaWJpbGl0eUNoYW5nZSh7dmlzaWJsZTp0fSl7dGhpcy5kb21WaXNpYmxlPXQsdCYmKHRoaXMudXBkYXRlQ2xpZW50UmVjdHMoKSx0aGlzLnVwZGF0ZUNoYXJ0SWZWaXNpYmxlKCkpfWdldFRpbWVWYWx1ZSh0KXtzd2l0Y2godGhpcy50aW1lUHJvcGVydHkpe2Nhc2UgVkUuV0FMTF9USU1FOnJldHVybiB0LndhbGxUaW1lO2Nhc2UgVkUuU1RFUDpyZXR1cm4gdC5zdGVwO2Nhc2UgVkUuUkVMQVRJVkU6cmV0dXJuIHQud2FsbFRpbWUtdGhpcy5kYXRhWzBdLndhbGxUaW1lfX11cGRhdGVDbGllbnRSZWN0cygpe3RoaXMuY29udGVudCYmKHRoaXMubGF5b3V0LmNvbnRlbnRDbGllbnRSZWN0PXRoaXMuY29udGVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHRoaXMubGF5b3V0Lmhpc3RvZ3JhbUhlaWdodD10aGlzLmxheW91dC5jb250ZW50Q2xpZW50UmVjdC5oZWlnaHQvMi41KX11cGRhdGVDaGFydElmVmlzaWJsZSgpe3RoaXMuZG9tVmlzaWJsZSYmKHRoaXMuc2NhbGVzPXRoaXMuY29tcHV0ZVNjYWxlcyh0aGlzLmRhdGEpLHRoaXMucmVuZGVyWEF4aXMoKSx0aGlzLnJlbmRlcllBeGlzKCksdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCkpfWNvbXB1dGVTY2FsZXModCl7Y29uc3R7d2lkdGg6ZSxoZWlnaHQ6bn09dGhpcy5sYXlvdXQuY29udGVudENsaWVudFJlY3Qse21pbjpvLG1heDppfT1EYnQodCwodD0+KGZ1bmN0aW9uIGUodCxuKXtyZXR1cm4gdC5yZWR1Y2UoKCh0LGUpPT5NYXRoLm1pbih0LG4oZSkpKSwxLzApfSkodC5iaW5zLCh0PT50LngpKSksKHQ9PlNidCh0LmJpbnMsKCh7eDp0LGR4OmV9KT0+dCtlKSkpKSxhPVNidCh0LCh0PT5TYnQodC5iaW5zLCgoe3k6dH0pPT50KSkpKSxyPW1vdCgpLmRvbWFpbihbbyxpXSkubmljZSgpLHM9dGhpcy5tb2RlIT09akUuT1ZFUkxBWSYmdGhpcy50aW1lUHJvcGVydHk9PVZFLldBTExfVElNRT9TYXQoKTptb3QoKSxsPXQubWFwKCh0PT50aGlzLmdldFRpbWVWYWx1ZSh0KSkpLHttaW46YyxtYXg6ZH09RGJ0KGwsKHQ9PnQpKSxwPVtjLGRdO3MuZG9tYWluKHApO2NvbnN0IG09bW90KCk7bS5kb21haW4oWzAsYV0pO2NvbnN0IGY9VDkodGhpcy5jb2xvcnx8IiMwMDAiKSx1PW1vdCgpO2lmKHUuZG9tYWluKHApLHIucmFuZ2UoWzAsZV0pLHUucmFuZ2UoW2YuYnJpZ2h0ZXIoKSxmLmRhcmtlcigpXSksdS5pbnRlcnBvbGF0ZSh5dHQpLHRoaXMubW9kZT09PWpFLk9WRVJMQVkpcy5yYW5nZShbbixuXSksbS5yYW5nZShbbiwwXSk7ZWxzZXtzLnJhbmdlKFtuLSh0aGlzLm1vZGU9PT1qRS5PRkZTRVQ/bi10aGlzLmxheW91dC5oaXN0b2dyYW1IZWlnaHQ6MCksbl0pLG0ucmFuZ2UoWzAsLXRoaXMubGF5b3V0Lmhpc3RvZ3JhbUhlaWdodF0pfXJldHVybntiaW5TY2FsZTpyLGQzQ29sb3JTY2FsZTp1LGNvdW50U2NhbGU6bSx0ZW1wb3JhbFNjYWxlOnN9fXJlbmRlclhBeGlzKCl7aWYoIXRoaXMuc2NhbGVzKXJldHVybjtjb25zdHt3aWR0aDp0fT10aGlzLmxheW91dC5jb250ZW50Q2xpZW50UmVjdCxlPUI2KHRoaXMuc2NhbGVzLmJpblNjYWxlKS50aWNrcyhNYXRoLm1heCgyLHQvMjApKTtlLnRpY2tGb3JtYXQodGhpcy5mb3JtYXR0ZXJzLmJpbk51bWJlciksZShuOCh0aGlzLnhBeGlzLm5hdGl2ZUVsZW1lbnQpKX1nZXRZQXhpc0Zvcm1hdHRlcigpe2lmKHRoaXMubW9kZT09PWpFLk9WRVJMQVkpcmV0dXJuIHRoaXMuZm9ybWF0dGVycy5jb3VudDtzd2l0Y2godGhpcy50aW1lUHJvcGVydHkpe2Nhc2UgVkUuV0FMTF9USU1FOnJldHVybiB0aGlzLmZvcm1hdHRlcnMud2FsbFRpbWU7Y2FzZSBWRS5TVEVQOnJldHVybiB0aGlzLmZvcm1hdHRlcnMuc3RlcDtjYXNlIFZFLlJFTEFUSVZFOnJldHVybiB0aGlzLmZvcm1hdHRlcnMucmVsYXRpdmU7ZGVmYXVsdDp0aHJvdyBSYW5nZUVycm9yKGBZIGF4aXMgZm9ybWF0dGVyIGZvciAke3RoaXMudGltZVByb3BlcnR5fSBtdXN0IGJlIGltcGxlbWVudGVkYCl9fXJlbmRlcllBeGlzKCl7aWYoIXRoaXMuc2NhbGVzKXJldHVybjtjb25zdCB0PXRoaXMubW9kZT09PWpFLk9WRVJMQVk/dGhpcy5zY2FsZXMuY291bnRTY2FsZTp0aGlzLnNjYWxlcy50ZW1wb3JhbFNjYWxlLHtoZWlnaHQ6ZX09dGhpcy5sYXlvdXQuY29udGVudENsaWVudFJlY3Qsbj1MNih0KS50aWNrcyhNYXRoLm1heCgyLGUvMTUpKTtuLnRpY2tGb3JtYXQodGhpcy5nZXRZQXhpc0Zvcm1hdHRlcigpKSxuKG44KHRoaXMueUF4aXMubmF0aXZlRWxlbWVudCkpfWZpbmRDbG9zZXN0RGF0dW1JbmRleCh0KXtsZXQgZT10LnRhcmdldCxuPWU7Zm9yKDtlJiZlIT09dGhpcy5oaXN0b2dyYW1zLm5hdGl2ZUVsZW1lbnQ7KW49ZSxlPWUucGFyZW50RWxlbWVudDtyZXR1cm4gZT9BcnJheS5mcm9tKGUuY2hpbGRyZW4pLmluZGV4T2Yobik6LTF9b25Nb3VzZU1vdmVGb3JUZXN0T25seSh0KXtyZXR1cm4gdGhpcy5vbk1vdXNlTW92ZSh0KX1vbk1vdXNlTW92ZSh0KXtpZighdGhpcy5zY2FsZXMpcmV0dXJuO2NvbnN0IGU9dC5vZmZzZXRYLG49dC5vZmZzZXRZLG89dGhpcy5maW5kQ2xvc2VzdERhdHVtSW5kZXgodCk7aWYobzwwKXJldHVybjtjb25zdCBpPXRoaXMuc2NhbGVzLmJpblNjYWxlLmludmVydChlKSxhPXRoaXMuZGF0YVtvXSxyPXRoaXMuZ2V0Q2xvc2VzdEJpbkZyb21CaW5Db29yZGluYXRlKGEsaSk7dGhpcy50b29sdGlwRGF0YT17dmFsdWU6e3Bvc2l0aW9uOnt4OmUseTpufSxsYWJlbDp0aGlzLm1vZGU9PT1qRS5PRkZTRVQ/dGhpcy5mb3JtYXR0ZXJzLmNvdW50KHIueSk6YFN0ZXA6ICR7dGhpcy5mb3JtYXR0ZXJzLnN0ZXAoYS5zdGVwKX1gfSx4QXhpczp7cG9zaXRpb246dGhpcy5nZXRVaUNvb3JkRnJvbUJpbkZvckNvbnRlbnQocikueCxsYWJlbDp0aGlzLmZvcm1hdHRlcnMuYmluTnVtYmVyKFJidChyKSl9LHlBeGlzOntwb3NpdGlvbjp0aGlzLnNjYWxlcy5jb3VudFNjYWxlKHRoaXMubW9kZT09PWpFLk9GRlNFVD8wOnIueSksbGFiZWw6dGhpcy5tb2RlPT09akUuT0ZGU0VUP3RoaXMuZ2V0WUF4aXNGb3JtYXR0ZXIoKSh0aGlzLmdldFRpbWVWYWx1ZShhKSk6dGhpcy5mb3JtYXR0ZXJzLmJpbk51bWJlcihyLnkpfSx4UG9zaXRpb25JbkJpbkNvb3JkOmksY2xvc2VzdERhdHVtOmEsY2xvc2VzdEJpbjpyfSx0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKX19ZnVuY3Rpb24gU2J0KHQsZSl7cmV0dXJuIHQucmVkdWNlKCgodCxuKT0+TWF0aC5tYXgodCxlKG4pKSksLTEvMCl9ZnVuY3Rpb24gRGJ0KHQsZSxuKXtufHwobj1lKTtsZXQgbz0xLzAsaT0tMS8wO2Zvcihjb25zdCBhIG9mIHQpbz1NYXRoLm1pbihvLGUoYSkpLGk9TWF0aC5tYXgoaSxuKGEpKTtyZXR1cm57bWluOm8sbWF4Oml9fWZ1bmN0aW9uIFJidCh0KXtyZXR1cm4gdC54Ky41KnQuZHh9ZnVuY3Rpb24gRWJ0KHQsZSl7MSZ0JiZ2ZigwLCJ2aXMtc2VsZWN0ZWQtdGltZS1jbGlwcGVkIil9ZnVuY3Rpb24gQWJ0KHQsZSl7MSZ0JiYoQ2YoMCwic3BhbiIsMTQpLHZmKDEsIm1hdC1zcGlubmVyIiwxNSksTWYoKSl9a2J0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxrYnQpKGdmKE9iKSl9LGtidC7JtWNtcD1zbyh7dHlwZTprYnQsc2VsZWN0b3JzOltbInRiLWhpc3RvZ3JhbSJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKFZ5KG1idCw1KSxWeShmYnQsNSksVnkodWJ0LDUpLFZ5KGdidCw1KSxWeShoYnQsNSkpLDImZSl7bGV0IHQ7QnkodD1VeSgpKSYmKG4ubWFpbj10LmZpcnN0KSxCeSh0PVV5KCkpJiYobi54QXhpcz10LmZpcnN0KSxCeSh0PVV5KCkpJiYobi55QXhpcz10LmZpcnN0KSxCeSh0PVV5KCkpJiYobi5jb250ZW50PXQuZmlyc3QpLEJ5KHQ9VXkoKSkmJihuLmhpc3RvZ3JhbXM9dC5maXJzdCl9fSxpbnB1dHM6e21vZGU6Im1vZGUiLHRpbWVQcm9wZXJ0eToidGltZVByb3BlcnR5Iixjb2xvcjoiY29sb3IiLGRhdGE6ImRhdGEiLGxpbmtlZFRpbWU6ImxpbmtlZFRpbWUifSxmZWF0dXJlczpbcW9dLGRlY2xzOjIyLHZhcnM6MTcsY29uc3RzOltbImRldGVjdFJlc2l6ZSIsIiIsIm9ic2VydmVJbnRlcnNlY3Rpb24iLCIiLDMsIm9uUmVzaXplIiwib25WaXNpYmlsaXR5Q2hhbmdlIl0sWyJtYWluIiwiIl0sWzEsImF4aXMiLCJ4LWF4aXMiXSxbInhBeGlzIiwiIl0sWzEsInRvb2x0aXAiXSxbMywidHJhbnNmb3JtIiw0LCJuZ0lmIl0sWzEsImF4aXMiLCJ5LWF4aXMiXSxbInlBeGlzIiwiIl0sWzQsIm5nSWYiXSxbMSwiY29udGVudCJdLFsiY29udGVudCIsIiJdLFsxLCJncmlkIl0sWzMsInRyYW5zZm9ybSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJoaXN0b2dyYW1zIiwiIl0sWzMsInRyYW5zZm9ybSIsImhpc3RvZ3JhbSIsIm5vLWNvbG9yIiwiY29sb3IiLDQsIm5nRm9yIiwibmdGb3JPZiIsIm5nRm9yVHJhY2tCeSJdLFsiY2xhc3MiLCJ0b29sdGlwIiw0LCJuZ0lmIl0sWzEsImxpbmtlZC10aW1lIl0sWzEsImxpbmtlZC10aW1lLWZvYiIsMywic3RlcCJdLFsiY2xhc3MiLCJsaW5rZWQtdGltZSIsMywidHJhbnNmb3JtIiw0LCJuZ0lmIl0sWyJ4MiIsIjEwMCUiLDEsInRpY2siXSxbImNsYXNzIiwiYmFzZWxpbmUiLCJ4MiIsIjEwMCUiLDQsIm5nSWYiXSxbInIiLCIyIiwzLCJ0cmFuc2Zvcm0iLDQsIm5nSWYiXSxbIngyIiwiMTAwJSIsMSwiYmFzZWxpbmUiXSxbInIiLCIyIl0sWyJyIiwiMiIsNCwibmdJZiJdLFsxLCJ2YWx1ZS1sYWJlbCJdLFsieCIsIjMiLCJ5IiwiLTMiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKENmKDAsImRpdiIsMCwxKSxSZigib25SZXNpemUiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25SZXNpemUoKX0pKSgib25WaXNpYmlsaXR5Q2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblZpc2liaWxpdHlDaGFuZ2UoZSl9KSksb2EoKSxDZigyLCJzdmciLDIpLHZmKDMsImciLG51bGwsMyksQ2YoNSwiZyIsNCksSG0oNixiYnQsMywzLCJnIiw1KSxNZigpLE1mKCksYWEoKSxDZig3LCJkaXYiLDYpLG9hKCksQ2YoOCwic3ZnIiksdmYoOSwiZyIsbnVsbCw3KSxDZigxMSwiZyIsNCksSG0oMTIseWJ0LDMsNCwiZyIsNSksTWYoKSxNZigpLEhtKDEzLENidCw0LDQsIm5nLWNvbnRhaW5lciIsOCksTWYoKSxDZigxNCwic3ZnIiw5LDEwKSxDZigxNiwiZyIsMTEpLEhtKDE3LE1idCwyLDIsImciLDEyKSxNZigpLENmKDE4LCJnIixudWxsLDEzKSxIbSgyMCxPYnQsNCwxMSwiZyIsMTQpLE1mKCksSG0oMjEsd2J0LDcsNywiZyIsMTUpLE1mKCksTWYoKSksMiZlJiYobXUoIm1haW4gIituLm1vZGUrIiAiK24udGltZVByb3BlcnR5KSxEYyg2KSxiZigibmdJZiIsbi50b29sdGlwRGF0YSksRGMoNSksbHUoInRyYW5zZm9ybSIsbi5nZXRDc3NUcmFuc2xhdGVQeCg5LDApKSxEYygxKSxiZigibmdJZiIsbi50b29sdGlwRGF0YSksRGMoMSksYmYoIm5nSWYiLG4uaXNMaW5rZWRUaW1lRW5hYmxlZChuLmxpbmtlZFRpbWUpKSxEYyg0KSxiZigibmdGb3JPZiIsbi5nZXRHcmlkVGlja1lMb2NzKCkpLERjKDEpLGN1KCJoaXN0b2dyYW1zIiwhMCkoImxpbmtlZC10aW1lLWVuYWJsZWQiLG4ubGlua2VkVGltZSkoImxpbmtlZC10aW1lLXNpbmdsZS1zdGVwIixuLmxpbmtlZFRpbWUmJiFuLmxpbmtlZFRpbWUuZW5kU3RlcCksRGMoMiksYmYoIm5nRm9yT2YiLG4uZGF0YSkoIm5nRm9yVHJhY2tCeSIsbi50cmFja0J5V2FsbFRpbWUpLERjKDEpLGJmKCJuZ0lmIixuLnRvb2x0aXBEYXRhKSl9LGRpcmVjdGl2ZXM6WyRRLHNidCxQdix4dixqaHRdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV0sIC5tYWluW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfVtfbmdob3N0LSVDT01QJV17Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6MTBweH0ubWFpbltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtYXJlYXM6ImNvbnRlbnQgeS1heGlzIiAieC1heGlzIC4iO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgNTBweDtncmlkLXRlbXBsYXRlLXJvd3M6MWZyIDMwcHh9Lm1haW4ud2FsbF90aW1lW19uZ2NvbnRlbnQtJUNPTVAlXXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDc1cHh9LnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdLCAuYmFzZWxpbmVbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiMwMDB9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAudG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6I2ZmZn1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuYmFzZWxpbmVbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuYmFzZWxpbmVbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNmZmZ9LmxpbmtlZC10aW1lLWZvYltfbmdjb250ZW50LSVDT01QJV0gICB0ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdICAgdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6Ym9sZDtmb250LXNpemU6MTBweH0ubGlua2VkLXRpbWUtZm9iW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRleHRbX25nY29udGVudC0lQ09NUCVdLCAubGlua2VkLXRpbWUtZm9iW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNpcmNsZVtfbmdjb250ZW50LSVDT01QJV0sIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRleHRbX25nY29udGVudC0lQ09NUCVdLCAudG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0gICBjaXJjbGVbX25nY29udGVudC0lQ09NUCVde2ZpbGw6Y3VycmVudENvbG9yfS5saW5rZWQtdGltZS1mb2JbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtkb21pbmFudC1iYXNlbGluZTppZGVvZ3JhcGhpYzt0ZXh0LWFuY2hvcjpzdGFydH0ubGlua2VkLXRpbWVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6OXB4O3RvcDowO2hlaWdodDoxMDAlO3JpZ2h0OjB9LmxpbmtlZC10aW1lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5saW5rZWQtdGltZS1mb2JbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpfS5heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgICB7Y29sb3I6IzYxNjE2MTtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW59Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmF4aXNbX25nY29udGVudC0lQ09NUCVdICAgICwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmF4aXNbX25nY29udGVudC0lQ09NUCVdICAgIHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0uYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAgIC5kb21haW4sIC5heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLnRpY2sgdGV4dHtkaXNwbGF5Om5vbmV9LmF4aXNbX25nY29udGVudC0lQ09NUCVdICAgICAudGljazpudGgtY2hpbGQoMm4rMSkgdGV4dHtkaXNwbGF5OmluaXRpYWx9c3ZnW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO3BvaW50ZXItZXZlbnRzOnZpc2libGVQYWludGVkfXN2Z1tfbmdjb250ZW50LSVDT01QJV0gICBsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgc3ZnW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNpcmNsZVtfbmdjb250ZW50LSVDT01QJV0sIHN2Z1tfbmdjb250ZW50LSVDT01QJV0gICAudG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZX1zdmdbX25nY29udGVudC0lQ09NUCVdICAgZ1tfbmdjb250ZW50LSVDT01QJV17d2lsbC1jaGFuZ2U6dHJhbnNmb3JtfS54LWF4aXNbX25nY29udGVudC0lQ09NUCVde2dyaWQtYXJlYTp4LWF4aXN9LngtYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAudG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17ZG9taW5hbnQtYmFzZWxpbmU6aGFuZ2luZzt0ZXh0LWFuY2hvcjptaWRkbGV9LnktYXhpc1tfbmdjb250ZW50LSVDT01QJV17Z3JpZC1hcmVhOnktYXhpczstd2Via2l0LW1hc2staW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzAwMDAgMCUsICMwMDAgMTAlLCAjMDAwIDkwJSwgIzAwMDAgMTAwJSk7bWFzay1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMDAwMCAwJSwgIzAwMCAxMCUsICMwMDAgOTAlLCAjMDAwMCAxMDAlKX0ueS1heGlzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtkb21pbmFudC1iYXNlbGluZTptaWRkbGU7dGV4dC1hbmNob3I6c3RhcnR9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLnRpY2tbX25nY29udGVudC0lQ09NUCVdLCAuYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAgIC50aWNrIGxpbmV7c3Ryb2tlOiNkZGR9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLnRpY2tbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAudGlja1tfbmdjb250ZW50LSVDT01QJV17c3Ryb2tlOiM1NTV9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmF4aXNbX25nY29udGVudC0lQ09NUCVdICAgICAudGljayBsaW5lLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuYXhpc1tfbmdjb250ZW50LSVDT01QJV0gICAgIC50aWNrIGxpbmV7c3Ryb2tlOiM1NTV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2dyaWQtYXJlYTpjb250ZW50fS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50aWNrW19uZ2NvbnRlbnQtJUNPTVAlXXtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1kYXNoYXJyYXk6Mn0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICBjaXJjbGVbX25nY29udGVudC0lQ09NUCVdLCAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICBwYXRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmaWxsOmN1cnJlbnRDb2xvcjtzdHJva2Utb3BhY2l0eTouNjtzdHJva2Utd2lkdGg6MXB4fS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNpcmNsZVtfbmdjb250ZW50LSVDT01QJV17ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjYpKTtzdHJva2U6I2ZmZjt3aWxsLWNoYW5nZTp0cmFuc2Zvcm19LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmJhc2VsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtzdHJva2Utb3BhY2l0eTouMTtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZTpjdXJyZW50Q29sb3I7d2lkdGg6MTAwJX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAudG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0gICBwYXRoW19uZ2NvbnRlbnQtJUNPTVAlXXtzdHJva2Utb3BhY2l0eToxO3N0cm9rZTpjdXJyZW50Q29sb3I7ZmlsbDp0cmFuc3BhcmVudH0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAubm8tY29sb3JbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjIxLDIyMSwyMjEsLjQpICFpbXBvcnRhbnR9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLm5vLWNvbG9yW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBhdGhbX25nY29udGVudC0lQ09NUCVde3N0cm9rZS1vcGFjaXR5Oi4yfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uby1jb2xvcltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uby1jb2xvcltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSg1MSw1MSw1MSwuNCkgIWltcG9ydGFudH0ub2Zmc2V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5oaXN0b2dyYW1zW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBhdGhbX25nY29udGVudC0lQ09NUCVde3N0cm9rZTojZmZmfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5vZmZzZXRbX25nY29udGVudC0lQ09NUCVdICAgLmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmhpc3RvZ3JhbXNbX25nY29udGVudC0lQ09NUCVdICAgcGF0aFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5vZmZzZXRbX25nY29udGVudC0lQ09NUCVdICAgLmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmhpc3RvZ3JhbXNbX25nY29udGVudC0lQ09NUCVdICAgcGF0aFtfbmdjb250ZW50LSVDT01QJV17c3Ryb2tlOiM1NTV9Lm9mZnNldFtfbmdjb250ZW50LSVDT01QJV0gICAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuaGlzdG9ncmFtcy5saW5rZWQtdGltZS1zaW5nbGUtc3RlcFtfbmdjb250ZW50LSVDT01QJV0gICBbX25nY29udGVudC0lQ09NUCVdOm5vdCgubm8tY29sb3IpICAgcGF0aFtfbmdjb250ZW50LSVDT01QJV17c3Ryb2tlOiMwMDB9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLm9mZnNldFtfbmdjb250ZW50LSVDT01QJV0gICAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuaGlzdG9ncmFtcy5saW5rZWQtdGltZS1zaW5nbGUtc3RlcFtfbmdjb250ZW50LSVDT01QJV0gICBbX25nY29udGVudC0lQ09NUCVdOm5vdCgubm8tY29sb3IpICAgcGF0aFtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5vZmZzZXRbX25nY29udGVudC0lQ09NUCVdICAgLmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmhpc3RvZ3JhbXMubGlua2VkLXRpbWUtc2luZ2xlLXN0ZXBbX25nY29udGVudC0lQ09NUCVdICAgW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoLm5vLWNvbG9yKSAgIHBhdGhbX25nY29udGVudC0lQ09NUCVde3N0cm9rZTojZmZmfS5vdmVybGF5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC54LWF4aXNbX25nY29udGVudC0lQ09NUCVdICAgICAudGljayBsaW5le2Rpc3BsYXk6bm9uZX0ub3ZlcmxheVtfbmdjb250ZW50LSVDT01QJV0gICAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICBwYXRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmaWxsLW9wYWNpdHk6MDtzdHJva2U6Y3VycmVudENvbG9yfS50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgY2lyY2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9Lm1haW5bX25nY29udGVudC0lQ09NUCVdOmhvdmVyICAgLmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgY2lyY2xlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1haW5bX25nY29udGVudC0lQ09NUCVdOmhvdmVyICAgLnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2t9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGtidCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJ0Yi1oaXN0b2dyYW0iLHRlbXBsYXRlVXJsOiJoaXN0b2dyYW1fY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbImhpc3RvZ3JhbV9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOk9ifV19KSx7bWFpbjpbe3R5cGU6YXIsYXJnczpbIm1haW4iXX1dLHhBeGlzOlt7dHlwZTphcixhcmdzOlsieEF4aXMiXX1dLHlBeGlzOlt7dHlwZTphcixhcmdzOlsieUF4aXMiXX1dLGNvbnRlbnQ6W3t0eXBlOmFyLGFyZ3M6WyJjb250ZW50Il19XSxoaXN0b2dyYW1zOlt7dHlwZTphcixhcmdzOlsiaGlzdG9ncmFtcyJdfV0sbW9kZTpbe3R5cGU6Ul99XSx0aW1lUHJvcGVydHk6W3t0eXBlOlJffV0sY29sb3I6W3t0eXBlOlJffV0sZGF0YTpbe3R5cGU6Ul99XSxsaW5rZWRUaW1lOlt7dHlwZTpSX31dfSk7Y29uc3QgVGJ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJue3N0YXJ0U3RlcDp0LGVuZFN0ZXA6ZX19O2Z1bmN0aW9uIE5idCh0LGUpe2lmKDEmdCYmdmYoMCwidGItaGlzdG9ncmFtIiwxNiksMiZ0KXtjb25zdCB0PXpmKCk7YmYoImRhdGEiLHQuZGF0YSkoIm1vZGUiLHQubW9kZSkoInRpbWVQcm9wZXJ0eSIsdC50aW1lUHJvcGVydHkodC54QXhpc1R5cGUpKSgiY29sb3IiLHQucnVuQ29sb3JTY2FsZSh0LnJ1bklkKSkoImxpbmtlZFRpbWUiLHQuc2VsZWN0ZWRUaW1lP2F5KDUsVGJ0LHQuc2VsZWN0ZWRUaW1lLnN0YXJ0U3RlcCx0LnNlbGVjdGVkVGltZS5lbmRTdGVwKTpudWxsKX19ZnVuY3Rpb24gemJ0KHQsZSl7MSZ0JiYoQ2YoMCwiZGl2IiwxOCksUHUoMSwiIERhdGEgZmFpbGVkIHRvIGxvYWQuICIpLE1mKCkpfWZ1bmN0aW9uIElidCh0LGUpe2lmKDEmdCYmSG0oMCx6YnQsMiwwLCJkaXYiLDE3KSwyJnQpe2NvbnN0IHQ9emYoKTtiZigibmdJZiIsdC5sb2FkU3RhdGU9PT10LkRhdGFMb2FkU3RhdGUuRkFJTEVEKX19Y29uc3QgSGJ0PWZ1bmN0aW9uKHQpe3JldHVybntiYWNrZ3JvdW5kQ29sb3I6dH19O2NsYXNzIEZidHtjb25zdHJ1Y3Rvcigpe3RoaXMuRGF0YUxvYWRTdGF0ZT1VRSx0aGlzLm9uRnVsbFNpemVUb2dnbGU9bmV3IFN5LHRoaXMub25QaW5DbGlja2VkPW5ldyBTeX10aW1lUHJvcGVydHkodCl7c3dpdGNoKHQpe2Nhc2UgUVQuU1RFUDpyZXR1cm4gVkUuU1RFUDtjYXNlIFFULldBTExfVElNRTpyZXR1cm4gVkUuV0FMTF9USU1FO2Nhc2UgUVQuUkVMQVRJVkU6cmV0dXJuIFZFLlJFTEFUSVZFO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHhBeGlzVHlwZSBmb3IgaGlzdG9ncmFtIHRpbWUgcHJvcGVydHkuIil9fX1GYnQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEZidCl9LEZidC7JtWNtcD1zbyh7dHlwZTpGYnQsc2VsZWN0b3JzOltbImhpc3RvZ3JhbS1jYXJkLWNvbXBvbmVudCJdXSxpbnB1dHM6e2xvYWRTdGF0ZToibG9hZFN0YXRlIix0aXRsZToidGl0bGUiLHRhZzoidGFnIixydW5JZDoicnVuSWQiLGRhdGE6ImRhdGEiLG1vZGU6Im1vZGUiLHhBeGlzVHlwZToieEF4aXNUeXBlIixydW5Db2xvclNjYWxlOiJydW5Db2xvclNjYWxlIixzaG93RnVsbFNpemU6InNob3dGdWxsU2l6ZSIsaXNQaW5uZWQ6ImlzUGlubmVkIixzZWxlY3RlZFRpbWU6InNlbGVjdGVkVGltZSJ9LG91dHB1dHM6e29uRnVsbFNpemVUb2dnbGU6Im9uRnVsbFNpemVUb2dnbGUiLG9uUGluQ2xpY2tlZDoib25QaW5DbGlja2VkIn0sZGVjbHM6MTYsdmFyczoxMyxjb25zdHM6ZnVuY3Rpb24oKXtsZXQgdCxlO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlKXt0PWdvb2cuZ2V0TXNnKCJQaW4gY2FyZCIpfWVsc2UgdD0kbG9jYWxpemVgOkEgYnV0dG9uIHRvIHBpbiBhIGNhcmQu4pCfZTY2NWRjNzEyYmQ1ZjE4ZDRkZmEzYTI5ZTEyNWQ1NjVjYzUxZTJmNuKQnzcyODQ2MDY0MjYyMzQzNzUzNDQ6UGluIGNhcmRgO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlKXtlPWdvb2cuZ2V0TXNnKCJUb2dnbGUgZnVsbCBzaXplIG1vZGUiKX1lbHNlIGU9JGxvY2FsaXplYDpBIGJ1dHRvbiBvbiBhIGhpc3RvZ3JhbSBjYXJkIHRoYXQgdG9nZ2xlcyBmdWxsIHNpemUgbW9kZS7ikJ9mYzhmNzY3ZDBiOWY5MzAxODdhMWJhZTM0NDc3YWQyODczNmVjZTMz4pCfOTE1NzIxNTYzNjM4OTI2NTk3OlRvZ2dsZSBmdWxsIHNpemUgbW9kZWA7cmV0dXJuW1sxLCJoZWFkaW5nIl0sWzEsInRhZyJdLFszLCJ0aXRsZSIsInZhbHVlIl0sWzQsIm5nSWYiXSxbMSwicnVuIl0sWzEsImRvdCIsMywibmdTdHlsZSJdLFsxLCJydW4tdGV4dCIsMywicnVuSWQiXSxbMSwiY29udHJvbHMiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHQsMSwicGluLWJ1dHRvbiIsMywiY2xpY2siXSxbMywic3ZnSWNvbiJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsZSwidGl0bGUiLCJUb2dnbGUgZnVsbCBzaXplIG1vZGUiLDMsImNsaWNrIl0sWyJjbGFzcyIsInNwaW5uZXIiLDQsIm5nSWYiXSxbMywiZGF0YSIsIm1vZGUiLCJ0aW1lUHJvcGVydHkiLCJjb2xvciIsImxpbmtlZFRpbWUiLDQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsibm9EYXRhIiwiIl0sWzEsInNwaW5uZXIiXSxbImRpYW1ldGVyIiwiMTgiXSxbMywiZGF0YSIsIm1vZGUiLCJ0aW1lUHJvcGVydHkiLCJjb2xvciIsImxpbmtlZFRpbWUiXSxbImNsYXNzIiwiZW1wdHktbWVzc2FnZSIsNCwibmdJZiJdLFsxLCJlbXB0eS1tZXNzYWdlIl1dfSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoQ2YoMCwiZGl2IiwwKSxDZigxLCJkaXYiLDEpLHZmKDIsInRiLXRydW5jYXRlZC1wYXRoIiwyKSxIbSgzLEVidCwxLDAsInZpcy1zZWxlY3RlZC10aW1lLWNsaXBwZWQiLDMpLE1mKCksQ2YoNCwiZGl2Iiw0KSx2Zig1LCJzcGFuIiw1KSx2Zig2LCJjYXJkLXJ1bi1uYW1lIiw2KSxNZigpLENmKDcsInNwYW4iLDcpLENmKDgsImJ1dHRvbiIsOCksUmYoImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUGluQ2xpY2tlZC5lbWl0KCFuLmlzUGlubmVkKX0pKSx2Zig5LCJtYXQtaWNvbiIsOSksTWYoKSxDZigxMCwiYnV0dG9uIiwxMCksUmYoImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uRnVsbFNpemVUb2dnbGUuZW1pdCgpfSkpLHZmKDExLCJtYXQtaWNvbiIsOSksTWYoKSxNZigpLEhtKDEyLEFidCwyLDAsInNwYW4iLDExKSxNZigpLEhtKDEzLE5idCwxLDgsInRiLWhpc3RvZ3JhbSIsMTIpLEhtKDE0LElidCwxLDEsIm5nLXRlbXBsYXRlIixudWxsLDEzLHF5KSksMiZlKXtjb25zdCB0PUZtKDE1KTtEYygyKSxiZigidGl0bGUiLG4udGFnKSgidmFsdWUiLG4udGl0bGUpLERjKDEpLGJmKCJuZ0lmIixuLnNlbGVjdGVkVGltZSYmbi5zZWxlY3RlZFRpbWUuY2xpcHBlZCksRGMoMiksYmYoIm5nU3R5bGUiLGl5KDExLEhidCxuLnJ1bkNvbG9yU2NhbGUobi5ydW5JZCkpKSxEYygxKSxiZigicnVuSWQiLG4ucnVuSWQpLERjKDIpLHltKCJ0aXRsZSIsbi5pc1Bpbm5lZD8iVW5waW4gY2FyZCI6IlBpbiBjYXJkIiksRGMoMSksYmYoInN2Z0ljb24iLG4uaXNQaW5uZWQ/ImtlZXBfMjRweCI6ImtlZXBfb3V0bGluZV8yNHB4IiksRGMoMiksYmYoInN2Z0ljb24iLG4uc2hvd0Z1bGxTaXplPyJmdWxsc2NyZWVuX2V4aXRfMjRweCI6ImZ1bGxzY3JlZW5fMjRweCIpLERjKDEpLGJmKCJuZ0lmIixuLmxvYWRTdGF0ZT09PW4uRGF0YUxvYWRTdGF0ZS5MT0FESU5HKSxEYygxKSxiZigibmdJZiIsbi5kYXRhJiZuLmRhdGEubGVuZ3RoKSgibmdJZkVsc2UiLHQpfX0sZGlyZWN0aXZlczpbTDQsUHYsenYsVzQsTkwsTXEsVmh0LGEyLGtidF0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6MTAwJTtvdmVyZmxvdzphdXRvO3BhZGRpbmc6MTZweDtwYWRkaW5nLXRvcDo0cHh9LmhlYWRpbmdbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1hcmVhczoidGFnIGNvbnRyb2xzIiAicnVuIHNwaW5uZXIiO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgYXV0bztmb250LXNpemU6MTRweDttYXJnaW4tYm90dG9tOjRweH0udGFnW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2dhcDo1cHg7Z3JpZC1hcmVhOnRhZztvdmVyZmxvdzpoaWRkZW59LnRhZ1tfbmdjb250ZW50LSVDT01QJV0gICB2aXMtc2VsZWN0ZWQtdGltZS1jbGlwcGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDowfS5waW4tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MThweH0ucnVuW19uZ2NvbnRlbnQtJUNPTVAlXXtncmlkLWFyZWE6cnVuO2Rpc3BsYXk6ZmxleDt3aGl0ZS1zcGFjZTpub3dyYXA7Zm9udC1zaXplOjEzcHh9LnJ1bltfbmdjb250ZW50LSVDT01QJV0gICAuZG90W19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4Om5vbmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTNweDtoZWlnaHQ6MTNweDtib3JkZXItcmFkaXVzOjUwJTttYXJnaW4tcmlnaHQ6NHB4fS5ydW5bX25nY29udGVudC0lQ09NUCVdICAgLnJ1bi10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczttYXgtd2lkdGg6MTIwcHh9LmNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxO3doaXRlLXNwYWNlOm5vd3JhcDtncmlkLWFyZWE6Y29udHJvbHM7anVzdGlmeS1zZWxmOmZsZXgtZW5kO2ZsZXgtc2hyaW5rOjA7bWFyZ2luLXJpZ2h0Oi0xMnB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5jb250cm9sc1tfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9LnNwaW5uZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtncmlkLWFyZWE6c3Bpbm5lcjtoZWlnaHQ6MTAwJTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlfW1hdC1zcGlubmVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MDtyaWdodDowO3Bvc2l0aW9uOmFic29sdXRlfXRiLWhpc3RvZ3JhbVtfbmdjb250ZW50LSVDT01QJV17ZmxleC1ncm93OjE7b3ZlcmZsb3c6aGlkZGVufS5lbXB0eS1tZXNzYWdlW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjFlbTtmb250LXNpemU6MTNweH0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoRmJ0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Imhpc3RvZ3JhbS1jYXJkLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Imhpc3RvZ3JhbV9jYXJkX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyJoaXN0b2dyYW1fY2FyZF9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sbnVsbCx7bG9hZFN0YXRlOlt7dHlwZTpSX31dLHRpdGxlOlt7dHlwZTpSX31dLHRhZzpbe3R5cGU6Ul99XSxydW5JZDpbe3R5cGU6Ul99XSxkYXRhOlt7dHlwZTpSX31dLG1vZGU6W3t0eXBlOlJffV0seEF4aXNUeXBlOlt7dHlwZTpSX31dLHJ1bkNvbG9yU2NhbGU6W3t0eXBlOlJffV0sc2hvd0Z1bGxTaXplOlt7dHlwZTpSX31dLGlzUGlubmVkOlt7dHlwZTpSX31dLHNlbGVjdGVkVGltZTpbe3R5cGU6Ul99XSxvbkZ1bGxTaXplVG9nZ2xlOlt7dHlwZTpFX31dLG9uUGluQ2xpY2tlZDpbe3R5cGU6RV99XX0pO2NsYXNzIExidHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5mdWxsV2lkdGhDaGFuZ2VkPW5ldyBTeSx0aGlzLmZ1bGxIZWlnaHRDaGFuZ2VkPW5ldyBTeSx0aGlzLnBpblN0YXRlQ2hhbmdlZD1uZXcgU3ksdGhpcy5tb2RlJD10aGlzLnN0b3JlLnNlbGVjdChfeiksdGhpcy54QXhpc1R5cGUkPXRoaXMuc3RvcmUuc2VsZWN0KHl6KSx0aGlzLnNob3dGdWxsU2l6ZT0hMX1pc0hpc3RvZ3JhbUNhcmRNZXRhZGF0YSh0KXtjb25zdHtwbHVnaW46ZX09dDtyZXR1cm4gZT09PUtULkhJU1RPR1JBTVN9b25GdWxsU2l6ZVRvZ2dsZSgpe3RoaXMuc2hvd0Z1bGxTaXplPSF0aGlzLnNob3dGdWxsU2l6ZSx0aGlzLmZ1bGxXaWR0aENoYW5nZWQuZW1pdCh0aGlzLnNob3dGdWxsU2l6ZSksdGhpcy5mdWxsSGVpZ2h0Q2hhbmdlZC5lbWl0KHRoaXMuc2hvd0Z1bGxTaXplKX1uZ09uSW5pdCgpe2NvbnN0IHQ9dGhpcy5zdG9yZS5zZWxlY3QobnosdGhpcy5jYXJkSWQpLnBpcGUodWUoKHQ9PiEhdCYmdGhpcy5pc0hpc3RvZ3JhbUNhcmRNZXRhZGF0YSh0KSkpLFZ0KCh0PT50KSkpLGU9S3QoW3QsdGhpcy5zdG9yZS5zZWxlY3QodHosdGhpcy5jYXJkSWQpXSk7dGhpcy5kYXRhJD1lLnBpcGUoVnQoKChbdCxlXSk9Pntjb25zdCBuPXQucnVuSWQ7aWYoIWV8fCFlLmhhc093blByb3BlcnR5KG4pKXJldHVybltdO3JldHVybihmdW5jdGlvbiBvKHQsZT0zMCl7aWYoIXQubGVuZ3RofHxlPDEpcmV0dXJuW107Y29uc3Qgbj0oZnVuY3Rpb24gbyh0KXtsZXQgZT1udWxsLG49bnVsbDtmb3IoY29uc3R7YmluczpvfW9mIHQpe2lmKCFvLmxlbmd0aCljb250aW51ZTtjb25zdCB0PW9bby5sZW5ndGgtMV0saT1vWzBdLngsYT10LngrdC5keDsobnVsbD09PWV8fGk8ZSkmJihlPWkpLChudWxsPT09bnx8YT5uKSYmKG49YSl9cmV0dXJuIG51bGw9PT1lfHxudWxsPT09bj9udWxsOntsZWZ0OmUscmlnaHQ6bn19KSh0KTtyZXR1cm4gbiYmbi5sZWZ0PT09bi5yaWdodCYmKG4ucmlnaHQ9MS4xKm4ucmlnaHQrMSxuLmxlZnQ9bi5sZWZ0LzEuMS0xKSx0Lm1hcCgodD0+KHtzdGVwOnQuc3RlcCx3YWxsVGltZTp0LndhbGxUaW1lLGJpbnM6bj9kYnQodC5iaW5zLG4sZSk6W119KSkpfSkoZVtuXS5tYXAoKHQ9Pntjb25zdHt3YWxsVGltZTplLHN0ZXA6bn09dDtyZXR1cm57d2FsbFRpbWU6ZSxzdGVwOm4sYmluczp0LmJpbnMubWFwKCh0PT4oe3g6dC5taW4sZHg6dC5tYXgtdC5taW4seTp0LmNvdW50fSkpKX19KSkpfSkpKSx0aGlzLnNlbGVjdGVkVGltZSQ9dGhpcy5zdG9yZS5zZWxlY3QoRXopLnBpcGUoX2UodGhpcy5kYXRhJCksVnQoKChbdCxlXSk9PntpZighdClyZXR1cm4gbnVsbDtsZXQgbj0xLzAsbz0tMS8wO2Zvcihjb25zdCB0IG9mIGUpbj1NYXRoLm1pbih0LnN0ZXAsbiksbz1NYXRoLm1heCh0LnN0ZXAsbyk7cmV0dXJuIEI0KHQsbixvKX0pKSksdGhpcy5sb2FkU3RhdGUkPXRoaXMuc3RvcmUuc2VsZWN0KCROLHRoaXMuY2FyZElkKSx0aGlzLnRhZyQ9dC5waXBlKFZ0KCh0PT50LnRhZykpKSx0aGlzLnRpdGxlJD10aGlzLnRhZyQucGlwZShWdCgodD0+SDQodCx0aGlzLmdyb3VwTmFtZSkpKSksdGhpcy5ydW5JZCQ9dC5waXBlKFZ0KCh0PT50LnJ1bklkKSkpLHRoaXMuaXNQaW5uZWQkPXRoaXMuc3RvcmUuc2VsZWN0KGR6LHRoaXMuY2FyZElkKX19ZnVuY3Rpb24gQmJ0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwiaW1hZ2UtY2FyZCIsNiksUmYoImZ1bGxXaWR0aENoYW5nZWQiLChmdW5jdGlvbiBlKG4pe1BpKHQpO3JldHVybiB6ZigyKS5vbkZ1bGxXaWR0aENoYW5nZWQobil9KSkoInBpblN0YXRlQ2hhbmdlZCIsKGZ1bmN0aW9uIGUoKXtQaSh0KTtyZXR1cm4gemYoMikub25QaW5TdGF0ZUNoYW5nZWQoKX0pKSxNZigpfWlmKDImdCl7Y29uc3QgdD16ZigyKTtiZigiY2FyZElkIix0LmNhcmRJZCkoImdyb3VwTmFtZSIsdC5ncm91cE5hbWUpKCJydW5Db2xvclNjYWxlIix0LnJ1bkNvbG9yU2NhbGUpfX1mdW5jdGlvbiBWYnQodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJzY2FsYXItY2FyZCIsNyksUmYoImZ1bGxXaWR0aENoYW5nZWQiLChmdW5jdGlvbiBlKG4pe1BpKHQpO3JldHVybiB6ZigyKS5vbkZ1bGxXaWR0aENoYW5nZWQobil9KSkoImZ1bGxIZWlnaHRDaGFuZ2VkIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtyZXR1cm4gemYoMikub25GdWxsSGVpZ2h0Q2hhbmdlZChuKX0pKSgicGluU3RhdGVDaGFuZ2VkIiwoZnVuY3Rpb24gZSgpe1BpKHQpO3JldHVybiB6ZigyKS5vblBpblN0YXRlQ2hhbmdlZCgpfSkpLE1mKCl9aWYoMiZ0KXtjb25zdCB0PXpmKDIpO2JmKCJjYXJkSWQiLHQuY2FyZElkKSgiZ3JvdXBOYW1lIix0Lmdyb3VwTmFtZSl9fWZ1bmN0aW9uIGpidCh0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO0NmKDAsImhpc3RvZ3JhbS1jYXJkIiw4KSxSZigiZnVsbFdpZHRoQ2hhbmdlZCIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKDIpLm9uRnVsbFdpZHRoQ2hhbmdlZChuKX0pKSgiZnVsbEhlaWdodENoYW5nZWQiLChmdW5jdGlvbiBlKG4pe1BpKHQpO3JldHVybiB6ZigyKS5vbkZ1bGxIZWlnaHRDaGFuZ2VkKG4pfSkpKCJwaW5TdGF0ZUNoYW5nZWQiLChmdW5jdGlvbiBlKCl7UGkodCk7cmV0dXJuIHpmKDIpLm9uUGluU3RhdGVDaGFuZ2VkKCl9KSksTWYoKX1pZigyJnQpe2NvbnN0IHQ9emYoMik7YmYoImNhcmRJZCIsdC5jYXJkSWQpKCJncm91cE5hbWUiLHQuZ3JvdXBOYW1lKSgicnVuQ29sb3JTY2FsZSIsdC5ydW5Db2xvclNjYWxlKX19ZnVuY3Rpb24gVWJ0KHQsZSl7aWYoMSZ0JiYoQ2YoMCwiZGl2IiksUHUoMSksTWYoKSksMiZ0KXtjb25zdCB0PXpmKDIpO0RjKDEpLGt1KCJQbGFjZWhvbGRlciBlcnJvciBmb3I6ICIsdC5jYXJkSWQsIiIpfX1mdW5jdGlvbiBXYnQodCxlKXtpZigxJnQmJih4ZigwLDEpLEhtKDEsQmJ0LDEsMywiaW1hZ2UtY2FyZCIsMiksSG0oMixWYnQsMSwyLCJzY2FsYXItY2FyZCIsMyksSG0oMyxqYnQsMSwzLCJoaXN0b2dyYW0tY2FyZCIsNCksSG0oNCxVYnQsMiwxLCJkaXYiLDUpLE9mKCkpLDImdCl7Y29uc3QgdD16ZigpO2JmKCJuZ1N3aXRjaCIsdC5wbHVnaW5UeXBlKSxEYygxKSxiZigibmdTd2l0Y2hDYXNlIix0LlBsdWdpblR5cGUuSU1BR0VTKSxEYygxKSxiZigibmdTd2l0Y2hDYXNlIix0LlBsdWdpblR5cGUuU0NBTEFSUyksRGMoMSksYmYoIm5nU3dpdGNoQ2FzZSIsdC5QbHVnaW5UeXBlLkhJU1RPR1JBTVMpfX1MYnQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fExidCkoZ2YoaVMpKX0sTGJ0Lsm1Y21wPXNvKHt0eXBlOkxidCxzZWxlY3RvcnM6W1siaGlzdG9ncmFtLWNhcmQiXV0saW5wdXRzOntjYXJkSWQ6ImNhcmRJZCIsZ3JvdXBOYW1lOiJncm91cE5hbWUiLHJ1bkNvbG9yU2NhbGU6InJ1bkNvbG9yU2NhbGUifSxvdXRwdXRzOntmdWxsV2lkdGhDaGFuZ2VkOiJmdWxsV2lkdGhDaGFuZ2VkIixmdWxsSGVpZ2h0Q2hhbmdlZDoiZnVsbEhlaWdodENoYW5nZWQiLHBpblN0YXRlQ2hhbmdlZDoicGluU3RhdGVDaGFuZ2VkIn0sZGVjbHM6MTAsdmFyczoyOSxjb25zdHM6W1szLCJsb2FkU3RhdGUiLCJ0aXRsZSIsInRhZyIsInJ1bklkIiwiZGF0YSIsIm1vZGUiLCJ4QXhpc1R5cGUiLCJydW5Db2xvclNjYWxlIiwic2hvd0Z1bGxTaXplIiwiaXNQaW5uZWQiLCJzZWxlY3RlZFRpbWUiLCJvbkZ1bGxTaXplVG9nZ2xlIiwib25QaW5DbGlja2VkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJoaXN0b2dyYW0tY2FyZC1jb21wb25lbnQiLDApLFJmKCJvbkZ1bGxTaXplVG9nZ2xlIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uRnVsbFNpemVUb2dnbGUoKX0pKSgib25QaW5DbGlja2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5waW5TdGF0ZUNoYW5nZWQuZW1pdChlKX0pKSxfeSgxLCJhc3luYyIpLF95KDIsImFzeW5jIiksX3koMywiYXN5bmMiKSxfeSg0LCJhc3luYyIpLF95KDUsImFzeW5jIiksX3koNiwiYXN5bmMiKSxfeSg3LCJhc3luYyIpLF95KDgsImFzeW5jIiksX3koOSwiYXN5bmMiKSxNZigpKSwyJmUmJmJmKCJsb2FkU3RhdGUiLEN5KDEsMTEsbi5sb2FkU3RhdGUkKSkoInRpdGxlIixDeSgyLDEzLG4udGl0bGUkKSkoInRhZyIsQ3koMywxNSxuLnRhZyQpKSgicnVuSWQiLEN5KDQsMTcsbi5ydW5JZCQpKSgiZGF0YSIsQ3koNSwxOSxuLmRhdGEkKSkoIm1vZGUiLEN5KDYsMjEsbi5tb2RlJCkpKCJ4QXhpc1R5cGUiLEN5KDcsMjMsbi54QXhpc1R5cGUkKSkoInJ1bkNvbG9yU2NhbGUiLG4ucnVuQ29sb3JTY2FsZSkoInNob3dGdWxsU2l6ZSIsbi5zaG93RnVsbFNpemUpKCJpc1Bpbm5lZCIsQ3koOCwyNSxuLmlzUGlubmVkJCkpKCJzZWxlY3RlZFRpbWUiLEN5KDksMjcsbi5zZWxlY3RlZFRpbWUkKSl9LGRpcmVjdGl2ZXM6W0ZidF0scGlwZXM6W1Z2XSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVdIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoTGJ0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Imhpc3RvZ3JhbS1jYXJkIix0ZW1wbGF0ZTonXG4gICAgPGhpc3RvZ3JhbS1jYXJkLWNvbXBvbmVudFxuICAgICAgW2xvYWRTdGF0ZV09ImxvYWRTdGF0ZSQgfCBhc3luYyJcbiAgICAgIFt0aXRsZV09InRpdGxlJCB8IGFzeW5jIlxuICAgICAgW3RhZ109InRhZyQgfCBhc3luYyJcbiAgICAgIFtydW5JZF09InJ1bklkJCB8IGFzeW5jIlxuICAgICAgW2RhdGFdPSJkYXRhJCB8IGFzeW5jIlxuICAgICAgW21vZGVdPSJtb2RlJCB8IGFzeW5jIlxuICAgICAgW3hBeGlzVHlwZV09InhBeGlzVHlwZSQgfCBhc3luYyJcbiAgICAgIFtydW5Db2xvclNjYWxlXT0icnVuQ29sb3JTY2FsZSJcbiAgICAgIFtzaG93RnVsbFNpemVdPSJzaG93RnVsbFNpemUiXG4gICAgICBbaXNQaW5uZWRdPSJpc1Bpbm5lZCQgfCBhc3luYyJcbiAgICAgIFtzZWxlY3RlZFRpbWVdPSJzZWxlY3RlZFRpbWUkIHwgYXN5bmMiXG4gICAgICAob25GdWxsU2l6ZVRvZ2dsZSk9Im9uRnVsbFNpemVUb2dnbGUoKSJcbiAgICAgIChvblBpbkNsaWNrZWQpPSJwaW5TdGF0ZUNoYW5nZWQuZW1pdCgkZXZlbnQpIlxuICAgID48L2hpc3RvZ3JhbS1jYXJkLWNvbXBvbmVudD5cbiAgJyxzdHlsZXM6WyJcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgICAiXSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aVN9XX0pLHtjYXJkSWQ6W3t0eXBlOlJffV0sZ3JvdXBOYW1lOlt7dHlwZTpSX31dLHJ1bkNvbG9yU2NhbGU6W3t0eXBlOlJffV0sZnVsbFdpZHRoQ2hhbmdlZDpbe3R5cGU6RV99XSxmdWxsSGVpZ2h0Q2hhbmdlZDpbe3R5cGU6RV99XSxwaW5TdGF0ZUNoYW5nZWQ6W3t0eXBlOkVffV19KTtjbGFzcyBHYnR7Y29uc3RydWN0b3IoKXt0aGlzLlBsdWdpblR5cGU9S1QsdGhpcy5mdWxsV2lkdGhDaGFuZ2VkPW5ldyBTeSx0aGlzLmZ1bGxIZWlnaHRDaGFuZ2VkPW5ldyBTeSx0aGlzLnBpblN0YXRlQ2hhbmdlZD1uZXcgU3l9b25GdWxsV2lkdGhDaGFuZ2VkKHQpe3RoaXMuZnVsbFdpZHRoQ2hhbmdlZC5lbWl0KHQpfW9uRnVsbEhlaWdodENoYW5nZWQodCl7dGhpcy5mdWxsSGVpZ2h0Q2hhbmdlZC5lbWl0KHQpfW9uUGluU3RhdGVDaGFuZ2VkKCl7dGhpcy5waW5TdGF0ZUNoYW5nZWQuZW1pdCgpfX1HYnQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEdidCl9LEdidC7JtWNtcD1zbyh7dHlwZTpHYnQsc2VsZWN0b3JzOltbImNhcmQtdmlldy1jb21wb25lbnQiXV0saW5wdXRzOntpc0V2ZXJWaXNpYmxlOiJpc0V2ZXJWaXNpYmxlIixjYXJkSWQ6ImNhcmRJZCIsZ3JvdXBOYW1lOiJncm91cE5hbWUiLHBsdWdpblR5cGU6InBsdWdpblR5cGUiLHJ1bkNvbG9yU2NhbGU6InJ1bkNvbG9yU2NhbGUifSxvdXRwdXRzOntmdWxsV2lkdGhDaGFuZ2VkOiJmdWxsV2lkdGhDaGFuZ2VkIixmdWxsSGVpZ2h0Q2hhbmdlZDoiZnVsbEhlaWdodENoYW5nZWQiLHBpblN0YXRlQ2hhbmdlZDoicGluU3RhdGVDaGFuZ2VkIn0sZGVjbHM6MSx2YXJzOjEsY29uc3RzOltbMywibmdTd2l0Y2giLDQsIm5nSWYiXSxbMywibmdTd2l0Y2giXSxbMywiY2FyZElkIiwiZ3JvdXBOYW1lIiwicnVuQ29sb3JTY2FsZSIsImZ1bGxXaWR0aENoYW5nZWQiLCJwaW5TdGF0ZUNoYW5nZWQiLDQsIm5nU3dpdGNoQ2FzZSJdLFszLCJjYXJkSWQiLCJncm91cE5hbWUiLCJmdWxsV2lkdGhDaGFuZ2VkIiwiZnVsbEhlaWdodENoYW5nZWQiLCJwaW5TdGF0ZUNoYW5nZWQiLDQsIm5nU3dpdGNoQ2FzZSJdLFszLCJjYXJkSWQiLCJncm91cE5hbWUiLCJydW5Db2xvclNjYWxlIiwiZnVsbFdpZHRoQ2hhbmdlZCIsImZ1bGxIZWlnaHRDaGFuZ2VkIiwicGluU3RhdGVDaGFuZ2VkIiw0LCJuZ1N3aXRjaENhc2UiXSxbNCwibmdTd2l0Y2hEZWZhdWx0Il0sWzMsImNhcmRJZCIsImdyb3VwTmFtZSIsInJ1bkNvbG9yU2NhbGUiLCJmdWxsV2lkdGhDaGFuZ2VkIiwicGluU3RhdGVDaGFuZ2VkIl0sWzMsImNhcmRJZCIsImdyb3VwTmFtZSIsImZ1bGxXaWR0aENoYW5nZWQiLCJmdWxsSGVpZ2h0Q2hhbmdlZCIsInBpblN0YXRlQ2hhbmdlZCJdLFszLCJjYXJkSWQiLCJncm91cE5hbWUiLCJydW5Db2xvclNjYWxlIiwiZnVsbFdpZHRoQ2hhbmdlZCIsImZ1bGxIZWlnaHRDaGFuZ2VkIiwicGluU3RhdGVDaGFuZ2VkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJkhtKDAsV2J0LDUsNCwibmctY29udGFpbmVyIiwwKSwyJmUmJmJmKCJuZ0lmIixuLmlzRXZlclZpc2libGUpfSxkaXJlY3RpdmVzOltQdixEdixSdixFdix0NixjYnQsTGJ0XSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEdidCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJjYXJkLXZpZXctY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiY2FyZF92aWV3X2NvbXBvbmVudC5uZy5odG1sIixjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSxudWxsLHtpc0V2ZXJWaXNpYmxlOlt7dHlwZTpSX31dLGNhcmRJZDpbe3R5cGU6Ul99XSxncm91cE5hbWU6W3t0eXBlOlJffV0scGx1Z2luVHlwZTpbe3R5cGU6Ul99XSxydW5Db2xvclNjYWxlOlt7dHlwZTpSX31dLGZ1bGxXaWR0aENoYW5nZWQ6W3t0eXBlOkVffV0sZnVsbEhlaWdodENoYW5nZWQ6W3t0eXBlOkVffV0scGluU3RhdGVDaGFuZ2VkOlt7dHlwZTpFX31dfSk7Y2xhc3MgWWJ0e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLmlzRXZlclZpc2libGU9ITEsdGhpcy5zaG93RnVsbFdpZHRoPSExLHRoaXMuc2hvd0Z1bGxIZWlnaHQ9ITEsdGhpcy5ydW5Db2xvclNjYWxlJD10aGlzLnN0b3JlLnNlbGVjdChDSSkucGlwZShZZSgzNTAsdm9pZCAwLHtsZWFkaW5nOiEwLHRyYWlsaW5nOiEwfSksVnQoKHQ9PmU9PnQuaGFzT3duUHJvcGVydHkoZSk/dFtlXToiI2ZmZiIpKSl9b25WaXNpYmlsaXR5Q2hhbmdlKHt2aXNpYmxlOnR9KXt0aGlzLmlzRXZlclZpc2libGU9dGhpcy5pc0V2ZXJWaXNpYmxlfHx0fW9uRnVsbFdpZHRoQ2hhbmdlZCh0KXt0aGlzLnNob3dGdWxsV2lkdGg9dH1vbkZ1bGxIZWlnaHRDaGFuZ2VkKHQpe3RoaXMuc2hvd0Z1bGxIZWlnaHQ9dH1vblBpblN0YXRlQ2hhbmdlZCgpe3RoaXMuc3RvcmUuc2VsZWN0KGR6LHRoaXMuY2FyZElkKS5waXBlKHZlKDEpLHFlKHRoaXMuc3RvcmUuc2VsZWN0KG16KSkpLnN1YnNjcmliZSgoKFt0LGVdKT0+e3RoaXMuc3RvcmUuZGlzcGF0Y2goekEoe2NhcmRJZDp0aGlzLmNhcmRJZCxjYW5DcmVhdGVOZXdQaW5zOmUsd2FzUGlubmVkOnR9KSl9KSl9fWZ1bmN0aW9uIHFidCh0LGUpezEmdCYmUGYoMCl9ZnVuY3Rpb24gWmJ0KHQsZSl7aWYoMSZ0JiZ2ZigwLCJjYXJkLXZpZXciLDUpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdCxuPXpmKDIpO2JmKCJjYXJkSWQiLHQuY2FyZElkKSgiZ3JvdXBOYW1lIixuLmdyb3VwTmFtZSkoInBsdWdpblR5cGUiLHQucGx1Z2luKSgiY2FyZE9ic2VydmVyIixuLmNhcmRPYnNlcnZlcikoImNhcmRMYXp5TG9hZGVyIix0LmNhcmRJZCl9fWZ1bmN0aW9uIFhidCh0LGUpezEmdCYmUGYoMCl9WWJ0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxZYnQpKGdmKGlTKSl9LFlidC7JtWNtcD1zbyh7dHlwZTpZYnQsc2VsZWN0b3JzOltbImNhcmQtdmlldyJdXSxob3N0VmFyczo0LGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZjdSgiZnVsbC13aWR0aCIsbi5zaG93RnVsbFdpZHRoKSgiZnVsbC1oZWlnaHQiLG4uc2hvd0Z1bGxIZWlnaHQpfSxpbnB1dHM6e2NhcmRJZDoiY2FyZElkIixncm91cE5hbWU6Imdyb3VwTmFtZSIscGx1Z2luVHlwZToicGx1Z2luVHlwZSJ9LGRlY2xzOjIsdmFyczo3LGNvbnN0czpbWyJvYnNlcnZlSW50ZXJzZWN0aW9uIiwiIiwiaW50ZXJzZWN0aW9uT2JzZXJ2ZXJNYXJnaW4iLCIyMDBweCAyMDBweCAyMDBweCAyMDBweCIsMywiaXNFdmVyVmlzaWJsZSIsImNhcmRJZCIsImdyb3VwTmFtZSIsInBsdWdpblR5cGUiLCJydW5Db2xvclNjYWxlIiwiZnVsbFdpZHRoQ2hhbmdlZCIsImZ1bGxIZWlnaHRDaGFuZ2VkIiwicGluU3RhdGVDaGFuZ2VkIiwib25WaXNpYmlsaXR5Q2hhbmdlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJjYXJkLXZpZXctY29tcG9uZW50IiwwKSxSZigiZnVsbFdpZHRoQ2hhbmdlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25GdWxsV2lkdGhDaGFuZ2VkKGUpfSkpKCJmdWxsSGVpZ2h0Q2hhbmdlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25GdWxsSGVpZ2h0Q2hhbmdlZChlKX0pKSgicGluU3RhdGVDaGFuZ2VkIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUGluU3RhdGVDaGFuZ2VkKCl9KSkoIm9uVmlzaWJpbGl0eUNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25WaXNpYmlsaXR5Q2hhbmdlKGUpfSkpLF95KDEsImFzeW5jIiksTWYoKSksMiZlJiZiZigiaXNFdmVyVmlzaWJsZSIsbi5pc0V2ZXJWaXNpYmxlKSgiY2FyZElkIixuLmNhcmRJZCkoImdyb3VwTmFtZSIsbi5ncm91cE5hbWUpKCJwbHVnaW5UeXBlIixuLnBsdWdpblR5cGUpKCJydW5Db2xvclNjYWxlIixDeSgxLDUsbi5ydW5Db2xvclNjYWxlJCkpfSxkaXJlY3RpdmVzOltHYnQsc2J0XSxwaXBlczpbVnZdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiMzMDMwMzB9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFlidCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJjYXJkLXZpZXciLHRlbXBsYXRlOidcbiAgICA8Y2FyZC12aWV3LWNvbXBvbmVudFxuICAgICAgW2lzRXZlclZpc2libGVdPSJpc0V2ZXJWaXNpYmxlIlxuICAgICAgW2NhcmRJZF09ImNhcmRJZCJcbiAgICAgIFtncm91cE5hbWVdPSJncm91cE5hbWUiXG4gICAgICBbcGx1Z2luVHlwZV09InBsdWdpblR5cGUiXG4gICAgICBbcnVuQ29sb3JTY2FsZV09InJ1bkNvbG9yU2NhbGUkIHwgYXN5bmMiXG4gICAgICAoZnVsbFdpZHRoQ2hhbmdlZCk9Im9uRnVsbFdpZHRoQ2hhbmdlZCgkZXZlbnQpIlxuICAgICAgKGZ1bGxIZWlnaHRDaGFuZ2VkKT0ib25GdWxsSGVpZ2h0Q2hhbmdlZCgkZXZlbnQpIlxuICAgICAgKHBpblN0YXRlQ2hhbmdlZCk9Im9uUGluU3RhdGVDaGFuZ2VkKCkiXG4gICAgICBvYnNlcnZlSW50ZXJzZWN0aW9uXG4gICAgICBpbnRlcnNlY3Rpb25PYnNlcnZlck1hcmdpbj0iMjAwcHggMjAwcHggMjAwcHggMjAwcHgiXG4gICAgICAob25WaXNpYmlsaXR5Q2hhbmdlKT0ib25WaXNpYmlsaXR5Q2hhbmdlKCRldmVudCkiXG4gICAgPlxuICAgIDwvY2FyZC12aWV3LWNvbXBvbmVudD5cbiAgJyxzdHlsZVVybHM6WyJjYXJkX3ZpZXdfY29udGFpbmVyLmNzcyJdLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSkse2NhcmRJZDpbe3R5cGU6Ul99XSxncm91cE5hbWU6W3t0eXBlOlJffV0scGx1Z2luVHlwZTpbe3R5cGU6Ul99XSxzaG93RnVsbFdpZHRoOlt7dHlwZTpBXyxhcmdzOlsiY2xhc3MuZnVsbC13aWR0aCJdfV0sc2hvd0Z1bGxIZWlnaHQ6W3t0eXBlOkFfLGFyZ3M6WyJjbGFzcy5mdWxsLWhlaWdodCJdfV19KTtjb25zdCBLYnQ9ZnVuY3Rpb24oKXtyZXR1cm57aXNCb3R0b21Db250cm9sOiExfX0sSmJ0PWZ1bmN0aW9uKCl7cmV0dXJue2lzQm90dG9tQ29udHJvbDohMH19O2Z1bmN0aW9uIFFidCh0LGUpe2lmKDEmdCYmKENmKDAsImRpdiIpLEhtKDEscWJ0LDEsMCwibmctY29udGFpbmVyIiwyKSxDZigyLCJkaXYiLDMpLEhtKDMsWmJ0LDEsNSwiY2FyZC12aWV3Iiw0KSxNZigpLEhtKDQsWGJ0LDEsMCwibmctY29udGFpbmVyIiwyKSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoKSxlPUZtKDIpO0RjKDEpLGJmKCJuZ1RlbXBsYXRlT3V0bGV0IixlKSgibmdUZW1wbGF0ZU91dGxldENvbnRleHQiLG95KDgsS2J0KSksRGMoMSksbHUoImdyaWQtdGVtcGxhdGUtY29sdW1ucyIsdC5ncmlkVGVtcGxhdGVDb2x1bW4pLERjKDEpLGJmKCJuZ0Zvck9mIix0LmNhcmRJZHNXaXRoTWV0YWRhdGEpKCJuZ0ZvclRyYWNrQnkiLHQudHJhY2tCeUNhcmRzKSxEYygxKSxiZigibmdUZW1wbGF0ZU91dGxldCIsZSkoIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0IixveSg5LEpidCkpfX1mdW5jdGlvbiAkYnQodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJidXR0b24iLDExKSxSZigiY2xpY2siLChmdW5jdGlvbiBlKG4pe1BpKHQpO2NvbnN0IG89emYoMyk7cmV0dXJuIG8uaGFuZGxlUGFnZUNoYW5nZShvLnBhZ2VJbmRleC0xLG4udGFyZ2V0KX0pKSxQdSgxLCIgUHJldmlvdXMgIiksTWYoKX1pZigyJnQpe2JmKCJkaXNhYmxlZCIsMD09PXpmKDMpLnBhZ2VJbmRleCl9fWZ1bmN0aW9uIHR5dCh0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO0NmKDAsInNwYW4iLDE0KSxDZigxLCJpbnB1dCIsMTUpLFJmKCJpbnB1dCIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKDQpLm9uUGFnaW5hdGlvbklucHV0Q2hhbmdlKG4pfSkpKCJjaGFuZ2UiLChmdW5jdGlvbiBlKG4pe1BpKHQpO3JldHVybiB6Zig0KS5vblBhZ2luYXRpb25JbnB1dENoYW5nZShuKX0pKSxNZigpLFB1KDIpLE1mKCl9aWYoMiZ0KXtjb25zdCB0PXpmKDQpO0RjKDEpLGJmKCJ2YWx1ZSIsdC5wYWdlSW5kZXgrMSkoIm1heCIsdC5udW1QYWdlcyksRGMoMSksa3UoIiBvZiAiLHQubnVtUGFnZXMsIiIpfX1mdW5jdGlvbiBleXQodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJzcGFuIiksSG0oMSx0eXQsMywzLCJzcGFuIiwxMiksQ2YoMiwiYnV0dG9uIiwxMyksUmYoImNsaWNrIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtjb25zdCBvPXpmKDMpO3JldHVybiBvLmhhbmRsZVBhZ2VDaGFuZ2Uoby5wYWdlSW5kZXgrMSxuLnRhcmdldCl9KSksUHUoMywiIE5leHQgIiksTWYoKSxNZigpfWlmKDImdCl7Y29uc3QgdD16ZigyKS5pc0JvdHRvbUNvbnRyb2wsZT16ZigpO0RjKDEpLGJmKCJuZ0lmIixlLnNob3dQYWdpbmF0aW9uSW5wdXQodCkpLERjKDEpLGJmKCJkaXNhYmxlZCIsZS5wYWdlSW5kZXgrMT49ZS5udW1QYWdlcyl9fWZ1bmN0aW9uIG55dCh0LGUpe2lmKDEmdCYmKENmKDAsImRpdiIsNyksQ2YoMSwic3BhbiIsOCksSG0oMiwkYnQsMiwxLCJidXR0b24iLDkpLE1mKCksQ2YoMywic3BhbiIsMTApLEhtKDQsZXl0LDQsMiwic3BhbiIsMCksTWYoKSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoMik7RGMoMiksYmYoIm5nSWYiLHQuc2hvd1BhZ2luYXRpb25Db250cm9scyksRGMoMiksYmYoIm5nSWYiLHQuc2hvd1BhZ2luYXRpb25Db250cm9scyl9fWZ1bmN0aW9uIG95dCh0LGUpe2lmKDEmdCYmSG0oMCxueXQsNSwyLCJkaXYiLDYpLDImdCl7YmYoIm5nSWYiLHpmKCkuc2hvd1BhZ2luYXRpb25Db250cm9scyl9fWNsYXNzIGl5dHtjb25zdHJ1Y3Rvcih0KXt0aGlzLmNka1Njcm9sbGFibGU9dCx0aGlzLlBsdWdpblR5cGU9S1QsdGhpcy5ncmlkVGVtcGxhdGVDb2x1bW49IiIsdGhpcy5wYWdlSW5kZXhDaGFuZ2VkPW5ldyBTeX1uZ09uSW5pdCgpe3RoaXMuaXNDYXJkV2lkdGhWYWxpZCh0aGlzLmNhcmRNaW5XaWR0aCkmJih0aGlzLmdyaWRUZW1wbGF0ZUNvbHVtbj1gcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KCR7dGhpcy5jYXJkTWluV2lkdGh9cHgsIGF1dG8pKWApfW5nT25DaGFuZ2VzKHQpe2lmKHQuY2FyZE1pbldpZHRoKXtjb25zdCBlPXQuY2FyZE1pbldpZHRoLmN1cnJlbnRWYWx1ZTt0aGlzLmlzQ2FyZFdpZHRoVmFsaWQoZSk/KHRoaXMuY2FyZE1pbldpZHRoPWUsdGhpcy5ncmlkVGVtcGxhdGVDb2x1bW49YHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgke3RoaXMuY2FyZE1pbldpZHRofXB4LCBhdXRvKSlgKTp0aGlzLmdyaWRUZW1wbGF0ZUNvbHVtbj0iIn19aXNDYXJkV2lkdGhWYWxpZCh0KXtyZXR1cm4gdCYmdD49MzM1JiZ0PD03MzV9c2hvd1BhZ2luYXRpb25JbnB1dCh0KXtyZXR1cm4gdH1oYW5kbGVQYWdlQ2hhbmdlKHQsZSl7Y29uc3Qgbj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtzZXRUaW1lb3V0KCgoKT0+e3RoaXMuc2Nyb2xsVG9LZWVwVGFyZ2V0UG9zaXRpb24oZSxuKX0pLDApLHRoaXMucGFnZUluZGV4Q2hhbmdlZC5lbWl0KHQpfXNjcm9sbFRvS2VlcFRhcmdldFBvc2l0aW9uKHQsZSl7dmFyIG47Y29uc3Qgbz1udWxsPT09KG49dGhpcy5jZGtTY3JvbGxhYmxlKXx8dm9pZCAwPT09bj92b2lkIDA6bi5nZXRFbGVtZW50UmVmKCkubmF0aXZlRWxlbWVudDtvJiZvLnNjcm9sbFRvKDAsdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AtZStvLnNjcm9sbFRvcCl9dHJhY2tCeUNhcmRzKHQsZSl7cmV0dXJuIGUuY2FyZElkfW9uUGFnaW5hdGlvbklucHV0Q2hhbmdlKHQpe2NvbnN0IGU9dC50YXJnZXQ7aWYoImlucHV0Ij09PXQudHlwZSYmIiI9PT1lLnZhbHVlKXJldHVybjtjb25zdCBuPU51bWJlcihlLnZhbHVlKS0xLG89TWF0aC5taW4oTWF0aC5tYXgoMCxuKSx0aGlzLm51bVBhZ2VzLTEpO2UudmFsdWUhPT1TdHJpbmcobysxKSYmKGUudmFsdWU9U3RyaW5nKG8rMSkpLHRoaXMuaGFuZGxlUGFnZUNoYW5nZShvLGUpfX1peXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGl5dCkoZ2YoSkwsOCkpfSxpeXQuybVjbXA9c28oe3R5cGU6aXl0LHNlbGVjdG9yczpbWyJtZXRyaWNzLWNhcmQtZ3JpZC1jb21wb25lbnQiXV0saW5wdXRzOntpc0dyb3VwRXhwYW5kZWQ6ImlzR3JvdXBFeHBhbmRlZCIscGFnZUluZGV4OiJwYWdlSW5kZXgiLG51bVBhZ2VzOiJudW1QYWdlcyIsY2FyZElkc1dpdGhNZXRhZGF0YToiY2FyZElkc1dpdGhNZXRhZGF0YSIsY2FyZE1pbldpZHRoOiJjYXJkTWluV2lkdGgiLGNhcmRPYnNlcnZlcjoiY2FyZE9ic2VydmVyIixzaG93UGFnaW5hdGlvbkNvbnRyb2xzOiJzaG93UGFnaW5hdGlvbkNvbnRyb2xzIn0sb3V0cHV0czp7cGFnZUluZGV4Q2hhbmdlZDoicGFnZUluZGV4Q2hhbmdlZCJ9LGZlYXR1cmVzOltxb10sZGVjbHM6Myx2YXJzOjEsY29uc3RzOmZ1bmN0aW9uKCl7bGV0IHQsZTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZSl7dD1nb29nLmdldE1zZygiUHJldmlvdXMgcGFnZSIpfWVsc2UgdD0kbG9jYWxpemVgOkEgYnV0dG9uIHRoYXQgc2V0cyBhIGdyb3VwIHRvIHRoZSBwcmV2aW91cyBwYWdlLuKQnzU3NWU3ODJmZDI3ZjJlZTcwYTAzNGE3NzVlZmU5YWQxNjI0NzIyNTDikJ8zNjI5OTYwNTQ0ODc1MzYwMDQ2OlByZXZpb3VzIHBhZ2VgO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlKXtlPWdvb2cuZ2V0TXNnKCJOZXh0IHBhZ2UiKX1lbHNlIGU9JGxvY2FsaXplYDpBIGJ1dHRvbiB0aGF0IHNldHMgYSBncm91cCB0byB0aGUgbmV4dCBwYWdlLuKQn2NlM2NlZmIxY2QwMDk5YWE1MDAzZGRhMTZlYzllYjIxZmQ4YmE3ODnikJ8zMzM3MzAxNjk0MjEwMjg3NTk1Ok5leHQgcGFnZWA7cmV0dXJuW1s0LCJuZ0lmIl0sWyJncm91cENvbnRyb2xzIiwiIl0sWzQsIm5nVGVtcGxhdGVPdXRsZXQiLCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCJdLFsxLCJjYXJkLWdyaWQiXSxbMywiY2FyZElkIiwiZ3JvdXBOYW1lIiwicGx1Z2luVHlwZSIsImNhcmRPYnNlcnZlciIsImNhcmRMYXp5TG9hZGVyIiw0LCJuZ0ZvciIsIm5nRm9yT2YiLCJuZ0ZvclRyYWNrQnkiXSxbMywiY2FyZElkIiwiZ3JvdXBOYW1lIiwicGx1Z2luVHlwZSIsImNhcmRPYnNlcnZlciIsImNhcmRMYXp5TG9hZGVyIl0sWyJjbGFzcyIsImdyb3VwLWNvbnRyb2xzIiw0LCJuZ0lmIl0sWzEsImdyb3VwLWNvbnRyb2xzIl0sWzEsInByZXYtY29udGFpbmVyIl0sWyJjbGFzcyIsInByZXYgcGFnaW5hdGlvbi1idXR0b24iLCJtYXQtYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsdCwzLCJkaXNhYmxlZCIsImNsaWNrIiw0LCJuZ0lmIl0sWzEsImlucHV0LWFuZC1uZXh0LWNvbnRhaW5lciJdLFsibWF0LWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHQsMSwicHJldiIsInBhZ2luYXRpb24tYnV0dG9uIiwzLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJjbGFzcyIsInBhZ2luYXRpb24taW5wdXQiLDQsIm5nSWYiXSxbIm1hdC1idXR0b24iLCIiLCJhcmlhLWxhYmVsIixlLDEsIm5leHQiLCJwYWdpbmF0aW9uLWJ1dHRvbiIsMywiZGlzYWJsZWQiLCJjbGljayJdLFsxLCJwYWdpbmF0aW9uLWlucHV0Il0sWyJ0eXBlIiwibnVtYmVyIiwibWluIiwiMSIsMywidmFsdWUiLCJtYXgiLCJpbnB1dCIsImNoYW5nZSJdXX0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKEhtKDAsUWJ0LDUsMTAsImRpdiIsMCksSG0oMSxveXQsMSwxLCJuZy10ZW1wbGF0ZSIsbnVsbCwxLHF5KSksMiZlJiZiZigibmdJZiIsbi5pc0dyb3VwRXhwYW5kZWQpfSxkaXJlY3RpdmVzOltQdixJdix4dixZYnQsQzQsTkxdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17Y29udGFpbjpjb250ZW50fS5jYXJkLWdyaWRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDMzNXB4LCBhdXRvKSk7Z2FwOjE2cHg7cGFkZGluZzoxNnB4fWNhcmQtdmlld1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO2JvcmRlci1yYWRpdXM6NHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb250YWluOnN0cmljdDtoZWlnaHQ6MTAwJTttaW4taGVpZ2h0OjMyMHB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIGNhcmQtdmlld1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIGNhcmQtdmlld1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjFweCBzb2xpZCAjNTU1fWNhcmQtdmlldy5mdWxsLXdpZHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtjb250YWluOmxheW91dCBwYWludDtncmlkLWNvbHVtbi1zdGFydDoxO2dyaWQtY29sdW1uLWVuZDotMX1jYXJkLXZpZXcuZnVsbC1oZWlnaHRbX25nY29udGVudC0lQ09NUCVde21pbi1oZWlnaHQ6NDgwcHh9Lmdyb3VwLWNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxO2Rpc3BsYXk6Z3JpZDthbGlnbi1pdGVtczpjZW50ZXI7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7Z2FwOjE2cHg7cGFkZGluZzowIDE2cHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLWNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLWNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0uZ3JvdXAtY29udHJvbHNbX25nY29udGVudC0lQ09NUCVdOmZpcnN0LW9mLXR5cGV7cGFkZGluZy10b3A6MTZweH0uZ3JvdXAtY29udHJvbHNbX25nY29udGVudC0lQ09NUCVdOmxhc3Qtb2YtdHlwZXtwYWRkaW5nLWJvdHRvbToxNnB4fS5wcmV2LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17anVzdGlmeS1zZWxmOmZsZXgtc3RhcnR9LmlucHV0LWFuZC1uZXh0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17anVzdGlmeS1zZWxmOmZsZXgtZW5kfS5wYWdpbmF0aW9uLWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tcmlnaHQ6MTZweH0ucGFnaW5hdGlvbi1pbnB1dFtfbmdjb250ZW50LSVDT01QJV0gICBpbnB1dFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtjb2xvcjppbmhlcml0O2ZvbnQ6aW5oZXJpdH0ucGFnaW5hdGlvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2MTYxNjE7YmFja2dyb3VuZC1jb2xvcjojZmZmfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5wYWdpbmF0aW9uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5wYWdpbmF0aW9uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9LnBhZ2luYXRpb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXTpkaXNhYmxlZHtjb2xvcjojNzU3NTc1fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5wYWdpbmF0aW9uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV06ZGlzYWJsZWQsIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5wYWdpbmF0aW9uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV06ZGlzYWJsZWR7Y29sb3I6IzYxNjE2MX0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoaXl0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpY3MtY2FyZC1ncmlkLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vY2FyZF9ncmlkX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL2NhcmRfZ3JpZF9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkpMLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19XX0pLHtpc0dyb3VwRXhwYW5kZWQ6W3t0eXBlOlJffV0scGFnZUluZGV4Olt7dHlwZTpSX31dLG51bVBhZ2VzOlt7dHlwZTpSX31dLGNhcmRJZHNXaXRoTWV0YWRhdGE6W3t0eXBlOlJffV0sY2FyZE1pbldpZHRoOlt7dHlwZTpSX31dLGNhcmRPYnNlcnZlcjpbe3R5cGU6Ul99XSxzaG93UGFnaW5hdGlvbkNvbnRyb2xzOlt7dHlwZTpSX31dLHBhZ2VJbmRleENoYW5nZWQ6W3t0eXBlOkVffV19KTtjbGFzcyBheXR7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMuZ3JvdXBOYW1lPW51bGwsdGhpcy5ncm91cE5hbWUkPW5ldyBqKG51bGwpLHRoaXMucGFnZUluZGV4JD1uZXcgaigwKSx0aGlzLml0ZW1zJD1uZXcgaihbXSksdGhpcy5uZ1Vuc3Vic2NyaWJlPW5ldyBCLHRoaXMubnVtUGFnZXMkPUt0KFt0aGlzLml0ZW1zJCx0aGlzLnN0b3JlLnNlbGVjdChoSSldKS5waXBlKFZ0KCgoW3QsZV0pPT5NYXRoLmNlaWwodC5sZW5ndGgvZSkpKSksdGhpcy5pc0dyb3VwRXhwYW5kZWQkPXRoaXMuZ3JvdXBOYW1lJC5waXBlKFZlKCh0PT5udWxsIT09dD90aGlzLnN0b3JlLnNlbGVjdCh3eix0KTp6dCghMCkpKSksdGhpcy5zaG93UGFnaW5hdGlvbkNvbnRyb2xzJD10aGlzLm51bVBhZ2VzJC5waXBlKFZ0KCh0PT50PjEpKSksdGhpcy5ub3JtYWxpemVkUGFnZUluZGV4JD1LdChbdGhpcy5wYWdlSW5kZXgkLHRoaXMubnVtUGFnZXMkXSkucGlwZShqZSh0aGlzLm5nVW5zdWJzY3JpYmUpLFdlKCgoW3QsZV0pPT57MCE9PWUmJih0Pj1lP3RoaXMucGFnZUluZGV4JC5uZXh0KGUtMSk6dDwwJiZ0aGlzLnBhZ2VJbmRleCQubmV4dCgwKSl9KSksVnQoKChbdCxlXSk9Pk1hdGgubWluKE1hdGgubWF4KHQsMCksZS0xKSkpLEZlKDEpKSx0aGlzLnBhZ2VkSXRlbXMkPUt0KFt0aGlzLml0ZW1zJCx0aGlzLnN0b3JlLnNlbGVjdChoSSksdGhpcy5ub3JtYWxpemVkUGFnZUluZGV4JCx0aGlzLmlzR3JvdXBFeHBhbmRlZCRdKS5waXBlKFZ0KCgoW3QsZSxuLG9dKT0+dC5zbGljZShlKm4sZSpuKyhvP2U6MCkpKSkpLHRoaXMuY2FyZE1pbldpZHRoJD1LdChbdGhpcy5zdG9yZS5zZWxlY3QoZ3opLHRoaXMuc3RvcmUuc2VsZWN0KHFEKV0pLnBpcGUoVnQoKChbdCxlXSk9PmU/dDpudWxsKSkpfW5nT25DaGFuZ2VzKHQpe3QuY2FyZElkc1dpdGhNZXRhZGF0YSYmdGhpcy5pdGVtcyQubmV4dCh0aGlzLmNhcmRJZHNXaXRoTWV0YWRhdGEpLHQuZ3JvdXBOYW1lJiZ0aGlzLmdyb3VwTmFtZSQubmV4dCh0aGlzLmdyb3VwTmFtZSl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpLHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpfW9uUGFnZUluZGV4Q2hhbmdlZCh0KXt0aGlzLnBhZ2VJbmRleCQubmV4dCh0KX19ZnVuY3Rpb24gcnl0KHQsZSl7aWYoMSZ0JiYoQ2YoMCwic3BhbiIsOCksUHUoMSksTWYoKSksMiZ0KXtjb25zdCB0PXpmKCk7RGMoMSksa3UoIiIsdC5jYXJkSWRzV2l0aE1ldGFkYXRhLmxlbmd0aCwiIGNhcmRzIil9fWZ1bmN0aW9uIHN5dCh0LGUpe2lmKDEmdCYmKENmKDAsInNwYW4iLDkpLFB1KDEsIk5ldyBjYXJkIHBpbm5lZCIpLE1mKCkpLDImdCl7eW0oImRhdGEtaWQiLGUuJGltcGxpY2l0KX19ZnVuY3Rpb24gbHl0KHQsZSl7aWYoMSZ0JiZ2ZigwLCJtZXRyaWNzLWNhcmQtZ3JpZCIsMTApLDImdCl7Y29uc3QgdD16ZigpO2JmKCJjYXJkSWRzV2l0aE1ldGFkYXRhIix0LmNhcmRJZHNXaXRoTWV0YWRhdGEpKCJjYXJkT2JzZXJ2ZXIiLHQuY2FyZE9ic2VydmVyKX19ZnVuY3Rpb24gY3l0KHQsZSl7MSZ0JiYoQ2YoMCwiZGl2IiwxMSksUHUoMSwiUGluIGNhcmRzIGZvciBhIHF1aWNrIHZpZXcgYW5kIGNvbXBhcmlzb24iKSxNZigpKX1heXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGF5dCkoZ2YoaVMpKX0sYXl0Lsm1Y21wPXNvKHt0eXBlOmF5dCxzZWxlY3RvcnM6W1sibWV0cmljcy1jYXJkLWdyaWQiXV0saW5wdXRzOntncm91cE5hbWU6Imdyb3VwTmFtZSIsY2FyZElkc1dpdGhNZXRhZGF0YToiY2FyZElkc1dpdGhNZXRhZGF0YSIsY2FyZE9ic2VydmVyOiJjYXJkT2JzZXJ2ZXIifSxmZWF0dXJlczpbcW9dLGRlY2xzOjcsdmFyczoxOSxjb25zdHM6W1szLCJpc0dyb3VwRXhwYW5kZWQiLCJwYWdlSW5kZXgiLCJudW1QYWdlcyIsInNob3dQYWdpbmF0aW9uQ29udHJvbHMiLCJjYXJkSWRzV2l0aE1ldGFkYXRhIiwiY2FyZE1pbldpZHRoIiwiY2FyZE9ic2VydmVyIiwicGFnZUluZGV4Q2hhbmdlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwibWV0cmljcy1jYXJkLWdyaWQtY29tcG9uZW50IiwwKSxSZigicGFnZUluZGV4Q2hhbmdlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25QYWdlSW5kZXhDaGFuZ2VkKGUpfSkpLF95KDEsImFzeW5jIiksX3koMiwiYXN5bmMiKSxfeSgzLCJhc3luYyIpLF95KDQsImFzeW5jIiksX3koNSwiYXN5bmMiKSxfeSg2LCJhc3luYyIpLE1mKCkpLDImZSYmYmYoImlzR3JvdXBFeHBhbmRlZCIsQ3koMSw3LG4uaXNHcm91cEV4cGFuZGVkJCkpKCJwYWdlSW5kZXgiLEN5KDIsOSxuLm5vcm1hbGl6ZWRQYWdlSW5kZXgkKSkoIm51bVBhZ2VzIixDeSgzLDExLG4ubnVtUGFnZXMkKSkoInNob3dQYWdpbmF0aW9uQ29udHJvbHMiLEN5KDQsMTMsbi5zaG93UGFnaW5hdGlvbkNvbnRyb2xzJCkpKCJjYXJkSWRzV2l0aE1ldGFkYXRhIixDeSg1LDE1LG4ucGFnZWRJdGVtcyQpKSgiY2FyZE1pbldpZHRoIixDeSg2LDE3LG4uY2FyZE1pbldpZHRoJCkpKCJjYXJkT2JzZXJ2ZXIiLG4uY2FyZE9ic2VydmVyKX0sZGlyZWN0aXZlczpbaXl0XSxwaXBlczpbVnZdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoYXl0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpY3MtY2FyZC1ncmlkIix0ZW1wbGF0ZTonXG4gICAgPG1ldHJpY3MtY2FyZC1ncmlkLWNvbXBvbmVudFxuICAgICAgW2lzR3JvdXBFeHBhbmRlZF09ImlzR3JvdXBFeHBhbmRlZCQgfCBhc3luYyJcbiAgICAgIFtwYWdlSW5kZXhdPSJub3JtYWxpemVkUGFnZUluZGV4JCB8IGFzeW5jIlxuICAgICAgW251bVBhZ2VzXT0ibnVtUGFnZXMkIHwgYXN5bmMiXG4gICAgICBbc2hvd1BhZ2luYXRpb25Db250cm9sc109InNob3dQYWdpbmF0aW9uQ29udHJvbHMkIHwgYXN5bmMiXG4gICAgICBbY2FyZElkc1dpdGhNZXRhZGF0YV09InBhZ2VkSXRlbXMkIHwgYXN5bmMiXG4gICAgICBbY2FyZE1pbldpZHRoXT0iY2FyZE1pbldpZHRoJCB8IGFzeW5jIlxuICAgICAgW2NhcmRPYnNlcnZlcl09ImNhcmRPYnNlcnZlciJcbiAgICAgIChwYWdlSW5kZXhDaGFuZ2VkKT0ib25QYWdlSW5kZXhDaGFuZ2VkKCRldmVudCkiXG4gICAgPlxuICAgIDwvbWV0cmljcy1jYXJkLWdyaWQtY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSkse2dyb3VwTmFtZTpbe3R5cGU6Ul99XSxjYXJkSWRzV2l0aE1ldGFkYXRhOlt7dHlwZTpSX31dLGNhcmRPYnNlcnZlcjpbe3R5cGU6Ul99XX0pO2NsYXNzIGR5dHt9ZHl0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxkeXQpfSxkeXQuybVjbXA9c28oe3R5cGU6ZHl0LHNlbGVjdG9yczpbWyJtZXRyaWNzLXBpbm5lZC12aWV3LWNvbXBvbmVudCJdXSxpbnB1dHM6e2NhcmRPYnNlcnZlcjoiY2FyZE9ic2VydmVyIixjYXJkSWRzV2l0aE1ldGFkYXRhOiJjYXJkSWRzV2l0aE1ldGFkYXRhIixuZXdDYXJkUGlubmVkSWRzOiJuZXdDYXJkUGlubmVkSWRzIn0sZGVjbHM6MTAsdmFyczo0LGNvbnN0czpbWzEsImdyb3VwLXRvb2xiYXIiXSxbInN2Z0ljb24iLCJrZWVwXzI0cHgiXSxbMSwiZ3JvdXAtdGV4dCJdLFsiYXJpYS1yb2xlIiwiaGVhZGluZyIsImFyaWEtbGV2ZWwiLCIzIiwxLCJncm91cC10aXRsZSJdLFsiY2xhc3MiLCJncm91cC1jYXJkLWNvdW50Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsIm5ldy1jYXJkLXBpbm5lZCIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzMsImNhcmRJZHNXaXRoTWV0YWRhdGEiLCJjYXJkT2JzZXJ2ZXIiLDQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsiZW1wdHlQaW5uZWRWaWV3IiwiIl0sWzEsImdyb3VwLWNhcmQtY291bnQiXSxbMSwibmV3LWNhcmQtcGlubmVkIl0sWzMsImNhcmRJZHNXaXRoTWV0YWRhdGEiLCJjYXJkT2JzZXJ2ZXIiXSxbMSwiZW1wdHktbWVzc2FnZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoQ2YoMCwiZGl2IiwwKSx2ZigxLCJtYXQtaWNvbiIsMSksQ2YoMiwic3BhbiIsMiksQ2YoMywic3BhbiIsMyksUHUoNCwiUGlubmVkIiksTWYoKSxIbSg1LHJ5dCwyLDEsInNwYW4iLDQpLEhtKDYsc3l0LDIsMSwic3BhbiIsNSksTWYoKSxNZigpLEhtKDcsbHl0LDEsMiwibWV0cmljcy1jYXJkLWdyaWQiLDYpLEhtKDgsY3l0LDIsMCwibmctdGVtcGxhdGUiLG51bGwsNyxxeSkpLDImZSl7Y29uc3QgdD1GbSg5KTtEYyg1KSxiZigibmdJZiIsbi5jYXJkSWRzV2l0aE1ldGFkYXRhLmxlbmd0aD4xKSxEYygxKSxiZigibmdGb3JPZiIsbi5uZXdDYXJkUGlubmVkSWRzKSxEYygxKSxiZigibmdJZiIsbi5jYXJkSWRzV2l0aE1ldGFkYXRhLmxlbmd0aCkoIm5nSWZFbHNlIix0KX19LGRpcmVjdGl2ZXM6W01xLFB2LHh2LGF5dF0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWJlYjthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjojZmZmO2Rpc3BsYXk6ZmxleDtmbGV4Om5vbmU7aGVpZ2h0OjQycHg7bWFyZ2luLWJvdHRvbTotMXB4O3BhZGRpbmc6MCAxNnB4O3Bvc2l0aW9uOnN0aWNreTt0b3A6MDt6LWluZGV4OjE7Ym94LXNoYWRvdzowcHggMnB4IDRweCAwcHggcmdiYSgwLDAsMCwuMTUpfWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiMzMDMwMzB9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM1NTV9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2JveC1zaGFkb3c6MHB4IDJweCA0cHggMHB4IHJnYmEoMjU1LDI1NSwyNTUsLjE1KX1tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzYxNjE2MTtmbGV4Om5vbmU7bWFyZ2luLXJpZ2h0OjVweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICBtYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIG1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0uZ3JvdXAtdGV4dFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmJhc2VsaW5lO2dhcDo2cHh9Lmdyb3VwLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lmdyb3VwLWNhcmQtY291bnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjojNjE2MTYxfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC1jYXJkLWNvdW50W19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLWNhcmQtY291bnRbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfS5lbXB0eS1tZXNzYWdlW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxO2ZvbnQtc2l6ZToxM3B4O2ZvbnQtc3R5bGU6aXRhbGljO3BhZGRpbmc6MTZweDt0ZXh0LWFsaWduOmNlbnRlcn1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZW1wdHktbWVzc2FnZVtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5lbXB0eS1tZXNzYWdlW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0ubmV3LWNhcmQtcGlubmVkW19uZ2NvbnRlbnQtJUNPTVAlXXthbmltYXRpb246cGlubmVkLXZpZXctZmFkZS1vdXQgM3MgbGluZWFyO2JhY2tncm91bmQ6I2Y0NDMzNjtib3JkZXItcmFkaXVzOjVweDtjb2xvcjojZmZmO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxM3B4O29wYWNpdHk6MDtwYWRkaW5nOjNweCA1cHh9QGtleWZyYW1lcyBwaW5uZWQtdmlldy1mYWRlLW91dHtmcm9te29wYWNpdHk6MX02NiV7b3BhY2l0eTouOTl9dG97b3BhY2l0eTowfX0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZHl0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpY3MtcGlubmVkLXZpZXctY29tcG9uZW50Iix0ZW1wbGF0ZTonXG4gICAgPGRpdiBjbGFzcz0iZ3JvdXAtdG9vbGJhciI+XG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj0ia2VlcF8yNHB4Ij48L21hdC1pY29uPlxuICAgICAgPHNwYW4gY2xhc3M9Imdyb3VwLXRleHQiPlxuICAgICAgICA8c3BhbiBjbGFzcz0iZ3JvdXAtdGl0bGUiIGFyaWEtcm9sZT0iaGVhZGluZyIgYXJpYS1sZXZlbD0iMyJcbiAgICAgICAgICA+UGlubmVkPC9zcGFuXG4gICAgICAgID5cbiAgICAgICAgPHNwYW4gKm5nSWY9ImNhcmRJZHNXaXRoTWV0YWRhdGEubGVuZ3RoID4gMSIgY2xhc3M9Imdyb3VwLWNhcmQtY291bnQiXG4gICAgICAgICAgPnt7IGNhcmRJZHNXaXRoTWV0YWRhdGEubGVuZ3RoIH19IGNhcmRzPC9zcGFuXG4gICAgICAgID5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAqbmdGb3I9ImxldCBpZCBvZiBuZXdDYXJkUGlubmVkSWRzIlxuICAgICAgICAgIFthdHRyLmRhdGEtaWRdPSJpZCJcbiAgICAgICAgICBjbGFzcz0ibmV3LWNhcmQtcGlubmVkIlxuICAgICAgICAgID5OZXcgY2FyZCBwaW5uZWQ8L3NwYW5cbiAgICAgICAgPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxtZXRyaWNzLWNhcmQtZ3JpZFxuICAgICAgKm5nSWY9ImNhcmRJZHNXaXRoTWV0YWRhdGEubGVuZ3RoOyBlbHNlIGVtcHR5UGlubmVkVmlldyJcbiAgICAgIFtjYXJkSWRzV2l0aE1ldGFkYXRhXT0iY2FyZElkc1dpdGhNZXRhZGF0YSJcbiAgICAgIFtjYXJkT2JzZXJ2ZXJdPSJjYXJkT2JzZXJ2ZXIiXG4gICAgPjwvbWV0cmljcy1jYXJkLWdyaWQ+XG4gICAgPG5nLXRlbXBsYXRlICNlbXB0eVBpbm5lZFZpZXc+XG4gICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1tZXNzYWdlIj5QaW4gY2FyZHMgZm9yIGEgcXVpY2sgdmlldyBhbmQgY29tcGFyaXNvbjwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICcsc3R5bGVVcmxzOlsicGlubmVkX3ZpZXdfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLG51bGwse2NhcmRPYnNlcnZlcjpbe3R5cGU6Ul99XSxjYXJkSWRzV2l0aE1ldGFkYXRhOlt7dHlwZTpSX31dLG5ld0NhcmRQaW5uZWRJZHM6W3t0eXBlOlJffV19KTtjbGFzcyBweXR7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMuY2FyZElkc1dpdGhNZXRhZGF0YSQ9dGhpcy5zdG9yZS5zZWxlY3QoY3opLnBpcGUoQmUoW10pKSx0aGlzLm5ld0NhcmRQaW5uZWRJZHMkPXRoaXMuc3RvcmUuc2VsZWN0KGN6KS5waXBlKExlKDEpLFZ0KCh0PT50Lm1hcCgodD0+dC5jYXJkSWQpKSkpLE5lKCksVnQoKChbdCxlXSk9Pntjb25zdCBuPW5ldyBTZXQodCksbz1uZXcgU2V0KGUpO2Zvcihjb25zdCB0IG9mIG8paWYoIW4uaGFzKHQpKXJldHVybiBEYXRlLm5vdygpO3JldHVybiBudWxsfSkpLEJlKG51bGwpLE5lKCksVnQoKChbdCxlXSk9Pm51bGw9PT10JiZudWxsPT09ZT9udWxsOm51bGw9PT1lP1t0XTpbZV0pKSx1ZSgodD0+bnVsbCE9PXQpKSxWdCgodD0+W3RbMF1dKSkpfX1weXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHB5dCkoZ2YoaVMpKX0scHl0Lsm1Y21wPXNvKHt0eXBlOnB5dCxzZWxlY3RvcnM6W1sibWV0cmljcy1waW5uZWQtdmlldyJdXSxpbnB1dHM6e2NhcmRPYnNlcnZlcjoiY2FyZE9ic2VydmVyIn0sZGVjbHM6Myx2YXJzOjcsY29uc3RzOltbMywiY2FyZElkc1dpdGhNZXRhZGF0YSIsIm5ld0NhcmRQaW5uZWRJZHMiLCJjYXJkT2JzZXJ2ZXIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKHZmKDAsIm1ldHJpY3MtcGlubmVkLXZpZXctY29tcG9uZW50IiwwKSxfeSgxLCJhc3luYyIpLF95KDIsImFzeW5jIikpLDImZSYmYmYoImNhcmRJZHNXaXRoTWV0YWRhdGEiLEN5KDEsMyxuLmNhcmRJZHNXaXRoTWV0YWRhdGEkKSkoIm5ld0NhcmRQaW5uZWRJZHMiLEN5KDIsNSxuLm5ld0NhcmRQaW5uZWRJZHMkKSkoImNhcmRPYnNlcnZlciIsbi5jYXJkT2JzZXJ2ZXIpfSxkaXJlY3RpdmVzOltkeXRdLHBpcGVzOltWdl0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihweXQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy1waW5uZWQtdmlldyIsdGVtcGxhdGU6J1xuICAgIDxtZXRyaWNzLXBpbm5lZC12aWV3LWNvbXBvbmVudFxuICAgICAgW2NhcmRJZHNXaXRoTWV0YWRhdGFdPSJjYXJkSWRzV2l0aE1ldGFkYXRhJCB8IGFzeW5jIlxuICAgICAgW25ld0NhcmRQaW5uZWRJZHNdPSJuZXdDYXJkUGlubmVkSWRzJCB8IGFzeW5jIlxuICAgICAgW2NhcmRPYnNlcnZlcl09ImNhcmRPYnNlcnZlciJcbiAgICA+PC9tZXRyaWNzLXBpbm5lZC12aWV3LWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aVN9XX0pLHtjYXJkT2JzZXJ2ZXI6W3t0eXBlOlJffV19KTtjb25zdCBteXQ9YlMoYXosX0ksKCh0LGUpPT50LmZpbHRlcigodD0+IW9OKHQucGx1Z2luKXx8Qm9vbGVhbihlJiZlLmdldCh0LnJ1bklkKSkpKSkpLGZ5dD1iUyhteXQsKHQ9PnQuc29ydCgoKHQsZSk9PlgkKHQudGFnLGUudGFnKSkpKSk7ZnVuY3Rpb24gdXl0KHQsZSl7aWYoMSZ0JiYoQ2YoMCwic3BhbiIsNyksUHUoMSksX3koMiwibnVtYmVyIiksTWYoKSksMiZ0KXtjb25zdCB0PXpmKCk7RGMoMSksa3UoIiIsQ3koMiwxLHQubnVtYmVyT2ZDYXJkcyksIiBjYXJkcyIpfX1mdW5jdGlvbiBneXQodCxlKXsxJnQmJnZmKDAsIm1hdC1pY29uIiw4KX1mdW5jdGlvbiBoeXQodCxlKXsxJnQmJnZmKDAsIm1hdC1pY29uIiw5KX1jbGFzcyBieXR7Y29uc3RydWN0b3IoKXt0aGlzLmdyb3VwRXhwYW5zaW9uVG9nZ2xlZD1uZXcgU3l9fWJ5dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Ynl0KX0sYnl0Lsm1Y21wPXNvKHt0eXBlOmJ5dCxzZWxlY3RvcnM6W1sibWV0cmljcy1jYXJkLWdyb3VwLXRvb2xiYXItY29tcG9uZW50Il1dLGlucHV0czp7Z3JvdXBOYW1lOiJncm91cE5hbWUiLG51bWJlck9mQ2FyZHM6Im51bWJlck9mQ2FyZHMiLGlzR3JvdXBFeHBhbmRlZDoiaXNHcm91cEV4cGFuZGVkIn0sb3V0cHV0czp7Z3JvdXBFeHBhbnNpb25Ub2dnbGVkOiJncm91cEV4cGFuc2lvblRvZ2dsZWQifSxkZWNsczo5LHZhcnM6NSxjb25zdHM6ZnVuY3Rpb24oKXtsZXQgdDtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZSl7dD1nb29nLmdldE1zZygiRXhwYW5kIGdyb3VwIil9ZWxzZSB0PSRsb2NhbGl6ZWA6QSBidXR0b24gdGhhdCBhbGxvd3MgdXNlciB0byBleHBhbmQgYSB0YWcgZ3JvdXAu4pCfZmZhYTExNDcxYjg3OGE2ZGZmZTJlNjhjNmYzNzA2NGE5ZTA3NDg1M+KQnzUzODYwNTQzMjUyNzQ3NzkyNTg6RXhwYW5kIGdyb3VwYDtyZXR1cm5bWyJhcmlhLWxhYmVsIix0LDEsImdyb3VwLXRvb2xiYXIiLDMsImNsaWNrIl0sWzEsImdyb3VwLXRpdGxlLXdyYXBwZXIiXSxbImFyaWEtcm9sZSIsImhlYWRpbmciLCJhcmlhLWxldmVsIiwiMyIsMSwiZ3JvdXAtdGl0bGUiLDMsInRpdGxlIl0sWyJjbGFzcyIsImdyb3VwLWNhcmQtY291bnQiLDQsIm5nSWYiXSxbMSwiZXhwYW5kLWdyb3VwLWljb24iXSxbInN2Z0ljb24iLCJleHBhbmRfbGVzc18yNHB4Iiw0LCJuZ0lmIiwibmdJZkVsc2UiXSxbImV4cGFuZE1vcmUiLCIiXSxbMSwiZ3JvdXAtY2FyZC1jb3VudCJdLFsic3ZnSWNvbiIsImV4cGFuZF9sZXNzXzI0cHgiXSxbInN2Z0ljb24iLCJleHBhbmRfbW9yZV8yNHB4Il1dfSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoQ2YoMCwiYnV0dG9uIiwwKSxSZigiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uZ3JvdXBFeHBhbnNpb25Ub2dnbGVkLmVtaXQoKX0pKSxDZigxLCJzcGFuIiwxKSxDZigyLCJzcGFuIiwyKSxQdSgzKSxNZigpLEhtKDQsdXl0LDMsMywic3BhbiIsMyksTWYoKSxDZig1LCJzcGFuIiw0KSxIbSg2LGd5dCwxLDAsIm1hdC1pY29uIiw1KSxIbSg3LGh5dCwxLDAsIm5nLXRlbXBsYXRlIixudWxsLDYscXkpLE1mKCksTWYoKSksMiZlKXtjb25zdCB0PUZtKDgpO0RjKDIpLExmKCJ0aXRsZSIsbi5ncm91cE5hbWUpLERjKDEpLHd1KG4uZ3JvdXBOYW1lKSxEYygxKSxiZigibmdJZiIsbi5udW1iZXJPZkNhcmRzPjEpLERjKDIpLGJmKCJuZ0lmIixuLmlzR3JvdXBFeHBhbmRlZCkoIm5nSWZFbHNlIix0KX19LGRpcmVjdGl2ZXM6W1B2LE1xXSxwaXBlczpbJHZdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWI7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6I2ZmZjtkaXNwbGF5OmZsZXg7ZmxleDpub25lO2hlaWdodDo0MnB4O21hcmdpbi1ib3R0b206LTFweDtwYWRkaW5nOjAgMTZweDtwb3NpdGlvbjpzdGlja3k7dG9wOjA7ei1pbmRleDoxO2JveC1zaGFkb3c6MHB4IDJweCA0cHggMHB4IHJnYmEoMCwwLDAsLjE1KX1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojMzAzMDMwfWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNTU1fWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3gtc2hhZG93OjBweCAycHggNHB4IDBweCByZ2JhKDI1NSwyNTUsMjU1LC4xNSl9W19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtib3JkZXItdG9wOjFweCBzb2xpZCAjZWJlYmViO2NvbG9yOiMyMTIxMjE7dG9wOi0xcHg7ZGlzcGxheTpmbGV4O3dpZHRoOjEwMCU7Zm9udDppbmhlcml0fWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItdG9wOjFweCBzb2xpZCAjNTU1fWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZmZmfS5jYXJkLWdyb3VwOmZpcnN0LW9mLXR5cGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci10b3A6MH1bX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdOmhvdmVye2N1cnNvcjpwb2ludGVyfS5leHBhbmQtZ3JvdXAtaWNvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzYxNjE2MX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZXhwYW5kLWdyb3VwLWljb25bX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZXhwYW5kLWdyb3VwLWljb25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfS5leHBhbmQtZ3JvdXAtaWNvbltfbmdjb250ZW50LSVDT01QJV06ZGlzYWJsZWR7Y29sb3I6Izc1NzU3NX1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZXhwYW5kLWdyb3VwLWljb25bX25nY29udGVudC0lQ09NUCVdOmRpc2FibGVkLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZXhwYW5kLWdyb3VwLWljb25bX25nY29udGVudC0lQ09NUCVdOmRpc2FibGVke2NvbG9yOiM2MTYxNjF9Lmdyb3VwLXRpdGxlLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZsZXgtZ3JvdzoxO3RleHQtYWxpZ246bGVmdH0uZ3JvdXAtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0uZ3JvdXAtY2FyZC1jb3VudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiM2MTYxNjE7bWFyZ2luLWxlZnQ6NnB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC1jYXJkLWNvdW50W19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLWNhcmQtY291bnRbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihieXQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy1jYXJkLWdyb3VwLXRvb2xiYXItY29tcG9uZW50Iix0ZW1wbGF0ZTonXG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9Imdyb3VwLXRvb2xiYXIiXG4gICAgICBpMThuLWFyaWEtbGFiZWw9IkEgYnV0dG9uIHRoYXQgYWxsb3dzIHVzZXIgdG8gZXhwYW5kIGEgdGFnIGdyb3VwLiJcbiAgICAgIGFyaWEtbGFiZWw9IkV4cGFuZCBncm91cCJcbiAgICAgIChjbGljayk9Imdyb3VwRXhwYW5zaW9uVG9nZ2xlZC5lbWl0KCkiXG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3M9Imdyb3VwLXRpdGxlLXdyYXBwZXIiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPSJncm91cC10aXRsZSJcbiAgICAgICAgICBhcmlhLXJvbGU9ImhlYWRpbmciXG4gICAgICAgICAgYXJpYS1sZXZlbD0iMyJcbiAgICAgICAgICB0aXRsZT0ie3sgZ3JvdXBOYW1lIH19IlxuICAgICAgICAgID57eyBncm91cE5hbWUgfX08L3NwYW5cbiAgICAgICAgPlxuICAgICAgICA8c3BhbiAqbmdJZj0ibnVtYmVyT2ZDYXJkcyA+IDEiIGNsYXNzPSJncm91cC1jYXJkLWNvdW50IlxuICAgICAgICAgID57eyBudW1iZXJPZkNhcmRzIHwgbnVtYmVyIH19IGNhcmRzPC9zcGFuXG4gICAgICAgID5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPSJleHBhbmQtZ3JvdXAtaWNvbiI+XG4gICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICpuZ0lmPSJpc0dyb3VwRXhwYW5kZWQ7IGVsc2UgZXhwYW5kTW9yZSJcbiAgICAgICAgICBzdmdJY29uPSJleHBhbmRfbGVzc18yNHB4IlxuICAgICAgICA+PC9tYXQtaWNvbj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNleHBhbmRNb3JlPlxuICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPSJleHBhbmRfbW9yZV8yNHB4Ij48L21hdC1pY29uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICAnLHN0eWxlVXJsczpbImNhcmRfZ3JvdXBfdG9vbGJhcl9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sbnVsbCx7Z3JvdXBOYW1lOlt7dHlwZTpSX31dLG51bWJlck9mQ2FyZHM6W3t0eXBlOlJffV0saXNHcm91cEV4cGFuZGVkOlt7dHlwZTpSX31dLGdyb3VwRXhwYW5zaW9uVG9nZ2xlZDpbe3R5cGU6RV99XX0pO2NsYXNzIHl5dHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5ncm91cE5hbWU9bnVsbCx0aGlzLmlzR3JvdXBFeHBhbmRlZCQ9enQoITEpfW5nT25Jbml0KCl7dGhpcy5pc0dyb3VwRXhwYW5kZWQkPW51bGwhPT10aGlzLmdyb3VwTmFtZT90aGlzLnN0b3JlLnNlbGVjdCh3eix0aGlzLmdyb3VwTmFtZSk6enQoITEpfW9uR3JvdXBFeHBhbnNpb25Ub2dnbGVkKCl7aWYobnVsbD09PXRoaXMuZ3JvdXBOYW1lKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhcmlhbnQgZXJyb3I6IGV4cGFuc2lvbiBjYW5ub3QgYmUgdG9nZ2xlZCB3aGVuIGdyb3VwTmFtZSBpcyBudWxsIik7dGhpcy5zdG9yZS5kaXNwYXRjaChOQSh7dGFnR3JvdXA6dGhpcy5ncm91cE5hbWV9KSl9fWZ1bmN0aW9uIF95dCh0LGUpe2lmKDEmdCYmKENmKDAsImRpdiIsMSksdmYoMSwibWV0cmljcy1jYXJkLWdyb3VwLXRvb2xiYXIiLDIpLHZmKDIsIm1ldHJpY3MtY2FyZC1ncmlkIiwzKSxNZigpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj16ZigpO0RjKDEpLGJmKCJudW1iZXJPZkNhcmRzIix0Lml0ZW1zLmxlbmd0aCkoImdyb3VwTmFtZSIsdC5ncm91cE5hbWUpLERjKDEpLGJmKCJjYXJkSWRzV2l0aE1ldGFkYXRhIix0Lml0ZW1zKSgiY2FyZE9ic2VydmVyIixuLmNhcmRPYnNlcnZlcikoImdyb3VwTmFtZSIsdC5ncm91cE5hbWUpfX15eXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHl5dCkoZ2YoaVMpKX0seXl0Lsm1Y21wPXNvKHt0eXBlOnl5dCxzZWxlY3RvcnM6W1sibWV0cmljcy1jYXJkLWdyb3VwLXRvb2xiYXIiXV0saW5wdXRzOntncm91cE5hbWU6Imdyb3VwTmFtZSIsbnVtYmVyT2ZDYXJkczoibnVtYmVyT2ZDYXJkcyJ9LGRlY2xzOjIsdmFyczo1LGNvbnN0czpbWzMsIm51bWJlck9mQ2FyZHMiLCJpc0dyb3VwRXhwYW5kZWQiLCJncm91cE5hbWUiLCJncm91cEV4cGFuc2lvblRvZ2dsZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKENmKDAsIm1ldHJpY3MtY2FyZC1ncm91cC10b29sYmFyLWNvbXBvbmVudCIsMCksUmYoImdyb3VwRXhwYW5zaW9uVG9nZ2xlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkdyb3VwRXhwYW5zaW9uVG9nZ2xlZCgpfSkpLF95KDEsImFzeW5jIiksTWYoKSksMiZlJiZiZigibnVtYmVyT2ZDYXJkcyIsbi5udW1iZXJPZkNhcmRzKSgiaXNHcm91cEV4cGFuZGVkIixDeSgxLDMsbi5pc0dyb3VwRXhwYW5kZWQkKSkoImdyb3VwTmFtZSIsbi5ncm91cE5hbWUpfSxkaXJlY3RpdmVzOltieXRdLHBpcGVzOltWdl0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih5eXQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy1jYXJkLWdyb3VwLXRvb2xiYXIiLHRlbXBsYXRlOidcbiAgICA8bWV0cmljcy1jYXJkLWdyb3VwLXRvb2xiYXItY29tcG9uZW50XG4gICAgICBbbnVtYmVyT2ZDYXJkc109Im51bWJlck9mQ2FyZHMiXG4gICAgICBbaXNHcm91cEV4cGFuZGVkXT0iaXNHcm91cEV4cGFuZGVkJCB8IGFzeW5jIlxuICAgICAgW2dyb3VwTmFtZV09Imdyb3VwTmFtZSJcbiAgICAgIChncm91cEV4cGFuc2lvblRvZ2dsZWQpPSJvbkdyb3VwRXhwYW5zaW9uVG9nZ2xlZCgpIlxuICAgID48L21ldHJpY3MtY2FyZC1ncm91cC10b29sYmFyLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aVN9XX0pLHtncm91cE5hbWU6W3t0eXBlOlJffV0sbnVtYmVyT2ZDYXJkczpbe3R5cGU6Ul99XX0pO2NsYXNzIEN5dHtjb25zdHJ1Y3Rvcigpe3RoaXMuUGx1Z2luVHlwZT1LVH10cmFja0J5R3JvdXAodCxlKXtyZXR1cm4gZS5ncm91cE5hbWV9fUN5dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Q3l0KX0sQ3l0Lsm1Y21wPXNvKHt0eXBlOkN5dCxzZWxlY3RvcnM6W1sibWV0cmljcy1jYXJkLWdyb3Vwcy1jb21wb25lbnQiXV0saW5wdXRzOntjYXJkR3JvdXBzOiJjYXJkR3JvdXBzIixjYXJkT2JzZXJ2ZXI6ImNhcmRPYnNlcnZlciJ9LGRlY2xzOjEsdmFyczoyLGNvbnN0czpbWyJjbGFzcyIsImNhcmQtZ3JvdXAiLDQsIm5nRm9yIiwibmdGb3JPZiIsIm5nRm9yVHJhY2tCeSJdLFsxLCJjYXJkLWdyb3VwIl0sWzMsIm51bWJlck9mQ2FyZHMiLCJncm91cE5hbWUiXSxbMywiY2FyZElkc1dpdGhNZXRhZGF0YSIsImNhcmRPYnNlcnZlciIsImdyb3VwTmFtZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiZIbSgwLF95dCwzLDUsImRpdiIsMCksMiZlJiZiZigibmdGb3JPZiIsbi5jYXJkR3JvdXBzKSgibmdGb3JUcmFja0J5IixuLnRyYWNrQnlHcm91cCl9LGRpcmVjdGl2ZXM6W3h2LHl5dCxheXRdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWI7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6I2ZmZjtkaXNwbGF5OmZsZXg7ZmxleDpub25lO2hlaWdodDo0MnB4O21hcmdpbi1ib3R0b206LTFweDtwYWRkaW5nOjAgMTZweDtwb3NpdGlvbjpzdGlja3k7dG9wOjA7ei1pbmRleDoxO2JveC1zaGFkb3c6MHB4IDJweCA0cHggMHB4IHJnYmEoMCwwLDAsLjE1KX1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojMzAzMDMwfWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNTU1fWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3gtc2hhZG93OjBweCAycHggNHB4IDBweCByZ2JhKDI1NSwyNTUsMjU1LC4xNSl9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEN5dCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJtZXRyaWNzLWNhcmQtZ3JvdXBzLWNvbXBvbmVudCIsdGVtcGxhdGU6J1xuICAgIDxkaXZcbiAgICAgICpuZ0Zvcj0ibGV0IGdyb3VwIG9mIGNhcmRHcm91cHM7IHRyYWNrQnk6IHRyYWNrQnlHcm91cCJcbiAgICAgIGNsYXNzPSJjYXJkLWdyb3VwIlxuICAgID5cbiAgICAgIDxtZXRyaWNzLWNhcmQtZ3JvdXAtdG9vbGJhclxuICAgICAgICBbbnVtYmVyT2ZDYXJkc109Imdyb3VwLml0ZW1zLmxlbmd0aCJcbiAgICAgICAgW2dyb3VwTmFtZV09Imdyb3VwLmdyb3VwTmFtZSJcbiAgICAgID48L21ldHJpY3MtY2FyZC1ncm91cC10b29sYmFyPlxuICAgICAgPG1ldHJpY3MtY2FyZC1ncmlkXG4gICAgICAgIFtjYXJkSWRzV2l0aE1ldGFkYXRhXT0iZ3JvdXAuaXRlbXMiXG4gICAgICAgIFtjYXJkT2JzZXJ2ZXJdPSJjYXJkT2JzZXJ2ZXIiXG4gICAgICAgIFtncm91cE5hbWVdPSJncm91cC5ncm91cE5hbWUiXG4gICAgICA+PC9tZXRyaWNzLWNhcmQtZ3JpZD5cbiAgICA8L2Rpdj5cbiAgJyxzdHlsZVVybHM6WyJjYXJkX2dyb3Vwc19jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sbnVsbCx7Y2FyZEdyb3Vwczpbe3R5cGU6Ul99XSxjYXJkT2JzZXJ2ZXI6W3t0eXBlOlJffV19KTtjbGFzcyBNeXR7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMuY2FyZEdyb3VwcyQ9dGhpcy5zdG9yZS5zZWxlY3QoZnl0KS5waXBlKF9lKHRoaXMuc3RvcmUuc2VsZWN0KEF6KSksVnQoKChbdCxlXSk9PmUuc2l6ZT90LmZpbHRlcigodD0+ZS5oYXModC5wbHVnaW4pKSk6dCkpLFZ0KCh0PT5aJCh0KSkpKX19ZnVuY3Rpb24gdnl0KHQsZSl7aWYoMSZ0JiYoQ2YoMCwic3BhbiIpLFB1KDEpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigpO0RjKDEpLGt1KCIgYW5kICIsdC5nZXRQbHVnaW5UeXBlRmlsdGVyU3RyaW5nKHQucGx1Z2luVHlwZXMpLCIgdmlzdWFsaXphdGlvbiBmaWx0ZXIiKX19TXl0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxNeXQpKGdmKGlTKSl9LE15dC7JtWNtcD1zbyh7dHlwZTpNeXQsc2VsZWN0b3JzOltbIm1ldHJpY3MtY2FyZC1ncm91cHMiXV0saW5wdXRzOntjYXJkT2JzZXJ2ZXI6ImNhcmRPYnNlcnZlciJ9LGRlY2xzOjIsdmFyczo0LGNvbnN0czpbWzMsImNhcmRHcm91cHMiLCJjYXJkT2JzZXJ2ZXIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKHZmKDAsIm1ldHJpY3MtY2FyZC1ncm91cHMtY29tcG9uZW50IiwwKSxfeSgxLCJhc3luYyIpKSwyJmUmJmJmKCJjYXJkR3JvdXBzIixDeSgxLDIsbi5jYXJkR3JvdXBzJCkpKCJjYXJkT2JzZXJ2ZXIiLG4uY2FyZE9ic2VydmVyKX0sZGlyZWN0aXZlczpbQ3l0XSxwaXBlczpbVnZdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoTXl0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpY3MtY2FyZC1ncm91cHMiLHRlbXBsYXRlOidcbiAgICA8bWV0cmljcy1jYXJkLWdyb3Vwcy1jb21wb25lbnRcbiAgICAgIFtjYXJkR3JvdXBzXT0iY2FyZEdyb3VwcyQgfCBhc3luYyJcbiAgICAgIFtjYXJkT2JzZXJ2ZXJdPSJjYXJkT2JzZXJ2ZXIiXG4gICAgPjwvbWV0cmljcy1jYXJkLWdyb3Vwcy1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfV19KSx7Y2FyZE9ic2VydmVyOlt7dHlwZTpSX31dfSk7Y2xhc3MgeHl0e2NvbnN0cnVjdG9yKCl7dGhpcy5QbHVnaW5UeXBlPUtULHRoaXMubGlzdEZvcm1hdHRlcj1uZXcgSW50bC5MaXN0Rm9ybWF0KHZvaWQgMCx7c3R5bGU6ImxvbmciLHR5cGU6ImRpc2p1bmN0aW9uIn0pfWdldFBsdWdpblR5cGVGaWx0ZXJTdHJpbmcodCl7Y29uc3QgZT1bLi4udF0ubWFwKCh0PT57c3dpdGNoKHQpe2Nhc2UgS1QuU0NBTEFSUzpyZXR1cm4ic2NhbGFyIjtjYXNlIEtULklNQUdFUzpyZXR1cm4iaW1hZ2UiO2Nhc2UgS1QuSElTVE9HUkFNUzpyZXR1cm4iaGlzdG9ncmFtIjtkZWZhdWx0OnRocm93IG5ldyBSYW5nZUVycm9yKGBQbGVhc2UgaW1wbGVtZW50IGh1bWFuIHJlYWRhYmxlIG5hbWUgZm9yIHBsdWdpbiB0eXBlOiAke3R9YCl9fSkpO3JldHVybiB0aGlzLmxpc3RGb3JtYXR0ZXIuZm9ybWF0KGUpfX14eXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHh5dCl9LHh5dC7JtWNtcD1zbyh7dHlwZTp4eXQsc2VsZWN0b3JzOltbIm1ldHJpY3MtZW1wdHktdGFnLW1hdGNoLWNvbXBvbmVudCJdXSxpbnB1dHM6e3BsdWdpblR5cGVzOiJwbHVnaW5UeXBlcyIsdGFnRmlsdGVyUmVnZXg6InRhZ0ZpbHRlclJlZ2V4Iix0YWdDb3VudHM6InRhZ0NvdW50cyJ9LGRlY2xzOjYsdmFyczo1LGNvbnN0czpbWzQsIm5nSWYiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKFB1KDAsIk5vIG1hdGNoZXMgZm9yIHRhZyBmaWx0ZXIgIiksQ2YoMSwiY29kZSIpLFB1KDIpLE1mKCksSG0oMyx2eXQsMiwxLCJzcGFuIiwwKSxQdSg0KSxfeSg1LCJudW1iZXIiKSksMiZlJiYoRGMoMiksa3UoIi8iLG4udGFnRmlsdGVyUmVnZXgsIi8iKSxEYygxKSxiZigibmdJZiIsbi5wbHVnaW5UeXBlcy5zaXplKSxEYygxKSxrdSgiIG91dCBvZiAiLEN5KDUsMyxuLnRhZ0NvdW50cyksIiB0YWdzLiIpKX0sZGlyZWN0aXZlczpbUHZdLHBpcGVzOlskdl0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih4eXQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy1lbXB0eS10YWctbWF0Y2gtY29tcG9uZW50Iix0ZW1wbGF0ZTonTm8gbWF0Y2hlcyBmb3IgdGFnIGZpbHRlciA8Y29kZT4ve3sgdGFnRmlsdGVyUmVnZXggfX0vPC9jb2RlXG4gICAgPjxzcGFuICpuZ0lmPSJwbHVnaW5UeXBlcy5zaXplIj5cbiAgICAgIGFuZCB7eyBnZXRQbHVnaW5UeXBlRmlsdGVyU3RyaW5nKHBsdWdpblR5cGVzKSB9fSB2aXN1YWxpemF0aW9uXG4gICAgICBmaWx0ZXI8L3NwYW5cbiAgICA+XG4gICAgb3V0IG9mIHt7IHRhZ0NvdW50cyB8IG51bWJlciB9fSB0YWdzLicsY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sbnVsbCx7cGx1Z2luVHlwZXM6W3t0eXBlOlJffV0sdGFnRmlsdGVyUmVnZXg6W3t0eXBlOlJffV0sdGFnQ291bnRzOlt7dHlwZTpSX31dfSk7Y2xhc3MgT3l0e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLnBsdWdpblR5cGVzJD10aGlzLnN0b3JlLnNlbGVjdChBeiksdGhpcy50YWdGaWx0ZXJSZWdleCQ9dGhpcy5zdG9yZS5zZWxlY3QoUHopLHRoaXMudGFnQ291bnRzJD10aGlzLnN0b3JlLnNlbGVjdChmeXQpLnBpcGUoVnQoKHQ9Pm5ldyBTZXQodC5tYXAoKCh7dGFnOnR9KT0+dCkpKS5zaXplKSkpfX1mdW5jdGlvbiBQeXQodCxlKXtpZigxJnQmJihDZigwLCJzcGFuIiw2KSxQdSgxKSxfeSgyLCJudW1iZXIiKSxNZigpKSwyJnQpe2NvbnN0IHQ9emYoKTtEYygxKSxrdSgiIixDeSgyLDEsdC5jYXJkSWRzV2l0aE1ldGFkYXRhLmxlbmd0aCksIiBjYXJkcyIpfX1mdW5jdGlvbiB3eXQodCxlKXsxJnQmJnZmKDAsIm1ldHJpY3MtZW1wdHktdGFnLW1hdGNoIiw3KX1PeXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fE95dCkoZ2YoaVMpKX0sT3l0Lsm1Y21wPXNvKHt0eXBlOk95dCxzZWxlY3RvcnM6W1sibWV0cmljcy1lbXB0eS10YWctbWF0Y2giXV0sZGVjbHM6NCx2YXJzOjksY29uc3RzOltbMywicGx1Z2luVHlwZXMiLCJ0YWdGaWx0ZXJSZWdleCIsInRhZ0NvdW50cyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYodmYoMCwibWV0cmljcy1lbXB0eS10YWctbWF0Y2gtY29tcG9uZW50IiwwKSxfeSgxLCJhc3luYyIpLF95KDIsImFzeW5jIiksX3koMywiYXN5bmMiKSksMiZlJiZiZigicGx1Z2luVHlwZXMiLEN5KDEsMyxuLnBsdWdpblR5cGVzJCkpKCJ0YWdGaWx0ZXJSZWdleCIsQ3koMiw1LG4udGFnRmlsdGVyUmVnZXgkKSkoInRhZ0NvdW50cyIsQ3koMyw3LG4udGFnQ291bnRzJCkpfSxkaXJlY3RpdmVzOlt4eXRdLHBpcGVzOltWdl0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihPeXQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy1lbXB0eS10YWctbWF0Y2giLHRlbXBsYXRlOidcbiAgICA8bWV0cmljcy1lbXB0eS10YWctbWF0Y2gtY29tcG9uZW50XG4gICAgICBbcGx1Z2luVHlwZXNdPSJwbHVnaW5UeXBlcyQgfCBhc3luYyJcbiAgICAgIFt0YWdGaWx0ZXJSZWdleF09InRhZ0ZpbHRlclJlZ2V4JCB8IGFzeW5jIlxuICAgICAgW3RhZ0NvdW50c109InRhZ0NvdW50cyQgfCBhc3luYyJcbiAgICA+PC9tZXRyaWNzLWVtcHR5LXRhZy1tYXRjaC1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfV19KSxudWxsKTtjbGFzcyBreXR7fWt5dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8a3l0KX0sa3l0Lsm1Y21wPXNvKHt0eXBlOmt5dCxzZWxlY3RvcnM6W1sibWV0cmljcy1maWx0ZXJlZC12aWV3LWNvbXBvbmVudCJdXSxpbnB1dHM6e2lzRW1wdHlNYXRjaDoiaXNFbXB0eU1hdGNoIixjYXJkT2JzZXJ2ZXI6ImNhcmRPYnNlcnZlciIsY2FyZElkc1dpdGhNZXRhZGF0YToiY2FyZElkc1dpdGhNZXRhZGF0YSJ9LGRlY2xzOjcsdmFyczo0LGNvbnN0czpbWzEsImdyb3VwLXRvb2xiYXIiXSxbMSwiZ3JvdXAtdGV4dCJdLFsiYXJpYS1yb2xlIiwiaGVhZGluZyIsImFyaWEtbGV2ZWwiLCIzIiwxLCJncm91cC10aXRsZSJdLFsiY2xhc3MiLCJncm91cC1jYXJkLWNvdW50Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsIndhcm4iLDQsIm5nSWYiXSxbMywiY2FyZElkc1dpdGhNZXRhZGF0YSIsImNhcmRPYnNlcnZlciJdLFsxLCJncm91cC1jYXJkLWNvdW50Il0sWzEsIndhcm4iXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKENmKDAsImRpdiIsMCksQ2YoMSwic3BhbiIsMSksQ2YoMiwic3BhbiIsMiksUHUoMywiVGFncyBtYXRjaGluZyBmaWx0ZXIiKSxNZigpLEhtKDQsUHl0LDMsMywic3BhbiIsMyksTWYoKSxNZigpLEhtKDUsd3l0LDEsMCwibWV0cmljcy1lbXB0eS10YWctbWF0Y2giLDQpLHZmKDYsIm1ldHJpY3MtY2FyZC1ncmlkIiw1KSksMiZlJiYoRGMoNCksYmYoIm5nSWYiLG4uY2FyZElkc1dpdGhNZXRhZGF0YS5sZW5ndGg+MSksRGMoMSksYmYoIm5nSWYiLG4uaXNFbXB0eU1hdGNoKSxEYygxKSxiZigiY2FyZElkc1dpdGhNZXRhZGF0YSIsbi5jYXJkSWRzV2l0aE1ldGFkYXRhKSgiY2FyZE9ic2VydmVyIixuLmNhcmRPYnNlcnZlcikpfSxkaXJlY3RpdmVzOltQdixheXQsT3l0XSxwaXBlczpbJHZdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWI7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6I2ZmZjtkaXNwbGF5OmZsZXg7ZmxleDpub25lO2hlaWdodDo0MnB4O21hcmdpbi1ib3R0b206LTFweDtwYWRkaW5nOjAgMTZweDtwb3NpdGlvbjpzdGlja3k7dG9wOjA7ei1pbmRleDoxO2JveC1zaGFkb3c6MHB4IDJweCA0cHggMHB4IHJnYmEoMCwwLDAsLjE1KX1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZ3JvdXAtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojMzAzMDMwfWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNTU1fWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3gtc2hhZG93OjBweCAycHggNHB4IDBweCByZ2JhKDI1NSwyNTUsMjU1LC4xNSl9Lmdyb3VwLXRleHRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpiYXNlbGluZX0uZ3JvdXAtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0uZ3JvdXAtY2FyZC1jb3VudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiM2MTYxNjE7bWFyZ2luLWxlZnQ6NnB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5ncm91cC1jYXJkLWNvdW50W19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLmdyb3VwLWNhcmQtY291bnRbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfW1ldHJpY3MtZW1wdHktdGFnLW1hdGNoW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxO2ZvbnQtc2l6ZToxM3B4O2ZvbnQtc3R5bGU6aXRhbGljO3BhZGRpbmc6MTZweDt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmJsb2NrfWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIG1ldHJpY3MtZW1wdHktdGFnLW1hdGNoW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgbWV0cmljcy1lbXB0eS10YWctbWF0Y2hbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihreXQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy1maWx0ZXJlZC12aWV3LWNvbXBvbmVudCIsdGVtcGxhdGU6J1xuICAgIDxkaXYgY2xhc3M9Imdyb3VwLXRvb2xiYXIiPlxuICAgICAgPHNwYW4gY2xhc3M9Imdyb3VwLXRleHQiPlxuICAgICAgICA8c3BhbiBjbGFzcz0iZ3JvdXAtdGl0bGUiIGFyaWEtcm9sZT0iaGVhZGluZyIgYXJpYS1sZXZlbD0iMyJcbiAgICAgICAgICA+VGFncyBtYXRjaGluZyBmaWx0ZXI8L3NwYW5cbiAgICAgICAgPlxuICAgICAgICA8c3BhbiAqbmdJZj0iY2FyZElkc1dpdGhNZXRhZGF0YS5sZW5ndGggPiAxIiBjbGFzcz0iZ3JvdXAtY2FyZC1jb3VudCJcbiAgICAgICAgICA+e3sgY2FyZElkc1dpdGhNZXRhZGF0YS5sZW5ndGggfCBudW1iZXIgfX0gY2FyZHM8L3NwYW5cbiAgICAgICAgPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxtZXRyaWNzLWVtcHR5LXRhZy1tYXRjaFxuICAgICAgKm5nSWY9ImlzRW1wdHlNYXRjaCJcbiAgICAgIGNsYXNzPSJ3YXJuIlxuICAgID48L21ldHJpY3MtZW1wdHktdGFnLW1hdGNoPlxuICAgIDxtZXRyaWNzLWNhcmQtZ3JpZFxuICAgICAgW2NhcmRJZHNXaXRoTWV0YWRhdGFdPSJjYXJkSWRzV2l0aE1ldGFkYXRhIlxuICAgICAgW2NhcmRPYnNlcnZlcl09ImNhcmRPYnNlcnZlciJcbiAgICA+PC9tZXRyaWNzLWNhcmQtZ3JpZD5cbiAgJyxzdHlsZVVybHM6WyJmaWx0ZXJlZF92aWV3X2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSxudWxsLHtpc0VtcHR5TWF0Y2g6W3t0eXBlOlJffV0sY2FyZE9ic2VydmVyOlt7dHlwZTpSX31dLGNhcmRJZHNXaXRoTWV0YWRhdGE6W3t0eXBlOlJffV19KTtjbGFzcyBTeXR7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMuY2FyZElkc1dpdGhNZXRhZGF0YSQ9dGhpcy5zdG9yZS5zZWxlY3QoZnl0KS5waXBlKF9lKHRoaXMuc3RvcmUuc2VsZWN0KEF6KSksVnQoKChbdCxlXSk9PmUuc2l6ZT90LmZpbHRlcigodD0+ZS5oYXModC5wbHVnaW4pKSk6dCkpLF9lKHRoaXMuc3RvcmUuc2VsZWN0KFB6KSksQ2UoMjAwKSxWdCgoKFt0LGVdKT0+e3RyeXtyZXR1cm57Y2FyZExpc3Q6dCxyZWdleDpuZXcgUmVnRXhwKGUsImkiKX19Y2F0Y2goZSl7cmV0dXJue2NhcmRMaXN0OnQscmVnZXg6bnVsbH19fSkpLHVlKCgoe3JlZ2V4OnR9KT0+bnVsbCE9PXQpKSxWdCgoKHtjYXJkTGlzdDp0LHJlZ2V4OmV9KT0+dC5maWx0ZXIoKCh7dGFnOnR9KT0+ZS50ZXN0KHQpKSkpKSx3ZSgoKHQsZSk9PnQubGVuZ3RoPT09ZS5sZW5ndGgmJnQuZXZlcnkoKCh0LG4pPT50LmNhcmRJZD09PWVbbl0uY2FyZElkKSkpKSxJZSgpLEJlKFtdKSksdGhpcy5pc0VtcHR5TWF0Y2gkPXRoaXMuY2FyZElkc1dpdGhNZXRhZGF0YSQucGlwZShfZSh0aGlzLnN0b3JlLnNlbGVjdChmeXQpKSxWdCgoKFt0LGVdKT0+Qm9vbGVhbihlLmxlbmd0aCkmJjA9PT10Lmxlbmd0aCkpKX19ZnVuY3Rpb24gRHl0KHQsZSl7aWYoMSZ0JiYoQ2YoMCwibWF0LW9wdGlvbiIsMiksUHUoMSksTWYoKSksMiZ0KXtjb25zdCB0PWUuJGltcGxpY2l0O2JmKCJ2YWx1ZSIsdC52YWx1ZSkoImRpc2FibGVkIix0LmRpc2FibGVkKSxEYygxKSxrdSgiICIsdC5kaXNwbGF5VGV4dCwiICIpfX1TeXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFN5dCkoZ2YoaVMpKX0sU3l0Lsm1Y21wPXNvKHt0eXBlOlN5dCxzZWxlY3RvcnM6W1sibWV0cmljcy1maWx0ZXJlZC12aWV3Il1dLGlucHV0czp7Y2FyZE9ic2VydmVyOiJjYXJkT2JzZXJ2ZXIifSxkZWNsczozLHZhcnM6Nyxjb25zdHM6W1szLCJpc0VtcHR5TWF0Y2giLCJjYXJkSWRzV2l0aE1ldGFkYXRhIiwiY2FyZE9ic2VydmVyIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJih2ZigwLCJtZXRyaWNzLWZpbHRlcmVkLXZpZXctY29tcG9uZW50IiwwKSxfeSgxLCJhc3luYyIpLF95KDIsImFzeW5jIikpLDImZSYmYmYoImlzRW1wdHlNYXRjaCIsQ3koMSwzLG4uaXNFbXB0eU1hdGNoJCkpKCJjYXJkSWRzV2l0aE1ldGFkYXRhIixDeSgyLDUsbi5jYXJkSWRzV2l0aE1ldGFkYXRhJCkpKCJjYXJkT2JzZXJ2ZXIiLG4uY2FyZE9ic2VydmVyKX0sZGlyZWN0aXZlczpba3l0XSxwaXBlczpbVnZdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoU3l0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpY3MtZmlsdGVyZWQtdmlldyIsdGVtcGxhdGU6J1xuICAgIDxtZXRyaWNzLWZpbHRlcmVkLXZpZXctY29tcG9uZW50XG4gICAgICBbaXNFbXB0eU1hdGNoXT0iaXNFbXB0eU1hdGNoJCB8IGFzeW5jIlxuICAgICAgW2NhcmRJZHNXaXRoTWV0YWRhdGFdPSJjYXJkSWRzV2l0aE1ldGFkYXRhJCB8IGFzeW5jIlxuICAgICAgW2NhcmRPYnNlcnZlcl09ImNhcmRPYnNlcnZlciJcbiAgICA+PC9tZXRyaWNzLWZpbHRlcmVkLXZpZXctY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSkse2NhcmRPYnNlcnZlcjpbe3R5cGU6Ul99XX0pO2NsYXNzIFJ5dHtjb25zdHJ1Y3Rvcigpe3RoaXMudmFsdWU9IiIsdGhpcy5vcHRpb25zPVtdLHRoaXMuc2VsZWN0aW9uQ2hhbmdlPW5ldyBTeX19ZnVuY3Rpb24gRXl0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwiZGl2IiwyMiksQ2YoMSwiZGl2IiwyMyksUHUoMiwiQ2FyZCBXaWR0aCIpLE1mKCksQ2YoMywiZGl2IiwxMCksQ2YoNCwibWF0LXNsaWRlciIsMjQpLFJmKCJpbnB1dCIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKCkuY2FyZFdpZHRoU2xpZGVyQ2hhbmdlZCQuZW1pdChuLnZhbHVlKX0pKSxNZigpLENmKDUsImJ1dHRvbiIsMjUpLFJmKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtQaSh0KTtyZXR1cm4gemYoKS5jYXJkV2lkdGhSZXNldC5lbWl0KCl9KSksdmYoNiwibWF0LWljb24iLDI2KSxNZigpLE1mKCksTWYoKX1pZigyJnQpe2NvbnN0IHQ9emYoKTtEYyg0KSxiZigibWF4Iix0Lk1BWF9DQVJEX1dJRFRIX1NMSURFUl9WQUxVRSkoIm1pbiIsdC5NSU5fQ0FSRF9XSURUSF9TTElERVJfVkFMVUUpKCJzdGVwIiw1MCkoInZhbHVlIix0LmNhcmRNaW5XaWR0aCkoInRodW1iTGFiZWwiLCExKX19ZnVuY3Rpb24gQXl0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwibWF0LXNsaWRlciIsMzIpLFJmKCJpbnB1dCIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKDIpLm9uU3RlcFN0YXJ0Q2hhbmdlZChuLnZhbHVlKX0pKSxNZigpfWlmKDImdCl7Y29uc3QgdD16ZigyKTtiZigiZGlzYWJsZWQiLCF0LnNlbGVjdFRpbWVFbmFibGVkKSgibWluIix0LnN0ZXBNaW5NYXgubWluKSgibWF4Iix0LnN0ZXBNaW5NYXgubWF4KSgic3RlcCIsMSkoInZhbHVlIixudWxsPT10LnNlbGVjdGVkVGltZT9udWxsOnQuc2VsZWN0ZWRUaW1lLnN0YXJ0LnN0ZXApKCJ0aHVtYkxhYmVsIiwhMCl9fWZ1bmN0aW9uIFR5dCh0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO0NmKDAsInRiLXJhbmdlLWlucHV0IiwzMyksUmYoInZhbHVlIiwoZnVuY3Rpb24gZShuKXtQaSh0KTtyZXR1cm4gemYoMikub25TdGVwUmFuZ2VDaGFuZ2VkKG4pfSkpLE1mKCl9aWYoMiZ0KXtjb25zdCB0PXpmKDIpO2JmKCJtaW4iLHQuc3RlcE1pbk1heC5taW4pKCJtYXgiLHQuc3RlcE1pbk1heC5tYXgpKCJsb3dlclZhbHVlIixudWxsPT10LnNlbGVjdGVkVGltZT9udWxsOnQuc2VsZWN0ZWRUaW1lLnN0YXJ0LnN0ZXApKCJ1cHBlclZhbHVlIixudWxsPT10LnNlbGVjdGVkVGltZXx8bnVsbD09dC5zZWxlY3RlZFRpbWUuZW5kP251bGw6dC5zZWxlY3RlZFRpbWUuZW5kLnN0ZXApLHltKCJkaXNhYmxlZCIsIXQuc2VsZWN0VGltZUVuYWJsZWQpfX1mdW5jdGlvbiBOeXQodCxlKXtpZigxJnQpe2NvbnN0IHQ9d2YoKTtDZigwLCJkaXYiLDI3KSxDZigxLCJsYWJlbCIpLFB1KDIsIkxpbmsgdmlzdWFsaXphdGlvbiBieSBzdGVwIiksTWYoKSxDZigzLCJkaXYiLDI4KSxDZig0LCJkaXYiKSxDZig1LCJtYXQtY2hlY2tib3giLDE2KSxSZigiY2hhbmdlIiwoZnVuY3Rpb24gZSgpe1BpKHQpO3JldHVybiB6ZigpLnNlbGVjdFRpbWVFbmFibGVUb2dnbGVkLmVtaXQoKX0pKSxQdSg2LCJFbmFibGVkIiksTWYoKSxNZigpLENmKDcsImRpdiIpLENmKDgsIm1hdC1jaGVja2JveCIsMTYpLFJmKCJjaGFuZ2UiLChmdW5jdGlvbiBlKCl7UGkodCk7cmV0dXJuIHpmKCkudXNlUmFuZ2VTZWxlY3RUaW1lVG9nZ2xlZC5lbWl0KCl9KSksUHUoOSwiVXNlIHJhbmdlIiksTWYoKSxNZigpLENmKDEwLCJkaXYiLDI5KSxIbSgxMSxBeXQsMSw2LCJtYXQtc2xpZGVyIiwzMCksSG0oMTIsVHl0LDEsNSwibmctdGVtcGxhdGUiLG51bGwsMzEscXkpLE1mKCksTWYoKSxNZigpfWlmKDImdCl7Y29uc3QgdD1GbSgxMyksZT16ZigpO0RjKDUpLGJmKCJjaGVja2VkIixlLnNlbGVjdFRpbWVFbmFibGVkKSxEYygzKSxiZigiY2hlY2tlZCIsZS51c2VSYW5nZVNlbGVjdFRpbWUpLERjKDMpLGJmKCJuZ0lmIiwhZS51c2VSYW5nZVNlbGVjdFRpbWUpKCJuZ0lmRWxzZSIsdCl9fWZ1bmN0aW9uIHp5dCh0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO0NmKDAsInNlY3Rpb24iLDM0KSxDZigxLCJoMyIsMSksUHUoMiwiSW1hZ2VzIiksTWYoKSxDZigzLCJkaXYiLDM1KSxDZig0LCJkaXYiLDM2KSxQdSg1LCJCcmlnaHRuZXNzIiksTWYoKSxDZig2LCJkaXYiLDEwKSxDZig3LCJtYXQtc2xpZGVyIiwzNyksUmYoImlucHV0IiwoZnVuY3Rpb24gZShuKXtQaSh0KTtyZXR1cm4gemYoKS5pbWFnZUJyaWdodG5lc3NTbGlkZXJDaGFuZ2VkJC5lbWl0KG4udmFsdWUpfSkpLE1mKCksQ2YoOCwiYnV0dG9uIiwzOCksUmYoImNsaWNrIiwoZnVuY3Rpb24gZSgpe1BpKHQpO3JldHVybiB6ZigpLmltYWdlQnJpZ2h0bmVzc1Jlc2V0LmVtaXQoKX0pKSx2Zig5LCJtYXQtaWNvbiIsMjYpLE1mKCksTWYoKSxNZigpLENmKDEwLCJkaXYiLDM5KSxDZigxMSwiZGl2Iiw0MCksUHUoMTIsIkNvbnRyYXN0IiksTWYoKSxDZigxMywiZGl2IiwxMCksQ2YoMTQsIm1hdC1zbGlkZXIiLDQxKSxSZigiaW5wdXQiLChmdW5jdGlvbiBlKG4pe1BpKHQpO3JldHVybiB6ZigpLmltYWdlQ29udHJhc3RTbGlkZXJDaGFuZ2VkJC5lbWl0KG4udmFsdWUpfSkpLE1mKCksQ2YoMTUsImJ1dHRvbiIsNDIpLFJmKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtQaSh0KTtyZXR1cm4gemYoKS5pbWFnZUNvbnRyYXN0UmVzZXQuZW1pdCgpfSkpLHZmKDE2LCJtYXQtaWNvbiIsMjYpLE1mKCksTWYoKSxNZigpLENmKDE3LCJkaXYiLDQzKSxDZigxOCwibWF0LWNoZWNrYm94IiwxNiksUmYoImNoYW5nZSIsKGZ1bmN0aW9uIGUobil7UGkodCk7cmV0dXJuIHpmKCkuaW1hZ2VTaG93QWN0dWFsU2l6ZUNoYW5nZWQuZW1pdChuLmNoZWNrZWQpfSkpLFB1KDE5LCJTaG93IGFjdHVhbCBpbWFnZSBzaXplIiksTWYoKSxNZigpLE1mKCl9aWYoMiZ0KXtjb25zdCB0PXpmKCk7RGMoNyksYmYoIm1heCIsMmUzKSgibWluIiwwKSgic3RlcCIsMTApKCJ2YWx1ZSIsdC5pbWFnZUJyaWdodG5lc3NJbk1pbGxpKSgidGh1bWJMYWJlbCIsITApKCJkaXNwbGF5V2l0aCIsdC5mb3JtYXRNaWxsaVRvWmVyb3RoKSxEYyg3KSxiZigibWF4Iiw1ZTMpKCJtaW4iLDApKCJzdGVwIiwxMCkoInZhbHVlIix0LmltYWdlQ29udHJhc3RJbk1pbGxpKSgidGh1bWJMYWJlbCIsITApKCJkaXNwbGF5V2l0aCIsdC5mb3JtYXRNaWxsaVRvWmVyb3RoKSxEYyg0KSxiZigiY2hlY2tlZCIsdC5pbWFnZVNob3dBY3R1YWxTaXplKX19Unl0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxSeXQpfSxSeXQuybVjbXA9c28oe3R5cGU6Unl0LHNlbGVjdG9yczpbWyJ0Yi1kcm9wZG93biJdXSxpbnB1dHM6e3ZhbHVlOiJ2YWx1ZSIsb3B0aW9uczoib3B0aW9ucyJ9LG91dHB1dHM6e3NlbGVjdGlvbkNoYW5nZToic2VsZWN0aW9uQ2hhbmdlIn0sZGVjbHM6Mix2YXJzOjIsY29uc3RzOltbMywidmFsdWUiLCJzZWxlY3Rpb25DaGFuZ2UiXSxbMywidmFsdWUiLCJkaXNhYmxlZCIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzMsInZhbHVlIiwiZGlzYWJsZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKENmKDAsIm1hdC1zZWxlY3QiLDApLFJmKCJzZWxlY3Rpb25DaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLnNlbGVjdGlvbkNoYW5nZS5lbWl0KGUudmFsdWUpfSkpLEhtKDEsRHl0LDIsMywibWF0LW9wdGlvbiIsMSksTWYoKSksMiZlJiYoYmYoInZhbHVlIixuLnZhbHVlKSxEYygxKSxiZigibmdGb3JPZiIsbi5vcHRpb25zKSl9LGRpcmVjdGl2ZXM6W09ZLHh2LFBMXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MXB4IHNvbGlkICM4ZTk4YTM7Ym9yZGVyLXJhZGl1czozcHg7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6NnB4fW1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVdOmZvY3Vze291dGxpbmUtY29sb3I6LXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO291dGxpbmUtc3R5bGU6YXV0b30gIC5tYXQtc2VsZWN0LXBhbmVse21heC13aWR0aDo3MHZ3fSAgbWF0LW9wdGlvbi5tYXQtb3B0aW9ue2hlaWdodDphdXRvfSAgLm1hdC1vcHRpb24tdGV4dHt3aGl0ZS1zcGFjZTpub3JtYWw7d29yZC1icmVhazpicmVhay1hbGx9J119KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFJ5dCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJ0Yi1kcm9wZG93biIsdGVtcGxhdGU6J1xuICAgIDxtYXQtc2VsZWN0XG4gICAgICBbdmFsdWVdPSJ2YWx1ZSJcbiAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPSJzZWxlY3Rpb25DaGFuZ2UuZW1pdCgkZXZlbnQudmFsdWUpIlxuICAgID5cbiAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICpuZ0Zvcj0ibGV0IG9wdGlvbiBvZiBvcHRpb25zIlxuICAgICAgICBbdmFsdWVdPSJvcHRpb24udmFsdWUiXG4gICAgICAgIFtkaXNhYmxlZF09Im9wdGlvbi5kaXNhYmxlZCJcbiAgICAgID5cbiAgICAgICAge3sgb3B0aW9uLmRpc3BsYXlUZXh0IH19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgPC9tYXQtc2VsZWN0PlxuICAnLHN0eWxlVXJsczpbImRyb3Bkb3duX2NvbXBvbmVudC5jc3MiXX1dfV0sbnVsbCx7dmFsdWU6W3t0eXBlOlJffV0sb3B0aW9uczpbe3R5cGU6Ul99XSxzZWxlY3Rpb25DaGFuZ2U6W3t0eXBlOkVffV19KTtjb25zdCBJeXQ9MjUwO2NsYXNzIEh5dHtjb25zdHJ1Y3Rvcih0KXt0aGlzLmxvY2FsZT10LHRoaXMuc2VsZWN0VGltZUVuYWJsZVRvZ2dsZWQ9bmV3IFN5LHRoaXMudXNlUmFuZ2VTZWxlY3RUaW1lVG9nZ2xlZD1uZXcgU3ksdGhpcy5zZWxlY3RUaW1lQ2hhbmdlZD1uZXcgU3ksdGhpcy5Ub29sdGlwU29ydERyb3Bkb3duT3B0aW9ucz1be3ZhbHVlOkpULkFMUEhBQkVUSUNBTCxkaXNwbGF5VGV4dDoiQWxwaGFiZXRpY2FsIn0se3ZhbHVlOkpULkFTQ0VORElORyxkaXNwbGF5VGV4dDoiQXNjZW5kaW5nIn0se3ZhbHVlOkpULkRFU0NFTkRJTkcsZGlzcGxheVRleHQ6IkRlc2NlbmRpbmcifSx7dmFsdWU6SlQuTkVBUkVTVCxkaXNwbGF5VGV4dDoiTmVhcmVzdCJ9XSx0aGlzLnRvb2x0aXBTb3J0Q2hhbmdlZD1uZXcgU3ksdGhpcy5pZ25vcmVPdXRsaWVyc0NoYW5nZWQ9bmV3IFN5LHRoaXMuWEF4aXNUeXBlPVFULHRoaXMuWEF4aXNUeXBlRHJvcGRvd25PcHRpb25zPVt7dmFsdWU6UVQuU1RFUCxkaXNwbGF5VGV4dDoiU3RlcCJ9LHt2YWx1ZTpRVC5SRUxBVElWRSxkaXNwbGF5VGV4dDoiUmVsYXRpdmUifSx7dmFsdWU6UVQuV0FMTF9USU1FLGRpc3BsYXlUZXh0OiJXYWxsIn1dLHRoaXMueEF4aXNUeXBlQ2hhbmdlZD1uZXcgU3ksdGhpcy5NQVhfQ0FSRF9XSURUSF9TTElERVJfVkFMVUU9NzM1LHRoaXMuTUlOX0NBUkRfV0lEVEhfU0xJREVSX1ZBTFVFPTMzNSx0aGlzLmNhcmRXaWR0aFNsaWRlckNoYW5nZWQkPW5ldyBTeSx0aGlzLmNhcmRXaWR0aENoYW5nZWQ9dGhpcy5jYXJkV2lkdGhTbGlkZXJDaGFuZ2VkJC5waXBlKGdlKEl5dCkpLHRoaXMuY2FyZFdpZHRoUmVzZXQ9bmV3IFN5LHRoaXMuSGlzdG9ncmFtTW9kZURyb3Bkb3duT3B0aW9ucz1be3ZhbHVlOmpFLk9GRlNFVCxkaXNwbGF5VGV4dDoiT2Zmc2V0In0se3ZhbHVlOmpFLk9WRVJMQVksZGlzcGxheVRleHQ6Ik92ZXJsYXkifV0sdGhpcy5oaXN0b2dyYW1Nb2RlQ2hhbmdlZD1uZXcgU3ksdGhpcy5NQVhfU01PT1RISU5HX1ZBTFVFPS45OTksdGhpcy5NQVhfU01PT1RISU5HX1NMSURFUl9WQUxVRT0uOTksdGhpcy5zY2FsYXJTbW9vdGhpbmdDb250cm9sQ2hhbmdlZCQ9bmV3IFN5LHRoaXMuc2NhbGFyU21vb3RoaW5nQ2hhbmdlZD10aGlzLnNjYWxhclNtb290aGluZ0NvbnRyb2xDaGFuZ2VkJC5waXBlKGdlKEl5dCkpLHRoaXMuc2NhbGFyUGFydGl0aW9uWFRvZ2dsZWQ9bmV3IFN5LHRoaXMuaW1hZ2VCcmlnaHRuZXNzU2xpZGVyQ2hhbmdlZCQ9bmV3IFN5LHRoaXMuaW1hZ2VCcmlnaHRuZXNzSW5NaWxsaUNoYW5nZWQ9dGhpcy5pbWFnZUJyaWdodG5lc3NTbGlkZXJDaGFuZ2VkJC5waXBlKGdlKEl5dCkpLHRoaXMuaW1hZ2VCcmlnaHRuZXNzUmVzZXQ9bmV3IFN5LHRoaXMuaW1hZ2VDb250cmFzdFNsaWRlckNoYW5nZWQkPW5ldyBTeSx0aGlzLmltYWdlQ29udHJhc3RJbk1pbGxpQ2hhbmdlZD10aGlzLmltYWdlQ29udHJhc3RTbGlkZXJDaGFuZ2VkJC5waXBlKGdlKEl5dCkpLHRoaXMuaW1hZ2VDb250cmFzdFJlc2V0PW5ldyBTeSx0aGlzLmltYWdlU2hvd0FjdHVhbFNpemVDaGFuZ2VkPW5ldyBTeX1vblNjYWxhclNtb290aGluZ0lucHV0KHQpe2NvbnN0IGU9dC50YXJnZXQ7aWYoIWUudmFsdWUpcmV0dXJuO2NvbnN0IG49TWF0aC5taW4oTWF0aC5tYXgoMCxwYXJzZUZsb2F0KGUudmFsdWUpKSwuOTk5KTtuIT09cGFyc2VGbG9hdChlLnZhbHVlKSYmKGUudmFsdWU9U3RyaW5nKG4pKSx0aGlzLnNjYWxhclNtb290aGluZ0NvbnRyb2xDaGFuZ2VkJC5lbWl0KG4pfWZvcm1hdE1pbGxpVG9aZXJvdGgodCl7cmV0dXJuIGZ2KHQvMWUzLHRoaXMubG9jYWxlfHwiZW4tVVMiLCIxLjAtMiIpfW9uU3RlcFN0YXJ0Q2hhbmdlZCh0KXt0aGlzLnNlbGVjdFRpbWVDaGFuZ2VkLmVtaXQoe3N0YXJ0OntzdGVwOnR9LGVuZDpudWxsfSl9b25TdGVwUmFuZ2VDaGFuZ2VkKHtsb3dlclZhbHVlOnQsdXBwZXJWYWx1ZTplfSl7dGhpcy5zZWxlY3RUaW1lQ2hhbmdlZC5lbWl0KHtzdGFydDp7c3RlcDp0fSxlbmQ6e3N0ZXA6ZX19KX19SHl0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxIeXQpKGdmKFFfKSl9LEh5dC7JtWNtcD1zbyh7dHlwZTpIeXQsc2VsZWN0b3JzOltbIm1ldHJpY3MtZGFzaGJvYXJkLXNldHRpbmdzLWNvbXBvbmVudCJdXSxpbnB1dHM6e2lzQ2FyZFdpZHRoU2V0dGluZ0VuYWJsZWQ6ImlzQ2FyZFdpZHRoU2V0dGluZ0VuYWJsZWQiLGlzTGlua2VkVGltZUZlYXR1cmVFbmFibGVkOiJpc0xpbmtlZFRpbWVGZWF0dXJlRW5hYmxlZCIsc2VsZWN0VGltZUVuYWJsZWQ6InNlbGVjdFRpbWVFbmFibGVkIix1c2VSYW5nZVNlbGVjdFRpbWU6InVzZVJhbmdlU2VsZWN0VGltZSIsc2VsZWN0ZWRUaW1lOiJzZWxlY3RlZFRpbWUiLHN0ZXBNaW5NYXg6InN0ZXBNaW5NYXgiLGlzSW1hZ2VTdXBwb3J0RW5hYmxlZDoiaXNJbWFnZVN1cHBvcnRFbmFibGVkIix0b29sdGlwU29ydDoidG9vbHRpcFNvcnQiLGlnbm9yZU91dGxpZXJzOiJpZ25vcmVPdXRsaWVycyIseEF4aXNUeXBlOiJ4QXhpc1R5cGUiLGNhcmRNaW5XaWR0aDoiY2FyZE1pbldpZHRoIixoaXN0b2dyYW1Nb2RlOiJoaXN0b2dyYW1Nb2RlIixzY2FsYXJTbW9vdGhpbmc6InNjYWxhclNtb290aGluZyIsc2NhbGFyUGFydGl0aW9uWDoic2NhbGFyUGFydGl0aW9uWCIsaW1hZ2VCcmlnaHRuZXNzSW5NaWxsaToiaW1hZ2VCcmlnaHRuZXNzSW5NaWxsaSIsaW1hZ2VDb250cmFzdEluTWlsbGk6ImltYWdlQ29udHJhc3RJbk1pbGxpIixpbWFnZVNob3dBY3R1YWxTaXplOiJpbWFnZVNob3dBY3R1YWxTaXplIn0sb3V0cHV0czp7c2VsZWN0VGltZUVuYWJsZVRvZ2dsZWQ6InNlbGVjdFRpbWVFbmFibGVUb2dnbGVkIix1c2VSYW5nZVNlbGVjdFRpbWVUb2dnbGVkOiJ1c2VSYW5nZVNlbGVjdFRpbWVUb2dnbGVkIixzZWxlY3RUaW1lQ2hhbmdlZDoic2VsZWN0VGltZUNoYW5nZWQiLHRvb2x0aXBTb3J0Q2hhbmdlZDoidG9vbHRpcFNvcnRDaGFuZ2VkIixpZ25vcmVPdXRsaWVyc0NoYW5nZWQ6Imlnbm9yZU91dGxpZXJzQ2hhbmdlZCIseEF4aXNUeXBlQ2hhbmdlZDoieEF4aXNUeXBlQ2hhbmdlZCIsY2FyZFdpZHRoQ2hhbmdlZDoiY2FyZFdpZHRoQ2hhbmdlZCIsY2FyZFdpZHRoUmVzZXQ6ImNhcmRXaWR0aFJlc2V0IixoaXN0b2dyYW1Nb2RlQ2hhbmdlZDoiaGlzdG9ncmFtTW9kZUNoYW5nZWQiLHNjYWxhclNtb290aGluZ0NoYW5nZWQ6InNjYWxhclNtb290aGluZ0NoYW5nZWQiLHNjYWxhclBhcnRpdGlvblhUb2dnbGVkOiJzY2FsYXJQYXJ0aXRpb25YVG9nZ2xlZCIsaW1hZ2VCcmlnaHRuZXNzSW5NaWxsaUNoYW5nZWQ6ImltYWdlQnJpZ2h0bmVzc0luTWlsbGlDaGFuZ2VkIixpbWFnZUJyaWdodG5lc3NSZXNldDoiaW1hZ2VCcmlnaHRuZXNzUmVzZXQiLGltYWdlQ29udHJhc3RJbk1pbGxpQ2hhbmdlZDoiaW1hZ2VDb250cmFzdEluTWlsbGlDaGFuZ2VkIixpbWFnZUNvbnRyYXN0UmVzZXQ6ImltYWdlQ29udHJhc3RSZXNldCIsaW1hZ2VTaG93QWN0dWFsU2l6ZUNoYW5nZWQ6ImltYWdlU2hvd0FjdHVhbFNpemVDaGFuZ2VkIn0sZGVjbHM6MzcsdmFyczoxOCxjb25zdHM6ZnVuY3Rpb24oKXtsZXQgdCxlLG47aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGUpe3Q9Z29vZy5nZXRNc2coIlJlc2V0IGNhcmQgd2lkdGgiKX1lbHNlIHQ9JGxvY2FsaXplYDpBIGJ1dHRvbiB0byByZXNldCB0aGUgY2FyZCB3aWR0aCBzZXR0aW5n4pCfY2NkYzk2YjAwM2ZiYmE5MGRiN2E2OTU5YjViMjZlM2NjNThmN2Q4MOKQnzUyMjMxMTEwNDc5NjgxMDI0NjY6UmVzZXQgY2FyZCB3aWR0aGA7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGUpe2U9Z29vZy5nZXRNc2coIlJlc2V0IGJyaWdodG5lc3MiKX1lbHNlIGU9JGxvY2FsaXplYDpBIGJ1dHRvbiB0byByZXNldCB0aGUgaW1hZ2UgYnJpZ2h0bmVzcyBzZXR0aW5n4pCfYzQ4MmIzYTQ3ZWEwOTc1ZmE4YmUwMWFmYjNmYmVjOWI3NjYyOGJkN+KQnzExODkxNjE4NTcyNDAzNzgzOTU6UmVzZXQgYnJpZ2h0bmVzc2A7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGUpe249Z29vZy5nZXRNc2coIlJlc2V0IGNvbnRyYXN0Iil9ZWxzZSBuPSRsb2NhbGl6ZWA6QSBidXR0b24gdG8gcmVzZXQgdGhlIGltYWdlIGNvbnRyYXN0IHNldHRpbmfikJ9lZDcxMmE4YjkyNzA0MWJlMTUyNTJiMjllYjUyMWViYjEzNzRiYWQ44pCfNTM3MDcwMzM0MjkyMzYxMTk1NTpSZXNldCBjb250cmFzdGA7cmV0dXJuW1sxLCJnZW5lcmFsIl0sWzEsInNlY3Rpb24tdGl0bGUiXSxbMSwiY29udHJvbC1yb3ciLCJ4LWF4aXMtdHlwZSJdLFsiaWQiLCJ4LWF4aXMtdHlwZS1sYWJlbCIsMSwiY29udHJvbC1uYW1lIl0sWzMsInZhbHVlIiwib3B0aW9ucyIsInNlbGVjdGlvbkNoYW5nZSJdLFsiY2xhc3MiLCJjb250cm9sLXJvdyBjYXJkLXdpZHRoIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNvbnRyb2wtcm93IGxpbmtlZC10aW1lIiw0LCJuZ0lmIl0sWzEsInNjYWxhcnMiXSxbMSwiY29udHJvbC1yb3ciLCJzY2FsYXJzLXNtb290aGluZyJdLFsiaWQiLCJzY2FsYXJzLXNtb290aGluZy1sYWJlbCIsMSwiY29udHJvbC1uYW1lIl0sWzEsInNsaWRlci1yb3ciXSxbImFyaWEtbGFiZWxsZWRieSIsInNjYWxhcnMtc21vb3RoaW5nLWxhYmVsIiwiY29sb3IiLCJwcmltYXJ5IiwzLCJtYXgiLCJtaW4iLCJzdGVwIiwidmFsdWUiLCJ0aHVtYkxhYmVsIiwiaW5wdXQiXSxbImFyaWEtbGFiZWxsZWRieSIsInNjYWxhcnMtc21vb3RoaW5nLWxhYmVsIiwidHlwZSIsIm51bWJlciIsIm1pbiIsIjAiLCJzdGVwIiwiMC4wMDEiLDEsInNsaWRlci1pbnB1dCIsMywibWF4IiwidmFsdWUiLCJpbnB1dCJdLFsxLCJjb250cm9sLXJvdyIsInRvb2x0aXAtc29ydCJdLFsxLCJjb250cm9sLW5hbWUiXSxbMSwiY29udHJvbC1yb3ciLCJzY2FsYXJzLWlnbm9yZS1vdXRsaWVycyJdLFszLCJjaGVja2VkIiwiY2hhbmdlIl0sWzEsImNvbnRyb2wtcm93Iiwic2NhbGFycy1wYXJ0aXRpb24teCJdLFsic3ZnSWNvbiIsImhlbHBfb3V0bGluZV8yNHB4IiwidGl0bGUiLCJOb24tbW9ub3RvbmljIHN0ZXBzIGNhbiBvY2N1ciB3aGVuIHJldXNpbmcgYSBsb2dkaXIgd2l0aCBtdWx0aXBsZSBzdW1tYXJ5IHdyaXRlcnMgYW5kIG92ZXJsYXBwaW5nIHN0ZXBzLiBMaW5lIGNoYXJ0cywgd2l0aG91dCB0aGlzIG9wdGlvbiBlbmFibGVkLCBjYW4gYXBwZWFyIHppZyB6YWdnZWQuIFRoaXMgaXMgY29tbW9uIHdoZW4gcmVzdGFydGluZyBmcm9tIGEgY2hlY2twb2ludC5cblxuV2hlbiBlbmFibGVkLCBhIG5vbi1tb25vdG9uaWMgdGltZSBzZXJpZXMgY29tcG9zZWQgb2YgTiBtb25vdG9uaWMgcGllY2VzIHdpbGwgYmUgc2hvd24gYXMgTiBtb25vdG9uaWMgbGluZXMuIiwxLCJpbmZvIl0sWzEsIkhpc3RvZ3JhbXMiXSxbMSwiY29udHJvbC1yb3ciLCJoaXN0b2dyYW0tbW9kZSJdLFsiY2xhc3MiLCJpbWFnZSIsNCwibmdJZiJdLFsxLCJjb250cm9sLXJvdyIsImNhcmQtd2lkdGgiXSxbImlkIiwiY2FyZC13aWR0aC1sYWJlbCIsMSwiY29udHJvbC1uYW1lIl0sWyJhcmlhLWxhYmVsbGVkYnkiLCJjYXJkLXdpZHRoLWxhYmVsIiwiY29sb3IiLCJwcmltYXJ5IiwzLCJtYXgiLCJtaW4iLCJzdGVwIiwidmFsdWUiLCJ0aHVtYkxhYmVsIiwiaW5wdXQiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHQsInRpdGxlIiwiUmVzZXQgY2FyZCB3aWR0aCIsMSwicmVzZXQtYnV0dG9uIiwzLCJjbGljayJdLFsic3ZnSWNvbiIsInNldHRpbmdzX2JhY2t1cF9yZXN0b3JlXzI0cHgiXSxbMSwiY29udHJvbC1yb3ciLCJsaW5rZWQtdGltZSJdLFsxLCJjb250cm9scyJdLFsxLCJzdGVwLXNlbGVjdG9yIl0sWyJjb2xvciIsInByaW1hcnkiLDMsImRpc2FibGVkIiwibWluIiwibWF4Iiwic3RlcCIsInZhbHVlIiwidGh1bWJMYWJlbCIsImlucHV0Iiw0LCJuZ0lmIiwibmdJZkVsc2UiXSxbInJhbmdlIiwiIl0sWyJjb2xvciIsInByaW1hcnkiLDMsImRpc2FibGVkIiwibWluIiwibWF4Iiwic3RlcCIsInZhbHVlIiwidGh1bWJMYWJlbCIsImlucHV0Il0sWzMsIm1pbiIsIm1heCIsImxvd2VyVmFsdWUiLCJ1cHBlclZhbHVlIiwidmFsdWUiXSxbMSwiaW1hZ2UiXSxbMSwiY29udHJvbC1yb3ciLCJpbWFnZS1icmlnaHRuZXNzIl0sWyJpZCIsImltYWdlLWJyaWdodG5lc3MtbGFiZWwiLDEsImNvbnRyb2wtbmFtZSJdLFsiYXJpYS1sYWJlbGxlZGJ5IiwiaW1hZ2UtYnJpZ2h0bmVzcy1sYWJlbCIsImNvbG9yIiwicHJpbWFyeSIsMywibWF4IiwibWluIiwic3RlcCIsInZhbHVlIiwidGh1bWJMYWJlbCIsImRpc3BsYXlXaXRoIiwiaW5wdXQiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLGUsInRpdGxlIiwiUmVzZXQgYnJpZ2h0bmVzcyIsMSwicmVzZXQtYnV0dG9uIiwzLCJjbGljayJdLFsxLCJjb250cm9sLXJvdyIsImltYWdlLWNvbnRyYXN0Il0sWyJpZCIsImltYWdlLWNvbnN0cmFzdC1sYWJlbCIsMSwiY29udHJvbC1uYW1lIl0sWyJhcmlhLWxhYmVsbGVkYnkiLCJpbWFnZS1jb25zdHJhc3QtbGFiZWwiLCJjb2xvciIsInByaW1hcnkiLDMsIm1heCIsIm1pbiIsInN0ZXAiLCJ2YWx1ZSIsInRodW1iTGFiZWwiLCJkaXNwbGF5V2l0aCIsImlucHV0Il0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJhcmlhLWxhYmVsIixuLCJ0aXRsZSIsIlJlc2V0IGNvbnRyYXN0IiwxLCJyZXNldC1idXR0b24iLDMsImNsaWNrIl0sWzEsImNvbnRyb2wtcm93IiwiaW1hZ2Utc2hvdy1hY3R1YWwtc2l6ZSJdXX0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKENmKDAsInNlY3Rpb24iLDApLENmKDEsImgzIiwxKSxQdSgyLCJHZW5lcmFsIiksTWYoKSxDZigzLCJkaXYiLDIpLENmKDQsImRpdiIsMyksUHUoNSwiSG9yaXpvbnRhbCBBeGlzIiksTWYoKSxDZig2LCJ0Yi1kcm9wZG93biIsNCksUmYoInNlbGVjdGlvbkNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ueEF4aXNUeXBlQ2hhbmdlZC5lbWl0KGUpfSkpLE1mKCksTWYoKSxIbSg3LEV5dCw3LDUsImRpdiIsNSksSG0oOCxOeXQsMTQsNCwiZGl2Iiw2KSxNZigpLENmKDksInNlY3Rpb24iLDcpLENmKDEwLCJoMyIsMSksUHUoMTEsIlNjYWxhcnMiKSxNZigpLENmKDEyLCJkaXYiLDgpLENmKDEzLCJkaXYiLDkpLFB1KDE0LCJTbW9vdGhpbmciKSxNZigpLENmKDE1LCJkaXYiLDEwKSxDZigxNiwibWF0LXNsaWRlciIsMTEpLFJmKCJpbnB1dCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uc2NhbGFyU21vb3RoaW5nQ29udHJvbENoYW5nZWQkLmVtaXQoZS52YWx1ZSl9KSksTWYoKSxDZigxNywiaW5wdXQiLDEyKSxSZigiaW5wdXQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uU2NhbGFyU21vb3RoaW5nSW5wdXQoZSl9KSksTWYoKSxNZigpLE1mKCksQ2YoMTgsImRpdiIsMTMpLENmKDE5LCJkaXYiLDE0KSxQdSgyMCwiVG9vbHRpcCBzb3J0aW5nIG1ldGhvZCIpLE1mKCksQ2YoMjEsInRiLWRyb3Bkb3duIiw0KSxSZigic2VsZWN0aW9uQ2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi50b29sdGlwU29ydENoYW5nZWQuZW1pdChlKX0pKSxNZigpLE1mKCksQ2YoMjIsImRpdiIsMTUpLENmKDIzLCJtYXQtY2hlY2tib3giLDE2KSxSZigiY2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5pZ25vcmVPdXRsaWVyc0NoYW5nZWQuZW1pdChlLmNoZWNrZWQpfSkpLFB1KDI0LCJJZ25vcmUgb3V0bGllcnMgaW4gY2hhcnQgc2NhbGluZyIpLE1mKCksTWYoKSxDZigyNSwiZGl2IiwxNyksQ2YoMjYsIm1hdC1jaGVja2JveCIsMTYpLFJmKCJjaGFuZ2UiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uc2NhbGFyUGFydGl0aW9uWFRvZ2dsZWQuZW1pdCgpfSkpLFB1KDI3LCJQYXJ0aXRpb24gbm9uLW1vbm90b25pYyBYIGF4aXMiKSxNZigpLHZmKDI4LCJtYXQtaWNvbiIsMTgpLE1mKCksTWYoKSxDZigyOSwic2VjdGlvbiIsMTkpLENmKDMwLCJoMyIsMSksUHUoMzEsIkhpc3RvZ3JhbXMiKSxNZigpLENmKDMyLCJkaXYiLDIwKSxDZigzMywiZGl2IiwxNCksUHUoMzQsIk1vZGUiKSxNZigpLENmKDM1LCJ0Yi1kcm9wZG93biIsNCksUmYoInNlbGVjdGlvbkNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uaGlzdG9ncmFtTW9kZUNoYW5nZWQuZW1pdChlKX0pKSxNZigpLE1mKCksTWYoKSxIbSgzNix6eXQsMjAsMTMsInNlY3Rpb24iLDIxKSksMiZlJiYoRGMoNiksYmYoInZhbHVlIixuLnhBeGlzVHlwZSkoIm9wdGlvbnMiLG4uWEF4aXNUeXBlRHJvcGRvd25PcHRpb25zKSxEYygxKSxiZigibmdJZiIsbi5pc0NhcmRXaWR0aFNldHRpbmdFbmFibGVkKSxEYygxKSxiZigibmdJZiIsbi5pc0xpbmtlZFRpbWVGZWF0dXJlRW5hYmxlZCYmbi54QXhpc1R5cGU9PW4uWEF4aXNUeXBlLlNURVApLERjKDgpLGJmKCJtYXgiLG4uTUFYX1NNT09USElOR19TTElERVJfVkFMVUUpKCJtaW4iLDApKCJzdGVwIiwuMDEpKCJ2YWx1ZSIsbi5zY2FsYXJTbW9vdGhpbmcpKCJ0aHVtYkxhYmVsIiwhMCksRGMoMSksYmYoIm1heCIsbi5NQVhfU01PT1RISU5HX1ZBTFVFKSgidmFsdWUiLG4uc2NhbGFyU21vb3RoaW5nKSxEYyg0KSxiZigidmFsdWUiLG4udG9vbHRpcFNvcnQpKCJvcHRpb25zIixuLlRvb2x0aXBTb3J0RHJvcGRvd25PcHRpb25zKSxEYygyKSxiZigiY2hlY2tlZCIsbi5pZ25vcmVPdXRsaWVycyksRGMoMyksYmYoImNoZWNrZWQiLG4uc2NhbGFyUGFydGl0aW9uWCksRGMoOSksYmYoInZhbHVlIixuLmhpc3RvZ3JhbU1vZGUpKCJvcHRpb25zIixuLkhpc3RvZ3JhbU1vZGVEcm9wZG93bk9wdGlvbnMpLERjKDEpLGJmKCJuZ0lmIixuLmlzSW1hZ2VTdXBwb3J0RW5hYmxlZCkpfSxkaXJlY3RpdmVzOltSeXQsUHYsd0osYlosTXEsTkwsRTJdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17Y29sb3I6IzYxNjE2MTtmb250LXNpemU6MTJweH1ib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9c2VjdGlvbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWJlYjtwYWRkaW5nOjE2cHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgc2VjdGlvbltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIHNlY3Rpb25bX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM1NTV9LnNlY3Rpb24tdGl0bGVbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiMyMTIxMjE7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDpub3JtYWw7bWFyZ2luOjAgMCAxMnB4IDB9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLnNlY3Rpb24tdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuc2VjdGlvbi10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6I2ZmZn1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb250cm9sLXJvd1tfbmdjb250ZW50LSVDT01QJV06bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjEycHh9LmNvbnRyb2wtbmFtZVtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLWJvdHRvbTo4cHh9LnNsaWRlci1yb3dbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjI4cHh9LnNsaWRlci1yb3dbX25nY29udGVudC0lQ09NUCVdICAgLnJlc2V0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLWxlZnQ6NnB4fS5zbGlkZXItcm93W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zbGlkZXItaW5wdXRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6aW5oZXJpdDtib3JkZXI6MXB4IHNvbGlkICM4ZTk4YTM7Ym9yZGVyLXJhZGl1czoycHg7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOmluaGVyaXQ7aGVpZ2h0OjEwMCU7bWFyZ2luLWxlZnQ6MTJweDtwYWRkaW5nOjAgNHB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5zbGlkZXItcm93W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zbGlkZXItaW5wdXRbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuc2xpZGVyLXJvd1tfbmdjb250ZW50LSVDT01QJV0gICAuc2xpZGVyLWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItY29sb3I6IzQyNTA2Nn0uc2NhbGFycy1zbW9vdGhpbmdbX25nY29udGVudC0lQ09NUCVdICAgLnNsaWRlci1pbnB1dFtfbmdjb250ZW50LSVDT01QJV17ZmxleDpub25lO3dpZHRoOjVlbX0uc2NhbGFycy1wYXJ0aXRpb24teFtfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0uc2NhbGFycy1wYXJ0aXRpb24teFtfbmdjb250ZW50LSVDT01QJV0gICAuaW5mb1tfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjE1cHg7bWFyZ2luLWxlZnQ6NXB4O3dpZHRoOjE1cHh9bWF0LXNsaWRlcltfbmdjb250ZW50LSVDT01QJV17ZmxleDoxO21hcmdpbi1sZWZ0Oi04cHg7bWFyZ2luLXJpZ2h0Oi04cHh9dGItZHJvcGRvd25bX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2t9LmxpbmtlZC10aW1lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zdGVwLXNlbGVjdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjAgMTBweH0ubGlua2VkLXRpbWVbX25nY29udGVudC0lQ09NUCVdICAgbWF0LXNsaWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5saW5rZWQtdGltZVtfbmdjb250ZW50LSVDT01QJV0gICB0Yi1yYW5nZS1pbnB1dFtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJX0ubGlua2VkLXRpbWVbX25nY29udGVudC0lQ09NUCVdICAgLmNvbnRyb2xzW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjVweH0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoSHl0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpY3MtZGFzaGJvYXJkLXNldHRpbmdzLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6InNldHRpbmdzX3ZpZXdfY29tcG9uZW50Lm5nLmh0bWwiLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2gsc3R5bGVVcmxzOlsic2V0dGluZ3Nfdmlld19jb21wb25lbnQuY3NzIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbUV9dfV19XX0pLHtpc0NhcmRXaWR0aFNldHRpbmdFbmFibGVkOlt7dHlwZTpSX31dLGlzTGlua2VkVGltZUZlYXR1cmVFbmFibGVkOlt7dHlwZTpSX31dLHNlbGVjdFRpbWVFbmFibGVkOlt7dHlwZTpSX31dLHVzZVJhbmdlU2VsZWN0VGltZTpbe3R5cGU6Ul99XSxzZWxlY3RlZFRpbWU6W3t0eXBlOlJffV0sc3RlcE1pbk1heDpbe3R5cGU6Ul99XSxzZWxlY3RUaW1lRW5hYmxlVG9nZ2xlZDpbe3R5cGU6RV99XSx1c2VSYW5nZVNlbGVjdFRpbWVUb2dnbGVkOlt7dHlwZTpFX31dLHNlbGVjdFRpbWVDaGFuZ2VkOlt7dHlwZTpFX31dLGlzSW1hZ2VTdXBwb3J0RW5hYmxlZDpbe3R5cGU6Ul99XSx0b29sdGlwU29ydDpbe3R5cGU6Ul99XSx0b29sdGlwU29ydENoYW5nZWQ6W3t0eXBlOkVffV0saWdub3JlT3V0bGllcnM6W3t0eXBlOlJffV0saWdub3JlT3V0bGllcnNDaGFuZ2VkOlt7dHlwZTpFX31dLHhBeGlzVHlwZTpbe3R5cGU6Ul99XSx4QXhpc1R5cGVDaGFuZ2VkOlt7dHlwZTpFX31dLGNhcmRNaW5XaWR0aDpbe3R5cGU6Ul99XSxjYXJkV2lkdGhDaGFuZ2VkOlt7dHlwZTpFX31dLGNhcmRXaWR0aFJlc2V0Olt7dHlwZTpFX31dLGhpc3RvZ3JhbU1vZGU6W3t0eXBlOlJffV0saGlzdG9ncmFtTW9kZUNoYW5nZWQ6W3t0eXBlOkVffV0sc2NhbGFyU21vb3RoaW5nOlt7dHlwZTpSX31dLHNjYWxhclNtb290aGluZ0NoYW5nZWQ6W3t0eXBlOkVffV0sc2NhbGFyUGFydGl0aW9uWDpbe3R5cGU6Ul99XSxzY2FsYXJQYXJ0aXRpb25YVG9nZ2xlZDpbe3R5cGU6RV99XSxpbWFnZUJyaWdodG5lc3NJbk1pbGxpOlt7dHlwZTpSX31dLGltYWdlQnJpZ2h0bmVzc0luTWlsbGlDaGFuZ2VkOlt7dHlwZTpFX31dLGltYWdlQnJpZ2h0bmVzc1Jlc2V0Olt7dHlwZTpFX31dLGltYWdlQ29udHJhc3RJbk1pbGxpOlt7dHlwZTpSX31dLGltYWdlQ29udHJhc3RJbk1pbGxpQ2hhbmdlZDpbe3R5cGU6RV99XSxpbWFnZUNvbnRyYXN0UmVzZXQ6W3t0eXBlOkVffV0saW1hZ2VTaG93QWN0dWFsU2l6ZTpbe3R5cGU6Ul99XSxpbWFnZVNob3dBY3R1YWxTaXplQ2hhbmdlZDpbe3R5cGU6RV99XX0pO2NsYXNzIEZ5dHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5pc0NhcmRXaWR0aFNldHRpbmdFbmFibGVkJD10aGlzLnN0b3JlLnNlbGVjdChxRCksdGhpcy5pc0xpbmtlZFRpbWVGZWF0dXJlRW5hYmxlZCQ9dGhpcy5zdG9yZS5zZWxlY3QoR0QpLHRoaXMuc2VsZWN0VGltZUVuYWJsZWQkPXRoaXMuc3RvcmUuc2VsZWN0KGt6KSx0aGlzLnVzZVJhbmdlU2VsZWN0VGltZSQ9dGhpcy5zdG9yZS5zZWxlY3QoU3opLHRoaXMuc2VsZWN0ZWRUaW1lJD10aGlzLnN0b3JlLnNlbGVjdChSeiksdGhpcy5zdGVwTWluTWF4JD10aGlzLnN0b3JlLnNlbGVjdChEeiksdGhpcy5pc0ltYWdlU3VwcG9ydEVuYWJsZWQkPXRoaXMuc3RvcmUuc2VsZWN0KE5EKS5waXBlKHVlKEJvb2xlYW4pLHZlKDEpLHFlKHRoaXMuc3RvcmUuc2VsZWN0KFdEKSksVnQoKChbLHRdKT0+dCkpKSx0aGlzLnRvb2x0aXBTb3J0JD10aGlzLnN0b3JlLnNlbGVjdChoeiksdGhpcy5pZ25vcmVPdXRsaWVycyQ9dGhpcy5zdG9yZS5zZWxlY3QoYnopLHRoaXMueEF4aXNUeXBlJD10aGlzLnN0b3JlLnNlbGVjdCh5eiksdGhpcy5jYXJkTWluV2lkdGgkPXRoaXMuc3RvcmUuc2VsZWN0KGd6KSx0aGlzLmhpc3RvZ3JhbU1vZGUkPXRoaXMuc3RvcmUuc2VsZWN0KF96KSx0aGlzLnNjYWxhclNtb290aGluZyQ9dGhpcy5zdG9yZS5zZWxlY3QoQ3opLHRoaXMuc2NhbGFyUGFydGl0aW9uWCQ9dGhpcy5zdG9yZS5zZWxlY3QoTXopLHRoaXMuaW1hZ2VCcmlnaHRuZXNzSW5NaWxsaSQ9dGhpcy5zdG9yZS5zZWxlY3QodnopLHRoaXMuaW1hZ2VDb250cmFzdEluTWlsbGkkPXRoaXMuc3RvcmUuc2VsZWN0KHh6KSx0aGlzLmltYWdlU2hvd0FjdHVhbFNpemUkPXRoaXMuc3RvcmUuc2VsZWN0KE96KX1vblRvb2x0aXBTb3J0Q2hhbmdlZCh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKGdBKHtzb3J0OnR9KSl9b25JZ25vcmVPdXRsaWVyc0NoYW5nZWQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKGhBKCkpfW9uWEF4aXNUeXBlQ2hhbmdlZCh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKGJBKHt4QXhpc1R5cGU6dH0pKX1vbkNhcmRXaWR0aENoYW5nZWQodCl7dGhpcy5zdG9yZS5kaXNwYXRjaCh5QSh7Y2FyZE1pbldpZHRoOnR9KSl9b25DYXJkV2lkdGhSZXNldCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2goX0EoKSl9b25IaXN0b2dyYW1Nb2RlQ2hhbmdlZCh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKGtBKHtoaXN0b2dyYW1Nb2RlOnR9KSl9b25TY2FsYXJTbW9vdGhpbmdDaGFuZ2VkKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2goQ0Eoe3Ntb290aGluZzp0fSkpfW9uU2NhbGFyUGFydGl0aW9uWFRvZ2dsZWQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKE1BKCkpfW9uSW1hZ2VCcmlnaHRuZXNzSW5NaWxsaUNoYW5nZWQodCl7dGhpcy5zdG9yZS5kaXNwYXRjaCh2QSh7YnJpZ2h0bmVzc0luTWlsbGk6dH0pKX1vbkltYWdlQnJpZ2h0bmVzc1Jlc2V0KCl7dGhpcy5zdG9yZS5kaXNwYXRjaChPQSgpKX1vbkltYWdlQ29udHJhc3RSZXNldCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2goUEEoKSl9b25JbWFnZUNvbnRyYXN0SW5NaWxsaUNoYW5nZWQodCl7dGhpcy5zdG9yZS5kaXNwYXRjaCh4QSh7Y29udHJhc3RJbk1pbGxpOnR9KSl9b25JbWFnZVNob3dBY3R1YWxTaXplQ2hhbmdlZCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2god0EoKSl9b25TZWxlY3RUaW1lRW5hYmxlVG9nZ2xlZCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2goQkEoKSl9b25Vc2VSYW5nZVNlbGVjdFRpbWVUb2dnbGVkKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChWQSgpKX1vblNlbGVjdFRpbWVDaGFuZ2VkKHQpe3ZhciBlO3RoaXMuc3RvcmUuZGlzcGF0Y2goRkEoe3N0YXJ0U3RlcDp0LnN0YXJ0LnN0ZXAsZW5kU3RlcDpudWxsPT09KGU9dC5lbmQpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnN0ZXB9KSl9fUZ5dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Rnl0KShnZihpUykpfSxGeXQuybVjbXA9c28oe3R5cGU6Rnl0LHNlbGVjdG9yczpbWyJtZXRyaWNzLWRhc2hib2FyZC1zZXR0aW5ncyJdXSxkZWNsczoxOCx2YXJzOjUxLGNvbnN0czpbWzMsImlzSW1hZ2VTdXBwb3J0RW5hYmxlZCIsInRvb2x0aXBTb3J0IiwiaWdub3JlT3V0bGllcnMiLCJ4QXhpc1R5cGUiLCJpc0NhcmRXaWR0aFNldHRpbmdFbmFibGVkIiwiY2FyZE1pbldpZHRoIiwiaGlzdG9ncmFtTW9kZSIsInNjYWxhclNtb290aGluZyIsInNjYWxhclBhcnRpdGlvblgiLCJpbWFnZUJyaWdodG5lc3NJbk1pbGxpIiwiaW1hZ2VDb250cmFzdEluTWlsbGkiLCJpbWFnZVNob3dBY3R1YWxTaXplIiwiaXNMaW5rZWRUaW1lRmVhdHVyZUVuYWJsZWQiLCJzZWxlY3RUaW1lRW5hYmxlZCIsInNlbGVjdGVkVGltZSIsInVzZVJhbmdlU2VsZWN0VGltZSIsInN0ZXBNaW5NYXgiLCJ0b29sdGlwU29ydENoYW5nZWQiLCJpZ25vcmVPdXRsaWVyc0NoYW5nZWQiLCJ4QXhpc1R5cGVDaGFuZ2VkIiwiY2FyZFdpZHRoQ2hhbmdlZCIsImNhcmRXaWR0aFJlc2V0IiwiaGlzdG9ncmFtTW9kZUNoYW5nZWQiLCJzY2FsYXJTbW9vdGhpbmdDaGFuZ2VkIiwic2NhbGFyUGFydGl0aW9uWFRvZ2dsZWQiLCJpbWFnZUJyaWdodG5lc3NJbk1pbGxpQ2hhbmdlZCIsImltYWdlQnJpZ2h0bmVzc1Jlc2V0IiwiaW1hZ2VDb250cmFzdEluTWlsbGlDaGFuZ2VkIiwiaW1hZ2VDb250cmFzdFJlc2V0IiwiaW1hZ2VTaG93QWN0dWFsU2l6ZUNoYW5nZWQiLCJzZWxlY3RUaW1lRW5hYmxlVG9nZ2xlZCIsInVzZVJhbmdlU2VsZWN0VGltZVRvZ2dsZWQiLCJzZWxlY3RUaW1lQ2hhbmdlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwibWV0cmljcy1kYXNoYm9hcmQtc2V0dGluZ3MtY29tcG9uZW50IiwwKSxSZigidG9vbHRpcFNvcnRDaGFuZ2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblRvb2x0aXBTb3J0Q2hhbmdlZChlKX0pKSgiaWdub3JlT3V0bGllcnNDaGFuZ2VkIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uSWdub3JlT3V0bGllcnNDaGFuZ2VkKCl9KSkoInhBeGlzVHlwZUNoYW5nZWQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uWEF4aXNUeXBlQ2hhbmdlZChlKX0pKSgiY2FyZFdpZHRoQ2hhbmdlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25DYXJkV2lkdGhDaGFuZ2VkKGUpfSkpKCJjYXJkV2lkdGhSZXNldCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkNhcmRXaWR0aFJlc2V0KCl9KSkoImhpc3RvZ3JhbU1vZGVDaGFuZ2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbkhpc3RvZ3JhbU1vZGVDaGFuZ2VkKGUpfSkpKCJzY2FsYXJTbW9vdGhpbmdDaGFuZ2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblNjYWxhclNtb290aGluZ0NoYW5nZWQoZSl9KSkoInNjYWxhclBhcnRpdGlvblhUb2dnbGVkIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uU2NhbGFyUGFydGl0aW9uWFRvZ2dsZWQoKX0pKSgiaW1hZ2VCcmlnaHRuZXNzSW5NaWxsaUNoYW5nZWQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uSW1hZ2VCcmlnaHRuZXNzSW5NaWxsaUNoYW5nZWQoZSl9KSkoImltYWdlQnJpZ2h0bmVzc1Jlc2V0IiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uSW1hZ2VCcmlnaHRuZXNzUmVzZXQoKX0pKSgiaW1hZ2VDb250cmFzdEluTWlsbGlDaGFuZ2VkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbkltYWdlQ29udHJhc3RJbk1pbGxpQ2hhbmdlZChlKX0pKSgiaW1hZ2VDb250cmFzdFJlc2V0IiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uSW1hZ2VDb250cmFzdFJlc2V0KCl9KSkoImltYWdlU2hvd0FjdHVhbFNpemVDaGFuZ2VkIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uSW1hZ2VTaG93QWN0dWFsU2l6ZUNoYW5nZWQoKX0pKSgic2VsZWN0VGltZUVuYWJsZVRvZ2dsZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25TZWxlY3RUaW1lRW5hYmxlVG9nZ2xlZCgpfSkpKCJ1c2VSYW5nZVNlbGVjdFRpbWVUb2dnbGVkIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uVXNlUmFuZ2VTZWxlY3RUaW1lVG9nZ2xlZCgpfSkpKCJzZWxlY3RUaW1lQ2hhbmdlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25TZWxlY3RUaW1lQ2hhbmdlZChlKX0pKSxfeSgxLCJhc3luYyIpLF95KDIsImFzeW5jIiksX3koMywiYXN5bmMiKSxfeSg0LCJhc3luYyIpLF95KDUsImFzeW5jIiksX3koNiwiYXN5bmMiKSxfeSg3LCJhc3luYyIpLF95KDgsImFzeW5jIiksX3koOSwiYXN5bmMiKSxfeSgxMCwiYXN5bmMiKSxfeSgxMSwiYXN5bmMiKSxfeSgxMiwiYXN5bmMiKSxfeSgxMywiYXN5bmMiKSxfeSgxNCwiYXN5bmMiKSxfeSgxNSwiYXN5bmMiKSxfeSgxNiwiYXN5bmMiKSxfeSgxNywiYXN5bmMiKSxNZigpKSwyJmUmJmJmKCJpc0ltYWdlU3VwcG9ydEVuYWJsZWQiLEN5KDEsMTcsbi5pc0ltYWdlU3VwcG9ydEVuYWJsZWQkKSkoInRvb2x0aXBTb3J0IixDeSgyLDE5LG4udG9vbHRpcFNvcnQkKSkoImlnbm9yZU91dGxpZXJzIixDeSgzLDIxLG4uaWdub3JlT3V0bGllcnMkKSkoInhBeGlzVHlwZSIsQ3koNCwyMyxuLnhBeGlzVHlwZSQpKSgiaXNDYXJkV2lkdGhTZXR0aW5nRW5hYmxlZCIsQ3koNSwyNSxuLmlzQ2FyZFdpZHRoU2V0dGluZ0VuYWJsZWQkKSkoImNhcmRNaW5XaWR0aCIsQ3koNiwyNyxuLmNhcmRNaW5XaWR0aCQpKSgiaGlzdG9ncmFtTW9kZSIsQ3koNywyOSxuLmhpc3RvZ3JhbU1vZGUkKSkoInNjYWxhclNtb290aGluZyIsQ3koOCwzMSxuLnNjYWxhclNtb290aGluZyQpKSgic2NhbGFyUGFydGl0aW9uWCIsQ3koOSwzMyxuLnNjYWxhclBhcnRpdGlvblgkKSkoImltYWdlQnJpZ2h0bmVzc0luTWlsbGkiLEN5KDEwLDM1LG4uaW1hZ2VCcmlnaHRuZXNzSW5NaWxsaSQpKSgiaW1hZ2VDb250cmFzdEluTWlsbGkiLEN5KDExLDM3LG4uaW1hZ2VDb250cmFzdEluTWlsbGkkKSkoImltYWdlU2hvd0FjdHVhbFNpemUiLEN5KDEyLDM5LG4uaW1hZ2VTaG93QWN0dWFsU2l6ZSQpKSgiaXNMaW5rZWRUaW1lRmVhdHVyZUVuYWJsZWQiLEN5KDEzLDQxLG4uaXNMaW5rZWRUaW1lRmVhdHVyZUVuYWJsZWQkKSkoInNlbGVjdFRpbWVFbmFibGVkIixDeSgxNCw0MyxuLnNlbGVjdFRpbWVFbmFibGVkJCkpKCJzZWxlY3RlZFRpbWUiLEN5KDE1LDQ1LG4uc2VsZWN0ZWRUaW1lJCkpKCJ1c2VSYW5nZVNlbGVjdFRpbWUiLEN5KDE2LDQ3LG4udXNlUmFuZ2VTZWxlY3RUaW1lJCkpKCJzdGVwTWluTWF4IixDeSgxNyw0OSxuLnN0ZXBNaW5NYXgkKSl9LGRpcmVjdGl2ZXM6W0h5dF0scGlwZXM6W1Z2XSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEZ5dCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJtZXRyaWNzLWRhc2hib2FyZC1zZXR0aW5ncyIsdGVtcGxhdGU6J1xuICAgIDxtZXRyaWNzLWRhc2hib2FyZC1zZXR0aW5ncy1jb21wb25lbnRcbiAgICAgIFtpc0ltYWdlU3VwcG9ydEVuYWJsZWRdPSJpc0ltYWdlU3VwcG9ydEVuYWJsZWQkIHwgYXN5bmMiXG4gICAgICBbdG9vbHRpcFNvcnRdPSJ0b29sdGlwU29ydCQgfCBhc3luYyJcbiAgICAgICh0b29sdGlwU29ydENoYW5nZWQpPSJvblRvb2x0aXBTb3J0Q2hhbmdlZCgkZXZlbnQpIlxuICAgICAgW2lnbm9yZU91dGxpZXJzXT0iaWdub3JlT3V0bGllcnMkIHwgYXN5bmMiXG4gICAgICAoaWdub3JlT3V0bGllcnNDaGFuZ2VkKT0ib25JZ25vcmVPdXRsaWVyc0NoYW5nZWQoKSJcbiAgICAgIFt4QXhpc1R5cGVdPSJ4QXhpc1R5cGUkIHwgYXN5bmMiXG4gICAgICAoeEF4aXNUeXBlQ2hhbmdlZCk9Im9uWEF4aXNUeXBlQ2hhbmdlZCgkZXZlbnQpIlxuICAgICAgW2lzQ2FyZFdpZHRoU2V0dGluZ0VuYWJsZWRdPSJpc0NhcmRXaWR0aFNldHRpbmdFbmFibGVkJCB8IGFzeW5jIlxuICAgICAgW2NhcmRNaW5XaWR0aF09ImNhcmRNaW5XaWR0aCQgfCBhc3luYyJcbiAgICAgIChjYXJkV2lkdGhDaGFuZ2VkKT0ib25DYXJkV2lkdGhDaGFuZ2VkKCRldmVudCkiXG4gICAgICAoY2FyZFdpZHRoUmVzZXQpPSJvbkNhcmRXaWR0aFJlc2V0KCkiXG4gICAgICBbaGlzdG9ncmFtTW9kZV09Imhpc3RvZ3JhbU1vZGUkIHwgYXN5bmMiXG4gICAgICAoaGlzdG9ncmFtTW9kZUNoYW5nZWQpPSJvbkhpc3RvZ3JhbU1vZGVDaGFuZ2VkKCRldmVudCkiXG4gICAgICBbc2NhbGFyU21vb3RoaW5nXT0ic2NhbGFyU21vb3RoaW5nJCB8IGFzeW5jIlxuICAgICAgKHNjYWxhclNtb290aGluZ0NoYW5nZWQpPSJvblNjYWxhclNtb290aGluZ0NoYW5nZWQoJGV2ZW50KSJcbiAgICAgIFtzY2FsYXJQYXJ0aXRpb25YXT0ic2NhbGFyUGFydGl0aW9uWCQgfCBhc3luYyJcbiAgICAgIChzY2FsYXJQYXJ0aXRpb25YVG9nZ2xlZCk9Im9uU2NhbGFyUGFydGl0aW9uWFRvZ2dsZWQoKSJcbiAgICAgIFtpbWFnZUJyaWdodG5lc3NJbk1pbGxpXT0iaW1hZ2VCcmlnaHRuZXNzSW5NaWxsaSQgfCBhc3luYyJcbiAgICAgIChpbWFnZUJyaWdodG5lc3NJbk1pbGxpQ2hhbmdlZCk9Im9uSW1hZ2VCcmlnaHRuZXNzSW5NaWxsaUNoYW5nZWQoJGV2ZW50KSJcbiAgICAgIChpbWFnZUJyaWdodG5lc3NSZXNldCk9Im9uSW1hZ2VCcmlnaHRuZXNzUmVzZXQoKSJcbiAgICAgIFtpbWFnZUNvbnRyYXN0SW5NaWxsaV09ImltYWdlQ29udHJhc3RJbk1pbGxpJCB8IGFzeW5jIlxuICAgICAgKGltYWdlQ29udHJhc3RJbk1pbGxpQ2hhbmdlZCk9Im9uSW1hZ2VDb250cmFzdEluTWlsbGlDaGFuZ2VkKCRldmVudCkiXG4gICAgICAoaW1hZ2VDb250cmFzdFJlc2V0KT0ib25JbWFnZUNvbnRyYXN0UmVzZXQoKSJcbiAgICAgIFtpbWFnZVNob3dBY3R1YWxTaXplXT0iaW1hZ2VTaG93QWN0dWFsU2l6ZSQgfCBhc3luYyJcbiAgICAgIChpbWFnZVNob3dBY3R1YWxTaXplQ2hhbmdlZCk9Im9uSW1hZ2VTaG93QWN0dWFsU2l6ZUNoYW5nZWQoKSJcbiAgICAgIFtpc0xpbmtlZFRpbWVGZWF0dXJlRW5hYmxlZF09ImlzTGlua2VkVGltZUZlYXR1cmVFbmFibGVkJCB8IGFzeW5jIlxuICAgICAgW3NlbGVjdFRpbWVFbmFibGVkXT0ic2VsZWN0VGltZUVuYWJsZWQkIHwgYXN5bmMiXG4gICAgICBbc2VsZWN0ZWRUaW1lXT0ic2VsZWN0ZWRUaW1lJCB8IGFzeW5jIlxuICAgICAgW3VzZVJhbmdlU2VsZWN0VGltZV09InVzZVJhbmdlU2VsZWN0VGltZSQgfCBhc3luYyJcbiAgICAgIFtzdGVwTWluTWF4XT0ic3RlcE1pbk1heCQgfCBhc3luYyJcbiAgICAgIChzZWxlY3RUaW1lRW5hYmxlVG9nZ2xlZCk9Im9uU2VsZWN0VGltZUVuYWJsZVRvZ2dsZWQoKSJcbiAgICAgICh1c2VSYW5nZVNlbGVjdFRpbWVUb2dnbGVkKT0ib25Vc2VSYW5nZVNlbGVjdFRpbWVUb2dnbGVkKCkiXG4gICAgICAoc2VsZWN0VGltZUNoYW5nZWQpPSJvblNlbGVjdFRpbWVDaGFuZ2VkKCRldmVudCkiXG4gICAgPlxuICAgIDwvbWV0cmljcy1kYXNoYm9hcmQtc2V0dGluZ3MtY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSksbnVsbCk7Y2xhc3MgTHl0e31mdW5jdGlvbiBCeXQodCxlKXtpZigxJnQmJnZmKDAsIm1ldHJpY3MtZmlsdGVyZWQtdmlldyIsOSksMiZ0KXtiZigiY2FyZE9ic2VydmVyIix6ZigpLmNhcmRPYnNlcnZlcil9fWZ1bmN0aW9uIFZ5dCh0LGUpezEmdCYmKENmKDAsImRpdiIsMTIpLHZmKDEsIm1hdC1zcGlubmVyIiwxMyksTWYoKSl9ZnVuY3Rpb24ganl0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwiZGl2IiwxNCksQ2YoMSwiZGl2IiwxNSksQ2YoMiwiaDIiLDE2KSxQdSgzLCJTZXR0aW5ncyIpLE1mKCksQ2YoNCwiYnV0dG9uIiwxNyksUmYoImNsaWNrIiwoZnVuY3Rpb24gZSgpe1BpKHQpO3JldHVybiB6ZigpLm9uQ2xvc2VTaWRlcGFuZUJ1dHRvbkNsaWNrZWQuZW1pdCgpfSkpLHZmKDUsIm1hdC1pY29uIiwxOCksTWYoKSxNZigpLHZmKDYsIm1ldHJpY3MtZGFzaGJvYXJkLXJpZ2h0LXBhbmUiKSxNZigpfX1MeXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEx5dCl9LEx5dC7JtWNtcD1zbyh7dHlwZTpMeXQsc2VsZWN0b3JzOltbIm1ldHJpY3MtZGFzaGJvYXJkLXJpZ2h0LXBhbmUiXV0sZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmdmYoMCwibWV0cmljcy1kYXNoYm9hcmQtc2V0dGluZ3MiKX0sZGlyZWN0aXZlczpbRnl0XSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEx5dCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJtZXRyaWNzLWRhc2hib2FyZC1yaWdodC1wYW5lIix0ZW1wbGF0ZToiPG1ldHJpY3MtZGFzaGJvYXJkLXNldHRpbmdzPjwvbWV0cmljcy1kYXNoYm9hcmQtc2V0dGluZ3M+IixjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSxudWxsLG51bGwpO2NvbnN0IFV5dD1mdW5jdGlvbih0KXtyZXR1cm57Y2hlY2tlZDp0LCJzZXR0aW5ncy1idXR0b24iOiEwfX07Y2xhc3MgV3l0e2NvbnN0cnVjdG9yKHQpe3RoaXMuaG9zdD10LHRoaXMub25TZXR0aW5nc0J1dHRvbkNsaWNrZWQ9bmV3IFN5LHRoaXMub25DbG9zZVNpZGVwYW5lQnV0dG9uQ2xpY2tlZD1uZXcgU3ksdGhpcy5vblBsdWdpblR5cGVUb2dnbGVkPW5ldyBTeSx0aGlzLm9uUGx1Z2luVHlwZUFsbFRvZ2dsZWQ9bmV3IFN5LHRoaXMuUGx1Z2luVHlwZT1LVCx0aGlzLmNhcmRPYnNlcnZlcj1uZXcgXzQodGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQsIjYwMHB4IDBweCA2MDBweCAwcHgiKX19V3l0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxXeXQpKGdmKEtoKSl9LFd5dC7JtWNtcD1zbyh7dHlwZTpXeXQsc2VsZWN0b3JzOltbIm1ldHJpY3MtbWFpbi12aWV3LWNvbXBvbmVudCJdXSxpbnB1dHM6e3Nob3dGaWx0ZXJlZFZpZXc6InNob3dGaWx0ZXJlZFZpZXciLGlzU2lkZXBhbmVPcGVuOiJpc1NpZGVwYW5lT3BlbiIsZmlsdGVyZWRQbHVnaW5UeXBlczoiZmlsdGVyZWRQbHVnaW5UeXBlcyIsaW5pdGlhbFRhZ3NMb2FkaW5nOiJpbml0aWFsVGFnc0xvYWRpbmcifSxvdXRwdXRzOntvblNldHRpbmdzQnV0dG9uQ2xpY2tlZDoib25TZXR0aW5nc0J1dHRvbkNsaWNrZWQiLG9uQ2xvc2VTaWRlcGFuZUJ1dHRvbkNsaWNrZWQ6Im9uQ2xvc2VTaWRlcGFuZUJ1dHRvbkNsaWNrZWQiLG9uUGx1Z2luVHlwZVRvZ2dsZWQ6Im9uUGx1Z2luVHlwZVRvZ2dsZWQiLG9uUGx1Z2luVHlwZUFsbFRvZ2dsZWQ6Im9uUGx1Z2luVHlwZUFsbFRvZ2dsZWQifSxkZWNsczoyMix2YXJzOjIxLGNvbnN0czpmdW5jdGlvbigpe2xldCB0LGU7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGUpe3Q9Z29vZy5nZXRNc2coIlRvZ2dsZSBzZXR0aW5ncyBzaWRlIHBhbmUiKX1lbHNlIHQ9JGxvY2FsaXplYDpMYWJlbCBvbiBhIHRvb2xiYXIgYnV0dG9uIHRvIHRvZ2dsZSB0aGUgc2V0dGluZ3Mgc2lkZSBwYW5lLuKQn2QzNTE2ZGI2YmJlNjg2MGE1NWJlYWI2NmU0OTY5ZGFjNjI1YjhkNzLikJ83NjU5Mjg1NDQ1NTgwODM4OTI1OlRvZ2dsZSBzZXR0aW5ncyBzaWRlIHBhbmVgO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlKXtlPWdvb2cuZ2V0TXNnKCJDbG9zZSBzaWRlIHBhbmUiKX1lbHNlIGU9JGxvY2FsaXplYDpMYWJlbCBvbiBhIGJ1dHRvbiB0byBjbG9zZSB0aGUgc2V0dGluZ3Mgc2lkZSBwYW5lLuKQnzA0NTIxZGMwYjZhNjVjZjVjMzgyOTQ0YzlhOGI0Yjg0NGEzZTk1OTjikJ84MTU2NzY2OTk3NzQ3MTY1ODcxOkNsb3NlIHNpZGUgcGFuZWA7cmV0dXJuW1sxLCJ0b29sYmFyIl0sWyJtdWx0aXBsZSIsIiIsImFwcGVhcmFuY2UiLCJzdGFuZGFyZCIsMSwiZmlsdGVyLXZpZXciXSxbIm1hdC1idXR0b24iLCIiLCJyb2xlIiwiY2hlY2tib3giLDEsImZpbHRlci12aWV3LWJ1dHRvbiIsMywiY2xpY2siXSxbMSwicmlnaHQtaXRlbXMiXSxbIm1hdC1zdHJva2VkLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHQsMywibmdDbGFzcyIsImNsaWNrIl0sWyJzdmdJY29uIiwic2V0dGluZ3NfMjRweCJdLFsxLCJzcGxpdC1jb250ZW50Il0sWyJjZGtTY3JvbGxhYmxlIiwiIl0sWzMsImNhcmRPYnNlcnZlciIsNCwibmdJZiJdLFszLCJjYXJkT2JzZXJ2ZXIiXSxbImNsYXNzIiwibG9hZGluZy1jb250YWluZXIiLDQsIm5nSWYiXSxbImNsYXNzIiwic2lkZWJhciIsNCwibmdJZiJdLFsxLCJsb2FkaW5nLWNvbnRhaW5lciJdLFsiZGlhbWV0ZXIiLCIzNiJdLFsxLCJzaWRlYmFyIl0sWzEsImhlYWRlciJdLFsxLCJ0aXRsZSJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsZSwzLCJjbGljayJdLFsic3ZnSWNvbiIsImNsb3NlXzI0cHgiXV19LHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJkaXYiLDApLHZmKDEsIm1ldHJpY3MtdGFnLWZpbHRlciIpLENmKDIsIm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIiwxKSxDZigzLCJidXR0b24iLDIpLFJmKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblBsdWdpblR5cGVBbGxUb2dnbGVkLmVtaXQoKX0pKSxQdSg0LCIgQWxsICIpLE1mKCksQ2YoNSwiYnV0dG9uIiwyKSxSZigiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25QbHVnaW5UeXBlVG9nZ2xlZC5lbWl0KG4uUGx1Z2luVHlwZS5TQ0FMQVJTKX0pKSxQdSg2LCIgU2NhbGFycyAiKSxNZigpLENmKDcsImJ1dHRvbiIsMiksUmYoImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUGx1Z2luVHlwZVRvZ2dsZWQuZW1pdChuLlBsdWdpblR5cGUuSU1BR0VTKX0pKSxQdSg4LCIgSW1hZ2UgIiksTWYoKSxDZig5LCJidXR0b24iLDIpLFJmKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblBsdWdpblR5cGVUb2dnbGVkLmVtaXQobi5QbHVnaW5UeXBlLkhJU1RPR1JBTVMpfSkpLFB1KDEwLCIgSGlzdG9ncmFtICIpLE1mKCksTWYoKSxDZigxMSwiZGl2IiwzKSxDZigxMiwiYnV0dG9uIiw0KSxSZigiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25TZXR0aW5nc0J1dHRvbkNsaWNrZWQuZW1pdCgpfSkpLHZmKDEzLCJtYXQtaWNvbiIsNSksUHUoMTQsIiBTZXR0aW5ncyAiKSxNZigpLE1mKCksTWYoKSxDZigxNSwiZGl2Iiw2KSxDZigxNiwiZGl2Iiw3KSxIbSgxNyxCeXQsMSwxLCJtZXRyaWNzLWZpbHRlcmVkLXZpZXciLDgpLHZmKDE4LCJtZXRyaWNzLXBpbm5lZC12aWV3Iiw5KSxIbSgxOSxWeXQsMiwwLCJkaXYiLDEwKSx2ZigyMCwibWV0cmljcy1jYXJkLWdyb3VwcyIsOSksTWYoKSxIbSgyMSxqeXQsNywwLCJkaXYiLDExKSxNZigpKSwyJmUmJihEYygzKSx5bSgiYXJpYS1jaGVja2VkIiwwPT09bi5maWx0ZXJlZFBsdWdpblR5cGVzLnNpemUpLERjKDIpLHltKCJhcmlhLWNoZWNrZWQiLG4uZmlsdGVyZWRQbHVnaW5UeXBlcy5oYXMobi5QbHVnaW5UeXBlLlNDQUxBUlMpKSxEYygyKSx5bSgiYXJpYS1jaGVja2VkIixuLmZpbHRlcmVkUGx1Z2luVHlwZXMuaGFzKG4uUGx1Z2luVHlwZS5JTUFHRVMpKSxEYygyKSx5bSgiYXJpYS1jaGVja2VkIixuLmZpbHRlcmVkUGx1Z2luVHlwZXMuaGFzKG4uUGx1Z2luVHlwZS5ISVNUT0dSQU1TKSksRGMoMyksYmYoIm5nQ2xhc3MiLGl5KDE5LFV5dCxuLmlzU2lkZXBhbmVPcGVuKSkseW0oImFyaWEtcHJlc3NlZCIsbi5pc1NpZGVwYW5lT3BlbiksRGMoNCksY3UoIm1haW4iLCEwKSgiZmlsdGVyLXZpZXciLG4uc2hvd0ZpbHRlcmVkVmlldyksRGMoMSksYmYoIm5nSWYiLG4uc2hvd0ZpbHRlcmVkVmlldyksRGMoMSksbHUoImRpc3BsYXkiLG4uc2hvd0ZpbHRlcmVkVmlldz8ibm9uZSI6IiIpLGJmKCJjYXJkT2JzZXJ2ZXIiLG4uY2FyZE9ic2VydmVyKSxEYygxKSxiZigibmdJZiIsbi5pbml0aWFsVGFnc0xvYWRpbmcpLERjKDEpLGx1KCJkaXNwbGF5IixuLnNob3dGaWx0ZXJlZFZpZXc/Im5vbmUiOiIiKSxiZigiY2FyZE9ic2VydmVyIixuLmNhcmRPYnNlcnZlciksRGMoMSksYmYoIm5nSWYiLG4uaXNTaWRlcGFuZU9wZW4pKX0sZGlyZWN0aXZlczpbUDQsQTQsTkwsQ3YsTXEsSkwsUHYscHl0LE15dCxTeXQsYTIsTHl0XSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMCV9LnRvb2xiYXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWI7ZmxleDpub25lO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47aGVpZ2h0OjQ4cHg7cGFkZGluZzowIDE2cHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLnRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAudG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzU1NX0udG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBtZXRyaWNzLXRhZy1maWx0ZXJbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MSAxIDEwMHB4fS50b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yaWdodC1pdGVtc1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNlYmViZWI7bWFyZ2luLWxlZnQ6MTZweDtwYWRkaW5nLWxlZnQ6MTZweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAudG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICAucmlnaHQtaXRlbXNbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAudG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICAucmlnaHQtaXRlbXNbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjNTU1fS5maWx0ZXItdmlld1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXJhZGl1czo0cHg7ZmxleDpub25lO21hcmdpbi1yaWdodDo1cHh9LmZpbHRlci12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXJhZGl1czowO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0Om5vcm1hbDtoZWlnaHQ6MjVweDtsaW5lLWhlaWdodDoyNXB4O21pbi13aWR0aDp1bnNldDtwYWRkaW5nOjAgMTJweH0uZmlsdGVyLXZpZXdbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSArIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNlYmViZWJ9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLmZpbHRlci12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gKyBidXR0b25bX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuZmlsdGVyLXZpZXdbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSArIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICM1NTV9LmZpbHRlci12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvblthcmlhLWNoZWNrZWQ9dHJ1ZV1bX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2UwZTBlMH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAuZmlsdGVyLXZpZXdbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW2FyaWEtY2hlY2tlZD10cnVlXVtfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5maWx0ZXItdmlld1tfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bYXJpYS1jaGVja2VkPXRydWVdW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiMyMTIxMjF9LnNwbGl0LWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtvdmVyZmxvdy15OmF1dG87ZmxleDoxfS5tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSwgLnNpZGViYXJbX25nY29udGVudC0lQ09NUCVde2NvbnRhaW46c3RyaWN0O292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6YXV0bzt3aWxsLWNoYW5nZTp0cmFuc2Zvcm0sc2Nyb2xsLXBvc2l0aW9ufS5tYWluW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY2Zjc7ZmxleDoxIDE7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAubWFpbltfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5tYWluW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiMzYTNhM2F9Lm1haW5bX25nY29udGVudC0lQ09NUCVdICAgbWV0cmljcy1maWx0ZXJlZC12aWV3W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1haW5bX25nY29udGVudC0lQ09NUCVdICAgbWV0cmljcy1waW5uZWQtdmlld1tfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWJlYn1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAubWFpbltfbmdjb250ZW50LSVDT01QJV0gICBtZXRyaWNzLWZpbHRlcmVkLXZpZXdbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAubWFpbltfbmdjb250ZW50LSVDT01QJV0gICBtZXRyaWNzLWZpbHRlcmVkLXZpZXdbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM1NTV9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLm1haW5bX25nY29udGVudC0lQ09NUCVdICAgbWV0cmljcy1waW5uZWQtdmlld1tfbmdjb250ZW50LSVDT01QJV0sIGJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSAgIG1ldHJpY3MtcGlubmVkLXZpZXdbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM1NTV9Lm1haW4uZmlsdGVyLXZpZXdbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbn0ubWFpbi5maWx0ZXItdmlld1tfbmdjb250ZW50LSVDT01QJV0gICBtZXRyaWNzLWZpbHRlcmVkLXZpZXdbX25nY29udGVudC0lQ09NUCVde2NvbnRhaW46Y29udGVudDtvdmVyZmxvdzphdXRvO3dpbGwtY2hhbmdlOnRyYW5zZm9ybSxzY3JvbGwtcG9zaXRpb259LmxvYWRpbmctY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luOjIwcHggMH0uc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNlYmViZWI7ZmxleDowIDAgMjUwcHh9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLnNpZGViYXJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICM1NTV9LnNpZGViYXJbX25nY29udGVudC0lQ09NUCVdICAgLmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWJlYjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2hlaWdodDo0MnB4O3BhZGRpbmc6MCAxNnB4fWJvZHkuZGFyay1tb2RlW19uZ2hvc3QtJUNPTVAlXSAgIC5zaWRlYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAuc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV0gICAuaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNTU1fS5zaWRlYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6bm9ybWFsO21hcmdpbjowfVtfbmdob3N0LSVDT01QJV0gICAuc2V0dGluZ3MtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjE2MTYxO2Rpc3BsYXk6aW5saW5lLWZsZXh9Ym9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLnNldHRpbmdzLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9W19uZ2hvc3QtJUNPTVAlXSAgIC5zZXR0aW5ncy1idXR0b24uY2hlY2tlZFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZTBlMGUwO2JvcmRlci1jb2xvcjojZTBlMGUwfWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5zZXR0aW5ncy1idXR0b24uY2hlY2tlZFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojMjEyMTIxfVtfbmdob3N0LSVDT01QJV0gICAuc2V0dGluZ3MtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLm1hdC1idXR0b24td3JhcHBlcntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn1bX25naG9zdC0lQ09NUCVdICAgLnNldHRpbmdzLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICBtYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXJpZ2h0OjRweH0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoV3l0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im1ldHJpY3MtbWFpbi12aWV3LWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Im1haW5fdmlld19jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsibWFpbl92aWV3X2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6S2h9XX0pLHtzaG93RmlsdGVyZWRWaWV3Olt7dHlwZTpSX31dLGlzU2lkZXBhbmVPcGVuOlt7dHlwZTpSX31dLGZpbHRlcmVkUGx1Z2luVHlwZXM6W3t0eXBlOlJffV0saW5pdGlhbFRhZ3NMb2FkaW5nOlt7dHlwZTpSX31dLG9uU2V0dGluZ3NCdXR0b25DbGlja2VkOlt7dHlwZTpFX31dLG9uQ2xvc2VTaWRlcGFuZUJ1dHRvbkNsaWNrZWQ6W3t0eXBlOkVffV0sb25QbHVnaW5UeXBlVG9nZ2xlZDpbe3R5cGU6RV99XSxvblBsdWdpblR5cGVBbGxUb2dnbGVkOlt7dHlwZTpFX31dfSk7Y2xhc3MgR3l0e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLmlzU2lkZXBhbmVPcGVuJD10aGlzLnN0b3JlLnNlbGVjdChOeiksdGhpcy5pbml0aWFsVGFnc0xvYWRpbmckPXRoaXMuc3RvcmUuc2VsZWN0KEpOKS5waXBlKFVlKCh0PT5udWxsPT09dC5sYXN0TG9hZGVkVGltZUluTXMpLCEwKSxWdCgodD0+dC5zdGF0ZT09PVVFLkxPQURJTkcmJm51bGw9PT10Lmxhc3RMb2FkZWRUaW1lSW5NcykpKSx0aGlzLnNob3dGaWx0ZXJlZFZpZXckPXRoaXMuc3RvcmUuc2VsZWN0KFB6KS5waXBlKFZ0KCh0PT50Lmxlbmd0aD4wKSkpLHRoaXMuZmlsdGVyZWRQbHVnaW5UeXBlcyQ9dGhpcy5zdG9yZS5zZWxlY3QoQXopfW9uU2V0dGluZ3NCdXR0b25DbGlja2VkKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChwQSgpKX1vbkNsb3NlU2lkZXBhbmVCdXR0b25DbGlja2VkKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChkQSgpKX1vblBsdWdpblZpc2liaWxpdHlUb2dnbGVkKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2goSUEoe3BsdWdpbjp0fSkpfW9uU2hvd0FsbFBsdWdpbnMoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKEhBKCkpfX1HeXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEd5dCkoZ2YoaVMpKX0sR3l0Lsm1Y21wPXNvKHt0eXBlOkd5dCxzZWxlY3RvcnM6W1sibWV0cmljcy1tYWluLXZpZXciXV0sZGVjbHM6NSx2YXJzOjEyLGNvbnN0czpbWzMsInNob3dGaWx0ZXJlZFZpZXciLCJpc1NpZGVwYW5lT3BlbiIsImluaXRpYWxUYWdzTG9hZGluZyIsImZpbHRlcmVkUGx1Z2luVHlwZXMiLCJvblNldHRpbmdzQnV0dG9uQ2xpY2tlZCIsIm9uQ2xvc2VTaWRlcGFuZUJ1dHRvbkNsaWNrZWQiLCJvblBsdWdpblR5cGVUb2dnbGVkIiwib25QbHVnaW5UeXBlQWxsVG9nZ2xlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwibWV0cmljcy1tYWluLXZpZXctY29tcG9uZW50IiwwKSxSZigib25TZXR0aW5nc0J1dHRvbkNsaWNrZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25TZXR0aW5nc0J1dHRvbkNsaWNrZWQoKX0pKSgib25DbG9zZVNpZGVwYW5lQnV0dG9uQ2xpY2tlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vbkNsb3NlU2lkZXBhbmVCdXR0b25DbGlja2VkKCl9KSkoIm9uUGx1Z2luVHlwZVRvZ2dsZWQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uUGx1Z2luVmlzaWJpbGl0eVRvZ2dsZWQoZSl9KSkoIm9uUGx1Z2luVHlwZUFsbFRvZ2dsZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25TaG93QWxsUGx1Z2lucygpfSkpLF95KDEsImFzeW5jIiksX3koMiwiYXN5bmMiKSxfeSgzLCJhc3luYyIpLF95KDQsImFzeW5jIiksTWYoKSksMiZlJiZiZigic2hvd0ZpbHRlcmVkVmlldyIsQ3koMSw0LG4uc2hvd0ZpbHRlcmVkVmlldyQpKSgiaXNTaWRlcGFuZU9wZW4iLEN5KDIsNixuLmlzU2lkZXBhbmVPcGVuJCkpKCJpbml0aWFsVGFnc0xvYWRpbmciLEN5KDMsOCxuLmluaXRpYWxUYWdzTG9hZGluZyQpKSgiZmlsdGVyZWRQbHVnaW5UeXBlcyIsQ3koNCwxMCxuLmZpbHRlcmVkUGx1Z2luVHlwZXMkKSl9LGRpcmVjdGl2ZXM6W1d5dF0scGlwZXM6W1Z2XSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEd5dCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJtZXRyaWNzLW1haW4tdmlldyIsdGVtcGxhdGU6J1xuICAgIDxtZXRyaWNzLW1haW4tdmlldy1jb21wb25lbnRcbiAgICAgIFtzaG93RmlsdGVyZWRWaWV3XT0ic2hvd0ZpbHRlcmVkVmlldyQgfCBhc3luYyJcbiAgICAgIFtpc1NpZGVwYW5lT3Blbl09ImlzU2lkZXBhbmVPcGVuJCB8IGFzeW5jIlxuICAgICAgW2luaXRpYWxUYWdzTG9hZGluZ109ImluaXRpYWxUYWdzTG9hZGluZyQgfCBhc3luYyJcbiAgICAgIFtmaWx0ZXJlZFBsdWdpblR5cGVzXT0iZmlsdGVyZWRQbHVnaW5UeXBlcyQgfCBhc3luYyJcbiAgICAgIChvblNldHRpbmdzQnV0dG9uQ2xpY2tlZCk9Im9uU2V0dGluZ3NCdXR0b25DbGlja2VkKCkiXG4gICAgICAob25DbG9zZVNpZGVwYW5lQnV0dG9uQ2xpY2tlZCk9Im9uQ2xvc2VTaWRlcGFuZUJ1dHRvbkNsaWNrZWQoKSJcbiAgICAgIChvblBsdWdpblR5cGVUb2dnbGVkKT0ib25QbHVnaW5WaXNpYmlsaXR5VG9nZ2xlZCgkZXZlbnQpIlxuICAgICAgKG9uUGx1Z2luVHlwZUFsbFRvZ2dsZWQpPSJvblNob3dBbGxQbHVnaW5zKCkiXG4gICAgPjwvbWV0cmljcy1tYWluLXZpZXctY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSksbnVsbCk7Y29uc3QgWXl0PW5ldyBlcigiW01ldHJpY3NdIE1FVFJJQ1NfUHJvbW8gTWVzc2FnZSBDb21wb25lbnQiKTtmdW5jdGlvbiBxeXQodCxlKXsxJnQmJih4ZigwKSxGZigxKSxPZigpKX1jbGFzcyBaeXR7Y29uc3RydWN0b3IodCxlKXt0aGlzLnZpZXdDb250YWluZXJSZWY9dCx0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcj1lfW5nT25Jbml0KCl7aWYodGhpcy5jdXN0b21pemFibGVDb21wb25lbnQpe2NvbnN0IHQ9dGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodGhpcy5jdXN0b21pemFibGVDb21wb25lbnQuY29uc3RydWN0b3IpO3RoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQodCl9fX1aeXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFp5dCkoZ2YoRmIpLGdmKEdoKSl9LFp5dC7JtWNtcD1zbyh7dHlwZTpaeXQsc2VsZWN0b3JzOltbInRiLWN1c3RvbWl6YXRpb24iXV0saW5wdXRzOntjdXN0b21pemFibGVDb21wb25lbnQ6ImN1c3RvbWl6YWJsZUNvbXBvbmVudCJ9LG5nQ29udGVudFNlbGVjdG9yczpbIioiXSxkZWNsczoxLHZhcnM6MSxjb25zdHM6W1s0LCJuZ0lmIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihIZigpLEhtKDAscXl0LDIsMCwibmctY29udGFpbmVyIiwwKSksMiZlJiZiZigibmdJZiIsIW4uY3VzdG9taXphYmxlQ29tcG9uZW50KX0sZGlyZWN0aXZlczpbUHZdLGVuY2Fwc3VsYXRpb246Mn0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoWnl0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6InRiLWN1c3RvbWl6YXRpb24iLHRlbXBsYXRlOidcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPSIhY3VzdG9taXphYmxlQ29tcG9uZW50Ij5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgJ31dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkZifSx7dHlwZTpHaH1dfSkse2N1c3RvbWl6YWJsZUNvbXBvbmVudDpbe3R5cGU6Ul99XX0pO2NsYXNzIFh5dHtjb25zdHJ1Y3Rvcih0KXt0aGlzLmN1c3RvbVByb21vTWVzc2FnZT10LHRoaXMub25EaXNtaXNzPW5ldyBTeSx0aGlzLm9uR29Ub1NjYWxhcnM9bmV3IFN5fX1YeXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFh5dCkoZ2YoWXl0LDgpKX0sWHl0Lsm1Y21wPXNvKHt0eXBlOlh5dCxzZWxlY3RvcnM6W1sibWV0cmljcy1wcm9tby1ub3RpY2UtY29tcG9uZW50Il1dLG91dHB1dHM6e29uRGlzbWlzczoib25EaXNtaXNzIixvbkdvVG9TY2FsYXJzOiJvbkdvVG9TY2FsYXJzIn0sZGVjbHM6Nyx2YXJzOjEsY29uc3RzOltbMSwibWVzc2FnZSIsMywiY3VzdG9taXphYmxlQ29tcG9uZW50Il0sWzEsImdvLXRvLXNjYWxhcnMiLDMsImNsaWNrIl0sWzEsImRpc21pc3MiLDMsImNsaWNrIl0sWyJpbmxpbmUiLCIiLCJzdmdJY29uIiwiY2xvc2VfMjRweCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwidGItY3VzdG9taXphdGlvbiIsMCksUHUoMSwiIFdlbGNvbWUgdG8gbmV3IGRlZmF1bHQgZXhwZXJpZW5jZSBvZiBUZW5zb3JCb2FyZC4gVGltZSBTZXJpZXMgbGV0cyB5b3UgdmlldyBhbGwgdmlzdWFsaXphdGlvbnMgYXQgb25jZSwgcHV0IHRoZW0gc2lkZS1ieS1zaWRlIHdpdGggcGlucywgYW5kIGN1c3RvbWl6ZSBjb2xvcnMuIFNjYWxhcnMgYW5kIG90aGVyIHBsdWdpbnMgYXJlIHN0aWxsIGF2YWlsYWJsZS4gIiksQ2YoMiwiYnV0dG9uIiwxKSxSZigiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25Hb1RvU2NhbGFycy5lbWl0KCl9KSksUHUoMywiIEdvIHRvIFNjYWxhcnMgcGx1Z2luIiksTWYoKSxQdSg0LCIuXG4iKSxNZigpLENmKDUsImJ1dHRvbiIsMiksUmYoImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uRGlzbWlzcy5lbWl0KCl9KSksdmYoNiwibWF0LWljb24iLDMpLE1mKCkpLDImZSYmYmYoImN1c3RvbWl6YWJsZUNvbXBvbmVudCIsbi5jdXN0b21Qcm9tb01lc3NhZ2UpfSxkaXJlY3RpdmVzOltaeXQsTXFdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZvbnQtc2l6ZToxNHB4O2dhcDo1cHg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47bGluZS1oZWlnaHQ6MjBweDtwYWRkaW5nOjVweCAxMHB4fWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6MDtjb2xvcjppbmhlcml0O2N1cnNvcjpwb2ludGVyO2ZvbnQ6aW5oZXJpdDtwYWRkaW5nOjB9YnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXTpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfXRiLWN1c3RvbWl6YXRpb25bX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojMTk3NmQyfS5kaXNtaXNzW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1zZWxmOmJhc2VsaW5lO2ZsZXg6bm9uZTtoZWlnaHQ6MjBweDt3aWR0aDoyMHB4fSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihYeXQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljcy1wcm9tby1ub3RpY2UtY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoibWV0cmljc19wcm9tb19ub3RpY2VfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIm1ldHJpY3NfcHJvbW9fbm90aWNlX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6Y3IsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W1l5dF19XX1dfSkse29uRGlzbWlzczpbe3R5cGU6RV99XSxvbkdvVG9TY2FsYXJzOlt7dHlwZTpFX31dfSk7Y2xhc3MgS3l0e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dH1vbkRpc21pc3MoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKGpBKCkpfW9uR29Ub1NjYWxhcnMoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKFVBKCkpfX1mdW5jdGlvbiBKeXQodCxlKXsxJnQmJnZmKDAsIm1ldHJpY3MtcHJvbW8tbm90aWNlIiwzKX1LeXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEt5dCkoZ2YoaVMpKX0sS3l0Lsm1Y21wPXNvKHt0eXBlOkt5dCxzZWxlY3RvcnM6W1sibWV0cmljcy1wcm9tby1ub3RpY2UiXV0sZGVjbHM6MSx2YXJzOjAsY29uc3RzOltbMywib25EaXNtaXNzIiwib25Hb1RvU2NhbGFycyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwibWV0cmljcy1wcm9tby1ub3RpY2UtY29tcG9uZW50IiwwKSxSZigib25EaXNtaXNzIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uRGlzbWlzcygpfSkpKCJvbkdvVG9TY2FsYXJzIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uR29Ub1NjYWxhcnMoKX0pKSxNZigpKX0sZGlyZWN0aXZlczpbWHl0XSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEt5dCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJtZXRyaWNzLXByb21vLW5vdGljZSIsdGVtcGxhdGU6JzxtZXRyaWNzLXByb21vLW5vdGljZS1jb21wb25lbnRcbiAgICAob25EaXNtaXNzKT0ib25EaXNtaXNzKCkiXG4gICAgKG9uR29Ub1NjYWxhcnMpPSJvbkdvVG9TY2FsYXJzKCkiXG4gID48L21ldHJpY3MtcHJvbW8tbm90aWNlLWNvbXBvbmVudD4nLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSksbnVsbCk7Y2xhc3MgUXl0e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLmlzQnV0dGVyQmFyRW5hYmxlZCQ9dGhpcy5zdG9yZS5zZWxlY3QoWUQpLnBpcGUoX2UodGhpcy5zdG9yZS5zZWxlY3QoVHopKSxWdCgoKFt0LGVdKT0+dCYmZSkpKX19UXl0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxReXQpKGdmKGlTKSl9LFF5dC7JtWNtcD1zbyh7dHlwZTpReXQsc2VsZWN0b3JzOltbIm1ldHJpY3MtZGFzaGJvYXJkIl1dLGRlY2xzOjUsdmFyczozLGNvbnN0czpbWyJjbGFzcyIsIm5vdGljZSIsNCwibmdJZiJdLFsic2lkZWJhciIsIiJdLFsibWFpbiIsIiJdLFsxLCJub3RpY2UiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKEhtKDAsSnl0LDEsMCwibWV0cmljcy1wcm9tby1ub3RpY2UiLDApLF95KDEsImFzeW5jIiksQ2YoMiwidGItZGFzaGJvYXJkLWxheW91dCIpLHZmKDMsInJ1bnMtc2VsZWN0b3IiLDEpLHZmKDQsIm1ldHJpY3MtbWFpbi12aWV3IiwyKSxNZigpKSwyJmUmJmJmKCJuZ0lmIixDeSgxLDEsbi5pc0J1dHRlckJhckVuYWJsZWQkKSl9LGRpcmVjdGl2ZXM6W1B2LHYwLGI0LEd5dCxLeXRdLHBpcGVzOltWdl0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtjb250YWluOnN0cmljdDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDoxMDAlO2p1c3RpZnktY29udGVudDpzdHJldGNoO292ZXJmbG93OmhpZGRlbn0ubm90aWNlW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI0NSwxNTcsLjg1KTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZmZlYjNiO2NvbG9yOiMyMTIxMjE7ZGlzcGxheTpibG9jaztmbGV4OjAgMH10Yi1kYXNoYm9hcmQtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4OjEgMTtvdmVyZmxvdzpoaWRkZW59bmF2W19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZWJlYmViO2ZsZXg6bm9uZTt3aWR0aDozNDBweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICBuYXZbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICBuYXZbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6IzMwMzAzMDtib3JkZXItcmlnaHQtY29sb3I6IzU1NX1tZXRyaWNzLW1haW4tdmlld1tfbmdjb250ZW50LSVDT01QJV17ZmxleDoxIDF9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFF5dCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJtZXRyaWNzLWRhc2hib2FyZCIsdGVtcGxhdGU6J1xuICAgIDxtZXRyaWNzLXByb21vLW5vdGljZVxuICAgICAgKm5nSWY9ImlzQnV0dGVyQmFyRW5hYmxlZCQgfCBhc3luYyJcbiAgICAgIGNsYXNzPSJub3RpY2UiXG4gICAgPjwvbWV0cmljcy1wcm9tby1ub3RpY2U+XG4gICAgPHRiLWRhc2hib2FyZC1sYXlvdXQ+XG4gICAgICA8cnVucy1zZWxlY3RvciBzaWRlYmFyPjwvcnVucy1zZWxlY3Rvcj5cbiAgICAgIDxtZXRyaWNzLW1haW4tdmlldyBtYWluPjwvbWV0cmljcy1tYWluLXZpZXc+XG4gICAgPC90Yi1kYXNoYm9hcmQtbGF5b3V0PlxuICAnLHN0eWxlVXJsczpbIm1ldHJpY3NfY29udGFpbmVyLmNzcyJdLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSksbnVsbCk7Y2xhc3MgJHl0e30keXQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fCR5dCl9LCR5dC7JtW1vZD1mbyh7dHlwZTokeXR9KSwkeXQuybVpbmo9RG4oe2ltcG9ydHM6W1tyeCx2cSxJTF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYigkeXQsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W3YwXSxleHBvcnRzOlt2MF0saW1wb3J0czpbcngsdnEsSUxdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oJHl0LHtkZWNsYXJhdGlvbnM6W3YwXSxpbXBvcnRzOltyeCx2cSxJTF0sZXhwb3J0czpbdjBdfSk7Y2xhc3MgdF90e310X3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHRfdCl9LHRfdC7JtW1vZD1mbyh7dHlwZTp0X3R9KSx0X3QuybVpbmo9RG4oe2ltcG9ydHM6W1tyeF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih0X3QsW3t0eXBlOkxfLGFyZ3M6W3tpbXBvcnRzOltyeF0sZGVjbGFyYXRpb25zOltaeXRdLGV4cG9ydHM6W1p5dF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byh0X3Qse2RlY2xhcmF0aW9uczpbWnl0XSxpbXBvcnRzOltyeF0sZXhwb3J0czpbWnl0XX0pO2NsYXNzIGVfdHt9ZV90Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxlX3QpfSxlX3QuybVtb2Q9Zm8oe3R5cGU6ZV90fSksZV90Lsm1aW5qPURuKHt9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGVfdCxbe3R5cGU6TF8sYXJnczpbe2V4cG9ydHM6W04yXSxkZWNsYXJhdGlvbnM6W04yXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKGVfdCx7ZGVjbGFyYXRpb25zOltOMl0sZXhwb3J0czpbTjJdfSk7Y2xhc3Mgbl90e31uX3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG5fdCl9LG5fdC7JtW1vZD1mbyh7dHlwZTpuX3R9KSxuX3QuybVpbmo9RG4oe2ltcG9ydHM6W1tyeCxlX3RdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIobl90LFt7dHlwZTpMXyxhcmdzOlt7aW1wb3J0czpbcngsZV90XSxleHBvcnRzOltIMl0sZGVjbGFyYXRpb25zOltIMl19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhuX3Qse2RlY2xhcmF0aW9uczpbSDJdLGltcG9ydHM6W3J4LGVfdF0sZXhwb3J0czpbSDJdfSk7Y2xhc3Mgb190e31vX3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG9fdCl9LG9fdC7JtW1vZD1mbyh7dHlwZTpvX3R9KSxvX3QuybVpbmo9RG4oe2ltcG9ydHM6W1tyeCxxMyx2cV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihvX3QsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W1ozXSxleHBvcnRzOltaM10saW1wb3J0czpbcngscTMsdnFdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8ob190LHtkZWNsYXJhdGlvbnM6W1ozXSxpbXBvcnRzOltyeCxxMyx2cV0sZXhwb3J0czpbWjNdfSk7Y2xhc3MgaV90e31pX3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGlfdCl9LGlfdC7JtW1vZD1mbyh7dHlwZTppX3R9KSxpX3QuybVpbmo9RG4oe2ltcG9ydHM6W1tyeF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihpX3QsW3t0eXBlOkxfLGFyZ3M6W3tpbXBvcnRzOltyeF0sZXhwb3J0czpbRTJdLGRlY2xhcmF0aW9uczpbRTJdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oaV90LHtkZWNsYXJhdGlvbnM6W0UyXSxpbXBvcnRzOltyeF0sZXhwb3J0czpbRTJdfSk7Y2xhc3MgYV90e31hX3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGFfdCl9LGFfdC7JtW1vZD1mbyh7dHlwZTphX3R9KSxhX3QuybVpbmo9RG4oe2ltcG9ydHM6W1t3NSxyeCxuX3Qsb190LENVLElMLE1aLG5xLFRaLHZxLFhxLG4xLHIyLHUxLGszLGlfdCxGVl1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihhX3QsW3t0eXBlOkxfLGFyZ3M6W3tpbXBvcnRzOlt3NSxyeCxuX3Qsb190LENVLElMLE1aLG5xLFRaLHZxLFhxLG4xLHIyLHUxLGszLGlfdCxGVl0sZXhwb3J0czpbZzRdLGVudHJ5Q29tcG9uZW50czpbeTJdLGRlY2xhcmF0aW9uczpbYjIseTIsazIsUzIscDQsZzRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oYV90LHtkZWNsYXJhdGlvbnM6W2IyLHkyLGsyLFMyLHA0LGc0XSxpbXBvcnRzOlt3NSxyeCxuX3Qsb190LENVLElMLE1aLG5xLFRaLHZxLFhxLG4xLHIyLHUxLGszLGlfdCxGVl0sZXhwb3J0czpbZzRdfSk7Y2xhc3Mgcl90e31yX3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHJfdCl9LHJfdC7JtW1vZD1mbyh7dHlwZTpyX3R9KSxyX3QuybVpbmo9RG4oe2ltcG9ydHM6W1tyeCxhX3RdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIocl90LFt7dHlwZTpMXyxhcmdzOlt7aW1wb3J0czpbcngsYV90XSxleHBvcnRzOltiNF0sZGVjbGFyYXRpb25zOltoNCxiNF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhyX3Qse2RlY2xhcmF0aW9uczpbaDQsYjRdLGltcG9ydHM6W3J4LGFfdF0sZXhwb3J0czpbYjRdfSk7Y2xhc3Mgc190e31zX3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHNfdCl9LHNfdC7JtW1vZD1mbyh7dHlwZTpzX3R9KSxzX3QuybVpbmo9RG4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoc190LFt7dHlwZTpMXyxhcmdzOlt7ZXhwb3J0czpbc2J0XSxkZWNsYXJhdGlvbnM6W3NidF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhzX3Qse2RlY2xhcmF0aW9uczpbc2J0XSxleHBvcnRzOltzYnRdfSk7Y2xhc3MgbF90e31sX3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGxfdCl9LGxfdC7JtW1vZD1mbyh7dHlwZTpsX3R9KSxsX3QuybVpbmo9RG4oe2ltcG9ydHM6W1tyeF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihsX3QsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W2podF0sZXhwb3J0czpbamh0XSxpbXBvcnRzOltyeF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhsX3Qse2RlY2xhcmF0aW9uczpbamh0XSxpbXBvcnRzOltyeF0sZXhwb3J0czpbamh0XX0pO2NsYXNzIGNfdHt9Y190Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxjX3QpfSxjX3QuybVtb2Q9Zm8oe3R5cGU6Y190fSksY190Lsm1aW5qPURuKHtpbXBvcnRzOltbcngsSCQsc190LGxfdF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihjX3QsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W2tidF0sZXhwb3J0czpba2J0XSxpbXBvcnRzOltyeCxIJCxzX3QsbF90XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKGNfdCx7ZGVjbGFyYXRpb25zOltrYnRdLGltcG9ydHM6W3J4LEgkLHNfdCxsX3RdLGV4cG9ydHM6W2tidF19KTtjbGFzcyBkX3R7fWRfdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ZF90KX0sZF90Lsm1bW9kPWZvKHt0eXBlOmRfdH0pLGRfdC7JtWluaj1Ebih7aW1wb3J0czpbW3J4XV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGRfdCxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbTDRdLGV4cG9ydHM6W0w0XSxpbXBvcnRzOltyeF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhkX3Qse2RlY2xhcmF0aW9uczpbTDRdLGltcG9ydHM6W3J4XSxleHBvcnRzOltMNF19KTtjbGFzcyBwX3R7fXBfdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cF90KX0scF90Lsm1bW9kPWZvKHt0eXBlOnBfdH0pLHBfdC7JtWluaj1Ebih7aW1wb3J0czpbW3J4LG5fdF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihwX3QsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W1c0LFU0XSxleHBvcnRzOltXNF0saW1wb3J0czpbcngsbl90XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKHBfdCx7ZGVjbGFyYXRpb25zOltXNCxVNF0saW1wb3J0czpbcngsbl90XSxleHBvcnRzOltXNF19KTtjbGFzcyBtX3R7fW1fdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8bV90KX0sbV90Lsm1bW9kPWZvKHt0eXBlOm1fdH0pLG1fdC7JtWluaj1Ebih7aW1wb3J0czpbW3J4LHZxXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKG1fdCxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbVmh0XSxleHBvcnRzOltWaHRdLGltcG9ydHM6W3J4LHZxXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKG1fdCx7ZGVjbGFyYXRpb25zOltWaHRdLGltcG9ydHM6W3J4LHZxXSxleHBvcnRzOltWaHRdfSk7Y2xhc3MgZl90e31mX3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGZfdCl9LGZfdC7JtW1vZD1mbyh7dHlwZTpmX3R9KSxmX3QuybVpbmo9RG4oe2ltcG9ydHM6W1tyeCxjX3QsSUwsdnEscjIscF90LGRfdCxtX3RdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZl90LFt7dHlwZTpMXyxhcmdzOlt7ZGVjbGFyYXRpb25zOltMYnQsRmJ0XSxleHBvcnRzOltMYnRdLGltcG9ydHM6W3J4LGNfdCxJTCx2cSxyMixwX3QsZF90LG1fdF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhmX3Qse2RlY2xhcmF0aW9uczpbTGJ0LEZidF0saW1wb3J0czpbcngsY190LElMLHZxLHIyLHBfdCxkX3QsbV90XSxleHBvcnRzOltMYnRdfSk7Y2xhc3MgdV90e311X3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHVfdCl9LHVfdC7JtW1vZD1mbyh7dHlwZTp1X3R9KSx1X3QuybVpbmo9RG4oe2ltcG9ydHM6W1tyeCxJTCx2cSxyMixSSixwX3QsZF90XV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHVfdCxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbdDYsJDRdLGV4cG9ydHM6W3Q2XSxpbXBvcnRzOltyeCxJTCx2cSxyMixSSixwX3QsZF90XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKHVfdCx7ZGVjbGFyYXRpb25zOlt0NiwkNF0saW1wb3J0czpbcngsSUwsdnEscjIsUkoscF90LGRfdF0sZXhwb3J0czpbdDZdfSk7Y2xhc3MgZ190e31nX3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGdfdCl9LGdfdC7JtW1vZD1mbyh7dHlwZTpnX3R9KSxnX3QuybVpbmo9RG4oe2ltcG9ydHM6W1tyeCxvVixJTCx2cSxUWixYcV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihnX3QsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W01odCx1aHQsZWh0XSxleHBvcnRzOltNaHQsdWh0LGVodF0saW1wb3J0czpbcngsb1YsSUwsdnEsVFosWHFdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oZ190LHtkZWNsYXJhdGlvbnM6W01odCx1aHQsZWh0XSxpbXBvcnRzOltyeCxvVixJTCx2cSxUWixYcV0sZXhwb3J0czpbTWh0LHVodCxlaHRdfSk7Y2xhc3MgaF90e31oX3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGhfdCl9LGhfdC7JtW1vZD1mbyh7dHlwZTpoX3R9KSxoX3QuybVpbmo9RG4oe2ltcG9ydHM6W1tyeCxvVixnX3QsSCRdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoaF90LFt7dHlwZTpMXyxhcmdzOlt7ZGVjbGFyYXRpb25zOltCaHRdLGV4cG9ydHM6W0JodF0saW1wb3J0czpbcngsb1YsZ190LEgkXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKGhfdCx7ZGVjbGFyYXRpb25zOltCaHRdLGltcG9ydHM6W3J4LG9WLGdfdCxIJF0sZXhwb3J0czpbQmh0XX0pO2NsYXNzIGJfdHt9Yl90Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxiX3QpfSxiX3QuybVtb2Q9Zm8oe3R5cGU6Yl90fSksYl90Lsm1aW5qPURuKHtpbXBvcnRzOltbcngsdFksSUwsbnEsVFosUFksSE5dXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoYl90LFt7dHlwZTpMXyxhcmdzOlt7ZGVjbGFyYXRpb25zOltmNixtNl0sZXhwb3J0czpbZjZdLGltcG9ydHM6W3J4LHRZLElMLG5xLFRaLFBZLEhOXSxlbnRyeUNvbXBvbmVudHM6W2Y2XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKGJfdCx7ZGVjbGFyYXRpb25zOltmNixtNl0saW1wb3J0czpbcngsdFksSUwsbnEsVFosUFksSE5dLGV4cG9ydHM6W2Y2XX0pO2NsYXNzIHlfdHt9eV90Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx5X3QpfSx5X3QuybVtb2Q9Zm8oe3R5cGU6eV90fSkseV90Lsm1aW5qPURuKHtpbXBvcnRzOltbcngsYl90LG5fdCxzX3QsaF90LGxfdCxJTCx2cSxYcSxyMixIJCxkX3QsbV90XV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHlfdCxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbY2J0LHJidF0sZXhwb3J0czpbY2J0XSxpbXBvcnRzOltyeCxiX3Qsbl90LHNfdCxoX3QsbF90LElMLHZxLFhxLHIyLEgkLGRfdCxtX3RdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oeV90LHtkZWNsYXJhdGlvbnM6W2NidCxyYnRdLGltcG9ydHM6W3J4LGJfdCxuX3Qsc190LGhfdCxsX3QsSUwsdnEsWHEscjIsSCQsZF90LG1fdF0sZXhwb3J0czpbY2J0XX0pO2NsYXNzIF9fdHt9X190Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxfX3QpfSxfX3QuybVtb2Q9Zm8oe3R5cGU6X190fSksX190Lsm1aW5qPURuKHtpbXBvcnRzOltbcngsdV90LHlfdCxmX3Qsc190XV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKF9fdCxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbQzQsR2J0LFlidF0sZXhwb3J0czpbQzQsWWJ0XSxpbXBvcnRzOltyeCx1X3QseV90LGZfdCxzX3RdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oX190LHtkZWNsYXJhdGlvbnM6W0M0LEdidCxZYnRdLGltcG9ydHM6W3J4LHVfdCx5X3QsZl90LHNfdF0sZXhwb3J0czpbQzQsWWJ0XX0pO2NsYXNzIENfdHt9Q190Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxDX3QpfSxDX3QuybVtb2Q9Zm8oe3R5cGU6Q190fSksQ190Lsm1aW5qPURuKHtpbXBvcnRzOltbcngsUFldXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoQ190LFt7dHlwZTpMXyxhcmdzOlt7ZGVjbGFyYXRpb25zOltSeXRdLGV4cG9ydHM6W1J5dF0saW1wb3J0czpbcngsUFldfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oQ190LHtkZWNsYXJhdGlvbnM6W1J5dF0saW1wb3J0czpbcngsUFldLGV4cG9ydHM6W1J5dF19KTtjbGFzcyBNX3R7fU1fdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TV90KX0sTV90Lsm1bW9kPWZvKHt0eXBlOk1fdH0pLE1fdC7JtWluaj1Ebih7aW1wb3J0czpbW3J4LENfdCxJTCx6NCxNWix2cSxQWSxSSixJTixpX3RdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoTV90LFt7dHlwZTpMXyxhcmdzOlt7ZGVjbGFyYXRpb25zOltMeXQsSHl0LEZ5dF0sZXhwb3J0czpbTHl0XSxpbXBvcnRzOltyeCxDX3QsSUwsejQsTVosdnEsUFksUkosSU4saV90XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKE1fdCx7ZGVjbGFyYXRpb25zOltMeXQsSHl0LEZ5dF0saW1wb3J0czpbcngsQ190LElMLHo0LE1aLHZxLFBZLFJKLElOLGlfdF0sZXhwb3J0czpbTHl0XX0pO2NsYXNzIHZfdHt9dl90Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx2X3QpfSx2X3QuybVtb2Q9Zm8oe3R5cGU6dl90fSksdl90Lsm1aW5qPURuKHtpbXBvcnRzOltbX190LHJ4LG9fdCxxMyxJTCx6NCx2cSxUWixyMixNX3QsaUJdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIodl90LFt7dHlwZTpMXyxhcmdzOlt7ZGVjbGFyYXRpb25zOltpeXQsYXl0LEN5dCxNeXQsYnl0LHl5dCx4eXQsT3l0LGt5dCxTeXQsV3l0LEd5dCxPNCxQNCxkeXQscHl0XSxleHBvcnRzOltHeXRdLGltcG9ydHM6W19fdCxyeCxvX3QscTMsSUwsejQsdnEsVFoscjIsTV90LGlCXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKHZfdCx7ZGVjbGFyYXRpb25zOltpeXQsYXl0LEN5dCxNeXQsYnl0LHl5dCx4eXQsT3l0LGt5dCxTeXQsV3l0LEd5dCxPNCxQNCxkeXQscHl0XSxpbXBvcnRzOltfX3Qscngsb190LHEzLElMLHo0LHZxLFRaLHIyLE1fdCxpQl0sZXhwb3J0czpbR3l0XX0pO2NsYXNzIHhfdHt9eF90Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx4X3QpfSx4X3QuybVtb2Q9Zm8oe3R5cGU6eF90fSkseF90Lsm1aW5qPURuKHtpbXBvcnRzOltbcngsdF90LCR5dCx2X3QsdnEsTV90LHJfdF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih4X3QsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W1F5dCxYeXQsS3l0XSxleHBvcnRzOltReXRdLGltcG9ydHM6W3J4LHRfdCwkeXQsdl90LHZxLE1fdCxyX3RdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oeF90LHtkZWNsYXJhdGlvbnM6W1F5dCxYeXQsS3l0XSxpbXBvcnRzOltyeCx0X3QsJHl0LHZfdCx2cSxNX3Qscl90XSxleHBvcnRzOltReXRdfSk7ZnVuY3Rpb24gT190KCl7cmV0dXJuW3thY3Rpb25DcmVhdG9yOnpBLGFsZXJ0RnJvbUFjdGlvbjp0PT57Y29uc3R7d2FzUGlubmVkOmUsY2FuQ3JlYXRlTmV3UGluczpufT10O3JldHVybiBlfHxuP251bGw6e2xvY2FsaXplZE1lc3NhZ2U6Ik1heCBwaW4gbGltaXQgZXhjZWVkZWQuIFJlbW92ZSBleGlzdGluZyBwaW5zIGJlZm9yZSBhZGRpbmcgbW9yZS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmJvYXJkL2lzc3Vlcy80MjQyIn19fV19ZnVuY3Rpb24gUF90KCl7cmV0dXJuIGJTKEN6LCh0PT4oe3NjYWxhclNtb290aGluZzp0fSkpKX1mdW5jdGlvbiB3X3QoKXtyZXR1cm4gYlMoYnosKHQ9Pih7aWdub3JlT3V0bGllcnM6dH0pKSl9ZnVuY3Rpb24ga190KCl7cmV0dXJuIGJTKGh6LCh0PT4oe3Rvb2x0aXBTb3J0U3RyaW5nOlN0cmluZyh0KX0pKSl9ZnVuY3Rpb24gU190KCl7cmV0dXJuIGJTKFR6LCh0PT4oe3RpbWVTZXJpZXNQcm9tb3Rpb25EaXNtaXNzZWQ6IXR9KSkpfWZ1bmN0aW9uIERfdCgpe3JldHVybiBiUyhOeiwodD0+KHt0aW1lU2VyaWVzU2V0dGluZ3NQYW5lT3BlbmVkOnR9KSkpfWZ1bmN0aW9uIFJfdCgpe3JldHVybiBiUyhneiwodD0+KHt0aW1lU2VyaWVzQ2FyZE1pbldpZHRoOnR9KSkpfWNsYXNzIEVfdHt9ZnVuY3Rpb24gQV90KHQpe3JldHVybiB0LnN0YXJ0c1dpdGgoImNvdW50QCIpfWZ1bmN0aW9uIFRfdCh0KXtyZXR1cm4gdC5zdGFydHNXaXRoKCJuUE1JQCIpfHx0LnN0YXJ0c1dpdGgoIm5QTUlfZGlmZkAiKX1mdW5jdGlvbiBOX3QodCl7cmV0dXJuIHQuc3RhcnRzV2l0aCgiblBNSUAiKX1mdW5jdGlvbiB6X3QodCl7cmV0dXJuIHQuc3BsaXQoIkAiLDIpWzFdfUVfdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RV90KX0sRV90Lsm1bW9kPWZvKHt0eXBlOkVfdH0pLEVfdC7JtWluaj1Ebih7cHJvdmlkZXJzOlt7cHJvdmlkZTpmMCx1c2VGYWN0b3J5OmcwLGRlcHM6W3UwXX0se3Byb3ZpZGU6dTAsdXNlVmFsdWU6WE59XSxpbXBvcnRzOltbcngsUlIsZFQsTVguZm9yUGx1Z2luKCRULFF5dCksSE4seF90LFRTLmZvckZlYXR1cmUoWk4sczAsZjApLGhELmZvckZlYXR1cmUoW20wXSksbVQucmVnaXN0ZXJBbGVydEFjdGlvbnMoT190KSx6Ui5kZWZpbmVHbG9iYWxTZXR0aW5nKFBfdCkselIuZGVmaW5lR2xvYmFsU2V0dGluZyh3X3QpLHpSLmRlZmluZUdsb2JhbFNldHRpbmcoa190KSx6Ui5kZWZpbmVHbG9iYWxTZXR0aW5nKFNfdCkselIuZGVmaW5lR2xvYmFsU2V0dGluZyhEX3QpLHpSLmRlZmluZUdsb2JhbFNldHRpbmcoUl90KV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihFX3QsW3t0eXBlOkxfLGFyZ3M6W3tpbXBvcnRzOltyeCxSUixkVCxNWC5mb3JQbHVnaW4oJFQsUXl0KSxITix4X3QsVFMuZm9yRmVhdHVyZShaTixzMCxmMCksaEQuZm9yRmVhdHVyZShbbTBdKSxtVC5yZWdpc3RlckFsZXJ0QWN0aW9ucyhPX3QpLHpSLmRlZmluZUdsb2JhbFNldHRpbmcoUF90KSx6Ui5kZWZpbmVHbG9iYWxTZXR0aW5nKHdfdCkselIuZGVmaW5lR2xvYmFsU2V0dGluZyhrX3QpLHpSLmRlZmluZUdsb2JhbFNldHRpbmcoU190KSx6Ui5kZWZpbmVHbG9iYWxTZXR0aW5nKERfdCkselIuZGVmaW5lR2xvYmFsU2V0dGluZyhSX3QpXSxwcm92aWRlcnM6W3twcm92aWRlOmYwLHVzZUZhY3Rvcnk6ZzAsZGVwczpbdTBdfSx7cHJvdmlkZTp1MCx1c2VWYWx1ZTpYTn1dLGVudHJ5Q29tcG9uZW50czpbUXl0XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKEVfdCx7aW1wb3J0czpbcngsUlIsZFQsTVgsSE4seF90LEFTLGdELG1ULHpSLHpSLHpSLHpSLHpSLHpSXX0pO3ZhciBJX3Q9e30sSF90PXt9LEZfdD17fSxMX3Q9e30sQl90PV9PJiZfTy5fX3ZhbHVlc3x8ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdLG49MDtyZXR1cm4gZT9lLmNhbGwodCk6e25leHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdCYmbj49dC5sZW5ndGgmJih0PXZvaWQgMCkse3ZhbHVlOnQmJnRbbisrXSxkb25lOiF0fX19fTtmdW5jdGlvbiBWX3QodCxlKXtyZXR1cm4gTWF0aC5mbG9vcihlKCkqdCl9ZnVuY3Rpb24gal90KHQpe2Zvcih2YXIgZT1bXSxuPTA7bjx0O24rKyllLnB1c2godm9pZCAwKTtyZXR1cm4gZX1mdW5jdGlvbiBVX3QodCxlKXtyZXR1cm4gal90KHQpLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm4gZX0pKX1mdW5jdGlvbiBXX3QodCl7cmV0dXJuIFVfdCh0LDApfWZ1bmN0aW9uIEdfdCh0KXtyZXR1cm4gdC5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0pKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoTF90LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMX3QudGF1UmFuZEludD1WX3QsTF90LnRhdVJhbmQ9ZnVuY3Rpb24gWV90KHQpe3JldHVybiB0KCl9LExfdC5ub3JtPWZ1bmN0aW9uIHFfdCh0KXt2YXIgZSxuLG89MDt0cnl7Zm9yKHZhciBpPUJfdCh0KSxhPWkubmV4dCgpOyFhLmRvbmU7YT1pLm5leHQoKSl7bys9TWF0aC5wb3coYS52YWx1ZSwyKX19Y2F0Y2godCl7ZT17ZXJyb3I6dH19ZmluYWxseXt0cnl7YSYmIWEuZG9uZSYmKG49aS5yZXR1cm4pJiZuLmNhbGwoaSl9ZmluYWxseXtpZihlKXRocm93IGUuZXJyb3J9fXJldHVybiBNYXRoLnNxcnQobyl9LExfdC5lbXB0eT1qX3QsTF90LnJhbmdlPWZ1bmN0aW9uIFpfdCh0KXtyZXR1cm4gal90KHQpLm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZX0pKX0sTF90LmZpbGxlZD1VX3QsTF90Lnplcm9zPVdfdCxMX3Qub25lcz1mdW5jdGlvbiBYX3QodCl7cmV0dXJuIFVfdCh0LDEpfSxMX3QubGluZWFyPWZ1bmN0aW9uIEtfdCh0LGUsbil7cmV0dXJuIGpfdChuKS5tYXAoKGZ1bmN0aW9uKG8saSl7cmV0dXJuIHQraSooKGUtdCkvKG4tMSkpfSkpfSxMX3Quc3VtPUdfdCxMX3QubWVhbj1mdW5jdGlvbiBKX3QodCl7cmV0dXJuIEdfdCh0KS90Lmxlbmd0aH0sTF90Lm1heD1mdW5jdGlvbiBRX3QodCl7Zm9yKHZhciBlPTAsbj0wO248dC5sZW5ndGg7bisrKWU9dFtuXT5lP3Rbbl06ZTtyZXR1cm4gZX0sTF90Lm1heDJkPWZ1bmN0aW9uICRfdCh0KXtmb3IodmFyIGU9MCxuPTA7bjx0Lmxlbmd0aDtuKyspZm9yKHZhciBvPTA7bzx0W25dLmxlbmd0aDtvKyspZT10W25dW29dPmU/dFtuXVtvXTplO3JldHVybiBlfSxMX3QucmVqZWN0aW9uU2FtcGxlPWZ1bmN0aW9uIHRDdCh0LGUsbil7Zm9yKHZhciBvPVdfdCh0KSxpPTA7aTx0O2krKylmb3IodmFyIGE9ITA7YTspe2Zvcih2YXIgcj1WX3QoZSxuKSxzPSExLGw9MDtsPGk7bCsrKWlmKHI9PT1vW2xdKXtzPSEwO2JyZWFrfXN8fChhPSExKSxvW2ldPXJ9cmV0dXJuIG99LExfdC5yZXNoYXBlMmQ9ZnVuY3Rpb24gZUN0KHQsZSxuKXt2YXIgbz1bXSxpPTA7aWYodC5sZW5ndGghPT1lKm4pdGhyb3cgbmV3IEVycm9yKCJBcnJheSBkaW1lbnNpb25zIG11c3QgbWF0Y2ggaW5wdXQgbGVuZ3RoLiIpO2Zvcih2YXIgYT0wO2E8ZTthKyspe2Zvcih2YXIgcj1bXSxzPTA7czxuO3MrKylyLnB1c2godFtpXSksaSs9MTtvLnB1c2gocil9cmV0dXJuIG99O3ZhciBuQ3Q9X08mJl9PLl9faW1wb3J0U3Rhcnx8ZnVuY3Rpb24odCl7aWYodCYmdC5fX2VzTW9kdWxlKXJldHVybiB0O3ZhciBlPXt9O2lmKG51bGwhPXQpZm9yKHZhciBuIGluIHQpT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmKGVbbl09dFtuXSk7cmV0dXJuIGUuZGVmYXVsdD10LGV9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShGX3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvQ3Q9bkN0KExfdCk7ZnVuY3Rpb24gaUN0KHQsZSl7dmFyIG49ZnVuY3Rpb24obil7cmV0dXJuIG9DdC5lbXB0eSh0KS5tYXAoKGZ1bmN0aW9uKCl7cmV0dXJuIG9DdC5maWxsZWQoZSxuKX0pKX0sbz1bXTtyZXR1cm4gby5wdXNoKG4oLTEpKSxvLnB1c2gobigxLzApKSxvLnB1c2gobigwKSksb31mdW5jdGlvbiBhQ3QodCxlLG4sbyxpKXtlPU1hdGguZmxvb3IoZSk7dmFyIGE9dFswXVtlXTtpZihuPj10WzFdW2VdWzBdKXJldHVybiAwO2Zvcih2YXIgcj0wO3I8YS5sZW5ndGg7cisrKWlmKG89PT1hW3JdKXJldHVybiAwO3JldHVybiByQ3QodCxlLG4sbyxpKX1mdW5jdGlvbiByQ3QodCxlLG4sbyxpKXt2YXIgYT10WzBdW2VdLHI9dFsxXVtlXSxzPXRbMl1bZV07aWYobj49clswXSlyZXR1cm4gMDtyWzBdPW4sYVswXT1vLHNbMF09aTtmb3IodmFyIGw9MCxjPTA7Oyl7dmFyIGQ9MipsKzEscD1kKzEsbT10WzBdWzBdLmxlbmd0aDtpZihkPj1tKWJyZWFrO2lmKHA+PW0pe2lmKCEocltkXT5uKSlicmVhaztjPWR9ZWxzZSBpZihyW2RdPj1yW3BdKXtpZighKG48cltkXSkpYnJlYWs7Yz1kfWVsc2V7aWYoIShuPHJbcF0pKWJyZWFrO2M9cH1yW2xdPXJbY10sYVtsXT1hW2NdLHNbbF09c1tjXSxsPWN9cmV0dXJuIHJbbF09bixhW2xdPW8sc1tsXT1pLDF9ZnVuY3Rpb24gc0N0KHQsZSxuLG8pe2Zvcig7MipvKzE8bjspe3ZhciBpPTIqbysxLGE9aSsxLHI9bztpZih0W3JdPHRbaV0mJihyPWkpLGE8biYmdFtyXTx0W2FdJiYocj1hKSxyPT09bylicmVhazt2YXIgcz10W29dO3Rbb109dFtyXSx0W3JdPXM7dmFyIGw9ZVtvXTtlW29dPWVbcl0sZVtyXT1sLG89cn19Rl90Lm1ha2VIZWFwPWlDdCxGX3QucmVqZWN0aW9uU2FtcGxlPWZ1bmN0aW9uIGxDdCh0LGUsbil7Zm9yKHZhciBvPW9DdC56ZXJvcyh0KSxpPTA7aTx0O2krKyl7Zm9yKHZhciBhPSEwLHI9MDthOyl7cj1vQ3QudGF1UmFuZEludChlLG4pO2Zvcih2YXIgcz0hMSxsPTA7bDxpO2wrKylpZihyPT09b1tsXSl7cz0hMDticmVha31zfHwoYT0hMSl9b1tpXT1yfXJldHVybiBvfSxGX3QuaGVhcFB1c2g9YUN0LEZfdC51bmNoZWNrZWRIZWFwUHVzaD1yQ3QsRl90LmJ1aWxkQ2FuZGlkYXRlcz1mdW5jdGlvbiBjQ3QodCxlLG4sbyxpKXtmb3IodmFyIGE9aUN0KGUsbykscj0wO3I8ZTtyKyspZm9yKHZhciBzPTA7czxuO3MrKylpZighKHRbMF1bcl1bc108MCkpe3ZhciBsPXRbMF1bcl1bc10sYz10WzJdW3JdW3NdLGQ9b0N0LnRhdVJhbmQoaSk7YUN0KGEscixkLGwsYyksYUN0KGEsbCxkLHIsYyksdFsyXVtyXVtzXT0wfXJldHVybiBhfSxGX3QuZGVoZWFwU29ydD1mdW5jdGlvbiBkQ3QodCl7Zm9yKHZhciBlPXRbMF0sbj10WzFdLG89MDtvPGUubGVuZ3RoO28rKylmb3IodmFyIGk9ZVtvXSxhPW5bb10scj0wO3I8aS5sZW5ndGgtMTtyKyspe3ZhciBzPWkubGVuZ3RoLXItMSxsPWEubGVuZ3RoLXItMSxjPWlbMF07aVswXT1pW3NdLGlbc109Yzt2YXIgZD1hWzBdO2FbMF09YVtsXSxhW2xdPWQsc0N0KGEsaSxsLDApfXJldHVybntpbmRpY2VzOmUsd2VpZ2h0czpufX0sRl90LnNtYWxsZXN0RmxhZ2dlZD1mdW5jdGlvbiBwQ3QodCxlKXtmb3IodmFyIG49dFswXVtlXSxvPXRbMV1bZV0saT10WzJdW2VdLGE9MS8wLHI9LTEscz0wO3M+bi5sZW5ndGg7cysrKTE9PT1pW3NdJiZvW3NdPGEmJihhPW9bc10scj1zKTtyZXR1cm4gcj49MD8oaVtyXT0wLE1hdGguZmxvb3IobltyXSkpOi0xfTt2YXIgbUN0LGZDdD17fSx1Q3Q9X08mJl9PLl9fcmVhZHx8ZnVuY3Rpb24odCxlKXt2YXIgbj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl07aWYoIW4pcmV0dXJuIHQ7dmFyIG8saSxhPW4uY2FsbCh0KSxyPVtdO3RyeXtmb3IoOyh2b2lkIDA9PT1lfHxlLS0gPjApJiYhKG89YS5uZXh0KCkpLmRvbmU7KXIucHVzaChvLnZhbHVlKX1jYXRjaCh0KXtpPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtvJiYhby5kb25lJiYobj1hLnJldHVybikmJm4uY2FsbChhKX1maW5hbGx5e2lmKGkpdGhyb3cgaS5lcnJvcn19cmV0dXJuIHJ9LGdDdD1fTyYmX08uX192YWx1ZXN8fGZ1bmN0aW9uKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXSxuPTA7cmV0dXJuIGU/ZS5jYWxsKHQpOntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHQmJm4+PXQubGVuZ3RoJiYodD12b2lkIDApLHt2YWx1ZTp0JiZ0W24rK10sZG9uZTohdH19fX0saEN0PV9PJiZfTy5fX2ltcG9ydFN0YXJ8fGZ1bmN0aW9uKHQpe2lmKHQmJnQuX19lc01vZHVsZSlyZXR1cm4gdDt2YXIgZT17fTtpZihudWxsIT10KWZvcih2YXIgbiBpbiB0KU9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pO3JldHVybiBlLmRlZmF1bHQ9dCxlfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZkN0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgYkN0PWhDdChMX3QpLHlDdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuLG8pe2lmKHRoaXMuZW50cmllcz1uZXcgTWFwLHRoaXMublJvd3M9MCx0aGlzLm5Db2xzPTAsdC5sZW5ndGghPT1lLmxlbmd0aHx8dC5sZW5ndGghPT1uLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoInJvd3MsIGNvbHMgYW5kIHZhbHVlcyBhcnJheXMgbXVzdCBhbGwgaGF2ZSB0aGUgc2FtZSBsZW5ndGgiKTt0aGlzLm5Sb3dzPW9bMF0sdGhpcy5uQ29scz1vWzFdO2Zvcih2YXIgaT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgYT10W2ldLHI9ZVtpXTt0aGlzLmNoZWNrRGltcyhhLHIpO3ZhciBzPXRoaXMubWFrZUtleShhLHIpO3RoaXMuZW50cmllcy5zZXQocyx7dmFsdWU6bltpXSxyb3c6YSxjb2w6cn0pfX1yZXR1cm4gdC5wcm90b3R5cGUubWFrZUtleT1mdW5jdGlvbih0LGUpe3JldHVybiB0KyI6IitlfSx0LnByb3RvdHlwZS5jaGVja0RpbXM9ZnVuY3Rpb24odCxlKXtpZighKHQ8dGhpcy5uUm93cyYmZTx0aGlzLm5Db2xzKSl0aHJvdyBuZXcgRXJyb3IoInJvdyBhbmQvb3IgY29sIHNwZWNpZmllZCBvdXRzaWRlIG9mIG1hdHJpeCBkaW1lbnNpb25zIil9LHQucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LGUsbil7dGhpcy5jaGVja0RpbXModCxlKTt2YXIgbz10aGlzLm1ha2VLZXkodCxlKTt0aGlzLmVudHJpZXMuaGFzKG8pP3RoaXMuZW50cmllcy5nZXQobykudmFsdWU9bjp0aGlzLmVudHJpZXMuc2V0KG8se3ZhbHVlOm4scm93OnQsY29sOmV9KX0sdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQsZSxuKXt2b2lkIDA9PT1uJiYobj0wKSx0aGlzLmNoZWNrRGltcyh0LGUpO3ZhciBvPXRoaXMubWFrZUtleSh0LGUpO3JldHVybiB0aGlzLmVudHJpZXMuaGFzKG8pP3RoaXMuZW50cmllcy5nZXQobykudmFsdWU6bn0sdC5wcm90b3R5cGUuZ2V0QWxsPWZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQmJih0PSEwKTt2YXIgZT1bXTtyZXR1cm4gdGhpcy5lbnRyaWVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe2UucHVzaCh0KX0pKSx0JiZlLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQucm93PT09ZS5yb3c/dC5jb2wtZS5jb2w6dC5yb3ctZS5yb3d9KSksZX0sdC5wcm90b3R5cGUuZ2V0RGltcz1mdW5jdGlvbigpe3JldHVyblt0aGlzLm5Sb3dzLHRoaXMubkNvbHNdfSx0LnByb3RvdHlwZS5nZXRSb3dzPWZ1bmN0aW9uKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5lbnRyaWVzLChmdW5jdGlvbih0KXt2YXIgZT11Q3QodCwyKTtyZXR1cm4gZVsxXS5yb3d9KSl9LHQucHJvdG90eXBlLmdldENvbHM9ZnVuY3Rpb24oKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmVudHJpZXMsKGZ1bmN0aW9uKHQpe3ZhciBlPXVDdCh0LDIpO3JldHVybiBlWzFdLmNvbH0pKX0sdC5wcm90b3R5cGUuZ2V0VmFsdWVzPWZ1bmN0aW9uKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5lbnRyaWVzLChmdW5jdGlvbih0KXt2YXIgZT11Q3QodCwyKTtyZXR1cm4gZVsxXS52YWx1ZX0pKX0sdC5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbih0KXt0aGlzLmVudHJpZXMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQoZS52YWx1ZSxlLnJvdyxlLmNvbCl9KSl9LHQucHJvdG90eXBlLm1hcD1mdW5jdGlvbihlKXt2YXIgbj1bXTt0aGlzLmVudHJpZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7bi5wdXNoKGUodC52YWx1ZSx0LnJvdyx0LmNvbCkpfSkpO3ZhciBvPVt0aGlzLm5Sb3dzLHRoaXMubkNvbHNdO3JldHVybiBuZXcgdCh0aGlzLmdldFJvd3MoKSx0aGlzLmdldENvbHMoKSxuLG8pfSx0LnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPWJDdC5lbXB0eSh0aGlzLm5Sb3dzKS5tYXAoKGZ1bmN0aW9uKCl7cmV0dXJuIGJDdC56ZXJvcyh0Lm5Db2xzKX0pKTtyZXR1cm4gdGhpcy5lbnRyaWVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe2VbdC5yb3ddW3QuY29sXT10LnZhbHVlfSkpLGV9LHR9KSgpO2ZDdC5TcGFyc2VNYXRyaXg9eUN0LGZDdC50cmFuc3Bvc2U9ZnVuY3Rpb24gX0N0KHQpe3ZhciBlPVtdLG49W10sbz1bXTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0LGksYSl7ZS5wdXNoKGkpLG4ucHVzaChhKSxvLnB1c2godCl9KSksbmV3IHlDdChuLGUsbyxbdC5uQ29scyx0Lm5Sb3dzXSl9LGZDdC5pZGVudGl0eT1mdW5jdGlvbiBDQ3QodCl7Zm9yKHZhciBlPXVDdCh0LDEpWzBdLG49bmV3IHlDdChbXSxbXSxbXSx0KSxvPTA7bzxlO28rKyluLnNldChvLG8sMSk7cmV0dXJuIG59LGZDdC5wYWlyd2lzZU11bHRpcGx5PWZ1bmN0aW9uIE1DdCh0LGUpe3JldHVybiBEQ3QodCxlLChmdW5jdGlvbih0LGUpe3JldHVybiB0KmV9KSl9LGZDdC5hZGQ9ZnVuY3Rpb24gdkN0KHQsZSl7cmV0dXJuIERDdCh0LGUsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0pKX0sZkN0LnN1YnRyYWN0PWZ1bmN0aW9uIHhDdCh0LGUpe3JldHVybiBEQ3QodCxlLChmdW5jdGlvbih0LGUpe3JldHVybiB0LWV9KSl9LGZDdC5tYXhpbXVtPWZ1bmN0aW9uIE9DdCh0LGUpe3JldHVybiBEQ3QodCxlLChmdW5jdGlvbih0LGUpe3JldHVybiB0PmU/dDplfSkpfSxmQ3QubXVsdGlwbHlTY2FsYXI9ZnVuY3Rpb24gUEN0KHQsZSl7cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdCplfSkpfSxmQ3QuZWxpbWluYXRlWmVyb3M9ZnVuY3Rpb24gd0N0KHQpe2Zvcih2YXIgZT1uZXcgU2V0LG49dC5nZXRWYWx1ZXMoKSxvPXQuZ2V0Um93cygpLGk9dC5nZXRDb2xzKCksYT0wO2E8bi5sZW5ndGg7YSsrKTA9PT1uW2FdJiZlLmFkZChhKTt2YXIgcj1mdW5jdGlvbih0LG4pe3JldHVybiFlLmhhcyhuKX0scz1uLmZpbHRlcihyKSxsPW8uZmlsdGVyKHIpLGM9aS5maWx0ZXIocik7cmV0dXJuIG5ldyB5Q3QobCxjLHMsdC5nZXREaW1zKCkpfSxmQ3Qubm9ybWFsaXplPWZ1bmN0aW9uIGtDdCh0LGUpe3ZhciBuLG87dm9pZCAwPT09ZSYmKGU9ImwyIik7dmFyIGk9U0N0W2VdLGE9bmV3IE1hcDt0LmZvckVhY2goKGZ1bmN0aW9uKHQsZSxuKXt2YXIgbz1hLmdldChlKXx8W107by5wdXNoKG4pLGEuc2V0KGUsbyl9KSk7dmFyIHI9bmV3IHlDdChbXSxbXSxbXSx0LmdldERpbXMoKSkscz1mdW5jdGlvbihlKXtmb3IodmFyIG49YS5nZXQoZSkuc29ydCgpLG89bi5tYXAoKGZ1bmN0aW9uKG4pe3JldHVybiB0LmdldChlLG4pfSkpLHM9aShvKSxsPTA7bDxzLmxlbmd0aDtsKyspci5zZXQoZSxuW2xdLHNbbF0pfTt0cnl7Zm9yKHZhciBsPWdDdChhLmtleXMoKSksYz1sLm5leHQoKTshYy5kb25lO2M9bC5uZXh0KCkpe3MoYy52YWx1ZSl9fWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2MmJiFjLmRvbmUmJihvPWwucmV0dXJuKSYmby5jYWxsKGwpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX1yZXR1cm4gcn07dmFyIFNDdD0oKG1DdD17fSkubWF4PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0tMS8wLG49MDtuPHQubGVuZ3RoO24rKyllPXRbbl0+ZT90W25dOmU7cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC9lfSkpfSxtQ3QubDE9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAsbj0wO248dC5sZW5ndGg7bisrKWUrPXRbbl07cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC9lfSkpfSxtQ3QubDI9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAsbj0wO248dC5sZW5ndGg7bisrKWUrPU1hdGgucG93KHRbbl0sMik7cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5zcXJ0KE1hdGgucG93KHQsMikvZSl9KSl9LG1DdCk7ZnVuY3Rpb24gREN0KHQsZSxuKXtmb3IodmFyIG89bmV3IFNldCxpPVtdLGE9W10scj1bXSxzPWZ1bmN0aW9uKG8scyl7aS5wdXNoKG8pLGEucHVzaChzKTt2YXIgbD1uKHQuZ2V0KG8scyksZS5nZXQobyxzKSk7ci5wdXNoKGwpfSxsPXQuZ2V0VmFsdWVzKCksYz10LmdldFJvd3MoKSxkPXQuZ2V0Q29scygpLHA9MDtwPGwubGVuZ3RoO3ArKyl7by5hZGQoKGc9Y1twXSkrIjoiKyhoPWRbcF0pKSxzKGcsaCl9dmFyIG09ZS5nZXRWYWx1ZXMoKSxmPWUuZ2V0Um93cygpLHU9ZS5nZXRDb2xzKCk7Zm9yKHA9MDtwPG0ubGVuZ3RoO3ArKyl7dmFyIGcsaDtvLmhhcygoZz1mW3BdKSsiOiIrKGg9dVtwXSkpfHxzKGcsaCl9cmV0dXJuIG5ldyB5Q3QoaSxhLHIsW3QublJvd3MsdC5uQ29sc10pfWZDdC5nZXRDU1I9ZnVuY3Rpb24gUkN0KHQpe3ZhciBlPVtdO3QuZm9yRWFjaCgoZnVuY3Rpb24odCxuLG8pe2UucHVzaCh7dmFsdWU6dCxyb3c6bixjb2w6b30pfSkpLGUuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5yb3c9PT1lLnJvdz90LmNvbC1lLmNvbDp0LnJvdy1lLnJvd30pKTtmb3IodmFyIG49W10sbz1bXSxpPVtdLGE9LTEscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgcz1lW3JdLGw9cy5yb3csYz1zLmNvbCxkPXMudmFsdWU7bCE9PWEmJihhPWwsaS5wdXNoKHIpKSxuLnB1c2goYyksby5wdXNoKGQpfXJldHVybntpbmRpY2VzOm4sdmFsdWVzOm8saW5kcHRyOml9fTt2YXIgRUN0PXt9LEFDdD17fSxUQ3Q9X08mJl9PLl9fcmVhZHx8ZnVuY3Rpb24odCxlKXt2YXIgbj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl07aWYoIW4pcmV0dXJuIHQ7dmFyIG8saSxhPW4uY2FsbCh0KSxyPVtdO3RyeXtmb3IoOyh2b2lkIDA9PT1lfHxlLS0gPjApJiYhKG89YS5uZXh0KCkpLmRvbmU7KXIucHVzaChvLnZhbHVlKX1jYXRjaCh0KXtpPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtvJiYhby5kb25lJiYobj1hLnJldHVybikmJm4uY2FsbChhKX1maW5hbGx5e2lmKGkpdGhyb3cgaS5lcnJvcn19cmV0dXJuIHJ9LE5DdD1fTyYmX08uX19zcHJlYWR8fGZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXQ9dC5jb25jYXQoVEN0KGFyZ3VtZW50c1tlXSkpO3JldHVybiB0fSx6Q3Q9X08mJl9PLl9fdmFsdWVzfHxmdW5jdGlvbih0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl0sbj0wO3JldHVybiBlP2UuY2FsbCh0KTp7bmV4dDpmdW5jdGlvbigpe3JldHVybiB0JiZuPj10Lmxlbmd0aCYmKHQ9dm9pZCAwKSx7dmFsdWU6dCYmdFtuKytdLGRvbmU6IXR9fX19LElDdD1fTyYmX08uX19pbXBvcnRTdGFyfHxmdW5jdGlvbih0KXtpZih0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGU9e307aWYobnVsbCE9dClmb3IodmFyIG4gaW4gdClPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pJiYoZVtuXT10W25dKTtyZXR1cm4gZS5kZWZhdWx0PXQsZX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEFDdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEhDdD1JQ3QoTF90KSxGQ3Q9ZnVuY3Rpb24gRkN0KHQsZSxuLG8pe3RoaXMuaHlwZXJwbGFuZXM9dCx0aGlzLm9mZnNldHM9ZSx0aGlzLmNoaWxkcmVuPW4sdGhpcy5pbmRpY2VzPW99O2Z1bmN0aW9uIExDdCh0LGUsbixvLGkpe2lmKHZvaWQgMD09PW4mJihuPTMwKSxlLmxlbmd0aD5uKXt2YXIgYT0oZnVuY3Rpb24gcih0LGUsbil7Zm9yKHZhciBvPXRbMF0ubGVuZ3RoLGk9SEN0LnRhdVJhbmRJbnQoZS5sZW5ndGgsbiksYT1IQ3QudGF1UmFuZEludChlLmxlbmd0aCxuKSxyPWVbaV0scz1lW2E9KGErPWk9PT1hPzE6MCklZS5sZW5ndGhdLGw9MCxjPUhDdC56ZXJvcyhvKSxkPTA7ZDxjLmxlbmd0aDtkKyspY1tkXT10W3JdW2RdLXRbc11bZF0sbC09Y1tkXSoodFtyXVtkXSt0W3NdW2RdKS8yO3ZhciBwPTAsbT0wLGY9SEN0Lnplcm9zKGUubGVuZ3RoKTtmb3IoZD0wO2Q8ZS5sZW5ndGg7ZCsrKXtmb3IodmFyIHU9bCxnPTA7ZzxvO2crKyl1Kz1jW2ddKnRbZVtkXV1bZ107MD09PXU/KGZbZF09SEN0LnRhdVJhbmRJbnQoMixuKSwwPT09ZltkXT9wKz0xOm0rPTEpOnU+MD8oZltkXT0wLHArPTEpOihmW2RdPTEsbSs9MSl9dmFyIGg9SEN0Lnplcm9zKHApLGI9SEN0Lnplcm9zKG0pO3A9MCxtPTA7Zm9yKGQ9MDtkPGYubGVuZ3RoO2QrKykwPT09ZltkXT8oaFtwXT1lW2RdLHArPTEpOihiW21dPWVbZF0sbSs9MSk7cmV0dXJue2luZGljZXNMZWZ0OmgsaW5kaWNlc1JpZ2h0OmIsaHlwZXJwbGFuZTpjLG9mZnNldDpsfX0pKHQsZSxpKSxzPWEuaW5kaWNlc1JpZ2h0LGw9YS5oeXBlcnBsYW5lLGM9YS5vZmZzZXQ7cmV0dXJue2xlZnRDaGlsZDpMQ3QodCxhLmluZGljZXNMZWZ0LG4sbysxLGkpLHJpZ2h0Q2hpbGQ6TEN0KHQscyxuLG8rMSxpKSxpc0xlYWY6ITEsaHlwZXJwbGFuZTpsLG9mZnNldDpjfX1yZXR1cm57aW5kaWNlczplLGlzTGVhZjohMH19ZnVuY3Rpb24gQkN0KHQsZSxuLG8saSxhLHIpe3ZhciBzO2lmKHQuaXNMZWFmKXJldHVybiBvW2FdWzBdPS1yLChzPWlbcl0pLnNwbGljZS5hcHBseShzLE5DdChbMCx0LmluZGljZXMubGVuZ3RoXSx0LmluZGljZXMpKSx7bm9kZU51bTphLGxlYWZOdW06cis9MX07ZVthXT10Lmh5cGVycGxhbmUsblthXT10Lm9mZnNldCxvW2FdWzBdPWErMTt2YXIgbD1hLGM9QkN0KHQubGVmdENoaWxkLGUsbixvLGksYSsxLHIpO3JldHVybiByPWMubGVhZk51bSxvW2xdWzFdPShhPWMubm9kZU51bSkrMSx7bm9kZU51bTooYz1CQ3QodC5yaWdodENoaWxkLGUsbixvLGksYSsxLHIpKS5ub2RlTnVtLGxlYWZOdW06Yy5sZWFmTnVtfX1mdW5jdGlvbiBWQ3QodCl7cmV0dXJuIHQuaXNMZWFmPzE6MStWQ3QodC5sZWZ0Q2hpbGQpK1ZDdCh0LnJpZ2h0Q2hpbGQpfWZ1bmN0aW9uIGpDdCh0KXtyZXR1cm4gdC5pc0xlYWY/MTpqQ3QodC5sZWZ0Q2hpbGQpK2pDdCh0LnJpZ2h0Q2hpbGQpfWZ1bmN0aW9uIFVDdCh0LGUsbixvKXtmb3IodmFyIGk9ZSxhPTA7YTxuLmxlbmd0aDthKyspaSs9dFthXSpuW2FdO3JldHVybiAwPT09aT9IQ3QudGF1UmFuZEludCgyLG8pOmk+MD8wOjF9QUN0LkZsYXRUcmVlPUZDdCxBQ3QubWFrZUZvcmVzdD1mdW5jdGlvbiBXQ3QodCxlLG4sbyl7dmFyIGk9TWF0aC5tYXgoMTAsZSk7cmV0dXJuIEhDdC5yYW5nZShuKS5tYXAoKGZ1bmN0aW9uKGUsbil7cmV0dXJuKGZ1bmN0aW9uIGEodCxlLG4sbyl7dm9pZCAwPT09ZSYmKGU9MzApO3ZhciBpPUhDdC5yYW5nZSh0Lmxlbmd0aCk7cmV0dXJuIExDdCh0LGksZSxuLG8pfSkodCxpLG4sbyl9KSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4oZnVuY3Rpb24gZSh0LG4pe3ZhciBvPVZDdCh0KSxpPWpDdCh0KSxhPUhDdC5yYW5nZShvKS5tYXAoKGZ1bmN0aW9uKCl7cmV0dXJuIEhDdC56ZXJvcyh0Lmh5cGVycGxhbmU/dC5oeXBlcnBsYW5lLmxlbmd0aDowKX0pKSxyPUhDdC56ZXJvcyhvKSxzPUhDdC5yYW5nZShvKS5tYXAoKGZ1bmN0aW9uKCl7cmV0dXJuWy0xLC0xXX0pKSxsPUhDdC5yYW5nZShpKS5tYXAoKGZ1bmN0aW9uKCl7cmV0dXJuIEhDdC5yYW5nZShuKS5tYXAoKGZ1bmN0aW9uKCl7cmV0dXJuLTF9KSl9KSk7cmV0dXJuIEJDdCh0LGEscixzLGwsMCwwKSxuZXcgRkN0KGEscixzLGwpfSkodCxpKX0pKX0sQUN0Lm1ha2VMZWFmQXJyYXk9ZnVuY3Rpb24gR0N0KHQpe3ZhciBlLG47aWYodC5sZW5ndGg+MCl7dmFyIG89W107dHJ5e2Zvcih2YXIgaT16Q3QodCksYT1pLm5leHQoKTshYS5kb25lO2E9aS5uZXh0KCkpe28ucHVzaC5hcHBseShvLE5DdChhLnZhbHVlLmluZGljZXMpKX19Y2F0Y2godCl7ZT17ZXJyb3I6dH19ZmluYWxseXt0cnl7YSYmIWEuZG9uZSYmKG49aS5yZXR1cm4pJiZuLmNhbGwoaSl9ZmluYWxseXtpZihlKXRocm93IGUuZXJyb3J9fXJldHVybiBvfXJldHVybltbLTFdXX0sQUN0LnNlYXJjaEZsYXRUcmVlPWZ1bmN0aW9uIFlDdCh0LGUsbil7Zm9yKHZhciBvPTA7ZS5jaGlsZHJlbltvXVswXT4wOyl7bz0wPT09VUN0KGUuaHlwZXJwbGFuZXNbb10sZS5vZmZzZXRzW29dLHQsbik/ZS5jaGlsZHJlbltvXVswXTplLmNoaWxkcmVuW29dWzFdfXJldHVybiBlLmluZGljZXNbLTEqZS5jaGlsZHJlbltvXVswXV19O3ZhciBxQ3Q9X08mJl9PLl9fdmFsdWVzfHxmdW5jdGlvbih0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl0sbj0wO3JldHVybiBlP2UuY2FsbCh0KTp7bmV4dDpmdW5jdGlvbigpe3JldHVybiB0JiZuPj10Lmxlbmd0aCYmKHQ9dm9pZCAwKSx7dmFsdWU6dCYmdFtuKytdLGRvbmU6IXR9fX19LFpDdD1fTyYmX08uX19pbXBvcnRTdGFyfHxmdW5jdGlvbih0KXtpZih0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGU9e307aWYobnVsbCE9dClmb3IodmFyIG4gaW4gdClPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pJiYoZVtuXT10W25dKTtyZXR1cm4gZS5kZWZhdWx0PXQsZX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEVDdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFhDdD1aQ3QoRl90KSxLQ3Q9WkN0KGZDdCksSkN0PVpDdChBQ3QpLFFDdD1aQ3QoTF90KTtFQ3QubWFrZU5ORGVzY2VudD1mdW5jdGlvbiAkQ3QodCxlKXtyZXR1cm4gZnVuY3Rpb24gbihvLGksYSxyLHMsbCxjLGQpe3ZvaWQgMD09PXImJihyPTEwKSx2b2lkIDA9PT1zJiYocz01MCksdm9pZCAwPT09bCYmKGw9LjAwMSksdm9pZCAwPT09YyYmKGM9LjUpLHZvaWQgMD09PWQmJihkPSEwKTtmb3IodmFyIHA9by5sZW5ndGgsbT1YQ3QubWFrZUhlYXAoby5sZW5ndGgsYSksZj0wO2Y8by5sZW5ndGg7ZisrKWZvcih2YXIgdT1YQ3QucmVqZWN0aW9uU2FtcGxlKGEsby5sZW5ndGgsZSksZz0wO2c8dS5sZW5ndGg7ZysrKXt2YXIgaD10KG9bZl0sb1t1W2ddXSk7WEN0LmhlYXBQdXNoKG0sZixoLHVbZ10sMSksWEN0LmhlYXBQdXNoKG0sdVtnXSxoLGYsMSl9aWYoZClmb3IodmFyIGI9MDtiPGkubGVuZ3RoO2IrKylmb3IoZj0wO2Y8aVtiXS5sZW5ndGgmJiEoaVtiXVtmXTwwKTtmKyspZm9yKGc9ZisxO2c8aVtiXS5sZW5ndGgmJiEoaVtiXVtnXTwwKTtnKyspe2g9dChvW2lbYl1bZl1dLG9baVtiXVtnXV0pO1hDdC5oZWFwUHVzaChtLGlbYl1bZl0saCxpW2JdW2ddLDEpLFhDdC5oZWFwUHVzaChtLGlbYl1bZ10saCxpW2JdW2ZdLDEpfWZvcihiPTA7YjxyO2IrKyl7dmFyIHk9WEN0LmJ1aWxkQ2FuZGlkYXRlcyhtLHAsYSxzLGUpLF89MDtmb3IoZj0wO2Y8cDtmKyspZm9yKGc9MDtnPHM7ZysrKXt2YXIgQz1NYXRoLmZsb29yKHlbMF1bZl1bZ10pO2lmKCEoQzwwfHxRQ3QudGF1UmFuZChlKTxjKSlmb3IodmFyIE09MDtNPHM7TSsrKXt2YXIgdj1NYXRoLmZsb29yKHlbMF1bZl1bTV0pO2lmKCEodjwwfHwheVsyXVtmXVtnXSYmIXlbMl1bZl1bTV0pKXtoPXQob1tDXSxvW3ZdKTtfKz1YQ3QuaGVhcFB1c2gobSxDLGgsdiwxKSxfKz1YQ3QuaGVhcFB1c2gobSx2LGgsQywxKX19fWlmKF88PWwqYSpvLmxlbmd0aClicmVha31yZXR1cm4gWEN0LmRlaGVhcFNvcnQobSl9fSxFQ3QubWFrZUluaXRpYWxpemF0aW9ucz1mdW5jdGlvbiB0TXQodCl7cmV0dXJue2luaXRGcm9tUmFuZG9tOmZ1bmN0aW9uIGUobixvLGksYSxyKXtmb3IodmFyIHM9MDtzPGkubGVuZ3RoO3MrKylmb3IodmFyIGw9UUN0LnJlamVjdGlvblNhbXBsZShuLG8ubGVuZ3RoLHIpLGM9MDtjPGwubGVuZ3RoO2MrKylpZighKGxbY108MCkpe3ZhciBkPXQob1tsW2NdXSxpW3NdKTtYQ3QuaGVhcFB1c2goYSxzLGQsbFtjXSwxKX19LGluaXRGcm9tVHJlZTpmdW5jdGlvbiBuKGUsbyxpLGEscil7Zm9yKHZhciBzPTA7czxpLmxlbmd0aDtzKyspZm9yKHZhciBsPUpDdC5zZWFyY2hGbGF0VHJlZShpW3NdLGUsciksYz0wO2M8bC5sZW5ndGg7YysrKXtpZihsW2NdPDApcmV0dXJuO3ZhciBkPXQob1tsW2NdXSxpW3NdKTtYQ3QuaGVhcFB1c2goYSxzLGQsbFtjXSwxKX19fX0sRUN0Lm1ha2VJbml0aWFsaXplZE5OU2VhcmNoPWZ1bmN0aW9uIGVNdCh0KXtyZXR1cm4gZnVuY3Rpb24gZShuLG8saSxhKXtmb3IodmFyIHIscyxsPUtDdC5nZXRDU1IobyksYz1sLmluZGljZXMsZD1sLmluZHB0cixwPTA7cDxhLmxlbmd0aDtwKyspZm9yKHZhciBtPW5ldyBTZXQoaVswXVtwXSk7Oyl7dmFyIGY9WEN0LnNtYWxsZXN0RmxhZ2dlZChpLHApO2lmKC0xPT09ZilicmVhazt2YXIgdT1jLnNsaWNlKGRbZl0sZFtmKzFdKTt0cnl7Zm9yKHZhciBnPXFDdCh1KSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGI9aC52YWx1ZTtpZihiIT09ZiYmLTEhPT1iJiYhbS5oYXMoYikpe3ZhciB5PXQobltiXSxhW3BdKTtYQ3QudW5jaGVja2VkSGVhcFB1c2goaSxwLHksYiwxKSxtLmFkZChiKX19fWNhdGNoKHQpe3I9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2gmJiFoLmRvbmUmJihzPWcucmV0dXJuKSYmcy5jYWxsKGcpfWZpbmFsbHl7aWYocil0aHJvdyByLmVycm9yfX19cmV0dXJuIGl9fSxFQ3QuaW5pdGlhbGl6ZVNlYXJjaD1mdW5jdGlvbiBuTXQodCxlLG4sbyxpLGEscil7dmFyIHMsbCxjPVhDdC5tYWtlSGVhcChuLmxlbmd0aCxvKTtpZihpKG8sZSxuLGMsciksdCl0cnl7Zm9yKHZhciBkPXFDdCh0KSxwPWQubmV4dCgpOyFwLmRvbmU7cD1kLm5leHQoKSl7YShwLnZhbHVlLGUsbixjLHIpfX1jYXRjaCh0KXtzPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtwJiYhcC5kb25lJiYobD1kLnJldHVybikmJmwuY2FsbChkKX1maW5hbGx5e2lmKHMpdGhyb3cgcy5lcnJvcn19cmV0dXJuIGN9O2NvbnN0IG9NdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIGlNdCh0KXtyZXR1cm4gb010LmNhbGwodCkuZW5kc1dpdGgoIkFycmF5XSIpfWZ1bmN0aW9uIGFNdCh0LGUsbil7bGV0IG89MDtjb25zdCBpPW4oZSk7Zm9yKGxldCBlPTA7ZTx0LngubGVuZ3RoO2UrKylvKz1NYXRoLmFicyh0LnlbZV0taSh0LnhbZV0pKTtyZXR1cm4gb31jb25zdCByTXQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBzTXQodCl7cmV0dXJuIHJNdC5jYWxsKHQpLmVuZHNXaXRoKCJBcnJheV0iKX1mdW5jdGlvbiBsTXQodCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O2lmKCFzTXQodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW5wdXQgbXVzdCBiZSBhbiBhcnJheSIpO2lmKDA9PT10Lmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnB1dCBtdXN0IG5vdCBiZSBlbXB0eSIpO3ZhciBuPWUuZnJvbUluZGV4LG89dm9pZCAwPT09bj8wOm4saT1lLnRvSW5kZXgsYT12b2lkIDA9PT1pP3QubGVuZ3RoOmk7aWYobzwwfHxvPj10Lmxlbmd0aHx8IU51bWJlci5pc0ludGVnZXIobykpdGhyb3cgbmV3IEVycm9yKCJmcm9tSW5kZXggbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIgc21hbGxlciB0aGFuIGxlbmd0aCIpO2lmKGE8PW98fGE+dC5sZW5ndGh8fCFOdW1iZXIuaXNJbnRlZ2VyKGEpKXRocm93IG5ldyBFcnJvcigidG9JbmRleCBtdXN0IGJlIGFuIGludGVnZXIgZ3JlYXRlciB0aGFuIGZyb21JbmRleCBhbmQgYXQgbW9zdCBlcXVhbCB0byBsZW5ndGgiKTtmb3IodmFyIHI9dFtvXSxzPW8rMTtzPGE7cysrKXRbc10+ciYmKHI9dFtzXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gY010KHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtpZighc010KHQpKXRocm93IG5ldyBUeXBlRXJyb3IoImlucHV0IG11c3QgYmUgYW4gYXJyYXkiKTtpZigwPT09dC5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW5wdXQgbXVzdCBub3QgYmUgZW1wdHkiKTt2YXIgbj1lLmZyb21JbmRleCxvPXZvaWQgMD09PW4/MDpuLGk9ZS50b0luZGV4LGE9dm9pZCAwPT09aT90Lmxlbmd0aDppO2lmKG88MHx8bz49dC5sZW5ndGh8fCFOdW1iZXIuaXNJbnRlZ2VyKG8pKXRocm93IG5ldyBFcnJvcigiZnJvbUluZGV4IG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyIHNtYWxsZXIgdGhhbiBsZW5ndGgiKTtpZihhPD1vfHxhPnQubGVuZ3RofHwhTnVtYmVyLmlzSW50ZWdlcihhKSl0aHJvdyBuZXcgRXJyb3IoInRvSW5kZXggbXVzdCBiZSBhbiBpbnRlZ2VyIGdyZWF0ZXIgdGhhbiBmcm9tSW5kZXggYW5kIGF0IG1vc3QgZXF1YWwgdG8gbGVuZ3RoIik7Zm9yKHZhciByPXRbb10scz1vKzE7czxhO3MrKyl0W3NdPHImJihyPXRbc10pO3JldHVybiByfWZ1bmN0aW9uIGRNdCh0KXt2YXIgZSxuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtpZighc010KHQpKXRocm93IG5ldyBUeXBlRXJyb3IoImlucHV0IG11c3QgYmUgYW4gYXJyYXkiKTtpZigwPT09dC5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW5wdXQgbXVzdCBub3QgYmUgZW1wdHkiKTtpZih2b2lkIDAhPT1uLm91dHB1dCl7aWYoIXNNdChuLm91dHB1dCkpdGhyb3cgbmV3IFR5cGVFcnJvcigib3V0cHV0IG9wdGlvbiBtdXN0IGJlIGFuIGFycmF5IGlmIHNwZWNpZmllZCIpO2U9bi5vdXRwdXR9ZWxzZSBlPW5ldyBBcnJheSh0Lmxlbmd0aCk7dmFyIG89Y010KHQpLGk9bE10KHQpO2lmKG89PT1pKXRocm93IG5ldyBSYW5nZUVycm9yKCJtaW5pbXVtIGFuZCBtYXhpbXVtIGlucHV0IHZhbHVlcyBhcmUgZXF1YWwuIENhbm5vdCByZXNjYWxlIGEgY29uc3RhbnQgYXJyYXkiKTt2YXIgYT1uLm1pbixyPXZvaWQgMD09PWE/bi5hdXRvTWluTWF4P286MDphLHM9bi5tYXgsbD12b2lkIDA9PT1zP24uYXV0b01pbk1heD9pOjE6cztpZihyPj1sKXRocm93IG5ldyBSYW5nZUVycm9yKCJtaW4gb3B0aW9uIG11c3QgYmUgc21hbGxlciB0aGFuIG1heCBvcHRpb24iKTtmb3IodmFyIGM9KGwtcikvKGktbyksZD0wO2Q8dC5sZW5ndGg7ZCsrKWVbZF09KHRbZF0tbykqYytyO3JldHVybiBlfWNvbnN0IHBNdD0iICIucmVwZWF0KDIpLG1NdD0iICIucmVwZWF0KDQpO2Z1bmN0aW9uIGZNdCh0LGU9e30pe2NvbnN0e21heFJvd3M6bj0xNSxtYXhDb2x1bW5zOm89MTAsbWF4TnVtU2l6ZTppPTh9PWU7cmV0dXJuYCR7dC5jb25zdHJ1Y3Rvci5uYW1lfSB7XG4ke3BNdH1bXG4ke21NdH0keyhmdW5jdGlvbiBhKHQsZSxuLG8pe2NvbnN0e3Jvd3M6aSxjb2x1bW5zOmF9PXQscj1NYXRoLm1pbihpLGUpLHM9TWF0aC5taW4oYSxuKSxsPVtdO2ZvcihsZXQgZT0wO2U8cjtlKyspe2xldCBuPVtdO2ZvcihsZXQgaT0wO2k8cztpKyspbi5wdXNoKHVNdCh0LmdldChlLGkpLG8pKTtsLnB1c2goYCR7bi5qb2luKCIgIil9YCl9cyE9PWEmJihsW2wubGVuZ3RoLTFdKz1gIC4uLiAke2Etbn0gbW9yZSBjb2x1bW5zYCk7ciE9PWkmJmwucHVzaChgLi4uICR7aS1lfSBtb3JlIHJvd3NgKTtyZXR1cm4gbC5qb2luKGBcbiR7bU10fWApfSkodCxuLG8saSl9XG4ke3BNdH1dXG4ke3BNdH1yb3dzOiAke3Qucm93c31cbiR7cE10fWNvbHVtbnM6ICR7dC5jb2x1bW5zfVxufWB9ZnVuY3Rpb24gdU10KHQsZSl7Y29uc3Qgbj1TdHJpbmcodCk7aWYobi5sZW5ndGg8PWUpcmV0dXJuIG4ucGFkRW5kKGUsIiAiKTtjb25zdCBvPXQudG9QcmVjaXNpb24oZS0yKTtpZihvLmxlbmd0aDw9ZSlyZXR1cm4gbztjb25zdCBpPXQudG9FeHBvbmVudGlhbChlLTIpLGE9aS5pbmRleE9mKCJlIikscj1pLnNsaWNlKGEpO3JldHVybiBpLnNsaWNlKDAsZS1yLmxlbmd0aCkrcn1mdW5jdGlvbiBnTXQodCxlLG4pe2lmKGU8MHx8ZT4obj90LnJvd3M6dC5yb3dzLTEpKXRocm93IG5ldyBSYW5nZUVycm9yKCJSb3cgaW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gaE10KHQsZSxuKXtpZihlPDB8fGU+KG4/dC5jb2x1bW5zOnQuY29sdW1ucy0xKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ29sdW1uIGluZGV4IG91dCBvZiByYW5nZSIpfWZ1bmN0aW9uIGJNdCh0LGUpe2lmKGUudG8xREFycmF5JiYoZT1lLnRvMURBcnJheSgpKSxlLmxlbmd0aCE9PXQuY29sdW1ucyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigidmVjdG9yIHNpemUgbXVzdCBiZSB0aGUgc2FtZSBhcyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMiKTtyZXR1cm4gZX1mdW5jdGlvbiB5TXQodCxlKXtpZihlLnRvMURBcnJheSYmKGU9ZS50bzFEQXJyYXkoKSksZS5sZW5ndGghPT10LnJvd3MpdGhyb3cgbmV3IFJhbmdlRXJyb3IoInZlY3RvciBzaXplIG11c3QgYmUgdGhlIHNhbWUgYXMgdGhlIG51bWJlciBvZiByb3dzIik7cmV0dXJuIGV9ZnVuY3Rpb24gX010KHQsZSl7aWYoIm9iamVjdCIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoInVuZXhwZWN0ZWQgdHlwZSBmb3Igcm93IGluZGljZXMiKTtpZihlLnNvbWUoKGU9PmU8MHx8ZT49dC5yb3dzKSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoInJvdyBpbmRpY2VzIGFyZSBvdXQgb2YgcmFuZ2UiKTtyZXR1cm4gQXJyYXkuaXNBcnJheShlKXx8KGU9QXJyYXkuZnJvbShlKSksZX1mdW5jdGlvbiBDTXQodCxlKXtpZigib2JqZWN0IiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigidW5leHBlY3RlZCB0eXBlIGZvciBjb2x1bW4gaW5kaWNlcyIpO2lmKGUuc29tZSgoZT0+ZTwwfHxlPj10LmNvbHVtbnMpKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiY29sdW1uIGluZGljZXMgYXJlIG91dCBvZiByYW5nZSIpO3JldHVybiBBcnJheS5pc0FycmF5KGUpfHwoZT1BcnJheS5mcm9tKGUpKSxlfWZ1bmN0aW9uIE1NdCh0LGUsbixvLGkpe2lmKDUhPT1hcmd1bWVudHMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJleHBlY3RlZCA0IGFyZ3VtZW50cyIpO2lmKHhNdCgic3RhcnRSb3ciLGUpLHhNdCgiZW5kUm93IixuKSx4TXQoInN0YXJ0Q29sdW1uIixvKSx4TXQoImVuZENvbHVtbiIsaSksZT5ufHxvPml8fGU8MHx8ZT49dC5yb3dzfHxuPDB8fG4+PXQucm93c3x8bzwwfHxvPj10LmNvbHVtbnN8fGk8MHx8aT49dC5jb2x1bW5zKXRocm93IG5ldyBSYW5nZUVycm9yKCJTdWJtYXRyaXggaW5kaWNlcyBhcmUgb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gdk10KHQsZT0wKXtsZXQgbj1bXTtmb3IobGV0IG89MDtvPHQ7bysrKW4ucHVzaChlKTtyZXR1cm4gbn1mdW5jdGlvbiB4TXQodCxlKXtpZigibnVtYmVyIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcihgJHt0fSBtdXN0IGJlIGEgbnVtYmVyYCl9ZnVuY3Rpb24gT010KHQpe2lmKHQuaXNFbXB0eSgpKXRocm93IG5ldyBFcnJvcigiRW1wdHkgbWF0cml4IGhhcyBubyBlbGVtZW50cyB0byBpbmRleCIpfWNsYXNzIFBNdHtzdGF0aWMgZnJvbTFEQXJyYXkodCxlLG4pe2lmKHQqZSE9PW4ubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJkYXRhIGxlbmd0aCBkb2VzIG5vdCBtYXRjaCBnaXZlbiBkaW1lbnNpb25zIik7bGV0IG89bmV3IFNNdCh0LGUpO2ZvcihsZXQgaT0wO2k8dDtpKyspZm9yKGxldCB0PTA7dDxlO3QrKylvLnNldChpLHQsbltpKmUrdF0pO3JldHVybiBvfXN0YXRpYyByb3dWZWN0b3IodCl7bGV0IGU9bmV3IFNNdCgxLHQubGVuZ3RoKTtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyllLnNldCgwLG4sdFtuXSk7cmV0dXJuIGV9c3RhdGljIGNvbHVtblZlY3Rvcih0KXtsZXQgZT1uZXcgU010KHQubGVuZ3RoLDEpO2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKWUuc2V0KG4sMCx0W25dKTtyZXR1cm4gZX1zdGF0aWMgemVyb3ModCxlKXtyZXR1cm4gbmV3IFNNdCh0LGUpfXN0YXRpYyBvbmVzKHQsZSl7cmV0dXJuIG5ldyBTTXQodCxlKS5maWxsKDEpfXN0YXRpYyByYW5kKHQsZSxuPXt9KXtpZigib2JqZWN0IiE9dHlwZW9mIG4pdGhyb3cgbmV3IFR5cGVFcnJvcigib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIpO2NvbnN0e3JhbmRvbTpvPU1hdGgucmFuZG9tfT1uO2xldCBpPW5ldyBTTXQodCxlKTtmb3IobGV0IG49MDtuPHQ7bisrKWZvcihsZXQgdD0wO3Q8ZTt0KyspaS5zZXQobix0LG8oKSk7cmV0dXJuIGl9c3RhdGljIHJhbmRJbnQodCxlLG49e30pe2lmKCJvYmplY3QiIT10eXBlb2Ygbil0aHJvdyBuZXcgVHlwZUVycm9yKCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Iik7Y29uc3R7bWluOm89MCxtYXg6aT0xZTMscmFuZG9tOmE9TWF0aC5yYW5kb219PW47aWYoIU51bWJlci5pc0ludGVnZXIobykpdGhyb3cgbmV3IFR5cGVFcnJvcigibWluIG11c3QgYmUgYW4gaW50ZWdlciIpO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKGkpKXRocm93IG5ldyBUeXBlRXJyb3IoIm1heCBtdXN0IGJlIGFuIGludGVnZXIiKTtpZihvPj1pKXRocm93IG5ldyBSYW5nZUVycm9yKCJtaW4gbXVzdCBiZSBzbWFsbGVyIHRoYW4gbWF4Iik7bGV0IHI9aS1vLHM9bmV3IFNNdCh0LGUpO2ZvcihsZXQgbj0wO248dDtuKyspZm9yKGxldCB0PTA7dDxlO3QrKyl7bGV0IGU9bytNYXRoLnJvdW5kKGEoKSpyKTtzLnNldChuLHQsZSl9cmV0dXJuIHN9c3RhdGljIGV5ZSh0LGUsbil7dm9pZCAwPT09ZSYmKGU9dCksdm9pZCAwPT09biYmKG49MSk7bGV0IG89TWF0aC5taW4odCxlKSxpPXRoaXMuemVyb3ModCxlKTtmb3IobGV0IHQ9MDt0PG87dCsrKWkuc2V0KHQsdCxuKTtyZXR1cm4gaX1zdGF0aWMgZGlhZyh0LGUsbil7bGV0IG89dC5sZW5ndGg7dm9pZCAwPT09ZSYmKGU9byksdm9pZCAwPT09biYmKG49ZSk7bGV0IGk9TWF0aC5taW4obyxlLG4pLGE9dGhpcy56ZXJvcyhlLG4pO2ZvcihsZXQgZT0wO2U8aTtlKyspYS5zZXQoZSxlLHRbZV0pO3JldHVybiBhfXN0YXRpYyBtaW4odCxlKXt0PXRoaXMuY2hlY2tNYXRyaXgodCksZT10aGlzLmNoZWNrTWF0cml4KGUpO2xldCBuPXQucm93cyxvPXQuY29sdW1ucyxpPW5ldyBTTXQobixvKTtmb3IobGV0IGE9MDthPG47YSsrKWZvcihsZXQgbj0wO248bztuKyspaS5zZXQoYSxuLE1hdGgubWluKHQuZ2V0KGEsbiksZS5nZXQoYSxuKSkpO3JldHVybiBpfXN0YXRpYyBtYXgodCxlKXt0PXRoaXMuY2hlY2tNYXRyaXgodCksZT10aGlzLmNoZWNrTWF0cml4KGUpO2xldCBuPXQucm93cyxvPXQuY29sdW1ucyxpPW5ldyB0aGlzKG4sbyk7Zm9yKGxldCBhPTA7YTxuO2ErKylmb3IobGV0IG49MDtuPG87bisrKWkuc2V0KGEsbixNYXRoLm1heCh0LmdldChhLG4pLGUuZ2V0KGEsbikpKTtyZXR1cm4gaX1zdGF0aWMgY2hlY2tNYXRyaXgodCl7cmV0dXJuIFBNdC5pc01hdHJpeCh0KT90Om5ldyBTTXQodCl9c3RhdGljIGlzTWF0cml4KHQpe3JldHVybiBudWxsIT10JiYiTWF0cml4Ij09PXQua2xhc3N9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy5yb3dzKnRoaXMuY29sdW1uc31hcHBseSh0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmb3IobGV0IGU9MDtlPHRoaXMucm93cztlKyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXQuY2FsbCh0aGlzLGUsbik7cmV0dXJuIHRoaXN9dG8xREFycmF5KCl7bGV0IHQ9W107Zm9yKGxldCBlPTA7ZTx0aGlzLnJvd3M7ZSsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0LnB1c2godGhpcy5nZXQoZSxuKSk7cmV0dXJuIHR9dG8yREFycmF5KCl7bGV0IHQ9W107Zm9yKGxldCBlPTA7ZTx0aGlzLnJvd3M7ZSsrKXt0LnB1c2goW10pO2ZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0W2VdLnB1c2godGhpcy5nZXQoZSxuKSl9cmV0dXJuIHR9dG9KU09OKCl7cmV0dXJuIHRoaXMudG8yREFycmF5KCl9aXNSb3dWZWN0b3IoKXtyZXR1cm4gMT09PXRoaXMucm93c31pc0NvbHVtblZlY3Rvcigpe3JldHVybiAxPT09dGhpcy5jb2x1bW5zfWlzVmVjdG9yKCl7cmV0dXJuIDE9PT10aGlzLnJvd3N8fDE9PT10aGlzLmNvbHVtbnN9aXNTcXVhcmUoKXtyZXR1cm4gdGhpcy5yb3dzPT09dGhpcy5jb2x1bW5zfWlzRW1wdHkoKXtyZXR1cm4gMD09PXRoaXMucm93c3x8MD09PXRoaXMuY29sdW1uc31pc1N5bW1ldHJpYygpe2lmKHRoaXMuaXNTcXVhcmUoKSl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8PXQ7ZSsrKWlmKHRoaXMuZ2V0KHQsZSkhPT10aGlzLmdldChlLHQpKXJldHVybiExO3JldHVybiEwfXJldHVybiExfWlzRWNoZWxvbkZvcm0oKXtsZXQgdD0wLGU9MCxuPS0xLG89ITAsaT0hMTtmb3IoO3Q8dGhpcy5yb3dzJiZvOyl7Zm9yKGU9MCxpPSExO2U8dGhpcy5jb2x1bW5zJiYhMT09PWk7KTA9PT10aGlzLmdldCh0LGUpP2UrKzoxPT09dGhpcy5nZXQodCxlKSYmZT5uPyhpPSEwLG49ZSk6KG89ITEsaT0hMCk7dCsrfXJldHVybiBvfWlzUmVkdWNlZEVjaGVsb25Gb3JtKCl7bGV0IHQ9MCxlPTAsbj0tMSxvPSEwLGk9ITE7Zm9yKDt0PHRoaXMucm93cyYmbzspe2ZvcihlPTAsaT0hMTtlPHRoaXMuY29sdW1ucyYmITE9PT1pOykwPT09dGhpcy5nZXQodCxlKT9lKys6MT09PXRoaXMuZ2V0KHQsZSkmJmU+bj8oaT0hMCxuPWUpOihvPSExLGk9ITApO2ZvcihsZXQgbj1lKzE7bjx0aGlzLnJvd3M7bisrKTAhPT10aGlzLmdldCh0LG4pJiYobz0hMSk7dCsrfXJldHVybiBvfWVjaGVsb25Gb3JtKCl7bGV0IHQ9dGhpcy5jbG9uZSgpLGU9MCxuPTA7Zm9yKDtlPHQucm93cyYmbjx0LmNvbHVtbnM7KXtsZXQgbz1lO2ZvcihsZXQgaT1lO2k8dC5yb3dzO2krKyl0LmdldChpLG4pPnQuZ2V0KG8sbikmJihvPWkpO2lmKDA9PT10LmdldChvLG4pKW4rKztlbHNle3Quc3dhcFJvd3MoZSxvKTtsZXQgaT10LmdldChlLG4pO2ZvcihsZXQgbz1uO288dC5jb2x1bW5zO28rKyl0LnNldChlLG8sdC5nZXQoZSxvKS9pKTtmb3IobGV0IG89ZSsxO288dC5yb3dzO28rKyl7bGV0IGk9dC5nZXQobyxuKS90LmdldChlLG4pO3Quc2V0KG8sbiwwKTtmb3IobGV0IGE9bisxO2E8dC5jb2x1bW5zO2ErKyl0LnNldChvLGEsdC5nZXQobyxhKS10LmdldChlLGEpKmkpfWUrKyxuKyt9fXJldHVybiB0fXJlZHVjZWRFY2hlbG9uRm9ybSgpe2xldCB0PXRoaXMuZWNoZWxvbkZvcm0oKSxlPXQuY29sdW1ucyxuPXQucm93cyxvPW4tMTtmb3IoO28+PTA7KWlmKDA9PT10Lm1heFJvdyhvKSlvLS07ZWxzZXtsZXQgaT0wLGE9ITE7Zm9yKDtpPG4mJiExPT09YTspMT09PXQuZ2V0KG8saSk/YT0hMDppKys7Zm9yKGxldCBuPTA7bjxvO24rKyl7bGV0IGE9dC5nZXQobixpKTtmb3IobGV0IHI9aTtyPGU7cisrKXtsZXQgZT10LmdldChuLHIpLWEqdC5nZXQobyxyKTt0LnNldChuLHIsZSl9fW8tLX1yZXR1cm4gdH1zZXQoKXt0aHJvdyBuZXcgRXJyb3IoInNldCBtZXRob2QgaXMgdW5pbXBsZW1lbnRlZCIpfWdldCgpe3Rocm93IG5ldyBFcnJvcigiZ2V0IG1ldGhvZCBpcyB1bmltcGxlbWVudGVkIil9cmVwZWF0KHQ9e30pe2lmKCJvYmplY3QiIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Iik7Y29uc3R7cm93czplPTEsY29sdW1uczpuPTF9PXQ7aWYoIU51bWJlci5pc0ludGVnZXIoZSl8fGU8PTApdGhyb3cgbmV3IFR5cGVFcnJvcigicm93cyBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciIpO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKG4pfHxuPD0wKXRocm93IG5ldyBUeXBlRXJyb3IoImNvbHVtbnMgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIiKTtsZXQgbz1uZXcgU010KHRoaXMucm93cyplLHRoaXMuY29sdW1ucypuKTtmb3IobGV0IHQ9MDt0PGU7dCsrKWZvcihsZXQgZT0wO2U8bjtlKyspby5zZXRTdWJNYXRyaXgodGhpcyx0aGlzLnJvd3MqdCx0aGlzLmNvbHVtbnMqZSk7cmV0dXJuIG99ZmlsbCh0KXtmb3IobGV0IGU9MDtlPHRoaXMucm93cztlKyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KGUsbix0KTtyZXR1cm4gdGhpc31uZWcoKXtyZXR1cm4gdGhpcy5tdWxTKC0xKX1nZXRSb3codCl7Z010KHRoaXMsdCk7bGV0IGU9W107Zm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKWUucHVzaCh0aGlzLmdldCh0LG4pKTtyZXR1cm4gZX1nZXRSb3dWZWN0b3IodCl7cmV0dXJuIFNNdC5yb3dWZWN0b3IodGhpcy5nZXRSb3codCkpfXNldFJvdyh0LGUpe2dNdCh0aGlzLHQpLGU9Yk10KHRoaXMsZSk7Zm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KHQsbixlW25dKTtyZXR1cm4gdGhpc31zd2FwUm93cyh0LGUpe2dNdCh0aGlzLHQpLGdNdCh0aGlzLGUpO2ZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl7bGV0IG89dGhpcy5nZXQodCxuKTt0aGlzLnNldCh0LG4sdGhpcy5nZXQoZSxuKSksdGhpcy5zZXQoZSxuLG8pfXJldHVybiB0aGlzfWdldENvbHVtbih0KXtoTXQodGhpcyx0KTtsZXQgZT1bXTtmb3IobGV0IG49MDtuPHRoaXMucm93cztuKyspZS5wdXNoKHRoaXMuZ2V0KG4sdCkpO3JldHVybiBlfWdldENvbHVtblZlY3Rvcih0KXtyZXR1cm4gU010LmNvbHVtblZlY3Rvcih0aGlzLmdldENvbHVtbih0KSl9c2V0Q29sdW1uKHQsZSl7aE10KHRoaXMsdCksZT15TXQodGhpcyxlKTtmb3IobGV0IG49MDtuPHRoaXMucm93cztuKyspdGhpcy5zZXQobix0LGVbbl0pO3JldHVybiB0aGlzfXN3YXBDb2x1bW5zKHQsZSl7aE10KHRoaXMsdCksaE10KHRoaXMsZSk7Zm9yKGxldCBuPTA7bjx0aGlzLnJvd3M7bisrKXtsZXQgbz10aGlzLmdldChuLHQpO3RoaXMuc2V0KG4sdCx0aGlzLmdldChuLGUpKSx0aGlzLnNldChuLGUsbyl9cmV0dXJuIHRoaXN9YWRkUm93VmVjdG9yKHQpe3Q9Yk10KHRoaXMsdCk7Zm9yKGxldCBlPTA7ZTx0aGlzLnJvd3M7ZSsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0aGlzLnNldChlLG4sdGhpcy5nZXQoZSxuKSt0W25dKTtyZXR1cm4gdGhpc31zdWJSb3dWZWN0b3IodCl7dD1iTXQodGhpcyx0KTtmb3IobGV0IGU9MDtlPHRoaXMucm93cztlKyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KGUsbix0aGlzLmdldChlLG4pLXRbbl0pO3JldHVybiB0aGlzfW11bFJvd1ZlY3Rvcih0KXt0PWJNdCh0aGlzLHQpO2ZvcihsZXQgZT0wO2U8dGhpcy5yb3dzO2UrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5zZXQoZSxuLHRoaXMuZ2V0KGUsbikqdFtuXSk7cmV0dXJuIHRoaXN9ZGl2Um93VmVjdG9yKHQpe3Q9Yk10KHRoaXMsdCk7Zm9yKGxldCBlPTA7ZTx0aGlzLnJvd3M7ZSsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0aGlzLnNldChlLG4sdGhpcy5nZXQoZSxuKS90W25dKTtyZXR1cm4gdGhpc31hZGRDb2x1bW5WZWN0b3IodCl7dD15TXQodGhpcyx0KTtmb3IobGV0IGU9MDtlPHRoaXMucm93cztlKyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KGUsbix0aGlzLmdldChlLG4pK3RbZV0pO3JldHVybiB0aGlzfXN1YkNvbHVtblZlY3Rvcih0KXt0PXlNdCh0aGlzLHQpO2ZvcihsZXQgZT0wO2U8dGhpcy5yb3dzO2UrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5zZXQoZSxuLHRoaXMuZ2V0KGUsbiktdFtlXSk7cmV0dXJuIHRoaXN9bXVsQ29sdW1uVmVjdG9yKHQpe3Q9eU10KHRoaXMsdCk7Zm9yKGxldCBlPTA7ZTx0aGlzLnJvd3M7ZSsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0aGlzLnNldChlLG4sdGhpcy5nZXQoZSxuKSp0W2VdKTtyZXR1cm4gdGhpc31kaXZDb2x1bW5WZWN0b3IodCl7dD15TXQodGhpcyx0KTtmb3IobGV0IGU9MDtlPHRoaXMucm93cztlKyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KGUsbix0aGlzLmdldChlLG4pL3RbZV0pO3JldHVybiB0aGlzfW11bFJvdyh0LGUpe2dNdCh0aGlzLHQpO2ZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0aGlzLnNldCh0LG4sdGhpcy5nZXQodCxuKSplKTtyZXR1cm4gdGhpc31tdWxDb2x1bW4odCxlKXtoTXQodGhpcyx0KTtmb3IobGV0IG49MDtuPHRoaXMucm93cztuKyspdGhpcy5zZXQobix0LHRoaXMuZ2V0KG4sdCkqZSk7cmV0dXJuIHRoaXN9bWF4KCl7aWYodGhpcy5pc0VtcHR5KCkpcmV0dXJuIE5hTjtsZXQgdD10aGlzLmdldCgwLDApO2ZvcihsZXQgZT0wO2U8dGhpcy5yb3dzO2UrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5nZXQoZSxuKT50JiYodD10aGlzLmdldChlLG4pKTtyZXR1cm4gdH1tYXhJbmRleCgpe09NdCh0aGlzKTtsZXQgdD10aGlzLmdldCgwLDApLGU9WzAsMF07Zm9yKGxldCBuPTA7bjx0aGlzLnJvd3M7bisrKWZvcihsZXQgbz0wO288dGhpcy5jb2x1bW5zO28rKyl0aGlzLmdldChuLG8pPnQmJih0PXRoaXMuZ2V0KG4sbyksZVswXT1uLGVbMV09byk7cmV0dXJuIGV9bWluKCl7aWYodGhpcy5pc0VtcHR5KCkpcmV0dXJuIE5hTjtsZXQgdD10aGlzLmdldCgwLDApO2ZvcihsZXQgZT0wO2U8dGhpcy5yb3dzO2UrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5nZXQoZSxuKTx0JiYodD10aGlzLmdldChlLG4pKTtyZXR1cm4gdH1taW5JbmRleCgpe09NdCh0aGlzKTtsZXQgdD10aGlzLmdldCgwLDApLGU9WzAsMF07Zm9yKGxldCBuPTA7bjx0aGlzLnJvd3M7bisrKWZvcihsZXQgbz0wO288dGhpcy5jb2x1bW5zO28rKyl0aGlzLmdldChuLG8pPHQmJih0PXRoaXMuZ2V0KG4sbyksZVswXT1uLGVbMV09byk7cmV0dXJuIGV9bWF4Um93KHQpe2lmKGdNdCh0aGlzLHQpLHRoaXMuaXNFbXB0eSgpKXJldHVybiBOYU47bGV0IGU9dGhpcy5nZXQodCwwKTtmb3IobGV0IG49MTtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5nZXQodCxuKT5lJiYoZT10aGlzLmdldCh0LG4pKTtyZXR1cm4gZX1tYXhSb3dJbmRleCh0KXtnTXQodGhpcyx0KSxPTXQodGhpcyk7bGV0IGU9dGhpcy5nZXQodCwwKSxuPVt0LDBdO2ZvcihsZXQgbz0xO288dGhpcy5jb2x1bW5zO28rKyl0aGlzLmdldCh0LG8pPmUmJihlPXRoaXMuZ2V0KHQsbyksblsxXT1vKTtyZXR1cm4gbn1taW5Sb3codCl7aWYoZ010KHRoaXMsdCksdGhpcy5pc0VtcHR5KCkpcmV0dXJuIE5hTjtsZXQgZT10aGlzLmdldCh0LDApO2ZvcihsZXQgbj0xO248dGhpcy5jb2x1bW5zO24rKyl0aGlzLmdldCh0LG4pPGUmJihlPXRoaXMuZ2V0KHQsbikpO3JldHVybiBlfW1pblJvd0luZGV4KHQpe2dNdCh0aGlzLHQpLE9NdCh0aGlzKTtsZXQgZT10aGlzLmdldCh0LDApLG49W3QsMF07Zm9yKGxldCBvPTE7bzx0aGlzLmNvbHVtbnM7bysrKXRoaXMuZ2V0KHQsbyk8ZSYmKGU9dGhpcy5nZXQodCxvKSxuWzFdPW8pO3JldHVybiBufW1heENvbHVtbih0KXtpZihoTXQodGhpcyx0KSx0aGlzLmlzRW1wdHkoKSlyZXR1cm4gTmFOO2xldCBlPXRoaXMuZ2V0KDAsdCk7Zm9yKGxldCBuPTE7bjx0aGlzLnJvd3M7bisrKXRoaXMuZ2V0KG4sdCk+ZSYmKGU9dGhpcy5nZXQobix0KSk7cmV0dXJuIGV9bWF4Q29sdW1uSW5kZXgodCl7aE10KHRoaXMsdCksT010KHRoaXMpO2xldCBlPXRoaXMuZ2V0KDAsdCksbj1bMCx0XTtmb3IobGV0IG89MTtvPHRoaXMucm93cztvKyspdGhpcy5nZXQobyx0KT5lJiYoZT10aGlzLmdldChvLHQpLG5bMF09byk7cmV0dXJuIG59bWluQ29sdW1uKHQpe2lmKGhNdCh0aGlzLHQpLHRoaXMuaXNFbXB0eSgpKXJldHVybiBOYU47bGV0IGU9dGhpcy5nZXQoMCx0KTtmb3IobGV0IG49MTtuPHRoaXMucm93cztuKyspdGhpcy5nZXQobix0KTxlJiYoZT10aGlzLmdldChuLHQpKTtyZXR1cm4gZX1taW5Db2x1bW5JbmRleCh0KXtoTXQodGhpcyx0KSxPTXQodGhpcyk7bGV0IGU9dGhpcy5nZXQoMCx0KSxuPVswLHRdO2ZvcihsZXQgbz0xO288dGhpcy5yb3dzO28rKyl0aGlzLmdldChvLHQpPGUmJihlPXRoaXMuZ2V0KG8sdCksblswXT1vKTtyZXR1cm4gbn1kaWFnKCl7bGV0IHQ9TWF0aC5taW4odGhpcy5yb3dzLHRoaXMuY29sdW1ucyksZT1bXTtmb3IobGV0IG49MDtuPHQ7bisrKWUucHVzaCh0aGlzLmdldChuLG4pKTtyZXR1cm4gZX1ub3JtKHQ9ImZyb2Jlbml1cyIpe2xldCBlPTA7aWYoIm1heCI9PT10KXJldHVybiB0aGlzLm1heCgpO2lmKCJmcm9iZW5pdXMiPT09dCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyllKz10aGlzLmdldCh0LG4pKnRoaXMuZ2V0KHQsbik7cmV0dXJuIE1hdGguc3FydChlKX10aHJvdyBuZXcgUmFuZ2VFcnJvcihgdW5rbm93biBub3JtIHR5cGU6ICR7dH1gKX1jdW11bGF0aXZlU3VtKCl7bGV0IHQ9MDtmb3IobGV0IGU9MDtlPHRoaXMucm93cztlKyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXQrPXRoaXMuZ2V0KGUsbiksdGhpcy5zZXQoZSxuLHQpO3JldHVybiB0aGlzfWRvdCh0KXtQTXQuaXNNYXRyaXgodCkmJih0PXQudG8xREFycmF5KCkpO2xldCBlPXRoaXMudG8xREFycmF5KCk7aWYoZS5sZW5ndGghPT10Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigidmVjdG9ycyBkbyBub3QgaGF2ZSB0aGUgc2FtZSBzaXplIik7bGV0IG49MDtmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rKyluKz1lW29dKnRbb107cmV0dXJuIG59bW11bCh0KXt0PVNNdC5jaGVja01hdHJpeCh0KTtsZXQgZT10aGlzLnJvd3Msbj10aGlzLmNvbHVtbnMsbz10LmNvbHVtbnMsaT1uZXcgU010KGUsbyksYT1uZXcgRmxvYXQ2NEFycmF5KG4pO2ZvcihsZXQgcj0wO3I8bztyKyspe2ZvcihsZXQgZT0wO2U8bjtlKyspYVtlXT10LmdldChlLHIpO2ZvcihsZXQgdD0wO3Q8ZTt0Kyspe2xldCBlPTA7Zm9yKGxldCBvPTA7bzxuO28rKyllKz10aGlzLmdldCh0LG8pKmFbb107aS5zZXQodCxyLGUpfX1yZXR1cm4gaX1zdHJhc3NlbjJ4Mih0KXt0PVNNdC5jaGVja01hdHJpeCh0KTtsZXQgZT1uZXcgU010KDIsMik7Y29uc3Qgbj10aGlzLmdldCgwLDApLG89dC5nZXQoMCwwKSxpPXRoaXMuZ2V0KDAsMSksYT10LmdldCgwLDEpLHI9dGhpcy5nZXQoMSwwKSxzPXQuZ2V0KDEsMCksbD10aGlzLmdldCgxLDEpLGM9dC5nZXQoMSwxKSxkPShuK2wpKihvK2MpLHA9KHIrbCkqbyxtPW4qKGEtYyksZj1sKihzLW8pLHU9KG4raSkqYyxnPW0rdSxoPXArZixiPWQtcCttKyhyLW4pKihvK2EpO3JldHVybiBlLnNldCgwLDAsZCtmLXUrKGktbCkqKHMrYykpLGUuc2V0KDAsMSxnKSxlLnNldCgxLDAsaCksZS5zZXQoMSwxLGIpLGV9c3RyYXNzZW4zeDModCl7dD1TTXQuY2hlY2tNYXRyaXgodCk7bGV0IGU9bmV3IFNNdCgzLDMpO2NvbnN0IG49dGhpcy5nZXQoMCwwKSxvPXRoaXMuZ2V0KDAsMSksaT10aGlzLmdldCgwLDIpLGE9dGhpcy5nZXQoMSwwKSxyPXRoaXMuZ2V0KDEsMSkscz10aGlzLmdldCgxLDIpLGw9dGhpcy5nZXQoMiwwKSxjPXRoaXMuZ2V0KDIsMSksZD10aGlzLmdldCgyLDIpLHA9dC5nZXQoMCwwKSxtPXQuZ2V0KDAsMSksZj10LmdldCgwLDIpLHU9dC5nZXQoMSwwKSxnPXQuZ2V0KDEsMSksaD10LmdldCgxLDIpLGI9dC5nZXQoMiwwKSx5PXQuZ2V0KDIsMSksXz10LmdldCgyLDIpLEM9KG4tYSkqKC1tK2cpLE09KC1uK2ErcikqKHAtbStnKSx2PShhK3IpKigtcCttKSx4PW4qcCxPPSgtbitsK2MpKihwLWYraCksUD0oLW4rbCkqKGYtaCksdz0obCtjKSooLXArZiksaz0oLWkrYytkKSooZytiLXkpLFM9KGktZCkqKGcteSksRD1pKmIsUj0oYytkKSooLWIreSksRT0oLWkrcitzKSooaCtiLV8pLEE9KGktcykqKGgtXyksVD0ocitzKSooLWIrXyksTj0obitvK2ktYS1yLWMtZCkqZytNK3YreCtrK0QrUix6PXgrTyt3KyhuK28raS1yLXMtbC1jKSpoK0QrRStULEk9QytyKigtcCttK3UtZy1oLWIrXykrTSt4K0QrRStBLEg9QytNK3YreCtzKnksRj1EK0UrQStUK2EqZixMPXgrTytQK2MqKC1wK2YrdS1nLWgtYit5KStrK1MrRCxCPWsrUytEK1IrbCptLFY9eCtPK1ArdytkKl87cmV0dXJuIGUuc2V0KDAsMCx4K0Qrbyp1KSxlLnNldCgwLDEsTiksZS5zZXQoMCwyLHopLGUuc2V0KDEsMCxJKSxlLnNldCgxLDEsSCksZS5zZXQoMSwyLEYpLGUuc2V0KDIsMCxMKSxlLnNldCgyLDEsQiksZS5zZXQoMiwyLFYpLGV9bW11bFN0cmFzc2VuKHQpe3Q9U010LmNoZWNrTWF0cml4KHQpO2xldCBlPXRoaXMuY2xvbmUoKSxuPWUucm93cyxvPWUuY29sdW1ucyxpPXQucm93cyxhPXQuY29sdW1ucztmdW5jdGlvbiByKHQsZSxuKXtpZih0LnJvd3M9PT1lJiZ0LmNvbHVtbnM9PT1uKXJldHVybiB0O3tsZXQgbz1QTXQuemVyb3MoZSxuKTtyZXR1cm4gbz1vLnNldFN1Yk1hdHJpeCh0LDAsMCksb319byE9PWkmJmNvbnNvbGUud2FybihgTXVsdGlwbHlpbmcgJHtufSB4ICR7b30gYW5kICR7aX0geCAke2F9IG1hdHJpeDogZGltZW5zaW9ucyBkbyBub3QgbWF0Y2guYCk7bGV0IHM9TWF0aC5tYXgobixpKSxsPU1hdGgubWF4KG8sYSk7cmV0dXJuIGU9cihlLHMsbCksKGZ1bmN0aW9uIHQoZSxuLG8saSl7aWYobzw9NTEyfHxpPD01MTIpcmV0dXJuIGUubW11bChuKTtvJTI9PTEmJmklMj09MT8oZT1yKGUsbysxLGkrMSksbj1yKG4sbysxLGkrMSkpOm8lMj09MT8oZT1yKGUsbysxLGkpLG49cihuLG8rMSxpKSk6aSUyPT0xJiYoZT1yKGUsbyxpKzEpLG49cihuLG8saSsxKSk7bGV0IGE9cGFyc2VJbnQoZS5yb3dzLzIsMTApLHM9cGFyc2VJbnQoZS5jb2x1bW5zLzIsMTApLGw9ZS5zdWJNYXRyaXgoMCxhLTEsMCxzLTEpLGM9bi5zdWJNYXRyaXgoMCxhLTEsMCxzLTEpLGQ9ZS5zdWJNYXRyaXgoMCxhLTEscyxlLmNvbHVtbnMtMSkscD1uLnN1Yk1hdHJpeCgwLGEtMSxzLG4uY29sdW1ucy0xKSxtPWUuc3ViTWF0cml4KGEsZS5yb3dzLTEsMCxzLTEpLGY9bi5zdWJNYXRyaXgoYSxuLnJvd3MtMSwwLHMtMSksdT1lLnN1Yk1hdHJpeChhLGUucm93cy0xLHMsZS5jb2x1bW5zLTEpLGc9bi5zdWJNYXRyaXgoYSxuLnJvd3MtMSxzLG4uY29sdW1ucy0xKSxoPXQoUE10LmFkZChsLHUpLFBNdC5hZGQoYyxnKSxhLHMpLGI9dChQTXQuYWRkKG0sdSksYyxhLHMpLHk9dChsLFBNdC5zdWIocCxnKSxhLHMpLF89dCh1LFBNdC5zdWIoZixjKSxhLHMpLEM9dChQTXQuYWRkKGwsZCksZyxhLHMpLE09dChQTXQuc3ViKG0sbCksUE10LmFkZChjLHApLGEscyksdj10KFBNdC5zdWIoZCx1KSxQTXQuYWRkKGYsZyksYSxzKSx4PVBNdC5hZGQoaCxfKTt4LnN1YihDKSx4LmFkZCh2KTtsZXQgTz1QTXQuYWRkKHksQyksUD1QTXQuYWRkKGIsXyksdz1QTXQuc3ViKGgsYik7dy5hZGQoeSksdy5hZGQoTSk7bGV0IGs9UE10Lnplcm9zKDIqeC5yb3dzLDIqeC5jb2x1bW5zKTtyZXR1cm4gaz1rLnNldFN1Yk1hdHJpeCh4LDAsMCksaz1rLnNldFN1Yk1hdHJpeChPLHgucm93cywwKSxrPWsuc2V0U3ViTWF0cml4KFAsMCx4LmNvbHVtbnMpLGs9ay5zZXRTdWJNYXRyaXgodyx4LnJvd3MseC5jb2x1bW5zKSxrLnN1Yk1hdHJpeCgwLG8tMSwwLGktMSl9KShlLHQ9cih0LHMsbCkscyxsKX1zY2FsZVJvd3ModD17fSl7aWYoIm9iamVjdCIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiKTtjb25zdHttaW46ZT0wLG1heDpuPTF9PXQ7aWYoIU51bWJlci5pc0Zpbml0ZShlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJtaW4gbXVzdCBiZSBhIG51bWJlciIpO2lmKCFOdW1iZXIuaXNGaW5pdGUobikpdGhyb3cgbmV3IFR5cGVFcnJvcigibWF4IG11c3QgYmUgYSBudW1iZXIiKTtpZihlPj1uKXRocm93IG5ldyBSYW5nZUVycm9yKCJtaW4gbXVzdCBiZSBzbWFsbGVyIHRoYW4gbWF4Iik7bGV0IG89bmV3IFNNdCh0aGlzLnJvd3MsdGhpcy5jb2x1bW5zKTtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0Kyspe2NvbnN0IGk9dGhpcy5nZXRSb3codCk7aS5sZW5ndGg+MCYmZE10KGkse21pbjplLG1heDpuLG91dHB1dDppfSksby5zZXRSb3codCxpKX1yZXR1cm4gb31zY2FsZUNvbHVtbnModD17fSl7aWYoIm9iamVjdCIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiKTtjb25zdHttaW46ZT0wLG1heDpuPTF9PXQ7aWYoIU51bWJlci5pc0Zpbml0ZShlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJtaW4gbXVzdCBiZSBhIG51bWJlciIpO2lmKCFOdW1iZXIuaXNGaW5pdGUobikpdGhyb3cgbmV3IFR5cGVFcnJvcigibWF4IG11c3QgYmUgYSBudW1iZXIiKTtpZihlPj1uKXRocm93IG5ldyBSYW5nZUVycm9yKCJtaW4gbXVzdCBiZSBzbWFsbGVyIHRoYW4gbWF4Iik7bGV0IG89bmV3IFNNdCh0aGlzLnJvd3MsdGhpcy5jb2x1bW5zKTtmb3IobGV0IHQ9MDt0PHRoaXMuY29sdW1uczt0Kyspe2NvbnN0IGk9dGhpcy5nZXRDb2x1bW4odCk7aS5sZW5ndGgmJmRNdChpLHttaW46ZSxtYXg6bixvdXRwdXQ6aX0pLG8uc2V0Q29sdW1uKHQsaSl9cmV0dXJuIG99ZmxpcFJvd3MoKXtjb25zdCB0PU1hdGguY2VpbCh0aGlzLmNvbHVtbnMvMik7Zm9yKGxldCBlPTA7ZTx0aGlzLnJvd3M7ZSsrKWZvcihsZXQgbj0wO248dDtuKyspe2xldCB0PXRoaXMuZ2V0KGUsbiksbz10aGlzLmdldChlLHRoaXMuY29sdW1ucy0xLW4pO3RoaXMuc2V0KGUsbixvKSx0aGlzLnNldChlLHRoaXMuY29sdW1ucy0xLW4sdCl9cmV0dXJuIHRoaXN9ZmxpcENvbHVtbnMoKXtjb25zdCB0PU1hdGguY2VpbCh0aGlzLnJvd3MvMik7Zm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKWZvcihsZXQgbj0wO248dDtuKyspe2xldCB0PXRoaXMuZ2V0KG4sZSksbz10aGlzLmdldCh0aGlzLnJvd3MtMS1uLGUpO3RoaXMuc2V0KG4sZSxvKSx0aGlzLnNldCh0aGlzLnJvd3MtMS1uLGUsdCl9cmV0dXJuIHRoaXN9a3JvbmVja2VyUHJvZHVjdCh0KXt0PVNNdC5jaGVja01hdHJpeCh0KTtsZXQgZT10aGlzLnJvd3Msbj10aGlzLmNvbHVtbnMsbz10LnJvd3MsaT10LmNvbHVtbnMsYT1uZXcgU010KGUqbyxuKmkpO2ZvcihsZXQgcj0wO3I8ZTtyKyspZm9yKGxldCBlPTA7ZTxuO2UrKylmb3IobGV0IG49MDtuPG87bisrKWZvcihsZXQgcz0wO3M8aTtzKyspYS5zZXQobypyK24saSplK3MsdGhpcy5nZXQocixlKSp0LmdldChuLHMpKTtyZXR1cm4gYX1rcm9uZWNrZXJTdW0odCl7aWYodD1TTXQuY2hlY2tNYXRyaXgodCksIXRoaXMuaXNTcXVhcmUoKXx8IXQuaXNTcXVhcmUoKSl0aHJvdyBuZXcgRXJyb3IoIktyb25lY2tlciBTdW0gbmVlZHMgdHdvIFNxdWFyZSBNYXRyaWNlcyIpO2xldCBlPXRoaXMucm93cyxuPXQucm93cyxvPXRoaXMua3JvbmVja2VyUHJvZHVjdChTTXQuZXllKG4sbikpLGk9U010LmV5ZShlLGUpLmtyb25lY2tlclByb2R1Y3QodCk7cmV0dXJuIG8uYWRkKGkpfXRyYW5zcG9zZSgpe2xldCB0PW5ldyBTTXQodGhpcy5jb2x1bW5zLHRoaXMucm93cyk7Zm9yKGxldCBlPTA7ZTx0aGlzLnJvd3M7ZSsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0LnNldChuLGUsdGhpcy5nZXQoZSxuKSk7cmV0dXJuIHR9c29ydFJvd3ModD13TXQpe2ZvcihsZXQgZT0wO2U8dGhpcy5yb3dzO2UrKyl0aGlzLnNldFJvdyhlLHRoaXMuZ2V0Um93KGUpLnNvcnQodCkpO3JldHVybiB0aGlzfXNvcnRDb2x1bW5zKHQ9d010KXtmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXRDb2x1bW4oZSx0aGlzLmdldENvbHVtbihlKS5zb3J0KHQpKTtyZXR1cm4gdGhpc31zdWJNYXRyaXgodCxlLG4sbyl7TU10KHRoaXMsdCxlLG4sbyk7bGV0IGk9bmV3IFNNdChlLXQrMSxvLW4rMSk7Zm9yKGxldCBhPXQ7YTw9ZTthKyspZm9yKGxldCBlPW47ZTw9bztlKyspaS5zZXQoYS10LGUtbix0aGlzLmdldChhLGUpKTtyZXR1cm4gaX1zdWJNYXRyaXhSb3codCxlLG4pe2lmKHZvaWQgMD09PWUmJihlPTApLHZvaWQgMD09PW4mJihuPXRoaXMuY29sdW1ucy0xKSxlPm58fGU8MHx8ZT49dGhpcy5jb2x1bW5zfHxuPDB8fG4+PXRoaXMuY29sdW1ucyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQXJndW1lbnQgb3V0IG9mIHJhbmdlIik7bGV0IG89bmV3IFNNdCh0Lmxlbmd0aCxuLWUrMSk7Zm9yKGxldCBpPTA7aTx0Lmxlbmd0aDtpKyspZm9yKGxldCBhPWU7YTw9bjthKyspe2lmKHRbaV08MHx8dFtpXT49dGhpcy5yb3dzKXRocm93IG5ldyBSYW5nZUVycm9yKGBSb3cgaW5kZXggb3V0IG9mIHJhbmdlOiAke3RbaV19YCk7by5zZXQoaSxhLWUsdGhpcy5nZXQodFtpXSxhKSl9cmV0dXJuIG99c3ViTWF0cml4Q29sdW1uKHQsZSxuKXtpZih2b2lkIDA9PT1lJiYoZT0wKSx2b2lkIDA9PT1uJiYobj10aGlzLnJvd3MtMSksZT5ufHxlPDB8fGU+PXRoaXMucm93c3x8bjwwfHxuPj10aGlzLnJvd3MpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkFyZ3VtZW50IG91dCBvZiByYW5nZSIpO2xldCBvPW5ldyBTTXQobi1lKzEsdC5sZW5ndGgpO2ZvcihsZXQgaT0wO2k8dC5sZW5ndGg7aSsrKWZvcihsZXQgYT1lO2E8PW47YSsrKXtpZih0W2ldPDB8fHRbaV0+PXRoaXMuY29sdW1ucyl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgQ29sdW1uIGluZGV4IG91dCBvZiByYW5nZTogJHt0W2ldfWApO28uc2V0KGEtZSxpLHRoaXMuZ2V0KGEsdFtpXSkpfXJldHVybiBvfXNldFN1Yk1hdHJpeCh0LGUsbil7aWYoKHQ9U010LmNoZWNrTWF0cml4KHQpKS5pc0VtcHR5KCkpcmV0dXJuIHRoaXM7TU10KHRoaXMsZSxlK3Qucm93cy0xLG4sbit0LmNvbHVtbnMtMSk7Zm9yKGxldCBvPTA7bzx0LnJvd3M7bysrKWZvcihsZXQgaT0wO2k8dC5jb2x1bW5zO2krKyl0aGlzLnNldChlK28sbitpLHQuZ2V0KG8saSkpO3JldHVybiB0aGlzfXNlbGVjdGlvbih0LGUpe2xldCBuPShmdW5jdGlvbiBvKHQsZSxuKXtyZXR1cm57cm93Ol9NdCh0LGUpLGNvbHVtbjpDTXQodCxuKX19KSh0aGlzLHQsZSksaT1uZXcgU010KHQubGVuZ3RoLGUubGVuZ3RoKTtmb3IobGV0IHQ9MDt0PG4ucm93Lmxlbmd0aDt0Kyspe2xldCBlPW4ucm93W3RdO2ZvcihsZXQgbz0wO288bi5jb2x1bW4ubGVuZ3RoO28rKyl7aS5zZXQodCxvLHRoaXMuZ2V0KGUsbi5jb2x1bW5bb10pKX19cmV0dXJuIGl9dHJhY2UoKXtsZXQgdD1NYXRoLm1pbih0aGlzLnJvd3MsdGhpcy5jb2x1bW5zKSxlPTA7Zm9yKGxldCBuPTA7bjx0O24rKyllKz10aGlzLmdldChuLG4pO3JldHVybiBlfWNsb25lKCl7bGV0IHQ9bmV3IFNNdCh0aGlzLnJvd3MsdGhpcy5jb2x1bW5zKTtmb3IobGV0IGU9MDtlPHRoaXMucm93cztlKyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXQuc2V0KGUsbix0aGlzLmdldChlLG4pKTtyZXR1cm4gdH1zdW0odCl7c3dpdGNoKHQpe2Nhc2Uicm93IjpyZXR1cm4oZnVuY3Rpb24gZSh0KXtsZXQgZT12TXQodC5yb3dzKTtmb3IobGV0IG49MDtuPHQucm93czsrK24pZm9yKGxldCBvPTA7bzx0LmNvbHVtbnM7KytvKWVbbl0rPXQuZ2V0KG4sbyk7cmV0dXJuIGV9KSh0aGlzKTtjYXNlImNvbHVtbiI6cmV0dXJuKGZ1bmN0aW9uIG4odCl7bGV0IGU9dk10KHQuY29sdW1ucyk7Zm9yKGxldCBuPTA7bjx0LnJvd3M7KytuKWZvcihsZXQgbz0wO288dC5jb2x1bW5zOysrbyllW29dKz10LmdldChuLG8pO3JldHVybiBlfSkodGhpcyk7Y2FzZSB2b2lkIDA6cmV0dXJuKGZ1bmN0aW9uIG8odCl7bGV0IGU9MDtmb3IobGV0IG49MDtuPHQucm93cztuKyspZm9yKGxldCBvPTA7bzx0LmNvbHVtbnM7bysrKWUrPXQuZ2V0KG4sbyk7cmV0dXJuIGV9KSh0aGlzKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgaW52YWxpZCBvcHRpb246ICR7dH1gKX19cHJvZHVjdCh0KXtzd2l0Y2godCl7Y2FzZSJyb3ciOnJldHVybihmdW5jdGlvbiBlKHQpe2xldCBlPXZNdCh0LnJvd3MsMSk7Zm9yKGxldCBuPTA7bjx0LnJvd3M7KytuKWZvcihsZXQgbz0wO288dC5jb2x1bW5zOysrbyllW25dKj10LmdldChuLG8pO3JldHVybiBlfSkodGhpcyk7Y2FzZSJjb2x1bW4iOnJldHVybihmdW5jdGlvbiBuKHQpe2xldCBlPXZNdCh0LmNvbHVtbnMsMSk7Zm9yKGxldCBuPTA7bjx0LnJvd3M7KytuKWZvcihsZXQgbz0wO288dC5jb2x1bW5zOysrbyllW29dKj10LmdldChuLG8pO3JldHVybiBlfSkodGhpcyk7Y2FzZSB2b2lkIDA6cmV0dXJuKGZ1bmN0aW9uIG8odCl7bGV0IGU9MTtmb3IobGV0IG49MDtuPHQucm93cztuKyspZm9yKGxldCBvPTA7bzx0LmNvbHVtbnM7bysrKWUqPXQuZ2V0KG4sbyk7cmV0dXJuIGV9KSh0aGlzKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgaW52YWxpZCBvcHRpb246ICR7dH1gKX19bWVhbih0KXtjb25zdCBlPXRoaXMuc3VtKHQpO3N3aXRjaCh0KXtjYXNlInJvdyI6Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWVbdF0vPXRoaXMuY29sdW1ucztyZXR1cm4gZTtjYXNlImNvbHVtbiI6Zm9yKGxldCB0PTA7dDx0aGlzLmNvbHVtbnM7dCsrKWVbdF0vPXRoaXMucm93cztyZXR1cm4gZTtjYXNlIHZvaWQgMDpyZXR1cm4gZS90aGlzLnNpemU7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgb3B0aW9uOiAke3R9YCl9fXZhcmlhbmNlKHQsZT17fSl7aWYoIm9iamVjdCI9PXR5cGVvZiB0JiYoZT10LHQ9dm9pZCAwKSwib2JqZWN0IiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIpO2NvbnN0e3VuYmlhc2VkOm49ITAsbWVhbjpvPXRoaXMubWVhbih0KX09ZTtpZigiYm9vbGVhbiIhPXR5cGVvZiBuKXRocm93IG5ldyBUeXBlRXJyb3IoInVuYmlhc2VkIG11c3QgYmUgYSBib29sZWFuIik7c3dpdGNoKHQpe2Nhc2Uicm93IjppZighQXJyYXkuaXNBcnJheShvKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJtZWFuIG11c3QgYmUgYW4gYXJyYXkiKTtyZXR1cm4oZnVuY3Rpb24gZSh0LG4sbyl7Y29uc3QgaT10LnJvd3MsYT10LmNvbHVtbnMscj1bXTtmb3IobGV0IGU9MDtlPGk7ZSsrKXtsZXQgaT0wLHM9MCxsPTA7Zm9yKGxldCBuPTA7bjxhO24rKylsPXQuZ2V0KGUsbiktb1tlXSxpKz1sLHMrPWwqbDtyLnB1c2gobj8ocy1pKmkvYSkvKGEtMSk6KHMtaSppL2EpL2EpfXJldHVybiByfSkodGhpcyxuLG8pO2Nhc2UiY29sdW1uIjppZighQXJyYXkuaXNBcnJheShvKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJtZWFuIG11c3QgYmUgYW4gYXJyYXkiKTtyZXR1cm4oZnVuY3Rpb24gaSh0LGUsbil7Y29uc3Qgbz10LnJvd3MsaT10LmNvbHVtbnMsYT1bXTtmb3IobGV0IHI9MDtyPGk7cisrKXtsZXQgaT0wLHM9MCxsPTA7Zm9yKGxldCBlPTA7ZTxvO2UrKylsPXQuZ2V0KGUsciktbltyXSxpKz1sLHMrPWwqbDthLnB1c2goZT8ocy1pKmkvbykvKG8tMSk6KHMtaSppL28pL28pfXJldHVybiBhfSkodGhpcyxuLG8pO2Nhc2Ugdm9pZCAwOmlmKCJudW1iZXIiIT10eXBlb2Ygbyl0aHJvdyBuZXcgVHlwZUVycm9yKCJtZWFuIG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4oZnVuY3Rpb24gYSh0LGUsbil7Y29uc3Qgbz10LnJvd3MsaT10LmNvbHVtbnMsYT1vKmk7bGV0IHI9MCxzPTAsbD0wO2ZvcihsZXQgZT0wO2U8bztlKyspZm9yKGxldCBvPTA7bzxpO28rKylsPXQuZ2V0KGUsbyktbixyKz1sLHMrPWwqbDtyZXR1cm4gZT8ocy1yKnIvYSkvKGEtMSk6KHMtcipyL2EpL2F9KSh0aGlzLG4sbyk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgb3B0aW9uOiAke3R9YCl9fXN0YW5kYXJkRGV2aWF0aW9uKHQsZSl7Im9iamVjdCI9PXR5cGVvZiB0JiYoZT10LHQ9dm9pZCAwKTtjb25zdCBuPXRoaXMudmFyaWFuY2UodCxlKTtpZih2b2lkIDA9PT10KXJldHVybiBNYXRoLnNxcnQobik7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kyspblt0XT1NYXRoLnNxcnQoblt0XSk7cmV0dXJuIG59Y2VudGVyKHQsZT17fSl7aWYoIm9iamVjdCI9PXR5cGVvZiB0JiYoZT10LHQ9dm9pZCAwKSwib2JqZWN0IiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIpO2NvbnN0e2NlbnRlcjpuPXRoaXMubWVhbih0KX09ZTtzd2l0Y2godCl7Y2FzZSJyb3ciOmlmKCFBcnJheS5pc0FycmF5KG4pKXRocm93IG5ldyBUeXBlRXJyb3IoImNlbnRlciBtdXN0IGJlIGFuIGFycmF5Iik7cmV0dXJuKGZ1bmN0aW9uIGUodCxuKXtmb3IobGV0IGU9MDtlPHQucm93cztlKyspZm9yKGxldCBvPTA7bzx0LmNvbHVtbnM7bysrKXQuc2V0KGUsbyx0LmdldChlLG8pLW5bZV0pfSkodGhpcyxuKSx0aGlzO2Nhc2UiY29sdW1uIjppZighQXJyYXkuaXNBcnJheShuKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJjZW50ZXIgbXVzdCBiZSBhbiBhcnJheSIpO3JldHVybihmdW5jdGlvbiBvKHQsZSl7Zm9yKGxldCBuPTA7bjx0LnJvd3M7bisrKWZvcihsZXQgbz0wO288dC5jb2x1bW5zO28rKyl0LnNldChuLG8sdC5nZXQobixvKS1lW29dKX0pKHRoaXMsbiksdGhpcztjYXNlIHZvaWQgMDppZigibnVtYmVyIiE9dHlwZW9mIG4pdGhyb3cgbmV3IFR5cGVFcnJvcigiY2VudGVyIG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4oZnVuY3Rpb24gaSh0LGUpe2ZvcihsZXQgbj0wO248dC5yb3dzO24rKylmb3IobGV0IG89MDtvPHQuY29sdW1ucztvKyspdC5zZXQobixvLHQuZ2V0KG4sbyktZSl9KSh0aGlzLG4pLHRoaXM7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgb3B0aW9uOiAke3R9YCl9fXNjYWxlKHQsZT17fSl7aWYoIm9iamVjdCI9PXR5cGVvZiB0JiYoZT10LHQ9dm9pZCAwKSwib2JqZWN0IiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIpO2xldCBuPWUuc2NhbGU7c3dpdGNoKHQpe2Nhc2Uicm93IjppZih2b2lkIDA9PT1uKW49KGZ1bmN0aW9uIGUodCl7Y29uc3QgZT1bXTtmb3IobGV0IG49MDtuPHQucm93cztuKyspe2xldCBvPTA7Zm9yKGxldCBlPTA7ZTx0LmNvbHVtbnM7ZSsrKW8rPU1hdGgucG93KHQuZ2V0KG4sZSksMikvKHQuY29sdW1ucy0xKTtlLnB1c2goTWF0aC5zcXJ0KG8pKX1yZXR1cm4gZX0pKHRoaXMpO2Vsc2UgaWYoIUFycmF5LmlzQXJyYXkobikpdGhyb3cgbmV3IFR5cGVFcnJvcigic2NhbGUgbXVzdCBiZSBhbiBhcnJheSIpO3JldHVybihmdW5jdGlvbiBvKHQsZSl7Zm9yKGxldCBuPTA7bjx0LnJvd3M7bisrKWZvcihsZXQgbz0wO288dC5jb2x1bW5zO28rKyl0LnNldChuLG8sdC5nZXQobixvKS9lW25dKX0pKHRoaXMsbiksdGhpcztjYXNlImNvbHVtbiI6aWYodm9pZCAwPT09biluPShmdW5jdGlvbiBpKHQpe2NvbnN0IGU9W107Zm9yKGxldCBuPTA7bjx0LmNvbHVtbnM7bisrKXtsZXQgbz0wO2ZvcihsZXQgZT0wO2U8dC5yb3dzO2UrKylvKz1NYXRoLnBvdyh0LmdldChlLG4pLDIpLyh0LnJvd3MtMSk7ZS5wdXNoKE1hdGguc3FydChvKSl9cmV0dXJuIGV9KSh0aGlzKTtlbHNlIGlmKCFBcnJheS5pc0FycmF5KG4pKXRocm93IG5ldyBUeXBlRXJyb3IoInNjYWxlIG11c3QgYmUgYW4gYXJyYXkiKTtyZXR1cm4oZnVuY3Rpb24gYSh0LGUpe2ZvcihsZXQgbj0wO248dC5yb3dzO24rKylmb3IobGV0IG89MDtvPHQuY29sdW1ucztvKyspdC5zZXQobixvLHQuZ2V0KG4sbykvZVtvXSl9KSh0aGlzLG4pLHRoaXM7Y2FzZSB2b2lkIDA6aWYodm9pZCAwPT09biluPShmdW5jdGlvbiByKHQpe2NvbnN0IGU9dC5zaXplLTE7bGV0IG49MDtmb3IobGV0IG89MDtvPHQuY29sdW1ucztvKyspZm9yKGxldCBpPTA7aTx0LnJvd3M7aSsrKW4rPU1hdGgucG93KHQuZ2V0KGksbyksMikvZTtyZXR1cm4gTWF0aC5zcXJ0KG4pfSkodGhpcyk7ZWxzZSBpZigibnVtYmVyIiE9dHlwZW9mIG4pdGhyb3cgbmV3IFR5cGVFcnJvcigic2NhbGUgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybihmdW5jdGlvbiBzKHQsZSl7Zm9yKGxldCBuPTA7bjx0LnJvd3M7bisrKWZvcihsZXQgbz0wO288dC5jb2x1bW5zO28rKyl0LnNldChuLG8sdC5nZXQobixvKS9lKX0pKHRoaXMsbiksdGhpcztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgaW52YWxpZCBvcHRpb246ICR7dH1gKX19dG9TdHJpbmcodCl7cmV0dXJuIGZNdCh0aGlzLHQpfX1mdW5jdGlvbiB3TXQodCxlKXtyZXR1cm4gdC1lfVBNdC5wcm90b3R5cGUua2xhc3M9Ik1hdHJpeCIsInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJihQTXQucHJvdG90eXBlW1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tIildPWZ1bmN0aW9uIGtNdCgpe3JldHVybiBmTXQodGhpcyl9KSxQTXQucmFuZG9tPVBNdC5yYW5kLFBNdC5yYW5kb21JbnQ9UE10LnJhbmRJbnQsUE10LmRpYWdvbmFsPVBNdC5kaWFnLFBNdC5wcm90b3R5cGUuZGlhZ29uYWw9UE10LnByb3RvdHlwZS5kaWFnLFBNdC5pZGVudGl0eT1QTXQuZXllLFBNdC5wcm90b3R5cGUubmVnYXRlPVBNdC5wcm90b3R5cGUubmVnLFBNdC5wcm90b3R5cGUudGVuc29yUHJvZHVjdD1QTXQucHJvdG90eXBlLmtyb25lY2tlclByb2R1Y3Q7Y2xhc3MgU010IGV4dGVuZHMgUE10e2NvbnN0cnVjdG9yKHQsZSl7aWYoc3VwZXIoKSxTTXQuaXNNYXRyaXgodCkpcmV0dXJuIHQuY2xvbmUoKTtpZihOdW1iZXIuaXNJbnRlZ2VyKHQpJiZ0Pj0wKXtpZih0aGlzLmRhdGE9W10sIShOdW1iZXIuaXNJbnRlZ2VyKGUpJiZlPj0wKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJuQ29sdW1ucyBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciIpO2ZvcihsZXQgbj0wO248dDtuKyspdGhpcy5kYXRhLnB1c2gobmV3IEZsb2F0NjRBcnJheShlKSl9ZWxzZXtpZighQXJyYXkuaXNBcnJheSh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJGaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyIG9yIGFuIGFycmF5Iik7e2NvbnN0IG49dDtpZigibnVtYmVyIiE9dHlwZW9mKGU9KHQ9bi5sZW5ndGgpP25bMF0ubGVuZ3RoOjApKXRocm93IG5ldyBUeXBlRXJyb3IoIkRhdGEgbXVzdCBiZSBhIDJEIGFycmF5IHdpdGggYXQgbGVhc3Qgb25lIGVsZW1lbnQiKTt0aGlzLmRhdGE9W107Zm9yKGxldCBvPTA7bzx0O28rKyl7aWYobltvXS5sZW5ndGghPT1lKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmNvbnNpc3RlbnQgYXJyYXkgZGltZW5zaW9ucyIpO3RoaXMuZGF0YS5wdXNoKEZsb2F0NjRBcnJheS5mcm9tKG5bb10pKX19fXRoaXMucm93cz10LHRoaXMuY29sdW1ucz1lfXNldCh0LGUsbil7cmV0dXJuIHRoaXMuZGF0YVt0XVtlXT1uLHRoaXN9Z2V0KHQsZSl7cmV0dXJuIHRoaXMuZGF0YVt0XVtlXX1yZW1vdmVSb3codCl7cmV0dXJuIGdNdCh0aGlzLHQpLHRoaXMuZGF0YS5zcGxpY2UodCwxKSx0aGlzLnJvd3MtPTEsdGhpc31hZGRSb3codCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9dCx0PXRoaXMucm93cyksZ010KHRoaXMsdCwhMCksZT1GbG9hdDY0QXJyYXkuZnJvbShiTXQodGhpcyxlKSksdGhpcy5kYXRhLnNwbGljZSh0LDAsZSksdGhpcy5yb3dzKz0xLHRoaXN9cmVtb3ZlQ29sdW1uKHQpe2hNdCh0aGlzLHQpO2ZvcihsZXQgZT0wO2U8dGhpcy5yb3dzO2UrKyl7Y29uc3Qgbj1uZXcgRmxvYXQ2NEFycmF5KHRoaXMuY29sdW1ucy0xKTtmb3IobGV0IG89MDtvPHQ7bysrKW5bb109dGhpcy5kYXRhW2VdW29dO2ZvcihsZXQgbz10KzE7bzx0aGlzLmNvbHVtbnM7bysrKW5bby0xXT10aGlzLmRhdGFbZV1bb107dGhpcy5kYXRhW2VdPW59cmV0dXJuIHRoaXMuY29sdW1ucy09MSx0aGlzfWFkZENvbHVtbih0LGUpe3ZvaWQgMD09PWUmJihlPXQsdD10aGlzLmNvbHVtbnMpLGhNdCh0aGlzLHQsITApLGU9eU10KHRoaXMsZSk7Zm9yKGxldCBuPTA7bjx0aGlzLnJvd3M7bisrKXtjb25zdCBvPW5ldyBGbG9hdDY0QXJyYXkodGhpcy5jb2x1bW5zKzEpO2xldCBpPTA7Zm9yKDtpPHQ7aSsrKW9baV09dGhpcy5kYXRhW25dW2ldO2ZvcihvW2krK109ZVtuXTtpPHRoaXMuY29sdW1ucysxO2krKylvW2ldPXRoaXMuZGF0YVtuXVtpLTFdO3RoaXMuZGF0YVtuXT1vfXJldHVybiB0aGlzLmNvbHVtbnMrPTEsdGhpc319IShmdW5jdGlvbiBETXQodCxlKXt0LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24gdChlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU/dGhpcy5hZGRTKGUpOnRoaXMuYWRkTShlKX0sdC5wcm90b3R5cGUuYWRkUz1mdW5jdGlvbiB0KGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5zZXQodCxuLHRoaXMuZ2V0KHQsbikrZSk7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmFkZE09ZnVuY3Rpb24gdChuKXtpZihuPWUuY2hlY2tNYXRyaXgobiksdGhpcy5yb3dzIT09bi5yb3dzfHx0aGlzLmNvbHVtbnMhPT1uLmNvbHVtbnMpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk1hdHJpY2VzIGRpbWVuc2lvbnMgbXVzdCBiZSBlcXVhbCIpO2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLHRoaXMuZ2V0KHQsZSkrbi5nZXQodCxlKSk7cmV0dXJuIHRoaXN9LHQuYWRkPWZ1bmN0aW9uIHQobixvKXtyZXR1cm4gbmV3IGUobikuYWRkKG8pfSx0LnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24gdChlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU/dGhpcy5zdWJTKGUpOnRoaXMuc3ViTShlKX0sdC5wcm90b3R5cGUuc3ViUz1mdW5jdGlvbiB0KGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5zZXQodCxuLHRoaXMuZ2V0KHQsbiktZSk7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLnN1Yk09ZnVuY3Rpb24gdChuKXtpZihuPWUuY2hlY2tNYXRyaXgobiksdGhpcy5yb3dzIT09bi5yb3dzfHx0aGlzLmNvbHVtbnMhPT1uLmNvbHVtbnMpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk1hdHJpY2VzIGRpbWVuc2lvbnMgbXVzdCBiZSBlcXVhbCIpO2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLHRoaXMuZ2V0KHQsZSktbi5nZXQodCxlKSk7cmV0dXJuIHRoaXN9LHQuc3ViPWZ1bmN0aW9uIHQobixvKXtyZXR1cm4gbmV3IGUobikuc3ViKG8pfSx0LnByb3RvdHlwZS5zdWJ0cmFjdD10LnByb3RvdHlwZS5zdWIsdC5wcm90b3R5cGUuc3VidHJhY3RTPXQucHJvdG90eXBlLnN1YlMsdC5wcm90b3R5cGUuc3VidHJhY3RNPXQucHJvdG90eXBlLnN1Yk0sdC5zdWJ0cmFjdD10LnN1Yix0LnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24gdChlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU/dGhpcy5tdWxTKGUpOnRoaXMubXVsTShlKX0sdC5wcm90b3R5cGUubXVsUz1mdW5jdGlvbiB0KGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5zZXQodCxuLHRoaXMuZ2V0KHQsbikqZSk7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLm11bE09ZnVuY3Rpb24gdChuKXtpZihuPWUuY2hlY2tNYXRyaXgobiksdGhpcy5yb3dzIT09bi5yb3dzfHx0aGlzLmNvbHVtbnMhPT1uLmNvbHVtbnMpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk1hdHJpY2VzIGRpbWVuc2lvbnMgbXVzdCBiZSBlcXVhbCIpO2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLHRoaXMuZ2V0KHQsZSkqbi5nZXQodCxlKSk7cmV0dXJuIHRoaXN9LHQubXVsPWZ1bmN0aW9uIHQobixvKXtyZXR1cm4gbmV3IGUobikubXVsKG8pfSx0LnByb3RvdHlwZS5tdWx0aXBseT10LnByb3RvdHlwZS5tdWwsdC5wcm90b3R5cGUubXVsdGlwbHlTPXQucHJvdG90eXBlLm11bFMsdC5wcm90b3R5cGUubXVsdGlwbHlNPXQucHJvdG90eXBlLm11bE0sdC5tdWx0aXBseT10Lm11bCx0LnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24gdChlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU/dGhpcy5kaXZTKGUpOnRoaXMuZGl2TShlKX0sdC5wcm90b3R5cGUuZGl2Uz1mdW5jdGlvbiB0KGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5zZXQodCxuLHRoaXMuZ2V0KHQsbikvZSk7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmRpdk09ZnVuY3Rpb24gdChuKXtpZihuPWUuY2hlY2tNYXRyaXgobiksdGhpcy5yb3dzIT09bi5yb3dzfHx0aGlzLmNvbHVtbnMhPT1uLmNvbHVtbnMpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk1hdHJpY2VzIGRpbWVuc2lvbnMgbXVzdCBiZSBlcXVhbCIpO2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLHRoaXMuZ2V0KHQsZSkvbi5nZXQodCxlKSk7cmV0dXJuIHRoaXN9LHQuZGl2PWZ1bmN0aW9uIHQobixvKXtyZXR1cm4gbmV3IGUobikuZGl2KG8pfSx0LnByb3RvdHlwZS5kaXZpZGU9dC5wcm90b3R5cGUuZGl2LHQucHJvdG90eXBlLmRpdmlkZVM9dC5wcm90b3R5cGUuZGl2Uyx0LnByb3RvdHlwZS5kaXZpZGVNPXQucHJvdG90eXBlLmRpdk0sdC5kaXZpZGU9dC5kaXYsdC5wcm90b3R5cGUubW9kPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlP3RoaXMubW9kUyhlKTp0aGlzLm1vZE0oZSl9LHQucHJvdG90eXBlLm1vZFM9ZnVuY3Rpb24gdChlKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBuPTA7bjx0aGlzLmNvbHVtbnM7bisrKXRoaXMuc2V0KHQsbix0aGlzLmdldCh0LG4pJWUpO3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5tb2RNPWZ1bmN0aW9uIHQobil7aWYobj1lLmNoZWNrTWF0cml4KG4pLHRoaXMucm93cyE9PW4ucm93c3x8dGhpcy5jb2x1bW5zIT09bi5jb2x1bW5zKXRocm93IG5ldyBSYW5nZUVycm9yKCJNYXRyaWNlcyBkaW1lbnNpb25zIG11c3QgYmUgZXF1YWwiKTtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSx0aGlzLmdldCh0LGUpJW4uZ2V0KHQsZSkpO3JldHVybiB0aGlzfSx0Lm1vZD1mdW5jdGlvbiB0KG4sbyl7cmV0dXJuIG5ldyBlKG4pLm1vZChvKX0sdC5wcm90b3R5cGUubW9kdWx1cz10LnByb3RvdHlwZS5tb2QsdC5wcm90b3R5cGUubW9kdWx1c1M9dC5wcm90b3R5cGUubW9kUyx0LnByb3RvdHlwZS5tb2R1bHVzTT10LnByb3RvdHlwZS5tb2RNLHQubW9kdWx1cz10Lm1vZCx0LnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24gdChlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU/dGhpcy5hbmRTKGUpOnRoaXMuYW5kTShlKX0sdC5wcm90b3R5cGUuYW5kUz1mdW5jdGlvbiB0KGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IG49MDtuPHRoaXMuY29sdW1ucztuKyspdGhpcy5zZXQodCxuLHRoaXMuZ2V0KHQsbikmZSk7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmFuZE09ZnVuY3Rpb24gdChuKXtpZihuPWUuY2hlY2tNYXRyaXgobiksdGhpcy5yb3dzIT09bi5yb3dzfHx0aGlzLmNvbHVtbnMhPT1uLmNvbHVtbnMpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk1hdHJpY2VzIGRpbWVuc2lvbnMgbXVzdCBiZSBlcXVhbCIpO2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLHRoaXMuZ2V0KHQsZSkmbi5nZXQodCxlKSk7cmV0dXJuIHRoaXN9LHQuYW5kPWZ1bmN0aW9uIHQobixvKXtyZXR1cm4gbmV3IGUobikuYW5kKG8pfSx0LnByb3RvdHlwZS5vcj1mdW5jdGlvbiB0KGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZT90aGlzLm9yUyhlKTp0aGlzLm9yTShlKX0sdC5wcm90b3R5cGUub3JTPWZ1bmN0aW9uIHQoZSl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0aGlzLnNldCh0LG4sdGhpcy5nZXQodCxuKXxlKTtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUub3JNPWZ1bmN0aW9uIHQobil7aWYobj1lLmNoZWNrTWF0cml4KG4pLHRoaXMucm93cyE9PW4ucm93c3x8dGhpcy5jb2x1bW5zIT09bi5jb2x1bW5zKXRocm93IG5ldyBSYW5nZUVycm9yKCJNYXRyaWNlcyBkaW1lbnNpb25zIG11c3QgYmUgZXF1YWwiKTtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSx0aGlzLmdldCh0LGUpfG4uZ2V0KHQsZSkpO3JldHVybiB0aGlzfSx0Lm9yPWZ1bmN0aW9uIHQobixvKXtyZXR1cm4gbmV3IGUobikub3Iobyl9LHQucHJvdG90eXBlLnhvcj1mdW5jdGlvbiB0KGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZT90aGlzLnhvclMoZSk6dGhpcy54b3JNKGUpfSx0LnByb3RvdHlwZS54b3JTPWZ1bmN0aW9uIHQoZSl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0aGlzLnNldCh0LG4sdGhpcy5nZXQodCxuKV5lKTtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUueG9yTT1mdW5jdGlvbiB0KG4pe2lmKG49ZS5jaGVja01hdHJpeChuKSx0aGlzLnJvd3MhPT1uLnJvd3N8fHRoaXMuY29sdW1ucyE9PW4uY29sdW1ucyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTWF0cmljZXMgZGltZW5zaW9ucyBtdXN0IGJlIGVxdWFsIik7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsdGhpcy5nZXQodCxlKV5uLmdldCh0LGUpKTtyZXR1cm4gdGhpc30sdC54b3I9ZnVuY3Rpb24gdChuLG8pe3JldHVybiBuZXcgZShuKS54b3Iobyl9LHQucHJvdG90eXBlLmxlZnRTaGlmdD1mdW5jdGlvbiB0KGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZT90aGlzLmxlZnRTaGlmdFMoZSk6dGhpcy5sZWZ0U2hpZnRNKGUpfSx0LnByb3RvdHlwZS5sZWZ0U2hpZnRTPWZ1bmN0aW9uIHQoZSl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0aGlzLnNldCh0LG4sdGhpcy5nZXQodCxuKTw8ZSk7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmxlZnRTaGlmdE09ZnVuY3Rpb24gdChuKXtpZihuPWUuY2hlY2tNYXRyaXgobiksdGhpcy5yb3dzIT09bi5yb3dzfHx0aGlzLmNvbHVtbnMhPT1uLmNvbHVtbnMpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk1hdHJpY2VzIGRpbWVuc2lvbnMgbXVzdCBiZSBlcXVhbCIpO2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLHRoaXMuZ2V0KHQsZSk8PG4uZ2V0KHQsZSkpO3JldHVybiB0aGlzfSx0LmxlZnRTaGlmdD1mdW5jdGlvbiB0KG4sbyl7cmV0dXJuIG5ldyBlKG4pLmxlZnRTaGlmdChvKX0sdC5wcm90b3R5cGUuc2lnblByb3BhZ2F0aW5nUmlnaHRTaGlmdD1mdW5jdGlvbiB0KGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZT90aGlzLnNpZ25Qcm9wYWdhdGluZ1JpZ2h0U2hpZnRTKGUpOnRoaXMuc2lnblByb3BhZ2F0aW5nUmlnaHRTaGlmdE0oZSl9LHQucHJvdG90eXBlLnNpZ25Qcm9wYWdhdGluZ1JpZ2h0U2hpZnRTPWZ1bmN0aW9uIHQoZSl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0aGlzLnNldCh0LG4sdGhpcy5nZXQodCxuKT4+ZSk7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLnNpZ25Qcm9wYWdhdGluZ1JpZ2h0U2hpZnRNPWZ1bmN0aW9uIHQobil7aWYobj1lLmNoZWNrTWF0cml4KG4pLHRoaXMucm93cyE9PW4ucm93c3x8dGhpcy5jb2x1bW5zIT09bi5jb2x1bW5zKXRocm93IG5ldyBSYW5nZUVycm9yKCJNYXRyaWNlcyBkaW1lbnNpb25zIG11c3QgYmUgZXF1YWwiKTtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSx0aGlzLmdldCh0LGUpPj5uLmdldCh0LGUpKTtyZXR1cm4gdGhpc30sdC5zaWduUHJvcGFnYXRpbmdSaWdodFNoaWZ0PWZ1bmN0aW9uIHQobixvKXtyZXR1cm4gbmV3IGUobikuc2lnblByb3BhZ2F0aW5nUmlnaHRTaGlmdChvKX0sdC5wcm90b3R5cGUucmlnaHRTaGlmdD1mdW5jdGlvbiB0KGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZT90aGlzLnJpZ2h0U2hpZnRTKGUpOnRoaXMucmlnaHRTaGlmdE0oZSl9LHQucHJvdG90eXBlLnJpZ2h0U2hpZnRTPWZ1bmN0aW9uIHQoZSl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0aGlzLnNldCh0LG4sdGhpcy5nZXQodCxuKT4+PmUpO3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5yaWdodFNoaWZ0TT1mdW5jdGlvbiB0KG4pe2lmKG49ZS5jaGVja01hdHJpeChuKSx0aGlzLnJvd3MhPT1uLnJvd3N8fHRoaXMuY29sdW1ucyE9PW4uY29sdW1ucyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiTWF0cmljZXMgZGltZW5zaW9ucyBtdXN0IGJlIGVxdWFsIik7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsdGhpcy5nZXQodCxlKT4+Pm4uZ2V0KHQsZSkpO3JldHVybiB0aGlzfSx0LnJpZ2h0U2hpZnQ9ZnVuY3Rpb24gdChuLG8pe3JldHVybiBuZXcgZShuKS5yaWdodFNoaWZ0KG8pfSx0LnByb3RvdHlwZS56ZXJvRmlsbFJpZ2h0U2hpZnQ9dC5wcm90b3R5cGUucmlnaHRTaGlmdCx0LnByb3RvdHlwZS56ZXJvRmlsbFJpZ2h0U2hpZnRTPXQucHJvdG90eXBlLnJpZ2h0U2hpZnRTLHQucHJvdG90eXBlLnplcm9GaWxsUmlnaHRTaGlmdE09dC5wcm90b3R5cGUucmlnaHRTaGlmdE0sdC56ZXJvRmlsbFJpZ2h0U2hpZnQ9dC5yaWdodFNoaWZ0LHQucHJvdG90eXBlLm5vdD1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsfnRoaXMuZ2V0KHQsZSkpO3JldHVybiB0aGlzfSx0Lm5vdD1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5ub3QoKX0sdC5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLmFicyh0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQuYWJzPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmFicygpfSx0LnByb3RvdHlwZS5hY29zPWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLmFjb3ModGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LmFjb3M9ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikuYWNvcygpfSx0LnByb3RvdHlwZS5hY29zaD1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5hY29zaCh0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQuYWNvc2g9ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikuYWNvc2goKX0sdC5wcm90b3R5cGUuYXNpbj1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5hc2luKHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC5hc2luPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmFzaW4oKX0sdC5wcm90b3R5cGUuYXNpbmg9ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGguYXNpbmgodGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LmFzaW5oPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmFzaW5oKCl9LHQucHJvdG90eXBlLmF0YW49ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGguYXRhbih0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQuYXRhbj1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5hdGFuKCl9LHQucHJvdG90eXBlLmF0YW5oPWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLmF0YW5oKHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC5hdGFuaD1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5hdGFuaCgpfSx0LnByb3RvdHlwZS5jYnJ0PWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLmNicnQodGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LmNicnQ9ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikuY2JydCgpfSx0LnByb3RvdHlwZS5jZWlsPWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLmNlaWwodGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LmNlaWw9ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikuY2VpbCgpfSx0LnByb3RvdHlwZS5jbHozMj1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5jbHozMih0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQuY2x6MzI9ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikuY2x6MzIoKX0sdC5wcm90b3R5cGUuY29zPWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLmNvcyh0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQuY29zPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmNvcygpfSx0LnByb3RvdHlwZS5jb3NoPWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLmNvc2godGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LmNvc2g9ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikuY29zaCgpfSx0LnByb3RvdHlwZS5leHA9ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGguZXhwKHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC5leHA9ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikuZXhwKCl9LHQucHJvdG90eXBlLmV4cG0xPWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLmV4cG0xKHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC5leHBtMT1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5leHBtMSgpfSx0LnByb3RvdHlwZS5mbG9vcj1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5mbG9vcih0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQuZmxvb3I9ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikuZmxvb3IoKX0sdC5wcm90b3R5cGUuZnJvdW5kPWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLmZyb3VuZCh0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQuZnJvdW5kPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmZyb3VuZCgpfSx0LnByb3RvdHlwZS5sb2c9ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGgubG9nKHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC5sb2c9ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikubG9nKCl9LHQucHJvdG90eXBlLmxvZzFwPWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLmxvZzFwKHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC5sb2cxcD1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5sb2cxcCgpfSx0LnByb3RvdHlwZS5sb2cxMD1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5sb2cxMCh0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQubG9nMTA9ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikubG9nMTAoKX0sdC5wcm90b3R5cGUubG9nMj1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5sb2cyKHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC5sb2cyPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLmxvZzIoKX0sdC5wcm90b3R5cGUucm91bmQ9ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGgucm91bmQodGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LnJvdW5kPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLnJvdW5kKCl9LHQucHJvdG90eXBlLnNpZ249ZnVuY3Rpb24gdCgpe2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGguc2lnbih0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQuc2lnbj1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5zaWduKCl9LHQucHJvdG90eXBlLnNpbj1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5zaW4odGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LnNpbj1mdW5jdGlvbiB0KG4pe3JldHVybiBuZXcgZShuKS5zaW4oKX0sdC5wcm90b3R5cGUuc2luaD1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5zaW5oKHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC5zaW5oPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLnNpbmgoKX0sdC5wcm90b3R5cGUuc3FydD1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC5zcXJ0KHRoaXMuZ2V0KHQsZSkpKTtyZXR1cm4gdGhpc30sdC5zcXJ0PWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLnNxcnQoKX0sdC5wcm90b3R5cGUudGFuPWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLnRhbih0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQudGFuPWZ1bmN0aW9uIHQobil7cmV0dXJuIG5ldyBlKG4pLnRhbigpfSx0LnByb3RvdHlwZS50YW5oPWZ1bmN0aW9uIHQoKXtmb3IobGV0IHQ9MDt0PHRoaXMucm93czt0KyspZm9yKGxldCBlPTA7ZTx0aGlzLmNvbHVtbnM7ZSsrKXRoaXMuc2V0KHQsZSxNYXRoLnRhbmgodGhpcy5nZXQodCxlKSkpO3JldHVybiB0aGlzfSx0LnRhbmg9ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikudGFuaCgpfSx0LnByb3RvdHlwZS50cnVuYz1mdW5jdGlvbiB0KCl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgZT0wO2U8dGhpcy5jb2x1bW5zO2UrKyl0aGlzLnNldCh0LGUsTWF0aC50cnVuYyh0aGlzLmdldCh0LGUpKSk7cmV0dXJuIHRoaXN9LHQudHJ1bmM9ZnVuY3Rpb24gdChuKXtyZXR1cm4gbmV3IGUobikudHJ1bmMoKX0sdC5wb3c9ZnVuY3Rpb24gdChuLG8pe3JldHVybiBuZXcgZShuKS5wb3cobyl9LHQucHJvdG90eXBlLnBvdz1mdW5jdGlvbiB0KGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZT90aGlzLnBvd1MoZSk6dGhpcy5wb3dNKGUpfSx0LnByb3RvdHlwZS5wb3dTPWZ1bmN0aW9uIHQoZSl7Zm9yKGxldCB0PTA7dDx0aGlzLnJvd3M7dCsrKWZvcihsZXQgbj0wO248dGhpcy5jb2x1bW5zO24rKyl0aGlzLnNldCh0LG4sTWF0aC5wb3codGhpcy5nZXQodCxuKSxlKSk7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLnBvd009ZnVuY3Rpb24gdChuKXtpZihuPWUuY2hlY2tNYXRyaXgobiksdGhpcy5yb3dzIT09bi5yb3dzfHx0aGlzLmNvbHVtbnMhPT1uLmNvbHVtbnMpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk1hdHJpY2VzIGRpbWVuc2lvbnMgbXVzdCBiZSBlcXVhbCIpO2ZvcihsZXQgdD0wO3Q8dGhpcy5yb3dzO3QrKylmb3IobGV0IGU9MDtlPHRoaXMuY29sdW1ucztlKyspdGhpcy5zZXQodCxlLE1hdGgucG93KHRoaXMuZ2V0KHQsZSksbi5nZXQodCxlKSkpO3JldHVybiB0aGlzfX0pKFBNdCxTTXQpO2NsYXNzIFJNdCBleHRlbmRzIFBNdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuZGF0YT10LHRoaXMucm93cz10Lmxlbmd0aCx0aGlzLmNvbHVtbnM9dFswXS5sZW5ndGh9c2V0KHQsZSxuKXtyZXR1cm4gdGhpcy5kYXRhW3RdW2VdPW4sdGhpc31nZXQodCxlKXtyZXR1cm4gdGhpcy5kYXRhW3RdW2VdfX1jbGFzcyBFTXR7Y29uc3RydWN0b3IodCl7bGV0IGUsbixvLGksYSxyLHMsbCxjLGQ9KHQ9Uk10LmNoZWNrTWF0cml4KHQpKS5jbG9uZSgpLHA9ZC5yb3dzLG09ZC5jb2x1bW5zLGY9bmV3IEZsb2F0NjRBcnJheShwKSx1PTE7Zm9yKGU9MDtlPHA7ZSsrKWZbZV09ZTtmb3IobD1uZXcgRmxvYXQ2NEFycmF5KHApLG49MDtuPG07bisrKXtmb3IoZT0wO2U8cDtlKyspbFtlXT1kLmdldChlLG4pO2ZvcihlPTA7ZTxwO2UrKyl7Zm9yKGM9TWF0aC5taW4oZSxuKSxhPTAsbz0wO288YztvKyspYSs9ZC5nZXQoZSxvKSpsW29dO2xbZV0tPWEsZC5zZXQoZSxuLGxbZV0pfWZvcihpPW4sZT1uKzE7ZTxwO2UrKylNYXRoLmFicyhsW2VdKT5NYXRoLmFicyhsW2ldKSYmKGk9ZSk7aWYoaSE9PW4pe2ZvcihvPTA7bzxtO28rKylyPWQuZ2V0KGksbyksZC5zZXQoaSxvLGQuZ2V0KG4sbykpLGQuc2V0KG4sbyxyKTtzPWZbaV0sZltpXT1mW25dLGZbbl09cyx1PS11fWlmKG48cCYmMCE9PWQuZ2V0KG4sbikpZm9yKGU9bisxO2U8cDtlKyspZC5zZXQoZSxuLGQuZ2V0KGUsbikvZC5nZXQobixuKSl9dGhpcy5MVT1kLHRoaXMucGl2b3RWZWN0b3I9Zix0aGlzLnBpdm90U2lnbj11fWlzU2luZ3VsYXIoKXtsZXQgdD10aGlzLkxVLGU9dC5jb2x1bW5zO2ZvcihsZXQgbj0wO248ZTtuKyspaWYoMD09PXQuZ2V0KG4sbikpcmV0dXJuITA7cmV0dXJuITF9c29sdmUodCl7dD1TTXQuY2hlY2tNYXRyaXgodCk7bGV0IGU9dGhpcy5MVTtpZihlLnJvd3MhPT10LnJvd3MpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIG1hdHJpeCBkaW1lbnNpb25zIik7aWYodGhpcy5pc1Npbmd1bGFyKCkpdGhyb3cgbmV3IEVycm9yKCJMVSBtYXRyaXggaXMgc2luZ3VsYXIiKTtsZXQgbixvLGksYT10LmNvbHVtbnMscj10LnN1Yk1hdHJpeFJvdyh0aGlzLnBpdm90VmVjdG9yLDAsYS0xKSxzPWUuY29sdW1ucztmb3IoaT0wO2k8cztpKyspZm9yKG49aSsxO248cztuKyspZm9yKG89MDtvPGE7bysrKXIuc2V0KG4sbyxyLmdldChuLG8pLXIuZ2V0KGksbykqZS5nZXQobixpKSk7Zm9yKGk9cy0xO2k+PTA7aS0tKXtmb3Iobz0wO288YTtvKyspci5zZXQoaSxvLHIuZ2V0KGksbykvZS5nZXQoaSxpKSk7Zm9yKG49MDtuPGk7bisrKWZvcihvPTA7bzxhO28rKylyLnNldChuLG8sci5nZXQobixvKS1yLmdldChpLG8pKmUuZ2V0KG4saSkpfXJldHVybiByfWdldCBkZXRlcm1pbmFudCgpe2xldCB0PXRoaXMuTFU7aWYoIXQuaXNTcXVhcmUoKSl0aHJvdyBuZXcgRXJyb3IoIk1hdHJpeCBtdXN0IGJlIHNxdWFyZSIpO2xldCBlPXRoaXMucGl2b3RTaWduLG49dC5jb2x1bW5zO2ZvcihsZXQgbz0wO288bjtvKyspZSo9dC5nZXQobyxvKTtyZXR1cm4gZX1nZXQgbG93ZXJUcmlhbmd1bGFyTWF0cml4KCl7bGV0IHQ9dGhpcy5MVSxlPXQucm93cyxuPXQuY29sdW1ucyxvPW5ldyBTTXQoZSxuKTtmb3IobGV0IGk9MDtpPGU7aSsrKWZvcihsZXQgZT0wO2U8bjtlKyspby5zZXQoaSxlLGk+ZT90LmdldChpLGUpOmk9PT1lPzE6MCk7cmV0dXJuIG99Z2V0IHVwcGVyVHJpYW5ndWxhck1hdHJpeCgpe2xldCB0PXRoaXMuTFUsZT10LnJvd3Msbj10LmNvbHVtbnMsbz1uZXcgU010KGUsbik7Zm9yKGxldCBpPTA7aTxlO2krKylmb3IobGV0IGU9MDtlPG47ZSsrKW8uc2V0KGksZSxpPD1lP3QuZ2V0KGksZSk6MCk7cmV0dXJuIG99Z2V0IHBpdm90UGVybXV0YXRpb25WZWN0b3IoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnBpdm90VmVjdG9yKX19ZnVuY3Rpb24gQU10KHQsZSl7bGV0IG49MDtyZXR1cm4gTWF0aC5hYnModCk+TWF0aC5hYnMoZSk/KG49ZS90LE1hdGguYWJzKHQpKk1hdGguc3FydCgxK24qbikpOjAhPT1lPyhuPXQvZSxNYXRoLmFicyhlKSpNYXRoLnNxcnQoMStuKm4pKTowfWNsYXNzIFRNdHtjb25zdHJ1Y3Rvcih0KXtsZXQgZSxuLG8saSxhPSh0PVJNdC5jaGVja01hdHJpeCh0KSkuY2xvbmUoKSxyPXQucm93cyxzPXQuY29sdW1ucyxsPW5ldyBGbG9hdDY0QXJyYXkocyk7Zm9yKG89MDtvPHM7bysrKXtsZXQgdD0wO2ZvcihlPW87ZTxyO2UrKyl0PUFNdCh0LGEuZ2V0KGUsbykpO2lmKDAhPT10KXtmb3IoYS5nZXQobyxvKTwwJiYodD0tdCksZT1vO2U8cjtlKyspYS5zZXQoZSxvLGEuZ2V0KGUsbykvdCk7Zm9yKGEuc2V0KG8sbyxhLmdldChvLG8pKzEpLG49bysxO248cztuKyspe2ZvcihpPTAsZT1vO2U8cjtlKyspaSs9YS5nZXQoZSxvKSphLmdldChlLG4pO2ZvcihpPS1pL2EuZ2V0KG8sbyksZT1vO2U8cjtlKyspYS5zZXQoZSxuLGEuZ2V0KGUsbikraSphLmdldChlLG8pKX19bFtvXT0tdH10aGlzLlFSPWEsdGhpcy5SZGlhZz1sfXNvbHZlKHQpe3Q9U010LmNoZWNrTWF0cml4KHQpO2xldCBlPXRoaXMuUVIsbj1lLnJvd3M7aWYodC5yb3dzIT09bil0aHJvdyBuZXcgRXJyb3IoIk1hdHJpeCByb3cgZGltZW5zaW9ucyBtdXN0IGFncmVlIik7aWYoIXRoaXMuaXNGdWxsUmFuaygpKXRocm93IG5ldyBFcnJvcigiTWF0cml4IGlzIHJhbmsgZGVmaWNpZW50Iik7bGV0IG8saSxhLHIscz10LmNvbHVtbnMsbD10LmNsb25lKCksYz1lLmNvbHVtbnM7Zm9yKGE9MDthPGM7YSsrKWZvcihpPTA7aTxzO2krKyl7Zm9yKHI9MCxvPWE7bzxuO28rKylyKz1lLmdldChvLGEpKmwuZ2V0KG8saSk7Zm9yKHI9LXIvZS5nZXQoYSxhKSxvPWE7bzxuO28rKylsLnNldChvLGksbC5nZXQobyxpKStyKmUuZ2V0KG8sYSkpfWZvcihhPWMtMTthPj0wO2EtLSl7Zm9yKGk9MDtpPHM7aSsrKWwuc2V0KGEsaSxsLmdldChhLGkpL3RoaXMuUmRpYWdbYV0pO2ZvcihvPTA7bzxhO28rKylmb3IoaT0wO2k8cztpKyspbC5zZXQobyxpLGwuZ2V0KG8saSktbC5nZXQoYSxpKSplLmdldChvLGEpKX1yZXR1cm4gbC5zdWJNYXRyaXgoMCxjLTEsMCxzLTEpfWlzRnVsbFJhbmsoKXtsZXQgdD10aGlzLlFSLmNvbHVtbnM7Zm9yKGxldCBlPTA7ZTx0O2UrKylpZigwPT09dGhpcy5SZGlhZ1tlXSlyZXR1cm4hMTtyZXR1cm4hMH1nZXQgdXBwZXJUcmlhbmd1bGFyTWF0cml4KCl7bGV0IHQsZSxuPXRoaXMuUVIsbz1uLmNvbHVtbnMsaT1uZXcgU010KG8sbyk7Zm9yKHQ9MDt0PG87dCsrKWZvcihlPTA7ZTxvO2UrKylpLnNldCh0LGUsdDxlP24uZ2V0KHQsZSk6dD09PWU/dGhpcy5SZGlhZ1t0XTowKTtyZXR1cm4gaX1nZXQgb3J0aG9nb25hbE1hdHJpeCgpe2xldCB0LGUsbixvLGk9dGhpcy5RUixhPWkucm93cyxyPWkuY29sdW1ucyxzPW5ldyBTTXQoYSxyKTtmb3Iobj1yLTE7bj49MDtuLS0pe2Zvcih0PTA7dDxhO3QrKylzLnNldCh0LG4sMCk7Zm9yKHMuc2V0KG4sbiwxKSxlPW47ZTxyO2UrKylpZigwIT09aS5nZXQobixuKSl7Zm9yKG89MCx0PW47dDxhO3QrKylvKz1pLmdldCh0LG4pKnMuZ2V0KHQsZSk7Zm9yKG89LW8vaS5nZXQobixuKSx0PW47dDxhO3QrKylzLnNldCh0LGUscy5nZXQodCxlKStvKmkuZ2V0KHQsbikpfX1yZXR1cm4gc319Y2xhc3MgTk10e2NvbnN0cnVjdG9yKHQsZT17fSl7aWYoKHQ9Uk10LmNoZWNrTWF0cml4KHQpKS5pc0VtcHR5KCkpdGhyb3cgbmV3IEVycm9yKCJNYXRyaXggbXVzdCBiZSBub24tZW1wdHkiKTtsZXQgbj10LnJvd3Msbz10LmNvbHVtbnM7Y29uc3R7Y29tcHV0ZUxlZnRTaW5ndWxhclZlY3RvcnM6aT0hMCxjb21wdXRlUmlnaHRTaW5ndWxhclZlY3RvcnM6YT0hMCxhdXRvVHJhbnNwb3NlOnI9ITF9PWU7bGV0IHMsbD1Cb29sZWFuKGkpLGM9Qm9vbGVhbihhKSxkPSExO2lmKG48bylpZihyKXtzPXQudHJhbnNwb3NlKCksbj1zLnJvd3Msbz1zLmNvbHVtbnMsZD0hMDtsZXQgZT1sO2w9YyxjPWV9ZWxzZSBzPXQuY2xvbmUoKSxjb25zb2xlLndhcm4oIkNvbXB1dGluZyBTVkQgb24gYSBtYXRyaXggd2l0aCBtb3JlIGNvbHVtbnMgdGhhbiByb3dzLiBDb25zaWRlciBlbmFibGluZyBhdXRvVHJhbnNwb3NlIik7ZWxzZSBzPXQuY2xvbmUoKTtsZXQgcD1NYXRoLm1pbihuLG8pLG09TWF0aC5taW4obisxLG8pLGY9bmV3IEZsb2F0NjRBcnJheShtKSx1PW5ldyBTTXQobixwKSxnPW5ldyBTTXQobyxvKSxoPW5ldyBGbG9hdDY0QXJyYXkobyksYj1uZXcgRmxvYXQ2NEFycmF5KG4pLHk9bmV3IEZsb2F0NjRBcnJheShtKTtmb3IobGV0IHQ9MDt0PG07dCsrKXlbdF09dDtsZXQgXz1NYXRoLm1pbihuLTEsbyksQz1NYXRoLm1heCgwLE1hdGgubWluKG8tMixuKSksTT1NYXRoLm1heChfLEMpO2ZvcihsZXQgdD0wO3Q8TTt0Kyspe2lmKHQ8Xyl7Zlt0XT0wO2ZvcihsZXQgZT10O2U8bjtlKyspZlt0XT1BTXQoZlt0XSxzLmdldChlLHQpKTtpZigwIT09Zlt0XSl7cy5nZXQodCx0KTwwJiYoZlt0XT0tZlt0XSk7Zm9yKGxldCBlPXQ7ZTxuO2UrKylzLnNldChlLHQscy5nZXQoZSx0KS9mW3RdKTtzLnNldCh0LHQscy5nZXQodCx0KSsxKX1mW3RdPS1mW3RdfWZvcihsZXQgZT10KzE7ZTxvO2UrKyl7aWYodDxfJiYwIT09Zlt0XSl7bGV0IG89MDtmb3IobGV0IGk9dDtpPG47aSsrKW8rPXMuZ2V0KGksdCkqcy5nZXQoaSxlKTtvPS1vL3MuZ2V0KHQsdCk7Zm9yKGxldCBpPXQ7aTxuO2krKylzLnNldChpLGUscy5nZXQoaSxlKStvKnMuZ2V0KGksdCkpfWhbZV09cy5nZXQodCxlKX1pZihsJiZ0PF8pZm9yKGxldCBlPXQ7ZTxuO2UrKyl1LnNldChlLHQscy5nZXQoZSx0KSk7aWYodDxDKXtoW3RdPTA7Zm9yKGxldCBlPXQrMTtlPG87ZSsrKWhbdF09QU10KGhbdF0saFtlXSk7aWYoMCE9PWhbdF0pe2hbdCsxXTwwJiYoaFt0XT0wLWhbdF0pO2ZvcihsZXQgZT10KzE7ZTxvO2UrKyloW2VdLz1oW3RdO2hbdCsxXSs9MX1pZihoW3RdPS1oW3RdLHQrMTxuJiYwIT09aFt0XSl7Zm9yKGxldCBlPXQrMTtlPG47ZSsrKWJbZV09MDtmb3IobGV0IGU9dCsxO2U8bjtlKyspZm9yKGxldCBuPXQrMTtuPG87bisrKWJbZV0rPWhbbl0qcy5nZXQoZSxuKTtmb3IobGV0IGU9dCsxO2U8bztlKyspe2xldCBvPS1oW2VdL2hbdCsxXTtmb3IobGV0IGk9dCsxO2k8bjtpKyspcy5zZXQoaSxlLHMuZ2V0KGksZSkrbypiW2ldKX19aWYoYylmb3IobGV0IGU9dCsxO2U8bztlKyspZy5zZXQoZSx0LGhbZV0pfX1sZXQgdj1NYXRoLm1pbihvLG4rMSk7aWYoXzxvJiYoZltfXT1zLmdldChfLF8pKSxuPHYmJihmW3YtMV09MCksQysxPHYmJihoW0NdPXMuZ2V0KEMsdi0xKSksaFt2LTFdPTAsbCl7Zm9yKGxldCB0PV87dDxwO3QrKyl7Zm9yKGxldCBlPTA7ZTxuO2UrKyl1LnNldChlLHQsMCk7dS5zZXQodCx0LDEpfWZvcihsZXQgdD1fLTE7dD49MDt0LS0paWYoMCE9PWZbdF0pe2ZvcihsZXQgZT10KzE7ZTxwO2UrKyl7bGV0IG89MDtmb3IobGV0IGk9dDtpPG47aSsrKW8rPXUuZ2V0KGksdCkqdS5nZXQoaSxlKTtvPS1vL3UuZ2V0KHQsdCk7Zm9yKGxldCBpPXQ7aTxuO2krKyl1LnNldChpLGUsdS5nZXQoaSxlKStvKnUuZ2V0KGksdCkpfWZvcihsZXQgZT10O2U8bjtlKyspdS5zZXQoZSx0LC11LmdldChlLHQpKTt1LnNldCh0LHQsMSt1LmdldCh0LHQpKTtmb3IobGV0IGU9MDtlPHQtMTtlKyspdS5zZXQoZSx0LDApfWVsc2V7Zm9yKGxldCBlPTA7ZTxuO2UrKyl1LnNldChlLHQsMCk7dS5zZXQodCx0LDEpfX1pZihjKWZvcihsZXQgdD1vLTE7dD49MDt0LS0pe2lmKHQ8QyYmMCE9PWhbdF0pZm9yKGxldCBlPXQrMTtlPG87ZSsrKXtsZXQgbj0wO2ZvcihsZXQgaT10KzE7aTxvO2krKyluKz1nLmdldChpLHQpKmcuZ2V0KGksZSk7bj0tbi9nLmdldCh0KzEsdCk7Zm9yKGxldCBpPXQrMTtpPG87aSsrKWcuc2V0KGksZSxnLmdldChpLGUpK24qZy5nZXQoaSx0KSl9Zm9yKGxldCBlPTA7ZTxvO2UrKylnLnNldChlLHQsMCk7Zy5zZXQodCx0LDEpfWxldCB4PXYtMSxPPU51bWJlci5FUFNJTE9OO2Zvcig7dj4wOyl7bGV0IHQsZTtmb3IodD12LTI7dD49LTEmJi0xIT09dDt0LS0pe2NvbnN0IGU9TnVtYmVyLk1JTl9WQUxVRStPKk1hdGguYWJzKGZbdF0rTWF0aC5hYnMoZlt0KzFdKSk7aWYoTWF0aC5hYnMoaFt0XSk8PWV8fE51bWJlci5pc05hTihoW3RdKSl7aFt0XT0wO2JyZWFrfX1pZih0PT09di0yKWU9NDtlbHNle2xldCBuO2ZvcihuPXYtMTtuPj10JiZuIT09dDtuLS0pe2xldCBlPShuIT09dj9NYXRoLmFicyhoW25dKTowKSsobiE9PXQrMT9NYXRoLmFicyhoW24tMV0pOjApO2lmKE1hdGguYWJzKGZbbl0pPD1PKmUpe2Zbbl09MDticmVha319bj09PXQ/ZT0zOm49PT12LTE/ZT0xOihlPTIsdD1uKX1zd2l0Y2godCsrLGUpe2Nhc2UgMTp7bGV0IGU9aFt2LTJdO2hbdi0yXT0wO2ZvcihsZXQgbj12LTI7bj49dDtuLS0pe2xldCBpPUFNdChmW25dLGUpLGE9ZltuXS9pLHI9ZS9pO2lmKGZbbl09aSxuIT09dCYmKGU9LXIqaFtuLTFdLGhbbi0xXT1hKmhbbi0xXSksYylmb3IobGV0IHQ9MDt0PG87dCsrKWk9YSpnLmdldCh0LG4pK3IqZy5nZXQodCx2LTEpLGcuc2V0KHQsdi0xLC1yKmcuZ2V0KHQsbikrYSpnLmdldCh0LHYtMSkpLGcuc2V0KHQsbixpKX1icmVha31jYXNlIDI6e2xldCBlPWhbdC0xXTtoW3QtMV09MDtmb3IobGV0IG89dDtvPHY7bysrKXtsZXQgaT1BTXQoZltvXSxlKSxhPWZbb10vaSxyPWUvaTtpZihmW29dPWksZT0tcipoW29dLGhbb109YSpoW29dLGwpZm9yKGxldCBlPTA7ZTxuO2UrKylpPWEqdS5nZXQoZSxvKStyKnUuZ2V0KGUsdC0xKSx1LnNldChlLHQtMSwtcip1LmdldChlLG8pK2EqdS5nZXQoZSx0LTEpKSx1LnNldChlLG8saSl9YnJlYWt9Y2FzZSAzOntjb25zdCBlPU1hdGgubWF4KE1hdGguYWJzKGZbdi0xXSksTWF0aC5hYnMoZlt2LTJdKSxNYXRoLmFicyhoW3YtMl0pLE1hdGguYWJzKGZbdF0pLE1hdGguYWJzKGhbdF0pKSxpPWZbdi0xXS9lLGE9Zlt2LTJdL2Uscj1oW3YtMl0vZSxzPWZbdF0vZSxkPWhbdF0vZSxwPSgoYStpKSooYS1pKStyKnIpLzIsbT1pKnIqKGkqcik7bGV0IGI9MDswPT09cCYmMD09PW18fChiPXA8MD8wLU1hdGguc3FydChwKnArbSk6TWF0aC5zcXJ0KHAqcCttKSxiPW0vKHArYikpO2xldCB5PShzK2kpKihzLWkpK2IsXz1zKmQ7Zm9yKGxldCBlPXQ7ZTx2LTE7ZSsrKXtsZXQgaT1BTXQoeSxfKTswPT09aSYmKGk9TnVtYmVyLk1JTl9WQUxVRSk7bGV0IGE9eS9pLHI9Xy9pO2lmKGUhPT10JiYoaFtlLTFdPWkpLHk9YSpmW2VdK3IqaFtlXSxoW2VdPWEqaFtlXS1yKmZbZV0sXz1yKmZbZSsxXSxmW2UrMV09YSpmW2UrMV0sYylmb3IobGV0IHQ9MDt0PG87dCsrKWk9YSpnLmdldCh0LGUpK3IqZy5nZXQodCxlKzEpLGcuc2V0KHQsZSsxLC1yKmcuZ2V0KHQsZSkrYSpnLmdldCh0LGUrMSkpLGcuc2V0KHQsZSxpKTtpZihpPUFNdCh5LF8pLDA9PT1pJiYoaT1OdW1iZXIuTUlOX1ZBTFVFKSxhPXkvaSxyPV8vaSxmW2VdPWkseT1hKmhbZV0rcipmW2UrMV0sZltlKzFdPS1yKmhbZV0rYSpmW2UrMV0sXz1yKmhbZSsxXSxoW2UrMV09YSpoW2UrMV0sbCYmZTxuLTEpZm9yKGxldCB0PTA7dDxuO3QrKylpPWEqdS5nZXQodCxlKStyKnUuZ2V0KHQsZSsxKSx1LnNldCh0LGUrMSwtcip1LmdldCh0LGUpK2EqdS5nZXQodCxlKzEpKSx1LnNldCh0LGUsaSl9aFt2LTJdPXk7YnJlYWt9Y2FzZSA0OmlmKGZbdF08PTAmJihmW3RdPWZbdF08MD8tZlt0XTowLGMpKWZvcihsZXQgZT0wO2U8PXg7ZSsrKWcuc2V0KGUsdCwtZy5nZXQoZSx0KSk7Zm9yKDt0PHgmJiEoZlt0XT49Zlt0KzFdKTspe2xldCBlPWZbdF07aWYoZlt0XT1mW3QrMV0sZlt0KzFdPWUsYyYmdDxvLTEpZm9yKGxldCBuPTA7bjxvO24rKyllPWcuZ2V0KG4sdCsxKSxnLnNldChuLHQrMSxnLmdldChuLHQpKSxnLnNldChuLHQsZSk7aWYobCYmdDxuLTEpZm9yKGxldCBvPTA7bzxuO28rKyllPXUuZ2V0KG8sdCsxKSx1LnNldChvLHQrMSx1LmdldChvLHQpKSx1LnNldChvLHQsZSk7dCsrfXYtLX19aWYoZCl7bGV0IHQ9ZztnPXUsdT10fXRoaXMubT1uLHRoaXMubj1vLHRoaXMucz1mLHRoaXMuVT11LHRoaXMuVj1nfXNvbHZlKHQpe2xldCBlPXQsbj10aGlzLnRocmVzaG9sZCxvPXRoaXMucy5sZW5ndGgsaT1TTXQuemVyb3MobyxvKTtmb3IobGV0IHQ9MDt0PG87dCsrKU1hdGguYWJzKHRoaXMuc1t0XSk8PW4/aS5zZXQodCx0LDApOmkuc2V0KHQsdCwxL3RoaXMuc1t0XSk7bGV0IGE9dGhpcy5VLHI9dGhpcy5yaWdodFNpbmd1bGFyVmVjdG9ycyxzPXIubW11bChpKSxsPXIucm93cyxjPWEucm93cyxkPVNNdC56ZXJvcyhsLGMpO2ZvcihsZXQgdD0wO3Q8bDt0KyspZm9yKGxldCBlPTA7ZTxjO2UrKyl7bGV0IG49MDtmb3IobGV0IGk9MDtpPG87aSsrKW4rPXMuZ2V0KHQsaSkqYS5nZXQoZSxpKTtkLnNldCh0LGUsbil9cmV0dXJuIGQubW11bChlKX1zb2x2ZUZvckRpYWdvbmFsKHQpe3JldHVybiB0aGlzLnNvbHZlKFNNdC5kaWFnKHQpKX1pbnZlcnNlKCl7bGV0IHQ9dGhpcy5WLGU9dGhpcy50aHJlc2hvbGQsbj10LnJvd3Msbz10LmNvbHVtbnMsaT1uZXcgU010KG4sdGhpcy5zLmxlbmd0aCk7Zm9yKGxldCBhPTA7YTxuO2ErKylmb3IobGV0IG49MDtuPG87bisrKU1hdGguYWJzKHRoaXMuc1tuXSk+ZSYmaS5zZXQoYSxuLHQuZ2V0KGEsbikvdGhpcy5zW25dKTtsZXQgYT10aGlzLlUscj1hLnJvd3Mscz1hLmNvbHVtbnMsbD1uZXcgU010KG4scik7Zm9yKGxldCB0PTA7dDxuO3QrKylmb3IobGV0IGU9MDtlPHI7ZSsrKXtsZXQgbj0wO2ZvcihsZXQgbz0wO288cztvKyspbis9aS5nZXQodCxvKSphLmdldChlLG8pO2wuc2V0KHQsZSxuKX1yZXR1cm4gbH1nZXQgY29uZGl0aW9uKCl7cmV0dXJuIHRoaXMuc1swXS90aGlzLnNbTWF0aC5taW4odGhpcy5tLHRoaXMubiktMV19Z2V0IG5vcm0yKCl7cmV0dXJuIHRoaXMuc1swXX1nZXQgcmFuaygpe2xldCB0PU1hdGgubWF4KHRoaXMubSx0aGlzLm4pKnRoaXMuc1swXSpOdW1iZXIuRVBTSUxPTixlPTAsbj10aGlzLnM7Zm9yKGxldCBvPTAsaT1uLmxlbmd0aDtvPGk7bysrKW5bb10+dCYmZSsrO3JldHVybiBlfWdldCBkaWFnb25hbCgpe3JldHVybiBBcnJheS5mcm9tKHRoaXMucyl9Z2V0IHRocmVzaG9sZCgpe3JldHVybiBOdW1iZXIuRVBTSUxPTi8yKk1hdGgubWF4KHRoaXMubSx0aGlzLm4pKnRoaXMuc1swXX1nZXQgbGVmdFNpbmd1bGFyVmVjdG9ycygpe3JldHVybiB0aGlzLlV9Z2V0IHJpZ2h0U2luZ3VsYXJWZWN0b3JzKCl7cmV0dXJuIHRoaXMuVn1nZXQgZGlhZ29uYWxNYXRyaXgoKXtyZXR1cm4gU010LmRpYWcodGhpcy5zKX19ZnVuY3Rpb24gek10KHQsZT0hMSl7cmV0dXJuIHQ9Uk10LmNoZWNrTWF0cml4KHQpLGU/bmV3IE5NdCh0KS5pbnZlcnNlKCk6KGZ1bmN0aW9uIG4odCxlLG89ITEpe3JldHVybiB0PVJNdC5jaGVja01hdHJpeCh0KSxlPVJNdC5jaGVja01hdHJpeChlKSxvP25ldyBOTXQodCkuc29sdmUoZSk6dC5pc1NxdWFyZSgpP25ldyBFTXQodCkuc29sdmUoZSk6bmV3IFRNdCh0KS5zb2x2ZShlKX0pKHQsU010LmV5ZSh0LnJvd3MpKX1mdW5jdGlvbiBJTXQodCxlLG4sbyxpKXtsZXQgYT1TTXQuZXllKGUubGVuZ3RoLGUubGVuZ3RoLG4qbypvKTtjb25zdCByPWkoZSk7bGV0IHM9bmV3IEZsb2F0NjRBcnJheSh0LngubGVuZ3RoKTtmb3IobGV0IGU9MDtlPHQueC5sZW5ndGg7ZSsrKXNbZV09cih0LnhbZV0pO2xldCBsPShmdW5jdGlvbiBjKHQsZSxuLG8saSl7Y29uc3QgYT1uLmxlbmd0aCxyPXQueC5sZW5ndGg7bGV0IHM9bmV3IEFycmF5KGEpO2ZvcihsZXQgbD0wO2w8YTtsKyspe3NbbF09bmV3IEFycmF5KHIpO2xldCBhPW4uc2xpY2UoKTthW2xdKz1vO2xldCBjPWkoYSk7Zm9yKGxldCBuPTA7bjxyO24rKylzW2xdW25dPWVbbl0tYyh0Lnhbbl0pfXJldHVybiBuZXcgU010KHMpfSkodCxzLGUsbyxpKSxkPShmdW5jdGlvbiBwKHQsZSl7Y29uc3Qgbj10LngubGVuZ3RoO2xldCBvPW5ldyBBcnJheShuKTtmb3IobGV0IGk9MDtpPG47aSsrKW9baV09W3QueVtpXS1lW2ldXTtyZXR1cm4gbmV3IFNNdChvKX0pKHQscyksbT16TXQoYS5hZGQobC5tbXVsKGwudHJhbnNwb3NlKCkpKSk7cmV0dXJuKGU9KGU9bmV3IFNNdChbZV0pKS5zdWIobS5tbXVsKGwpLm1tdWwoZCkubXVsKG8pLnRyYW5zcG9zZSgpKSkudG8xREFycmF5KCl9dmFyIEhNdD1DTyhPYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxkZWZhdWx0OmZ1bmN0aW9uIEZNdCh0LGUsbj17fSl7bGV0e21heEl0ZXJhdGlvbnM6bz0xMDAsZ3JhZGllbnREaWZmZXJlbmNlOmk9LjEsZGFtcGluZzphPTAsZXJyb3JUb2xlcmFuY2U6cj0uMDEsbWluVmFsdWVzOnMsbWF4VmFsdWVzOmwsaW5pdGlhbFZhbHVlczpjfT1uO2lmKGE8PTApdGhyb3cgbmV3IEVycm9yKCJUaGUgZGFtcGluZyBvcHRpb24gbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciIpO2lmKCF0Lnh8fCF0LnkpdGhyb3cgbmV3IEVycm9yKCJUaGUgZGF0YSBwYXJhbWV0ZXIgbXVzdCBoYXZlIHggYW5kIHkgZWxlbWVudHMiKTtpZighaU10KHQueCl8fHQueC5sZW5ndGg8Mnx8IWlNdCh0LnkpfHx0LnkubGVuZ3RoPDIpdGhyb3cgbmV3IEVycm9yKCJUaGUgZGF0YSBwYXJhbWV0ZXIgZWxlbWVudHMgbXVzdCBiZSBhbiBhcnJheSB3aXRoIG1vcmUgdGhhbiAyIHBvaW50cyIpO2lmKHQueC5sZW5ndGghPT10LnkubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiVGhlIGRhdGEgcGFyYW1ldGVyIGVsZW1lbnRzIG11c3QgaGF2ZSB0aGUgc2FtZSBzaXplIik7bGV0IGQ9Y3x8bmV3IEFycmF5KGUubGVuZ3RoKS5maWxsKDEpLHA9ZC5sZW5ndGg7aWYobD1sfHxuZXcgQXJyYXkocCkuZmlsbChOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikscz1zfHxuZXcgQXJyYXkocCkuZmlsbChOdW1iZXIuTUlOX1NBRkVfSU5URUdFUiksbC5sZW5ndGghPT1zLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIm1pblZhbHVlcyBhbmQgbWF4VmFsdWVzIG11c3QgYmUgdGhlIHNhbWUgc2l6ZSIpO2lmKCFpTXQoZCkpdGhyb3cgbmV3IEVycm9yKCJpbml0aWFsVmFsdWVzIG11c3QgYmUgYW4gYXJyYXkiKTtsZXQgbSxmPWFNdCh0LGQsZSksdT1mPD1yO2ZvcihtPTA7bTxvJiYhdTttKyspe2Q9SU10KHQsZCxhLGksZSk7Zm9yKGxldCB0PTA7dDxwO3QrKylkW3RdPU1hdGgubWluKE1hdGgubWF4KHNbdF0sZFt0XSksbFt0XSk7aWYoZj1hTXQodCxkLGUpLGlzTmFOKGYpKWJyZWFrO3U9Zjw9cn1yZXR1cm57cGFyYW1ldGVyVmFsdWVzOmQscGFyYW1ldGVyRXJyb3I6ZixpdGVyYXRpb25zOm19fX0pKSxMTXQ9X08mJl9PLl9fYXdhaXRlcnx8ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIG5ldyhufHwobj1Qcm9taXNlKSkoKGZ1bmN0aW9uKGksYSl7ZnVuY3Rpb24gcih0KXt0cnl7bChvLm5leHQodCkpfWNhdGNoKHQpe2EodCl9fWZ1bmN0aW9uIHModCl7dHJ5e2woby50aHJvdyh0KSl9Y2F0Y2godCl7YSh0KX19ZnVuY3Rpb24gbCh0KXt0LmRvbmU/aSh0LnZhbHVlKTpuZXcgbigoZnVuY3Rpb24oZSl7ZSh0LnZhbHVlKX0pKS50aGVuKHIscyl9bCgobz1vLmFwcGx5KHQsZXx8W10pKS5uZXh0KCkpfSkpfSxCTXQ9X08mJl9PLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbih0LGUpe3ZhciBuLG8saSxhLHI9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmaVswXSl0aHJvdyBpWzFdO3JldHVybiBpWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIGE9e25leHQ6cygwKSx0aHJvdzpzKDEpLHJldHVybjpzKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoYVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxhO2Z1bmN0aW9uIHMoYSl7cmV0dXJuIGZ1bmN0aW9uKHMpe3JldHVybihmdW5jdGlvbiBsKGEpe2lmKG4pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7cjspdHJ5e2lmKG49MSxvJiYoaT0yJmFbMF0/by5yZXR1cm46YVswXT9vLnRocm93fHwoKGk9by5yZXR1cm4pJiZpLmNhbGwobyksMCk6by5uZXh0KSYmIShpPWkuY2FsbChvLGFbMV0pKS5kb25lKXJldHVybiBpO3N3aXRjaChvPTAsaSYmKGE9WzImYVswXSxpLnZhbHVlXSksYVswXSl7Y2FzZSAwOmNhc2UgMTppPWE7YnJlYWs7Y2FzZSA0OnJldHVybiByLmxhYmVsKysse3ZhbHVlOmFbMV0sZG9uZTohMX07Y2FzZSA1OnIubGFiZWwrKyxvPWFbMV0sYT1bMF07Y29udGludWU7Y2FzZSA3OmE9ci5vcHMucG9wKCksci50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoIShpPXIudHJ5cywoaT1pLmxlbmd0aD4wJiZpW2kubGVuZ3RoLTFdKXx8NiE9PWFbMF0mJjIhPT1hWzBdKSl7cj0wO2NvbnRpbnVlfWlmKDM9PT1hWzBdJiYoIWl8fGFbMV0+aVswXSYmYVsxXTxpWzNdKSl7ci5sYWJlbD1hWzFdO2JyZWFrfWlmKDY9PT1hWzBdJiZyLmxhYmVsPGlbMV0pe3IubGFiZWw9aVsxXSxpPWE7YnJlYWt9aWYoaSYmci5sYWJlbDxpWzJdKXtyLmxhYmVsPWlbMl0sci5vcHMucHVzaChhKTticmVha31pWzJdJiZyLm9wcy5wb3AoKSxyLnRyeXMucG9wKCk7Y29udGludWV9YT1lLmNhbGwodCxyKX1jYXRjaCh0KXthPVs2LHRdLG89MH1maW5hbGx5e249aT0wfWlmKDUmYVswXSl0aHJvdyBhWzFdO3JldHVybnt2YWx1ZTphWzBdP2FbMV06dm9pZCAwLGRvbmU6ITB9fSkoW2Esc10pfX19LFZNdD1fTyYmX08uX19yZWFkfHxmdW5jdGlvbih0LGUpe3ZhciBuPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXTtpZighbilyZXR1cm4gdDt2YXIgbyxpLGE9bi5jYWxsKHQpLHI9W107dHJ5e2Zvcig7KHZvaWQgMD09PWV8fGUtLSA+MCkmJiEobz1hLm5leHQoKSkuZG9uZTspci5wdXNoKG8udmFsdWUpfWNhdGNoKHQpe2k9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e28mJiFvLmRvbmUmJihuPWEucmV0dXJuKSYmbi5jYWxsKGEpfWZpbmFsbHl7aWYoaSl0aHJvdyBpLmVycm9yfX1yZXR1cm4gcn0sak10PV9PJiZfTy5fX3NwcmVhZHx8ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdD10LmNvbmNhdChWTXQoYXJndW1lbnRzW2VdKSk7cmV0dXJuIHR9LFVNdD1fTyYmX08uX19pbXBvcnRTdGFyfHxmdW5jdGlvbih0KXtpZih0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGU9e307aWYobnVsbCE9dClmb3IodmFyIG4gaW4gdClPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pJiYoZVtuXT10W25dKTtyZXR1cm4gZS5kZWZhdWx0PXQsZX0sV010PV9PJiZfTy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEhfdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEdNdD1VTXQoRl90KSxZTXQ9VU10KGZDdCkscU10PVVNdChFQ3QpLFpNdD1VTXQoQUN0KSxYTXQ9VU10KExfdCksS010PVdNdChITXQpLEpNdD0xZS01LFFNdD0uMDAxLCRNdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZvaWQgMD09PXQmJih0PXt9KTt2YXIgZT10aGlzO3RoaXMubGVhcm5pbmdSYXRlPTEsdGhpcy5sb2NhbENvbm5lY3Rpdml0eT0xLHRoaXMubWluRGlzdD0uMSx0aGlzLm5Db21wb25lbnRzPTIsdGhpcy5uRXBvY2hzPTAsdGhpcy5uTmVpZ2hib3JzPTE1LHRoaXMubmVnYXRpdmVTYW1wbGVSYXRlPTUsdGhpcy5yYW5kb209TWF0aC5yYW5kb20sdGhpcy5yZXB1bHNpb25TdHJlbmd0aD0xLHRoaXMuc2V0T3BNaXhSYXRpbz0xLHRoaXMuc3ByZWFkPTEsdGhpcy50cmFuc2Zvcm1RdWV1ZVNpemU9NCx0aGlzLnRhcmdldE1ldHJpYz0iY2F0ZWdvcmljYWwiLHRoaXMudGFyZ2V0V2VpZ2h0PS41LHRoaXMudGFyZ2V0Tk5laWdoYm9ycz10aGlzLm5OZWlnaGJvcnMsdGhpcy5kaXN0YW5jZUZuPXR2dCx0aGlzLmlzSW5pdGlhbGl6ZWQ9ITEsdGhpcy5ycEZvcmVzdD1bXSx0aGlzLmVtYmVkZGluZz1bXSx0aGlzLm9wdGltaXphdGlvblN0YXRlPW5ldyBudnQ7dmFyIG49ZnVuY3Rpb24obil7dm9pZCAwIT09dFtuXSYmKGVbbl09dFtuXSl9O24oImRpc3RhbmNlRm4iKSxuKCJsZWFybmluZ1JhdGUiKSxuKCJsb2NhbENvbm5lY3Rpdml0eSIpLG4oIm1pbkRpc3QiKSxuKCJuQ29tcG9uZW50cyIpLG4oIm5FcG9jaHMiKSxuKCJuTmVpZ2hib3JzIiksbigibmVnYXRpdmVTYW1wbGVSYXRlIiksbigicmFuZG9tIiksbigicmVwdWxzaW9uU3RyZW5ndGgiKSxuKCJzZXRPcE1peFJhdGlvIiksbigic3ByZWFkIiksbigidHJhbnNmb3JtUXVldWVTaXplIil9cmV0dXJuIHQucHJvdG90eXBlLmZpdD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbml0aWFsaXplRml0KHQpLHRoaXMub3B0aW1pemVMYXlvdXQoKSx0aGlzLmVtYmVkZGluZ30sdC5wcm90b3R5cGUuZml0QXN5bmM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9ZnVuY3Rpb24oKXtyZXR1cm4hMH0pLExNdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKCl7cmV0dXJuIEJNdCh0aGlzLChmdW5jdGlvbihuKXtzd2l0Y2gobi5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmluaXRpYWxpemVGaXQodCksWzQsdGhpcy5vcHRpbWl6ZUxheW91dEFzeW5jKGUpXTtjYXNlIDE6cmV0dXJuIG4uc2VudCgpLFsyLHRoaXMuZW1iZWRkaW5nXX19KSl9KSl9LHQucHJvdG90eXBlLnNldFN1cGVydmlzZWRQcm9qZWN0aW9uPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pLHRoaXMuWT10LHRoaXMudGFyZ2V0TWV0cmljPWUudGFyZ2V0TWV0cmljfHx0aGlzLnRhcmdldE1ldHJpYyx0aGlzLnRhcmdldFdlaWdodD1lLnRhcmdldFdlaWdodHx8dGhpcy50YXJnZXRXZWlnaHQsdGhpcy50YXJnZXROTmVpZ2hib3JzPWUudGFyZ2V0Tk5laWdoYm9yc3x8dGhpcy50YXJnZXROTmVpZ2hib3JzfSx0LnByb3RvdHlwZS5zZXRQcmVjb21wdXRlZEtOTj1mdW5jdGlvbih0LGUpe3RoaXMua25uSW5kaWNlcz10LHRoaXMua25uRGlzdGFuY2VzPWV9LHQucHJvdG90eXBlLmluaXRpYWxpemVGaXQ9ZnVuY3Rpb24odCl7aWYodC5sZW5ndGg8PXRoaXMubk5laWdoYm9ycyl0aHJvdyBuZXcgRXJyb3IoIk5vdCBlbm91Z2ggZGF0YSBwb2ludHMgKCIrdC5sZW5ndGgrIikgdG8gY3JlYXRlIG5OZWlnaGJvcnM6ICIrdGhpcy5uTmVpZ2hib3JzKyIuICBBZGQgbW9yZSBkYXRhIHBvaW50cyBvciBhZGp1c3QgdGhlIGNvbmZpZ3VyYXRpb24uIik7aWYodGhpcy5YPT09dCYmdGhpcy5pc0luaXRpYWxpemVkKXJldHVybiB0aGlzLmdldE5FcG9jaHMoKTtpZih0aGlzLlg9dCwhdGhpcy5rbm5JbmRpY2VzJiYhdGhpcy5rbm5EaXN0YW5jZXMpe3ZhciBlPXRoaXMubmVhcmVzdE5laWdoYm9ycyh0KTt0aGlzLmtubkluZGljZXM9ZS5rbm5JbmRpY2VzLHRoaXMua25uRGlzdGFuY2VzPWUua25uRGlzdGFuY2VzfXRoaXMuZ3JhcGg9dGhpcy5mdXp6eVNpbXBsaWNpYWxTZXQodCx0aGlzLm5OZWlnaGJvcnMsdGhpcy5zZXRPcE1peFJhdGlvKSx0aGlzLm1ha2VTZWFyY2hGbnMoKSx0aGlzLnNlYXJjaEdyYXBoPXRoaXMubWFrZVNlYXJjaEdyYXBoKHQpLHRoaXMucHJvY2Vzc0dyYXBoRm9yU3VwZXJ2aXNlZFByb2plY3Rpb24oKTt2YXIgbj10aGlzLmluaXRpYWxpemVTaW1wbGljaWFsU2V0RW1iZWRkaW5nKCksbz1uLnRhaWwsaT1uLmVwb2Noc1BlclNhbXBsZTtyZXR1cm4gdGhpcy5vcHRpbWl6YXRpb25TdGF0ZS5oZWFkPW4uaGVhZCx0aGlzLm9wdGltaXphdGlvblN0YXRlLnRhaWw9byx0aGlzLm9wdGltaXphdGlvblN0YXRlLmVwb2Noc1BlclNhbXBsZT1pLHRoaXMuaW5pdGlhbGl6ZU9wdGltaXphdGlvbigpLHRoaXMucHJlcGFyZUZvck9wdGltaXphdGlvbkxvb3AoKSx0aGlzLmlzSW5pdGlhbGl6ZWQ9ITAsdGhpcy5nZXRORXBvY2hzKCl9LHQucHJvdG90eXBlLm1ha2VTZWFyY2hGbnM9ZnVuY3Rpb24oKXt2YXIgdD1xTXQubWFrZUluaXRpYWxpemF0aW9ucyh0aGlzLmRpc3RhbmNlRm4pLGU9dC5pbml0RnJvbVJhbmRvbTt0aGlzLmluaXRGcm9tVHJlZT10LmluaXRGcm9tVHJlZSx0aGlzLmluaXRGcm9tUmFuZG9tPWUsdGhpcy5zZWFyY2g9cU10Lm1ha2VJbml0aWFsaXplZE5OU2VhcmNoKHRoaXMuZGlzdGFuY2VGbil9LHQucHJvdG90eXBlLm1ha2VTZWFyY2hHcmFwaD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5rbm5JbmRpY2VzLG49dGhpcy5rbm5EaXN0YW5jZXMsbz1uZXcgWU10LlNwYXJzZU1hdHJpeChbXSxbXSxbXSxbdC5sZW5ndGgsdC5sZW5ndGhdKSxpPTA7aTxlLmxlbmd0aDtpKyspZm9yKHZhciBhPWVbaV0scj1uW2ldLHM9MDtzPGEubGVuZ3RoO3MrKyl7dmFyIGw9cltzXTtsPjAmJm8uc2V0KGksYVtzXSxsKX12YXIgYz1ZTXQudHJhbnNwb3NlKG8pO3JldHVybiBZTXQubWF4aW11bShvLGMpfSx0LnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPXRoaXMuWDtpZih2b2lkIDA9PT1ufHwwPT09bi5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJObyBkYXRhIGhhcyBiZWVuIGZpdC4iKTt2YXIgbz1NYXRoLmZsb29yKHRoaXMubk5laWdoYm9ycyp0aGlzLnRyYW5zZm9ybVF1ZXVlU2l6ZSk7bz1NYXRoLm1pbihuLmxlbmd0aCxvKTt2YXIgaT1xTXQuaW5pdGlhbGl6ZVNlYXJjaCh0aGlzLnJwRm9yZXN0LG4sdCxvLHRoaXMuaW5pdEZyb21SYW5kb20sdGhpcy5pbml0RnJvbVRyZWUsdGhpcy5yYW5kb20pLGE9dGhpcy5zZWFyY2gobix0aGlzLnNlYXJjaEdyYXBoLGksdCkscj1HTXQuZGVoZWFwU29ydChhKSxzPXIuaW5kaWNlcyxsPXIud2VpZ2h0cztzPXMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5zbGljZSgwLGUubk5laWdoYm9ycyl9KSksbD1sLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2xpY2UoMCxlLm5OZWlnaGJvcnMpfSkpO3ZhciBjPU1hdGgubWF4KDAsdGhpcy5sb2NhbENvbm5lY3Rpdml0eS0xKSxkPXRoaXMuc21vb3RoS05ORGlzdGFuY2UobCx0aGlzLm5OZWlnaGJvcnMsYykscD10aGlzLmNvbXB1dGVNZW1iZXJzaGlwU3RyZW5ndGhzKHMsbCxkLnNpZ21hcyxkLnJob3MpLG09bmV3IFlNdC5TcGFyc2VNYXRyaXgocC5yb3dzLHAuY29scyxwLnZhbHMsW3QubGVuZ3RoLG4ubGVuZ3RoXSksZj1ZTXQubm9ybWFsaXplKG0sImwxIiksdT1ZTXQuZ2V0Q1NSKGYpLGc9dC5sZW5ndGgsaD1sdnQoWE10LnJlc2hhcGUyZCh1LmluZGljZXMsZyx0aGlzLm5OZWlnaGJvcnMpLFhNdC5yZXNoYXBlMmQodS52YWx1ZXMsZyx0aGlzLm5OZWlnaGJvcnMpLHRoaXMuZW1iZWRkaW5nKSxiPXRoaXMubkVwb2Nocz90aGlzLm5FcG9jaHMvMzptLm5Sb3dzPD0xZTQ/MTAwOjMwLHk9bS5nZXRWYWx1ZXMoKS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU+dD9lOnR9KSwwKTttPW0ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdDx5L2I/MDp0fSkpLG09WU10LmVsaW1pbmF0ZVplcm9zKG0pO3ZhciBfPXRoaXMubWFrZUVwb2Noc1BlclNhbXBsZShtLmdldFZhbHVlcygpLGIpLEM9bS5nZXRSb3dzKCksTT1tLmdldENvbHMoKTtyZXR1cm4gdGhpcy5hc3NpZ25PcHRpbWl6YXRpb25TdGF0ZVBhcmFtZXRlcnMoe2hlYWRFbWJlZGRpbmc6aCx0YWlsRW1iZWRkaW5nOnRoaXMuZW1iZWRkaW5nLGhlYWQ6Qyx0YWlsOk0sY3VycmVudEVwb2NoOjAsbkVwb2NoczpiLG5WZXJ0aWNlczptLmdldERpbXMoKVsxXSxlcG9jaHNQZXJTYW1wbGU6X30pLHRoaXMucHJlcGFyZUZvck9wdGltaXphdGlvbkxvb3AoKSx0aGlzLm9wdGltaXplTGF5b3V0KCl9LHQucHJvdG90eXBlLnByb2Nlc3NHcmFwaEZvclN1cGVydmlzZWRQcm9qZWN0aW9uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5ZO2lmKHQpe2lmKHQubGVuZ3RoIT09dGhpcy5YLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkxlbmd0aCBvZiBYIGFuZCB5IG11c3QgYmUgZXF1YWwiKTtpZigiY2F0ZWdvcmljYWwiPT09dGhpcy50YXJnZXRNZXRyaWMpdGhpcy5ncmFwaD10aGlzLmNhdGVnb3JpY2FsU2ltcGxpY2lhbFNldEludGVyc2VjdGlvbih0aGlzLmdyYXBoLHQsdGhpcy50YXJnZXRXZWlnaHQ8MT8xLygxLXRoaXMudGFyZ2V0V2VpZ2h0KSoyLjU6MWUxMil9fSx0LnByb3RvdHlwZS5zdGVwPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpbWl6YXRpb25TdGF0ZS5jdXJyZW50RXBvY2g7cmV0dXJuIHQ8dGhpcy5nZXRORXBvY2hzKCkmJnRoaXMub3B0aW1pemVMYXlvdXRTdGVwKHQpLHRoaXMub3B0aW1pemF0aW9uU3RhdGUuY3VycmVudEVwb2NofSx0LnByb3RvdHlwZS5nZXRFbWJlZGRpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbWJlZGRpbmd9LHQucHJvdG90eXBlLm5lYXJlc3ROZWlnaGJvcnM9ZnVuY3Rpb24odCl7dmFyIGUsbj10aGlzLm5OZWlnaGJvcnMsbz1xTXQubWFrZU5ORGVzY2VudCh0aGlzLmRpc3RhbmNlRm4sdGhpcy5yYW5kb20pLGk9NStNYXRoLmZsb29yKC41PT09KGU9TWF0aC5wb3codC5sZW5ndGgsLjUpLzIwKT8wOk1hdGgucm91bmQoZSkpLGE9TWF0aC5tYXgoNSxNYXRoLmZsb29yKE1hdGgucm91bmQoKGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmxvZyh0KS9NYXRoLmxvZygyKX0pKHQubGVuZ3RoKSkpKTt0aGlzLnJwRm9yZXN0PVpNdC5tYWtlRm9yZXN0KHQsbixpLHRoaXMucmFuZG9tKTt2YXIgcj1vKHQsWk10Lm1ha2VMZWFmQXJyYXkodGhpcy5ycEZvcmVzdCksbixhKTtyZXR1cm57a25uSW5kaWNlczpyLmluZGljZXMsa25uRGlzdGFuY2VzOnIud2VpZ2h0c319LHQucHJvdG90eXBlLmZ1enp5U2ltcGxpY2lhbFNldD1mdW5jdGlvbih0LGUsbil7dm9pZCAwPT09biYmKG49MSk7dmFyIG89dGhpcyxpPW8ua25uSW5kaWNlcyxhPXZvaWQgMD09PWk/W106aSxyPW8ua25uRGlzdGFuY2VzLHM9dm9pZCAwPT09cj9bXTpyLGw9dGhpcy5zbW9vdGhLTk5EaXN0YW5jZShzLGUsby5sb2NhbENvbm5lY3Rpdml0eSksYz10aGlzLmNvbXB1dGVNZW1iZXJzaGlwU3RyZW5ndGhzKGEscyxsLnNpZ21hcyxsLnJob3MpLGQ9bmV3IFlNdC5TcGFyc2VNYXRyaXgoYy5yb3dzLGMuY29scyxjLnZhbHMsW3QubGVuZ3RoLHQubGVuZ3RoXSkscD1ZTXQudHJhbnNwb3NlKGQpLG09WU10LnBhaXJ3aXNlTXVsdGlwbHkoZCxwKSxmPVlNdC5zdWJ0cmFjdChZTXQuYWRkKGQscCksbSksdT1ZTXQubXVsdGlwbHlTY2FsYXIoZixuKSxnPVlNdC5tdWx0aXBseVNjYWxhcihtLDEtbik7cmV0dXJuIFlNdC5hZGQodSxnKX0sdC5wcm90b3R5cGUuY2F0ZWdvcmljYWxTaW1wbGljaWFsU2V0SW50ZXJzZWN0aW9uPWZ1bmN0aW9uKHQsZSxuLG8pe3ZvaWQgMD09PW8mJihvPTEpO3ZhciBpPXJ2dCh0LGUsbyxuKTtyZXR1cm4gc3Z0KGk9WU10LmVsaW1pbmF0ZVplcm9zKGkpKX0sdC5wcm90b3R5cGUuc21vb3RoS05ORGlzdGFuY2U9ZnVuY3Rpb24odCxlLG4sbyxpKXt2b2lkIDA9PT1uJiYobj0xKSx2b2lkIDA9PT1vJiYobz02NCksdm9pZCAwPT09aSYmKGk9MSk7Zm9yKHZhciBhPU1hdGgubG9nKGUpL01hdGgubG9nKDIpKmkscj1YTXQuemVyb3ModC5sZW5ndGgpLHM9WE10Lnplcm9zKHQubGVuZ3RoKSxsPTA7bDx0Lmxlbmd0aDtsKyspe3ZhciBjPTAsZD0xLzAscD0xLG09dFtsXSxmPW0uZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdD4wfSkpO2lmKGYubGVuZ3RoPj1uKXt2YXIgdT1NYXRoLmZsb29yKG4pLGc9bi11O3U+MD8ocltsXT1mW3UtMV0sZz5KTXQmJihyW2xdKz1nKihmW3VdLWZbdS0xXSkpKTpyW2xdPWcqZlswXX1lbHNlIGYubGVuZ3RoPjAmJihyW2xdPVhNdC5tYXgoZikpO2Zvcih2YXIgaD0wO2g8bztoKyspe2Zvcih2YXIgYj0wLHk9MTt5PHRbbF0ubGVuZ3RoO3krKyl7dmFyIF89dFtsXVt5XS1yW2xdO2IrPV8+MD9NYXRoLmV4cCgtXy9wKToxfWlmKE1hdGguYWJzKGItYSk8Sk10KWJyZWFrO2I+YT9wPShjKyhkPXApKS8yOihjPXAsZD09PTEvMD9wKj0yOnA9KGMrZCkvMil9aWYoc1tsXT1wLHJbbF0+MCl7dmFyIEM9WE10Lm1lYW4obSk7c1tsXTxRTXQqQyYmKHNbbF09UU10KkMpfWVsc2V7dmFyIE09WE10Lm1lYW4odC5tYXAoWE10Lm1lYW4pKTtzW2xdPFFNdCpNJiYoc1tsXT1RTXQqTSl9fXJldHVybntzaWdtYXM6cyxyaG9zOnJ9fSx0LnByb3RvdHlwZS5jb21wdXRlTWVtYmVyc2hpcFN0cmVuZ3Rocz1mdW5jdGlvbih0LGUsbixvKXtmb3IodmFyIGk9dC5sZW5ndGgsYT10WzBdLmxlbmd0aCxyPVhNdC56ZXJvcyhpKmEpLHM9WE10Lnplcm9zKGkqYSksbD1YTXQuemVyb3MoaSphKSxjPTA7YzxpO2MrKylmb3IodmFyIGQ9MDtkPGE7ZCsrKXt2YXIgcD0wOy0xIT09dFtjXVtkXSYmKHA9dFtjXVtkXT09PWM/MDplW2NdW2RdLW9bY108PTA/MTpNYXRoLmV4cCgtKGVbY11bZF0tb1tjXSkvbltjXSkscltjKmErZF09YyxzW2MqYStkXT10W2NdW2RdLGxbYyphK2RdPXApfXJldHVybntyb3dzOnIsY29sczpzLHZhbHM6bH19LHQucHJvdG90eXBlLmluaXRpYWxpemVTaW1wbGljaWFsU2V0RW1iZWRkaW5nPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMsZT10aGlzLmdldE5FcG9jaHMoKSxuPXRoaXMubkNvbXBvbmVudHMsbz10aGlzLmdyYXBoLmdldFZhbHVlcygpLGk9MCxhPTA7YTxvLmxlbmd0aDthKyspe2k8b1thXSYmKGk9b1thXSl9dmFyIHI9dGhpcy5ncmFwaC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0PGkvZT8wOnR9KSk7dGhpcy5lbWJlZGRpbmc9WE10Lnplcm9zKHIublJvd3MpLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm4gWE10Lnplcm9zKG4pLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm4gMjAqWE10LnRhdVJhbmQodC5yYW5kb20pLTEwfSkpfSkpO3ZhciBzPVtdLGw9W10sYz1bXSxkPXIuZ2V0QWxsKCk7Zm9yKGE9MDthPGQubGVuZ3RoO2ErKyl7dmFyIHA9ZFthXTtwLnZhbHVlJiYocy5wdXNoKHAudmFsdWUpLGMucHVzaChwLnJvdyksbC5wdXNoKHAuY29sKSl9cmV0dXJue2hlYWQ6bCx0YWlsOmMsZXBvY2hzUGVyU2FtcGxlOnRoaXMubWFrZUVwb2Noc1BlclNhbXBsZShzLGUpfX0sdC5wcm90b3R5cGUubWFrZUVwb2Noc1BlclNhbXBsZT1mdW5jdGlvbih0LGUpe3ZhciBuPVhNdC5maWxsZWQodC5sZW5ndGgsLTEpLG89WE10Lm1heCh0KSxpPXQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC9vKmV9KSk7cmV0dXJuIGkuZm9yRWFjaCgoZnVuY3Rpb24odCxvKXt0PjAmJihuW29dPWUvaVtvXSl9KSksbn0sdC5wcm90b3R5cGUuYXNzaWduT3B0aW1pemF0aW9uU3RhdGVQYXJhbWV0ZXJzPWZ1bmN0aW9uKHQpe09iamVjdC5hc3NpZ24odGhpcy5vcHRpbWl6YXRpb25TdGF0ZSx0KX0sdC5wcm90b3R5cGUucHJlcGFyZUZvck9wdGltaXphdGlvbkxvb3A9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC5yZXB1bHNpb25TdHJlbmd0aCxuPXQubGVhcm5pbmdSYXRlLG89dC5uZWdhdGl2ZVNhbXBsZVJhdGUsaT10aGlzLm9wdGltaXphdGlvblN0YXRlLGE9aS5lcG9jaHNQZXJTYW1wbGUscj1pLmhlYWRFbWJlZGRpbmcscz1yWzBdLmxlbmd0aCxsPXIubGVuZ3RoPT09aS50YWlsRW1iZWRkaW5nLmxlbmd0aCxjPWEubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC9vfSkpLGQ9ak10KGMpLHA9ak10KGEpO3RoaXMuYXNzaWduT3B0aW1pemF0aW9uU3RhdGVQYXJhbWV0ZXJzKHtlcG9jaE9mTmV4dFNhbXBsZTpwLGVwb2NoT2ZOZXh0TmVnYXRpdmVTYW1wbGU6ZCxlcG9jaHNQZXJOZWdhdGl2ZVNhbXBsZTpjLG1vdmVPdGhlcjpsLGluaXRpYWxBbHBoYTpuLGFscGhhOm4sZ2FtbWE6ZSxkaW06c30pfSx0LnByb3RvdHlwZS5pbml0aWFsaXplT3B0aW1pemF0aW9uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbWJlZGRpbmcsZT10aGlzLmVtYmVkZGluZyxuPXRoaXMub3B0aW1pemF0aW9uU3RhdGUsbz1uLmhlYWQsaT1uLnRhaWwsYT1uLmVwb2Noc1BlclNhbXBsZSxyPXRoaXMuZ2V0TkVwb2NocygpLHM9dGhpcy5ncmFwaC5uQ29scyxsPWF2dCh0aGlzLnNwcmVhZCx0aGlzLm1pbkRpc3QpO3RoaXMuYXNzaWduT3B0aW1pemF0aW9uU3RhdGVQYXJhbWV0ZXJzKHtoZWFkRW1iZWRkaW5nOnQsdGFpbEVtYmVkZGluZzplLGhlYWQ6byx0YWlsOmksZXBvY2hzUGVyU2FtcGxlOmEsYTpsLmEsYjpsLmIsbkVwb2NoczpyLG5WZXJ0aWNlczpzfSl9LHQucHJvdG90eXBlLm9wdGltaXplTGF5b3V0U3RlcD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5vcHRpbWl6YXRpb25TdGF0ZSxuPWUuaGVhZCxvPWUudGFpbCxpPWUuaGVhZEVtYmVkZGluZyxhPWUudGFpbEVtYmVkZGluZyxyPWUuZXBvY2hzUGVyU2FtcGxlLHM9ZS5lcG9jaE9mTmV4dFNhbXBsZSxsPWUuZXBvY2hPZk5leHROZWdhdGl2ZVNhbXBsZSxjPWUuZXBvY2hzUGVyTmVnYXRpdmVTYW1wbGUsZD1lLm1vdmVPdGhlcixwPWUuaW5pdGlhbEFscGhhLG09ZS5hbHBoYSxmPWUuZ2FtbWEsdT1lLmEsZz1lLmIsaD1lLmRpbSxiPWUubkVwb2Nocyx5PWUublZlcnRpY2VzLF89MDtfPHIubGVuZ3RoO18rKylpZighKHNbX10+dCkpe3ZhciBDPW5bX10sTT1pW0NdLHY9YVtvW19dXSx4PWl2dChNLHYpLE89MDt4PjAmJihPPS0yKnUqZypNYXRoLnBvdyh4LGctMSksTy89dSpNYXRoLnBvdyh4LGcpKzEpO2Zvcih2YXIgUD0wO1A8aDtQKyspe3ZhciB3PW92dChPKihNW1BdLXZbUF0pLDQpO01bUF0rPXcqbSxkJiYodltQXSs9LXcqbSl9c1tfXSs9cltfXTtmb3IodmFyIGs9TWF0aC5mbG9vcigodC1sW19dKS9jW19dKSxTPTA7UzxrO1MrKyl7dmFyIEQ9WE10LnRhdVJhbmRJbnQoeSx0aGlzLnJhbmRvbSksUj1hW0RdLEU9aXZ0KE0sUiksQT0wO2lmKEU+MClBPTIqZipnLEEvPSguMDAxK0UpKih1Kk1hdGgucG93KEUsZykrMSk7ZWxzZSBpZihDPT09RCljb250aW51ZTtmb3IoUD0wO1A8aDtQKyspe3c9NDtBPjAmJih3PW92dChBKihNW1BdLVJbUF0pLDQpKSxNW1BdKz13Km19fWxbX10rPWsqY1tfXX1yZXR1cm4gZS5hbHBoYT1wKigxLXQvYiksZS5jdXJyZW50RXBvY2grPTEsaX0sdC5wcm90b3R5cGUub3B0aW1pemVMYXlvdXRBc3luYz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB2b2lkIDA9PT10JiYodD1mdW5jdGlvbigpe3JldHVybiEwfSksbmV3IFByb21pc2UoKGZ1bmN0aW9uKG4sbyl7dmFyIGk9ZnVuY3Rpb24oKXtyZXR1cm4gTE10KGUsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgZSxhLHIscyxsO3JldHVybiBCTXQodGhpcywoZnVuY3Rpb24oYyl7dHJ5e2lmKGE9KGU9dGhpcy5vcHRpbWl6YXRpb25TdGF0ZSkubkVwb2Nocyx0aGlzLmVtYmVkZGluZz10aGlzLm9wdGltaXplTGF5b3V0U3RlcChlLmN1cnJlbnRFcG9jaCkscz0hMT09PXQocj10aGlzLm9wdGltaXphdGlvblN0YXRlLmN1cnJlbnRFcG9jaCksbD1yPT09YSxzfHxsKXJldHVyblsyLG4obCldO3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cmV0dXJuIGkoKX0pLDApfWNhdGNoKHQpe28odCl9cmV0dXJuWzJdfSkpfSkpfTtzZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBpKCl9KSwwKX0pKX0sdC5wcm90b3R5cGUub3B0aW1pemVMYXlvdXQ9ZnVuY3Rpb24odCl7dm9pZCAwPT09dCYmKHQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH0pO2Zvcih2YXIgZT0hMSxuPVtdOyFlOyl7dmFyIG89dGhpcy5vcHRpbWl6YXRpb25TdGF0ZSxpPW8ubkVwb2NocztuPXRoaXMub3B0aW1pemVMYXlvdXRTdGVwKG8uY3VycmVudEVwb2NoKTt2YXIgYT10aGlzLm9wdGltaXphdGlvblN0YXRlLmN1cnJlbnRFcG9jaCxyPSExPT09dChhKTtlPWE9PT1pfHxyfXJldHVybiBufSx0LnByb3RvdHlwZS5nZXRORXBvY2hzPWZ1bmN0aW9uKCl7aWYodGhpcy5uRXBvY2hzPjApcmV0dXJuIHRoaXMubkVwb2Noczt2YXIgdD10aGlzLmdyYXBoLm5Sb3dzO3JldHVybiB0PD0yNTAwPzUwMDp0PD01ZTM/NDAwOnQ8PTc1MDA/MzAwOjIwMH0sdH0pKCk7ZnVuY3Rpb24gdHZ0KHQsZSl7Zm9yKHZhciBuPTAsbz0wO288dC5sZW5ndGg7bysrKW4rPU1hdGgucG93KHRbb10tZVtvXSwyKTtyZXR1cm4gTWF0aC5zcXJ0KG4pfUhfdC5VTUFQPSRNdCxIX3QuZXVjbGlkZWFuPXR2dCxIX3QuY29zaW5lPWZ1bmN0aW9uIGV2dCh0LGUpe2Zvcih2YXIgbj0wLG89MCxpPTAsYT0wO2E8dC5sZW5ndGg7YSsrKW4rPXRbYV0qZVthXSxvKz1NYXRoLnBvdyh0W2FdLDIpLGkrPU1hdGgucG93KGVbYV0sMik7cmV0dXJuIDA9PT1vJiYwPT09aT8wOjA9PT1vfHwwPT09aT8xOjEtbi9NYXRoLnNxcnQobyppKX07dmFyIG52dD1mdW5jdGlvbiBudnQoKXt0aGlzLmN1cnJlbnRFcG9jaD0wLHRoaXMuaGVhZEVtYmVkZGluZz1bXSx0aGlzLnRhaWxFbWJlZGRpbmc9W10sdGhpcy5oZWFkPVtdLHRoaXMudGFpbD1bXSx0aGlzLmVwb2Noc1BlclNhbXBsZT1bXSx0aGlzLmVwb2NoT2ZOZXh0U2FtcGxlPVtdLHRoaXMuZXBvY2hPZk5leHROZWdhdGl2ZVNhbXBsZT1bXSx0aGlzLmVwb2Noc1Blck5lZ2F0aXZlU2FtcGxlPVtdLHRoaXMubW92ZU90aGVyPSEwLHRoaXMuaW5pdGlhbEFscGhhPTEsdGhpcy5hbHBoYT0xLHRoaXMuZ2FtbWE9MSx0aGlzLmE9MS41NzY5NDM0NjAzMTEzMDc3LHRoaXMuYj0uODk1MDYwODc3OTEwOTczMyx0aGlzLmRpbT0yLHRoaXMubkVwb2Nocz01MDAsdGhpcy5uVmVydGljZXM9MH07ZnVuY3Rpb24gb3Z0KHQsZSl7cmV0dXJuIHQ+ZT9lOnQ8LWU/LWU6dH1mdW5jdGlvbiBpdnQodCxlKXtmb3IodmFyIG49MCxvPTA7bzx0Lmxlbmd0aDtvKyspbis9TWF0aC5wb3codFtvXS1lW29dLDIpO3JldHVybiBufWZ1bmN0aW9uIGF2dCh0LGUpe3ZhciBuPVhNdC5saW5lYXIoMCwzKnQsMzAwKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0PGU/MTp0fSkpLG89WE10Lnplcm9zKG4ubGVuZ3RoKS5tYXAoKGZ1bmN0aW9uKG8saSl7cmV0dXJuIG5baV0+PWU/TWF0aC5leHAoLShuW2ldLWUpL3QpOm99KSksaT1LTXQuZGVmYXVsdCh7eDpuLHk6b30sKGZ1bmN0aW9uKHQpe3ZhciBlPVZNdCh0LDIpLG49ZVswXSxvPWVbMV07cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiAxLygxK24qTWF0aC5wb3codCwyKm8pKX19KSx7ZGFtcGluZzoxLjUsaW5pdGlhbFZhbHVlczpbLjUsLjVdLGdyYWRpZW50RGlmZmVyZW5jZTouMSxtYXhJdGVyYXRpb25zOjEwMCxlcnJvclRvbGVyYW5jZTouMDF9KS5wYXJhbWV0ZXJWYWx1ZXMsYT1WTXQoaSwyKTtyZXR1cm57YTphWzBdLGI6YVsxXX19ZnVuY3Rpb24gcnZ0KHQsZSxuLG8pe3JldHVybiB2b2lkIDA9PT1uJiYobj0xKSx2b2lkIDA9PT1vJiYobz01KSx0Lm1hcCgoZnVuY3Rpb24odCxpLGEpe3JldHVybi0xPT09ZVtpXXx8LTE9PT1lW2FdP3QqTWF0aC5leHAoLW4pOmVbaV0hPT1lW2FdP3QqTWF0aC5leHAoLW8pOnR9KSl9ZnVuY3Rpb24gc3Z0KHQpe3Q9WU10Lm5vcm1hbGl6ZSh0LCJtYXgiKTt2YXIgZT1ZTXQudHJhbnNwb3NlKHQpLG49WU10LnBhaXJ3aXNlTXVsdGlwbHkoZSx0KTtyZXR1cm4gdD1ZTXQuYWRkKHQsWU10LnN1YnRyYWN0KGUsbikpLFlNdC5lbGltaW5hdGVaZXJvcyh0KX1mdW5jdGlvbiBsdnQodCxlLG4pe2Zvcih2YXIgbz1YTXQuemVyb3ModC5sZW5ndGgpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIFhNdC56ZXJvcyhuWzBdLmxlbmd0aCl9KSksaT0wO2k8dC5sZW5ndGg7aSsrKWZvcih2YXIgYT0wO2E8dFswXS5sZW5ndGg7YSsrKWZvcih2YXIgcj0wO3I8blswXS5sZW5ndGg7cisrKXtvW2ldW3JdKz1lW2ldW2FdKm5bdFtpXVthXV1bcl19cmV0dXJuIG99ZnVuY3Rpb24gY3Z0KHQpe2xldCBlLG4sbz10Lmxlbmd0aDtmb3IoO287KW49TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKm8tLSksZT10W29dLHRbb109dFtuXSx0W25dPWU7cmV0dXJuIHR9ZnVuY3Rpb24gZHZ0KHQsZSl7cmV0dXJuYCR7ZX0vJHt0fWB9SF90LmZpbmRBQlBhcmFtcz1hdnQsSF90LmZhc3RJbnRlcnNlY3Rpb249cnZ0LEhfdC5yZXNldExvY2FsQ29ubmVjdGl2aXR5PXN2dCxIX3QuaW5pdFRyYW5zZm9ybT1sdnQsT2JqZWN0LmRlZmluZVByb3BlcnR5KElfdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSV90LlVNQVA9SF90LlVNQVA7Y2xhc3MgcHZ0e2NvbnN0cnVjdG9yKHQpe3RoaXMuaHR0cD10LHRoaXMuaHR0cFBhdGhQcmVmaXg9ImRhdGEvcGx1Z2luL25wbWkifWZldGNoRGF0YSh0KXtyZXR1cm4gaWUodGhpcy5mZXRjaEFubm90YXRpb25zKHQpLHRoaXMuZmV0Y2hNZXRyaWNzKHQpLHRoaXMuZmV0Y2hWYWx1ZXModCksdGhpcy5mZXRjaEVtYmVkZGluZ3ModCkpLnBpcGUoVnQoKChbdCxlLG4sb10pPT57Y29uc3QgaT17fSxhPXt9O2xldCByLHM9MDtmb3IoY29uc3QgciBvZiBPYmplY3Qua2V5cyh0KSlmb3IoY29uc3QgbCBpbiB0W3JdKXtjb25zdCBjPXRbcl1bbF07T2JqZWN0LmtleXMobykubGVuZ3RoJiYhYVtjXSYmb1tyXVtsXSYmb1tyXVtsXS5zb21lKCh0PT4wIT09dCkpJiYoYVtjXT17dmVjdG9yOm9bcl1bbF0saW5kZXg6cyxuYW1lOmN9LHMrPTEpO2NvbnN0IGQ9bmV3IE1hcDtmb3IoY29uc3QgdCBpbiBlW3JdKXtjb25zdCBvPWVbcl1bdF0saT16X3Qobyk7bGV0IGE9ZC5nZXQoaSk7YXx8KGE9e25QTUlWYWx1ZTpudWxsLGNvdW50VmFsdWU6bnVsbCxhbm5vdGF0aW9uOmMsbWV0cmljOmkscnVuOnJ9LGQuc2V0KGksYSkpLEFfdChvKT9hLmNvdW50VmFsdWU9bltyXVtsXVt0XTpUX3QobykmJihhLm5QTUlWYWx1ZT1uW3JdW2xdW3RdKX1pW2NdPVsuLi5pW2NdP2lbY106W10sLi4uZC52YWx1ZXMoKV19cmV0dXJuIE9iamVjdC5rZXlzKGEpLmxlbmd0aCYmKHI9KGZ1bmN0aW9uIGwodCl7Y29uc3QgZT1PYmplY3Qua2V5cyh0KTtyZXR1cm57cG9pbnRzOnQscG9pbnRLZXlzOmUsc2h1ZmZsZWREYXRhSW5kaWNlczpjdnQoKG49ZS5sZW5ndGgsWy4uLm5ldyBBcnJheShuKV0ubWFwKCgodCxlKT0+ZSkpKSksaGFzVW1hcFJ1bjohMX07dmFyIG59KShhKSkse2Fubm90YXRpb25EYXRhOmksbWV0cmljczplLGVtYmVkZGluZ0RhdGFTZXQ6cn19KSksaGUoKHQ9PnQgaW5zdGFuY2VvZiBmRSYmNDAwPD10LnN0YXR1cyYmdC5zdGF0dXM8NTAwP3p0KHthbm5vdGF0aW9uRGF0YTp7fSxtZXRyaWNzOnt9LGVtYmVkZGluZ0RhdGFTZXQ6dm9pZCAwfSk6SXQodCkpKSl9ZmV0Y2hBbm5vdGF0aW9ucyh0KXtyZXR1cm4gaWUodC5tYXAoKHQ9PnRoaXMuaHR0cC5nZXQoYC9leHBlcmltZW50LyR7dH0vJHt0aGlzLmh0dHBQYXRoUHJlZml4fS9hbm5vdGF0aW9uc2ApLnBpcGUoVnQoKGU9PihmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh0KS5tYXAoKChbdCxuXSk9PltkdnQodCxlKSxuXSkpKX0pKGUsdCkpKSkpKSkucGlwZShWdCgodD0+e2xldCBlPXt9O2Zvcihjb25zdCBuIG9mIHQpZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSksbik7cmV0dXJuIGV9KSkpfWZldGNoTWV0cmljcyh0KXtyZXR1cm4gaWUodC5tYXAoKHQ9PnRoaXMuaHR0cC5nZXQoYC9leHBlcmltZW50LyR7dH0vJHt0aGlzLmh0dHBQYXRoUHJlZml4fS9tZXRyaWNzYCkucGlwZShWdCgoZT0+KGZ1bmN0aW9uIG4odCxlKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHQpLm1hcCgoKFt0LG5dKT0+W2R2dCh0LGUpLG5dKSkpfSkoZSx0KSkpKSkpKS5waXBlKFZ0KCh0PT57bGV0IGU9e307Zm9yKGNvbnN0IG4gb2YgdCllPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSxuKTtyZXR1cm4gZX0pKSl9ZmV0Y2hWYWx1ZXModCl7cmV0dXJuIGllKHQubWFwKCh0PT50aGlzLmh0dHAuZ2V0KGAvZXhwZXJpbWVudC8ke3R9LyR7dGhpcy5odHRwUGF0aFByZWZpeH0vdmFsdWVzYCkucGlwZShWdCgoZT0+KGZ1bmN0aW9uIG4odCxlKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHQpLm1hcCgoKFt0LG5dKT0+W2R2dCh0LGUpLG5dKSkpfSkoZSx0KSkpKSkpKS5waXBlKFZ0KCh0PT57bGV0IGU9e307Zm9yKGNvbnN0IG4gb2YgdCllPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSxuKTtyZXR1cm4gZX0pKSl9ZmV0Y2hFbWJlZGRpbmdzKHQpe3JldHVybiBpZSh0Lm1hcCgodD0+dGhpcy5odHRwLmdldChgL2V4cGVyaW1lbnQvJHt0fS8ke3RoaXMuaHR0cFBhdGhQcmVmaXh9L2VtYmVkZGluZ3NgKS5waXBlKFZ0KChlPT4oZnVuY3Rpb24gbih0LGUpe3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXModCkubWFwKCgoW3Qsbl0pPT5bZHZ0KHQsZSksbl0pKSl9KShlLHQpKSkpKSkpLnBpcGUoVnQoKHQ9PntsZXQgZT17fTtmb3IoY29uc3QgbiBvZiB0KWU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLG4pO3JldHVybiBlfSkpKX19cHZ0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxwdnQpKFRyKEhFKSl9LHB2dC7JtXByb3Y9U24oe3Rva2VuOnB2dCxmYWN0b3J5OnB2dC7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIocHZ0LFt7dHlwZTpVbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpIRX1dfSksbnVsbCk7Y2xhc3MgbXZ0e31tdnQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG12dCl9LG12dC7JtW1vZD1mbyh7dHlwZTptdnR9KSxtdnQuybVpbmo9RG4oe3Byb3ZpZGVyczpbcHZ0XSxpbXBvcnRzOltbRkVdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIobXZ0LFt7dHlwZTpMXyxhcmdzOlt7aW1wb3J0czpbRkVdLHByb3ZpZGVyczpbcHZ0XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKG12dCx7aW1wb3J0czpbRkVdfSk7Y29uc3QgZnZ0PV9rKCJbTlBNSV0gblBNSSBMb2FkZWQiKSx1dnQ9X2soIltOUE1JXSBuUE1JIFBsdWdpbiBEYXRhIFJlcXVlc3RlZCIpLGd2dD1faygiW05QTUldIG5QTUkgUGx1Z2luIERhdGEgTG9hZGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksaHZ0PV9rKCJbTlBNSV0gblBNSSBQbHVnaW4gRGF0YSBSZXF1ZXN0IEZhaWxlZCIpLGJ2dD1faygiW05QTUldIEFkZGluZy9SZW1vdmluZyBBbm5vdGF0aW9ucyB0by9mcm9tIFNlbGVjdGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSkseXZ0PV9rKCJbTlBNSV0gQW5ub3RhdGlvbnMgU2V0Iix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksX3Z0PV9rKCJbTlBNSV0gQ2xlYXJpbmcgdGhlIEFubm90YXRpb24gU2VsZWN0aW9uIiksQ3Z0PV9rKCJbTlBNSV0gQWRkaW5nL1JlbW92aW5nIEFubm90YXRpb25zIHRvL2Zyb20gRmxhZ2dlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLE12dD1faygiW05QTUldIEFkZGluZy9SZW1vdmluZyBBbm5vdGF0aW9ucyB0by9mcm9tIEhpZGRlbiIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLHZ2dD1faygiW05QTUldIEFubm90YXRpb25zIFJlZ2V4IENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSx4dnQ9X2soIltOUE1JXSBNZXRyaWNzIFJlZ2V4IENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxPdnQ9X2soIltOUE1JXSBNZXRyaWMgRmlsdGVyIEFkZGVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksUHZ0PV9rKCJbTlBNSV0gTWV0cmljIEZpbHRlciBSZW1vdmVkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksd3Z0PV9rKCJbTlBNSV0gTWV0cmljIEZpbHRlciBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksa3Z0PV9rKCJbTlBNSV0gQW5ub3RhdGlvbiBTb3J0IENoYW5nZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxTdnQ9X2soIltOUE1JXSBTaW1pbGFyaXR5IFNvcnQgQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLER2dD1faygiW05QTUldIFRvZ2dsZSBQQyBFeHBhbmRlZCIpLFJ2dD1faygiW05QTUldIFRvZ2dsZSBBbm5vdGF0aW9ucyBFeHBhbmRlZCIpLEV2dD1faygiW05QTUldIFRvZ2dsZSBTaWRlYmFyIEV4cGFuZGVkIiksQXZ0PV9rKCJbTlBNSV0gU2hvdyBDb3VudHMgVG9nZ2xlZCIpLFR2dD1faygiW05QTUldIFNob3cgSGlkZGVuIEFubm90YXRpb25zIFRvZ2dsZWQiKSxOdnQ9X2soIltOUE1JXSBFbWJlZGRpbmdzIFZpZXcgVG9nZ2xlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLHp2dD1faygiW05QTUldIFNpZGViYXIgV2lkdGggQ2hhbmdlZCIse19hczoicHJvcHMiLF9wOnZvaWQgMH0pLEl2dD1faygiW05QTUldIEVtYmVkZGluZ3MgU2lkZWJhciBXaWR0aCBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksSHZ0PV9rKCJbTlBNSV0gRW1iZWRkaW5ncyBTaWRlYmFyIEV4cGFuZGVkIFRvZ2dsZWQiKSxGdnQ9X2soIltOUE1JXSBDaGFuZ2UgRW1iZWRkaW5nIERhdGFTZXQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxMdnQ9Im5wbWkiO3ZhciBCdnQsVnZ0LGp2dCxVdnQ7IShmdW5jdGlvbih0KXt0W3QuQU5EPTBdPSJBTkQifSkoQnZ0fHwoQnZ0PXt9KSksKGZ1bmN0aW9uKHQpe3RbdC5NRVRSSUM9MF09Ik1FVFJJQyIsdFt0Lk9QRVJBVE9SPTFdPSJPUEVSQVRPUiJ9KShWdnR8fChWdnQ9e30pKSwoZnVuY3Rpb24odCl7dFt0LkRFRkFVTFQ9MF09IkRFRkFVTFQiLHRbdC5FTUJFRERJTkdTPTFdPSJFTUJFRERJTkdTIn0pKGp2dHx8KGp2dD17fSkpLChmdW5jdGlvbih0KXt0W3QuREVTQ0VORElORz0wXT0iREVTQ0VORElORyIsdFt0LkFTQ0VORE5HPTFdPSJBU0NFTkRORyIsdFt0LlNJTUlMQVI9Ml09IlNJTUlMQVIiLHRbdC5ESVNTSU1JTEFSPTNdPSJESVNTSU1JTEFSIn0pKFV2dHx8KFV2dD17fSkpO2NvbnN0IFd2dD1fUyhMdnQpLEd2dD1iUyhXdnQsKHQ9PnQucGx1Z2luRGF0YUxvYWRlZC5zdGF0ZSkpLFl2dD1iUyhXdnQsKHQ9PnQuYW5ub3RhdGlvbkRhdGEpKSxxdnQ9YlMoV3Z0LCh0PT50LnJ1blRvTWV0cmljcykpLFp2dD1iUyhXdnQsKHQ9PnQuZW1iZWRkaW5nRGF0YVNldCkpLFh2dD1iUyhXdnQsKHQ9PnQuc2VsZWN0ZWRBbm5vdGF0aW9ucykpLEt2dD1iUyhXdnQsKHQ9PnQuZmxhZ2dlZEFubm90YXRpb25zKSksSnZ0PWJTKFd2dCwodD0+dC5oaWRkZW5Bbm5vdGF0aW9ucykpLFF2dD1iUyhXdnQsKHQ9PnQuYW5ub3RhdGlvbnNSZWdleCkpLCR2dD1iUyhXdnQsKHQ9PnQubWV0cmljc1JlZ2V4KSksdHh0PWJTKFd2dCwodD0+dC5tZXRyaWNBcml0aG1ldGljKSksZXh0PWJTKFd2dCwodD0+dC5tZXRyaWNGaWx0ZXJzKSksbnh0PWJTKFd2dCwodD0+dC5zb3J0KSksb3h0PWJTKFd2dCwodD0+dC5wY0V4cGFuZGVkKSksaXh0PWJTKFd2dCwodD0+dC5hbm5vdGF0aW9uc0V4cGFuZGVkKSksYXh0PWJTKFd2dCwodD0+dC5zaWRlYmFyRXhwYW5kZWQpKSxyeHQ9YlMoV3Z0LCh0PT50LnNob3dDb3VudHMpKSxzeHQ9YlMoV3Z0LCh0PT50LnNob3dIaWRkZW5Bbm5vdGF0aW9ucykpLGx4dD1iUyhXdnQsKHQ9PnQudmlld0FjdGl2ZSkpLGN4dD1iUyhXdnQsKHQ9PnQuc2lkZWJhcldpZHRoKSksZHh0PWJTKFd2dCwodD0+dC5lbWJlZGRpbmdzTWV0cmljKSkscHh0PWJTKFd2dCwodD0+dC5lbWJlZGRpbmdzU2lkZWJhcldpZHRoKSksbXh0PWJTKFd2dCwodD0+dC5lbWJlZGRpbmdzU2lkZWJhckV4cGFuZGVkKSk7Y2xhc3MgZnh0e2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLmFjdGlvbnMkPXQsdGhpcy5zdG9yZT1lLHRoaXMuZGF0YVNvdXJjZT1uLHRoaXMubG9hZERhdGEkPVdTKCgoKT0+cGUodGhpcy5sb2FkUGx1Z2luRGF0YSgpKS5waXBlKFZ0KCgoKT0+KHt9KSkpKSkse2Rpc3BhdGNoOiExfSl9bG9hZFBsdWdpbkRhdGEoKXtyZXR1cm4gdGhpcy5hY3Rpb25zJC5waXBlKCRTKGZ2dCkscWUodGhpcy5zdG9yZS5zZWxlY3QoR3Z0KSx0aGlzLnN0b3JlLnNlbGVjdCh4UikpLHVlKCgoWyx0LGVdKT0+dCE9PVVFLkxPQURJTkcmJm51bGwhPT1lKSksV2UoKCgpPT50aGlzLnN0b3JlLmRpc3BhdGNoKHV2dCgpKSkpLCR0KCgoWywsdF0pPT50aGlzLmRhdGFTb3VyY2UuZmV0Y2hEYXRhKHQpLnBpcGUoV2UoKHQ9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKGd2dCh0KSl9KSksVnQoKCgpPT57fSkpLGhlKCgoKT0+KHRoaXMuc3RvcmUuZGlzcGF0Y2goaHZ0KCkpLGR0KSkpKSkpKX19Znh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxmeHQpKFRyKFFTKSxUcihpUyksVHIocHZ0KSl9LGZ4dC7JtXByb3Y9U24oe3Rva2VuOmZ4dCxmYWN0b3J5OmZ4dC7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZnh0LFt7dHlwZTpVbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpRU30se3R5cGU6aVN9LHt0eXBlOnB2dH1dfSksbnVsbCk7Y2xhc3MgdXh0e311eHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHV4dCl9LHV4dC7JtWNtcD1zbyh7dHlwZTp1eHQsc2VsZWN0b3JzOltbIm5wbWktaW5hY3RpdmUtdmlldyJdXSxkZWNsczo2LHZhcnM6MCxjb25zdHM6W1sxLCJjb250YWluZXIiXSxbMSwidGl0bGUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKENmKDAsImRpdiIpLENmKDEsImRpdiIsMCksQ2YoMiwiZGl2IiwxKSxQdSgzLCJuUE1JIGlzIGluYWN0aXZlIGJlY2F1c2Ugbm8gZGF0YSBpcyBhdmFpbGFibGUuIiksTWYoKSxDZig0LCJkaXYiKSxQdSg1LCIgVG8gdXNlIHRoZSBuUE1JLCBjYWxjdWxhdGUgblBNSSB2YWx1ZXMsIGFuZCBsb2cgdGhlbSB1c2luZyB0aGUgc3VtbWFyeSB3cml0ZXIuICIpLE1mKCksTWYoKSxNZigpKX0sc3R5bGVzOlsiLmNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0ge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG87XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgcGFkZGluZzogNTBweDtcbn1cblxuLnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gIGZvbnQtc2l6ZTogMTM1JTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XG59Il19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHV4dCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJucG1pLWluYWN0aXZlLXZpZXciLHRlbXBsYXRlVXJsOiIuL2luYWN0aXZlX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL2luYWN0aXZlX2NvbXBvbmVudC5jc3MiXX1dfV0sbnVsbCxudWxsKTtjb25zdCBneHQ9VlMoe3BsdWdpbkRhdGFMb2FkZWQ6e3N0YXRlOlVFLk5PVF9MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOm51bGx9LGFubm90YXRpb25EYXRhOnt9LGVtYmVkZGluZ0RhdGFTZXQ6dm9pZCAwLHJ1blRvTWV0cmljczp7fSxzZWxlY3RlZEFubm90YXRpb25zOltdLGZsYWdnZWRBbm5vdGF0aW9uczpbXSxoaWRkZW5Bbm5vdGF0aW9uczpbXSxhbm5vdGF0aW9uc1JlZ2V4OiIiLG1ldHJpY3NSZWdleDoiIixtZXRyaWNBcml0aG1ldGljOltdLG1ldHJpY0ZpbHRlcnM6e30sc29ydDp7bWV0cmljOiIiLG9yZGVyOlV2dC5ERVNDRU5ESU5HfSxwY0V4cGFuZGVkOiEwLGFubm90YXRpb25zRXhwYW5kZWQ6ITAsc2lkZWJhckV4cGFuZGVkOiEwLHNob3dDb3VudHM6ITAsc2hvd0hpZGRlbkFubm90YXRpb25zOiExLHNpZGViYXJXaWR0aDozMDAsdmlld0FjdGl2ZTpqdnQuREVGQVVMVCxlbWJlZGRpbmdzTWV0cmljOiIiLGVtYmVkZGluZ3NTaWRlYmFyV2lkdGg6NTAwLGVtYmVkZGluZ3NTaWRlYmFyRXhwYW5kZWQ6ITB9LEJTKHV2dCwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtwbHVnaW5EYXRhTG9hZGVkOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnBsdWdpbkRhdGFMb2FkZWQpLHtzdGF0ZTpVRS5MT0FESU5HfSl9KSkpLEJTKGh2dCwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtwbHVnaW5EYXRhTG9hZGVkOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LnBsdWdpbkRhdGFMb2FkZWQpLHtzdGF0ZTpVRS5GQUlMRUR9KX0pKSksQlMoZ3Z0LCgodCx7YW5ub3RhdGlvbkRhdGE6ZSxtZXRyaWNzOm4sZW1iZWRkaW5nRGF0YVNldDpvfSk9Pntjb25zdCBpPXt9O2Zvcihjb25zdCB0IGluIG4pe2lbdF09W107Zm9yKGNvbnN0IGUgb2Ygblt0XSlUX3QoZSkmJmlbdF0ucHVzaChlKX1yZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtydW5Ub01ldHJpY3M6aSxhbm5vdGF0aW9uRGF0YTplLGVtYmVkZGluZ0RhdGFTZXQ6byxwbHVnaW5EYXRhTG9hZGVkOntzdGF0ZTpVRS5MT0FERUQsbGFzdExvYWRlZFRpbWVJbk1zOkRhdGUubm93KCl9fSl9KSksQlMoYnZ0LCgodCx7YW5ub3RhdGlvbnM6ZX0pPT57Y29uc3Qgbj1uZXcgU2V0KFsuLi50LnNlbGVjdGVkQW5ub3RhdGlvbnMsLi4uZV0pO2lmKG4uc2l6ZT09PXQuc2VsZWN0ZWRBbm5vdGF0aW9ucy5sZW5ndGgpZm9yKGNvbnN0IHQgb2YgZSluLmRlbGV0ZSh0KTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZWxlY3RlZEFubm90YXRpb25zOlsuLi5uXX0pfSkpLEJTKHl2dCwoKHQse2Fubm90YXRpb25zOmV9KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZWxlY3RlZEFubm90YXRpb25zOmV9KSkpLEJTKF92dCwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzZWxlY3RlZEFubm90YXRpb25zOltdfSkpKSxCUyhDdnQsKCh0LHthbm5vdGF0aW9uczplfSk9Pntjb25zdCBuPW5ldyBTZXQoWy4uLnQuZmxhZ2dlZEFubm90YXRpb25zLC4uLmVdKTtpZihuLnNpemU9PT10LmZsYWdnZWRBbm5vdGF0aW9ucy5sZW5ndGgpZm9yKGNvbnN0IHQgb2YgZSluLmRlbGV0ZSh0KTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtmbGFnZ2VkQW5ub3RhdGlvbnM6Wy4uLm5dLHNlbGVjdGVkQW5ub3RhdGlvbnM6W119KX0pKSxCUyhNdnQsKCh0LHthbm5vdGF0aW9uczplfSk9Pntjb25zdCBuPW5ldyBTZXQoWy4uLnQuaGlkZGVuQW5ub3RhdGlvbnMsLi4uZV0pO2lmKG4uc2l6ZT09PXQuaGlkZGVuQW5ub3RhdGlvbnMubGVuZ3RoKWZvcihjb25zdCB0IG9mIGUpbi5kZWxldGUodCk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7aGlkZGVuQW5ub3RhdGlvbnM6Wy4uLm5dLHNlbGVjdGVkQW5ub3RhdGlvbnM6W119KX0pKSxCUyh2dnQsKCh0LHtyZWdleDplfSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7YW5ub3RhdGlvbnNSZWdleDplfSkpKSxCUyh4dnQsKCh0LHtyZWdleDplfSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7bWV0cmljc1JlZ2V4OmV9KSkpLEJTKE92dCwoKHQse21ldHJpYzplfSk9PntpZih0Lm1ldHJpY0ZpbHRlcnNbZV0pcmV0dXJuIHQ7Y29uc3Qgbj1bXTtyZXR1cm4gMCE9PXQubWV0cmljQXJpdGhtZXRpYy5sZW5ndGgmJm4ucHVzaCh7a2luZDpWdnQuT1BFUkFUT1Isb3BlcmF0b3I6QnZ0LkFORH0pLG4ucHVzaCh7a2luZDpWdnQuTUVUUklDLG1ldHJpYzplfSksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHttZXRyaWNBcml0aG1ldGljOlsuLi50Lm1ldHJpY0FyaXRobWV0aWMsLi4ubl0sbWV0cmljRmlsdGVyczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5tZXRyaWNGaWx0ZXJzKSx7W2VdOnttYXg6MSxtaW46LTEsaW5jbHVkZU5hTjohMX19KSxzb3J0OnttZXRyaWM6ZSxvcmRlcjpVdnQuREVTQ0VORElOR319KX0pKSxCUyhQdnQsKCh0LHttZXRyaWM6ZX0pPT57aWYoIXQubWV0cmljRmlsdGVyc1tlXSlyZXR1cm4gdDtsZXQgbj0wLG89MCxpPTI7Y29uc3QgYT10Lm1ldHJpY0ZpbHRlcnMscj1lLHM9WlQoYSxbInN5bWJvbCI9PXR5cGVvZiByP3I6cisiIl0pO2Zvcihjb25zdCBvIGluIHQubWV0cmljQXJpdGhtZXRpYyl7Y29uc3QgaT10Lm1ldHJpY0FyaXRobWV0aWNbb107aS5raW5kPT09VnZ0Lk1FVFJJQyYmaS5tZXRyaWM9PT1lJiYobj1wYXJzZUludChvKSl9cmV0dXJuIDAhPT1uJiYobz1uLTEsaT1uKzEpLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7bWV0cmljQXJpdGhtZXRpYzpbLi4udC5tZXRyaWNBcml0aG1ldGljLnNsaWNlKDAsbyksLi4udC5tZXRyaWNBcml0aG1ldGljLnNsaWNlKGkpXSxtZXRyaWNGaWx0ZXJzOnN9KX0pKSxCUyh3dnQsKCh0LHttZXRyaWM6ZSxtYXg6bixtaW46byxpbmNsdWRlTmFOOml9KT0+dC5tZXRyaWNGaWx0ZXJzW2VdP09iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7bWV0cmljRmlsdGVyczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5tZXRyaWNGaWx0ZXJzKSx7W2VdOnttYXg6bixtaW46byxpbmNsdWRlTmFOOml9fSl9KTp0KSksQlMoa3Z0LCgodCx7bWV0cmljOmV9KT0+e2NvbnN0IG49e21ldHJpYzplLG9yZGVyOlV2dC5ERVNDRU5ESU5HfTtyZXR1cm4gdC5zb3J0Lm1ldHJpYz09PWUmJnQuc29ydC5vcmRlcj09PVV2dC5ERVNDRU5ESU5HJiYobi5vcmRlcj1VdnQuQVNDRU5ETkcpLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c29ydDpufSl9KSksQlMoU3Z0LCgodCx7YW5ub3RhdGlvbjplfSk9Pntjb25zdCBuPXttZXRyaWM6ZSxvcmRlcjpVdnQuU0lNSUxBUn07cmV0dXJuIHQuc29ydC5tZXRyaWM9PT1lJiZ0LnNvcnQub3JkZXI9PT1VdnQuU0lNSUxBUiYmKG4ub3JkZXI9VXZ0LkRJU1NJTUlMQVIpLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7c29ydDpufSl9KSksQlMoRHZ0LCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3BjRXhwYW5kZWQ6IXQucGNFeHBhbmRlZH0pKSksQlMoUnZ0LCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2Fubm90YXRpb25zRXhwYW5kZWQ6IXQuYW5ub3RhdGlvbnNFeHBhbmRlZH0pKSksQlMoRXZ0LCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NpZGViYXJFeHBhbmRlZDohdC5zaWRlYmFyRXhwYW5kZWR9KSkpLEJTKEF2dCwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzaG93Q291bnRzOiF0LnNob3dDb3VudHN9KSkpLEJTKFR2dCwodD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzaG93SGlkZGVuQW5ub3RhdGlvbnM6IXQuc2hvd0hpZGRlbkFubm90YXRpb25zfSkpKSxCUyhOdnQsKCh0LHttZXRyaWM6ZX0pPT57bGV0IG49anZ0LkVNQkVERElOR1Msbz1lO3JldHVybiBlPT09dC5lbWJlZGRpbmdzTWV0cmljJiYobj1qdnQuREVGQVVMVCxvPSIiKSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3ZpZXdBY3RpdmU6bixlbWJlZGRpbmdzTWV0cmljOm99KX0pKSxCUyh6dnQsKCh0LHtzaWRlYmFyV2lkdGg6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse3NpZGViYXJXaWR0aDplfSkpKSxCUyhJdnQsKCh0LHtzaWRlYmFyV2lkdGg6ZX0pPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2VtYmVkZGluZ3NTaWRlYmFyV2lkdGg6ZX0pKSksQlMoSHZ0LCh0PT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2VtYmVkZGluZ3NTaWRlYmFyRXhwYW5kZWQ6IXQuZW1iZWRkaW5nc1NpZGViYXJFeHBhbmRlZH0pKSksQlMoRnZ0LCgodCx7ZGF0YVNldDplfSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7ZW1iZWRkaW5nRGF0YVNldDplfSkpKSk7ZnVuY3Rpb24gaHh0KHQsZSl7cmV0dXJuIGd4dCh0LGUpfWZ1bmN0aW9uIGJ4dCh0LGUpezEmdCYmdmYoMCwibWF0LWljb24iLDcpfWZ1bmN0aW9uIHl4dCh0LGUpe2lmKDEmdCYmKENmKDAsIm1hdC1vcHRpb24iLDgpLFB1KDEpLE1mKCkpLDImdCl7Y29uc3QgdD1lLiRpbXBsaWNpdDtiZigidmFsdWUiLHQpLERjKDEpLHd1KHQpfX1jbGFzcyBfeHR7Y29uc3RydWN0b3IoKXt0aGlzLm9uUmVnZXhGaWx0ZXJWYWx1ZUNoYW5nZT1uZXcgU3ksdGhpcy5vbkFkZEZpbHRlcj1uZXcgU3l9b25PcHRpb25TZWxlY3RlZCh0LGUpe3RoaXMub25BZGRGaWx0ZXIuZW1pdCh0Lm9wdGlvbi52YWx1ZSksZS52YWx1ZT0iIn19X3h0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxfeHQpfSxfeHQuybVjbXA9c28oe3R5cGU6X3h0LHNlbGVjdG9yczpbWyJtZXRyaWMtc2VhcmNoLWNvbXBvbmVudCJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZjdSgidmFsaWQiLG4uaXNSZWdleEZpbHRlclZhbGlkKX0saW5wdXRzOntjb21wbGV0aW9uczoiY29tcGxldGlvbnMiLHJlZ2V4RmlsdGVyVmFsdWU6InJlZ2V4RmlsdGVyVmFsdWUiLGlzUmVnZXhGaWx0ZXJWYWxpZDoiaXNSZWdleEZpbHRlclZhbGlkIn0sb3V0cHV0czp7b25SZWdleEZpbHRlclZhbHVlQ2hhbmdlOiJvblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UiLG9uQWRkRmlsdGVyOiJvbkFkZEZpbHRlciJ9LGRlY2xzOjcsdmFyczo0LGNvbnN0czpbWyJzdmdJY29uIiwic2VhcmNoXzI0cHgiXSxbIm1hdElucHV0IiwiIiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwicGxhY2Vob2xkZXIiLCJBZGQgTWV0cmljIEZpbHRlciIsMywidmFsdWUiLCJtYXRBdXRvY29tcGxldGUiLCJpbnB1dCJdLFsibWF0SW5wdXQiLCIiXSxbInN2Z0ljb24iLCJlcnJvcl8yNHB4IiwiY2xhc3MiLCJlcnJvci1pY29uIiwibWF0VG9vbHRpcCIsIkludmFsaWQgcmVnZXggZmlsdGVyLiBUaGUgcmVzdWx0IG1heSBiZSBzdGFsZS4iLDQsIm5nSWYiXSxbImF1dG9BY3RpdmVGaXJzdE9wdGlvbiIsIiIsMywib3B0aW9uU2VsZWN0ZWQiXSxbImZpbHRlck1hdGNoZXMiLCJtYXRBdXRvY29tcGxldGUiXSxbMywidmFsdWUiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsic3ZnSWNvbiIsImVycm9yXzI0cHgiLCJtYXRUb29sdGlwIiwiSW52YWxpZCByZWdleCBmaWx0ZXIuIFRoZSByZXN1bHQgbWF5IGJlIHN0YWxlLiIsMSwiZXJyb3ItaWNvbiJdLFszLCJ2YWx1ZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlKXtjb25zdCB0PXdmKCk7dmYoMCwibWF0LWljb24iLDApLENmKDEsImlucHV0IiwxLDIpLFJmKCJpbnB1dCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25SZWdleEZpbHRlclZhbHVlQ2hhbmdlLmVtaXQoZS50YXJnZXQudmFsdWUpfSkpLE1mKCksSG0oMyxieHQsMSwwLCJtYXQtaWNvbiIsMyksQ2YoNCwibWF0LWF1dG9jb21wbGV0ZSIsNCw1KSxSZigib3B0aW9uU2VsZWN0ZWQiLChmdW5jdGlvbiBlKG8pe1BpKHQpO2NvbnN0IGk9Rm0oMik7cmV0dXJuIG4ub25PcHRpb25TZWxlY3RlZChvLGkpfSkpLEhtKDYseXh0LDIsMiwibWF0LW9wdGlvbiIsNiksTWYoKX1pZigyJmUpe2NvbnN0IHQ9Rm0oNSk7RGMoMSksYmYoInZhbHVlIixuLnJlZ2V4RmlsdGVyVmFsdWUpKCJtYXRBdXRvY29tcGxldGUiLHQpLERjKDIpLGJmKCJuZ0lmIiwhbi5pc1JlZ2V4RmlsdGVyVmFsaWQpLERjKDMpLGJmKCJuZ0Zvck9mIixuLmNvbXBsZXRpb25zKX19LGRpcmVjdGl2ZXM6W01xLEFaLFkzLFB2LEYzLHh2LFBMXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17ZmxleDpub25lO21hcmdpbi1yaWdodDo1cHh9W19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cGFkZGluZzowIDEwcHg7cG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOi45ZW19W19uZ2hvc3QtJUNPTVAlXTpub3QoLnZhbGlkKXtjb2xvcjojYzYyODI4fVtfbmdob3N0LSVDT01QJV06bm90KC52YWxpZCkgICBpbnB1dFtfbmdjb250ZW50LSVDT01QJV17Y2FyZXQtY29sb3I6Y3VycmVudENvbG9yfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihfeHQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljLXNlYXJjaC1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL21ldHJpY19zZWFyY2hfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vbWV0cmljX3NlYXJjaF9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sbnVsbCx7Y29tcGxldGlvbnM6W3t0eXBlOlJffV0scmVnZXhGaWx0ZXJWYWx1ZTpbe3R5cGU6Ul99XSxpc1JlZ2V4RmlsdGVyVmFsaWQ6W3t0eXBlOkFfLGFyZ3M6WyJjbGFzcy52YWxpZCJdfSx7dHlwZTpSX31dLG9uUmVnZXhGaWx0ZXJWYWx1ZUNoYW5nZTpbe3R5cGU6RV99XSxvbkFkZEZpbHRlcjpbe3R5cGU6RV99XX0pO2NsYXNzIEN4dHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5tZXRyaWNzUmVnZXgkPXRoaXMuc3RvcmUuc2VsZWN0KCR2dCksdGhpcy5hY3RpdmVSdW5zJD10aGlzLnN0b3JlLnBpcGUoclMoX0kpKS5waXBlKFZ0KCh0PT50P0FycmF5LmZyb20odC5lbnRyaWVzKCkpLmZpbHRlcigodD0+dFsxXSkpLm1hcCgodD0+dFswXSkpOltdKSkpLHRoaXMubWV0cmljc0ZvckFjdGl2ZVJ1bnMkPUt0KHRoaXMuYWN0aXZlUnVucyQsdGhpcy5zdG9yZS5zZWxlY3QocXZ0KSkucGlwZShWdCgoKFt0LGVdKT0+e2NvbnN0IG49bmV3IFNldDtmb3IoY29uc3QgbyBvZiB0KWlmKGVbb10pZm9yKGNvbnN0IHQgb2YgZVtvXSluLmFkZCh0KTtyZXR1cm5bLi4ubl19KSkpLHRoaXMuaXNNZXRyaWNzRmlsdGVyVmFsaWQkPXRoaXMubWV0cmljc1JlZ2V4JC5waXBlKFZ0KCh0PT57dHJ5e3JldHVybiBCb29sZWFuKG5ldyBSZWdFeHAodCkpfWNhdGNoKHQpe3JldHVybiExfX0pKSksdGhpcy5tZXRyaWNGaWx0ZXJLZXlzJD10aGlzLnN0b3JlLnBpcGUoclMoZXh0KSkucGlwZShWdCgodD0+T2JqZWN0LmtleXModCkpKSksdGhpcy5jb21wbGV0aW9ucyQ9S3QodGhpcy5tZXRyaWNzRm9yQWN0aXZlUnVucyQsdGhpcy5tZXRyaWNzUmVnZXgkLHRoaXMubWV0cmljRmlsdGVyS2V5cyQpLnBpcGUoVnQoKChbdCxlLG5dKT0+e2NvbnN0IG89dC5maWx0ZXIoKHQ9PiFuLmluY2x1ZGVzKHQpKSk7dHJ5e2NvbnN0IHQ9bmV3IFJlZ0V4cChlLCJpIik7cmV0dXJuIG8uZmlsdGVyKChlPT50LnRlc3QoZSkpKS5zb3J0KCl9Y2F0Y2godCl7cmV0dXJuW119fSkpKX1vbkZpbHRlckNoYW5nZSh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKHh2dCh7cmVnZXg6dH0pKX1vbkFkZEZpbHRlcih0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKE92dCh7bWV0cmljOnR9KSksdGhpcy5zdG9yZS5kaXNwYXRjaCh4dnQoe3JlZ2V4OiIifSkpfX1mdW5jdGlvbiBNeHQodCxlLG4pe2NvbnN0IG89W1tlLC4uLm5dXTtpZighbi5sZW5ndGh8fCF0Lmxlbmd0aCl7cmV0dXJuImRhdGE6dGV4dC9jc3Y7Y2hhcnNldD11dGYtOCwiK28ubWFwKCh0PT50LmpvaW4oIiwiKSkpLmpvaW4oIlxuIil9Y29uc3QgaT1uLm1hcCgodD0+el90KHQpKSk7Zm9yKGNvbnN0W24sYV1vZiB0KXtjb25zdCB0PWEuZmlsdGVyKCh0PT50LnJ1bj09PWUpKTtpZih0Lmxlbmd0aCl7Y29uc3QgZT1bbl07Zm9yKGNvbnN0IG4gb2YgaSl7Y29uc3Qgbz10LmZpbmQoKHQ9PnQubWV0cmljPT09bikpO2UucHVzaCh2b2lkIDA9PT1vPyJudWxsIjpgJHtvLm5QTUlWYWx1ZX1gKX1vLnB1c2goZSl9fXJldHVybiJkYXRhOnRleHQvY3N2O2NoYXJzZXQ9dXRmLTgsIitvLm1hcCgodD0+dC5qb2luKCIsIikpKS5qb2luKCJcbiIpfUN4dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Q3h0KShnZihpUykpfSxDeHQuybVjbXA9c28oe3R5cGU6Q3h0LHNlbGVjdG9yczpbWyJucG1pLW1ldHJpYy1zZWFyY2giXV0sZGVjbHM6NCx2YXJzOjksY29uc3RzOltbMywicmVnZXhGaWx0ZXJWYWx1ZSIsImNvbXBsZXRpb25zIiwiaXNSZWdleEZpbHRlclZhbGlkIiwib25SZWdleEZpbHRlclZhbHVlQ2hhbmdlIiwib25BZGRGaWx0ZXIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKENmKDAsIm1ldHJpYy1zZWFyY2gtY29tcG9uZW50IiwwKSxSZigib25SZWdleEZpbHRlclZhbHVlQ2hhbmdlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vbkZpbHRlckNoYW5nZShlKX0pKSgib25BZGRGaWx0ZXIiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uQWRkRmlsdGVyKGUpfSkpLF95KDEsImFzeW5jIiksX3koMiwiYXN5bmMiKSxfeSgzLCJhc3luYyIpLE1mKCkpLDImZSYmYmYoInJlZ2V4RmlsdGVyVmFsdWUiLEN5KDEsMyxuLm1ldHJpY3NSZWdleCQpKSgiY29tcGxldGlvbnMiLEN5KDIsNSxuLmNvbXBsZXRpb25zJCkpKCJpc1JlZ2V4RmlsdGVyVmFsaWQiLEN5KDMsNyxuLmlzTWV0cmljc0ZpbHRlclZhbGlkJCkpfSxkaXJlY3RpdmVzOltfeHRdLHBpcGVzOltWdl0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihDeHQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1tZXRyaWMtc2VhcmNoIix0ZW1wbGF0ZTonXG4gICAgPG1ldHJpYy1zZWFyY2gtY29tcG9uZW50XG4gICAgICBbcmVnZXhGaWx0ZXJWYWx1ZV09Im1ldHJpY3NSZWdleCQgfCBhc3luYyJcbiAgICAgIFtjb21wbGV0aW9uc109ImNvbXBsZXRpb25zJCB8IGFzeW5jIlxuICAgICAgW2lzUmVnZXhGaWx0ZXJWYWxpZF09ImlzTWV0cmljc0ZpbHRlclZhbGlkJCB8IGFzeW5jIlxuICAgICAgKG9uUmVnZXhGaWx0ZXJWYWx1ZUNoYW5nZSk9Im9uRmlsdGVyQ2hhbmdlKCRldmVudCkiXG4gICAgICAob25BZGRGaWx0ZXIpPSJvbkFkZEZpbHRlcigkZXZlbnQpIlxuICAgID48L21ldHJpYy1zZWFyY2gtY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSksbnVsbCk7Y29uc3Qgdnh0PWZ1bmN0aW9uKHQpe3JldHVybnsiYWN0aXZlLWJ1dHRvbiI6dH19O2NsYXNzIHh4dHtkb3dubG9hZFJlc3VsdHMoKXtmb3IoY29uc3QgdCBvZiB0aGlzLnJ1bnMpe2NvbnN0IGU9TXh0KHRoaXMuZmxhZ2dlZERhdGEsdCx0aGlzLm1ldHJpY3MpLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO24uc2V0QXR0cmlidXRlKCJocmVmIixlKSxuLnNldEF0dHJpYnV0ZSgiZG93bmxvYWQiLGByZXBvcnRfJHt0fS5jc3ZgKSxuLmNsaWNrKCl9fX14eHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHh4dCl9LHh4dC7JtWNtcD1zbyh7dHlwZTp4eHQsc2VsZWN0b3JzOltbInJlc3VsdHMtZG93bmxvYWQtY29tcG9uZW50Il1dLGlucHV0czp7bnVtRmxhZ2dlZEFubm90YXRpb25zOiJudW1GbGFnZ2VkQW5ub3RhdGlvbnMiLHJ1bnM6InJ1bnMiLGZsYWdnZWREYXRhOiJmbGFnZ2VkRGF0YSIsbWV0cmljczoibWV0cmljcyJ9LGRlY2xzOjQsdmFyczo1LGNvbnN0czpbWyJtYXQtc3Ryb2tlZC1idXR0b24iLCIiLCJ0aXRsZSIsIkV4cG9ydCBDU1YgcmVwb3J0cyBvZiBhbGwgZmxhZ2dlZCBhbm5vdGF0aW9ucy4gV2lsbCBnZW5lcmF0ZSBvbmUgQ1NWIHBlciBhY3RpdmUgcnVuLiIsMywiZGlzYWJsZWQiLCJuZ0NsYXNzIiwiY2xpY2siXSxbMSwiYnV0dG9uLWNvbnRlbnRzIl0sWyJzdmdJY29uIiwiZ2V0X2FwcF8yNHB4Il1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJidXR0b24iLDApLFJmKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5kb3dubG9hZFJlc3VsdHMoKX0pKSxDZigxLCJzcGFuIiwxKSx2ZigyLCJtYXQtaWNvbiIsMiksUHUoMyksTWYoKSxNZigpKSwyJmUmJihiZigiZGlzYWJsZWQiLDA9PT1uLm51bUZsYWdnZWRBbm5vdGF0aW9ucykoIm5nQ2xhc3MiLGl5KDMsdnh0LG4ubnVtRmxhZ2dlZEFubm90YXRpb25zPjApKSxEYygzKSxrdSgiIEZsYWdnZWQgUm93cyAoIixuLm51bUZsYWdnZWRBbm5vdGF0aW9ucywiKSAiKSl9LGRpcmVjdGl2ZXM6W05MLEN2LE1xXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0uYWN0aXZlLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwO2JvcmRlcjoxcHggc29saWQgI2ViZWJlYjtjb2xvcjojZmZmfS5idXR0b24tY29udGVudHNbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfW1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tcmlnaHQ6NnB4fSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih4eHQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoicmVzdWx0cy1kb3dubG9hZC1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL3Jlc3VsdHNfZG93bmxvYWRfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vcmVzdWx0c19kb3dubG9hZF9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sbnVsbCx7bnVtRmxhZ2dlZEFubm90YXRpb25zOlt7dHlwZTpSX31dLHJ1bnM6W3t0eXBlOlJffV0sZmxhZ2dlZERhdGE6W3t0eXBlOlJffV0sbWV0cmljczpbe3R5cGU6Ul99XX0pO2NsYXNzIE94dHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5mbGFnZ2VkQW5ub3RhdGlvbnMkPXRoaXMuc3RvcmUuc2VsZWN0KEt2dCksdGhpcy5udW1GbGFnZ2VkQW5ub3RhdGlvbnMkPXRoaXMuZmxhZ2dlZEFubm90YXRpb25zJC5waXBlKFZ0KCh0PT50Lmxlbmd0aCkpKSx0aGlzLmFjdGl2ZVJ1bnMkPXRoaXMuc3RvcmUuc2VsZWN0KF9JKS5waXBlKFZ0KCh0PT50P0FycmF5LmZyb20odC5lbnRyaWVzKCkpLmZpbHRlcigodD0+dFsxXSkpLm1hcCgodD0+dFswXSkpOltdKSkpLHRoaXMuZmxhZ2dlZERhdGEkPUt0KFt0aGlzLnN0b3JlLnNlbGVjdChZdnQpLHRoaXMuZmxhZ2dlZEFubm90YXRpb25zJF0pLnBpcGUoVnQoKChbdCxlXSk9Pntjb25zdCBuPW5ldyBTZXQoZSk7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHQpLmZpbHRlcigodD0+bi5oYXModFswXSkpKX0pKSksdGhpcy5tZXRyaWNzJD1LdChbdGhpcy5zdG9yZS5zZWxlY3QocXZ0KSx0aGlzLmFjdGl2ZVJ1bnMkLHRoaXMuc3RvcmUuc2VsZWN0KGV4dCldKS5waXBlKFZ0KCgoW3QsZSxuXSk9PntsZXQgbz1PYmplY3Qua2V5cyhuKTtmb3IoY29uc3QgbiBvZiBlKXRbbl0mJihvPW8uY29uY2F0KHRbbl0uZmlsdGVyKCh0PT5OX3QodCkpKSkpO3JldHVybiBvPVsuLi5uZXcgU2V0KG8pXSxvfSkpKX19T3h0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxPeHQpKGdmKGlTKSl9LE94dC7JtWNtcD1zbyh7dHlwZTpPeHQsc2VsZWN0b3JzOltbIm5wbWktcmVzdWx0cy1kb3dubG9hZCJdXSxkZWNsczo1LHZhcnM6MTIsY29uc3RzOltbMywibnVtRmxhZ2dlZEFubm90YXRpb25zIiwicnVucyIsImZsYWdnZWREYXRhIiwibWV0cmljcyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYodmYoMCwicmVzdWx0cy1kb3dubG9hZC1jb21wb25lbnQiLDApLF95KDEsImFzeW5jIiksX3koMiwiYXN5bmMiKSxfeSgzLCJhc3luYyIpLF95KDQsImFzeW5jIikpLDImZSYmYmYoIm51bUZsYWdnZWRBbm5vdGF0aW9ucyIsQ3koMSw0LG4ubnVtRmxhZ2dlZEFubm90YXRpb25zJCkpKCJydW5zIixDeSgyLDYsbi5hY3RpdmVSdW5zJCkpKCJmbGFnZ2VkRGF0YSIsQ3koMyw4LG4uZmxhZ2dlZERhdGEkKSkoIm1ldHJpY3MiLEN5KDQsMTAsbi5tZXRyaWNzJCkpfSxkaXJlY3RpdmVzOlt4eHRdLHBpcGVzOltWdl0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihPeHQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1yZXN1bHRzLWRvd25sb2FkIix0ZW1wbGF0ZTonXG4gICAgPHJlc3VsdHMtZG93bmxvYWQtY29tcG9uZW50XG4gICAgICBbbnVtRmxhZ2dlZEFubm90YXRpb25zXT0ibnVtRmxhZ2dlZEFubm90YXRpb25zJCB8IGFzeW5jIlxuICAgICAgW3J1bnNdPSJhY3RpdmVSdW5zJCB8IGFzeW5jIlxuICAgICAgW2ZsYWdnZWREYXRhXT0iZmxhZ2dlZERhdGEkIHwgYXN5bmMiXG4gICAgICBbbWV0cmljc109Im1ldHJpY3MkIHwgYXN5bmMiXG4gICAgPjwvcmVzdWx0cy1kb3dubG9hZC1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfV19KSxudWxsKTtjb25zdCBQeHQ9bmV3IGVyKCJNYXRDaGlwUmVtb3ZlIiksd3h0PW5ldyBlcigiTWF0Q2hpcEF2YXRhciIpLGt4dD1uZXcgZXIoIk1hdENoaXBUcmFpbGluZ0ljb24iKTtjb25zdCBTeHQ9RkYoSUYoSEYoY2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5fZWxlbWVudFJlZj10fX0pLCJwcmltYXJ5IiksLTEpO2NsYXNzIER4dHt9RHh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxEeHQpfSxEeHQuybVkaXI9aG8oe3R5cGU6RHh0LHNlbGVjdG9yczpbWyJtYXQtY2hpcC1hdmF0YXIiXSxbIiIsIm1hdENoaXBBdmF0YXIiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtY2hpcC1hdmF0YXIiXSxmZWF0dXJlczpbamgoW3twcm92aWRlOnd4dCx1c2VFeGlzdGluZzpEeHR9XSldfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihEeHQsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoibWF0LWNoaXAtYXZhdGFyLCBbbWF0Q2hpcEF2YXRhcl0iLGhvc3Q6e2NsYXNzOiJtYXQtY2hpcC1hdmF0YXIifSxwcm92aWRlcnM6W3twcm92aWRlOnd4dCx1c2VFeGlzdGluZzpEeHR9XX1dfV0sbnVsbCxudWxsKTtjbGFzcyBSeHR7fVJ4dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Unh0KX0sUnh0Lsm1ZGlyPWhvKHt0eXBlOlJ4dCxzZWxlY3RvcnM6W1sibWF0LWNoaXAtdHJhaWxpbmctaWNvbiJdLFsiIiwibWF0Q2hpcFRyYWlsaW5nSWNvbiIsIiJdXSxob3N0QXR0cnM6WzEsIm1hdC1jaGlwLXRyYWlsaW5nLWljb24iXSxmZWF0dXJlczpbamgoW3twcm92aWRlOmt4dCx1c2VFeGlzdGluZzpSeHR9XSldfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihSeHQsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoibWF0LWNoaXAtdHJhaWxpbmctaWNvbiwgW21hdENoaXBUcmFpbGluZ0ljb25dIixob3N0OntjbGFzczoibWF0LWNoaXAtdHJhaWxpbmctaWNvbiJ9LHByb3ZpZGVyczpbe3Byb3ZpZGU6a3h0LHVzZUV4aXN0aW5nOlJ4dH1dfV19XSxudWxsLG51bGwpO2NsYXNzIEV4dCBleHRlbmRzIFN4dHtjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSxyLHMpe3N1cGVyKHQpLHRoaXMuX25nWm9uZT1lLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWksdGhpcy5faGFzRm9jdXM9ITEsdGhpcy5jaGlwTGlzdFNlbGVjdGFibGU9ITAsdGhpcy5fY2hpcExpc3RNdWx0aXBsZT0hMSx0aGlzLl9jaGlwTGlzdERpc2FibGVkPSExLHRoaXMuX3NlbGVjdGVkPSExLHRoaXMuX3NlbGVjdGFibGU9ITAsdGhpcy5fZGlzYWJsZWQ9ITEsdGhpcy5fcmVtb3ZhYmxlPSEwLHRoaXMuX29uRm9jdXM9bmV3IEIsdGhpcy5fb25CbHVyPW5ldyBCLHRoaXMuc2VsZWN0aW9uQ2hhbmdlPW5ldyBTeSx0aGlzLmRlc3Ryb3llZD1uZXcgU3ksdGhpcy5yZW1vdmVkPW5ldyBTeSx0aGlzLl9hZGRIb3N0Q2xhc3NOYW1lKCksdGhpcy5fY2hpcFJpcHBsZVRhcmdldD1hLmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuX2NoaXBSaXBwbGVUYXJnZXQuY2xhc3NMaXN0LmFkZCgibWF0LWNoaXAtcmlwcGxlIiksdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2NoaXBSaXBwbGVUYXJnZXQpLHRoaXMuX2NoaXBSaXBwbGU9bmV3IGRMKHRoaXMsZSx0aGlzLl9jaGlwUmlwcGxlVGFyZ2V0LG4pLHRoaXMuX2NoaXBSaXBwbGUuc2V0dXBUcmlnZ2VyRXZlbnRzKHQpLHRoaXMucmlwcGxlQ29uZmlnPW98fHt9LHRoaXMuX2FuaW1hdGlvbnNEaXNhYmxlZD0iTm9vcEFuaW1hdGlvbnMiPT09cix0aGlzLnRhYkluZGV4PW51bGwhPXMmJnBhcnNlSW50KHMpfHwtMX1nZXQgcmlwcGxlRGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5kaXNhYmxlZHx8dGhpcy5kaXNhYmxlUmlwcGxlfHx0aGlzLl9hbmltYXRpb25zRGlzYWJsZWR8fCEhdGhpcy5yaXBwbGVDb25maWcuZGlzYWJsZWR9Z2V0IHNlbGVjdGVkKCl7cmV0dXJuIHRoaXMuX3NlbGVjdGVkfXNldCBzZWxlY3RlZCh0KXtjb25zdCBlPWVIKHQpO2UhPT10aGlzLl9zZWxlY3RlZCYmKHRoaXMuX3NlbGVjdGVkPWUsdGhpcy5fZGlzcGF0Y2hTZWxlY3Rpb25DaGFuZ2UoKSl9Z2V0IHZhbHVlKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX3ZhbHVlP3RoaXMuX3ZhbHVlOnRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudH1zZXQgdmFsdWUodCl7dGhpcy5fdmFsdWU9dH1nZXQgc2VsZWN0YWJsZSgpe3JldHVybiB0aGlzLl9zZWxlY3RhYmxlJiZ0aGlzLmNoaXBMaXN0U2VsZWN0YWJsZX1zZXQgc2VsZWN0YWJsZSh0KXt0aGlzLl9zZWxlY3RhYmxlPWVIKHQpfWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLl9jaGlwTGlzdERpc2FibGVkfHx0aGlzLl9kaXNhYmxlZH1zZXQgZGlzYWJsZWQodCl7dGhpcy5fZGlzYWJsZWQ9ZUgodCl9Z2V0IHJlbW92YWJsZSgpe3JldHVybiB0aGlzLl9yZW1vdmFibGV9c2V0IHJlbW92YWJsZSh0KXt0aGlzLl9yZW1vdmFibGU9ZUgodCl9Z2V0IGFyaWFTZWxlY3RlZCgpe3JldHVybiB0aGlzLnNlbGVjdGFibGUmJih0aGlzLl9jaGlwTGlzdE11bHRpcGxlfHx0aGlzLnNlbGVjdGVkKT90aGlzLnNlbGVjdGVkLnRvU3RyaW5nKCk6bnVsbH1fYWRkSG9zdENsYXNzTmFtZSgpe2NvbnN0IHQ9Im1hdC1iYXNpYy1jaGlwIixlPXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtlLmhhc0F0dHJpYnV0ZSh0KXx8ZS50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT10P2UuY2xhc3NMaXN0LmFkZCh0KTplLmNsYXNzTGlzdC5hZGQoIm1hdC1zdGFuZGFyZC1jaGlwIil9bmdPbkRlc3Ryb3koKXt0aGlzLmRlc3Ryb3llZC5lbWl0KHtjaGlwOnRoaXN9KSx0aGlzLl9jaGlwUmlwcGxlLl9yZW1vdmVUcmlnZ2VyRXZlbnRzKCl9c2VsZWN0KCl7dGhpcy5fc2VsZWN0ZWR8fCh0aGlzLl9zZWxlY3RlZD0hMCx0aGlzLl9kaXNwYXRjaFNlbGVjdGlvbkNoYW5nZSgpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX1kZXNlbGVjdCgpe3RoaXMuX3NlbGVjdGVkJiYodGhpcy5fc2VsZWN0ZWQ9ITEsdGhpcy5fZGlzcGF0Y2hTZWxlY3Rpb25DaGFuZ2UoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSl9c2VsZWN0VmlhSW50ZXJhY3Rpb24oKXt0aGlzLl9zZWxlY3RlZHx8KHRoaXMuX3NlbGVjdGVkPSEwLHRoaXMuX2Rpc3BhdGNoU2VsZWN0aW9uQ2hhbmdlKCEwKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSl9dG9nZ2xlU2VsZWN0ZWQodD0hMSl7cmV0dXJuIHRoaXMuX3NlbGVjdGVkPSF0aGlzLnNlbGVjdGVkLHRoaXMuX2Rpc3BhdGNoU2VsZWN0aW9uQ2hhbmdlKHQpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpLHRoaXMuc2VsZWN0ZWR9Zm9jdXMoKXt0aGlzLl9oYXNGb2N1c3x8KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpLHRoaXMuX29uRm9jdXMubmV4dCh7Y2hpcDp0aGlzfSkpLHRoaXMuX2hhc0ZvY3VzPSEwfXJlbW92ZSgpe3RoaXMucmVtb3ZhYmxlJiZ0aGlzLnJlbW92ZWQuZW1pdCh7Y2hpcDp0aGlzfSl9X2hhbmRsZUNsaWNrKHQpe3RoaXMuZGlzYWJsZWQ/dC5wcmV2ZW50RGVmYXVsdCgpOnQuc3RvcFByb3BhZ2F0aW9uKCl9X2hhbmRsZUtleWRvd24odCl7aWYoIXRoaXMuZGlzYWJsZWQpc3dpdGNoKHQua2V5Q29kZSl7Y2FzZSA0NjpjYXNlIDg6dGhpcy5yZW1vdmUoKSx0LnByZXZlbnREZWZhdWx0KCk7YnJlYWs7Y2FzZSBKSTp0aGlzLnNlbGVjdGFibGUmJnRoaXMudG9nZ2xlU2VsZWN0ZWQoITApLHQucHJldmVudERlZmF1bHQoKX19X2JsdXIoKXt0aGlzLl9uZ1pvbmUub25TdGFibGUucGlwZSh2ZSgxKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX25nWm9uZS5ydW4oKCgpPT57dGhpcy5faGFzRm9jdXM9ITEsdGhpcy5fb25CbHVyLm5leHQoe2NoaXA6dGhpc30pfSkpfSkpfV9kaXNwYXRjaFNlbGVjdGlvbkNoYW5nZSh0PSExKXt0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHtzb3VyY2U6dGhpcyxpc1VzZXJJbnB1dDp0LHNlbGVjdGVkOnRoaXMuX3NlbGVjdGVkfSl9fUV4dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RXh0KShnZihLaCksZ2YobUMpLGdmKGNIKSxnZihwTCw4KSxnZihPYiksZ2Yoc00pLGdmKGNrLDgpLEdhKCJ0YWJpbmRleCIpKX0sRXh0Lsm1ZGlyPWhvKHt0eXBlOkV4dCxzZWxlY3RvcnM6W1sibWF0LWJhc2ljLWNoaXAiXSxbIiIsIm1hdC1iYXNpYy1jaGlwIiwiIl0sWyJtYXQtY2hpcCJdLFsiIiwibWF0LWNoaXAiLCIiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24gdChlLG4sbyl7aWYoMSZlJiYoankobyx3eHQsNSksankobyxreHQsNSksankobyxQeHQsNSkpLDImZSl7bGV0IHQ7QnkodD1VeSgpKSYmKG4uYXZhdGFyPXQuZmlyc3QpLEJ5KHQ9VXkoKSkmJihuLnRyYWlsaW5nSWNvbj10LmZpcnN0KSxCeSh0PVV5KCkpJiYobi5yZW1vdmVJY29uPXQuZmlyc3QpfX0saG9zdEF0dHJzOlsicm9sZSIsIm9wdGlvbiIsMSwibWF0LWNoaXAiLCJtYXQtZm9jdXMtaW5kaWNhdG9yIl0saG9zdFZhcnM6MTQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlJmKCJjbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2hhbmRsZUNsaWNrKGUpfSkpKCJrZXlkb3duIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5faGFuZGxlS2V5ZG93bihlKX0pKSgiZm9jdXMiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uZm9jdXMoKX0pKSgiYmx1ciIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fYmx1cigpfSkpLDImZSYmKHltKCJ0YWJpbmRleCIsbi5kaXNhYmxlZD9udWxsOm4udGFiSW5kZXgpKCJkaXNhYmxlZCIsbi5kaXNhYmxlZHx8bnVsbCkoImFyaWEtZGlzYWJsZWQiLG4uZGlzYWJsZWQudG9TdHJpbmcoKSkoImFyaWEtc2VsZWN0ZWQiLG4uYXJpYVNlbGVjdGVkKSxjdSgibWF0LWNoaXAtc2VsZWN0ZWQiLG4uc2VsZWN0ZWQpKCJtYXQtY2hpcC13aXRoLWF2YXRhciIsbi5hdmF0YXIpKCJtYXQtY2hpcC13aXRoLXRyYWlsaW5nLWljb24iLG4udHJhaWxpbmdJY29ufHxuLnJlbW92ZUljb24pKCJtYXQtY2hpcC1kaXNhYmxlZCIsbi5kaXNhYmxlZCkoIl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIixuLl9hbmltYXRpb25zRGlzYWJsZWQpKX0saW5wdXRzOntjb2xvcjoiY29sb3IiLGRpc2FibGVSaXBwbGU6ImRpc2FibGVSaXBwbGUiLHRhYkluZGV4OiJ0YWJJbmRleCIsc2VsZWN0ZWQ6InNlbGVjdGVkIix2YWx1ZToidmFsdWUiLHNlbGVjdGFibGU6InNlbGVjdGFibGUiLGRpc2FibGVkOiJkaXNhYmxlZCIscmVtb3ZhYmxlOiJyZW1vdmFibGUifSxvdXRwdXRzOntzZWxlY3Rpb25DaGFuZ2U6InNlbGVjdGlvbkNoYW5nZSIsZGVzdHJveWVkOiJkZXN0cm95ZWQiLHJlbW92ZWQ6InJlbW92ZWQifSxleHBvcnRBczpbIm1hdENoaXAiXSxmZWF0dXJlczpbUXBdfSksRXh0LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6S2h9LHt0eXBlOm1DfSx7dHlwZTpjSH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltwTF19XX0se3R5cGU6T2J9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpMcixhcmdzOltzTV19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltja119XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOiRhLGFyZ3M6WyJ0YWJpbmRleCJdfV19XSxFeHQucHJvcERlY29yYXRvcnM9e2F2YXRhcjpbe3R5cGU6aXIsYXJnczpbd3h0XX1dLHRyYWlsaW5nSWNvbjpbe3R5cGU6aXIsYXJnczpba3h0XX1dLHJlbW92ZUljb246W3t0eXBlOmlyLGFyZ3M6W1B4dF19XSxzZWxlY3RlZDpbe3R5cGU6Ul99XSx2YWx1ZTpbe3R5cGU6Ul99XSxzZWxlY3RhYmxlOlt7dHlwZTpSX31dLGRpc2FibGVkOlt7dHlwZTpSX31dLHJlbW92YWJsZTpbe3R5cGU6Ul99XSxzZWxlY3Rpb25DaGFuZ2U6W3t0eXBlOkVffV0sZGVzdHJveWVkOlt7dHlwZTpFX31dLHJlbW92ZWQ6W3t0eXBlOkVffV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoRXh0LFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6Im1hdC1iYXNpYy1jaGlwLCBbbWF0LWJhc2ljLWNoaXBdLCBtYXQtY2hpcCwgW21hdC1jaGlwXSIsaW5wdXRzOlsiY29sb3IiLCJkaXNhYmxlUmlwcGxlIiwidGFiSW5kZXgiXSxleHBvcnRBczoibWF0Q2hpcCIsaG9zdDp7Y2xhc3M6Im1hdC1jaGlwIG1hdC1mb2N1cy1pbmRpY2F0b3IiLCJbYXR0ci50YWJpbmRleF0iOiJkaXNhYmxlZCA/IG51bGwgOiB0YWJJbmRleCIscm9sZToib3B0aW9uIiwiW2NsYXNzLm1hdC1jaGlwLXNlbGVjdGVkXSI6InNlbGVjdGVkIiwiW2NsYXNzLm1hdC1jaGlwLXdpdGgtYXZhdGFyXSI6ImF2YXRhciIsIltjbGFzcy5tYXQtY2hpcC13aXRoLXRyYWlsaW5nLWljb25dIjoidHJhaWxpbmdJY29uIHx8IHJlbW92ZUljb24iLCJbY2xhc3MubWF0LWNoaXAtZGlzYWJsZWRdIjoiZGlzYWJsZWQiLCJbY2xhc3MuX21hdC1hbmltYXRpb24tbm9vcGFibGVdIjoiX2FuaW1hdGlvbnNEaXNhYmxlZCIsIlthdHRyLmRpc2FibGVkXSI6ImRpc2FibGVkIHx8IG51bGwiLCJbYXR0ci5hcmlhLWRpc2FibGVkXSI6ImRpc2FibGVkLnRvU3RyaW5nKCkiLCJbYXR0ci5hcmlhLXNlbGVjdGVkXSI6ImFyaWFTZWxlY3RlZCIsIihjbGljaykiOiJfaGFuZGxlQ2xpY2soJGV2ZW50KSIsIihrZXlkb3duKSI6Il9oYW5kbGVLZXlkb3duKCRldmVudCkiLCIoZm9jdXMpIjoiZm9jdXMoKSIsIihibHVyKSI6Il9ibHVyKCkifX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOktofSx7dHlwZTptQ30se3R5cGU6Y0h9LHt0eXBlOnZvaWQgMCxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbcExdfV19LHt0eXBlOk9ifSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbc01dfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6THIsYXJnczpbY2tdfV19LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTokYSxhcmdzOlsidGFiaW5kZXgiXX1dfV19KSx7c2VsZWN0aW9uQ2hhbmdlOlt7dHlwZTpFX31dLGRlc3Ryb3llZDpbe3R5cGU6RV99XSxyZW1vdmVkOlt7dHlwZTpFX31dLHNlbGVjdGVkOlt7dHlwZTpSX31dLHZhbHVlOlt7dHlwZTpSX31dLHNlbGVjdGFibGU6W3t0eXBlOlJffV0sZGlzYWJsZWQ6W3t0eXBlOlJffV0scmVtb3ZhYmxlOlt7dHlwZTpSX31dLGF2YXRhcjpbe3R5cGU6aXIsYXJnczpbd3h0XX1dLHRyYWlsaW5nSWNvbjpbe3R5cGU6aXIsYXJnczpba3h0XX1dLHJlbW92ZUljb246W3t0eXBlOmlyLGFyZ3M6W1B4dF19XX0pO2NsYXNzIEF4dHtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX3BhcmVudENoaXA9dCwiQlVUVE9OIj09PWUubmF0aXZlRWxlbWVudC5ub2RlTmFtZSYmZS5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgidHlwZSIsImJ1dHRvbiIpfV9oYW5kbGVDbGljayh0KXtjb25zdCBlPXRoaXMuX3BhcmVudENoaXA7ZS5yZW1vdmFibGUmJiFlLmRpc2FibGVkJiZlLnJlbW92ZSgpLHQuc3RvcFByb3BhZ2F0aW9uKCl9fUF4dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8QXh0KShnZihFeHQpLGdmKEtoKSl9LEF4dC7JtWRpcj1obyh7dHlwZTpBeHQsc2VsZWN0b3JzOltbIiIsIm1hdENoaXBSZW1vdmUiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtY2hpcC1yZW1vdmUiLCJtYXQtY2hpcC10cmFpbGluZy1pY29uIl0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlJmKCJjbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2hhbmRsZUNsaWNrKGUpfSkpfSxmZWF0dXJlczpbamgoW3twcm92aWRlOlB4dCx1c2VFeGlzdGluZzpBeHR9XSldfSksQXh0LmN0b3JQYXJhbWV0ZXJzPSgpPT5be3R5cGU6RXh0fSx7dHlwZTpLaH1dLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoQXh0LFt7dHlwZTprXyxhcmdzOlt7c2VsZWN0b3I6IlttYXRDaGlwUmVtb3ZlXSIsaG9zdDp7Y2xhc3M6Im1hdC1jaGlwLXJlbW92ZSBtYXQtY2hpcC10cmFpbGluZy1pY29uIiwiKGNsaWNrKSI6Il9oYW5kbGVDbGljaygkZXZlbnQpIn0scHJvdmlkZXJzOlt7cHJvdmlkZTpQeHQsdXNlRXhpc3Rpbmc6QXh0fV19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpFeHR9LHt0eXBlOktofV19KSxudWxsKTsKLyoqCiAgICAgKiBAbGljZW5zZQogICAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgICAqCiAgICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZQogICAgICovCmNvbnN0IFR4dD1uZXcgZXIoIm1hdC1jaGlwcy1kZWZhdWx0LW9wdGlvbnMiKSxOeHQ9TEYoY2xhc3N7Y29uc3RydWN0b3IodCxlLG4sbyl7dGhpcy5fZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyPXQsdGhpcy5fcGFyZW50Rm9ybT1lLHRoaXMuX3BhcmVudEZvcm1Hcm91cD1uLHRoaXMubmdDb250cm9sPW99fSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqL2xldCB6eHQ9MDtjbGFzcyBJeHR7Y29uc3RydWN0b3IodCxlKXt0aGlzLnNvdXJjZT10LHRoaXMudmFsdWU9ZX19Y2xhc3MgSHh0IGV4dGVuZHMgTnh0e2NvbnN0cnVjdG9yKHQsZSxuLG8saSxhLHIpe3N1cGVyKGEsbyxpLHIpLHRoaXMuX2VsZW1lbnRSZWY9dCx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj1lLHRoaXMuX2Rpcj1uLHRoaXMuY29udHJvbFR5cGU9Im1hdC1jaGlwLWxpc3QiLHRoaXMuX2xhc3REZXN0cm95ZWRDaGlwSW5kZXg9bnVsbCx0aGlzLl9kZXN0cm95ZWQ9bmV3IEIsdGhpcy5fdWlkPSJtYXQtY2hpcC1saXN0LSIrenh0KyssdGhpcy5fdGFiSW5kZXg9MCx0aGlzLl91c2VyVGFiSW5kZXg9bnVsbCx0aGlzLl9vblRvdWNoZWQ9KCk9Pnt9LHRoaXMuX29uQ2hhbmdlPSgpPT57fSx0aGlzLl9tdWx0aXBsZT0hMSx0aGlzLl9jb21wYXJlV2l0aD0odCxlKT0+dD09PWUsdGhpcy5fcmVxdWlyZWQ9ITEsdGhpcy5fZGlzYWJsZWQ9ITEsdGhpcy5hcmlhT3JpZW50YXRpb249Imhvcml6b250YWwiLHRoaXMuX3NlbGVjdGFibGU9ITAsdGhpcy5jaGFuZ2U9bmV3IFN5LHRoaXMudmFsdWVDaGFuZ2U9bmV3IFN5LHRoaXMubmdDb250cm9sJiYodGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3Nvcj10aGlzKX1nZXQgc2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy5tdWx0aXBsZT90aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZDp0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZFswXX1nZXQgcm9sZSgpe3JldHVybiB0aGlzLmVtcHR5P251bGw6Imxpc3Rib3gifWdldCBtdWx0aXBsZSgpe3JldHVybiB0aGlzLl9tdWx0aXBsZX1zZXQgbXVsdGlwbGUodCl7dGhpcy5fbXVsdGlwbGU9ZUgodCksdGhpcy5fc3luY0NoaXBzU3RhdGUoKX1nZXQgY29tcGFyZVdpdGgoKXtyZXR1cm4gdGhpcy5fY29tcGFyZVdpdGh9c2V0IGNvbXBhcmVXaXRoKHQpe3RoaXMuX2NvbXBhcmVXaXRoPXQsdGhpcy5fc2VsZWN0aW9uTW9kZWwmJnRoaXMuX2luaXRpYWxpemVTZWxlY3Rpb24oKX1nZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy5fdmFsdWV9c2V0IHZhbHVlKHQpe3RoaXMud3JpdGVWYWx1ZSh0KSx0aGlzLl92YWx1ZT10fWdldCBpZCgpe3JldHVybiB0aGlzLl9jaGlwSW5wdXQ/dGhpcy5fY2hpcElucHV0LmlkOnRoaXMuX3VpZH1nZXQgcmVxdWlyZWQoKXtyZXR1cm4gdGhpcy5fcmVxdWlyZWR9c2V0IHJlcXVpcmVkKHQpe3RoaXMuX3JlcXVpcmVkPWVIKHQpLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX1nZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy5fY2hpcElucHV0P3RoaXMuX2NoaXBJbnB1dC5wbGFjZWhvbGRlcjp0aGlzLl9wbGFjZWhvbGRlcn1zZXQgcGxhY2Vob2xkZXIodCl7dGhpcy5fcGxhY2Vob2xkZXI9dCx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCl9Z2V0IGZvY3VzZWQoKXtyZXR1cm4gdGhpcy5fY2hpcElucHV0JiZ0aGlzLl9jaGlwSW5wdXQuZm9jdXNlZHx8dGhpcy5faGFzRm9jdXNlZENoaXAoKX1nZXQgZW1wdHkoKXtyZXR1cm4oIXRoaXMuX2NoaXBJbnB1dHx8dGhpcy5fY2hpcElucHV0LmVtcHR5KSYmKCF0aGlzLmNoaXBzfHwwPT09dGhpcy5jaGlwcy5sZW5ndGgpfWdldCBzaG91bGRMYWJlbEZsb2F0KCl7cmV0dXJuIXRoaXMuZW1wdHl8fHRoaXMuZm9jdXNlZH1nZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5uZ0NvbnRyb2w/ISF0aGlzLm5nQ29udHJvbC5kaXNhYmxlZDp0aGlzLl9kaXNhYmxlZH1zZXQgZGlzYWJsZWQodCl7dGhpcy5fZGlzYWJsZWQ9ZUgodCksdGhpcy5fc3luY0NoaXBzU3RhdGUoKX1nZXQgc2VsZWN0YWJsZSgpe3JldHVybiB0aGlzLl9zZWxlY3RhYmxlfXNldCBzZWxlY3RhYmxlKHQpe3RoaXMuX3NlbGVjdGFibGU9ZUgodCksdGhpcy5jaGlwcyYmdGhpcy5jaGlwcy5mb3JFYWNoKCh0PT50LmNoaXBMaXN0U2VsZWN0YWJsZT10aGlzLl9zZWxlY3RhYmxlKSl9c2V0IHRhYkluZGV4KHQpe3RoaXMuX3VzZXJUYWJJbmRleD10LHRoaXMuX3RhYkluZGV4PXR9Z2V0IGNoaXBTZWxlY3Rpb25DaGFuZ2VzKCl7cmV0dXJuIHBlKC4uLnRoaXMuY2hpcHMubWFwKCh0PT50LnNlbGVjdGlvbkNoYW5nZSkpKX1nZXQgY2hpcEZvY3VzQ2hhbmdlcygpe3JldHVybiBwZSguLi50aGlzLmNoaXBzLm1hcCgodD0+dC5fb25Gb2N1cykpKX1nZXQgY2hpcEJsdXJDaGFuZ2VzKCl7cmV0dXJuIHBlKC4uLnRoaXMuY2hpcHMubWFwKCh0PT50Ll9vbkJsdXIpKSl9Z2V0IGNoaXBSZW1vdmVDaGFuZ2VzKCl7cmV0dXJuIHBlKC4uLnRoaXMuY2hpcHMubWFwKCh0PT50LmRlc3Ryb3llZCkpKX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLl9rZXlNYW5hZ2VyPW5ldyBMSCh0aGlzLmNoaXBzKS53aXRoV3JhcCgpLndpdGhWZXJ0aWNhbE9yaWVudGF0aW9uKCkud2l0aEhvbWVBbmRFbmQoKS53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKHRoaXMuX2Rpcj90aGlzLl9kaXIudmFsdWU6Imx0ciIpLHRoaXMuX2RpciYmdGhpcy5fZGlyLmNoYW5nZS5waXBlKGplKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgodD0+dGhpcy5fa2V5TWFuYWdlci53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKHQpKSksdGhpcy5fa2V5TWFuYWdlci50YWJPdXQucGlwZShqZSh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5fYWxsb3dGb2N1c0VzY2FwZSgpfSkpLHRoaXMuY2hpcHMuY2hhbmdlcy5waXBlKEJlKG51bGwpLGplKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKCk9Pnt0aGlzLmRpc2FibGVkJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e3RoaXMuX3N5bmNDaGlwc1N0YXRlKCl9KSksdGhpcy5fcmVzZXRDaGlwcygpLHRoaXMuX2luaXRpYWxpemVTZWxlY3Rpb24oKSx0aGlzLl91cGRhdGVUYWJJbmRleCgpLHRoaXMuX3VwZGF0ZUZvY3VzRm9yRGVzdHJveWVkQ2hpcHMoKSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCl9KSl9bmdPbkluaXQoKXt0aGlzLl9zZWxlY3Rpb25Nb2RlbD1uZXcgakwodGhpcy5tdWx0aXBsZSx2b2lkIDAsITEpLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKX1uZ0RvQ2hlY2soKXt0aGlzLm5nQ29udHJvbCYmKHRoaXMudXBkYXRlRXJyb3JTdGF0ZSgpLHRoaXMubmdDb250cm9sLmRpc2FibGVkIT09dGhpcy5fZGlzYWJsZWQmJih0aGlzLmRpc2FibGVkPSEhdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQpKX1uZ09uRGVzdHJveSgpe3RoaXMuX2Rlc3Ryb3llZC5uZXh0KCksdGhpcy5fZGVzdHJveWVkLmNvbXBsZXRlKCksdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKSx0aGlzLl9kcm9wU3Vic2NyaXB0aW9ucygpfXJlZ2lzdGVySW5wdXQodCl7dGhpcy5fY2hpcElucHV0PXQsdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgiZGF0YS1tYXQtY2hpcC1pbnB1dCIsdC5pZCl9c2V0RGVzY3JpYmVkQnlJZHModCl7dGhpcy5fYXJpYURlc2NyaWJlZGJ5PXQuam9pbigiICIpfXdyaXRlVmFsdWUodCl7dGhpcy5jaGlwcyYmdGhpcy5fc2V0U2VsZWN0aW9uQnlWYWx1ZSh0LCExKX1yZWdpc3Rlck9uQ2hhbmdlKHQpe3RoaXMuX29uQ2hhbmdlPXR9cmVnaXN0ZXJPblRvdWNoZWQodCl7dGhpcy5fb25Ub3VjaGVkPXR9c2V0RGlzYWJsZWRTdGF0ZSh0KXt0aGlzLmRpc2FibGVkPXQsdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpfW9uQ29udGFpbmVyQ2xpY2sodCl7dGhpcy5fb3JpZ2luYXRlc0Zyb21DaGlwKHQpfHx0aGlzLmZvY3VzKCl9Zm9jdXModCl7dGhpcy5kaXNhYmxlZHx8dGhpcy5fY2hpcElucHV0JiZ0aGlzLl9jaGlwSW5wdXQuZm9jdXNlZHx8KHRoaXMuY2hpcHMubGVuZ3RoPjA/KHRoaXMuX2tleU1hbmFnZXIuc2V0Rmlyc3RJdGVtQWN0aXZlKCksdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpKToodGhpcy5fZm9jdXNJbnB1dCh0KSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCkpKX1fZm9jdXNJbnB1dCh0KXt0aGlzLl9jaGlwSW5wdXQmJnRoaXMuX2NoaXBJbnB1dC5mb2N1cyh0KX1fa2V5ZG93bih0KXtjb25zdCBlPXQudGFyZ2V0O2UmJmUuY2xhc3NMaXN0LmNvbnRhaW5zKCJtYXQtY2hpcCIpJiYodGhpcy5fa2V5TWFuYWdlci5vbktleWRvd24odCksdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpKX1fdXBkYXRlVGFiSW5kZXgoKXt0aGlzLl90YWJJbmRleD10aGlzLl91c2VyVGFiSW5kZXh8fCgwPT09dGhpcy5jaGlwcy5sZW5ndGg/LTE6MCl9X3VwZGF0ZUZvY3VzRm9yRGVzdHJveWVkQ2hpcHMoKXtpZihudWxsIT10aGlzLl9sYXN0RGVzdHJveWVkQ2hpcEluZGV4KWlmKHRoaXMuY2hpcHMubGVuZ3RoKXtjb25zdCB0PU1hdGgubWluKHRoaXMuX2xhc3REZXN0cm95ZWRDaGlwSW5kZXgsdGhpcy5jaGlwcy5sZW5ndGgtMSk7dGhpcy5fa2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKHQpfWVsc2UgdGhpcy5mb2N1cygpO3RoaXMuX2xhc3REZXN0cm95ZWRDaGlwSW5kZXg9bnVsbH1faXNWYWxpZEluZGV4KHQpe3JldHVybiB0Pj0wJiZ0PHRoaXMuY2hpcHMubGVuZ3RofV9zZXRTZWxlY3Rpb25CeVZhbHVlKHQsZT0hMCl7aWYodGhpcy5fY2xlYXJTZWxlY3Rpb24oKSx0aGlzLmNoaXBzLmZvckVhY2goKHQ9PnQuZGVzZWxlY3QoKSkpLEFycmF5LmlzQXJyYXkodCkpdC5mb3JFYWNoKCh0PT50aGlzLl9zZWxlY3RWYWx1ZSh0LGUpKSksdGhpcy5fc29ydFZhbHVlcygpO2Vsc2V7Y29uc3Qgbj10aGlzLl9zZWxlY3RWYWx1ZSh0LGUpO24mJmUmJnRoaXMuX2tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbShuKX19X3NlbGVjdFZhbHVlKHQsZT0hMCl7Y29uc3Qgbj10aGlzLmNoaXBzLmZpbmQoKGU9Pm51bGwhPWUudmFsdWUmJnRoaXMuX2NvbXBhcmVXaXRoKGUudmFsdWUsdCkpKTtyZXR1cm4gbiYmKGU/bi5zZWxlY3RWaWFJbnRlcmFjdGlvbigpOm4uc2VsZWN0KCksdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0KG4pKSxufV9pbml0aWFsaXplU2VsZWN0aW9uKCl7UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKCk9PnsodGhpcy5uZ0NvbnRyb2x8fHRoaXMuX3ZhbHVlKSYmKHRoaXMuX3NldFNlbGVjdGlvbkJ5VmFsdWUodGhpcy5uZ0NvbnRyb2w/dGhpcy5uZ0NvbnRyb2wudmFsdWU6dGhpcy5fdmFsdWUsITEpLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKSl9KSl9X2NsZWFyU2VsZWN0aW9uKHQpe3RoaXMuX3NlbGVjdGlvbk1vZGVsLmNsZWFyKCksdGhpcy5jaGlwcy5mb3JFYWNoKChlPT57ZSE9PXQmJmUuZGVzZWxlY3QoKX0pKSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCl9X3NvcnRWYWx1ZXMoKXt0aGlzLl9tdWx0aXBsZSYmKHRoaXMuX3NlbGVjdGlvbk1vZGVsLmNsZWFyKCksdGhpcy5jaGlwcy5mb3JFYWNoKCh0PT57dC5zZWxlY3RlZCYmdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0KHQpfSkpLHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKSl9X3Byb3BhZ2F0ZUNoYW5nZXModCl7bGV0IGU9bnVsbDtlPUFycmF5LmlzQXJyYXkodGhpcy5zZWxlY3RlZCk/dGhpcy5zZWxlY3RlZC5tYXAoKHQ9PnQudmFsdWUpKTp0aGlzLnNlbGVjdGVkP3RoaXMuc2VsZWN0ZWQudmFsdWU6dCx0aGlzLl92YWx1ZT1lLHRoaXMuY2hhbmdlLmVtaXQobmV3IEl4dCh0aGlzLGUpKSx0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoZSksdGhpcy5fb25DaGFuZ2UoZSksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9X2JsdXIoKXt0aGlzLl9oYXNGb2N1c2VkQ2hpcCgpfHx0aGlzLl9rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0oLTEpLHRoaXMuZGlzYWJsZWR8fCh0aGlzLl9jaGlwSW5wdXQ/c2V0VGltZW91dCgoKCk9Pnt0aGlzLmZvY3VzZWR8fHRoaXMuX21hcmtBc1RvdWNoZWQoKX0pKTp0aGlzLl9tYXJrQXNUb3VjaGVkKCkpfV9tYXJrQXNUb3VjaGVkKCl7dGhpcy5fb25Ub3VjaGVkKCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCksdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpfV9hbGxvd0ZvY3VzRXNjYXBlKCl7LTEhPT10aGlzLl90YWJJbmRleCYmKHRoaXMuX3RhYkluZGV4PS0xLHNldFRpbWVvdXQoKCgpPT57dGhpcy5fdGFiSW5kZXg9dGhpcy5fdXNlclRhYkluZGV4fHwwLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpfSkpKX1fcmVzZXRDaGlwcygpe3RoaXMuX2Ryb3BTdWJzY3JpcHRpb25zKCksdGhpcy5fbGlzdGVuVG9DaGlwc0ZvY3VzKCksdGhpcy5fbGlzdGVuVG9DaGlwc1NlbGVjdGlvbigpLHRoaXMuX2xpc3RlblRvQ2hpcHNSZW1vdmVkKCl9X2Ryb3BTdWJzY3JpcHRpb25zKCl7dGhpcy5fY2hpcEZvY3VzU3Vic2NyaXB0aW9uJiYodGhpcy5fY2hpcEZvY3VzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fY2hpcEZvY3VzU3Vic2NyaXB0aW9uPW51bGwpLHRoaXMuX2NoaXBCbHVyU3Vic2NyaXB0aW9uJiYodGhpcy5fY2hpcEJsdXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9jaGlwQmx1clN1YnNjcmlwdGlvbj1udWxsKSx0aGlzLl9jaGlwU2VsZWN0aW9uU3Vic2NyaXB0aW9uJiYodGhpcy5fY2hpcFNlbGVjdGlvblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX2NoaXBTZWxlY3Rpb25TdWJzY3JpcHRpb249bnVsbCksdGhpcy5fY2hpcFJlbW92ZVN1YnNjcmlwdGlvbiYmKHRoaXMuX2NoaXBSZW1vdmVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9jaGlwUmVtb3ZlU3Vic2NyaXB0aW9uPW51bGwpfV9saXN0ZW5Ub0NoaXBzU2VsZWN0aW9uKCl7dGhpcy5fY2hpcFNlbGVjdGlvblN1YnNjcmlwdGlvbj10aGlzLmNoaXBTZWxlY3Rpb25DaGFuZ2VzLnN1YnNjcmliZSgodD0+e3Quc291cmNlLnNlbGVjdGVkP3RoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdCh0LnNvdXJjZSk6dGhpcy5fc2VsZWN0aW9uTW9kZWwuZGVzZWxlY3QodC5zb3VyY2UpLHRoaXMubXVsdGlwbGV8fHRoaXMuY2hpcHMuZm9yRWFjaCgodD0+eyF0aGlzLl9zZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGVkKHQpJiZ0LnNlbGVjdGVkJiZ0LmRlc2VsZWN0KCl9KSksdC5pc1VzZXJJbnB1dCYmdGhpcy5fcHJvcGFnYXRlQ2hhbmdlcygpfSkpfV9saXN0ZW5Ub0NoaXBzRm9jdXMoKXt0aGlzLl9jaGlwRm9jdXNTdWJzY3JpcHRpb249dGhpcy5jaGlwRm9jdXNDaGFuZ2VzLnN1YnNjcmliZSgodD0+e2xldCBlPXRoaXMuY2hpcHMudG9BcnJheSgpLmluZGV4T2YodC5jaGlwKTt0aGlzLl9pc1ZhbGlkSW5kZXgoZSkmJnRoaXMuX2tleU1hbmFnZXIudXBkYXRlQWN0aXZlSXRlbShlKSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCl9KSksdGhpcy5fY2hpcEJsdXJTdWJzY3JpcHRpb249dGhpcy5jaGlwQmx1ckNoYW5nZXMuc3Vic2NyaWJlKCgoKT0+e3RoaXMuX2JsdXIoKSx0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCl9KSl9X2xpc3RlblRvQ2hpcHNSZW1vdmVkKCl7dGhpcy5fY2hpcFJlbW92ZVN1YnNjcmlwdGlvbj10aGlzLmNoaXBSZW1vdmVDaGFuZ2VzLnN1YnNjcmliZSgodD0+e2NvbnN0IGU9dC5jaGlwLG49dGhpcy5jaGlwcy50b0FycmF5KCkuaW5kZXhPZih0LmNoaXApO3RoaXMuX2lzVmFsaWRJbmRleChuKSYmZS5faGFzRm9jdXMmJih0aGlzLl9sYXN0RGVzdHJveWVkQ2hpcEluZGV4PW4pfSkpfV9vcmlnaW5hdGVzRnJvbUNoaXAodCl7bGV0IGU9dC50YXJnZXQ7Zm9yKDtlJiZlIT09dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Oyl7aWYoZS5jbGFzc0xpc3QuY29udGFpbnMoIm1hdC1jaGlwIikpcmV0dXJuITA7ZT1lLnBhcmVudEVsZW1lbnR9cmV0dXJuITF9X2hhc0ZvY3VzZWRDaGlwKCl7cmV0dXJuIHRoaXMuY2hpcHMmJnRoaXMuY2hpcHMuc29tZSgodD0+dC5faGFzRm9jdXMpKX1fc3luY0NoaXBzU3RhdGUoKXt0aGlzLmNoaXBzJiZ0aGlzLmNoaXBzLmZvckVhY2goKHQ9Pnt0Ll9jaGlwTGlzdERpc2FibGVkPXRoaXMuX2Rpc2FibGVkLHQuX2NoaXBMaXN0TXVsdGlwbGU9dGhpcy5tdWx0aXBsZX0pKX19SHh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxIeHQpKGdmKEtoKSxnZihPYiksZ2YodkYsOCksZ2YoWFcsOCksZ2YoaEcsOCksZ2YobkwpLGdmKGxXLDEwKSl9LEh4dC7JtWNtcD1zbyh7dHlwZTpIeHQsc2VsZWN0b3JzOltbIm1hdC1jaGlwLWxpc3QiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24gdChlLG4sbyl7aWYoMSZlJiZqeShvLEV4dCw1KSwyJmUpe2xldCB0O0J5KHQ9VXkoKSkmJihuLmNoaXBzPXQpfX0saG9zdEF0dHJzOlsxLCJtYXQtY2hpcC1saXN0Il0saG9zdFZhcnM6MTUsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlJmKCJmb2N1cyIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5mb2N1cygpfSkpKCJibHVyIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9ibHVyKCl9KSkoImtleWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9rZXlkb3duKGUpfSkpLDImZSYmKGNnKCJpZCIsbi5fdWlkKSx5bSgidGFiaW5kZXgiLG4uZGlzYWJsZWQ/bnVsbDpuLl90YWJJbmRleCkoImFyaWEtZGVzY3JpYmVkYnkiLG4uX2FyaWFEZXNjcmliZWRieXx8bnVsbCkoImFyaWEtcmVxdWlyZWQiLG4ucm9sZT9uLnJlcXVpcmVkOm51bGwpKCJhcmlhLWRpc2FibGVkIixuLmRpc2FibGVkLnRvU3RyaW5nKCkpKCJhcmlhLWludmFsaWQiLG4uZXJyb3JTdGF0ZSkoImFyaWEtbXVsdGlzZWxlY3RhYmxlIixuLm11bHRpcGxlKSgicm9sZSIsbi5yb2xlKSgiYXJpYS1vcmllbnRhdGlvbiIsbi5hcmlhT3JpZW50YXRpb24pLGN1KCJtYXQtY2hpcC1saXN0LWRpc2FibGVkIixuLmRpc2FibGVkKSgibWF0LWNoaXAtbGlzdC1pbnZhbGlkIixuLmVycm9yU3RhdGUpKCJtYXQtY2hpcC1saXN0LXJlcXVpcmVkIixuLnJlcXVpcmVkKSl9LGlucHV0czp7YXJpYU9yaWVudGF0aW9uOlsiYXJpYS1vcmllbnRhdGlvbiIsImFyaWFPcmllbnRhdGlvbiJdLG11bHRpcGxlOiJtdWx0aXBsZSIsY29tcGFyZVdpdGg6ImNvbXBhcmVXaXRoIix2YWx1ZToidmFsdWUiLHJlcXVpcmVkOiJyZXF1aXJlZCIscGxhY2Vob2xkZXI6InBsYWNlaG9sZGVyIixkaXNhYmxlZDoiZGlzYWJsZWQiLHNlbGVjdGFibGU6InNlbGVjdGFibGUiLHRhYkluZGV4OiJ0YWJJbmRleCIsZXJyb3JTdGF0ZU1hdGNoZXI6ImVycm9yU3RhdGVNYXRjaGVyIn0sb3V0cHV0czp7Y2hhbmdlOiJjaGFuZ2UiLHZhbHVlQ2hhbmdlOiJ2YWx1ZUNoYW5nZSJ9LGV4cG9ydEFzOlsibWF0Q2hpcExpc3QiXSxmZWF0dXJlczpbamgoW3twcm92aWRlOmlVLHVzZUV4aXN0aW5nOkh4dH1dKSxRcF0sbmdDb250ZW50U2VsZWN0b3JzOlsiKiJdLGRlY2xzOjIsdmFyczowLGNvbnN0czpbWzEsIm1hdC1jaGlwLWxpc3Qtd3JhcHBlciJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoSGYoKSxDZigwLCJkaXYiLDApLEZmKDEpLE1mKCkpfSxzdHlsZXM6WycubWF0LWNoaXB7cG9zaXRpb246cmVsYXRpdmU7Ym94LXNpemluZzpib3JkZXItYm94Oy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKTtib3JkZXI6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0ubWF0LXN0YW5kYXJkLWNoaXB7dHJhbnNpdGlvbjpib3gtc2hhZG93IDI4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7ZGlzcGxheTppbmxpbmUtZmxleDtwYWRkaW5nOjdweCAxMnB4O2JvcmRlci1yYWRpdXM6MTZweDthbGlnbi1pdGVtczpjZW50ZXI7Y3Vyc29yOmRlZmF1bHQ7bWluLWhlaWdodDozMnB4O2hlaWdodDoxcHh9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm1hdC1zdGFuZGFyZC1jaGlwe3RyYW5zaXRpb246bm9uZTthbmltYXRpb246bm9uZX0ubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbnt3aWR0aDoxOHB4O2hlaWdodDoxOHB4fS5tYXQtc3RhbmRhcmQtY2hpcDo6YWZ0ZXJ7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czppbmhlcml0O29wYWNpdHk6MDtjb250ZW50OiIiO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5IDIwMG1zIGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKX0ubWF0LXN0YW5kYXJkLWNoaXA6aG92ZXI6OmFmdGVye29wYWNpdHk6LjEyfS5tYXQtc3RhbmRhcmQtY2hpcDpmb2N1c3tvdXRsaW5lOm5vbmV9Lm1hdC1zdGFuZGFyZC1jaGlwOmZvY3VzOjphZnRlcntvcGFjaXR5Oi4xNn0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc3RhbmRhcmQtY2hpcHtvdXRsaW5lOnNvbGlkIDFweH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc3RhbmRhcmQtY2hpcDpmb2N1c3tvdXRsaW5lOmRvdHRlZCAycHh9Lm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLWRpc2FibGVkOjphZnRlcntvcGFjaXR5OjB9Lm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLWRpc2FibGVkIC5tYXQtY2hpcC1yZW1vdmUsLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLWRpc2FibGVkIC5tYXQtY2hpcC10cmFpbGluZy1pY29ue2N1cnNvcjpkZWZhdWx0fS5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC13aXRoLXRyYWlsaW5nLWljb24ubWF0LWNoaXAtd2l0aC1hdmF0YXIsLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXdpdGgtYXZhdGFye3BhZGRpbmctdG9wOjA7cGFkZGluZy1ib3R0b206MH0ubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtd2l0aC10cmFpbGluZy1pY29uLm1hdC1jaGlwLXdpdGgtYXZhdGFye3BhZGRpbmctcmlnaHQ6OHB4O3BhZGRpbmctbGVmdDowfVtkaXI9cnRsXSAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtd2l0aC10cmFpbGluZy1pY29uLm1hdC1jaGlwLXdpdGgtYXZhdGFye3BhZGRpbmctbGVmdDo4cHg7cGFkZGluZy1yaWdodDowfS5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC13aXRoLXRyYWlsaW5nLWljb257cGFkZGluZy10b3A6N3B4O3BhZGRpbmctYm90dG9tOjdweDtwYWRkaW5nLXJpZ2h0OjhweDtwYWRkaW5nLWxlZnQ6MTJweH1bZGlyPXJ0bF0gLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbntwYWRkaW5nLWxlZnQ6OHB4O3BhZGRpbmctcmlnaHQ6MTJweH0ubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtd2l0aC1hdmF0YXJ7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDoxMnB4fVtkaXI9cnRsXSAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtd2l0aC1hdmF0YXJ7cGFkZGluZy1yaWdodDowO3BhZGRpbmctbGVmdDoxMnB4fS5tYXQtc3RhbmRhcmQtY2hpcCAubWF0LWNoaXAtYXZhdGFye3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7bWFyZ2luLXJpZ2h0OjhweDttYXJnaW4tbGVmdDo0cHh9W2Rpcj1ydGxdIC5tYXQtc3RhbmRhcmQtY2hpcCAubWF0LWNoaXAtYXZhdGFye21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6NHB4fS5tYXQtc3RhbmRhcmQtY2hpcCAubWF0LWNoaXAtcmVtb3ZlLC5tYXQtc3RhbmRhcmQtY2hpcCAubWF0LWNoaXAtdHJhaWxpbmctaWNvbnt3aWR0aDoxOHB4O2hlaWdodDoxOHB4O2N1cnNvcjpwb2ludGVyfS5tYXQtc3RhbmRhcmQtY2hpcCAubWF0LWNoaXAtcmVtb3ZlLC5tYXQtc3RhbmRhcmQtY2hpcCAubWF0LWNoaXAtdHJhaWxpbmctaWNvbnttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0OjB9W2Rpcj1ydGxdIC5tYXQtc3RhbmRhcmQtY2hpcCAubWF0LWNoaXAtcmVtb3ZlLFtkaXI9cnRsXSAubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb257bWFyZ2luLXJpZ2h0OjhweDttYXJnaW4tbGVmdDowfS5tYXQtY2hpcC1yaXBwbGV7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6bm9uZTtib3JkZXItcmFkaXVzOmluaGVyaXQ7b3ZlcmZsb3c6aGlkZGVufS5tYXQtY2hpcC1saXN0LXdyYXBwZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LXdyYXA6d3JhcDthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luOi00cHh9Lm1hdC1jaGlwLWxpc3Qtd3JhcHBlciBpbnB1dC5tYXQtaW5wdXQtZWxlbWVudCwubWF0LWNoaXAtbGlzdC13cmFwcGVyIC5tYXQtc3RhbmRhcmQtY2hpcHttYXJnaW46NHB4fS5tYXQtY2hpcC1saXN0LXN0YWNrZWQgLm1hdC1jaGlwLWxpc3Qtd3JhcHBlcntmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1zdGFydH0ubWF0LWNoaXAtbGlzdC1zdGFja2VkIC5tYXQtY2hpcC1saXN0LXdyYXBwZXIgLm1hdC1zdGFuZGFyZC1jaGlwe3dpZHRoOjEwMCV9Lm1hdC1jaGlwLWF2YXRhcntib3JkZXItcmFkaXVzOjUwJTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7b3ZlcmZsb3c6aGlkZGVuO29iamVjdC1maXQ6Y292ZXJ9aW5wdXQubWF0LWNoaXAtaW5wdXR7d2lkdGg6MTUwcHg7bWFyZ2luOjRweDtmbGV4OjEgMCAxNTBweH1cbiddLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLEh4dC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOktofSx7dHlwZTpPYn0se3R5cGU6dkYsZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX0se3R5cGU6WFcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX0se3R5cGU6aEcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9XX0se3R5cGU6bkx9LHt0eXBlOmxXLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpWcn1dfV0sSHh0LnByb3BEZWNvcmF0b3JzPXtlcnJvclN0YXRlTWF0Y2hlcjpbe3R5cGU6Ul99XSxtdWx0aXBsZTpbe3R5cGU6Ul99XSxjb21wYXJlV2l0aDpbe3R5cGU6Ul99XSx2YWx1ZTpbe3R5cGU6Ul99XSxyZXF1aXJlZDpbe3R5cGU6Ul99XSxwbGFjZWhvbGRlcjpbe3R5cGU6Ul99XSxkaXNhYmxlZDpbe3R5cGU6Ul99XSxhcmlhT3JpZW50YXRpb246W3t0eXBlOlJfLGFyZ3M6WyJhcmlhLW9yaWVudGF0aW9uIl19XSxzZWxlY3RhYmxlOlt7dHlwZTpSX31dLHRhYkluZGV4Olt7dHlwZTpSX31dLGNoYW5nZTpbe3R5cGU6RV99XSx2YWx1ZUNoYW5nZTpbe3R5cGU6RV99XSxjaGlwczpbe3R5cGU6b3IsYXJnczpbRXh0LHtkZXNjZW5kYW50czohMH1dfV19LCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoSHh0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im1hdC1jaGlwLWxpc3QiLHRlbXBsYXRlOic8ZGl2IGNsYXNzPSJtYXQtY2hpcC1saXN0LXdyYXBwZXIiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2Rpdj4nLGV4cG9ydEFzOiJtYXRDaGlwTGlzdCIsaG9zdDp7IlthdHRyLnRhYmluZGV4XSI6ImRpc2FibGVkID8gbnVsbCA6IF90YWJJbmRleCIsIlthdHRyLmFyaWEtZGVzY3JpYmVkYnldIjoiX2FyaWFEZXNjcmliZWRieSB8fCBudWxsIiwiW2F0dHIuYXJpYS1yZXF1aXJlZF0iOiJyb2xlID8gcmVxdWlyZWQgOiBudWxsIiwiW2F0dHIuYXJpYS1kaXNhYmxlZF0iOiJkaXNhYmxlZC50b1N0cmluZygpIiwiW2F0dHIuYXJpYS1pbnZhbGlkXSI6ImVycm9yU3RhdGUiLCJbYXR0ci5hcmlhLW11bHRpc2VsZWN0YWJsZV0iOiJtdWx0aXBsZSIsIlthdHRyLnJvbGVdIjoicm9sZSIsIltjbGFzcy5tYXQtY2hpcC1saXN0LWRpc2FibGVkXSI6ImRpc2FibGVkIiwiW2NsYXNzLm1hdC1jaGlwLWxpc3QtaW52YWxpZF0iOiJlcnJvclN0YXRlIiwiW2NsYXNzLm1hdC1jaGlwLWxpc3QtcmVxdWlyZWRdIjoicmVxdWlyZWQiLCJbYXR0ci5hcmlhLW9yaWVudGF0aW9uXSI6ImFyaWFPcmllbnRhdGlvbiIsY2xhc3M6Im1hdC1jaGlwLWxpc3QiLCIoZm9jdXMpIjoiZm9jdXMoKSIsIihibHVyKSI6Il9ibHVyKCkiLCIoa2V5ZG93bikiOiJfa2V5ZG93bigkZXZlbnQpIiwiW2lkXSI6Il91aWQifSxwcm92aWRlcnM6W3twcm92aWRlOmlVLHVzZUV4aXN0aW5nOkh4dH1dLGVuY2Fwc3VsYXRpb246V24uTm9uZSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNoLHN0eWxlczpbJy5tYXQtY2hpcHtwb3NpdGlvbjpyZWxhdGl2ZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApO2JvcmRlcjpub25lOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5tYXQtc3RhbmRhcmQtY2hpcHt0cmFuc2l0aW9uOmJveC1zaGFkb3cgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtkaXNwbGF5OmlubGluZS1mbGV4O3BhZGRpbmc6N3B4IDEycHg7Ym9yZGVyLXJhZGl1czoxNnB4O2FsaWduLWl0ZW1zOmNlbnRlcjtjdXJzb3I6ZGVmYXVsdDttaW4taGVpZ2h0OjMycHg7aGVpZ2h0OjFweH0uX21hdC1hbmltYXRpb24tbm9vcGFibGUubWF0LXN0YW5kYXJkLWNoaXB7dHJhbnNpdGlvbjpub25lO2FuaW1hdGlvbjpub25lfS5tYXQtc3RhbmRhcmQtY2hpcCAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29ue3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHh9Lm1hdC1zdGFuZGFyZC1jaGlwOjphZnRlcnt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOmluaGVyaXQ7b3BhY2l0eTowO2NvbnRlbnQ6IiI7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHkgMjAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpfS5tYXQtc3RhbmRhcmQtY2hpcDpob3Zlcjo6YWZ0ZXJ7b3BhY2l0eTouMTJ9Lm1hdC1zdGFuZGFyZC1jaGlwOmZvY3Vze291dGxpbmU6bm9uZX0ubWF0LXN0YW5kYXJkLWNoaXA6Zm9jdXM6OmFmdGVye29wYWNpdHk6LjE2fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zdGFuZGFyZC1jaGlwe291dGxpbmU6c29saWQgMXB4fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zdGFuZGFyZC1jaGlwOmZvY3Vze291dGxpbmU6ZG90dGVkIDJweH0ubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtZGlzYWJsZWQ6OmFmdGVye29wYWNpdHk6MH0ubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtZGlzYWJsZWQgLm1hdC1jaGlwLXJlbW92ZSwubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtZGlzYWJsZWQgLm1hdC1jaGlwLXRyYWlsaW5nLWljb257Y3Vyc29yOmRlZmF1bHR9Lm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbi5tYXQtY2hpcC13aXRoLWF2YXRhciwubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtd2l0aC1hdmF0YXJ7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowfS5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC13aXRoLXRyYWlsaW5nLWljb24ubWF0LWNoaXAtd2l0aC1hdmF0YXJ7cGFkZGluZy1yaWdodDo4cHg7cGFkZGluZy1sZWZ0OjB9W2Rpcj1ydGxdIC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC13aXRoLXRyYWlsaW5nLWljb24ubWF0LWNoaXAtd2l0aC1hdmF0YXJ7cGFkZGluZy1sZWZ0OjhweDtwYWRkaW5nLXJpZ2h0OjB9Lm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXdpdGgtdHJhaWxpbmctaWNvbntwYWRkaW5nLXRvcDo3cHg7cGFkZGluZy1ib3R0b206N3B4O3BhZGRpbmctcmlnaHQ6OHB4O3BhZGRpbmctbGVmdDoxMnB4fVtkaXI9cnRsXSAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtd2l0aC10cmFpbGluZy1pY29ue3BhZGRpbmctbGVmdDo4cHg7cGFkZGluZy1yaWdodDoxMnB4fS5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC13aXRoLWF2YXRhcntwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjEycHh9W2Rpcj1ydGxdIC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC13aXRoLWF2YXRhcntwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjEycHh9Lm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1hdmF0YXJ7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDttYXJnaW4tcmlnaHQ6OHB4O21hcmdpbi1sZWZ0OjRweH1bZGlyPXJ0bF0gLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1hdmF0YXJ7bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDo0cHh9Lm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUsLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC10cmFpbGluZy1pY29ue3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7Y3Vyc29yOnBvaW50ZXJ9Lm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUsLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC10cmFpbGluZy1pY29ue21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6MH1bZGlyPXJ0bF0gLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUsW2Rpcj1ydGxdIC5tYXQtc3RhbmRhcmQtY2hpcCAubWF0LWNoaXAtdHJhaWxpbmctaWNvbnttYXJnaW4tcmlnaHQ6OHB4O21hcmdpbi1sZWZ0OjB9Lm1hdC1jaGlwLXJpcHBsZXt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtvdmVyZmxvdzpoaWRkZW59Lm1hdC1jaGlwLWxpc3Qtd3JhcHBlcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtd3JhcDp3cmFwO2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW46LTRweH0ubWF0LWNoaXAtbGlzdC13cmFwcGVyIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50LC5tYXQtY2hpcC1saXN0LXdyYXBwZXIgLm1hdC1zdGFuZGFyZC1jaGlwe21hcmdpbjo0cHh9Lm1hdC1jaGlwLWxpc3Qtc3RhY2tlZCAubWF0LWNoaXAtbGlzdC13cmFwcGVye2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5tYXQtY2hpcC1saXN0LXN0YWNrZWQgLm1hdC1jaGlwLWxpc3Qtd3JhcHBlciAubWF0LXN0YW5kYXJkLWNoaXB7d2lkdGg6MTAwJX0ubWF0LWNoaXAtYXZhdGFye2JvcmRlci1yYWRpdXM6NTAlO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtvdmVyZmxvdzpoaWRkZW47b2JqZWN0LWZpdDpjb3Zlcn1pbnB1dC5tYXQtY2hpcC1pbnB1dHt3aWR0aDoxNTBweDttYXJnaW46NHB4O2ZsZXg6MSAwIDE1MHB4fVxuJ119XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpLaH0se3R5cGU6T2J9LHt0eXBlOnZGLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOlhXLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOmhHLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19LHt0eXBlOm5MfSx7dHlwZTpsVyxkZWNvcmF0b3JzOlt7dHlwZTpCcn0se3R5cGU6VnJ9XX1dfSkse2FyaWFPcmllbnRhdGlvbjpbe3R5cGU6Ul8sYXJnczpbImFyaWEtb3JpZW50YXRpb24iXX1dLGNoYW5nZTpbe3R5cGU6RV99XSx2YWx1ZUNoYW5nZTpbe3R5cGU6RV99XSxtdWx0aXBsZTpbe3R5cGU6Ul99XSxjb21wYXJlV2l0aDpbe3R5cGU6Ul99XSx2YWx1ZTpbe3R5cGU6Ul99XSxyZXF1aXJlZDpbe3R5cGU6Ul99XSxwbGFjZWhvbGRlcjpbe3R5cGU6Ul99XSxkaXNhYmxlZDpbe3R5cGU6Ul99XSxzZWxlY3RhYmxlOlt7dHlwZTpSX31dLHRhYkluZGV4Olt7dHlwZTpSX31dLGVycm9yU3RhdGVNYXRjaGVyOlt7dHlwZTpSX31dLGNoaXBzOlt7dHlwZTpvcixhcmdzOltFeHQse2Rlc2NlbmRhbnRzOiEwfV19XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KbGV0IEZ4dD0wO2NsYXNzIEx4dHtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX2VsZW1lbnRSZWY9dCx0aGlzLl9kZWZhdWx0T3B0aW9ucz1lLHRoaXMuZm9jdXNlZD0hMSx0aGlzLl9hZGRPbkJsdXI9ITEsdGhpcy5zZXBhcmF0b3JLZXlDb2Rlcz10aGlzLl9kZWZhdWx0T3B0aW9ucy5zZXBhcmF0b3JLZXlDb2Rlcyx0aGlzLmNoaXBFbmQ9bmV3IFN5LHRoaXMucGxhY2Vob2xkZXI9IiIsdGhpcy5pZD0ibWF0LWNoaXAtbGlzdC1pbnB1dC0iK0Z4dCsrLHRoaXMuX2Rpc2FibGVkPSExLHRoaXMuaW5wdXRFbGVtZW50PXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudH1zZXQgY2hpcExpc3QodCl7dCYmKHRoaXMuX2NoaXBMaXN0PXQsdGhpcy5fY2hpcExpc3QucmVnaXN0ZXJJbnB1dCh0aGlzKSl9Z2V0IGFkZE9uQmx1cigpe3JldHVybiB0aGlzLl9hZGRPbkJsdXJ9c2V0IGFkZE9uQmx1cih0KXt0aGlzLl9hZGRPbkJsdXI9ZUgodCl9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVkfHx0aGlzLl9jaGlwTGlzdCYmdGhpcy5fY2hpcExpc3QuZGlzYWJsZWR9c2V0IGRpc2FibGVkKHQpe3RoaXMuX2Rpc2FibGVkPWVIKHQpfWdldCBlbXB0eSgpe3JldHVybiF0aGlzLmlucHV0RWxlbWVudC52YWx1ZX1uZ09uQ2hhbmdlcygpe3RoaXMuX2NoaXBMaXN0LnN0YXRlQ2hhbmdlcy5uZXh0KCl9bmdPbkRlc3Ryb3koKXt0aGlzLmNoaXBFbmQuY29tcGxldGUoKX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLl9mb2N1c0xhc3RDaGlwT25CYWNrc3BhY2U9dGhpcy5lbXB0eX1fa2V5ZG93bih0KXtpZih0KXtpZig5IT09dC5rZXlDb2RlfHx0SCh0LCJzaGlmdEtleSIpfHx0aGlzLl9jaGlwTGlzdC5fYWxsb3dGb2N1c0VzY2FwZSgpLDg9PT10LmtleUNvZGUmJnRoaXMuX2ZvY3VzTGFzdENoaXBPbkJhY2tzcGFjZSlyZXR1cm4gdGhpcy5fY2hpcExpc3QuX2tleU1hbmFnZXIuc2V0TGFzdEl0ZW1BY3RpdmUoKSx2b2lkIHQucHJldmVudERlZmF1bHQoKTt0aGlzLl9mb2N1c0xhc3RDaGlwT25CYWNrc3BhY2U9ITF9dGhpcy5fZW1pdENoaXBFbmQodCl9X2tleXVwKHQpeyF0aGlzLl9mb2N1c0xhc3RDaGlwT25CYWNrc3BhY2UmJjg9PT10LmtleUNvZGUmJnRoaXMuZW1wdHkmJih0aGlzLl9mb2N1c0xhc3RDaGlwT25CYWNrc3BhY2U9ITAsdC5wcmV2ZW50RGVmYXVsdCgpKX1fYmx1cigpe3RoaXMuYWRkT25CbHVyJiZ0aGlzLl9lbWl0Q2hpcEVuZCgpLHRoaXMuZm9jdXNlZD0hMSx0aGlzLl9jaGlwTGlzdC5mb2N1c2VkfHx0aGlzLl9jaGlwTGlzdC5fYmx1cigpLHRoaXMuX2NoaXBMaXN0LnN0YXRlQ2hhbmdlcy5uZXh0KCl9X2ZvY3VzKCl7dGhpcy5mb2N1c2VkPSEwLHRoaXMuX2ZvY3VzTGFzdENoaXBPbkJhY2tzcGFjZT10aGlzLmVtcHR5LHRoaXMuX2NoaXBMaXN0LnN0YXRlQ2hhbmdlcy5uZXh0KCl9X2VtaXRDaGlwRW5kKHQpeyF0aGlzLmlucHV0RWxlbWVudC52YWx1ZSYmdCYmdGhpcy5fY2hpcExpc3QuX2tleWRvd24odCksdCYmIXRoaXMuX2lzU2VwYXJhdG9yS2V5KHQpfHwodGhpcy5jaGlwRW5kLmVtaXQoe2lucHV0OnRoaXMuaW5wdXRFbGVtZW50LHZhbHVlOnRoaXMuaW5wdXRFbGVtZW50LnZhbHVlLGNoaXBJbnB1dDp0aGlzfSksbnVsbD09dHx8dC5wcmV2ZW50RGVmYXVsdCgpKX1fb25JbnB1dCgpe3RoaXMuX2NoaXBMaXN0LnN0YXRlQ2hhbmdlcy5uZXh0KCl9Zm9jdXModCl7dGhpcy5pbnB1dEVsZW1lbnQuZm9jdXModCl9Y2xlYXIoKXt0aGlzLmlucHV0RWxlbWVudC52YWx1ZT0iIix0aGlzLl9mb2N1c0xhc3RDaGlwT25CYWNrc3BhY2U9ITB9X2lzU2VwYXJhdG9yS2V5KHQpe3JldHVybiF0SCh0KSYmbmV3IFNldCh0aGlzLnNlcGFyYXRvcktleUNvZGVzKS5oYXModC5rZXlDb2RlKX19THh0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxMeHQpKGdmKEtoKSxnZihUeHQpKX0sTHh0Lsm1ZGlyPWhvKHt0eXBlOkx4dCxzZWxlY3RvcnM6W1siaW5wdXQiLCJtYXRDaGlwSW5wdXRGb3IiLCIiXV0saG9zdEF0dHJzOlsxLCJtYXQtY2hpcC1pbnB1dCIsIm1hdC1pbnB1dC1lbGVtZW50Il0saG9zdFZhcnM6NSxob3N0QmluZGluZ3M6ZnVuY3Rpb24gdChlLG4pezEmZSYmUmYoImtleWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9rZXlkb3duKGUpfSkpKCJrZXl1cCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX2tleXVwKGUpfSkpKCJibHVyIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9ibHVyKCl9KSkoImZvY3VzIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9mb2N1cygpfSkpKCJpbnB1dCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5fb25JbnB1dCgpfSkpLDImZSYmKGNnKCJpZCIsbi5pZCkseW0oImRpc2FibGVkIixuLmRpc2FibGVkfHxudWxsKSgicGxhY2Vob2xkZXIiLG4ucGxhY2Vob2xkZXJ8fG51bGwpKCJhcmlhLWludmFsaWQiLG4uX2NoaXBMaXN0JiZuLl9jaGlwTGlzdC5uZ0NvbnRyb2w/bi5fY2hpcExpc3QubmdDb250cm9sLmludmFsaWQ6bnVsbCkoImFyaWEtcmVxdWlyZWQiLG4uX2NoaXBMaXN0JiZuLl9jaGlwTGlzdC5yZXF1aXJlZHx8bnVsbCkpfSxpbnB1dHM6e3NlcGFyYXRvcktleUNvZGVzOlsibWF0Q2hpcElucHV0U2VwYXJhdG9yS2V5Q29kZXMiLCJzZXBhcmF0b3JLZXlDb2RlcyJdLHBsYWNlaG9sZGVyOiJwbGFjZWhvbGRlciIsaWQ6ImlkIixjaGlwTGlzdDpbIm1hdENoaXBJbnB1dEZvciIsImNoaXBMaXN0Il0sYWRkT25CbHVyOlsibWF0Q2hpcElucHV0QWRkT25CbHVyIiwiYWRkT25CbHVyIl0sZGlzYWJsZWQ6ImRpc2FibGVkIn0sb3V0cHV0czp7Y2hpcEVuZDoibWF0Q2hpcElucHV0VG9rZW5FbmQifSxleHBvcnRBczpbIm1hdENoaXBJbnB1dCIsIm1hdENoaXBJbnB1dEZvciJdLGZlYXR1cmVzOltxb119KSxMeHQuY3RvclBhcmFtZXRlcnM9KCk9Plt7dHlwZTpLaH0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W1R4dF19XX1dLEx4dC5wcm9wRGVjb3JhdG9ycz17Y2hpcExpc3Q6W3t0eXBlOlJfLGFyZ3M6WyJtYXRDaGlwSW5wdXRGb3IiXX1dLGFkZE9uQmx1cjpbe3R5cGU6Ul8sYXJnczpbIm1hdENoaXBJbnB1dEFkZE9uQmx1ciJdfV0sc2VwYXJhdG9yS2V5Q29kZXM6W3t0eXBlOlJfLGFyZ3M6WyJtYXRDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2RlcyJdfV0sY2hpcEVuZDpbe3R5cGU6RV8sYXJnczpbIm1hdENoaXBJbnB1dFRva2VuRW5kIl19XSxwbGFjZWhvbGRlcjpbe3R5cGU6Ul99XSxpZDpbe3R5cGU6Ul99XSxkaXNhYmxlZDpbe3R5cGU6Ul99XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihMeHQsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoiaW5wdXRbbWF0Q2hpcElucHV0Rm9yXSIsZXhwb3J0QXM6Im1hdENoaXBJbnB1dCwgbWF0Q2hpcElucHV0Rm9yIixob3N0OntjbGFzczoibWF0LWNoaXAtaW5wdXQgbWF0LWlucHV0LWVsZW1lbnQiLCIoa2V5ZG93bikiOiJfa2V5ZG93bigkZXZlbnQpIiwiKGtleXVwKSI6Il9rZXl1cCgkZXZlbnQpIiwiKGJsdXIpIjoiX2JsdXIoKSIsIihmb2N1cykiOiJfZm9jdXMoKSIsIihpbnB1dCkiOiJfb25JbnB1dCgpIiwiW2lkXSI6ImlkIiwiW2F0dHIuZGlzYWJsZWRdIjoiZGlzYWJsZWQgfHwgbnVsbCIsIlthdHRyLnBsYWNlaG9sZGVyXSI6InBsYWNlaG9sZGVyIHx8IG51bGwiLCJbYXR0ci5hcmlhLWludmFsaWRdIjoiX2NoaXBMaXN0ICYmIF9jaGlwTGlzdC5uZ0NvbnRyb2wgPyBfY2hpcExpc3QubmdDb250cm9sLmludmFsaWQgOiBudWxsIiwiW2F0dHIuYXJpYS1yZXF1aXJlZF0iOiJfY2hpcExpc3QgJiYgX2NoaXBMaXN0LnJlcXVpcmVkIHx8IG51bGwifX1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOktofSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbVHh0XX1dfV19KSx7c2VwYXJhdG9yS2V5Q29kZXM6W3t0eXBlOlJfLGFyZ3M6WyJtYXRDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2RlcyJdfV0sY2hpcEVuZDpbe3R5cGU6RV8sYXJnczpbIm1hdENoaXBJbnB1dFRva2VuRW5kIl19XSxwbGFjZWhvbGRlcjpbe3R5cGU6Ul99XSxpZDpbe3R5cGU6Ul99XSxjaGlwTGlzdDpbe3R5cGU6Ul8sYXJnczpbIm1hdENoaXBJbnB1dEZvciJdfV0sYWRkT25CbHVyOlt7dHlwZTpSXyxhcmdzOlsibWF0Q2hpcElucHV0QWRkT25CbHVyIl19XSxkaXNhYmxlZDpbe3R5cGU6Ul99XX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KY29uc3QgQnh0PVtIeHQsRXh0LEx4dCxBeHQsRHh0LFJ4dF0sVnh0PXtzZXBhcmF0b3JLZXlDb2RlczpbWEldfTtjbGFzcyBqeHR7fWp4dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8anh0KX0sanh0Lsm1bW9kPWZvKHt0eXBlOmp4dH0pLGp4dC7JtWluaj1Ebih7cHJvdmlkZXJzOltuTCx7cHJvdmlkZTpUeHQsdXNlVmFsdWU6Vnh0fV0saW1wb3J0czpbW05GXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGp4dCxbe3R5cGU6TF8sYXJnczpbe2ltcG9ydHM6W05GXSxleHBvcnRzOkJ4dCxkZWNsYXJhdGlvbnM6Qnh0LHByb3ZpZGVyczpbbkwse3Byb3ZpZGU6VHh0LHVzZVZhbHVlOlZ4dH1dfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oanh0LHtkZWNsYXJhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bSHh0LEV4dCxMeHQsQXh0LER4dCxSeHRdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW05GXX0sZXhwb3J0czpmdW5jdGlvbigpe3JldHVybltIeHQsRXh0LEx4dCxBeHQsRHh0LFJ4dF19fSk7Y29uc3QgVXh0PWZ1bmN0aW9uKHQsZSl7cmV0dXJueyJlbWJlZGRpbmctc2VsZWN0ZWQiOnQsImVtYmVkZGluZy11bnNlbGVjdGVkIjplfX07ZnVuY3Rpb24gV3h0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwibWF0LWljb24iLDUpLFJmKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtQaSh0KTtjb25zdCBuPXpmKCk7cmV0dXJuIG4ub25TZWxlY3QuZW1pdChuLm1ldHJpYyl9KSksTWYoKX1pZigyJnQpe2NvbnN0IHQ9emYoKTtiZigibmdDbGFzcyIsYXkoMSxVeHQsdC5lbWJlZGRpbmdzTWV0cmljPT09dC5tZXRyaWMsdC5lbWJlZGRpbmdzTWV0cmljIT09dC5tZXRyaWMpKX19Y29uc3QgR3h0PWZ1bmN0aW9uKHQpe3JldHVybnt3aWR0aDp0fX0sWXh0PWZ1bmN0aW9uKHQpe3JldHVybnsidmFsdWUtaW52YWxpZCI6dH19O2NsYXNzIHF4dHtjb25zdHJ1Y3Rvcigpe3RoaXMub25SZW1vdmU9bmV3IFN5LHRoaXMub25TZWxlY3Q9bmV3IFN5LHRoaXMub25GaWx0ZXJDaGFuZ2U9bmV3IFN5LHRoaXMuZm9jdXNNaW49ITEsdGhpcy5mb2N1c01heD0hMSx0aGlzLm5nVW5zdWJzY3JpYmU9bmV3IEJ9bmdPbkluaXQoKXt0aGlzLm1pbkZvcm1Db250cm9sPW5ldyBXVyh0aGlzLmZpbHRlclZhbHVlcy5taW4sW05VLnJlcXVpcmVkLE5VLm1pbigtMSksTlUubWF4KDEpLHRoaXMubWluVmFsdWVWYWxpZGF0b3IuYmluZCh0aGlzKV0pLHRoaXMubWF4Rm9ybUNvbnRyb2w9bmV3IFdXKHRoaXMuZmlsdGVyVmFsdWVzLm1heCxbTlUucmVxdWlyZWQsTlUubWluKC0xKSxOVS5tYXgoMSksdGhpcy5tYXhWYWx1ZVZhbGlkYXRvci5iaW5kKHRoaXMpXSksdGhpcy5taW5Gb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShqZSh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCgpPT57dGhpcy5taW5Gb3JtQ29udHJvbC52YWxpZCYmdGhpcy5tYXhGb3JtQ29udHJvbC52YWxpZCYmdGhpcy5vbkZpbHRlckNoYW5nZS5lbWl0KHttaW46cGFyc2VGbG9hdCh0aGlzLm1pbkZvcm1Db250cm9sLnZhbHVlKSxtYXg6cGFyc2VGbG9hdCh0aGlzLm1heEZvcm1Db250cm9sLnZhbHVlKX0pfSkpLHRoaXMubWF4Rm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoamUodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgoKT0+e3RoaXMubWluRm9ybUNvbnRyb2wudmFsaWQmJnRoaXMubWF4Rm9ybUNvbnRyb2wudmFsaWQmJnRoaXMub25GaWx0ZXJDaGFuZ2UuZW1pdCh7bWluOnBhcnNlRmxvYXQodGhpcy5taW5Gb3JtQ29udHJvbC52YWx1ZSksbWF4OnBhcnNlRmxvYXQodGhpcy5tYXhGb3JtQ29udHJvbC52YWx1ZSl9KX0pKX1uZ09uQ2hhbmdlcyh0KXt0aGlzLm1pbkZvcm1Db250cm9sJiZ0aGlzLm1heEZvcm1Db250cm9sJiYodGhpcy5taW5Gb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZpbHRlclZhbHVlcy5taW4se2VtaXRFdmVudDohMX0pLHRoaXMubWF4Rm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5maWx0ZXJWYWx1ZXMubWF4LHtlbWl0RXZlbnQ6ITF9KSl9bmdPbkRlc3Ryb3koKXt0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpLHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpfW1pblZhbHVlVmFsaWRhdG9yKHQpe3JldHVybiB0aGlzLm1heEZvcm1Db250cm9sJiYiTmFOIiE9PXQudmFsdWU/aXNOYU4ocGFyc2VGbG9hdCh0LnZhbHVlKSk/e3ZhbHVlOiJ0aGUgc3RyaW5nIHlvdSBlbnRlcmVkIGlzIG5laXRoZXIgTmFOIG5vciBhIG51bWJlciJ9OnBhcnNlRmxvYXQodC52YWx1ZSk+cGFyc2VGbG9hdCh0aGlzLm1heEZvcm1Db250cm9sLnZhbHVlKT97dmFsdWU6InRoZSBudW1iZXIgeW91IGVudGVyZWQgaXMgbGFyZ2VyIHRoYW4gdGhlIG1heCB2YWx1ZSJ9Om51bGw6bnVsbH1tYXhWYWx1ZVZhbGlkYXRvcih0KXtyZXR1cm4gdGhpcy5taW5Gb3JtQ29udHJvbD8iTmFOIj09PXRoaXMubWluRm9ybUNvbnRyb2wudmFsdWUmJiJOYU4iPT09dC52YWx1ZT9udWxsOmlzTmFOKHBhcnNlRmxvYXQodC52YWx1ZSkpP3t2YWx1ZToidGhlIHN0cmluZyB5b3UgZW50ZXJlZCBpcyBuZWl0aGVyIE5hTiBub3IgYSBudW1iZXIifTp0LnZhbHVlPHRoaXMubWluRm9ybUNvbnRyb2wudmFsdWU/e3ZhbHVlOiJ0aGUgbnVtYmVyIHlvdSBlbnRlcmVkIGlzIHNtYWxsZXIgdGhhbiB0aGUgbWluIHZhbHVlIn06bnVsbDpudWxsfWdldEVycm9yRGVzY3JpcHRpb24odCl7aWYodCl7Y29uc3QgZT1PYmplY3Qua2V5cyh0KVswXTtyZXR1cm4icmVxdWlyZWQiPT09ZT8ieW91IGRpZCBub3QgZW50ZXIgYW55dGhpbmciOiJtaW4iPT09ZT8idGhlIG51bWJlciBtdXN0IGJlIGF0IGxlYXN0IC0xLjAiOiJtYXgiPT09ZT8idGhlIG51bWJlciBpcyBiaWdnZXIgdGhhbiAxLjAiOnRbZV19cmV0dXJuIiJ9fXF4dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8cXh0KX0scXh0Lsm1Y21wPXNvKHt0eXBlOnF4dCxzZWxlY3RvcnM6W1sibWV0cmljLWFyaXRobWV0aWMtZWxlbWVudC1jb21wb25lbnQiXV0saW5wdXRzOnttZXRyaWM6Im1ldHJpYyIsZmlsdGVyVmFsdWVzOiJmaWx0ZXJWYWx1ZXMiLGhhc0VtYmVkZGluZ3NEYXRhOiJoYXNFbWJlZGRpbmdzRGF0YSIsZW1iZWRkaW5nc01ldHJpYzoiZW1iZWRkaW5nc01ldHJpYyJ9LG91dHB1dHM6e29uUmVtb3ZlOiJvblJlbW92ZSIsb25TZWxlY3Q6Im9uU2VsZWN0IixvbkZpbHRlckNoYW5nZToib25GaWx0ZXJDaGFuZ2UifSxmZWF0dXJlczpbcW9dLGRlY2xzOjEwLHZhcnM6MjIsY29uc3RzOltbMSwiZmlsdGVyLWNoaXAiLDMsInJlbW92ZWQiXSxbImNsYXNzIiwiZW1iZWRkaW5ncy1idXR0b24iLCJzdmdJY29uIiwiZ3JvdXBfd29ya18yNHB4IiwzLCJuZ0NsYXNzIiwiY2xpY2siLDQsIm5nSWYiXSxbMSwibWV0cmljLWFyaXRobWV0aWMtZWxlbWVudC1yYW5nZSIsMywia2V5ZG93biJdLFsibWF0SW5wdXQiLCIiLDEsImlucHV0LWZpZWxkIiwzLCJ2YWx1ZSIsIm1hdFRvb2x0aXAiLCJtYXRUb29sdGlwRGlzYWJsZWQiLCJuZ1N0eWxlIiwibmdDbGFzcyIsImZvcm1Db250cm9sIiwiZm9jdXMiLCJmb2N1c291dCJdLFsibWF0Q2hpcFJlbW92ZSIsIiIsInN2Z0ljb24iLCJjYW5jZWxfMjRweCJdLFsic3ZnSWNvbiIsImdyb3VwX3dvcmtfMjRweCIsMSwiZW1iZWRkaW5ncy1idXR0b24iLDMsIm5nQ2xhc3MiLCJjbGljayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwibWF0LWNoaXAiLDApLFJmKCJyZW1vdmVkIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUmVtb3ZlLmVtaXQobi5tZXRyaWMpfSkpLEhtKDEsV3h0LDEsNCwibWF0LWljb24iLDEpLFB1KDIpLENmKDMsImRpdiIsMiksUmYoImtleWRvd24iLChmdW5jdGlvbiB0KGUpe3JldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpfSkpLFB1KDQsIiBbICIpLENmKDUsImlucHV0IiwzKSxSZigiZm9jdXMiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uZm9jdXNNaW49ITB9KSkoImZvY3Vzb3V0IiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLmZvY3VzTWluPSExfSkpLE1mKCksUHUoNiwiIDsgIiksQ2YoNywiaW5wdXQiLDMpLFJmKCJmb2N1cyIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5mb2N1c01heD0hMH0pKSgiZm9jdXNvdXQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4uZm9jdXNNYXg9ITF9KSksTWYoKSxQdSg4LCIgXSAiKSxNZigpLHZmKDksIm1hdC1pY29uIiw0KSxNZigpKSwyJmUmJihEYygxKSxiZigibmdJZiIsbi5oYXNFbWJlZGRpbmdzRGF0YSksRGMoMSksa3UoIiAiLG4ubWV0cmljLCIgIiksRGMoMyksYmYoInZhbHVlIixuLmZpbHRlclZhbHVlcy5taW4pKCJtYXRUb29sdGlwIixuLmdldEVycm9yRGVzY3JpcHRpb24obi5taW5Gb3JtQ29udHJvbC5lcnJvcnMpKSgibWF0VG9vbHRpcERpc2FibGVkIiwhbi5taW5Gb3JtQ29udHJvbC5pbnZhbGlkKSgibmdTdHlsZSIsaXkoMTQsR3h0LG4uZm9jdXNNaW4/IjEwMHB4IjpuLm1pbkZvcm1Db250cm9sLnZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoKyJjaCIpKSgibmdDbGFzcyIsaXkoMTYsWXh0LCFuLm1pbkZvcm1Db250cm9sLnZhbGlkKSkoImZvcm1Db250cm9sIixuLm1pbkZvcm1Db250cm9sKSxEYygyKSxiZigidmFsdWUiLG4uZmlsdGVyVmFsdWVzLm1heCkoIm1hdFRvb2x0aXAiLG4uZ2V0RXJyb3JEZXNjcmlwdGlvbihuLm1heEZvcm1Db250cm9sLmVycm9ycykpKCJtYXRUb29sdGlwRGlzYWJsZWQiLCFuLm1heEZvcm1Db250cm9sLmludmFsaWQpKCJuZ1N0eWxlIixpeSgxOCxHeHQsbi5mb2N1c01heD8iMTAwcHgiOm4ubWF4Rm9ybUNvbnRyb2wudmFsdWUudG9TdHJpbmcoKS5sZW5ndGgrImNoIikpKCJuZ0NsYXNzIixpeSgyMCxZeHQsIW4ubWF4Rm9ybUNvbnRyb2wudmFsaWQpKSgiZm9ybUNvbnRyb2wiLG4ubWF4Rm9ybUNvbnRyb2wpKX0sZGlyZWN0aXZlczpbRXh0LFB2LFNVLEwwLHp2LEN2LG1XLHVHLE1xLEF4dF0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9LmZpbHRlci1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O21hcmdpbi1sZWZ0OjVweH0ubWV0cmljLWFyaXRobWV0aWMtZWxlbWVudC1yYW5nZVtfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6I2ZmZjtmb250LXNpemU6LjhlbTtoZWlnaHQ6MzBweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2xpbmUtaGVpZ2h0OjMwcHg7cGFkZGluZzowIDVweDttYXJnaW4tbGVmdDo1cHh9LmlucHV0LWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO2ZvbnQtZmFtaWx5Om1vbm9zcGFjZTtmb250LXNpemU6MS4xZW07dHJhbnNpdGlvbjp3aWR0aCAxc30uaW5wdXQtZmllbGRbX25nY29udGVudC0lQ09NUCVdOmZvY3Vze2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMTIpO2JvcmRlcjpub25lO291dGxpbmU6bm9uZX0udmFsdWUtaW52YWxpZFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6I2Y0NDMzNn0uZW1iZWRkaW5nLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZjU3YzAwO29wYWNpdHk6MX0uZW1iZWRkaW5nLXVuc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjR9LmVtYmVkZGluZ3MtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxOHB4O2hlaWdodDoxOHB4O21hcmdpbi1yaWdodDo4cHg7Y3Vyc29yOnBvaW50ZXJ9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHF4dCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJtZXRyaWMtYXJpdGhtZXRpYy1lbGVtZW50LWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vbWV0cmljX2FyaXRobWV0aWNfZWxlbWVudF9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9tZXRyaWNfYXJpdGhtZXRpY19lbGVtZW50X2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSxudWxsLHttZXRyaWM6W3t0eXBlOlJffV0sZmlsdGVyVmFsdWVzOlt7dHlwZTpSX31dLGhhc0VtYmVkZGluZ3NEYXRhOlt7dHlwZTpSX31dLGVtYmVkZGluZ3NNZXRyaWM6W3t0eXBlOlJffV0sb25SZW1vdmU6W3t0eXBlOkVffV0sb25TZWxlY3Q6W3t0eXBlOkVffV0sb25GaWx0ZXJDaGFuZ2U6W3t0eXBlOkVffV19KTtjbGFzcyBaeHR7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMuZmlsdGVyVmFsdWVzJD10aGlzLnN0b3JlLnBpcGUoclMoZXh0KSkucGlwZShWdCgodD0+e2NvbnN0IGU9dFt0aGlzLm1ldHJpY107aWYoIWUpcmV0dXJue21pbjotMSxtYXg6MX07cmV0dXJue21pbjplLmluY2x1ZGVOYU4/Ik5hTiI6dGhpcy5yb3VuZFRvVGhyZWVEZWNpbWFsUG9pbnRzKGUubWluKSxtYXg6ZS5tYXg8ZS5taW4/Ik5hTiI6dGhpcy5yb3VuZFRvVGhyZWVEZWNpbWFsUG9pbnRzKGUubWF4KX19KSkpLHRoaXMuaGFzRW1iZWRkaW5nc0RhdGEkPXRoaXMuc3RvcmUucGlwZShyUyhadnQpKS5waXBlKFZ0KCh0PT52b2lkIDAhPT10KSkpLHRoaXMuZW1iZWRkaW5nc01ldHJpYyQ9dGhpcy5zdG9yZS5waXBlKHJTKGR4dCkpfXJlbW92ZSh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKFB2dCh7bWV0cmljOnR9KSl9c2VsZWN0KHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2goTnZ0KHttZXRyaWM6dH0pKX1maWx0ZXJDaGFuZ2UodCl7Y29uc3QgZT1pc05hTih0Lm1pbik/LTE6dC5taW4sbj1pc05hTih0Lm1heCk/LTI6dC5tYXgsbz1pc05hTih0Lm1pbik7dGhpcy5zdG9yZS5kaXNwYXRjaCh3dnQoe21ldHJpYzp0aGlzLm1ldHJpYyxtYXg6bixtaW46ZSxpbmNsdWRlTmFOOm99KSl9cm91bmRUb1RocmVlRGVjaW1hbFBvaW50cyh0KXtyZXR1cm4gTWF0aC5yb3VuZCgxZTMqKHQrTnVtYmVyLkVQU0lMT04pKS8xZTN9fVp4dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Wnh0KShnZihpUykpfSxaeHQuybVjbXA9c28oe3R5cGU6Wnh0LHNlbGVjdG9yczpbWyJucG1pLW1ldHJpYy1hcml0aG1ldGljLWVsZW1lbnQiXV0saW5wdXRzOnttZXRyaWM6Im1ldHJpYyJ9LGRlY2xzOjQsdmFyczoxMCxjb25zdHM6W1szLCJtZXRyaWMiLCJmaWx0ZXJWYWx1ZXMiLCJoYXNFbWJlZGRpbmdzRGF0YSIsImVtYmVkZGluZ3NNZXRyaWMiLCJvblJlbW92ZSIsIm9uU2VsZWN0Iiwib25GaWx0ZXJDaGFuZ2UiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKENmKDAsIm1ldHJpYy1hcml0aG1ldGljLWVsZW1lbnQtY29tcG9uZW50IiwwKSxSZigib25SZW1vdmUiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLnJlbW92ZShlKX0pKSgib25TZWxlY3QiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLnNlbGVjdChlKX0pKSgib25GaWx0ZXJDaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmZpbHRlckNoYW5nZShlKX0pKSxfeSgxLCJhc3luYyIpLF95KDIsImFzeW5jIiksX3koMywiYXN5bmMiKSxNZigpKSwyJmUmJmJmKCJtZXRyaWMiLG4ubWV0cmljKSgiZmlsdGVyVmFsdWVzIixDeSgxLDQsbi5maWx0ZXJWYWx1ZXMkKSkoImhhc0VtYmVkZGluZ3NEYXRhIixDeSgyLDYsbi5oYXNFbWJlZGRpbmdzRGF0YSQpKSgiZW1iZWRkaW5nc01ldHJpYyIsQ3koMyw4LG4uZW1iZWRkaW5nc01ldHJpYyQpKX0sZGlyZWN0aXZlczpbcXh0XSxwaXBlczpbVnZdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoWnh0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im5wbWktbWV0cmljLWFyaXRobWV0aWMtZWxlbWVudCIsdGVtcGxhdGU6J1xuICAgIDxtZXRyaWMtYXJpdGhtZXRpYy1lbGVtZW50LWNvbXBvbmVudFxuICAgICAgW21ldHJpY109Im1ldHJpYyJcbiAgICAgIFtmaWx0ZXJWYWx1ZXNdPSJmaWx0ZXJWYWx1ZXMkIHwgYXN5bmMiXG4gICAgICBbaGFzRW1iZWRkaW5nc0RhdGFdPSJoYXNFbWJlZGRpbmdzRGF0YSQgfCBhc3luYyJcbiAgICAgIFtlbWJlZGRpbmdzTWV0cmljXT0iZW1iZWRkaW5nc01ldHJpYyQgfCBhc3luYyJcbiAgICAgIChvblJlbW92ZSk9InJlbW92ZSgkZXZlbnQpIlxuICAgICAgKG9uU2VsZWN0KT0ic2VsZWN0KCRldmVudCkiXG4gICAgICAob25GaWx0ZXJDaGFuZ2UpPSJmaWx0ZXJDaGFuZ2UoJGV2ZW50KSJcbiAgICA+PC9tZXRyaWMtYXJpdGhtZXRpYy1lbGVtZW50LWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aVN9XX0pLHttZXRyaWM6W3t0eXBlOlJffV19KTtjbGFzcyBYeHR7Y29uc3RydWN0b3IoKXt0aGlzLk9wZXJhdG9yPUJ2dH19ZnVuY3Rpb24gS3h0KHQsZSl7aWYoMSZ0JiZ2ZigwLCJucG1pLW1ldHJpYy1hcml0aG1ldGljLWVsZW1lbnQiLDQpLDImdCl7YmYoIm1ldHJpYyIsemYoKS4kaW1wbGljaXQubWV0cmljKX19ZnVuY3Rpb24gSnh0KHQsZSl7aWYoMSZ0JiZ2ZigwLCJucG1pLW1ldHJpYy1hcml0aG1ldGljLW9wZXJhdG9yIiw1KSwyJnQpe2JmKCJvcGVyYXRvciIsemYoKS4kaW1wbGljaXQub3BlcmF0b3IpfX1mdW5jdGlvbiBReHQodCxlKXtpZigxJnQmJihDZigwLCJkaXYiKSxIbSgxLEt4dCwxLDEsIm5wbWktbWV0cmljLWFyaXRobWV0aWMtZWxlbWVudCIsMiksSG0oMixKeHQsMSwxLCJucG1pLW1ldHJpYy1hcml0aG1ldGljLW9wZXJhdG9yIiwzKSxNZigpKSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj16ZigpO0RjKDEpLGJmKCJuZ0lmIix0LmtpbmQ9PT1uLkFyaXRobWV0aWNLaW5kLk1FVFJJQyksRGMoMSksYmYoIm5nSWYiLHQua2luZD09PW4uQXJpdGhtZXRpY0tpbmQuT1BFUkFUT1IpfX1YeHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFh4dCl9LFh4dC7JtWNtcD1zbyh7dHlwZTpYeHQsc2VsZWN0b3JzOltbIm5wbWktbWV0cmljLWFyaXRobWV0aWMtb3BlcmF0b3IiXV0saW5wdXRzOntvcGVyYXRvcjoib3BlcmF0b3IifSxkZWNsczoyLHZhcnM6MSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwibWF0LWNoaXAiKSxQdSgxKSxNZigpKSwyJmUmJihEYygxKSxrdSgiICIsbi5vcGVyYXRvcj09PW4uT3BlcmF0b3IuQU5EPyImIjoiIiwiICIpKX0sZGlyZWN0aXZlczpbRXh0XSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFh4dCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJucG1pLW1ldHJpYy1hcml0aG1ldGljLW9wZXJhdG9yIix0ZW1wbGF0ZToiXG4gICAgPG1hdC1jaGlwPlxuICAgICAge3sgb3BlcmF0b3IgPT09IE9wZXJhdG9yLkFORCA/ICcmJyA6ICcnIH19XG4gICAgPC9tYXQtY2hpcD5cbiAgIixjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSxudWxsLHtvcGVyYXRvcjpbe3R5cGU6Ul99XX0pO2NsYXNzICR4dHtjb25zdHJ1Y3Rvcigpe3RoaXMuQXJpdGhtZXRpY0tpbmQ9VnZ0fX0keHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fCR4dCl9LCR4dC7JtWNtcD1zbyh7dHlwZTokeHQsc2VsZWN0b3JzOltbIm1ldHJpYy1hcml0aG1ldGljLWNvbXBvbmVudCJdXSxpbnB1dHM6e21ldHJpY0FyaXRobWV0aWM6Im1ldHJpY0FyaXRobWV0aWMifSxkZWNsczoyLHZhcnM6Mixjb25zdHM6W1szLCJzZWxlY3RhYmxlIl0sWzQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJtZXRyaWMiLDQsIm5nSWYiXSxbMywib3BlcmF0b3IiLDQsIm5nSWYiXSxbMywibWV0cmljIl0sWzMsIm9wZXJhdG9yIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJtYXQtY2hpcC1saXN0IiwwKSxIbSgxLFF4dCwzLDIsImRpdiIsMSksTWYoKSksMiZlJiYoYmYoInNlbGVjdGFibGUiLCExKSxEYygxKSxiZigibmdGb3JPZiIsbi5tZXRyaWNBcml0aG1ldGljKSl9LGRpcmVjdGl2ZXM6W0h4dCx4dixQdixaeHQsWHh0XSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtd3JhcDp3cmFwfSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYigkeHQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibWV0cmljLWFyaXRobWV0aWMtY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiLi9tZXRyaWNfYXJpdGhtZXRpY19jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9tZXRyaWNfYXJpdGhtZXRpY19jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sbnVsbCx7bWV0cmljQXJpdGhtZXRpYzpbe3R5cGU6Ul99XX0pO2NsYXNzIHRPdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5tZXRyaWNBcml0aG1ldGljJD10aGlzLnN0b3JlLnBpcGUoclModHh0KSl9fXRPdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dE90KShnZihpUykpfSx0T3QuybVjbXA9c28oe3R5cGU6dE90LHNlbGVjdG9yczpbWyJucG1pLW1ldHJpYy1hcml0aG1ldGljIl1dLGRlY2xzOjIsdmFyczozLGNvbnN0czpbWzMsIm1ldHJpY0FyaXRobWV0aWMiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKHZmKDAsIm1ldHJpYy1hcml0aG1ldGljLWNvbXBvbmVudCIsMCksX3koMSwiYXN5bmMiKSksMiZlJiZiZigibWV0cmljQXJpdGhtZXRpYyIsQ3koMSwxLG4ubWV0cmljQXJpdGhtZXRpYyQpKX0sZGlyZWN0aXZlczpbJHh0XSxwaXBlczpbVnZdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIodE90LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im5wbWktbWV0cmljLWFyaXRobWV0aWMiLHRlbXBsYXRlOidcbiAgICA8bWV0cmljLWFyaXRobWV0aWMtY29tcG9uZW50XG4gICAgICBbbWV0cmljQXJpdGhtZXRpY109Im1ldHJpY0FyaXRobWV0aWMkIHwgYXN5bmMiXG4gICAgPjwvbWV0cmljLWFyaXRobWV0aWMtY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSksbnVsbCk7Y2xhc3MgZU90e31mdW5jdGlvbiBuT3QodCxlLG4sbyxpLGEpe2NvbnN0IHI9e30scz1uZXcgU2V0KGUpLGw9bmV3IFNldChpLm1hcCgodD0+el90KHQpKSkpLGM9bmV3IFJlZ0V4cChhLCJpIik7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHQpLmZvckVhY2goKHQ9PntpZighYy50ZXN0KHRbMF0pKXJldHVybjtsZXQgZT10WzFdO2U9ZS5maWx0ZXIoKHQ9PnMuaGFzKHQucnVuKSYmbC5oYXModC5tZXRyaWMpKSksKGZ1bmN0aW9uIGkodCxlLG4pe3JldHVybiB0LmV2ZXJ5KCh0PT57aWYodC5raW5kPT09VnZ0Lk9QRVJBVE9SKXJldHVybiEwO2NvbnN0IG89ZVt0Lm1ldHJpY107cmV0dXJuIHZvaWQgMD09PW98fG4uc29tZSgoZT0+ZS5tZXRyaWM9PT16X3QodC5tZXRyaWMpJiYobnVsbD09PWUublBNSVZhbHVlP28uaW5jbHVkZU5hTjplLm5QTUlWYWx1ZTw9by5tYXgmJmUublBNSVZhbHVlPj1vLm1pbikpKX0pKX0pKG4sbyxlKSYmMCE9PWUubGVuZ3RoJiYoclt0WzBdXT1lKX0pKSxyfWZ1bmN0aW9uIG9PdCh0LGUsbil7aWYobilyZXR1cm4gdDtjb25zdCBvPU9iamVjdC5hc3NpZ24oe30sdCk7cmV0dXJuIGUuZm9yRWFjaCgodD0+ZGVsZXRlIG9bdF0pKSxvfWVPdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8ZU90KX0sZU90Lsm1Y21wPXNvKHt0eXBlOmVPdCxzZWxlY3RvcnM6W1sibnBtaS1kYXRhLXNlbGVjdGlvbiJdXSxkZWNsczo0LHZhcnM6MCxjb25zdHM6W1sxLCJkYXRhLXNlbGVjdGlvbiJdLFsxLCJtZXRyaWNzLXNlbGVjdG9yIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJkaXYiLDApLHZmKDEsIm5wbWktbWV0cmljLXNlYXJjaCIsMSksdmYoMiwibnBtaS1yZXN1bHRzLWRvd25sb2FkIiksTWYoKSx2ZigzLCJucG1pLW1ldHJpYy1hcml0aG1ldGljIikpfSxkaXJlY3RpdmVzOltDeHQsT3h0LHRPdF0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNlYmViZWI7cGFkZGluZzoxMHB4IDIwcHh9LmRhdGEtc2VsZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5tZXRyaWNzLXNlbGVjdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4OjEgMX0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoZU90LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im5wbWktZGF0YS1zZWxlY3Rpb24iLHRlbXBsYXRlVXJsOiIuL2RhdGFfc2VsZWN0aW9uX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL2RhdGFfc2VsZWN0aW9uX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSxudWxsLG51bGwpO2NvbnN0IGlPdD1bImNoYXJ0Il07Y2xhc3MgYU90e2NvbnN0cnVjdG9yKCl7dGhpcy5vblJlbW92ZT1uZXcgU3ksdGhpcy5vblVwZGF0ZUZpbHRlcj1uZXcgU3ksdGhpcy5oZWlnaHQ9MzAwLHRoaXMuY2hhcnRXaWR0aD0wLHRoaXMuY2hhcnRIZWlnaHQ9MCx0aGlzLmRyYXdIZWlnaHQ9MCx0aGlzLmRyYXdXaWR0aD0wLHRoaXMubWFyZ2luPXt0b3A6MjAscmlnaHQ6MTAsYm90dG9tOjIwLGxlZnQ6MTB9LHRoaXMuZHJhd01hcmdpbj17dG9wOjAscmlnaHQ6MCxib3R0b206MjAsbGVmdDoyMH0sdGhpcy5icnVzaD1nbnQoKSx0aGlzLm1heEJpblNpemU9MCx0aGlzLmFyZWE9KGZ1bmN0aW9uIHQoKXt2YXIgdD1IYXQsZT1udWxsLG49TmF0KDApLG89RmF0LGk9TmF0KCEwKSxhPW51bGwscj1JYXQscz1udWxsO2Z1bmN0aW9uIGwobCl7dmFyIGMsZCxwLG0sZix1PWwubGVuZ3RoLGc9ITEsaD1uZXcgQXJyYXkodSksYj1uZXcgQXJyYXkodSk7Zm9yKG51bGw9PWEmJihzPXIoZj1NbnQoKSkpLGM9MDtjPD11OysrYyl7aWYoIShjPHUmJmkobT1sW2NdLGMsbCkpPT09ZylpZihnPSFnKWQ9YyxzLmFyZWFTdGFydCgpLHMubGluZVN0YXJ0KCk7ZWxzZXtmb3Iocy5saW5lRW5kKCkscy5saW5lU3RhcnQoKSxwPWMtMTtwPj1kOy0tcClzLnBvaW50KGhbcF0sYltwXSk7cy5saW5lRW5kKCkscy5hcmVhRW5kKCl9ZyYmKGhbY109K3QobSxjLGwpLGJbY109K24obSxjLGwpLHMucG9pbnQoZT8rZShtLGMsbCk6aFtjXSxvPytvKG0sYyxsKTpiW2NdKSl9aWYoZilyZXR1cm4gcz1udWxsLGYrIiJ8fG51bGx9ZnVuY3Rpb24gYygpe3JldHVybiBMYXQoKS5kZWZpbmVkKGkpLmN1cnZlKHIpLmNvbnRleHQoYSl9cmV0dXJuIGwueD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uOk5hdCgrbiksZT1udWxsLGwpOnR9LGwueDA9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpOYXQoK2UpLGwpOnR9LGwueDE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bnVsbD09dD9udWxsOiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6TmF0KCt0KSxsKTplfSxsLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpOYXQoK3QpLG89bnVsbCxsKTpufSxsLnkwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6TmF0KCt0KSxsKTpufSxsLnkxPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPW51bGw9PXQ/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YgdD90Ok5hdCgrdCksbCk6b30sbC5saW5lWDA9bC5saW5lWTA9ZnVuY3Rpb24oKXtyZXR1cm4gYygpLngodCkueShuKX0sbC5saW5lWTE9ZnVuY3Rpb24oKXtyZXR1cm4gYygpLngodCkueShvKX0sbC5saW5lWDE9ZnVuY3Rpb24oKXtyZXR1cm4gYygpLngoZSkueShuKX0sbC5kZWZpbmVkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6TmF0KCEhdCksbCk6aX0sbC5jdXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LG51bGwhPWEmJihzPXIoYSkpLGwpOnJ9LGwuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09dD9hPXM9bnVsbDpzPXIoYT10KSxsKTphfSxsfSkoKS54MChmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy54U2NhbGVOdW0oLXQubGVuZ3RoKX0uYmluZCh0aGlzKSkueDEoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueFNjYWxlTnVtKHQubGVuZ3RoKX0uYmluZCh0aGlzKSkueShmdW5jdGlvbih0KXtyZXR1cm4gdC54MD09PS0xLzA/dGhpcy5jaGFydEhlaWdodC10aGlzLmRyYXdNYXJnaW4udG9wOnRoaXMueVNjYWxlKCh0LngxK3QueDApLzIpfS5iaW5kKHRoaXMpKS5jdXJ2ZShVYXQpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMudXBkYXRlRGltZW5zaW9ucygpLHRoaXMuc3ZnPW44KHRoaXMuY2hhcnRDb250YWluZXIubmF0aXZlRWxlbWVudCkuc2VsZWN0KCJzdmciKSx0aGlzLm1haW5Db250YWluZXI9dGhpcy5zdmcuYXBwZW5kKCJnIikuYXR0cigidHJhbnNmb3JtIixgdHJhbnNsYXRlKCR7dGhpcy5tYXJnaW4ubGVmdH0sICR7dGhpcy5tYXJnaW4udG9wfSlgKSx0aGlzLmRyYXdDb250YWluZXI9dGhpcy5tYWluQ29udGFpbmVyLmFwcGVuZCgiZyIpLmF0dHIoInRyYW5zZm9ybSIsYHRyYW5zbGF0ZSgke3RoaXMuZHJhd01hcmdpbi5sZWZ0fSwgJHt0aGlzLmRyYXdNYXJnaW4udG9wfSlgKSx0aGlzLmRvdHNHcm91cD10aGlzLmRyYXdDb250YWluZXIuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJkb3RzR3JvdXAiKSx0aGlzLnlBeGlzR3JvdXA9dGhpcy5tYWluQ29udGFpbmVyLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwiYXhpcyBheGlzLS15IiksdGhpcy54QXhpc0dyb3VwPXRoaXMubWFpbkNvbnRhaW5lci5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsImF4aXMgYXhpcy0teCIpLHRoaXMubWlzY0dyb3VwPXRoaXMuZHJhd0NvbnRhaW5lci5hcHBlbmQoImciKSx0aGlzLnhTY2FsZT1KbnQoKS5wYWRkaW5nKC4wNSksdGhpcy54QXhpcz1CNih0aGlzLnhTY2FsZSksdGhpcy55U2NhbGU9bW90KCkucmFuZ2UoW3RoaXMuZHJhd0hlaWdodCwwXSksdGhpcy55QXhpcz0oZnVuY3Rpb24gdChlKXtyZXR1cm4gRjYoNCxlKX0pKHRoaXMueVNjYWxlKSx0aGlzLnhTY2FsZU51bT1tb3QoKSx0aGlzLmluaXRpYWxpemVCcnVzaCgpLHRoaXMuZHJhd01pc2MoKSx0aGlzLnJlZHJhdygpfW5nT25DaGFuZ2VzKHQpe3RoaXMuc3ZnJiZ0aGlzLnJlZHJhdygpfXJlZHJhdygpe3RoaXMudXBkYXRlRGltZW5zaW9ucygpLHRoaXMuc2V0TWF4QmluU2l6ZSgpLHRoaXMudXBkYXRlQXhlcygpLHRoaXMuZHJhdygpfXVwZGF0ZURpbWVuc2lvbnMoKXt0aGlzLmNoYXJ0V2lkdGg9dGhpcy53aWR0aC10aGlzLm1hcmdpbi5sZWZ0LXRoaXMubWFyZ2luLnJpZ2h0LHRoaXMuZHJhd1dpZHRoPXRoaXMuY2hhcnRXaWR0aC10aGlzLmRyYXdNYXJnaW4ubGVmdC10aGlzLmRyYXdNYXJnaW4ucmlnaHQsdGhpcy5jaGFydEhlaWdodD10aGlzLmhlaWdodC10aGlzLm1hcmdpbi50b3AtdGhpcy5tYXJnaW4uYm90dG9tLHRoaXMuZHJhd0hlaWdodD10aGlzLmNoYXJ0SGVpZ2h0LXRoaXMuZHJhd01hcmdpbi50b3AtdGhpcy5kcmF3TWFyZ2luLmJvdHRvbX1zZXRNYXhCaW5TaXplKCl7T2JqZWN0LnZhbHVlcyh0aGlzLmNoYXJ0RGF0YS52aW9saW5EYXRhKS5mb3JFYWNoKCh0PT57Y29uc3QgZT10Lm1hcCgodD0+dC5sZW5ndGgpKSxuPU1hdGgubWF4KC4uLmUpO3RoaXMubWF4QmluU2l6ZT1NYXRoLm1heChuLHRoaXMubWF4QmluU2l6ZSl9KSl9dXBkYXRlQXhlcygpe3RoaXMueFNjYWxlLnJhbmdlKFswLHRoaXMuZHJhd1dpZHRoXSkuZG9tYWluKE9iamVjdC5rZXlzKHRoaXMuY2hhcnREYXRhLnZpb2xpbkRhdGEpKSx0aGlzLnlTY2FsZS5kb21haW4oW3RoaXMuY2hhcnREYXRhLmV4dHJlbWVzLm1pbix0aGlzLmNoYXJ0RGF0YS5leHRyZW1lcy5tYXhdKSx0aGlzLnhTY2FsZU51bS5yYW5nZShbMCx0aGlzLnhTY2FsZS5iYW5kd2lkdGgoKV0pLmRvbWFpbihbLXRoaXMubWF4QmluU2l6ZSx0aGlzLm1heEJpblNpemVdKX1pbml0aWFsaXplQnJ1c2goKXt0aGlzLmJydXNoLm9uKCJlbmQiLHRoaXMuYnJ1c2hNb3ZlZC5iaW5kKHRoaXMpKX1kcmF3KCl7dGhpcy5kcmF3QXhlcygpLHRoaXMuZHJhd1Bsb3QoKSx0aGlzLnJlZnJlc2hNaXNjKCksdGhpcy5yZWZyZXNoQnJ1c2goKX1kcmF3QXhlcygpe3RoaXMueUF4aXNHcm91cC5hdHRyKCJ0cmFuc2Zvcm0iLGB0cmFuc2xhdGUoJHt0aGlzLmRyYXdNYXJnaW4ubGVmdH0sXG4gICAgICAke3RoaXMuZHJhd01hcmdpbi50b3B9KWApLmNhbGwodGhpcy55QXhpcyksdGhpcy54QXhpc0dyb3VwLmF0dHIoInRyYW5zZm9ybSIsYHRyYW5zbGF0ZSgke3RoaXMuZHJhd01hcmdpbi5sZWZ0fSxcbiAgICAgICR7dGhpcy5kcmF3TWFyZ2luLnRvcCt0aGlzLmNoYXJ0SGVpZ2h0fSlgKS5jYWxsKHRoaXMueEF4aXMpfWRyYXdQbG90KCl7Y29uc3QgdD10aGlzLmRvdHNHcm91cC5zZWxlY3RBbGwoIi52aW9saW4tcGxvdCIpLmRhdGEoT2JqZWN0LmVudHJpZXModGhpcy5jaGFydERhdGEudmlvbGluRGF0YSkpO3QuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5hdHRyKCJjbGFzcyIsInZpb2xpbi1wbG90Iikuc3R5bGUoInN0cm9rZSIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY29sb3JTY2FsZSh0WzBdKX0uYmluZCh0aGlzKSkuc3R5bGUoImZpbGwiLGZ1bmN0aW9uKHQpe3JldHVybmAke3RoaXMuY29sb3JTY2FsZSh0WzBdKX0zM2B9LmJpbmQodGhpcykpLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24odCl7cmV0dXJuYHRyYW5zbGF0ZSgke3RoaXMueFNjYWxlKHRbMF0pfSwgMClgfS5iaW5kKHRoaXMpKS5kYXR1bSgoZnVuY3Rpb24odCl7cmV0dXJuIHRbMV19KSkuYXR0cigiZCIsdGhpcy5hcmVhKSx0LmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24odCl7cmV0dXJuYHRyYW5zbGF0ZSgke3RoaXMueFNjYWxlKHRbMF0pfSwgMClgfS5iaW5kKHRoaXMpKS5kYXR1bSgoZnVuY3Rpb24odCl7cmV0dXJuIHRbMV19KSkuYXR0cigiZCIsdGhpcy5hcmVhKSx0LmV4aXQoKS5yZW1vdmUoKX1kcmF3TWlzYygpe3RoaXMuemVyb0xpbmU9dGhpcy5taXNjR3JvdXAuYXBwZW5kKCJsaW5lIikuc3R5bGUoInN0cm9rZSIsImJsYWNrIikuYXR0cigieDEiLDApLmF0dHIoInkxIix0aGlzLnlTY2FsZSgwKSkuYXR0cigieDIiLHRoaXMuZHJhd1dpZHRoKS5hdHRyKCJ5MiIsdGhpcy55U2NhbGUoMCkpLHRoaXMubmFuVGV4dD10aGlzLm1pc2NHcm91cC5hcHBlbmQoInRleHQiKS5zdHlsZSgiZmlsbCIsImJsYWNrIikudGV4dCgiTmFOIikuYXR0cigiZm9udC1zaXplIiwiMTBweCIpLmF0dHIoInRleHQtYW5jaG9yIiwiZW5kIikuYXR0cigiYWxpZ25tZW50LWJhc2VsaW5lIiwibWlkZGxlIikuYXR0cigieCIsLTUpLmF0dHIoInkiLHRoaXMuY2hhcnRIZWlnaHQtdGhpcy5kcmF3TWFyZ2luLnRvcCksdGhpcy5uYW5MaW5lPXRoaXMubWlzY0dyb3VwLmFwcGVuZCgibGluZSIpLnN0eWxlKCJzdHJva2UiLCJncmV5Iikuc3R5bGUoInN0cm9rZS1kYXNoYXJyYXkiLCIzLCAzIikuYXR0cigieDEiLDApLmF0dHIoInkxIix0aGlzLmNoYXJ0SGVpZ2h0LXRoaXMuZHJhd01hcmdpbi50b3ApLmF0dHIoIngyIix0aGlzLmRyYXdXaWR0aCkuYXR0cigieTIiLHRoaXMuY2hhcnRIZWlnaHQtdGhpcy5kcmF3TWFyZ2luLnRvcCl9cmVmcmVzaE1pc2MoKXt0aGlzLnplcm9MaW5lLmF0dHIoInkxIix0aGlzLnlTY2FsZSgwKSkuYXR0cigieDIiLHRoaXMuZHJhd1dpZHRoKS5hdHRyKCJ5MiIsdGhpcy55U2NhbGUoMCkpLHRoaXMubmFuVGV4dC5hdHRyKCJ5Iix0aGlzLmNoYXJ0SGVpZ2h0LXRoaXMuZHJhd01hcmdpbi50b3ApLHRoaXMubmFuTGluZS5hdHRyKCJ5MSIsdGhpcy5kcmF3SGVpZ2h0K3RoaXMuZHJhd01hcmdpbi50b3ApLmF0dHIoIngyIix0aGlzLmRyYXdXaWR0aCkuYXR0cigieTIiLHRoaXMuZHJhd0hlaWdodCt0aGlzLmRyYXdNYXJnaW4udG9wKX1yZWZyZXNoQnJ1c2goKXt0aGlzLmJydXNoLmV4dGVudChbWzAsMF0sW3RoaXMuZHJhd1dpZHRoLHRoaXMuZHJhd0hlaWdodCt0aGlzLm1hcmdpbi50b3BdXSk7Y29uc3QgdD1bMCx0aGlzLmRyYXdIZWlnaHQrdGhpcy5tYXJnaW4udG9wXTtpZih0aGlzLmZpbHRlci5tYXg8dGhpcy5maWx0ZXIubWluKXRbMF09dGhpcy5maWx0ZXIuaW5jbHVkZU5hTj90aGlzLnlTY2FsZSh0aGlzLmNoYXJ0RGF0YS5leHRyZW1lcy5taW4pOnRbMV07ZWxzZXtpZighdGhpcy5maWx0ZXIuaW5jbHVkZU5hTil7Y29uc3QgZT1NYXRoLm1heCh0aGlzLmNoYXJ0RGF0YS5leHRyZW1lcy5taW4sdGhpcy5maWx0ZXIubWluKTt0WzFdPXRoaXMueVNjYWxlKGUpfWNvbnN0IGU9TWF0aC5taW4odGhpcy5jaGFydERhdGEuZXh0cmVtZXMubWF4LHRoaXMuZmlsdGVyLm1heCk7dFswXT10aGlzLnlTY2FsZShlKX10aGlzLmRyYXdDb250YWluZXIuY2FsbCh0aGlzLmJydXNoKS5jYWxsKHRoaXMuYnJ1c2gubW92ZSx0KX1icnVzaE1vdmVkKCl7aWYoIVc3KXJldHVybjtpZighVzcuc291cmNlRXZlbnQpcmV0dXJuO2NvbnN0IHQ9Vzcuc2VsZWN0aW9uO2lmKHQpe2xldCBlPSExLG49LTIsbz10aGlzLmNoYXJ0RGF0YS5leHRyZW1lcy5taW47dFswXTw9dGhpcy5kcmF3SGVpZ2h0K3RoaXMubWFyZ2luLnRvcCYmdFsxXT49dGhpcy5kcmF3SGVpZ2h0JiYoZT0hMCksdFswXTx0aGlzLmRyYXdIZWlnaHQmJihuPXRoaXMueVNjYWxlLmludmVydCh0WzBdKSksdFsxXTx0aGlzLmRyYXdIZWlnaHQmJihvPXRoaXMueVNjYWxlLmludmVydCh0WzFdKSksdGhpcy5vblVwZGF0ZUZpbHRlci5lbWl0KHttYXg6bixtaW46byxpbmNsdWRlTmFOOmV9KX1lbHNlIHRoaXMub25VcGRhdGVGaWx0ZXIuZW1pdCh7bWF4OjEsbWluOi0xLGluY2x1ZGVOYU46ITB9KX19YU90Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxhT3QpfSxhT3QuybVjbXA9c28oe3R5cGU6YU90LHNlbGVjdG9yczpbWyJ2aW9saW4tZmlsdGVyLWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmVnkoaU90LDcsS2gpLDImZSl7bGV0IHQ7QnkodD1VeSgpKSYmKG4uY2hhcnRDb250YWluZXI9dC5maXJzdCl9fSxpbnB1dHM6e21ldHJpY05hbWU6Im1ldHJpY05hbWUiLGZpbHRlcjoiZmlsdGVyIixjaGFydERhdGE6ImNoYXJ0RGF0YSIsd2lkdGg6IndpZHRoIixjb2xvclNjYWxlOiJjb2xvclNjYWxlIn0sb3V0cHV0czp7b25SZW1vdmU6Im9uUmVtb3ZlIixvblVwZGF0ZUZpbHRlcjoib25VcGRhdGVGaWx0ZXIifSxmZWF0dXJlczpbcW9dLGRlY2xzOjksdmFyczoxLGNvbnN0czpmdW5jdGlvbigpe2xldCB0O2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlKXt0PWdvb2cuZ2V0TXNnKCJSZW1vdmUgRmlsdGVyIil9ZWxzZSB0PSRsb2NhbGl6ZWA6TGFiZWwgZm9yIGEgYnV0dG9uIHRoYXQgcmVtb3ZlcyBhIG1ldHJpYyBmaWx0ZXIu4pCfYTZiZmFkNThiYjM2M2Q1Yzg5MWQwYTU0NzRiMWQ3N2VmOTBhMzRkYeKQnzg0NTQ5NjE3OTc3NjI5MDc2MjQ6UmVtb3ZlIEZpbHRlcmA7cmV0dXJuW1sxLCJjaGFydC1jb250YWluZXIiXSxbInRpdGxlIiwiU2hvd3MgdGhlIG5QTUkgdmFsdWUgZGlzdHJpYnV0aW9uIHBlciBydW4uIFJhbmdlcyBvZiBzZWxlY3RlZCB2YWx1ZXMgY2FuIGJlIG1hbmlwdWxhdGVkIGJ5IG1vZGlmeWluZyB0aGUgZ3JleSBib3guIiwxLCJjaGFydC1oZWFkIl0sWzEsImNoYXJ0LWhlYWRpbmciXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHQsMywiY2xpY2siXSxbInN2Z0ljb24iLCJjbGVhcl8yNHB4Il0sWzEsImNoYXJ0Il0sWyJjaGFydCIsIiJdLFsxLCJkcmF3LWFyZWEiXV19LHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJkaXYiLDApLENmKDEsImRpdiIsMSksQ2YoMiwiZGl2IiwyKSxQdSgzKSxNZigpLENmKDQsImJ1dHRvbiIsMyksUmYoImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUmVtb3ZlLmVtaXQoKX0pKSx2Zig1LCJtYXQtaWNvbiIsNCksTWYoKSxNZigpLENmKDYsImRpdiIsNSw2KSxvYSgpLHZmKDgsInN2ZyIsNyksTWYoKSxNZigpKSwyJmUmJihEYygzKSx3dShuLm1ldHJpY05hbWUpKX0sZGlyZWN0aXZlczpbTkwsTXFdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5jaGFydC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47b3ZlcmZsb3c6aGlkZGVufS5jaGFydFtfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjMwMHB4O3dpZHRoOjEwMCV9LmNoYXJ0LWhlYWRbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LmNoYXJ0LWhlYWRpbmdbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4O3BhZGRpbmctbGVmdDoxMHB4O3BhZGRpbmctdG9wOjEwcHh9LmRyYXctYXJlYVtfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uc3Ryb2tlZC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtzdHJva2U6cmdiYSgwLDAsMCwuMTIpO3N0cm9rZS1kYXNoYXJyYXk6MyAzfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihhT3QsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoidmlvbGluLWZpbHRlci1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL3Zpb2xpbl9maWx0ZXJfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vdmlvbGluX2ZpbHRlcl9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sbnVsbCx7bWV0cmljTmFtZTpbe3R5cGU6Ul99XSxmaWx0ZXI6W3t0eXBlOlJffV0sY2hhcnREYXRhOlt7dHlwZTpSX31dLHdpZHRoOlt7dHlwZTpSX31dLGNvbG9yU2NhbGU6W3t0eXBlOlJffV0sb25SZW1vdmU6W3t0eXBlOkVffV0sb25VcGRhdGVGaWx0ZXI6W3t0eXBlOkVffV0sY2hhcnRDb250YWluZXI6W3t0eXBlOmFyLGFyZ3M6WyJjaGFydCIse3N0YXRpYzohMCxyZWFkOktofV19XX0pO2NsYXNzIHJPdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5hY3RpdmVSdW5zJD10aGlzLnN0b3JlLnBpcGUoclMoX0kpKS5waXBlKFZ0KCh0PT50P0FycmF5LmZyb20odC5lbnRyaWVzKCkpLmZpbHRlcigodD0+dFsxXSkpLm1hcCgodD0+dFswXSkpOltdKSkpLHRoaXMudmlzaWJsZUFubm90YXRpb25zJD1LdChbdGhpcy5zdG9yZS5zZWxlY3QoWXZ0KSx0aGlzLnN0b3JlLnNlbGVjdChKdnQpLHRoaXMuc3RvcmUuc2VsZWN0KHN4dCldKS5waXBlKFZ0KCgoW3QsZSxuXSk9Pm9PdCh0LGUsbikpKSksdGhpcy5jaGFydFdpZHRoJD10aGlzLnN0b3JlLnBpcGUoclMoY3h0KSkucGlwZShWdCgodD0+TWF0aC5tYXgoMTUwLHQpKSkpLHRoaXMucnVuQ29sb3JTY2FsZSQ9dGhpcy5zdG9yZS5zZWxlY3QoQ0kpLnBpcGUoVnQoKHQ9PmU9PntpZighdC5oYXNPd25Qcm9wZXJ0eShlKSl0aHJvdyBuZXcgRXJyb3IoYFtDb2xvciBzY2FsZV0gdW5rbm93biBydW5JZDogJHtlfS5gKTtyZXR1cm4gdFtlXX0pKSl9bmdPbkluaXQoKXt0aGlzLmNoYXJ0RGF0YSQ9S3QoW3RoaXMudmlzaWJsZUFubm90YXRpb25zJCx0aGlzLmFjdGl2ZVJ1bnMkXSkucGlwZShWdCgoKFt0LGVdKT0+KGZ1bmN0aW9uIG4odCxlLG8pe2NvbnN0IGk9e30sYT17fSxyPW5ldyBTZXQoZSkscz16X3QobyksbD17bWF4Oi0xLG1pbjoxfTtPYmplY3QudmFsdWVzKHQpLmZvckVhY2goKHQ9Pnt0LmZvckVhY2goKHQ9Pntjb25zdCBlPXQucnVuO2lmKHIuaGFzKGUpJiZ0Lm1ldHJpYz09PXMpaWYobnVsbD09PXQublBNSVZhbHVlKWFbZV0/YVtlXS5wdXNoKG51bGwpOmFbZV09W251bGxdO2Vsc2V7Y29uc3Qgbj10Lm5QTUlWYWx1ZTtsLm1heD1sLm1heDxuP246bC5tYXgsbC5taW49bC5taW4+bj9uOmwubWluLGlbdC5ydW5dP2lbZV0ucHVzaChuKTppW2VdPVtuXX19KSl9KSk7Y29uc3QgYz17fSxkPUQ2KCkuZG9tYWluKFtsLm1pbixsLm1heF0pLnZhbHVlKCh0PT50KSkscD1ENigpLmRvbWFpbihbLTEvMCwxLzBdKS50aHJlc2hvbGRzKDApLnZhbHVlKCh0PT50KSk7Zm9yKGNvbnN0IHQgb2YgcilpZihjW3RdPWQoaVt0XSksYVt0XSl7Y29uc3QgZT1wKGFbdF0pO2NbdF0udW5zaGlmdChlWzBdKX1yZXR1cm57dmlvbGluRGF0YTpjLGV4dHJlbWVzOmx9fSkodCxlLHRoaXMubWV0cmljTmFtZSkpKSl9cmVtb3ZlTWV0cmljKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChQdnQoe21ldHJpYzp0aGlzLm1ldHJpY05hbWV9KSl9dXBkYXRlRmlsdGVyKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2god3Z0KE9iamVjdC5hc3NpZ24oe21ldHJpYzp0aGlzLm1ldHJpY05hbWV9LHQpKSl9fWZ1bmN0aW9uIHNPdCh0LGUpe2lmKDEmdCYmdmYoMCwibnBtaS12aW9saW4tZmlsdGVyIiw4KSwyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQ7YmYoIm1ldHJpY05hbWUiLHRbMF0pKCJmaWx0ZXIiLHRbMV0pfX1mdW5jdGlvbiBsT3QodCxlKXsxJnQmJihDZigwLCJkaXYiLDkpLENmKDEsInNwYW4iLDEwKSxQdSgyLCIgWW91IGNhbiBhZGQgbW9yZSBmaWx0ZXJzIGF0IHRoZSB0b3AuICIpLE1mKCksTWYoKSl9ck90Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxyT3QpKGdmKGlTKSl9LHJPdC7JtWNtcD1zbyh7dHlwZTpyT3Qsc2VsZWN0b3JzOltbIm5wbWktdmlvbGluLWZpbHRlciJdXSxpbnB1dHM6e21ldHJpY05hbWU6Im1ldHJpY05hbWUiLGZpbHRlcjoiZmlsdGVyIn0sZGVjbHM6NCx2YXJzOjExLGNvbnN0czpbWzMsIm1ldHJpY05hbWUiLCJmaWx0ZXIiLCJjaGFydERhdGEiLCJ3aWR0aCIsImNvbG9yU2NhbGUiLCJvblJlbW92ZSIsIm9uVXBkYXRlRmlsdGVyIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJ2aW9saW4tZmlsdGVyLWNvbXBvbmVudCIsMCksUmYoIm9uUmVtb3ZlIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLnJlbW92ZU1ldHJpYygpfSkpKCJvblVwZGF0ZUZpbHRlciIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4udXBkYXRlRmlsdGVyKGUpfSkpLF95KDEsImFzeW5jIiksX3koMiwiYXN5bmMiKSxfeSgzLCJhc3luYyIpLE1mKCkpLDImZSYmYmYoIm1ldHJpY05hbWUiLG4ubWV0cmljTmFtZSkoImZpbHRlciIsbi5maWx0ZXIpKCJjaGFydERhdGEiLEN5KDEsNSxuLmNoYXJ0RGF0YSQpKSgid2lkdGgiLEN5KDIsNyxuLmNoYXJ0V2lkdGgkKSkoImNvbG9yU2NhbGUiLEN5KDMsOSxuLnJ1bkNvbG9yU2NhbGUkKSl9LGRpcmVjdGl2ZXM6W2FPdF0scGlwZXM6W1Z2XSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHJPdCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJucG1pLXZpb2xpbi1maWx0ZXIiLHRlbXBsYXRlOidcbiAgICA8dmlvbGluLWZpbHRlci1jb21wb25lbnRcbiAgICAgIFttZXRyaWNOYW1lXT0ibWV0cmljTmFtZSJcbiAgICAgIFtmaWx0ZXJdPSJmaWx0ZXIiXG4gICAgICBbY2hhcnREYXRhXT0iY2hhcnREYXRhJCB8IGFzeW5jIlxuICAgICAgW3dpZHRoXT0iY2hhcnRXaWR0aCQgfCBhc3luYyJcbiAgICAgIFtjb2xvclNjYWxlXT0icnVuQ29sb3JTY2FsZSQgfCBhc3luYyJcbiAgICAgIChvblJlbW92ZSk9InJlbW92ZU1ldHJpYygpIlxuICAgICAgKG9uVXBkYXRlRmlsdGVyKT0idXBkYXRlRmlsdGVyKCRldmVudCkiXG4gICAgPjwvdmlvbGluLWZpbHRlci1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfV19KSx7bWV0cmljTmFtZTpbe3R5cGU6Ul99XSxmaWx0ZXI6W3t0eXBlOlJffV19KTtjbGFzcyBjT3R7Y29uc3RydWN0b3IoKXt0aGlzLnRvZ2dsZVNpZGViYXJFeHBhbmRlZD1uZXcgU3l9fWNPdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Y090KX0sY090Lsm1Y21wPXNvKHt0eXBlOmNPdCxzZWxlY3RvcnM6W1sidmlvbGluLWZpbHRlcnMtY29tcG9uZW50Il1dLGlucHV0czp7c2lkZWJhckV4cGFuZGVkOiJzaWRlYmFyRXhwYW5kZWQiLG1ldHJpY0ZpbHRlcnM6Im1ldHJpY0ZpbHRlcnMifSxvdXRwdXRzOnt0b2dnbGVTaWRlYmFyRXhwYW5kZWQ6InRvZ2dsZVNpZGViYXJFeHBhbmRlZCJ9LGRlY2xzOjksdmFyczoyLGNvbnN0czpmdW5jdGlvbigpe2xldCB0O2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlKXt0PWdvb2cuZ2V0TXNnKCJFeHBhbmQvSGlkZSBTaWRlYmFyIil9ZWxzZSB0PSRsb2NhbGl6ZWA6TGFiZWwgZm9yIGEgYnV0dG9uIHRoYXQgZXhwYW5kcy9oaWRlcyB0aGUgc2lkZWJhci7ikJ80OGMyOTkwM2NlODgxYWI2MTA4OGY4ZDQ5ZDgyNzIwMzcxNmFhZWQ04pCfNDY1ODYwMjk5MTk3MDI2MDIxNTpFeHBhbmQvSGlkZSBTaWRlYmFyYDtyZXR1cm5bWzEsImZpbHRlcnMtdG9vbGJhciJdLFsxLCJmaWx0ZXJzLXRpdGxlIl0sWzEsInNpZGUtdG9nZ2xlIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJhcmlhLWxhYmVsIix0LDMsImNsaWNrIl0sWyJzdmdJY29uIiwiY2hldnJvbl9sZWZ0XzI0cHgiXSxbMSwiZmlsdGVycyJdLFszLCJtZXRyaWNOYW1lIiwiZmlsdGVyIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbImNsYXNzIiwiZmlsdGVycy1oaW50Iiw0LCJuZ0lmIl0sWzMsIm1ldHJpY05hbWUiLCJmaWx0ZXIiXSxbMSwiZmlsdGVycy1oaW50Il0sWzEsImZpbHRlcnMtaGludC10ZXh0Il1dfSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwiZGl2IiwwKSxDZigxLCJoMyIsMSksUHUoMiwiQWN0aXZlIEZpbHRlcnMiKSxNZigpLENmKDMsImRpdiIsMiksQ2YoNCwiYnV0dG9uIiwzKSxSZigiY2xpY2siLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4udG9nZ2xlU2lkZWJhckV4cGFuZGVkLmVtaXQoKX0pKSx2Zig1LCJtYXQtaWNvbiIsNCksTWYoKSxNZigpLE1mKCksQ2YoNiwiZGl2Iiw1KSxIbSg3LHNPdCwxLDIsIm5wbWktdmlvbGluLWZpbHRlciIsNiksTWYoKSxIbSg4LGxPdCwzLDAsImRpdiIsNykpLDImZSYmKERjKDcpLGJmKCJuZ0Zvck9mIixuLm1ldHJpY0ZpbHRlcnMpLERjKDEpLGJmKCJuZ0lmIiwwPT09bi5tZXRyaWNGaWx0ZXJzLmxlbmd0aCkpfSxkaXJlY3RpdmVzOltOTCxNcSx4dixQdixyT3RdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtoZWlnaHQ6MTAwJX0uZmlsdGVycy10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWJlYjtkaXNwbGF5OmZsZXg7aGVpZ2h0OjQycHg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzowIDEwcHh9LmZpbHRlcnMtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0uc2lkZS10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czozcHg7Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MzBweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjMwcHh9LmZpbHRlcnNbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93LXk6YXV0b30uZmlsdGVycy1oaW50W19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2hlaWdodDo0MnB4O3BhZGRpbmc6MCAxNnB4fS5maWx0ZXJzLWhpbnQtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6cmdiYSgwLDAsMCwuMzgpfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihjT3QsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoidmlvbGluLWZpbHRlcnMtY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiLi92aW9saW5fZmlsdGVyc19jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi92aW9saW5fZmlsdGVyc19jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sbnVsbCx7c2lkZWJhckV4cGFuZGVkOlt7dHlwZTpSX31dLG1ldHJpY0ZpbHRlcnM6W3t0eXBlOlJffV0sdG9nZ2xlU2lkZWJhckV4cGFuZGVkOlt7dHlwZTpFX31dfSk7Y2xhc3MgZE90e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLnNpZGViYXJFeHBhbmRlZCQ9dGhpcy5zdG9yZS5zZWxlY3QoYXh0KSx0aGlzLm1ldHJpY0ZpbHRlcnMkPXRoaXMuc3RvcmUuc2VsZWN0KGV4dCkucGlwZShWdCgodD0+T2JqZWN0LmVudHJpZXModCkpKSl9b25Ub2dnbGVTaWRlYmFyRXhwYW5kZWQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKEV2dCgpKX19ZnVuY3Rpb24gcE90KHQsZSxuKXtjb25zdCBvPU9iamVjdC5rZXlzKHQpLGk9ZS5vcmRlcj09PVV2dC5ESVNTSU1JTEFSfHxlLm9yZGVyPT09VXZ0LlNJTUlMQVI7aWYoIiI9PT1lLm1ldHJpY3x8KHZvaWQgMD09PW58fHZvaWQgMD09PW4ucG9pbnRzW2UubWV0cmljXSkmJmkpcmV0dXJuIG87cmV0dXJuKGZ1bmN0aW9uIHModCxlLG4pe2lmKG4pcmV0dXJuIHQuc29ydCgoKHQsbik9PmVbdF0tZVtuXSkpO3JldHVybiB0LnNvcnQoKCh0LG4pPT5lW25dLWVbdF0pKX0pKG8saT8oZnVuY3Rpb24gYSh0LGUsbil7Y29uc3Qgbz17fTtsZXQgaT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksYT1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7bi5vcmRlcj09PVV2dC5TSU1JTEFSJiYoaT1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksYT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO2Zvcihjb25zdCByIG9mIHQpb1tyXT1yPT09bi5tZXRyaWM/aTp2b2lkIDA9PT1lLnBvaW50c1tyXT9hOmUucG9pbnRzW3JdLnZlY3Rvcj9tT3QoZS5wb2ludHNbbi5tZXRyaWNdLnZlY3RvcixlLnBvaW50c1tyXS52ZWN0b3IsYSk6YTtyZXR1cm4gb30pKG8sbixlKTooZnVuY3Rpb24gcih0LGUsbil7Y29uc3Qgbz16X3Qobi5tZXRyaWMpLGk9e307aWYobi5vcmRlcj09PVV2dC5ERVNDRU5ESU5HKWZvcihjb25zdCBuIG9mIHQpaVtuXT1NYXRoLm1heCguLi5lW25dLmZpbHRlcigodD0+dC5tZXRyaWM9PT1vKSkubWFwKCh0PT5udWxsPT09dC5uUE1JVmFsdWU/LTEvMDp0Lm5QTUlWYWx1ZSkpKTtlbHNlIGZvcihjb25zdCBuIG9mIHQpaVtuXT1NYXRoLm1pbiguLi5lW25dLmZpbHRlcigodD0+dC5tZXRyaWM9PT1vKSkubWFwKCh0PT5udWxsPT09dC5uUE1JVmFsdWU/MS8wOnQublBNSVZhbHVlKSkpO3JldHVybiBpfSkobyx0LGUpLGUub3JkZXI9PT1VdnQuQVNDRU5ETkd8fGUub3JkZXI9PT1VdnQuU0lNSUxBUil9ZnVuY3Rpb24gbU90KHQsZSxuKXtpZih0Lmxlbmd0aCE9ZS5sZW5ndGgpcmV0dXJuIG47cmV0dXJuIGUubWFwKCgoZSxuKT0+ZS10W25dKSkubWFwKCh0PT5NYXRoLnBvdyh0LDIpKSkucmVkdWNlKCgodCxlKT0+dCtlKSwwKX1kT3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGRPdCkoZ2YoaVMpKX0sZE90Lsm1Y21wPXNvKHt0eXBlOmRPdCxzZWxlY3RvcnM6W1sibnBtaS12aW9saW4tZmlsdGVycyJdXSxkZWNsczozLHZhcnM6Nixjb25zdHM6W1szLCJzaWRlYmFyRXhwYW5kZWQiLCJtZXRyaWNGaWx0ZXJzIiwidG9nZ2xlU2lkZWJhckV4cGFuZGVkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJ2aW9saW4tZmlsdGVycy1jb21wb25lbnQiLDApLFJmKCJ0b2dnbGVTaWRlYmFyRXhwYW5kZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25Ub2dnbGVTaWRlYmFyRXhwYW5kZWQoKX0pKSxfeSgxLCJhc3luYyIpLF95KDIsImFzeW5jIiksTWYoKSksMiZlJiZiZigic2lkZWJhckV4cGFuZGVkIixDeSgxLDIsbi5zaWRlYmFyRXhwYW5kZWQkKSkoIm1ldHJpY0ZpbHRlcnMiLEN5KDIsNCxuLm1ldHJpY0ZpbHRlcnMkKSl9LGRpcmVjdGl2ZXM6W2NPdF0scGlwZXM6W1Z2XSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGRPdCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJucG1pLXZpb2xpbi1maWx0ZXJzIix0ZW1wbGF0ZTonXG4gICAgPHZpb2xpbi1maWx0ZXJzLWNvbXBvbmVudFxuICAgICAgW3NpZGViYXJFeHBhbmRlZF09InNpZGViYXJFeHBhbmRlZCQgfCBhc3luYyJcbiAgICAgIFttZXRyaWNGaWx0ZXJzXT0ibWV0cmljRmlsdGVycyQgfCBhc3luYyJcbiAgICAgICh0b2dnbGVTaWRlYmFyRXhwYW5kZWQpPSJvblRvZ2dsZVNpZGViYXJFeHBhbmRlZCgpIlxuICAgID48L3Zpb2xpbi1maWx0ZXJzLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aVN9XX0pLG51bGwpO2NvbnN0IGZPdD1bInRodW1iQ29udGFpbmVyIl0sdU90PVsidG9nZ2xlQmFyIl0sZ090PVsiaW5wdXQiXSxoT3Q9ZnVuY3Rpb24odCl7cmV0dXJue2VudGVyRHVyYXRpb246dH19LGJPdD1uZXcgZXIoIm1hdC1zbGlkZS10b2dnbGUtZGVmYXVsdC1vcHRpb25zIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTooKT0+KHtkaXNhYmxlVG9nZ2xlVmFsdWU6ITF9KX0pOwovKioKICAgICAqIEBsaWNlbnNlCiAgICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAgICoKICAgICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlCiAgICAgKi8KbGV0IHlPdD0wO2NvbnN0IF9PdD17cHJvdmlkZTp4VSx1c2VFeGlzdGluZzokZSgoKCk9PnZPdCkpLG11bHRpOiEwfTtjbGFzcyBDT3R7Y29uc3RydWN0b3IodCxlKXt0aGlzLnNvdXJjZT10LHRoaXMuY2hlY2tlZD1lfX1jb25zdCBNT3Q9RkYoSUYoSEYoekYoY2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5fZWxlbWVudFJlZj10fX0pKSkpO2NsYXNzIHZPdCBleHRlbmRzIE1PdHtjb25zdHJ1Y3Rvcih0LGUsbixvLGksYSl7c3VwZXIodCksdGhpcy5fZm9jdXNNb25pdG9yPWUsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9bix0aGlzLmRlZmF1bHRzPWksdGhpcy5fb25DaGFuZ2U9dD0+e30sdGhpcy5fb25Ub3VjaGVkPSgpPT57fSx0aGlzLl91bmlxdWVJZD0ibWF0LXNsaWRlLXRvZ2dsZS0iKyArK3lPdCx0aGlzLl9yZXF1aXJlZD0hMSx0aGlzLl9jaGVja2VkPSExLHRoaXMubmFtZT1udWxsLHRoaXMuaWQ9dGhpcy5fdW5pcXVlSWQsdGhpcy5sYWJlbFBvc2l0aW9uPSJhZnRlciIsdGhpcy5hcmlhTGFiZWw9bnVsbCx0aGlzLmFyaWFMYWJlbGxlZGJ5PW51bGwsdGhpcy5jaGFuZ2U9bmV3IFN5LHRoaXMudG9nZ2xlQ2hhbmdlPW5ldyBTeSx0aGlzLnRhYkluZGV4PXBhcnNlSW50KG8pfHwwLHRoaXMuY29sb3I9dGhpcy5kZWZhdWx0Q29sb3I9aS5jb2xvcnx8ImFjY2VudCIsdGhpcy5fbm9vcEFuaW1hdGlvbnM9Ik5vb3BBbmltYXRpb25zIj09PWF9Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuX3JlcXVpcmVkfXNldCByZXF1aXJlZCh0KXt0aGlzLl9yZXF1aXJlZD1lSCh0KX1nZXQgY2hlY2tlZCgpe3JldHVybiB0aGlzLl9jaGVja2VkfXNldCBjaGVja2VkKHQpe3RoaXMuX2NoZWNrZWQ9ZUgodCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9Z2V0IGlucHV0SWQoKXtyZXR1cm5gJHt0aGlzLmlkfHx0aGlzLl91bmlxdWVJZH0taW5wdXRgfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsZW1lbnRSZWYsITApLnN1YnNjcmliZSgodD0+eyJrZXlib2FyZCI9PT10fHwicHJvZ3JhbSI9PT10P3RoaXMuX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk6dHx8UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKCk9PnRoaXMuX29uVG91Y2hlZCgpKSl9KSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZil9X29uQ2hhbmdlRXZlbnQodCl7dC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnRvZ2dsZUNoYW5nZS5lbWl0KCksdGhpcy5kZWZhdWx0cy5kaXNhYmxlVG9nZ2xlVmFsdWU/dGhpcy5faW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZD10aGlzLmNoZWNrZWQ6KHRoaXMuY2hlY2tlZD10aGlzLl9pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5jaGVja2VkLHRoaXMuX2VtaXRDaGFuZ2VFdmVudCgpKX1fb25JbnB1dENsaWNrKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCl9d3JpdGVWYWx1ZSh0KXt0aGlzLmNoZWNrZWQ9ISF0fXJlZ2lzdGVyT25DaGFuZ2UodCl7dGhpcy5fb25DaGFuZ2U9dH1yZWdpc3Rlck9uVG91Y2hlZCh0KXt0aGlzLl9vblRvdWNoZWQ9dH1zZXREaXNhYmxlZFN0YXRlKHQpe3RoaXMuZGlzYWJsZWQ9dCx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX1mb2N1cyh0LGUpe2U/dGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuX2lucHV0RWxlbWVudCxlLHQpOnRoaXMuX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKHQpfXRvZ2dsZSgpe3RoaXMuY2hlY2tlZD0hdGhpcy5jaGVja2VkLHRoaXMuX29uQ2hhbmdlKHRoaXMuY2hlY2tlZCl9X2VtaXRDaGFuZ2VFdmVudCgpe3RoaXMuX29uQ2hhbmdlKHRoaXMuY2hlY2tlZCksdGhpcy5jaGFuZ2UuZW1pdChuZXcgQ090KHRoaXMsdGhpcy5jaGVja2VkKSl9X29uTGFiZWxUZXh0Q2hhbmdlKCl7dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpfX12T3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHZPdCkoZ2YoS2gpLGdmKGZGKSxnZihPYiksR2EoInRhYmluZGV4IiksZ2YoYk90KSxnZihjayw4KSl9LHZPdC7JtWNtcD1zbyh7dHlwZTp2T3Qsc2VsZWN0b3JzOltbIm1hdC1zbGlkZS10b2dnbGUiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihWeShmT3QsNSksVnkodU90LDUpLFZ5KGdPdCw1KSksMiZlKXtsZXQgdDtCeSh0PVV5KCkpJiYobi5fdGh1bWJFbD10LmZpcnN0KSxCeSh0PVV5KCkpJiYobi5fdGh1bWJCYXJFbD10LmZpcnN0KSxCeSh0PVV5KCkpJiYobi5faW5wdXRFbGVtZW50PXQuZmlyc3QpfX0saG9zdEF0dHJzOlsxLCJtYXQtc2xpZGUtdG9nZ2xlIl0saG9zdFZhcnM6MTIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsyJmUmJihjZygiaWQiLG4uaWQpLHltKCJ0YWJpbmRleCIsbi5kaXNhYmxlZD9udWxsOi0xKSgiYXJpYS1sYWJlbCIsbnVsbCkoImFyaWEtbGFiZWxsZWRieSIsbnVsbCksY3UoIm1hdC1jaGVja2VkIixuLmNoZWNrZWQpKCJtYXQtZGlzYWJsZWQiLG4uZGlzYWJsZWQpKCJtYXQtc2xpZGUtdG9nZ2xlLWxhYmVsLWJlZm9yZSIsImJlZm9yZSI9PW4ubGFiZWxQb3NpdGlvbikoIl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIixuLl9ub29wQW5pbWF0aW9ucykpfSxpbnB1dHM6e2Rpc2FibGVkOiJkaXNhYmxlZCIsZGlzYWJsZVJpcHBsZToiZGlzYWJsZVJpcHBsZSIsY29sb3I6ImNvbG9yIix0YWJJbmRleDoidGFiSW5kZXgiLG5hbWU6Im5hbWUiLGlkOiJpZCIsbGFiZWxQb3NpdGlvbjoibGFiZWxQb3NpdGlvbiIsYXJpYUxhYmVsOlsiYXJpYS1sYWJlbCIsImFyaWFMYWJlbCJdLGFyaWFMYWJlbGxlZGJ5OlsiYXJpYS1sYWJlbGxlZGJ5IiwiYXJpYUxhYmVsbGVkYnkiXSxyZXF1aXJlZDoicmVxdWlyZWQiLGNoZWNrZWQ6ImNoZWNrZWQiLGFyaWFEZXNjcmliZWRieTpbImFyaWEtZGVzY3JpYmVkYnkiLCJhcmlhRGVzY3JpYmVkYnkiXX0sb3V0cHV0czp7Y2hhbmdlOiJjaGFuZ2UiLHRvZ2dsZUNoYW5nZToidG9nZ2xlQ2hhbmdlIn0sZXhwb3J0QXM6WyJtYXRTbGlkZVRvZ2dsZSJdLGZlYXR1cmVzOltqaChbX090XSksUXBdLG5nQ29udGVudFNlbGVjdG9yczpbIioiXSxkZWNsczoxNix2YXJzOjIwLGNvbnN0czpbWzEsIm1hdC1zbGlkZS10b2dnbGUtbGFiZWwiXSxbImxhYmVsIiwiIl0sWzEsIm1hdC1zbGlkZS10b2dnbGUtYmFyIl0sWyJ0b2dnbGVCYXIiLCIiXSxbInR5cGUiLCJjaGVja2JveCIsInJvbGUiLCJzd2l0Y2giLDEsIm1hdC1zbGlkZS10b2dnbGUtaW5wdXQiLCJjZGstdmlzdWFsbHktaGlkZGVuIiwzLCJpZCIsInJlcXVpcmVkIiwidGFiSW5kZXgiLCJjaGVja2VkIiwiZGlzYWJsZWQiLCJjaGFuZ2UiLCJjbGljayJdLFsiaW5wdXQiLCIiXSxbMSwibWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXIiXSxbInRodW1iQ29udGFpbmVyIiwiIl0sWzEsIm1hdC1zbGlkZS10b2dnbGUtdGh1bWIiXSxbIm1hdC1yaXBwbGUiLCIiLDEsIm1hdC1zbGlkZS10b2dnbGUtcmlwcGxlIiwibWF0LWZvY3VzLWluZGljYXRvciIsMywibWF0UmlwcGxlVHJpZ2dlciIsIm1hdFJpcHBsZURpc2FibGVkIiwibWF0UmlwcGxlQ2VudGVyZWQiLCJtYXRSaXBwbGVSYWRpdXMiLCJtYXRSaXBwbGVBbmltYXRpb24iXSxbMSwibWF0LXJpcHBsZS1lbGVtZW50IiwibWF0LXNsaWRlLXRvZ2dsZS1wZXJzaXN0ZW50LXJpcHBsZSJdLFsxLCJtYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnQiLDMsImNka09ic2VydmVDb250ZW50Il0sWyJsYWJlbENvbnRlbnQiLCIiXSxbMiwiZGlzcGxheSIsIm5vbmUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKEhmKCksQ2YoMCwibGFiZWwiLDAsMSksQ2YoMiwiZGl2IiwyLDMpLENmKDQsImlucHV0Iiw0LDUpLFJmKCJjaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLl9vbkNoYW5nZUV2ZW50KGUpfSkpKCJjbGljayIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uX29uSW5wdXRDbGljayhlKX0pKSxNZigpLENmKDYsImRpdiIsNiw3KSx2Zig4LCJkaXYiLDgpLENmKDksImRpdiIsOSksdmYoMTAsImRpdiIsMTApLE1mKCksTWYoKSxNZigpLENmKDExLCJzcGFuIiwxMSwxMiksUmYoImNka09ic2VydmVDb250ZW50IiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLl9vbkxhYmVsVGV4dENoYW5nZSgpfSkpLENmKDEzLCJzcGFuIiwxMyksUHUoMTQsIsKgIiksTWYoKSxGZigxNSksTWYoKSxNZigpKSwyJmUpe2NvbnN0IHQ9Rm0oMSksZT1GbSgxMik7eW0oImZvciIsbi5pbnB1dElkKSxEYygyKSxjdSgibWF0LXNsaWRlLXRvZ2dsZS1iYXItbm8tc2lkZS1tYXJnaW4iLCFlLnRleHRDb250ZW50fHwhZS50ZXh0Q29udGVudC50cmltKCkpLERjKDIpLGJmKCJpZCIsbi5pbnB1dElkKSgicmVxdWlyZWQiLG4ucmVxdWlyZWQpKCJ0YWJJbmRleCIsbi50YWJJbmRleCkoImNoZWNrZWQiLG4uY2hlY2tlZCkoImRpc2FibGVkIixuLmRpc2FibGVkKSx5bSgibmFtZSIsbi5uYW1lKSgiYXJpYS1jaGVja2VkIixuLmNoZWNrZWQudG9TdHJpbmcoKSkoImFyaWEtbGFiZWwiLG4uYXJpYUxhYmVsKSgiYXJpYS1sYWJlbGxlZGJ5IixuLmFyaWFMYWJlbGxlZGJ5KSgiYXJpYS1kZXNjcmliZWRieSIsbi5hcmlhRGVzY3JpYmVkYnkpLERjKDUpLGJmKCJtYXRSaXBwbGVUcmlnZ2VyIix0KSgibWF0UmlwcGxlRGlzYWJsZWQiLG4uZGlzYWJsZVJpcHBsZXx8bi5kaXNhYmxlZCkoIm1hdFJpcHBsZUNlbnRlcmVkIiwhMCkoIm1hdFJpcHBsZVJhZGl1cyIsMjApKCJtYXRSaXBwbGVBbmltYXRpb24iLGl5KDE4LGhPdCxuLl9ub29wQW5pbWF0aW9ucz8wOjE1MCkpfX0sZGlyZWN0aXZlczpbbUwsUEhdLHN0eWxlczpbIi5tYXQtc2xpZGUtdG9nZ2xle2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoyNHB4O21heC13aWR0aDoxMDAlO2xpbmUtaGVpZ2h0OjI0cHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9Lm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWItY29udGFpbmVye3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxNnB4LCAwLCAwKX1bZGlyPXJ0bF0gLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWItY29udGFpbmVye3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTZweCwgMCwgMCl9Lm1hdC1zbGlkZS10b2dnbGUubWF0LWRpc2FibGVke29wYWNpdHk6LjM4fS5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1kaXNhYmxlZCAubWF0LXNsaWRlLXRvZ2dsZS1sYWJlbCwubWF0LXNsaWRlLXRvZ2dsZS5tYXQtZGlzYWJsZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWItY29udGFpbmVye2N1cnNvcjpkZWZhdWx0fS5tYXQtc2xpZGUtdG9nZ2xlLWxhYmVsey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtkaXNwbGF5OmZsZXg7ZmxleDoxO2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OmluaGVyaXQ7Y3Vyc29yOnBvaW50ZXJ9Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudHt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lm1hdC1zbGlkZS10b2dnbGUtbGFiZWwtYmVmb3JlIC5tYXQtc2xpZGUtdG9nZ2xlLWxhYmVse29yZGVyOjF9Lm1hdC1zbGlkZS10b2dnbGUtbGFiZWwtYmVmb3JlIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcntvcmRlcjoyfVtkaXI9cnRsXSAubWF0LXNsaWRlLXRvZ2dsZS1sYWJlbC1iZWZvcmUgLm1hdC1zbGlkZS10b2dnbGUtYmFyLC5tYXQtc2xpZGUtdG9nZ2xlLWJhcnttYXJnaW4tcmlnaHQ6OHB4O21hcmdpbi1sZWZ0OjB9W2Rpcj1ydGxdIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciwubWF0LXNsaWRlLXRvZ2dsZS1sYWJlbC1iZWZvcmUgLm1hdC1zbGlkZS10b2dnbGUtYmFye21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6MH0ubWF0LXNsaWRlLXRvZ2dsZS1iYXItbm8tc2lkZS1tYXJnaW57bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MH0ubWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxO3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7dG9wOi0zcHg7bGVmdDowO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAwLCAwKTt0cmFuc2l0aW9uOmFsbCA4MG1zIGxpbmVhcjt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybX0uX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWItY29udGFpbmVye3RyYW5zaXRpb246bm9uZX1bZGlyPXJ0bF0gLm1hdC1zbGlkZS10b2dnbGUtdGh1bWItY29udGFpbmVye2xlZnQ6YXV0bztyaWdodDowfS5tYXQtc2xpZGUtdG9nZ2xlLXRodW1ie2hlaWdodDoyMHB4O3dpZHRoOjIwcHg7Ym9yZGVyLXJhZGl1czo1MCV9Lm1hdC1zbGlkZS10b2dnbGUtYmFye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjM2cHg7aGVpZ2h0OjE0cHg7ZmxleC1zaHJpbms6MDtib3JkZXItcmFkaXVzOjhweH0ubWF0LXNsaWRlLXRvZ2dsZS1pbnB1dHtib3R0b206MDtsZWZ0OjEwcHh9W2Rpcj1ydGxdIC5tYXQtc2xpZGUtdG9nZ2xlLWlucHV0e2xlZnQ6YXV0bztyaWdodDoxMHB4fS5tYXQtc2xpZGUtdG9nZ2xlLWJhciwubWF0LXNsaWRlLXRvZ2dsZS10aHVtYnt0cmFuc2l0aW9uOmFsbCA4MG1zIGxpbmVhcjt0cmFuc2l0aW9uLXByb3BlcnR5OmJhY2tncm91bmQtY29sb3I7dHJhbnNpdGlvbi1kZWxheTo1MG1zfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXIsLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1ie3RyYW5zaXRpb246bm9uZX0ubWF0LXNsaWRlLXRvZ2dsZSAubWF0LXNsaWRlLXRvZ2dsZS1yaXBwbGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOmNhbGMoNTAlIC0gMjBweCk7bGVmdDpjYWxjKDUwJSAtIDIwcHgpO2hlaWdodDo0MHB4O3dpZHRoOjQwcHg7ei1pbmRleDoxO3BvaW50ZXItZXZlbnRzOm5vbmV9Lm1hdC1zbGlkZS10b2dnbGUgLm1hdC1zbGlkZS10b2dnbGUtcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtc2xpZGUtdG9nZ2xlLXBlcnNpc3RlbnQtcmlwcGxlKXtvcGFjaXR5Oi4xMn0ubWF0LXNsaWRlLXRvZ2dsZS1wZXJzaXN0ZW50LXJpcHBsZXt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RyYW5zZm9ybTpub25lfS5tYXQtc2xpZGUtdG9nZ2xlLWJhcjpob3ZlciAubWF0LXNsaWRlLXRvZ2dsZS1wZXJzaXN0ZW50LXJpcHBsZXtvcGFjaXR5Oi4wNH0ubWF0LXNsaWRlLXRvZ2dsZTpub3QoLm1hdC1kaXNhYmxlZCkuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1zbGlkZS10b2dnbGUtcGVyc2lzdGVudC1yaXBwbGV7b3BhY2l0eTouMTJ9Lm1hdC1zbGlkZS10b2dnbGUtcGVyc2lzdGVudC1yaXBwbGUsLm1hdC1zbGlkZS10b2dnbGUubWF0LWRpc2FibGVkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcjpob3ZlciAubWF0LXNsaWRlLXRvZ2dsZS1wZXJzaXN0ZW50LXJpcHBsZXtvcGFjaXR5OjB9QG1lZGlhKGhvdmVyOiBub25lKXsubWF0LXNsaWRlLXRvZ2dsZS1iYXI6aG92ZXIgLm1hdC1zbGlkZS10b2dnbGUtcGVyc2lzdGVudC1yaXBwbGV7ZGlzcGxheTpub25lfX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iLC5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zbGlkZS10b2dnbGUtYmFye2JvcmRlcjoxcHggc29saWR9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXNsaWRlLXRvZ2dsZS5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXJ7b3V0bGluZToycHggZG90dGVkO291dGxpbmUtb2Zmc2V0OjVweH1cbiJdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLHZPdC5jdG9yUGFyYW1ldGVycz0oKT0+W3t0eXBlOktofSx7dHlwZTpmRn0se3R5cGU6T2J9LHt0eXBlOlN0cmluZyxkZWNvcmF0b3JzOlt7dHlwZTokYSxhcmdzOlsidGFiaW5kZXgiXX1dfSx7dHlwZTp2b2lkIDAsZGVjb3JhdG9yczpbe3R5cGU6THIsYXJnczpbYk90XX1dfSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6QnJ9LHt0eXBlOkxyLGFyZ3M6W2NrXX1dfV0sdk90LnByb3BEZWNvcmF0b3JzPXtfdGh1bWJFbDpbe3R5cGU6YXIsYXJnczpbInRodW1iQ29udGFpbmVyIl19XSxfdGh1bWJCYXJFbDpbe3R5cGU6YXIsYXJnczpbInRvZ2dsZUJhciJdfV0sbmFtZTpbe3R5cGU6Ul99XSxpZDpbe3R5cGU6Ul99XSxsYWJlbFBvc2l0aW9uOlt7dHlwZTpSX31dLGFyaWFMYWJlbDpbe3R5cGU6Ul8sYXJnczpbImFyaWEtbGFiZWwiXX1dLGFyaWFMYWJlbGxlZGJ5Olt7dHlwZTpSXyxhcmdzOlsiYXJpYS1sYWJlbGxlZGJ5Il19XSxhcmlhRGVzY3JpYmVkYnk6W3t0eXBlOlJfLGFyZ3M6WyJhcmlhLWRlc2NyaWJlZGJ5Il19XSxyZXF1aXJlZDpbe3R5cGU6Ul99XSxjaGVja2VkOlt7dHlwZTpSX31dLGNoYW5nZTpbe3R5cGU6RV99XSx0b2dnbGVDaGFuZ2U6W3t0eXBlOkVffV0sX2lucHV0RWxlbWVudDpbe3R5cGU6YXIsYXJnczpbImlucHV0Il19XX0sKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYih2T3QsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibWF0LXNsaWRlLXRvZ2dsZSIsZXhwb3J0QXM6Im1hdFNsaWRlVG9nZ2xlIixob3N0OntjbGFzczoibWF0LXNsaWRlLXRvZ2dsZSIsIltpZF0iOiJpZCIsIlthdHRyLnRhYmluZGV4XSI6ImRpc2FibGVkID8gbnVsbCA6IC0xIiwiW2F0dHIuYXJpYS1sYWJlbF0iOiJudWxsIiwiW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSI6Im51bGwiLCJbY2xhc3MubWF0LWNoZWNrZWRdIjoiY2hlY2tlZCIsIltjbGFzcy5tYXQtZGlzYWJsZWRdIjoiZGlzYWJsZWQiLCJbY2xhc3MubWF0LXNsaWRlLXRvZ2dsZS1sYWJlbC1iZWZvcmVdIjonbGFiZWxQb3NpdGlvbiA9PSAiYmVmb3JlIicsIltjbGFzcy5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZV0iOiJfbm9vcEFuaW1hdGlvbnMifSx0ZW1wbGF0ZTonPGxhYmVsIFthdHRyLmZvcl09ImlucHV0SWQiIGNsYXNzPSJtYXQtc2xpZGUtdG9nZ2xlLWxhYmVsIiAjbGFiZWw+XG4gIDxkaXYgI3RvZ2dsZUJhciBjbGFzcz0ibWF0LXNsaWRlLXRvZ2dsZS1iYXIiXG4gICAgICAgW2NsYXNzLm1hdC1zbGlkZS10b2dnbGUtYmFyLW5vLXNpZGUtbWFyZ2luXT0iIWxhYmVsQ29udGVudC50ZXh0Q29udGVudCB8fCAhbGFiZWxDb250ZW50LnRleHRDb250ZW50LnRyaW0oKSI+XG5cbiAgICA8aW5wdXQgI2lucHV0IGNsYXNzPSJtYXQtc2xpZGUtdG9nZ2xlLWlucHV0IGNkay12aXN1YWxseS1oaWRkZW4iIHR5cGU9ImNoZWNrYm94IlxuICAgICAgICAgICByb2xlPSJzd2l0Y2giXG4gICAgICAgICAgIFtpZF09ImlucHV0SWQiXG4gICAgICAgICAgIFtyZXF1aXJlZF09InJlcXVpcmVkIlxuICAgICAgICAgICBbdGFiSW5kZXhdPSJ0YWJJbmRleCJcbiAgICAgICAgICAgW2NoZWNrZWRdPSJjaGVja2VkIlxuICAgICAgICAgICBbZGlzYWJsZWRdPSJkaXNhYmxlZCJcbiAgICAgICAgICAgW2F0dHIubmFtZV09Im5hbWUiXG4gICAgICAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09ImNoZWNrZWQudG9TdHJpbmcoKSJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09ImFyaWFMYWJlbCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT0iYXJpYUxhYmVsbGVkYnkiXG4gICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPSJhcmlhRGVzY3JpYmVkYnkiXG4gICAgICAgICAgIChjaGFuZ2UpPSJfb25DaGFuZ2VFdmVudCgkZXZlbnQpIlxuICAgICAgICAgICAoY2xpY2spPSJfb25JbnB1dENsaWNrKCRldmVudCkiPlxuXG4gICAgPGRpdiBjbGFzcz0ibWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXIiICN0aHVtYkNvbnRhaW5lcj5cbiAgICAgIDxkaXYgY2xhc3M9Im1hdC1zbGlkZS10b2dnbGUtdGh1bWIiPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz0ibWF0LXNsaWRlLXRvZ2dsZS1yaXBwbGUgbWF0LWZvY3VzLWluZGljYXRvciIgbWF0LXJpcHBsZVxuICAgICAgICAgICBbbWF0UmlwcGxlVHJpZ2dlcl09ImxhYmVsIlxuICAgICAgICAgICBbbWF0UmlwcGxlRGlzYWJsZWRdPSJkaXNhYmxlUmlwcGxlIHx8IGRpc2FibGVkIlxuICAgICAgICAgICBbbWF0UmlwcGxlQ2VudGVyZWRdPSJ0cnVlIlxuICAgICAgICAgICBbbWF0UmlwcGxlUmFkaXVzXT0iMjAiXG4gICAgICAgICAgIFttYXRSaXBwbGVBbmltYXRpb25dPSJ7ZW50ZXJEdXJhdGlvbjogX25vb3BBbmltYXRpb25zID8gMCA6IDE1MH0iPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9Im1hdC1yaXBwbGUtZWxlbWVudCBtYXQtc2xpZGUtdG9nZ2xlLXBlcnNpc3RlbnQtcmlwcGxlIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuXG4gIDxzcGFuIGNsYXNzPSJtYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnQiICNsYWJlbENvbnRlbnQgKGNka09ic2VydmVDb250ZW50KT0iX29uTGFiZWxUZXh0Q2hhbmdlKCkiPlxuICAgIFx4M2MhLS0gQWRkIGFuIGludmlzaWJsZSBzcGFuIHNvIEpBV1MgY2FuIHJlYWQgdGhlIGxhYmVsIC0tXHgzZVxuICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5Om5vbmUiPiZuYnNwOzwvc3Bhbj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvc3Bhbj5cbjwvbGFiZWw+XG4nLHByb3ZpZGVyczpbX090XSxpbnB1dHM6WyJkaXNhYmxlZCIsImRpc2FibGVSaXBwbGUiLCJjb2xvciIsInRhYkluZGV4Il0sZW5jYXBzdWxhdGlvbjpXbi5Ob25lLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2gsc3R5bGVzOlsiLm1hdC1zbGlkZS10b2dnbGV7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjI0cHg7bWF4LXdpZHRoOjEwMCU7bGluZS1oZWlnaHQ6MjRweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTpub25lOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDE2cHgsIDAsIDApfVtkaXI9cnRsXSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xNnB4LCAwLCAwKX0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtZGlzYWJsZWR7b3BhY2l0eTouMzh9Lm1hdC1zbGlkZS10b2dnbGUubWF0LWRpc2FibGVkIC5tYXQtc2xpZGUtdG9nZ2xlLWxhYmVsLC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1kaXNhYmxlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXJ7Y3Vyc29yOmRlZmF1bHR9Lm1hdC1zbGlkZS10b2dnbGUtbGFiZWx7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2Rpc3BsYXk6ZmxleDtmbGV4OjE7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6aW5oZXJpdDtjdXJzb3I6cG9pbnRlcn0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50e3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ubWF0LXNsaWRlLXRvZ2dsZS1sYWJlbC1iZWZvcmUgLm1hdC1zbGlkZS10b2dnbGUtbGFiZWx7b3JkZXI6MX0ubWF0LXNsaWRlLXRvZ2dsZS1sYWJlbC1iZWZvcmUgLm1hdC1zbGlkZS10b2dnbGUtYmFye29yZGVyOjJ9W2Rpcj1ydGxdIC5tYXQtc2xpZGUtdG9nZ2xlLWxhYmVsLWJlZm9yZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXIsLm1hdC1zbGlkZS10b2dnbGUtYmFye21hcmdpbi1yaWdodDo4cHg7bWFyZ2luLWxlZnQ6MH1bZGlyPXJ0bF0gLm1hdC1zbGlkZS10b2dnbGUtYmFyLC5tYXQtc2xpZGUtdG9nZ2xlLWxhYmVsLWJlZm9yZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXJ7bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDowfS5tYXQtc2xpZGUtdG9nZ2xlLWJhci1uby1zaWRlLW1hcmdpbnttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDowfS5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjE7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDt0b3A6LTNweDtsZWZ0OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO3RyYW5zaXRpb246YWxsIDgwbXMgbGluZWFyO3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtfS5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXJ7dHJhbnNpdGlvbjpub25lfVtkaXI9cnRsXSAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXJ7bGVmdDphdXRvO3JpZ2h0OjB9Lm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7aGVpZ2h0OjIwcHg7d2lkdGg6MjBweDtib3JkZXItcmFkaXVzOjUwJX0ubWF0LXNsaWRlLXRvZ2dsZS1iYXJ7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MzZweDtoZWlnaHQ6MTRweDtmbGV4LXNocmluazowO2JvcmRlci1yYWRpdXM6OHB4fS5tYXQtc2xpZGUtdG9nZ2xlLWlucHV0e2JvdHRvbTowO2xlZnQ6MTBweH1bZGlyPXJ0bF0gLm1hdC1zbGlkZS10b2dnbGUtaW5wdXR7bGVmdDphdXRvO3JpZ2h0OjEwcHh9Lm1hdC1zbGlkZS10b2dnbGUtYmFyLC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1ie3RyYW5zaXRpb246YWxsIDgwbXMgbGluZWFyO3RyYW5zaXRpb24tcHJvcGVydHk6YmFja2dyb3VuZC1jb2xvcjt0cmFuc2l0aW9uLWRlbGF5OjUwbXN9Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciwuX21hdC1hbmltYXRpb24tbm9vcGFibGUgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWJ7dHJhbnNpdGlvbjpub25lfS5tYXQtc2xpZGUtdG9nZ2xlIC5tYXQtc2xpZGUtdG9nZ2xlLXJpcHBsZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6Y2FsYyg1MCUgLSAyMHB4KTtsZWZ0OmNhbGMoNTAlIC0gMjBweCk7aGVpZ2h0OjQwcHg7d2lkdGg6NDBweDt6LWluZGV4OjE7cG9pbnRlci1ldmVudHM6bm9uZX0ubWF0LXNsaWRlLXRvZ2dsZSAubWF0LXNsaWRlLXRvZ2dsZS1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1zbGlkZS10b2dnbGUtcGVyc2lzdGVudC1yaXBwbGUpe29wYWNpdHk6LjEyfS5tYXQtc2xpZGUtdG9nZ2xlLXBlcnNpc3RlbnQtcmlwcGxle3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dHJhbnNmb3JtOm5vbmV9Lm1hdC1zbGlkZS10b2dnbGUtYmFyOmhvdmVyIC5tYXQtc2xpZGUtdG9nZ2xlLXBlcnNpc3RlbnQtcmlwcGxle29wYWNpdHk6LjA0fS5tYXQtc2xpZGUtdG9nZ2xlOm5vdCgubWF0LWRpc2FibGVkKS5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LXNsaWRlLXRvZ2dsZS1wZXJzaXN0ZW50LXJpcHBsZXtvcGFjaXR5Oi4xMn0ubWF0LXNsaWRlLXRvZ2dsZS1wZXJzaXN0ZW50LXJpcHBsZSwubWF0LXNsaWRlLXRvZ2dsZS5tYXQtZGlzYWJsZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyOmhvdmVyIC5tYXQtc2xpZGUtdG9nZ2xlLXBlcnNpc3RlbnQtcmlwcGxle29wYWNpdHk6MH1AbWVkaWEoaG92ZXI6IG5vbmUpey5tYXQtc2xpZGUtdG9nZ2xlLWJhcjpob3ZlciAubWF0LXNsaWRlLXRvZ2dsZS1wZXJzaXN0ZW50LXJpcHBsZXtkaXNwbGF5Om5vbmV9fS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIsLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXJ7Ym9yZGVyOjFweCBzb2xpZH0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtc2xpZGUtdG9nZ2xlLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhcntvdXRsaW5lOjJweCBkb3R0ZWQ7b3V0bGluZS1vZmZzZXQ6NXB4fVxuIl19XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpLaH0se3R5cGU6ZkZ9LHt0eXBlOk9ifSx7dHlwZTpTdHJpbmcsZGVjb3JhdG9yczpbe3R5cGU6JGEsYXJnczpbInRhYmluZGV4Il19XX0se3R5cGU6dm9pZCAwLGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W2JPdF19XX0se3R5cGU6U3RyaW5nLGRlY29yYXRvcnM6W3t0eXBlOkJyfSx7dHlwZTpMcixhcmdzOltja119XX1dfSkse25hbWU6W3t0eXBlOlJffV0saWQ6W3t0eXBlOlJffV0sbGFiZWxQb3NpdGlvbjpbe3R5cGU6Ul99XSxhcmlhTGFiZWw6W3t0eXBlOlJfLGFyZ3M6WyJhcmlhLWxhYmVsIl19XSxhcmlhTGFiZWxsZWRieTpbe3R5cGU6Ul8sYXJnczpbImFyaWEtbGFiZWxsZWRieSJdfV0sY2hhbmdlOlt7dHlwZTpFX31dLHRvZ2dsZUNoYW5nZTpbe3R5cGU6RV99XSxyZXF1aXJlZDpbe3R5cGU6Ul99XSxjaGVja2VkOlt7dHlwZTpSX31dLF90aHVtYkVsOlt7dHlwZTphcixhcmdzOlsidGh1bWJDb250YWluZXIiXX1dLF90aHVtYkJhckVsOlt7dHlwZTphcixhcmdzOlsidG9nZ2xlQmFyIl19XSxhcmlhRGVzY3JpYmVkYnk6W3t0eXBlOlJfLGFyZ3M6WyJhcmlhLWRlc2NyaWJlZGJ5Il19XSxfaW5wdXRFbGVtZW50Olt7dHlwZTphcixhcmdzOlsiaW5wdXQiXX1dfSk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjb25zdCB4T3Q9e3Byb3ZpZGU6RVUsdXNlRXhpc3Rpbmc6JGUoKCgpPT5PT3QpKSxtdWx0aTohMH07Y2xhc3MgT090IGV4dGVuZHMgVkd7fU9PdC7JtWZhYz0oZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4gZnVuY3Rpb24gZShuKXtyZXR1cm4odHx8KHQ9VWEoT090KSkpKG58fE9PdCl9fSkoKSxPT3QuybVkaXI9aG8oe3R5cGU6T090LHNlbGVjdG9yczpbWyJtYXQtc2xpZGUtdG9nZ2xlIiwicmVxdWlyZWQiLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbIm1hdC1zbGlkZS10b2dnbGUiLCJyZXF1aXJlZCIsIiIsImZvcm1Db250cm9sIiwiIl0sWyJtYXQtc2xpZGUtdG9nZ2xlIiwicmVxdWlyZWQiLCIiLCJuZ01vZGVsIiwiIl1dLGZlYXR1cmVzOltqaChbeE90XSksUXBdfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihPT3QsW3t0eXBlOmtfLGFyZ3M6W3tzZWxlY3RvcjoibWF0LXNsaWRlLXRvZ2dsZVtyZXF1aXJlZF1bZm9ybUNvbnRyb2xOYW1lXSxcbiAgICAgICAgICAgICBtYXQtc2xpZGUtdG9nZ2xlW3JlcXVpcmVkXVtmb3JtQ29udHJvbF0sIG1hdC1zbGlkZS10b2dnbGVbcmVxdWlyZWRdW25nTW9kZWxdIixwcm92aWRlcnM6W3hPdF19XX1dLG51bGwsbnVsbCk7Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLwpjbGFzcyBQT3R7fVBPdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UE90KX0sUE90Lsm1bW9kPWZvKHt0eXBlOlBPdH0pLFBPdC7JtWluaj1Ebih7fSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihQT3QsW3t0eXBlOkxfLGFyZ3M6W3tleHBvcnRzOltPT3RdLGRlY2xhcmF0aW9uczpbT090XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKFBPdCx7ZGVjbGFyYXRpb25zOltPT3RdLGV4cG9ydHM6W09PdF19KTtjbGFzcyB3T3R7fWZ1bmN0aW9uIGtPdCh0LGUpezEmdCYmdmYoMCwibWF0LWljb24iLDMpfXdPdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8d090KX0sd090Lsm1bW9kPWZvKHt0eXBlOndPdH0pLHdPdC7JtWluaj1Ebih7aW1wb3J0czpbW1BPdCxmTCxORix3SF0sUE90LE5GXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIod090LFt7dHlwZTpMXyxhcmdzOlt7aW1wb3J0czpbUE90LGZMLE5GLHdIXSxleHBvcnRzOltQT3Qsdk90LE5GXSxkZWNsYXJhdGlvbnM6W3ZPdF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byh3T3Qse2RlY2xhcmF0aW9uczpmdW5jdGlvbigpe3JldHVyblt2T3RdfSxpbXBvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuW1BPdCxmTCxORix3SF19LGV4cG9ydHM6ZnVuY3Rpb24oKXtyZXR1cm5bUE90LHZPdCxORl19fSk7Y2xhc3MgU090e2NvbnN0cnVjdG9yKCl7dGhpcy5vblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2U9bmV3IFN5fX1TT3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFNPdCl9LFNPdC7JtWNtcD1zbyh7dHlwZTpTT3Qsc2VsZWN0b3JzOltbIm5wbWktYW5ub3RhdGlvbnMtc2VhcmNoLWNvbXBvbmVudCJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbiB0KGUsbil7MiZlJiZjdSgidmFsaWQiLG4uaXNSZWdleEZpbHRlclZhbGlkKX0saW5wdXRzOntyZWdleEZpbHRlclZhbHVlOiJyZWdleEZpbHRlclZhbHVlIixpc1JlZ2V4RmlsdGVyVmFsaWQ6ImlzUmVnZXhGaWx0ZXJWYWxpZCJ9LG91dHB1dHM6e29uUmVnZXhGaWx0ZXJWYWx1ZUNoYW5nZToib25SZWdleEZpbHRlclZhbHVlQ2hhbmdlIn0sZGVjbHM6Myx2YXJzOjIsY29uc3RzOltbInN2Z0ljb24iLCJzZWFyY2hfMjRweCJdLFsiYXV0b2NvbXBsZXRlIiwib2ZmIiwicGxhY2Vob2xkZXIiLCJGaWx0ZXIgQW5ub3RhdGlvbnMiLDMsInZhbHVlIiwiaW5wdXQiXSxbInN2Z0ljb24iLCJlcnJvcl8yNHB4IiwiY2xhc3MiLCJlcnJvci1pY29uIiwibWF0VG9vbHRpcCIsIkludmFsaWQgcmVnZXggZmlsdGVyLiBUaGUgcmVzdWx0IG1heSBiZSBzdGFsZS4iLDQsIm5nSWYiXSxbInN2Z0ljb24iLCJlcnJvcl8yNHB4IiwibWF0VG9vbHRpcCIsIkludmFsaWQgcmVnZXggZmlsdGVyLiBUaGUgcmVzdWx0IG1heSBiZSBzdGFsZS4iLDEsImVycm9yLWljb24iXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKHZmKDAsIm1hdC1pY29uIiwwKSxDZigxLCJpbnB1dCIsMSksUmYoImlucHV0IiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UuZW1pdChlLnRhcmdldC52YWx1ZSl9KSksTWYoKSxIbSgyLGtPdCwxLDAsIm1hdC1pY29uIiwyKSksMiZlJiYoRGMoMSksYmYoInZhbHVlIixuLnJlZ2V4RmlsdGVyVmFsdWUpLERjKDEpLGJmKCJuZ0lmIiwhbi5pc1JlZ2V4RmlsdGVyVmFsaWQpKX0sZGlyZWN0aXZlczpbTXEsUHZdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV06bm90KC52YWxpZCl7Y29sb3I6I2M2MjgyOH1bX25naG9zdC0lQ09NUCVdOm5vdCgudmFsaWQpICAgaW5wdXRbX25nY29udGVudC0lQ09NUCVde2NhcmV0LWNvbG9yOmN1cnJlbnRDb2xvcn1bX25naG9zdC0lQ09NUCVdOm5vdCgudmFsaWQpICAgLmVycm9yLWljb25bX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNjNjI4Mjg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MH0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoU090LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im5wbWktYW5ub3RhdGlvbnMtc2VhcmNoLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vYW5ub3RhdGlvbnNfc2VhcmNoX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL2Fubm90YXRpb25zX3NlYXJjaF9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sbnVsbCx7cmVnZXhGaWx0ZXJWYWx1ZTpbe3R5cGU6Ul99XSxvblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2U6W3t0eXBlOkVffV0saXNSZWdleEZpbHRlclZhbGlkOlt7dHlwZTpBXyxhcmdzOlsiY2xhc3MudmFsaWQiXX0se3R5cGU6Ul99XX0pO2NsYXNzIERPdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JlPXQsdGhpcy5hbm5vdGF0aW9uc0ZpbHRlciQ9dGhpcy5zdG9yZS5zZWxlY3QoUXZ0KSx0aGlzLmlzQW5ub3RhdGlvbnNGaWx0ZXJWYWxpZCQ9dGhpcy5hbm5vdGF0aW9uc0ZpbHRlciQucGlwZShWdCgodD0+e3RyeXtyZXR1cm4gbmV3IFJlZ0V4cCh0KSwhMH1jYXRjaCh0KXtyZXR1cm4hMX19KSkpfWZpbHRlckNoYW5nZSh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKHZ2dCh7cmVnZXg6dH0pKX19ZnVuY3Rpb24gUk90KHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7eGYoMCksQ2YoMSwiYnV0dG9uIiw1KSxSZigiY2xpY2siLChmdW5jdGlvbiBlKCl7UGkodCk7Y29uc3Qgbj16ZigpO3JldHVybiBuLm9uRmxhZ0Fubm90YXRpb25zLmVtaXQobi5zZWxlY3RlZEFubm90YXRpb25zKX0pKSx2ZigyLCJtYXQtaWNvbiIsNiksTWYoKSxDZigzLCJidXR0b24iLDcpLFJmKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtQaSh0KTtjb25zdCBuPXpmKCk7cmV0dXJuIG4ub25IaWRlQW5ub3RhdGlvbnMuZW1pdChuLnNlbGVjdGVkQW5ub3RhdGlvbnMpfSkpLHZmKDQsIm1hdC1pY29uIiw4KSxNZigpLE9mKCl9aWYoMiZ0KXtjb25zdCB0PXpmKCk7RGMoMSksYmYoImRpc2FibGVkIiwwPT09dC5zZWxlY3RlZEFubm90YXRpb25zLmxlbmd0aCksRGMoMiksYmYoImRpc2FibGVkIiwwPT09dC5zZWxlY3RlZEFubm90YXRpb25zLmxlbmd0aCl9fWZ1bmN0aW9uIEVPdCh0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO3hmKDApLENmKDEsIm1hdC1zbGlkZS10b2dnbGUiLDkpLFJmKCJjaGFuZ2UiLChmdW5jdGlvbiBlKCl7UGkodCk7cmV0dXJuIHpmKCkub25Ub2dnbGVTaG93Q291bnRzLmVtaXQoKX0pKSxQdSgyLCIgU2FtcGxlIENvdW50ICIpLE1mKCksQ2YoMywibWF0LXNsaWRlLXRvZ2dsZSIsMTApLFJmKCJjaGFuZ2UiLChmdW5jdGlvbiBlKCl7UGkodCk7cmV0dXJuIHpmKCkub25Ub2dnbGVTaG93SGlkZGVuLmVtaXQoKX0pKSxQdSg0LCIgU2hvdyBIaWRkZW4gIiksTWYoKSx2Zig1LCJucG1pLWFubm90YXRpb25zLXNlYXJjaCIpLE9mKCl9aWYoMiZ0KXtjb25zdCB0PXpmKCk7RGMoMSksYmYoImNoZWNrZWQiLHQuc2hvd0NvdW50cyksRGMoMiksYmYoImNoZWNrZWQiLHQuc2hvd0hpZGRlbil9fURPdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RE90KShnZihpUykpfSxET3QuybVjbXA9c28oe3R5cGU6RE90LHNlbGVjdG9yczpbWyJucG1pLWFubm90YXRpb25zLXNlYXJjaCJdXSxkZWNsczozLHZhcnM6Nixjb25zdHM6W1szLCJyZWdleEZpbHRlclZhbHVlIiwiaXNSZWdleEZpbHRlclZhbGlkIiwib25SZWdleEZpbHRlclZhbHVlQ2hhbmdlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJucG1pLWFubm90YXRpb25zLXNlYXJjaC1jb21wb25lbnQiLDApLFJmKCJvblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLmZpbHRlckNoYW5nZShlKX0pKSxfeSgxLCJhc3luYyIpLF95KDIsImFzeW5jIiksTWYoKSksMiZlJiZiZigicmVnZXhGaWx0ZXJWYWx1ZSIsQ3koMSwyLG4uYW5ub3RhdGlvbnNGaWx0ZXIkKSkoImlzUmVnZXhGaWx0ZXJWYWxpZCIsQ3koMiw0LG4uaXNBbm5vdGF0aW9uc0ZpbHRlclZhbGlkJCkpfSxkaXJlY3RpdmVzOltTT3RdLHBpcGVzOltWdl0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihET3QsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1hbm5vdGF0aW9ucy1zZWFyY2giLHRlbXBsYXRlOidcbiAgICA8bnBtaS1hbm5vdGF0aW9ucy1zZWFyY2gtY29tcG9uZW50XG4gICAgICBbcmVnZXhGaWx0ZXJWYWx1ZV09ImFubm90YXRpb25zRmlsdGVyJCB8IGFzeW5jIlxuICAgICAgW2lzUmVnZXhGaWx0ZXJWYWxpZF09ImlzQW5ub3RhdGlvbnNGaWx0ZXJWYWxpZCQgfCBhc3luYyJcbiAgICAgIChvblJlZ2V4RmlsdGVyVmFsdWVDaGFuZ2UpPSJmaWx0ZXJDaGFuZ2UoJGV2ZW50KSJcbiAgICA+PC9ucG1pLWFubm90YXRpb25zLXNlYXJjaC1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfV19KSxudWxsKTtjbGFzcyBBT3R7Y29uc3RydWN0b3IoKXt0aGlzLm9uRmxhZ0Fubm90YXRpb25zPW5ldyBTeSx0aGlzLm9uSGlkZUFubm90YXRpb25zPW5ldyBTeSx0aGlzLm9uVG9nZ2xlRXhwYW5kZWQ9bmV3IFN5LHRoaXMub25Ub2dnbGVTaG93Q291bnRzPW5ldyBTeSx0aGlzLm9uVG9nZ2xlU2hvd0hpZGRlbj1uZXcgU3l9fUFPdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8QU90KX0sQU90Lsm1Y21wPXNvKHt0eXBlOkFPdCxzZWxlY3RvcnM6W1sibnBtaS1hbm5vdGF0aW9ucy1saXN0LXRvb2xiYXItY29tcG9uZW50Il1dLGlucHV0czp7bnVtQW5ub3RhdGlvbnM6Im51bUFubm90YXRpb25zIixleHBhbmRlZDoiZXhwYW5kZWQiLHNlbGVjdGVkQW5ub3RhdGlvbnM6InNlbGVjdGVkQW5ub3RhdGlvbnMiLGFubm90YXRpb25zRXhwYW5kZWQ6ImFubm90YXRpb25zRXhwYW5kZWQiLHNob3dDb3VudHM6InNob3dDb3VudHMiLHNob3dIaWRkZW46InNob3dIaWRkZW4ifSxvdXRwdXRzOntvbkZsYWdBbm5vdGF0aW9uczoib25GbGFnQW5ub3RhdGlvbnMiLG9uSGlkZUFubm90YXRpb25zOiJvbkhpZGVBbm5vdGF0aW9ucyIsb25Ub2dnbGVFeHBhbmRlZDoib25Ub2dnbGVFeHBhbmRlZCIsb25Ub2dnbGVTaG93Q291bnRzOiJvblRvZ2dsZVNob3dDb3VudHMiLG9uVG9nZ2xlU2hvd0hpZGRlbjoib25Ub2dnbGVTaG93SGlkZGVuIn0sZGVjbHM6Nyx2YXJzOjQsY29uc3RzOmZ1bmN0aW9uKCl7bGV0IHQsZSxuO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlKXt0PWdvb2cuZ2V0TXNnKCJIaWRlcy9TaG93cyB0aGUgQW5ub3RhdGlvbnMgTGlzdCIpfWVsc2UgdD0kbG9jYWxpemVgOkxhYmVsIGZvciBhIGJ1dHRvbiB0aGF0IGhpZGVzL3Nob3dzIHRoZSBhbm5vdGF0aW9ucyBsaXN0LuKQn2IzNjAzYmEzM2U1MzA4ZGQ4YzVlODA1ZTUwOGIyZjcyMzNkZjg5ZDTikJ83MzM2Mzc0NDEzMDU2MzQyNDkyOkhpZGVzL1Nob3dzIHRoZSBBbm5vdGF0aW9ucyBMaXN0YDtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZSl7ZT1nb29nLmdldE1zZygiRmxhZyBTZWxlY3RlZCBBbm5vdGF0aW9ucyIpfWVsc2UgZT0kbG9jYWxpemVgOkxhYmVsIGZvciBhIGJ1dHRvbiB0aGF0IGZsYWdzIHNlbGVjdGVkIGFubm90YXRpb25zLuKQnzU2OTJhZDg4MzEwMzhhOTBjNTg2M2ExZTlhZGY5NzQ4Y2FjM2NhZDjikJ8yMjQ0MDk5ODkxMzEzMzM2NTk1OkZsYWcgU2VsZWN0ZWQgQW5ub3RhdGlvbnNgO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlKXtuPWdvb2cuZ2V0TXNnKCJIaWRlIFNlbGVjdGVkIEFubm90YXRpb25zIil9ZWxzZSBuPSRsb2NhbGl6ZWA6TGFiZWwgZm9yIGEgYnV0dG9uIHRoYXQgaGlkZXMgc2VsZWN0ZWQgYW5ub3RhdGlvbnMu4pCfMDM0MmNkYjMzNThmYThlM2ZhMjcyMjBhODI1OGE3Mjg3NDMwYjcwZuKQnzU0NjI4MzIzOTEwOTIwODc0ODU6SGlkZSBTZWxlY3RlZCBBbm5vdGF0aW9uc2A7cmV0dXJuW1sxLCJhbm5vdGF0aW9ucy10aXRsZS1jb250YWluZXIiXSxbMSwiYW5ub3RhdGlvbnMtdGl0bGUiXSxbNCwibmdJZiJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsdCwxLCJleHBhbmQtYnV0dG9uIiwzLCJjbGljayJdLFszLCJzdmdJY29uIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJhcmlhLWxhYmVsIixlLCJ0aXRsZSIsIkZsYWdnaW5nIGFubm90YXRpb25zIGFkZHMgdGhlbSB0byB5b3VyIGludmVzdGlnYXRpb24gcmVzdWx0cywgd2hpY2ggY2FuIGxhdGVyIGJlIGV4cG9ydGVkLiIsMywiZGlzYWJsZWQiLCJjbGljayJdLFsic3ZnSWNvbiIsImZsYWdfMjRweCJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsbiwidGl0bGUiLCJSZW1vdmluZyBub24tY3JpdGljYWwgYW5ub3RhdGlvbnMgdW5jbHV0dGVycyB0aGUgdmlldy4gUmVtb3ZlZCBhbm5vdGF0aW9ucyBhcmUgcmVtb3ZlZCBmcm9tIGFsbCB2aXN1YWxpemF0aW9ucy4iLDMsImRpc2FibGVkIiwiY2xpY2siXSxbInN2Z0ljb24iLCJ2aXNpYmlsaXR5X29mZl8yNHB4Il0sWyJ0aXRsZSIsIkhpZGVzIGFuZCBzaG93cyB0aGUgc2FtcGxlIGNvdW50IHdoZXJlIGFwcGxpY2FibGUgKGhvdyBtYW55IHNhbXBsZXMgYmVsb25nIHRvIGEgY2F0ZWdvcnkpLiIsMSwic2hvdy10b2dnbGUiLDMsImNoZWNrZWQiLCJjaGFuZ2UiXSxbInRpdGxlIiwiSGlkZXMgYW5kIHNob3dzIGhpZGRlbiBhbm5vdGF0aW9ucyBpbiBhbGwgdmlzdWFsaXphdGlvbnMuIiwxLCJzaG93LXRvZ2dsZSIsMywiY2hlY2tlZCIsImNoYW5nZSJdXX0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKENmKDAsImRpdiIsMCksQ2YoMSwiaDMiLDEpLFB1KDIpLE1mKCksSG0oMyxST3QsNSwyLCJuZy1jb250YWluZXIiLDIpLE1mKCksSG0oNCxFT3QsNiwyLCJuZy1jb250YWluZXIiLDIpLENmKDUsImJ1dHRvbiIsMyksUmYoImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uVG9nZ2xlRXhwYW5kZWQuZW1pdCgpfSkpLHZmKDYsIm1hdC1pY29uIiw0KSxNZigpKSwyJmUmJihEYygyKSxrdSgiQW5ub3RhdGlvbnMgKCIsbi5udW1Bbm5vdGF0aW9ucywiKSIpLERjKDEpLGJmKCJuZ0lmIixuLmV4cGFuZGVkKSxEYygxKSxiZigibmdJZiIsbi5leHBhbmRlZCksRGMoMiksYmYoInN2Z0ljb24iLG4uZXhwYW5kZWQ/ImV4cGFuZF9sZXNzXzI0cHgiOiJleHBhbmRfbW9yZV8yNHB4IikpfSxkaXJlY3RpdmVzOltQdixOTCxNcSx2T3QsRE90XSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztwYWRkaW5nOjAgMTZweDt3aWR0aDoxMDAlfS5hbm5vdGF0aW9ucy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmU7Zm9udC1zaXplOi45ZW07Zm9udC13ZWlnaHQ6NTAwO3BhZGRpbmctcmlnaHQ6MTBweH0uYW5ub3RhdGlvbnMtdGl0bGUtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDpub3dyYXA7ZmxleDoxIDE7aGVpZ2h0OjQycHh9LnNob3ctdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6LjllbTttYXJnaW4tcmlnaHQ6LjhlbX0nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoQU90LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im5wbWktYW5ub3RhdGlvbnMtbGlzdC10b29sYmFyLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vYW5ub3RhdGlvbnNfbGlzdF90b29sYmFyX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL2Fubm90YXRpb25zX2xpc3RfdG9vbGJhcl9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sbnVsbCx7bnVtQW5ub3RhdGlvbnM6W3t0eXBlOlJffV0sZXhwYW5kZWQ6W3t0eXBlOlJffV0sc2VsZWN0ZWRBbm5vdGF0aW9uczpbe3R5cGU6Ul99XSxhbm5vdGF0aW9uc0V4cGFuZGVkOlt7dHlwZTpSX31dLHNob3dDb3VudHM6W3t0eXBlOlJffV0sc2hvd0hpZGRlbjpbe3R5cGU6Ul99XSxvbkZsYWdBbm5vdGF0aW9uczpbe3R5cGU6RV99XSxvbkhpZGVBbm5vdGF0aW9uczpbe3R5cGU6RV99XSxvblRvZ2dsZUV4cGFuZGVkOlt7dHlwZTpFX31dLG9uVG9nZ2xlU2hvd0NvdW50czpbe3R5cGU6RV99XSxvblRvZ2dsZVNob3dIaWRkZW46W3t0eXBlOkVffV19KTtjbGFzcyBUT3R7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMuc2VsZWN0ZWRBbm5vdGF0aW9ucyQ9dGhpcy5zdG9yZS5zZWxlY3QoWHZ0KSx0aGlzLmFubm90YXRpb25zRXhwYW5kZWQkPXRoaXMuc3RvcmUuc2VsZWN0KGl4dCksdGhpcy5zaG93Q291bnRzJD10aGlzLnN0b3JlLnNlbGVjdChyeHQpLHRoaXMuc2hvd0hpZGRlbiQ9dGhpcy5zdG9yZS5zZWxlY3Qoc3h0KSx0aGlzLmFubm90YXRpb25zRmlsdGVyJD10aGlzLnN0b3JlLnNlbGVjdChRdnQpLHRoaXMuaXNBbm5vdGF0aW9uc0ZpbHRlclZhbGlkJD10aGlzLmFubm90YXRpb25zRmlsdGVyJC5waXBlKFZ0KCh0PT57dHJ5e3JldHVybiBCb29sZWFuKG5ldyBSZWdFeHAodCkpfWNhdGNoKHQpe3JldHVybiExfX0pKSl9ZmlsdGVyQ2hhbmdlKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2godnZ0KHtyZWdleDp0fSkpfWZsYWdBbm5vdGF0aW9ucyh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKEN2dCh7YW5ub3RhdGlvbnM6dH0pKX1oaWRlQW5ub3RhdGlvbnModCl7dGhpcy5zdG9yZS5kaXNwYXRjaChNdnQoe2Fubm90YXRpb25zOnR9KSl9dG9nZ2xlRXhwYW5kZWQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKFJ2dCgpKX10b2dnbGVTaG93Q291bnRzKCl7dGhpcy5zdG9yZS5kaXNwYXRjaChBdnQoKSl9dG9nZ2xlU2hvd0hpZGRlbigpe3RoaXMuc3RvcmUuZGlzcGF0Y2goVHZ0KCkpfX1UT3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFRPdCkoZ2YoaVMpKX0sVE90Lsm1Y21wPXNvKHt0eXBlOlRPdCxzZWxlY3RvcnM6W1sibnBtaS1hbm5vdGF0aW9ucy1saXN0LXRvb2xiYXIiXV0saW5wdXRzOntudW1Bbm5vdGF0aW9uczoibnVtQW5ub3RhdGlvbnMiLGV4cGFuZGVkOiJleHBhbmRlZCJ9LGRlY2xzOjUsdmFyczoxNCxjb25zdHM6W1szLCJudW1Bbm5vdGF0aW9ucyIsImV4cGFuZGVkIiwic2VsZWN0ZWRBbm5vdGF0aW9ucyIsImFubm90YXRpb25zRXhwYW5kZWQiLCJzaG93Q291bnRzIiwic2hvd0hpZGRlbiIsIm9uRmxhZ0Fubm90YXRpb25zIiwib25IaWRlQW5ub3RhdGlvbnMiLCJvblRvZ2dsZUV4cGFuZGVkIiwib25Ub2dnbGVTaG93Q291bnRzIiwib25Ub2dnbGVTaG93SGlkZGVuIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJucG1pLWFubm90YXRpb25zLWxpc3QtdG9vbGJhci1jb21wb25lbnQiLDApLFJmKCJvbkZsYWdBbm5vdGF0aW9ucyIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uZmxhZ0Fubm90YXRpb25zKGUpfSkpKCJvbkhpZGVBbm5vdGF0aW9ucyIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uaGlkZUFubm90YXRpb25zKGUpfSkpKCJvblRvZ2dsZUV4cGFuZGVkIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLnRvZ2dsZUV4cGFuZGVkKCl9KSkoIm9uVG9nZ2xlU2hvd0NvdW50cyIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi50b2dnbGVTaG93Q291bnRzKCl9KSkoIm9uVG9nZ2xlU2hvd0hpZGRlbiIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi50b2dnbGVTaG93SGlkZGVuKCl9KSksX3koMSwiYXN5bmMiKSxfeSgyLCJhc3luYyIpLF95KDMsImFzeW5jIiksX3koNCwiYXN5bmMiKSxNZigpKSwyJmUmJmJmKCJudW1Bbm5vdGF0aW9ucyIsbi5udW1Bbm5vdGF0aW9ucykoImV4cGFuZGVkIixuLmV4cGFuZGVkKSgic2VsZWN0ZWRBbm5vdGF0aW9ucyIsQ3koMSw2LG4uc2VsZWN0ZWRBbm5vdGF0aW9ucyQpKSgiYW5ub3RhdGlvbnNFeHBhbmRlZCIsQ3koMiw4LG4uYW5ub3RhdGlvbnNFeHBhbmRlZCQpKSgic2hvd0NvdW50cyIsQ3koMywxMCxuLnNob3dDb3VudHMkKSkoInNob3dIaWRkZW4iLEN5KDQsMTIsbi5zaG93SGlkZGVuJCkpfSxkaXJlY3RpdmVzOltBT3RdLHBpcGVzOltWdl0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihUT3QsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1hbm5vdGF0aW9ucy1saXN0LXRvb2xiYXIiLHRlbXBsYXRlOidcbiAgICA8bnBtaS1hbm5vdGF0aW9ucy1saXN0LXRvb2xiYXItY29tcG9uZW50XG4gICAgICBbbnVtQW5ub3RhdGlvbnNdPSJudW1Bbm5vdGF0aW9ucyJcbiAgICAgIFtleHBhbmRlZF09ImV4cGFuZGVkIlxuICAgICAgW3NlbGVjdGVkQW5ub3RhdGlvbnNdPSJzZWxlY3RlZEFubm90YXRpb25zJCB8IGFzeW5jIlxuICAgICAgW2Fubm90YXRpb25zRXhwYW5kZWRdPSJhbm5vdGF0aW9uc0V4cGFuZGVkJCB8IGFzeW5jIlxuICAgICAgW3Nob3dDb3VudHNdPSJzaG93Q291bnRzJCB8IGFzeW5jIlxuICAgICAgW3Nob3dIaWRkZW5dPSJzaG93SGlkZGVuJCB8IGFzeW5jIlxuICAgICAgKG9uRmxhZ0Fubm90YXRpb25zKT0iZmxhZ0Fubm90YXRpb25zKCRldmVudCkiXG4gICAgICAob25IaWRlQW5ub3RhdGlvbnMpPSJoaWRlQW5ub3RhdGlvbnMoJGV2ZW50KSJcbiAgICAgIChvblRvZ2dsZUV4cGFuZGVkKT0idG9nZ2xlRXhwYW5kZWQoKSJcbiAgICAgIChvblRvZ2dsZVNob3dDb3VudHMpPSJ0b2dnbGVTaG93Q291bnRzKCkiXG4gICAgICAob25Ub2dnbGVTaG93SGlkZGVuKT0idG9nZ2xlU2hvd0hpZGRlbigpIlxuICAgID48L25wbWktYW5ub3RhdGlvbnMtbGlzdC10b29sYmFyLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aVN9XX0pLHtudW1Bbm5vdGF0aW9uczpbe3R5cGU6Ul99XSxleHBhbmRlZDpbe3R5cGU6Ul99XX0pO2NvbnN0IE5PdD1bImdseXBoIl07Y2xhc3Mgek90e25nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuc3ZnPW44KHRoaXMuZ2x5cGhTVkcubmF0aXZlRWxlbWVudCksdGhpcy5tYWluQ29udGFpbmVyPXRoaXMuc3ZnLmFwcGVuZCgiZyIpLHRoaXMuZHJhdygpfWRyYXcoKXsiY2lyY2xlIj09dGhpcy5zaGFwZT90aGlzLm1haW5Db250YWluZXIuYXBwZW5kKCJjaXJjbGUiKS5hdHRyKCJmaWxsIix0aGlzLmNvbG9yKS5hdHRyKCJzdHJva2UiLCJibGFjayIpLmF0dHIoImN4Iiw1KS5hdHRyKCJjeSIsNSkuYXR0cigiciIsNSk6ImJhciI9PXRoaXMuc2hhcGU/dGhpcy5tYWluQ29udGFpbmVyLmFwcGVuZCgicmVjdCIpLmF0dHIoImZpbGwiLHRoaXMuY29sb3IpLmF0dHIoIngiLDApLmF0dHIoInkiLDApLmF0dHIoIndpZHRoIiwxMCkuYXR0cigiaGVpZ2h0IiwxMCk6InJ1bkluZGljYXRvciI9PXRoaXMuc2hhcGUmJnRoaXMubWFpbkNvbnRhaW5lci5hcHBlbmQoImciKS5hcHBlbmQoInBhdGgiKS5hdHRyKCJmaWxsIix0aGlzLmNvbG9yKS5hdHRyKCJzdHJva2UiLCJibGFjayIpLmF0dHIoImQiLCJNIDIgMCBMIDEwIDAgTCA3IDUgTCAxMCAxMCBMIDIgMTAgWiIpfX16T3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHpPdCl9LHpPdC7JtWNtcD1zbyh7dHlwZTp6T3Qsc2VsZWN0b3JzOltbIm5wbWktbGVnZW5kLWVsZW1lbnQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJlZ5KE5PdCw3LEtoKSwyJmUpe2xldCB0O0J5KHQ9VXkoKSkmJihuLmdseXBoU1ZHPXQuZmlyc3QpfX0saW5wdXRzOnt0ZXh0OiJ0ZXh0Iixjb2xvcjoiY29sb3IiLHNoYXBlOiJzaGFwZSJ9LGRlY2xzOjQsdmFyczoxLGNvbnN0czpbWzEsImdseXBoIl0sWyJnbHlwaCIsIiJdLFsxLCJsZWdlbmQtZWxlbWVudC10aXRsZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYob2EoKSx2ZigwLCJzdmciLDAsMSksYWEoKSxDZigyLCJkaXYiLDIpLFB1KDMpLE1mKCkpLDImZSYmKERjKDMpLHd1KG4udGV4dCkpfSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7cGFkZGluZy1yaWdodDoxMHB4fS5sZWdlbmQtZWxlbWVudC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOi44ZW07cGFkZGluZy1sZWZ0OjVweH0uZ2x5cGhbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwcHg7aGVpZ2h0OjEwcHh9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHpPdCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJucG1pLWxlZ2VuZC1lbGVtZW50Iix0ZW1wbGF0ZVVybDoiLi9sZWdlbmRfZWxlbWVudF9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9sZWdlbmRfZWxlbWVudF9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sbnVsbCx7dGV4dDpbe3R5cGU6Ul99XSxjb2xvcjpbe3R5cGU6Ul99XSxzaGFwZTpbe3R5cGU6Ul99XSxnbHlwaFNWRzpbe3R5cGU6YXIsYXJnczpbImdseXBoIix7c3RhdGljOiEwLHJlYWQ6S2h9XX1dfSk7Y2xhc3MgSU90e31mdW5jdGlvbiBIT3QodCxlKXtpZigxJnQmJnZmKDAsIm1hdC1pY29uIiw4KSwyJnQpe2NvbnN0IHQ9emYoMik7YmYoInN2Z0ljb24iLHQuc29ydC5vcmRlcj09PXQuU29ydE9yZGVyLkRFU0NFTkRJTkc/ImFycm93X2Rvd253YXJkXzI0cHgiOiJhcnJvd191cHdhcmRfMjRweCIpKCJuZ0NsYXNzIix0LnNvcnQub3JkZXI9PT10LlNvcnRPcmRlci5ERVNDRU5ESU5HPyJkb3duLWljb24iOiJ1cC1pY29uIil9fWZ1bmN0aW9uIEZPdCh0LGUpe2lmKDEmdCl7Y29uc3QgdD13ZigpO0NmKDAsImRpdiIsNCksQ2YoMSwiZGl2Iiw1KSxDZigyLCJkaXYiLDYpLFJmKCJjbGljayIsKGZ1bmN0aW9uIGUoKXtjb25zdCBuPVBpKHQpLiRpbXBsaWNpdDtyZXR1cm4gemYoKS5vbkNoYW5nZVNvcnQuZW1pdChuKX0pKSxQdSgzKSxIbSg0LEhPdCwxLDIsIm1hdC1pY29uIiw3KSxNZigpLE1mKCksTWYoKX1pZigyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj16ZigpO0RjKDMpLGt1KCIgIixuLnN0cmlwTWV0cmljKHQpLCIgIiksRGMoMSksYmYoIm5nSWYiLHQ9PT1uLnNvcnQubWV0cmljKX19SU90Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxJT3QpfSxJT3QuybVjbXA9c28oe3R5cGU6SU90LHNlbGVjdG9yczpbWyJucG1pLWFubm90YXRpb25zLWxpc3QtbGVnZW5kIl1dLGRlY2xzOjQsdmFyczowLGNvbnN0czpbWyJ0ZXh0IiwicnVuIGluZGljYXRvciIsImNvbG9yIiwicmdiKDAsMCwwKSIsInNoYXBlIiwicnVuSW5kaWNhdG9yIl0sWyJ0ZXh0IiwicG9zaXRpdmUgY29ycmVsYXRpb24iLCJjb2xvciIsInJnYigxMDksIDE3NCwgMjEzKSIsInNoYXBlIiwiYmFyIl0sWyJ0ZXh0IiwibmVnYXRpdmUgY29ycmVsYXRpb24iLCJjb2xvciIsInJnYigyNDksIDEwNSwgNzYpIiwic2hhcGUiLCJiYXIiXSxbInRleHQiLCJzYW1wbGUgY291bnQiLCJjb2xvciIsInJnYigxNTEsIDE1MSwgMTUxKSIsInNoYXBlIiwiY2lyY2xlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJih2ZigwLCJucG1pLWxlZ2VuZC1lbGVtZW50IiwwKSx2ZigxLCJucG1pLWxlZ2VuZC1lbGVtZW50IiwxKSx2ZigyLCJucG1pLWxlZ2VuZC1lbGVtZW50IiwyKSx2ZigzLCJucG1pLWxlZ2VuZC1lbGVtZW50IiwzKSl9LGRpcmVjdGl2ZXM6W3pPdF0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cGFkZGluZzowIDE2cHh9Il19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKElPdCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJucG1pLWFubm90YXRpb25zLWxpc3QtbGVnZW5kIix0ZW1wbGF0ZVVybDoiLi9sZWdlbmRfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbIi4vbGVnZW5kX2NvbXBvbmVudC5jc3MiXX1dfV0sbnVsbCxudWxsKTtjbGFzcyBMT3R7Y29uc3RydWN0b3IoKXt0aGlzLm9uQ2hhbmdlU29ydD1uZXcgU3ksdGhpcy5vbkFsbEFubm90YXRpb25zVG9nZ2xlZD1uZXcgU3ksdGhpcy5Tb3J0T3JkZXI9VXZ0fXN0cmlwTWV0cmljKHQpe3JldHVybiB6X3QodCl9fUxPdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TE90KX0sTE90Lsm1Y21wPXNvKHt0eXBlOkxPdCxzZWxlY3RvcnM6W1sibnBtaS1hbm5vdGF0aW9ucy1saXN0LWhlYWRlci1jb21wb25lbnQiXV0saW5wdXRzOntudW1Bbm5vdGF0aW9uczoibnVtQW5ub3RhdGlvbnMiLHNlbGVjdGVkQW5ub3RhdGlvbnM6InNlbGVjdGVkQW5ub3RhdGlvbnMiLGFjdGl2ZU1ldHJpY3M6ImFjdGl2ZU1ldHJpY3MiLHNvcnQ6InNvcnQifSxvdXRwdXRzOntvbkNoYW5nZVNvcnQ6Im9uQ2hhbmdlU29ydCIsb25BbGxBbm5vdGF0aW9uc1RvZ2dsZWQ6Im9uQWxsQW5ub3RhdGlvbnNUb2dnbGVkIn0sZGVjbHM6NCx2YXJzOjIsY29uc3RzOltbMSwidG9nZ2xlLWFsbC1jb250YWluZXIiXSxbMywiY2hlY2tlZCIsImNoYW5nZSJdLFsxLCJhbm5vdGF0aW9ucy1oZWFkZXItY29udGFpbmVycyJdLFsiY2xhc3MiLCJoZWFkZXItY29sdW1uIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiaGVhZGVyLWNvbHVtbiJdLFsxLCJoZWFkZXItY29udGFpbmVyIl0sWyJ0YWJpbmRleCIsIjAiLCJyb2xlIiwiYnV0dG9uIiwidGl0bGUiLCJDaGFuZ2UgdGhlIHNvcnQgYnkgY2xpY2tpbmcgYW55IG9mIHRoZSBtZXRyaWNzLiIsMSwiaGVhZGVyLWNsaWNrYWJsZSIsMywiY2xpY2siXSxbImNsYXNzIiwic29ydC1pY29uIiwzLCJzdmdJY29uIiwibmdDbGFzcyIsNCwibmdJZiJdLFsxLCJzb3J0LWljb24iLDMsInN2Z0ljb24iLCJuZ0NsYXNzIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJkaXYiLDApLENmKDEsIm1hdC1jaGVja2JveCIsMSksUmYoImNoYW5nZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ub25BbGxBbm5vdGF0aW9uc1RvZ2dsZWQuZW1pdChlLmNoZWNrZWQpfSkpLE1mKCksTWYoKSxDZigyLCJkaXYiLDIpLEhtKDMsRk90LDUsMiwiZGl2IiwzKSxNZigpKSwyJmUmJihEYygxKSxiZigiY2hlY2tlZCIsbi5zZWxlY3RlZEFubm90YXRpb25zLmxlbmd0aD09PW4ubnVtQW5ub3RhdGlvbnMpLERjKDIpLGJmKCJuZ0Zvck9mIixuLmFjdGl2ZU1ldHJpY3MpKX0sZGlyZWN0aXZlczpbYloseHYsUHYsTXEsQ3ZdLHN0eWxlczpbJy5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWJhZGdlLXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtYmFkZ2UtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHh9Lm1hdC1oMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaGVhZGxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTZweC8yOHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN1YmhlYWRpbmctMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZ1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDAgMTJweH0ubWF0LXNtYWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXB0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxMnB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktNFtfbmdjb250ZW50LSVDT01QJV17Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjA1ZW07bWFyZ2luOjAgMCA1NnB4fS5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0zW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA1NnB4LzU2cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAyZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCA0NXB4LzQ4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0wLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMzRweC80MHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCA2NHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXJhaXNlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmxhdC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZhYltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbWluaS1mYWJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyMHB4fS5tYXQtY2FyZC1zdWJ0aXRsZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FyZC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGVja2JveC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNoaXBbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE4cHh9Lm1hdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvb3Rlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1jYWxlbmRhci1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICB0aFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo0MDB9Lm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4xMjU7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17dG9wOi0wLjg0Mzc1ZW07cGFkZGluZy10b3A6Ljg0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6NzUlO21hcmdpbi10b3A6LjY2NjY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjQzNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4yODEyNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjA5Mzc1ZW07bWFyZ2luLXRvcDotMC41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuODQzNzVlbTttYXJnaW4tdG9wOi0wLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNDMzMzMzJX0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMiksIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fWlucHV0Lm1hdC1pbnB1dC1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXBhZ2luYXRvcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHh9Lm1hdC1yYWRpby1idXR0b25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtfS5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6bm9ybWFsfS5tYXQtc3RlcC1sYWJlbC1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10YWItZ3JvdXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRhYi1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGFiLWxpbmtbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg2W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXBbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4fS5tYXQtdG9vbHRpcC1oYW5kc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxNHB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4fS5tYXQtb3B0Z3JvdXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtc2ltcGxlLXNuYWNrYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHh9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV06bm90KDplbXB0eSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OnZpc2libGV9Lm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNkay12aXN1YWxseS1oaWRkZW5bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdXRsaW5lOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0sIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV06ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktcGFuZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO29wYWNpdHk6MH0uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV0sIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3hbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxcHg7bWluLWhlaWdodDoxcHh9LmNkay1nbG9iYWwtc2Nyb2xsYmxvY2tbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplW19uZ2NvbnRlbnQtJUNPTVAlXXtyZXNpemU6bm9uZX10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZy1maXJlZm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHt9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOi13ZWJraXQtYXV0b2ZpbGwpe2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zfS5tYXQtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfVtfbmdob3N0LSVDT01QJV17Ym9yZGVyLWJvdHRvbToycHggc29saWQgI2ViZWJlYjtkaXNwbGF5OmZsZXg7aGVpZ2h0OjI4cHg7YWxpZ24taXRlbXM6ZmxleC1lbmQ7bWFyZ2luLXRvcDo4cHh9LmFubm90YXRpb25zLWhlYWRlci1jb250YWluZXJzW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7Zm9udC1zaXplOi45ZW07Zm9udC13ZWlnaHQ6NTAwO2ZsZXgtZ3JvdzoxfS5oZWFkZXItY29sdW1uW19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4OjEgMX0uaGVhZGVyLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmUtYmxvY2t9LmhlYWRlci1jbGlja2FibGVbX25nY29udGVudC0lQ09NUCVde2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6ZmxleDtvdXRsaW5lOm5vbmV9LnRvZ2dsZS1hbGwtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tbGVmdDoxMHB4O3dpZHRoOjkwcHh9LnNvcnQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjE2cHh9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKExPdCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJucG1pLWFubm90YXRpb25zLWxpc3QtaGVhZGVyLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vaGVhZGVyX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL2hlYWRlcl9jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sbnVsbCx7bnVtQW5ub3RhdGlvbnM6W3t0eXBlOlJffV0sc2VsZWN0ZWRBbm5vdGF0aW9uczpbe3R5cGU6Ul99XSxhY3RpdmVNZXRyaWNzOlt7dHlwZTpSX31dLHNvcnQ6W3t0eXBlOlJffV0sb25DaGFuZ2VTb3J0Olt7dHlwZTpFX31dLG9uQWxsQW5ub3RhdGlvbnNUb2dnbGVkOlt7dHlwZTpFX31dfSk7Y2xhc3MgQk90e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLnNlbGVjdGVkQW5ub3RhdGlvbnMkPXRoaXMuc3RvcmUuc2VsZWN0KFh2dCksdGhpcy5hbm5vdGF0aW9uU29ydCQ9dGhpcy5zdG9yZS5zZWxlY3Qobnh0KX1jaGFuZ2VTb3J0KHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2goa3Z0KHttZXRyaWM6dH0pKX1hbGxBbm5vdGF0aW9uc1RvZ2dsZWQodCl7dGhpcy5zdG9yZS5kaXNwYXRjaCh5dnQodD97YW5ub3RhdGlvbnM6T2JqZWN0LmtleXModGhpcy5hbm5vdGF0aW9ucyl9Onthbm5vdGF0aW9uczpbXX0pKX19Qk90Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxCT3QpKGdmKGlTKSl9LEJPdC7JtWNtcD1zbyh7dHlwZTpCT3Qsc2VsZWN0b3JzOltbIm5wbWktYW5ub3RhdGlvbnMtbGlzdC1oZWFkZXIiXV0saW5wdXRzOntudW1Bbm5vdGF0aW9uczoibnVtQW5ub3RhdGlvbnMiLGFubm90YXRpb25zOiJhbm5vdGF0aW9ucyIsYWN0aXZlTWV0cmljczoiYWN0aXZlTWV0cmljcyJ9LGRlY2xzOjMsdmFyczo4LGNvbnN0czpbWzMsIm51bUFubm90YXRpb25zIiwic2VsZWN0ZWRBbm5vdGF0aW9ucyIsInNvcnQiLCJhY3RpdmVNZXRyaWNzIiwib25DaGFuZ2VTb3J0Iiwib25BbGxBbm5vdGF0aW9uc1RvZ2dsZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKENmKDAsIm5wbWktYW5ub3RhdGlvbnMtbGlzdC1oZWFkZXItY29tcG9uZW50IiwwKSxSZigib25DaGFuZ2VTb3J0IiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5jaGFuZ2VTb3J0KGUpfSkpKCJvbkFsbEFubm90YXRpb25zVG9nZ2xlZCIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4uYWxsQW5ub3RhdGlvbnNUb2dnbGVkKGUpfSkpLF95KDEsImFzeW5jIiksX3koMiwiYXN5bmMiKSxNZigpKSwyJmUmJmJmKCJudW1Bbm5vdGF0aW9ucyIsbi5udW1Bbm5vdGF0aW9ucykoInNlbGVjdGVkQW5ub3RhdGlvbnMiLEN5KDEsNCxuLnNlbGVjdGVkQW5ub3RhdGlvbnMkKSkoInNvcnQiLEN5KDIsNixuLmFubm90YXRpb25Tb3J0JCkpKCJhY3RpdmVNZXRyaWNzIixuLmFjdGl2ZU1ldHJpY3MpfSxkaXJlY3RpdmVzOltMT3RdLHBpcGVzOltWdl0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihCT3QsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1hbm5vdGF0aW9ucy1saXN0LWhlYWRlciIsdGVtcGxhdGU6J1xuICAgIDxucG1pLWFubm90YXRpb25zLWxpc3QtaGVhZGVyLWNvbXBvbmVudFxuICAgICAgW251bUFubm90YXRpb25zXT0ibnVtQW5ub3RhdGlvbnMiXG4gICAgICBbc2VsZWN0ZWRBbm5vdGF0aW9uc109InNlbGVjdGVkQW5ub3RhdGlvbnMkIHwgYXN5bmMiXG4gICAgICBbc29ydF09ImFubm90YXRpb25Tb3J0JCB8IGFzeW5jIlxuICAgICAgW2FjdGl2ZU1ldHJpY3NdPSJhY3RpdmVNZXRyaWNzIlxuICAgICAgKG9uQ2hhbmdlU29ydCk9ImNoYW5nZVNvcnQoJGV2ZW50KSJcbiAgICAgIChvbkFsbEFubm90YXRpb25zVG9nZ2xlZCk9ImFsbEFubm90YXRpb25zVG9nZ2xlZCgkZXZlbnQpIlxuICAgID48L25wbWktYW5ub3RhdGlvbnMtbGlzdC1oZWFkZXItY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSkse251bUFubm90YXRpb25zOlt7dHlwZTpSX31dLGFubm90YXRpb25zOlt7dHlwZTpSX31dLGFjdGl2ZU1ldHJpY3M6W3t0eXBlOlJffV19KTtjb25zdCBWT3Q9WyJjaGFydCJdLGpPdD1bImhpbnRDbGlwIl07ZnVuY3Rpb24gVU90KHQsZSl7MSZ0JiZ2ZigwLCJtYXQtaWNvbiIsMTIpfWZ1bmN0aW9uIFdPdCh0LGUpezEmdCYmdmYoMCwibWF0LWljb24iLDEzKX1mdW5jdGlvbiBHT3QodCxlKXtpZigxJnQmJnZmKDAsIm1hdC1pY29uIiwxNCksMiZ0KXtjb25zdCB0PXpmKCk7YmYoInN2Z0ljb24iLHQuc29ydC5vcmRlcj09PXQuU29ydE9yZGVyLlNJTUlMQVI/ImFycm93X2Rvd253YXJkXzI0cHgiOiJhcnJvd191cHdhcmRfMjRweCIpKCJuZ0NsYXNzIix0LnNvcnQub3JkZXI9PT10LlNvcnRPcmRlci5TSU1JTEFSPyJkb3duLWljb24iOiJ1cC1pY29uIil9fWNsYXNzIFlPdHtjb25zdHJ1Y3Rvcigpe3RoaXMuc2VsZWN0ZWQ9ITEsdGhpcy5vblNob3dTaW1pbGFyQW5ub3RhdGlvbnM9bmV3IFN5LHRoaXMuU29ydE9yZGVyPVV2dCx0aGlzLndpZHRoPTEwLHRoaXMuY2hhcnRXaWR0aD0xMCx0aGlzLmNoYXJ0SGVpZ2h0PTEwLHRoaXMubWF4RG90UmFkaXVzPTEwLHRoaXMuY291bnREb3RPZmZzZXQ9NzAsdGhpcy5jb3VudFRleHRQYWRkaW5nPTIsdGhpcy5tYXJnaW49e3RvcDowLHJpZ2h0OjAsYm90dG9tOjAsbGVmdDoxMDB9LHRoaXMuc3Ryb2tlQ29sb3I9IiNmZmYiLHRoaXMudGV4dENsYXNzPSJkZWZhdWx0LXRleHQiLHRoaXMucnVucz1bXX1vblJlc2l6ZSh0KXt0aGlzLnJlZHJhdygpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuc3ZnPW44KHRoaXMuYW5ub3RhdGlvbkNvbnRhaW5lci5uYXRpdmVFbGVtZW50KS5zZWxlY3QoInN2ZyIpLHRoaXMueFNjYWxlPSRudCgpLnBhZGRpbmcoMCksdGhpcy55U2NhbGU9JG50KCkucGFkZGluZygwKSx0aGlzLnNpemVTY2FsZT1tb3QoKS5kb21haW4oWzAsMV0pLHRoaXMuY291bnRTaXplU2NhbGU9bW90KCkucmFuZ2UoWzIsdGhpcy5tYXhEb3RSYWRpdXNdKSx0aGlzLm1haW5Db250YWluZXI9dGhpcy5zdmcuYXBwZW5kKCJnIikuYXR0cigidHJhbnNmb3JtIixgdHJhbnNsYXRlKCR7dGhpcy5tYXJnaW4ubGVmdH0sICR7dGhpcy5tYXJnaW4udG9wfSlgKSx0aGlzLmJhcnNHcm91cD10aGlzLm1haW5Db250YWluZXIuYXBwZW5kKCJnIiksdGhpcy5jb3VudERvdHNHcm91cD10aGlzLm1haW5Db250YWluZXIuYXBwZW5kKCJnIiksdGhpcy50ZXh0c0dyb3VwPXRoaXMubWFpbkNvbnRhaW5lci5hcHBlbmQoImciKSx0aGlzLmNvdW50VGV4dHNHcm91cD10aGlzLm1haW5Db250YWluZXIuYXBwZW5kKCJnIiksdGhpcy5ydW5IaW50R3JvdXA9dGhpcy5zdmcuYXBwZW5kKCJnIiksdGhpcy5yZWRyYXcoKX1uZ09uQ2hhbmdlcyh0KXt0aGlzLnN2ZyYmdGhpcy5yZWRyYXcoKX1yZWRyYXcoKXt0aGlzLnNlbGVjdGVkPXRoaXMuc2VsZWN0ZWRBbm5vdGF0aW9ucy5pbmNsdWRlcyh0aGlzLmFubm90YXRpb24pLHRoaXMudXBkYXRlRGltZW5zaW9ucygpLHRoaXMuc2V0VGV4dENsYXNzKCksdGhpcy51cGRhdGVBeGVzKCksdGhpcy5kcmF3KCl9dXBkYXRlRGltZW5zaW9ucygpe2NvbnN0IHQ9bmV3IFNldDt0aGlzLmRhdGEuZm9yRWFjaCgoZT0+e3QuYWRkKGUucnVuKX0pKSx0aGlzLnJ1bnM9Wy4uLnRdLHRoaXMuc3ZnLnN0eWxlKCJoZWlnaHQiLHRoaXMubnVtQWN0aXZlUnVucyp0aGlzLnJ1bkhlaWdodCsicHgiKSx0aGlzLmNoYXJ0SGVpZ2h0PXRoaXMucnVucy5sZW5ndGgqdGhpcy5ydW5IZWlnaHQtdGhpcy5tYXJnaW4udG9wLXRoaXMubWFyZ2luLmJvdHRvbSx0aGlzLndpZHRoPXRoaXMuYW5ub3RhdGlvbkNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRofHwxMCx0aGlzLmNoYXJ0V2lkdGg9dGhpcy53aWR0aC10aGlzLm1hcmdpbi5sZWZ0LXRoaXMubWFyZ2luLnJpZ2h0fXNldFRleHRDbGFzcygpe3RoaXMudGV4dENsYXNzPSJkZWZhdWx0LXRleHQiLHRoaXMuZmxhZ2dlZEFubm90YXRpb25zLmluY2x1ZGVzKHRoaXMuYW5ub3RhdGlvbik/dGhpcy50ZXh0Q2xhc3M9ImZsYWctdGV4dCI6dGhpcy5oaWRkZW5Bbm5vdGF0aW9ucy5pbmNsdWRlcyh0aGlzLmFubm90YXRpb24pJiYodGhpcy50ZXh0Q2xhc3M9ImhpZGRlbi10ZXh0Iil9dXBkYXRlQXhlcygpe3RoaXMueFNjYWxlLnJhbmdlUm91bmQoWzAsdGhpcy5jaGFydFdpZHRoLXRoaXMuY2hhcnRXaWR0aC90aGlzLmFjdGl2ZU1ldHJpY3MubGVuZ3RoXSkuZG9tYWluKHRoaXMuYWN0aXZlTWV0cmljcy5tYXAoKHQ9PnpfdCh0KSkpKSx0aGlzLnlTY2FsZS5yYW5nZVJvdW5kKFswLHRoaXMuY2hhcnRIZWlnaHQtdGhpcy5ydW5IZWlnaHRdKS5kb21haW4odGhpcy5ydW5zKSx0aGlzLnNpemVTY2FsZS5yYW5nZShbMCx0aGlzLmNoYXJ0V2lkdGgvdGhpcy5hY3RpdmVNZXRyaWNzLmxlbmd0aF0pLHRoaXMuY291bnRTaXplU2NhbGUuZG9tYWluKFswLHRoaXMubWF4Q291bnRdKX1kcmF3KCl7dGhpcy5kcmF3UnVuSW5kaWNhdG9ycygpLHRoaXMuZHJhd1J1bkhpbnRUZXh0cygpLHRoaXMuZHJhd0JhcnMoKSx0aGlzLmRyYXdUZXh0cygpLHRoaXMuc2hvd0NvdW50cz8odGhpcy5kcmF3Q291bnREb3RzKCksdGhpcy5kcmF3Q291bnRUZXh0cygpKToodGhpcy5jb3VudERvdHNHcm91cC5zZWxlY3RBbGwoIi5jb3VudC1kb3QiKS5yZW1vdmUoKSx0aGlzLmNvdW50VGV4dHNHcm91cC5zZWxlY3RBbGwoIi5jb3VudC1iYWNrZ3JvdW5kLXRleHQiKS5yZW1vdmUoKSx0aGlzLmNvdW50VGV4dHNHcm91cC5zZWxlY3RBbGwoIi5jb3VudC10ZXh0IikucmVtb3ZlKCkpfWRyYXdSdW5JbmRpY2F0b3JzKCl7bjgodGhpcy5jbGlwUGF0aEVsZW1lbnQubmF0aXZlRWxlbWVudCkuc2VsZWN0KCJyZWN0IikuYXR0cigid2lkdGgiLHRoaXMubWFyZ2luLmxlZnQtMzApLmF0dHIoImhlaWdodCIsdGhpcy5jaGFydEhlaWdodCk7Y29uc3QgdD10aGlzLnJ1bkhpbnRHcm91cC5zZWxlY3RBbGwoIi5oaW50IikuZGF0YSh0aGlzLnJ1bnMpLGU9dC5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwiaGludCIpO2UuYXBwZW5kKCJwYXRoIikuYXR0cigiZCIsIk0gMCAwIEwgMTUgMCBMIDEwIDEwIEwgMTUgMjAgTCAwIDIwIFoiKSxlLm1lcmdlKHQpLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24odCl7cmV0dXJuYHRyYW5zbGF0ZSgxMCwgJHt0aGlzLnlTY2FsZSh0KSs1fSlgfS5iaW5kKHRoaXMpKS5hdHRyKCJmaWxsIixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jb2xvclNjYWxlKHQpfS5iaW5kKHRoaXMpKSx0LmV4aXQoKS5yZW1vdmUoKX1kcmF3UnVuSGludFRleHRzKCl7Y29uc3QgdD10aGlzLnJ1bkhpbnRHcm91cC5zZWxlY3RBbGwoIi5oaW50LXRleHQiKS5kYXRhKHRoaXMucnVucyk7dC5lbnRlcigpLmFwcGVuZCgidGV4dCIpLmF0dHIoIngiLDI1KS5hdHRyKCJmb250LXNpemUiLCIxMHB4IikuYXR0cigiYWxpZ25tZW50LWJhc2VsaW5lIiwibWlkZGxlIikuYXR0cigiY2xpcC1wYXRoIiwidXJsKCNoaW50LWNsaXApIikubWVyZ2UodCkuYXR0cigieSIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueVNjYWxlKHQpKzE1fS5iaW5kKHRoaXMpKS5hdHRyKCJjbGFzcyIsYGhpbnQtdGV4dCAke3RoaXMudGV4dENsYXNzfWApLnRleHQoKHQ9Pnt2YXIgZTtyZXR1cm4obnVsbD09PShlPXRoaXMucnVuSWRUb1J1bnMuZ2V0KHQpKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5uYW1lKXx8IiJ9KSksdC5leGl0KCkucmVtb3ZlKCl9ZHJhd0JhcnMoKXtjb25zdCB0PXRoaXMuYmFyc0dyb3VwLnNlbGVjdEFsbCgiLmJhciIpLmRhdGEodGhpcy5kYXRhKTt0LmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cigiY2xhc3MiLCJiYXIiKS5hdHRyKCJoZWlnaHQiLDIwKS5tZXJnZSh0KS5hdHRyKCJmaWxsIiwodD0+bnVsbD09PXQublBNSVZhbHVlPyIiOnQublBNSVZhbHVlPj0wP0VhdCh0Lm5QTUlWYWx1ZSk6VGF0KC0xKnQublBNSVZhbHVlKSkpLmF0dHIoIngiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnhTY2FsZSh0Lm1ldHJpYyl9LmJpbmQodGhpcykpLmF0dHIoInkiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnlTY2FsZSh0LnJ1bikrNX0uYmluZCh0aGlzKSkuYXR0cigid2lkdGgiLGZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT09dC5uUE1JVmFsdWU/MDp0aGlzLnNpemVTY2FsZShNYXRoLmFicyh0Lm5QTUlWYWx1ZSkpfS5iaW5kKHRoaXMpKSx0LmV4aXQoKS5yZW1vdmUoKX1kcmF3Q291bnREb3RzKCl7Y29uc3QgdD10aGlzLmNvdW50RG90c0dyb3VwLnNlbGVjdEFsbCgiLmNvdW50LWRvdCIpLmRhdGEodGhpcy5kYXRhKTt0LmVudGVyKCkuYXBwZW5kKCJjaXJjbGUiKS5hdHRyKCJjbGFzcyIsImNvdW50LWRvdCIpLmF0dHIoInN0cm9rZSIsImJsYWNrIikubWVyZ2UodCkuYXR0cigiZmlsbCIsZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PT10LmNvdW50VmFsdWU/IiI6QWF0KHQuY291bnRWYWx1ZS90aGlzLm1heENvdW50KX0uYmluZCh0aGlzKSkuYXR0cigiY3giLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnhTY2FsZSh0Lm1ldHJpYykrdGhpcy5jb3VudERvdE9mZnNldH0uYmluZCh0aGlzKSkuYXR0cigiY3kiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnlTY2FsZSh0LnJ1bikrdGhpcy5ydW5IZWlnaHQvMn0uYmluZCh0aGlzKSkuYXR0cigiciIsZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PT10LmNvdW50VmFsdWU/MDp0aGlzLmNvdW50U2l6ZVNjYWxlKHQuY291bnRWYWx1ZSl9LmJpbmQodGhpcykpLHQuZXhpdCgpLnJlbW92ZSgpfWRyYXdUZXh0cygpe2NvbnN0IHQ9dGhpcy50ZXh0c0dyb3VwLnNlbGVjdEFsbCgiLm5wbWktYmFja2dyb3VuZC10ZXh0IikuZGF0YSh0aGlzLmRhdGEpO3QuZW50ZXIoKS5hcHBlbmQoInRleHQiKS5hdHRyKCJjbGFzcyIsIm5wbWktYmFja2dyb3VuZC10ZXh0IikuYXR0cigic3Ryb2tlLXdpZHRoIiwzKS5hdHRyKCJzdHJva2UtbGluZWpvaW4iLCJyb3VuZCIpLmF0dHIoInN0cm9rZSIsdGhpcy5zdHJva2VDb2xvcikuYXR0cigiZm9udC1zaXplIiwiMTNweCIpLmF0dHIoImFsaWdubWVudC1iYXNlbGluZSIsIm1pZGRsZSIpLm1lcmdlKHQpLmF0dHIoIngiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnhTY2FsZSh0Lm1ldHJpYykrNX0uYmluZCh0aGlzKSkuYXR0cigieSIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueVNjYWxlKHQucnVuKSt0aGlzLnJ1bkhlaWdodC8yfS5iaW5kKHRoaXMpKS50ZXh0KCh0PT5udWxsPT09dC5uUE1JVmFsdWU/Im51bGwiOk1hdGgucm91bmQoMWUzKih0Lm5QTUlWYWx1ZStOdW1iZXIuRVBTSUxPTikpLzFlMykpLHQuZXhpdCgpLnJlbW92ZSgpO2NvbnN0IGU9dGhpcy50ZXh0c0dyb3VwLnNlbGVjdEFsbCgiLm5wbWktdGV4dCIpLmRhdGEodGhpcy5kYXRhKTtlLmVudGVyKCkuYXBwZW5kKCJ0ZXh0IikuYXR0cigiY2xhc3MiLCJucG1pLXRleHQiKS5hdHRyKCJmb250LXNpemUiLCIxM3B4IikuYXR0cigiYWxpZ25tZW50LWJhc2VsaW5lIiwibWlkZGxlIikubWVyZ2UoZSkuYXR0cigieCIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueFNjYWxlKHQubWV0cmljKSs1fS5iaW5kKHRoaXMpKS5hdHRyKCJ5IixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy55U2NhbGUodC5ydW4pK3RoaXMucnVuSGVpZ2h0LzJ9LmJpbmQodGhpcykpLnRleHQoKHQ9Pm51bGw9PT10Lm5QTUlWYWx1ZT8ibnVsbCI6TWF0aC5yb3VuZCgxZTMqKHQublBNSVZhbHVlK051bWJlci5FUFNJTE9OKSkvMWUzKSksZS5leGl0KCkucmVtb3ZlKCl9ZHJhd0NvdW50VGV4dHMoKXtjb25zdCB0PXRoaXMuY291bnRUZXh0c0dyb3VwLnNlbGVjdEFsbCgiLmNvdW50LWJhY2tncm91bmQtdGV4dCIpLmRhdGEodGhpcy5kYXRhKTt0LmVudGVyKCkuYXBwZW5kKCJ0ZXh0IikuYXR0cigiY2xhc3MiLCJjb3VudC1iYWNrZ3JvdW5kLXRleHQiKS5hdHRyKCJzdHJva2Utd2lkdGgiLDMpLmF0dHIoInN0cm9rZS1saW5lam9pbiIsInJvdW5kIikuYXR0cigic3Ryb2tlIix0aGlzLnN0cm9rZUNvbG9yKS5hdHRyKCJmb250LXNpemUiLCIxMHB4IikuYXR0cigiYWxpZ25tZW50LWJhc2VsaW5lIiwibWlkZGxlIikubWVyZ2UodCkuYXR0cigieCIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueFNjYWxlKHQubWV0cmljKSt0aGlzLmNvdW50RG90T2Zmc2V0K3RoaXMuY291bnRUZXh0UGFkZGluZyt0aGlzLm1heERvdFJhZGl1c30uYmluZCh0aGlzKSkuYXR0cigieSIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueVNjYWxlKHQucnVuKSt0aGlzLnJ1bkhlaWdodC8yfS5iaW5kKHRoaXMpKS50ZXh0KCh0PT5udWxsPT09dC5jb3VudFZhbHVlPyIiOkludGwuTnVtYmVyRm9ybWF0KCkuZm9ybWF0KHQuY291bnRWYWx1ZSkpKSx0LmV4aXQoKS5yZW1vdmUoKTtjb25zdCBlPXRoaXMuY291bnRUZXh0c0dyb3VwLnNlbGVjdEFsbCgiLmNvdW50LXRleHQiKS5kYXRhKHRoaXMuZGF0YSk7ZS5lbnRlcigpLmFwcGVuZCgidGV4dCIpLmF0dHIoImNsYXNzIiwiY291bnQtdGV4dCIpLmF0dHIoImZvbnQtc2l6ZSIsIjEwcHgiKS5hdHRyKCJhbGlnbm1lbnQtYmFzZWxpbmUiLCJtaWRkbGUiKS5tZXJnZShlKS5hdHRyKCJ4IixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy54U2NhbGUodC5tZXRyaWMpK3RoaXMuY291bnREb3RPZmZzZXQrdGhpcy5jb3VudFRleHRQYWRkaW5nK3RoaXMubWF4RG90UmFkaXVzfS5iaW5kKHRoaXMpKS5hdHRyKCJ5IixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy55U2NhbGUodC5ydW4pK3RoaXMucnVuSGVpZ2h0LzJ9LmJpbmQodGhpcykpLnRleHQoKHQ9Pm51bGw9PT10LmNvdW50VmFsdWU/IiI6SW50bC5OdW1iZXJGb3JtYXQoKS5mb3JtYXQodC5jb3VudFZhbHVlKSkpLGUuZXhpdCgpLnJlbW92ZSgpfXNpbWlsYXJpdHlTb3J0KHQpe3RoaXMuaGFzRW1iZWRkaW5nJiYodC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLm9uU2hvd1NpbWlsYXJBbm5vdGF0aW9ucy5lbWl0KCkpfX1ZT3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFlPdCl9LFlPdC7JtWNtcD1zbyh7dHlwZTpZT3Qsc2VsZWN0b3JzOltbImFubm90YXRpb24tY29tcG9uZW50Il1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiYoVnkoVk90LDcsS2gpLFZ5KGpPdCw3LEtoKSksMiZlKXtsZXQgdDtCeSh0PVV5KCkpJiYobi5hbm5vdGF0aW9uQ29udGFpbmVyPXQuZmlyc3QpLEJ5KHQ9VXkoKSkmJihuLmNsaXBQYXRoRWxlbWVudD10LmZpcnN0KX19LGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlJmKCJyZXNpemUiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25SZXNpemUoKX0pLCExLE9sKSwyJmUmJmN1KCJzZWxlY3RlZC1yb3ciLG4uc2VsZWN0ZWQpfSxpbnB1dHM6e2RhdGE6ImRhdGEiLG1heENvdW50OiJtYXhDb3VudCIsc2VsZWN0ZWRBbm5vdGF0aW9uczoic2VsZWN0ZWRBbm5vdGF0aW9ucyIsZmxhZ2dlZEFubm90YXRpb25zOiJmbGFnZ2VkQW5ub3RhdGlvbnMiLGhpZGRlbkFubm90YXRpb25zOiJoaWRkZW5Bbm5vdGF0aW9ucyIsYWN0aXZlTWV0cmljczoiYWN0aXZlTWV0cmljcyIsbnVtQWN0aXZlUnVuczoibnVtQWN0aXZlUnVucyIsc2hvd0NvdW50czoic2hvd0NvdW50cyIsYW5ub3RhdGlvbjoiYW5ub3RhdGlvbiIscnVuSGVpZ2h0OiJydW5IZWlnaHQiLGhhc0VtYmVkZGluZzoiaGFzRW1iZWRkaW5nIixzb3J0OiJzb3J0IixzaWRlYmFyV2lkdGg6InNpZGViYXJXaWR0aCIsY29sb3JTY2FsZToiY29sb3JTY2FsZSIscnVuSWRUb1J1bnM6InJ1bklkVG9SdW5zIn0sb3V0cHV0czp7b25TaG93U2ltaWxhckFubm90YXRpb25zOiJvblNob3dTaW1pbGFyQW5ub3RhdGlvbnMifSxmZWF0dXJlczpbcW9dLGRlY2xzOjE0LHZhcnM6MTAsY29uc3RzOltbMSwiYW5ub3RhdGlvbi10aXRsZSJdLFsxLCJhbm5vdGF0aW9uLWNoZWNrYm94IiwzLCJjaGVja2VkIiwiY2xpY2siXSxbMSwiYW5ub3RhdGlvbi1idXR0b24iLDMsIm5nQ2xhc3MiLCJjbGljayJdLFsiY2xhc3MiLCJmbGFnZ2VkLWljb24iLCJzdmdJY29uIiwiZmxhZ18yNHB4Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsImhpZGRlbi1pY29uIiwic3ZnSWNvbiIsInZpc2liaWxpdHlfb2ZmXzI0cHgiLDQsIm5nSWYiXSxbImNsYXNzIiwiYW5ub3RhdGlvbi1pY29uIiwzLCJzdmdJY29uIiwibmdDbGFzcyIsNCwibmdJZiJdLFsxLCJjaGFydC1kaXYiXSxbImNoYXJ0IiwiIl0sWzEsImNoYXJ0LXN2ZyJdLFsiaWQiLCJoaW50LWNsaXAiXSxbImhpbnRDbGlwIiwiIl0sWyJ4IiwiMCIsInkiLCIwIl0sWyJzdmdJY29uIiwiZmxhZ18yNHB4IiwxLCJmbGFnZ2VkLWljb24iXSxbInN2Z0ljb24iLCJ2aXNpYmlsaXR5X29mZl8yNHB4IiwxLCJoaWRkZW4taWNvbiJdLFsxLCJhbm5vdGF0aW9uLWljb24iLDMsInN2Z0ljb24iLCJuZ0NsYXNzIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJkaXYiLDApLENmKDEsIm1hdC1jaGVja2JveCIsMSksUmYoImNsaWNrIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpfSkpLE1mKCksQ2YoMiwiYnV0dG9uIiwyKSxSZigiY2xpY2siLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLnNpbWlsYXJpdHlTb3J0KGUpfSkpLFB1KDMpLE1mKCksSG0oNCxVT3QsMSwwLCJtYXQtaWNvbiIsMyksSG0oNSxXT3QsMSwwLCJtYXQtaWNvbiIsNCksSG0oNixHT3QsMSwyLCJtYXQtaWNvbiIsNSksTWYoKSxDZig3LCJkaXYiLDYsNyksb2EoKSxDZig5LCJzdmciLDgpLENmKDEwLCJkZWZzIiksQ2YoMTEsImNsaXBQYXRoIiw5LDEwKSx2ZigxMywicmVjdCIsMTEpLE1mKCksTWYoKSxNZigpLE1mKCkpLDImZSYmKGN1KCJmbGFnZ2VkLWFubm90YXRpb24iLG4uZmxhZ2dlZEFubm90YXRpb25zLmluY2x1ZGVzKG4uYW5ub3RhdGlvbikpKCJoaWRkZW4tYW5ub3RhdGlvbiIsbi5oaWRkZW5Bbm5vdGF0aW9ucy5pbmNsdWRlcyhuLmFubm90YXRpb24pJiYhbi5mbGFnZ2VkQW5ub3RhdGlvbnMuaW5jbHVkZXMobi5hbm5vdGF0aW9uKSksRGMoMSksYmYoImNoZWNrZWQiLG4uc2VsZWN0ZWRBbm5vdGF0aW9ucy5pbmNsdWRlcyhuLmFubm90YXRpb24pKSxEYygxKSxiZigibmdDbGFzcyIsbi5oYXNFbWJlZGRpbmc/ImNsaWNrYWJsZS1hbm5vdGF0aW9uIjoiIiksRGMoMSksa3UoIiAiLG4uYW5ub3RhdGlvbiwiICIpLERjKDEpLGJmKCJuZ0lmIixuLmZsYWdnZWRBbm5vdGF0aW9ucy5pbmNsdWRlcyhuLmFubm90YXRpb24pKSxEYygxKSxiZigibmdJZiIsbi5oaWRkZW5Bbm5vdGF0aW9ucy5pbmNsdWRlcyhuLmFubm90YXRpb24pKSxEYygxKSxiZigibmdJZiIsbi5hbm5vdGF0aW9uPT09bi5zb3J0Lm1ldHJpYykpfSxkaXJlY3RpdmVzOltiWixDdixQdixNcV0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50e2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbCAubWF0LWJhZGdlLWNvbnRlbnR7Zm9udC1zaXplOjlweH0ubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudHtmb250LXNpemU6MjRweH0ubWF0LWgxLC5tYXQtaGVhZGxpbmUsLm1hdC10eXBvZ3JhcGh5IGgxe2ZvbnQ6NDAwIDI0cHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgyLC5tYXQtdGl0bGUsLm1hdC10eXBvZ3JhcGh5IGgye2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzLC5tYXQtc3ViaGVhZGluZy0yLC5tYXQtdHlwb2dyYXBoeSBoM3tmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNCwubWF0LXN1YmhlYWRpbmctMSwubWF0LXR5cG9ncmFwaHkgaDR7Zm9udDo0MDAgMTVweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDUsLm1hdC10eXBvZ3JhcGh5IGg1e2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWg2LC5tYXQtdHlwb2dyYXBoeSBoNntmb250OjQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1ib2R5LXN0cm9uZywubWF0LWJvZHktMntmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHksLm1hdC1ib2R5LTEsLm1hdC10eXBvZ3JhcGh5e2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keSBwLC5tYXQtYm9keS0xIHAsLm1hdC10eXBvZ3JhcGh5IHB7bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGwsLm1hdC1jYXB0aW9ue2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00LC5tYXQtdHlwb2dyYXBoeSAubWF0LWRpc3BsYXktNHtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTMsLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0ze2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTIsLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0ye2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xLC5tYXQtdHlwb2dyYXBoeSAubWF0LWRpc3BsYXktMXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVye2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uLC5tYXQtcmFpc2VkLWJ1dHRvbiwubWF0LWljb24tYnV0dG9uLC5tYXQtc3Ryb2tlZC1idXR0b24sLm1hdC1mbGF0LWJ1dHRvbiwubWF0LWZhYiwubWF0LW1pbmktZmFie2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1idXR0b24tdG9nZ2xle2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmR7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYXJkLWhlYWRlciAubWF0LWNhcmQtdGl0bGV7Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlLC5tYXQtY2FyZC1jb250ZW50e2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3h7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0IC5tYXQtY2hlY2tib3gtbGFiZWx7bGluZS1oZWlnaHQ6MjRweH0ubWF0LWNoaXB7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcCAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbiwubWF0LWNoaXAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbntmb250LXNpemU6MThweH0ubWF0LXRhYmxle2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxse2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNlbGwsLm1hdC1mb290ZXItY2VsbHtmb250LXNpemU6MTRweH0ubWF0LWNhbGVuZGFye2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHl7Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsLC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbntmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIgdGh7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZGlhbG9nLXRpdGxle2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcntmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnR7Zm9udDo0MDAgMTRweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxke2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVye3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbiwubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbntmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbi1idXR0b24sLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24tYnV0dG9ue2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29uLC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb257aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4e3BhZGRpbmc6LjVlbSAwO2JvcmRlci10b3A6Ljg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnR9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVye3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbHt0b3A6MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJ7Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJ7cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtaW5maXh7cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzNTMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVye21hcmdpbi10b3A6LjU0MTY2NjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pfUBtZWRpYSBwcmludHsubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cysubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtaW5maXh7cGFkZGluZzouMjVlbSAwIC43NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtbGFiZWx7dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtaW5maXh7cGFkZGluZzoxZW0gMCAxZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyLC5tYXQtZ3JpZC10aWxlLWZvb3Rlcntmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXIgLm1hdC1saW5lLC5tYXQtZ3JpZC10aWxlLWZvb3RlciAubWF0LWxpbmV7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlciAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMiksLm1hdC1ncmlkLXRpbGUtZm9vdGVyIC5tYXQtbGluZTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudHttYXJnaW4tdG9wOi0wLjA2MjVlbX0ubWF0LW1lbnUtaXRlbXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yLC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2Vye2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbntmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3R7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJ7aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudHtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dHtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci12ZXJ0aWNhbCwubWF0LXN0ZXBwZXItaG9yaXpvbnRhbHtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVse2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9ye2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3J7Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVke2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cHtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWwsLm1hdC10YWItbGlua3tmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhciwubWF0LXRvb2xiYXIgaDEsLm1hdC10b29sYmFyIGgyLC5tYXQtdG9vbGJhciBoMywubWF0LXRvb2xiYXIgaDQsLm1hdC10b29sYmFyIGg1LC5tYXQtdG9vbGJhciBoNntmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MH0ubWF0LXRvb2x0aXB7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXR7Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LW9wdGlvbntmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5le3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbntmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbiAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2UgLm1hdC1zdWJoZWFkZXJ7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LWl0ZW17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LW9wdGlvbntmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LW9wdGlvbiAubWF0LWxpbmV7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1zdWJoZWFkZXJ7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LW9wdGlvbntmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbHtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcntmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHh9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9ue2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVle2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZSwubWF0LW5lc3RlZC10cmVlLW5vZGV7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxle292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubWF0LXJpcHBsZTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZHtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnR7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHksdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAubWF0LXJpcHBsZS1lbGVtZW50e2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbntib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXIsLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVye3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcntwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcjplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVye2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmV7cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9we3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5ne29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5ne29wYWNpdHk6LjZ9LmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3B7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5ne29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveHtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2Nre3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTpzY3JvbGx9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXple3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmd7cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveHtwYWRkaW5nOjJweCAwICFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydHsvKiEqL31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHsvKiEqL30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGx7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtc30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3J7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9ye3Bvc2l0aW9uOnJlbGF0aXZlfTpob3N0e3BhZGRpbmctdG9wOjVweH0uYW5ub3RhdGlvbi10aXRsZXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2ZvbnQtc2l6ZToxM3B4O2hlaWdodDoyMHB4O3BhZGRpbmc6MCAxMHB4O3VzZXItc2VsZWN0Om5vbmV9LnNlbGVjdGVkLXJvd3tiYWNrZ3JvdW5kLWNvbG9yOiNlMGUwZTA7ZGlzcGxheTpibG9ja30uZmxhZ2dlZC1hbm5vdGF0aW9ue2NvbG9yOiNmNTdjMDB9LmhpZGRlbi1hbm5vdGF0aW9ue2NvbG9yOiM3NTc1NzV9LmFubm90YXRpb24tY2hlY2tib3h7cGFkZGluZy1yaWdodDo1cHh9LmZsYWdnZWQtaWNvbnt0cmFuc2Zvcm06c2NhbGUoMC42KX0uaGlkZGVuLWljb257dHJhbnNmb3JtOnNjYWxlKDAuNil9LmFubm90YXRpb24taWNvbnt0cmFuc2Zvcm06c2NhbGUoMC42KX0uY2hhcnQtZGl2e2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWJ9LmNoYXJ0LXN2Z3t3aWR0aDoxMDAlO3VzZXItc2VsZWN0Om5vbmV9LmRlZmF1bHQtdGV4dHtmaWxsOiMwMDB9LmZsYWctdGV4dHtmaWxsOiNmNTdjMDB9LmhpZGRlbi10ZXh0e2ZpbGw6Izc1NzU3NX0uY2xpY2thYmxlLWFubm90YXRpb257Y3Vyc29yOnBvaW50ZXJ9YnV0dG9ue2FsbDp1bnNldH1cbiddLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoWU90LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6ImFubm90YXRpb24tY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiLi9hbm5vdGF0aW9uX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL2Fubm90YXRpb25fY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2gsZW5jYXBzdWxhdGlvbjpXbi5Ob25lfV19XSxudWxsLHtkYXRhOlt7dHlwZTpSX31dLG1heENvdW50Olt7dHlwZTpSX31dLHNlbGVjdGVkQW5ub3RhdGlvbnM6W3t0eXBlOlJffV0sZmxhZ2dlZEFubm90YXRpb25zOlt7dHlwZTpSX31dLGhpZGRlbkFubm90YXRpb25zOlt7dHlwZTpSX31dLGFjdGl2ZU1ldHJpY3M6W3t0eXBlOlJffV0sbnVtQWN0aXZlUnVuczpbe3R5cGU6Ul99XSxzaG93Q291bnRzOlt7dHlwZTpSX31dLGFubm90YXRpb246W3t0eXBlOlJffV0scnVuSGVpZ2h0Olt7dHlwZTpSX31dLGhhc0VtYmVkZGluZzpbe3R5cGU6Ul99XSxzb3J0Olt7dHlwZTpSX31dLHNpZGViYXJXaWR0aDpbe3R5cGU6Ul99XSxjb2xvclNjYWxlOlt7dHlwZTpSX31dLHJ1bklkVG9SdW5zOlt7dHlwZTpSX31dLGFubm90YXRpb25Db250YWluZXI6W3t0eXBlOmFyLGFyZ3M6WyJjaGFydCIse3N0YXRpYzohMCxyZWFkOktofV19XSxjbGlwUGF0aEVsZW1lbnQ6W3t0eXBlOmFyLGFyZ3M6WyJoaW50Q2xpcCIse3N0YXRpYzohMCxyZWFkOktofV19XSxzZWxlY3RlZDpbe3R5cGU6QV8sYXJnczpbImNsYXNzLnNlbGVjdGVkLXJvdyJdfV0sb25SZXNpemU6W3t0eXBlOlRfLGFyZ3M6WyJ3aW5kb3c6cmVzaXplIl19XSxvblNob3dTaW1pbGFyQW5ub3RhdGlvbnM6W3t0eXBlOkVffV19KTtjbGFzcyBxT3R7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMuc29ydCQ9dGhpcy5zdG9yZS5zZWxlY3Qobnh0KSx0aGlzLmZsYWdnZWRBbm5vdGF0aW9ucyQ9dGhpcy5zdG9yZS5zZWxlY3QoS3Z0KSx0aGlzLmhpZGRlbkFubm90YXRpb25zJD10aGlzLnN0b3JlLnNlbGVjdChKdnQpLHRoaXMuc2VsZWN0ZWRBbm5vdGF0aW9ucyQ9dGhpcy5zdG9yZS5zZWxlY3QoWHZ0KSx0aGlzLnNob3dDb3VudHMkPXRoaXMuc3RvcmUuc2VsZWN0KHJ4dCksdGhpcy5zaWRlYmFyV2lkdGgkPXRoaXMuc3RvcmUuc2VsZWN0KGN4dCksdGhpcy5ydW5Db2xvclNjYWxlJD10aGlzLnN0b3JlLnNlbGVjdChDSSkucGlwZShWdCgodD0+ZT0+e2lmKCF0Lmhhc093blByb3BlcnR5KGUpKXRocm93IG5ldyBFcnJvcihgW0NvbG9yIHNjYWxlXSB1bmtub3duIHJ1bklkOiAke2V9LmApO3JldHVybiB0W2VdfSkpKSx0aGlzLnJ1bklkVG9SdW5zJD10aGlzLnN0b3JlLnNlbGVjdChYeil9c2hvd1NpbWlsYXJBbm5vdGF0aW9ucygpe3RoaXMuc3RvcmUuZGlzcGF0Y2goU3Z0KHthbm5vdGF0aW9uOnRoaXMuYW5ub3RhdGlvbn0pKX19ZnVuY3Rpb24gWk90KHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwibnBtaS1hbm5vdGF0aW9uIiw1KSxSZigiY2xpY2siLChmdW5jdGlvbiBlKG4pe2NvbnN0IG89UGkodCkuJGltcGxpY2l0O3JldHVybiB6ZigyKS5yb3dDbGlja2VkKG4sbyl9KSksTWYoKX1pZigyJnQpe2NvbnN0IHQ9ZS4kaW1wbGljaXQsbj16ZigyKTtiZigiZGF0YSIsbi5hbm5vdGF0aW9uc1t0XSkoImFjdGl2ZU1ldHJpY3MiLG4uYWN0aXZlTWV0cmljcykoIm51bUFjdGl2ZVJ1bnMiLG4ubnVtQWN0aXZlUnVucykoIm1heENvdW50IixuLm1heENvdW50KSgiYW5ub3RhdGlvbiIsdCkoInJ1bkhlaWdodCIsbi5ydW5IZWlnaHQpKCJoYXNFbWJlZGRpbmciLG4uZW1iZWRkaW5nRGF0YSYmdm9pZCAwIT09bi5lbWJlZGRpbmdEYXRhW3RdKX19ZnVuY3Rpb24gWE90KHQsZSl7aWYoMSZ0JiYoeGYoMCksdmYoMSwibnBtaS1hbm5vdGF0aW9ucy1saXN0LWxlZ2VuZCIpLHZmKDIsIm5wbWktYW5ub3RhdGlvbnMtbGlzdC1oZWFkZXIiLDIpLENmKDMsImNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCIsMyksSG0oNCxaT3QsMSw3LCJucG1pLWFubm90YXRpb24iLDQpLE1mKCksT2YoKSksMiZ0KXtjb25zdCB0PXpmKCk7RGMoMiksYmYoImFubm90YXRpb25zIix0LmFubm90YXRpb25zKSgibnVtQW5ub3RhdGlvbnMiLHQubnVtQW5ub3RhdGlvbnMpKCJhY3RpdmVNZXRyaWNzIix0LmFjdGl2ZU1ldHJpY3MpLERjKDEpLExmKCJpdGVtU2l6ZSIsdC5udW1BY3RpdmVSdW5zKnQucnVuSGVpZ2h0KzI1KSxEYygxKSxiZigiY2RrVmlydHVhbEZvck9mIix0LnNvcnRlZEFubm90YXRpb25zKX19cU90Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxxT3QpKGdmKGlTKSl9LHFPdC7JtWNtcD1zbyh7dHlwZTpxT3Qsc2VsZWN0b3JzOltbIm5wbWktYW5ub3RhdGlvbiJdXSxpbnB1dHM6e2RhdGE6ImRhdGEiLG1heENvdW50OiJtYXhDb3VudCIsYWN0aXZlTWV0cmljczoiYWN0aXZlTWV0cmljcyIsbnVtQWN0aXZlUnVuczoibnVtQWN0aXZlUnVucyIsYW5ub3RhdGlvbjoiYW5ub3RhdGlvbiIscnVuSGVpZ2h0OiJydW5IZWlnaHQiLGhhc0VtYmVkZGluZzoiaGFzRW1iZWRkaW5nIn0sZGVjbHM6OSx2YXJzOjMxLGNvbnN0czpbWzMsImRhdGEiLCJtYXhDb3VudCIsImFjdGl2ZU1ldHJpY3MiLCJudW1BY3RpdmVSdW5zIiwiYW5ub3RhdGlvbiIsInJ1bkhlaWdodCIsImhhc0VtYmVkZGluZyIsInNvcnQiLCJzZWxlY3RlZEFubm90YXRpb25zIiwiZmxhZ2dlZEFubm90YXRpb25zIiwiaGlkZGVuQW5ub3RhdGlvbnMiLCJzaG93Q291bnRzIiwic2lkZWJhcldpZHRoIiwiY29sb3JTY2FsZSIsInJ1bklkVG9SdW5zIiwib25TaG93U2ltaWxhckFubm90YXRpb25zIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJhbm5vdGF0aW9uLWNvbXBvbmVudCIsMCksUmYoIm9uU2hvd1NpbWlsYXJBbm5vdGF0aW9ucyIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5zaG93U2ltaWxhckFubm90YXRpb25zKCl9KSksX3koMSwiYXN5bmMiKSxfeSgyLCJhc3luYyIpLF95KDMsImFzeW5jIiksX3koNCwiYXN5bmMiKSxfeSg1LCJhc3luYyIpLF95KDYsImFzeW5jIiksX3koNywiYXN5bmMiKSxfeSg4LCJhc3luYyIpLE1mKCkpLDImZSYmYmYoImRhdGEiLG4uZGF0YSkoIm1heENvdW50IixuLm1heENvdW50KSgiYWN0aXZlTWV0cmljcyIsbi5hY3RpdmVNZXRyaWNzKSgibnVtQWN0aXZlUnVucyIsbi5udW1BY3RpdmVSdW5zKSgiYW5ub3RhdGlvbiIsbi5hbm5vdGF0aW9uKSgicnVuSGVpZ2h0IixuLnJ1bkhlaWdodCkoImhhc0VtYmVkZGluZyIsbi5oYXNFbWJlZGRpbmcpKCJzb3J0IixDeSgxLDE1LG4uc29ydCQpKSgic2VsZWN0ZWRBbm5vdGF0aW9ucyIsQ3koMiwxNyxuLnNlbGVjdGVkQW5ub3RhdGlvbnMkKSkoImZsYWdnZWRBbm5vdGF0aW9ucyIsQ3koMywxOSxuLmZsYWdnZWRBbm5vdGF0aW9ucyQpKSgiaGlkZGVuQW5ub3RhdGlvbnMiLEN5KDQsMjEsbi5oaWRkZW5Bbm5vdGF0aW9ucyQpKSgic2hvd0NvdW50cyIsQ3koNSwyMyxuLnNob3dDb3VudHMkKSkoInNpZGViYXJXaWR0aCIsQ3koNiwyNSxuLnNpZGViYXJXaWR0aCQpKSgiY29sb3JTY2FsZSIsQ3koNywyNyxuLnJ1bkNvbG9yU2NhbGUkKSkoInJ1bklkVG9SdW5zIixDeSg4LDI5LG4ucnVuSWRUb1J1bnMkKSl9LGRpcmVjdGl2ZXM6W1lPdF0scGlwZXM6W1Z2XSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHFPdCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJucG1pLWFubm90YXRpb24iLHRlbXBsYXRlOidcbiAgICA8YW5ub3RhdGlvbi1jb21wb25lbnRcbiAgICAgIFtkYXRhXT0iZGF0YSJcbiAgICAgIFttYXhDb3VudF09Im1heENvdW50IlxuICAgICAgW2FjdGl2ZU1ldHJpY3NdPSJhY3RpdmVNZXRyaWNzIlxuICAgICAgW251bUFjdGl2ZVJ1bnNdPSJudW1BY3RpdmVSdW5zIlxuICAgICAgW2Fubm90YXRpb25dPSJhbm5vdGF0aW9uIlxuICAgICAgW3J1bkhlaWdodF09InJ1bkhlaWdodCJcbiAgICAgIFtoYXNFbWJlZGRpbmddPSJoYXNFbWJlZGRpbmciXG4gICAgICBbc29ydF09InNvcnQkIHwgYXN5bmMiXG4gICAgICBbc2VsZWN0ZWRBbm5vdGF0aW9uc109InNlbGVjdGVkQW5ub3RhdGlvbnMkIHwgYXN5bmMiXG4gICAgICBbZmxhZ2dlZEFubm90YXRpb25zXT0iZmxhZ2dlZEFubm90YXRpb25zJCB8IGFzeW5jIlxuICAgICAgW2hpZGRlbkFubm90YXRpb25zXT0iaGlkZGVuQW5ub3RhdGlvbnMkIHwgYXN5bmMiXG4gICAgICBbc2hvd0NvdW50c109InNob3dDb3VudHMkIHwgYXN5bmMiXG4gICAgICBbc2lkZWJhcldpZHRoXT0ic2lkZWJhcldpZHRoJCB8IGFzeW5jIlxuICAgICAgW2NvbG9yU2NhbGVdPSJydW5Db2xvclNjYWxlJCB8IGFzeW5jIlxuICAgICAgW3J1bklkVG9SdW5zXT0icnVuSWRUb1J1bnMkIHwgYXN5bmMiXG4gICAgICAob25TaG93U2ltaWxhckFubm90YXRpb25zKT0ic2hvd1NpbWlsYXJBbm5vdGF0aW9ucygpIlxuICAgID48L2Fubm90YXRpb24tY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSkse2RhdGE6W3t0eXBlOlJffV0sbWF4Q291bnQ6W3t0eXBlOlJffV0sYWN0aXZlTWV0cmljczpbe3R5cGU6Ul99XSxudW1BY3RpdmVSdW5zOlt7dHlwZTpSX31dLGFubm90YXRpb246W3t0eXBlOlJffV0scnVuSGVpZ2h0Olt7dHlwZTpSX31dLGhhc0VtYmVkZGluZzpbe3R5cGU6Ul99XX0pO2NsYXNzIEtPdHtjb25zdHJ1Y3Rvcigpe3RoaXMub25Sb3dDbGljaz1uZXcgU3ksdGhpcy5ydW5IZWlnaHQ9MzB9cm93Q2xpY2tlZCh0LGUpe2lmKHQuc2hpZnRLZXkpe2xldCB0PXRoaXMuc29ydGVkQW5ub3RhdGlvbnMuaW5kZXhPZihlKTtpZigwPT09dGhpcy5zZWxlY3RlZEFubm90YXRpb25zLmxlbmd0aCl0aGlzLm9uUm93Q2xpY2suZW1pdCh0aGlzLnNvcnRlZEFubm90YXRpb25zLnNsaWNlKDAsdCsxKSk7ZWxzZXtjb25zdCBlPXRoaXMuc29ydGVkQW5ub3RhdGlvbnMuaW5kZXhPZih0aGlzLnNlbGVjdGVkQW5ub3RhdGlvbnNbdGhpcy5zZWxlY3RlZEFubm90YXRpb25zLmxlbmd0aC0xXSk7dGhpcy5vblJvd0NsaWNrLmVtaXQoZTx0P3RoaXMuc29ydGVkQW5ub3RhdGlvbnMuc2xpY2UoZSx0KzEpOnRoaXMuc29ydGVkQW5ub3RhdGlvbnMuc2xpY2UodCxlKzEpKX19ZWxzZSB0aGlzLm9uUm93Q2xpY2suZW1pdChbZV0pfX1LT3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEtPdCl9LEtPdC7JtWNtcD1zbyh7dHlwZTpLT3Qsc2VsZWN0b3JzOltbImFubm90YXRpb25zLWxpc3QtY29tcG9uZW50Il1dLGlucHV0czp7YW5ub3RhdGlvbnM6ImFubm90YXRpb25zIixlbWJlZGRpbmdEYXRhOiJlbWJlZGRpbmdEYXRhIixhbm5vdGF0aW9uc0V4cGFuZGVkOiJhbm5vdGF0aW9uc0V4cGFuZGVkIixudW1Bbm5vdGF0aW9uczoibnVtQW5ub3RhdGlvbnMiLGFubm90YXRpb25Tb3J0OiJhbm5vdGF0aW9uU29ydCIsYWN0aXZlTWV0cmljczoiYWN0aXZlTWV0cmljcyIsbnVtQWN0aXZlUnVuczoibnVtQWN0aXZlUnVucyIsc29ydGVkQW5ub3RhdGlvbnM6InNvcnRlZEFubm90YXRpb25zIixzZWxlY3RlZEFubm90YXRpb25zOiJzZWxlY3RlZEFubm90YXRpb25zIixtYXhDb3VudDoibWF4Q291bnQifSxvdXRwdXRzOntvblJvd0NsaWNrOiJvblJvd0NsaWNrIn0sZGVjbHM6Mix2YXJzOjMsY29uc3RzOltbMywibnVtQW5ub3RhdGlvbnMiLCJleHBhbmRlZCJdLFs0LCJuZ0lmIl0sWzMsImFubm90YXRpb25zIiwibnVtQW5ub3RhdGlvbnMiLCJhY3RpdmVNZXRyaWNzIl0sWyJtaW5CdWZmZXJQeCIsIjMwMCIsIm1heEJ1ZmZlclB4IiwiNjAwIiwxLCJhbm5vdGF0aW9uLXJvd3MiLDMsIml0ZW1TaXplIl0sWzMsImRhdGEiLCJhY3RpdmVNZXRyaWNzIiwibnVtQWN0aXZlUnVucyIsIm1heENvdW50IiwiYW5ub3RhdGlvbiIsInJ1bkhlaWdodCIsImhhc0VtYmVkZGluZyIsImNsaWNrIiw0LCJjZGtWaXJ0dWFsRm9yIiwiY2RrVmlydHVhbEZvck9mIl0sWzMsImRhdGEiLCJhY3RpdmVNZXRyaWNzIiwibnVtQWN0aXZlUnVucyIsIm1heENvdW50IiwiYW5ub3RhdGlvbiIsInJ1bkhlaWdodCIsImhhc0VtYmVkZGluZyIsImNsaWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJih2ZigwLCJucG1pLWFubm90YXRpb25zLWxpc3QtdG9vbGJhciIsMCksSG0oMSxYT3QsNSw1LCJuZy1jb250YWluZXIiLDEpKSwyJmUmJihiZigibnVtQW5ub3RhdGlvbnMiLG4ubnVtQW5ub3RhdGlvbnMpKCJleHBhbmRlZCIsbi5hbm5vdGF0aW9uc0V4cGFuZGVkKSxEYygxKSxiZigibmdJZiIsbi5hbm5vdGF0aW9uc0V4cGFuZGVkKSl9LGRpcmVjdGl2ZXM6W1RPdCxQdixJT3QsQk90LHRCLFhMLG5CLHFPdF0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OmNhbGMoMTAwJSAtIDJweCk7d2lkdGg6Y2FsYygxMDAlIC0gMnB4KX0uYW5ub3RhdGlvbi1yb3dzW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXg6MSAxO292ZXJmbG93LXk6YXV0b30nXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoS090LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6ImFubm90YXRpb25zLWxpc3QtY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiLi9hbm5vdGF0aW9uc19saXN0X2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL2Fubm90YXRpb25zX2xpc3RfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLG51bGwse2Fubm90YXRpb25zOlt7dHlwZTpSX31dLGVtYmVkZGluZ0RhdGE6W3t0eXBlOlJffV0sYW5ub3RhdGlvbnNFeHBhbmRlZDpbe3R5cGU6Ul99XSxudW1Bbm5vdGF0aW9uczpbe3R5cGU6Ul99XSxhbm5vdGF0aW9uU29ydDpbe3R5cGU6Ul99XSxhY3RpdmVNZXRyaWNzOlt7dHlwZTpSX31dLG51bUFjdGl2ZVJ1bnM6W3t0eXBlOlJffV0sc29ydGVkQW5ub3RhdGlvbnM6W3t0eXBlOlJffV0sc2VsZWN0ZWRBbm5vdGF0aW9uczpbe3R5cGU6Ul99XSxtYXhDb3VudDpbe3R5cGU6Ul99XSxvblJvd0NsaWNrOlt7dHlwZTpFX31dfSk7Y2xhc3MgSk90e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLmFubm90YXRpb25zRXhwYW5kZWQkPXRoaXMuc3RvcmUucGlwZShyUyhpeHQpKSx0aGlzLmFjdGl2ZVJ1bnMkPXRoaXMuc3RvcmUucGlwZShyUyhfSSkpLnBpcGUoVnQoKHQ9PnQ/QXJyYXkuZnJvbSh0LmVudHJpZXMoKSkuZmlsdGVyKCh0PT50WzFdKSkubWFwKCh0PT50WzBdKSk6W10pKSksdGhpcy5lbWJlZGRpbmdEYXRhJD10aGlzLnN0b3JlLnBpcGUoclMoWnZ0KSksdGhpcy5udW1BY3RpdmVSdW5zJD10aGlzLmFjdGl2ZVJ1bnMkLnBpcGUoVnQoKHQ9PnQubGVuZ3RoKSkpLHRoaXMuYWN0aXZlTWV0cmljcyQ9S3QoW3RoaXMuc3RvcmUuc2VsZWN0KHF2dCksdGhpcy5hY3RpdmVSdW5zJCx0aGlzLnN0b3JlLnNlbGVjdChleHQpXSkucGlwZShWdCgoKFt0LGUsbl0pPT57bGV0IG89W107Zm9yKGNvbnN0IG4gb2YgZSl0W25dJiYobz1vLmNvbmNhdCh0W25dLmZpbHRlcigodD0+Tl90KHQpKSkpKTtyZXR1cm4gbz1bLi4ubmV3IFNldChbLi4uT2JqZWN0LmtleXMobiksLi4ub10pXSxvfSkpKSx0aGlzLnZpc2libGVBbm5vdGF0aW9ucyQ9S3QoW3RoaXMuc3RvcmUuc2VsZWN0KFl2dCksdGhpcy5zdG9yZS5zZWxlY3QoSnZ0KSx0aGlzLnN0b3JlLnNlbGVjdChzeHQpXSkucGlwZShWdCgoKFt0LGUsbl0pPT5vT3QodCxlLG4pKSkpLHRoaXMuZmlsdGVyZWRBbm5vdGF0aW9ucyQ9S3QoW3RoaXMudmlzaWJsZUFubm90YXRpb25zJCx0aGlzLnN0b3JlLnNlbGVjdCh0eHQpLHRoaXMuc3RvcmUuc2VsZWN0KGV4dCksdGhpcy5hY3RpdmVSdW5zJCx0aGlzLmFjdGl2ZU1ldHJpY3MkLHRoaXMuc3RvcmUuc2VsZWN0KFF2dCldKS5waXBlKFZ0KCgoW3QsZSxuLG8saSxhXSk9Pm5PdCh0LG8sZSxuLGksYSkpKSkucGlwZShJZSgpKSx0aGlzLm51bUFubm90YXRpb25zJD10aGlzLmZpbHRlcmVkQW5ub3RhdGlvbnMkLnBpcGUoVnQoKHQ9Pk9iamVjdC5rZXlzKHQpLmxlbmd0aCkpKSx0aGlzLnNvcnRlZEFubm90YXRpb25zJD1LdChbdGhpcy5maWx0ZXJlZEFubm90YXRpb25zJCx0aGlzLnN0b3JlLnBpcGUoclMobnh0KSksdGhpcy5lbWJlZGRpbmdEYXRhJF0pLnBpcGUoVnQoKChbdCxlLG5dKT0+cE90KHQsZSxuKSkpKSx0aGlzLnNlbGVjdGVkQW5ub3RhdGlvbnMkPXRoaXMuc3RvcmUucGlwZShyUyhYdnQpKSx0aGlzLm1heENvdW50JD10aGlzLmZpbHRlcmVkQW5ub3RhdGlvbnMkLnBpcGUoVnQoKHQ9PntsZXQgZT0wO3JldHVybiBPYmplY3QudmFsdWVzKHQpLmZvckVhY2goKHQ9Pnt0LmZvckVhY2goKHQ9Pnt0LmNvdW50VmFsdWUmJihlPU1hdGgubWF4KGUsdC5jb3VudFZhbHVlKSl9KSl9KSksZX0pKSl9cm93Q2xpY2tlZCh0KXt0aGlzLnN0b3JlLmRpc3BhdGNoKGJ2dCh7YW5ub3RhdGlvbnM6dH0pKX19Sk90Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxKT3QpKGdmKGlTKSl9LEpPdC7JtWNtcD1zbyh7dHlwZTpKT3Qsc2VsZWN0b3JzOltbIm5wbWktYW5ub3RhdGlvbnMtbGlzdCJdXSxkZWNsczoxMCx2YXJzOjI3LGNvbnN0czpbWzMsImFubm90YXRpb25zIiwiZW1iZWRkaW5nRGF0YSIsImFubm90YXRpb25zRXhwYW5kZWQiLCJudW1Bbm5vdGF0aW9ucyIsImFjdGl2ZU1ldHJpY3MiLCJudW1BY3RpdmVSdW5zIiwic29ydGVkQW5ub3RhdGlvbnMiLCJzZWxlY3RlZEFubm90YXRpb25zIiwibWF4Q291bnQiLCJvblJvd0NsaWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJhbm5vdGF0aW9ucy1saXN0LWNvbXBvbmVudCIsMCksUmYoIm9uUm93Q2xpY2siLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLnJvd0NsaWNrZWQoZSl9KSksX3koMSwiYXN5bmMiKSxfeSgyLCJhc3luYyIpLF95KDMsImFzeW5jIiksX3koNCwiYXN5bmMiKSxfeSg1LCJhc3luYyIpLF95KDYsImFzeW5jIiksX3koNywiYXN5bmMiKSxfeSg4LCJhc3luYyIpLF95KDksImFzeW5jIiksTWYoKSksMiZlJiZiZigiYW5ub3RhdGlvbnMiLEN5KDEsOSxuLmZpbHRlcmVkQW5ub3RhdGlvbnMkKSkoImVtYmVkZGluZ0RhdGEiLEN5KDIsMTEsbi5lbWJlZGRpbmdEYXRhJCkpKCJhbm5vdGF0aW9uc0V4cGFuZGVkIixDeSgzLDEzLG4uYW5ub3RhdGlvbnNFeHBhbmRlZCQpKSgibnVtQW5ub3RhdGlvbnMiLEN5KDQsMTUsbi5udW1Bbm5vdGF0aW9ucyQpKSgiYWN0aXZlTWV0cmljcyIsQ3koNSwxNyxuLmFjdGl2ZU1ldHJpY3MkKSkoIm51bUFjdGl2ZVJ1bnMiLEN5KDYsMTksbi5udW1BY3RpdmVSdW5zJCkpKCJzb3J0ZWRBbm5vdGF0aW9ucyIsQ3koNywyMSxuLnNvcnRlZEFubm90YXRpb25zJCkpKCJzZWxlY3RlZEFubm90YXRpb25zIixDeSg4LDIzLG4uc2VsZWN0ZWRBbm5vdGF0aW9ucyQpKSgibWF4Q291bnQiLEN5KDksMjUsbi5tYXhDb3VudCQpKX0sZGlyZWN0aXZlczpbS090XSxwaXBlczpbVnZdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoSk90LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im5wbWktYW5ub3RhdGlvbnMtbGlzdCIsdGVtcGxhdGU6J1xuICAgIDxhbm5vdGF0aW9ucy1saXN0LWNvbXBvbmVudFxuICAgICAgW2Fubm90YXRpb25zXT0iZmlsdGVyZWRBbm5vdGF0aW9ucyQgfCBhc3luYyJcbiAgICAgIFtlbWJlZGRpbmdEYXRhXT0iZW1iZWRkaW5nRGF0YSQgfCBhc3luYyJcbiAgICAgIFthbm5vdGF0aW9uc0V4cGFuZGVkXT0iYW5ub3RhdGlvbnNFeHBhbmRlZCQgfCBhc3luYyJcbiAgICAgIFtudW1Bbm5vdGF0aW9uc109Im51bUFubm90YXRpb25zJCB8IGFzeW5jIlxuICAgICAgW2FjdGl2ZU1ldHJpY3NdPSJhY3RpdmVNZXRyaWNzJCB8IGFzeW5jIlxuICAgICAgW251bUFjdGl2ZVJ1bnNdPSJudW1BY3RpdmVSdW5zJCB8IGFzeW5jIlxuICAgICAgW3NvcnRlZEFubm90YXRpb25zXT0ic29ydGVkQW5ub3RhdGlvbnMkIHwgYXN5bmMiXG4gICAgICBbc2VsZWN0ZWRBbm5vdGF0aW9uc109InNlbGVjdGVkQW5ub3RhdGlvbnMkIHwgYXN5bmMiXG4gICAgICBbbWF4Q291bnRdPSJtYXhDb3VudCQgfCBhc3luYyJcbiAgICAgIChvblJvd0NsaWNrKT0icm93Q2xpY2tlZCgkZXZlbnQpIlxuICAgID48L2Fubm90YXRpb25zLWxpc3QtY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSksbnVsbCk7Y29uc3QgUU90PVsiY2hhcnQiXTtjbGFzcyAkT3R7Y29uc3RydWN0b3IoKXt0aGlzLndpZHRoPTAsdGhpcy5jaGFydFdpZHRoPTAsdGhpcy5oZWlnaHQ9MzAwLHRoaXMubWFyZ2luPXt0b3A6MjAscmlnaHQ6NDAsYm90dG9tOjIwLGxlZnQ6NDB9LHRoaXMuY2hhcnRIZWlnaHQ9dGhpcy5oZWlnaHQtdGhpcy5tYXJnaW4udG9wLXRoaXMubWFyZ2luLmJvdHRvbX1vblJlc2l6ZSh0KXt0aGlzLnJlZHJhdygpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuc3ZnPW44KHRoaXMuc3ZnRWxlbWVudC5uYXRpdmVFbGVtZW50KSx0aGlzLm1haW5Db250YWluZXI9dGhpcy5zdmcuYXBwZW5kKCJnIikuYXR0cigidHJhbnNmb3JtIixgdHJhbnNsYXRlKCR7dGhpcy5tYXJnaW4ubGVmdH0sICR7dGhpcy5tYXJnaW4udG9wfSlgKSx0aGlzLmNvb3JkaW5hdGVzR3JvdXA9dGhpcy5tYWluQ29udGFpbmVyLmFwcGVuZCgiZyIpLHRoaXMubGFiZWxzR3JvdXA9dGhpcy5tYWluQ29udGFpbmVyLmFwcGVuZCgiZyIpLHRoaXMuYXhpc0dyb3VwPXRoaXMubWFpbkNvbnRhaW5lci5hcHBlbmQoImciKSx0aGlzLnhTY2FsZT0kbnQoKS5wYWRkaW5nKC4xKSx0aGlzLnlTY2FsZT1tb3QoKS5yYW5nZShbdGhpcy5jaGFydEhlaWdodCwwXSksdGhpcy55QXhpcz1MNih0aGlzLnlTY2FsZSksdGhpcy5yZWRyYXcoKX1uZ09uQ2hhbmdlcyh0KXt0aGlzLnN2ZyYmdGhpcy5yZWRyYXcoKX1yZWRyYXcoKXt0aGlzLnVwZGF0ZURpbWVuc2lvbnMoKSx0aGlzLnVwZGF0ZUF4ZXMoKSx0aGlzLmRyYXcoKX11cGRhdGVEaW1lbnNpb25zKCl7dGhpcy53aWR0aD10aGlzLnN2Z0VsZW1lbnQubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aHx8MTAsdGhpcy5jaGFydFdpZHRoPXRoaXMud2lkdGgtdGhpcy5tYXJnaW4ubGVmdC10aGlzLm1hcmdpbi5yaWdodH11cGRhdGVBeGVzKCl7dGhpcy54U2NhbGUucmFuZ2VSb3VuZChbMCx0aGlzLmNoYXJ0V2lkdGhdKS5kb21haW4odGhpcy5hY3RpdmVNZXRyaWNzKSx0aGlzLnlTY2FsZS5kb21haW4oW3RoaXMuY29vcmRpbmF0ZURhdGEuZXh0cmVtZXMubWluLHRoaXMuY29vcmRpbmF0ZURhdGEuZXh0cmVtZXMubWF4XSl9ZHJhdygpe3RoaXMuZHJhd0F4ZXMoKSx0aGlzLmRyYXdBeGlzTGFiZWxzKCksdGhpcy5kcmF3Q29vcmRpbmF0ZXMoKSx0aGlzLmRyYXdMYWJlbHMoKX1kcmF3QXhlcygpe2NvbnN0IHQ9dGhpcy5heGlzR3JvdXAuc2VsZWN0QWxsKCIuYXhpcy15IikuZGF0YSh0aGlzLmFjdGl2ZU1ldHJpY3MpO3QuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsImF4aXMteSIpLm1lcmdlKHQpLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24odCl7cmV0dXJuYHRyYW5zbGF0ZSgke3RoaXMueFNjYWxlKHQpfSwgMClgfS5iaW5kKHRoaXMpKS5jYWxsKHRoaXMueUF4aXMpLHQuZXhpdCgpLnJlbW92ZSgpfWRyYXdBeGlzTGFiZWxzKCl7Y29uc3QgdD10aGlzLmF4aXNHcm91cC5zZWxlY3RBbGwoIi5heGlzLWJnLXRleHQiKS5kYXRhKHRoaXMuYWN0aXZlTWV0cmljcyk7dC5lbnRlcigpLmFwcGVuZCgidGV4dCIpLmF0dHIoImNsYXNzIiwiYXhpcy1iZy10ZXh0IikuYXR0cigiZm9udC1zaXplIiwiMTNweCIpLmF0dHIoInN0cm9rZS13aWR0aCIsMikuYXR0cigic3Ryb2tlLWxpbmVqb2luIiwicm91bmQiKS5hdHRyKCJzdHJva2UiLCJ3aGl0ZSIpLm1lcmdlKHQpLnRleHQoKHQ9PnQpKS5hdHRyKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKHQpe3JldHVybmB0cmFuc2xhdGUoJHt0aGlzLnhTY2FsZSh0KS01fSwgJHt0aGlzLnlTY2FsZSh0aGlzLmNvb3JkaW5hdGVEYXRhLmV4dHJlbWVzLm1pbil9KSByb3RhdGUoLTkwKWB9LmJpbmQodGhpcykpLHQuZXhpdCgpLnJlbW92ZSgpO2NvbnN0IGU9dGhpcy5heGlzR3JvdXAuc2VsZWN0QWxsKCIuYXhpcy10ZXh0IikuZGF0YSh0aGlzLmFjdGl2ZU1ldHJpY3MpO2UuZW50ZXIoKS5hcHBlbmQoInRleHQiKS5hdHRyKCJmb250LXNpemUiLCIxM3B4IikuYXR0cigiY2xhc3MiLCJheGlzLXRleHQiKS5tZXJnZShlKS50ZXh0KCh0PT50KSkuYXR0cigidHJhbnNmb3JtIixmdW5jdGlvbih0KXtyZXR1cm5gdHJhbnNsYXRlKCR7dGhpcy54U2NhbGUodCktNX0sICR7dGhpcy55U2NhbGUodGhpcy5jb29yZGluYXRlRGF0YS5leHRyZW1lcy5taW4pfSkgcm90YXRlKC05MClgfS5iaW5kKHRoaXMpKSxlLmV4aXQoKS5yZW1vdmUoKX1kcmF3Q29vcmRpbmF0ZXMoKXtjb25zdCB0PXRoaXMuY29vcmRpbmF0ZXNHcm91cC5zZWxlY3RBbGwoIi5jb29yZCIpLmRhdGEodGhpcy5jb29yZGluYXRlRGF0YS5jb29yZGluYXRlcyk7dC5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmF0dHIoImNsYXNzIiwiY29vcmQiKS5hdHRyKCJmaWxsIiwibm9uZSIpLm1lcmdlKHQpLmF0dHIoImQiLHRoaXMucGF0aC5iaW5kKHRoaXMpKS5hdHRyKCJzdHJva2UiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNvbG9yU2NhbGUodC5ydW5JZCl9LmJpbmQodGhpcykpLHQuZXhpdCgpLnJlbW92ZSgpO2NvbnN0IGU9dGhpcy5jb29yZGluYXRlc0dyb3VwLnNlbGVjdEFsbCgiLmhpZGRlbkNvb3JkIikuZGF0YSh0aGlzLmNvb3JkaW5hdGVEYXRhLmNvb3JkaW5hdGVzKTtlLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuYXR0cigiY2xhc3MiLCJoaWRkZW5Db29yZCIpLmF0dHIoInN0cm9rZS13aWR0aCIsIjEwcHgiKS5hdHRyKCJmaWxsIiwibm9uZSIpLmF0dHIoInN0cm9rZSIsInJnYmEoMCwgMCwgMCwgMC4wKSIpLm9uKCJtb3VzZW92ZXIiLHRoaXMuaGFuZGxlQ29vcmRpbmF0ZU1vdXNlT3Zlci5iaW5kKHRoaXMpKS5vbigibW91c2VvdXQiLHRoaXMuaGFuZGxlQ29vcmRpbmF0ZU1vdXNlT3V0LmJpbmQodGhpcykpLm1lcmdlKGUpLmF0dHIoImQiLHRoaXMucGF0aC5iaW5kKHRoaXMpKSxlLmV4aXQoKS5yZW1vdmUoKX1wYXRoKHQpe3JldHVybiB0LnZhbHVlcy5zb3J0KCgodCxlKT0+dGhpcy5hY3RpdmVNZXRyaWNzLmluZGV4T2YodC5tZXRyaWMpLXRoaXMuYWN0aXZlTWV0cmljcy5pbmRleE9mKGUubWV0cmljKSkpLExhdCgpKHQudmFsdWVzLm1hcChmdW5jdGlvbih0KXtsZXQgZT10aGlzLnlTY2FsZSh0Lm5QTUlWYWx1ZSk7cmV0dXJuW3RoaXMueFNjYWxlKHQubWV0cmljKSxlXX0uYmluZCh0aGlzKSkpfWhhbmRsZUNvb3JkaW5hdGVNb3VzZU92ZXIodCxlKXt0aGlzLmxhYmVsc0dyb3VwLnNlbGVjdEFsbCgiLmNvb3JkaW5hdGUtbGFiZWwiKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiEoZS5hbm5vdGF0aW9uPT09dC5hbm5vdGF0aW9uKX0pKS5zdHlsZSgib3BhY2l0eSIsLjEpLHRoaXMuY29vcmRpbmF0ZXNHcm91cC5zZWxlY3RBbGwoIi5jb29yZCIpLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIShlLmFubm90YXRpb249PT10LmFubm90YXRpb24pfSkpLnN0eWxlKCJvcGFjaXR5IiwuMSl9aGFuZGxlQ29vcmRpbmF0ZU1vdXNlT3V0KCl7dGhpcy5sYWJlbHNHcm91cC5zZWxlY3RBbGwoIi5jb29yZGluYXRlLWxhYmVsIikuc3R5bGUoIm9wYWNpdHkiLDEpLHRoaXMuY29vcmRpbmF0ZXNHcm91cC5zZWxlY3RBbGwoIi5jb29yZCIpLnN0eWxlKCJvcGFjaXR5IiwxKX1kcmF3TGFiZWxzKCl7Y29uc3QgdD0zMC90aGlzLnhTY2FsZS5zdGVwKCksZT10aGlzLmNvb3JkaW5hdGVEYXRhLmNvb3JkaW5hdGVzLmxlbmd0aDwzMD90aGlzLmNvb3JkaW5hdGVEYXRhLmNvb3JkaW5hdGVzOltdLG49dGhpcy5sYWJlbHNHcm91cC5zZWxlY3RBbGwoIi5jb29yZGluYXRlLWxhYmVsIikuZGF0YShlKTtuLmVudGVyKCkuYXBwZW5kKCJ0ZXh0IikuYXR0cigiY2xhc3MiLCJjb29yZGluYXRlLWxhYmVsIikuYXR0cigiZm9udC1zaXplIiwiMTBweCIpLm1lcmdlKG4pLnRleHQoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmFubm90YXRpb259KSkuYXR0cigieCIsdGhpcy54U2NhbGUodGhpcy5hY3RpdmVNZXRyaWNzWzBdKSszMCkuYXR0cigieSIsZnVuY3Rpb24oZSl7Y29uc3Qgbj10aGlzLnlTY2FsZShlLnZhbHVlc1swXS5uUE1JVmFsdWU/ZS52YWx1ZXNbMF0ublBNSVZhbHVlOjApLG89dGhpcy55U2NhbGUoZS52YWx1ZXNbMV0ublBNSVZhbHVlP2UudmFsdWVzWzFdLm5QTUlWYWx1ZTowKTtyZXR1cm4oMS10KSpuK3Qqb30uYmluZCh0aGlzKSksbi5leGl0KCkucmVtb3ZlKCl9fSRPdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8JE90KX0sJE90Lsm1Y21wPXNvKHt0eXBlOiRPdCxzZWxlY3RvcnM6W1sicGFyYWxsZWwtY29vcmRpbmF0ZXMtY29tcG9uZW50Il1dLHZpZXdRdWVyeTpmdW5jdGlvbiB0KGUsbil7aWYoMSZlJiZWeShRT3QsNyxLaCksMiZlKXtsZXQgdDtCeSh0PVV5KCkpJiYobi5zdmdFbGVtZW50PXQuZmlyc3QpfX0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlJmKCJyZXNpemUiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uUmVzaXplKGUpfSksITEsT2wpfSxpbnB1dHM6e2FjdGl2ZU1ldHJpY3M6ImFjdGl2ZU1ldHJpY3MiLGNvb3JkaW5hdGVEYXRhOiJjb29yZGluYXRlRGF0YSIsc2lkZWJhcldpZHRoOiJzaWRlYmFyV2lkdGgiLGNvbG9yU2NhbGU6ImNvbG9yU2NhbGUifSxmZWF0dXJlczpbcW9dLGRlY2xzOjIsdmFyczowLGNvbnN0czpbWzEsInBjLWNoYXJ0Il0sWyJjaGFydCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYob2EoKSx2ZigwLCJzdmciLDAsMSkpfSxzdHlsZXM6WyIucGMtY2hhcnRbX25nY29udGVudC0lQ09NUCVde2hlaWdodDozMDBweDt3aWR0aDoxMDAlfSJdLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYigkT3QsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoicGFyYWxsZWwtY29vcmRpbmF0ZXMtY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiLi9wYXJhbGxlbF9jb29yZGluYXRlc19jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9wYXJhbGxlbF9jb29yZGluYXRlc19jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sbnVsbCx7YWN0aXZlTWV0cmljczpbe3R5cGU6Ul99XSxjb29yZGluYXRlRGF0YTpbe3R5cGU6Ul99XSxzaWRlYmFyV2lkdGg6W3t0eXBlOlJffV0sY29sb3JTY2FsZTpbe3R5cGU6Ul99XSxzdmdFbGVtZW50Olt7dHlwZTphcixhcmdzOlsiY2hhcnQiLHtzdGF0aWM6ITAscmVhZDpLaH1dfV0sb25SZXNpemU6W3t0eXBlOlRfLGFyZ3M6WyJ3aW5kb3c6cmVzaXplIixbIiRldmVudCJdXX1dfSk7Y2xhc3MgdFB0e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLmFjdGl2ZVJ1bnMkPXRoaXMuc3RvcmUucGlwZShyUyhfSSkpLnBpcGUoVnQoKHQ9PnQ/QXJyYXkuZnJvbSh0LmVudHJpZXMoKSkuZmlsdGVyKCh0PT50WzFdKSkubWFwKCh0PT50WzBdKSk6W10pKSksdGhpcy5hY3RpdmVNZXRyaWNzJD1LdCh0aGlzLnN0b3JlLnNlbGVjdChxdnQpLHRoaXMuYWN0aXZlUnVucyQsdGhpcy5zdG9yZS5zZWxlY3QoZXh0KSkucGlwZShWdCgoKFt0LGUsbl0pPT57bGV0IG89W107Zm9yKGNvbnN0IG4gb2YgZSl0W25dJiYobz1vLmNvbmNhdCh0W25dLmZpbHRlcigodD0+Tl90KHQpKSkpKTtyZXR1cm4gbz1bLi4ubmV3IFNldChbLi4uT2JqZWN0LmtleXMobiksLi4ub10pXSxvLm1hcCgodD0+el90KHQpKSl9KSkpLHRoaXMuY29vcmRpbmF0ZURhdGEkPUt0KFt0aGlzLnN0b3JlLnNlbGVjdChZdnQpLHRoaXMuc3RvcmUuc2VsZWN0KFh2dCksdGhpcy5hY3RpdmVSdW5zJCx0aGlzLmFjdGl2ZU1ldHJpY3MkXSkucGlwZShWdCgoKFt0LGUsbixvXSk9PihmdW5jdGlvbiBpKHQsZSxuLG8pe2NvbnN0IGk9W10sYT17bWF4Oi0xLG1pbjoxfSxyPW5ldyBTZXQobikscz1uZXcgU2V0KG8pO3JldHVybiAwPT09ci5zaXplfHwwPT09cy5zaXplfHwwPT09T2JqZWN0LmtleXModCkubGVuZ3RoP3tjb29yZGluYXRlczpbXSxleHRyZW1lczp7bWluOi0xLG1heDoxfX06KGUuZm9yRWFjaCgoZT0+e2NvbnN0IG49e307dFtlXS5mb3JFYWNoKCh0PT57ci5oYXModC5ydW4pJiZzLmhhcyh0Lm1ldHJpYykmJihuW3QucnVuXT9uW3QucnVuXS5wdXNoKHQpOm5bdC5ydW5dPVt0XSxudWxsIT09dC5uUE1JVmFsdWU/KGEubWF4PU1hdGgubWF4KGEubWF4LHQublBNSVZhbHVlKSxhLm1pbj1NYXRoLm1pbihhLm1pbix0Lm5QTUlWYWx1ZSkpOihhLm1heD1NYXRoLm1heChhLm1heCwwKSxhLm1pbj1NYXRoLm1pbihhLm1pbiwwKSkpfSkpO2Zvcihjb25zdCB0IG9mIE9iamVjdC5rZXlzKG4pKWkucHVzaCh7YW5ub3RhdGlvbjplLHJ1bklkOnQsdmFsdWVzOm5bdF19KX0pKSxhLm1heDxhLm1pbiYmKGEubWF4PTEsYS5taW49LTEpLHtjb29yZGluYXRlczppLGV4dHJlbWVzOmF9KX0pKHQsZSxuLG8pKSkpLHRoaXMuc2lkZWJhcldpZHRoJD10aGlzLnN0b3JlLnNlbGVjdChjeHQpLHRoaXMucnVuQ29sb3JTY2FsZSQ9dGhpcy5zdG9yZS5zZWxlY3QoQ0kpLnBpcGUoVnQoKHQ9PmU9PntpZighdC5oYXNPd25Qcm9wZXJ0eShlKSl0aHJvdyBuZXcgRXJyb3IoYFtDb2xvciBzY2FsZV0gdW5rbm93biBydW5JZDogJHtlfS5gKTtyZXR1cm4gdFtlXX0pKSl9fWZ1bmN0aW9uIGVQdCh0LGUpezEmdCYmdmYoMCwibWF0LWljb24iLDkpfWZ1bmN0aW9uIG5QdCh0LGUpezEmdCYmdmYoMCwibWF0LWljb24iLDEwKX1mdW5jdGlvbiBvUHQodCxlKXsxJnQmJnZmKDAsIm5wbWktcGFyYWxsZWwtY29vcmRpbmF0ZXMiKX10UHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHRQdCkoZ2YoaVMpKX0sdFB0Lsm1Y21wPXNvKHt0eXBlOnRQdCxzZWxlY3RvcnM6W1sibnBtaS1wYXJhbGxlbC1jb29yZGluYXRlcyJdXSxkZWNsczo1LHZhcnM6MTIsY29uc3RzOltbMywiYWN0aXZlTWV0cmljcyIsImNvb3JkaW5hdGVEYXRhIiwic2lkZWJhcldpZHRoIiwiY29sb3JTY2FsZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYodmYoMCwicGFyYWxsZWwtY29vcmRpbmF0ZXMtY29tcG9uZW50IiwwKSxfeSgxLCJhc3luYyIpLF95KDIsImFzeW5jIiksX3koMywiYXN5bmMiKSxfeSg0LCJhc3luYyIpKSwyJmUmJmJmKCJhY3RpdmVNZXRyaWNzIixDeSgxLDQsbi5hY3RpdmVNZXRyaWNzJCkpKCJjb29yZGluYXRlRGF0YSIsQ3koMiw2LG4uY29vcmRpbmF0ZURhdGEkKSkoInNpZGViYXJXaWR0aCIsQ3koMyw4LG4uc2lkZWJhcldpZHRoJCkpKCJjb2xvclNjYWxlIixDeSg0LDEwLG4ucnVuQ29sb3JTY2FsZSQpKX0sZGlyZWN0aXZlczpbJE90XSxwaXBlczpbVnZdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIodFB0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im5wbWktcGFyYWxsZWwtY29vcmRpbmF0ZXMiLHRlbXBsYXRlOidcbiAgICA8cGFyYWxsZWwtY29vcmRpbmF0ZXMtY29tcG9uZW50XG4gICAgICBbYWN0aXZlTWV0cmljc109ImFjdGl2ZU1ldHJpY3MkIHwgYXN5bmMiXG4gICAgICBbY29vcmRpbmF0ZURhdGFdPSJjb29yZGluYXRlRGF0YSQgfCBhc3luYyJcbiAgICAgIFtzaWRlYmFyV2lkdGhdPSJzaWRlYmFyV2lkdGgkIHwgYXN5bmMiXG4gICAgICBbY29sb3JTY2FsZV09InJ1bkNvbG9yU2NhbGUkIHwgYXN5bmMiXG4gICAgPjwvcGFyYWxsZWwtY29vcmRpbmF0ZXMtY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSksbnVsbCk7Y2xhc3MgaVB0e2NvbnN0cnVjdG9yKCl7dGhpcy5vbkNsZWFyU2VsZWN0ZWRBbm5vdGF0aW9ucz1uZXcgU3ksdGhpcy5vblRvZ2dsZUV4cGFuZGVkPW5ldyBTeX19aVB0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxpUHQpfSxpUHQuybVjbXA9c28oe3R5cGU6aVB0LHNlbGVjdG9yczpbWyJzZWxlY3RlZC1hbm5vdGF0aW9ucy1jb21wb25lbnQiXV0saW5wdXRzOntwY0V4cGFuZGVkOiJwY0V4cGFuZGVkIixzZWxlY3RlZEFubm90YXRpb25zOiJzZWxlY3RlZEFubm90YXRpb25zIn0sb3V0cHV0czp7b25DbGVhclNlbGVjdGVkQW5ub3RhdGlvbnM6Im9uQ2xlYXJTZWxlY3RlZEFubm90YXRpb25zIixvblRvZ2dsZUV4cGFuZGVkOiJvblRvZ2dsZUV4cGFuZGVkIn0sZGVjbHM6MTEsdmFyczo0LGNvbnN0czpmdW5jdGlvbigpe2xldCB0LGU7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGUpe3Q9Z29vZy5nZXRNc2coIkNsZWFyIEFubm90YXRpb24gU2VsZWN0aW9uIil9ZWxzZSB0PSRsb2NhbGl6ZWA6TGFiZWwgZm9yIGEgYnV0dG9uIHRoYXQgY2xlYXJzIHRoZSBhbm5vdGF0aW9uIHNlbGVjdGlvbi7ikJ8yYjUyMjg5ZjJjNGI3ZjViMTgyZWQyM2M5MTU0NzIyZWNkNDZhMmQ04pCfMjQ5NDY2MDUyMDM0MTMwODgzMDpDbGVhciBBbm5vdGF0aW9uIFNlbGVjdGlvbmA7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGUpe2U9Z29vZy5nZXRNc2coIkV4cGFuZC9IaWRlIFNlbGVjdGVkIEFubm90YXRpb25zIil9ZWxzZSBlPSRsb2NhbGl6ZWA6TGFiZWwgZm9yIGEgYnV0dG9uIHRoYXQgZXhwYW5kcyBvciBoaWRlcyBzZWxlY3RlZCBhbm5vdGF0aW9ucy7ikJ84ZjRhZDMwNWMxOWUzNjU1ZjMxODllM2UyNjRlODNmYjc2ZjdiYjk14pCfNTY3MDc5Nzc4NDA3MDk1MjA5NTpFeHBhbmQvSGlkZSBTZWxlY3RlZCBBbm5vdGF0aW9uc2A7cmV0dXJuW1sxLCJwYy1jb250YWluZXIiXSxbMSwicGMtdG9vbGJhciJdLFsxLCJwYy10aXRsZSJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsdCwidGl0bGUiLCJEZXNlbGVjdHMgYWxsIHNlbGVjdGVkIGFubm90YXRpb25zLiIsMSwiY2xlYXItYnV0dG9uIiwzLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJzdmdJY29uIiwiY2xlYXJfMjRweCJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsZSwxLCJleHBhbmQtYnV0dG9uIiwzLCJjbGljayJdLFsic3ZnSWNvbiIsImV4cGFuZF9sZXNzXzI0cHgiLCJjbGFzcyIsImV4cGFuZC1sZXNzLWljb24iLDQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsibm90RXhwYW5kZWQiLCIiXSxbNCwibmdJZiJdLFsic3ZnSWNvbiIsImV4cGFuZF9sZXNzXzI0cHgiLDEsImV4cGFuZC1sZXNzLWljb24iXSxbInN2Z0ljb24iLCJleHBhbmRfbW9yZV8yNHB4IiwxLCJleHBhbmQtaWNvbiJdXX0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKENmKDAsImRpdiIsMCksQ2YoMSwiZGl2IiwxKSxDZigyLCJoMyIsMiksUHUoMywiU2VsZWN0ZWQgQW5ub3RhdGlvbnMiKSxNZigpLENmKDQsImJ1dHRvbiIsMyksUmYoImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uQ2xlYXJTZWxlY3RlZEFubm90YXRpb25zLmVtaXQoKX0pKSx2Zig1LCJtYXQtaWNvbiIsNCksTWYoKSxDZig2LCJidXR0b24iLDUpLFJmKCJjbGljayIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblRvZ2dsZUV4cGFuZGVkLmVtaXQoKX0pKSxIbSg3LGVQdCwxLDAsIm1hdC1pY29uIiw2KSxIbSg4LG5QdCwxLDAsIm5nLXRlbXBsYXRlIixudWxsLDcscXkpLE1mKCksTWYoKSxIbSgxMCxvUHQsMSwwLCJucG1pLXBhcmFsbGVsLWNvb3JkaW5hdGVzIiw4KSxNZigpKSwyJmUpe2NvbnN0IHQ9Rm0oOSk7RGMoNCksYmYoImRpc2FibGVkIiwwPT09bi5zZWxlY3RlZEFubm90YXRpb25zLmxlbmd0aCksRGMoMyksYmYoIm5nSWYiLG4ucGNFeHBhbmRlZCkoIm5nSWZFbHNlIix0KSxEYygzKSxiZigibmdJZiIsbi5wY0V4cGFuZGVkKX19LGRpcmVjdGl2ZXM6W05MLE1xLFB2LHRQdF0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9LnBjLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoxcHggc29saWQgI2ViZWJlYn0ucGMtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlYmViZWI7ZGlzcGxheTpmbGV4O2hlaWdodDo0MnB4O3BhZGRpbmc6MCAxNnB4fS5wYy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwO2Rpc3BsYXk6aW5saW5lO2ZsZXg6MSAxfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihpUHQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3Rvcjoic2VsZWN0ZWQtYW5ub3RhdGlvbnMtY29tcG9uZW50Iix0ZW1wbGF0ZVVybDoiLi9zZWxlY3RlZF9hbm5vdGF0aW9uc19jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9zZWxlY3RlZF9hbm5vdGF0aW9uc19jb21wb25lbnQuY3NzIl0sY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sbnVsbCx7cGNFeHBhbmRlZDpbe3R5cGU6Ul99XSxzZWxlY3RlZEFubm90YXRpb25zOlt7dHlwZTpSX31dLG9uQ2xlYXJTZWxlY3RlZEFubm90YXRpb25zOlt7dHlwZTpFX31dLG9uVG9nZ2xlRXhwYW5kZWQ6W3t0eXBlOkVffV19KTtjbGFzcyBhUHR7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMucGNFeHBhbmRlZCQ9dGhpcy5zdG9yZS5waXBlKHJTKG94dCkpLHRoaXMuc2VsZWN0ZWRBbm5vdGF0aW9ucyQ9dGhpcy5zdG9yZS5zZWxlY3QoWHZ0KX1jbGVhclNlbGVjdGVkQW5ub3RhdGlvbnMoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKF92dCgpKX10b2dnbGVFeHBhbmRlZCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2goRHZ0KCkpfX1mdW5jdGlvbiByUHQodCxlKXtpZigxJnQmJihDZigwLCJkaXYiLDYpLENmKDEsImRpdiIsNyksdmYoMiwibnBtaS12aW9saW4tZmlsdGVycyIsOCksQ2YoMywiZGl2Iiw5KSx2Zig0LCJydW5zLXNlbGVjdG9yIiksTWYoKSxNZigpLE1mKCkpLDImdCl7bHUoIndpZHRoIix6ZigpLnNpZGViYXJXaWR0aCwicHgiKX19ZnVuY3Rpb24gc1B0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwiZGl2IiwxMCksUmYoIm1vdXNlZG93biIsKGZ1bmN0aW9uIGUoKXtQaSh0KTtyZXR1cm4gemYoKS5yZXNpemVHcmFiYmVkLmVtaXQoKX0pKSxNZigpfX1mdW5jdGlvbiBsUHQodCxlKXsxJnQmJihDZigwLCJkaXYiLDExKSx2ZigxLCJucG1pLWFubm90YXRpb25zLWxpc3QiLDEyKSx2ZigyLCJucG1pLXNlbGVjdGVkLWFubm90YXRpb25zIiksTWYoKSl9ZnVuY3Rpb24gY1B0KHQsZSl7MSZ0JiYoQ2YoMCwiZGl2IiwxMyksUHUoMSwiWW91IG5lZWQgdG8gc2VsZWN0IGF0IGxlYXN0IG9uZSBydW4uIiksTWYoKSl9ZnVuY3Rpb24gZFB0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwiZGl2IiwxNCksQ2YoMSwiYnV0dG9uIiwxNSksUmYoImNsaWNrIiwoZnVuY3Rpb24gZSgpe1BpKHQpO3JldHVybiB6ZigpLnRvZ2dsZVNpZGViYXJFeHBhbmRlZC5lbWl0KCl9KSksdmYoMiwibWF0LWljb24iLDE2KSxNZigpLE1mKCl9fWFQdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8YVB0KShnZihpUykpfSxhUHQuybVjbXA9c28oe3R5cGU6YVB0LHNlbGVjdG9yczpbWyJucG1pLXNlbGVjdGVkLWFubm90YXRpb25zIl1dLGRlY2xzOjMsdmFyczo2LGNvbnN0czpbWzMsInBjRXhwYW5kZWQiLCJzZWxlY3RlZEFubm90YXRpb25zIiwib25DbGVhclNlbGVjdGVkQW5ub3RhdGlvbnMiLCJvblRvZ2dsZUV4cGFuZGVkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJzZWxlY3RlZC1hbm5vdGF0aW9ucy1jb21wb25lbnQiLDApLFJmKCJvbkNsZWFyU2VsZWN0ZWRBbm5vdGF0aW9ucyIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5jbGVhclNlbGVjdGVkQW5ub3RhdGlvbnMoKX0pKSgib25Ub2dnbGVFeHBhbmRlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi50b2dnbGVFeHBhbmRlZCgpfSkpLF95KDEsImFzeW5jIiksX3koMiwiYXN5bmMiKSxNZigpKSwyJmUmJmJmKCJwY0V4cGFuZGVkIixDeSgxLDIsbi5wY0V4cGFuZGVkJCkpKCJzZWxlY3RlZEFubm90YXRpb25zIixDeSgyLDQsbi5zZWxlY3RlZEFubm90YXRpb25zJCkpfSxkaXJlY3RpdmVzOltpUHRdLHBpcGVzOltWdl0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihhUHQsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoibnBtaS1zZWxlY3RlZC1hbm5vdGF0aW9ucyIsdGVtcGxhdGU6J1xuICAgIDxzZWxlY3RlZC1hbm5vdGF0aW9ucy1jb21wb25lbnRcbiAgICAgIFtwY0V4cGFuZGVkXT0icGNFeHBhbmRlZCQgfCBhc3luYyJcbiAgICAgIFtzZWxlY3RlZEFubm90YXRpb25zXT0ic2VsZWN0ZWRBbm5vdGF0aW9ucyQgfCBhc3luYyJcbiAgICAgIChvbkNsZWFyU2VsZWN0ZWRBbm5vdGF0aW9ucyk9ImNsZWFyU2VsZWN0ZWRBbm5vdGF0aW9ucygpIlxuICAgICAgKG9uVG9nZ2xlRXhwYW5kZWQpPSJ0b2dnbGVFeHBhbmRlZCgpIlxuICAgID48L3NlbGVjdGVkLWFubm90YXRpb25zLWNvbXBvbmVudD5cbiAgJyxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aVN9XX0pLG51bGwpO2NsYXNzIHBQdHtjb25zdHJ1Y3Rvcigpe3RoaXMudG9nZ2xlU2lkZWJhckV4cGFuZGVkPW5ldyBTeSx0aGlzLnJlc2l6ZVRyaWdnZXJlZD1uZXcgU3ksdGhpcy5yZXNpemVHcmFiYmVkPW5ldyBTeSx0aGlzLnJlc2l6ZVJlbGVhc2VkPW5ldyBTeX19cFB0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxwUHQpfSxwUHQuybVjbXA9c28oe3R5cGU6cFB0LHNlbGVjdG9yczpbWyJtYWluLWNvbXBvbmVudCJdXSxpbnB1dHM6e3J1bkFjdGl2ZToicnVuQWN0aXZlIixzaWRlYmFyRXhwYW5kZWQ6InNpZGViYXJFeHBhbmRlZCIsc2lkZWJhcldpZHRoOiJzaWRlYmFyV2lkdGgifSxvdXRwdXRzOnt0b2dnbGVTaWRlYmFyRXhwYW5kZWQ6InRvZ2dsZVNpZGViYXJFeHBhbmRlZCIscmVzaXplVHJpZ2dlcmVkOiJyZXNpemVUcmlnZ2VyZWQiLHJlc2l6ZUdyYWJiZWQ6InJlc2l6ZUdyYWJiZWQiLHJlc2l6ZVJlbGVhc2VkOiJyZXNpemVSZWxlYXNlZCJ9LGRlY2xzOjgsdmFyczo1LGNvbnN0czpmdW5jdGlvbigpe2xldCB0O2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbmdJMThuQ2xvc3VyZU1vZGUmJm5nSTE4bkNsb3N1cmVNb2RlKXt0PWdvb2cuZ2V0TXNnKCJUb2dnbGUgU2lkZWJhciIpfWVsc2UgdD0kbG9jYWxpemVgOkxhYmVsIGZvciBhIGJ1dHRvbiB0aGF0IHRvZ2dsZXMgdGhlIHNpZGViYXIu4pCfZjYzYjU3OTMyZDE3OWNjYTYyYWM5ZmNhZTYzZGQ3ZjVlNmZhMzg5ZuKQnzQ0ODUwMDkzNDc0NDQ3MDQ4Nzg6VG9nZ2xlIFNpZGViYXJgO3JldHVybltbMSwiY29udGVudCIsMywibW91c2V1cCIsIm1vdXNlbW92ZSJdLFsiY2xhc3MiLCJzaWRlYmFyLWNvbnRhaW5lciIsMywid2lkdGgiLDQsIm5nSWYiXSxbImNsYXNzIiwiZ3JhYmJlciIsMywibW91c2Vkb3duIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImFuYWx5c2lzLWNvbnRhaW5lciIsNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJub1J1biIsIiJdLFsiY2xhc3MiLCJzaWRlLXRvZ2dsZSIsNCwibmdJZiJdLFsxLCJzaWRlYmFyLWNvbnRhaW5lciJdLFsxLCJzaWRlYmFyLWNvbnRlbnRzIl0sWzEsInZpb2xpbi1maWx0ZXJzIl0sWzEsInJ1bi1zZWxlY3RvciJdLFsxLCJncmFiYmVyIiwzLCJtb3VzZWRvd24iXSxbMSwiYW5hbHlzaXMtY29udGFpbmVyIl0sWzEsImFubm90YXRpb25zLWxpc3QiXSxbMSwibm9SdW4iXSxbMSwic2lkZS10b2dnbGUiXSxbIm1hdC1pY29uLWJ1dHRvbiIsIiIsImFyaWEtbGFiZWwiLHQsMywiY2xpY2siXSxbInN2Z0ljb24iLCJjaGV2cm9uX3JpZ2h0XzI0cHgiXV19LHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJih2ZigwLCJucG1pLWRhdGEtc2VsZWN0aW9uIiksQ2YoMSwiZGl2IiwwKSxSZigibW91c2V1cCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5yZXNpemVSZWxlYXNlZC5lbWl0KCl9KSkoIm1vdXNlbW92ZSIsKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4ucmVzaXplVHJpZ2dlcmVkLmVtaXQoZSl9KSksSG0oMixyUHQsNSwyLCJkaXYiLDEpLEhtKDMsc1B0LDEsMCwiZGl2IiwyKSxIbSg0LGxQdCwzLDAsImRpdiIsMyksSG0oNSxjUHQsMiwwLCJuZy10ZW1wbGF0ZSIsbnVsbCw0LHF5KSxNZigpLEhtKDcsZFB0LDMsMCwiZGl2Iiw1KSksMiZlKXtjb25zdCB0PUZtKDYpO0RjKDIpLGJmKCJuZ0lmIixuLnNpZGViYXJFeHBhbmRlZCksRGMoMSksYmYoIm5nSWYiLG4uc2lkZWJhckV4cGFuZGVkKSxEYygxKSxiZigibmdJZiIsITA9PT1uLnJ1bkFjdGl2ZSkoIm5nSWZFbHNlIix0KSxEYygzKSxiZigibmdJZiIsIW4uc2lkZWJhckV4cGFuZGVkKX19LGRpcmVjdGl2ZXM6W2VPdCxQdixkT3QsYjQsSk90LGFQdCxOTCxNcV0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7ZmxleDoxO21pbi1oZWlnaHQ6MHB4O3dpZHRoOjEwMCV9LnNpZGViYXItY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW59LnNpZGViYXItY29udGVudHNbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjE1MHB4fS5hbmFseXNpcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMCU7ZmxleDoxIDF9LnJ1bi1zZWxlY3Rvcltfbmdjb250ZW50LSVDT01QJV17bWF4LWhlaWdodDoxMDAlO3dpZHRoOjEwMCV9LnZpb2xpbi1maWx0ZXJzW19uZ2NvbnRlbnQtJUNPTVAlXXttaW4taGVpZ2h0OjBweDt3aWR0aDoxMDAlfS5zaWRlLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MzBweDtoZWlnaHQ6MzBweDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjEwcHg7Ym90dG9tOjEwcHg7Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO2JvcmRlci1yYWRpdXM6M3B4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uZ3JhYmJlcltfbmdjb250ZW50LSVDT01QJV17Y29udGVudDoiIjtjdXJzb3I6ZXctcmVzaXplO2hlaWdodDoxMDAlO3dpZHRoOjNweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9LmFubm90YXRpb25zLWxpc3RbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCU7bWluLWhlaWdodDowcHg7ZmxleDoxIDF9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHBQdCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJtYWluLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vbWFpbl9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9tYWluX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSxudWxsLHtydW5BY3RpdmU6W3t0eXBlOlJffV0sc2lkZWJhckV4cGFuZGVkOlt7dHlwZTpSX31dLHNpZGViYXJXaWR0aDpbe3R5cGU6Ul99XSx0b2dnbGVTaWRlYmFyRXhwYW5kZWQ6W3t0eXBlOkVffV0scmVzaXplVHJpZ2dlcmVkOlt7dHlwZTpFX31dLHJlc2l6ZUdyYWJiZWQ6W3t0eXBlOkVffV0scmVzaXplUmVsZWFzZWQ6W3t0eXBlOkVffV19KTtjbGFzcyBtUHR7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMucnVuQWN0aXZlJD10aGlzLnN0b3JlLnBpcGUoclMoX0kpKS5waXBlKFZ0KCh0PT4hIXQmJlsuLi50LnZhbHVlcygpXS5pbmNsdWRlcyghMCkpKSksdGhpcy5zaWRlYmFyRXhwYW5kZWQkPXRoaXMuc3RvcmUucGlwZShyUyhheHQpKSx0aGlzLnNpZGViYXJXaWR0aCQ9dGhpcy5zdG9yZS5waXBlKHJTKGN4dCkpLHRoaXMucmVzaXppbmc9ITF9b25Ub2dnbGVTaWRlYmFyRXhwYW5kZWQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKEV2dCgpKX1vblJlc2l6ZVRyaWdnZXJlZCh0KXt0aGlzLnJlc2l6aW5nJiZ0aGlzLnN0b3JlLmRpc3BhdGNoKHp2dCh7c2lkZWJhcldpZHRoOnQuY2xpZW50WH0pKX1vblJlc2l6ZUdyYWJiZWQoKXt0aGlzLnJlc2l6aW5nPSEwfW9uUmVzaXplUmVsZWFzZWQoKXt0aGlzLnJlc2l6aW5nPSExfX1tUHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fG1QdCkoZ2YoaVMpKX0sbVB0Lsm1Y21wPXNvKHt0eXBlOm1QdCxzZWxlY3RvcnM6W1sibnBtaS1tYWluIl1dLGRlY2xzOjQsdmFyczo5LGNvbnN0czpbWzMsInJ1bkFjdGl2ZSIsInNpZGViYXJFeHBhbmRlZCIsInNpZGViYXJXaWR0aCIsInRvZ2dsZVNpZGViYXJFeHBhbmRlZCIsInJlc2l6ZVRyaWdnZXJlZCIsInJlc2l6ZUdyYWJiZWQiLCJyZXNpemVSZWxlYXNlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwibWFpbi1jb21wb25lbnQiLDApLFJmKCJ0b2dnbGVTaWRlYmFyRXhwYW5kZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25Ub2dnbGVTaWRlYmFyRXhwYW5kZWQoKX0pKSgicmVzaXplVHJpZ2dlcmVkIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5vblJlc2l6ZVRyaWdnZXJlZChlKX0pKSgicmVzaXplR3JhYmJlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblJlc2l6ZUdyYWJiZWQoKX0pKSgicmVzaXplUmVsZWFzZWQiLChmdW5jdGlvbiB0KCl7cmV0dXJuIG4ub25SZXNpemVSZWxlYXNlZCgpfSkpLF95KDEsImFzeW5jIiksX3koMiwiYXN5bmMiKSxfeSgzLCJhc3luYyIpLE1mKCkpLDImZSYmYmYoInJ1bkFjdGl2ZSIsQ3koMSwzLG4ucnVuQWN0aXZlJCkpKCJzaWRlYmFyRXhwYW5kZWQiLEN5KDIsNSxuLnNpZGViYXJFeHBhbmRlZCQpKSgic2lkZWJhcldpZHRoIixDeSgzLDcsbi5zaWRlYmFyV2lkdGgkKSl9LGRpcmVjdGl2ZXM6W3BQdF0scGlwZXM6W1Z2XSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKG1QdCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJucG1pLW1haW4iLHRlbXBsYXRlOidcbiAgICA8bWFpbi1jb21wb25lbnRcbiAgICAgIFtydW5BY3RpdmVdPSJydW5BY3RpdmUkIHwgYXN5bmMiXG4gICAgICBbc2lkZWJhckV4cGFuZGVkXT0ic2lkZWJhckV4cGFuZGVkJCB8IGFzeW5jIlxuICAgICAgW3NpZGViYXJXaWR0aF09InNpZGViYXJXaWR0aCQgfCBhc3luYyJcbiAgICAgICh0b2dnbGVTaWRlYmFyRXhwYW5kZWQpPSJvblRvZ2dsZVNpZGViYXJFeHBhbmRlZCgpIlxuICAgICAgKHJlc2l6ZVRyaWdnZXJlZCk9Im9uUmVzaXplVHJpZ2dlcmVkKCRldmVudCkiXG4gICAgICAocmVzaXplR3JhYmJlZCk9Im9uUmVzaXplR3JhYmJlZCgpIlxuICAgICAgKHJlc2l6ZVJlbGVhc2VkKT0ib25SZXNpemVSZWxlYXNlZCgpIlxuICAgID48L21haW4tY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSksbnVsbCk7Y2xhc3MgZlB0e2NvbnN0cnVjdG9yKCl7dGhpcy50b2dnbGVTaWRlYmFyRXhwYW5kZWQ9bmV3IFN5fX1mUHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGZQdCl9LGZQdC7JtWNtcD1zbyh7dHlwZTpmUHQsc2VsZWN0b3JzOltbImVtYmVkZGluZy1wcm9qZWN0aW9uLWNvbXBvbmVudCJdXSxpbnB1dHM6e3NpZGViYXJFeHBhbmRlZDoic2lkZWJhckV4cGFuZGVkIn0sb3V0cHV0czp7dG9nZ2xlU2lkZWJhckV4cGFuZGVkOiJ0b2dnbGVTaWRlYmFyRXhwYW5kZWQifSxkZWNsczo3LHZhcnM6MCxjb25zdHM6ZnVuY3Rpb24oKXtsZXQgdDtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG5nSTE4bkNsb3N1cmVNb2RlJiZuZ0kxOG5DbG9zdXJlTW9kZSl7dD1nb29nLmdldE1zZygiRXhwYW5kL0hpZGUgU2lkZWJhciIpfWVsc2UgdD0kbG9jYWxpemVgOkxhYmVsIGZvciBhIGJ1dHRvbiB0aGF0IGV4cGFuZHMvaGlkZXMgdGhlIHNpZGViYXIu4pCfNDhjMjk5MDNjZTg4MWFiNjEwODhmOGQ0OWQ4MjcyMDM3MTZhYWVkNOKQnzQ2NTg2MDI5OTE5NzAyNjAyMTU6RXhwYW5kL0hpZGUgU2lkZWJhcmA7cmV0dXJuW1sxLCJlbWJlZGRpbmctcHJvamVjdGlvbi10b29sYmFyIl0sWzEsImVtYmVkZGluZy1wcm9qZWN0aW9uLXRpdGxlIl0sWzEsInNpZGUtdG9nZ2xlIl0sWyJtYXQtaWNvbi1idXR0b24iLCIiLCJhcmlhLWxhYmVsIix0LDMsImNsaWNrIl0sWyJzdmdJY29uIiwiY2hldnJvbl9sZWZ0XzI0cHgiXSxbMSwicHJvamVjdGlvbiJdXX0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKENmKDAsImRpdiIsMCksQ2YoMSwiaDMiLDEpLFB1KDIsIkVtYmVkZGluZ3MgUHJvamVjdGVkIiksTWYoKSxDZigzLCJkaXYiLDIpLENmKDQsImJ1dHRvbiIsMyksUmYoImNsaWNrIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLnRvZ2dsZVNpZGViYXJFeHBhbmRlZC5lbWl0KCl9KSksdmYoNSwibWF0LWljb24iLDQpLE1mKCksTWYoKSxNZigpLHZmKDYsImRpdiIsNSkpfSxkaXJlY3RpdmVzOltOTCxNcV0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDoxMDAlfS5lbWJlZGRpbmctcHJvamVjdGlvbi10b29sYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWJlYjtkaXNwbGF5OmZsZXg7aGVpZ2h0OjQycHg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzowIDEwcHh9LmVtYmVkZGluZy1wcm9qZWN0aW9uLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZTtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9LnByb2plY3Rpb25bX25nY29udGVudC0lQ09NUCVde292ZXJmbG93LXk6YXV0b30uc2lkZS10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czozcHg7Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MzBweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjMwcHh9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGZQdCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJlbWJlZGRpbmctcHJvamVjdGlvbi1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL2VtYmVkZGluZ19wcm9qZWN0aW9uX2NvbXBvbmVudC5uZy5odG1sIixzdHlsZVVybHM6WyIuL2VtYmVkZGluZ19wcm9qZWN0aW9uX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSxudWxsLHtzaWRlYmFyRXhwYW5kZWQ6W3t0eXBlOlJffV0sdG9nZ2xlU2lkZWJhckV4cGFuZGVkOlt7dHlwZTpFX31dfSk7Y2xhc3MgdVB0e2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmU9dCx0aGlzLnNpZGViYXJFeHBhbmRlZCQ9dGhpcy5zdG9yZS5zZWxlY3QobXh0KX1vblRvZ2dsZVNpZGViYXJFeHBhbmRlZCgpe3RoaXMuc3RvcmUuZGlzcGF0Y2goSHZ0KCkpfX1mdW5jdGlvbiBnUHQodCxlKXtpZigxJnQmJihDZigwLCJkaXYiLDYpLENmKDEsImRpdiIsNyksdmYoMiwibnBtaS1lbWJlZGRpbmctcHJvamVjdGlvbiIsOCksdmYoMywiZGl2Iiw5KSxDZig0LCJkaXYiLDEwKSx2Zig1LCJydW5zLXNlbGVjdG9yIiksTWYoKSxNZigpLE1mKCkpLDImdCl7bHUoIndpZHRoIix6ZigpLnNpZGViYXJXaWR0aCwicHgiKX19ZnVuY3Rpb24gaFB0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwiZGl2IiwxMSksUmYoIm1vdXNlZG93biIsKGZ1bmN0aW9uIGUoKXtQaSh0KTtyZXR1cm4gemYoKS5yZXNpemVHcmFiYmVkLmVtaXQoKX0pKSxNZigpfX1mdW5jdGlvbiBiUHQodCxlKXsxJnQmJihDZigwLCJkaXYiLDEyKSx2ZigxLCJucG1pLWFubm90YXRpb25zLWxpc3QiLDEzKSx2ZigyLCJucG1pLXNlbGVjdGVkLWFubm90YXRpb25zIiksTWYoKSl9ZnVuY3Rpb24geVB0KHQsZSl7MSZ0JiYoQ2YoMCwiZGl2IiwxNCksUHUoMSwiWW91IG5lZWQgdG8gc2VsZWN0IGF0IGxlYXN0IG9uZSBydW4uIiksTWYoKSl9ZnVuY3Rpb24gX1B0KHQsZSl7aWYoMSZ0KXtjb25zdCB0PXdmKCk7Q2YoMCwiZGl2IiwxNSksQ2YoMSwiYnV0dG9uIiwxNiksUmYoImNsaWNrIiwoZnVuY3Rpb24gZSgpe1BpKHQpO3JldHVybiB6ZigpLnRvZ2dsZVNpZGViYXJFeHBhbmRlZC5lbWl0KCl9KSksdmYoMiwibWF0LWljb24iLDE3KSxNZigpLE1mKCl9fXVQdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8dVB0KShnZihpUykpfSx1UHQuybVjbXA9c28oe3R5cGU6dVB0LHNlbGVjdG9yczpbWyJucG1pLWVtYmVkZGluZy1wcm9qZWN0aW9uIl1dLGRlY2xzOjIsdmFyczozLGNvbnN0czpbWzMsInNpZGViYXJFeHBhbmRlZCIsInRvZ2dsZVNpZGViYXJFeHBhbmRlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYoQ2YoMCwiZW1iZWRkaW5nLXByb2plY3Rpb24tY29tcG9uZW50IiwwKSxSZigidG9nZ2xlU2lkZWJhckV4cGFuZGVkIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uVG9nZ2xlU2lkZWJhckV4cGFuZGVkKCl9KSksX3koMSwiYXN5bmMiKSxNZigpKSwyJmUmJmJmKCJzaWRlYmFyRXhwYW5kZWQiLEN5KDEsMSxuLnNpZGViYXJFeHBhbmRlZCQpKX0sZGlyZWN0aXZlczpbZlB0XSxwaXBlczpbVnZdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIodVB0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im5wbWktZW1iZWRkaW5nLXByb2plY3Rpb24iLHRlbXBsYXRlOidcbiAgICA8ZW1iZWRkaW5nLXByb2plY3Rpb24tY29tcG9uZW50XG4gICAgICBbc2lkZWJhckV4cGFuZGVkXT0ic2lkZWJhckV4cGFuZGVkJCB8IGFzeW5jIlxuICAgICAgKHRvZ2dsZVNpZGViYXJFeHBhbmRlZCk9Im9uVG9nZ2xlU2lkZWJhckV4cGFuZGVkKCkiXG4gICAgPjwvZW1iZWRkaW5nLXByb2plY3Rpb24tY29tcG9uZW50PlxuICAnLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSksbnVsbCk7Y2xhc3MgQ1B0e2NvbnN0cnVjdG9yKCl7dGhpcy50b2dnbGVTaWRlYmFyRXhwYW5kZWQ9bmV3IFN5LHRoaXMucmVzaXplVHJpZ2dlcmVkPW5ldyBTeSx0aGlzLnJlc2l6ZUdyYWJiZWQ9bmV3IFN5LHRoaXMucmVzaXplUmVsZWFzZWQ9bmV3IFN5fX1DUHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fENQdCl9LENQdC7JtWNtcD1zbyh7dHlwZTpDUHQsc2VsZWN0b3JzOltbImVtYmVkZGluZ3MtY29tcG9uZW50Il1dLGlucHV0czp7cnVuQWN0aXZlOiJydW5BY3RpdmUiLHNpZGViYXJFeHBhbmRlZDoic2lkZWJhckV4cGFuZGVkIixzaWRlYmFyV2lkdGg6InNpZGViYXJXaWR0aCJ9LG91dHB1dHM6e3RvZ2dsZVNpZGViYXJFeHBhbmRlZDoidG9nZ2xlU2lkZWJhckV4cGFuZGVkIixyZXNpemVUcmlnZ2VyZWQ6InJlc2l6ZVRyaWdnZXJlZCIscmVzaXplR3JhYmJlZDoicmVzaXplR3JhYmJlZCIscmVzaXplUmVsZWFzZWQ6InJlc2l6ZVJlbGVhc2VkIn0sZGVjbHM6OCx2YXJzOjUsY29uc3RzOmZ1bmN0aW9uKCl7bGV0IHQ7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuZ0kxOG5DbG9zdXJlTW9kZSYmbmdJMThuQ2xvc3VyZU1vZGUpe3Q9Z29vZy5nZXRNc2coIlRvZ2dsZSBTaWRlYmFyIil9ZWxzZSB0PSRsb2NhbGl6ZWA6TGFiZWwgZm9yIGEgYnV0dG9uIHRoYXQgdG9nZ2xlcyB0aGUgc2lkZWJhci7ikJ9mNjNiNTc5MzJkMTc5Y2NhNjJhYzlmY2FlNjNkZDdmNWU2ZmEzODlm4pCfNDQ4NTAwOTM0NzQ0NDcwNDg3ODpUb2dnbGUgU2lkZWJhcmA7cmV0dXJuW1sxLCJjb250ZW50IiwzLCJtb3VzZXVwIiwibW91c2Vtb3ZlIl0sWyJjbGFzcyIsInNpZGViYXItY29udGFpbmVyIiwzLCJ3aWR0aCIsNCwibmdJZiJdLFsiY2xhc3MiLCJncmFiYmVyIiwzLCJtb3VzZWRvd24iLDQsIm5nSWYiXSxbImNsYXNzIiwiYW5hbHlzaXMtY29udGFpbmVyIiw0LCJuZ0lmIiwibmdJZkVsc2UiXSxbIm5vUnVuIiwiIl0sWyJjbGFzcyIsInNpZGUtdG9nZ2xlIiw0LCJuZ0lmIl0sWzEsInNpZGViYXItY29udGFpbmVyIl0sWzEsInNpZGViYXItY29udGVudHMiXSxbMSwiZW1iZWRkaW5nLXByb2plY3Rpb24iXSxbMSwicnVuLWRpdmlkZXIiXSxbMSwicnVuLXNlbGVjdG9yIl0sWzEsImdyYWJiZXIiLDMsIm1vdXNlZG93biJdLFsxLCJhbmFseXNpcy1jb250YWluZXIiXSxbMSwiYW5ub3RhdGlvbnMtbGlzdCJdLFsxLCJub1J1biJdLFsxLCJzaWRlLXRvZ2dsZSJdLFsibWF0LWljb24tYnV0dG9uIiwiIiwiYXJpYS1sYWJlbCIsdCwzLCJjbGljayJdLFsic3ZnSWNvbiIsImNoZXZyb25fcmlnaHRfMjRweCJdXX0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pe2lmKDEmZSYmKHZmKDAsIm5wbWktZGF0YS1zZWxlY3Rpb24iKSxDZigxLCJkaXYiLDApLFJmKCJtb3VzZXVwIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLnJlc2l6ZVJlbGVhc2VkLmVtaXQoKX0pKSgibW91c2Vtb3ZlIiwoZnVuY3Rpb24gdChlKXtyZXR1cm4gbi5yZXNpemVUcmlnZ2VyZWQuZW1pdChlKX0pKSxIbSgyLGdQdCw2LDIsImRpdiIsMSksSG0oMyxoUHQsMSwwLCJkaXYiLDIpLEhtKDQsYlB0LDMsMCwiZGl2IiwzKSxIbSg1LHlQdCwyLDAsIm5nLXRlbXBsYXRlIixudWxsLDQscXkpLE1mKCksSG0oNyxfUHQsMywwLCJkaXYiLDUpKSwyJmUpe2NvbnN0IHQ9Rm0oNik7RGMoMiksYmYoIm5nSWYiLG4uc2lkZWJhckV4cGFuZGVkKSxEYygxKSxiZigibmdJZiIsbi5zaWRlYmFyRXhwYW5kZWQpLERjKDEpLGJmKCJuZ0lmIiwhMD09PW4ucnVuQWN0aXZlKSgibmdJZkVsc2UiLHQpLERjKDMpLGJmKCJuZ0lmIiwhbi5zaWRlYmFyRXhwYW5kZWQpfX0sZGlyZWN0aXZlczpbZU90LFB2LHVQdCxiNCxKT3QsYVB0LE5MLE1xXSxzdHlsZXM6WycubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1iYWRnZS1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWJhZGdlLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4fS5tYXQtaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWhlYWRsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgxW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdWJoZWFkaW5nLTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgMTZweH0ubWF0LWg1W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjttYXJnaW46MCAwIDEycHh9Lm1hdC1oNltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS1zdHJvbmdbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWJvZHktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTFbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDEycHh9Lm1hdC1zbWFsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FwdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6MzAwIDExMnB4LzExMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wNWVtO21hcmdpbjowIDAgNTZweH0ubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktM1tfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNTZweC81NnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWRpc3BsYXktMltfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgNDVweC80OHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotMC4wMDVlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTFbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDM0cHgvNDBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowIDAgNjRweH0ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1yYWlzZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3Ryb2tlZC1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZsYXQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mYWJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW1pbmktZmFiW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtYnV0dG9uLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1jYXJkLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtc3VidGl0bGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcmQtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2hlY2tib3gtbGF5b3V0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hlY2tib3gtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHh9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jaGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWhlYWRlci1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jZWxsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb290ZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1jYWxlbmRhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEzcHh9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgdGhbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWRpYWxvZy10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMTI1O2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTUwJTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjVlbTt3aWR0aDoxLjVlbX0ubWF0LWZvcm0tZmllbGQtcHJlZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW07bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41ZW0gMDtib3JkZXItdG9wOi44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3RvcDotMC44NDM3NWVtO3BhZGRpbmctdG9wOi44NDM3NWVtfS5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjc1JTttYXJnaW4tdG9wOi42NjY2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctYm90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi40Mzc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzUzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMjgxMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3lbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOi41NDE2NjY2NjY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKX1AbWVkaWEgcHJpbnR7Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2xbX25nY29udGVudC0lQ09NUCVdOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KX19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjI1ZW0gMCAuNzVlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LTAuNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtaW5maXhbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MWVtIDAgMWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotMC4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO3dpZHRoOjEzMy4zMzMzMzMzMzMzJX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF1bX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzQzMzMzMyV9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZChuKzIpLCAubWF0LWdyaWQtdGlsZS1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH1pbnB1dC5tYXQtaW5wdXQtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDotMC4wNjI1ZW19Lm1hdC1tZW51LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDB9Lm1hdC1wYWdpbmF0b3JbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5tYXQtcmFkaW8tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXNlbGVjdC10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS4xMjVlbX0ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXN0ZXBwZXItdmVydGljYWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc3RlcC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0Om5vcm1hbH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdGFiLWdyb3VwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRhYi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdG9vbGJhcltfbmdjb250ZW50LSVDT01QJV0gICBoNltfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjB9Lm1hdC10b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweH0ubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LXN1YmhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3QtaXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAxNHB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LXNpbXBsZS1zbmFja2Jhcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRyZWVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtbmVzdGVkLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGVbX25nY29udGVudC0lQ09NUCVdOm5vdCg6ZW1wdHkpe3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzp2aXNpYmxlfS5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7dHJhbnNmb3JtOnNjYWxlKDApfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1yaXBwbGUtZWxlbWVudFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5jZGstdmlzdWFsbHktaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdOmVtcHR5e2Rpc3BsYXk6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDAwO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi42fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVdLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTowfS5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4fS5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZVtfbmdjb250ZW50LSVDT01QJV17cmVzaXplOm5vbmV9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50fXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMCAhaW1wb3J0YW50O2JveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDtoZWlnaHQ6MCAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7fUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5ke30uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbjpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXN9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtc30ubWF0LWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX1bX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMCV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4OjE7bWluLWhlaWdodDowcHg7d2lkdGg6MTAwJX0uc2lkZWJhci1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn0uc2lkZWJhci1jb250ZW50c1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtoZWlnaHQ6MTAwJTttaW4td2lkdGg6MTUwcHh9LmFuYWx5c2lzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXg6MSAxO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtoZWlnaHQ6MTAwJX0ucnVuLXNlbGVjdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXttYXgtaGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uZW1iZWRkaW5nLXByb2plY3Rpb25bX25nY29udGVudC0lQ09NUCVde21pbi1oZWlnaHQ6MHB4O3dpZHRoOjEwMCV9LnNpZGUtdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyOjFweCBzb2xpZCAjZWJlYmViO2JvcmRlci1yYWRpdXM6M3B4O2JvdHRvbToxMHB4O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MzBweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2xlZnQ6MTBweDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDozMHB4fS5ydW4tZGl2aWRlcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xMik7Y29udGVudDoiIjtoZWlnaHQ6MXB4O292ZXJmbG93OmhpZGRlbn0uZ3JhYmJlcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xMik7Y29udGVudDoiIjtjdXJzb3I6ZXctcmVzaXplO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjt3aWR0aDozcHh9LmFubm90YXRpb25zLWxpc3RbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MSAxO21pbi1oZWlnaHQ6MHB4O3dpZHRoOjEwMCV9J10sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKENQdCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJlbWJlZGRpbmdzLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vZW1iZWRkaW5nc19jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9lbWJlZGRpbmdzX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSxudWxsLHtydW5BY3RpdmU6W3t0eXBlOlJffV0sc2lkZWJhckV4cGFuZGVkOlt7dHlwZTpSX31dLHNpZGViYXJXaWR0aDpbe3R5cGU6Ul99XSx0b2dnbGVTaWRlYmFyRXhwYW5kZWQ6W3t0eXBlOkVffV0scmVzaXplVHJpZ2dlcmVkOlt7dHlwZTpFX31dLHJlc2l6ZUdyYWJiZWQ6W3t0eXBlOkVffV0scmVzaXplUmVsZWFzZWQ6W3t0eXBlOkVffV19KTtjbGFzcyBNUHR7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMucnVuQWN0aXZlJD10aGlzLnN0b3JlLnBpcGUoclMoX0kpKS5waXBlKFZ0KCh0PT4hIXQmJlsuLi50LnZhbHVlcygpXS5pbmNsdWRlcyghMCkpKSksdGhpcy5zaWRlYmFyRXhwYW5kZWQkPXRoaXMuc3RvcmUucGlwZShyUyhteHQpKSx0aGlzLnNpZGViYXJXaWR0aCQ9dGhpcy5zdG9yZS5waXBlKHJTKHB4dCkpLHRoaXMucmVzaXppbmc9ITF9b25Ub2dnbGVTaWRlYmFyRXhwYW5kZWQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKEh2dCgpKX1vblJlc2l6ZVRyaWdnZXJlZCh0KXt0aGlzLnJlc2l6aW5nJiZ0aGlzLnN0b3JlLmRpc3BhdGNoKEl2dCh7c2lkZWJhcldpZHRoOnQuY2xpZW50WH0pKX1vblJlc2l6ZUdyYWJiZWQoKXt0aGlzLnJlc2l6aW5nPSEwfW9uUmVzaXplUmVsZWFzZWQoKXt0aGlzLnJlc2l6aW5nPSExfX1mdW5jdGlvbiB2UHQodCxlKXsxJnQmJnZmKDAsIm5wbWktaW5hY3RpdmUtdmlldyIpfWZ1bmN0aW9uIHhQdCh0LGUpezEmdCYmdmYoMCwibnBtaS1tYWluIil9ZnVuY3Rpb24gT1B0KHQsZSl7MSZ0JiZ2ZigwLCJucG1pLWVtYmVkZGluZ3MiKX1mdW5jdGlvbiBQUHQodCxlKXtpZigxJnQmJihIbSgwLHhQdCwxLDAsIm5wbWktbWFpbiIsMyksSG0oMSxPUHQsMSwwLCJucG1pLWVtYmVkZGluZ3MiLDMpKSwyJnQpe2NvbnN0IHQ9emYoKTtiZigibmdJZiIsdC5hY3RpdmVWaWV3PT09dC5WaWV3QWN0aXZlLkRFRkFVTFQpLERjKDEpLGJmKCJuZ0lmIix0LmFjdGl2ZVZpZXc9PT10LlZpZXdBY3RpdmUuRU1CRURESU5HUyl9fU1QdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TVB0KShnZihpUykpfSxNUHQuybVjbXA9c28oe3R5cGU6TVB0LHNlbGVjdG9yczpbWyJucG1pLWVtYmVkZGluZ3MiXV0sZGVjbHM6NCx2YXJzOjksY29uc3RzOltbMywicnVuQWN0aXZlIiwic2lkZWJhckV4cGFuZGVkIiwic2lkZWJhcldpZHRoIiwidG9nZ2xlU2lkZWJhckV4cGFuZGVkIiwicmVzaXplVHJpZ2dlcmVkIiwicmVzaXplR3JhYmJlZCIsInJlc2l6ZVJlbGVhc2VkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJlbWJlZGRpbmdzLWNvbXBvbmVudCIsMCksUmYoInRvZ2dsZVNpZGViYXJFeHBhbmRlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblRvZ2dsZVNpZGViYXJFeHBhbmRlZCgpfSkpKCJyZXNpemVUcmlnZ2VyZWQiLChmdW5jdGlvbiB0KGUpe3JldHVybiBuLm9uUmVzaXplVHJpZ2dlcmVkKGUpfSkpKCJyZXNpemVHcmFiYmVkIiwoZnVuY3Rpb24gdCgpe3JldHVybiBuLm9uUmVzaXplR3JhYmJlZCgpfSkpKCJyZXNpemVSZWxlYXNlZCIsKGZ1bmN0aW9uIHQoKXtyZXR1cm4gbi5vblJlc2l6ZVJlbGVhc2VkKCl9KSksX3koMSwiYXN5bmMiKSxfeSgyLCJhc3luYyIpLF95KDMsImFzeW5jIiksTWYoKSksMiZlJiZiZigicnVuQWN0aXZlIixDeSgxLDMsbi5ydW5BY3RpdmUkKSkoInNpZGViYXJFeHBhbmRlZCIsQ3koMiw1LG4uc2lkZWJhckV4cGFuZGVkJCkpKCJzaWRlYmFyV2lkdGgiLEN5KDMsNyxuLnNpZGViYXJXaWR0aCQpKX0sZGlyZWN0aXZlczpbQ1B0XSxwaXBlczpbVnZdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoTVB0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6Im5wbWktZW1iZWRkaW5ncyIsdGVtcGxhdGU6J1xuICAgIDxlbWJlZGRpbmdzLWNvbXBvbmVudFxuICAgICAgW3J1bkFjdGl2ZV09InJ1bkFjdGl2ZSQgfCBhc3luYyJcbiAgICAgIFtzaWRlYmFyRXhwYW5kZWRdPSJzaWRlYmFyRXhwYW5kZWQkIHwgYXN5bmMiXG4gICAgICBbc2lkZWJhcldpZHRoXT0ic2lkZWJhcldpZHRoJCB8IGFzeW5jIlxuICAgICAgKHRvZ2dsZVNpZGViYXJFeHBhbmRlZCk9Im9uVG9nZ2xlU2lkZWJhckV4cGFuZGVkKCkiXG4gICAgICAocmVzaXplVHJpZ2dlcmVkKT0ib25SZXNpemVUcmlnZ2VyZWQoJGV2ZW50KSJcbiAgICAgIChyZXNpemVHcmFiYmVkKT0ib25SZXNpemVHcmFiYmVkKCkiXG4gICAgICAocmVzaXplUmVsZWFzZWQpPSJvblJlc2l6ZVJlbGVhc2VkKCkiXG4gICAgPjwvZW1iZWRkaW5ncy1jb21wb25lbnQ+XG4gICcsY2hhbmdlRGV0ZWN0aW9uOmpuLk9uUHVzaH1dfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOmlTfV19KSxudWxsKTtjbGFzcyB3UHR7Y29uc3RydWN0b3IoKXt0aGlzLlZpZXdBY3RpdmU9anZ0fX13UHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fHdQdCl9LHdQdC7JtWNtcD1zbyh7dHlwZTp3UHQsc2VsZWN0b3JzOltbIm5wbWktY29tcG9uZW50Il1dLGlucHV0czp7cnVuczoicnVucyIsYWN0aXZlVmlldzoiYWN0aXZlVmlldyJ9LGRlY2xzOjQsdmFyczoyLGNvbnN0czpbWzEsIm5wbWktY29udGFpbmVyIl0sWzQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsiZGF0YUF2YWlsYWJsZSIsIiJdLFs0LCJuZ0lmIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihDZigwLCJkaXYiLDApLEhtKDEsdlB0LDEsMCwibnBtaS1pbmFjdGl2ZS12aWV3IiwxKSxIbSgyLFBQdCwyLDIsIm5nLXRlbXBsYXRlIixudWxsLDIscXkpLE1mKCkpLDImZSl7Y29uc3QgdD1GbSgzKTtEYygxKSxiZigibmdJZiIsMD09PW4ucnVucy5zaXplKSgibmdJZkVsc2UiLHQpfX0sZGlyZWN0aXZlczpbUHYsdXh0LG1QdCxNUHRdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV17ZGlzcGxheTpmbGV4O2hlaWdodDoxMDAlfS5ucG1pLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17ZmxleDoxIDF9Il0sY2hhbmdlRGV0ZWN0aW9uOjB9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHdQdCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJucG1pLWNvbXBvbmVudCIsdGVtcGxhdGVVcmw6Ii4vbnBtaV9jb21wb25lbnQubmcuaHRtbCIsc3R5bGVVcmxzOlsiLi9ucG1pX2NvbXBvbmVudC5jc3MiXSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSxudWxsLHtydW5zOlt7dHlwZTpSX31dLGFjdGl2ZVZpZXc6W3t0eXBlOlJffV19KTtjbGFzcyBrUHR7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMucnVucyQ9dGhpcy5zdG9yZS5waXBlKHJTKF9JKSksdGhpcy5hY3RpdmVWaWV3JD10aGlzLnN0b3JlLnBpcGUoclMobHh0KSl9bmdPbkluaXQoKXt0aGlzLnN0b3JlLmRpc3BhdGNoKGZ2dCgpKX19a1B0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxrUHQpKGdmKGlTKSl9LGtQdC7JtWNtcD1zbyh7dHlwZTprUHQsc2VsZWN0b3JzOltbIm5wbWkiXV0sZGVjbHM6Myx2YXJzOjYsY29uc3RzOltbMywicnVucyIsImFjdGl2ZVZpZXciXV0sdGVtcGxhdGU6ZnVuY3Rpb24gdChlLG4pezEmZSYmKHZmKDAsIm5wbWktY29tcG9uZW50IiwwKSxfeSgxLCJhc3luYyIpLF95KDIsImFzeW5jIikpLDImZSYmYmYoInJ1bnMiLEN5KDEsMixuLnJ1bnMkKSkoImFjdGl2ZVZpZXciLEN5KDIsNCxuLmFjdGl2ZVZpZXckKSl9LGRpcmVjdGl2ZXM6W3dQdF0scGlwZXM6W1Z2XSxlbmNhcHN1bGF0aW9uOjJ9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGtQdCxbe3R5cGU6U18sYXJnczpbe3NlbGVjdG9yOiJucG1pIix0ZW1wbGF0ZTonXG4gICAgPG5wbWktY29tcG9uZW50XG4gICAgICBbcnVuc109InJ1bnMkIHwgYXN5bmMiXG4gICAgICBbYWN0aXZlVmlld109ImFjdGl2ZVZpZXckIHwgYXN5bmMiXG4gICAgPjwvbnBtaS1jb21wb25lbnQ+XG4gICd9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSksbnVsbCk7Y2xhc3MgU1B0e31TUHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFNQdCl9LFNQdC7JtW1vZD1mbyh7dHlwZTpTUHR9KSxTUHQuybVpbmo9RG4oe2ltcG9ydHM6W1tyeCx0WSxNWix2cSxJTF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihTUHQsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W3FPdCxZT3RdLGltcG9ydHM6W3J4LHRZLE1aLHZxLElMXSxleHBvcnRzOltxT3RdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oU1B0LHtkZWNsYXJhdGlvbnM6W3FPdCxZT3RdLGltcG9ydHM6W3J4LHRZLE1aLHZxLElMXSxleHBvcnRzOltxT3RdfSk7Y2xhc3MgRFB0e31EUHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fERQdCl9LERQdC7JtW1vZD1mbyh7dHlwZTpEUHR9KSxEUHQuybVpbmo9RG4oe2ltcG9ydHM6W1tyeCx0WSx2cSxUWl1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihEUHQsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W1NPdCxET3RdLGltcG9ydHM6W3J4LHRZLHZxLFRaXSxleHBvcnRzOltET3RdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oRFB0LHtkZWNsYXJhdGlvbnM6W1NPdCxET3RdLGltcG9ydHM6W3J4LHRZLHZxLFRaXSxleHBvcnRzOltET3RdfSk7Y2xhc3MgUlB0e31SUHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFJQdCl9LFJQdC7JtW1vZD1mbyh7dHlwZTpSUHR9KSxSUHQuybVpbmo9RG4oe2ltcG9ydHM6W1tyeCx0WSx2cSxJTCx3T3QsRFB0XV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFJQdCxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbQU90LFRPdF0saW1wb3J0czpbcngsdFksdnEsSUwsd090LERQdF0sZXhwb3J0czpbVE90XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKFJQdCx7ZGVjbGFyYXRpb25zOltBT3QsVE90XSxpbXBvcnRzOltyeCx0WSx2cSxJTCx3T3QsRFB0XSxleHBvcnRzOltUT3RdfSk7Y2xhc3MgRVB0e31FUHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEVQdCl9LEVQdC7JtW1vZD1mbyh7dHlwZTpFUHR9KSxFUHQuybVpbmo9RG4oe2ltcG9ydHM6W1tyeCx0WSxNWix2cV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihFUHQsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W0xPdCxCT3RdLGltcG9ydHM6W3J4LHRZLE1aLHZxXSxleHBvcnRzOltCT3RdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oRVB0LHtkZWNsYXJhdGlvbnM6W0xPdCxCT3RdLGltcG9ydHM6W3J4LHRZLE1aLHZxXSxleHBvcnRzOltCT3RdfSk7Y2xhc3MgQVB0e31BUHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEFQdCl9LEFQdC7JtW1vZD1mbyh7dHlwZTpBUHR9KSxBUHQuybVpbmo9RG4oe2ltcG9ydHM6W1tyeF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihBUHQsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W3pPdF0saW1wb3J0czpbcnhdLGV4cG9ydHM6W3pPdF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhBUHQse2RlY2xhcmF0aW9uczpbek90XSxpbXBvcnRzOltyeF0sZXhwb3J0czpbek90XX0pO2NsYXNzIFRQdHt9VFB0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxUUHQpfSxUUHQuybVtb2Q9Zm8oe3R5cGU6VFB0fSksVFB0Lsm1aW5qPURuKHtpbXBvcnRzOltbQVB0XV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFRQdCxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbSU90XSxpbXBvcnRzOltBUHRdLGV4cG9ydHM6W0lPdF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhUUHQse2RlY2xhcmF0aW9uczpbSU90XSxpbXBvcnRzOltBUHRdLGV4cG9ydHM6W0lPdF19KTtjbGFzcyBOUHR7fU5QdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8TlB0KX0sTlB0Lsm1bW9kPWZvKHt0eXBlOk5QdH0pLE5QdC7JtWluaj1Ebih7aW1wb3J0czpbW3J4LFJQdCxFUHQsVFB0LGlCLFNQdF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihOUHQsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W0tPdCxKT3RdLGltcG9ydHM6W3J4LFJQdCxFUHQsVFB0LGlCLFNQdF0sZXhwb3J0czpbSk90XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKE5QdCx7ZGVjbGFyYXRpb25zOltLT3QsSk90XSxpbXBvcnRzOltyeCxSUHQsRVB0LFRQdCxpQixTUHRdLGV4cG9ydHM6W0pPdF19KTtjbGFzcyB6UHR7fXpQdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8elB0KX0selB0Lsm1bW9kPWZvKHt0eXBlOnpQdH0pLHpQdC7JtWluaj1Ebih7aW1wb3J0czpbW3J4LHRZLHZxLElMXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHpQdCxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbZlB0LHVQdF0saW1wb3J0czpbcngsdFksdnEsSUxdLGV4cG9ydHM6W3VQdF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byh6UHQse2RlY2xhcmF0aW9uczpbZlB0LHVQdF0saW1wb3J0czpbcngsdFksdnEsSUxdLGV4cG9ydHM6W3VQdF19KTtjbGFzcyBJUHR7fUlQdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SVB0KX0sSVB0Lsm1bW9kPWZvKHt0eXBlOklQdH0pLElQdC7JtWluaj1Ebih7aW1wb3J0czpbW3J4LHRZLGVZLHZxLGp4dCxqMF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihJUHQsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W3F4dCxaeHRdLGltcG9ydHM6W3J4LHRZLGVZLHZxLGp4dCxqMF0sZXhwb3J0czpbWnh0XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKElQdCx7ZGVjbGFyYXRpb25zOltxeHQsWnh0XSxpbXBvcnRzOltyeCx0WSxlWSx2cSxqeHQsajBdLGV4cG9ydHM6W1p4dF19KTtjbGFzcyBIUHR7fUhQdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8SFB0KX0sSFB0Lsm1bW9kPWZvKHt0eXBlOkhQdH0pLEhQdC7JtWluaj1Ebih7aW1wb3J0czpbW3J4LGp4dF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihIUHQsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W1h4dF0saW1wb3J0czpbcngsanh0XSxleHBvcnRzOltYeHRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oSFB0LHtkZWNsYXJhdGlvbnM6W1h4dF0saW1wb3J0czpbcngsanh0XSxleHBvcnRzOltYeHRdfSk7Y2xhc3MgRlB0e31GUHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEZQdCl9LEZQdC7JtW1vZD1mbyh7dHlwZTpGUHR9KSxGUHQuybVpbmo9RG4oe2ltcG9ydHM6W1tyeCxqeHQsSVB0LEhQdF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihGUHQsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6WyR4dCx0T3RdLGltcG9ydHM6W3J4LGp4dCxJUHQsSFB0XSxleHBvcnRzOlt0T3RdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oRlB0LHtkZWNsYXJhdGlvbnM6WyR4dCx0T3RdLGltcG9ydHM6W3J4LGp4dCxJUHQsSFB0XSxleHBvcnRzOlt0T3RdfSk7Y2xhc3MgTFB0e31MUHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fExQdCl9LExQdC7JtW1vZD1mbyh7dHlwZTpMUHR9KSxMUHQuybVpbmo9RG4oe2ltcG9ydHM6W1tyeCx2cSxUWixxM11dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihMUHQsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W194dCxDeHRdLGltcG9ydHM6W3J4LHZxLFRaLHEzXSxleHBvcnRzOltDeHRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oTFB0LHtkZWNsYXJhdGlvbnM6W194dCxDeHRdLGltcG9ydHM6W3J4LHZxLFRaLHEzXSxleHBvcnRzOltDeHRdfSk7Y2xhc3MgQlB0e31CUHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEJQdCl9LEJQdC7JtW1vZD1mbyh7dHlwZTpCUHR9KSxCUHQuybVpbmo9RG4oe2ltcG9ydHM6W1tyeCx2cSxJTF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihCUHQsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W3h4dCxPeHRdLGltcG9ydHM6W3J4LHZxLElMXSxleHBvcnRzOltPeHRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oQlB0LHtkZWNsYXJhdGlvbnM6W3h4dCxPeHRdLGltcG9ydHM6W3J4LHZxLElMXSxleHBvcnRzOltPeHRdfSk7Y2xhc3MgVlB0e31WUHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFZQdCl9LFZQdC7JtW1vZD1mbyh7dHlwZTpWUHR9KSxWUHQuybVpbmo9RG4oe2ltcG9ydHM6W1tyeCxMUHQsRlB0LEJQdF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihWUHQsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W2VPdF0saW1wb3J0czpbcngsTFB0LEZQdCxCUHRdLGV4cG9ydHM6W2VPdF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhWUHQse2RlY2xhcmF0aW9uczpbZU90XSxpbXBvcnRzOltyeCxMUHQsRlB0LEJQdF0sZXhwb3J0czpbZU90XX0pO2NsYXNzIGpQdHt9alB0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxqUHQpfSxqUHQuybVtb2Q9Zm8oe3R5cGU6alB0fSksalB0Lsm1aW5qPURuKHtpbXBvcnRzOltbcnhdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoalB0LFt7dHlwZTpMXyxhcmdzOlt7ZGVjbGFyYXRpb25zOlskT3QsdFB0XSxpbXBvcnRzOltyeF0sZXhwb3J0czpbdFB0XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKGpQdCx7ZGVjbGFyYXRpb25zOlskT3QsdFB0XSxpbXBvcnRzOltyeF0sZXhwb3J0czpbdFB0XX0pO2NsYXNzIFVQdHt9VVB0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxVUHQpfSxVUHQuybVtb2Q9Zm8oe3R5cGU6VVB0fSksVVB0Lsm1aW5qPURuKHtpbXBvcnRzOltbcngsdnEsSUwsalB0XV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFVQdCxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbaVB0LGFQdF0saW1wb3J0czpbcngsdnEsSUwsalB0XSxleHBvcnRzOlthUHRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oVVB0LHtkZWNsYXJhdGlvbnM6W2lQdCxhUHRdLGltcG9ydHM6W3J4LHZxLElMLGpQdF0sZXhwb3J0czpbYVB0XX0pO2NsYXNzIFdQdHt9V1B0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxXUHQpfSxXUHQuybVtb2Q9Zm8oe3R5cGU6V1B0fSksV1B0Lsm1aW5qPURuKHtpbXBvcnRzOltbcngsdFksTVosdnEscl90LFZQdCxJTCxOUHQsVVB0LHpQdF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihXUHQsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W0NQdCxNUHRdLGltcG9ydHM6W3J4LHRZLE1aLHZxLHJfdCxWUHQsSUwsTlB0LFVQdCx6UHRdLGV4cG9ydHM6W01QdF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhXUHQse2RlY2xhcmF0aW9uczpbQ1B0LE1QdF0saW1wb3J0czpbcngsdFksTVosdnEscl90LFZQdCxJTCxOUHQsVVB0LHpQdF0sZXhwb3J0czpbTVB0XX0pO2NsYXNzIEdQdHt9R1B0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxHUHQpfSxHUHQuybVtb2Q9Zm8oe3R5cGU6R1B0fSksR1B0Lsm1aW5qPURuKHt9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEdQdCxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbdXh0XSxleHBvcnRzOlt1eHRdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oR1B0LHtkZWNsYXJhdGlvbnM6W3V4dF0sZXhwb3J0czpbdXh0XX0pO2NsYXNzIFlQdHt9WVB0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxZUHQpfSxZUHQuybVtb2Q9Zm8oe3R5cGU6WVB0fSksWVB0Lsm1aW5qPURuKHtpbXBvcnRzOltbcngsdFksSUwsdnFdXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoWVB0LFt7dHlwZTpMXyxhcmdzOlt7ZGVjbGFyYXRpb25zOlthT3Qsck90XSxpbXBvcnRzOltyeCx0WSxJTCx2cV0sZXhwb3J0czpbck90XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKFlQdCx7ZGVjbGFyYXRpb25zOlthT3Qsck90XSxpbXBvcnRzOltyeCx0WSxJTCx2cV0sZXhwb3J0czpbck90XX0pO2NsYXNzIHFQdHt9cVB0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxxUHQpfSxxUHQuybVtb2Q9Zm8oe3R5cGU6cVB0fSkscVB0Lsm1aW5qPURuKHtpbXBvcnRzOltbcngsdFksdnEsSUwsWVB0XV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHFQdCxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbY090LGRPdF0saW1wb3J0czpbcngsdFksdnEsSUwsWVB0XSxleHBvcnRzOltkT3RdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8ocVB0LHtkZWNsYXJhdGlvbnM6W2NPdCxkT3RdLGltcG9ydHM6W3J4LHRZLHZxLElMLFlQdF0sZXhwb3J0czpbZE90XX0pO2NsYXNzIFpQdHt9WlB0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxaUHQpfSxaUHQuybVtb2Q9Zm8oe3R5cGU6WlB0fSksWlB0Lsm1aW5qPURuKHtpbXBvcnRzOltbcngsdFksTVosdnEscl90LFZQdCxJTCxxUHQsTlB0LFVQdF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihaUHQsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W3BQdCxtUHRdLGltcG9ydHM6W3J4LHRZLE1aLHZxLHJfdCxWUHQsSUwscVB0LE5QdCxVUHRdLGV4cG9ydHM6W21QdF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhaUHQse2RlY2xhcmF0aW9uczpbcFB0LG1QdF0saW1wb3J0czpbcngsdFksTVosdnEscl90LFZQdCxJTCxxUHQsTlB0LFVQdF0sZXhwb3J0czpbbVB0XX0pO2NsYXNzIFhQdHt9WFB0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxYUHQpfSxYUHQuybVtb2Q9Zm8oe3R5cGU6WFB0fSksWFB0Lsm1aW5qPURuKHtpbXBvcnRzOltbcngsR1B0LFpQdCxXUHQsbXZ0LFRTLmZvckZlYXR1cmUoTHZ0LGh4dCksaEQuZm9yRmVhdHVyZShbZnh0XSksTVguZm9yUGx1Z2luKCJucG1pIixrUHQpXV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKFhQdCxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbd1B0LGtQdF0saW1wb3J0czpbcngsR1B0LFpQdCxXUHQsbXZ0LFRTLmZvckZlYXR1cmUoTHZ0LGh4dCksaEQuZm9yRmVhdHVyZShbZnh0XSksTVguZm9yUGx1Z2luKCJucG1pIixrUHQpXSxleHBvcnRzOltrUHRdLGVudHJ5Q29tcG9uZW50czpba1B0XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKFhQdCx7ZGVjbGFyYXRpb25zOlt3UHQsa1B0XSxpbXBvcnRzOltyeCxHUHQsWlB0LFdQdCxtdnQsQVMsZ0QsTVhdLGV4cG9ydHM6W2tQdF19KTtjbGFzcyBLUHR7fUtQdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8S1B0KX0sS1B0Lsm1cHJvdj1Tbih7dG9rZW46S1B0LGZhY3Rvcnk6S1B0Lsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihLUHQsW3t0eXBlOlVtfV0sbnVsbCxudWxsKTtjbGFzcyBKUHR7Y29uc3RydWN0b3IodCl7dGhpcy5odHRwPXQsdGhpcy5odHRwUGF0aFByZWZpeD0iZGF0YS9wbHVnaW4vdGV4dF92MiJ9ZmV0Y2hSdW5Ub1RhZygpe3JldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuaHR0cFBhdGhQcmVmaXgrIi90YWdzIikucGlwZShWdCgodD0+e2NvbnN0IGU9bmV3IE1hcDtyZXR1cm4gT2JqZWN0LmVudHJpZXModCkuZm9yRWFjaCgoKFt0LG5dKT0+e2Uuc2V0KHQsbil9KSksZX0pKSl9ZmV0Y2hUZXh0RGF0YSh0LGUpe2NvbnN0IG49bmV3IFVSTFNlYXJjaFBhcmFtcyh7cnVuOnQsdGFnOmV9KTtyZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmh0dHBQYXRoUHJlZml4K2AvdGV4dD8ke24udG9TdHJpbmcoKX1gKS5waXBlKFZ0KCh0PT50Lm1hcCgodD0+KHtvcmlnaW5hbFNoYXBlOnQub3JpZ2luYWxfc2hhcGUsc3RlcDp0LnN0ZXAsc3RyaW5nQXJyYXk6dC5zdHJpbmdfYXJyYXksd2FsbFRpbWVJbk1zOjFlMyp0LndhbGxfdGltZSx0cnVuY2F0ZWQ6dC50cnVuY2F0ZWR9KSkpKSkpfX1KUHQuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEpQdCkoVHIoSEUpKX0sSlB0Lsm1cHJvdj1Tbih7dG9rZW46SlB0LGZhY3Rvcnk6SlB0Lsm1ZmFjfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihKUHQsW3t0eXBlOlVtfV0sKGZ1bmN0aW9uKCl7cmV0dXJuW3t0eXBlOkhFfV19KSxudWxsKTtjbGFzcyBRUHR7fVFQdC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8UVB0KX0sUVB0Lsm1bW9kPWZvKHt0eXBlOlFQdH0pLFFQdC7JtWluaj1Ebih7cHJvdmlkZXJzOltKUHQse3Byb3ZpZGU6S1B0LHVzZUV4aXN0aW5nOkpQdH1dLGltcG9ydHM6W1tGRV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihRUHQsW3t0eXBlOkxfLGFyZ3M6W3tpbXBvcnRzOltGRV0scHJvdmlkZXJzOltKUHQse3Byb3ZpZGU6S1B0LHVzZUV4aXN0aW5nOkpQdH1dfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oUVB0LHtpbXBvcnRzOltGRV19KTtjb25zdCAkUHQ9X2soIltUZXh0XSBUZXh0IFBsdWdpbiBMb2FkZWQiKSx0d3Q9X2soIltUZXh0XSBSdW5zIFRvIFRhZyBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxld3Q9X2soIltUZXh0XSBUYWcgR3JvdXAgVmlzaWJpbGl0eSBDaGFuZ2VkIix7X2FzOiJwcm9wcyIsX3A6dm9pZCAwfSksbnd0PV9rKCJbVGV4dF0gVGV4dCBEYXRhIExvYWRlZCBMb2FkZWQiLHtfYXM6InByb3BzIixfcDp2b2lkIDB9KSxvd3Q9InRleHQiLGl3dD1fUyhvd3QpO2JTKGl3dCwodD0+dC5ydW5Ub1RhZ3MpKTtjb25zdCBhd3Q9YlMoaXd0LCh0PT57Y29uc3QgZT1uZXcgU2V0LG49bmV3IFNldDtmb3IoY29uc3QgbyBvZiB0LnZpc2libGVSdW5UYWdzLnZhbHVlcygpKWZvcihjb25zdCB0IG9mIG8pe2NvbnN0IG89SlNPTi5zdHJpbmdpZnkodCk7ZS5oYXMobyl8fChlLmFkZChvKSxuLmFkZCh0KSl9cmV0dXJuWy4uLm5dfSkpLHJ3dD1iUyhpd3QsKCh0LGUpPT57Y29uc3Qgbj10LmRhdGEuZ2V0KGUucnVuKTtyZXR1cm4gbiYmbi5nZXQoZS50YWcpfHxudWxsfSkpO2NsYXNzIHN3dHtjb25zdHJ1Y3Rvcih0LGUsbil7dGhpcy5hY3Rpb25zJD10LHRoaXMuc3RvcmU9ZSx0aGlzLmRhdGFTb3VyY2U9bix0aGlzLmxvYWRSdW5Ub1RhZ3MkPVdTKCgoKT0+dGhpcy5hY3Rpb25zJC5waXBlKCRTKCRQdCksVmUoKCgpPT50aGlzLmRhdGFTb3VyY2UuZmV0Y2hSdW5Ub1RhZygpLnBpcGUoV2UoKHQ9Pnt0aGlzLnN0b3JlLmRpc3BhdGNoKHR3dCh7cnVuVG9UYWdzOnR9KSl9KSksVnQoKCgpPT57fSkpKSkpKSkse2Rpc3BhdGNoOiExfSksdGhpcy5sb2FkRGF0YSQ9V1MoKCgpPT5wZSh0aGlzLmFjdGlvbnMkLnBpcGUoJFMoZXd0KSxWZSgoKHt2aXNpYmxlVGV4dENhcmRzOnR9KT0+aWUodC5tYXAoKCh7cnVuOnQsdGFnOmV9KT0+dGhpcy5zdG9yZS5zZWxlY3Qocnd0LHtydW46dCx0YWc6ZX0pLnBpcGUoKGZ1bmN0aW9uIG4odCxlKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPj0yO3JldHVybiBmdW5jdGlvbihvKXtyZXR1cm4gby5waXBlKHQ/dWUoKGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQoZSxuLG8pfSkpOlIsVGUoMSksbj9NZShlKTpTZSgoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEJ0fSkpKX19KSgpLFZ0KChuPT4oe3J1bjp0LHRhZzplLHRleHREYXRhOm59KSkpKSkpKS5waXBlKFZ0KCh0PT50LmZpbHRlcigoKHt0ZXh0RGF0YTp0fSk9Pm51bGw9PT10KSkubWFwKCgoe3J1bjp0LHRhZzplfSk9Pih7cnVuOnQsdGFnOmV9KSkpKSkpKSkpLHRoaXMuYWN0aW9ucyQucGlwZSgkUyhKRSxRRSkscWUodGhpcy5zdG9yZS5zZWxlY3QoYXd0KSksVnQoKChbLHRdKT0+dCkpKSkucGlwZSgkdCgodD0+aWUodC5tYXAoKHQ9PnRoaXMuZmV0Y2hUZXh0RGF0YSh0KSkpKSkpKSkse2Rpc3BhdGNoOiExfSl9ZmV0Y2hUZXh0RGF0YSh0KXtjb25zdHtydW46ZSx0YWc6bn09dDtyZXR1cm4gdGhpcy5kYXRhU291cmNlLmZldGNoVGV4dERhdGEoZSxuKS5waXBlKFdlKCh0PT57dGhpcy5zdG9yZS5kaXNwYXRjaChud3Qoe3J1bjplLHRhZzpuLHN0ZXBEYXRhOnR9KSl9KSksVnQoKCgpPT57fSkpKX19c3d0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxzd3QpKFRyKFFTKSxUcihpUyksVHIoS1B0KSl9LHN3dC7JtXByb3Y9U24oe3Rva2VuOnN3dCxmYWN0b3J5OnN3dC7JtWZhY30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoc3d0LFt7dHlwZTpVbX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpRU30se3R5cGU6aVN9LHt0eXBlOktQdH1dfSksbnVsbCk7Y29uc3QgbHd0PVZTKHtydW5Ub1RhZ3M6bmV3IE1hcChbWyJydW4xIixbImEvYiIsImEvYyJdXSxbInJ1bjIiLFsiYS9iIiwiYS9kIl1dLFsicnVuMyIsWyJjIiwiYS9iIl1dXSksZGF0YTpuZXcgTWFwKFtbInJ1bjEiLG5ldyBNYXAoW1siYS9iIixbe29yaWdpbmFsU2hhcGU6WzNdLHN0ZXA6MCxzdHJpbmdBcnJheTpbWyJmb28iLCJiYXIiLCJiYXoiXV0sd2FsbFRpbWVJbk1zOjE1Nzc4NjU2ZTUsdHJ1bmNhdGVkOiExfSx7b3JpZ2luYWxTaGFwZTpbM10sc3RlcDoxLHN0cmluZ0FycmF5OltbImZvbyIsImJheiJdXSx3YWxsVGltZUluTXM6MTU3Nzg2NTYwMWUzLHRydW5jYXRlZDohMX1dXSxbImEvYyIsW3tvcmlnaW5hbFNoYXBlOlszXSxzdGVwOjAsc3RyaW5nQXJyYXk6W1siV2UgY29uZHVjdGVkIGFuIGV4cGVyaW1lbnQgYW5kIGZvdW5kIHRoZSBmb2xsb3dpbmcgZGF0YTpcblxuUG91bmRzIG9mIGNob2NvbGF0ZSB8IEhhcHBpbmVzc1xuLS0tfC0tLVxuMCB8IDFcbjEgfCA0XG4yIHwgOVxuMyB8IDE2XG40IHwgMjVcbjUgfCAzNlxuNiB8IDQ5XG43IHwgNjRcbjggfCA4MVxuOSB8IDEwMFxuMTAgfCAxMjEiXV0sd2FsbFRpbWVJbk1zOjE1Nzc4NjU2ZTUsdHJ1bmNhdGVkOiExfSx7b3JpZ2luYWxTaGFwZTpbM10sc3RlcDoxLHN0cmluZ0FycmF5OltbIsOXIiwiKiowKioiLCIqKjEqKiIsIioqMioqIiwiKiozKioiLCIqKjQqKiIsIioqNSoqIl0sWyIqKjAqKiIsIjAiLCIwIiwiMCIsIjAiLCIwIiwiMCJdLFsiKioxKioiLCIwIiwiMSIsIjIiLCIzIiwiNCIsIjUiXSxbIioqMioqIiwiMCIsIjIiLCI0IiwiNiIsIjgiLCIxMCJdLFsiKiozKioiLCIwIiwiMyIsIjYiLCI5IiwiMTIiLCIxNSJdLFsiKio0KioiLCIwIiwiNCIsIjgiLCIxMiIsIjE2IiwiMjAiXSxbIioqNSoqIiwiMCIsIjUiLCIxMCIsIjE1IiwiMjAiLCIyNSJdXSx3YWxsVGltZUluTXM6MTU3Nzg2NTYwMWUzLHRydW5jYXRlZDohMX1dXV0pXV0pLHZpc2libGVSdW5UYWdzOm5ldyBNYXB9KTtmdW5jdGlvbiBjd3QodCxlKXtyZXR1cm4gbHd0KHQsZSl9Y2xhc3MgZHd0e31kd3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fGR3dCl9LGR3dC7JtWNtcD1zbyh7dHlwZTpkd3Qsc2VsZWN0b3JzOltbInRleHQtZGFzaGJvYXJkIl1dLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJlB1KDAsIiBUaGlzIGlzIHRoZSB0ZXh0IGRhc2hib2FyZCAiKX0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihkd3QsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoidGV4dC1kYXNoYm9hcmQiLHRlbXBsYXRlOiIgVGhpcyBpcyB0aGUgdGV4dCBkYXNoYm9hcmQgIixjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSxudWxsLG51bGwpO2NsYXNzIHB3dHt9cHd0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxwd3QpfSxwd3QuybVtb2Q9Zm8oe3R5cGU6cHd0fSkscHd0Lsm1aW5qPURuKHt9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHB3dCxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbZHd0XSxleHBvcnRzOltkd3RdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8ocHd0LHtkZWNsYXJhdGlvbnM6W2R3dF0sZXhwb3J0czpbZHd0XX0pO2NsYXNzIG13dHt9bXd0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxtd3QpfSxtd3QuybVtb2Q9Zm8oe3R5cGU6bXd0fSksbXd0Lsm1aW5qPURuKHtpbXBvcnRzOltbcngscHd0LE1YLmZvclBsdWdpbigidGV4dF92MiIsZHd0KSxRUHQsVFMuZm9yRmVhdHVyZShvd3QsY3d0KSxoRC5mb3JGZWF0dXJlKFtzd3RdKV1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihtd3QsW3t0eXBlOkxfLGFyZ3M6W3tpbXBvcnRzOltyeCxwd3QsTVguZm9yUGx1Z2luKCJ0ZXh0X3YyIixkd3QpLFFQdCxUUy5mb3JGZWF0dXJlKG93dCxjd3QpLGhELmZvckZlYXR1cmUoW3N3dF0pXSxlbnRyeUNvbXBvbmVudHM6W2R3dF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhtd3Qse2ltcG9ydHM6W3J4LHB3dCxNWCxRUHQsQVMsZ0RdfSk7Y2xhc3MgZnd0e312YXIgdXd0O2Z3dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Znd0KX0sZnd0Lsm1bW9kPWZvKHt0eXBlOmZ3dH0pLGZ3dC7JtWluaj1Ebih7aW1wb3J0czpbW1kkLEVfdCxYUHQsbXd0XV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKGZ3dCxbe3R5cGU6TF8sYXJnczpbe2ltcG9ydHM6W1kkLEVfdCxYUHQsbXd0XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKGZ3dCx7aW1wb3J0czpbWSQsRV90LFhQdCxtd3RdfSksKGZ1bmN0aW9uKHQpe3QuQ1VTVE9NX0VMRU1FTlQ9IkNVU1RPTV9FTEVNRU5UIix0LklGUkFNRT0iSUZSQU1FIix0Lk5HX0NPTVBPTkVOVD0iTkdfQ09NUE9ORU5UIix0Lk5PTkU9Ik5PTkUifSkodXd0fHwodXd0PXt9KSk7Y29uc3QgZ3d0PVsicGx1Z2luQ29udGFpbmVyIl0saHd0PVsibmdQbHVnaW5Db250YWluZXIiXTtmdW5jdGlvbiBid3QodCxlKXsxJnQmJlBmKDApfWZ1bmN0aW9uIHl3dCh0LGUpe2lmKDEmdCYmKHhmKDApLEhtKDEsYnd0LDEsMCwibmctY29udGFpbmVyIiw5KSxPZigpKSwyJnQpe2NvbnN0IHQ9emYoMiksZT1GbSg2KTtEYygxKSxiZigibmdUZW1wbGF0ZU91dGxldCIsdC5lbnZpcm9ubWVudEZhaWx1cmVOb3RGb3VuZFRlbXBsYXRlP3QuZW52aXJvbm1lbnRGYWlsdXJlTm90Rm91bmRUZW1wbGF0ZTplKX19ZnVuY3Rpb24gX3d0KHQsZSl7MSZ0JiZQZigwKX1mdW5jdGlvbiBDd3QodCxlKXtpZigxJnQmJih4ZigwKSxIbSgxLF93dCwxLDAsIm5nLWNvbnRhaW5lciIsOSksT2YoKSksMiZ0KXtjb25zdCB0PXpmKDIpLGU9Rm0oNik7RGMoMSksYmYoIm5nVGVtcGxhdGVPdXRsZXQiLHQuZW52aXJvbm1lbnRGYWlsdXJlVW5rbm93blRlbXBsYXRlP3QuZW52aXJvbm1lbnRGYWlsdXJlVW5rbm93blRlbXBsYXRlOmUpfX1mdW5jdGlvbiBNd3QodCxlKXtpZigxJnQmJih4ZigwKSxDZigxLCJoMyIsMTApLFB1KDIsIiBUaGVyZeKAmXMgbm8gZGFzaGJvYXJkIGJ5IHRoZSBuYW1lIG9mIOKAnCIpLENmKDMsImNvZGUiKSxQdSg0KSxNZigpLFB1KDUsIuKAnS4gIiksTWYoKSxDZig2LCJwIiksUHUoNywiWW91IGNhbiBzZWxlY3QgYSBkYXNoYm9hcmQgZnJvbSB0aGUgbGlzdCBhYm92ZS4iKSxNZigpLENmKDgsInAiKSxQZig5LDExKSxNZigpLE9mKCkpLDImdCl7Y29uc3QgdD16ZigyKSxlPUZtKDgpO0RjKDQpLHd1KHQuYWN0aXZlUGx1Z2luSWQpLERjKDUpLGJmKCJuZ1RlbXBsYXRlT3V0bGV0IixlKX19ZnVuY3Rpb24gdnd0KHQsZSl7aWYoMSZ0JiYoeGYoMCksQ2YoMSwiaDMiLDEyKSxQdSgyLCIgTm8gZGFzaGJvYXJkcyBhcmUgYWN0aXZlIGZvciB0aGUgY3VycmVudCBkYXRhIHNldC4gIiksTWYoKSxDZigzLCJwIiksUHUoNCwiUHJvYmFibGUgY2F1c2VzOiIpLE1mKCksQ2YoNSwidWwiKSxDZig2LCJsaSIpLFB1KDcsIllvdSBoYXZlbuKAmXQgd3JpdHRlbiBhbnkgZGF0YSB0byB5b3VyIGV2ZW50IGZpbGVzLiIpLE1mKCksQ2YoOCwibGkiKSxQdSg5LCJUZW5zb3JCb2FyZCBjYW7igJl0IGZpbmQgeW91ciBldmVudCBmaWxlcy4iKSxNZigpLE1mKCksUHUoMTAsIiBJZiB5b3XigJlyZSBuZXcgdG8gdXNpbmcgVGVuc29yQm9hcmQsIGFuZCB3YW50IHRvIGZpbmQgb3V0IGhvdyB0byBhZGQgZGF0YSBhbmQgc2V0IHVwIHlvdXIgZXZlbnQgZmlsZXMsIGNoZWNrIG91dCB0aGUgIiksQ2YoMTEsImEiLDEzKSxQdSgxMiwiUkVBRE1FIiksTWYoKSxQdSgxMywiIGFuZCBwZXJoYXBzIHRoZSAiKSxDZigxNCwiYSIsMTQpLFB1KDE1LCJUZW5zb3JCb2FyZCB0dXRvcmlhbCIpLE1mKCksUHUoMTYsIi4gIiksQ2YoMTcsInAiKSxQdSgxOCwiIElmIHlvdSB0aGluayBUZW5zb3JCb2FyZCBpcyBjb25maWd1cmVkIHByb3Blcmx5LCBwbGVhc2Ugc2VlICIpLENmKDE5LCJhIiwxNSksUHUoMjAsInRoZSBzZWN0aW9uIG9mIHRoZSBSRUFETUUgZGV2b3RlZCB0byBtaXNzaW5nIGRhdGEgcHJvYmxlbXMiKSxNZigpLFB1KDIxLCIgYW5kIGNvbnNpZGVyIGZpbGluZyBhbiBpc3N1ZSBvbiBHaXRIdWIuICIpLE1mKCksQ2YoMjIsInAiKSxQZigyMywxMSksTWYoKSxPZigpKSwyJnQpe3pmKDIpO2NvbnN0IHQ9Rm0oOCk7RGMoMjMpLGJmKCJuZ1RlbXBsYXRlT3V0bGV0Iix0KX19ZnVuY3Rpb24geHd0KHQsZSl7aWYoMSZ0JiYoQ2YoMCwiZGl2Iiw2KSxDZigxLCJkaXYiLDcpLEhtKDIseXd0LDIsMSwibmctY29udGFpbmVyIiw4KSxIbSgzLEN3dCwyLDEsIm5nLWNvbnRhaW5lciIsOCksSG0oNCxNd3QsMTAsMiwibmctY29udGFpbmVyIiw4KSxIbSg1LHZ3dCwyNCwxLCJuZy1jb250YWluZXIiLDgpLE1mKCksTWYoKSksMiZ0KXtjb25zdCB0PXpmKCk7YmYoIm5nU3dpdGNoIix0LnBsdWdpbkxvYWRTdGF0ZSksRGMoMiksYmYoIm5nU3dpdGNoQ2FzZSIsdC5QbHVnaW5Mb2FkU3RhdGUuRU5WSVJPTk1FTlRfRkFJTFVSRV9OT1RfRk9VTkQpLERjKDEpLGJmKCJuZ1N3aXRjaENhc2UiLHQuUGx1Z2luTG9hZFN0YXRlLkVOVklST05NRU5UX0ZBSUxVUkVfVU5LTk9XTiksRGMoMSksYmYoIm5nU3dpdGNoQ2FzZSIsdC5QbHVnaW5Mb2FkU3RhdGUuVU5LTk9XTl9QTFVHSU5fSUQpLERjKDEpLGJmKCJuZ1N3aXRjaENhc2UiLHQuUGx1Z2luTG9hZFN0YXRlLk5PX0VOQUJMRURfUExVR0lOUyl9fWZ1bmN0aW9uIE93dCh0LGUpe2lmKDEmdCYmKENmKDAsImgzIiwxNiksUHUoMSwiRGF0YSBjb3VsZCBub3QgYmUgbG9hZGVkLiIpLE1mKCksQ2YoMiwicCIpLFB1KDMsIlRoZSBUZW5zb3JCb2FyZCBzZXJ2ZXIgbWF5IGJlIGRvd24gb3IgaW5hY2Nlc3NpYmxlLiIpLE1mKCksQ2YoNCwicCIpLFBmKDUsMTEpLE1mKCkpLDImdCl7emYoKTtjb25zdCB0PUZtKDgpO0RjKDUpLGJmKCJuZ1RlbXBsYXRlT3V0bGV0Iix0KX19ZnVuY3Rpb24gUHd0KHQsZSl7aWYoMSZ0JiYoQ2YoMCwicCIsMTkpLENmKDEsImkiKSxQdSgyLCJMb2cgZGlyZWN0b3J5OiAiKSxDZigzLCJzcGFuIiksUHUoNCksTWYoKSxNZigpLE1mKCkpLDImdCl7Y29uc3QgdD16ZigyKTtEYyg0KSx3dSh0LmRhdGFMb2NhdGlvbil9fWZ1bmN0aW9uIHd3dCh0LGUpe2lmKDEmdCYmKENmKDAsInNwYW4iLDE3KSxQdSgxKSxfeSgyLCJkYXRlIiksTWYoKSxIbSgzLFB3dCw1LDEsInAiLDE4KSksMiZ0KXtjb25zdCB0PXpmKCk7RGMoMSksa3UoIkxhc3QgcmVsb2FkOiAiLE15KDIsMix0Lmxhc3RVcGRhdGVkLCJtZWRpdW0iKSwiIiksRGMoMiksYmYoIm5nSWYiLHQuZGF0YUxvY2F0aW9uKX19Y29uc3Qga3d0PWZ1bmN0aW9uKHQpe3JldHVybntwbHVnaW5zOiEwLCJpcy1maXJzdC1wYXJ0eS1wbHVnaW4iOnR9fTt2YXIgU3d0OyEoZnVuY3Rpb24odCl7dFt0LkVOVklST05NRU5UX0ZBSUxVUkVfTk9UX0ZPVU5EPTBdPSJFTlZJUk9OTUVOVF9GQUlMVVJFX05PVF9GT1VORCIsdFt0LkVOVklST05NRU5UX0ZBSUxVUkVfVU5LTk9XTj0xXT0iRU5WSVJPTk1FTlRfRkFJTFVSRV9VTktOT1dOIix0W3QuTk9fRU5BQkxFRF9QTFVHSU5TPTJdPSJOT19FTkFCTEVEX1BMVUdJTlMiLHRbdC5VTktOT1dOX1BMVUdJTl9JRD0zXT0iVU5LTk9XTl9QTFVHSU5fSUQiLHRbdC5MT0FERUQ9NF09IkxPQURFRCIsdFt0LkxPQURJTkc9NV09IkxPQURJTkcifSkoU3d0fHwoU3d0PXt9KSk7Y2xhc3MgRHd0e2NvbnN0cnVjdG9yKHQsZSxuKXt0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcj10LHRoaXMucGx1Z2luUmVnaXN0cnk9ZSx0aGlzLnBsdWdpbkFwaUhvc3Q9bix0aGlzLlBsdWdpbkxvYWRTdGF0ZT1Td3QsdGhpcy5Mb2FkaW5nTWVjaGFuaXNtVHlwZT11d3QsdGhpcy5wbHVnaW5JbnN0YW5jZXM9bmV3IE1hcH1uZ09uQ2hhbmdlcyh0KXt2YXIgZTtpZighdGhpcy5pc0ZlYXR1cmVGbGFnc0xvYWRlZHx8IXRoaXMuYWN0aXZlS25vd25QbHVnaW58fHRoaXMuc2V0dGluZ3NMb2FkU3RhdGU9PT1VRS5OT1RfTE9BREVEfHx0aGlzLnNldHRpbmdzTG9hZFN0YXRlPT09VUUuTE9BRElORylyZXR1cm47Y29uc3Qgbj1Cb29sZWFuKHRoaXMuYWN0aXZlS25vd25QbHVnaW4mJiF0aGlzLnBsdWdpbkluc3RhbmNlcy5oYXModGhpcy5hY3RpdmVLbm93blBsdWdpbi5pZCkpO2lmKHQuYWN0aXZlS25vd25QbHVnaW58fHQuaXNGZWF0dXJlRmxhZ3NMb2FkZWR8fHQuc2V0dGluZ3NMb2FkU3RhdGUpe2NvbnN0IG89bnVsbD09PShlPXQuYWN0aXZlS25vd25QbHVnaW4pfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnByZXZpb3VzVmFsdWU7aWYobyYmby5pZCE9PXRoaXMuYWN0aXZlS25vd25QbHVnaW4uaWQmJnRoaXMuaGlkZVBsdWdpbihvKSxuKXtjb25zdCB0PXRoaXMuY3JlYXRlUGx1Z2luKHRoaXMuYWN0aXZlS25vd25QbHVnaW4pO3QmJnRoaXMucGx1Z2luSW5zdGFuY2VzLnNldCh0aGlzLmFjdGl2ZUtub3duUGx1Z2luLmlkLHQpfWVsc2UgdGhpcy5zaG93UGx1Z2luKHRoaXMuYWN0aXZlS25vd25QbHVnaW4pfShufHx0Lmxhc3RVcGRhdGVkKSYmdGhpcy5yZWxvYWQodGhpcy5hY3RpdmVLbm93blBsdWdpbixuKX1oaWRlUGx1Z2luKHQpe2lmKCF0aGlzLnBsdWdpbkluc3RhbmNlcy5oYXModC5pZCkpcmV0dXJuO2NvbnN0IGU9dGhpcy5wbHVnaW5JbnN0YW5jZXMuZ2V0KHQuaWQpO09iamVjdC5hc3NpZ24oZS5zdHlsZSx7bWF4SGVpZ2h0OjAsb3ZlcmZsb3c6ImhpZGRlbiIsdmlzaWJpbGl0eToiaGlkZGVuIixwb3NpdGlvbjoiYWJzb2x1dGUifSl9c2hvd1BsdWdpbih0KXtpZighdGhpcy5wbHVnaW5JbnN0YW5jZXMuaGFzKHQuaWQpKXJldHVybjtjb25zdCBlPXRoaXMucGx1Z2luSW5zdGFuY2VzLmdldCh0LmlkKTtPYmplY3QuYXNzaWduKGUuc3R5bGUse21heEhlaWdodDpudWxsLG92ZXJmbG93Om51bGwsdmlzaWJpbGl0eTpudWxsLHBvc2l0aW9uOm51bGx9KX1jcmVhdGVQbHVnaW4odCl7bGV0IGU9bnVsbDtzd2l0Y2godC5sb2FkaW5nX21lY2hhbmlzbS50eXBlKXtjYXNlIHV3dC5DVVNUT01fRUxFTUVOVDplPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodC5sb2FkaW5nX21lY2hhbmlzbS5lbGVtZW50X25hbWUpLGUucmVsb2FkT25SZWFkeT0hMSxlLmZlYXR1cmVGbGFncz10aGlzLmZlYXR1cmVGbGFncyx0aGlzLnBsdWdpbnNDb250YWluZXIubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChlKTticmVhaztjYXNlIHV3dC5JRlJBTUU6aWYoIXRoaXMucGx1Z2luQXBpSG9zdCl0aHJvdyBFcnJvcihgSUZSQU1FLWJhc2VkIHBsdWdpbnMgbm90IHN1cHBvcnRlZDogJHt0LmlkfWApO2U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIiksZS5zZXRBdHRyaWJ1dGUoInNyYyIsYGRhdGEvcGx1Z2luX2VudHJ5Lmh0bWw/bmFtZT0ke3QuaWR9YCksdGhpcy5wbHVnaW5BcGlIb3N0LnJlZ2lzdGVyUGx1Z2luSWZyYW1lKGUsdC5pZCksdGhpcy5wbHVnaW5zQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZSk7YnJlYWs7Y2FzZSB1d3QuTkdfQ09NUE9ORU5UOmNvbnN0IG49dGhpcy5wbHVnaW5SZWdpc3RyeS5nZXRDb21wb25lbnQodC5pZCk7aWYobil7Y29uc3QgdD10aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShuKTtlPXRoaXMubmdQbHVnaW5Db250YWluZXIuY3JlYXRlQ29tcG9uZW50KHQpLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnR9ZWxzZSBjb25zb2xlLmVycm9yKGBObyByZWdpc3RlcmVkIEFuZ3VsYXIgY29tcG9uZW50IGZvciBwbHVnaW46ICR7dC5pZH1gKTticmVhaztjYXNlIHV3dC5OT05FOmJyZWFrO2RlZmF1bHQ6Y29uc29sZS5lcnJvcigiVW5leHBlY3RlZCBwbHVnaW4iKX1yZXR1cm4gZX1yZWxvYWQodCxlKXtpZighZSYmdC5kaXNhYmxlX3JlbG9hZClyZXR1cm47Y29uc3Qgbj10aGlzLnBsdWdpbkluc3RhbmNlcy5nZXQodC5pZCk7biYmbi5yZWxvYWQmJm4ucmVsb2FkKCl9fUR3dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8RHd0KShnZihHaCksZ2YoTVgpLGdmKFdJLDgpKX0sRHd0Lsm1Y21wPXNvKHt0eXBlOkR3dCxzZWxlY3RvcnM6W1sicGx1Z2lucy1jb21wb25lbnQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uIHQoZSxuKXtpZigxJmUmJihWeShnd3QsNyxLaCksVnkoaHd0LDcsRmIpKSwyJmUpe2xldCB0O0J5KHQ9VXkoKSkmJihuLnBsdWdpbnNDb250YWluZXI9dC5maXJzdCksQnkodD1VeSgpKSYmKG4ubmdQbHVnaW5Db250YWluZXI9dC5maXJzdCl9fSxpbnB1dHM6e2FjdGl2ZVBsdWdpbklkOiJhY3RpdmVQbHVnaW5JZCIsYWN0aXZlS25vd25QbHVnaW46ImFjdGl2ZUtub3duUGx1Z2luIixwbHVnaW5Mb2FkU3RhdGU6InBsdWdpbkxvYWRTdGF0ZSIsZGF0YUxvY2F0aW9uOiJkYXRhTG9jYXRpb24iLGlzRmVhdHVyZUZsYWdzTG9hZGVkOiJpc0ZlYXR1cmVGbGFnc0xvYWRlZCIsc2V0dGluZ3NMb2FkU3RhdGU6InNldHRpbmdzTG9hZFN0YXRlIixmZWF0dXJlRmxhZ3M6ImZlYXR1cmVGbGFncyIsbGFzdFVwZGF0ZWQ6Imxhc3RVcGRhdGVkIixlbnZpcm9ubWVudEZhaWx1cmVOb3RGb3VuZFRlbXBsYXRlOiJlbnZpcm9ubWVudEZhaWx1cmVOb3RGb3VuZFRlbXBsYXRlIixlbnZpcm9ubWVudEZhaWx1cmVVbmtub3duVGVtcGxhdGU6ImVudmlyb25tZW50RmFpbHVyZVVua25vd25UZW1wbGF0ZSJ9LGZlYXR1cmVzOltxb10sZGVjbHM6OSx2YXJzOjQsY29uc3RzOltbMywibmdDbGFzcyJdLFsicGx1Z2luQ29udGFpbmVyIiwiIl0sWyJuZ1BsdWdpbkNvbnRhaW5lciIsIiJdLFsiY2xhc3MiLCJ3YXJuaW5nIiwzLCJuZ1N3aXRjaCIsNCwibmdJZiJdLFsiZW52aXJvbm1lbnRGYWlsdXJlRGVmYXVsdFRlbXBsYXRlIiwiIl0sWyJkYXRlQW5kRGF0YUxvY2F0aW9uIiwiIl0sWzEsIndhcm5pbmciLDMsIm5nU3dpdGNoIl0sWzEsIndhcm5pbmctbWVzc2FnZSJdLFs0LCJuZ1N3aXRjaENhc2UiXSxbNCwibmdUZW1wbGF0ZU91dGxldCJdLFsxLCJ1bmtub3duLXBsdWdpbiJdLFszLCJuZ1RlbXBsYXRlT3V0bGV0Il0sWzEsIm5vLWFjdGl2ZS1wbHVnaW4iXSxbImhyZWYiLCJodHRwczovL2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jib2FyZC9ibG9iL21hc3Rlci9SRUFETUUubWQiXSxbImhyZWYiLCJodHRwczovL3d3dy50ZW5zb3JmbG93Lm9yZy9nZXRfc3RhcnRlZC9zdW1tYXJpZXNfYW5kX3RlbnNvcmJvYXJkIl0sWyJocmVmIiwiaHR0cHM6Ly9naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yYm9hcmQvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI215LXRlbnNvcmJvYXJkLWlzbnQtc2hvd2luZy1hbnktZGF0YS13aGF0cy13cm9uZyJdLFsxLCJlbnZpcm9ubWVudC1ub3QtbG9hZGVkIl0sWzEsImxhc3QtcmVsb2FkLXRpbWUiXSxbImNsYXNzIiwiZGF0YS1sb2NhdGlvbiIsNCwibmdJZiJdLFsxLCJkYXRhLWxvY2F0aW9uIl1dLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXsxJmUmJihDZigwLCJkaXYiLDAsMSksUGYoMixudWxsLDIpLE1mKCksSG0oNCx4d3QsNiw1LCJkaXYiLDMpLEhtKDUsT3d0LDYsMSwibmctdGVtcGxhdGUiLG51bGwsNCxxeSksSG0oNyx3d3QsNCw1LCJuZy10ZW1wbGF0ZSIsbnVsbCw1LHF5KSksMiZlJiYoYmYoIm5nQ2xhc3MiLGl5KDIsa3d0LChudWxsPT1uLmFjdGl2ZUtub3duUGx1Z2luP251bGw6bi5hY3RpdmVLbm93blBsdWdpbi5sb2FkaW5nX21lY2hhbmlzbS50eXBlKSE9PW4uTG9hZGluZ01lY2hhbmlzbVR5cGUuSUZSQU1FKSksRGMoNCksYmYoIm5nSWYiLG4ucGx1Z2luTG9hZFN0YXRlIT09bi5QbHVnaW5Mb2FkU3RhdGUuTE9BREVEJiZuLnBsdWdpbkxvYWRTdGF0ZSE9PW4uUGx1Z2luTG9hZFN0YXRlLkxPQURJTkcpKX0sZGlyZWN0aXZlczpbQ3YsUHYsRHYsUnYsSXZdLHBpcGVzOltZdl0sc3R5bGVzOlsnLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6OXB4fS5tYXQtYmFkZ2UtbGFyZ2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1iYWRnZS1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjRweH0ubWF0LWgxW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1oZWFkbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoMVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgMjRweC8zMnB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oM1tfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNnB4LzI4cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtc3ViaGVhZGluZy0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNXB4LzI0cHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDE2cHh9Lm1hdC1oNVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtdHlwb2dyYXBoeVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17Zm9udDo0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDZbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO21hcmdpbjowIDAgMTJweH0ubWF0LWJvZHktc3Ryb25nW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1ib2R5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtYm9keVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtYm9keS0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAxMnB4fS5tYXQtc21hbGxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWNhcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDEycHgvMjBweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS00W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjMwMCAxMTJweC8xMTJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTNbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDJlbTttYXJnaW46MCAwIDY0cHh9Lm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXR5cG9ncmFwaHlbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1kaXNwbGF5LTJbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NDAwIDQ1cHgvNDhweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTAuMDA1ZW07bWFyZ2luOjAgMCA2NHB4fS5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10eXBvZ3JhcGh5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZGlzcGxheS0xW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAzNHB4LzQwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtcmFpc2VkLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtaWNvbi1idXR0b25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LXN0cm9rZWQtYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mbGF0LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZmFiW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1taW5pLWZhYltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhcmQtdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtY2FyZC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHh9Lm1hdC1jYXJkLXN1YnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1jYXJkLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2hlY2tib3hbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNoZWNrYm94LWxheW91dFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoZWNrYm94LWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2hpcFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MThweH0ubWF0LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1oZWFkZXItY2VsbFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9vdGVyLWNlbGxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWNhbGVuZGFyLWJvZHlbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxM3B4fS5tYXQtY2FsZW5kYXItYm9keS1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250OjQwMCAxNHB4LzIwcHggUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubWF0LWZvcm0tZmllbGRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtc3VmZml4W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE1MCU7bGluZS1oZWlnaHQ6MS4xMjV9Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19Lm1hdC1mb3JtLWZpZWxkLXByZWZpeFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb24tYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaWNvbltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1zdWZmaXhbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pY29uLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWljb25bX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxLjEyNWVtO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVdLCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzMzMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6LTAuODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZVtfbmdjb250ZW50LSVDT01QJV17Ym90dG9tOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWlucHV0LXNlcnZlcltfbmdjb250ZW50LSVDT01QJV06Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdFtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM1MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmVbX25nY29udGVudC0lQ09NUCVde2JvdHRvbToxLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDouNTQxNjY2NjY2N2VtO3RvcDpjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sW19uZ2NvbnRlbnQtJUNPTVAlXTotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXVtfbmdjb250ZW50LSVDT01QJV06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWZvcm0tZmllbGQtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSl9fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dG9wOjEuMDkzNzVlbTttYXJnaW4tdG9wOi0wLjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWluZml4W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmVbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0b3A6MS44NDM3NWVtO21hcmdpbi10b3A6LTAuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbX25nY29udGVudC0lQ09NUCVdOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTt3aWR0aDoxMzMuMzMzMzMzMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7d2lkdGg6MTMzLjMzMzM0MzMzMzMlfS5tYXQtZ3JpZC10aWxlLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV0sIC5tYXQtZ3JpZC10aWxlLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXTpudGgtY2hpbGQobisyKSwgLm1hdC1ncmlkLXRpbGUtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6LTAuMDYyNWVtfS5tYXQtbWVudS1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc2VsZWN0LXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3QtdHJpZ2dlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lm1hdC1zdGVwcGVyLXZlcnRpY2FsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC1zdGVwcGVyLWhvcml6b250YWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LXN0ZXAtbGFiZWxbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDpub3JtYWx9Lm1hdC1zdGVwLWxhYmVsLWVycm9yW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweH0ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmfS5tYXQtdGFiLWxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1hdC10YWItbGlua1tfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDFbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDJbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDRbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LXRvb2xiYXJbX25nY29udGVudC0lQ09NUCVdICAgaDZbX25nY29udGVudC0lQ09NUCVde2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbjowfS5tYXQtdG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6Um9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9Lm1hdC10b29sdGlwLWhhbmRzZXRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LW9wdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpbmVbX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjE0cHh9Lm1hdC1saXN0LWJhc2VbX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1zdWJoZWFkZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saXN0LWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLm1hdC1saW5lW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGlzdC1vcHRpb25bX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlW2RlbnNlXVtfbmdjb250ZW50LSVDT01QJV0gICAubWF0LWxpc3Qtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtbGluZVtfbmdjb250ZW50LSVDT01QJV06bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9Lm1hdC1saXN0LWJhc2VbZGVuc2VdW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtc3ViaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHh9Lm1hdC1vcHRncm91cC1sYWJlbFtfbmdjb250ZW50LSVDT01QJV17Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzpub3JtYWx9Lm1hdC1zaW1wbGUtc25hY2tiYXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OlJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjtmb250LXNpemU6MTRweH0ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDo1MDB9Lm1hdC10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LWZhbWlseTpSb2JvdG8sICJIZWx2ZXRpY2EgTmV1ZSIsIHNhbnMtc2VyaWZ9Lm1hdC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdLCAubWF0LW5lc3RlZC10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVde2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZVtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtcmlwcGxlW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmVtcHR5KXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSx0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO3RyYW5zZm9ybTpzY2FsZSgwKX0uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tYXQtcmlwcGxlLWVsZW1lbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0uY2RrLXZpc3VhbGx5LWhpZGRlbltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwO291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH0uY2RrLW92ZXJsYXktY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXTplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5lW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czphdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2RrLW92ZXJsYXktYmFja2Ryb3BbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOm9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7b3BhY2l0eTowfS5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9LmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMil9LmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja1tfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtvdmVyZmxvdy15OnNjcm9sbH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemVbX25nY29udGVudC0lQ09NUCVde3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudH10ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3hbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDAgIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7aGVpZ2h0OjAgIWltcG9ydGFudH1Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0e31Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZHt9LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZFtfbmdjb250ZW50LSVDT01QJV06LXdlYmtpdC1hdXRvZmlsbHthbmltYXRpb246Y2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zfS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWRbX25nY29udGVudC0lQ09NUCVdOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCl7YW5pbWF0aW9uOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCAwcyAxbXN9Lm1hdC1mb2N1cy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5tYXQtbWRjLWZvY3VzLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9W19uZ2hvc3QtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzIxMjEyMTtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlfWJvZHkuZGFyay1tb2RlICAgW19uZ2hvc3QtJUNPTVAlXSAgIC5wbHVnaW5zLmlzLWZpcnN0LXBhcnR5LXBsdWdpbltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojMzAzMDMwO2NvbG9yOiNmZmZ9LnBsdWdpbnNbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlfS53YXJuaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOiNmZmY7Ym90dG9tOjA7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjB9Ym9keS5kYXJrLW1vZGVbX25naG9zdC0lQ09NUCVdICAgLndhcm5pbmdbX25nY29udGVudC0lQ09NUCVdLCBib2R5LmRhcmstbW9kZSAgIFtfbmdob3N0LSVDT01QJV0gICAud2FybmluZ1tfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojMzAzMDMwfS53YXJuaW5nLW1lc3NhZ2VbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiMyMTIxMjE7bWFyZ2luOjgwcHggYXV0byAwO21heC13aWR0aDo1NDBweH1ib2R5LmRhcmstbW9kZVtfbmdob3N0LSVDT01QJV0gICAud2FybmluZy1tZXNzYWdlW19uZ2NvbnRlbnQtJUNPTVAlXSwgYm9keS5kYXJrLW1vZGUgICBbX25naG9zdC0lQ09NUCVdICAgLndhcm5pbmctbWVzc2FnZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6I2ZmZn0ubGFzdC1yZWxvYWQtdGltZVtfbmdjb250ZW50LSVDT01QJV17Zm9udC1zdHlsZTppdGFsaWN9LnBsdWdpbnNbX25nY29udGVudC0lQ09NUCVdICAgICBpZnJhbWV7Ym9yZGVyOjA7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfSddLGNoYW5nZURldGVjdGlvbjowfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihEd3QsW3t0eXBlOlNfLGFyZ3M6W3tzZWxlY3RvcjoicGx1Z2lucy1jb21wb25lbnQiLHRlbXBsYXRlVXJsOiIuL3BsdWdpbnNfY29tcG9uZW50Lm5nLmh0bWwiLHN0eWxlVXJsczpbInBsdWdpbnNfY29tcG9uZW50LmNzcyJdLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTpHaH0se3R5cGU6TVh9LHt0eXBlOldJLGRlY29yYXRvcnM6W3t0eXBlOkJyfV19XX0pLHtwbHVnaW5zQ29udGFpbmVyOlt7dHlwZTphcixhcmdzOlsicGx1Z2luQ29udGFpbmVyIix7c3RhdGljOiEwLHJlYWQ6S2h9XX1dLG5nUGx1Z2luQ29udGFpbmVyOlt7dHlwZTphcixhcmdzOlsibmdQbHVnaW5Db250YWluZXIiLHtzdGF0aWM6ITAscmVhZDpGYn1dfV0sYWN0aXZlUGx1Z2luSWQ6W3t0eXBlOlJffV0sYWN0aXZlS25vd25QbHVnaW46W3t0eXBlOlJffV0scGx1Z2luTG9hZFN0YXRlOlt7dHlwZTpSX31dLGRhdGFMb2NhdGlvbjpbe3R5cGU6Ul99XSxpc0ZlYXR1cmVGbGFnc0xvYWRlZDpbe3R5cGU6Ul99XSxzZXR0aW5nc0xvYWRTdGF0ZTpbe3R5cGU6Ul99XSxmZWF0dXJlRmxhZ3M6W3t0eXBlOlJffV0sbGFzdFVwZGF0ZWQ6W3t0eXBlOlJffV0sZW52aXJvbm1lbnRGYWlsdXJlTm90Rm91bmRUZW1wbGF0ZTpbe3R5cGU6Ul99XSxlbnZpcm9ubWVudEZhaWx1cmVVbmtub3duVGVtcGxhdGU6W3t0eXBlOlJffV19KTtjb25zdCBSd3Q9YlMoblQsZVQsKCh0LGUpPT5lJiZ0W2VdP09iamVjdC5hc3NpZ24oe2lkOmV9LHRbZV0pOm51bGwpKTtjbGFzcyBFd3R7Y29uc3RydWN0b3IodCl7dGhpcy5zdG9yZT10LHRoaXMuYWN0aXZlS25vd25QbHVnaW4kPXRoaXMuc3RvcmUuc2VsZWN0KFJ3dCksdGhpcy5hY3RpdmVQbHVnaW5JZCQ9dGhpcy5zdG9yZS5zZWxlY3QoZVQpLHRoaXMucGx1Z2luTG9hZFN0YXRlJD1LdCh0aGlzLmFjdGl2ZUtub3duUGx1Z2luJCx0aGlzLmFjdGl2ZVBsdWdpbklkJCx0aGlzLnN0b3JlLnNlbGVjdChKQSkpLnBpcGUoVnQoKChbdCxlLG5dKT0+bnVsbCE9PW4uZmFpbHVyZUNvZGU/bi5mYWlsdXJlQ29kZT09PUxFLk5PVF9GT1VORD9Td3QuRU5WSVJPTk1FTlRfRkFJTFVSRV9OT1RfRk9VTkQ6U3d0LkVOVklST05NRU5UX0ZBSUxVUkVfVU5LTk9XTjpudWxsIT09dD9Td3QuTE9BREVEOm51bGw9PT1uLmxhc3RMb2FkZWRUaW1lSW5NcyYmbi5zdGF0ZT09PVVFLkxPQURJTkc/U3d0LkxPQURJTkc6ZT9Td3QuVU5LTk9XTl9QTFVHSU5fSUQ6U3d0Lk5PX0VOQUJMRURfUExVR0lOUykpKSx0aGlzLmxhc3RMb2FkZWRUaW1lSW5NcyQ9dGhpcy5zdG9yZS5zZWxlY3QodFQpLHRoaXMuZGF0YUxvY2F0aW9uJD10aGlzLnN0b3JlLnNlbGVjdChvVCkucGlwZShWdCgodD0+dC5kYXRhX2xvY2F0aW9uKSkpLHRoaXMuaXNGZWF0dXJlRmxhZ3NMb2FkZWQkPXRoaXMuc3RvcmUuc2VsZWN0KE5EKSx0aGlzLmZlYXR1cmVGbGFncyQ9dGhpcy5zdG9yZS5zZWxlY3QoekQpLHRoaXMuc2V0dGluZ3NMb2FkU3RhdGUkPXRoaXMuc3RvcmUuc2VsZWN0KGZJKX19RXd0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHxFd3QpKGdmKGlTKSl9LEV3dC7JtWNtcD1zbyh7dHlwZTpFd3Qsc2VsZWN0b3JzOltbInBsdWdpbnMiXV0saW5wdXRzOntlbnZpcm9ubWVudEZhaWx1cmVOb3RGb3VuZFRlbXBsYXRlOiJlbnZpcm9ubWVudEZhaWx1cmVOb3RGb3VuZFRlbXBsYXRlIixlbnZpcm9ubWVudEZhaWx1cmVVbmtub3duVGVtcGxhdGU6ImVudmlyb25tZW50RmFpbHVyZVVua25vd25UZW1wbGF0ZSJ9LGRlY2xzOjksdmFyczoyNixjb25zdHM6W1szLCJhY3RpdmVLbm93blBsdWdpbiIsImFjdGl2ZVBsdWdpbklkIiwiZGF0YUxvY2F0aW9uIiwibGFzdFVwZGF0ZWQiLCJwbHVnaW5Mb2FkU3RhdGUiLCJpc0ZlYXR1cmVGbGFnc0xvYWRlZCIsInNldHRpbmdzTG9hZFN0YXRlIiwiZmVhdHVyZUZsYWdzIiwiZW52aXJvbm1lbnRGYWlsdXJlTm90Rm91bmRUZW1wbGF0ZSIsImVudmlyb25tZW50RmFpbHVyZVVua25vd25UZW1wbGF0ZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYodmYoMCwicGx1Z2lucy1jb21wb25lbnQiLDApLF95KDEsImFzeW5jIiksX3koMiwiYXN5bmMiKSxfeSgzLCJhc3luYyIpLF95KDQsImFzeW5jIiksX3koNSwiYXN5bmMiKSxfeSg2LCJhc3luYyIpLF95KDcsImFzeW5jIiksX3koOCwiYXN5bmMiKSksMiZlJiZiZigiYWN0aXZlS25vd25QbHVnaW4iLEN5KDEsMTAsbi5hY3RpdmVLbm93blBsdWdpbiQpKSgiYWN0aXZlUGx1Z2luSWQiLEN5KDIsMTIsbi5hY3RpdmVQbHVnaW5JZCQpKSgiZGF0YUxvY2F0aW9uIixDeSgzLDE0LG4uZGF0YUxvY2F0aW9uJCkpKCJsYXN0VXBkYXRlZCIsQ3koNCwxNixuLmxhc3RMb2FkZWRUaW1lSW5NcyQpKSgicGx1Z2luTG9hZFN0YXRlIixDeSg1LDE4LG4ucGx1Z2luTG9hZFN0YXRlJCkpKCJpc0ZlYXR1cmVGbGFnc0xvYWRlZCIsQ3koNiwyMCxuLmlzRmVhdHVyZUZsYWdzTG9hZGVkJCkpKCJzZXR0aW5nc0xvYWRTdGF0ZSIsQ3koNywyMixuLnNldHRpbmdzTG9hZFN0YXRlJCkpKCJmZWF0dXJlRmxhZ3MiLEN5KDgsMjQsbi5mZWF0dXJlRmxhZ3MkKSkoImVudmlyb25tZW50RmFpbHVyZU5vdEZvdW5kVGVtcGxhdGUiLG4uZW52aXJvbm1lbnRGYWlsdXJlTm90Rm91bmRUZW1wbGF0ZSkoImVudmlyb25tZW50RmFpbHVyZVVua25vd25UZW1wbGF0ZSIsbi5lbnZpcm9ubWVudEZhaWx1cmVVbmtub3duVGVtcGxhdGUpfSxzdHlsZXM6WyJwbHVnaW5zLWNvbXBvbmVudFtfbmdjb250ZW50LSVDT01QJV0geyBoZWlnaHQ6IDEwMCU7IH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoRXd0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6InBsdWdpbnMiLHRlbXBsYXRlOidcbiAgICA8cGx1Z2lucy1jb21wb25lbnRcbiAgICAgIFthY3RpdmVLbm93blBsdWdpbl09ImFjdGl2ZUtub3duUGx1Z2luJCB8IGFzeW5jIlxuICAgICAgW2FjdGl2ZVBsdWdpbklkXT0iYWN0aXZlUGx1Z2luSWQkIHwgYXN5bmMiXG4gICAgICBbZGF0YUxvY2F0aW9uXT0iZGF0YUxvY2F0aW9uJCB8IGFzeW5jIlxuICAgICAgW2xhc3RVcGRhdGVkXT0ibGFzdExvYWRlZFRpbWVJbk1zJCB8IGFzeW5jIlxuICAgICAgW3BsdWdpbkxvYWRTdGF0ZV09InBsdWdpbkxvYWRTdGF0ZSQgfCBhc3luYyJcbiAgICAgIFtpc0ZlYXR1cmVGbGFnc0xvYWRlZF09ImlzRmVhdHVyZUZsYWdzTG9hZGVkJCB8IGFzeW5jIlxuICAgICAgW3NldHRpbmdzTG9hZFN0YXRlXT0ic2V0dGluZ3NMb2FkU3RhdGUkIHwgYXN5bmMiXG4gICAgICBbZmVhdHVyZUZsYWdzXT0iZmVhdHVyZUZsYWdzJCB8IGFzeW5jIlxuICAgICAgW2Vudmlyb25tZW50RmFpbHVyZU5vdEZvdW5kVGVtcGxhdGVdPSJlbnZpcm9ubWVudEZhaWx1cmVOb3RGb3VuZFRlbXBsYXRlIlxuICAgICAgW2Vudmlyb25tZW50RmFpbHVyZVVua25vd25UZW1wbGF0ZV09ImVudmlyb25tZW50RmFpbHVyZVVua25vd25UZW1wbGF0ZSJcbiAgICA+PC9wbHVnaW5zLWNvbXBvbmVudD5cbiAgJyxzdHlsZXM6WyJwbHVnaW5zLWNvbXBvbmVudCB7IGhlaWdodDogMTAwJTsgfSJdLGNoYW5nZURldGVjdGlvbjpqbi5PblB1c2h9XX1dLChmdW5jdGlvbigpe3JldHVyblt7dHlwZTppU31dfSkse2Vudmlyb25tZW50RmFpbHVyZU5vdEZvdW5kVGVtcGxhdGU6W3t0eXBlOlJffV0sZW52aXJvbm1lbnRGYWlsdXJlVW5rbm93blRlbXBsYXRlOlt7dHlwZTpSX31dfSk7Y2xhc3MgQXd0e31Bd3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEF3dCl9LEF3dC7JtW1vZD1mbyh7dHlwZTpBd3R9KSxBd3QuybVpbmo9RG4oe2ltcG9ydHM6W1tkVCxyeCxNWF1dfSksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdEZXZNb2RlfHxuZ0Rldk1vZGUpJiZRYihBd3QsW3t0eXBlOkxfLGFyZ3M6W3tkZWNsYXJhdGlvbnM6W0V3dCxEd3RdLGV4cG9ydHM6W0V3dF0saW1wb3J0czpbZFQscngsTVhdfV19XSxudWxsLG51bGwpLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nSml0TW9kZXx8bmdKaXRNb2RlKSYmdW8oQXd0LHtkZWNsYXJhdGlvbnM6W0V3dCxEd3RdLGltcG9ydHM6W2RULHJ4LE1YXSxleHBvcnRzOltFd3RdfSksbG8oRXd0LFtEd3RdLFtWdl0pO2NsYXNzIFR3dHtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuc3RvcmU9dCx0aGlzLmRvY3VtZW50PWUsdGhpcy5vblZpc2liaWxpdHlDaGFuZ2U9dGhpcy5vblZpc2liaWxpdHlDaGFuZ2VJbXBsLmJpbmQodGhpcyksdGhpcy5yZWxvYWRFbmFibGVkJD10aGlzLnN0b3JlLnBpcGUoclModUkpKSx0aGlzLnJlbG9hZFBlcmlvZEluTXMkPXRoaXMuc3RvcmUucGlwZShyUyhnSSkpLHRoaXMucmVsb2FkVGltZXJJZD1udWxsLHRoaXMubWlzc2VkQXV0b1JlbG9hZD0hMX1uZ09uSW5pdCgpe3RoaXMuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsdGhpcy5vblZpc2liaWxpdHlDaGFuZ2UpLEt0KHRoaXMucmVsb2FkRW5hYmxlZCQucGlwZSh3ZSgpKSx0aGlzLnJlbG9hZFBlcmlvZEluTXMkLnBpcGUod2UoKSkpLnN1YnNjcmliZSgoKFt0LGVdKT0+e3RoaXMuY2FuY2VsTG9hZCgpLHQmJnRoaXMubG9hZChlKX0pKX1vblZpc2liaWxpdHlDaGFuZ2VJbXBsKCl7InZpc2libGUiPT09dGhpcy5kb2N1bWVudC52aXNpYmlsaXR5U3RhdGUmJnRoaXMubWlzc2VkQXV0b1JlbG9hZCYmKHRoaXMubWlzc2VkQXV0b1JlbG9hZD0hMSx0aGlzLnN0b3JlLmRpc3BhdGNoKFFFKCkpKX1sb2FkKHQpe3RoaXMucmVsb2FkVGltZXJJZD1zZXRUaW1lb3V0KCgoKT0+eyJ2aXNpYmxlIj09PXRoaXMuZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlP3RoaXMuc3RvcmUuZGlzcGF0Y2goUUUoKSk6dGhpcy5taXNzZWRBdXRvUmVsb2FkPSEwLHRoaXMubG9hZCh0KX0pLHQpfWNhbmNlbExvYWQoKXtudWxsIT09dGhpcy5yZWxvYWRUaW1lcklkJiZjbGVhclRpbWVvdXQodGhpcy5yZWxvYWRUaW1lcklkKSx0aGlzLnJlbG9hZFRpbWVySWQ9bnVsbH1uZ09uRGVzdHJveSgpe3RoaXMuY2FuY2VsTG9hZCgpLHRoaXMuZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsdGhpcy5vblZpc2liaWxpdHlDaGFuZ2UpfX1Ud3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFR3dCkoZ2YoaVMpLGdmKHNNKSl9LFR3dC7JtWNtcD1zbyh7dHlwZTpUd3Qsc2VsZWN0b3JzOltbInJlbG9hZGVyIl1dLGRlY2xzOjAsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uIHQoZSxuKXt9LGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoVHd0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6InJlbG9hZGVyIix0ZW1wbGF0ZToiIixjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSwoZnVuY3Rpb24oKXtyZXR1cm5be3R5cGU6aVN9LHt0eXBlOkRvY3VtZW50LGRlY29yYXRvcnM6W3t0eXBlOkxyLGFyZ3M6W3NNXX1dfV19KSxudWxsKTtjbGFzcyBOd3R7fU53dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Tnd0KX0sTnd0Lsm1Y21wPXNvKHt0eXBlOk53dCxzZWxlY3RvcnM6W1sidGVuc29yYm9hcmQtd3JhcHBlci1jb21wb25lbnQiXV0sZGVjbHM6Mix2YXJzOjAsY29uc3RzOltbMSwicGx1Z2lucyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiB0KGUsbil7MSZlJiYodmYoMCwicGx1Z2lucyIsMCksdmYoMSwicmVsb2FkZXIiKSl9LGRpcmVjdGl2ZXM6W0V3dCxUd3RdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC5wbHVnaW5zW19uZ2NvbnRlbnQtJUNPTVAlXSB7XG4gICAgICAgIGZsZXg6IDEgMTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH0iXSxjaGFuZ2VEZXRlY3Rpb246MH0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoTnd0LFt7dHlwZTpTXyxhcmdzOlt7c2VsZWN0b3I6InRlbnNvcmJvYXJkLXdyYXBwZXItY29tcG9uZW50Iix0ZW1wbGF0ZTonXG4gICAgPHBsdWdpbnMgY2xhc3M9InBsdWdpbnMiPjwvcGx1Z2lucz5cbiAgICA8cmVsb2FkZXI+PC9yZWxvYWRlcj5cbiAgJyxzdHlsZXM6WyJcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAucGx1Z2lucyB7XG4gICAgICAgIGZsZXg6IDEgMTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cbiAgICAiXSxjaGFuZ2VEZXRlY3Rpb246am4uT25QdXNofV19XSxudWxsLG51bGwpO2NsYXNzIHp3dHt9end0Lsm1ZmFjPWZ1bmN0aW9uIHQoZSl7cmV0dXJuIG5ldyhlfHx6d3QpfSx6d3QuybVwcm92PVNuKHt0b2tlbjp6d3QsZmFjdG9yeTp6d3QuybVmYWN9KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKHp3dCxbe3R5cGU6VW19XSxudWxsLG51bGwpO2NvbnN0IEl3dD0ic21vb3RoaW5nIixId3Q9InJ1bkNvbG9yR3JvdXAiLEZ3dD0idGFnRmlsdGVyIixMd3Q9InJ1bkZpbHRlciIsQnd0PSJyZWdleDoiO2xldCBWd3Q9Y2xhc3MgZXh0ZW5kcyB6d3R7Z2V0TWV0cmljc1Bpbm5lZENhcmRzKHQpe3JldHVybiBLdChbdC5zZWxlY3QoY3opLHQuc2VsZWN0KHB6KV0pLnBpcGUoVnQoKChbdCxlXSk9PntpZighdC5sZW5ndGgmJiFlLmxlbmd0aClyZXR1cm5bXTtjb25zdCBuPVsuLi50Lm1hcCgoKHtwbHVnaW46dCx0YWc6ZSxzYW1wbGU6bixydW5JZDpvfSk9Pntjb25zdCBpPXtwbHVnaW46dCx0YWc6ZX07cmV0dXJuIG9OKHQpJiYoaS5ydW5JZD1vKSxlTih0KSYmKGkuc2FtcGxlPW4pLGl9KSksLi4uZV07cmV0dXJuW3trZXk6InBpbm5lZENhcmRzIix2YWx1ZTpKU09OLnN0cmluZ2lmeShuKX1dfSkpKX1nZXRGZWF0dXJlRmxhZ1N0YXRlcyh0KXtyZXR1cm4gS3QoW3Quc2VsZWN0KEJEKSx0LnNlbGVjdChJRCldKS5waXBlKFZ0KCgoW3QsZV0pPT57Y29uc3Qgbj10Lm1hcCgodD0+KHtrZXk6aE4sdmFsdWU6dH0pKSk7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgZS5lbmFibGVkQ29sb3JHcm91cCYmbi5wdXNoKHtrZXk6X04sdmFsdWU6U3RyaW5nKGUuZW5hYmxlZENvbG9yR3JvdXApfSksImJvb2xlYW4iPT10eXBlb2YgZS5lbmFibGVkQ29sb3JHcm91cEJ5UmVnZXgmJm4ucHVzaCh7a2V5OkNOLHZhbHVlOlN0cmluZyhlLmVuYWJsZWRDb2xvckdyb3VwQnlSZWdleCl9KSxufSkpKX1zZXJpYWxpemVTdGF0ZVRvUXVlcnlQYXJhbXModCl7cmV0dXJuIEt0KFt0aGlzLmdldE1ldHJpY3NQaW5uZWRDYXJkcyh0KSx0LnNlbGVjdChQeikucGlwZShWdCgodD0+dD9be2tleTpGd3QsdmFsdWU6dH1dOltdKSkpLHRoaXMuZ2V0RmVhdHVyZUZsYWdTdGF0ZXModCksdC5zZWxlY3QodXopLnBpcGUoVnQoKHQ9Pk51bWJlci5pc0Zpbml0ZSh0LnNjYWxhclNtb290aGluZyk/W3trZXk6SXd0LHZhbHVlOlN0cmluZyh0LnNjYWxhclNtb290aGluZyl9XTpbXSkpKSx0LnNlbGVjdChReikucGlwZShWdCgodD0+e2lmKCF0KXJldHVybltdO2xldCBlO3N3aXRjaCh0LmtleSl7Y2FzZSBMei5FWFBFUklNRU5UOmU9ImV4cGVyaW1lbnQiO2JyZWFrO2Nhc2UgTHouUlVOOmU9InJ1biI7YnJlYWs7Y2FzZSBMei5SRUdFWDplPWByZWdleDoke3QucmVnZXhTdHJpbmd9YDticmVhaztkZWZhdWx0OnRocm93IG5ldyBSYW5nZUVycm9yKCJTZXJpYWxpemF0aW9uIG5vdCBpbXBsZW1lbnRlZCIpfXJldHVyblt7a2V5Okh3dCx2YWx1ZTplfV19KSkpLHQuc2VsZWN0KHRJKS5waXBlKFZ0KCh0PT50P1t7a2V5Okx3dCx2YWx1ZTp0fV06W10pKSldKS5waXBlKFZ0KCh0PT50LmZsYXQoKSkpKX1kZXNlcmlhbGl6ZVF1ZXJ5UGFyYW1zKHQpe2xldCBlPW51bGwsbj1udWxsLG89bnVsbCxpPW51bGwsYT1udWxsO2Zvcihjb25zdHtrZXk6cix2YWx1ZTpzfW9mIHQpc3dpdGNoKHIpe2Nhc2UicGlubmVkQ2FyZHMiOmU9and0KHMpO2JyZWFrO2Nhc2UgSXd0Om49TnVtYmVyKHMpO2JyZWFrO2Nhc2UgSHd0OnN3aXRjaChzKXtjYXNlImV4cGVyaW1lbnQiOmk9e2tleTpMei5FWFBFUklNRU5UfTticmVhaztjYXNlInJ1biI6aT17a2V5Okx6LlJVTn19aWYocy5zdGFydHNXaXRoKEJ3dCkpe2NvbnN0IHQ9cy5zbGljZShCd3QubGVuZ3RoKTtpPXtrZXk6THouUkVHRVgscmVnZXhTdHJpbmc6dH19YnJlYWs7Y2FzZSBGd3Q6bz1zO2JyZWFrO2Nhc2UgTHd0OmE9c31yZXR1cm57bWV0cmljczp7cGlubmVkQ2FyZHM6ZXx8W10sc21vb3RoaW5nOm4sdGFnRmlsdGVyOm99LHJ1bnM6e2dyb3VwQnk6aSxyZWdleEZpbHRlcjphfX19fTtmdW5jdGlvbiBqd3QodCl7bGV0IGU7dHJ5e2U9SlNPTi5wYXJzZSh0KX1jYXRjaCh0KXtyZXR1cm4gbnVsbH1pZighQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gbnVsbDtjb25zdCBuPVtdO2Zvcihjb25zdCB0IG9mIGUpe2NvbnN0IGU9InN0cmluZyI9PXR5cGVvZiB0LnJ1bklkLGk9Im51bWJlciI9PXR5cGVvZiB0LnNhbXBsZSxhPSJzdHJpbmciPT10eXBlb2YgdC50YWcscj1lfHx2b2lkIDA9PT10LnJ1bklkLHM9aXx8dm9pZCAwPT09dC5zYW1wbGU7aWYoISgic3RyaW5nIj09dHlwZW9mIHQucGx1Z2luJiZhJiZyJiZzKSljb250aW51ZTtpZigobz10LnBsdWdpbikhPT1LVC5TQ0FMQVJTJiZvIT09S1QuSElTVE9HUkFNUyYmbyE9PUtULklNQUdFUyljb250aW51ZTtpZighdC50YWcpY29udGludWU7aWYob04odC5wbHVnaW4pKXtpZighdC5ydW5JZCljb250aW51ZX1lbHNlIGlmKHQucnVuSWQpY29udGludWU7aWYoaSl7aWYoIWVOKHQucGx1Z2luKSljb250aW51ZTtpZighTnVtYmVyLmlzSW50ZWdlcih0LnNhbXBsZSl8fHQuc2FtcGxlPDApY29udGludWV9Y29uc3QgbD17cGx1Z2luOnQucGx1Z2luLHRhZzp0LnRhZ307ZSYmKGwucnVuSWQ9dC5ydW5JZCksaSYmKGwuc2FtcGxlPXQuc2FtcGxlKSxuLnB1c2gobCl9dmFyIG87cmV0dXJuIG59ZnVuY3Rpb24gVXd0KCl7cmV0dXJuW3tyb3V0ZUtpbmQ6X0QuRVhQRVJJTUVOVCxwYXRoOiIvIixuZ0NvbXBvbmVudDpOd3QsZGVmYXVsdFJvdXRlOiEwLGRlZXBMaW5rUHJvdmlkZXI6bmV3IFZ3dH1dfWZ1bmN0aW9uIFd3dCh0KXtyZXR1cm4oZSxuKT0+e2NvbnN0IG89dChlLG4pO3JldHVybiBjb25zb2xlLmdyb3VwQ29sbGFwc2VkKG4udHlwZSksY29uc29sZS5sb2coInByZXYgc3RhdGUiLGUpLGNvbnNvbGUubG9nKCJhY3Rpb24iLG4pLGNvbnNvbGUubG9nKCJuZXh0IHN0YXRlIixvKSxjb25zb2xlLmdyb3VwRW5kKCksb319ZnVuY3Rpb24gR3d0KCl7cmV0dXJuIFBDKCk/V3d0OnQ9PihlLG4pPT50KGUsbil9Vnd0PShmdW5jdGlvbiBZd3QodCxlLG4sbyl7dmFyIGksYT1hcmd1bWVudHMubGVuZ3RoLHI9YTwzP2U6bnVsbD09PW8/bz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsbik6bztpZigib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3QmJiJmdW5jdGlvbiI9PXR5cGVvZiBSZWZsZWN0LmRlY29yYXRlKXI9UmVmbGVjdC5kZWNvcmF0ZSh0LGUsbixvKTtlbHNlIGZvcih2YXIgcz10Lmxlbmd0aC0xO3M+PTA7cy0tKShpPXRbc10pJiYocj0oYTwzP2kocik6YT4zP2koZSxuLHIpOmkoZSxuKSl8fHIpO3JldHVybiBhPjMmJnImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4scikscn0pKFtVbSgpXSxWd3QpO2NvbnN0IHF3dD1uZXcgZXIoIlJvb3QgcmVkdWNlcnMgdG9rZW4iLHtmYWN0b3J5OigpPT4oe30pfSk7Y2xhc3MgWnd0e31ad3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFp3dCl9LFp3dC7JtW1vZD1mbyh7dHlwZTpad3R9KSxad3QuybVpbmo9RG4oe3Byb3ZpZGVyczpbe3Byb3ZpZGU6TGssdXNlRmFjdG9yeTpHd3QsbXVsdGk6ITB9XSxpbXBvcnRzOltbVFMuZm9yUm9vdChxd3Qse3J1bnRpbWVDaGVja3M6e3N0cmljdFN0YXRlSW1tdXRhYmlsaXR5OiEwLHN0cmljdEFjdGlvbkltbXV0YWJpbGl0eTohMCxzdHJpY3RBY3Rpb25TZXJpYWxpemFiaWxpdHk6ITEsc3RyaWN0U3RhdGVTZXJpYWxpemFiaWxpdHk6ITF9fSksaEQuZm9yUm9vdChbXSldXX0pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoWnd0LFt7dHlwZTpMXyxhcmdzOlt7aW1wb3J0czpbVFMuZm9yUm9vdChxd3Qse3J1bnRpbWVDaGVja3M6e3N0cmljdFN0YXRlSW1tdXRhYmlsaXR5OiEwLHN0cmljdEFjdGlvbkltbXV0YWJpbGl0eTohMCxzdHJpY3RBY3Rpb25TZXJpYWxpemFiaWxpdHk6ITEsc3RyaWN0U3RhdGVTZXJpYWxpemFiaWxpdHk6ITF9fSksaEQuZm9yUm9vdChbXSldLHByb3ZpZGVyczpbe3Byb3ZpZGU6TGssdXNlRmFjdG9yeTpHd3QsbXVsdGk6ITB9XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKFp3dCx7aW1wb3J0czpbRVMsdURdfSk7Y2xhc3MgWHd0e31Yd3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fFh3dCl9LFh3dC7JtW1vZD1mbyh7dHlwZTpYd3R9KSxYd3QuybVpbmo9RG4oe30pLCgidW5kZWZpbmVkIj09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmUWIoWHd0LFt7dHlwZTpMXyxhcmdzOlt7ZGVjbGFyYXRpb25zOltUd3RdLGV4cG9ydHM6W1R3dF19XX1dLG51bGwsbnVsbCksKCJ1bmRlZmluZWQiPT10eXBlb2YgbmdKaXRNb2RlfHxuZ0ppdE1vZGUpJiZ1byhYd3Qse2RlY2xhcmF0aW9uczpbVHd0XSxleHBvcnRzOltUd3RdfSk7Y2xhc3MgS3d0e31Ld3QuybVmYWM9ZnVuY3Rpb24gdChlKXtyZXR1cm4gbmV3KGV8fEt3dCl9LEt3dC7JtW1vZD1mbyh7dHlwZTpLd3R9KSxLd3QuybVpbmo9RG4oe2ltcG9ydHM6W1tyeCxBd3QsWHd0XV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEt3dCxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbTnd0XSxpbXBvcnRzOltyeCxBd3QsWHd0XSxleHBvcnRzOltOd3RdLGVudHJ5Q29tcG9uZW50czpbTnd0XX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKEt3dCx7ZGVjbGFyYXRpb25zOltOd3RdLGltcG9ydHM6W3J4LEF3dCxYd3RdLGV4cG9ydHM6W053dF19KTtjbGFzcyBKd3R7fUp3dC7JtWZhYz1mdW5jdGlvbiB0KGUpe3JldHVybiBuZXcoZXx8Snd0KX0sSnd0Lsm1bW9kPWZvKHt0eXBlOkp3dCxib290c3RyYXA6W3RYXX0pLEp3dC7JtWluaj1Ebih7aW1wb3J0czpbW0lOLGRPLGhrLFJSLG5YLGZSLnJlZ2lzdGVyUm91dGVzKFV3dCksRlYsSFYsb1gsS3d0LGRULGRYLGFYLGJYLExULHlYLHJYLEtSLFdJLEF3dCxUSSxnWCxad3QsZnd0XV19KSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0Rldk1vZGV8fG5nRGV2TW9kZSkmJlFiKEp3dCxbe3R5cGU6TF8sYXJnczpbe2RlY2xhcmF0aW9uczpbdFhdLGltcG9ydHM6W0lOLGRPLGhrLFJSLG5YLGZSLnJlZ2lzdGVyUm91dGVzKFV3dCksRlYsSFYsb1gsS3d0LGRULGRYLGFYLGJYLExULHlYLHJYLEtSLFdJLEF3dCxUSSxnWCxad3QsZnd0XSxib290c3RyYXA6W3RYXX1dfV0sbnVsbCxudWxsKSwoInVuZGVmaW5lZCI9PXR5cGVvZiBuZ0ppdE1vZGV8fG5nSml0TW9kZSkmJnVvKEp3dCx7ZGVjbGFyYXRpb25zOlt0WF0saW1wb3J0czpbSU4sZE8saGssUlIsblgsZlIsRlYsSFYsb1gsS3d0LGRULGRYLGFYLGJYLExULHlYLHJYLEtSLFdJLEF3dCxUSSxnWCxad3QsZnd0XX0pLCJsb2FkaW5nIiE9PWRvY3VtZW50LnJlYWR5U3RhdGU/YU8oKS5ib290c3RyYXBNb2R1bGUoSnd0KTp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsKCgpPT57YU8oKS5ib290c3RyYXBNb2R1bGUoSnd0KX0pKSwoZnVuY3Rpb24gUXd0KCl7aWYoT0MpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZW5hYmxlIHByb2QgbW9kZSBhZnRlciBwbGF0Zm9ybSBzZXR1cC4iKTsodm9pZCAwPT09dHlwZW9mIG5nRGV2TW9kZXx8bmdEZXZNb2RlKSYmKFhuLm5nRGV2TW9kZT0hMSkseEM9ITF9Ci8qKgogICAgICogQGxpY2Vuc2UKICAgICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICAgKgogICAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2UKICAgICAqLykoKX0pKCk7Cg==", + "headers": [ + [ + "content-type", + "application/javascript; charset=utf-8" + ] + ], + "ok": true, + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/plugin/scalars/tags": { + "data": "eyJ2ZXJzaW9uXzAiOiB7InRyYWluX2xvc3NfYmJveCI6IHsiZGlzcGxheU5hbWUiOiAiIiwgImRlc2NyaXB0aW9uIjogIiJ9LCAidHJhaW5fY2FyZGluYWxpdHlfZXJyb3IiOiB7ImRpc3BsYXlOYW1lIjogIiIsICJkZXNjcmlwdGlvbiI6ICIifSwgInZhbGlkYXRpb25fbG9zc19jZSI6IHsiZGlzcGxheU5hbWUiOiAiIiwgImRlc2NyaXB0aW9uIjogIiJ9LCAidmFsaWRhdGlvbl9sb3NzX2Jib3giOiB7ImRpc3BsYXlOYW1lIjogIiIsICJkZXNjcmlwdGlvbiI6ICIifSwgInRyYWluX2xvc3NfY2UiOiB7ImRpc3BsYXlOYW1lIjogIiIsICJkZXNjcmlwdGlvbiI6ICIifSwgInRyYWluX2xvc3NfZ2lvdSI6IHsiZGlzcGxheU5hbWUiOiAiIiwgImRlc2NyaXB0aW9uIjogIiJ9LCAidmFsaWRhdGlvbl9sb3NzX2dpb3UiOiB7ImRpc3BsYXlOYW1lIjogIiIsICJkZXNjcmlwdGlvbiI6ICIifSwgInZhbGlkYXRpb25fbG9zcyI6IHsiZGlzcGxheU5hbWUiOiAiIiwgImRlc2NyaXB0aW9uIjogIiJ9LCAidHJhaW5pbmdfbG9zcyI6IHsiZGlzcGxheU5hbWUiOiAiIiwgImRlc2NyaXB0aW9uIjogIiJ9LCAidmFsaWRhdGlvbl9jYXJkaW5hbGl0eV9lcnJvciI6IHsiZGlzcGxheU5hbWUiOiAiIiwgImRlc2NyaXB0aW9uIjogIiJ9LCAiZXBvY2giOiB7ImRpc3BsYXlOYW1lIjogIiIsICJkZXNjcmlwdGlvbiI6ICIifX19", + "ok": true, + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/plugin/scalars/scalars?run=version_0&tag=epoch": { + "data": "W1sxNjUxNTkxOTM1LjQwNTkwMTIsIDE1LCAwLjBdLCBbMTY1MTU5MTk1NS4xOTY0NzIyLCAzMSwgMS4wXSwgWzE2NTE1OTE5NzUuMjM5NDc0OCwgNDcsIDIuMF0sIFsxNjUxNTkxOTc5LjE4MTQ3LCA0OSwgMy4wXSwgWzE2NTE1OTE5OTUuMTY5ODI2LCA2MywgMy4wXSwgWzE2NTE1OTIwMTUuMjY0NzcyNywgNzksIDQuMF0sIFsxNjUxNTkyMDM1LjQ0NDQ4NzMsIDk1LCA1LjBdLCBbMTY1MTU5MjA0MS43MTg3MjkzLCA5OSwgNi4wXV0=", + "ok": true, + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/plugin/scalars/scalars?run=version_0&tag=train_cardinality_error": { + "data": "W1sxNjUxNTkxOTc5LjE4MTQzODIsIDQ5LCA0LjBdLCBbMTY1MTU5MjA0MS43MTg3MDAyLCA5OSwgMS4wXV0=", + "ok": true, + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6006/font-roboto/Hgo13k-tfSpn0qi1SFdUfZBw1xU1rKptJj_0jans920.woff2": { + "data": "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", + "ok": true, + "headers": [ + [ + "content-type", + "font/woff2" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6006/font-roboto/d-6IYplOFocCacKzxwXSOJBw1xU1rKptJj_0jans920.woff2": { + "data": "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", + "ok": true, + "headers": [ + [ + "content-type", + "font/woff2" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6006/font-roboto/vPcynSL0qHq_6dX7lKVByXYhjbSpvc47ee6xR_80Hnw.woff2": { + "data": "d09GMgABAAAAADBAAA4AAAAAWSgAAC/nAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGmQbmUAcg0oGYACGTBEMCvtU5E8Lg14AATYCJAOHNgQgBYMKByAbzkqzoqzvGjeKSs5nUZTtzWj2XyXwZOjNKyMiImBY6zWKNWA4InKyCXHjC4uVkc/4jsPk6tWO0dBIYh7RfvvZ2xfNC6JEQBvBRsACoSVa6XxUtYSUCCLyUMJGxQYVRREVMb/RPwqiaO3/++ju6jlvgdCDQkS1EtguC4OoERR+EIr4ZoID9KtY027T2QGFC8Sv3Wdr/ZL9V7XGmSLf7eVq1V0NM8fgyzEnvgOVQLoTJHeOBOnpy033erpXvoAXNLb//7rMVtfPikfHmhw/mzsrxFN0S6eXEzdVikojDfjPtwysJR4vzhKPJzAOEfRLwFWQSiyarXJStOlSlGlLxmrvXfu0V2RVV2FkMjP5L5lJPmT3mHIAoFJEoSpsHaOtc/Xd3n97Iqt3cLdZiriXiEgIUqQLI3uXfvxtVWfBTplCeE5blssTmOjrTLc6eFqS0E7GBITAcXnvmyMwrLEPos8VEi8eki4dkikTkiMHki8fUqgY0uYowhmfIAgBgAWACwFAkHgIAMMW+5COOsbUFmSvjI8IBtlrI3yCQPYmj6hQkEUCAN9CU914dUQo0IBckjoaBEapySreYP2mPI4vu7Ctb1pjaFwYc+NO0+4EQcNznUNId7Wu3T171HjWc3pRSfcur/xpY6KxduwohWEOw3scHykWzHNjqODCuJM1d17PSlpRcJT6uiWhYGIRWGOd9TbYaLMtttthJ3UatOy21z77GTNhyoIVazbsHebIiQs3larUqHXGqDHjJpx1znkXXHTJZdfdcNMtt93zxLynFry05JXX3njro08Qjcwh0SJuN769JN0jCRFE0RbcSOLTqq2JPbW1P2kQp59nDPOB0QRjHIQN7GZtnzcc8hvHvOMyBRbng+pIqkODMRp7YxjHBM7inHE/zzzALB7iEeaMx/ngCebxFAtYwiu8xhu8Nd7lN+/xGz4YH/POpwp0rc/FO9tym3IYR3qOINPILK28sjsf7c2Ce06QKhgUnwpMW3RYaEiZYx8Rp1wTsnampKyXHjM5KZGfNiRs4nTw2OclDwKAGFj4IDkbT/wahVo+0yTcwV1MY+bU4ii4mKE+iXyGeccIMMZB2Nl9RXGKV+KqItSg1nicd55gHk+xcGomw3xkBGMchB2K8RhPMI+nWFg0ZkLMYds44aGwKcUS8Aqv8QZvT03GTRY+qlGHBosLNWjiDu5iGjOJTKYUWQCWs7ZJmkMp44Rp6UW8Al7jDd5KVJ0QW5XLDudLpuX5xOy8oZOfPIotI5jkM6f8BknPcxyMvMQmjpO7mgmT+mD7zDmcHK0SQzIgKbeZn6NWObkoPxfU5z6kKoMQE2zEtEQC5C9XHJAnLWTzHb+8lFfKCzyNyx9cj9eZ9QW/5X1Fg/eD1l9g+WcM4tR38iWpaXdZDeQ9+jhY7u1f/e3J/QoZt+VFE8ou12lY/hTr88U/UW8AiHfCtzb8ZT/LTf8lCqG8S/mGH8nuWpe/N0PX1F2k2IzqNnG9f7O7kd9kMe/zenXcZZ1jyQsufj5LmYub+jjtOZ2PacXDz9W8zFdsALD8Hi+qpbhVT4Tl5rxKJY3elpMpzZnfwhHcFGXy3Y2fIpa1Zat0uMBH4oUfveKDd+j5/YQNll/vVb7lyg/oskXm5F5K8WVf6p32MV740dM/Cc59Dh/cm8JythXCbrzlmPwiBmcnet7w/x/lX9a48Gb1A8jzjh8QPFVibqx9WubB9/9rvuVwfdmqbvnK4FouF+bljr48mMKUDcuLbrR8ymyeozMcbTn7skwOe2uvc73ivkvygS7xe3kV0fWy/JI/ryvB8rxQZtmeJH7LLA+IMyHchQn8RWNrbECyyQ50GvaVifoMyTAGyzMNXMGKLQX2rMwxcBVnrlYrCFynUp31Guas5owFm730lt0xZhQnhJ22JSmSIjnIWcSEtSxjHfOsZ2QDk6kxw2Zm2sKStjOyg8VpMJsmM2ixrN0sbQ9z7WWWfSxGnykMmMowJrGvbDSQ4tZIbMCYLVPZs4Aj0zkznwvTuTJHgaQe8Twp1ZByRz1PSh1YTgPLOROIjDqHcH7VeC64jOy625A7ZjDcmwJZ7ptD8ThQwhMLaF6OTrLkLaxeFp14xPPE8cCS+FJcQ0khj6BCTFBjKduZsJMJu2IcxbIxiE4SJCAxYhLX1ipuDDlIEqlEmEgeZgdGDjGLQ4ysmAkN0ST73OERiogJxaMj5SpIakg8EiceiXviTkNKgiiSUI8IohMT1G4LkG6ELRz/zgdkl3Z2KV+Rl1kbM4ZjvFlQD79AXxFMjrS2jTnHWOuU7DnZwpRP0bHnMyzMcs6yPihNRFQ3JSFnHWMQT0256hZhCKz9vzuTwaabAvw8QJ1oz9hGt0SHRIBll6EAGCEvAQQ51/AKgtCyyCg4tnEWpsEEAzSpnSTRkh0Hyqc204Zg1u5Qno6ypXZpuR2bQPYVSBaUBQIUgQF+D18wmiAWNA8D6DQwcKj36u3B0K1Lpx69julzXH87OkN2b5+QIFKUQScNOWWYCAERtwIALmErQwbkZ+Z2gHZJw/B3fPvbEQqlaWAdv65dYHiqhSEgoLw5Bf4HvquGDorQiwCAdMAcpHjTCwMv5fcVSlvCAOg6pGYKQIMiEmkAbClax9+z51111xtfLKOtzaZf7U/6013FFWUVFRSVFdcqainqKUYpHlfmLy8jgqJs2/nEF1wz7a2vUK2PFyhKK8p3qLnolt/zimQuYeQiWP5zxfcj7xit/0/9J3pYikQJYkXx5GDj8x/PSiAwi43ADrh2MSSfXh+a7oypk+uRz5DpjrumzbgnS7b7Hpj10CNzcuSeaNc7T7533vvNBx8V+IQFANDhvcN1QC57BYYiUkBSWzGCNhyHl9qP0xjAeQhxAVcwql5FOq65dznuNHAGM3iIKTzCHDLwGAu4g2d4jiy8wGvcV98gB2/dLxL3K5CLb/gdL/EH/kQe/sJ/eKf+jwJ1Wfmko318UKihM5QzfVCkEx/7oEQnfvJBqU784oMyTXELZUsflGuK24rtX1CJHbEzarA7dkc99sbeaMD+OACNOApHoRl34S60VL4EHxzRlTc/B7RCCLTGLB/1Mj43oF+08HEO9cl+Pxr+DRC3IYssieX8I2QYSicSiBjub1G0sFGJs1RQiS5FIGaI7RD3wggdtDVEjBhLR0pBboIDoEgknIZ24jAchLlpKE9WI/ySrE5yqEP61Qg0XYwA+K6b4x6/4bGw7FpLNLCoWacXj+Uo65icZAV0wv9g/qK1a+/ptkSmJNeyt+OS7MU0bbTOwCiw8Y2byrEZLdngAgM2rdTGwnAa9TUwuyUWY/jdeplHwDeS81iWTnKeWpDE+IA+GTXGCfMfp85F+3h4tyC8nxpXiVHcFWfJoZleGFEVR4wwOeM21siDx7x5HZD9mFKJjCClRCYmX4vD0mRHXKyAYHLt1Ve3XuZm2LoYCpQycIS99jSgB4zkuEKABrMJamFAsTDxzmnH3jMjZRkKT8ct2WyZtFhLw2B2jhH6qMxLE0Shy9693ptc+baB+dtpZ28Td6DiR7SogHG6iKkmLajt86QvKdDfbx3KePzrFl9mYtUH7HnRQc2KgQAj395kZRv/qJmmItcKPFdtY430ZuR1S3PWbJIlGeahAM2IGuyjfqOlQHkDQd5aqa2qtTGzCL7/0r6w9VmvQHBoDMob25vKDGmsideq9jVWNTWfdwlkkI9jZ5mr7M1oJq/9Q0ZLotJbxWRVqBxWvOQCUU8gCi2u/sWgyIJJIXo/ikpUNF5lTbJrdhc0Zqae+b8IgV2iDkJ2b57j9mZhYt5CM4Ve5CQBKXKntBe9DxSq4ROdKGZ7DhifAw4atwrXNtYGgdGv6n+l8JD75Fz2QRYfpVMsJGXuDLc1copPUsKVco8jSOhGDPCa9o19fr0+5XRidXHtYUyFNmeH/nbgWzi+1DC2Wf0aKwtupdXh2purKltu5mbaUzb/wJ/tDB595xokRQOCU3CuMIAylGZk4xAMhEMurw5vRFwEUuNbh7Kmgpb+0jWIzGWuGpeb4V2Xl0Slm+w9+kophiUqSycVTekL8FDapWZiu+3CqGDZaJifDgrPD/Jc2gpRwTkYliIsXKqSpLgZIANcJfPFnCqemYKR5Nropqo2iKKtMR0G2a2nS3otCUc7Ye4HqhlqNMjGyTfU1tL2OIQJjd5l6/OKtIVqGESF2cCCZKzmJfXJ0UPb4NznlNf6p5X4Kwi6b1xRSi0TSITurGUv+QS2Id4qiXsBvGRhlNP29E9jhcTOKcUnUdP5yyXGM4dhcgKqk1jt+5IQoiFxJ21hsK4ngQQpL4XAquMzSZ5RQEYhxkNwFGSLoR9LFzt24HnWKqqkmxfSXPeuYaCWuoYXrmEXNfkb4VzMd9kSyegY/Uihij2+t3qZ0xBv7JqjfATQFGECXGBQLygbZvhYYIdciw8KdG9ZtLBt2Gnf9Ud3eocCjINhtkoV3fyuppgiJEhqDAyLQrPApveRJYlBAxAtHlAYQOFw++P+Wy9zl9m6fyWJtfqe5htfpCxBgp3MXZZKH5ufcAVHD0PxQkjFvbWx3QXf6L2FWmKJvezyDaUqh/4ApynK93jIOLcpPMPUATwrD4YiJkaI5ue1axchmXYwmhRdo6TUTPrtaa/Jn8LDT/rb6SzT0DeTYZYDM60Lz+/OMP2eIB45yl1y/H6KMLy8XzkE26URQVzDc9PUq+MKThyG/lGIB7AindfQNzV/4XmlG+ISlQHIYzkKPID0f3lEWfPJTF3ZR7Q7U30gSD5QK+3xqwe1DXDb4Nz+TPGEDBLoQv2XA0f7CNCqZgBTzz2IhX2lI0gIPMOg6BiTYS/lIN3uQxuTOXScyqzkCKPaqmt011kgAXbUXNbyKQpSbYqy/HiDWqZtoFDstBLjBFKe2M/x9v4BNIKJQIRiiScyrtS0AlYyH12t+H9ALQ9rSrBPH0SNXBA+HznUhPV3KV7a3TFqO5KtH2m1rV0L+TvJt7E+kW0safRPVW2h1u0Yqt5Le+qhe7ZL1/Ey03V5/3DKDNY+8alw512dUVkNwrgHDUfnZDlkqI7nAvmaLru7exdcPci9+XdMed+7OABjliVpnDTmuajF3mvjjT2jhh9OlbmzWuSK52v1L53tYrrBP6ggNY3VoUZQH8RAr50dOCPZM/6CUZDQdgOViGVTTRuQUvRd7v0yDiXRov/+1svcnG+uO/yYogFJ/lf9JccQEY+gjKmKqs265pK+gZlZgoAQ/KakHBRH85rafiMsTReioDLOYxU1Okbjo0dJkznpFSKsDiCykB3vnQzIR506ydi7WUyiLoNhA9LHwha/ypgIpg1q5i5FAPGaUrdIGr2LJt+rMY4MDg7XPK036QppIcJKd7/UUz5N8dqlr7R3sSdoUJqG6Mi3sldQg4M5KbJwnMM8bWk+NevdUVsPF/dBBpDM12Kqrl/o3dneDK2Kpx7puNMTD6e2mae+0xjmJBB128pEfVuLA99epZSbFyQZi4PRpPbJxbhDcxoQMYl2oVszH+K9PCv05ofs/WJOa6KOCor3mGY5mzB3XH4JW7gYevTs0eee3JjeyR6+lbIo5On0op/uZc3miPJRg7JP/m1H3Af9eysofbtGodLPWpTkrVIXXW7JHZAqtjczHn5wAXHA18CGh1i7wm1acMlFoCMdC3Amoaaiqiird/MnF+Z7SyeQfLKVGamYsDxzD0wtT4qD9xspJa4vDKswRFaUXBJ1wl2Lh+ZgaK87jQQEnM+9CYO3g8D87seYFrJ6FO758bvaZN45wOs4ARlYReOQn1M8GqtOQJxHX21B2xkihgcxv4KkC58uBNfqsi/eUgk9KU5lwi67BG9y6nXdt/fSnqvfEGRtM2Z1NOXtFYGRLwRt8G133ySQByexjzOQqbwM/ZgvzNilNoxc8pALhi0NRxlVEufkJOw5Td9mxtU2j7ngXpCuDrV2CgGL33Npn8uellCLX7DycKn+7+r6sqr6N1J5yw8M/SlVwK89Ul535J9aqaiYpCueSSrm5BXftL8EKrYr/53m8Tds46XQ7QJS/3U32VMZx77M6Hj4cFBy7ZOKdQuV8mVfOedPUSt8m7yIMFSRwQyl2Tkn8oKLY7TrKZ6sY69mJgRK58qVL3RIdb9njIoYGVGN0SgFHcsCxdmrcbikh5pGNuVkD/cm4ThU3kdNdmOVjhw/kEKy1HP9pou8vRmWNDPKQR2fA0gP+fgwLJ+QE3HxMWoy+QCraHggFceiil5qGlmXVXCyf28KyeKAuw7SR54+DEuaOcWkSo4B8voJZcH66Wm4S9zf0wAMUjmjd8rDD240NcykhjGPPprqwDnoxDFqCq3vZkmFx59JjjmSDW2y/9f3Nf28YRTWnzuNJ9DrFz2m2UR1JKe7fyiRn8EJSi6m4qdUGw3vgTrfQAuGv5uVjZ6NMA6kfAoO+qeZPquALBPFN0MivOOIuWxiU9SLuHgK+uduoJa34yZhV+TgFepq5Ma0B2Uj5R+nh2Bjo5lchD2K0FJ9jR6Qjt8YVRMKzRoII3t8mnBn2oE0nhd30C2VCNvmVKN/SC2I36LlWMFPPZShtCAV7gEbO9gFCgP5FjdHVnt71LVxzwjQlP1MIkvkimRqTornrFqCHwrzsjXz0DED/yGPf93wE8+92rAt6ag6RbUDHglO49P/Uj8hY5rhqu+b1dlbn5JG8cjvlN8IE5qh8m87jJibmTbZ7Dg4QPrvPKWQdHxO6e1GJXYkGJFo5yhZ5ON3Vy+C8wjb+1ZGrsIJuUuKMHJEokia7uHe08MrYYUIC3xwBj7Ryi8cAlZ2wZ2XoVnEMH5wj9PNPX/zvpPz/YnzIIu3xULWcAErhhUpzApE4agljxc5BNxT3BcTaARPP2UP03wLexN3ea7zOE6NFJuU/jKFx/DCc+rgMJCFsXnhOBX31jPTGDHpWWm4AGBn+ftJ2ZrLWlYjWlZZ4jHb8NurW+5fG0y/eR2ePD1z76HsMS1hcYh2KhpGF1m8u/znUmLTuB/NzpNHeimx8Zl+KBUPnBWrZ+fED0RjIxS2OQl2i4bEmlZdw3JfzN7n5opwBOpIMJ1jZgieiitcJ7fhu685F6j+ikN6UTX5Wpql7qg3UtWBcgBZWm+t97DQgTjS8bPcBrrDhmp3ezDs3Lc1et/VrTul/5SqnYADWXtpwXkD0RouOx2HqYGcCyveXccTeH6RM8BIqh/L0jTbadJBdWGfIS+dw/345mNepiUzLLYmHCeiE63sFGZkXGEoSsYnGiirlBje/vnuWIjqK1iRDL/AbHcUjBrKYHtEmrFZp6kVikDtySbzzHRWae6XJxmZuB9f+UG9RQTKtehEZyVsIauKNa55iPnvZv90xN2hO12oRoQlbgjs9sKJpIEpdk0wL/nETnegpO74V3HscYJM+c6ZhFW3YN8qtY1yrSre+zfKHVGBLfdK7AhF0T8JMmUaKGnVFGjXsSLcTgS5WRokhYrFM13soh2xD8oI4x4+BfyjP68Oom585ib7KFc01h3v53FYsuaP/Zymb9M3OGrjLxZ7weSr+GEUfJhlmttXQkQioYjZSG+tNZ8fTEcFRJZPlipdR46U405UkEV2DDblVADvTWEP8RTH//fzNVOSOhwi97ysDXpwr5VsVIH963Mg01WvfQ/NtVyStfcfvEZcJCS7K3RuLWa4PR0+uZd0LIoIJDlX/WRk/bXbvYB0QUrpI2jMJJlfTby+NXqwk08eHN0v8zyuC3aLzQ4eg+cL19hDvOmfAR5r3E/TQjmTK94sXetxZK6HvNPlnER2dEhmNFZp4EDqQDonnBUQHJRMWgFgzJvesKhHfUnOIa6nCD+Ty7AVw4wbq2YYmkAh3cJfgLI0ztr6UgpNkP5VXv2PRA35EPl0yVwRriVdbdx+vOXDEA9DcFKoIXmRbqSytzphO6rms7yjz8CDtVSV18qnGWmchhMDlRj2Em3eDnhKrimzxCLkms9a3veG3RGZlsKMCUEJfkEN2n2zAsPBC0a+kqFDqISYTY3/TKulxBhVi9ZxG08QN/DXd9x7Y4z80soUPE75V24dl19IHLzS9rAc3SMlBu82MJJrBEiYiGq9tto19p4IDr+a9zkLpHGq9zhovBb2BOMnVf624OdtfB7PPGdeHmfECkuEKAH3tvHTYGX7g3M2S5VWIXHy9eT3o4XyNqtngN/UItfkqJjtWVC2GxT72b5hsv2PxhbntT/GeINeQRlXr80h0n1TqVlAwohiViBLL/AsZZGXYpWQZSscB0tBAXErNfpPcgM5TserbUWkXVPkFH6AfynQfmL/bboZEt4uJzq4S7Xkyeq5SpyN79XmqPHeEtrky7ULZXiC9Kfs+uWWDA6anpodvBhew+KPz9wrvOn1X37sa9aF+sv13DyxhOy6VHwYQGPQdG66IOy/78ZiJnlwNyPid3IjOVnbuVlaaHck/jYuIu6mh4sflrChWzNt9w74J1Gu1c6Wt7maOGLvtRw/D+I05W+pDf+Lp8BxU0sfU3Pe7CJ4BV9e868w8gbvVuxY9GVNwXsBlF2p46ZyktKLs7AygPpMrMSRcePj++pWZfG/0uPKR7965xKZxB1h0BQ5eQLo2YUV6SgPnc5khwuqbphW7TBZKZMuvuwSSod+9ygm8uBlRPQ1Sso40NJb6pTweDqYz/KvcCT449vRZlfkmvXBmjzIyHys9FKX9QqXEPcSvJ5xixmZT0YZkfPcuvyBQlxLnh6UPcLIfAp7YfXPEw82kwe7+NGDV+DsBXxCt09u+48j1B1A79w3JaW7cHFV52Af9ZUq9toQuYK0oo+6ZvA0bOjI7Nn0Tv2J9YP7SF2k/u7AG+OpafCc/fz4xfr7jc7i424bxG1ybsH7JmW5JrJs/R7vuJ9yzU9kamB957tRrn3emFStUGB4JgyYvwaPCkZUO4Dxe1qY4NCZMKnaca593gQoTo4yn59sfZjU/rAF/q5JkK1JAOXhJyW31twGUbD8+qr8LlyChgapWfQ+6QuvJ4BpR3d3DXNFzqjEVcxMBDTX9IqblsGoB49PctoPSZFMJWe59wvtUYP9LtO1z/KgTxTE9KQdPOwN+62lBZ3F9OupCcRl7FqyOrmbOwKi4L3ppaO4EfcvkC6JBfXbEOV+DYG4B0f1Wz7cffQoDsAt2VZf4W26O2qMknI9BhyfrO7rLgFEDhrLO/STXafDbyz99TavEPfim/O9PYACwjPccREx9kjy4gY3rEuJis4FawXB0WL63cwkYhi7p/rtEHG7oJMfmVo4jqvxyZeUcxtFEkRJULMfaqLEH7X7sbuyGQcS7Tm23+G74DpeUuItmnBbm+iLORlEFz47SxshtCnaDOvLvIqs25n4CM6t9Duk6/EwFAluC4mu5i2NbNgvlhzWBbEM3b5u6ZIuXqpMu5eTv1s72m7Glaj5C7lGRbHdxQJfSJe8YGzvAxsFqcES0q2keGIcu+Wviuti6q2SvyPx501yCJry0rT3DfUoa8VpeKhWvlDglpk5iL2JKl+rSzhWdkRAlPg3BeA2HNVu+3V3ZRO5Ak/8wb0HUoKR4oYzuBZV3OKfiZ4UxVyzNOYWVhKdOPYkzYsk4o6ACJaGmZNaw2sLZm5s4fS54FHk0gwy3lqsB+OCuqNHspCODk+s0mgmXaae9XNcQY5T/G3mlhpnfPHiOLR/L07ZH1nHlyED14QKU90+fL1lF3wVloa5XSACab3dknG5pRewLypxkLWqPXkHt+H6GcFgzNXh6CkbR35uC+GJWlMkfRPujMReY4U6x3qgHuzVTKuUEjEntUDae7dMXvmRUVyHy2+qX9JOJAw6BV7767LMc9HFUud/OdUS/Obq/z8VF+McdKnU4Q9WFae7lvm54rlhKEWXHh1X6E04ELWufuc5UVQnc2ZcfKE3LiQuL0qOwP5t0oKj+dSbGYnEOPZKcKeLuPpPOkAQl106Bs1d4CQi2VSENvjjJhxe50jZU9qMc4iJOVhdZTGC3VIUQ7rdD9+wB05P7MO1SLRIOU9O1OcX3Drrc8eQZEOUhbb6oTocXe0i0CmoxnnE+CPYhKttaQNeTTQbZMc32wDIJkfUNGIlc5hYzRHmq46rf7KinqWU/D7ShTrQrTFcfQqQZYDPIeSCdDd/pBuxXFI3OkqPbm6sJ4eTvWOrr5mHEX3o+SRuGAanyBAfT1RqDytntVXJV6RLJsNaN0hQzMyVAtg12jzdIBTUwMwIaT4vXXJelQy3A1MyLuMGXDXLPxM5Joo6e3ADyfCglS5xkRzQTssUV+5v+z7o/lfaa+95ZXGtArae1hDsawOJSq1xhQdalVS8TdprWyXVVquftGqtNF5bAV9OrMl/dnIlVebKUOWWyoVzKsvhKrRzpQUbptav/pxNmSG0Dbli1a/scJLtZlftRObwqrPwvsZdtuaAdNkmG+5OuTp5qUJYCG7eUfmZ3yd3x9KYm1tBFSubo6/8TWFJy9rVWzbqvv4mhtIXxWsnXXxN6cUqWgrfkYECtyV7BwyxK7hvzlVA5N9zBhu5CosKdy85h+mxKjRNFX4hA+J0leamsMYdpZ/5x2TvWhmJ5VRQOWWP6Ss/yd3Z5hHgB2b3Gez2S3OFKJlIEI4aHjiQS6h0RTUSYm2XpotwDBHkfNhad8/+g/4hPB8Y6utkVImfk/1lsbnZDferih1bnL4O79LdUVOErHsfiGdPTxxZofpOpPYhZkXZOLuIGarCiJsZzYoR37Qo2vQiY2XFjepjgcJMd1xLvrLMXqITxZFNcDpE7r6g7pDvDUK+6YN84wEUtl7+qeztVtmmJoV/pW9K/DpP7sbnp6mDY0AJ8Ij3xiG4vkMsbeXf6rJNsE87dCz7LL6Kc5ObcoNLW7JX2NLt+dWHFf2iopqKUsIrh+JFeBzlxQzUhpYfr1hpzzzMK7WU8YyNqC5J2foyghNufLclIQhH4YfJZQtiCewIo9vNcUE4Gj9KLp0H5UzZpuonL+7+KZGkJX90t0Si1i6dsxo6OyUSd8gf3SmRRHpzdwpobFqH1Mj2vcLInBrJ/DUCut9O887dc/P1ZfWw+1feXEBz+NtrxtVhINvuS07XOwTWqHKnkydNj2kaGCp+2GLNtwjBB/bpGV/PAFYnNSj7eIxawuYidAe/eMW8MkxNzqxOxDloJIrjz7B0C+bYGCiwIj9Q6rd3qUnUsL1M9kgjS23p/u0SFQwjV2HMBmB3OrCn1LNffNHbuondvPh1TGzzWKjefHrWduya0a4qXIaPPGJ30T0EE3eeNKFi3NBOriwBsq2ehwNyRSll8v+z+RRTcwddopeifO6ejMQdTDmLxrDps5EkwVmJW8voAmkCmz4XxTqukbi65OVy4yI+ieQuFzuKX5a8seRx6No4MEawFPdag+hz2NjJLiIgNgG7kyJGE7tDIXujFMXclgiz3/K2kcEIPpGSgRJwVhU9caejJitZL/6go65cicshwm9/jIkL7DoZO6JGjZRvXQfRMx0tfADJnqtwlJiSvPna0/H6eTwEFrswl0xVZkba/K3oZGIMG8+3E/AvsbPSHt2IzJUzf3fPTiRNhO6wKqDZWAEUkKrSKOEbdN0sVU1VaO4shr3CZm6BrYBiaEfR2ayniyvTSsAQeevlt2jvPUwUgYa+ZLFkSTFwJk/j0NZWX+SOUqqQNxa2NPogD5RRluRrucdoq7qtxSG3XeY71O1tYcOSvYdUjbt281Ht5hjpmmjtpg6q+A8VqVoVaGswEER6bvC0YRoL9b/qgIXJQj0wovqrUlEsKkgm+VATapK+Xy5LBIkoXzPQQc57fCynt4XJOzcxvFvikpOJ4miSOyWmVid6I04jhQ6nZaEYVJUYXLtNR11L23G/N8uniGQPIPc7vN265gjIvNLyFdJtNtBHyokRsnsT7ZTSCHNSq50fEZrfhnItTA7PDnP1n4C4I/XrPeLF/4IpdnHl4y9RZeIgdmUQjs7CHm3et/+2wf/oorYWdBukyeNswqc/vJrAQZ1kMW+mgR9zVjULPjQ0+NnO75LK8QqTgNWzV4pw6ySrjmLA7ZyeqsbFuPUaq5qiz+2+d83kNN3NMMIUmRPCcI4fzZLqYxxsiKyQMJLtBYY9zGDrVn8vd8eYCFYEy8Ml0hl5oKwwnssp4Hf9uDGIj+Oz1zmdnJFzA5E+jrbSVb/2b+5f/NavyhmbmZ6CoDBwUHOXJ7m/018z2C5b27Lv4T7Zml0G/H5zpbhhtxlYZ5VgTrJIDSebxZl5Z8RakL//ASkWCRZgJt6JoywSG2on3gYcI70G9y0qMcTJM4vuKcRtnBafcbTm7vKWSHo8u8dufHFfi45Q7cj/KEjBepNXkalfI0lE+keg8kPp/LZyQ2zGMFPZHmOsGY7Pkf5ds44tUQEKosFtqz/BXfjwkjPOSC+a/BRYLgnqGiNis4P+E65KAIUX67gp7Ni04mgM90XMV4d42dG3RwPiUAvuP8mqpLm2/WAezNkZVF6pGaZC73g7dhyfROFGWnUBJmHIp8CTYeevHlhRvSfG1WSXu7ajhms83epgkCX2J3JrxMvAEMTj0BnnbbY9pwW4HPUcpxfRj/x36vEiMO2YfnZxDtgPlQZy7Ib4YjX/nBhFwajdXsm0reciTkH9ycZPufm86HM03VJWYFqSHzigpt3Gajvy8mP3DVbroxYjHY2Nn25AXGcY05Fm7GC/+9TOEKK3aUczwy3Hg2Hh4wSarwWDa7dGsByluproL7LSiXH8nM+fYpfmf1/IzcT1ODQUiwLqPldqBd1J9rE7uV2/aX5Xde50umbwm6ldyb2kUnz5Br+HU5A6JiRSSKInCudB++XhG4qnr0upbwXo2J888HzRsnflv91wC9a9svRFjht9qjKh9E5IOuWKJNWO39hC+ZJbjA4jZ+Wrb6GiW9GJlFvyTitXUXZuO1FFz9zmeGM0+FsTnubb8wljBb1rpyTTC4mpeYUxlivsvyQt6Cyk30hLJEaxd6I7XSSxq3U4QD0jbxg34+NLxARrdC/JplzY6IeOYGGtA2VPSRMpj5h4Aksjja0VgZ8ibJrj6UEtftLszhNvUdu4kXfY+DsyRvf4mj/ff6LLNXk54CkDkD5I5LPY4mVBXLcB9OG74n01FboZxYyeUVwD616Zx6GzkRs9Tz6dI5LQiWTjeW4uP344yY0eFJXmRvSRS0P3pOhqX9OJQIloIkzF9djcD3IWGi+2/VOsauUq0qbtTUYhWJcUFVHiTeSSLs3LjEmQ7EsjOoJxIenCG8lhfaVab+JovXrNf3Awyp1l7usI6npfORUorOdEdx3BlWAHAndnHHJMS3awjoi0Q4fTEh1sI8I9bPe6qqiZG1i57NLZqGZhBFqvF5ih8dkua+6IFrbYEgrB8RRmSFKhM5J7EaCNWu1XhoGspMDLWFgomy2VPcwTrloAzgNJL+PoCql8yYwhftyqF0CS9TSJKJUq4AWIOG7K84BV/Uwia2RrVhwblm5c+9WnxpfOqZephGhnfYHWf8kuUWH2Vv7Bh2XIDmEhjta+AXbAkDuZkfwiQ+CYVQc8L9ED8UkMawezwFLo8Y+ytb9pYdvLFRE0Y4oBMzY7O5xwJRKVSK3h8jFoEX/aufLXKZBIPC6d1y+R1LmXpSX7FjlUrlDqCFjliVrRveuqFxMkkqKk8qJhr2ehimyNCjgxtvd1SZd0AttLdiTWK8J1ABmgLGV9KZXmsG2h6BVWWmLZP5IueegS00DmpY6A5i+fNIndXrGhHFdexOLvqCrRz60Vp8h0PRrtRMHo9AY3gdjrOdEvscPDjZPsvn/+CLIyEZOo/Qs5RAVwXfhxmWxvmcE3U8PIEOWt0ZVSa4jYFoqWkNIiy35OuuRRvcENmZVCaMpYZe1OJpUXxbv4mBUjndpWu3G9U1SImC83KIsTKH1q9kIvskNhEufWtd8ittO7/KB7biGll2zXRZmS5zXeILCZ79Ljs8fCVjLTcdopZh0rnt9//HTeZ1XK8Gc2dhq/99ip7VtwoieRRchfFgxRcIo3kUmWn+KLYOlGtpyQsdFfMt1vRU/D+g0cxBKe++fouffTmsouoJ8dXXJfKtNS69g/B0LSsnAEObG/IQNFobJUkmcl0LxDkY6dFVXXSVt/UPc9rLq8kpXB/I+we2Fl5oMCoyvIQeT4Ey3/4PI+RqGhxE3apwdXy53RHsutFANNtxR7e2f/3cbQOjg52D9ZMSSZ7ggRJpSwXKMgLRxN+LenJhHcZKI0huRBSW80clTH/jiwPSkWRaK8mMtntXXU1ffZ7vey2nwBtdNWyze23aJutNvVMUptm9keuLjfdL9jUHwxOYycMNCdjlJQ1iCjdJtE6MzAix+3sFIebHA51GaJ95yQvGmTuZ/qXlsnis6FWgfB4Y76cdma8dCU/x8fubn+x6H/iVV8xub3PwHW4v8DgIqvdERahyHE9aXgbljnxv/837uxaQVWxk0bwaybmhuAdbqY9zrMvrnx0FD19gvgTvPGbsHYquV3Dkp2KzJ6hwxYXI+O3shA609g+pV2T60Pge812lty5TowKpsm4KoNoV9V22lUpZR13dpxIw8e+wCRjF6RvRHdqFN71WNqn3pc7aeBkSjAA4TjNWCEXgto6pk5uv0wl/jr5LKGkNZNA9v2ulHaUpoOrTPi26X84W7ozrvaAXVD+kUyl7iWF9gQqZr18tkcLdZckpS8wJxxt41IO2n7CL1W0DRgju7ippImG5QUKbc9eYHN1tXs0Mu7qZM5un02l/iZF9jU3L0sOkv6I/TMAxRFN5+7UJTcOOeV3Ulyel1VJ98o9RXTNdSY9rnGnemCakwmmcZpp1XzAhVQYS+955Zf9Oi9Quo2bgo5kL5ZpfVoGTe4NhvSddXGtSEH8vxriN/B5XmBKl0HMd1WHehQpoN7MTkCqnVdOKRALl7gJRCOxWZLIga8dgf0/wcy7dr/AVDJ93a0DNK4toCKy4CD2lEyThFTN+yHyCgg7zf7DSfcj5aZPzbP6u6FVT2UNUzafLhrRmrr2LcIVJfkkFgANPO9bNzn1Rv7mzmorOf1nxIrR11Lv3zUDsJNWN4L+vw8o72mjbVbmtKL+oc5rreX9t/mGJm+sosRIzkBSI+u1IGnk/L8V1dKjct/9OmpELV2oP6a1+0GpNdXByiRDsaA2A5B6HgnnfhjLV6v9WnZDcj3rpTE5u1kUzWQuaqEsgzXlkNxpT7R8p8eQN4Xo27Pu3F3AejFjOZ5SvNDj9/ntdqSnRmsHRhvypp+fhsvFiD16zEvgtxR1QD6ZC7DT3yhPlX67rxqZR/StvMDHsO7WrkA/PMDX+NUDoUFrNYp0rmmPz6GEHSHAQEg9th87stPo0vF9vydJrMOAAAm/8RTAwCYbda/+1vjv1m66bpIBDoCzQwB6k1rLAD61rP2f/DdAL0pnOnTqOGtAf3j9pAS64FuzzZVM6zLl8kcNV4LtJq3Y/2kkH42pcNTUIUxbWUp7WpkuoSdY29KucIf+AtS2AEyIhCGZujMqqp9oNIG0jj+zYVpfdOkaY1hnSsC9KZsTtRzu6eUqKlkd0WSsKVSG/Gzwv5mSShrjHrrlF3aMh2sjTbdxdaXtGuFNUOrOq2rPj2Tz6/+dnT56HK9zYM6padO5EOXyfLQdH7aNQnDiMUoSHoPM126tpePlSXLoAIdrLX0+4SocvGksrSyfbS5vYr4+IviS8LyiEJZc3dlLP3yyaOKZNyPWVkMUOuVdMuK07gldD6XNpYyOUbS6cSn9mCN9pkSWlI08VswoH3OtzJiXUX5MSvwawXd9iZ/1K0sDCNPllU8R4bLY4BD2UtfVvMYdf7oX72rzdb0l5z7S6E93mwJ83rMSuxcne33TPWXno1yF0Y/sTlqdBGD4UWgZYzk/upgskrV+ulOsVppVDeFpZagajhXHL0S0qzMvGi/qK3C2K4kGY6TTaq3N4RPWZjKuhcZ9a3WQKuV36pT16eM9Luq+0iqerfWuZtmd+XWXRGjPF/6S17ly6ri9ZW9wxUhajm2FveXea8JUlZo+Uf5qpGEAjaDCXWUwQv5KEc7UmK9FrYt2Xfux7NSSmdby7FVlEJIQsRSbaMMn59tJ8cyqci2kG2fJLJ1TELUOm2ijBUn2zaWXwIE4LMykuyRs20F4AACsT0KBIDGF4aKDgCuYD4RYXEFoQaeiMmK6ZB0ItlaZYJSU0c2lcPWNF1CYeJFCODHXxRF22yxdTEUGRJa4GA+pzYWyoua0CkQXG0tkJGZ5yNy9SLE+Im9qbEm5AlECWM8vYdgAbxq7RW9tJd6kQIgQ8eA2ojtdtk9VPtdriNVhxKjhNGyeaFYodbIC+Ph+VCjEyP42dzNR+jAIrIQppSoS585myhVN07cAoPln9d7C+TtAgAAAA==", + "ok": true, + "headers": [ + [ + "content-type", + "font/woff2" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/plugin/scalars/scalars?run=version_0&tag=train_loss_bbox": { + "data": "W1sxNjUxNTkxOTc5LjE4MTM3MjIsIDQ5LCAwLjAzMjI3MDk0OTMzMzkwNjE3NF0sIFsxNjUxNTkyMDQxLjcxODYzMiwgOTksIDAuMDEzNjEzNDYyNDQ4MTIwMTE3XV0=", + "ok": true, + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + }, + "https://localhost:6006/data/plugin/scalars/scalars?run=version_0&tag=train_loss_ce": { + "data": "W1sxNjUxNTkxOTc5LjE4MTMyNywgNDksIDAuMjM5NjU2MTk1MDQ0NTE3NTJdLCBbMTY1MTU5MjA0MS43MTg1ODk4LCA5OSwgMC4wNzM2NDU5ODY2MTY2MTE0OF1d", + "ok": true, + "headers": [ + [ + "content-type", + "application/json" + ] + ], + "status": 200, + "status_text": "" + } + } + }, + "id": "b_P9lDDwcIWh", + "outputId": "61bf9ae0-1cf8-46be-8a6f-665b81665236" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "application/javascript": [ + "\n", + " (async () => {\n", + " const url = new URL(await google.colab.kernel.proxyPort(6006, {'cache': true}));\n", + " url.searchParams.set('tensorboardColab', 'true');\n", + " const iframe = document.createElement('iframe');\n", + " iframe.src = url;\n", + " iframe.setAttribute('width', '100%');\n", + " iframe.setAttribute('height', '800');\n", + " iframe.setAttribute('frameborder', 0);\n", + " document.body.appendChild(iframe);\n", + " })();\n", + " " + ] + }, + "metadata": {} + } + ], + "source": [ + "# Start tensorboard.\n", + "%load_ext tensorboard\n", + "%tensorboard --logdir lightning_logs/" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "0QSnUx3GTOWq" + }, + "source": [ + "Here we define the model, and verify the outputs." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 172, + "referenced_widgets": [ + "75fe653c2fac4e16b3acb06b82bfadb9", + "769e619e5240421494ec4a96d38c4ae0", + "b080de43b4aa47a3abc14c707f443f10", + "f2ee524552f0467bb8e44ae12b83a399", + "3eb60616d5354ae19d7c04e90833c35b", + "9d4cdcf55ce14f62aa43a59fc46f8d5e", + "510184d22a3f4a48abfde2b91fd699b4", + "e162fb8e84554661bab66739fa241e80", + "0ad3a5afc48b463c9cfca92a19acb61a", + "b2128f2dc3fe42c9acb5f586fa856cc2", + "2a2fca6eaade48b398b1e1e09862db61", + "e5cfc63bfdf2456a84115253489febe0", + "db6367a4de014963935e160eb232f4d6", + "34af9e5deb7e423b9974c60c2d435d2d", + "a4f68f6eae0b4400b4586d5d56b9814e", + "99d30e8cd8f1461f8be1edb34d87815c", + "5f06cd0b37f54b40a923b64082aae082", + "7ea3fd235b744524a970e19d3583e4a3", + "5d61a2800f3d4d4ca4d5f9cb047feb1e", + "64236a1f3f06411284a605dca33bbc4b", + "7b537053d339482b80fd861493c07ef5", + "96892dda998a4e199daf21260909d721" + ] + }, + "id": "1SGVieF4dHEK", + "outputId": "edb0acbb-76fa-4084-eafa-d933a0fbe95d" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Downloading: 0%| | 0.00/4.04k [00:00= threshold\n", + " probas = outputs.logits.softmax(-1)[0, :, :-1]\n", + " keep = probas.max(-1).values > threshold\n", + " \n", + " # convert predicted boxes from [0; 1] to image scales\n", + " bboxes_scaled = rescale_bboxes(outputs.pred_boxes[0, keep].cpu(), image.size)\n", + "\n", + " # plot results\n", + " plot_results(image, probas[keep], bboxes_scaled)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 575 + }, + "id": "Xc6YjWXBl_vK", + "outputId": "043b448d-c9da-4cf6-e203-242045f72162" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "image_id = target['image_id'].item()\n", + "image = val_dataset.coco.loadImgs(image_id)[0]\n", + "image = Image.open(os.path.join('/content/balloon/val', image['file_name']))\n", + "\n", + "visualize_predictions(image, outputs)" + ] + }, + { + "cell_type": "code", + "source": [ + "" + ], + "metadata": { + "id": "zVsrwDIzg2QC" + }, + "execution_count": 29, + "outputs": [] + } + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "collapsed_sections": [], + "name": "Fine-tuning YOLOS for object detection on custom dataset (balloon).ipynb", + "provenance": [], + "include_colab_link": true + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "b07a8e01ef734b53ad776089727077bc": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_b5efb5ff421c4acb9a825e1b3d449f76", + "IPY_MODEL_b51a7d36a7c84b01bacbe5c2cd974e30", + "IPY_MODEL_7a25bda50d29490fbe0bd0323533a256" + ], + "layout": "IPY_MODEL_70960d4d927a449f9f5b6cd041101abb" + } + }, + "b5efb5ff421c4acb9a825e1b3d449f76": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_87617b6508064f29825a5e7cbc094599", + "placeholder": "​", + "style": "IPY_MODEL_3560bb2ec5aa45489553ba0d4dffa65f", + "value": "Downloading: 100%" + } + }, + "b51a7d36a7c84b01bacbe5c2cd974e30": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_8fc7e9e4b53e42ecbca56d38269b8d5d", + "max": 275, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_890dfffc870c4c68b24c187f40474793", + "value": 275 + } + }, + "7a25bda50d29490fbe0bd0323533a256": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_8053263de29f4516a5f17a1e4af0eeb1", + "placeholder": "​", + "style": "IPY_MODEL_e1dcb585e4e241d098b41962d835c97d", + "value": " 275/275 [00:00<00:00, 5.49kB/s]" + } + }, + "70960d4d927a449f9f5b6cd041101abb": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "87617b6508064f29825a5e7cbc094599": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "3560bb2ec5aa45489553ba0d4dffa65f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "8fc7e9e4b53e42ecbca56d38269b8d5d": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "890dfffc870c4c68b24c187f40474793": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "8053263de29f4516a5f17a1e4af0eeb1": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "e1dcb585e4e241d098b41962d835c97d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "75fe653c2fac4e16b3acb06b82bfadb9": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_769e619e5240421494ec4a96d38c4ae0", + "IPY_MODEL_b080de43b4aa47a3abc14c707f443f10", + "IPY_MODEL_f2ee524552f0467bb8e44ae12b83a399" + ], + "layout": "IPY_MODEL_3eb60616d5354ae19d7c04e90833c35b" + } + }, + "769e619e5240421494ec4a96d38c4ae0": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_9d4cdcf55ce14f62aa43a59fc46f8d5e", + "placeholder": "​", + "style": "IPY_MODEL_510184d22a3f4a48abfde2b91fd699b4", + "value": "Downloading: 100%" + } + }, + "b080de43b4aa47a3abc14c707f443f10": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_e162fb8e84554661bab66739fa241e80", + "max": 4132, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_0ad3a5afc48b463c9cfca92a19acb61a", + "value": 4132 + } + }, + "f2ee524552f0467bb8e44ae12b83a399": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_b2128f2dc3fe42c9acb5f586fa856cc2", + "placeholder": "​", + "style": "IPY_MODEL_2a2fca6eaade48b398b1e1e09862db61", + "value": " 4.04k/4.04k [00:00<00:00, 120kB/s]" + } + }, + "3eb60616d5354ae19d7c04e90833c35b": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "9d4cdcf55ce14f62aa43a59fc46f8d5e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "510184d22a3f4a48abfde2b91fd699b4": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "e162fb8e84554661bab66739fa241e80": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0ad3a5afc48b463c9cfca92a19acb61a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "b2128f2dc3fe42c9acb5f586fa856cc2": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2a2fca6eaade48b398b1e1e09862db61": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "e5cfc63bfdf2456a84115253489febe0": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_db6367a4de014963935e160eb232f4d6", + "IPY_MODEL_34af9e5deb7e423b9974c60c2d435d2d", + "IPY_MODEL_a4f68f6eae0b4400b4586d5d56b9814e" + ], + "layout": "IPY_MODEL_99d30e8cd8f1461f8be1edb34d87815c" + } + }, + "db6367a4de014963935e160eb232f4d6": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_5f06cd0b37f54b40a923b64082aae082", + "placeholder": "​", + "style": "IPY_MODEL_7ea3fd235b744524a970e19d3583e4a3", + "value": "Downloading: 100%" + } + }, + "34af9e5deb7e423b9974c60c2d435d2d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_5d61a2800f3d4d4ca4d5f9cb047feb1e", + "max": 122806169, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_64236a1f3f06411284a605dca33bbc4b", + "value": 122806169 + } + }, + "a4f68f6eae0b4400b4586d5d56b9814e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_7b537053d339482b80fd861493c07ef5", + "placeholder": "​", + "style": "IPY_MODEL_96892dda998a4e199daf21260909d721", + "value": " 117M/117M [00:03<00:00, 39.5MB/s]" + } + }, + "99d30e8cd8f1461f8be1edb34d87815c": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "5f06cd0b37f54b40a923b64082aae082": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "7ea3fd235b744524a970e19d3583e4a3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "5d61a2800f3d4d4ca4d5f9cb047feb1e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "64236a1f3f06411284a605dca33bbc4b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "7b537053d339482b80fd861493c07ef5": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "96892dda998a4e199daf21260909d721": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "1b0289d7bcb3427c94b0727e44e68b5e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_9f70c99f313244f69074f3a285ac816f", + "IPY_MODEL_f8160538dec043d88679c63cc66f446f", + "IPY_MODEL_102f79f55b544d91aa3a8408ff3a8930" + ], + "layout": "IPY_MODEL_ab006e5bf76d41cfa90518f211c8f7b9" + } + }, + "9f70c99f313244f69074f3a285ac816f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_b90ea8a47803498e899bdbd8531640a1", + "placeholder": "​", + "style": "IPY_MODEL_08b749748beb467fb57cdd14a5d87b92", + "value": "Sanity Checking DataLoader 0: 100%" + } + }, + "f8160538dec043d88679c63cc66f446f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_94d478e224eb4ef9a285907a276386f1", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_25e8837266344b0e84e0bada0f8ad88a", + "value": 1 + } + }, + "102f79f55b544d91aa3a8408ff3a8930": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_e7c795ec7ed842ab94124c3eb46e1f0e", + "placeholder": "​", + "style": "IPY_MODEL_a9be8d03f48043788dac1f0c846e2bdd", + "value": " 2/2 [00:00<00:00, 2.07it/s]" + } + }, + "ab006e5bf76d41cfa90518f211c8f7b9": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "b90ea8a47803498e899bdbd8531640a1": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "08b749748beb467fb57cdd14a5d87b92": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "94d478e224eb4ef9a285907a276386f1": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "25e8837266344b0e84e0bada0f8ad88a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "e7c795ec7ed842ab94124c3eb46e1f0e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a9be8d03f48043788dac1f0c846e2bdd": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "474525cfe77044a68fb96671aacfd3f8": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_8254743de4474684bf55a807707bc6ba", + "IPY_MODEL_a817ed8b62d64d9dac1091db5edd2ed3", + "IPY_MODEL_c72828fa83c64c52a45f4b2bb407124a" + ], + "layout": "IPY_MODEL_6c720f7287f94e7496f87dbdd3e644bc" + } + }, + "8254743de4474684bf55a807707bc6ba": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_0482e1f0c4924ea2ab299ed9e0e9d4a3", + "placeholder": "​", + "style": "IPY_MODEL_f0224a72e66b4a45a9e2442de449401c", + "value": "Epoch 72: 27%" + } + }, + "a817ed8b62d64d9dac1091db5edd2ed3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_bcf9690462b94820a1392f94ef64439c", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_ae8e91c237094ab6864ec6268f6b705d", + "value": 1 + } + }, + "c72828fa83c64c52a45f4b2bb407124a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_1417c53dac6140ed9c7f36e765f21003", + "placeholder": "​", + "style": "IPY_MODEL_b9029a4cd3b44972b1e0c248bf5daa7a", + "value": " 20/74 [24:39<1:06:35, 73.99s/it, loss=0.274, v_num=0]" + } + }, + "6c720f7287f94e7496f87dbdd3e644bc": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "0482e1f0c4924ea2ab299ed9e0e9d4a3": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f0224a72e66b4a45a9e2442de449401c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "bcf9690462b94820a1392f94ef64439c": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "ae8e91c237094ab6864ec6268f6b705d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "1417c53dac6140ed9c7f36e765f21003": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b9029a4cd3b44972b1e0c248bf5daa7a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "0a1ceefa655d4fd993cbfd07ddc111e2": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_368a6e6b831a47248bb25e6204ccd2e7", + "IPY_MODEL_9f8fbde6b1104cf7a6027415c3e52e1c", + "IPY_MODEL_56fb1e71871d4e43be549b3667a8abc5" + ], + "layout": "IPY_MODEL_707cbe6b687b43ce955aeef03ec426b5" + } + }, + "368a6e6b831a47248bb25e6204ccd2e7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_4ae787f57343498db513f624bfd5cd1d", + "placeholder": "​", + "style": "IPY_MODEL_005bf73c1e994e78bd5d36a77c8ec2af", + "value": "Validation DataLoader 0: 100%" + } + }, + "9f8fbde6b1104cf7a6027415c3e52e1c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_1ab17107e7ff4ff084edeb58a29c013f", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_081fae43499a473f86da130f3c0491de", + "value": 1 + } + }, + "56fb1e71871d4e43be549b3667a8abc5": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_6e7efb16f0ee4f0e8ed180a69df138be", + "placeholder": "​", + "style": "IPY_MODEL_3c1271848b454dd592c2ba2575596e4d", + "value": " 13/13 [00:02<00:00, 5.71it/s]" + } + }, + "707cbe6b687b43ce955aeef03ec426b5": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "4ae787f57343498db513f624bfd5cd1d": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "005bf73c1e994e78bd5d36a77c8ec2af": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "1ab17107e7ff4ff084edeb58a29c013f": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "081fae43499a473f86da130f3c0491de": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "6e7efb16f0ee4f0e8ed180a69df138be": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "3c1271848b454dd592c2ba2575596e4d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "3f32346b240c4689ac13a027de538dc8": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_2b122e36a9c74bf0851bb2cffb510459", + "IPY_MODEL_8b837968960d4eda94aa02204acc493c", + "IPY_MODEL_4364cc52d3c54118801181a1e63ca299" + ], + "layout": "IPY_MODEL_07ac79335bed44249ca19623b5ff1433" + } + }, + "2b122e36a9c74bf0851bb2cffb510459": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_b4c61aaf83ca487397dc917b987df606", + "placeholder": "​", + "style": "IPY_MODEL_90ce9e2b2e7f40ef84598417bb71712c", + "value": "Validation DataLoader 0: 100%" + } + }, + "8b837968960d4eda94aa02204acc493c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_0203281a79a644778a7d6a916b20f115", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_54e52bc930c54d3d9c6740dcc4634fa6", + "value": 1 + } + }, + "4364cc52d3c54118801181a1e63ca299": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_0b022e179f624399be4509fddb066390", + "placeholder": "​", + "style": "IPY_MODEL_3bbac5374029498693f7f5acb86cc7a6", + "value": " 13/13 [00:02<00:00, 5.74it/s]" + } + }, + "07ac79335bed44249ca19623b5ff1433": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "b4c61aaf83ca487397dc917b987df606": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "90ce9e2b2e7f40ef84598417bb71712c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "0203281a79a644778a7d6a916b20f115": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "54e52bc930c54d3d9c6740dcc4634fa6": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "0b022e179f624399be4509fddb066390": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "3bbac5374029498693f7f5acb86cc7a6": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "072b534856cd438892e0430d6adafe86": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_caa00974416b4b8e95fce6a00e3bc594", + "IPY_MODEL_c9e29dbf69d54eb59f6cf1f230d8dacc", + "IPY_MODEL_98112bf2af03483b807c5f8157f6db6b" + ], + "layout": "IPY_MODEL_6840dbb325be4b12b29abef66c52b3ad" + } + }, + "caa00974416b4b8e95fce6a00e3bc594": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_f0856b74d9c6406c880b77c079b81162", + "placeholder": "​", + "style": "IPY_MODEL_0d4d58f274b44475ad4f883a55e3c86b", + "value": "Validation DataLoader 0: 100%" + } + }, + "c9e29dbf69d54eb59f6cf1f230d8dacc": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_644499f1324543aa8fe00da58ca26bb3", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_fbbf083072ee4e4f92e5c1122a8509df", + "value": 1 + } + }, + "98112bf2af03483b807c5f8157f6db6b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_64834b641cec41d1855a1e1164d6df5c", + "placeholder": "​", + "style": "IPY_MODEL_6362a354c1ac413fb8a8b54f5f7cd26f", + "value": " 13/13 [00:02<00:00, 5.70it/s]" + } + }, + "6840dbb325be4b12b29abef66c52b3ad": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "f0856b74d9c6406c880b77c079b81162": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0d4d58f274b44475ad4f883a55e3c86b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "644499f1324543aa8fe00da58ca26bb3": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "fbbf083072ee4e4f92e5c1122a8509df": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "64834b641cec41d1855a1e1164d6df5c": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "6362a354c1ac413fb8a8b54f5f7cd26f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "e584692b2e5c4caa8755d6a971428c0b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_94629fe8552d481088d6eb29053065b5", + "IPY_MODEL_0a1e964cb8184a65a29cc9f64bab0d86", + "IPY_MODEL_829e585fa90a4ace82034f058b8c6cb6" + ], + "layout": "IPY_MODEL_74f4fb35b4534413b4b0149cb8ce5dc6" + } + }, + "94629fe8552d481088d6eb29053065b5": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_06ce0fd028bc4ca39cebf8f42a6e1c69", + "placeholder": "​", + "style": "IPY_MODEL_94dc073ef7f1404086081ac42f555438", + "value": "Validation DataLoader 0: 100%" + } + }, + "0a1e964cb8184a65a29cc9f64bab0d86": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_6207e468294f4712afd0da5fb4cc849e", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_6935599b7a374b29b75410dfc723c8dc", + "value": 1 + } + }, + "829e585fa90a4ace82034f058b8c6cb6": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_64675e855e944c2992d584bb3ac44f62", + "placeholder": "​", + "style": "IPY_MODEL_3e9b0c9fbcae4e799dbe1eb2d4220e6b", + "value": " 13/13 [00:02<00:00, 5.66it/s]" + } + }, + "74f4fb35b4534413b4b0149cb8ce5dc6": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "06ce0fd028bc4ca39cebf8f42a6e1c69": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "94dc073ef7f1404086081ac42f555438": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "6207e468294f4712afd0da5fb4cc849e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "6935599b7a374b29b75410dfc723c8dc": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "64675e855e944c2992d584bb3ac44f62": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "3e9b0c9fbcae4e799dbe1eb2d4220e6b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "3678b8a6f6f14ab49ab2196a571437ef": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_fc1880875c3648b18c0b53f148dbabd8", + "IPY_MODEL_b44d3462f8ff4c4faeed2b9c6ed95ba9", + "IPY_MODEL_9f1af35fb8bb4101b2b9a7af90e20e06" + ], + "layout": "IPY_MODEL_071ec97ab1cb429f8e35d691ea7c5d56" + } + }, + "fc1880875c3648b18c0b53f148dbabd8": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_7ee6d4ce36544b0f93e567315aeb96b7", + "placeholder": "​", + "style": "IPY_MODEL_388cc54e314e40428cb00cd9bdda8225", + "value": "Validation DataLoader 0: 100%" + } + }, + "b44d3462f8ff4c4faeed2b9c6ed95ba9": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_d1b307e6d4d449ecb194c1096e203975", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_c6a33a864abe4a7fa94b32ddb7f59d42", + "value": 1 + } + }, + "9f1af35fb8bb4101b2b9a7af90e20e06": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_a9fbe7b9d4f24bcd926d8be680cbcdb7", + "placeholder": "​", + "style": "IPY_MODEL_cf282e2837a748ddb5fd7e08a831b52d", + "value": " 13/13 [00:02<00:00, 5.64it/s]" + } + }, + "071ec97ab1cb429f8e35d691ea7c5d56": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "7ee6d4ce36544b0f93e567315aeb96b7": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "388cc54e314e40428cb00cd9bdda8225": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "d1b307e6d4d449ecb194c1096e203975": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "c6a33a864abe4a7fa94b32ddb7f59d42": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "a9fbe7b9d4f24bcd926d8be680cbcdb7": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "cf282e2837a748ddb5fd7e08a831b52d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "1d70f49f4a474fa193d5b941b98bc229": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_77ad927e67ed4846bf41fdcbb3084b60", + "IPY_MODEL_cad48e2cc649492b9f7a905a74fc3def", + "IPY_MODEL_696e25de18cf4d22b823c94c62d10ec7" + ], + "layout": "IPY_MODEL_e4baf3d24cb74bb7b9e7f52c02e4ebe9" + } + }, + "77ad927e67ed4846bf41fdcbb3084b60": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_cc6f12ef7d6a49fca677585909557dd8", + "placeholder": "​", + "style": "IPY_MODEL_47b688ff8d1d42a89a509d09d0ad92bd", + "value": "Validation DataLoader 0: 100%" + } + }, + "cad48e2cc649492b9f7a905a74fc3def": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_256e6ea53ecb4f678b65fcd801064369", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_1a94972e5bad4627815cf8d174f8d4b8", + "value": 1 + } + }, + "696e25de18cf4d22b823c94c62d10ec7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_cb31c29de3b843da996bad132a103121", + "placeholder": "​", + "style": "IPY_MODEL_44a3796c78c24d3b9ae696f63cf17aae", + "value": " 13/13 [00:02<00:00, 5.61it/s]" + } + }, + "e4baf3d24cb74bb7b9e7f52c02e4ebe9": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "cc6f12ef7d6a49fca677585909557dd8": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "47b688ff8d1d42a89a509d09d0ad92bd": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "256e6ea53ecb4f678b65fcd801064369": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "1a94972e5bad4627815cf8d174f8d4b8": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "cb31c29de3b843da996bad132a103121": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "44a3796c78c24d3b9ae696f63cf17aae": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "90c260b0080a4b72b5fa1d6580ec2d4f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_c5322a4a02f54c15baa63471bb15b86c", + "IPY_MODEL_ee3341a2c4e34e22a6645da68d4760d2", + "IPY_MODEL_ebdb177cdbd7489b936fa9d0589b9bf4" + ], + "layout": "IPY_MODEL_797a886a1800411ca5fe60789919bf09" + } + }, + "c5322a4a02f54c15baa63471bb15b86c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_8c9f6af97efa4a52b2d841be79780fc6", + "placeholder": "​", + "style": "IPY_MODEL_8e19d2365a8b4fef9c6feb390077d8c7", + "value": "Validation DataLoader 0: 100%" + } + }, + "ee3341a2c4e34e22a6645da68d4760d2": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_01baee72fdf1469595e6ea4556df3271", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_9c0d09907c55424cbf62972963e7b6e1", + "value": 1 + } + }, + "ebdb177cdbd7489b936fa9d0589b9bf4": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_1b01e998e8344126b780e0eff04620cd", + "placeholder": "​", + "style": "IPY_MODEL_649aee8f4e41440d9d4dd12f5ae2665c", + "value": " 13/13 [00:02<00:00, 5.68it/s]" + } + }, + "797a886a1800411ca5fe60789919bf09": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "8c9f6af97efa4a52b2d841be79780fc6": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "8e19d2365a8b4fef9c6feb390077d8c7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "01baee72fdf1469595e6ea4556df3271": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "9c0d09907c55424cbf62972963e7b6e1": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "1b01e998e8344126b780e0eff04620cd": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "649aee8f4e41440d9d4dd12f5ae2665c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "6c92b1fb101f454690d2446e7a9f0c16": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_37beb51e3b464738a8a22433915a5b81", + "IPY_MODEL_8283629a64f440c2a6fc0813e3f0b3fc", + "IPY_MODEL_ceb1bffd40264de7a158b299a7b488bb" + ], + "layout": "IPY_MODEL_e9f701baf9a64d18b1172326ce23a7e6" + } + }, + "37beb51e3b464738a8a22433915a5b81": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_02630e67149d4b9084e6ead2d1a1e0d3", + "placeholder": "​", + "style": "IPY_MODEL_385c9ccd48a34395962926b91b1d8ce0", + "value": "Validation DataLoader 0: 100%" + } + }, + "8283629a64f440c2a6fc0813e3f0b3fc": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_eae9f301ceba45fc931513a82bc8e0a9", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_59cbc7484e0243c5a6e0c63b2680687c", + "value": 1 + } + }, + "ceb1bffd40264de7a158b299a7b488bb": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_204515138f0d437a82b70e13454e9233", + "placeholder": "​", + "style": "IPY_MODEL_a367139af2944a44aa47047cd9a1da2d", + "value": " 13/13 [00:02<00:00, 5.65it/s]" + } + }, + "e9f701baf9a64d18b1172326ce23a7e6": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "02630e67149d4b9084e6ead2d1a1e0d3": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "385c9ccd48a34395962926b91b1d8ce0": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "eae9f301ceba45fc931513a82bc8e0a9": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "59cbc7484e0243c5a6e0c63b2680687c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "204515138f0d437a82b70e13454e9233": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a367139af2944a44aa47047cd9a1da2d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "60e0be378cca4f7d8e85f645ccc4a074": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_d84ca89a9b1748d48e20f31fa20135c6", + "IPY_MODEL_8be3119a61df43d68dc8cec816744333", + "IPY_MODEL_f4b7ba76518740d58f12aa5012562a20" + ], + "layout": "IPY_MODEL_87f51fc1018f4746a58e7884d160735a" + } + }, + "d84ca89a9b1748d48e20f31fa20135c6": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_dac4b6d329214f328f2c4b855c1ed68a", + "placeholder": "​", + "style": "IPY_MODEL_8b6768c972c84a889d01c7e4de5e9b80", + "value": "Validation DataLoader 0: 100%" + } + }, + "8be3119a61df43d68dc8cec816744333": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_4f57db31918346a1a4b4ec695723f688", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_f3e1cecb1e70487681da62b6ad6a1c78", + "value": 1 + } + }, + "f4b7ba76518740d58f12aa5012562a20": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_72f8486303ab4caf9dc163e9ad2cf0bc", + "placeholder": "​", + "style": "IPY_MODEL_3cea453bc2404fbb9f44c651489cf4ba", + "value": " 13/13 [00:02<00:00, 5.57it/s]" + } + }, + "87f51fc1018f4746a58e7884d160735a": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "dac4b6d329214f328f2c4b855c1ed68a": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "8b6768c972c84a889d01c7e4de5e9b80": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "4f57db31918346a1a4b4ec695723f688": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f3e1cecb1e70487681da62b6ad6a1c78": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "72f8486303ab4caf9dc163e9ad2cf0bc": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "3cea453bc2404fbb9f44c651489cf4ba": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "fd9c08d103594bd380304a5888e89f1c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_bbccc79c237746cb90af7c261053c284", + "IPY_MODEL_89b0064cdc494d8eafa725a771c282c6", + "IPY_MODEL_8f17a7e9f64946a9bddf3c4d3ec5cdee" + ], + "layout": "IPY_MODEL_5e0850995c8f49db8bb56ac9adb6e0d8" + } + }, + "bbccc79c237746cb90af7c261053c284": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_8764975928fb4299bf3b436f619f3d8f", + "placeholder": "​", + "style": "IPY_MODEL_e3c3ba49e58b4d73a8fb60f0582d4f60", + "value": "Validation DataLoader 0: 100%" + } + }, + "89b0064cdc494d8eafa725a771c282c6": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_490c7b0787be487e85e9229a6e612efc", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_dba4281095d54c79b03bc19b4a355adf", + "value": 1 + } + }, + "8f17a7e9f64946a9bddf3c4d3ec5cdee": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_e948fd5bb3cc4e588d2bd06f9189f2db", + "placeholder": "​", + "style": "IPY_MODEL_ba96bb8f98354d73ac68963b8304d3ab", + "value": " 13/13 [00:02<00:00, 5.52it/s]" + } + }, + "5e0850995c8f49db8bb56ac9adb6e0d8": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "8764975928fb4299bf3b436f619f3d8f": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "e3c3ba49e58b4d73a8fb60f0582d4f60": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "490c7b0787be487e85e9229a6e612efc": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "dba4281095d54c79b03bc19b4a355adf": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "e948fd5bb3cc4e588d2bd06f9189f2db": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "ba96bb8f98354d73ac68963b8304d3ab": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "bebcd1143fad41fd88e3ddaf26b90a13": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_b1d82219b8504759bc66ee01c7041bbd", + "IPY_MODEL_1fefa75caa6d41d3ada8ff03c2274984", + "IPY_MODEL_7dce7c964392463fbb5bfc9b3721ddb1" + ], + "layout": "IPY_MODEL_acb9fd404226422eae963679472b5c6e" + } + }, + "b1d82219b8504759bc66ee01c7041bbd": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_9698f3e3b2154fd3bc082ced3ba32d80", + "placeholder": "​", + "style": "IPY_MODEL_989ae296cbd04f34bc4e484ed6107d88", + "value": "Validation DataLoader 0: 100%" + } + }, + "1fefa75caa6d41d3ada8ff03c2274984": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_54ee036101314e64a00452089afe0be2", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_49c5062db39c458587a560e1251bb5e6", + "value": 1 + } + }, + "7dce7c964392463fbb5bfc9b3721ddb1": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_6be60ee69b194737a8c09401ba753ea4", + "placeholder": "​", + "style": "IPY_MODEL_44d762421ea94772a3903544e73face9", + "value": " 13/13 [00:02<00:00, 5.59it/s]" + } + }, + "acb9fd404226422eae963679472b5c6e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "9698f3e3b2154fd3bc082ced3ba32d80": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "989ae296cbd04f34bc4e484ed6107d88": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "54ee036101314e64a00452089afe0be2": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "49c5062db39c458587a560e1251bb5e6": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "6be60ee69b194737a8c09401ba753ea4": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "44d762421ea94772a3903544e73face9": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "a2f1dc774d0c42cdbcab82fb152238eb": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_4bc15e950891475da1237e05a4d4fe5d", + "IPY_MODEL_150d6b7050d74710b9a318cba732d705", + "IPY_MODEL_187d88a9181a4749819c7a31157d59c2" + ], + "layout": "IPY_MODEL_36542a678ebd4ff28de0f0e7b11d704f" + } + }, + "4bc15e950891475da1237e05a4d4fe5d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_119424bb9163428aaaa254c21a6cd184", + "placeholder": "​", + "style": "IPY_MODEL_7df9073cc5a4431c8109222a33b7dae3", + "value": "Validation DataLoader 0: 100%" + } + }, + "150d6b7050d74710b9a318cba732d705": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_89470753c5624762a0ebfca77200f556", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_e8262d942e90412d9b2e38c64f30cb62", + "value": 1 + } + }, + "187d88a9181a4749819c7a31157d59c2": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_367d88b3c62540b9b345d752daa4499c", + "placeholder": "​", + "style": "IPY_MODEL_511b3c1d89414d968356da1c5d1f6457", + "value": " 13/13 [00:02<00:00, 5.55it/s]" + } + }, + "36542a678ebd4ff28de0f0e7b11d704f": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "119424bb9163428aaaa254c21a6cd184": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "7df9073cc5a4431c8109222a33b7dae3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "89470753c5624762a0ebfca77200f556": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "e8262d942e90412d9b2e38c64f30cb62": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "367d88b3c62540b9b345d752daa4499c": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "511b3c1d89414d968356da1c5d1f6457": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "7bc01048086c441197c975b2668f1d91": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_8618491251bc443db70a04bf6f8fd257", + "IPY_MODEL_b482892f01a34f61bcdfb56330a9c68d", + "IPY_MODEL_5ce40609b50a4dfc9ad47449062b9e9b" + ], + "layout": "IPY_MODEL_ce506b72c89d429d9b40187f7b268c8a" + } + }, + "8618491251bc443db70a04bf6f8fd257": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_7ef82b48313b45308bc7bdd49ab083cb", + "placeholder": "​", + "style": "IPY_MODEL_d3006e8f3cb04af8b574109969768ed4", + "value": "Validation DataLoader 0: 100%" + } + }, + "b482892f01a34f61bcdfb56330a9c68d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_2de8a2dd8e624ceeb62a9b022329004d", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_39f91ff8084d41929a192f8b4c9af003", + "value": 1 + } + }, + "5ce40609b50a4dfc9ad47449062b9e9b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_3b1bfd46c7964644900e2da64736794e", + "placeholder": "​", + "style": "IPY_MODEL_95b6334836cb43b3ba674d45e344ee2b", + "value": " 13/13 [00:02<00:00, 5.56it/s]" + } + }, + "ce506b72c89d429d9b40187f7b268c8a": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "7ef82b48313b45308bc7bdd49ab083cb": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d3006e8f3cb04af8b574109969768ed4": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "2de8a2dd8e624ceeb62a9b022329004d": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "39f91ff8084d41929a192f8b4c9af003": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "3b1bfd46c7964644900e2da64736794e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "95b6334836cb43b3ba674d45e344ee2b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "1caf0d28baa641f59be02b9089783fa1": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_d8fd571e5bf04b0a9230076dba224ffa", + "IPY_MODEL_d1dbe8665b714a03bf7d0185a6896c5f", + "IPY_MODEL_f4695deda4e546129770cb1eb9599d9f" + ], + "layout": "IPY_MODEL_f564a7ef3b3d4b4383373d2ee38c3bd1" + } + }, + "d8fd571e5bf04b0a9230076dba224ffa": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_872afcdeec974d9dafa2df8bfdf3dfb4", + "placeholder": "​", + "style": "IPY_MODEL_687f142a3a4e4a7b84d057237d94cd79", + "value": "Validation DataLoader 0: 100%" + } + }, + "d1dbe8665b714a03bf7d0185a6896c5f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_489d4ba20c7b4fd9b05711f20acb45e4", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_faf5e707022f4d47a07c652c28eaef81", + "value": 1 + } + }, + "f4695deda4e546129770cb1eb9599d9f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_12396033882745088604c42faf9a9a5a", + "placeholder": "​", + "style": "IPY_MODEL_71329fdbee1743d88102b7d944b5d387", + "value": " 13/13 [00:02<00:00, 5.52it/s]" + } + }, + "f564a7ef3b3d4b4383373d2ee38c3bd1": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "872afcdeec974d9dafa2df8bfdf3dfb4": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "687f142a3a4e4a7b84d057237d94cd79": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "489d4ba20c7b4fd9b05711f20acb45e4": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "faf5e707022f4d47a07c652c28eaef81": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "12396033882745088604c42faf9a9a5a": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "71329fdbee1743d88102b7d944b5d387": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "c2e5de6690f5471fac4b34d5b19be1f3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_a22992887fb24a65841a90245a7b5f8f", + "IPY_MODEL_36bc5a5d681949b59cc1cb425c1b036c", + "IPY_MODEL_6eeb551a314941c4941b034f1e1f68b2" + ], + "layout": "IPY_MODEL_53be4ce8076f40b6bd4f9fbc8d5e621b" + } + }, + "a22992887fb24a65841a90245a7b5f8f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_b6d8eac4940340b08f274e40f41edffd", + "placeholder": "​", + "style": "IPY_MODEL_986234fe602c4e12873fdd7548f3bc1a", + "value": "Validation DataLoader 0: 100%" + } + }, + "36bc5a5d681949b59cc1cb425c1b036c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_6aebc13a6203483ab2af63497e2985d9", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_225287ee43204567940721645ab5aa92", + "value": 1 + } + }, + "6eeb551a314941c4941b034f1e1f68b2": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_4fece4b9f7f644088ef28d7ed9bf520e", + "placeholder": "​", + "style": "IPY_MODEL_be36c5c66b374808810800be87f74439", + "value": " 13/13 [00:02<00:00, 5.47it/s]" + } + }, + "53be4ce8076f40b6bd4f9fbc8d5e621b": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "b6d8eac4940340b08f274e40f41edffd": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "986234fe602c4e12873fdd7548f3bc1a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "6aebc13a6203483ab2af63497e2985d9": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "225287ee43204567940721645ab5aa92": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "4fece4b9f7f644088ef28d7ed9bf520e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "be36c5c66b374808810800be87f74439": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "bf8e42f0e3894026ab8e1c7425483659": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_86b87ef52fec4efb9ea20475548a1126", + "IPY_MODEL_78be20716bd2414d932912252e9daf0f", + "IPY_MODEL_e6e1d83e8b104e7faa590fd759adc8d3" + ], + "layout": "IPY_MODEL_94353e40907c4b86b76227ea6707d2e7" + } + }, + "86b87ef52fec4efb9ea20475548a1126": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_43862dc2d24c44feb6c22977bde09f2f", + "placeholder": "​", + "style": "IPY_MODEL_6102a65604354be4b9e0b43852e61e71", + "value": "Validation DataLoader 0: 100%" + } + }, + "78be20716bd2414d932912252e9daf0f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_c603c3753dd1422196691672cf32198d", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_9befd06a1b224767ba9e9fa86be549d0", + "value": 1 + } + }, + "e6e1d83e8b104e7faa590fd759adc8d3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_1f8ee4e5d9cc4222b005bcccf9869ea6", + "placeholder": "​", + "style": "IPY_MODEL_f140f669e15c411da31155afa32348bb", + "value": " 13/13 [00:02<00:00, 5.46it/s]" + } + }, + "94353e40907c4b86b76227ea6707d2e7": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "43862dc2d24c44feb6c22977bde09f2f": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "6102a65604354be4b9e0b43852e61e71": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "c603c3753dd1422196691672cf32198d": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "9befd06a1b224767ba9e9fa86be549d0": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "1f8ee4e5d9cc4222b005bcccf9869ea6": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f140f669e15c411da31155afa32348bb": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "2426ab2516d6493f99d24d05daf24925": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_4149633f34e84d2f99b741158ad9254c", + "IPY_MODEL_794f8e4f21de4d9385cb2861cbdb460c", + "IPY_MODEL_6dda215933d843a582078305bcf3f39b" + ], + "layout": "IPY_MODEL_b9ed06cc54bb4049ae32edf163e35176" + } + }, + "4149633f34e84d2f99b741158ad9254c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_e5661afaacfd4e3dbdcfae10f7b91e3d", + "placeholder": "​", + "style": "IPY_MODEL_388c4690fdb74051aae8fb6beeca30db", + "value": "Validation DataLoader 0: 100%" + } + }, + "794f8e4f21de4d9385cb2861cbdb460c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_255732a8783540d8a6955076bcea0572", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_e7fbb4d2003c4ae2a41ddf3a481f52f6", + "value": 1 + } + }, + "6dda215933d843a582078305bcf3f39b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_126ddc7b9ad041faaea0f942df06250a", + "placeholder": "​", + "style": "IPY_MODEL_8a650f35d90d431eb6fe6da636dbb405", + "value": " 13/13 [00:02<00:00, 5.48it/s]" + } + }, + "b9ed06cc54bb4049ae32edf163e35176": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "e5661afaacfd4e3dbdcfae10f7b91e3d": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "388c4690fdb74051aae8fb6beeca30db": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "255732a8783540d8a6955076bcea0572": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "e7fbb4d2003c4ae2a41ddf3a481f52f6": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "126ddc7b9ad041faaea0f942df06250a": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "8a650f35d90d431eb6fe6da636dbb405": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "24287a6104864442bcde7c87c29598ca": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_8d75841a311c4418ae9726354091afaf", + "IPY_MODEL_e29b8ccd9db7445198a0074039335797", + "IPY_MODEL_ef717382fb9a4279a88e9a274eed5fb5" + ], + "layout": "IPY_MODEL_de3fc36985af4e4abad8d86dff2c9802" + } + }, + "8d75841a311c4418ae9726354091afaf": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_df96d2ff29fb45aebbd7364574cfba26", + "placeholder": "​", + "style": "IPY_MODEL_451a6e924c2d44bf9912055fe7f7fac8", + "value": "Validation DataLoader 0: 100%" + } + }, + "e29b8ccd9db7445198a0074039335797": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_2c289b657ef44db0b79023a95cdc8282", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_665588dea7f544cd84b7ce7bec5d7186", + "value": 1 + } + }, + "ef717382fb9a4279a88e9a274eed5fb5": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_2928dfdbd5fd4feba1a067f82763c5bc", + "placeholder": "​", + "style": "IPY_MODEL_ecc42d30b0fc4057a4f3af8a0dcb946d", + "value": " 13/13 [00:02<00:00, 5.50it/s]" + } + }, + "de3fc36985af4e4abad8d86dff2c9802": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "df96d2ff29fb45aebbd7364574cfba26": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "451a6e924c2d44bf9912055fe7f7fac8": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "2c289b657ef44db0b79023a95cdc8282": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "665588dea7f544cd84b7ce7bec5d7186": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "2928dfdbd5fd4feba1a067f82763c5bc": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "ecc42d30b0fc4057a4f3af8a0dcb946d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "e6da89708ff2403da60828520e58d40a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_a089300768e443acb648389da02d4d3d", + "IPY_MODEL_40305cd7fc344cb7ba48ad479652446b", + "IPY_MODEL_2884dafa62c34f389a4831f9f0122605" + ], + "layout": "IPY_MODEL_3176bfc87ecc411d8837b629ac1ac38a" + } + }, + "a089300768e443acb648389da02d4d3d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_43cc475e082d4c9691b3934071644a94", + "placeholder": "​", + "style": "IPY_MODEL_a48797e424374633a5b37c1695952875", + "value": "Validation DataLoader 0: 100%" + } + }, + "40305cd7fc344cb7ba48ad479652446b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_648dc2f3181149888c248c8a9dca292d", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_ff94202cd1234d848166a38cc6fb92e3", + "value": 1 + } + }, + "2884dafa62c34f389a4831f9f0122605": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_fe3200dc1cd443cf9736405ad98959b6", + "placeholder": "​", + "style": "IPY_MODEL_100cd8a8785f4314b4c9cf6f5d7d0ce3", + "value": " 13/13 [00:02<00:00, 5.44it/s]" + } + }, + "3176bfc87ecc411d8837b629ac1ac38a": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "43cc475e082d4c9691b3934071644a94": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a48797e424374633a5b37c1695952875": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "648dc2f3181149888c248c8a9dca292d": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "ff94202cd1234d848166a38cc6fb92e3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "fe3200dc1cd443cf9736405ad98959b6": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "100cd8a8785f4314b4c9cf6f5d7d0ce3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "1728ebcc3d7b45cdb51f77d2c4aee906": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_c7f0a394559d4a2da6a2fd9dd49a98f0", + "IPY_MODEL_9a11855264304fc9a327ca50540e362a", + "IPY_MODEL_6407afdcef4649ffa7369e0fc5377fe9" + ], + "layout": "IPY_MODEL_fd44e0b6131546be9d4f154cea2352cb" + } + }, + "c7f0a394559d4a2da6a2fd9dd49a98f0": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_ce2e997522c2438f98f7a756053b3bf4", + "placeholder": "​", + "style": "IPY_MODEL_0f4deb8b20ca4946907419df74f1a81e", + "value": "Validation DataLoader 0: 100%" + } + }, + "9a11855264304fc9a327ca50540e362a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_d05e872594564ed78ab108202204d454", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_465d824f4d334d129405eca15595aa51", + "value": 1 + } + }, + "6407afdcef4649ffa7369e0fc5377fe9": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_a817e30cf94345dfaffbddf01b9b32c3", + "placeholder": "​", + "style": "IPY_MODEL_37aaca0d2ee34587be39e3b265f9862b", + "value": " 13/13 [00:02<00:00, 5.47it/s]" + } + }, + "fd44e0b6131546be9d4f154cea2352cb": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "ce2e997522c2438f98f7a756053b3bf4": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0f4deb8b20ca4946907419df74f1a81e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "d05e872594564ed78ab108202204d454": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "465d824f4d334d129405eca15595aa51": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "a817e30cf94345dfaffbddf01b9b32c3": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "37aaca0d2ee34587be39e3b265f9862b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "418e74f61bc0484a87f1517587de675e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_4068e8e2c497443d922b591dc0bfcf09", + "IPY_MODEL_0d6b6634ae2a40d5ac6cb1f1b156dbd6", + "IPY_MODEL_0d84f6506d3f45a3bfd30d130ec0b59a" + ], + "layout": "IPY_MODEL_8b26a9907a13455d8d29c1ab410b5bbf" + } + }, + "4068e8e2c497443d922b591dc0bfcf09": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_3196d137b82f43088a9cfa423f0693d1", + "placeholder": "​", + "style": "IPY_MODEL_2e7e19505b8e4dd6acf902cd3f8f6f56", + "value": "Validation DataLoader 0: 100%" + } + }, + "0d6b6634ae2a40d5ac6cb1f1b156dbd6": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_f8554ec01703415f84d568bacac156d8", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_22f6b2255608435b9b3255291f0a3ccb", + "value": 1 + } + }, + "0d84f6506d3f45a3bfd30d130ec0b59a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_0e6692576e004b65a21f4157de62177c", + "placeholder": "​", + "style": "IPY_MODEL_1cbc48efb8ce49749487912457be9aab", + "value": " 13/13 [00:02<00:00, 5.47it/s]" + } + }, + "8b26a9907a13455d8d29c1ab410b5bbf": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "3196d137b82f43088a9cfa423f0693d1": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2e7e19505b8e4dd6acf902cd3f8f6f56": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "f8554ec01703415f84d568bacac156d8": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "22f6b2255608435b9b3255291f0a3ccb": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "0e6692576e004b65a21f4157de62177c": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "1cbc48efb8ce49749487912457be9aab": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "fbf1bd96b9f1477aa2ca46ba2018c012": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_dfe435ce5f5f49ea972b90edc8709975", + "IPY_MODEL_f3ca80a8c6394543bdda4699203eac91", + "IPY_MODEL_5f5be3bc7c2e4969832f8977f802cf9c" + ], + "layout": "IPY_MODEL_2d695a3b8ca8431fa6ee1e4d771b8712" + } + }, + "dfe435ce5f5f49ea972b90edc8709975": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_989b123c78d54843a4ee3959ee670d1a", + "placeholder": "​", + "style": "IPY_MODEL_4feed7da874a488b957e547921f0be07", + "value": "Validation DataLoader 0: 100%" + } + }, + "f3ca80a8c6394543bdda4699203eac91": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_e805faebbf2041c8b6582da10eb6aa93", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_93df14cff9ec434f9fb64b684c2fdc59", + "value": 1 + } + }, + "5f5be3bc7c2e4969832f8977f802cf9c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_27a385cd7a8d46a184228a2b8c3e6f7d", + "placeholder": "​", + "style": "IPY_MODEL_2c02b6a9dd6244d893d701775bb90f12", + "value": " 13/13 [00:02<00:00, 5.50it/s]" + } + }, + "2d695a3b8ca8431fa6ee1e4d771b8712": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "989b123c78d54843a4ee3959ee670d1a": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "4feed7da874a488b957e547921f0be07": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "e805faebbf2041c8b6582da10eb6aa93": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "93df14cff9ec434f9fb64b684c2fdc59": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "27a385cd7a8d46a184228a2b8c3e6f7d": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2c02b6a9dd6244d893d701775bb90f12": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "b097f11a4f644f539f78fbc61ad1231c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_b477c0fe55c94735a2a77cbf9edcde1e", + "IPY_MODEL_3c1ed7778e4f43a18d5b918045a42998", + "IPY_MODEL_355bb3171fdd44aebf49c4b38e156e86" + ], + "layout": "IPY_MODEL_c29a706a20974163955852e2bfbbd944" + } + }, + "b477c0fe55c94735a2a77cbf9edcde1e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_9edcaffa41d34671a757aa08d6a153eb", + "placeholder": "​", + "style": "IPY_MODEL_26f23f5ad63d4be891e4b8fec7b66b30", + "value": "Validation DataLoader 0: 100%" + } + }, + "3c1ed7778e4f43a18d5b918045a42998": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_eb4a50e33c7a479dad1b33f6c7352b36", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_e1641e3108894fbd942a616bde78f0ae", + "value": 1 + } + }, + "355bb3171fdd44aebf49c4b38e156e86": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_9629672ccc73400ea870cd4e88c62de9", + "placeholder": "​", + "style": "IPY_MODEL_db226f0d604141bb9c6d2659eb0bba4c", + "value": " 13/13 [00:02<00:00, 5.52it/s]" + } + }, + "c29a706a20974163955852e2bfbbd944": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "9edcaffa41d34671a757aa08d6a153eb": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "26f23f5ad63d4be891e4b8fec7b66b30": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "eb4a50e33c7a479dad1b33f6c7352b36": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "e1641e3108894fbd942a616bde78f0ae": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "9629672ccc73400ea870cd4e88c62de9": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "db226f0d604141bb9c6d2659eb0bba4c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "6a0dd40eb0fe4bcca3ae88ccee4ccc03": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_39a497161e9a4eb9a1064342f4d99686", + "IPY_MODEL_53643228ec28435181bb2bd67f849a98", + "IPY_MODEL_0fd09068f4004cf184f0f859bbda0b66" + ], + "layout": "IPY_MODEL_647fc7857dd84f548d44a65066dbfa86" + } + }, + "39a497161e9a4eb9a1064342f4d99686": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_9ea695595815424bbdec92a87b8a6508", + "placeholder": "​", + "style": "IPY_MODEL_0878ad3c9a674b2f9b1b2dc3f6a67bde", + "value": "Validation DataLoader 0: 100%" + } + }, + "53643228ec28435181bb2bd67f849a98": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_152e7c03d69a4f4798003c9cdc9f64f7", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_8fbd92bd0f4942de90940bf6ddc10c59", + "value": 1 + } + }, + "0fd09068f4004cf184f0f859bbda0b66": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_a309ba014dfe4b16aee47747256e5347", + "placeholder": "​", + "style": "IPY_MODEL_81dc1b0fe839405eaa1217c0b9083ef5", + "value": " 13/13 [00:02<00:00, 5.54it/s]" + } + }, + "647fc7857dd84f548d44a65066dbfa86": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "9ea695595815424bbdec92a87b8a6508": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0878ad3c9a674b2f9b1b2dc3f6a67bde": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "152e7c03d69a4f4798003c9cdc9f64f7": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "8fbd92bd0f4942de90940bf6ddc10c59": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "a309ba014dfe4b16aee47747256e5347": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "81dc1b0fe839405eaa1217c0b9083ef5": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "e894fff92fbd448994b4bb296814e1f1": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_15434a53389c47ab930abb8fcde214bc", + "IPY_MODEL_513fb490d3de461aa7b5fb8cd213e31d", + "IPY_MODEL_b910f76621944127a96a95023d29d7c1" + ], + "layout": "IPY_MODEL_2784203429df41e785126080095acf97" + } + }, + "15434a53389c47ab930abb8fcde214bc": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_576aa5f0d2d446ae93df2cf8f753425c", + "placeholder": "​", + "style": "IPY_MODEL_55e1a49481ee4357a9ff66ac3dab80bf", + "value": "Validation DataLoader 0: 100%" + } + }, + "513fb490d3de461aa7b5fb8cd213e31d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_e8fab704afbe45daa4fe3f659276155b", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_2854015313334722977999d14ac9d723", + "value": 1 + } + }, + "b910f76621944127a96a95023d29d7c1": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_a40db870e12b43b5aef6f9e2a264d89f", + "placeholder": "​", + "style": "IPY_MODEL_021479f2423343cb9de23ae7c7d99bb3", + "value": " 13/13 [00:02<00:00, 5.53it/s]" + } + }, + "2784203429df41e785126080095acf97": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "576aa5f0d2d446ae93df2cf8f753425c": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "55e1a49481ee4357a9ff66ac3dab80bf": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "e8fab704afbe45daa4fe3f659276155b": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2854015313334722977999d14ac9d723": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "a40db870e12b43b5aef6f9e2a264d89f": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "021479f2423343cb9de23ae7c7d99bb3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "200791aa486245e9959bf68f582d9ce9": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_cdd8a9c719fb4fe39d69d178a6c188d3", + "IPY_MODEL_9266ca98507447008f6d557a084076b1", + "IPY_MODEL_17d337236b9b40a7976bc4e9fd715955" + ], + "layout": "IPY_MODEL_57aa4e674668428381ca2260f7eccb3e" + } + }, + "cdd8a9c719fb4fe39d69d178a6c188d3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_3f84d520bca549af939ce6c060abc7d2", + "placeholder": "​", + "style": "IPY_MODEL_414e90bddb9041f58febf2df00576a79", + "value": "Validation DataLoader 0: 100%" + } + }, + "9266ca98507447008f6d557a084076b1": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_f1948a7572bc4e6183c5e6314735f1bd", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_eb4f5779e8d44b04ae511ac8aff9cd03", + "value": 1 + } + }, + "17d337236b9b40a7976bc4e9fd715955": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_c92db1ae8640446bab2a3239c00fda21", + "placeholder": "​", + "style": "IPY_MODEL_d592157207044945a7f4790e23fd2277", + "value": " 13/13 [00:02<00:00, 5.50it/s]" + } + }, + "57aa4e674668428381ca2260f7eccb3e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "3f84d520bca549af939ce6c060abc7d2": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "414e90bddb9041f58febf2df00576a79": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "f1948a7572bc4e6183c5e6314735f1bd": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "eb4f5779e8d44b04ae511ac8aff9cd03": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "c92db1ae8640446bab2a3239c00fda21": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d592157207044945a7f4790e23fd2277": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "7ebc92a4d4994969a7a6f2b28941f1c9": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_0e0f6119175a44819c2954b8bcd1a897", + "IPY_MODEL_12b40a0544884bccb1c919271fcf92d7", + "IPY_MODEL_436011ed37e045a9991e6d24c2fceafe" + ], + "layout": "IPY_MODEL_9fdd8d3dbf654b68a4a5a47debd5667a" + } + }, + "0e0f6119175a44819c2954b8bcd1a897": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_1baebf55374d44d68f99eb9c1b875aa0", + "placeholder": "​", + "style": "IPY_MODEL_0688e72473654c7e8528500561cb4318", + "value": "Validation DataLoader 0: 100%" + } + }, + "12b40a0544884bccb1c919271fcf92d7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_503d703bf0a84570adc44e470aa72b06", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_c03e6625557f455abfcb1966e4dccdf9", + "value": 1 + } + }, + "436011ed37e045a9991e6d24c2fceafe": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_974554acc93e4522a825ccde2f5bed22", + "placeholder": "​", + "style": "IPY_MODEL_40a912467c4e41b0b8c53d30c81ba870", + "value": " 13/13 [00:02<00:00, 5.56it/s]" + } + }, + "9fdd8d3dbf654b68a4a5a47debd5667a": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "1baebf55374d44d68f99eb9c1b875aa0": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0688e72473654c7e8528500561cb4318": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "503d703bf0a84570adc44e470aa72b06": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "c03e6625557f455abfcb1966e4dccdf9": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "974554acc93e4522a825ccde2f5bed22": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "40a912467c4e41b0b8c53d30c81ba870": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "82f9fde8e73c44688ffd9f61a96ac0c6": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_4fd370a1694c44a086fb16ce903894da", + "IPY_MODEL_1b8a79b10ade4420b4088cae9dd4b833", + "IPY_MODEL_a3084b8cacae4ad2886b7cad88e63e99" + ], + "layout": "IPY_MODEL_531b027874d34915a35ab7ec39a9e24e" + } + }, + "4fd370a1694c44a086fb16ce903894da": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_41eb64c2c4b54c2f8ac1a4226dda614c", + "placeholder": "​", + "style": "IPY_MODEL_8d74d5789b7340a59c4833c542a1aed7", + "value": "Validation DataLoader 0: 100%" + } + }, + "1b8a79b10ade4420b4088cae9dd4b833": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_25a6b83c22c2488ab6967099bc425ca2", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_cdfe2a74dc094513a703eb02f68ca68b", + "value": 1 + } + }, + "a3084b8cacae4ad2886b7cad88e63e99": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_af6501adda0742ec8c3937a577a0a5cb", + "placeholder": "​", + "style": "IPY_MODEL_441d345a8d19489086662601a02ab827", + "value": " 13/13 [00:02<00:00, 5.57it/s]" + } + }, + "531b027874d34915a35ab7ec39a9e24e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "41eb64c2c4b54c2f8ac1a4226dda614c": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "8d74d5789b7340a59c4833c542a1aed7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "25a6b83c22c2488ab6967099bc425ca2": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "cdfe2a74dc094513a703eb02f68ca68b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "af6501adda0742ec8c3937a577a0a5cb": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "441d345a8d19489086662601a02ab827": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "56488f080ab04fa19d320b80ef6e88f3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_089f9f6d940b4b48bc6a99c276eb3a09", + "IPY_MODEL_f10d75977d1a4d1996c48dd09da52e93", + "IPY_MODEL_72d94584521a418b924cd6f2ad500093" + ], + "layout": "IPY_MODEL_de3c1dc8ed2a4148a4bfff085ebc9bcf" + } + }, + "089f9f6d940b4b48bc6a99c276eb3a09": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_d274082f739c42289a3235b6b943359a", + "placeholder": "​", + "style": "IPY_MODEL_8dde76f3c829468092834ab1bdcd4ecc", + "value": "Validation DataLoader 0: 100%" + } + }, + "f10d75977d1a4d1996c48dd09da52e93": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_09238c3f15874fd58c73372b87618dc6", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_a993178e77d348f3a1185f66ab42b4c0", + "value": 1 + } + }, + "72d94584521a418b924cd6f2ad500093": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_2a98719b464a464db507c55dcd0eb389", + "placeholder": "​", + "style": "IPY_MODEL_3527934ef1544d88a061e1a7bb8abb7e", + "value": " 13/13 [00:02<00:00, 5.51it/s]" + } + }, + "de3c1dc8ed2a4148a4bfff085ebc9bcf": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "d274082f739c42289a3235b6b943359a": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "8dde76f3c829468092834ab1bdcd4ecc": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "09238c3f15874fd58c73372b87618dc6": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a993178e77d348f3a1185f66ab42b4c0": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "2a98719b464a464db507c55dcd0eb389": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "3527934ef1544d88a061e1a7bb8abb7e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "298dbb201cfe4f4ab9aa805cbfd493de": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_b0cc7cb3c7714a478dcea813698d272a", + "IPY_MODEL_6105c6294a7c4f3cb59a398e803e775d", + "IPY_MODEL_84097fbc88c34fd1820fe1ec35c066aa" + ], + "layout": "IPY_MODEL_462f681d279246ae9e511460b48eba17" + } + }, + "b0cc7cb3c7714a478dcea813698d272a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_0c05dbbd33ed4a9a885720fde7f5eabb", + "placeholder": "​", + "style": "IPY_MODEL_af3deec6f7474c3d99c9fed62eef0e75", + "value": "Validation DataLoader 0: 100%" + } + }, + "6105c6294a7c4f3cb59a398e803e775d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_cddf178a9d71489395b3cf12637a3675", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_cad452aa099d4142be0bf5808726a26e", + "value": 1 + } + }, + "84097fbc88c34fd1820fe1ec35c066aa": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_9add1e4cd46241969b28586e859ea371", + "placeholder": "​", + "style": "IPY_MODEL_f24c563b162b45caabe19ca65282aeec", + "value": " 13/13 [00:02<00:00, 5.49it/s]" + } + }, + "462f681d279246ae9e511460b48eba17": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "0c05dbbd33ed4a9a885720fde7f5eabb": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "af3deec6f7474c3d99c9fed62eef0e75": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "cddf178a9d71489395b3cf12637a3675": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "cad452aa099d4142be0bf5808726a26e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "9add1e4cd46241969b28586e859ea371": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f24c563b162b45caabe19ca65282aeec": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "02acd44c04de41bdb25ce48c4b69c384": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_4a9f5728326149e2aa1fd8d03f5dee49", + "IPY_MODEL_e11991986b964559990ccc684c78e5fb", + "IPY_MODEL_72da490ff1e3445697d2399240fa0d8e" + ], + "layout": "IPY_MODEL_4fb110236a2f4d68a08513740eba5c9f" + } + }, + "4a9f5728326149e2aa1fd8d03f5dee49": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_239d3b6973484a1ebbd0e202802aba10", + "placeholder": "​", + "style": "IPY_MODEL_9f479a50f2c7465293bbcdfa2b64a310", + "value": "Validation DataLoader 0: 100%" + } + }, + "e11991986b964559990ccc684c78e5fb": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_ea705743b7f546858c65b564d042ab69", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_083b011859a54e2893bb98b1602b0523", + "value": 1 + } + }, + "72da490ff1e3445697d2399240fa0d8e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_93c8458618fa439184ccdb9a45d88051", + "placeholder": "​", + "style": "IPY_MODEL_2306cca1048d4549879013e4f8b28b02", + "value": " 13/13 [00:02<00:00, 5.59it/s]" + } + }, + "4fb110236a2f4d68a08513740eba5c9f": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "239d3b6973484a1ebbd0e202802aba10": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "9f479a50f2c7465293bbcdfa2b64a310": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "ea705743b7f546858c65b564d042ab69": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "083b011859a54e2893bb98b1602b0523": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "93c8458618fa439184ccdb9a45d88051": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2306cca1048d4549879013e4f8b28b02": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "03ea720d446f44eea0c1da3cf53fab7c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_51f1963c601042a8a136c4b0ead0a16f", + "IPY_MODEL_f1d8ee5b62804b1c8c164171d141b3df", + "IPY_MODEL_87320552e2a44d67a33bda65dcb987f7" + ], + "layout": "IPY_MODEL_cc9ba0a2d19844c88ea7016e84b85c8e" + } + }, + "51f1963c601042a8a136c4b0ead0a16f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_99c5887e1c0a4635b3d3305d54c18aee", + "placeholder": "​", + "style": "IPY_MODEL_d02440b4f20c433a85c931d4cd665052", + "value": "Validation DataLoader 0: 100%" + } + }, + "f1d8ee5b62804b1c8c164171d141b3df": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_ad625d79e3af481d9678accf26f6b2f1", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_8868d6913f28445c9414414a686264bf", + "value": 1 + } + }, + "87320552e2a44d67a33bda65dcb987f7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_9ab69bee31d24e829af161f76a3d82f5", + "placeholder": "​", + "style": "IPY_MODEL_b6f0a1622e0d4413bc0050554b9fabcf", + "value": " 13/13 [00:02<00:00, 5.57it/s]" + } + }, + "cc9ba0a2d19844c88ea7016e84b85c8e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "99c5887e1c0a4635b3d3305d54c18aee": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d02440b4f20c433a85c931d4cd665052": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "ad625d79e3af481d9678accf26f6b2f1": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "8868d6913f28445c9414414a686264bf": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "9ab69bee31d24e829af161f76a3d82f5": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b6f0a1622e0d4413bc0050554b9fabcf": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "826e231b77854e02b77c596ce9bcdb97": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_c93e0a88805949f091bb27a8549455ff", + "IPY_MODEL_a5e3e3d8b3ab4933ab419fafaf506799", + "IPY_MODEL_a7308155008e4ec3b6b763196164221e" + ], + "layout": "IPY_MODEL_3ad768bbf75040a381cfb74691354c62" + } + }, + "c93e0a88805949f091bb27a8549455ff": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_cb3583f5fa54414e8d10d7ef2eb30957", + "placeholder": "​", + "style": "IPY_MODEL_afcbcd9deef44329ba3a846fe3197789", + "value": "Validation DataLoader 0: 100%" + } + }, + "a5e3e3d8b3ab4933ab419fafaf506799": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_7a25920c204e407ea7f26597f22bd638", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_c2b890afc07c4061bca563f475394ee3", + "value": 1 + } + }, + "a7308155008e4ec3b6b763196164221e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_f81cde180b3e4f13bd1deece9d4abebc", + "placeholder": "​", + "style": "IPY_MODEL_7d9c99c7c4be403e851a46a52d61e70e", + "value": " 13/13 [00:02<00:00, 5.56it/s]" + } + }, + "3ad768bbf75040a381cfb74691354c62": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "cb3583f5fa54414e8d10d7ef2eb30957": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "afcbcd9deef44329ba3a846fe3197789": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "7a25920c204e407ea7f26597f22bd638": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "c2b890afc07c4061bca563f475394ee3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "f81cde180b3e4f13bd1deece9d4abebc": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "7d9c99c7c4be403e851a46a52d61e70e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "d3a7f6f1f0ac488f97248f79fd326285": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_030df4bbf23b444b85f7c374984f2b6e", + "IPY_MODEL_25ae9fc0594243fdb24b2299277ffdfb", + "IPY_MODEL_cee18025cb144a888ffa782763dbc2f9" + ], + "layout": "IPY_MODEL_e31d0fd600be4d4faf2c6799f1f87190" + } + }, + "030df4bbf23b444b85f7c374984f2b6e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_3c30ee6e78564245930d64843578c96f", + "placeholder": "​", + "style": "IPY_MODEL_e24c7869e9384440b43afa2fea337c0c", + "value": "Validation DataLoader 0: 100%" + } + }, + "25ae9fc0594243fdb24b2299277ffdfb": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_b4afb7c591f3412997b2cdb68cd04b9b", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_b2bcb570a5ec4a0994a1c6048b75833e", + "value": 1 + } + }, + "cee18025cb144a888ffa782763dbc2f9": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_6935a7cd7d9d44888fdf5b8ef5d3dbab", + "placeholder": "​", + "style": "IPY_MODEL_f4ee8801403a47d8abc0d9a1c8f58f8a", + "value": " 13/13 [00:02<00:00, 5.54it/s]" + } + }, + "e31d0fd600be4d4faf2c6799f1f87190": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "3c30ee6e78564245930d64843578c96f": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "e24c7869e9384440b43afa2fea337c0c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "b4afb7c591f3412997b2cdb68cd04b9b": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b2bcb570a5ec4a0994a1c6048b75833e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "6935a7cd7d9d44888fdf5b8ef5d3dbab": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f4ee8801403a47d8abc0d9a1c8f58f8a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "d17cb501d56047f8bb1d750b989b8be7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_5c30d71d8e3e4e72a7ad259f443d4cf0", + "IPY_MODEL_9e5956e6e1a04a68835df8d74428d51a", + "IPY_MODEL_cdac51d95c0249b58909fe8449427f4e" + ], + "layout": "IPY_MODEL_f360b7b1d69444e18478a5ad43a5c101" + } + }, + "5c30d71d8e3e4e72a7ad259f443d4cf0": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_ed4c7611a3d14abd8230576a24e057f5", + "placeholder": "​", + "style": "IPY_MODEL_a84c2abfce7946d098f73c774841cd10", + "value": "Validation DataLoader 0: 100%" + } + }, + "9e5956e6e1a04a68835df8d74428d51a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_87d87c6c891c4068898119e5068fd431", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_431e30872fb94f259e8035f5263a9f6e", + "value": 1 + } + }, + "cdac51d95c0249b58909fe8449427f4e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_60fc51711cef49f28f4da4c776c97a67", + "placeholder": "​", + "style": "IPY_MODEL_d4bb4a9b47194b5bba84cc1ea81538f8", + "value": " 13/13 [00:02<00:00, 5.55it/s]" + } + }, + "f360b7b1d69444e18478a5ad43a5c101": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "ed4c7611a3d14abd8230576a24e057f5": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a84c2abfce7946d098f73c774841cd10": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "87d87c6c891c4068898119e5068fd431": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "431e30872fb94f259e8035f5263a9f6e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "60fc51711cef49f28f4da4c776c97a67": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d4bb4a9b47194b5bba84cc1ea81538f8": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "a709560ab74b4f639a7d40e0f067ffab": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_3af08dee3d1d4ae1bbbaa09c77ecdae4", + "IPY_MODEL_18c7ac3f4441421aad9583bb28c85df5", + "IPY_MODEL_0b54b618fbc449fda55e3fbcd47436af" + ], + "layout": "IPY_MODEL_a1d48befdddb41aea6514cdbe8ab0daf" + } + }, + "3af08dee3d1d4ae1bbbaa09c77ecdae4": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_5fc6e338c2be48518413d8f02236d9e5", + "placeholder": "​", + "style": "IPY_MODEL_a1b395ae499d4d4db70fc7f2be68d810", + "value": "Validation DataLoader 0: 100%" + } + }, + "18c7ac3f4441421aad9583bb28c85df5": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_f6a7afe78782496cb3814ed9f0e7a765", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_0f4c2c5be5344ba38673cfda3b2395f9", + "value": 1 + } + }, + "0b54b618fbc449fda55e3fbcd47436af": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_3d23d428820e4e4a8571c09fa6f993c9", + "placeholder": "​", + "style": "IPY_MODEL_1fd0eb88f69a4ce6aa40407bc69519d8", + "value": " 13/13 [00:02<00:00, 5.55it/s]" + } + }, + "a1d48befdddb41aea6514cdbe8ab0daf": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "5fc6e338c2be48518413d8f02236d9e5": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a1b395ae499d4d4db70fc7f2be68d810": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "f6a7afe78782496cb3814ed9f0e7a765": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0f4c2c5be5344ba38673cfda3b2395f9": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "3d23d428820e4e4a8571c09fa6f993c9": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "1fd0eb88f69a4ce6aa40407bc69519d8": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "2e0c2906cbe94c12a86024755ecde4c4": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_aed3af898c364b388a39b08119d5e1aa", + "IPY_MODEL_104c2289880c4f589253c323e9cfaa73", + "IPY_MODEL_8d2a61c2cdfd49a9a8b37352b777ccf3" + ], + "layout": "IPY_MODEL_3646cb1de22d43d0a4ee817df498024c" + } + }, + "aed3af898c364b388a39b08119d5e1aa": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_bc16b3d9ea784b7ba5efb2b01d452897", + "placeholder": "​", + "style": "IPY_MODEL_a00010bedab74cc48132b39b1842d2c8", + "value": "Validation DataLoader 0: 100%" + } + }, + "104c2289880c4f589253c323e9cfaa73": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_de2e005c5ab746f197898ead1556286e", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_12a6856b829440ce8281ccd2ac69289c", + "value": 1 + } + }, + "8d2a61c2cdfd49a9a8b37352b777ccf3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_fec3540506fe4544a90f275cbc2dd179", + "placeholder": "​", + "style": "IPY_MODEL_e7343916ae504440b4a44b4f0ae2018e", + "value": " 13/13 [00:02<00:00, 5.52it/s]" + } + }, + "3646cb1de22d43d0a4ee817df498024c": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "bc16b3d9ea784b7ba5efb2b01d452897": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a00010bedab74cc48132b39b1842d2c8": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "de2e005c5ab746f197898ead1556286e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "12a6856b829440ce8281ccd2ac69289c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "fec3540506fe4544a90f275cbc2dd179": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "e7343916ae504440b4a44b4f0ae2018e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "5d9bb55ab831407abb1f3ed1ed2805c9": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_f836ca380fce45d3961884d3138433e0", + "IPY_MODEL_81c50715f2c943c78ce35cc44c039f02", + "IPY_MODEL_22a84a11b27043afa680ee50f649df36" + ], + "layout": "IPY_MODEL_53be131c4b4046a2a905471c1b25ce6f" + } + }, + "f836ca380fce45d3961884d3138433e0": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_c2afa106783449ba9d82ca6380ba2bc4", + "placeholder": "​", + "style": "IPY_MODEL_6961e04e5b3f480a935d6bd4a533c564", + "value": "Validation DataLoader 0: 100%" + } + }, + "81c50715f2c943c78ce35cc44c039f02": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_38955bb2a1f549e7909f6abbdd4ba399", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_6a9b6b30768b4d98a74a630591405465", + "value": 1 + } + }, + "22a84a11b27043afa680ee50f649df36": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_1e8a7e11f92e44998ba3fc42abf912a2", + "placeholder": "​", + "style": "IPY_MODEL_1e8e0f9ab21b41a7b4b1d948ee34b1df", + "value": " 13/13 [00:02<00:00, 5.53it/s]" + } + }, + "53be131c4b4046a2a905471c1b25ce6f": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "c2afa106783449ba9d82ca6380ba2bc4": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "6961e04e5b3f480a935d6bd4a533c564": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "38955bb2a1f549e7909f6abbdd4ba399": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "6a9b6b30768b4d98a74a630591405465": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "1e8a7e11f92e44998ba3fc42abf912a2": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "1e8e0f9ab21b41a7b4b1d948ee34b1df": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "d445b7012e9043cabe4bfcf90d8ec3c6": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_f1bf67cab3db4f8e98f30ab5c5a60330", + "IPY_MODEL_62aa5c76bb534d38bb3336506691d69e", + "IPY_MODEL_589b8acaa6a146798e831312bf88c3c8" + ], + "layout": "IPY_MODEL_484c8aee36614cc582b3c73dce581a5b" + } + }, + "f1bf67cab3db4f8e98f30ab5c5a60330": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_131a6adc9c7f4b2d9025b0cd83972bb5", + "placeholder": "​", + "style": "IPY_MODEL_3432d43f50d745e5b854086689d2bb93", + "value": "Validation DataLoader 0: 100%" + } + }, + "62aa5c76bb534d38bb3336506691d69e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_6b72512951ca48b7bfb3c7f5a31f54dd", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_a2f2fdd16abe4cc69dae00b7befb9048", + "value": 1 + } + }, + "589b8acaa6a146798e831312bf88c3c8": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_e77dfdfa023f414b8e1830aae621a4f7", + "placeholder": "​", + "style": "IPY_MODEL_98361a7cd53848b48563c30ee63c36a1", + "value": " 13/13 [00:02<00:00, 5.56it/s]" + } + }, + "484c8aee36614cc582b3c73dce581a5b": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "131a6adc9c7f4b2d9025b0cd83972bb5": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "3432d43f50d745e5b854086689d2bb93": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "6b72512951ca48b7bfb3c7f5a31f54dd": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a2f2fdd16abe4cc69dae00b7befb9048": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "e77dfdfa023f414b8e1830aae621a4f7": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "98361a7cd53848b48563c30ee63c36a1": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "060211284dbb421d8ab0e58860435930": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_2aeb3f5451e042dab298612c44bbd724", + "IPY_MODEL_b2d74c0b591649e19a1725487ac59fca", + "IPY_MODEL_8f6c45e89ea3482bb099540eab6333a4" + ], + "layout": "IPY_MODEL_1f47077c9e7a42308b90c1e7f0ce9688" + } + }, + "2aeb3f5451e042dab298612c44bbd724": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_62e390f0161640d59e5b1dfd9a05306c", + "placeholder": "​", + "style": "IPY_MODEL_0c8657c0b8224617b9977427b8cb1914", + "value": "Validation DataLoader 0: 100%" + } + }, + "b2d74c0b591649e19a1725487ac59fca": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_b14503f493fa47c7811b2c29030a8716", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_53389b374398410ab7b20b8ef36a7b0f", + "value": 1 + } + }, + "8f6c45e89ea3482bb099540eab6333a4": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_b5b9cbcd69024dd4aba0d593861c1a5e", + "placeholder": "​", + "style": "IPY_MODEL_d54e70634f5f42cfb4d46bd6355e89ea", + "value": " 13/13 [00:02<00:00, 5.54it/s]" + } + }, + "1f47077c9e7a42308b90c1e7f0ce9688": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "62e390f0161640d59e5b1dfd9a05306c": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0c8657c0b8224617b9977427b8cb1914": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "b14503f493fa47c7811b2c29030a8716": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "53389b374398410ab7b20b8ef36a7b0f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "b5b9cbcd69024dd4aba0d593861c1a5e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d54e70634f5f42cfb4d46bd6355e89ea": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "d0716808064243b9bd195e7e54e703d7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_913671f75b404c7a96a71dfd27e06aa5", + "IPY_MODEL_58d863a4eb0d475ab76262b9f23410ec", + "IPY_MODEL_42209063098d4aec88e5fbae8f983892" + ], + "layout": "IPY_MODEL_10cd39466ca042a7933040dbb2b7e126" + } + }, + "913671f75b404c7a96a71dfd27e06aa5": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_1f845977bc8b44b38d81ecc818f050b2", + "placeholder": "​", + "style": "IPY_MODEL_50c75c6e4a7348ed8743d5c9dd4e8e4d", + "value": "Validation DataLoader 0: 100%" + } + }, + "58d863a4eb0d475ab76262b9f23410ec": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_cd9d074447ea436581100116106d7700", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_8dbc639bbd4e458d935a4b0754d3e32a", + "value": 1 + } + }, + "42209063098d4aec88e5fbae8f983892": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_aa8f646abf024fe3a35e747f2883c6be", + "placeholder": "​", + "style": "IPY_MODEL_a69a5e83bda04d0cb91787bed9f586b6", + "value": " 13/13 [00:02<00:00, 5.43it/s]" + } + }, + "10cd39466ca042a7933040dbb2b7e126": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "1f845977bc8b44b38d81ecc818f050b2": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "50c75c6e4a7348ed8743d5c9dd4e8e4d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "cd9d074447ea436581100116106d7700": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "8dbc639bbd4e458d935a4b0754d3e32a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "aa8f646abf024fe3a35e747f2883c6be": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a69a5e83bda04d0cb91787bed9f586b6": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "2c3822d8b1ae4d0f8303e6e05c05ac10": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_05bad2d2d8724392b4ca0d14c0c27044", + "IPY_MODEL_1f6300a13b8f4909b0e8feb6c3f846bb", + "IPY_MODEL_a5e92ea88bd64e0f9b1049c9bdb681a5" + ], + "layout": "IPY_MODEL_82fe926b7e1c4afc83f1644eda8c94f7" + } + }, + "05bad2d2d8724392b4ca0d14c0c27044": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_507b65f3d73a4698bf90459e560abe84", + "placeholder": "​", + "style": "IPY_MODEL_241cade9387147d88b4876ccc3ad59a2", + "value": "Validation DataLoader 0: 100%" + } + }, + "1f6300a13b8f4909b0e8feb6c3f846bb": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_e78fbbd19ad3455c98ab3d40839f9d9d", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_0b3d98f76afd470db9283b321b1aedb7", + "value": 1 + } + }, + "a5e92ea88bd64e0f9b1049c9bdb681a5": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_ab5ba239cfea472f916481098145615f", + "placeholder": "​", + "style": "IPY_MODEL_433c8e9176e64373860fbd7a4142c79b", + "value": " 13/13 [00:02<00:00, 5.53it/s]" + } + }, + "82fe926b7e1c4afc83f1644eda8c94f7": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "507b65f3d73a4698bf90459e560abe84": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "241cade9387147d88b4876ccc3ad59a2": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "e78fbbd19ad3455c98ab3d40839f9d9d": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0b3d98f76afd470db9283b321b1aedb7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "ab5ba239cfea472f916481098145615f": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "433c8e9176e64373860fbd7a4142c79b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "6468597829474d0faeaf08b194c143e8": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_13d3a70f82b74e1db44814dec1d22b91", + "IPY_MODEL_cda30d0c79af4263958cb63869544bb5", + "IPY_MODEL_10a5eaa3cba24c1e812fbb3c2219390f" + ], + "layout": "IPY_MODEL_20d3f1e07b714ed19f9f1eb441c8d3fc" + } + }, + "13d3a70f82b74e1db44814dec1d22b91": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_3f7ec3c9e0e54b2fb41ccb6303be84e6", + "placeholder": "​", + "style": "IPY_MODEL_d428cf7ecfac4b71934d2ec3ddf4d6f3", + "value": "Validation DataLoader 0: 100%" + } + }, + "cda30d0c79af4263958cb63869544bb5": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_aa202f0bf71e41b88285103075036012", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_96526c71da384fb0a019b3e0ca325592", + "value": 1 + } + }, + "10a5eaa3cba24c1e812fbb3c2219390f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_3ad532d9c5064c6eb040a620855a5aea", + "placeholder": "​", + "style": "IPY_MODEL_b1b5086f271f4237b1a50d3367d7859b", + "value": " 13/13 [00:02<00:00, 5.57it/s]" + } + }, + "20d3f1e07b714ed19f9f1eb441c8d3fc": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "3f7ec3c9e0e54b2fb41ccb6303be84e6": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d428cf7ecfac4b71934d2ec3ddf4d6f3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "aa202f0bf71e41b88285103075036012": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "96526c71da384fb0a019b3e0ca325592": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "3ad532d9c5064c6eb040a620855a5aea": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b1b5086f271f4237b1a50d3367d7859b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "d54d32dc502b4ad485d4aa92d5c24491": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_3567f3bce0bd4c6dad87e1ef62d5ff51", + "IPY_MODEL_9e0c3cb9163c43f9bd9a83b8ea2604fc", + "IPY_MODEL_d6e7387c084545799c97602e0da79dc2" + ], + "layout": "IPY_MODEL_32ca9300ce90433ea3de7d54b9ca5dce" + } + }, + "3567f3bce0bd4c6dad87e1ef62d5ff51": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_f41016e9547047e9a81a6f0dffde2259", + "placeholder": "​", + "style": "IPY_MODEL_5d4dc7bc69b24af095a815a9ff8f3a98", + "value": "Validation DataLoader 0: 100%" + } + }, + "9e0c3cb9163c43f9bd9a83b8ea2604fc": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_2971a45708f7476bb422b4a8a94c9f86", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_712674a07b5643e483112b208090f5a9", + "value": 1 + } + }, + "d6e7387c084545799c97602e0da79dc2": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_b9e7e85d15bf4bfb9ea2243033580268", + "placeholder": "​", + "style": "IPY_MODEL_a78c409649114264848f16a0f73bba0e", + "value": " 13/13 [00:02<00:00, 5.57it/s]" + } + }, + "32ca9300ce90433ea3de7d54b9ca5dce": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "f41016e9547047e9a81a6f0dffde2259": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "5d4dc7bc69b24af095a815a9ff8f3a98": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "2971a45708f7476bb422b4a8a94c9f86": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "712674a07b5643e483112b208090f5a9": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "b9e7e85d15bf4bfb9ea2243033580268": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a78c409649114264848f16a0f73bba0e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "56f9cba486c64f6791852410f9106861": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_c47c6aac7048433b9fe87e74e6ad8ed5", + "IPY_MODEL_b7a85d07974546c097ce9d154aaf5420", + "IPY_MODEL_ec59d35d3dbf4025a60c43991da557aa" + ], + "layout": "IPY_MODEL_aec4f43abeb1495999f4457ea5dfed43" + } + }, + "c47c6aac7048433b9fe87e74e6ad8ed5": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_e748adde554a4465ad866cf6e636e0c4", + "placeholder": "​", + "style": "IPY_MODEL_4cd0cb7012c44ff2a3fac72a878fe14c", + "value": "Validation DataLoader 0: 100%" + } + }, + "b7a85d07974546c097ce9d154aaf5420": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_6818fd27680e4e73a5bb2b28aeddfa14", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_f77ddf800ac54d26befdd5ac359d2219", + "value": 1 + } + }, + "ec59d35d3dbf4025a60c43991da557aa": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_a0022452da6b45839db1d40955318175", + "placeholder": "​", + "style": "IPY_MODEL_5677448890a04d11bf398b42f00d9054", + "value": " 13/13 [00:02<00:00, 5.51it/s]" + } + }, + "aec4f43abeb1495999f4457ea5dfed43": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "e748adde554a4465ad866cf6e636e0c4": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "4cd0cb7012c44ff2a3fac72a878fe14c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "6818fd27680e4e73a5bb2b28aeddfa14": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f77ddf800ac54d26befdd5ac359d2219": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "a0022452da6b45839db1d40955318175": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "5677448890a04d11bf398b42f00d9054": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "306b49bb3066474c94649b3268bf0dde": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_0e7ce7fcd14d492bb6c291a2d0967d67", + "IPY_MODEL_d5d1868dfbb5422aa772757280743a65", + "IPY_MODEL_fda0813d95a64d72a4a65af2f89abb3d" + ], + "layout": "IPY_MODEL_725172bb9b9b40f4903efd7b2868d583" + } + }, + "0e7ce7fcd14d492bb6c291a2d0967d67": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_31b67d512ddd4b1ea5cbc19066d63f7c", + "placeholder": "​", + "style": "IPY_MODEL_d8b3592e415447d9ad747069ad5ad43b", + "value": "Validation DataLoader 0: 100%" + } + }, + "d5d1868dfbb5422aa772757280743a65": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_396e94547147468cab43f89e16702d4e", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_d84ec0b6a7da423f91882b918bba9c9d", + "value": 1 + } + }, + "fda0813d95a64d72a4a65af2f89abb3d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_b405968ac0774accb8fbbe2a753e094d", + "placeholder": "​", + "style": "IPY_MODEL_9936aa6c2a09413385cc846789711e94", + "value": " 13/13 [00:02<00:00, 5.55it/s]" + } + }, + "725172bb9b9b40f4903efd7b2868d583": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "31b67d512ddd4b1ea5cbc19066d63f7c": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d8b3592e415447d9ad747069ad5ad43b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "396e94547147468cab43f89e16702d4e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d84ec0b6a7da423f91882b918bba9c9d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "b405968ac0774accb8fbbe2a753e094d": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "9936aa6c2a09413385cc846789711e94": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "da1aaad3bbe7438e814ab03c53ae0b79": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_c6b26d9907da48498cf4011453dded8e", + "IPY_MODEL_af1f9405790341229366089c31a8116b", + "IPY_MODEL_53fb69f65e4b43558d74e61eac58ea8c" + ], + "layout": "IPY_MODEL_97d48520ae5c4d7097039b017c281e8a" + } + }, + "c6b26d9907da48498cf4011453dded8e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_511ca9822ec14d64ab743f1c7e40e94b", + "placeholder": "​", + "style": "IPY_MODEL_f6db7218a7c5497a9d836461aa581d0e", + "value": "Validation DataLoader 0: 100%" + } + }, + "af1f9405790341229366089c31a8116b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_129c21f26f8b40c280579567db4e15ed", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_7e4d5d5cf65248af9c0f79bb47cacb37", + "value": 1 + } + }, + "53fb69f65e4b43558d74e61eac58ea8c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_915f3b5bd0da43f6887db287141a729b", + "placeholder": "​", + "style": "IPY_MODEL_c7679644605847888d47c2f1ad7a57bd", + "value": " 13/13 [00:02<00:00, 5.53it/s]" + } + }, + "97d48520ae5c4d7097039b017c281e8a": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "511ca9822ec14d64ab743f1c7e40e94b": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f6db7218a7c5497a9d836461aa581d0e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "129c21f26f8b40c280579567db4e15ed": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "7e4d5d5cf65248af9c0f79bb47cacb37": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "915f3b5bd0da43f6887db287141a729b": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "c7679644605847888d47c2f1ad7a57bd": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "7d6c1f1bfd894aab9a181985e7fa93e7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_2ba7248d4fe04ba6b71958957243fae5", + "IPY_MODEL_3ecd7ca74f9f4d53a17249509bce2ca8", + "IPY_MODEL_9581cb779d34417f84e15ea3d8303445" + ], + "layout": "IPY_MODEL_3e5745523e9a430b9ecc66cfff12eb42" + } + }, + "2ba7248d4fe04ba6b71958957243fae5": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_8a17578cb59c4ed3a281c9049776d1c0", + "placeholder": "​", + "style": "IPY_MODEL_0f909c19eb364ba7ab27af66480285e4", + "value": "Validation DataLoader 0: 100%" + } + }, + "3ecd7ca74f9f4d53a17249509bce2ca8": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_6d5eefd4197a44139f363cf11065f3d1", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_e0f92b21d6cb4e0aab9ce6b9e91bbcfd", + "value": 1 + } + }, + "9581cb779d34417f84e15ea3d8303445": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_477a4c9f88eb4a69a6725e4d7a71294f", + "placeholder": "​", + "style": "IPY_MODEL_a38a7122f9f94f68a8bcf9e09175c2b2", + "value": " 13/13 [00:02<00:00, 5.49it/s]" + } + }, + "3e5745523e9a430b9ecc66cfff12eb42": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "8a17578cb59c4ed3a281c9049776d1c0": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0f909c19eb364ba7ab27af66480285e4": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "6d5eefd4197a44139f363cf11065f3d1": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "e0f92b21d6cb4e0aab9ce6b9e91bbcfd": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "477a4c9f88eb4a69a6725e4d7a71294f": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a38a7122f9f94f68a8bcf9e09175c2b2": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "2891f53afabe433a9338f9c7ae4fbec0": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_64bcdc8a11de48cbbe3c5e7e8e4380a9", + "IPY_MODEL_c2eb6f3cae7947c0b845b569d575c022", + "IPY_MODEL_683fb253783f495bbf5f29fb7a5521fe" + ], + "layout": "IPY_MODEL_00047c33fb154a18b2446cb2efe25a48" + } + }, + "64bcdc8a11de48cbbe3c5e7e8e4380a9": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_92fff96237f94c64a796b0ee5a893bec", + "placeholder": "​", + "style": "IPY_MODEL_6078cc45a6b44204874a69989637e032", + "value": "Validation DataLoader 0: 100%" + } + }, + "c2eb6f3cae7947c0b845b569d575c022": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_b4ea2c62aa6146c19e1d32d405eca77a", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_0c3ba1d0cd3049f1b88c974b84e0e0bb", + "value": 1 + } + }, + "683fb253783f495bbf5f29fb7a5521fe": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_45741a96a15f42beade259842516aada", + "placeholder": "​", + "style": "IPY_MODEL_805c0f49303c498bab1826b7101736ea", + "value": " 13/13 [00:02<00:00, 5.52it/s]" + } + }, + "00047c33fb154a18b2446cb2efe25a48": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "92fff96237f94c64a796b0ee5a893bec": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "6078cc45a6b44204874a69989637e032": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "b4ea2c62aa6146c19e1d32d405eca77a": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0c3ba1d0cd3049f1b88c974b84e0e0bb": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "45741a96a15f42beade259842516aada": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "805c0f49303c498bab1826b7101736ea": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "9d5db6002a654da2a450f85d55991d2c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_b41d73f4841b4c66a923fdc9f631973f", + "IPY_MODEL_531005f0ee094c51924d5dc6483392fe", + "IPY_MODEL_26d45aac7d4345a29bd39b4036c1ed6d" + ], + "layout": "IPY_MODEL_66fbbeb2631a4944b7447f43b96be0e6" + } + }, + "b41d73f4841b4c66a923fdc9f631973f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_81fda9258def482fb0784903a42e5a41", + "placeholder": "​", + "style": "IPY_MODEL_dea14b46ae734db394379d6489827cf3", + "value": "Validation DataLoader 0: 100%" + } + }, + "531005f0ee094c51924d5dc6483392fe": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_540ce2e2716b4f4ea1a167a3d6259782", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_9361b63c49c64bda853fd5542305af22", + "value": 1 + } + }, + "26d45aac7d4345a29bd39b4036c1ed6d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_10267ef3f1b944928bd7d9586eaad23f", + "placeholder": "​", + "style": "IPY_MODEL_2f5b12c67c984a3791b8e7cd9dead6ca", + "value": " 13/13 [00:02<00:00, 5.55it/s]" + } + }, + "66fbbeb2631a4944b7447f43b96be0e6": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "81fda9258def482fb0784903a42e5a41": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "dea14b46ae734db394379d6489827cf3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "540ce2e2716b4f4ea1a167a3d6259782": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "9361b63c49c64bda853fd5542305af22": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "10267ef3f1b944928bd7d9586eaad23f": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2f5b12c67c984a3791b8e7cd9dead6ca": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "650c436022504058809e6310c8a04b89": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_b476bd9f2d454f9d8afd9222d6dfd739", + "IPY_MODEL_12153ce7f133456594fc861647390b37", + "IPY_MODEL_76c38b1165a6465683942554164152a2" + ], + "layout": "IPY_MODEL_1e995d86113c4b2292c060a1a7e586bf" + } + }, + "b476bd9f2d454f9d8afd9222d6dfd739": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_702cf01466d84286a9a6b6f4e6788b0b", + "placeholder": "​", + "style": "IPY_MODEL_54c8c39d571d481ba1de801a0494bc6c", + "value": "Validation DataLoader 0: 100%" + } + }, + "12153ce7f133456594fc861647390b37": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_eda3f3a244074e56b9283d37a516ad3d", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_2103dcfa089546a29bf1e703a2ca99d7", + "value": 1 + } + }, + "76c38b1165a6465683942554164152a2": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_e83b3cd2d5d34e9aa99a58d0703f11d3", + "placeholder": "​", + "style": "IPY_MODEL_f27d23df597b4b20a1e2f9bff7954847", + "value": " 13/13 [00:02<00:00, 5.52it/s]" + } + }, + "1e995d86113c4b2292c060a1a7e586bf": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "702cf01466d84286a9a6b6f4e6788b0b": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "54c8c39d571d481ba1de801a0494bc6c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "eda3f3a244074e56b9283d37a516ad3d": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2103dcfa089546a29bf1e703a2ca99d7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "e83b3cd2d5d34e9aa99a58d0703f11d3": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f27d23df597b4b20a1e2f9bff7954847": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "a44ba12f2f914fb8b25e0a3307b6e566": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_82932571eb304d06963a3e7233f69ceb", + "IPY_MODEL_fa199f2c597c4f4aad1c5bac6c63c219", + "IPY_MODEL_fb2677ba3c9047d1b9672803a9f6fc71" + ], + "layout": "IPY_MODEL_fa92a3602f6f430691e76976149a572a" + } + }, + "82932571eb304d06963a3e7233f69ceb": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_04da712fd16446dd8bd100c426ed9593", + "placeholder": "​", + "style": "IPY_MODEL_845a5945da39468098ee6a8e9ee0888e", + "value": "Validation DataLoader 0: 100%" + } + }, + "fa199f2c597c4f4aad1c5bac6c63c219": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_e416bb5d38d54ca087213d370b8212e7", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_8413df7109604756ad5121cb576c3d68", + "value": 1 + } + }, + "fb2677ba3c9047d1b9672803a9f6fc71": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_033faebbf5134642b85f4e40630cee98", + "placeholder": "​", + "style": "IPY_MODEL_554a48edbda34e2996eefa9cee088cc7", + "value": " 13/13 [00:02<00:00, 5.55it/s]" + } + }, + "fa92a3602f6f430691e76976149a572a": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "04da712fd16446dd8bd100c426ed9593": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "845a5945da39468098ee6a8e9ee0888e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "e416bb5d38d54ca087213d370b8212e7": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "8413df7109604756ad5121cb576c3d68": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "033faebbf5134642b85f4e40630cee98": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "554a48edbda34e2996eefa9cee088cc7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "1a1b31b9d77d411e8726be9a6a35f11b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_ff356b3125204b92972d6c3fff91c9ea", + "IPY_MODEL_cf64fece83c94d37a086123b6d84f0d3", + "IPY_MODEL_72675dff01364e529dc252763ad98d0f" + ], + "layout": "IPY_MODEL_b3a3add9c668462fae76387eb47781b1" + } + }, + "ff356b3125204b92972d6c3fff91c9ea": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_f77c5f89a97f452da1f118c1f68e6d8e", + "placeholder": "​", + "style": "IPY_MODEL_79f7d78fc2064cb28929fb35ada58cd8", + "value": "Validation DataLoader 0: 100%" + } + }, + "cf64fece83c94d37a086123b6d84f0d3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_e3e401a8a30947d08680f27b2b11109a", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_0ff6bcc0038b435e856b603a8c59ea8f", + "value": 1 + } + }, + "72675dff01364e529dc252763ad98d0f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_eb753d5397534a53bb0bd2f668ffc990", + "placeholder": "​", + "style": "IPY_MODEL_54a39f4bd20543f0a3522badc4850abe", + "value": " 13/13 [00:02<00:00, 5.56it/s]" + } + }, + "b3a3add9c668462fae76387eb47781b1": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "f77c5f89a97f452da1f118c1f68e6d8e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "79f7d78fc2064cb28929fb35ada58cd8": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "e3e401a8a30947d08680f27b2b11109a": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0ff6bcc0038b435e856b603a8c59ea8f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "eb753d5397534a53bb0bd2f668ffc990": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "54a39f4bd20543f0a3522badc4850abe": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "7f941aeaad0b44a38645ef08a3a86453": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_b809bf95431744d785a784ead8ff4a39", + "IPY_MODEL_1b96bdaae0934c18b33e4c36379f8855", + "IPY_MODEL_d31573f2c58b4a0a9ef6d9d041cecd12" + ], + "layout": "IPY_MODEL_9e40baf5d3fb4fa6804547e94040e0a3" + } + }, + "b809bf95431744d785a784ead8ff4a39": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_213f73b82d33438c9e458f6be6a0acdf", + "placeholder": "​", + "style": "IPY_MODEL_4564c317128143e8aaa52513f82d526f", + "value": "Validation DataLoader 0: 100%" + } + }, + "1b96bdaae0934c18b33e4c36379f8855": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_a5034a38b277401694a673c45fb101d5", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_9d661a6686bc4aac8ac501e6235c2bc3", + "value": 1 + } + }, + "d31573f2c58b4a0a9ef6d9d041cecd12": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_46cafde87a4b413ca5f971f687f72bb3", + "placeholder": "​", + "style": "IPY_MODEL_8a1ddf3bdc5848f0817c3a845cc22f7f", + "value": " 13/13 [00:02<00:00, 5.53it/s]" + } + }, + "9e40baf5d3fb4fa6804547e94040e0a3": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "213f73b82d33438c9e458f6be6a0acdf": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "4564c317128143e8aaa52513f82d526f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "a5034a38b277401694a673c45fb101d5": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "9d661a6686bc4aac8ac501e6235c2bc3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "46cafde87a4b413ca5f971f687f72bb3": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "8a1ddf3bdc5848f0817c3a845cc22f7f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "c1f5c5797ac845859bf837deeffeee15": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_fabd836bb44448eeb7799d2d2410bc62", + "IPY_MODEL_b1e1e28fda4a443d90e78903f1d2588d", + "IPY_MODEL_90320e0f44a741d89244516c71eec13b" + ], + "layout": "IPY_MODEL_1cc5278b99254a3ea7146274fa3d7f42" + } + }, + "fabd836bb44448eeb7799d2d2410bc62": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_8363ada778a54264ad69991dee2a17c7", + "placeholder": "​", + "style": "IPY_MODEL_31961cb00d5146548fc998a4d1c908ac", + "value": "Validation DataLoader 0: 100%" + } + }, + "b1e1e28fda4a443d90e78903f1d2588d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_dcd2ccb5b8a0415986cca0826a3a9fa1", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_647f5792f84d4c988342830db275394d", + "value": 1 + } + }, + "90320e0f44a741d89244516c71eec13b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_d6c8c9cc1fa14f88bb09a7282edc56c5", + "placeholder": "​", + "style": "IPY_MODEL_d0b5d57e40fa497f8f3c6a75a1cf0f66", + "value": " 13/13 [00:02<00:00, 5.51it/s]" + } + }, + "1cc5278b99254a3ea7146274fa3d7f42": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "8363ada778a54264ad69991dee2a17c7": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "31961cb00d5146548fc998a4d1c908ac": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "dcd2ccb5b8a0415986cca0826a3a9fa1": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "647f5792f84d4c988342830db275394d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "d6c8c9cc1fa14f88bb09a7282edc56c5": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d0b5d57e40fa497f8f3c6a75a1cf0f66": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "5cb543f15da848e784a80821b5172370": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_1f97d3ebac774790bdd496e2770363d6", + "IPY_MODEL_7c8a78e4a93343039b40dd0e86c1dd0a", + "IPY_MODEL_5c6cb3d92fcf4174a630bf7c435b23de" + ], + "layout": "IPY_MODEL_d1c78484e5544acfb0aa4164a676badb" + } + }, + "1f97d3ebac774790bdd496e2770363d6": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_d8b55e892c124215914d6a519cb24509", + "placeholder": "​", + "style": "IPY_MODEL_b1e2e7fd3dea402ba1c0827baa39e010", + "value": "Validation DataLoader 0: 100%" + } + }, + "7c8a78e4a93343039b40dd0e86c1dd0a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_49b84552b1c047d28dbfeb97c073c828", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_062d55594a7c4b758e8b7f60fc8a8788", + "value": 1 + } + }, + "5c6cb3d92fcf4174a630bf7c435b23de": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_3df64bb7f4a849f2aa19f861fc85a2e7", + "placeholder": "​", + "style": "IPY_MODEL_a40279fe71f544f4b715dc976fcca418", + "value": " 13/13 [00:02<00:00, 5.56it/s]" + } + }, + "d1c78484e5544acfb0aa4164a676badb": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "d8b55e892c124215914d6a519cb24509": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b1e2e7fd3dea402ba1c0827baa39e010": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "49b84552b1c047d28dbfeb97c073c828": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "062d55594a7c4b758e8b7f60fc8a8788": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "3df64bb7f4a849f2aa19f861fc85a2e7": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a40279fe71f544f4b715dc976fcca418": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "af394a0540084cf3812273a36c9e6d15": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_1ecad4e829634b6a8bb9e85aa81693d9", + "IPY_MODEL_2991a2a9878f430781f48b0e8d5a9efa", + "IPY_MODEL_f9f7ad526d424a66a11241fbd1e9bfa3" + ], + "layout": "IPY_MODEL_33baeeecccb54f368f4d9ed79365ad10" + } + }, + "1ecad4e829634b6a8bb9e85aa81693d9": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_9f7d44fc5c924b6abb9b34d772f59247", + "placeholder": "​", + "style": "IPY_MODEL_5e7eed7d1d65423facee1d5528f000c3", + "value": "Validation DataLoader 0: 100%" + } + }, + "2991a2a9878f430781f48b0e8d5a9efa": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_35756b7b55594a999e52f7989e9fb8e5", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_0e147d3b22ee4b10abdb908bf65cc2ea", + "value": 1 + } + }, + "f9f7ad526d424a66a11241fbd1e9bfa3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_36e7a907d1f84c3884691fd2d8d359be", + "placeholder": "​", + "style": "IPY_MODEL_ac865ea7e20f481c9491dbe65dc54399", + "value": " 13/13 [00:02<00:00, 5.50it/s]" + } + }, + "33baeeecccb54f368f4d9ed79365ad10": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "9f7d44fc5c924b6abb9b34d772f59247": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "5e7eed7d1d65423facee1d5528f000c3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "35756b7b55594a999e52f7989e9fb8e5": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0e147d3b22ee4b10abdb908bf65cc2ea": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "36e7a907d1f84c3884691fd2d8d359be": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "ac865ea7e20f481c9491dbe65dc54399": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "125764db26b7453aad5b170645b4e4bf": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_04c2219da118456db2cae78afc8adad9", + "IPY_MODEL_66c69f4925d54e8a989434af8f78394c", + "IPY_MODEL_6020ec22f8ea4f00b49a0584e528efa7" + ], + "layout": "IPY_MODEL_64b172e3fd184ae5881b0fe606f62a75" + } + }, + "04c2219da118456db2cae78afc8adad9": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_3d5ff177414c43f8a6e801dd3df73e29", + "placeholder": "​", + "style": "IPY_MODEL_dcfb551da4ac4055b1088c791d48edec", + "value": "Validation DataLoader 0: 100%" + } + }, + "66c69f4925d54e8a989434af8f78394c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_09f6cfd88dbc45018f623bd3430c43e0", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_b1d5db15f4704bf5ae68c6d3ded5a03d", + "value": 1 + } + }, + "6020ec22f8ea4f00b49a0584e528efa7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_5daa9711016340cc958424203b1b778e", + "placeholder": "​", + "style": "IPY_MODEL_f17a98231eb543438032425a5154b99e", + "value": " 13/13 [00:02<00:00, 5.51it/s]" + } + }, + "64b172e3fd184ae5881b0fe606f62a75": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "3d5ff177414c43f8a6e801dd3df73e29": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "dcfb551da4ac4055b1088c791d48edec": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "09f6cfd88dbc45018f623bd3430c43e0": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b1d5db15f4704bf5ae68c6d3ded5a03d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "5daa9711016340cc958424203b1b778e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f17a98231eb543438032425a5154b99e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "337d3f540e0d4198abda7e1003e6e1db": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_10bb5753ee034b09991b826dc5eb8130", + "IPY_MODEL_45d6bdcda4dd4bad910b6fae302c1ef8", + "IPY_MODEL_72d6dbded06a468387ff91746bffebed" + ], + "layout": "IPY_MODEL_15e27c924c684d178c1de9e3b97c1056" + } + }, + "10bb5753ee034b09991b826dc5eb8130": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_f440596e925c40e585602acd8253ec90", + "placeholder": "​", + "style": "IPY_MODEL_b957298b31bb460588290a8611d629c2", + "value": "Validation DataLoader 0: 100%" + } + }, + "45d6bdcda4dd4bad910b6fae302c1ef8": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_f847a6ed5ab0495ab0ed1d9a7a0a8bfd", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_0afec0ce06a4491281383dba7f1b5cb0", + "value": 1 + } + }, + "72d6dbded06a468387ff91746bffebed": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_a72e4701667e4539bb1665391c196baa", + "placeholder": "​", + "style": "IPY_MODEL_d8f9a4e9ab2841d8b718f993387bb5f7", + "value": " 13/13 [00:02<00:00, 5.47it/s]" + } + }, + "15e27c924c684d178c1de9e3b97c1056": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "f440596e925c40e585602acd8253ec90": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b957298b31bb460588290a8611d629c2": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "f847a6ed5ab0495ab0ed1d9a7a0a8bfd": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0afec0ce06a4491281383dba7f1b5cb0": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "a72e4701667e4539bb1665391c196baa": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d8f9a4e9ab2841d8b718f993387bb5f7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "a63184fe7a8a4949869de139df7e5ddd": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_780d3c4433d742e0a1176b1d6f014117", + "IPY_MODEL_252e6fa9ea8b425d8597827d3377fa2c", + "IPY_MODEL_319a332302684dd0bbbdf7eb3a6df95b" + ], + "layout": "IPY_MODEL_39a42fa7b628430a912b8b5a02131bfd" + } + }, + "780d3c4433d742e0a1176b1d6f014117": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_213539be457247608e5ab655bdd8d087", + "placeholder": "​", + "style": "IPY_MODEL_0ec1b13417194550958604c36e23ae32", + "value": "Validation DataLoader 0: 100%" + } + }, + "252e6fa9ea8b425d8597827d3377fa2c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_10136323bffa436db54f08d5391f5f80", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_e42815d5723e4ec88c0189ab77ea0a79", + "value": 1 + } + }, + "319a332302684dd0bbbdf7eb3a6df95b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_5c451131f80149f6b6b527943903271f", + "placeholder": "​", + "style": "IPY_MODEL_7cbc40c0c510418ba2a88ed51bc874a0", + "value": " 13/13 [00:02<00:00, 5.57it/s]" + } + }, + "39a42fa7b628430a912b8b5a02131bfd": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "213539be457247608e5ab655bdd8d087": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0ec1b13417194550958604c36e23ae32": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "10136323bffa436db54f08d5391f5f80": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "e42815d5723e4ec88c0189ab77ea0a79": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "5c451131f80149f6b6b527943903271f": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "7cbc40c0c510418ba2a88ed51bc874a0": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "326e0b4d8820442480defff9719e71cf": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_f1638431bb364e3aa7b15be28de9aa73", + "IPY_MODEL_4fb758ed6747400aac8ebe924d554bd9", + "IPY_MODEL_ed0b4989ffbb429c911789c9bbb7c4b5" + ], + "layout": "IPY_MODEL_2ed07e81e123422d83f4650d4506a30f" + } + }, + "f1638431bb364e3aa7b15be28de9aa73": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_6c003d1697f542ecbde26d8855f171cb", + "placeholder": "​", + "style": "IPY_MODEL_b68a49079e78420dae7048404de7d409", + "value": "Validation DataLoader 0: 100%" + } + }, + "4fb758ed6747400aac8ebe924d554bd9": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_9319c58dcdc04aee9aedca4f0a5d0a31", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_4ec35d9312e0496294706208fd9198dd", + "value": 1 + } + }, + "ed0b4989ffbb429c911789c9bbb7c4b5": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_6b4f5eb951cc46279d3b06cf2da1b015", + "placeholder": "​", + "style": "IPY_MODEL_d0b4a372ca6a4c9e8bb1fcc500ce4e99", + "value": " 13/13 [00:02<00:00, 5.48it/s]" + } + }, + "2ed07e81e123422d83f4650d4506a30f": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "6c003d1697f542ecbde26d8855f171cb": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b68a49079e78420dae7048404de7d409": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "9319c58dcdc04aee9aedca4f0a5d0a31": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "4ec35d9312e0496294706208fd9198dd": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "6b4f5eb951cc46279d3b06cf2da1b015": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d0b4a372ca6a4c9e8bb1fcc500ce4e99": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "a4371e6657e342c09f9f784c6a0f2b27": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_d77b9bfd891e404487646cf4a3ec56cf", + "IPY_MODEL_f0f3918a7dce4d229b2a86952d9017e7", + "IPY_MODEL_af5542887c2345bf8622e301d71147ff" + ], + "layout": "IPY_MODEL_f8027dfeba7741d5af1951d1c1fd4fe8" + } + }, + "d77b9bfd891e404487646cf4a3ec56cf": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_e281f82efefa4acdba69d6d43e6fd1e6", + "placeholder": "​", + "style": "IPY_MODEL_f313e1ed7d624df5a097a8edcf2c5700", + "value": "Validation DataLoader 0: 100%" + } + }, + "f0f3918a7dce4d229b2a86952d9017e7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_63aa233e946141dbb4a6cffb15eef66e", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_b77fe299297846eb99e1ad2c1e128cf7", + "value": 1 + } + }, + "af5542887c2345bf8622e301d71147ff": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_eb300114b0524a91a18209dbe1a303a0", + "placeholder": "​", + "style": "IPY_MODEL_9dd9b1a0ec234b03863adee37af1d8ae", + "value": " 13/13 [00:02<00:00, 5.42it/s]" + } + }, + "f8027dfeba7741d5af1951d1c1fd4fe8": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "e281f82efefa4acdba69d6d43e6fd1e6": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f313e1ed7d624df5a097a8edcf2c5700": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "63aa233e946141dbb4a6cffb15eef66e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b77fe299297846eb99e1ad2c1e128cf7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "eb300114b0524a91a18209dbe1a303a0": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "9dd9b1a0ec234b03863adee37af1d8ae": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "b8346af2d393474088707ac894275c86": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_5a370ba9d97f44dba82441831793ac56", + "IPY_MODEL_433458edcd2d44539b29068a90df51f2", + "IPY_MODEL_723ca8a3d11a4f40a82791c7bad54c9a" + ], + "layout": "IPY_MODEL_875e9a7817994f2094ef3d0cc27d03c9" + } + }, + "5a370ba9d97f44dba82441831793ac56": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_9d973a51a89a4d2689ed5bc086961ab0", + "placeholder": "​", + "style": "IPY_MODEL_9bda13f351764566a44394f8fdf22c66", + "value": "Validation DataLoader 0: 100%" + } + }, + "433458edcd2d44539b29068a90df51f2": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_0d3a541caaf249c1b1ee387f03e05940", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_0de477c24d2e43cc9383f587c1328a55", + "value": 1 + } + }, + "723ca8a3d11a4f40a82791c7bad54c9a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_f04e7f945e6c4fe480592ee955b64f45", + "placeholder": "​", + "style": "IPY_MODEL_2e49a93c3ae248be9a1ba33680f4f5fd", + "value": " 13/13 [00:02<00:00, 5.48it/s]" + } + }, + "875e9a7817994f2094ef3d0cc27d03c9": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "9d973a51a89a4d2689ed5bc086961ab0": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "9bda13f351764566a44394f8fdf22c66": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "0d3a541caaf249c1b1ee387f03e05940": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0de477c24d2e43cc9383f587c1328a55": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "f04e7f945e6c4fe480592ee955b64f45": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2e49a93c3ae248be9a1ba33680f4f5fd": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "61bab3e3878248198de558d64455c1cf": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_5ea05e59922d4db8a20c5bb4d7589195", + "IPY_MODEL_db1fe190ced743edba672431f39976fd", + "IPY_MODEL_ce4576d810ed4ae5bd80c663beadc80a" + ], + "layout": "IPY_MODEL_f1c848a8da894c789a483319c7c5209e" + } + }, + "5ea05e59922d4db8a20c5bb4d7589195": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_1f9554b19a324f9ca91283d364897fca", + "placeholder": "​", + "style": "IPY_MODEL_6e61f7dc9b184a74a45194454b67e940", + "value": "Validation DataLoader 0: 100%" + } + }, + "db1fe190ced743edba672431f39976fd": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_7e5c96aa11de4381a770857801b8a561", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_3aaa115845cf4f62a9bf7ea6ce0b0e32", + "value": 1 + } + }, + "ce4576d810ed4ae5bd80c663beadc80a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_655b56abc5334cdeb66019f184fd79e3", + "placeholder": "​", + "style": "IPY_MODEL_37dd58b811ac49929fbd1f5691a0d885", + "value": " 13/13 [00:02<00:00, 5.48it/s]" + } + }, + "f1c848a8da894c789a483319c7c5209e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "1f9554b19a324f9ca91283d364897fca": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "6e61f7dc9b184a74a45194454b67e940": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "7e5c96aa11de4381a770857801b8a561": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "3aaa115845cf4f62a9bf7ea6ce0b0e32": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "655b56abc5334cdeb66019f184fd79e3": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "37dd58b811ac49929fbd1f5691a0d885": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "12a3e103142b46a3a08833db8e96329f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_1fa565f57f7e4f9ca72a9ad427675f43", + "IPY_MODEL_2bb8784531ab4b46a8c260830ddb3cb5", + "IPY_MODEL_55e776a8bf104300b273ae0a3548121b" + ], + "layout": "IPY_MODEL_e549ecb0b4c14c2c8378201cac40a029" + } + }, + "1fa565f57f7e4f9ca72a9ad427675f43": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_9322e6840f05441e993f3452c826ed30", + "placeholder": "​", + "style": "IPY_MODEL_d15db91860284e198db48415f4d02aea", + "value": "Validation DataLoader 0: 100%" + } + }, + "2bb8784531ab4b46a8c260830ddb3cb5": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "info", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_327ee16a25a745069fcd74b3ebfe91f8", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_201d4df6e5ac4f73b25e37721aa1823b", + "value": 1 + } + }, + "55e776a8bf104300b273ae0a3548121b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_7a5b1c2a387947c282276b2f6ffa63fa", + "placeholder": "​", + "style": "IPY_MODEL_1cb199b34ca842f28dd2b1efd1f9f911", + "value": " 13/13 [00:02<00:00, 5.53it/s]" + } + }, + "e549ecb0b4c14c2c8378201cac40a029": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "9322e6840f05441e993f3452c826ed30": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d15db91860284e198db48415f4d02aea": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "327ee16a25a745069fcd74b3ebfe91f8": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "201d4df6e5ac4f73b25e37721aa1823b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "7a5b1c2a387947c282276b2f6ffa63fa": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "1cb199b34ca842f28dd2b1efd1f9f911": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "20474e133fc640cc9128dbe4c21e4363": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_a89a85b1a5f84d28b2e449f4f367b779", + "IPY_MODEL_6e72a0756b0a48a5b7f95227dc7fcbde", + "IPY_MODEL_3f950695a25247de8016374947f657a2" + ], + "layout": "IPY_MODEL_5da5821179984cbb937b36541f589ce8" + } + }, + "a89a85b1a5f84d28b2e449f4f367b779": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_4b4daddc72cf4216be81c9e7a3fd554a", + "placeholder": "​", + "style": "IPY_MODEL_855c8348a94847a09057b5cee6fd8ee7", + "value": "100%" + } + }, + "6e72a0756b0a48a5b7f95227dc7fcbde": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_09515f1add644f8fbd95e29b7a209280", + "max": 13, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_e5b00d0daa174da4b101a46728928c2b", + "value": 13 + } + }, + "3f950695a25247de8016374947f657a2": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_40669017dd65433bb5c99d4ebf844399", + "placeholder": "​", + "style": "IPY_MODEL_55bc50071a70441e9781e89d3f765d4e", + "value": " 13/13 [00:02<00:00, 5.92it/s]" + } + }, + "5da5821179984cbb937b36541f589ce8": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "4b4daddc72cf4216be81c9e7a3fd554a": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "855c8348a94847a09057b5cee6fd8ee7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "09515f1add644f8fbd95e29b7a209280": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "e5b00d0daa174da4b101a46728928c2b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "40669017dd65433bb5c99d4ebf844399": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "55bc50071a70441e9781e89d3f765d4e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + } + } + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file diff --git a/deep-learning/Transformer-Tutorials/YOLOS/README.md b/deep-learning/Transformer-Tutorials/YOLOS/README.md new file mode 100644 index 00000000..a6ff6509 --- /dev/null +++ b/deep-learning/Transformer-Tutorials/YOLOS/README.md @@ -0,0 +1,7 @@ +# YOLOS notebooks +In this directory, you can find several notebooks that illustrate how to use [YOLOS](https://arxiv.org/abs/2106.00666) both for fine-tuning on custom data as well as inference. It currently includes the following notebooks: + +- [performing inference with YOLOS on a new image](https://github.com/NielsRogge/Transformers-Tutorials/blob/master/YOLOS/YOLOS_minimal_inference_example.ipynb) +- [fine-tuning YOLOS on a custom dataset (balloon)](https://github.com/NielsRogge/Transformers-Tutorials/blob/master/YOLOS/Fine_tuning_YOLOS_for_object_detection_on_custom_dataset_(balloon).ipynb) + +All models can be found on the [hub](https://huggingface.co/models?search=yolos). diff --git a/deep-learning/Transformer-Tutorials/YOLOS/YOLOS_minimal_inference_example.ipynb b/deep-learning/Transformer-Tutorials/YOLOS/YOLOS_minimal_inference_example.ipynb new file mode 100644 index 00000000..b8be7354 --- /dev/null +++ b/deep-learning/Transformer-Tutorials/YOLOS/YOLOS_minimal_inference_example.ipynb @@ -0,0 +1,1787 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "YOLOS minimal inference example.ipynb", + "provenance": [], + "collapsed_sections": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "0d1da3f7b75e41d8b45fb0b66837f31b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_397124109b544e759d0a8923ba46aba7", + "IPY_MODEL_00310ba06abe4d16ada8da9331453811", + "IPY_MODEL_20c2128808214db3a8dbf2015938d1f2" + ], + "layout": "IPY_MODEL_d6f94302669e4baead338a8189e8795c" + } + }, + "397124109b544e759d0a8923ba46aba7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_e58042f0f30e4c6ba2b5d02adb231ccd", + "placeholder": "​", + "style": "IPY_MODEL_5dd470f8e6424324bc5644557f1f2a12", + "value": "Downloading: 100%" + } + }, + "00310ba06abe4d16ada8da9331453811": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_f9e24dcca13f4d18b85375806ecf9665", + "max": 275, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_212176f2b348457fb050d2b82a9bcbea", + "value": 275 + } + }, + "20c2128808214db3a8dbf2015938d1f2": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_dd55b2d56b3f4e8491e9a3ea77ae1183", + "placeholder": "​", + "style": "IPY_MODEL_7c7da2def36d4c8ead226286e81d7dc2", + "value": " 275/275 [00:00<00:00, 1.32kB/s]" + } + }, + "d6f94302669e4baead338a8189e8795c": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "e58042f0f30e4c6ba2b5d02adb231ccd": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "5dd470f8e6424324bc5644557f1f2a12": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "f9e24dcca13f4d18b85375806ecf9665": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "212176f2b348457fb050d2b82a9bcbea": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "dd55b2d56b3f4e8491e9a3ea77ae1183": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "7c7da2def36d4c8ead226286e81d7dc2": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "aa2d68e64fda49db97c9cdd75ff0e0bc": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_efeadc7074cc456e97febac358566213", + "IPY_MODEL_d3dd55bb2190458bbedc5cc339e9696b", + "IPY_MODEL_7c301f2eb26344cd917b8487bdc537d6" + ], + "layout": "IPY_MODEL_9d1faff99557429583ee76208fc52811" + } + }, + "efeadc7074cc456e97febac358566213": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_a67294fa421f4afdb51f909cbb5f33da", + "placeholder": "​", + "style": "IPY_MODEL_60bc469d40fc4ec2b51f4d50ec62ed51", + "value": "Downloading: 100%" + } + }, + "d3dd55bb2190458bbedc5cc339e9696b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_23e69bee05a54de0a986c3cac4ccf269", + "max": 4132, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_0fd7fab9cc054366ad71e5f93e953b42", + "value": 4132 + } + }, + "7c301f2eb26344cd917b8487bdc537d6": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_cd175c948a64462692d3399d9ac6fa2e", + "placeholder": "​", + "style": "IPY_MODEL_26e950827ce2403083f14a7b322efc89", + "value": " 4.04k/4.04k [00:00<00:00, 9.24kB/s]" + } + }, + "9d1faff99557429583ee76208fc52811": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a67294fa421f4afdb51f909cbb5f33da": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "60bc469d40fc4ec2b51f4d50ec62ed51": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "23e69bee05a54de0a986c3cac4ccf269": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0fd7fab9cc054366ad71e5f93e953b42": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "cd175c948a64462692d3399d9ac6fa2e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "26e950827ce2403083f14a7b322efc89": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "fc2f444a3e99466c825296a25b45d8dd": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_84e4db54e17a49098e12550e1daece2c", + "IPY_MODEL_a39bb4eb2b8c44ff987389a1808fbd9b", + "IPY_MODEL_952d5f5d5253474a98f40c549047da15" + ], + "layout": "IPY_MODEL_67e9e9989dc74ec899ca1c791f8896c7" + } + }, + "84e4db54e17a49098e12550e1daece2c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_9a9a6dcb78f84df99cc77883a90bc8aa", + "placeholder": "​", + "style": "IPY_MODEL_51a822e6dc5d46d7a2a9e4ae1953a1ab", + "value": "Downloading: 100%" + } + }, + "a39bb4eb2b8c44ff987389a1808fbd9b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_e7edd9aa4c05427bb256afeb61e91ddc", + "max": 122806169, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_6f1a1934e7344f219801c4b34379936c", + "value": 122806169 + } + }, + "952d5f5d5253474a98f40c549047da15": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_b9303e353bfd43ce9aff7af9c65809e6", + "placeholder": "​", + "style": "IPY_MODEL_8bc58dda4a684fbeac10385131728c01", + "value": " 117M/117M [00:03<00:00, 27.2MB/s]" + } + }, + "67e9e9989dc74ec899ca1c791f8896c7": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "9a9a6dcb78f84df99cc77883a90bc8aa": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "51a822e6dc5d46d7a2a9e4ae1953a1ab": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "e7edd9aa4c05427bb256afeb61e91ddc": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "6f1a1934e7344f219801c4b34379936c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "b9303e353bfd43ce9aff7af9c65809e6": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "8bc58dda4a684fbeac10385131728c01": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + } + } + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-Wc92cWK-Aas" + }, + "source": [ + "## YOLOS: inference notebook\n", + "\n", + "In this notebook, we are going to run the [YOLOS](https://arxiv.org/abs/2106.00666) model (an awesome and simple object detector) by Huazhong University of Science & Technology on an image of the COCO object detection validation dataset. \n", + "\n", + "### Quick intro: YOLOS\n", + "YOLOS is short for You Only Look at One Sequence, and simply consists of Vision Transformer (ViT) as encoder (taking in a sequence of patches and a sequence of detection tokens, also called \"queries\"), with object detection heads on top. The model is trained in similar fashion to DETR, using a clever loss function, the so-called **bipartite matching loss**. I highly recommend [Yannic Kilcher's video](https://www.youtube.com/watch?v=T35ba_VXkMY&t=1693s) if you want to understand how DETR (and, in turn, YOLOS) work. \n", + "\n", + "![yolos architecture](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/yolos_architecture.png)" + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Set-up environment\n", + "\n", + "First, we install the HuggingFace Transformers library (from source for now, as the model was just added to the library and not yet included in a new PyPi release)." + ], + "metadata": { + "id": "uIcaig48T6yv" + } + }, + { + "cell_type": "code", + "metadata": { + "id": "_XLma_DL3S9-", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "15b9ba63-c3c0-4300-9207-820e64cc1232" + }, + "source": [ + "!pip install -q git+https://github.com/huggingface/transformers.git" + ], + "execution_count": 1, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + " Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n", + " Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n", + " Preparing wheel metadata ... \u001b[?25l\u001b[?25hdone\n", + "\u001b[K |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 6.6 MB 9.0 MB/s \n", + "\u001b[K |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 77 kB 6.9 MB/s \n", + "\u001b[K |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 596 kB 54.4 MB/s \n", + "\u001b[?25h Building wheel for transformers (PEP 517) ... \u001b[?25l\u001b[?25hdone\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7QN-vURe3euV" + }, + "source": [ + "## Prepare the image using AutoFeatureExtractor\n", + "\n", + "Let's use the image of the two cats chilling on a couch once more. It's part of the [COCO](https://cocodataset.org/#home) object detection validation 2017 dataset." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "LOX1__3nrezW", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 497 + }, + "outputId": "a19a81cf-f9a2-4d9e-d1fd-542f6be03d59" + }, + "source": [ + "from PIL import Image\n", + "import requests\n", + "\n", + "url = 'http://images.cocodataset.org/val2017/000000039769.jpg'\n", + "image = Image.open(requests.get(url, stream=True).raw)\n", + "image" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ], + "image/png": "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\n" + }, + "metadata": {}, + "execution_count": 2 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "En_OQLwJrwFf" + }, + "source": [ + "Let's first apply the regular image preprocessing using `AutoFeatureExtractor`. The feature extractor will resize the image (minimum size = 800, max size = 1333), and normalize it across the channels using the ImageNet mean and standard deviation." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "uuvc_hZ7PTEj", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 67, + "referenced_widgets": [ + "0d1da3f7b75e41d8b45fb0b66837f31b", + "397124109b544e759d0a8923ba46aba7", + "00310ba06abe4d16ada8da9331453811", + "20c2128808214db3a8dbf2015938d1f2", + "d6f94302669e4baead338a8189e8795c", + "e58042f0f30e4c6ba2b5d02adb231ccd", + "5dd470f8e6424324bc5644557f1f2a12", + "f9e24dcca13f4d18b85375806ecf9665", + "212176f2b348457fb050d2b82a9bcbea", + "dd55b2d56b3f4e8491e9a3ea77ae1183", + "7c7da2def36d4c8ead226286e81d7dc2" + ] + }, + "outputId": "528d8874-e3e0-4c2e-9de9-68e0aac225d5" + }, + "source": [ + "from transformers import AutoFeatureExtractor\n", + "\n", + "feature_extractor = AutoFeatureExtractor.from_pretrained(\"hustvl/yolos-small\")\n", + "\n", + "pixel_values = feature_extractor(image, return_tensors=\"pt\").pixel_values\n", + "pixel_values.shape" + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Downloading: 0%| | 0.00/275 [00:00 0.9\n", + "\n", + "# rescale bounding boxes\n", + "target_sizes = torch.tensor(image.size[::-1]).unsqueeze(0)\n", + "postprocessed_outputs = feature_extractor.post_process(outputs, target_sizes)\n", + "bboxes_scaled = postprocessed_outputs[0]['boxes']" + ], + "execution_count": 7, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "Xc6YjWXBl_vK", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 586 + }, + "outputId": "a491f302-e28c-4ce2-f05d-38150f866d48" + }, + "source": [ + "plot_results(image, probas[keep], bboxes_scaled[keep])" + ], + "execution_count": 8, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Visualize attention\n", + "\n", + "We first take the attentions from the model outputs (notice that we passed `output_attentions=True` when performing a forward pass above). This is a tuple of `torch.FloatTensors`, each tensor containing the attention scores of all tokens to all tokens of a particular layer in the Transformer encoder)." + ], + "metadata": { + "id": "SMLuroOvLzak" + } + }, + { + "cell_type": "code", + "source": [ + "attentions = outputs.attentions\n", + "print(len(attentions))" + ], + "metadata": { + "id": "jMSXgRn8iCwr", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "4c8e8346-e578-44de-89f3-73741679e03b" + }, + "execution_count": 9, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "12\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "Next, we take the attention scores of the last layer, and only those of the detection tokens to all non-detection tokens in the sequence. Note that YOLOS feeds a sequence of the patches + detection tokens + 1 (for the CLS token) through the Transformer encoder." + ], + "metadata": { + "id": "IO-EKQmIe1JG" + } + }, + { + "cell_type": "code", + "source": [ + "# take attentions of last layer, shape (batch_size, num_heads, seq_len, seq_len)\n", + "# with seq_len = 1 + num_patches + num_detection_tokens\n", + "attention = attentions[-1].detach().cpu()\n", + "nh = attention.shape[1] # number of heads\n", + "\n", + "# we are only interested in the attention scores of the detection tokens to all non-detection tokens\n", + "attention = attention[0, :, -model.config.num_detection_tokens:, 1:-model.config.num_detection_tokens]\n", + "attention.shape" + ], + "metadata": { + "id": "dlis66O0MLMl", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "fc6570b3-819c-442d-fce7-478343e432ea" + }, + "execution_count": 10, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "torch.Size([6, 100, 3300])" + ] + }, + "metadata": {}, + "execution_count": 10 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "Next, we only keep the detection tokens whose probability for a particular class was > 90%. We store their indices in a variable." + ], + "metadata": { + "id": "O-ZleMJyfDHv" + } + }, + { + "cell_type": "code", + "source": [ + "vis_indexs = torch.nonzero(keep).squeeze(1)\n", + "print(vis_indexs)" + ], + "metadata": { + "id": "x75jqc6CUTmi", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "ef457de8-756f-4d4b-c16b-370e1115aa62" + }, + "execution_count": 11, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "tensor([28, 59, 70, 80, 92])\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "import os\n", + "from torch import nn\n", + "import cv2\n", + "\n", + "output_dir = \"./visualization\"\n", + "\n", + "def get_one_query_meanattn(vis_attn,h_featmap,w_featmap):\n", + " mean_attentions = vis_attn.mean(0).reshape(h_featmap, w_featmap)\n", + " mean_attentions = nn.functional.interpolate(mean_attentions.unsqueeze(0).unsqueeze(0), scale_factor=16, mode=\"nearest\")[0].cpu().numpy()\n", + " return mean_attentions\n", + "\n", + "def get_one_query_attn(vis_attn, h_featmap, w_featmap, nh):\n", + " attentions = vis_attn.reshape(nh, h_featmap, w_featmap)\n", + " attentions = nn.functional.interpolate(attentions.unsqueeze(0), scale_factor=16, mode=\"nearest\")[0].cpu().numpy()\n", + " return attentions\n", + "\n", + "def box_cxcywh_to_xyxy(x):\n", + " x_c, y_c, w, h = x.unbind(1)\n", + " b = [(x_c - 0.5 * w), (y_c - 0.5 * h),\n", + " (x_c + 0.5 * w), (y_c + 0.5 * h)]\n", + " return torch.stack(b, dim=1)\n", + "\n", + "def rescale_bboxes(out_bbox, size):\n", + " img_w, img_h = size\n", + " b = box_cxcywh_to_xyxy(out_bbox)\n", + " b = b * torch.tensor([img_w, img_h, img_w, img_h], dtype=torch.float32)\n", + " return b\n", + "\n", + "def draw_bbox_in_img(fname, bbox_scaled, score, color=[0,255,0]):\n", + " tl = 3\n", + " tf = max(tl-1,1) # font thickness\n", + " im = cv2.imread(fname)\n", + " for p, (xmin, ymin, xmax, ymax) in zip(score, bbox_scaled.tolist()):\n", + " c1, c2 = (int(xmin), int(ymin)), (int(xmax), int(ymax))\n", + " cv2.rectangle(im, c1, c2, color, tl, cv2.LINE_AA)\n", + " cl = p.argmax()\n", + " text = f'{model.config.id2label[cl.item()]}: {p[cl]:0.2f}'\n", + " t_size = cv2.getTextSize(text, 0, fontScale=tl / 3, thickness=tf)[0]\n", + " c2 = c1[0] + t_size[0], c1[1] - t_size[1] - 3\n", + " cv2.rectangle(im, c1, c2, color, -1, cv2.LINE_AA) # filled\n", + " cv2.putText(im, text, (c1[0], c1[1] - 2), 0, tl / 3, [225, 255, 255], thickness=tf, lineType=cv2.LINE_AA)\n", + " cv2.imwrite(fname, im)\n", + "\n", + "h, w = pixel_values.shape[2:]\n", + "w_featmap = pixel_values.shape[3] // model.config.patch_size\n", + "h_featmap = pixel_values.shape[2] // model.config.patch_size\n", + "for idx, vis_index in enumerate(vis_indexs):\n", + " token_dir = os.path.join(output_dir, 'Det-Tok-'+str(int(vis_index)))\n", + " os.makedirs(token_dir, exist_ok=True)\n", + " # get corresponding bbox\n", + " bbox = bboxes_scaled[vis_index].unsqueeze(0).cpu()\n", + "\n", + " bbox = rescale_bboxes(outputs.pred_boxes[0, vis_index].unsqueeze(0).cpu(), (w,h))\n", + " score = probas[vis_index].unsqueeze(0)\n", + "\n", + " vis_attn = attention[:, vis_index, :]\n", + " mean_attention = get_one_query_meanattn(vis_attn, h_featmap, w_featmap)\n", + " mean_attention = mean_attention[0]\n", + " fname = os.path.join(token_dir, \"attn-head-mean\" + \".png\")\n", + " plt.imsave(fname=fname, arr=mean_attention, format='png')\n", + " print(f\"{fname} saved.\")\n", + " attn = get_one_query_attn(vis_attn, h_featmap, w_featmap,nh)\n", + " for j in range(nh):\n", + " fname = os.path.join(token_dir, \"attn-head\" + str(j) + \".png\")\n", + " plt.imsave(fname=fname, arr=attn[j], format='png')\n", + " draw_bbox_in_img(fname, bbox, score, color=[0,0,255])\n", + " print(f\"{fname} saved.\")" + ], + "metadata": { + "id": "-mK4WAM9Mn6l", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "30647450-974e-429d-98f6-83375b609b58" + }, + "execution_count": 12, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "./visualization/Det-Tok-28/attn-head-mean.png saved.\n", + "./visualization/Det-Tok-28/attn-head0.png saved.\n", + "./visualization/Det-Tok-28/attn-head1.png saved.\n", + "./visualization/Det-Tok-28/attn-head2.png saved.\n", + "./visualization/Det-Tok-28/attn-head3.png saved.\n", + "./visualization/Det-Tok-28/attn-head4.png saved.\n", + "./visualization/Det-Tok-28/attn-head5.png saved.\n", + "./visualization/Det-Tok-59/attn-head-mean.png saved.\n", + "./visualization/Det-Tok-59/attn-head0.png saved.\n", + "./visualization/Det-Tok-59/attn-head1.png saved.\n", + "./visualization/Det-Tok-59/attn-head2.png saved.\n", + "./visualization/Det-Tok-59/attn-head3.png saved.\n", + "./visualization/Det-Tok-59/attn-head4.png saved.\n", + "./visualization/Det-Tok-59/attn-head5.png saved.\n", + "./visualization/Det-Tok-70/attn-head-mean.png saved.\n", + "./visualization/Det-Tok-70/attn-head0.png saved.\n", + "./visualization/Det-Tok-70/attn-head1.png saved.\n", + "./visualization/Det-Tok-70/attn-head2.png saved.\n", + "./visualization/Det-Tok-70/attn-head3.png saved.\n", + "./visualization/Det-Tok-70/attn-head4.png saved.\n", + "./visualization/Det-Tok-70/attn-head5.png saved.\n", + "./visualization/Det-Tok-80/attn-head-mean.png saved.\n", + "./visualization/Det-Tok-80/attn-head0.png saved.\n", + "./visualization/Det-Tok-80/attn-head1.png saved.\n", + "./visualization/Det-Tok-80/attn-head2.png saved.\n", + "./visualization/Det-Tok-80/attn-head3.png saved.\n", + "./visualization/Det-Tok-80/attn-head4.png saved.\n", + "./visualization/Det-Tok-80/attn-head5.png saved.\n", + "./visualization/Det-Tok-92/attn-head-mean.png saved.\n", + "./visualization/Det-Tok-92/attn-head0.png saved.\n", + "./visualization/Det-Tok-92/attn-head1.png saved.\n", + "./visualization/Det-Tok-92/attn-head2.png saved.\n", + "./visualization/Det-Tok-92/attn-head3.png saved.\n", + "./visualization/Det-Tok-92/attn-head4.png saved.\n", + "./visualization/Det-Tok-92/attn-head5.png saved.\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "path = os.listdir(output_dir)\n", + "det_tok_dirs=[]\n", + "for p in path:\n", + " temp_path=os.path.join(output_dir,p)\n", + " if os.path.isdir(temp_path):\n", + " det_tok_dirs.append(temp_path)\n", + "\n", + "sorted(det_tok_dirs)" + ], + "metadata": { + "id": "eJDUA2FzPGYD", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "1f03d088-eea5-4a9c-af64-805e70e1e4c3" + }, + "execution_count": 13, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "['./visualization/Det-Tok-28',\n", + " './visualization/Det-Tok-59',\n", + " './visualization/Det-Tok-70',\n", + " './visualization/Det-Tok-80',\n", + " './visualization/Det-Tok-92']" + ] + }, + "metadata": {}, + "execution_count": 13 + } + ] + }, + { + "cell_type": "code", + "source": [ + "for dettoken_dir in sorted(det_tok_dirs):\n", + " fig = plt.figure(constrained_layout=True, figsize=(32 * 0.7, 5 * 0.7), facecolor='white')\n", + " gs = fig.add_gridspec(1, 7)\n", + " axs_0 = [\n", + " fig.add_subplot(gs[0, 1]),\n", + " fig.add_subplot(gs[0, 2]),\n", + " fig.add_subplot(gs[0, 3]),\n", + " fig.add_subplot(gs[0, 4]),\n", + " fig.add_subplot(gs[0, 5]),\n", + " fig.add_subplot(gs[0, 6]),\n", + " ]\n", + " dettoken_heads = ['attn-head0.png', 'attn-head1.png', 'attn-head2.png',\n", + " 'attn-head3.png', 'attn-head4.png', 'attn-head5.png']\n", + " dettoken_dir_files_0 = []\n", + " for dettoken_head in dettoken_heads:\n", + " dettoken_dir_files_0.append(os.path.join(dettoken_dir, dettoken_head))\n", + " head_index=0\n", + " for dettoken_dir_file, head_ax in zip(dettoken_dir_files_0, axs_0):\n", + " im = Image.open(dettoken_dir_file)\n", + " head_ax.imshow(im)\n", + " head_ax.set_title('%s-Head#%d' %(dettoken_dir.split('/')[-1], head_index))\n", + " head_ax.axis('off')\n", + " head_index = head_index+1\n", + " fleft_ax = fig.add_subplot(gs[0, 0])\n", + " #im = Image.open(os.path.join(args.output_dir, 'pred_img.png'))\n", + " fleft_ax.imshow(im)\n", + " fleft_ax.axis('off')\n", + " #fleft_ax.set_title('pred_img.png')\n", + " fig.savefig(os.path.join(dettoken_dir, dettoken_dir.split('/')[-1]+'_'+'attn.png'), facecolor=fig.get_facecolor(), edgecolor='none', dpi=3)" + ], + "metadata": { + "id": "vvgoTL77N2PS", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 810 + }, + "outputId": "403b3406-5c1e-43bd-ff96-1426d414065e" + }, + "execution_count": 14, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAABlUAAADFCAYAAADNJnRaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9ebAlR3U3+DtZVXd5++tuqXe1NpCgbYuRNCwCD2IRIDwCjCUQgwgjYxwKI7CNHWEswCjAhD/hiZiwDBOyh88YPmGbEcJjS5hFxggR8CEQWoxWaCF1q7ul3t7+7lZVeeaPzMrMqlv3vvtev+5+rc5fRL++91ZW5snl5Mk8ec5JYmaGh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHR1+IE02Ah4eHh4eHh4eHh4eHh4eHh4eHh4eHh4fHyQB/qOLh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4TEA/KGKh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4fHAPCHKh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHgPAH6p4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHgMAH+o4uHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhMQD8oYqHh4dHCd773vfiYx/72Ikm47jgVKqrx8mPU2m8nkp19Tj5cSqN11Oprh4nP06l8Xoq1dXj5MepNF5Ppbp6nPw4lcbrqVTXYwF/qOLh4bEmcOaZZ6Jer2N0dBQTExO45JJLcMstt0BKueS7d999N7Zt21b67Mtf/jJGRkYwMjKCer0OIYT5PjIysiq0P/300yCiXL6f+tSnzPN9+/bhrW99K9atW4dt27bhlltu6ZvfpZdeis9//vO53/rV8Vjh0UcfxSWXXAIA+PM//3PcfPPNueff+c53cP7552NoaAivec1rsHv37uNKn8fxgedNi5OBNzudDq688kqceeaZICLcfffdx5U2j+MHz5sWJwNv/uhHP8Jll12GdevW4bTTTsNVV12FZ5999rjS53F84HnT4mTgzUcffRQXX3wxJicnMTk5ide//vV49NFHjyt9HscHnjctTgbedPHJT34SRIT/+I//OJ7keRwneN60OBl4c6k6n0rwhyoeHh5rBnfccQfm5+exe/dufOQjH8FNN92E973vfUeV57vf/W4sLCxgYWEB3/jGN7BlyxbzfWFhYZUoV5iZmTH5fvzjHze/X3PNNTjrrLNw4MABfP3rX8cNN9yA7373u6ta9rHAT3/6U1x88cXm84UXXmieHT58GG9/+9vxqU99ClNTU7j44ovxzne+80SR6nGM4XlzbaEfbwLAq171Ktx6663YtGnTiSDP4zjC8+baQj/enJ6exu/93u/h6aefxu7duzE6Ooprr732RJHqcYzheXNtoR9vbtmyBV/96lcxNTWFw4cP4y1veQuuvvrqE0WqxzGG5821haXWtADw5JNP4rbbbsPmzZuPN3kexxGeN9cWBuHNXnU+leAPVTw8PNYcxsfH8Za3vAVf+cpX8MUvfhEPP/ww2u02/uRP/gRnnHEGNm7ciOuuuw7NZhOLi4u4/PLLsX//fnNKvn///oHKeeyxx3DppZdiYmICO3fuxL/927+Vppufn8drXvMafOhDHwIzL6suCwsLuPvuu/HRj34UURThggsuwJVXXom///u/X1Y+RczOzuJ973sfNm/ejK1bt+JjH/sY0jQFoBaer33ta7F+/Xps2LAB7373uzEzM2PefeCBB3DhhRdidHQU73znO9FqtUrLuO+++3DRRReZd17ykpeYZ1/72tewc+dOXHXVVajVarjxxhvx0EMP4fHHHz+qenmsbXjeXBonmjcrlQr+8A//EK961asQBMFR1cXj5IHnzaVxonnz8ssvx1VXXYWxsTEMDQ3h+uuvxw9+8IOjqpPH2ofnzaVxonlzYmLCeHcyM4IgwK5du46qTh5rH543l8aJ5s0MH/jAB3DTTTehUqkcVX08Tg543lwaa4U3PfyhioeHxxrGS1/6Umzbtg3f//738ZGPfAQ///nP8eCDD2LXrl3Yt28fPvnJT2J4eLjL6mDLli1L5h3HMa644gq84Q1vwMGDB/E3f/M3ePe7340nnngil+7IkSN43eteh1e+8pW4+eabQUQ989yxYwe2bduGa6+9FocPHwYAI3hdAczMePjhh1fSJAbvfe97EYYhdu3ahQceeADf/va3jZsoM+PP/uzPsH//fjz22GN45plncOONNwJQoYHe9ra34T3veQ+mpqZw1VVX4fbbb8/lfdlll2FiYgKf+9zn8MEPfhBjY2M4cOAAtm3bhssvvxwA8Mgjj+CCCy4w7wwPD+Occ87BI488clT18jg54HmzN040b3qc2vC82RtrjTfvuece7Ny586jq5HHywPNmb6wV3pyYmECtVsMHP/hB3HDDDUdVJ4+TB543e2Mt8OZtt92GarWKN7/5zUdVF4+TD543e2Mt8GavOp9yYA8PD481gB07dvBdd93V9fvLXvYy/ou/+AseGhriXbt2md9/+MMf8plnnsnMzN/97nd569atS5bhprvnnnt448aNnKapeX711VfzJz7xCWZm/u3f/m2+9tpreefOnfyZz3ymb77z8/P8k5/8hOM45ueee45/67d+i9/whjeY56985Sv5+uuv52azyT/96U95cnKSX/jCF/bM79WvfjXX63UeHx83/4aHhw3tzz33HFcqFW40Guadf/zHf+RLL720NL9/+Zd/4Ze85CXMzPy9732PN2/ezFJK8/wVr3gFf/SjH82988QTT/BFF13EzMyf/vSnu9rgd37nd/hP//RPc79dcskl/IUvfKFnvTxOTnjetDgZeNPF1q1b+bvf/W7P5x4nNzxvWpxsvPnQQw/x5OQk33PPPT3TeJy88LxpcbLx5sLCAn/uc5/jO++8s2caj5MXnjctTgbenJub43PPPZefeuopZu7dfx4nPzxvWpwMvLlUnU8lhCf6UMfDw8OjH/bt24ckSdBoNIz7IaBO4DMXxzK4F489+uijOOOMM3LP9+/fj+3bt0MI67C3Y8cO7Nu3z3z/+te/jpGREVx33XXmtz179uDFL36x+b6wsICRkRETb3Ljxo347Gc/i82bN2N+fh6jo6P48pe/jA984APYvn07zj77bFxzzTXGo+O6667DrbfeCgC44YYbjGXczTffjN/93d815dx999245pprAAC7d+9GHMe5uLJSSmzfvh0AcODAAfzBH/wBvv/972N+fh5SSkxOTpp6b926NWdlsWPHDvP5s5/9LD72sY+h3W4DUFZ78/PzGBkZwac//Wn8/Oc/x+mnn46RkRHMzc3l2nRubg6jo6Ol/eHx/IPnTYW1xpseHp43FdYqb+7atQuXX345/vqv/xq//uu/3rM/PJ5/8LypsFZ5E1Ce19dddx1OO+00PPbYY16uniLwvKmw1njzxhtvxHve8x6ceeaZPfvA4/kNz5sKa403l6rzqQQf/svDw2PN4ic/+Qn27duHt73tbajX63jkkUcwMzODmZkZzM7OmsvFytww3QvIikIUUJdSPvPMM5BSmt/27NmDrVu3mu/vf//78aY3vQlvfvObsbi4CAA444wzlrzcLKMny3vHjh248847cejQIdx77704fPgwXvrSlwIAbrnlFpPXoKEGtm/fjmq1isOHD5v2mJubM8L5hhtuABHhZz/7Gebm5nDrrbcal9PNmzdj3759ORfUPXv2mM/XX389ZmZm8OpXvxr/+Z//id27d2Pr1q2YnZ3FzMyM2Vzu3LkTDz30kHlvcXERTz75pA9lcorA82Y51gJvepza8LxZjrXCm7t378brX/96fPzjH8d73vOegWj3eH7A82Y51gpvupBSotFo5JRrHs9feN4sx1rgze985zu4+eabsWnTJmzatAnPPPMM3vGOd+Cmm24aqA4eJzc8b5ZjLfDmUnU+leAPVTw8PNYc5ubmcOedd+Lqq6/GNddcgwsuuADvf//78Ud/9Ec4ePAgAGW18K1vfQuAOh0/cuQIZmdnBy7jZS97GYaGhvCZz3wGcRzj7rvvxh133IGrr746l+6zn/0szjvvPFxxxRVoNpuled1777144oknIKXEkSNH8KEPfQiXXnopxsfHAahL0Obn59HpdHDrrbfi29/+Nj784Q+vpGkAKGH4hje8AX/8x3+Mubk5SCnx5JNP4nvf+x4AGGuC8fFx7Nu3D3/1V39l3n3FK16BMAxx8803I45jfO1rX8OPf/zjrjIefPBBXHDBBbj//vtx4YUXdj3/zd/8TTz88MO4/fbb0Wq18MlPfhK/9mu/hvPPP3/F9fJY+/C82R9rgTcBoN1um0sHO50OWq3Wsi9W9Di54HmzP9YCb+7btw+vfe1rcf311+esHj2e3/C82R9rgTfvuusuPPDAA0jTFHNzc/jwhz+MyclJvOhFL1pxvTzWPjxv9sda4M3vfOc7ePjhh/Hggw/iwQcfxJYtW/C3f/u3+MAHPrDienmsfXje7I+1wJtL1flUgj9U8fDwWDO44oorMDo6iu3bt+PTn/40PvzhD+MLX/gCAOCmm27Cueeei5e//OUYGxvD61//enOR2Pnnn493vetdOPvsszExMYH9+/cvWValUsEdd9yBb3zjG9iwYQN+//d/H1/60pe6DgWICH/3d3+Hbdu24a1vfatRVLr45S9/iTe96U0YHR3Fr/zKr6BareKf/umfzPNvfetbOPvsszE5OYlbbrkF3/zmN3HaaacdTVPhS1/6EjqdDl784hdjcnISV155JZ599lkAwCc+8Qncf//9GB8fx2/8xm/g7W9/e67eX/va1/AP//APWLduHb7yla/kngPKWmH9+vUYGhrC/fffn3O1zXDaaafh9ttvx0c/+lFMTk7i3nvvxT//8z8fVZ081i48bw6OE82bAHDeeeehXq9j3759eOMb34h6vY7du3cfVb081iY8bw6OE82bn//85/HLX/4SN954I0ZGRsw/j+cnPG8OjhPNmzMzM3jXu96F8fFxnHPOOXjyySfxzW9+E7Va7ajq5bE24XlzcJxo3ly/fr3xUtm0aROCIMDk5KSXnc9TeN4cHCeaN5eq86kEYm+66OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhsSS8p4qHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh8cA8IcqHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA8Afqnh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eAwAf6ji4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eExAPyhioeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHxwAI+z180+nXOd8IIFIfhQCiEEQEJkBOjAKBOp+hxSZEO3ZeU+8xAFQrgFB5pEMVyHqk0kiG6KQgQKXTxQEAJRIk1a8cEJLRiskvGQ7AoUo48tJpjL36CAAgogRbazMQBLAEfnD3r+LI4XGVB2COkoKWxMaftCBS9fv0i6toTwYAgKFnO5h4rKXIYAZkeRuxIHAkDE1ctZ/TmoCsqMKSKtCaVM/AQNAGSFe2MpciauovKSPQbQFmUCxNOiaYPuiMChx6SQ0QBAajfZoE6+bcuf0Z/OqOvQCAuakh/PCOl0BKATDnyq1OJRg6mGj6CFMvqgIBAczYcN8cqtOqH9N6iHSspl5KUlT2zZg+MX0MQFZC8HBV1V8A7XV11d/MqO6fQzjfNv0N6TSorhczA50ESFP1uyAgitQ4YwbPz6t3AXCS5PNwQFEEErqTwxCI9DBndgYYgFoVFDjnitn4dr6zQx8AnP7maex43yEAQPNIFff/Xxcg7QQAM6KZDkSsaKJ2B9RogwCkFYGZizaqccKM0Z/uR+XAgm4LqejS+ObU50vrVMQl7/g/TZ1I2j6lWCJclIqXqhLy92aBMUVT+NUqgh/rQZKkEIsty3OBsPVfaADNlm2TiuoDAIr33c9Z+zEDSdrVfgCweOYoFl8wodMBlGr2Jkb1siMINnYAALWgg9GK+iyPCCz+5XqgJcBgTF/D6LxAZVG/N8HEP8WW9jBwaKLufiyCGWjHIE3vwnkR9l07BhCBOsDW2wnhgsojmG4gWFQ0sSCgVtE8zKCFpp2b2h0g1rw0VsX8xVvt2J9OIHTTBIsxwobiq6QuMPWro5qHAQ5smwUtRthSeVPKqE7bOaGyfw5BS5WFdhtotErbHSPDQEX1d3tdFY2zRtWYJqA9Toa+yfsOo76vod6RMs9Xbn87ebOUpr7MDCwu5saxber8b1StGN6U7Q4QO7IiCCyvJ4nl1TCAiCKbX2rHmRgdBWn+jjeMIN46qcppdVB54CnVP1yYbwTZsqIAnRefocYQM6LnZk1/q7aw9H/jmb/uql8ZLhNXDZROEarbtqTtjgfSMzdBvnCb+iIZoi3NOAumFiFi1dbJaBXJhmGVrtlG+MNHQKkEA5AXnAter+QrPXsY4rHdWIIDB0cQgKpVOy6azZW1VdbO9Rro3B1qPmMGUja0sptOMpAkVv63O4bX5eIieF7N31yNgPPPVvMgM/DE08D8ospDCFCoxiYz58d6N4F6rQRQvW7r224DSdL/nSKYYZinrK36jbml5s7SskryKPzOmzYAZ21VX1pt4L9+ASqT3+57QYBgyyZQEICZIQ8eVv1fgrvkbQORuyzeXAl69sfy36PJcYgN67vSMTPk3v2OjBagINBFMZA440wIM99ycW5fKVY6Z5k6OuOWyK7V9KPsWW4dV6mAalVVbBwjPXiovAyXJiJQrWZ5qdOx9Q9DiFrNvpNYWZZbW/arYxCAhNPuBblJJX3alY5g0nFhLdgbfdY4g+RX/G39JMTWjepRuwP+xVM5udcTjrwurmNdrBpvlswr5nfgOMtQUmsjUy7nnznr0Rxvdjo2mTO+OU37zPMnECuZz0j0eK9kjJT1KRXabBBe7Edv/xfy44dXYX5cbRzD8X3ceHOJdw0fuHv0Lr4qQM+xuXcAIAohKhWbh6bLyoAec6Lb9z3H8BI09cQyxlnPNsvr4DLdBcv8nigne4LA7I84TXuun7p5sLz+FIUQ9Zp+xe75zVq1H6/2kvkFnYJZm/cb70N1u49cWAS3WuXptIwCABodgRgZUeQlCXh2zpI2PGTmHNlogh39Bw3Z9bhcWLBtHdpxptb3iVN3S3vpuqsXvzgYlDcBr6v1ulqvq10rutq+hypLgrnvoovLNhW5z1pp2PUs36BdUw/bl3L5ZV9K1iCcy7CPoC8qA9ws+9TLbQsu/t6DKHZVTyXldrdLWVuwTdgnZT4/ty360dedm8mjV9+bPPrnZ2nvVtj2Q05Ju4pKIXaF3FLjlrufUdnDroTlbUFlaZdCn7y76eiTzqGeu3sopxwto5D60t2vLVDKp12luOO7mI5RznMl9CmWz6Q/8ouCHI3d+ZWn6/Gs8N5A46JH3n3HT588SpvLzaNkk1ZMW8ZFXEJTGR39aFvq+VLvurSUD4uS+dt2u0WRx/vx5rHEUm01QBZHTeOA81RRBvTNY5Ux6Ljok0FXfl28WbbRGZDXB65/HxmTW0P0yq/4/qBzySC/L/VsgI2gm7arDj3WVkB/OXLUfX+icLQyHU7dM8XAishYg+3n1KtYRzCXHkisPglLrKFWmsfR0O7mt8J8eq6R++W3wjFyXMfWsuaz4yA5V6Hua5I3XayUvuXKw66fV8ibveRrl9K49957zWGt0zcIljuvHeUc1mXMtZI2HKTcfuNqqbRHiYFlzzEud0mdTL88ymT+cvNYBgbde2afadD1eFn+K11nHwssMTa8rrY/UV5XW8jD62p7ov+hirYOBqAsnrOTIinVKVVWjCBzqulSwZUAyeQwQAAHwMxLCemQzrrGCKrqNCyYFqj/IFSncgyIhmNNEAhwQOazi+Z6gbSmnomnawifUiecyUSM5m81IEIGM6G9TqITqBO1oEkI5tQJJxUOzyozEiJW+UXzsOUygdLUNGYyFiGtqjyCVoJoWtWDQ8LMuaOQkaKzfiBGNKu9BBYJYVNbFgjC/PYQUrd+ZV4iaCSmOTnMrDYIImVDpzr9VJ9FhzH2VKIUxIIx+uLDCCZVHq8+bS9eN/YMAGBvPIEfBYyUARaAPK8JqqkM+XECDuj2SxjDz6VgoU9HKYCsq7La6yMsblVjQbQI63bHoETl0dkyDjmsTuuDhQ7Cw7OqGkSozjcMvZ0NdaRbVIbhdAu1X06pziYChocsc0TSjnrKjylOUnviKWVxRtT/MahaAbTVAYIgP25cCwkpgcR5X2chayEa564zp56dUZi+Gjqjgw5PqTpRiNZEoE4/AQQzTQTZyX+cGCsOISVGHj2kPB0ABGkAjI/pxm2D5xeXvb2rPW4tNaleBULNqwRTd2oygtsEoJuC9tv369va2PzGAwABkgm7m+sRS20dFofgRDGqOARUvgl7+h+GeYWeO8Ho+lEAXHDNboxsUlYxTz++Fb94SDWgjARaG2uqLVJg/tkRyIbKfOL0QzjvjAOqWRoRHm2PIm0LEIChe6uo7FJ9F+1lIM0mVQZHFUPT9EURWptUutq+BJM/bmuvHWDxigBcU41U/2GI6JeKpuqMwKZ/U/3GApg+rw6prSomfhZi5Gld+SQFpmZtfaPItkUlUt4OALhWQRqRsrKQhHCujaClxgIlEkiy/GxWxIzhPW0EbX16vtCGmNNWRZIRNGMzPqnRBus84tOH0fyVTar5OxKjT8yatlk8cwTJpLLuDeY7GHr4gM4AqNct7Z3JCpqbFG9WZjoYftJa8Bi2ApQlZWr5j12rS6D3uHD4mOPElfbd/Ji9UrF9SkLYdNUQ7TPXKcFKAEWRHXciACW6XCHQ/LWtho7qk4cQzGnrIxHY+QEC0YE5kwdXQqR1NZ9RK4GYaxz7g5V+CAVmL92OVM+xLGDaL5xqYvx7e0tWQP1BDg+LqXnQw0+pB1EEbN1onrW2DEFmMlAIkP5MCeX0UbTnAOg5NSdSs738OhJBTIybPpYLC0DbegtxW+cpCLRhnUnHcwtAL8u7Xmh3wHvURMhEEJMTak4DdJ2yMSxB7diuwoSdR9XYydpCAnsP2EV6J1HjCwDVKqBh5d1DaQo5NW2rHEV2DKYpuKPlhmRldZeN/fFRoKp4GK0W+IjOI7dAL8GJUMREIWjTaYZ2WY/MGoqiCCKbO4SAPHebHrcM2nuw29sOAKSEPDJt6ylT1W6Asv5L0+53jjOoVnPkXmD6ntMEvLB4VHnzQsNaP4Yh6PT1Zk0ixkaBml6gpSlYe0GRZHCa2P4vzsUrwaCbn8J6zQosMu0CQM/z2WIrRX4ysa+7MqAfDVStWl4iMvOD+wZl5ToyxswrhqaSz0spyTi1BJt2ZlAQ5mnP+JnZsZTm/Bju6qfudimliZ0P/XaUrqWwu44LQ9tVDHAQ2s1R6vRVEW47rTHFL0XA1usZoXb0CoghdD2azxD2/p3oadE6GLi7WbJuCYOc9SVV9XpCSsi4Y99Lkvya6XmDHlq2TI5m6OU1585ZRzV/lam6imT2VYN5ZBjQ40R5OOjvUit0SiAmxu2+nKxig5IEcmbOvjfwYZqjD4hj5fml8yZHj0XOXAcpwdKmgxTl5ZKz3iWy83cZbT0VmD3m4l75ZLSHVkXHbiQIV//hyhRmUCXK8xn3oNfx4kAQmP0rhACG6sgs9akTG17lJLFeHGDlJePS5Navaz3gfu7mbwZyfYV6zX4nAjtRMXh2zuxFuY+HH1VsZARICW44+4VsXc2s6qS9hzhO9LoEYJZ6j0Ewc34mywt9yL3k4fGYVryuVlfE62q9rlY9O1G62r6HKsYFF1CMmrnmdGIgI0hCL5a6i2JBkCPKxUiGjIXzJRLFS6hVO6hWNPPsZ9TujdRIZAalEqQVg1KHagH0QHWOmuJhQjKsGj5+KkK8S4+sjQHit4UQAYMZSOpAqidMkqJnpcMmIDQzBm0GC6E3Y2riz4pPawHSYTVwKZWgjgoTkoLQmhCQNeViVDvECJupaYsgVgNTBkBaDc0kwyQRaFckKQgyAoxVKFH+5puMUROgfiRVzwOJDSPzqGxQiqhzRmfwv9RnAAAjVQEiVnkQwKfHwJim6dkAQFYPRmVemnKJBLiiCouHArTW68G4KMFSmtAv6XCEdFK3e5wg1CGlACBodpQ7GIBk+wg6p6tZmtMU1Sy0SiZ8s/ApQoCc/bcF5zfFrjDnwuItDO1iRNhNNmcHDlnbttr5BZLuewmB9oaaEhIAWhsAWdWKxskKUlYEJhBI6gJpqGln1S7qoZ1UKGVUDyRZLcCjw8CQFejA8pUvlYMLJj+MAdBdwKGArOs2TRjBgwSSuv4VMhwfTaSY/N8WQAJImbB7agKpTidlANYJxS8ZlbucyTMILK8nVnipxHqgComtL53ChvMUjY35ETzzn2psplWB1uk1tXkH0J6rIkn1BDYGnF7V74QViCSBTAIwgGgPITyoaZp3lEZZGAYdQqtxRoCFF2p3Z8GYvDcT+EDnVwE5phaKlV0Bor2q3LAJjD2seCKtAIdeQojHVF2G9wi72ExToGHHN8ZCKwREAKN1jUIVyksQQAzRihE0MuWL015pfs6sziSIFnS6uQZoel69IqUJHVQMH5JUh9HaoSZV0Uww+uQCSNs3dNZX0N6oBka900Hl2XlLexZSCUBr8wY0tynlL0cNDD+9aGl1+cNRZHaFq+i3iCYgFybEfeS6/buHKmFg5I9OCACQlQjJlknDm3AWL0EzRaQP6GRAiDePGZfWaN8MggWtqBcCmXs7AaD5lp2nNo0rt1gAAm1g4QReO0YEFoTmeeuQrFP9KAWMPKg8M4/xe5Z/qOKGBBKNNnhO9TfXqsCm04FAtUU8VkFaV30gYkbY0QWFtp8JMON00DqpwvKb1sz9nplBrZYKp5elyzbIrNPpDYRstbvDGSzlTZGmwIxzaDgynFfCZvRJCSSOm3vV2ai6IQYlAzPzZnyTZJtfGNlQCYWNHwWBrYcrvxh5ZVutBjE+qh7NkT1UydpmUMvEfsq75Xig9IMQwMQYSCje5PEqONKbonYCamoZSARsmLDlHpwCGiX5MYMb9gFFUW5O4JUcqqzE+r9P21AUWpqcdWKIBZgAACAASURBVAd3Okj7yfVB6Oh07MF1JQJhveIVZqBaA0V6w+WE3eBsV5e17ar0NznvFJRNZekA2I2B/d3IgC7ruz4KiIzn+jQXRZGz3nPkNXMuRCVlaz+UyK++oO66Ftu2qEQhJ8SJc9Cj1rhsaFryYNAchBSUOKbYYtv1oEnnlQsLY+gTNmwFA0R6PcWstBm9hsqJPAhY4jCCQmD8UqB2hvoekESoKzn/EGHv/7Macr1Ytla2CRuOD1EIoZV3SilK9r3VOPAEBufn4yEDsvxL8yuEeVoqD/f/lcDU1/wpFrKMPI5xm62VcnvS04NfivO3E3qKOenZxOQqzAE7L7fbyPHHoHDTuiFriIwhIGn6rAwAKFOkm7VU1rbFAz9Xfq0GHJnaS7YR5UMspk74GfcQqUiTO/+4IWsK6cjZB7iHvxACGB2x9DVbRq8hGw3IsjC2PcZpV5tl48VNXnyeHVpEIShbPxOBdJhvlhJ8eMrK737rM2cf6e6jQaRCipITVjjb2xbajDtxXg6LEl7gfnQce171ulqvqwW8rnYt6GpPoMbIw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8Pj5EFfTxXXupKpalydiNXlV8pSmEBJatwA041APKStYOtAfZM62ZEBgaIqWKpTJJkSkkTnlwp1LGROomBOopjIhiCpAXRWx5wAVuIAYkafVrbYvC/bhMbjw6BQWWxX9gPDOvxOsMgIdQQfEWdlZN+tq7tI7GkaB0B7neOGGZBxqSIJYyVPJFCdlZDaeJYFoTNqj/KEPsOSAVCZZ6QtlUfQdiyWjJEEg6BOgjOjiWRMIB621m9ZiCISAVrP1CFnVFlPj2/A/xxX+e2fHYVoAkHKADGCvQJUV8/CQwBlroGC4A4HaiegjmqzaDZFbb8iQrQTewpJQGVjC3KrbrMgAZ6pqhYMAXkWmywD6iA6qMZCMN/Rp5PZ6S4hc9/KhULR9TTtkrPscqwdyJ6Qq2Po1FpHBAEodNKJQluXWBdQyogONwxd4kyA9T3rYjHB/E/UiXFnMUB0oAmRCNVXzY5xteQAkPrCKBZAez1bC/NGiEC7LsrhCGllpIuGJZGFHIHm08wjNwwKRkVkxnc8EiAd1t4eURVTT04ABEgiyBFhLCjTRoikqeoYzkkg6Niz5aKRg+a5YCjFxIsbxgN8as8oWvPqhHd2b92eBCdANNVC5mFQrwdI6yrTNBY41FZW2Z2ZENxRLn8EgBptZXUBgFrKHZkBUAWovKiVHeJjeIHBT6g+qO1P7fiRQPgUgYf09xFGcr7MWsgaogpg6Nk2kkPqh2gqtu6ziey2UtHjJx4Nkei2TeuBtmBQ5XIgwCILp8GgzNWwzajsmzPeFDTbApo6XSexIamiEK0tNTvvHWpBZHNHDFQPqc4XnbxVaTSXqFvWoKwlOhu1Py8D1XmbNpppQzspIZpqK/f5LB83XEqad+nMWYq7nipSGnlA2YDI0hQ8VQy5ZVb3jlt45ppNSYpgumHaRg5XjbeQaCUgfcGaEEAorawQKZt0XI3AI7WMcAgSlo7AfpaRAA1VcDwgR+vgrCwJBB1d30hApAKirfnMMfSIGgWLr155RwHizaPme+Vw01xAn7MikxKYndcWZkAgIpC+vE8kbGSiCYs1CIphCMqsuViFvOIsbSrLLTUZyk1fzwMcl1ial+UfBOXhEIjArY5x/c2NYWZQJ7HGgFJafuzE1tWfAGJh2pFdC8Ikhsw8adL8uEclAvQllwTYUEREQK0KM3CTGDyvvRJbJaHVVsNycrWsL6UE5hdtaL6qMG1BjTZ4TnudEAGRY+IUu5esEhA44dhca1Z2xnsYKsvFowJZecbmTzeqVev9QOaPpjfvrs6ZpV4wKG2Ud3lP0548gkbTxohux85FkE64E3ce7ecN0zUXU65aeRqcdu/XToETm9BY/AJda4YBwW5bEGxbS6msat31X8Z/aWpCdyjTx7Q0v74Wx2ForTkl5z1yQxv6T/WVYxGdwVhqO5Z17gW+Ttm8lLdCMW2xrOIatl//MBuLbKpENuwh2M4xaVqw1O1NWo43kyRPR5k172qirC2c35kJh2ZGEer9Uv1wE9VptU5qPEUDyS8OAySnWYvt8PACKO7jWZTRpNemAEAxQVLb/H5MPAwGzfNEehZlJPQK+dWV8Chpdfmg13x6tHQcy/Y8UeUOUqbQmzfo/4rkZGmFKMxNDs9KtjJL2jkwt6YreuS46zMiY51PQH7OKqE9t8/I0Ev+uXuWIorr0h77wf6/6bJ6zWGFsqyMGLDfXf2H451IYQAOh5zs3YufnbYXBCw2dPkMtO16NxeCrEire+E8oOZBY8HvhIXLyXXKtaG7v+Y4BcNeGA8n/Jfy1Blk8yOdViuRFaZdC+Mslw75/nae59ZdPcdf4XtOfq8OL3tdrSbH62q9rvYE62r736nixB+UkyNG6UNJCEHCyqDFlnEfX7g8RPMSpUwdjdo4Y2IvQEAqBXY/vQMc60p2QiRZuKE2KRcyJhtzOGO6kJAOKTJpY4Lw6hkVZScFRv9BgPer/IJGYt5JpkLs/+9bDe1jcYoxqcMouJtiAmQ9NA0YLeTdVbP6yUhgemcdrFtrdHeCypweuAmDK6Fxj5rY1TEb38WtEeY26hh2HaA6k5p2GnvKlhU0rSKGJCPopMrdkRmiZdMtbqxh9oWZko9M/D6SQPT1DcolDMC/TmzHbeOaWAbCBAghQcyoPBFBxNo9rBFDLCihxZFAPF41lQ5mFyEWVZsNHQaGfqGLZQbaiWmfsUuOILxYPercN4SFPetUshFG5/pFYEgRX/nsDOo/0u+FATCs3dCI7F0UgHLzcmORu+7ivcI1CAEatosFbrUNA1KlAmRura6yoY8QDFoJRu9XcfcpAGpvB4Lz1bP4TmDP32eMRRgRB+yLzmIhPW0UnbM3AFAujc++niErqpKb70oxslv1VXuijoXtG8rr1Q9unNhG0yx2RBQCbact6lWzQFzYUcPiNsWbYWsYs1+ZVI0eMSpXHQZpV8POs0No7FF1rEwnGK3MqrA2QG4B7CoLhk5v4cKPP61iY6aEH/3ZeZh90irxAU1fJ8bowzZc0OiTdbDu/05SwU/js2zeLTthB/MLNn6rE+KDRiXWvX8WQuuMg7+qofk/ddtEITCkJktKCKO3h0Yod67soPVWTRNJhIFUQ78JbPlEGziSNaAjEJhtuxMpCZ/x5o4hzL9w2NRXJLreTOBqAGRVabTNfRHBYoLxp/aXr5WrVUC7PsvxCIfesg0cqfI23XUItecU39YahNr9U05/wNA3+uQCOFCKzNamGqZfpeZE0ZbYcM9zCLQgHnlsGsOZ0teJz9/FI66Cx03XBywESDjKl5zSsKDIy8ImEeXXuc6GiRZT1B951ryenLUJcli1U3BkAcGz9s6JyDn0oSgyMXTl+hF0tk3qdEC4kJiLLNOqDW/HQxXI43SokpyzEcmZpwNQ/RPogzIShKgZZuediBYlQr3PCI4MpqBIx6uY+Y3zgUBtZtd99Wdm0ZRDJwaeeNp8rXWnWDYoi1sMqFBGZeFumCEPT9nv7h06gO1/ZvCBQ8t2pqdaDVSv2x8cOSKnpu3GyA2HAIB7bKxzilsA7IZocMYqLybgxbK4VgDGRlToMUDJu5bu7yAAbTzNyr0DhyAXDpXnsdYQJ+Cn96rPBARih4rBCwCHpsH7razspWenKDL30CAQwPpJK7cPTwM6njdVK6Cs/ZaFwoFITgmQls7FtG4CNKHj6hKZ9R0xAwcO2zFdicycbULEla0xsjAjuo5Us5zmhqHIpUsZ8tmD+XOPXlV07i+hoIdyCMjfKeKExlJyxJmnB1XouAdJ7Bza9Dvc6QNuNu1eLKmCnPzE+LhN2OlYnmt38qEDuTBH5mgpb00xPGQOPLnVAs/N23KrVavsarfBsbMmcdvakZ0c25j0ywLbEA99FTNumf3ghtecGDNjladnwHv2LY82ISDGxgwdcm5O9QOgNseV4yM3cwfm2R6BGSkHuO/xcxAfVnXc8I39mPzBQZVMMiA7vXI0kKNVLL7mfMXLkjHyrYcRHlk6/IO7LuJ2G1g8uruV1j6oMB57KRf7KB5XHcezrFMBjmpa5I1UOGcw4qQrGrNkvxOB48SEX+FO24ZplFLtV12FXAYh7H2hQuTCh3Ga9gylyFKWh9CCWl8rmpC7l4ui0NJeVB4660cKQ/uelIr3Tfa9xl9+bJJzJyiAbkOn7LcBh7Mr16lWA7L1RRRCrJ+06q9G24a8WmyA5+dtWTOzuTx7y037XNTr5qCeOx0bupUINFTLyU3ThsKufzIdmqnHYsMeFpTJ8qVABBkn9lApCPJrlERbbBbbtnioljr97a4Z07Q8BC2bP+UIHLWre/9dWZjRQeF1tYoGr6v1utoTrKvtf6iSVTz7UGKNZRrEfcGJP2jmCXImDpswV07P6aQw0WT6THCfdxhwNySU+91+tBmW1aOEjn711ZnmdILmmS44m8RLsu9VNLkfnNNAJoBAYNJfdEpVZVuuszXXn23uJlXZ3r+ErryFn65HPnP1h3RDCPSsbxbDz2TSy8pjQEGzVMzTJdvbsQxxx4vb7Oo3p/0y+nqVm1l7UKZALsuw5PsSIIdWQ7/OHszdbVv4zFAXgymSuCtZF5O4dexBa7YWMWsf7l0ncrPO0Z4vl7I65nidc+PClKuZzuW4Ir2E7MYRp+Cu8VugqVjJnpVyeDP7WtJmuRmhz9orF0PdjBnWc+oAdADdYz4bh1l+hbbtSc7RblD78Ugu2QB8kI3vQjf2lQdleRfGdCm/5Ao4duDigpoUb3JxPK6UHHf89EmyqjD8ufxY1MX5bdDxs1R+7rzRRVPZ95VucgYjqps+5/vqxe8uL/PYWtrq4vJfLRlLvE7ugYLbFiXttCz0eF/lT+WEkbX2NMvHvgcmhe8DpKNedSz21wD1ddcyWd5FlI2t1eC5Mj5b4oUBcy6n96h4pLCHKeatSu2mr2dfobutjwkPLwcD1fFosu/dB8vmzaOgAUBXn+R2Prm15WA1zq0H+i3UPMrHWbH/TzQveKwaXJ6jAeaYvigbFj1kT9910kDzTf8xaPPPy/zB51HKNq0D0GIyKG/PVULpPtLs+VcgA/rQ1y+/QWXFqqx9e+oo3N8dZaCbxnm/7zqpZ+GD7XN71vEo+t/rapdK566ndTIUeNzrar2ulnplWPK9gP7hv9zCs1NJ9zmATMGXKSopAahlmVLreAEmhEIiFOpklwQjO76jgEBVXWkG4Cpm3UZgAB0Cp1CG7+wym9N+BLAgM5ApsXmUNWfGUI661TwwWUrOjO01nfnBl7WFq0cmBqAvcYJka+2fNYqNINKtfHWVfVlZEiDH1Y2kGgRqDuTcYMk+CcGoV2MzRoJqqtoeADr2tI6IEVYTG4pIOHnp9tQZAqkwDMSxBDd027azMcIqzFGLwVk+Cdt66Pob11ApbVgLtun6LWTKYK05nDzA1kIvc0d228u1GOnBLByTNWxLga6QD2Z8OvllMzWr/glFakIsCZaO+6SwdV8G7Fh3p2HneZF3kR8/2eVimdzimICOzifNTzwcZGOQQJrvVNF2omUmJA0BETFkonk0R4P9ENStxUlKnGu/XMgM9//cZ4IrHWSLgEj1K0vq4mE1VqHanLTg6jDQZJtdoD83M1pd4dtNA2cTcJZFyqA4C/EBiOw+PGccmCzcvuvV94W1n+o3bSUhHTqEsKFKzDP3XWf+SRQxlKjxxz3avWzs9P08AErzJ3f95i5iyR6mFcszLMfl80MfujjXB+Rmp/gUikdylz3rbj7WIClNGCRlwZeNLQJJNvxKTt8DBOjL3QEAqSxfjDCUe3Cg58J+9VlNpbueD1eSS24eWAU6cmFHeuVd5MelQkCYZNbDqiu8SS/+ZrYWng4vEpQMzcbgqihle84xfRaYZVguLe6acSXzRckCP2dEQLT8sdVP6dcLUtq+IlIeX1k+gkyYhBytRNpyS0tY15qXzR8jDMr7uWtrMxi9vdYxqiD7ZZD+X84YKfB6bm3slr1CmL53+TT73EsG9FLsFhVNOZkJh4+7abah/rrzW/VDlF75reacuNKsMhl6nA5PSlFcr5jfAdFJQTqUCCVy2X1DDBMuhZaSmyc7VkPWm8/mj8fzBYXxUcpLJbKiVzrqt8/I5deDjh4HqaV55OhwJvuCwqz3PFZQABbqmX9WQrtRGPeey7nwfWm49egvo7vCUGbzNuf1JH3nR+5Tlqs8HnD/1etZXtl6FGv/bH/Yr217tlt/ebbkuB0QOUV1voBl5+V1tQ7reV1tlqHX1Z4AXS1xn5nuDbVrbMINkyDtBsRRCGli0rMdjAAQJOBAx8Q7J0H1dxsgoVh2UzSHkNSzA+0xTHWUG1DIEuPtjhITKWHqHzciOaxcxUgClHnYBQwxZN2KYq6AWccEjKWOswfIiDB/RsUwzfiTTUQLqX4WQFasCyAHTiNJ59QrVYosghqo6ZB1+wsaqSmLA4IMbey8ZCgwDS/i1CjDRCIRNKwLKcnCLJNBUI4+F8lIgGQoMM3uDoraoY6JHbi4pYrGVuXWt339FD71W/8foiAFM+HHjdMxmyoXq6e/uQFP/ONmAMDQpg5e8eldCKoqLuB9f7kD04+o8BrNTUNYPFeHW2BG0LKTw/Ce/YjmlQsYJyG4o8cFMXjcmekOtkCLZS5henOXtYUbXqpLqLqzIBVkn6sMdEKwOH9BAsIJtYFAWOaMIuNO7LqvMRHaLz8NclKHzXpqDpWHnVA1LpzY2zw2DHm6CjEUTSQ45+NPIRhW4UX2/rcJzP9Y5dfaNoyZi08zWTz0Nx8uz7uAyy7+hPksDs+AFrT7Z1HhULNut8m6OuSw6ntZDdBep2P3E4OGpLlTpRMGSIxLM5v7HQAgbLJxZaztX0TtOVWuCFLUhhdMutZBAZkNd2kny+qWFC/6y2mICoMl8IvPnI6FJyq2/ZLsJVKuxFld3BAaYWhcmkkAwWls3EKTVg2caNo7CbDQ0MtPZ8IGwCMAqlYgmLA/DFCzooUglJtg2q2Q5axeWRWHInDNOaN2hnDQccZxNQJXtdt6ykCjZRJT6vABSyPYOSAk64fNvBLOtsz8E6+ro71lTL/PqB1sWlfThaYzjoE0WxgxQ8wsWvrdkEVSqjBNS2E5C79eivpCuCUUYvwanqaCEHVi98uzt4B1iDcxPQ9xcNqWGTjx7zmTnEB8+hg6Zyueo5RRnWqbthCNljnc4FqEZNy6qv7nPR8dqLqXiasGSueCK6EJg0fDddD2LWbRLSs2HrGMAhMvF8z2vh8pET64S7n0F/MWBDlc0QtXQCx07KLRhRAqrI5uazk319uNd1Cs5iHN0dBQZrkF5EPLjYxAZCGliFT4wBLIuXlwFh4hDCG2bbF3/Ow/YEN5DQ9BTE7YF5144XJ+ARxrPpOcD/nkhijodcfGUvUtrCnMIze0Whau4hhBbFiv7r4AwAuLkLNzA7wkQKGeH8MAdMYWkFD3HPHeZ83dDzQyDHG6dcX+5i/+aiCaLgve4ZQVmPmnr0LBaU6q10FbNtox5B6iUd7ilNnGjOen95q7gLK0Lh0WzsYhCJxneoyYHVhhPPe4w4LCwMyrnCT2Xh7S92pkcGPSB/nQKrmxJB3ldFFWuHk4c3tX6JKug0z9UQgTdqsrP3e9GwYQ6ydhvBXbdv6WzSY4C7cUBAjWrzNtnU5P2z5w26zYfqljOVJUsJQdzq5VlNZLo1pBFlOf0yQ3Nw2EIECwdbPJXx44pELX6WdUqRhe+NbCFwfKciVysxRabqbjFbO/C5qpuYdOpXHS9wobJAiyXjH6S9HsITePJ/r1qYfHMnGXvG2gdDneDENzn4lar7jrJEfBF8d2/UikY/NrCBuSqFvBaNWf3G6XypTse5aWImev6B6WSAm52LB5RJF5JioV0FDd0JC7sy60awPZ6YAX7f46JzfdcGJRaPMDcvXlOLa8KmUunBg74SvdNYmLTBFsf7AylYhU6NEMSZKT0a4BiKjVnXys7FVhM521gaM34Gaza53jfIGx8C4lWufXYy0NKXP3geTfX+W5NrfmEhBRZOvvzOtUCCnphiBj9+6wFdKXC4lcDA3q0HhX+v8OnKfX1XpdLeB1tWtBV9s//JfbSKm01u0BW8HFUJZ7GtRQlycDAJ0OpCyUxQ8k6pUOqvr0c1bGiPRkElCKYDhR2cUErhBYX2RKHQlznpsAPB3YM/pRAvQFQCzIXkQcEtIKmZM8zimaYWPmG6JVurzixal7phgl1SYiZfOYGSZ+Nmd0ZCeIKRDomMuUSFDC+ZNOUxasAGM2bkpceEYJTDx9V6hmJ9Ou157ZTEQSG9fNoRKmkAyMDQ0j1fHgq0OxGd5CSIxMNhDWJVgCYWQtGjgUJlYiJFseYYacJciDOpOAgYoTw/JwRh4DLYfpnFNCFefU3Rg4fVUms8oWTlzI230xt6gAOE0tc7qKia7+t5/lYog0UEwsmj2sl4t9KhkiUW0opMRIpY2wmoIZCDkGJbo9XQvY5SC7OFeP75zSuWCZki3Sgg5DaI8McwWzlkS8GNiT/jqBsrUmCGktMGOfJJDduc6h9ZKQiUDjuYr1MHCVgdllWQCIUlQ3xghqAKeACFN7eCCdU2G3Dwun1BmyuzfSQw7/1YS9BJkSW25hnNEsnDbn/HiqI+/9UWzXEppEOwWl1J3OEmuzM0pTqRbv5h3H2TMBjLmFBMLF1M5TzsKIBYGreiwl0l4I6FoaAECSItT37rCU9gLfYtsei8tUB83P5UE2fxRyinDVX6w/U8mQydrTWs/kHpo8WXtKZX1ACZsFT5pK6zJ6jEGdxF5E52xSCfrSejPvMThb7xOB6zoes3u5ezFvyQjmSy4570pISiGWWdysRr2X6vslrOxWBWXzR9lcL5yNPyF/z4T7qlbym3ejUP3GnJcpbtxvR16b+bFMkeksEpeNIq3OdyMfXMW/uy46Bn1AUtq46YMqIxkmBrqhSX/OXerNrJ0tVoc3++XDTtxrjhJzxmLm8rI2zA7qSXsv9aPTfU55WrKY75wtBnP6jO4+LamYzSNXKTbvdfM6FfLU8tXIFLt2y4VeGnQM5Xiv0PZZuRlNWf6u8orhPMvS9SgrCAxvEvKWoWXhIE093PtghLDttNYPUgrI9Y9b3ySFsb5YyX0vKnM77x17EbksEIBwtpP/pdDfS4agkIxgcQC5aTM8buPjmIWHXB4R6v8TTYfHiUVuDrc8Vpwvc6GteshEyv5kB+b9IJ15h6hw4NJbLtn9vzCHQ2bNYROVy+yi3CxSLxzln7OWJmeOZaCPMUd5pQ0l7v7IqXtRljs7Wzu/M4GTJFf/njzsyrxB1lgM5O88obz8dvsejlwqK/tYobDPzdYELj2GPqd/umhdBXp7zt8r3Xd5XS2yhF5X63W1wInT1fa+xdLDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDoP+dKq4F02IDMnNZrISgLHQFETBUQxZiIB2JEEfKXYbSFNG/6yIC4PGXh4C+T2E+rqGhXZuEBKb0KSEkoXFuCLlVfR3eAww/kz1jCG3NSwCCJtSdAlBWRSKz4E4IQ8+RMScMmqkJ6RKPBWhsDTV9QP1Qqk8NCaJjQ+5QnEI0s2NcgAN7/kTOSSMPhWiPWevWpJ6FaiHUZxoIprWlEwNC2uNJFo51HVmLfyICp+oEjwAb6gXqRDOtWIuQnO01RcbwLDgzxshO5a7alim++LVXIdCWnc/NVtBJVJ4zj1XN6VtrIcJ9d+0ERQxmYPZAYFxUo+kWRnbNmzpSECIjPkhgTp1VAydZdbWrpP5dpsZao8s6IXfq6FhPCOG42jK42e4+ZSzCmLrA5JFDmtp2S2LroRon4JzlsO2raO8MQu0NIBY7+TxztNsLLUgysNAAAMiOxL4vjIEiVf/mU6GxHommWhh98HD/OpVVs2mt8CiMgGFNR5IAzZZN6J7+zjdA2o05qASotXWYmhCovSUGjapkoiJBoXpnPGzifx1+BgSGZMI9U+dgPtWht+7uAD93QprkrCVS63UiSIXsApDMC+z+v0dAgRpnrX3WfXLnhXO45DX7AQALcxG++sWzELez4IZOm4dhPkSO2wVJatp2ZEcTm151BJlZTyKBzM/08PdGsPCLmqXbpb1jx0W3lYFzUu9YX3OaOqF0rHWw+up8linQUn0nawEWzx3T1hLA8C/nEDatq3EOjlWyG+M/mGmgoi3bSTJovmMt4lttcOLQ61p5x7G1lCl64AyCoiXXSqxdZSHOedFaOoMo/O6aeRyaAWb03NSOLQ8bExkNp4/F1IKxvCEGqGn5nhPr3kqdDkR7GZaqq4V2B9h7QMVHDQjzL98Kqa1PZESQkWqPcFFi/AnFzwxg9lWbkeo5pv7EDIZ+Mbu8cqUELyzYuKGuVYoQxouDmVU4vqOFE37HtTLklYS8Wi7K8k9SsA7dBWbIHh4j3HYsoJlBrba1DnRCBXKrjfSI437suE73DHnQhT5W+EXZNkibMav2zXJ35tEuuczOhxXwt2w0VWgmoCBb+9MHqWU0S+DgYTseHV7kdgc4Mt3DrnNAsNRrLY2iB0X2MQydsSqA6VltmUagWtWsfd05hjgLG6G/12pApENbxbGVFURwwx6Su5ZiQDrt5j7jNHX6hMwdPERQ7vFZyWlqZYBMc2OJ48RpPyecgpRg6ayTilb+rhxxPZAK49E8o/yzXCgQ17KXYNvC9UTJysyqm6aQ0zM2DycMQW6csQQvLNr7yV3raDcMHnQxveShlEc3zk4UCrxerFduuijr3yXyltMz1kLSDW2nwwqesDZjBoeE5tsnIcfU/HbpxH5cNHoIAHBgXxV3fGkTpCSEIeOt1+7H5AY1p//0u+N44J6xFZd7zLGWxqP3UDk1kaZ23U76fhT9KLecjyKgpkMdiXxISSqGZTq8HwAAIABJREFUsjShCFPIxUVjjSxGR8w8zXGS9+It7h2MV2Pq7AMIYnTUvtLpGLnJ7TbSNMtPeSkbiRM7IbSSBM7FEfm5jR1NTBKr9XP2LCdfCvvIwto6B/ceAGd9Rm447Cg0e2rj3cyZ+oNs2xSsqnO0O+HTimFmubgHdt7JhXHrAdYW+Qau3gUoz/t4Qq/PSg3shei6G1EZ2xNoeNiOM5naiA8o6LuKa/Yu2bu69fa6Wq+rBbyudi3oagcO/8XNllL2ACpkTaJdc4hUuBI9+XcmK0gmFKOKjgT9QAkqGTGePWsIiQ4xLiWBs0s6EwLPR1CDj4Ft0vjQhAuM4WcsPZRII/iCdmrugXBdqigB6kdghEvQtu5wSQ1obNKN3mHUpqS9/Ne9EDhOQe3EcbtEXrGZTazESIZ1mAcAac2WizhGMN+y7wQ2nYp1nQ1IiazCTKwua8pcytxrAQKCjHQ66FcIehMRGVrDzS3UXqAYq3MoxL/feoG5fLx6uGliDKLZhmA1kXQaIR798VZFIzOGp/YjTBTt4VwHYdLQ9BF4tGbqSKmjmJHSLhaYATdGKZETUqnAbIWBbxRsYQCq19TkJRnc6izNqJk2JHNrcx85i5miKxsnKURxoaPzCA/OOzFk84qojOYuN1lmYLGlaG8Ah+4ctuU6Bx3hXBsjc52uxc9SEG1nUgkCu8Bqt4FG0z6T0rQvNVtmYg6EQLDYUTxcZYye10KwWdFUEQki7fq5NZrBFet+ioAYMQv84rlRUKw2ne3/koiz8xsitdDLxr4bykuEZiGWNCSevd2JO1sPQNr98azzF/Cbv70PAHBgXw3/+j+2I5a6XqET5zQQxo3THQ+U1VcP76HNLWy7ctYk67ASMMzA4p5hLD6llcTFcRsXYt9nip5iupykzAseDoNud3IAiBMTPkWKKhrbh1R9JKO+dwFooDdM21olp1iIUZltWBoyYWgW2s7iWv/jo7lLoVCnow5D0e9AJytLCoeR3XZn0MxcF00GkrvGCACI+SbEfLOc5xwFKjEjWDwBi/5ODBw8ovoqEljctB3JOiVTZchgzRLVQzHW3dcGMSADYPF1G9CZ1LKtkSz/UIXZHioU4W6KV+MuDidkAYB82LFjEYJuECSJuXOB0xTc6MGMxTHb7tgQQ+wovFzl+UrhKpqL0G1mlPmum3av5iu2qxuiwv3dPTCWElajPTi41bI8NnB/OptxKcFTM6U8jDhW99qsJFSCKUptiOx3Kp1LKAzzB4o6LnFGbm79k/2cpsa4gQCgVrUx2hsNpVTKIJxyAys3OE7yd+1EoeWRJCkNlclEoIojG53YwXBCnHS58jtrJpYSiAv97ax9e4Yucfi5K9ybsM9Ih8tTvzuHG0Wa3BGZWr5imQJuOEN3c+eGIJGs2jprM4blJSre+ZLtvEvG6cmsPO5FOwO5zY3Lp4OwFLO536irjGx8LhfLniv6IARarxuD3KKUQS/athtv36hiXzx2/wi+/uUtYBCCSOK1V05hxwvVXD8/E678UOV44WQejx4nP9x5Ols7uHNshloVoq4N1wSpw36zGXPWRULYw4N2B5i161YaGjLrTtlomvvquuUXWTkSxza0ahCAxoYMfZzEJnwyx7E11BACNDZm5CYnNnR07mAahbnN0RNwkgC97qMs3gfjgJw8uta+rtGBKzfrNfUPUPRka5KiHsKlXMo8fb3kZrYHNusuJ8+lDlWMQZZEFr6aVyoPjjV63aUlpdmjA8iFeKV6za4F49juF3Khy5HXFxb7VO9Luy75Php4Xa3X1cLrateCrtaH//Lw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8BgAS/vxZSiezkhWJ5VE6rRWW7aLRmAuwxYxQ7S0C1gCVJ9hBNprnyHA2ZlOSpBNmz9XYU41wwXOn3gJx5VKwp6wSzZW+GROGrVFAsGcvImYEc2l5jOl1jKSXIs1fVrnnrVlp64Q9iSPJBA0nBANMZkjN5E4p8ew9Ombg2AShoG18Ai0u5lOF48Ic5ERE0NkoWoI4KjHmdisAO/VXTsdgGKpTj8zK9CiaxsAAiFYjO0JJQlwZpEgSIVVytql5ZzWJU54CcdSflX80xmOhaK2oBv0UL+Xy5oL17XWDT+Tva/zoIK7Myg7JXVOdEuL1Kf5KIxh16qg7OXlwh230B4jDiE2zJNTDrNpWwoY6S8ZPKufCUDqNlsIIzw1Ng5BjJQFWlMCqR7XfKSbDnbpcG4QZ/dUvHBKnLmuzhyu4PH/UlaC04cqSOWAnc1mhOTaIp4hzD1asUa7HJr2TmbIusxyoX96WBQx0NuSVojcWOgacyX9S6lENNUy4b8oTnM05SwvpISZgXJW6cj3aZ4qp++ddl9FS8djelmq4Tnucsc2EJSvb/H9HN/p/zPriBLrZOoKrXECrUI1/dGBhpn3ZQB1+SCAaEaHq2IAghDtXwDNqzktnOthMXcUtOR4eNWy1WNWShvm6UTBqWPP8VbyDpIkcwAf/EL2QeFaE+Z+h55vLR29Ws9YqQE5q3wiMpY8BAYnaY6fDWcRFcItOiVJ2T802GqMlX55LDf/opDOtS05jwYci1I6feBYJEqZG0OUS1eguSgPs49lc4+ZE4W1/Cvm1atN3GdkVrM6OzvOCIXxX7BOy835ubIILvU2e1fu5GUQp2leprrLB8dCFJGuM9Q6nV2aXJ5jQi58SonFYpa/W0cuei0978G9q7sUT/UbY2sFEgifakPOqz4+PC3w+L4hAMDuJ2rKW1cSZCLx9GM1tLTTzZHnol45enh49EBpKGEpTZhT0h6J7Dzr6RXorjWks+4syNTiez2fJYlaWzIA1ysvd7G9UOFmzB7JrUtR8dBHvvZZN/TcKxU9JXvsRygRJswngo4lKZVd+1K7dyzUN7e3La593LWBmyS/r+29xnX7vk9/nATIrYNdvUZsPYQ5TfLW/q5MXWodZv7Pr8NWBV5X63W1Wbt4XW321nHT1RL30YpdVvk/8hXJaKJ8DPRcQ1QqRqlLXRVxJtlqxcZgIwIHgd1vVSPzHgciFyPPhWjFlsnaMaitXUqFAI/WjYDk0A0fQ7nO5oBMOnKEBUkJSuygo7YK28NEkEMRONLKiE4KseC6TjkfO4kJ88BpmnexclGtAFlolUqIdFK5H8mAcPDiOpIhVf+JRxsY29U0dUpHKqbAZCyE1O0UtFOE7WwhAlDbCly3zSDZxM4DoONqqiy5ElkB3GyDtHtplytWs+W4AiMfUkHmR252z0RfRWyfsdUVpqFsIQfklTyuW7A7kQCgatU+c5RDy3JXdReAYZijPRdqww0DU6kYZRYXlFLfmv37gYp9084b7Jd2bPtACKCqxxIzMLdg+yGO83V0x3vkLL6KCzu2AobJUXRQAOvsxt1u0dkTKR0hlT/0yfGcAEQWJhaATLOFMHIuuAgD1YbZwsWN/9juOPcaSBAXwqxkNDHBBlsvjJ/hIVuWE8eXkwQ8N2/TZTQAoOEh644tpQr9UrppMH/UvOPKEOGEDHPcxbtyceMCdy2oYV3d222bbinl56DoJfROlJIlKIRZ64nChsd1b3VJD4P8/ON8HpQ3LxNX5d93+WqZfWAWhqV1ZBObFQBYAGZASWnPNE8V5MJk8fLH5KCK9OM41qlSsTKmQB+323kldO7gxM0jMu9y7MiKMMjFG5ezc3Z8BkEuRJMbDx3Vql2fNRrgBScc1gnCXfK2gdK5vElRlFsbZMobKhwiURSZ+0wYyN2b03XAZA67C7yehT6B7oOkEL6zBJzm52zKwn9l7/Qar9KGXehSXrkGCA5EpWLjLScppA6zUmwLdu9Kcw8illjTIQitrKxWbCi0VkvFuQfUOKvVbLp1EzasqXDW6cw2vAsAnlsov6MoW8dlBgVuTPo4Vvzj0lhoI48eWOahysC8GbxDfViF9lc84ihNtGooy16mtr9FwPlILYMa83h4nORYidxcEtk8HYY2/IoTc5+B3PyNMFQhdoCcHAaQO1iXLSesUTafZ+kKc0ZPHYMrA/Iv5EOS9c3LUeK5cpjR99Anr68oV9ytCMX7aoaH7d4xTXNrjVxdOnGe3lwIMPsxF/6Ie9PLSfz8l51FI5zCAZTdi3Y/K6J0feboQ+5KvzIwWV5X63W1ALyuth+Ok662r6dKUVlFxY2HqyxyPovsEmByFJeAOjE1J0p5RWvOSjWVMDH8KFMWwaaFGp6C2QgCAlvlL1TjZFZzSoSRSWfCgxMgEeQVyE5RTNmJv3PylaUqto15yWmf3Dv9kaXqirNI+cnOlqPjEmZ6Zy7QkG0MsonMoSlHUU6RjswAtiftufYpYbgsvmo/UJH5+iEbW6x70B38xTpk6QcFOTHAl7AyWZK+0kdLt8WK4fYbnPHjCNOyE2hiyw3sXL6nDnSziQ+5drQfCRQ4C8KACsppd7HojtmM71nb0LiEuRMuQSYl7bVSZWdxgywLefXJ1oyLfuUX+j73TvZekSayBVMucSkR6r9cX5Qs8I81lmr/Mp5b7rg/3ovxPny7onQuesjNvnMdl3saEEHP4UvTkOPhfpbIuZdcGno8K7J0ljW5P64RuDxXmCP7vrPcMjKs5rjtQUeXDKGS+OX9M+6emwr5l47NXus/ss9y8+NJuKF2ebPfejerrZJevRQijrIFjnUjQa9NqesZGSFgmcu+ptewegqi7HNWVp5a+34uHWxfOXNZ10gjpy2oe8wd9d1ZK0J+3Bqa1Be9hsnasZt3cnLYfOzBB84602OFWK21bjGflcrNNM9X+ZD3zpoqyY8HGmRifb7JzaPFSSwDPFaAAfs727sQS0dXA+TlnMzpiSjHOFamip5yU+87c/ydgXMkdvN2LiVKNCTdei9LQO45o3y/v9S6/6jB3L1+ceV8yRqnS246a4Myepfawxz/tcEJQm4/ONi+zKC4piqMpa67HpYBr6v1utpedOZoLfzmdbXZo9XT1S4j/FfxO5U+OyOdxvsW70NgBrfzjtuGfcLlcCCAV1wI/OwJYHEx/8wlQbJtqEsuAr3sQuCee4F7H7CnqS84C7j8tcB/PaaenbkNeNsblaXEV7+Oe1sT+NdNLyuMUFWQmfQyZbHLhK61HjvbbIfBcnptotyc5YKcZ+xY5CnlhZOHgAn9krmZWYU0yl3jmPNWHOzWk/Pvu/UopOsd8mFA0DIEr07HVKjjSsvuU47rtlzqwrwUlmDE0jpz/vcVLUh6vZMTFHpBqdPuSGfwO4s/QsCuCMtApcuDrnREoJdfCDz8BDDXyC8wCqfd2f/8yosVP39P8SZauqwXnAVc/hrFm9+7FzhrO/Cbb1Qnxbf9O358pIo7ajsNjxXrWHTRLW2bXmOpqEBxF5nuWHDH/pIypSTB0ShqSvNb8oelaVoNOkzxJ1g5wLxUtyj0VbbbuZ1c3lwlRcEgfXAG5vG7+JmVm+blZRREAF6u5eYg3gNEwCsvBi65SMnGHz1gn73gLODNBd58W8abX8e9zwr8G85ZBnEeK0VxPNrNGHLjo/c4yysWiuPZVf4vSUcXvztrM6X5z5VzMntLZe2yI53G+1r395Cb7gu5l/PPEgJefhHw8OPA4kL+eVrS8BlvvtyuadHR6V5wFvC/vxZ46HHgnh85vJkA/z97bxptW3aVh31z7X26272m6lWnkgpJSCpAklFoLEZoYjoJBIpDQJjgJEYGh4QMB4YhGvaPDJNhCOA0I8PYgIERwAZjBMYONsIgbBGETGPU2QihvqpU9er1777bnGbvvWZ+rG6udfbe95xzz73vvld7jvHuO+fstVc7uzXXnHO9/V/hD6/k+LX8VUKXq5GHaXOS74nPtcaUFfSxaMMS6bgNxoBaZUTwa/l9CRF04gau+x3a5P265m+JetYiN4Gw3+zkZgcdrA6CP7xE7+Lbyw+YCDECaCaiPSWNTwm1BxeAsRHZ/SaP94KncAWgUvPvEAFf/PnAF31ekJuuuld8BvB1X9EsN59T+H/VK47Wg0R7xmw0Lzdr3zopO4ascwF5zek7qFkTtyfyW6Bj2ivuJ6izIaTzvoxz17rns7PVxnawzla7HHS2WvHj8ryv/VClL0IK51KQ1BPqOT3D56sryEcD88PePnDpAeD2HRNStTECdrbM940NE7pz+45JPXDpQeDOHjAugG/+TuDah4D3fsyUHw6AazdDn6YiZ/zLXgK89cuAn3k78D+8Bfjoe4BPPw/sbAN/828Av/hrwDe9Afj0+4G3/gXgve8DLuwA3/wFuP6/vxNZZZVcrQNVEAQzRBRGpW6JadAaKOyzTKF6ycM+jQJVOgpT02on1J2F/KKTB3sodkyIkSoJfZvfl5UJK3Mw+RIN+jqjVKjnNTZ+ofTpX7JboR0qtTldjsDWoyh8lmmZmE3KIterA5G2piyj+eaqihhBxHB9cwT0BXql70RMO3k/KpcQad36pO2m+d8lwYv1YK09E4vSdRCZFCdRu5YJKhXXn6nacqj0XEoKLwtms+SdFdIyTUWImjR2VRqw4X9gBg7Hvk87fIjPz64tRpubDbRZFMC3fSnwo58A3vvMYrT533+loc3vfgvwPX8UaPP7v8XQ5n/7BuDmh4G3vhF4758Y2vy2L8b1H3wHkLu8lGIdZUgzAchFappS5mi3AhYw+Xins0b8kaTOMvRT8gRwFHIeKRCHY8CmTIHKQBujUE6m5yJqDHGcO8X3oZoU35OTh/coYzDn4R0Zwq7nU4Pdd7BwOi05z2j0mIi9zVKZtyik/Cz5vwbOYYovGNxCvnFM2vyOLwd+9GngvR8/mjZf+hLgr3+Noc2/8Rbge94XaPN/+28MbX77G4C9jwNv/fpAm//dl+Pa3/4XK8xLC8g7HfI88FjmiI/Kux9QyTuIRF1EkHeRUCTLW3I9R8pp3cPTAer3wyatLEM4cpaZZ4CVuyrePLi+ZxmUS0XINg0gBz7oodTgg7FoN5F5dfPEDL6wE/ApVyFsfqOPw897scn9y8Dmh68h2zf4xkUZ0jwRgVz/AIPLLk91WcT8V6Z0W0VOptB0N0wKQk/Y4fF65OZbndx8LqbNXoPc/B/fIGjzvcCnLxva/IG/bGjz294A3P4z4K1fG2jzr34prv+vvwatLc7QHDcKIPQpXY3lg7AeQHLnyQp0kOegnS3zWSnMXn4J2uqG+TPXkV02CjXlOWhr0/abYt2qKI1sdyBD9/t9IxPNQEzaNCDKR8/Mdn5duRe4YWgVkLoLcCZ0ixe83LxbkKba7KADoigN1Tk9w+f3bhyfNv/KlwA/+nHgvc/GtJk3yM3vsnLze94CfM8fB9r8gf/6SLkZxhINLHxnsvqYsxuIsox5HYXnPqwfEl2N9/eD/qg5ktmRytNkW0kMuFwkadEah/IC4wPOgA/UDD3Zby4E9Y4mC0FnqzWfO1ttZ6u9y7ba9vRfSb40qluQuZcA/M3vAr7gNcCv/Tbw6EPAky83RPp//RTwf/9tszl84IIh0DwHvvv7gW/9i8BrnzQbp7/3M8Cf+yzgzV9lFvh/+Z8AlQFv/5fA+XMGcf7hL4Q2X/0q4N1/BPz6vwVe+1nAk59pCHXLXEyI3/494HM/25T7+NPAX32L2cj+Hz9piMkZqFMDp/snFpFqFjvkd7MnurkLUyN/iRMTgNwgPwNAHhBIb+Yot81SqCkjn9ic2MK2BwC8A1Qvsr+VDCptTn1mMw7XqSQXd4SsWRauwRAClxMDLGktDDuByOZyhQO1YVMk2vUeri0b8trQq0ahfzQEj8cwdrMkDTictuXCzVJvA6VCnlgg3HeQKjapZ4qvI8afSDAvAWkOWW9ARGC+fq1k2XuINj1jdfPmQDJUAMgkfsm5TSatSRDboiHFicDvOGdE8x0eWofXMsT4E3mKJIcqDes45zVkn5GrT+TD9LiQGIqWwqo1RWWcGiwdAZTgRbou/lky77zCwcoqSjGRoc0vvEdoc91AwltR8FjWeu6OG+89rzVk6oX0YEXKAJkjdo53WmDpmhc9aMGz43huN71rx+jz0qaKq+f1ZrM/5z1DR9QROgiuqjBP8j6hqgr9E3yMbTl/yCvvXskzVOc3jPLKDAz7oKngTa4ckTG0u3qZg56kq/l5WZrWm2HhEG/JHxjA37p35CZ75b9lky71qTo5JMutChJ/rNxkRdAbA/DQ5tfv96K8+7F8Df2mOgcEKQ8zQd/+0tOaDaCkg3tN5p0R8HzlLMzfC11unjakuixg+QjPP18EL9bI2zs4QWiSmzWyOqSUusdpMxmbuc8s3WMKnTG1IZwmSH4c3ZMS68V1qT3n60rq7WAFaLFDpODXo2H/sQB0ttrOVgt0tlpfD3DXbLX1twodCwh48CLwd/8h8BvvAr75601nnngcePFjwMc+BXzn3zInbd/9/cCf/Bnw5z8XeN3nAN/+NuDffxB41cuA338v8HO/Arzl64BHHzYT8p+8Gvi5Xwb+8a/GTWaZCAutDKEAwPPXgH/774Af+0HgTV9hyrzuc4C/8/eA//MnTZioOoEp6KCDswiEe4s2Gy7w7aCD+xIu3UO02cnNDl4ocK/JzY42O3ghQSc3O+jgbEJHmx10cEahs9V20MG6oT39l0h1Mx9SJiAKL1TmpPP5q8CdfeAjnwB+5pcNMd7eBXb3THjS3gFwcAjMSuBwYtp63eeYk8t/9g7z+yteCjxzGfjdPzQEvLUJvOZJQ4x/+IHQ/oc+Cnzj15jctp/3GuBf/KZhEP/mPQAI+Il/DHzHt5hy//lXm34xA9tbUKMc/YtDMIDsziHIhoeVlKHIxPRIA6/0/lcK6NlnmcLsfA9sGUVvr0BuPTV1rlBsh/qUOPTKDzXIhliSBpTIeLRxBXDZfbJxhuyySZuRXdcAJqGgCFEznqL16wOIs3Dpra+UPbX1L4XPmYJxv0fIvb2IF27qMVHbCfc4zGd0eVpjioH2k/jovo3wa1xIM1gmfZf4LVJHxKedNYxd4oJsSob1VXreo3gdkNTJ8nSeYFK1uGFN9u8p2swywqgv8NOuT9nrYdYP6WNoFgiGtQ6pwQSeMjhOl7OoQ4gsJyNbEs9vGvQBl5pHkQg1NN7kjQfcC3iAMWDSnziIwjP9H7Bmk2LHR66sIV3OUbCoh/Mq0RurtLuGeucuVjstZ617iDZzBYx86q0wZxUUCqj69ZZeOAzhWZIU6/cCLeUKetTz7WS3DgJeC/omCvKPCFZ3sRVXpQ/vZelVawsLf/h6vuBlWQ0irIqH0fyIdtu8hJiBsgwBBk0eiZVJdRj0gSC/yPFIWO82qePJPuV5MhcUur1/6FN0UVn5tVJQGH7ihl1nYO/JASobmj18dorNj7l11MBkGvqX8DMa9P1ndimfiKw7mOC7x+UBbHim+yx+Nn30CKXvKdrs5Qobbl2Lwq93pTIUyqwBMYOlTEnpQsKy3udp2aoCxhND8kTInrkOzo18VLf2QnoRrUESb/MytF1VIf0XIfYgE/gTefFF+xIyd7n4hNgMH8qf6qodLAYuBRShhh5P0cP5HqLNbGeI/rkHAADq6m1gbPhoRRkKSCeiU5y/lUB6ox6jr50n/L0FdXq93KuUgmfzvSU3M2IMeTaHzhUUCspCjMoczq6Cw1K5WgMNpPuW6Fla9Ag9tk0X6GD9EO03sRpP7Gy1oY3OVmte6Wy1dY3NP1uzrbY9/ZfI0xeFddZ10n5+5fg66DfeheraLeDmLvADfx/4xq8F/ugDwJ99EnjH7wClBn7lN8y9EL/zB8CnPg384N8H/tKbgfe8F/idPwSu3gDe/NXAT/8i8E1vAl73auCn/6nJyVdpo9C7tj/6KeCXfh345jcDP/fPgKcvA1/5pSYM7aOfAr72K4Bf/g3gfR8CfuQngG94ozG8/vCP4/W7z+CV4+fMEIvK5tVjXMnP4e8+8EbsZ9Z4m4YOuWH3c/DWyBh0M8LsQh/cM33LZhqY2c1ej1Ds5L6OfBIucc0PKwxmNi+5Aqq+8sa8zcuVRzT9XA62eUTVpAR4GrBQ5ponYdRljnPxVZUwFpBPm0Bae8bMyRiJKaQb0uxzqKdhVL7ONMSqwcAa0i0lzxxhVBpgeR8FImKqw8e5+tpCcpMUGS6EklMGkecxsab1S2Ync31rMZ9lA8MhwlFMZykQxkoGAQ+c8yGOr3juQ4vT5qSJNv8AuHLDCLyf/kXz/ud+jqXNJ+y8ifE00qYCPvJJS5vvMLltf+QnzEX1ZQX80I/j9eOn8Krp82KeDDw/vIAffuk3YD8fAZUG3doLm/oqGFXmwh+bUnfV4bGDJr4HxO/0+yFvvDzYYo4ZuNaxQagpFRgFmoPWIbdjEtKa9ie6P+EoaDJ8LwJ1baw7Hcii9S1bbv5B4Flt/OPEgPFKvgl6x7tQXbsJ3LgN/MCPWtr8IPDhTwK/7mjzHcBkBrzr94GnnjU0/C1vBt7zx8C7HG1+laHHY9Pml9fQZmlos3wGr8K1uZFcwQZ+CF+IffTnh6mymMc20Vy/B2XvJKpGfehHdsz6VBrZ+FmvTGMuX7TYTPR6vi19WMY5UymRlV4eNayO5/ESz1bEC5naKEqlIuRZcmAr8TvN/VoLugJPJmFco2FID6CUkfWuXpeGK4U8Dym+Unl4MA5YpBRoaA5OWGuMPnbdfFbAla98McYvNet44Y8n2LpmUz4VJfj2Xj1t5RloMLCHPwzoSe0QWVctSnwLUKJoRzxX3nUV7uV6BV+zcrOBNt9xTNp8+THk5vsSufnDP47Xz57GK0tLm2JTeUVt40dGX4J9GpjDB3eYcRSPk6nk0nSii0BVQR8eejzLnwq4yWUZDgerClrK6DJ8lqkbAACZDn2SeCD7xxzjdpaF9PciXecL/uLdo0DySv8Ted7p8WLd8v9IYLwSN0+ANt8EfO6rjX67LG3W7TcFbX7RwTN4VWl4JM2mcEh4hTfxQ+r12Kd+vR5yJuFe6GMHJw52j+R4sdt9vgJrlps/9U89fs+AAAAgAElEQVSBb5I6rbUFSdr8yCcNbb7l64GfdbT5JUa2f+ST5iLstzud9seB/8Lagn7ox/D64mm8ClfnhncFG/gh+vOBNiPgeTJYZA8l7STL0HoTj62zw9SBe21Z/nLqvP0egXXPy4r1dLbazlYLdLbas2CrJW7ZUbzx0e+KKlyEUL9v952oshy/vfXZpn2VhX5kynaKoQc9cN8OXjPUtHSPbHnz0ux8D9PzPYAAVTJ6dyziMqBm4XIhcp6a9n0WlwZxpqK5YJdvkAGIg8Le1Tug8QznqzG+/c7v4W0PfyOe610wDxsIlQWh6oyw9/ItT6ijKzP094wRpBwpjB8a1BJqdlgZosY8oYaZMBchcW6+qUmJwTO74iRTGGmOIFR/4CfXTmt/yXVKqNKIxJqB6TT83kaozrjfgGK1hJplIZ9+JTb+biKWJVRRLoriSOtLCVWMiwaDZkKVdQhC5bKM51Ne1tUCvzn9+YXKfc3Lvxe28uh3LivfFhOBH3vAH6q87ZO/Cj2rDG2aEvBEl86LJJhMhTXdPwx5KasqXn/JpNL35fylzFMaET0PIHMBlecdGUCE89Uhvv3m7+D7XvlX8OzwAaDSULf2jOctM3j/wOPMKocqbfhjv8SGBPfzuZ25QxVKxwrEhypN8+Da8cJxsUMV1hr6zp3FFbNFD1BqG6tpo03BPKqt4xzSrPNQpcVQ8FvVL7XXb+Gr8r9U/4AZ9RedMd7GfwQNwjvxRNSthewWaTmCwfU8j3/09vx4HsjJGkLi3eE2jBxPDWvjXe7m28qK85jgr+GD+F58GZ6l7fl+ZnnzoYo4VKAL56A2TI7datRHKQ5Veh8Jhyo8nYWoNDeu2kOVQ3PY6MsJpVZ62zTAXF/lZKy6OW07VHH3T7hDlJW86EP90aGK5NmrHqpIUMrjGWvtdQNWwFPfGR+qPPJvDs2zogQ/+3z93OUZqN/zhyo8XuxQ5bf02xtnQsJXD771yDJGUXd4xXib/kNoUnin+oxQyNOMmDutBX0n6+siXwigXi+60DdyR5OXU2ZZ8EizNB1tzHzdovPaege7R+MxuCxxHlP8ter9+L6NN+I5tQPW2hy8mQG3T4jAx5UOVUQdvu/iUMXjo1Kg0WiODgDUHKqIPrUcqjT1Nc6v3YLfHcT7imgfWK8LpXJ0YbmZvUW8vwgIuUlSbpLYQEvdoMYo4PaNbjjDIWg08t8NDxTjd5Cp6OJT5/EKwEREme6BmM0elWENOcNA3h95Fmr3wMrN/4DvVX/ByM1GPeEMwDI6Y2eAPfOwqNxspE27T5nnxeunTf+BGvrh6VS8n8rhCJL9V6pnSZ2W/rNAm0eBb7utjNhTL0Prx97rYLH3V233hQYnOC+L0ibQ2Wo7W60sZ+2una02qVzUcYK22vb0Xwm0eXQZ2jIdvtw7j/dvPAFkBD0Im0fuBaLlviDUipGNxYI4gySAybk+pheN1ytVQG8YECibVObyHwCk2RMtIIgRMCd8brF8Z2GMzoKge9NbUPkMD5V7qPYMsYUUGwqBOgXdM+xpLEBQJuTK9kP3COXILFzVU7avlqFojglB9J0qabSRtjAV88Ve4DIsNtlqi0GbVrkpAX0jlDP6iP1SVeYkOsxMPK5aQ6fo86KQemQQecQn2A2ueDbXFgAmoHq45xlVtltBHejoHY+D6UHDgn0NKZ1anqWgVMwsJXgdj8BZ1lAxVjOaNUZWIBhcFJlyVgZCMy5nO3j/4HFbh0QmHVcSkE4wfQD9A8/4mcqgRFsDnRyYFwhZltyPwuGvPI2XyjURqD8Kc5pngFKGNqGMMXVWmDGUpVg7gWd1a1bz21yIZHK4EdZeKPQch1vHl6I11zdngJCXN0sDE1GUxoT9PCXCRsKqBq91QL8X1qos43DKJjiqr+seS+1GrOZZW7nlGxVk3z6ey9jE++gSAEFzIBuyLJT3qK+yKYGPeR4OVYTiCwDcy63x1j2Wm1FhrC0Kf6l7pOQwgzkcqjjD6CUcouQl8t5G8xroiSodUgL1lMclqtgqQ7YfvTzIbymTXR9r0gDJ576c7068Aee5TXadPKRmPGr7Picr4jpq+ZmSh9M1fEBu8ATLQp6LiLjgoR+aq2mLhAyoU8jrxsdsdR8GQOjdLlFdM+uY7wejNWeE2cMD325vt4SaiXbd+Blh8yb7ifDb0rAoT4mMMsBl2sL76GFwrqC3BraM1TOd/lEKfYoBVck1Fop/3oOyXmysCNVIOCOQ28wCPFDgkTvYIigd5CtnYX1Iik1o5GrP/6CfPgDvlbiEQ1Ra2VD55OBhkbmQ/y8LcqPk2myiJUmPIqx/nu8FGkn1x+jiyxbd6kxEqLTxjrMCTfqQoM24XMP6LtPOEnCZtvA+PGTTewQa0f080GalQ4Se7WIoGPaUarQB2tw0RRRBbwbHHt0T+8gemf0XYOakF2g4PySQSwuizcW0gKHZyaVNWwej9xSg1C4ewiFKbSfzrOKAg7Pevw7uCszzUmsLcrQJCDmCWM9cVGVMdS1xqFkNsmDzyRDrtxVZHZehxqW1rwCAEJycyBGb7vUSH6Jc9urhRWnkJHlkk57Z9L5w4ptbn3Rf2fGAAGd0LjpbbaDrzla7BI52ttpj22rbD1WactPJTTsQKbIAGQPosI9qlGPyyJZ/Uo4UnM0ln2hkdiNNmoMQZCDbm3rEHdycoX/HaKjVQGH/iQ2vzGfTzBMqAG/EJc3o7VXeIDRvcHE9ZZQDcTr72AVQpTGb9MFXyNxPUImTPgf9fpibogTtWg06V8imWyBtnu0/3kcxMpX3DzS2nqlP3ZFNSqhJ8PDIJNEKgi53+uBNm1aFCOVD24JQwwiHX7qL4Zfumjm70sP+Tz0MVGQ2+rMwL3R7H+rOvq/PRQOYChPikWmKdFWLcxGkCpA0GPd7oG3h1T+eBIOaUjGC2w0IjxRuvu0RVJcMru38o5vY/K07oX5p0JcnpimuNoE87QUCPjpjd+Kt5z8nYZf+Y5ZFxjraGM0Tsu2rbvDGbYWZGKMMJ1QK2DGbQgJAe2OP/1SUgC6Ag0Ob/qMhlQxRzHzy5OTXPRRKLWUZsL0Vno0nsfenPLSRfGU2Cwb4CGcYPBZpZno9QClwNTG516/cAGUlwAx9OAm4qhIvjTT1lhxXkzdHxDgppgmrkDMQGzWLsmU+EeooynASnmfA+XNBcbh2I5yYF0UwLGNBHL5boBTU4495OcBXroNv797lTi0I8iBvXRCfFYT6F1VuejnUzo6ti6Afv+TnliZFuEMoEfI0mcWHcg0GO/3wOXC/RvRb+eCVtis3TVoG/76rW4FGw6D87u7ZSCrVOpWkyPNVIhXJFJm2Tt/eDZu6zRF6vZBKjIYjYGBpcHMAHlr+W1Sg/YlVMDX0s883pzeSvKgSaWsGA9DQhpBXFXh/X7wj6sgywObwJSJQX6Q60yIfa1kaHeIoEF6WDISotLRYvw918ULo0v5B6FeeC52kgD4wz0gp4KEHgo52/RZwZy8elzWU8nhc43Fu+yc32aluIMZB/X5Qp371Rmg3ywG7juWFHp7+yy+H7hul+sU/exUbHxubcmUZewrJw51SRNmsvJld8D2rTxi5qax+UKF4eBN3vvZJuKs5ii3yRqHeHpAfmPqzKWPjauF10qqvfLnssAQdGtwsNjPceM2mp4tswl6nnTyqcfi4tvURtj6am40gnIE3DMltUvONEk98+R5UzxSc/J0+yvf1oHQFFABPp2CMl5uyKCqGV4vqYPFB6mdZZmS7AxF5pstwVwplKnjFMUc4wmU44KXhELCpA+dA7mFmWDz92QkCDQaBjxZFHHl31mDVtT8xcIqTVXCHA6gXP2Z+U4TJS7aNcQg2Z/q+uGvP6nHEAB1OQtTSsA+2xqVypLD3sk1D6wQcPkKo7HlqNWKUmy7CCkA/HKY+9psVRlfE3tPSJmeEauj2N4TeoGf4JRegKWwKtTMaodJBB00Q7avkAQQF2nTfAaMniDvbqNcL+3dCLG+EbkRZFvaceQZ9fsvYBwjYe3IT5aZ5Vo4I5aZ9vQRG1+ANj+f//fPo3arZb0snHAD6zl4sp9YOQuZEc8aJbiV1+BV4A5GJQAAs36uXLzQaQm1v+3d4U8jQW7tgZ28oijjq+24BJTrJWdggpzryaUJnq+1ste5ZZ6udH9cp2mrb71RJPczaCycCFIDz7CYTDs0KfgJYbJbZfhdmhQAMEQIl2gJbBBLPqKZc0vc5exeFckwWUWTImZmA+vECgRm44uz5iPmQufHOt1/bL9mURTL5LOo/kem6HAcAZAA5eu5BIJeroMGY3AZ1XrCLQM0aeCXJ4kVkxIfAO1/Ufu8ReGBDtuoivOraOoasbQyhbPEyljSTpo2qDYFr+H0pkH1yVfkTZ/uTXLej1joaI8+POT1tdl/IrmmTl4wE0b/6dmu+J30ktp7RDeMJunwdDh4TaupbehUdz6Ka0MqGNo4Nx8W1unrsGHxI5nGaWPdancTaH9nkEnLziHrYKUluM6lUSOXEDC8ALa3Q3IYUER05flt7iZtmsLJefWyRU8q5lAektN403Br+KJ+xH4sF9n/gvGZIrGPkie6j8uz4CWDn9bsC+LVrOJCaG4ebHzEXlM51Qx01lS4kh11bdWkJXd89b3Z6gfRCbIImb0S3afU8O3nWwLOpZNjVBYMBodNyX4H7ZHEumbNouOuhpWWgWW4YYcqZ8il+OEfQ8XIOGnWlQ3g5YOjX6ZWqiqJJObfPmME5+c0n5wDbOdMVjKce23YzBN1XI+jVOQEDo/exZiAjuxySF6wyKWIuFsXpOryoVaVr9KIEz5q6fWS6TlmB6NPpSoR2aML9DlrA7Wf8pIX1NXIThuZyS4NShlqd0evFikBwugtFm3S2jgAMQOfw3pc61+CeK8dAbnmt5ngvJmVvqptbffl4ClMHHZwiLLJ/qKXNWF/yuO9fadpTk3hH7jFUSDvmad0euucItAkG57DRnOz5Qwos+nAqukbDnrrRvnCMPgX50lZHmBdvk3A6rZizMyWjltGtTwvuwn7TNLsE7gr5I34Mtgigs9Um7df2K7Vdcfws6j91ttoj2zoG2ZwlW+1S6b/aFpM5hIGBTAcccibb0sb6/Ddq/uy/e8EtCYV8sbSxtvUKCIF5o8ERUFvSK+w1m3JnK0oWR5aipnlx/av7LJGUEQ7KHfdIGUADcF39axDqdW+Htjhqq1EwMEQKmqR/sr/LQNN4V6mjre9Ys7LWsvZzz5uqEJ+bR0wt8+FFUm2dC8ECU21QeJ4uj5rPoNOHcittXxdcN07WhOKHR9fPoo6zoCi2KCg1hdvXI8XXdcKi7S7z7BhwPDq3Qm6+Uvch/JS8BcmmY80nyKS5+oIsoppnrbCoAi8+c/I7SZ7bVJ9X6JJiQjc4FkZFxttU0VuB9ps+N7W7pPySBufGdu0z4lhPYlmurt3j0kuq1/i2Ej1OszkMYLMRO61Dk7SdJgOLLRw72Sq7MZRjseXCu2KeG3A1asN9cQdyUq/htGDSJ2+M5YgrKJjDLDO0I/jygtCGZ2utG/W0vJTIqOlfnS5wJmQsTg/37yuo2/zPbfBjnsNJUWbz2dhpLf0p9pYhchYidwCS7udS4eO/k6fIWKyR7QeH/nVr38H9Bg2GuWYrZXjAyXf5DiU0HNqKdRxCDZ0KA2OUtnkZwbJOWj3FdhcztDfxyjXv1dYJZ5F3npU+dbba+nfnfuxstRI6W60rtvocLn6oIi+KJAohhe6Z6QlYM2YXBth/+bZBxl7wXi5HgXjzMUPZC390j3DwWHBjzA9CqBhn8OFSukeYngshR/lYQ9noIZ2bfykwCHpAsXB2dSuCzl2fCP2ru8j3psjLPZP3r5cDeW++UuHly4Me9I4LlSQMnz+Ea0xNBii2zPv5pEI+dvdPAIeX+t7ribM+8r55RtMSvauHof7NoW8vuzNBdtOGgPUyVOc2rbIPZHvjkEbpX80w+//svM80es/djBR+D7MyeFMy2wtOAyH4kjJFCnO4PBVov8dBpI0i1Y82If4CWuY45YEObUXKz4xx4R9cB/rmWfbsLO5DU1qC1O4v8zfqlEjF97p1B8wFyIN+eEem4cpEShuiOCSzKEP9UbquLITXrQqpcJHZY4SXTzQXgz5w6aKrAHQQUiBARn8oBQxFehtGqGRahHRVeQZsDgNTn4XUJ63Q6wFZXagsRXSGwtyfwtqm+ior4/EL2HmumVvmebyoY8Ik2koU8HlRnMynKzWZmrslAHOfxbntULYKKZWiUHldAbt7YU8wHoeUX6eunMl5WbJtzdDPXQlzOzvJsPl7ABZUilKgcztQ5x4zqUn8HBLU4TTwElldFu5cYACTJ7ahnUxR8OHb2bjC5sd3TV+IQLPKpyTR/Rx6aHOmakZ+WNT3WSXuJjY3LdgYb5nsZhYwNE09IFOghy952tKjnr0fBqD9MejyDfOZCPT4o4EG7+z7tGPV+Q0cvHQ74JYOfDofsw9LBziEtms2acKykEpvkbQ6PJt5Gk55Kg0GIrpAmVRm5klcSRp639ya+KgRpQ7I4rupfD1am5Rftm49CWkPSetwYXxZ+lQWzAy6eiP0fTwJPIYovtSv9UBlgXQGWWbSk7kpmRY+vPvgiQ3c+VyTuowmBR79sU/6uwYGVytgEi4rh0vBBjap0Nj2tdcLfcyy+LL3RSHaEbWUqcJOh5mx/XUZHntTD7vTHq5es11ixvA6QFbEzM4DY5s+XhWE2fnQP1WFHScVQ6jS3RME7Dwd+GW5mUFbj7lsDKhDq/tNgP6dkBpsukPQtvrynEbxkOnE9ugA//NjH8AoLwAm/KR+BB8+2IDmw9U3CmmI/rFBKCJpjmYV8jdHl4Q31UQERJfbJykIJd4WZfjekAbltCFKD3hWDDL3DJj54ocugi+9HNzLUJ7fML8p4M5Lc1RDuxeb9qHKnn9W2RSSGWl8+Ws+gp2R2XNt5jNs5mZNbt7awTt+64tQVWbPObhp0+4BmF0AJoMgA7gy/SEGZpsKdNE/8nK4GgC3P8fsacGMh/6kwKgowDxb3hnpbsBZTLnTwdmBFCeY7R14Tp8JfJ6Gg4BPo4FJ0wMYndbf7WDvKrK8ffJAD9OLpq7soMDOB65b/ZOwsaOgN2x60U2F2bbTaYHegU0XwwAVOuz7kz1cBFK9WzeaEyFqWNokoBLj4THTSLXYZ9T5815nrh7cwvSRndBFHcIKeoqh3D0a+wfh8uu7CaedXmsROCt96my1ATpbbWerde+ckq128UOV1HBL9lSrxmuy6iuUm2ZDRDrMlZYXiBFDOcMOTA4/6T6knH1XhKHpHNB9RKdxVLMIbD0gfdcV+dAuaHgMZKfw2vrUtIA6mEK53Hyk6tOpSHBKABGgGdnB1Oe9zsc9IDcdUVMGVeZUlMkwHXe5oe4x2OFqUQFlFfCLwrhUUYEmBjF0qUHbLPpegtxFRnsa+unQV4WpQIyAJFxVixugpaGIlDeotUJTGJUkrLbTZkmoGuh/dBpCtqL7OuAJnJJ+N6WHONLA4MLw5vCegvFKa0ALBUMlp8QuPJk5uaeDRSoQAvJ8OY+ZFKyxFDCGnoixZhTRi+wbRgNxCFKGy8OqwHzZ9q+2jlKHgw1lw69dOXGBbxP4tfIG46R+uQba4qfLfS3WxRg45/H7yEul5Jx5L0fDf2JPqPn35kamK6CwfYM19vg5k4c0AhjGYGXLcVUe3edlYSG8Emu1qgdBmmtykfqa+pb+vkyfjjOOpvZXhWX70MtBo5E5MLT38xBg6MzHJFOcQzQz+M4ElNsD6L6VKQrmwk4AnBeWN1l81+xzygPwaVGYdbh40B0sRl6DItUYu42qwW/Hvwj2kEQpo8xvjELO0s2+uPBQC28paxjNM1PfZGbmAAD3cpRbvdo1UbpAVlahDi+rNShTMLmZEA5KjgK5GUkhy8IBBCGkoXC8yc2LhAbeUQvuwMuVkfxWyrOiCDKlFDKw0ghKU3IvymQaFPJCHJoxe16VpltaCYhMDl6lTH3Tws9NOSJMHjYKbn5LY/Sxfb9RozwTCq5J00NE9hJJCuxYzp29i+PYqTNrIfBr53GeP0YYfZ7C+AahcumBNaAKf3aHSQaUVuemAlCFsl6zgJoFXZUq9kaLbKKxca0MOvJAyPKK/IENlaYdsmRHOtTHPUa1beZSDUs8ObqN7byA1sAWLgDlAMzHuAtj3cZ+8n/i+hlmUEJXJcnPG/pBWWboPYXUs42FQU2veUyrwrrl/WnAUTR32odDgz6wswnOFfTA6KBaAcWW8ocqNAwGGp0xqg0ABGSqwrnPOsADO8YAsqMOcS4zdw7lz1VQmr2oy2aBxZYFbBSgRdsSnmfrnKDt3Sus4C/YrQaM6QWTjggM6JzjO7juJizq4erKSRpuknNnYVwd3CUIVrlaGa3CHVnI85DvXpGhZ+sxzf3M67vluR5mD1rDZwZgOgNptrYWDXYCUbFT/QDNUAW8Ths7+ln9ohacDiZwfBVVo41XimdR+qa2Pcwq+5smudnvGWchAOXGANU568yiGSTmDIMeSNv+TVa4//V+hmXW47R4Ymerrae7zlbbDJ2tdm222pqdSAcddNBBBx100EEHHXTQQQcddNBBBx100EEHHXTQQQcpLHenigOy3usOrCsPwXiN6x6h3DBedtk0nOJxRj4UGoD3FiNNJjTMHhsqkS1HyVREmkCV8cpNUwuRNh6A5rO58NO9pkoN2NNFqtiXY2bQLXfyzv5k0YMNEWIgDkVSIawNRKCpTBkipgXRV5D1LCUi41kRMrygtKHkijPo7aF/kWYlfOeLAuy9Uxm058LXzIkx+4sYsxB1EPUmOVWXp3KM+dQJ7s250zuEE0ZK5kWeFrM4fSTUn4SmJ/3OWzFtZwGQlyZHXtDJotSefErPq9SjIPLWBtiF7tWFe3qkS+Yiz0M/smx+/pb1YGiYFyYKoXwMf8pMzqNaKeMRT2Q8iX3/stAFVYXwRCK79nYe5zx9BBRVwyP5HteE8okx+YgRmFBDT/sueibgLosQV58LMvXSrgF2zxKc9p45TZElUSWcfBUn9UTgg0NYX4c472adh6zjG3fNsS9Zn3sZ1uEJVBcxdRp9qLTBeXHJtfcyEWHbvluZMmn3rCd/Nq5ApXmezwqQjXZRU0HPAKgowZWTNxyeaQZVlSOQKHKDNQPauegI2gNMuqosB3EB1grloxdQ9M8DfQJ9AQM9wxfGGiis51//+R62bji3fgJpDRSm78UDI1SXjNdctT0wzoJk+te/NQ2yTSmUG4bX6Zwwe8L0jSpg+3AINbbRPlUZUl75SXWw4FoJ3oRhH3rkwoqdjDaf+c6eD5GekzORHKFIBgQvK7K6hn1WCR5oPXHqokq4CqmNOJXVwhuaiMylzf5FjuSm/H1h8Dy6Au8fBJleVZ739a9PsPVBk+4tG1eg7e0QLTWZitST2ug5wPzSDAciTH2xSwMXH0Iypwk/vLO3gU8//yAOd4fIJmTVFEK5wZ58WAHKqpOkyVyYa/WZSmTQ7B0A+YGrnlBsBVofP0g+NVGxHfQjnQOTi8Hbvn+rgLKRkYObBUaXTcqiXjbFOz9xAQNVgRm49twKKdLuGnCEj1Qiutw79kQUayVC+fWwD94YiBoFv7xyEzQz3mpzNLIwrMA77jc4YxEIVFRQ4xn0Ro7ZjkvxZVOFONZWsk8/Qjl8JAkU4SPPP4rNXUO425MCWzb15J29TUw3FbSISIFFm94+gMthb6N7lieAQJqNpy+A7LBEvmdwTmca5yZjsDL6Vn5T5um9F4BjWRTBIryYWmTM2cKpDhJo0mUaeYFbZzYR0KCQMpUIKKvAgxUFnS5XNjOC2I/Z1/rXS8BGSmQHhWiGoA6mYLv/zA8JtBv6rQqBswdjsN/3xneRsbSF6GNEdkqo061qaKVWByOKyWLNfJd7OdA3dryXPbGLz/yi5wAAe0Uf//rpl6LSJlIne3oM2jXRe3MZCTpYHO6G3OxstZ2ttrPV4jRttasdqljDLIhigyEzoBSqAWG2Y4jPh1EBJge0De1iChtEKhn5VHshQpWgg4J9hqGqYlCp/NxH6+kIHAA0UPWUF8r5QQXliLiooGa2YFkCz10LY+j14snNspCnXaYzEps4smFkHnK5CAixQKxNLns79v6dCsjs5nlTodw0WrjqEbJi2/RdM3rP3gBZZYHLkP6ISiCbzkJb57dN/wFEqVBSg5wwrslwKQIC83UGeAci7ZLpZEMuOmW++zCqQqZdIUjmFvUvMRqFV8inAjkSZNisMFhRmvdPjosgiDBpQ/Yjy0QOfcThcE19EP0gW0eoTxBx1ZJjsA2aUmZlSRqu/ak3VLDWoH4G6pvwajo0QooB8NbIpwHCrPRCxeEM1bTFmr0AI2ZgMhPheuGZvAcBKV7INVAq4KDWXoGOwKfv0IBKFNE6gVIHTRvDuhDC9opEv0TKtEqDy90Q/phnAYezzIckRlWsU+FqpBcSQqhOkC9azxLl1mj4XAnuShqK1dqjqgJNLE+XckRzUAqEDOBMQVmhzwD6+xXYhjBnNw6Q3zxIGrC8yNIpAGA8Q+ZSQwFBzrkQY0dPRQl29ycldKbObYP6fXNHRqEwe9UjmG1dAjYq4BtugoYMZuDWVcL40OD+9sdH2Lr8YBjf3iGIzSZ3+tILmD684Z+5sHRoxvC5fWQ2bdT48S3MLhnr2PQ848bregbFC8bo6S0Mblm5OSuSzSAdjRfJMxLpKvTmCHzpvO2fBh3M7NkXg/f24ryz6WZa6BAk5ahMdSRCkZmT8GsbBj53SWFRRiYC2TZXVVS3snoCax0fNok+cFv+3aZ5KivoG7d8u2pj5A9Bhk/tYfhJa+nIM+BFjxh+zww8d8WvD4vUd66s7/v2JmjD5kQuSmA8XSkjx0JjCT8CzLh2cwcf+sjjUFPC8MAYTxnA9DwFHU8DPZti2aQNAPqxSboAACAASURBVGz2L5TbbO5SgEkZNrjlDLWEycXclmPsPWFTE9mmnY6r+8D+i0y70IzHPjzB6Kqdp/EE6sAYPbiq8OPXX7Q4z6vjz3fTaO70NWawNGzluZeb6eWgyDKvN+jzW6geMbTpDATuYDq7cRtq0VSATRClGvCtdLAOaNIVjsBHNS2Q7R6izAcYP7jl5SHLrckM6Fm7oM7N/SamnMLvf+yVvuzoMrBxhXy56UX49R7cApRFn/wGsHnZdk8BxYYrB0CH+476e1NsfvSWKVeWGF25uhxtniYtpvNft7+pfzHezzXRhCKQvS8s0iGW0rk7OPPgDDQMuyerAFKAEuk6pd5RVia3HgDq5eauNFduVvrPo1szbFjdgJ2csDptduvA61N5WQYdTOz5mRk8nvjDE9YV6pyV4nG0jbEFautrSAwjiypKUllmtjqO52wNwMO+uQcVwOe/9lP4jm99PwDgU/s7+JV3PoFx1QM0Y/SuXeRX77RV1cFZhc5W29lqXTudrba+D6If67DVdum/Ouiggw466KCDDjrooIMOOuiggw466KCDDjrooIMOFoD2SJUFvEc4OuyxJ04AXDyVC20iApSm4E1J9mIjwFxO5N5B/JGI/AVkTGQvLwrf2XmrazaesrbfPuQTMF737mKgUocLXitx6TXk+Zf7FE7jTMoMUcLPTXJip82xLAGg0px4mj6kXqTCST0eenjmLmZKu+W/ix+cV4j4OgduferWdc5rv6mSlnfkpW6pB750umryTJIeLlEzR3QkOsWM2+W6ftaUm+9H3PeoeF3aqLSgL+/qiJ+R719yIr0gyLQYcx6Tbn7d7wJXmTmaT3J1yDHJC5vt6Xl4Ra6t9l4/pJQpB0HLbozRqbM46fb9F/0RJ+FLrd0aPN3q8CzqQ034X+25fIqP4jS+MVxx3QEddVE4db8vU4es516B4+LFKuNtmvsFXmNHsxJPmNvRw5WrxK1/Fc/js69PeKJA0r4IS0YiExM571NIEVANc2CUoSozYBegQhuPnZkG9hRQaOOdNAaUu1dQA7ofeEV+SD4Yh3SQl6TZe/9ITypfzqZAUgVAhemPKgHOlLkIGPAXBXuQ3ju6qqfHFBK+GeYy+b4EyJRcJL1jZFs8n55rzuMMqJfXwhtHthVFBkpvr3UwIVEf9zOw86gqK9DM9VXZyD7A47rvE0JaMKK4v1qDrQcqlSVQVXclToAzO59eTXSeVuwvlpfOXgyDn+6ueFUK/BbaHxOQ74UUftDw6YaIA+2AAZoW4MLNRRUug1wl6vUsQYOcpFSeJsA+PYX2+pTzNDQFGnTOVUDq/h2sDxbhw3WvKYLuZeBMWY9aQ5tqFvaH2YyhHP9hk5rE7dMgSUZuP9hEuPhUJ7PKpxBT0wo0ccQJKEvJALxXL2DptIr3m4sP7BTx67htNemKrdEu83u9Du5HCLRcm/ZF/i69tQETPes+67DfhI5T0FIVUpyiquLLkXWMc7V63LKwCq9a9J2acsYOVkNPxwDOyGeTONB9PH+4CQC4Nt4AKgKVwLxxqoMzCZ2tNtibOlvt0e90ttqa6uN9ti+5pK22/VBlgfsJAAKP+oCy6SryDGrGyA+ArGD0Du3EE5BPQn2cZTh8JLOdRtiMAlH8TNVHMAwo8iHcAFBsEgo7OaNn9rHp0ksk/eXpLEwGS4MxAtECPo0AKTstRQlwYXL1nd8MiD4rQ32VBmYiLLMIHRwcjjGwRirOMmDY93XovgLn7nMIFweF8DJoRq+fw6sfhRhXusksy3i93GOlRB5yO16pwDSByuLvTWUl0aUKs+xP2YKMQlkgGdZXVeCZyDusVGwQylIKqvmsG5jCHLOgmEAVx22JPsHmXDZpegQJyf4xQggyEbAxjIxDnhnNZuDdvbpZaYfhoP73sgIOJ/F3tqKA2fRpPDF9HfTNuFmDdkWqIIFLrHVMI2l6LcdwiECThtDKogyhy85I5p7JuhnJHM2vGztGrnXYvcr6VgAWhhjXd6nIx0JHKryiv+nBiauACGp7K4QUzgpgJvDHG7GPN4YjQRoBO1gCTnHSSpszOsUrRfEdK5k4FHCGVQC9524FmpkVnuZYc8A5wIQmO7rVOuSPJpueg0yNtLkB9PuhLad0KwW1s+37ePUrLmH82BD6zm3w/6Ow8dQuNvsKnBHK25t+43Z+p48tm49W531c+zxTtyoZD3xQeeW6f8DoTQ0Po/EspB4gABsbQN/Q0uDGFP1bZlyz8zmm57YNC2Fg9tg5lA+a+nrlIfKbto4sg3K8mBl6/+DoDQkRuCyNwRYwc+6NuBw27YtueB0fdrCxAbpwznyuNKqr12J9pU7mM0PmiaU8Dzgi03q5A22nuwwGoJFJ+UCMyPjA+wfCKJ9q6g10QGLcSkGNhp7/TZ98Eaodk66rd30f/WeFfra7Hz5nOXjTbOipqmK5KVKB8I3b/pnWK6bNXBgo/C/mXfeB8cP2CZu7UVxqg94doG+HRZqRTcP8FZshR/XwZoXBbXcgopHfdDnDgAu/c8fcowNAT6bgydg/k6CKsAngZJN2qsbYlaAJlwSfA8ym3I0ly0LKBHFYCMDq3wbfaS9Hz20SmEGzQAd6eszUXwBqczPfzyBT1qTrI+97OpnGw38t7ZTnR5h8xkVwThjeDLz43KcqbyhS4xJqYvhFuZnhzmduADA531VB0C5zSBHuW8lmGg98qPC01798x9+fpXf3wLdu+z5wE0proErTeNx3kDIniSNSvxf68zoPOTs4w0DhnzzcyON73fy+cjoDrt8Sr4sDGXnHH7PdO5o6td6P7RCST6d6U93nk4Z0/9W41xP6ZJqyxztQirKrdoeA8vzQ2LUA/NL1V+Nnf/OzzbNSgZ7tY8QAtM/M1sFZhs5W29lqHXS2Wt+nu2GrXexOlQWMDrWnO1aHcjoxic09E7yxhTWH1Me+AvGBknrJegVJ4yWHS40iImV7KiovQvWb0flxRR5xLD64/jbMBbl25fNKKJGUZDyPDGfhM4ONgVr+7k+Vawyvbi7SbtWUW1qJEF4Sqcerh7rvqfBvaZdqGI/P636EkZkkYTV64i86ZitNmhureaWBacrnqdF9br7q+rwANM1NtA+VTLSmPTtkSvoQv9fwOQW2d7bUrUkaRXPstaoHQzNrMoIvWU9tLkmx9i7fb7z5FvizIm0uBakx6l6Bpk1R+nwROZVC6zuCdk8L2PEhbsYLiog8lNMcvCpSpUn+zkJRkFFpAJhcXtSUt4mLwa1xjazs0T0FPcygJ8rgt7tgkAGakL9AkIaAssqVzmAUVSJoaOMBZe/eI7uZA2CiU0rtdQNmhLuamEP+3cpECZA9/GFFQC7kSMKjXd8boXXNZeRQy/osCiT65PQmwPLbtOlmGvZy84i2PC9iBnH4fGTfa+kHQWzaeXZzy7kCeu7GZnGHjDCiRBE0oo6oTT8vXKvHnRg4Okj0eXOXF0WkCtgNp8db+HzTDBc9ZfUpzVCO5CoGlRz0x0nw1KNJBR6fkciTU5Sr4V62uHyE3000IFRu2ANPrwudNqwi188K1Om0Yj8Qrc9JjVFuetu4mnU8YKKwx2SYy+ktnaky5HGn0tKpFyoAuWgzafxkWxYw+8tSQzkv1qKCLgJt3lWt6gziWYQjR8EZ63sHawavrjGOijgEEO7VMi+Fz1Lmi73o3OXMnOgGZ3Tfs9D9A5C0FNu7jg2KvC491Tl2C3v3RAGMtOWJukYHfaHDori06L50ndDZatHZam3/OluteKVmf3tCttrWQ5WjFoUbng2qEluzCbKCMSi0nwMWF8joDODKKbKIQsDkBYPSCMkKqEgFIS2ejcoJNvW0pp8M1rO5dEbxGE0HSecgrbGhZ/Bkw2IBm07YjnoW9abunbCAfttYg+gs35kzPiR7/xSJUqP5GiDwsdgwMle/Q1A5jrnKwvhb+9cyjtpQuaZq0vqI5shUKoG1IcPymWNqTetzRN+XhTm+3FaWgxGwzxU2eQZoZYWpXRtxKSxzFb4zm+/Sw6wByFlFAYBzQDvcK8EsvURlOTmvKniDM0NjNjfQDS5Qh0GrzOeieLYO4Lq1X7fS9ULdnJ705v2487rg+542AXiGTgTSKgi7RClgCsKSdBF4rC4AHS7rZBaRKixTXlWWvhF4oH2keCr4QBnqYAWlp74v27MJ8jGwNZ0khzo0r4hImZfMTSK1ZakYGt5Jn7XJ5IX4RR2fT9oN+4QVcLCtT206REO5VeXm0rzzKGV9wXZPnG7XCIOixPZkYvE56K35BCAr5wYzRs85RmlG7tOdAcWMvP47KEoMShGpoidCHs483TLPoHk9bqKb3k8wATm3p2F4alvLI9pfFm+Xps11wxnA25WhbvPbpK/cZaN+X5fYKifQDFRFcJ3tl6U33qiyhLKHlWWVgac2nQ4B/Qmg7QF8PmVkdhuZzTS2ShGpoqcgF0V2GrS5DNztg5UWWbnQex3cW7CoTosKm1xY3TLs+4gzxNpdYuzyojP8zogPVbzeWvMs5JK1f5q62zQO24eFaLOOHy4ARxqK68qte19a+61Gb+8gwBmcl85W29lq28DX0tlqT9xW2x6pkuallHVnLm8dg/YPHRbhNg/wF//0D/AVn/jA3IpQ8j0yTCyqgzXIK+NF1BC2FE1yS2OHhglkzNAApppMCFZVga6FUO+5Ja0hqrkHBHCeeZrv3QihZ/kgg7bhsFRpZONg0KZJEdZhNgspXQZ9VI9e9PWVWz3PCHu3J8hvi7QR0oujqmKm5ftHcUhUnsGH/ldV5B0chdAJxsfMwShO1BzKNjdP4ucySdHgQraY4/Bh6c2SwtxpZE1bRCYcMOJu4rMbE5EJSfY7dMRjlP3t9cI8qSwO3Z2IDZiuorHQznb9OFqABz3/mUQ6GqTpSqZBSN3Sfbxh9qf44uknEJ2+23HVfknppY1OKfkSrBqL0Tf5PwhCMoYMDCaFWT4AyOKG5FOSQc4phgmjPGLt/QNVh2ctA1IKNBwG+T6W6djKCMeZxbOzng+fCBEhnGxj4vPdUmK5kU+tG25jgDdMP4wvnn3C/iLGv9u2SZM0nOB6g9xrHBIDqEJ9+X4gJZMlzB3sADwNxiv9z02qr0xrYFJhenMPnGmAFLJZOHyh20Nw39Ds7GIfhU35BAVc/cKBHwrtlKChoYXBU4yL/1KM9uDQ13f7z21h/2UmlVVvn3HhA3c8zWeXb5n8vADo1n7YZGuAZZrCOaNyDX47GWfb1ZmC3jD8l6YF1PNXAv+dFfV11NXpPk6m0NdvirbEIXZdP+rqKMtmeShSYbDsH3OcexzwvI5YxXji5sYZLOqQyCmsTsf5+FUTrQJATUvwuEjqsx9lGDlB6BqwPNEq8RfOeZ2CJlPw7Tv1410Y5Hoj/pxlXoTd5iG++T1/gK953wcQyTXAeLyz+Cyj+n0aD0SeXKQ5PGNRDojvRWIGr4n3ZbA6LbIjy86BTAHVCmlfm/hWg35BGajf82/ybBY2d0UR46ok20z2T/v0iKwr8JVrcWqZDhYH5kQM6xgXmtI8rQOIsIgKcBsDvOnpP8CXXf6g2RsmdOZBh000K0D/B3H3kyQJFvtUZiih3lMl+J7WlqKOD8vRZmIAiNLlVfV8eV0g02ek+zQHqYyS4PaYrtxZ13c7WBpoNAJZ+X17uoU3Fh/HF/OnzUO5TSuBZvkgKxSfkz1qM6ovuF9tA/veynKz1lDX8FmCUiG9L7O/Nw1AO31L3XXO4ig+COMwq5CSVG2W6D9gFii7WeLCO66AZoaO8+uHDZ3t4MxAZ6vtbLXunc5Wa/txd2y1i11UX2cU9SEyAGal9Xpn/JOLX4R306tBzJg8mOPq60dGD9TAzifsxX+wFwfaE081LdF/fs9PBMoyaVt8lnn1ZKf6ChjKPJ0COUVebmgdT65c/F7IS76PPq5jwyMIyXsqsiykspAIfpQXniJfLhsXnnHpQgekrjRoWoYQtUosahXufmAw9LbJ/cYAqu3Mp5eQdZs6RKoNyXDT7iqX+sWM0c0Fg81xtZs/CQnx+RNDZoDy+jDwpnlyay1PEHNRh67a66gL7Wo0NNXgdPrcjSNV/uWJclWJ7xqQyhdRmAtbhw9Vdv3PMqDfr/VQaQWHL8xAmTCjtH9ag8H4BfXZeHfvcVNEKdCgH95RQYhE/dMc8vMD5lCgdv1iJZLknSoSvFFO/NQwRPLKAABd+S7tqwGuZ1sBLyQ9R22mgsFuqmv5GWrXgObqlFU3Kbgw97K4/k2FcaiqYlw46Y3lcbyP595NDqxO+rDjbrQl4ZQOVADg5/FZ+F1+3MhRpcwdGa4bUkalBu0mA0YbCEMMDQaggUkiz4Mc0894ECCCUoy//l+9B5/54hsAgN/7dy/Br/zzJ02TfYXrrx15eXPxj29jcN0cVOwp4Nq+Amhi+J9SfpOtKgDWaKr7AOkNgAiagMPHcnAOAAx1sYKy5y3+cnNYo5jYZE4uEPZfZnjY6NkCD12dmntCtAau7IX7NyT/spedN6UYasK5yBNGAWzTWnFRgPYPg/K2CI2keFVW4GosdAiuL+d+qw1N5vnf6sqJO0vq+E8I5043JOR1jSMP1p2Oc7vlvhq5Kej1PI4wy1y37O8XIcDcI2bvg2Eis0E8LtStPQAol+6O8fPqs/G7k8dAEwCjIejRh9weFXQwCbz94DAc2Im+nwgszNeDrNtDH9cxWq3uo9qbW+cao1JT/+Rnl1aQ41QxPHeHTqifAY8/YIRUFczAwUGs43ewHAjPPvld6kXcxJOW1T2S8o3elAJ+Hp+F3y0fN5fLDgdQlx70tInJNPSpKPzekbUG748b67wbcCRtpnMp9jdReqCT0pPsPte31bbfbTP81njjdnCfAAHUy41thBn/RL0O7+69FASz5+XptPndRpyRdzrNvVT//jJ8ZwE8XFhupkBJStdFukUiVbRMzVun38UvCp7QwDtlHwhRWifKGfmG0Vey21MMP3YDatrRqIej7HtHveugzW51HJ7Y2WrR2WrR2WrPgK12sTtVFgUi7Gcj/OnQXLp6cD7Hp1+6ZTpcARf3gdyFVk80MmswUYcFhrdvBeScyTQmAjE0w7o4xMYHwJ7wi5MySaj9fhBUZRnXIRer1/Neb0agdUKlg/sFCPs0wIfokvmaKVA+jBmz+1ylF1kb6crMNjl8E10IxU4JYSbBMSpXXxsocTAhw7ttG8c4LuiggzMEhH3q40N4wH5VINUTuC+M+zr2ZPeXOCwFwXBNagjV3wAA6EGOyfnHgExBkcbBq/8j8CpjuL557QI+tPUSAEA5JFx+fNvcicKMhz96HRv7RpHVegzQcSMIOujgrABhH318iB40X7MN0ObjXgGn6tB7xOvpHlgZYy1rHfTME+vaggcdnaDs4L6ERG6qEdTo0bA51mORjnIGwB4mlyU0dd7XHXRwYkCGNv80fwiAoTmmSX1Z5hYZperlHDO8NbLu/UUOVlrb7aCD+xg6W20HHZwILBSpwgDSy23NRtL+i05iw+lifkjY/HTlTz/7e+L0c1JBzWx6jqkMc/J/fB+4ckSXeEnp5FSKE8J1oHVswE3D1t0JfipgnfEXiNIyUJ6F0CFSInUFJZepwRO7zoDZTs/3czAr7eVIAFXaeyNTpY2HlQMif6qJXh76oBTU/tT3mTn3IWVqVoFlmLVi4y0Cik6PmYUnBAikdEhTUemQcy71mPBdo+YLiohMlINTfJwHq5ynuneSE0zHYIkInEnGyvPvul/TE/Mmj98GmKuDhM9um0d7JfDMnlQzYPA/y+pPOG07x8prr8UJbVUZz2c3kkzgqpZjUvGcyRNeeVkY61hYAs2eFSKFC6nE4zj1JDrK2w2wETbhczp2Fp/TZ6FA1HF4fhWtr/8zD4qEt1TwJAABGI3CmGezEGrJMBE99jPLME7Ji47jXbisZ9ZR3gKLNRrT3zI4u0rEjK9/ybZWgbPkOWkPHv3o5yJV/JfF6/TzT0aOuO+DHnhooj14mKMaKEARNCm89+nHcKMyHnofufxA1By5JWGYvlr+QURgl8KHyPRX24vLexkwMCrH9sUpXvSKpwAAJSv8x8PHUExMnu3BnQq5NrTUf7YCcpGKSngfDz69j83clBvcrIz3MZv547IMPK2GR0S8Qx7WSpxL3nHPaFpA3T4wv09n9WXr6vCTt6AXf1pGKZMqS3z3UFVGngOGX/XEpqUsQ1eI4vSDgq8SKMjrWAVDTIP1sheASVfh2L4MI4/GkvD92RRcCn1Fyl0Zll3pkMKpXEOEX+pBGMlUoQvJ38sSuLMfZuBw6vk5F0WYz9PgJ0d52x23Pl8HN6Jyc1tN7xzBy53cBMy8LjSPoq2yBKynIs1mZ4qt37OQTGJthN+6oSmCrA10BRwcBrSbBNpEEeTBnD57L4Cc84RvhdU5QWRPdJKVCGtheu7gngR28l9ESUgbQqN8WbR++f4RuFTX1mngXhttCh0sKifvjdAVUAq9tE2XbPTsBnzLkTFa1kdQhQZPDU/MbwO9p4yulV3LzCX1J50d4F6CJpnXJKfkGs9F2Z5c/4yq3tlqXb86W63rWmerjeo6QVtt+6GKnEy5QVZkwqm9l7tEfA1Uhhr71zQeeY8L52KQoCs1ngJTm9qh0gGBkhNJLiufmw5EQF+kLJKpUOSJJxHQE+WKcJrqQnjCO/afDA1Lx88c+gAAw2HIH+fek+8km3MAKPuE/RcP7XgZvd0ZMmeImpY+/zvKEpBpLc7vhPnNMp8+hQDkV3Z9sbyfB+JUCug7owpihWJWRogl55YJAZmYw7isod7/LuojpSIki1BR4g+pKNqqSckhGTFBFFVIWRaER1km9YuCTQYXbwXEfNspo5Y5HyVeSIYj6mFmY1h3P+sQ/gelkF0830zkTfmJFwFmUFmadQVMXaIfUYqvsgrGzzSKRKaoKqt6Rgo04zpRyHdP5HPS+3KVmO9U4WhiUg3zYlJ+yQS9Em/rqwq45MoJfuZoRFboPuV5yLeoNbiahjIPX/L0iOu3gFshlycfjkNfm0IS/WfXpzO82T/KULz+BmvaroE03/8ic0gJsZ+1eeck5d6xgbxnEBGBNsRh4PYmcG7LNDvMMNsxdMsE/IN3faHPuTy8NsMWW9zXRvEmDeMsWFQhLRcR1PaWHwfEfUJ6owfeMVExj3/m03jzm98NADgcD/Dsz/6X2DswBzjnPzjF6Lmxry+S13f2PW8697u72P7tME+ssnCY3GY4czleaw9kG3CNQ53q9oHZXABAVUFHXlItuJqGocu6K9nfellDgz7U9naoYzgIz8cTcwcFYELotzZCdXv7Iaz88DC+UyZJoxT/LIzqTYcFyVh4PG4wvCVjFsAT4cEq38kUsocfDmOcFf5QhYrCbBKWNZS02nFEXU2b4OkM/PRzdW+cjtHmtKGO7zfIypqXkzqOAK1jXCC1WFsyZ/PBONylUVVHboA6WALqNr3ysD5aq1XmXfA9qXMveggyK6Cfvxbal329n/AgmmZplDjhdo+zT3Fw2mpkB6cKkfw/LqT75Tb9bC3tNaQkWq4SUUeDkZDIGHtdsZnQNYRTQSuktipPV3aOou91wMgPS3BmbXAfy5A9b9IAq31E9990IECmTlaqVqcnILqjYe4+uJOAzlYbynW22vB7Z6tN6jx5W+1i6b8aGHPdiVCqVpP8kjxv3d+2wYKb6doccQjIyOGHuO5F+9DUp7Y6iODDVmvmrXZUslyN96T7RPIXpyDIPq1hYyHX3M3twveB2HJ0xDzN1Vczt7WnrscdY83cHqvcouCY3xKQlm7CH3OOEPC9dW4XbbvOCJc8O6ociFrx4MSMIYuOd8FxRM9WxYs10eayOHTfgJz3ZeZgBVy4l6GWNlPFA4j4hfhxvr4j2pqn4dTwBn++Zf4TCqB9HsnouUOQpA9eiWzp2JqgVV63vVeja0TzVINr4R2a/94mh+vk5pL9XQTq83cv2FJbOd/1+bWv1d0WgKXvLrsfYV3yZl2wkNykdoYTlzTVrdKPszQv9xocVy9ukEMLlXVwijJgDpbRJ5rKrbq37fC2g7sJx+GdZ0kmr0MGHNM+tXgzNXrXsnW4D2z179U68oLiP3X7KPHD3LOjbHprhc5WW9+Hpj51ttqGlztbbS0sYGNqPVRpvLTGnhgeyczlCRAQX7xTaR8qRjZkydeWnIDWwiK4sazS2TSmtC3mkJKFEE5QATvhNcwBBNIAg00afEY0nyElkGiGCMhDSJkJyaRQTvO8Ucm8KMZr1yp63sR4RW2MKJUFJ2ufzkfSdVGnMDiLOiKGnpyeRukFiGwdhMh7ZAWjDSff54vOr8HCcBSTSOYwGnODB28bSCFDQMBH5rBubnNZ0y4d0afQ7dS0mlzwnBq7fP3cvkRrVcISAq0bB9lyi6y/PPDhFqVVpD0CJ2m9TlPJnDvJP4bCVsv/7sKmZ5n5W5bPLyto7/ENAysCBnkIbx2p4FEzUEBu5kPnZNN6Gf7s5RQAEKMyzjvQA0DNNFhbetIhRWCU9o8o5rnCy0nPgOkd4w4zneZB5BMBinx4NBSBvXfVAut2gmsa87Z2WXpUHTHOttRTo7QGeaqBKszJHP9x/zQnIfu+shbjJMCLCMK6zVDTWJadc8J8Cshj8tj4AAvxfNzjdB7BOsZynDpOci5r5J3Ua1alzftq/U8L1mkISHhi6/6yTU9ZVh9YF6xD9ixYR5ibBfbKZwhWps0Ozjac1Hqmlt1VmzlNXf+oOpy95JhtHe9Q1TgpeC6iAO2c57PGl5o6suQL9w+ENYhlD3GD9kyJzr0mW0Fnq21oiztbbTofSddFnWIPLurobLVizAvYatsjVaaz2p95MgWLZzLPd3R/gCLQtZvhRR1y/bEIz2aLdL6+TBhm8izkB7cGF/vFhIa5cvKyIqI43Ej2KcuCQYnZnBK6SStFuFWWmdAxAMSWqbhn06kPH2J5n4VSoEcuZQ27rQAAIABJREFU+fpZeNepLMfmZTtnmqFkiN50Fufmc+NVhP1XnEe1YeY3H2tkU/OOmhQYPHM71BGlD6kCc9EcpWCJkElRnLKpF9CBDw+9AWwOwSPDhCBvZ8ABTPsyPEzOrVIhJM+NXygaJEPjVO7r4+k0rmPhwwjJZMTPUQqWOLwuyl1PKsynFIhpCKKsOu2BWAMWF8FTrwdsjBYcRwA9FCGDN2ZQ+ybHP5cl9Hgs+i47kXwkUUiuY2pskzlfFcWn02nOS1dOhrtmWZIbX6buqj8QIaJ4XkQORKoqcS9AahhsYJYagJahe0LoATG/UKFfXMyAMhiJIXndM88KxaMlZdr9AKfijbTAOs7BChsL5iXqv0dBKb870hdGuP3GV5iDCgUcPllAbxpczW710LtuQqxVAWxcYe+c0789gyrMl4MnNZ77erM+2R3GIz97FTQDAAZd2QUfWvk1GoHO75jPVQV941ZIm/XMFS9jnvlkhX/0r19rivVzHP6nPcBkH8DsoW1gaNNXMUBVoPv8uedBU8On50Lq153GLUoHIT7OSkBbHjuHc3NafSgn+6tZ8K02fFShzjwHNoxOwpqhn7/q5T7lWZCbs0LIfIY+HAe+mucgq9cAiPiyHk8SOe/+j+U9cnEnT1UtkS+6aYypTA1fq+tCf5QpBJQyY1mw5VBhl9fizAIlMrkVBC5pINIzp1Z2v4CNPacOdbx3WWcMWUe5Ai9/Ich15mY9M1NBZvEp5PFfFmS+9w5e2BCl7W3RoaSFXwPgBpyOdLUV+cA69Me0jjoeyGzunlkW0jE2yjeKP0ZG5LCX1f0cPDTzO3kww/7j9k6VWxkGClEKqBcsEEX6stnnW1uVZqByaY8B0iLll4p1WtrcDPWJtFh6by9OV7UqdLZaU11nq+1stXfZVrtY+q8UEobOWgdDq1ScNMwJnfMka1KokglkJRcfzSF2FAy8TIEofJ3OEJgKn9SjqbGcaZu1uHBJvmcGHxudyVzY40uIvqvS9kl6APvxJ4YL+0/3FLhvjWMlQTmG7nLRUUPQpsfNZuEbjcmFe7m1ku8dcaoX5mW+/bb3o7aa6nZ9S/uEGryor6T1aQihbX42l5uvBh+bepLiftPcLp2WJDXINZ1Otw2fxYcWpnN0HxYp2mDoSL02kmd+/sQcM9H8fB1p9K9d4Pp2516Nn/s+SWF71g0464g2aVurdcGihzfrjp5p2PzcuyBkY0aoNntApsDEKM9p6C2rShQZ1L5VLBWD2B6qMINKNjILADKg2rEyomRzeeHU0LMuZW7aZAMn+VFZeQ+bqgD2D80pih5kJurFrj1nZC61B+zhA1sPmCXk0lJT1cIHavFMbjKOwVdEdQv1D4L3cWVzIrtNAgXFk5P+JREeaQqyVdJQtKY2aOj7MuXmdEZmzBkspO5xVmDZtV+2jlM53K6B0+C3a2iLgXjjeNKwbrmxDvzp4GzBute0ke8Jmc9njC928MKERXSrI/Su2hTLbW0tE721DG2uU/ZK+9QysGh/pU0mnTJrK5Opf1kRdM98VqtZBe9fiHRkYWdM7CwsdeuUR0ubhVKRXeNEobPVinY6W21nqz15W+3yeYc66KCDDjrooIMOOuiggw466KCDDjrooIMOOuiggw5egNB+Jp0lyRWjU7/ks/ue5FR3pzrG01TWrULoELMIiSLQQISKiTBmBkw5V32WhUtwkhNUaPE170GGBMlwuChUKOuHkDVt+sSubhsCxYAJj9LOQzQDbdi8JYrM74XNQyfC3FRGIBeyxAzsHobwq6ryHeFeBt7e9PX1xoC2J52922Nkd0xoElXh1JUBoJAhWxTmT7Nth0Xfw6li8AJhYDIV+cvDqSZlWQgBYwbPZtH6R/l9JWgGU8ALUuKUtKrECTHqgTkul2Vxu/4+i7htlqfsR53c2vdIqRjfZbhZgtP+GQFRSK4IFYvKgc281/SJtQYVxfLByp98NtSxP4Ge2ZQ4cyHMkUtAc30yT6ZSIWdjW8eiMSKea7EG6fJymxeEvA+mKOAzOpZl7E1NFHhKFE6Zdli0HvV1bjD1fcqyuTH6E+z0xPqseJemnhRtz5et70ShxROitvga+1U3Z2fNC/5ICB5A1O+BBkYuZdkAW88WwUNokKGy2bUGT08w+rgJ+ybKkPc2/bhVFdZj9JSG+nWbxmsGVDubhuzYZGhwKbkAMrIIALQ2stzNrWawD9tVIBfOzED/DoNnpv7B1UP0bs18HbC8DVoDRSn4/hq9Bpt+l/xcyFTmcr5MWp/0mpnzSkzea/DQouFAhDcz+PqtoJMQAm8SMioKcweb913kChDWAAQqhXxtmgfyf0I5GUGyCLSVo/S5iJxpWRsuy7OX7GcdOHmkzrIENPEwolh3kanVlm27Sf9bpa45XJDvNHxRwvNR8pjTkFtnReafRejmxsBJzIPcb/vfQu77bu47OBPQhIeZSGsq73wDYhmgOewB62RUFJ1yhM6wTP/ayi4bsX8cuSnbapszV9bZQtrqtrpjdlgYZR7Axv/P3vv0ypJkeUK/Y+4R9973P/9UZlVX9XR190x1D6jRjACBhMQgAQt2w4YNX4IFnwH4CCxYsGHDGtGM1DAgmBFqjaY1Q9dUd01VdVdXZVVWZr58+d67796IcHc7LMzN7Ji5mYdHhEfcuPfZT8p8fsPNzY79O3bs2DnH/kZj+UUfSvZm40LuvvcY9QyS+gqEY1V6Y3Ta6xIBE74c/jOnW2TeP2Rj0dUWXS2KrvYcdLWjhyo23vbgsuoxN6VY0QrvVhNc8lJVINv5mhEEcFwuXFrebLySJiqTgfTFMfGkXdS+Ll3n4s8Z4uA7QaZrWqAVE9p2oljsze8EXCxNHV1d+sW/6czFTn0xWDeGUTADNyJ+uYw5pyoTN73Pr1ozqj6+cP16jfrVTVhXq6yRcfCIPL06EjaaTLw8jgaTzaevu40DyVqDNhtfjzGwtjUHKa9E464Dmp75ppTTEl3n6ij7mkVsSznhOO77cQIdfSDy4zFG765pnimc0KR8HwSCIXmGGV+wG5Bg4qvuGv6Lvng1qEkyf0tL7l2GpkBYzUEpH5Ofo3GWq88I7xi0Uws/zuI4jzYGJDO2xsJ1TFa43UrBc6zt+9j9QL8AtJ4XkVC0Zg+K3lccciAxNoZPDrrDsneEVPzXNeiyP1RRNS6/bt2a0jy+QHdleOmjv2rw5C/fAAB4UaP7WxdmfvV81NZ88SXj4lc9j1WE9tmlm3+qY9BFv6auxX0ezFALv2Hg9cYL5AoAqp7vERa3/YWCzKhfr7F4Ze4s4a4zcXFh5piWIfemtEdPx36Q30Ub6ewGPvzGyTEs1hqxXm2jjxY1VN+Per0Gv3nrX9aViWkMhH0vN3s2neVTTRvefZUtOaAC1r1+Cs07I14vsgr3KM253Rlwl8jyKIrmgWhbGYZCTxuPQ8w4DmzZuxoCkAwH6utytDtVBgekB6YreBi4i/4mEZpGZ5TOZQwWnAvcPtrvqQeGgHINkGvWIeN46poyKR35eUVj6cYwvp4NygLG22xKvuI9MUCbDrQ2+9nqTYMre1dh0+C9P1OJZU3HR6WcBP83Ixq3eXmcO6HvEfoFdN3wnsip5BZdbUBvQEPR1RZdranYSXS1JfxXQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUHBBEy7kmrk9H4QpkFYTAYnoRSfGlH6MqS4LOHqQ8yhRXhgnSlIA/yJExGoFSFDYv8leZLbdj5/4bKVpEk+M/tTPO1P/AbHcLYshnHldG0mLwlnoHd5IyKotQL31qjEDA7cmQRdbTU8WbPp5O+BO2kFLMTp51hID/mud+0iW0NZ3di41xmciNNVzcHJqexTUmpIL7PoU4TvEnnsAktH1qsNAD+5APftpJoOaiNcHFmby6x6elw+zoui72+lADCIydAq5w2H7TE7tuU9Zs0Wj31pnSFDhtnkmfLdZV3CQ4TD/4Vz0eY35k0y5vViocQglG6BW75z40JrsPBOCd0VBe2WnoD4TDmyLgFNoyTth7u2Ujym14nl/859dkIImymIx9xdt+E29HQ2nz6BXvRrxdUl6Mp4OPCyQvdBBXt3rWo0yLo6t+jDCsBMk+tbP4k7wdCpEhZA6C+5NGVzpaDrfr50xsrFTA021jX9WgEZaqpfKxkmr+rNyl1OrxphncRs1m471/r8DH1d/kJFW/5ckOOMSKx5POoxEYcsdKG06greHZlBMak2f83Q1gVeWi4Bpv2ErOXexBZFAZ/eYm2UoqFv++QaNVcbb/FEKDgArm3jNubp3XdKHrhrWbHFpZDp7pRz79Nm577WFORxF31n90YFBeeOwPrf/W883ZTfp2Dq3Jx7Dh+0BlCov5F6ghlkMa4VuO73C7qCdrL0ex51YSDrh3oD1jl5CsO94zZIncI2T4ApKLraIU3yuehqfXWLrjagey5d7fihiqSeok2LbJiMUoGVcuEpiAi4uPCNu2lCFyY5oWVctOUSWPZptAat1n5S2BBAg4LZxWFnZvDtrXc/ulhCPbryaW28dgBoxHNc535iEAAsF+Fk7UIlUMCE5e/y7oc+3r1755S4DHzxtfu+3jwL3dkulz7vKmIYjslEbnOyrySzfHQFPOmD63ca+PobP4DkYNI6zONi6R4p1wcR+O21Vw4R9d9FExgwSrO43fp/ufHpqK59/WPFVm7c2rq4vMNikrVQhPUPPoV+Ydpp8as3uPirl/6jjXA7XIhxIUNFAZ4hAsBqvXtM+r0Rc84MJEOn6CBCNqFkxm0HE6OrTyf7TjLRrgNL90zrohfzEY45vciHVEj+lPaLhYMxyLzluJD9m/rIKfT37Mdz1xfGfP/MtvDq8tL1MW824D5U1CzIMoUzgh3ftcLr//T30H5o1jZdm/8AgBXAbg0FPv3TWyxf9/ejvGPg6hIAQG0H9ZNfeqGhbfy4/vAF8J1PzTOZDZltm+7REqp3e6ZFjcrF30UQW5WU8u7hbQte9WHCNoTLH33uxhotF4K3a7ANJwZAPX3q5hxfX/s8jo3KyyRUVcGazO/epb+R/I36+MP2+cPnTgYgRsjHxLP+8ivwmzf+nTzoa2VIgc67XBOZtci+Wwn39aoK5QabrczbPouysvOqKIHPHCP90+lwPN1T0HIZyuNSNojDJBQUPCRojSn7r4KCO0WstGWG1+JF6XJCtzRmAcYNao6Fk841DtflVpS/737T5kxA93gBPOtl0HaBatPLp6uN6KP3EPJwIDLYYK1nCzs7CLtKBFTT7NwHKLpa8Yyiq3W0F12t++hEutothyq9EiH6e2eretHw/rKd8XRB2e4bcaqa+sYipi8ubOpGMndyTOLSoEQeFKWNy4rbU5bDzP69PTlL5Sf/tpPcvaNkXw0UJ+JvSdNY/w5oT+UZIZWfudLrEAGFx/sgQd/e4zawVsD4+Em0xba2ZWbseqfK3hibL7n5Z/8e0L7lQGMmJOfLLt/HtGS+py1j/1g4uNw5FGPbxnQu7zPY0I+uKYdiDuuhI8N5KRDc5X2s4A9DxbIAMmsKRd8Dtv16q5Z47Uk1rhwX8hDVCrRiXeJojRpkFzfzSJsftb9HIPnI2NozLY/oHgiINhvLe4fxmOMrY2uNeyfWvEPkvQeLUykdTnHocWjeU2TwI4NkO+07bsMMZ6BqZsw9Fh7Agdps2FGmP9s2y+xXA5ya9vvUfgVHRVb2yOglwt8myl0pRd+2tFPG4zmuCYdiBz3OzvmlcE/m/WCc5uS9I6yhe+mCiq626Grj4lN0FF3t8Bv5k3i3r652/FCFrZoFI0wF4AW50CIVMXwgCn9ylWos90wUEsq5Ro1+m7BAE/W0TeijYaiO/FAKsosUS5MG+hREAyJQdAnPMvvgis0UwpJWm9T1segr+29ygiFMF+QxEUI4CsKWpGgeaUvvzjjyLteHmQljvwFsvcicVNqT69gdTkVjLcGQU22WLXsvJBi6LbcSTJvIUUXMQMf58Z2cm/FEGk6sgw8lcnNJ9GNqHI/lEf+9bcztQt8kOrZmeeaC5gx1PKiMXLo5lGe7ljknyP3vgDIF/+kY1HsvKCJoOW1V/6+GsbCR1heDNjVCVEBBTCazc6UlFvklZlZyzRfP1mvN/c0yzIGkgcA1OZ4ree8pIN2PR8MwTMssqC90FMYlqrf7WflOpW7cUnOfeREffmUS7ZzvQThH/niONMWIaRxs0sTv96E+OXAUFmWOumxru7vA3H10n/t8bpxCxjkWEjLRWeHc26/gZAj22HJcTNpXEc4m2N1djemZDCDI6gJSfTAHHtqcn3I4NzggsGPa/U+8yrT7FkX5NvqKrnYLJUVXG77bhqKrzZedwZZDFfGsI7cp+3ip8OV/9W10z42r0t/76Jf4nafGJerND5f48X+3ALgfRW3nqOemAVsXrqoCXV7AKmn55sYraSoVhrWQLlFXF4Dq/1bihMrFc+vpbFoAXZ+FCl20lt49Cqu1d02qK/Ofq2jkUmVdhDYNcHPr38XhgixNSoVuZLVwxWrh66sUcHnp061Ffuu1z3+5AL71kSGNCHgkvmlakHUp6/pBZvtss/Flybw1mz52PDZWttnfEbrh1Z4Jo2tFmBDq3Qn7QX9xAbKufES+TzVDv33rlTl17fun06Gbn3TD7HTooif7SrrTjcaQlwubhtdCIhgjF3/+mXNfo1YDfcx/vlhg/fd/x8VOXP74c1Rvbl0dWSnPJAKXN/J1Yd7PnVRWSY51+fOywtf/8A+gH5tQMLomcF+t5WfX+PB/+ZmnJ1oo3Xgn8nOMYJ5t0i5yNYzb3S0wmSoQGTc8yxO6DmhiZa84dXZZc1jdVOgPVw9ZYPQ8aWUZaJM9DXF+Mk4ajys8XR4zuRIfDVPqcVdghr69TW/EiExYGCs8Sb53DiCC+uRbxrUWgH50Ab7o15R3t8BffzYpD7/mET78Pz9z95Lwiyfg50/6hOxdqplR/eTXwE0fC/by0rgWA2at/eRjn//LV+Ce11NV+eGtGctfvXF509sbH9brYmny6w9nsNq4ftGrtePnLGKucqeDEFemLDGXbHi3pcLn//C30D4x/OyDf/wZHv9L4bYr56Nc8zhmBHtArDXcaQB2XRrL1x9iD/jI67fA22sAgO7EvU2AXxtBoEeXJuQZgO7xBZrvPDNvWo3FD/8G1Pj7noLxL9ZNOQ8G6aQ81TT+3WLhw5O1rRkH7rupbUnh4z3aaKsnT9wYpLoKQgzq12/GPp0PsZxwMP+K5OeAt8u40dizrzL9TRS+O3g+hvIKt50/YBR576ScoB3X7oLzgAw/MssceUjwsjPVfqvPbVvaqeA4qGQIaPH7YK8Th32Wzxm+zdjh0NDSQEfg50OFrvl5T/4zNcRysOfcY/1c1FDf/sStxxVV4P7OAbVuoVa9LLneQE9dO4OQPXvQNLtscARI2Vzq8IBA58i3Qg/IMiwjJfQ1Ip175lCntQuKrlbUuehqze8outo70NVOC+A3xmAVof10ge4jk1X9CeHxC9OAm5cxg/BKUpYDoT8dNadHCOPCEcSihd7i1i6YSlyy6ytPPV1AfxoVKT+Dk9b+m8EGzP5pT31jFyXb0NJaNnViGFtgpNyUQvL8uyg/lvH3JPOydDhGpQIlWpBfTJtNJy8WStXD0Rq9k22jw0XByEC+vlKwd/1NZvGh6HcA7kTdvxIbaUkj+fd7W62n2qani1Zx/MaePjD01dIwCWbTB4kT9KAPJ1nkbMc0N2igfXEJ3cdN1TXAfRdUbzeDg4VJLnpiPrKcmxIDwWiMRgLZOdR1YUpxprIN6b7nwdzdeYwEh03pMdInPLhPj4JzpGkqpmygMlYaANzdPWfpCUQALWrHE+ly6WKwynik0/IyfEq9bUCVWR901QILoWjsxHpw23ghrQ5FAOrjpDKzv/uoLyOwCmk6H65q0/pDlUBpC9c/bDecwUEH/LNcNxggJfhkXfVrBaF5vkD7wrRTd1mFa3nPj+bisYM8Uvltyzs3hrW4NK/rfPsBRsATMg7Z+1EuFsDjS1PHpgVVCtSphOwSzQmRHyeEwmyYMCsbDWKh7wApu6WaIn/ifnc8q98Qus1EVZuDFaTb77ikWFkj+XL/PMV4Hs6XbIlTMu/zSGyQXLmA37HvuRbHZVlI2WOfsXromItpPMe1Zwrucv5NQSTTAVtk4X3yPuf6T4Xcfzm5fT++UVCwFWKcBXvFUx/i7TqHx/Z5W76bhf9MoneHDXGujMUSpHy4YLLFaTYe7IC4iH2HfPeVC+M8rGxwTrxX6IIC3Z9MMiGbgZx9jDoWXW3R1RZdbUA7cFpd7ZA7FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFAww6qkiQ1IEMeL6E0kiAjWMZ3/8FnxlTnPePqnwV1fPAQDXby/x5u9/CrA5EX/807dQfXgfWtT+VLKqehctYzpPlxf+VC4+IHSnogTcrvwp0qI2ISsAY/G+3sASTIuFf2f/TUGeQNeVOK3j0K1z03iXwLYTLkEUuqgp5emXrmwD+Py5qpzFsnXfsnHwaLEUp67KhImxuPTvqGm925fWxnXPnrJ1XXgi21tgklbguobr5FakA3v3P2t9bNF1zgqFO+2tHOwpMxmriJvfe4rmk0cAgMXXKzz+0df+dD+yEnHWoL21tCu4044+IopOnhHWS1grBtalzjWQgtABpFTY//Fpd/93++IK7SdPXZmLX7x0Ra0/fQz+7mMAQP3qFhe/fOPrKMbP9R99iM1Hpo+Xv7nFkx++wq4YWpOI02n7S8t4+mdfuLBCjE7EYwSu//3vmXSa8ehffO7df4l8fv3prYyJ6EoITqDJhO0h8c6i64RLat839r0WXRL0d1zhKG66f4F8XE+Y8e+KpbA/gvFyoPVefBqfC0k2oH8GjOU3pazKW/wz8/FDkh3LCkkpF04LgHFb7p+tBwZgrUjS3iC0XAqX1s6EDTsGNJswQnacvKsN7weAtjV0oJ9rkgbBi/hyie53PrEvUGmCsyNZLkCWLytyIbPAjPpyCWXfPblE84Hhy9Qxqre3Zr0GsP7+h+hqk99iAyyvzXqjF4Trv/MEXJl1/dG/WqP+pm9Prb3Xhdbg1crxKm6acGxJXhx7nNgkzEDb9sbzFV788Ab6yqxFly87Yf2kQMt+vWaAb259/mI52BuSRUzNK7Jw4tZ74qlF7fs+4g/SFRvaj0F606L6We+yLSyNiMh4HLn8OvBq7UkV8yCwJHWEyQr1Y6tpvHWp7pn0zm2YsKIalNeXGbRt5jvlwwuwtJCbG8xm3DrLMuVljU6H7uBHtqicbuE7ZXBytI5GoTKFbHA4ovlsQz+AEyEu9ihQrK/q0ZW3YmyaMFRClryI52T7UqaLLNsk4nFrZQpn/XbccTI7ZD2kpV5uvAvPLtb6pDLE7N5jkZefw9mHzIrlWNtf5OVgl5SGz0fhZ5K337M5ULA7dBfIGlmQ0I3Ivdg+SFlqR9Ng0rcBz47mOuX2pWLvuXcV5LzbkslB7QRQ1wGaQAQ0T2t0V0ZmXrzWqNz+H2lr+Rw9QRtOoCPYb/Nw7+zWXJGvlE+OAFosvP5M6hKZnTzBQOiZwezlswlybnjvm/t1FvqLrrboai0hRVd7t7ra8fBftgMs03MTVXRww3j6J2/dRv26qnCtnvWEP8L1f/wtM6lbjUe/ugV1/QCXSoBKmb+JzKC8hG9nObA0+wmioxhuF0sv1LddqIi6unLhG8YWepLxeavKxAhMuQTJga91yFQWCxE2QoUb8BxincZy4Re1tvUXAi8XAAyjYa2Bm5X7BJVgBE3rYq2beyrsJIsYDsExI9bah7iwfS3r2GY2LlrEjozvsxAD/Pb7j3Hzgw8AAFf/+hWu/vnK8+BahNqwdFoSK+HyJyec8rH+WLjGkXMhtErinMDGgKqCGJCUU+iL8Cn6g8dY/x2jyFQ3G1z83z8FdWbD8u4//D6ab5t7DC5/8hLLv/46KWO8+7vPcfMHLwAAj//8FZ786PWBKv2EUgoAdRpP/uWXrl66aZxCY/29Z3j1n/+hacdNh8sffQl124+TuC0cz+PxjWVivpiC5Yau5yWpMQOEfSqzyc2flLAVMH4t0mUQu4zuhUgAPOfQUxFIHkZ03f5KijE3yX1cxHeFUv4wQmtAxLilR48cr9ObTSCEBmReLF0eWsZFPQK4v1NjgKoya5Y90JTrjZibfHWB9nc/9a6sb1soywebzl1azwroHveHSppRXyzcu+7RJboPjHBBmxbVN+9A/dTb/Pa30L7oY8v+8g0ufmzi7/KjGte//xi8MPcwLH/+CvU3Pe2azfpDBO565b5V5Oouz4tJhLyKYyy7i+c0nv/oxoXD4ledX/P6OLiO/6xWLu5qEO5k3zEoXZ0R8aYc76BojZLzalH7d/GGXYb/6jRAZqzSbYv6N6sgDydoLhe+XZrG3YUDK69YVFUUoo3F3PTriFFOr3ESBAru/OENVVXIp46o5ORc3ftwAo6378Ird3QjD9Jt+8bl7f6XHpdWXhtV9E8sa2oagpEzbJsFBiH9uAPy60Ymf3eB5uVlLxsD+t2NH/tjdMVzc6BcS3w3kDWiA5f4cNK2s5BHz1axnBubsp1GlJ9U+1CWaNvThck7pD2nyCQkxu2ueQOn7W+rDB2Ua5R/JHmEXHN6pcpRDGoGvP1Mx3/BYbBzKV6Tc/xbhiRlILhjZRZyrKyWfAlRsHyR4Ql+zTgKtu0/Z9s7GVnaXgjePFFon5l1U20S+6Ft9U3KEFPaSvCEQd8LHVzygPg4oOXSy5bLhbs7hbvOh2OO+CO37ZBfpvrKyhfH3AMXXW3R1do6Fl2tqeId6WpL+K+CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoIJmHZRPRCeho2cIOqL2ocbWlSoXxmLP+oY2LTeQphIWJlSaM3edv5EUAnXIcXG+tSerMmT8kqBK3HSKE8tWYP7gzNSylssRQyHAAAgAElEQVSu2tNFiahq7uS38zQFoSdkuwCgtgMr+64C7HPv8kiOYnEiF7nLm3AfJiWJS4kGl1wJlypuO38CCAYvRNsufFgUtK2gl0L3LWmJJ6z3UpZ8rh7yXeDG2fdp39bV6zUWv3nnnuMRlA7t5MtyeSa/SbRNmDDIb+vzSFm0bqFeGwt4tWoAcbrKFUNbY70nFTafXJlvNGPxcuX6p361xvLzG/P8TW/JjR0xxeLBWrrbsbpcgKveurOuUX91Y07AW+0uqes/zOe3xdqCE2NhkDrDP/by6phkTbM1k6h8ThC9O+6DlwqAcIwci+ZD8t3BsjvgZxmQUj7UVmQRwp0OLWzuCnG4jhSYoW423jjsZuN4THel0Dy1dezfobcOqRS4t+zmiwrdoucJGkDbewAQobptjDcKANWZtR0w6/ri6xV0bdbi7rLC5sMLl67edN5VntlYoPR0SNodKJp/BH+BpngPIqBpfbrIW4FceC2G846Jsau1mOBnLH8by8LVI1N3wLheu7EqQxEiWDdJd+C2r5X09CGEdWylBV0X1j26dDCm1aZlKU8dygZ2aWNJUoI++Xx0PrUNQVvt9+1eiMdt0E5TLWiPbD0/cMP35TqvEhgrWRFPwP+Rs/JM5c9sPMasDNv077ouO+fi/LIyZwqptEE9EnmMyaTnhhx90tOg99Jy6eO5afnZ2YfJ6jGxT+6NHAfsJCsBcJaiR63jfWq/gv2Q6+PEft7+7iUqnjZGpnqKHOJRMkHHNUjrfzi83BiS9x46jxjApgETwERQty2qXmdGtw141XtBN0IntmuZk/oR09dN/+NudOwKKa8wez1lp0OP6Ny+wuZh/02lORUfZEwax0VXW3S1rr5FV2u+mUFXO/1QBWJSjGS7/p0P0XzXxOmrXt3iW//bX7vBzNfvoPsBTh99AHr+rK9VC7x+63PuQ4YAAF48Az3v46J12sSms++axru9PboAvzBhTLBpgK+/cfHtZIxlVipwo+KbG5cfPX3iQmg4umy6t9dppkjk3QaZwa9f+3eL2r+rKuDy0qUzE6b/c7PxZTEDr145ZkRPn3iGJhmEUsDVpS/r9Vs32fVHz4GPX7g2o0dXcI379tozJ2bg5iaoC0CeMbmY6tFEXYhhI9KFShkO7iN49o9/jmc9YyG5ObP16sFtG9Qx6A/53Omw3GDhCxfBANKFrKrChVA+yxApgrnVv/waT375ss9b5E9A8wRYG685rD56gW/+bTO+67cNvvM//AjVytD14T/6RbCA7+f5PLKwK98/sg+6P/ht6N/6CACgvrnGR//zD/1nDBEDUipEIlRRv2nf32g7/510/xtssmXmEYOV/ZUIQWY+931Fwr11gK7z8SVT+QXMXdAwhwA3JYyCnW+OhrtRRuRCYd07jIUuk3E4l0soG09Va+i3b/1ie3NzbPE9DTkWNJt1KZVMedfhat2i+le/cu/4+p3bAHzzn3wbr/6jTwEAF79Z47f/x78xwjIR9Pe+Bf0tU//1xwvcfmL4RfWmw/LVKxMajIBHP1agC5Oue3KB5ne+ZQraNPjof/1ZH5oK+Oo/+z5Wv/0dAMDjH32ND//3vzH0MIObKHxaSsi3642F6CsiCvg+f/nS91XXBvczhG1GUVkZoWzqnBsNe1il08X3fpDyB93rVXhI454RhJ7idUS3UqYmjMClXq+FzIRwLas+fOFo5JvbMLSVlTvE80lh11rJzy0iGeJs+NSpQhvFcpIsl6LxnWNaSsg4zOJuswNoyq3fYh0mGTLCbXQZLtRQEKJM5Dclvj4z0PmxoF+/8eFedDetf2Ke42hJJvbfxHnkGn4qXwlC//H2up8Ysh8Hc1OE1zza3WN3jWPO9Tjs46HyX2o8unUgGmc23eBuxpnBOuQ/BQUR/56MeM3LymRiTSECMHEOy/k3WL9yZY0oCA9FvDbSgWW0LbovvnB5P1rW5k4MAPzqNfRXX++f9y6YY92cG1Xl5BfeNOBro1Rmq9ewyN21ExiR4PB7gg5C0dUWXa2vl0PR1fbfHFdXu8OhykQQgsZAx/1akNgwuAUyFNaHeVKQLIhxK/OI89vH2mAPKwdmDjccY2U5AXMsXYa2RNtk4/1GA5Bkxjkhl5FXpqfyn0CfS67Z14sA1EPaB/WwYyZxApotacJCJvsq6LeoD1NtS6lxLAmy9Ck2BxAE5x1i6aMJNB6KFO0cMEg/N+2fY23RJwnzG/zN5nx/Sv0mWt6MxbPO9qOlJ1WHJO/YAblvIoXD5O/su7sQwO6q3DEcYmU2Me9AJXjM8nbFROVDEBtdsx/TEW+xfIeVSUtseSx5yxkhoLAsmw3Pth4j5tBVfNMxSPeqUYI7bGVFOy0jUyHr6Cs4+es0QTOO/aPdnxTIDBz+7ZIMObGzEDPUeaWz4POjFkOnwAj/Nor3B4wd5/qgj4ny76bmsY22HH0jtCfXZLHeOiuy1Hot1+VdxuM2ufoc1zkJ2U5nqIAe9NWxeN1dYmq7z9E/KTn7FH0/VdY5wzFYcI9wxPGTXMtS43oKDWPr3A7r6+xI8Fu5hg6wD89iDuT7cf3cBHoPbaO7XqMJ2+s7YV9/X+5RBVB0tdvKKrraoqvdYy6PHqpsYw5ygEr3nsB6fSwf9/v2cgD4BQBId9iO+Y3RlEwxsrClFBReiQXXOTspMqZMmq1tK35KvYvrNDZxYvJ2VXxEZUk3slG+ldtwJBkUdlC2RTRNULYzUTAQXZgaMv8FNeGeOUl6TiU8pJg6swk7k3mf+n4ypa57po3vg9JtUchke88q1WMGPEd/HJLHXQlhc5c7V35Hbo+w749a1G6YWG+3pgBGwdX/C+pD61h0fX6aQZVhRMbyJKy2eyabX2Jd7/NxdEqZWKz5VpA5RJAK6pig4xw3LTvRdOAasHv9eWv7zXqIMZU+ua4PXp1fH8+KU9YvubGYab2aIDMFONIh9hSZ/mxx7vT1SO4fHgp24VnHSneMdhU8djJPPVe5sOB+4Ij9PXUMT0q3Zc2YvEe8x+P7bOSsu6aDJ7TFmHL6rg7gHBnbdZ5FV5vIs+hqx2kqutodCDQY91SRrsFEyVAEDJiQJD2WP/kCi1/0boSdDkJUkA25AhiXujfGxQ6KgEePTBoA/OSxH6SrDfDrL01Zyxr87Y/94aaITYd1A/q8L5cZ6N0aXVm2cbQGZPgLGW9cs3f1a1vwpk8nmY+l19ZZh3WUbcRtC1jvrUqZmHuuMVTgJWBdmEgRqH7k679YpC0qiHy4JQaorv09AdIdCuwHB5EJ/SFc7IJTRfEddyK0k1KBGxkFbSbrFA1CSXcn+6ADNxk/qngQy/iF7n+G8GA6BWOzDX+XdFSZUFG9MtB8Q0Bl3dfIxIbsyb392y9w/W99bLK67fDRn34NahlEQPPbjM3vmjHz6BeE5/+8z2HVmHCNdtwulp4mrcHNHq7Qoh60XDrXRe46QIZiEH1VffYS6ove5bHtQoO5KgoT4tY8RtZFr6pAy9r9HoRnCbqRgpiSYUiFsUVTPkc0OOI5DFuzWARjwbkkEhnXyt5dl29ujOvpFDqyK+YcApScLzI8WczhC7aB6tqvMczQq5Ufr3XtedimAd+uXLo7F+gtHbn+FjxMuqPzcgH+7kf9gQrw7pNvQ/f3o1x8+Rrf++9/bJ6/zfjkv92AKoA14Rf/ZIHVN8YdefURYdVH9aqf13j+g78F6oy4wV+/Bb3t1+g3b1D9onP00McfugPMD/7iFvwT05708m0YCiYOjTWlraWLcRTDNmT8Ys0KFofwEVUFsqGJNIPbft5Tz9sP7f+AT0V5ufAA4brJrVxvVJguliGEQDsIAbWVNkb3zetgvXH0VhXUs6ewQgS/fj0S5uJASPmRWcQ5tgd9/bs4ZGOcBwTfP4d5OwfiMEDud5qWLv5mMC6mbWAnIcenxvpCKSeHkFVWyTF9KFmdCDs6y5jIzCsizB6eZBBO5DiHTuOIxoygSYabRNM83DBfp8IgDJd9PCIv415GDjacwjr2rkLuFBSkkFvnpNxAFOpuOj0iJ2Xm3Bh0lN9ZzBG5NkzlF/m5rr/40std7YlCmp4p9Ltrb3SpKh/yEgjGWSCPy73JLuy7Erq05QJkvfzbFrxa577aUoGiq3WVLLpa/03R1ZqsTqir3SH8V94dkrV279TNGlhlNsVKeRee4KJWBSwX7jSNKqFEWq2dkpgVzIBRZkCwUv70ad2ANtGEsQNH+U7gSLFD8SZUTug2Vub4xcm1hfzGPqdO6joNps7Xv/L5ESAueFJAXfl0gr6B2xqz+ZoZUAQSZsocP9i2EPHt3O82r77Ngnh7tupyIvT1j9365P/do00XT+KJliT2hJ1Tm2+KSsy416XCF4yXK9LZNu4/6R4vsPm2iQdZX7fA8i1Isbn87RLgR9zTxFi+gQmHte5pl+PHHoLI33cACUGRVBUq7Ozvtg42/1UDsnMzOJhAOKYH1hjw34hOIPhxwVJZl6RX5j1RAkmNm4Ag+xgrMsV8ke6tdW0uP7NjahIRKSUVpo3ffRQk8rDogegMBziW4iiKwRqUReTHKhDFFj1zyLmp/fxhAnBpFn0moP3wEvrC1HHx2Wtc/cLEYF1cABc/INCSwB1D/7lCtzb8p7s0/wEAtQr8+NJcWM8MfO1jv9Jm4wXcugY+/tis08xYXDfGZRiAvm6hozY9yCU+PvQiBS/xSD7I4pNh+b7v9ZDPpdbrXWlM8ilK8tjkeij6eDRdqtxttAV3kUQ01bXonyPMy5zMFKXJylNhwsP76i4xRvsUnrgD30yGOLjLNovHtKMJYtjtS9+ea+VYe+ba71TjL7UnOUV5g0PhaG7el0voT4F9x8IYTz8axBwxgnv/85YxfZ/5bcH9RYr/xvf/BGsK4BaSwR6Tps85N97Fb+cw9pO6n8S7bXNYPm8yerpdacn9lsKp2nJXHtt2XudYE5RU6Aq9GCkV6hK30QCMrqkkDL5YT5DnJ6Hoaouu1n9TdLWn1dVOMH0rKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGPdUGZxymn+vvtvhk3+wAgjQG8Kv//gK3c3wBJEjd02S7lFV5JLZtP5wa7lwp4GkKnDvikaqAr+98YaqVe2PvsSpJisFPL7y2b99B2p7OpQCnGsbhyecraeBuy48SSNxV0NVCRcw5S87JgItavijsk5YTIdtIy1wObC0Yx8iweZp03XC3VCRCWvSp4ENc2Tr2NeLNMSpW/+dsMZwd2yQaUNvNCgshLUM7WTocXXWWlh9IxwzRHAVm2w04E8ababhiSaN/+7KiqyQ7bMaOUeUY/PqEi7mX/vOtfvyyxs8+RfGxZE6oH1+CWJjKa5ul6i+MuOi/nKN6jfXJr+2C9up7UxfWmLV9tPPMXDbgnXv4nm5QPdJH8+HGdWvX/mxH5yyytPoMavWjEUM+vndj4vxw2xxl0tdgT/90Lfty9feaiEeO0p5CyRppWBPwm36yMVRxn901k3EoNXajVveJ8zNPlY2u1ol867z5R7iUGuljGUWdx107C4sLC/Y8vquM2HyTo2qAl30rs7MYBmebCL4+WPwE7O2UVVBXZuwW6yA7uICrfHMxsWLK/DHLwAA3QXh1T+rgQqAJqgvCMs3Zt6qt2tc/NzkodYa9MXazxkZMqQSIXwqBdyujLUJANzeurblzWbQP8F8PBiRxW2KT8VfsA69NaRl0cArbx8aOfMde6FpzAukl5O4T0YsvOi20RN720yiqf+968A3t9bv6ThWhHJ+5iz7mN277TGUj8QfZ5ibByG5Tgj5TP44SDciM8UWZ6eqEwvrRmeN2cuOgq4gFBghXMtlKIhjjM9cfoE8lrC6OybuxCpa8qnojdzDnYPF9jnh0PaQ+5RTIih34vpSUJCD3FMP1viYl+bGEwX/JD0xiMRwJaOXSMoDUTmBnLgFQboz2Yttk3EHdYss0CfIyNPyzfx+bl6x+5bff+N0avZnETIqiMhBFIYoiveUORqsrA8AzQbc2dC3en9PlaKr9e+KrtY2RNHV3oGudkv4L04+Pvm9Bn/4X1+DCGjeEr76fy7R3aQ+55DR1FU6Thpz6IpYVSDrRFNVoKvLPhmDXr316Z4+NnkCYSxwReZd73qGm1unVKFKuUFt4rXfuryx2USbPUGj7O+qBi37iaF1GLfu6tK7QG02IKt01jqkUQsGKgec1uDOu+iBRLquBWxMt0oBFxf+3bL2cSAVgZqoPXoFEinfB9yJOIcMAJ1XNEkFhu4CGlkLl7JB7FHRZoPFV7icp9xz3WOv+JaM3r1M5D26gJIvlwDpDhgmE5O4qoAnj3xbvLtxZVx8do2Lz8wE1JcLrP/d3zcHBQDUdYXl5yaP+lfXUL/8qpdp/ILAzNFYVaBFnaZpApjZxIns6eueXaL5u98ztDct1BevQU3n6ujC4DADeiR2LYSAETASIWxodoc59lXS/U8wTq4r8Pd/y4xfZtC727QbMjNQCRfUPnQXALNoNP5eBFosXLm82aTD3WgG34q5PrpwiPE4JCzzyb4HY35uJhqtIIXeNZnj9UUelhCBLi/9+BFpDd87/aEK1RXU0yeGdq3Rrdc7C//88XPwd/tD09UG6pevjIylgPbyGZrnZi3qvvUYuDZrVFMTvviTCzfO6ncdLnV/qPKbN6h+ZeLbstbhfRZXV259paoCLcUYv37n8tNvr4P5mO2fQxDML7Fm0YT2i+9y6V2niTmMqzv1zpcYWw8CLLEjaTiKR7sPP5Hra+6uBklr14Kvr3cvZx+MrNfM7DYj4+2/jW/vjznm5vTCEgdgKQx+jjYxLjsvu0hZIzkOjoHUWJXyraIozBx83YKDHjIxxu1arsU7TszN1KHoTKBe5pHhFgdlS2yjIzX/zgk5RVlun3JfsDV8xIQ6HW2c3VV73sN+LDhPEAGqCvUB8l0gk2R4zCCsZ07xEu3LpoYizJWbMc7qf5hnmozxjkl8ZUQuyvG22ACxzPfdIEP+dJ2528K9E/c+KAW18OGmJxvqib0nr6M7EmXYrZ1QdLUORVfrsiu62tPrakv4r4KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCggnY4aJ6eGv4FXD7SxOap31H0C1C9x55GKUI7uKXQQifyHrUIm0Y359QRZYK1ihPuOxAkw9dwiadc+1SyltFRvUyj+mTNAourhKncIFLmSA3Ps2K3JmoEhfuStoT1gtpmqh3I+wL7bR3D1tEJ8xa9wa9ps3HQmzIsBHB5UbiG5KHnHF+YyeRU8IegYRLbyKvOSzGmJO2G4G1bNP2/crmhNieiteVP3Ff1qB1AzQdCEB1u4RWJp1qASxqU45198zRzvlxtzM6Dbo1l4Wh1QND7oGlaOrdlt/GTmq31oMZWG/MXEhZL418l8ybozEdpOvnRs4KesyCKPf7fbTWfIDIjrMotJNNR9Ll+q76kGG8aXakgeoqsI5y3xKBl8byghWh2jD0jVlHVCMtahi09t5bxLJ8sSZXlbBMidZasXY7+ke8C2bjZz7D4W80vOzO8KbYoj9aywAfhkjmfexxkV17raASpvWvJ1qujXnFnAPfyq5/c4eI2wN7zs39ytqS/9j6k8pO5rnLmjoXmD2/7X9yVl8AiJXvY+7fZh1Bx+XTU2FUpt3bK/UeQcpTDyH81yG03+d65/A+jumCo2FwYbJ/YR+iFzOMt5H99NlgjHeMyENHy7tgEuJwUsGz+HvrZfWHlr1/JgCKrrboaouuFsBJdbVbDlVkw/qMXv2zGv/kv3jh0nRrwWTa1rsp1RXUkyc+t6tLP1jXGx8ypK6A5098eU3jiyNlYsEDZoIsFn4CXl/7UAdNA173ymQi4HbtVRVtKzYJxiUMQNABgNAn2TxcrEAF9fypd02SSq5FDTy+cHnj3a2vf6VciCWqK+Di0jerZFpvr4FV72IYuxDS0reZUqY89B37VoTukJPgxVPgRR+LsO2Al9+4CvJm48sYMCy4LgjaIvwD3MnvIuablWgykzT+xjL1dOLM71E54nuqVMjcZZ27yFVZ2Th6LfDZ53GuAAD90VO03//U/LZpcPFnP3dM9uIXHwOP+rFACvj+b5n8mhb4i5/5cSGhtemTmVC9eof6//3X/odN56mPXbPl4jjmuhp196R0EmKsU9OB/r+f+ndaezqYwwVLouuy45ZXK/88FsJn6kZSLqgqHN/czC9ECYLCx4coGJMYc6P8YgS5sVpV3r2XORwXTRMeBo7Fwj0SeLNB9/Jr8cNI3UUcWPr0E8f31eMrK5tCX9a4/YG9Pwn48IcbUNvXWcw5tWpw9TdfOuVn+92PgIveJXqxAJ4+6T8h4OrCDUO6Wfu2CQRhDX5z7emX7cd8svbM8TMimPsxbEik9ToMayYRhAo8LgI+X9XmPwBgfXib7TuXzgEn7IMcdpqbJ4U4JA42rVEcezkX7oJ2Zi/PIxyJ3HWoKr/VoLoC90I9NY2IAR3ybH+nGoDgDrgjIyB+rMyHv17PKZs+WNiDfIc7ONgsKDgVKApw0mZkqzGZZPQQb+RdMM0mKgiPiaAtzmTec3w3R1qP936DovvbWti24a4DCVmGLi99OiXCfzVNGBrsUBy0dyq6WkNC0dUWXa3BXelqxw9VMrF0uaPwsiNxkJcOP+w3hi4GW6osd8pGYYog9qb9m5Hd/FjlbBBzLpEuqFR6kBH5Mim23AXActJp9jTaekS0y7bweUQD01r+pZDpk0Ed5feTrRgNzeOXxY58flfIxd1zj4n3gzrGXCqdHxO5009uO+MZYhUaHYN6/QBXANd9H3djAuTMYAbaDkH88tyYAcJ0R0TQB7F1h4zLOMViLkMvj43vHetIYt4GcSOPhRQPuM/lTKHhCGVn+yoaWyfp0xSmlGcPIJ13ir8LCUThUitjsHYMZWUwBS/gAoZPAWBw6KUhymG7xtl1k8J3wVpmrUHOYRMJDNt1TNawY+GOafdjcPIH/vlc2n0bjjjXZ8ccNM5t8R3lF6yjrm1FgjNtZ2b2sobkYTS+vgbvjm1Nv0/+QR+cZ9u/dzioH3fow5SF6wSZ+2xxDrJhwXkiNdaB0b3y1vGzZd8+fJeR28doOBay6/AZzplUf+w61+8jPxuDU8Nt13+QSWg/8PqK41G3O4qutuhqU0nODe+Brnb0UGUQWmM8sU+U60zeooRx7/yA4iBv35A8+GYsv/A5piHrRrbLwizzl7TGyWT+I7THm8+dMbGOrp1PvWjuU84UoSBRj0ljbsviymJ821Qk/3b8OZfHcYS8nFAw1c1vH6XopBBfElvadnSeccb9b4yeqXUaY8j9u70Onaa2z11sYs9BKL4jGmQ/7ncZ4OkwoC85nwWvs7JY7hv7d4o/ukKH33Hy+cwOVASs8tY+j6W7l7hvdN83eg/FWH1n4jlJ2fcetPNRZI1jYe5y70H/PBiM7RNOVe4c6U6JnExaUAAcZ05NnQeivIPXg2PMvUguPi8kjIf2mevnyLMOgdNdp+slDVLlXizQR54Riq626GqPhqKr3QnjnirSolyRKIyz6UhVQG3S0WIBenTl07XCVYzZh2BhAK/f+nRV7Ru8bcPwEDei7Ea4ipEyIT9s3kFIEk8ybxrj4mPpjd2ZHA0KtFz6ui8W6cmnGdj4/PhyKdpCedorBSwXvpzVxtP+9LFxAwOATQN8/VoowOQpswxLpLxhBJm2dvRVFdjG0G8a8O3KlUW1b1tuGkA3vs2kh5UiOBc6BtKq7b6O8em0bYtWtrN/x1oDbSaMUlznADENifHIHNKgOezjIDsZMgPRDIQ4jffvdE1on5hx231wgS//ne+BlVFqfvyPXuHys9597/lj4JMPTTZVBfrup26e6K9eeRfCfVF7M3SK42TmQoEE1uYRiIbNa39H1E7uXZRWvuOoQaXmNrDyydBAcT2idDJ0WTtjuCHLO9xY7fIWB1Mhx7RsFwZQC9ORrt2/jPsCPmL4NDG+qa5Al0/dK31z69cEot5z1VqiyJBkxwzvNoKA9hr0+JH7ndoO6N141SsN9fYWgJnztQ29QABePHd8gdoOtOnr0jRBaB71yy/BNjTW0yu033luXrQa9ZdvrHQMvlm5NuO2DUNo6c7PSSVcYlgPPdFOBblRatuQz4iwcCcLTxYjCoHk+ntRm79haOd3t369vrpwIe24bcE3txMKinjsXY3pAIImiuSQzebh872pkPJUdsPbryFSlj5naO3DZBBBffDcy/63K3AvC5HWPixE/91WxDIN837tEYdxyWFK/9xnEAV7iTI3JyCQdXtklTzn3pZjQn1BAYxuRIRsZh2ForQwmqtMJlPHlRiPOjHPgFD/AISe3YCxUt653DGSZghhfExUFUKDq7HQoIF54pEJs0Vm9sMnBZv9tvzbPbIfx0oBl5e+mcQ+ksf2EaeuY9HV+roXXe2w7raORVd7dF3t9IvqGT7emRshCSjyFwVVysS5tydLbScmll/4WGszQC0ulB+UMl60zcM+S5Avl7WOYtGJtF0XfMu1oC/IjsxktZs2Rf6SYB0ODOq0U9RhWfsOrrW3mrXfSzc3W+aiNrHs+/bzg4MRuKH19bR1lIID6tq3J8i5OXGnQ0ZX175/7MWstqxAce0FJ2ZG9hxWqZCOvr2Y2btayTbtyxqMnmCyJ8pKCWeUGY/SIjs7SXn4t8wvI2uwAvTS1Le7Irz7wyfgGoBmfPAnX5pFFwAEwwYR8OjKn45+8yZN0w6QfQNFINvU25QK2balJH8k0S5bw3OEmYb5y/7gDB0xffa7wdiEGZ/xvJ2iUJHMNwfWCLn9oQIRDesv3p0qBNt7Aemyu1j4tqVV2I8JnnqnyiOxHpp4rAvPLzWD+glOaw1s+jnXdW7BZwL082dA1X/T9OsSYOKRijWU3rVudHePL6D7OLO0bkzoQO4vtGsbH8u0aQAZT5RU0NaOD6RikZ4Kkldpv/aG9N3h3RPS6k32d0P8g9MAACAASURBVFX5/tYaTOJeiar2G4bUuhnlP/h71zoecy6IQ5VALtyHznPCrm0Wr3HROx92IV4rBDj7hy/jXNqU2cQpt7J0XZuNJQBuWlBl5FMGwrZMtE0S8fzeVf6R78bkTFHWg1uv5bp53+bmlPk31u+nxH1o03OQhwrOFiR1N+wVYYMQjcGeemS/PRlj41EabSivC2KG2xzPOZ7dHD5g7Z2y3uxFmxLroTB+Sh2oZPelB2K0DjQcJ3eBXLmB7MGA1BHKA5fRvjti225D0dUWXW0KRVd7El2t2p6koKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYNxTJbbs7f82FnTySMj9z5yE2dBEqgLazlwQxDBWr/Y7RfnYcFqHp5HiJDTrcidPMGMrNxZlkPtfcLJIRCYkik1XVS7sBojMiSf3ZQfWuOSteRWhfVQ7eqvXLapG+3Ss3MkfP730OTCAdX/623a9q11/BNd13rp2cMrns0bTmnbu6WBrVdxpE/pEtkfypD3tqTD4Rlq09Xnk+kRaDRIRGHmPh6BS26ww3c96NImjL3BJlue4os5yjPTpAmsF+/i8Bf2+OeFcXGj89kfvgIoBDVw8r417IGAsj22fag1+887Xu5Fup/uBu8jiepK1x4h1yD6WNdaiPVkGhT8FJ9oTLXFk/qTEZ2Y+svUDnGrpIi77zrqS2/c5i9kpVkSjlkpRu7AWw6xYBh4CUsq7KSvrwmsWH6oqHwbAmCGE68Vdg8iPT7n2AIZ/iHTBBXoXS//7pnVrEzUd0PT1bVroTQO5YLh1790K9KVxgzWeLd46CZodnxnM88DSTIzhu/RUcbyAwjYLktwVfdH6KtfN3kKL7bNs266DtiGRtoU5DPgU9qvrsdpHifGtqA93ZtZilh5Q7wOyaya8tZ1NJ+VWEuvXNqt8+99dheKLYfktEfh2DbbWjpuNnwd6y1qeW4fZzZ7tFqE5KzopG/CIt8tA5jkTD4hD0Hun2Gda1Hgwc3NX2W0vxPnuMI7PDjvI0wXvJYw3cmZdyXlvjGY4tpZF2eXk0GAKRrLVHOM55dlOZAr2JuRpGnPYlm4WL5bYKyQowJexbxPl6BmlfYZyjwwW+i6yOkyLuP8t5OXofOI6Fl2tr3vR1fq2kP8WXe1JdLVbwn/JQaH9pk66H8WLaF0BNl4e4F3FmMPYeZqEi1rU0k3jB4JUlAFB7Dco4eYYuYoB/SRkRhCPjXy5sasW1SIO3nIZ1iOI+yfK6WAmAxGoUmg+ugT3+VzcrlC9s4OJAOrcZrf59jPjcgeg/uItqte3vpzlwnUqNyK2oQxtQCRChjDQ+JAh3HXB/QEk6yHziJUwEO0Su2fKb0Q8VdkuY6EXWC7uVnGUnbBThJN4QueSCQYLhDGxpStcvPhoCBr97/TdNegfGJewy6rBH33wKygytPz8u9/F9dcvTLq2A97cmI/aDvrzL+bdrATjMRZwMxw3sfcz/24ThANtoHhMKIfcmUokhE6VBWU6sSBSLfpNDxWSaXoiBHc/DPmFTxfHzM0ROAKr1EwJnZHStGAmVGLtqRQgY8Re34TuyDrjmnxHoKpy6xwtan9YAgDX134uiHRQygkGBIBuhAJMCsWbDfjmxpe1XLoxTi9fQ718bZ6VAp4/c+m4E67ZkbATztMtIXdOBSlYtTpcb2KcOhxMfLAs182mAVaCxoU9DIS5Y0KuvVNDS5xDf0go1Str+3G2FON7pd5vPig3P0I+IWZwsBnJrMMxYhf/cxgLgn/o12/EwTBcfc2GaqpiKpq/sWJrFzA7WRyAkekDmSon8+wg15wzqsqFGCQbQ95idft+z80pkMof4Dzm2764z7QXnAa6GyhSfbiYaC96qJzFLJRpI2NTlhMremVe+0Aeug+gEGhMz+L+OgGp+CcKFZKz0DpRJnFJ7gF/CfR7HXiz8bpEMRYI8OGO4z3RXId5k1F0tQ5FV+ufi64WwGl1tdPvVNkBMh7bnPnNkZsZj+FCn4qDF7wLTlIjZiCe3ZupG1lRljyEs+XOGbd5UI/4fYKmo2OfsmYeW/vkF5Mtm5bi8YN5xm0WObrn7sddlDOJsuN2SX/m04ze33JAi06dV6M8Z1td5GI69u19EDDvGQbjTIzb/P0/54EB75i6Bsg6Jl7vqJ7Mz/V96ZuKc1EAz4mxxWL0s5G2PVU7HUmOk3+f61ycDVPXYSkLblt7Dh0/++Ac5+bMMk7QZnPLmWeOBzE3TyFbjY25bevmfWtP4H7TXnA+OIFeYRb5fmSdi3nkfVgrpL4roPehywZHQtCe4tm9v2frZtHVFl3tJBRd7WTsdKgyuBQ6n9D/I07NTCVsjUTyQX4+nbs0173KLGwyD3l6Z59ztIsJQfJkLM5/hAb3nhnU+AuFWJG7KAc1AY9gLnUjgLQG24NcArQ7eZXKMcJoV1sGNjbY4gU1ezqJ4D0xbVdeEyX6bgSTLGwDauICp5WzlQxxmrnjhKc1A9/0p6m1xubRAoo0wATdsDudjy9+6gsWGR1YFzvH4rzJj5zJmLKwJN8nxmbmQGFs0Zly4IKAD0Qn1aNjJsjEfyZJj0/7s/Qm5tmujP4eCVz3DizdR6m/4N3zvWD8OBz92HMaYgsTEb6KqwpQ/UX1CF2npbssSQu9wEIJ4RyP11SXgX1nP4rSRXN79s3DKfO7g3lIOZkkJ0+MZ3b8OsyZfzTmKDsfHyCm9GWQPJ9+qgx+1nOTt0iWkza5O6afgKx8ESYSNMg5eL/HcHZu3qdqnYKnj8nwU8bMfcN9pr3geDi2LJgqK8aUdXNXuvZZU+deA/bRk2T30BkZ/i5wX3mJlVesPvOUcteeKLraNA3ufdHVjqPoakVGu9Vl+qHKGDOpfDbUacDGiGM2IVeYDWHPnvoQPF0bhmNZrdPFLuogXp569tS902/eAq0Y7XLACvcwyPh7vcIqBXp01Yfe6NOt167cwBXp0WUfrx8mvt7ba5fu8i8+d/ld/xsfYf1HxsVo8e0Vnv0HXxkyb4Hlf7MGvjbpNt95jvVvmbAr6nqNi59I9yMRY69phasYwhiOTedDxCjlw8cwQrev9VrU3zKCHp1312Mt3illwtOkINvTtpOFzoRQGCB5hpxIFg/uPRYw+YlmMWamfV79H9e4/Kemv7vnF/in/+W/CV4ogIEXf/5TLH/2G0PqoyuoF88FzSwKmYPhCIKDuJEctlOuKKIw5EUz5gos8o9DY+X6mFQ4H3MKizhUSY6BMbtxbBit3PRP7DzhjkqLhXMZpboGPXnsyum+/MrPGVX5dmIO5ohzsU3Vy9ZnWJH7K1yeOXi1MvwNAKoKqu28oLJeA23v3kyCt/UHCWcBK+Cu1uBfGz7ClULz934PfGXG6uIXL1H/xtyBwoBfe8DQjXerpuUC1K9R3Gnjlm3zb1tf5+XShX4BAL65dbIhbzbp0C9iLh4dIjQNmE0/nkt/bYNYD4nIxMu1PKFpXHxfWtSur8AMXok6Duo6ca08N3Qd+LZ3mycy48du3LozC5lxShCFm1Y5N8fkqUGYFRm+6kRzUykfrmCXudlNjFOcW19jOWHsfrSpaJoMDZRv26APaLs8cK5oWx+qg6jvn759S+ivibgnfV1QcCiY/ZrFnL1eZRzRHnVXXilleGDIpw41WoyVtiwe5jikkGvF1DBc8foSvnT/kBLrY4fj3au2zWtP3YFMMgvCscW3q3xSl2imcTEHiq626GpTKLrak+hqZwv/lbQ2l5O7n6zUDy7uRhSoQR5RfkTC3SpSJscNkLIGHWN2ROYEFAgvzEkpS93FliF91HTuVJAVQV+YAc5XCnjWp69Nu5DlUwTwok9nFbhE/mTOnXKmaTbtHP/cfyPi2fGA2TKC2IsIXwVyT6Kvcqfye7nD7eqGN3LSOwrmaelyWDPIxb/X2KwWYG0UlroRysbBYnCkRXZLvwEYre8ufeVykSfquf4gMQYDYWNbIf25/1g/xWM4k8fWuW7T9ZcoE1E4713SRD0GNOVf7YRdPV8eGg61wLffxvFI4zFIM5Q1B3LrphN+AK4rwK4PKp2Omc09MSze+YTOlXq4BiR4O28Z66dARBNZS5t7htg7xfNbKf+Id7k4ujYPi7vun0PQW7QZXco9Uj7PidT4HpmbWy0P73DdOOrclBupgXif2gfskfekpNvkJDGnpdx+38Y2M1hzT/p7OjcPQWmvgvcNdq+218GI+N4+T/lG/n3InBspd+v+NVfuQJ4eSXdIm2XL9XvbbO5ztNmENPuEMD4LHKIjOqd6JFB0tSi6WpG26Grn1dXu5qkSY58K78FwnMvXFOXmgeWOK06Hi38qNSXSpegY3SizcOgaoSlHb/z7oUqy2K0v1/OTQjmlCzg8XUTjaLqpk3oqTZmkx1JObsvXHnhQ+KN/TsylsRj+BKTH4x5jM5suYtajPTR1HEwol6K/s/QdUNa5C1png5nbaZa+OweMzbPsJzOseXeFmdevc8FutQi4rnl+GM0A4OH06VnwkTuk4U5Cvxy73H3LSm3qz2F87IgHMze3YY56vi9tVVBgEStAzw0zzMm9w2btoofYnajxd4foyI6Ac6FjZ0w9MDtHFF1t0dVaFF3tMN2RdbXTDlX2LYzIhB0BhhrSiwWg+tABnQ9bAmbjim//1tq4MKJvC+tCxjAnd9bTKW4saSHKEO9ocGLpHpsWNgS/tV73L0X6m5V3gasq4PlT/+7drXFVYsblr2+wfGdOwdTP1sCf9W6EHYBXBHSGkPr1LSrrKbZuRF0Y2DThSZq0bt004e9y8HW+0Tj5vX0m98hdbvBG/S/c64godCmzv8O0p89CS618lHWkOMohPrndFbIs5rB/04kT8G2kblp88Mc/BSszxhZf3viv1xvor7/xZek96B1Daqy7d6KOCxFyJp5nYjEZemiQ+CdjIc06JETSoePQGOJ5sECR+MbPW7pYwioWuWn2a8OMdTe33j2T2xZkw38whmFWbLlx8SzozXLq+N09FTLvG7QGv3sXjn0HuVacSX9I/l1Vbt0kpbB8tQK/M7xUcQU8e2LSKQJfeBdour71oZS6TtSZQM+emn8BBOEGmtbMLdhsRNsE8y2/bh4VWpswZKcudw7UNejSyDi8qLH6wSdAZdaK5W9uUN327d52fi0n5V3g7ZkKC/5zn+o/hlbKBg+kTvtCeYu3sI/9hCOiPoyBXR9Fm7VdMIdPBuYjz804v5x8sS8o+ThqNBLIE+5/8gcDGYJByl33AWVuejwU78CCgmNAbN92AsV7Qv84rtDOqgiRleX3mcPMR57v++Q9to/0+3ruxvi30IuN6mF2RKwnkGXfO74ZK83FM1FmCJ6J8UTR1RZdrUTR1QI4ra52tvBfKRCRUSIkS65crDtqWhNvHL1Sp41iLmvRuPJiXsEIuNMYxpnOMDol3Kjke62FIqoytMcuW5aRWFwsgaePTTqtzUSF6c7l6wZY9fVfr4FXol515QZ1ddsA3HOcphVlwbSFpVEpz/iYQ0VhVfnTYe0VwRy1WTyh/Ykypp9m9xOV7GCPB3zvUubc85gBKPhJAoSVxOD7ATjgtnsiJYjsKBEK4UFtNB796GU6XduC7Z0OJ1hsg7YO+lsJN85uON4pFXZELGa2idw8GFc4OHfCgAaAetdF6eIY5G+f5cu69vm1HdyKvRPEHEZUd4tuRCm11VppW98eIOSMlvseYGpIgAzGFY1n1qbCTZns3/1/dNuAGss7CegV9agU8OTSjW/SMHFyAeibW7OWAIAi0OVl0jJFv3sHrIwAyfE6B44EOxW+m6ve2yxaziUe847jkZRy98HwRY3m289MGDdmLNYEqvrxuVr7vrLlSJdy2GJnbPe7xrHifJ8jxuQqMc/dQVpKJiEyd3+5DajPV/PGy6SnXCuOPTdjKzU5/w6uZ7SxJSAXgm0oG9m+GpEfbThRKwvdpzX8fZqbW5GRH7d+dpjsUlBwPxDxwKk6BIp1D+nsEh9lX7kPUwcJwfo6Aal5G5edM2acmv+uuoExq235bhv/lspeB32gaElhn8Zr3pRxcY573oGOw9cxSHaIF/kZrBVFV1t0tY6Goqs9CGPHPwUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9ZvFUyR6aEZnwQ+aPwBUJFF1uyTywzDQ/Dy3HksVR9Kw1uD95GuSh8/m5uGrBSSiigzN233QXhM0nxhqVOo2Ll+JUsu1Aqj/xbDNuXYAJ2WItVbX2oV/Axl2pY0+CPcns6+RysvVMPI+GMMhBnpISRB7mlDey3QtxkCXhAdYfu0IzmOSJeb6sZPxB6U4nf5NIWrxMJ3ESgjJF2xMA1mCdsqxA1E+EoP4uD3s6Lk6rk8001UIptjYa+a7rhBfiHuNAKWdVAQbQbEaTZ7HvGNznu12tex4yzsVa6ViIrEac669SznLEeLCQWcvcN/16sFBoH9nxzVi87MQ6ItvOWOwkW7PrkI0XK61UjuFxF7h934O+nkJj3KfWkksB9VfX4EoZJ4NV40O1udBOfRmbjfMiHPRPwf3CFH4eyGvi9zg5i9jNcn7fN0+IfSFlkFnzg7PY2/m7TF5u/1Fw/5EbF+/DnCsomIKtc4ESW/td588B3gDB+rprJkYGH803+dkR5NtoXx78PnXveOgeM/5e/L1zLc+Vh06V9W10ARahUPfxQDoRiq626GoDFF2tyHIeXe084b+kIkESWtfAi+f+79aHH+Kq8t8pEnHloorFIYvkZI9dmWSj9coMM7hHOlsorwLv0K4LXdtiZXD/vH6u8NW/Z2Lcq1WH7/xli0qG8rCx9OwETLlwrjfApv+mUsDVJRzx7248/anNs82r67wCXKaLXcpGY9OJbBe1T6u1VwCxBjaCgdV12kVv3wk2mBCZfCiqR+xOmM1b5K9l6ArKt02wCETjQI+Fv0iwM0JiMo9kkUOOVik0MsBtFzEZ8dzFbWbfRUpWzebdwK1vOB/SEO1OBNRR/MtAketpYhsLc19UFdSjR31mDP2m2X9cFhTMjTpafl28UwC1Ef6gyISMqsQhS4/uqsbNd/q1QjOe/myN6nrt87AbQWbw22vz2P9tYVyx4dJl+ahcHGebQ9Fh8AMALRbBeuh42GqNqz/7hUunnjzxByl1BXzwzDxrDdpsHG82a3n/0cNoooJYUh+swzIduWfWOgyHaWXpcwmPd0zMElJgkKl/nBxHeUI65mFYjGMhlmmnyMH3HYHsf2ymeOB+pqDgoSMVysf+K59nuRNrZD5mjRYO5ImKAFWl3+mx+7IofJyTh5AK9S7d1PUmp2KNjCqngrVv93gv/wDl+0AmWyzcnYnQ2txLMbfhx9woulqTVdHVFl1tSNQwkz11tdMOVSacliVPh+T3qRP2OSy5UvnlLG+n5DEHHTOkIyI4u8Q7irnoYvhtT2j+3Ye+3KliLr9t/T21zD3bkkS5O1vaJOMj7knHvmM212Yyv/hdf6Yymt/Eckn+HfOE1CI2A5wiar4Mx8dm2YAXTMTYPCZpITS2btJwQ5TlU+c2Ns/dS2UP+rK8nVn0Nw+PsIkC/pjkWVPWxrnaMzU2D8n7PvPHU7TtIemOgVPNzWOPi3PwGJmjjlP3WO8DUu05Vz+fw3gpKHgAGMi3c+/FjomI9rguk+qR033NgEN1CIkM0Wc4T342z3OSGWdehwc6sqn1PdZ6XXS18+VRdLXpb6fm957qao96UT2A/kQMsN3N8bvBjxESjSorR+GLMLsjDmxLA2kGNebkzf4r/LyyCi0Sp3cs2of6E8TkhZk5WhL5T/52pA+mKuPy6Vj8uUNfjNE+h4CSyz/3uxQEg/E4gU77TXzgOdPYPCcB1TKfQBmcQ2LMcPy7zevAOu4ylyZmuNvvc5dT8F7AjHsS6ncAFYGtsUkFUMdgMEhzYFkRz6WYR4s3dzvOzn2M70Ffcj20VjNi3ZLu66wZABtLJ/bf7VT8sfnPoRuac+/rYyMnu4zIHf45kfbY7Xmq/poi750Dtm0cd/12zvLPqZ3OEfu0zyFtWvqj4H1FYp2bRScj9CR3gb32oSfQQe3wQfh3rFvbi9Yt618u/1OumzPn53R/jF5uRzgsiQAeGroF7126M1oniq52QB9QdLVbiNr+7j3T1e53qKIUaLn0dFSVbzil4KjqOuCbN57Y509dGBPqNLCy8exaEbOSgOrC5900Pi45M9A0AR3BpkK6Tk115xexMoO+T1oDD3Hx87f4zv/0ly5NffEYuOwVW2/eAu/eDb8nAh5deRem1cq5njERcP3Op53Socyh6x0RMHDtTNRDtFlcCm+a6LTOP9DFpU/Xdc4dkLXOhz0ghWneoFMHsFE47o6x/CXTEulyXmNELqYigLxLM3PorjZgwnQ445F9v1gIEqP+jor175B5IX+m4TgG+UdZR+nWGA/HgJeLNptK31Qm1zTQb97s/l1BwTFAFMwROTepDl14+frajPlKQV9+ClyYOf3mdxd4912zbC+/bvCt/+tzs9YRgR49BR73Gb59B1zfADB8mZuR0Hd3NS8eYKgablrBt8izy6oCffSB62MjG/T903XgVsg1neCdVWXCgwHD2MF7IeLhD7APzh5yrWQeuraTTCf6SsoXrOEXxbKu7YeczHWP2pN5PzH43uK9qmxBwf2FikJUSd1AsB8ey2SS0mB+xLolGV4rDmdjaayU1wds01WNGlI4C4owncxDM+BkRsJeIRHl2rHvgQpl+od5Oh33CWIccNeCV7f+nQwRJ6MHSN0kkQnDZNttbF82B4qu1qHoaouu1uGIutr9DlV65apTCsln+x4wdRXx44J3gLvsyBjkkiU5IJxF3qMnRoecuCfqwcyDxktZzatWQ71pfT4fPwFVlThVFP9apXT/7MuK0sW0ybbJdWhc/xHXvWR7ptosZ1nQ054Kb5K3bmV34su58lKYaom3z6FE9psdhBKkx0W6ONrpVPsQBArbRH/LsTSgfUtb+ryHDCbbFql+PIUyN3U51ZzlFkvRgh2RmpvymQEnaLLWgRK2u1BoHxvhoLpuoFatsZgCgCcLLziMCgYI3w0JLON5VwR8QGyKJX+sK5BSfg2wvKnr/OWHyay9LHQ4nRGtu/KvMRoe2piZ2t7b0g3aRch+wy0S5AYkGarhRDLEneFU/CfXtneJfeQJO4/vmvZjYw7+dxd5FxQ8NOy6L0+kmxxW5Y72WGNhXBHsgeGf++9SlAby/VhdpP5M5iR1RogvbaY91oA9lZ0pJfZdrz13MUZiOUxVpn/cYVVGlyj1Z8duu6KrdSi62ih90dWOFLe/rnbaTTgFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXvOfbzVMmd1AHGZcy6wVUKWPpQRGhboO39c5rWu4pp7X6PT8aky5LJM3ThYesSpXXejWxwysXhoz2FbTuw0r5u0mUP0vpAnGAFp4IAXr9xFqW83qTdjIiA1cpbnjaNqad9F9Mr23vXU17hhskA0Il6xPnJYuODTdu2xMBm4wNPSFe2LSeoHLTFSGEB/Mn0/qFKhOXwTu8mQOv0lzudxu5+IsopD4y4XGddYPsnKDExNnOWm5I25fMjOSsI0LHdLQXvBPHTaOCcxQNh7/6aG3dtoVNwf9BPJT+mPe9Qde3crflqifZ7H/UvCO1Hl+CFWffqFeHxZ2bOLL6Jxt66AahfUzeRK3Ycmm8bBmsQylgfg+CJUjbwS1YHvHzl1/zblV/zx/pD66El1SFQCmRDkDHPEE7sAWNqeweyoJAnRrzD/PrNQ6+y5CcM7jKhMh/atJzVk3QkLEpOnrxLPrdv2YU3z4/cPqyg4H3HlLmgGWzjsQgLd/t9uC/N5SfX0S1lzjk/mb18lso7Vdaihrq4CL+3FtJ1bUIvAUams6GRiKKwngjXpVybxe/2QSCv2MInINYZzSmf3mfoLqsLorpXtfbjItDBHRNFV1t0tfb3oqs9ia52/4vqEy5XAMymvY8BzlUFXF54N6rVxruRrTc+ppucFPIZCOPPASY2uXXNkRN4LC6fdHkbc+XUHcwFUwjvhDCZCFe9KA8bL1AzWMbYk+GRou94vfGuXfFgj+MPpuqYomMbJrgzbXWPYpi48Skaprr8mZKmuz4e5CIp+8D9b8K7ici60EX5z41IuCKVcTrLyqrxWCCkzlSS35FkblKJZJNwPr94oRltvxHs4u6bclfO0XRoWQUFWXC03mj5xm26+OoC+nsfG6U8gOZ5Da7MN6phXH1lxmF17eccAUEIKW7aYE2lXnhmx7OnjGXJv/TessyDwRQ+IPtXPnfaxO3d9n2MnKA/BYl1k4jCzb3cIBRMR04mGZMnEgYP9vdJ7ubZw7f3fWJuwS7y475rfK5v7wKpuXzXNN019uZvI/u+VBnvezsXPEzss99iRhClSq5zUwx77hKj9cwphAEsaqPX0RpYK5cP1bVXrMu7DWI92qBc5flKSh91EGQevJ8YYel/COvmocgZuioV6i1Xq3S6Y9W/6GqDOhddLcbzLrrag1DCfxUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEzAuKdKztWQoouPqio4RfLWjwC6jEWCUi7ciTmVs+kSp37Rc/rSnpFTOGZ/IWh8yiXdF0ETr+0S4YfiU8qpJ3UchkpiDvMj+V480JSsJT3x81ay+rRKuIbmTk2Jdjs1jN3wUifRYQFR/8i0I+VSfKqZKSPoq+NbSUy5IGkvjFkm5k5nDzDcm0QPC8v2sRNgN4YibLMUmrUtxXxOFnfPLWgKzgSJeeAMxXy4Aeo6UGPWQyKAOu9GTRreCoYI+tES1spMXa+Cy88DF97AOmjL/HF8Gn5alCmwg5VmzvrOy0z7u0fvgAS9gZVosBait1TrZbKmCTyfRuue4+/BOjw3zz5T5OSJnHckmf/F8p9LJvsq1367NGvWo3WbLHaPccy6nGM75fZt9xmTvYtlutx8yexlcji2l1NBwbljr7EtVbN6IgAAIABJREFUvB/I/e8E5d4Reov8nGoiGcZ1Cn8+WhuI/jl1M89dp3MbJ4l+DTyRj1n/oqsVKLpaR2vR1U7GIbraHcN/2cmpXLw8IgIeP3INw7e3wGpj0lUqHFiLRT8AAFwuASzNc6eB21vfaE3jn7UOXcxybqODRhB/6yhuOAkGIf1TpSsXURTrGv53IqEMi8qO42Pn+kaGfoldxYgB9INI1pcwdFkaEIj8xEohkwVdLH1d2ha8afzLOD6/bJspyiLmifLVWD0S7yyTu7jw41HGhhxkkXHXnBvHUCjJPlAR3Y73MMIBGI2d1PjehmjBznakZKS5uhMhiHk+aKf9Fpss4voGymO5iMRK0TMT2AruJ+KpUouYs20b3IGyfHkDK6h0lxV0f6cKyXlQV1j97Y/Nc6ex/NMfm4MV9MrYQwX4fcZ+vG4OXLMfOJTctESySyXEre6EhwySx3ZRyC/bV0oBv/s9c7ACAL/6Avj8pchkAq2SdxKBlgvfFlr78Q2EstEpDphOhtycy8lqUdq6DtvMxl6fY6xUFWi5TL/rdHgIy1FYh/sK1g/nYCGFgbzykOaSxITDEiIfIx4Aujadbidw8E9BQcEuEPNH8uHcXiz3/X1A00G/9SGFaCHkPaHLcSG/bNWqKpTVAx1Xbv8+A+7z3jbWG5xbPaSy2IaDA7A1xOt8BPT/FF1t0dWKehRd7ThmmJ+7HapEFSHxt4s5JxP0g9iflPo8SORnQ+MlTw7vWiGToolkfYeTcWusu23o5+ne9O0AV49EHsk+Fe8G1pVWWLDPY5BpdyN4Uv5jtE8uYxvucGxSTOOOcTmD+bdjPXzZlG6rXWiYQseu7TzSf1vHbZzHXfOfgvuPLeMxiWjflRbPhMCY8/i6Iwzm2Xs0j/yamn53NI/FMaT4Wf8sLdkcLx7EGN6jLJE3y2fuBRx5mH0fsav8cgrZZRIZId0cjwOxHt7JWN0H57hez833tnr8nlHdj4GJdTwOj33gbVtQcAh2WAuT688B+8iTYau3HA/2kln5vpd/KNqLZtsiR8OpcK7rK5ATtIe/zUX7jnKcS3vKviu62v63oqstutrtNMyJ/S+qh+lc6pU5aTcviE164nd3Op94n0iXSpNftGbAnnnLtsi2C8ZpnzzRU+niE1lT2JTMrPZjEg1EdF5bjUOVAXe9KByCkXGWTD4xXbooy6DhrBu25hTMYfFFvNDM2QcpPrTt4OYchceCh4vEGHWv5ENujljLGTu/7nrcUuhuLn9//+ZUes09eN085JCZMGDW3nKS09ZliW+20peQC8OxOdzg3HtM2ZxMyuZI6yGQlgOtNZ88wb1vfTPWTiM89sFgLoOUc8Y+8+cE5RUUFGCScns2w7mzxHBtyRkWDdrhIMXuQ2i7mXHMNX/H9vb7uLvrp6KrTaPoau8ID1hXu9+hCmugD+XAAOj2xg+EthUKSgDLhf9uvfbvNEJFUNsiHigmD/IuTMxhbPh47MlTVD2h0V3e0lIzVS7CEAjCopOUAhaePt5sRL0gOp/DgSDdsuJ6OLd1CkM7EUWJc3Xk6J34phJucxzR5Bgng9vW1M3+LkLVBKfeLE96SWzMCbOEIqiEOz/HipgUk2Lweu3/jvtUS5e/U4ZKmNJvO0COi6Bd4r6PSJBk6OjdFPKYRWIWj3Zupj4Wv8eLiO62FDgTYoVhVfk5qDXQynsGzpdhFzwgaC9YDFxR6sqx08V1C7bzXQl+drtG9fPf+Pl0I+5UkZN9Ll6cgfroQ+PGC5hyujRj4XfvfDgjsYYOePZ9hlxvpIs6AKpFaLCuxdEEw8UC1bOn7k8Wd6PwamVkFAsr12gN/PQXjifSYgH14Qfmm66DfvfO09uO0S5kiKaJZA0ZXuo947Es1sqBwCfaom1nPdinpQgNkNmsEQA8fgyqzXaA29aEhgBMvOj7HP7rwULKfw815JdALvyDUuFeqotChLjv+X7xHLqrfUpBwZGQCwf0UBDsoTmUs+K1N6vHknJ79N0o+9qDt517CC2JuoZ6/Mg8M8C3K693OnfeLsMuAaFO69jhkYuutuhq7XPR1U7EYbraPQ9VANbau+2I58EEsYPaTjI3UQWjkQMmthifeAIpB89uJ1/SsnZYrjnhS+Qn0/XWuTJeIseDaoSkPO0c0ndISA5fms9vm3WfeB+f1Lr6kr8wiqUvnDiJ3JtW2QdWmS+V+DnoMI62ZTg8B037IBCM5ik36wq4LfuR+o+5Fwb5Z6fklLrFC8PEBTXIYs82lP0PUd/9cisoOBIITH58UucvvWOGF94aDbpe9VGUGBxfNHgqXlfXJq4rYJRaKo6L2/PvqgIlBN47966ZE0KGoJhZSjlhtvJo0L9EZPqkL4uETMY5eYoZWK097VXtY4Lbsbgr7TnLryl5zMXz58LBVnbDsWB+Tm82su+mQsinJDeF8p38qap8fzO7jWTgxXTXSPXBOdAlMXWcHNSmc+wD7gGm1FGMb04obSfJtOeEWEl1X+guKJgbdz32t/Hybe9jmSfHz1LK6aCYmWTGFL3ut1gJukMeh9CSqleK7xHM/iGldyLsTvsdj61sSKa5UXS1RVdbdLXTMQOPUNuTFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEz3VGHAxwsigJU7qaNOewtIpcQJFcBvrr2X0XLhT4LazrtpKQUsBCk3t8EpqbNAil2g4lPD3MmSdHOULkaxyT0J2uNTV6XgjjATIRH8QW50eslxCpdwwikt9VnkLD4zLlHC5c3lk3hEHEhbnnYGtAIB/eKUPWh3HqnvGH25dujzDtw8Q6LyEG5u/vvxT46CMUtUiR0tQLhtxV9xf49AWvOp3crsS46cTSY0KqesCMm9u5OO0TozrgoKZka8ZgVuxv2jDGPSdsAXL80rItBHz51rLVXKhQKjVps1lY1XBK/XUYiFA/meXA+ryoUHQkXQL544nsNXj6DtO80+BAszaNMYLxsyaw1rWXc+iLxzBFWVcdsGTFvY/iACLRbeWqjrPA8fk122IfEdaw1erX27ClklZc2dyo+19vRtC/80SrscgzvU8Vx58iFr9y7yi8l4JF1k2SpJkG2tGQw/BqG8tRpiDxY7NnTnwvSNytWnxqF0yPARcYiHU0JaTk6lIQh9AQQdLrM4I2vcgzFJthQ8NjFWk7L/WLvfWZuN7Evv5SVHBQUYn09zeT2cG7ZGYIj1TplnRUae7H/mtjuMPxGFIXq6A/M7JbpQpmUtaN9Wh4zO8KhgjmRtCv6J085bNlB0tUVXa/MvutqJmElXu0P4r0iZ2nVpl7JF7WMzNw306zeOkOqTj/07ZjfQSCng6tK5DvFq7SYxM49s6qPODhpADAalQpcoq0yO3b4UhbHpbE5EQEWeHhGLkKVQL8vdtrCOTtJ4IA8exvMn8gqwuI5RMd5ZaZgocJ0PXrOfrJKMnOIk43Yau+ElYd3Dxgb3NqUOT1xIZw8vMXGS7pOznBOqGrj8eUg3xP+fvXeJmW3J0oO+FXtn5p//4zzvqXvr3luPruqu7mpjtw3dBvnRwgbbSBZgEDCACUjMgAmIAROmnoAQDJAZICQkZHmAbGEJWzJ0u2W727ba+FXVVdVVfftW3Xvqnvfrf+Rr71gMInbEisi9d+7M3Jl//ufEJ53zZ+aOHe8VjxVrfaHlr57zf6kPr0w9+LM63TrZjOLaFq2uzREOSVH0tuJdoCfZBKzDuqm6qFLhnQaPnprfiaBGR2aRC4AzBeR2zF5oYDh09F9RQtuLllJ+PhwOoMZHJuZBBv7ql83hATN4ob0ruWbxWRu6L4ZdcMHPm1rb+5Rw2H1kzTlB0ihxWQKlUKAOh37Oqw6bYDeI69xbsUoZW5bQk0n9nNB1nC9Ls5kCtrhTo4c+eJPQWaFdUy91tAHQzfUnNzuSAsnN5X7tRlWbKwIglCpZtG6oZLP0hyoHLZtd4epJCaqoPSmUatcgHfcIEg1rvKVDUrHXMWPsW36PQawoCPZIMiB5hc069b5rxAqV2nWs++/tkMeEm4d3ZT2/tdK9g6K/kucGWScxr0vKKxI0TNzlHgoXp79TjQQtrFnX1Si+99nGaxiD8mTaPG+um/e+jA+a0o0PFGS77hxJV+vyk3S1SVfbCf3pahP9V0JCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQgdsdlG9RXD5TXWqIy3osgwYDOzv7r/q5cDKiirXIWfV2sNpubBgcrGRoD9YZfFZnXDKuNwjYZEQn0oHbl8NJ+rr5H9dxGk05E9aDtel1X5heYdTzhX5X4q/qT1WpdXqzu/+W40++9w66MOCoamvyv4ug0fvLX3eBBuVQ7o17gBvu2XVoSLV+0pQPIZV1iZHGeZ3Rs46ZXCSObd9pRnk6LW81RFVcfQKPw+HMVfebWLu0DXzCANYlODKQ05S7l0n/c46WDOPzNpba9VZr7l1Enx75TnYudQzMFuA1p17a4PVtUn3udB5qCSqRIFovupD5uJxoCnuJmtIqnlWn5B/z66ZPC2EkNNSv13tLMqy8wvL5T7I/eb+29waWOxhSO6liOD75L4sYd9CHFJ/77oHSkjYF1b1v3exf+6izJEHqkmmZq1MCC8aj3U8MmC0TuAN14P18W+IVk+elvjr5tf43S7emX233SpdIvaw9liVdtLVJl1tl3Rro0i6WgCd+sRmhyrSxajqqJVyZzAAjkbmsyKoe3f8e/OFe48XC/DVxHzJMpDKbHRsqAcCxUSTS3RrJv1HLShXMgUoQYGAhg2kFEBm8HzekEy80d3A3V4ObkDUr5oanoCsofmWGl7WRTSIyHasOrxzN11RL4Dnj4d1DRQueTybi7BRXHV8k3X5lZB8oDF0kyKgZiC9blDPDmKsEVAbyGpoKi6zo3fZGOTbm4jCO1rK0g/EbuNfpS3jkM96ULRmme+DWhv3z4SEQ4QYz2g4BCzF1/QbI3z+H79nFpUauPOPh1ATIyMnn7zG+PMLH4eda8G8fEfCtihLAHaMGOb+XheloBYlWFmF7Lzw80o1lxGBtUb55Km/Y2VflDvXCJ5MvfJzMACNRv5hRakEgLIMXLXX7VPgowc2TAF89/fMX2Cz9UQ8tuv1x3mezcwdPS7DBzBvXhcCnmf3Xw069m2iRlmlLAuVKkIJz4LKIFg/MeC45IAgbhrkza7yoj+WFxfrUdDdRMh9AICwHfselxriNrvj9aMrxTpmMHC85sTcHJvkHQc2G0tuHN6SceqdaKuEdwbxnPe20xKug1zsA/Jc7F/DOTpYD0jqrnhNLetZ6ms0h2u6Xa7F4z1/H3t7SV9+NI50ZkJXJ9e+hai/TSH1TlLPFJeR2uZ8aUxRv1Yzxmk9y0XS1Ybhgu9JV1uFS7raBmygq93cU0UI51I+qhN2GC622tOp+Cuzt9wNTg/Re+UG/HPoP/5NsJSnNd/rMSPmb8P4GASN3xF5YvmsS5k6hqvllZbt2MWipmuedokD6HNbg5bbw3EvYkVbmQDxwx7yRGL8SUg4bHj+ZPFZEXiozN8S4IwcT6wNGkfiRafNEnrLcS+WK2n1JI5FBdgv7OIF3qGiqyV5U7hoXVQ7P0fjI1cH0kThHSxuk9KSlzaLoT7nuXi9t6nF/bbYZ7ptXiN1aJrbaqy8Gtdt8TMhc2S/t60R69ZktevqINs3QC53gbp66bou63FNuwnkfqGxL0mZfVfauGv7rZonY/RZf2/D2j/h3ca68uMetc9f7yqoZr5mWq9u6+JrrOu+26DNc2Qd/cxaSYo+6Mq7uS5tVVq1+sKuc0UXfemu5CLpantF0tUmXW0btqL/Cgczr1xZEoBA8FoqqEslVyD339poE4ZW18htG3dboSLUHBR23MhvBV4aWFtD1ygRGutyzTrxcdPm1XndQlqXhy37Rm2/3cMEFB+gXNuCuWYsSkg4SDTMm8vh5D/fp+vn1w59fhu54HiMEfFFz7ga76uf3mF5jA+RK8V448ar38R3F98BbG6uHV3asKGe6uaorpsuIvIyFsdn45AxbUT3kbCMdetuh3XdeY3zzrV3y16lzwOzbdCmiH7n2ivhRqKPfnpT1hO7kMkWg0IW62r3fc3xoXZ+uI6xZYdrj27rmsgoacM8NOpX6vpwkx3UdY7tSVe7HpKuVgbyz9bJyTuqq93CU6XidSdDNVEJ7HwBqlxmVJS4ZpdByjOgosYgMi5kVYOS6JFG8mvSReRitNSD6/NdajBXLoHGQtSdQhdFqAiS7mG9CGnDafF4DGXrgosC+uJSPnWfhv/WEMN/zVDE6J9oTP6nmWNnCeJmX88YDYGP37d1C+DzR8BMuMdVr8X5U+S/svvPPmtwiWL2rmKuHSuBzMJwXEbhRH6aqpoZQb+Qn+M8uYUJH4ZgBm5kMj89LCabysgMoKGtKquECq1up7JfRPHZ95gAYhEnRZ8rmjCX3yqLwhVQoxsFSVPeKxm+BtBoBBoNTTbKEnx51fFF6f6bXOLfGbCl87GyRXkOnIzNZzXC4NHAKOFLxsnnc2RXRkYGzydA1beYwRW1Fnin9D08m0G/tPFnCqosnAzqySxyARdjr6Qsui7kuaFVAsz9IIseKAE6gIvCcRETEejkRMy3Xu7VdA7+5Kc+f1WbEoGGA5d3LsuQvqE18TSW7AVdDzQllmiobFRASP+VZ0BuaZ6UAo7v+SXPdO7n3unM0zOAAzd/mRaXZfMYcV10LIOBGftsHjr3702gCAFNanDPSbx+dl+a42tZ06/dJ9YAF4VvRzJlomDdJbNwAGvfvhHQ8SmEbdfUj+N2EvW1iQz3jUPIQ0JC75DjkvKf+ZqoJuWYfV0yR7Q8R1sszX9LqgJhnR6MYWLcOxhqtQald4MOYa2Y54tgDbW8nLKeF3ZPDkTz5joovX5z+dDBK469vjPST0i9GKidGmkXSLra9ZB0tVH+kq7WPuj0+nqHKrWn5eaiIpeclgOIArS9TDeuMFJe0eGiEmHWtdwJJpwV7zj+OQ45+8RAsqQcWgdtJ1k1zyjLQJZPvy1s9lGGwb9owhXjEkCHDSgRcHpsOjKHG+5Wy0ipuG6zrIoh6o9km4iJhldNok3pCjmV4Sj+XTzjVZNoV/fNPlBroVyX+d3DpUgr3LHj+iFBrxXxujPEOKBUcKhCgr9RWkyQpuB7Z7knMcFK7NKqqC3uTBmOUht+rVwcgotjwv6h2U9ZSjnlIpGCmhr5oYKRXWkMJqZ/qLlXjLLW7u6M2ssse82rOIwoCDSZefm7mopDlcO75JqI/MFEfYD23zYtD/uDLlbWWkcpu1Tx4yMXBWgyt69E7agyr3TmhvsTWqwe3wocshVrl5G+rn2arJ8CYwSxRlYKGB/5uYIJZOdfXZTLZwB1/TfY3B8GSIx7K9dq26e20huIq81g14OJLuvHdfYmXRDvk6SCjsJ1Pct33iYEm/t194qRbGzaPvvcOyQk3DjQsozsa6/TOM7LPHGn6Xsn+aj20fFaIL5vQKwTl+YiOe7teo20Tfw17V3pA7gp76vWtNIwJdAz2c/VV+UNDmrXF13H8JV91h5A1BnLRPrSoO3jDthXOyZdbce8JF1t0tU2pLWhrrbnm20TEhISEhISEhISEhISEhISEhISEhISEhLeTmxI/0W1Hw0YzhVLAyhKcOUmJKlASn8iz7EFXdfDp66Wm23QWlhzaQQmf11OwYhCd6ZNXBmLAno6NV/K0rhzuQNan4fykwzzv23cGfXDols9lSXw/BWcS1khXE3brPCkJYBsHyJrYe3fI/lJHlwGp93ylZoTQHdqKp7LE9goJSA+RQ3jDOgQGtNFtzbeFLTs5sYA+N4tYGRPu6dz0MsL0E7y0UEOulpldJQpZ5Uh+khwGdbSC+6/5XRil+Ho2d7uTumQDhcl9NRaI+h1LG537GGQsB4C19pdt423lCPWboylkqHmABOgSitGgWWysdghELReuKg2QuxK3EYbJeqC5wtzrwNgreuEq/eBwXj0FP5zY8ANrHy6PtMAz+ZmLQSAsjy0BpL5ynN4yysNXXkI1Vny9No/ZVlXxJvGrAY0W6YGYaK1UQUutbDOE8gy0MJT7gUeYbG3QhVXZU3o5uTD8lIBrHXaXHhp9Q25No89OGR6S2nXWMFWa1+JVXnet5yIdVGQ8l682QL3nh1CWJh3tXyPxXLb8i/tTcTvByhnCQl7g5uXIOQU0Z5NPqx59zrRVx6aqHdiusZYfxTUUQPqvBx2iXXYLDrExZJ6qEt9ZxnIUVABGAx8umVp9In2GUmPhqEPR5kCLL0aMwOLnqmJm3QSDWm4NYj0uOi9/yddbZBW0tX6T0lXKzLRn652s0OVaqPR5I7jKr0E5gxHMTSfBxtBqnj8WANWcbCSxiRQrEaP1HKjmvga4mL2g3Hds7a0K1j6gooKhefz5TArwLOZ21gCMK6RVZ0VXpGy+O0Byh8d+3e6jAmLAvj8sSyE70DBwBRnSkzadZ+l62XgTkt+oxPEzbXuYCsnElu3iAZzrlM8iCIGX5RMa42BdBtXZVJmIVC1Y+nv+uAP3wM/uGOCPX4Benm+WRrNiXecrGSb1vwu4+sC+ZqoZwZAStR7dUAS9RGCn/TiyZsG4m6BothIznaK+dzTI63TZw5hE5HgoTLvmq5b7iDoAyzGRM0gOxdRwchmMGJcAiRctinLHM0co3DzVyf6r1olkHftNuNUQxyRApKnMyHDB65EKsvtqIX6UEgyg6/8PUss73mJkxsO/HpiNo/uq1kDXd2lXTgxb2iNvW7abyrijUTgDi/qT2UIaDOb2rIUVF5y/Mky0HxRuxYiIqhqTIg3vYdwp1EbisLeLbUDEIXrx2B9Ir4vKahILHkIFaUWM4drSexZsbUK8RzAHG4WZTn6ntcCmpodU0DKeZO1KGNU3iB/fvPeOld2VfJIShTRf5bobA5Z9hISNkUXyp9ATmFllcTvayrjN0bTfpj6yUJTXYg5v/41+0wYDLauDSTqDlVWjV1tz5vWhX2MX/F4uMHhAeU51J3b3kDzdOwV5JcTf/eENTpz4cYjf5/r+YUzSOOigF70vO5ouCuvtaxd23tTJF2tR9LVJl1t7bv96moT/VdCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkIHbEj/ZSEsESq3N5IucOQvhiQiTxcCoHIHbY27ax5sWq30Aavi2/K0uPNFwVWdZRl85emgzgDUuhhxpqAH9hysbDkPiy8u2rqeZRwUtl1Q79Gz4CI4AssT1K7uej6mML8kf6zJcR+n/z3EwXUWJftAjWwCXQ1zVlTuuiDU9m9r2ycbN6zzyNogcBk+ZPRl4ZPw9oNrxkTNUAsAxIBmsCJoaxRLkK7zupdxjuV4LfPUNe83HTteGzRHWx9vsIYKxsQ91PchtmnLnLCXdDuP5y2WdtvmwXoXhJR7dgbVYhzgPdJi3hBIWSIOHmwUx8o23mf9u2Zfc41309co0XpydXggICDpYUwJ5Cyuy5tctwkJq3Do/TseH2rz21EP0RXBmLp6TGkdP1amhXAeWtcLZdv3Ngm3LgJ9oWhHIqDU3gK+FB69VudotZFmzaTdJLl736iOdbH3NVrS1YrXk6426Wqb8rF9PFscqrD/o0s4F65F4TtZlgHHA/cGHY995c9mxt0JqOEpbuZfq82D+9hAvRC8UvP7Nht1rddwI/MdWn35fSC3rojPX4LPL33+ZHYEB+DsgxMsfvae+fnlFY4/fwyqca2ioxFofGS+lBr68jJQ2IX5WaOeqnfks64sAl37KhFcBcTtIvJOmfJ1wwwWrncHwcjAOuBEBLBHhVC9bIbuf6vQIdySi2DDO3JgZkbgC9nkGkgEdXbqg11dObfTnUNSSHQdaFUW9EfpQpiQsBJaO/fmwUWJ27+3cOI0+dIIbN1ix69fYPTGuKCy5ogXdo2FcAXWoVt15wXygVN+ScRj0yHkvYXy6PqoDQ9h4jxAcAOtQ31g+5eAzC+vKc/9NFzC0dERkeEHr6DFfMNCvrWGfv5CZCmmjRD5W+tOr7cccl0o1z8c09t1WLscJBgoxLooy3wZ43vo5FxBCr78h17GnuCKG5c1Ut7JrtA0v8ZrvHeh/hISeoMUsh3Kzq6NGuUYG68zVcuaQSj6uRQUnW376Czzj0pEFI5Nad3ccYmOjkBDcy8FZZnQYWnw42duHc/zhacQJTL3FVbIlJ8Cs8zRf10biKI7SfbRPklXCyDpapOuth4962q381SpwBCdq6bjyEmn4o7c5J6G7pk4bBAARZ7Lvo6zncjSIYaTNOeW7z9r6Mz2NxJ3U1TxdD4RvO4NguR4bw1m+9J151eiC9fsPrGJWHQcUJb6Z8O7S+1TWZusqqPK6uQ6FBsbtONB9sc+cNOtWm8aGFClkRGGmR+q8Z7lYUncJjF38boLg5vSxpuMsV3f2acnxCGD3H83p18cIPzaV8wPwe/eOtBv0hrmkcozRR62+ISCMNeGXcrmuvFVcXaV6bdM9oP1WZuC4rr7zCGgTk671lmqv4SE7qjTd3QJf0hyJubvpXtT6jwsJEQ5OPre+A6wtIZozFNDWjcOQo/ljMQaPHX9nghg0r5N5D0n6hrXJHGc17WnTrra9ZB0te1Iutol9HOosgLB5X1yQokKw03PGjaXAbYZpHbU0C32UDbZaHKtCbMUYVNdxFRJLXV77YK4Jpry3qR0AHBQG2RzML/mQnJH6DSoNYXpUqc9l+vaBuEN0j2oCaNPvK3lasB1taNLlcT3SuRW5anu+dvabpuU66YsUvvCJvPfTSj7TcijADN32lB0XuOEL5m/h3TovUvZXDe+WImBhnpetbk6lLrtiIDSY78J7zM1kWyH/eHqSMzfdahJbli/SEi4dhzC/LAjuFw26Lti1NEG1b4jqXU22Qe8RVhL2RzN+eFcuGJm7LseD0T/swpJV2uQdLWbIelqezpUody7nNNgAAxEtMLdiheFH+A0w7nvMYOlsfW4AAAgAElEQVQltU9shSfRNhEFdSG/bNgxJQ0QITwlr5DnUMfHNhUG5r4c+v070LfG5vXzCbKfPPE5ev7KuUSV90+hv/7AhLucIvvxU5dnQxth0h0+fIXshXE9o0UR5kO6/TM7qiTWGroohUBH1SQpi5aE3mn0aoRADrxbCr5q4ByM3bKkkEoezejZ0nDXQ1fYCoMc5bc+BjJTzkwT1BNL4fN6soMEwxNzh6Dssk3rTtKblLQt/JCNldtS6TJJaZkCS/lVoYx8F6mlz3RBnnsLAa1DOh4O5YoC18UG2h6tu6edcFjIxXzF7MfVXS9oZF8/GwP3DN1dcZxjetfmSTPG//wh1NT0u+z1xL1HYEcjZDMsPt6sxdhO0cccdZNAFM3r0bNGHGAdBWuNPY6vsWs7ibVQ2/rUgR0NFwM27z4ObyzIAf1eSOvVktbS5uUA2+66IeuFsezBUhfupkP2FxXSLnTrt2tARTSp+5pz4v1HJ0Mh91/TQ4OAckOkU6X1tvSThIRdY4nKiqOPh6lYW0KWGT1MhTz3M3khqLu0DikB28okx86lcbQap6N1R7z3bNoDd90HyPaJqcr6nivaQN4bRZ2eurzQcOj3ZkUBvhT6AEmnCgYWNXM7M6Bj/UdVXuWoxQAY/eM28xcRaHwEEvG7KaoswRV9FrOlJL2eeSTpapOudiskXe1K9OOpopR3G8uUc5WC1q4zMTN4NncVykQgRUvhGk82m561oe5EtGljtfxyGJ7gqYgkMgWMhp6+wS7KGQDfPgU/uGXDZcBnT32fmUz9SfrHd8FfumN+f3UB/OSpT18pp9RV51Ool4LPLyqXV0iLDVRZNlJFSLdVXopTTOgMLA2CNXQVG7VPlXdH8ySet22E6gbzWvc6X869yqjMS6bA7902Exgz1KNzZFdmAtOzAjtZvoj0ay1l4wOWaxjN6tympSukm+SX+lXdIVBdONSHA0BK+YVyWTYelhAJ18/WhSbvuYMJ7MpV+V1RzNv5i9luXOSifJcQ1AF6mAPHI/N5rFAe2TG2KDF4co7sQnDBVjKym5Gjf2zSl7r26euihjgUSoqWjbu/sLMDDqUcdWP9tYxFFK5P5AF8V8g8l4KGQm76AEdRsUTrtQ+LtbdRNptwnfnYV11EfWana1+6LnpW2qA+W8JJ69yld+T4s4cy3hCL5oR3HG3yJxV9deFuyj5FUiFlmd+vDgbhuNekMGzbj9oxh4BAUblsJCV0MPEdYJseRNW1D+D0cdw4HragSxu0tZU1XKHR0OsPc38HCmsd3qk6PvL6LpUBGfu8t7WHXNPZ/T8LxfbGIALZfmHyJAwa5gtnOGN0MNd432rS1SZdbV2eViHpajvratvMzhMSEhISEhISEhISEhISEhISEhISEhISEhIsNvNUid2LtPYX+CwiS9/qhLZySxLUBlyK+PqwNgjyBX/cFZ+irXMKL92YaiLX4wHmXzG0LSg1hp9MQJUblNbenXyYQ79/B5VFe/bqCijNs/Iow+LUnkhiCP64CkcYLAhUJXx+ZV0HI9iTyMqKcvHeGIv3jZsbTRY4+t7U5IOA4v1b4KE5nc6uFs4CmjSDZzMfp1L+dPZoAH06suE06PmFz5Os6DZLhCwLXcekFcjxkXc/vZwAs8pqYNXptD1pHubQ98/cT+rZuW8DYPnEepdoOm0nMpdME4FnM+hL40rGwuVyd1laVf5YHqTwoLu8NLkGlsvUWK2XgNb9XncSvqpcSnn3VoaxRmmyJKosNoDQ0kVanMThmqyK20DUTMkRWGa4/7qjT6utvq3JdhFvT3B2W5Vl/77yyOz5WSdz4LWxbMkmhIE2ru6kNTAvvIV83H8PsD6XsEtLQml1ty09VBAfmi8DB9aT93Xf6QnOmmglBQTEGHtNOMR+LF3su+SvbcyOptRg/iMVrpllhPv0bOgTst/3MS+1zZs3AdfRvzmkKw28rJasDG8SuP88r7Iq31clHeI4mJAQo62funkTQmxWzGWb9vs+5pUKQucRBFFmfnZ0SGXp9V1a16/N22DX7fLuq5Xh4/pToSetoRSC3efOO+YlHEdZN7zTxSO1q46gaS1gy8izObjSBeUZSFlPlUURzF9UFK4NwovqOQw3HPq8KeU9gZiDz1uDK1os7wXi9GdFKfrI9kmtmy+HpKtNutqkq/XYka52e/ovZnBR+gwVpZhHGUv3E4iBZqcLyF4Wwhx+dPklVIPn/MEYr/7EB+bXaYEHnzxBZrn6qNCgaiw9Pcb8j/yM+VJqjH/790FTE252L8fVh6YpqMyRf/AzJnYGzj6bIZubSOizJ6Crqc1CNJEJXu7znz/Dyz/9ZQDA8PEEH/3uC3MpmiJM/vDHKO+fAACOPn2N4x88c+/z3CqdK9dIKzz6g7sovmXiw3SB4d/9XjRgRBvoGESgozGoUnAT+VcyBf7wgeOww0++AGavluNYSsd/17eOMf+VnzVfNWP0t78LurD11LRQ2DM4I1+fb94AT6IyburKuzLhht/j/rMUTgykTYclcXx5/XBCvACXDRv6CCG9Sn17m0msReFZIc8NRysAMEO/FHUuFwdEoNHIP5pM/LPMH8wQMyjL/MC/WPj8Blz4Lchzw2Vq88ATwdOoBNem1o6TvxVx+8R3z2wLyVW6yZhKBGSiXxRbulnvAruSvVXQnhKInr8GnZu+oIoCyvYLAsJFU7li3nQLg0hmD/G+n6BvNeSP/Fy7FI6iA08tF4obLP4lJSBzuIiSh6ldNxa7ls02dFU69638flvAgq6LteirHB6ChC+1xCfGzqVgN1Q2W9+vOaDcpm9lWThvTqciLTnWdZX7eP1zgG2wLcoyopOJQGI9dZMQr0N2OX+/jf0iIWEfcJQzOMx1hVifkVKA2AMGKMM7N1lrZ4DFsWK6K5oMduI42tbFVmdCWQY6OfFRv37j80sNxkZynYzlj0tzahe06QkC/Vmcrj9w0G/eBPEFdODylXIiKJH8XM6SngoAjcd+7b5YBPdXcCO9+AZgBl9NfBap/oDuWuUg6WqTrjbpaldiW11t+6HKdSmb9oVtyhe/G32XIi2/y3AUKzSqkPEE25bPJkVI9E7Ar+4Ubz4P3fPXnMYq1N2hEaTbVVHV+uwwBLMWB6i0quWerLPW6djWdeG2KvE6C5OG32vLKJ+LtOrC+TtpluPbhAOy9o6b+FlP8fWCHvrtqjbYIMJeZan3/G2SB/uXxeftImzYqB0S1hn3W2WzxgKnrfxd4+v4rDnbO5bNHhD0/UPbCB4q3oV6WiWbwaHEmrK5QbqtsrTJWPc2jY8JNwfvwtiRkLAKBzD+xvvVtfavW8xlfaAu70vrOOb68aZbAmvnvbb+1p3/e8a13NOwbyRdbfd3k652JZKudvOxqp+L6gHRqdx//eG6Jt2gU8SWUf6U3JxwMojNJcOAdVkcUHgSbN2cqNTWoM7XGRO7qEmWtyyBwn6X1n7y9DPqAKQYKjNpqay6rNKeai5K0MxYMVDglhjXsXBPLbVxFbTvLFkDdlkcKfJunZA9xL9LgHFNFAOJs0AAgXPlglOhQaWvPz2owtt/VV6kmyzj+mgjFpWrKfZzItvUFvGE0lG2msLFkl4Xbq3SdlGIrgmXJ6Vq2z+01liRnnzO3Ln+KqwaGTdRvh6ywhaAveSOzDDV18K6zzIzX9/0LsrR1o6d21jOw4fdLdZD7WJ0g3danoUL0+Xwm1Tn3mSzw2K9DlWZa6nvDmWjdl3jW5eN0tuMNY0XdpnuSqOOTfJ04PNm0/q+N/S5trpO1BkFHUK+mnDIeUtIeIfgjOPMl4Y1HofhEBlg1Xl9rIM+1hfBXrRlH7vO2LOt4lSG2fBgpb6eTTxSf9ZY9cyBjsu9s48xuG79SHT9+7Kkq0262qSrbcaWutqeDlVkwiT6MKHqtOZ7xNN2aItL0UloODSugxUEbQ0NBs7VcZSNcfaZaQQ9AB7+l9+AHppwd/9ZjuOfmnDqzQTj7zwyD5iBiytHiTQfl5h+yTzKLxmjVzByVWqoH/wYdG7580qNoK4lrQ4X7tGtBxc4/QMmLToroMYjYGEE4eS3ft8vEEoNvainB+CFd3elz59h+Oilz7t4VqN9qo0Pd06BW2fm86IALo3LFykCNKNazqjjExDZgW44gL5r6Zsywutvn6Acmfo8+YefY/z9pwCA+S3g0R8DoABaAB//JmNYeZE+uA+8d898nkyBT35Sn79dYrbA4B9+33+fF81he0GTXEVt1UX8mIFS5DeWYWk9KqmsqudVHMFv0QRYNw4wd8xgC5gB694JImT37vr8TmfeRVprTycSH6wo5d2HSQOFj3slFVMdBgPg2IwrVJQh/Ve5Qb9g3p5WKG4T5wYcWyvAN4l8hwh0NPJ1OxN1m2WgW2duvOeXr0R+xSQapLtf7ONeo5UQbciA6ScVpPtu1+7Wh/zsC0Sggec+5qLwC6qWchCRc9MljrrPJmuLLANGZvKmsgTPRL/YZIHXh2x2TacFNBjU161SoKMjH83V1eGtyQ6Bfkfeq8UcuO+/vRAbP8FLzotFN1kg6vcOlCwDjixXdFGG9F8b9ZEOBhT7QJb7ObAsfVmUCvYfBymb+6QzTEhIOExsSxW5SxAFa2mqfgPMvq+6R6Ju/1pB7AkZ8HvAviBps9rmSklBK97hsgS/EhQ1S+83KJxbIffsDbReBENZXfuOn//NtlHslbsafLWtGXSbFbyom8tL/zmiBtseLfvXgEorN2sowOyBp9NrnMuTrhZIuloboDa+pKvdTle72aHKitPpVquyXVr9betWTeTzbicFqgYUOfEpBbITHEFBFeZkkTOguD2AHgNgQI/EoKsZNC/swRyHl4IpBtvxjJV5t7KcwLwALZobto62RmUaamgFcKABRSBlwtGkMJcfu7qJB9nlOqRSe0XCpoOrUkBuC6m1qUPAXAgEX15S5OoWeWa4/YjACtAnQ+gjy7E5kIM+UI4AZGYuYFkEpUBDs6jioug+ofcIAvyFToc2Oa0L5rCPyIOTtrLVuWBu65Wywq2zskyRMkxKGXlRUV9vtGCpl4mNQfA8sXRAGxDZBuuM32K89OWK+ocdR5dp5rB5279tiCyybgJtVK+wc+/anl8915OL7zq8E3ZhjW/jrS2X3ZgcAvXdEg5tI/eujVNyHtikj0grtj7qjKRsbh/dwSCQTYRGC7LeD00eEhISEiqsGp/2vZ6K0pM6qVo6qDYjpD2Mu8E6tmXerNWtrTJa6DoPb6i3o5a2r+av6jCrt3Vmx31qdf8NgPp73eQ6RcbdFWuscZbo2fYxnyddbdLVroukqzVfNqy/DjdQJyQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJHTzVGk6sWk4yXQne/IkC4gO2rqeggoXtbZ81dEK1aWT58YlDAAPMsy/dt9RiKjSv6bOJ8ievAED4GGGqz/0Adie3o1fFsin1m30aIhspsEA1FTjS3/1mXF1BDD76B5e/IFjAMDox4x7/3xuskwEfHAfyKx71O9NMPziU5NuAQzeWJcvDajZCvcjx0eXuczTd3Pg/7BN+4rBk7lnFTgeu5Ncns/BkykaUVUdx7+1tZ19pgh097Z3I7ycQF8a91oqtaGRAExdLOYgUmAAr3/pGJOvnAAAhueEOz9SJn0FoGRQ4eumwuDpDF/6y586y/fXf+x98MDk4/RHU5x8+lMTsNg17VYN6vgMV4XrhJq+3heCU/Eajw7n1UFgbjkVbyuTe9Y8ttDRkbAe8FYmrDWwWDhrFRqPvWXKYuFoKYjInNoTwGDw+bmPfjBwVD9YLABJJyLKy/M5dEXLxezcQFeWr6nYszm0PrevH4inCgPeXbm5HWl85MfOsgzHjiZrqbIEn59XIxPoeIyq7/Js5unZbgpV1Y7ADF9/RKDcjN/GQsSaxMBacBwC7UrTWMbuPwNpNbTUP/xYwkUhjLQJsOVnrRvLy2XpLX966D5cLKCvbH6uQza7zhU179Bw6OoMZdmN0k5r8Gzm670aDwHjUn4d86XLwGGOB0TU7MV007wJ6jw1ayBlE0I20UanUQoO6BXxdwHPF9D60kZ1IPNmV+S52we5tcsqxLIpKGwOZg44VNwkGUxIuOlYxVLgsMM9awyZn2j+Yhkm4MzfQZ7q6oUIAb2S1n6cPxoZKlybH2klT2Le40Vh5oGmNKTyRrfs7TqhqX0pfJZloeeGZYoAw+6bhU4uWEOJz7oMfw90UFEeAqaL5v2I9w5o0SXKfJAwka9LV0behU7MrsdFS/p0+qZpTrrapKsNfku62s7oSVfb30X1LkGE7SjdskRmeNWewBWq3s3JKFQb3mmh8KEsgxoZbmY9ylF87T3j6sQMNWeoqgM8fA767CkIgFYDTL96B3yUA8wY0ATZa9vouYJaaNvhNG595zVoUYIBPPr3znDxFdNR9SXAi9JkWSngzhlgXZ3Gnz3C+LngxOyKSqkMWDojKxSfKdBru4mblUZBUo1bZ2fOxUozm7sl6kDeNZDBQljJPasmTP+OaBClQGenoCwzLnRPngOXVzbb4URCmt3gcfXRGV7/iuHmO/68xO3fW5i5h4xwUs36IH+zwJ2/Zzj79IDw2X/9BzH/wHAsDp7/BCf/6GVUtmtUfmzjaloXz07KES00SdA3BTRFesP1QMtLknJkNPLpStfdxcIP9DDKQEfrpaM86dK1N89EX7+VQ1WKCrGotTH6fCwK8CLK7zb9pyjMXSzA9W/+Oy3qhJwOBmaiB6Bn8+VDlbo+qXUQTt2/5w4MdFfl7zsBMZZGlGkk6VgPRpnWMC9DL80JjRQ28jdZrsEgWOA3ljl+j9QaG4AalBpcHnB/bFOC57lb1/Bi0U2umINxVI1OXL1rzX7T/o7DrP+rtRAczWEM3ng+3AE60SvQ6jkgljF5QAA0KxU6K9o6oiwPaOxbDySUAyiKbnLFHB6+HB/7eo/bJCEhIeHasMY4fx17777u0dg27zV0Rcwc3Jko91jMbHQj5ktwVwQXZUu5KNqL7aq+Odz3kVfMc6ndAYnRG4i8EkVrKJNfs38vg5/94dOK9USXdb9U5q+kUxJa6tY276AbYA6VxNU+xekwd6nLaUHS1SZdrS1j0tXWYENdbaL/SkhISEhISEhISEhISEhISEhISEhISEhI6IB2T5VNT4gEPZBzAewYHxOBbx879y11NQdN1rQeJTKuiIA5If26Ak7sqdP5AHipbDCF/GIOrlzKJgugMMdrGiXKj89MnvIM+fNL5wJWZoTZbXu6OCaUd81pHs018u8RUJgTydHTGYpPLgAAo0dTOG9JMHA5AWa2XIui1kmLgaDOKM899QIY0LZuCZh9fQw9MvlT2RFUZk44acLIHynj5kpkqBxsnHqQQd81J43QDDWZg6oDzdKHw3AAPhq6cGRdw2LoUQ59a2yrnUDzOaoj6sDKMM+A8dA8YwZKds+HX0ww/oGp28EbhcXpAFXF5c8uwcS+rWx76JHC7P2hoeVQwPCLK2Tnxqojf3lAlsfX7pmw+auuL0gX0Tb6j64YDPwF57oMrHZQFI5qhctSjCsMDCo5oCBcIPuKQLaPELOx3q7iKLyXxLLlaHSqH2Pddsyy0D0zttbfF5po3DqCywK6GrPKYonaqXacl3QxgGmrqs/oZG3rwOzqhYDAe4r7srRbF9JNv66/dHE1l/O//D2mABDzw2a0QRtaeylVX8Z9j9VtstnFCq8sndcJa93cBjLueJ1Uak8HcF197kBRJ4NLl67us8tsKpsx6mQTCMd2uXYT49TOZeTQZHPDdFlrb6m6SjYlmubXJJsJCQmHhK4WxduO3U1j8ar5sA/0GGe15yUisKB2RJb5cV96bhCZtZmk266rgzivrVmmUCfQxROkZl1azUsUrA10875F0mtXcdbpF9ryLqnGdENd1JWnydu7IxVqb+hbB5B0tSZPSVebdLV9YAuZ7In+KxiZ/UddAkUUzg3O8mfhlpcpLH7pZ8BnpsHzHzxE/qMv1suOUlC3zuxnAP/FEPi2dSn7fwn4332uxz987rP78pWjCJp8+z28+ne/baK4WuDBX/4dx5n38t/4JqbfvGOKcX8B/gXTcdVFifE/UI5L7t7feYa7v/HElpfhuBqZgU8f+joghIM66gd4Oj0BVeVaLKCfmrxzTnj8H30Js68cAQBGnw0w+tw0bf5yivu//8TcLQFAn587HtHyqw9QfusjE/eswOCHj90z/fK1U9Lou2fgn/vYpDtbIPvHv+vikyjfv4Xpr3zDxrfA8d/6bj3P4NkJ8E0bX1GCf+cTYGHC3fmbX+DO37RF/Og23vzZb5lus9C489e+A3Vu2kcNh+bODQCzrx7j4X/yNaNEX2h8/D98B8PH9YPJu4dIkSnRddxgdvGo4yPP8zibNbskdsoaQd27A6poay4uoV++do/1lWhD7TlZaTSCunXL/a5fvXZyos5O7SRg3EchKL4wmToFEV9dga+uWsrb38JKjcduUuFFAZb3iDRSgcSutE0bhShcE9+8UuHhRhs9kOT7lTy+l1dg6xaKLHPtBgA8mdTnL8ugbt92X/XLl4m6pA5aA3YRwrpsbsc91h0Nh36DVxQBVVRj/iy1gUNEHVQ9I6WCcEH/6Ur108TNu8aCSI0Fb21EK9hc1x1lrms4UuFmsuhw50IEns08vaFS4R0MCzHGyI2uUlAnx/7R+UVS2NaAtY42UqJde7w3ZB2QkCWUZUeqtpb+KA4wKJoreCLm4bLc2xi0mWz2jLbxrCsknzoRkEkjgwZZV8qtb4GW+TUhISHhurDW+Ljl+CUP2QFPCU1k1jvVs7b5UO5t2qid2sJ1jaMJREZZCXOoQsf+TlBzN55dC1bls/HzbO7WG1y2zffc8DlCcDChsZrnKU6GnQIYALgoPA1Rm8Gl7DNaGwO96tHJiY9vPg+NLAXUyYlfG0wmIbV33D7+QfeybbCX6B61MKzY+5yedLVA0tUmXe3usN6hSpvFZMMgwcxuoF0Zn7Q2d5/XymEUnT2JVwAyH19dfqr7IoInlQCROYV3J4NLeYX/Z9N18cVjs+MsXJn52gFXcnu7vAPmBNee4rLCUv3V8uohCkdkk2054W9tDxJ1Rt3KGLUFBQXjcBBj8ZxFOxJM2ZWJjziKp4ul73Vjl3kUcbv+s85k7s9Uwjhk3G19puUZgUR8y/3Bv18vC1zTIWP5DsJtwtHYdQHUaEUV5alrG8TxrbK+6VAuNw6sDthrfI3hrm1xedhonTfb0HN91s03Xd+ra+9a2dwmr9vKpsyTmI/Wls1tw2HNuuhgWbe1bCYcLog2ls1Va0v5/br7xY2UzQ5IspmQkPC2YF/j1NL+tW5vK3/fZs+xKo4mL88ucSOcb+v2hyT2rLuq243XEJslVv95KVj3uRHYU97XQVy2prLsUl6SrjbpapOudjdYkcf1DlW6uBuuk4HqBJ7IWXJDKXt6XVHE8FJ4946ScdNSIzNgOsucgZl5SEVDVqvTSSGATFUEvhwuRUeTAaA6TC/Jvmfj0QyWt/WsqzCpGciYxGelTLyKQKUpGwAoMFRmMqUyBudk80jAPBoAnLuf+VwJ81JOZTiXBQrDkQjLAHIFLiuLBAbJdLWVptiaIZ54XSNGUORcAUEEmmt3+rlUz9e1Ke0iH12fXyeifthZKd8GK2/ucnnzY+d6CAbppag5eBRftrX2wcq2bcPcUGdrTiB9LM66hu0rnK1rbgp7yP3+miE3jp17Ss/1udFmrkX2nWzKzXFfed4wnipPa73dtxyhpa63LNeqOHptg3cAjWPZXjPRNKeswHXJ5oY4eNncFB3jSwcqCQkJh459jVNt6XRd7/QyP3RNqyU+tntgaoiP5X64SxrrtkGga1nv1dp0Vx2GSP1dl3ZktJapa1qdft80XNN7XfQfu0TS1SZdbdLVdkePutqe6L+aEhFHgm3vnBxBf/vrrnMPfudzx2FHdS5JFotf+gbY8sJlnz1H/uljG7WGfvPG5+K/HwBH1lXwXINf1rslqgf3gSNDaaM/HGP2nvk9OyLQ7VPQyHT+4zcKg4dWOh8B+JHJAwpG+eUPoR+YsqlZAbK8f7icAA8f1ReElB90iBz1AgHgqe94xdkI+LKh0mEwym/cc1E8+Ac5+Lft5z/6BA/+wjMAwOTFCN/nb4JLU7dnv/Z7yF8YCh8111CvLf3AbI7y+SsvOMKNV81KqJfWRWtRgFWGql3V/buuzvKzEUavTHsxARf/+s+7Vj757hMMHxvOQl6U4O994uMfDoCh5QG8dQqMjatYdnuIwYRNWiWQ3b2L7MjEP/n6bcw+ODHvn0/wlf/xe26AGLy4fm4+Oh5D3TFuh9AlysdP9zhgdFwhyWBNWVMK6nhsAzP0dOonqZbyqJMT58bM0xl4Ol0OxAz9/IU43dZopa+qwmWZo8shd9JuJ/2iBJG9W2BRgCzVFjOD8twvxOQCQOvt7/cgCt3gBXjm+yONx4aiDADKEuWrapxi6+q87mJwjT4lJ0XJ41tEq5dGOqMoP03u3YOBoV6z4fSrV/5Zov7qBtmsS4uXLceRgN6N0dSHWFLEdU4zMAOCX8XCLL51tTgvEQ5A0hKmZVFL9TK2KfRk4hfhoxHI0gpSWUJXVHeWE9fnSdRZa7V0rbNQlqiaCwFDY7ENJRezHVdtXiRnNyzllwybsARSgp6NOaSkUBHVhN5PHfJiIebNrhtAeJEjCkQT4gCFtT6IcbpVNi9Ev91lXuN5Lst9vZdNu/6VkQZ/HOQagjmkXUuymZCQcGhg3nD8jfeoXQ8NxBpRPgqoaduU7WIsJ4ruCI0VmE17sS0pUsvS74eJQCNBs8sagM3TYoHyxQuRDe+d2hnRnCLnMnU89jSf02lIhy3X2Vnm9VMx/aesi67doCiiPU1EA1xBN7dBMP8vKWbFWno0CihEG+m2pdK/t6lWGH4ezPyddLUAkq426Wod+tbV9hkYHH8AACAASURBVHSo0gC5gWuDUqZxFAFagyZz0FWNEjYCHw/Bp1ZIRnloYSd45PhxCVJ2w1i2cD1mmZngAGCYgzNzIso5gEyBMjO8UAlk1Ry+IGBqy6fZKCtz2NNXBcpsWqsUVJE7Xa0LZKbAA6uoJoBHyinZ8kvtTn+PUODkztSWl1DeHplTSG1PQqskNYO0qJeyqFUKEDOorMKxyWqV30Hu6oyyHKowdaYVoM+OwJlVAg5zr2hdLMBTUR+nx+7iNgxyoIovz0Eaph9pgPIMZHXBPB5An5kBgiZzDJ5MTPmrxdC6Coe+oZSpGyJwESr+94IVMicXZ60WH3ZR5vqjblGmS2TKtTerlryssSCv8iz/+vVm3aLIXKpFou7dZ1n+urpaW2HVsuCVcZDp11U2/ZiF6txqc7SNK9XzyjLKjjOVtdTalhkivtg6h4icPPMeOfjXxr5lch1EfbR3t9jgAKMlD9vE37q5df+F+YktvVb16U3yFeQjPMBxYxYi2QzmFJn3jnXUUTar3zei04jGdDc+RvE42azjvb7uefNA0Uab2TsNRdc22LCNavtWPN5wi2z2jbZ5s042mVvbo3c0yuaGE7aLL3qXIkq3dL9RQkLC24pt5hX5Spf3G9ajwTwS5KdhvdbXfKM73KsRG3Bkm6nrGtcnSuzR2/bAJOLoax8Sry+quu0653UNp5Rf77aVEbKMLXuizqCbtZZOutqkq0262l50tf2afSYkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJLyl2M5Tpc6aLXhu/5Num7WnxQAr84/gg8Yobg1x/ke/BFbG2vrk5Qz55+YYcnYvx5s/8xEAILtc4Nbfe2RO9ojxlX9ngvHHJq+vv3eEp79l6Hd0rjD98NS5c2XHp86KnJDh1u+bk8ucStz/9yfIyFgNvPzhDJOXuS9PXCbrSUfzBWhauWwtxOE3LZexOpG1XgEmYYVXf+p9FMfm1HCkTzHQ5hyMSkZ+Pncn6vT0JWhh8nf1/1zg8e+Z3+fTEiefPAGzOX3LrgqfdkbQ1aVQmQKYQazBICy+8QD61JwuqnyIvHL5mitklcsvERZ3h9B3zQk0Xc6Q/f4jVy1Hj5XjFVTPLqErGqQ8A71n3eEUYfblU7DlacxoAEWZK//opa0/BvStY/CxqSelM4xemGfqvAitGg/AMoBnc+hXr80X3UJrtXECbfE1yBxvaNmp/Cm7Pfr26VTIMkP5ZQ0weVGALfUWlIK6dWbeKLVxM648R+7cclRUPJkCFeVO5RYtyuBERinwfO5Sp7u3fT5mC/BCuqHystEJEViX4qR/Q4vf0dDXrWZPbbREAyP65nSGsrLMYG08ObBmv60bc6rfpWWHpEyzVkBchQvovlrSle7x8XhfxVelVQXT7Nug737fJw5gnOgEFvcnbJrngObA03CZS+OEbYXwKqKhpyXgsgQkxYLsgzVW7+5+huHIiTAXhbdKCrpvzdpg1dqiCtNUH3lkDSXlosH6iRcL6MtLX4ZYNmVSTQZdscyxCC/zuiSbtixk6smFbGtvpXxG4nBSNkkF5eAmCoRV6b2jWPL2kW3fh2yqSDalt5ajxgj7MA0HXjaLMqK1EOvLVtn08xcvFu3Wn316yknZlGNRC+1fIJtam/fWrm9ZL+6/mmDR2CbHGV0K2Wyb27q1wdLvVRskOUxISEjwMO57G74r51Th0Rt70bcNu25Mbhnbu2AwANn9MIBw7zSdga8MfQ/HtMy6BDet95ogqbLdmrZKa+oofgP6tChPbr5dJ13pBQOE65M6L9m+5jsip8MDorX0kld2SIO89TouQI9l6gNJV5t0tUlXW4u+dbXthypd6GxaUSkKKld3GZ/v4Ax7kY0i06EaUJ4O8Opf/QjIFVAyTv/KQwwfzwAAF79yB69+9X0AwODJBGd//7EVVODDPz/FvV82g/pnf32E59+xCt5Rhvkvvg/OTSfNZoCycw4VjNMfmyksP9O49x9OkR+XYAam//MM5aem4zLBdHJLtaHHmVVaArQooKzrFM+9oFI1GrmNm/aTebXhJQJnhNd/4gHmD4zA3PoRcPoTE0xNS+TnC6Or0Rp4+NxxG179hHH1t6uBscB4/NS7qM08F7dWZMoOAJm8DJmx+Po9lO8bZXU21cCl7WhTgmJtJmhmzG8PUXxwbOr90yvkP37sxwHZeCSUd8MB6P4dEJmBYvYzt8ED0wbD8xL5tOIK1Bi+KhzJgj4d+0G10MgtJyDOy/WEdB+0P4sF+PVidbidIpa5DUBYPlSpU6ZmGejWmetn+slTp4Sl0xOoMytziwLl5Mrli27fAh2bgV6/fA2uXEkVgcZjOLoueQZQloA4sKEH90BKgZnBz144OVhy484yLwfMWOLXXbdqhkO3cNTzBeAOEtx/S+nwbAbMZmunFSbs6bUklhQ1JFyfdekXA11lBHB1tqRciuIh8krigFZoya0+IUCXfhfUeUMcbXVLFPZ9rX1EpDwdXXSXAg2HIHvgqafTcOMlKQHjMUZsYGk0dOHCQwqRt3icWipKwyFiLN/yjcHAy4jY0LUeKi8W/sBhZV9taLcsE9R3Ug7cf/b1SDYhwq2iy6vqQsXjmdyAx5soudao2WAl2VxGg2w2XuS+iWyCQlmSa0GigPIqvnenkls9m4UHZZJOIy5CIJujUDb3RDdFee77/qIA2Pb3toOOxWJZ8dOYQEOfDjbV9fNYFS6gyAvkqmMddWkDmdf4WZLHhISEQ8W1rBvW2M825U8oQjc7mEc4tm9ikDfIQXdv+33VhTcy5KuJ2x8urVW7UIbJPNq/wfpegKfT1rnSrUnKsj29ujUOkTk8ss+4jPeeMnyPfUiky8zAdNo+38q9rctOD/mR+16Z7q7kJelqk64WSVe7EXrW1Sb6r4SEhISEhISEhISEhISEhISEhISEhISEhA5o91TZ+oRohVVBddJXlsDFxBwItlyETQuN4aMrcwLGAOcZyhNzCqnmGsOfGnqA/NXcUpdokAJeTxnluYnz4mroLN54wCjGMJcbAcimDFqwe1besuU/0SigPL1Pob2lvDACBQCUgtZjNncUSFyUoeUBEaimfnmgUN47AkDgnDB4OgNm5pQvf0pQr0w4c8mQPTRVBFQuX4CxmK8uOFMKOBo5167FWWYu4gKg7w+hb1uPgZwwqspBAJ9q6Dv2dPEKqCKgTAFfOgZZy4PFnQzFqYlPjck8d3VRoroHmU9HwNBYPdMgRzaz9E2ZgpqVYFu3VOiAIqYYWz9DBkga/c0X5iQXAKbrW/4zEYq7I3PqCuOGmF2saQkJvP0WhdZymh2vl3xYnUvD1MNCnPArBc4zF4eTg7L071V0VZVlduAWaC9ttf+4iKxlqn6mlLv0ilwUwhpGelPELr6bWilVfyXFjtZgllbpGyC2bFGVdQQFl7lRlgn3bHbjUnxhGmUKzsWZGUCLBXzcpyurFRb0abLOyF+qW2UDTXW7ST1LeqRNLcpuArpYLa8TR0uYJi+NJtf+wDo+elbJJhEZKzTRLwIZ6Zr3wCKlJp+d6oL8H619eeXnVfE0PY9dx+Vn6d2jVEid4MZHCoq1a9lce45axyJIlm/TcfQmoGYMY0ZLH8Fy111ZN2zbMZ5bq9fr5xTW7OeEWo8M+1c39Iu4/6xCX21cpSvHlTa57xqn/CytQmM6TFXzLOr7JOeeDTxYHermwLb4+qjjd2ltmpCQcD049LGlKX/rzHnbIstqfyal3NzNYONJXXkWt61Vm9afdWFFHG6uXccTtVqTbIOAghZmet+F5bmc85VcU3d4r/q7i/7c1n67TmttJF1t0tUmXW0f2O5OlVq0DPwBRAEvJsh/+wfiUX3hB8+m+PAvfdcEUYTpn/w25t84AQAMf/gFPvq1T0zA4QDZVz52islf/+QU04npJLe+/wzvPf8cAFDoIV5960No47GFL/+dBY6eWa67X2S8/HMmH4OsxCs6Qr4wrl+LVxPgiaEpokVh7oKwZVJlIfTCBO2oIsIiA8KVU9TZ4v4xXvz5b5pBq9B48Fe+g+y1TYvFqHB8BP7W191X9dH7QGkTePHS0CABwNEA+mc/BMhw5j3/IyPMb5nOWY6B4sSW8ZnGV34LsFSEKH/5EsUfNM+Kp0dYfHpic5hD/0u/IPKroY+MYN3OMtz6p5YrVGvo129coWf/wodYfMVw8+UPX+H4tz4xz7IMxycjd6+GbPv57Qwvv23c1UgDd340Rza3z794Cjx85uq9ERSPpDasIrz4Cz+H+fumXLd+8yFu/8ZnzfFUyHNHiQNm40J7LegoW1u+grKEfnOxOh9FifLxE/sTQd25AxpYt+OrK5RPn7pnyCwXJpHhsazG5encK5FAwGgkJr1zf6fDaAQ6PfVZ0NpNJCgjmitJvbWKVmcVlAKNRj7Zq0mLgi1SzLSFs2Eoz8LFYbUo1xp85eld6OzULEQAoCjAFd0Z7MFR9TnPvRJpPgc3TUR57hejWnu6JGYz4deN42Tbp8JsJhbyWx6CEJn7eSrqm+n0GuXsutBUfxvUqz3wdIjvyWmg1eH53PWFQHasi72Dnvv2VsqNj7TOJmLVHVHuT8uhRya4lGfz5rDrwlIlVTJCgqcaWkO/eeODjsd+QVqUjrN6KUopm7M5uNhANsuyfkyn6j4qG3Q2b5HHmrlxBdTx2MvmbAbeYKF8o8DiwEN+BiLu8Q0PmEpJ3RXdtdNw/w3P527uMPRxIoqBkIPFIlDou7XLvjcbYszhbekvJYiMjFC1kcyiefPKBVXHY6Cqm2jeDKKUMrdYNK8bau4sc+AWqhYxTgVt3wPkPVgoiu6UaQkJCQmbILibYocUkk17+XWwDoVWYx66hVNnp5GBjYjj/MLlQb96Xa+cXsqfSDvLQgOBpnG+KDbb9zatSYD6No7bRutwz5YP/OOeDXFoOPT74RZDsOUX5Rcl1kkd3n0rkHS1SVeLpKvtGdsdqjQJ4ponsgSEk11buKozavuDm1gAqp6VbDaQynROzQolm86pYx5AgiFBswobin+v/tpjzkqv4+YHaQ3PDGgOx2ryIdsLJ96qOAs1g0o2J51BJcBs4CtrRK7KuxwfV58VmfAZGZ5DAJyxJ9NTUb0oiGf+uTmxJHvyyvaZLaHND8EMUhJMJLwLjEU9AU5J4T4v1Ysooyw/o/b0uBYNiyhWoi7W6LMBp/p1oSm/K/JUp+hcWY7KMrotD7FVJol6qsmfzEebhMTeF/GzMOr9tEdbnlpeMn9r+7ioC3kQU9VfTd3Lug36I1EwhlE8DjTkobatWsvj3+u13mvq4l1Y3u4bfYxh68jmVnDjz+q8+jytMd/KdFrCUZe+SfWyuRyvCLeiqprlgFF/quLf69S+a1vqUZJNgd7roovSRzZ9bbetafvq4CGeNzfL5drYx1whPy/Nm51ls3v/XjmOtoyPO1mvrJH3hISEhF6wK2v/unSA3aXVagC35pqWqHmOEd7Ga+fPfVxzDd8WbpWRhaz3tnpYscdszGvXumgIt+mcF+Rp133rOpF0tUlXm3S1e8F2hyorlBBB0LZ3tkm/cpusiZaDz/6bk1UCFGnXuQK1DUPEzUDBYGU6FZh9MVbqo1eXVx5qMpGzeCRdVyhe/lz9If9Xpst2wOGqgNZli8R9xcu0FfAGCYJqwlzKBC9cmt3gaeLjRoPi4CcSG9sqb5VAsg9j/tkBQVAdtS58mlxhg+9+gF8Xvv/0qDjcJcSiIe6P61mTd5d3M381tdEaSdamwTY7NbIQfN7NQNrLIrZC28FQy/uBfEfvOPGJ26DniWUnh1pi0X6th5aHgh3VQV91S0S1UsbM/S5oOsaxtmx22SBGcVNbOtwimzJqGW7T6mnJ+9K43qqg32QSfIdks20uww7GqW3ii5QuQUws5s29KhB2MJ7vUjbb4lgXNetRbzjhMtJPWhXeJdlMSEi4fuxrDbHLsU0atNWlU82bMhxaDgMa1w1UTTL1aXREr/NpF8PKVWFX6BICWu5105fxx+2zxT50l/vjg0LS1SZdbdLV7gX903+JTheAOepkW6bDjKN//BPA3ttA89JR8/B4hNkHp0BG5jqCEwUemQSLD29h/ss/CwA4vT/Ff/XH/wYGRwUYhF//wa/gp68eAABGP7jCl//JS5fZN/MLc/bJQPkFgc/FxsjOkaaTSFdYUc4sgzrydDk895Qc0194H/Ov3AEAqPMp7v7V76I63cvOJVWCqLTZDPTpF+azIrz+lz9CeWbiP/rOJY4sE9P8FHj0Z3MgJ0AD9/7aJ7jz2LhBTb91H1d/6AMAQP6KQKQA6+m5+PQUc2Xcw46++wp3f+NTk4OjAS5+9WfBgwxgYPw3HiJ7dm6KeKmh38RuqHZDnRO07W36zgnwi98wdZkT3vyhM2jLlze4ZGQzW84vL3DrTxjaKJpp5H/jBeip9XmTlCODAbL799xCpXz6zPMUMof9UYyw2QzQ1iNMdWRhWHx0G7Nf/NC8czXH+O/+0HEWHgTkog8I3Yo1wmcbjTNScJsj0OfnPq2I19zIgX0meB1pMIA6Ni6EyHPwrWPjPs0MTK7c3QU8n0M/fYZaFAV6dUHPc0MpAphJSMhtu6JS5CHLhdWC9vWhFNT4yAXT06l/lmWGhqQmHZ7OPC3ToggohkhQoejZzOejbtKv3hH3QBADTJ4nkyQFm8g7DQegs1MTRjPK6TS4W2IrsOEBJvG9E6I6a6JeOkjEVDK7XOC3tZMwoYmtv9nKASll5LSyfC8Kz9tclu4z+5fN33U4nbuAKORQ3oRKR2XNsnk8dsH0dFYrm/FCnOczwzsMgIvCUx0RbSabQRsosKMLjGSzFHdOZZmj5iNmm4emRf+Gio2OGxUHpULZvEm0RMxh35XTXkD51IPMdpy7yFrIAQCx8v1QKZCQzZgOMxgT5ee+ZRNyHcKbzQ1N92oRGZq9KvaZl00uNShruCNqPg9ls+qD1lKygpaUa5vUC1E4roh8UJaBjsycT8zQl5f9jvVar8crD5gxX9LU9ExJlpCQ8BZjo/0WN3xue6VmvdKnskyO2WXZOH6qY3OPAgBgOHD7Q57NoN+cu7zyZFKfP82CspOb55hqHqkg86N1tzWYvOOPsdnYLnUobXNKoPuLFKYy3U3mO7nWh6XyJG9N7z6XRUgvKvQhwV2kzOCFzNMB6XD2haSrDcuYdLXmvaSr3Qo7uFMlVAQ0g7eaEAkAvZmYzgXYTbud3DIFPcqATBlZyeDdno5y8B1T7Oy2xtfvPsXReAFm4O8P5+CsugyHkf94Ydpea5TncpKNrBUy07upzcqayChjKm8BUXZ9OkL5nrkjggqNweML0KqBTDNwNTXxKUJxrFDcMuUajPxgwRkwe4/MJT8lI3s5weihuSSqvH+GfGrykc0AsrQeTABPcvCF4aNTLzRGDw0HqD4eIp+ymYOYMfzpFMOHV6gHOSFhgndbG2Tg02PzKDMXMumhUZ4Ts2srdbxAfnduqupKg66uQOeVAEYXkI6GJu9a2wm2ZhMfTxTantjCKJO7WG/qowHKe4bbjwdZ/aTUBTu2FN0ZvURXFEV0gCPkRSlhrSlkSZFXVmaZmYSrQxXJ61qy55Dt2/q1xqrULZrj+1rq3q97RnDj1NLlf7Yuli4nFAsbjhfdWgOlUJoJhRVnmbe0lfldgYCKKHBvVUbhVOVH+fEWeeZlrovL7DptVTd+1v0ehXFt1buScPcIXNivU3ajwxQAYKJQZjPTL+K5bOWBUJ/jHkVUNxspQFtkU87XQrHO1Vxfl6ZmP6lE8re9bHK7bArFuhtXDkUOhOL6YPLUGYx4oq+dX/chskIGa8dsq4ghJdaZTTK3U6tfkSd2/60ZBwXjjzxUCeZN2fdZu83yUvtI2gp5SMPsxjeu5HzduomNWaq8xxvFOO+HAIKXzUPJU0JCQsI+IeeANlTrLgAYDPyeNTIc4FLX6sJY6+XDjSZdmMxT03pjRX6D9e1GOrfl9U9zWg36r3XmlZY8uvrM88AQwqFEuK62a/gq3tr9YdteXmKdPf8NQdLVJl2tryebj6SrDbGmjNeMSgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkxduKp0uudA3Vw1mYMJnPKRaMhcGqog/h4gOl9ZU8yGaffP8cxG8t2pY5w+b45vUI2wD/6yw8woAIM4M0/mUB9YX2xLqfg2Wy11bC1bHMhiJx7mb57Ch4bNy+1KIELHx+X3hou/+K1c4HKzmcg6fLZVgeFyTcrwuiHzzE4tqeVBbD45pdMFd0Z4ORzZYz3NJDN/XFd/uwK4+88Mu9MCqDU9vQQGP/gOQZPzClp/qZA8Y33TXEVYfjDp+7UL7uY1VuVR78NXy+QPZlWATC7W3U9xvh7z8D2NDOfMNTCvEuPS2SzqUlrzsCltC50/xnKmcsr31axJax9p7iV4/yX77mjxOFPX2P40LjDDX567sLRLcLozwxAlo9w9usL6GfmWfbyEsPvG1c+mhWt1C2t2Nayoel90/msZUvdsziaBusLedIfxe1flvmoiUdalsbWIpWVwHQq8uAtSUAAP3/l45pMAOuuy5tYksYI3KJr+kxVBK2dV0yttVAQuOGZ1sIKnoO6qGR46X2twUW9nyMXhbeal3QfgJGFVfmJ49Pa0YkBMPRBFWT+gnpn4PxCyNyKtLpYf0laOK2d5RdLV3ylQCfHPtqrK8chCq0dpcuNs7hlPgwL/jxD0AZVnqz1TgWeTHyPbqFKWELndqnGmXZ5c/nbtL1bZJPni3pZYnayuUT/tQvZlOOoGB8bZTOmX4vyvjaIzPqqiqIofPmldSaRoTYik7ikZZLj2Y2TzYAeycwBS56F1bNdQsqfpKoDfP6IwFMvm200JjsFW/MyYPNq0dpfSsmRteyi8HzJsWyWglpFZknICMv4CC1t2oJ4zJa3j8o9QVwB1b5inbSaQAQaDMJ05fgjw40r2ho2FKKSFq6hzhISEhI2w+bW7fXRSa9L99/6aNjz0sDoJIzFu5g3g3UXgRd+XUildhbzPI/odII5IMhAc55idgfWYsvFDe/WJuLeCcZ2WfbYu7IHncTW6/Gmd61Owt2dtijM5dWA0QNW7yzRjEZ9sC5/S3qNqJ7E2qpJt9QJB7juTbpaJF1t0tW2Y82+39+hSjDZdUAf4wsLXsnRAHT3tvn5JMPVl3NwRoBmPPjrL3H0hXF7evNL9/D8T98CAExeDfFr/93HUPNqAr1AhouGLFK4aXKB2Cv1AGAw8ArjD+5Bf3DX/P7yAup3PvP0H7p0CQx//ALDH7+wyRAoFy6LQRb8JMhaB9yRx//skXtn/vMfYP5LX3VluPVDk31oRjb15Rh+cY7R4wtbDNHBGTj9R49c3MXXHmDxh79usnA1w/jXvwsqaly2qnryleN+GT2fgcoJAGB2Z4Dzb56Yss4K3Pm/HkJNFssHAYpAvzlwbng8a7itqSigX78J6RtqUNwd4ul/8DGQK6DQ+Opf/D6OfjKx0fn41D3C6X8+Bo0IXDIW3y+hn5ny5k/OkT+9WHpn/2hIu1p3NdAtkRIuj/IxCdfd+O6VIJAMF1JotMG56mbKuEzbttIvX7lDCzo6Ap0a10qUJfjR053VMeV54LbdeP9GWS65da+NWLkhlWPyECB2SW5KVypTlQJl4n6HYoO7CsoSXE04SoEGuZe56bS+DYrCKGa2RdXPsgzq7MylW7546Q96ZPqZgrpzx9HblPM5UNq2k4cANw2Nh6QtG9O+ZYMM/Z4fb/0BAfIcqpIXraHPL1oi2j4fbq5lRiPf8apDzi5okE1T/nl9Htr62S5kU8gIDcV8OJk0lz8ez7Zw36/u6XBj9us39WOTUqCzU58/ccAkD6JuGkiRpyvQGiw5gPelhI4pCRYLvyHOMqiB72d8ebn7vJjE2sP1YTgijTvEASVL+s/40JAb5k15qCnja1kzds5f3D5Nst5iLLERlAKNj7xsXlyE+xERLphfF6FsNtZZQkJCwirU7TcJ4Tpu07mymm+UckpMQ6FahM8rtCjlG+MmCtdWi0V4h97QU9bwdOpeZ8yb50O9wZhKFFIxrnNIUVfGtrFd0HDXGip2XTNW6datx5vqvUveJaK4eT539aSLFlru+CAuMjyygZr1GjaOg6Lr3BZJV2uQdLWyctwvSVe7HRL9V0JCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQgf056niLLawfLLZ9bR63bQktPbul3mJ7PXUuAcyoEcZijPjbsUEZC+NpUH+Zt5s7aqUsaqvUDRYsilpQReeWDLBURTwEUAfmPwQCMV04NKlNyXUlQ6iqDsV18c59Ng22byAms1EiuLkcF6ALqcuOhZBIFzZ0HD6zgD08cCVXx/l3nWqSzPWWrZ7bwCaMtSFdbWdl6Z/KGUOaHNlTq0BEANUWNdOAhZ3B/5ipIsC2aR05SBLW0Ow4W0eyiOCtpdBlac5Bs/nYEWgkkFFQ2EKoPxCg4bm9BM6AwbejbHRg+BQIOml1pC7XVpiOLddRmAxSorA0gK1qtt91nFEbRTU2TpUYx1dqXuv5z7ikx5HzM15bLLKkjRHXT0IyI+dpMj2i4o7qOF9BlAW4HJFuLcJ+yyjbPuIHqAX1/51Ia0dfU7Mn3XceTeRzT7lqo84pGw2WQXWpamUcMPvOJ7JtleqhcoiQhcZflvQ97q2DVXby7Tl4+vw0COqM3aznzeQzV17vgRp9heVBK9rkS3rsOt4Jt+xlCRe5lre24B+MCEhIWEldjWeBOs2sT6L1z9tXhVd98MV3aT0aBBpraR/vk5ssueX64lVXiqrvEg2ebZJuOAVYQnfuF/0ZaQ4maj/+L7VltZbgKSrRdLVVhEkXW3f6P9OFVupHo27rn6TffUa/PqNTZHw3g/sxoMIL/7tn8f8Q0MrdPydp/jy//JPXRZoEbkBVp/OTkEfGK47FAX0p5/XuirR0RHUe/fMF62hn71w6/Rm4gAAEItJREFU4cojheLUdJLBtwfI/5sTgABmwrPzU5TaPDv9355g/Lde2zjCjsBio/XiX3kfr/6k4cs7+vwSH/6l7wsB8vU++OQx8t9/XF9RcsCJXbgELn71G1h82bjeDa4YR/Z6C1piNYgXM1z7jB89BR4/AwBkBNz+J1UQhfzWbeDI1MX0W/cxf9+0Vf7kDcZ/73ftYKvw8D/7BSzeM7yHD/7Pz3HnNyyn4mAA9d59kaxP98UfP8HzP2p4GUcPr/DVv/h9UGnKTfP6wbf8KePVf3qBimuT3vsA6mtHphyvXoOfPa997/og2iBWdEAFA3Mj2sRRKsw3kVv2fZrLEuXzFz7q27dBZ5a6ZDqFfvnSv9MEIsR3FTSHlcr++vam0Qjq/j3/Q1G49PX5haHZWQEaDoHh0OWnkTaLexjo8zykLpEbjU0gFUGlBpf19CQ0HPrDp4gyTd06AyrX/KvLTtRgNB6DxmMXX/niZZSnGhQFyi8axra3Ck3z5g7BHFAb0NGR72dF0UkOeoEYwygf+D4CBDLMk8kyj3VddIOBcfUGzIJelDHAIcqmRFk2tgHluZdNcbcQAKizU/eML68CV/Qm0PgIdFTJpnHZXlmGsoTuIsM3DfG82TS/AtiprIo2pcHA97M2+sq+QQRXAXkOdXzkn4m1Kk+nQR9sjK6l34boQaElDxdtlL2BuZnyS6YbUR6o0xPXjjyZdmpHGg1BI7MORllCX1x2kk257nprZDMhIeGGYM01bbzPY/aUX0uvU/hR7nkzoeYqS7+GlHMZw4yjMi3xztK6axs6VaDGUGiLeGU5AHSe2NrWp7LeD4FSOeoLLCmN5P41LofYy3IbrbCWa4M4jgM3ot0USVebdLU1z5Kudjtsd6iyS0u9rtZrFYR1AYFBcxMHE8AZgYfeEl01NFCQLpHhiSMCa9Vs2WYtOg1HXEt8GQHH5OknCwVmu5nKolNT5loOR84JPDLl0IMW5jbNoG3ahQDOla+zmQa1XTra1lY1fJsEANVYRPY3RSbqTAEDqwDKKBj39SgDH/lnvq3g2iDOEw/EO7mCmmojqE1lsGXkif9CTKDqMjrV1BGuGdFiLOg/2y4AbXxry3pTvwgsROA5ZOvCrshTJwuSlXy68P2H2cn0WhD9j+UY0ledNaS1F+WIqIulMgK+/qr7euoGywbeUdf221x2vs+62Cf2aQnfmIWqTa8n3eB7JZsWtf1sRXw7L8e+ZTNIuqGMwdjUOTYvz+Ua/fBtksGGOcDVZTy/7rPssk33l6pL2/ytvtbJ5jrR1cwpO8JS2+0Jzelu1o7BO++ibCYkJNwcdPQUrgtfP3a27OcYS/qaxv1w3dy9r3FynfmuS9iu+4WO6e70HpGua6Y2vYZDmtdWIulqk64WSLraPWC7Q5VdLubXfIcBv8lz/7FQcGyQLlEQb1u+pNu/FLAgNNtnbDtvk7u/S9eEY/G+tyzoWJy66Lu9Gl4zxBz9KgO2ZKZjO4b11FJGXv5YlSdYNMn8NnkMdME1bcK3Rd/57Z0WJ4x87VdqLwfbMv5ty3hdfWSf6bamtcGz2vjWLc8Nk81GXKeS9sCRZHPfabVQAL4rkOu4HtY4bytujGzGa4ZDkc1DrrOEhISEfUMc0neeXzZ51mbw1xVtupFO7wnUHRqsefCwcdpLQXY4x6yrO1ylh+lDF/k2z6lJVyt+Trra+kiSrrYP9E//JSE6r8OOrNH4V8fgP2dckc7yKf7s/e8iJw0Nwl/98Tfx8Mq4R9GtM+DnvmZeWhTATx4JVzGfVz1Q4FvWxX6RgYhiFj7z/3QK/eS5+43nc9cJZmfA9H3LEfdUY/zfXphQDNyaX7m+kj8sDLUOAD45QvH1L7l6mt1S7sRt/Ogc4//1hwAANSmwPIoso7g7wvN/82vgjEAauPd//xjDpw30JwLT+8DsA/NZPX+N/P/7wlYMR+6QbZPc6rbnTGH6jfeAoaFnUY9eYPzDhyb4LKIhklG+fx/4tnEV49kC+skrL3zihPLWr73C0W+b72paAnUnn21gNu1rTz+JyNCpwAgvTwTN017dZFvavWsRG6OgULEblKth4GtLZjwGHR+bL4qAQQ5HIFmULn4i8jQ9QDMViFKGZgcAMft7WOrQQPmFLHNxoNTQz60Ms32nmitk3ETh3SsymbI0tGHrgMjJPWDL26FuaZCDKjqfRbF+uutkUbaH1g1pRVYwRPDu7c39JaCIeZsXtOuibuzcFQYDqIpKBmih1evWpkteXhuMiZRlXs6YoS8u6gPGci/zLugVWGugorxaY4FGo5FfqM1mncpCg4GhNALMWmCHsunGL9iFZJ0sWcsg/111k83ZzIwtcXzvIJiFTxSRvwcKABcFoi1NfxjkUG5+iOaejnPFErrIcBuUCujt9OVVfbhYNiXdiTQ009rL1TqyORj4jWzXeVNQjVFRgMsdUqY13TFWpzDr7j5mXpkvPP3JOy6bCQkJ/39757Ybt3GH8W+GXO5KWstS7CR1ijSokTRA0aK5y00fIUCfIg+QN+jDtHe96Qu0dwWKGC2KtEAAJ0aUtjJsV7Gl1Wl3SU4vZsgZzg65XC5XB/v7ATZW5HA4nCP5P80toZjmhGi3f5T/7dkoEHTSOWu0ORn+ve579jrX132XZsKVPLYvR99ytbb1flUsyCHE6s/c1F517fGmQFktZbUulNV2pj+lSodwOUFqtPe15woexFCf6hjg8SDDT9+bYCBz5LnA6I8pRBEuMxlA3L2js5vOrBDIy1tJ44YmtPQ3NEgB2HibZR6qTJElQLqtr4yfK+Rfpibcp0LidvYoskLSZAB1b7fUgKb3Y6hY5zF6doLR18duxSxVZeZDiYuf7UENJJAp7P3pv80XFI81BNId87T5DPJ/J62uWxkBZLsjYJQASiE+mCF+elyfuHjgrRGwbwQOk3Ooy2eO4ANlnxkcphj82//AX7GvujH4R0OIHVMxWQ6IqbUuucpwPWsueM2eHvaFpaL5bnopacovjiG3TJxDIXRbF3U1OQXK+U3YceC+KNbMCdrds+Pk6IWeKvcAaZp/zMt6qO5UmgYESS3aKIqs+6izl0vTtUJKW08LsWV7xjxvWT6/vuvKWbE6qSlXlnWrM9IbQsqK4gxRZOczV5HgCueb2hSwY7Nrf/TGZmvFRMWt2JnDskC/bZEX4njl56iMTenvt9Ezy8ZmpWCL7tbNYzPX/8gibv/eYPsujM14YMemO3e6iszG8jjr2LIxXJtFx7FZ3NcUowzpskrYR5e6dbMJd2xuOk6630dWtLZrTO8qoggh5Jaw8nthx/U1+H173cqBVmu0ujJ7qkb8MvbhPd9WPlKXzjfcK493L9IbCWW1lNV2gbLaVjQEeyOEEEIIIYQQQgghhBBCCCEF/Yf/6qD9ycYRzn65iyIkUDSREEZhJccZ5Fhbw4lJjvjRWbFfTjWPkwHmB1r7OYklHs0+RCRyKCVw5945Hm4dAgDSNMHMpEuGwMefHSESKRSA7x69hckLbVEv0hx4/lJnnufA3h3rsjo5A2Ze6IDAcw+PphAHWu06eD4FoHQyKTB/dw/KuCnFry4gz4yl/OUU4ukPpWJzcBrB7JGE6NVFY/2WFiBOmugiw84/jrSblVKIzmtCKlUyArYfHyM+0c84/L4afkUkibUCns/DVnMmlFOpuJ7XWLnnCtHTl1BmwyOpBLCn3f+wq4CPjCXkQGL73gzpjn62eHYBvDBtkGbAW7vWq+L41Fpx9qyNVFmGvAglkysoJ1TUtVjCLLunp+n1rYSClkMCKBwohZTA0Iaogh8Oq8g/z3WInGAZcxMmxVwz88LRFFFN4hxIndAqd++gnBTOLrQLKGBMCzJrgxBFVW+aNu2QZWXoqYUQX02hO/I8bBjTte3d52iZh0pT66GzaYvbLLMbCCuF0vogkhCjImyU8TCq1Jvnjl8eX/KM121NdpsQogw11URpzR0+afu/Gc+hUEc6bJS1dBeJDRlWCY1lxoudU9z5p2X/dsLMLXiiCccCxnfZd+9bWuOjW58ydbbW2Nxk6C9gcS4q2ke6/SJg3aW8MAr2xEaKeevx6lkYy7TakE46kZ4TixBVnpVl6e1RG1IR+v2i8EQUQCWElr9GOcdFMkDRrmo2WwyZsMbYrNRFnTVr6Fwl3FgPG+B2WTcdr5iNe6r4bV4gpR2bQv/tevBw/SOEvBYowIYhMOtR05pZ0sY6uXmetO+NnoW4b/lcWZdrvl+CN+j4TrkxVvCGvK6yr1u+kLc1UIoIyIpQVltCWS1ltX2x2T1VWjJ7d4hnn3+g/WaUwNY3CeSlcQl6eIbkA93Z5ZMZxn8/AwLfoPPDLZz/dR8AcBoDv3vnR4D5Xvns11/ik/vfAAAO5I/xr68+AgAM7yv85rdPMBzNAQX8/ot9nP5Fx2CT0ynyrw905oMY+MWHNqb1t/8BZm6Hr3xy6/+FwPjbc4hn5vDltBznSgpc/up9qC0trB7+7Tskr8xgOJ4jOrYDY6ttJdb0keh4hrf/8ATlLNiyM+39+TB8QkqI8dgO1JOT2oEqxzt28Zuc6g98nzRD/M8Dm/37D4CfvKf/+DiD+vwcEAoCAnvZBXKl3buS0yPg8USnG28DP3+ofysFfPUY8GP89cU8tbHmbwwNbdrkJtskUynOxRHk3l17fG6FhiJ2BOlpiuxFjVIly2y8f5NHWa5hoseXuWVZt3EM+eDtUqCvvj8EUuMXqlRlv5XKviShMFw+QujrTboFRZO/ELlCr7q8O76oqum0wcUx3EBqusFY8B5V4ZNVookkgdzft6fcMC6+ENfdC2DTwqw3CSkhtpevECLLa/clUUpBuG2S545w3n5kilyVilERmTnBpMuPfqgqVN31QNQIf5tIU0+R5xA5ryy5d68+Q+IoBXW5PJ7twmUdrumMOy85e12IwQBiZzt8jcobBAn8Mg3ihVtqVUtSQmzZsSmyrFxnKnt7ZBnyySSYhcrz6rqZ5TasSTIAhDMWivdRGUHu7tqx+fJV9b1r3bZvCj3lKnpyr5/V/e6CUuF3yWXMZlcne6mroyiCGO+EzzH0JSHktUE5i6X53SbsSqt5UNQrPir5K0A5xn9NSpXKd8oKSoqbwG0qaxd8Y0eX1/zRbxKU1VJWW2ZPWW2QZqVKH3EUV8G1Lq3TSoeusX8EEihXFhjMz13ny1jPodyqCU32YStFv0SLqfxCVc70hihuvoI2v9UrTcvYqMvShe7ltoE5UP7hGyh4Fy5tj9pjr/FLSVmfazyj245uvNqFtlqnfIH8Kv2nYcy1TddWcNHHcwXvt0obrDr/tvEIWVdwszB3BubE4GU9WCeTIM37I3XrwxVvFVTHpnvfVm3ac/zS3sbmdbBuXOnGSxrGZs/3Iu24qnUzNC9zbN4gQmOz7XUcm4SQN4ll8+Oa37I6iyXfkeTGEdzP9BrKceOgrDZQPspqAcpqrxruqUIIIYQQQgghhBBCCCGEENICoaiWJ4QQQgghhBBCCCGEEEIIWQo9VQghhBBCCCGEEEIIIYQQQlpApQohhBBCCCGEEEIIIYQQQkgLqFQhhBBCCCGEEEIIIYQQQghpAZUqhBBCCCGEEEIIIYQQQgghLaBShRBCCCGEEEIIIYQQQgghpAVUqhBCCCGEEEIIIYQQQgghhLTg/3OiaLi49szEAAAAAElFTkSuQmCC\n" + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAABlUAAADFCAYAAADNJnRaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9ebglVXX3/127znjn2wM9D4ARFAwGOqCoAY0Q0WCcUPypqPE1kjgk0TyPxuGVoCYP5s2EmKiPeR1eEzWKMcE4IYoYTZyAjkADNkM33J5v953PVFXr98euqr2rTtW559x77r3ndq/P83Tfc05V7drT2sPae61NzMwQBEEQBEEQBEEQBEEQBEEQBEEQWqJWOgKCIAiCIAiCIAiCIAiCIAiCIAirAVlUEQRBEARBEARBEARBEARBEARBaANZVBEEQRAEQRAEQRAEQRAEQRAEQWgDWVQRBEEQBEEQBEEQBEEQBEEQBEFoA1lUEQRBEARBEARBEARBEARBEARBaANZVBEEQRAEQRAEQRAEQRAEQRAEQWgDWVQRBEFI4XWvex3e+973rnQ0loVTKa3C6udUqq+nUlqF1c+pVF9PpbQKq59Tqb6eSmkVVj+nUn09ldIqrH5Opfp6KqV1KZBFFUEQeoKdO3eiXC5jcHAQIyMjuPjii/Gxj30Mvu/P++ztt9+OrVu3pl77p3/6JwwMDGBgYADlchlKqej7wMBAV+Juv2NgYAB9fX0gIvz85z8HADAz3vnOd2Lt2rVYu3Yt3vnOd4KZM8O79NJL8clPfrLtNC4V9913Hy6++GIAwP/+3/8bN954Y+z6bbfdhrPPPht9fX149rOfjX379i1r/ITlQWTTsBpks16v42Uvexl27twJIsLtt9++rHETlg+RTcNqkM3//u//xmWXXYY1a9Zg/fr1uOqqq3Dw4MFljZ+wPIhsGlaDbN53333YtWsXRkdHMTo6iuc+97m47777ljV+wvIgsmlYDbJpc/3114OI8J3vfGc5oycsEyKbhtUgm48++iiIKJbuD3zgA8sav15BFlUEQegZbrnlFkxPT2Pfvn1417vehRtuuAFveMMbFhXmq171KszMzGBmZgbf+MY3sHnz5uj7zMxMV+Jtv2NmZgZ///d/jzPOOAPnn38+AOATn/gEvvrVr2L37t34n//5H9xyyy34+Mc/3pV3LyU///nPsWvXruhzmB4AOHbsGF7ykpfgAx/4AI4fP45du3bhFa94xUpFVVhiRDZ7i1ayCQDPfOYz8bnPfQ4bN25ciegJy4jIZm/RSjZPnDiB3/u938Ojjz6Kffv2YXBwEK9//etXKqrCEiOy2Vu0ks3Nmzfjy1/+Mo4fP45jx47hhS98Ia6++uqViqqwxIhs9hbzjWkB4KGHHsKXvvQlbNq0abmjJywjIpu9RTuyOTExEaX7fe9733JHsSeQRRVBEHqO4eFhvPCFL8QXv/hFfOYzn8E999yDWq2GP/mTP8H27duxYcMGXHvttahUKpidncUVV1yBAwcORKvkBw4caOs9e/bswaWXXoqRkRGcc845+Pd///fU+6anp/HsZz8bb3vb21ruKgj5zGc+g2uuuQZEFH1/xzvega1bt2LLli14xzvegU9/+tNt50cak5OTeMMb3oBNmzZhy5YteO973wvP8wDogedznvMcrF27FuvWrcOrXvUqTExMRM/eddddOP/88zE4OIhXvOIVqFarqe/42c9+hgsuuCB65qlPfWp07Stf+QrOOeccXHXVVSiVSrjuuuuwe/du3H///YtKl9DbiGzOz0rLZqFQwB/90R/hmc98JhzHWVRahNWDyOb8rLRsXnHFFbjqqqswNDSEvr4+vOUtb8EPf/jDRaVJ6H1ENudnpWVzZGQksu5kZjiOg7179y4qTULvI7I5PystmyFvfvObccMNN6BQKCwqPcLqQGRzfnpFNgVZVBEEoYe58MILsXXrVvzgBz/Au971Ljz44IO4++67sXfvXoyNjeH6669Hf39/066DzZs3zxt2o9HAlVdeicsvvxxHjhzBRz7yEbzqVa/CAw88ELtvfHwcv/mbv4lnPOMZuPHGG6POMYt9+/bhjjvuwDXXXBP9du+99+K8886Lvp933nm49957O8yNOK973euQy+Wwd+9e3HXXXfj2t78dmYkyM/70T/8UBw4cwJ49e/DYY4/huuuuA6BdA73oRS/Ca17zGhw/fhxXXXUVbr755ljYl112GUZGRvDRj34Ub33rWzE0NITDhw9j69atuOKKK1LT1N/fjzPPPHPR6RJWByKb2ay0bAqnNiKb2fSabN5xxx0455xzFpUmYfUgsplNr8jmyMgISqUS3vrWt+Ld7373otIkrB5ENrPpBdn80pe+hGKxiOc///mLSouw+hDZzKYXZBMAduzYga1bt+L1r389jh07tqg0rVpYEAShB9ixYwffeuutTb9fdNFF/MEPfpD7+vp479690e8/+tGPeOfOnczM/L3vfY+3bNky7zvs++644w7esGEDe54XXb/66qv5/e9/PzMzv/a1r+XXv/71fM455/CHP/zhttNx/fXX8yWXXBL7TSnFe/bsib4/+OCDDIB9308N45JLLuFyuczDw8PRv/7+/ijuhw4d4kKhwHNzc9Ez//zP/8yXXnppanj/+q//yk996lOZmfn73/8+b9q0Kfbupz/96fye97wn9swDDzzAF1xwATMzf+hDH2rKg9/93d/ld77znbHfLr74Yv7Upz6VGgdh9SKyaVgNsmmzZcsW/t73vpd5XVjdiGwaVpts7t69m0dHR/mOO+7IvEdYvYhsGlabbM7MzPBHP/pR/trXvpZ5j7B6Edk0rAbZnJqa4ic84Qn8yCOPMHN2+QmrH5FNw2qQzenpaf7pT3/KjUaDDx06xC996Uv58ssvb5U1Jy1iqSIIQk8zNjYG13UxNzeHCy64ACMjIxgZGcHznvc8HD16NPM5+9Cs/fv3N10/cOAAtm3bBqVMM7hjxw6MjY1F3//jP/4DlUoF1157bfTb/v37Wx5u9tnPfhavfe1rm+IyNTUVfZ+amsLAwACICNdee20U1p//+Z9H99x4442YmJiI/n3ta1+Lru3btw+NRgObNm2K8uNNb3oTjhw5AgA4fPgwrr76amzZsgVDQ0N49atfHe0cOHDgALZs2RLbZbFjx47o80033YSRkZFoB8XIyAje97734YMf/CBGRkaidyTTFKZrcHCwKU+EkxORzd6UTUEQ2ext2dy7dy+uuOIK/N3f/R2e9axnNeWHcPIistnbsgloy+trr70W11xzjfSrpxAim70pm9dddx1e85rXYOfOnRklIJzsiGz2pmwODAxg165dyOVy2LBhA2666SZ8+9vfxvT0dFaRnLTIooogCD3LT3/6U4yNjeFFL3oRyuUy7r333qhjmZycjA4XSzPDtA8L2759e9P1zZs347HHHoPv+9Fv+/fvx5YtW6Lvb3zjG/G85z0Pz3/+8zE7OwsA2L59e+bhZj/84Q9x4MABvOxlL4v9fs4552D37t3R9927d0cuPz72sY9FYbXramDbtm0oFos4duxYlB9TU1ORGem73/1uEBF+8YtfYGpqCp/73Oci/5+bNm3C2NhYzB+oPdB4y1vegomJCVxyySX47ne/i3379mHLli2YnJzExMQETjvttNQ0zc7O4qGHHhJXJqcIIpvp9IJsCqc2Ipvp9Ips7tu3D8997nPxvve9D695zWvairtwciCymU6vyKaN7/uYm5uLKdeEkxeRzXR6QTZvu+023Hjjjdi4cSM2btyIxx57DC9/+ctxww03tJUGYXUjsplOL8hmkrAM7Pw8VZBFFUEQeo6pqSl87Wtfw9VXX41Xv/rVOO+88/DGN74Rf/zHfxytjo+NjeFb3/oWAGDDhg0YHx/H5ORk2++46KKL0NfXhw9/+MNoNBq4/fbbccstt+Dqq6+O3XfTTTfhrLPOwpVXXolKpdIyzM985jN46Utf2mStcc011+Cv//qvMTY2hgMHDuCv/uqv8LrXva7tuCbZtGkTLr/8crzjHe/A1NQUfN/HQw89hO9///sA9GFqAwMDGB4extjYGP7yL/8yevbpT386crkcbrzxRjQaDXzlK1/BT37yk6Z33H333TjvvPNw55134vzzz2+6/uIXvxj33HMPbr75ZlSrVVx//fX41V/9VZx99tkLTpfQ+4hstqYXZBMAarVadOhgvV5HtVpt62BFYfUistmaXpDNsbExPOc5z8Fb3vKW2K5H4eRGZLM1vSCbt956K+666y54noepqSm8/e1vx+joKJ70pCctOF1C7yOy2ZpekM3bbrsN99xzD+6++27cfffd2Lx5Mz7+8Y/jzW9+84LTJfQ+Iput6QXZ/PGPf4wHHngAvu9jfHwcb3vb23DppZdieHh4welarciiiiAIPcOVV16JwcFBbNu2DR/60Ifw9re/HZ/61KcAADfccAOe8IQn4GlPexqGhobw3Oc+NzpI7Oyzz8YrX/lKnHHGGRgZGcGBAwfmfVehUMAtt9yCb3zjG1i3bh3+4A/+AJ/97GebFgWICJ/4xCewdetW/M7v/E6kqExSrVbxL//yL03mngDwpje9CVdeeSWe8pSn4Nxzz8ULXvACvOlNb+o0e2J89rOfRb1ex5Of/GSMjo7iZS97GQ4ePAgAeP/7348777wTw8PDeMELXoCXvOQlsXR/5Stfwac//WmsWbMGX/ziF2PXAb1bYe3atejr68Odd96JCy64oOn969evx80334z3vOc9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\n" + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAABlUAAADFCAYAAADNJnRaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9e5RdR3U3+Nt1zn317W61WpIlP2VjXo6+2AEbTHA+m4TwSsDO5Ju1eJkYMCQsyGKFwAQIYZGPIQyPkHw8PhazAsTwLZgkH5MQTIZhgGBj4rwMlh2MscGWJVuypZbU776Pc07t+aPqVO06997u1gOpZeq3llr33lOnnntX7dq19y5iZkZERERERERERERERERERERERERERERERETEqlCnuwIRERERERERERERERERERERERERERERERFnAuKhSkRERERERERERERERERERERERERERERExDoQD1UiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiLWgXioEhERERERERERERERERERERERERERERERsQ7EQ5WIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh1IB6qRERERERERERERERERERERERERERERERErAPxUCUiIiJiCF796lfjj/7oj053NU4J/viP/xjXX3/96a5GRMS6EHkzImJjIvJmRMTGROTNiIiNicibEREbE5E3I9aLeKgSERGxIXDhhRei1WphYmICU1NTePazn41PfepT0Fqv+e4tt9yC8847b+izL3zhCxgfH8f4+DharRaUUu77+Pj4Sav/3/zN3+CSSy7BxMQEfu7nfg5f/vKXg+d//ud/jh07dmBychKvfe1r0ev1RuY1bBF/6KGHQETI8/yk1XktLC0t4fzzzwcAfPazn8Xv//7vB893796Nyy+/HGNjY7j88suxe/fuU1a3iFOHyJseZwpv/vZv/zae8pSnQCmFm2666ZTVK+LUIvKmx5nAm/fffz+uu+46bNu2DdPT03jBC16A++6775TVLeLUIfKmx5nAm4cPH8ZVV12FLVu2YGpqCr/4i7+If/qnfzpldYs4dYi86XEm8KbE5z//eRARPv3pT5+yukWcOkTe9DhTeJOI0G63XV++7nWvO2V120iIhyoREREbBjfffDMWFxexd+9evOMd78AHP/hB3HjjjSeU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Fu655x63sMzPz7vLxYa5YcoLyC644IKB5+eccw4efvhhaK3db/v27cO5557rvr/+9a/HC1/4Qvzar/0alpeXAQAXXHDBwOVmu3fvxtVXX40rrrgCSik84xnPwJVXXolvfvObAIBdu3YFG7O77roL27dvx5YtW/CHf/iHLq9PfepT6+qXrVu3rtofH/nIR3DffffhX//1X7GwsIDvfOc7AABmxtlnn43Z2VnXnrLdJa699lrMzc3hVa96FW666SbMzc1henoaMzMzmJubwxVXXOHadPfddwdxRe++++4YguhnBJE3h2Mj8GbEzzYibw7HRuHN2dlZPP/5z8e1116Ld73rXeuqe8TjA5E3h2Oj8GYVWZbhwQcfXFcbIs5sRN4cjo3Am9/61rfwd3/3d9ixYwd27NiB22+/HW9961uDUEYRj19E3hyOjcCbw0BEQ++cebwjHqpERERsOCwsLOCrX/0qXvayl+H666/HZZddhte//vV4y1vegkOHDgEwVgtf//rXAQDbt2/HkSNHMD8/v+4yrrzySoyNjeFDH/oQsizDLbfcgptvvhkve9nLgnSf+MQn8JSnPAUveclL3OVfVTzjGc/Abbfd5qwR7rzzTtx2220ujuZv/dZv4TOf+Qx++MMfYm5uDu973/vw6le/+li7xUEptWp/LC4uotVqYWpqCkePHsV//a//1b27c+dOXHHFFXjPe96Dfr+P7373u7j55psHyvje976Hpz/96dizZw/OPvvsgQuvn/Oc5yBJEnzsYx9Dr9fDJz7xCQDAr/zKrxx3uyI2PiJvro6NwJsA0O/30e12wczIsgzdbjfYNEQ8/hB5c3VsBN5cWFjAC17wAlx11VX4wAc+cNxtiTizEHlzdWwE3vyXf/kXfPe730W/30en08EHP/hBHDx4EFdeeeVxtyti4yPy5urYCLx500034d5778Xu3buxe/dul+ef/MmfHHe7IjY+Im+ujo3Am/fccw92796NoiiwtLSEt771rTj33HNxySWXHHe7zlictsBjEREREQI7d+7kZrPJ4+PjPDk5yc961rP4E5/4BOd5zswmxvE73/lOvuiii3hiYoKf+tSn8kc/+lH3/mte8xqenp7mTZs28f79+4eWUY23+YMf/ICvvvpqnpyc5EsuuYT/9m//1j274YYb+F3vehczMxdFwa961av4ec97Hnc6naF5f/zjH+eLL76Yx8fH+aKLLuI//dM/DZ5/5CMf4bPOOosnJib41a9+NXe73ZF9IcsusWfPHhdHc63+2L9/P19zzTXcbrf5SU96En/qU58K3n3ggQf4l37pl7jdbvOv/uqv8pve9KYgjma/3+etW7ey1pq/9KUv8Wtf+9qh9fz+97/PT3/607nZbPLTnvY0/v73vz+yTRFnLiJvepwpvHnNNdcwgODft7/97ZHtijgzEXnT40zgzZtuuokB8NjYGLfbbfdv7969I9sVcWYi8qbHmcCbt9xyC1966aU8Pj7Omzdv5quvvppvvfXWkW2KOHMRedPjTODNKuKdKo9fRN70OBN481vf+hY/+clP5rGxMd62bRtfd911fP/9949s0+MZxPwz6J8TERERERERERERERERERERERERERERERFxjIjhvyIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiItaBeKgSERERERERERERERERERERERERERERERGxDsRDlYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiHUgHqpERERERERERERERERERERERERERERERESsA/FQJSIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiYh1IV3t4W20n3t+4BgwCwADbB4pAKjGfiUCT44Ay5zN6cRFY6QKwyZl9hlzJg2jNCjIzoO1LZMpz0Nrl/+u/8zBe9vYHAQA5CEcLAgPQWuFD/+N/xX37zjPPWkA2bvJIFvrY8X/dB9UvAAIO/cYT0LlwEgDQvucItv6/e309ZPurEPWjVHRpvQZKTD9xu4ni3K0mkdZQP3kE1M8H80oUqNHw34vclau3TIKnJgAA/UmFmaeNAcq0pWgx2B6RnXPRDM55wmGT7kgD+/9qJ7hQABjN2RwqMxkms8tIZxYBANlEisd+7RxwqgBmbPvKg2g8smTqPj0BPnubyTwvkDxyyLVZLy8DmW1HmkLV6+azUsCWKU8XM4eBpZXB9hKB2mMgsun6fSA3+TEzUBSm/URQk+Mgmx9aTZAti1MFHmua31mDH3gE6PVN9u0WVKtlH2mg27X5Abx9G1CvmWdHZoGZI67uaqxpEgHQnQ5QaADAFb91CM971z4AwNzDTXzmN/8T+svJYLsA10fFlhSH//Q86LZJt/lPH0PzDtsXgpcYwNeXPjc8rwpu27IL//tTXgoGQXUyqKww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\n" + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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nnvw9re/fUllcaw9nGzm0w+yCQCXXHIJtmzZgle/+tV48sknl1SmNQs7HA5HH7B9+3a+/fbbW36/6KKL+G/+5m+4Wq3y448/rn//6U9/yqeeeiozM//oRz/ik046acE07HB33nknb968mcMw1Ndf97rX8Uc+8hFmZr722mv5TW96E+/YsYM//elPt4339ttv5w0bNvD999/P8/PzfN111zER8Ve/+tWWsB/+8If5vPPO43q9nhvftddey+VymUdHR/W/4eFhBsC+77OUsm19pLnvvvt4bGyMmZn37NnDnufx7Oysvn711VfzNddck7jn2LFjfNZZZ3GtVuNbb72V3/GOdySuf+xjH+M/+qM/Svz2+te/Xtef4/jByaZhLcimzcUXX8xf/vKXc6871jZONg1rTTb37t3LW7duzSyvY+3jZNOw1mSzVqvxV7/6Vb755ptzwzjWLk42DWtBNoMg4AsuuIDvvvtuZma+9NJL+Ytf/GLbenKsTZxsGtaCbDIz//jHP+ZGo8ETExN8/fXX844dO9j3/bZ1dTzidqo4HI6+Zt++fQiCAPPz87jgggswNjaGsbExXHHFFThy5EjuffYBZE899VTL9f379+OUU06BEKYb3L59O/bt26e/f/vb30atVkusjHnqqadaDjd72cteho9+9KN4zWteg1NPPRWnnnoqhoeHWw5Mu/HGG3HLLbfg29/+NsrlMgDgE5/4hI7LTue9730vJicn9b8HHnhAXzty5Ejb+pifn8fb3vY2bN++HSMjI7jkkkswOTmJMAyxf/9+rFu3DoODg4lyx3zzm9/E2NgYTj75ZOzZswdbtmzBtddei1tuuUWvUojrd3p6OlG+6elpDA8P5z4Tx/GFk83+lE2Hw8lmf8vmkSNHcPnll+Md73hHwue24/jHyWZ/yyagXIFdffXV+OQnP4n7778/95k4ji+cbPanbH7+85/Heeedhxe+8IW5z8BxfONksz9lE1C7VEqlEsbGxvDZz34Wu3fvxsMPP5z7TI5XnFHF4XD0Lb/85S+xb98+/P7v/z4GBgbw0EMP6YFlampKHy6WtQ3TPoBs27ZtLde3bt2KvXv3Qkqpf3vqqadw0kkn6e9vfetbccUVV+CVr3wl5ubmAADbtm3LPNzs+uuvx2OPPYZDhw7hNa95DYIgwLnnnquv33TTTfjkJz+JH/zgB4kB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Sv8OEh9hPww4GVR5MhWlkBf+kBt4tbq5gVcbeLWnzKudH1PF06Aqfa88n3mv5vsiS57Or1wWwDOCqFK5pYeeJKtScm0yLwsnwCo/pIaEM22v1MnVYM6puab/DjxjV8akOdnB5bKdsCgtoLVvVsa+3Gn1aRdJR96zUt6lZIQ6OpipJ9XPNKppY7Wupb7w36slwDloZJCX81iUlpqLqW9TlVbn1cGmq9TV97dofjDj6H0vKr8obdp3yH4tDDOLGcfVvIs8jkibdX1LBW3yTNXnrCuz5VW7ovYdf35741MdG9IPZsqbN5dKQzCHNmufzUnnHpGbS03v2zwqlapDwzowt9y68ZhDw0+M48rnhHHQ2nEUNz9e5iYTzPSPP1YninlrbIBF3doecDQ82Zm29gGwQB51b9etxXV73szloWH9PU4antlvniUsSi9HoKu6fW6Rs+WprbGngOp9syZBLT14V8XZ8+hxVe44Edbls40wPqePg+6vTzA+89aZF2m9fRax6LnmRUPg1R7MD6qtR+DVlj8HXu1MHofl1QYfEQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQuAOIjlAwICAgICAgICAgICAgICAgICAgICAgICDkSwVAkICAgICAgICAgICAgICAgICAgICAgICFgAQagSEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBCwAIJQJSAgICAgICAgICAgICAgICAgICAgICAgYAEEoUpAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQMACCEKVgICAgICAgICAgICAgICAgICAgICAgICABRCEKgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQvg/wNglasarhKmpAAAAABJRU5ErkJggg==\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "" + ], + "metadata": { + "id": "uBNvZR1Ii112" + }, + "execution_count": 14, + "outputs": [] + } + ] +} \ No newline at end of file